@luxfi/ui 7.4.15 → 8.0.0

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 (228) hide show
  1. package/LICENSE.md +21 -0
  2. package/dist/accordion.d.ts +10 -12
  3. package/dist/accordion.d.ts.map +1 -0
  4. package/dist/alert.cjs +7 -11
  5. package/dist/alert.d.ts +4 -5
  6. package/dist/alert.d.ts.map +1 -0
  7. package/dist/alert.js +1 -5
  8. package/dist/auth.d.ts +11 -13
  9. package/dist/auth.d.ts.map +1 -0
  10. package/dist/avatar.d.ts +5 -6
  11. package/dist/avatar.d.ts.map +1 -0
  12. package/dist/badge.cjs +7 -11
  13. package/dist/badge.d.ts +7 -8
  14. package/dist/badge.d.ts.map +1 -0
  15. package/dist/badge.js +1 -5
  16. package/dist/bank.d.ts +38 -43
  17. package/dist/bank.d.ts.map +1 -0
  18. package/dist/button.cjs +7 -11
  19. package/dist/button.d.ts +8 -9
  20. package/dist/button.d.ts.map +1 -0
  21. package/dist/button.js +1 -5
  22. package/dist/checkbox.d.ts +6 -7
  23. package/dist/checkbox.d.ts.map +1 -0
  24. package/dist/chrome.cjs +4 -8
  25. package/dist/chrome.d.ts +15 -19
  26. package/dist/chrome.d.ts.map +1 -0
  27. package/dist/chrome.js +1 -5
  28. package/dist/close-button.d.ts +3 -5
  29. package/dist/close-button.d.ts.map +1 -0
  30. package/dist/collapsible.cjs +19 -23
  31. package/dist/collapsible.d.ts +11 -13
  32. package/dist/collapsible.d.ts.map +1 -0
  33. package/dist/collapsible.js +1 -5
  34. package/dist/color-mode.d.ts +7 -9
  35. package/dist/color-mode.d.ts.map +1 -0
  36. package/dist/dialog.cjs +7 -11
  37. package/dist/dialog.d.ts +50 -54
  38. package/dist/dialog.d.ts.map +1 -0
  39. package/dist/dialog.js +1 -5
  40. package/dist/drawer.d.ts +33 -38
  41. package/dist/drawer.d.ts.map +1 -0
  42. package/dist/empty-state.d.ts +4 -6
  43. package/dist/empty-state.d.ts.map +1 -0
  44. package/dist/engine.d.ts +35 -0
  45. package/dist/engine.d.ts.map +1 -0
  46. package/dist/expiration-selector.d.ts +4 -6
  47. package/dist/expiration-selector.d.ts.map +1 -0
  48. package/dist/field.d.ts +5 -7
  49. package/dist/field.d.ts.map +1 -0
  50. package/dist/greeks-display.d.ts +3 -5
  51. package/dist/greeks-display.d.ts.map +1 -0
  52. package/dist/gui.d.ts +1 -1
  53. package/dist/gui.d.ts.map +1 -0
  54. package/dist/heading.d.ts +4 -6
  55. package/dist/heading.d.ts.map +1 -0
  56. package/dist/iam.d.ts +10 -12
  57. package/dist/iam.d.ts.map +1 -0
  58. package/dist/icon-button.cjs +7 -11
  59. package/dist/icon-button.d.ts +4 -5
  60. package/dist/icon-button.d.ts.map +1 -0
  61. package/dist/icon-button.js +1 -5
  62. package/dist/icons.d.ts +1 -0
  63. package/dist/icons.d.ts.map +1 -0
  64. package/dist/identity.d.ts +9 -11
  65. package/dist/identity.d.ts.map +1 -0
  66. package/dist/image.cjs +8 -12
  67. package/dist/image.d.ts +10 -11
  68. package/dist/image.d.ts.map +1 -0
  69. package/dist/image.js +1 -5
  70. package/dist/index.cjs +65 -66
  71. package/dist/index.d.ts +86 -60
  72. package/dist/index.d.ts.map +1 -0
  73. package/dist/index.js +6 -9
  74. package/dist/ink.d.ts +14 -0
  75. package/dist/ink.d.ts.map +1 -0
  76. package/dist/input-group.d.ts +4 -6
  77. package/dist/input-group.d.ts.map +1 -0
  78. package/dist/input.d.ts +8 -9
  79. package/dist/input.d.ts.map +1 -0
  80. package/dist/link.cjs +19 -23
  81. package/dist/link.d.ts +9 -11
  82. package/dist/link.d.ts.map +1 -0
  83. package/dist/link.js +1 -5
  84. package/dist/lux.config.d.ts +521 -524
  85. package/dist/lux.config.d.ts.map +1 -0
  86. package/dist/menu.d.ts +30 -31
  87. package/dist/menu.d.ts.map +1 -0
  88. package/dist/next.d.ts +5 -7
  89. package/dist/next.d.ts.map +1 -0
  90. package/dist/option-chain.d.ts +6 -8
  91. package/dist/option-chain.d.ts.map +1 -0
  92. package/dist/option-position.d.ts +4 -6
  93. package/dist/option-position.d.ts.map +1 -0
  94. package/dist/pin-input.cjs +1 -1
  95. package/dist/pin-input.d.ts +3 -5
  96. package/dist/pin-input.d.ts.map +1 -0
  97. package/dist/pin-input.js +1 -1
  98. package/dist/pnl-diagram.d.ts +5 -6
  99. package/dist/pnl-diagram.d.ts.map +1 -0
  100. package/dist/popover.cjs +9 -13
  101. package/dist/popover.d.ts +24 -25
  102. package/dist/popover.d.ts.map +1 -0
  103. package/dist/popover.js +1 -5
  104. package/dist/progress-circle.cjs +2 -6
  105. package/dist/progress-circle.d.ts +8 -9
  106. package/dist/progress-circle.d.ts.map +1 -0
  107. package/dist/progress-circle.js +1 -5
  108. package/dist/progress.d.ts +3 -4
  109. package/dist/progress.d.ts.map +1 -0
  110. package/dist/provider.d.ts +8 -10
  111. package/dist/provider.d.ts.map +1 -0
  112. package/dist/radio.d.ts +6 -7
  113. package/dist/radio.d.ts.map +1 -0
  114. package/dist/rating.d.ts +3 -5
  115. package/dist/rating.d.ts.map +1 -0
  116. package/dist/select.cjs +16 -20
  117. package/dist/select.d.ts +38 -41
  118. package/dist/select.d.ts.map +1 -0
  119. package/dist/select.js +1 -5
  120. package/dist/separator.d.ts +5 -6
  121. package/dist/separator.d.ts.map +1 -0
  122. package/dist/skeleton.cjs +7 -11
  123. package/dist/skeleton.d.ts +9 -12
  124. package/dist/skeleton.d.ts.map +1 -0
  125. package/dist/skeleton.js +1 -5
  126. package/dist/slider.cjs +1 -1
  127. package/dist/slider.d.ts +3 -5
  128. package/dist/slider.d.ts.map +1 -0
  129. package/dist/slider.js +1 -1
  130. package/dist/strategy-builder.d.ts +6 -8
  131. package/dist/strategy-builder.d.ts.map +1 -0
  132. package/dist/switch.cjs +1 -1
  133. package/dist/switch.d.ts +3 -5
  134. package/dist/switch.d.ts.map +1 -0
  135. package/dist/switch.js +1 -1
  136. package/dist/table.cjs +30 -34
  137. package/dist/table.d.ts +23 -25
  138. package/dist/table.d.ts.map +1 -0
  139. package/dist/table.js +1 -5
  140. package/dist/tabs.d.ts +12 -13
  141. package/dist/tabs.d.ts.map +1 -0
  142. package/dist/tag.cjs +7 -11
  143. package/dist/tag.d.ts +4 -5
  144. package/dist/tag.d.ts.map +1 -0
  145. package/dist/tag.js +1 -5
  146. package/dist/textarea.d.ts +5 -6
  147. package/dist/textarea.d.ts.map +1 -0
  148. package/dist/toaster.d.ts +4 -5
  149. package/dist/toaster.d.ts.map +1 -0
  150. package/dist/tooltip.d.ts +3 -5
  151. package/dist/tooltip.d.ts.map +1 -0
  152. package/dist/use-narrow.d.ts +6 -7
  153. package/dist/use-narrow.d.ts.map +1 -0
  154. package/dist/utils/cn.d.ts +2 -0
  155. package/dist/utils/cn.d.ts.map +1 -0
  156. package/dist/utils.cjs +6 -7
  157. package/dist/utils.d.ts +13 -5
  158. package/dist/utils.d.ts.map +1 -0
  159. package/dist/utils.js +1 -9
  160. package/dist/vite.d.ts +3 -3
  161. package/dist/vite.d.ts.map +1 -0
  162. package/dist/white-label.d.ts +12 -12
  163. package/dist/white-label.d.ts.map +1 -0
  164. package/package.json +19 -17
  165. package/src/pin-input.tsx +1 -1
  166. package/src/slider.tsx +1 -1
  167. package/src/switch.tsx +1 -1
  168. package/src/utils/cn.ts +3 -7
  169. package/src/utils.ts +12 -6
  170. package/tokens.css +11 -0
  171. package/dist/accordion.d.cts +0 -41
  172. package/dist/alert.d.cts +0 -30
  173. package/dist/auth.d.cts +0 -80
  174. package/dist/avatar.d.cts +0 -25
  175. package/dist/badge.d.cts +0 -19
  176. package/dist/bank.d.cts +0 -83
  177. package/dist/button.d.cts +0 -51
  178. package/dist/checkbox.d.cts +0 -32
  179. package/dist/chrome.d.cts +0 -93
  180. package/dist/close-button.d.cts +0 -9
  181. package/dist/collapsible.d.cts +0 -24
  182. package/dist/color-mode.d.cts +0 -25
  183. package/dist/dialog.d.cts +0 -118
  184. package/dist/drawer.d.cts +0 -69
  185. package/dist/empty-state.d.cts +0 -13
  186. package/dist/expiration-selector.d.cts +0 -16
  187. package/dist/field.d.cts +0 -23
  188. package/dist/greeks-display.d.cts +0 -14
  189. package/dist/gui.d.cts +0 -2
  190. package/dist/heading.d.cts +0 -8
  191. package/dist/iam.d.cts +0 -65
  192. package/dist/icon-button.d.cts +0 -37
  193. package/dist/icons.d.cts +0 -1
  194. package/dist/identity.d.cts +0 -64
  195. package/dist/image.d.cts +0 -57
  196. package/dist/index.d.cts +0 -60
  197. package/dist/input-group.d.cts +0 -17
  198. package/dist/input.d.cts +0 -37
  199. package/dist/link.d.cts +0 -37
  200. package/dist/lux.config.d.cts +0 -981
  201. package/dist/menu.d.cts +0 -68
  202. package/dist/next.d.cts +0 -32
  203. package/dist/option-chain.d.cts +0 -37
  204. package/dist/option-position.d.cts +0 -29
  205. package/dist/pin-input.d.cts +0 -25
  206. package/dist/pnl-diagram.d.cts +0 -11
  207. package/dist/popover.d.cts +0 -73
  208. package/dist/progress-circle.d.cts +0 -47
  209. package/dist/progress.d.cts +0 -28
  210. package/dist/provider.d.cts +0 -25
  211. package/dist/radio.d.cts +0 -53
  212. package/dist/rating.d.cts +0 -14
  213. package/dist/select.d.cts +0 -161
  214. package/dist/separator.d.cts +0 -13
  215. package/dist/skeleton.d.cts +0 -76
  216. package/dist/slider.d.cts +0 -24
  217. package/dist/strategy-builder.d.cts +0 -26
  218. package/dist/switch.d.cts +0 -27
  219. package/dist/table.d.cts +0 -107
  220. package/dist/tabs.d.cts +0 -34
  221. package/dist/tag.d.cts +0 -21
  222. package/dist/textarea.d.cts +0 -13
  223. package/dist/toaster.d.cts +0 -28
  224. package/dist/tooltip.d.cts +0 -38
  225. package/dist/use-narrow.d.cts +0 -12
  226. package/dist/utils.d.cts +0 -5
  227. package/dist/vite.d.cts +0 -29
  228. package/dist/white-label.d.cts +0 -59
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../src/button.tsx"],"names":[],"mappings":"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"}
package/dist/button.js CHANGED
@@ -1,14 +1,10 @@
1
1
  "use client";
