@avenue-ticketing/ui 0.10.0 → 0.12.0-beta.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.
Files changed (225) hide show
  1. package/README.md +47 -0
  2. package/dist/badge-types-B67wcd4m.d.ts +22 -0
  3. package/dist/react/app-store-buttons-outline.d.ts +17 -0
  4. package/dist/react/app-store-buttons-outline.js +582 -0
  5. package/dist/react/app-store-buttons-outline.js.map +1 -0
  6. package/dist/react/app-store-buttons.d.ts +20 -0
  7. package/dist/react/app-store-buttons.js +817 -0
  8. package/dist/react/app-store-buttons.js.map +1 -0
  9. package/dist/react/avatar-label-group.d.ts +14 -0
  10. package/dist/react/avatar-label-group.js +183 -0
  11. package/dist/react/avatar-label-group.js.map +1 -0
  12. package/dist/react/avatar-profile-photo.d.ts +9 -0
  13. package/dist/react/avatar-profile-photo.js +202 -0
  14. package/dist/react/avatar-profile-photo.js.map +1 -0
  15. package/dist/react/avatar.d.ts +66 -40
  16. package/dist/react/avatar.js +159 -149
  17. package/dist/react/avatar.js.map +1 -1
  18. package/dist/react/badge-groups.d.ts +25 -0
  19. package/dist/react/badge-groups.js +162 -0
  20. package/dist/react/badge-groups.js.map +1 -0
  21. package/dist/react/badge.d.ts +123 -59
  22. package/dist/react/badge.js +314 -86
  23. package/dist/react/badge.js.map +1 -1
  24. package/dist/react/button-group.d.ts +43 -0
  25. package/dist/react/button-group.js +108 -0
  26. package/dist/react/button-group.js.map +1 -0
  27. package/dist/react/button-utility.d.ts +47 -0
  28. package/dist/react/button-utility.js +158 -0
  29. package/dist/react/button-utility.js.map +1 -0
  30. package/dist/react/button.d.ts +112 -37
  31. package/dist/react/button.js +270 -55
  32. package/dist/react/button.js.map +1 -1
  33. package/dist/react/checkbox.d.ts +25 -8
  34. package/dist/react/checkbox.js +112 -110
  35. package/dist/react/checkbox.js.map +1 -1
  36. package/dist/react/close-button.d.ts +25 -0
  37. package/dist/react/close-button.js +54 -0
  38. package/dist/react/close-button.js.map +1 -0
  39. package/dist/react/combobox.d.ts +17 -0
  40. package/dist/react/combobox.js +322 -0
  41. package/dist/react/combobox.js.map +1 -0
  42. package/dist/react/dialog.d.ts +15 -15
  43. package/dist/react/dialog.js +43 -108
  44. package/dist/react/dialog.js.map +1 -1
  45. package/dist/react/dropdown-account-breadcrumb.d.ts +5 -0
  46. package/dist/react/dropdown-account-breadcrumb.js +319 -0
  47. package/dist/react/dropdown-account-breadcrumb.js.map +1 -0
  48. package/dist/react/dropdown-account-button.d.ts +5 -0
  49. package/dist/react/dropdown-account-button.js +773 -0
  50. package/dist/react/dropdown-account-button.js.map +1 -0
  51. package/dist/react/dropdown-account-card-md.d.ts +5 -0
  52. package/dist/react/dropdown-account-card-md.js +549 -0
  53. package/dist/react/dropdown-account-card-md.js.map +1 -0
  54. package/dist/react/dropdown-account-card-sm.d.ts +5 -0
  55. package/dist/react/dropdown-account-card-sm.js +527 -0
  56. package/dist/react/dropdown-account-card-sm.js.map +1 -0
  57. package/dist/react/dropdown-account-card-xs.d.ts +5 -0
  58. package/dist/react/dropdown-account-card-xs.js +507 -0
  59. package/dist/react/dropdown-account-card-xs.js.map +1 -0
  60. package/dist/react/dropdown-avatar.d.ts +5 -0
  61. package/dist/react/dropdown-avatar.js +790 -0
  62. package/dist/react/dropdown-avatar.js.map +1 -0
  63. package/dist/react/dropdown-button-advanced.d.ts +5 -0
  64. package/dist/react/dropdown-button-advanced.js +799 -0
  65. package/dist/react/dropdown-button-advanced.js.map +1 -0
  66. package/dist/react/dropdown-button-link.d.ts +5 -0
  67. package/dist/react/dropdown-button-link.js +501 -0
  68. package/dist/react/dropdown-button-link.js.map +1 -0
  69. package/dist/react/dropdown-button-simple.d.ts +5 -0
  70. package/dist/react/dropdown-button-simple.js +754 -0
  71. package/dist/react/dropdown-button-simple.js.map +1 -0
  72. package/dist/react/dropdown-icon-advanced.d.ts +5 -0
  73. package/dist/react/dropdown-icon-advanced.js +543 -0
  74. package/dist/react/dropdown-icon-advanced.js.map +1 -0
  75. package/dist/react/dropdown-icon-simple.d.ts +5 -0
  76. package/dist/react/dropdown-icon-simple.js +505 -0
  77. package/dist/react/dropdown-icon-simple.js.map +1 -0
  78. package/dist/react/dropdown-integration.d.ts +5 -0
  79. package/dist/react/dropdown-integration.js +1325 -0
  80. package/dist/react/dropdown-integration.js.map +1 -0
  81. package/dist/react/dropdown-search-advanced.d.ts +5 -0
  82. package/dist/react/dropdown-search-advanced.js +998 -0
  83. package/dist/react/dropdown-search-advanced.js.map +1 -0
  84. package/dist/react/dropdown-search-simple.d.ts +5 -0
  85. package/dist/react/dropdown-search-simple.js +960 -0
  86. package/dist/react/dropdown-search-simple.js.map +1 -0
  87. package/dist/react/dropdown.d.ts +32 -133
  88. package/dist/react/dropdown.js +404 -1351
  89. package/dist/react/dropdown.js.map +1 -1
  90. package/dist/react/file-upload-trigger.d.ts +34 -0
  91. package/dist/react/file-upload-trigger.js +39 -0
  92. package/dist/react/file-upload-trigger.js.map +1 -0
  93. package/dist/react/form.d.ts +10 -0
  94. package/dist/react/form.js +11 -0
  95. package/dist/react/form.js.map +1 -0
  96. package/dist/react/hint-text.d.ts +17 -0
  97. package/dist/react/hint-text.js +36 -0
  98. package/dist/react/hint-text.js.map +1 -0
  99. package/dist/react/hook-form.d.ts +35 -0
  100. package/dist/react/hook-form.js +50 -0
  101. package/dist/react/hook-form.js.map +1 -0
  102. package/dist/react/input-date.d.ts +43 -0
  103. package/dist/react/input-date.js +306 -0
  104. package/dist/react/input-date.js.map +1 -0
  105. package/dist/react/input-file.d.ts +45 -0
  106. package/dist/react/input-file.js +748 -0
  107. package/dist/react/input-file.js.map +1 -0
  108. package/dist/react/input-group.d.ts +37 -0
  109. package/dist/react/input-group.js +251 -0
  110. package/dist/react/input-group.js.map +1 -0
  111. package/dist/react/input-number.d.ts +32 -0
  112. package/dist/react/input-number.js +553 -0
  113. package/dist/react/input-number.js.map +1 -0
  114. package/dist/react/input-payment.d.ts +16 -0
  115. package/dist/react/input-payment.js +593 -0
  116. package/dist/react/input-payment.js.map +1 -0
  117. package/dist/react/input-tags-outer.d.ts +53 -0
  118. package/dist/react/input-tags-outer.js +607 -0
  119. package/dist/react/input-tags-outer.js.map +1 -0
  120. package/dist/react/input-tags.d.ts +53 -0
  121. package/dist/react/input-tags.js +565 -0
  122. package/dist/react/input-tags.js.map +1 -0
  123. package/dist/react/input.d.ts +71 -22
  124. package/dist/react/input.js +332 -45
  125. package/dist/react/input.js.map +1 -1
  126. package/dist/react/label.d.ts +18 -0
  127. package/dist/react/label.js +112 -0
  128. package/dist/react/label.js.map +1 -0
  129. package/dist/react/multi-select.d.ts +89 -0
  130. package/dist/react/multi-select.js +1036 -0
  131. package/dist/react/multi-select.js.map +1 -0
  132. package/dist/react/pin-input.d.ts +59 -0
  133. package/dist/react/pin-input.js +229 -0
  134. package/dist/react/pin-input.js.map +1 -0
  135. package/dist/react/popover.d.ts +7 -73
  136. package/dist/react/popover.js +23 -569
  137. package/dist/react/popover.js.map +1 -1
  138. package/dist/react/progress-circle.d.ts +9 -0
  139. package/dist/react/progress-circle.js +36 -0
  140. package/dist/react/progress-circle.js.map +1 -0
  141. package/dist/react/progress-circles.d.ts +14 -0
  142. package/dist/react/progress-circles.js +160 -0
  143. package/dist/react/progress-circles.js.map +1 -0
  144. package/dist/react/progress-indicators.d.ts +52 -0
  145. package/dist/react/progress-indicators.js +78 -0
  146. package/dist/react/progress-indicators.js.map +1 -0
  147. package/dist/react/radio-buttons.d.ts +35 -0
  148. package/dist/react/radio-buttons.js +116 -0
  149. package/dist/react/radio-buttons.js.map +1 -0
  150. package/dist/react/scroll-header.d.ts +6 -0
  151. package/dist/react/scroll-header.js +42 -61
  152. package/dist/react/scroll-header.js.map +1 -1
  153. package/dist/react/scroll-wheel.d.ts +4 -5
  154. package/dist/react/scroll-wheel.js +19 -15
  155. package/dist/react/scroll-wheel.js.map +1 -1
  156. package/dist/react/select-item.d.ts +13 -0
  157. package/dist/react/select-item.js +336 -0
  158. package/dist/react/select-item.js.map +1 -0
  159. package/dist/react/select-native.d.ts +17 -0
  160. package/dist/react/select-native.js +203 -0
  161. package/dist/react/select-native.js.map +1 -0
  162. package/dist/react/select.d.ts +18 -61
  163. package/dist/react/select.js +625 -923
  164. package/dist/react/select.js.map +1 -1
  165. package/dist/react/sheet.d.ts +19 -19
  166. package/dist/react/sheet.js +97 -219
  167. package/dist/react/sheet.js.map +1 -1
  168. package/dist/react/slider.d.ts +15 -0
  169. package/dist/react/slider.js +66 -0
  170. package/dist/react/slider.js.map +1 -0
  171. package/dist/react/social-button.d.ts +55 -0
  172. package/dist/react/social-button.js +263 -0
  173. package/dist/react/social-button.js.map +1 -0
  174. package/dist/react/social-logos.d.ts +20 -0
  175. package/dist/react/social-logos.js +131 -0
  176. package/dist/react/social-logos.js.map +1 -0
  177. package/dist/react/switch.d.ts +21 -36
  178. package/dist/react/switch.js +121 -109
  179. package/dist/react/switch.js.map +1 -1
  180. package/dist/react/tag-select.d.ts +44 -0
  181. package/dist/react/tag-select.js +1062 -0
  182. package/dist/react/tag-select.js.map +1 -0
  183. package/dist/react/tags.d.ts +30 -0
  184. package/dist/react/tags.js +228 -0
  185. package/dist/react/tags.js.map +1 -0
  186. package/dist/react/textarea.d.ts +40 -4
  187. package/dist/react/textarea.js +193 -27
  188. package/dist/react/textarea.js.map +1 -1
  189. package/dist/react/tooltip.d.ts +30 -43
  190. package/dist/react/tooltip.js +65 -521
  191. package/dist/react/tooltip.js.map +1 -1
  192. package/dist/select-shared-B3Y5SMXU.d.ts +62 -0
  193. package/package.json +28 -21
  194. package/source.css +2 -12
  195. package/theme.css +883 -79
  196. package/dist/react/calendar.d.ts +0 -13
  197. package/dist/react/calendar.js +0 -4639
  198. package/dist/react/calendar.js.map +0 -1
  199. package/dist/react/card.d.ts +0 -11
  200. package/dist/react/card.js +0 -113
  201. package/dist/react/card.js.map +0 -1
  202. package/dist/react/datetime-picker.d.ts +0 -21
  203. package/dist/react/datetime-picker.js +0 -6142
  204. package/dist/react/datetime-picker.js.map +0 -1
  205. package/dist/react/pagination.d.ts +0 -28
  206. package/dist/react/pagination.js +0 -262
  207. package/dist/react/pagination.js.map +0 -1
  208. package/dist/react/table-pagination.d.ts +0 -15
  209. package/dist/react/table-pagination.js +0 -1247
  210. package/dist/react/table-pagination.js.map +0 -1
  211. package/dist/react/table-view/column-menu.d.ts +0 -15
  212. package/dist/react/table-view/column-menu.js +0 -1049
  213. package/dist/react/table-view/column-menu.js.map +0 -1
  214. package/dist/react/table-view/index.d.ts +0 -70
  215. package/dist/react/table-view/index.js +0 -2284
  216. package/dist/react/table-view/index.js.map +0 -1
  217. package/dist/react/table.d.ts +0 -86
  218. package/dist/react/table.js +0 -414
  219. package/dist/react/table.js.map +0 -1
  220. package/dist/react/tabs.d.ts +0 -34
  221. package/dist/react/tabs.js +0 -423
  222. package/dist/react/tabs.js.map +0 -1
  223. package/dist/react/time-picker.d.ts +0 -22
  224. package/dist/react/time-picker.js +0 -856
  225. package/dist/react/time-picker.js.map +0 -1
