@nexub/react 1.3.0 → 1.5.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 (213) hide show
  1. package/dist/{chunk-BYF223HT.js → chunk-2555JXCP.js} +1 -1
  2. package/dist/{chunk-6AZP6VBM.js → chunk-2FCSWBSM.js} +1 -1
  3. package/dist/{chunk-OZPPL76D.js → chunk-2ZBJOUJ7.js} +17 -20
  4. package/dist/{chunk-YJD66LTV.js → chunk-3AXIMXDU.js} +1 -1
  5. package/dist/{chunk-H4MXRAXP.js → chunk-3LP2CR7F.js} +1 -1
  6. package/dist/chunk-3TMIZQPR.js +49 -0
  7. package/dist/chunk-47UGX37F.js +21 -0
  8. package/dist/{chunk-PANDAMD2.js → chunk-4I5ULCYG.js} +1 -1
  9. package/dist/{chunk-3U54QLYB.js → chunk-4SSUM4CL.js} +1 -1
  10. package/dist/{chunk-KZW37FQZ.js → chunk-56FERRWW.js} +1 -1
  11. package/dist/chunk-5O34ZNC3.js +70 -0
  12. package/dist/{chunk-YUNWZAAD.js → chunk-5URGARPH.js} +8 -3
  13. package/dist/{chunk-QF7GUDOE.js → chunk-63DPMUMR.js} +1 -1
  14. package/dist/chunk-64JDZWCV.js +47 -0
  15. package/dist/{chunk-BMVAZIAJ.js → chunk-6J3QTWKC.js} +1 -1
  16. package/dist/{chunk-2RLSIOGB.js → chunk-6QLLH6ID.js} +21 -11
  17. package/dist/{chunk-KWWV3CM3.js → chunk-6RBNM5RO.js} +1 -1
  18. package/dist/{chunk-WPPNDU2E.js → chunk-6SJPVQQW.js} +7 -6
  19. package/dist/{chunk-NAIZ7R2L.js → chunk-72I7EVOL.js} +1 -1
  20. package/dist/{chunk-SZKUSLHI.js → chunk-7L3CGIRA.js} +21 -11
  21. package/dist/{chunk-UWWL5FPC.js → chunk-7Q7ZF6BY.js} +1 -1
  22. package/dist/chunk-7SXR4PGO.js +31 -0
  23. package/dist/{chunk-W4IEXUD4.js → chunk-7ZWBHHRK.js} +14 -11
  24. package/dist/{chunk-PER3O4FD.js → chunk-A4IMFAZX.js} +1 -1
  25. package/dist/{chunk-E3QPDCEV.js → chunk-AEBYQKLS.js} +34 -7
  26. package/dist/chunk-AHT35UWY.js +92 -0
  27. package/dist/chunk-AXOKFS4K.js +48 -0
  28. package/dist/chunk-B54WADL4.js +103 -0
  29. package/dist/{chunk-CMYEVLQT.js → chunk-BFRX6X4O.js} +9 -7
  30. package/dist/{chunk-KBB7M6WO.js → chunk-BTRTORKU.js} +1 -1
  31. package/dist/{chunk-TCTFQYLH.js → chunk-CHGPGRML.js} +1 -1
  32. package/dist/chunk-CIQHFMF6.js +44 -0
  33. package/dist/{chunk-U3AEA4BZ.js → chunk-CNNJFWFA.js} +1 -1
  34. package/dist/chunk-CWS37T3K.js +80 -0
  35. package/dist/chunk-DEIBF3P7.js +8 -0
  36. package/dist/{chunk-RIDDJUPA.js → chunk-DJZZ3FIP.js} +13 -4
  37. package/dist/{chunk-K7CUCLLI.js → chunk-DYWJ7BIK.js} +2 -2
  38. package/dist/{chunk-6Y734SXN.js → chunk-E4JM3HUM.js} +1 -1
  39. package/dist/{chunk-POFKKYHY.js → chunk-EQNETGTV.js} +1 -1
  40. package/dist/{chunk-BBVOB4EC.js → chunk-EZ23IA3H.js} +1 -1
  41. package/dist/{chunk-LOP63AVE.js → chunk-FD7YU53N.js} +1 -1
  42. package/dist/{chunk-CPV367VS.js → chunk-FHFVBOF3.js} +1 -1
  43. package/dist/chunk-GHCV6UXG.js +57 -0
  44. package/dist/{chunk-UALYS4XI.js → chunk-GIGOTRXX.js} +9 -4
  45. package/dist/{chunk-BTZW34TX.js → chunk-GRB6T2TT.js} +7 -6
  46. package/dist/chunk-GUB7YKG2.js +35 -0
  47. package/dist/{chunk-POBSY7EZ.js → chunk-H2W7IYVY.js} +1 -1
  48. package/dist/{chunk-I5Z3A7N3.js → chunk-HG6HTUWU.js} +2 -2
  49. package/dist/chunk-HI7GBSW2.js +1 -0
  50. package/dist/{chunk-DEH2Z27F.js → chunk-HJERFB7J.js} +1 -1
  51. package/dist/{chunk-UTBUIBEP.js → chunk-I4BHRVRL.js} +3 -30
  52. package/dist/{chunk-FUJOSPNQ.js → chunk-I4URNMI7.js} +1 -1
  53. package/dist/{chunk-24CZFBTG.js → chunk-IIPYF6ZQ.js} +1 -1
  54. package/dist/{chunk-CVBAWKNG.js → chunk-IK23Q2OF.js} +32 -27
  55. package/dist/{chunk-4OCXGNP3.js → chunk-J2T4GFFS.js} +1 -1
  56. package/dist/{chunk-BJKW3G2L.js → chunk-J6TU45KP.js} +1 -1
  57. package/dist/chunk-JLUCMNVS.js +32 -0
  58. package/dist/{chunk-ELC2NBGH.js → chunk-JSD3H7WV.js} +1 -1
  59. package/dist/{chunk-46CFSBEO.js → chunk-KA2J5OBA.js} +3 -2
  60. package/dist/{chunk-OUBBOOZE.js → chunk-KM6Z3VTI.js} +1 -1
  61. package/dist/chunk-KQPLFVFR.js +27 -0
  62. package/dist/{chunk-MV7WMQI4.js → chunk-LDYD7WL3.js} +1 -1
  63. package/dist/{chunk-QURKXXNS.js → chunk-LGQ737BP.js} +6 -12
  64. package/dist/{chunk-DOHXBNOP.js → chunk-LH3BSAIS.js} +1 -1
  65. package/dist/chunk-LMPGHWUA.js +114 -0
  66. package/dist/chunk-LVPU7455.js +1 -0
  67. package/dist/chunk-LZB3KTSH.js +61 -0
  68. package/dist/{chunk-BUBYXAJK.js → chunk-M7YB3MSW.js} +1 -1
  69. package/dist/{chunk-V3FZHIEB.js → chunk-NCRFKPA4.js} +1 -1
  70. package/dist/{chunk-JKTZMWWC.js → chunk-NIX4SEKM.js} +1 -1
  71. package/dist/{chunk-PBLEGOLM.js → chunk-NMH5WSZG.js} +6 -5
  72. package/dist/{chunk-ZFVBFCYV.js → chunk-NQVRF4RB.js} +1 -1
  73. package/dist/{chunk-IU76LV3W.js → chunk-OASFXI27.js} +6 -6
  74. package/dist/chunk-OJ2TLWYD.js +89 -0
  75. package/dist/{chunk-MY6XUJ5P.js → chunk-OJRSPDNJ.js} +21 -14
  76. package/dist/chunk-P26VJEIW.js +1 -0
  77. package/dist/{chunk-IBCYG6HR.js → chunk-P44EROBX.js} +1 -1
  78. package/dist/{chunk-52KTX5A7.js → chunk-PQ6GU7SG.js} +2 -2
  79. package/dist/{chunk-CZUNTABW.js → chunk-PVTACENM.js} +1 -1
  80. package/dist/{chunk-Y45JAJKW.js → chunk-PWBPHGM3.js} +2 -2
  81. package/dist/chunk-Q7G5WGYV.js +33 -0
  82. package/dist/{chunk-BYCTJHXY.js → chunk-QCNLE27O.js} +2 -2
  83. package/dist/{chunk-7W2YDJ5W.js → chunk-QD7H3WV3.js} +10 -7
  84. package/dist/{chunk-HW3I7I3R.js → chunk-RB4CVS22.js} +1 -1
  85. package/dist/{chunk-ZLSUVZM2.js → chunk-RHOYF7MO.js} +17 -11
  86. package/dist/{chunk-QHJ43Q2T.js → chunk-RLE5RN3T.js} +1 -1
  87. package/dist/{chunk-7B4FS7VQ.js → chunk-RTDUTWJ4.js} +31 -14
  88. package/dist/{chunk-DR2Y3PIT.js → chunk-S46W2QER.js} +1 -1
  89. package/dist/{chunk-LAWZQ6R6.js → chunk-SVQCINRE.js} +1 -1
  90. package/dist/{chunk-6MYVXJPJ.js → chunk-SY6V3HAK.js} +17 -23
  91. package/dist/{chunk-VT7RKY46.js → chunk-TEOLG3N2.js} +1 -1
  92. package/dist/{chunk-A7L75YXY.js → chunk-TJCHA3OI.js} +2 -2
  93. package/dist/chunk-TNBBQ7IP.js +43 -0
  94. package/dist/{chunk-IHW2L532.js → chunk-TYTW4F3B.js} +12 -9
  95. package/dist/{chunk-T4IVMVMQ.js → chunk-UMC64NCT.js} +1 -1
  96. package/dist/chunk-V3TETH4J.js +146 -0
  97. package/dist/{chunk-JQDLCN5D.js → chunk-W2NEXOTG.js} +1 -1
  98. package/dist/{chunk-XNDCVVNE.js → chunk-WESZPFBZ.js} +2 -2
  99. package/dist/{chunk-DD6XCW6R.js → chunk-XR4NBY54.js} +1 -1
  100. package/dist/{chunk-YGOR3KT7.js → chunk-YJ3JQYAN.js} +1 -1
  101. package/dist/chunk-YPHNHQYQ.js +61 -0
  102. package/dist/chunk-YRDCY6BI.js +55 -0
  103. package/dist/{chunk-2VDP2ML4.js → chunk-Z3IG5WRA.js} +10 -9
  104. package/dist/{chunk-YUFCNHZF.js → chunk-ZV3AF5CL.js} +1 -1
  105. package/dist/components/Accordion/index.js +2 -2
  106. package/dist/components/Alert/index.js +2 -2
  107. package/dist/components/AlertDialog/index.js +6 -2
  108. package/dist/components/Amount/index.js +9 -0
  109. package/dist/components/AppShell/index.js +2 -2
  110. package/dist/components/AspectRatio/index.js +2 -2
  111. package/dist/components/Autocomplete/index.js +3 -3
  112. package/dist/components/Avatar/index.js +2 -2
  113. package/dist/components/AvatarGroup/index.js +3 -3
  114. package/dist/components/Badge/index.js +2 -2
  115. package/dist/components/Banner/index.js +2 -2
  116. package/dist/components/Box/index.js +2 -2
  117. package/dist/components/Breadcrumb/index.js +2 -2
  118. package/dist/components/Button/index.js +5 -2
  119. package/dist/components/ButtonGroup/index.js +3 -2
  120. package/dist/components/Callout/index.js +2 -2
  121. package/dist/components/Card/index.js +3 -3
  122. package/dist/components/CheckList/index.js +2 -2
  123. package/dist/components/Checkbox/index.js +2 -2
  124. package/dist/components/Chip/index.js +2 -2
  125. package/dist/components/Code/index.js +2 -2
  126. package/dist/components/Collapsible/index.js +2 -2
  127. package/dist/components/Combobox/index.js +2 -2
  128. package/dist/components/CommandPalette/index.js +4 -2
  129. package/dist/components/Container/index.js +2 -2
  130. package/dist/components/ContextMenu/index.js +3 -2
  131. package/dist/components/CountryBadge/index.js +3 -3
  132. package/dist/components/DataTable/index.js +2 -2
  133. package/dist/components/DatePicker/index.js +2 -2
  134. package/dist/components/DateRangePicker/index.js +2 -2
  135. package/dist/components/Dialog/index.js +4 -3
  136. package/dist/components/Drawer/index.js +5 -3
  137. package/dist/components/DropdownMenu/index.js +4 -2
  138. package/dist/components/EmptyState/index.js +2 -2
  139. package/dist/components/ErrorState/index.js +2 -2
  140. package/dist/components/EyebrowChip/index.js +2 -2
  141. package/dist/components/FileUpload/index.js +2 -2
  142. package/dist/components/FilterChip/index.js +2 -2
  143. package/dist/components/Flag/index.js +2 -2
  144. package/dist/components/Flex/index.js +2 -2
  145. package/dist/components/FormError/index.js +2 -2
  146. package/dist/components/FormField/index.js +5 -5
  147. package/dist/components/GradientDivider/index.js +2 -2
  148. package/dist/components/Grid/index.js +2 -2
  149. package/dist/components/Heading/index.js +2 -2
  150. package/dist/components/HelperText/index.js +2 -2
  151. package/dist/components/HoverCard/index.js +3 -2
  152. package/dist/components/IconButton/index.js +3 -2
  153. package/dist/components/Input/index.js +3 -2
  154. package/dist/components/Kbd/index.js +2 -2
  155. package/dist/components/KeyboardShortcut/index.js +3 -3
  156. package/dist/components/Label/index.js +2 -2
  157. package/dist/components/Link/index.js +2 -2
  158. package/dist/components/Logo/index.js +2 -2
  159. package/dist/components/Menubar/index.js +3 -2
  160. package/dist/components/MoneyInput/index.js +13 -0
  161. package/dist/components/NavigationMenu/index.js +3 -2
  162. package/dist/components/NavigationRail/index.js +8 -0
  163. package/dist/components/NumberInput/index.js +4 -3
  164. package/dist/components/PageHeader/index.js +2 -2
  165. package/dist/components/Pagination/index.js +2 -2
  166. package/dist/components/PasswordInput/index.js +4 -3
  167. package/dist/components/Popover/index.js +4 -3
  168. package/dist/components/Progress/index.js +2 -2
  169. package/dist/components/RadioGroup/index.js +2 -2
  170. package/dist/components/Rating/index.js +3 -2
  171. package/dist/components/ScrollArea/index.js +2 -2
  172. package/dist/components/SearchInput/index.js +4 -3
  173. package/dist/components/Section/index.js +2 -2
  174. package/dist/components/SegmentedControl/index.js +4 -2
  175. package/dist/components/Select/index.js +4 -2
  176. package/dist/components/Separator/index.js +2 -2
  177. package/dist/components/Sidebar/index.js +2 -2
  178. package/dist/components/Skeleton/index.js +2 -2
  179. package/dist/components/Slider/index.js +2 -2
  180. package/dist/components/Spinner/index.js +2 -2
  181. package/dist/components/SplitButton/index.js +14 -0
  182. package/dist/components/Stack/index.js +2 -2
  183. package/dist/components/StatusPill/index.js +2 -2
  184. package/dist/components/Switch/index.js +2 -2
  185. package/dist/components/Table/index.js +2 -2
  186. package/dist/components/Tabs/index.js +4 -2
  187. package/dist/components/Tag/index.js +2 -2
  188. package/dist/components/Text/index.js +2 -2
  189. package/dist/components/TextGradient/index.js +2 -2
  190. package/dist/components/Textarea/index.js +3 -2
  191. package/dist/components/ThemeProvider/index.js +1 -1
  192. package/dist/components/Toast/index.js +2 -2
  193. package/dist/components/Toggle/index.js +2 -2
  194. package/dist/components/ToggleGroup/index.js +3 -3
  195. package/dist/components/Toolbar/index.js +3 -2
  196. package/dist/components/Tooltip/index.js +2 -2
  197. package/dist/components/TopNav/index.js +3 -3
  198. package/dist/index.d.ts +128 -21
  199. package/dist/index.js +162 -152
  200. package/package.json +8 -5
  201. package/dist/chunk-3CSKW56L.js +0 -44
  202. package/dist/chunk-AT6RPKU3.js +0 -12
  203. package/dist/chunk-BGY23Y5O.js +0 -104
  204. package/dist/chunk-DAXDAFNG.js +0 -92
  205. package/dist/chunk-EVCTOIRS.js +0 -66
  206. package/dist/chunk-GTQIA62H.js +0 -60
  207. package/dist/chunk-JCUVWDUC.js +0 -57
  208. package/dist/chunk-N2GIMMTF.js +0 -98
  209. package/dist/chunk-P6BZNFVU.js +0 -38
  210. package/dist/chunk-QRZV2FLW.js +0 -106
  211. package/dist/chunk-ROZVVWPV.js +0 -8
  212. package/dist/chunk-U3EGB3JL.js +0 -43
  213. package/dist/chunk-VPZCQFVY.js +0 -33
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import {
3
3
  cn
4
- } from "./chunk-AT6RPKU3.js";
4
+ } from "./chunk-Q7G5WGYV.js";
5
5
 
