@nexub/react 1.5.1 → 1.7.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 (207) hide show
  1. package/dist/chunk-24ZFAXB2.js +101 -0
  2. package/dist/{chunk-XR4NBY54.js → chunk-2DYKENBM.js} +10 -10
  3. package/dist/{chunk-SVQCINRE.js → chunk-2I7FIU6R.js} +5 -2
  4. package/dist/{chunk-S46W2QER.js → chunk-37L5ERUJ.js} +17 -11
  5. package/dist/{chunk-CWS37T3K.js → chunk-3E7X3YK3.js} +4 -2
  6. package/dist/{chunk-EZ23IA3H.js → chunk-3LTB6TGN.js} +4 -4
  7. package/dist/chunk-3QD76BKT.js +80 -0
  8. package/dist/{chunk-PQ6GU7SG.js → chunk-4HQFOIZW.js} +20 -14
  9. package/dist/{chunk-RLE5RN3T.js → chunk-4NFUBFYK.js} +15 -11
  10. package/dist/{chunk-B54WADL4.js → chunk-4P2JJ2FH.js} +12 -12
  11. package/dist/{chunk-I4BHRVRL.js → chunk-4UBVU53C.js} +9 -5
  12. package/dist/chunk-52ZVJPF7.js +1 -0
  13. package/dist/chunk-5QEARXY3.js +55 -0
  14. package/dist/chunk-643EYCLL.js +54 -0
  15. package/dist/{chunk-CNNJFWFA.js → chunk-6BGUZQAX.js} +4 -4
  16. package/dist/{chunk-LDYD7WL3.js → chunk-6ECOCGZG.js} +4 -3
  17. package/dist/{chunk-3AXIMXDU.js → chunk-6JBQAJJD.js} +6 -12
  18. package/dist/{chunk-YRDCY6BI.js → chunk-6UKNUI46.js} +0 -19
  19. package/dist/chunk-77LYWSJW.js +85 -0
  20. package/dist/{chunk-NCRFKPA4.js → chunk-7MSIOYJZ.js} +6 -8
  21. package/dist/{chunk-GIGOTRXX.js → chunk-7VJABRKB.js} +3 -10
  22. package/dist/{chunk-6QLLH6ID.js → chunk-7XWJCFWI.js} +8 -17
  23. package/dist/chunk-A3O23F2B.js +1 -0
  24. package/dist/chunk-AGYGWU6C.js +88 -0
  25. package/dist/chunk-AT2DSFP3.js +47 -0
  26. package/dist/{chunk-IIPYF6ZQ.js → chunk-B254JXS7.js} +16 -13
  27. package/dist/{chunk-GRB6T2TT.js → chunk-BSL62LBX.js} +19 -13
  28. package/dist/{chunk-GHCV6UXG.js → chunk-BTYDDKRQ.js} +5 -5
  29. package/dist/chunk-C6JRJ6JW.js +167 -0
  30. package/dist/chunk-CAOLGXA5.js +1 -0
  31. package/dist/{chunk-OJ2TLWYD.js → chunk-CKFRMCZ7.js} +5 -3
  32. package/dist/{chunk-LZB3KTSH.js → chunk-CQWYZPPJ.js} +1 -1
  33. package/dist/{chunk-6RBNM5RO.js → chunk-CUOASXI7.js} +10 -10
  34. package/dist/{chunk-HG6HTUWU.js → chunk-CV5ZKED7.js} +2 -2
  35. package/dist/{chunk-HJERFB7J.js → chunk-DDRYT3SY.js} +2 -2
  36. package/dist/chunk-DGCAM2UJ.js +60 -0
  37. package/dist/{chunk-FD7YU53N.js → chunk-DT3QGFXB.js} +4 -4
  38. package/dist/chunk-F73DTG2V.js +123 -0
  39. package/dist/{chunk-Z3IG5WRA.js → chunk-FJUVYRNT.js} +3 -3
  40. package/dist/{chunk-KQPLFVFR.js → chunk-FLZD7HQY.js} +0 -2
  41. package/dist/chunk-GG54WBLA.js +134 -0
  42. package/dist/{chunk-64JDZWCV.js → chunk-GRKCUQG4.js} +6 -5
  43. package/dist/{chunk-YPHNHQYQ.js → chunk-GWDEKW7P.js} +6 -2
  44. package/dist/{chunk-4I5ULCYG.js → chunk-HFTS5AN7.js} +3 -3
  45. package/dist/{chunk-GUB7YKG2.js → chunk-I4U36P54.js} +6 -3
  46. package/dist/{chunk-BTRTORKU.js → chunk-I6CAF7C5.js} +6 -7
  47. package/dist/{chunk-TJCHA3OI.js → chunk-J65MK3N4.js} +7 -4
  48. package/dist/{chunk-IK23Q2OF.js → chunk-JHVYI5GK.js} +3 -3
  49. package/dist/{chunk-J6TU45KP.js → chunk-JSBNYRO4.js} +26 -12
  50. package/dist/chunk-K5FKEAAK.js +94 -0
  51. package/dist/{chunk-5URGARPH.js → chunk-KE4YVG5Q.js} +6 -10
  52. package/dist/{chunk-QCNLE27O.js → chunk-KRCLK5O4.js} +11 -7
  53. package/dist/{chunk-A4IMFAZX.js → chunk-LESI7J7B.js} +3 -3
  54. package/dist/chunk-MLT7SA3T.js +171 -0
  55. package/dist/chunk-MNEXMMLM.js +23 -0
  56. package/dist/{chunk-PVTACENM.js → chunk-MTK3GHDQ.js} +2 -2
  57. package/dist/chunk-MYP5ZTC3.js +169 -0
  58. package/dist/chunk-NA5UMOE5.js +55 -0
  59. package/dist/chunk-NAJKIBU2.js +163 -0
  60. package/dist/{chunk-WESZPFBZ.js → chunk-NERAWEIQ.js} +7 -4
  61. package/dist/{chunk-YJ3JQYAN.js → chunk-NGQKBDHA.js} +5 -13
  62. package/dist/{chunk-7Q7ZF6BY.js → chunk-NNIFOMIH.js} +18 -8
  63. package/dist/{chunk-7L3CGIRA.js → chunk-NQPGELMP.js} +8 -19
  64. package/dist/{chunk-5O34ZNC3.js → chunk-NYWD5SI4.js} +19 -13
  65. package/dist/chunk-NZR4UGUZ.js +143 -0
  66. package/dist/{chunk-6J3QTWKC.js → chunk-NZT4TTNV.js} +18 -9
  67. package/dist/{chunk-JSD3H7WV.js → chunk-OYCK6BRG.js} +6 -6
  68. package/dist/{chunk-2555JXCP.js → chunk-PBPUSRTJ.js} +19 -11
  69. package/dist/{chunk-QD7H3WV3.js → chunk-PGDXFBKT.js} +8 -8
  70. package/dist/{chunk-NIX4SEKM.js → chunk-PREMZMLU.js} +7 -4
  71. package/dist/{chunk-4SSUM4CL.js → chunk-QUNH4BFR.js} +9 -6
  72. package/dist/{chunk-FHFVBOF3.js → chunk-QUYOV2ZJ.js} +6 -4
  73. package/dist/{chunk-KM6Z3VTI.js → chunk-QVTVDL6Y.js} +1 -1
  74. package/dist/{chunk-XI63BK3S.js → chunk-RATKKN3F.js} +3 -3
  75. package/dist/chunk-RM7MTOT5.js +339 -0
  76. package/dist/{chunk-DJZZ3FIP.js → chunk-RUR57JZQ.js} +5 -14
  77. package/dist/{chunk-ZV3AF5CL.js → chunk-S2CTBFLN.js} +13 -2
  78. package/dist/{chunk-72I7EVOL.js → chunk-SYZADSLI.js} +10 -6
  79. package/dist/{chunk-W2NEXOTG.js → chunk-T7RLPFGX.js} +2 -2
  80. package/dist/chunk-TAVVXXGO.js +131 -0
  81. package/dist/{chunk-BFRX6X4O.js → chunk-TZ6KJIR4.js} +23 -17
  82. package/dist/{chunk-V3TETH4J.js → chunk-U2ZYPPRG.js} +17 -16
  83. package/dist/{chunk-AHT35UWY.js → chunk-UTLKZPKJ.js} +10 -6
  84. package/dist/{chunk-OJRSPDNJ.js → chunk-VD4RFTNV.js} +8 -14
  85. package/dist/chunk-VLQGQFW7.js +110 -0
  86. package/dist/{chunk-RTDUTWJ4.js → chunk-VMT7Y3AT.js} +5 -8
  87. package/dist/{chunk-AXOKFS4K.js → chunk-W3KO3JNZ.js} +20 -4
  88. package/dist/{chunk-LGQ737BP.js → chunk-WHTLXQB6.js} +1 -1
  89. package/dist/chunk-WLRRMT6W.js +1 -0
  90. package/dist/{chunk-2FCSWBSM.js → chunk-WMWX6DPB.js} +3 -3
  91. package/dist/{chunk-UMC64NCT.js → chunk-WVBGQCYC.js} +6 -3
  92. package/dist/{chunk-TEOLG3N2.js → chunk-X4BQHXLB.js} +10 -6
  93. package/dist/{chunk-SY6V3HAK.js → chunk-XDU27NRX.js} +3 -3
  94. package/dist/{chunk-KA2J5OBA.js → chunk-XQDD76EF.js} +4 -7
  95. package/dist/chunk-XTATJMY6.js +64 -0
  96. package/dist/chunk-XYXMPHND.js +1 -0
  97. package/dist/{chunk-7ZWBHHRK.js → chunk-YNU6VRD5.js} +23 -32
  98. package/dist/{chunk-6SJPVQQW.js → chunk-Z3HF6XJ3.js} +1 -1
  99. package/dist/{chunk-I4URNMI7.js → chunk-ZC4MZAEX.js} +9 -7
  100. package/dist/{chunk-PWBPHGM3.js → chunk-ZCEUVK2R.js} +2 -2
  101. package/dist/{chunk-NQVRF4RB.js → chunk-ZMJ54TG6.js} +16 -13
  102. package/dist/chunk-ZT3NWE5U.js +1 -0
  103. package/dist/{chunk-RHOYF7MO.js → chunk-ZTLALVWA.js} +6 -15
  104. package/dist/components/Accordion/index.js +1 -1
  105. package/dist/components/Alert/index.js +2 -1
  106. package/dist/components/AlertDialog/index.js +3 -3
  107. package/dist/components/Amount/index.js +3 -1
  108. package/dist/components/AspectRatio/index.js +1 -1
  109. package/dist/components/Autocomplete/index.js +3 -2
  110. package/dist/components/Avatar/index.js +1 -1
  111. package/dist/components/AvatarGroup/index.js +3 -2
  112. package/dist/components/Badge/index.js +1 -1
  113. package/dist/components/Banner/index.js +2 -1
  114. package/dist/components/Breadcrumb/index.js +2 -1
  115. package/dist/components/Button/index.js +1 -1
  116. package/dist/components/ButtonGroup/index.js +1 -1
  117. package/dist/components/Callout/index.js +1 -1
  118. package/dist/components/Card/index.js +3 -1
  119. package/dist/components/CheckList/index.js +1 -1
  120. package/dist/components/Checkbox/index.js +1 -1
  121. package/dist/components/CheckboxCard/index.js +9 -0
  122. package/dist/components/Chip/index.js +2 -1
  123. package/dist/components/Citation/index.js +17 -0
  124. package/dist/components/Code/index.js +1 -1
  125. package/dist/components/Combobox/index.js +1 -1
  126. package/dist/components/CommandPalette/index.js +3 -2
  127. package/dist/components/ContextMenu/index.js +2 -2
  128. package/dist/components/CountryBadge/index.js +1 -1
  129. package/dist/components/DataTable/index.js +2 -1
  130. package/dist/components/DatePicker/index.js +5 -1
  131. package/dist/components/DateRangePicker/index.js +5 -1
  132. package/dist/components/Dialog/index.js +2 -2
  133. package/dist/components/Drawer/index.js +2 -2
  134. package/dist/components/DropdownMenu/index.js +2 -2
  135. package/dist/components/EmptyState/index.js +1 -1
  136. package/dist/components/ErrorState/index.js +2 -1
  137. package/dist/components/EyebrowChip/index.js +4 -1
  138. package/dist/components/FileUpload/index.js +2 -1
  139. package/dist/components/FilterChip/index.js +3 -1
  140. package/dist/components/Flex/index.js +2 -1
  141. package/dist/components/FormError/index.js +1 -1
  142. package/dist/components/FormField/index.js +7 -4
  143. package/dist/components/GradientDivider/index.js +1 -1
  144. package/dist/components/Grid/index.js +2 -1
  145. package/dist/components/Heading/index.js +4 -1
  146. package/dist/components/HelperText/index.js +4 -1
  147. package/dist/components/HoverCard/index.js +3 -2
  148. package/dist/components/IconButton/index.js +2 -1
  149. package/dist/components/Input/index.js +1 -1
  150. package/dist/components/Kbd/index.js +1 -1
  151. package/dist/components/KeyboardShortcut/index.js +2 -2
  152. package/dist/components/Label/index.js +4 -1
  153. package/dist/components/Link/index.js +1 -1
  154. package/dist/components/Logo/index.js +1 -1
  155. package/dist/components/MediaCard/index.js +9 -0
  156. package/dist/components/Menubar/index.js +2 -2
  157. package/dist/components/MessageBubble/index.js +18 -0
  158. package/dist/components/MoneyInput/index.js +3 -2
  159. package/dist/components/NavigationMenu/index.js +2 -2
  160. package/dist/components/NavigationRail/index.js +2 -1
  161. package/dist/components/NexubProvider/index.js +14 -0
  162. package/dist/components/NumberInput/index.js +3 -2
  163. package/dist/components/NumberTicker/index.js +10 -0
  164. package/dist/components/PageHeader/index.js +1 -1
  165. package/dist/components/Pagination/index.js +3 -1
  166. package/dist/components/PasswordInput/index.js +3 -2
  167. package/dist/components/Popover/index.js +2 -2
  168. package/dist/components/Progress/index.js +2 -1
  169. package/dist/components/PromptInput/index.js +15 -0
  170. package/dist/components/RadioCard/index.js +11 -0
  171. package/dist/components/RadioGroup/index.js +1 -1
  172. package/dist/components/Rating/index.js +2 -1
  173. package/dist/components/ScrollArea/index.js +1 -1
  174. package/dist/components/SearchInput/index.js +3 -2
  175. package/dist/components/Section/index.js +1 -1
  176. package/dist/components/SegmentedControl/index.js +3 -2
  177. package/dist/components/Select/index.js +2 -2
  178. package/dist/components/Separator/index.js +1 -1
  179. package/dist/components/Sidebar/index.js +2 -1
  180. package/dist/components/Skeleton/index.js +1 -1
  181. package/dist/components/Spinner/index.js +2 -1
  182. package/dist/components/SplitButton/index.js +5 -5
  183. package/dist/components/Stack/index.js +2 -1
  184. package/dist/components/StatusPill/index.js +1 -1
  185. package/dist/components/StreamingText/index.js +8 -0
  186. package/dist/components/Switch/index.js +1 -1
  187. package/dist/components/Table/index.js +1 -1
  188. package/dist/components/Tabs/index.js +3 -2
  189. package/dist/components/Tag/index.js +1 -1
  190. package/dist/components/Text/index.js +1 -1
  191. package/dist/components/Textarea/index.js +1 -1
  192. package/dist/components/ThinkingIndicator/index.js +9 -0
  193. package/dist/components/Toast/index.js +3 -1
  194. package/dist/components/Tooltip/index.js +2 -1
  195. package/dist/components/TopNav/index.js +2 -1
  196. package/dist/index.d.ts +440 -24
  197. package/dist/index.js +225 -146
  198. package/package.json +52 -50
  199. package/dist/chunk-63DPMUMR.js +0 -67
  200. package/dist/chunk-CHGPGRML.js +0 -115
  201. package/dist/chunk-H2W7IYVY.js +0 -155
  202. package/dist/chunk-J2T4GFFS.js +0 -85
  203. package/dist/chunk-LH3BSAIS.js +0 -119
  204. package/dist/chunk-LMPGHWUA.js +0 -114
  205. package/dist/chunk-NMH5WSZG.js +0 -72
  206. package/dist/chunk-P44EROBX.js +0 -55
  207. package/dist/chunk-TYTW4F3B.js +0 -178
