@luxfi/ui 7.4.14 → 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 (244) 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 -23
  19. package/dist/button.d.ts +8 -13
  20. package/dist/button.d.ts.map +1 -0
  21. package/dist/button.js +2 -17
  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.cjs +12 -3
  55. package/dist/heading.d.ts +4 -6
  56. package/dist/heading.d.ts.map +1 -0
  57. package/dist/heading.js +12 -3
  58. package/dist/iam.d.ts +10 -12
  59. package/dist/iam.d.ts.map +1 -0
  60. package/dist/icon-button.cjs +7 -11
  61. package/dist/icon-button.d.ts +4 -5
  62. package/dist/icon-button.d.ts.map +1 -0
  63. package/dist/icon-button.js +1 -5
  64. package/dist/icons.d.ts +1 -0
  65. package/dist/icons.d.ts.map +1 -0
  66. package/dist/identity.d.ts +9 -11
  67. package/dist/identity.d.ts.map +1 -0
  68. package/dist/image.cjs +8 -12
  69. package/dist/image.d.ts +10 -11
  70. package/dist/image.d.ts.map +1 -0
  71. package/dist/image.js +1 -5
  72. package/dist/index.cjs +89 -91
  73. package/dist/index.d.ts +86 -60
  74. package/dist/index.d.ts.map +1 -0
  75. package/dist/index.js +30 -33
  76. package/dist/ink.d.ts +14 -0
  77. package/dist/ink.d.ts.map +1 -0
  78. package/dist/input-group.d.ts +4 -6
  79. package/dist/input-group.d.ts.map +1 -0
  80. package/dist/input.cjs +5 -5
  81. package/dist/input.d.ts +8 -9
  82. package/dist/input.d.ts.map +1 -0
  83. package/dist/input.js +5 -5
  84. package/dist/link.cjs +19 -23
  85. package/dist/link.d.ts +9 -11
  86. package/dist/link.d.ts.map +1 -0
  87. package/dist/link.js +1 -5
  88. package/dist/lux.config.cjs +2 -0
  89. package/dist/lux.config.d.ts +785 -240
  90. package/dist/lux.config.d.ts.map +1 -0
  91. package/dist/lux.config.js +2 -0
  92. package/dist/menu.d.ts +30 -31
  93. package/dist/menu.d.ts.map +1 -0
  94. package/dist/next.d.ts +5 -7
  95. package/dist/next.d.ts.map +1 -0
  96. package/dist/option-chain.d.ts +6 -8
  97. package/dist/option-chain.d.ts.map +1 -0
  98. package/dist/option-position.d.ts +4 -6
  99. package/dist/option-position.d.ts.map +1 -0
  100. package/dist/pin-input.cjs +1 -1
  101. package/dist/pin-input.d.ts +3 -5
  102. package/dist/pin-input.d.ts.map +1 -0
  103. package/dist/pin-input.js +1 -1
  104. package/dist/pnl-diagram.d.ts +5 -6
  105. package/dist/pnl-diagram.d.ts.map +1 -0
  106. package/dist/popover.cjs +9 -13
  107. package/dist/popover.d.ts +24 -25
  108. package/dist/popover.d.ts.map +1 -0
  109. package/dist/popover.js +1 -5
  110. package/dist/progress-circle.cjs +2 -6
  111. package/dist/progress-circle.d.ts +8 -9
  112. package/dist/progress-circle.d.ts.map +1 -0
  113. package/dist/progress-circle.js +1 -5
  114. package/dist/progress.d.ts +3 -4
  115. package/dist/progress.d.ts.map +1 -0
  116. package/dist/provider.cjs +2 -0
  117. package/dist/provider.d.ts +8 -10
  118. package/dist/provider.d.ts.map +1 -0
  119. package/dist/provider.js +2 -0
  120. package/dist/radio.d.ts +6 -7
  121. package/dist/radio.d.ts.map +1 -0
  122. package/dist/rating.d.ts +3 -5
  123. package/dist/rating.d.ts.map +1 -0
  124. package/dist/select.cjs +16 -20
  125. package/dist/select.d.ts +38 -41
  126. package/dist/select.d.ts.map +1 -0
  127. package/dist/select.js +1 -5
  128. package/dist/separator.d.ts +5 -6
  129. package/dist/separator.d.ts.map +1 -0
  130. package/dist/skeleton.cjs +7 -11
  131. package/dist/skeleton.d.ts +9 -12
  132. package/dist/skeleton.d.ts.map +1 -0
  133. package/dist/skeleton.js +1 -5
  134. package/dist/slider.cjs +1 -1
  135. package/dist/slider.d.ts +3 -5
  136. package/dist/slider.d.ts.map +1 -0
  137. package/dist/slider.js +1 -1
  138. package/dist/strategy-builder.d.ts +6 -8
  139. package/dist/strategy-builder.d.ts.map +1 -0
  140. package/dist/switch.cjs +1 -1
  141. package/dist/switch.d.ts +3 -5
  142. package/dist/switch.d.ts.map +1 -0
  143. package/dist/switch.js +1 -1
  144. package/dist/table.cjs +30 -34
  145. package/dist/table.d.ts +23 -25
  146. package/dist/table.d.ts.map +1 -0
  147. package/dist/table.js +1 -5
  148. package/dist/tabs.d.ts +12 -13
  149. package/dist/tabs.d.ts.map +1 -0
  150. package/dist/tag.cjs +7 -11
  151. package/dist/tag.d.ts +4 -5
  152. package/dist/tag.d.ts.map +1 -0
  153. package/dist/tag.js +1 -5
  154. package/dist/textarea.cjs +10 -10
  155. package/dist/textarea.d.ts +5 -6
  156. package/dist/textarea.d.ts.map +1 -0
  157. package/dist/textarea.js +10 -10
  158. package/dist/toaster.d.ts +4 -5
  159. package/dist/toaster.d.ts.map +1 -0
  160. package/dist/tooltip.d.ts +3 -5
  161. package/dist/tooltip.d.ts.map +1 -0
  162. package/dist/use-narrow.d.ts +6 -7
  163. package/dist/use-narrow.d.ts.map +1 -0
  164. package/dist/utils/cn.d.ts +2 -0
  165. package/dist/utils/cn.d.ts.map +1 -0
  166. package/dist/utils.cjs +6 -7
  167. package/dist/utils.d.ts +13 -5
  168. package/dist/utils.d.ts.map +1 -0
  169. package/dist/utils.js +1 -9
  170. package/dist/vite.d.ts +3 -3
  171. package/dist/vite.d.ts.map +1 -0
  172. package/dist/white-label.d.ts +12 -12
  173. package/dist/white-label.d.ts.map +1 -0
  174. package/package.json +32 -26
  175. package/src/button.tsx +0 -18
  176. package/src/heading.tsx +12 -3
  177. package/src/index.ts +0 -1
  178. package/src/input.tsx +6 -6
  179. package/src/lux.config.ts +19 -0
  180. package/src/pin-input.tsx +1 -1
  181. package/src/slider.tsx +1 -1
  182. package/src/switch.tsx +1 -1
  183. package/src/textarea.tsx +6 -6
  184. package/src/utils/cn.ts +3 -7
  185. package/src/utils.ts +12 -6
  186. package/tokens.css +11 -0
  187. package/dist/accordion.d.cts +0 -41
  188. package/dist/alert.d.cts +0 -30
  189. package/dist/auth.d.cts +0 -80
  190. package/dist/avatar.d.cts +0 -25
  191. package/dist/badge.d.cts +0 -19
  192. package/dist/bank.d.cts +0 -83
  193. package/dist/button.d.cts +0 -55
  194. package/dist/checkbox.d.cts +0 -32
  195. package/dist/chrome.d.cts +0 -93
  196. package/dist/close-button.d.cts +0 -9
  197. package/dist/collapsible.d.cts +0 -24
  198. package/dist/color-mode.d.cts +0 -25
  199. package/dist/dialog.d.cts +0 -118
  200. package/dist/drawer.d.cts +0 -69
  201. package/dist/empty-state.d.cts +0 -13
  202. package/dist/expiration-selector.d.cts +0 -16
  203. package/dist/field.d.cts +0 -23
  204. package/dist/greeks-display.d.cts +0 -14
  205. package/dist/gui.d.cts +0 -2
  206. package/dist/heading.d.cts +0 -8
  207. package/dist/iam.d.cts +0 -65
  208. package/dist/icon-button.d.cts +0 -37
  209. package/dist/icons.d.cts +0 -1
  210. package/dist/identity.d.cts +0 -64
  211. package/dist/image.d.cts +0 -57
  212. package/dist/index.d.cts +0 -60
  213. package/dist/input-group.d.cts +0 -17
  214. package/dist/input.d.cts +0 -37
  215. package/dist/link.d.cts +0 -37
  216. package/dist/lux.config.d.cts +0 -433
  217. package/dist/menu.d.cts +0 -68
  218. package/dist/next.d.cts +0 -32
  219. package/dist/option-chain.d.cts +0 -37
  220. package/dist/option-position.d.cts +0 -29
  221. package/dist/pin-input.d.cts +0 -25
  222. package/dist/pnl-diagram.d.cts +0 -11
  223. package/dist/popover.d.cts +0 -73
  224. package/dist/progress-circle.d.cts +0 -47
  225. package/dist/progress.d.cts +0 -28
  226. package/dist/provider.d.cts +0 -25
  227. package/dist/radio.d.cts +0 -53
  228. package/dist/rating.d.cts +0 -14
  229. package/dist/select.d.cts +0 -161
  230. package/dist/separator.d.cts +0 -13
  231. package/dist/skeleton.d.cts +0 -76
  232. package/dist/slider.d.cts +0 -24
  233. package/dist/strategy-builder.d.cts +0 -26
  234. package/dist/switch.d.cts +0 -27
  235. package/dist/table.d.cts +0 -107
  236. package/dist/tabs.d.cts +0 -34
  237. package/dist/tag.d.cts +0 -21
  238. package/dist/textarea.d.cts +0 -13
  239. package/dist/toaster.d.cts +0 -28
  240. package/dist/tooltip.d.cts +0 -38
  241. package/dist/use-narrow.d.cts +0 -12
  242. package/dist/utils.d.cts +0 -5
  243. package/dist/vite.d.cts +0 -29
  244. package/dist/white-label.d.cts +0 -59
