@la-batcave/ui 3.1.2

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 (107) hide show
  1. package/README.md +95 -0
  2. package/dist/Alert.d.ts +27 -0
  3. package/dist/Alert.js +56 -0
  4. package/dist/Avatar.d.ts +20 -0
  5. package/dist/Avatar.js +40 -0
  6. package/dist/Badge.d.ts +56 -0
  7. package/dist/Badge.js +74 -0
  8. package/dist/Button.d.ts +53 -0
  9. package/dist/Button.js +66 -0
  10. package/dist/Card.d.ts +18 -0
  11. package/dist/Card.js +98 -0
  12. package/dist/CodeBlock.d.ts +45 -0
  13. package/dist/CodeBlock.js +306 -0
  14. package/dist/Collapse.d.ts +58 -0
  15. package/dist/Collapse.js +89 -0
  16. package/dist/Combobox.d.ts +44 -0
  17. package/dist/Combobox.js +409 -0
  18. package/dist/DarkMode.d.ts +59 -0
  19. package/dist/DarkMode.js +56 -0
  20. package/dist/DatePicker.d.ts +48 -0
  21. package/dist/DatePicker.js +2954 -0
  22. package/dist/Dialog.d.ts +119 -0
  23. package/dist/Dialog.js +337 -0
  24. package/dist/Drawer.d.ts +28 -0
  25. package/dist/Drawer.js +1126 -0
  26. package/dist/Dropdown.d.ts +23 -0
  27. package/dist/Dropdown.js +247 -0
  28. package/dist/EasyForm.d.ts +138 -0
  29. package/dist/EasyForm.js +286 -0
  30. package/dist/HoverCard.d.ts +10 -0
  31. package/dist/HoverCard.js +195 -0
  32. package/dist/Input.d.ts +230 -0
  33. package/dist/Input.js +2216 -0
  34. package/dist/LogViewer.d.ts +57 -0
  35. package/dist/LogViewer.js +120 -0
  36. package/dist/Menubar.d.ts +32 -0
  37. package/dist/Menubar.js +398 -0
  38. package/dist/Navbar.d.ts +20 -0
  39. package/dist/Navbar.js +31 -0
  40. package/dist/Pagination.d.ts +78 -0
  41. package/dist/Pagination.js +106 -0
  42. package/dist/Popover.d.ts +11 -0
  43. package/dist/Popover.js +28 -0
  44. package/dist/ProgressBar.d.ts +35 -0
  45. package/dist/ProgressBar.js +210 -0
  46. package/dist/Resizable.d.ts +23 -0
  47. package/dist/Resizable.js +1532 -0
  48. package/dist/Separator.d.ts +4 -0
  49. package/dist/Separator.js +46 -0
  50. package/dist/Sheet.d.ts +29 -0
  51. package/dist/Sheet.js +104 -0
  52. package/dist/Sidebar.d.ts +117 -0
  53. package/dist/Sidebar.js +237 -0
  54. package/dist/Skeleton.d.ts +57 -0
  55. package/dist/Skeleton.js +47 -0
  56. package/dist/Table.d.ts +71 -0
  57. package/dist/Table.js +94 -0
  58. package/dist/Tabs.d.ts +76 -0
  59. package/dist/Tabs.js +202 -0
  60. package/dist/Toast.d.ts +54 -0
  61. package/dist/Toast.js +827 -0
  62. package/dist/Tooltip.d.ts +29 -0
  63. package/dist/Tooltip.js +352 -0
  64. package/dist/Typography.d.ts +101 -0
  65. package/dist/Typography.js +123 -0
  66. package/dist/Widget.d.ts +133 -0
  67. package/dist/Widget.js +207 -0
  68. package/dist/_shared/Combination-D_l4PLF_.js +676 -0
  69. package/dist/_shared/index-B03TCNO5.js +142 -0
  70. package/dist/_shared/index-B1f-hyuh.js +31 -0
  71. package/dist/_shared/index-BC7vfx-u.js +13 -0
  72. package/dist/_shared/index-BrLJJgkl.js +67 -0
  73. package/dist/_shared/index-C0gNQvxa.js +269 -0
  74. package/dist/_shared/index-C3aZemLI.js +268 -0
  75. package/dist/_shared/index-CXeb1OMI.js +198 -0
  76. package/dist/_shared/index-CukUn3R0.js +626 -0
  77. package/dist/_shared/index-DLcqcWxM.js +29 -0
  78. package/dist/_shared/index-DlSuDb9N.js +283 -0
  79. package/dist/_shared/index-V-Ajw7Ac.js +79 -0
  80. package/dist/_shared/index-uPOYJZpG.js +34 -0
  81. package/dist/_shared/index-uu9PT5Nu.js +1588 -0
  82. package/dist/_shared/utils-eGXXUFl7.js +2935 -0
  83. package/dist/backgrounds/Aurora.d.ts +7 -0
  84. package/dist/backgrounds/Aurora.js +126 -0
  85. package/dist/backgrounds/Iridescence.d.ts +7 -0
  86. package/dist/backgrounds/Iridescence.js +77 -0
  87. package/dist/backgrounds/Lightning.d.ts +8 -0
  88. package/dist/backgrounds/Lightning.js +75 -0
  89. package/dist/backgrounds/LiquidChrome.d.ts +9 -0
  90. package/dist/backgrounds/LiquidChrome.js +89 -0
  91. package/dist/backgrounds/Particles.d.ts +15 -0
  92. package/dist/backgrounds/Particles.js +137 -0
  93. package/dist/backgrounds/PixelSnow.d.ts +9 -0
  94. package/dist/backgrounds/PixelSnow.js +52 -0
  95. package/dist/backgrounds/Silk.d.ts +8 -0
  96. package/dist/backgrounds/Silk.js +92 -0
  97. package/dist/backgrounds/Squares.d.ts +9 -0
  98. package/dist/backgrounds/Squares.js +75 -0
  99. package/dist/backgrounds/Threads.d.ts +7 -0
  100. package/dist/backgrounds/Threads.js +110 -0
  101. package/dist/backgrounds/Waves.d.ts +14 -0
  102. package/dist/backgrounds/Waves.js +139 -0
  103. package/dist/fonts/inter-latin-wght-normal.woff2 +0 -0
  104. package/dist/index.css +1 -0
  105. package/dist/index.d.ts +2 -0
  106. package/dist/index.js +4 -0
  107. package/package.json +318 -0