@@ -0,0 +1,131 @@
1
+ 'use client';
2
+ import {
3
+ HoverCard
4
+ } from "./chunk-KE4YVG5Q.js";
5
+ import {
6
+ useNexubMessages
7
+ } from "./chunk-24ZFAXB2.js";
8
+ import {
9
+ cn
10
+ } from "./chunk-Q7G5WGYV.js";
11
+
12
+ // src/components/Citation/Citation.tsx
13
+ import * as React from "react";
14
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
15
+ var fallbackMessages = {
16
+ sources: "Sources",
17
+ source: (index) => `Source ${index}`
18
+ };
19
+ function useCitationMessages(overrides) {
20
+ const provided = useNexubMessages();
21
+ return { ...fallbackMessages, sources: provided.sources ?? fallbackMessages.sources, source: provided.source ?? fallbackMessages.source, ...overrides };
22
+ }
23
+ function safeUrl(url) {
24
+ if (!url) return void 0;
25
+ try {
26
+ const u = new URL(url);
27
+ return u.protocol === "http:" || u.protocol === "https:" ? u.href : void 0;
28
+ } catch {
29
+ return void 0;
30
+ }
31
+ }
32
+ function sourceDomain(source) {
33
+ if (source.domain) return source.domain;
34
+ const href = safeUrl(source.url);
35
+ return href ? new URL(href).hostname.replace(/^www\./, "") : "";
36
+ }
37
+ function Favicon({ source, className }) {
38
+ const src = safeUrl(source.favicon);
39
+ const [failed, setFailed] = React.useState(false);
40
+ const base = cn("inline-flex shrink-0 items-center justify-center overflow-hidden rounded-full", className);
41
+ if (src && !failed) {
42
+ return /* @__PURE__ */ jsx(
43
+ "img",
44
+ {
45
+ src,
46
+ alt: "",
47
+ referrerPolicy: "no-referrer",
48
+ loading: "lazy",
49
+ onError: () => setFailed(true),
50
+ className: cn(base, "object-cover")
51
+ }
52
+ );
53
+ }
54
+ const letter = (sourceDomain(source) || source.title).charAt(0).toUpperCase();
55
+ return /* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: cn(base, "bg-[var(--color-surface-container-high)] text-label-sm text-[var(--color-on-surface-variant)]"), children: letter });
56
+ }
57
+ var linkProps = { target: "_blank", rel: "noopener noreferrer" };
58
+ var Citation = React.forwardRef(
59
+ ({ index, source, messages, className, ...props }, ref) => {
60
+ const m = useCitationMessages(messages);
61
+ const href = safeUrl(source.url);
62
+ const label = `${m.source(index)}: ${source.title}`;
63
+ const domain = sourceDomain(source);
64
+ const marker = cn(
65
+ "mx-0.5 inline-flex h-5 min-w-[1.25rem] items-center justify-center rounded-shape-control px-1.5 align-middle",
66
+ "bg-[var(--color-secondary-container)] text-label-sm leading-none text-[var(--color-on-secondary-container)] no-underline",
67
+ href && "nx-state-layer",
68
+ className
69
+ );
70
+ return /* @__PURE__ */ jsxs(HoverCard.Root, { children: [
71
+ /* @__PURE__ */ jsx(HoverCard.Trigger, { asChild: true, children: href ? /* @__PURE__ */ jsx("a", { ref, href, ...linkProps, "aria-label": label, className: marker, ...props, children: index }) : /* @__PURE__ */ jsxs("span", { ref, className: marker, ...props, children: [
72
+ /* @__PURE__ */ jsx("span", { "aria-hidden": "true", children: index }),
73
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: label })
74
+ ] }) }),
75
+ /* @__PURE__ */ jsxs(HoverCard.Content, { className: "w-72", children: [
76
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
77
+ /* @__PURE__ */ jsx(Favicon, { source, className: "h-4 w-4" }),
78
+ /* @__PURE__ */ jsx("span", { className: "min-w-0 truncate text-label-sm text-[var(--color-on-surface-muted)]", children: domain })
79
+ ] }),
80
+ /* @__PURE__ */ jsx("p", { className: "mt-2 line-clamp-2 text-title-sm text-[var(--color-on-surface)]", children: source.title }),
81
+ source.snippet && /* @__PURE__ */ jsx("p", { className: "mt-1 line-clamp-3 text-body-sm text-[var(--color-on-surface-variant)]", children: source.snippet })
82
+ ] })
83
+ ] });
84
+ }
85
+ );
86
+ Citation.displayName = "Citation";
87
+ var SourceChip = React.forwardRef(
88
+ ({ source, className, ...props }, ref) => {
89
+ const href = safeUrl(source.url);
90
+ const cls = cn(
91
+ "inline-flex h-9 max-w-[16rem] items-center gap-2 rounded-shape-control border border-[var(--color-outline-variant)] px-3",
92
+ "bg-[var(--color-surface-container-low)] text-label-md text-[var(--color-on-surface)] no-underline",
93
+ href && "nx-state-layer",
94
+ className
95
+ );
96
+ const content = /* @__PURE__ */ jsxs(Fragment, { children: [
97
+ /* @__PURE__ */ jsx(Favicon, { source, className: "h-4 w-4" }),
98
+ /* @__PURE__ */ jsx("span", { className: "shrink-0 text-[var(--color-on-surface-muted)]", children: sourceDomain(source) }),
99
+ /* @__PURE__ */ jsx("span", { className: "min-w-0 truncate", children: source.title })
100
+ ] });
101
+ return href ? /* @__PURE__ */ jsx("a", { ref, href, ...linkProps, className: cls, ...props, children: content }) : /* @__PURE__ */ jsx("span", { ref, className: cls, ...props, children: content });
102
+ }
103
+ );
104
+ SourceChip.displayName = "SourceChip";
105
+ var SourceList = React.forwardRef(
106
+ ({ sources, messages, className, ...props }, ref) => {
107
+ const m = useCitationMessages(messages);
108
+ const id = React.useId();
109
+ return /* @__PURE__ */ jsxs("section", { ref, "aria-labelledby": id, className: cn("[container-type:inline-size]", className), ...props, children: [
110
+ /* @__PURE__ */ jsx("p", { id, className: "mb-2 text-label-md text-[var(--color-on-surface-variant)]", children: m.sources }),
111
+ /* @__PURE__ */ jsx(
112
+ "ul",
113
+ {
114
+ className: cn(
115
+ "flex snap-x snap-mandatory scroll-px-1 gap-2 overflow-x-auto p-1",
116
+ "[@container(min-width:480px)]:flex-wrap [@container(min-width:480px)]:overflow-x-visible"
117
+ ),
118
+ children: sources.map((s, i) => /* @__PURE__ */ jsx("li", { className: "shrink-0 snap-start", children: /* @__PURE__ */ jsx(SourceChip, { source: s }) }, `${i}-${s.url}`))
119
+ }
120
+ )
121
+ ] });
122
+ }
123
+ );
124
+ SourceList.displayName = "SourceList";
125
+
126
+ export {
127
+ safeUrl,
128
+ Citation,
129
+ SourceChip,
130
+ SourceList
131
+ };
@@ -1,4 +1,7 @@
1
1
  'use client';