@@ -1,12 +1,10 @@
1
- import { QueryClient } from '@tanstack/react-query';
2
- export { QueryClient, useInfiniteQuery, useMutation, useQuery, useQueryClient } from '@tanstack/react-query';
3
- import React__default from 'react';
4
- import { WhiteLabel } from './white-label.js';
5
-
1
+ import { QueryClient, useQueryClient, useQuery, useMutation, useInfiniteQuery } from '@tanstack/react-query';
2
+ import React from 'react';
3
+ import { type WhiteLabel } from './white-label';
6
4
  /** The white-label identity for the host this page is being served under. */
7
- declare const useWhiteLabel: () => WhiteLabel;
5
+ export declare const useWhiteLabel: () => WhiteLabel;
8
6
  interface AppProviderProps {
9
- children: React__default.ReactNode;
7
+ children: React.ReactNode;
10
8
  queryClient?: QueryClient;
11
9
  /**
12
10
  * Host header value, for server rendering. Omit in the browser and the host
@@ -20,6 +18,6 @@ interface AppProviderProps {
20
18
  */
21
19
  defaultTheme?: string;
22
20
  }
23
- declare const AppProvider: ({ children, queryClient, host, defaultTheme, }: AppProviderProps) => React__default.ReactElement;
24
-
25
- export { AppProvider, useWhiteLabel };
21
+ export declare const AppProvider: ({ children, queryClient, host, defaultTheme, }: AppProviderProps) => React.ReactElement;
22
+ export { QueryClient, useQueryClient, useQuery, useMutation, useInfiniteQuery };
23
+ //# sourceMappingURL=provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.tsx"],"names":[],"mappings":"AAGA,OAAO,EACL,WAAW,EAEX,cAAc,EACd,QAAQ,EACR,WAAW,EACX,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAkC,KAAK,UAAU,EAAE,MAAM,eAAe,CAAC;AAqChF,6EAA6E;AAC7E,eAAO,MAAM,aAAa,QAAO,UAAiD,CAAC;AAoBnF,UAAU,gBAAgB;IACxB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAWD,eAAO,MAAM,WAAW,GAAI,gDAKzB,gBAAgB,KAAG,KAAK,CAAC,YAa3B,CAAC;AAGF,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,gBAAgB,EAAE,CAAC"}
package/dist/provider.js CHANGED
@@ -3,6 +3,7 @@ import { createGui, GuiProvider } from '@hanzo/gui';
3
3
  import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
