@graphprotocol/gds-react 0.1.2 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/GDSContext.d.ts +13 -0
- package/dist/GDSContext.d.ts.map +1 -0
- package/dist/GDSContext.js +4 -0
- package/dist/GDSContext.js.map +1 -0
- package/dist/GDSProvider.d.ts +13 -19
- package/dist/GDSProvider.d.ts.map +1 -1
- package/dist/GDSProvider.js +14 -11
- package/dist/GDSProvider.js.map +1 -1
- package/dist/components/Address.js +2 -2
- package/dist/components/Address.meta.d.ts +1 -13
- package/dist/components/Address.meta.d.ts.map +1 -1
- package/dist/components/Avatar.d.ts.map +1 -1
- package/dist/components/Avatar.js +3 -11
- package/dist/components/Avatar.js.map +1 -1
- package/dist/components/Avatar.meta.d.ts +0 -2
- package/dist/components/Avatar.meta.d.ts.map +1 -1
- package/dist/components/AvatarGroup.meta.d.ts +8 -2
- package/dist/components/AvatarGroup.meta.d.ts.map +1 -1
- package/dist/components/Breadcrumbs.meta.d.ts +2 -3
- package/dist/components/Breadcrumbs.meta.d.ts.map +1 -1
- package/dist/components/Breadcrumbs.meta.js +3 -1
- package/dist/components/Breadcrumbs.meta.js.map +1 -1
- package/dist/components/Breadcrumbs.parts.d.ts.map +1 -1
- package/dist/components/Breadcrumbs.parts.js +13 -21
- package/dist/components/Breadcrumbs.parts.js.map +1 -1
- package/dist/components/Button.d.ts.map +1 -1
- package/dist/components/Button.js +70 -69
- package/dist/components/Button.js.map +1 -1
- package/dist/components/Button.meta.d.ts +1 -4
- package/dist/components/Button.meta.d.ts.map +1 -1
- package/dist/components/ButtonGroup.d.ts.map +1 -1
- package/dist/components/ButtonGroup.js +1 -5
- package/dist/components/ButtonGroup.js.map +1 -1
- package/dist/components/ButtonGroup.meta.d.ts +1 -5
- package/dist/components/ButtonGroup.meta.d.ts.map +1 -1
- package/dist/components/ButtonGroup.meta.js +8 -0
- package/dist/components/ButtonGroup.meta.js.map +1 -1
- package/dist/components/Card.js +2 -2
- package/dist/components/Card.js.map +1 -1
- package/dist/components/Card.meta.d.ts +1 -2
- package/dist/components/Card.meta.d.ts.map +1 -1
- package/dist/components/Card.meta.js +1 -0
- package/dist/components/Card.meta.js.map +1 -1
- package/dist/components/Checkbox.meta.d.ts +1 -6
- package/dist/components/Checkbox.meta.d.ts.map +1 -1
- package/dist/components/Checkbox.meta.js +1 -5
- package/dist/components/Checkbox.meta.js.map +1 -1
- package/dist/components/Chip.meta.d.ts +2 -4
- package/dist/components/Chip.meta.d.ts.map +1 -1
- package/dist/components/Chip.parts.d.ts.map +1 -1
- package/dist/components/Chip.parts.js +1 -9
- package/dist/components/Chip.parts.js.map +1 -1
- package/dist/components/Cluster.meta.d.ts +8 -2
- package/dist/components/Cluster.meta.d.ts.map +1 -1
- package/dist/components/CodeBlock.d.ts +1 -1
- package/dist/components/CodeBlock.meta.d.ts +2 -4
- package/dist/components/CodeBlock.meta.d.ts.map +1 -1
- package/dist/components/CodeBlock.parts.d.ts +6 -7
- package/dist/components/CodeBlock.parts.d.ts.map +1 -1
- package/dist/components/CodeBlock.parts.js +28 -10
- package/dist/components/CodeBlock.parts.js.map +1 -1
- package/dist/components/CodeInline.js +3 -3
- package/dist/components/CodeInline.meta.d.ts +1 -1
- package/dist/components/CodeInline.meta.d.ts.map +1 -1
- package/dist/components/CopyButton.d.ts +1 -1
- package/dist/components/CopyButton.d.ts.map +1 -1
- package/dist/components/CopyButton.js +46 -21
- package/dist/components/CopyButton.js.map +1 -1
- package/dist/components/CopyButton.meta.d.ts +1 -12
- package/dist/components/CopyButton.meta.d.ts.map +1 -1
- package/dist/components/CopyButton.meta.js +1 -6
- package/dist/components/CopyButton.meta.js.map +1 -1
- package/dist/components/CurrencyInput.meta.d.ts +1 -6
- package/dist/components/CurrencyInput.meta.d.ts.map +1 -1
- package/dist/components/CurrencyInput.meta.js +1 -5
- package/dist/components/CurrencyInput.meta.js.map +1 -1
- package/dist/components/DescriptionList.meta.d.ts +2 -5
- package/dist/components/DescriptionList.meta.d.ts.map +1 -1
- package/dist/components/DescriptionList.parts.d.ts +3 -0
- package/dist/components/DescriptionList.parts.d.ts.map +1 -1
- package/dist/components/DescriptionList.parts.js +1 -0
- package/dist/components/DescriptionList.parts.js.map +1 -1
- package/dist/components/Divider.meta.d.ts +1 -3
- package/dist/components/Divider.meta.d.ts.map +1 -1
- package/dist/components/Icon.js +4 -4
- package/dist/components/Icon.js.map +1 -1
- package/dist/components/Icon.meta.d.ts +0 -2
- package/dist/components/Icon.meta.d.ts.map +1 -1
- package/dist/components/Icon.meta.js +1 -0
- package/dist/components/Icon.meta.js.map +1 -1
- package/dist/components/Input.d.ts +5 -4
- package/dist/components/Input.d.ts.map +1 -1
- package/dist/components/Input.js +3 -2
- package/dist/components/Input.js.map +1 -1
- package/dist/components/Input.meta.d.ts +1 -6
- package/dist/components/Input.meta.d.ts.map +1 -1
- package/dist/components/Input.meta.js +1 -5
- package/dist/components/Input.meta.js.map +1 -1
- package/dist/components/Keyboard.js +1 -1
- package/dist/components/Keyboard.meta.d.ts +0 -1
- package/dist/components/Keyboard.meta.d.ts.map +1 -1
- package/dist/components/Label.meta.d.ts +1 -3
- package/dist/components/Label.meta.d.ts.map +1 -1
- package/dist/components/Link.d.ts +1 -1
- package/dist/components/Link.d.ts.map +1 -1
- package/dist/components/Link.js +3 -4
- package/dist/components/Link.js.map +1 -1
- package/dist/components/Link.meta.d.ts +1 -2
- package/dist/components/Link.meta.d.ts.map +1 -1
- package/dist/components/Link.meta.js +1 -0
- package/dist/components/Link.meta.js.map +1 -1
- package/dist/components/Menu.meta.d.ts +31 -2
- package/dist/components/Menu.meta.d.ts.map +1 -1
- package/dist/components/Menu.meta.js +39 -1
- package/dist/components/Menu.meta.js.map +1 -1
- package/dist/components/Menu.parts.d.ts +22 -32
- package/dist/components/Menu.parts.d.ts.map +1 -1
- package/dist/components/Menu.parts.js +286 -300
- package/dist/components/Menu.parts.js.map +1 -1
- package/dist/components/Modal.d.ts +1 -1
- package/dist/components/Modal.meta.d.ts +1 -3
- package/dist/components/Modal.meta.d.ts.map +1 -1
- package/dist/components/Modal.meta.js +1 -1
- package/dist/components/Modal.meta.js.map +1 -1
- package/dist/components/Modal.parts.d.ts +14 -15
- package/dist/components/Modal.parts.d.ts.map +1 -1
- package/dist/components/Modal.parts.js +20 -20
- package/dist/components/Modal.parts.js.map +1 -1
- package/dist/components/OTCInput.js +1 -1
- package/dist/components/OTCInput.meta.d.ts +1 -6
- package/dist/components/OTCInput.meta.d.ts.map +1 -1
- package/dist/components/OTCInput.meta.js +1 -5
- package/dist/components/OTCInput.meta.js.map +1 -1
- package/dist/components/Pane.d.ts +9 -0
- package/dist/components/Pane.d.ts.map +1 -0
- package/dist/components/Pane.js +8 -0
- package/dist/components/Pane.js.map +1 -0
- package/dist/components/Pane.meta.d.ts +20 -0
- package/dist/components/Pane.meta.d.ts.map +1 -0
- package/dist/components/Pane.meta.js +30 -0
- package/dist/components/Pane.meta.js.map +1 -0
- package/dist/components/Pane.parts.d.ts +77 -0
- package/dist/components/Pane.parts.d.ts.map +1 -0
- package/dist/components/Pane.parts.js +412 -0
- package/dist/components/Pane.parts.js.map +1 -0
- package/dist/components/Radio.meta.d.ts +1 -6
- package/dist/components/Radio.meta.d.ts.map +1 -1
- package/dist/components/Radio.meta.js +1 -5
- package/dist/components/Radio.meta.js.map +1 -1
- package/dist/components/Search.js +1 -1
- package/dist/components/Search.meta.d.ts +1 -3
- package/dist/components/Search.meta.d.ts.map +1 -1
- package/dist/components/SegmentedControl.meta.d.ts +2 -3
- package/dist/components/SegmentedControl.meta.d.ts.map +1 -1
- package/dist/components/SegmentedControl.meta.js +3 -1
- package/dist/components/SegmentedControl.meta.js.map +1 -1
- package/dist/components/SegmentedControl.parts.d.ts.map +1 -1
- package/dist/components/SegmentedControl.parts.js +4 -9
- package/dist/components/SegmentedControl.parts.js.map +1 -1
- package/dist/components/Status.meta.d.ts +0 -2
- package/dist/components/Status.meta.d.ts.map +1 -1
- package/dist/components/Stepper.meta.d.ts +1 -2
- package/dist/components/Stepper.meta.d.ts.map +1 -1
- package/dist/components/Stepper.meta.js +1 -0
- package/dist/components/Stepper.meta.js.map +1 -1
- package/dist/components/Stepper.parts.d.ts.map +1 -1
- package/dist/components/Stepper.parts.js +1 -1
- package/dist/components/Stepper.parts.js.map +1 -1
- package/dist/components/Switch.meta.d.ts +1 -6
- package/dist/components/Switch.meta.d.ts.map +1 -1
- package/dist/components/Switch.meta.js +1 -5
- package/dist/components/Switch.meta.js.map +1 -1
- package/dist/components/TabSet.meta.d.ts +2 -5
- package/dist/components/TabSet.meta.d.ts.map +1 -1
- package/dist/components/TabSet.meta.js +3 -1
- package/dist/components/TabSet.meta.js.map +1 -1
- package/dist/components/Tag.meta.d.ts +0 -2
- package/dist/components/Tag.meta.d.ts.map +1 -1
- package/dist/components/TextArea.meta.d.ts +1 -6
- package/dist/components/TextArea.meta.d.ts.map +1 -1
- package/dist/components/TextArea.meta.js +1 -5
- package/dist/components/TextArea.meta.js.map +1 -1
- package/dist/components/ToggleButton.js +2 -2
- package/dist/components/ToggleButton.js.map +1 -1
- package/dist/components/ToggleButton.meta.d.ts +1 -12
- package/dist/components/ToggleButton.meta.d.ts.map +1 -1
- package/dist/components/ToggleButton.meta.js +1 -6
- package/dist/components/ToggleButton.meta.js.map +1 -1
- package/dist/components/Tooltip.d.ts +2 -2
- package/dist/components/Tooltip.d.ts.map +1 -1
- package/dist/components/Tooltip.js +2 -2
- package/dist/components/Tooltip.js.map +1 -1
- package/dist/components/Tooltip.meta.d.ts +12 -7
- package/dist/components/Tooltip.meta.d.ts.map +1 -1
- package/dist/components/Tooltip.meta.js +13 -2
- package/dist/components/Tooltip.meta.js.map +1 -1
- package/dist/components/Tooltip.parts.d.ts +31 -22
- package/dist/components/Tooltip.parts.d.ts.map +1 -1
- package/dist/components/Tooltip.parts.js +127 -98
- package/dist/components/Tooltip.parts.js.map +1 -1
- package/dist/components/base/Addon.meta.d.ts +1 -1
- package/dist/components/base/Addon.meta.d.ts.map +1 -1
- package/dist/components/base/Addon.meta.js +3 -1
- package/dist/components/base/Addon.meta.js.map +1 -1
- package/dist/components/base/ButtonOrLink.d.ts +2 -2
- package/dist/components/base/ButtonOrLink.d.ts.map +1 -1
- package/dist/components/base/ButtonOrLink.parts.d.ts +14 -6
- package/dist/components/base/ButtonOrLink.parts.d.ts.map +1 -1
- package/dist/components/base/ButtonOrLink.parts.js +54 -65
- package/dist/components/base/ButtonOrLink.parts.js.map +1 -1
- package/dist/components/base/Checkable.meta.d.ts +1 -2
- package/dist/components/base/Checkable.meta.d.ts.map +1 -1
- package/dist/components/base/Checkable.parts.d.ts +6 -6
- package/dist/components/base/Checkable.parts.d.ts.map +1 -1
- package/dist/components/base/Checkable.parts.js +2 -2
- package/dist/components/base/Checkable.parts.js.map +1 -1
- package/dist/components/base/Field.meta.d.ts +1 -2
- package/dist/components/base/Field.meta.d.ts.map +1 -1
- package/dist/components/base/Field.parts.d.ts +5 -4
- package/dist/components/base/Field.parts.d.ts.map +1 -1
- package/dist/components/base/Field.parts.js +1 -1
- package/dist/components/base/Field.parts.js.map +1 -1
- package/dist/components/base/MaybeButtonOrLink.d.ts +20 -3
- package/dist/components/base/MaybeButtonOrLink.d.ts.map +1 -1
- package/dist/components/base/MaybeButtonOrLink.js +5 -3
- package/dist/components/base/MaybeButtonOrLink.js.map +1 -1
- package/dist/components/base/Portal.d.ts +1 -1
- package/dist/components/base/Portal.d.ts.map +1 -1
- package/dist/components/base/Portal.js +3 -6
- package/dist/components/base/Portal.js.map +1 -1
- package/dist/components/base/Presence.d.ts +157 -0
- package/dist/components/base/Presence.d.ts.map +1 -0
- package/dist/components/base/Presence.js +808 -0
- package/dist/components/base/Presence.js.map +1 -0
- package/dist/components/base/Render.d.ts +21 -6
- package/dist/components/base/Render.d.ts.map +1 -1
- package/dist/components/base/Render.js +3 -2
- package/dist/components/base/Render.js.map +1 -1
- package/dist/components/base/Transition.js +2 -2
- package/dist/components/base/Transition.meta.d.ts +1 -1
- package/dist/components/base/Transition.meta.d.ts.map +1 -1
- package/dist/components/base/Transition.meta.js +1 -0
- package/dist/components/base/Transition.meta.js.map +1 -1
- package/dist/components/base/index.d.ts +2 -2
- package/dist/components/base/index.d.ts.map +1 -1
- package/dist/components/base/index.js +2 -2
- package/dist/components/base/index.js.map +1 -1
- package/dist/components/index.d.ts +3 -1
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +3 -1
- package/dist/components/index.js.map +1 -1
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +1 -0
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/useCSSProp.d.ts.map +1 -1
- package/dist/hooks/useCSSProp.js +7 -7
- package/dist/hooks/useCSSProp.js.map +1 -1
- package/dist/hooks/useCSSProps.d.ts +11 -13
- package/dist/hooks/useCSSProps.d.ts.map +1 -1
- package/dist/hooks/useCSSProps.js +11 -19
- package/dist/hooks/useCSSProps.js.map +1 -1
- package/dist/hooks/useCSSPropsPolyfill.d.ts +1 -1
- package/dist/hooks/useCSSPropsPolyfill.d.ts.map +1 -1
- package/dist/hooks/useCSSPropsPolyfill.js +12 -20
- package/dist/hooks/useCSSPropsPolyfill.js.map +1 -1
- package/dist/hooks/useCSSState.d.ts.map +1 -1
- package/dist/hooks/useCSSState.js +7 -3
- package/dist/hooks/useCSSState.js.map +1 -1
- package/dist/hooks/useControlled.d.ts.map +1 -1
- package/dist/hooks/useControlled.js +6 -4
- package/dist/hooks/useControlled.js.map +1 -1
- package/dist/hooks/useEffectWithRefDeps.d.ts +2 -2
- package/dist/hooks/useEffectWithRefDeps.d.ts.map +1 -1
- package/dist/hooks/useEffectWithRefDeps.js +1 -1
- package/dist/hooks/useEffectWithRefDeps.js.map +1 -1
- package/dist/hooks/useFirstRender.d.ts +14 -0
- package/dist/hooks/useFirstRender.d.ts.map +1 -0
- package/dist/hooks/useFirstRender.js +20 -0
- package/dist/hooks/useFirstRender.js.map +1 -0
- package/dist/hooks/useGDS.d.ts +1 -1
- package/dist/hooks/useGDS.js +1 -1
- package/dist/hooks/useGDS.js.map +1 -1
- package/dist/hooks/usePrevious.d.ts +6 -4
- package/dist/hooks/usePrevious.d.ts.map +1 -1
- package/dist/hooks/usePrevious.js +6 -4
- package/dist/hooks/usePrevious.js.map +1 -1
- package/dist/hooks/useRefWithInit.d.ts +2 -2
- package/dist/hooks/useRefWithInit.d.ts.map +1 -1
- package/dist/hooks/useRefWithInit.js.map +1 -1
- package/dist/hooks/useStyleObserver.d.ts +2 -2
- package/dist/hooks/useStyleObserver.d.ts.map +1 -1
- package/dist/hooks/useStyleObserver.js +1 -1
- package/dist/hooks/useStyleObserver.js.map +1 -1
- package/dist/icons/CalendarDynamicIcon.d.ts +8 -5
- package/dist/icons/CalendarDynamicIcon.d.ts.map +1 -1
- package/dist/icons/CalendarDynamicIcon.js +5 -2
- package/dist/icons/CalendarDynamicIcon.js.map +1 -1
- package/dist/icons/CopyInteractiveIcon.d.ts +5 -4
- package/dist/icons/CopyInteractiveIcon.d.ts.map +1 -1
- package/dist/icons/CopyInteractiveIcon.js +2 -2
- package/dist/icons/CopyInteractiveIcon.js.map +1 -1
- package/dist/icons/SidebarLeftInteractiveIcon.d.ts +4 -3
- package/dist/icons/SidebarLeftInteractiveIcon.d.ts.map +1 -1
- package/dist/icons/SidebarLeftInteractiveIcon.js +2 -2
- package/dist/icons/SidebarLeftInteractiveIcon.js.map +1 -1
- package/dist/icons/SidebarRightInteractiveIcon.d.ts +4 -3
- package/dist/icons/SidebarRightInteractiveIcon.d.ts.map +1 -1
- package/dist/icons/SidebarRightInteractiveIcon.js +2 -2
- package/dist/icons/SidebarRightInteractiveIcon.js.map +1 -1
- package/dist/tailwind-plugin.d.ts.map +1 -1
- package/dist/tailwind-plugin.js +8 -5
- package/dist/tailwind-plugin.js.map +1 -1
- package/dist/utils/InlineCounter.d.ts +3 -0
- package/dist/utils/InlineCounter.d.ts.map +1 -0
- package/dist/utils/InlineCounter.js +7 -0
- package/dist/utils/InlineCounter.js.map +1 -0
- package/dist/utils/RenderCount.d.ts +3 -0
- package/dist/utils/RenderCount.d.ts.map +1 -0
- package/dist/utils/RenderCount.js +7 -0
- package/dist/utils/RenderCount.js.map +1 -0
- package/dist/utils/cn.d.ts +3 -1
- package/dist/utils/cn.d.ts.map +1 -1
- package/dist/utils/cn.js +3 -1
- package/dist/utils/cn.js.map +1 -1
- package/dist/utils/getCSSPropsAttributes.d.ts +10 -3
- package/dist/utils/getCSSPropsAttributes.d.ts.map +1 -1
- package/dist/utils/getCSSPropsAttributes.js +4 -5
- package/dist/utils/getCSSPropsAttributes.js.map +1 -1
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +2 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/splitProps.d.ts +1 -4
- package/dist/utils/splitProps.d.ts.map +1 -1
- package/dist/utils/splitProps.js +2 -7
- package/dist/utils/splitProps.js.map +1 -1
- package/dist/utils/trimReactNode.d.ts +10 -8
- package/dist/utils/trimReactNode.d.ts.map +1 -1
- package/dist/utils/trimReactNode.js +10 -8
- package/dist/utils/trimReactNode.js.map +1 -1
- package/package.json +21 -21
- package/src/GDSContext.ts +16 -0
- package/src/GDSProvider.tsx +31 -40
- package/src/components/Address.tsx +2 -2
- package/src/components/Avatar.tsx +8 -12
- package/src/components/Breadcrumbs.meta.ts +3 -1
- package/src/components/Breadcrumbs.parts.tsx +16 -28
- package/src/components/Button.tsx +114 -104
- package/src/components/ButtonGroup.meta.ts +8 -0
- package/src/components/ButtonGroup.tsx +1 -5
- package/src/components/Card.meta.ts +1 -0
- package/src/components/Card.tsx +2 -2
- package/src/components/Checkbox.meta.ts +1 -5
- package/src/components/Chip.parts.tsx +1 -11
- package/src/components/CodeBlock.parts.tsx +75 -50
- package/src/components/CodeInline.tsx +3 -3
- package/src/components/CopyButton.meta.ts +1 -6
- package/src/components/CopyButton.tsx +50 -27
- package/src/components/CurrencyInput.meta.ts +1 -5
- package/src/components/DescriptionList.parts.tsx +1 -0
- package/src/components/Icon.meta.ts +1 -0
- package/src/components/Icon.tsx +4 -4
- package/src/components/Input.meta.ts +1 -5
- package/src/components/Input.tsx +6 -7
- package/src/components/Keyboard.tsx +1 -1
- package/src/components/Link.meta.ts +1 -0
- package/src/components/Link.tsx +4 -5
- package/src/components/Menu.meta.ts +39 -1
- package/src/components/Menu.parts.tsx +554 -547
- package/src/components/Modal.meta.ts +1 -1
- package/src/components/Modal.parts.tsx +40 -46
- package/src/components/OTCInput.meta.ts +1 -5
- package/src/components/OTCInput.tsx +1 -1
- package/src/components/Pane.meta.ts +31 -0
- package/src/components/Pane.parts.tsx +713 -0
- package/src/components/Pane.tsx +17 -0
- package/src/components/Radio.meta.ts +1 -5
- package/src/components/Search.tsx +1 -1
- package/src/components/SegmentedControl.meta.ts +3 -1
- package/src/components/SegmentedControl.parts.tsx +7 -10
- package/src/components/Stepper.meta.ts +1 -0
- package/src/components/Stepper.parts.tsx +3 -1
- package/src/components/Switch.meta.ts +1 -5
- package/src/components/TabSet.meta.ts +3 -1
- package/src/components/TextArea.meta.ts +1 -5
- package/src/components/ToggleButton.meta.ts +1 -6
- package/src/components/ToggleButton.tsx +1 -1
- package/src/components/Tooltip.meta.ts +13 -2
- package/src/components/Tooltip.parts.tsx +241 -169
- package/src/components/Tooltip.tsx +2 -2
- package/src/components/base/Addon.meta.ts +3 -1
- package/src/components/base/ButtonOrLink.parts.tsx +118 -97
- package/src/components/base/ButtonOrLink.tsx +1 -0
- package/src/components/base/Checkable.parts.tsx +6 -13
- package/src/components/base/Field.parts.tsx +5 -5
- package/src/components/base/MaybeButtonOrLink.tsx +26 -5
- package/src/components/base/Portal.tsx +5 -7
- package/src/components/base/Presence.tsx +1375 -0
- package/src/components/base/Render.tsx +37 -15
- package/src/components/base/Transition.meta.ts +1 -0
- package/src/components/base/Transition.tsx +2 -2
- package/src/components/base/index.ts +9 -2
- package/src/components/index.ts +11 -2
- package/src/hooks/index.ts +1 -0
- package/src/hooks/useCSSProp.ts +7 -9
- package/src/hooks/useCSSProps.ts +13 -22
- package/src/hooks/useCSSPropsPolyfill.ts +15 -23
- package/src/hooks/useCSSState.ts +11 -6
- package/src/hooks/useControlled.ts +16 -8
- package/src/hooks/useEffectWithRefDeps.ts +2 -2
- package/src/hooks/useFirstRender.ts +36 -0
- package/src/hooks/useGDS.ts +1 -1
- package/src/hooks/usePrevious.ts +6 -4
- package/src/hooks/useRefWithInit.ts +2 -2
- package/src/hooks/useStyleObserver.ts +6 -2
- package/src/icons/CalendarDynamicIcon.tsx +16 -6
- package/src/icons/CopyInteractiveIcon.tsx +10 -5
- package/src/icons/SidebarLeftInteractiveIcon.tsx +9 -5
- package/src/icons/SidebarRightInteractiveIcon.tsx +9 -5
- package/src/tailwind-plugin.ts +8 -5
- package/src/utils/InlineCounter.tsx +17 -0
- package/src/utils/RenderCount.tsx +7 -0
- package/src/utils/cn.ts +3 -1
- package/src/utils/getCSSPropsAttributes.ts +13 -8
- package/src/utils/index.ts +2 -0
- package/src/utils/splitProps.ts +9 -9
- package/src/utils/trimReactNode.tsx +10 -8
- package/dist/components/base/ButtonOrLink.meta.d.ts +0 -2
- package/dist/components/base/ButtonOrLink.meta.d.ts.map +0 -1
- package/dist/components/base/ButtonOrLink.meta.js +0 -6
- package/dist/components/base/ButtonOrLink.meta.js.map +0 -1
- package/src/components/base/ButtonOrLink.meta.ts +0 -6
|
@@ -1,134 +1,163 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { createContext, useCallback, useContext, useEffect,
|
|
3
|
+
import { createContext, useCallback, useContext, useEffect, useRef, useState, } from 'react';
|
|
4
4
|
import { Tooltip } from '@base-ui/react/tooltip';
|
|
5
|
+
import { useMergedRefs } from '@base-ui/utils/useMergedRefs';
|
|
5
6
|
import { twToPx } from '@graphprotocol/gds-css';
|
|
6
7
|
import { useControlled, useCSSPropsPolyfill, useGDS } from "../hooks/index.js";
|
|
7
|
-
import { cn, getCSSPropsAttributes } from "../utils/index.js";
|
|
8
|
+
import { cn, getCSSPropsAttributes, getReactNodeKey } from "../utils/index.js";
|
|
8
9
|
import { Portal } from "./base/Portal.js";
|
|
9
10
|
import { Render } from "./base/Render.js";
|
|
10
11
|
import { TooltipMeta } from "./Tooltip.meta.js";
|
|
11
12
|
const TooltipContext = createContext(null);
|
|
12
|
-
const TooltipCollectorContext = createContext(null);
|
|
13
13
|
const OPEN_DELAY = 300;
|
|
14
|
-
export function TooltipRoot({ ref: passedRef, content: passedContent,
|
|
14
|
+
export function TooltipRoot({ ref: passedRef, content: passedContent, side, gap, align, alignOffset, open: controlledOpen, onOpenChange, disabled, overrideDescendants, className, style, children, triggerProps: passedTriggerProps, ...passedProps }) {
|
|
15
15
|
const { dirProps } = useGDS();
|
|
16
|
-
const
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
-
const
|
|
20
|
-
const
|
|
16
|
+
const ancestorTooltip = useContext(TooltipContext);
|
|
17
|
+
const popupProps = passedTriggerProps !== 'forward' ? passedProps : {};
|
|
18
|
+
const popupRef = passedTriggerProps !== 'forward' ? passedRef : undefined;
|
|
19
|
+
const triggerProps = passedTriggerProps === 'forward' ? passedProps : passedTriggerProps;
|
|
20
|
+
const triggerDisabled = triggerProps && 'disabled' in triggerProps ? triggerProps.disabled === true : false;
|
|
21
|
+
const [cssPropsPolyfillRef, cssPropsPolyfillAttributes, cssProps] = useCSSPropsPolyfill(TooltipMeta, { side, align, disabled, overrideDescendants }, { returnPropValues: { side, gap, align, alignOffset, disabled, overrideDescendants } });
|
|
22
|
+
const cssPropsAttributes = getCSSPropsAttributes(TooltipMeta, { side, gap, align, alignOffset, disabled, overrideDescendants }, style);
|
|
23
|
+
const [setCollectedContent, collectedContent] = useDeferredContent();
|
|
21
24
|
const content = passedContent !== undefined ? passedContent : collectedContent;
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
* Notify nested (overridden) tooltips of the open state change. This ensures, for example, that
|
|
32
|
-
* moving the cursor away from a `CopyButton` while its "Copied!" tooltip is shown closes the
|
|
33
|
-
* inner tooltip as well (which doesn't happen automatically because nested tooltips are
|
|
34
|
-
* disabled to prevent a lot of weirdness).
|
|
35
|
-
*/
|
|
36
|
-
nestedSetOpen.current?.(newOpen);
|
|
25
|
+
/**
|
|
26
|
+
* Propagate collected content up till it reaches `Tooltip.Collector`'s closest non-disabled
|
|
27
|
+
* tooltip ancestor with no passed content.
|
|
28
|
+
*/
|
|
29
|
+
const collectContent = (newCollectedContent, priority) => {
|
|
30
|
+
if (passedContent === undefined || cssProps.disabled) {
|
|
31
|
+
void setCollectedContent(newCollectedContent, priority);
|
|
32
|
+
ancestorTooltip?.collectContent(newCollectedContent, priority);
|
|
33
|
+
}
|
|
37
34
|
};
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
35
|
+
const disabledByAncestor = ancestorTooltip?.disableDescendants ?? false;
|
|
36
|
+
const disableDescendants = disabledByAncestor ||
|
|
37
|
+
(content !== undefined && !cssProps.disabled && cssProps.overrideDescendants);
|
|
38
|
+
const enabled = Boolean(content) &&
|
|
39
|
+
!cssProps.disabled &&
|
|
40
|
+
(!triggerDisabled || controlledOpen) &&
|
|
41
|
+
!disabledByAncestor;
|
|
42
|
+
const triggerRef = useRef(null);
|
|
43
|
+
const triggerPassedRef = useMergedRefs(
|
|
44
|
+
/**
|
|
45
|
+
* Conditionally setting the ref to force the tooltip to refresh its position when `enabled`
|
|
46
|
+
* changes, preventing it from moving to the viewport's top-left corner in some cases (e.g. when
|
|
47
|
+
* `CopyButton` returns to its default tooltip).
|
|
48
|
+
*/
|
|
49
|
+
enabled ? triggerRef : undefined, (passedTriggerProps === 'forward' ? passedRef : passedTriggerProps?.ref));
|
|
50
|
+
const [open, privateSetOpen] = useControlled(controlledOpen, false, onOpenChange);
|
|
51
|
+
const justOpenedRef = useRef(false);
|
|
52
|
+
const setOpen = useCallback((newOpen, reason) => {
|
|
53
|
+
privateSetOpen(newOpen, reason);
|
|
54
|
+
if (newOpen) {
|
|
55
|
+
justOpenedRef.current = true;
|
|
56
|
+
window.setTimeout(() => {
|
|
57
|
+
justOpenedRef.current = false;
|
|
58
|
+
}, 0);
|
|
59
|
+
}
|
|
60
|
+
}, [privateSetOpen]);
|
|
42
61
|
const openTimeoutRef = useRef(undefined);
|
|
43
|
-
const clearOpenTimeout = () => {
|
|
62
|
+
const clearOpenTimeout = useCallback(() => {
|
|
44
63
|
if (!openTimeoutRef.current)
|
|
45
64
|
return;
|
|
46
65
|
window.clearTimeout(openTimeoutRef.current);
|
|
47
66
|
openTimeoutRef.current = undefined;
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
}
|
|
56
|
-
return (_jsx(TooltipContext.Provider, { value:
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
setOpen(
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
67
|
+
}, []);
|
|
68
|
+
useEffect(() => {
|
|
69
|
+
if (!enabled) {
|
|
70
|
+
clearOpenTimeout();
|
|
71
|
+
if (open)
|
|
72
|
+
setOpen(false, 'disabled');
|
|
73
|
+
}
|
|
74
|
+
}, [enabled, open, setOpen, clearOpenTimeout]);
|
|
75
|
+
return (_jsx(TooltipContext.Provider, { value: {
|
|
76
|
+
collectContent,
|
|
77
|
+
disableDescendants,
|
|
78
|
+
}, children: _jsxs(Tooltip.Root, { disabled: !enabled, disableHoverablePopup: true, open: open, onOpenChange: (newOpen, eventDetails) => {
|
|
79
|
+
clearOpenTimeout();
|
|
80
|
+
if (!enabled)
|
|
81
|
+
return;
|
|
82
|
+
// Disable Base UI's default behavior of closing the tooltip when pressing the trigger
|
|
83
|
+
if (!newOpen && eventDetails.reason === 'trigger-press') {
|
|
84
|
+
// Ensure clicking on the trigger before the tooltip has a chance to open doesn't prevent it from opening
|
|
85
|
+
openTimeoutRef.current = window.setTimeout(() => setOpen(true, eventDetails.reason), OPEN_DELAY);
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
// Make `overrideDescendants={false}` work as expected (see the `NestedSimultaneous` story)
|
|
89
|
+
if (!newOpen &&
|
|
90
|
+
eventDetails.reason === 'none' &&
|
|
91
|
+
(justOpenedRef.current ||
|
|
92
|
+
(!cssProps.overrideDescendants && triggerRef.current?.matches(':hover')))) {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
setOpen(newOpen, eventDetails.reason);
|
|
96
|
+
}, children: [_jsx(Tooltip.Trigger, { delay: OPEN_DELAY, closeDelay: 100, ...triggerProps, ref: triggerPassedRef, disabled: undefined, render: (renderProps) => (_jsx(Render, { render: children, ...renderProps, disabled: triggerDisabled, onClick: triggerProps?.onClick })) }), _jsx(Tooltip.Portal, { children: _jsx(Tooltip.Positioner, { side: cssProps.side === 'start'
|
|
97
|
+
? 'inline-start'
|
|
98
|
+
: cssProps.side === 'end'
|
|
99
|
+
? 'inline-end'
|
|
100
|
+
: cssProps.side, sideOffset: twToPx(cssProps.gap), align: cssProps.align, alignOffset: twToPx(cssProps.alignOffset), collisionPadding: 8, disableAnchorTracking // Prevent the tooltip from moving to the viewport's top-left corner when the trigger is unmounted
|
|
101
|
+
: true, ...dirProps, children: _jsx(Tooltip.Popup, { ref: popupRef, className: cn(`gds-tooltip root-block u:max-w-(--available-width) u:rounded-4 u:bg-default u:px-2 u:py-1 u:text-12 u:transition
|
|
102
|
+
i:origin-(--transform-origin)
|
|
103
|
+
i:data-ending-style:opacity-0
|
|
104
|
+
i:data-starting-style:opacity-0
|
|
105
|
+
i:data-starting-style:data-[side=bottom]:-translate-y-1
|
|
106
|
+
i:data-starting-style:data-[side=inline-end]:-translate-x-1
|
|
107
|
+
i:data-starting-style:data-[side=inline-start]:translate-x-1
|
|
108
|
+
i:data-starting-style:data-[side=top]:translate-y-1
|
|
109
|
+
i:rtl:data-starting-style:data-[side=end]:translate-x-1
|
|
110
|
+
i:rtl:data-starting-style:data-[side=start]:-translate-x-1`, className), ...cssPropsAttributes, ...cssPropsPolyfillAttributes, ...popupProps, children: content }) }, getReactNodeKey(content)) }), _jsx(Portal, { children: _jsx("span", { ref: cssPropsPolyfillRef, className: cn('gds-tooltip i:invisible', className), ...cssPropsAttributes, ...cssPropsPolyfillAttributes, ...popupProps }) })] }) }));
|
|
86
111
|
}
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
const
|
|
90
|
-
const
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
112
|
+
function useDeferredContent() {
|
|
113
|
+
const [content, setContent] = useState(undefined);
|
|
114
|
+
const pendingContentRef = useRef(undefined);
|
|
115
|
+
const pendingPriorityRef = useRef(undefined);
|
|
116
|
+
// Store the content in a ref to avoid updating the state during render
|
|
117
|
+
const setDeferredContent = (newContent, priority = 0) => {
|
|
118
|
+
// If we've already stored content this render, only replace it if the new content has higher priority
|
|
119
|
+
if (pendingContentRef.current === undefined ||
|
|
120
|
+
priority >= (pendingPriorityRef.current ?? -Infinity)) {
|
|
121
|
+
pendingContentRef.current = newContent;
|
|
122
|
+
pendingPriorityRef.current = priority;
|
|
98
123
|
}
|
|
124
|
+
return pendingContentRef.current;
|
|
99
125
|
};
|
|
100
|
-
// Commit the
|
|
101
|
-
// oxlint-disable-next-line react-hooks/exhaustive-deps -- Must run after every render to sync
|
|
126
|
+
// Commit the stored content after render
|
|
127
|
+
// oxlint-disable-next-line react-hooks/exhaustive-deps -- Must run after every render to sync
|
|
102
128
|
useEffect(() => {
|
|
103
|
-
if (
|
|
104
|
-
|
|
129
|
+
if (getReactNodeKey(content) !== getReactNodeKey(pendingContentRef.current)) {
|
|
130
|
+
setContent(pendingContentRef.current);
|
|
105
131
|
}
|
|
106
132
|
// Reset for next render
|
|
107
|
-
|
|
108
|
-
|
|
133
|
+
pendingContentRef.current = undefined;
|
|
134
|
+
pendingPriorityRef.current = undefined;
|
|
109
135
|
});
|
|
110
|
-
return
|
|
111
|
-
onCollect,
|
|
112
|
-
collectedContent,
|
|
113
|
-
};
|
|
136
|
+
return [setDeferredContent, content];
|
|
114
137
|
}
|
|
115
138
|
/**
|
|
116
139
|
* Wrap any text or `ReactNode` with this component to use it as the default `content` of the
|
|
117
|
-
*
|
|
140
|
+
* closest `Tooltip`, in addition to rendering it inline. It is meant to be wrapped in a `sr-only`
|
|
118
141
|
* element, so that the content rendered inline is visually hidden but accessible to screen readers,
|
|
119
142
|
* unlike the content rendered in the tooltip itself, which is hidden from the accessibility tree
|
|
120
143
|
* since most tooltips are decorative. This allows a tooltip to be non-decorative, in the rare case
|
|
121
144
|
* where the information it provides is not otherwise available to screen readers (i.e. different
|
|
122
145
|
* from the trigger's accessible name).
|
|
123
146
|
*/
|
|
124
|
-
export function TooltipContent({
|
|
125
|
-
const
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
147
|
+
export function TooltipContent({ children, priority, render }) {
|
|
148
|
+
const ancestorTooltip = useContext(TooltipContext);
|
|
149
|
+
ancestorTooltip?.collectContent(children || null, priority);
|
|
150
|
+
return render ? _jsx(Render, { render: render, children: children }) : children;
|
|
151
|
+
}
|
|
152
|
+
TooltipContent.displayName = 'Tooltip.Content';
|
|
153
|
+
const TooltipCollectorContext = createContext(null);
|
|
154
|
+
export function TooltipCollector({ children }) {
|
|
155
|
+
const ancestorTooltip = useContext(TooltipContext);
|
|
156
|
+
return (_jsx(TooltipCollectorContext.Provider, { value: ancestorTooltip?.collectContent ?? null, children: children }));
|
|
157
|
+
}
|
|
158
|
+
TooltipCollector.displayName = 'Tooltip.Collector';
|
|
159
|
+
/** Hook for components to send tooltip content up to a collector. */
|
|
160
|
+
export function useTooltipCollector() {
|
|
161
|
+
return useContext(TooltipCollectorContext);
|
|
133
162
|
}
|
|
134
163
|
//# sourceMappingURL=Tooltip.parts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tooltip.parts.js","sourceRoot":"","sources":["../../src/components/Tooltip.parts.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EACL,aAAa,EACb,WAAW,EACX,UAAU,EACV,SAAS,EACT,
|
|
1
|
+
{"version":3,"file":"Tooltip.parts.js","sourceRoot":"","sources":["../../src/components/Tooltip.parts.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EACL,aAAa,EACb,WAAW,EACX,UAAU,EACV,SAAS,EACT,MAAM,EACN,QAAQ,GAKT,MAAM,OAAO,CAAA;AACd,OAAO,EAAE,OAAO,EAAyC,MAAM,wBAAwB,CAAA;AACvF,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAG5D,OAAO,EAAE,MAAM,EAA0B,MAAM,wBAAwB,CAAA;AAEvE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC9E,OAAO,EAAE,EAAE,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAC9E,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAmB,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAmB,MAAM,kBAAmB,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAM/C,MAAM,cAAc,GAAG,aAAa,CAG1B,IAAI,CAAC,CAAA;AAEf,MAAM,UAAU,GAAG,GAAG,CAAA;AAuBtB,MAAM,UAAU,WAAW,CAAC,EAC1B,GAAG,EAAE,SAAS,EACd,OAAO,EAAE,aAAa,EACtB,IAAI,EACJ,GAAG,EACH,KAAK,EACL,WAAW,EACX,IAAI,EAAE,cAAc,EACpB,YAAY,EACZ,QAAQ,EACR,mBAAmB,EACnB,SAAS,EACT,KAAK,EACL,QAAQ,EACR,YAAY,EAAE,kBAAkB,EAChC,GAAG,WAAW,EACD;IACb,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,EAAE,CAAA;IAE7B,MAAM,eAAe,GAAG,UAAU,CAAC,cAAc,CAAC,CAAA;IAElD,MAAM,UAAU,GAAG,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAA;IACtE,MAAM,QAAQ,GAAG,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAA;IAEzE,MAAM,YAAY,GAAG,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,kBAAkB,CAAA;IACxF,MAAM,eAAe,GACnB,YAAY,IAAI,UAAU,IAAI,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAA;IAErF,MAAM,CAAC,mBAAmB,EAAE,0BAA0B,EAAE,QAAQ,CAAC,GAAG,mBAAmB,CACrF,WAAW,EACX,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,mBAAmB,EAAE,EAC9C,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,mBAAmB,EAAE,EAAE,CACvF,CAAA;IACD,MAAM,kBAAkB,GAAG,qBAAqB,CAC9C,WAAW,EACX,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,mBAAmB,EAAE,EAChE,KAAK,CACN,CAAA;IAED,MAAM,CAAC,mBAAmB,EAAE,gBAAgB,CAAC,GAAG,kBAAkB,EAAE,CAAA;IACpE,MAAM,OAAO,GAAG,aAAa,KAAK,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,gBAAgB,CAAA;IAE9E;;;OAGG;IACH,MAAM,cAAc,GAA+B,CAAC,mBAAmB,EAAE,QAAQ,EAAE,EAAE;QACnF,IAAI,aAAa,KAAK,SAAS,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;YACrD,KAAK,mBAAmB,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAA;YACvD,eAAe,EAAE,cAAc,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAA;QAChE,CAAC;IACH,CAAC,CAAA;IAED,MAAM,kBAAkB,GAAG,eAAe,EAAE,kBAAkB,IAAI,KAAK,CAAA;IACvE,MAAM,kBAAkB,GACtB,kBAAkB;QAClB,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,mBAAmB,CAAC,CAAA;IAC/E,MAAM,OAAO,GACX,OAAO,CAAC,OAAO,CAAC;QAChB,CAAC,QAAQ,CAAC,QAAQ;QAClB,CAAC,CAAC,eAAe,IAAI,cAAc,CAAC;QACpC,CAAC,kBAAkB,CAAA;IAErB,MAAM,UAAU,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAA;IAClD,MAAM,gBAAgB,GAAG,aAAa;IACpC;;;;OAIG;IACH,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EAChC,CAAC,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,kBAAkB,EAAE,GAAG,CAE1D,CACd,CAAA;IAED,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,GAAG,aAAa,CAAC,cAAc,EAAE,KAAK,EAAE,YAAY,CAAC,CAAA;IACjF,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;IACnC,MAAM,OAAO,GAAG,WAAW,CACzB,CAAC,OAAgB,EAAE,MAAwB,EAAE,EAAE;QAC7C,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QAC/B,IAAI,OAAO,EAAE,CAAC;YACZ,aAAa,CAAC,OAAO,GAAG,IAAI,CAAA;YAC5B,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;gBACrB,aAAa,CAAC,OAAO,GAAG,KAAK,CAAA;YAC/B,CAAC,EAAE,CAAC,CAAC,CAAA;QACP,CAAC;IACH,CAAC,EACD,CAAC,cAAc,CAAC,CACjB,CAAA;IAED,MAAM,cAAc,GAAG,MAAM,CAAS,SAAS,CAAC,CAAA;IAChD,MAAM,gBAAgB,GAAG,WAAW,CAAC,GAAG,EAAE;QACxC,IAAI,CAAC,cAAc,CAAC,OAAO;YAAE,OAAM;QACnC,MAAM,CAAC,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,CAAA;QAC3C,cAAc,CAAC,OAAO,GAAG,SAAS,CAAA;IACpC,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,gBAAgB,EAAE,CAAA;YAClB,IAAI,IAAI;gBAAE,OAAO,CAAC,KAAK,EAAE,UAAU,CAAC,CAAA;QACtC,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAA;IAE9C,OAAO,CACL,KAAC,cAAc,CAAC,QAAQ,IACtB,KAAK,EAAE;YACL,cAAc;YACd,kBAAkB;SACnB,YAED,MAAC,OAAO,CAAC,IAAI,IACX,QAAQ,EAAE,CAAC,OAAO,EAClB,qBAAqB,QACrB,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE;gBACtC,gBAAgB,EAAE,CAAA;gBAClB,IAAI,CAAC,OAAO;oBAAE,OAAM;gBACpB,sFAAsF;gBACtF,IAAI,CAAC,OAAO,IAAI,YAAY,CAAC,MAAM,KAAK,eAAe,EAAE,CAAC;oBACxD,yGAAyG;oBACzG,cAAc,CAAC,OAAO,GAAG,MAAM,CAAC,UAAU,CACxC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,EACxC,UAAU,CACX,CAAA;oBACD,OAAM;gBACR,CAAC;gBACD,2FAA2F;gBAC3F,IACE,CAAC,OAAO;oBACR,YAAY,CAAC,MAAM,KAAK,MAAM;oBAC9B,CAAC,aAAa,CAAC,OAAO;wBACpB,CAAC,CAAC,QAAQ,CAAC,mBAAmB,IAAI,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,EAC3E,CAAC;oBACD,OAAM;gBACR,CAAC;gBACD,OAAO,CAAC,OAAO,EAAE,YAAY,CAAC,MAAM,CAAC,CAAA;YACvC,CAAC,aAED,KAAC,OAAO,CAAC,OAAO,IACd,KAAK,EAAE,UAAU,EACjB,UAAU,EAAE,GAAG,KACV,YAAuD,EAC5D,GAAG,EAAE,gBAAgB,EACrB,QAAQ,EAAE,SAAS,EACnB,MAAM,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,CACvB,KAAC,MAAM,IACL,MAAM,EAAE,QAAQ,KACZ,WAAW,EACf,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,YAAY,EAAE,OAAO,GAC9B,CACH,GACD,EACF,KAAC,OAAO,CAAC,MAAM,cACb,KAAC,OAAO,CAAC,UAAU,IAEjB,IAAI,EACF,QAAQ,CAAC,IAAI,KAAK,OAAO;4BACvB,CAAC,CAAC,cAAc;4BAChB,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,KAAK;gCACvB,CAAC,CAAC,YAAY;gCACd,CAAC,CAAC,QAAQ,CAAC,IAAI,EAErB,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,EAChC,KAAK,EAAE,QAAQ,CAAC,KAAK,EACrB,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EACzC,gBAAgB,EAAE,CAAC,EACnB,qBAAqB,CAAC,kGAAkG;mCACpH,QAAQ,YAEZ,KAAC,OAAO,CAAC,KAAK,IACZ,GAAG,EAAE,QAAQ,EACb,SAAS,EAAE,EAAE,CACX;;;;;;;;;2EAS2D,EAC3D,SAAS,CACV,KACG,kBAAkB,KAClB,0BAA0B,KAC1B,UAAU,YAEb,OAAO,GACM,IAnCX,eAAe,CAAC,OAAO,CAAC,CAoCV,GACN,EAEjB,KAAC,MAAM,cACL,eACE,GAAG,EAAE,mBAAmB,EACxB,SAAS,EAAE,EAAE,CAAC,yBAAyB,EAAE,SAAS,CAAC,KAC/C,kBAAkB,KAClB,0BAA0B,KAC1B,UAAU,GACd,GACK,IACI,GACS,CAC3B,CAAA;AACH,CAAC;AAED,SAAS,kBAAkB;IACzB,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAsB,SAAS,CAAC,CAAA;IACtE,MAAM,iBAAiB,GAAG,MAAM,CAAsB,SAAS,CAAC,CAAA;IAChE,MAAM,kBAAkB,GAAG,MAAM,CAAqB,SAAS,CAAC,CAAA;IAEhE,uEAAuE;IACvE,MAAM,kBAAkB,GAAuD,CAC7E,UAAmB,EACnB,QAAQ,GAAG,CAAC,EACZ,EAAE;QACF,sGAAsG;QACtG,IACE,iBAAiB,CAAC,OAAO,KAAK,SAAS;YACvC,QAAQ,IAAI,CAAC,kBAAkB,CAAC,OAAO,IAAI,CAAC,QAAQ,CAAC,EACrD,CAAC;YACD,iBAAiB,CAAC,OAAO,GAAG,UAAU,CAAA;YACtC,kBAAkB,CAAC,OAAO,GAAG,QAAQ,CAAA;QACvC,CAAC;QACD,OAAO,iBAAiB,CAAC,OAAO,CAAA;IAClC,CAAC,CAAA;IAED,yCAAyC;IACzC,8FAA8F;IAC9F,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,eAAe,CAAC,OAAO,CAAC,KAAK,eAAe,CAAC,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5E,UAAU,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAA;QACvC,CAAC;QACD,wBAAwB;QACxB,iBAAiB,CAAC,OAAO,GAAG,SAAS,CAAA;QACrC,kBAAkB,CAAC,OAAO,GAAG,SAAS,CAAA;IACxC,CAAC,CAAC,CAAA;IAEF,OAAO,CAAC,kBAAkB,EAAE,OAAO,CAAU,CAAA;AAC/C,CAAC;AAQD;;;;;;;;GAQG;AACH,MAAM,UAAU,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAuB;IAChF,MAAM,eAAe,GAAG,UAAU,CAAC,cAAc,CAAC,CAAA;IAElD,eAAe,EAAE,cAAc,CAAC,QAAQ,IAAI,IAAI,EAAE,QAAQ,CAAC,CAAA;IAE3D,OAAO,MAAM,CAAC,CAAC,CAAC,KAAC,MAAM,IAAC,MAAM,EAAE,MAAM,YAAG,QAAQ,GAAU,CAAC,CAAC,CAAC,QAAQ,CAAA;AACxE,CAAC;AACD,cAAc,CAAC,WAAW,GAAG,iBAAiB,CAAA;AAE9C,MAAM,uBAAuB,GAAG,aAAa,CAAoC,IAAI,CAAC,CAAA;AAMtF,MAAM,UAAU,gBAAgB,CAAC,EAAE,QAAQ,EAAyB;IAClE,MAAM,eAAe,GAAG,UAAU,CAAC,cAAc,CAAC,CAAA;IAElD,OAAO,CACL,KAAC,uBAAuB,CAAC,QAAQ,IAAC,KAAK,EAAE,eAAe,EAAE,cAAc,IAAI,IAAI,YAC7E,QAAQ,GACwB,CACpC,CAAA;AACH,CAAC;AACD,gBAAgB,CAAC,WAAW,GAAG,mBAAmB,CAAA;AAElD,qEAAqE;AACrE,MAAM,UAAU,mBAAmB;IACjC,OAAO,UAAU,CAAC,uBAAuB,CAAC,CAAA;AAC5C,CAAC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const AddonMeta: import("@graphprotocol/gds-css").GDSComponent<
|
|
1
|
+
export declare const AddonMeta: import("@graphprotocol/gds-css").GDSComponent<{}, false>;
|
|
2
2
|
//# sourceMappingURL=Addon.meta.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Addon.meta.d.ts","sourceRoot":"","sources":["../../../src/components/base/Addon.meta.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,
|
|
1
|
+
{"version":3,"file":"Addon.meta.d.ts","sourceRoot":"","sources":["../../../src/components/base/Addon.meta.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,0DAEpB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Addon.meta.js","sourceRoot":"","sources":["../../../src/components/base/Addon.meta.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAExD,MAAM,CAAC,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA"}
|
|
1
|
+
{"version":3,"file":"Addon.meta.js","sourceRoot":"","sources":["../../../src/components/base/Addon.meta.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAA;AAExD,MAAM,CAAC,MAAM,SAAS,GAAG,eAAe,CAAC,OAAO,EAAE;IAChD,OAAO,EAAE,KAAK;CACf,CAAC,CAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ButtonOrLinkConsumer } from './ButtonOrLink.parts.tsx';
|
|
2
2
|
export declare const ButtonOrLink: {
|
|
3
|
-
(passedProps: import("./ButtonOrLink.parts.tsx").InternalButtonOrLinkProps):
|
|
3
|
+
(passedProps: import("./ButtonOrLink.parts.tsx").InternalButtonOrLinkProps): import("react/jsx-runtime").JSX.Element;
|
|
4
4
|
displayName: string;
|
|
5
5
|
} & {
|
|
6
6
|
Config: {
|
|
@@ -10,5 +10,5 @@ export declare const ButtonOrLink: {
|
|
|
10
10
|
Consumer: typeof ButtonOrLinkConsumer;
|
|
11
11
|
};
|
|
12
12
|
export { useAncestorButtonOrLink } from './ButtonOrLink.parts.tsx';
|
|
13
|
-
export type { ButtonOrLinkProps, ButtonOrLinkState, ButtonOrLinkConfigProps, InternalButtonOrLinkProps, OmitInternalButtonOrLinkProps, } from './ButtonOrLink.parts.tsx';
|
|
13
|
+
export type { ButtonOrLinkProps, ButtonOrLinkState, ButtonOrLinkRenderState, ButtonOrLinkConfigProps, InternalButtonOrLinkProps, OmitInternalButtonOrLinkProps, } from './ButtonOrLink.parts.tsx';
|
|
14
14
|
//# sourceMappingURL=ButtonOrLink.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ButtonOrLink.d.ts","sourceRoot":"","sources":["../../../src/components/base/ButtonOrLink.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,oBAAoB,EAErB,MAAM,0BAA0B,CAAA;AAEjC,eAAO,MAAM,YAAY;;;;;;;;;CAGvB,CAAA;AAEF,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAA;AAElE,YAAY,EACV,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACvB,yBAAyB,EACzB,6BAA6B,GAC9B,MAAM,0BAA0B,CAAA"}
|
|
1
|
+
{"version":3,"file":"ButtonOrLink.d.ts","sourceRoot":"","sources":["../../../src/components/base/ButtonOrLink.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEL,oBAAoB,EAErB,MAAM,0BAA0B,CAAA;AAEjC,eAAO,MAAM,YAAY;;;;;;;;;CAGvB,CAAA;AAEF,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAA;AAElE,YAAY,EACV,iBAAiB,EACjB,iBAAiB,EACjB,uBAAuB,EACvB,uBAAuB,EACvB,yBAAyB,EACzB,6BAA6B,GAC9B,MAAM,0BAA0B,CAAA"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type ComponentProps, type ComponentType, type ElementType, type MouseEvent, type ReactElement, type ReactNode } from 'react';
|
|
2
|
+
import { type RenderFn } from './Render.tsx';
|
|
2
3
|
interface LinkComponentObject {
|
|
3
4
|
component: ElementType;
|
|
4
5
|
/** @default false */
|
|
@@ -8,15 +9,22 @@ interface LinkComponentObject {
|
|
|
8
9
|
type LinkComponent = ComponentType<ComponentProps<'a'>> | ComponentType<{
|
|
9
10
|
href: string;
|
|
10
11
|
}> | ReactElement | LinkComponentObject | null;
|
|
11
|
-
export
|
|
12
|
-
|
|
13
|
-
category: 'button' | 'link' | 'other';
|
|
12
|
+
export type ButtonOrLinkState = {
|
|
13
|
+
category: 'button' | 'link';
|
|
14
14
|
role: NonNullable<InternalButtonOrLinkProps['role']>;
|
|
15
15
|
disabled: NonNullable<InternalButtonOrLinkProps['disabled']>;
|
|
16
16
|
type?: InternalButtonOrLinkProps['type'];
|
|
17
17
|
checked?: InternalButtonOrLinkProps['checked'];
|
|
18
18
|
href?: InternalButtonOrLinkProps['href'];
|
|
19
19
|
target?: InternalButtonOrLinkProps['target'];
|
|
20
|
+
};
|
|
21
|
+
export type ButtonOrLinkRenderState = ButtonOrLinkState & {
|
|
22
|
+
Element: ElementType<ButtonOrLinkRenderElementProps>;
|
|
23
|
+
elementProps: ButtonOrLinkRenderElementProps;
|
|
24
|
+
};
|
|
25
|
+
interface ButtonOrLinkRenderElementProps {
|
|
26
|
+
buttonOrLinkState: ButtonOrLinkState;
|
|
27
|
+
[key: string]: unknown;
|
|
20
28
|
}
|
|
21
29
|
export declare namespace InternalButtonOrLinkProps {
|
|
22
30
|
interface DisableableProps {
|
|
@@ -33,8 +41,8 @@ export declare namespace InternalButtonOrLinkProps {
|
|
|
33
41
|
*/
|
|
34
42
|
inline?: boolean | undefined;
|
|
35
43
|
/** Custom render function to control the rendered element. */
|
|
36
|
-
render?:
|
|
37
|
-
/** Custom component to use for rendering links (e.g
|
|
44
|
+
render?: RenderFn<ButtonOrLinkRenderState> | undefined;
|
|
45
|
+
/** Custom component to use for rendering links (e.g. Next.js Link) */
|
|
38
46
|
linkComponent?: LinkComponent | undefined;
|
|
39
47
|
}
|
|
40
48
|
interface ButtonProps extends BaseProps, DisableableProps, Omit<ComponentProps<'button'>, 'defaultValue' | 'disabled'> {
|
|
@@ -74,7 +82,7 @@ interface ButtonOrLinkConfigContextValue {
|
|
|
74
82
|
* (or a `span` that behaves like a button if `inline` is true).
|
|
75
83
|
*/
|
|
76
84
|
export declare const ButtonOrLinkRoot: {
|
|
77
|
-
(passedProps: InternalButtonOrLinkProps):
|
|
85
|
+
(passedProps: InternalButtonOrLinkProps): import("react/jsx-runtime").JSX.Element;
|
|
78
86
|
displayName: string;
|
|
79
87
|
};
|
|
80
88
|
export interface ButtonOrLinkConfigProps {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ButtonOrLink.parts.d.ts","sourceRoot":"","sources":["../../../src/components/base/ButtonOrLink.parts.tsx"],"names":[],"mappings":"AAEA,OAAO,EAOL,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,SAAS,EACf,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"ButtonOrLink.parts.d.ts","sourceRoot":"","sources":["../../../src/components/base/ButtonOrLink.parts.tsx"],"names":[],"mappings":"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"}
|
|
@@ -12,9 +12,9 @@ export function useAncestorButtonOrLink() {
|
|
|
12
12
|
}
|
|
13
13
|
const memoizedWithContextComponents = new Map();
|
|
14
14
|
function withContext(Element) {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
const cached = memoizedWithContextComponents.get(Element);
|
|
16
|
+
if (cached)
|
|
17
|
+
return cached;
|
|
18
18
|
const newWithContextComponent = ({ buttonOrLinkState, ...props }) => (_jsx(ButtonOrLinkContext.Provider, { value: buttonOrLinkState, children: _jsx(Element, { ...props }) }));
|
|
19
19
|
memoizedWithContextComponents.set(Element, newWithContextComponent);
|
|
20
20
|
return newWithContextComponent;
|
|
@@ -46,7 +46,27 @@ export const ButtonOrLinkRoot = (passedProps) => {
|
|
|
46
46
|
}
|
|
47
47
|
: undefined,
|
|
48
48
|
});
|
|
49
|
-
const { disabled = false, inline = false, linkComponent: passedLinkComponent, render
|
|
49
|
+
const { disabled = false, inline = false, linkComponent: passedLinkComponent, render: passedRender, className: passedClassName, children, ...nonBaseProps } = props;
|
|
50
|
+
const manuallyDisabledEventProps = {
|
|
51
|
+
onClick: undefined,
|
|
52
|
+
onMouseDown: undefined,
|
|
53
|
+
onMouseUp: undefined,
|
|
54
|
+
onPointerDown: undefined,
|
|
55
|
+
onPointerUp: undefined,
|
|
56
|
+
onTouchStart: undefined,
|
|
57
|
+
onTouchEnd: undefined,
|
|
58
|
+
onKeyDown: undefined,
|
|
59
|
+
onKeyUp: undefined,
|
|
60
|
+
};
|
|
61
|
+
const render = (Element, renderProps, buttonOrLinkState, extraElementProps) => {
|
|
62
|
+
const elementProps = { buttonOrLinkState, ...extraElementProps };
|
|
63
|
+
const renderState = {
|
|
64
|
+
...buttonOrLinkState,
|
|
65
|
+
Element,
|
|
66
|
+
elementProps,
|
|
67
|
+
};
|
|
68
|
+
return passedRender ? (passedRender(renderProps, renderState)) : (_jsx(Element, { ...renderProps, ...elementProps }));
|
|
69
|
+
};
|
|
50
70
|
const className = cn('gds-button-or-link', passedClassName);
|
|
51
71
|
if (props.href === undefined) {
|
|
52
72
|
const { role = 'button', type = 'button', checked, defaultChecked, href: _href, target: _target, ...remainingProps } = nonBaseProps;
|
|
@@ -54,15 +74,6 @@ export const ButtonOrLinkRoot = (passedProps) => {
|
|
|
54
74
|
// oxlint-disable-next-line no-console
|
|
55
75
|
console.warn('[ButtonOrLink] `defaultChecked` is not supported; use a controlled `checked` prop instead, or wrap `ButtonOrLink` in a component that manages the uncontrolled state');
|
|
56
76
|
}
|
|
57
|
-
const Element = inline ? SpanButtonWithContext : ButtonWithContext;
|
|
58
|
-
const state = {
|
|
59
|
-
Element,
|
|
60
|
-
category: 'button',
|
|
61
|
-
role,
|
|
62
|
-
disabled,
|
|
63
|
-
type,
|
|
64
|
-
checked,
|
|
65
|
-
};
|
|
66
77
|
const checkedAttribute = checked === undefined
|
|
67
78
|
? {}
|
|
68
79
|
: ((checked) => {
|
|
@@ -76,7 +87,7 @@ export const ButtonOrLinkRoot = (passedProps) => {
|
|
|
76
87
|
}
|
|
77
88
|
return { 'aria-checked': checkedOrMixed };
|
|
78
89
|
})(checked);
|
|
79
|
-
|
|
90
|
+
const buttonProps = {
|
|
80
91
|
role,
|
|
81
92
|
type: disabled === 'focusable' ? 'button' : type,
|
|
82
93
|
disabled: disabled === true,
|
|
@@ -84,44 +95,29 @@ export const ButtonOrLinkRoot = (passedProps) => {
|
|
|
84
95
|
...checkedAttribute,
|
|
85
96
|
className,
|
|
86
97
|
children,
|
|
87
|
-
buttonOrLinkState: state,
|
|
88
|
-
};
|
|
89
|
-
buttonProps = {
|
|
90
|
-
...buttonProps,
|
|
91
|
-
onClick: !disabled ? onClick : undefined,
|
|
92
98
|
...remainingProps,
|
|
99
|
+
...((disabled === 'focusable' || (disabled && inline)) && manuallyDisabledEventProps),
|
|
93
100
|
};
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
const { href, target, role = 'link', rel = target === '_blank' ? 'noopener noreferrer' : undefined, type: _type, checked: _checked, defaultChecked: _defaultChecked, ...remainingProps } = nonBaseProps;
|
|
97
|
-
const state = {
|
|
98
|
-
Element: 'a',
|
|
99
|
-
category: 'link',
|
|
100
|
-
role,
|
|
101
|
-
disabled,
|
|
102
|
-
href,
|
|
103
|
-
target,
|
|
104
|
-
};
|
|
105
|
-
let linkProps = disabled
|
|
106
|
-
? {
|
|
101
|
+
const buttonOrLinkState = {
|
|
102
|
+
category: 'button',
|
|
107
103
|
role,
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
children,
|
|
112
|
-
}
|
|
113
|
-
: {
|
|
114
|
-
role: role !== 'link' ? role : undefined,
|
|
115
|
-
href,
|
|
116
|
-
target,
|
|
117
|
-
rel,
|
|
118
|
-
className,
|
|
119
|
-
children,
|
|
104
|
+
disabled,
|
|
105
|
+
type,
|
|
106
|
+
checked,
|
|
120
107
|
};
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
108
|
+
return render(inline ? SpanButtonWithContext : ButtonWithContext, buttonProps, buttonOrLinkState);
|
|
109
|
+
}
|
|
110
|
+
const { href, target, role = 'link', rel = target === '_blank' ? 'noopener noreferrer' : undefined, type: _type, checked: _checked, defaultChecked: _defaultChecked, ...remainingProps } = nonBaseProps;
|
|
111
|
+
let linkProps = {
|
|
112
|
+
role: disabled || role !== 'link' ? role : undefined,
|
|
113
|
+
href: !disabled ? href : undefined,
|
|
114
|
+
target: !disabled ? target : undefined,
|
|
115
|
+
rel: !disabled ? rel : undefined,
|
|
116
|
+
'aria-disabled': Boolean(disabled) || undefined,
|
|
117
|
+
className,
|
|
118
|
+
children,
|
|
124
119
|
...remainingProps,
|
|
120
|
+
...(disabled && manuallyDisabledEventProps),
|
|
125
121
|
};
|
|
126
122
|
let linkComponent = null;
|
|
127
123
|
if (passedLinkComponent) {
|
|
@@ -138,23 +134,17 @@ export const ButtonOrLinkRoot = (passedProps) => {
|
|
|
138
134
|
linkComponent = passedLinkComponent;
|
|
139
135
|
}
|
|
140
136
|
}
|
|
137
|
+
const buttonOrLinkState = {
|
|
138
|
+
category: 'link',
|
|
139
|
+
role,
|
|
140
|
+
disabled,
|
|
141
|
+
href,
|
|
142
|
+
target,
|
|
143
|
+
};
|
|
141
144
|
if (isValidElement(linkComponent)) {
|
|
142
|
-
|
|
143
|
-
state.Element = Element;
|
|
144
|
-
const elementProps = {
|
|
145
|
-
...linkProps,
|
|
146
|
-
render: linkComponent,
|
|
147
|
-
buttonOrLinkState: state,
|
|
148
|
-
};
|
|
149
|
-
return render ? render(elementProps, state) : _jsx(Element, { ...elementProps });
|
|
145
|
+
return render(RenderWithContext, linkProps, buttonOrLinkState, { render: linkComponent });
|
|
150
146
|
}
|
|
151
|
-
|
|
152
|
-
state.Element = Element;
|
|
153
|
-
const elementProps = {
|
|
154
|
-
...linkProps,
|
|
155
|
-
buttonOrLinkState: state,
|
|
156
|
-
};
|
|
157
|
-
return render ? render(elementProps, state) : _jsx(Element, { ...elementProps });
|
|
147
|
+
return render(linkComponent && linkComponent !== 'a' ? withContext(linkComponent) : AnchorWithContext, linkProps, buttonOrLinkState);
|
|
158
148
|
};
|
|
159
149
|
ButtonOrLinkRoot.displayName = 'ButtonOrLink';
|
|
160
150
|
export const ButtonOrLinkConfig = ({ onClick: passedOnClick, transformProps: passedTransformProps, children, }) => {
|
|
@@ -200,7 +190,7 @@ function SpanButton({ ref: passedRef, type = 'button', disabled = false, onClick
|
|
|
200
190
|
isDisabled: disabled,
|
|
201
191
|
elementType: 'span',
|
|
202
192
|
onPress: (event) => {
|
|
203
|
-
|
|
193
|
+
event.target.dispatchEvent(new MouseEvent('click', {
|
|
204
194
|
altKey: event.altKey,
|
|
205
195
|
ctrlKey: event.ctrlKey,
|
|
206
196
|
metaKey: event.metaKey,
|
|
@@ -208,8 +198,7 @@ function SpanButton({ ref: passedRef, type = 'button', disabled = false, onClick
|
|
|
208
198
|
relatedTarget: event.target,
|
|
209
199
|
bubbles: true,
|
|
210
200
|
cancelable: true,
|
|
211
|
-
});
|
|
212
|
-
event.target.dispatchEvent(mouseEvent);
|
|
201
|
+
}));
|
|
213
202
|
},
|
|
214
203
|
onPressStart: (event) => {
|
|
215
204
|
if (event.pointerType === 'keyboard')
|