@graphprotocol/gds-react 0.2.2 → 0.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/Address.d.ts +2 -2
- package/dist/components/Address.d.ts.map +1 -1
- package/dist/components/Address.js.map +1 -1
- package/dist/components/Avatar.d.ts +2 -2
- package/dist/components/Avatar.d.ts.map +1 -1
- package/dist/components/Avatar.js.map +1 -1
- package/dist/components/Breadcrumbs.parts.d.ts +2 -2
- package/dist/components/Breadcrumbs.parts.d.ts.map +1 -1
- package/dist/components/Breadcrumbs.parts.js.map +1 -1
- package/dist/components/Button.d.ts +2 -2
- package/dist/components/Button.d.ts.map +1 -1
- package/dist/components/Button.js.map +1 -1
- package/dist/components/Card.d.ts +4 -6
- package/dist/components/Card.d.ts.map +1 -1
- package/dist/components/Card.js.map +1 -1
- package/dist/components/Chip.parts.d.ts +2 -2
- package/dist/components/Chip.parts.d.ts.map +1 -1
- package/dist/components/Chip.parts.js.map +1 -1
- package/dist/components/Cluster.d.ts +4 -6
- package/dist/components/Cluster.d.ts.map +1 -1
- package/dist/components/Cluster.js.map +1 -1
- package/dist/components/Icon.d.ts +2 -1
- package/dist/components/Icon.d.ts.map +1 -1
- package/dist/components/Icon.js.map +1 -1
- package/dist/components/Menu.parts.d.ts.map +1 -1
- package/dist/components/Menu.parts.js +112 -106
- 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 +2 -2
- package/dist/components/Modal.parts.js.map +1 -1
- package/dist/components/Pane.parts.d.ts.map +1 -1
- package/dist/components/Pane.parts.js +8 -5
- package/dist/components/Pane.parts.js.map +1 -1
- package/dist/components/Tooltip.parts.d.ts.map +1 -1
- package/dist/components/Tooltip.parts.js +7 -6
- package/dist/components/Tooltip.parts.js.map +1 -1
- package/dist/components/base/ButtonOrLink.parts.d.ts.map +1 -1
- package/dist/components/base/ButtonOrLink.parts.js.map +1 -1
- package/dist/components/index.d.ts +1 -1
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js.map +1 -1
- package/package.json +18 -18
- package/src/components/Address.tsx +3 -5
- package/src/components/Avatar.tsx +3 -5
- package/src/components/Breadcrumbs.parts.tsx +7 -5
- package/src/components/Button.tsx +3 -2
- package/src/components/Card.tsx +3 -5
- package/src/components/Chip.parts.tsx +3 -2
- package/src/components/Cluster.tsx +5 -8
- package/src/components/Icon.tsx +3 -1
- package/src/components/Menu.parts.tsx +37 -6
- package/src/components/Modal.parts.tsx +3 -2
- package/src/components/Pane.parts.tsx +13 -5
- package/src/components/Tooltip.parts.tsx +18 -15
- package/src/components/base/ButtonOrLink.parts.tsx +3 -6
- package/src/components/index.ts +1 -1
|
@@ -123,8 +123,8 @@ export function TooltipRoot({
|
|
|
123
123
|
const triggerPassedRef = useMergedRefs(
|
|
124
124
|
/**
|
|
125
125
|
* Conditionally setting the ref to force the tooltip to refresh its position when `enabled`
|
|
126
|
-
* changes, preventing it from moving to the
|
|
127
|
-
* `CopyButton` returns to its default tooltip).
|
|
126
|
+
* changes, preventing it from moving to the top left corner of the viewport in some cases (e.g.
|
|
127
|
+
* when `CopyButton` returns to its default tooltip).
|
|
128
128
|
*/
|
|
129
129
|
enabled ? triggerRef : undefined,
|
|
130
130
|
(passedTriggerProps === 'forward' ? passedRef : passedTriggerProps?.ref) as
|
|
@@ -207,10 +207,22 @@ export function TooltipRoot({
|
|
|
207
207
|
render={children}
|
|
208
208
|
{...renderProps}
|
|
209
209
|
disabled={triggerDisabled}
|
|
210
|
-
onClick={triggerProps?.onClick} // Prevent the tooltip
|
|
210
|
+
onClick={triggerProps?.onClick} // Prevent re-opening the tooltip after clicking e.g. a `Menu` trigger
|
|
211
211
|
/>
|
|
212
212
|
)}
|
|
213
213
|
/>
|
|
214
|
+
{/* Ensure changes to CSS props are detected even when the tooltip is not mounted */}
|
|
215
|
+
<Portal>
|
|
216
|
+
<span
|
|
217
|
+
ref={cssPropsPolyfillRef}
|
|
218
|
+
className={cn('gds-tooltip i:invisible i:block', className)}
|
|
219
|
+
{...cssPropsAttributes}
|
|
220
|
+
{...cssPropsPolyfillAttributes}
|
|
221
|
+
{...dirProps}
|
|
222
|
+
{...popupProps}
|
|
223
|
+
hidden={undefined}
|
|
224
|
+
/>
|
|
225
|
+
</Portal>
|
|
214
226
|
<Tooltip.Portal>
|
|
215
227
|
<Tooltip.Positioner
|
|
216
228
|
key={getReactNodeKey(content)} // Refresh the tooltip's position when the content changes (see `WithDynamicContent` story)
|
|
@@ -224,9 +236,10 @@ export function TooltipRoot({
|
|
|
224
236
|
sideOffset={twToPx(cssProps.gap)}
|
|
225
237
|
align={cssProps.align}
|
|
226
238
|
alignOffset={twToPx(cssProps.alignOffset)}
|
|
227
|
-
collisionPadding={
|
|
228
|
-
disableAnchorTracking //
|
|
239
|
+
collisionPadding={4}
|
|
240
|
+
disableAnchorTracking // Feels weird for a tooltip to follow e.g. a pane's X button when closing the pane
|
|
229
241
|
{...dirProps}
|
|
242
|
+
className="i:data-anchor-hidden:hidden" // Prevent moving to the top left corner when the trigger is hidden or unmounted
|
|
230
243
|
>
|
|
231
244
|
<Tooltip.Popup
|
|
232
245
|
ref={popupRef}
|
|
@@ -251,16 +264,6 @@ export function TooltipRoot({
|
|
|
251
264
|
</Tooltip.Popup>
|
|
252
265
|
</Tooltip.Positioner>
|
|
253
266
|
</Tooltip.Portal>
|
|
254
|
-
{/* Ensure changes to CSS props are detected even when the tooltip is not mounted */}
|
|
255
|
-
<Portal>
|
|
256
|
-
<span
|
|
257
|
-
ref={cssPropsPolyfillRef}
|
|
258
|
-
className={cn('gds-tooltip i:invisible', className)}
|
|
259
|
-
{...cssPropsAttributes}
|
|
260
|
-
{...cssPropsPolyfillAttributes}
|
|
261
|
-
{...popupProps}
|
|
262
|
-
/>
|
|
263
|
-
</Portal>
|
|
264
267
|
</Tooltip.Root>
|
|
265
268
|
</TooltipContext.Provider>
|
|
266
269
|
)
|
|
@@ -135,15 +135,12 @@ type WithContextComponent<T extends ElementType> = (
|
|
|
135
135
|
props: Merge<ComponentProps<T>, ButtonOrLinkRenderElementProps>,
|
|
136
136
|
) => ReactElement
|
|
137
137
|
|
|
138
|
-
const memoizedWithContextComponents = new Map<ElementType,
|
|
138
|
+
const memoizedWithContextComponents = new Map<ElementType, unknown>()
|
|
139
139
|
|
|
140
140
|
function withContext<T extends ElementType>(Element: T): WithContextComponent<T> {
|
|
141
141
|
const cached = memoizedWithContextComponents.get(Element)
|
|
142
|
-
if (cached) return cached
|
|
143
|
-
const newWithContextComponent: WithContextComponent<
|
|
144
|
-
buttonOrLinkState,
|
|
145
|
-
...props
|
|
146
|
-
}) => (
|
|
142
|
+
if (cached) return cached as WithContextComponent<T>
|
|
143
|
+
const newWithContextComponent: WithContextComponent<T> = ({ buttonOrLinkState, ...props }) => (
|
|
147
144
|
<ButtonOrLinkContext.Provider value={buttonOrLinkState}>
|
|
148
145
|
<Element {...(props as ComponentProps<T>)} />
|
|
149
146
|
</ButtonOrLinkContext.Provider>
|
package/src/components/index.ts
CHANGED
|
@@ -34,7 +34,7 @@ export {
|
|
|
34
34
|
export { DescriptionListItemMeta, DescriptionListMeta } from './DescriptionList.meta.ts'
|
|
35
35
|
export { Divider, type DividerProps } from './Divider.tsx'
|
|
36
36
|
export { DividerMeta } from './Divider.meta.ts'
|
|
37
|
-
export { Icon, type IconProps, type IconPropsWithSrc } from './Icon.tsx'
|
|
37
|
+
export { Icon, type IconProps, type IconSrc, type IconPropsWithSrc } from './Icon.tsx'
|
|
38
38
|
export { IconMeta } from './Icon.meta.ts'
|
|
39
39
|
export { Input, type InputProps, type InputState } from './Input.tsx'
|
|
40
40
|
export { InputMeta } from './Input.meta.ts'
|