@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,10 +1,10 @@
1
1
  'use client';
2
2
  import {
3
3
  toggleVariants
4
- } from "./chunk-U3EGB3JL.js";
4
+ } from "./chunk-3TMIZQPR.js";
5
5
  import {
6
6
  cn
7
- } from "./chunk-AT6RPKU3.js";
7
+ } from "./chunk-Q7G5WGYV.js";
8
8
 
9
9
  // src/components/ToggleGroup/ToggleGroup.tsx
10
10
  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/Container/Container.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/Flag/Flag.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/ScrollArea/ScrollArea.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/Section/Section.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/Avatar/Avatar.tsx
7
7
  import * as React from "react";
@@ -0,0 +1,57 @@
1
+ 'use client';
2
+ import {
3
+ cn
4
+ } from "./chunk-Q7G5WGYV.js";
5
+
6
+ // src/components/Switch/Switch.tsx
7
+ import * as React from "react";
8
+ import * as RadixSwitch from "@radix-ui/react-switch";
9
+ import { cva } from "class-variance-authority";
10
+ import { jsx } from "react/jsx-runtime";
11
+ var switchVariants = cva(
12
+ // Off: tonal track with a 2px outline (>= 3:1, WCAG 1.4.11). On: primary.
13
+ // Focus = the global ring (it follows the capsule).
14
+ [
15
+ "peer inline-flex shrink-0 cursor-pointer items-center rounded-full border-2",
16
+ "transition-[background-color,border-color] duration-effects-fast ease-effects-fast",
17
+ "data-[state=unchecked]:bg-[var(--color-surface-container-highest)] data-[state=unchecked]:border-[var(--color-outline)]",
18
+ "data-[state=checked]:bg-[var(--color-primary)] data-[state=checked]:border-[var(--color-primary)]",
19
+ "disabled:cursor-not-allowed disabled:border-[var(--color-text-disabled)] disabled:bg-[color-mix(in_srgb,var(--color-on-surface)_12%,transparent)] disabled:data-[state=checked]:bg-[var(--color-text-disabled)] disabled:data-[state=checked]:border-transparent disabled:data-[state=unchecked]:border-[var(--color-outline-variant)]"
20
+ ],
21
+ {
22
+ variants: {
23
+ size: {
24
+ sm: "h-5 w-9",
25
+ md: "h-7 w-12",
26
+ lg: "h-8 w-14"
27
+ }
28
+ },
29
+ defaultVariants: { size: "md" }
30
+ }
31
+ );
32
+ var thumbVariants = cva(
33
+ // The thumb slides on the expressive spring (a toggle is a key moment).
34
+ [
35
+ "pointer-events-none block rounded-full shadow-elevation-1",
36
+ "transition-[transform,background-color] duration-expressive-fast ease-expressive-fast",
37
+ "translate-x-0.5 data-[state=unchecked]:bg-[var(--color-outline)] data-[state=checked]:bg-[var(--color-on-primary)] data-[disabled]:data-[state=unchecked]:bg-[var(--color-outline-variant)]"
38
+ ],
39
+ {
40
+ variants: {
41
+ size: {
42
+ sm: "h-3 w-3 data-[state=checked]:translate-x-[18px]",
43
+ md: "h-5 w-5 data-[state=checked]:translate-x-[22px]",
44
+ lg: "h-6 w-6 data-[state=checked]:translate-x-[26px]"
45
+ }
46
+ },
47
+ defaultVariants: { size: "md" }
48
+ }
49
+ );
50
+ var Switch = React.forwardRef(
51
+ ({ className, size, ...props }, ref) => /* @__PURE__ */ jsx(RadixSwitch.Root, { ref, className: cn(switchVariants({ size }), className), ...props, children: /* @__PURE__ */ jsx(RadixSwitch.Thumb, { className: cn(thumbVariants({ size })) }) })
52
+ );
53
+ Switch.displayName = "Switch";
54
+
55
+ export {
56
+ Switch
57
+ };
@@ -1,10 +1,14 @@
1
1
  'use client';
2
+ import {
3
+ enterExit,
4
+ floatingSurface
5
+ } from "./chunk-KQPLFVFR.js";
2
6
  import {
3
7
  glassSurfaceClass
4
- } from "./chunk-ROZVVWPV.js";
8
+ } from "./chunk-DEIBF3P7.js";
5
9
  import {
6
10
  cn
7
- } from "./chunk-AT6RPKU3.js";
11
+ } from "./chunk-Q7G5WGYV.js";
8
12
 
