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
|
@@ -20,6 +20,24 @@ type Props = Omit<HTMLAttributes<HTMLDivElement>, "class"> & {
|
|
|
20
20
|
* at the rail edge and left only the arrow showing.
|
|
21
21
|
*/
|
|
22
22
|
fixed?: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* On a touch screen a tap on the trigger opens the tooltip, and the
|
|
25
|
+
* trigger still does what it does. It stays until a second tap, a tap
|
|
26
|
+
* elsewhere, Escape, scrolling or focus leaving: the tap also puts
|
|
27
|
+
* focus on the trigger, and a tooltip that went by itself while its
|
|
28
|
+
* trigger still had focus would be gone before it was read. Give a
|
|
29
|
+
* number of milliseconds to have it close by itself after that long
|
|
30
|
+
* as well, for a button whose tooltip is in the way of what the tap
|
|
31
|
+
* did. A mouse and a keyboard are not affected.
|
|
32
|
+
*/
|
|
33
|
+
touchDuration?: number;
|
|
34
|
+
/**
|
|
35
|
+
* `material` (default): the bubble is the thick glass overlay material
|
|
36
|
+
* with body text and no arrow. `inverted`: the 8.1 bubble, a dark fill
|
|
37
|
+
* with light text (`--color-tooltip-bg` / `--color-tooltip-fg`) and an
|
|
38
|
+
* arrow.
|
|
39
|
+
*/
|
|
40
|
+
tone?: "material" | "inverted";
|
|
23
41
|
class?: string;
|
|
24
42
|
children?: Snippet;
|
|
25
43
|
};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import type { Snippet } from "svelte";
|
|
3
|
+
import {
|
|
4
|
+
mergeZabiStrings,
|
|
5
|
+
outerZabiStrings,
|
|
6
|
+
provideZabiStrings,
|
|
7
|
+
type ZabiStrings,
|
|
8
|
+
} from "../util/zabi-strings.js";
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Sets the library's own words for everything inside it: put it around
|
|
12
|
+
* the app, once, with the texts in the app's language.
|
|
13
|
+
*
|
|
14
|
+
* ```svelte
|
|
15
|
+
* <ZabiStringsProvider strings={{
|
|
16
|
+
* common: { close: "Stäng", back: "Tillbaka" },
|
|
17
|
+
* select: { placeholder: "Välj", searchPlaceholder: "Sök" },
|
|
18
|
+
* }}>
|
|
19
|
+
* {@render children()}
|
|
20
|
+
* </ZabiStringsProvider>
|
|
21
|
+
* ```
|
|
22
|
+
*
|
|
23
|
+
* Each component still takes its own `strings` and single-text props,
|
|
24
|
+
* and those win. A provider inside another replaces only the words it
|
|
25
|
+
* gives. It renders nothing of its own: no element is added to the page.
|
|
26
|
+
*/
|
|
27
|
+
interface Props {
|
|
28
|
+
/** One entry per component, and `common` for the words many share. See `ZabiStrings`. */
|
|
29
|
+
strings?: ZabiStrings;
|
|
30
|
+
children?: Snippet;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
let { strings, children }: Props = $props();
|
|
34
|
+
|
|
35
|
+
const outer = outerZabiStrings();
|
|
36
|
+
const merged = $derived(mergeZabiStrings(outer?.current, strings));
|
|
37
|
+
|
|
38
|
+
provideZabiStrings({
|
|
39
|
+
get current() {
|
|
40
|
+
return merged;
|
|
41
|
+
},
|
|
42
|
+
});
|
|
43
|
+
</script>
|
|
44
|
+
|
|
45
|
+
{@render children?.()}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { Snippet } from "svelte";
|
|
2
|
+
import { type ZabiStrings } from "../util/zabi-strings.js";
|
|
3
|
+
/**
|
|
4
|
+
* Sets the library's own words for everything inside it: put it around
|
|
5
|
+
* the app, once, with the texts in the app's language.
|
|
6
|
+
*
|
|
7
|
+
* ```svelte
|
|
8
|
+
* <ZabiStringsProvider strings={{
|
|
9
|
+
* common: { close: "Stäng", back: "Tillbaka" },
|
|
10
|
+
* select: { placeholder: "Välj", searchPlaceholder: "Sök" },
|
|
11
|
+
* }}>
|
|
12
|
+
* {@render children()}
|
|
13
|
+
* </ZabiStringsProvider>
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* Each component still takes its own `strings` and single-text props,
|
|
17
|
+
* and those win. A provider inside another replaces only the words it
|
|
18
|
+
* gives. It renders nothing of its own: no element is added to the page.
|
|
19
|
+
*/
|
|
20
|
+
interface Props {
|
|
21
|
+
/** One entry per component, and `common` for the words many share. See `ZabiStrings`. */
|
|
22
|
+
strings?: ZabiStrings;
|
|
23
|
+
children?: Snippet;
|
|
24
|
+
}
|
|
25
|
+
declare const ZabiStringsProvider: import("svelte").Component<Props, {}, "">;
|
|
26
|
+
type ZabiStringsProvider = ReturnType<typeof ZabiStringsProvider>;
|
|
27
|
+
export default ZabiStringsProvider;
|
package/dist/atoms/index.d.ts
CHANGED
|
@@ -1,14 +1,27 @@
|
|
|
1
1
|
export { default as Toggle } from './Toggle.svelte';
|
|
2
2
|
export { default as Badge } from './Badge.svelte';
|
|
3
|
+
export { default as Stat } from './Stat.svelte';
|
|
4
|
+
export { default as SpeechBubble } from './SpeechBubble.svelte';
|
|
5
|
+
export { default as Sparkline } from './Sparkline.svelte';
|
|
6
|
+
export { default as Chip } from './Chip.svelte';
|
|
3
7
|
export { default as Button } from './Button.svelte';
|
|
4
8
|
export { default as IconButton } from './IconButton.svelte';
|
|
9
|
+
export { default as Block } from './Block.svelte';
|
|
5
10
|
export { default as Card } from './Card.svelte';
|
|
6
11
|
export { default as CardHeader } from './CardHeader.svelte';
|
|
7
12
|
export { default as CardContent } from './CardContent.svelte';
|
|
8
13
|
export { default as CardFooter } from './CardFooter.svelte';
|
|
9
14
|
export { default as Input } from './Input.svelte';
|
|
15
|
+
export { default as CodeField } from './CodeField.svelte';
|
|
16
|
+
export { DEFAULT_CODE_FIELD_STRINGS } from '../util/code-field.js';
|
|
17
|
+
export type { CodeFieldMode, CodeFieldSize, CodeFieldStrings } from '../util/code-field.js';
|
|
10
18
|
export { default as Textarea } from './Textarea.svelte';
|
|
19
|
+
export type { TextareaCount } from '../util/field.js';
|
|
20
|
+
export { default as PickerField } from './PickerField.svelte';
|
|
11
21
|
export { default as Select } from './Select.svelte';
|
|
22
|
+
export { DEFAULT_SELECT_STRINGS } from '../util/select.js';
|
|
23
|
+
export type { SelectStrings, SelectPresentation } from '../util/select.js';
|
|
24
|
+
export { default as Slider } from './Slider.svelte';
|
|
12
25
|
export { default as ColorPicker } from './ColorPicker.svelte';
|
|
13
26
|
export { default as List } from './List.svelte';
|
|
14
27
|
export { default as ListItem } from './ListItem.svelte';
|
|
@@ -19,4 +32,29 @@ export { default as Divider } from './Divider.svelte';
|
|
|
19
32
|
export { default as Container } from './Container.svelte';
|
|
20
33
|
export { default as Text } from './Text.svelte';
|
|
21
34
|
export { default as Table } from './Table.svelte';
|
|
35
|
+
export { default as Toast } from './Toast.svelte';
|
|
36
|
+
export { default as Tooltip } from './Tooltip.svelte';
|
|
37
|
+
export { default as Progress } from './Progress.svelte';
|
|
38
|
+
export { default as Skeleton } from './Skeleton.svelte';
|
|
39
|
+
export { default as SkeletonGroup } from './SkeletonGroup.svelte';
|
|
40
|
+
export { DEFAULT_SKELETON_STRINGS } from '../util/skeleton.js';
|
|
41
|
+
export type { SkeletonStrings } from '../util/skeleton.js';
|
|
42
|
+
export { default as CodeBlock } from './CodeBlock.svelte';
|
|
43
|
+
export { default as FeatureCard } from './FeatureCard.svelte';
|
|
44
|
+
export { default as OptimizedImage } from './OptimizedImage.svelte';
|
|
45
|
+
export { default as Checkbox } from './Checkbox.svelte';
|
|
22
46
|
export { default as Radio } from './Radio.svelte';
|
|
47
|
+
export { default as Spinner } from './Spinner.svelte';
|
|
48
|
+
export { default as Rating } from './Rating.svelte';
|
|
49
|
+
export type { ProgressStrings } from '../util/progress.js';
|
|
50
|
+
export type { RatingStrings } from '../util/rating.js';
|
|
51
|
+
export { default as FloatingActionButton } from './FloatingActionButton.svelte';
|
|
52
|
+
export { default as DateField } from './DateField.svelte';
|
|
53
|
+
export { default as Avatar } from './Avatar.svelte';
|
|
54
|
+
export type { AvatarSize } from '../util/avatar.js';
|
|
55
|
+
export { default as TimeField } from './TimeField.svelte';
|
|
56
|
+
export { DEFAULT_COLOR_PICKER_STRINGS } from '../util/ready-made-strings.js';
|
|
57
|
+
export type { ColorPickerStrings } from '../util/ready-made-strings.js';
|
|
58
|
+
export { default as ZabiStringsProvider } from './ZabiStringsProvider.svelte';
|
|
59
|
+
export { DEFAULT_ZABI_COMMON_STRINGS, getZabiStrings } from '../util/zabi-strings.js';
|
|
60
|
+
export type { ZabiStrings, ZabiCommonStrings, ZabiStringsContext, AlertTexts, CodeBlockTexts, ImageUploadTexts, ToastTexts, UnsavedChangesBarTexts } from '../util/zabi-strings.js';
|
package/dist/atoms/index.js
CHANGED
|
@@ -1,14 +1,24 @@
|
|
|
1
1
|
export { default as Toggle } from './Toggle.svelte';
|
|
2
2
|
export { default as Badge } from './Badge.svelte';
|
|
3
|
+
export { default as Stat } from './Stat.svelte';
|
|
4
|
+
export { default as SpeechBubble } from './SpeechBubble.svelte';
|
|
5
|
+
export { default as Sparkline } from './Sparkline.svelte';
|
|
6
|
+
export { default as Chip } from './Chip.svelte';
|
|
3
7
|
export { default as Button } from './Button.svelte';
|
|
4
8
|
export { default as IconButton } from './IconButton.svelte';
|
|
9
|
+
export { default as Block } from './Block.svelte';
|
|
5
10
|
export { default as Card } from './Card.svelte';
|
|
6
11
|
export { default as CardHeader } from './CardHeader.svelte';
|
|
7
12
|
export { default as CardContent } from './CardContent.svelte';
|
|
8
13
|
export { default as CardFooter } from './CardFooter.svelte';
|
|
9
14
|
export { default as Input } from './Input.svelte';
|
|
15
|
+
export { default as CodeField } from './CodeField.svelte';
|
|
16
|
+
export { DEFAULT_CODE_FIELD_STRINGS } from '../util/code-field.js';
|
|
10
17
|
export { default as Textarea } from './Textarea.svelte';
|
|
18
|
+
export { default as PickerField } from './PickerField.svelte';
|
|
11
19
|
export { default as Select } from './Select.svelte';
|
|
20
|
+
export { DEFAULT_SELECT_STRINGS } from '../util/select.js';
|
|
21
|
+
export { default as Slider } from './Slider.svelte';
|
|
12
22
|
export { default as ColorPicker } from './ColorPicker.svelte';
|
|
13
23
|
export { default as List } from './List.svelte';
|
|
14
24
|
export { default as ListItem } from './ListItem.svelte';
|
|
@@ -19,4 +29,23 @@ export { default as Divider } from './Divider.svelte';
|
|
|
19
29
|
export { default as Container } from './Container.svelte';
|
|
20
30
|
export { default as Text } from './Text.svelte';
|
|
21
31
|
export { default as Table } from './Table.svelte';
|
|
32
|
+
export { default as Toast } from './Toast.svelte';
|
|
33
|
+
export { default as Tooltip } from './Tooltip.svelte';
|
|
34
|
+
export { default as Progress } from './Progress.svelte';
|
|
35
|
+
export { default as Skeleton } from './Skeleton.svelte';
|
|
36
|
+
export { default as SkeletonGroup } from './SkeletonGroup.svelte';
|
|
37
|
+
export { DEFAULT_SKELETON_STRINGS } from '../util/skeleton.js';
|
|
38
|
+
export { default as CodeBlock } from './CodeBlock.svelte';
|
|
39
|
+
export { default as FeatureCard } from './FeatureCard.svelte';
|
|
40
|
+
export { default as OptimizedImage } from './OptimizedImage.svelte';
|
|
41
|
+
export { default as Checkbox } from './Checkbox.svelte';
|
|
22
42
|
export { default as Radio } from './Radio.svelte';
|
|
43
|
+
export { default as Spinner } from './Spinner.svelte';
|
|
44
|
+
export { default as Rating } from './Rating.svelte';
|
|
45
|
+
export { default as FloatingActionButton } from './FloatingActionButton.svelte';
|
|
46
|
+
export { default as DateField } from './DateField.svelte';
|
|
47
|
+
export { default as Avatar } from './Avatar.svelte';
|
|
48
|
+
export { default as TimeField } from './TimeField.svelte';
|
|
49
|
+
export { DEFAULT_COLOR_PICKER_STRINGS } from '../util/ready-made-strings.js';
|
|
50
|
+
export { default as ZabiStringsProvider } from './ZabiStringsProvider.svelte';
|
|
51
|
+
export { DEFAULT_ZABI_COMMON_STRINGS, getZabiStrings } from '../util/zabi-strings.js';
|
|
@@ -6,20 +6,62 @@
|
|
|
6
6
|
export declare const SELECTION_CONTROL_LABEL_ROW_INTERACTION = "selection-control-label-row-interaction";
|
|
7
7
|
/** With `app.css`: `:checked` ring for radio list rows. */
|
|
8
8
|
export declare const SELECTION_CONTROL_OPTION_ROW = "selection-control-option-row";
|
|
9
|
-
/**
|
|
9
|
+
/**
|
|
10
|
+
* Control + label row; `p-2 -m-2` aligns hit area with text; `group` is not valid inside `@apply`.
|
|
11
|
+
*
|
|
12
|
+
* On a coarse pointer the row is 44px tall and takes that room in the layout
|
|
13
|
+
* (`my-0`): with the negative margin kept, two rows 8px apart overlapped by
|
|
14
|
+
* 8px, and a tap in the overlap went to the lower one.
|
|
15
|
+
*/
|
|
10
16
|
export declare const SELECTION_CONTROL_LABEL_ROW_BASE: string;
|
|
11
17
|
export declare const SELECTION_CONTROL_LABEL_ROW: string;
|
|
12
18
|
/** Radio option row: stacked label/description; `p-2` only (no `-m-2`) so vertical gaps stay even. */
|
|
13
19
|
export declare const RADIO_GROUP_OPTION_LABEL_ROW: string;
|
|
14
|
-
/**
|
|
15
|
-
|
|
20
|
+
/**
|
|
21
|
+
* Control shell: border/fill/hover/checked/disabled. `group/control` drives inner mark states.
|
|
22
|
+
* The checked fill is the primary action fill, so a ticked box and a primary
|
|
23
|
+
* button are the same colour; it used to be a step paler (2.8:1 on the page).
|
|
24
|
+
*
|
|
25
|
+
* The unchecked edge is the only thing that says a control is here, so it is
|
|
26
|
+
* the control boundary (3:1 on every surface, both themes); it was a fixed
|
|
27
|
+
* ramp step, 2.5:1 in light and 1.9 to 2.3:1 in dark.
|
|
28
|
+
*
|
|
29
|
+
* In forced colours every fill is gone, so a ticked box would read as an
|
|
30
|
+
* unticked one. `selection-control-shell` and `selection-control-dot` are the
|
|
31
|
+
* hooks for the rules in `app.css` that draw the ticked state as a system
|
|
32
|
+
* colour pair (`Highlight` / `HighlightText`) and the disabled one in `GrayText`.
|
|
33
|
+
*
|
|
34
|
+
* The pressed dip and the hover fills are for a control that can be used.
|
|
35
|
+
* The row around a disabled input still matches `:active` and `:hover`, so
|
|
36
|
+
* without that a disabled box dipped under a finger and lit up under the
|
|
37
|
+
* mouse. The unchecked ones are limited to `not-has-[:disabled]`; the checked
|
|
38
|
+
* hover is undone by a rule with one more `has-` in it, which outweighs it.
|
|
39
|
+
*/
|
|
40
|
+
export declare const SELECTION_CONTROL_SHELL_STATE = "selection-control-shell group/control relative inline-flex shrink-0 items-center justify-center w-5 h-5 transition-all duration-200 border-2 not-has-[:disabled]:group-active:scale-95 border-control-border bg-transparent not-has-[:disabled]:group-hover:border-brand-500 not-has-[:disabled]:group-hover:bg-brand-50 has-[:checked]:border-action-primary has-[:checked]:bg-action-primary has-[:checked]:group-hover:bg-action-primary-hover has-[:checked]:group-hover:border-action-primary-hover has-[:disabled]:has-[:checked]:group-hover:bg-action-primary has-[:disabled]:has-[:checked]:group-hover:border-action-primary has-[:disabled]:opacity-50 has-[:disabled]:cursor-not-allowed";
|
|
16
41
|
export type SelectionControlShape = "square" | "circle";
|
|
17
42
|
export declare function selectionControlShellClasses(shape: SelectionControlShape): string;
|
|
18
43
|
/** Radio circle control; `mt-0.5` aligns with multi-line labels. */
|
|
19
44
|
export declare const RADIO_GROUP_CONTROL_SHELL: string;
|
|
20
|
-
/**
|
|
45
|
+
/**
|
|
46
|
+
* The real input, stretched over the 20px box and transparent, so a press on
|
|
47
|
+
* the box lands on the input itself. It used to be `sr-only`: a 1px box under
|
|
48
|
+
* the ring overlay, where a click aimed at the input (a test's
|
|
49
|
+
* `getByRole("checkbox").check()`, a pointer-driven assistive tool) hit the
|
|
50
|
+
* overlay instead. Everything drawn over it lets the press through.
|
|
51
|
+
*
|
|
52
|
+
* 2px out on each side: the shell's border is outside its padding box.
|
|
53
|
+
*
|
|
54
|
+
* On a coarse pointer it is 44 by 44px, centred on the box (12px further out
|
|
55
|
+
* on each side), so the input itself is the touch target and not only the
|
|
56
|
+
* row around it. The row is 44px tall there, so the inputs of two rows never
|
|
57
|
+
* reach each other. The 44 is in px and the centring is by halves: in rem it
|
|
58
|
+
* grew with the text (88px at 200%, 34px out on each side of a 20px box, and
|
|
59
|
+
* past the screen's edge from a box at the end of a row, Z-128).
|
|
60
|
+
*/
|
|
61
|
+
export declare const SELECTION_CONTROL_INPUT = "absolute -top-0.5 -left-0.5 m-0 size-5 cursor-pointer appearance-none opacity-0 disabled:cursor-not-allowed pointer-coarse:top-1/2 pointer-coarse:left-1/2 pointer-coarse:size-[44px] pointer-coarse:-translate-x-1/2 pointer-coarse:-translate-y-1/2";
|
|
62
|
+
/** Full-bleed ring behind the mark (same geometry as SelectionControl inner ring). Lets a press through to the input. */
|
|
21
63
|
export declare function selectionControlRingOverlayClasses(shape: SelectionControlShape): string;
|
|
22
64
|
/** Radio row: circle overlay + `pointer-events-none` so clicks hit the input. */
|
|
23
65
|
export declare const RADIO_GROUP_RING_OVERLAY: string;
|
|
24
66
|
/** Checked radio dot (shared with `Radio.svelte`). */
|
|
25
|
-
export declare const RADIO_CHECKED_DOT_CLASSES = "absolute size-2 rounded-full bg-
|
|
67
|
+
export declare const RADIO_CHECKED_DOT_CLASSES = "selection-control-dot absolute size-2 rounded-full bg-action-primary-text pointer-events-none z-10 opacity-0 group-has-checked/control:opacity-100";
|
|
@@ -6,25 +6,67 @@
|
|
|
6
6
|
export const SELECTION_CONTROL_LABEL_ROW_INTERACTION = "selection-control-label-row-interaction";
|
|
7
7
|
/** With `app.css`: `:checked` ring for radio list rows. */
|
|
8
8
|
export const SELECTION_CONTROL_OPTION_ROW = "selection-control-option-row";
|
|
9
|
-
/**
|
|
10
|
-
|
|
9
|
+
/**
|
|
10
|
+
* Control + label row; `p-2 -m-2` aligns hit area with text; `group` is not valid inside `@apply`.
|
|
11
|
+
*
|
|
12
|
+
* On a coarse pointer the row is 44px tall and takes that room in the layout
|
|
13
|
+
* (`my-0`): with the negative margin kept, two rows 8px apart overlapped by
|
|
14
|
+
* 8px, and a tap in the overlap went to the lower one.
|
|
15
|
+
*/
|
|
16
|
+
export const SELECTION_CONTROL_LABEL_ROW_BASE = `p-2 -m-2 pointer-coarse:my-0 pointer-coarse:min-h-11 group ${SELECTION_CONTROL_LABEL_ROW_INTERACTION}`.trim();
|
|
11
17
|
export const SELECTION_CONTROL_LABEL_ROW = `flex items-center gap-2 ${SELECTION_CONTROL_LABEL_ROW_BASE}`;
|
|
12
18
|
/** Radio option row: stacked label/description; `p-2` only (no `-m-2`) so vertical gaps stay even. */
|
|
13
|
-
export const RADIO_GROUP_OPTION_LABEL_ROW = `flex items-start gap-2 p-2 group ${SELECTION_CONTROL_LABEL_ROW_INTERACTION} ${SELECTION_CONTROL_OPTION_ROW}`.trim();
|
|
14
|
-
/**
|
|
15
|
-
|
|
19
|
+
export const RADIO_GROUP_OPTION_LABEL_ROW = `flex items-start gap-2 p-2 pointer-coarse:min-h-11 group ${SELECTION_CONTROL_LABEL_ROW_INTERACTION} ${SELECTION_CONTROL_OPTION_ROW}`.trim();
|
|
20
|
+
/**
|
|
21
|
+
* Control shell: border/fill/hover/checked/disabled. `group/control` drives inner mark states.
|
|
22
|
+
* The checked fill is the primary action fill, so a ticked box and a primary
|
|
23
|
+
* button are the same colour; it used to be a step paler (2.8:1 on the page).
|
|
24
|
+
*
|
|
25
|
+
* The unchecked edge is the only thing that says a control is here, so it is
|
|
26
|
+
* the control boundary (3:1 on every surface, both themes); it was a fixed
|
|
27
|
+
* ramp step, 2.5:1 in light and 1.9 to 2.3:1 in dark.
|
|
28
|
+
*
|
|
29
|
+
* In forced colours every fill is gone, so a ticked box would read as an
|
|
30
|
+
* unticked one. `selection-control-shell` and `selection-control-dot` are the
|
|
31
|
+
* hooks for the rules in `app.css` that draw the ticked state as a system
|
|
32
|
+
* colour pair (`Highlight` / `HighlightText`) and the disabled one in `GrayText`.
|
|
33
|
+
*
|
|
34
|
+
* The pressed dip and the hover fills are for a control that can be used.
|
|
35
|
+
* The row around a disabled input still matches `:active` and `:hover`, so
|
|
36
|
+
* without that a disabled box dipped under a finger and lit up under the
|
|
37
|
+
* mouse. The unchecked ones are limited to `not-has-[:disabled]`; the checked
|
|
38
|
+
* hover is undone by a rule with one more `has-` in it, which outweighs it.
|
|
39
|
+
*/
|
|
40
|
+
export const SELECTION_CONTROL_SHELL_STATE = "selection-control-shell group/control relative inline-flex shrink-0 items-center justify-center w-5 h-5 transition-all duration-200 border-2 not-has-[:disabled]:group-active:scale-95 border-control-border bg-transparent not-has-[:disabled]:group-hover:border-brand-500 not-has-[:disabled]:group-hover:bg-brand-50 has-[:checked]:border-action-primary has-[:checked]:bg-action-primary has-[:checked]:group-hover:bg-action-primary-hover has-[:checked]:group-hover:border-action-primary-hover has-[:disabled]:has-[:checked]:group-hover:bg-action-primary has-[:disabled]:has-[:checked]:group-hover:border-action-primary has-[:disabled]:opacity-50 has-[:disabled]:cursor-not-allowed";
|
|
16
41
|
export function selectionControlShellClasses(shape) {
|
|
17
42
|
const rounding = shape === "circle" ? "rounded-full" : "rounded";
|
|
18
43
|
return `${SELECTION_CONTROL_SHELL_STATE} ${rounding}`.trim();
|
|
19
44
|
}
|
|
20
45
|
/** Radio circle control; `mt-0.5` aligns with multi-line labels. */
|
|
21
|
-
export const RADIO_GROUP_CONTROL_SHELL = `${SELECTION_CONTROL_SHELL_STATE} mt-0.5
|
|
22
|
-
/**
|
|
46
|
+
export const RADIO_GROUP_CONTROL_SHELL = `${SELECTION_CONTROL_SHELL_STATE} mt-0.5 rounded-full`.trim();
|
|
47
|
+
/**
|
|
48
|
+
* The real input, stretched over the 20px box and transparent, so a press on
|
|
49
|
+
* the box lands on the input itself. It used to be `sr-only`: a 1px box under
|
|
50
|
+
* the ring overlay, where a click aimed at the input (a test's
|
|
51
|
+
* `getByRole("checkbox").check()`, a pointer-driven assistive tool) hit the
|
|
52
|
+
* overlay instead. Everything drawn over it lets the press through.
|
|
53
|
+
*
|
|
54
|
+
* 2px out on each side: the shell's border is outside its padding box.
|
|
55
|
+
*
|
|
56
|
+
* On a coarse pointer it is 44 by 44px, centred on the box (12px further out
|
|
57
|
+
* on each side), so the input itself is the touch target and not only the
|
|
58
|
+
* row around it. The row is 44px tall there, so the inputs of two rows never
|
|
59
|
+
* reach each other. The 44 is in px and the centring is by halves: in rem it
|
|
60
|
+
* grew with the text (88px at 200%, 34px out on each side of a 20px box, and
|
|
61
|
+
* past the screen's edge from a box at the end of a row, Z-128).
|
|
62
|
+
*/
|
|
63
|
+
export const SELECTION_CONTROL_INPUT = "absolute -top-0.5 -left-0.5 m-0 size-5 cursor-pointer appearance-none opacity-0 disabled:cursor-not-allowed pointer-coarse:top-1/2 pointer-coarse:left-1/2 pointer-coarse:size-[44px] pointer-coarse:-translate-x-1/2 pointer-coarse:-translate-y-1/2";
|
|
64
|
+
/** Full-bleed ring behind the mark (same geometry as SelectionControl inner ring). Lets a press through to the input. */
|
|
23
65
|
export function selectionControlRingOverlayClasses(shape) {
|
|
24
66
|
const rounding = shape === "circle" ? "rounded-full" : "rounded";
|
|
25
|
-
return `absolute inset-0 ${rounding}`.trim();
|
|
67
|
+
return `pointer-events-none absolute inset-0 ${rounding}`.trim();
|
|
26
68
|
}
|
|
27
69
|
/** Radio row: circle overlay + `pointer-events-none` so clicks hit the input. */
|
|
28
|
-
export const RADIO_GROUP_RING_OVERLAY =
|
|
70
|
+
export const RADIO_GROUP_RING_OVERLAY = selectionControlRingOverlayClasses("circle");
|
|
29
71
|
/** Checked radio dot (shared with `Radio.svelte`). */
|
|
30
|
-
export const RADIO_CHECKED_DOT_CLASSES = "absolute size-2 rounded-full bg-
|
|
72
|
+
export const RADIO_CHECKED_DOT_CLASSES = "selection-control-dot absolute size-2 rounded-full bg-action-primary-text pointer-events-none z-10 opacity-0 group-has-checked/control:opacity-100";
|
|
@@ -1,14 +1,27 @@
|
|
|
1
1
|
export { default as Toggle } from './Toggle.svelte';
|
|
2
2
|
export { default as Badge } from './Badge.svelte';
|
|
3
|
+
export { default as Stat } from './Stat.svelte';
|
|
4
|
+
export { default as SpeechBubble } from './SpeechBubble.svelte';
|
|
5
|
+
export { default as Sparkline } from './Sparkline.svelte';
|
|
6
|
+
export { default as Chip } from './Chip.svelte';
|
|
3
7
|
export { default as Button } from './Button.svelte';
|
|
4
8
|
export { default as IconButton } from './IconButton.svelte';
|
|
9
|
+
export { default as Block } from './Block.svelte';
|
|
5
10
|
export { default as Card } from './Card.svelte';
|
|
6
11
|
export { default as CardHeader } from './CardHeader.svelte';
|
|
7
12
|
export { default as CardContent } from './CardContent.svelte';
|
|
8
13
|
export { default as CardFooter } from './CardFooter.svelte';
|
|
9
14
|
export { default as Input } from './Input.svelte';
|
|
15
|
+
export { default as CodeField } from './CodeField.svelte';
|
|
16
|
+
export { DEFAULT_CODE_FIELD_STRINGS } from '../util/code-field.js';
|
|
17
|
+
export type { CodeFieldMode, CodeFieldSize, CodeFieldStrings } from '../util/code-field.js';
|
|
10
18
|
export { default as Textarea } from './Textarea.svelte';
|
|
19
|
+
export type { TextareaCount } from '../util/field.js';
|
|
20
|
+
export { default as PickerField } from './PickerField.svelte';
|
|
11
21
|
export { default as Select } from './Select.svelte';
|
|
22
|
+
export { DEFAULT_SELECT_STRINGS } from '../util/select.js';
|
|
23
|
+
export type { SelectStrings, SelectPresentation } from '../util/select.js';
|
|
24
|
+
export { default as Slider } from './Slider.svelte';
|
|
12
25
|
export { default as ColorPicker } from './ColorPicker.svelte';
|
|
13
26
|
export { default as List } from './List.svelte';
|
|
14
27
|
export { default as ListItem } from './ListItem.svelte';
|
|
@@ -19,5 +32,30 @@ export { default as Divider } from './Divider.svelte';
|
|
|
19
32
|
export { default as Container } from './Container.svelte';
|
|
20
33
|
export { default as Text } from './Text.svelte';
|
|
21
34
|
export { default as Table } from './Table.svelte';
|
|
35
|
+
export { default as Toast } from './Toast.svelte';
|
|
36
|
+
export { default as Tooltip } from './Tooltip.svelte';
|
|
37
|
+
export { default as Progress } from './Progress.svelte';
|
|
38
|
+
export { default as Skeleton } from './Skeleton.svelte';
|
|
39
|
+
export { default as SkeletonGroup } from './SkeletonGroup.svelte';
|
|
40
|
+
export { DEFAULT_SKELETON_STRINGS } from '../util/skeleton.js';
|
|
41
|
+
export type { SkeletonStrings } from '../util/skeleton.js';
|
|
42
|
+
export { default as CodeBlock } from './CodeBlock.svelte';
|
|
43
|
+
export { default as FeatureCard } from './FeatureCard.svelte';
|
|
44
|
+
export { default as OptimizedImage } from './OptimizedImage.svelte';
|
|
45
|
+
export { default as Checkbox } from './Checkbox.svelte';
|
|
22
46
|
export { default as Radio } from './Radio.svelte';
|
|
47
|
+
export { default as Spinner } from './Spinner.svelte';
|
|
48
|
+
export { default as Rating } from './Rating.svelte';
|
|
49
|
+
export type { ProgressStrings } from '../util/progress.js';
|
|
50
|
+
export type { RatingStrings } from '../util/rating.js';
|
|
51
|
+
export { default as FloatingActionButton } from './FloatingActionButton.svelte';
|
|
52
|
+
export { default as DateField } from './DateField.svelte';
|
|
53
|
+
export { default as Avatar } from './Avatar.svelte';
|
|
54
|
+
export type { AvatarSize } from '../util/avatar.js';
|
|
55
|
+
export { default as TimeField } from './TimeField.svelte';
|
|
56
|
+
export { DEFAULT_COLOR_PICKER_STRINGS } from '../util/ready-made-strings.js';
|
|
57
|
+
export type { ColorPickerStrings } from '../util/ready-made-strings.js';
|
|
58
|
+
export { default as ZabiStringsProvider } from './ZabiStringsProvider.svelte';
|
|
59
|
+
export { DEFAULT_ZABI_COMMON_STRINGS, getZabiStrings } from '../util/zabi-strings.js';
|
|
60
|
+
export type { ZabiStrings, ZabiCommonStrings, ZabiStringsContext, AlertTexts, CodeBlockTexts, ImageUploadTexts, ToastTexts, UnsavedChangesBarTexts } from '../util/zabi-strings.js';
|
|
23
61
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/atoms/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,OAAO,IAAI,OAAO,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,OAAO,IAAI,IAAI,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/atoms/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,21 +6,63 @@
|
|
|
6
6
|
export declare const SELECTION_CONTROL_LABEL_ROW_INTERACTION = "selection-control-label-row-interaction";
|
|
7
7
|
/** With `app.css`: `:checked` ring for radio list rows. */
|
|
8
8
|
export declare const SELECTION_CONTROL_OPTION_ROW = "selection-control-option-row";
|
|
9
|
-
/**
|
|
9
|
+
/**
|
|
10
|
+
* Control + label row; `p-2 -m-2` aligns hit area with text; `group` is not valid inside `@apply`.
|
|
11
|
+
*
|
|
12
|
+
* On a coarse pointer the row is 44px tall and takes that room in the layout
|
|
13
|
+
* (`my-0`): with the negative margin kept, two rows 8px apart overlapped by
|
|
14
|
+
* 8px, and a tap in the overlap went to the lower one.
|
|
15
|
+
*/
|
|
10
16
|
export declare const SELECTION_CONTROL_LABEL_ROW_BASE: string;
|
|
11
17
|
export declare const SELECTION_CONTROL_LABEL_ROW: string;
|
|
12
18
|
/** Radio option row: stacked label/description; `p-2` only (no `-m-2`) so vertical gaps stay even. */
|
|
13
19
|
export declare const RADIO_GROUP_OPTION_LABEL_ROW: string;
|
|
14
|
-
/**
|
|
15
|
-
|
|
20
|
+
/**
|
|
21
|
+
* Control shell: border/fill/hover/checked/disabled. `group/control` drives inner mark states.
|
|
22
|
+
* The checked fill is the primary action fill, so a ticked box and a primary
|
|
23
|
+
* button are the same colour; it used to be a step paler (2.8:1 on the page).
|
|
24
|
+
*
|
|
25
|
+
* The unchecked edge is the only thing that says a control is here, so it is
|
|
26
|
+
* the control boundary (3:1 on every surface, both themes); it was a fixed
|
|
27
|
+
* ramp step, 2.5:1 in light and 1.9 to 2.3:1 in dark.
|
|
28
|
+
*
|
|
29
|
+
* In forced colours every fill is gone, so a ticked box would read as an
|
|
30
|
+
* unticked one. `selection-control-shell` and `selection-control-dot` are the
|
|
31
|
+
* hooks for the rules in `app.css` that draw the ticked state as a system
|
|
32
|
+
* colour pair (`Highlight` / `HighlightText`) and the disabled one in `GrayText`.
|
|
33
|
+
*
|
|
34
|
+
* The pressed dip and the hover fills are for a control that can be used.
|
|
35
|
+
* The row around a disabled input still matches `:active` and `:hover`, so
|
|
36
|
+
* without that a disabled box dipped under a finger and lit up under the
|
|
37
|
+
* mouse. The unchecked ones are limited to `not-has-[:disabled]`; the checked
|
|
38
|
+
* hover is undone by a rule with one more `has-` in it, which outweighs it.
|
|
39
|
+
*/
|
|
40
|
+
export declare const SELECTION_CONTROL_SHELL_STATE = "selection-control-shell group/control relative inline-flex shrink-0 items-center justify-center w-5 h-5 transition-all duration-200 border-2 not-has-[:disabled]:group-active:scale-95 border-control-border bg-transparent not-has-[:disabled]:group-hover:border-brand-500 not-has-[:disabled]:group-hover:bg-brand-50 has-[:checked]:border-action-primary has-[:checked]:bg-action-primary has-[:checked]:group-hover:bg-action-primary-hover has-[:checked]:group-hover:border-action-primary-hover has-[:disabled]:has-[:checked]:group-hover:bg-action-primary has-[:disabled]:has-[:checked]:group-hover:border-action-primary has-[:disabled]:opacity-50 has-[:disabled]:cursor-not-allowed";
|
|
16
41
|
export type SelectionControlShape = "square" | "circle";
|
|
17
42
|
export declare function selectionControlShellClasses(shape: SelectionControlShape): string;
|
|
18
43
|
/** Radio circle control; `mt-0.5` aligns with multi-line labels. */
|
|
19
44
|
export declare const RADIO_GROUP_CONTROL_SHELL: string;
|
|
20
|
-
/**
|
|
45
|
+
/**
|
|
46
|
+
* The real input, stretched over the 20px box and transparent, so a press on
|
|
47
|
+
* the box lands on the input itself. It used to be `sr-only`: a 1px box under
|
|
48
|
+
* the ring overlay, where a click aimed at the input (a test's
|
|
49
|
+
* `getByRole("checkbox").check()`, a pointer-driven assistive tool) hit the
|
|
50
|
+
* overlay instead. Everything drawn over it lets the press through.
|
|
51
|
+
*
|
|
52
|
+
* 2px out on each side: the shell's border is outside its padding box.
|
|
53
|
+
*
|
|
54
|
+
* On a coarse pointer it is 44 by 44px, centred on the box (12px further out
|
|
55
|
+
* on each side), so the input itself is the touch target and not only the
|
|
56
|
+
* row around it. The row is 44px tall there, so the inputs of two rows never
|
|
57
|
+
* reach each other. The 44 is in px and the centring is by halves: in rem it
|
|
58
|
+
* grew with the text (88px at 200%, 34px out on each side of a 20px box, and
|
|
59
|
+
* past the screen's edge from a box at the end of a row, Z-128).
|
|
60
|
+
*/
|
|
61
|
+
export declare const SELECTION_CONTROL_INPUT = "absolute -top-0.5 -left-0.5 m-0 size-5 cursor-pointer appearance-none opacity-0 disabled:cursor-not-allowed pointer-coarse:top-1/2 pointer-coarse:left-1/2 pointer-coarse:size-[44px] pointer-coarse:-translate-x-1/2 pointer-coarse:-translate-y-1/2";
|
|
62
|
+
/** Full-bleed ring behind the mark (same geometry as SelectionControl inner ring). Lets a press through to the input. */
|
|
21
63
|
export declare function selectionControlRingOverlayClasses(shape: SelectionControlShape): string;
|
|
22
64
|
/** Radio row: circle overlay + `pointer-events-none` so clicks hit the input. */
|
|
23
65
|
export declare const RADIO_GROUP_RING_OVERLAY: string;
|
|
24
66
|
/** Checked radio dot (shared with `Radio.svelte`). */
|
|
25
|
-
export declare const RADIO_CHECKED_DOT_CLASSES = "absolute size-2 rounded-full bg-
|
|
67
|
+
export declare const RADIO_CHECKED_DOT_CLASSES = "selection-control-dot absolute size-2 rounded-full bg-action-primary-text pointer-events-none z-10 opacity-0 group-has-checked/control:opacity-100";
|
|
26
68
|
//# sourceMappingURL=selection-control.styles.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selection-control.styles.d.ts","sourceRoot":"","sources":["../../../src/components/atoms/selection-control.styles.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,yEAAyE;AACzE,eAAO,MAAM,uCAAuC,4CACP,CAAC;AAE9C,2DAA2D;AAC3D,eAAO,MAAM,4BAA4B,iCAAiC,CAAC;AAE3E
|
|
1
|
+
{"version":3,"file":"selection-control.styles.d.ts","sourceRoot":"","sources":["../../../src/components/atoms/selection-control.styles.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,yEAAyE;AACzE,eAAO,MAAM,uCAAuC,4CACP,CAAC;AAE9C,2DAA2D;AAC3D,eAAO,MAAM,4BAA4B,iCAAiC,CAAC;AAE3E;;;;;;GAMG;AACH,eAAO,MAAM,gCAAgC,QACqE,CAAC;AAEnH,eAAO,MAAM,2BAA2B,QAAgE,CAAC;AAEzG,sGAAsG;AACtG,eAAO,MAAM,4BAA4B,QACuG,CAAC;AAEjJ;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,6BAA6B,yqBACgoB,CAAC;AAE3qB,MAAM,MAAM,qBAAqB,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAExD,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,qBAAqB,GAAG,MAAM,CAGjF;AAED,oEAAoE;AACpE,eAAO,MAAM,yBAAyB,QAAgE,CAAC;AAEvG;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,uBAAuB,0PACuN,CAAC;AAE5P,yHAAyH;AACzH,wBAAgB,kCAAkC,CAC9C,KAAK,EAAE,qBAAqB,GAC7B,MAAM,CAGR;AAED,iFAAiF;AACjF,eAAO,MAAM,wBAAwB,QAA+C,CAAC;AAErF,sDAAsD;AACtD,eAAO,MAAM,yBAAyB,uJACkH,CAAC"}
|