@@ -7,6 +7,7 @@ This document describes all available UI components for declarative `.page` file
77- [ command] ( #command )
88- [ open] ( #open )
99- [ checkbox] ( #checkbox )
10+ - [ checkbox-list] ( #checkbox-list )
1011- [ radio] ( #radio )
1112- [ switch] ( #switch )
1213- [ card] ( #card )
@@ -137,6 +138,67 @@ cb.onUpdate = function(e) {
137138
138139---
139140
141+ ## checkbox-list
142+
143+ A multi-select list where multiple options can be toggled on/off.
144+
145+ ### Attributes
146+
147+ | Attribute | Type | Default | Description |
148+ | -----------| ------| ---------| -------------|
149+ | ` template ` | string | ` {{ (self.isChecked ? '✅ ' : '') + self.title }} ` | Display template |
150+ | ` :selected ` | JS expression | - | Binding for selected IDs (comma-separated) |
151+ | ` @update ` | JS expression | - | Handler called when selection changes |
152+ | ` id ` | string | - | Component ID for JavaScript access |
153+ | ` columns ` | number | ` 1 ` | Number of columns for button layout |
154+ | ` max-items ` | number | - | Maximum items per page (enables pagination with ` <navigate> ` ) |
155+ | ` hide ` | boolean | ` false ` | Hide the checkbox list |
156+
157+ ### Child Elements
158+
159+ Options are defined using ` <option> ` child elements (same as radio).
160+
161+ ### Template Variables
162+
163+ The ` self ` object in templates contains:
164+ - ` self.isChecked ` - boolean, whether this option is checked
165+ - ` self.title ` - string, the option title
166+ - ` self.index ` - number, option index
167+
168+ ### Examples
169+
170+ ``` xml
171+ <!-- Basic checkbox list -->
172+ <checkbox-list id =" features" @update=" onFeatureChange(event)" >
173+ <option value =" dark-mode" title =" Dark Mode" />
174+ <option value =" notifications" title =" Notifications" />
175+ <option value =" auto-save" title =" Auto Save" />
176+ </checkbox-list >
177+
178+ <!-- With binding and pagination -->
179+ <checkbox-list id =" tags" max-items =" 5" :selected=" selectedTags" >
180+ <option v-for =" tag in tags" :value=" tag.id" :title=" tag.name" />
181+ </checkbox-list >
182+ <navigate target =" tags" />
183+ ```
184+
185+ ### JavaScript API
186+
187+ ``` javascript
188+ var list = component (' features' );
189+ list .toggle (' dark-mode' ); // Toggle option
190+ list .setChecked (' notifications' , true ); // Set specific state
191+ console .log (list .IsChecked (' dark-mode' )); // Check if selected
192+ console .log (list .selectedIds ); // Get all selected IDs
193+ console .log (list .checkedCount ); // Get count of selected
194+
195+ list .onUpdate = function (e ) {
196+ console .log (' Changed:' , e .item .id , ' checked:' , e .isChecked );
197+ };
198+ ```
199+
200+ ---
201+
140202## radio
141203
142204A group of radio buttons where only one option can be selected.
@@ -149,6 +211,8 @@ A group of radio buttons where only one option can be selected.
149211| ` :selected ` | JS expression | - | Binding for selected option ID |
150212| ` @select ` | JS expression | - | Handler called when selection changes |
151213| ` id ` | string | - | Component ID for JavaScript access |
214+ | ` columns ` | number | ` 1 ` | Number of columns for button layout |
215+ | ` max-items ` | number | - | Maximum items per page (enables pagination with ` <navigate> ` ) |
152216| ` hide ` | boolean | ` false ` | Hide the radio group |
153217
154218### Child Elements
@@ -311,13 +375,13 @@ console.log(card.pageCount); // Total pages
311375
312376## navigate
313377
314- Navigation controls for paginated cards .
378+ Navigation controls for paginated components (card, radio, checkbox-list) .
315379
316380### Attributes
317381
318382| Attribute | Type | Default | Description |
319383| -----------| ------| ---------| -------------|
320- | ` target ` | string | - | ID of the card to control |
384+ | ` target ` | string | - | ID of the paginated component to control |
321385| ` prevTitle ` | string | ` ◀ ` | Previous button text |
322386| ` nextTitle ` | string | ` ▶ ` | Next button text |
323387| ` counterTitle ` | string | ` {{ self.currentPage + 1 }} / {{ self.pageCount }} ` | Counter display template |
@@ -327,15 +391,35 @@ Navigation controls for paginated cards.
327391| ` boundaryMessage ` | string | - | Toast message at boundaries |
328392| ` @click ` | JS expression | - | Handler for counter button click |
329393
394+ ### Supported Components
395+
396+ Navigate can control any component that supports pagination:
397+
398+ - ** card** - with ` max-items ` or ` max-rows ` attribute
399+ - ** radio** - with ` max-items ` attribute
400+ - ** checkbox-list** - with ` max-items ` attribute
401+
330402### Examples
331403
332404``` xml
333- <!-- Basic navigation -->
405+ <!-- Basic navigation with card -->
334406<card id =" myList" max-items =" 5" >
335407 <command v-for =" item in items" :title=" item.name" />
336408</card >
337409<navigate target =" myList" />
338410
411+ <!-- Navigation with radio -->
412+ <radio id =" language" max-items =" 5" :selected=" lang" @select=" lang = event.select.id" >
413+ <option v-for =" l in languages" :value=" l.code" :title=" l.name" />
414+ </radio >
415+ <navigate target =" language" />
416+
417+ <!-- Navigation with checkbox-list -->
418+ <checkbox-list id =" features" max-items =" 4" :selected=" selectedFeatures" >
419+ <option v-for =" f in features" :value=" f.id" :title=" f.name" />
420+ </checkbox-list >
421+ <navigate target =" features" />
422+
339423<!-- Custom navigation -->
340424<navigate
341425 target =" myList"
@@ -349,6 +433,17 @@ Navigation controls for paginated cards.
349433<navigate target =" myList" showCounter =" false" />
350434```
351435
436+ ### Navigation in Modals
437+
438+ For ` radio-modal ` and ` checkbox-modal ` components, add ` <navigate> ` inside the modal to customize the built-in pagination. The ` target ` attribute is ignored (modal manages its own pagination).
439+
440+ ``` xml
441+ <radio-modal id =" items" maxItems =" 10" title =" Select Item" >
442+ <option v-for =" item in items" :value=" item.id" :title=" item.name" />
443+ <navigate prevTitle =" Back" nextTitle =" Forward" showCounter =" false" />
444+ </radio-modal >
445+ ```
446+
352447---
353448
354449## row
0 commit comments