2
2
  import { styled, View } from '@hanzo/gui';
3
3
  import * as React2 from 'react';
4
- import { clsx } from 'clsx';
5
- import { twMerge } from 'tailwind-merge';
4
+ import { cn } from '@hanzo/ui';
6
5
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
7
6
 
8
7
  // src/button.tsx
9
- function cn(...inputs) {
10
- return twMerge(clsx(inputs));
11
- }
12
8
  var SHIM_PROPS = [
13
9
  "w",
14
10
  "h",
@@ -1,8 +1,7 @@
1
1
  import * as React from 'react';
2
-
3
2
  /** Tri-state, as the Chakra/Radix contract consumers already code against. */
4
3
  type CheckedState = boolean | 'indeterminate';
5
- interface CheckboxGroupProps extends React.ComponentPropsWithoutRef<'div'> {
4
+ export interface CheckboxGroupProps extends React.ComponentPropsWithoutRef<'div'> {
6
5
  value?: Array<string>;
7
6
  defaultValue?: Array<string>;
8
7
  onValueChange?: (value: Array<string>) => void;
@@ -11,8 +10,8 @@ interface CheckboxGroupProps extends React.ComponentPropsWithoutRef<'div'> {
11
10
  disabled?: boolean;
12
11
  readOnly?: boolean;
13
12
  }
14
- declare const CheckboxGroup: React.ForwardRefExoticComponent<CheckboxGroupProps & React.RefAttributes<HTMLDivElement>>;
15
- interface CheckboxProps extends Omit<React.ComponentPropsWithoutRef<'label'>, 'onChange'> {
13
+ export declare const CheckboxGroup: React.ForwardRefExoticComponent<CheckboxGroupProps & React.RefAttributes<HTMLDivElement>>;
14
+ export interface CheckboxProps extends Omit<React.ComponentPropsWithoutRef<'label'>, 'onChange'> {
16
15
  icon?: React.ReactNode;
17
16
  inputProps?: React.InputHTMLAttributes<HTMLInputElement>;
18
17
  rootRef?: React.Ref<HTMLLabelElement>;
@@ -27,6 +26,6 @@ interface CheckboxProps extends Omit<React.ComponentPropsWithoutRef<'label'>, 'o
27
26
  name?: string;
28
27
  required?: boolean;
29
28
  }
30
- declare const Checkbox: React.ForwardRefExoticComponent<CheckboxProps & React.RefAttributes<HTMLInputElement>>;
31
-
32
- export { Checkbox, CheckboxGroup, type CheckboxGroupProps, type CheckboxProps };
29
+ export declare const Checkbox: React.ForwardRefExoticComponent<CheckboxProps & React.RefAttributes<HTMLInputElement>>;
30
+ export {};
31
+ //# sourceMappingURL=checkbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkbox.d.ts","sourceRoot":"","sources":["../src/checkbox.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,8EAA8E;AAC9E,KAAK,YAAY,GAAG,OAAO,GAAG,eAAe,CAAC;AAiB9C,MAAM,WAAW,kBAAmB,SAAQ,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC;IAC/E,KAAK,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACtB,YAAY,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7B,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IAC/C,WAAW,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACxC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA2DD,eAAO,MAAM,aAAa,2FAAoB,CAAC;AAG/C,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC;IAC9F,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,UAAU,CAAC,EAAE,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IACzD,OAAO,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACtC,OAAO,CAAC,EAAE,OAAO,GAAG,eAAe,CAAC;IACpC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,CAAC;IAClD,QAAQ,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;IACpD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA2LD,eAAO,MAAM,QAAQ,wFAAe,CAAC"}
package/dist/chrome.cjs CHANGED
@@ -6,8 +6,7 @@ var lucideReact = require('lucide-react');
6
6
  var gui = require('@hanzo/gui');
7
7
  var jsxRuntime = require('react/jsx-runtime');
8
8
  var reactQuery = require('@tanstack/react-query');
9
- var clsx = require('clsx');
10
- var tailwindMerge = require('tailwind-merge');
9
+ var ui = require('@hanzo/ui');
11
10
 
12
11
  function _interopNamespace(e) {
13
12
  if (e && e.__esModule) return e;
@@ -495,9 +494,6 @@ var MenuSeparator = (props) => /* @__PURE__ */ jsxRuntime.jsx(
495
494
  ...props
496
495
  }
497
496
  );
498
- function cn(...inputs) {
499
- return tailwindMerge.twMerge(clsx.clsx(inputs));
500
- }
501
497
  function initials(label) {
502
498
  return label.split(/[\s._-]+/).filter(Boolean).map((w) => w[0]).join("").slice(0, 2).toUpperCase();
503
499
  }
@@ -516,7 +512,7 @@ var Row = ({ item, onDone, menu }) => {
516
512
  item.hint ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs opacity-60", children: item.hint }) : null,
517
513
  item.selected ? /* @__PURE__ */ jsxRuntime.jsx(lucideReact.Check, { "aria-hidden": "true", className: "h-4 w-4 shrink-0" }) : null
518
514
  ] });
519
- const className = cn(
515
+ const className = ui.cn(
520
516
  "flex w-full cursor-pointer select-none items-center gap-2.5 rounded-md px-2 py-2 text-left text-sm",
521
517
  "hover:bg-[rgba(127,127,127,0.14)]",
522
518
  item.danger && "text-[var(--color-text-error,#e5484d)]"
@@ -569,7 +565,7 @@ var Switcher = ({
569
565
  "aria-label": title,
570
566
  "aria-haspopup": "menu",
571
567
  "aria-expanded": open,
572
- className: cn(
568
+ className: ui.cn(
573
569
  "flex max-w-[14rem] items-center gap-2 rounded-md px-2 py-1.5 text-sm font-medium",
574
570
  "hover:bg-[rgba(127,127,127,0.14)]"
575
571
  ),
@@ -743,7 +739,7 @@ var AppNav = ({
743
739
  {
744
740
  href: l.href,
745
741
  "aria-current": l.active ? "page" : void 0,
746
- className: cn(
742
+ className: ui.cn(
747
743
  "rounded-md px-3 py-1.5 text-sm font-medium",
748
744
  l.active ? "bg-[rgba(127,127,127,0.14)]" : "opacity-75 hover:opacity-100"
749
745
  ),
package/dist/chrome.d.ts CHANGED
@@ -1,10 +1,7 @@
1
1
  import * as React from 'react';
2
- import { IdentityStatus } from './identity.js';
3
- import './iam.js';
4
- import './white-label.js';
5
-
2
+ import { type IdentityStatus } from './identity';
6
3
  /** One row in a switcher. */
7
- interface ChromeItem {
4
+ export interface ChromeItem {
8
5
  readonly id: string;
9
6
  readonly label: string;
10
7
  /** Secondary text, right-aligned — a plan, a count, a shortcut. */
@@ -16,8 +13,8 @@ interface ChromeItem {
16
13
  readonly onSelect?: () => void;
17
14
  }
18
15
  /** 1–2 letter monogram — the honest fallback when there is no logo. */
19
- declare function initials(label: string): string;
20
- interface SwitcherProps {
16
+ export declare function initials(label: string): string;
17
+ export interface SwitcherProps {
21
18
  /** Panel heading, drawer title and the trigger's accessible name. */
22
19
  readonly title: string;
23
20
  /** Trigger label. */
@@ -42,31 +39,31 @@ interface SwitcherProps {
42
39
  * The ONE switcher. A trigger plus rows, presented as a phone sheet or an
43
40
  * anchored menu depending on the viewport — never both, never hand-rolled.
44
41
  */
45
- declare const Switcher: ({ title, label, icon, items, footer, status, empty, onSignIn, signInLabel, error, align, testId, }: SwitcherProps) => React.ReactElement;
42
+ export declare const Switcher: ({ title, label, icon, items, footer, status, empty, onSignIn, signInLabel, error, align, testId, }: SwitcherProps) => React.ReactElement;
46
43
  /** Which organization is this surface acting as. */
47
- declare const OrgSwitcher: () => React.ReactElement;
44
+ export declare const OrgSwitcher: () => React.ReactElement;
48
45
  /** Which project inside that organization. */
49
- declare const ProjectSwitcher: () => React.ReactElement | null;
50
- interface UserMenuProps {
46
+ export declare const ProjectSwitcher: () => React.ReactElement | null;
47
+ export interface UserMenuProps {
51
48
  /** Extra rows above Sign out — Profile, API keys, whatever the surface has. */
52
49
  readonly items?: ReadonlyArray<ChromeItem>;
53
50
  }
54
51
  /** Who is signed in, and how to stop being signed in. */
55
- declare const UserMenu: ({ items }: UserMenuProps) => React.ReactElement;
56
- interface SettingsMenuProps {
52
+ export declare const UserMenu: ({ items }: UserMenuProps) => React.ReactElement;
53
+ export interface SettingsMenuProps {
57
54
  /** The surface's own settings rows. */
58
55
  readonly items?: ReadonlyArray<ChromeItem>;
59
56
  /** Where "All settings" goes. */
60
57
  readonly href?: string;
61
58
  }
62
59
  /** The surface's settings, in the one place a user looks for them. */
63
- declare const SettingsMenu: ({ items, href }: SettingsMenuProps) => React.ReactElement;
64
- interface NavLink {
60
+ export declare const SettingsMenu: ({ items, href }: SettingsMenuProps) => React.ReactElement;
61
+ export interface NavLink {
65
62
  readonly href: string;
66
63
  readonly label: string;
67
64
  readonly active?: boolean;
68
65
  }
69
- interface AppNavProps {
66
+ export interface AppNavProps {
70
67
  /** Brand slot — defaults to the host-resolved org name. */
71
68
  readonly brand?: React.ReactNode;
72
69
  /** Where the brand links to. */
@@ -88,6 +85,5 @@ interface AppNavProps {
88
85
  * every surface. On a phone the links collapse into the same sheet the
89
86
  * switchers use, so there is no second mobile menu to maintain.
90
87
  */
91
- declare const AppNav: ({ brand, home, links, org, project, settings, userItems, children, }: AppNavProps) => React.ReactElement;
92
-
93
- export { AppNav, type AppNavProps, type ChromeItem, type NavLink, OrgSwitcher, ProjectSwitcher, SettingsMenu, type SettingsMenuProps, Switcher, type SwitcherProps, UserMenu, type UserMenuProps, initials };
88
+ export declare const AppNav: ({ brand, home, links, org, project, settings, userItems, children, }: AppNavProps) => React.ReactElement;
89
+ //# sourceMappingURL=chrome.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chrome.d.ts","sourceRoot":"","sources":["../src/chrome.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAa/B,OAAO,EAAe,KAAK,cAAc,EAAE,MAAM,YAAY,CAAC;AAsB9D,6BAA6B;AAC7B,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,mEAAmE;IACnE,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CAChC;AAED,uEAAuE;AACvE,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQ9C;AAaD,MAAM,WAAW,aAAa;IAC5B,qEAAqE;IACrE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,qBAAqB;IACrB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,iDAAiD;IACjD,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAChC,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAC1C,2DAA2D;IAC3D,QAAQ,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAC5C,2DAA2D;IAC3D,QAAQ,CAAC,MAAM,CAAC,EAAE,cAAc,CAAC;IACjC,yDAAyD;IACzD,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,4DAA4D;IAC5D,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IACjC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B;AAyCD;;;GAGG;AACH,eAAO,MAAM,QAAQ,GAAI,oGAatB,aAAa,KAAG,KAAK,CAAC,YAiFxB,CAAC;AAMF,oDAAoD;AACpD,eAAO,MAAM,WAAW,QAAO,KAAK,CAAC,YAsBpC,CAAC;AAEF,8CAA8C;AAC9C,eAAO,MAAM,eAAe,QAAO,KAAK,CAAC,YAAY,GAAG,IAuBvD,CAAC;AAEF,MAAM,WAAW,aAAa;IAC5B,+EAA+E;IAC/E,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;CAC5C;AAED,yDAAyD;AACzD,eAAO,MAAM,QAAQ,GAAI,WAAgB,aAAa,KAAG,KAAK,CAAC,YAyB9D,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,uCAAuC;IACvC,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAC3C,iCAAiC;IACjC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,sEAAsE;AACtE,eAAO,MAAM,YAAY,GAAI,iBAAoC,iBAAiB,KAAG,KAAK,CAAC,YAW1F,CAAC;AAIF,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,WAAW;IAC1B,2DAA2D;IAC3D,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACjC,gCAAgC;IAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,KAAK,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IACxC,2CAA2C;IAC3C,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IACvB,iFAAiF;IACjF,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,kEAAkE;IAClE,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAC9C,mCAAmC;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAC/C,8DAA8D;IAC9D,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CACrC;AAED;;;;GAIG;AACH,eAAO,MAAM,MAAM,GAAI,sEASpB,WAAW,KAAG,KAAK,CAAC,YA4EtB,CAAC"}
package/dist/chrome.js CHANGED
@@ -5,8 +5,7 @@ import { ChevronsUpDown, Folder, LogOut, User, Settings, Menu, Building2, Check
5
5
  import { styled, View, Sheet, Dialog, YStack, Text, Menu as Menu$1 } from '@hanzo/gui';
6
6
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
7
7
  import { QueryClient } from '@tanstack/react-query';
8
- import { clsx } from 'clsx';
9
- import { twMerge } from 'tailwind-merge';
8
+ import { cn } from '@hanzo/ui';
10
9
 
11
10
  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";
12
11
  var CloseButtonFrame = styled(View, {
@@ -474,9 +473,6 @@ var MenuSeparator = (props) => /* @__PURE__ */ jsx(
474
473
  ...props
475
474
  }
476
475
  );
477
- function cn(...inputs) {
478
- return twMerge(clsx(inputs));
479
- }
480
476
  function initials(label) {
481
477
  return label.split(/[\s._-]+/).filter(Boolean).map((w) => w[0]).join("").slice(0, 2).toUpperCase();
482
478
  }
@@ -1,9 +1,7 @@
1
1
  import * as React from 'react';
2
-
3
- interface CloseButtonProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'size'> {
2
+ export interface CloseButtonProps extends Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'size'> {
4
3
  readonly variant?: 'plain';
5
4
  readonly size?: 'md';
6
5
  }
7
- declare const CloseButton: React.ForwardRefExoticComponent<CloseButtonProps & React.RefAttributes<HTMLButtonElement>>;
8
-
9
- export { CloseButton, type CloseButtonProps };
6
+ export declare const CloseButton: React.ForwardRefExoticComponent<CloseButtonProps & React.RefAttributes<HTMLButtonElement>>;
7
+ //# sourceMappingURL=close-button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"close-button.d.ts","sourceRoot":"","sources":["../src/close-button.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAqC/B,MAAM,WAAW,gBAAiB,SAAQ,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACnG,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;CACtB;AAED,eAAO,MAAM,WAAW,4FA4BtB,CAAC"}
@@ -3,8 +3,7 @@
3
3
 
4
4
  var gui = require('@hanzo/gui');
5
5
  var React3 = require('react');
6
- var clsx = require('clsx');
7
- var tailwindMerge = require('tailwind-merge');
6
+ var ui = require('@hanzo/ui');
8
7
  var jsxRuntime = require('react/jsx-runtime');
9
8
 
10
9
  function _interopNamespace(e) {
@@ -28,9 +27,6 @@ function _interopNamespace(e) {
28
27
  var React3__namespace = /*#__PURE__*/_interopNamespace(React3);
29
28
 
30
29
  // src/collapsible.tsx
31
- function cn(...inputs) {
32
- return tailwindMerge.twMerge(clsx.clsx(inputs));
33
- }
34
30
  var SHIM_PROPS = [
35
31
  "w",
36
32
  "h",
@@ -153,7 +149,7 @@ var Skeleton = React3__namespace.forwardRef(
153
149
  const shimStyle = shimToStyle(props);
154
150
  const mergedStyle = Object.keys(shimStyle).length > 0 || styleProp ? { ...shimStyle, ...styleProp } : void 0;
155
151
  const hideBelowClass = props.hideBelow ? HIDE_BELOW_MAP[props.hideBelow] : void 0;
156
- const cls = hideBelowClass ? cn(className, hideBelowClass) : className;
152
+ const cls = hideBelowClass ? ui.cn(className, hideBelowClass) : className;
157
153
  const htmlRest = stripShims(allRest);
158
154
  if (!loading) {
159
155
  if (asChild && React3__namespace.isValidElement(children)) return children;
@@ -165,7 +161,7 @@ var Skeleton = React3__namespace.forwardRef(
165
161
  {
166
162
  ref,
167
163
  "data-loading": true,
168
- className: cn(SKELETON_CLASSES, "[&_*]:invisible", cls),
164
+ className: ui.cn(SKELETON_CLASSES, "[&_*]:invisible", cls),
169
165
  style: mergedStyle,
170
166
  ...htmlRest,
171
167
  children
@@ -177,7 +173,7 @@ var Skeleton = React3__namespace.forwardRef(
177
173
  {
178
174
  ref,
179
175
  "data-loading": true,
180
- className: cn(SKELETON_CLASSES, children ? "[&_*]:invisible" : "min-h-5", cls),
176
+ className: ui.cn(SKELETON_CLASSES, children ? "[&_*]:invisible" : "min-h-5", cls),
181
177
  style: mergedStyle,
182
178
  ...htmlRest,
183
179
  children
@@ -194,7 +190,7 @@ React3__namespace.forwardRef(
194
190
  {
195
191
  ref,
196
192
  loading,
197
- className: cn("rounded-full shrink-0", className),
193
+ className: ui.cn("rounded-full shrink-0", className),
198
194
  style: { width: dimension, height: dimension, ...rest.style },
199
195
  ...rest
200
196
  }
@@ -204,11 +200,11 @@ React3__namespace.forwardRef(
204
200
  React3__namespace.forwardRef(
205
201
  function SkeletonText2(props, ref) {
206
202
  const { noOfLines = 3, loading = true, className, ...rest } = props;
207
- 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(
203
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { ref, className: ui.cn("flex w-full flex-col gap-2", className), ...rest, children: Array.from({ length: noOfLines }).map((_, index) => /* @__PURE__ */ jsxRuntime.jsx(
208
204
  Skeleton,
209
205
  {
210
206
  loading,
211
- className: cn("h-4", index === noOfLines - 1 && "max-w-[80%]")
207
+ className: ui.cn("h-4", index === noOfLines - 1 && "max-w-[80%]")
212
208
  },
213
209
  index
214
210
  )) });
@@ -227,40 +223,40 @@ function stripUtmParams(url) {
227
223
  }
228
224
  }
229
225
  var VARIANT_CLASSES = {
230
- primary: cn(
226
+ primary: ui.cn(
231
227
  "text-[var(--color-link-primary)]",
232
228
  "hover:no-underline hover:text-[var(--color-link-primary-hover)]",
233
229
  "data-[hover]:no-underline data-[hover]:text-[var(--color-link-primary-hover)]"
234
230
  ),
235
- secondary: cn(
231
+ secondary: ui.cn(
236
232
  "text-[var(--color-link-secondary)]",
237
233
  "hover:no-underline hover:text-[var(--color-hover)]",
238
234
  "data-[hover]:no-underline data-[hover]:text-[var(--color-hover)]"
239
235
  ),
240
- subtle: cn(
236
+ subtle: ui.cn(
241
237
  "text-[var(--color-link-subtle)]",
242
238
  "hover:text-[var(--color-link-subtle-hover)] hover:underline hover:decoration-[var(--color-link-subtle-hover)]",
243
239
  "data-[hover]:text-[var(--color-link-subtle-hover)] data-[hover]:underline data-[hover]:decoration-[var(--color-link-subtle-hover)]"
244
240
  ),
245
- underlaid: cn(
241
+ underlaid: ui.cn(
246
242
  "text-[var(--color-link-primary)] bg-[var(--color-link-underlaid-bg)]",
247
243
  "px-2 py-1.5 rounded-md text-sm",
248
244
  "hover:text-[var(--color-link-primary-hover)] hover:no-underline",
249
245
  "data-[hover]:text-[var(--color-link-primary-hover)] data-[hover]:no-underline"
250
246
  ),
251
- menu: cn(
247
+ menu: ui.cn(
252
248
  "text-[var(--color-link-menu)]",
253
249
  "hover:text-[var(--color-hover)] hover:no-underline",
254
250
  "data-[hover]:text-[var(--color-hover)] data-[hover]:no-underline"
255
251
  ),
256
- navigation: cn(
252
+ navigation: ui.cn(
257
253
  "text-[var(--color-link-nav-fg)] bg-transparent",
258
254
  "hover:text-[var(--color-link-nav-fg-hover)] hover:no-underline",
259
255
  "data-[hover]:text-[var(--color-link-nav-fg-hover)] data-[hover]:no-underline",
260
256
  "data-[selected]:text-[var(--color-link-nav-fg-selected)] data-[selected]:bg-[var(--color-link-nav-bg-selected)]",
261
257
  "data-[active]:text-[var(--color-link-nav-fg-active)]"
262
258
  ),
263
- plain: cn(
259
+ plain: ui.cn(
264
260
  "text-inherit",
265
261
  "hover:no-underline",
266
262
  "data-[hover]:no-underline"
@@ -270,7 +266,7 @@ var BASE_CLASSES = "inline-flex items-center gap-0 cursor-pointer data-[disabled
270
266
  var LinkExternalIcon = ({ color }) => /* @__PURE__ */ jsxRuntime.jsx(
271
267
  ArrowIcon,
272
268
  {
273
- className: cn(
269
+ className: ui.cn(
274
270
  "size-3 align-middle shrink-0",
275
271
  "group-hover:text-inherit"
276
272
  ),
@@ -335,7 +331,7 @@ var Link = React3__namespace.default.forwardRef(
335
331
  if (_minW !== void 0) shimStyle.minWidth = typeof _minW === "number" ? `${_minW * SPACING}px` : _minW;
336
332
  if (_justifyContent) shimStyle.justifyContent = _justifyContent;
337
333
  if (_position) shimStyle.position = _position;
338
- const linkClasses = cn(BASE_CLASSES, VARIANT_CLASSES[variant], className);
334
+ const linkClasses = ui.cn(BASE_CLASSES, VARIANT_CLASSES[variant], className);
339
335
  const linkStyle = Object.keys(shimStyle).length > 0 ? shimStyle : void 0;
340
336
  if (external) {
341
337
  const processedHref = typeof href === "string" ? stripUtmParams(href) : href;
@@ -343,7 +339,7 @@ var Link = React3__namespace.default.forwardRef(
343
339
  "a",
344
340
  {
345
341
  href: processedHref,
346
- className: cn("group", linkClasses),
342
+ className: ui.cn("group", linkClasses),
347
343
  style: linkStyle,
348
344
  target: "_blank",
349
345
  rel: "noopener noreferrer",
@@ -387,7 +383,7 @@ React3__namespace.default.forwardRef(
387
383
  "div",
388
384
  {
389
385
  ref,
390
- className: cn("relative", className),
386
+ className: ui.cn("relative", className),
391
387
  ...rest
392
388
  }
393
389
  );
@@ -423,7 +419,7 @@ React3__namespace.default.forwardRef(
423
419
  position: _p2,
424
420
  ...rest
425
421
  } = props;
426
- const overlayClasses = cn(
422
+ const overlayClasses = ui.cn(
427
423
  BASE_CLASSES,
428
424
  VARIANT_CLASSES[variant],
429
425
  // Static positioning with a ::before pseudo-element that covers the LinkBox
@@ -1,24 +1,22 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
1
  import { YStack } from '@hanzo/gui';
3
- import React__default from 'react';
4
- import { LinkProps } from './link.js';
5
-
6
- interface CollapsibleDetailsProps extends LinkProps {
7
- children: React__default.ReactNode;
2
+ import React from 'react';
3
+ import type { LinkProps } from './link';
4
+ export interface CollapsibleDetailsProps extends LinkProps {
5
+ children: React.ReactNode;
8
6
  id?: string;
9
7
  isExpanded?: boolean;
10
8
  text?: [string, string];
11
9
  noScroll?: boolean;
12
10
  }
13
- declare const CollapsibleDetails: (props: CollapsibleDetailsProps) => react_jsx_runtime.JSX.Element;
14
- interface CollapsibleListProps<T> extends Omit<React__default.ComponentProps<typeof YStack>, 'children' | 'text' | 'items'> {
11
+ export declare const CollapsibleDetails: (props: CollapsibleDetailsProps) => import("react/jsx-runtime").JSX.Element;
12
+ interface CollapsibleListProps<T> extends Omit<React.ComponentProps<typeof YStack>, 'children' | 'text' | 'items'> {
15
13
  items: Array<T>;
16
- renderItem: (item: T, index: number) => React__default.ReactNode;
14
+ renderItem: (item: T, index: number) => React.ReactNode;
17
15
  triggerProps?: LinkProps;
18
16
  cutLength?: number;
19
- text?: [React__default.ReactNode, React__default.ReactNode];
17
+ text?: [React.ReactNode, React.ReactNode];
20
18
  defaultExpanded?: boolean;
21
19
  }
22
- declare const CollapsibleList: <T>(props: CollapsibleListProps<T>) => react_jsx_runtime.JSX.Element;
23
-
24
- export { CollapsibleDetails, type CollapsibleDetailsProps, CollapsibleList };
20
+ export declare const CollapsibleList: <T>(props: CollapsibleListProps<T>) => import("react/jsx-runtime").JSX.Element;
21
+ export {};
22
+ //# sourceMappingURL=collapsible.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collapsible.d.ts","sourceRoot":"","sources":["../src/collapsible.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAe,MAAM,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AA8BxC,MAAM,WAAW,uBAAwB,SAAQ,SAAS;IACxD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAID,eAAO,MAAM,kBAAkB,GAAI,OAAO,uBAAuB,4CAqChE,CAAC;AAKF,UAAU,oBAAoB,CAAC,CAAC,CAC9B,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,EAAE,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC;IAChF,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IAChB,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,KAAK,CAAC,SAAS,CAAC;IACxD,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;IAC1C,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAID,eAAO,MAAM,eAAe,GAAI,CAAC,EAAG,OAAO,oBAAoB,CAAC,CAAC,CAAC,4CA+BjE,CAAC"}
@@ -2,14 +2,10 @@
2
2
  import { Collapsible, YStack } from '@hanzo/gui';
3
3
  import * as React3 from 'react';
4
4
  import React3__default from 'react';
5
- import { clsx } from 'clsx';
6
- import { twMerge } from 'tailwind-merge';
5
+ import { cn } from '@hanzo/ui';
7
6
  import { jsx, jsxs } from 'react/jsx-runtime';
8
7
 
9
8
  // src/collapsible.tsx
10
- function cn(...inputs) {
11
- return twMerge(clsx(inputs));
12
- }
13
9
  var SHIM_PROPS = [
14
10
  "w",
15
11
  "h",
@@ -1,13 +1,11 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
1
  import * as React from 'react';
3
-
4
- type ColorMode = 'light' | 'dark';
2
+ export type ColorMode = 'light' | 'dark';
5
3
  interface ColorModeContextValue {
6
4
  readonly colorMode: ColorMode;
7
5
  readonly setColorMode: (mode: string) => void;
8
6
  readonly toggleColorMode: () => void;
9
7
  }
10
- interface ColorModeProviderProps {
8
+ export interface ColorModeProviderProps {
11
9
  readonly children?: React.ReactNode;
12
10
  /** Initial/default color mode. Defaults to 'light'. */
13
11
  readonly defaultTheme?: string;
@@ -18,8 +16,8 @@ interface ColorModeProviderProps {
18
16
  /** Any extra props are accepted and ignored for compat with next-themes ThemeProviderProps. */
19
17
  readonly [key: string]: unknown;
20
18
  }
21
- declare function ColorModeProvider(props: ColorModeProviderProps): react_jsx_runtime.JSX.Element;
22
- declare function useColorMode(): ColorModeContextValue;
23
- declare function useColorModeValue<T>(light: T, dark: T): T;
24
-
25
- export { type ColorMode, ColorModeProvider, type ColorModeProviderProps, useColorMode, useColorModeValue };
19
+ export declare function ColorModeProvider(props: ColorModeProviderProps): import("react/jsx-runtime").JSX.Element;
20
+ export declare function useColorMode(): ColorModeContextValue;
21
+ export declare function useColorModeValue<T>(light: T, dark: T): T;
22
+ export {};
23
+ //# sourceMappingURL=color-mode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color-mode.d.ts","sourceRoot":"","sources":["../src/color-mode.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,CAAC;AAQzC,UAAU,qBAAqB;IAC7B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,QAAQ,CAAC,eAAe,EAAE,MAAM,IAAI,CAAC;CACtC;AAQD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACpC,uDAAuD;IACvD,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,mEAAmE;IACnE,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,0CAA0C;IAC1C,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAChD,+FAA+F;IAC/F,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACjC;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,2CA2C9D;AAMD,wBAAgB,YAAY,IAAI,qBAAqB,CAkCpD;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,CAAC,CAGzD"}
package/dist/dialog.cjs CHANGED
@@ -3,8 +3,7 @@
3
3
 
4
4
  var gui = require('@hanzo/gui');
5
5
  var React2 = require('react');
6
- var clsx = require('clsx');
7
- var tailwindMerge = require('tailwind-merge');
6
+ var ui = require('@hanzo/ui');
8
7
  var jsxRuntime = require('react/jsx-runtime');
9
8
 
10
9
  function _interopNamespace(e) {
@@ -28,9 +27,6 @@ function _interopNamespace(e) {
28
27
  var React2__namespace = /*#__PURE__*/_interopNamespace(React2);
29
28
 
30
29
  // src/dialog.tsx
31
- function cn(...inputs) {
32
- return tailwindMerge.twMerge(clsx.clsx(inputs));
33
- }
34
30
  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
31
  var CloseButtonFrame = gui.styled(gui.View, {
36
32
  name: "LuxCloseButton",
@@ -180,7 +176,7 @@ var DialogContent = React2__namespace.forwardRef(function DialogContent2(props,
180
176
  /* @__PURE__ */ jsxRuntime.jsx(
181
177
  "div",
182
178
  {
183
- className: cn(
179
+ className: ui.cn(
184
180
  "fixed inset-0 z-[1400] flex w-screen h-dvh",
185
181
  "items-start lg:items-center justify-center",
186
182
  "overflow-hidden"
@@ -190,7 +186,7 @@ var DialogContent = React2__namespace.forwardRef(function DialogContent2(props,
190
186
  {
191
187
  ref,
192
188
  unstyled: true,
193
- className: cn(
189
+ className: ui.cn(
194
190
  // Base content styles
195
191
  "relative flex flex-col w-full p-6 outline-none text-base",
196
192
  "bg-dialog-bg text-dialog-fg shadow-lg rounded-xl",
@@ -221,7 +217,7 @@ var DialogHeader = React2__namespace.forwardRef(function DialogHeader2(props, re
221
217
  "div",
222
218
  {
223
219
  ref,
224
- className: cn(
220
+ className: ui.cn(
225
221
  "flex-none p-0 mb-2 flex items-center gap-x-2 min-h-[40px]",
226
222
  className
227
223
  ),
@@ -232,7 +228,7 @@ var DialogHeader = React2__namespace.forwardRef(function DialogHeader2(props, re
232
228
  gui.Dialog.Title,
233
229
  {
234
230
  unstyled: true,
235
- className: cn(
231
+ className: ui.cn(
236
232
  "text-base lg:text-lg font-medium",
237
233
  "whitespace-nowrap overflow-hidden text-ellipsis"
238
234
  ),
@@ -255,7 +251,7 @@ var DialogBody = React2__namespace.forwardRef(function DialogBody2({ className,
255
251
  "div",
256
252
  {
257
253
  ref,
258
- className: cn("flex-1 p-0 overflow-auto", className),
254
+ className: ui.cn("flex-1 p-0 overflow-auto", className),
259
255
  style: Object.keys(bodyStyle).length > 0 ? bodyStyle : void 0,
260
256
  ...props
261
257
  }
@@ -266,7 +262,7 @@ var DialogFooter = React2__namespace.forwardRef(function DialogFooter2({ classNa
266
262
  "div",
267
263
  {
268
264
  ref,
269
- className: cn("flex items-center justify-start gap-6 p-0 mt-6", className),
265
+ className: ui.cn("flex items-center justify-start gap-6 p-0 mt-6", className),
270
266
  ...props
271
267
  }
272
268
  );