@dxos/react-ui-text-tooltip 0.8.2-main.fbd8ed0 → 0.8.2-staging.4d6ad0f

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.
@@ -1,29 +1,35 @@
1
1
  // packages/ui/react-ui-text-tooltip/src/components/TextTooltip.tsx
2
+ import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
2
3
  import { useComposedRefs } from "@radix-ui/react-compose-refs";
3
4
  import React, { forwardRef, useCallback, useRef } from "react";
4
5
  import { Tooltip } from "@dxos/react-ui";
5
6
  var TextTooltip = /* @__PURE__ */ forwardRef(({ __scopeTooltip, text, children, onlyWhenTruncating, asChild = true, side, truncateQuery, ...props }, forwardedRef) => {
6
- const content = useRef(null);
7
- const ref = useComposedRefs(content, forwardedRef);
8
- const handleInteract = useCallback((event) => {
9
- if (onlyWhenTruncating && content.current) {
10
- const element = truncateQuery ? content.current.querySelector(truncateQuery) : content.current;
11
- if (!element || element.scrollWidth <= element.offsetWidth) {
12
- event.preventDefault();
7
+ var _effect = _useSignals();
8
+ try {
9
+ const content = useRef(null);
10
+ const ref = useComposedRefs(content, forwardedRef);
11
+ const handleInteract = useCallback((event) => {
12
+ if (onlyWhenTruncating && content.current) {
13
+ const element = truncateQuery ? content.current.querySelector(truncateQuery) : content.current;
14
+ if (!element || element.scrollWidth <= element.offsetWidth) {
15
+ event.preventDefault();
16
+ }
13
17
  }
14
- }
15
- }, [
16
- onlyWhenTruncating,
17
- truncateQuery
18
- ]);
19
- return /* @__PURE__ */ React.createElement(Tooltip.Trigger, {
20
- asChild,
21
- ...props,
22
- content: text,
23
- side,
24
- onInteract: handleInteract,
25
- ref
26
- }, children);
18
+ }, [
19
+ onlyWhenTruncating,
20
+ truncateQuery
21
+ ]);
22
+ return /* @__PURE__ */ React.createElement(Tooltip.Trigger, {
23
+ asChild,
24
+ ...props,
25
+ content: text,
26
+ side,
27
+ onInteract: handleInteract,
28
+ ref
29
+ }, children);
30
+ } finally {
31
+ _effect.f();
32
+ }
27
33
  });
28
34
  export {
29
35
  TextTooltip
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/TextTooltip.tsx"],
4
4
  "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport React, {\n type ComponentPropsWithoutRef,\n forwardRef,\n type PropsWithChildren,\n type SyntheticEvent,\n useCallback,\n useRef,\n} from 'react';\n\nimport { Tooltip, type TooltipScopedProps, type TooltipTriggerProps } from '@dxos/react-ui';\n\nexport type TextTooltipProps = PropsWithChildren<\n {\n text: string;\n asChild?: boolean;\n onlyWhenTruncating?: boolean;\n truncateQuery?: string;\n } & Pick<TooltipTriggerProps, 'side'> &\n ComponentPropsWithoutRef<'button'>\n>;\n\nexport const TextTooltip = forwardRef<HTMLButtonElement, TooltipScopedProps<TextTooltipProps>>(\n (\n { __scopeTooltip, text, children, onlyWhenTruncating, asChild = true, side, truncateQuery, ...props },\n forwardedRef,\n ) => {\n const content = useRef<HTMLButtonElement | null>(null);\n const ref = useComposedRefs(content, forwardedRef);\n const handleInteract = useCallback(\n (event: SyntheticEvent) => {\n if (onlyWhenTruncating && content.current) {\n const element: HTMLElement | null = truncateQuery\n ? content.current.querySelector(truncateQuery)\n : content.current;\n if (!element || element.scrollWidth <= element.offsetWidth) {\n event.preventDefault();\n }\n }\n },\n [onlyWhenTruncating, truncateQuery],\n );\n return (\n <Tooltip.Trigger asChild={asChild} {...props} content={text} side={side} onInteract={handleInteract} ref={ref}>\n {children}\n </Tooltip.Trigger>\n );\n },\n);\n"],
5
- "mappings": ";AAIA,SAASA,uBAAuB;AAChC,OAAOC,SAELC,YAGAC,aACAC,cACK;AAEP,SAASC,eAAkE;AAYpE,IAAMC,cAAcC,2BACzB,CACE,EAAEC,gBAAgBC,MAAMC,UAAUC,oBAAoBC,UAAU,MAAMC,MAAMC,eAAe,GAAGC,MAAAA,GAC9FC,iBAAAA;AAEA,QAAMC,UAAUC,OAAiC,IAAA;AACjD,QAAMC,MAAMC,gBAAgBH,SAASD,YAAAA;AACrC,QAAMK,iBAAiBC,YACrB,CAACC,UAAAA;AACC,QAAIZ,sBAAsBM,QAAQO,SAAS;AACzC,YAAMC,UAA8BX,gBAChCG,QAAQO,QAAQE,cAAcZ,aAAAA,IAC9BG,QAAQO;AACZ,UAAI,CAACC,WAAWA,QAAQE,eAAeF,QAAQG,aAAa;AAC1DL,cAAMM,eAAc;MACtB;IACF;EACF,GACA;IAAClB;IAAoBG;GAAc;AAErC,SACE,sBAAA,cAACgB,QAAQC,SAAO;IAACnB;IAAmB,GAAGG;IAAOE,SAASR;IAAMI;IAAYmB,YAAYX;IAAgBF;KAClGT,QAAAA;AAGP,CAAA;",
5
+ "mappings": ";;AAIA,SAASA,uBAAuB;AAChC,OAAOC,SAELC,YAGAC,aACAC,cACK;AAEP,SAASC,eAAkE;AAYpE,IAAMC,cAAcC,2BACzB,CACE,EAAEC,gBAAgBC,MAAMC,UAAUC,oBAAoBC,UAAU,MAAMC,MAAMC,eAAe,GAAGC,MAAAA,GAC9FC,iBAAAA;;;AAEA,UAAMC,UAAUC,OAAiC,IAAA;AACjD,UAAMC,MAAMC,gBAAgBH,SAASD,YAAAA;AACrC,UAAMK,iBAAiBC,YACrB,CAACC,UAAAA;AACC,UAAIZ,sBAAsBM,QAAQO,SAAS;AACzC,cAAMC,UAA8BX,gBAChCG,QAAQO,QAAQE,cAAcZ,aAAAA,IAC9BG,QAAQO;AACZ,YAAI,CAACC,WAAWA,QAAQE,eAAeF,QAAQG,aAAa;AAC1DL,gBAAMM,eAAc;QACtB;MACF;IACF,GACA;MAAClB;MAAoBG;KAAc;AAErC,WACE,sBAAA,cAACgB,QAAQC,SAAO;MAACnB;MAAmB,GAAGG;MAAOE,SAASR;MAAMI;MAAYmB,YAAYX;MAAgBF;OAClGT,QAAAA;;;;AAGP,CAAA;",
6
6
  "names": ["useComposedRefs", "React", "forwardRef", "useCallback", "useRef", "Tooltip", "TextTooltip", "forwardRef", "__scopeTooltip", "text", "children", "onlyWhenTruncating", "asChild", "side", "truncateQuery", "props", "forwardedRef", "content", "useRef", "ref", "useComposedRefs", "handleInteract", "useCallback", "event", "current", "element", "querySelector", "scrollWidth", "offsetWidth", "preventDefault", "Tooltip", "Trigger", "onInteract"]
7
7
  }