2
+ import {
3
+ useNexubMessages
4
+ } from "./chunk-24ZFAXB2.js";
2
5
  import {
3
6
  cn
4
7
  } from "./chunk-Q7G5WGYV.js";
@@ -8,22 +11,25 @@ import * as React from "react";
8
11
  import { Slot } from "@radix-ui/react-slot";
9
12
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
10
13
  var Root = React.forwardRef(
11
- ({ className, collapsed = false, ...props }, ref) => /* @__PURE__ */ jsx(
12
- "nav",
13
- {
14
- ref,
15
- "aria-label": "Sidebar",
16
- "data-collapsed": collapsed,
17
- className: cn(
18
- // Chrome recedes: a tonal panel, no divider.
19
- "group/sidebar flex flex-col gap-1 bg-[var(--color-surface-container-low)] transition-[width] duration-spatial-default ease-spatial-default",
20
- collapsed ? "w-[var(--size-nav-sidebar-collapsed,56px)]" : "w-[var(--size-nav-sidebar,240px)]",
21
- "h-full overflow-y-auto overflow-x-hidden",
22
- className
23
- ),
24
- ...props
25
- }
26
- )
14
+ ({ className, collapsed = false, ...props }, ref) => {
15
+ const messages = useNexubMessages();
16
+ return /* @__PURE__ */ jsx(
17
+ "nav",
18
+ {
19
+ ref,
20
+ "aria-label": messages.sidebar,
21
+ "data-collapsed": collapsed,
22
+ className: cn(
23
+ // Chrome recedes: a tonal panel, no divider.
24
+ "group/sidebar flex flex-col gap-1 bg-[var(--color-surface-container-low)] transition-[width] duration-spatial-default ease-spatial-default",
25
+ collapsed ? "w-[var(--size-nav-sidebar-collapsed,56px)]" : "w-[var(--size-nav-sidebar,240px)]",
26
+ "h-full overflow-y-auto overflow-x-hidden",
27
+ className
28
+ ),
29
+ ...props
30
+ }
31
+ );
32
+ }
27
33
  );