9
13
  // src/components/Popover/Popover.tsx
10
14
  import * as React from "react";
@@ -22,8 +26,9 @@ var Content2 = React.forwardRef(
22
26
  ref,
23
27
  sideOffset,
24
28
  className: cn(
25
- "z-[var(--z-popover)] rounded-lg border border-[var(--color-border-default)]",
26
- "bg-[var(--color-bg-default)] p-4 shadow-md",
29
+ "z-[var(--z-popover)] p-4 outline-none",
30
+ floatingSurface,
31
+ enterExit,
27
32
  "outline-none",
28
33
  "data-[state=open]:animate-in data-[state=closed]:animate-out",
29
34
  "data-[state=open]:fade-in-0 data-[state=closed]:fade-out-0",
@@ -1,26 +1,27 @@
1
1
  'use client';
2
2
  import {
3
3
  glassSurfaceClass
4
- } from "./chunk-ROZVVWPV.js";
4
+ } from "./chunk-DEIBF3P7.js";
5
5
  import {
6
6
  cn
7
- } from "./chunk-AT6RPKU3.js";
7
+ } from "./chunk-Q7G5WGYV.js";
8
8
 
9
9
  // src/components/TopNav/TopNav.tsx
10
10
  import * as React from "react";
11
11
  import { Slot } from "@radix-ui/react-slot";
12
12
  import { jsx } from "react/jsx-runtime";
