@graphprotocol/gds-react 0.2.0 → 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 +1 -9
- package/dist/GDSProvider.d.ts.map +1 -1
- package/dist/GDSProvider.js +4 -3
- package/dist/GDSProvider.js.map +1 -1
- package/dist/components/Avatar.d.ts.map +1 -1
- package/dist/components/Avatar.js +2 -2
- package/dist/components/Avatar.js.map +1 -1
- package/dist/components/Breadcrumbs.parts.js +1 -1
- package/dist/components/Breadcrumbs.parts.js.map +1 -1
- package/dist/components/Button.d.ts.map +1 -1
- package/dist/components/Button.js +69 -69
- package/dist/components/Button.js.map +1 -1
- package/dist/components/Card.js +2 -2
- package/dist/components/Card.js.map +1 -1
- package/dist/components/CodeBlock.d.ts +1 -1
- package/dist/components/CodeBlock.parts.d.ts +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 -19
- package/dist/components/CopyButton.js.map +1 -1
- package/dist/components/Input.js +2 -2
- package/dist/components/Input.js.map +1 -1
- package/dist/components/Link.js +2 -2
- package/dist/components/Link.js.map +1 -1
- package/dist/components/Menu.parts.d.ts +4 -5
- package/dist/components/Menu.parts.d.ts.map +1 -1
- package/dist/components/Menu.parts.js +49 -44
- package/dist/components/Menu.parts.js.map +1 -1
- package/dist/components/Modal.parts.d.ts.map +1 -1
- package/dist/components/Modal.parts.js +17 -21
- package/dist/components/Modal.parts.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/Search.js +1 -1
- package/dist/components/Tooltip.parts.d.ts +13 -4
- package/dist/components/Tooltip.parts.d.ts.map +1 -1
- package/dist/components/Tooltip.parts.js +51 -63
- package/dist/components/Tooltip.parts.js.map +1 -1
- package/dist/components/base/ButtonOrLink.d.ts +1 -1
- package/dist/components/base/ButtonOrLink.d.ts.map +1 -1
- package/dist/components/base/ButtonOrLink.parts.d.ts +10 -3
- package/dist/components/base/ButtonOrLink.parts.d.ts.map +1 -1
- package/dist/components/base/ButtonOrLink.parts.js +27 -35
- package/dist/components/base/ButtonOrLink.parts.js.map +1 -1
- package/dist/components/base/MaybeButtonOrLink.d.ts +19 -2
- 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/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/index.d.ts +1 -0
- package/dist/components/base/index.d.ts.map +1 -1
- package/dist/components/base/index.js +1 -0
- package/dist/components/base/index.js.map +1 -1
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +2 -0
- package/dist/components/index.js.map +1 -1
- package/dist/hooks/useCSSProp.js +1 -1
- package/dist/hooks/useCSSProp.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/useGDS.js +1 -1
- package/dist/hooks/useGDS.js.map +1 -1
- package/dist/hooks/useStyleObserver.js +1 -1
- package/dist/hooks/useStyleObserver.js.map +1 -1
- package/dist/tailwind-plugin.d.ts.map +1 -1
- package/dist/tailwind-plugin.js +3 -0
- 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/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/package.json +14 -14
- package/src/GDSContext.ts +16 -0
- package/src/GDSProvider.tsx +20 -31
- package/src/components/Avatar.tsx +3 -2
- package/src/components/Breadcrumbs.parts.tsx +1 -1
- package/src/components/Button.tsx +113 -107
- package/src/components/Card.tsx +2 -2
- package/src/components/CopyButton.tsx +49 -25
- package/src/components/Input.tsx +1 -1
- package/src/components/Link.tsx +2 -2
- package/src/components/Menu.parts.tsx +75 -72
- package/src/components/Modal.parts.tsx +26 -31
- 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/Search.tsx +1 -1
- package/src/components/Tooltip.parts.tsx +95 -80
- package/src/components/base/ButtonOrLink.parts.tsx +71 -51
- package/src/components/base/ButtonOrLink.tsx +1 -0
- package/src/components/base/MaybeButtonOrLink.tsx +26 -5
- package/src/components/base/Presence.tsx +1375 -0
- package/src/components/base/index.ts +1 -0
- package/src/components/index.ts +10 -0
- package/src/hooks/useCSSProp.ts +1 -1
- package/src/hooks/useControlled.ts +16 -8
- package/src/hooks/useGDS.ts +1 -1
- package/src/hooks/useStyleObserver.ts +1 -1
- package/src/tailwind-plugin.ts +3 -0
- package/src/utils/InlineCounter.tsx +17 -0
- package/src/utils/RenderCount.tsx +7 -0
- package/src/utils/index.ts +2 -0
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import { createContext, useContext, useEffect, useRef, useState, } from 'react';
|
|
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
8
|
import { cn, getCSSPropsAttributes, getReactNodeKey } from "../utils/index.js";
|
|
@@ -10,84 +11,70 @@ import { Render } from "./base/Render.js";
|
|
|
10
11
|
import { TooltipMeta } from "./Tooltip.meta.js";
|
|
11
12
|
const TooltipContext = createContext(null);
|
|
12
13
|
const OPEN_DELAY = 300;
|
|
13
|
-
export function TooltipRoot({ ref: passedRef, content: passedContent, side, gap, align, alignOffset, open: controlledOpen, onOpenChange, disabled, overrideDescendants, className, style, children, ...
|
|
14
|
+
export function TooltipRoot({ ref: passedRef, content: passedContent, side, gap, align, alignOffset, open: controlledOpen, onOpenChange, disabled, overrideDescendants, className, style, children, triggerProps: passedTriggerProps, ...passedProps }) {
|
|
14
15
|
const { dirProps } = useGDS();
|
|
15
16
|
const ancestorTooltip = useContext(TooltipContext);
|
|
16
|
-
const
|
|
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;
|
|
17
21
|
const [cssPropsPolyfillRef, cssPropsPolyfillAttributes, cssProps] = useCSSPropsPolyfill(TooltipMeta, { side, align, disabled, overrideDescendants }, { returnPropValues: { side, gap, align, alignOffset, disabled, overrideDescendants } });
|
|
18
22
|
const cssPropsAttributes = getCSSPropsAttributes(TooltipMeta, { side, gap, align, alignOffset, disabled, overrideDescendants }, style);
|
|
19
23
|
const [setCollectedContent, collectedContent] = useDeferredContent();
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
: inheritedContent;
|
|
26
|
-
const triggerDisabled = 'props' in children &&
|
|
27
|
-
children.props &&
|
|
28
|
-
typeof children.props === 'object' &&
|
|
29
|
-
'disabled' in children.props
|
|
30
|
-
? children.props.disabled === true
|
|
31
|
-
: false;
|
|
32
|
-
// Propagate the passed/collected content up for the first tooltip ancestor that needs them
|
|
33
|
-
if (passedContent !== undefined && !cssProps.disabled && !triggerDisabled) {
|
|
34
|
-
ancestorTooltip?.inheritContent(passedContent, 3);
|
|
35
|
-
}
|
|
24
|
+
const content = passedContent !== undefined ? passedContent : collectedContent;
|
|
25
|
+
/**
|
|
26
|
+
* Propagate collected content up till it reaches `Tooltip.Collector`'s closest non-disabled
|
|
27
|
+
* tooltip ancestor with no passed content.
|
|
28
|
+
*/
|
|
36
29
|
const collectContent = (newCollectedContent, priority) => {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
ancestorTooltip?.
|
|
40
|
-
|
|
41
|
-
const inheritContent = (newInheritedContent, priority) => {
|
|
42
|
-
void setInheritedContent(newInheritedContent, priority);
|
|
43
|
-
if (!triggerDisabled)
|
|
44
|
-
ancestorTooltip?.inheritContent(newInheritedContent, 1);
|
|
30
|
+
if (passedContent === undefined || cssProps.disabled) {
|
|
31
|
+
void setCollectedContent(newCollectedContent, priority);
|
|
32
|
+
ancestorTooltip?.collectContent(newCollectedContent, priority);
|
|
33
|
+
}
|
|
45
34
|
};
|
|
46
35
|
const disabledByAncestor = ancestorTooltip?.disableDescendants ?? false;
|
|
47
36
|
const disableDescendants = disabledByAncestor ||
|
|
48
|
-
triggerDisabled ||
|
|
49
37
|
(content !== undefined && !cssProps.disabled && cssProps.overrideDescendants);
|
|
50
|
-
const enabled = Boolean(content) &&
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
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);
|
|
56
51
|
const justOpenedRef = useRef(false);
|
|
57
|
-
const setOpen = (newOpen) => {
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* Notify overridden descendant tooltips of the open state change. This ensures, for example,
|
|
61
|
-
* that moving the cursor away from a `CopyButton` while its "Copied!" tooltip is shown closes
|
|
62
|
-
* the inner tooltip as well (which doesn't happen automatically because tooltips nested under
|
|
63
|
-
* an enabled tooltip are disabled to prevent a lot of weirdness).
|
|
64
|
-
*/
|
|
65
|
-
if (cssProps.overrideDescendants) {
|
|
66
|
-
descendantSetOpen.current?.(newOpen);
|
|
67
|
-
}
|
|
52
|
+
const setOpen = useCallback((newOpen, reason) => {
|
|
53
|
+
privateSetOpen(newOpen, reason);
|
|
68
54
|
if (newOpen) {
|
|
69
55
|
justOpenedRef.current = true;
|
|
70
56
|
window.setTimeout(() => {
|
|
71
57
|
justOpenedRef.current = false;
|
|
72
58
|
}, 0);
|
|
73
59
|
}
|
|
74
|
-
};
|
|
75
|
-
ancestorTooltip?.registerDescendantSetOpen(setOpen);
|
|
60
|
+
}, [privateSetOpen]);
|
|
76
61
|
const openTimeoutRef = useRef(undefined);
|
|
77
|
-
const clearOpenTimeout = () => {
|
|
62
|
+
const clearOpenTimeout = useCallback(() => {
|
|
78
63
|
if (!openTimeoutRef.current)
|
|
79
64
|
return;
|
|
80
65
|
window.clearTimeout(openTimeoutRef.current);
|
|
81
66
|
openTimeoutRef.current = undefined;
|
|
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]);
|
|
86
75
|
return (_jsx(TooltipContext.Provider, { value: {
|
|
87
76
|
collectContent,
|
|
88
|
-
inheritContent,
|
|
89
77
|
disableDescendants,
|
|
90
|
-
registerDescendantSetOpen,
|
|
91
78
|
}, children: _jsxs(Tooltip.Root, { disabled: !enabled, disableHoverablePopup: true, open: open, onOpenChange: (newOpen, eventDetails) => {
|
|
92
79
|
clearOpenTimeout();
|
|
93
80
|
if (!enabled)
|
|
@@ -95,7 +82,7 @@ export function TooltipRoot({ ref: passedRef, content: passedContent, side, gap,
|
|
|
95
82
|
// Disable Base UI's default behavior of closing the tooltip when pressing the trigger
|
|
96
83
|
if (!newOpen && eventDetails.reason === 'trigger-press') {
|
|
97
84
|
// Ensure clicking on the trigger before the tooltip has a chance to open doesn't prevent it from opening
|
|
98
|
-
openTimeoutRef.current = window.setTimeout(() => setOpen(true), OPEN_DELAY);
|
|
85
|
+
openTimeoutRef.current = window.setTimeout(() => setOpen(true, eventDetails.reason), OPEN_DELAY);
|
|
99
86
|
return;
|
|
100
87
|
}
|
|
101
88
|
// Make `overrideDescendants={false}` work as expected (see the `NestedSimultaneous` story)
|
|
@@ -105,21 +92,22 @@ export function TooltipRoot({ ref: passedRef, content: passedContent, side, gap,
|
|
|
105
92
|
(!cssProps.overrideDescendants && triggerRef.current?.matches(':hover')))) {
|
|
106
93
|
return;
|
|
107
94
|
}
|
|
108
|
-
setOpen(newOpen);
|
|
109
|
-
}, children: [_jsx(Tooltip.Trigger, {
|
|
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'
|
|
110
97
|
? 'inline-start'
|
|
111
98
|
: cssProps.side === 'end'
|
|
112
99
|
? 'inline-end'
|
|
113
|
-
: cssProps.side, sideOffset: twToPx(cssProps.gap), align: cssProps.align, alignOffset: twToPx(cssProps.alignOffset), collisionPadding: 8,
|
|
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
|
|
114
102
|
i:origin-(--transform-origin)
|
|
115
103
|
i:data-ending-style:opacity-0
|
|
116
104
|
i:data-starting-style:opacity-0
|
|
117
105
|
i:data-starting-style:data-[side=bottom]:-translate-y-1
|
|
118
|
-
i:data-starting-style:data-[side=end]:-translate-x-1
|
|
119
|
-
i:data-starting-style:data-[side=start]:translate-x-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
|
|
120
108
|
i:data-starting-style:data-[side=top]:translate-y-1
|
|
121
109
|
i:rtl:data-starting-style:data-[side=end]:translate-x-1
|
|
122
|
-
i:rtl:data-starting-style:data-[side=start]:-translate-x-1`, className), ...cssPropsAttributes, ...cssPropsPolyfillAttributes, ...
|
|
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 }) })] }) }));
|
|
123
111
|
}
|
|
124
112
|
function useDeferredContent() {
|
|
125
113
|
const [content, setContent] = useState(undefined);
|
|
@@ -156,9 +144,9 @@ function useDeferredContent() {
|
|
|
156
144
|
* where the information it provides is not otherwise available to screen readers (i.e. different
|
|
157
145
|
* from the trigger's accessible name).
|
|
158
146
|
*/
|
|
159
|
-
export function TooltipContent({
|
|
147
|
+
export function TooltipContent({ children, priority, render }) {
|
|
160
148
|
const ancestorTooltip = useContext(TooltipContext);
|
|
161
|
-
ancestorTooltip?.collectContent(children || null);
|
|
149
|
+
ancestorTooltip?.collectContent(children || null, priority);
|
|
162
150
|
return render ? _jsx(Render, { render: render, children: children }) : children;
|
|
163
151
|
}
|
|
164
152
|
TooltipContent.displayName = 'Tooltip.Content';
|
|
@@ -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,UAAU,EACV,SAAS,EACT,MAAM,EACN,QAAQ,
|
|
1
|
+
{"version":3,"file":"Tooltip.parts.js","sourceRoot":"","sources":["../../src/components/Tooltip.parts.tsx"],"names":[],"mappings":"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"}
|
|
@@ -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"}
|
|
@@ -10,8 +10,7 @@ type LinkComponent = ComponentType<ComponentProps<'a'>> | ComponentType<{
|
|
|
10
10
|
href: string;
|
|
11
11
|
}> | ReactElement | LinkComponentObject | null;
|
|
12
12
|
export type ButtonOrLinkState = {
|
|
13
|
-
|
|
14
|
-
category: 'button' | 'link' | 'other';
|
|
13
|
+
category: 'button' | 'link';
|
|
15
14
|
role: NonNullable<InternalButtonOrLinkProps['role']>;
|
|
16
15
|
disabled: NonNullable<InternalButtonOrLinkProps['disabled']>;
|
|
17
16
|
type?: InternalButtonOrLinkProps['type'];
|
|
@@ -19,6 +18,14 @@ export type ButtonOrLinkState = {
|
|
|
19
18
|
href?: InternalButtonOrLinkProps['href'];
|
|
20
19
|
target?: InternalButtonOrLinkProps['target'];
|
|
21
20
|
};
|
|
21
|
+
export type ButtonOrLinkRenderState = ButtonOrLinkState & {
|
|
22
|
+
Element: ElementType<ButtonOrLinkRenderElementProps>;
|
|
23
|
+
elementProps: ButtonOrLinkRenderElementProps;
|
|
24
|
+
};
|
|
25
|
+
interface ButtonOrLinkRenderElementProps {
|
|
26
|
+
buttonOrLinkState: ButtonOrLinkState;
|
|
27
|
+
[key: string]: unknown;
|
|
28
|
+
}
|
|
22
29
|
export declare namespace InternalButtonOrLinkProps {
|
|
23
30
|
interface DisableableProps {
|
|
24
31
|
disabled?: boolean | 'focusable' | undefined;
|
|
@@ -34,7 +41,7 @@ export declare namespace InternalButtonOrLinkProps {
|
|
|
34
41
|
*/
|
|
35
42
|
inline?: boolean | undefined;
|
|
36
43
|
/** Custom render function to control the rendered element. */
|
|
37
|
-
render?: RenderFn<
|
|
44
|
+
render?: RenderFn<ButtonOrLinkRenderState> | undefined;
|
|
38
45
|
/** Custom component to use for rendering links (e.g. Next.js Link) */
|
|
39
46
|
linkComponent?: LinkComponent | undefined;
|
|
40
47
|
}
|
|
@@ -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;AAOd,OAAO,EAAU,KAAK,QAAQ,
|
|
1
|
+
{"version":3,"file":"ButtonOrLink.parts.d.ts","sourceRoot":"","sources":["../../../src/components/base/ButtonOrLink.parts.tsx"],"names":[],"mappings":"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"}
|
|
@@ -46,7 +46,7 @@ export const ButtonOrLinkRoot = (passedProps) => {
|
|
|
46
46
|
}
|
|
47
47
|
: undefined,
|
|
48
48
|
});
|
|
49
|
-
const { disabled = false, inline = false, linkComponent: passedLinkComponent, render, className: passedClassName, children, ...nonBaseProps } = props;
|
|
49
|
+
const { disabled = false, inline = false, linkComponent: passedLinkComponent, render: passedRender, className: passedClassName, children, ...nonBaseProps } = props;
|
|
50
50
|
const manuallyDisabledEventProps = {
|
|
51
51
|
onClick: undefined,
|
|
52
52
|
onMouseDown: undefined,
|
|
@@ -58,6 +58,15 @@ export const ButtonOrLinkRoot = (passedProps) => {
|
|
|
58
58
|
onKeyDown: undefined,
|
|
59
59
|
onKeyUp: undefined,
|
|
60
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
|
+
};
|
|
61
70
|
const className = cn('gds-button-or-link', passedClassName);
|
|
62
71
|
if (props.href === undefined) {
|
|
63
72
|
const { role = 'button', type = 'button', checked, defaultChecked, href: _href, target: _target, ...remainingProps } = nonBaseProps;
|
|
@@ -65,15 +74,6 @@ export const ButtonOrLinkRoot = (passedProps) => {
|
|
|
65
74
|
// oxlint-disable-next-line no-console
|
|
66
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');
|
|
67
76
|
}
|
|
68
|
-
const Element = inline ? SpanButtonWithContext : ButtonWithContext;
|
|
69
|
-
const state = {
|
|
70
|
-
Element,
|
|
71
|
-
category: 'button',
|
|
72
|
-
role,
|
|
73
|
-
disabled,
|
|
74
|
-
type,
|
|
75
|
-
checked,
|
|
76
|
-
};
|
|
77
77
|
const checkedAttribute = checked === undefined
|
|
78
78
|
? {}
|
|
79
79
|
: ((checked) => {
|
|
@@ -95,21 +95,19 @@ export const ButtonOrLinkRoot = (passedProps) => {
|
|
|
95
95
|
...checkedAttribute,
|
|
96
96
|
className,
|
|
97
97
|
children,
|
|
98
|
-
buttonOrLinkState: state,
|
|
99
98
|
...remainingProps,
|
|
100
99
|
...((disabled === 'focusable' || (disabled && inline)) && manuallyDisabledEventProps),
|
|
101
100
|
};
|
|
102
|
-
|
|
101
|
+
const buttonOrLinkState = {
|
|
102
|
+
category: 'button',
|
|
103
|
+
role,
|
|
104
|
+
disabled,
|
|
105
|
+
type,
|
|
106
|
+
checked,
|
|
107
|
+
};
|
|
108
|
+
return render(inline ? SpanButtonWithContext : ButtonWithContext, buttonProps, buttonOrLinkState);
|
|
103
109
|
}
|
|
104
110
|
const { href, target, role = 'link', rel = target === '_blank' ? 'noopener noreferrer' : undefined, type: _type, checked: _checked, defaultChecked: _defaultChecked, ...remainingProps } = nonBaseProps;
|
|
105
|
-
const state = {
|
|
106
|
-
Element: 'a',
|
|
107
|
-
category: 'link',
|
|
108
|
-
role,
|
|
109
|
-
disabled,
|
|
110
|
-
href,
|
|
111
|
-
target,
|
|
112
|
-
};
|
|
113
111
|
let linkProps = {
|
|
114
112
|
role: disabled || role !== 'link' ? role : undefined,
|
|
115
113
|
href: !disabled ? href : undefined,
|
|
@@ -136,23 +134,17 @@ export const ButtonOrLinkRoot = (passedProps) => {
|
|
|
136
134
|
linkComponent = passedLinkComponent;
|
|
137
135
|
}
|
|
138
136
|
}
|
|
137
|
+
const buttonOrLinkState = {
|
|
138
|
+
category: 'link',
|
|
139
|
+
role,
|
|
140
|
+
disabled,
|
|
141
|
+
href,
|
|
142
|
+
target,
|
|
143
|
+
};
|
|
139
144
|
if (isValidElement(linkComponent)) {
|
|
140
|
-
|
|
141
|
-
state.Element = Element;
|
|
142
|
-
const elementProps = {
|
|
143
|
-
...linkProps,
|
|
144
|
-
render: linkComponent,
|
|
145
|
-
buttonOrLinkState: state,
|
|
146
|
-
};
|
|
147
|
-
return render ? render(elementProps, state) : _jsx(Element, { ...elementProps });
|
|
145
|
+
return render(RenderWithContext, linkProps, buttonOrLinkState, { render: linkComponent });
|
|
148
146
|
}
|
|
149
|
-
|
|
150
|
-
state.Element = Element;
|
|
151
|
-
const elementProps = {
|
|
152
|
-
...linkProps,
|
|
153
|
-
buttonOrLinkState: state,
|
|
154
|
-
};
|
|
155
|
-
return render ? render(elementProps, state) : _jsx(Element, { ...elementProps });
|
|
147
|
+
return render(linkComponent && linkComponent !== 'a' ? withContext(linkComponent) : AnchorWithContext, linkProps, buttonOrLinkState);
|
|
156
148
|
};
|
|
157
149
|
ButtonOrLinkRoot.displayName = 'ButtonOrLink';
|
|
158
150
|
export const ButtonOrLinkConfig = ({ onClick: passedOnClick, transformProps: passedTransformProps, children, }) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ButtonOrLink.parts.js","sourceRoot":"","sources":["../../../src/components/base/ButtonOrLink.parts.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EACL,aAAa,EACb,cAAc,EACd,UAAU,EACV,OAAO,EACP,MAAM,EACN,QAAQ,GAOT,MAAM,OAAO,CAAA;AACd,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAGtC,OAAO,EAAE,EAAE,EAAE,MAAM,sBAAsB,CAAA;AACzC,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"ButtonOrLink.parts.js","sourceRoot":"","sources":["../../../src/components/base/ButtonOrLink.parts.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,21 +1,38 @@
|
|
|
1
1
|
import type { ComponentProps, ElementType } from 'react';
|
|
2
|
-
import { type InternalButtonOrLinkProps, type OmitInternalButtonOrLinkProps } from './ButtonOrLink.tsx';
|
|
2
|
+
import { type ButtonOrLinkRenderState, type InternalButtonOrLinkProps, type OmitInternalButtonOrLinkProps } from './ButtonOrLink.tsx';
|
|
3
|
+
import type { RenderFn } from './Render.tsx';
|
|
4
|
+
type OtherElementRenderState = {
|
|
5
|
+
category: 'other';
|
|
6
|
+
role: ButtonOrLinkRenderState['role'];
|
|
7
|
+
disabled: false;
|
|
8
|
+
type?: undefined;
|
|
9
|
+
checked?: undefined;
|
|
10
|
+
href?: undefined;
|
|
11
|
+
target?: undefined;
|
|
12
|
+
Element: ButtonOrLinkRenderState['Element'];
|
|
13
|
+
elementProps: ButtonOrLinkRenderState['elementProps'];
|
|
14
|
+
};
|
|
15
|
+
type MaybeButtonOrLinkRenderState = ButtonOrLinkRenderState | OtherElementRenderState;
|
|
3
16
|
export declare namespace MaybeButtonOrLinkProps {
|
|
4
17
|
type DisableableProps = InternalButtonOrLinkProps.DisableableProps;
|
|
5
18
|
type ButtonProps = OmitInternalButtonOrLinkProps<InternalButtonOrLinkProps.ButtonProps> & {
|
|
6
19
|
onClick: NonNullable<InternalButtonOrLinkProps.ButtonProps['onClick']>;
|
|
7
20
|
as?: undefined;
|
|
21
|
+
render?: RenderFn<MaybeButtonOrLinkRenderState> | undefined;
|
|
8
22
|
};
|
|
9
23
|
type ToggleButtonProps = OmitInternalButtonOrLinkProps<InternalButtonOrLinkProps.ToggleButtonProps> & {
|
|
10
24
|
onClick: NonNullable<InternalButtonOrLinkProps.ToggleButtonProps['onClick']>;
|
|
11
25
|
as?: undefined;
|
|
26
|
+
render?: RenderFn<MaybeButtonOrLinkRenderState> | undefined;
|
|
12
27
|
};
|
|
13
28
|
type LinkProps = OmitInternalButtonOrLinkProps<InternalButtonOrLinkProps.LinkProps> & {
|
|
14
29
|
as?: undefined;
|
|
30
|
+
render?: RenderFn<MaybeButtonOrLinkRenderState> | undefined;
|
|
15
31
|
};
|
|
16
32
|
type OtherElementProps = OmitInternalButtonOrLinkProps<InternalButtonOrLinkProps.BaseProps> & ComponentProps<'span'> & {
|
|
17
33
|
onClick?: InternalButtonOrLinkProps.ButtonProps['onClick'];
|
|
18
34
|
as?: ElementType | undefined;
|
|
35
|
+
render?: RenderFn<MaybeButtonOrLinkRenderState> | undefined;
|
|
19
36
|
disabled?: undefined;
|
|
20
37
|
type?: undefined;
|
|
21
38
|
checked?: undefined;
|
|
@@ -24,7 +41,7 @@ export declare namespace MaybeButtonOrLinkProps {
|
|
|
24
41
|
};
|
|
25
42
|
}
|
|
26
43
|
export type MaybeButtonOrLinkProps = MaybeButtonOrLinkProps.ButtonProps | MaybeButtonOrLinkProps.ToggleButtonProps | MaybeButtonOrLinkProps.LinkProps | MaybeButtonOrLinkProps.OtherElementProps;
|
|
27
|
-
type InternalMaybeButtonOrLinkProps = MaybeButtonOrLinkProps & InternalButtonOrLinkProps.DisableableProps & InternalButtonOrLinkProps.BaseProps
|
|
44
|
+
type InternalMaybeButtonOrLinkProps = MaybeButtonOrLinkProps & InternalButtonOrLinkProps.DisableableProps & Omit<InternalButtonOrLinkProps.BaseProps, 'render'>;
|
|
28
45
|
/**
|
|
29
46
|
* Renders a `ButtonOrLink` if one of `href` or `onClick` is passed along with no `as`. Otherwise,
|
|
30
47
|
* renders the element type passed in `as` (defaulting to `span`).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MaybeButtonOrLink.d.ts","sourceRoot":"","sources":["../../../src/components/base/MaybeButtonOrLink.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AAExD,OAAO,
|
|
1
|
+
{"version":3,"file":"MaybeButtonOrLink.d.ts","sourceRoot":"","sources":["../../../src/components/base/MaybeButtonOrLink.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,OAAO,CAAA;AAExD,OAAO,EAEL,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,EAC9B,KAAK,6BAA6B,EACnC,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAA;AAE5C,KAAK,uBAAuB,GAAG;IAC7B,QAAQ,EAAE,OAAO,CAAA;IACjB,IAAI,EAAE,uBAAuB,CAAC,MAAM,CAAC,CAAA;IACrC,QAAQ,EAAE,KAAK,CAAA;IACf,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB,IAAI,CAAC,EAAE,SAAS,CAAA;IAChB,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,OAAO,EAAE,uBAAuB,CAAC,SAAS,CAAC,CAAA;IAC3C,YAAY,EAAE,uBAAuB,CAAC,cAAc,CAAC,CAAA;CACtD,CAAA;AAED,KAAK,4BAA4B,GAAG,uBAAuB,GAAG,uBAAuB,CAAA;AAErF,MAAM,CAAC,OAAO,WAAW,sBAAsB,CAAC;IAC9C,KAAY,gBAAgB,GAAG,yBAAyB,CAAC,gBAAgB,CAAA;IACzE,KAAY,WAAW,GAAG,6BAA6B,CAAC,yBAAyB,CAAC,WAAW,CAAC,GAAG;QAC/F,OAAO,EAAE,WAAW,CAAC,yBAAyB,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAA;QACtE,EAAE,CAAC,EAAE,SAAS,CAAA;QACd,MAAM,CAAC,EAAE,QAAQ,CAAC,4BAA4B,CAAC,GAAG,SAAS,CAAA;KAC5D,CAAA;IACD,KAAY,iBAAiB,GAC3B,6BAA6B,CAAC,yBAAyB,CAAC,iBAAiB,CAAC,GAAG;QAC3E,OAAO,EAAE,WAAW,CAAC,yBAAyB,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,CAAA;QAC5E,EAAE,CAAC,EAAE,SAAS,CAAA;QACd,MAAM,CAAC,EAAE,QAAQ,CAAC,4BAA4B,CAAC,GAAG,SAAS,CAAA;KAC5D,CAAA;IACH,KAAY,SAAS,GAAG,6BAA6B,CAAC,yBAAyB,CAAC,SAAS,CAAC,GAAG;QAC3F,EAAE,CAAC,EAAE,SAAS,CAAA;QACd,MAAM,CAAC,EAAE,QAAQ,CAAC,4BAA4B,CAAC,GAAG,SAAS,CAAA;KAC5D,CAAA;IACD,KAAY,iBAAiB,GAC3B,6BAA6B,CAAC,yBAAyB,CAAC,SAAS,CAAC,GAChE,cAAc,CAAC,MAAM,CAAC,GAAG;QACvB,OAAO,CAAC,EAAE,yBAAyB,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;QAC1D,EAAE,CAAC,EAAE,WAAW,GAAG,SAAS,CAAA;QAC5B,MAAM,CAAC,EAAE,QAAQ,CAAC,4BAA4B,CAAC,GAAG,SAAS,CAAA;QAC3D,QAAQ,CAAC,EAAE,SAAS,CAAA;QACpB,IAAI,CAAC,EAAE,SAAS,CAAA;QAChB,OAAO,CAAC,EAAE,SAAS,CAAA;QACnB,IAAI,CAAC,EAAE,SAAS,CAAA;QAChB,MAAM,CAAC,EAAE,SAAS,CAAA;KACnB,CAAA;CACN;AAED,MAAM,MAAM,sBAAsB,GAC9B,sBAAsB,CAAC,WAAW,GAClC,sBAAsB,CAAC,iBAAiB,GACxC,sBAAsB,CAAC,SAAS,GAChC,sBAAsB,CAAC,iBAAiB,CAAA;AAE5C,KAAK,8BAA8B,GAAG,sBAAsB,GAC1D,yBAAyB,CAAC,gBAAgB,GAC1C,IAAI,CAAC,yBAAyB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;AAErD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,8BAA8B,2CA4BtE"}
|
|
@@ -11,13 +11,15 @@ export function MaybeButtonOrLink(props) {
|
|
|
11
11
|
}
|
|
12
12
|
else {
|
|
13
13
|
const { as: Element = 'span', render, disabled: _disabled, inline: _inline, linkComponent: _linkComponent, type: _type, checked: _checked, href: _href, target: _target, ...otherElementProps } = props;
|
|
14
|
-
const
|
|
15
|
-
Element,
|
|
14
|
+
const renderState = {
|
|
16
15
|
category: 'other',
|
|
17
16
|
role: props.role ?? 'none',
|
|
18
17
|
disabled: false,
|
|
18
|
+
// The types lie to ensure there's a type error if consumers forget to spread `elementProps` on `Element`
|
|
19
|
+
Element: Element,
|
|
20
|
+
elementProps: {},
|
|
19
21
|
};
|
|
20
|
-
return render ? render(otherElementProps,
|
|
22
|
+
return render ? render(otherElementProps, renderState) : _jsx(Element, { ...otherElementProps });
|
|
21
23
|
}
|
|
22
24
|
}
|
|
23
25
|
//# sourceMappingURL=MaybeButtonOrLink.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MaybeButtonOrLink.js","sourceRoot":"","sources":["../../../src/components/base/MaybeButtonOrLink.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAIZ,OAAO,EACL,YAAY,GAIb,MAAM,mBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"MaybeButtonOrLink.js","sourceRoot":"","sources":["../../../src/components/base/MaybeButtonOrLink.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAIZ,OAAO,EACL,YAAY,GAIb,MAAM,mBAAoB,CAAA;AA0D3B;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,KAAqC;IACrE,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,IAAI,KAAK,CAAC,EAAE,KAAK,SAAS,EAAE,CAAC;QACxF,OAAO,KAAC,YAAY,OAAM,KAAmC,GAAI,CAAA;IACnE,CAAC;SAAM,CAAC;QACN,MAAM,EACJ,EAAE,EAAE,OAAO,GAAG,MAAM,EACpB,MAAM,EACN,QAAQ,EAAE,SAAS,EACnB,MAAM,EAAE,OAAO,EACf,aAAa,EAAE,cAAc,EAC7B,IAAI,EAAE,KAAK,EACX,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,KAAK,EACX,MAAM,EAAE,OAAO,EACf,GAAG,iBAAiB,EACrB,GAAG,KAAK,CAAA;QAET,MAAM,WAAW,GAA4B;YAC3C,QAAQ,EAAE,OAAO;YACjB,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,MAAM;YAC1B,QAAQ,EAAE,KAAK;YACf,yGAAyG;YACzG,OAAO,EAAE,OAA6C;YACtD,YAAY,EAAE,EAA6C;SAC5D,CAAA;QAED,OAAO,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,KAAC,OAAO,OAAK,iBAAiB,GAAI,CAAA;IAC7F,CAAC;AACH,CAAC"}
|