28
34
  Root.displayName = "Sidebar.Root";
29
35
  var Header = React.forwardRef(
@@ -48,7 +54,7 @@ var Header = React.forwardRef(
48
54
  Header.displayName = "Sidebar.Header";
49
55
  var Group = React.forwardRef(
50
56
  ({ className, label, children, ...props }, ref) => /* @__PURE__ */ jsxs("div", { ref, className: cn("flex flex-col gap-0.5 p-2", className), ...props, children: [
51
- label && /* @__PURE__ */ jsx("p", { className: "px-2 py-1 text-xs font-semibold uppercase tracking-wider text-[var(--color-text-muted)]", children: label }),
57
+ label && /* @__PURE__ */ jsx("p", { className: "px-2 py-1 text-xs font-semibold uppercase tracking-wider text-[var(--color-on-surface-muted)]", children: label }),
52
58
  children
53
59
  ] })
54
60
  );
@@ -3,9 +3,12 @@ import {
3
3
  useClassScrollLock
4
4
  } from "./chunk-47UGX37F.js";
5
5
  import {
6
- enterExit,
7
- overlaySurface
8
- } from "./chunk-KQPLFVFR.js";
6
+ overlaySurface,
7
+ scrim
8
+ } from "./chunk-FLZD7HQY.js";
9
+ import {
10
+ useNexubMessages
11
+ } from "./chunk-24ZFAXB2.js";
9
12
  import {
10
13
  cn
11
14
  } from "./chunk-Q7G5WGYV.js";
@@ -16,13 +19,15 @@ import * as RadixDialog from "@radix-ui/react-dialog";
16
19
  import { Command } from "cmdk";
17
20
  import { Search } from "@nexub/icons";
18
21
  import { jsx, jsxs } from "react/jsx-runtime";
19
- var overlayClasses = "fixed inset-0 z-[var(--z-modal)] bg-[color-mix(in_srgb,#000_40%,transparent)] data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=open]:fade-in-0 data-[state=closed]:fade-out-0 duration-effects-default ease-effects-default";
22
+ var overlayClasses = cn("fixed inset-0 z-[var(--z-modal)] nx-motion", scrim);
20
23
  function ClassLockOverlay() {
21
24
  useClassScrollLock();
22
25
  return /* @__PURE__ */ jsx("div", { "data-state": "open", className: overlayClasses });
23
26
  }
24
27
  var Root2 = React.forwardRef(
25
- ({ children, label = "Command palette", scrollLock = "style", shouldFilter, ...props }, ref) => {
28
+ ({ children, label: labelProp, scrollLock = "style", shouldFilter, ...props }, ref) => {
29
+ const messages = useNexubMessages();
30
+ const label = labelProp ?? messages.commandPalette;
26
31
  const returnFocusRef = React.useRef(null);
27
32
  return /* @__PURE__ */ jsx(RadixDialog.Root, { ...props, children: /* @__PURE__ */ jsxs(RadixDialog.Portal, { children: [
28
33
  scrollLock === "class" ? /* @__PURE__ */ jsx(ClassLockOverlay, {}) : /* @__PURE__ */ jsx(RadixDialog.Overlay, { className: overlayClasses }),
@@ -40,12 +45,8 @@ var Root2 = React.forwardRef(
40
45
  },
41
46
  className: cn(
42
47
  "fixed left-1/2 top-[20%] z-[var(--z-modal)] w-[calc(100%-2rem)] max-w-xl -translate-x-1/2",
43
- "overflow-hidden",
44
- overlaySurface,
45
- enterExit,
46
- "data-[state=open]:animate-in data-[state=closed]:animate-out",
47
- "data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95",
48
- "data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95"
48
+ "nx-motion nx-dialog overflow-hidden",
49
+ overlaySurface
49
50
  ),
50
51
  children: [
51
52
  /* @__PURE__ */ jsx(RadixDialog.Title, { className: "sr-only", children: label }),
@@ -55,7 +56,7 @@ var Root2 = React.forwardRef(
55
56
  label,
56
57
  shouldFilter,
57
58
  loop: true,
58
- className: "flex h-full w-full flex-col overflow-hidden text-[var(--color-text-primary)]",
59
+ className: "flex h-full w-full flex-col overflow-hidden text-[var(--color-on-surface)]",
59
60
  children
60
61
  }
61
62
  )
@@ -66,14 +67,14 @@ var Root2 = React.forwardRef(
66
67
  }
67
68
  );
68
69
  Root2.displayName = "CommandPalette.Root";
69
- var Input = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs("div", { className: "flex items-center border-b border-[var(--color-border-default)] px-3", children: [
70
- /* @__PURE__ */ jsx(Search, { size: "sm", className: "mr-2 shrink-0 opacity-50", "aria-hidden": "true" }),
70
+ var Input = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsxs("div", { className: "flex items-center border-b border-[var(--color-outline-variant)] px-3", children: [
71
+ /* @__PURE__ */ jsx(Search, { size: "sm", className: "me-2 shrink-0 opacity-50", "aria-hidden": "true" }),
71
72
  /* @__PURE__ */ jsx(
72
73
  Command.Input,
73
74
  {
74
75
  ref,
75
76
  className: cn(
76
- "flex h-control-xl w-full bg-transparent text-body-lg outline-none placeholder:text-[var(--color-text-placeholder)] disabled:cursor-not-allowed disabled:text-[var(--color-text-disabled)]",
77
+ "flex h-control-xl w-full bg-transparent text-body-lg outline-none placeholder:text-[var(--color-on-surface-muted)] disabled:cursor-not-allowed disabled:text-[var(--color-text-disabled)]",
77
78
  className
78
79
  ),
79
80
  ...props
@@ -134,7 +135,7 @@ var Separator = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__
134
135
  Command.Separator,
135
136
  {
136
137
  ref,
137
- className: cn("-mx-1 my-1 h-px bg-[var(--color-border-default)]", className),
138
+ className: cn("-mx-1 my-1 h-px bg-[var(--color-outline-variant)]", className),
138
139
  ...props
139
140
  }
140
141
  ));
@@ -1,4 +1,7 @@
1
1
  'use client';
2
+ import {
3
+ useNexubMessages
4
+ } from "./chunk-24ZFAXB2.js";
2
5
  import {
3
6
  cn
4
7
  } from "./chunk-Q7G5WGYV.js";
@@ -22,10 +25,10 @@ var chipVariants = cva(
22
25
  success: "bg-[var(--color-success-container)] text-[var(--color-on-success-container)]",
23
26
  warning: "bg-[var(--color-warning-container)] text-[var(--color-on-warning-container)]",
24
27
  danger: "bg-[var(--color-error-container)] text-[var(--color-on-error-container)]",
25
- leap: "bg-[color:light-dark(var(--color-palette-leap-90),var(--color-palette-leap-30))] text-[color:light-dark(var(--color-palette-leap-10),var(--color-palette-leap-90))]",
26
- bookub: "bg-[color:light-dark(var(--color-palette-bookub-90),var(--color-palette-bookub-30))] text-[color:light-dark(var(--color-palette-bookub-10),var(--color-palette-bookub-90))]",
27
- payub: "bg-[color:light-dark(var(--color-palette-payub-90),var(--color-palette-payub-30))] text-[color:light-dark(var(--color-palette-payub-10),var(--color-palette-payub-90))]",
28
- founderub: "bg-[color:light-dark(var(--color-palette-founderub-90),var(--color-palette-founderub-30))] text-[color:light-dark(var(--color-palette-founderub-10),var(--color-palette-founderub-90))]"
28
+ leap: "bg-[var(--color-leap-container)] text-[var(--color-on-leap-container)]",
29
+ bookub: "bg-[var(--color-bookub-container)] text-[var(--color-on-bookub-container)]",
30
+ payub: "bg-[var(--color-payub-container)] text-[var(--color-on-payub-container)]",
31
+ founderub: "bg-[var(--color-founderub-container)] text-[var(--color-on-founderub-container)]"
29
32
  }
30
33
  },
31
34
  defaultVariants: {
@@ -36,6 +39,7 @@ var chipVariants = cva(
36
39
  );
37
40
  var Chip = React.forwardRef(
38
41
  ({ className, size, tone = "neutral", onRemove, children, ...props }, ref) => {
42
+ const messages = useNexubMessages();
39
43
  return /* @__PURE__ */ jsxs(
40
44
  "span",
41
45
  {
@@ -48,14 +52,14 @@ var Chip = React.forwardRef(
48
52
  "button",
49
53
  {
50
54
  type: "button",
51
- "aria-label": "Remove",
55
+ "aria-label": messages.remove,
52
56
  onClick: (e) => {
53
57
  e.stopPropagation();
54
58
  onRemove();
55
59
  },
56
60
  className: cn(
57
61
  // State layer for hover/press; focus = the global ring.
58
- "nx-state-layer inline-flex items-center justify-center rounded-full text-current -mr-1",
62
+ "nx-state-layer inline-flex items-center justify-center rounded-full text-current -me-1",
59
63
  size === "sm" ? "w-4 h-4" : "w-5 h-5"
60
64
  ),
61
65
  children: /* @__PURE__ */ jsx(
@@ -1,12 +1,11 @@
1
1
  'use client';
2
2
  import {
3
- enterExit,
4
3
  floatingSurface,
5
4
  menuContent,
6
5
  menuItem,
7
6
  menuLabel,
8
7
  menuSeparator
9
- } from "./chunk-KQPLFVFR.js";
8
+ } from "./chunk-FLZD7HQY.js";
10
9
  import {
11
10
  cn
12
11
  } from "./chunk-Q7G5WGYV.js";
@@ -59,12 +58,7 @@ var contentBaseClasses = cn(
59
58
  "z-[var(--z-popover)] min-w-48 outline-none",
60
59
  floatingSurface,
61
60
  menuContent,
62
- enterExit,
63
- "data-[state=open]:animate-in data-[state=closed]:animate-out",
64
- "data-[state=open]:fade-in-0 data-[state=closed]:fade-out-0",
65
- "data-[state=open]:zoom-in-95 data-[state=closed]:zoom-out-95",
66
- "data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2",
67
- "data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2"
61
+ "nx-motion nx-pop origin-[var(--radix-menubar-content-transform-origin)]"
68
62
  );
69
63
  var Content2 = React.forwardRef(
70
64
  function MenubarContent({ className, sideOffset = 8, ...props }, ref) {
@@ -130,11 +124,11 @@ var CheckboxItem2 = React.forwardRef(function MenubarCheckboxItem({ className, c
130
124
  RadixMenubar.CheckboxItem,
131
125
  {
132
126
  ref,
133
- className: cn(itemBaseClasses, "pl-8", className),
127
+ className: cn(itemBaseClasses, "ps-8", className),
134
128
  checked,
135
129
  ...props,
136
130
  children: [
137
- /* @__PURE__ */ jsx("span", { className: "absolute left-2 flex h-4 w-4 items-center justify-center", children: /* @__PURE__ */ jsx(RadixMenubar.ItemIndicator, { children: /* @__PURE__ */ jsx(Check, { className: "h-4 w-4" }) }) }),
131
+ /* @__PURE__ */ jsx("span", { className: "absolute start-2 flex h-4 w-4 items-center justify-center", children: /* @__PURE__ */ jsx(RadixMenubar.ItemIndicator, { children: /* @__PURE__ */ jsx(Check, { className: "h-4 w-4" }) }) }),
138
132
  children
139
133
  ]
140
134
  }
@@ -146,10 +140,10 @@ var RadioItem2 = React.forwardRef(function MenubarRadioItem({ className, childre
146
140
  RadixMenubar.RadioItem,
147
141
  {
148
142
  ref,
149
- className: cn(itemBaseClasses, "pl-8", className),
143
+ className: cn(itemBaseClasses, "ps-8", className),
150
144
  ...props,
151
145
  children: [
152
- /* @__PURE__ */ jsx("span", { className: "absolute left-2 flex h-4 w-4 items-center justify-center", children: /* @__PURE__ */ jsx(RadixMenubar.ItemIndicator, { children: /* @__PURE__ */ jsx("svg", { className: "h-2 w-2 fill-current", viewBox: "0 0 8 8", "aria-hidden": "true", children: /* @__PURE__ */ jsx("circle", { cx: "4", cy: "4", r: "4" }) }) }) }),
146
+ /* @__PURE__ */ jsx("span", { className: "absolute start-2 flex h-4 w-4 items-center justify-center", children: /* @__PURE__ */ jsx(RadixMenubar.ItemIndicator, { children: /* @__PURE__ */ jsx("svg", { className: "h-2 w-2 fill-current", viewBox: "0 0 8 8", "aria-hidden": "true", children: /* @__PURE__ */ jsx("circle", { cx: "4", cy: "4", r: "4" }) }) }) }),
153
147
  children
154
148
  ]
155
149
  }
@@ -169,7 +163,7 @@ var SubTrigger2 = React.forwardRef(function MenubarSubTrigger({ className, child
169
163
  ...props,
170
164
  children: [
171
165
  children,
172
- /* @__PURE__ */ jsx(ChevronRight, { className: "ml-auto h-4 w-4" })
166
+ /* @__PURE__ */ jsx(ChevronRight, { className: "ms-auto h-4 w-4 rtl:-scale-x-100" })
173
167
  ]
174
168
  }
175
169
  );
@@ -192,7 +186,7 @@ var Arrow2 = React.forwardRef(
192
186
  RadixMenubar.Arrow,
193
187
  {
194
188
  ref,
195
- className: cn("fill-[var(--color-border-default)]", className),
189
+ className: cn("fill-[var(--color-outline-variant)]", className),
196
190
  ...props
197
191
  }
198
192
  );
@@ -0,0 +1,110 @@
1
+ 'use client';
2
+
3
+ // src/utils/layout.ts
4
+ var GAP = {
5
+ "0": "gap-0",
6
+ "0.5": "gap-0.5",
7
+ "1": "gap-1",
8
+ "1.5": "gap-1.5",
9
+ "2": "gap-2",
10
+ "2.5": "gap-2.5",
11
+ "3": "gap-3",
12
+ "3.5": "gap-3.5",
13
+ "4": "gap-4",
14
+ "5": "gap-5",
15
+ "6": "gap-6",
16
+ "7": "gap-7",
17
+ "8": "gap-8",
18
+ "9": "gap-9",
19
+ "10": "gap-10",
20
+ "11": "gap-11",
21
+ "12": "gap-12",
22
+ "14": "gap-14",
23
+ "16": "gap-16",
24
+ "20": "gap-20",
25
+ "24": "gap-24"
26
+ };
27
+ var ALIGN = {
28
+ start: "items-start",
29
+ "flex-start": "items-start",
30
+ end: "items-end",
31
+ "flex-end": "items-end",
32
+ center: "items-center",
33
+ baseline: "items-baseline",
34
+ stretch: "items-stretch"
35
+ };
36
+ var JUSTIFY = {
37
+ start: "justify-start",
38
+ "flex-start": "justify-start",
39
+ end: "justify-end",
40
+ "flex-end": "justify-end",
41
+ center: "justify-center",
42
+ between: "justify-between",
43
+ "space-between": "justify-between",
44
+ around: "justify-around",
45
+ "space-around": "justify-around",
46
+ evenly: "justify-evenly",
47
+ "space-evenly": "justify-evenly",
48
+ stretch: "justify-stretch"
49
+ };
50
+ var COLS = {
51
+ "1": "grid-cols-1",
52
+ "2": "grid-cols-2",
53
+ "3": "grid-cols-3",
54
+ "4": "grid-cols-4",
55
+ "5": "grid-cols-5",
56
+ "6": "grid-cols-6",
57
+ "7": "grid-cols-7",
58
+ "8": "grid-cols-8",
59
+ "9": "grid-cols-9",
60
+ "10": "grid-cols-10",
61
+ "11": "grid-cols-11",
62
+ "12": "grid-cols-12"
63
+ };
64
+ var ROWS = {
65
+ "1": "grid-rows-1",
66
+ "2": "grid-rows-2",
67
+ "3": "grid-rows-3",
68
+ "4": "grid-rows-4",
69
+ "5": "grid-rows-5",
70
+ "6": "grid-rows-6",
71
+ "7": "grid-rows-7",
72
+ "8": "grid-rows-8",
73
+ "9": "grid-rows-9",
74
+ "10": "grid-rows-10",
75
+ "11": "grid-rows-11",
76
+ "12": "grid-rows-12"
77
+ };
78
+ function layoutProps({ gap, align, justify, cols, rows, style }) {
79
+ const className = [];
80
+ const s = {};
81
+ if (gap !== void 0) {
82
+ const cls = typeof gap === "number" ? GAP[String(gap)] : void 0;
83
+ if (cls) className.push(cls);
84
+ else s.gap = typeof gap === "number" ? `${gap * 0.25}rem` : gap;
85
+ }
86
+ if (align) {
87
+ if (ALIGN[align]) className.push(ALIGN[align]);
88
+ else s.alignItems = align;
89
+ }
90
+ if (justify) {
91
+ if (JUSTIFY[justify]) className.push(JUSTIFY[justify]);
92
+ else s.justifyContent = justify;
93
+ }
94
+ if (cols !== void 0) {
95
+ const cls = typeof cols === "number" ? COLS[String(cols)] : void 0;
96
+ if (cls) className.push(cls);
97
+ else s.gridTemplateColumns = typeof cols === "number" ? `repeat(${cols}, minmax(0, 1fr))` : cols;
98
+ }
99
+ if (rows !== void 0) {
100
+ const cls = typeof rows === "number" ? ROWS[String(rows)] : void 0;
101
+ if (cls) className.push(cls);
102
+ else s.gridTemplateRows = typeof rows === "number" ? `repeat(${rows}, minmax(0, 1fr))` : rows;
103
+ }
104
+ const merged = { ...s, ...style };
105
+ return { className, style: Object.keys(merged).length ? merged : void 0 };
106
+ }
107
+
108
+ export {
109
+ layoutProps
110
+ };
@@ -1,10 +1,9 @@
1
1
  'use client';
2
2
  import {
3
- enterExit,
4
3
  floatingSurface,
5
4
  menuLabel,
6
5
  menuSeparator
7
- } from "./chunk-KQPLFVFR.js";
6
+ } from "./chunk-FLZD7HQY.js";
8
7
  import {
9
8
  field,
10
9
  fieldFocusVisible,
@@ -33,7 +32,7 @@ var Trigger2 = React.forwardRef(
33
32
  fieldFocusVisible,
34
33
  // Open reads like focus: the 2px primary border.
35
34
  "data-[state=open]:border-[var(--color-primary)] data-[state=open]:shadow-[inset_0_0_0_1px_var(--color-primary)]",
36
- "data-[placeholder]:text-[var(--color-text-placeholder)]",
35
+ "data-[placeholder]:text-[var(--color-on-surface-muted)]",
37
36
  "disabled:cursor-not-allowed disabled:border-[var(--color-outline-variant)] disabled:bg-[var(--color-surface-container-low)] disabled:text-[var(--color-text-disabled)]",
38
37
  invalid && fieldInvalid,
39
38
  "[&>span]:line-clamp-1",
@@ -80,9 +79,7 @@ var Content2 = React.forwardRef(
80
79
  className: cn(
81
80
  "relative z-[var(--z-popover)] max-h-96 min-w-32 overflow-hidden",
82
81
  floatingSurface,
83
- enterExit,
84
- "data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
85
- "data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2",
82
+ "nx-motion nx-pop origin-[var(--radix-select-content-transform-origin)]",
86
83
  position === "popper" && "data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1 w-[var(--radix-select-trigger-width)]",
87
84
  className
88
85
  ),
@@ -123,7 +120,7 @@ var Item2 = React.forwardRef(
123
120
  {
124
121
  ref,
125
122
  className: cn(
126
- "relative flex w-full cursor-default select-none items-center rounded-[10px] py-2 pl-8 pr-2 text-body-sm text-[var(--color-on-surface)] outline-none",
123
+ "relative flex w-full cursor-default select-none items-center rounded-[10px] py-2 ps-8 pe-2 text-body-sm text-[var(--color-on-surface)] outline-none",
127
124
  // Highlight = the on-surface state layer at hover opacity.
128
125
  "focus:bg-[color-mix(in_srgb,var(--color-on-surface)_8%,transparent)]",
129
126
  "data-[disabled]:pointer-events-none data-[disabled]:text-[var(--color-text-disabled)]",
@@ -131,7 +128,7 @@ var Item2 = React.forwardRef(
131
128
  ),
132
129
  ...props,
133
130
  children: [
134
- /* @__PURE__ */ jsx("span", { className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(RadixSelect.ItemIndicator, { children: /* @__PURE__ */ jsx(Check, { size: "xs", "aria-hidden": "true" }) }) }),
131
+ /* @__PURE__ */ jsx("span", { className: "absolute start-2 flex h-3.5 w-3.5 items-center justify-center", children: /* @__PURE__ */ jsx(RadixSelect.ItemIndicator, { children: /* @__PURE__ */ jsx(Check, { size: "xs", "aria-hidden": "true" }) }) }),
135
132
  /* @__PURE__ */ jsx(RadixSelect.ItemText, { children })
136
133
  ]
137
134
  }
@@ -1,7 +1,13 @@
1
1
  'use client';
2
+ import {
3
+ NumberTicker
4
+ } from "./chunk-AGYGWU6C.js";
2
5
  import {
3
6
  moneyFormatter
4
7
  } from "./chunk-CIQHFMF6.js";
8
+ import {
9
+ useIntlLocale
10
+ } from "./chunk-24ZFAXB2.js";
5
11
  import {
6
12
  cn
7
13
  } from "./chunk-Q7G5WGYV.js";
@@ -15,8 +21,11 @@ var sizes = {
15
21
  lg: "text-title-lg",
16
22
  display: "font-display text-display-sm"
17
23
  };
24
+ var mutedClass = "text-[0.55em] font-semibold text-[var(--color-on-surface-variant)]";
25
+ var muted = (type) => type === "currency" || type === "decimal" || type === "fraction";
18
26
  var Amount = React.forwardRef(
19
- ({ value, currency, locale, size = "md", tone = "neutral", signDisplay, className, ...props }, ref) => {
27
+ ({ value, currency, locale: localeProp, size = "md", tone = "neutral", signDisplay, animate = false, className, ...props }, ref) => {
28
+ const locale = useIntlLocale(localeProp);
20
29
  const parts = moneyFormatter(currency, locale, { signDisplay }).formatToParts(value);
21
30
  const quiet = size === "display";
22
31
  return /* @__PURE__ */ jsx(
@@ -32,10 +41,17 @@ var Amount = React.forwardRef(
32
41
  className
33
42
  ),
34
43
  ...props,
35
- children: parts.map((p, i) => {
44
+ children: animate ? /* @__PURE__ */ jsx(
45
+ NumberTicker,
46
+ {
47
+ value: parts.map((p) => ({
48
+ value: p.type === "minusSign" ? "\u2212" : p.value,
49
+ className: quiet && muted(p.type) ? mutedClass : void 0
50
+ }))
51
+ }
52
+ ) : parts.map((p, i) => {
36
53
  const text = p.type === "minusSign" ? "\u2212" : p.value;
37
- const muted = quiet && (p.type === "currency" || p.type === "decimal" || p.type === "fraction");
38
- return muted ? /* @__PURE__ */ jsx("span", { className: "text-[0.55em] font-semibold text-[var(--color-on-surface-variant)]", children: text }, i) : /* @__PURE__ */ jsx(React.Fragment, { children: text }, i);
54
+ return quiet && muted(p.type) ? /* @__PURE__ */ jsx("span", { className: mutedClass, children: text }, i) : /* @__PURE__ */ jsx(React.Fragment, { children: text }, i);
39
55
  })
40
56
  }
41
57
  );
@@ -23,7 +23,7 @@ var ButtonGroup = React.forwardRef(
23
23
  attached ? [
24
24
  "gap-0.5",
25
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]"]
26
+ orientation === "horizontal" ? ["[&>*:first-child]:rounded-e-[6px]", "[&>*:last-child]:rounded-s-[6px]"] : ["[&>*:first-child]:rounded-b-[6px]", "[&>*:last-child]:rounded-t-[6px]"]
27
27
  ] : "gap-2",
28
28
  className
29
29
  ),
@@ -0,0 +1 @@
1
+ 'use client';
@@ -25,7 +25,7 @@ var Illustration = React.forwardRef(
25
25
  "div",
26
26
  {
27
27
  ref,
28
- className: cn("text-[var(--color-text-muted)]", className),
28
+ className: cn("text-[var(--color-on-surface-muted)]", className),
29
29
  ...props
30
30
  }
31
31
  )
@@ -36,7 +36,7 @@ var Title = React.forwardRef(
36
36
  "h3",
37
37
  {
38
38
  ref,
39
- className: cn("text-lg font-semibold text-[var(--color-text-primary)]", className),
39
+ className: cn("text-lg font-semibold text-[var(--color-on-surface)]", className),
40
40
  ...props
41
41
  }
42
42
  )
@@ -46,7 +46,7 @@ var Description = React.forwardRef(({ className, ...props }, ref) => /* @__PURE_
46
46
  "p",
47
47
  {
48
48
  ref,
49
- className: cn("max-w-sm text-sm text-[var(--color-text-muted)]", className),
49
+ className: cn("max-w-sm text-sm text-[var(--color-on-surface-muted)]", className),
50
50
  ...props
51
51
  }
52
52
  ));