13
13
  var Root = React.forwardRef(
14
- ({ className, children, surface = "solid", ...props }, ref) => /* @__PURE__ */ jsx(
14
+ ({ className, children, surface = "solid", scrollEdge, ...props }, ref) => /* @__PURE__ */ jsx(
15
15
  "header",
16
16
  {
17
17
  ref,
18
18
  className: cn(
19
- "sticky top-0 z-[var(--z-sticky,100)] flex h-[var(--size-nav-header,64px)] items-center border-b border-[var(--color-border-default)] bg-[var(--color-bg-default)] px-4",
19
+ "sticky top-0 z-[var(--z-sticky,100)] flex h-[var(--size-nav-header,64px)] items-center border-b border-[var(--color-outline-variant)] bg-[var(--color-surface)] px-4",
20
20
  surface === "glass" && glassSurfaceClass,
21
21
  className
22
22
  ),
23
23
  "data-material": surface === "glass" ? "glass" : void 0,
24
+ "data-scroll-edge": scrollEdge,
24
25
  ...props,
25
26
  children: /* @__PURE__ */ jsx("div", { className: "flex w-full items-center gap-4", children })
26
27
  }
@@ -55,8 +56,8 @@ var Item = React.forwardRef(
55
56
  ref,
56
57
  "aria-current": active ? "page" : void 0,
57
58
  className: cn(
58
- "inline-flex h-9 shrink-0 items-center rounded-md px-4 text-sm font-medium transition-colors",
59
- active ? "bg-[var(--color-bg-subtle)] text-[var(--color-text-primary)]" : "text-[var(--color-text-muted)] hover:bg-[var(--color-bg-subtle)] hover:text-[var(--color-text-primary)]",
59
+ "nx-state-layer relative inline-flex h-control-sm shrink-0 items-center rounded-shape-control px-3.5 text-label-lg",
60
+ active ? "bg-[var(--color-secondary-container)] text-[var(--color-on-secondary-container)]" : "text-[var(--color-on-surface-variant)]",
60
61
  className
61
62
  ),
62
63
  ...props
@@ -0,0 +1,35 @@
1
+ 'use client';
2
+ import {
3
+ cn
4
+ } from "./chunk-Q7G5WGYV.js";
5
+
6
+ // src/components/Checkbox/Checkbox.tsx
7
+ import * as React from "react";
8
+ import * as RadixCheckbox from "@radix-ui/react-checkbox";
9
+ import { Check, Minus } from "@nexub/icons";
10
+ import { jsx } from "react/jsx-runtime";
11
+ var Checkbox = React.forwardRef(
12
+ ({ className, ...props }, ref) => /* @__PURE__ */ jsx(
13
+ RadixCheckbox.Root,
14
+ {
15
+ ref,
16
+ className: cn(
17
+ // 18px, 2px outline border (>= 3:1), primary when on. Focus = the global ring.
18
+ "peer h-[18px] w-[18px] shrink-0 rounded-[5px] border-2 border-[var(--color-outline)]",
19
+ "transition-[background-color,border-color] duration-effects-fast ease-effects-fast",
20
+ "hover:border-[var(--color-on-surface)]",
21
+ "data-[state=checked]:bg-[var(--color-primary)] data-[state=checked]:border-[var(--color-primary)] data-[state=checked]:text-[var(--color-on-primary)]",
22
+ "data-[state=indeterminate]:bg-[var(--color-primary)] data-[state=indeterminate]:border-[var(--color-primary)] data-[state=indeterminate]:text-[var(--color-on-primary)]",
23
+ "disabled:cursor-not-allowed disabled:border-[var(--color-text-disabled)] disabled:data-[state=checked]:bg-[var(--color-text-disabled)] disabled:data-[state=indeterminate]:bg-[var(--color-text-disabled)] disabled:text-[var(--color-surface)]",
24
+ className
25
+ ),
26
+ ...props,
27
+ children: /* @__PURE__ */ jsx(RadixCheckbox.Indicator, { className: "flex items-center justify-center", children: props.checked === "indeterminate" ? /* @__PURE__ */ jsx(Minus, { size: "xs" }) : /* @__PURE__ */ jsx(Check, { size: "xs" }) })
28
+ }
29
+ )
30
+ );
31
+ Checkbox.displayName = "Checkbox";
32
+
33
+ export {
34
+ Checkbox
35
+ };
@@ -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/FileUpload/FileUpload.tsx
7
7
  import * as React from "react";
@@ -1,10 +1,10 @@
1
1
  'use client';
2
2
  import {
3
3
  Kbd
4
- } from "./chunk-PER3O4FD.js";
4
+ } from "./chunk-A4IMFAZX.js";
5
5
  import {
6
6
  cn
7
- } from "./chunk-AT6RPKU3.js";
7
+ } from "./chunk-Q7G5WGYV.js";
8
8
 
9
9
  // src/components/KeyboardShortcut/KeyboardShortcut.tsx
10
10
  import * as React from "react";
@@ -0,0 +1 @@
1
+ 'use client';
@@ -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/Code/Code.tsx
7
7
  import * as React from "react";
@@ -1,40 +1,14 @@
1
1
  'use client';
2
2
  import {
3
- useIsomorphicLayoutEffect
4
- } from "./chunk-NHUQLIHL.js";
3
+ useControllableState
4
+ } from "./chunk-JLUCMNVS.js";
5
5
  import {
6
6
  cn
7
- } from "./chunk-AT6RPKU3.js";
7
+ } from "./chunk-Q7G5WGYV.js";
8
8
 
9
9
  // src/components/Rating/Rating.tsx
10
10
  import * as React from "react";
11
11
  import { cva } from "class-variance-authority";
12
-
13
- // src/hooks/useControllableState.ts
14
- import { useState, useCallback, useRef } from "react";
15
- function useControllableState({
16
- value: controlledValue,
17
- defaultValue,
18
- onChange
19
- }) {
20
- const [uncontrolled, setUncontrolled] = useState(defaultValue);
21
- const isControlled = controlledValue !== void 0;
22
- const value = isControlled ? controlledValue : uncontrolled;
23
- const onChangeRef = useRef(onChange);
24
- useIsomorphicLayoutEffect(() => {
25
- onChangeRef.current = onChange;
26
- });
27
- const setValue = useCallback(
28
- (next) => {
29
- if (!isControlled) setUncontrolled(next);
30
- onChangeRef.current?.(next);
31
- },
32
- [isControlled]
33
- );
34
- return [value, setValue];
35
- }
36
-
37
- // src/components/Rating/Rating.tsx
38
12
  import { jsx } from "react/jsx-runtime";
