@a-type/ui 4.0.8 → 4.1.0-beta.2
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/dist/cjs/colors.stories.js +2 -2
- package/dist/cjs/components/actions/ActionBar.js +1 -1
- package/dist/cjs/components/actions/ActionBar.js.map +1 -1
- package/dist/cjs/components/actions/ActionButton.js +1 -1
- package/dist/cjs/components/autocomplete/Autocomplete.d.ts +112 -0
- package/dist/cjs/components/autocomplete/Autocomplete.js +119 -0
- package/dist/cjs/components/autocomplete/Autocomplete.js.map +1 -0
- package/dist/cjs/components/autocomplete/Autocomplete.stories.d.ts +52 -0
- package/dist/cjs/components/autocomplete/Autocomplete.stories.js +93 -0
- package/dist/cjs/components/autocomplete/Autocomplete.stories.js.map +1 -0
- package/dist/cjs/components/avatar/Avatar.js +2 -2
- package/dist/cjs/components/box/Box.js +5 -5
- package/dist/cjs/components/box/Box.stories.js +1 -1
- package/dist/cjs/components/button/Button.js +2 -2
- package/dist/cjs/components/button/ConfirmedButton.js +1 -1
- package/dist/cjs/components/button/ConfirmedButton.js.map +1 -1
- package/dist/cjs/components/button/classes.js +10 -10
- package/dist/cjs/components/camera/Camera.d.ts +3 -2
- package/dist/cjs/components/camera/Camera.js +44 -13
- package/dist/cjs/components/camera/Camera.js.map +1 -1
- package/dist/cjs/components/camera/Camera.stories.d.ts +1 -1
- package/dist/cjs/components/camera/Camera.stories.js +1 -1
- package/dist/cjs/components/card/Card.js +2 -2
- package/dist/cjs/components/card/Card.stories.js +2 -2
- package/dist/cjs/components/card/Card.stories.js.map +1 -1
- package/dist/cjs/components/checkbox/Checkbox.js +3 -3
- package/dist/cjs/components/chip/Chip.d.ts +3 -4
- package/dist/cjs/components/chip/Chip.js +1 -1
- package/dist/cjs/components/chip/Chip.js.map +1 -1
- package/dist/cjs/components/chip/Chip.stories.js +1 -1
- package/dist/cjs/components/chip/Chip.stories.js.map +1 -1
- package/dist/cjs/components/colorPicker/ColorPicker.js +1 -1
- package/dist/cjs/components/contextMenu/contextMenu.js +1 -1
- package/dist/cjs/components/datePicker/DatePicker.d.ts +1 -1
- package/dist/cjs/components/datePicker/DatePicker.js +2 -2
- package/dist/cjs/components/datePicker/DatePicker.js.map +1 -1
- package/dist/cjs/components/datePicker/DatePicker.stories.d.ts +1 -1
- package/dist/cjs/components/dialog/Dialog.d.ts +4 -4
- package/dist/cjs/components/dialog/Dialog.js +15 -15
- package/dist/cjs/components/dialog/Dialog.js.map +1 -1
- package/dist/cjs/components/dialog/Dialog.stories.d.ts +2 -2
- package/dist/cjs/components/dialog/Dialog.stories.js +3 -3
- package/dist/cjs/components/dropdownMenu/DropdownMenu.js +11 -44
- package/dist/cjs/components/dropdownMenu/DropdownMenu.js.map +1 -1
- package/dist/cjs/components/editableText/EditableText.js +1 -1
- package/dist/cjs/components/emojiPicker/EmojiPicker.js +4 -4
- package/dist/cjs/components/emojiPicker/EmojiPicker.js.map +1 -1
- package/dist/cjs/components/forms/CheckboxField.js +1 -1
- package/dist/cjs/components/forms/CheckboxField.js.map +1 -1
- package/dist/cjs/components/forms/EmojiField.js +1 -1
- package/dist/cjs/components/forms/FormikForm.stories.js +1 -1
- package/dist/cjs/components/forms/FormikForm.stories.js.map +1 -1
- package/dist/cjs/components/forms/NumberStepperField.d.ts +1 -2
- package/dist/cjs/components/forms/NumberStepperField.js +1 -1
- package/dist/cjs/components/forms/NumberStepperField.js.map +1 -1
- package/dist/cjs/components/forms/SwitchField.js +1 -1
- package/dist/cjs/components/forms/SwitchField.js.map +1 -1
- package/dist/cjs/components/forms/ToggleGroupField.js +1 -1
- package/dist/cjs/components/forms/ToggleGroupField.js.map +1 -1
- package/dist/cjs/components/horizontalList/HorizontalList.js +2 -2
- package/dist/cjs/components/horizontalList/HorizontalList.stories.js +3 -3
- package/dist/cjs/components/icon/Icon.stories.js +1 -1
- package/dist/cjs/components/imageUploader/ImageUploader.js +6 -6
- package/dist/cjs/components/imageUploader/ImageUploader.stories.js +1 -1
- package/dist/cjs/components/index.d.ts +2 -0
- package/dist/cjs/components/index.js +2 -0
- package/dist/cjs/components/index.js.map +1 -1
- package/dist/cjs/components/input/Input.d.ts +7 -2
- package/dist/cjs/components/input/Input.js +26 -12
- package/dist/cjs/components/input/Input.js.map +1 -1
- package/dist/cjs/components/input/Input.stories.d.ts +5 -1
- package/dist/cjs/components/input/Input.stories.js +6 -2
- package/dist/cjs/components/input/Input.stories.js.map +1 -1
- package/dist/cjs/components/layouts/PageContent.js +1 -1
- package/dist/cjs/components/layouts/PageContent.js.map +1 -1
- package/dist/cjs/components/layouts/PageFixedArea.js +1 -1
- package/dist/cjs/components/layouts/PageNav.js +1 -1
- package/dist/cjs/components/layouts/PageNowPlaying.d.ts +1 -2
- package/dist/cjs/components/layouts/PageNowPlaying.js +3 -5
- package/dist/cjs/components/layouts/PageNowPlaying.js.map +1 -1
- package/dist/cjs/components/layouts/PageRoot.js +1 -1
- package/dist/cjs/components/layouts/layouts.stories.js +2 -2
- package/dist/cjs/components/lightbox/Lightbox.js +1 -1
- package/dist/cjs/components/marquee/marquee.js +1 -1
- package/dist/cjs/components/marquee/marquee.stories.js +1 -1
- package/dist/cjs/components/navBar/NavBar.js +1 -1
- package/dist/cjs/components/note/Note.js +1 -1
- package/dist/cjs/components/numberStepper/NumberStepper.js +3 -3
- package/dist/cjs/components/particles/ParticleLayer.js +1 -1
- package/dist/cjs/components/particles/ParticleLayer.stories.js +2 -2
- package/dist/cjs/components/particles/particlesState.js +2 -4
- package/dist/cjs/components/particles/particlesState.js.map +1 -1
- package/dist/cjs/components/peek/Peek.js +2 -2
- package/dist/cjs/components/popover/Popover.d.ts +2 -4
- package/dist/cjs/components/popover/Popover.js +7 -6
- package/dist/cjs/components/popover/Popover.js.map +1 -1
- package/dist/cjs/components/primitives/menus.d.ts +5 -0
- package/dist/cjs/components/primitives/menus.js +14 -0
- package/dist/cjs/components/primitives/menus.js.map +1 -0
- package/dist/cjs/components/progress/Progress.d.ts +2 -2
- package/dist/cjs/components/progress/Progress.js +2 -2
- package/dist/cjs/components/progress/Progress.js.map +1 -1
- package/dist/cjs/components/progress/Progress.stories.d.ts +1 -1
- package/dist/cjs/components/pwaInstall/PwaInstall.d.ts +2 -2
- package/dist/cjs/components/pwaInstall/PwaInstall.js +2 -2
- package/dist/cjs/components/pwaInstall/PwaInstall.js.map +1 -1
- package/dist/cjs/components/quickAction/QuickAction.d.ts +17 -0
- package/dist/cjs/components/quickAction/QuickAction.js +63 -0
- package/dist/cjs/components/quickAction/QuickAction.js.map +1 -0
- package/dist/cjs/components/quickAction/QuickAction.stories.d.ts +22 -0
- package/dist/cjs/components/quickAction/QuickAction.stories.js +61 -0
- package/dist/cjs/components/quickAction/QuickAction.stories.js.map +1 -0
- package/dist/cjs/components/richEditor/index.js +2 -2
- package/dist/cjs/components/richEditor/index.js.map +1 -1
- package/dist/cjs/components/scrollArea/ScrollArea.stories.js +1 -1
- package/dist/cjs/components/select/Select.js +3 -3
- package/dist/cjs/components/select/Select.js.map +1 -1
- package/dist/cjs/components/select/Select.stories.js +1 -1
- package/dist/cjs/components/select/Select.stories.js.map +1 -1
- package/dist/cjs/components/skeletons/skeletons.js +1 -1
- package/dist/cjs/components/slider/Slider.d.ts +1 -2
- package/dist/cjs/components/slider/Slider.js +1 -2
- package/dist/cjs/components/slider/Slider.js.map +1 -1
- package/dist/cjs/components/slider/Slider.stories.d.ts +1 -1
- package/dist/cjs/components/slider/Slider.stories.js +1 -1
- package/dist/cjs/components/spinner/Spinner.js +2 -2
- package/dist/cjs/components/textArea/TextArea.js +1 -1
- package/dist/cjs/components/toasts/toasts.js +5 -5
- package/dist/cjs/components/tooltip/Tooltip.js +4 -4
- package/dist/cjs/components/viewport/Viewport.js +3 -3
- package/dist/cjs/components/viewport/ViewportContent.js +1 -1
- package/dist/cjs/components/viewport/useViewportGestures.js +2 -1
- package/dist/cjs/components/viewport/useViewportGestures.js.map +1 -1
- package/dist/cjs/hooks/useStorage.js +4 -4
- package/dist/cjs/hooks/useStorage.js.map +1 -1
- package/dist/cjs/hooks/useTitleBarColor.js +1 -1
- package/dist/cjs/hooks/useTitleBarColor.stories.js +1 -1
- package/dist/cjs/hooks/withProps.d.ts +2 -2
- package/dist/cjs/systems/inputs.d.ts +3 -0
- package/dist/cjs/systems/inputs.js +14 -0
- package/dist/cjs/systems/inputs.js.map +1 -0
- package/dist/cjs/themes.stories.js +1 -1
- package/dist/cjs/uno/logic/color.js +0 -9
- package/dist/cjs/uno/logic/color.js.map +1 -1
- package/dist/cjs/uno/preflights/layers.js +1 -1
- package/dist/cjs/uno/preflights/layers.js.map +1 -1
- package/dist/cjs/uno/rules/color.js +10 -10
- package/dist/cjs/uno/rules/color.js.map +1 -1
- package/dist/cjs/utilities.stories.js +1 -1
- package/dist/css/main.css +7 -6
- package/dist/esm/colors.stories.js +2 -2
- package/dist/esm/components/actions/ActionBar.js +1 -1
- package/dist/esm/components/actions/ActionBar.js.map +1 -1
- package/dist/esm/components/actions/ActionButton.js +1 -1
- package/dist/esm/components/autocomplete/Autocomplete.d.ts +112 -0
- package/dist/esm/components/autocomplete/Autocomplete.js +113 -0
- package/dist/esm/components/autocomplete/Autocomplete.js.map +1 -0
- package/dist/esm/components/autocomplete/Autocomplete.stories.d.ts +52 -0
- package/dist/esm/components/autocomplete/Autocomplete.stories.js +90 -0
- package/dist/esm/components/autocomplete/Autocomplete.stories.js.map +1 -0
- package/dist/esm/components/avatar/Avatar.js +2 -2
- package/dist/esm/components/box/Box.js +5 -5
- package/dist/esm/components/box/Box.stories.js +1 -1
- package/dist/esm/components/button/Button.js +2 -2
- package/dist/esm/components/button/ConfirmedButton.js +1 -1
- package/dist/esm/components/button/ConfirmedButton.js.map +1 -1
- package/dist/esm/components/button/classes.js +10 -10
- package/dist/esm/components/camera/Camera.d.ts +3 -2
- package/dist/esm/components/camera/Camera.js +11 -10
- package/dist/esm/components/camera/Camera.js.map +1 -1
- package/dist/esm/components/camera/Camera.stories.d.ts +1 -1
- package/dist/esm/components/camera/Camera.stories.js +1 -1
- package/dist/esm/components/card/Card.js +2 -2
- package/dist/esm/components/card/Card.stories.js +2 -2
- package/dist/esm/components/card/Card.stories.js.map +1 -1
- package/dist/esm/components/checkbox/Checkbox.js +3 -3
- package/dist/esm/components/chip/Chip.d.ts +3 -4
- package/dist/esm/components/chip/Chip.js +1 -1
- package/dist/esm/components/chip/Chip.js.map +1 -1
- package/dist/esm/components/chip/Chip.stories.js +1 -1
- package/dist/esm/components/chip/Chip.stories.js.map +1 -1
- package/dist/esm/components/colorPicker/ColorPicker.js +1 -1
- package/dist/esm/components/contextMenu/contextMenu.js +1 -1
- package/dist/esm/components/datePicker/DatePicker.d.ts +1 -1
- package/dist/esm/components/datePicker/DatePicker.js +2 -2
- package/dist/esm/components/datePicker/DatePicker.js.map +1 -1
- package/dist/esm/components/datePicker/DatePicker.stories.d.ts +1 -1
- package/dist/esm/components/dialog/Dialog.d.ts +4 -4
- package/dist/esm/components/dialog/Dialog.js +15 -15
- package/dist/esm/components/dialog/Dialog.js.map +1 -1
- package/dist/esm/components/dialog/Dialog.stories.d.ts +2 -2
- package/dist/esm/components/dialog/Dialog.stories.js +3 -3
- package/dist/esm/components/dropdownMenu/DropdownMenu.js +8 -8
- package/dist/esm/components/dropdownMenu/DropdownMenu.js.map +1 -1
- package/dist/esm/components/editableText/EditableText.js +1 -1
- package/dist/esm/components/emojiPicker/EmojiPicker.js +4 -4
- package/dist/esm/components/emojiPicker/EmojiPicker.js.map +1 -1
- package/dist/esm/components/forms/CheckboxField.js +1 -1
- package/dist/esm/components/forms/CheckboxField.js.map +1 -1
- package/dist/esm/components/forms/EmojiField.js +1 -1
- package/dist/esm/components/forms/FormikForm.stories.js +1 -1
- package/dist/esm/components/forms/FormikForm.stories.js.map +1 -1
- package/dist/esm/components/forms/NumberStepperField.d.ts +1 -2
- package/dist/esm/components/forms/NumberStepperField.js +1 -1
- package/dist/esm/components/forms/NumberStepperField.js.map +1 -1
- package/dist/esm/components/forms/SwitchField.js +1 -1
- package/dist/esm/components/forms/SwitchField.js.map +1 -1
- package/dist/esm/components/forms/ToggleGroupField.js +1 -1
- package/dist/esm/components/forms/ToggleGroupField.js.map +1 -1
- package/dist/esm/components/horizontalList/HorizontalList.js +2 -2
- package/dist/esm/components/horizontalList/HorizontalList.stories.js +3 -3
- package/dist/esm/components/icon/Icon.stories.js +1 -1
- package/dist/esm/components/imageUploader/ImageUploader.js +6 -6
- package/dist/esm/components/imageUploader/ImageUploader.stories.js +1 -1
- package/dist/esm/components/index.d.ts +2 -0
- package/dist/esm/components/index.js +2 -0
- package/dist/esm/components/index.js.map +1 -1
- package/dist/esm/components/input/Input.d.ts +7 -2
- package/dist/esm/components/input/Input.js +29 -14
- package/dist/esm/components/input/Input.js.map +1 -1
- package/dist/esm/components/input/Input.stories.d.ts +5 -1
- package/dist/esm/components/input/Input.stories.js +5 -1
- package/dist/esm/components/input/Input.stories.js.map +1 -1
- package/dist/esm/components/layouts/PageContent.js +1 -1
- package/dist/esm/components/layouts/PageContent.js.map +1 -1
- package/dist/esm/components/layouts/PageFixedArea.js +1 -1
- package/dist/esm/components/layouts/PageNav.js +1 -1
- package/dist/esm/components/layouts/PageNowPlaying.d.ts +1 -2
- package/dist/esm/components/layouts/PageNowPlaying.js +3 -5
- package/dist/esm/components/layouts/PageNowPlaying.js.map +1 -1
- package/dist/esm/components/layouts/PageRoot.js +1 -1
- package/dist/esm/components/layouts/layouts.stories.js +2 -2
- package/dist/esm/components/lightbox/Lightbox.js +1 -1
- package/dist/esm/components/marquee/marquee.js +1 -1
- package/dist/esm/components/marquee/marquee.stories.js +1 -1
- package/dist/esm/components/navBar/NavBar.js +1 -1
- package/dist/esm/components/note/Note.js +1 -1
- package/dist/esm/components/numberStepper/NumberStepper.js +3 -3
- package/dist/esm/components/particles/ParticleLayer.js +1 -1
- package/dist/esm/components/particles/ParticleLayer.stories.js +2 -2
- package/dist/esm/components/particles/particlesState.js +2 -4
- package/dist/esm/components/particles/particlesState.js.map +1 -1
- package/dist/esm/components/peek/Peek.js +2 -2
- package/dist/esm/components/popover/Popover.d.ts +2 -4
- package/dist/esm/components/popover/Popover.js +7 -6
- package/dist/esm/components/popover/Popover.js.map +1 -1
- package/dist/esm/components/primitives/menus.d.ts +5 -0
- package/dist/esm/components/primitives/menus.js +8 -0
- package/dist/esm/components/primitives/menus.js.map +1 -0
- package/dist/esm/components/progress/Progress.d.ts +2 -2
- package/dist/esm/components/progress/Progress.js +2 -2
- package/dist/esm/components/progress/Progress.js.map +1 -1
- package/dist/esm/components/progress/Progress.stories.d.ts +1 -1
- package/dist/esm/components/pwaInstall/PwaInstall.d.ts +2 -2
- package/dist/esm/components/pwaInstall/PwaInstall.js +2 -2
- package/dist/esm/components/pwaInstall/PwaInstall.js.map +1 -1
- package/dist/esm/components/quickAction/QuickAction.d.ts +17 -0
- package/dist/esm/components/quickAction/QuickAction.js +56 -0
- package/dist/esm/components/quickAction/QuickAction.js.map +1 -0
- package/dist/esm/components/quickAction/QuickAction.stories.d.ts +22 -0
- package/dist/esm/components/quickAction/QuickAction.stories.js +55 -0
- package/dist/esm/components/quickAction/QuickAction.stories.js.map +1 -0
- package/dist/esm/components/richEditor/index.js +2 -2
- package/dist/esm/components/richEditor/index.js.map +1 -1
- package/dist/esm/components/scrollArea/ScrollArea.stories.js +1 -1
- package/dist/esm/components/select/Select.js +3 -3
- package/dist/esm/components/select/Select.js.map +1 -1
- package/dist/esm/components/select/Select.stories.js +1 -1
- package/dist/esm/components/select/Select.stories.js.map +1 -1
- package/dist/esm/components/skeletons/skeletons.js +1 -1
- package/dist/esm/components/slider/Slider.d.ts +1 -2
- package/dist/esm/components/slider/Slider.js +1 -2
- package/dist/esm/components/slider/Slider.js.map +1 -1
- package/dist/esm/components/slider/Slider.stories.d.ts +1 -1
- package/dist/esm/components/slider/Slider.stories.js +1 -1
- package/dist/esm/components/spinner/Spinner.js +2 -2
- package/dist/esm/components/textArea/TextArea.js +1 -1
- package/dist/esm/components/toasts/toasts.js +5 -5
- package/dist/esm/components/tooltip/Tooltip.js +4 -4
- package/dist/esm/components/viewport/Viewport.js +3 -3
- package/dist/esm/components/viewport/ViewportContent.js +1 -1
- package/dist/esm/components/viewport/useViewportGestures.js +2 -1
- package/dist/esm/components/viewport/useViewportGestures.js.map +1 -1
- package/dist/esm/hooks/useStorage.js +4 -4
- package/dist/esm/hooks/useStorage.js.map +1 -1
- package/dist/esm/hooks/useTitleBarColor.js +1 -1
- package/dist/esm/hooks/useTitleBarColor.stories.js +1 -1
- package/dist/esm/hooks/withProps.d.ts +2 -2
- package/dist/esm/systems/inputs.d.ts +3 -0
- package/dist/esm/systems/inputs.js +11 -0
- package/dist/esm/systems/inputs.js.map +1 -0
- package/dist/esm/themes.stories.js +1 -1
- package/dist/esm/uno/logic/color.js +0 -9
- package/dist/esm/uno/logic/color.js.map +1 -1
- package/dist/esm/uno/preflights/layers.js +1 -1
- package/dist/esm/uno/preflights/layers.js.map +1 -1
- package/dist/esm/uno/rules/color.js +10 -10
- package/dist/esm/uno/rules/color.js.map +1 -1
- package/dist/esm/utilities.stories.js +1 -1
- package/package.json +18 -2
- package/src/colors.stories.tsx +11 -11
- package/src/components/actions/ActionBar.tsx +3 -3
- package/src/components/actions/ActionButton.tsx +1 -1
- package/src/components/autocomplete/Autocomplete.stories.tsx +212 -0
- package/src/components/autocomplete/Autocomplete.tsx +336 -0
- package/src/components/avatar/Avatar.tsx +3 -3
- package/src/components/box/Box.stories.tsx +1 -1
- package/src/components/box/Box.tsx +5 -5
- package/src/components/button/Button.tsx +3 -3
- package/src/components/button/ConfirmedButton.tsx +1 -1
- package/src/components/button/classes.tsx +18 -18
- package/src/components/camera/Camera.stories.tsx +1 -1
- package/src/components/camera/Camera.tsx +26 -13
- package/src/components/card/Card.stories.tsx +2 -8
- package/src/components/card/Card.tsx +5 -5
- package/src/components/checkbox/Checkbox.tsx +5 -5
- package/src/components/chip/Chip.stories.tsx +1 -4
- package/src/components/chip/Chip.tsx +6 -8
- package/src/components/colorPicker/ColorPicker.tsx +1 -1
- package/src/components/contextMenu/contextMenu.tsx +3 -3
- package/src/components/datePicker/DatePicker.tsx +3 -2
- package/src/components/dialog/Dialog.stories.tsx +3 -3
- package/src/components/dialog/Dialog.tsx +535 -537
- package/src/components/dropdownMenu/DropdownMenu.tsx +173 -190
- package/src/components/editableText/EditableText.tsx +2 -2
- package/src/components/emojiPicker/EmojiPicker.tsx +9 -4
- package/src/components/forms/CheckboxField.tsx +1 -1
- package/src/components/forms/EmojiField.tsx +1 -1
- package/src/components/forms/FormikForm.stories.tsx +1 -1
- package/src/components/forms/NumberStepperField.tsx +0 -2
- package/src/components/forms/SwitchField.tsx +1 -1
- package/src/components/forms/ToggleGroupField.tsx +1 -1
- package/src/components/horizontalList/HorizontalList.stories.tsx +8 -8
- package/src/components/horizontalList/HorizontalList.tsx +5 -5
- package/src/components/icon/Icon.stories.tsx +2 -2
- package/src/components/imageUploader/ImageUploader.stories.tsx +1 -1
- package/src/components/imageUploader/ImageUploader.tsx +6 -6
- package/src/components/index.ts +2 -0
- package/src/components/input/Input.stories.tsx +14 -1
- package/src/components/input/Input.tsx +107 -74
- package/src/components/layouts/PageContent.tsx +1 -1
- package/src/components/layouts/PageFixedArea.tsx +1 -1
- package/src/components/layouts/PageNav.tsx +3 -3
- package/src/components/layouts/PageNowPlaying.tsx +3 -7
- package/src/components/layouts/PageRoot.tsx +3 -3
- package/src/components/layouts/layouts.stories.tsx +3 -3
- package/src/components/lightbox/Lightbox.tsx +1 -1
- package/src/components/marquee/marquee.stories.tsx +1 -1
- package/src/components/marquee/marquee.tsx +2 -2
- package/src/components/navBar/NavBar.tsx +3 -3
- package/src/components/note/Note.tsx +6 -6
- package/src/components/numberStepper/NumberStepper.tsx +3 -3
- package/src/components/particles/ParticleLayer.stories.tsx +2 -2
- package/src/components/particles/ParticleLayer.tsx +1 -1
- package/src/components/particles/particlesState.ts +2 -4
- package/src/components/peek/Peek.tsx +4 -4
- package/src/components/popover/Popover.tsx +123 -134
- package/src/components/primitives/menus.tsx +44 -0
- package/src/components/progress/Progress.tsx +2 -2
- package/src/components/pwaInstall/PwaInstall.tsx +4 -4
- package/src/components/quickAction/QuickAction.stories.tsx +106 -0
- package/src/components/quickAction/QuickAction.tsx +107 -0
- package/src/components/richEditor/index.tsx +13 -13
- package/src/components/scrollArea/ScrollArea.stories.tsx +1 -1
- package/src/components/select/Select.stories.tsx +1 -1
- package/src/components/select/Select.tsx +20 -20
- package/src/components/skeletons/skeletons.tsx +1 -1
- package/src/components/slider/Slider.stories.tsx +1 -1
- package/src/components/slider/Slider.tsx +1 -2
- package/src/components/spinner/Spinner.tsx +3 -3
- package/src/components/textArea/TextArea.tsx +1 -1
- package/src/components/toasts/toasts.tsx +13 -13
- package/src/components/tooltip/Tooltip.tsx +6 -6
- package/src/components/viewport/Viewport.tsx +3 -3
- package/src/components/viewport/ViewportContent.tsx +1 -1
- package/src/components/viewport/useViewportGestures.ts +1 -1
- package/src/hooks/useStorage.ts +4 -4
- package/src/hooks/useTitleBarColor.stories.tsx +1 -1
- package/src/hooks/useTitleBarColor.ts +1 -1
- package/src/hooks/withProps.tsx +2 -2
- package/src/systems/inputs.ts +11 -0
- package/src/themes.stories.tsx +1 -1
- package/src/uno/logic/color.ts +0 -12
- package/src/uno/preflights/layers.ts +1 -1
- package/src/uno/rules/color.ts +10 -10
- package/src/utilities.stories.tsx +3 -3
package/src/components/index.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export * from '@base-ui/react/use-render';
|
|
2
2
|
export * from './actions/index.js';
|
|
3
|
+
export * from './autocomplete/Autocomplete.js';
|
|
3
4
|
export * from './avatar/index.js';
|
|
4
5
|
export * from './box/Box.js';
|
|
5
6
|
export * from './button/index.js';
|
|
@@ -38,6 +39,7 @@ export * from './popover/index.js';
|
|
|
38
39
|
export * from './progress/Progress.js';
|
|
39
40
|
export * from './provider/Provider.js';
|
|
40
41
|
export * from './pwaInstall/index.js';
|
|
42
|
+
export * from './quickAction/QuickAction.js';
|
|
41
43
|
export * from './relativeTime/index.js';
|
|
42
44
|
export * from './richEditor/index.js';
|
|
43
45
|
export * from './scrollArea/ScrollArea.js';
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { Meta, StoryObj } from '@storybook/react';
|
|
2
2
|
import { Box } from '../box/Box.js';
|
|
3
3
|
import { Button } from '../button/Button.js';
|
|
4
|
+
import { Icon } from '../icon/Icon.js';
|
|
4
5
|
import { Input } from './Input.js';
|
|
5
6
|
|
|
6
7
|
const meta = {
|
|
@@ -24,7 +25,19 @@ export const ButtonAndInput: Story = {
|
|
|
24
25
|
render: (args) => (
|
|
25
26
|
<Box gap items="center">
|
|
26
27
|
<Input placeholder="Type something..." {...args} />
|
|
27
|
-
<Button
|
|
28
|
+
<Button>Submit</Button>
|
|
28
29
|
</Box>
|
|
29
30
|
),
|
|
30
31
|
};
|
|
32
|
+
|
|
33
|
+
export const WithAccessories: Story = {
|
|
34
|
+
render: (args) => (
|
|
35
|
+
<Input.Border>
|
|
36
|
+
<Icon name="search" />
|
|
37
|
+
<Input.Input placeholder="Search..." {...args} />
|
|
38
|
+
<Button emphasis="ghost">
|
|
39
|
+
<Icon name="arrowRight" />
|
|
40
|
+
</Button>
|
|
41
|
+
</Input.Border>
|
|
42
|
+
),
|
|
43
|
+
};
|
|
@@ -1,74 +1,107 @@
|
|
|
1
|
-
import { Input as
|
|
2
|
-
import
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
'layer-components:(
|
|
13
|
-
'layer-components:focus:(outline-none
|
|
14
|
-
'layer-components:
|
|
15
|
-
'layer-components:
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
autoSelect,
|
|
32
|
-
onFocus,
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
placeholders,
|
|
36
|
-
placeholder,
|
|
37
|
-
placeholdersIntervalMs = 5000,
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
{
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
1
|
+
import { Input as BaseInput } from '@base-ui/react/input';
|
|
2
|
+
import clsx from 'clsx';
|
|
3
|
+
import { ComponentPropsWithRef, FocusEvent, FocusEventHandler } from 'react';
|
|
4
|
+
import { withClassName } from '../../hooks.js';
|
|
5
|
+
import { useRotatingShuffledValue } from '../../hooks/useRotatingShuffledValue.js';
|
|
6
|
+
import { inputInfo } from '../../systems/inputs.js';
|
|
7
|
+
|
|
8
|
+
export const inputClassName = clsx(
|
|
9
|
+
'layer-components:(min-w-60px flex-1 select-auto border-none px-0 py-1.25 text-md font-inherit bg-transparent)',
|
|
10
|
+
'layer-components:md:(min-w-120px)',
|
|
11
|
+
'layer-components:placeholder:(color-gray-dark)',
|
|
12
|
+
'layer-components:focus:(outline-none)',
|
|
13
|
+
'layer-components:focus-visible:(outline-none)',
|
|
14
|
+
'layer-components:first:(rounded-l-inherit pl-md)',
|
|
15
|
+
'layer-components:last:(rounded-r-inherit pr-md)',
|
|
16
|
+
);
|
|
17
|
+
|
|
18
|
+
const inputBorderClassName = clsx(
|
|
19
|
+
'layer-components:(flex flex-row items-center gap-xs border-1 rounded-lg border-solid text-md shadow-sm shadow-inset transition-shadow color-black bg-white border-gray-dark)',
|
|
20
|
+
'layer-components:(w-max-content overflow-clip)',
|
|
21
|
+
'layer-components:[&:has(input:disabled)]:(shadow-none bg-transparent border-gray placeholder-gray-dark)',
|
|
22
|
+
'layer-components:[&:has(input:focus-visible)]:(outline-none ring ring-4 ring-accent)',
|
|
23
|
+
'layer-variants:[&:has(input:focus[data-focus-clicked])]:(outline-none ring ring-4 bg-lighten-3 ring-main-light)',
|
|
24
|
+
'layer-components:[&:has(input:hover)]:(border-black)',
|
|
25
|
+
'layer-components:[&>.icon]:(mx-sm)',
|
|
26
|
+
);
|
|
27
|
+
|
|
28
|
+
const InputBorder = withClassName('div', inputBorderClassName);
|
|
29
|
+
|
|
30
|
+
const InnerInput = function InnerInput({
|
|
31
|
+
autoSelect,
|
|
32
|
+
onFocus,
|
|
33
|
+
onBlur,
|
|
34
|
+
className,
|
|
35
|
+
placeholders,
|
|
36
|
+
placeholder,
|
|
37
|
+
placeholdersIntervalMs = 5000,
|
|
38
|
+
onValueChange,
|
|
39
|
+
|
|
40
|
+
...props
|
|
41
|
+
}: InputProps) {
|
|
42
|
+
const handleFocus: FocusEventHandler<HTMLInputElement> = (
|
|
43
|
+
ev: FocusEvent<HTMLInputElement>,
|
|
44
|
+
) => {
|
|
45
|
+
if (autoSelect) {
|
|
46
|
+
ev.target.select();
|
|
47
|
+
}
|
|
48
|
+
if (
|
|
49
|
+
inputInfo.lastPointerDown &&
|
|
50
|
+
Date.now() - inputInfo.lastPointerDown < 200
|
|
51
|
+
) {
|
|
52
|
+
ev.currentTarget.setAttribute('data-focus-clicked', 'true');
|
|
53
|
+
}
|
|
54
|
+
onFocus?.(ev);
|
|
55
|
+
};
|
|
56
|
+
const handleBlur: FocusEventHandler<HTMLInputElement> = (ev) => {
|
|
57
|
+
onBlur?.(ev);
|
|
58
|
+
ev.currentTarget.removeAttribute('data-focus-clicked');
|
|
59
|
+
};
|
|
60
|
+
const randomPlaceholder = useRotatingShuffledValue(
|
|
61
|
+
placeholders ?? [],
|
|
62
|
+
placeholdersIntervalMs,
|
|
63
|
+
);
|
|
64
|
+
|
|
65
|
+
return (
|
|
66
|
+
<BaseInput
|
|
67
|
+
placeholder={placeholder ?? randomPlaceholder}
|
|
68
|
+
onFocus={handleFocus}
|
|
69
|
+
onValueChange={onValueChange}
|
|
70
|
+
onBlur={handleBlur}
|
|
71
|
+
className={clsx(inputClassName, className)}
|
|
72
|
+
{...props}
|
|
73
|
+
/>
|
|
74
|
+
);
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
export interface InputProps extends ComponentPropsWithRef<'input'> {
|
|
78
|
+
autoSelect?: boolean;
|
|
79
|
+
/** Shuffle between random placeholders */
|
|
80
|
+
placeholders?: string[];
|
|
81
|
+
placeholdersIntervalMs?: number;
|
|
82
|
+
onValueChange?: (value: string) => void;
|
|
83
|
+
borderRef?: React.Ref<HTMLDivElement>;
|
|
84
|
+
startAccessory?: React.ReactNode;
|
|
85
|
+
endAccessory?: React.ReactNode;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
const InputDefault = function InputDefault({
|
|
89
|
+
className,
|
|
90
|
+
borderRef,
|
|
91
|
+
startAccessory,
|
|
92
|
+
endAccessory,
|
|
93
|
+
...props
|
|
94
|
+
}: InputProps) {
|
|
95
|
+
return (
|
|
96
|
+
<InputBorder ref={borderRef} className={className}>
|
|
97
|
+
{startAccessory}
|
|
98
|
+
<InnerInput {...props} />
|
|
99
|
+
{endAccessory}
|
|
100
|
+
</InputBorder>
|
|
101
|
+
);
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
export const Input = Object.assign(InputDefault, {
|
|
105
|
+
Border: InputBorder,
|
|
106
|
+
Input: InnerInput,
|
|
107
|
+
});
|
|
@@ -36,7 +36,7 @@ export function PageContent({
|
|
|
36
36
|
container="reset"
|
|
37
37
|
className={classNames(
|
|
38
38
|
'[grid-area:content]',
|
|
39
|
-
'layer-components:(max-w-full min-w-0
|
|
39
|
+
'layer-components:flex-1-0-auto layer-components:(mx-auto max-w-full min-w-0)',
|
|
40
40
|
className,
|
|
41
41
|
)}
|
|
42
42
|
ref={finalRef}
|
|
@@ -9,7 +9,7 @@ export function PageFixedArea({
|
|
|
9
9
|
<div
|
|
10
10
|
{...props}
|
|
11
11
|
className={classNames(
|
|
12
|
-
'layer-components:(sticky top-0 z-nav
|
|
12
|
+
'layer-components:(sticky top-0 z-nav w-full flex flex-col items-stretch gap-2 bg-wash)',
|
|
13
13
|
className,
|
|
14
14
|
)}
|
|
15
15
|
/>
|
|
@@ -26,9 +26,9 @@ export function PageNav({
|
|
|
26
26
|
<HideWhileKeyboardOpen
|
|
27
27
|
{...props}
|
|
28
28
|
className={classNames(
|
|
29
|
-
'layer-components:([grid-area:nav] sticky bottom-0
|
|
30
|
-
'layer-components:before:(
|
|
31
|
-
'layer-components:md:([grid-area:nav] sticky
|
|
29
|
+
'layer-components:([grid-area:nav] sticky bottom-0 z-[var(--z-nav)] pb-[calc(0.25rem+env(safe-area-inset-bottom,0px))] bg-inherit)',
|
|
30
|
+
'layer-components:before:(absolute inset-x-4 top-0 h-px content-[""] bg-gray-dark/80)',
|
|
31
|
+
'layer-components:md:([grid-area:nav] sticky bottom-auto left-auto right-auto top-lg h-auto) layer-components:md:before:(hidden)',
|
|
32
32
|
className,
|
|
33
33
|
)}
|
|
34
34
|
ref={ref}
|
|
@@ -7,11 +7,9 @@ import { useConfig } from '../provider/Provider.js';
|
|
|
7
7
|
|
|
8
8
|
export function PageNowPlaying({
|
|
9
9
|
className,
|
|
10
|
-
unstyled,
|
|
11
10
|
keepAboveKeyboard,
|
|
12
11
|
...props
|
|
13
12
|
}: HTMLAttributes<HTMLDivElement> & {
|
|
14
|
-
unstyled?: boolean;
|
|
15
13
|
keepAboveKeyboard?: boolean;
|
|
16
14
|
}) {
|
|
17
15
|
const { virtualKeyboardBehavior } = useConfig();
|
|
@@ -21,15 +19,13 @@ export function PageNowPlaying({
|
|
|
21
19
|
<div
|
|
22
20
|
{...props}
|
|
23
21
|
className={classNames(
|
|
24
|
-
'layer-components:(fixed left-0 right-0 z-[var(--z-now-playing)] flex flex-col gap-2
|
|
22
|
+
'layer-components:(fixed left-0 right-0 z-[var(--z-now-playing)] flex flex-col items-end gap-2)',
|
|
25
23
|
// on mobile, this must be positioned above any nav bar that's present,
|
|
26
24
|
// or at minimum in the safe area
|
|
27
25
|
'layer-components:bottom-[var(--nav-height,env(safe-area-inset-bottom,0px))]',
|
|
28
26
|
'layer-components:transition-bottom',
|
|
29
|
-
'layer-components:md:(fixed bottom-3 left-[var(--content-left,20%)]
|
|
30
|
-
|
|
31
|
-
? 'layer-variants:p-2'
|
|
32
|
-
: 'layer-components:(bg-wash p-2px rounded-xl border-light shadow-md min-w-32px items-center justify-center m-2 w-auto)',
|
|
27
|
+
'layer-components:md:(fixed bottom-3 left-[var(--content-left,20%)] top-auto w-[var(--content-width,100%)] items-end p-0 opacity-[var(--content-ready,0)] transition-opacity)',
|
|
28
|
+
'layer-variants:p-2',
|
|
33
29
|
keepAboveKeyboard &&
|
|
34
30
|
virtualKeyboardBehavior === 'overlay' &&
|
|
35
31
|
'layer-variants:lt-md:bottom-[max(var(--mock-virtual-keyboard-height,env(keyboard-inset-height,0px),var(--nav-height,env(safe-area-inset-bottom,0px))))]',
|
|
@@ -7,9 +7,9 @@ export function PageRoot({ className, children, ...rest }: PageRootProps) {
|
|
|
7
7
|
return (
|
|
8
8
|
<div
|
|
9
9
|
className={clsx(
|
|
10
|
-
'layer-components:(flex-
|
|
11
|
-
'layer-components:(grid grid-
|
|
12
|
-
'md:layer-responsive:(grid-
|
|
10
|
+
'layer-components:(min-h-100dvh flex-shrink-1 flex-grow-1 flex-basis-0 bg-wash)',
|
|
11
|
+
'layer-components:(grid grid-cols-[1fr] grid-rows-[1fr_auto] grid-areas-[content]-[nav] items-start justify-center)',
|
|
12
|
+
'md:layer-responsive:(grid-cols-[1fr_auto_20fr_1fr] grid-areas-[gutter1_nav_content_gutter2] h-auto min-h-auto bg-wash)',
|
|
13
13
|
'lg:layer-responsive:(grid-cols-[1fr_auto_min(800px,70vw)_1fr])',
|
|
14
14
|
className,
|
|
15
15
|
)}
|
|
@@ -135,7 +135,7 @@ export const ManualWidth: Story = {
|
|
|
135
135
|
|
|
136
136
|
export const WithoutNav: Story = {
|
|
137
137
|
render: () => (
|
|
138
|
-
<PageRoot className="
|
|
138
|
+
<PageRoot className="h-full w-full">
|
|
139
139
|
<PageContent>
|
|
140
140
|
<div className="text-center">
|
|
141
141
|
<h1 className="text-3xl font-bold">Hello, World!</h1>
|
|
@@ -170,7 +170,7 @@ export const WithVirtualKeyboard: Story = {
|
|
|
170
170
|
}, [keyboard]);
|
|
171
171
|
|
|
172
172
|
return (
|
|
173
|
-
<PageRoot className="
|
|
173
|
+
<PageRoot className="h-full w-full">
|
|
174
174
|
<PageContent>
|
|
175
175
|
<div className="text-center">
|
|
176
176
|
<h1 className="text-3xl font-bold">Hello, World!</h1>
|
|
@@ -200,7 +200,7 @@ export const WithVirtualKeyboard: Story = {
|
|
|
200
200
|
</NavBarItem>
|
|
201
201
|
</NavBarRoot>
|
|
202
202
|
</PageNav>
|
|
203
|
-
<div className="fixed bottom-0 h-[var(--mock-virtual-keyboard-height,0)]
|
|
203
|
+
<div className="fixed bottom-0 left-0 right-0 h-[var(--mock-virtual-keyboard-height,0)] w-full transition-height bg-black" />
|
|
204
204
|
</PageRoot>
|
|
205
205
|
);
|
|
206
206
|
},
|
|
@@ -21,7 +21,7 @@ export const Default: Story = {
|
|
|
21
21
|
<Marquee.Item>
|
|
22
22
|
<img src="https://resources.biscuits.club/images/pashka.jpg" />
|
|
23
23
|
</Marquee.Item>
|
|
24
|
-
<Marquee.Item className="flex items-center justify-center
|
|
24
|
+
<Marquee.Item className="flex items-center justify-center text-lg color-primary-dark bg-primary-wash">
|
|
25
25
|
Hello, world
|
|
26
26
|
</Marquee.Item>
|
|
27
27
|
<Marquee.Item
|
|
@@ -26,12 +26,12 @@ export function Marquee({ className, children, timeout = 5000 }: MarqueeProps) {
|
|
|
26
26
|
return (
|
|
27
27
|
<div
|
|
28
28
|
className={clsx(
|
|
29
|
-
'layer-components:(relative
|
|
29
|
+
'layer-components:(relative h-full w-full overflow-hidden)',
|
|
30
30
|
className,
|
|
31
31
|
)}
|
|
32
32
|
>
|
|
33
33
|
<div
|
|
34
|
-
className="layer-components:(absolute
|
|
34
|
+
className="layer-components:(absolute left-0 top-0 h-full w-full flex flex-row overflow-visible transition-transform duration-300)"
|
|
35
35
|
style={{ transform: `translateX(${offset})` }}
|
|
36
36
|
>
|
|
37
37
|
{children}
|
|
@@ -6,12 +6,12 @@ import { withClassName } from '../../hooks.js';
|
|
|
6
6
|
import { Icon, IconProps } from '../icon/index.js';
|
|
7
7
|
|
|
8
8
|
export const navBarItemClass = classNames(
|
|
9
|
-
'layer-components:(flex flex-col items-center justify-center whitespace-nowrap
|
|
9
|
+
'layer-components:(relative h-full flex flex-col cursor-pointer select-none items-center justify-center gap-6px whitespace-nowrap rounded-sm border-none px-3 py-1 text-sm transition-colors color-black bg-transparent)',
|
|
10
10
|
'layer-components:active:bg-darken-2',
|
|
11
11
|
'layer-components:hover:(bg-main-light)',
|
|
12
12
|
'layer-components:focus-visible:(outline-none ring-2 ring-accent)',
|
|
13
|
-
'layer-components:[&[data-active=true]]:(
|
|
14
|
-
'layer-responsive:md:(flex-row-reverse
|
|
13
|
+
'layer-components:[&[data-active=true]]:(color-black color-lighten-2 bg-main-light/50)',
|
|
14
|
+
'layer-responsive:md:(h-auto flex-row-reverse justify-start gap-2 overflow-visible active:bg-darken-2)',
|
|
15
15
|
);
|
|
16
16
|
|
|
17
17
|
export interface NavBarItemProps extends UseRenderComponentProps<'button'> {
|
|
@@ -16,27 +16,27 @@ export function Note({ className, color, children, ...rest }: NoteProps) {
|
|
|
16
16
|
<div className="layer-components:(flex flex-row)">
|
|
17
17
|
<div
|
|
18
18
|
className={clsx(
|
|
19
|
-
'layer-components:(flex-1
|
|
19
|
+
'layer-components:(relative flex-1 border border-solid p-2 text-sm italic color-black bg-main-wash bg-darken-1 border-main-dark) layer-variants:border-r-0',
|
|
20
20
|
'layer-variants:[&_input,&_textarea]:shadow-none',
|
|
21
21
|
)}
|
|
22
22
|
>
|
|
23
23
|
{children}
|
|
24
24
|
</div>
|
|
25
25
|
<div
|
|
26
|
-
className="layer-components:(flex flex-col items-stretch justify-stretch
|
|
26
|
+
className="layer-components:(flex flex-[0_0_20px] flex-col items-stretch justify-stretch)"
|
|
27
27
|
aria-hidden
|
|
28
28
|
>
|
|
29
29
|
{/* folded corner */}
|
|
30
|
-
<div className="layer-components:(
|
|
30
|
+
<div className="layer-components:(relative h-[20px] w-[20px] flex-[0_0_20px] border-0 border-solid border-main-dark) layer-variants:(border-b-1px border-l-1px)">
|
|
31
31
|
{/* top corner */}
|
|
32
32
|
<div
|
|
33
|
-
className={`layer-components:(border-
|
|
33
|
+
className={`layer-components:(box-content h-0 w-0 transform-origin-br translate--7px rotate--45 border-13px border-solid border-transparent border-r-main-wash border-r-darken-1)`}
|
|
34
34
|
/>
|
|
35
35
|
{/* diagonal line */}
|
|
36
|
-
<div className="layer-components:(absolute w-0.5px
|
|
36
|
+
<div className="layer-components:(absolute left-9px top--3px h-27px w-0.5px transform-origin-cc rotate--45 bg-main-dark)" />
|
|
37
37
|
</div>
|
|
38
38
|
{/* bottom right corner */}
|
|
39
|
-
<div className="layer-components:(bg-main-wash bg-darken-1
|
|
39
|
+
<div className="layer-components:(flex-1 border-0 border-solid bg-main-wash bg-darken-1 border-main-dark) layer-variants:(border-b-1px border-r-1px)" />
|
|
40
40
|
</div>
|
|
41
41
|
</div>
|
|
42
42
|
</div>
|
|
@@ -67,11 +67,11 @@ export function NumberStepper({
|
|
|
67
67
|
return (
|
|
68
68
|
<div
|
|
69
69
|
className={classNames(
|
|
70
|
-
'layer-components:(flex items-center
|
|
70
|
+
'layer-components:(w-min-content flex flex-shrink-0 items-center overflow-hidden border rounded-lg border-solid shadow-sm bg-white border-gray-dark)',
|
|
71
71
|
disabled &&
|
|
72
|
-
'layer-variants:(border-gray-dark/80
|
|
72
|
+
'layer-variants:(shadow-none bg-transparent border-gray-dark/80)',
|
|
73
73
|
{
|
|
74
|
-
'layer-variants:(bg-accent-wash
|
|
74
|
+
'layer-variants:(color-black bg-accent-wash)':
|
|
75
75
|
!!highlightChange && value !== 1,
|
|
76
76
|
},
|
|
77
77
|
className,
|
|
@@ -20,7 +20,7 @@ type Story = StoryObj<typeof ParticleLayer>;
|
|
|
20
20
|
export const Default: Story = {
|
|
21
21
|
render() {
|
|
22
22
|
return (
|
|
23
|
-
<div className="
|
|
23
|
+
<div className="relative h-[100vh] w-full flex flex-col items-center justify-center">
|
|
24
24
|
<ExplodeButton />
|
|
25
25
|
</div>
|
|
26
26
|
);
|
|
@@ -54,7 +54,7 @@ export const HiddenTest: Story = {
|
|
|
54
54
|
return (
|
|
55
55
|
<>
|
|
56
56
|
<div
|
|
57
|
-
className="w-full
|
|
57
|
+
className="relative w-full flex flex-col items-center justify-center p-10"
|
|
58
58
|
style={{ visibility: hide ? 'hidden' : 'visible' }}
|
|
59
59
|
>
|
|
60
60
|
<Icon name="placeholder" ref={targetRef} />
|
|
@@ -108,13 +108,11 @@ export class Particles {
|
|
|
108
108
|
};
|
|
109
109
|
|
|
110
110
|
private renderParticles = (ctx: CanvasRenderingContext2D, delta: number) => {
|
|
111
|
-
let freed = 0;
|
|
112
111
|
for (let i = 0; i < this.particles.length; i++) {
|
|
113
112
|
const particle = this.particles[i];
|
|
114
113
|
if (particle.render(ctx, delta)) {
|
|
115
114
|
particle.dispose();
|
|
116
115
|
this.freeParticles.push(particle);
|
|
117
|
-
freed++;
|
|
118
116
|
}
|
|
119
117
|
}
|
|
120
118
|
};
|
|
@@ -300,7 +298,7 @@ export const createElementBorderInitializer = ({
|
|
|
300
298
|
// randomly spawn particles around the border of the element by 'unwrapping' the selected borders as
|
|
301
299
|
// a single theoretical line, picking a random point on the line, and then converting that point
|
|
302
300
|
// back to a point on the border.
|
|
303
|
-
return (
|
|
301
|
+
return (_index: number) => {
|
|
304
302
|
// check that element is not hidden
|
|
305
303
|
if (
|
|
306
304
|
element instanceof HTMLElement &&
|
|
@@ -472,7 +470,7 @@ export const createWindowBorderInitializer = ({
|
|
|
472
470
|
border?: BorderName;
|
|
473
471
|
lifespan?: number;
|
|
474
472
|
}): ParticleInitializer => {
|
|
475
|
-
return (
|
|
473
|
+
return (_index: number) => {
|
|
476
474
|
const rect = document.body.getBoundingClientRect();
|
|
477
475
|
let x = 0;
|
|
478
476
|
let y = 0;
|
|
@@ -58,7 +58,7 @@ export function Peek({ peekHeight = 120, children, className }: PeekProps) {
|
|
|
58
58
|
<div
|
|
59
59
|
className={classNames(
|
|
60
60
|
'relative',
|
|
61
|
-
'[&[data-state=closed]]:max-h-[var(--peek-height,120px)]
|
|
61
|
+
'overflow-hidden [&[data-state=closed]]:max-h-[var(--peek-height,120px)]',
|
|
62
62
|
hasInteracted.current &&
|
|
63
63
|
'animate-ease-default animate-forwards [&[data-state=closed]]:(animate-keyframes-peek-close animate-duration-300) [&[data-state=open]]:(animate-keyframes-peek-open animate-duration-600 animate-forwards)',
|
|
64
64
|
className,
|
|
@@ -79,10 +79,10 @@ export function Peek({ peekHeight = 120, children, className }: PeekProps) {
|
|
|
79
79
|
<button
|
|
80
80
|
data-state={open ? 'open' : 'closed'}
|
|
81
81
|
className={classNames(
|
|
82
|
-
'
|
|
82
|
+
'absolute bottom-0 z-1 h-80px w-full cursor-pointer border-b border-none border-b-solid bg-transparent border-white',
|
|
83
83
|
'animate-fade-in',
|
|
84
|
-
'focus-visible:(outline-none
|
|
85
|
-
'after:(
|
|
84
|
+
'focus-visible:(outline-none border-b border-b-solid from-transparent to-primary-wash bg-gradient-to-b border-main',
|
|
85
|
+
'after:(absolute inset-0 top-auto h-80px flex flex-col items-center justify-end from-transparent to-white bg-gradient-to-b p-3 text-xs content-["-_tap_to_expand_-"] color-gray-dark)',
|
|
86
86
|
'after:[&[data-state=open]]:content-["-_tap_to_collapse_-"]',
|
|
87
87
|
)}
|
|
88
88
|
onClick={toggle}
|