6
6
  // src/components/Progress/Progress.tsx
7
7
  import * as React from "react";
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import {
3
3
  cn
4
- } from "./chunk-AT6RPKU3.js";
4
+ } from "./chunk-Q7G5WGYV.js";
5
5
 
6
6
  // src/components/EmptyState/EmptyState.tsx
7
7
  import * as React from "react";
@@ -1,19 +1,25 @@
1
1
  'use client';
2
+ import {
3
+ glassSurfaceClass
4
+ } from "./chunk-DEIBF3P7.js";
2
5
  import {
3
6
  cn
4
- } from "./chunk-AT6RPKU3.js";
7
+ } from "./chunk-Q7G5WGYV.js";
5
8
 
6
9
  // src/components/Toolbar/Toolbar.tsx
7
10
  import * as React from "react";
8
11
  import * as RadixToolbar from "@radix-ui/react-toolbar";
9
12
  import { jsx } from "react/jsx-runtime";
10
13
  var Root2 = React.forwardRef(
11
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx(
14
+ ({ className, floating = false, placement, ...props }, ref) => /* @__PURE__ */ jsx(
12
15
  RadixToolbar.Root,
13
16
  {
14
17
  ref,
18
+ "data-material": floating ? "glass" : void 0,
15
19
  className: cn(
16
- "flex items-center gap-1 rounded-lg border border-[var(--color-border-default)] bg-[var(--color-bg-default)] p-1",
20
+ "flex items-center gap-1 p-1",
21
+ floating ? ["rounded-shape-control p-1.5", glassSurfaceClass] : "rounded-shape-container bg-[var(--color-surface-container-low)]",
22
+ floating && placement === "bottom" && "fixed bottom-6 left-1/2 z-[var(--z-sticky,1100)] -translate-x-1/2",
17
23
  className
18
24
  ),
19
25
  ...props
@@ -21,20 +27,12 @@ var Root2 = React.forwardRef(
21
27
  )
22
28
  );
23
29
  Root2.displayName = "Toolbar.Root";
30
+ var item = [
31
+ "nx-state-layer nx-press relative inline-flex h-control-sm items-center justify-center gap-1.5 rounded-shape-control text-label-lg text-[var(--color-on-surface)] select-none",
32
+ "disabled:pointer-events-none disabled:text-[var(--color-text-disabled)]"
33
+ ].join(" ");
24
34
  var ToolbarButton = React.forwardRef(
25
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx(
26
- RadixToolbar.Button,
27
- {
28
- ref,
29
- className: cn(
30
- "inline-flex h-8 items-center justify-center rounded-md px-3 text-sm font-medium transition-colors",
31
- "hover:bg-[var(--color-bg-subtle)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-ring-default)]",
32
- "disabled:pointer-events-none disabled:opacity-50",
33
- className
34
- ),
35
- ...props
36
- }
37
- )
35
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx(RadixToolbar.Button, { ref, className: cn(item, "px-3", className), ...props })
38
36
  );
39
37
  ToolbarButton.displayName = "Toolbar.Button";
40
38
  var Separator2 = React.forwardRef(
@@ -42,7 +40,7 @@ var Separator2 = React.forwardRef(
42
40
  RadixToolbar.Separator,
43
41
  {
44
42
  ref,
45
- className: cn("mx-1 w-px self-stretch bg-[var(--color-border-default)]", className),
43
+ className: cn("mx-1 h-5 w-px bg-[var(--color-outline-variant)]", className),
46
44
  ...props
47
45
  }
48
46
  )
@@ -65,9 +63,8 @@ var ToggleItem2 = React.forwardRef(
65
63
  {
66
64
  ref,
67
65
  className: cn(
68
- "inline-flex h-8 w-8 items-center justify-center rounded-md text-sm transition-colors",
69
- "hover:bg-[var(--color-bg-subtle)] data-[state=on]:bg-[var(--color-bg-subtle)]",
70
- "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-ring-default)]",
66
+ item,
67
+ "w-control-sm data-[state=on]:bg-[var(--color-secondary-container)] data-[state=on]:text-[var(--color-on-secondary-container)]",
71
68
  className
72
69
  ),
73
70
  ...props
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import {
3
3
  cn
4
- } from "./chunk-AT6RPKU3.js";
4
+ } from "./chunk-Q7G5WGYV.js";
5
5
 
6
6
  // src/components/Grid/Grid.tsx
7
7
  import * as React from "react";
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import {
3
3
  cn
4
- } from "./chunk-AT6RPKU3.js";
4
+ } from "./chunk-Q7G5WGYV.js";
5
5
 
6
6
  // src/components/Collapsible/Collapsible.tsx
7
7
  import * as React from "react";
@@ -0,0 +1,49 @@
1
+ 'use client';
2
+ import {
3
+ cn
4
+ } from "./chunk-Q7G5WGYV.js";
5
+
6
+ // src/components/Toggle/Toggle.tsx
7
+ import * as React from "react";
8
+ import * as RadixToggle from "@radix-ui/react-toggle";
9
+ import { cva } from "class-variance-authority";
10
+ import { jsx } from "react/jsx-runtime";
11
+ var toggleVariants = cva(
12
+ [
13
+ // Pressable capsule; on = the secondary container (tonal selection).
14
+ "nx-state-layer nx-press relative inline-flex items-center justify-center gap-2 rounded-shape-control select-none",
15
+ "text-[var(--color-on-surface-variant)] transition-[background-color,color] duration-effects-fast ease-effects-fast",
16
+ "data-[state=on]:bg-[var(--color-secondary-container)] data-[state=on]:text-[var(--color-on-secondary-container)]",
17
+ "disabled:pointer-events-none disabled:text-[var(--color-text-disabled)]"
18
+ ],
19
+ {
20
+ variants: {
21
+ variant: {
22
+ default: "bg-transparent",
23
+ outline: "border border-[var(--color-outline-variant)] bg-transparent data-[state=on]:border-transparent"
24
+ },
25
+ size: {
26
+ sm: "h-control-sm px-3 text-label-md",
27
+ md: "h-control-md px-4 text-label-lg",
28
+ lg: "h-control-lg px-5 text-label-lg"
29
+ }
30
+ },
31
+ defaultVariants: { variant: "default", size: "md" }
32
+ }
33
+ );
34
+ var Toggle = React.forwardRef(
35
+ ({ className, variant, size, ...props }, ref) => /* @__PURE__ */ jsx(
36
+ RadixToggle.Root,
37
+ {
38
+ ref,
39
+ className: cn(toggleVariants({ variant, size }), className),
40
+ ...props
41
+ }
42
+ )
43
+ );
44
+ Toggle.displayName = "Toggle";
45
+
46
+ export {
47
+ toggleVariants,
48
+ Toggle
49
+ };
@@ -0,0 +1,21 @@
1
+ 'use client';
2
+
3
+ // src/hooks/useClassScrollLock.ts
4
+ import * as React from "react";
5
+ var scrollLocks = 0;
6
+ function useClassScrollLock() {
7
+ React.useEffect(() => {
8
+ const html = document.documentElement;
9
+ if (scrollLocks++ === 0) {
10
+ html.classList.toggle("nexub-scroll-gutter", window.innerWidth > html.clientWidth);
11
+ html.classList.add("nexub-scroll-lock");
12
+ }
13
+ return () => {
14
+ if (--scrollLocks === 0) html.classList.remove("nexub-scroll-lock", "nexub-scroll-gutter");
15
+ };
16
+ }, []);
17
+ }
18
+
19
+ export {
20
+ useClassScrollLock
21
+ };
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import {
3
3
  cn
4
- } from "./chunk-AT6RPKU3.js";
4
+ } from "./chunk-Q7G5WGYV.js";
5
5
 
6
6
  // src/components/CheckList/CheckList.tsx
7
7
  import * as React from "react";
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import {
3
3
  cn
4
- } from "./chunk-AT6RPKU3.js";
4
+ } from "./chunk-Q7G5WGYV.js";
5
5
 
6
6
  // src/components/Breadcrumb/Breadcrumb.tsx
7
7
  import * as React from "react";
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import {
3
3
  cn
4
- } from "./chunk-AT6RPKU3.js";
4
+ } from "./chunk-Q7G5WGYV.js";
5
5
 
6
6
  // src/components/AppShell/AppShell.tsx
7
7
  import * as React from "react";
@@ -0,0 +1,70 @@
1
+ 'use client';
2
+ import {
3
+ cn
4
+ } from "./chunk-Q7G5WGYV.js";
5
+
6
+ // src/components/NavigationRail/NavigationRail.tsx
7
+ import * as React from "react";
8
+ import { Slot } from "@radix-ui/react-slot";
9
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
10
+ var Root = React.forwardRef(
11
+ ({ className, header, children, "aria-label": ariaLabel = "Main", ...props }, ref) => /* @__PURE__ */ jsxs(
12
+ "nav",
13
+ {
14
+ ref,
15
+ "aria-label": ariaLabel,
16
+ className: cn("flex h-full w-20 shrink-0 flex-col items-center gap-3 py-4", className),
17
+ ...props,
18
+ children: [
19
+ header && /* @__PURE__ */ jsx("div", { className: "mb-3 flex flex-col items-center", children: header }),
20
+ /* @__PURE__ */ jsx("ul", { className: "flex w-full flex-col items-center gap-1", role: "list", children })
21
+ ]
22
+ }
23
+ )
24
+ );
25
+ Root.displayName = "NavigationRail.Root";
26
+ var Item = React.forwardRef(
27
+ ({ className, icon, label, active, asChild, children, ...props }, ref) => {
28
+ const inner = /* @__PURE__ */ jsxs(Fragment, { children: [
29
+ /* @__PURE__ */ jsx(
30
+ "span",
31
+ {
32
+ className: cn(
33
+ "relative grid h-8 w-14 place-items-center rounded-full [&>svg]:h-5 [&>svg]:w-5",
34
+ "before:absolute before:inset-0 before:rounded-full before:bg-current before:opacity-0",
35
+ "before:transition-opacity before:duration-effects-fast before:ease-effects-fast",
36
+ "group-hover:before:opacity-[var(--state-hover)] group-active:before:opacity-[var(--state-pressed)]",
37
+ active ? "bg-[var(--color-secondary-container)] text-[var(--color-on-secondary-container)]" : "text-[var(--color-on-surface-variant)]"
38
+ ),
39
+ children: icon
40
+ }
41
+ ),
42
+ /* @__PURE__ */ jsx(
43
+ "span",
44
+ {
45
+ className: cn(
46
+ "text-label-md",
47
+ active ? "text-[var(--color-on-surface)]" : "text-[var(--color-on-surface-variant)]"
48
+ ),
49
+ children: label
50
+ }
51
+ )
52
+ ] });
53
+ const shared = {
54
+ ref,
55
+ "aria-current": active ? "page" : void 0,
56
+ className: cn(
57
+ "group flex w-full flex-col items-center gap-1 rounded-shape-container py-1 no-underline select-none outline-offset-0",
58
+ className
59
+ ),
60
+ ...props
61
+ };
62
+ return /* @__PURE__ */ jsx("li", { className: "w-full px-1", children: asChild && React.isValidElement(children) ? /* @__PURE__ */ jsx(Slot, { ...shared, children: React.cloneElement(children, void 0, inner) }) : /* @__PURE__ */ jsx("a", { ...shared, children: inner }) });
63
+ }
64
+ );
65
+ Item.displayName = "NavigationRail.Item";
66
+ var NavigationRail = { Root, Item };
67
+
68
+ export {
69
+ NavigationRail
70
+ };
@@ -1,7 +1,11 @@
1
1
  'use client';
2
+ import {
3
+ enterExit,
4
+ floatingSurface
5
+ } from "./chunk-KQPLFVFR.js";
2
6
  import {
3
7
  cn
4
- } from "./chunk-AT6RPKU3.js";
8
+ } from "./chunk-Q7G5WGYV.js";
5
9
 