39
13
  var ratingVariants = cva("inline-flex items-center gap-0.5", {
40
14
  variants: {
@@ -147,7 +121,6 @@ function StarIcon({ filled, ...props }) {
147
121
  }
148
122
 
149
123
  export {
150
- useControllableState,
151
124
  ratingVariants,
152
125
  Rating
153
126
  };
@@ -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/GradientDivider/GradientDivider.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/Alert/Alert.tsx
7
7
  import * as React from "react";
@@ -1,7 +1,13 @@
1
1
  'use client';
2
+ import {
3
+ field,
4
+ fieldDisabledWithin,
5
+ fieldFocusWithin,
6
+ fieldInvalid
7
+ } from "./chunk-7SXR4PGO.js";
2
8
  import {
3
9
  cn
4
- } from "./chunk-AT6RPKU3.js";
10
+ } from "./chunk-Q7G5WGYV.js";
5
11
 
6
12
  // src/components/Input/Input.tsx
7
13
  import * as React from "react";
@@ -16,15 +22,16 @@ var inputVariants = cva(
16
22
  "outline-none focus:outline-none focus-visible:outline-none",
17
23
  "ring-0 focus:ring-0 focus-visible:ring-0",
18
24
  "placeholder:text-[var(--color-text-placeholder)]",
19
- "text-[var(--color-text-primary)]",
20
- "disabled:opacity-50 disabled:cursor-not-allowed"
25
+ "text-[var(--color-on-surface)]",
26
+ "disabled:cursor-not-allowed disabled:text-[var(--color-text-disabled)]"
21
27
  ],
22
28
  {
23
29
  variants: {
30
+ // 16px from md up: readable, and iOS doesn't zoom on focus.
24
31
  size: {
25
- sm: "text-sm",
26
- md: "text-sm",
27
- lg: "text-base"
32
+ sm: "text-body-sm",
33
+ md: "text-body-md",
34
+ lg: "text-body-md"
28
35
  }
29
36
  },
30
37
  defaultVariants: {
@@ -34,23 +41,21 @@ var inputVariants = cva(
34
41
  );
35
42
  var inputWrapperVariants = cva(
36
43
  [
37
- "flex items-center w-full rounded-md border bg-[var(--color-bg-default)] transition-colors",
38
- "border-[var(--color-border-input)]",
39
- // On focus: the border shifts to the ring color and the ring is a
40
- // semi-transparent halo. One hard 1 px border + one soft 2 px glow =
41
- // a single clean focus indicator. No double ring.
42
- "focus-within:outline-none focus-within:border-[var(--color-ring-default)] focus-within:ring-2 focus-within:ring-[color-mix(in_srgb,var(--color-ring-default)_25%,transparent)]",
43
- "has-[:disabled]:opacity-50 has-[:disabled]:cursor-not-allowed"
44
+ // The wrapper is the field: one border that thickens to 2px primary on focus.
45
+ "flex items-center w-full",
46
+ field,
47
+ fieldFocusWithin,
48
+ fieldDisabledWithin
44
49
  ],
45
50
  {
46
51
  variants: {
47
52
  size: {
48
- sm: "h-8 px-3 gap-1.5",
49
- md: "h-9 px-3 gap-2",
50
- lg: "h-10 px-4 gap-2"
53
+ sm: "h-control-sm px-3 gap-1.5",
54
+ md: "h-control-md px-3.5 gap-2",
55
+ lg: "h-control-lg px-4 gap-2"
51
56
  },
52
57
  invalid: {
53
- true: "border-[var(--color-danger-500)] focus-within:border-[var(--color-danger-500)] focus-within:ring-[color-mix(in_srgb,var(--color-danger-500)_25%,transparent)]"
58
+ true: fieldInvalid
54
59
  }
55
60
  },
56
61
  defaultVariants: {
@@ -60,14 +65,14 @@ var inputWrapperVariants = cva(
60
65
  );
61
66
  var addonVariants = cva(
62
67
  [
63
- "flex items-center self-stretch px-3 text-[var(--color-text-muted)] bg-[var(--color-bg-subtle)]",
64
- "border-[var(--color-border-default)] shrink-0"
68
+ "flex items-center self-stretch px-3 text-[var(--color-on-surface-variant)] bg-[var(--color-surface-container-high)]",
69
+ "border-[var(--color-outline-variant)] shrink-0"
65
70
  ],
66
71
  {
67
72
  variants: {
68
73
  side: {
69
- leading: "border-r rounded-l-md",
70
- trailing: "border-l rounded-r-md"
74
+ leading: "border-r",
75
+ trailing: "border-l"
71
76
  }
72
77
  }
73
78
  }
@@ -97,20 +102,20 @@ var Input = React.forwardRef(
97
102
  }
98
103
  );
99
104
  if (hasAddon) {
100
- return /* @__PURE__ */ jsxs("div", { className: cn("flex w-full rounded-md overflow-hidden border border-[var(--color-border-input)]", invalid && "border-[var(--color-danger-500)]"), children: [
105
+ return /* @__PURE__ */ jsxs("div", { className: cn("flex w-full overflow-hidden", field, fieldFocusWithin, invalid && fieldInvalid), children: [
101
106
  leadingAddon && /* @__PURE__ */ jsx("span", { className: cn(addonVariants({ side: "leading" })), children: leadingAddon }),
102
- /* @__PURE__ */ jsxs("div", { className: cn(inputWrapperVariants({ size, invalid }), "rounded-none border-0 ring-offset-0", wrapperClassName), children: [
103
- leadingIcon && /* @__PURE__ */ jsx("span", { className: "shrink-0 text-[var(--color-text-muted)]", children: leadingIcon }),
107
+ /* @__PURE__ */ jsxs("div", { className: cn(inputWrapperVariants({ size, invalid }), "rounded-none border-0 shadow-none focus-within:shadow-none", wrapperClassName), children: [
108
+ leadingIcon && /* @__PURE__ */ jsx("span", { className: "shrink-0 text-[var(--color-on-surface-variant)]", children: leadingIcon }),
104
109
  inputEl,
105
- trailingIcon && /* @__PURE__ */ jsx("span", { className: "shrink-0 text-[var(--color-text-muted)]", children: trailingIcon })
110
+ trailingIcon && /* @__PURE__ */ jsx("span", { className: "shrink-0 text-[var(--color-on-surface-variant)]", children: trailingIcon })
106
111
  ] }),
107
112
  trailingAddon && /* @__PURE__ */ jsx("span", { className: cn(addonVariants({ side: "trailing" })), children: trailingAddon })
108
113
  ] });
109
114
  }
110
115
  return /* @__PURE__ */ jsxs("div", { className: cn(inputWrapperVariants({ size, invalid }), wrapperClassName), children: [
111
- leadingIcon && /* @__PURE__ */ jsx("span", { className: "shrink-0 text-[var(--color-text-muted)]", children: leadingIcon }),
116
+ leadingIcon && /* @__PURE__ */ jsx("span", { className: "shrink-0 text-[var(--color-on-surface-variant)]", children: leadingIcon }),
112
117
  inputEl,
113
- trailingIcon && /* @__PURE__ */ jsx("span", { className: "shrink-0 text-[var(--color-text-muted)]", children: trailingIcon })
118
+ trailingIcon && /* @__PURE__ */ jsx("span", { className: "shrink-0 text-[var(--color-on-surface-variant)]", children: trailingIcon })
114
119
  ] });
115
120
  }
116
121
  );
@@ -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/StatusPill/StatusPill.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/Pagination/Pagination.tsx
7
7
  import * as React from "react";
@@ -0,0 +1,32 @@
1
+ 'use client';
2
+ import {
3
+ useIsomorphicLayoutEffect
4
+ } from "./chunk-NHUQLIHL.js";
5
+
6
+ // src/hooks/useControllableState.ts
7
+ import { useState, useCallback, useRef } from "react";
8
+ function useControllableState({
9
+ value: controlledValue,
10
+ defaultValue,
11
+ onChange
12
+ }) {
13
+ const [uncontrolled, setUncontrolled] = useState(defaultValue);
14
+ const isControlled = controlledValue !== void 0;
15
+ const value = isControlled ? controlledValue : uncontrolled;
16
+ const onChangeRef = useRef(onChange);
17
+ useIsomorphicLayoutEffect(() => {
18
+ onChangeRef.current = onChange;
19
+ });
20
+ const setValue = useCallback(
21
+ (next) => {
22
+ if (!isControlled) setUncontrolled(next);
23
+ onChangeRef.current?.(next);
24
+ },
25
+ [isControlled]
26
+ );
27
+ return [value, setValue];
28
+ }
29
+
30
+ export {
31
+ useControllableState
32
+ };
@@ -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/Table/Table.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/Tooltip/Tooltip.tsx
7
7
  import * as React from "react";
@@ -18,7 +18,8 @@ var Content2 = React.forwardRef(
18
18
  ref,
19
19
  sideOffset,
20
20
  className: cn(
21
- "z-[1500] rounded bg-[var(--color-neutral-900)] px-2 py-1 text-xs text-white",
21
+ "z-[var(--z-tooltip,1800)] rounded-shape-tooltip bg-[var(--color-inverse-surface)] px-2.5 py-1.5 text-label-md text-[var(--color-inverse-on-surface)] shadow-elevation-1",
22
+ "duration-effects-fast ease-effects-fast",
22
23
  "data-[state=delayed-open]:animate-in data-[state=closed]:animate-out",
23
24
  "data-[state=delayed-open]:fade-in-0 data-[state=closed]:fade-out-0",
24
25
  "data-[state=delayed-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/FormError/FormError.tsx
7
7
  import * as React from "react";
@@ -0,0 +1,27 @@
1
+ 'use client';
2
+
3
+ // src/utils/surface.ts
4
+ var overlaySurface = "rounded-shape-overlay bg-[var(--color-surface-elevated)] text-[var(--color-on-surface)] shadow-elevation-3";
5
+ var floatingSurface = "rounded-shape-container bg-[var(--color-surface-elevated)] text-[var(--color-on-surface)] shadow-elevation-2";
6
+ var menuContent = "p-1.5";
7
+ var menuItem = [
8
+ "relative flex cursor-default select-none items-center gap-2 rounded-[10px] px-2.5 py-2 text-body-sm text-[var(--color-on-surface)] outline-none",
9
+ // Highlight = the on-surface state layer at hover opacity.
10
+ "focus:bg-[color-mix(in_srgb,var(--color-on-surface)_8%,transparent)] data-[highlighted]:bg-[color-mix(in_srgb,var(--color-on-surface)_8%,transparent)]",
11
+ "data-[disabled]:pointer-events-none data-[disabled]:text-[var(--color-text-disabled)]"
12
+ ].join(" ");
13
+ var menuSeparator = "-mx-1.5 my-1.5 h-px bg-[var(--color-outline-variant)]";
14
+ var menuLabel = "px-2.5 py-1.5 text-label-sm text-[var(--color-on-surface-muted)]";
15
+ var enterExit = "duration-spatial-default ease-spatial-default data-[state=closed]:duration-effects-fast data-[state=closed]:ease-effects-fast";
16
+ var scrim = "bg-[color-mix(in_srgb,var(--color-scrim,#000)_40%,transparent)]";
17
+
18
+ export {
19
+ overlaySurface,
20
+ floatingSurface,
21
+ menuContent,
22
+ menuItem,
23
+ menuSeparator,
24
+ menuLabel,
25
+ enterExit,
26
+ scrim
27
+ };
@@ -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/Logo/Logo.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/ButtonGroup/ButtonGroup.tsx
7
7
  import * as React from "react";
@@ -18,18 +18,12 @@ var ButtonGroup = React.forwardRef(
18
18
  className: cn(
19
19
  "flex",
20
20
  orientation === "vertical" ? "flex-col" : "flex-row",
21
+ // Connected (M3 Expressive): capsule outer ends, small inner corners, a 2px
22
+ // seam between segments so each keeps its own state layer and focus ring.
21
23
  attached ? [
22
- "gap-0",
23
- "[&>*:not(:first-child):not(:last-child)]:rounded-none",
24
- orientation === "horizontal" ? [
25
- "[&>*:first-child]:rounded-r-none",
26
- "[&>*:last-child]:rounded-l-none",
27
- "[&>*:not(:first-child)]:border-l-0"
28
- ] : [
29
- "[&>*:first-child]:rounded-b-none",
30
- "[&>*:last-child]:rounded-t-none",
31
- "[&>*:not(:first-child)]:border-t-0"
32
- ]
24
+ "gap-0.5",
25
+ "[&>*:not(:first-child):not(:last-child)]:rounded-[6px]",
26
+ orientation === "horizontal" ? ["[&>*:first-child]:rounded-r-[6px]", "[&>*:last-child]:rounded-l-[6px]"] : ["[&>*:first-child]:rounded-b-[6px]", "[&>*:last-child]:rounded-t-[6px]"]
33
27
  ] : "gap-2",
34
28
  className
35
29
  ),
@@ -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/DatePicker/DatePicker.tsx
7
7
  import * as React from "react";