ivt 0.3.3 → 0.3.4

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.
Files changed (257) hide show
  1. package/dist/accordion/index.mjs +19 -1
  2. package/dist/accordion/index.mjs.map +1 -1
  3. package/dist/alert/index.mjs +43 -1
  4. package/dist/alert/index.mjs.map +1 -1
  5. package/dist/alert-dialog/index.mjs +260 -1
  6. package/dist/alert-dialog/index.mjs.map +1 -1
  7. package/dist/avatar/index.mjs +164 -1
  8. package/dist/avatar/index.mjs.map +1 -1
  9. package/dist/badge/index.mjs +6 -1
  10. package/dist/badge/index.mjs.map +1 -1
  11. package/dist/base/index.mjs +760 -1
  12. package/dist/base/index.mjs.map +1 -1
  13. package/dist/button/index.mjs +6 -1
  14. package/dist/button/index.mjs.map +1 -1
  15. package/dist/calendar/index.mjs +11 -1
  16. package/dist/calendar/index.mjs.map +1 -1
  17. package/dist/card/index.mjs +55 -1
  18. package/dist/card/index.mjs.map +1 -1
  19. package/dist/chart/index.mjs +17042 -1
  20. package/dist/chart/index.mjs.map +1 -1
  21. package/dist/checkbox/index.mjs +223 -1
  22. package/dist/checkbox/index.mjs.map +1 -1
  23. package/dist/chunks/_commonjsHelpers-DqEvkrE1.mjs +6 -0
  24. package/dist/chunks/_commonjsHelpers-DqEvkrE1.mjs.map +1 -0
  25. package/dist/chunks/accordion-BMP2PSSC.mjs +455 -0
  26. package/dist/chunks/{accordion-CdshDFZC.mjs.map → accordion-BMP2PSSC.mjs.map} +1 -1
  27. package/dist/chunks/badge-DxuZhgBF.mjs +57 -0
  28. package/dist/chunks/{badge-BYqshEmA.mjs.map → badge-DxuZhgBF.mjs.map} +1 -1
  29. package/dist/chunks/bundle-mjs-tFg__FnT.mjs +4491 -0
  30. package/dist/chunks/{bundle-mjs-9BXytT_r.mjs.map → bundle-mjs-tFg__FnT.mjs.map} +1 -1
  31. package/dist/chunks/button-CX0htulo.mjs +47 -0
  32. package/dist/chunks/{button-DrFZXJ7z.mjs.map → button-CX0htulo.mjs.map} +1 -1
  33. package/dist/chunks/calendar-B4IV5RyM.mjs +7106 -0
  34. package/dist/chunks/calendar-B4IV5RyM.mjs.map +1 -0
  35. package/dist/chunks/check-B7209s3e.mjs +15 -0
  36. package/dist/chunks/{check-CimnOyD7.mjs.map → check-B7209s3e.mjs.map} +1 -1
  37. package/dist/chunks/chevron-down-D84DRJBv.mjs +15 -0
  38. package/dist/chunks/{chevron-down-D3fvbjxE.mjs.map → chevron-down-D84DRJBv.mjs.map} +1 -1
  39. package/dist/chunks/chevron-left-DtL1t1DJ.mjs +15 -0
  40. package/dist/chunks/{chevron-left-CrN7DlXg.mjs.map → chevron-left-DtL1t1DJ.mjs.map} +1 -1
  41. package/dist/chunks/chevron-right-Cdxg1JSQ.mjs +15 -0
  42. package/dist/chunks/{chevron-right-BMSCuDGK.mjs.map → chevron-right-Cdxg1JSQ.mjs.map} +1 -1
  43. package/dist/chunks/chevrons-up-down-DtBUG1i8.mjs +22 -0
  44. package/dist/chunks/{chevrons-up-down-DBgvRkZm.mjs.map → chevrons-up-down-DtBUG1i8.mjs.map} +1 -1
  45. package/dist/chunks/circle-BLWMZ9yp.mjs +17 -0
  46. package/dist/chunks/{circle-CGqt18Bd.mjs.map → circle-BLWMZ9yp.mjs.map} +1 -1
  47. package/dist/chunks/command-C8cVzg-x.mjs +611 -0
  48. package/dist/chunks/command-C8cVzg-x.mjs.map +1 -0
  49. package/dist/chunks/createLucideIcon-Ba0IWqsz.mjs +60 -0
  50. package/dist/chunks/{createLucideIcon-L-tld2uc.mjs.map → createLucideIcon-Ba0IWqsz.mjs.map} +1 -1
  51. package/dist/chunks/dialog-D9vbxUuQ.mjs +80 -0
  52. package/dist/chunks/{dialog-36eqHzT3.mjs.map → dialog-D9vbxUuQ.mjs.map} +1 -1
  53. package/dist/chunks/hover-card-idvDPXrI.mjs +274 -0
  54. package/dist/chunks/{hover-card-Cnd58du6.mjs.map → hover-card-idvDPXrI.mjs.map} +1 -1
  55. package/dist/chunks/index-6JUj2Tld.mjs +18 -0
  56. package/dist/chunks/{index-CRxQlsb9.mjs.map → index-6JUj2Tld.mjs.map} +1 -1
  57. package/dist/chunks/index-B0IElWB4.mjs +51 -0
  58. package/dist/chunks/{index-vmPXTidH.mjs.map → index-B0IElWB4.mjs.map} +1 -1
  59. package/dist/chunks/index-B4VRyyD1.mjs +40 -0
  60. package/dist/chunks/index-B4VRyyD1.mjs.map +1 -0
  61. package/dist/chunks/index-BE-_q4IW.mjs +266 -0
  62. package/dist/chunks/index-BE-_q4IW.mjs.map +1 -0
  63. package/dist/chunks/index-BNxaLFA6.mjs +216 -0
  64. package/dist/chunks/{index-LvOFIVGz.mjs.map → index-BNxaLFA6.mjs.map} +1 -1
  65. package/dist/chunks/index-BZUrHhU8.mjs +7 -0
  66. package/dist/chunks/{index-CLtWFQL5.mjs.map → index-BZUrHhU8.mjs.map} +1 -1
  67. package/dist/chunks/index-B_FsTtnF.mjs +110 -0
  68. package/dist/chunks/{index-CCcl327A.mjs.map → index-B_FsTtnF.mjs.map} +1 -1
  69. package/dist/chunks/index-CAg47KJ6.mjs +13 -0
  70. package/dist/chunks/{index-CXszXOf_.mjs.map → index-CAg47KJ6.mjs.map} +1 -1
  71. package/dist/chunks/index-CXuEm8w1.mjs +12 -0
  72. package/dist/chunks/{index-CU_y1XAz.mjs.map → index-CXuEm8w1.mjs.map} +1 -1
  73. package/dist/chunks/index-C_jFwfR_.mjs +77 -0
  74. package/dist/chunks/{index-CybgQKpz.mjs.map → index-C_jFwfR_.mjs.map} +1 -1
  75. package/dist/chunks/index-CglX-DNW.mjs +21 -0
  76. package/dist/chunks/index-CglX-DNW.mjs.map +1 -0
  77. package/dist/chunks/index-CyMuypYR.mjs +324 -0
  78. package/dist/chunks/{index-DUNcuWJE.mjs.map → index-CyMuypYR.mjs.map} +1 -1
  79. package/dist/chunks/index-D0S6rRRE.mjs +50 -0
  80. package/dist/chunks/{index-w9bxia3O.mjs.map → index-D0S6rRRE.mjs.map} +1 -1
  81. package/dist/chunks/index-D23BhVQG.mjs +859 -0
  82. package/dist/chunks/{index-DZHMFdr0.mjs.map → index-D23BhVQG.mjs.map} +1 -1
  83. package/dist/chunks/index-D2wfJaZh.mjs +145 -0
  84. package/dist/chunks/index-D2wfJaZh.mjs.map +1 -0
  85. package/dist/chunks/index-DNvm9MP3.mjs +34 -0
  86. package/dist/chunks/{index-D2sZp5OP.mjs.map → index-DNvm9MP3.mjs.map} +1 -1
  87. package/dist/chunks/index-Dm4_czlz.mjs +12 -0
  88. package/dist/chunks/index-Dm4_czlz.mjs.map +1 -0
  89. package/dist/chunks/index-PaJVyocC.mjs +151 -0
  90. package/dist/chunks/index-PaJVyocC.mjs.map +1 -0
  91. package/dist/chunks/index-kr6_v_F8.mjs +2370 -0
  92. package/dist/chunks/index-kr6_v_F8.mjs.map +1 -0
  93. package/dist/chunks/index-sz_BcBbA.mjs +1210 -0
  94. package/dist/chunks/index-sz_BcBbA.mjs.map +1 -0
  95. package/dist/chunks/input-DK1slFF1.mjs +14 -0
  96. package/dist/chunks/{input-85UFztMJ.mjs.map → input-DK1slFF1.mjs.map} +1 -1
  97. package/dist/chunks/label-D7ONQdHc.mjs +32 -0
  98. package/dist/chunks/{label-CICFzZIt.mjs.map → label-D7ONQdHc.mjs.map} +1 -1
  99. package/dist/chunks/pagination-BM_IQ6Qk.mjs +106 -0
  100. package/dist/chunks/{pagination-CReDQes6.mjs.map → pagination-BM_IQ6Qk.mjs.map} +1 -1
  101. package/dist/chunks/popover-D3F326FR.mjs +308 -0
  102. package/dist/chunks/{popover-Cn2ZTvKd.mjs.map → popover-D3F326FR.mjs.map} +1 -1
  103. package/dist/chunks/progress-BCl5yD5Q.mjs +99 -0
  104. package/dist/chunks/{progress-CSxQH6-f.mjs.map → progress-BCl5yD5Q.mjs.map} +1 -1
  105. package/dist/chunks/scroll-area-DB3eUx8V.mjs +791 -0
  106. package/dist/chunks/scroll-area-DB3eUx8V.mjs.map +1 -0
  107. package/dist/chunks/select-Cw81y8pT.mjs +104 -0
  108. package/dist/chunks/{select-BR6_N_Yo.mjs.map → select-Cw81y8pT.mjs.map} +1 -1
  109. package/dist/chunks/separator-2k1C7RSn.mjs +48 -0
  110. package/dist/chunks/{separator-BB6-E9Z1.mjs.map → separator-2k1C7RSn.mjs.map} +1 -1
  111. package/dist/chunks/skeleton-qx8-vr62.mjs +13 -0
  112. package/dist/chunks/{skeleton-XPWWiaac.mjs.map → skeleton-qx8-vr62.mjs.map} +1 -1
  113. package/dist/chunks/sortable-D8ayoe_b.mjs +4221 -0
  114. package/dist/chunks/sortable-D8ayoe_b.mjs.map +1 -0
  115. package/dist/chunks/table-BDNUhtz-.mjs +62 -0
  116. package/dist/chunks/{table-LQIHzPHi.mjs.map → table-BDNUhtz-.mjs.map} +1 -1
  117. package/dist/chunks/toggle-CE2ycSdL.mjs +65 -0
  118. package/dist/chunks/{toggle-Co72WXGd.mjs.map → toggle-CE2ycSdL.mjs.map} +1 -1
  119. package/dist/chunks/tooltip-DLD0ycR4.mjs +596 -0
  120. package/dist/chunks/{tooltip-qX2HjdJP.mjs.map → tooltip-DLD0ycR4.mjs.map} +1 -1
  121. package/dist/chunks/tslib.es6-BgHLrbno.mjs +61 -0
  122. package/dist/chunks/{tslib.es6-cMGqxriw.mjs.map → tslib.es6-BgHLrbno.mjs.map} +1 -1
  123. package/dist/chunks/utils-BUelq9Ro.mjs +42 -0
  124. package/dist/chunks/utils-BUelq9Ro.mjs.map +1 -0
  125. package/dist/chunks/x-Bjz0Vo6R.mjs +22 -0
  126. package/dist/chunks/{x-BNLl0E-E.mjs.map → x-Bjz0Vo6R.mjs.map} +1 -1
  127. package/dist/combobox/index.mjs +65 -1
  128. package/dist/combobox/index.mjs.map +1 -1
  129. package/dist/command/index.mjs +23 -1
  130. package/dist/command/index.mjs.map +1 -1
  131. package/dist/data-table/index.mjs +673 -1
  132. package/dist/data-table/index.mjs.map +1 -1
  133. package/dist/dialog/index.mjs +22 -1
  134. package/dist/dialog/index.mjs.map +1 -1
  135. package/dist/dropdown-menu/index.mjs +438 -1
  136. package/dist/dropdown-menu/index.mjs.map +1 -1
  137. package/dist/dropzone/index.mjs +7839 -1
  138. package/dist/dropzone/index.mjs.map +1 -1
  139. package/dist/form/index.mjs +649 -1
  140. package/dist/form/index.mjs.map +1 -1
  141. package/dist/hover-card/index.mjs +18 -1
  142. package/dist/hover-card/index.mjs.map +1 -1
  143. package/dist/icon/index.mjs +317 -1
  144. package/dist/icon/index.mjs.map +1 -1
  145. package/dist/index.css +1 -1
  146. package/dist/input/index.mjs +4 -1
  147. package/dist/input/index.mjs.map +1 -1
  148. package/dist/ivt.css +1 -1
  149. package/dist/label/index.mjs +8 -1
  150. package/dist/label/index.mjs.map +1 -1
  151. package/dist/menubar/index.mjs +583 -1
  152. package/dist/menubar/index.mjs.map +1 -1
  153. package/dist/multi-select/index.mjs +297 -1
  154. package/dist/multi-select/index.mjs.map +1 -1
  155. package/dist/pagination/index.mjs +10 -1
  156. package/dist/pagination/index.mjs.map +1 -1
  157. package/dist/popover/index.mjs +21 -1
  158. package/dist/popover/index.mjs.map +1 -1
  159. package/dist/progress/index.mjs +9 -1
  160. package/dist/progress/index.mjs.map +1 -1
  161. package/dist/radio-group/index.mjs +267 -1
  162. package/dist/radio-group/index.mjs.map +1 -1
  163. package/dist/scroll-area/index.mjs +15 -1
  164. package/dist/scroll-area/index.mjs.map +1 -1
  165. package/dist/select/index.mjs +8 -1
  166. package/dist/select/index.mjs.map +1 -1
  167. package/dist/separator/index.mjs +8 -1
  168. package/dist/separator/index.mjs.map +1 -1
  169. package/dist/sheet/index.mjs +96 -1
  170. package/dist/sheet/index.mjs.map +1 -1
  171. package/dist/skeleton/index.mjs +4 -1
  172. package/dist/skeleton/index.mjs.map +1 -1
  173. package/dist/sonner/index.mjs +1140 -1
  174. package/dist/sonner/index.mjs.map +1 -1
  175. package/dist/sortable/index.mjs +8 -1
  176. package/dist/sortable/index.mjs.map +1 -1
  177. package/dist/table/index.mjs +4 -1
  178. package/dist/table/index.mjs.map +1 -1
  179. package/dist/tabs/index.mjs +193 -1
  180. package/dist/tabs/index.mjs.map +1 -1
  181. package/dist/textarea/index.mjs +13 -1
  182. package/dist/textarea/index.mjs.map +1 -1
  183. package/dist/toast/index.mjs +705 -1
  184. package/dist/toast/index.mjs.map +1 -1
  185. package/dist/toggle/index.mjs +12 -1
  186. package/dist/toggle/index.mjs.map +1 -1
  187. package/dist/toggle-group/index.mjs +219 -1
  188. package/dist/toggle-group/index.mjs.map +1 -1
  189. package/dist/tooltip/index.mjs +20 -1
  190. package/dist/tooltip/index.mjs.map +1 -1
  191. package/package.json +2 -2
  192. package/dist/chunks/_commonjsHelpers-6qLFzZa5.mjs +0 -2
  193. package/dist/chunks/_commonjsHelpers-6qLFzZa5.mjs.map +0 -1
  194. package/dist/chunks/accordion-CdshDFZC.mjs +0 -2
  195. package/dist/chunks/badge-BYqshEmA.mjs +0 -2
  196. package/dist/chunks/bundle-mjs-9BXytT_r.mjs +0 -2
  197. package/dist/chunks/button-DrFZXJ7z.mjs +0 -2
  198. package/dist/chunks/calendar-BY6t8wdJ.mjs +0 -2
  199. package/dist/chunks/calendar-BY6t8wdJ.mjs.map +0 -1
  200. package/dist/chunks/check-CimnOyD7.mjs +0 -2
  201. package/dist/chunks/chevron-down-D3fvbjxE.mjs +0 -2
  202. package/dist/chunks/chevron-left-CrN7DlXg.mjs +0 -2
  203. package/dist/chunks/chevron-right-BMSCuDGK.mjs +0 -2
  204. package/dist/chunks/chevrons-up-down-DBgvRkZm.mjs +0 -2
  205. package/dist/chunks/circle-CGqt18Bd.mjs +0 -2
  206. package/dist/chunks/command-C6ON-ciq.mjs +0 -2
  207. package/dist/chunks/command-C6ON-ciq.mjs.map +0 -1
  208. package/dist/chunks/createLucideIcon-L-tld2uc.mjs +0 -2
  209. package/dist/chunks/dialog-36eqHzT3.mjs +0 -2
  210. package/dist/chunks/hover-card-Cnd58du6.mjs +0 -2
  211. package/dist/chunks/index-B4QsDzeM.mjs +0 -2
  212. package/dist/chunks/index-B4QsDzeM.mjs.map +0 -1
  213. package/dist/chunks/index-BdpYc58_.mjs +0 -2
  214. package/dist/chunks/index-BdpYc58_.mjs.map +0 -1
  215. package/dist/chunks/index-CCcl327A.mjs +0 -2
  216. package/dist/chunks/index-CLtWFQL5.mjs +0 -2
  217. package/dist/chunks/index-COvW87ew.mjs +0 -2
  218. package/dist/chunks/index-COvW87ew.mjs.map +0 -1
  219. package/dist/chunks/index-CRxQlsb9.mjs +0 -2
  220. package/dist/chunks/index-CU_y1XAz.mjs +0 -2
  221. package/dist/chunks/index-CXszXOf_.mjs +0 -2
  222. package/dist/chunks/index-CdJCOoFA.mjs +0 -2
  223. package/dist/chunks/index-CdJCOoFA.mjs.map +0 -1
  224. package/dist/chunks/index-Cpq7N5Ej.mjs +0 -2
  225. package/dist/chunks/index-Cpq7N5Ej.mjs.map +0 -1
  226. package/dist/chunks/index-CybgQKpz.mjs +0 -2
  227. package/dist/chunks/index-D2sZp5OP.mjs +0 -2
  228. package/dist/chunks/index-DOyt-JEx.mjs +0 -2
  229. package/dist/chunks/index-DOyt-JEx.mjs.map +0 -1
  230. package/dist/chunks/index-DUNcuWJE.mjs +0 -2
  231. package/dist/chunks/index-DZHMFdr0.mjs +0 -2
  232. package/dist/chunks/index-LvOFIVGz.mjs +0 -2
  233. package/dist/chunks/index-lvPXnk5F.mjs +0 -2
  234. package/dist/chunks/index-lvPXnk5F.mjs.map +0 -1
  235. package/dist/chunks/index-vmPXTidH.mjs +0 -2
  236. package/dist/chunks/index-w9bxia3O.mjs +0 -2
  237. package/dist/chunks/index-xew3kygQ.mjs +0 -2
  238. package/dist/chunks/index-xew3kygQ.mjs.map +0 -1
  239. package/dist/chunks/input-85UFztMJ.mjs +0 -2
  240. package/dist/chunks/label-CICFzZIt.mjs +0 -2
  241. package/dist/chunks/pagination-CReDQes6.mjs +0 -2
  242. package/dist/chunks/popover-Cn2ZTvKd.mjs +0 -2
  243. package/dist/chunks/progress-CSxQH6-f.mjs +0 -2
  244. package/dist/chunks/scroll-area-CvCz7cL_.mjs +0 -2
  245. package/dist/chunks/scroll-area-CvCz7cL_.mjs.map +0 -1
  246. package/dist/chunks/select-BR6_N_Yo.mjs +0 -2
  247. package/dist/chunks/separator-BB6-E9Z1.mjs +0 -2
  248. package/dist/chunks/skeleton-XPWWiaac.mjs +0 -2
  249. package/dist/chunks/sortable-CqPFGn8Q.mjs +0 -2
  250. package/dist/chunks/sortable-CqPFGn8Q.mjs.map +0 -1
  251. package/dist/chunks/table-LQIHzPHi.mjs +0 -2
  252. package/dist/chunks/toggle-Co72WXGd.mjs +0 -2
  253. package/dist/chunks/tooltip-qX2HjdJP.mjs +0 -2
  254. package/dist/chunks/tslib.es6-cMGqxriw.mjs +0 -2
  255. package/dist/chunks/utils-BctauAA9.mjs +0 -2
  256. package/dist/chunks/utils-BctauAA9.mjs.map +0 -1
  257. package/dist/chunks/x-BNLl0E-E.mjs +0 -2
