zabi-components 8.0.0 → 9.0.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/CHANGELOG.md +2935 -0
- package/README.md +243 -10
- package/THEME.md +162 -332
- package/THEMING.md +1419 -259
- package/dist/atoms/ActionPanel.svelte +15 -5
- package/dist/atoms/Avatar.svelte +120 -0
- package/dist/atoms/Avatar.svelte.d.ts +46 -0
- package/dist/atoms/Badge.svelte +71 -13
- package/dist/atoms/Badge.svelte.d.ts +8 -2
- package/dist/atoms/Block.svelte +74 -0
- package/dist/atoms/Block.svelte.d.ts +29 -0
- package/dist/atoms/Button.svelte +217 -30
- package/dist/atoms/Button.svelte.d.ts +33 -4
- package/dist/atoms/Card.svelte +182 -26
- package/dist/atoms/Card.svelte.d.ts +55 -3
- package/dist/atoms/CardHeader.svelte +16 -4
- package/dist/atoms/Checkbox.svelte +81 -21
- package/dist/atoms/Checkbox.svelte.d.ts +31 -2
- package/dist/atoms/Chip.svelte +351 -0
- package/dist/atoms/Chip.svelte.d.ts +57 -0
- package/dist/atoms/CodeBlock.svelte +20 -2
- package/dist/atoms/CodeBlock.svelte.d.ts +4 -0
- package/dist/atoms/CodeField.svelte +385 -0
- package/dist/atoms/CodeField.svelte.d.ts +61 -0
- package/dist/atoms/ColorPicker.svelte +260 -49
- package/dist/atoms/ColorPicker.svelte.d.ts +3 -0
- package/dist/atoms/Container.svelte +16 -8
- package/dist/atoms/DateField.svelte +145 -0
- package/dist/atoms/DateField.svelte.d.ts +81 -0
- package/dist/atoms/FieldMessages.svelte +69 -0
- package/dist/atoms/FieldMessages.svelte.d.ts +23 -0
- package/dist/atoms/FloatingActionButton.svelte +176 -0
- package/dist/atoms/FloatingActionButton.svelte.d.ts +51 -0
- package/dist/atoms/Heading.svelte +63 -5
- package/dist/atoms/Heading.svelte.d.ts +14 -0
- package/dist/atoms/IconButton.svelte +294 -26
- package/dist/atoms/IconButton.svelte.d.ts +62 -4
- package/dist/atoms/Input.svelte +259 -53
- package/dist/atoms/Input.svelte.d.ts +33 -2
- package/dist/atoms/List.svelte +5 -1
- package/dist/atoms/ListItem.svelte +70 -13
- package/dist/atoms/ListItem.svelte.d.ts +11 -0
- package/dist/atoms/PickerField.svelte +239 -0
- package/dist/atoms/PickerField.svelte.d.ts +67 -0
- package/dist/atoms/Progress.svelte +99 -19
- package/dist/atoms/Progress.svelte.d.ts +15 -1
- package/dist/atoms/Radio.svelte +51 -3
- package/dist/atoms/Radio.svelte.d.ts +30 -2
- package/dist/atoms/Rating.svelte +620 -0
- package/dist/atoms/Rating.svelte.d.ts +77 -0
- package/dist/atoms/Select.svelte +438 -98
- package/dist/atoms/Select.svelte.d.ts +61 -3
- package/dist/atoms/SelectionControl.svelte +193 -23
- package/dist/atoms/SelectionControl.svelte.d.ts +29 -3
- package/dist/atoms/Skeleton.svelte +114 -18
- package/dist/atoms/Skeleton.svelte.d.ts +30 -3
- package/dist/atoms/SkeletonGroup.svelte +43 -0
- package/dist/atoms/SkeletonGroup.svelte.d.ts +20 -0
- package/dist/atoms/Slider.svelte +344 -0
- package/dist/atoms/Slider.svelte.d.ts +40 -0
- package/dist/atoms/Sparkline.svelte +109 -0
- package/dist/atoms/Sparkline.svelte.d.ts +27 -0
- package/dist/atoms/SpeechBubble.svelte +187 -0
- package/dist/atoms/SpeechBubble.svelte.d.ts +33 -0
- package/dist/atoms/Spinner.svelte +57 -0
- package/dist/atoms/Spinner.svelte.d.ts +19 -0
- package/dist/atoms/Stat.svelte +72 -0
- package/dist/atoms/Stat.svelte.d.ts +19 -0
- package/dist/atoms/Table.svelte +151 -6
- package/dist/atoms/Table.svelte.d.ts +15 -3
- package/dist/atoms/TemporalField.svelte +472 -0
- package/dist/atoms/TemporalField.svelte.d.ts +48 -0
- package/dist/atoms/Text.svelte +23 -11
- package/dist/atoms/Text.svelte.d.ts +6 -3
- package/dist/atoms/Textarea.svelte +150 -44
- package/dist/atoms/Textarea.svelte.d.ts +35 -2
- package/dist/atoms/ThemeToggle.svelte +223 -44
- package/dist/atoms/ThemeToggle.svelte.d.ts +26 -3
- package/dist/atoms/TimeColumn.svelte +150 -0
- package/dist/atoms/TimeColumn.svelte.d.ts +25 -0
- package/dist/atoms/TimeField.svelte +151 -0
- package/dist/atoms/TimeField.svelte.d.ts +85 -0
- package/dist/atoms/Toast.svelte +22 -8
- package/dist/atoms/Toast.svelte.d.ts +2 -0
- package/dist/atoms/Toggle.svelte +98 -14
- package/dist/atoms/Toggle.svelte.d.ts +26 -2
- package/dist/atoms/Tooltip.svelte +528 -24
- package/dist/atoms/Tooltip.svelte.d.ts +18 -0
- package/dist/atoms/ZabiStringsProvider.svelte +45 -0
- package/dist/atoms/ZabiStringsProvider.svelte.d.ts +27 -0
- package/dist/atoms/index.d.ts +38 -0
- package/dist/atoms/index.js +29 -0
- package/dist/atoms/selection-control.styles.d.ts +47 -5
- package/dist/atoms/selection-control.styles.js +52 -10
- package/dist/components/atoms/index.d.ts +38 -0
- package/dist/components/atoms/index.d.ts.map +1 -1
- package/dist/components/atoms/selection-control.styles.d.ts +47 -5
- package/dist/components/atoms/selection-control.styles.d.ts.map +1 -1
- package/dist/components/index.d.ts +104 -2
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/map.d.ts +11 -0
- package/dist/components/map.d.ts.map +1 -0
- package/dist/components/molecules/index.d.ts +51 -0
- package/dist/components/molecules/index.d.ts.map +1 -1
- package/dist/components/molecules/toast-store.d.ts +83 -7
- package/dist/components/molecules/toast-store.d.ts.map +1 -1
- package/dist/components/organisms/index.d.ts +10 -0
- package/dist/components/organisms/index.d.ts.map +1 -1
- package/dist/components/types/variants.d.ts +24 -1
- package/dist/components/types/variants.d.ts.map +1 -1
- package/dist/components/util/app-shell.d.ts +79 -0
- package/dist/components/util/app-shell.d.ts.map +1 -0
- package/dist/components/util/avatar.d.ts +39 -0
- package/dist/components/util/avatar.d.ts.map +1 -0
- package/dist/components/util/bottom-sheet.d.ts +30 -0
- package/dist/components/util/bottom-sheet.d.ts.map +1 -0
- package/dist/components/util/bottom-tab-bar.d.ts +41 -0
- package/dist/components/util/bottom-tab-bar.d.ts.map +1 -0
- package/dist/components/util/calendar.d.ts +56 -0
- package/dist/components/util/calendar.d.ts.map +1 -0
- package/dist/components/util/chart.d.ts +140 -0
- package/dist/components/util/chart.d.ts.map +1 -0
- package/dist/components/util/chip.d.ts +66 -0
- package/dist/components/util/chip.d.ts.map +1 -0
- package/dist/components/util/cn.d.ts.map +1 -1
- package/dist/components/util/code-field.d.ts +63 -0
- package/dist/components/util/code-field.d.ts.map +1 -0
- package/dist/components/util/collapsible.d.ts +64 -0
- package/dist/components/util/collapsible.d.ts.map +1 -0
- package/dist/components/util/confirm-dialog.d.ts +12 -0
- package/dist/components/util/confirm-dialog.d.ts.map +1 -0
- package/dist/components/util/date.d.ts +96 -0
- package/dist/components/util/date.d.ts.map +1 -0
- package/dist/components/util/display-voice.d.ts +10 -0
- package/dist/components/util/display-voice.d.ts.map +1 -0
- package/dist/components/util/drawer.d.ts +13 -0
- package/dist/components/util/drawer.d.ts.map +1 -0
- package/dist/components/util/dropdown.d.ts +47 -0
- package/dist/components/util/dropdown.d.ts.map +1 -0
- package/dist/components/util/field-control.d.ts +30 -0
- package/dist/components/util/field-control.d.ts.map +1 -0
- package/dist/components/util/field.d.ts +45 -0
- package/dist/components/util/field.d.ts.map +1 -0
- package/dist/components/util/fit-in-viewport.d.ts +201 -0
- package/dist/components/util/fit-in-viewport.d.ts.map +1 -0
- package/dist/components/util/focus-utils.d.ts +77 -2
- package/dist/components/util/focus-utils.d.ts.map +1 -1
- package/dist/components/util/hydration.d.ts +45 -0
- package/dist/components/util/hydration.d.ts.map +1 -0
- package/dist/components/util/keyboard-inset.d.ts +18 -0
- package/dist/components/util/keyboard-inset.d.ts.map +1 -0
- package/dist/components/util/map-view.d.ts +144 -0
- package/dist/components/util/map-view.d.ts.map +1 -0
- package/dist/components/util/media-grid.d.ts +51 -0
- package/dist/components/util/media-grid.d.ts.map +1 -0
- package/dist/components/util/media.d.ts +6 -0
- package/dist/components/util/media.d.ts.map +1 -0
- package/dist/components/util/overlay-chrome.d.ts +53 -0
- package/dist/components/util/overlay-chrome.d.ts.map +1 -0
- package/dist/components/util/overlay.d.ts +72 -0
- package/dist/components/util/overlay.d.ts.map +1 -0
- package/dist/components/util/photo.d.ts +234 -0
- package/dist/components/util/photo.d.ts.map +1 -0
- package/dist/components/util/portal.d.ts +23 -0
- package/dist/components/util/portal.d.ts.map +1 -0
- package/dist/components/util/progress.d.ts +19 -0
- package/dist/components/util/progress.d.ts.map +1 -0
- package/dist/components/util/pull-to-refresh.d.ts +27 -0
- package/dist/components/util/pull-to-refresh.d.ts.map +1 -0
- package/dist/components/util/radio-keys.d.ts +25 -0
- package/dist/components/util/radio-keys.d.ts.map +1 -0
- package/dist/components/util/rating.d.ts +23 -0
- package/dist/components/util/rating.d.ts.map +1 -0
- package/dist/components/util/ready-made-strings.d.ts +77 -0
- package/dist/components/util/ready-made-strings.d.ts.map +1 -0
- package/dist/components/util/scroll-edge.d.ts +33 -0
- package/dist/components/util/scroll-edge.d.ts.map +1 -0
- package/dist/components/util/scroll-padding.d.ts +20 -0
- package/dist/components/util/scroll-padding.d.ts.map +1 -0
- package/dist/components/util/segmented-control.d.ts +16 -0
- package/dist/components/util/segmented-control.d.ts.map +1 -0
- package/dist/components/util/select.d.ts +41 -0
- package/dist/components/util/select.d.ts.map +1 -0
- package/dist/components/util/sheet-drag.d.ts +84 -0
- package/dist/components/util/sheet-drag.d.ts.map +1 -0
- package/dist/components/util/sidebar.d.ts +63 -0
- package/dist/components/util/sidebar.d.ts.map +1 -0
- package/dist/components/util/skeleton.d.ts +15 -0
- package/dist/components/util/skeleton.d.ts.map +1 -0
- package/dist/components/util/sliding-indicator.d.ts +25 -0
- package/dist/components/util/sliding-indicator.d.ts.map +1 -0
- package/dist/components/util/sortable-list.d.ts +65 -0
- package/dist/components/util/sortable-list.d.ts.map +1 -0
- package/dist/components/util/stepper.d.ts +40 -0
- package/dist/components/util/stepper.d.ts.map +1 -0
- package/dist/components/util/swipeable-list-item.d.ts +36 -0
- package/dist/components/util/swipeable-list-item.d.ts.map +1 -0
- package/dist/components/util/temporal-field.d.ts +89 -0
- package/dist/components/util/temporal-field.d.ts.map +1 -0
- package/dist/components/util/theme-mode.d.ts +80 -0
- package/dist/components/util/theme-mode.d.ts.map +1 -0
- package/dist/components/util/toaster.d.ts +133 -0
- package/dist/components/util/toaster.d.ts.map +1 -0
- package/dist/components/util/tone-surface.d.ts +34 -0
- package/dist/components/util/tone-surface.d.ts.map +1 -0
- package/dist/components/util/tooltip.d.ts +10 -0
- package/dist/components/util/tooltip.d.ts.map +1 -0
- package/dist/components/util/top-navbar.d.ts +35 -0
- package/dist/components/util/top-navbar.d.ts.map +1 -0
- package/dist/components/util/touch-target.d.ts +31 -0
- package/dist/components/util/touch-target.d.ts.map +1 -0
- package/dist/components/util/zabi-strings.d.ts +142 -0
- package/dist/components/util/zabi-strings.d.ts.map +1 -0
- package/dist/create-theme/cli.js +173 -0
- package/dist/create-theme/index.d.ts +190 -0
- package/dist/create-theme/index.js +1034 -0
- package/dist/create-theme/lib/ramp-math.js +128 -0
- package/dist/create-theme/lib/resolve.js +238 -0
- package/dist/create-theme/theme-data.js +2644 -0
- package/dist/index.d.ts +104 -2
- package/dist/index.js +75 -2
- package/dist/map.d.ts +10 -0
- package/dist/map.js +9 -0
- package/dist/molecules/Alert.svelte +63 -16
- package/dist/molecules/Alert.svelte.d.ts +14 -1
- package/dist/molecules/AppBar.svelte +674 -0
- package/dist/molecules/AppBar.svelte.d.ts +131 -0
- package/dist/molecules/AvatarGroup.svelte +116 -0
- package/dist/molecules/AvatarGroup.svelte.d.ts +40 -0
- package/dist/molecules/BarChart.svelte +381 -0
- package/dist/molecules/BarChart.svelte.d.ts +45 -0
- package/dist/molecules/BottomSheet.svelte +608 -0
- package/dist/molecules/BottomSheet.svelte.d.ts +109 -0
- package/dist/molecules/BottomTabBar.svelte +403 -0
- package/dist/molecules/BottomTabBar.svelte.d.ts +98 -0
- package/dist/molecules/Calendar.svelte +597 -0
- package/dist/molecules/Calendar.svelte.d.ts +72 -0
- package/dist/molecules/ChipGroup.svelte +325 -0
- package/dist/molecules/ChipGroup.svelte.d.ts +41 -0
- package/dist/molecules/Collapsible.svelte +347 -0
- package/dist/molecules/Collapsible.svelte.d.ts +61 -0
- package/dist/molecules/CollapsibleGroup.svelte +136 -0
- package/dist/molecules/CollapsibleGroup.svelte.d.ts +14 -0
- package/dist/molecules/ComponentDemo.svelte +16 -4
- package/dist/molecules/ComponentDemo.svelte.d.ts +3 -0
- package/dist/molecules/ConfirmDialog.svelte +257 -0
- package/dist/molecules/ConfirmDialog.svelte.d.ts +58 -0
- package/dist/molecules/ContactForm.svelte +34 -17
- package/dist/molecules/ContactForm.svelte.d.ts +8 -0
- package/dist/molecules/Drawer.svelte +415 -0
- package/dist/molecules/Drawer.svelte.d.ts +55 -0
- package/dist/molecules/Dropdown.svelte +517 -48
- package/dist/molecules/Dropdown.svelte.d.ts +47 -6
- package/dist/molecules/DropdownItem.svelte +122 -0
- package/dist/molecules/DropdownItem.svelte.d.ts +28 -0
- package/dist/molecules/EmptyState.svelte +55 -10
- package/dist/molecules/EmptyState.svelte.d.ts +8 -0
- package/dist/molecules/FormField.svelte +9 -1
- package/dist/molecules/FormField.svelte.d.ts +2 -0
- package/dist/molecules/Header.svelte +1 -1
- package/dist/molecules/ImageUpload.svelte +492 -69
- package/dist/molecules/ImageUpload.svelte.d.ts +82 -2
- package/dist/molecules/LineChart.svelte +459 -0
- package/dist/molecules/LineChart.svelte.d.ts +53 -0
- package/dist/molecules/MapView.svelte +565 -0
- package/dist/molecules/MapView.svelte.d.ts +88 -0
- package/dist/molecules/MediaGrid.svelte +527 -0
- package/dist/molecules/MediaGrid.svelte.d.ts +77 -0
- package/dist/molecules/Modal.svelte +293 -72
- package/dist/molecules/Modal.svelte.d.ts +51 -2
- package/dist/molecules/NavigationMenuContent.svelte +58 -1
- package/dist/molecules/NavigationMenuItem.svelte +0 -1
- package/dist/molecules/NavigationMenuLink.svelte +1 -1
- package/dist/molecules/NavigationMenuList.svelte +10 -3
- package/dist/molecules/NavigationMenuTrigger.svelte +2 -2
- package/dist/molecules/Page.svelte +32 -2
- package/dist/molecules/Page.svelte.d.ts +11 -0
- package/dist/molecules/PhotoGrid.svelte +523 -0
- package/dist/molecules/PhotoGrid.svelte.d.ts +73 -0
- package/dist/molecules/PhotoViewer.svelte +1213 -0
- package/dist/molecules/PhotoViewer.svelte.d.ts +74 -0
- package/dist/molecules/PieChart.svelte +421 -0
- package/dist/molecules/PieChart.svelte.d.ts +51 -0
- package/dist/molecules/PropsTable.svelte +22 -10
- package/dist/molecules/PropsTable.svelte.d.ts +3 -0
- package/dist/molecules/PullToRefresh.svelte +263 -0
- package/dist/molecules/PullToRefresh.svelte.d.ts +52 -0
- package/dist/molecules/RadioGroup.svelte +72 -18
- package/dist/molecules/RadioGroup.svelte.d.ts +19 -3
- package/dist/molecules/Section.svelte +1 -1
- package/dist/molecules/SegmentedControl.svelte +456 -0
- package/dist/molecules/SegmentedControl.svelte.d.ts +40 -0
- package/dist/molecules/SidebarBrandHeader.svelte +11 -1
- package/dist/molecules/SidebarBrandHeader.svelte.d.ts +3 -0
- package/dist/molecules/SidebarFooter.svelte +30 -7
- package/dist/molecules/SidebarFooter.svelte.d.ts +3 -0
- package/dist/molecules/SidebarNavSection.svelte +1 -1
- package/dist/molecules/SlideUp.svelte +220 -61
- package/dist/molecules/SlideUp.svelte.d.ts +26 -0
- package/dist/molecules/SortableList.svelte +633 -0
- package/dist/molecules/SortableList.svelte.d.ts +69 -0
- package/dist/molecules/Stepper.svelte +562 -0
- package/dist/molecules/Stepper.svelte.d.ts +39 -0
- package/dist/molecules/StickyActionBar.svelte +250 -0
- package/dist/molecules/StickyActionBar.svelte.d.ts +78 -0
- package/dist/molecules/SwipeableListItem.svelte +334 -0
- package/dist/molecules/SwipeableListItem.svelte.d.ts +54 -0
- package/dist/molecules/Tabs.svelte +310 -9
- package/dist/molecules/Tabs.svelte.d.ts +7 -0
- package/dist/molecules/Toaster.svelte +514 -5
- package/dist/molecules/Toaster.svelte.d.ts +153 -2
- package/dist/molecules/ToasterToast.svelte +495 -77
- package/dist/molecules/ToasterToast.svelte.d.ts +15 -0
- package/dist/molecules/UnsavedChangesBar.svelte +223 -0
- package/dist/molecules/UnsavedChangesBar.svelte.d.ts +43 -0
- package/dist/molecules/index.d.ts +51 -0
- package/dist/molecules/index.js +31 -0
- package/dist/molecules/toast-store.d.ts +83 -7
- package/dist/molecules/toast-store.js +25 -1
- package/dist/organisms/AppNavigation.svelte +440 -0
- package/dist/organisms/AppNavigation.svelte.d.ts +72 -0
- package/dist/organisms/AppShell.svelte +696 -0
- package/dist/organisms/AppShell.svelte.d.ts +157 -0
- package/dist/organisms/AppShellHeaderPart.svelte +163 -0
- package/dist/organisms/AppShellHeaderPart.svelte.d.ts +57 -0
- package/dist/organisms/SidebarAccountPanel.svelte +107 -12
- package/dist/organisms/SidebarAccountPanel.svelte.d.ts +19 -0
- package/dist/organisms/SidebarNavigation.svelte +111 -43
- package/dist/organisms/SidebarNavigation.svelte.d.ts +29 -1
- package/dist/organisms/SidebarPanel.svelte +34 -17
- package/dist/organisms/SidebarPanel.svelte.d.ts +1 -0
- package/dist/organisms/SidebarShell.svelte +164 -14
- package/dist/organisms/SidebarShell.svelte.d.ts +56 -2
- package/dist/organisms/TopNavbar.svelte +353 -39
- package/dist/organisms/TopNavbar.svelte.d.ts +47 -0
- package/dist/organisms/TopNavbarSheetContent.svelte +145 -0
- package/dist/organisms/TopNavbarSheetContent.svelte.d.ts +24 -0
- package/dist/organisms/index.d.ts +10 -0
- package/dist/organisms/index.js +7 -0
- package/dist/types/components.d.ts +21 -1
- package/dist/types/components.d.ts.map +1 -1
- package/dist/types/index.d.ts +1093 -26
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/variants.ts +28 -1
- package/dist/util/app-shell.d.ts +78 -0
- package/dist/util/app-shell.js +97 -0
- package/dist/util/avatar.d.ts +38 -0
- package/dist/util/avatar.js +52 -0
- package/dist/util/bottom-sheet.d.ts +29 -0
- package/dist/util/bottom-sheet.js +43 -0
- package/dist/util/bottom-tab-bar.d.ts +40 -0
- package/dist/util/bottom-tab-bar.js +54 -0
- package/dist/util/calendar.d.ts +55 -0
- package/dist/util/calendar.js +74 -0
- package/dist/util/chart.d.ts +139 -0
- package/dist/util/chart.js +305 -0
- package/dist/util/chip.d.ts +65 -0
- package/dist/util/chip.js +58 -0
- package/dist/util/cn.js +28 -2
- package/dist/util/code-field.d.ts +62 -0
- package/dist/util/code-field.js +112 -0
- package/dist/util/collapsible.d.ts +63 -0
- package/dist/util/collapsible.js +23 -0
- package/dist/util/confirm-dialog.d.ts +11 -0
- package/dist/util/confirm-dialog.js +2 -0
- package/dist/util/date.d.ts +95 -0
- package/dist/util/date.js +237 -0
- package/dist/util/display-voice.d.ts +9 -0
- package/dist/util/display-voice.js +9 -0
- package/dist/util/drawer.d.ts +12 -0
- package/dist/util/drawer.js +7 -0
- package/dist/util/dropdown.d.ts +46 -0
- package/dist/util/dropdown.js +21 -0
- package/dist/util/field-control.d.ts +29 -0
- package/dist/util/field-control.js +32 -0
- package/dist/util/field.d.ts +44 -0
- package/dist/util/field.js +38 -0
- package/dist/util/fit-in-viewport.d.ts +200 -0
- package/dist/util/fit-in-viewport.js +399 -0
- package/dist/util/focus-utils.d.ts +77 -2
- package/dist/util/focus-utils.js +186 -9
- package/dist/util/hydration.d.ts +44 -0
- package/dist/util/hydration.js +58 -0
- package/dist/util/keyboard-inset.d.ts +17 -0
- package/dist/util/keyboard-inset.js +53 -0
- package/dist/util/map-view.d.ts +143 -0
- package/dist/util/map-view.js +121 -0
- package/dist/util/media-grid.d.ts +50 -0
- package/dist/util/media-grid.js +81 -0
- package/dist/util/media.d.ts +5 -0
- package/dist/util/media.js +10 -0
- package/dist/util/overlay-chrome.d.ts +52 -0
- package/dist/util/overlay-chrome.js +56 -0
- package/dist/util/overlay.d.ts +71 -0
- package/dist/util/overlay.js +240 -0
- package/dist/util/photo.d.ts +233 -0
- package/dist/util/photo.js +209 -0
- package/dist/util/portal.d.ts +22 -0
- package/dist/util/portal.js +50 -0
- package/dist/util/progress.d.ts +18 -0
- package/dist/util/progress.js +17 -0
- package/dist/util/pull-to-refresh.d.ts +26 -0
- package/dist/util/pull-to-refresh.js +30 -0
- package/dist/util/radio-keys.d.ts +24 -0
- package/dist/util/radio-keys.js +49 -0
- package/dist/util/rating.d.ts +22 -0
- package/dist/util/rating.js +26 -0
- package/dist/util/ready-made-strings.d.ts +76 -0
- package/dist/util/ready-made-strings.js +67 -0
- package/dist/util/scroll-edge.d.ts +32 -0
- package/dist/util/scroll-edge.js +87 -0
- package/dist/util/scroll-padding.d.ts +19 -0
- package/dist/util/scroll-padding.js +44 -0
- package/dist/util/segmented-control.d.ts +15 -0
- package/dist/util/segmented-control.js +1 -0
- package/dist/util/select.d.ts +40 -0
- package/dist/util/select.js +63 -0
- package/dist/util/sheet-drag.d.ts +83 -0
- package/dist/util/sheet-drag.js +311 -0
- package/dist/util/sidebar.d.ts +62 -0
- package/dist/util/sidebar.js +38 -0
- package/dist/util/skeleton.d.ts +14 -0
- package/dist/util/skeleton.js +22 -0
- package/dist/util/sliding-indicator.d.ts +24 -0
- package/dist/util/sliding-indicator.js +44 -0
- package/dist/util/sortable-list.d.ts +64 -0
- package/dist/util/sortable-list.js +53 -0
- package/dist/util/stepper.d.ts +39 -0
- package/dist/util/stepper.js +38 -0
- package/dist/util/swipeable-list-item.d.ts +35 -0
- package/dist/util/swipeable-list-item.js +32 -0
- package/dist/util/temporal-field.d.ts +88 -0
- package/dist/util/temporal-field.js +136 -0
- package/dist/util/theme-mode.d.ts +79 -0
- package/dist/util/theme-mode.js +121 -0
- package/dist/util/toaster.d.ts +132 -0
- package/dist/util/toaster.js +130 -0
- package/dist/util/tone-surface.d.ts +33 -0
- package/dist/util/tone-surface.js +35 -0
- package/dist/util/tooltip.d.ts +9 -0
- package/dist/util/tooltip.js +18 -0
- package/dist/util/top-navbar.d.ts +34 -0
- package/dist/util/top-navbar.js +28 -0
- package/dist/util/touch-target.d.ts +30 -0
- package/dist/util/touch-target.js +30 -0
- package/dist/util/zabi-strings.d.ts +141 -0
- package/dist/util/zabi-strings.js +105 -0
- package/dist/zabi-components-colors.css +11 -2
- package/dist/zabi-components-theme-dark-only.css +870 -258
- package/dist/zabi-components-theme-dark.css +870 -258
- package/dist/zabi-components-theme-only.css +2419 -368
- package/dist/zabi-components-theme.css +2419 -368
- package/dist/zabi-components.css +6032 -711
- package/docs/lucide-icons.md +40 -17
- package/docs/theme-imports.md +81 -11
- package/package.json +45 -8
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type Snippet } from 'svelte';
|
|
2
|
+
import { type DropdownOption, type DropdownPresentation } from "../util/dropdown.js";
|
|
3
|
+
import type { BottomSheetSnap } from "../util/bottom-sheet.js";
|
|
2
4
|
export type DropdownTriggerProps = {
|
|
3
5
|
'aria-expanded': boolean;
|
|
4
6
|
'aria-haspopup': 'menu' | 'listbox';
|
|
@@ -8,16 +10,55 @@ interface Props {
|
|
|
8
10
|
/** Extra classes for the host element. */
|
|
9
11
|
class?: string;
|
|
10
12
|
isOpen?: boolean;
|
|
13
|
+
/**
|
|
14
|
+
* The side the menu opens on. It is where the menu goes whenever it
|
|
15
|
+
* fits there; near an edge of the screen it flips to the other side,
|
|
16
|
+
* and is narrowed or given its own scroll when neither side has room.
|
|
17
|
+
*/
|
|
11
18
|
placement?: 'bottom-start' | 'bottom-end' | 'top-start' | 'top-end';
|
|
19
|
+
/**
|
|
20
|
+
* How the menu is shown. `popover`: under its trigger, as always.
|
|
21
|
+
* `sheet`: in a BottomSheet, with the same items, roles and keys; this
|
|
22
|
+
* is the action sheet ("Edit, Share, Delete" from the bottom of the
|
|
23
|
+
* screen). `auto`: a sheet on a phone (a touch screen narrower than
|
|
24
|
+
* 640px), the pop-over everywhere else. Decided each time the menu
|
|
25
|
+
* opens, in the browser.
|
|
26
|
+
*/
|
|
27
|
+
presentation?: DropdownPresentation;
|
|
28
|
+
/**
|
|
29
|
+
* The host fills its container instead of being as wide as its
|
|
30
|
+
* trigger's content, and the menu is at least as wide as the host.
|
|
31
|
+
* For a trigger that is a field (Select); a menu on an icon button
|
|
32
|
+
* stays as it is.
|
|
33
|
+
*/
|
|
34
|
+
fullWidth?: boolean;
|
|
35
|
+
/** Heading of the sheet. Without it, `ariaLabel` is. */
|
|
36
|
+
sheetTitle?: string;
|
|
37
|
+
/**
|
|
38
|
+
* The height the sheet opens at. Without it: half the screen for up
|
|
39
|
+
* to six `options`, all of it for more. The grip moves it either way.
|
|
40
|
+
*/
|
|
41
|
+
sheetSnap?: BottomSheetSnap;
|
|
42
|
+
/** The sheet is as tall as the list, up to half the screen (BottomSheet `fit`); the grip then only drags. Off by default. */
|
|
43
|
+
sheetFit?: boolean;
|
|
44
|
+
/** Accessible name of the sheet's close button. */
|
|
45
|
+
sheetCloseLabel?: string;
|
|
46
|
+
/** Accessible name of the sheet's grip while its button takes the sheet up a step. */
|
|
47
|
+
sheetExpandLabel?: string;
|
|
48
|
+
/** The same, while it takes the sheet down a step. */
|
|
49
|
+
sheetCollapseLabel?: string;
|
|
12
50
|
ariaLabel?: string;
|
|
51
|
+
/** Id of an element that names the list; wins over `ariaLabel` for the pop-over list. */
|
|
52
|
+
ariaLabelledby?: string;
|
|
13
53
|
/** `listbox` for Select-style; `menu` for actions. */
|
|
14
54
|
menuRole?: 'menu' | 'listbox';
|
|
15
55
|
selectedValue?: string | number | null;
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
56
|
+
/**
|
|
57
|
+
* Menu items, when not supplying children. Each takes an optional
|
|
58
|
+
* `icon`, `tone` (`danger`) and `description`; a disabled item stays
|
|
59
|
+
* focusable so its description can be read.
|
|
60
|
+
*/
|
|
61
|
+
options?: DropdownOption[];
|
|
21
62
|
onOptionClick?: (value: string | number) => void;
|
|
22
63
|
trigger: Snippet<[DropdownTriggerProps]>;
|
|
23
64
|
/** Rendered in the popup above the menu/listbox, outside its role (e.g. a search field). */
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import Check from "@lucide/svelte/icons/check";
|
|
3
|
+
import { getContext, type Snippet } from "svelte";
|
|
4
|
+
import type { HTMLButtonAttributes } from "svelte/elements";
|
|
5
|
+
import { generateId } from "../util/ssr-safe.js";
|
|
6
|
+
import { cn } from "../util/cn.js";
|
|
7
|
+
import {
|
|
8
|
+
DROPDOWN_CONTEXT_KEY,
|
|
9
|
+
type DropdownContext,
|
|
10
|
+
type DropdownItemIcon,
|
|
11
|
+
type DropdownItemTone,
|
|
12
|
+
} from "../util/dropdown.js";
|
|
13
|
+
|
|
14
|
+
type Props = Omit<HTMLButtonAttributes, "class" | "disabled"> & {
|
|
15
|
+
/** The text of the item, and its accessible name. Use `children` for custom content instead. */
|
|
16
|
+
label?: string;
|
|
17
|
+
/** Second line under the label, e.g. why the item is disabled. */
|
|
18
|
+
description?: string;
|
|
19
|
+
/** Rendered before the label, at 16px. Decorative: the label names the item. */
|
|
20
|
+
icon?: DropdownItemIcon;
|
|
21
|
+
/** `danger` for a destructive action such as Delete. */
|
|
22
|
+
tone?: DropdownItemTone;
|
|
23
|
+
/**
|
|
24
|
+
* Rendered as `aria-disabled`, not `disabled`: the item stays focusable,
|
|
25
|
+
* so the arrow keys reach it and its description is read, but a click
|
|
26
|
+
* does nothing.
|
|
27
|
+
*/
|
|
28
|
+
disabled?: boolean;
|
|
29
|
+
/** Marks the chosen option of a listbox (`aria-selected`). */
|
|
30
|
+
selected?: boolean;
|
|
31
|
+
/** Extra classes for the item. */
|
|
32
|
+
class?: string;
|
|
33
|
+
/** Replaces `label` as the content. */
|
|
34
|
+
children?: Snippet;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
let {
|
|
38
|
+
label = "",
|
|
39
|
+
description = "",
|
|
40
|
+
icon: Icon,
|
|
41
|
+
tone = "default",
|
|
42
|
+
disabled = false,
|
|
43
|
+
selected = false,
|
|
44
|
+
role,
|
|
45
|
+
class: className = "",
|
|
46
|
+
onclick,
|
|
47
|
+
children,
|
|
48
|
+
...restProps
|
|
49
|
+
}: Props = $props();
|
|
50
|
+
|
|
51
|
+
const dropdown = getContext<DropdownContext | undefined>(DROPDOWN_CONTEXT_KEY);
|
|
52
|
+
// The keyboard model of Dropdown finds items by role, so there is always one.
|
|
53
|
+
const itemRole = $derived(role ?? dropdown?.itemRole ?? "menuitem");
|
|
54
|
+
|
|
55
|
+
const labelId = generateId("dropdown-item-label");
|
|
56
|
+
const descriptionId = generateId("dropdown-item-description");
|
|
57
|
+
|
|
58
|
+
function handleClick(
|
|
59
|
+
event: MouseEvent & { currentTarget: EventTarget & HTMLButtonElement },
|
|
60
|
+
) {
|
|
61
|
+
if (disabled) {
|
|
62
|
+
event.preventDefault();
|
|
63
|
+
event.stopPropagation();
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
onclick?.(event);
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
const itemClasses = $derived(
|
|
70
|
+
cn(
|
|
71
|
+
"focus-ring flex w-full items-start justify-start gap-2 rounded-control px-3 py-2 pointer-coarse:py-3 text-start text-sm transition-colors focus:outline-none",
|
|
72
|
+
tone === "danger" ? "text-error-text focus-ring--danger" : "text-body",
|
|
73
|
+
disabled
|
|
74
|
+
? "cursor-not-allowed"
|
|
75
|
+
: tone === "danger"
|
|
76
|
+
? "cursor-pointer hover:bg-action-danger-subtle active:bg-action-danger-subtle-hover"
|
|
77
|
+
: "cursor-pointer hover:bg-surface-overlay-hover active:bg-surface-active",
|
|
78
|
+
// The chosen option has a fill and a check: a mark of its own,
|
|
79
|
+
// which is neither the focus ring nor colour alone.
|
|
80
|
+
itemRole === "option" && selected && "bg-surface-overlay-hover text-headline",
|
|
81
|
+
className,
|
|
82
|
+
),
|
|
83
|
+
);
|
|
84
|
+
// The description explains a disabled item, so it is never dimmed with it.
|
|
85
|
+
const dimmed = $derived(disabled ? "opacity-50" : "");
|
|
86
|
+
</script>
|
|
87
|
+
|
|
88
|
+
<button
|
|
89
|
+
type="button"
|
|
90
|
+
role={itemRole}
|
|
91
|
+
aria-selected={itemRole === "option" ? selected : undefined}
|
|
92
|
+
aria-disabled={disabled ? "true" : undefined}
|
|
93
|
+
aria-labelledby={description && (label || children) ? labelId : undefined}
|
|
94
|
+
aria-describedby={description ? descriptionId : undefined}
|
|
95
|
+
class={itemClasses}
|
|
96
|
+
onclick={handleClick}
|
|
97
|
+
{...restProps}
|
|
98
|
+
>
|
|
99
|
+
{#if Icon}
|
|
100
|
+
<span class="mt-0.5 shrink-0 {dimmed}" aria-hidden="true">
|
|
101
|
+
<Icon size={16} />
|
|
102
|
+
</span>
|
|
103
|
+
{/if}
|
|
104
|
+
<span class="min-w-0 flex-1">
|
|
105
|
+
{#if children}
|
|
106
|
+
<!-- The label when there is a description, so the name is the content alone. -->
|
|
107
|
+
<span id={labelId} class="block {dimmed}">{@render children()}</span>
|
|
108
|
+
{:else}
|
|
109
|
+
<span id={labelId} class="block {dimmed}">{label}</span>
|
|
110
|
+
{/if}
|
|
111
|
+
{#if description}
|
|
112
|
+
<span id={descriptionId} class="mt-0.5 block text-xs text-description">
|
|
113
|
+
{description}
|
|
114
|
+
</span>
|
|
115
|
+
{/if}
|
|
116
|
+
</span>
|
|
117
|
+
{#if itemRole === "option" && selected}
|
|
118
|
+
<span class="mt-0.5 shrink-0 text-headline" aria-hidden="true">
|
|
119
|
+
<Check size={16} />
|
|
120
|
+
</span>
|
|
121
|
+
{/if}
|
|
122
|
+
</button>
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { type Snippet } from "svelte";
|
|
2
|
+
import type { HTMLButtonAttributes } from "svelte/elements";
|
|
3
|
+
import { type DropdownItemIcon, type DropdownItemTone } from "../util/dropdown.js";
|
|
4
|
+
type Props = Omit<HTMLButtonAttributes, "class" | "disabled"> & {
|
|
5
|
+
/** The text of the item, and its accessible name. Use `children` for custom content instead. */
|
|
6
|
+
label?: string;
|
|
7
|
+
/** Second line under the label, e.g. why the item is disabled. */
|
|
8
|
+
description?: string;
|
|
9
|
+
/** Rendered before the label, at 16px. Decorative: the label names the item. */
|
|
10
|
+
icon?: DropdownItemIcon;
|
|
11
|
+
/** `danger` for a destructive action such as Delete. */
|
|
12
|
+
tone?: DropdownItemTone;
|
|
13
|
+
/**
|
|
14
|
+
* Rendered as `aria-disabled`, not `disabled`: the item stays focusable,
|
|
15
|
+
* so the arrow keys reach it and its description is read, but a click
|
|
16
|
+
* does nothing.
|
|
17
|
+
*/
|
|
18
|
+
disabled?: boolean;
|
|
19
|
+
/** Marks the chosen option of a listbox (`aria-selected`). */
|
|
20
|
+
selected?: boolean;
|
|
21
|
+
/** Extra classes for the item. */
|
|
22
|
+
class?: string;
|
|
23
|
+
/** Replaces `label` as the content. */
|
|
24
|
+
children?: Snippet;
|
|
25
|
+
};
|
|
26
|
+
declare const DropdownItem: import("svelte").Component<Props, {}, "">;
|
|
27
|
+
type DropdownItem = ReturnType<typeof DropdownItem>;
|
|
28
|
+
export default DropdownItem;
|
|
@@ -2,10 +2,18 @@
|
|
|
2
2
|
import type { Snippet } from "svelte";
|
|
3
3
|
import { generateId } from "../util/ssr-safe.js";
|
|
4
4
|
import { cn } from "../util/cn.js";
|
|
5
|
+
import type { CollapsibleHeadingLevel } from "../util/collapsible.js";
|
|
5
6
|
|
|
6
7
|
interface Props {
|
|
7
8
|
title: string;
|
|
8
9
|
description: string;
|
|
10
|
+
/** Heading element of the title, to fit the outline of the page around it. */
|
|
11
|
+
headingLevel?: CollapsibleHeadingLevel;
|
|
12
|
+
/**
|
|
13
|
+
* `compact` tightens the padding and the title to sit inside a card,
|
|
14
|
+
* and is a plain `<div>`, not a landmark region like the default.
|
|
15
|
+
*/
|
|
16
|
+
size?: "default" | "compact";
|
|
9
17
|
class?: string;
|
|
10
18
|
action?: Snippet;
|
|
11
19
|
media?: Snippet;
|
|
@@ -14,32 +22,69 @@
|
|
|
14
22
|
let {
|
|
15
23
|
title,
|
|
16
24
|
description,
|
|
25
|
+
headingLevel = 2,
|
|
26
|
+
size = "default",
|
|
17
27
|
class: className = "",
|
|
18
28
|
action,
|
|
19
29
|
media,
|
|
20
30
|
}: Props = $props();
|
|
21
31
|
|
|
22
32
|
const titleId = generateId("empty-state-title");
|
|
33
|
+
const compact = $derived(size === "compact");
|
|
34
|
+
const rootClasses = $derived(
|
|
35
|
+
cn(
|
|
36
|
+
"mx-auto flex flex-col items-center justify-center text-center",
|
|
37
|
+
compact ? "gap-3 px-4 py-6" : "gap-4 px-6 py-12",
|
|
38
|
+
className,
|
|
39
|
+
),
|
|
40
|
+
);
|
|
23
41
|
</script>
|
|
24
42
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
aria-labelledby={titleId}
|
|
28
|
-
>
|
|
43
|
+
{#snippet body()}
|
|
44
|
+
{@const headingClasses = cn("font-semibold text-headline", compact ? "text-base" : "text-lg")}
|
|
29
45
|
{#if media}
|
|
30
46
|
<div class="text-description" aria-hidden="true">
|
|
31
47
|
{@render media()}
|
|
32
48
|
</div>
|
|
33
49
|
{/if}
|
|
34
|
-
<div class="space-y-2">
|
|
35
|
-
|
|
36
|
-
{title}
|
|
37
|
-
|
|
50
|
+
<div class={compact ? "space-y-1" : "space-y-2"}>
|
|
51
|
+
{#if headingLevel === 1}
|
|
52
|
+
<h1 id={titleId} class={headingClasses}>{title}</h1>
|
|
53
|
+
{:else if headingLevel === 2}
|
|
54
|
+
<h2 id={titleId} class={headingClasses}>{title}</h2>
|
|
55
|
+
{:else if headingLevel === 3}
|
|
56
|
+
<h3 id={titleId} class={headingClasses}>{title}</h3>
|
|
57
|
+
{:else if headingLevel === 4}
|
|
58
|
+
<h4 id={titleId} class={headingClasses}>{title}</h4>
|
|
59
|
+
{:else if headingLevel === 5}
|
|
60
|
+
<h5 id={titleId} class={headingClasses}>{title}</h5>
|
|
61
|
+
{:else}
|
|
62
|
+
<h6 id={titleId} class={headingClasses}>{title}</h6>
|
|
63
|
+
{/if}
|
|
38
64
|
<p class="text-sm text-description">{description}</p>
|
|
39
65
|
</div>
|
|
40
66
|
{#if action}
|
|
41
|
-
<div
|
|
67
|
+
<div
|
|
68
|
+
class={cn("flex flex-wrap items-center justify-center gap-2", compact ? "mt-1" : "mt-2")}
|
|
69
|
+
>
|
|
42
70
|
{@render action()}
|
|
43
71
|
</div>
|
|
44
72
|
{/if}
|
|
45
|
-
|
|
73
|
+
{/snippet}
|
|
74
|
+
|
|
75
|
+
<!-- A named `<section>` is a landmark. One per page is a help; a compact empty
|
|
76
|
+
state in every card is a page of landmarks, so that size is a plain `<div>`.
|
|
77
|
+
|
|
78
|
+
Two branches, not `<svelte:element>`: hydration takes a dynamic element
|
|
79
|
+
out and puts it back, which blurs a control inside it that the user had
|
|
80
|
+
already tabbed to. The heading is one branch per level for the same
|
|
81
|
+
reason. -->
|
|
82
|
+
{#if compact}
|
|
83
|
+
<div class={rootClasses}>
|
|
84
|
+
{@render body()}
|
|
85
|
+
</div>
|
|
86
|
+
{:else}
|
|
87
|
+
<section class={rootClasses} aria-labelledby={titleId}>
|
|
88
|
+
{@render body()}
|
|
89
|
+
</section>
|
|
90
|
+
{/if}
|
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
import type { Snippet } from "svelte";
|
|
2
|
+
import type { CollapsibleHeadingLevel } from "../util/collapsible.js";
|
|
2
3
|
interface Props {
|
|
3
4
|
title: string;
|
|
4
5
|
description: string;
|
|
6
|
+
/** Heading element of the title, to fit the outline of the page around it. */
|
|
7
|
+
headingLevel?: CollapsibleHeadingLevel;
|
|
8
|
+
/**
|
|
9
|
+
* `compact` tightens the padding and the title to sit inside a card,
|
|
10
|
+
* and is a plain `<div>`, not a landmark region like the default.
|
|
11
|
+
*/
|
|
12
|
+
size?: "default" | "compact";
|
|
5
13
|
class?: string;
|
|
6
14
|
action?: Snippet;
|
|
7
15
|
media?: Snippet;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
|
+
import { zabiCommonStrings } from "../util/zabi-strings.js";
|
|
2
3
|
import type { Snippet } from 'svelte';
|
|
3
4
|
import { generateId } from "../util/ssr-safe.js";
|
|
4
5
|
|
|
@@ -17,6 +18,8 @@
|
|
|
17
18
|
description?: string;
|
|
18
19
|
error?: string;
|
|
19
20
|
required?: boolean;
|
|
21
|
+
/** Read after the label of a required field, where the asterisk is only seen. */
|
|
22
|
+
requiredLabel?: string;
|
|
20
23
|
disabled?: boolean;
|
|
21
24
|
class?: string;
|
|
22
25
|
labelClass?: string;
|
|
@@ -30,6 +33,7 @@
|
|
|
30
33
|
description,
|
|
31
34
|
error,
|
|
32
35
|
required = false,
|
|
36
|
+
requiredLabel: requiredLabelGiven,
|
|
33
37
|
disabled = false,
|
|
34
38
|
class: className = '',
|
|
35
39
|
labelClass = '',
|
|
@@ -37,6 +41,10 @@
|
|
|
37
41
|
meta,
|
|
38
42
|
}: Props = $props();
|
|
39
43
|
|
|
44
|
+
/** Words many components share: a `ZabiStringsProvider` above this one may give them; else English. */
|
|
45
|
+
const common = zabiCommonStrings();
|
|
46
|
+
const requiredLabel = $derived(requiredLabelGiven ?? common().required);
|
|
47
|
+
|
|
40
48
|
const fallbackId = generateId('field');
|
|
41
49
|
const fieldId = $derived(idProp ?? fallbackId);
|
|
42
50
|
const descriptionId = $derived(
|
|
@@ -63,7 +71,7 @@
|
|
|
63
71
|
{label}
|
|
64
72
|
{#if required}
|
|
65
73
|
<span class="ml-1 text-error" aria-hidden="true">*</span>
|
|
66
|
-
<span class="sr-only">
|
|
74
|
+
<span class="sr-only">{requiredLabel}</span>
|
|
67
75
|
{/if}
|
|
68
76
|
</label>
|
|
69
77
|
|
|
@@ -12,6 +12,8 @@ interface Props {
|
|
|
12
12
|
description?: string;
|
|
13
13
|
error?: string;
|
|
14
14
|
required?: boolean;
|
|
15
|
+
/** Read after the label of a required field, where the asterisk is only seen. */
|
|
16
|
+
requiredLabel?: string;
|
|
15
17
|
disabled?: boolean;
|
|
16
18
|
class?: string;
|
|
17
19
|
labelClass?: string;
|