4
4
  export { QueryClient, useInfiniteQuery, useMutation, useQuery, useQueryClient } from '@tanstack/react-query';
5
5
  import React from 'react';
6
+ import { config as config$1 } from '@hanzo/ui/gui-config';
6
7
  import { defaultConfig } from '@hanzogui/config/v5';
7
8
  import { animations } from '@hanzogui/config/v5-css';
8
9
  import { jsx } from 'react/jsx-runtime';
@@ -164,6 +165,7 @@ var luxThemes = {
164
165
  };
165
166
  var config = createGui({
166
167
  ...defaultConfig,
168
+ ...config$1,
167
169
  animations,
168
170
  settings: {
169
171
  ...defaultConfig.settings,
package/dist/radio.d.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  import * as React from 'react';
2
-
3
2
  declare const SIZE: {
4
3
  readonly xs: {
5
4
  readonly rootGap: 6;
@@ -27,7 +26,7 @@ declare const SIZE: {
27
26
  };
28
27
  };
29
28
  type RadioSize = keyof typeof SIZE;
30
- interface RadioGroupProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'defaultValue' | 'dir'> {
29
+ export interface RadioGroupProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'defaultValue' | 'dir'> {
31
30
  name?: string;
32
31
  required?: boolean;
33
32
  disabled?: boolean;
@@ -41,13 +40,13 @@ interface RadioGroupProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'de
41
40
  }) => void;
42
41
  size?: RadioSize;
43
42
  }
44
- declare const RadioGroup: React.ForwardRefExoticComponent<RadioGroupProps & React.RefAttributes<HTMLDivElement>>;
45
- interface RadioProps extends Omit<React.ComponentPropsWithoutRef<'label'>, 'onChange'> {
43
+ export declare const RadioGroup: React.ForwardRefExoticComponent<RadioGroupProps & React.RefAttributes<HTMLDivElement>>;
44
+ export interface RadioProps extends Omit<React.ComponentPropsWithoutRef<'label'>, 'onChange'> {
46
45
  rootRef?: React.Ref<HTMLLabelElement>;
47
46
  inputProps?: React.InputHTMLAttributes<HTMLInputElement>;
48
47
  value: string;
49
48
  disabled?: boolean;
50
49
  }
51
- declare const Radio: React.ForwardRefExoticComponent<RadioProps & React.RefAttributes<HTMLInputElement>>;
52
-
53
- export { Radio, RadioGroup, type RadioGroupProps, type RadioProps };
50
+ export declare const Radio: React.ForwardRefExoticComponent<RadioProps & React.RefAttributes<HTMLInputElement>>;
51
+ export {};
52
+ //# sourceMappingURL=radio.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radio.d.ts","sourceRoot":"","sources":["../src/radio.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,QAAA,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;CAKA,CAAC;AAEX,KAAK,SAAS,GAAG,MAAM,OAAO,IAAI,CAAC;AAUnC,MAAM,WAAW,eAAgB,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,cAAc,GAAG,KAAK,CAAC;IACzG,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACxC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,KAAK,IAAI,CAAC;IAC5D,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAqDD,eAAO,MAAM,UAAU,wFAAiB,CAAC;AAKzC,MAAM,WAAW,UAAW,SAAQ,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC;IAC3F,OAAO,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;IACtC,UAAU,CAAC,EAAE,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;IACzD,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA+DD,eAAO,MAAM,KAAK,qFAAY,CAAC"}
package/dist/rating.d.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  import * as React from 'react';
2
-
3
- interface RatingProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'defaultValue' | 'onChange'> {
2
+ export interface RatingProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'defaultValue' | 'onChange'> {
4
3
  count?: number;
5
4
  label?: string | Array<string>;
6
5
  defaultValue?: number;
@@ -9,6 +8,5 @@ interface RatingProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'defaul
9
8
  }) => void;
10
9
  readOnly?: boolean;
11
10
  }
12
- declare const Rating: React.ForwardRefExoticComponent<RatingProps & React.RefAttributes<HTMLDivElement>>;
13
-
14
- export { Rating, type RatingProps };
11
+ export declare const Rating: React.ForwardRefExoticComponent<RatingProps & React.RefAttributes<HTMLDivElement>>;
12
+ //# sourceMappingURL=rating.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rating.d.ts","sourceRoot":"","sources":["../src/rating.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAe/B,MAAM,WAAW,WAAY,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,cAAc,GAAG,UAAU,CAAC;IAC1G,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,MAAM,oFAwDlB,CAAC"}
package/dist/select.cjs CHANGED
@@ -4,8 +4,7 @@
4
4
  var gui = require('@hanzo/gui');
5
5
  var usehooks = require('@uidotdev/usehooks');
6
6
  var React2 = require('react');
7
- var clsx = require('clsx');
8
- var tailwindMerge = require('tailwind-merge');
7
+ var ui = require('@hanzo/ui');
9
8
  var jsxRuntime = require('react/jsx-runtime');
10
9
 
11
10
  function _interopNamespace(e) {
@@ -28,9 +27,6 @@ function _interopNamespace(e) {
28
27
 
29
28
  var React2__namespace = /*#__PURE__*/_interopNamespace(React2);
30
29
 
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 = React2__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 && React2__namespace.isValidElement(children)) return children;
@@ -165,7 +161,7 @@ var Skeleton = React2__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 = React2__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 @@ React2__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 @@ React2__namespace.forwardRef(
204
200
  React2__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
  )) });
@@ -232,7 +228,7 @@ function FilterInput({ placeholder, initialValue = "", onChange }) {
232
228
  placeholder,
233
229
  value,
234
230
  onChange: handleChange,
235
- className: cn(
231
+ className: ui.cn(
236
232
  "w-full px-3 py-2 text-sm outline-none",
237
233
  "bg-transparent border-b border-[var(--color-border-divider)]",
238
234
  "placeholder:text-[var(--color-input-placeholder)]"
@@ -345,7 +341,7 @@ var SelectRoot = React2__namespace.forwardRef(
345
341
  "div",
346
342
  {
347
343
  ref,
348
- className: cn("relative inline-flex", className),
344
+ className: ui.cn("relative inline-flex", className),
349
345
  style: inlineStyle,
350
346
  "data-invalid": invalid || void 0,
351
347
  "data-disabled": disabled || void 0,
@@ -370,7 +366,7 @@ var SelectControl = React2__namespace.forwardRef(
370
366
  ref,
371
367
  asChild,
372
368
  unstyled: true,
373
- className: cn(
369
+ className: ui.cn(
374
370
  "group peer inline-flex items-center gap-2 cursor-pointer",
375
371
  "rounded-lg text-sm transition-colors outline-none",
376
372
  "border border-[var(--color-input-border)] bg-[var(--color-input-bg)] text-[var(--color-input-fg)]",
@@ -409,7 +405,7 @@ var SelectClearTrigger = React2__namespace.forwardRef(
409
405
  ref,
410
406
  type: "button",
411
407
  onClick: handleClick,
412
- className: cn("pointer-events-auto", className),
408
+ className: ui.cn("pointer-events-auto", className),
413
409
  "aria-label": "Clear selection",
414
410
  ...rest,
415
411
  children: /* @__PURE__ */ jsxRuntime.jsx("svg", { className: "h-5 w-5", viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", children: /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M18 6L6 18M6 6l12 12", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round" }) })
@@ -428,7 +424,7 @@ var SelectContent = React2__namespace.forwardRef(
428
424
  /* @__PURE__ */ jsxRuntime.jsx(gui.Select.Content, { ...rest, children: /* @__PURE__ */ jsxRuntime.jsx(
429
425
  gui.Select.Viewport,
430
426
  {
431
- className: cn(
427
+ className: ui.cn(
432
428
  "min-w-[8rem] overflow-hidden rounded-lg p-1",
433
429
  "bg-[var(--color-popover-bg)] shadow-[var(--shadow-popover)]",
434
430
  "border border-[var(--color-border-divider)]",
@@ -455,7 +451,7 @@ var SelectItem = React2__namespace.forwardRef(
455
451
  ref,
456
452
  index: index ?? 0,
457
453
  value: item.value,
458
- className: cn(
454
+ className: ui.cn(
459
455
  "relative flex cursor-pointer select-none items-center gap-2",
460
456
  "rounded-md px-3 py-2 text-sm outline-none",
461
457
  "text-[var(--color-text-primary)]",
@@ -489,7 +485,7 @@ var SelectValueText = React2__namespace.forwardRef(
489
485
  const label = size === "lg" ? /* @__PURE__ */ jsxRuntime.jsx(
490
486
  "span",
491
487
  {
492
- className: cn(
488
+ className: ui.cn(
493
489
  "text-xs block",
494
490
  invalid ? "text-[var(--color-text-error)]" : "text-[var(--color-input-placeholder)]"
495
491
  ),
@@ -523,7 +519,7 @@ var SelectValueText = React2__namespace.forwardRef(
523
519
  {
524
520
  ref,
525
521
  placeholder: placeholderText,
526
- className: cn("flex flex-col justify-center min-w-0 truncate", className),
522
+ className: ui.cn("flex flex-col justify-center min-w-0 truncate", className),
527
523
  ...rest,
528
524
  children: content
529
525
  }
@@ -533,7 +529,7 @@ var SelectValueText = React2__namespace.forwardRef(
533
529
  var SelectItemGroup = React2__namespace.forwardRef(
534
530
  function SelectItemGroup2(props, ref) {
535
531
  const { children, label, className, ...rest } = props;
536
- return /* @__PURE__ */ jsxRuntime.jsxs(gui.Select.Group, { ref, className: cn("py-1", className), ...rest, children: [
532
+ return /* @__PURE__ */ jsxRuntime.jsxs(gui.Select.Group, { ref, className: ui.cn("py-1", className), ...rest, children: [
537
533
  /* @__PURE__ */ jsxRuntime.jsx(gui.Select.Label, { className: "px-3 py-1.5 text-xs font-medium text-[var(--color-text-secondary)]", children: label }),
538
534
  children
539
535
  ] });
package/dist/select.d.ts CHANGED
@@ -1,23 +1,20 @@
1
- import * as _hanzo_gui from '@hanzo/gui';
2
- import { Select as Select$1 } from '@hanzo/gui';
3
- import * as _hanzogui_web from '@hanzogui/web';
1
+ import { Select as GuiSelect } from '@hanzo/gui';
4
2
  import * as React from 'react';
5
-
6
- interface ListCollection<T> {
3
+ export interface ListCollection<T> {
7
4
  items: Array<T>;
8
5
  }
9
- declare function createListCollection<T>(config: {
6
+ export declare function createListCollection<T>(config: {
10
7
  items: Array<T>;
11
8
  }): ListCollection<T>;
12
- type ViewMode = 'default' | 'compact';
13
- interface SelectOption<Value extends string = string> {
9
+ export type ViewMode = 'default' | 'compact';
10
+ export interface SelectOption<Value extends string = string> {
14
11
  label: string;
15
12
  renderLabel?: (place: 'item' | 'value-text') => React.ReactNode;
16
13
  value: Value;
17
14
  icon?: React.ReactNode;
18
15
  afterElement?: React.ReactNode;
19
16
  }
20
- interface SelectRootProps {
17
+ export interface SelectRootProps {
21
18
  children?: React.ReactNode;
22
19
  collection?: ListCollection<SelectOption>;
23
20
  defaultValue?: Array<string>;
@@ -54,11 +51,11 @@ interface SelectRootProps {
54
51
  minW?: string | Record<string, string>;
55
52
  hideFrom?: string;
56
53
  }
57
- declare const SelectRoot: React.ForwardRefExoticComponent<SelectRootProps & React.RefAttributes<HTMLDivElement>>;
58
- interface SelectControlProps {
54
+ export declare const SelectRoot: React.ForwardRefExoticComponent<SelectRootProps & React.RefAttributes<HTMLDivElement>>;
55
+ export interface SelectControlProps {
59
56
  children?: React.ReactNode;
60
57
  noIndicator?: boolean;
61
- triggerProps?: React.ComponentProps<typeof Select$1.Trigger> & {
58
+ triggerProps?: React.ComponentProps<typeof GuiSelect.Trigger> & {
62
59
  asChild?: boolean;
63
60
  px?: string | number;
64
61
  className?: string;
@@ -68,20 +65,20 @@ interface SelectControlProps {
68
65
  className?: string;
69
66
  style?: React.CSSProperties;
70
67
  }
71
- declare const SelectControl: React.ForwardRefExoticComponent<SelectControlProps & React.RefAttributes<HTMLButtonElement>>;
72
- interface SelectClearTriggerProps {
68
+ export declare const SelectControl: React.ForwardRefExoticComponent<SelectControlProps & React.RefAttributes<HTMLButtonElement>>;
69
+ export interface SelectClearTriggerProps {
73
70
  className?: string;
74
71
  }
75
- declare const SelectClearTrigger: React.ForwardRefExoticComponent<SelectClearTriggerProps & React.RefAttributes<HTMLButtonElement>>;
76
- interface SelectContentProps {
72
+ export declare const SelectClearTrigger: React.ForwardRefExoticComponent<SelectClearTriggerProps & React.RefAttributes<HTMLButtonElement>>;
73
+ export interface SelectContentProps {
77
74
  children?: React.ReactNode;
78
75
  portalled?: boolean;
79
76
  portalRef?: React.RefObject<HTMLElement>;
80
77
  className?: string;
81
78
  style?: React.CSSProperties;
82
79
  }
83
- declare const SelectContent: React.ForwardRefExoticComponent<SelectContentProps & React.RefAttributes<HTMLDivElement>>;
84
- interface SelectItemProps {
80
+ export declare const SelectContent: React.ForwardRefExoticComponent<SelectContentProps & React.RefAttributes<HTMLDivElement>>;
81
+ export interface SelectItemProps {
85
82
  item: SelectOption;
86
83
  children?: React.ReactNode;
87
84
  className?: string;
@@ -95,7 +92,7 @@ interface SelectItemProps {
95
92
  */
96
93
  index?: number;
97
94
  }
98
- declare const SelectItem: React.ForwardRefExoticComponent<SelectItemProps & React.RefAttributes<HTMLDivElement>>;
95
+ export declare const SelectItem: React.ForwardRefExoticComponent<SelectItemProps & React.RefAttributes<HTMLDivElement>>;
99
96
  interface SelectValueTextProps {
100
97
  children?: (items: Array<SelectOption>) => React.ReactNode;
101
98
  placeholder?: string;
@@ -107,36 +104,36 @@ interface SelectValueTextProps {
107
104
  className?: string;
108
105
  style?: React.CSSProperties;
109
106
  }
110
- declare const SelectValueText: React.ForwardRefExoticComponent<SelectValueTextProps & React.RefAttributes<HTMLSpanElement>>;
107
+ export declare const SelectValueText: React.ForwardRefExoticComponent<SelectValueTextProps & React.RefAttributes<HTMLSpanElement>>;
111
108
  interface SelectItemGroupProps {
112
109
  children?: React.ReactNode;
113
110
  label: React.ReactNode;
114
111
  className?: string;
115
112
  }
116
- declare const SelectItemGroup: React.ForwardRefExoticComponent<SelectItemGroupProps & React.RefAttributes<HTMLDivElement>>;
117
- declare const SelectLabel: _hanzogui_web.GuiComponent<Omit<_hanzogui_web.GetFinalProps<_hanzogui_web.TextNonStyleProps, _hanzogui_web.TextStylePropsBase, {
118
- size?: _hanzogui_web.SizeTokens | _hanzogui_web.FontSizeTokens | undefined;
113
+ export declare const SelectItemGroup: React.ForwardRefExoticComponent<SelectItemGroupProps & React.RefAttributes<HTMLDivElement>>;
114
+ export declare const SelectLabel: import("@hanzogui/web").GuiComponent<Omit<import("@hanzogui/web").GetFinalProps<import("@hanzogui/web").TextNonStyleProps, import("@hanzogui/web").TextStylePropsBase, {
115
+ size?: import("@hanzogui/web").SizeTokens | import("@hanzogui/web").FontSizeTokens | undefined;
119
116
  unstyled?: boolean | undefined;
120
117
  }>, "scope"> & {
121
118
  scope?: any;
122
- }, _hanzogui_web.GuiTextElement, _hanzogui_web.TextNonStyleProps & {
119
+ }, import("@hanzogui/web").GuiTextElement, import("@hanzogui/web").TextNonStyleProps & {
123
120
  scope?: any;
124
- }, _hanzogui_web.TextStylePropsBase, {
125
- size?: _hanzogui_web.SizeTokens | _hanzogui_web.FontSizeTokens | undefined;
121
+ }, import("@hanzogui/web").TextStylePropsBase, {
122
+ size?: import("@hanzogui/web").SizeTokens | import("@hanzogui/web").FontSizeTokens | undefined;
126
123
  unstyled?: boolean | undefined;
127
- }, _hanzogui_web.StaticConfigPublic>;
128
- declare const SelectItemText: _hanzogui_web.GuiComponent<Omit<_hanzogui_web.GetFinalProps<_hanzogui_web.TextNonStyleProps, _hanzogui_web.TextStylePropsBase, {
129
- size?: _hanzogui_web.FontSizeTokens | undefined;
124
+ }, import("@hanzogui/web").StaticConfigPublic>;
125
+ export declare const SelectItemText: import("@hanzogui/web").GuiComponent<Omit<import("@hanzogui/web").GetFinalProps<import("@hanzogui/web").TextNonStyleProps, import("@hanzogui/web").TextStylePropsBase, {
126
+ size?: import("@hanzogui/web").FontSizeTokens | undefined;
130
127
  unstyled?: boolean | undefined;
131
128
  }>, "scope"> & {
132
- scope?: _hanzo_gui.SelectScopes;
133
- }, _hanzogui_web.GuiTextElement, _hanzogui_web.TextNonStyleProps & {
134
- scope?: _hanzo_gui.SelectScopes;
135
- }, _hanzogui_web.TextStylePropsBase, {
136
- size?: _hanzogui_web.FontSizeTokens | undefined;
129
+ scope?: import("@hanzo/gui").SelectScopes;
130
+ }, import("@hanzogui/web").GuiTextElement, import("@hanzogui/web").TextNonStyleProps & {
131
+ scope?: import("@hanzo/gui").SelectScopes;
132
+ }, import("@hanzogui/web").TextStylePropsBase, {
133
+ size?: import("@hanzogui/web").FontSizeTokens | undefined;
137
134
  unstyled?: boolean | undefined;
138
- }, _hanzogui_web.StaticConfigPublic>;
139
- interface SelectProps extends SelectRootProps {
135
+ }, import("@hanzogui/web").StaticConfigPublic>;
136
+ export interface SelectProps extends SelectRootProps {
140
137
  collection: ListCollection<SelectOption>;
141
138
  placeholder: string;
142
139
  portalled?: boolean;
@@ -147,8 +144,8 @@ interface SelectProps extends SelectRootProps {
147
144
  itemFilter?: (item: SelectOption) => boolean;
148
145
  mode?: ViewMode;
149
146
  }
150
- declare const Select: React.ForwardRefExoticComponent<SelectProps & React.RefAttributes<HTMLDivElement>>;
151
- interface SelectAsyncProps extends Omit<SelectProps, 'collection'> {
147
+ export declare const Select: React.ForwardRefExoticComponent<SelectProps & React.RefAttributes<HTMLDivElement>>;
148
+ export interface SelectAsyncProps extends Omit<SelectProps, 'collection'> {
152
149
  placeholder: string;
153
150
  portalled?: boolean;
154
151
  loading?: boolean;
@@ -156,6 +153,6 @@ interface SelectAsyncProps extends Omit<SelectProps, 'collection'> {
156
153
  extraControls?: React.ReactNode;
157
154
  mode?: ViewMode;
158
155
  }
159
- declare const SelectAsync: React.ForwardRefExoticComponent<SelectAsyncProps & React.RefAttributes<HTMLDivElement>>;
160
-
161
- export { type ListCollection, Select, SelectAsync, type SelectAsyncProps, SelectClearTrigger, type SelectClearTriggerProps, SelectContent, type SelectContentProps, SelectControl, type SelectControlProps, SelectItem, SelectItemGroup, type SelectItemProps, SelectItemText, SelectLabel, type SelectOption, type SelectProps, SelectRoot, type SelectRootProps, SelectValueText, type ViewMode, createListCollection };
156
+ export declare const SelectAsync: React.ForwardRefExoticComponent<SelectAsyncProps & React.RefAttributes<HTMLDivElement>>;
157
+ export {};
158
+ //# sourceMappingURL=select.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"select.d.ts","sourceRoot":"","sources":["../src/select.tsx"],"names":[],"mappings":"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"}
package/dist/select.js CHANGED
@@ -2,13 +2,9 @@
2
2
  import { Select as Select$1 } from '@hanzo/gui';
3
3
  import { useDebounce } from '@uidotdev/usehooks';
4
4
  import * as React2 from 'react';
5
- import { clsx } from 'clsx';
6
- import { twMerge } from 'tailwind-merge';
5
+ import { cn } from '@hanzo/ui';
7
6
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
8
7
 
9
- function cn(...inputs) {
10
- return twMerge(clsx(inputs));
11
- }
12
8
  var SHIM_PROPS = [
13
9
  "w",
14
10
  "h",
@@ -1,13 +1,12 @@
1
- import React__default from 'react';
2
-
1
+ import React from 'react';
3
2
  type Orientation = 'horizontal' | 'vertical';
4
3
  type Variant = 'solid' | 'dashed' | 'dotted';
5
4
  type Size = 'xs' | 'sm' | 'md' | 'lg';
6
- interface SeparatorProps extends React__default.HTMLAttributes<HTMLHRElement> {
5
+ export interface SeparatorProps extends React.HTMLAttributes<HTMLHRElement> {
7
6
  readonly orientation?: Orientation;
8
7
  readonly variant?: Variant;
9
8
  readonly size?: Size;
10
9
  }
11
- declare const Separator: React__default.ForwardRefExoticComponent<SeparatorProps & React__default.RefAttributes<HTMLHRElement>>;
12
-
13
- export { Separator, type SeparatorProps };
10
+ export declare const Separator: React.ForwardRefExoticComponent<SeparatorProps & React.RefAttributes<HTMLHRElement>>;
11
+ export {};
12
+ //# sourceMappingURL=separator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"separator.d.ts","sourceRoot":"","sources":["../src/separator.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,KAAK,WAAW,GAAG,YAAY,GAAG,UAAU,CAAC;AAC7C,KAAK,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAC7C,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEtC,MAAM,WAAW,cAAe,SAAQ,KAAK,CAAC,cAAc,CAAC,aAAa,CAAC;IACzE,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IACnC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;CACtB;AAQD,eAAO,MAAM,SAAS,sFAuBrB,CAAC"}
package/dist/skeleton.cjs CHANGED
@@ -2,8 +2,7 @@
2
2
  'use strict';
3
3
 
4
4
  var React = require('react');
5
- var clsx = require('clsx');
6
- var tailwindMerge = require('tailwind-merge');
5
+ var ui = require('@hanzo/ui');
7
6
  var jsxRuntime = require('react/jsx-runtime');
8
7
 
9
8
  function _interopNamespace(e) {
@@ -27,9 +26,6 @@ function _interopNamespace(e) {
27
26
  var React__namespace = /*#__PURE__*/_interopNamespace(React);
28
27
 
29
28
  // src/skeleton.tsx
30
- function cn(...inputs) {
31
- return tailwindMerge.twMerge(clsx.clsx(inputs));
32
- }
33
29
  var SHIM_PROPS = [
34
30
  "w",
35
31
  "h",
@@ -152,7 +148,7 @@ var Skeleton = React__namespace.forwardRef(
152
148
  const shimStyle = shimToStyle(props);
153
149
  const mergedStyle = Object.keys(shimStyle).length > 0 || styleProp ? { ...shimStyle, ...styleProp } : void 0;
154
150
  const hideBelowClass = props.hideBelow ? HIDE_BELOW_MAP[props.hideBelow] : void 0;
155
- const cls = hideBelowClass ? cn(className, hideBelowClass) : className;
151
+ const cls = hideBelowClass ? ui.cn(className, hideBelowClass) : className;
156
152
  const htmlRest = stripShims(allRest);
157
153
  if (!loading) {
158
154
  if (asChild && React__namespace.isValidElement(children)) return children;
@@ -164,7 +160,7 @@ var Skeleton = React__namespace.forwardRef(
164
160
  {
165
161
  ref,
166
162
  "data-loading": true,
167
- className: cn(SKELETON_CLASSES, "[&_*]:invisible", cls),
163
+ className: ui.cn(SKELETON_CLASSES, "[&_*]:invisible", cls),
168
164
  style: mergedStyle,
169
165
  ...htmlRest,
170
166
  children
@@ -176,7 +172,7 @@ var Skeleton = React__namespace.forwardRef(
176
172
  {
177
173
  ref,
178
174
  "data-loading": true,
179
- className: cn(SKELETON_CLASSES, children ? "[&_*]:invisible" : "min-h-5", cls),
175
+ className: ui.cn(SKELETON_CLASSES, children ? "[&_*]:invisible" : "min-h-5", cls),
180
176
  style: mergedStyle,
181
177
  ...htmlRest,
182
178
  children
@@ -193,7 +189,7 @@ var SkeletonCircle = React__namespace.forwardRef(
193
189
  {
194
190
  ref,
195
191
  loading,
196
- className: cn("rounded-full shrink-0", className),
192
+ className: ui.cn("rounded-full shrink-0", className),
197
193
  style: { width: dimension, height: dimension, ...rest.style },
198
194
  ...rest
199
195
  }
@@ -203,11 +199,11 @@ var SkeletonCircle = React__namespace.forwardRef(
203
199
  var SkeletonText = React__namespace.forwardRef(
204
200
  function SkeletonText2(props, ref) {
205
201
  const { noOfLines = 3, loading = true, className, ...rest } = props;
206
- 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(
202
+ 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(
207
203
  Skeleton,
208
204
  {
209
205
  loading,
210
- className: cn("h-4", index === noOfLines - 1 && "max-w-[80%]")
206
+ className: ui.cn("h-4", index === noOfLines - 1 && "max-w-[80%]")
211
207
  },
212
208
  index
213
209
  )) });
@@ -1,7 +1,5 @@
1
- import * as react_jsx_runtime from 'react/jsx-runtime';
2
1
  import * as React from 'react';
3
-
4
- interface SkeletonProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'color'> {
2
+ export interface SkeletonProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'color'> {
5
3
  readonly loading: boolean | undefined;
6
4
  /** When true, the Skeleton wraps its single child element instead of adding a wrapper div. */
7
5
  readonly asChild?: boolean;
@@ -46,17 +44,17 @@ interface SkeletonProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'colo
46
44
  readonly position?: React.CSSProperties['position'];
47
45
  readonly background?: string;
48
46
  }
49
- declare const Skeleton: React.ForwardRefExoticComponent<SkeletonProps & React.RefAttributes<HTMLDivElement>>;
50
- interface SkeletonCircleProps extends React.HTMLAttributes<HTMLDivElement> {
47
+ export declare const Skeleton: React.ForwardRefExoticComponent<SkeletonProps & React.RefAttributes<HTMLDivElement>>;
48
+ export interface SkeletonCircleProps extends React.HTMLAttributes<HTMLDivElement> {
51
49
  readonly size?: string | number;
52
50
  readonly loading?: boolean;
53
51
  }
54
- declare const SkeletonCircle: React.ForwardRefExoticComponent<SkeletonCircleProps & React.RefAttributes<HTMLDivElement>>;
55
- interface SkeletonTextProps extends React.HTMLAttributes<HTMLDivElement> {
52
+ export declare const SkeletonCircle: React.ForwardRefExoticComponent<SkeletonCircleProps & React.RefAttributes<HTMLDivElement>>;
53
+ export interface SkeletonTextProps extends React.HTMLAttributes<HTMLDivElement> {
56
54
  readonly noOfLines?: number;
57
55
  readonly loading?: boolean;
58
56
  }
59
- declare const SkeletonText: React.ForwardRefExoticComponent<SkeletonTextProps & React.RefAttributes<HTMLDivElement>>;
57
+ export declare const SkeletonText: React.ForwardRefExoticComponent<SkeletonTextProps & React.RefAttributes<HTMLDivElement>>;
60
58
  /**
61
59
  * The page-level "work is in flight" signal — one animated element, however
62
60
  * many skeletons are on screen. Mount it while any request is outstanding.
@@ -69,8 +67,7 @@ declare const SkeletonText: React.ForwardRefExoticComponent<SkeletonTextProps &
69
67
  * happening somewhere"; a skeleton plus this bar says "here is the shape of
70
68
  * what is coming, and it is still coming".
71
69
  */
72
- declare function LoadingBar({ loading }: {
70
+ export declare function LoadingBar({ loading }: {
73
71
  readonly loading?: boolean;
74
- }): react_jsx_runtime.JSX.Element | null;
75
-
76
- export { LoadingBar, Skeleton, SkeletonCircle, type SkeletonCircleProps, type SkeletonProps, SkeletonText, type SkeletonTextProps };
72
+ }): import("react/jsx-runtime").JSX.Element | null;
73
+ //# sourceMappingURL=skeleton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skeleton.d.ts","sourceRoot":"","sources":["../src/skeleton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAQ/B,MAAM,WAAW,aAAc,SAAQ,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC;IACxF,QAAQ,CAAC,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;IAEtC,8FAA8F;IAC9F,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAI3B,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;IAEjB,QAAQ,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;IAEjB,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC;IAEpB,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC;IACpB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC/B,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACnC,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,QAAQ,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC;IAChC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IACpD,QAAQ,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC;IACtD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;IACpD,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;CAC9B;AAqGD,eAAO,MAAM,QAAQ,sFA+CpB,CAAC;AAMF,MAAM,WAAW,mBAAoB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAC/E,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,eAAO,MAAM,cAAc,4FAgB1B,CAAC;AAMF,MAAM,WAAW,iBAAkB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAC7E,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,eAAO,MAAM,YAAY,0FAgBxB,CAAC;AAMF;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,CAAC,EAAE,OAAc,EAAE,EAAE;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,kDAG5E"}
package/dist/skeleton.js CHANGED
@@ -1,13 +1,9 @@
1
1
  "use client";
2
2
  import * as React from 'react';
3
- import { clsx } from 'clsx';
4
- import { twMerge } from 'tailwind-merge';
3
+ import { cn } from '@hanzo/ui';
5
4
  import { jsx } from 'react/jsx-runtime';
6
5
 
7
6
  // src/skeleton.tsx
8
- function cn(...inputs) {
9
- return twMerge(clsx(inputs));
10
- }
11
7
  var SHIM_PROPS = [
12
8
  "w",
13
9
  "h",
package/dist/slider.cjs CHANGED
@@ -102,7 +102,7 @@ var Slider = React__namespace.forwardRef(
102
102
  borderWidth: 2,
103
103
  borderColor: ACTIVE,
104
104
  backgroundColor: WHITE,
105
- boxShadow: "0 1px 2px 0 rgba(0,0,0,0.05)",
105
+ boxShadow: "var(--shadow-sm)",
106
106
  transition: "quick",
107
107
  hoverStyle: { borderColor: ACTIVE_HOVER },
108
108
  focusStyle: { outlineWidth: 2, outlineStyle: "solid", outlineColor: ACTIVE, outlineOffset: 2 },
package/dist/slider.d.ts CHANGED
@@ -1,6 +1,5 @@
1
1
  import * as React from 'react';
2
-
3
- interface SliderProps {
2
+ export interface SliderProps {
4
3
  readonly marks?: Array<number | {
5
4
  readonly value: number;
6
5
  readonly label: React.ReactNode;
@@ -19,6 +18,5 @@ interface SliderProps {
19
18
  readonly onValueCommit?: (value: Array<number>) => void;
20
19
  readonly className?: string;
21
20
  }
22
- declare const Slider: React.ForwardRefExoticComponent<SliderProps & React.RefAttributes<HTMLSpanElement>>;
23
-
24
- export { Slider, type SliderProps };
21
+ export declare const Slider: React.ForwardRefExoticComponent<SliderProps & React.RefAttributes<HTMLSpanElement>>;
22
+ //# sourceMappingURL=slider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slider.d.ts","sourceRoot":"","sources":["../src/slider.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG;QAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAA;KAAE,CAAC,CAAC;IAC7F,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC/B,QAAQ,CAAC,YAAY,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IACtC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACjD,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IACxD,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC;IACxD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAYD,eAAO,MAAM,MAAM,qFAwGlB,CAAC"}