@dxos/react-ui 0.1.12 → 0.1.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +83 -5
- package/dist/lib/browser/index.mjs +2092 -0
- package/dist/lib/browser/index.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -0
- package/dist/plugin/node/esbuild-plugin.cjs +469 -0
- package/dist/plugin/node/esbuild-plugin.cjs.map +7 -0
- package/dist/plugin/node/meta.json +1 -0
- package/dist/plugin/node/plugin.cjs +460 -0
- package/dist/plugin/node/plugin.cjs.map +7 -0
- package/dist/{src → plugin/node}/theme.css +15 -19
- package/dist/plugin/node/theme.css.map +7 -0
- package/dist/{src → types/src}/components/Alert/Alert.d.ts +7 -2
- package/dist/types/src/components/Alert/Alert.d.ts.map +1 -0
- package/dist/{src → types/src}/components/Alert/Alert.stories.d.ts +1 -1
- package/dist/types/src/components/Alert/Alert.stories.d.ts.map +1 -0
- package/dist/{src → types/src}/components/Alert/index.d.ts +0 -0
- package/dist/types/src/components/Alert/index.d.ts.map +1 -0
- package/dist/types/src/components/AlertDialog/AlertDialog.d.ts +26 -0
- package/dist/types/src/components/AlertDialog/AlertDialog.d.ts.map +1 -0
- package/dist/{src → types/src}/components/AlertDialog/AlertDialog.stories.d.ts +1 -1
- package/dist/types/src/components/AlertDialog/AlertDialog.stories.d.ts.map +1 -0
- package/dist/{src → types/src}/components/AlertDialog/index.d.ts +0 -0
- package/dist/types/src/components/AlertDialog/index.d.ts.map +1 -0
- package/dist/types/src/components/Avatar/Avatar.d.ts +22 -0
- package/dist/types/src/components/Avatar/Avatar.d.ts.map +1 -0
- package/dist/types/src/components/Avatar/Avatar.stories.d.ts +12 -0
- package/dist/types/src/components/Avatar/Avatar.stories.d.ts.map +1 -0
- package/dist/{src → types/src}/components/Avatar/index.d.ts +0 -0
- package/dist/types/src/components/Avatar/index.d.ts.map +1 -0
- package/dist/types/src/components/Button/Button.d.ts +4 -0
- package/dist/types/src/components/Button/Button.d.ts.map +1 -0
- package/dist/types/src/components/Button/Button.stories.d.ts +13 -0
- package/dist/types/src/components/Button/Button.stories.d.ts.map +1 -0
- package/dist/{src → types/src}/components/Button/ButtonGroup.d.ts +0 -0
- package/dist/types/src/components/Button/ButtonGroup.d.ts.map +1 -0
- package/dist/{src → types/src}/components/Button/ButtonProps.d.ts +0 -2
- package/dist/types/src/components/Button/ButtonProps.d.ts.map +1 -0
- package/dist/{src → types/src}/components/Button/buttonStyles.d.ts +0 -0
- package/dist/types/src/components/Button/buttonStyles.d.ts.map +1 -0
- package/dist/{src → types/src}/components/Button/index.d.ts +0 -0
- package/dist/types/src/components/Button/index.d.ts.map +1 -0
- package/dist/{src → types/src}/components/CompoundButton/CompoundButton.d.ts +0 -0
- package/dist/types/src/components/CompoundButton/CompoundButton.d.ts.map +1 -0
- package/dist/{src → types/src}/components/CompoundButton/CompoundButton.stories.d.ts +0 -0
- package/dist/types/src/components/CompoundButton/CompoundButton.stories.d.ts.map +1 -0
- package/dist/{src → types/src}/components/CompoundButton/index.d.ts +0 -0
- package/dist/types/src/components/CompoundButton/index.d.ts.map +1 -0
- package/dist/types/src/components/Dialog/Dialog.d.ts +26 -0
- package/dist/types/src/components/Dialog/Dialog.d.ts.map +1 -0
- package/dist/{src → types/src}/components/Dialog/Dialog.stories.d.ts +1 -1
- package/dist/types/src/components/Dialog/Dialog.stories.d.ts.map +1 -0
- package/dist/{src → types/src}/components/Dialog/index.d.ts +0 -0
- package/dist/types/src/components/Dialog/index.d.ts.map +1 -0
- package/dist/{src → types/src}/components/Group/Group.d.ts +1 -1
- package/dist/types/src/components/Group/Group.d.ts.map +1 -0
- package/dist/{src → types/src}/components/Group/Group.stories.d.ts +1 -1
- package/dist/types/src/components/Group/Group.stories.d.ts.map +1 -0
- package/dist/{src → types/src}/components/Group/index.d.ts +0 -0
- package/dist/types/src/components/Group/index.d.ts.map +1 -0
- package/dist/{src → types/src}/components/Heading/Heading.d.ts +5 -8
- package/dist/types/src/components/Heading/Heading.d.ts.map +1 -0
- package/dist/{src → types/src}/components/Heading/Heading.stories.d.ts +5 -8
- package/dist/{src → types/src}/components/Heading/Heading.stories.d.ts.map +1 -1
- package/dist/{src → types/src}/components/Heading/index.d.ts +0 -0
- package/dist/types/src/components/Heading/index.d.ts.map +1 -0
- package/dist/{src → types/src}/components/Input/BarePinInput.d.ts +17 -16
- package/dist/types/src/components/Input/BarePinInput.d.ts.map +1 -0
- package/dist/types/src/components/Input/BareTextInput.d.ts +7 -0
- package/dist/types/src/components/Input/BareTextInput.d.ts.map +1 -0
- package/dist/types/src/components/Input/BareTextareaInput.d.ts +7 -0
- package/dist/types/src/components/Input/BareTextareaInput.d.ts.map +1 -0
- package/dist/types/src/components/Input/Input.d.ts +4 -0
- package/dist/types/src/components/Input/Input.d.ts.map +1 -0
- package/dist/{src → types/src}/components/Input/Input.stories.d.ts +1 -1
- package/dist/types/src/components/Input/Input.stories.d.ts.map +1 -0
- package/dist/types/src/components/Input/InputProps.d.ts +37 -0
- package/dist/types/src/components/Input/InputProps.d.ts.map +1 -0
- package/dist/{src → types/src}/components/Input/index.d.ts +0 -0
- package/dist/types/src/components/Input/index.d.ts.map +1 -0
- package/dist/types/src/components/Loading/Loading.d.ts +15 -0
- package/dist/types/src/components/Loading/Loading.d.ts.map +1 -0
- package/dist/{src → types/src}/components/Loading/Loading.stories.d.ts +1 -3
- package/dist/types/src/components/Loading/Loading.stories.d.ts.map +1 -0
- package/dist/{src → types/src}/components/Loading/index.d.ts +0 -0
- package/dist/types/src/components/Loading/index.d.ts.map +1 -0
- package/dist/{src → types/src}/components/NavMenu/NavMenu.d.ts +11 -3
- package/dist/types/src/components/NavMenu/NavMenu.d.ts.map +1 -0
- package/dist/{src → types/src}/components/NavMenu/NavMenu.stories.d.ts +1 -1
- package/dist/types/src/components/NavMenu/NavMenu.stories.d.ts.map +1 -0
- package/dist/{src → types/src}/components/NavMenu/index.d.ts +0 -0
- package/dist/types/src/components/NavMenu/index.d.ts.map +1 -0
- package/dist/types/src/components/Popover/Popover.d.ts +21 -0
- package/dist/types/src/components/Popover/Popover.d.ts.map +1 -0
- package/dist/{src → types/src}/components/Popover/Popover.stories.d.ts +1 -1
- package/dist/types/src/components/Popover/Popover.stories.d.ts.map +1 -0
- package/dist/{src → types/src}/components/Popover/index.d.ts +0 -0
- package/dist/types/src/components/Popover/index.d.ts.map +1 -0
- package/dist/types/src/components/QrCode/QrCode.d.ts +39 -0
- package/dist/types/src/components/QrCode/QrCode.d.ts.map +1 -0
- package/dist/{src → types/src}/components/QrCode/QrCode.stories.d.ts +1 -1
- package/dist/types/src/components/QrCode/QrCode.stories.d.ts.map +1 -0
- package/dist/{src → types/src}/components/QrCode/index.d.ts +0 -0
- package/dist/types/src/components/QrCode/index.d.ts.map +1 -0
- package/dist/types/src/components/Tag/Tag.d.ts +8 -0
- package/dist/types/src/components/Tag/Tag.d.ts.map +1 -0
- package/dist/{src → types/src}/components/Tag/Tag.stories.d.ts +1 -1
- package/dist/types/src/components/Tag/Tag.stories.d.ts.map +1 -0
- package/dist/{src → types/src}/components/Tag/index.d.ts +0 -0
- package/dist/types/src/components/Tag/index.d.ts.map +1 -0
- package/dist/{src → types/src}/components/Toast/Toast.d.ts +10 -1
- package/dist/types/src/components/Toast/Toast.d.ts.map +1 -0
- package/dist/{src → types/src}/components/Toast/Toast.stories.d.ts +1 -1
- package/dist/types/src/components/Toast/Toast.stories.d.ts.map +1 -0
- package/dist/{src → types/src}/components/Toast/index.d.ts +0 -0
- package/dist/types/src/components/Toast/index.d.ts.map +1 -0
- package/dist/types/src/components/Tooltip/Tooltip.d.ts +19 -0
- package/dist/types/src/components/Tooltip/Tooltip.d.ts.map +1 -0
- package/dist/{src → types/src}/components/Tooltip/Tooltip.stories.d.ts +1 -1
- package/dist/types/src/components/Tooltip/Tooltip.stories.d.ts.map +1 -0
- package/dist/{src → types/src}/components/Tooltip/index.d.ts +0 -0
- package/dist/types/src/components/Tooltip/index.d.ts.map +1 -0
- package/dist/{src → types/src}/components/UiProvider/UiProvider.d.ts +1 -1
- package/dist/types/src/components/UiProvider/UiProvider.d.ts.map +1 -0
- package/dist/{src → types/src}/components/UiProvider/index.d.ts +0 -0
- package/dist/types/src/components/UiProvider/index.d.ts.map +1 -0
- package/dist/{src → types/src}/components/index.d.ts +0 -0
- package/dist/types/src/components/index.d.ts.map +1 -0
- package/dist/types/src/config/index.d.ts +2 -0
- package/dist/types/src/config/index.d.ts.map +1 -0
- package/dist/types/src/config/tailwind.d.ts +7 -0
- package/dist/types/src/config/tailwind.d.ts.map +1 -0
- package/dist/types/src/esbuild-plugin.d.ts +6 -0
- package/dist/types/src/esbuild-plugin.d.ts.map +1 -0
- package/dist/{src → types/src}/hooks/index.d.ts +0 -0
- package/dist/types/src/hooks/index.d.ts.map +1 -0
- package/dist/{src → types/src}/hooks/useForwardedRef.d.ts +0 -0
- package/dist/types/src/hooks/useForwardedRef.d.ts.map +1 -0
- package/dist/{src → types/src}/hooks/useId.d.ts +0 -0
- package/dist/types/src/hooks/useId.d.ts.map +1 -0
- package/dist/{src → types/src}/hooks/useIsFocused.d.ts +0 -0
- package/dist/types/src/hooks/useIsFocused.d.ts.map +1 -0
- package/dist/{src → types/src}/index.d.ts +3 -2
- package/dist/types/src/index.d.ts.map +1 -0
- package/dist/{src → types/src}/plugin.d.ts +1 -1
- package/dist/types/src/plugin.d.ts.map +1 -0
- package/dist/types/src/props/Elevation.d.ts +2 -0
- package/dist/types/src/props/Elevation.d.ts.map +1 -0
- package/dist/types/src/props/MessageValence.d.ts +2 -0
- package/dist/types/src/props/MessageValence.d.ts.map +1 -0
- package/dist/types/src/props/Size.d.ts +2 -0
- package/dist/types/src/props/Size.d.ts.map +1 -0
- package/dist/{src → types/src}/props/index.d.ts +0 -0
- package/dist/types/src/props/index.d.ts.map +1 -0
- package/dist/{src → types/src}/styles/active.d.ts +0 -0
- package/dist/types/src/styles/active.d.ts.map +1 -0
- package/dist/{src → types/src}/styles/disabled.d.ts +0 -0
- package/dist/types/src/styles/disabled.d.ts.map +1 -0
- package/dist/{src → types/src}/styles/focus.d.ts +0 -0
- package/dist/types/src/styles/focus.d.ts.map +1 -0
- package/dist/{src → types/src}/styles/group.d.ts +0 -0
- package/dist/types/src/styles/group.d.ts.map +1 -0
- package/dist/{src → types/src}/styles/hover.d.ts +0 -0
- package/dist/types/src/styles/hover.d.ts.map +1 -0
- package/dist/{src → types/src}/styles/index.d.ts +0 -0
- package/dist/types/src/styles/index.d.ts.map +1 -0
- package/dist/types/src/styles/input.d.ts +11 -0
- package/dist/types/src/styles/input.d.ts.map +1 -0
- package/dist/{src → types/src}/styles/ornament.d.ts +0 -0
- package/dist/types/src/styles/ornament.d.ts.map +1 -0
- package/dist/{src → types/src}/styles/shimmer.d.ts +0 -0
- package/dist/types/src/styles/shimmer.d.ts.map +1 -0
- package/dist/{src → types/src}/styles/size.d.ts +1 -1
- package/dist/types/src/styles/size.d.ts.map +1 -0
- package/dist/{src → types/src}/styles/text.d.ts +0 -0
- package/dist/types/src/styles/text.d.ts.map +1 -0
- package/dist/{src → types/src}/styles/valence.d.ts +0 -0
- package/dist/types/src/styles/valence.d.ts.map +1 -0
- package/dist/{src → types/src}/testing/index.d.ts +0 -0
- package/dist/types/src/testing/index.d.ts.map +1 -0
- package/dist/{src → types/src}/testing/templateForComponent.d.ts +0 -0
- package/dist/types/src/testing/templateForComponent.d.ts.map +1 -0
- package/dist/types/src/util/index.d.ts +2 -0
- package/dist/types/src/util/index.d.ts.map +1 -0
- package/dist/types/src/util/mx.d.ts +2 -0
- package/dist/types/src/util/mx.d.ts.map +1 -0
- package/dist/types/src/util/withLogical.d.ts +3 -0
- package/dist/types/src/util/withLogical.d.ts.map +1 -0
- package/package.json +9 -5
- package/plugin.d.ts +1 -1
- package/plugin.js +1 -1
- package/src/components/Alert/Alert.tsx +12 -6
- package/src/components/AlertDialog/AlertDialog.tsx +31 -11
- package/src/components/Avatar/Avatar.tsx +35 -13
- package/src/components/Button/Button.tsx +11 -13
- package/src/components/Button/ButtonGroup.tsx +3 -2
- package/src/components/Button/ButtonProps.ts +0 -2
- package/src/components/Button/buttonStyles.ts +4 -7
- package/src/components/CompoundButton/CompoundButton.tsx +3 -3
- package/src/components/Dialog/Dialog.tsx +47 -14
- package/src/components/Group/Group.tsx +10 -5
- package/src/components/Heading/Heading.tsx +5 -4
- package/src/components/Input/BarePinInput.tsx +18 -13
- package/src/components/Input/BareTextInput.tsx +18 -15
- package/src/components/Input/BareTextareaInput.tsx +17 -16
- package/src/components/Input/Input.tsx +17 -23
- package/src/components/Input/InputProps.ts +23 -11
- package/src/components/Loading/Loading.tsx +18 -8
- package/src/components/NavMenu/NavMenu.stories.tsx +1 -1
- package/src/components/NavMenu/NavMenu.tsx +42 -19
- package/src/components/Popover/Popover.stories.tsx +7 -3
- package/src/components/Popover/Popover.tsx +54 -20
- package/src/components/QrCode/QrCode.tsx +61 -49
- package/src/components/Tag/Tag.tsx +6 -6
- package/src/components/Toast/Toast.tsx +48 -26
- package/src/components/Tooltip/Tooltip.tsx +32 -13
- package/src/components/UiProvider/UiProvider.tsx +3 -3
- package/src/config/index.ts +5 -0
- package/src/config/tailwind.ts +250 -0
- package/src/esbuild-plugin.ts +42 -0
- package/src/index.ts +3 -2
- package/src/plugin.ts +5 -240
- package/src/styles/active.ts +2 -2
- package/src/styles/group.ts +2 -3
- package/src/styles/input.ts +7 -26
- package/src/styles/size.ts +3 -4
- package/src/typings.d.ts +0 -1
- package/src/util/index.ts +5 -0
- package/src/util/mx.ts +28 -0
- package/src/util/withLogical.ts +103 -0
- package/dist/src/components/Alert/Alert.d.ts.map +0 -1
- package/dist/src/components/Alert/Alert.js +0 -21
- package/dist/src/components/Alert/Alert.js.map +0 -1
- package/dist/src/components/Alert/Alert.stories.d.ts.map +0 -1
- package/dist/src/components/Alert/Alert.stories.js +0 -30
- package/dist/src/components/Alert/Alert.stories.js.map +0 -1
- package/dist/src/components/Alert/index.d.ts.map +0 -1
- package/dist/src/components/Alert/index.js +0 -21
- package/dist/src/components/Alert/index.js.map +0 -1
- package/dist/src/components/AlertDialog/AlertDialog.d.ts +0 -17
- package/dist/src/components/AlertDialog/AlertDialog.d.ts.map +0 -1
- package/dist/src/components/AlertDialog/AlertDialog.js +0 -65
- package/dist/src/components/AlertDialog/AlertDialog.js.map +0 -1
- package/dist/src/components/AlertDialog/AlertDialog.stories.d.ts.map +0 -1
- package/dist/src/components/AlertDialog/AlertDialog.stories.js +0 -37
- package/dist/src/components/AlertDialog/AlertDialog.stories.js.map +0 -1
- package/dist/src/components/AlertDialog/index.d.ts.map +0 -1
- package/dist/src/components/AlertDialog/index.js +0 -21
- package/dist/src/components/AlertDialog/index.js.map +0 -1
- package/dist/src/components/Avatar/Avatar.d.ts +0 -13
- package/dist/src/components/Avatar/Avatar.d.ts.map +0 -1
- package/dist/src/components/Avatar/Avatar.js +0 -53
- package/dist/src/components/Avatar/Avatar.js.map +0 -1
- package/dist/src/components/Avatar/Avatar.stories.d.ts +0 -10
- package/dist/src/components/Avatar/Avatar.stories.d.ts.map +0 -1
- package/dist/src/components/Avatar/Avatar.stories.js +0 -30
- package/dist/src/components/Avatar/Avatar.stories.js.map +0 -1
- package/dist/src/components/Avatar/index.d.ts.map +0 -1
- package/dist/src/components/Avatar/index.js +0 -21
- package/dist/src/components/Avatar/index.js.map +0 -1
- package/dist/src/components/Button/Button.d.ts +0 -4
- package/dist/src/components/Button/Button.d.ts.map +0 -1
- package/dist/src/components/Button/Button.js +0 -37
- package/dist/src/components/Button/Button.js.map +0 -1
- package/dist/src/components/Button/Button.stories.d.ts +0 -13
- package/dist/src/components/Button/Button.stories.d.ts.map +0 -1
- package/dist/src/components/Button/Button.stories.js +0 -33
- package/dist/src/components/Button/Button.stories.js.map +0 -1
- package/dist/src/components/Button/ButtonGroup.d.ts.map +0 -1
- package/dist/src/components/Button/ButtonGroup.js +0 -16
- package/dist/src/components/Button/ButtonGroup.js.map +0 -1
- package/dist/src/components/Button/ButtonProps.d.ts.map +0 -1
- package/dist/src/components/Button/ButtonProps.js +0 -6
- package/dist/src/components/Button/ButtonProps.js.map +0 -1
- package/dist/src/components/Button/buttonStyles.d.ts.map +0 -1
- package/dist/src/components/Button/buttonStyles.js +0 -26
- package/dist/src/components/Button/buttonStyles.js.map +0 -1
- package/dist/src/components/Button/index.d.ts.map +0 -1
- package/dist/src/components/Button/index.js +0 -24
- package/dist/src/components/Button/index.js.map +0 -1
- package/dist/src/components/CompoundButton/CompoundButton.d.ts.map +0 -1
- package/dist/src/components/CompoundButton/CompoundButton.js +0 -27
- package/dist/src/components/CompoundButton/CompoundButton.js.map +0 -1
- package/dist/src/components/CompoundButton/CompoundButton.stories.d.ts.map +0 -1
- package/dist/src/components/CompoundButton/CompoundButton.stories.js +0 -40
- package/dist/src/components/CompoundButton/CompoundButton.stories.js.map +0 -1
- package/dist/src/components/CompoundButton/index.d.ts.map +0 -1
- package/dist/src/components/CompoundButton/index.js +0 -21
- package/dist/src/components/CompoundButton/index.js.map +0 -1
- package/dist/src/components/Dialog/Dialog.d.ts +0 -14
- package/dist/src/components/Dialog/Dialog.d.ts.map +0 -1
- package/dist/src/components/Dialog/Dialog.js +0 -59
- package/dist/src/components/Dialog/Dialog.js.map +0 -1
- package/dist/src/components/Dialog/Dialog.stories.d.ts.map +0 -1
- package/dist/src/components/Dialog/Dialog.stories.js +0 -37
- package/dist/src/components/Dialog/Dialog.stories.js.map +0 -1
- package/dist/src/components/Dialog/index.d.ts.map +0 -1
- package/dist/src/components/Dialog/index.js +0 -21
- package/dist/src/components/Dialog/index.js.map +0 -1
- package/dist/src/components/Group/Group.d.ts.map +0 -1
- package/dist/src/components/Group/Group.js +0 -22
- package/dist/src/components/Group/Group.js.map +0 -1
- package/dist/src/components/Group/Group.stories.d.ts.map +0 -1
- package/dist/src/components/Group/Group.stories.js +0 -27
- package/dist/src/components/Group/Group.stories.js.map +0 -1
- package/dist/src/components/Group/index.d.ts.map +0 -1
- package/dist/src/components/Group/index.js +0 -21
- package/dist/src/components/Group/index.js.map +0 -1
- package/dist/src/components/Heading/Heading.d.ts.map +0 -1
- package/dist/src/components/Heading/Heading.js +0 -28
- package/dist/src/components/Heading/Heading.js.map +0 -1
- package/dist/src/components/Heading/Heading.stories.js +0 -34
- package/dist/src/components/Heading/Heading.stories.js.map +0 -1
- package/dist/src/components/Heading/index.d.ts.map +0 -1
- package/dist/src/components/Heading/index.js +0 -21
- package/dist/src/components/Heading/index.js.map +0 -1
- package/dist/src/components/Input/BarePinInput.d.ts.map +0 -1
- package/dist/src/components/Input/BarePinInput.js +0 -62
- package/dist/src/components/Input/BarePinInput.js.map +0 -1
- package/dist/src/components/Input/BareTextInput.d.ts +0 -5
- package/dist/src/components/Input/BareTextInput.d.ts.map +0 -1
- package/dist/src/components/Input/BareTextInput.js +0 -29
- package/dist/src/components/Input/BareTextInput.js.map +0 -1
- package/dist/src/components/Input/BareTextareaInput.d.ts +0 -5
- package/dist/src/components/Input/BareTextareaInput.d.ts.map +0 -1
- package/dist/src/components/Input/BareTextareaInput.js +0 -23
- package/dist/src/components/Input/BareTextareaInput.js.map +0 -1
- package/dist/src/components/Input/Input.d.ts +0 -4
- package/dist/src/components/Input/Input.d.ts.map +0 -1
- package/dist/src/components/Input/Input.js +0 -87
- package/dist/src/components/Input/Input.js.map +0 -1
- package/dist/src/components/Input/Input.stories.d.ts.map +0 -1
- package/dist/src/components/Input/Input.stories.js +0 -86
- package/dist/src/components/Input/Input.stories.js.map +0 -1
- package/dist/src/components/Input/InputProps.d.ts +0 -26
- package/dist/src/components/Input/InputProps.d.ts.map +0 -1
- package/dist/src/components/Input/InputProps.js +0 -6
- package/dist/src/components/Input/InputProps.js.map +0 -1
- package/dist/src/components/Input/index.d.ts.map +0 -1
- package/dist/src/components/Input/index.js +0 -21
- package/dist/src/components/Input/index.js.map +0 -1
- package/dist/src/components/Loading/Loading.d.ts +0 -12
- package/dist/src/components/Loading/Loading.d.ts.map +0 -1
- package/dist/src/components/Loading/Loading.js +0 -29
- package/dist/src/components/Loading/Loading.js.map +0 -1
- package/dist/src/components/Loading/Loading.stories.d.ts.map +0 -1
- package/dist/src/components/Loading/Loading.stories.js +0 -39
- package/dist/src/components/Loading/Loading.stories.js.map +0 -1
- package/dist/src/components/Loading/index.d.ts.map +0 -1
- package/dist/src/components/Loading/index.js +0 -21
- package/dist/src/components/Loading/index.js.map +0 -1
- package/dist/src/components/NavMenu/NavMenu.d.ts.map +0 -1
- package/dist/src/components/NavMenu/NavMenu.js +0 -71
- package/dist/src/components/NavMenu/NavMenu.js.map +0 -1
- package/dist/src/components/NavMenu/NavMenu.stories.d.ts.map +0 -1
- package/dist/src/components/NavMenu/NavMenu.stories.js +0 -50
- package/dist/src/components/NavMenu/NavMenu.stories.js.map +0 -1
- package/dist/src/components/NavMenu/index.d.ts.map +0 -1
- package/dist/src/components/NavMenu/index.js +0 -21
- package/dist/src/components/NavMenu/index.js.map +0 -1
- package/dist/src/components/Popover/Popover.d.ts +0 -11
- package/dist/src/components/Popover/Popover.d.ts.map +0 -1
- package/dist/src/components/Popover/Popover.js +0 -56
- package/dist/src/components/Popover/Popover.js.map +0 -1
- package/dist/src/components/Popover/Popover.stories.d.ts.map +0 -1
- package/dist/src/components/Popover/Popover.stories.js +0 -39
- package/dist/src/components/Popover/Popover.stories.js.map +0 -1
- package/dist/src/components/Popover/index.d.ts.map +0 -1
- package/dist/src/components/Popover/index.js +0 -21
- package/dist/src/components/Popover/index.js.map +0 -1
- package/dist/src/components/QrCode/QrCode.d.ts +0 -22
- package/dist/src/components/QrCode/QrCode.d.ts.map +0 -1
- package/dist/src/components/QrCode/QrCode.js +0 -79
- package/dist/src/components/QrCode/QrCode.js.map +0 -1
- package/dist/src/components/QrCode/QrCode.stories.d.ts.map +0 -1
- package/dist/src/components/QrCode/QrCode.stories.js +0 -42
- package/dist/src/components/QrCode/QrCode.stories.js.map +0 -1
- package/dist/src/components/QrCode/index.d.ts.map +0 -1
- package/dist/src/components/QrCode/index.js +0 -21
- package/dist/src/components/QrCode/index.js.map +0 -1
- package/dist/src/components/Tag/Tag.d.ts +0 -8
- package/dist/src/components/Tag/Tag.d.ts.map +0 -1
- package/dist/src/components/Tag/Tag.js +0 -23
- package/dist/src/components/Tag/Tag.js.map +0 -1
- package/dist/src/components/Tag/Tag.stories.d.ts.map +0 -1
- package/dist/src/components/Tag/Tag.stories.js +0 -24
- package/dist/src/components/Tag/Tag.stories.js.map +0 -1
- package/dist/src/components/Tag/index.d.ts.map +0 -1
- package/dist/src/components/Tag/index.js +0 -21
- package/dist/src/components/Tag/index.js.map +0 -1
- package/dist/src/components/Toast/Toast.d.ts.map +0 -1
- package/dist/src/components/Toast/Toast.js +0 -54
- package/dist/src/components/Toast/Toast.js.map +0 -1
- package/dist/src/components/Toast/Toast.stories.d.ts.map +0 -1
- package/dist/src/components/Toast/Toast.stories.js +0 -32
- package/dist/src/components/Toast/Toast.stories.js.map +0 -1
- package/dist/src/components/Toast/index.d.ts.map +0 -1
- package/dist/src/components/Toast/index.js +0 -21
- package/dist/src/components/Toast/index.js.map +0 -1
- package/dist/src/components/Tooltip/Tooltip.d.ts +0 -12
- package/dist/src/components/Tooltip/Tooltip.d.ts.map +0 -1
- package/dist/src/components/Tooltip/Tooltip.js +0 -50
- package/dist/src/components/Tooltip/Tooltip.js.map +0 -1
- package/dist/src/components/Tooltip/Tooltip.stories.d.ts.map +0 -1
- package/dist/src/components/Tooltip/Tooltip.stories.js +0 -30
- package/dist/src/components/Tooltip/Tooltip.stories.js.map +0 -1
- package/dist/src/components/Tooltip/index.d.ts.map +0 -1
- package/dist/src/components/Tooltip/index.js +0 -21
- package/dist/src/components/Tooltip/index.js.map +0 -1
- package/dist/src/components/UiProvider/UiProvider.d.ts.map +0 -1
- package/dist/src/components/UiProvider/UiProvider.js +0 -21
- package/dist/src/components/UiProvider/UiProvider.js.map +0 -1
- package/dist/src/components/UiProvider/index.d.ts.map +0 -1
- package/dist/src/components/UiProvider/index.js +0 -21
- package/dist/src/components/UiProvider/index.js.map +0 -1
- package/dist/src/components/index.d.ts.map +0 -1
- package/dist/src/components/index.js +0 -37
- package/dist/src/components/index.js.map +0 -1
- package/dist/src/hooks/index.d.ts.map +0 -1
- package/dist/src/hooks/index.js +0 -23
- package/dist/src/hooks/index.js.map +0 -1
- package/dist/src/hooks/useForwardedRef.d.ts.map +0 -1
- package/dist/src/hooks/useForwardedRef.js +0 -24
- package/dist/src/hooks/useForwardedRef.js.map +0 -1
- package/dist/src/hooks/useId.d.ts.map +0 -1
- package/dist/src/hooks/useId.js +0 -20
- package/dist/src/hooks/useId.js.map +0 -1
- package/dist/src/hooks/useIsFocused.d.ts.map +0 -1
- package/dist/src/hooks/useIsFocused.js +0 -34
- package/dist/src/hooks/useIsFocused.js.map +0 -1
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -24
- package/dist/src/index.js.map +0 -1
- package/dist/src/plugin.d.ts.map +0 -1
- package/dist/src/plugin.js +0 -276
- package/dist/src/plugin.js.map +0 -1
- package/dist/src/props/Elevation.d.ts +0 -2
- package/dist/src/props/Elevation.d.ts.map +0 -1
- package/dist/src/props/Elevation.js +0 -6
- package/dist/src/props/Elevation.js.map +0 -1
- package/dist/src/props/MessageValence.d.ts +0 -2
- package/dist/src/props/MessageValence.d.ts.map +0 -1
- package/dist/src/props/MessageValence.js +0 -6
- package/dist/src/props/MessageValence.js.map +0 -1
- package/dist/src/props/Size.d.ts +0 -2
- package/dist/src/props/Size.d.ts.map +0 -1
- package/dist/src/props/Size.js +0 -6
- package/dist/src/props/Size.js.map +0 -1
- package/dist/src/props/index.d.ts.map +0 -1
- package/dist/src/props/index.js +0 -23
- package/dist/src/props/index.js.map +0 -1
- package/dist/src/styles/active.d.ts.map +0 -1
- package/dist/src/styles/active.js +0 -12
- package/dist/src/styles/active.js.map +0 -1
- package/dist/src/styles/disabled.d.ts.map +0 -1
- package/dist/src/styles/disabled.js +0 -8
- package/dist/src/styles/disabled.js.map +0 -1
- package/dist/src/styles/focus.d.ts.map +0 -1
- package/dist/src/styles/focus.js +0 -9
- package/dist/src/styles/focus.js.map +0 -1
- package/dist/src/styles/group.d.ts.map +0 -1
- package/dist/src/styles/group.js +0 -26
- package/dist/src/styles/group.js.map +0 -1
- package/dist/src/styles/hover.d.ts.map +0 -1
- package/dist/src/styles/hover.js +0 -12
- package/dist/src/styles/hover.js.map +0 -1
- package/dist/src/styles/index.d.ts.map +0 -1
- package/dist/src/styles/index.js +0 -30
- package/dist/src/styles/index.js.map +0 -1
- package/dist/src/styles/input.d.ts +0 -17
- package/dist/src/styles/input.d.ts.map +0 -1
- package/dist/src/styles/input.js +0 -24
- package/dist/src/styles/input.js.map +0 -1
- package/dist/src/styles/ornament.d.ts.map +0 -1
- package/dist/src/styles/ornament.js +0 -9
- package/dist/src/styles/ornament.js.map +0 -1
- package/dist/src/styles/shimmer.d.ts.map +0 -1
- package/dist/src/styles/shimmer.js +0 -9
- package/dist/src/styles/shimmer.js.map +0 -1
- package/dist/src/styles/size.d.ts.map +0 -1
- package/dist/src/styles/size.js +0 -89
- package/dist/src/styles/size.js.map +0 -1
- package/dist/src/styles/text.d.ts.map +0 -1
- package/dist/src/styles/text.js +0 -11
- package/dist/src/styles/text.js.map +0 -1
- package/dist/src/styles/valence.d.ts.map +0 -1
- package/dist/src/styles/valence.js +0 -66
- package/dist/src/styles/valence.js.map +0 -1
- package/dist/src/testing/index.d.ts.map +0 -1
- package/dist/src/testing/index.js +0 -21
- package/dist/src/testing/index.js.map +0 -1
- package/dist/src/testing/templateForComponent.d.ts.map +0 -1
- package/dist/src/testing/templateForComponent.js +0 -18
- package/dist/src/testing/templateForComponent.js.map +0 -1
|
@@ -3,18 +3,29 @@
|
|
|
3
3
|
//
|
|
4
4
|
|
|
5
5
|
import * as PopoverPrimitive from '@radix-ui/react-popover';
|
|
6
|
-
import
|
|
6
|
+
import { Button as ToolbarButtonItem } from '@radix-ui/react-toolbar';
|
|
7
7
|
import { X } from 'phosphor-react';
|
|
8
8
|
import React, { ComponentProps, ReactNode, useCallback, useState } from 'react';
|
|
9
9
|
|
|
10
|
-
import { defaultFocus, defaultHover } from '../../styles';
|
|
10
|
+
import { defaultActive, defaultFocus, defaultHover, getSize } from '../../styles';
|
|
11
|
+
import { mx } from '../../util';
|
|
11
12
|
|
|
12
|
-
export interface
|
|
13
|
+
export interface PopoverSlots {
|
|
14
|
+
content?: Omit<ComponentProps<typeof PopoverPrimitive.Content>, 'children'>;
|
|
15
|
+
arrow?: Pick<ComponentProps<typeof PopoverPrimitive.Arrow>, 'className'>;
|
|
16
|
+
close?: Omit<ComponentProps<typeof PopoverPrimitive.Close>, 'children'>;
|
|
17
|
+
closeIcon?: ComponentProps<typeof X>;
|
|
18
|
+
trigger?: Omit<ComponentProps<typeof PopoverPrimitive.Trigger>, 'children'>;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export interface PopoverProps {
|
|
13
22
|
openTrigger: ReactNode;
|
|
14
23
|
children: ReactNode;
|
|
15
24
|
closeLabel?: string;
|
|
16
25
|
initiallyOpen?: boolean;
|
|
17
26
|
mountAsSibling?: boolean;
|
|
27
|
+
triggerIsInToolbar?: boolean;
|
|
28
|
+
slots?: PopoverSlots;
|
|
18
29
|
}
|
|
19
30
|
|
|
20
31
|
type KeyUpEvent = Parameters<Exclude<ComponentProps<typeof PopoverPrimitive.Trigger>['onKeyUp'], undefined>>[0];
|
|
@@ -25,51 +36,74 @@ export const Popover = ({
|
|
|
25
36
|
closeLabel,
|
|
26
37
|
initiallyOpen,
|
|
27
38
|
mountAsSibling,
|
|
28
|
-
|
|
39
|
+
triggerIsInToolbar,
|
|
40
|
+
slots = {}
|
|
29
41
|
}: PopoverProps) => {
|
|
30
42
|
const [isOpen, setIsOpen] = useState(!!initiallyOpen);
|
|
31
|
-
const onKeyUp = useCallback(
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
43
|
+
const onKeyUp = useCallback(
|
|
44
|
+
(e: KeyUpEvent) => {
|
|
45
|
+
const keyUpId = (document.activeElement as HTMLElement).dataset.keyupid;
|
|
46
|
+
if (keyUpId && e.key === ' ') {
|
|
47
|
+
setIsOpen(keyUpId === 'open');
|
|
48
|
+
}
|
|
49
|
+
slots.trigger?.onKeyUp?.(e);
|
|
50
|
+
},
|
|
51
|
+
[slots.trigger?.onKeyUp]
|
|
52
|
+
);
|
|
37
53
|
|
|
38
54
|
const popoverContent = (
|
|
39
55
|
<PopoverPrimitive.Content
|
|
40
56
|
align='center'
|
|
41
|
-
{...
|
|
42
|
-
className={
|
|
57
|
+
{...slots.content}
|
|
58
|
+
className={mx(
|
|
43
59
|
'radix-side-top:animate-slide-up radix-side-bottom:animate-slide-down',
|
|
44
60
|
'rounded-lg p-4 shadow-xl elevated-buttons',
|
|
45
61
|
'bg-white dark:bg-neutral-800',
|
|
46
62
|
defaultFocus,
|
|
47
|
-
|
|
63
|
+
slots.content?.className
|
|
48
64
|
)}
|
|
49
65
|
>
|
|
50
|
-
<PopoverPrimitive.Arrow className='fill-current text-white dark:text-neutral-800' />
|
|
66
|
+
<PopoverPrimitive.Arrow className={mx('fill-current text-white dark:text-neutral-800', slots.arrow?.className)} />
|
|
51
67
|
{children}
|
|
52
68
|
{closeLabel && (
|
|
53
69
|
<PopoverPrimitive.Close
|
|
54
|
-
|
|
70
|
+
{...slots.close}
|
|
71
|
+
className={mx(
|
|
55
72
|
'absolute top-3.5 right-3.5 inline-flex items-center justify-center rounded-sm p-1',
|
|
56
73
|
defaultFocus,
|
|
57
|
-
defaultHover({})
|
|
74
|
+
defaultHover({}),
|
|
75
|
+
slots.close?.className
|
|
58
76
|
)}
|
|
59
77
|
aria-label={closeLabel}
|
|
60
78
|
data-keyupid='close'
|
|
61
79
|
>
|
|
62
|
-
<X
|
|
80
|
+
<X
|
|
81
|
+
{...slots.closeIcon}
|
|
82
|
+
className={mx(
|
|
83
|
+
getSize(4),
|
|
84
|
+
'text-neutral-500 hover:text-neutral-700 dark:text-neutral-500 dark:hover:text-neutral-400',
|
|
85
|
+
slots.closeIcon?.className
|
|
86
|
+
)}
|
|
87
|
+
/>
|
|
63
88
|
</PopoverPrimitive.Close>
|
|
64
89
|
)}
|
|
65
90
|
</PopoverPrimitive.Content>
|
|
66
91
|
);
|
|
67
92
|
|
|
93
|
+
const trigger = (
|
|
94
|
+
<PopoverPrimitive.Trigger
|
|
95
|
+
{...slots.trigger}
|
|
96
|
+
onKeyUp={onKeyUp}
|
|
97
|
+
data-keyupid='open'
|
|
98
|
+
className={mx(defaultHover({}), defaultFocus, defaultActive, slots.trigger?.className)}
|
|
99
|
+
>
|
|
100
|
+
{openTrigger}
|
|
101
|
+
</PopoverPrimitive.Trigger>
|
|
102
|
+
);
|
|
103
|
+
|
|
68
104
|
return (
|
|
69
105
|
<PopoverPrimitive.Root open={isOpen} onOpenChange={setIsOpen}>
|
|
70
|
-
<
|
|
71
|
-
{openTrigger}
|
|
72
|
-
</PopoverPrimitive.Trigger>
|
|
106
|
+
{triggerIsInToolbar ? <ToolbarButtonItem asChild>{trigger}</ToolbarButtonItem> : trigger}
|
|
73
107
|
{mountAsSibling ? popoverContent : <PopoverPrimitive.Portal>{popoverContent}</PopoverPrimitive.Portal>}
|
|
74
108
|
</PopoverPrimitive.Root>
|
|
75
109
|
);
|
|
@@ -2,59 +2,73 @@
|
|
|
2
2
|
// Copyright 2022 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import cx from 'classnames';
|
|
6
5
|
import { QrCode as QrCodeIcon, CopySimple } from 'phosphor-react';
|
|
7
6
|
import { QRCodeSVG } from 'qrcode.react';
|
|
8
|
-
import React, { useCallback, ReactHTMLElement } from 'react';
|
|
7
|
+
import React, { useCallback, ReactHTMLElement, ComponentProps } from 'react';
|
|
9
8
|
|
|
10
9
|
import { useId } from '../../hooks';
|
|
11
10
|
import { Size } from '../../props';
|
|
12
11
|
import { getSize } from '../../styles';
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
12
|
+
import { mx } from '../../util';
|
|
13
|
+
import { Button, ButtonGroup } from '../Button';
|
|
14
|
+
import { Tooltip, TooltipSlots } from '../Tooltip';
|
|
15
15
|
|
|
16
|
-
interface SharedQrCodeProps
|
|
17
|
-
extends Omit<ButtonProps, 'onClick' | 'ref' | 'variant'>,
|
|
18
|
-
Pick<TooltipProps, 'side' | 'sideOffset' | 'collisionPadding'> {
|
|
16
|
+
interface SharedQrCodeProps {
|
|
19
17
|
value: string;
|
|
20
18
|
buttonCompact?: boolean;
|
|
21
19
|
}
|
|
22
20
|
|
|
21
|
+
interface FullQrCodeSlots {
|
|
22
|
+
tooltipContent?: TooltipSlots['content'];
|
|
23
|
+
tooltipArrow?: TooltipSlots['arrow'];
|
|
24
|
+
button?: Omit<ComponentProps<'button'>, 'ref' | 'children'>;
|
|
25
|
+
qrSvg?: ComponentProps<typeof QRCodeSVG>;
|
|
26
|
+
}
|
|
27
|
+
|
|
23
28
|
export interface FullQrCodeProps extends SharedQrCodeProps {
|
|
24
29
|
label: string | Omit<ReactHTMLElement<HTMLElement>, 'ref'>;
|
|
25
30
|
size?: Size;
|
|
31
|
+
slots?: FullQrCodeSlots;
|
|
26
32
|
}
|
|
27
33
|
|
|
28
34
|
export type QrCodeProps = FullQrCodeProps;
|
|
29
35
|
|
|
36
|
+
interface CompactQrCodeSlots {
|
|
37
|
+
qrTooltipContent?: TooltipSlots['content'];
|
|
38
|
+
qrTooltipArrow?: TooltipSlots['arrow'];
|
|
39
|
+
qrButton?: Omit<ComponentProps<'button'>, 'ref' | 'children'>;
|
|
40
|
+
copyTooltipContent?: TooltipSlots['content'];
|
|
41
|
+
copyTooltipArrow?: TooltipSlots['arrow'];
|
|
42
|
+
copyButton?: Omit<ComponentProps<'button'>, 'ref' | 'children'>;
|
|
43
|
+
qrSvg?: ComponentProps<typeof QRCodeSVG>;
|
|
44
|
+
}
|
|
45
|
+
|
|
30
46
|
export interface CompactQrCodeProps extends SharedQrCodeProps {
|
|
31
47
|
displayQrLabel: string | Omit<ReactHTMLElement<HTMLElement>, 'ref'>;
|
|
32
48
|
copyLabel: string | Omit<ReactHTMLElement<HTMLElement>, 'ref'>;
|
|
49
|
+
slots?: CompactQrCodeSlots;
|
|
33
50
|
}
|
|
34
51
|
|
|
35
|
-
export const FullQrCode = ({
|
|
36
|
-
value,
|
|
37
|
-
label,
|
|
38
|
-
size,
|
|
39
|
-
side,
|
|
40
|
-
sideOffset,
|
|
41
|
-
collisionPadding,
|
|
42
|
-
buttonCompact = true,
|
|
43
|
-
...buttonProps
|
|
44
|
-
}: FullQrCodeProps) => {
|
|
52
|
+
export const FullQrCode = ({ value, label, size, buttonCompact = true, slots = {} }: FullQrCodeProps) => {
|
|
45
53
|
const labelId = useId('qr-label');
|
|
46
54
|
const copyValue = useCallback(() => {
|
|
47
55
|
void navigator.clipboard.writeText(value);
|
|
48
56
|
}, [value]);
|
|
49
57
|
return (
|
|
50
|
-
<Tooltip content={label} {...
|
|
58
|
+
<Tooltip content={label} {...slots.tooltipContent}>
|
|
51
59
|
<Button
|
|
52
60
|
compact={buttonCompact}
|
|
53
|
-
{...
|
|
54
|
-
className={
|
|
61
|
+
{...slots.button}
|
|
62
|
+
className={mx('overflow-hidden p-0', getSize(size ?? 32), slots.button?.className)}
|
|
55
63
|
onClick={copyValue}
|
|
56
64
|
>
|
|
57
|
-
<QRCodeSVG
|
|
65
|
+
<QRCodeSVG
|
|
66
|
+
includeMargin
|
|
67
|
+
role='none'
|
|
68
|
+
{...slots.qrSvg}
|
|
69
|
+
value={value}
|
|
70
|
+
className={mx('w-full h-auto', slots.qrSvg?.className)}
|
|
71
|
+
/>
|
|
58
72
|
<div id={labelId} className='sr-only'>
|
|
59
73
|
{label}
|
|
60
74
|
</div>
|
|
@@ -63,17 +77,7 @@ export const FullQrCode = ({
|
|
|
63
77
|
);
|
|
64
78
|
};
|
|
65
79
|
|
|
66
|
-
export const CompactQrCode = ({
|
|
67
|
-
value,
|
|
68
|
-
displayQrLabel,
|
|
69
|
-
copyLabel,
|
|
70
|
-
side,
|
|
71
|
-
sideOffset,
|
|
72
|
-
collisionPadding,
|
|
73
|
-
compact,
|
|
74
|
-
buttonCompact,
|
|
75
|
-
...buttonProps
|
|
76
|
-
}: CompactQrCodeProps) => {
|
|
80
|
+
export const CompactQrCode = ({ value, displayQrLabel, copyLabel, buttonCompact, slots = {} }: CompactQrCodeProps) => {
|
|
77
81
|
const labelId = useId('qr-label');
|
|
78
82
|
const copyValue = useCallback(() => {
|
|
79
83
|
void navigator.clipboard.writeText(value);
|
|
@@ -86,29 +90,33 @@ export const CompactQrCode = ({
|
|
|
86
90
|
</span>
|
|
87
91
|
<Tooltip
|
|
88
92
|
compact
|
|
93
|
+
slots={{ content: { ...slots.qrTooltipContent, side: slots?.qrTooltipContent?.side ?? 'left' } }}
|
|
89
94
|
content={
|
|
90
95
|
<div role='none' className='overflow-hidden rounded-md'>
|
|
91
|
-
<QRCodeSVG
|
|
96
|
+
<QRCodeSVG
|
|
97
|
+
includeMargin
|
|
98
|
+
role='none'
|
|
99
|
+
{...slots.qrSvg}
|
|
100
|
+
value={value}
|
|
101
|
+
className={mx(getSize(32), slots.qrSvg?.className)}
|
|
102
|
+
/>
|
|
92
103
|
</div>
|
|
93
104
|
}
|
|
94
|
-
{...{ side: side ?? 'left', sideOffset, collisionPadding }}
|
|
95
105
|
>
|
|
96
106
|
<Button
|
|
97
|
-
rounding='rounded-is-md'
|
|
98
107
|
compact={buttonCompact}
|
|
99
|
-
{...
|
|
100
|
-
className={
|
|
108
|
+
{...slots.qrButton}
|
|
109
|
+
className={mx('border-ie-0 grow rounded-is-md', slots.qrButton?.className)}
|
|
101
110
|
aria-labelledby={labelId}
|
|
102
111
|
>
|
|
103
112
|
<QrCodeIcon className={getSize(5)} />
|
|
104
113
|
</Button>
|
|
105
114
|
</Tooltip>
|
|
106
|
-
<Tooltip content={copyLabel} tooltipLabelsTrigger {
|
|
115
|
+
<Tooltip content={copyLabel} tooltipLabelsTrigger slots={{ content: slots.qrTooltipContent }}>
|
|
107
116
|
<Button
|
|
108
|
-
rounding='rounded-ie-md grow'
|
|
109
117
|
compact={buttonCompact}
|
|
110
|
-
{...
|
|
111
|
-
className={
|
|
118
|
+
{...slots.copyButton}
|
|
119
|
+
className={mx('rounded-ie-md grow', slots.copyButton?.className)}
|
|
112
120
|
onClick={copyValue}
|
|
113
121
|
>
|
|
114
122
|
<CopySimple className={getSize(5)} />
|
|
@@ -118,28 +126,32 @@ export const CompactQrCode = ({
|
|
|
118
126
|
<ButtonGroup className='hidden md:inline-flex'>
|
|
119
127
|
<Tooltip
|
|
120
128
|
compact
|
|
129
|
+
slots={{ content: { ...slots.qrTooltipContent, side: slots?.qrTooltipContent?.side ?? 'left' } }}
|
|
121
130
|
content={
|
|
122
131
|
<div role='none' className='overflow-hidden rounded-md'>
|
|
123
|
-
<QRCodeSVG
|
|
132
|
+
<QRCodeSVG
|
|
133
|
+
includeMargin
|
|
134
|
+
role='none'
|
|
135
|
+
{...slots.qrSvg}
|
|
136
|
+
value={value}
|
|
137
|
+
className={mx(getSize(32), slots.qrSvg?.className)}
|
|
138
|
+
/>
|
|
124
139
|
</div>
|
|
125
140
|
}
|
|
126
|
-
{...{ side: side ?? 'left', sideOffset, collisionPadding }}
|
|
127
141
|
>
|
|
128
142
|
<Button
|
|
129
|
-
rounding='rounded-is-md'
|
|
130
143
|
compact={buttonCompact}
|
|
131
|
-
{...
|
|
132
|
-
className={
|
|
144
|
+
{...slots.qrButton}
|
|
145
|
+
className={mx('border-ie-0 flex gap-1 rounded-is-md', slots.qrButton?.className)}
|
|
133
146
|
>
|
|
134
147
|
<QrCodeIcon className={getSize(5)} />
|
|
135
148
|
{displayQrLabel}
|
|
136
149
|
</Button>
|
|
137
150
|
</Tooltip>
|
|
138
151
|
<Button
|
|
139
|
-
rounding='rounded-ie-md'
|
|
140
152
|
compact={buttonCompact}
|
|
141
|
-
{...
|
|
142
|
-
className={
|
|
153
|
+
{...slots.copyButton}
|
|
154
|
+
className={mx('flex gap-1 rounded-ie-md', slots.copyButton?.className)}
|
|
143
155
|
onClick={copyValue}
|
|
144
156
|
>
|
|
145
157
|
<CopySimple className={getSize(5)} />
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
// Copyright 2022 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import
|
|
6
|
-
import React, { PropsWithChildren, ReactNode } from 'react';
|
|
5
|
+
import React, { ComponentProps, PropsWithChildren, ReactNode } from 'react';
|
|
7
6
|
|
|
8
7
|
import { MessageValence } from '../../props';
|
|
8
|
+
import { mx } from '../../util';
|
|
9
9
|
|
|
10
|
-
export interface TagProps extends
|
|
10
|
+
export interface TagProps extends ComponentProps<'span'> {
|
|
11
11
|
valence?: MessageValence;
|
|
12
12
|
children?: ReactNode;
|
|
13
13
|
}
|
|
@@ -20,11 +20,11 @@ const valenceColorMap: Record<MessageValence, string> = {
|
|
|
20
20
|
error: 'bg-error-100 text-error-800 dark:bg-error-700 dark:text-error-300'
|
|
21
21
|
};
|
|
22
22
|
|
|
23
|
-
export const Tag = ({ children, valence = 'neutral', ...
|
|
23
|
+
export const Tag = ({ children, valence = 'neutral', ...rootSlot }: PropsWithChildren<TagProps>) => {
|
|
24
24
|
return (
|
|
25
25
|
<span
|
|
26
|
-
{...
|
|
27
|
-
className={
|
|
26
|
+
{...rootSlot}
|
|
27
|
+
className={mx('text-xs font-semibold px-2.5 py-0.5 rounded', valenceColorMap[valence], rootSlot?.className)}
|
|
28
28
|
>
|
|
29
29
|
{children}
|
|
30
30
|
</span>
|
|
@@ -3,12 +3,21 @@
|
|
|
3
3
|
//
|
|
4
4
|
|
|
5
5
|
import * as ToastPrimitive from '@radix-ui/react-toast';
|
|
6
|
-
import cx from 'classnames';
|
|
7
6
|
import React, { cloneElement, ComponentProps, ReactHTMLElement, ReactNode, useState } from 'react';
|
|
8
7
|
|
|
9
8
|
import { defaultDescription, defaultFocus } from '../../styles';
|
|
9
|
+
import { mx } from '../../util';
|
|
10
10
|
import { Button } from '../Button';
|
|
11
11
|
|
|
12
|
+
export interface ToastSlots {
|
|
13
|
+
root?: Omit<ComponentProps<typeof ToastPrimitive.Root>, 'children'>;
|
|
14
|
+
heading?: Omit<ComponentProps<'div'>, 'children'>;
|
|
15
|
+
headingInner?: Omit<ComponentProps<'div'>, 'children'>;
|
|
16
|
+
title?: Omit<ComponentProps<typeof ToastPrimitive.Title>, 'children'>;
|
|
17
|
+
description?: Omit<ComponentProps<typeof ToastPrimitive.Description>, 'children'>;
|
|
18
|
+
actions?: Omit<ComponentProps<'div'>, 'children'>;
|
|
19
|
+
}
|
|
20
|
+
|
|
12
21
|
export interface ToastProps extends Omit<ComponentProps<typeof ToastPrimitive.Root>, 'title'> {
|
|
13
22
|
title: ReactNode;
|
|
14
23
|
openTrigger?: string | Omit<ReactHTMLElement<HTMLElement>, 'ref'>;
|
|
@@ -17,6 +26,7 @@ export interface ToastProps extends Omit<ComponentProps<typeof ToastPrimitive.Ro
|
|
|
17
26
|
titleVisuallyHidden?: boolean;
|
|
18
27
|
description?: ReactNode;
|
|
19
28
|
initiallyOpen?: boolean;
|
|
29
|
+
slots?: ToastSlots;
|
|
20
30
|
}
|
|
21
31
|
|
|
22
32
|
export const Toast = ({
|
|
@@ -27,7 +37,7 @@ export const Toast = ({
|
|
|
27
37
|
closeTrigger,
|
|
28
38
|
actionTriggers,
|
|
29
39
|
initiallyOpen,
|
|
30
|
-
|
|
40
|
+
slots = {}
|
|
31
41
|
}: ToastProps) => {
|
|
32
42
|
const [isOpen, setIsOpen] = useState(!!initiallyOpen);
|
|
33
43
|
|
|
@@ -42,42 +52,54 @@ export const Toast = ({
|
|
|
42
52
|
<ToastPrimitive.Root
|
|
43
53
|
open={isOpen}
|
|
44
54
|
onOpenChange={setIsOpen}
|
|
45
|
-
{...
|
|
46
|
-
className={
|
|
47
|
-
'shadow-lg rounded-lg',
|
|
55
|
+
{...slots.root}
|
|
56
|
+
className={mx(
|
|
57
|
+
'shadow-lg rounded-lg elevated-buttons flex',
|
|
48
58
|
'bg-white dark:bg-neutral-800',
|
|
49
59
|
'radix-state-open:animate-toast-slide-in-bottom md:radix-state-open:animate-toast-slide-in-right',
|
|
50
60
|
'radix-state-closed:animate-toast-hide',
|
|
51
61
|
'radix-swipe-end:animate-toast-swipe-out',
|
|
52
62
|
'translate-x-radix-toast-swipe-move-x',
|
|
53
63
|
'radix-swipe-cancel:translate-x-0 radix-swipe-cancel:duration-200 radix-swipe-cancel:ease-[ease]',
|
|
54
|
-
'elevated-buttons',
|
|
55
64
|
defaultFocus,
|
|
56
|
-
|
|
65
|
+
slots.root?.className
|
|
57
66
|
)}
|
|
58
67
|
>
|
|
59
|
-
<div
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
</ToastPrimitive.Action>
|
|
75
|
-
))}
|
|
76
|
-
{closeTrigger && (
|
|
77
|
-
<ToastPrimitive.Close asChild={typeof closeTrigger !== 'string'}>{closeTrigger}</ToastPrimitive.Close>
|
|
68
|
+
<div
|
|
69
|
+
role='none'
|
|
70
|
+
{...slots.heading}
|
|
71
|
+
className={mx('w-0 flex-1 flex items-center pl-5 py-4 min-h-full', slots.heading?.className)}
|
|
72
|
+
>
|
|
73
|
+
<div
|
|
74
|
+
role='none'
|
|
75
|
+
{...slots.headingInner}
|
|
76
|
+
className={mx('w-full radix flex flex-col justify-center min-h-full gap-1', slots.headingInner?.className)}
|
|
77
|
+
>
|
|
78
|
+
<ToastPrimitive.Title className={mx('text-md font-medium', titleVisuallyHidden && 'sr-only')}>
|
|
79
|
+
{title}
|
|
80
|
+
</ToastPrimitive.Title>
|
|
81
|
+
{description && (
|
|
82
|
+
<ToastPrimitive.Description className={defaultDescription}>{description}</ToastPrimitive.Description>
|
|
78
83
|
)}
|
|
79
84
|
</div>
|
|
80
85
|
</div>
|
|
86
|
+
<div
|
|
87
|
+
role='none'
|
|
88
|
+
{...slots.actions}
|
|
89
|
+
className={mx(
|
|
90
|
+
'flex flex-col px-3 py-2 gap-1 items-stretch justify-center min-h-full',
|
|
91
|
+
slots.actions?.className
|
|
92
|
+
)}
|
|
93
|
+
>
|
|
94
|
+
{(actionTriggers || []).map(({ altText, trigger }, index) => (
|
|
95
|
+
<ToastPrimitive.Action key={index} altText={altText} asChild={typeof trigger !== 'string'}>
|
|
96
|
+
{trigger}
|
|
97
|
+
</ToastPrimitive.Action>
|
|
98
|
+
))}
|
|
99
|
+
{closeTrigger && (
|
|
100
|
+
<ToastPrimitive.Close asChild={typeof closeTrigger !== 'string'}>{closeTrigger}</ToastPrimitive.Close>
|
|
101
|
+
)}
|
|
102
|
+
</div>
|
|
81
103
|
</ToastPrimitive.Root>
|
|
82
104
|
</>
|
|
83
105
|
);
|
|
@@ -2,30 +2,42 @@
|
|
|
2
2
|
// Copyright 2022 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
+
import * as PortalPrimitive from '@radix-ui/react-portal';
|
|
6
|
+
import { Button as ToolbarButtonItem } from '@radix-ui/react-toolbar';
|
|
5
7
|
import * as TooltipPrimitive from '@radix-ui/react-tooltip';
|
|
6
|
-
import cx from 'classnames';
|
|
7
8
|
import React, { ComponentProps, ReactNode, useState } from 'react';
|
|
8
9
|
|
|
9
10
|
import { useId } from '../../hooks';
|
|
10
11
|
import { defaultTooltip } from '../../styles';
|
|
12
|
+
import { mx } from '../../util';
|
|
11
13
|
|
|
12
|
-
export interface
|
|
14
|
+
export interface TooltipSlots {
|
|
15
|
+
content?: Omit<ComponentProps<typeof TooltipPrimitive.Content>, 'children'>;
|
|
16
|
+
arrow?: Pick<ComponentProps<typeof TooltipPrimitive.Arrow>, 'className'>;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export interface TooltipProps {
|
|
13
20
|
content: ReactNode;
|
|
14
21
|
children: ReactNode;
|
|
22
|
+
side?: TooltipPrimitive.TooltipContentProps['side'];
|
|
15
23
|
compact?: boolean;
|
|
16
24
|
tooltipLabelsTrigger?: boolean;
|
|
17
25
|
mountAsSibling?: boolean;
|
|
26
|
+
triggerIsInToolbar?: boolean;
|
|
18
27
|
zIndex?: string;
|
|
28
|
+
slots?: TooltipSlots;
|
|
19
29
|
}
|
|
20
30
|
|
|
21
31
|
export const Tooltip = ({
|
|
22
32
|
content,
|
|
23
33
|
children,
|
|
34
|
+
side,
|
|
24
35
|
compact,
|
|
25
36
|
tooltipLabelsTrigger,
|
|
26
37
|
mountAsSibling,
|
|
38
|
+
triggerIsInToolbar,
|
|
27
39
|
zIndex = 'z-[2]',
|
|
28
|
-
|
|
40
|
+
slots = {}
|
|
29
41
|
}: TooltipProps) => {
|
|
30
42
|
const [isOpen, setIsOpen] = useState(false);
|
|
31
43
|
const labelId = useId('tooltipLabel');
|
|
@@ -33,8 +45,9 @@ export const Tooltip = ({
|
|
|
33
45
|
const tooltipContent = (
|
|
34
46
|
<TooltipPrimitive.Content
|
|
35
47
|
forceMount
|
|
36
|
-
{...
|
|
37
|
-
|
|
48
|
+
{...slots.content}
|
|
49
|
+
side={side ?? slots.content?.side ?? 'top'}
|
|
50
|
+
className={mx(
|
|
38
51
|
'radix-side-top:animate-slide-down-fade',
|
|
39
52
|
'radix-side-right:animate-slide-left-fade',
|
|
40
53
|
'radix-side-bottom:animate-slide-up-fade',
|
|
@@ -45,23 +58,29 @@ export const Tooltip = ({
|
|
|
45
58
|
'shadow-lg bg-white dark:bg-neutral-800',
|
|
46
59
|
!isOpen && 'sr-only',
|
|
47
60
|
defaultTooltip,
|
|
48
|
-
|
|
61
|
+
slots.content?.className
|
|
49
62
|
)}
|
|
50
63
|
>
|
|
51
|
-
<TooltipPrimitive.Arrow className='fill-current text-white dark:text-neutral-800' />
|
|
64
|
+
<TooltipPrimitive.Arrow className={mx('fill-current text-white dark:text-neutral-800', slots.arrow?.className)} />
|
|
52
65
|
{content}
|
|
53
66
|
</TooltipPrimitive.Content>
|
|
54
67
|
);
|
|
55
68
|
|
|
69
|
+
const triggerContent = (
|
|
70
|
+
<TooltipPrimitive.Trigger asChild {...(tooltipLabelsTrigger && { 'aria-labelledby': labelId })}>
|
|
71
|
+
{children}
|
|
72
|
+
</TooltipPrimitive.Trigger>
|
|
73
|
+
);
|
|
74
|
+
|
|
56
75
|
return (
|
|
57
76
|
<TooltipPrimitive.Root open={isOpen} onOpenChange={setIsOpen}>
|
|
58
|
-
<
|
|
59
|
-
{children}
|
|
60
|
-
</TooltipPrimitive.Trigger>
|
|
77
|
+
{triggerIsInToolbar ? <ToolbarButtonItem asChild>{triggerContent}</ToolbarButtonItem> : triggerContent}
|
|
61
78
|
{tooltipLabelsTrigger && (
|
|
62
|
-
<
|
|
63
|
-
{
|
|
64
|
-
|
|
79
|
+
<PortalPrimitive.Root asChild>
|
|
80
|
+
<span id={labelId} className='sr-only'>
|
|
81
|
+
{content}
|
|
82
|
+
</span>
|
|
83
|
+
</PortalPrimitive.Root>
|
|
65
84
|
)}
|
|
66
85
|
{mountAsSibling ? tooltipContent : <TooltipPrimitive.Portal forceMount>{tooltipContent}</TooltipPrimitive.Portal>}
|
|
67
86
|
</TooltipPrimitive.Root>
|
|
@@ -9,10 +9,10 @@ import {
|
|
|
9
9
|
ToastViewportProps
|
|
10
10
|
} from '@radix-ui/react-toast';
|
|
11
11
|
import { Provider as TooltipProvider, TooltipProviderProps } from '@radix-ui/react-tooltip';
|
|
12
|
-
import cx from 'classnames';
|
|
13
12
|
import React, { PropsWithChildren } from 'react';
|
|
14
13
|
|
|
15
14
|
import { defaultFocus } from '../../styles';
|
|
15
|
+
import { mx } from '../../util';
|
|
16
16
|
|
|
17
17
|
export type UiProviderProps = PropsWithChildren<{
|
|
18
18
|
tooltipProviderProps?: TooltipProviderProps;
|
|
@@ -33,8 +33,8 @@ export const UiProvider = ({
|
|
|
33
33
|
</TooltipProvider>
|
|
34
34
|
<ToastViewport
|
|
35
35
|
{...toastViewportProps}
|
|
36
|
-
className={
|
|
37
|
-
'z-50 fixed bottom-4 inset-x-4 w-auto md:top-4 md:right-4 md:left-auto md:bottom-auto md:w-full md:max-w-sm rounded-lg',
|
|
36
|
+
className={mx(
|
|
37
|
+
'z-50 fixed bottom-4 inset-x-4 w-auto md:top-4 md:right-4 md:left-auto md:bottom-auto md:w-full md:max-w-sm rounded-lg flex flex-col gap-2',
|
|
38
38
|
defaultFocus,
|
|
39
39
|
toastViewportProps?.className
|
|
40
40
|
)}
|