@@ -1 +1 @@
1
- {"inputs":{"packages/ui/react-ui-text-tooltip/src/components/TextTooltip.tsx":{"bytes":5078,"imports":[{"path":"@radix-ui/react-compose-refs","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-text-tooltip/src/components/index.ts":{"bytes":527,"imports":[{"path":"packages/ui/react-ui-text-tooltip/src/components/TextTooltip.tsx","kind":"import-statement","original":"./TextTooltip"}],"format":"esm"},"packages/ui/react-ui-text-tooltip/src/index.ts":{"bytes":511,"imports":[{"path":"packages/ui/react-ui-text-tooltip/src/components/index.ts","kind":"import-statement","original":"./components"}],"format":"esm"}},"outputs":{"packages/ui/react-ui-text-tooltip/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2821},"packages/ui/react-ui-text-tooltip/dist/lib/browser/index.mjs":{"imports":[{"path":"@radix-ui/react-compose-refs","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true}],"exports":["TextTooltip"],"entryPoint":"packages/ui/react-ui-text-tooltip/src/index.ts","inputs":{"packages/ui/react-ui-text-tooltip/src/components/TextTooltip.tsx":{"bytesInOutput":974},"packages/ui/react-ui-text-tooltip/src/components/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-text-tooltip/src/index.ts":{"bytesInOutput":0}},"bytes":1103}}}
1
+ {"inputs":{"packages/ui/react-ui-text-tooltip/src/components/TextTooltip.tsx":{"bytes":5276,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"@radix-ui/react-compose-refs","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-text-tooltip/src/components/index.ts":{"bytes":495,"imports":[{"path":"packages/ui/react-ui-text-tooltip/src/components/TextTooltip.tsx","kind":"import-statement","original":"./TextTooltip"}],"format":"esm"},"packages/ui/react-ui-text-tooltip/src/index.ts":{"bytes":479,"imports":[{"path":"packages/ui/react-ui-text-tooltip/src/components/index.ts","kind":"import-statement","original":"./components"}],"format":"esm"}},"outputs":{"packages/ui/react-ui-text-tooltip/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2828},"packages/ui/react-ui-text-tooltip/dist/lib/browser/index.mjs":{"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"@radix-ui/react-compose-refs","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true}],"exports":["TextTooltip"],"entryPoint":"packages/ui/react-ui-text-tooltip/src/index.ts","inputs":{"packages/ui/react-ui-text-tooltip/src/components/TextTooltip.tsx":{"bytesInOutput":1171},"packages/ui/react-ui-text-tooltip/src/components/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-text-tooltip/src/index.ts":{"bytesInOutput":0}},"bytes":1300}}}
@@ -31,31 +31,37 @@ __export(node_exports, {
31
31
  TextTooltip: () => TextTooltip
32
32
  });
33
33
  module.exports = __toCommonJS(node_exports);
34
+ var import_tracking = require("@preact-signals/safe-react/tracking");
34
35
  var import_react_compose_refs = require("@radix-ui/react-compose-refs");
35
36
  var import_react = __toESM(require("react"));
36
37
  var import_react_ui = require("@dxos/react-ui");
37
38
  var TextTooltip = /* @__PURE__ */ (0, import_react.forwardRef)(({ __scopeTooltip, text, children, onlyWhenTruncating, asChild = true, side, truncateQuery, ...props }, forwardedRef) => {
38
- const content = (0, import_react.useRef)(null);
39
- const ref = (0, import_react_compose_refs.useComposedRefs)(content, forwardedRef);
40
- const handleInteract = (0, import_react.useCallback)((event) => {
41
- if (onlyWhenTruncating && content.current) {
42
- const element = truncateQuery ? content.current.querySelector(truncateQuery) : content.current;
43
- if (!element || element.scrollWidth <= element.offsetWidth) {
44
- event.preventDefault();
39
+ var _effect = (0, import_tracking.useSignals)();
40
+ try {
41
+ const content = (0, import_react.useRef)(null);
42
+ const ref = (0, import_react_compose_refs.useComposedRefs)(content, forwardedRef);
43
+ const handleInteract = (0, import_react.useCallback)((event) => {
44
+ if (onlyWhenTruncating && content.current) {
45
+ const element = truncateQuery ? content.current.querySelector(truncateQuery) : content.current;
46
+ if (!element || element.scrollWidth <= element.offsetWidth) {
47
+ event.preventDefault();
48
+ }
45
49
  }
46
- }
47
- }, [
48
- onlyWhenTruncating,
49
- truncateQuery
50
- ]);
51
- return /* @__PURE__ */ import_react.default.createElement(import_react_ui.Tooltip.Trigger, {
52
- asChild,
53
- ...props,
54
- content: text,
55
- side,
56
- onInteract: handleInteract,
57
- ref
58
- }, children);
50
+ }, [
51
+ onlyWhenTruncating,
52
+ truncateQuery
53
+ ]);
54
+ return /* @__PURE__ */ import_react.default.createElement(import_react_ui.Tooltip.Trigger, {
55
+ asChild,
56
+ ...props,
57
+ content: text,
58
+ side,
59
+ onInteract: handleInteract,
60
+ ref
61
+ }, children);
62
+ } finally {
63
+ _effect.f();
64
+ }
59
65
  });
60
66
  // Annotate the CommonJS export names for ESM import in node:
61
67
  0 && (module.exports = {
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/TextTooltip.tsx"],
4
4
  "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport React, {\n type ComponentPropsWithoutRef,\n forwardRef,\n type PropsWithChildren,\n type SyntheticEvent,\n useCallback,\n useRef,\n} from 'react';\n\nimport { Tooltip, type TooltipScopedProps, type TooltipTriggerProps } from '@dxos/react-ui';\n\nexport type TextTooltipProps = PropsWithChildren<\n {\n text: string;\n asChild?: boolean;\n onlyWhenTruncating?: boolean;\n truncateQuery?: string;\n } & Pick<TooltipTriggerProps, 'side'> &\n ComponentPropsWithoutRef<'button'>\n>;\n\nexport const TextTooltip = forwardRef<HTMLButtonElement, TooltipScopedProps<TextTooltipProps>>(\n (\n { __scopeTooltip, text, children, onlyWhenTruncating, asChild = true, side, truncateQuery, ...props },\n forwardedRef,\n ) => {\n const content = useRef<HTMLButtonElement | null>(null);\n const ref = useComposedRefs(content, forwardedRef);\n const handleInteract = useCallback(\n (event: SyntheticEvent) => {\n if (onlyWhenTruncating && content.current) {\n const element: HTMLElement | null = truncateQuery\n ? content.current.querySelector(truncateQuery)\n : content.current;\n if (!element || element.scrollWidth <= element.offsetWidth) {\n event.preventDefault();\n }\n }\n },\n [onlyWhenTruncating, truncateQuery],\n );\n return (\n <Tooltip.Trigger asChild={asChild} {...props} content={text} side={side} onInteract={handleInteract} ref={ref}>\n {children}\n </Tooltip.Trigger>\n );\n },\n);\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,gCAAgC;AAChC,mBAOO;AAEP,sBAA2E;AAYpE,IAAMA,cAAcC,6CACzB,CACE,EAAEC,gBAAgBC,MAAMC,UAAUC,oBAAoBC,UAAU,MAAMC,MAAMC,eAAe,GAAGC,MAAAA,GAC9FC,iBAAAA;AAEA,QAAMC,cAAUC,qBAAiC,IAAA;AACjD,QAAMC,UAAMC,2CAAgBH,SAASD,YAAAA;AACrC,QAAMK,qBAAiBC,0BACrB,CAACC,UAAAA;AACC,QAAIZ,sBAAsBM,QAAQO,SAAS;AACzC,YAAMC,UAA8BX,gBAChCG,QAAQO,QAAQE,cAAcZ,aAAAA,IAC9BG,QAAQO;AACZ,UAAI,CAACC,WAAWA,QAAQE,eAAeF,QAAQG,aAAa;AAC1DL,cAAMM,eAAc;MACtB;IACF;EACF,GACA;IAAClB;IAAoBG;GAAc;AAErC,SACE,6BAAAgB,QAAA,cAACC,wBAAQC,SAAO;IAACpB;IAAmB,GAAGG;IAAOE,SAASR;IAAMI;IAAYoB,YAAYZ;IAAgBF;KAClGT,QAAAA;AAGP,CAAA;",
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,gCAAgC;AAChC,mBAOO;AAEP,sBAA2E;AAYpE,IAAMA,cAAcC,6CACzB,CACE,EAAEC,gBAAgBC,MAAMC,UAAUC,oBAAoBC,UAAU,MAAMC,MAAMC,eAAe,GAAGC,MAAAA,GAC9FC,iBAAAA;;;AAEA,UAAMC,cAAUC,qBAAiC,IAAA;AACjD,UAAMC,UAAMC,2CAAgBH,SAASD,YAAAA;AACrC,UAAMK,qBAAiBC,0BACrB,CAACC,UAAAA;AACC,UAAIZ,sBAAsBM,QAAQO,SAAS;AACzC,cAAMC,UAA8BX,gBAChCG,QAAQO,QAAQE,cAAcZ,aAAAA,IAC9BG,QAAQO;AACZ,YAAI,CAACC,WAAWA,QAAQE,eAAeF,QAAQG,aAAa;AAC1DL,gBAAMM,eAAc;QACtB;MACF;IACF,GACA;MAAClB;MAAoBG;KAAc;AAErC,WACE,6BAAAgB,QAAA,cAACC,wBAAQC,SAAO;MAACpB;MAAmB,GAAGG;MAAOE,SAASR;MAAMI;MAAYoB,YAAYZ;MAAgBF;OAClGT,QAAAA;;;;AAGP,CAAA;",
6
6
  "names": ["TextTooltip", "forwardRef", "__scopeTooltip", "text", "children", "onlyWhenTruncating", "asChild", "side", "truncateQuery", "props", "forwardedRef", "content", "useRef", "ref", "useComposedRefs", "handleInteract", "useCallback", "event", "current", "element", "querySelector", "scrollWidth", "offsetWidth", "preventDefault", "React", "Tooltip", "Trigger", "onInteract"]
7
7
  }
@@ -1 +1 @@
1
- {"inputs":{"packages/ui/react-ui-text-tooltip/src/components/TextTooltip.tsx":{"bytes":5078,"imports":[{"path":"@radix-ui/react-compose-refs","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-text-tooltip/src/components/index.ts":{"bytes":527,"imports":[{"path":"packages/ui/react-ui-text-tooltip/src/components/TextTooltip.tsx","kind":"import-statement","original":"./TextTooltip"}],"format":"esm"},"packages/ui/react-ui-text-tooltip/src/index.ts":{"bytes":511,"imports":[{"path":"packages/ui/react-ui-text-tooltip/src/components/index.ts","kind":"import-statement","original":"./components"}],"format":"esm"}},"outputs":{"packages/ui/react-ui-text-tooltip/dist/lib/node/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2821},"packages/ui/react-ui-text-tooltip/dist/lib/node/index.cjs":{"imports":[{"path":"@radix-ui/react-compose-refs","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true}],"exports":["TextTooltip"],"entryPoint":"packages/ui/react-ui-text-tooltip/src/index.ts","inputs":{"packages/ui/react-ui-text-tooltip/src/components/TextTooltip.tsx":{"bytesInOutput":974},"packages/ui/react-ui-text-tooltip/src/components/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-text-tooltip/src/index.ts":{"bytesInOutput":0}},"bytes":1103}}}
1
+ {"inputs":{"packages/ui/react-ui-text-tooltip/src/components/TextTooltip.tsx":{"bytes":5276,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"@radix-ui/react-compose-refs","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-text-tooltip/src/components/index.ts":{"bytes":495,"imports":[{"path":"packages/ui/react-ui-text-tooltip/src/components/TextTooltip.tsx","kind":"import-statement","original":"./TextTooltip"}],"format":"esm"},"packages/ui/react-ui-text-tooltip/src/index.ts":{"bytes":479,"imports":[{"path":"packages/ui/react-ui-text-tooltip/src/components/index.ts","kind":"import-statement","original":"./components"}],"format":"esm"}},"outputs":{"packages/ui/react-ui-text-tooltip/dist/lib/node/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2828},"packages/ui/react-ui-text-tooltip/dist/lib/node/index.cjs":{"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"@radix-ui/react-compose-refs","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true}],"exports":["TextTooltip"],"entryPoint":"packages/ui/react-ui-text-tooltip/src/index.ts","inputs":{"packages/ui/react-ui-text-tooltip/src/components/TextTooltip.tsx":{"bytesInOutput":1171},"packages/ui/react-ui-text-tooltip/src/components/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-text-tooltip/src/index.ts":{"bytesInOutput":0}},"bytes":1300}}}
@@ -1,31 +1,37 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
 
3
3
  // packages/ui/react-ui-text-tooltip/src/components/TextTooltip.tsx
4
+ import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
4
5
  import { useComposedRefs } from "@radix-ui/react-compose-refs";
5
6
  import React, { forwardRef, useCallback, useRef } from "react";
6
7
  import { Tooltip } from "@dxos/react-ui";
7
8
  var TextTooltip = /* @__PURE__ */ forwardRef(({ __scopeTooltip, text, children, onlyWhenTruncating, asChild = true, side, truncateQuery, ...props }, forwardedRef) => {
8
- const content = useRef(null);
9
- const ref = useComposedRefs(content, forwardedRef);
10
- const handleInteract = useCallback((event) => {
11
- if (onlyWhenTruncating && content.current) {
12
- const element = truncateQuery ? content.current.querySelector(truncateQuery) : content.current;
13
- if (!element || element.scrollWidth <= element.offsetWidth) {
14
- event.preventDefault();
9
+ var _effect = _useSignals();
10
+ try {
11
+ const content = useRef(null);
12
+ const ref = useComposedRefs(content, forwardedRef);
13
+ const handleInteract = useCallback((event) => {
14
+ if (onlyWhenTruncating && content.current) {
15
+ const element = truncateQuery ? content.current.querySelector(truncateQuery) : content.current;
16
+ if (!element || element.scrollWidth <= element.offsetWidth) {
17
+ event.preventDefault();
18
+ }
15
19
  }
16
- }
17
- }, [
18
- onlyWhenTruncating,
19
- truncateQuery
20
- ]);
21
- return /* @__PURE__ */ React.createElement(Tooltip.Trigger, {
22
- asChild,
23
- ...props,
24
- content: text,
25
- side,
26
- onInteract: handleInteract,
27
- ref
28
- }, children);
20
+ }, [
21
+ onlyWhenTruncating,
22
+ truncateQuery
23
+ ]);
24
+ return /* @__PURE__ */ React.createElement(Tooltip.Trigger, {
25
+ asChild,
26
+ ...props,
27
+ content: text,
28
+ side,
29
+ onInteract: handleInteract,
30
+ ref
31
+ }, children);
32
+ } finally {
33
+ _effect.f();
34
+ }
29
35
  });
30
36
  export {
31
37
  TextTooltip
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/TextTooltip.tsx"],
4
4
  "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { useComposedRefs } from '@radix-ui/react-compose-refs';\nimport React, {\n type ComponentPropsWithoutRef,\n forwardRef,\n type PropsWithChildren,\n type SyntheticEvent,\n useCallback,\n useRef,\n} from 'react';\n\nimport { Tooltip, type TooltipScopedProps, type TooltipTriggerProps } from '@dxos/react-ui';\n\nexport type TextTooltipProps = PropsWithChildren<\n {\n text: string;\n asChild?: boolean;\n onlyWhenTruncating?: boolean;\n truncateQuery?: string;\n } & Pick<TooltipTriggerProps, 'side'> &\n ComponentPropsWithoutRef<'button'>\n>;\n\nexport const TextTooltip = forwardRef<HTMLButtonElement, TooltipScopedProps<TextTooltipProps>>(\n (\n { __scopeTooltip, text, children, onlyWhenTruncating, asChild = true, side, truncateQuery, ...props },\n forwardedRef,\n ) => {\n const content = useRef<HTMLButtonElement | null>(null);\n const ref = useComposedRefs(content, forwardedRef);\n const handleInteract = useCallback(\n (event: SyntheticEvent) => {\n if (onlyWhenTruncating && content.current) {\n const element: HTMLElement | null = truncateQuery\n ? content.current.querySelector(truncateQuery)\n : content.current;\n if (!element || element.scrollWidth <= element.offsetWidth) {\n event.preventDefault();\n }\n }\n },\n [onlyWhenTruncating, truncateQuery],\n );\n return (\n <Tooltip.Trigger asChild={asChild} {...props} content={text} side={side} onInteract={handleInteract} ref={ref}>\n {children}\n </Tooltip.Trigger>\n );\n },\n);\n"],
5
- "mappings": ";;;AAIA,SAASA,uBAAuB;AAChC,OAAOC,SAELC,YAGAC,aACAC,cACK;AAEP,SAASC,eAAkE;AAYpE,IAAMC,cAAcC,2BACzB,CACE,EAAEC,gBAAgBC,MAAMC,UAAUC,oBAAoBC,UAAU,MAAMC,MAAMC,eAAe,GAAGC,MAAAA,GAC9FC,iBAAAA;AAEA,QAAMC,UAAUC,OAAiC,IAAA;AACjD,QAAMC,MAAMC,gBAAgBH,SAASD,YAAAA;AACrC,QAAMK,iBAAiBC,YACrB,CAACC,UAAAA;AACC,QAAIZ,sBAAsBM,QAAQO,SAAS;AACzC,YAAMC,UAA8BX,gBAChCG,QAAQO,QAAQE,cAAcZ,aAAAA,IAC9BG,QAAQO;AACZ,UAAI,CAACC,WAAWA,QAAQE,eAAeF,QAAQG,aAAa;AAC1DL,cAAMM,eAAc;MACtB;IACF;EACF,GACA;IAAClB;IAAoBG;GAAc;AAErC,SACE,sBAAA,cAACgB,QAAQC,SAAO;IAACnB;IAAmB,GAAGG;IAAOE,SAASR;IAAMI;IAAYmB,YAAYX;IAAgBF;KAClGT,QAAAA;AAGP,CAAA;",
5
+ "mappings": ";;;;AAIA,SAASA,uBAAuB;AAChC,OAAOC,SAELC,YAGAC,aACAC,cACK;AAEP,SAASC,eAAkE;AAYpE,IAAMC,cAAcC,2BACzB,CACE,EAAEC,gBAAgBC,MAAMC,UAAUC,oBAAoBC,UAAU,MAAMC,MAAMC,eAAe,GAAGC,MAAAA,GAC9FC,iBAAAA;;;AAEA,UAAMC,UAAUC,OAAiC,IAAA;AACjD,UAAMC,MAAMC,gBAAgBH,SAASD,YAAAA;AACrC,UAAMK,iBAAiBC,YACrB,CAACC,UAAAA;AACC,UAAIZ,sBAAsBM,QAAQO,SAAS;AACzC,cAAMC,UAA8BX,gBAChCG,QAAQO,QAAQE,cAAcZ,aAAAA,IAC9BG,QAAQO;AACZ,YAAI,CAACC,WAAWA,QAAQE,eAAeF,QAAQG,aAAa;AAC1DL,gBAAMM,eAAc;QACtB;MACF;IACF,GACA;MAAClB;MAAoBG;KAAc;AAErC,WACE,sBAAA,cAACgB,QAAQC,SAAO;MAACnB;MAAmB,GAAGG;MAAOE,SAASR;MAAMI;MAAYmB,YAAYX;MAAgBF;OAClGT,QAAAA;;;;AAGP,CAAA;",
6
6
  "names": ["useComposedRefs", "React", "forwardRef", "useCallback", "useRef", "Tooltip", "TextTooltip", "forwardRef", "__scopeTooltip", "text", "children", "onlyWhenTruncating", "asChild", "side", "truncateQuery", "props", "forwardedRef", "content", "useRef", "ref", "useComposedRefs", "handleInteract", "useCallback", "event", "current", "element", "querySelector", "scrollWidth", "offsetWidth", "preventDefault", "Tooltip", "Trigger", "onInteract"]
7
7
  }
@@ -1 +1 @@
1
- {"inputs":{"packages/ui/react-ui-text-tooltip/src/components/TextTooltip.tsx":{"bytes":5078,"imports":[{"path":"@radix-ui/react-compose-refs","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-text-tooltip/src/components/index.ts":{"bytes":527,"imports":[{"path":"packages/ui/react-ui-text-tooltip/src/components/TextTooltip.tsx","kind":"import-statement","original":"./TextTooltip"}],"format":"esm"},"packages/ui/react-ui-text-tooltip/src/index.ts":{"bytes":511,"imports":[{"path":"packages/ui/react-ui-text-tooltip/src/components/index.ts","kind":"import-statement","original":"./components"}],"format":"esm"}},"outputs":{"packages/ui/react-ui-text-tooltip/dist/lib/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2823},"packages/ui/react-ui-text-tooltip/dist/lib/node-esm/index.mjs":{"imports":[{"path":"@radix-ui/react-compose-refs","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true}],"exports":["TextTooltip"],"entryPoint":"packages/ui/react-ui-text-tooltip/src/index.ts","inputs":{"packages/ui/react-ui-text-tooltip/src/components/TextTooltip.tsx":{"bytesInOutput":974},"packages/ui/react-ui-text-tooltip/src/components/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-text-tooltip/src/index.ts":{"bytesInOutput":0}},"bytes":1196}}}
1
+ {"inputs":{"packages/ui/react-ui-text-tooltip/src/components/TextTooltip.tsx":{"bytes":5276,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"@radix-ui/react-compose-refs","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true}],"format":"esm"},"packages/ui/react-ui-text-tooltip/src/components/index.ts":{"bytes":495,"imports":[{"path":"packages/ui/react-ui-text-tooltip/src/components/TextTooltip.tsx","kind":"import-statement","original":"./TextTooltip"}],"format":"esm"},"packages/ui/react-ui-text-tooltip/src/index.ts":{"bytes":479,"imports":[{"path":"packages/ui/react-ui-text-tooltip/src/components/index.ts","kind":"import-statement","original":"./components"}],"format":"esm"}},"outputs":{"packages/ui/react-ui-text-tooltip/dist/lib/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2830},"packages/ui/react-ui-text-tooltip/dist/lib/node-esm/index.mjs":{"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"@radix-ui/react-compose-refs","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true}],"exports":["TextTooltip"],"entryPoint":"packages/ui/react-ui-text-tooltip/src/index.ts","inputs":{"packages/ui/react-ui-text-tooltip/src/components/TextTooltip.tsx":{"bytesInOutput":1171},"packages/ui/react-ui-text-tooltip/src/components/index.ts":{"bytesInOutput":0},"packages/ui/react-ui-text-tooltip/src/index.ts":{"bytesInOutput":0}},"bytes":1393}}}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/react-ui-text-tooltip",
3
- "version": "0.8.2-main.fbd8ed0",
3
+ "version": "0.8.2-staging.4d6ad0f",
4
4
  "description": "An opinionated card component.",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -24,6 +24,7 @@
24
24
  "src"
25
25
  ],
26
26
  "dependencies": {
27
+ "@preact-signals/safe-react": "^0.9.0",
27
28
  "@radix-ui/react-compose-refs": "1.1.1"
28
29
  },
29
30
  "devDependencies": {
@@ -33,15 +34,15 @@
33
34
  "react": "~18.2.0",
34
35
  "react-dom": "~18.2.0",
35
36
  "vite": "5.4.7",
36
- "@dxos/react-ui": "0.8.2-main.fbd8ed0",
37
- "@dxos/react-ui-theme": "0.8.2-main.fbd8ed0"
37
+ "@dxos/react-ui": "0.8.2-staging.4d6ad0f",
38
+ "@dxos/react-ui-theme": "0.8.2-staging.4d6ad0f"
38
39
  },
39
40
  "peerDependencies": {
40
41
  "@phosphor-icons/react": "^2.0.5",
41
42
  "react": "~18.2.0",
42
43
  "react-dom": "~18.2.0",
43
- "@dxos/react-ui": "0.8.2-main.fbd8ed0",
44
- "@dxos/react-ui-theme": "0.8.2-main.fbd8ed0"
44
+ "@dxos/react-ui": "0.8.2-staging.4d6ad0f",
45
+ "@dxos/react-ui-theme": "0.8.2-staging.4d6ad0f"
45
46
  },
46
47
  "publishConfig": {
47
48
  "access": "public"