@dxos/react-ui 0.8.4-main.ef1bc66f44 → 0.8.4-main.effb148878
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +102 -5
- package/README.md +1 -1
- package/dist/lib/browser/chunk-FFPB5LWE.mjs +1600 -0
- package/dist/lib/browser/chunk-FFPB5LWE.mjs.map +7 -0
- package/dist/lib/browser/chunk-WU2YVQX4.mjs +32 -0
- package/dist/lib/browser/chunk-WU2YVQX4.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +4422 -2412
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/testing/index.mjs +77 -45
- package/dist/lib/browser/testing/index.mjs.map +4 -4
- package/dist/lib/browser/translations.mjs +9 -0
- package/dist/lib/browser/translations.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-TIKGPZSG.mjs +34 -0
- package/dist/lib/node-esm/chunk-TIKGPZSG.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-WOYP6QDI.mjs +1602 -0
- package/dist/lib/node-esm/chunk-WOYP6QDI.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +4422 -2412
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/testing/index.mjs +77 -45
- package/dist/lib/node-esm/testing/index.mjs.map +4 -4
- package/dist/lib/node-esm/translations.mjs +10 -0
- package/dist/lib/node-esm/translations.mjs.map +7 -0
- package/dist/types/src/components/Avatars/Avatar.d.ts +1 -1
- package/dist/types/src/components/Avatars/Avatar.d.ts.map +1 -1
- package/dist/types/src/components/Avatars/Avatar.stories.d.ts.map +1 -1
- package/dist/types/src/components/Avatars/Avatar.theme.d.ts +11 -0
- package/dist/types/src/components/Avatars/Avatar.theme.d.ts.map +1 -0
- package/dist/types/src/components/Avatars/AvatarGroup.stories.d.ts.map +1 -1
- package/dist/types/src/components/Breadcrumb/Breadcrumb.d.ts +5 -1
- package/dist/types/src/components/Breadcrumb/Breadcrumb.d.ts.map +1 -1
- package/dist/types/src/components/Breadcrumb/Breadcrumb.stories.d.ts.map +1 -1
- package/dist/types/src/components/Breadcrumb/Breadcrumb.theme.d.ts +4 -0
- package/dist/types/src/components/Breadcrumb/Breadcrumb.theme.d.ts.map +1 -0
- package/dist/types/src/components/Button/Button.d.ts +2 -2
- package/dist/types/src/components/Button/Button.d.ts.map +1 -1
- package/dist/types/src/components/Button/Button.stories.d.ts +1 -1
- package/dist/types/src/components/Button/Button.stories.d.ts.map +1 -1
- package/dist/types/src/components/Button/Button.theme.d.ts +11 -0
- package/dist/types/src/components/Button/Button.theme.d.ts.map +1 -0
- package/dist/types/src/components/Button/IconButton.d.ts +1 -0
- package/dist/types/src/components/Button/IconButton.d.ts.map +1 -1
- package/dist/types/src/components/Button/IconButton.stories.d.ts +4 -0
- package/dist/types/src/components/Button/IconButton.stories.d.ts.map +1 -1
- package/dist/types/src/components/Button/IconButton.theme.d.ts +8 -0
- package/dist/types/src/components/Button/IconButton.theme.d.ts.map +1 -0
- package/dist/types/src/components/Button/Toggle.d.ts +2 -2
- package/dist/types/src/components/Button/Toggle.d.ts.map +1 -1
- package/dist/types/src/components/Button/Toggle.stories.d.ts.map +1 -1
- package/dist/types/src/components/Button/ToggleGroup.d.ts +6 -6
- package/dist/types/src/components/Button/ToggleGroup.d.ts.map +1 -1
- package/dist/types/src/components/Button/ToggleGroup.stories.d.ts +2 -2
- package/dist/types/src/components/Button/ToggleGroup.stories.d.ts.map +1 -1
- package/dist/types/src/components/Calendar/Calendar.d.ts +33 -0
- package/dist/types/src/components/Calendar/Calendar.d.ts.map +1 -0
- package/dist/types/src/components/Calendar/Calendar.stories.d.ts +9 -0
- package/dist/types/src/components/Calendar/Calendar.stories.d.ts.map +1 -0
- package/dist/types/src/components/Calendar/Calendar.theme.d.ts +4 -0
- package/dist/types/src/components/Calendar/Calendar.theme.d.ts.map +1 -0
- package/dist/types/src/components/Calendar/index.d.ts +2 -0
- package/dist/types/src/components/Calendar/index.d.ts.map +1 -0
- package/dist/types/src/components/Card/Card.d.ts +135 -0
- package/dist/types/src/components/Card/Card.d.ts.map +1 -0
- package/dist/types/src/components/Card/Card.stories.d.ts +22 -0
- package/dist/types/src/components/Card/Card.stories.d.ts.map +1 -0
- package/dist/types/src/components/Card/Card.theme.d.ts +12 -0
- package/dist/types/src/components/Card/Card.theme.d.ts.map +1 -0
- package/dist/types/src/components/Card/index.d.ts +2 -0
- package/dist/types/src/components/Card/index.d.ts.map +1 -0
- package/dist/types/src/components/Carousel/Carousel.d.ts +102 -0
- package/dist/types/src/components/Carousel/Carousel.d.ts.map +1 -0
- package/dist/types/src/components/Carousel/index.d.ts +2 -0
- package/dist/types/src/components/Carousel/index.d.ts.map +1 -0
- package/dist/types/src/components/Clipboard/ClipboardProvider.d.ts.map +1 -1
- package/dist/types/src/components/Clipboard/CopyButton.d.ts.map +1 -1
- package/dist/types/src/components/Clipboard/index.d.ts +10 -1
- package/dist/types/src/components/Clipboard/index.d.ts.map +1 -1
- package/dist/types/src/components/Column/Column.d.ts +33 -0
- package/dist/types/src/components/Column/Column.d.ts.map +1 -0
- package/dist/types/src/components/Column/Column.stories.d.ts +25 -0
- package/dist/types/src/components/Column/Column.stories.d.ts.map +1 -0
- package/dist/types/src/components/Column/Column.theme.d.ts +9 -0
- package/dist/types/src/components/Column/Column.theme.d.ts.map +1 -0
- package/dist/types/src/components/Column/index.d.ts +3 -0
- package/dist/types/src/components/Column/index.d.ts.map +1 -0
- package/dist/types/src/components/Column/withColumn.d.ts +21 -0
- package/dist/types/src/components/Column/withColumn.d.ts.map +1 -0
- package/dist/types/src/components/DatePicker/DatePicker.d.ts +72 -0
- package/dist/types/src/components/DatePicker/DatePicker.d.ts.map +1 -0
- package/dist/types/src/components/DatePicker/DatePicker.stories.d.ts +10 -0
- package/dist/types/src/components/DatePicker/DatePicker.stories.d.ts.map +1 -0
- package/dist/types/src/components/DatePicker/DatePicker.theme.d.ts +6 -0
- package/dist/types/src/components/DatePicker/DatePicker.theme.d.ts.map +1 -0
- package/dist/types/src/components/DatePicker/index.d.ts +2 -0
- package/dist/types/src/components/DatePicker/index.d.ts.map +1 -0
- package/dist/types/src/components/Dialog/AlertDialog.d.ts +43 -23
- package/dist/types/src/components/Dialog/AlertDialog.d.ts.map +1 -1
- package/dist/types/src/components/Dialog/AlertDialog.stories.d.ts.map +1 -1
- package/dist/types/src/components/Dialog/Dialog.d.ts +52 -32
- package/dist/types/src/components/Dialog/Dialog.d.ts.map +1 -1
- package/dist/types/src/components/Dialog/Dialog.stories.d.ts +6 -8
- package/dist/types/src/components/Dialog/Dialog.stories.d.ts.map +1 -1
- package/dist/types/src/components/Dialog/Dialog.theme.d.ts +10 -0
- package/dist/types/src/components/Dialog/Dialog.theme.d.ts.map +1 -0
- package/dist/types/src/components/ErrorFallback/ErrorFallback.d.ts +11 -0
- package/dist/types/src/components/ErrorFallback/ErrorFallback.d.ts.map +1 -0
- package/dist/types/src/components/ErrorFallback/ErrorFallback.stories.d.ts +7 -0
- package/dist/types/src/components/ErrorFallback/ErrorFallback.stories.d.ts.map +1 -0
- package/dist/types/src/components/ErrorFallback/ErrorStack.d.ts +19 -0
- package/dist/types/src/components/ErrorFallback/ErrorStack.d.ts.map +1 -0
- package/dist/types/src/components/ErrorFallback/ThrowError.d.ts +9 -0
- package/dist/types/src/components/ErrorFallback/ThrowError.d.ts.map +1 -0
- package/dist/types/src/components/ErrorFallback/index.d.ts +5 -0
- package/dist/types/src/components/ErrorFallback/index.d.ts.map +1 -0
- package/dist/types/src/components/Focus/Focus.d.ts +36 -0
- package/dist/types/src/components/Focus/Focus.d.ts.map +1 -0
- package/dist/types/src/components/Focus/Focus.stories.d.ts +9 -0
- package/dist/types/src/components/Focus/Focus.stories.d.ts.map +1 -0
- package/dist/types/src/components/Focus/Focus.theme.d.ts +6 -0
- package/dist/types/src/components/Focus/Focus.theme.d.ts.map +1 -0
- package/dist/types/src/components/Focus/index.d.ts +2 -0
- package/dist/types/src/components/Focus/index.d.ts.map +1 -0
- package/dist/types/src/components/Icon/Icon.d.ts +4 -0
- package/dist/types/src/components/Icon/Icon.d.ts.map +1 -1
- package/dist/types/src/components/Icon/Icon.stories.d.ts +11 -3
- package/dist/types/src/components/Icon/Icon.stories.d.ts.map +1 -1
- package/dist/types/src/components/Icon/Icon.theme.d.ts +6 -0
- package/dist/types/src/components/Icon/Icon.theme.d.ts.map +1 -0
- package/dist/types/src/components/Image/Image.d.ts +15 -0
- package/dist/types/src/components/Image/Image.d.ts.map +1 -0
- package/dist/types/src/components/Image/Image.stories.d.ts +34 -0
- package/dist/types/src/components/Image/Image.stories.d.ts.map +1 -0
- package/dist/types/src/components/Image/index.d.ts +2 -0
- package/dist/types/src/components/Image/index.d.ts.map +1 -0
- package/dist/types/src/components/Input/Input.d.ts +90 -19
- package/dist/types/src/components/Input/Input.d.ts.map +1 -1
- package/dist/types/src/components/Input/Input.stories.d.ts +20 -9
- package/dist/types/src/components/Input/Input.stories.d.ts.map +1 -1
- package/dist/types/src/components/Input/Input.theme.d.ts +115 -0
- package/dist/types/src/components/Input/Input.theme.d.ts.map +1 -0
- package/dist/types/src/components/Input/SegmentedInput.d.ts +79 -0
- package/dist/types/src/components/Input/SegmentedInput.d.ts.map +1 -0
- package/dist/types/src/components/Input/constants.d.ts +2 -0
- package/dist/types/src/components/Input/constants.d.ts.map +1 -0
- package/dist/types/src/components/Input/index.d.ts +2 -0
- package/dist/types/src/components/Input/index.d.ts.map +1 -1
- package/dist/types/src/components/Link/Link.d.ts.map +1 -1
- package/dist/types/src/components/Link/Link.stories.d.ts.map +1 -1
- package/dist/types/src/components/Link/Link.theme.d.ts +6 -0
- package/dist/types/src/components/Link/Link.theme.d.ts.map +1 -0
- package/dist/types/src/components/List/List.d.ts +5 -3
- package/dist/types/src/components/List/List.d.ts.map +1 -1
- package/dist/types/src/components/List/List.stories.d.ts +3 -1
- package/dist/types/src/components/List/List.stories.d.ts.map +1 -1
- package/dist/types/src/components/List/List.theme.d.ts +7 -0
- package/dist/types/src/components/List/List.theme.d.ts.map +1 -0
- package/dist/types/src/components/List/ListDropIndicator.d.ts.map +1 -1
- package/dist/types/src/components/List/Tree.d.ts +2 -2
- package/dist/types/src/components/List/Tree.d.ts.map +1 -1
- package/dist/types/src/components/List/Tree.stories.d.ts.map +1 -1
- package/dist/types/src/components/List/TreeDropIndicator.d.ts.map +1 -1
- package/dist/types/src/components/List/Treegrid.d.ts +5 -9
- package/dist/types/src/components/List/Treegrid.d.ts.map +1 -1
- package/dist/types/src/components/List/Treegrid.stories.d.ts.map +1 -1
- package/dist/types/src/components/List/Treegrid.theme.d.ts +7 -0
- package/dist/types/src/components/List/Treegrid.theme.d.ts.map +1 -0
- package/dist/types/src/components/Main/Main.d.ts +13 -9
- package/dist/types/src/components/Main/Main.d.ts.map +1 -1
- package/dist/types/src/components/Main/Main.stories.d.ts +0 -3
- package/dist/types/src/components/Main/Main.stories.d.ts.map +1 -1
- package/dist/types/src/components/Main/Main.theme.d.ts +20 -0
- package/dist/types/src/components/Main/Main.theme.d.ts.map +1 -0
- package/dist/types/src/components/Main/constants.d.ts +3 -0
- package/dist/types/src/components/Main/constants.d.ts.map +1 -0
- package/dist/types/src/components/Main/index.d.ts +1 -0
- package/dist/types/src/components/Main/index.d.ts.map +1 -1
- package/dist/types/src/components/Main/useSwipeToDismiss.d.ts.map +1 -1
- package/dist/types/src/components/MediaPlayer/MediaPlayer.d.ts +43 -0
- package/dist/types/src/components/MediaPlayer/MediaPlayer.d.ts.map +1 -0
- package/dist/types/src/components/MediaPlayer/MediaPlayer.stories.d.ts +16 -0
- package/dist/types/src/components/MediaPlayer/MediaPlayer.stories.d.ts.map +1 -0
- package/dist/types/src/components/MediaPlayer/index.d.ts +2 -0
- package/dist/types/src/components/MediaPlayer/index.d.ts.map +1 -0
- package/dist/types/src/components/Menu/ContextMenu.d.ts.map +1 -1
- package/dist/types/src/components/Menu/ContextMenu.stories.d.ts.map +1 -1
- package/dist/types/src/components/Menu/DropdownMenu.d.ts +58 -49
- package/dist/types/src/components/Menu/DropdownMenu.d.ts.map +1 -1
- package/dist/types/src/components/Menu/DropdownMenu.stories.d.ts +14 -1
- package/dist/types/src/components/Menu/DropdownMenu.stories.d.ts.map +1 -1
- package/dist/types/src/components/Menu/Menu.theme.d.ts +7 -0
- package/dist/types/src/components/Menu/Menu.theme.d.ts.map +1 -0
- package/dist/types/src/components/Message/Message.d.ts +1 -1
- package/dist/types/src/components/Message/Message.d.ts.map +1 -1
- package/dist/types/src/components/Message/Message.stories.d.ts +4 -5
- package/dist/types/src/components/Message/Message.stories.d.ts.map +1 -1
- package/dist/types/src/components/Message/Message.theme.d.ts +7 -0
- package/dist/types/src/components/Message/Message.theme.d.ts.map +1 -0
- package/dist/types/src/components/Panel/Panel.d.ts +35 -0
- package/dist/types/src/components/Panel/Panel.d.ts.map +1 -0
- package/dist/types/src/components/Panel/Panel.stories.d.ts +6 -0
- package/dist/types/src/components/Panel/Panel.stories.d.ts.map +1 -0
- package/dist/types/src/components/Panel/Panel.theme.d.ts +13 -0
- package/dist/types/src/components/Panel/Panel.theme.d.ts.map +1 -0
- package/dist/types/src/components/Panel/index.d.ts +2 -0
- package/dist/types/src/components/Panel/index.d.ts.map +1 -0
- package/dist/types/src/components/Popover/Popover.d.ts +39 -22
- package/dist/types/src/components/Popover/Popover.d.ts.map +1 -1
- package/dist/types/src/components/Popover/Popover.stories.d.ts.map +1 -1
- package/dist/types/src/components/Popover/Popover.theme.d.ts +8 -0
- package/dist/types/src/components/Popover/Popover.theme.d.ts.map +1 -0
- package/dist/types/src/components/ScrollArea/ScrollArea.d.ts +12 -11
- package/dist/types/src/components/ScrollArea/ScrollArea.d.ts.map +1 -1
- package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts +21 -10
- package/dist/types/src/components/ScrollArea/ScrollArea.stories.d.ts.map +1 -1
- package/dist/types/src/components/ScrollArea/ScrollArea.theme.d.ts +17 -0
- package/dist/types/src/components/ScrollArea/ScrollArea.theme.d.ts.map +1 -0
- package/dist/types/src/components/ScrollArea/index.d.ts +1 -0
- package/dist/types/src/components/ScrollArea/index.d.ts.map +1 -1
- package/dist/types/src/components/ScrollArea/scrollbar.d.ts +18 -0
- package/dist/types/src/components/ScrollArea/scrollbar.d.ts.map +1 -0
- package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts +41 -18
- package/dist/types/src/components/ScrollContainer/ScrollContainer.d.ts.map +1 -1
- package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts +9 -5
- package/dist/types/src/components/ScrollContainer/ScrollContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/Select/Select.d.ts.map +1 -1
- package/dist/types/src/components/Select/Select.stories.d.ts +2 -2
- package/dist/types/src/components/Select/Select.stories.d.ts.map +1 -1
- package/dist/types/src/components/Select/Select.theme.d.ts +6 -0
- package/dist/types/src/components/Select/Select.theme.d.ts.map +1 -0
- package/dist/types/src/components/Separator/Separator.d.ts +3 -3
- package/dist/types/src/components/Separator/Separator.d.ts.map +1 -1
- package/dist/types/src/components/Separator/Separator.theme.d.ts +7 -0
- package/dist/types/src/components/Separator/Separator.theme.d.ts.map +1 -0
- package/dist/types/src/components/Skeleton/Skeleton.stories.d.ts.map +1 -1
- package/dist/types/src/components/Skeleton/Skeleton.theme.d.ts +6 -0
- package/dist/types/src/components/Skeleton/Skeleton.theme.d.ts.map +1 -0
- package/dist/types/src/components/Splitter/Splitter.d.ts +22 -16
- package/dist/types/src/components/Splitter/Splitter.d.ts.map +1 -1
- package/dist/types/src/components/Splitter/Splitter.stories.d.ts.map +1 -1
- package/dist/types/src/components/Splitter/Splitter.theme.d.ts +4 -0
- package/dist/types/src/components/Splitter/Splitter.theme.d.ts.map +1 -0
- package/dist/types/src/components/Status/Status.d.ts +3 -4
- package/dist/types/src/components/Status/Status.d.ts.map +1 -1
- package/dist/types/src/components/Status/Status.stories.d.ts +4 -2
- package/dist/types/src/components/Status/Status.stories.d.ts.map +1 -1
- package/dist/types/src/components/Status/Status.theme.d.ts +7 -0
- package/dist/types/src/components/Status/Status.theme.d.ts.map +1 -0
- package/dist/types/src/components/Tag/Tag.d.ts.map +1 -1
- package/dist/types/src/components/Tag/Tag.stories.d.ts +0 -5
- package/dist/types/src/components/Tag/Tag.stories.d.ts.map +1 -1
- package/dist/types/src/components/Tag/Tag.theme.d.ts +6 -0
- package/dist/types/src/components/Tag/Tag.theme.d.ts.map +1 -0
- package/dist/types/src/components/Toast/Toast.d.ts +15 -15
- package/dist/types/src/components/Toast/Toast.d.ts.map +1 -1
- package/dist/types/src/components/Toast/Toast.stories.d.ts.map +1 -1
- package/dist/types/src/components/Toast/Toast.theme.d.ts +6 -0
- package/dist/types/src/components/Toast/Toast.theme.d.ts.map +1 -0
- package/dist/types/src/components/Toolbar/Toolbar.d.ts +46 -17
- package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +1 -1
- package/dist/types/src/components/Toolbar/Toolbar.stories.d.ts.map +1 -1
- package/dist/types/src/components/Toolbar/Toolbar.theme.d.ts +8 -0
- package/dist/types/src/components/Toolbar/Toolbar.theme.d.ts.map +1 -0
- package/dist/types/src/components/Tooltip/Tooltip.d.ts +16 -16
- package/dist/types/src/components/Tooltip/Tooltip.d.ts.map +1 -1
- package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts +2 -2
- package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts.map +1 -1
- package/dist/types/src/components/Tooltip/Tooltip.theme.d.ts +6 -0
- package/dist/types/src/components/Tooltip/Tooltip.theme.d.ts.map +1 -0
- package/dist/types/src/components/Tooltip/index.d.ts +1 -0
- package/dist/types/src/components/Tooltip/index.d.ts.map +1 -1
- package/dist/types/src/components/Tooltip/tooltipContent.d.ts +4 -0
- package/dist/types/src/components/Tooltip/tooltipContent.d.ts.map +1 -0
- package/dist/types/src/components/index.d.ts +11 -5
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/exemplars/generics.stories.d.ts +8 -6
- package/dist/types/src/exemplars/generics.stories.d.ts.map +1 -1
- package/dist/types/src/exemplars/slot.stories.d.ts +1 -0
- package/dist/types/src/exemplars/slot.stories.d.ts.map +1 -1
- package/dist/types/src/exemplars/tabster.stories.d.ts.map +1 -1
- package/dist/types/src/exemplars/virtualizer.stories.d.ts +11 -0
- package/dist/types/src/exemplars/virtualizer.stories.d.ts.map +1 -0
- package/dist/types/src/hooks/index.d.ts +1 -0
- package/dist/types/src/hooks/index.d.ts.map +1 -1
- package/dist/types/src/hooks/useDensityContext.d.ts +1 -1
- package/dist/types/src/hooks/useDensityContext.d.ts.map +1 -1
- package/dist/types/src/hooks/useElevationContext.d.ts.map +1 -1
- package/dist/types/src/hooks/useIconHref.d.ts.map +1 -1
- package/dist/types/src/hooks/useSafeArea.d.ts.map +1 -1
- package/dist/types/src/hooks/useSafeCollisionPadding.d.ts.map +1 -1
- package/dist/types/src/hooks/useTranslationsContext.d.ts +1 -1
- package/dist/types/src/hooks/useVisualViewport.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +1 -0
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/playground/Controls.stories.d.ts.map +1 -1
- package/dist/types/src/playground/Custom.stories.d.ts +1 -1
- package/dist/types/src/playground/Custom.stories.d.ts.map +1 -1
- package/dist/types/src/playground/Typography.stories.d.ts.map +1 -1
- package/dist/types/src/primitives/Container/Container.d.ts +6 -22
- package/dist/types/src/primitives/Container/Container.d.ts.map +1 -1
- package/dist/types/src/primitives/Container/Container.stories.d.ts +2 -7
- package/dist/types/src/primitives/Container/Container.stories.d.ts.map +1 -1
- package/dist/types/src/primitives/Container/index.d.ts +0 -1
- package/dist/types/src/primitives/Container/index.d.ts.map +1 -1
- package/dist/types/src/{components → primitives}/DensityProvider/DensityProvider.d.ts.map +1 -1
- package/dist/types/src/primitives/DensityProvider/index.d.ts.map +1 -0
- package/dist/types/src/{components → primitives}/ElevationProvider/ElevationProvider.d.ts.map +1 -1
- package/dist/types/src/primitives/ElevationProvider/index.d.ts.map +1 -0
- package/dist/types/src/primitives/Flex/Flex.d.ts +8 -5
- package/dist/types/src/primitives/Flex/Flex.d.ts.map +1 -1
- package/dist/types/src/primitives/Flex/Flex.stories.d.ts +8 -0
- package/dist/types/src/primitives/Flex/Flex.stories.d.ts.map +1 -0
- package/dist/types/src/primitives/Grid/Grid.d.ts +10 -0
- package/dist/types/src/primitives/Grid/Grid.d.ts.map +1 -0
- package/dist/types/src/primitives/Grid/Grid.stories.d.ts +8 -0
- package/dist/types/src/primitives/Grid/Grid.stories.d.ts.map +1 -0
- package/dist/types/src/primitives/Grid/index.d.ts +2 -0
- package/dist/types/src/primitives/Grid/index.d.ts.map +1 -0
- package/dist/types/src/{components → primitives}/ThemeProvider/ThemeProvider.d.ts +1 -1
- package/dist/types/src/{components → primitives}/ThemeProvider/ThemeProvider.d.ts.map +1 -1
- package/dist/types/src/primitives/ThemeProvider/ThemeProvider.stories.d.ts +12 -0
- package/dist/types/src/primitives/ThemeProvider/ThemeProvider.stories.d.ts.map +1 -0
- package/dist/types/src/primitives/ThemeProvider/TranslationsProvider.d.ts +128 -0
- package/dist/types/src/primitives/ThemeProvider/TranslationsProvider.d.ts.map +1 -0
- package/dist/types/src/primitives/ThemeProvider/index.d.ts +4 -0
- package/dist/types/src/primitives/ThemeProvider/index.d.ts.map +1 -0
- package/dist/types/src/primitives/index.d.ts +4 -0
- package/dist/types/src/primitives/index.d.ts.map +1 -1
- package/dist/types/src/testing/Loading.d.ts +9 -0
- package/dist/types/src/testing/Loading.d.ts.map +1 -0
- package/dist/types/src/testing/decorators/withLayout.d.ts +1 -1
- package/dist/types/src/testing/decorators/withLayout.d.ts.map +1 -1
- package/dist/types/src/testing/decorators/withLayoutVariants.d.ts.map +1 -1
- package/dist/types/src/testing/decorators/withTheme.d.ts +6 -2
- package/dist/types/src/testing/decorators/withTheme.d.ts.map +1 -1
- package/dist/types/src/testing/index.d.ts +1 -0
- package/dist/types/src/testing/index.d.ts.map +1 -1
- package/dist/types/src/theme/bindTheme.d.ts +3 -0
- package/dist/types/src/theme/bindTheme.d.ts.map +1 -0
- package/dist/types/src/theme/defaultTheme.d.ts +4 -0
- package/dist/types/src/theme/defaultTheme.d.ts.map +1 -0
- package/dist/types/src/theme/index.d.ts +31 -0
- package/dist/types/src/theme/index.d.ts.map +1 -0
- package/dist/types/src/translations.d.ts +24 -0
- package/dist/types/src/translations.d.ts.map +1 -0
- package/dist/types/src/util/index.d.ts +2 -1
- package/dist/types/src/util/index.d.ts.map +1 -1
- package/dist/types/src/util/mobile.d.ts +5 -0
- package/dist/types/src/util/mobile.d.ts.map +1 -0
- package/dist/types/src/util/slots.d.ts +57 -0
- package/dist/types/src/util/slots.d.ts.map +1 -0
- package/dist/types/src/util/usePx.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +36 -27
- package/src/components/Avatars/Avatar.stories.tsx +5 -7
- package/src/components/Avatars/Avatar.theme.ts +93 -0
- package/src/components/Avatars/Avatar.tsx +6 -14
- package/src/components/Avatars/AvatarGroup.stories.tsx +0 -1
- package/src/components/Breadcrumb/Breadcrumb.stories.tsx +1 -2
- package/src/components/Breadcrumb/Breadcrumb.theme.ts +26 -0
- package/src/components/Breadcrumb/Breadcrumb.tsx +25 -39
- package/src/components/Button/Button.stories.tsx +1 -2
- package/src/components/Button/Button.theme.ts +31 -0
- package/src/components/Button/Button.tsx +11 -25
- package/src/components/Button/IconButton.stories.tsx +56 -6
- package/src/components/Button/IconButton.theme.ts +21 -0
- package/src/components/Button/IconButton.tsx +3 -4
- package/src/components/Button/Toggle.stories.tsx +0 -1
- package/src/components/Button/Toggle.tsx +4 -4
- package/src/components/Button/ToggleGroup.stories.tsx +0 -1
- package/src/components/Button/ToggleGroup.tsx +12 -16
- package/src/components/Calendar/Calendar.stories.tsx +43 -0
- package/src/components/Calendar/Calendar.theme.ts +74 -0
- package/src/components/Calendar/Calendar.tsx +196 -0
- package/src/components/Calendar/index.ts +5 -0
- package/src/components/Card/Card.stories.tsx +172 -0
- package/src/components/Card/Card.theme.ts +101 -0
- package/src/components/Card/Card.tsx +496 -0
- package/src/components/Card/index.ts +5 -0
- package/src/components/Carousel/Carousel.tsx +371 -0
- package/src/components/Carousel/index.ts +5 -0
- package/src/components/Clipboard/CopyButton.tsx +7 -8
- package/src/components/Column/AUDIT.md +148 -0
- package/src/components/Column/Column.stories.tsx +181 -0
- package/src/components/Column/Column.theme.ts +48 -0
- package/src/components/Column/Column.tsx +165 -0
- package/src/components/Column/index.ts +6 -0
- package/src/components/Column/withColumn.ts +27 -0
- package/src/components/DatePicker/DatePicker.stories.tsx +102 -0
- package/src/components/DatePicker/DatePicker.theme.ts +35 -0
- package/src/components/DatePicker/DatePicker.tsx +279 -0
- package/src/components/DatePicker/index.ts +5 -0
- package/src/components/Dialog/AlertDialog.stories.tsx +14 -15
- package/src/components/Dialog/AlertDialog.tsx +125 -85
- package/src/components/Dialog/Dialog.stories.tsx +91 -15
- package/src/components/Dialog/Dialog.theme.ts +61 -0
- package/src/components/Dialog/Dialog.tsx +131 -117
- package/src/components/ErrorFallback/ErrorFallback.stories.tsx +45 -0
- package/src/components/ErrorFallback/ErrorFallback.tsx +76 -0
- package/src/components/ErrorFallback/ErrorStack.tsx +120 -0
- package/src/components/ErrorFallback/ThrowError.tsx +37 -0
- package/src/components/ErrorFallback/index.ts +9 -0
- package/src/components/Focus/AUDIT.md +43 -0
- package/src/components/Focus/Focus.stories.tsx +230 -0
- package/src/components/Focus/Focus.theme.ts +32 -0
- package/src/components/Focus/Focus.tsx +201 -0
- package/src/components/Focus/index.ts +5 -0
- package/src/components/Icon/Icon.stories.tsx +43 -13
- package/src/components/Icon/Icon.theme.ts +27 -0
- package/src/components/Icon/Icon.tsx +14 -3
- package/src/components/Image/Image.stories.tsx +86 -0
- package/src/components/Image/Image.tsx +246 -0
- package/src/components/Image/index.ts +5 -0
- package/src/components/Input/Input.stories.tsx +146 -64
- package/src/components/Input/Input.theme.ts +191 -0
- package/src/components/Input/Input.tsx +230 -72
- package/src/components/Input/SegmentedInput.tsx +453 -0
- package/src/components/Input/constants.ts +5 -0
- package/src/components/Input/index.ts +2 -0
- package/src/components/Link/Link.stories.tsx +0 -1
- package/src/components/Link/Link.theme.ts +16 -0
- package/src/components/Link/Link.tsx +11 -3
- package/src/components/List/List.stories.tsx +14 -22
- package/src/components/List/List.theme.ts +47 -0
- package/src/components/List/List.tsx +17 -21
- package/src/components/List/ListDropIndicator.tsx +7 -8
- package/src/components/List/Tree.stories.tsx +4 -5
- package/src/components/List/Tree.tsx +0 -1
- package/src/components/List/TreeDropIndicator.tsx +6 -6
- package/src/components/List/Treegrid.stories.tsx +27 -28
- package/src/components/List/Treegrid.theme.ts +35 -0
- package/src/components/List/Treegrid.tsx +22 -28
- package/src/components/Main/Main.stories.tsx +3 -7
- package/src/components/Main/Main.theme.ts +29 -0
- package/src/components/Main/Main.tsx +64 -53
- package/src/components/Main/constants.ts +6 -0
- package/src/components/Main/index.ts +1 -0
- package/src/components/MediaPlayer/MediaPlayer.stories.tsx +50 -0
- package/src/components/MediaPlayer/MediaPlayer.tsx +178 -0
- package/src/components/MediaPlayer/index.ts +5 -0
- package/src/components/Menu/ContextMenu.stories.tsx +0 -1
- package/src/components/Menu/ContextMenu.tsx +9 -33
- package/src/components/Menu/DropdownMenu.stories.tsx +0 -1
- package/src/components/Menu/DropdownMenu.tsx +73 -67
- package/src/components/Menu/Menu.theme.ts +48 -0
- package/src/components/Message/Message.stories.tsx +25 -11
- package/src/components/Message/Message.theme.ts +39 -0
- package/src/components/Message/Message.tsx +32 -31
- package/src/components/Panel/Panel.stories.tsx +67 -0
- package/src/components/Panel/Panel.theme.ts +42 -0
- package/src/components/Panel/Panel.tsx +121 -0
- package/src/components/Panel/index.ts +5 -0
- package/src/components/Popover/Popover.stories.tsx +5 -6
- package/src/components/Popover/Popover.theme.ts +40 -0
- package/src/components/Popover/Popover.tsx +69 -66
- package/src/components/ScrollArea/ScrollArea.stories.tsx +98 -39
- package/src/components/ScrollArea/ScrollArea.theme.ts +104 -0
- package/src/components/ScrollArea/ScrollArea.tsx +46 -33
- package/src/components/ScrollArea/index.ts +1 -0
- package/src/components/ScrollArea/scrollbar.ts +21 -0
- package/src/components/ScrollContainer/ScrollContainer.stories.tsx +46 -25
- package/src/components/ScrollContainer/ScrollContainer.tsx +215 -106
- package/src/components/Select/Select.stories.tsx +5 -6
- package/src/components/Select/Select.theme.ts +55 -0
- package/src/components/Select/Select.tsx +35 -35
- package/src/components/Separator/Separator.theme.ts +23 -0
- package/src/components/Separator/Separator.tsx +5 -8
- package/src/components/Skeleton/Skeleton.stories.tsx +12 -13
- package/src/components/Skeleton/Skeleton.theme.ts +22 -0
- package/src/components/Skeleton/Skeleton.tsx +1 -1
- package/src/components/Splitter/Splitter.stories.tsx +47 -37
- package/src/components/Splitter/Splitter.theme.ts +18 -0
- package/src/components/Splitter/Splitter.tsx +45 -46
- package/src/components/Status/Status.stories.tsx +19 -16
- package/src/components/Status/Status.theme.ts +31 -0
- package/src/components/Status/Status.tsx +9 -7
- package/src/components/Tag/Tag.stories.tsx +3 -9
- package/src/components/Tag/Tag.theme.ts +22 -0
- package/src/components/Tag/Tag.tsx +2 -7
- package/src/components/Toast/Toast.stories.tsx +0 -1
- package/src/components/Toast/Toast.theme.ts +52 -0
- package/src/components/Toast/Toast.tsx +24 -43
- package/src/components/Toolbar/Toolbar.stories.tsx +0 -1
- package/src/components/Toolbar/Toolbar.theme.ts +36 -0
- package/src/components/Toolbar/Toolbar.tsx +225 -30
- package/src/components/Tooltip/Tooltip.stories.tsx +18 -17
- package/src/components/Tooltip/Tooltip.theme.ts +19 -0
- package/src/components/Tooltip/Tooltip.tsx +36 -35
- package/src/components/Tooltip/index.ts +1 -0
- package/src/components/Tooltip/tooltipContent.ts +16 -0
- package/src/components/index.ts +11 -6
- package/src/exemplars/generics.stories.tsx +12 -16
- package/src/exemplars/slot.stories.tsx +68 -60
- package/src/exemplars/tabster.stories.tsx +5 -5
- package/src/exemplars/virtualizer.stories.tsx +136 -0
- package/src/hooks/index.ts +1 -0
- package/src/hooks/useDensityContext.ts +3 -3
- package/src/hooks/useElevationContext.ts +1 -1
- package/src/hooks/useThemeContext.ts +1 -1
- package/src/hooks/useTranslationsContext.ts +1 -1
- package/src/index.ts +1 -0
- package/src/playground/Controls.stories.tsx +0 -6
- package/src/playground/Custom.stories.tsx +16 -39
- package/src/playground/Typography.stories.tsx +1 -1
- package/src/primitives/Container/Container.stories.tsx +13 -51
- package/src/primitives/Container/Container.tsx +13 -74
- package/src/primitives/Container/index.ts +0 -1
- package/src/{components → primitives}/DensityProvider/DensityProvider.tsx +1 -1
- package/src/primitives/Flex/Flex.stories.tsx +57 -0
- package/src/primitives/Flex/Flex.tsx +21 -18
- package/src/primitives/Grid/Grid.stories.tsx +56 -0
- package/src/primitives/Grid/Grid.tsx +32 -0
- package/src/primitives/Grid/index.ts +5 -0
- package/src/primitives/ThemeProvider/ThemeProvider.stories.tsx +31 -0
- package/src/{components → primitives}/ThemeProvider/ThemeProvider.tsx +9 -8
- package/src/{components → primitives}/ThemeProvider/index.ts +2 -2
- package/src/primitives/index.ts +5 -0
- package/src/testing/Loading.tsx +47 -0
- package/src/testing/decorators/withLayout.tsx +15 -11
- package/src/testing/decorators/withLayoutVariants.tsx +19 -22
- package/src/testing/decorators/withTheme.tsx +23 -12
- package/src/testing/index.ts +2 -0
- package/src/theme/bindTheme.ts +13 -0
- package/src/theme/defaultTheme.ts +83 -0
- package/src/theme/index.ts +37 -0
- package/src/translations.ts +32 -0
- package/src/util/index.ts +2 -1
- package/src/util/mobile.ts +11 -0
- package/src/util/slots.ts +129 -0
- package/src/util/usePx.ts +5 -1
- package/dist/lib/browser/chunk-EJYV4HAH.mjs +0 -774
- package/dist/lib/browser/chunk-EJYV4HAH.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-YTLZCZ2M.mjs +0 -776
- package/dist/lib/node-esm/chunk-YTLZCZ2M.mjs.map +0 -7
- package/dist/types/src/components/AnchoredOverflow/AnchoredOverflow.d.ts +0 -22
- package/dist/types/src/components/AnchoredOverflow/AnchoredOverflow.d.ts.map +0 -1
- package/dist/types/src/components/AnchoredOverflow/index.d.ts +0 -2
- package/dist/types/src/components/AnchoredOverflow/index.d.ts.map +0 -1
- package/dist/types/src/components/DensityProvider/index.d.ts.map +0 -1
- package/dist/types/src/components/ElevationProvider/index.d.ts.map +0 -1
- package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts +0 -129
- package/dist/types/src/components/ThemeProvider/TranslationsProvider.d.ts.map +0 -1
- package/dist/types/src/components/ThemeProvider/index.d.ts +0 -4
- package/dist/types/src/components/ThemeProvider/index.d.ts.map +0 -1
- package/dist/types/src/primitives/Container/Layout.d.ts +0 -18
- package/dist/types/src/primitives/Container/Layout.d.ts.map +0 -1
- package/dist/types/src/primitives/Container/Layout.stories.d.ts +0 -10
- package/dist/types/src/primitives/Container/Layout.stories.d.ts.map +0 -1
- package/dist/types/src/util/hasIosKeyboard.d.ts +0 -2
- package/dist/types/src/util/hasIosKeyboard.d.ts.map +0 -1
- package/src/components/AnchoredOverflow/AnchoredOverflow.tsx +0 -67
- package/src/components/AnchoredOverflow/index.ts +0 -5
- package/src/primitives/Container/Layout.stories.tsx +0 -57
- package/src/primitives/Container/Layout.tsx +0 -61
- package/src/util/hasIosKeyboard.ts +0 -8
- /package/dist/types/src/{components → primitives}/DensityProvider/DensityProvider.d.ts +0 -0
- /package/dist/types/src/{components → primitives}/DensityProvider/index.d.ts +0 -0
- /package/dist/types/src/{components → primitives}/ElevationProvider/ElevationProvider.d.ts +0 -0
- /package/dist/types/src/{components → primitives}/ElevationProvider/index.d.ts +0 -0
- /package/src/{components → primitives}/DensityProvider/index.ts +0 -0
- /package/src/{components → primitives}/ElevationProvider/ElevationProvider.tsx +0 -0
- /package/src/{components → primitives}/ElevationProvider/index.ts +0 -0
- /package/src/{components → primitives}/ThemeProvider/TranslationsProvider.tsx +0 -0
|
@@ -17,9 +17,9 @@ import { useControllableState } from '@radix-ui/react-use-controllable-state';
|
|
|
17
17
|
import React, {
|
|
18
18
|
type ComponentPropsWithRef,
|
|
19
19
|
type ComponentPropsWithoutRef,
|
|
20
|
-
type
|
|
20
|
+
type ComponentRef,
|
|
21
21
|
type FC,
|
|
22
|
-
|
|
22
|
+
PropsWithChildren,
|
|
23
23
|
type ReactNode,
|
|
24
24
|
type RefObject,
|
|
25
25
|
forwardRef,
|
|
@@ -47,7 +47,7 @@ const useMenuScope: (scope?: Scope) => any = createMenuScope();
|
|
|
47
47
|
|
|
48
48
|
type DropdownMenuContextValue = {
|
|
49
49
|
triggerId: string;
|
|
50
|
-
triggerRef:
|
|
50
|
+
triggerRef: RefObject<HTMLButtonElement | null>;
|
|
51
51
|
contentId: string;
|
|
52
52
|
open: boolean;
|
|
53
53
|
onOpenChange(open: boolean): void;
|
|
@@ -58,17 +58,23 @@ type DropdownMenuContextValue = {
|
|
|
58
58
|
const [DropdownMenuProvider, useDropdownMenuContext] =
|
|
59
59
|
createDropdownMenuContext<DropdownMenuContextValue>(DROPDOWN_MENU_NAME);
|
|
60
60
|
|
|
61
|
-
|
|
62
|
-
children?: ReactNode;
|
|
61
|
+
type DropdownMenuRootProps = PropsWithChildren<{
|
|
63
62
|
dir?: Direction;
|
|
63
|
+
modal?: boolean;
|
|
64
64
|
open?: boolean;
|
|
65
65
|
defaultOpen?: boolean;
|
|
66
66
|
onOpenChange?(open: boolean): void;
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
67
|
+
}>;
|
|
68
|
+
|
|
69
|
+
const DropdownMenuRoot = ({
|
|
70
|
+
__scopeDropdownMenu,
|
|
71
|
+
children,
|
|
72
|
+
dir,
|
|
73
|
+
modal = true,
|
|
74
|
+
open: openProp,
|
|
75
|
+
defaultOpen,
|
|
76
|
+
onOpenChange,
|
|
77
|
+
}: ScopedProps<DropdownMenuRootProps>) => {
|
|
72
78
|
const menuScope = useMenuScope(__scopeDropdownMenu);
|
|
73
79
|
const triggerRef = useRef<HTMLButtonElement | null>(null);
|
|
74
80
|
const [open = false, setOpen] = useControllableState({
|
|
@@ -81,14 +87,14 @@ const DropdownMenuRoot: FC<DropdownMenuRootProps> = (props: ScopedProps<Dropdown
|
|
|
81
87
|
<DropdownMenuProvider
|
|
82
88
|
scope={__scopeDropdownMenu}
|
|
83
89
|
triggerId={useId()}
|
|
84
|
-
triggerRef={triggerRef
|
|
90
|
+
triggerRef={triggerRef}
|
|
85
91
|
contentId={useId()}
|
|
86
92
|
open={open}
|
|
87
93
|
onOpenChange={setOpen}
|
|
88
94
|
onOpenToggle={useCallback(() => setOpen((prevOpen) => !prevOpen), [setOpen])}
|
|
89
95
|
modal={modal}
|
|
90
96
|
>
|
|
91
|
-
<MenuPrimitive.Root {...menuScope}
|
|
97
|
+
<MenuPrimitive.Root {...menuScope} dir={dir} modal={modal} open={open} onOpenChange={setOpen}>
|
|
92
98
|
{children}
|
|
93
99
|
</MenuPrimitive.Root>
|
|
94
100
|
</DropdownMenuProvider>
|
|
@@ -101,11 +107,11 @@ DropdownMenuRoot.displayName = DROPDOWN_MENU_NAME;
|
|
|
101
107
|
// DropdownMenuTrigger
|
|
102
108
|
//
|
|
103
109
|
|
|
104
|
-
const TRIGGER_NAME = '
|
|
110
|
+
const TRIGGER_NAME = 'DropdownMenu.Trigger';
|
|
105
111
|
|
|
106
|
-
type DropdownMenuTriggerElement =
|
|
112
|
+
type DropdownMenuTriggerElement = ComponentRef<typeof Primitive.button>;
|
|
107
113
|
type PrimitiveButtonProps = ComponentPropsWithoutRef<typeof Primitive.button>;
|
|
108
|
-
|
|
114
|
+
type DropdownMenuTriggerProps = PrimitiveButtonProps;
|
|
109
115
|
|
|
110
116
|
const DropdownMenuTrigger = forwardRef<DropdownMenuTriggerElement, DropdownMenuTriggerProps>(
|
|
111
117
|
(props: ScopedProps<DropdownMenuTriggerProps>, forwardedRef) => {
|
|
@@ -166,11 +172,11 @@ DropdownMenuTrigger.displayName = TRIGGER_NAME;
|
|
|
166
172
|
// DropdownMenuVirtualTrigger
|
|
167
173
|
//
|
|
168
174
|
|
|
169
|
-
const VIRTUAL_TRIGGER_NAME = '
|
|
175
|
+
const VIRTUAL_TRIGGER_NAME = 'DropdownMenu.VirtualTrigger';
|
|
170
176
|
|
|
171
|
-
|
|
177
|
+
type DropdownMenuVirtualTriggerProps = {
|
|
172
178
|
virtualRef: RefObject<DropdownMenuTriggerElement | null>;
|
|
173
|
-
}
|
|
179
|
+
};
|
|
174
180
|
|
|
175
181
|
const DropdownMenuVirtualTrigger = (props: ScopedProps<DropdownMenuVirtualTriggerProps>) => {
|
|
176
182
|
const { __scopeDropdownMenu, virtualRef } = props;
|
|
@@ -190,10 +196,10 @@ DropdownMenuVirtualTrigger.displayName = VIRTUAL_TRIGGER_NAME;
|
|
|
190
196
|
// DropdownMenuPortal
|
|
191
197
|
//
|
|
192
198
|
|
|
193
|
-
const PORTAL_NAME = '
|
|
199
|
+
const PORTAL_NAME = 'DropdownMenu.Portal';
|
|
194
200
|
|
|
195
201
|
type MenuPortalProps = ComponentPropsWithoutRef<typeof MenuPrimitive.Portal>;
|
|
196
|
-
|
|
202
|
+
type DropdownMenuPortalProps = MenuPortalProps;
|
|
197
203
|
|
|
198
204
|
const DropdownMenuPortal: FC<DropdownMenuPortalProps> = (props: ScopedProps<DropdownMenuPortalProps>) => {
|
|
199
205
|
const { __scopeDropdownMenu, ...portalProps } = props;
|
|
@@ -214,11 +220,11 @@ type DropdownMenuViewportProps = ThemedClassName<ComponentPropsWithRef<typeof Pr
|
|
|
214
220
|
const DropdownMenuViewport = forwardRef<HTMLDivElement, DropdownMenuViewportProps>(
|
|
215
221
|
({ classNames, asChild, children, ...props }, forwardedRef) => {
|
|
216
222
|
const { tx } = useThemeContext();
|
|
217
|
-
const
|
|
223
|
+
const Comp = asChild ? Slot : Primitive.div;
|
|
218
224
|
return (
|
|
219
|
-
<
|
|
225
|
+
<Comp {...props} className={tx('menu.viewport', {}, classNames)} ref={forwardedRef}>
|
|
220
226
|
{children}
|
|
221
|
-
</
|
|
227
|
+
</Comp>
|
|
222
228
|
);
|
|
223
229
|
},
|
|
224
230
|
);
|
|
@@ -227,11 +233,11 @@ const DropdownMenuViewport = forwardRef<HTMLDivElement, DropdownMenuViewportProp
|
|
|
227
233
|
// DropdownMenuContent
|
|
228
234
|
//
|
|
229
235
|
|
|
230
|
-
const CONTENT_NAME = '
|
|
236
|
+
const CONTENT_NAME = 'DropdownMenu.Content';
|
|
231
237
|
|
|
232
|
-
type DropdownMenuContentElement =
|
|
238
|
+
type DropdownMenuContentElement = ComponentRef<typeof MenuPrimitive.Content>;
|
|
233
239
|
type MenuContentProps = ThemedClassName<ComponentPropsWithoutRef<typeof MenuPrimitive.Content>>;
|
|
234
|
-
|
|
240
|
+
type DropdownMenuContentProps = Omit<MenuContentProps, 'onEntryFocus'>;
|
|
235
241
|
|
|
236
242
|
const DropdownMenuContent = forwardRef<DropdownMenuContentElement, DropdownMenuContentProps>(
|
|
237
243
|
(props: ScopedProps<DropdownMenuContentProps>, forwardedRef) => {
|
|
@@ -283,7 +289,7 @@ const DropdownMenuContent = forwardRef<DropdownMenuContentElement, DropdownMenuC
|
|
|
283
289
|
}
|
|
284
290
|
})}
|
|
285
291
|
data-arrow-keys='up down'
|
|
286
|
-
className={tx('menu.content',
|
|
292
|
+
className={tx('menu.content', { elevation }, classNames)}
|
|
287
293
|
style={{
|
|
288
294
|
...props.style,
|
|
289
295
|
// re-namespace exposed content custom properties
|
|
@@ -306,11 +312,11 @@ DropdownMenuContent.displayName = CONTENT_NAME;
|
|
|
306
312
|
// DropdownMenuGroup
|
|
307
313
|
//
|
|
308
314
|
|
|
309
|
-
const GROUP_NAME = '
|
|
315
|
+
const GROUP_NAME = 'DropdownMenu.Group';
|
|
310
316
|
|
|
311
|
-
type DropdownMenuGroupElement =
|
|
317
|
+
type DropdownMenuGroupElement = ComponentRef<typeof MenuPrimitive.Group>;
|
|
312
318
|
type MenuGroupProps = ComponentPropsWithoutRef<typeof MenuPrimitive.Group>;
|
|
313
|
-
|
|
319
|
+
type DropdownMenuGroupProps = MenuGroupProps;
|
|
314
320
|
|
|
315
321
|
const DropdownMenuGroup = forwardRef<DropdownMenuGroupElement, DropdownMenuGroupProps>(
|
|
316
322
|
(props: ScopedProps<DropdownMenuGroupProps>, forwardedRef) => {
|
|
@@ -326,11 +332,11 @@ DropdownMenuGroup.displayName = GROUP_NAME;
|
|
|
326
332
|
// DropdownMenuLabel
|
|
327
333
|
//
|
|
328
334
|
|
|
329
|
-
const LABEL_NAME = '
|
|
335
|
+
const LABEL_NAME = 'DropdownMenu.Label';
|
|
330
336
|
|
|
331
|
-
type DropdownMenuLabelElement =
|
|
337
|
+
type DropdownMenuLabelElement = ComponentRef<typeof MenuPrimitive.Label>;
|
|
332
338
|
type MenuLabelProps = ThemedClassName<ComponentPropsWithoutRef<typeof MenuPrimitive.Label>>;
|
|
333
|
-
|
|
339
|
+
type DropdownMenuLabelProps = MenuLabelProps;
|
|
334
340
|
|
|
335
341
|
const DropdownMenuGroupLabel = forwardRef<DropdownMenuLabelElement, DropdownMenuLabelProps>(
|
|
336
342
|
(props: ScopedProps<DropdownMenuLabelProps>, forwardedRef) => {
|
|
@@ -341,7 +347,7 @@ const DropdownMenuGroupLabel = forwardRef<DropdownMenuLabelElement, DropdownMenu
|
|
|
341
347
|
<MenuPrimitive.Label
|
|
342
348
|
{...menuScope}
|
|
343
349
|
{...labelProps}
|
|
344
|
-
className={tx('menu.groupLabel',
|
|
350
|
+
className={tx('menu.groupLabel', {}, classNames)}
|
|
345
351
|
ref={forwardedRef}
|
|
346
352
|
/>
|
|
347
353
|
);
|
|
@@ -354,11 +360,11 @@ DropdownMenuGroupLabel.displayName = LABEL_NAME;
|
|
|
354
360
|
// DropdownMenuItem
|
|
355
361
|
//
|
|
356
362
|
|
|
357
|
-
const ITEM_NAME = '
|
|
363
|
+
const ITEM_NAME = 'DropdownMenu.Item';
|
|
358
364
|
|
|
359
|
-
type DropdownMenuItemElement =
|
|
365
|
+
type DropdownMenuItemElement = ComponentRef<typeof MenuPrimitive.Item>;
|
|
360
366
|
type MenuItemProps = ThemedClassName<ComponentPropsWithoutRef<typeof MenuPrimitive.Item>>;
|
|
361
|
-
|
|
367
|
+
type DropdownMenuItemProps = MenuItemProps;
|
|
362
368
|
|
|
363
369
|
const DropdownMenuItem = forwardRef<DropdownMenuItemElement, DropdownMenuItemProps>(
|
|
364
370
|
(props: ScopedProps<DropdownMenuItemProps>, forwardedRef) => {
|
|
@@ -369,7 +375,7 @@ const DropdownMenuItem = forwardRef<DropdownMenuItemElement, DropdownMenuItemPro
|
|
|
369
375
|
<MenuPrimitive.Item
|
|
370
376
|
{...menuScope}
|
|
371
377
|
{...itemProps}
|
|
372
|
-
className={tx('menu.item',
|
|
378
|
+
className={tx('menu.item', {}, classNames)}
|
|
373
379
|
ref={forwardedRef}
|
|
374
380
|
/>
|
|
375
381
|
);
|
|
@@ -382,11 +388,11 @@ DropdownMenuItem.displayName = ITEM_NAME;
|
|
|
382
388
|
// DropdownMenuCheckboxItem
|
|
383
389
|
//
|
|
384
390
|
|
|
385
|
-
const CHECKBOX_ITEM_NAME = '
|
|
391
|
+
const CHECKBOX_ITEM_NAME = 'DropdownMenu.CheckboxItem';
|
|
386
392
|
|
|
387
|
-
type DropdownMenuCheckboxItemElement =
|
|
393
|
+
type DropdownMenuCheckboxItemElement = ComponentRef<typeof MenuPrimitive.CheckboxItem>;
|
|
388
394
|
type MenuCheckboxItemProps = ThemedClassName<ComponentPropsWithoutRef<typeof MenuPrimitive.CheckboxItem>>;
|
|
389
|
-
|
|
395
|
+
type DropdownMenuCheckboxItemProps = MenuCheckboxItemProps;
|
|
390
396
|
|
|
391
397
|
const DropdownMenuCheckboxItem = forwardRef<DropdownMenuCheckboxItemElement, DropdownMenuCheckboxItemProps>(
|
|
392
398
|
(props: ScopedProps<DropdownMenuCheckboxItemProps>, forwardedRef) => {
|
|
@@ -397,7 +403,7 @@ const DropdownMenuCheckboxItem = forwardRef<DropdownMenuCheckboxItemElement, Dro
|
|
|
397
403
|
<MenuPrimitive.CheckboxItem
|
|
398
404
|
{...menuScope}
|
|
399
405
|
{...checkboxItemProps}
|
|
400
|
-
className={tx('menu.item',
|
|
406
|
+
className={tx('menu.item', {}, classNames)}
|
|
401
407
|
ref={forwardedRef}
|
|
402
408
|
/>
|
|
403
409
|
);
|
|
@@ -410,11 +416,11 @@ DropdownMenuCheckboxItem.displayName = CHECKBOX_ITEM_NAME;
|
|
|
410
416
|
// DropdownMenuRadioGroup
|
|
411
417
|
//
|
|
412
418
|
|
|
413
|
-
const RADIO_GROUP_NAME = '
|
|
419
|
+
const RADIO_GROUP_NAME = 'DropdownMenu.RadioGroup';
|
|
414
420
|
|
|
415
|
-
type DropdownMenuRadioGroupElement =
|
|
421
|
+
type DropdownMenuRadioGroupElement = ComponentRef<typeof MenuPrimitive.RadioGroup>;
|
|
416
422
|
type MenuRadioGroupProps = ComponentPropsWithoutRef<typeof MenuPrimitive.RadioGroup>;
|
|
417
|
-
|
|
423
|
+
type DropdownMenuRadioGroupProps = MenuRadioGroupProps;
|
|
418
424
|
|
|
419
425
|
const DropdownMenuRadioGroup = forwardRef<DropdownMenuRadioGroupElement, DropdownMenuRadioGroupProps>(
|
|
420
426
|
(props: ScopedProps<DropdownMenuRadioGroupProps>, forwardedRef) => {
|
|
@@ -430,9 +436,9 @@ DropdownMenuRadioGroup.displayName = RADIO_GROUP_NAME;
|
|
|
430
436
|
// DropdownMenuRadioItem
|
|
431
437
|
//
|
|
432
438
|
|
|
433
|
-
const RADIO_ITEM_NAME = '
|
|
439
|
+
const RADIO_ITEM_NAME = 'DropdownMenu.RadioItem';
|
|
434
440
|
|
|
435
|
-
type DropdownMenuRadioItemElement =
|
|
441
|
+
type DropdownMenuRadioItemElement = ComponentRef<typeof MenuPrimitive.RadioItem>;
|
|
436
442
|
type MenuRadioItemProps = ComponentPropsWithoutRef<typeof MenuPrimitive.RadioItem>;
|
|
437
443
|
type DropdownMenuRadioItemProps = ThemedClassName<MenuRadioItemProps>;
|
|
438
444
|
|
|
@@ -445,7 +451,7 @@ const DropdownMenuRadioItem = forwardRef<DropdownMenuRadioItemElement, DropdownM
|
|
|
445
451
|
<MenuPrimitive.Item
|
|
446
452
|
{...menuScope}
|
|
447
453
|
{...itemProps}
|
|
448
|
-
className={tx('menu.item',
|
|
454
|
+
className={tx('menu.item', {}, classNames)}
|
|
449
455
|
ref={forwardedRef}
|
|
450
456
|
/>
|
|
451
457
|
);
|
|
@@ -458,11 +464,11 @@ DropdownMenuRadioItem.displayName = RADIO_ITEM_NAME;
|
|
|
458
464
|
// DropdownMenuItemIndicator
|
|
459
465
|
//
|
|
460
466
|
|
|
461
|
-
const INDICATOR_NAME = '
|
|
467
|
+
const INDICATOR_NAME = 'DropdownMenu.ItemIndicator';
|
|
462
468
|
|
|
463
|
-
type DropdownMenuItemIndicatorElement =
|
|
469
|
+
type DropdownMenuItemIndicatorElement = ComponentRef<typeof MenuPrimitive.ItemIndicator>;
|
|
464
470
|
type MenuItemIndicatorProps = ComponentPropsWithoutRef<typeof MenuPrimitive.ItemIndicator>;
|
|
465
|
-
|
|
471
|
+
type DropdownMenuItemIndicatorProps = MenuItemIndicatorProps;
|
|
466
472
|
|
|
467
473
|
const DropdownMenuItemIndicator = forwardRef<DropdownMenuItemIndicatorElement, DropdownMenuItemIndicatorProps>(
|
|
468
474
|
(props: ScopedProps<DropdownMenuItemIndicatorProps>, forwardedRef) => {
|
|
@@ -478,11 +484,11 @@ DropdownMenuItemIndicator.displayName = INDICATOR_NAME;
|
|
|
478
484
|
// DropdownMenuSeparator
|
|
479
485
|
//
|
|
480
486
|
|
|
481
|
-
const SEPARATOR_NAME = '
|
|
487
|
+
const SEPARATOR_NAME = 'DropdownMenu.Separator';
|
|
482
488
|
|
|
483
|
-
type DropdownMenuSeparatorElement =
|
|
489
|
+
type DropdownMenuSeparatorElement = ComponentRef<typeof MenuPrimitive.Separator>;
|
|
484
490
|
type MenuSeparatorProps = ThemedClassName<ComponentPropsWithoutRef<typeof MenuPrimitive.Separator>>;
|
|
485
|
-
|
|
491
|
+
type DropdownMenuSeparatorProps = MenuSeparatorProps;
|
|
486
492
|
|
|
487
493
|
const DropdownMenuSeparator = forwardRef<DropdownMenuSeparatorElement, DropdownMenuSeparatorProps>(
|
|
488
494
|
(props: ScopedProps<DropdownMenuSeparatorProps>, forwardedRef) => {
|
|
@@ -493,7 +499,7 @@ const DropdownMenuSeparator = forwardRef<DropdownMenuSeparatorElement, DropdownM
|
|
|
493
499
|
<MenuPrimitive.Separator
|
|
494
500
|
{...menuScope}
|
|
495
501
|
{...separatorProps}
|
|
496
|
-
className={tx('menu.separator',
|
|
502
|
+
className={tx('menu.separator', {}, classNames)}
|
|
497
503
|
ref={forwardedRef}
|
|
498
504
|
/>
|
|
499
505
|
);
|
|
@@ -506,11 +512,11 @@ DropdownMenuSeparator.displayName = SEPARATOR_NAME;
|
|
|
506
512
|
// DropdownMenuArrow
|
|
507
513
|
//
|
|
508
514
|
|
|
509
|
-
const ARROW_NAME = '
|
|
515
|
+
const ARROW_NAME = 'DropdownMenu.Arrow';
|
|
510
516
|
|
|
511
|
-
type DropdownMenuArrowElement =
|
|
517
|
+
type DropdownMenuArrowElement = ComponentRef<typeof MenuPrimitive.Arrow>;
|
|
512
518
|
type MenuArrowProps = ThemedClassName<ComponentPropsWithoutRef<typeof MenuPrimitive.Arrow>>;
|
|
513
|
-
|
|
519
|
+
type DropdownMenuArrowProps = MenuArrowProps;
|
|
514
520
|
|
|
515
521
|
const DropdownMenuArrow = forwardRef<DropdownMenuArrowElement, DropdownMenuArrowProps>(
|
|
516
522
|
(props: ScopedProps<DropdownMenuArrowProps>, forwardedRef) => {
|
|
@@ -521,7 +527,7 @@ const DropdownMenuArrow = forwardRef<DropdownMenuArrowElement, DropdownMenuArrow
|
|
|
521
527
|
<MenuPrimitive.Arrow
|
|
522
528
|
{...menuScope}
|
|
523
529
|
{...arrowProps}
|
|
524
|
-
className={tx('menu.arrow',
|
|
530
|
+
className={tx('menu.arrow', {}, classNames)}
|
|
525
531
|
ref={forwardedRef}
|
|
526
532
|
/>
|
|
527
533
|
);
|
|
@@ -534,12 +540,12 @@ DropdownMenuArrow.displayName = ARROW_NAME;
|
|
|
534
540
|
// DropdownMenuSub
|
|
535
541
|
//
|
|
536
542
|
|
|
537
|
-
|
|
543
|
+
type DropdownMenuSubProps = {
|
|
538
544
|
children?: ReactNode;
|
|
539
545
|
open?: boolean;
|
|
540
546
|
defaultOpen?: boolean;
|
|
541
547
|
onOpenChange?(open: boolean): void;
|
|
542
|
-
}
|
|
548
|
+
};
|
|
543
549
|
|
|
544
550
|
const DropdownMenuSub: FC<DropdownMenuSubProps> = (props: ScopedProps<DropdownMenuSubProps>) => {
|
|
545
551
|
const { __scopeDropdownMenu, children, open: openProp, onOpenChange, defaultOpen } = props;
|
|
@@ -561,11 +567,11 @@ const DropdownMenuSub: FC<DropdownMenuSubProps> = (props: ScopedProps<DropdownMe
|
|
|
561
567
|
// DropdownMenuSubTrigger
|
|
562
568
|
//
|
|
563
569
|
|
|
564
|
-
const SUB_TRIGGER_NAME = '
|
|
570
|
+
const SUB_TRIGGER_NAME = 'DropdownMenu.SubTrigger';
|
|
565
571
|
|
|
566
|
-
type DropdownMenuSubTriggerElement =
|
|
572
|
+
type DropdownMenuSubTriggerElement = ComponentRef<typeof MenuPrimitive.SubTrigger>;
|
|
567
573
|
type MenuSubTriggerProps = ComponentPropsWithoutRef<typeof MenuPrimitive.SubTrigger>;
|
|
568
|
-
|
|
574
|
+
type DropdownMenuSubTriggerProps = MenuSubTriggerProps;
|
|
569
575
|
|
|
570
576
|
const DropdownMenuSubTrigger = forwardRef<DropdownMenuSubTriggerElement, DropdownMenuSubTriggerProps>(
|
|
571
577
|
(props: ScopedProps<DropdownMenuSubTriggerProps>, forwardedRef) => {
|
|
@@ -581,11 +587,11 @@ DropdownMenuSubTrigger.displayName = SUB_TRIGGER_NAME;
|
|
|
581
587
|
// DropdownMenuSubContent
|
|
582
588
|
//
|
|
583
589
|
|
|
584
|
-
const SUB_CONTENT_NAME = '
|
|
590
|
+
const SUB_CONTENT_NAME = 'DropdownMenu.SubContent';
|
|
585
591
|
|
|
586
|
-
type DropdownMenuSubContentElement =
|
|
592
|
+
type DropdownMenuSubContentElement = ComponentRef<typeof MenuPrimitive.Content>;
|
|
587
593
|
type MenuSubContentProps = ComponentPropsWithoutRef<typeof MenuPrimitive.SubContent>;
|
|
588
|
-
|
|
594
|
+
type DropdownMenuSubContentProps = MenuSubContentProps;
|
|
589
595
|
|
|
590
596
|
const DropdownMenuSubContent = forwardRef<DropdownMenuSubContentElement, DropdownMenuSubContentProps>(
|
|
591
597
|
(props: ScopedProps<DropdownMenuSubContentProps>, forwardedRef) => {
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2023 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import { dataDisabled } from '@dxos/ui-theme';
|
|
6
|
+
import { mx, surfaceShadow, surfaceZIndex } from '@dxos/ui-theme';
|
|
7
|
+
import { type ComponentFunction, type Elevation, type Theme } from '@dxos/ui-types';
|
|
8
|
+
|
|
9
|
+
export type MenuStyleProps = Partial<{
|
|
10
|
+
constrainBlockSize: boolean;
|
|
11
|
+
elevation: Elevation;
|
|
12
|
+
}>;
|
|
13
|
+
|
|
14
|
+
const content: ComponentFunction<MenuStyleProps> = ({ elevation }, ...etc) =>
|
|
15
|
+
mx(
|
|
16
|
+
'dx-modal-surface w-48 rounded-sm md:w-56 border border-separator',
|
|
17
|
+
surfaceZIndex({ elevation, level: 'menu' }),
|
|
18
|
+
surfaceShadow({ elevation: 'positioned' }),
|
|
19
|
+
...etc,
|
|
20
|
+
);
|
|
21
|
+
|
|
22
|
+
const viewport: ComponentFunction<MenuStyleProps> = (_props, ...etc) =>
|
|
23
|
+
mx('rounded-sm p-1 max-h-[var(--radix-dropdown-menu-content-available-height)] overflow-y-auto', ...etc);
|
|
24
|
+
|
|
25
|
+
const item: ComponentFunction<MenuStyleProps> = (_props, ...etc) =>
|
|
26
|
+
mx(
|
|
27
|
+
'flex cursor-pointer select-none items-center gap-2 rounded-xs px-2 py-2 text-sm',
|
|
28
|
+
'hover:bg-hover-surface data-[highlighted]:bg-hover-surface',
|
|
29
|
+
'dx-focus-subdued',
|
|
30
|
+
dataDisabled,
|
|
31
|
+
...etc,
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
const separator: ComponentFunction<MenuStyleProps> = (_props, ...etc) => mx('my-1 mx-2 h-px bg-separator', ...etc);
|
|
35
|
+
|
|
36
|
+
const groupLabel: ComponentFunction<MenuStyleProps> = (_props, ...etc) =>
|
|
37
|
+
mx('text-description', 'select-none px-2 py-2', ...etc);
|
|
38
|
+
|
|
39
|
+
const arrow: ComponentFunction<MenuStyleProps> = (_props, ...etc) => mx('fill-separator', ...etc);
|
|
40
|
+
|
|
41
|
+
export const menuTheme: Theme<MenuStyleProps> = {
|
|
42
|
+
content,
|
|
43
|
+
viewport,
|
|
44
|
+
item,
|
|
45
|
+
separator,
|
|
46
|
+
groupLabel,
|
|
47
|
+
arrow,
|
|
48
|
+
};
|
|
@@ -5,31 +5,37 @@
|
|
|
5
5
|
import { type Meta, type StoryObj } from '@storybook/react-vite';
|
|
6
6
|
import React from 'react';
|
|
7
7
|
|
|
8
|
+
import { random } from '@dxos/random';
|
|
8
9
|
import { type MessageValence } from '@dxos/ui-types';
|
|
9
10
|
|
|
10
11
|
import { withTheme } from '../../testing';
|
|
12
|
+
import { Message } from './Message';
|
|
11
13
|
|
|
12
|
-
|
|
14
|
+
random.seed(123);
|
|
13
15
|
|
|
14
|
-
type
|
|
16
|
+
type DefaultStoryProps = {
|
|
15
17
|
valence: MessageValence;
|
|
16
18
|
title: string;
|
|
17
19
|
body: string;
|
|
18
20
|
};
|
|
19
21
|
|
|
20
|
-
const DefaultStory = ({ valence, title, body }:
|
|
21
|
-
<
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
const DefaultStory = ({ valence, title, body }: DefaultStoryProps) => (
|
|
23
|
+
<div className='w-[30rem]'>
|
|
24
|
+
<Message.Root valence={valence}>
|
|
25
|
+
{title && <Message.Title onClose={() => console.log('close')}>{title}</Message.Title>}
|
|
26
|
+
{body && <Message.Content>{body}</Message.Content>}
|
|
27
|
+
</Message.Root>
|
|
28
|
+
</div>
|
|
25
29
|
);
|
|
26
30
|
|
|
27
31
|
const meta = {
|
|
28
|
-
title: 'ui/react-ui-core/components/
|
|
29
|
-
component:
|
|
32
|
+
title: 'ui/react-ui-core/components/Message',
|
|
33
|
+
component: Message.Root as any,
|
|
30
34
|
render: DefaultStory,
|
|
31
35
|
decorators: [withTheme()],
|
|
32
|
-
parameters: {
|
|
36
|
+
parameters: {
|
|
37
|
+
layout: 'centered',
|
|
38
|
+
},
|
|
33
39
|
argTypes: {
|
|
34
40
|
valence: {
|
|
35
41
|
control: 'select',
|
|
@@ -46,6 +52,14 @@ export const Default: Story = {
|
|
|
46
52
|
args: {
|
|
47
53
|
valence: 'neutral',
|
|
48
54
|
title: 'Alert title',
|
|
49
|
-
body:
|
|
55
|
+
body: random.lorem.paragraphs(1),
|
|
56
|
+
},
|
|
57
|
+
};
|
|
58
|
+
|
|
59
|
+
export const Error: Story = {
|
|
60
|
+
args: {
|
|
61
|
+
valence: 'error',
|
|
62
|
+
title: 'Error title',
|
|
63
|
+
body: random.lorem.paragraphs(1),
|
|
50
64
|
},
|
|
51
65
|
};
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2023 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import { mx, messageValence } from '@dxos/ui-theme';
|
|
6
|
+
import { type ComponentFunction, type Elevation, type MessageValence, type Theme } from '@dxos/ui-types';
|
|
7
|
+
|
|
8
|
+
export type MessageStyleProps = {
|
|
9
|
+
valence?: MessageValence;
|
|
10
|
+
elevation?: Elevation;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
const root: ComponentFunction<MessageStyleProps> = ({ valence }, etc) => {
|
|
14
|
+
return mx('grid grid-cols-[2rem_1fr_2rem] p-1 rounded-sm', messageValence(valence), etc);
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
const header: ComponentFunction<MessageStyleProps> = (_, etc) => {
|
|
18
|
+
return mx('col-span-full grid grid-cols-subgrid items-center', etc);
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const title: ComponentFunction<MessageStyleProps> = (_, etc) => {
|
|
22
|
+
return mx('col-start-2 overflow-hidden truncate', etc);
|
|
23
|
+
};
|
|
24
|
+
|
|
25
|
+
const icon: ComponentFunction<MessageStyleProps> = (_, etc) => {
|
|
26
|
+
return mx('col-start-1 grid place-items-center', etc);
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
const content: ComponentFunction<MessageStyleProps> = (_, etc) => {
|
|
30
|
+
return mx('col-start-2 grid grid-cols-subgrid inline first:font-medium', etc);
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
export const messageTheme: Theme<MessageStyleProps> = {
|
|
34
|
+
root,
|
|
35
|
+
header,
|
|
36
|
+
icon,
|
|
37
|
+
title,
|
|
38
|
+
content,
|
|
39
|
+
};
|
|
@@ -6,12 +6,16 @@ import { createContext } from '@radix-ui/react-context';
|
|
|
6
6
|
import { Primitive } from '@radix-ui/react-primitive';
|
|
7
7
|
import { Slot } from '@radix-ui/react-slot';
|
|
8
8
|
import React, { type ComponentPropsWithRef, forwardRef } from 'react';
|
|
9
|
+
import { useTranslation } from 'react-i18next';
|
|
9
10
|
|
|
10
11
|
import { useId } from '@dxos/react-hooks';
|
|
11
12
|
import { type Elevation, type MessageValence } from '@dxos/ui-types';
|
|
12
13
|
|
|
14
|
+
import { translationKey } from '#translations';
|
|
15
|
+
|
|
13
16
|
import { useElevationContext, useThemeContext } from '../../hooks';
|
|
14
17
|
import { type ThemedClassName } from '../../util';
|
|
18
|
+
import { IconButton } from '../Button';
|
|
15
19
|
import { Icon } from '../Icon';
|
|
16
20
|
|
|
17
21
|
const messageIcons: Record<MessageValence, string> = {
|
|
@@ -58,20 +62,20 @@ const MessageRoot = forwardRef<HTMLDivElement, MessageRootProps>(
|
|
|
58
62
|
const titleId = useId('message__title', propsTitleId);
|
|
59
63
|
const descriptionId = useId('message__description', propsDescriptionId);
|
|
60
64
|
const elevation = useElevationContext(propsElevation);
|
|
61
|
-
const
|
|
65
|
+
const Comp = asChild ? Slot : Primitive.div;
|
|
62
66
|
|
|
63
67
|
return (
|
|
64
68
|
<MessageProvider {...{ titleId, descriptionId, valence }}>
|
|
65
|
-
<
|
|
69
|
+
<Comp
|
|
66
70
|
role={valence === 'neutral' ? 'paragraph' : 'alert'}
|
|
67
71
|
{...props}
|
|
68
|
-
className={tx('message.root',
|
|
72
|
+
className={tx('message.root', { valence, elevation }, classNames)}
|
|
69
73
|
aria-labelledby={titleId}
|
|
70
74
|
aria-describedby={descriptionId}
|
|
71
75
|
ref={forwardedRef}
|
|
72
76
|
>
|
|
73
77
|
{children}
|
|
74
|
-
</
|
|
78
|
+
</Comp>
|
|
75
79
|
</MessageProvider>
|
|
76
80
|
);
|
|
77
81
|
},
|
|
@@ -84,34 +88,36 @@ MessageRoot.displayName = MESSAGE_NAME;
|
|
|
84
88
|
//
|
|
85
89
|
|
|
86
90
|
type MessageTitleProps = Omit<ThemedClassName<ComponentPropsWithRef<typeof Primitive.h2>>, 'id'> & {
|
|
87
|
-
asChild?: boolean;
|
|
88
91
|
icon?: string;
|
|
92
|
+
onClose?: () => void;
|
|
89
93
|
};
|
|
90
94
|
|
|
91
|
-
const MESSAGE_TITLE_NAME = '
|
|
95
|
+
const MESSAGE_TITLE_NAME = 'Message.Title';
|
|
92
96
|
|
|
93
97
|
const MessageTitle = forwardRef<HTMLHeadingElement, MessageTitleProps>(
|
|
94
|
-
({
|
|
98
|
+
({ classNames, children, icon: iconProp, onClose }, forwardedRef) => {
|
|
99
|
+
const { t } = useTranslation(translationKey);
|
|
95
100
|
const { tx } = useThemeContext();
|
|
96
101
|
const { titleId, valence } = useMessageContext(MESSAGE_TITLE_NAME);
|
|
97
|
-
const
|
|
98
|
-
|
|
102
|
+
const icon = iconProp ?? messageIcons[valence];
|
|
99
103
|
return (
|
|
100
|
-
<
|
|
101
|
-
{
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
{
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
104
|
+
<div className={tx('message.header', {}, classNames)} id={titleId} ref={forwardedRef}>
|
|
105
|
+
{icon && (
|
|
106
|
+
<div className={tx('message.icon', { valence })}>
|
|
107
|
+
<Icon icon={icon} />
|
|
108
|
+
</div>
|
|
109
|
+
)}
|
|
110
|
+
<h2 className={tx('message.title', {}, classNames)}>{children}</h2>
|
|
111
|
+
{onClose && (
|
|
112
|
+
<IconButton
|
|
113
|
+
variant='ghost'
|
|
114
|
+
icon='ph--x--regular'
|
|
115
|
+
iconOnly
|
|
116
|
+
label={t('toolbar-close.label')}
|
|
117
|
+
onClick={onClose}
|
|
111
118
|
/>
|
|
112
119
|
)}
|
|
113
|
-
|
|
114
|
-
</Root>
|
|
120
|
+
</div>
|
|
115
121
|
);
|
|
116
122
|
},
|
|
117
123
|
);
|
|
@@ -126,22 +132,17 @@ type MessageContentProps = Omit<ThemedClassName<ComponentPropsWithRef<typeof Pri
|
|
|
126
132
|
asChild?: boolean;
|
|
127
133
|
};
|
|
128
134
|
|
|
129
|
-
const MESSAGE_CONTENT_NAME = '
|
|
135
|
+
const MESSAGE_CONTENT_NAME = 'Message.Content';
|
|
130
136
|
|
|
131
137
|
const MessageContent = forwardRef<HTMLParagraphElement, MessageContentProps>(
|
|
132
138
|
({ asChild, classNames, children, ...props }, forwardedRef) => {
|
|
133
139
|
const { tx } = useThemeContext();
|
|
134
140
|
const { descriptionId } = useMessageContext(MESSAGE_CONTENT_NAME);
|
|
135
|
-
const
|
|
141
|
+
const Comp = asChild ? Slot : Primitive.p;
|
|
136
142
|
return (
|
|
137
|
-
<
|
|
138
|
-
{...props}
|
|
139
|
-
className={tx('message.content', 'message__content', {}, classNames)}
|
|
140
|
-
id={descriptionId}
|
|
141
|
-
ref={forwardedRef}
|
|
142
|
-
>
|
|
143
|
+
<Comp {...props} className={tx('message.content', {}, classNames)} id={descriptionId} ref={forwardedRef}>
|
|
143
144
|
{children}
|
|
144
|
-
</
|
|
145
|
+
</Comp>
|
|
145
146
|
);
|
|
146
147
|
},
|
|
147
148
|
);
|