asheeui 0.6.5 → 0.6.6

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 (70) hide show
  1. package/dist/components/accordion/Accordion.js +10 -10
  2. package/dist/components/autocomplete/Autocomplete.d.ts +8 -0
  3. package/dist/components/autocomplete/Autocomplete.d.ts.map +1 -1
  4. package/dist/components/autocomplete/Autocomplete.js +120 -118
  5. package/dist/components/autocomplete/autocomplete-config.d.ts +27 -1
  6. package/dist/components/autocomplete/autocomplete-config.d.ts.map +1 -1
  7. package/dist/components/autocomplete/autocomplete-config.js +14 -6
  8. package/dist/components/date-picker/DatePicker.d.ts +20 -0
  9. package/dist/components/date-picker/DatePicker.d.ts.map +1 -1
  10. package/dist/components/date-picker/DatePicker.js +230 -229
  11. package/dist/components/date-picker/date-picker-config.d.ts +16 -0
  12. package/dist/components/date-picker/date-picker-config.d.ts.map +1 -1
  13. package/dist/components/date-picker/date-picker-config.js +14 -10
  14. package/dist/components/keyboard/OnScreenKeyboard.d.ts +16 -6
  15. package/dist/components/keyboard/OnScreenKeyboard.d.ts.map +1 -1
  16. package/dist/components/keyboard/OnScreenKeyboard.js +96 -90
  17. package/dist/components/keyboard/index.js +1 -0
  18. package/dist/components/keyboard/keyboard-config.d.ts +27 -1
  19. package/dist/components/keyboard/keyboard-config.d.ts.map +1 -1
  20. package/dist/components/keyboard/keyboard-config.js +12 -8
  21. package/dist/components/keyboard/keyboard-context.d.ts +4 -7
  22. package/dist/components/keyboard/keyboard-context.d.ts.map +1 -1
  23. package/dist/components/keyboard/keyboard-context.js +61 -58
  24. package/dist/components/keyboard/keyboard-styles.d.ts +13 -0
  25. package/dist/components/keyboard/keyboard-styles.d.ts.map +1 -0
  26. package/dist/components/keyboard/keyboard-styles.js +14 -0
  27. package/dist/components/multi-select/MultiSelect.d.ts +8 -0
  28. package/dist/components/multi-select/MultiSelect.d.ts.map +1 -1
  29. package/dist/components/multi-select/MultiSelect.js +186 -184
  30. package/dist/components/multi-select/multi-select-config.d.ts +18 -0
  31. package/dist/components/multi-select/multi-select-config.d.ts.map +1 -1
  32. package/dist/components/multi-select/multi-select-config.js +14 -10
  33. package/dist/components/resizable-screen/ResizableScreen.d.ts +23 -11
  34. package/dist/components/resizable-screen/ResizableScreen.d.ts.map +1 -1
  35. package/dist/components/resizable-screen/ResizableScreen.js +69 -60
  36. package/dist/components/select/Select.d.ts +8 -6
  37. package/dist/components/select/Select.d.ts.map +1 -1
  38. package/dist/components/select/Select.js +135 -135
  39. package/dist/components/select/select-config.d.ts +27 -1
  40. package/dist/components/select/select-config.d.ts.map +1 -1
  41. package/dist/components/select/select-config.js +14 -6
  42. package/dist/components/select-menu/SelectMenu.d.ts +23 -1
  43. package/dist/components/select-menu/SelectMenu.d.ts.map +1 -1
  44. package/dist/components/select-menu/SelectMenu.js +72 -67
  45. package/dist/components/select-menu/index.d.ts +1 -0
  46. package/dist/components/select-menu/index.d.ts.map +1 -1
  47. package/dist/components/select-menu/index.js +1 -0
  48. package/dist/components/select-menu/select-menu-config.d.ts +1 -1
  49. package/dist/components/select-menu/select-menu-config.js +3 -3
  50. package/dist/components/select-menu/use-select-floating.d.ts +95 -0
  51. package/dist/components/select-menu/use-select-floating.d.ts.map +1 -0
  52. package/dist/components/select-menu/use-select-floating.js +36 -0
  53. package/dist/components/toast/toast-config.d.ts +11 -0
  54. package/dist/components/toast/toast-config.d.ts.map +1 -1
  55. package/dist/components/toast/toast-config.js +4 -2
  56. package/dist/components/toast/toast-context.d.ts +21 -1
  57. package/dist/components/toast/toast-context.d.ts.map +1 -1
  58. package/dist/components/toast/toast-context.js +134 -114
  59. package/dist/components/tooltip/Tooltip.d.ts +19 -0
  60. package/dist/components/tooltip/Tooltip.d.ts.map +1 -1
  61. package/dist/components/tooltip/Tooltip.js +129 -121
  62. package/dist/components/tooltip/tooltip-config.d.ts +7 -3
  63. package/dist/components/tooltip/tooltip-config.d.ts.map +1 -1
  64. package/dist/components/tooltip/tooltip-config.js +5 -4
  65. package/dist/config/resolve-config.d.ts.map +1 -1
  66. package/dist/utils/merge-object.d.ts +7 -1
  67. package/dist/utils/merge-object.d.ts.map +1 -1
  68. package/dist/utils/types.d.ts +16 -4
  69. package/dist/utils/types.d.ts.map +1 -1
  70. package/package.json +1 -1
