mtrl 0.10.0-next.2 → 0.10.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/README.md +130 -88
- package/dist/README.md +130 -88
- package/dist/components/badge/features.js +1 -1
- package/dist/components/bottom-sheet/api.d.ts +4 -3
- package/dist/components/bottom-sheet/config.js +11 -4
- package/dist/components/bottom-sheet/constants.d.ts +0 -2
- package/dist/components/bottom-sheet/constants.js +0 -1
- package/dist/components/bottom-sheet/features/drag.d.ts +3 -0
- package/dist/components/bottom-sheet/features/drag.js +23 -0
- package/dist/components/bottom-sheet/features/state.js +58 -2
- package/dist/components/bottom-sheet/features/structure.js +9 -4
- package/dist/components/bottom-sheet/types.d.ts +15 -2
- package/dist/components/button/features/progress.js +5 -3
- package/dist/components/button-group/button-group.js +3 -1
- package/dist/components/button-group/config.d.ts +8 -8
- package/dist/components/button-group/config.js +3 -2
- package/dist/components/button-group/constants.d.ts +7 -2
- package/dist/components/button-group/constants.js +5 -5
- package/dist/components/button-group/types.d.ts +5 -0
- package/dist/components/card/api.d.ts +4 -0
- package/dist/components/card/api.js +8 -0
- package/dist/components/card/card.js +1 -2
- package/dist/components/card/config.js +2 -14
- package/dist/components/card/content.js +1 -6
- package/dist/components/card/features.d.ts +5 -19
- package/dist/components/card/features.js +1 -11
- package/dist/components/card/index.d.ts +1 -1
- package/dist/components/card/types.d.ts +34 -3
- package/dist/components/carousel/features/scroll.js +7 -3
- package/dist/components/checkbox/config.js +18 -6
- package/dist/components/chips/api.js +1 -1
- package/dist/components/chips/config.js +1 -1
- package/dist/components/chips/features/controller.js +14 -7
- package/dist/components/chips/index.d.ts +1 -1
- package/dist/components/chips/types.d.ts +24 -5
- package/dist/components/datepicker/datepicker.d.ts +8 -2
- package/dist/components/datepicker/datepicker.js +71 -30
- package/dist/components/datepicker/index.d.ts +1 -1
- package/dist/components/datepicker/types.d.ts +63 -30
- package/dist/components/datepicker/utils.d.ts +5 -0
- package/dist/components/datepicker/utils.js +2 -0
- package/dist/components/dialog/api.js +5 -0
- package/dist/components/dialog/config.js +8 -2
- package/dist/components/dialog/features.js +94 -26
- package/dist/components/dialog/types.d.ts +15 -2
- package/dist/components/divider/features.js +3 -2
- package/dist/components/drawer/config.js +9 -2
- package/dist/components/drawer/features/items.js +3 -1
- package/dist/components/drawer/features/state.js +50 -9
- package/dist/components/drawer/types.d.ts +18 -0
- package/dist/components/extended-fab/api.d.ts +2 -0
- package/dist/components/extended-fab/api.js +2 -0
- package/dist/components/extended-fab/types.d.ts +6 -2
- package/dist/components/fab-menu/config.d.ts +11 -0
- package/dist/components/fab-menu/config.js +15 -0
- package/dist/components/fab-menu/constants.d.ts +59 -0
- package/dist/components/fab-menu/constants.js +30 -0
- package/dist/components/fab-menu/fab-menu.d.ts +40 -0
- package/dist/components/fab-menu/fab-menu.js +315 -0
- package/dist/components/fab-menu/index.d.ts +6 -0
- package/dist/components/fab-menu/index.js +4 -0
- package/dist/components/fab-menu/stagger.d.ts +10 -0
- package/dist/components/fab-menu/stagger.js +24 -0
- package/dist/components/fab-menu/types.d.ts +110 -0
- package/dist/components/fab-menu/types.js +1 -0
- package/dist/components/icon-button/features/toggle.d.ts +1 -0
- package/dist/components/icon-button/features/toggle.js +1 -0
- package/dist/components/icon-button/icon-button.d.ts +2 -2
- package/dist/components/icon-button/index.d.ts +2 -2
- package/dist/components/icon-button/types.d.ts +9 -2
- package/dist/components/index.d.ts +4 -0
- package/dist/components/index.js +2 -0
- package/dist/components/list/api.d.ts +2 -2
- package/dist/components/list/features/renderer.js +2 -1
- package/dist/components/list/features/selection.js +1 -1
- package/dist/components/list/types.d.ts +5 -0
- package/dist/components/menu/config.js +6 -1
- package/dist/components/menu/features/controller.d.ts +2 -0
- package/dist/components/menu/features/controller.js +58 -41
- package/dist/components/menu/features/index.d.ts +1 -2
- package/dist/components/menu/features/index.js +1 -2
- package/dist/components/menu/features/keyboard.js +3 -2
- package/dist/components/menu/features/layer.d.ts +15 -0
- package/dist/components/menu/features/layer.js +16 -0
- package/dist/components/menu/features/loader.d.ts +35 -0
- package/dist/components/menu/features/loader.js +64 -0
- package/dist/components/menu/features/opener.js +2 -1
- package/dist/components/menu/features/position.js +40 -38
- package/dist/components/menu/features/submenu.js +12 -4
- package/dist/components/menu/menu.js +2 -2
- package/dist/components/menu/types.d.ts +22 -2
- package/dist/components/navigation-rail/navigation-rail.js +5 -4
- package/dist/components/navigation-rail/types.d.ts +2 -0
- package/dist/components/progress/api.d.ts +4 -0
- package/dist/components/progress/api.js +17 -10
- package/dist/components/progress/config.js +3 -11
- package/dist/components/progress/features/canvas.d.ts +1 -0
- package/dist/components/progress/features/canvas.js +1 -1
- package/dist/components/progress/features/circular.js +7 -1
- package/dist/components/progress/features/state.js +5 -3
- package/dist/components/progress/index.d.ts +1 -1
- package/dist/components/progress/types.d.ts +21 -12
- package/dist/components/radios/radio.js +1 -3
- package/dist/components/search/api.d.ts +10 -2
- package/dist/components/search/api.js +18 -10
- package/dist/components/search/config.d.ts +19 -3
- package/dist/components/search/config.js +11 -2
- package/dist/components/search/constants.d.ts +11 -0
- package/dist/components/search/constants.js +9 -0
- package/dist/components/search/features/input.js +12 -3
- package/dist/components/search/features/states.d.ts +4 -2
- package/dist/components/search/features/states.js +98 -16
- package/dist/components/search/features/structure.d.ts +7 -20
- package/dist/components/search/features/structure.js +79 -29
- package/dist/components/search/features/suggestions.d.ts +2 -1
- package/dist/components/search/features/suggestions.js +22 -6
- package/dist/components/search/index.d.ts +1 -1
- package/dist/components/search/types.d.ts +25 -2
- package/dist/components/segmented-button/config.d.ts +1 -1
- package/dist/components/segmented-button/segmented-button.js +1 -43
- package/dist/components/segmented-button/types.d.ts +3 -3
- package/dist/components/select/features.js +8 -18
- package/dist/components/select/types.d.ts +7 -0
- package/dist/components/side-sheet/api.d.ts +4 -3
- package/dist/components/side-sheet/config.js +11 -3
- package/dist/components/side-sheet/features/state.js +57 -2
- package/dist/components/side-sheet/features/structure.js +1 -1
- package/dist/components/side-sheet/types.d.ts +12 -0
- package/dist/components/slider/api.js +2 -2
- package/dist/components/slider/features/controller.d.ts +14 -14
- package/dist/components/slider/features/controller.js +2 -2
- package/dist/components/slider/features/handlers.js +2 -1
- package/dist/components/slider/features/tracks.d.ts +0 -9
- package/dist/components/slider/features/tracks.js +3 -1
- package/dist/components/slider/types.d.ts +2 -2
- package/dist/components/snackbar/api.js +28 -4
- package/dist/components/snackbar/config.d.ts +1 -0
- package/dist/components/snackbar/config.js +8 -1
- package/dist/components/snackbar/layer.d.ts +23 -0
- package/dist/components/snackbar/layer.js +85 -0
- package/dist/components/snackbar/types.d.ts +12 -0
- package/dist/components/split-button/api.js +2 -1
- package/dist/components/split-button/features/menu.js +1 -0
- package/dist/components/split-button/types.d.ts +8 -0
- package/dist/components/switch/api.js +7 -0
- package/dist/components/switch/features.d.ts +4 -0
- package/dist/components/switch/features.js +9 -2
- package/dist/components/switch/types.d.ts +6 -0
- package/dist/components/tabs/api.js +0 -9
- package/dist/components/tabs/types.d.ts +1 -1
- package/dist/components/textfield/api.d.ts +1 -0
- package/dist/components/textfield/api.js +4 -1
- package/dist/components/textfield/constants.d.ts +5 -1
- package/dist/components/textfield/features/counter.d.ts +29 -0
- package/dist/components/textfield/features/counter.js +54 -0
- package/dist/components/textfield/features/field.d.ts +37 -0
- package/dist/components/textfield/features/field.js +39 -0
- package/dist/components/textfield/features/index.d.ts +4 -0
- package/dist/components/textfield/features/index.js +2 -0
- package/dist/components/textfield/features/leading-icon.js +2 -1
- package/dist/components/textfield/features/placement.js +65 -60
- package/dist/components/textfield/features/prefix-text.js +2 -1
- package/dist/components/textfield/features/suffix-text.js +2 -1
- package/dist/components/textfield/features/supporting-text.js +16 -33
- package/dist/components/textfield/features/trailing-icon.js +2 -1
- package/dist/components/textfield/textfield.js +2 -2
- package/dist/components/textfield/types.d.ts +7 -0
- package/dist/components/timepicker/api.js +67 -20
- package/dist/components/timepicker/config.d.ts +3 -1085
- package/dist/components/timepicker/config.js +3 -35
- package/dist/components/timepicker/constants.d.ts +21 -11
- package/dist/components/timepicker/constants.js +4 -3
- package/dist/components/timepicker/dial.d.ts +8 -3
- package/dist/components/timepicker/dial.js +8 -2
- package/dist/components/timepicker/index.d.ts +2 -1
- package/dist/components/timepicker/render.js +91 -103
- package/dist/components/timepicker/timepicker.js +2 -2
- package/dist/components/timepicker/types.d.ts +61 -18
- package/dist/components/timepicker/utils.d.ts +20 -53
- package/dist/components/timepicker/utils.js +36 -86
- package/dist/components/toolbar/config.d.ts +19 -0
- package/dist/components/toolbar/config.js +46 -0
- package/dist/components/toolbar/constants.d.ts +66 -0
- package/dist/components/toolbar/constants.js +32 -0
- package/dist/components/toolbar/index.d.ts +6 -0
- package/dist/components/toolbar/index.js +4 -0
- package/dist/components/toolbar/toolbar.d.ts +29 -0
- package/dist/components/toolbar/toolbar.js +204 -0
- package/dist/components/toolbar/types.d.ts +152 -0
- package/dist/components/toolbar/types.js +1 -0
- package/dist/components/tooltip/api.js +34 -3
- package/dist/components/tooltip/config.js +8 -1
- package/dist/components/tooltip/types.d.ts +15 -2
- package/dist/core/compose/features/checkable.d.ts +3 -6
- package/dist/core/compose/features/checkable.js +4 -20
- package/dist/core/compose/features/disabled.js +14 -14
- package/dist/core/compose/features/events.d.ts +16 -4
- package/dist/core/compose/features/input.js +1 -4
- package/dist/core/compose/features/textinput.js +18 -18
- package/dist/core/compose/features/textlabel.js +6 -7
- package/dist/core/dom/focus.d.ts +36 -0
- package/dist/core/dom/focus.js +47 -0
- package/dist/core/dom/index.d.ts +5 -0
- package/dist/core/dom/index.js +3 -0
- package/dist/core/dom/layer.d.ts +66 -0
- package/dist/core/dom/layer.js +78 -0
- package/dist/core/dom/roving.d.ts +30 -0
- package/dist/core/dom/roving.js +75 -0
- package/dist/core/index.d.ts +2 -0
- package/dist/core/index.js +1 -0
- package/dist/core/state/emitter.d.ts +8 -2
- package/dist/core/state/events.d.ts +4 -3
- package/dist/core/theme/index.d.ts +7 -0
- package/dist/core/theme/index.js +2 -0
- package/dist/core/theme/shape.d.ts +9 -0
- package/dist/core/theme/shape.js +1 -0
- package/dist/core/theme/tokens.d.ts +45 -0
- package/dist/core/theme/tokens.js +36 -0
- package/dist/core/utils/theme.d.ts +7 -2
- package/dist/core/utils/theme.js +21 -23
- package/dist/core/utils/warn.d.ts +8 -0
- package/dist/core/utils/warn.js +5 -0
- package/dist/elements/adapter.d.ts +3 -0
- package/dist/elements/adapter.js +3 -0
- package/dist/elements/badge.d.ts +8 -0
- package/dist/elements/bottom-app-bar.d.ts +55 -0
- package/dist/elements/bottom-app-bar.js +43 -0
- package/dist/elements/bottom-sheet.d.ts +130 -0
- package/dist/elements/bottom-sheet.js +96 -0
- package/dist/elements/button-group.d.ts +162 -0
- package/dist/elements/button-group.js +174 -0
- package/dist/elements/button.d.ts +8 -0
- package/dist/elements/card.d.ts +77 -0
- package/dist/elements/card.js +113 -0
- package/dist/elements/carousel.d.ts +132 -0
- package/dist/elements/carousel.js +117 -0
- package/dist/elements/checkbox.d.ts +8 -0
- package/dist/elements/chips.d.ts +146 -0
- package/dist/elements/chips.js +212 -0
- package/dist/elements/css/badge.js +3 -2
- package/dist/elements/css/bottom-app-bar.d.ts +1 -0
- package/dist/elements/css/bottom-app-bar.js +4 -0
- package/dist/elements/css/bottom-sheet.d.ts +1 -0
- package/dist/elements/css/bottom-sheet.js +4 -0
- package/dist/elements/css/button-group.d.ts +1 -0
- package/dist/elements/css/button-group.js +6 -0
- package/dist/elements/css/button.js +3 -2
- package/dist/elements/css/card.d.ts +1 -0
- package/dist/elements/css/card.js +5 -0
- package/dist/elements/css/carousel.d.ts +1 -0
- package/dist/elements/css/carousel.js +4 -0
- package/dist/elements/css/checkbox.js +3 -2
- package/dist/elements/css/chips.d.ts +1 -0
- package/dist/elements/css/chips.js +4 -0
- package/dist/elements/css/datepicker.d.ts +1 -0
- package/dist/elements/css/datepicker.js +4 -0
- package/dist/elements/css/dialog.d.ts +1 -0
- package/dist/elements/css/dialog.js +6 -0
- package/dist/elements/css/divider.js +2 -1
- package/dist/elements/css/drawer.d.ts +1 -0
- package/dist/elements/css/drawer.js +4 -0
- package/dist/elements/css/extended-fab.js +3 -2
- package/dist/elements/css/fab-menu.d.ts +1 -0
- package/dist/elements/css/fab-menu.js +6 -0
- package/dist/elements/css/fab.js +3 -2
- package/dist/elements/css/icon-button.js +3 -2
- package/dist/elements/css/index.js +22 -0
- package/dist/elements/css/list.d.ts +1 -0
- package/dist/elements/css/list.js +4 -0
- package/dist/elements/css/loading-indicator.js +3 -2
- package/dist/elements/css/menu.d.ts +1 -0
- package/dist/elements/css/menu.js +4 -0
- package/dist/elements/css/navigation-rail.d.ts +1 -0
- package/dist/elements/css/navigation-rail.js +4 -0
- package/dist/elements/css/progress.js +3 -2
- package/dist/elements/css/radios.js +3 -2
- package/dist/elements/css/search.d.ts +1 -0
- package/dist/elements/css/search.js +4 -0
- package/dist/elements/css/select.d.ts +1 -0
- package/dist/elements/css/select.js +6 -0
- package/dist/elements/css/side-sheet.d.ts +1 -0
- package/dist/elements/css/side-sheet.js +4 -0
- package/dist/elements/css/slider.js +3 -2
- package/dist/elements/css/snackbar.d.ts +1 -0
- package/dist/elements/css/snackbar.js +6 -0
- package/dist/elements/css/split-button.d.ts +1 -0
- package/dist/elements/css/split-button.js +6 -0
- package/dist/elements/css/switch.js +3 -2
- package/dist/elements/css/tabs.js +3 -2
- package/dist/elements/css/textfield.js +3 -2
- package/dist/elements/css/timepicker.d.ts +1 -0
- package/dist/elements/css/timepicker.js +4 -0
- package/dist/elements/css/toolbar.d.ts +1 -0
- package/dist/elements/css/toolbar.js +6 -0
- package/dist/elements/css/tooltip.d.ts +1 -0
- package/dist/elements/css/tooltip.js +4 -0
- package/dist/elements/css/top-app-bar.d.ts +1 -0
- package/dist/elements/css/top-app-bar.js +4 -0
- package/dist/elements/datepicker.d.ts +163 -0
- package/dist/elements/datepicker.js +120 -0
- package/dist/elements/define.d.ts +37 -2
- package/dist/elements/define.js +105 -18
- package/dist/elements/dialog.d.ts +127 -0
- package/dist/elements/dialog.js +156 -0
- package/dist/elements/divider.d.ts +8 -0
- package/dist/elements/drawer.d.ts +147 -0
- package/dist/elements/drawer.js +136 -0
- package/dist/elements/extended-fab.d.ts +16 -0
- package/dist/elements/extended-fab.js +4 -0
- package/dist/elements/fab-menu.d.ts +112 -0
- package/dist/elements/fab-menu.js +68 -0
- package/dist/elements/fab.d.ts +8 -0
- package/dist/elements/icon-button.d.ts +17 -1
- package/dist/elements/icon-button.js +6 -4
- package/dist/elements/index.d.ts +327 -1
- package/dist/elements/index.js +98 -0
- package/dist/elements/list.d.ts +144 -0
- package/dist/elements/list.js +191 -0
- package/dist/elements/loading-indicator.d.ts +8 -0
- package/dist/elements/menu.d.ts +174 -0
- package/dist/elements/menu.js +178 -0
- package/dist/elements/navigation-rail.d.ts +164 -0
- package/dist/elements/navigation-rail.js +130 -0
- package/dist/elements/preupgrade.css +2 -0
- package/dist/elements/preupgrade.css.d.ts +1 -0
- package/dist/elements/preupgrade.d.ts +2 -0
- package/dist/elements/preupgrade.js +4 -0
- package/dist/elements/progress.d.ts +8 -0
- package/dist/elements/radios.d.ts +9 -0
- package/dist/elements/search.d.ts +225 -0
- package/dist/elements/search.js +215 -0
- package/dist/elements/select.d.ts +143 -0
- package/dist/elements/select.js +149 -0
- package/dist/elements/sheet.d.ts +44 -0
- package/dist/elements/sheet.js +60 -0
- package/dist/elements/side-sheet.d.ts +100 -0
- package/dist/elements/side-sheet.js +64 -0
- package/dist/elements/slider.d.ts +9 -0
- package/dist/elements/snackbar.d.ts +107 -0
- package/dist/elements/snackbar.js +54 -0
- package/dist/elements/split-button.d.ts +90 -0
- package/dist/elements/split-button.js +77 -0
- package/dist/elements/styles.d.ts +18 -0
- package/dist/elements/styles.js +41 -0
- package/dist/elements/switch.d.ts +10 -0
- package/dist/elements/switch.js +2 -2
- package/dist/elements/tabs.d.ts +9 -0
- package/dist/elements/textfield.d.ts +11 -1
- package/dist/elements/textfield.js +1 -6
- package/dist/elements/timepicker.d.ts +167 -0
- package/dist/elements/timepicker.js +159 -0
- package/dist/elements/toolbar.d.ts +103 -0
- package/dist/elements/toolbar.js +77 -0
- package/dist/elements/tooltip.d.ts +97 -0
- package/dist/elements/tooltip.js +132 -0
- package/dist/elements/top-app-bar.d.ts +72 -0
- package/dist/elements/top-app-bar.js +95 -0
- package/dist/index.cjs +0 -0
- package/dist/package.json +16 -2
- package/dist/react/badge.d.ts +4 -0
- package/dist/react/badge.js +7 -0
- package/dist/react/bottom-app-bar.d.ts +4 -0
- package/dist/react/bottom-app-bar.js +7 -0
- package/dist/react/bottom-sheet.d.ts +4 -0
- package/dist/react/bottom-sheet.js +7 -0
- package/dist/react/button-group-item.d.ts +3 -0
- package/dist/react/button-group-item.js +6 -0
- package/dist/react/button-group.d.ts +7 -0
- package/dist/react/button-group.js +10 -0
- package/dist/react/button.d.ts +5 -0
- package/dist/react/button.js +8 -0
- package/dist/react/card.d.ts +4 -0
- package/dist/react/card.js +7 -0
- package/dist/react/carousel-item.d.ts +3 -0
- package/dist/react/carousel-item.js +6 -0
- package/dist/react/carousel.d.ts +4 -0
- package/dist/react/carousel.js +7 -0
- package/dist/react/checkbox.d.ts +4 -0
- package/dist/react/checkbox.js +7 -0
- package/dist/react/chip.d.ts +3 -0
- package/dist/react/chip.js +6 -0
- package/dist/react/chips.d.ts +4 -0
- package/dist/react/chips.js +7 -0
- package/dist/react/create.d.ts +11 -2
- package/dist/react/create.js +12 -2
- package/dist/react/datepicker.d.ts +4 -0
- package/dist/react/datepicker.js +7 -0
- package/dist/react/dialog.d.ts +4 -0
- package/dist/react/dialog.js +7 -0
- package/dist/react/divider.d.ts +4 -0
- package/dist/react/divider.js +7 -0
- package/dist/react/drawer-item.d.ts +3 -0
- package/dist/react/drawer-item.js +6 -0
- package/dist/react/drawer.d.ts +4 -0
- package/dist/react/drawer.js +7 -0
- package/dist/react/extended-fab.d.ts +4 -0
- package/dist/react/extended-fab.js +7 -0
- package/dist/react/fab-menu-item.d.ts +3 -0
- package/dist/react/fab-menu-item.js +6 -0
- package/dist/react/fab-menu.d.ts +6 -0
- package/dist/react/fab-menu.js +9 -0
- package/dist/react/fab.d.ts +4 -0
- package/dist/react/fab.js +7 -0
- package/dist/react/icon-button.d.ts +4 -0
- package/dist/react/icon-button.js +7 -0
- package/dist/react/index.d.ts +48 -32
- package/dist/react/index.js +48 -32
- package/dist/react/jsx.d.ts +74 -0
- package/dist/react/jsx.js +2 -0
- package/dist/react/list-item.d.ts +3 -0
- package/dist/react/list-item.js +6 -0
- package/dist/react/list.d.ts +4 -0
- package/dist/react/list.js +7 -0
- package/dist/react/loading-indicator.d.ts +4 -0
- package/dist/react/loading-indicator.js +7 -0
- package/dist/react/menu-item.d.ts +3 -0
- package/dist/react/menu-item.js +6 -0
- package/dist/react/menu.d.ts +4 -0
- package/dist/react/menu.js +7 -0
- package/dist/react/navigation-rail-item.d.ts +3 -0
- package/dist/react/navigation-rail-item.js +6 -0
- package/dist/react/navigation-rail.d.ts +4 -0
- package/dist/react/navigation-rail.js +7 -0
- package/dist/react/progress.d.ts +4 -0
- package/dist/react/progress.js +7 -0
- package/dist/react/radio.d.ts +3 -0
- package/dist/react/radio.js +6 -0
- package/dist/react/radios.d.ts +4 -0
- package/dist/react/radios.js +7 -0
- package/dist/react/search-suggestion.d.ts +3 -0
- package/dist/react/search-suggestion.js +6 -0
- package/dist/react/search.d.ts +4 -0
- package/dist/react/search.js +7 -0
- package/dist/react/select-option.d.ts +3 -0
- package/dist/react/select-option.js +6 -0
- package/dist/react/select.d.ts +6 -0
- package/dist/react/select.js +9 -0
- package/dist/react/side-sheet.d.ts +4 -0
- package/dist/react/side-sheet.js +7 -0
- package/dist/react/slider.d.ts +4 -0
- package/dist/react/slider.js +7 -0
- package/dist/react/snackbar.d.ts +7 -0
- package/dist/react/snackbar.js +10 -0
- package/dist/react/split-button.d.ts +7 -0
- package/dist/react/split-button.js +10 -0
- package/dist/react/switch.d.ts +4 -0
- package/dist/react/switch.js +7 -0
- package/dist/react/tab.d.ts +3 -0
- package/dist/react/tab.js +6 -0
- package/dist/react/tabs.d.ts +7 -0
- package/dist/react/tabs.js +10 -0
- package/dist/react/textfield.d.ts +4 -0
- package/dist/react/textfield.js +7 -0
- package/dist/react/timepicker.d.ts +4 -0
- package/dist/react/timepicker.js +7 -0
- package/dist/react/toolbar.d.ts +5 -0
- package/dist/react/toolbar.js +8 -0
- package/dist/react/tooltip.d.ts +4 -0
- package/dist/react/tooltip.js +7 -0
- package/dist/react/top-app-bar.d.ts +4 -0
- package/dist/react/top-app-bar.js +7 -0
- package/dist/solid/badge.d.ts +4 -0
- package/dist/solid/badge.js +6 -0
- package/dist/solid/bottom-app-bar.d.ts +4 -0
- package/dist/solid/bottom-app-bar.js +6 -0
- package/dist/solid/bottom-sheet.d.ts +4 -0
- package/dist/solid/bottom-sheet.js +6 -0
- package/dist/solid/button-group-item.d.ts +3 -0
- package/dist/solid/button-group-item.js +5 -0
- package/dist/solid/button-group.d.ts +7 -0
- package/dist/solid/button-group.js +9 -0
- package/dist/solid/button.d.ts +5 -0
- package/dist/solid/button.js +7 -0
- package/dist/solid/card.d.ts +4 -0
- package/dist/solid/card.js +6 -0
- package/dist/solid/carousel-item.d.ts +3 -0
- package/dist/solid/carousel-item.js +5 -0
- package/dist/solid/carousel.d.ts +4 -0
- package/dist/solid/carousel.js +6 -0
- package/dist/solid/checkbox.d.ts +4 -0
- package/dist/solid/checkbox.js +6 -0
- package/dist/solid/chip.d.ts +3 -0
- package/dist/solid/chip.js +5 -0
- package/dist/solid/chips.d.ts +4 -0
- package/dist/solid/chips.js +6 -0
- package/dist/solid/create.d.ts +11 -2
- package/dist/solid/create.js +22 -4
- package/dist/solid/datepicker.d.ts +4 -0
- package/dist/solid/datepicker.js +6 -0
- package/dist/solid/dialog.d.ts +4 -0
- package/dist/solid/dialog.js +6 -0
- package/dist/solid/divider.d.ts +4 -0
- package/dist/solid/divider.js +6 -0
- package/dist/solid/drawer-item.d.ts +3 -0
- package/dist/solid/drawer-item.js +5 -0
- package/dist/solid/drawer.d.ts +4 -0
- package/dist/solid/drawer.js +6 -0
- package/dist/solid/extended-fab.d.ts +4 -0
- package/dist/solid/extended-fab.js +6 -0
- package/dist/solid/fab-menu-item.d.ts +3 -0
- package/dist/solid/fab-menu-item.js +5 -0
- package/dist/solid/fab-menu.d.ts +6 -0
- package/dist/solid/fab-menu.js +8 -0
- package/dist/solid/fab.d.ts +4 -0
- package/dist/solid/fab.js +6 -0
- package/dist/solid/icon-button.d.ts +4 -0
- package/dist/solid/icon-button.js +6 -0
- package/dist/solid/index.d.ts +48 -32
- package/dist/solid/index.js +48 -32
- package/dist/solid/jsx.d.ts +96 -0
- package/dist/solid/jsx.js +1 -0
- package/dist/solid/list-item.d.ts +3 -0
- package/dist/solid/list-item.js +5 -0
- package/dist/solid/list.d.ts +4 -0
- package/dist/solid/list.js +6 -0
- package/dist/solid/loading-indicator.d.ts +4 -0
- package/dist/solid/loading-indicator.js +6 -0
- package/dist/solid/menu-item.d.ts +3 -0
- package/dist/solid/menu-item.js +5 -0
- package/dist/solid/menu.d.ts +4 -0
- package/dist/solid/menu.js +6 -0
- package/dist/solid/navigation-rail-item.d.ts +3 -0
- package/dist/solid/navigation-rail-item.js +5 -0
- package/dist/solid/navigation-rail.d.ts +4 -0
- package/dist/solid/navigation-rail.js +6 -0
- package/dist/solid/progress.d.ts +4 -0
- package/dist/solid/progress.js +6 -0
- package/dist/solid/radio.d.ts +3 -0
- package/dist/solid/radio.js +5 -0
- package/dist/solid/radios.d.ts +4 -0
- package/dist/solid/radios.js +6 -0
- package/dist/solid/search-suggestion.d.ts +3 -0
- package/dist/solid/search-suggestion.js +5 -0
- package/dist/solid/search.d.ts +4 -0
- package/dist/solid/search.js +6 -0
- package/dist/solid/select-option.d.ts +3 -0
- package/dist/solid/select-option.js +5 -0
- package/dist/solid/select.d.ts +6 -0
- package/dist/solid/select.js +8 -0
- package/dist/solid/side-sheet.d.ts +4 -0
- package/dist/solid/side-sheet.js +6 -0
- package/dist/solid/slider.d.ts +4 -0
- package/dist/solid/slider.js +6 -0
- package/dist/solid/snackbar.d.ts +7 -0
- package/dist/solid/snackbar.js +9 -0
- package/dist/solid/split-button.d.ts +7 -0
- package/dist/solid/split-button.js +9 -0
- package/dist/solid/switch.d.ts +4 -0
- package/dist/solid/switch.js +6 -0
- package/dist/solid/tab.d.ts +3 -0
- package/dist/solid/tab.js +5 -0
- package/dist/solid/tabs.d.ts +7 -0
- package/dist/solid/tabs.js +9 -0
- package/dist/solid/textfield.d.ts +4 -0
- package/dist/solid/textfield.js +6 -0
- package/dist/solid/timepicker.d.ts +4 -0
- package/dist/solid/timepicker.js +6 -0
- package/dist/solid/toolbar.d.ts +5 -0
- package/dist/solid/toolbar.js +7 -0
- package/dist/solid/tooltip.d.ts +4 -0
- package/dist/solid/tooltip.js +6 -0
- package/dist/solid/top-app-bar.d.ts +4 -0
- package/dist/solid/top-app-bar.js +6 -0
- package/dist/styles/badge.css +2 -2
- package/dist/styles/base.css +2 -2
- package/dist/styles/bottom-app-bar.css +2 -2
- package/dist/styles/bottom-sheet.css +2 -2
- package/dist/styles/button-group.css +2 -2
- package/dist/styles/button.css +2 -2
- package/dist/styles/card.css +2 -2
- package/dist/styles/carousel.css +2 -2
- package/dist/styles/checkbox.css +2 -2
- package/dist/styles/chips.css +2 -2
- package/dist/styles/datepicker.css +2 -2
- package/dist/styles/dialog.css +2 -2
- package/dist/styles/divider.css +2 -2
- package/dist/styles/drawer.css +2 -2
- package/dist/styles/extended-fab.css +2 -2
- package/dist/styles/fab-menu.css +2 -0
- package/dist/styles/fab-menu.d.ts +1 -0
- package/dist/styles/fab-menu.js +3 -0
- package/dist/styles/fab.css +2 -2
- package/dist/styles/icon-button.css +2 -2
- package/dist/styles/list.css +2 -2
- package/dist/styles/loading-indicator.css +2 -2
- package/dist/styles/menu.css +2 -2
- package/dist/styles/navigation-rail.css +2 -2
- package/dist/styles/progress.css +2 -2
- package/dist/styles/radios.css +2 -2
- package/dist/styles/search.css +2 -2
- package/dist/styles/segmented-button.css +2 -2
- package/dist/styles/select.css +2 -2
- package/dist/styles/side-sheet.css +2 -2
- package/dist/styles/slider.css +2 -2
- package/dist/styles/snackbar.css +2 -2
- package/dist/styles/split-button.css +2 -2
- package/dist/styles/switch.css +2 -2
- package/dist/styles/tabs.css +2 -2
- package/dist/styles/textfield.css +2 -2
- package/dist/styles/timepicker.css +2 -2
- package/dist/styles/toolbar.css +2 -0
- package/dist/styles/toolbar.d.ts +1 -0
- package/dist/styles/toolbar.js +3 -0
- package/dist/styles/tooltip.css +2 -2
- package/dist/styles/top-app-bar.css +2 -2
- package/dist/styles/utilities.css +2 -2
- package/dist/styles.css +2 -2
- package/dist/svelte/Badge.svelte +7 -2
- package/dist/svelte/Badge.svelte.d.ts +2 -2
- package/dist/svelte/BottomAppBar.svelte +24 -0
- package/dist/svelte/BottomAppBar.svelte.d.ts +5 -0
- package/dist/svelte/BottomSheet.svelte +24 -0
- package/dist/svelte/BottomSheet.svelte.d.ts +5 -0
- package/dist/svelte/Button.svelte +8 -2
- package/dist/svelte/Button.svelte.d.ts +2 -2
- package/dist/svelte/ButtonGroup.svelte +28 -0
- package/dist/svelte/ButtonGroup.svelte.d.ts +5 -0
- package/dist/svelte/ButtonGroupItem.svelte +11 -0
- package/dist/svelte/ButtonGroupItem.svelte.d.ts +5 -0
- package/dist/svelte/Card.svelte +24 -0
- package/dist/svelte/Card.svelte.d.ts +5 -0
- package/dist/svelte/Carousel.svelte +25 -0
- package/dist/svelte/Carousel.svelte.d.ts +5 -0
- package/dist/svelte/CarouselItem.svelte +11 -0
- package/dist/svelte/CarouselItem.svelte.d.ts +5 -0
- package/dist/svelte/Checkbox.svelte +7 -2
- package/dist/svelte/Checkbox.svelte.d.ts +2 -2
- package/dist/svelte/Chip.svelte +11 -0
- package/dist/svelte/Chip.svelte.d.ts +5 -0
- package/dist/svelte/Chips.svelte +25 -0
- package/dist/svelte/Chips.svelte.d.ts +5 -0
- package/dist/svelte/Datepicker.svelte +25 -0
- package/dist/svelte/Datepicker.svelte.d.ts +5 -0
- package/dist/svelte/Dialog.svelte +24 -0
- package/dist/svelte/Dialog.svelte.d.ts +5 -0
- package/dist/svelte/Divider.svelte +7 -2
- package/dist/svelte/Divider.svelte.d.ts +2 -2
- package/dist/svelte/Drawer.svelte +25 -0
- package/dist/svelte/Drawer.svelte.d.ts +5 -0
- package/dist/svelte/DrawerItem.svelte +11 -0
- package/dist/svelte/DrawerItem.svelte.d.ts +5 -0
- package/dist/svelte/ExtendedFab.svelte +7 -2
- package/dist/svelte/ExtendedFab.svelte.d.ts +2 -2
- package/dist/svelte/Fab.svelte +7 -2
- package/dist/svelte/Fab.svelte.d.ts +2 -2
- package/dist/svelte/FabMenu.svelte +26 -0
- package/dist/svelte/FabMenu.svelte.d.ts +5 -0
- package/dist/svelte/FabMenuItem.svelte +11 -0
- package/dist/svelte/FabMenuItem.svelte.d.ts +5 -0
- package/dist/svelte/IconButton.svelte +7 -2
- package/dist/svelte/IconButton.svelte.d.ts +2 -2
- package/dist/svelte/List.svelte +26 -0
- package/dist/svelte/List.svelte.d.ts +5 -0
- package/dist/svelte/ListItem.svelte +11 -0
- package/dist/svelte/ListItem.svelte.d.ts +5 -0
- package/dist/svelte/LoadingIndicator.svelte +7 -2
- package/dist/svelte/LoadingIndicator.svelte.d.ts +2 -2
- package/dist/svelte/Menu.svelte +25 -0
- package/dist/svelte/Menu.svelte.d.ts +5 -0
- package/dist/svelte/MenuItem.svelte +11 -0
- package/dist/svelte/MenuItem.svelte.d.ts +5 -0
- package/dist/svelte/NavigationRail.svelte +25 -0
- package/dist/svelte/NavigationRail.svelte.d.ts +5 -0
- package/dist/svelte/NavigationRailItem.svelte +11 -0
- package/dist/svelte/NavigationRailItem.svelte.d.ts +5 -0
- package/dist/svelte/Progress.svelte +7 -2
- package/dist/svelte/Progress.svelte.d.ts +2 -2
- package/dist/svelte/Radio.svelte +1 -1
- package/dist/svelte/Radios.svelte +7 -2
- package/dist/svelte/Radios.svelte.d.ts +2 -2
- package/dist/svelte/Search.svelte +25 -0
- package/dist/svelte/Search.svelte.d.ts +5 -0
- package/dist/svelte/SearchSuggestion.svelte +11 -0
- package/dist/svelte/SearchSuggestion.svelte.d.ts +5 -0
- package/dist/svelte/Select.svelte +27 -0
- package/dist/svelte/Select.svelte.d.ts +5 -0
- package/dist/svelte/SelectOption.svelte +11 -0
- package/dist/svelte/SelectOption.svelte.d.ts +5 -0
- package/dist/svelte/SideSheet.svelte +24 -0
- package/dist/svelte/SideSheet.svelte.d.ts +5 -0
- package/dist/svelte/Slider.svelte +7 -2
- package/dist/svelte/Slider.svelte.d.ts +2 -2
- package/dist/svelte/Snackbar.svelte +28 -0
- package/dist/svelte/Snackbar.svelte.d.ts +5 -0
- package/dist/svelte/SplitButton.svelte +27 -0
- package/dist/svelte/SplitButton.svelte.d.ts +5 -0
- package/dist/svelte/Switch.svelte +7 -2
- package/dist/svelte/Switch.svelte.d.ts +2 -2
- package/dist/svelte/Tab.svelte +1 -1
- package/dist/svelte/Tabs.svelte +10 -2
- package/dist/svelte/Tabs.svelte.d.ts +2 -2
- package/dist/svelte/Textfield.svelte +7 -2
- package/dist/svelte/Textfield.svelte.d.ts +2 -2
- package/dist/svelte/Timepicker.svelte +25 -0
- package/dist/svelte/Timepicker.svelte.d.ts +5 -0
- package/dist/svelte/Toolbar.svelte +25 -0
- package/dist/svelte/Toolbar.svelte.d.ts +5 -0
- package/dist/svelte/Tooltip.svelte +25 -0
- package/dist/svelte/Tooltip.svelte.d.ts +5 -0
- package/dist/svelte/TopAppBar.svelte +24 -0
- package/dist/svelte/TopAppBar.svelte.d.ts +5 -0
- package/dist/svelte/index.d.ts +32 -0
- package/dist/svelte/index.js +32 -14
- package/dist/svelte/runtime.d.ts +12 -2
- package/dist/svelte/runtime.js +11 -2
- package/dist/themes/autumn.css +2 -2
- package/dist/themes/baseline.css +2 -2
- package/dist/themes/brownbeige.css +2 -2
- package/dist/themes/browngreen.css +2 -2
- package/dist/themes/content.css +2 -0
- package/dist/themes/desert.css +2 -2
- package/dist/themes/expressive.css +2 -0
- package/dist/themes/fidelity.css +2 -0
- package/dist/themes/forest.css +2 -2
- package/dist/themes/fruit-salad.css +2 -0
- package/dist/themes/highcontrast.css +2 -2
- package/dist/themes/legacy.css +2 -2
- package/dist/themes/material.css +2 -2
- package/dist/themes/monochrome.css +2 -0
- package/dist/themes/neutral.css +2 -0
- package/dist/themes/ocean.css +2 -2
- package/dist/themes/rainbow.css +2 -0
- package/dist/themes/sageivory.css +2 -2
- package/dist/themes/spring.css +2 -2
- package/dist/themes/summer.css +2 -2
- package/dist/themes/sunset.css +2 -2
- package/dist/themes/tealcaramel.css +2 -2
- package/dist/themes/vibrant.css +2 -0
- package/dist/themes/winter.css +2 -2
- package/dist/vue/badge.d.ts +4 -0
- package/dist/vue/badge.js +6 -0
- package/dist/vue/bottom-app-bar.d.ts +4 -0
- package/dist/vue/bottom-app-bar.js +6 -0
- package/dist/vue/bottom-sheet.d.ts +4 -0
- package/dist/vue/bottom-sheet.js +6 -0
- package/dist/vue/button-group-item.d.ts +3 -0
- package/dist/vue/button-group-item.js +5 -0
- package/dist/vue/button-group.d.ts +7 -0
- package/dist/vue/button-group.js +9 -0
- package/dist/vue/button.d.ts +5 -0
- package/dist/vue/button.js +7 -0
- package/dist/vue/card.d.ts +4 -0
- package/dist/vue/card.js +6 -0
- package/dist/vue/carousel-item.d.ts +3 -0
- package/dist/vue/carousel-item.js +5 -0
- package/dist/vue/carousel.d.ts +4 -0
- package/dist/vue/carousel.js +6 -0
- package/dist/vue/checkbox.d.ts +4 -0
- package/dist/vue/checkbox.js +6 -0
- package/dist/vue/chip.d.ts +3 -0
- package/dist/vue/chip.js +5 -0
- package/dist/vue/chips.d.ts +4 -0
- package/dist/vue/chips.js +6 -0
- package/dist/vue/create.d.ts +9 -3
- package/dist/vue/create.js +15 -2
- package/dist/vue/datepicker.d.ts +4 -0
- package/dist/vue/datepicker.js +6 -0
- package/dist/vue/dialog.d.ts +4 -0
- package/dist/vue/dialog.js +6 -0
- package/dist/vue/divider.d.ts +4 -0
- package/dist/vue/divider.js +6 -0
- package/dist/vue/drawer-item.d.ts +3 -0
- package/dist/vue/drawer-item.js +5 -0
- package/dist/vue/drawer.d.ts +4 -0
- package/dist/vue/drawer.js +6 -0
- package/dist/vue/extended-fab.d.ts +4 -0
- package/dist/vue/extended-fab.js +6 -0
- package/dist/vue/fab-menu-item.d.ts +3 -0
- package/dist/vue/fab-menu-item.js +5 -0
- package/dist/vue/fab-menu.d.ts +6 -0
- package/dist/vue/fab-menu.js +8 -0
- package/dist/vue/fab.d.ts +4 -0
- package/dist/vue/fab.js +6 -0
- package/dist/vue/icon-button.d.ts +4 -0
- package/dist/vue/icon-button.js +6 -0
- package/dist/vue/index.d.ts +49 -33
- package/dist/vue/index.js +48 -32
- package/dist/vue/list-item.d.ts +3 -0
- package/dist/vue/list-item.js +5 -0
- package/dist/vue/list.d.ts +4 -0
- package/dist/vue/list.js +6 -0
- package/dist/vue/loading-indicator.d.ts +4 -0
- package/dist/vue/loading-indicator.js +6 -0
- package/dist/vue/menu-item.d.ts +3 -0
- package/dist/vue/menu-item.js +5 -0
- package/dist/vue/menu.d.ts +4 -0
- package/dist/vue/menu.js +6 -0
- package/dist/vue/navigation-rail-item.d.ts +3 -0
- package/dist/vue/navigation-rail-item.js +5 -0
- package/dist/vue/navigation-rail.d.ts +4 -0
- package/dist/vue/navigation-rail.js +6 -0
- package/dist/vue/progress.d.ts +4 -0
- package/dist/vue/progress.js +6 -0
- package/dist/vue/radio.d.ts +3 -0
- package/dist/vue/radio.js +5 -0
- package/dist/vue/radios.d.ts +4 -0
- package/dist/vue/radios.js +6 -0
- package/dist/vue/search-suggestion.d.ts +3 -0
- package/dist/vue/search-suggestion.js +5 -0
- package/dist/vue/search.d.ts +4 -0
- package/dist/vue/search.js +6 -0
- package/dist/vue/select-option.d.ts +3 -0
- package/dist/vue/select-option.js +5 -0
- package/dist/vue/select.d.ts +6 -0
- package/dist/vue/select.js +8 -0
- package/dist/vue/side-sheet.d.ts +4 -0
- package/dist/vue/side-sheet.js +6 -0
- package/dist/vue/slider.d.ts +4 -0
- package/dist/vue/slider.js +6 -0
- package/dist/vue/snackbar.d.ts +7 -0
- package/dist/vue/snackbar.js +9 -0
- package/dist/vue/split-button.d.ts +7 -0
- package/dist/vue/split-button.js +9 -0
- package/dist/vue/switch.d.ts +4 -0
- package/dist/vue/switch.js +6 -0
- package/dist/vue/tab.d.ts +3 -0
- package/dist/vue/tab.js +5 -0
- package/dist/vue/tabs.d.ts +7 -0
- package/dist/vue/tabs.js +9 -0
- package/dist/vue/textfield.d.ts +4 -0
- package/dist/vue/textfield.js +6 -0
- package/dist/vue/timepicker.d.ts +4 -0
- package/dist/vue/timepicker.js +6 -0
- package/dist/vue/toolbar.d.ts +5 -0
- package/dist/vue/toolbar.js +7 -0
- package/dist/vue/tooltip.d.ts +4 -0
- package/dist/vue/tooltip.js +6 -0
- package/dist/vue/top-app-bar.d.ts +4 -0
- package/dist/vue/top-app-bar.js +6 -0
- package/package.json +119 -20
- package/src/styles/abstract/_functions.scss +13 -1
- package/src/styles/abstract/_mixins.scss +16 -1
- package/src/styles/abstract/_theme.scss +4 -88
- package/src/styles/abstract/_variables.scss +20 -1
- package/src/styles/base/_tokens.scss +2 -13
- package/src/styles/base/_typography.scss +14 -70
- package/src/styles/components/_badge.scss +2 -2
- package/src/styles/components/_bottom-app-bar.scss +0 -4
- package/src/styles/components/_bottom-sheet.scss +68 -8
- package/src/styles/components/_button-group.scss +5 -2
- package/src/styles/components/_button.scss +29 -43
- package/src/styles/components/_card.scss +0 -2
- package/src/styles/components/_carousel.scss +2 -1
- package/src/styles/components/_datepicker.scss +4 -0
- package/src/styles/components/_dialog.scss +52 -0
- package/src/styles/components/_divider.scss +1 -1
- package/src/styles/components/_drawer.scss +53 -11
- package/src/styles/components/_fab-menu.scss +228 -0
- package/src/styles/components/_icon-button.scss +18 -14
- package/src/styles/components/_list.scss +3 -2
- package/src/styles/components/_menu.scss +22 -2
- package/src/styles/components/_navigation-rail.scss +5 -4
- package/src/styles/components/_search.scss +279 -273
- package/src/styles/components/_select.scss +9 -89
- package/src/styles/components/_side-sheet.scss +48 -4
- package/src/styles/components/_slider.scss +2 -2
- package/src/styles/components/_snackbar.scss +12 -0
- package/src/styles/components/_split-button.scss +5 -5
- package/src/styles/components/_switch.scss +1 -1
- package/src/styles/components/_textfield.scss +144 -93
- package/src/styles/components/_timepicker.scss +116 -139
- package/src/styles/components/_toolbar.scss +203 -0
- package/src/styles/components/_tooltip.scss +31 -12
- package/src/styles/elements/_badge.scss +12 -0
- package/src/styles/elements/_bottom-app-bar.scss +27 -0
- package/src/styles/elements/_bottom-sheet.scss +6 -0
- package/src/styles/elements/_button-group.scss +25 -0
- package/src/styles/elements/_button.scss +78 -0
- package/src/styles/elements/_card.scss +57 -0
- package/src/styles/elements/_carousel.scss +12 -0
- package/src/styles/elements/_checkbox.scss +38 -0
- package/src/styles/elements/_chips.scss +33 -0
- package/src/styles/elements/_config.scss +48 -0
- package/src/styles/elements/_datepicker.scss +31 -0
- package/src/styles/elements/_dialog.scss +6 -0
- package/src/styles/elements/_divider.scss +19 -0
- package/src/styles/elements/_drawer.scss +23 -0
- package/src/styles/elements/_extended-fab.scss +57 -0
- package/src/styles/elements/_fab-menu.scss +43 -0
- package/src/styles/elements/_fab.scss +33 -0
- package/src/styles/elements/_field.scss +111 -0
- package/src/styles/elements/_icon-button.scss +55 -0
- package/src/styles/elements/_index.scss +41 -0
- package/src/styles/elements/_list.scss +34 -0
- package/src/styles/elements/_loading-indicator.scss +13 -0
- package/src/styles/elements/_menu.scss +6 -0
- package/src/styles/elements/_navigation-rail.scss +24 -0
- package/src/styles/elements/_progress.scss +24 -0
- package/src/styles/elements/_radios.scss +23 -0
- package/src/styles/elements/_search.scss +36 -0
- package/src/styles/elements/_select.scss +15 -0
- package/src/styles/elements/_side-sheet.scss +6 -0
- package/src/styles/elements/_slider.scss +10 -0
- package/src/styles/elements/_snackbar.scss +6 -0
- package/src/styles/elements/_split-button.scss +53 -0
- package/src/styles/elements/_switch.scss +51 -0
- package/src/styles/elements/_tabs.scss +22 -0
- package/src/styles/elements/_textfield.scss +9 -0
- package/src/styles/elements/_timepicker.scss +6 -0
- package/src/styles/elements/_toolbar.scss +47 -0
- package/src/styles/elements/_tooltip.scss +6 -0
- package/src/styles/elements/_top-app-bar.scss +57 -0
- package/src/styles/main.scss +2 -0
- package/src/styles/themes/_autumn.scss +18 -17
- package/src/styles/themes/_base-theme.scss +29 -39
- package/src/styles/themes/_baseline.scss +58 -83
- package/src/styles/themes/_brownbeige.scss +95 -123
- package/src/styles/themes/_browngreen.scss +1 -49
- package/src/styles/themes/_content.scss +108 -0
- package/src/styles/themes/_desert.scss +94 -80
- package/src/styles/themes/_expressive.scss +108 -0
- package/src/styles/themes/_fidelity.scss +108 -0
- package/src/styles/themes/_forest.scss +19 -3
- package/src/styles/themes/_fruit-salad.scss +108 -0
- package/src/styles/themes/_highcontrast.scss +91 -149
- package/src/styles/themes/_legacy.scss +1 -2
- package/src/styles/themes/_material.scss +1 -50
- package/src/styles/themes/_monochrome.scss +108 -0
- package/src/styles/themes/_neutral.scss +108 -0
- package/src/styles/themes/_ocean.scss +19 -3
- package/src/styles/themes/_rainbow.scss +108 -0
- package/src/styles/themes/_sageivory.scss +95 -125
- package/src/styles/themes/_spring.scss +19 -3
- package/src/styles/themes/_summer.scss +95 -87
- package/src/styles/themes/_sunset.scss +19 -3
- package/src/styles/themes/_tealcaramel.scss +94 -124
- package/src/styles/themes/_vibrant.scss +108 -0
- package/src/styles/themes/_winter.scss +1 -3
- package/src/styles/themes/_bluekhaki.scss +0 -136
- package/src/styles/themes/_greenbeige.scss +0 -138
|
@@ -52,27 +52,13 @@ export declare const withLoading: (config?: LoadingConfig) => (component: BaseCo
|
|
|
52
52
|
loading: LoadingFeature;
|
|
53
53
|
};
|
|
54
54
|
/**
|
|
55
|
-
*
|
|
55
|
+
* Did nothing visible: it wrote a `--{prefix}-card-elevation` custom property
|
|
56
|
+
* that no stylesheet reads. A card's elevation comes from its variant and
|
|
57
|
+
* state classes in the stylesheet.
|
|
56
58
|
*
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
* - Filled and outlined variants: 0dp elevation
|
|
60
|
-
*
|
|
61
|
-
* These elevation values affect shadows and surface appearance of the card
|
|
62
|
-
* to create appropriate visual hierarchy.
|
|
63
|
-
*
|
|
64
|
-
* @param {BaseComponent} component - Card component
|
|
65
|
-
* @returns {BaseComponent} Card component with elevation applied
|
|
59
|
+
* @deprecated Since 0.10 (FLO-323): a no-op, removed in 1.0. Drop it from
|
|
60
|
+
* the composition.
|
|
66
61
|
* @category Components
|
|
67
|
-
* @example
|
|
68
|
-
* ```typescript
|
|
69
|
-
* // Apply elevation in the composition chain
|
|
70
|
-
* const card = pipe(
|
|
71
|
-
* createBase,
|
|
72
|
-
* withElement(config),
|
|
73
|
-
* withElevation
|
|
74
|
-
* )(baseConfig);
|
|
75
|
-
* ```
|
|
76
62
|
*/
|
|
77
63
|
export declare const withElevation: <C extends ElementComponent>(component: C) => C;
|
|
78
64
|
/**
|
|
@@ -6,7 +6,6 @@ const HIDDEN_ACTION_STYLE = {
|
|
|
6
6
|
visibility: "hidden",
|
|
7
7
|
};
|
|
8
8
|
import { createElement } from "../../core/dom/create.js";
|
|
9
|
-
import { CARD_ELEVATION_LEVELS } from "./config.js";
|
|
10
9
|
export const withLoading = (config = {}) => (component) => {
|
|
11
10
|
const initialState = config.initialState || false;
|
|
12
11
|
let loadingElement = null;
|
|
@@ -50,16 +49,7 @@ export const withLoading = (config = {}) => (component) => {
|
|
|
50
49
|
},
|
|
51
50
|
};
|
|
52
51
|
};
|
|
53
|
-
export const withElevation = (component) =>
|
|
54
|
-
const config = component.config;
|
|
55
|
-
if (config.variant === "elevated") {
|
|
56
|
-
component.element.style.setProperty(`--${config.prefix}-card-elevation`, String(CARD_ELEVATION_LEVELS.LEVEL1));
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
component.element.style.setProperty(`--${config.prefix}-card-elevation`, String(CARD_ELEVATION_LEVELS.LEVEL0));
|
|
60
|
-
}
|
|
61
|
-
return component;
|
|
62
|
-
};
|
|
52
|
+
export const withElevation = (component) => component;
|
|
63
53
|
export const withExpandable = (config = {}) => (component) => {
|
|
64
54
|
const initialExpanded = config.initialExpanded || false;
|
|
65
55
|
let isExpanded = initialExpanded;
|
|
@@ -65,7 +65,7 @@ export { default } from "./card.js";
|
|
|
65
65
|
*
|
|
66
66
|
* These types define the structure and behavior of the Card component.
|
|
67
67
|
*/
|
|
68
|
-
export type { CardVariant, CardElevationLevel, CardSchema, CardHeaderConfig, CardContentConfig, CardActionsConfig, CardMediaConfig, CardAriaAttributes, CardComponent, LoadingFeature, ExpandableFeature, SwipeableFeature, } from "./types.js";
|
|
68
|
+
export type { CardVariant, CardElevationLevel, CardSchema, CardHeaderConfig, CardContentConfig, CardActionsConfig, CardMediaConfig, CardAriaAttributes, CardComponent, CardEvents, LoadingFeature, ExpandableFeature, SwipeableFeature, } from "./types.js";
|
|
69
69
|
export { createCardContent, createCardHeader, createCardActions, createCardMedia, } from "./content.js";
|
|
70
70
|
export { withAPI } from "./api.js";
|
|
71
71
|
export { withLoading, withExpandable, withSwipeable, withElevation, } from "./features.js";
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { ButtonConfig as BaseButtonConfig } from "../button/types.js";
|
|
2
|
+
import type { ForwardedEventPayload } from "../../core/dom/index.js";
|
|
2
3
|
/**
|
|
3
4
|
* Card variant types following Material Design 3 guidelines.
|
|
4
5
|
* - elevated: Card with shadow elevation (default)
|
|
@@ -58,11 +59,18 @@ export interface ButtonConfig extends Omit<BaseButtonConfig, "variant"> {
|
|
|
58
59
|
export interface CardSchema {
|
|
59
60
|
/** Card variant type (elevated, filled, outlined) */
|
|
60
61
|
variant?: CardVariant | string;
|
|
61
|
-
/**
|
|
62
|
+
/**
|
|
63
|
+
* The hover and press states and their elevation, for a card the app
|
|
64
|
+
* makes interactive itself. Not a control: no role of button and no tab
|
|
65
|
+
* stop; `clickable` is (FLO-109).
|
|
66
|
+
*/
|
|
62
67
|
interactive?: boolean;
|
|
63
68
|
/** Whether the card should take full width */
|
|
64
69
|
fullWidth?: boolean;
|
|
65
|
-
/**
|
|
70
|
+
/**
|
|
71
|
+
* A card that acts on activation: a button (role, tab stop, Enter and
|
|
72
|
+
* Space click it) with the ripple (FLO-109)
|
|
73
|
+
*/
|
|
66
74
|
clickable?: boolean;
|
|
67
75
|
/** Whether the card is draggable */
|
|
68
76
|
draggable?: boolean;
|
|
@@ -109,7 +117,7 @@ export interface CardAriaAttributes {
|
|
|
109
117
|
labelledby?: string;
|
|
110
118
|
/** ARIA describedby */
|
|
111
119
|
describedby?: string;
|
|
112
|
-
/** ARIA role (default
|
|
120
|
+
/** ARIA role (default: 'button' for a clickable card, 'article' for any other) */
|
|
113
121
|
role?: string;
|
|
114
122
|
/** Additional ARIA attributes as key-value pairs */
|
|
115
123
|
[key: string]: string | undefined;
|
|
@@ -277,6 +285,25 @@ export interface CardComponentConfig extends CardSchema {
|
|
|
277
285
|
/** CSS class prefix */
|
|
278
286
|
prefix: string;
|
|
279
287
|
}
|
|
288
|
+
/**
|
|
289
|
+
* The card's events (FLO-323). A clickable card forwards `click`; an
|
|
290
|
+
* interactive one `mouseenter`, `mouseleave`, `keydown`, `focus` and `blur`;
|
|
291
|
+
* a draggable one emits `dragstart` and `dragend`.
|
|
292
|
+
*/
|
|
293
|
+
export interface CardEvents {
|
|
294
|
+
click: (payload: ForwardedEventPayload<MouseEvent, HTMLElement>) => void;
|
|
295
|
+
mouseenter: (payload: ForwardedEventPayload<MouseEvent, HTMLElement>) => void;
|
|
296
|
+
mouseleave: (payload: ForwardedEventPayload<MouseEvent, HTMLElement>) => void;
|
|
297
|
+
keydown: (payload: ForwardedEventPayload<KeyboardEvent, HTMLElement>) => void;
|
|
298
|
+
focus: (payload: ForwardedEventPayload<FocusEvent, HTMLElement>) => void;
|
|
299
|
+
blur: (payload: ForwardedEventPayload<FocusEvent, HTMLElement>) => void;
|
|
300
|
+
dragstart: (payload: {
|
|
301
|
+
event: DragEvent;
|
|
302
|
+
}) => void;
|
|
303
|
+
dragend: (payload: {
|
|
304
|
+
event: DragEvent;
|
|
305
|
+
}) => void;
|
|
306
|
+
}
|
|
280
307
|
/**
|
|
281
308
|
* Card component interface with methods.
|
|
282
309
|
* This is the public API of the card component that users interact with.
|
|
@@ -286,6 +313,10 @@ export interface CardComponentConfig extends CardSchema {
|
|
|
286
313
|
* @category Components
|
|
287
314
|
*/
|
|
288
315
|
export interface CardComponent extends BaseComponent {
|
|
316
|
+
/** Subscribes to one of the card's events (FLO-323) */
|
|
317
|
+
on: <K extends keyof CardEvents>(event: K, handler: CardEvents[K]) => CardComponent;
|
|
318
|
+
/** Removes a handler added with `on` */
|
|
319
|
+
off: <K extends keyof CardEvents>(event: K, handler: CardEvents[K]) => CardComponent;
|
|
289
320
|
/**
|
|
290
321
|
* Adds content to the card.
|
|
291
322
|
* This method appends content to the card component.
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { CAROUSEL_DEFAULTS, CAROUSEL_EVENTS, CAROUSEL_VARIANTS } from "../constants.js";
|
|
2
2
|
import { resolveLayoutDefaults } from "../config.js";
|
|
3
|
+
import { cornerToken } from "../../../core/theme/shape.js";
|
|
3
4
|
import { multiBrowseKeylines, heroKeylines, uncontainedKeylines, fullScreenKeylines, } from "../keylines.js";
|
|
4
5
|
import { createStrategy, keylinesForScrollOffset, snapPositionOffset, maxScrollOffset, placeItem, } from "../strategy.js";
|
|
5
6
|
const FLING_VELOCITY = 0.4;
|
|
@@ -14,6 +15,9 @@ export const withScroll = (config) => (component) => {
|
|
|
14
15
|
mediumLargeThreshold: CAROUSEL_DEFAULTS.MEDIUM_LARGE_THRESHOLD,
|
|
15
16
|
};
|
|
16
17
|
const cornerRadius = config.cornerRadius ?? CAROUSEL_DEFAULTS.CORNER_RADIUS;
|
|
18
|
+
const corner = cornerRadius === CAROUSEL_DEFAULTS.CORNER_RADIUS
|
|
19
|
+
? cornerToken("extra-large", cornerRadius, config.prefix)
|
|
20
|
+
: `${cornerRadius}px`;
|
|
17
21
|
const reduceMotion = typeof window !== "undefined" && typeof window.matchMedia === "function"
|
|
18
22
|
? window.matchMedia("(prefers-reduced-motion: reduce)")
|
|
19
23
|
: null;
|
|
@@ -121,7 +125,7 @@ export const withScroll = (config) => (component) => {
|
|
|
121
125
|
el.style[vertical ? "height" : "width"] = `${strategy.itemSize}px`;
|
|
122
126
|
el.style[vertical ? "width" : "height"] = "";
|
|
123
127
|
});
|
|
124
|
-
element.style.setProperty(`--${config.prefix}-carousel-corner`,
|
|
128
|
+
element.style.setProperty(`--${config.prefix}-carousel-corner`, corner);
|
|
125
129
|
};
|
|
126
130
|
const layout = () => {
|
|
127
131
|
if (!strategy)
|
|
@@ -152,8 +156,8 @@ export const withScroll = (config) => (component) => {
|
|
|
152
156
|
el.style.visibility = "";
|
|
153
157
|
el.style.transform = vertical ? `translate3d(0, ${start}px, 0)` : `translate3d(${start}px, 0, 0)`;
|
|
154
158
|
el.style.clipPath = vertical
|
|
155
|
-
? `inset(${inset}px 0 round ${
|
|
156
|
-
: `inset(0 ${inset}px round ${
|
|
159
|
+
? `inset(${inset}px 0 round ${corner})`
|
|
160
|
+
: `inset(0 ${inset}px round ${corner})`;
|
|
157
161
|
el.style.setProperty(`--${config.prefix}-carousel-fade`, fade.toFixed(3));
|
|
158
162
|
}
|
|
159
163
|
if (pending !== null) {
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { createComponentConfig, createElementConfig, } from "../../core/config/component.js";
|
|
2
|
-
import { setHTML } from "../../core/dom/html.js";
|
|
3
2
|
export const defaultConfig = {
|
|
4
3
|
labelPosition: "end",
|
|
5
4
|
enterToggles: false,
|
|
@@ -10,14 +9,27 @@ export const getElementConfig = (config) => createElementConfig(config, {
|
|
|
10
9
|
className: config.class,
|
|
11
10
|
interactive: true,
|
|
12
11
|
});
|
|
12
|
+
const SVG = "http://www.w3.org/2000/svg";
|
|
13
|
+
let checkIcon = null;
|
|
14
|
+
const createCheckIcon = () => {
|
|
15
|
+
if (!checkIcon) {
|
|
16
|
+
checkIcon = document.createDocumentFragment();
|
|
17
|
+
const svg = document.createElementNS(SVG, "svg");
|
|
18
|
+
svg.setAttributeNS("http://www.w3.org/2000/xmlns/", "xmlns", SVG);
|
|
19
|
+
for (const [name, value] of [["viewBox", "0 0 24 24"], ["width", "20"], ["height", "20"], ["fill", "currentColor"]]) {
|
|
20
|
+
svg.setAttribute(name, value);
|
|
21
|
+
}
|
|
22
|
+
const path = document.createElementNS(SVG, "path");
|
|
23
|
+
path.setAttribute("d", "M9.55 14.6L6.35 11.4l-1.9 1.9L9.55 18.4l10.9-10.9-1.9-1.9z");
|
|
24
|
+
svg.append("\n ", path, "\n ");
|
|
25
|
+
checkIcon.append("\n ", svg, "\n ");
|
|
26
|
+
}
|
|
27
|
+
return checkIcon.cloneNode(true);
|
|
28
|
+
};
|
|
13
29
|
export const withCheckIcon = (config) => (component) => {
|
|
14
30
|
const icon = document.createElement("span");
|
|
15
31
|
icon.className = `${config.prefix}-checkbox__icon`;
|
|
16
|
-
|
|
17
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="20" height="20" fill="currentColor">
|
|
18
|
-
<path d="M9.55 14.6L6.35 11.4l-1.9 1.9L9.55 18.4l10.9-10.9-1.9-1.9z"/>
|
|
19
|
-
</svg>
|
|
20
|
-
`);
|
|
32
|
+
icon.appendChild(createCheckIcon());
|
|
21
33
|
component.element.appendChild(icon);
|
|
22
34
|
return component;
|
|
23
35
|
};
|
|
@@ -68,7 +68,7 @@ export const withAPI = (options) => (component) => {
|
|
|
68
68
|
}
|
|
69
69
|
return this;
|
|
70
70
|
},
|
|
71
|
-
selectByValue(values, triggerEvent =
|
|
71
|
+
selectByValue(values, triggerEvent = false) {
|
|
72
72
|
if (options.chips &&
|
|
73
73
|
typeof options.chips.selectByValue === "function") {
|
|
74
74
|
options.chips.selectByValue(values, triggerEvent);
|
|
@@ -53,7 +53,7 @@ export const getApiConfig = (comp, config) => ({
|
|
|
53
53
|
getChips: () => comp.chips?.getChips?.() ?? [],
|
|
54
54
|
getSelectedChips: () => comp.chips?.getSelectedChips?.() ?? [],
|
|
55
55
|
getSelectedValues: () => comp.chips?.getSelectedValues?.() ?? [],
|
|
56
|
-
selectByValue: (values) => comp.chips?.selectByValue?.(values),
|
|
56
|
+
selectByValue: (values, triggerEvent) => comp.chips?.selectByValue?.(values, triggerEvent),
|
|
57
57
|
clearSelection: () => comp.chips?.clearSelection?.(),
|
|
58
58
|
scrollToChip: (chipOrIndex) => comp.chips?.scrollToChip?.(chipOrIndex),
|
|
59
59
|
},
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { getCleanup } from "../../../core/compose/cleanup.js";
|
|
2
2
|
import createChip from "../chip/chip.js";
|
|
3
3
|
import { CHIPS_EVENTS } from "../constants.js";
|
|
4
|
+
import { activeElementOf } from "../../../core/dom/focus.js";
|
|
4
5
|
export const withController = (config) => (component) => {
|
|
5
6
|
const eventListeners = {
|
|
6
7
|
change: [],
|
|
@@ -13,6 +14,11 @@ export const withController = (config) => (component) => {
|
|
|
13
14
|
eventListeners[eventName].forEach((handler) => handler(...args));
|
|
14
15
|
}
|
|
15
16
|
};
|
|
17
|
+
const changeEvent = (values, changed) => {
|
|
18
|
+
const set = values.filter((value) => value !== null);
|
|
19
|
+
const value = config.multiSelect ? set : (set[0] ?? null);
|
|
20
|
+
return Object.assign([...values], { value, selected: values, changed });
|
|
21
|
+
};
|
|
16
22
|
const handleSelection = (selectedChip) => {
|
|
17
23
|
if (!config.multiSelect) {
|
|
18
24
|
component.chipInstances.forEach((chip) => {
|
|
@@ -27,10 +33,11 @@ export const withController = (config) => (component) => {
|
|
|
27
33
|
const selectedChips = component.chipInstances.filter((chip) => chip.isSelected());
|
|
28
34
|
const selectedValues = selectedChips.map((chip) => chip.getValue());
|
|
29
35
|
const changedValue = selectedChip ? selectedChip.getValue() : null;
|
|
36
|
+
const event = changeEvent(selectedValues, changedValue);
|
|
30
37
|
if (typeof config.onChange === "function") {
|
|
31
|
-
config.onChange(
|
|
38
|
+
config.onChange(event, changedValue);
|
|
32
39
|
}
|
|
33
|
-
dispatchEvent(CHIPS_EVENTS.CHANGE,
|
|
40
|
+
dispatchEvent(CHIPS_EVENTS.CHANGE, event, changedValue);
|
|
34
41
|
};
|
|
35
42
|
const targets = () => component.chipInstances
|
|
36
43
|
.filter((chip) => !chip.isDisabled())
|
|
@@ -157,7 +164,7 @@ export const withController = (config) => (component) => {
|
|
|
157
164
|
: component.chipInstances.indexOf(chipOrIndex);
|
|
158
165
|
if (index >= 0 && index < component.chipInstances.length) {
|
|
159
166
|
const chip = component.chipInstances[index];
|
|
160
|
-
const hadFocus = chip.element.contains(
|
|
167
|
+
const hadFocus = chip.element.contains(activeElementOf(chip.element));
|
|
161
168
|
dispatchEvent(CHIPS_EVENTS.REMOVE, chip);
|
|
162
169
|
chip.element.removeEventListener("keydown", handleKeyboardNavigation);
|
|
163
170
|
chip.destroy();
|
|
@@ -192,7 +199,7 @@ export const withController = (config) => (component) => {
|
|
|
192
199
|
const getSelectedValues = () => {
|
|
193
200
|
return getSelectedChips().map((chip) => chip.getValue());
|
|
194
201
|
};
|
|
195
|
-
const selectByValue = (values, triggerEvent =
|
|
202
|
+
const selectByValue = (values, triggerEvent = false, exclusive = !config.multiSelect) => {
|
|
196
203
|
const valueArray = Array.isArray(values) ? values : [values];
|
|
197
204
|
let selectionChanged = false;
|
|
198
205
|
if (exclusive) {
|
|
@@ -215,17 +222,17 @@ export const withController = (config) => (component) => {
|
|
|
215
222
|
});
|
|
216
223
|
if (selectionChanged && triggerEvent) {
|
|
217
224
|
const selectedValues = getSelectedValues();
|
|
218
|
-
dispatchEvent(CHIPS_EVENTS.CHANGE, selectedValues, null);
|
|
225
|
+
dispatchEvent(CHIPS_EVENTS.CHANGE, changeEvent(selectedValues, null), null);
|
|
219
226
|
}
|
|
220
227
|
};
|
|
221
|
-
const clearSelection = (triggerEvent =
|
|
228
|
+
const clearSelection = (triggerEvent = false) => {
|
|
222
229
|
const selectedValues = getSelectedValues();
|
|
223
230
|
const hadSelectedChips = selectedValues.length > 0;
|
|
224
231
|
component.chipInstances.forEach((chip) => {
|
|
225
232
|
chip.setSelected(false);
|
|
226
233
|
});
|
|
227
234
|
if (hadSelectedChips && triggerEvent) {
|
|
228
|
-
dispatchEvent(CHIPS_EVENTS.CHANGE, [], null);
|
|
235
|
+
dispatchEvent(CHIPS_EVENTS.CHANGE, changeEvent([], null), null);
|
|
229
236
|
}
|
|
230
237
|
};
|
|
231
238
|
const enableKeyboardNavigation = () => {
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { createAssistChip, createFilterChip, createInputChip, createSuggestionChip } from "./factories.js";
|
|
2
2
|
export { default as createChips } from "./chips.js";
|
|
3
|
-
export type { ChipConfig, ChipComponent, ChipType, ChipEvents, ChipChangePayload, AssistChipConfig, FilterChipConfig, InputChipConfig, SuggestionChipConfig, ChipsConfig, ChipsComponent, ChipsEvents, } from "./types.js";
|
|
3
|
+
export type { ChipConfig, ChipComponent, ChipType, ChipEvents, ChipChangePayload, AssistChipConfig, FilterChipConfig, InputChipConfig, SuggestionChipConfig, ChipsConfig, ChipsComponent, ChipsEvents, ChipsChangeEvent, } from "./types.js";
|
|
@@ -150,7 +150,7 @@ export interface ChipsConfig {
|
|
|
150
150
|
/**
|
|
151
151
|
* Callback function when chip selection changes
|
|
152
152
|
*/
|
|
153
|
-
onChange?: (
|
|
153
|
+
onChange?: (event: ChipsChangeEvent, changedValue: string | null) => void;
|
|
154
154
|
/**
|
|
155
155
|
* Component prefix for class names
|
|
156
156
|
* @default 'mtrl'
|
|
@@ -219,10 +219,29 @@ export interface ChipsFeatureComponent {
|
|
|
219
219
|
* @internal
|
|
220
220
|
*/
|
|
221
221
|
export type ChipsEventListeners = Record<string, EventCallback[]>;
|
|
222
|
+
/**
|
|
223
|
+
* The payload of the chips set's `change`.
|
|
224
|
+
*
|
|
225
|
+
* It is still the array of selected values, with the fields added, and the
|
|
226
|
+
* changed value still comes as a second argument, so a
|
|
227
|
+
* `(selectedValues, changedValue)` handler keeps working. Both are
|
|
228
|
+
* deprecated: read `selected` and `changed`. They go in the next prerelease.
|
|
229
|
+
*/
|
|
230
|
+
export interface ChipsChangeEvent extends Array<string | null> {
|
|
231
|
+
/** The selection in the `value` property's shape: a string or null for a single-select set, an array for a multi-select one. */
|
|
232
|
+
value: string | string[] | null;
|
|
233
|
+
/** The values of the selected chips, in chip order (a chip without a value gives null) */
|
|
234
|
+
selected: (string | null)[];
|
|
235
|
+
/** The value of the chip the user toggled; null for a change made by a method */
|
|
236
|
+
changed: string | null;
|
|
237
|
+
}
|
|
222
238
|
/** Events emitted by the chips container's controller. */
|
|
223
239
|
export interface ChipsEvents {
|
|
224
|
-
/**
|
|
225
|
-
|
|
240
|
+
/**
|
|
241
|
+
* The selection after the change. Read `event.value`, the same field the
|
|
242
|
+
* `<m-chips>` element's `change` carries.
|
|
243
|
+
*/
|
|
244
|
+
change: (event: ChipsChangeEvent, changedValue: string | null) => void;
|
|
226
245
|
/** The newly created chip, after it is inserted into the container. */
|
|
227
246
|
add: (chip: ChipComponent) => void;
|
|
228
247
|
/** The chip being removed, before it is destroyed. */
|
|
@@ -272,12 +291,12 @@ export interface ChipsComponent {
|
|
|
272
291
|
/**
|
|
273
292
|
* Selects chips by their values
|
|
274
293
|
* @param values - Value or array of values to select
|
|
275
|
-
* @param triggerEvent -
|
|
294
|
+
* @param triggerEvent - Emits `change` when true; silent by default (FLO-328)
|
|
276
295
|
* @returns The chips instance for chaining
|
|
277
296
|
*/
|
|
278
297
|
selectByValue: (values: string | string[], triggerEvent?: boolean) => ChipsComponent;
|
|
279
298
|
/**
|
|
280
|
-
* Clears all selections
|
|
299
|
+
* Clears all selections. Silent: only the user's change emits `change`
|
|
281
300
|
* @returns The chips instance for chaining
|
|
282
301
|
*/
|
|
283
302
|
clearSelection: () => ChipsComponent;
|
|
@@ -1,4 +1,10 @@
|
|
|
1
|
-
import type { DatePickerComponent, DatePickerConfig } from "./types.js";
|
|
1
|
+
import type { DatePickerComponent, DatePickerConfig, DatePickerValueOf } from "./types.js";
|
|
2
2
|
/** M3 calendar/input modes share a draft; modal acceptance is the commit boundary. */
|
|
3
|
-
|
|
3
|
+
/**
|
|
4
|
+
* The value's type follows a literal selectionMode (FLO-295): `'range'` makes
|
|
5
|
+
* it a pair, the default a date.
|
|
6
|
+
*/
|
|
7
|
+
declare const createDatePicker: <M extends string = "single">(config?: DatePickerConfig & {
|
|
8
|
+
selectionMode?: M;
|
|
9
|
+
}) => DatePickerComponent<DatePickerValueOf<M>>;
|
|
4
10
|
export default createDatePicker;
|
|
@@ -3,12 +3,14 @@ import { createBase, withElement } from "../../core/compose/component.js";
|
|
|
3
3
|
import { withEvents, withDisabled, withLifecycle } from "../../core/compose/features/index.js";
|
|
4
4
|
import { createElement } from "../../core/dom/create.js";
|
|
5
5
|
import { setHTML } from "../../core/dom/html.js";
|
|
6
|
+
import { activeElementOf, deepActiveElement } from "../../core/dom/focus.js";
|
|
6
7
|
import { DATEPICKER_ICONS } from "./constants.js";
|
|
7
8
|
import { PREFIX } from "../../core/config.js";
|
|
8
9
|
import { createBaseConfig, getContainerConfig } from "./config.js";
|
|
9
10
|
import { withAPI } from "./api.js";
|
|
10
11
|
import { renderCalendar } from "./render.js";
|
|
11
|
-
import { addDays, addMonths, formatDate, isSameDay, parseDate, parseInputDate } from "./utils.js";
|
|
12
|
+
import { addDays, addMonths, formatDate, isSameDay, parseDate, parseInputDate, toIsoValue } from "./utils.js";
|
|
13
|
+
const isRangeObject = (value) => typeof value === "object" && value !== null && !(value instanceof Date) && !Array.isArray(value);
|
|
12
14
|
let nextId = 0;
|
|
13
15
|
const scrollLocks = new WeakMap();
|
|
14
16
|
function lockScroll(doc) {
|
|
@@ -42,7 +44,7 @@ const createDatePicker = (config = {}) => {
|
|
|
42
44
|
isAllowed: date => (!state.minDate || date >= state.minDate) && (!state.maxDate || date <= state.maxDate) && !state.specialDates.some(item => { const special = parseDate(item.date); return item.disabled && special && isSameDay(date, special); }),
|
|
43
45
|
};
|
|
44
46
|
const modal = state.variant !== "docked";
|
|
45
|
-
let opened = false, destroyed = false, navigationRequested = false;
|
|
47
|
+
let opened = false, destroyed = false, navigationRequested = false, readOnly = false;
|
|
46
48
|
let committed = null, committedEnd = null;
|
|
47
49
|
let returnFocus = null;
|
|
48
50
|
let unlock;
|
|
@@ -67,7 +69,7 @@ const createDatePicker = (config = {}) => {
|
|
|
67
69
|
trigger.setAttribute("aria-haspopup", "dialog");
|
|
68
70
|
trigger.setAttribute("aria-controls", `${id}-dialog`);
|
|
69
71
|
trigger.setAttribute("aria-expanded", "false");
|
|
70
|
-
const help = createElement({ tag: "div", className: cls("help"), text: state.dateFormat, attributes: { id: `${id}-help` } });
|
|
72
|
+
const help = createElement({ tag: "div", className: cls("help"), text: settings.supportingText || state.dateFormat, attributes: { id: `${id}-help` } });
|
|
71
73
|
const error = createElement({ tag: "div", className: cls("error"), attributes: { id: `${id}-error`, "aria-live": "polite" } });
|
|
72
74
|
const dialog = doc.createElement("dialog");
|
|
73
75
|
dialog.id = `${id}-dialog`;
|
|
@@ -144,7 +146,8 @@ const createDatePicker = (config = {}) => {
|
|
|
144
146
|
}
|
|
145
147
|
else
|
|
146
148
|
return;
|
|
147
|
-
const
|
|
149
|
+
const focused = activeElementOf(dialog);
|
|
150
|
+
const active = focused instanceof HTMLElement ? focused.dataset.date : undefined;
|
|
148
151
|
render();
|
|
149
152
|
if (active)
|
|
150
153
|
dialog.querySelector(`[data-date="${active}"]`)?.focus({ preventScroll: true });
|
|
@@ -173,15 +176,15 @@ const createDatePicker = (config = {}) => {
|
|
|
173
176
|
else if (focus)
|
|
174
177
|
focusCurrent();
|
|
175
178
|
};
|
|
176
|
-
const emitChange = () =>
|
|
177
|
-
|
|
179
|
+
const emitChange = () => {
|
|
180
|
+
const rangeEndDate = committedEnd && new Date(committedEnd);
|
|
181
|
+
base.emit("change", { value: getValue(), rangeEndDate, formattedValue: formatted(committed, committedEnd), iso: toIsoValue(getValue(), rangeEndDate) });
|
|
182
|
+
};
|
|
183
|
+
const commitDraft = () => {
|
|
178
184
|
committed = state.selectedDate && new Date(state.selectedDate);
|
|
179
185
|
committedEnd = state.rangeEndDate && new Date(state.rangeEndDate);
|
|
180
186
|
syncInput();
|
|
181
|
-
|
|
182
|
-
base.emit("change", { value: new Date(committed), rangeEndDate: committedEnd && new Date(committedEnd), formattedValue: formatted(committed, committedEnd) });
|
|
183
|
-
else
|
|
184
|
-
emitChange();
|
|
187
|
+
emitChange();
|
|
185
188
|
};
|
|
186
189
|
const close = (restoreFocus = true) => {
|
|
187
190
|
if (!opened)
|
|
@@ -201,7 +204,7 @@ const createDatePicker = (config = {}) => {
|
|
|
201
204
|
base.emit("close", { value: getValue() });
|
|
202
205
|
};
|
|
203
206
|
const open = () => {
|
|
204
|
-
if (destroyed || opened || base.disabled.isDisabled())
|
|
207
|
+
if (destroyed || opened || base.disabled.isDisabled() || readOnly)
|
|
205
208
|
return;
|
|
206
209
|
opened = true;
|
|
207
210
|
resetDraft();
|
|
@@ -215,7 +218,8 @@ const createDatePicker = (config = {}) => {
|
|
|
215
218
|
if (!navigationRequested)
|
|
216
219
|
setDisplayDate(initial);
|
|
217
220
|
navigationRequested = false;
|
|
218
|
-
|
|
221
|
+
const opener = deepActiveElement();
|
|
222
|
+
returnFocus = opener instanceof HTMLElement && opener !== doc.body ? opener : trigger;
|
|
219
223
|
render();
|
|
220
224
|
if (modal && typeof dialog.showModal === "function" && dialog.isConnected)
|
|
221
225
|
dialog.showModal();
|
|
@@ -231,7 +235,9 @@ const createDatePicker = (config = {}) => {
|
|
|
231
235
|
focusCurrent();
|
|
232
236
|
base.emit("open", { value: getValue() });
|
|
233
237
|
};
|
|
234
|
-
const assignValue = (
|
|
238
|
+
const assignValue = (input, emit) => {
|
|
239
|
+
const given = isRangeObject(input) ? [input.start, input.end] : input;
|
|
240
|
+
const value = state.selectionMode === "range" && !Array.isArray(given) ? [given, given] : given;
|
|
235
241
|
if (destroyed || Array.isArray(value) && state.selectionMode !== "range")
|
|
236
242
|
return;
|
|
237
243
|
const start = parseDate(Array.isArray(value) ? value[0] : value);
|
|
@@ -247,6 +253,17 @@ const createDatePicker = (config = {}) => {
|
|
|
247
253
|
if (emit)
|
|
248
254
|
emitChange();
|
|
249
255
|
};
|
|
256
|
+
const clearValue = (emit) => {
|
|
257
|
+
if (destroyed)
|
|
258
|
+
return;
|
|
259
|
+
committed = null;
|
|
260
|
+
committedEnd = null;
|
|
261
|
+
resetDraft();
|
|
262
|
+
syncInput();
|
|
263
|
+
render();
|
|
264
|
+
if (emit)
|
|
265
|
+
emitChange();
|
|
266
|
+
};
|
|
250
267
|
const validateEntries = () => {
|
|
251
268
|
const fields = Array.from(dialog.querySelectorAll('[data-entry]'));
|
|
252
269
|
if (!fields.length)
|
|
@@ -282,7 +299,7 @@ const createDatePicker = (config = {}) => {
|
|
|
282
299
|
if (modal || destroyed || base.disabled.isDisabled())
|
|
283
300
|
return;
|
|
284
301
|
if (!input.value.trim()) {
|
|
285
|
-
|
|
302
|
+
clearValue(true);
|
|
286
303
|
return;
|
|
287
304
|
}
|
|
288
305
|
const pieces = state.selectionMode === "range" ? input.value.split(' - ') : [input.value];
|
|
@@ -306,8 +323,9 @@ const createDatePicker = (config = {}) => {
|
|
|
306
323
|
state.rangeEndDate = null;
|
|
307
324
|
}
|
|
308
325
|
setDisplayDate(date);
|
|
309
|
-
|
|
310
|
-
|
|
326
|
+
const whole = state.selectionMode !== "range" || !!state.rangeEndDate;
|
|
327
|
+
if ((!modal || settings.closeOnSelect) && whole)
|
|
328
|
+
commitDraft();
|
|
311
329
|
if (settings.closeOnSelect && (state.selectionMode !== "range" || state.rangeEndDate))
|
|
312
330
|
close();
|
|
313
331
|
else
|
|
@@ -407,11 +425,12 @@ const createDatePicker = (config = {}) => {
|
|
|
407
425
|
if (event.key === "Tab" && modal) {
|
|
408
426
|
const elements = Array.from(dialog.querySelectorAll('button:not(:disabled):not([tabindex="-1"]), input:not(:disabled)'));
|
|
409
427
|
const first = elements[0], last = elements.at(-1);
|
|
410
|
-
|
|
428
|
+
const focused = activeElementOf(dialog);
|
|
429
|
+
if (event.shiftKey && focused === first) {
|
|
411
430
|
event.preventDefault();
|
|
412
431
|
last?.focus();
|
|
413
432
|
}
|
|
414
|
-
else if (!event.shiftKey &&
|
|
433
|
+
else if (!event.shiftKey && focused === last) {
|
|
415
434
|
event.preventDefault();
|
|
416
435
|
first?.focus();
|
|
417
436
|
}
|
|
@@ -485,7 +504,8 @@ const createDatePicker = (config = {}) => {
|
|
|
485
504
|
const page = Math.round(Math.abs(element.scrollLeft) / element.clientWidth) - 1;
|
|
486
505
|
if (!page)
|
|
487
506
|
return;
|
|
488
|
-
const
|
|
507
|
+
const focused = activeElementOf(dialog);
|
|
508
|
+
const active = focused instanceof HTMLElement && dialog.contains(focused) ? focused : null;
|
|
489
509
|
navigate(page);
|
|
490
510
|
render(!!active?.dataset.date, active?.dataset.action);
|
|
491
511
|
};
|
|
@@ -548,7 +568,26 @@ const createDatePicker = (config = {}) => {
|
|
|
548
568
|
else
|
|
549
569
|
base.disabled.enable();
|
|
550
570
|
input.disabled = disabled;
|
|
551
|
-
trigger.disabled = disabled;
|
|
571
|
+
trigger.disabled = disabled || readOnly;
|
|
572
|
+
};
|
|
573
|
+
const setReadOnly = (value) => {
|
|
574
|
+
if (destroyed)
|
|
575
|
+
return;
|
|
576
|
+
readOnly = value;
|
|
577
|
+
if (value)
|
|
578
|
+
close();
|
|
579
|
+
input.readOnly = value || modal;
|
|
580
|
+
trigger.disabled = value || base.disabled.isDisabled();
|
|
581
|
+
base.element.classList.toggle(base.getClass("datepicker--readonly"), value);
|
|
582
|
+
};
|
|
583
|
+
const checkValidity = () => !(input.required && !committed);
|
|
584
|
+
const reportValidity = () => {
|
|
585
|
+
const valid = checkValidity();
|
|
586
|
+
if (!valid) {
|
|
587
|
+
input.setAttribute("aria-invalid", "true");
|
|
588
|
+
error.textContent = `Select a ${state.selectionMode === "range" ? "date range" : "date"}.`;
|
|
589
|
+
}
|
|
590
|
+
return valid;
|
|
552
591
|
};
|
|
553
592
|
const destroy = () => {
|
|
554
593
|
if (destroyed)
|
|
@@ -575,18 +614,16 @@ const createDatePicker = (config = {}) => {
|
|
|
575
614
|
disabled: { enable: () => setDisabled(false), disable: () => setDisabled(true), isDisabled: () => base.disabled.isDisabled() }, lifecycle: { destroy }, destroy,
|
|
576
615
|
open() { open(); return api; }, close() { close(); return api; }, getValue,
|
|
577
616
|
getFormattedValue: () => formatted(committed, committedEnd),
|
|
578
|
-
setValue(value) { assignValue(value,
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
resetDraft();
|
|
617
|
+
setValue(value) { assignValue(value, false); return api; },
|
|
618
|
+
setReadOnly(value) { setReadOnly(value); return api; }, isReadOnly: () => readOnly,
|
|
619
|
+
setRequired(value) {
|
|
620
|
+
input.required = value;
|
|
621
|
+
if (!value)
|
|
584
622
|
syncInput();
|
|
585
|
-
render();
|
|
586
|
-
emitChange();
|
|
587
|
-
}
|
|
588
623
|
return api;
|
|
589
|
-
},
|
|
624
|
+
}, checkValidity, reportValidity,
|
|
625
|
+
setSupportingText(text) { help.textContent = text || state.dateFormat; return api; },
|
|
626
|
+
clear() { clearValue(false); return api; },
|
|
590
627
|
enable() { setDisabled(false); return api; }, disable() { setDisabled(true); return api; },
|
|
591
628
|
setMinDate(value) {
|
|
592
629
|
const date = parseDate(value);
|
|
@@ -632,6 +669,10 @@ const createDatePicker = (config = {}) => {
|
|
|
632
669
|
syncInput();
|
|
633
670
|
dialog.append(renderCalendar(state), announcement);
|
|
634
671
|
setDisabled(!!settings.disabled);
|
|
672
|
+
if (settings.required)
|
|
673
|
+
input.required = true;
|
|
674
|
+
if (settings.readOnly)
|
|
675
|
+
setReadOnly(true);
|
|
635
676
|
return api;
|
|
636
677
|
};
|
|
637
678
|
export default createDatePicker;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { default } from "./datepicker.js";
|
|
2
|
-
export type { DatePickerConfig, DatePickerComponent, DatePickerEvents, DatePickerValue, DatePickerChangePayload, DatePickerVisibilityPayload, DatePickerTapPayload, DatePickerSwipePayload, DatePickerVariant, DatePickerView, DatePickerSelectionMode, } from "./types.js";
|
|
2
|
+
export type { DatePickerConfig, DatePickerComponent, DatePickerEvents, DatePickerValue, DatePickerValueOf, DatePickerInput, DatePickerChangePayload, DatePickerVisibilityPayload, DatePickerTapPayload, DatePickerSwipePayload, DatePickerVariant, DatePickerView, DatePickerSelectionMode, } from "./types.js";
|
|
3
3
|
export { DEFAULT_DATE_FORMAT } from "./types.js";
|