@@ -1,532 +1,76 @@
1
- import * as React from 'react';
2
- import { createPortal } from 'react-dom';
3
- import { clsx } from 'clsx';
4
- import { twMerge } from 'tailwind-merge';
5
- import { jsx, jsxs } from 'react/jsx-runtime';
1
+ import { TooltipTrigger as TooltipTrigger$1, Tooltip as Tooltip$1, OverlayArrow, Button } from 'react-aria-components';
2
+ import { extendTailwindMerge } from 'tailwind-merge';
3
+ import { jsxs, jsx } from 'react/jsx-runtime';
6
4
 
7
- function cn(...inputs) {
8
- return twMerge(clsx(inputs));
9
- }
10
- var ARROW_SPAN_PX = 14;
11
- var ARROW_HALF_PX = ARROW_SPAN_PX / 2;
12
- var ARROW_EDGE_PAD_PX = 5;
13
- function computeArrowCenter(triggerRect, layerRect, side) {
14
- const midX = triggerRect.left + triggerRect.width / 2;
15
- const midY = triggerRect.top + triggerRect.height / 2;
16
- const min = ARROW_EDGE_PAD_PX + ARROW_HALF_PX;
17
- if (side === "top" || side === "bottom") {
18
- return Math.max(min, Math.min(midX - layerRect.left, layerRect.width - min));
19
- }
20
- return Math.max(min, Math.min(midY - layerRect.top, layerRect.height - min));
21
- }
22
- function computePosition(trigger, layer, side, align, offset, viewportPadding) {
23
- const triggerRect = trigger.getBoundingClientRect();
24
- const pw = layer.offsetWidth;
25
- const ph = layer.offsetHeight;
26
- const vw = window.innerWidth;
27
- const vh = window.innerHeight;
28
- let top = 0;
29
- let left = 0;
30
- let effectiveSide = side;
31
- const place = (s) => {
32
- switch (s) {
33
- case "bottom":
34
- top = triggerRect.bottom + offset;
35
- break;
36
- case "top":
37
- top = triggerRect.top - ph - offset;
38
- break;
39
- case "right":
40
- left = triggerRect.right + offset;
41
- top = align === "start" ? triggerRect.top : align === "end" ? triggerRect.bottom - ph : triggerRect.top + triggerRect.height / 2 - ph / 2;
42
- return;
43
- case "left":
44
- left = triggerRect.left - pw - offset;
45
- top = align === "start" ? triggerRect.top : align === "end" ? triggerRect.bottom - ph : triggerRect.top + triggerRect.height / 2 - ph / 2;
46
- return;
47
- }
48
- if (align === "start") left = triggerRect.left;
49
- else if (align === "end") left = triggerRect.right - pw;
50
- else left = triggerRect.left + triggerRect.width / 2 - pw / 2;
51
- };
52
- place(side);
53
- const tryFlip = () => {
54
- if (side === "bottom" && top + ph > vh - viewportPadding) {
55
- const newTop = triggerRect.top - ph - offset;
56
- if (newTop >= viewportPadding) {
57
- effectiveSide = "top";
58
- top = newTop;
59
- }
60
- } else if (side === "top" && top < viewportPadding) {
61
- const newTop = triggerRect.bottom + offset;
62
- if (newTop + ph <= vh - viewportPadding) {
63
- effectiveSide = "bottom";
64
- top = newTop;
65
- }
66
- } else if (side === "right" && left + pw > vw - viewportPadding) {
67
- const newLeft = triggerRect.left - pw - offset;
68
- if (newLeft >= viewportPadding) {
69
- effectiveSide = "left";
70
- left = newLeft;
71
- }
72
- } else if (side === "left" && left < viewportPadding) {
73
- const newLeft = triggerRect.right + offset;
74
- if (newLeft + pw <= vw - viewportPadding) {
75
- effectiveSide = "right";
76
- left = newLeft;
77
- }
78
- }
79
- };
80
- tryFlip();
81
- return {
82
- top,
83
- left,
84
- side: effectiveSide,
85
- arrowCenter: 0
86
- };
87
- }
88
- function layerRectAtPosition(top, left, width, height) {
89
- return new DOMRect(left, top, width, height);
90
- }
91
- var arrowStrokeProps = {
92
- fill: "none",
93
- stroke: "currentColor",
94
- strokeWidth: 1.25,
95
- strokeLinecap: "round",
96
- strokeLinejoin: "round",
97
- vectorEffect: "non-scaling-stroke",
98
- className: "text-primary/10"
99
- };
100
- function TooltipArrowGraphic({ side }) {
101
- const fillCls = "fill-background";
102
- if (side === "bottom") {
103
- const w2 = ARROW_SPAN_PX;
104
- const h2 = 8;
105
- const pts2 = `0,${h2} ${w2 / 2},0 ${w2},${h2}`;
106
- return /* @__PURE__ */ jsxs(
107
- "svg",
108
- {
109
- width: w2,
110
- height: h2,
111
- viewBox: `0 0 ${w2} ${h2}`,
112
- className: "block shrink-0",
113
- "aria-hidden": true,
114
- children: [
115
- /* @__PURE__ */ jsx("polygon", { points: pts2, className: fillCls }),
116
- /* @__PURE__ */ jsx("polyline", { points: pts2, ...arrowStrokeProps })
117
- ]
118
- }
119
- );
120
- }
121
- if (side === "top") {
122
- const w2 = ARROW_SPAN_PX;
123
- const h2 = 8;
124
- const pts2 = `0,0 ${w2 / 2},${h2} ${w2},0`;
125
- return /* @__PURE__ */ jsxs(
126
- "svg",
127
- {
128
- width: w2,
129
- height: h2,
130
- viewBox: `0 0 ${w2} ${h2}`,
131
- className: "block shrink-0",
132
- "aria-hidden": true,
133
- children: [
134
- /* @__PURE__ */ jsx("polygon", { points: pts2, className: fillCls }),
135
- /* @__PURE__ */ jsx("polyline", { points: pts2, ...arrowStrokeProps })
136
- ]
137
- }
138
- );
139
- }
140
- if (side === "right") {
141
- const w2 = 8;
142
- const h2 = ARROW_SPAN_PX;
143
- const pts2 = `${w2},0 0,${h2 / 2} ${w2},${h2}`;
144
- return /* @__PURE__ */ jsxs(
145
- "svg",
146
- {
147
- width: w2,
148
- height: h2,
149
- viewBox: `0 0 ${w2} ${h2}`,
150
- className: "block shrink-0",
151
- "aria-hidden": true,
152
- children: [
153
- /* @__PURE__ */ jsx("polygon", { points: pts2, className: fillCls }),
154
- /* @__PURE__ */ jsx("polyline", { points: pts2, ...arrowStrokeProps })
155
- ]
156
- }
157
- );
158
- }
159
- const w = 8;
160
- const h = ARROW_SPAN_PX;
161
- const pts = `0,0 ${w},${h / 2} 0,${h}`;
162
- return /* @__PURE__ */ jsxs(
163
- "svg",
164
- {
165
- width: w,
166
- height: h,
167
- viewBox: `0 0 ${w} ${h}`,
168
- className: "block shrink-0",
169
- "aria-hidden": true,
170
- children: [
171
- /* @__PURE__ */ jsx("polygon", { points: pts, className: fillCls }),
172
- /* @__PURE__ */ jsx("polyline", { points: pts, ...arrowStrokeProps })
173
- ]
5
+ var twMerge = extendTailwindMerge({
6
+ extend: {
7
+ theme: {
8
+ text: ["display-xs", "display-sm", "display-md", "display-lg", "display-xl", "display-2xl"]
174
9
  }
175
- );
176
- }
177
- function tooltipArrowWrapperStyle(side, arrowCenter) {
178
- const base = {
179
- position: "absolute",
180
- zIndex: 1,
181
- pointerEvents: "none",
182
- lineHeight: 0
183
- };
184
- switch (side) {
185
- case "bottom":
186
- return {
187
- ...base,
188
- left: arrowCenter,
189
- top: 0,
190
- transform: "translate(-50%, -100%)"
191
- };
192
- case "top":
193
- return {
194
- ...base,
195
- left: arrowCenter,
196
- bottom: 0,
197
- transform: "translate(-50%, 100%)"
198
- };
199
- case "right":
200
- return {
201
- ...base,
202
- top: arrowCenter,
203
- left: 0,
204
- transform: "translate(-100%, -50%)"
205
- };
206
- case "left":
207
- return {
208
- ...base,
209
- top: arrowCenter,
210
- right: 0,
211
- transform: "translate(100%, -50%)"
212
- };
213
- }
214
- }
215
- var TooltipContext = React.createContext(null);
216
- function useTooltip() {
217
- const ctx = React.useContext(TooltipContext);
218
- if (!ctx) {
219
- throw new Error("Tooltip components must be used within <Tooltip>");
220
10
  }
221
- return ctx;
222
- }
11
+ });
12
+ var cx = twMerge;
223
13
  var Tooltip = ({
14
+ title,
15
+ description,
224
16
  children,
225
- delayDuration = 0,
226
- closeDelay = 40,
227
- disabled = false,
228
- open: controlledOpen,
229
- onOpenChange
17
+ arrow = false,
18
+ delay = 100,
19
+ closeDelay = 0,
20
+ trigger,
21
+ isDisabled,
22
+ isOpen,
23
+ defaultOpen,
24
+ offset = 6,
25
+ crossOffset,
26
+ placement = "top",
27
+ onOpenChange,
28
+ ...tooltipProps
230
29
  }) => {
231
- const [uncontrolledOpen, setUncontrolledOpen] = React.useState(false);
232
- const isControlled = controlledOpen !== void 0;
233
- const open = disabled ? false : isControlled ? controlledOpen : uncontrolledOpen;
234
- const triggerRef = React.useRef(null);
235
- const contentId = React.useId();
236
- const openTimerRef = React.useRef(null);
237
- const closeTimerRef = React.useRef(null);
238
- const setOpen = React.useCallback(
239
- (next) => {
240
- if (disabled) return;
241
- if (!isControlled) setUncontrolledOpen(next);
242
- onOpenChange?.(next);
243
- },
244
- [disabled, isControlled, onOpenChange]
245
- );
246
- const clearTimers = React.useCallback(() => {
247
- if (openTimerRef.current) clearTimeout(openTimerRef.current);
248
- if (closeTimerRef.current) clearTimeout(closeTimerRef.current);
249
- openTimerRef.current = null;
250
- closeTimerRef.current = null;
251
- }, []);
252
- const scheduleOpen = React.useCallback(
253
- (instant) => {
254
- clearTimers();
255
- if (instant || delayDuration <= 0) {
256
- setOpen(true);
257
- return;
258
- }
259
- openTimerRef.current = setTimeout(() => {
260
- openTimerRef.current = null;
261
- setOpen(true);
262
- }, delayDuration);
263
- },
264
- [clearTimers, delayDuration, setOpen]
265
- );
266
- const scheduleClose = React.useCallback(() => {
267
- if (openTimerRef.current) {
268
- clearTimeout(openTimerRef.current);
269
- openTimerRef.current = null;
270
- }
271
- closeTimerRef.current = setTimeout(() => {
272
- closeTimerRef.current = null;
273
- setOpen(false);
274
- }, closeDelay);
275
- }, [closeDelay, setOpen]);
276
- const cancelClose = React.useCallback(() => {
277
- if (closeTimerRef.current) {
278
- clearTimeout(closeTimerRef.current);
279
- closeTimerRef.current = null;
280
- }
281
- }, []);
282
- React.useEffect(() => () => clearTimers(), [clearTimers]);
283
- const value = React.useMemo(
284
- () => ({
285
- open,
286
- setOpen,
287
- triggerRef,
288
- contentId,
289
- delayDuration,
290
- closeDelay,
291
- disabled: Boolean(disabled),
292
- openTimerRef,
293
- closeTimerRef,
294
- clearTimers,
295
- scheduleOpen,
296
- scheduleClose,
297
- cancelClose
298
- }),
299
- [
300
- open,
301
- setOpen,
302
- contentId,
303
- delayDuration,
304
- closeDelay,
305
- disabled,
306
- clearTimers,
307
- scheduleOpen,
308
- scheduleClose,
309
- cancelClose
310
- ]
311
- );
312
- return /* @__PURE__ */ jsx(TooltipContext.Provider, { value, children });
313
- };
314
- function mergeRefs(...refs) {
315
- return (node) => {
316
- for (const ref of refs) {
317
- if (!ref) continue;
318
- if (typeof ref === "function") ref(node);
319
- else ref.current = node;
320
- }
321
- };
322
- }
323
- var TooltipTrigger = React.forwardRef((props, ref) => {
324
- const {
30
+ const isTopOrBottomLeft = ["top left", "top end", "bottom left", "bottom end"].includes(placement);
31
+ const isTopOrBottomRight = ["top right", "top start", "bottom right", "bottom start"].includes(placement);
32
+ const calculatedCrossOffset = isTopOrBottomLeft ? -12 : isTopOrBottomRight ? 12 : 0;
33
+ return /* @__PURE__ */ jsxs(TooltipTrigger$1, { ...{ trigger, delay, closeDelay, isDisabled, isOpen, defaultOpen, onOpenChange }, children: [
325
34
  children,
326
- asChild,
327
- className,
328
- onPointerEnter,
329
- onPointerLeave,
330
- onFocus,
331
- onBlur,
332
- ...restProps
333
- } = props;
334
- const {
335
- open,
336
- triggerRef,
337
- contentId,
338
- disabled,
339
- scheduleOpen,
340
- scheduleClose,
341
- cancelClose,
342
- clearTimers
343
- } = useTooltip();
344
- const describedBy = open ? contentId : void 0;
345
- const handlePointerEnter = (e) => {
346
- onPointerEnter?.(e);
347
- if (disabled || e.defaultPrevented) return;
348
- cancelClose();
349
- scheduleOpen(false);
350
- };
351
- const handlePointerLeave = (e) => {
352
- onPointerLeave?.(e);
353
- if (disabled || e.defaultPrevented) return;
354
- scheduleClose();
355
- };
356
- const handleFocus = (e) => {
357
- onFocus?.(e);
358
- if (disabled || e.defaultPrevented) return;
359
- clearTimers();
360
- scheduleOpen(true);
361
- };
362
- const handleBlur = (e) => {
363
- onBlur?.(e);
364
- if (disabled || e.defaultPrevented) return;
365
- scheduleClose();
366
- };
367
- if (asChild && React.isValidElement(children)) {
368
- const child = children;
369
- return React.cloneElement(child, {
370
- ...child.props,
371
- ...restProps,
372
- ref: mergeRefs(ref, triggerRef, child.props.ref),
373
- className: cn(child.props.className, className),
374
- "aria-describedby": [
375
- describedBy,
376
- child.props["aria-describedby"],
377
- restProps["aria-describedby"]
378
- ].filter(Boolean).join(" ") || void 0,
379
- onPointerEnter: (e) => {
380
- child.props.onPointerEnter?.(e);
381
- handlePointerEnter(e);
382
- },
383
- onPointerLeave: (e) => {
384
- child.props.onPointerLeave?.(e);
385
- handlePointerLeave(e);
386
- },
387
- onFocus: (e) => {
388
- child.props.onFocus?.(e);
389
- handleFocus(e);
390
- },
391
- onBlur: (e) => {
392
- child.props.onBlur?.(e);
393
- handleBlur(e);
35
+ /* @__PURE__ */ jsx(
36
+ Tooltip$1,
37
+ {
38
+ ...tooltipProps,
39
+ offset,
40
+ placement,
41
+ crossOffset: crossOffset ?? calculatedCrossOffset,
42
+ className: ({ isEntering, isExiting }) => cx(isEntering && "ease-out animate-in", isExiting && "ease-in animate-out"),
43
+ children: ({ isEntering, isExiting }) => /* @__PURE__ */ jsxs(
44
+ "div",
45
+ {
46
+ className: cx(
47
+ "z-50 flex max-w-xs origin-(--trigger-anchor-point) flex-col items-start gap-1 rounded-lg bg-primary-solid px-3 shadow-lg will-change-transform",
48
+ description ? "py-3" : "py-2",
49
+ isEntering && "ease-out animate-in fade-in zoom-in-95 in-placement-left:slide-in-from-right-0.5 in-placement-right:slide-in-from-left-0.5 in-placement-top:slide-in-from-bottom-0.5 in-placement-bottom:slide-in-from-top-0.5",
50
+ isExiting && "ease-in animate-out fade-out zoom-out-95 in-placement-left:slide-out-to-right-0.5 in-placement-right:slide-out-to-left-0.5 in-placement-top:slide-out-to-bottom-0.5 in-placement-bottom:slide-out-to-top-0.5"
51
+ ),
52
+ children: [
53
+ /* @__PURE__ */ jsx("span", { className: "text-xs font-semibold text-white", children: title }),
54
+ description && /* @__PURE__ */ jsx("span", { className: "text-xs font-medium text-tooltip-supporting-text", children: description }),
55
+ arrow && /* @__PURE__ */ jsx(OverlayArrow, { children: /* @__PURE__ */ jsx(
56
+ "svg",
57
+ {
58
+ viewBox: "0 0 100 100",
59
+ className: "size-2.5 fill-bg-primary-solid in-placement-left:-rotate-90 in-placement-right:rotate-90 in-placement-top:rotate-0 in-placement-bottom:rotate-180",
60
+ children: /* @__PURE__ */ jsx("path", { d: "M0,0 L35.858,35.858 Q50,50 64.142,35.858 L100,0 Z" })
61
+ }
62
+ ) })
63
+ ]
64
+ }
65
+ )
394
66
  }
395
- });
396
- }
397
- return /* @__PURE__ */ jsx(
398
- "span",
399
- {
400
- ref: mergeRefs(ref, triggerRef),
401
- className: cn("inline-flex", className),
402
- "aria-describedby": describedBy,
403
- onPointerEnter: handlePointerEnter,
404
- onPointerLeave: handlePointerLeave,
405
- onFocus: handleFocus,
406
- onBlur: handleBlur,
407
- ...restProps,
408
- children
409
- }
410
- );
411
- });
412
- TooltipTrigger.displayName = "TooltipTrigger";
413
- var TooltipContent = React.forwardRef(
414
- ({
415
- children,
416
- side = "top",
417
- align = "center",
418
- offset = 12,
419
- viewportPadding = 8,
420
- container,
421
- showArrow = true,
422
- className,
423
- style,
424
- ...props
425
- }, ref) => {
426
- const {
427
- open,
428
- setOpen,
429
- triggerRef,
430
- contentId,
431
- disabled,
432
- scheduleClose,
433
- cancelClose
434
- } = useTooltip();
435
- const [position, setPosition] = React.useState({
436
- top: -9999,
437
- left: -9999,
438
- side,
439
- arrowCenter: 0
440
- });
441
- const layerRef = React.useRef(null);
442
- const mergedRef = mergeRefs(ref, layerRef);
443
- React.useLayoutEffect(() => {
444
- if (!open || disabled || !triggerRef.current || !layerRef.current) return;
445
- const update = () => {
446
- if (!triggerRef.current || !layerRef.current) return;
447
- const trigger = triggerRef.current;
448
- const layer = layerRef.current;
449
- const next = computePosition(
450
- trigger,
451
- layer,
452
- side,
453
- align,
454
- offset,
455
- viewportPadding
456
- );
457
- const tr = trigger.getBoundingClientRect();
458
- const lrSynth = layerRectAtPosition(
459
- next.top,
460
- next.left,
461
- layer.offsetWidth,
462
- layer.offsetHeight
463
- );
464
- setPosition({
465
- ...next,
466
- arrowCenter: computeArrowCenter(tr, lrSynth, next.side)
467
- });
468
- };
469
- update();
470
- window.addEventListener("resize", update);
471
- window.addEventListener("scroll", update, true);
472
- return () => {
473
- window.removeEventListener("resize", update);
474
- window.removeEventListener("scroll", update, true);
475
- };
476
- }, [open, disabled, side, align, offset, viewportPadding, triggerRef]);
477
- React.useEffect(() => {
478
- if (!open || disabled) return;
479
- const onKey = (e) => {
480
- if (e.key === "Escape") setOpen(false);
481
- };
482
- window.addEventListener("keydown", onKey);
483
- return () => window.removeEventListener("keydown", onKey);
484
- }, [open, disabled, setOpen]);
485
- const resolvedContainer = container !== void 0 ? container : typeof document !== "undefined" ? document.body : null;
486
- if (!open || !resolvedContainer) return null;
487
- return createPortal(
488
- /* @__PURE__ */ jsxs(
489
- "div",
490
- {
491
- ...props,
492
- ref: mergedRef,
493
- id: contentId,
494
- role: "tooltip",
495
- "data-slot": "tooltip-content",
496
- "data-side": position.side,
497
- className: cn(
498
- "bg-background text-primary border-primary/10 pointer-events-auto fixed z-50 max-w-xs overflow-visible rounded-md border px-3 py-1.5 text-xs leading-snug shadow-md",
499
- className
500
- ),
501
- style: {
502
- top: position.top,
503
- left: position.left,
504
- ...style
505
- },
506
- onPointerEnter: () => cancelClose(),
507
- onPointerLeave: () => scheduleClose(),
508
- children: [
509
- showArrow ? /* @__PURE__ */ jsx(
510
- "span",
511
- {
512
- "aria-hidden": true,
513
- style: tooltipArrowWrapperStyle(
514
- position.side,
515
- position.arrowCenter
516
- ),
517
- children: /* @__PURE__ */ jsx(TooltipArrowGraphic, { side: position.side })
518
- }
519
- ) : null,
520
- /* @__PURE__ */ jsx("div", { className: "relative z-[2] max-w-full", children })
521
- ]
522
- }
523
- ),
524
- resolvedContainer
525
- );
526
- }
527
- );
528
- TooltipContent.displayName = "TooltipContent";
67
+ )
68
+ ] });
69
+ };
70
+ var TooltipTrigger = ({ children, className, ...buttonProps }) => {
71
+ return /* @__PURE__ */ jsx(Button, { ...buttonProps, className: (values) => cx("h-max w-max outline-hidden", typeof className === "function" ? className(values) : className), children });
72
+ };
529
73
 
530
- export { Tooltip, TooltipContent, TooltipTrigger };
74
+ export { Tooltip, TooltipTrigger };
531
75
  //# sourceMappingURL=tooltip.js.map
532
76
  //# sourceMappingURL=tooltip.js.map