@@ -0,0 +1,596 @@
1
+ import { c as cn } from './utils-BUelq9Ro.mjs';
2
+ import * as React from 'react';
3
+ import React__default from 'react';
4
+ import { c as composeEventHandlers } from './index-Dm4_czlz.mjs';
5
+ import { u as useComposedRefs } from './index-B4VRyyD1.mjs';
6
+ import { c as createContextScope } from './index-B_FsTtnF.mjs';
7
+ import { P as Portal$1, D as DismissableLayer } from './index-BE-_q4IW.mjs';
8
+ import { u as useId } from './index-6JUj2Tld.mjs';
9
+ import { c as createPopperScope, R as Root2, A as Anchor, C as Content, a as Arrow } from './index-kr6_v_F8.mjs';
10
+ import { P as Presence } from './index-D2wfJaZh.mjs';
11
+ import { P as Primitive } from './index-D0S6rRRE.mjs';
12
+ import { createSlottable } from '@radix-ui/react-slot';
13
+ import { u as useControllableState } from './index-C_jFwfR_.mjs';
14
+ import { R as Root } from './index-DNvm9MP3.mjs';
15
+ import { jsx, jsxs } from 'react/jsx-runtime';
16
+
17
+ var [createTooltipContext, createTooltipScope] = createContextScope("Tooltip", [
18
+ createPopperScope
19
+ ]);
20
+ var usePopperScope = createPopperScope();
21
+ var PROVIDER_NAME = "TooltipProvider";
22
+ var DEFAULT_DELAY_DURATION = 700;
23
+ var TOOLTIP_OPEN = "tooltip.open";
24
+ var [TooltipProviderContextProvider, useTooltipProviderContext] = createTooltipContext(PROVIDER_NAME);
25
+ var TooltipProvider$1 = (props)=>{
26
+ const { __scopeTooltip, delayDuration = DEFAULT_DELAY_DURATION, skipDelayDuration = 300, disableHoverableContent = false, children } = props;
27
+ const isOpenDelayedRef = React.useRef(true);
28
+ const isPointerInTransitRef = React.useRef(false);
29
+ const skipDelayTimerRef = React.useRef(0);
30
+ React.useEffect(()=>{
31
+ const skipDelayTimer = skipDelayTimerRef.current;
32
+ return ()=>window.clearTimeout(skipDelayTimer);
33
+ }, []);
34
+ return /* @__PURE__ */ jsx(TooltipProviderContextProvider, {
35
+ scope: __scopeTooltip,
36
+ isOpenDelayedRef,
37
+ delayDuration,
38
+ onOpen: React.useCallback(()=>{
39
+ window.clearTimeout(skipDelayTimerRef.current);
40
+ isOpenDelayedRef.current = false;
41
+ }, []),
42
+ onClose: React.useCallback(()=>{
43
+ window.clearTimeout(skipDelayTimerRef.current);
44
+ skipDelayTimerRef.current = window.setTimeout(()=>isOpenDelayedRef.current = true, skipDelayDuration);
45
+ }, [
46
+ skipDelayDuration
47
+ ]),
48
+ isPointerInTransitRef,
49
+ onPointerInTransitChange: React.useCallback((inTransit)=>{
50
+ isPointerInTransitRef.current = inTransit;
51
+ }, []),
52
+ disableHoverableContent,
53
+ children
54
+ });
55
+ };
56
+ TooltipProvider$1.displayName = PROVIDER_NAME;
57
+ var TOOLTIP_NAME = "Tooltip";
58
+ var [TooltipContextProvider, useTooltipContext] = createTooltipContext(TOOLTIP_NAME);
59
+ var Tooltip$1 = (props)=>{
60
+ const { __scopeTooltip, children, open: openProp, defaultOpen, onOpenChange, disableHoverableContent: disableHoverableContentProp, delayDuration: delayDurationProp } = props;
61
+ const providerContext = useTooltipProviderContext(TOOLTIP_NAME, props.__scopeTooltip);
62
+ const popperScope = usePopperScope(__scopeTooltip);
63
+ const [trigger, setTrigger] = React.useState(null);
64
+ const contentId = useId();
65
+ const openTimerRef = React.useRef(0);
66
+ const disableHoverableContent = disableHoverableContentProp ?? providerContext.disableHoverableContent;
67
+ const delayDuration = delayDurationProp ?? providerContext.delayDuration;
68
+ const wasOpenDelayedRef = React.useRef(false);
69
+ const [open, setOpen] = useControllableState({
70
+ prop: openProp,
71
+ defaultProp: defaultOpen ?? false,
72
+ onChange: (open2)=>{
73
+ if (open2) {
74
+ providerContext.onOpen();
75
+ document.dispatchEvent(new CustomEvent(TOOLTIP_OPEN));
76
+ } else {
77
+ providerContext.onClose();
78
+ }
79
+ onOpenChange?.(open2);
80
+ },
81
+ caller: TOOLTIP_NAME
82
+ });
83
+ const stateAttribute = React.useMemo(()=>{
84
+ return open ? wasOpenDelayedRef.current ? "delayed-open" : "instant-open" : "closed";
85
+ }, [
86
+ open
87
+ ]);
88
+ const handleOpen = React.useCallback(()=>{
89
+ window.clearTimeout(openTimerRef.current);
90
+ openTimerRef.current = 0;
91
+ wasOpenDelayedRef.current = false;
92
+ setOpen(true);
93
+ }, [
94
+ setOpen
95
+ ]);
96
+ const handleClose = React.useCallback(()=>{
97
+ window.clearTimeout(openTimerRef.current);
98
+ openTimerRef.current = 0;
99
+ setOpen(false);
100
+ }, [
101
+ setOpen
102
+ ]);
103
+ const handleDelayedOpen = React.useCallback(()=>{
104
+ window.clearTimeout(openTimerRef.current);
105
+ openTimerRef.current = window.setTimeout(()=>{
106
+ wasOpenDelayedRef.current = true;
107
+ setOpen(true);
108
+ openTimerRef.current = 0;
109
+ }, delayDuration);
110
+ }, [
111
+ delayDuration,
112
+ setOpen
113
+ ]);
114
+ React.useEffect(()=>{
115
+ return ()=>{
116
+ if (openTimerRef.current) {
117
+ window.clearTimeout(openTimerRef.current);
118
+ openTimerRef.current = 0;
119
+ }
120
+ };
121
+ }, []);
122
+ return /* @__PURE__ */ jsx(Root2, {
123
+ ...popperScope,
124
+ children: /* @__PURE__ */ jsx(TooltipContextProvider, {
125
+ scope: __scopeTooltip,
126
+ contentId,
127
+ open,
128
+ stateAttribute,
129
+ trigger,
130
+ onTriggerChange: setTrigger,
131
+ onTriggerEnter: React.useCallback(()=>{
132
+ if (providerContext.isOpenDelayedRef.current) handleDelayedOpen();
133
+ else handleOpen();
134
+ }, [
135
+ providerContext.isOpenDelayedRef,
136
+ handleDelayedOpen,
137
+ handleOpen
138
+ ]),
139
+ onTriggerLeave: React.useCallback(()=>{
140
+ if (disableHoverableContent) {
141
+ handleClose();
142
+ } else {
143
+ window.clearTimeout(openTimerRef.current);
144
+ openTimerRef.current = 0;
145
+ }
146
+ }, [
147
+ handleClose,
148
+ disableHoverableContent
149
+ ]),
150
+ onOpen: handleOpen,
151
+ onClose: handleClose,
152
+ disableHoverableContent,
153
+ children
154
+ })
155
+ });
156
+ };
157
+ Tooltip$1.displayName = TOOLTIP_NAME;
158
+ var TRIGGER_NAME = "TooltipTrigger";
159
+ var TooltipTrigger$1 = React.forwardRef((props, forwardedRef)=>{
160
+ const { __scopeTooltip, ...triggerProps } = props;
161
+ const context = useTooltipContext(TRIGGER_NAME, __scopeTooltip);
162
+ const providerContext = useTooltipProviderContext(TRIGGER_NAME, __scopeTooltip);
163
+ const popperScope = usePopperScope(__scopeTooltip);
164
+ const ref = React.useRef(null);
165
+ const composedRefs = useComposedRefs(forwardedRef, ref, context.onTriggerChange);
166
+ const isPointerDownRef = React.useRef(false);
167
+ const hasPointerMoveOpenedRef = React.useRef(false);
168
+ const handlePointerUp = React.useCallback(()=>isPointerDownRef.current = false, []);
169
+ React.useEffect(()=>{
170
+ return ()=>document.removeEventListener("pointerup", handlePointerUp);
171
+ }, [
172
+ handlePointerUp
173
+ ]);
174
+ return /* @__PURE__ */ jsx(Anchor, {
175
+ asChild: true,
176
+ ...popperScope,
177
+ children: /* @__PURE__ */ jsx(Primitive.button, {
178
+ "aria-describedby": context.open ? context.contentId : void 0,
179
+ "data-state": context.stateAttribute,
180
+ ...triggerProps,
181
+ ref: composedRefs,
182
+ onPointerMove: composeEventHandlers(props.onPointerMove, (event)=>{
183
+ if (event.pointerType === "touch") return;
184
+ if (!hasPointerMoveOpenedRef.current && !providerContext.isPointerInTransitRef.current) {
185
+ context.onTriggerEnter();
186
+ hasPointerMoveOpenedRef.current = true;
187
+ }
188
+ }),
189
+ onPointerLeave: composeEventHandlers(props.onPointerLeave, ()=>{
190
+ context.onTriggerLeave();
191
+ hasPointerMoveOpenedRef.current = false;
192
+ }),
193
+ onPointerDown: composeEventHandlers(props.onPointerDown, ()=>{
194
+ if (context.open) {
195
+ context.onClose();
196
+ }
197
+ isPointerDownRef.current = true;
198
+ document.addEventListener("pointerup", handlePointerUp, {
199
+ once: true
200
+ });
201
+ }),
202
+ onFocus: composeEventHandlers(props.onFocus, ()=>{
203
+ if (!isPointerDownRef.current) context.onOpen();
204
+ }),
205
+ onBlur: composeEventHandlers(props.onBlur, context.onClose),
206
+ onClick: composeEventHandlers(props.onClick, context.onClose)
207
+ })
208
+ });
209
+ });
210
+ TooltipTrigger$1.displayName = TRIGGER_NAME;
211
+ var PORTAL_NAME = "TooltipPortal";
212
+ var [PortalProvider, usePortalContext] = createTooltipContext(PORTAL_NAME, {
213
+ forceMount: void 0
214
+ });
215
+ var TooltipPortal = (props)=>{
216
+ const { __scopeTooltip, forceMount, children, container } = props;
217
+ const context = useTooltipContext(PORTAL_NAME, __scopeTooltip);
218
+ return /* @__PURE__ */ jsx(PortalProvider, {
219
+ scope: __scopeTooltip,
220
+ forceMount,
221
+ children: /* @__PURE__ */ jsx(Presence, {
222
+ present: forceMount || context.open,
223
+ children: /* @__PURE__ */ jsx(Portal$1, {
224
+ asChild: true,
225
+ container,
226
+ children
227
+ })
228
+ })
229
+ });
230
+ };
231
+ TooltipPortal.displayName = PORTAL_NAME;
232
+ var CONTENT_NAME = "TooltipContent";
233
+ var TooltipContent$1 = React.forwardRef((props, forwardedRef)=>{
234
+ const portalContext = usePortalContext(CONTENT_NAME, props.__scopeTooltip);
235
+ const { forceMount = portalContext.forceMount, side = "top", ...contentProps } = props;
236
+ const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);
237
+ return /* @__PURE__ */ jsx(Presence, {
238
+ present: forceMount || context.open,
239
+ children: context.disableHoverableContent ? /* @__PURE__ */ jsx(TooltipContentImpl, {
240
+ side,
241
+ ...contentProps,
242
+ ref: forwardedRef
243
+ }) : /* @__PURE__ */ jsx(TooltipContentHoverable, {
244
+ side,
245
+ ...contentProps,
246
+ ref: forwardedRef
247
+ })
248
+ });
249
+ });
250
+ var TooltipContentHoverable = React.forwardRef((props, forwardedRef)=>{
251
+ const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);
252
+ const providerContext = useTooltipProviderContext(CONTENT_NAME, props.__scopeTooltip);
253
+ const ref = React.useRef(null);
254
+ const composedRefs = useComposedRefs(forwardedRef, ref);
255
+ const [pointerGraceArea, setPointerGraceArea] = React.useState(null);
256
+ const { trigger, onClose } = context;
257
+ const content = ref.current;
258
+ const { onPointerInTransitChange } = providerContext;
259
+ const handleRemoveGraceArea = React.useCallback(()=>{
260
+ setPointerGraceArea(null);
261
+ onPointerInTransitChange(false);
262
+ }, [
263
+ onPointerInTransitChange
264
+ ]);
265
+ const handleCreateGraceArea = React.useCallback((event, hoverTarget)=>{
266
+ const currentTarget = event.currentTarget;
267
+ const exitPoint = {
268
+ x: event.clientX,
269
+ y: event.clientY
270
+ };
271
+ const exitSide = getExitSideFromRect(exitPoint, currentTarget.getBoundingClientRect());
272
+ const paddedExitPoints = getPaddedExitPoints(exitPoint, exitSide);
273
+ const hoverTargetPoints = getPointsFromRect(hoverTarget.getBoundingClientRect());
274
+ const graceArea = getHull([
275
+ ...paddedExitPoints,
276
+ ...hoverTargetPoints
277
+ ]);
278
+ setPointerGraceArea(graceArea);
279
+ onPointerInTransitChange(true);
280
+ }, [
281
+ onPointerInTransitChange
282
+ ]);
283
+ React.useEffect(()=>{
284
+ return ()=>handleRemoveGraceArea();
285
+ }, [
286
+ handleRemoveGraceArea
287
+ ]);
288
+ React.useEffect(()=>{
289
+ if (trigger && content) {
290
+ const handleTriggerLeave = (event)=>handleCreateGraceArea(event, content);
291
+ const handleContentLeave = (event)=>handleCreateGraceArea(event, trigger);
292
+ trigger.addEventListener("pointerleave", handleTriggerLeave);
293
+ content.addEventListener("pointerleave", handleContentLeave);
294
+ return ()=>{
295
+ trigger.removeEventListener("pointerleave", handleTriggerLeave);
296
+ content.removeEventListener("pointerleave", handleContentLeave);
297
+ };
298
+ }
299
+ }, [
300
+ trigger,
301
+ content,
302
+ handleCreateGraceArea,
303
+ handleRemoveGraceArea
304
+ ]);
305
+ React.useEffect(()=>{
306
+ if (pointerGraceArea) {
307
+ const handleTrackPointerGrace = (event)=>{
308
+ const target = event.target;
309
+ const pointerPosition = {
310
+ x: event.clientX,
311
+ y: event.clientY
312
+ };
313
+ const hasEnteredTarget = trigger?.contains(target) || content?.contains(target);
314
+ const isPointerOutsideGraceArea = !isPointInPolygon(pointerPosition, pointerGraceArea);
315
+ if (hasEnteredTarget) {
316
+ handleRemoveGraceArea();
317
+ } else if (isPointerOutsideGraceArea) {
318
+ handleRemoveGraceArea();
319
+ onClose();
320
+ }
321
+ };
322
+ document.addEventListener("pointermove", handleTrackPointerGrace);
323
+ return ()=>document.removeEventListener("pointermove", handleTrackPointerGrace);
324
+ }
325
+ }, [
326
+ trigger,
327
+ content,
328
+ pointerGraceArea,
329
+ onClose,
330
+ handleRemoveGraceArea
331
+ ]);
332
+ return /* @__PURE__ */ jsx(TooltipContentImpl, {
333
+ ...props,
334
+ ref: composedRefs
335
+ });
336
+ });
337
+ var [VisuallyHiddenContentContextProvider, useVisuallyHiddenContentContext] = createTooltipContext(TOOLTIP_NAME, {
338
+ isInside: false
339
+ });
340
+ var Slottable = createSlottable("TooltipContent");
341
+ var TooltipContentImpl = React.forwardRef((props, forwardedRef)=>{
342
+ const { __scopeTooltip, children, "aria-label": ariaLabel, onEscapeKeyDown, onPointerDownOutside, ...contentProps } = props;
343
+ const context = useTooltipContext(CONTENT_NAME, __scopeTooltip);
344
+ const popperScope = usePopperScope(__scopeTooltip);
345
+ const { onClose } = context;
346
+ React.useEffect(()=>{
347
+ document.addEventListener(TOOLTIP_OPEN, onClose);
348
+ return ()=>document.removeEventListener(TOOLTIP_OPEN, onClose);
349
+ }, [
350
+ onClose
351
+ ]);
352
+ React.useEffect(()=>{
353
+ if (context.trigger) {
354
+ const handleScroll = (event)=>{
355
+ const target = event.target;
356
+ if (target?.contains(context.trigger)) onClose();
357
+ };
358
+ window.addEventListener("scroll", handleScroll, {
359
+ capture: true
360
+ });
361
+ return ()=>window.removeEventListener("scroll", handleScroll, {
362
+ capture: true
363
+ });
364
+ }
365
+ }, [
366
+ context.trigger,
367
+ onClose
368
+ ]);
369
+ return /* @__PURE__ */ jsx(DismissableLayer, {
370
+ asChild: true,
371
+ disableOutsidePointerEvents: false,
372
+ onEscapeKeyDown,
373
+ onPointerDownOutside,
374
+ onFocusOutside: (event)=>event.preventDefault(),
375
+ onDismiss: onClose,
376
+ children: /* @__PURE__ */ jsxs(Content, {
377
+ "data-state": context.stateAttribute,
378
+ ...popperScope,
379
+ ...contentProps,
380
+ ref: forwardedRef,
381
+ style: {
382
+ ...contentProps.style,
383
+ // re-namespace exposed content custom properties
384
+ ...{
385
+ "--radix-tooltip-content-transform-origin": "var(--radix-popper-transform-origin)",
386
+ "--radix-tooltip-content-available-width": "var(--radix-popper-available-width)",
387
+ "--radix-tooltip-content-available-height": "var(--radix-popper-available-height)",
388
+ "--radix-tooltip-trigger-width": "var(--radix-popper-anchor-width)",
389
+ "--radix-tooltip-trigger-height": "var(--radix-popper-anchor-height)"
390
+ }
391
+ },
392
+ children: [
393
+ /* @__PURE__ */ jsx(Slottable, {
394
+ children
395
+ }),
396
+ /* @__PURE__ */ jsx(VisuallyHiddenContentContextProvider, {
397
+ scope: __scopeTooltip,
398
+ isInside: true,
399
+ children: /* @__PURE__ */ jsx(Root, {
400
+ id: context.contentId,
401
+ role: "tooltip",
402
+ children: ariaLabel || children
403
+ })
404
+ })
405
+ ]
406
+ })
407
+ });
408
+ });
409
+ TooltipContent$1.displayName = CONTENT_NAME;
410
+ var ARROW_NAME = "TooltipArrow";
411
+ var TooltipArrow = React.forwardRef((props, forwardedRef)=>{
412
+ const { __scopeTooltip, ...arrowProps } = props;
413
+ const popperScope = usePopperScope(__scopeTooltip);
414
+ const visuallyHiddenContentContext = useVisuallyHiddenContentContext(ARROW_NAME, __scopeTooltip);
415
+ return visuallyHiddenContentContext.isInside ? null : /* @__PURE__ */ jsx(Arrow, {
416
+ ...popperScope,
417
+ ...arrowProps,
418
+ ref: forwardedRef
419
+ });
420
+ });
421
+ TooltipArrow.displayName = ARROW_NAME;
422
+ function getExitSideFromRect(point, rect) {
423
+ const top = Math.abs(rect.top - point.y);
424
+ const bottom = Math.abs(rect.bottom - point.y);
425
+ const right = Math.abs(rect.right - point.x);
426
+ const left = Math.abs(rect.left - point.x);
427
+ switch(Math.min(top, bottom, right, left)){
428
+ case left:
429
+ return "left";
430
+ case right:
431
+ return "right";
432
+ case top:
433
+ return "top";
434
+ case bottom:
435
+ return "bottom";
436
+ default:
437
+ throw new Error("unreachable");
438
+ }
439
+ }
440
+ function getPaddedExitPoints(exitPoint, exitSide, padding = 5) {
441
+ const paddedExitPoints = [];
442
+ switch(exitSide){
443
+ case "top":
444
+ paddedExitPoints.push({
445
+ x: exitPoint.x - padding,
446
+ y: exitPoint.y + padding
447
+ }, {
448
+ x: exitPoint.x + padding,
449
+ y: exitPoint.y + padding
450
+ });
451
+ break;
452
+ case "bottom":
453
+ paddedExitPoints.push({
454
+ x: exitPoint.x - padding,
455
+ y: exitPoint.y - padding
456
+ }, {
457
+ x: exitPoint.x + padding,
458
+ y: exitPoint.y - padding
459
+ });
460
+ break;
461
+ case "left":
462
+ paddedExitPoints.push({
463
+ x: exitPoint.x + padding,
464
+ y: exitPoint.y - padding
465
+ }, {
466
+ x: exitPoint.x + padding,
467
+ y: exitPoint.y + padding
468
+ });
469
+ break;
470
+ case "right":
471
+ paddedExitPoints.push({
472
+ x: exitPoint.x - padding,
473
+ y: exitPoint.y - padding
474
+ }, {
475
+ x: exitPoint.x - padding,
476
+ y: exitPoint.y + padding
477
+ });
478
+ break;
479
+ }
480
+ return paddedExitPoints;
481
+ }
482
+ function getPointsFromRect(rect) {
483
+ const { top, right, bottom, left } = rect;
484
+ return [
485
+ {
486
+ x: left,
487
+ y: top
488
+ },
489
+ {
490
+ x: right,
491
+ y: top
492
+ },
493
+ {
494
+ x: right,
495
+ y: bottom
496
+ },
497
+ {
498
+ x: left,
499
+ y: bottom
500
+ }
501
+ ];
502
+ }
503
+ function isPointInPolygon(point, polygon) {
504
+ const { x, y } = point;
505
+ let inside = false;
506
+ for(let i = 0, j = polygon.length - 1; i < polygon.length; j = i++){
507
+ const ii = polygon[i];
508
+ const jj = polygon[j];
509
+ const xi = ii.x;
510
+ const yi = ii.y;
511
+ const xj = jj.x;
512
+ const yj = jj.y;
513
+ const intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;
514
+ if (intersect) inside = !inside;
515
+ }
516
+ return inside;
517
+ }
518
+ function getHull(points) {
519
+ const newPoints = points.slice();
520
+ newPoints.sort((a, b)=>{
521
+ if (a.x < b.x) return -1;
522
+ else if (a.x > b.x) return 1;
523
+ else if (a.y < b.y) return -1;
524
+ else if (a.y > b.y) return 1;
525
+ else return 0;
526
+ });
527
+ return getHullPresorted(newPoints);
528
+ }
529
+ function getHullPresorted(points) {
530
+ if (points.length <= 1) return points.slice();
531
+ const upperHull = [];
532
+ for(let i = 0; i < points.length; i++){
533
+ const p = points[i];
534
+ while(upperHull.length >= 2){
535
+ const q = upperHull[upperHull.length - 1];
536
+ const r = upperHull[upperHull.length - 2];
537
+ if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) upperHull.pop();
538
+ else break;
539
+ }
540
+ upperHull.push(p);
541
+ }
542
+ upperHull.pop();
543
+ const lowerHull = [];
544
+ for(let i = points.length - 1; i >= 0; i--){
545
+ const p = points[i];
546
+ while(lowerHull.length >= 2){
547
+ const q = lowerHull[lowerHull.length - 1];
548
+ const r = lowerHull[lowerHull.length - 2];
549
+ if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) lowerHull.pop();
550
+ else break;
551
+ }
552
+ lowerHull.push(p);
553
+ }
554
+ lowerHull.pop();
555
+ if (upperHull.length === 1 && lowerHull.length === 1 && upperHull[0].x === lowerHull[0].x && upperHull[0].y === lowerHull[0].y) {
556
+ return upperHull;
557
+ } else {
558
+ return upperHull.concat(lowerHull);
559
+ }
560
+ }
561
+ var Provider = TooltipProvider$1;
562
+ var Root3 = Tooltip$1;
563
+ var Trigger = TooltipTrigger$1;
564
+ var Portal = TooltipPortal;
565
+ var Content2 = TooltipContent$1;
566
+
567
+ function TooltipProvider({ delayDuration = 700, ...props }) {
568
+ return /*#__PURE__*/ React__default.createElement(Provider, {
569
+ "data-slot": "tooltip-provider",
570
+ delayDuration: delayDuration,
571
+ ...props
572
+ });
573
+ }
574
+ function Tooltip({ ...props }) {
575
+ return /*#__PURE__*/ React__default.createElement(TooltipProvider, null, /*#__PURE__*/ React__default.createElement(Root3, {
576
+ "data-slot": "tooltip",
577
+ ...props
578
+ }));
579
+ }
580
+ function TooltipTrigger({ ...props }) {
581
+ return /*#__PURE__*/ React__default.createElement(Trigger, {
582
+ "data-slot": "tooltip-trigger",
583
+ ...props
584
+ });
585
+ }
586
+ function TooltipContent({ className, sideOffset = 0, children, ...props }) {
587
+ return /*#__PURE__*/ React__default.createElement(Portal, null, /*#__PURE__*/ React__default.createElement(Content2, {
588
+ "data-slot": "tooltip-content",
589
+ sideOffset: sideOffset,
590
+ className: cn("bg-popover text-popover-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 overflow-hidden rounded-md px-3 py-1.5 text-sm shadow-md drop-shadow", className),
591
+ ...props
592
+ }, children));
593
+ }
594
+
595
+ export { Tooltip as T, TooltipTrigger as a, TooltipContent as b, TooltipProvider as c };
596
+ //# sourceMappingURL=tooltip-DLD0ycR4.mjs.map