@@ -1,144 +1,163 @@
1
1
  "use client";
2
- import { jsxs as G, jsx as A } from "react/jsx-runtime";
3
- import { useState as g, useCallback as a, useMemo as q, useContext as E, createContext as H } from "react";
4
- import { useAsheeConfig as J } from "../../libs/context.js";
5
- import { resolveCascade as i, resolveRadiusKey as Q } from "../../utils/resolve-token.js";
6
- import { ToastItem as W } from "./ToastItem.js";
7
- import { FALLBACK_TOAST_CONFIG as n } from "./toast-config.js";
8
- import { cn as X } from "../../utils/cn.js";
9
- const D = H(null);
10
- function st({
11
- children: m,
12
- size: K,
13
- placement: I,
14
- variant: S,
15
- radius: U,
16
- defaultTimeout: j,
17
- maxToasts: N,
18
- animated: P,
19
- className: R
2
+ import { jsx as K, jsxs as J } from "react/jsx-runtime";
3
+ import { useState as Q, useCallback as n, useMemo as W, useContext as X, createContext as Y } from "react";
4
+ import { createPortal as Z } from "react-dom";
5
+ import { useAsheeConfig as $ } from "../../libs/context.js";
6
+ import { resolveCascade as l, resolveRadiusKey as C } from "../../utils/resolve-token.js";
7
+ import { ToastItem as tt } from "./ToastItem.js";
8
+ import { FALLBACK_TOAST_CONFIG as a } from "./toast-config.js";
9
+ import { cn as et } from "../../utils/cn.js";
10
+ const P = Y(null);
11
+ function dt({
12
+ children: i,
13
+ size: I,
14
+ placement: S,
15
+ variant: U,
16
+ radius: j,
17
+ defaultTimeout: N,
18
+ maxToasts: R,
19
+ animated: V,
20
+ portal: F,
21
+ portalTarget: L,
22
+ className: M
20
23
  }) {
21
- var h;
22
- const [c, l] = g([]), d = J(), t = (h = d.components) == null ? void 0 : h.toast, V = i(
23
- K,
24
+ var A;
25
+ const [d, c] = Q([]), u = $(), t = (A = u.components) == null ? void 0 : A.toast, O = l(
26
+ I,
24
27
  t == null ? void 0 : t.size,
25
28
  void 0,
26
- n.size
27
- ), r = i(
28
- I,
29
+ a.size
30
+ ), s = l(
31
+ S,
29
32
  t == null ? void 0 : t.placement,
30
33
  void 0,
31
- n.placement
32
- ), F = i(
33
- S,
34
- t == null ? void 0 : t.variant,
35
- d.defaultVariant,
36
- n.variant
37
- ), L = Q(
34
+ a.placement
35
+ ), _ = l(
38
36
  U,
37
+ t == null ? void 0 : t.variant,
38
+ u.defaultVariant,
39
+ a.variant
40
+ ), g = C(
41
+ j,
39
42
  t == null ? void 0 : t.radius,
40
- d.defaultRadius,
41
- n.radius
42
- ), v = i(
43
- N,
43
+ u.defaultRadius,
44
+ a.radius
45
+ ), T = l(
46
+ R,
44
47
  t == null ? void 0 : t.maxToasts,
45
48
  void 0,
46
- n.maxToasts
47
- ), u = i(
48
- j,
49
+ a.maxToasts
50
+ ), p = l(
51
+ N,
49
52
  t == null ? void 0 : t.defaultTimeout,
50
53
  void 0,
51
- n.defaultTimeout
52
- ), M = i(
53
- P,
54
+ a.defaultTimeout
55
+ ), k = l(
56
+ V,
54
57
  t == null ? void 0 : t.animated,
55
58
  void 0,
56
- n.animated
57
- ), p = a((e) => {
58
- l((o) => o.filter((f) => f.id !== e));
59
- }, []), x = a(() => {
60
- l([]);
61
- }, []), s = a(
59
+ a.animated
60
+ ), B = l(
61
+ F,
62
+ t == null ? void 0 : t.portal,
63
+ void 0,
64
+ a.portal
65
+ ), m = L ?? (typeof document < "u" ? document.body : null), f = n((e) => {
66
+ c((o) => o.filter((v) => v.id !== e));
67
+ }, []), y = n(() => {
68
+ c([]);
69
+ }, []), r = n(
62
70
  (e) => {
63
- var z;
64
- const o = typeof e == "object" && e.id ? e.id : typeof window < "u" && ((z = window.crypto) != null && z.randomUUID) ? window.crypto.randomUUID() : String(Date.now()), f = typeof e == "string" ? {
71
+ var D;
72
+ const o = typeof e == "object" && e.id ? e.id : typeof window < "u" && ((D = window.crypto) != null && D.randomUUID) ? window.crypto.randomUUID() : String(Date.now()), v = typeof e == "string" ? {
65
73
  id: o,
66
74
  message: e,
67
- timeout: u,
75
+ timeout: p,
68
76
  type: "info"
69
77
  } : {
70
78
  ...e,
71
79
  id: o,
72
- timeout: e.timeout ?? u,
80
+ timeout: e.timeout ?? p,
73
81
  type: e.type ?? "info"
74
82
  };
75
- return l((_) => {
76
- const k = _.filter((B) => B.id !== o);
77
- return [f, ...k].slice(0, v);
83
+ return c((q) => {
84
+ const E = q.filter((H) => H.id !== o);
85
+ return [v, ...E].slice(0, T);
78
86
  }), o;
79
87
  },
80
- [u, v]
81
- ), T = a(
82
- (e, o) => s({ ...o, message: e, type: "success" }),
83
- [s]
84
- ), y = a(
85
- (e, o) => s({ ...o, message: e, type: "error" }),
86
- [s]
87
- ), w = a(
88
- (e, o) => s({ ...o, message: e, type: "info" }),
89
- [s]
90
- ), b = a(
91
- (e, o) => s({ ...o, message: e, type: "warning" }),
92
- [s]
93
- ), O = q(
88
+ [p, T]
89
+ ), x = n(
90
+ (e, o) => r({ ...o, message: e, type: "success" }),
91
+ [r]
92
+ ), w = n(
93
+ (e, o) => r({ ...o, message: e, type: "error" }),
94
+ [r]
95
+ ), b = n(
96
+ (e, o) => r({ ...o, message: e, type: "info" }),
97
+ [r]
98
+ ), h = n(
99
+ (e, o) => r({ ...o, message: e, type: "warning" }),
100
+ [r]
101
+ ), G = W(
94
102
  () => ({
95
- toasts: c,
96
- toast: s,
97
- success: T,
98
- error: y,
99
- info: w,
100
- warning: b,
101
- removeToast: p,
102
- clearToasts: x
103
+ toasts: d,
104
+ toast: r,
105
+ success: x,
106
+ error: w,
107
+ info: b,
108
+ warning: h,
109
+ removeToast: f,
110
+ clearToasts: y,
111
+ portalTarget: m
103
112
  }),
104
- [c, s, T, y, w, b, p, x]
113
+ [
114
+ d,
115
+ r,
116
+ x,
117
+ w,
118
+ b,
119
+ h,
120
+ f,
121
+ y,
122
+ m
123
+ ]
124
+ ), z = /* @__PURE__ */ K(
125
+ "section",
126
+ {
127
+ "aria-label": "Notifications",
128
+ className: et(
129
+ "fixed z-50 flex flex-col gap-3 pointer-events-none p-4 max-h-screen overflow-clip",
130
+ s === "top-right" && "top-0 right-0 items-end",
131
+ s === "top-left" && "top-0 left-0 items-start",
132
+ s === "bottom-right" && "bottom-0 right-0 items-end",
133
+ s === "bottom-left" && "bottom-0 left-0 items-start",
134
+ s === "top-center" && "top-0 left-1/2 -translate-x-1/2 items-center",
135
+ s === "bottom-center" && "bottom-0 left-1/2 -translate-x-1/2 items-center",
136
+ M
137
+ ),
138
+ children: d.map((e) => /* @__PURE__ */ K(
139
+ tt,
140
+ {
141
+ ...e,
142
+ placement: s,
143
+ size: O,
144
+ variant: _,
145
+ radius: g,
146
+ onDismiss: f,
147
+ animated: k
148
+ },
149
+ e.id
150
+ ))
151
+ }
105
152
  );
106
- return /* @__PURE__ */ G(D.Provider, { value: O, children: [
107
- m,
108
- /* @__PURE__ */ A(
109
- "section",
110
- {
111
- "aria-label": "Notifications",
112
- className: X(
113
- "fixed z-50 flex flex-col gap-3 pointer-events-none p-4 max-h-screen overflow-clip",
114
- r === "top-right" && "top-0 right-0 items-end",
115
- r === "top-left" && "top-0 left-0 items-start",
116
- r === "bottom-right" && "bottom-0 right-0 items-end",
117
- r === "bottom-left" && "bottom-0 left-0 items-start",
118
- r === "top-center" && "top-0 left-1/2 -translate-x-1/2 items-center",
119
- r === "bottom-center" && "bottom-0 left-1/2 -translate-x-1/2 items-center",
120
- R
121
- ),
122
- children: c.map((e) => /* @__PURE__ */ A(
123
- W,
124
- {
125
- ...e,
126
- placement: r,
127
- size: V,
128
- variant: F,
129
- radius: L,
130
- onDismiss: p,
131
- animated: M
132
- },
133
- e.id
134
- ))
135
- }
136
- )
153
+ return /* @__PURE__ */ J(P.Provider, { value: G, children: [
154
+ i,
155
+ B && m ? Z(z, m) : z
137
156
  ] });
138
157
  }
139
- function rt() {
140
- const m = E(D);
141
- return m || {
158
+ function ct() {
159
+ const i = X(P);
160
+ return i || {
142
161
  toasts: [],
143
162
  toast: () => "",
144
163
  success: () => "",
@@ -148,10 +167,11 @@ function rt() {
148
167
  removeToast: () => {
149
168
  },
150
169
  clearToasts: () => {
151
- }
170
+ },
171
+ portalTarget: null
152
172
  };
153
173
  }
154
174
  export {
155
- st as ToastProvider,
156
- rt as useToast
175
+ dt as ToastProvider,
176
+ ct as useToast
157
177
  };
@@ -22,6 +22,18 @@ export interface TooltipProps extends BaseTooltipProps {
22
22
  * @default false
23
23
  */
24
24
  isDisabled?: boolean;
25
+ /**
26
+ * Extra classes applied to every tooltip instance.
27
+ *
28
+ * @default ""
29
+ */
30
+ className?: string;
31
+ /**
32
+ * Whether to render the tooltip in a Floating UI portal.
33
+ * When true, the tooltip is rendered at the document body level,
34
+ * escaping any parent DOM hierarchy. Defaults to true.
35
+ */
36
+ portal?: boolean;
25
37
  }
26
38
  /**
27
39
  * A floating tooltip that appears on hover or focus of a child element.
@@ -35,6 +47,12 @@ export interface TooltipProps extends BaseTooltipProps {
35
47
  * automatically handles viewport edge detection and flipping. It is fully
36
48
  * accessible with keyboard focus support.
37
49
  *
50
+ * By default, the tooltip uses FloatingPortal to render at the document body
51
+ * level. This ensures the tooltip escapes CSS containment, overflow clipping,
52
+ * and stacking context issues. The portal can be disabled via the `portal` prop
53
+ * or `components.tooltip.portal` in the config if the tooltip needs to stay
54
+ * within a specific parent container.
55
+ *
38
56
  * @param props - Tooltip configuration options.
39
57
  * @param props.content - The content to display inside the tooltip.
40
58
  * @param props.children - The child element that triggers the tooltip.
@@ -47,6 +65,7 @@ export interface TooltipProps extends BaseTooltipProps {
47
65
  * @param props.offset - Offset from the trigger. Defaults to 8.
48
66
  * @param props.radius - Corner rounding. Defaults to "md".
49
67
  * @param props.showArrow - Whether to show a pointer arrow. Defaults to false.
68
+ * @param props.portal - Whether to render the tooltip in a portal. Defaults to true.
50
69
  * @param props.className - Extra classes for the tooltip.
51
70
  *
52
71
  * @example
@@ -1 +1 @@
1
- {"version":3,"file":"Tooltip.d.ts","sourceRoot":"","sources":["../../../src/components/tooltip/Tooltip.tsx"],"names":[],"mappings":"AAyBA,OAAO,EAIL,KAAK,YAAY,EACjB,KAAK,SAAS,EAGf,MAAM,OAAO,CAAC;AAcf,OAAO,EAEL,KAAK,aAAa,EAGnB,MAAM,kBAAkB,CAAC;AAO1B,KAAK,gBAAgB,GAAG,aAAa,CAAC;AAEtC;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,gBAAgB;IACpD;;;OAGG;IACH,OAAO,EAAE,SAAS,CAAC;IAEnB;;;OAGG;IACH,QAAQ,EAAE,YAAY,GAAG,SAAS,CAAC;IAEnC;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,eAAO,MAAM,OAAO,yGAyMnB,CAAC"}
1
+ {"version":3,"file":"Tooltip.d.ts","sourceRoot":"","sources":["../../../src/components/tooltip/Tooltip.tsx"],"names":[],"mappings":"AAyBA,OAAO,EAIL,KAAK,YAAY,EACjB,KAAK,SAAS,EAGf,MAAM,OAAO,CAAC;AAcf,OAAO,EAEL,KAAK,aAAa,EAGnB,MAAM,kBAAkB,CAAC;AAO1B,KAAK,gBAAgB,GAAG,aAAa,CAAC;AAEtC;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,gBAAgB;IACpD;;;OAGG;IACH,OAAO,EAAE,SAAS,CAAC;IAEnB;;;OAGG;IACH,QAAQ,EAAE,YAAY,GAAG,SAAS,CAAC;IAEnC;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6DG;AACH,eAAO,MAAM,OAAO,yGAsNnB,CAAC"}
@@ -1,159 +1,167 @@
1
1
  "use client";
2
2
  import { jsx as a, Fragment as S, jsxs as h } from "react/jsx-runtime";
3
- import { offset as J, flip as Q, shift as W, arrow as Z, useFloating as $, autoUpdate as ee, useHover as se, useFocus as oe, useDismiss as re, useRole as te, useInteractions as ae, FloatingPortal as le, FloatingArrow as ne } from "@floating-ui/react";
4
- import { forwardRef as de, useRef as ie, useState as me, isValidElement as pe, cloneElement as ce } from "react";
5
- import { useAsheeConfig as ue } from "../../libs/context.js";
6
- import { resolveCascade as o, resolveRadiusKey as fe, resolveClassKey as i } from "../../utils/resolve-token.js";
7
- import { FALLBACK_TOOLTIP_CONFIG as s } from "./tooltip-config.js";
8
- import { TOOLTIP_PADDING_X_CLASS as ve, TOOLTIP_PADDING_Y_CLASS as we, TOOLTIP_FONT_CLASS as ye } from "./tooltip-styles.js";
9
- import { RADIUS_CLASS as Ae } from "../../shared/radius.js";
10
- import { cn as Oe } from "../../utils/cn.js";
11
- import { resolveVariantClass as Se } from "../../shared/variant.js";
12
- const he = de(
3
+ import { offset as Z, flip as $, shift as ee, arrow as oe, useFloating as se, autoUpdate as te, useHover as re, useFocus as ae, useDismiss as le, useRole as ne, useInteractions as de, FloatingArrow as ie, FloatingPortal as pe } from "@floating-ui/react";
4
+ import { forwardRef as me, useRef as ce, useState as ue, isValidElement as fe, cloneElement as ve } from "react";
5
+ import { useAsheeConfig as we } from "../../libs/context.js";
6
+ import { resolveCascade as s, resolveRadiusKey as ye, resolveClassKey as i } from "../../utils/resolve-token.js";
7
+ import { FALLBACK_TOOLTIP_CONFIG as o } from "./tooltip-config.js";
8
+ import { TOOLTIP_PADDING_X_CLASS as Ae, TOOLTIP_PADDING_Y_CLASS as Oe, TOOLTIP_FONT_CLASS as Se } from "./tooltip-styles.js";
9
+ import { RADIUS_CLASS as he } from "../../shared/radius.js";
10
+ import { cn as Pe } from "../../utils/cn.js";
11
+ import { resolveVariantClass as Re } from "../../shared/variant.js";
12
+ const Te = me(
13
13
  ({
14
14
  content: u,
15
- children: r,
16
- variant: R,
17
- color: T,
18
- size: _,
19
- placement: F,
20
- delay: I,
21
- offset: L,
22
- radius: N,
23
- showArrow: P,
15
+ children: t,
16
+ variant: P,
17
+ color: R,
18
+ size: T,
19
+ placement: _,
20
+ delay: F,
21
+ offset: I,
22
+ radius: L,
23
+ showArrow: N,
24
24
  isDisabled: l = !1,
25
- className: z
25
+ className: z,
26
+ portal: K
26
27
  }, n) => {
27
28
  var O;
28
- const d = ue(), e = (O = d.components) == null ? void 0 : O.tooltip, f = ie(null), [v, K] = me(!1), m = o(
29
- _,
29
+ const d = we(), e = (O = d.components) == null ? void 0 : O.tooltip, f = ce(null), [x, D] = ue(!1), p = s(
30
+ T,
30
31
  e == null ? void 0 : e.size,
31
32
  void 0,
32
- s.size
33
- ), x = o(
34
- F,
33
+ o.size
34
+ ), V = s(
35
+ _,
35
36
  e == null ? void 0 : e.placement,
36
37
  void 0,
37
- s.placement
38
- ), D = o(
39
- R,
38
+ o.placement
39
+ ), b = s(
40
+ P,
40
41
  e == null ? void 0 : e.variant,
41
42
  d.defaultVariant,
42
- s.variant
43
- ), V = o(
44
- T,
43
+ o.variant
44
+ ), g = s(
45
+ R,
45
46
  e == null ? void 0 : e.color,
46
47
  d.defaultColor,
47
- s.color
48
- ), b = o(I, e == null ? void 0 : e.delay, void 0, s.delay), g = o(
49
- L,
48
+ o.color
49
+ ), E = s(F, e == null ? void 0 : e.delay, void 0, o.delay), G = s(
50
+ I,
50
51
  e == null ? void 0 : e.offset,
51
52
  void 0,
52
- s.offset
53
- ), w = o(
54
- P,
53
+ o.offset
54
+ ), v = s(
55
+ N,
55
56
  e == null ? void 0 : e.showArrow,
56
57
  void 0,
57
- s.showArrow
58
- ), E = fe(
59
- N,
58
+ o.showArrow
59
+ ), j = ye(
60
+ L,
60
61
  e == null ? void 0 : e.radius,
61
62
  d.defaultRadius,
62
- s.radius
63
- ), G = i(
64
- m,
65
- ve,
66
- s.size
67
- ), j = i(
68
- m,
69
- we,
70
- s.size
71
- ), U = i(
72
- m,
73
- ye,
74
- s.size
63
+ o.radius
64
+ ), U = s(
65
+ K,
66
+ e == null ? void 0 : e.portal,
67
+ void 0,
68
+ o.portal
75
69
  ), X = i(
76
- E,
70
+ p,
77
71
  Ae,
78
- s.radius
79
- ), y = [
80
- J(g),
81
- Q({ padding: 8 }),
82
- W({ padding: 8 })
72
+ o.size
73
+ ), Y = i(
74
+ p,
75
+ Oe,
76
+ o.size
77
+ ), k = i(
78
+ p,
79
+ Se,
80
+ o.size
81
+ ), B = i(
82
+ j,
83
+ he,
84
+ o.radius
85
+ ), w = [
86
+ Z(G),
87
+ $({ padding: 8 }),
88
+ ee({ padding: 8 })
83
89
  ];
84
- w && y.push(Z({ element: f }));
85
- const { refs: p, floatingStyles: Y, context: t } = $({
86
- open: v && !l,
87
- onOpenChange: K,
88
- placement: x,
89
- whileElementsMounted: ee,
90
- middleware: y
91
- }), k = se(t, {
92
- delay: b,
90
+ v && w.push(oe({ element: f }));
91
+ const { refs: m, floatingStyles: C, context: r } = se({
92
+ open: x && !l,
93
+ onOpenChange: D,
94
+ placement: V,
95
+ whileElementsMounted: te,
96
+ middleware: w
97
+ }), H = re(r, {
98
+ delay: E,
93
99
  enabled: !l
94
- }), B = oe(t, { enabled: !l }), H = re(t), M = te(t, { role: "tooltip" }), { getReferenceProps: A, getFloatingProps: q } = ae([
95
- k,
96
- B,
100
+ }), M = ae(r, { enabled: !l }), q = le(r), J = ne(r, { role: "tooltip" }), { getReferenceProps: y, getFloatingProps: Q } = de([
97
101
  H,
98
- M
99
- ]), C = pe(r) ? ce(
100
- r,
101
- A({
102
- ref: p.setReference,
103
- ...r.props
102
+ M,
103
+ q,
104
+ J
105
+ ]), W = fe(t) ? ve(
106
+ t,
107
+ y({
108
+ ref: m.setReference,
109
+ ...t.props
104
110
  })
105
111
  ) : /* @__PURE__ */ a(
106
112
  "span",
107
113
  {
108
- ref: p.setReference,
109
- ...A(),
114
+ ref: m.setReference,
115
+ ...y(),
110
116
  className: "inline-flex",
111
- children: r
117
+ children: t
118
+ }
119
+ );
120
+ if (!u || l)
121
+ return /* @__PURE__ */ a(S, { children: t });
122
+ const A = /* @__PURE__ */ a(
123
+ "div",
124
+ {
125
+ ref: (c) => {
126
+ m.setFloating(c), typeof n == "function" ? n(c) : n && (n.current = c);
127
+ },
128
+ style: C,
129
+ className: "z-50 pointer-events-none",
130
+ ...Q(),
131
+ children: /* @__PURE__ */ h(
132
+ "div",
133
+ {
134
+ className: Pe(
135
+ "font-medium border whitespace-nowrap select-none bg-background shadow-md transition-all duration-150 ease-out animate-in fade-in-0 zoom-in-95",
136
+ X,
137
+ Y,
138
+ k,
139
+ B,
140
+ Re(b, g),
141
+ z
142
+ ),
143
+ children: [
144
+ u,
145
+ v && /* @__PURE__ */ a(
146
+ ie,
147
+ {
148
+ ref: f,
149
+ context: r,
150
+ className: "fill-current text-border"
151
+ }
152
+ )
153
+ ]
154
+ }
155
+ )
112
156
  }
113
157
  );
114
- return !u || l ? /* @__PURE__ */ a(S, { children: r }) : /* @__PURE__ */ h(S, { children: [
115
- C,
116
- /* @__PURE__ */ a(le, { children: v && /* @__PURE__ */ a(
117
- "div",
118
- {
119
- ref: (c) => {
120
- p.setFloating(c), typeof n == "function" ? n(c) : n && (n.current = c);
121
- },
122
- style: Y,
123
- className: "z-50 pointer-events-none",
124
- ...q(),
125
- children: /* @__PURE__ */ h(
126
- "div",
127
- {
128
- className: Oe(
129
- "font-medium border whitespace-nowrap select-none bg-background shadow-md transition-all duration-150 ease-out animate-in fade-in-0 zoom-in-95",
130
- G,
131
- j,
132
- U,
133
- X,
134
- Se(D, V),
135
- e == null ? void 0 : e.className,
136
- z
137
- ),
138
- children: [
139
- u,
140
- w && /* @__PURE__ */ a(
141
- ne,
142
- {
143
- ref: f,
144
- context: t,
145
- className: "fill-current text-border"
146
- }
147
- )
148
- ]
149
- }
150
- )
151
- }
152
- ) })
158
+ return /* @__PURE__ */ h(S, { children: [
159
+ W,
160
+ U ? /* @__PURE__ */ a(pe, { children: A }) : A
153
161
  ] });
154
162
  }
155
163
  );
156
- he.displayName = "Tooltip";
164
+ Te.displayName = "Tooltip";
157
165
  export {
158
- he as Tooltip
166
+ Te as Tooltip
159
167
  };
@@ -73,11 +73,15 @@ export interface TooltipConfig {
73
73
  */
74
74
  showArrow?: boolean;
75
75
  /**
76
- * Extra classes applied to every tooltip instance.
76
+ * Whether to render the tooltip in a Floating UI portal.
77
+ * When true, the tooltip is rendered at the document body level,
78
+ * escaping any parent DOM hierarchy. This prevents CSS containment,
79
+ * overflow clipping, and stacking context issues. Defaults to true
80
+ * because tooltips should always appear above other content.
77
81
  *
78
- * @default ""
82
+ * @default true
79
83
  */
80
- className?: string;
84
+ portal?: boolean;
81
85
  }
82
86
  /**
83
87
  * Default config values registered for the Tooltip component.
@@ -1 +1 @@
1
- {"version":3,"file":"tooltip-config.d.ts","sourceRoot":"","sources":["../../../src/components/tooltip/tooltip-config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEjE;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GACxB,KAAK,GACL,WAAW,GACX,SAAS,GACT,QAAQ,GACR,cAAc,GACd,YAAY,GACZ,MAAM,GACN,YAAY,GACZ,UAAU,GACV,OAAO,GACP,aAAa,GACb,WAAW,CAAC;AAEhB;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC;AAElC;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;IAEd;;;;;OAKG;IACH,IAAI,CAAC,EAAE,cAAc,CAAC;IAEtB;;;;OAIG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAE7B;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAEnD;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;;OAIG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,aAMlC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,aAAa,CAUlD,CAAC;AAEX,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,2BAA2B;QACnC,OAAO,EAAE,aAAa,CAAC;KACxB;CACF"}
1
+ {"version":3,"file":"tooltip-config.d.ts","sourceRoot":"","sources":["../../../src/components/tooltip/tooltip-config.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEjE;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GACxB,KAAK,GACL,WAAW,GACX,SAAS,GACT,QAAQ,GACR,cAAc,GACd,YAAY,GACZ,MAAM,GACN,YAAY,GACZ,UAAU,GACV,OAAO,GACP,aAAa,GACb,WAAW,CAAC;AAEhB;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC;AAElC;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC;IAEd;;;;;OAKG;IACH,IAAI,CAAC,EAAE,cAAc,CAAC;IAEtB;;;;OAIG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAE7B;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAEnD;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,aAOlC,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,aAAa,CAUlD,CAAC;AAEX,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,2BAA2B;QACnC,OAAO,EAAE,aAAa,CAAC;KACxB;CACF"}