@windmorph/react 0.0.0-stage → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/NOTICE +23 -0
- package/README.md +149 -2
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +112 -0
- package/dist/cli.js.map +1 -0
- package/dist/components/app-bar/AppBarItems.js +23 -0
- package/dist/components/app-bar/AppBarItems.js.map +1 -0
- package/dist/components/app-bar/TopAppBar.d.ts +89 -0
- package/dist/components/app-bar/TopAppBar.js +103 -0
- package/dist/components/app-bar/TopAppBar.js.map +1 -0
- package/dist/components/app-bar/app-bar-styles.d.ts +280 -0
- package/dist/components/app-bar/app-bar-styles.js +142 -0
- package/dist/components/app-bar/app-bar-styles.js.map +1 -0
- package/dist/components/app-bar/app-bar-tokens.d.ts +7 -0
- package/dist/components/app-bar/app-bar-tokens.js +64 -0
- package/dist/components/app-bar/app-bar-tokens.js.map +1 -0
- package/dist/components/app-bar/use-app-bar-scroll.d.ts +6 -0
- package/dist/components/app-bar/use-app-bar-scroll.js +139 -0
- package/dist/components/app-bar/use-app-bar-scroll.js.map +1 -0
- package/dist/components/autocomplete/Autocomplete.d.ts +142 -0
- package/dist/components/autocomplete/Autocomplete.js +284 -0
- package/dist/components/autocomplete/Autocomplete.js.map +1 -0
- package/dist/components/badge/Badge.d.ts +71 -0
- package/dist/components/badge/Badge.js +72 -0
- package/dist/components/badge/Badge.js.map +1 -0
- package/dist/components/badge/badge-styles.d.ts +100 -0
- package/dist/components/badge/badge-styles.js +43 -0
- package/dist/components/badge/badge-styles.js.map +1 -0
- package/dist/components/badge/badge-tokens.d.ts +7 -0
- package/dist/components/badge/badge-tokens.js +40 -0
- package/dist/components/badge/badge-tokens.js.map +1 -0
- package/dist/components/button/Button.d.ts +91 -0
- package/dist/components/button/Button.js +96 -0
- package/dist/components/button/Button.js.map +1 -0
- package/dist/components/button/ButtonContext.d.ts +30 -0
- package/dist/components/button/ButtonContext.js +18 -0
- package/dist/components/button/ButtonContext.js.map +1 -0
- package/dist/components/button/DensityZeroButtons.js +25 -0
- package/dist/components/button/DensityZeroButtons.js.map +1 -0
- package/dist/components/button/button-pending.d.ts +10 -0
- package/dist/components/button/button-pending.js +166 -0
- package/dist/components/button/button-pending.js.map +1 -0
- package/dist/components/button/button-styles.d.ts +216 -0
- package/dist/components/button/button-styles.js +199 -0
- package/dist/components/button/button-styles.js.map +1 -0
- package/dist/components/button/button-tokens.d.ts +10 -0
- package/dist/components/button/button-tokens.js +257 -0
- package/dist/components/button/button-tokens.js.map +1 -0
- package/dist/components/button/connected-shapes.js +152 -0
- package/dist/components/button/connected-shapes.js.map +1 -0
- package/dist/components/card/Card.d.ts +60 -0
- package/dist/components/card/Card.js +69 -0
- package/dist/components/card/Card.js.map +1 -0
- package/dist/components/card/card-styles.d.ts +42 -0
- package/dist/components/card/card-styles.js +64 -0
- package/dist/components/card/card-styles.js.map +1 -0
- package/dist/components/card/card-tokens.d.ts +7 -0
- package/dist/components/card/card-tokens.js +84 -0
- package/dist/components/card/card-tokens.js.map +1 -0
- package/dist/components/carousel/Carousel.d.ts +124 -0
- package/dist/components/carousel/Carousel.js +387 -0
- package/dist/components/carousel/Carousel.js.map +1 -0
- package/dist/components/carousel/carousel-keylines.js +486 -0
- package/dist/components/carousel/carousel-keylines.js.map +1 -0
- package/dist/components/carousel/carousel-press-area.js +35 -0
- package/dist/components/carousel/carousel-press-area.js.map +1 -0
- package/dist/components/carousel/carousel-styles.d.ts +188 -0
- package/dist/components/carousel/carousel-styles.js +116 -0
- package/dist/components/carousel/carousel-styles.js.map +1 -0
- package/dist/components/carousel/carousel-tokens.d.ts +7 -0
- package/dist/components/carousel/carousel-tokens.js +18 -0
- package/dist/components/carousel/carousel-tokens.js.map +1 -0
- package/dist/components/checkbox/Checkbox.d.ts +78 -0
- package/dist/components/checkbox/Checkbox.js +77 -0
- package/dist/components/checkbox/Checkbox.js.map +1 -0
- package/dist/components/checkbox/checkbox-box.js +34 -0
- package/dist/components/checkbox/checkbox-box.js.map +1 -0
- package/dist/components/checkbox/checkbox-styles.d.ts +100 -0
- package/dist/components/checkbox/checkbox-styles.js +54 -0
- package/dist/components/checkbox/checkbox-styles.js.map +1 -0
- package/dist/components/checkbox/checkbox-tokens.d.ts +7 -0
- package/dist/components/checkbox/checkbox-tokens.js +41 -0
- package/dist/components/checkbox/checkbox-tokens.js.map +1 -0
- package/dist/components/chip/Chip.d.ts +171 -0
- package/dist/components/chip/Chip.js +348 -0
- package/dist/components/chip/Chip.js.map +1 -0
- package/dist/components/chip/ChipSet.d.ts +70 -0
- package/dist/components/chip/ChipSet.js +198 -0
- package/dist/components/chip/ChipSet.js.map +1 -0
- package/dist/components/chip/chip-styles.d.ts +263 -0
- package/dist/components/chip/chip-styles.js +360 -0
- package/dist/components/chip/chip-styles.js.map +1 -0
- package/dist/components/chip/chip-tokens.d.ts +13 -0
- package/dist/components/chip/chip-tokens.js +185 -0
- package/dist/components/chip/chip-tokens.js.map +1 -0
- package/dist/components/date-picker/CalendarGrid.js +94 -0
- package/dist/components/date-picker/CalendarGrid.js.map +1 -0
- package/dist/components/date-picker/CompactDateDialog.js +63 -0
- package/dist/components/date-picker/CompactDateDialog.js.map +1 -0
- package/dist/components/date-picker/DateField.d.ts +161 -0
- package/dist/components/date-picker/DateField.js +393 -0
- package/dist/components/date-picker/DateField.js.map +1 -0
- package/dist/components/date-picker/DateInput.d.ts +20 -0
- package/dist/components/date-picker/DateInput.js +99 -0
- package/dist/components/date-picker/DateInput.js.map +1 -0
- package/dist/components/date-picker/DatePicker.d.ts +165 -0
- package/dist/components/date-picker/DatePicker.js +492 -0
- package/dist/components/date-picker/DatePicker.js.map +1 -0
- package/dist/components/date-picker/PickerDialog.d.ts +121 -0
- package/dist/components/date-picker/PickerDialog.js +161 -0
- package/dist/components/date-picker/PickerDialog.js.map +1 -0
- package/dist/components/date-picker/calendar-parts.js +141 -0
- package/dist/components/date-picker/calendar-parts.js.map +1 -0
- package/dist/components/date-picker/date-format.js +72 -0
- package/dist/components/date-picker/date-format.js.map +1 -0
- package/dist/components/date-picker/date-picker-styles.d.ts +247 -0
- package/dist/components/date-picker/date-picker-styles.js +163 -0
- package/dist/components/date-picker/date-picker-styles.js.map +1 -0
- package/dist/components/date-picker/date-picker-tokens.d.ts +7 -0
- package/dist/components/date-picker/date-picker-tokens.js +104 -0
- package/dist/components/date-picker/date-picker-tokens.js.map +1 -0
- package/dist/components/date-picker/picker-dialog-context.js +8 -0
- package/dist/components/date-picker/picker-dialog-context.js.map +1 -0
- package/dist/components/date-picker/picker-dialog-styles.d.ts +95 -0
- package/dist/components/date-picker/picker-dialog-styles.js +57 -0
- package/dist/components/date-picker/picker-dialog-styles.js.map +1 -0
- package/dist/components/date-picker/picker-icons.js +24 -0
- package/dist/components/date-picker/picker-icons.js.map +1 -0
- package/dist/components/date-picker/use-media-query.js +21 -0
- package/dist/components/date-picker/use-media-query.js.map +1 -0
- package/dist/components/date-picker/use-size-transform.js +62 -0
- package/dist/components/date-picker/use-size-transform.js.map +1 -0
- package/dist/components/date-picker/use-view-exit.js +68 -0
- package/dist/components/date-picker/use-view-exit.js.map +1 -0
- package/dist/components/dialog/Dialog.d.ts +267 -0
- package/dist/components/dialog/Dialog.js +521 -0
- package/dist/components/dialog/Dialog.js.map +1 -0
- package/dist/components/dialog/dialog-styles.d.ts +335 -0
- package/dist/components/dialog/dialog-styles.js +377 -0
- package/dist/components/dialog/dialog-styles.js.map +1 -0
- package/dist/components/dialog/dialog-tokens.d.ts +7 -0
- package/dist/components/dialog/dialog-tokens.js +57 -0
- package/dist/components/dialog/dialog-tokens.js.map +1 -0
- package/dist/components/divider/Divider.d.ts +59 -0
- package/dist/components/divider/Divider.js +53 -0
- package/dist/components/divider/Divider.js.map +1 -0
- package/dist/components/divider/divider-styles.d.ts +90 -0
- package/dist/components/divider/divider-styles.js +66 -0
- package/dist/components/divider/divider-styles.js.map +1 -0
- package/dist/components/divider/divider-tokens.d.ts +7 -0
- package/dist/components/divider/divider-tokens.js +16 -0
- package/dist/components/divider/divider-tokens.js.map +1 -0
- package/dist/components/fab/Fab.d.ts +130 -0
- package/dist/components/fab/Fab.js +137 -0
- package/dist/components/fab/Fab.js.map +1 -0
- package/dist/components/fab/FabTooltip.js +36 -0
- package/dist/components/fab/FabTooltip.js.map +1 -0
- package/dist/components/fab/fab-styles.d.ts +286 -0
- package/dist/components/fab/fab-styles.js +131 -0
- package/dist/components/fab/fab-styles.js.map +1 -0
- package/dist/components/fab/fab-tokens.d.ts +12 -0
- package/dist/components/fab/fab-tokens.js +105 -0
- package/dist/components/fab/fab-tokens.js.map +1 -0
- package/dist/components/fab-menu/FabMenu.d.ts +156 -0
- package/dist/components/fab-menu/FabMenu.js +291 -0
- package/dist/components/fab-menu/FabMenu.js.map +1 -0
- package/dist/components/fab-menu/fab-menu-stagger.js +51 -0
- package/dist/components/fab-menu/fab-menu-stagger.js.map +1 -0
- package/dist/components/fab-menu/fab-menu-styles.d.ts +166 -0
- package/dist/components/fab-menu/fab-menu-styles.js +107 -0
- package/dist/components/fab-menu/fab-menu-styles.js.map +1 -0
- package/dist/components/fab-menu/fab-menu-tokens.d.ts +7 -0
- package/dist/components/fab-menu/fab-menu-tokens.js +120 -0
- package/dist/components/fab-menu/fab-menu-tokens.js.map +1 -0
- package/dist/components/icon-button/IconButton.d.ts +125 -0
- package/dist/components/icon-button/IconButton.js +112 -0
- package/dist/components/icon-button/IconButton.js.map +1 -0
- package/dist/components/icon-button/icon-button-styles.d.ts +217 -0
- package/dist/components/icon-button/icon-button-styles.js +244 -0
- package/dist/components/icon-button/icon-button-styles.js.map +1 -0
- package/dist/components/icon-button/icon-button-tokens.d.ts +11 -0
- package/dist/components/icon-button/icon-button-tokens.js +215 -0
- package/dist/components/icon-button/icon-button-tokens.js.map +1 -0
- package/dist/components/list/List.d.ts +265 -0
- package/dist/components/list/List.js +1386 -0
- package/dist/components/list/List.js.map +1 -0
- package/dist/components/list/ListMedia.d.ts +88 -0
- package/dist/components/list/ListMedia.js +132 -0
- package/dist/components/list/ListMedia.js.map +1 -0
- package/dist/components/list/list-styles.d.ts +375 -0
- package/dist/components/list/list-styles.js +220 -0
- package/dist/components/list/list-styles.js.map +1 -0
- package/dist/components/list/list-tokens.d.ts +7 -0
- package/dist/components/list/list-tokens.js +92 -0
- package/dist/components/list/list-tokens.js.map +1 -0
- package/dist/components/loading-indicator/LoadingIndicator.d.ts +65 -0
- package/dist/components/loading-indicator/LoadingIndicator.js +92 -0
- package/dist/components/loading-indicator/LoadingIndicator.js.map +1 -0
- package/dist/components/loading-indicator/lazy-loading-indicator.js +25 -0
- package/dist/components/loading-indicator/lazy-loading-indicator.js.map +1 -0
- package/dist/components/loading-indicator/loading-indicator-frames.js +149 -0
- package/dist/components/loading-indicator/loading-indicator-frames.js.map +1 -0
- package/dist/components/loading-indicator/loading-indicator-styles.d.ts +36 -0
- package/dist/components/loading-indicator/loading-indicator-styles.js +22 -0
- package/dist/components/loading-indicator/loading-indicator-styles.js.map +1 -0
- package/dist/components/loading-indicator/loading-indicator-tokens.d.ts +7 -0
- package/dist/components/loading-indicator/loading-indicator-tokens.js +44 -0
- package/dist/components/loading-indicator/loading-indicator-tokens.js.map +1 -0
- package/dist/components/menu/Menu.d.ts +215 -0
- package/dist/components/menu/Menu.js +715 -0
- package/dist/components/menu/Menu.js.map +1 -0
- package/dist/components/menu/menu-styles.d.ts +354 -0
- package/dist/components/menu/menu-styles.js +219 -0
- package/dist/components/menu/menu-styles.js.map +1 -0
- package/dist/components/menu/menu-tokens.d.ts +7 -0
- package/dist/components/menu/menu-tokens.js +93 -0
- package/dist/components/menu/menu-tokens.js.map +1 -0
- package/dist/components/menu/menu-trigger.d.ts +51 -0
- package/dist/components/menu/menu-trigger.js +100 -0
- package/dist/components/menu/menu-trigger.js.map +1 -0
- package/dist/components/menu/use-reveal-entering.js +42 -0
- package/dist/components/menu/use-reveal-entering.js.map +1 -0
- package/dist/components/navigation/NavItem.d.ts +54 -0
- package/dist/components/navigation/NavItem.js +182 -0
- package/dist/components/navigation/NavItem.js.map +1 -0
- package/dist/components/navigation/NavigationBar.d.ts +64 -0
- package/dist/components/navigation/NavigationBar.js +121 -0
- package/dist/components/navigation/NavigationBar.js.map +1 -0
- package/dist/components/navigation/NavigationRail.d.ts +91 -0
- package/dist/components/navigation/NavigationRail.js +285 -0
- package/dist/components/navigation/NavigationRail.js.map +1 -0
- package/dist/components/navigation/nav-item-styles.d.ts +190 -0
- package/dist/components/navigation/nav-item-styles.js +123 -0
- package/dist/components/navigation/nav-item-styles.js.map +1 -0
- package/dist/components/navigation/navigation-styles.d.ts +239 -0
- package/dist/components/navigation/navigation-styles.js +134 -0
- package/dist/components/navigation/navigation-styles.js.map +1 -0
- package/dist/components/navigation/navigation-tokens.d.ts +9 -0
- package/dist/components/navigation/navigation-tokens.js +114 -0
- package/dist/components/navigation/navigation-tokens.js.map +1 -0
- package/dist/components/navigation/use-hide-on-scroll.js +115 -0
- package/dist/components/navigation/use-hide-on-scroll.js.map +1 -0
- package/dist/components/navigation/use-item-arrow-keys.js +37 -0
- package/dist/components/navigation/use-item-arrow-keys.js.map +1 -0
- package/dist/components/navigation/use-rail-item-morph.js +61 -0
- package/dist/components/navigation/use-rail-item-morph.js.map +1 -0
- package/dist/components/progress/ProgressIndicator.d.ts +95 -0
- package/dist/components/progress/ProgressIndicator.js +426 -0
- package/dist/components/progress/ProgressIndicator.js.map +1 -0
- package/dist/components/progress/progress-geometry.js +285 -0
- package/dist/components/progress/progress-geometry.js.map +1 -0
- package/dist/components/progress/progress-styles.d.ts +81 -0
- package/dist/components/progress/progress-styles.js +43 -0
- package/dist/components/progress/progress-styles.js.map +1 -0
- package/dist/components/progress/progress-tokens.d.ts +7 -0
- package/dist/components/progress/progress-tokens.js +39 -0
- package/dist/components/progress/progress-tokens.js.map +1 -0
- package/dist/components/pull-to-refresh/PullToRefresh.d.ts +94 -0
- package/dist/components/pull-to-refresh/PullToRefresh.js +395 -0
- package/dist/components/pull-to-refresh/PullToRefresh.js.map +1 -0
- package/dist/components/pull-to-refresh/pull-to-refresh-math.js +37 -0
- package/dist/components/pull-to-refresh/pull-to-refresh-math.js.map +1 -0
- package/dist/components/pull-to-refresh/pull-to-refresh-styles.d.ts +53 -0
- package/dist/components/pull-to-refresh/pull-to-refresh-styles.js +14 -0
- package/dist/components/pull-to-refresh/pull-to-refresh-styles.js.map +1 -0
- package/dist/components/radio/RadioGroup.d.ts +121 -0
- package/dist/components/radio/RadioGroup.js +163 -0
- package/dist/components/radio/RadioGroup.js.map +1 -0
- package/dist/components/radio/radio-ring.js +21 -0
- package/dist/components/radio/radio-ring.js.map +1 -0
- package/dist/components/radio/radio-styles.d.ts +155 -0
- package/dist/components/radio/radio-styles.js +60 -0
- package/dist/components/radio/radio-styles.js.map +1 -0
- package/dist/components/radio/radio-tokens.d.ts +7 -0
- package/dist/components/radio/radio-tokens.js +31 -0
- package/dist/components/radio/radio-tokens.js.map +1 -0
- package/dist/components/search/SearchAppBar.d.ts +45 -0
- package/dist/components/search/SearchAppBar.js +61 -0
- package/dist/components/search/SearchAppBar.js.map +1 -0
- package/dist/components/search/SearchBar.d.ts +147 -0
- package/dist/components/search/SearchBar.js +412 -0
- package/dist/components/search/SearchBar.js.map +1 -0
- package/dist/components/search/search-styles.d.ts +243 -0
- package/dist/components/search/search-styles.js +143 -0
- package/dist/components/search/search-styles.js.map +1 -0
- package/dist/components/search/search-tokens.d.ts +9 -0
- package/dist/components/search/search-tokens.js +70 -0
- package/dist/components/search/search-tokens.js.map +1 -0
- package/dist/components/select/Select.d.ts +187 -0
- package/dist/components/select/Select.js +319 -0
- package/dist/components/select/Select.js.map +1 -0
- package/dist/components/select/field-shell.d.ts +29 -0
- package/dist/components/select/field-shell.js +135 -0
- package/dist/components/select/field-shell.js.map +1 -0
- package/dist/components/select/option-list.d.ts +81 -0
- package/dist/components/select/option-list.js +291 -0
- package/dist/components/select/option-list.js.map +1 -0
- package/dist/components/select/search-list.js +135 -0
- package/dist/components/select/search-list.js.map +1 -0
- package/dist/components/select/selection-cap.js +30 -0
- package/dist/components/select/selection-cap.js.map +1 -0
- package/dist/components/sheet/BottomSheet.d.ts +154 -0
- package/dist/components/sheet/BottomSheet.js +442 -0
- package/dist/components/sheet/BottomSheet.js.map +1 -0
- package/dist/components/sheet/SheetTrigger.d.ts +25 -0
- package/dist/components/sheet/SheetTrigger.js +46 -0
- package/dist/components/sheet/SheetTrigger.js.map +1 -0
- package/dist/components/sheet/SideSheet.d.ts +139 -0
- package/dist/components/sheet/SideSheet.js +289 -0
- package/dist/components/sheet/SideSheet.js.map +1 -0
- package/dist/components/sheet/bottom-sheet-gesture.js +30 -0
- package/dist/components/sheet/bottom-sheet-gesture.js.map +1 -0
- package/dist/components/sheet/lazy-bottom-sheet.js +33 -0
- package/dist/components/sheet/lazy-bottom-sheet.js.map +1 -0
- package/dist/components/sheet/sheet-gesture.js +48 -0
- package/dist/components/sheet/sheet-gesture.js.map +1 -0
- package/dist/components/sheet/sheet-icons.js +31 -0
- package/dist/components/sheet/sheet-icons.js.map +1 -0
- package/dist/components/sheet/sheet-settle.js +58 -0
- package/dist/components/sheet/sheet-settle.js.map +1 -0
- package/dist/components/sheet/sheet-styles.d.ts +312 -0
- package/dist/components/sheet/sheet-styles.js +229 -0
- package/dist/components/sheet/sheet-styles.js.map +1 -0
- package/dist/components/sheet/sheet-tokens.d.ts +12 -0
- package/dist/components/sheet/sheet-tokens.js +115 -0
- package/dist/components/sheet/sheet-tokens.js.map +1 -0
- package/dist/components/sheet/side-swipe-gesture.js +22 -0
- package/dist/components/sheet/side-swipe-gesture.js.map +1 -0
- package/dist/components/sheet/use-peek-inert.js +32 -0
- package/dist/components/sheet/use-peek-inert.js.map +1 -0
- package/dist/components/sheet/use-side-swipe.js +174 -0
- package/dist/components/sheet/use-side-swipe.js.map +1 -0
- package/dist/components/slider/Slider.d.ts +129 -0
- package/dist/components/slider/Slider.js +295 -0
- package/dist/components/slider/Slider.js.map +1 -0
- package/dist/components/slider/slider-geometry.js +138 -0
- package/dist/components/slider/slider-geometry.js.map +1 -0
- package/dist/components/slider/slider-styles.d.ts +133 -0
- package/dist/components/slider/slider-styles.js +97 -0
- package/dist/components/slider/slider-styles.js.map +1 -0
- package/dist/components/slider/slider-tokens.d.ts +7 -0
- package/dist/components/slider/slider-tokens.js +66 -0
- package/dist/components/slider/slider-tokens.js.map +1 -0
- package/dist/components/slider/use-touch-track.js +138 -0
- package/dist/components/slider/use-touch-track.js.map +1 -0
- package/dist/components/snackbar/Snackbar.d.ts +96 -0
- package/dist/components/snackbar/Snackbar.js +253 -0
- package/dist/components/snackbar/Snackbar.js.map +1 -0
- package/dist/components/snackbar/snackbar-state.d.ts +58 -0
- package/dist/components/snackbar/snackbar-state.js +73 -0
- package/dist/components/snackbar/snackbar-state.js.map +1 -0
- package/dist/components/snackbar/snackbar-styles.d.ts +109 -0
- package/dist/components/snackbar/snackbar-styles.js +67 -0
- package/dist/components/snackbar/snackbar-styles.js.map +1 -0
- package/dist/components/snackbar/snackbar-tokens.d.ts +7 -0
- package/dist/components/snackbar/snackbar-tokens.js +54 -0
- package/dist/components/snackbar/snackbar-tokens.js.map +1 -0
- package/dist/components/split-button/SplitButton.d.ts +109 -0
- package/dist/components/split-button/SplitButton.js +195 -0
- package/dist/components/split-button/SplitButton.js.map +1 -0
- package/dist/components/split-button/split-button-styles.d.ts +214 -0
- package/dist/components/split-button/split-button-styles.js +164 -0
- package/dist/components/split-button/split-button-styles.js.map +1 -0
- package/dist/components/split-button/split-button-tokens.d.ts +7 -0
- package/dist/components/split-button/split-button-tokens.js +36 -0
- package/dist/components/split-button/split-button-tokens.js.map +1 -0
- package/dist/components/switch/Switch.d.ts +82 -0
- package/dist/components/switch/Switch.js +165 -0
- package/dist/components/switch/Switch.js.map +1 -0
- package/dist/components/switch/switch-styles.d.ts +96 -0
- package/dist/components/switch/switch-styles.js +68 -0
- package/dist/components/switch/switch-styles.js.map +1 -0
- package/dist/components/switch/switch-thumb.js +41 -0
- package/dist/components/switch/switch-thumb.js.map +1 -0
- package/dist/components/switch/switch-tokens.d.ts +7 -0
- package/dist/components/switch/switch-tokens.js +78 -0
- package/dist/components/switch/switch-tokens.js.map +1 -0
- package/dist/components/tabs/Tabs.d.ts +120 -0
- package/dist/components/tabs/Tabs.js +346 -0
- package/dist/components/tabs/Tabs.js.map +1 -0
- package/dist/components/tabs/tabs-styles.d.ts +198 -0
- package/dist/components/tabs/tabs-styles.js +99 -0
- package/dist/components/tabs/tabs-styles.js.map +1 -0
- package/dist/components/tabs/tabs-tokens.d.ts +7 -0
- package/dist/components/tabs/tabs-tokens.js +121 -0
- package/dist/components/tabs/tabs-tokens.js.map +1 -0
- package/dist/components/text-field/TextField.d.ts +175 -0
- package/dist/components/text-field/TextField.js +250 -0
- package/dist/components/text-field/TextField.js.map +1 -0
- package/dist/components/text-field/text-field-styles.d.ts +252 -0
- package/dist/components/text-field/text-field-styles.js +209 -0
- package/dist/components/text-field/text-field-styles.js.map +1 -0
- package/dist/components/text-field/text-field-tokens.d.ts +7 -0
- package/dist/components/text-field/text-field-tokens.js +177 -0
- package/dist/components/text-field/text-field-tokens.js.map +1 -0
- package/dist/components/time-picker/TimePicker.d.ts +142 -0
- package/dist/components/time-picker/TimePicker.js +700 -0
- package/dist/components/time-picker/TimePicker.js.map +1 -0
- package/dist/components/time-picker/time-picker-styles.d.ts +175 -0
- package/dist/components/time-picker/time-picker-styles.js +112 -0
- package/dist/components/time-picker/time-picker-styles.js.map +1 -0
- package/dist/components/time-picker/time-picker-tokens.d.ts +7 -0
- package/dist/components/time-picker/time-picker-tokens.js +86 -0
- package/dist/components/time-picker/time-picker-tokens.js.map +1 -0
- package/dist/components/toolbar/Toolbar.d.ts +209 -0
- package/dist/components/toolbar/Toolbar.js +282 -0
- package/dist/components/toolbar/Toolbar.js.map +1 -0
- package/dist/components/toolbar/toolbar-styles.d.ts +403 -0
- package/dist/components/toolbar/toolbar-styles.js +253 -0
- package/dist/components/toolbar/toolbar-styles.js.map +1 -0
- package/dist/components/toolbar/toolbar-tokens.d.ts +27 -0
- package/dist/components/toolbar/toolbar-tokens.js +117 -0
- package/dist/components/toolbar/toolbar-tokens.js.map +1 -0
- package/dist/components/toolbar/use-toolbar-scroll-expansion.d.ts +56 -0
- package/dist/components/toolbar/use-toolbar-scroll-expansion.js +86 -0
- package/dist/components/toolbar/use-toolbar-scroll-expansion.js.map +1 -0
- package/dist/components/tooltip/Tooltip.d.ts +131 -0
- package/dist/components/tooltip/Tooltip.js +388 -0
- package/dist/components/tooltip/Tooltip.js.map +1 -0
- package/dist/components/tooltip/lazy-tooltip.js +35 -0
- package/dist/components/tooltip/lazy-tooltip.js.map +1 -0
- package/dist/components/tooltip/tooltip-placement.d.ts +16 -0
- package/dist/components/tooltip/tooltip-placement.js +14 -0
- package/dist/components/tooltip/tooltip-placement.js.map +1 -0
- package/dist/components/tooltip/tooltip-styles.d.ts +142 -0
- package/dist/components/tooltip/tooltip-styles.js +81 -0
- package/dist/components/tooltip/tooltip-styles.js.map +1 -0
- package/dist/components/tooltip/tooltip-tokens.d.ts +9 -0
- package/dist/components/tooltip/tooltip-tokens.js +72 -0
- package/dist/components/tooltip/tooltip-tokens.js.map +1 -0
- package/dist/components/tooltip/tooltip-trigger.d.ts +42 -0
- package/dist/components/tooltip/tooltip-trigger.js +115 -0
- package/dist/components/tooltip/tooltip-trigger.js.map +1 -0
- package/dist/composites/button-group/ButtonGroup.d.ts +116 -0
- package/dist/composites/button-group/ButtonGroup.js +270 -0
- package/dist/composites/button-group/ButtonGroup.js.map +1 -0
- package/dist/composites/button-group/button-group-styles.d.ts +73 -0
- package/dist/composites/button-group/button-group-styles.js +87 -0
- package/dist/composites/button-group/button-group-styles.js.map +1 -0
- package/dist/composites/button-group/lazy-overflow-menu.js +43 -0
- package/dist/composites/button-group/lazy-overflow-menu.js.map +1 -0
- package/dist/composites/button-group/overflow-menu-list.js +26 -0
- package/dist/composites/button-group/overflow-menu-list.js.map +1 -0
- package/dist/composites/button-group/use-overflow.js +75 -0
- package/dist/composites/button-group/use-overflow.js.map +1 -0
- package/dist/composites/button-group/use-press-expansion.js +155 -0
- package/dist/composites/button-group/use-press-expansion.js.map +1 -0
- package/dist/index.d.ts +142 -0
- package/dist/index.js +136 -0
- package/dist/motion/get-m3-spring.d.ts +6 -0
- package/dist/motion/get-m3-spring.js +10 -0
- package/dist/motion/get-m3-spring.js.map +1 -0
- package/dist/motion/reduced-motion.js +19 -0
- package/dist/motion/reduced-motion.js.map +1 -0
- package/dist/motion/use-m3-spring.d.ts +13 -0
- package/dist/motion/use-m3-spring.js +22 -0
- package/dist/motion/use-m3-spring.js.map +1 -0
- package/dist/next/NextRouterProvider.d.ts +13 -0
- package/dist/next/NextRouterProvider.js +26 -0
- package/dist/next/NextRouterProvider.js.map +1 -0
- package/dist/next/get-theme-from-cookies.d.ts +32 -0
- package/dist/next/get-theme-from-cookies.js +27 -0
- package/dist/next/get-theme-from-cookies.js.map +1 -0
- package/dist/next/navigation-guard.d.ts +30 -0
- package/dist/next/navigation-guard.js +68 -0
- package/dist/next/navigation-guard.js.map +1 -0
- package/dist/next.d.ts +5 -0
- package/dist/next.js +5 -0
- package/dist/primitives/ButtonBase.d.ts +115 -0
- package/dist/primitives/ButtonBase.js +231 -0
- package/dist/primitives/ButtonBase.js.map +1 -0
- package/dist/primitives/DomDirectionLocale.d.ts +18 -0
- package/dist/primitives/DomDirectionLocale.js +28 -0
- package/dist/primitives/DomDirectionLocale.js.map +1 -0
- package/dist/primitives/Field.d.ts +50 -0
- package/dist/primitives/Field.js +74 -0
- package/dist/primitives/Field.js.map +1 -0
- package/dist/primitives/IconFaces.js +23 -0
- package/dist/primitives/IconFaces.js.map +1 -0
- package/dist/primitives/Overlay.d.ts +39 -0
- package/dist/primitives/Overlay.js +86 -0
- package/dist/primitives/Overlay.js.map +1 -0
- package/dist/primitives/SelectionControl.d.ts +55 -0
- package/dist/primitives/SelectionControl.js +58 -0
- package/dist/primitives/SelectionControl.js.map +1 -0
- package/dist/primitives/Surface.d.ts +123 -0
- package/dist/primitives/Surface.js +68 -0
- package/dist/primitives/Surface.js.map +1 -0
- package/dist/primitives/ToolbarContext.js +12 -0
- package/dist/primitives/ToolbarContext.js.map +1 -0
- package/dist/primitives/TouchTarget.d.ts +14 -0
- package/dist/primitives/TouchTarget.js +20 -0
- package/dist/primitives/TouchTarget.js.map +1 -0
- package/dist/primitives/TriggerContext.d.ts +34 -0
- package/dist/primitives/TriggerContext.js +24 -0
- package/dist/primitives/TriggerContext.js.map +1 -0
- package/dist/primitives/hidden-input-focus.js +27 -0
- package/dist/primitives/hidden-input-focus.js.map +1 -0
- package/dist/primitives/icon-faces-styles.d.ts +9 -0
- package/dist/primitives/icon-faces-styles.js +45 -0
- package/dist/primitives/icon-faces-styles.js.map +1 -0
- package/dist/primitives/locale-with-direction.d.ts +9 -0
- package/dist/primitives/locale-with-direction.js +17 -0
- package/dist/primitives/locale-with-direction.js.map +1 -0
- package/dist/primitives/morph-path.d.ts +25 -0
- package/dist/primitives/morph-path.js +38 -0
- package/dist/primitives/morph-path.js.map +1 -0
- package/dist/primitives/selection-control-styles.d.ts +54 -0
- package/dist/primitives/selection-control-styles.js +44 -0
- package/dist/primitives/selection-control-styles.js.map +1 -0
- package/dist/primitives/use-m3-interaction.d.ts +51 -0
- package/dist/primitives/use-m3-interaction.js +149 -0
- package/dist/primitives/use-m3-interaction.js.map +1 -0
- package/dist/primitives/use-m3-morph.d.ts +18 -0
- package/dist/primitives/use-m3-morph.js +36 -0
- package/dist/primitives/use-m3-morph.js.map +1 -0
- package/dist/primitives/use-presence.d.ts +19 -0
- package/dist/primitives/use-presence.js +37 -0
- package/dist/primitives/use-presence.js.map +1 -0
- package/dist/primitives.d.ts +36 -0
- package/dist/primitives.js +34 -0
- package/dist/shapes/corner-rounding.d.ts +13 -0
- package/dist/shapes/corner-rounding.js +18 -0
- package/dist/shapes/corner-rounding.js.map +1 -0
- package/dist/shapes/cubic.d.ts +52 -0
- package/dist/shapes/cubic.js +189 -0
- package/dist/shapes/cubic.js.map +1 -0
- package/dist/shapes/feature-mapping.js +80 -0
- package/dist/shapes/feature-mapping.js.map +1 -0
- package/dist/shapes/features.d.ts +23 -0
- package/dist/shapes/features.js +82 -0
- package/dist/shapes/features.js.map +1 -0
- package/dist/shapes/float-mapping.js +65 -0
- package/dist/shapes/float-mapping.js.map +1 -0
- package/dist/shapes/generated/material-shape-path-record.d.ts +11 -0
- package/dist/shapes/generated/material-shape-path-record.js +48 -0
- package/dist/shapes/generated/material-shape-path-record.js.map +1 -0
- package/dist/shapes/generated/material-shape-paths.d.ts +78 -0
- package/dist/shapes/generated/material-shape-paths.js +218 -0
- package/dist/shapes/generated/material-shape-paths.js.map +1 -0
- package/dist/shapes/mask.d.ts +14 -0
- package/dist/shapes/mask.js +24 -0
- package/dist/shapes/mask.js.map +1 -0
- package/dist/shapes/material-shapes.d.ts +11 -0
- package/dist/shapes/material-shapes.js +250 -0
- package/dist/shapes/material-shapes.js.map +1 -0
- package/dist/shapes/morph.d.ts +25 -0
- package/dist/shapes/morph.js +97 -0
- package/dist/shapes/morph.js.map +1 -0
- package/dist/shapes/path.d.ts +33 -0
- package/dist/shapes/path.js +47 -0
- package/dist/shapes/path.js.map +1 -0
- package/dist/shapes/point.d.ts +28 -0
- package/dist/shapes/point.js +103 -0
- package/dist/shapes/point.js.map +1 -0
- package/dist/shapes/polygon-measure.js +140 -0
- package/dist/shapes/polygon-measure.js.map +1 -0
- package/dist/shapes/rounded-polygon.d.ts +44 -0
- package/dist/shapes/rounded-polygon.js +278 -0
- package/dist/shapes/rounded-polygon.js.map +1 -0
- package/dist/shapes/shape-path.d.ts +15 -0
- package/dist/shapes/shapes.d.ts +53 -0
- package/dist/shapes/shapes.js +171 -0
- package/dist/shapes/shapes.js.map +1 -0
- package/dist/styles/generated/components.css +710 -0
- package/dist/styles/generated/theme.css +247 -0
- package/dist/styles/generated/themes.css +3361 -0
- package/dist/styles/generated/tokens.css +284 -0
- package/dist/styles/styles.css +15 -0
- package/dist/styles/utilities.css +283 -0
- package/dist/styles.compiled.css +2 -0
- package/dist/theme/ThemeProvider.d.ts +72 -0
- package/dist/theme/ThemeProvider.js +144 -0
- package/dist/theme/ThemeProvider.js.map +1 -0
- package/dist/theme/ThemeScope.d.ts +32 -0
- package/dist/theme/ThemeScope.js +67 -0
- package/dist/theme/ThemeScope.js.map +1 -0
- package/dist/theme/ThemeScript.d.ts +26 -0
- package/dist/theme/ThemeScript.js +44 -0
- package/dist/theme/ThemeScript.js.map +1 -0
- package/dist/theme/context.d.ts +32 -0
- package/dist/theme/context.js +47 -0
- package/dist/theme/context.js.map +1 -0
- package/dist/theme/create-theme.d.ts +60 -0
- package/dist/theme/create-theme.js +47 -0
- package/dist/theme/create-theme.js.map +1 -0
- package/dist/theme/css.js +54 -0
- package/dist/theme/css.js.map +1 -0
- package/dist/theme/parse-palettes.js +40 -0
- package/dist/theme/parse-palettes.js.map +1 -0
- package/dist/theme/scheme.d.ts +6 -0
- package/dist/theme/scheme.js +118 -0
- package/dist/theme/scheme.js.map +1 -0
- package/dist/theme/state.d.ts +38 -0
- package/dist/theme/state.js +93 -0
- package/dist/theme/state.js.map +1 -0
- package/dist/theme/storage.js +21 -0
- package/dist/theme/storage.js.map +1 -0
- package/dist/tokens/breakpoints.d.ts +15 -0
- package/dist/tokens/breakpoints.js +16 -0
- package/dist/tokens/breakpoints.js.map +1 -0
- package/dist/tokens/color.d.ts +104 -0
- package/dist/tokens/color.js +147 -0
- package/dist/tokens/color.js.map +1 -0
- package/dist/tokens/component.d.ts +110 -0
- package/dist/tokens/component.js +67 -0
- package/dist/tokens/component.js.map +1 -0
- package/dist/tokens/density.d.ts +20 -0
- package/dist/tokens/density.js +27 -0
- package/dist/tokens/density.js.map +1 -0
- package/dist/tokens/elevation.d.ts +44 -0
- package/dist/tokens/elevation.js +45 -0
- package/dist/tokens/elevation.js.map +1 -0
- package/dist/tokens/motion.d.ts +79 -0
- package/dist/tokens/motion.js +126 -0
- package/dist/tokens/motion.js.map +1 -0
- package/dist/tokens/shape.d.ts +22 -0
- package/dist/tokens/shape.js +22 -0
- package/dist/tokens/shape.js.map +1 -0
- package/dist/tokens/spring-velocity.d.ts +19 -0
- package/dist/tokens/spring-velocity.js +44 -0
- package/dist/tokens/spring-velocity.js.map +1 -0
- package/dist/tokens/state.d.ts +18 -0
- package/dist/tokens/state.js +19 -0
- package/dist/tokens/state.js.map +1 -0
- package/dist/tokens/typography.d.ts +64 -0
- package/dist/tokens/typography.js +60 -0
- package/dist/tokens/typography.js.map +1 -0
- package/dist/tokens/z-index.d.ts +17 -0
- package/dist/tokens/z-index.js +18 -0
- package/dist/tokens/z-index.js.map +1 -0
- package/dist/utils/announce.js +51 -0
- package/dist/utils/announce.js.map +1 -0
- package/dist/utils/assert-collection-children.js +26 -0
- package/dist/utils/assert-collection-children.js.map +1 -0
- package/dist/utils/closed-by.d.ts +9 -0
- package/dist/utils/closed-by.js +12 -0
- package/dist/utils/closed-by.js.map +1 -0
- package/dist/utils/cn.d.ts +31 -0
- package/dist/utils/cn.js +37 -0
- package/dist/utils/cn.js.map +1 -0
- package/dist/utils/composite-keys.js +32 -0
- package/dist/utils/composite-keys.js.map +1 -0
- package/dist/utils/focus-visible.js +14 -0
- package/dist/utils/focus-visible.js.map +1 -0
- package/dist/utils/focus.js +51 -0
- package/dist/utils/focus.js.map +1 -0
- package/dist/utils/focusable-disabled.js +12 -0
- package/dist/utils/focusable-disabled.js.map +1 -0
- package/dist/utils/keep-pressed-in-place.d.ts +60 -0
- package/dist/utils/keep-pressed-in-place.js +127 -0
- package/dist/utils/keep-pressed-in-place.js.map +1 -0
- package/dist/utils/load-on-demand.js +111 -0
- package/dist/utils/load-on-demand.js.map +1 -0
- package/dist/utils/merge-data-tokens.d.ts +9 -0
- package/dist/utils/merge-data-tokens.js +15 -0
- package/dist/utils/merge-data-tokens.js.map +1 -0
- package/dist/utils/natural-size.js +53 -0
- package/dist/utils/natural-size.js.map +1 -0
- package/dist/utils/nearest-reveal.js +28 -0
- package/dist/utils/nearest-reveal.js.map +1 -0
- package/dist/utils/placement.js +14 -0
- package/dist/utils/placement.js.map +1 -0
- package/dist/utils/radio-group-keys.js +74 -0
- package/dist/utils/radio-group-keys.js.map +1 -0
- package/dist/utils/rendered-description.js +17 -0
- package/dist/utils/rendered-description.js.map +1 -0
- package/dist/utils/root-props.d.ts +103 -0
- package/dist/utils/root-props.js +51 -0
- package/dist/utils/root-props.js.map +1 -0
- package/dist/utils/search.d.ts +11 -0
- package/dist/utils/search.js +18 -0
- package/dist/utils/search.js.map +1 -0
- package/dist/utils/shortcut.js +20 -0
- package/dist/utils/shortcut.js.map +1 -0
- package/dist/utils/split-data-attributes.d.ts +12 -0
- package/dist/utils/split-data-attributes.js +20 -0
- package/dist/utils/split-data-attributes.js.map +1 -0
- package/dist/utils/toolbar-keys.js +28 -0
- package/dist/utils/toolbar-keys.js.map +1 -0
- package/dist/utils/tv.d.ts +7 -0
- package/dist/utils/tv.js +9 -0
- package/dist/utils/tv.js.map +1 -0
- package/dist/utils/typeahead.js +64 -0
- package/dist/utils/typeahead.js.map +1 -0
- package/dist/utils/warn-once.js +30 -0
- package/dist/utils/warn-once.js.map +1 -0
- package/dist/vendor/material-color-utilities/blend/blend.js +88 -0
- package/dist/vendor/material-color-utilities/blend/blend.js.map +1 -0
- package/dist/vendor/material-color-utilities/contrast/contrast.js +131 -0
- package/dist/vendor/material-color-utilities/contrast/contrast.js.map +1 -0
- package/dist/vendor/material-color-utilities/dislike/dislike_analyzer.js +58 -0
- package/dist/vendor/material-color-utilities/dislike/dislike_analyzer.js.map +1 -0
- package/dist/vendor/material-color-utilities/dynamiccolor/color_spec_2021.js +620 -0
- package/dist/vendor/material-color-utilities/dynamiccolor/color_spec_2021.js.map +1 -0
- package/dist/vendor/material-color-utilities/dynamiccolor/color_spec_2025.js +786 -0
- package/dist/vendor/material-color-utilities/dynamiccolor/color_spec_2025.js.map +1 -0
- package/dist/vendor/material-color-utilities/dynamiccolor/contrast_curve.js +59 -0
- package/dist/vendor/material-color-utilities/dynamiccolor/contrast_curve.js.map +1 -0
- package/dist/vendor/material-color-utilities/dynamiccolor/dynamic_color.js +420 -0
- package/dist/vendor/material-color-utilities/dynamiccolor/dynamic_color.js.map +1 -0
- package/dist/vendor/material-color-utilities/dynamiccolor/dynamic_scheme.js +701 -0
- package/dist/vendor/material-color-utilities/dynamiccolor/dynamic_scheme.js.map +1 -0
- package/dist/vendor/material-color-utilities/dynamiccolor/material_dynamic_colors.js +374 -0
- package/dist/vendor/material-color-utilities/dynamiccolor/material_dynamic_colors.js.map +1 -0
- package/dist/vendor/material-color-utilities/dynamiccolor/tone_delta_pair.js +65 -0
- package/dist/vendor/material-color-utilities/dynamiccolor/tone_delta_pair.js.map +1 -0
- package/dist/vendor/material-color-utilities/dynamiccolor/variant.js +38 -0
- package/dist/vendor/material-color-utilities/dynamiccolor/variant.js.map +1 -0
- package/dist/vendor/material-color-utilities/hct/cam16.js +309 -0
- package/dist/vendor/material-color-utilities/hct/cam16.js.map +1 -0
- package/dist/vendor/material-color-utilities/hct/hct.js +148 -0
- package/dist/vendor/material-color-utilities/hct/hct.js.map +1 -0
- package/dist/vendor/material-color-utilities/hct/hct_solver.js +660 -0
- package/dist/vendor/material-color-utilities/hct/hct_solver.js.map +1 -0
- package/dist/vendor/material-color-utilities/hct/viewing_conditions.js +117 -0
- package/dist/vendor/material-color-utilities/hct/viewing_conditions.js.map +1 -0
- package/dist/vendor/material-color-utilities/index.js +51 -0
- package/dist/vendor/material-color-utilities/index.js.map +1 -0
- package/dist/vendor/material-color-utilities/palettes/core_palette.js +22 -0
- package/dist/vendor/material-color-utilities/palettes/core_palette.js.map +1 -0
- package/dist/vendor/material-color-utilities/palettes/tonal_palette.js +134 -0
- package/dist/vendor/material-color-utilities/palettes/tonal_palette.js.map +1 -0
- package/dist/vendor/material-color-utilities/scheme/scheme.js +21 -0
- package/dist/vendor/material-color-utilities/scheme/scheme.js.map +1 -0
- package/dist/vendor/material-color-utilities/scheme/scheme_android.js +21 -0
- package/dist/vendor/material-color-utilities/scheme/scheme_android.js.map +1 -0
- package/dist/vendor/material-color-utilities/scheme/scheme_content.js +22 -0
- package/dist/vendor/material-color-utilities/scheme/scheme_content.js.map +1 -0
- package/dist/vendor/material-color-utilities/scheme/scheme_expressive.js +38 -0
- package/dist/vendor/material-color-utilities/scheme/scheme_expressive.js.map +1 -0
- package/dist/vendor/material-color-utilities/scheme/scheme_fidelity.js +22 -0
- package/dist/vendor/material-color-utilities/scheme/scheme_fidelity.js.map +1 -0
- package/dist/vendor/material-color-utilities/scheme/scheme_fruit_salad.js +22 -0
- package/dist/vendor/material-color-utilities/scheme/scheme_fruit_salad.js.map +1 -0
- package/dist/vendor/material-color-utilities/scheme/scheme_monochrome.js +22 -0
- package/dist/vendor/material-color-utilities/scheme/scheme_monochrome.js.map +1 -0
- package/dist/vendor/material-color-utilities/scheme/scheme_neutral.js +36 -0
- package/dist/vendor/material-color-utilities/scheme/scheme_neutral.js.map +1 -0
- package/dist/vendor/material-color-utilities/scheme/scheme_rainbow.js +22 -0
- package/dist/vendor/material-color-utilities/scheme/scheme_rainbow.js.map +1 -0
- package/dist/vendor/material-color-utilities/scheme/scheme_tonal_spot.js +41 -0
- package/dist/vendor/material-color-utilities/scheme/scheme_tonal_spot.js.map +1 -0
- package/dist/vendor/material-color-utilities/scheme/scheme_vibrant.js +39 -0
- package/dist/vendor/material-color-utilities/scheme/scheme_vibrant.js.map +1 -0
- package/dist/vendor/material-color-utilities/score/score.js +115 -0
- package/dist/vendor/material-color-utilities/score/score.js.map +1 -0
- package/dist/vendor/material-color-utilities/temperature/temperature_cache.js +227 -0
- package/dist/vendor/material-color-utilities/temperature/temperature_cache.js.map +1 -0
- package/dist/vendor/material-color-utilities/utils/color_utils.js +246 -0
- package/dist/vendor/material-color-utilities/utils/color_utils.js.map +1 -0
- package/dist/vendor/material-color-utilities/utils/image_utils.js +21 -0
- package/dist/vendor/material-color-utilities/utils/image_utils.js.map +1 -0
- package/dist/vendor/material-color-utilities/utils/math_utils.js +119 -0
- package/dist/vendor/material-color-utilities/utils/math_utils.js.map +1 -0
- package/dist/vendor/material-color-utilities/utils/string_utils.js +74 -0
- package/dist/vendor/material-color-utilities/utils/string_utils.js.map +1 -0
- package/dist/vendor/material-color-utilities/utils/theme_utils.js +24 -0
- package/dist/vendor/material-color-utilities/utils/theme_utils.js.map +1 -0
- package/package.json +114 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TimePicker.js","names":[],"sources":["../../../src/components/time-picker/TimePicker.tsx"],"sourcesContent":["'use client';\n\nimport { Time } from '@internationalized/date';\nimport { animate, useReducedMotion, type AnimationPlaybackControls } from 'motion/react';\nimport {\n useCallback,\n useEffect,\n useId,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n type KeyboardEvent,\n type PointerEvent,\n type ReactElement,\n type Ref,\n type RefCallback,\n type RefObject,\n} from 'react';\nimport {\n mergeProps,\n mergeRefs,\n useFocusRing,\n useFocusVisible,\n useHover,\n useLocale,\n useNumberFormatter,\n} from 'react-aria';\nimport { useControlledState } from 'react-stately/useControlledState';\nimport { useM3Spring } from '../../motion/use-m3-spring';\nimport { useM3Interaction } from '../../primitives/use-m3-interaction';\nimport { densityAttribute, type Density } from '../../tokens/density';\nimport { cn } from '../../utils/cn';\nimport { mergeDataTokens } from '../../utils/merge-data-tokens';\nimport {\n splitRootProps,\n type DescriptionAria,\n type RootDOMProps,\n type WrapperRootDOMProps,\n} from '../../utils/root-props';\nimport { KeyboardIcon, ScheduleIcon } from '../date-picker/picker-icons';\nimport { useMediaQuery } from '../date-picker/use-media-query';\nimport { IconButton } from '../icon-button/IconButton';\nimport { timePickerStyles } from './time-picker-styles';\n\n/** Compose's clock geometry (TimePicker.kt), in px on the 256px dial. */\nconst DIAL = 256;\nconst CENTER = DIAL / 2;\nconst OUTER_RADIUS = 101;\nconst INNER_RADIUS = 69;\nconst HANDLE = 48;\n/** A press nearer the centre than this picks the inner 24-hour ring (Compose's `MaxDistance`). */\nconst INNER_RING_MAX_DISTANCE = 74;\n/** Each number on the dial is a 48px target (M3: \"Targets for dial selectors should be 48x48dp\"). */\nconst TARGET = 48;\n\nexport interface TimePickerLabels {\n /** Name of the hour selector and field. @default \"Hour\" */\n hour: string;\n /** Name of the minute selector and field. @default \"Minute\" */\n minute: string;\n /** The AM option. @default \"AM\" */\n am: string;\n /** The PM option. @default \"PM\" */\n pm: string;\n /** Name of the AM / PM selector. @default \"AM or PM\" */\n period: string;\n /** Name of the dial. @default \"Clock\" */\n dial: string;\n /** {@link TimePickerModeToggle}'s name in dial mode. @default \"Toggle input picker\" */\n inputMode: string;\n /** {@link TimePickerModeToggle}'s name in input mode. @default \"Toggle dial picker\" */\n dialMode: string;\n /**\n * Name of a number on the dial (M3: \"{Value} Hours or minutes of {Total}\"), e.g.\n * \"7 hours of 12\" or \"35 minutes of 60\".\n * @default `${value} ${unit} of ${total}`\n */\n dialValue: (value: string, total: number, unit: 'hours' | 'minutes') => string;\n}\n\nexport interface TimePickerClassNames {\n /** The picker's root; `className` is merged here too. */\n root?: string;\n /** The hour and minute: selectors in dial mode, text fields in input mode. */\n field?: string;\n /** The labels under the input mode's fields (\"Hour\", \"Minute\"). */\n fieldLabel?: string;\n /** The colon between the hour and the minute. */\n separator?: string;\n /** The AM / PM selector. */\n period?: string;\n /** Each of the AM / PM selector's options. */\n periodOption?: string;\n /** The clock dial (dial mode): its face, numbers and hand are drawn inside it. */\n dial?: string;\n}\n\nexport type TimePickerMode = 'dial' | 'input';\n\n// No `aria-description` and the like: the picker's root is a plain container, and no single\n// element in it stands for the whole picker.\nexport interface TimePickerProps extends Omit<WrapperRootDOMProps, DescriptionAria> {\n /** Controlled time (`@internationalized/date` `Time`). */\n value?: Time;\n /** Initial time when uncontrolled. @default 12:00 */\n defaultValue?: Time;\n /** Called with the new time when the user changes it. */\n onChange?: (value: Time) => void;\n /** 12- or 24-hour clock. Left out, the locale's hour cycle (12 in en-US, 24 in en-GB). */\n hourCycle?: 12 | 24;\n /** The clock dial, or typed hour and minute fields (controlled). */\n mode?: TimePickerMode;\n /** Initial mode when uncontrolled. @default \"dial\" */\n defaultMode?: TimePickerMode;\n /** Called when the user switches between the dial and the typed input. */\n onModeChange?: (mode: TimePickerMode) => void;\n /**\n * `vertical` stacks the time over the dial; `horizontal` (landscape) puts them side by\n * side. `auto` picks vertical when the window is tall enough, horizontal when it is only\n * wide enough, and the typed input when neither fits, so the picker never scrolls (M3\n * time picker placement and adaptive design). @default \"auto\"\n */\n layout?: 'vertical' | 'horizontal' | 'auto';\n /** Words the picker shows and announces, with English defaults. */\n labels?: Partial<TimePickerLabels>;\n /**\n * Web density of the input mode, `0` to `-3`: each step takes 4px off the typed hour and\n * minute fields (72px at 0, 60px at -3). The dial keeps its size: M3 doesn't make time\n * pickers denser, since its 48px number targets are part of their accessibility. Left out,\n * the picker takes the density of the nearest `ThemeProvider` or `ThemeScope`.\n * @default 0\n */\n density?: Density;\n /** The root `<div>`'s id. */\n id?: string;\n /** Ref to the root `<div>` element. */\n ref?: Ref<HTMLDivElement>;\n /** Classes for the root element, merged with `classNames.root`; consumer classes win. */\n className?: string;\n /** Inline styles for the root element. */\n style?: CSSProperties;\n /** Classes for each part, by slot. */\n classNames?: TimePickerClassNames;\n /** `data-*` attributes go to the root. */\n [data: `data-${string}`]: string | number | boolean | undefined;\n}\n\n/*\n * Window sizes for `layout=\"auto\"`, from the picker in a `PickerDialog` (24px around the\n * panel, 24px padding, the title and the actions): the vertical dial needs 568px of\n * height; the horizontal one 452px of height and 640px of width.\n */\nconst SHORT_WINDOW = '(max-height: 567.98px)';\nconst NO_ROOM_FOR_DIAL = '(max-height: 451.98px), (max-height: 567.98px) and (max-width: 639.98px)';\n\n/** Where an `auto` time picker's dial fits: `vertical`, `horizontal` or `none`. */\nexport function useTimePickerRoom(): 'vertical' | 'horizontal' | 'none' {\n const short = useMediaQuery(SHORT_WINDOW);\n const noRoom = useMediaQuery(NO_ROOM_FOR_DIAL);\n return noRoom ? 'none' : short ? 'horizontal' : 'vertical';\n}\n\nfunction localeHourCycle(locale: string): 12 | 24 {\n const cycle = new Intl.DateTimeFormat(locale, { hour: 'numeric' }).resolvedOptions().hourCycle;\n return cycle === 'h11' || cycle === 'h12' ? 12 : 24;\n}\n\nconst defaultDialValue = (value: string, total: number, unit: 'hours' | 'minutes') =>\n `${value} ${unit} of ${total}`;\n\n/**\n * M3 time picker (Compose's `TimePicker` and `TimeInput`): hour and minute selectors you\n * can type in, with an AM / PM selector, and a clock dial whose numbers are buttons (press,\n * drag, or Tab to one and press Enter; the hour moves on to the minutes); or typed fields\n * in input mode. It turns to a horizontal layout, or the input mode, when the window has\n * no room for the dial. Put it in a {@link PickerDialog} for the modal form, with a\n * {@link TimePickerModeToggle}.\n *\n * @example\n * <TimePicker value={time} onChange={setTime} />\n */\nexport function TimePicker({\n value,\n defaultValue,\n onChange,\n hourCycle: hourCycleProp,\n mode: modeProp,\n defaultMode = 'dial',\n onModeChange,\n layout = 'auto',\n labels = {},\n density,\n id,\n ref,\n className,\n style,\n classNames,\n ...rest\n}: TimePickerProps) {\n const { root: data } = splitRootProps(rest, { wrapper: true });\n const { locale } = useLocale();\n const hourCycle = hourCycleProp ?? localeHourCycle(locale);\n const [time, setTime] = useControlledState(value, defaultValue ?? new Time(12, 0), onChange);\n const [chosenMode] = useControlledState(modeProp, defaultMode, onModeChange);\n const room = useTimePickerRoom();\n const fits = layout === 'auto' ? room : layout;\n const mode = fits === 'none' ? 'input' : chosenMode;\n const resolvedLayout = mode === 'input' || fits === 'none' ? 'vertical' : fits;\n const [selection, setSelection] = useState<'hour' | 'minute'>('hour');\n const styles = timePickerStyles({ hourCycle, mode, layout: resolvedLayout });\n const pad = useNumberFormatter({ minimumIntegerDigits: 2, useGrouping: false });\n const plain = useNumberFormatter({ useGrouping: false });\n const isPm = time.hour >= 12;\n const displayHour = hourCycle === 24 ? time.hour : time.hour % 12 || 12;\n // Two digits on both clocks, as Compose's selector and input show a 12-hour \"02\"\n // (`hourForDisplay.toLocalString(minDigits = 2)`); the dial's numbers stay unpadded.\n const formatHour = (n: number) => pad.format(n);\n const setPeriod = (pm: boolean) => {\n if (pm !== isPm) setTime(time.set({ hour: (time.hour + 12) % 24 }));\n };\n const commitHour = (hour: number) =>\n setTime(time.set({ hour: hourCycle === 24 ? hour : (hour % 12) + (isPm ? 12 : 0) }));\n const hourLabel = labels.hour ?? 'Hour';\n const minuteLabel = labels.minute ?? 'Minute';\n const minuteRef = useRef<HTMLInputElement>(null);\n // The page's direction where the picker sits (its `dir`, not only the locale's), which the\n // AM / PM options follow inside the time's left-to-right row (2026-10-17).\n const [domDirection, setDomDirection] = useState<'ltr' | 'rtl' | undefined>(undefined);\n const directionRef = useCallback<RefCallback<HTMLDivElement>>((element) => {\n if (element) setDomDirection(getComputedStyle(element).direction === 'rtl' ? 'rtl' : 'ltr');\n }, []);\n const rootRef = useMemo(() => mergeRefs<HTMLDivElement>(ref, directionRef), [ref, directionRef]);\n\n return (\n <div\n {...data}\n id={id}\n ref={rootRef}\n style={style}\n // The time picker's component tokens (time-picker-tokens.ts).\n data-tokens={mergeDataTokens('md-comp-time-picker', data)}\n data-mode={mode}\n data-layout={resolvedLayout}\n {...densityAttribute(density)}\n className={styles.root({ class: cn(classNames?.root, className) })}\n >\n {/* Time reads hour : minute, then AM / PM, in every direction (Compose forces LTR). */}\n <div dir=\"ltr\" className={styles.display()}>\n <div className={styles.time()}>\n <NumberField\n label={hourLabel}\n value={displayHour}\n min={hourCycle === 24 ? 0 : 1}\n max={hourCycle === 24 ? 23 : 12}\n format={formatHour}\n onCommit={commitHour}\n // Input mode moves on to the minute once the hour is complete (Compose's TimeInput).\n onComplete={mode === 'input' ? () => minuteRef.current?.focus() : undefined}\n selector={mode === 'dial'}\n selected={selection === 'hour'}\n onFocus={() => setSelection('hour')}\n styles={styles}\n classNames={classNames}\n />\n <span aria-hidden=\"true\" className={styles.separator({ class: classNames?.separator })}>\n :\n </span>\n <NumberField\n label={minuteLabel}\n value={time.minute}\n min={0}\n max={59}\n format={(n) => pad.format(n)}\n onCommit={(minute) => setTime(time.set({ minute }))}\n inputRef={minuteRef}\n selector={mode === 'dial'}\n selected={selection === 'minute'}\n onFocus={() => setSelection('minute')}\n styles={styles}\n classNames={classNames}\n />\n </div>\n {hourCycle === 12 && (\n <PeriodGroup\n label={labels.period ?? 'AM or PM'}\n am={labels.am ?? 'AM'}\n pm={labels.pm ?? 'PM'}\n isPm={isPm}\n onChange={setPeriod}\n direction={domDirection}\n styles={styles}\n classNames={classNames}\n />\n )}\n </div>\n {mode === 'dial' && (\n <Dial\n time={time}\n setTime={setTime}\n selection={selection}\n onHourPicked={() => setSelection('minute')}\n hourCycle={hourCycle}\n label={labels.dial ?? 'Clock'}\n valueLabel={labels.dialValue ?? defaultDialValue}\n format={(n, minutes) => (minutes || hourCycle === 24 ? pad.format(n) : plain.format(n))}\n plain={(n) => plain.format(n)}\n styles={styles}\n className={classNames?.dial}\n />\n )}\n </div>\n );\n}\n\nexport interface TimePickerModeToggleProps extends RootDOMProps<HTMLButtonElement> {\n /** The time picker's mode; the toggle switches to the other one. */\n mode: TimePickerMode;\n /** Called with the other mode when the toggle is pressed. */\n onModeChange: (mode: TimePickerMode) => void;\n /**\n * Words the toggle announces (`inputMode`, `dialMode`), with English defaults. Takes the\n * same object as the time picker's `labels`, so one set of words covers both.\n */\n labels?: Partial<TimePickerLabels>;\n /** Shown in dial mode. Defaults to Material Symbols' keyboard. */\n keyboardIcon?: ReactElement;\n /** Shown in input mode. Defaults to Material Symbols' schedule (a clock). */\n clockIcon?: ReactElement;\n /** Classes for the icon button; consumer classes win. */\n className?: string;\n /** Inline styles for the icon button. */\n style?: CSSProperties;\n /** The icon button's id. */\n id?: string;\n /** Ref to the icon button. */\n ref?: Ref<HTMLButtonElement>;\n}\n\n/**\n * The time picker's keyboard / clock icon button (M3: \"The input selector should be\n * accessible from the dial selector via the keyboard icon\"), for `PickerDialog`'s\n * `modeToggleButton`. Hidden when the window has no room for the dial, where an `auto`\n * time picker shows only the input.\n *\n * @example\n * <PickerDialog variant=\"time\" modeToggleButton={<TimePickerModeToggle mode={mode} onModeChange={setMode} />} …>\n * <TimePicker mode={mode} onModeChange={setMode} />\n * </PickerDialog>\n */\nexport function TimePickerModeToggle({\n mode,\n onModeChange,\n labels = {},\n keyboardIcon,\n clockIcon,\n className,\n style,\n id,\n ref,\n ...dom\n}: TimePickerModeToggleProps) {\n const room = useTimePickerRoom();\n if (room === 'none') return null;\n // The icon button is the toggle's root: it takes the DOM attributes too.\n const own = { ...dom, className, style, id, ref };\n return mode === 'dial' ? (\n <IconButton\n variant=\"standard\"\n // The dialog isn't dense, only the input mode's fields.\n density={0}\n icon={keyboardIcon ?? <KeyboardIcon />}\n aria-label={labels.inputMode ?? 'Toggle input picker'}\n onPress={() => onModeChange('input')}\n {...own}\n />\n ) : (\n <IconButton\n variant=\"standard\"\n density={0}\n icon={clockIcon ?? <ScheduleIcon />}\n aria-label={labels.dialMode ?? 'Toggle dial picker'}\n onPress={() => onModeChange('dial')}\n {...own}\n />\n );\n}\n\n/**\n * The AM / PM selector: a radio group (M3: \"Radio button (in list)\"), so it is one Tab stop\n * on the checked option and the arrow keys move the choice, as WAI-ARIA's radio group.\n */\nfunction PeriodGroup({\n label,\n am,\n pm,\n isPm,\n onChange,\n direction: domDirection,\n styles,\n classNames,\n}: {\n label: string;\n am: string;\n pm: string;\n isPm: boolean;\n onChange: (pm: boolean) => void;\n /** The picker's laid-out direction, once known; the locale's until then (server render). */\n direction: 'ltr' | 'rtl' | undefined;\n styles: ReturnType<typeof timePickerStyles>;\n classNames: TimePickerClassNames | undefined;\n}) {\n const { direction: localeDirection } = useLocale();\n const direction = domDirection ?? localeDirection;\n const refs = useRef<(HTMLButtonElement | null)[]>([]);\n const onKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n const forward = direction === 'rtl' ? 'ArrowLeft' : 'ArrowRight';\n const backward = direction === 'rtl' ? 'ArrowRight' : 'ArrowLeft';\n const step =\n event.key === 'ArrowDown' || event.key === forward\n ? 1\n : event.key === 'ArrowUp' || event.key === backward\n ? -1\n : 0;\n if (step === 0) return;\n event.preventDefault();\n // Two options: either step moves to the other one, wrapping.\n const next = !isPm;\n onChange(next);\n refs.current[next ? 1 : 0]?.focus();\n };\n return (\n // The options keep the page's direction for their order in the horizontal layout.\n <div\n role=\"radiogroup\"\n aria-label={label}\n dir={direction}\n onKeyDown={onKeyDown}\n data-slot=\"period-selector\"\n className={styles.period({ class: classNames?.period })}\n >\n {[false, true].map((option) => (\n <PeriodOption\n key={String(option)}\n ref={(element) => {\n refs.current[option ? 1 : 0] = element;\n }}\n label={option ? pm : am}\n selected={isPm === option}\n onSelect={() => onChange(option)}\n className={styles.periodOption({ class: classNames?.periodOption })}\n />\n ))}\n </div>\n );\n}\n\nfunction PeriodOption({\n label,\n selected,\n onSelect,\n className,\n ref: refProp,\n}: {\n label: string;\n selected: boolean;\n onSelect: () => void;\n className: string;\n ref: (element: HTMLButtonElement | null) => void;\n}) {\n const ref = useRef<HTMLButtonElement>(null);\n const { interactionProps, dataAttributes } = useM3Interaction({}, ref);\n return (\n <button\n {...mergeProps(interactionProps, { onClick: onSelect })}\n {...dataAttributes}\n ref={(element) => {\n ref.current = element;\n refProp(element);\n }}\n type=\"button\"\n role=\"radio\"\n aria-checked={selected}\n tabIndex={selected ? 0 : -1}\n data-slot=\"period-selector-option\"\n data-selected={selected || undefined}\n className={className}\n >\n {label}\n </button>\n );\n}\n\n/**\n * A typed hour or minute: the input mode's 96 × 72px field with its label below, or in\n * dial mode the 96 × 80px selector, which picks the dial's face when focused and takes\n * digits too (M3: \"The dial time picker supports both manual and dial input\").\n */\nfunction NumberField({\n label,\n value,\n min,\n max,\n format,\n onCommit,\n onComplete,\n inputRef,\n selector,\n selected,\n onFocus,\n styles,\n classNames,\n}: {\n label: string;\n value: number;\n min: number;\n max: number;\n format: (n: number) => string;\n onCommit: (value: number) => void;\n /** Called once a typed value can't take another digit (two digits, or \"3\" for an hour). */\n onComplete?: (() => void) | undefined;\n inputRef?: RefObject<HTMLInputElement | null>;\n selector: boolean;\n selected: boolean;\n onFocus: () => void;\n styles: ReturnType<typeof timePickerStyles>;\n classNames: TimePickerClassNames | undefined;\n}) {\n const [draft, setDraft] = useState<string | null>(null);\n const { focusProps, isFocusVisible } = useFocusRing();\n // A selector shows hover and pressed state layers (M3 states: Enabled, Hover, Focus, Pressed).\n const { hoverProps, isHovered } = useHover({ isDisabled: !selector });\n const [pressed, setPressed] = useState(false);\n const release = () => setPressed(false);\n const parsed = draft === null ? value : Number(draft);\n const invalid =\n draft !== null && (draft === '' || Number.isNaN(parsed) || parsed < min || parsed > max);\n const input = (\n <input\n {...mergeProps(focusProps, hoverProps, {\n onFocus: (event: { currentTarget: HTMLInputElement }) => {\n event.currentTarget.select();\n onFocus();\n },\n })}\n ref={inputRef}\n onPointerDown={() => selector && setPressed(true)}\n onPointerUp={release}\n onPointerLeave={release}\n onPointerCancel={release}\n inputMode=\"numeric\"\n aria-label={label}\n aria-invalid={invalid || undefined}\n maxLength={2}\n value={draft ?? format(value)}\n data-slot={selector ? 'time-selector' : undefined}\n data-selected={(selector && selected) || undefined}\n data-focus-visible={(selector && isFocusVisible) || undefined}\n data-hovered={(selector && isHovered) || undefined}\n data-pressed={(selector && pressed) || undefined}\n onChange={(event) => {\n const text = event.target.value.replace(/\\D/g, '');\n setDraft(text);\n const next = Number(text);\n if (text === '' || next < min || next > max) return;\n onCommit(next);\n if (text.length === 2 || next * 10 > max) onComplete?.();\n }}\n onBlur={() => setDraft(null)}\n onKeyDown={(event) => {\n if (event.key !== 'ArrowUp' && event.key !== 'ArrowDown') return;\n event.preventDefault();\n const step = event.key === 'ArrowUp' ? 1 : -1;\n const next = value + step > max ? min : value + step < min ? max : value + step;\n setDraft(null);\n onCommit(next);\n }}\n className={\n selector\n ? styles.selector({ class: classNames?.field })\n : styles.field({ class: classNames?.field })\n }\n />\n );\n if (selector) return input;\n return (\n <label className={styles.fieldColumn()}>\n {input}\n <span aria-hidden=\"true\" className={styles.fieldLabel({ class: classNames?.fieldLabel })}>\n {label}\n </span>\n </label>\n );\n}\n\n/** Angle of a dial position (0 at 12 o'clock, clockwise), in turns. */\nconst turnOf = (x: number, y: number) =>\n (Math.atan2(x - CENTER, CENTER - y) / (2 * Math.PI) + 1) % 1;\nconst pointOf = (turn: number, radius: number) => ({\n x: CENTER + radius * Math.sin(turn * 2 * Math.PI),\n y: CENTER - radius * Math.cos(turn * 2 * Math.PI),\n});\n\ninterface DialNumber {\n value: number;\n turn: number;\n radius: number;\n}\n\n/** The numbers on the face: minutes in fives, hours 12 / 1–11, plus 12–23 inside for 24 hours. */\nfunction dialNumbers(minutes: boolean, hourCycle: 12 | 24): DialNumber[] {\n const ring = (radius: number, valueAt: (i: number) => number) =>\n Array.from({ length: 12 }, (_, i) => ({ value: valueAt(i), turn: i / 12, radius }));\n if (minutes) return ring(OUTER_RADIUS, (i) => i * 5);\n if (hourCycle === 12) return ring(OUTER_RADIUS, (i) => i || 12);\n // 24 hours: 00–11 on the outer ring, 12–23 on the inner one (as Compose and Android).\n return [...ring(OUTER_RADIUS, (i) => i), ...ring(INNER_RADIUS, (i) => i + 12)];\n}\n\n/** The shortest signed way round the dial from one turn to another, in turns (−½ to ½). */\nconst shortestTurn = (from: number, to: number) => ((((to - from) % 1) + 1.5) % 1) - 0.5;\n\n/**\n * How close the hand is to its value when it counts as there: Compose's turn ends at the\n * spring's visibility threshold of 0.01 rad (about 0.6°), and here within 1px of the radius\n * too, while the last fraction of the spring still plays out.\n */\nconst ARRIVED_TURN = 0.01 / (2 * Math.PI);\nconst ARRIVED_RADIUS = 1;\n\n/** Runs and clears the callbacks waiting in `queue`. */\nconst flush = (queue: RefObject<(() => void)[]>) => {\n const callbacks = queue.current;\n queue.current = [];\n for (const callback of callbacks) callback();\n};\n\n/**\n * The hand's track, handle and the clip of the `on-primary` numbers follow the drawn angle,\n * set as attributes from an animation (no React render per frame). It turns to a new value\n * on the default spatial spring along the shortest arc (M3: \"Spatial springs apply to …\n * rotation\"; Compose animates the selector on hour ↔ minute and taps), follows a drag\n * directly, and jumps under reduced motion. Returns `whenSettled`, which runs a callback\n * once the hand rests on its value.\n */\nfunction useDialHand(\n turn: number,\n radius: number,\n follow: RefObject<boolean>,\n parts: RefObject<{\n track: SVGLineElement | null;\n handle: SVGCircleElement | null;\n clip: SVGCircleElement | null;\n }>,\n) {\n const spring = useM3Spring('spatial', 'default');\n const reducedMotion = useReducedMotion() ?? false;\n const drawn = useRef({ turn, radius });\n const animation = useRef<AnimationPlaybackControls | null>(null);\n // Callbacks waiting for the hand to arrive (`whenSettled`), and whether it has.\n const settled = useRef<(() => void)[]>([]);\n const arrived = useRef(true);\n\n // Before paint, so the hand never flashes at its new value before turning there.\n useLayoutEffect(() => {\n const draw = (nextTurn: number, nextRadius: number) => {\n drawn.current = { turn: nextTurn, radius: nextRadius };\n const point = pointOf(nextTurn, nextRadius);\n const { track, handle, clip } = parts.current;\n track?.setAttribute('x2', String(point.x));\n track?.setAttribute('y2', String(point.y));\n for (const circle of [handle, clip]) {\n circle?.setAttribute('cx', String(point.x));\n circle?.setAttribute('cy', String(point.y));\n }\n };\n const from = drawn.current;\n const delta = shortestTurn(from.turn, turn);\n animation.current?.stop();\n animation.current = null;\n if (follow.current || reducedMotion || (delta === 0 && from.radius === radius)) {\n draw(turn, radius);\n arrived.current = true;\n flush(settled);\n return;\n }\n // React has written the new value's attributes; start from where the hand was.\n draw(from.turn, from.radius);\n arrived.current = false;\n // Two frames in a row within the threshold: the hand swinging past its value at speed\n // (the expressive spring overshoots by about 1.5%) doesn't count as there.\n let near = false;\n animation.current = animate(0, 1, {\n ...spring,\n onUpdate: (progress) => {\n draw(from.turn + delta * progress, from.radius + (radius - from.radius) * progress);\n const close =\n Math.abs(delta * (1 - progress)) <= ARRIVED_TURN &&\n Math.abs((radius - from.radius) * (1 - progress)) <= ARRIVED_RADIUS;\n if (close && near && !arrived.current) {\n arrived.current = true;\n flush(settled);\n }\n near = close;\n },\n // A spring rests within a small distance of its target; end exactly on the value.\n onComplete: () => {\n draw(turn, radius);\n animation.current = null;\n arrived.current = true;\n flush(settled);\n },\n });\n }, [turn, radius, follow, parts, reducedMotion, spring]);\n\n useEffect(\n () => () => {\n animation.current?.stop();\n settled.current = [];\n },\n [],\n );\n\n /** Runs `callback` once the hand has arrived at its value (at once if it already has). */\n return (callback: () => void) => {\n if (animation.current && !arrived.current) settled.current.push(callback);\n else callback();\n };\n}\n\n/**\n * Which faces to draw: the current one, and the one it replaced while that fades out\n * (Compose crossfades the hour and minute faces).\n */\nfunction useFaces(minutes: boolean) {\n const [faces, setFaces] = useState<{ current: boolean; leaving: boolean | null }>({\n current: minutes,\n leaving: null,\n });\n if (faces.current !== minutes) setFaces({ current: minutes, leaving: faces.current });\n const clearLeaving = () => setFaces((previous) => ({ ...previous, leaving: null }));\n return { leaving: faces.leaving, clearLeaving };\n}\n\nfunction Dial({\n time,\n setTime,\n selection,\n onHourPicked,\n hourCycle,\n label,\n valueLabel,\n format,\n plain,\n styles,\n className,\n}: {\n time: Time;\n setTime: (time: Time) => void;\n selection: 'hour' | 'minute';\n onHourPicked: () => void;\n hourCycle: 12 | 24;\n label: string;\n valueLabel: (value: string, total: number, unit: 'hours' | 'minutes') => string;\n /** A number as shown on the hour face (`minutes` false) or the minute face. */\n format: (n: number, minutes: boolean) => string;\n plain: (n: number) => string;\n styles: ReturnType<typeof timePickerStyles>;\n className?: string | undefined;\n}) {\n const svgRef = useRef<SVGSVGElement>(null);\n const numberRefs = useRef<(SVGGElement | null)[]>([]);\n const hand = useRef<{\n track: SVGLineElement | null;\n handle: SVGCircleElement | null;\n clip: SVGCircleElement | null;\n }>({ track: null, handle: null, clip: null });\n const pressing = useRef(false);\n // True while a press moves across the dial: the hand follows it without a spring.\n const dragging = useRef(false);\n const pendingFocus = useRef<number | null>(null);\n const [focused, setFocused] = useState<number | null>(null);\n const { isFocusVisible } = useFocusVisible();\n const clipId = useId();\n const minutes = selection === 'minute';\n const { leaving, clearLeaving } = useFaces(minutes);\n const isPm = time.hour >= 12;\n const numbers = dialNumbers(minutes, hourCycle);\n\n const selectedTurn = minutes ? time.minute / 60 : (time.hour % 12) / 12;\n const selectedRadius =\n !minutes && hourCycle === 24 && time.hour >= 12 ? INNER_RADIUS : OUTER_RADIUS;\n const handle = pointOf(selectedTurn, selectedRadius);\n const whenSettled = useDialHand(selectedTurn, selectedRadius, dragging, hand);\n // A tapped hour's switch to the minutes, waiting for the hand (cancelled by a new press,\n // a face change or unmounting).\n const switchTimer = useRef<number | undefined>(undefined);\n const cancelSwitch = () => {\n window.clearTimeout(switchTimer.current);\n switchTimer.current = undefined;\n };\n useEffect(() => cancelSwitch, [minutes]);\n const selectedValue = minutes ? time.minute : hourCycle === 24 ? time.hour : time.hour % 12 || 12;\n // The number Tab lands on: the chosen one, or the nearest five for other minutes.\n const tabStop = numbers.findIndex(({ value }) =>\n minutes ? value === (Math.round(time.minute / 5) * 5) % 60 : value === selectedValue,\n );\n\n // After an hour is chosen with the keyboard, focus follows to the chosen minute.\n useEffect(() => {\n if (pendingFocus.current === null) return;\n numberRefs.current[pendingFocus.current]?.focus();\n pendingFocus.current = null;\n });\n\n // The replaced face is gone once it has faded out (or at once without transitions).\n useEffect(() => {\n if (leaving === null) return;\n const timeout = window.setTimeout(clearLeaving, 1000);\n return () => window.clearTimeout(timeout);\n }, [leaving, clearLeaving]);\n\n const toTime = (value: number) =>\n minutes\n ? time.set({ minute: value })\n : time.set({ hour: hourCycle === 24 ? value : (value % 12) + (isPm ? 12 : 0) });\n\n // The minute face replaces the hour face's numbers, so focus on one of them would drop to\n // the page: it moves on to the chosen minute's number, as for the keyboard.\n const switchToMinutes = () => {\n if (svgRef.current?.contains(document.activeElement)) {\n pendingFocus.current = Math.round(time.minute / 5) % 12;\n }\n onHourPicked();\n };\n\n const activate = (value: number) => {\n setTime(toTime(value));\n if (!minutes) {\n pendingFocus.current = Math.round(time.minute / 5) % 12;\n onHourPicked();\n }\n };\n\n const pick = (event: PointerEvent<SVGSVGElement>) => {\n const box = svgRef.current!.getBoundingClientRect();\n const x = ((event.clientX - box.left) / box.width) * DIAL;\n const y = ((event.clientY - box.top) / box.height) * DIAL;\n const step = Math.round(turnOf(x, y) * 12) % 12;\n // Taps and drags pick minutes in fives (Compose); the keyboard and typing reach any minute.\n if (minutes) {\n setTime(time.set({ minute: step * 5 }));\n return;\n }\n const innerRing =\n hourCycle === 24 && Math.hypot(x - CENTER, y - CENTER) < INNER_RING_MAX_DISTANCE;\n const hour = hourCycle === 24 ? step + (innerRing ? 12 : 0) : step + (isPm ? 12 : 0);\n setTime(time.set({ hour }));\n };\n\n const onNumberKeyDown = (event: KeyboardEvent<SVGGElement>, index: number) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n activate(numbers[index]!.value);\n return;\n }\n const step = { ArrowUp: 1, ArrowRight: 1, ArrowDown: -1, ArrowLeft: -1 }[event.key];\n if (step === undefined) return;\n event.preventDefault();\n // Clockwise through the values; a 24-hour face runs on from 11 to 12 on the inner ring.\n const next = (index + step + numbers.length) % numbers.length;\n setFocused(next);\n numberRefs.current[next]?.focus();\n };\n\n const total = minutes ? 60 : hourCycle;\n const unit = minutes ? 'minutes' : 'hours';\n const endPress = () => {\n pressing.current = false;\n dragging.current = false;\n };\n return (\n <svg\n ref={svgRef}\n viewBox={`0 0 ${DIAL} ${DIAL}`}\n role=\"group\"\n aria-label={label}\n onPointerDown={(event) => {\n cancelSwitch();\n pressing.current = true;\n event.currentTarget.setPointerCapture?.(event.pointerId);\n pick(event);\n }}\n onPointerMove={(event) => {\n if (!pressing.current) return;\n dragging.current = true;\n pick(event);\n }}\n onPointerUp={() => {\n if (pressing.current && !minutes) {\n if (dragging.current) {\n // A drag already shows the hour under the finger: switch on release.\n switchToMinutes();\n } else {\n // A tap turns the hand to the hour, shows it for 100ms, then switches\n // (Compose's `onTap`: `rotateTo(animate = true)`, `delay(100)`).\n whenSettled(() => {\n switchTimer.current = window.setTimeout(switchToMinutes, 100);\n });\n }\n }\n endPress();\n }}\n onPointerCancel={endPress}\n className={cn(styles.dial(), className)}\n >\n <defs>\n <clipPath id={clipId}>\n <circle\n ref={(element) => {\n hand.current.clip = element;\n }}\n cx={handle.x}\n cy={handle.y}\n r={HANDLE / 2}\n />\n </clipPath>\n </defs>\n <circle\n cx={CENTER}\n cy={CENTER}\n r={CENTER}\n data-slot=\"clock-dial\"\n className={styles.dialFace()}\n />\n <line\n ref={(element) => {\n hand.current.track = element;\n }}\n x1={CENTER}\n y1={CENTER}\n x2={handle.x}\n y2={handle.y}\n strokeWidth={2}\n className={styles.dialTrack()}\n />\n <circle cx={CENTER} cy={CENTER} r={4} className={styles.dialHandle()} />\n <circle\n ref={(element) => {\n hand.current.handle = element;\n }}\n cx={handle.x}\n cy={handle.y}\n r={HANDLE / 2}\n data-slot=\"clock-dial-selector-handle\"\n className={styles.dialHandle()}\n />\n {leaving !== null && (\n <g\n key={`leaving-${String(leaving)}`}\n aria-hidden=\"true\"\n onTransitionEnd={clearLeaving}\n className={styles.dialFaceLeaving()}\n >\n {dialNumbers(leaving, hourCycle).map(({ value, turn, radius }, index) => {\n const point = pointOf(turn, radius);\n return (\n <text\n key={index}\n x={point.x}\n y={point.y}\n textAnchor=\"middle\"\n dominantBaseline=\"central\"\n className={styles.dialNumberText()}\n >\n {format(value, leaving)}\n </text>\n );\n })}\n </g>\n )}\n <g\n key={`face-${String(minutes)}`}\n className={leaving === null ? undefined : styles.dialFaceEntering()}\n >\n {numbers.map(({ value, turn, radius }, index) => {\n const point = pointOf(turn, radius);\n const selected = value === selectedValue && (minutes ? time.minute % 5 === 0 : true);\n return (\n <g\n key={index}\n ref={(element) => {\n numberRefs.current[index] = element;\n }}\n role=\"button\"\n tabIndex={index === (focused ?? tabStop) ? 0 : -1}\n aria-label={valueLabel(plain(value), total, unit)}\n aria-pressed={selected}\n data-selected={selected || undefined}\n onFocus={() => setFocused(index)}\n onBlur={() => setFocused(null)}\n onKeyDown={(event) => onNumberKeyDown(event, index)}\n onClick={(event) => {\n // Assistive technology activates with a click that has no pointer behind it.\n if (event.detail === 0) activate(value);\n }}\n className={styles.dialNumber()}\n >\n <circle cx={point.x} cy={point.y} r={TARGET / 2} className={styles.dialNumberHit()} />\n {focused === index && isFocusVisible && (\n <circle\n cx={point.x}\n cy={point.y}\n r={TARGET / 2 - 1}\n strokeWidth={3}\n className={styles.dialFocus()}\n />\n )}\n <text\n x={point.x}\n y={point.y}\n textAnchor=\"middle\"\n dominantBaseline=\"central\"\n aria-hidden=\"true\"\n data-selected={selected || undefined}\n className={styles.dialNumberText()}\n >\n {format(value, minutes)}\n </text>\n </g>\n );\n })}\n {/*\n * The numbers again in `on-primary`, clipped to the handle, so whatever part of a\n * number the handle covers reads on it (M3: the selected label is `on-primary`;\n * Compose blends the two layers the same way).\n */}\n <g aria-hidden=\"true\" clipPath={`url(#${clipId})`} className=\"pointer-events-none\">\n {numbers.map(({ value, turn, radius }, index) => {\n const point = pointOf(turn, radius);\n return (\n <text\n key={index}\n x={point.x}\n y={point.y}\n textAnchor=\"middle\"\n dominantBaseline=\"central\"\n className={styles.dialNumberOnHandle()}\n >\n {format(value, minutes)}\n </text>\n );\n })}\n </g>\n </g>\n </svg>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import { VariantProps } from "../../utils/tv.js";
|
|
2
|
+
//#region src/components/time-picker/time-picker-styles.d.ts
|
|
3
|
+
export declare const timePickerStyles: import("tailwind-variants").TVReturnType<{
|
|
4
|
+
hourCycle: {
|
|
5
|
+
12: {
|
|
6
|
+
selector: string;
|
|
7
|
+
};
|
|
8
|
+
24: {
|
|
9
|
+
selector: string;
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
mode: {
|
|
13
|
+
dial: {
|
|
14
|
+
separator: string;
|
|
15
|
+
};
|
|
16
|
+
input: {
|
|
17
|
+
separator: string;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
20
|
+
layout: {
|
|
21
|
+
vertical: {
|
|
22
|
+
root: string;
|
|
23
|
+
display: string;
|
|
24
|
+
period: string;
|
|
25
|
+
periodOption: string[];
|
|
26
|
+
dial: string;
|
|
27
|
+
};
|
|
28
|
+
horizontal: {
|
|
29
|
+
root: string;
|
|
30
|
+
display: string;
|
|
31
|
+
period: string;
|
|
32
|
+
periodOption: string[];
|
|
33
|
+
dial: string;
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
}, {
|
|
37
|
+
root: string;
|
|
38
|
+
display: string;
|
|
39
|
+
time: string;
|
|
40
|
+
selector: string[];
|
|
41
|
+
separator: string;
|
|
42
|
+
period: string[];
|
|
43
|
+
periodOption: string[];
|
|
44
|
+
dial: string[];
|
|
45
|
+
dialFace: string[];
|
|
46
|
+
dialNumber: string;
|
|
47
|
+
dialNumberHit: string;
|
|
48
|
+
dialNumberText: string[];
|
|
49
|
+
dialNumberOnHandle: string;
|
|
50
|
+
dialFaceEntering: string[];
|
|
51
|
+
dialFaceLeaving: string[];
|
|
52
|
+
dialFocus: string;
|
|
53
|
+
dialHandle: string[];
|
|
54
|
+
dialTrack: string[];
|
|
55
|
+
field: string[];
|
|
56
|
+
fieldLabel: string;
|
|
57
|
+
fieldColumn: string;
|
|
58
|
+
}, undefined, {
|
|
59
|
+
hourCycle: {
|
|
60
|
+
12: {
|
|
61
|
+
selector: string;
|
|
62
|
+
};
|
|
63
|
+
24: {
|
|
64
|
+
selector: string;
|
|
65
|
+
};
|
|
66
|
+
};
|
|
67
|
+
mode: {
|
|
68
|
+
dial: {
|
|
69
|
+
separator: string;
|
|
70
|
+
};
|
|
71
|
+
input: {
|
|
72
|
+
separator: string;
|
|
73
|
+
};
|
|
74
|
+
};
|
|
75
|
+
layout: {
|
|
76
|
+
vertical: {
|
|
77
|
+
root: string;
|
|
78
|
+
display: string;
|
|
79
|
+
period: string;
|
|
80
|
+
periodOption: string[];
|
|
81
|
+
dial: string;
|
|
82
|
+
};
|
|
83
|
+
horizontal: {
|
|
84
|
+
root: string;
|
|
85
|
+
display: string;
|
|
86
|
+
period: string;
|
|
87
|
+
periodOption: string[];
|
|
88
|
+
dial: string;
|
|
89
|
+
};
|
|
90
|
+
};
|
|
91
|
+
}, {
|
|
92
|
+
root: string;
|
|
93
|
+
display: string;
|
|
94
|
+
time: string;
|
|
95
|
+
selector: string[];
|
|
96
|
+
separator: string;
|
|
97
|
+
period: string[];
|
|
98
|
+
periodOption: string[];
|
|
99
|
+
dial: string[];
|
|
100
|
+
dialFace: string[];
|
|
101
|
+
dialNumber: string;
|
|
102
|
+
dialNumberHit: string;
|
|
103
|
+
dialNumberText: string[];
|
|
104
|
+
dialNumberOnHandle: string;
|
|
105
|
+
dialFaceEntering: string[];
|
|
106
|
+
dialFaceLeaving: string[];
|
|
107
|
+
dialFocus: string;
|
|
108
|
+
dialHandle: string[];
|
|
109
|
+
dialTrack: string[];
|
|
110
|
+
field: string[];
|
|
111
|
+
fieldLabel: string;
|
|
112
|
+
fieldColumn: string;
|
|
113
|
+
}, import("tailwind-variants").TVReturnTypeLike<{
|
|
114
|
+
hourCycle: {
|
|
115
|
+
12: {
|
|
116
|
+
selector: string;
|
|
117
|
+
};
|
|
118
|
+
24: {
|
|
119
|
+
selector: string;
|
|
120
|
+
};
|
|
121
|
+
};
|
|
122
|
+
mode: {
|
|
123
|
+
dial: {
|
|
124
|
+
separator: string;
|
|
125
|
+
};
|
|
126
|
+
input: {
|
|
127
|
+
separator: string;
|
|
128
|
+
};
|
|
129
|
+
};
|
|
130
|
+
layout: {
|
|
131
|
+
vertical: {
|
|
132
|
+
root: string;
|
|
133
|
+
display: string;
|
|
134
|
+
period: string;
|
|
135
|
+
periodOption: string[];
|
|
136
|
+
dial: string;
|
|
137
|
+
};
|
|
138
|
+
horizontal: {
|
|
139
|
+
root: string;
|
|
140
|
+
display: string;
|
|
141
|
+
period: string;
|
|
142
|
+
periodOption: string[];
|
|
143
|
+
dial: string;
|
|
144
|
+
};
|
|
145
|
+
};
|
|
146
|
+
}, {
|
|
147
|
+
root: string;
|
|
148
|
+
display: string;
|
|
149
|
+
time: string;
|
|
150
|
+
selector: string[];
|
|
151
|
+
separator: string;
|
|
152
|
+
period: string[];
|
|
153
|
+
periodOption: string[];
|
|
154
|
+
dial: string[];
|
|
155
|
+
dialFace: string[];
|
|
156
|
+
dialNumber: string;
|
|
157
|
+
dialNumberHit: string;
|
|
158
|
+
dialNumberText: string[];
|
|
159
|
+
dialNumberOnHandle: string;
|
|
160
|
+
dialFaceEntering: string[];
|
|
161
|
+
dialFaceLeaving: string[];
|
|
162
|
+
dialFocus: string;
|
|
163
|
+
dialHandle: string[];
|
|
164
|
+
dialTrack: string[];
|
|
165
|
+
field: string[];
|
|
166
|
+
fieldLabel: string;
|
|
167
|
+
fieldColumn: string;
|
|
168
|
+
}>>;
|
|
169
|
+
/**
|
|
170
|
+
* The variants of {@link timePickerStyles}, for building on its styles. They are the recipe's keys, not
|
|
171
|
+
* component props: their names (`hasIcon`, `isOpen`…) follow the classes and may change.
|
|
172
|
+
*/
|
|
173
|
+
export type TimePickerStyleProps = VariantProps<typeof timePickerStyles>;
|
|
174
|
+
//#endregion
|
|
175
|
+
//# sourceMappingURL=time-picker-styles.d.ts.map
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { tv } from "../../utils/tv.js";
|
|
2
|
+
//#region src/components/time-picker/time-picker-styles.ts
|
|
3
|
+
/** Variant definitions for {@link TimePicker}. */
|
|
4
|
+
/**
|
|
5
|
+
* Forced colours paint containers as Canvas, so the time fields lost their boxes and the
|
|
6
|
+
* picked hour, minute or period looked like the others: the fields draw a CanvasText
|
|
7
|
+
* boundary, and the picked one keeps a Highlight fill with HighlightText, opting out of the
|
|
8
|
+
* forced palette (2026-10-15). `!important` beats the token colours, as specific.
|
|
9
|
+
*/
|
|
10
|
+
const forcedSelection = ["forced-colors:data-selected:bg-[Highlight]! forced-colors:data-selected:text-[HighlightText]!", "forced-colors:data-selected:forced-color-adjust-none"];
|
|
11
|
+
const timePickerStyles = tv({
|
|
12
|
+
slots: {
|
|
13
|
+
root: "inline-flex shrink-0 items-center text-on-surface",
|
|
14
|
+
display: "flex",
|
|
15
|
+
time: "flex items-start",
|
|
16
|
+
selector: [
|
|
17
|
+
"h-[80px] rounded-corner-small text-center text-display-large outline-none focus-ring",
|
|
18
|
+
"cursor-pointer caret-transparent tabular-nums",
|
|
19
|
+
"bg-[var(--_md-comp-time-picker-time-selector-unselected-container-color)] text-on-surface",
|
|
20
|
+
"data-selected:bg-[var(--_md-comp-time-picker-time-selector-selected-container-color)]",
|
|
21
|
+
"data-selected:text-on-primary-container",
|
|
22
|
+
"state-layer data-pressed:[--m3-state-opacity:var(--md-sys-state-pressed-state-layer-opacity)]!",
|
|
23
|
+
"aria-invalid:outline-2 aria-invalid:outline-error",
|
|
24
|
+
"forced-colors:border forced-colors:border-solid forced-colors:border-[CanvasText]",
|
|
25
|
+
...forcedSelection
|
|
26
|
+
],
|
|
27
|
+
separator: "flex w-[24px] items-center justify-center text-display-large text-on-surface",
|
|
28
|
+
period: ["flex rounded-corner-small border", "border-[color:var(--_md-comp-time-picker-period-selector-outline-color)]"],
|
|
29
|
+
periodOption: [
|
|
30
|
+
"relative flex flex-1 cursor-pointer items-center justify-center text-title-medium text-on-surface-variant outline-none",
|
|
31
|
+
"before:absolute before:inset-x-0 before:content-['']",
|
|
32
|
+
"state-layer focus-ring-inset",
|
|
33
|
+
"data-selected:bg-[var(--_md-comp-time-picker-period-selector-selected-container-color)]",
|
|
34
|
+
"data-selected:text-on-tertiary-container",
|
|
35
|
+
...forcedSelection
|
|
36
|
+
],
|
|
37
|
+
dial: ["size-[256px] shrink-0 touch-none rounded-full outline-none select-none", "forced-colors:forced-color-adjust-none"],
|
|
38
|
+
dialFace: ["fill-[var(--_md-comp-time-picker-clock-dial-color)]", "forced-colors:fill-[Canvas] forced-colors:stroke-[CanvasText] forced-colors:[stroke-width:1px]"],
|
|
39
|
+
dialNumber: "cursor-pointer outline-none",
|
|
40
|
+
dialNumberHit: "fill-transparent",
|
|
41
|
+
dialNumberText: ["fill-on-surface text-body-large data-selected:fill-on-primary", "forced-colors:fill-[CanvasText] forced-colors:data-selected:fill-[HighlightText]"],
|
|
42
|
+
dialNumberOnHandle: "fill-on-primary text-body-large forced-colors:fill-[HighlightText]",
|
|
43
|
+
dialFaceEntering: ["transition-opacity starting:opacity-0", "[transition-duration:var(--md-sys-motion-spring-effects-default-duration)] [transition-timing-function:var(--md-sys-motion-spring-effects-default-easing)]"],
|
|
44
|
+
dialFaceLeaving: ["pointer-events-none opacity-0 transition-opacity starting:opacity-100", "[transition-duration:var(--md-sys-motion-spring-effects-default-duration)] [transition-timing-function:var(--md-sys-motion-spring-effects-default-easing)]"],
|
|
45
|
+
dialFocus: "fill-none stroke-secondary forced-colors:stroke-[CanvasText]",
|
|
46
|
+
dialHandle: ["fill-[var(--_md-comp-time-picker-clock-dial-selector-handle-container-color)]", "forced-colors:fill-[Highlight]"],
|
|
47
|
+
dialTrack: ["stroke-[color:var(--_md-comp-time-picker-clock-dial-selector-handle-container-color)]", "forced-colors:stroke-[Highlight]"],
|
|
48
|
+
field: [
|
|
49
|
+
"h-[calc(72px+var(--md-sys-density,0)*4px)] w-[96px] rounded-corner-small border-2 border-transparent bg-surface-container-highest",
|
|
50
|
+
"text-center text-display-medium text-on-surface caret-primary outline-none tabular-nums",
|
|
51
|
+
"focus:border-primary focus:bg-primary-container focus:text-on-primary-container",
|
|
52
|
+
"aria-invalid:border-error",
|
|
53
|
+
"forced-colors:border-[CanvasText] forced-colors:focus:border-[Highlight]"
|
|
54
|
+
],
|
|
55
|
+
fieldLabel: "pt-[7px] text-body-small text-on-surface-variant",
|
|
56
|
+
fieldColumn: "flex flex-col"
|
|
57
|
+
},
|
|
58
|
+
variants: {
|
|
59
|
+
hourCycle: {
|
|
60
|
+
12: { selector: "w-[96px]" },
|
|
61
|
+
24: { selector: "w-[114px]" }
|
|
62
|
+
},
|
|
63
|
+
mode: {
|
|
64
|
+
dial: { separator: "h-[80px]" },
|
|
65
|
+
input: { separator: "h-[calc(72px+var(--md-sys-density,0)*4px)]" }
|
|
66
|
+
},
|
|
67
|
+
layout: {
|
|
68
|
+
vertical: {
|
|
69
|
+
root: "flex-col",
|
|
70
|
+
display: "flex-row items-start",
|
|
71
|
+
period: "ms-[12px] w-[52px] flex-col",
|
|
72
|
+
periodOption: [
|
|
73
|
+
"not-last:border-b",
|
|
74
|
+
"not-last:border-[color:var(--_md-comp-time-picker-period-selector-outline-color)]",
|
|
75
|
+
"first:rounded-t-[calc(var(--md-sys-shape-corner-small)-1px)] last:rounded-b-[calc(var(--md-sys-shape-corner-small)-1px)]",
|
|
76
|
+
"first:before:bottom-0 first:before:top-[min(0px,calc(100%_-_48px))]",
|
|
77
|
+
"last:before:top-0 last:before:bottom-[min(0px,calc(100%_-_48px))]"
|
|
78
|
+
],
|
|
79
|
+
dial: "mt-[36px]"
|
|
80
|
+
},
|
|
81
|
+
horizontal: {
|
|
82
|
+
root: "flex-row",
|
|
83
|
+
display: "flex-col items-center",
|
|
84
|
+
period: "mt-[16px] min-h-[38px] w-[216px] flex-row",
|
|
85
|
+
periodOption: [
|
|
86
|
+
"not-last:border-e",
|
|
87
|
+
"not-last:border-[color:var(--_md-comp-time-picker-period-selector-outline-color)]",
|
|
88
|
+
"first:rounded-s-[calc(var(--md-sys-shape-corner-small)-1px)] last:rounded-e-[calc(var(--md-sys-shape-corner-small)-1px)]",
|
|
89
|
+
"before:inset-y-[min(0px,calc((100%_-_48px)/2))]"
|
|
90
|
+
],
|
|
91
|
+
dial: "ms-[36px]"
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
compoundVariants: [{
|
|
96
|
+
mode: "dial",
|
|
97
|
+
layout: "vertical",
|
|
98
|
+
class: { period: "min-h-[80px]" }
|
|
99
|
+
}, {
|
|
100
|
+
mode: "input",
|
|
101
|
+
class: { period: "min-h-[calc(72px+var(--md-sys-density,0)*4px)]" }
|
|
102
|
+
}],
|
|
103
|
+
defaultVariants: {
|
|
104
|
+
hourCycle: 12,
|
|
105
|
+
mode: "dial",
|
|
106
|
+
layout: "vertical"
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
//#endregion
|
|
110
|
+
export { timePickerStyles };
|
|
111
|
+
|
|
112
|
+
//# sourceMappingURL=time-picker-styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"time-picker-styles.js","names":[],"sources":["../../../src/components/time-picker/time-picker-styles.ts"],"sourcesContent":["import { tv, type VariantProps } from '../../utils/tv';\n\n/*\n * Values follow the M3 time picker spec, with sizes from Compose Material 3 (TimePicker.kt,\n * TimePickerTokens, TimeInputTokens).\n *\n * Time selectors: 96 × 80px (114px wide for a 24-hour dial), 8px corners, `display-large`;\n * selected `primary-container` / `on-primary-container`, unselected\n * `surface-container-highest` / `on-surface`, a 24px `display-large` \":\" between them.\n * They take typed digits too. Period selector (12-hour): 52 × 80px beside the minutes\n * (12px away) in the vertical layout, 216 × 38px below the time (16px away) in the\n * horizontal one; a 1px `outline` border with 8px corners, `title-medium`; selected\n * `tertiary-container` / `on-tertiary-container` (the token colours; Compose's\n * `isUpdatedTimepickerToggleEnabled` flag switches to `primary-container`), unselected\n * `on-surface-variant`. The 256px `surface-container-highest` dial sits 36px below the time\n * (vertical) or 36px beside it (horizontal), with `body-large` `on-surface` numbers on a\n * 101px ring (69px for the inner 24-hour ring), each a 48px target; a 48px `primary`\n * handle with `on-primary` text, a 2px track and an 8px centre. The numbers are drawn again\n * in `on-primary`, clipped to the handle, so any part of a number under it stays legible.\n *\n * Input mode: 96 × 72px fields (24 hours too, `TimeInputTokens.TimeFieldContainerWidth`)\n * in `display-medium` with `body-small` labels 7px below; focused fields are\n * `primary-container` with a 2px `primary` border. Web density (`--md-sys-density`) takes 4px\n * per step off the input mode's fields, \":\" and period selector (72 → 68 → 64 → 60px); the\n * dial mode keeps its size, since M3 doesn't make time pickers denser.\n *\n * The dial, the selector handle, the time and period selectors' containers and the period\n * selector's outline come from the time picker's component tokens (`time-picker-tokens.ts`,\n * `--md-comp-time-picker-*`): the root carries `data-tokens=\"md-comp-time-picker\"`, and the\n * classes read one private variable per part. A consumer class still wins in `cn()`.\n *\n * Every class is written out in full so Tailwind can find it.\n */\n\n/** Variant definitions for {@link TimePicker}. */\n/**\n * Forced colours paint containers as Canvas, so the time fields lost their boxes and the\n * picked hour, minute or period looked like the others: the fields draw a CanvasText\n * boundary, and the picked one keeps a Highlight fill with HighlightText, opting out of the\n * forced palette (2026-10-15). `!important` beats the token colours, as specific.\n */\nconst forcedSelection = [\n 'forced-colors:data-selected:bg-[Highlight]! forced-colors:data-selected:text-[HighlightText]!',\n 'forced-colors:data-selected:forced-color-adjust-none',\n];\n\nexport const timePickerStyles = tv({\n slots: {\n root: 'inline-flex shrink-0 items-center text-on-surface',\n display: 'flex',\n time: 'flex items-start',\n selector: [\n 'h-[80px] rounded-corner-small text-center text-display-large outline-none focus-ring',\n 'cursor-pointer caret-transparent tabular-nums',\n 'bg-[var(--_md-comp-time-picker-time-selector-unselected-container-color)] text-on-surface',\n 'data-selected:bg-[var(--_md-comp-time-picker-time-selector-selected-container-color)]',\n 'data-selected:text-on-primary-container',\n // Hover, focus and pressed layers in the text colour (M3 states; Compose's clickable\n // Surface). An input has no ripple, so pressing shows the pressed layer instead.\n 'state-layer data-pressed:[--m3-state-opacity:var(--md-sys-state-pressed-state-layer-opacity)]!',\n 'aria-invalid:outline-2 aria-invalid:outline-error',\n 'forced-colors:border forced-colors:border-solid forced-colors:border-[CanvasText]',\n ...forcedSelection,\n ],\n separator: 'flex w-[24px] items-center justify-center text-display-large text-on-surface',\n // The options round their own outer corners to the outline's inner edge (rather than the\n // container clipping them), so their hit areas can reach past it: each option's is at\n // least 48px tall (M3's touch target), extended outward, away from the other option.\n period: [\n 'flex rounded-corner-small border',\n 'border-[color:var(--_md-comp-time-picker-period-selector-outline-color)]',\n ],\n periodOption: [\n 'relative flex flex-1 cursor-pointer items-center justify-center text-title-medium text-on-surface-variant outline-none',\n \"before:absolute before:inset-x-0 before:content-['']\",\n 'state-layer focus-ring-inset',\n 'data-selected:bg-[var(--_md-comp-time-picker-period-selector-selected-container-color)]',\n 'data-selected:text-on-tertiary-container',\n ...forcedSelection,\n ],\n // Forced colours don't reach an SVG's fills, so the dial kept the theme's light disc and\n // purple handle on the forced canvas: it paints itself in system colours there, a Canvas\n // disc with a CanvasText edge and numbers, and a Highlight handle and track with\n // HighlightText numbers (2026-10-17).\n dial: [\n 'size-[256px] shrink-0 touch-none rounded-full outline-none select-none',\n 'forced-colors:forced-color-adjust-none',\n ],\n dialFace: [\n 'fill-[var(--_md-comp-time-picker-clock-dial-color)]',\n 'forced-colors:fill-[Canvas] forced-colors:stroke-[CanvasText] forced-colors:[stroke-width:1px]',\n ],\n dialNumber: 'cursor-pointer outline-none',\n dialNumberHit: 'fill-transparent',\n dialNumberText: [\n 'fill-on-surface text-body-large data-selected:fill-on-primary',\n 'forced-colors:fill-[CanvasText] forced-colors:data-selected:fill-[HighlightText]',\n ],\n // The copy of the numbers clipped to the handle.\n dialNumberOnHandle: 'fill-on-primary text-body-large forced-colors:fill-[HighlightText]',\n // The hour and minute faces crossfade on the default effects spring (Compose).\n dialFaceEntering: [\n 'transition-opacity starting:opacity-0',\n '[transition-duration:var(--md-sys-motion-spring-effects-default-duration)] [transition-timing-function:var(--md-sys-motion-spring-effects-default-easing)]',\n ],\n dialFaceLeaving: [\n 'pointer-events-none opacity-0 transition-opacity starting:opacity-100',\n '[transition-duration:var(--md-sys-motion-spring-effects-default-duration)] [transition-timing-function:var(--md-sys-motion-spring-effects-default-easing)]',\n ],\n dialFocus: 'fill-none stroke-secondary forced-colors:stroke-[CanvasText]',\n dialHandle: [\n 'fill-[var(--_md-comp-time-picker-clock-dial-selector-handle-container-color)]',\n 'forced-colors:fill-[Highlight]',\n ],\n dialTrack: [\n 'stroke-[color:var(--_md-comp-time-picker-clock-dial-selector-handle-container-color)]',\n 'forced-colors:stroke-[Highlight]',\n ],\n field: [\n 'h-[calc(72px+var(--md-sys-density,0)*4px)] w-[96px] rounded-corner-small border-2 border-transparent bg-surface-container-highest',\n 'text-center text-display-medium text-on-surface caret-primary outline-none tabular-nums',\n 'focus:border-primary focus:bg-primary-container focus:text-on-primary-container',\n 'aria-invalid:border-error',\n 'forced-colors:border-[CanvasText] forced-colors:focus:border-[Highlight]',\n ],\n fieldLabel: 'pt-[7px] text-body-small text-on-surface-variant',\n fieldColumn: 'flex flex-col',\n },\n variants: {\n hourCycle: {\n 12: { selector: 'w-[96px]' },\n 24: { selector: 'w-[114px]' },\n },\n mode: {\n dial: { separator: 'h-[80px]' },\n input: { separator: 'h-[calc(72px+var(--md-sys-density,0)*4px)]' },\n },\n layout: {\n vertical: {\n root: 'flex-col',\n display: 'flex-row items-start',\n period: 'ms-[12px] w-[52px] flex-col',\n periodOption: [\n 'not-last:border-b',\n 'not-last:border-[color:var(--_md-comp-time-picker-period-selector-outline-color)]',\n 'first:rounded-t-[calc(var(--md-sys-shape-corner-small)-1px)] last:rounded-b-[calc(var(--md-sys-shape-corner-small)-1px)]',\n 'first:before:bottom-0 first:before:top-[min(0px,calc(100%_-_48px))]',\n 'last:before:top-0 last:before:bottom-[min(0px,calc(100%_-_48px))]',\n ],\n dial: 'mt-[36px]',\n },\n horizontal: {\n root: 'flex-row',\n display: 'flex-col items-center',\n period: 'mt-[16px] min-h-[38px] w-[216px] flex-row',\n periodOption: [\n 'not-last:border-e',\n 'not-last:border-[color:var(--_md-comp-time-picker-period-selector-outline-color)]',\n 'first:rounded-s-[calc(var(--md-sys-shape-corner-small)-1px)] last:rounded-e-[calc(var(--md-sys-shape-corner-small)-1px)]',\n 'before:inset-y-[min(0px,calc((100%_-_48px)/2))]',\n ],\n dial: 'ms-[36px]',\n },\n },\n },\n compoundVariants: [\n { mode: 'dial', layout: 'vertical', class: { period: 'min-h-[80px]' } },\n { mode: 'input', class: { period: 'min-h-[calc(72px+var(--md-sys-density,0)*4px)]' } },\n ],\n defaultVariants: { hourCycle: 12, mode: 'dial', layout: 'vertical' },\n});\n\n/**\n * The variants of {@link timePickerStyles}, for building on its styles. They are the recipe's keys, not\n * component props: their names (`hasIcon`, `isOpen`…) follow the classes and may change.\n */\nexport type TimePickerStyleProps = VariantProps<typeof timePickerStyles>;\n"],"mappings":";;;;;;;;;AAyCA,MAAM,kBAAkB,CACtB,iGACA,sDACF;AAEA,MAAa,mBAAmB,GAAG;CACjC,OAAO;EACL,MAAM;EACN,SAAS;EACT,MAAM;EACN,UAAU;GACR;GACA;GACA;GACA;GACA;GAGA;GACA;GACA;GACA,GAAG;EACL;EACA,WAAW;EAIX,QAAQ,CACN,oCACA,0EACF;EACA,cAAc;GACZ;GACA;GACA;GACA;GACA;GACA,GAAG;EACL;EAKA,MAAM,CACJ,0EACA,wCACF;EACA,UAAU,CACR,uDACA,gGACF;EACA,YAAY;EACZ,eAAe;EACf,gBAAgB,CACd,iEACA,kFACF;EAEA,oBAAoB;EAEpB,kBAAkB,CAChB,yCACA,4JACF;EACA,iBAAiB,CACf,yEACA,4JACF;EACA,WAAW;EACX,YAAY,CACV,iFACA,gCACF;EACA,WAAW,CACT,yFACA,kCACF;EACA,OAAO;GACL;GACA;GACA;GACA;GACA;EACF;EACA,YAAY;EACZ,aAAa;CACf;CACA,UAAU;EACR,WAAW;GACT,IAAI,EAAE,UAAU,WAAW;GAC3B,IAAI,EAAE,UAAU,YAAY;EAC9B;EACA,MAAM;GACJ,MAAM,EAAE,WAAW,WAAW;GAC9B,OAAO,EAAE,WAAW,6CAA6C;EACnE;EACA,QAAQ;GACN,UAAU;IACR,MAAM;IACN,SAAS;IACT,QAAQ;IACR,cAAc;KACZ;KACA;KACA;KACA;KACA;IACF;IACA,MAAM;GACR;GACA,YAAY;IACV,MAAM;IACN,SAAS;IACT,QAAQ;IACR,cAAc;KACZ;KACA;KACA;KACA;IACF;IACA,MAAM;GACR;EACF;CACF;CACA,kBAAkB,CAChB;EAAE,MAAM;EAAQ,QAAQ;EAAY,OAAO,EAAE,QAAQ,eAAe;CAAE,GACtE;EAAE,MAAM;EAAS,OAAO,EAAE,QAAQ,iDAAiD;CAAE,CACvF;CACA,iBAAiB;EAAE,WAAW;EAAI,MAAM;EAAQ,QAAQ;CAAW;AACrE,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ComponentTokenSet } from "../../tokens/component.js";
|
|
2
|
+
import "../../index.js";
|
|
3
|
+
//#region src/components/time-picker/time-picker-tokens.d.ts
|
|
4
|
+
/** The tokens of {@link TimePicker} and the time {@link PickerDialog}. */
|
|
5
|
+
export declare const timePickerTokenSet: ComponentTokenSet<"container-color" | "container-shape" | "clock-dial-color" | "clock-dial-selector-handle-container-color" | "time-selector-selected-container-color" | "time-selector-unselected-container-color" | "period-selector-selected-container-color" | "period-selector-outline-color">;
|
|
6
|
+
//#endregion
|
|
7
|
+
//# sourceMappingURL=time-picker-tokens.d.ts.map
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { color, corner, defineComponentTokens } from "../../tokens/component.js";
|
|
2
|
+
//#region src/components/time-picker/time-picker-tokens.ts
|
|
3
|
+
/** The tokens of {@link TimePicker} and the time {@link PickerDialog}. */
|
|
4
|
+
const timePickerTokenSet = defineComponentTokens({
|
|
5
|
+
name: "md-comp-time-picker",
|
|
6
|
+
tokens: {
|
|
7
|
+
"clock-dial-color": {
|
|
8
|
+
value: color("surface-container-highest"),
|
|
9
|
+
description: "The clock dial.",
|
|
10
|
+
compose: "TimePickerTokens.ClockDialColor",
|
|
11
|
+
paints: {
|
|
12
|
+
property: "fill",
|
|
13
|
+
slot: "clock-dial"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"clock-dial-selector-handle-container-color": {
|
|
17
|
+
value: color("primary"),
|
|
18
|
+
description: "The dial's selector: its handle, track and centre dot.",
|
|
19
|
+
compose: "TimePickerTokens.ClockDialSelectorHandleContainerColor",
|
|
20
|
+
paints: {
|
|
21
|
+
property: "fill",
|
|
22
|
+
slot: "clock-dial-selector-handle"
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
"time-selector-selected-container-color": {
|
|
26
|
+
value: color("primary-container"),
|
|
27
|
+
description: "The hour or minute selector being set.",
|
|
28
|
+
compose: "TimePickerTokens.TimeSelectorSelectedContainerColor",
|
|
29
|
+
paints: {
|
|
30
|
+
property: "background-color",
|
|
31
|
+
slot: "time-selector",
|
|
32
|
+
state: "selected"
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
"time-selector-unselected-container-color": {
|
|
36
|
+
value: color("surface-container-highest"),
|
|
37
|
+
description: "The other time selector.",
|
|
38
|
+
compose: "TimePickerTokens.TimeSelectorUnselectedContainerColor",
|
|
39
|
+
paints: {
|
|
40
|
+
property: "background-color",
|
|
41
|
+
slot: "time-selector"
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
"period-selector-selected-container-color": {
|
|
45
|
+
value: color("tertiary-container"),
|
|
46
|
+
description: "The chosen AM or PM option.",
|
|
47
|
+
compose: "TimePickerTokens.PeriodSelectorSelectedContainerColor",
|
|
48
|
+
paints: {
|
|
49
|
+
property: "background-color",
|
|
50
|
+
slot: "period-selector-option",
|
|
51
|
+
state: "selected"
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
"period-selector-outline-color": {
|
|
55
|
+
value: color("outline"),
|
|
56
|
+
description: "The AM / PM selector's 1px border and the line between its options.",
|
|
57
|
+
compose: "TimePickerTokens.PeriodSelectorOutlineColor",
|
|
58
|
+
paints: {
|
|
59
|
+
property: "border-top-color",
|
|
60
|
+
slot: "period-selector"
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
"container-color": {
|
|
64
|
+
value: color("surface-container-high"),
|
|
65
|
+
description: "The dialog panel.",
|
|
66
|
+
compose: "TimePickerTokens.ContainerColor",
|
|
67
|
+
paints: {
|
|
68
|
+
property: "background-color",
|
|
69
|
+
state: "variant"
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
"container-shape": {
|
|
73
|
+
value: corner("extra-large"),
|
|
74
|
+
description: "The dialog panel's corners.",
|
|
75
|
+
compose: "TimePickerTokens.ContainerShape",
|
|
76
|
+
paints: {
|
|
77
|
+
property: "border-top-left-radius",
|
|
78
|
+
state: "variant"
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
//#endregion
|
|
84
|
+
export { timePickerTokenSet };
|
|
85
|
+
|
|
86
|
+
//# sourceMappingURL=time-picker-tokens.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"time-picker-tokens.js","names":[],"sources":["../../../src/components/time-picker/time-picker-tokens.ts"],"sourcesContent":["import { color, corner, defineComponentTokens } from '../../tokens/component';\n\n/*\n * The time picker's component tokens, M3's `md.comp.time-picker.*` names (checked against\n * m3.material.io's token tables, 2026-10-14), with Compose's TimePickerTokens defaults. They\n * apply to `TimePicker` (its root carries `data-tokens=\"md-comp-time-picker\"`) and to a\n * `PickerDialog` of the `time` variant, whose panel paints the container.\n *\n * The selector handle's colour also paints its track and centre dot, as Compose's\n * `TimePickerColors.selectorColor` does. Input mode's fields (M3's time input set), the\n * numbers, hover, focus and pressed values stay classes.\n */\n\n/** The tokens of {@link TimePicker} and the time {@link PickerDialog}. */\nexport const timePickerTokenSet = defineComponentTokens({\n name: 'md-comp-time-picker',\n tokens: {\n 'clock-dial-color': {\n value: color('surface-container-highest'),\n description: 'The clock dial.',\n compose: 'TimePickerTokens.ClockDialColor',\n paints: { property: 'fill', slot: 'clock-dial' },\n },\n 'clock-dial-selector-handle-container-color': {\n value: color('primary'),\n description: \"The dial's selector: its handle, track and centre dot.\",\n compose: 'TimePickerTokens.ClockDialSelectorHandleContainerColor',\n paints: { property: 'fill', slot: 'clock-dial-selector-handle' },\n },\n 'time-selector-selected-container-color': {\n value: color('primary-container'),\n description: 'The hour or minute selector being set.',\n compose: 'TimePickerTokens.TimeSelectorSelectedContainerColor',\n paints: { property: 'background-color', slot: 'time-selector', state: 'selected' },\n },\n 'time-selector-unselected-container-color': {\n value: color('surface-container-highest'),\n description: 'The other time selector.',\n compose: 'TimePickerTokens.TimeSelectorUnselectedContainerColor',\n paints: { property: 'background-color', slot: 'time-selector' },\n },\n 'period-selector-selected-container-color': {\n value: color('tertiary-container'),\n description: 'The chosen AM or PM option.',\n compose: 'TimePickerTokens.PeriodSelectorSelectedContainerColor',\n paints: { property: 'background-color', slot: 'period-selector-option', state: 'selected' },\n },\n 'period-selector-outline-color': {\n value: color('outline'),\n description: \"The AM / PM selector's 1px border and the line between its options.\",\n compose: 'TimePickerTokens.PeriodSelectorOutlineColor',\n paints: { property: 'border-top-color', slot: 'period-selector' },\n },\n 'container-color': {\n value: color('surface-container-high'),\n description: 'The dialog panel.',\n compose: 'TimePickerTokens.ContainerColor',\n paints: { property: 'background-color', state: 'variant' },\n },\n 'container-shape': {\n value: corner('extra-large'),\n description: \"The dialog panel's corners.\",\n compose: 'TimePickerTokens.ContainerShape',\n paints: { property: 'border-top-left-radius', state: 'variant' },\n },\n },\n});\n"],"mappings":";;;AAcA,MAAa,qBAAqB,sBAAsB;CACtD,MAAM;CACN,QAAQ;EACN,oBAAoB;GAClB,OAAO,MAAM,2BAA2B;GACxC,aAAa;GACb,SAAS;GACT,QAAQ;IAAE,UAAU;IAAQ,MAAM;GAAa;EACjD;EACA,8CAA8C;GAC5C,OAAO,MAAM,SAAS;GACtB,aAAa;GACb,SAAS;GACT,QAAQ;IAAE,UAAU;IAAQ,MAAM;GAA6B;EACjE;EACA,0CAA0C;GACxC,OAAO,MAAM,mBAAmB;GAChC,aAAa;GACb,SAAS;GACT,QAAQ;IAAE,UAAU;IAAoB,MAAM;IAAiB,OAAO;GAAW;EACnF;EACA,4CAA4C;GAC1C,OAAO,MAAM,2BAA2B;GACxC,aAAa;GACb,SAAS;GACT,QAAQ;IAAE,UAAU;IAAoB,MAAM;GAAgB;EAChE;EACA,4CAA4C;GAC1C,OAAO,MAAM,oBAAoB;GACjC,aAAa;GACb,SAAS;GACT,QAAQ;IAAE,UAAU;IAAoB,MAAM;IAA0B,OAAO;GAAW;EAC5F;EACA,iCAAiC;GAC/B,OAAO,MAAM,SAAS;GACtB,aAAa;GACb,SAAS;GACT,QAAQ;IAAE,UAAU;IAAoB,MAAM;GAAkB;EAClE;EACA,mBAAmB;GACjB,OAAO,MAAM,wBAAwB;GACrC,aAAa;GACb,SAAS;GACT,QAAQ;IAAE,UAAU;IAAoB,OAAO;GAAU;EAC3D;EACA,mBAAmB;GACjB,OAAO,OAAO,aAAa;GAC3B,aAAa;GACb,SAAS;GACT,QAAQ;IAAE,UAAU;IAA0B,OAAO;GAAU;EACjE;CACF;AACF,CAAC"}
|