@windmorph/react 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/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
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 the Windmorph authors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/NOTICE
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
@windmorph/react
|
|
2
|
+
Copyright (c) 2026 the Windmorph authors. Licensed under the MIT License.
|
|
3
|
+
|
|
4
|
+
This package bundles @material/material-color-utilities
|
|
5
|
+
(https://github.com/material-foundation/material-color-utilities),
|
|
6
|
+
Copyright 2021 Google LLC, licensed under the Apache License, Version 2.0
|
|
7
|
+
(https://www.apache.org/licenses/LICENSE-2.0).
|
|
8
|
+
|
|
9
|
+
Design tokens are derived from Jetpack Compose Material 3
|
|
10
|
+
(https://android.googlesource.com/platform/frameworks/support), Copyright The
|
|
11
|
+
Android Open Source Project, licensed under the Apache License, Version 2.0.
|
|
12
|
+
|
|
13
|
+
The shape library (androidx.graphics.shapes and Compose Material 3 MaterialShapes) is a
|
|
14
|
+
TypeScript port of code from the Android Open Source Project
|
|
15
|
+
(https://android.googlesource.com/platform/frameworks/support), Copyright 2022-2025 The
|
|
16
|
+
Android Open Source Project, licensed under the Apache License, Version 2.0. It was
|
|
17
|
+
modified: translated to TypeScript with 64-bit arithmetic, the SVG parser, serializer and
|
|
18
|
+
validation were left out, a bounds calculation was fixed for shapes in negative space, and
|
|
19
|
+
paths are emitted as SVG path data.
|
|
20
|
+
|
|
21
|
+
The icons drawn inside components (such as send, close and the formatting buttons) are
|
|
22
|
+
Material Symbols path data (https://github.com/google/material-design-icons), Copyright
|
|
23
|
+
Google LLC, licensed under the Apache License, Version 2.0.
|
package/README.md
CHANGED
|
@@ -1,3 +1,150 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @windmorph/react
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
React components implementing **Material Design 3 Expressive**, built on
|
|
4
|
+
[React Aria](https://react-spectrum.adobe.com/react-aria/), [Tailwind CSS v4](https://tailwindcss.com)
|
|
5
|
+
and [Motion](https://motion.dev). Semantic design tokens, component tokens, six built-in themes,
|
|
6
|
+
light and dark modes with three contrast levels, M3 Expressive springs, right-to-left support and
|
|
7
|
+
accessible components by default. Works with Vite and Next.js (App Router and Pages Router).
|
|
8
|
+
|
|
9
|
+
**Docs and live examples: [windmorph.dev](https://windmorph.dev/)**
|
|
10
|
+
|
|
11
|
+
## Install
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npm i @windmorph/react motion
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
Peer dependencies: `react` and `react-dom` 19, `motion` 14, and optionally `tailwindcss` 4.1 or
|
|
18
|
+
later and `next` 15 or later.
|
|
19
|
+
|
|
20
|
+
### Browser support
|
|
21
|
+
|
|
22
|
+
0.1.0 is tested on Chrome and Edge. Safari 17.5+ and Firefox 129+ are supported targets, with
|
|
23
|
+
full testing coming next. Older browsers skip some entry animations (`@starting-style`).
|
|
24
|
+
|
|
25
|
+
### With Tailwind CSS v4
|
|
26
|
+
|
|
27
|
+
```css
|
|
28
|
+
/* globals.css */
|
|
29
|
+
@import 'tailwindcss';
|
|
30
|
+
@import '@windmorph/react/styles.css';
|
|
31
|
+
@source '../node_modules/@windmorph/react';
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
`@source` lets Tailwind see the classes the components use; adjust the path to where
|
|
35
|
+
`node_modules` sits relative to your CSS file. The colour roles, type scale, shapes and motion
|
|
36
|
+
are then Tailwind utilities in your own code too (`bg-surface`, `text-on-surface-variant`,
|
|
37
|
+
`text-body-large`, `rounded-corner-large`, …).
|
|
38
|
+
|
|
39
|
+
### Without Tailwind
|
|
40
|
+
|
|
41
|
+
Import `@windmorph/react/styles.compiled.css` instead: the same styles, already compiled.
|
|
42
|
+
|
|
43
|
+
### Fonts
|
|
44
|
+
|
|
45
|
+
Fonts are not bundled. Load [Roboto Flex](https://fonts.google.com/specimen/Roboto+Flex) with
|
|
46
|
+
`next/font` or Google Fonts; without it, the system UI font is used.
|
|
47
|
+
|
|
48
|
+
## Use
|
|
49
|
+
|
|
50
|
+
Wrap the app in `ThemeProvider`:
|
|
51
|
+
|
|
52
|
+
```tsx
|
|
53
|
+
import { Button, ThemeProvider } from '@windmorph/react';
|
|
54
|
+
|
|
55
|
+
export function App() {
|
|
56
|
+
return (
|
|
57
|
+
<ThemeProvider defaultTheme="baseline">
|
|
58
|
+
<Button variant="filled">Label</Button>
|
|
59
|
+
</ThemeProvider>
|
|
60
|
+
);
|
|
61
|
+
}
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
`ThemeProvider` holds the theme, the mode (`light`, `dark` or `system`), the contrast level and
|
|
65
|
+
the motion scheme, remembers the visitor's choice, and exposes it through `useTheme`.
|
|
66
|
+
`ThemeScope` gives part of a page its own theme.
|
|
67
|
+
|
|
68
|
+
## Next.js
|
|
69
|
+
|
|
70
|
+
Interactive components are client components (`"use client"`), so server components can render
|
|
71
|
+
them. The `@windmorph/react/next` entry adds:
|
|
72
|
+
|
|
73
|
+
- `NextRouterProvider`, so the library's links (`href` on `Button`, `ListItem`, `Tab`, …) navigate
|
|
74
|
+
with the Next.js router;
|
|
75
|
+
- `getThemeFromCookies` and `themeAttributes`, so the App Router renders the visitor's theme on the
|
|
76
|
+
server with no flash (`ThemeScript` does the same for static pages and the Pages Router);
|
|
77
|
+
- `useNavigationGuard` and `useGuardedNavigate`, to ask before leaving unsaved changes.
|
|
78
|
+
|
|
79
|
+
See the [Next.js guide](https://windmorph.dev/nextjs).
|
|
80
|
+
|
|
81
|
+
## Custom themes
|
|
82
|
+
|
|
83
|
+
Six themes are built in (`baseline`, `ocean`, `forest`, `sunset`, `rose`, `slate`). Make your
|
|
84
|
+
own from a brand colour with the M3 2025 colour spec, and pass it to `ThemeProvider`:
|
|
85
|
+
|
|
86
|
+
```tsx
|
|
87
|
+
import { createTheme, ThemeProvider } from '@windmorph/react';
|
|
88
|
+
|
|
89
|
+
const brand = createTheme({
|
|
90
|
+
name: 'brand',
|
|
91
|
+
seed: '#1877F2',
|
|
92
|
+
variant: 'vibrant', // tonal-spot (default) | neutral | vibrant | expressive
|
|
93
|
+
// Optional: take any of the six palettes from another variant or a hex colour,
|
|
94
|
+
// e.g. vivid accents on calm, nearly neutral surfaces.
|
|
95
|
+
palettes: { neutral: 'tonal-spot', neutralVariant: 'tonal-spot' },
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
<ThemeProvider themes={['baseline', brand]} defaultTheme="brand">
|
|
99
|
+
{children}
|
|
100
|
+
</ThemeProvider>;
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
For static sites, the `windmorph` CLI writes the same CSS to a file:
|
|
104
|
+
|
|
105
|
+
```bash
|
|
106
|
+
npx @windmorph/react theme --name brand --seed "#1877F2" --variant vibrant \
|
|
107
|
+
--palette neutral=tonal-spot --palette neutral-variant=tonal-spot --out brand.css
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
See the [Theming guide](https://windmorph.dev/theming) for modes, contrast levels,
|
|
111
|
+
`ThemeScope`, mixing palettes and flash-free server rendering.
|
|
112
|
+
|
|
113
|
+
## Entries
|
|
114
|
+
|
|
115
|
+
| Import | What it holds |
|
|
116
|
+
| -------------------------------------- | ----------------------------------------------------------------------- |
|
|
117
|
+
| `@windmorph/react` | The components, theming, tokens and `cn()` |
|
|
118
|
+
| `@windmorph/react/next` | The Next.js helpers above |
|
|
119
|
+
| `@windmorph/react/primitives` | Lower-level building blocks, for components built on top of the library |
|
|
120
|
+
| `@windmorph/react/styles.css` | The tokens, themes and utilities, for Tailwind CSS v4 |
|
|
121
|
+
| `@windmorph/react/styles.compiled.css` | The same, compiled, for apps without Tailwind |
|
|
122
|
+
|
|
123
|
+
## Vite 8 and `"use client"`
|
|
124
|
+
|
|
125
|
+
Vite 8 logs a harmless `MODULE_LEVEL_DIRECTIVE` warning for each `"use client"` module in
|
|
126
|
+
client-only builds. To silence it:
|
|
127
|
+
|
|
128
|
+
```ts
|
|
129
|
+
// vite.config.ts
|
|
130
|
+
export default defineConfig({
|
|
131
|
+
build: {
|
|
132
|
+
rolldownOptions: {
|
|
133
|
+
onLog(level, log, handler) {
|
|
134
|
+
if (log.code !== 'MODULE_LEVEL_DIRECTIVE') handler(level, log);
|
|
135
|
+
},
|
|
136
|
+
},
|
|
137
|
+
},
|
|
138
|
+
});
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
## Documentation
|
|
142
|
+
|
|
143
|
+
[windmorph.dev](https://windmorph.dev/) has the getting-started, theming, motion,
|
|
144
|
+
customisation, accessibility, Next.js and from-Compose guides, the spec status, the release
|
|
145
|
+
notes, and a page per component with live examples and generated props tables.
|
|
146
|
+
|
|
147
|
+
## Licence
|
|
148
|
+
|
|
149
|
+
MIT. Bundles `@material/material-color-utilities` and code ported from the Android Open Source
|
|
150
|
+
Project (Apache-2.0); see `NOTICE`.
|
package/dist/cli.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {}
|
package/dist/cli.js
ADDED
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
import { CONTRAST_LEVEL_NAMES, PALETTE_NAMES, SCHEME_VARIANTS } from "./tokens/color.js";
|
|
3
|
+
import { createTheme } from "./theme/create-theme.js";
|
|
4
|
+
import { parseCustomColors, parsePalettes, toKebabCase } from "./theme/parse-palettes.js";
|
|
5
|
+
import { writeFile } from "node:fs/promises";
|
|
6
|
+
import { parseArgs } from "node:util";
|
|
7
|
+
//#region src/cli.ts
|
|
8
|
+
const USAGE = `Usage: npx @windmorph/react theme --seed <hex> --name <name> [options]
|
|
9
|
+
|
|
10
|
+
Generates a static CSS colour theme (light, dark and system modes for each
|
|
11
|
+
contrast level) using the Material 3 2025 colour spec.
|
|
12
|
+
|
|
13
|
+
Options:
|
|
14
|
+
--seed <hex> Seed colour, e.g. "#0B57D0" (required)
|
|
15
|
+
--name <name> Theme name for data-theme, lowercase kebab-case (required)
|
|
16
|
+
--variant <variant> ${SCHEME_VARIANTS.join(" | ")} (default: tonal-spot)
|
|
17
|
+
--palette <name>=<source>
|
|
18
|
+
Takes one palette from elsewhere; repeatable. <name> is
|
|
19
|
+
${PALETTE_NAMES.map(toKebabCase).join(", ")};
|
|
20
|
+
<source> is a variant or a hex colour, e.g.
|
|
21
|
+
--palette neutral=tonal-spot --palette tertiary=#00A07A
|
|
22
|
+
--custom <name>=<hex> Sets the success or warning colour; repeatable, e.g.
|
|
23
|
+
--custom success=#0B8043 --custom warning=#E37400
|
|
24
|
+
--no-harmonize Keeps the custom colours' exact hues (by default they turn
|
|
25
|
+
toward the seed, as in Material Theme Builder)
|
|
26
|
+
--contrast <levels> Comma-separated: ${CONTRAST_LEVEL_NAMES.join(",")} (default: all)
|
|
27
|
+
--out <file> Write to a file instead of stdout
|
|
28
|
+
-h, --help Show this message
|
|
29
|
+
`;
|
|
30
|
+
function fail(message) {
|
|
31
|
+
process.stderr.write(`Error: ${message}\n\n${USAGE}`);
|
|
32
|
+
process.exit(1);
|
|
33
|
+
}
|
|
34
|
+
const { positionals, values } = parseArgs({
|
|
35
|
+
allowPositionals: true,
|
|
36
|
+
options: {
|
|
37
|
+
seed: { type: "string" },
|
|
38
|
+
name: { type: "string" },
|
|
39
|
+
variant: {
|
|
40
|
+
type: "string",
|
|
41
|
+
default: "tonal-spot"
|
|
42
|
+
},
|
|
43
|
+
palette: {
|
|
44
|
+
type: "string",
|
|
45
|
+
multiple: true,
|
|
46
|
+
default: []
|
|
47
|
+
},
|
|
48
|
+
custom: {
|
|
49
|
+
type: "string",
|
|
50
|
+
multiple: true,
|
|
51
|
+
default: []
|
|
52
|
+
},
|
|
53
|
+
"no-harmonize": {
|
|
54
|
+
type: "boolean",
|
|
55
|
+
default: false
|
|
56
|
+
},
|
|
57
|
+
contrast: {
|
|
58
|
+
type: "string",
|
|
59
|
+
default: CONTRAST_LEVEL_NAMES.join(",")
|
|
60
|
+
},
|
|
61
|
+
out: { type: "string" },
|
|
62
|
+
help: {
|
|
63
|
+
type: "boolean",
|
|
64
|
+
short: "h"
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
if (values.help) {
|
|
69
|
+
process.stdout.write(USAGE);
|
|
70
|
+
process.exit(0);
|
|
71
|
+
}
|
|
72
|
+
if (positionals[0] !== "theme") fail("unknown command. Only \"theme\" is supported.");
|
|
73
|
+
if (!values.seed) fail("--seed is required.");
|
|
74
|
+
if (!values.name) fail("--name is required.");
|
|
75
|
+
if (!SCHEME_VARIANTS.includes(values.variant)) fail(`--variant must be one of ${SCHEME_VARIANTS.join(", ")}.`);
|
|
76
|
+
const contrast = values.contrast.split(",").map((level) => level.trim());
|
|
77
|
+
for (const level of contrast) if (!CONTRAST_LEVEL_NAMES.includes(level)) fail(`unknown contrast level "${level}".`);
|
|
78
|
+
let palettes = {};
|
|
79
|
+
try {
|
|
80
|
+
palettes = parsePalettes(values.palette);
|
|
81
|
+
} catch (error) {
|
|
82
|
+
fail(error instanceof Error ? error.message : String(error));
|
|
83
|
+
}
|
|
84
|
+
let customColors = {};
|
|
85
|
+
try {
|
|
86
|
+
customColors = parseCustomColors(values.custom);
|
|
87
|
+
} catch (error) {
|
|
88
|
+
fail(error instanceof Error ? error.message : String(error));
|
|
89
|
+
}
|
|
90
|
+
let css;
|
|
91
|
+
try {
|
|
92
|
+
css = createTheme({
|
|
93
|
+
name: values.name,
|
|
94
|
+
seed: values.seed,
|
|
95
|
+
variant: values.variant,
|
|
96
|
+
palettes,
|
|
97
|
+
customColors,
|
|
98
|
+
harmonize: !values["no-harmonize"],
|
|
99
|
+
contrast
|
|
100
|
+
}).css;
|
|
101
|
+
} catch (error) {
|
|
102
|
+
fail(error instanceof Error ? error.message : String(error));
|
|
103
|
+
}
|
|
104
|
+
const paletteNote = values.palette.length > 0 ? `, palettes ${values.palette.join(" ")}` : "";
|
|
105
|
+
const output = `/* @windmorph/react theme "${values.name}" from ${values.seed} (${values.variant}${paletteNote}). */\n\n${css}\n`;
|
|
106
|
+
if (values.out) {
|
|
107
|
+
await writeFile(values.out, output);
|
|
108
|
+
process.stderr.write(`Wrote ${values.out}\n`);
|
|
109
|
+
} else process.stdout.write(output);
|
|
110
|
+
//#endregion
|
|
111
|
+
|
|
112
|
+
//# sourceMappingURL=cli.js.map
|
package/dist/cli.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli.js","names":[],"sources":["../src/cli.ts"],"sourcesContent":["#!/usr/bin/env node\nimport { writeFile } from 'node:fs/promises';\nimport { parseArgs } from 'node:util';\nimport { createTheme } from './theme/create-theme';\nimport { parseCustomColors, parsePalettes, toKebabCase } from './theme/parse-palettes';\nimport {\n CONTRAST_LEVEL_NAMES,\n PALETTE_NAMES,\n SCHEME_VARIANTS,\n type ContrastLevel,\n type SchemeVariant,\n type ThemePalettes,\n} from './tokens/color';\n\nconst USAGE = `Usage: npx @windmorph/react theme --seed <hex> --name <name> [options]\n\nGenerates a static CSS colour theme (light, dark and system modes for each\ncontrast level) using the Material 3 2025 colour spec.\n\nOptions:\n --seed <hex> Seed colour, e.g. \"#0B57D0\" (required)\n --name <name> Theme name for data-theme, lowercase kebab-case (required)\n --variant <variant> ${SCHEME_VARIANTS.join(' | ')} (default: tonal-spot)\n --palette <name>=<source>\n Takes one palette from elsewhere; repeatable. <name> is\n ${PALETTE_NAMES.map(toKebabCase).join(', ')};\n <source> is a variant or a hex colour, e.g.\n --palette neutral=tonal-spot --palette tertiary=#00A07A\n --custom <name>=<hex> Sets the success or warning colour; repeatable, e.g.\n --custom success=#0B8043 --custom warning=#E37400\n --no-harmonize Keeps the custom colours' exact hues (by default they turn\n toward the seed, as in Material Theme Builder)\n --contrast <levels> Comma-separated: ${CONTRAST_LEVEL_NAMES.join(',')} (default: all)\n --out <file> Write to a file instead of stdout\n -h, --help Show this message\n`;\n\nfunction fail(message: string): never {\n process.stderr.write(`Error: ${message}\\n\\n${USAGE}`);\n process.exit(1);\n}\n\nconst { positionals, values } = parseArgs({\n allowPositionals: true,\n options: {\n seed: { type: 'string' },\n name: { type: 'string' },\n variant: { type: 'string', default: 'tonal-spot' },\n palette: { type: 'string', multiple: true, default: [] },\n custom: { type: 'string', multiple: true, default: [] },\n 'no-harmonize': { type: 'boolean', default: false },\n contrast: { type: 'string', default: CONTRAST_LEVEL_NAMES.join(',') },\n out: { type: 'string' },\n help: { type: 'boolean', short: 'h' },\n },\n});\n\nif (values.help) {\n process.stdout.write(USAGE);\n process.exit(0);\n}\nif (positionals[0] !== 'theme') fail('unknown command. Only \"theme\" is supported.');\nif (!values.seed) fail('--seed is required.');\nif (!values.name) fail('--name is required.');\nif (!(SCHEME_VARIANTS as readonly string[]).includes(values.variant)) {\n fail(`--variant must be one of ${SCHEME_VARIANTS.join(', ')}.`);\n}\nconst contrast = values.contrast.split(',').map((level) => level.trim());\nfor (const level of contrast) {\n if (!(CONTRAST_LEVEL_NAMES as readonly string[]).includes(level)) {\n fail(`unknown contrast level \"${level}\".`);\n }\n}\n\nlet palettes: ThemePalettes = {};\ntry {\n palettes = parsePalettes(values.palette);\n} catch (error) {\n fail(error instanceof Error ? error.message : String(error));\n}\n\nlet customColors = {};\ntry {\n customColors = parseCustomColors(values.custom);\n} catch (error) {\n fail(error instanceof Error ? error.message : String(error));\n}\n\nlet css: string;\ntry {\n css = createTheme({\n name: values.name,\n seed: values.seed,\n variant: values.variant as SchemeVariant,\n palettes,\n customColors,\n harmonize: !values['no-harmonize'],\n contrast: contrast as ContrastLevel[],\n }).css;\n} catch (error) {\n fail(error instanceof Error ? error.message : String(error));\n}\n\nconst paletteNote = values.palette.length > 0 ? `, palettes ${values.palette.join(' ')}` : '';\nconst output = `/* @windmorph/react theme \"${values.name}\" from ${values.seed} (${values.variant}${paletteNote}). */\\n\\n${css}\\n`;\nif (values.out) {\n await writeFile(values.out, output);\n process.stderr.write(`Wrote ${values.out}\\n`);\n} else {\n process.stdout.write(output);\n}\n"],"mappings":";;;;;;;AAcA,MAAM,QAAQ;;;;;;;;0BAQY,gBAAgB,KAAK,KAAK,EAAE;;;0BAG5B,cAAc,IAAI,WAAW,CAAC,CAAC,KAAK,IAAI,EAAE;;;;;;;2CAOzB,qBAAqB,KAAK,GAAG,EAAE;;;;AAK1E,SAAS,KAAK,SAAwB;CACpC,QAAQ,OAAO,MAAM,UAAU,QAAQ,MAAM,OAAO;CACpD,QAAQ,KAAK,CAAC;AAChB;AAEA,MAAM,EAAE,aAAa,WAAW,UAAU;CACxC,kBAAkB;CAClB,SAAS;EACP,MAAM,EAAE,MAAM,SAAS;EACvB,MAAM,EAAE,MAAM,SAAS;EACvB,SAAS;GAAE,MAAM;GAAU,SAAS;EAAa;EACjD,SAAS;GAAE,MAAM;GAAU,UAAU;GAAM,SAAS,CAAC;EAAE;EACvD,QAAQ;GAAE,MAAM;GAAU,UAAU;GAAM,SAAS,CAAC;EAAE;EACtD,gBAAgB;GAAE,MAAM;GAAW,SAAS;EAAM;EAClD,UAAU;GAAE,MAAM;GAAU,SAAS,qBAAqB,KAAK,GAAG;EAAE;EACpE,KAAK,EAAE,MAAM,SAAS;EACtB,MAAM;GAAE,MAAM;GAAW,OAAO;EAAI;CACtC;AACF,CAAC;AAED,IAAI,OAAO,MAAM;CACf,QAAQ,OAAO,MAAM,KAAK;CAC1B,QAAQ,KAAK,CAAC;AAChB;AACA,IAAI,YAAY,OAAO,SAAS,KAAK,+CAA6C;AAClF,IAAI,CAAC,OAAO,MAAM,KAAK,qBAAqB;AAC5C,IAAI,CAAC,OAAO,MAAM,KAAK,qBAAqB;AAC5C,IAAI,CAAE,gBAAsC,SAAS,OAAO,OAAO,GACjE,KAAK,4BAA4B,gBAAgB,KAAK,IAAI,EAAE,EAAE;AAEhE,MAAM,WAAW,OAAO,SAAS,MAAM,GAAG,CAAC,CAAC,KAAK,UAAU,MAAM,KAAK,CAAC;AACvE,KAAK,MAAM,SAAS,UAClB,IAAI,CAAE,qBAA2C,SAAS,KAAK,GAC7D,KAAK,2BAA2B,MAAM,GAAG;AAI7C,IAAI,WAA0B,CAAC;AAC/B,IAAI;CACF,WAAW,cAAc,OAAO,OAAO;AACzC,SAAS,OAAO;CACd,KAAK,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,CAAC;AAC7D;AAEA,IAAI,eAAe,CAAC;AACpB,IAAI;CACF,eAAe,kBAAkB,OAAO,MAAM;AAChD,SAAS,OAAO;CACd,KAAK,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,CAAC;AAC7D;AAEA,IAAI;AACJ,IAAI;CACF,MAAM,YAAY;EAChB,MAAM,OAAO;EACb,MAAM,OAAO;EACb,SAAS,OAAO;EAChB;EACA;EACA,WAAW,CAAC,OAAO;EACT;CACZ,CAAC,CAAC,CAAC;AACL,SAAS,OAAO;CACd,KAAK,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,CAAC;AAC7D;AAEA,MAAM,cAAc,OAAO,QAAQ,SAAS,IAAI,cAAc,OAAO,QAAQ,KAAK,GAAG,MAAM;AAC3F,MAAM,SAAS,8BAA8B,OAAO,KAAK,SAAS,OAAO,KAAK,IAAI,OAAO,UAAU,YAAY,WAAW,IAAI;AAC9H,IAAI,OAAO,KAAK;CACd,MAAM,UAAU,OAAO,KAAK,MAAM;CAClC,QAAQ,OAAO,MAAM,SAAS,OAAO,IAAI,GAAG;AAC9C,OACE,QAAQ,OAAO,MAAM,MAAM"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { ButtonContext, standardIconButtons } from "../button/ButtonContext.js";
|
|
3
|
+
import { TooltipPlacementContext } from "../tooltip/tooltip-placement.js";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
//#region src/components/app-bar/AppBarItems.tsx
|
|
6
|
+
/**
|
|
7
|
+
* What an app bar gives the controls inside it: `standard` icon buttons, and plain tooltips
|
|
8
|
+
* below (the spec: "If the element is in an app bar, the plain tooltip appears below the
|
|
9
|
+
* element"). Shared by `TopAppBar` and `SearchAppBar`.
|
|
10
|
+
*/
|
|
11
|
+
function AppBarItems({ children }) {
|
|
12
|
+
return /* @__PURE__ */ jsx(TooltipPlacementContext, {
|
|
13
|
+
value: "bottom",
|
|
14
|
+
children: /* @__PURE__ */ jsx(ButtonContext, {
|
|
15
|
+
value: standardIconButtons,
|
|
16
|
+
children
|
|
17
|
+
})
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
//#endregion
|
|
21
|
+
export { AppBarItems };
|
|
22
|
+
|
|
23
|
+
//# sourceMappingURL=AppBarItems.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AppBarItems.js","names":[],"sources":["../../../src/components/app-bar/AppBarItems.tsx"],"sourcesContent":["'use client';\n\nimport type { ReactNode } from 'react';\nimport { ButtonContext, standardIconButtons } from '../button/ButtonContext';\nimport { TooltipPlacementContext } from '../tooltip/tooltip-placement';\n\n/**\n * What an app bar gives the controls inside it: `standard` icon buttons, and plain tooltips\n * below (the spec: \"If the element is in an app bar, the plain tooltip appears below the\n * element\"). Shared by `TopAppBar` and `SearchAppBar`.\n */\nexport function AppBarItems({ children }: { children: ReactNode }) {\n return (\n <TooltipPlacementContext value=\"bottom\">\n <ButtonContext value={standardIconButtons}>{children}</ButtonContext>\n </TooltipPlacementContext>\n );\n}\n"],"mappings":";;;;;;;;;;AAWA,SAAgB,YAAY,EAAE,YAAqC;CACjE,OACE,oBAAC,yBAAD;EAAyB,OAAM;EAC7B,UAAA,oBAAC,eAAD;GAAe,OAAO;GAAsB;EAAwB,CAAA;CAC7C,CAAA;AAE7B"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { TopAppBarTitleAlign, TopAppBarVariant } from "./app-bar-styles.js";
|
|
2
|
+
import { TopAppBarScrollBehavior } from "./use-app-bar-scroll.js";
|
|
3
|
+
import { ComponentPropsWithRef, ReactNode, RefObject } from "react";
|
|
4
|
+
//#region src/components/app-bar/TopAppBar.d.ts
|
|
5
|
+
export interface TopAppBarClassNames {
|
|
6
|
+
/** The `<header>` container, merged with `className`. */
|
|
7
|
+
root?: string;
|
|
8
|
+
/** The 64px top row. */
|
|
9
|
+
row?: string;
|
|
10
|
+
/** The leading slot holding `navigationIcon`. */
|
|
11
|
+
navigation?: string;
|
|
12
|
+
/** The top row's title block. */
|
|
13
|
+
title?: string;
|
|
14
|
+
/** The top row's title text. */
|
|
15
|
+
titleText?: string;
|
|
16
|
+
/** The top row's subtitle text. */
|
|
17
|
+
subtitleText?: string;
|
|
18
|
+
/** The trailing slot holding `actions`. */
|
|
19
|
+
actions?: string;
|
|
20
|
+
/** The expanded title row of medium and large bars. */
|
|
21
|
+
expandedRow?: string;
|
|
22
|
+
/** The expanded row's title text. */
|
|
23
|
+
expandedTitle?: string;
|
|
24
|
+
/** The expanded row's subtitle text. */
|
|
25
|
+
expandedSubtitle?: string;
|
|
26
|
+
/** The accessory row below the title rows (`bottom`). */
|
|
27
|
+
bottom?: string;
|
|
28
|
+
}
|
|
29
|
+
interface TopAppBarOwnProps {
|
|
30
|
+
/**
|
|
31
|
+
* `small` is a 64px single row; `medium` and `large` are Compose's flexible two-row bars
|
|
32
|
+
* (112 / 120px, 136 / 152px with a subtitle) that collapse to 64px. @default "small"
|
|
33
|
+
*/
|
|
34
|
+
variant?: TopAppBarVariant;
|
|
35
|
+
/** The title, e.g. the screen's name. Wrap it in a heading element if it names the page. */
|
|
36
|
+
title: ReactNode;
|
|
37
|
+
/** A second line under the title, e.g. the current section. */
|
|
38
|
+
subtitle?: ReactNode;
|
|
39
|
+
/** Align the title (and subtitle) to the start, or centre it. @default "start" */
|
|
40
|
+
titleAlign?: TopAppBarTitleAlign;
|
|
41
|
+
/** A leading control, usually a back or menu `IconButton`. */
|
|
42
|
+
navigationIcon?: ReactNode;
|
|
43
|
+
/** Trailing controls, usually `IconButton`s. */
|
|
44
|
+
actions?: ReactNode;
|
|
45
|
+
/**
|
|
46
|
+
* Respond to content scrolling under the bar: it sticks to the top, turns
|
|
47
|
+
* `surface-container`, and (for `enter-always` / `exit-until-collapsed`) collapses.
|
|
48
|
+
* Leave it out for a static bar positioned by the consumer.
|
|
49
|
+
*/
|
|
50
|
+
scrollBehavior?: TopAppBarScrollBehavior;
|
|
51
|
+
/** The scroll container the bar responds to. Defaults to the window. */
|
|
52
|
+
scrollRef?: RefObject<HTMLElement | null>;
|
|
53
|
+
/**
|
|
54
|
+
* An accessory row below the title rows, such as a row of filter chips or tabs (M3: app
|
|
55
|
+
* bars "can animate on and off screen with another bar of controls, like a row of chips").
|
|
56
|
+
* It's part of the bar: it takes the bar's colour, stays below the collapsed top row of
|
|
57
|
+
* a medium or large bar, and hides and comes back with the bar under `enter-always` and
|
|
58
|
+
* a small bar's `exit-until-collapsed`. Give it its own padding.
|
|
59
|
+
*/
|
|
60
|
+
bottom?: ReactNode;
|
|
61
|
+
/**
|
|
62
|
+
* The container's colour once content scrolls under the bar. `container` fills it with
|
|
63
|
+
* `surface-container` (M3's default); `transparent` lets the content show through (M3:
|
|
64
|
+
* "consider setting the app bar container to be transparent on scroll"); give the icon
|
|
65
|
+
* buttons a container fill then (e.g. `variant="tonal"`), so they stay legible over the
|
|
66
|
+
* content.
|
|
67
|
+
* @default "container"
|
|
68
|
+
*/
|
|
69
|
+
scrolledColor?: TopAppBarScrolledColor;
|
|
70
|
+
/** Classes for each part, by slot. */
|
|
71
|
+
classNames?: TopAppBarClassNames;
|
|
72
|
+
}
|
|
73
|
+
/** The colour a {@link TopAppBar} takes when content scrolls under it. */
|
|
74
|
+
export type TopAppBarScrolledColor = 'container' | 'transparent';
|
|
75
|
+
export type TopAppBarProps = TopAppBarOwnProps & Omit<ComponentPropsWithRef<'header'>, keyof TopAppBarOwnProps | 'children'>;
|
|
76
|
+
/**
|
|
77
|
+
* M3 Expressive top app bar: a small 64px bar, or the medium and large flexible bars whose
|
|
78
|
+
* large title collapses into the top row as the page scrolls. Titles can be centred and
|
|
79
|
+
* have a subtitle.
|
|
80
|
+
*
|
|
81
|
+
* @example
|
|
82
|
+
* <TopAppBar title={<h1>Inbox</h1>} subtitle="3 unread" variant="medium"
|
|
83
|
+
* scrollBehavior="exit-until-collapsed"
|
|
84
|
+
* navigationIcon={<IconButton icon={<MenuIcon />} aria-label="Menu" />}
|
|
85
|
+
* actions={<IconButton icon={<SearchIcon />} aria-label="Search" />} />
|
|
86
|
+
*/
|
|
87
|
+
export declare function TopAppBar({ variant, title, subtitle, titleAlign, navigationIcon, actions, scrollBehavior, scrollRef, bottom, scrolledColor, classNames, className, ref, ...rest }: TopAppBarProps): import("react").JSX.Element;
|
|
88
|
+
//#endregion
|
|
89
|
+
//# sourceMappingURL=TopAppBar.d.ts.map
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "../../utils/cn.js";
|
|
3
|
+
import { mergeDataTokens } from "../../utils/merge-data-tokens.js";
|
|
4
|
+
import { AppBarItems } from "./AppBarItems.js";
|
|
5
|
+
import { topAppBarStyles } from "./app-bar-styles.js";
|
|
6
|
+
import { useAppBarScroll } from "./use-app-bar-scroll.js";
|
|
7
|
+
import { useRef } from "react";
|
|
8
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
|
+
import { useObjectRef } from "react-aria";
|
|
10
|
+
//#region src/components/app-bar/TopAppBar.tsx
|
|
11
|
+
/**
|
|
12
|
+
* M3 Expressive top app bar: a small 64px bar, or the medium and large flexible bars whose
|
|
13
|
+
* large title collapses into the top row as the page scrolls. Titles can be centred and
|
|
14
|
+
* have a subtitle.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* <TopAppBar title={<h1>Inbox</h1>} subtitle="3 unread" variant="medium"
|
|
18
|
+
* scrollBehavior="exit-until-collapsed"
|
|
19
|
+
* navigationIcon={<IconButton icon={<MenuIcon />} aria-label="Menu" />}
|
|
20
|
+
* actions={<IconButton icon={<SearchIcon />} aria-label="Search" />} />
|
|
21
|
+
*/
|
|
22
|
+
function TopAppBar({ variant = "small", title, subtitle, titleAlign = "start", navigationIcon, actions, scrollBehavior, scrollRef, bottom, scrolledColor = "container", classNames, className, ref, ...rest }) {
|
|
23
|
+
const rootRef = useObjectRef(ref);
|
|
24
|
+
const expandedRowRef = useRef(null);
|
|
25
|
+
const twoRows = variant !== "small";
|
|
26
|
+
const scroll = useAppBarScroll({
|
|
27
|
+
behavior: scrollBehavior,
|
|
28
|
+
rootRef,
|
|
29
|
+
collapsibleRef: twoRows ? expandedRowRef : rootRef,
|
|
30
|
+
scrollRef,
|
|
31
|
+
twoRows
|
|
32
|
+
});
|
|
33
|
+
const styles = topAppBarStyles({
|
|
34
|
+
variant,
|
|
35
|
+
titleAlign,
|
|
36
|
+
hasNavigation: navigationIcon != null,
|
|
37
|
+
hasSubtitle: subtitle != null,
|
|
38
|
+
scrolling: scrollBehavior != null,
|
|
39
|
+
pinned: scrollBehavior === "pinned",
|
|
40
|
+
twoRows,
|
|
41
|
+
scrolledColor
|
|
42
|
+
});
|
|
43
|
+
const hideTopTitle = twoRows && !scroll.collapsed;
|
|
44
|
+
return /* @__PURE__ */ jsx("header", {
|
|
45
|
+
...rest,
|
|
46
|
+
ref: rootRef,
|
|
47
|
+
"data-tokens": mergeDataTokens("md-comp-app-bar", rest),
|
|
48
|
+
"data-variant": variant,
|
|
49
|
+
"data-scrolled": scroll.scrolled || void 0,
|
|
50
|
+
"data-collapsed": scroll.collapsed || void 0,
|
|
51
|
+
className: styles.root({ class: cn(classNames?.root, className) }),
|
|
52
|
+
children: /* @__PURE__ */ jsxs(AppBarItems, { children: [
|
|
53
|
+
/* @__PURE__ */ jsxs("div", {
|
|
54
|
+
className: styles.row({ class: classNames?.row }),
|
|
55
|
+
children: [
|
|
56
|
+
navigationIcon != null && /* @__PURE__ */ jsx("div", {
|
|
57
|
+
"data-slot": "navigation",
|
|
58
|
+
className: styles.navigation({ class: classNames?.navigation }),
|
|
59
|
+
children: navigationIcon
|
|
60
|
+
}),
|
|
61
|
+
/* @__PURE__ */ jsxs("div", {
|
|
62
|
+
"aria-hidden": hideTopTitle || void 0,
|
|
63
|
+
className: styles.title({ class: classNames?.title }),
|
|
64
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
65
|
+
"data-slot": "title",
|
|
66
|
+
className: styles.titleText({ class: classNames?.titleText }),
|
|
67
|
+
children: title
|
|
68
|
+
}), subtitle != null && /* @__PURE__ */ jsx("div", {
|
|
69
|
+
"data-slot": "subtitle",
|
|
70
|
+
className: styles.subtitleText({ class: classNames?.subtitleText }),
|
|
71
|
+
children: subtitle
|
|
72
|
+
})]
|
|
73
|
+
}),
|
|
74
|
+
actions != null && /* @__PURE__ */ jsx("div", {
|
|
75
|
+
"data-slot": "actions",
|
|
76
|
+
className: styles.actions({ class: classNames?.actions }),
|
|
77
|
+
children: actions
|
|
78
|
+
})
|
|
79
|
+
]
|
|
80
|
+
}),
|
|
81
|
+
twoRows && /* @__PURE__ */ jsxs("div", {
|
|
82
|
+
ref: expandedRowRef,
|
|
83
|
+
"aria-hidden": !hideTopTitle || void 0,
|
|
84
|
+
className: styles.expandedRow({ class: classNames?.expandedRow }),
|
|
85
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
86
|
+
className: styles.expandedTitle({ class: classNames?.expandedTitle }),
|
|
87
|
+
children: title
|
|
88
|
+
}), subtitle != null && /* @__PURE__ */ jsx("div", {
|
|
89
|
+
className: styles.expandedSubtitle({ class: classNames?.expandedSubtitle }),
|
|
90
|
+
children: subtitle
|
|
91
|
+
})]
|
|
92
|
+
}),
|
|
93
|
+
bottom != null && /* @__PURE__ */ jsx("div", {
|
|
94
|
+
className: styles.bottom({ class: classNames?.bottom }),
|
|
95
|
+
children: bottom
|
|
96
|
+
})
|
|
97
|
+
] })
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
//#endregion
|
|
101
|
+
export { TopAppBar };
|
|
102
|
+
|
|
103
|
+
//# sourceMappingURL=TopAppBar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TopAppBar.js","names":[],"sources":["../../../src/components/app-bar/TopAppBar.tsx"],"sourcesContent":["'use client';\n\nimport { useRef, type ComponentPropsWithRef, type ReactNode, type RefObject } from 'react';\nimport { useObjectRef } from 'react-aria';\nimport { cn } from '../../utils/cn';\nimport { AppBarItems } from './AppBarItems';\nimport { topAppBarStyles, type TopAppBarTitleAlign, type TopAppBarVariant } from './app-bar-styles';\nimport { useAppBarScroll, type TopAppBarScrollBehavior } from './use-app-bar-scroll';\nimport { mergeDataTokens } from '../../utils/merge-data-tokens';\n\nexport interface TopAppBarClassNames {\n /** The `<header>` container, merged with `className`. */\n root?: string;\n /** The 64px top row. */\n row?: string;\n /** The leading slot holding `navigationIcon`. */\n navigation?: string;\n /** The top row's title block. */\n title?: string;\n /** The top row's title text. */\n titleText?: string;\n /** The top row's subtitle text. */\n subtitleText?: string;\n /** The trailing slot holding `actions`. */\n actions?: string;\n /** The expanded title row of medium and large bars. */\n expandedRow?: string;\n /** The expanded row's title text. */\n expandedTitle?: string;\n /** The expanded row's subtitle text. */\n expandedSubtitle?: string;\n /** The accessory row below the title rows (`bottom`). */\n bottom?: string;\n}\n\ninterface TopAppBarOwnProps {\n /**\n * `small` is a 64px single row; `medium` and `large` are Compose's flexible two-row bars\n * (112 / 120px, 136 / 152px with a subtitle) that collapse to 64px. @default \"small\"\n */\n variant?: TopAppBarVariant;\n /** The title, e.g. the screen's name. Wrap it in a heading element if it names the page. */\n title: ReactNode;\n /** A second line under the title, e.g. the current section. */\n subtitle?: ReactNode;\n /** Align the title (and subtitle) to the start, or centre it. @default \"start\" */\n titleAlign?: TopAppBarTitleAlign;\n /** A leading control, usually a back or menu `IconButton`. */\n navigationIcon?: ReactNode;\n /** Trailing controls, usually `IconButton`s. */\n actions?: ReactNode;\n /**\n * Respond to content scrolling under the bar: it sticks to the top, turns\n * `surface-container`, and (for `enter-always` / `exit-until-collapsed`) collapses.\n * Leave it out for a static bar positioned by the consumer.\n */\n scrollBehavior?: TopAppBarScrollBehavior;\n /** The scroll container the bar responds to. Defaults to the window. */\n scrollRef?: RefObject<HTMLElement | null>;\n /**\n * An accessory row below the title rows, such as a row of filter chips or tabs (M3: app\n * bars \"can animate on and off screen with another bar of controls, like a row of chips\").\n * It's part of the bar: it takes the bar's colour, stays below the collapsed top row of\n * a medium or large bar, and hides and comes back with the bar under `enter-always` and\n * a small bar's `exit-until-collapsed`. Give it its own padding.\n */\n bottom?: ReactNode;\n /**\n * The container's colour once content scrolls under the bar. `container` fills it with\n * `surface-container` (M3's default); `transparent` lets the content show through (M3:\n * \"consider setting the app bar container to be transparent on scroll\"); give the icon\n * buttons a container fill then (e.g. `variant=\"tonal\"`), so they stay legible over the\n * content.\n * @default \"container\"\n */\n scrolledColor?: TopAppBarScrolledColor;\n /** Classes for each part, by slot. */\n classNames?: TopAppBarClassNames;\n}\n\n/** The colour a {@link TopAppBar} takes when content scrolls under it. */\nexport type TopAppBarScrolledColor = 'container' | 'transparent';\n\nexport type TopAppBarProps = TopAppBarOwnProps &\n Omit<ComponentPropsWithRef<'header'>, keyof TopAppBarOwnProps | 'children'>;\n\n/**\n * M3 Expressive top app bar: a small 64px bar, or the medium and large flexible bars whose\n * large title collapses into the top row as the page scrolls. Titles can be centred and\n * have a subtitle.\n *\n * @example\n * <TopAppBar title={<h1>Inbox</h1>} subtitle=\"3 unread\" variant=\"medium\"\n * scrollBehavior=\"exit-until-collapsed\"\n * navigationIcon={<IconButton icon={<MenuIcon />} aria-label=\"Menu\" />}\n * actions={<IconButton icon={<SearchIcon />} aria-label=\"Search\" />} />\n */\nexport function TopAppBar({\n variant = 'small',\n title,\n subtitle,\n titleAlign = 'start',\n navigationIcon,\n actions,\n scrollBehavior,\n scrollRef,\n bottom,\n scrolledColor = 'container',\n classNames,\n className,\n ref,\n ...rest\n}: TopAppBarProps) {\n const rootRef = useObjectRef(ref);\n const expandedRowRef = useRef<HTMLDivElement>(null);\n const twoRows = variant !== 'small';\n const scroll = useAppBarScroll({\n behavior: scrollBehavior,\n rootRef,\n collapsibleRef: twoRows ? expandedRowRef : rootRef,\n scrollRef,\n twoRows,\n });\n const styles = topAppBarStyles({\n variant,\n titleAlign,\n hasNavigation: navigationIcon != null,\n hasSubtitle: subtitle != null,\n scrolling: scrollBehavior != null,\n pinned: scrollBehavior === 'pinned',\n twoRows,\n scrolledColor,\n });\n // Only one of a two-row bar's titles is announced: the expanded one until it is half collapsed.\n const hideTopTitle = twoRows && !scroll.collapsed;\n\n return (\n <header\n {...rest}\n ref={rootRef}\n data-tokens={mergeDataTokens('md-comp-app-bar', rest)}\n data-variant={variant}\n data-scrolled={scroll.scrolled || undefined}\n data-collapsed={scroll.collapsed || undefined}\n className={styles.root({ class: cn(classNames?.root, className) })}\n >\n <AppBarItems>\n <div className={styles.row({ class: classNames?.row })}>\n {navigationIcon != null && (\n <div\n data-slot=\"navigation\"\n className={styles.navigation({ class: classNames?.navigation })}\n >\n {navigationIcon}\n </div>\n )}\n <div\n aria-hidden={hideTopTitle || undefined}\n className={styles.title({ class: classNames?.title })}\n >\n <div data-slot=\"title\" className={styles.titleText({ class: classNames?.titleText })}>\n {title}\n </div>\n {subtitle != null && (\n <div\n data-slot=\"subtitle\"\n className={styles.subtitleText({ class: classNames?.subtitleText })}\n >\n {subtitle}\n </div>\n )}\n </div>\n {actions != null && (\n <div data-slot=\"actions\" className={styles.actions({ class: classNames?.actions })}>\n {actions}\n </div>\n )}\n </div>\n {twoRows && (\n <div\n ref={expandedRowRef}\n aria-hidden={!hideTopTitle || undefined}\n className={styles.expandedRow({ class: classNames?.expandedRow })}\n >\n <div className={styles.expandedTitle({ class: classNames?.expandedTitle })}>\n {title}\n </div>\n {subtitle != null && (\n <div className={styles.expandedSubtitle({ class: classNames?.expandedSubtitle })}>\n {subtitle}\n </div>\n )}\n </div>\n )}\n {bottom != null && (\n <div className={styles.bottom({ class: classNames?.bottom })}>{bottom}</div>\n )}\n </AppBarItems>\n </header>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAiGA,SAAgB,UAAU,EACxB,UAAU,SACV,OACA,UACA,aAAa,SACb,gBACA,SACA,gBACA,WACA,QACA,gBAAgB,aAChB,YACA,WACA,KACA,GAAG,QACc;CACjB,MAAM,UAAU,aAAa,GAAG;CAChC,MAAM,iBAAiB,OAAuB,IAAI;CAClD,MAAM,UAAU,YAAY;CAC5B,MAAM,SAAS,gBAAgB;EAC7B,UAAU;EACV;EACA,gBAAgB,UAAU,iBAAiB;EAC3C;EACA;CACF,CAAC;CACD,MAAM,SAAS,gBAAgB;EAC7B;EACA;EACA,eAAe,kBAAkB;EACjC,aAAa,YAAY;EACzB,WAAW,kBAAkB;EAC7B,QAAQ,mBAAmB;EAC3B;EACA;CACF,CAAC;CAED,MAAM,eAAe,WAAW,CAAC,OAAO;CAExC,OACE,oBAAC,UAAD;EACE,GAAI;EACJ,KAAK;EACL,eAAa,gBAAgB,mBAAmB,IAAI;EACpD,gBAAc;EACd,iBAAe,OAAO,YAAY,KAAA;EAClC,kBAAgB,OAAO,aAAa,KAAA;EACpC,WAAW,OAAO,KAAK,EAAE,OAAO,GAAG,YAAY,MAAM,SAAS,EAAE,CAAC;EAEjE,UAAA,qBAAC,aAAD,EAAA,UAAA;GACE,qBAAC,OAAD;IAAK,WAAW,OAAO,IAAI,EAAE,OAAO,YAAY,IAAI,CAAC;IAArD,UAAA;KACG,kBAAkB,QACjB,oBAAC,OAAD;MACE,aAAU;MACV,WAAW,OAAO,WAAW,EAAE,OAAO,YAAY,WAAW,CAAC;MAE7D,UAAA;KACE,CAAA;KAEP,qBAAC,OAAD;MACE,eAAa,gBAAgB,KAAA;MAC7B,WAAW,OAAO,MAAM,EAAE,OAAO,YAAY,MAAM,CAAC;MAFtD,UAAA,CAIE,oBAAC,OAAD;OAAK,aAAU;OAAQ,WAAW,OAAO,UAAU,EAAE,OAAO,YAAY,UAAU,CAAC;OAChF,UAAA;MACE,CAAA,GACJ,YAAY,QACX,oBAAC,OAAD;OACE,aAAU;OACV,WAAW,OAAO,aAAa,EAAE,OAAO,YAAY,aAAa,CAAC;OAEjE,UAAA;MACE,CAAA,CAEJ;;KACJ,WAAW,QACV,oBAAC,OAAD;MAAK,aAAU;MAAU,WAAW,OAAO,QAAQ,EAAE,OAAO,YAAY,QAAQ,CAAC;MAC9E,UAAA;KACE,CAAA;IAEJ;;GACJ,WACC,qBAAC,OAAD;IACE,KAAK;IACL,eAAa,CAAC,gBAAgB,KAAA;IAC9B,WAAW,OAAO,YAAY,EAAE,OAAO,YAAY,YAAY,CAAC;IAHlE,UAAA,CAKE,oBAAC,OAAD;KAAK,WAAW,OAAO,cAAc,EAAE,OAAO,YAAY,cAAc,CAAC;KACtE,UAAA;IACE,CAAA,GACJ,YAAY,QACX,oBAAC,OAAD;KAAK,WAAW,OAAO,iBAAiB,EAAE,OAAO,YAAY,iBAAiB,CAAC;KAC5E,UAAA;IACE,CAAA,CAEJ;;GAEN,UAAU,QACT,oBAAC,OAAD;IAAK,WAAW,OAAO,OAAO,EAAE,OAAO,YAAY,OAAO,CAAC;IAAI,UAAA;GAAY,CAAA;EAElE,EAAA,CAAA;CACP,CAAA;AAEZ"}
|