@luxfi/ui 7.3.2 → 7.4.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 (154) hide show
  1. package/dist/alert.cjs +2 -2
  2. package/dist/alert.js +1 -1
  3. package/dist/avatar.cjs +7 -6
  4. package/dist/avatar.js +7 -5
  5. package/dist/badge.cjs +36 -38
  6. package/dist/badge.js +31 -33
  7. package/dist/bank.cjs +13 -13
  8. package/dist/bank.d.cts +31 -24
  9. package/dist/bank.d.ts +31 -24
  10. package/dist/bank.js +1 -1
  11. package/dist/button.cjs +3 -3
  12. package/dist/button.js +1 -1
  13. package/dist/checkbox.cjs +4 -4
  14. package/dist/checkbox.d.cts +3 -2
  15. package/dist/checkbox.d.ts +3 -2
  16. package/dist/checkbox.js +5 -4
  17. package/dist/chrome.cjs +950 -0
  18. package/dist/chrome.d.cts +93 -0
  19. package/dist/chrome.d.ts +93 -0
  20. package/dist/chrome.js +921 -0
  21. package/dist/close-button.cjs +2 -2
  22. package/dist/close-button.js +1 -1
  23. package/dist/dialog.cjs +13 -14
  24. package/dist/dialog.d.cts +58 -5
  25. package/dist/dialog.d.ts +58 -5
  26. package/dist/dialog.js +1 -2
  27. package/dist/drawer.cjs +87 -21
  28. package/dist/drawer.js +85 -19
  29. package/dist/expiration-selector.cjs +3 -2
  30. package/dist/expiration-selector.js +3 -2
  31. package/dist/greeks-display.cjs +6 -6
  32. package/dist/greeks-display.js +6 -6
  33. package/dist/gui.cjs +13 -0
  34. package/dist/gui.d.cts +2 -0
  35. package/dist/gui.d.ts +2 -0
  36. package/dist/gui.js +2 -0
  37. package/dist/heading.cjs +4 -2
  38. package/dist/heading.js +4 -2
  39. package/dist/iam.cjs +206 -0
  40. package/dist/iam.d.cts +65 -0
  41. package/dist/iam.d.ts +65 -0
  42. package/dist/iam.js +201 -0
  43. package/dist/icon-button.cjs +2 -2
  44. package/dist/icon-button.js +1 -1
  45. package/dist/icons.cjs +13 -0
  46. package/dist/icons.d.cts +1 -0
  47. package/dist/icons.d.ts +1 -0
  48. package/dist/icons.js +2 -0
  49. package/dist/identity.cjs +420 -0
  50. package/dist/identity.d.cts +64 -0
  51. package/dist/identity.d.ts +64 -0
  52. package/dist/identity.js +398 -0
  53. package/dist/index.cjs +1699 -860
  54. package/dist/index.d.cts +12 -4
  55. package/dist/index.d.ts +12 -4
  56. package/dist/index.js +1618 -802
  57. package/dist/input.cjs +13 -3
  58. package/dist/input.d.cts +6 -0
  59. package/dist/input.d.ts +6 -0
  60. package/dist/input.js +13 -3
  61. package/dist/lux.config.cjs +77 -0
  62. package/dist/lux.config.d.cts +433 -0
  63. package/dist/lux.config.d.ts +433 -0
  64. package/dist/lux.config.js +69 -0
  65. package/dist/menu.cjs +4 -4
  66. package/dist/menu.js +4 -4
  67. package/dist/next.cjs +99 -0
  68. package/dist/next.d.cts +29 -0
  69. package/dist/next.d.ts +29 -0
  70. package/dist/next.js +96 -0
  71. package/dist/option-chain.cjs +1 -1
  72. package/dist/option-chain.js +1 -1
  73. package/dist/option-position.cjs +2 -1
  74. package/dist/option-position.js +2 -1
  75. package/dist/pnl-diagram.cjs +8 -6
  76. package/dist/pnl-diagram.js +8 -6
  77. package/dist/popover.cjs +8 -9
  78. package/dist/popover.js +1 -2
  79. package/dist/progress.cjs +7 -6
  80. package/dist/progress.js +7 -5
  81. package/dist/provider.cjs +199 -5
  82. package/dist/provider.d.cts +16 -3
  83. package/dist/provider.d.ts +16 -3
  84. package/dist/provider.js +195 -6
  85. package/dist/radio.cjs +9 -7
  86. package/dist/radio.js +10 -7
  87. package/dist/separator.cjs +3 -1
  88. package/dist/separator.js +3 -1
  89. package/dist/slider.cjs +28 -16
  90. package/dist/slider.js +28 -15
  91. package/dist/strategy-builder.cjs +2 -1
  92. package/dist/strategy-builder.js +2 -1
  93. package/dist/switch.cjs +11 -12
  94. package/dist/switch.js +12 -12
  95. package/dist/tag.cjs +38 -41
  96. package/dist/tag.js +31 -34
  97. package/dist/textarea.cjs +13 -3
  98. package/dist/textarea.d.cts +2 -0
  99. package/dist/textarea.d.ts +2 -0
  100. package/dist/textarea.js +13 -3
  101. package/dist/tooltip.cjs +31 -33
  102. package/dist/tooltip.js +25 -27
  103. package/dist/use-narrow.cjs +46 -0
  104. package/dist/use-narrow.d.cts +12 -0
  105. package/dist/use-narrow.d.ts +12 -0
  106. package/dist/use-narrow.js +20 -0
  107. package/dist/vite.cjs +40 -0
  108. package/dist/vite.d.cts +29 -0
  109. package/dist/vite.d.ts +29 -0
  110. package/dist/vite.js +38 -0
  111. package/dist/white-label.cjs +132 -0
  112. package/dist/white-label.d.cts +59 -0
  113. package/dist/white-label.d.ts +59 -0
  114. package/dist/white-label.js +124 -0
  115. package/package.json +95 -17
  116. package/src/avatar.tsx +22 -16
  117. package/src/bank.tsx +2 -2
  118. package/src/button.tsx +1 -1
  119. package/src/checkbox.tsx +15 -10
  120. package/src/chrome.tsx +459 -0
  121. package/src/close-button.tsx +1 -1
  122. package/src/dialog.tsx +1 -1
  123. package/src/drawer.tsx +83 -10
  124. package/src/expiration-selector.tsx +3 -2
  125. package/src/greeks-display.tsx +9 -6
  126. package/src/gui.ts +17 -0
  127. package/src/heading.tsx +12 -8
  128. package/src/iam.ts +170 -0
  129. package/src/icon-button.tsx +1 -1
  130. package/src/icons.ts +18 -0
  131. package/src/identity.tsx +318 -0
  132. package/src/index.ts +50 -1
  133. package/src/input.tsx +24 -4
  134. package/src/lux.config.ts +82 -0
  135. package/src/menu.tsx +4 -4
  136. package/src/next.ts +142 -0
  137. package/src/option-chain.tsx +1 -1
  138. package/src/option-position.tsx +2 -1
  139. package/src/pnl-diagram.tsx +11 -6
  140. package/src/popover.tsx +1 -1
  141. package/src/progress.tsx +15 -8
  142. package/src/provider.tsx +92 -12
  143. package/src/radio.tsx +15 -11
  144. package/src/separator.tsx +8 -3
  145. package/src/slider.tsx +35 -19
  146. package/src/strategy-builder.tsx +3 -2
  147. package/src/switch.tsx +17 -16
  148. package/src/textarea.tsx +18 -4
  149. package/src/tooltip.tsx +4 -23
  150. package/src/use-narrow.ts +40 -0
  151. package/src/vite.ts +78 -0
  152. package/src/white-label.ts +240 -0
  153. package/tokens.css +544 -319
  154. package/src/tokens.css +0 -438