6
10
  // src/components/HoverCard/HoverCard.tsx
7
11
  import * as React from "react";
@@ -17,8 +21,9 @@ var Content2 = React.forwardRef(
17
21
  ref,
18
22
  sideOffset,
19
23
  className: cn(
20
- "z-[var(--z-popover)] w-64 rounded-lg border border-[var(--color-border-default)]",
21
- "bg-[var(--color-bg-default)] p-4 shadow-md outline-none",
24
+ "z-[var(--z-popover)] w-64 p-4 outline-none",
25
+ floatingSurface,
26
+ enterExit,
22
27
  "data-[state=open]:animate-in data-[state=closed]:animate-out",
23
28
  "data-[state=open]:fade-in-0 data-[state=closed]:fade-out-0",
24
29
  "data-[state=open]:zoom-in-95 data-[state=closed]:zoom-out-95",
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import {
3
3
  cn
4
- } from "./chunk-AT6RPKU3.js";
4
+ } from "./chunk-Q7G5WGYV.js";
5
5
 
6
6
  // src/components/Skeleton/Skeleton.tsx
7
7
  import * as React from "react";
@@ -0,0 +1,47 @@
1
+ 'use client';
2
+ import {
3
+ DropdownMenu
4
+ } from "./chunk-7L3CGIRA.js";
5
+ import {
6
+ ButtonGroup
7
+ } from "./chunk-LGQ737BP.js";
8
+ import {
9
+ Button
10
+ } from "./chunk-LMPGHWUA.js";
11
+ import {
12
+ cn
13
+ } from "./chunk-Q7G5WGYV.js";
14
+
15
+ // src/components/SplitButton/SplitButton.tsx
16
+ import * as React from "react";
17
+ import { ChevronDown } from "@nexub/icons";
18
+ import { jsx, jsxs } from "react/jsx-runtime";
19
+ var SplitButton = React.forwardRef(
20
+ ({ menuLabel, menu, align = "end", variant, size, tone, disabled, loading, className, ...props }, ref) => {
21
+ const shared = { variant, size, tone, disabled: disabled || loading };
22
+ return /* @__PURE__ */ jsxs(ButtonGroup, { attached: true, className, children: [
23
+ /* @__PURE__ */ jsx(Button, { ref, ...shared, loading, ...props }),
24
+ /* @__PURE__ */ jsxs(DropdownMenu.Root, { modal: false, children: [
25
+ /* @__PURE__ */ jsx(DropdownMenu.Trigger, { asChild: true, children: /* @__PURE__ */ jsx(
26
+ Button,
27
+ {
28
+ ...shared,
29
+ "aria-label": menuLabel,
30
+ className: cn(
31
+ "px-3",
32
+ // The chevron flips while the menu is open.
33
+ "[&[data-state=open]>svg]:rotate-180 [&>svg]:transition-transform [&>svg]:duration-spatial-fast [&>svg]:ease-spatial-fast"
34
+ ),
35
+ children: /* @__PURE__ */ jsx(ChevronDown, { size: "sm", "aria-hidden": "true" })
36
+ }
37
+ ) }),
38
+ /* @__PURE__ */ jsx(DropdownMenu.Content, { align, children: menu })
39
+ ] })
40
+ ] });
41
+ }
42
+ );
43
+ SplitButton.displayName = "SplitButton";
44
+
45
+ export {
46
+ SplitButton
47
+ };
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import {
3
3
  cn
4
- } from "./chunk-AT6RPKU3.js";
4
+ } from "./chunk-Q7G5WGYV.js";
5
5
 
