reshaped 3.4.1 → 3.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +4 -0
- package/dist/bundle.css +1 -1
- package/dist/bundle.d.ts +8 -6
- package/dist/bundle.js +11 -11
- package/dist/cjs/cli/theming/index.js +0 -1
- package/dist/cjs/themes/_generator/definitions/figma.d.ts +1 -1
- package/dist/cjs/themes/_generator/definitions/figma.js +6 -5
- package/dist/cjs/themes/_generator/utilities/color.js +11 -11
- package/dist/cjs/themes/_generator/utilities/generateBackgroundColors.js +0 -2
- package/dist/cjs/themes/_generator/utilities/generateColors.js +1 -1
- package/dist/cjs/themes/_generator/utilities/generateUnits.js +0 -1
- package/dist/cjs/themes/_generator/utilities/mergeDeep.js +1 -1
- package/dist/cjs/themes/_generator/utilities/resolveTokenReference.js +2 -0
- package/dist/cjs/themes/figma/tailwind.css +1 -1
- package/dist/cjs/themes/figma/theme.css +1 -1
- package/dist/cli/theming/index.js +0 -1
- package/dist/components/Accordion/Accordion.d.ts +9 -2
- package/dist/components/Accordion/Accordion.js +1 -0
- package/dist/components/Accordion/AccordionContent.d.ts +4 -1
- package/dist/components/Accordion/AccordionContent.js +1 -0
- package/dist/components/Accordion/AccordionControlled.d.ts +4 -1
- package/dist/components/Accordion/AccordionControlled.js +1 -0
- package/dist/components/Accordion/AccordionTrigger.d.ts +4 -1
- package/dist/components/Accordion/AccordionTrigger.js +1 -0
- package/dist/components/Accordion/AccordionUncontrolled.d.ts +4 -1
- package/dist/components/Accordion/AccordionUncontrolled.js +1 -0
- package/dist/components/Accordion/tests/Accordion.stories.d.ts +9 -2
- package/dist/components/Accordion/tests/Accordion.stories.js +1 -1
- package/dist/components/ActionBar/ActionBar.d.ts +4 -1
- package/dist/components/ActionBar/ActionBar.js +1 -0
- package/dist/components/ActionBar/tests/ActionBar.stories.d.ts +4 -1
- package/dist/components/ActionBar/tests/ActionBar.test.stories.d.ts +4 -1
- package/dist/components/Actionable/Actionable.js +3 -0
- package/dist/components/Actionable/tests/Actionable.stories.js +1 -1
- package/dist/components/Actionable/tests/Actionable.test.stories.js +1 -1
- package/dist/components/Alert/Alert.d.ts +4 -1
- package/dist/components/Alert/Alert.js +1 -0
- package/dist/components/Alert/tests/Alert.stories.d.ts +4 -1
- package/dist/components/Alert/tests/Alert.test.stories.d.ts +4 -1
- package/dist/components/Autocomplete/Autocomplete.d.ts +5 -1
- package/dist/components/Autocomplete/Autocomplete.js +3 -0
- package/dist/components/Autocomplete/tests/Autocomplete.stories.d.ts +5 -1
- package/dist/components/Autocomplete/tests/Autocomplete.test.stories.d.ts +5 -1
- package/dist/components/Avatar/Avatar.d.ts +4 -1
- package/dist/components/Avatar/Avatar.js +1 -0
- package/dist/components/Avatar/tests/Avatar.stories.d.ts +4 -1
- package/dist/components/Avatar/tests/Avatar.test.stories.d.ts +4 -1
- package/dist/components/Badge/Badge.js +1 -0
- package/dist/components/Badge/BadgeContainer.d.ts +4 -1
- package/dist/components/Badge/BadgeContainer.js +1 -0
- package/dist/components/Breadcrumbs/Breadcrumbs.d.ts +4 -1
- package/dist/components/Breadcrumbs/Breadcrumbs.js +1 -0
- package/dist/components/Breadcrumbs/BreadcrumbsItem.d.ts +4 -1
- package/dist/components/Breadcrumbs/BreadcrumbsItem.js +1 -0
- package/dist/components/Breadcrumbs/index.d.ts +4 -1
- package/dist/components/Breadcrumbs/tests/Breadcrumbs.stories.d.ts +8 -2
- package/dist/components/Breadcrumbs/tests/Breadcrumbs.test.stories.d.ts +8 -2
- package/dist/components/Button/Button.js +1 -0
- package/dist/components/Button/ButtonAligner.d.ts +4 -1
- package/dist/components/Button/ButtonAligner.js +1 -0
- package/dist/components/Button/ButtonGroup.d.ts +4 -1
- package/dist/components/Button/ButtonGroup.js +1 -0
- package/dist/components/Calendar/Calendar.d.ts +4 -1
- package/dist/components/Calendar/Calendar.js +1 -0
- package/dist/components/Calendar/Calendar.module.css +1 -1
- package/dist/components/Calendar/Calendar.types.d.ts +4 -4
- package/dist/components/Calendar/CalendarControlled.d.ts +4 -1
- package/dist/components/Calendar/CalendarControlled.js +3 -2
- package/dist/components/Calendar/CalendarControls.d.ts +4 -1
- package/dist/components/Calendar/CalendarControls.js +1 -0
- package/dist/components/Calendar/CalendarDate.d.ts +4 -1
- package/dist/components/Calendar/CalendarDate.js +30 -11
- package/dist/components/Calendar/CalendarMonth.d.ts +4 -1
- package/dist/components/Calendar/CalendarMonth.js +3 -6
- package/dist/components/Calendar/CalendarUncontrolled.d.ts +4 -1
- package/dist/components/Calendar/CalendarUncontrolled.js +1 -0
- package/dist/components/Calendar/CalendarYear.d.ts +4 -1
- package/dist/components/Calendar/CalendarYear.js +1 -0
- package/dist/components/Calendar/tests/Calendar.stories.d.ts +23 -6
- package/dist/components/Calendar/tests/Calendar.stories.js +237 -27
- package/dist/components/Card/Card.d.ts +1 -1
- package/dist/components/Card/Card.js +3 -4
- package/dist/components/Card/tests/Card.stories.d.ts +1 -1
- package/dist/components/Card/tests/Card.test.stories.d.ts +1 -1
- package/dist/components/Carousel/Carousel.d.ts +4 -1
- package/dist/components/Carousel/Carousel.js +2 -2
- package/dist/components/Carousel/Carousel.types.d.ts +1 -5
- package/dist/components/Carousel/Carousel.types.js +1 -5
- package/dist/components/Carousel/CarouselControl.d.ts +4 -1
- package/dist/components/Carousel/CarouselControl.js +3 -3
- package/dist/components/Carousel/tests/Carousel.stories.d.ts +4 -1
- package/dist/components/Checkbox/Checkbox.d.ts +4 -1
- package/dist/components/Checkbox/Checkbox.js +1 -0
- package/dist/components/Checkbox/tests/Checkbox.stories.d.ts +4 -1
- package/dist/components/Checkbox/tests/Checkbox.test.stories.d.ts +4 -1
- package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +4 -1
- package/dist/components/CheckboxGroup/CheckboxGroup.js +1 -0
- package/dist/components/CheckboxGroup/CheckboxGroupControlled.d.ts +4 -1
- package/dist/components/CheckboxGroup/CheckboxGroupControlled.js +1 -0
- package/dist/components/CheckboxGroup/CheckboxGroupUncontrolled.d.ts +4 -1
- package/dist/components/CheckboxGroup/CheckboxGroupUncontrolled.js +1 -0
- package/dist/components/CheckboxGroup/tests/CheckboxGroup.stories.d.ts +4 -1
- package/dist/components/CheckboxGroup/tests/CheckboxGroup.test.stories.d.ts +4 -1
- package/dist/components/Container/Container.d.ts +4 -1
- package/dist/components/Container/Container.js +1 -0
- package/dist/components/Container/tests/Container.stories.d.ts +4 -1
- package/dist/components/Container/tests/Container.stories.js +1 -1
- package/dist/components/Container/tests/Container.test.stories.d.ts +4 -1
- package/dist/components/Container/tests/Container.test.stories.js +1 -1
- package/dist/components/ContextMenu/ContextMenu.d.ts +21 -5
- package/dist/components/ContextMenu/ContextMenu.js +1 -0
- package/dist/components/ContextMenu/tests/ContextMenu.stories.d.ts +21 -5
- package/dist/components/ContextMenu/tests/ContextMenu.test.stories.d.ts +21 -5
- package/dist/components/Dismissible/Dismissible.d.ts +4 -1
- package/dist/components/Dismissible/Dismissible.js +1 -0
- package/dist/components/Dismissible/tests/Dismissible.stories.d.ts +4 -1
- package/dist/components/Dismissible/tests/Dismissible.stories.js +1 -1
- package/dist/components/Dismissible/tests/Dismissible.test.stories.d.ts +4 -1
- package/dist/components/Dismissible/tests/Dismissible.test.stories.js +1 -1
- package/dist/components/Divider/Divider.d.ts +4 -1
- package/dist/components/Divider/Divider.js +1 -0
- package/dist/components/Divider/tests/Divider.stories.d.ts +4 -1
- package/dist/components/Divider/tests/Divider.test.stories.d.ts +4 -1
- package/dist/components/DropdownMenu/DropdownMenu.d.ts +29 -7
- package/dist/components/DropdownMenu/DropdownMenu.js +7 -1
- package/dist/components/DropdownMenu/tests/DropdownMenu.stories.d.ts +29 -7
- package/dist/components/DropdownMenu/tests/DropdownMenu.test.stories.d.ts +29 -7
- package/dist/components/FileUpload/FileUpload.d.ts +5 -1
- package/dist/components/FileUpload/FileUpload.js +2 -0
- package/dist/components/FileUpload/tests/FileUpload.stories.d.ts +5 -1
- package/dist/components/FileUpload/tests/FileUpload.test.stories.d.ts +5 -1
- package/dist/components/FormControl/FormControl.context.d.ts +4 -0
- package/dist/components/FormControl/FormControl.js +1 -0
- package/dist/components/FormControl/FormControlError.d.ts +4 -1
- package/dist/components/FormControl/FormControlError.js +1 -0
- package/dist/components/FormControl/FormControlHelper.d.ts +4 -1
- package/dist/components/FormControl/FormControlHelper.js +1 -0
- package/dist/components/FormControl/FormControlLabel.d.ts +4 -1
- package/dist/components/FormControl/FormControlLabel.js +1 -0
- package/dist/components/FormControl/tests/FormControl.stories.js +1 -1
- package/dist/components/FormControl/tests/FormControl.test.stories.js +1 -1
- package/dist/components/Grid/Grid.d.ts +5 -1
- package/dist/components/Grid/Grid.js +10 -2
- package/dist/components/Grid/tests/Grid.stories.d.ts +5 -1
- package/dist/components/Grid/tests/Grid.stories.js +1 -1
- package/dist/components/Grid/tests/Grid.test.stories.d.ts +5 -1
- package/dist/components/Grid/tests/Grid.test.stories.js +1 -1
- package/dist/components/Hidden/Hidden.d.ts +4 -1
- package/dist/components/Hidden/Hidden.js +1 -0
- package/dist/components/Hidden/tests/Hidden.stories.d.ts +4 -1
- package/dist/components/Hidden/tests/Hidden.stories.js +1 -1
- package/dist/components/Hidden/tests/Hidden.test.stories.d.ts +4 -1
- package/dist/components/Hidden/tests/Hidden.test.stories.js +1 -1
- package/dist/components/HiddenVisually/HiddenVisually.d.ts +4 -1
- package/dist/components/HiddenVisually/HiddenVisually.js +1 -0
- package/dist/components/HiddenVisually/tests/HiddenVisually.stories.d.ts +4 -1
- package/dist/components/HiddenVisually/tests/HiddenVisually.stories.js +1 -1
- package/dist/components/HiddenVisually/tests/HiddenVisually.test.stories.d.ts +4 -1
- package/dist/components/HiddenVisually/tests/HiddenVisually.test.stories.js +1 -1
- package/dist/components/Hotkey/Hotkey.d.ts +4 -1
- package/dist/components/Hotkey/Hotkey.js +1 -0
- package/dist/components/Hotkey/tests/Hotkey.stories.d.ts +4 -1
- package/dist/components/Hotkey/tests/Hotkey.test.stories.d.ts +4 -1
- package/dist/components/Icon/Icon.d.ts +4 -1
- package/dist/components/Icon/Icon.js +2 -3
- package/dist/components/Icon/tests/Icon.stories.d.ts +4 -1
- package/dist/components/Icon/tests/Icon.stories.js +1 -1
- package/dist/components/Icon/tests/Icon.test.stories.d.ts +4 -1
- package/dist/components/Icon/tests/Icon.test.stories.js +1 -1
- package/dist/components/Image/Image.d.ts +4 -1
- package/dist/components/Image/Image.js +1 -0
- package/dist/components/Image/tests/Image.stories.d.ts +4 -1
- package/dist/components/Image/tests/Image.stories.js +1 -1
- package/dist/components/Image/tests/Image.test.stories.d.ts +4 -1
- package/dist/components/Image/tests/Image.test.stories.js +1 -1
- package/dist/components/Link/Link.js +1 -0
- package/dist/components/Loader/Loader.d.ts +4 -1
- package/dist/components/Loader/Loader.js +1 -0
- package/dist/components/Loader/tests/Loader.stories.d.ts +4 -1
- package/dist/components/Loader/tests/Loader.test.stories.d.ts +4 -1
- package/dist/components/MenuItem/MenuItem.js +1 -0
- package/dist/components/MenuItem/MenuItemAligner.d.ts +4 -1
- package/dist/components/MenuItem/MenuItemAligner.js +1 -0
- package/dist/components/Modal/Modal.d.ts +9 -2
- package/dist/components/Modal/Modal.js +3 -0
- package/dist/components/Modal/tests/Modal.stories.d.ts +9 -2
- package/dist/components/Modal/tests/Modal.test.stories.d.ts +9 -2
- package/dist/components/Overlay/Overlay.d.ts +4 -1
- package/dist/components/Overlay/Overlay.js +1 -0
- package/dist/components/Overlay/tests/Overlay.stories.d.ts +4 -1
- package/dist/components/Overlay/tests/Overlay.stories.js +1 -1
- package/dist/components/Overlay/tests/Overlay.test.stories.d.ts +4 -1
- package/dist/components/Overlay/tests/Overlay.test.stories.js +1 -1
- package/dist/components/Pagination/Pagination.d.ts +4 -1
- package/dist/components/Pagination/Pagination.js +1 -0
- package/dist/components/Pagination/PaginationControlled.d.ts +4 -1
- package/dist/components/Pagination/PaginationControlled.js +1 -0
- package/dist/components/Pagination/PaginationUncontrolled.d.ts +4 -1
- package/dist/components/Pagination/PaginationUncontrolled.js +1 -0
- package/dist/components/Pagination/tests/Pagination.stories.d.ts +4 -1
- package/dist/components/Pagination/tests/Pagination.test.stories.d.ts +4 -1
- package/dist/components/PinField/PinField.d.ts +4 -1
- package/dist/components/PinField/PinField.js +1 -0
- package/dist/components/PinField/PinFieldControlled.d.ts +4 -1
- package/dist/components/PinField/PinFieldControlled.js +1 -1
- package/dist/components/PinField/PinFieldUncontrolled.d.ts +4 -1
- package/dist/components/PinField/PinFieldUncontrolled.js +1 -0
- package/dist/components/PinField/tests/PinField.stories.d.ts +4 -1
- package/dist/components/PinField/tests/PinField.test.stories.d.ts +4 -1
- package/dist/components/Popover/Popover.d.ts +13 -3
- package/dist/components/Popover/Popover.js +2 -0
- package/dist/components/Popover/tests/Popover.stories.d.ts +13 -3
- package/dist/components/Popover/tests/Popover.test.stories.d.ts +13 -3
- package/dist/components/Progress/Progress.d.ts +4 -1
- package/dist/components/Progress/Progress.js +1 -0
- package/dist/components/Progress/tests/Progress.stories.d.ts +4 -1
- package/dist/components/Progress/tests/Progress.test.stories.d.ts +4 -1
- package/dist/components/ProgressIndicator/ProgressIndicator.d.ts +4 -1
- package/dist/components/ProgressIndicator/ProgressIndicator.js +1 -0
- package/dist/components/ProgressIndicator/tests/ProgressIndicator.stories.d.ts +4 -1
- package/dist/components/Radio/Radio.d.ts +4 -1
- package/dist/components/Radio/Radio.js +1 -0
- package/dist/components/Radio/tests/Radio.stories.d.ts +4 -1
- package/dist/components/Radio/tests/Radio.test.stories.d.ts +4 -1
- package/dist/components/RadioGroup/RadioGroup.d.ts +4 -1
- package/dist/components/RadioGroup/RadioGroup.js +1 -0
- package/dist/components/RadioGroup/RadioGroupControlled.d.ts +4 -1
- package/dist/components/RadioGroup/RadioGroupControlled.js +1 -0
- package/dist/components/RadioGroup/RadioGroupUncontrolled.d.ts +4 -1
- package/dist/components/RadioGroup/RadioGroupUncontrolled.js +1 -0
- package/dist/components/RadioGroup/tests/RadioGroup.stories.d.ts +4 -1
- package/dist/components/RadioGroup/tests/RadioGroup.test.stories.d.ts +4 -1
- package/dist/components/Reshaped/Reshaped.d.ts +4 -1
- package/dist/components/Reshaped/Reshaped.js +1 -0
- package/dist/components/Reshaped/tests/Reshaped.stories.js +1 -1
- package/dist/components/Resizable/Resizable.d.ts +1 -0
- package/dist/components/Resizable/Resizable.js +3 -1
- package/dist/components/Resizable/Resizable.types.d.ts +1 -1
- package/dist/components/Resizable/tests/Resizable.stories.d.ts +1 -0
- package/dist/components/Resizable/tests/Resizable.test.stories.d.ts +1 -0
- package/dist/components/Scrim/Scrim.d.ts +4 -1
- package/dist/components/Scrim/Scrim.js +1 -0
- package/dist/components/Scrim/tests/Scrim.stories.d.ts +4 -1
- package/dist/components/Scrim/tests/Scrim.test.stories.d.ts +4 -1
- package/dist/components/ScrollArea/ScrollArea.js +1 -0
- package/dist/components/ScrollArea/tests/ScrollArea.stories.js +1 -1
- package/dist/components/ScrollArea/tests/ScrollArea.test.stories.js +1 -1
- package/dist/components/Select/Select.d.ts +4 -1
- package/dist/components/Select/Select.js +1 -0
- package/dist/components/Select/tests/Select.stories.d.ts +4 -1
- package/dist/components/Select/tests/Select.test.stories.d.ts +4 -1
- package/dist/components/Skeleton/Skeleton.d.ts +4 -1
- package/dist/components/Skeleton/Skeleton.js +1 -0
- package/dist/components/Skeleton/tests/Skeleton.stories.d.ts +4 -1
- package/dist/components/Skeleton/tests/Skeleton.test.stories.d.ts +4 -1
- package/dist/components/Slider/Slider.d.ts +4 -1
- package/dist/components/Slider/Slider.js +1 -0
- package/dist/components/Slider/SliderControlled.d.ts +4 -1
- package/dist/components/Slider/SliderControlled.js +10 -3
- package/dist/components/Slider/SliderThumb.js +1 -0
- package/dist/components/Slider/SliderUncontrolled.d.ts +4 -1
- package/dist/components/Slider/SliderUncontrolled.js +1 -0
- package/dist/components/Slider/tests/Slider.stories.d.ts +4 -1
- package/dist/components/Slider/tests/Slider.test.stories.d.ts +4 -1
- package/dist/components/Stepper/Stepper.d.ts +5 -1
- package/dist/components/Stepper/Stepper.js +9 -2
- package/dist/components/Stepper/tests/Stepper.stories.d.ts +5 -1
- package/dist/components/Stepper/tests/Stepper.test.stories.d.ts +5 -1
- package/dist/components/Switch/Switch.d.ts +4 -1
- package/dist/components/Switch/Switch.js +1 -0
- package/dist/components/Switch/tests/Switch.stories.d.ts +4 -1
- package/dist/components/Switch/tests/Switch.test.stories.d.ts +4 -1
- package/dist/components/Table/Table.d.ts +21 -5
- package/dist/components/Table/Table.js +6 -0
- package/dist/components/Table/tests/Table.stories.d.ts +21 -5
- package/dist/components/Table/tests/Table.test.stories.d.ts +21 -5
- package/dist/components/Tabs/Tabs.d.ts +9 -2
- package/dist/components/Tabs/Tabs.js +1 -0
- package/dist/components/Tabs/TabsControlled.d.ts +4 -1
- package/dist/components/Tabs/TabsControlled.js +1 -0
- package/dist/components/Tabs/TabsItem.js +1 -0
- package/dist/components/Tabs/TabsList.d.ts +4 -1
- package/dist/components/Tabs/TabsList.js +8 -3
- package/dist/components/Tabs/TabsPanel.d.ts +4 -1
- package/dist/components/Tabs/TabsPanel.js +1 -0
- package/dist/components/Tabs/TabsUncontrolled.d.ts +4 -1
- package/dist/components/Tabs/TabsUncontrolled.js +1 -0
- package/dist/components/Tabs/tests/Tabs.stories.d.ts +9 -2
- package/dist/components/Tabs/tests/Tabs.test.stories.d.ts +9 -2
- package/dist/components/Text/Text.d.ts +4 -1
- package/dist/components/Text/Text.js +3 -4
- package/dist/components/Text/tests/Text.stories.d.ts +4 -1
- package/dist/components/Text/tests/Text.stories.js +1 -1
- package/dist/components/Text/tests/Text.test.stories.d.ts +4 -1
- package/dist/components/Text/tests/Text.test.stories.js +1 -1
- package/dist/components/TextArea/TextArea.d.ts +5 -1
- package/dist/components/TextArea/TextArea.js +1 -0
- package/dist/components/TextArea/tests/TextArea.stories.d.ts +5 -1
- package/dist/components/TextArea/tests/TextArea.test.stories.d.ts +5 -1
- package/dist/components/TextField/TextField.d.ts +5 -1
- package/dist/components/TextField/TextField.js +1 -0
- package/dist/components/TextField/tests/TextField.stories.d.ts +5 -1
- package/dist/components/TextField/tests/TextField.test.stories.d.ts +5 -1
- package/dist/components/Theme/GlobalColorMode.d.ts +4 -1
- package/dist/components/Theme/GlobalColorMode.js +1 -0
- package/dist/components/Theme/Theme.d.ts +4 -1
- package/dist/components/Theme/Theme.js +1 -0
- package/dist/components/Theme/tests/Theme.test.stories.d.ts +4 -1
- package/dist/components/Theme/tests/Theme.test.stories.js +1 -1
- package/dist/components/Timeline/Timeline.d.ts +5 -1
- package/dist/components/Timeline/Timeline.js +3 -1
- package/dist/components/Timeline/tests/Timeline.stories.d.ts +5 -1
- package/dist/components/Timeline/tests/Timeline.test.stories.d.ts +5 -1
- package/dist/components/Toast/Toast.d.ts +6 -3
- package/dist/components/Toast/Toast.js +1 -0
- package/dist/components/Toast/ToastContainer.d.ts +4 -1
- package/dist/components/Toast/ToastContainer.js +1 -0
- package/dist/components/Toast/ToastProvider.d.ts +4 -1
- package/dist/components/Toast/ToastProvider.js +9 -4
- package/dist/components/Toast/ToastRegion.d.ts +4 -1
- package/dist/components/Toast/ToastRegion.js +1 -0
- package/dist/components/Tooltip/Tooltip.d.ts +4 -1
- package/dist/components/Tooltip/Tooltip.js +1 -0
- package/dist/components/Tooltip/tests/Tooltip.stories.d.ts +4 -1
- package/dist/components/Tooltip/tests/Tooltip.test.stories.d.ts +4 -1
- package/dist/components/View/View.d.ts +5 -1
- package/dist/components/View/View.js +12 -5
- package/dist/components/View/tests/View.stories.d.ts +5 -1
- package/dist/components/View/tests/View.stories.js +1 -1
- package/dist/components/View/tests/View.test.stories.d.ts +5 -1
- package/dist/components/View/tests/View.test.stories.js +1 -1
- package/dist/components/_private/Aligner/Aligner.d.ts +4 -1
- package/dist/components/_private/Aligner/Aligner.js +1 -0
- package/dist/components/_private/Expandable/Expandable.d.ts +4 -1
- package/dist/components/_private/Expandable/Expandable.js +1 -0
- package/dist/components/_private/Flyout/Flyout.d.ts +9 -2
- package/dist/components/_private/Flyout/Flyout.js +1 -0
- package/dist/components/_private/Flyout/FlyoutContent.d.ts +4 -1
- package/dist/components/_private/Flyout/FlyoutContent.js +5 -1
- package/dist/components/_private/Flyout/FlyoutControlled.d.ts +5 -2
- package/dist/components/_private/Flyout/FlyoutControlled.js +8 -9
- package/dist/components/_private/Flyout/FlyoutTrigger.d.ts +4 -1
- package/dist/components/_private/Flyout/FlyoutTrigger.js +2 -1
- package/dist/components/_private/Flyout/FlyoutUncontrolled.d.ts +4 -1
- package/dist/components/_private/Flyout/FlyoutUncontrolled.js +1 -0
- package/dist/components/_private/Flyout/useFlyout.js +2 -0
- package/dist/components/_private/HiddenInput/HiddenInput.d.ts +4 -1
- package/dist/components/_private/HiddenInput/HiddenInput.js +1 -0
- package/dist/components/_private/Portal/Portal.d.ts +5 -1
- package/dist/components/_private/Portal/Portal.js +2 -0
- package/dist/config/tailwind.d.ts +1 -1
- package/dist/hooks/{useDrag.js → _private/useDrag.js} +6 -6
- package/dist/hooks/_private/useSingletonHotkeys.js +2 -0
- package/dist/hooks/tests/useDrag.stories.d.ts +26 -1
- package/dist/hooks/tests/useDrag.stories.js +120 -3
- package/dist/hooks/tests/useElementId.stories.d.ts +5 -0
- package/dist/hooks/tests/useElementId.stories.js +6 -2
- package/dist/hooks/tests/useHandlerRef.stories.d.ts +14 -0
- package/dist/hooks/tests/useHandlerRef.stories.js +44 -0
- package/dist/hooks/tests/useHotkeys.stories.d.ts +39 -1
- package/dist/hooks/tests/useHotkeys.stories.js +157 -38
- package/dist/hooks/tests/useKeyboardMode.stories.d.ts +5 -0
- package/dist/hooks/tests/useKeyboardMode.stories.js +6 -1
- package/dist/hooks/tests/useOnClickOutside.stories.d.ts +23 -0
- package/dist/hooks/tests/useOnClickOutside.stories.js +111 -0
- package/dist/hooks/tests/useRTL.stories.d.ts +5 -0
- package/dist/hooks/tests/useRTL.stories.js +9 -11
- package/dist/hooks/tests/useResponsiveClientValue.stories.d.ts +5 -0
- package/dist/hooks/tests/useResponsiveClientValue.stories.js +6 -1
- package/dist/hooks/tests/useScrollLock.stories.d.ts +7 -0
- package/dist/hooks/tests/useScrollLock.stories.js +47 -1
- package/dist/hooks/tests/useToggle.stories.d.ts +5 -0
- package/dist/hooks/tests/useToggle.stories.js +6 -1
- package/dist/hooks/useHandlerRef.js +1 -1
- package/dist/hooks/{_private/useOnClickOutside.d.ts → useOnClickOutside.d.ts} +3 -1
- package/dist/hooks/{_private/useOnClickOutside.js → useOnClickOutside.js} +13 -4
- package/dist/hooks/useResponsiveClientValue.d.ts +1 -1
- package/dist/hooks/useScrollLock.d.ts +1 -1
- package/dist/hooks/useScrollLock.js +2 -2
- package/dist/index.d.ts +8 -6
- package/dist/index.js +7 -4
- package/dist/tests/ShadowDOM.stories.js +1 -1
- package/dist/themes/_generator/definitions/figma.d.ts +1 -1
- package/dist/themes/_generator/definitions/figma.js +6 -5
- package/dist/themes/_generator/tests/themes.stories.js +1 -1
- package/dist/themes/_generator/utilities/color.js +11 -11
- package/dist/themes/_generator/utilities/generateBackgroundColors.js +0 -2
- package/dist/themes/_generator/utilities/generateColors.js +1 -1
- package/dist/themes/_generator/utilities/generateUnits.js +0 -1
- package/dist/themes/_generator/utilities/mergeDeep.js +1 -1
- package/dist/themes/_generator/utilities/resolveTokenReference.js +2 -0
- package/dist/themes/figma/tailwind.css +1 -1
- package/dist/themes/figma/theme.css +1 -1
- package/dist/types/global.d.ts +2 -2
- package/dist/utilities/a11y/TrapFocus.d.ts +1 -1
- package/dist/utilities/a11y/TrapFocus.js +17 -11
- package/dist/utilities/a11y/tests/TrapFocus.stories.d.ts +10 -2
- package/dist/utilities/a11y/tests/TrapFocus.stories.js +596 -40
- package/dist/utilities/a11y/types.d.ts +3 -1
- package/dist/utilities/helpers.js +4 -1
- package/dist/utilities/platform.js +1 -0
- package/package.json +36 -40
- package/dist/components/Calendar/tests/Calendar.test.stories.d.ts +0 -26
- package/dist/components/Calendar/tests/Calendar.test.stories.js +0 -161
- package/dist/hooks/tests/useDrag.test.stories.d.ts +0 -26
- package/dist/hooks/tests/useDrag.test.stories.js +0 -120
- package/dist/hooks/tests/useHotkeys.test.stories.d.ts +0 -39
- package/dist/hooks/tests/useHotkeys.test.stories.js +0 -119
- /package/dist/hooks/{useDrag.d.ts → _private/useDrag.d.ts} +0 -0
@@ -0,0 +1,111 @@
|
|
1
|
+
import React from "react";
|
2
|
+
import { expect, fn, userEvent } from "@storybook/test";
|
3
|
+
import Button from "../../components/Button/index.js";
|
4
|
+
import useOnClickOutside from "../useOnClickOutside.js";
|
5
|
+
import View from "../../components/View/index.js";
|
6
|
+
export default {
|
7
|
+
title: "Hooks/useOnClickOutside",
|
8
|
+
parameters: {
|
9
|
+
chromatic: { disableSnapshot: true },
|
10
|
+
},
|
11
|
+
};
|
12
|
+
export const base = {
|
13
|
+
name: "base",
|
14
|
+
args: {
|
15
|
+
handleOutsideClick: fn(),
|
16
|
+
},
|
17
|
+
render: (args) => {
|
18
|
+
const ref = React.useRef(null);
|
19
|
+
const [target, setTarget] = React.useState(null);
|
20
|
+
useOnClickOutside([ref], () => {
|
21
|
+
args.handleOutsideClick();
|
22
|
+
setTarget("outside");
|
23
|
+
});
|
24
|
+
return (<View gap={4} align="start">
|
25
|
+
<Button attributes={{ ref }} onClick={() => setTarget("inside")}>
|
26
|
+
Trigger
|
27
|
+
</Button>
|
28
|
+
{target && `Clicked ${target}`}
|
29
|
+
</View>);
|
30
|
+
},
|
31
|
+
play: async ({ canvas, args }) => {
|
32
|
+
const button = canvas.getAllByRole("button")[0];
|
33
|
+
await userEvent.click(button);
|
34
|
+
expect(args.handleOutsideClick).not.toHaveBeenCalled();
|
35
|
+
await userEvent.click(document.body);
|
36
|
+
expect(args.handleOutsideClick).toHaveBeenCalledTimes(1);
|
37
|
+
expect(args.handleOutsideClick).toHaveBeenCalledWith();
|
38
|
+
},
|
39
|
+
};
|
40
|
+
export const refs = {
|
41
|
+
name: "multiple refs",
|
42
|
+
args: {
|
43
|
+
handleOutsideClick: fn(),
|
44
|
+
},
|
45
|
+
render: (args) => {
|
46
|
+
const ref = React.useRef(null);
|
47
|
+
const ref2 = React.useRef(null);
|
48
|
+
useOnClickOutside([ref, ref2], () => {
|
49
|
+
args.handleOutsideClick();
|
50
|
+
});
|
51
|
+
return (<View gap={4} align="start">
|
52
|
+
<Button attributes={{ ref }}>Trigger</Button>
|
53
|
+
<Button attributes={{ ref: ref2 }}>Trigger 2</Button>
|
54
|
+
</View>);
|
55
|
+
},
|
56
|
+
play: async ({ canvas, args }) => {
|
57
|
+
const [button, button2] = canvas.getAllByRole("button");
|
58
|
+
await userEvent.click(button);
|
59
|
+
expect(args.handleOutsideClick).not.toHaveBeenCalled();
|
60
|
+
await userEvent.click(button2);
|
61
|
+
expect(args.handleOutsideClick).not.toHaveBeenCalled();
|
62
|
+
await userEvent.click(document.body);
|
63
|
+
expect(args.handleOutsideClick).toHaveBeenCalledTimes(1);
|
64
|
+
expect(args.handleOutsideClick).toHaveBeenCalledWith();
|
65
|
+
},
|
66
|
+
};
|
67
|
+
export const disabled = {
|
68
|
+
name: "disabled",
|
69
|
+
args: {
|
70
|
+
handleOutsideClick: fn(),
|
71
|
+
},
|
72
|
+
render: (args) => {
|
73
|
+
const ref = React.useRef(null);
|
74
|
+
useOnClickOutside([ref], () => {
|
75
|
+
args.handleOutsideClick();
|
76
|
+
}, {
|
77
|
+
disabled: true,
|
78
|
+
});
|
79
|
+
return (<View gap={4} align="start">
|
80
|
+
<Button attributes={{ ref }}>Trigger</Button>
|
81
|
+
</View>);
|
82
|
+
},
|
83
|
+
play: async ({ args }) => {
|
84
|
+
await userEvent.click(document.body);
|
85
|
+
expect(args.handleOutsideClick).not.toHaveBeenCalled();
|
86
|
+
},
|
87
|
+
};
|
88
|
+
export const deps = {
|
89
|
+
name: "test: handler uses latest state",
|
90
|
+
args: {
|
91
|
+
handleOutsideClick: fn(),
|
92
|
+
},
|
93
|
+
render: (args) => {
|
94
|
+
const ref = React.useRef(null);
|
95
|
+
const [count, setCount] = React.useState(0);
|
96
|
+
useOnClickOutside([ref], () => {
|
97
|
+
args.handleOutsideClick({ count });
|
98
|
+
});
|
99
|
+
return (<Button attributes={{ ref }} onClick={() => setCount((prev) => prev + 1)}>
|
100
|
+
Trigger
|
101
|
+
</Button>);
|
102
|
+
},
|
103
|
+
play: async ({ canvas, args }) => {
|
104
|
+
const button = canvas.getAllByRole("button")[0];
|
105
|
+
await userEvent.click(document.body);
|
106
|
+
expect(args.handleOutsideClick).toHaveBeenLastCalledWith({ count: 0 });
|
107
|
+
await userEvent.click(button);
|
108
|
+
await userEvent.click(document.body);
|
109
|
+
expect(args.handleOutsideClick).toHaveBeenLastCalledWith({ count: 1 });
|
110
|
+
},
|
111
|
+
};
|
@@ -1,8 +1,12 @@
|
|
1
1
|
import React from "react";
|
2
|
-
import { expect
|
3
|
-
import Reshaped from "../../components/Reshaped/index.js";
|
2
|
+
import { expect } from "@storybook/test";
|
4
3
|
import useRTL from "../useRTL.js";
|
5
|
-
export default {
|
4
|
+
export default {
|
5
|
+
title: "Hooks/useRTL",
|
6
|
+
parameters: {
|
7
|
+
chromatic: { disableSnapshot: true },
|
8
|
+
},
|
9
|
+
};
|
6
10
|
const Component = () => {
|
7
11
|
const [rtl, setRTL] = useRTL();
|
8
12
|
React.useEffect(() => {
|
@@ -12,14 +16,8 @@ const Component = () => {
|
|
12
16
|
};
|
13
17
|
export const setRTL = {
|
14
18
|
name: "setRTL",
|
15
|
-
render: () =>
|
16
|
-
return (<Reshaped theme="reshaped">
|
17
|
-
<Component />
|
18
|
-
</Reshaped>);
|
19
|
-
},
|
19
|
+
render: () => <Component />,
|
20
20
|
play: async () => {
|
21
|
-
|
22
|
-
expect(document.documentElement).toHaveAttribute("dir", "rtl");
|
23
|
-
});
|
21
|
+
expect(document.documentElement).toHaveAttribute("dir", "rtl");
|
24
22
|
},
|
25
23
|
};
|
@@ -1,6 +1,11 @@
|
|
1
1
|
import useResponsiveClientValue from "../useResponsiveClientValue.js";
|
2
2
|
import View from "../../components/View/index.js";
|
3
|
-
export default {
|
3
|
+
export default {
|
4
|
+
title: "Hooks/useResponsiveClientValue",
|
5
|
+
parameters: {
|
6
|
+
chromatic: { disableSnapshot: true },
|
7
|
+
},
|
8
|
+
};
|
4
9
|
export const base = {
|
5
10
|
name: "base",
|
6
11
|
render: () => {
|
@@ -1,6 +1,13 @@
|
|
1
1
|
import { StoryObj } from "@storybook/react";
|
2
2
|
declare const _default: {
|
3
3
|
title: string;
|
4
|
+
parameters: {
|
5
|
+
chromatic: {
|
6
|
+
disableSnapshot: boolean;
|
7
|
+
};
|
8
|
+
};
|
4
9
|
};
|
5
10
|
export default _default;
|
6
11
|
export declare const base: StoryObj;
|
12
|
+
export declare const origin: StoryObj;
|
13
|
+
export declare const container: StoryObj;
|
@@ -2,7 +2,13 @@ import React from "react";
|
|
2
2
|
import { expect, userEvent } from "@storybook/test";
|
3
3
|
import Button from "../../components/Button/index.js";
|
4
4
|
import useScrollLock from "../useScrollLock.js";
|
5
|
-
|
5
|
+
import View from "../../components/View/index.js";
|
6
|
+
export default {
|
7
|
+
title: "Hooks/useScrollLock",
|
8
|
+
parameters: {
|
9
|
+
chromatic: { disableSnapshot: true },
|
10
|
+
},
|
11
|
+
};
|
6
12
|
export const base = {
|
7
13
|
name: "base",
|
8
14
|
render: () => {
|
@@ -20,3 +26,43 @@ export const base = {
|
|
20
26
|
expect(document.body).not.toHaveStyle("overflow: hidden");
|
21
27
|
},
|
22
28
|
};
|
29
|
+
export const origin = {
|
30
|
+
name: "originRef",
|
31
|
+
render: () => {
|
32
|
+
const originRef = React.useRef(null);
|
33
|
+
const { lockScroll, unlockScroll, scrollLocked } = useScrollLock({ originRef });
|
34
|
+
return (<View overflow="auto" height={25} attributes={{ ref: originRef, "data-testid": "root" }}>
|
35
|
+
<View height={50} padding={4} backgroundColor="neutral-faded" borderRadius="medium">
|
36
|
+
<Button onClick={scrollLocked ? unlockScroll : lockScroll}>Toggle</Button>
|
37
|
+
</View>
|
38
|
+
</View>);
|
39
|
+
},
|
40
|
+
play: async ({ canvas }) => {
|
41
|
+
const button = canvas.getAllByRole("button")[0];
|
42
|
+
const root = canvas.getByTestId("root");
|
43
|
+
await userEvent.click(button);
|
44
|
+
expect(document.body).not.toHaveStyle("overflow: hidden");
|
45
|
+
expect(root).toHaveStyle("overflow: hidden");
|
46
|
+
await userEvent.click(button);
|
47
|
+
expect(root).not.toHaveStyle("overflow: hidden");
|
48
|
+
},
|
49
|
+
};
|
50
|
+
export const container = {
|
51
|
+
name: "containerRef",
|
52
|
+
render: () => {
|
53
|
+
const containerRef = React.useRef(null);
|
54
|
+
const { lockScroll, unlockScroll, scrollLocked } = useScrollLock({ containerRef });
|
55
|
+
return (<View height={25} attributes={{ ref: containerRef, "data-testid": "root" }}>
|
56
|
+
<Button onClick={scrollLocked ? unlockScroll : lockScroll}>Toggle</Button>
|
57
|
+
</View>);
|
58
|
+
},
|
59
|
+
play: async ({ canvas }) => {
|
60
|
+
const button = canvas.getAllByRole("button")[0];
|
61
|
+
const root = canvas.getByTestId("root");
|
62
|
+
await userEvent.click(button);
|
63
|
+
expect(document.body).not.toHaveStyle("overflow: hidden");
|
64
|
+
expect(root).toHaveStyle("overflow: hidden");
|
65
|
+
await userEvent.click(button);
|
66
|
+
expect(root).not.toHaveStyle("overflow: hidden");
|
67
|
+
},
|
68
|
+
};
|
@@ -2,7 +2,12 @@ import React from "react";
|
|
2
2
|
import { expect, userEvent } from "@storybook/test";
|
3
3
|
import Button from "../../components/Button/index.js";
|
4
4
|
import useToggle from "../useToggle.js";
|
5
|
-
export default {
|
5
|
+
export default {
|
6
|
+
title: "Hooks/useToggle",
|
7
|
+
parameters: {
|
8
|
+
chromatic: { disableSnapshot: true },
|
9
|
+
},
|
10
|
+
};
|
6
11
|
export const toggle = {
|
7
12
|
name: "toggle",
|
8
13
|
render: () => {
|
@@ -1,3 +1,5 @@
|
|
1
1
|
import React from "react";
|
2
|
-
declare const useOnClickOutside: (refs: React.RefObject<HTMLElement | null>[], handler: (event: Event) => void,
|
2
|
+
declare const useOnClickOutside: (refs: React.RefObject<HTMLElement | null>[], handler: (event: Event) => void, options?: {
|
3
|
+
disabled?: boolean;
|
4
|
+
}) => void;
|
3
5
|
export default useOnClickOutside;
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import React from "react";
|
2
|
-
import useHandlerRef from "
|
3
|
-
const useOnClickOutside = (refs, handler,
|
2
|
+
import useHandlerRef from "./useHandlerRef.js";
|
3
|
+
const useOnClickOutside = (refs, handler, options) => {
|
4
|
+
const { disabled } = options || {};
|
4
5
|
const handlerRef = useHandlerRef(handler);
|
5
6
|
/**
|
6
7
|
* We're checking the element position in the DOM on mousedown to make sure
|
@@ -9,6 +10,10 @@ const useOnClickOutside = (refs, handler, deps) => {
|
|
9
10
|
*/
|
10
11
|
const isMouseDownInsideRef = React.useRef(false);
|
11
12
|
React.useEffect(() => {
|
13
|
+
/**
|
14
|
+
* Not checking for disabled here since some components can enable the hook
|
15
|
+
* after it was clicked
|
16
|
+
*/
|
12
17
|
const handleMouseDown = (event) => {
|
13
18
|
isMouseDownInsideRef.current = false;
|
14
19
|
const clickedEl = event.composedPath()[0];
|
@@ -31,16 +36,20 @@ const useOnClickOutside = (refs, handler, deps) => {
|
|
31
36
|
React.useEffect(() => {
|
32
37
|
if (!handlerRef.current)
|
33
38
|
return;
|
39
|
+
if (disabled)
|
40
|
+
return;
|
34
41
|
const handleClick = (event) => {
|
42
|
+
if (!event.pointerType)
|
43
|
+
return;
|
35
44
|
if (event.button === 2)
|
36
45
|
return;
|
37
46
|
if (isMouseDownInsideRef.current)
|
38
47
|
return;
|
39
48
|
handlerRef.current?.(event);
|
40
49
|
};
|
41
|
-
document.addEventListener("click", handleClick);
|
50
|
+
document.addEventListener("click", handleClick, { passive: true });
|
42
51
|
return () => document.removeEventListener("click", handleClick);
|
43
52
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
44
|
-
}, [handlerRef,
|
53
|
+
}, [handlerRef, disabled, ...refs]);
|
45
54
|
};
|
46
55
|
export default useOnClickOutside;
|
@@ -1,3 +1,3 @@
|
|
1
1
|
import type * as G from "../types/global";
|
2
|
-
declare const useResponsiveClientValue: <T
|
2
|
+
declare const useResponsiveClientValue: <T>(value: G.Responsive<T>) => T | undefined;
|
3
3
|
export default useResponsiveClientValue;
|
@@ -1,8 +1,8 @@
|
|
1
1
|
"use client";
|
2
2
|
import React from "react";
|
3
3
|
import { lockScroll, unlockScroll } from "../utilities/scroll/index.js";
|
4
|
-
const useScrollLock = (
|
5
|
-
const { containerRef, originRef } =
|
4
|
+
const useScrollLock = (options) => {
|
5
|
+
const { containerRef, originRef } = options || {};
|
6
6
|
const [locked, setLocked] = React.useState(false);
|
7
7
|
const handleLockScroll = React.useCallback(() => {
|
8
8
|
lockScroll({
|
package/dist/index.d.ts
CHANGED
@@ -119,19 +119,21 @@ export type { ViewProps, ViewItemProps } from "./components/View";
|
|
119
119
|
* Hooks
|
120
120
|
*/
|
121
121
|
export { useFormControl } from "./components/FormControl";
|
122
|
-
export { default as Theme, useTheme } from "./components/Theme";
|
123
|
-
export
|
124
|
-
export { default as useScrollLock } from "./hooks/useScrollLock";
|
125
|
-
export { default as useToggle } from "./hooks/useToggle";
|
126
|
-
export { default as useRTL } from "./hooks/useRTL";
|
127
|
-
export { default as useIsomorphicLayoutEffect } from "./hooks/useIsomorphicLayoutEffect";
|
122
|
+
export { default as Theme, useTheme, type ThemeProps } from "./components/Theme";
|
123
|
+
export { default as useHandlerRef } from "./hooks/useHandlerRef";
|
128
124
|
export { default as useHotkeys } from "./hooks/useHotkeys";
|
125
|
+
export { default as useIsomorphicLayoutEffect } from "./hooks/useIsomorphicLayoutEffect";
|
129
126
|
export { default as useKeyboardMode } from "./hooks/useKeyboardMode";
|
127
|
+
export { default as useOnClickOutside } from "./hooks/useOnClickOutside";
|
130
128
|
export { default as useResponsiveClientValue } from "./hooks/useResponsiveClientValue";
|
129
|
+
export { default as useRTL } from "./hooks/useRTL";
|
130
|
+
export { default as useScrollLock } from "./hooks/useScrollLock";
|
131
|
+
export { default as useToggle } from "./hooks/useToggle";
|
131
132
|
/**
|
132
133
|
* Utilities
|
133
134
|
*/
|
134
135
|
export { classNames, responsiveClassNames, responsivePropDependency } from "./utilities/helpers";
|
136
|
+
export { TrapFocus } from "./utilities/a11y";
|
135
137
|
/**
|
136
138
|
* Types
|
137
139
|
*/
|
package/dist/index.js
CHANGED
@@ -63,17 +63,20 @@ export { default as View } from "./components/View/index.js";
|
|
63
63
|
*/
|
64
64
|
export { useFormControl } from "./components/FormControl/index.js";
|
65
65
|
export { default as Theme, useTheme } from "./components/Theme/index.js";
|
66
|
-
export { default as
|
67
|
-
export { default as useToggle } from "./hooks/useToggle.js";
|
68
|
-
export { default as useRTL } from "./hooks/useRTL.js";
|
69
|
-
export { default as useIsomorphicLayoutEffect } from "./hooks/useIsomorphicLayoutEffect.js";
|
66
|
+
export { default as useHandlerRef } from "./hooks/useHandlerRef.js";
|
70
67
|
export { default as useHotkeys } from "./hooks/useHotkeys.js";
|
68
|
+
export { default as useIsomorphicLayoutEffect } from "./hooks/useIsomorphicLayoutEffect.js";
|
71
69
|
export { default as useKeyboardMode } from "./hooks/useKeyboardMode.js";
|
70
|
+
export { default as useOnClickOutside } from "./hooks/useOnClickOutside.js";
|
72
71
|
export { default as useResponsiveClientValue } from "./hooks/useResponsiveClientValue.js";
|
72
|
+
export { default as useRTL } from "./hooks/useRTL.js";
|
73
|
+
export { default as useScrollLock } from "./hooks/useScrollLock.js";
|
74
|
+
export { default as useToggle } from "./hooks/useToggle.js";
|
73
75
|
/**
|
74
76
|
* Utilities
|
75
77
|
*/
|
76
78
|
export { classNames, responsiveClassNames, responsivePropDependency } from "./utilities/helpers.js";
|
79
|
+
export { TrapFocus } from "./utilities/a11y/index.js";
|
77
80
|
/**
|
78
81
|
* Dev utilities
|
79
82
|
*/
|
@@ -9,7 +9,7 @@ import Select from "../components/Select/index.js";
|
|
9
9
|
import Button from "../components/Button/index.js";
|
10
10
|
import Tooltip from "../components/Tooltip/index.js";
|
11
11
|
export default {
|
12
|
-
title: "
|
12
|
+
title: "Internal/ShadowDOM",
|
13
13
|
};
|
14
14
|
const getStylesData = () => {
|
15
15
|
const sourceStylesContainer = document.head;
|
@@ -99,7 +99,6 @@ const theme = {
|
|
99
99
|
radiusMedium: { px: 4 },
|
100
100
|
radiusLarge: { px: 4 },
|
101
101
|
},
|
102
|
-
// @ts-ignore
|
103
102
|
color: {
|
104
103
|
foregroundNeutral: { hex: "#191919", hexDark: "#FFFFFF" },
|
105
104
|
foregroundNeutralFaded: { hex: "#474747", hexDark: "#B2B2B2" },
|
@@ -107,20 +106,19 @@ const theme = {
|
|
107
106
|
foregroundPrimary: { hex: "#007BE5", hexDark: "#7CC4F8" },
|
108
107
|
foregroundPositive: { hex: "#009951", hexDark: "#79D297" },
|
109
108
|
foregroundCritical: { hex: "#DC3412", hexDark: "#FCA397" },
|
109
|
+
foregroundWarning: { hex: "#7b6305", hexDark: "#b4920c" },
|
110
110
|
backgroundNeutral: { hex: "#DFE2EA", hexDark: "#444444" },
|
111
111
|
backgroundNeutralFaded: { hex: "#F5F5F5", hexDark: "#383838" },
|
112
|
-
backgroundNeutralHighlighted: { hex: "#D4D8E3", hexDark: "#525252" },
|
113
112
|
backgroundDisabled: { hex: "#e4e4e4", hexDark: "#474747" },
|
114
113
|
backgroundDisabledFaded: { hex: "#F5F5F5", hexDark: "#3A3A3A" },
|
115
114
|
backgroundPrimary: { hex: "#0D99FF", hexDark: "#0C8CE9" },
|
116
|
-
backgroundPrimaryHighlighted: { hex: "#007BE5", hexDark: "#0A6DC2" },
|
117
115
|
backgroundPrimaryFaded: { hex: "#E5F4FF", hexDark: "#394360" },
|
118
116
|
backgroundPositive: { hex: "#14AE5C", hexDark: "#198F51" },
|
119
117
|
backgroundPositiveFaded: { hex: "#DAECDF", hexDark: "#3d5749" },
|
120
|
-
backgroundPositiveHighlighted: { hex: "#009951", hexDark: "#078348" },
|
121
118
|
backgroundCritical: { hex: "#F24822", hexDark: "#E03E1A" },
|
122
119
|
backgroundCriticalFaded: { hex: "#FFE2E0", hexDark: "#60332A" },
|
123
|
-
|
120
|
+
backgroundWarning: { hex: "#facc15", hexDark: "#f1c512" },
|
121
|
+
backgroundWarningFaded: { hex: "#fffae9", hexDark: "#2c271f" },
|
124
122
|
borderNeutral: { hex: "#E6E6E6", hexDark: "#444444" },
|
125
123
|
borderNeutralFaded: { hex: "#E6E6E6", hexDark: "#444444" },
|
126
124
|
borderDisabled: { hex: "#E6E6E6", hexDark: "#3E3E3E" },
|
@@ -130,12 +128,15 @@ const theme = {
|
|
130
128
|
borderPositiveFaded: { hex: "#BBDDC6", hexDark: "#086338" },
|
131
129
|
borderCritical: { hex: "#DC3412", hexDark: "#FCA397" },
|
132
130
|
borderCriticalFaded: { hex: "#FFC7C2", hexDark: "#803226" },
|
131
|
+
borderWarning: { hex: "#cfa90f", hexDark: "#b4920a" },
|
132
|
+
borderWarningFaded: { hex: "#ece2c4", hexDark: "#453c1e" },
|
133
133
|
backgroundPage: { hex: "#FFFFFF", hexDark: "#2C2C2C" },
|
134
134
|
backgroundPageFaded: { hex: "#FAFAFA", hexDark: "#1E1E1E" },
|
135
135
|
backgroundElevationBase: { hex: "#FFFFFF", hexDark: "#2C2C2C" },
|
136
136
|
backgroundElevationRaised: { hex: "#FFFFFF", hexDark: "#2C2C2C" },
|
137
137
|
backgroundElevationOverlay: { hex: "#FFFFFF", hexDark: "#2C2C2C" },
|
138
138
|
onBackgroundPrimary: { hex: "#FFFFFF" },
|
139
|
+
brand: { hex: "#0D99FF" },
|
139
140
|
black: { hex: "#000000" },
|
140
141
|
white: { hex: "#FFFFFF" },
|
141
142
|
},
|
@@ -14,7 +14,7 @@ import Link from "../../../components/Link/index.js";
|
|
14
14
|
import Text from "../../../components/Text/index.js";
|
15
15
|
import { getThemeCSS, generateThemeColors, baseThemeDefinition } from "../../index.js";
|
16
16
|
export default {
|
17
|
-
title: "
|
17
|
+
title: "Internal/Themes",
|
18
18
|
parameters: {
|
19
19
|
iframe: { url: "https://reshaped.so/docs/tokens/theming/runtime-theming" },
|
20
20
|
a11y: {
|
@@ -309,17 +309,17 @@ const GREEN = 0.7152;
|
|
309
309
|
const BLUE = 0.0722;
|
310
310
|
const GAMMA = 2.4;
|
311
311
|
function luminanceWCAG(r, g, b) {
|
312
|
-
|
312
|
+
const a = [r, g, b].map((v) => {
|
313
313
|
v /= 255;
|
314
314
|
return v <= 0.03928 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, GAMMA);
|
315
315
|
});
|
316
316
|
return a[0] * RED + a[1] * GREEN + a[2] * BLUE;
|
317
317
|
}
|
318
318
|
function contrastWCAG(rgb1, rgb2) {
|
319
|
-
|
320
|
-
|
321
|
-
|
322
|
-
|
319
|
+
const lum1 = luminanceWCAG(...rgb1);
|
320
|
+
const lum2 = luminanceWCAG(...rgb2);
|
321
|
+
const brightest = Math.max(lum1, lum2);
|
322
|
+
const darkest = Math.min(lum1, lum2);
|
323
323
|
return (brightest + 0.05) / (darkest + 0.05);
|
324
324
|
}
|
325
325
|
export const getOnColorWCAG = (args) => {
|
@@ -340,7 +340,7 @@ function luminanceAPCA({ r, g, b }) {
|
|
340
340
|
}
|
341
341
|
function contrastAPCA(backgroundLuminance, textLuminance) {
|
342
342
|
// Calculate the contrast based on APCA
|
343
|
-
|
343
|
+
const Lc = textLuminance - backgroundLuminance;
|
344
344
|
return Math.abs(Lc); // Return the absolute value of contrast
|
345
345
|
}
|
346
346
|
export const getOnColorAPCA = (args) => {
|
@@ -355,12 +355,12 @@ export const getOnColorAPCA = (args) => {
|
|
355
355
|
b: (1 - bgAlpha) * baseColor.b + bgAlpha * bgColor.b,
|
356
356
|
};
|
357
357
|
// Calculate luminance for background and for white & black
|
358
|
-
|
359
|
-
|
360
|
-
|
358
|
+
const backgroundLuminance = luminanceAPCA({ r, g, b });
|
359
|
+
const whiteLuminance = luminanceAPCA({ r: 255, g: 255, b: 255 });
|
360
|
+
const blackLuminance = luminanceAPCA({ r: 0, g: 0, b: 0 });
|
361
361
|
// Calculate contrast
|
362
|
-
|
363
|
-
|
362
|
+
const contrastWithWhite = contrastAPCA(backgroundLuminance, whiteLuminance);
|
363
|
+
const contrastWithBlack = contrastAPCA(backgroundLuminance, blackLuminance);
|
364
364
|
// Choose the color with higher contrast
|
365
365
|
return contrastWithWhite > contrastWithBlack ? lightHexColor : darkHexColor;
|
366
366
|
};
|
@@ -39,7 +39,6 @@ const generateBackgroundColors = (definition, themeOptions) => {
|
|
39
39
|
algorithm: themeOptions?.colorContrastAlgorithm,
|
40
40
|
...onColorHexMap,
|
41
41
|
});
|
42
|
-
// eslint-disable-next-line no-param-reassign
|
43
42
|
definition.color[generatedForegroundName] = {
|
44
43
|
hex,
|
45
44
|
hexDark: hex !== hexDark ? hexDark : undefined,
|
@@ -48,7 +47,6 @@ const generateBackgroundColors = (definition, themeOptions) => {
|
|
48
47
|
if (needsRGB) {
|
49
48
|
const rgb = hexToRgb(bgToken.hex);
|
50
49
|
const rgbDark = bgToken.hexDark && hexToRgb(bgToken.hexDark);
|
51
|
-
// eslint-disable-next-line no-param-reassign
|
52
50
|
definition.color[generatedRGBName] = {
|
53
51
|
hex: `${rgb.r}, ${rgb.g}, ${rgb.b}`,
|
54
52
|
hexDark: rgbDark && `${rgbDark.r}, ${rgbDark.g}, ${rgbDark.b}`,
|
@@ -2,7 +2,7 @@ import { parseHex, convertOklabToOkhsl, convertLrgbToOklab, convertRgbToLrgb, co
|
|
2
2
|
const hexToOkHsl = (hex) => {
|
3
3
|
const rgb = parseHex(hex);
|
4
4
|
if (!rgb)
|
5
|
-
throw new Error(`[Reshaped] Can
|
5
|
+
throw new Error(`[Reshaped] Can't generate rgb from ${hex} color`);
|
6
6
|
const lrgb = convertRgbToLrgb(rgb);
|
7
7
|
const oklab = convertLrgbToOklab(lrgb);
|
8
8
|
const okhsl = convertOklabToOkhsl(oklab);
|
@@ -4,6 +4,8 @@ const resolveTokenReference = (theme, tokenType, ref) => {
|
|
4
4
|
Object.keys(tokenGroup).forEach((tokenName) => {
|
5
5
|
if (referencedToken)
|
6
6
|
return;
|
7
|
+
// Relaxed runtime group resolving
|
8
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
7
9
|
if (tokenName === ref)
|
8
10
|
referencedToken = tokenGroup[tokenName];
|
9
11
|
});
|
@@ -1 +1 @@
|
|
1
|
-
@theme{--background-color-primary:var(--rs-color-background-primary);--background-color-primary-faded:var(--rs-color-background-primary-faded);--border-color-primary:var(--rs-color-border-primary);--border-color-primary-faded:var(--rs-color-border-primary-faded);--text-color-primary:var(--rs-color-foreground-primary);--background-color-critical:var(--rs-color-background-critical);--background-color-critical-faded:var(--rs-color-background-critical-faded);--border-color-critical:var(--rs-color-border-critical);--border-color-critical-faded:var(--rs-color-border-critical-faded);--text-color-critical:var(--rs-color-foreground-critical);--background-color-warning:var(--rs-color-background-warning);--background-color-warning-faded:var(--rs-color-background-warning-faded);--border-color-warning:var(--rs-color-border-warning);--border-color-warning-faded:var(--rs-color-border-warning-faded);--text-color-warning:var(--rs-color-foreground-warning);--background-color-positive:var(--rs-color-background-positive);--background-color-positive-faded:var(--rs-color-background-positive-faded);--border-color-positive:var(--rs-color-border-positive);--border-color-positive-faded:var(--rs-color-border-positive-faded);--text-color-positive:var(--rs-color-foreground-positive);--background-color-neutral:var(--rs-color-background-neutral);--background-color-neutral-faded:var(--rs-color-background-neutral-faded);--border-color-neutral:var(--rs-color-border-neutral);--border-color-neutral-faded:var(--rs-color-border-neutral-faded);--text-color-neutral:var(--rs-color-foreground-neutral);--text-color-neutral-faded:var(--rs-color-foreground-neutral-faded);--background-color-disabled:var(--rs-color-background-disabled);--background-color-disabled-faded:var(--rs-color-background-disabled-faded);--border-color-disabled:var(--rs-color-border-disabled);--text-color-disabled:var(--rs-color-foreground-disabled);--background-color-elevation-base:var(--rs-color-background-elevation-base);--background-color-elevation-raised:var(--rs-color-background-elevation-raised);--background-color-elevation-overlay:var(--rs-color-background-elevation-overlay);--background-color-page:var(--rs-color-background-page);--background-color-page-faded:var(--rs-color-background-page-faded);--color-brand:var(--rs-color-brand);--color-white:var(--rs-color-white);--color-black:var(--rs-color-black);--
|
1
|
+
@theme{--background-color-primary:var(--rs-color-background-primary);--background-color-primary-faded:var(--rs-color-background-primary-faded);--border-color-primary:var(--rs-color-border-primary);--border-color-primary-faded:var(--rs-color-border-primary-faded);--text-color-primary:var(--rs-color-foreground-primary);--background-color-critical:var(--rs-color-background-critical);--background-color-critical-faded:var(--rs-color-background-critical-faded);--border-color-critical:var(--rs-color-border-critical);--border-color-critical-faded:var(--rs-color-border-critical-faded);--text-color-critical:var(--rs-color-foreground-critical);--background-color-warning:var(--rs-color-background-warning);--background-color-warning-faded:var(--rs-color-background-warning-faded);--border-color-warning:var(--rs-color-border-warning);--border-color-warning-faded:var(--rs-color-border-warning-faded);--text-color-warning:var(--rs-color-foreground-warning);--background-color-positive:var(--rs-color-background-positive);--background-color-positive-faded:var(--rs-color-background-positive-faded);--border-color-positive:var(--rs-color-border-positive);--border-color-positive-faded:var(--rs-color-border-positive-faded);--text-color-positive:var(--rs-color-foreground-positive);--background-color-neutral:var(--rs-color-background-neutral);--background-color-neutral-faded:var(--rs-color-background-neutral-faded);--border-color-neutral:var(--rs-color-border-neutral);--border-color-neutral-faded:var(--rs-color-border-neutral-faded);--text-color-neutral:var(--rs-color-foreground-neutral);--text-color-neutral-faded:var(--rs-color-foreground-neutral-faded);--background-color-disabled:var(--rs-color-background-disabled);--background-color-disabled-faded:var(--rs-color-background-disabled-faded);--border-color-disabled:var(--rs-color-border-disabled);--text-color-disabled:var(--rs-color-foreground-disabled);--background-color-elevation-base:var(--rs-color-background-elevation-base);--background-color-elevation-raised:var(--rs-color-background-elevation-raised);--background-color-elevation-overlay:var(--rs-color-background-elevation-overlay);--background-color-page:var(--rs-color-background-page);--background-color-page-faded:var(--rs-color-background-page-faded);--color-brand:var(--rs-color-brand);--color-white:var(--rs-color-white);--color-black:var(--rs-color-black);--text-color-on-primary:var(--rs-color-on-background-primary);--text-color-on-critical:var(--rs-color-on-background-critical);--text-color-on-warning:var(--rs-color-on-background-warning);--text-color-on-positive:var(--rs-color-on-background-positive);--text-color-on-neutral:var(--rs-color-on-background-neutral);--text-color-on-brand:var(--rs-color-on-brand);--radius-small:var(--rs-radius-small);--radius-medium:var(--rs-radius-medium);--radius-large:var(--rs-radius-large);--spacing-0:0px;--spacing-x1:var(--rs-unit-x1);--spacing-x2:var(--rs-unit-x2);--spacing-x3:var(--rs-unit-x3);--spacing-x4:var(--rs-unit-x4);--spacing-x5:var(--rs-unit-x5);--spacing-x6:var(--rs-unit-x6);--spacing-x7:var(--rs-unit-x7);--spacing-x8:var(--rs-unit-x8);--spacing-x9:var(--rs-unit-x9);--spacing-x10:var(--rs-unit-x10);--shadow-raised:var(--rs-shadow-raised);--shadow-overlay:var(--rs-shadow-overlay);--breakpoint-m:660px;--breakpoint-l:900px;--breakpoint-xl:1280px}
|