package/dist/alert.cjs CHANGED
@@ -4,7 +4,7 @@
4
4
  var React2 = require('react');
5
5
  var clsx = require('clsx');
6
6
  var tailwindMerge = require('tailwind-merge');
7
- var core = require('@hanzogui/core');
7
+ var gui = require('@hanzo/gui');
8
8
  var jsxRuntime = require('react/jsx-runtime');
9
9
 
10
10
  function _interopNamespace(e) {
@@ -32,7 +32,7 @@ function cn(...inputs) {
32
32
  return tailwindMerge.twMerge(clsx.clsx(inputs));
33
33
  }
34
34
  var CLOSE_ICON_PATH = "M9.44 8.035a.791.791 0 0 0 1.12 0l3.802-3.803a.791.791 0 0 1 1.119 0l.287.287a.79.79 0 0 1 0 1.119L11.965 9.44a.79.79 0 0 0 0 1.118l3.803 3.803a.791.791 0 0 1 0 1.119l-.287.287a.791.791 0 0 1-1.119 0l-3.803-3.803a.79.79 0 0 0-1.118 0l-3.803 3.803a.79.79 0 0 1-1.119 0l-.287-.287a.791.791 0 0 1 0-1.119l3.803-3.803a.791.791 0 0 0 0-1.118L4.232 5.638a.791.791 0 0 1 0-1.119l.287-.287a.791.791 0 0 1 1.119 0L9.44 8.035Z";
35
- var CloseButtonFrame = core.styled(core.View, {
35
+ var CloseButtonFrame = gui.styled(gui.View, {
36
36
  name: "LuxCloseButton",
37
37
  render: /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", "aria-label": "Close" }),
38
38
  role: "button",
package/dist/alert.js CHANGED
@@ -2,7 +2,7 @@
2
2
  import * as React2 from 'react';
3
3
  import { clsx } from 'clsx';
4
4
  import { twMerge } from 'tailwind-merge';
5
- import { styled, View } from '@hanzogui/core';
5
+ import { styled, View } from '@hanzo/gui';
6
6
  import { jsx, jsxs } from 'react/jsx-runtime';
7
7
 
8
8
  // src/alert.tsx
package/dist/avatar.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var RadixAvatar = require('@radix-ui/react-avatar');
4
+ var gui = require('@hanzo/gui');
5
5
  var React = require('react');
6
6
  var clsx = require('clsx');
7
7
  var tailwindMerge = require('tailwind-merge');
@@ -25,7 +25,6 @@ function _interopNamespace(e) {
25
25
  return Object.freeze(n);
26
26
  }
27
27
 
28
- var RadixAvatar__namespace = /*#__PURE__*/_interopNamespace(RadixAvatar);
29
28
  var React__namespace = /*#__PURE__*/_interopNamespace(React);
30
29
 
31
30
  function cn(...inputs) {
@@ -71,9 +70,10 @@ var Avatar = React__namespace.forwardRef(
71
70
  const variant = variantProp ?? group.variant ?? DEFAULT_VARIANT;
72
71
  const isBorderless = borderless ?? group.borderless ?? false;
73
72
  return /* @__PURE__ */ jsxRuntime.jsxs(
74
- RadixAvatar__namespace.Root,
73
+ gui.Avatar,
75
74
  {
76
75
  ref,
76
+ unstyled: true,
77
77
  className: cn(
78
78
  "relative inline-flex shrink-0 items-center justify-center overflow-hidden rounded-full align-middle",
79
79
  SIZE_CLASSES[size],
@@ -84,8 +84,8 @@ var Avatar = React__namespace.forwardRef(
84
84
  ...rest,
85
85
  children: [
86
86
  /* @__PURE__ */ jsxRuntime.jsx(AvatarFallback, { name, icon, children: fallback }),
87
- /* @__PURE__ */ jsxRuntime.jsx(
88
- RadixAvatar__namespace.Image,
87
+ src != null && /* @__PURE__ */ jsxRuntime.jsx(
88
+ gui.Avatar.Image,
89
89
  {
90
90
  className: "h-full w-full rounded-[inherit] object-cover",
91
91
  src,
@@ -104,9 +104,10 @@ var AvatarFallback = React__namespace.forwardRef(
104
104
  function AvatarFallback2(props, ref) {
105
105
  const { name, icon, children, className, ...rest } = props;
106
106
  return /* @__PURE__ */ jsxRuntime.jsxs(
107
- RadixAvatar__namespace.Fallback,
107
+ gui.Avatar.Fallback,
108
108
  {
109
109
  ref,
110
+ unstyled: true,
110
111
  className: cn(
111
112
  "flex h-full w-full items-center justify-center font-medium",
112
113
  className
package/dist/avatar.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import * as RadixAvatar from '@radix-ui/react-avatar';
2
+ import { Avatar as Avatar$1 } from '@hanzo/gui';
3
3
  import * as React from 'react';
4
4
  import { clsx } from 'clsx';
5
5
  import { twMerge } from 'tailwind-merge';
@@ -48,9 +48,10 @@ var Avatar = React.forwardRef(
48
48
  const variant = variantProp ?? group.variant ?? DEFAULT_VARIANT;
49
49
  const isBorderless = borderless ?? group.borderless ?? false;
50
50
  return /* @__PURE__ */ jsxs(
51
- RadixAvatar.Root,
51
+ Avatar$1,
52
52
  {
53
53
  ref,
54
+ unstyled: true,
54
55
  className: cn(
55
56
  "relative inline-flex shrink-0 items-center justify-center overflow-hidden rounded-full align-middle",
56
57
  SIZE_CLASSES[size],
@@ -61,8 +62,8 @@ var Avatar = React.forwardRef(
61
62
  ...rest,
62
63
  children: [
63
64
  /* @__PURE__ */ jsx(AvatarFallback, { name, icon, children: fallback }),
64
- /* @__PURE__ */ jsx(
65
- RadixAvatar.Image,
65
+ src != null && /* @__PURE__ */ jsx(
66
+ Avatar$1.Image,
66
67
  {
67
68
  className: "h-full w-full rounded-[inherit] object-cover",
68
69
  src,
@@ -81,9 +82,10 @@ var AvatarFallback = React.forwardRef(
81
82
  function AvatarFallback2(props, ref) {
82
83
  const { name, icon, children, className, ...rest } = props;
83
84
  return /* @__PURE__ */ jsxs(
84
- RadixAvatar.Fallback,
85
+ Avatar$1.Fallback,
85
86
  {
86
87
  ref,
88
+ unstyled: true,
87
89
  className: cn(
88
90
  "flex h-full w-full items-center justify-center font-medium",
89
91
  className
package/dist/badge.cjs CHANGED
@@ -1,11 +1,11 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var React2 = require('react');
4
+ var React3 = require('react');
5
5
  var clsx = require('clsx');
6
6
  var tailwindMerge = require('tailwind-merge');
7
7
  var jsxRuntime = require('react/jsx-runtime');
8
- var tooltip = require('@hanzogui/tooltip');
8
+ var gui = require('@hanzo/gui');
9
9
  var usehooks = require('@uidotdev/usehooks');
10
10
 
11
11
  function _interopNamespace(e) {
@@ -26,7 +26,7 @@ function _interopNamespace(e) {
26
26
  return Object.freeze(n);
27
27
  }
28
28
 
29
- var React2__namespace = /*#__PURE__*/_interopNamespace(React2);
29
+ var React3__namespace = /*#__PURE__*/_interopNamespace(React3);
30
30
 
31
31
  // src/badge.tsx
32
32
  function cn(...inputs) {
@@ -152,7 +152,7 @@ var SKELETON_CLASSES = [
152
152
  "bg-[length:200%_100%]"
153
153
  ].join(" ");
154
154
  var HIDE_BELOW_MAP = { lg: "lg:hidden", md: "md:hidden", sm: "sm:hidden" };
155
- var Skeleton = React2__namespace.forwardRef(
155
+ var Skeleton = React3__namespace.forwardRef(
156
156
  function Skeleton2(props, ref) {
157
157
  const { loading = false, asChild, className, children, style: styleProp, as: Component = "div", ...allRest } = props;
158
158
  const shimStyle = shimToStyle(props);
@@ -161,10 +161,10 @@ var Skeleton = React2__namespace.forwardRef(
161
161
  const cls = hideBelowClass ? cn(className, hideBelowClass) : className;
162
162
  const htmlRest = stripShims(allRest);
163
163
  if (!loading) {
164
- if (asChild && React2__namespace.isValidElement(children)) return children;
164
+ if (asChild && React3__namespace.isValidElement(children)) return children;
165
165
  return /* @__PURE__ */ jsxRuntime.jsx(Component, { ref, className: cls, style: mergedStyle, ...htmlRest, children });
166
166
  }
167
- if (asChild && React2__namespace.isValidElement(children)) {
167
+ if (asChild && React3__namespace.isValidElement(children)) {
168
168
  return /* @__PURE__ */ jsxRuntime.jsx(
169
169
  Component,
170
170
  {
@@ -190,7 +190,7 @@ var Skeleton = React2__namespace.forwardRef(
190
190
  );
191
191
  }
192
192
  );
193
- React2__namespace.forwardRef(
193
+ React3__namespace.forwardRef(
194
194
  function SkeletonCircle2(props, ref) {
195
195
  const { size = 40, loading = true, className, ...rest } = props;
196
196
  const dimension = typeof size === "number" ? `${size}px` : size;
@@ -206,7 +206,7 @@ React2__namespace.forwardRef(
206
206
  );
207
207
  }
208
208
  );
209
- React2__namespace.forwardRef(
209
+ React3__namespace.forwardRef(
210
210
  function SkeletonText2(props, ref) {
211
211
  const { noOfLines = 3, loading = true, className, ...rest } = props;
212
212
  return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: cn("flex w-full flex-col gap-2", className), ...rest, children: Array.from({ length: noOfLines }).map((_, index) => /* @__PURE__ */ jsxRuntime.jsx(
@@ -219,26 +219,24 @@ React2__namespace.forwardRef(
219
219
  )) });
220
220
  }
221
221
  );
222
- var LG_BREAKPOINT = 1024;
223
- function useIsMobile() {
224
- const [isMobile, setIsMobile] = React2__namespace.useState(() => {
225
- if (typeof window === "undefined") return false;
226
- return window.innerWidth < LG_BREAKPOINT;
227
- });
228
- React2__namespace.useEffect(() => {
229
- const mql = window.matchMedia(`(max-width: ${LG_BREAKPOINT - 1}px)`);
230
- const handler = (e) => setIsMobile(e.matches);
231
- setIsMobile(mql.matches);
232
- mql.addEventListener("change", handler);
233
- return () => mql.removeEventListener("change", handler);
234
- }, []);
235
- return isMobile;
222
+ var TOUCH_PX = 1024;
223
+ function useBelow(px) {
224
+ const [below, setBelow] = React3__namespace.useState(false);
225
+ React3__namespace.useEffect(() => {
226
+ const mql = window.matchMedia(`(max-width: ${px - 1}px)`);
227
+ const apply = () => setBelow(mql.matches);
228
+ apply();
229
+ mql.addEventListener("change", apply);
230
+ return () => mql.removeEventListener("change", apply);
231
+ }, [px]);
232
+ return below;
236
233
  }
234
+ var useIsTouch = () => useBelow(TOUCH_PX);
237
235
  function mapPlacement(p) {
238
236
  if (!p) return void 0;
239
237
  return p;
240
238
  }
241
- var Tooltip = React2__namespace.forwardRef(
239
+ var Tooltip = React3__namespace.forwardRef(
242
240
  function Tooltip2(props, ref) {
243
241
  const {
244
242
  showArrow: showArrowProp,
@@ -257,28 +255,28 @@ var Tooltip = React2__namespace.forwardRef(
257
255
  interactive,
258
256
  positioning
259
257
  } = props;
260
- const [open, setOpen] = React2__namespace.useState(defaultOpen);
261
- const timeoutRef = React2__namespace.useRef(null);
262
- const isMobile = useIsMobile();
263
- const handleOpenChange = React2__namespace.useCallback((nextOpen) => {
258
+ const [open, setOpen] = React3__namespace.useState(defaultOpen);
259
+ const timeoutRef = React3__namespace.useRef(null);
260
+ const isMobile = useIsTouch();
261
+ const handleOpenChange = React3__namespace.useCallback((nextOpen) => {
264
262
  setOpen(nextOpen);
265
263
  onOpenChange?.({ open: nextOpen });
266
264
  }, [onOpenChange]);
267
- const handleOpenChangeManual = React2__namespace.useCallback((nextOpen) => {
265
+ const handleOpenChangeManual = React3__namespace.useCallback((nextOpen) => {
268
266
  timeoutRef.current && window.clearTimeout(timeoutRef.current);
269
267
  timeoutRef.current = window.setTimeout(() => {
270
268
  setOpen(nextOpen);
271
269
  onOpenChange?.({ open: nextOpen });
272
270
  }, nextOpen ? openDelay : closeDelay);
273
271
  }, [closeDelay, openDelay, onOpenChange]);
274
- const handleClickAway = React2__namespace.useCallback(() => {
272
+ const handleClickAway = React3__namespace.useCallback(() => {
275
273
  handleOpenChangeManual(false);
276
274
  }, [handleOpenChangeManual]);
277
275
  const triggerRef = usehooks.useClickAway(handleClickAway);
278
- const handleTriggerClick = React2__namespace.useCallback(() => {
276
+ const handleTriggerClick = React3__namespace.useCallback(() => {
279
277
  handleOpenChangeManual(!open);
280
278
  }, [handleOpenChangeManual, open]);
281
- const handleContentClick = React2__namespace.useCallback((event) => {
279
+ const handleContentClick = React3__namespace.useCallback((event) => {
282
280
  event.stopPropagation();
283
281
  if (interactive) {
284
282
  const closestLink = event.target?.closest("a");
@@ -287,7 +285,7 @@ var Tooltip = React2__namespace.forwardRef(
287
285
  }
288
286
  }
289
287
  }, [interactive, handleOpenChangeManual]);
290
- React2__namespace.useEffect(() => {
288
+ React3__namespace.useEffect(() => {
291
289
  return () => {
292
290
  if (timeoutRef.current) {
293
291
  clearTimeout(timeoutRef.current);
@@ -300,8 +298,8 @@ var Tooltip = React2__namespace.forwardRef(
300
298
  const isPopover = variant === "popover";
301
299
  const placement = mapPlacement(positioning?.placement) ?? "top";
302
300
  const offset = positioning?.offset?.mainAxis ?? 4;
303
- return /* @__PURE__ */ jsxRuntime.jsx(tooltip.TooltipGroup, { delay: openDelay, children: /* @__PURE__ */ jsxRuntime.jsxs(
304
- tooltip.Tooltip,
301
+ return /* @__PURE__ */ jsxRuntime.jsx(gui.TooltipGroup, { delay: openDelay, children: /* @__PURE__ */ jsxRuntime.jsxs(
302
+ gui.Tooltip,
305
303
  {
306
304
  open,
307
305
  onOpenChange: handleOpenChange,
@@ -311,7 +309,7 @@ var Tooltip = React2__namespace.forwardRef(
311
309
  unstyled: true,
312
310
  children: [
313
311
  /* @__PURE__ */ jsxRuntime.jsx(
314
- tooltip.Tooltip.Trigger,
312
+ gui.Tooltip.Trigger,
315
313
  {
316
314
  ref: open ? triggerRef : void 0,
317
315
  asChild: true,
@@ -321,7 +319,7 @@ var Tooltip = React2__namespace.forwardRef(
321
319
  }
322
320
  ),
323
321
  /* @__PURE__ */ jsxRuntime.jsxs(
324
- tooltip.Tooltip.Content,
322
+ gui.Tooltip.Content,
325
323
  {
326
324
  ref,
327
325
  unstyled: true,
@@ -338,7 +336,7 @@ var Tooltip = React2__namespace.forwardRef(
338
336
  ...contentProps,
339
337
  children: [
340
338
  showArrow && /* @__PURE__ */ jsxRuntime.jsx(
341
- tooltip.Tooltip.Arrow,
339
+ gui.Tooltip.Arrow,
342
340
  {
343
341
  unstyled: true,
344
342
  className: cn(
@@ -389,7 +387,7 @@ var COLOR_PALETTE_CLASSES = {
389
387
  bright_pink: "bg-badge-bright-pink-bg text-badge-bright-pink-fg"
390
388
  };
391
389
  var S2 = 4;
392
- var Badge = React2__namespace.default.forwardRef(
390
+ var Badge = React3__namespace.default.forwardRef(
393
391
  function Badge2(props, ref) {
394
392
  const {
395
393
  loading,
package/dist/badge.js CHANGED
@@ -1,10 +1,10 @@
1
1
  "use client";
2
- import * as React2 from 'react';
3
- import React2__default from 'react';
2
+ import * as React3 from 'react';
3
+ import React3__default from 'react';
4
4
  import { clsx } from 'clsx';
5
5
  import { twMerge } from 'tailwind-merge';
6
6
  import { jsx, jsxs } from 'react/jsx-runtime';
7
- import { TooltipGroup, Tooltip as Tooltip$1 } from '@hanzogui/tooltip';
7
+ import { TooltipGroup, Tooltip as Tooltip$1 } from '@hanzo/gui';
8
8
  import { useClickAway } from '@uidotdev/usehooks';
9
9
 
10
10
  // src/badge.tsx
@@ -131,7 +131,7 @@ var SKELETON_CLASSES = [
131
131
  "bg-[length:200%_100%]"
132
132
  ].join(" ");
133
133
  var HIDE_BELOW_MAP = { lg: "lg:hidden", md: "md:hidden", sm: "sm:hidden" };
134
- var Skeleton = React2.forwardRef(
134
+ var Skeleton = React3.forwardRef(
135
135
  function Skeleton2(props, ref) {
136
136
  const { loading = false, asChild, className, children, style: styleProp, as: Component = "div", ...allRest } = props;
137
137
  const shimStyle = shimToStyle(props);
@@ -140,10 +140,10 @@ var Skeleton = React2.forwardRef(
140
140
  const cls = hideBelowClass ? cn(className, hideBelowClass) : className;
141
141
  const htmlRest = stripShims(allRest);
142
142
  if (!loading) {
143
- if (asChild && React2.isValidElement(children)) return children;
143
+ if (asChild && React3.isValidElement(children)) return children;
144
144
  return /* @__PURE__ */ jsx(Component, { ref, className: cls, style: mergedStyle, ...htmlRest, children });
145
145
  }
146
- if (asChild && React2.isValidElement(children)) {
146
+ if (asChild && React3.isValidElement(children)) {
147
147
  return /* @__PURE__ */ jsx(
148
148
  Component,
149
149
  {
@@ -169,7 +169,7 @@ var Skeleton = React2.forwardRef(
169
169
  );
170
170
  }
171
171
  );
172
- React2.forwardRef(
172
+ React3.forwardRef(
173
173
  function SkeletonCircle2(props, ref) {
174
174
  const { size = 40, loading = true, className, ...rest } = props;
175
175
  const dimension = typeof size === "number" ? `${size}px` : size;
@@ -185,7 +185,7 @@ React2.forwardRef(
185
185
  );
186
186
  }
187
187
  );
188
- React2.forwardRef(
188
+ React3.forwardRef(
189
189
  function SkeletonText2(props, ref) {
190
190
  const { noOfLines = 3, loading = true, className, ...rest } = props;
191
191
  return /* @__PURE__ */ jsx("div", { ref, className: cn("flex w-full flex-col gap-2", className), ...rest, children: Array.from({ length: noOfLines }).map((_, index) => /* @__PURE__ */ jsx(
@@ -198,26 +198,24 @@ React2.forwardRef(
198
198
  )) });
199
199
  }
200
200
  );
201
- var LG_BREAKPOINT = 1024;
202
- function useIsMobile() {
203
- const [isMobile, setIsMobile] = React2.useState(() => {
204
- if (typeof window === "undefined") return false;
205
- return window.innerWidth < LG_BREAKPOINT;
206
- });
207
- React2.useEffect(() => {
208
- const mql = window.matchMedia(`(max-width: ${LG_BREAKPOINT - 1}px)`);
209
- const handler = (e) => setIsMobile(e.matches);
210
- setIsMobile(mql.matches);
211
- mql.addEventListener("change", handler);
212
- return () => mql.removeEventListener("change", handler);
213
- }, []);
214
- return isMobile;
201
+ var TOUCH_PX = 1024;
202
+ function useBelow(px) {
203
+ const [below, setBelow] = React3.useState(false);
204
+ React3.useEffect(() => {
205
+ const mql = window.matchMedia(`(max-width: ${px - 1}px)`);
206
+ const apply = () => setBelow(mql.matches);
207
+ apply();
208
+ mql.addEventListener("change", apply);
209
+ return () => mql.removeEventListener("change", apply);
210
+ }, [px]);
211
+ return below;
215
212
  }
213
+ var useIsTouch = () => useBelow(TOUCH_PX);
216
214
  function mapPlacement(p) {
217
215
  if (!p) return void 0;
218
216
  return p;
219
217
  }
220
- var Tooltip = React2.forwardRef(
218
+ var Tooltip = React3.forwardRef(
221
219
  function Tooltip2(props, ref) {
222
220
  const {
223
221
  showArrow: showArrowProp,
@@ -236,28 +234,28 @@ var Tooltip = React2.forwardRef(
236
234
  interactive,
237
235
  positioning
238
236
  } = props;
239
- const [open, setOpen] = React2.useState(defaultOpen);
240
- const timeoutRef = React2.useRef(null);
241
- const isMobile = useIsMobile();
242
- const handleOpenChange = React2.useCallback((nextOpen) => {
237
+ const [open, setOpen] = React3.useState(defaultOpen);
238
+ const timeoutRef = React3.useRef(null);
239
+ const isMobile = useIsTouch();
240
+ const handleOpenChange = React3.useCallback((nextOpen) => {
243
241
  setOpen(nextOpen);
244
242
  onOpenChange?.({ open: nextOpen });
245
243
  }, [onOpenChange]);
246
- const handleOpenChangeManual = React2.useCallback((nextOpen) => {
244
+ const handleOpenChangeManual = React3.useCallback((nextOpen) => {
247
245
  timeoutRef.current && window.clearTimeout(timeoutRef.current);
248
246
  timeoutRef.current = window.setTimeout(() => {
249
247
  setOpen(nextOpen);
250
248
  onOpenChange?.({ open: nextOpen });
251
249
  }, nextOpen ? openDelay : closeDelay);
252
250
  }, [closeDelay, openDelay, onOpenChange]);
253
- const handleClickAway = React2.useCallback(() => {
251
+ const handleClickAway = React3.useCallback(() => {
254
252
  handleOpenChangeManual(false);
255
253
  }, [handleOpenChangeManual]);
256
254
  const triggerRef = useClickAway(handleClickAway);
257
- const handleTriggerClick = React2.useCallback(() => {
255
+ const handleTriggerClick = React3.useCallback(() => {
258
256
  handleOpenChangeManual(!open);
259
257
  }, [handleOpenChangeManual, open]);
260
- const handleContentClick = React2.useCallback((event) => {
258
+ const handleContentClick = React3.useCallback((event) => {
261
259
  event.stopPropagation();
262
260
  if (interactive) {
263
261
  const closestLink = event.target?.closest("a");
@@ -266,7 +264,7 @@ var Tooltip = React2.forwardRef(
266
264
  }
267
265
  }
268
266
  }, [interactive, handleOpenChangeManual]);
269
- React2.useEffect(() => {
267
+ React3.useEffect(() => {
270
268
  return () => {
271
269
  if (timeoutRef.current) {
272
270
  clearTimeout(timeoutRef.current);
@@ -368,7 +366,7 @@ var COLOR_PALETTE_CLASSES = {
368
366
  bright_pink: "bg-badge-bright-pink-bg text-badge-bright-pink-fg"
369
367
  };
370
368
  var S2 = 4;
371
- var Badge = React2__default.forwardRef(
369
+ var Badge = React3__default.forwardRef(
372
370
  function Badge2(props, ref) {
373
371
  const {
374
372
  loading,
package/dist/bank.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var core = require('@hanzogui/core');
4
+ var gui = require('@hanzo/gui');
5
5
  var jsxRuntime = require('react/jsx-runtime');
6
6
 
7
7
  var bankColors = {
@@ -27,7 +27,7 @@ var bankColors = {
27
27
  divider: "#222222",
28
28
  disabled: "#444444"
29
29
  };
30
- var BankCard = core.styled(core.View, {
30
+ var BankCard = gui.styled(gui.View, {
31
31
  name: "BankCard",
32
32
  backgroundColor: bankColors.card,
33
33
  borderRadius: 24,
@@ -48,7 +48,7 @@ var BankCard = core.styled(core.View, {
48
48
  size: "md"
49
49
  }
50
50
  });
51
- var BankInput = core.styled(core.Text, {
51
+ var BankInput = gui.styled(gui.Text, {
52
52
  name: "BankInput",
53
53
  render: "input",
54
54
  backgroundColor: bankColors.input,
@@ -84,7 +84,7 @@ var BankInput = core.styled(core.Text, {
84
84
  size: "md"
85
85
  }
86
86
  });
87
- var BankButton = core.styled(core.View, {
87
+ var BankButton = gui.styled(gui.View, {
88
88
  name: "BankButton",
89
89
  render: "button",
90
90
  backgroundColor: bankColors.accent,
@@ -129,7 +129,7 @@ var BankButton = core.styled(core.View, {
129
129
  variant: "primary"
130
130
  }
131
131
  });
132
- var BankButtonText = core.styled(core.Text, {
132
+ var BankButtonText = gui.styled(gui.Text, {
133
133
  name: "BankButtonText",
134
134
  color: "#000000",
135
135
  fontSize: 16,
@@ -143,7 +143,7 @@ var BankButtonText = core.styled(core.Text, {
143
143
  }
144
144
  }
145
145
  });
146
- var BankHeading = core.styled(core.Text, {
146
+ var BankHeading = gui.styled(gui.Text, {
147
147
  name: "BankHeading",
148
148
  color: bankColors.text,
149
149
  fontWeight: "700",
@@ -160,7 +160,7 @@ var BankHeading = core.styled(core.Text, {
160
160
  size: "lg"
161
161
  }
162
162
  });
163
- var BankText = core.styled(core.Text, {
163
+ var BankText = gui.styled(gui.Text, {
164
164
  name: "BankText",
165
165
  color: bankColors.textMuted,
166
166
  fontSize: 16,
@@ -184,13 +184,13 @@ function BankField({
184
184
  error,
185
185
  children
186
186
  }) {
187
- return /* @__PURE__ */ jsxRuntime.jsxs(core.View, { gap: 8, width: "100%", children: [
187
+ return /* @__PURE__ */ jsxRuntime.jsxs(gui.View, { gap: 8, width: "100%", children: [
188
188
  label && /* @__PURE__ */ jsxRuntime.jsx(BankText, { variant: "label", children: label }),
189
189
  children,
190
190
  error && /* @__PURE__ */ jsxRuntime.jsx(BankText, { variant: "error", children: error })
191
191
  ] });
192
192
  }
193
- var BankAlert = core.styled(core.View, {
193
+ var BankAlert = gui.styled(gui.View, {
194
194
  name: "BankAlert",
195
195
  borderRadius: 12,
196
196
  padding: 16,
@@ -209,7 +209,7 @@ var BankAlert = core.styled(core.View, {
209
209
  }
210
210
  }
211
211
  });
212
- var BankAlertText = core.styled(core.Text, {
212
+ var BankAlertText = gui.styled(gui.Text, {
213
213
  name: "BankAlertText",
214
214
  fontSize: 14,
215
215
  variants: {
@@ -219,7 +219,7 @@ var BankAlertText = core.styled(core.Text, {
219
219
  }
220
220
  }
221
221
  });
222
- var BankPinBox = core.styled(core.Text, {
222
+ var BankPinBox = gui.styled(gui.Text, {
223
223
  name: "BankPinBox",
224
224
  render: "input",
225
225
  backgroundColor: bankColors.input,
@@ -242,13 +242,13 @@ var BankPinBox = core.styled(core.Text, {
242
242
  }
243
243
  }
244
244
  });
245
- var BankDivider = core.styled(core.View, {
245
+ var BankDivider = gui.styled(gui.View, {
246
246
  name: "BankDivider",
247
247
  height: 1,
248
248
  width: "100%",
249
249
  backgroundColor: bankColors.divider
250
250
  });
251
- var BankPage = core.styled(core.View, {
251
+ var BankPage = gui.styled(gui.View, {
252
252
  name: "BankPage",
253
253
  backgroundColor: bankColors.bg,
254
254
  minHeight: "100vh",