6
6
  // src/components/DataTable/DataTable.tsx
7
7
  import * as React from "react";
@@ -1,7 +1,15 @@
1
1
  'use client';
2
+ import {
3
+ enterExit,
4
+ floatingSurface,
5
+ menuContent,
6
+ menuItem,
7
+ menuLabel,
8
+ menuSeparator
9
+ } from "./chunk-KQPLFVFR.js";
2
10
  import {
3
11
  cn
4
- } from "./chunk-AT6RPKU3.js";
12
+ } from "./chunk-Q7G5WGYV.js";
5
13
 
6
14
  // src/components/ContextMenu/ContextMenu.tsx
7
15
  import * as React from "react";
@@ -21,8 +29,10 @@ var Content2 = React.forwardRef(
21
29
  {
22
30
  ref,
23
31
  className: cn(
24
- "z-[var(--z-popover)] min-w-48 rounded-lg border border-[var(--color-border-default)]",
25
- "bg-[var(--color-bg-default)] p-1 shadow-md outline-none",
32
+ "z-[var(--z-popover)] min-w-48 outline-none",
33
+ floatingSurface,
34
+ menuContent,
35
+ enterExit,
26
36
  "data-[state=open]:animate-in data-[state=closed]:animate-out",
27
37
  "data-[state=open]:fade-in-0 data-[state=closed]:fade-out-0",
28
38
  "data-[state=open]:zoom-in-95 data-[state=closed]:zoom-out-95",
@@ -35,9 +45,7 @@ var Content2 = React.forwardRef(
35
45
  );
36
46
  Content2.displayName = "ContextMenu.Content";
37
47
  var itemBaseClasses = cn(
38
- "relative flex cursor-default select-none items-center rounded-md px-2 py-1.5 text-sm outline-none",
39
- "transition-colors hover:bg-[var(--color-bg-subtle)] focus:bg-[var(--color-bg-subtle)]",
40
- "data-[disabled]:pointer-events-none data-[disabled]:opacity-50"
48
+ menuItem
41
49
  );
42
50
  var Item2 = React.forwardRef(
43
51
  function ContextMenuItem({ className, ...props }, ref) {
@@ -59,7 +67,7 @@ var Label2 = React.forwardRef(
59
67
  {
60
68
  ref,
61
69
  className: cn(
62
- "px-2 py-1 text-xs font-semibold text-[var(--color-text-muted)]",
70
+ menuLabel,
63
71
  className
64
72
  ),
65
73
  ...props
@@ -74,7 +82,7 @@ var Separator2 = React.forwardRef(
74
82
  RadixContextMenu.Separator,
75
83
  {
76
84
  ref,
77
- className: cn("-mx-1 my-1 h-px bg-[var(--color-border-default)]", className),
85
+ className: cn(menuSeparator, className),
78
86
  ...props
79
87
  }
80
88
  );
@@ -119,7 +127,7 @@ var SubTrigger2 = React.forwardRef(function ContextMenuSubTrigger({ className, c
119
127
  ref,
120
128
  className: cn(
121
129
  itemBaseClasses,
122
- "data-[state=open]:bg-[var(--color-bg-subtle)]",
130
+ "data-[state=open]:bg-[color-mix(in_srgb,var(--color-on-surface)_8%,transparent)]",
123
131
  className
124
132
  ),
125
133
  ...props,
@@ -137,8 +145,10 @@ var SubContent2 = React.forwardRef(function ContextMenuSubContent({ className, .
137
145
  {
138
146
  ref,
139
147
  className: cn(
140
- "z-[var(--z-popover)] min-w-48 rounded-lg border border-[var(--color-border-default)]",
141
- "bg-[var(--color-bg-default)] p-1 shadow-md outline-none",
148
+ "z-[var(--z-popover)] min-w-48 outline-none",
149
+ floatingSurface,
150
+ menuContent,
151
+ enterExit,
142
152
  "data-[state=open]:animate-in data-[state=closed]:animate-out",
143
153
  "data-[state=open]:fade-in-0 data-[state=closed]:fade-out-0",
144
154
  "data-[state=open]:zoom-in-95 data-[state=closed]:zoom-out-95",
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import {
3
3
  cn
4
- } from "./chunk-AT6RPKU3.js";
4
+ } from "./chunk-Q7G5WGYV.js";
5
5
 
6
6
  // src/components/Separator/Separator.tsx
7
7
  import * as React from "react";
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import {
3
3
  cn
4
- } from "./chunk-AT6RPKU3.js";
4
+ } from "./chunk-Q7G5WGYV.js";
5
5
 
6
6
  // src/components/RadioGroup/RadioGroup.tsx
7
7
  import * as React from "react";
@@ -17,14 +17,15 @@ var Item2 = React.forwardRef(
17
17
  {
18
18
  ref,
19
19
  className: cn(
20
- "aspect-square h-4 w-4 rounded-full border border-[var(--color-border-input)]",
21
- "text-[var(--color-brand-primary-500)]",
22
- "focus:outline-none focus-visible:ring-2 focus-visible:ring-[var(--color-ring-default)] focus-visible:ring-offset-2 ring-offset-[var(--color-ring-offset)]",
23
- "disabled:cursor-not-allowed disabled:opacity-50",
20
+ // 18px, 2px outline border (>= 3:1), primary ring + dot when on. Focus = the global ring.
21
+ "aspect-square h-[18px] w-[18px] shrink-0 rounded-full border-2 border-[var(--color-outline)]",
22
+ "transition-[border-color] duration-effects-fast ease-effects-fast",
23
+ "hover:border-[var(--color-on-surface)] data-[state=checked]:border-[var(--color-primary)]",
24
+ "disabled:cursor-not-allowed disabled:border-[var(--color-text-disabled)]",
24
25
  className
25
26
  ),
26
27
  ...props,
27
- children: /* @__PURE__ */ jsx(RadixRadioGroup.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ jsx("span", { className: "block h-2 w-2 rounded-full bg-[var(--color-brand-primary-500)]" }) })
28
+ children: /* @__PURE__ */ jsx(RadixRadioGroup.Indicator, { className: "flex items-center justify-center", children: /* @__PURE__ */ jsx("span", { className: "block h-2 w-2 rounded-full bg-[var(--color-primary)] [[data-disabled]_&]:bg-[var(--color-text-disabled)]" }) })
28
29
  }
29
30
  )
30
31
  );
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import {
3
3
  cn
4
- } from "./chunk-AT6RPKU3.js";
4
+ } from "./chunk-Q7G5WGYV.js";
5
5
 
6
6
  // src/components/ErrorState/ErrorState.tsx
7
7
  import * as React from "react";
@@ -1,7 +1,15 @@
1
1
  'use client';
2
+ import {
3
+ enterExit,
4
+ floatingSurface,
5
+ menuContent,
6
+ menuItem,
7
+ menuLabel,
8
+ menuSeparator
9
+ } from "./chunk-KQPLFVFR.js";
2
10
  import {
3
11
  cn
4
- } from "./chunk-AT6RPKU3.js";
12
+ } from "./chunk-Q7G5WGYV.js";
5
13
 
6
14
  // src/components/DropdownMenu/DropdownMenu.tsx
7
15
  import * as React from "react";
@@ -22,8 +30,10 @@ var Content2 = React.forwardRef(
22
30
  ref,
23
31
  sideOffset,
24
32
  className: cn(
25
- "z-[var(--z-popover)] min-w-48 rounded-lg border border-[var(--color-border-default)]",
26
- "bg-[var(--color-bg-default)] p-1 shadow-md outline-none",
33
+ "z-[var(--z-popover)] min-w-48 outline-none",
34
+ floatingSurface,
35
+ menuContent,
36
+ enterExit,
27
37
  "data-[state=open]:animate-in data-[state=closed]:animate-out",
28
38
  "data-[state=open]:fade-in-0 data-[state=closed]:fade-out-0",
29
39
  "data-[state=open]:zoom-in-95 data-[state=closed]:zoom-out-95",
@@ -38,9 +48,7 @@ var Content2 = React.forwardRef(
38
48
  );
39
49
  Content2.displayName = "DropdownMenu.Content";
40
50
  var itemBaseClasses = cn(
41
- "relative flex cursor-default select-none items-center rounded-md px-2 py-1.5 text-sm outline-none",
42
- "transition-colors hover:bg-[var(--color-bg-subtle)] focus:bg-[var(--color-bg-subtle)]",
43
- "data-[disabled]:pointer-events-none data-[disabled]:opacity-50"
51
+ menuItem
44
52
  );
45
53
  var Item2 = React.forwardRef(
46
54
  function DropdownMenuItem({ className, ...props }, ref) {
@@ -62,7 +70,7 @@ var Label2 = React.forwardRef(
62
70
  {
63
71
  ref,
64
72
  className: cn(
65
- "px-2 py-1 text-xs font-semibold text-[var(--color-text-muted)]",
73
+ menuLabel,
66
74
  className
67
75
  ),
68
76
  ...props
@@ -77,7 +85,7 @@ var Separator2 = React.forwardRef(
77
85
  RadixDropdownMenu.Separator,
78
86
  {
79
87
  ref,
80
- className: cn("-mx-1 my-1 h-px bg-[var(--color-border-default)]", className),
88
+ className: cn(menuSeparator, className),
81
89
  ...props
82
90
  }
83
91
  );
@@ -122,7 +130,7 @@ var SubTrigger2 = React.forwardRef(function DropdownMenuSubTrigger({ className,
122
130
  ref,
123
131
  className: cn(
124
132
  itemBaseClasses,
125
- "data-[state=open]:bg-[var(--color-bg-subtle)]",
133
+ "data-[state=open]:bg-[color-mix(in_srgb,var(--color-on-surface)_8%,transparent)]",
126
134
  className
127
135
  ),
128
136
  ...props,
@@ -140,8 +148,10 @@ var SubContent2 = React.forwardRef(function DropdownMenuSubContent({ className,
140
148
  {
141
149
  ref,
142
150
  className: cn(
143
- "z-[var(--z-popover)] min-w-48 rounded-lg border border-[var(--color-border-default)]",
144
- "bg-[var(--color-bg-default)] p-1 shadow-md outline-none",
151
+ "z-[var(--z-popover)] min-w-48 outline-none",
152
+ floatingSurface,
153
+ menuContent,
154
+ enterExit,
145
155
  "data-[state=open]:animate-in data-[state=closed]:animate-out",
146
156
  "data-[state=open]:fade-in-0 data-[state=closed]:fade-out-0",
147
157
  "data-[state=open]:zoom-in-95 data-[state=closed]:zoom-out-95",
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import {
3
3
  cn
4
- } from "./chunk-AT6RPKU3.js";
4
+ } from "./chunk-Q7G5WGYV.js";
5
5
 
6
6
  // src/components/Text/Text.tsx
7
7
  import * as React from "react";
@@ -0,0 +1,31 @@
1
+ 'use client';
2
+
3
+ // src/utils/control.ts
4
+ var field = [
5
+ "rounded-shape-field border border-[var(--color-border-input)]",
6
+ "bg-[var(--color-surface-container-lowest)] text-[var(--color-on-surface)]",
7
+ "transition-[border-color,box-shadow] duration-effects-fast ease-effects-fast",
8
+ "hover:border-[var(--color-on-surface-variant)]"
9
+ ].join(" ");
10
+ var fieldFocusWithin = "focus-within:border-[var(--color-primary)] focus-within:shadow-[inset_0_0_0_1px_var(--color-primary)] focus-within:hover:border-[var(--color-primary)]";
11
+ var fieldFocusVisible = "focus-visible:outline-none focus-visible:border-[var(--color-primary)] focus-visible:shadow-[inset_0_0_0_1px_var(--color-primary)]";
12
+ var fieldInvalid = [
13
+ "border-[var(--color-error)] hover:border-[var(--color-error)]",
14
+ "focus-within:border-[var(--color-error)] focus-within:shadow-[inset_0_0_0_1px_var(--color-error)] focus-within:hover:border-[var(--color-error)]",
15
+ "focus-visible:border-[var(--color-error)] focus-visible:shadow-[inset_0_0_0_1px_var(--color-error)]"
16
+ ].join(" ");
17
+ var fieldDisabledWithin = "has-[:disabled]:cursor-not-allowed has-[:disabled]:border-[var(--color-outline-variant)] has-[:disabled]:hover:border-[var(--color-outline-variant)] has-[:disabled]:bg-[var(--color-surface-container-low)] has-[:disabled]:text-[var(--color-text-disabled)]";
18
+ var pressable = "nx-state-layer nx-press rounded-shape-control select-none";
19
+ var disabledContainer = "disabled:pointer-events-none disabled:border-transparent disabled:bg-[color-mix(in_srgb,var(--color-on-surface)_12%,transparent)] disabled:text-[var(--color-text-disabled)] aria-disabled:pointer-events-none";
20
+ var disabledText = "disabled:pointer-events-none disabled:text-[var(--color-text-disabled)] aria-disabled:pointer-events-none";
21
+
22
+ export {
23
+ field,
24
+ fieldFocusWithin,
25
+ fieldFocusVisible,
26
+ fieldInvalid,
27
+ fieldDisabledWithin,
28
+ pressable,
29
+ disabledContainer,
30
+ disabledText
31
+ };