@slotted/angular 0.0.0-stage → 0.1.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +51 -2
- package/docs/AGENTS.snippet.md +10 -0
- package/docs/accordion.json +345 -0
- package/docs/accordion.md +207 -0
- package/docs/action-bar.json +421 -0
- package/docs/action-bar.md +364 -0
- package/docs/action-sheet.json +210 -0
- package/docs/action-sheet.md +19 -0
- package/docs/alert.json +407 -0
- package/docs/alert.md +239 -0
- package/docs/app-shell.examples.md +349 -0
- package/docs/app-shell.json +835 -0
- package/docs/app-shell.md +214 -0
- package/docs/aspect-ratio.json +159 -0
- package/docs/aspect-ratio.md +134 -0
- package/docs/attachment.json +486 -0
- package/docs/attachment.md +253 -0
- package/docs/avatar-group.json +208 -0
- package/docs/avatar-group.md +130 -0
- package/docs/avatar.json +342 -0
- package/docs/avatar.md +142 -0
- package/docs/badge.json +334 -0
- package/docs/badge.md +138 -0
- package/docs/breadcrumb.json +368 -0
- package/docs/breadcrumb.md +237 -0
- package/docs/button-group.json +158 -0
- package/docs/button-group.md +72 -0
- package/docs/button.examples.md +621 -0
- package/docs/button.json +977 -0
- package/docs/button.md +200 -0
- package/docs/calendar.json +592 -0
- package/docs/calendar.md +242 -0
- package/docs/card.json +283 -0
- package/docs/card.md +130 -0
- package/docs/carousel.json +560 -0
- package/docs/carousel.md +357 -0
- package/docs/cascader.json +933 -0
- package/docs/cascader.md +379 -0
- package/docs/chart.examples.md +582 -0
- package/docs/chart.json +1359 -0
- package/docs/chart.md +187 -0
- package/docs/checkbox-group.examples.md +612 -0
- package/docs/checkbox-group.json +395 -0
- package/docs/checkbox-group.md +106 -0
- package/docs/checkbox.examples.md +546 -0
- package/docs/checkbox.json +506 -0
- package/docs/checkbox.md +104 -0
- package/docs/code-block.json +616 -0
- package/docs/code-block.md +303 -0
- package/docs/collapsible.json +456 -0
- package/docs/collapsible.md +261 -0
- package/docs/color-picker.json +523 -0
- package/docs/color-picker.md +201 -0
- package/docs/column-manager.json +486 -0
- package/docs/column-manager.md +277 -0
- package/docs/combobox.examples.md +1732 -0
- package/docs/combobox.json +1250 -0
- package/docs/combobox.md +209 -0
- package/docs/command-palette.json +800 -0
- package/docs/command-palette.md +419 -0
- package/docs/container.json +156 -0
- package/docs/container.md +92 -0
- package/docs/context-menu.json +231 -0
- package/docs/context-menu.md +176 -0
- package/docs/currency-field.examples.md +321 -0
- package/docs/currency-field.json +649 -0
- package/docs/currency-field.md +128 -0
- package/docs/dashboard-grid.json +680 -0
- package/docs/dashboard-grid.md +265 -0
- package/docs/data-grid.examples.md +3064 -0
- package/docs/data-grid.json +1577 -0
- package/docs/data-grid.md +237 -0
- package/docs/data-grid.props.md +81 -0
- package/docs/data-list.json +685 -0
- package/docs/data-list.md +327 -0
- package/docs/date-field.json +490 -0
- package/docs/date-field.md +235 -0
- package/docs/date-picker.examples.md +1226 -0
- package/docs/date-picker.json +696 -0
- package/docs/date-picker.md +121 -0
- package/docs/date-range-picker.examples.md +1300 -0
- package/docs/date-range-picker.json +903 -0
- package/docs/date-range-picker.md +142 -0
- package/docs/datetime-field.json +665 -0
- package/docs/datetime-field.md +337 -0
- package/docs/datetime-picker.examples.md +1269 -0
- package/docs/datetime-picker.json +928 -0
- package/docs/datetime-picker.md +150 -0
- package/docs/datetime-range-picker.examples.md +225 -0
- package/docs/datetime-range-picker.json +1015 -0
- package/docs/datetime-range-picker.md +162 -0
- package/docs/description-list.json +471 -0
- package/docs/description-list.md +268 -0
- package/docs/detail-panel.json +530 -0
- package/docs/detail-panel.md +361 -0
- package/docs/dialog.examples.md +2467 -0
- package/docs/dialog.json +1141 -0
- package/docs/dialog.md +217 -0
- package/docs/dialog.props.md +63 -0
- package/docs/divider.json +148 -0
- package/docs/divider.md +83 -0
- package/docs/drawer.examples.md +1929 -0
- package/docs/drawer.json +753 -0
- package/docs/drawer.md +199 -0
- package/docs/entity-picker.json +946 -0
- package/docs/entity-picker.md +365 -0
- package/docs/event-calendar.examples.md +308 -0
- package/docs/event-calendar.json +1202 -0
- package/docs/event-calendar.md +201 -0
- package/docs/field-group.json +333 -0
- package/docs/field-group.md +181 -0
- package/docs/field.examples.md +676 -0
- package/docs/field.json +528 -0
- package/docs/field.md +127 -0
- package/docs/filter-bar.json +817 -0
- package/docs/filter-bar.md +380 -0
- package/docs/form.json +378 -0
- package/docs/form.md +235 -0
- package/docs/fullscreen.json +395 -0
- package/docs/fullscreen.md +225 -0
- package/docs/grid.json +176 -0
- package/docs/grid.md +74 -0
- package/docs/highlight.json +279 -0
- package/docs/highlight.md +210 -0
- package/docs/hover-card.json +254 -0
- package/docs/hover-card.md +213 -0
- package/docs/icon.json +173 -0
- package/docs/icon.md +101 -0
- package/docs/image.json +476 -0
- package/docs/image.md +254 -0
- package/docs/import-export-center.json +836 -0
- package/docs/import-export-center.md +345 -0
- package/docs/index.md +141 -0
- package/docs/inline-message.json +312 -0
- package/docs/inline-message.md +191 -0
- package/docs/inline.json +149 -0
- package/docs/inline.md +72 -0
- package/docs/kbd.json +350 -0
- package/docs/kbd.md +210 -0
- package/docs/link.json +264 -0
- package/docs/link.md +167 -0
- package/docs/list-item.json +463 -0
- package/docs/list-item.md +236 -0
- package/docs/list.json +321 -0
- package/docs/list.md +185 -0
- package/docs/listbox.json +807 -0
- package/docs/listbox.md +413 -0
- package/docs/loading-overlay.json +440 -0
- package/docs/loading-overlay.md +248 -0
- package/docs/markdown.json +461 -0
- package/docs/markdown.md +266 -0
- package/docs/menu.examples.md +1651 -0
- package/docs/menu.json +922 -0
- package/docs/menu.md +155 -0
- package/docs/menubar.json +292 -0
- package/docs/menubar.md +173 -0
- package/docs/message-scroller.json +401 -0
- package/docs/message-scroller.md +212 -0
- package/docs/message.json +862 -0
- package/docs/message.md +473 -0
- package/docs/multi-select.examples.md +1922 -0
- package/docs/multi-select.json +1314 -0
- package/docs/multi-select.md +213 -0
- package/docs/navigation-menu.json +529 -0
- package/docs/navigation-menu.md +329 -0
- package/docs/notification-center.json +664 -0
- package/docs/notification-center.md +372 -0
- package/docs/number-field.examples.md +1078 -0
- package/docs/number-field.json +668 -0
- package/docs/number-field.md +137 -0
- package/docs/otp-input.json +479 -0
- package/docs/otp-input.md +291 -0
- package/docs/page-header.json +574 -0
- package/docs/page-header.md +338 -0
- package/docs/page.json +332 -0
- package/docs/page.md +184 -0
- package/docs/pagination.json +434 -0
- package/docs/pagination.md +238 -0
- package/docs/popover.examples.md +1235 -0
- package/docs/popover.json +656 -0
- package/docs/popover.md +199 -0
- package/docs/progress-indicator.json +501 -0
- package/docs/progress-indicator.md +329 -0
- package/docs/prompt-composer.json +498 -0
- package/docs/prompt-composer.md +278 -0
- package/docs/prose.json +357 -0
- package/docs/prose.md +226 -0
- package/docs/radio-group.examples.md +626 -0
- package/docs/radio-group.json +541 -0
- package/docs/radio-group.md +112 -0
- package/docs/rating.json +1053 -0
- package/docs/rating.md +435 -0
- package/docs/result-state.json +376 -0
- package/docs/result-state.md +286 -0
- package/docs/saved-views.json +384 -0
- package/docs/saved-views.md +242 -0
- package/docs/scroll-area.json +120 -0
- package/docs/scroll-area.md +8 -0
- package/docs/section.json +344 -0
- package/docs/section.md +208 -0
- package/docs/segmented-control.json +429 -0
- package/docs/segmented-control.md +240 -0
- package/docs/select.examples.md +1214 -0
- package/docs/select.json +1147 -0
- package/docs/select.md +199 -0
- package/docs/side-navigation.json +632 -0
- package/docs/side-navigation.md +430 -0
- package/docs/skeleton.json +358 -0
- package/docs/skeleton.md +223 -0
- package/docs/slider.json +522 -0
- package/docs/slider.md +261 -0
- package/docs/sparkline.json +426 -0
- package/docs/sparkline.md +206 -0
- package/docs/split-button.json +361 -0
- package/docs/split-button.md +275 -0
- package/docs/splitter.json +142 -0
- package/docs/splitter.md +14 -0
- package/docs/stack.json +135 -0
- package/docs/stack.md +74 -0
- package/docs/stat-card.json +529 -0
- package/docs/stat-card.md +270 -0
- package/docs/status-indicator.json +314 -0
- package/docs/status-indicator.md +197 -0
- package/docs/stepper.json +451 -0
- package/docs/stepper.md +250 -0
- package/docs/switch.json +451 -0
- package/docs/switch.md +508 -0
- package/docs/table-of-contents.json +553 -0
- package/docs/table-of-contents.md +289 -0
- package/docs/table.examples.md +1981 -0
- package/docs/table.json +1059 -0
- package/docs/table.md +290 -0
- package/docs/tabs.examples.md +1370 -0
- package/docs/tabs.json +661 -0
- package/docs/tabs.md +211 -0
- package/docs/tag.json +813 -0
- package/docs/tag.md +241 -0
- package/docs/tags-input.json +771 -0
- package/docs/tags-input.md +361 -0
- package/docs/text-field.examples.md +821 -0
- package/docs/text-field.json +604 -0
- package/docs/text-field.md +125 -0
- package/docs/textarea.examples.md +612 -0
- package/docs/textarea.json +440 -0
- package/docs/textarea.md +98 -0
- package/docs/time-field.json +584 -0
- package/docs/time-field.md +291 -0
- package/docs/time-picker.json +679 -0
- package/docs/time-picker.md +315 -0
- package/docs/time-range-picker.examples.md +191 -0
- package/docs/time-range-picker.json +924 -0
- package/docs/time-range-picker.md +152 -0
- package/docs/timeline.json +839 -0
- package/docs/timeline.md +401 -0
- package/docs/toast.json +642 -0
- package/docs/toast.md +311 -0
- package/docs/toggle-group.json +417 -0
- package/docs/toggle-group.md +255 -0
- package/docs/toggle.json +326 -0
- package/docs/toggle.md +222 -0
- package/docs/toolbar.json +380 -0
- package/docs/toolbar.md +240 -0
- package/docs/tooltip.examples.md +664 -0
- package/docs/tooltip.json +604 -0
- package/docs/tooltip.md +146 -0
- package/docs/top-navigation.examples.md +287 -0
- package/docs/top-navigation.json +648 -0
- package/docs/top-navigation.md +138 -0
- package/docs/tour.json +759 -0
- package/docs/tour.md +337 -0
- package/docs/transfer.json +746 -0
- package/docs/transfer.md +273 -0
- package/docs/tree.json +918 -0
- package/docs/tree.md +397 -0
- package/docs/typography.json +317 -0
- package/docs/typography.md +107 -0
- package/docs/upload.examples.md +358 -0
- package/docs/upload.json +1103 -0
- package/docs/upload.md +166 -0
- package/docs/visually-hidden.json +71 -0
- package/docs/visually-hidden.md +42 -0
- package/docs/wizard.json +724 -0
- package/docs/wizard.md +295 -0
- package/fesm2022/slotted-angular-accordion.mjs +247 -0
- package/fesm2022/slotted-angular-accordion.mjs.map +1 -0
- package/fesm2022/slotted-angular-action-bar.mjs +639 -0
- package/fesm2022/slotted-angular-action-bar.mjs.map +1 -0
- package/fesm2022/slotted-angular-action-sheet.mjs +749 -0
- package/fesm2022/slotted-angular-action-sheet.mjs.map +1 -0
- package/fesm2022/slotted-angular-alert.mjs +427 -0
- package/fesm2022/slotted-angular-alert.mjs.map +1 -0
- package/fesm2022/slotted-angular-app-shell.mjs +1334 -0
- package/fesm2022/slotted-angular-app-shell.mjs.map +1 -0
- package/fesm2022/slotted-angular-aspect-ratio.mjs +63 -0
- package/fesm2022/slotted-angular-aspect-ratio.mjs.map +1 -0
- package/fesm2022/slotted-angular-attachment.mjs +595 -0
- package/fesm2022/slotted-angular-attachment.mjs.map +1 -0
- package/fesm2022/slotted-angular-avatar-group.mjs +230 -0
- package/fesm2022/slotted-angular-avatar-group.mjs.map +1 -0
- package/fesm2022/slotted-angular-avatar.mjs +330 -0
- package/fesm2022/slotted-angular-avatar.mjs.map +1 -0
- package/fesm2022/slotted-angular-badge.mjs +255 -0
- package/fesm2022/slotted-angular-badge.mjs.map +1 -0
- package/fesm2022/slotted-angular-breadcrumb.mjs +544 -0
- package/fesm2022/slotted-angular-breadcrumb.mjs.map +1 -0
- package/fesm2022/slotted-angular-button-group.mjs +146 -0
- package/fesm2022/slotted-angular-button-group.mjs.map +1 -0
- package/fesm2022/slotted-angular-button.mjs +692 -0
- package/fesm2022/slotted-angular-button.mjs.map +1 -0
- package/fesm2022/slotted-angular-calendar.mjs +916 -0
- package/fesm2022/slotted-angular-calendar.mjs.map +1 -0
- package/fesm2022/slotted-angular-card.mjs +225 -0
- package/fesm2022/slotted-angular-card.mjs.map +1 -0
- package/fesm2022/slotted-angular-carousel.mjs +840 -0
- package/fesm2022/slotted-angular-carousel.mjs.map +1 -0
- package/fesm2022/slotted-angular-cascader.mjs +1839 -0
- package/fesm2022/slotted-angular-cascader.mjs.map +1 -0
- package/fesm2022/slotted-angular-chart.mjs +974 -0
- package/fesm2022/slotted-angular-chart.mjs.map +1 -0
- package/fesm2022/slotted-angular-checkbox-group.mjs +283 -0
- package/fesm2022/slotted-angular-checkbox-group.mjs.map +1 -0
- package/fesm2022/slotted-angular-checkbox.mjs +468 -0
- package/fesm2022/slotted-angular-checkbox.mjs.map +1 -0
- package/fesm2022/slotted-angular-code-block.mjs +476 -0
- package/fesm2022/slotted-angular-code-block.mjs.map +1 -0
- package/fesm2022/slotted-angular-collapsible.mjs +479 -0
- package/fesm2022/slotted-angular-collapsible.mjs.map +1 -0
- package/fesm2022/slotted-angular-color-picker.mjs +910 -0
- package/fesm2022/slotted-angular-color-picker.mjs.map +1 -0
- package/fesm2022/slotted-angular-column-manager.mjs +1037 -0
- package/fesm2022/slotted-angular-column-manager.mjs.map +1 -0
- package/fesm2022/slotted-angular-combobox.mjs +1480 -0
- package/fesm2022/slotted-angular-combobox.mjs.map +1 -0
- package/fesm2022/slotted-angular-command-palette.mjs +1283 -0
- package/fesm2022/slotted-angular-command-palette.mjs.map +1 -0
- package/fesm2022/slotted-angular-container.mjs +105 -0
- package/fesm2022/slotted-angular-container.mjs.map +1 -0
- package/fesm2022/slotted-angular-context-menu.mjs +221 -0
- package/fesm2022/slotted-angular-context-menu.mjs.map +1 -0
- package/fesm2022/slotted-angular-currency-field.mjs +1131 -0
- package/fesm2022/slotted-angular-currency-field.mjs.map +1 -0
- package/fesm2022/slotted-angular-dashboard-grid.mjs +1928 -0
- package/fesm2022/slotted-angular-dashboard-grid.mjs.map +1 -0
- package/fesm2022/slotted-angular-data-grid.mjs +6697 -0
- package/fesm2022/slotted-angular-data-grid.mjs.map +1 -0
- package/fesm2022/slotted-angular-data-list.mjs +1418 -0
- package/fesm2022/slotted-angular-data-list.mjs.map +1 -0
- package/fesm2022/slotted-angular-date-field.mjs +772 -0
- package/fesm2022/slotted-angular-date-field.mjs.map +1 -0
- package/fesm2022/slotted-angular-date-picker.mjs +690 -0
- package/fesm2022/slotted-angular-date-picker.mjs.map +1 -0
- package/fesm2022/slotted-angular-date-range-picker.mjs +1150 -0
- package/fesm2022/slotted-angular-date-range-picker.mjs.map +1 -0
- package/fesm2022/slotted-angular-datetime-field.mjs +1058 -0
- package/fesm2022/slotted-angular-datetime-field.mjs.map +1 -0
- package/fesm2022/slotted-angular-datetime-picker.mjs +1362 -0
- package/fesm2022/slotted-angular-datetime-picker.mjs.map +1 -0
- package/fesm2022/slotted-angular-datetime-range-picker.mjs +1872 -0
- package/fesm2022/slotted-angular-datetime-range-picker.mjs.map +1 -0
- package/fesm2022/slotted-angular-description-list.mjs +545 -0
- package/fesm2022/slotted-angular-description-list.mjs.map +1 -0
- package/fesm2022/slotted-angular-detail-panel.mjs +754 -0
- package/fesm2022/slotted-angular-detail-panel.mjs.map +1 -0
- package/fesm2022/slotted-angular-dialog.mjs +980 -0
- package/fesm2022/slotted-angular-dialog.mjs.map +1 -0
- package/fesm2022/slotted-angular-divider.mjs +76 -0
- package/fesm2022/slotted-angular-divider.mjs.map +1 -0
- package/fesm2022/slotted-angular-drawer.mjs +1397 -0
- package/fesm2022/slotted-angular-drawer.mjs.map +1 -0
- package/fesm2022/slotted-angular-entity-picker.mjs +1987 -0
- package/fesm2022/slotted-angular-entity-picker.mjs.map +1 -0
- package/fesm2022/slotted-angular-event-calendar.mjs +2934 -0
- package/fesm2022/slotted-angular-event-calendar.mjs.map +1 -0
- package/fesm2022/slotted-angular-field-group.mjs +301 -0
- package/fesm2022/slotted-angular-field-group.mjs.map +1 -0
- package/fesm2022/slotted-angular-field.mjs +928 -0
- package/fesm2022/slotted-angular-field.mjs.map +1 -0
- package/fesm2022/slotted-angular-filter-bar.mjs +3107 -0
- package/fesm2022/slotted-angular-filter-bar.mjs.map +1 -0
- package/fesm2022/slotted-angular-form.mjs +592 -0
- package/fesm2022/slotted-angular-form.mjs.map +1 -0
- package/fesm2022/slotted-angular-fullscreen.mjs +314 -0
- package/fesm2022/slotted-angular-fullscreen.mjs.map +1 -0
- package/fesm2022/slotted-angular-grid.mjs +58 -0
- package/fesm2022/slotted-angular-grid.mjs.map +1 -0
- package/fesm2022/slotted-angular-highlight.mjs +123 -0
- package/fesm2022/slotted-angular-highlight.mjs.map +1 -0
- package/fesm2022/slotted-angular-hover-card.mjs +326 -0
- package/fesm2022/slotted-angular-hover-card.mjs.map +1 -0
- package/fesm2022/slotted-angular-i18n.mjs +75 -0
- package/fesm2022/slotted-angular-i18n.mjs.map +1 -0
- package/fesm2022/slotted-angular-icon.mjs +232 -0
- package/fesm2022/slotted-angular-icon.mjs.map +1 -0
- package/fesm2022/slotted-angular-image.mjs +442 -0
- package/fesm2022/slotted-angular-image.mjs.map +1 -0
- package/fesm2022/slotted-angular-import-export-center.mjs +1792 -0
- package/fesm2022/slotted-angular-import-export-center.mjs.map +1 -0
- package/fesm2022/slotted-angular-inline-message.mjs +280 -0
- package/fesm2022/slotted-angular-inline-message.mjs.map +1 -0
- package/fesm2022/slotted-angular-inline.mjs +52 -0
- package/fesm2022/slotted-angular-inline.mjs.map +1 -0
- package/fesm2022/slotted-angular-kbd.mjs +284 -0
- package/fesm2022/slotted-angular-kbd.mjs.map +1 -0
- package/fesm2022/slotted-angular-link.mjs +182 -0
- package/fesm2022/slotted-angular-link.mjs.map +1 -0
- package/fesm2022/slotted-angular-list-item.mjs +367 -0
- package/fesm2022/slotted-angular-list-item.mjs.map +1 -0
- package/fesm2022/slotted-angular-list.mjs +256 -0
- package/fesm2022/slotted-angular-list.mjs.map +1 -0
- package/fesm2022/slotted-angular-listbox.mjs +1274 -0
- package/fesm2022/slotted-angular-listbox.mjs.map +1 -0
- package/fesm2022/slotted-angular-loading-overlay.mjs +451 -0
- package/fesm2022/slotted-angular-loading-overlay.mjs.map +1 -0
- package/fesm2022/slotted-angular-markdown.mjs +914 -0
- package/fesm2022/slotted-angular-markdown.mjs.map +1 -0
- package/fesm2022/slotted-angular-menu.mjs +1211 -0
- package/fesm2022/slotted-angular-menu.mjs.map +1 -0
- package/fesm2022/slotted-angular-menubar.mjs +230 -0
- package/fesm2022/slotted-angular-menubar.mjs.map +1 -0
- package/fesm2022/slotted-angular-message-scroller.mjs +378 -0
- package/fesm2022/slotted-angular-message-scroller.mjs.map +1 -0
- package/fesm2022/slotted-angular-message.mjs +866 -0
- package/fesm2022/slotted-angular-message.mjs.map +1 -0
- package/fesm2022/slotted-angular-multi-select.mjs +1939 -0
- package/fesm2022/slotted-angular-multi-select.mjs.map +1 -0
- package/fesm2022/slotted-angular-navigation-menu.mjs +770 -0
- package/fesm2022/slotted-angular-navigation-menu.mjs.map +1 -0
- package/fesm2022/slotted-angular-notification-center.mjs +1172 -0
- package/fesm2022/slotted-angular-notification-center.mjs.map +1 -0
- package/fesm2022/slotted-angular-number-field.mjs +966 -0
- package/fesm2022/slotted-angular-number-field.mjs.map +1 -0
- package/fesm2022/slotted-angular-otp-input.mjs +629 -0
- package/fesm2022/slotted-angular-otp-input.mjs.map +1 -0
- package/fesm2022/slotted-angular-page-header.mjs +788 -0
- package/fesm2022/slotted-angular-page-header.mjs.map +1 -0
- package/fesm2022/slotted-angular-page.mjs +255 -0
- package/fesm2022/slotted-angular-page.mjs.map +1 -0
- package/fesm2022/slotted-angular-pagination.mjs +562 -0
- package/fesm2022/slotted-angular-pagination.mjs.map +1 -0
- package/fesm2022/slotted-angular-popover.mjs +799 -0
- package/fesm2022/slotted-angular-popover.mjs.map +1 -0
- package/fesm2022/slotted-angular-progress-indicator.mjs +572 -0
- package/fesm2022/slotted-angular-progress-indicator.mjs.map +1 -0
- package/fesm2022/slotted-angular-prompt-composer.mjs +596 -0
- package/fesm2022/slotted-angular-prompt-composer.mjs.map +1 -0
- package/fesm2022/slotted-angular-prose.mjs +314 -0
- package/fesm2022/slotted-angular-prose.mjs.map +1 -0
- package/fesm2022/slotted-angular-radio-group.mjs +469 -0
- package/fesm2022/slotted-angular-radio-group.mjs.map +1 -0
- package/fesm2022/slotted-angular-rating.mjs +1174 -0
- package/fesm2022/slotted-angular-rating.mjs.map +1 -0
- package/fesm2022/slotted-angular-result-state.mjs +330 -0
- package/fesm2022/slotted-angular-result-state.mjs.map +1 -0
- package/fesm2022/slotted-angular-saved-views.mjs +877 -0
- package/fesm2022/slotted-angular-saved-views.mjs.map +1 -0
- package/fesm2022/slotted-angular-scroll-area.mjs +294 -0
- package/fesm2022/slotted-angular-scroll-area.mjs.map +1 -0
- package/fesm2022/slotted-angular-section.mjs +266 -0
- package/fesm2022/slotted-angular-section.mjs.map +1 -0
- package/fesm2022/slotted-angular-segmented-control.mjs +454 -0
- package/fesm2022/slotted-angular-segmented-control.mjs.map +1 -0
- package/fesm2022/slotted-angular-select.mjs +1899 -0
- package/fesm2022/slotted-angular-select.mjs.map +1 -0
- package/fesm2022/slotted-angular-side-navigation.mjs +1042 -0
- package/fesm2022/slotted-angular-side-navigation.mjs.map +1 -0
- package/fesm2022/slotted-angular-skeleton.mjs +316 -0
- package/fesm2022/slotted-angular-skeleton.mjs.map +1 -0
- package/fesm2022/slotted-angular-slider.mjs +586 -0
- package/fesm2022/slotted-angular-slider.mjs.map +1 -0
- package/fesm2022/slotted-angular-sparkline.mjs +235 -0
- package/fesm2022/slotted-angular-sparkline.mjs.map +1 -0
- package/fesm2022/slotted-angular-split-button.mjs +331 -0
- package/fesm2022/slotted-angular-split-button.mjs.map +1 -0
- package/fesm2022/slotted-angular-splitter.mjs +516 -0
- package/fesm2022/slotted-angular-splitter.mjs.map +1 -0
- package/fesm2022/slotted-angular-stack.mjs +48 -0
- package/fesm2022/slotted-angular-stack.mjs.map +1 -0
- package/fesm2022/slotted-angular-stat-card.mjs +478 -0
- package/fesm2022/slotted-angular-stat-card.mjs.map +1 -0
- package/fesm2022/slotted-angular-status-indicator.mjs +155 -0
- package/fesm2022/slotted-angular-status-indicator.mjs.map +1 -0
- package/fesm2022/slotted-angular-stepper.mjs +536 -0
- package/fesm2022/slotted-angular-stepper.mjs.map +1 -0
- package/fesm2022/slotted-angular-switch.mjs +447 -0
- package/fesm2022/slotted-angular-switch.mjs.map +1 -0
- package/fesm2022/slotted-angular-table-of-contents.mjs +750 -0
- package/fesm2022/slotted-angular-table-of-contents.mjs.map +1 -0
- package/fesm2022/slotted-angular-table.mjs +2518 -0
- package/fesm2022/slotted-angular-table.mjs.map +1 -0
- package/fesm2022/slotted-angular-tabs.mjs +829 -0
- package/fesm2022/slotted-angular-tabs.mjs.map +1 -0
- package/fesm2022/slotted-angular-tag.mjs +595 -0
- package/fesm2022/slotted-angular-tag.mjs.map +1 -0
- package/fesm2022/slotted-angular-tags-input.mjs +1211 -0
- package/fesm2022/slotted-angular-tags-input.mjs.map +1 -0
- package/fesm2022/slotted-angular-text-field.mjs +674 -0
- package/fesm2022/slotted-angular-text-field.mjs.map +1 -0
- package/fesm2022/slotted-angular-textarea.mjs +275 -0
- package/fesm2022/slotted-angular-textarea.mjs.map +1 -0
- package/fesm2022/slotted-angular-theme.mjs +45 -0
- package/fesm2022/slotted-angular-theme.mjs.map +1 -0
- package/fesm2022/slotted-angular-time-field.mjs +895 -0
- package/fesm2022/slotted-angular-time-field.mjs.map +1 -0
- package/fesm2022/slotted-angular-time-picker.mjs +856 -0
- package/fesm2022/slotted-angular-time-picker.mjs.map +1 -0
- package/fesm2022/slotted-angular-time-range-picker.mjs +1534 -0
- package/fesm2022/slotted-angular-time-range-picker.mjs.map +1 -0
- package/fesm2022/slotted-angular-timeline.mjs +928 -0
- package/fesm2022/slotted-angular-timeline.mjs.map +1 -0
- package/fesm2022/slotted-angular-toast.mjs +917 -0
- package/fesm2022/slotted-angular-toast.mjs.map +1 -0
- package/fesm2022/slotted-angular-toggle-group.mjs +311 -0
- package/fesm2022/slotted-angular-toggle-group.mjs.map +1 -0
- package/fesm2022/slotted-angular-toggle.mjs +162 -0
- package/fesm2022/slotted-angular-toggle.mjs.map +1 -0
- package/fesm2022/slotted-angular-toolbar.mjs +536 -0
- package/fesm2022/slotted-angular-toolbar.mjs.map +1 -0
- package/fesm2022/slotted-angular-tooltip.mjs +798 -0
- package/fesm2022/slotted-angular-tooltip.mjs.map +1 -0
- package/fesm2022/slotted-angular-top-navigation.mjs +1308 -0
- package/fesm2022/slotted-angular-top-navigation.mjs.map +1 -0
- package/fesm2022/slotted-angular-tour.mjs +1330 -0
- package/fesm2022/slotted-angular-tour.mjs.map +1 -0
- package/fesm2022/slotted-angular-transfer.mjs +1406 -0
- package/fesm2022/slotted-angular-transfer.mjs.map +1 -0
- package/fesm2022/slotted-angular-tree.mjs +1448 -0
- package/fesm2022/slotted-angular-tree.mjs.map +1 -0
- package/fesm2022/slotted-angular-typography.mjs +184 -0
- package/fesm2022/slotted-angular-typography.mjs.map +1 -0
- package/fesm2022/slotted-angular-upload.mjs +1523 -0
- package/fesm2022/slotted-angular-upload.mjs.map +1 -0
- package/fesm2022/slotted-angular-visually-hidden.mjs +32 -0
- package/fesm2022/slotted-angular-visually-hidden.mjs.map +1 -0
- package/fesm2022/slotted-angular-wizard.mjs +1715 -0
- package/fesm2022/slotted-angular-wizard.mjs.map +1 -0
- package/fesm2022/slotted-angular.mjs +4 -0
- package/fesm2022/slotted-angular.mjs.map +1 -0
- package/package.json +537 -3
- package/types/slotted-angular-accordion.d.ts +156 -0
- package/types/slotted-angular-accordion.d.ts.map +1 -0
- package/types/slotted-angular-action-bar.d.ts +291 -0
- package/types/slotted-angular-action-bar.d.ts.map +1 -0
- package/types/slotted-angular-action-sheet.d.ts +294 -0
- package/types/slotted-angular-action-sheet.d.ts.map +1 -0
- package/types/slotted-angular-alert.d.ts +214 -0
- package/types/slotted-angular-alert.d.ts.map +1 -0
- package/types/slotted-angular-app-shell.d.ts +549 -0
- package/types/slotted-angular-app-shell.d.ts.map +1 -0
- package/types/slotted-angular-aspect-ratio.d.ts +57 -0
- package/types/slotted-angular-aspect-ratio.d.ts.map +1 -0
- package/types/slotted-angular-attachment.d.ts +294 -0
- package/types/slotted-angular-attachment.d.ts.map +1 -0
- package/types/slotted-angular-avatar-group.d.ts +119 -0
- package/types/slotted-angular-avatar-group.d.ts.map +1 -0
- package/types/slotted-angular-avatar.d.ts +202 -0
- package/types/slotted-angular-avatar.d.ts.map +1 -0
- package/types/slotted-angular-badge.d.ts +166 -0
- package/types/slotted-angular-badge.d.ts.map +1 -0
- package/types/slotted-angular-breadcrumb.d.ts +251 -0
- package/types/slotted-angular-breadcrumb.d.ts.map +1 -0
- package/types/slotted-angular-button-group.d.ts +89 -0
- package/types/slotted-angular-button-group.d.ts.map +1 -0
- package/types/slotted-angular-button.d.ts +390 -0
- package/types/slotted-angular-button.d.ts.map +1 -0
- package/types/slotted-angular-calendar.d.ts +280 -0
- package/types/slotted-angular-calendar.d.ts.map +1 -0
- package/types/slotted-angular-card.d.ts +140 -0
- package/types/slotted-angular-card.d.ts.map +1 -0
- package/types/slotted-angular-carousel.d.ts +288 -0
- package/types/slotted-angular-carousel.d.ts.map +1 -0
- package/types/slotted-angular-cascader.d.ts +351 -0
- package/types/slotted-angular-cascader.d.ts.map +1 -0
- package/types/slotted-angular-chart.d.ts +319 -0
- package/types/slotted-angular-chart.d.ts.map +1 -0
- package/types/slotted-angular-checkbox-group.d.ts +156 -0
- package/types/slotted-angular-checkbox-group.d.ts.map +1 -0
- package/types/slotted-angular-checkbox.d.ts +197 -0
- package/types/slotted-angular-checkbox.d.ts.map +1 -0
- package/types/slotted-angular-code-block.d.ts +158 -0
- package/types/slotted-angular-code-block.d.ts.map +1 -0
- package/types/slotted-angular-collapsible.d.ts +272 -0
- package/types/slotted-angular-collapsible.d.ts.map +1 -0
- package/types/slotted-angular-color-picker.d.ts +181 -0
- package/types/slotted-angular-color-picker.d.ts.map +1 -0
- package/types/slotted-angular-column-manager.d.ts +200 -0
- package/types/slotted-angular-column-manager.d.ts.map +1 -0
- package/types/slotted-angular-combobox.d.ts +449 -0
- package/types/slotted-angular-combobox.d.ts.map +1 -0
- package/types/slotted-angular-command-palette.d.ts +256 -0
- package/types/slotted-angular-command-palette.d.ts.map +1 -0
- package/types/slotted-angular-container.d.ts +84 -0
- package/types/slotted-angular-container.d.ts.map +1 -0
- package/types/slotted-angular-context-menu.d.ts +84 -0
- package/types/slotted-angular-context-menu.d.ts.map +1 -0
- package/types/slotted-angular-currency-field.d.ts +480 -0
- package/types/slotted-angular-currency-field.d.ts.map +1 -0
- package/types/slotted-angular-dashboard-grid.d.ts +341 -0
- package/types/slotted-angular-dashboard-grid.d.ts.map +1 -0
- package/types/slotted-angular-data-grid.d.ts +1077 -0
- package/types/slotted-angular-data-grid.d.ts.map +1 -0
- package/types/slotted-angular-data-list.d.ts +272 -0
- package/types/slotted-angular-data-list.d.ts.map +1 -0
- package/types/slotted-angular-date-field.d.ts +320 -0
- package/types/slotted-angular-date-field.d.ts.map +1 -0
- package/types/slotted-angular-date-picker.d.ts +224 -0
- package/types/slotted-angular-date-picker.d.ts.map +1 -0
- package/types/slotted-angular-date-range-picker.d.ts +310 -0
- package/types/slotted-angular-date-range-picker.d.ts.map +1 -0
- package/types/slotted-angular-datetime-field.d.ts +362 -0
- package/types/slotted-angular-datetime-field.d.ts.map +1 -0
- package/types/slotted-angular-datetime-picker.d.ts +370 -0
- package/types/slotted-angular-datetime-picker.d.ts.map +1 -0
- package/types/slotted-angular-datetime-range-picker.d.ts +459 -0
- package/types/slotted-angular-datetime-range-picker.d.ts.map +1 -0
- package/types/slotted-angular-description-list.d.ts +281 -0
- package/types/slotted-angular-description-list.d.ts.map +1 -0
- package/types/slotted-angular-detail-panel.d.ts +240 -0
- package/types/slotted-angular-detail-panel.d.ts.map +1 -0
- package/types/slotted-angular-dialog.d.ts +497 -0
- package/types/slotted-angular-dialog.d.ts.map +1 -0
- package/types/slotted-angular-divider.d.ts +40 -0
- package/types/slotted-angular-divider.d.ts.map +1 -0
- package/types/slotted-angular-drawer.d.ts +532 -0
- package/types/slotted-angular-drawer.d.ts.map +1 -0
- package/types/slotted-angular-entity-picker.d.ts +338 -0
- package/types/slotted-angular-entity-picker.d.ts.map +1 -0
- package/types/slotted-angular-event-calendar.d.ts +574 -0
- package/types/slotted-angular-event-calendar.d.ts.map +1 -0
- package/types/slotted-angular-field-group.d.ts +152 -0
- package/types/slotted-angular-field-group.d.ts.map +1 -0
- package/types/slotted-angular-field.d.ts +535 -0
- package/types/slotted-angular-field.d.ts.map +1 -0
- package/types/slotted-angular-filter-bar.d.ts +573 -0
- package/types/slotted-angular-filter-bar.d.ts.map +1 -0
- package/types/slotted-angular-form.d.ts +298 -0
- package/types/slotted-angular-form.d.ts.map +1 -0
- package/types/slotted-angular-fullscreen.d.ts +145 -0
- package/types/slotted-angular-fullscreen.d.ts.map +1 -0
- package/types/slotted-angular-grid.d.ts +50 -0
- package/types/slotted-angular-grid.d.ts.map +1 -0
- package/types/slotted-angular-highlight.d.ts +93 -0
- package/types/slotted-angular-highlight.d.ts.map +1 -0
- package/types/slotted-angular-hover-card.d.ts +140 -0
- package/types/slotted-angular-hover-card.d.ts.map +1 -0
- package/types/slotted-angular-i18n.d.ts +46 -0
- package/types/slotted-angular-i18n.d.ts.map +1 -0
- package/types/slotted-angular-icon.d.ts +94 -0
- package/types/slotted-angular-icon.d.ts.map +1 -0
- package/types/slotted-angular-image.d.ts +251 -0
- package/types/slotted-angular-image.d.ts.map +1 -0
- package/types/slotted-angular-import-export-center.d.ts +351 -0
- package/types/slotted-angular-import-export-center.d.ts.map +1 -0
- package/types/slotted-angular-inline-message.d.ts +195 -0
- package/types/slotted-angular-inline-message.d.ts.map +1 -0
- package/types/slotted-angular-inline.d.ts +41 -0
- package/types/slotted-angular-inline.d.ts.map +1 -0
- package/types/slotted-angular-kbd.d.ts +174 -0
- package/types/slotted-angular-kbd.d.ts.map +1 -0
- package/types/slotted-angular-link.d.ts +94 -0
- package/types/slotted-angular-link.d.ts.map +1 -0
- package/types/slotted-angular-list-item.d.ts +210 -0
- package/types/slotted-angular-list-item.d.ts.map +1 -0
- package/types/slotted-angular-list.d.ts +176 -0
- package/types/slotted-angular-list.d.ts.map +1 -0
- package/types/slotted-angular-listbox.d.ts +470 -0
- package/types/slotted-angular-listbox.d.ts.map +1 -0
- package/types/slotted-angular-loading-overlay.d.ts +219 -0
- package/types/slotted-angular-loading-overlay.d.ts.map +1 -0
- package/types/slotted-angular-markdown.d.ts +172 -0
- package/types/slotted-angular-markdown.d.ts.map +1 -0
- package/types/slotted-angular-menu.d.ts +448 -0
- package/types/slotted-angular-menu.d.ts.map +1 -0
- package/types/slotted-angular-menubar.d.ts +90 -0
- package/types/slotted-angular-menubar.d.ts.map +1 -0
- package/types/slotted-angular-message-scroller.d.ts +151 -0
- package/types/slotted-angular-message-scroller.d.ts.map +1 -0
- package/types/slotted-angular-message.d.ts +348 -0
- package/types/slotted-angular-message.d.ts.map +1 -0
- package/types/slotted-angular-multi-select.d.ts +462 -0
- package/types/slotted-angular-multi-select.d.ts.map +1 -0
- package/types/slotted-angular-navigation-menu.d.ts +309 -0
- package/types/slotted-angular-navigation-menu.d.ts.map +1 -0
- package/types/slotted-angular-notification-center.d.ts +318 -0
- package/types/slotted-angular-notification-center.d.ts.map +1 -0
- package/types/slotted-angular-number-field.d.ts +402 -0
- package/types/slotted-angular-number-field.d.ts.map +1 -0
- package/types/slotted-angular-otp-input.d.ts +286 -0
- package/types/slotted-angular-otp-input.d.ts.map +1 -0
- package/types/slotted-angular-page-header.d.ts +334 -0
- package/types/slotted-angular-page-header.d.ts.map +1 -0
- package/types/slotted-angular-page.d.ts +141 -0
- package/types/slotted-angular-page.d.ts.map +1 -0
- package/types/slotted-angular-pagination.d.ts +213 -0
- package/types/slotted-angular-pagination.d.ts.map +1 -0
- package/types/slotted-angular-popover.d.ts +366 -0
- package/types/slotted-angular-popover.d.ts.map +1 -0
- package/types/slotted-angular-progress-indicator.d.ts +312 -0
- package/types/slotted-angular-progress-indicator.d.ts.map +1 -0
- package/types/slotted-angular-prompt-composer.d.ts +242 -0
- package/types/slotted-angular-prompt-composer.d.ts.map +1 -0
- package/types/slotted-angular-prose.d.ts +171 -0
- package/types/slotted-angular-prose.d.ts.map +1 -0
- package/types/slotted-angular-radio-group.d.ts +268 -0
- package/types/slotted-angular-radio-group.d.ts.map +1 -0
- package/types/slotted-angular-rating.d.ts +374 -0
- package/types/slotted-angular-rating.d.ts.map +1 -0
- package/types/slotted-angular-result-state.d.ts +217 -0
- package/types/slotted-angular-result-state.d.ts.map +1 -0
- package/types/slotted-angular-saved-views.d.ts +198 -0
- package/types/slotted-angular-saved-views.d.ts.map +1 -0
- package/types/slotted-angular-scroll-area.d.ts +186 -0
- package/types/slotted-angular-scroll-area.d.ts.map +1 -0
- package/types/slotted-angular-section.d.ts +143 -0
- package/types/slotted-angular-section.d.ts.map +1 -0
- package/types/slotted-angular-segmented-control.d.ts +251 -0
- package/types/slotted-angular-segmented-control.d.ts.map +1 -0
- package/types/slotted-angular-select.d.ts +507 -0
- package/types/slotted-angular-select.d.ts.map +1 -0
- package/types/slotted-angular-side-navigation.d.ts +373 -0
- package/types/slotted-angular-side-navigation.d.ts.map +1 -0
- package/types/slotted-angular-skeleton.d.ts +198 -0
- package/types/slotted-angular-skeleton.d.ts.map +1 -0
- package/types/slotted-angular-slider.d.ts +216 -0
- package/types/slotted-angular-slider.d.ts.map +1 -0
- package/types/slotted-angular-sparkline.d.ts +106 -0
- package/types/slotted-angular-sparkline.d.ts.map +1 -0
- package/types/slotted-angular-split-button.d.ts +180 -0
- package/types/slotted-angular-split-button.d.ts.map +1 -0
- package/types/slotted-angular-splitter.d.ts +206 -0
- package/types/slotted-angular-splitter.d.ts.map +1 -0
- package/types/slotted-angular-stack.d.ts +38 -0
- package/types/slotted-angular-stack.d.ts.map +1 -0
- package/types/slotted-angular-stat-card.d.ts +232 -0
- package/types/slotted-angular-stat-card.d.ts.map +1 -0
- package/types/slotted-angular-status-indicator.d.ts +106 -0
- package/types/slotted-angular-status-indicator.d.ts.map +1 -0
- package/types/slotted-angular-stepper.d.ts +198 -0
- package/types/slotted-angular-stepper.d.ts.map +1 -0
- package/types/slotted-angular-switch.d.ts +243 -0
- package/types/slotted-angular-switch.d.ts.map +1 -0
- package/types/slotted-angular-table-of-contents.d.ts +210 -0
- package/types/slotted-angular-table-of-contents.d.ts.map +1 -0
- package/types/slotted-angular-table.d.ts +888 -0
- package/types/slotted-angular-table.d.ts.map +1 -0
- package/types/slotted-angular-tabs.d.ts +340 -0
- package/types/slotted-angular-tabs.d.ts.map +1 -0
- package/types/slotted-angular-tag.d.ts +279 -0
- package/types/slotted-angular-tag.d.ts.map +1 -0
- package/types/slotted-angular-tags-input.d.ts +302 -0
- package/types/slotted-angular-tags-input.d.ts.map +1 -0
- package/types/slotted-angular-text-field.d.ts +334 -0
- package/types/slotted-angular-text-field.d.ts.map +1 -0
- package/types/slotted-angular-textarea.d.ts +150 -0
- package/types/slotted-angular-textarea.d.ts.map +1 -0
- package/types/slotted-angular-theme.d.ts +26 -0
- package/types/slotted-angular-theme.d.ts.map +1 -0
- package/types/slotted-angular-time-field.d.ts +300 -0
- package/types/slotted-angular-time-field.d.ts.map +1 -0
- package/types/slotted-angular-time-picker.d.ts +260 -0
- package/types/slotted-angular-time-picker.d.ts.map +1 -0
- package/types/slotted-angular-time-range-picker.d.ts +401 -0
- package/types/slotted-angular-time-range-picker.d.ts.map +1 -0
- package/types/slotted-angular-timeline.d.ts +329 -0
- package/types/slotted-angular-timeline.d.ts.map +1 -0
- package/types/slotted-angular-toast.d.ts +340 -0
- package/types/slotted-angular-toast.d.ts.map +1 -0
- package/types/slotted-angular-toggle-group.d.ts +167 -0
- package/types/slotted-angular-toggle-group.d.ts.map +1 -0
- package/types/slotted-angular-toggle.d.ts +106 -0
- package/types/slotted-angular-toggle.d.ts.map +1 -0
- package/types/slotted-angular-toolbar.d.ts +252 -0
- package/types/slotted-angular-toolbar.d.ts.map +1 -0
- package/types/slotted-angular-tooltip.d.ts +388 -0
- package/types/slotted-angular-tooltip.d.ts.map +1 -0
- package/types/slotted-angular-top-navigation.d.ts +442 -0
- package/types/slotted-angular-top-navigation.d.ts.map +1 -0
- package/types/slotted-angular-tour.d.ts +440 -0
- package/types/slotted-angular-tour.d.ts.map +1 -0
- package/types/slotted-angular-transfer.d.ts +296 -0
- package/types/slotted-angular-transfer.d.ts.map +1 -0
- package/types/slotted-angular-tree.d.ts +499 -0
- package/types/slotted-angular-tree.d.ts.map +1 -0
- package/types/slotted-angular-typography.d.ts +89 -0
- package/types/slotted-angular-typography.d.ts.map +1 -0
- package/types/slotted-angular-upload.d.ts +365 -0
- package/types/slotted-angular-upload.d.ts.map +1 -0
- package/types/slotted-angular-visually-hidden.d.ts +19 -0
- package/types/slotted-angular-visually-hidden.d.ts.map +1 -0
- package/types/slotted-angular-wizard.d.ts +441 -0
- package/types/slotted-angular-wizard.d.ts.map +1 -0
- package/types/slotted-angular.d.ts +3 -0
- package/types/slotted-angular.d.ts.map +1 -0
|
@@ -0,0 +1,541 @@
|
|
|
1
|
+
{
|
|
2
|
+
"family": "radio-group",
|
|
3
|
+
"ui": "radio-group",
|
|
4
|
+
"binding": "angular",
|
|
5
|
+
"catalog": {
|
|
6
|
+
"group": "Forms",
|
|
7
|
+
"summary": "Set of radios for one choice."
|
|
8
|
+
},
|
|
9
|
+
"axes": {
|
|
10
|
+
"size": [
|
|
11
|
+
"sm",
|
|
12
|
+
"md",
|
|
13
|
+
"lg"
|
|
14
|
+
],
|
|
15
|
+
"variant": [
|
|
16
|
+
"plain",
|
|
17
|
+
"tile"
|
|
18
|
+
],
|
|
19
|
+
"orientation": [
|
|
20
|
+
"vertical",
|
|
21
|
+
"horizontal"
|
|
22
|
+
],
|
|
23
|
+
"labelPlacement": [
|
|
24
|
+
"end",
|
|
25
|
+
"start"
|
|
26
|
+
]
|
|
27
|
+
},
|
|
28
|
+
"members": {
|
|
29
|
+
"radioGroup": {
|
|
30
|
+
"nativeElement": "div",
|
|
31
|
+
"defaults": {
|
|
32
|
+
"size": "md",
|
|
33
|
+
"variant": "plain",
|
|
34
|
+
"orientation": "vertical",
|
|
35
|
+
"labelPlacement": "end"
|
|
36
|
+
},
|
|
37
|
+
"capabilities": [
|
|
38
|
+
"selection",
|
|
39
|
+
"orientation",
|
|
40
|
+
"size",
|
|
41
|
+
"appearance",
|
|
42
|
+
"placement",
|
|
43
|
+
"disabled",
|
|
44
|
+
"invalid",
|
|
45
|
+
"required",
|
|
46
|
+
"readOnly",
|
|
47
|
+
"wiring"
|
|
48
|
+
],
|
|
49
|
+
"states": [
|
|
50
|
+
"default",
|
|
51
|
+
"hover",
|
|
52
|
+
"active",
|
|
53
|
+
"focus-visible",
|
|
54
|
+
"disabled",
|
|
55
|
+
"readonly",
|
|
56
|
+
"invalid",
|
|
57
|
+
"checked"
|
|
58
|
+
],
|
|
59
|
+
"parts": [
|
|
60
|
+
"root",
|
|
61
|
+
"item",
|
|
62
|
+
"label",
|
|
63
|
+
"control",
|
|
64
|
+
"indicator",
|
|
65
|
+
"description"
|
|
66
|
+
]
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
"docs": {
|
|
70
|
+
"radioGroup": {
|
|
71
|
+
"imports": {
|
|
72
|
+
"source": "import {\n provideRadioGroupDefaults,\n SlRadio,\n SlRadioDescription,\n SlRadioGroup,\n} from '@slotted/angular/radio-group';",
|
|
73
|
+
"selector": "[slRadioGroup]",
|
|
74
|
+
"exportAs": "slRadioGroup"
|
|
75
|
+
},
|
|
76
|
+
"anatomy": [
|
|
77
|
+
{
|
|
78
|
+
"part": "root",
|
|
79
|
+
"element": "the element carrying slRadioGroup",
|
|
80
|
+
"required": true,
|
|
81
|
+
"purpose": "The group. It arranges the items, holds the value, and carries data-ui=\"radio-group\", the four axes (data-size, data-variant, data-orientation, data-label-placement) and data-disabled, data-invalid and data-readonly. Its role is radiogroup; inside a field group the role is withdrawn, because the fieldset and its legend already name the set. formControl, formControlName and ngModel go on this element, which carries the value accessor and the validator."
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"part": "item",
|
|
85
|
+
"element": "the element carrying slRadio",
|
|
86
|
+
"required": true,
|
|
87
|
+
"purpose": "One choice: a two-column grid holding the control, its mark, its label and its description, with data-checked and data-disabled mirrored onto it. SlRadio is a part of SlRadioGroup rather than an entry point of its own, because a radio outside a group has no exclusive set to belong to: it injects SlRadioGroup without optional, so an SlRadio outside a group fails at construction."
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"part": "control",
|
|
91
|
+
"element": "input type=\"radio\", in the item’s template",
|
|
92
|
+
"required": true,
|
|
93
|
+
"purpose": "The native radio input. It holds the value, the name the group shares and the identifier. The shared name gives the set the platform’s keyboard behaviour. Reach the element through the item’s exportAs: item.inputElement has focus() and click()."
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"part": "indicator",
|
|
97
|
+
"element": "span",
|
|
98
|
+
"required": true,
|
|
99
|
+
"purpose": "The dot, drawn as a mask from the glyph scale over the control. It is a sibling element rather than a pseudo-element, because Firefox renders neither ::before nor ::after on an input, and it takes no pointer events."
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"part": "label",
|
|
103
|
+
"element": "label, in the item’s template",
|
|
104
|
+
"required": false,
|
|
105
|
+
"purpose": "Names the item’s control through for, and carries the target and the hover wash: a 24-pixel square around the circle, and a wash behind the circle and the text that stands half the control gap off the circle and half as far again past the text. It is as wide as its text, so the empty space beside it does not toggle the circle. Its content is the item’s default ng-content slot."
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"part": "description",
|
|
109
|
+
"element": "the element carrying slRadioDescription",
|
|
110
|
+
"required": false,
|
|
111
|
+
"purpose": "Help text under one item’s label, projected into a named slot and wired with aria-describedby. It describes that item, not the set; text about the whole set belongs to the field group around it."
|
|
112
|
+
}
|
|
113
|
+
],
|
|
114
|
+
"api": [
|
|
115
|
+
{
|
|
116
|
+
"name": "value",
|
|
117
|
+
"type": "string",
|
|
118
|
+
"defaultValue": "—",
|
|
119
|
+
"appliesTo": "SlRadioGroup",
|
|
120
|
+
"description": "The controlled value. When present, the consumer owns the choice. When absent, the radio group owns it and starts from defaultValue, or from the form control bound to the root."
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"name": "defaultValue",
|
|
124
|
+
"type": "string",
|
|
125
|
+
"defaultValue": "—",
|
|
126
|
+
"appliesTo": "SlRadioGroup",
|
|
127
|
+
"description": "The value an uncontrolled group starts from, read once when the directive initialises. Left unset, nothing is chosen and Tab lands on the first item, as the WAI-ARIA Authoring Practices recommend for a set with no default."
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"name": "name",
|
|
131
|
+
"type": "string",
|
|
132
|
+
"defaultValue": "generated",
|
|
133
|
+
"appliesTo": "SlRadioGroup",
|
|
134
|
+
"description": "The submission name every item shares, which is what makes the platform treat the items as one set. Generated when unset, because the platform groups radios by name within a form."
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
"name": "variant",
|
|
138
|
+
"type": "'plain' | 'tile'",
|
|
139
|
+
"defaultValue": "plain",
|
|
140
|
+
"appliesTo": "SlRadioGroup, provideRadioGroupDefaults",
|
|
141
|
+
"description": "How every item is drawn. tile frames each item and makes its whole surface the target; the inputs still share a name, so the arrow keys, the wrap and the single tab stop do not change. Arranging the tiles is left to Grid."
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"name": "orientation",
|
|
145
|
+
"type": "'vertical' | 'horizontal'",
|
|
146
|
+
"defaultValue": "vertical",
|
|
147
|
+
"appliesTo": "SlRadioGroup, provideRadioGroupDefaults",
|
|
148
|
+
"description": "How the choices flow. A horizontal set wraps instead of scrolling, and aria-orientation is written only where the group carries the radiogroup role."
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
"name": "size",
|
|
152
|
+
"type": "'sm' | 'md' | 'lg'",
|
|
153
|
+
"defaultValue": "md",
|
|
154
|
+
"appliesTo": "SlRadioGroup, provideRadioGroupDefaults",
|
|
155
|
+
"description": "The type step, passed to every item. A field or field group around the radio group decides it first, then the provider. The circle follows the control glyph scale, which the theme restates per density."
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
"name": "labelPlacement",
|
|
159
|
+
"type": "'end' | 'start'",
|
|
160
|
+
"defaultValue": "end",
|
|
161
|
+
"appliesTo": "SlRadioGroup, provideRadioGroupDefaults",
|
|
162
|
+
"description": "Which side of its label each circle is on, set once for the set so the circles line up."
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
"name": "disabled",
|
|
166
|
+
"type": "boolean",
|
|
167
|
+
"defaultValue": "from the field, or false",
|
|
168
|
+
"appliesTo": "SlRadioGroup, SlRadio",
|
|
169
|
+
"description": "Unset rather than false. Reaches every item as the native attribute, which also makes the browser skip the item with the arrow keys. Set it on one SlRadio to disable that option alone. A disabled form control disables the group as well."
|
|
170
|
+
},
|
|
171
|
+
{
|
|
172
|
+
"name": "readOnly",
|
|
173
|
+
"type": "boolean",
|
|
174
|
+
"defaultValue": "from the field, or false",
|
|
175
|
+
"appliesTo": "SlRadioGroup",
|
|
176
|
+
"description": "Unset rather than false. A radio has no native readonly, so the radio group refuses every activation and writes aria-readonly; every item keeps its tab stop, its focus ring and its contrast."
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
"name": "invalid",
|
|
180
|
+
"type": "boolean",
|
|
181
|
+
"defaultValue": "from the field, or false",
|
|
182
|
+
"appliesTo": "SlRadioGroup",
|
|
183
|
+
"description": "Unset rather than false. Writes aria-invalid on the group and data-invalid on the root, which draws every circle in the danger tone with a thicker edge."
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
"name": "required",
|
|
187
|
+
"type": "boolean",
|
|
188
|
+
"defaultValue": "from the field, or false",
|
|
189
|
+
"appliesTo": "SlRadioGroup",
|
|
190
|
+
"description": "Unset rather than false. Writes aria-required on the group and makes its validator demand a value, never the native required, which would turn on browser constraint validation."
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
"name": "value, on SlRadio",
|
|
194
|
+
"type": "string",
|
|
195
|
+
"defaultValue": "—",
|
|
196
|
+
"appliesTo": "SlRadio",
|
|
197
|
+
"description": "What this item selects, and the value the group holds when it is chosen. Required: an item with no value is a choice nobody can make."
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
"name": "slRadioDescription",
|
|
201
|
+
"type": "directive",
|
|
202
|
+
"defaultValue": "—",
|
|
203
|
+
"appliesTo": "a projected element",
|
|
204
|
+
"description": "Help text under the item’s label, wired with aria-describedby, so it describes that item and not the set."
|
|
205
|
+
}
|
|
206
|
+
],
|
|
207
|
+
"composition": [
|
|
208
|
+
{
|
|
209
|
+
"name": "exportAs=\"slRadioGroup\" / \"slRadio\"",
|
|
210
|
+
"type": "SlRadioGroup / SlRadio",
|
|
211
|
+
"defaultValue": "—",
|
|
212
|
+
"appliesTo": "a template",
|
|
213
|
+
"description": "Reaches either instance. inputElement on an item is its input, which already has focus() and click(), so there is no imperative handle."
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
"name": "ControlValueAccessor and Validator",
|
|
217
|
+
"type": "formControl, formControlName, ngModel",
|
|
218
|
+
"defaultValue": "—",
|
|
219
|
+
"appliesTo": "the host element",
|
|
220
|
+
"description": "Both are on the group’s root, so a form binding goes on the element that already carries slRadioGroup. required becomes a validator over the set; React has no equivalent."
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
"name": "provideRadioGroupDefaults()",
|
|
224
|
+
"type": "{ size, variant, orientation, labelPlacement }",
|
|
225
|
+
"defaultValue": "—",
|
|
226
|
+
"appliesTo": "an injector",
|
|
227
|
+
"description": "The four decisions an application takes once for every radio group under the injector. A field or field group around a radio group decides size before the token."
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
"name": "the host element",
|
|
231
|
+
"type": "any element",
|
|
232
|
+
"defaultValue": "—",
|
|
233
|
+
"appliesTo": "SlRadioGroup, SlRadio",
|
|
234
|
+
"description": "Each root is the consumer’s own element, one more element than React renders: a set of choices can be a ul with each item written as an li."
|
|
235
|
+
},
|
|
236
|
+
{
|
|
237
|
+
"name": "role",
|
|
238
|
+
"type": "string",
|
|
239
|
+
"defaultValue": "radiogroup, or none inside a field group",
|
|
240
|
+
"appliesTo": "the host element",
|
|
241
|
+
"description": "A role written as a static attribute wins over both, because it is read before the host binding computes."
|
|
242
|
+
}
|
|
243
|
+
],
|
|
244
|
+
"events": [
|
|
245
|
+
{
|
|
246
|
+
"name": "(valueChange)",
|
|
247
|
+
"payload": "ChangeRequest<string | undefined>",
|
|
248
|
+
"when": "Before the value moves. request.value is the new value and request.previous the value it replaces, which is undefined while nothing is chosen, the state the WAI-ARIA Authoring Practices ask a group to start in. request.reason is pointer or keyboard, request.source is the originating event, and request.cancel() refuses the move before anything commits, including the platform’s own selection. There is no [(value)], because a two-way binding carries only the value and none of the rest of the request."
|
|
249
|
+
},
|
|
250
|
+
{
|
|
251
|
+
"name": "ControlValueAccessor and Validator",
|
|
252
|
+
"payload": "string",
|
|
253
|
+
"when": "Whenever the value moves under a formControl, formControlName or ngModel written on the root. The radio group also validates the set: when required, it fails with { required: true } while nothing is chosen, because “choose one” is a fact about the group and not about any one option."
|
|
254
|
+
}
|
|
255
|
+
],
|
|
256
|
+
"accessibility": [
|
|
257
|
+
"The radio group follows the WAI-ARIA Authoring Practices Radio Group pattern (w3.org/WAI/ARIA/apg/patterns/radio/), and the platform implements its whole keyboard table: Tab lands on the checked item, or on the first when none is checked; Space checks the focused item; the arrow keys move focus and selection together on both axes; the set wraps at both ends; disabled items are skipped. Native radios that share a name within one form provide all of it, including the arrow directions of a right-to-left document.",
|
|
258
|
+
"This is why the items share a name, and why one is generated when none is written: the platform groups radios by name within a form, so radios without a shared name are not a set. The cost is that an unnamed radio group inside a form submits under a generated key.",
|
|
259
|
+
"Each item takes its accessible name from its own label, through for pointing at an identifier the component generates. The group takes its name from the field group’s legend or, outside a field group, from an aria-label the consumer writes. Inside a field group the radiogroup role is withdrawn, so the set is not announced twice.",
|
|
260
|
+
"The group writes aria-required, never the native required on an item, and its validator, not any one item, demands a value, because “choose one” is a fact about the set. disabled is native, because the native attribute is also what makes the browser skip the option with the arrow keys.",
|
|
261
|
+
"A radio has no native read-only state, so the radio group enforces one: it refuses the activation, aria-readonly announces it on the group, and every item keeps its tab stop, its focus ring and its full contrast. The chosen option keeps its accent, because the value is real.",
|
|
262
|
+
"Refusing the activation is not enough on its own. The HTML standard’s canceled activation behaviour restores the clicked radio but not the neighbour it unchecked, so the radio group writes every element from the value afterwards. Without that, a controlled group that refused a change would show no choice at all.",
|
|
263
|
+
"The invalid state does not rely on colour alone. In the high-contrast scheme the theme paints the danger border in the same colour as every other border, so the circle also thickens its edge. The sentence that says what is wrong is the field group’s error.",
|
|
264
|
+
"The target is larger than the circle. A 24-pixel square around the circle meets WCAG 2.2 SC 2.5.8 at every size and density, while the circle is 14 pixels at size=\"sm\"; the label extends the target to the end of the text, and the hover wash covers exactly that area. The row keeps its line height: the target is drawn around the circle, not laid out beside it."
|
|
265
|
+
]
|
|
266
|
+
}
|
|
267
|
+
},
|
|
268
|
+
"tokens": [
|
|
269
|
+
"--slotted-border-strong",
|
|
270
|
+
"--slotted-border-width-medium",
|
|
271
|
+
"--slotted-border-width-thick",
|
|
272
|
+
"--slotted-control-border-color",
|
|
273
|
+
"--slotted-control-border-width",
|
|
274
|
+
"--slotted-control-font-family",
|
|
275
|
+
"--slotted-control-font-size-lg",
|
|
276
|
+
"--slotted-control-font-size-md",
|
|
277
|
+
"--slotted-control-font-size-sm",
|
|
278
|
+
"--slotted-control-gap-lg",
|
|
279
|
+
"--slotted-control-gap-md",
|
|
280
|
+
"--slotted-control-gap-sm",
|
|
281
|
+
"--slotted-control-invalid-edge-width",
|
|
282
|
+
"--slotted-control-label-gap-lg",
|
|
283
|
+
"--slotted-control-label-gap-md",
|
|
284
|
+
"--slotted-control-label-gap-sm",
|
|
285
|
+
"--slotted-control-padding-inline-lg",
|
|
286
|
+
"--slotted-control-padding-inline-md",
|
|
287
|
+
"--slotted-control-padding-inline-sm",
|
|
288
|
+
"--slotted-control-shadow",
|
|
289
|
+
"--slotted-control-transition-duration",
|
|
290
|
+
"--slotted-control-transition-easing",
|
|
291
|
+
"--slotted-disabled-background",
|
|
292
|
+
"--slotted-disabled-border",
|
|
293
|
+
"--slotted-disabled-foreground",
|
|
294
|
+
"--slotted-duration-medium",
|
|
295
|
+
"--slotted-focus-ring-color",
|
|
296
|
+
"--slotted-focus-ring-color-invalid",
|
|
297
|
+
"--slotted-focus-ring-offset",
|
|
298
|
+
"--slotted-focus-ring-width",
|
|
299
|
+
"--slotted-font-size-xs",
|
|
300
|
+
"--slotted-line-height-md",
|
|
301
|
+
"--slotted-line-height-xs",
|
|
302
|
+
"--slotted-radio-group-active-background",
|
|
303
|
+
"--slotted-radio-group-background",
|
|
304
|
+
"--slotted-radio-group-border-color",
|
|
305
|
+
"--slotted-radio-group-border-width",
|
|
306
|
+
"--slotted-radio-group-checked-active-border-color",
|
|
307
|
+
"--slotted-radio-group-checked-border-color",
|
|
308
|
+
"--slotted-radio-group-checked-hover-border-color",
|
|
309
|
+
"--slotted-radio-group-color",
|
|
310
|
+
"--slotted-radio-group-description-color",
|
|
311
|
+
"--slotted-radio-group-description-font-size",
|
|
312
|
+
"--slotted-radio-group-disabled-background",
|
|
313
|
+
"--slotted-radio-group-disabled-border-color",
|
|
314
|
+
"--slotted-radio-group-disabled-color",
|
|
315
|
+
"--slotted-radio-group-disabled-mark-color",
|
|
316
|
+
"--slotted-radio-group-gap",
|
|
317
|
+
"--slotted-radio-group-halo-color",
|
|
318
|
+
"--slotted-radio-group-hover-border-color",
|
|
319
|
+
"--slotted-radio-group-invalid-border-color",
|
|
320
|
+
"--slotted-radio-group-invalid-checked-border-color",
|
|
321
|
+
"--slotted-radio-group-invalid-edge-width",
|
|
322
|
+
"--slotted-radio-group-invalid-focus-ring-color",
|
|
323
|
+
"--slotted-radio-group-invalid-mark-color",
|
|
324
|
+
"--slotted-radio-group-line-height",
|
|
325
|
+
"--slotted-radio-group-mark-color",
|
|
326
|
+
"--slotted-radio-group-readonly-background",
|
|
327
|
+
"--slotted-radio-group-size",
|
|
328
|
+
"--slotted-radio-group-tile-active-background",
|
|
329
|
+
"--slotted-radio-group-tile-background",
|
|
330
|
+
"--slotted-radio-group-tile-border-color",
|
|
331
|
+
"--slotted-radio-group-tile-checked-background",
|
|
332
|
+
"--slotted-radio-group-tile-checked-border-color",
|
|
333
|
+
"--slotted-radio-group-tile-checked-hover-border-color",
|
|
334
|
+
"--slotted-radio-group-tile-description-gap",
|
|
335
|
+
"--slotted-radio-group-tile-disabled-background",
|
|
336
|
+
"--slotted-radio-group-tile-disabled-border-color",
|
|
337
|
+
"--slotted-radio-group-tile-hover-background",
|
|
338
|
+
"--slotted-radio-group-tile-hover-border-color",
|
|
339
|
+
"--slotted-radio-group-tile-inset",
|
|
340
|
+
"--slotted-radio-group-tile-invalid-border-color",
|
|
341
|
+
"--slotted-radio-group-tile-invalid-checked-background",
|
|
342
|
+
"--slotted-radio-group-tile-invalid-checked-border-color",
|
|
343
|
+
"--slotted-radio-group-tile-radius",
|
|
344
|
+
"--slotted-radio-group-tile-readonly-background",
|
|
345
|
+
"--slotted-radio-group-tile-readonly-border-color",
|
|
346
|
+
"--slotted-radius-full",
|
|
347
|
+
"--slotted-radius-md",
|
|
348
|
+
"--slotted-selection-halo-opacity",
|
|
349
|
+
"--slotted-selection-size-lg",
|
|
350
|
+
"--slotted-selection-size-md",
|
|
351
|
+
"--slotted-selection-size-sm",
|
|
352
|
+
"--slotted-space-2",
|
|
353
|
+
"--slotted-space-3",
|
|
354
|
+
"--slotted-surface",
|
|
355
|
+
"--slotted-target-min",
|
|
356
|
+
"--slotted-text",
|
|
357
|
+
"--slotted-text-muted",
|
|
358
|
+
"--slotted-tone-accent-border",
|
|
359
|
+
"--slotted-tone-accent-solid",
|
|
360
|
+
"--slotted-tone-accent-solid-active",
|
|
361
|
+
"--slotted-tone-accent-solid-hover",
|
|
362
|
+
"--slotted-tone-accent-subtle-active",
|
|
363
|
+
"--slotted-tone-accent-subtle-hover",
|
|
364
|
+
"--slotted-tone-accent-surface",
|
|
365
|
+
"--slotted-tone-accent-text",
|
|
366
|
+
"--slotted-tone-danger-border",
|
|
367
|
+
"--slotted-tone-danger-solid",
|
|
368
|
+
"--slotted-tone-danger-surface",
|
|
369
|
+
"--slotted-tone-secondary-subtle-hover"
|
|
370
|
+
],
|
|
371
|
+
"examples": [
|
|
372
|
+
{
|
|
373
|
+
"id": "playground",
|
|
374
|
+
"title": "Playground",
|
|
375
|
+
"note": "One set with every axis on it, driven by the controls below the canvas. Tab into it once: the whole group is a single stop, and the arrows move the choice from there.",
|
|
376
|
+
"language": "html",
|
|
377
|
+
"source": "<div slRadioGroup name=\"shipping\" defaultValue=\"standard\">\n <div slRadio value=\"standard\">Entrega padrão</div>\n <div slRadio value=\"express\">Entrega expressa</div>\n <div slRadio value=\"pickup\">Retirar na loja</div>\n</div>\n",
|
|
378
|
+
"verdict": "excerpt"
|
|
379
|
+
},
|
|
380
|
+
{
|
|
381
|
+
"id": "orientation",
|
|
382
|
+
"title": "How the choices flow",
|
|
383
|
+
"note": "A horizontal set wraps rather than scrolling or clipping, and aria-orientation is written only where the group owns its role — on an element with no role the attribute describes nothing.",
|
|
384
|
+
"language": "ts",
|
|
385
|
+
"source": "import { Component } from '@angular/core';\nimport { SlFieldGroup, SlFieldGroupLegend } from '@slotted/angular/field-group';\nimport { SlRadio, SlRadioGroup } from '@slotted/angular/radio-group';\n\n@Component({\n selector: 'app-radio-group-orientation',\n imports: [SlFieldGroup, SlFieldGroupLegend, SlRadio, SlRadioGroup],\n template: `\n <fieldset slFieldGroup>\n <legend slFieldGroupLegend>Report period</legend>\n <div slRadioGroup orientation=\"horizontal\" defaultValue=\"month\">\n <div slRadio value=\"day\">Day</div>\n <div slRadio value=\"week\">Week</div>\n <div slRadio value=\"month\">Month</div>\n <div slRadio value=\"quarter\">Quarter</div>\n <div slRadio value=\"year\">Year</div>\n </div>\n </fieldset>\n `,\n})\nexport class RadioGroupOrientation {}\n",
|
|
386
|
+
"verdict": "example"
|
|
387
|
+
},
|
|
388
|
+
{
|
|
389
|
+
"id": "tile",
|
|
390
|
+
"title": "The plan picker, which is what tiles are for",
|
|
391
|
+
"note": "An exclusive set of framed choices is the case Cloudscape built a whole Tiles family for and Carbon a selectable Tile. Here it is one axis on the group: each item becomes the surface, the arrow keys and the roving tab stop stay the platform’s, and Grid gives the row equal widths and equal heights.",
|
|
392
|
+
"language": "html",
|
|
393
|
+
"source": "<div slRadioGroup name=\"plan\" variant=\"tile\" defaultValue=\"team\">\n <div slGrid minItemWidth=\"sm\">\n <div slRadio value=\"starter\">\n Starter\n <p slRadioDescription>Até três projetos e um assento.</p>\n </div>\n <div slRadio value=\"team\">\n Team\n <p slRadioDescription>Projetos sem limite e dez assentos.</p>\n </div>\n </div>\n</div>\n",
|
|
394
|
+
"verdict": "excerpt"
|
|
395
|
+
},
|
|
396
|
+
{
|
|
397
|
+
"id": "sizes",
|
|
398
|
+
"title": "The step the set sits at",
|
|
399
|
+
"note": "The circle is the control glyph scale, so the three steps shrink together with the type and the gap when the toolbar switches to dense — and every label keeps its 24-pixel target at every one of them.",
|
|
400
|
+
"language": "ts",
|
|
401
|
+
"source": "import { Component } from '@angular/core';\nimport { SlFieldGroup, SlFieldGroupLegend } from '@slotted/angular/field-group';\nimport { SlRadio, SlRadioGroup } from '@slotted/angular/radio-group';\nimport { SlStack } from '@slotted/angular/stack';\n\n@Component({\n selector: 'app-radio-group-sizes',\n imports: [SlFieldGroup, SlFieldGroupLegend, SlRadio, SlRadioGroup, SlStack],\n template: `\n <div slStack [gap]=\"5\">\n <fieldset slFieldGroup size=\"sm\">\n <legend slFieldGroupLegend>Count by</legend>\n <div slRadioGroup orientation=\"horizontal\" defaultValue=\"cases\">\n <div slRadio value=\"cases\">Cases</div>\n <div slRadio value=\"units\">Units</div>\n </div>\n </fieldset>\n <fieldset slFieldGroup size=\"md\">\n <legend slFieldGroupLegend>Payment terms</legend>\n <div slRadioGroup orientation=\"horizontal\" defaultValue=\"net-30\">\n <div slRadio value=\"net-30\">Net 30</div>\n <div slRadio value=\"net-60\">Net 60</div>\n </div>\n </fieldset>\n <fieldset slFieldGroup size=\"lg\">\n <legend slFieldGroupLegend>Account type</legend>\n <div slRadioGroup orientation=\"horizontal\" defaultValue=\"business\">\n <div slRadio value=\"business\">Business</div>\n <div slRadio value=\"personal\">Personal</div>\n </div>\n </fieldset>\n </div>\n `,\n})\nexport class RadioGroupSizes {}\n",
|
|
402
|
+
"verdict": "example"
|
|
403
|
+
},
|
|
404
|
+
{
|
|
405
|
+
"id": "states",
|
|
406
|
+
"title": "Every state the set paints",
|
|
407
|
+
"note": "Read-only keeps every tab stop and the chosen item keeps its accent, because the value is real; disabled loses both. A single unavailable option dims from its own element’s state rather than from the group’s.",
|
|
408
|
+
"language": "ts",
|
|
409
|
+
"source": "import { Component } from '@angular/core';\nimport {\n SlFieldGroup,\n SlFieldGroupDescription,\n SlFieldGroupError,\n SlFieldGroupLegend,\n} from '@slotted/angular/field-group';\nimport { SlRadio, SlRadioGroup } from '@slotted/angular/radio-group';\nimport { SlStack } from '@slotted/angular/stack';\n\n@Component({\n selector: 'app-radio-group-states',\n imports: [\n SlFieldGroup,\n SlFieldGroupDescription,\n SlFieldGroupError,\n SlFieldGroupLegend,\n SlRadio,\n SlRadioGroup,\n SlStack,\n ],\n template: `\n <div slStack [gap]=\"6\">\n <fieldset slFieldGroup required>\n <legend slFieldGroupLegend>Payment terms</legend>\n <span slFieldGroupError>Choose the payment terms for this customer.</span>\n <div slRadioGroup invalid orientation=\"horizontal\">\n <div slRadio value=\"net-30\">Net 30</div>\n <div slRadio value=\"net-60\">Net 60</div>\n <div slRadio value=\"prepaid\">Prepaid</div>\n </div>\n </fieldset>\n <fieldset slFieldGroup readOnly>\n <legend slFieldGroupLegend>Warehouse</legend>\n <span slFieldGroupDescription>Stock is reserved once the order is picked.</span>\n <div slRadioGroup orientation=\"horizontal\" defaultValue=\"seattle\">\n <div slRadio value=\"seattle\">Seattle</div>\n <div slRadio value=\"tacoma\">Tacoma</div>\n </div>\n </fieldset>\n <fieldset slFieldGroup disabled>\n <legend slFieldGroupLegend>Return method</legend>\n <span slFieldGroupDescription>Returns open when the order is delivered.</span>\n <div slRadioGroup orientation=\"horizontal\" defaultValue=\"drop-off\">\n <div slRadio value=\"drop-off\">Drop-off</div>\n <div slRadio value=\"pickup\">Pickup</div>\n </div>\n </fieldset>\n </div>\n `,\n})\nexport class RadioGroupStates {}\n",
|
|
410
|
+
"verdict": "example"
|
|
411
|
+
},
|
|
412
|
+
{
|
|
413
|
+
"id": "placement",
|
|
414
|
+
"title": "Which side of its label the circle is on",
|
|
415
|
+
"note": "start pushes every circle to the end of the row, and the column is a fraction rather than each label’s own width because a column of controls has to line up with itself.",
|
|
416
|
+
"language": "html",
|
|
417
|
+
"source": "<div slRadioGroup labelPlacement=\"end\" defaultValue=\"card\">\n <div slRadio value=\"card\">Cartão</div>\n</div>\n\n<div slRadioGroup labelPlacement=\"start\" defaultValue=\"card\">\n <div slRadio value=\"card\">Cartão</div>\n</div>\n",
|
|
418
|
+
"verdict": "excerpt"
|
|
419
|
+
},
|
|
420
|
+
{
|
|
421
|
+
"id": "description",
|
|
422
|
+
"title": "Saying more about one option",
|
|
423
|
+
"note": "The description belongs to the item and reaches only that item’s control, so a reader on the second option hears the second sentence rather than everything the set has to say.",
|
|
424
|
+
"language": "html",
|
|
425
|
+
"source": "<div slRadioGroup defaultValue=\"monthly\">\n <div slRadio value=\"monthly\">\n Mensal\n <p slRadioDescription>Cobrado todo dia 5, sem multa de cancelamento.</p>\n </div>\n <div slRadio value=\"yearly\">\n Anual\n <p slRadioDescription>Dois meses de desconto, cobrados na contratação.</p>\n </div>\n</div>\n",
|
|
426
|
+
"verdict": "excerpt"
|
|
427
|
+
},
|
|
428
|
+
{
|
|
429
|
+
"id": "field",
|
|
430
|
+
"title": "Inside a group of fields, and in a reactive form",
|
|
431
|
+
"note": "The fieldset and its legend are what group and name the set, so the group withdraws its own radiogroup role — and the same element takes formControlName, because the accessor and the validator both live on the root.",
|
|
432
|
+
"language": "html",
|
|
433
|
+
"source": "<fieldset slFieldGroup required>\n <legend slFieldGroupLegend>Forma de pagamento</legend>\n <div slRadioGroup required formControlName=\"payment\">\n <div slRadio value=\"card\">Cartão</div>\n <div slRadio value=\"pix\">Pix</div>\n </div>\n</fieldset>\n",
|
|
434
|
+
"verdict": "excerpt"
|
|
435
|
+
},
|
|
436
|
+
{
|
|
437
|
+
"id": "content",
|
|
438
|
+
"title": "Content the family did not choose",
|
|
439
|
+
"note": "An option that wraps to three lines keeps its circle on the first of them, an unbroken token breaks instead of taking the page with it, and a right-to-left label mirrors the whole row.",
|
|
440
|
+
"language": "html",
|
|
441
|
+
"source": "<div slRadioGroup defaultValue=\"a\">\n <div slRadio value=\"a\">\n Autorizo o compartilhamento dos dados de entrega com a transportadora.\n <p slRadioDescription>O círculo continua na primeira linha do rótulo.</p>\n </div>\n <div slRadio value=\"b\" dir=\"rtl\">أوافق على مشاركة بيانات التسليم.</div>\n</div>\n",
|
|
442
|
+
"verdict": "excerpt"
|
|
443
|
+
},
|
|
444
|
+
{
|
|
445
|
+
"id": "composition",
|
|
446
|
+
"title": "Setting it once, and reaching past it",
|
|
447
|
+
"note": "The token carries the three decisions an application takes once, exportAs reaches both instances, and the root is the consumer’s own element — so a set of choices can be a real list.",
|
|
448
|
+
"language": "html",
|
|
449
|
+
"source": "<ul slRadioGroup class=\"slotted-demo-list\" defaultValue=\"a\">\n <li slRadio value=\"a\">Um item</li>\n <li slRadio value=\"b\">E outro abaixo dele</li>\n</ul>\n",
|
|
450
|
+
"verdict": "excerpt"
|
|
451
|
+
},
|
|
452
|
+
{
|
|
453
|
+
"id": "keyboard",
|
|
454
|
+
"title": "The APG table, implemented by the platform",
|
|
455
|
+
"note": "Tab lands on the chosen item or on the first, the arrows move focus and selection together in both axes, the set wraps at both ends, and disabled options are skipped — none of it written here.",
|
|
456
|
+
"language": "html",
|
|
457
|
+
"source": "<!-- Native radios in one form owner with one name already implement the\n whole APG table, in a right-to-left document too. The group generates\n a name when the consumer writes none, because an unnamed set is not a\n set — the price is that such a group inside a form submits under a\n generated key. -->\n<div slRadioGroup name=\"shipping\">\n <div slRadio value=\"standard\">Padrão</div>\n <div slRadio value=\"express\">Expressa</div>\n</div>\n",
|
|
458
|
+
"verdict": "excerpt"
|
|
459
|
+
},
|
|
460
|
+
{
|
|
461
|
+
"id": "basic",
|
|
462
|
+
"title": "basic.ts",
|
|
463
|
+
"note": null,
|
|
464
|
+
"language": "ts",
|
|
465
|
+
"source": "import { Component } from '@angular/core';\nimport { SlFieldGroup, SlFieldGroupLegend } from '@slotted/angular/field-group';\nimport { SlRadio, SlRadioGroup } from '@slotted/angular/radio-group';\n\n@Component({\n selector: 'app-radio-group-basic',\n imports: [SlFieldGroup, SlFieldGroupLegend, SlRadio, SlRadioGroup],\n template: `\n <fieldset slFieldGroup>\n <legend slFieldGroupLegend>Delivery speed</legend>\n <div slRadioGroup name=\"delivery\" defaultValue=\"standard\">\n <div slRadio value=\"standard\">Standard, 3 to 5 business days</div>\n <div slRadio value=\"express\">Express, next business day</div>\n <div slRadio value=\"same-day\">Same day, Seattle only</div>\n </div>\n </fieldset>\n `,\n})\nexport class RadioGroupBasic {}\n",
|
|
466
|
+
"verdict": "example"
|
|
467
|
+
},
|
|
468
|
+
{
|
|
469
|
+
"id": "controlled",
|
|
470
|
+
"title": "controlled.ts",
|
|
471
|
+
"note": null,
|
|
472
|
+
"language": "ts",
|
|
473
|
+
"source": "import { Component, computed, signal } from '@angular/core';\nimport { SlFieldGroup, SlFieldGroupLegend } from '@slotted/angular/field-group';\nimport { SlRadio, SlRadioGroup } from '@slotted/angular/radio-group';\nimport { SlStack } from '@slotted/angular/stack';\n\nconst TOTALS: Record<string, string> = {\n usd: '$1,240.00',\n eur: '€1,147.00',\n gbp: '£982.00',\n};\n\n@Component({\n selector: 'app-radio-group-controlled',\n imports: [SlFieldGroup, SlFieldGroupLegend, SlRadio, SlRadioGroup, SlStack],\n template: `\n <div slStack [gap]=\"4\">\n <fieldset slFieldGroup>\n <legend slFieldGroupLegend>Invoice currency</legend>\n <div\n slRadioGroup\n orientation=\"horizontal\"\n [value]=\"currency()\"\n (valueChange)=\"currency.set($event.value ?? 'usd')\"\n >\n <div slRadio value=\"usd\">USD</div>\n <div slRadio value=\"eur\">EUR</div>\n <div slRadio value=\"gbp\">GBP</div>\n </div>\n </fieldset>\n <span>Invoice total: {{ total() }}</span>\n </div>\n `,\n})\nexport class RadioGroupControlled {\n readonly currency = signal('usd');\n readonly total = computed(() => TOTALS[this.currency()]);\n}\n",
|
|
474
|
+
"verdict": "example"
|
|
475
|
+
},
|
|
476
|
+
{
|
|
477
|
+
"id": "defaults",
|
|
478
|
+
"title": "defaults.ts",
|
|
479
|
+
"note": null,
|
|
480
|
+
"language": "ts",
|
|
481
|
+
"source": "import { Component } from '@angular/core';\nimport { SlFieldGroup, SlFieldGroupLegend } from '@slotted/angular/field-group';\nimport { provideRadioGroupDefaults, SlRadio, SlRadioGroup } from '@slotted/angular/radio-group';\nimport { SlStack } from '@slotted/angular/stack';\n\n@Component({\n selector: 'app-radio-group-defaults',\n imports: [SlFieldGroup, SlFieldGroupLegend, SlRadio, SlRadioGroup, SlStack],\n providers: [provideRadioGroupDefaults({ orientation: 'horizontal' })],\n template: `\n <div slStack [gap]=\"5\">\n <fieldset slFieldGroup>\n <legend slFieldGroupLegend>Status</legend>\n <div slRadioGroup defaultValue=\"all\">\n <div slRadio value=\"all\">All</div>\n <div slRadio value=\"open\">Open</div>\n <div slRadio value=\"paid\">Paid</div>\n <div slRadio value=\"overdue\">Overdue</div>\n </div>\n </fieldset>\n <fieldset slFieldGroup>\n <legend slFieldGroupLegend>Channel</legend>\n <div slRadioGroup defaultValue=\"all\">\n <div slRadio value=\"all\">All</div>\n <div slRadio value=\"online\">Online</div>\n <div slRadio value=\"retail\">Retail</div>\n <div slRadio value=\"wholesale\">Wholesale</div>\n </div>\n </fieldset>\n </div>\n `,\n})\nexport class RadioGroupDefaults {}\n",
|
|
482
|
+
"verdict": "example"
|
|
483
|
+
},
|
|
484
|
+
{
|
|
485
|
+
"id": "descriptions",
|
|
486
|
+
"title": "descriptions.ts",
|
|
487
|
+
"note": null,
|
|
488
|
+
"language": "ts",
|
|
489
|
+
"source": "import { Component } from '@angular/core';\nimport { SlFieldGroup, SlFieldGroupLegend } from '@slotted/angular/field-group';\nimport { SlRadio, SlRadioDescription, SlRadioGroup } from '@slotted/angular/radio-group';\n\n@Component({\n selector: 'app-radio-group-descriptions',\n imports: [SlFieldGroup, SlFieldGroupLegend, SlRadio, SlRadioDescription, SlRadioGroup],\n template: `\n <fieldset slFieldGroup>\n <legend slFieldGroupLegend>Billing cycle</legend>\n <div slRadioGroup defaultValue=\"monthly\">\n <div slRadio value=\"monthly\">\n Monthly\n <p slRadioDescription>Billed on the 5th of each month. Cancel any time.</p>\n </div>\n <div slRadio value=\"yearly\">\n Yearly\n <p slRadioDescription>Two months free, billed once when you subscribe.</p>\n </div>\n </div>\n </fieldset>\n `,\n})\nexport class RadioGroupDescriptions {}\n",
|
|
490
|
+
"verdict": "example"
|
|
491
|
+
},
|
|
492
|
+
{
|
|
493
|
+
"id": "disabled-option",
|
|
494
|
+
"title": "disabled-option.ts",
|
|
495
|
+
"note": null,
|
|
496
|
+
"language": "ts",
|
|
497
|
+
"source": "import { Component } from '@angular/core';\nimport { SlFieldGroup, SlFieldGroupLegend } from '@slotted/angular/field-group';\nimport { SlRadio, SlRadioDescription, SlRadioGroup } from '@slotted/angular/radio-group';\n\n@Component({\n selector: 'app-radio-group-disabled-option',\n imports: [SlFieldGroup, SlFieldGroupLegend, SlRadio, SlRadioDescription, SlRadioGroup],\n template: `\n <fieldset slFieldGroup>\n <legend slFieldGroupLegend>Carrier</legend>\n <div slRadioGroup defaultValue=\"ups\">\n <div slRadio value=\"ups\">UPS Ground</div>\n <div slRadio value=\"fedex\">FedEx 2Day</div>\n <div slRadio value=\"dhl\" disabled>\n DHL Express\n <p slRadioDescription>Does not deliver to Anchorage, AK.</p>\n </div>\n </div>\n </fieldset>\n `,\n})\nexport class RadioGroupDisabledOption {}\n",
|
|
498
|
+
"verdict": "example"
|
|
499
|
+
},
|
|
500
|
+
{
|
|
501
|
+
"id": "label-placement",
|
|
502
|
+
"title": "label-placement.ts",
|
|
503
|
+
"note": null,
|
|
504
|
+
"language": "ts",
|
|
505
|
+
"source": "import { Component } from '@angular/core';\nimport { SlFieldGroup, SlFieldGroupLegend } from '@slotted/angular/field-group';\nimport { SlRadio, SlRadioGroup } from '@slotted/angular/radio-group';\n\n@Component({\n selector: 'app-radio-group-label-placement',\n imports: [SlFieldGroup, SlFieldGroupLegend, SlRadio, SlRadioGroup],\n template: `\n <fieldset slFieldGroup>\n <legend slFieldGroupLegend>Send the stock report</legend>\n <div slRadioGroup labelPlacement=\"start\" defaultValue=\"monday\">\n <div slRadio value=\"daily\">Every morning</div>\n <div slRadio value=\"monday\">Every Monday</div>\n <div slRadio value=\"never\">Never</div>\n </div>\n </fieldset>\n `,\n})\nexport class RadioGroupLabelPlacement {}\n",
|
|
506
|
+
"verdict": "example"
|
|
507
|
+
},
|
|
508
|
+
{
|
|
509
|
+
"id": "refuse",
|
|
510
|
+
"title": "refuse.ts",
|
|
511
|
+
"note": null,
|
|
512
|
+
"language": "ts",
|
|
513
|
+
"source": "import { Component, signal } from '@angular/core';\nimport type { ChangeRequest } from '@slotted/core/state';\nimport {\n SlFieldGroup,\n SlFieldGroupDescription,\n SlFieldGroupError,\n SlFieldGroupLegend,\n} from '@slotted/angular/field-group';\nimport { SlRadio, SlRadioGroup } from '@slotted/angular/radio-group';\n\nconst SEATS_IN_USE = 8;\n\n@Component({\n selector: 'app-radio-group-refuse',\n imports: [\n SlFieldGroup,\n SlFieldGroupDescription,\n SlFieldGroupError,\n SlFieldGroupLegend,\n SlRadio,\n SlRadioGroup,\n ],\n template: `\n <fieldset slFieldGroup>\n <legend slFieldGroupLegend>Plan</legend>\n <span slFieldGroupDescription>This workspace has {{ seatsInUse }} seats in use.</span>\n <span slFieldGroupError tone=\"warning\" live=\"polite\" reserve>{{ notice() }}</span>\n <div slRadioGroup defaultValue=\"team\" (valueChange)=\"request($event)\">\n <div slRadio value=\"starter\">Starter, one seat</div>\n <div slRadio value=\"team\">Team, ten seats</div>\n <div slRadio value=\"business\">Business, unlimited seats</div>\n </div>\n </fieldset>\n `,\n})\nexport class RadioGroupRefuse {\n readonly seatsInUse = SEATS_IN_USE;\n readonly notice = signal('');\n\n request(request: ChangeRequest<string | undefined>): void {\n if (request.value === 'starter') {\n request.cancel();\n this.notice.set(`Starter includes one seat. Remove ${SEATS_IN_USE - 1} seats first.`);\n return;\n }\n this.notice.set('');\n }\n}\n",
|
|
514
|
+
"verdict": "example"
|
|
515
|
+
},
|
|
516
|
+
{
|
|
517
|
+
"id": "standalone",
|
|
518
|
+
"title": "standalone.ts",
|
|
519
|
+
"note": null,
|
|
520
|
+
"language": "ts",
|
|
521
|
+
"source": "import { Component } from '@angular/core';\nimport { SlRadio, SlRadioGroup } from '@slotted/angular/radio-group';\n\n@Component({\n selector: 'app-radio-group-standalone',\n imports: [SlRadio, SlRadioGroup],\n template: `\n <div slRadioGroup aria-label=\"Chart range\" orientation=\"horizontal\" size=\"sm\" defaultValue=\"30\">\n <div slRadio value=\"7\">7 days</div>\n <div slRadio value=\"30\">30 days</div>\n <div slRadio value=\"90\">90 days</div>\n </div>\n `,\n})\nexport class RadioGroupStandalone {}\n",
|
|
522
|
+
"verdict": "example"
|
|
523
|
+
},
|
|
524
|
+
{
|
|
525
|
+
"id": "tiles",
|
|
526
|
+
"title": "tiles.ts",
|
|
527
|
+
"note": null,
|
|
528
|
+
"language": "ts",
|
|
529
|
+
"source": "import { Component } from '@angular/core';\nimport { SlFieldGroup, SlFieldGroupLegend } from '@slotted/angular/field-group';\nimport { SlGrid } from '@slotted/angular/grid';\nimport { SlRadio, SlRadioDescription, SlRadioGroup } from '@slotted/angular/radio-group';\n\n@Component({\n selector: 'app-radio-group-tiles',\n imports: [SlFieldGroup, SlFieldGroupLegend, SlGrid, SlRadio, SlRadioDescription, SlRadioGroup],\n template: `\n <fieldset slFieldGroup>\n <legend slFieldGroupLegend>Plan</legend>\n <div slRadioGroup name=\"plan\" variant=\"tile\" defaultValue=\"team\">\n <div slGrid minItemWidth=\"xs\">\n <div slRadio value=\"starter\">\n Starter\n <p slRadioDescription>$0 per month. Three projects and one seat.</p>\n </div>\n <div slRadio value=\"team\">\n Team\n <p slRadioDescription>$49 per month. Unlimited projects and ten seats.</p>\n </div>\n <div slRadio value=\"business\">\n Business\n <p slRadioDescription>$199 per month. Single sign-on and audit logs.</p>\n </div>\n </div>\n </div>\n </fieldset>\n `,\n})\nexport class RadioGroupTiles {}\n",
|
|
530
|
+
"verdict": "example"
|
|
531
|
+
},
|
|
532
|
+
{
|
|
533
|
+
"id": "validation",
|
|
534
|
+
"title": "validation.ts",
|
|
535
|
+
"note": null,
|
|
536
|
+
"language": "ts",
|
|
537
|
+
"source": "import { Component, signal } from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { SlButton } from '@slotted/angular/button';\nimport { SlFieldGroup, SlFieldGroupError, SlFieldGroupLegend } from '@slotted/angular/field-group';\nimport { SlInline } from '@slotted/angular/inline';\nimport { SlRadio, SlRadioGroup } from '@slotted/angular/radio-group';\nimport { SlStack } from '@slotted/angular/stack';\n\n@Component({\n selector: 'app-radio-group-validation',\n imports: [\n ReactiveFormsModule,\n SlButton,\n SlFieldGroup,\n SlFieldGroupError,\n SlFieldGroupLegend,\n SlInline,\n SlRadio,\n SlRadioGroup,\n SlStack,\n ],\n template: `\n <form novalidate (submit)=\"submit($event)\">\n <div slStack [gap]=\"4\">\n <fieldset slFieldGroup required>\n <legend slFieldGroupLegend>Return reason</legend>\n <span slFieldGroupError live=\"polite\" reserve>{{\n missing ? 'Choose why the order is coming back.' : ''\n }}</span>\n <div slRadioGroup [formControl]=\"reason\" [invalid]=\"missing ? true : undefined\">\n <div slRadio value=\"damaged\">Damaged in transit</div>\n <div slRadio value=\"wrong-item\">Wrong item shipped</div>\n <div slRadio value=\"not-needed\">No longer needed</div>\n </div>\n </fieldset>\n <div slInline [gap]=\"3\" align=\"center\">\n <button slButton type=\"submit\">Request return</button>\n @if (submitted() && reason.valid) {\n <span role=\"status\">Return requested.</span>\n }\n </div>\n </div>\n </form>\n `,\n})\nexport class RadioGroupValidation {\n /* The group is the form control and its validator: inside a required field\n group, an empty value fails with { required: true }. */\n readonly reason = new FormControl<string | null>(null);\n readonly submitted = signal(false);\n\n get missing(): boolean {\n return this.submitted() && this.reason.invalid;\n }\n\n submit(event: Event): void {\n event.preventDefault();\n this.submitted.set(true);\n }\n}\n",
|
|
538
|
+
"verdict": "example"
|
|
539
|
+
}
|
|
540
|
+
]
|
|
541
|
+
}
|