@@ -0,0 +1,29 @@
1
+ import * as React from "react";
2
+ import * as TooltipPrimitive from "@radix-ui/react-tooltip";
3
+ declare const TooltipProvider: React.FC<TooltipPrimitive.TooltipProviderProps>;
4
+ declare const Tooltip: React.FC<TooltipPrimitive.TooltipProps>;
5
+ declare const TooltipTrigger: React.ForwardRefExoticComponent<TooltipPrimitive.TooltipTriggerProps & React.RefAttributes<HTMLButtonElement>>;
6
+ export interface TooltipContentProps extends React.ComponentPropsWithoutRef<typeof TooltipPrimitive.Content> {
7
+ /**
8
+ * Distance in pixels between trigger and tooltip.
9
+ * @default 6
10
+ */
11
+ sideOffset?: number;
12
+ }
13
+ /**
14
+ * Styled tooltip content panel. Must be used inside a `<Tooltip>` + `<TooltipProvider>`.
15
+ *
16
+ * @description Renders a small card-styled popover with enter/exit animations.
17
+ *
18
+ * @example
19
+ * <TooltipProvider>
20
+ * <Tooltip>
21
+ * <TooltipTrigger asChild>
22
+ * <button>Hover me</button>
23
+ * </TooltipTrigger>
24
+ * <TooltipContent>Tooltip text</TooltipContent>
25
+ * </Tooltip>
26
+ * </TooltipProvider>
27
+ */
28
+ declare const TooltipContent: React.ForwardRefExoticComponent<TooltipContentProps & React.RefAttributes<HTMLDivElement>>;
29
+ export { TooltipProvider, Tooltip, TooltipTrigger, TooltipContent };
@@ -0,0 +1,352 @@
1
+ "use client";
2
+ import { jsx as u, Fragment as q, jsxs as X } from "react/jsx-runtime";
3
+ import * as s from "react";
4
+ import { P as S, a as K, u as W, c as x } from "./_shared/index-CXeb1OMI.js";
5
+ import { u as H } from "./_shared/index-DLcqcWxM.js";
6
+ import { P as J, D as Q } from "./_shared/index-B03TCNO5.js";
7
+ import { u as Z } from "./_shared/index-BC7vfx-u.js";
8
+ import { C as ee, c as F, R as te, A as oe, a as re } from "./_shared/index-uu9PT5Nu.js";
9
+ import { P as ne } from "./_shared/index-V-Ajw7Ac.js";
10
+ import { R as se } from "./_shared/index-B1f-hyuh.js";
11
+ import { c as ae } from "./_shared/utils-eGXXUFl7.js";
12
+ var ie = /* @__PURE__ */ Symbol("radix.slottable");
13
+ // @__NO_SIDE_EFFECTS__
14
+ function le(t) {
15
+ const o = ({ children: e }) => /* @__PURE__ */ u(q, { children: e });
16
+ return o.displayName = `${t}.Slottable`, o.__radixId = ie, o;
17
+ }
18
+ var [O] = K("Tooltip", [
19
+ F
20
+ ]), D = F(), G = "TooltipProvider", ce = 700, L = "tooltip.open", [ue, k] = O(G), j = (t) => {
21
+ const {
22
+ __scopeTooltip: o,
23
+ delayDuration: e = ce,
24
+ skipDelayDuration: r = 300,
25
+ disableHoverableContent: n = !1,
26
+ children: l
27
+ } = t, i = s.useRef(!0), v = s.useRef(!1), a = s.useRef(0);
28
+ return s.useEffect(() => {
29
+ const p = a.current;
30
+ return () => window.clearTimeout(p);
31
+ }, []), /* @__PURE__ */ u(
32
+ ue,
33
+ {
34
+ scope: o,
35
+ isOpenDelayedRef: i,
36
+ delayDuration: e,
37
+ onOpen: s.useCallback(() => {
38
+ window.clearTimeout(a.current), i.current = !1;
39
+ }, []),
40
+ onClose: s.useCallback(() => {
41
+ window.clearTimeout(a.current), a.current = window.setTimeout(
42
+ () => i.current = !0,
43
+ r
44
+ );
45
+ }, [r]),
46
+ isPointerInTransitRef: v,
47
+ onPointerInTransitChange: s.useCallback((p) => {
48
+ v.current = p;
49
+ }, []),
50
+ disableHoverableContent: n,
51
+ children: l
52
+ }
53
+ );
54
+ };
55
+ j.displayName = G;
56
+ var R = "Tooltip", [de, _] = O(R), $ = (t) => {
57
+ const {
58
+ __scopeTooltip: o,
59
+ children: e,
60
+ open: r,
61
+ defaultOpen: n,
62
+ onOpenChange: l,
63
+ disableHoverableContent: i,
64
+ delayDuration: v
65
+ } = t, a = k(R, t.__scopeTooltip), p = D(o), [c, f] = s.useState(null), h = Z(), d = s.useRef(0), m = i ?? a.disableHoverableContent, g = v ?? a.delayDuration, T = s.useRef(!1), [C, y] = W({
66
+ prop: r,
67
+ defaultProp: n ?? !1,
68
+ onChange: (M) => {
69
+ M ? (a.onOpen(), document.dispatchEvent(new CustomEvent(L))) : a.onClose(), l?.(M);
70
+ },
71
+ caller: R
72
+ }), w = s.useMemo(() => C ? T.current ? "delayed-open" : "instant-open" : "closed", [C]), P = s.useCallback(() => {
73
+ window.clearTimeout(d.current), d.current = 0, T.current = !1, y(!0);
74
+ }, [y]), E = s.useCallback(() => {
75
+ window.clearTimeout(d.current), d.current = 0, y(!1);
76
+ }, [y]), N = s.useCallback(() => {
77
+ window.clearTimeout(d.current), d.current = window.setTimeout(() => {
78
+ T.current = !0, y(!0), d.current = 0;
79
+ }, g);
80
+ }, [g, y]);
81
+ return s.useEffect(() => () => {
82
+ d.current && (window.clearTimeout(d.current), d.current = 0);
83
+ }, []), /* @__PURE__ */ u(te, { ...p, children: /* @__PURE__ */ u(
84
+ de,
85
+ {
86
+ scope: o,
87
+ contentId: h,
88
+ open: C,
89
+ stateAttribute: w,
90
+ trigger: c,
91
+ onTriggerChange: f,
92
+ onTriggerEnter: s.useCallback(() => {
93
+ a.isOpenDelayedRef.current ? N() : P();
94
+ }, [a.isOpenDelayedRef, N, P]),
95
+ onTriggerLeave: s.useCallback(() => {
96
+ m ? E() : (window.clearTimeout(d.current), d.current = 0);
97
+ }, [E, m]),
98
+ onOpen: P,
99
+ onClose: E,
100
+ disableHoverableContent: m,
101
+ children: e
102
+ }
103
+ ) });
104
+ };
105
+ $.displayName = R;
106
+ var A = "TooltipTrigger", B = s.forwardRef(
107
+ (t, o) => {
108
+ const { __scopeTooltip: e, ...r } = t, n = _(A, e), l = k(A, e), i = D(e), v = s.useRef(null), a = H(o, v, n.onTriggerChange), p = s.useRef(!1), c = s.useRef(!1), f = s.useCallback(() => p.current = !1, []);
109
+ return s.useEffect(() => () => document.removeEventListener("pointerup", f), [f]), /* @__PURE__ */ u(oe, { asChild: !0, ...i, children: /* @__PURE__ */ u(
110
+ ne.button,
111
+ {
112
+ "aria-describedby": n.open ? n.contentId : void 0,
113
+ "data-state": n.stateAttribute,
114
+ ...r,
115
+ ref: a,
116
+ onPointerMove: x(t.onPointerMove, (h) => {
117
+ h.pointerType !== "touch" && !c.current && !l.isPointerInTransitRef.current && (n.onTriggerEnter(), c.current = !0);
118
+ }),
119
+ onPointerLeave: x(t.onPointerLeave, () => {
120
+ n.onTriggerLeave(), c.current = !1;
121
+ }),
122
+ onPointerDown: x(t.onPointerDown, () => {
123
+ n.open && n.onClose(), p.current = !0, document.addEventListener("pointerup", f, { once: !0 });
124
+ }),
125
+ onFocus: x(t.onFocus, () => {
126
+ p.current || n.onOpen();
127
+ }),
128
+ onBlur: x(t.onBlur, n.onClose),
129
+ onClick: x(t.onClick, n.onClose)
130
+ }
131
+ ) });
132
+ }
133
+ );
134
+ B.displayName = A;
135
+ var I = "TooltipPortal", [pe, fe] = O(I, {
136
+ forceMount: void 0
137
+ }), z = (t) => {
138
+ const { __scopeTooltip: o, forceMount: e, children: r, container: n } = t, l = _(I, o);
139
+ return /* @__PURE__ */ u(pe, { scope: o, forceMount: e, children: /* @__PURE__ */ u(S, { present: e || l.open, children: /* @__PURE__ */ u(J, { asChild: !0, container: n, children: r }) }) });
140
+ };
141
+ z.displayName = I;
142
+ var b = "TooltipContent", U = s.forwardRef(
143
+ (t, o) => {
144
+ const e = fe(b, t.__scopeTooltip), { forceMount: r = e.forceMount, side: n = "top", ...l } = t, i = _(b, t.__scopeTooltip);
145
+ return /* @__PURE__ */ u(S, { present: r || i.open, children: i.disableHoverableContent ? /* @__PURE__ */ u(V, { side: n, ...l, ref: o }) : /* @__PURE__ */ u(ve, { side: n, ...l, ref: o }) });
146
+ }
147
+ ), ve = s.forwardRef((t, o) => {
148
+ const e = _(b, t.__scopeTooltip), r = k(b, t.__scopeTooltip), n = s.useRef(null), l = H(o, n), [i, v] = s.useState(null), { trigger: a, onClose: p } = e, c = n.current, { onPointerInTransitChange: f } = r, h = s.useCallback(() => {
149
+ v(null), f(!1);
150
+ }, [f]), d = s.useCallback(
151
+ (m, g) => {
152
+ const T = m.currentTarget, C = { x: m.clientX, y: m.clientY }, y = ye(C, T.getBoundingClientRect()), w = Ce(C, y), P = xe(g.getBoundingClientRect()), E = we([...w, ...P]);
153
+ v(E), f(!0);
154
+ },
155
+ [f]
156
+ );
157
+ return s.useEffect(() => () => h(), [h]), s.useEffect(() => {
158
+ if (a && c) {
159
+ const m = (T) => d(T, c), g = (T) => d(T, a);
160
+ return a.addEventListener("pointerleave", m), c.addEventListener("pointerleave", g), () => {
161
+ a.removeEventListener("pointerleave", m), c.removeEventListener("pointerleave", g);
162
+ };
163
+ }
164
+ }, [a, c, d, h]), s.useEffect(() => {
165
+ if (i) {
166
+ const m = (g) => {
167
+ const T = g.target, C = { x: g.clientX, y: g.clientY }, y = a?.contains(T) || c?.contains(T), w = !be(C, i);
168
+ y ? h() : w && (h(), p());
169
+ };
170
+ return document.addEventListener("pointermove", m), () => document.removeEventListener("pointermove", m);
171
+ }
172
+ }, [a, c, i, p, h]), /* @__PURE__ */ u(V, { ...t, ref: l });
173
+ }), [he, me] = O(R, { isInside: !1 }), Te = /* @__PURE__ */ le("TooltipContent"), V = s.forwardRef(
174
+ (t, o) => {
175
+ const {
176
+ __scopeTooltip: e,
177
+ children: r,
178
+ "aria-label": n,
179
+ onEscapeKeyDown: l,
180
+ onPointerDownOutside: i,
181
+ ...v
182
+ } = t, a = _(b, e), p = D(e), { onClose: c } = a;
183
+ return s.useEffect(() => (document.addEventListener(L, c), () => document.removeEventListener(L, c)), [c]), s.useEffect(() => {
184
+ if (a.trigger) {
185
+ const f = (h) => {
186
+ h.target?.contains(a.trigger) && c();
187
+ };
188
+ return window.addEventListener("scroll", f, { capture: !0 }), () => window.removeEventListener("scroll", f, { capture: !0 });
189
+ }
190
+ }, [a.trigger, c]), /* @__PURE__ */ u(
191
+ Q,
192
+ {
193
+ asChild: !0,
194
+ disableOutsidePointerEvents: !1,
195
+ onEscapeKeyDown: l,
196
+ onPointerDownOutside: i,
197
+ onFocusOutside: (f) => f.preventDefault(),
198
+ onDismiss: c,
199
+ children: /* @__PURE__ */ X(
200
+ ee,
201
+ {
202
+ "data-state": a.stateAttribute,
203
+ ...p,
204
+ ...v,
205
+ ref: o,
206
+ style: {
207
+ ...v.style,
208
+ "--radix-tooltip-content-transform-origin": "var(--radix-popper-transform-origin)",
209
+ "--radix-tooltip-content-available-width": "var(--radix-popper-available-width)",
210
+ "--radix-tooltip-content-available-height": "var(--radix-popper-available-height)",
211
+ "--radix-tooltip-trigger-width": "var(--radix-popper-anchor-width)",
212
+ "--radix-tooltip-trigger-height": "var(--radix-popper-anchor-height)"
213
+ },
214
+ children: [
215
+ /* @__PURE__ */ u(Te, { children: r }),
216
+ /* @__PURE__ */ u(he, { scope: e, isInside: !0, children: /* @__PURE__ */ u(se, { id: a.contentId, role: "tooltip", children: n || r }) })
217
+ ]
218
+ }
219
+ )
220
+ }
221
+ );
222
+ }
223
+ );
224
+ U.displayName = b;
225
+ var Y = "TooltipArrow", ge = s.forwardRef(
226
+ (t, o) => {
227
+ const { __scopeTooltip: e, ...r } = t, n = D(e);
228
+ return me(
229
+ Y,
230
+ e
231
+ ).isInside ? null : /* @__PURE__ */ u(re, { ...n, ...r, ref: o });
232
+ }
233
+ );
234
+ ge.displayName = Y;
235
+ function ye(t, o) {
236
+ const e = Math.abs(o.top - t.y), r = Math.abs(o.bottom - t.y), n = Math.abs(o.right - t.x), l = Math.abs(o.left - t.x);
237
+ switch (Math.min(e, r, n, l)) {
238
+ case l:
239
+ return "left";
240
+ case n:
241
+ return "right";
242
+ case e:
243
+ return "top";
244
+ case r:
245
+ return "bottom";
246
+ default:
247
+ throw new Error("unreachable");
248
+ }
249
+ }
250
+ function Ce(t, o, e = 5) {
251
+ const r = [];
252
+ switch (o) {
253
+ case "top":
254
+ r.push(
255
+ { x: t.x - e, y: t.y + e },
256
+ { x: t.x + e, y: t.y + e }
257
+ );
258
+ break;
259
+ case "bottom":
260
+ r.push(
261
+ { x: t.x - e, y: t.y - e },
262
+ { x: t.x + e, y: t.y - e }
263
+ );
264
+ break;
265
+ case "left":
266
+ r.push(
267
+ { x: t.x + e, y: t.y - e },
268
+ { x: t.x + e, y: t.y + e }
269
+ );
270
+ break;
271
+ case "right":
272
+ r.push(
273
+ { x: t.x - e, y: t.y - e },
274
+ { x: t.x - e, y: t.y + e }
275
+ );
276
+ break;
277
+ }
278
+ return r;
279
+ }
280
+ function xe(t) {
281
+ const { top: o, right: e, bottom: r, left: n } = t;
282
+ return [
283
+ { x: n, y: o },
284
+ { x: e, y: o },
285
+ { x: e, y: r },
286
+ { x: n, y: r }
287
+ ];
288
+ }
289
+ function be(t, o) {
290
+ const { x: e, y: r } = t;
291
+ let n = !1;
292
+ for (let l = 0, i = o.length - 1; l < o.length; i = l++) {
293
+ const v = o[l], a = o[i], p = v.x, c = v.y, f = a.x, h = a.y;
294
+ c > r != h > r && e < (f - p) * (r - c) / (h - c) + p && (n = !n);
295
+ }
296
+ return n;
297
+ }
298
+ function we(t) {
299
+ const o = t.slice();
300
+ return o.sort((e, r) => e.x < r.x ? -1 : e.x > r.x ? 1 : e.y < r.y ? -1 : e.y > r.y ? 1 : 0), Pe(o);
301
+ }
302
+ function Pe(t) {
303
+ if (t.length <= 1) return t.slice();
304
+ const o = [];
305
+ for (let r = 0; r < t.length; r++) {
306
+ const n = t[r];
307
+ for (; o.length >= 2; ) {
308
+ const l = o[o.length - 1], i = o[o.length - 2];
309
+ if ((l.x - i.x) * (n.y - i.y) >= (l.y - i.y) * (n.x - i.x)) o.pop();
310
+ else break;
311
+ }
312
+ o.push(n);
313
+ }
314
+ o.pop();
315
+ const e = [];
316
+ for (let r = t.length - 1; r >= 0; r--) {
317
+ const n = t[r];
318
+ for (; e.length >= 2; ) {
319
+ const l = e[e.length - 1], i = e[e.length - 2];
320
+ if ((l.x - i.x) * (n.y - i.y) >= (l.y - i.y) * (n.x - i.x)) e.pop();
321
+ else break;
322
+ }
323
+ e.push(n);
324
+ }
325
+ return e.pop(), o.length === 1 && e.length === 1 && o[0].x === e[0].x && o[0].y === e[0].y ? o : o.concat(e);
326
+ }
327
+ var Ee = j, Re = $, _e = B, Oe = z, De = U;
328
+ const je = Ee, $e = Re, Be = _e, Le = s.forwardRef(({ className: t, sideOffset: o = 6, ...e }, r) => /* @__PURE__ */ u(Oe, { children: /* @__PURE__ */ u(
329
+ De,
330
+ {
331
+ ref: r,
332
+ sideOffset: o,
333
+ className: ae(
334
+ "z-50 overflow-hidden rounded-md border border-border bg-card px-3 py-1.5 text-sm text-foreground shadow-lg",
335
+ "animate-in fade-in-0 zoom-in-95",
336
+ "data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",
337
+ "data-[side=bottom]:slide-in-from-top-2",
338
+ "data-[side=left]:slide-in-from-right-2",
339
+ "data-[side=right]:slide-in-from-left-2",
340
+ "data-[side=top]:slide-in-from-bottom-2",
341
+ t
342
+ ),
343
+ ...e
344
+ }
345
+ ) }));
346
+ Le.displayName = "TooltipContent";
347
+ export {
348
+ $e as Tooltip,
349
+ Le as TooltipContent,
350
+ je as TooltipProvider,
351
+ Be as TooltipTrigger
352
+ };
@@ -0,0 +1,101 @@
1
+ import * as React from 'react';
2
+ export interface PageTitleProps extends React.HTMLAttributes<HTMLHeadingElement> {
3
+ /**
4
+ * Optional Lucide icon component displayed in a rounded primary-tinted container.
5
+ * When provided, replaces the default gold accent bar on the left.
6
+ *
7
+ * @default undefined
8
+ */
9
+ icon?: React.ComponentType<{
10
+ size?: number;
11
+ }>;
12
+ }
13
+ export interface PageDescriptionProps extends React.HTMLAttributes<HTMLParagraphElement> {
14
+ }
15
+ export interface SectionTitleProps extends React.HTMLAttributes<HTMLHeadingElement> {
16
+ }
17
+ export interface H1Props extends React.HTMLAttributes<HTMLHeadingElement> {
18
+ }
19
+ export interface H2Props extends React.HTMLAttributes<HTMLHeadingElement> {
20
+ }
21
+ export interface H3Props extends React.HTMLAttributes<HTMLHeadingElement> {
22
+ }
23
+ export interface CaptionProps extends React.HTMLAttributes<HTMLSpanElement> {
24
+ }
25
+ export interface InlineCodeProps extends React.HTMLAttributes<HTMLElement> {
26
+ }
27
+ export interface AppNameProps extends React.HTMLAttributes<HTMLSpanElement> {
28
+ /** Application name (left part, white/foreground). */
29
+ name: string;
30
+ /** Application suffix (right part, primary/gold). */
31
+ suffix: string;
32
+ }
33
+ /**
34
+ * Page-level heading with a gold accent bar or icon on the left.
35
+ * Renders an h2 element. When no icon is provided, a vertical gold bar is shown.
36
+ *
37
+ * @example
38
+ * <PageTitle>Dashboard</PageTitle>
39
+ * @example
40
+ * import { Palette } from 'lucide-react';
41
+ * <PageTitle icon={Palette}>Couleurs</PageTitle>
42
+ */
43
+ declare function PageTitle({ children, icon: Icon, className, ...props }: PageTitleProps): import("react/jsx-runtime").JSX.Element;
44
+ /**
45
+ * Muted description text below a PageTitle.
46
+ *
47
+ * @example
48
+ * <PageDescription>Overview of system metrics.</PageDescription>
49
+ */
50
+ declare function PageDescription({ children, className, ...props }: PageDescriptionProps): import("react/jsx-runtime").JSX.Element;
51
+ /**
52
+ * Section heading in uppercase with wide letter spacing.
53
+ * Renders an h3 element.
54
+ *
55
+ * @example
56
+ * <SectionTitle>Configuration</SectionTitle>
57
+ */
58
+ declare function SectionTitle({ children, className, ...props }: SectionTitleProps): import("react/jsx-runtime").JSX.Element;
59
+ /**
60
+ * Primary heading (24px, semibold). Renders an h1 element.
61
+ *
62
+ * @example
63
+ * <H1>Dashboard Overview</H1>
64
+ */
65
+ declare function H1({ children, className, ...props }: H1Props): import("react/jsx-runtime").JSX.Element;
66
+ /**
67
+ * Secondary heading (18px, semibold). Renders an h2 element.
68
+ *
69
+ * @example
70
+ * <H2>Recent Jobs</H2>
71
+ */
72
+ declare function H2({ children, className, ...props }: H2Props): import("react/jsx-runtime").JSX.Element;
73
+ /**
74
+ * Tertiary heading (14px, semibold). Renders an h3 element.
75
+ *
76
+ * @example
77
+ * <H3>Job Information</H3>
78
+ */
79
+ declare function H3({ children, className, ...props }: H3Props): import("react/jsx-runtime").JSX.Element;
80
+ /**
81
+ * Small muted text for secondary information (12px). Renders a span.
82
+ *
83
+ * @example
84
+ * <Caption>Added 11 minutes ago</Caption>
85
+ */
86
+ declare function Caption({ children, className, ...props }: CaptionProps): import("react/jsx-runtime").JSX.Element;
87
+ /**
88
+ * Inline monospace code text (13px, JetBrains Mono). Renders a code element.
89
+ *
90
+ * @example
91
+ * <InlineCode>598ff1be-f67c-4c79-ab2e-b68021fc12ca</InlineCode>
92
+ */
93
+ declare function InlineCode({ children, className, ...props }: InlineCodeProps): import("react/jsx-runtime").JSX.Element;
94
+ /**
95
+ * Branded application name with gold suffix. Used in navbars and headers.
96
+ *
97
+ * @example
98
+ * <AppName name="HANUS" suffix="AIO" />
99
+ */
100
+ declare function AppName({ name, suffix, className, ...props }: AppNameProps): import("react/jsx-runtime").JSX.Element;
101
+ export { PageTitle, PageDescription, SectionTitle, H1, H2, H3, Caption, InlineCode, AppName };
@@ -0,0 +1,123 @@
1
+ import { jsxs as i, jsx as n } from "react/jsx-runtime";
2
+ import { c as o } from "./_shared/utils-eGXXUFl7.js";
3
+ function f({ children: t, icon: e, className: r, ...s }) {
4
+ return /* @__PURE__ */ i(
5
+ "h2",
6
+ {
7
+ className: o(
8
+ "text-2xl font-bold text-foreground flex items-center gap-3",
9
+ !e && "before:content-[''] before:w-1 before:h-6 before:bg-primary before:rounded-sm before:shrink-0",
10
+ r
11
+ ),
12
+ ...s,
13
+ children: [
14
+ e && /* @__PURE__ */ n("span", { className: "w-9 h-9 rounded-md bg-primary/15 text-primary flex items-center justify-center shrink-0", children: /* @__PURE__ */ n(e, { size: 18 }) }),
15
+ t
16
+ ]
17
+ }
18
+ );
19
+ }
20
+ function m({ children: t, className: e, ...r }) {
21
+ return /* @__PURE__ */ n(
22
+ "p",
23
+ {
24
+ className: o(
25
+ "text-[0.8125rem] text-muted-foreground",
26
+ e
27
+ ),
28
+ ...r,
29
+ children: t
30
+ }
31
+ );
32
+ }
33
+ function u({ children: t, className: e, ...r }) {
34
+ return /* @__PURE__ */ n(
35
+ "h3",
36
+ {
37
+ className: o(
38
+ "text-xs font-semibold text-muted-foreground uppercase tracking-wide",
39
+ e
40
+ ),
41
+ ...r,
42
+ children: t
43
+ }
44
+ );
45
+ }
46
+ function d({ children: t, className: e, ...r }) {
47
+ return /* @__PURE__ */ n(
48
+ "h1",
49
+ {
50
+ className: o("text-2xl font-semibold text-foreground", e),
51
+ ...r,
52
+ children: t
53
+ }
54
+ );
55
+ }
56
+ function x({ children: t, className: e, ...r }) {
57
+ return /* @__PURE__ */ n(
58
+ "h2",
59
+ {
60
+ className: o("text-lg font-semibold text-foreground", e),
61
+ ...r,
62
+ children: t
63
+ }
64
+ );
65
+ }
66
+ function l({ children: t, className: e, ...r }) {
67
+ return /* @__PURE__ */ n(
68
+ "h3",
69
+ {
70
+ className: o("text-sm font-semibold text-foreground", e),
71
+ ...r,
72
+ children: t
73
+ }
74
+ );
75
+ }
76
+ function p({ children: t, className: e, ...r }) {
77
+ return /* @__PURE__ */ n(
78
+ "span",
79
+ {
80
+ className: o("text-xs text-muted-foreground", e),
81
+ ...r,
82
+ children: t
83
+ }
84
+ );
85
+ }
86
+ function g({ children: t, className: e, ...r }) {
87
+ return /* @__PURE__ */ n(
88
+ "code",
89
+ {
90
+ className: o("font-mono text-[13px] text-foreground", e),
91
+ ...r,
92
+ children: t
93
+ }
94
+ );
95
+ }
96
+ function b({ name: t, suffix: e, className: r, ...s }) {
97
+ return /* @__PURE__ */ i(
98
+ "span",
99
+ {
100
+ className: o(
101
+ "text-sm font-bold uppercase tracking-wider text-foreground",
102
+ r
103
+ ),
104
+ ...s,
105
+ children: [
106
+ t,
107
+ " ",
108
+ /* @__PURE__ */ n("span", { className: "text-primary", children: e })
109
+ ]
110
+ }
111
+ );
112
+ }
113
+ export {
114
+ b as AppName,
115
+ p as Caption,
116
+ d as H1,
117
+ x as H2,
118
+ l as H3,
119
+ g as InlineCode,
120
+ m as PageDescription,
121
+ f as PageTitle,
122
+ u as SectionTitle
123
+ };