@xaui/native 0.2.7 → 0.9.1-alpha.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 (224) hide show
  1. package/dist/chunk-JDS6KGCM.cjs +791 -0
  2. package/dist/chunk-T3ZI2PZ6.js +791 -0
  3. package/dist/index.cjs +32 -1
  4. package/dist/index.d.cts +2 -2
  5. package/dist/index.d.ts +2 -2
  6. package/dist/index.js +32 -0
  7. package/dist/theme/index.cjs +32 -0
  8. package/dist/theme/index.d.cts +669 -0
  9. package/dist/theme/index.d.ts +669 -0
  10. package/dist/theme/index.js +32 -0
  11. package/package.json +26 -249
  12. package/README.md +0 -178
  13. package/dist/alert/index.cjs +0 -356
  14. package/dist/alert/index.d.cts +0 -90
  15. package/dist/alert/index.d.ts +0 -90
  16. package/dist/alert/index.js +0 -356
  17. package/dist/app-bar/index.cjs +0 -148
  18. package/dist/app-bar/index.d.cts +0 -59
  19. package/dist/app-bar/index.d.ts +0 -59
  20. package/dist/app-bar/index.js +0 -148
  21. package/dist/autocomplete/index.cjs +0 -1122
  22. package/dist/autocomplete/index.d.cts +0 -88
  23. package/dist/autocomplete/index.d.ts +0 -88
  24. package/dist/autocomplete/index.js +0 -1122
  25. package/dist/avatar/index.cjs +0 -281
  26. package/dist/avatar/index.d.cts +0 -123
  27. package/dist/avatar/index.d.ts +0 -123
  28. package/dist/avatar/index.js +0 -281
  29. package/dist/badge/index.cjs +0 -197
  30. package/dist/badge/index.d.cts +0 -94
  31. package/dist/badge/index.d.ts +0 -94
  32. package/dist/badge/index.js +0 -197
  33. package/dist/bottom-sheet/index.cjs +0 -9
  34. package/dist/bottom-sheet/index.d.cts +0 -84
  35. package/dist/bottom-sheet/index.d.ts +0 -84
  36. package/dist/bottom-sheet/index.js +0 -9
  37. package/dist/bottom-tab-bar/index.cjs +0 -497
  38. package/dist/bottom-tab-bar/index.d.cts +0 -211
  39. package/dist/bottom-tab-bar/index.d.ts +0 -211
  40. package/dist/bottom-tab-bar/index.js +0 -497
  41. package/dist/button/index.cjs +0 -392
  42. package/dist/button/index.d.cts +0 -174
  43. package/dist/button/index.d.ts +0 -174
  44. package/dist/button/index.js +0 -392
  45. package/dist/button.type-j1ZdkkSl.d.cts +0 -4
  46. package/dist/button.type-j1ZdkkSl.d.ts +0 -4
  47. package/dist/card/index.cjs +0 -338
  48. package/dist/card/index.d.cts +0 -191
  49. package/dist/card/index.d.ts +0 -191
  50. package/dist/card/index.js +0 -338
  51. package/dist/carousel/index.cjs +0 -381
  52. package/dist/carousel/index.d.cts +0 -147
  53. package/dist/carousel/index.d.ts +0 -147
  54. package/dist/carousel/index.js +0 -381
  55. package/dist/chart/index.cjs +0 -1026
  56. package/dist/chart/index.d.cts +0 -218
  57. package/dist/chart/index.d.ts +0 -218
  58. package/dist/chart/index.js +0 -1026
  59. package/dist/checkbox/index.cjs +0 -443
  60. package/dist/checkbox/index.d.cts +0 -73
  61. package/dist/checkbox/index.d.ts +0 -73
  62. package/dist/checkbox/index.js +0 -443
  63. package/dist/chip/index.cjs +0 -503
  64. package/dist/chip/index.d.cts +0 -195
  65. package/dist/chip/index.d.ts +0 -195
  66. package/dist/chip/index.js +0 -503
  67. package/dist/chunk-4JFWQ5XT.js +0 -368
  68. package/dist/chunk-56RPWZD2.cjs +0 -9
  69. package/dist/chunk-7UFBLUMV.cjs +0 -136
  70. package/dist/chunk-A45TVXU5.js +0 -337
  71. package/dist/chunk-BYWUAPC4.cjs +0 -368
  72. package/dist/chunk-DECMUMCI.js +0 -0
  73. package/dist/chunk-DHSTKO3K.cjs +0 -19
  74. package/dist/chunk-DJ4Q37UT.cjs +0 -75
  75. package/dist/chunk-EUQDGTST.cjs +0 -1
  76. package/dist/chunk-GBHQCAKW.js +0 -19
  77. package/dist/chunk-RBSA4NH4.js +0 -136
  78. package/dist/chunk-SHBDANQN.js +0 -9
  79. package/dist/chunk-UGEINZM7.cjs +0 -290
  80. package/dist/chunk-UU4HHBDN.js +0 -290
  81. package/dist/chunk-VSZEXOUN.js +0 -384
  82. package/dist/chunk-YIEUN3G5.cjs +0 -384
  83. package/dist/chunk-ZH6ZSV2Q.cjs +0 -337
  84. package/dist/chunk-ZY7IUTAT.js +0 -75
  85. package/dist/color-picker/index.cjs +0 -457
  86. package/dist/color-picker/index.d.cts +0 -124
  87. package/dist/color-picker/index.d.ts +0 -124
  88. package/dist/color-picker/index.js +0 -457
  89. package/dist/core/index.cjs +0 -24
  90. package/dist/core/index.d.cts +0 -28
  91. package/dist/core/index.d.ts +0 -28
  92. package/dist/core/index.js +0 -24
  93. package/dist/datepicker/index.cjs +0 -1625
  94. package/dist/datepicker/index.d.cts +0 -45
  95. package/dist/datepicker/index.d.ts +0 -45
  96. package/dist/datepicker/index.js +0 -1625
  97. package/dist/dialog/index.cjs +0 -372
  98. package/dist/dialog/index.d.cts +0 -151
  99. package/dist/dialog/index.d.ts +0 -151
  100. package/dist/dialog/index.js +0 -372
  101. package/dist/divider/index.cjs +0 -8
  102. package/dist/divider/index.d.cts +0 -30
  103. package/dist/divider/index.d.ts +0 -30
  104. package/dist/divider/index.js +0 -8
  105. package/dist/drawer/index.cjs +0 -237
  106. package/dist/drawer/index.d.cts +0 -58
  107. package/dist/drawer/index.d.ts +0 -58
  108. package/dist/drawer/index.js +0 -237
  109. package/dist/expansion-panel/index.cjs +0 -441
  110. package/dist/expansion-panel/index.d.cts +0 -153
  111. package/dist/expansion-panel/index.d.ts +0 -153
  112. package/dist/expansion-panel/index.js +0 -441
  113. package/dist/fab/index.cjs +0 -9
  114. package/dist/fab/index.d.cts +0 -10
  115. package/dist/fab/index.d.ts +0 -10
  116. package/dist/fab/index.js +0 -9
  117. package/dist/fab-menu/index.cjs +0 -330
  118. package/dist/fab-menu/index.d.cts +0 -125
  119. package/dist/fab-menu/index.d.ts +0 -125
  120. package/dist/fab-menu/index.js +0 -330
  121. package/dist/fab.type-CkUHmXU_.d.ts +0 -86
  122. package/dist/fab.type-DN0vtAh6.d.cts +0 -86
  123. package/dist/feature-discovery/index.cjs +0 -464
  124. package/dist/feature-discovery/index.d.cts +0 -82
  125. package/dist/feature-discovery/index.d.ts +0 -82
  126. package/dist/feature-discovery/index.js +0 -464
  127. package/dist/indicator/index.cjs +0 -8
  128. package/dist/indicator/index.d.cts +0 -47
  129. package/dist/indicator/index.d.ts +0 -47
  130. package/dist/indicator/index.js +0 -8
  131. package/dist/input/index.cjs +0 -1462
  132. package/dist/input/index.d.cts +0 -522
  133. package/dist/input/index.d.ts +0 -522
  134. package/dist/input/index.js +0 -1462
  135. package/dist/input-trigger/index.cjs +0 -197
  136. package/dist/input-trigger/index.d.cts +0 -11
  137. package/dist/input-trigger/index.d.ts +0 -11
  138. package/dist/input-trigger/index.js +0 -197
  139. package/dist/input-trigger.type-Ba4bM3Qp.d.cts +0 -180
  140. package/dist/input-trigger.type-Ba4bM3Qp.d.ts +0 -180
  141. package/dist/list/index.cjs +0 -395
  142. package/dist/list/index.d.cts +0 -188
  143. package/dist/list/index.d.ts +0 -188
  144. package/dist/list/index.js +0 -395
  145. package/dist/menu/index.cjs +0 -316
  146. package/dist/menu/index.d.cts +0 -115
  147. package/dist/menu/index.d.ts +0 -115
  148. package/dist/menu/index.js +0 -316
  149. package/dist/menubox/index.cjs +0 -297
  150. package/dist/menubox/index.d.cts +0 -98
  151. package/dist/menubox/index.d.ts +0 -98
  152. package/dist/menubox/index.js +0 -297
  153. package/dist/pager/index.cjs +0 -205
  154. package/dist/pager/index.d.cts +0 -93
  155. package/dist/pager/index.d.ts +0 -93
  156. package/dist/pager/index.js +0 -205
  157. package/dist/picker/index.cjs +0 -244
  158. package/dist/picker/index.d.cts +0 -121
  159. package/dist/picker/index.d.ts +0 -121
  160. package/dist/picker/index.js +0 -244
  161. package/dist/progress/index.cjs +0 -219
  162. package/dist/progress/index.d.cts +0 -47
  163. package/dist/progress/index.d.ts +0 -47
  164. package/dist/progress/index.js +0 -219
  165. package/dist/radio/index.cjs +0 -465
  166. package/dist/radio/index.d.cts +0 -145
  167. package/dist/radio/index.d.ts +0 -145
  168. package/dist/radio/index.js +0 -465
  169. package/dist/refresh-control/index.cjs +0 -45
  170. package/dist/refresh-control/index.d.cts +0 -55
  171. package/dist/refresh-control/index.d.ts +0 -55
  172. package/dist/refresh-control/index.js +0 -45
  173. package/dist/segment-button/index.cjs +0 -405
  174. package/dist/segment-button/index.d.cts +0 -141
  175. package/dist/segment-button/index.d.ts +0 -141
  176. package/dist/segment-button/index.js +0 -405
  177. package/dist/select/index.cjs +0 -878
  178. package/dist/select/index.d.cts +0 -192
  179. package/dist/select/index.d.ts +0 -192
  180. package/dist/select/index.js +0 -878
  181. package/dist/skeleton/index.cjs +0 -89
  182. package/dist/skeleton/index.d.cts +0 -45
  183. package/dist/skeleton/index.d.ts +0 -45
  184. package/dist/skeleton/index.js +0 -89
  185. package/dist/slider/index.cjs +0 -576
  186. package/dist/slider/index.d.cts +0 -171
  187. package/dist/slider/index.d.ts +0 -171
  188. package/dist/slider/index.js +0 -576
  189. package/dist/snackbar/index.cjs +0 -436
  190. package/dist/snackbar/index.d.cts +0 -174
  191. package/dist/snackbar/index.d.ts +0 -174
  192. package/dist/snackbar/index.js +0 -436
  193. package/dist/snippet/index.cjs +0 -314
  194. package/dist/snippet/index.d.cts +0 -95
  195. package/dist/snippet/index.d.ts +0 -95
  196. package/dist/snippet/index.js +0 -314
  197. package/dist/stepper/index.cjs +0 -550
  198. package/dist/stepper/index.d.cts +0 -137
  199. package/dist/stepper/index.d.ts +0 -137
  200. package/dist/stepper/index.js +0 -550
  201. package/dist/switch/index.cjs +0 -358
  202. package/dist/switch/index.d.cts +0 -28
  203. package/dist/switch/index.d.ts +0 -28
  204. package/dist/switch/index.js +0 -358
  205. package/dist/tabs/index.cjs +0 -440
  206. package/dist/tabs/index.d.cts +0 -180
  207. package/dist/tabs/index.d.ts +0 -180
  208. package/dist/tabs/index.js +0 -440
  209. package/dist/timepicker/index.cjs +0 -823
  210. package/dist/timepicker/index.d.cts +0 -215
  211. package/dist/timepicker/index.d.ts +0 -215
  212. package/dist/timepicker/index.js +0 -823
  213. package/dist/toolbar/index.cjs +0 -333
  214. package/dist/toolbar/index.d.cts +0 -100
  215. package/dist/toolbar/index.d.ts +0 -100
  216. package/dist/toolbar/index.js +0 -333
  217. package/dist/typography/index.cjs +0 -238
  218. package/dist/typography/index.d.cts +0 -113
  219. package/dist/typography/index.d.ts +0 -113
  220. package/dist/typography/index.js +0 -238
  221. package/dist/view/index.cjs +0 -1361
  222. package/dist/view/index.d.cts +0 -833
  223. package/dist/view/index.d.ts +0 -833
  224. package/dist/view/index.js +0 -1361
@@ -0,0 +1,669 @@
1
+ import * as react from 'react';
2
+ import { ReactNode } from 'react';
3
+
4
+ /** The source layer — the only surface a consumer writes by hand, per mode. */
5
+ type XAUISourceColors = {
6
+ background: string;
7
+ foreground: string;
8
+ surface: string;
9
+ surfaceForeground: string;
10
+ surfaceSecondary: string;
11
+ surfaceSecondaryForeground: string;
12
+ surfaceTertiary: string;
13
+ surfaceTertiaryForeground: string;
14
+ overlay: string;
15
+ overlayForeground: string;
16
+ backdrop: string;
17
+ muted: string;
18
+ default: string;
19
+ defaultForeground: string;
20
+ accent: string;
21
+ accentForeground: string;
22
+ fieldBackground: string;
23
+ fieldForeground: string;
24
+ fieldPlaceholder: string;
25
+ fieldBorder: string;
26
+ success: string;
27
+ successForeground: string;
28
+ warning: string;
29
+ warningForeground: string;
30
+ danger: string;
31
+ dangerForeground: string;
32
+ segment: string;
33
+ segmentForeground: string;
34
+ border: string;
35
+ separator: string;
36
+ focus: string;
37
+ link: string;
38
+ };
39
+ /** The derived layer — computed by `deriveColors`, never written by hand. */
40
+ type XAUIDerivedColors = {
41
+ accentPressed: string;
42
+ successPressed: string;
43
+ warningPressed: string;
44
+ dangerPressed: string;
45
+ defaultPressed: string;
46
+ surfacePressed: string;
47
+ defaultSoft: string;
48
+ defaultSoftForeground: string;
49
+ defaultSoftPressed: string;
50
+ accentSoft: string;
51
+ accentSoftForeground: string;
52
+ accentSoftPressed: string;
53
+ successSoft: string;
54
+ successSoftForeground: string;
55
+ successSoftPressed: string;
56
+ warningSoft: string;
57
+ warningSoftForeground: string;
58
+ warningSoftPressed: string;
59
+ dangerSoft: string;
60
+ dangerSoftForeground: string;
61
+ dangerSoftPressed: string;
62
+ backgroundSecondary: string;
63
+ backgroundTertiary: string;
64
+ backgroundInverse: string;
65
+ borderSecondary: string;
66
+ borderTertiary: string;
67
+ separatorSecondary: string;
68
+ separatorTertiary: string;
69
+ fieldPressed: string;
70
+ fieldFocus: string;
71
+ fieldBorderPressed: string;
72
+ fieldBorderFocus: string;
73
+ };
74
+ /** Constant across both modes. */
75
+ type XAUIPrimitiveColors = {
76
+ white: string;
77
+ black: string;
78
+ snow: string;
79
+ eclipse: string;
80
+ };
81
+ /** Everything a component reads, flattened. */
82
+ type XAUIColors = XAUISourceColors & XAUIDerivedColors & XAUIPrimitiveColors;
83
+ type ColorMode = 'light' | 'dark';
84
+ type Size = 'xs' | 'sm' | 'md' | 'lg';
85
+ type RadiusKey = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl' | 'field' | 'full';
86
+ type FontSizeKey = Size | 'xl' | '2xl' | '3xl' | '4xl';
87
+ type FontWeightKey = 'regular' | 'medium' | 'semibold' | 'bold';
88
+ type XAUIRadius = Record<RadiusKey, number>;
89
+ type XAUIShadow = {
90
+ shadowColor: string;
91
+ shadowOffset: {
92
+ width: number;
93
+ height: number;
94
+ };
95
+ shadowOpacity: number;
96
+ shadowRadius: number;
97
+ elevation: number;
98
+ };
99
+ type XAUITheme = {
100
+ id: string;
101
+ mode: ColorMode;
102
+ colors: XAUIColors;
103
+ /** Base 4 — `spacing(3) === 12`. A function, so there is no "what do we call 12px". */
104
+ spacing: (steps: number) => number;
105
+ radius: XAUIRadius;
106
+ borderWidth: {
107
+ default: number;
108
+ field: number;
109
+ };
110
+ fontSizes: Record<FontSizeKey, number>;
111
+ lineHeights: Record<FontSizeKey, number>;
112
+ fontWeights: Record<FontWeightKey, string>;
113
+ fontFamilies: {
114
+ body: string;
115
+ heading: string;
116
+ mono: string;
117
+ };
118
+ /** Semantic roles, not a scale: dark mode drops the surface shadow entirely. */
119
+ shadows: {
120
+ surface: XAUIShadow;
121
+ overlay: XAUIShadow;
122
+ field: XAUIShadow;
123
+ };
124
+ opacity: {
125
+ disabled: number;
126
+ };
127
+ controlHeights: Record<Size, number>;
128
+ };
129
+ type XAUIThemeConfig = {
130
+ colors?: {
131
+ light?: Partial<XAUISourceColors & XAUIDerivedColors>;
132
+ dark?: Partial<XAUISourceColors & XAUIDerivedColors>;
133
+ };
134
+ /** The single base the whole radius scale derives from. */
135
+ radius?: number;
136
+ spacingUnit?: number;
137
+ borderWidth?: Partial<XAUITheme['borderWidth']>;
138
+ fontSizes?: Partial<XAUITheme['fontSizes']>;
139
+ lineHeights?: Partial<XAUITheme['lineHeights']>;
140
+ fontWeights?: Partial<XAUITheme['fontWeights']>;
141
+ fontFamilies?: Partial<XAUITheme['fontFamilies']>;
142
+ /** Per role, and `shadowOffset` is replaced whole — a half-set offset is not a shadow. */
143
+ shadows?: {
144
+ [K in keyof XAUITheme['shadows']]?: Partial<XAUIShadow>;
145
+ };
146
+ opacity?: Partial<XAUITheme['opacity']>;
147
+ controlHeights?: Partial<XAUITheme['controlHeights']>;
148
+ };
149
+ /** What `createTheme` returns: both modes, resolved, sharing one id. */
150
+ type XAUIThemeSet = {
151
+ id: string;
152
+ light: XAUITheme;
153
+ dark: XAUITheme;
154
+ };
155
+
156
+ /** `'system'` follows the device; the resolved value is never `'system'`. */
157
+ type ColorModePreference = 'light' | 'dark' | 'system';
158
+ type XAUIProviderProps = {
159
+ children: ReactNode;
160
+ /** Build it once with `createTheme`, at module level. */
161
+ theme?: XAUIThemeSet;
162
+ /** Controlled: the library owns neither the state nor its persistence. */
163
+ colorMode?: ColorModePreference;
164
+ };
165
+
166
+ /**
167
+ * Wraps the app once.
168
+ *
169
+ * `theme` is expected to come from `createTheme` at module level. The provider selects a
170
+ * mode from an already-resolved set rather than memoizing on the prop's identity — which
171
+ * is what the v0 provider did, rebuilding every style in the app on each parent render.
172
+ */
173
+ declare function XAUIProvider({ children, theme, colorMode, }: XAUIProviderProps): react.JSX.Element;
174
+
175
+ /**
176
+ * Build a theme once, at module level:
177
+ *
178
+ * ```ts
179
+ * export const appTheme = createTheme({ colors: { light: { accent: '#3b82f6' } } })
180
+ * ```
181
+ *
182
+ * Module level is not a style preference — it is what makes the memoization bug
183
+ * impossible. A literal object passed to the provider changes identity on every parent
184
+ * render and rebuilds every style in the app.
185
+ */
186
+ declare function createTheme(config?: XAUIThemeConfig): XAUIThemeSet;
187
+ declare const defaultTheme: XAUIThemeSet;
188
+
189
+ /**
190
+ * The derived layer: ~30 tokens computed from the source layer, never written by hand.
191
+ * Override `accent` and `accentPressed`, `accentSoft`, `accentSoftForeground` follow.
192
+ *
193
+ * These are HeroUI's `color-mix(in oklab, …)` formulas transposed to JS, because React
194
+ * Native has no `color-mix()`. Their `-hover` names became `-pressed`: what they feed is
195
+ * the press overlay, and the web name was a leftover.
196
+ */
197
+ declare function deriveColors(s: XAUISourceColors): XAUIDerivedColors;
198
+
199
+ /**
200
+ * The raw palette — Tailwind's scale, 22 families x 11 shades.
201
+ *
202
+ * It sits **outside** the theme on purpose: components read semantic tokens
203
+ * (`accent`, `danger`, `surface`), never `zinc[500]`. This is the material a theme is
204
+ * built from, exposed so an app can build its own source layer from the same scale.
205
+ */
206
+ declare const palette: {
207
+ readonly slate: {
208
+ readonly 50: "#f8fafc";
209
+ readonly 100: "#f1f5f9";
210
+ readonly 200: "#e2e8f0";
211
+ readonly 300: "#cbd5e1";
212
+ readonly 400: "#94a3b8";
213
+ readonly 500: "#64748b";
214
+ readonly 600: "#475569";
215
+ readonly 700: "#334155";
216
+ readonly 800: "#1e293b";
217
+ readonly 900: "#0f172a";
218
+ readonly 950: "#020617";
219
+ };
220
+ readonly gray: {
221
+ readonly 50: "#f9fafb";
222
+ readonly 100: "#f3f4f6";
223
+ readonly 200: "#e5e7eb";
224
+ readonly 300: "#d1d5db";
225
+ readonly 400: "#9ca3af";
226
+ readonly 500: "#6b7280";
227
+ readonly 600: "#4b5563";
228
+ readonly 700: "#374151";
229
+ readonly 800: "#1f2937";
230
+ readonly 900: "#111827";
231
+ readonly 950: "#030712";
232
+ };
233
+ readonly zinc: {
234
+ readonly 50: "#fafafa";
235
+ readonly 100: "#f4f4f5";
236
+ readonly 200: "#e4e4e7";
237
+ readonly 300: "#d4d4d8";
238
+ readonly 400: "#a1a1aa";
239
+ readonly 500: "#71717a";
240
+ readonly 600: "#52525b";
241
+ readonly 700: "#3f3f46";
242
+ readonly 800: "#27272a";
243
+ readonly 900: "#18181b";
244
+ readonly 950: "#09090b";
245
+ };
246
+ readonly neutral: {
247
+ readonly 50: "#fafafa";
248
+ readonly 100: "#f5f5f5";
249
+ readonly 200: "#e5e5e5";
250
+ readonly 300: "#d4d4d4";
251
+ readonly 400: "#a3a3a3";
252
+ readonly 500: "#737373";
253
+ readonly 600: "#525252";
254
+ readonly 700: "#404040";
255
+ readonly 800: "#262626";
256
+ readonly 900: "#171717";
257
+ readonly 950: "#0a0a0a";
258
+ };
259
+ readonly stone: {
260
+ readonly 50: "#fafaf9";
261
+ readonly 100: "#f5f5f4";
262
+ readonly 200: "#e7e5e4";
263
+ readonly 300: "#d6d3d1";
264
+ readonly 400: "#a8a29e";
265
+ readonly 500: "#78716c";
266
+ readonly 600: "#57534e";
267
+ readonly 700: "#44403c";
268
+ readonly 800: "#292524";
269
+ readonly 900: "#1c1917";
270
+ readonly 950: "#0c0a09";
271
+ };
272
+ readonly red: {
273
+ readonly 50: "#fef2f2";
274
+ readonly 100: "#fee2e2";
275
+ readonly 200: "#fecaca";
276
+ readonly 300: "#fca5a5";
277
+ readonly 400: "#f87171";
278
+ readonly 500: "#ef4444";
279
+ readonly 600: "#dc2626";
280
+ readonly 700: "#b91c1c";
281
+ readonly 800: "#991b1b";
282
+ readonly 900: "#7f1d1d";
283
+ readonly 950: "#450a0a";
284
+ };
285
+ readonly orange: {
286
+ readonly 50: "#fff7ed";
287
+ readonly 100: "#ffedd5";
288
+ readonly 200: "#fed7aa";
289
+ readonly 300: "#fdba74";
290
+ readonly 400: "#fb923c";
291
+ readonly 500: "#f97316";
292
+ readonly 600: "#ea580c";
293
+ readonly 700: "#c2410c";
294
+ readonly 800: "#9a3412";
295
+ readonly 900: "#7c2d12";
296
+ readonly 950: "#431407";
297
+ };
298
+ readonly amber: {
299
+ readonly 50: "#fffbeb";
300
+ readonly 100: "#fef3c7";
301
+ readonly 200: "#fde68a";
302
+ readonly 300: "#fcd34d";
303
+ readonly 400: "#fbbf24";
304
+ readonly 500: "#f59e0b";
305
+ readonly 600: "#d97706";
306
+ readonly 700: "#b45309";
307
+ readonly 800: "#92400e";
308
+ readonly 900: "#78350f";
309
+ readonly 950: "#451a03";
310
+ };
311
+ readonly yellow: {
312
+ readonly 50: "#fefce8";
313
+ readonly 100: "#fef9c3";
314
+ readonly 200: "#fef08a";
315
+ readonly 300: "#fde047";
316
+ readonly 400: "#facc15";
317
+ readonly 500: "#eab308";
318
+ readonly 600: "#ca8a04";
319
+ readonly 700: "#a16207";
320
+ readonly 800: "#854d0e";
321
+ readonly 900: "#713f12";
322
+ readonly 950: "#422006";
323
+ };
324
+ readonly lime: {
325
+ readonly 50: "#f7fee7";
326
+ readonly 100: "#ecfccb";
327
+ readonly 200: "#d9f99d";
328
+ readonly 300: "#bef264";
329
+ readonly 400: "#a3e635";
330
+ readonly 500: "#84cc16";
331
+ readonly 600: "#65a30d";
332
+ readonly 700: "#4d7c0f";
333
+ readonly 800: "#3f6212";
334
+ readonly 900: "#365314";
335
+ readonly 950: "#1a2e05";
336
+ };
337
+ readonly green: {
338
+ readonly 50: "#f0fdf4";
339
+ readonly 100: "#dcfce7";
340
+ readonly 200: "#bbf7d0";
341
+ readonly 300: "#86efac";
342
+ readonly 400: "#4ade80";
343
+ readonly 500: "#22c55e";
344
+ readonly 600: "#16a34a";
345
+ readonly 700: "#15803d";
346
+ readonly 800: "#166534";
347
+ readonly 900: "#14532d";
348
+ readonly 950: "#052e16";
349
+ };
350
+ readonly emerald: {
351
+ readonly 50: "#ecfdf5";
352
+ readonly 100: "#d1fae5";
353
+ readonly 200: "#a7f3d0";
354
+ readonly 300: "#6ee7b7";
355
+ readonly 400: "#34d399";
356
+ readonly 500: "#10b981";
357
+ readonly 600: "#059669";
358
+ readonly 700: "#047857";
359
+ readonly 800: "#065f46";
360
+ readonly 900: "#064e3b";
361
+ readonly 950: "#022c22";
362
+ };
363
+ readonly teal: {
364
+ readonly 50: "#f0fdfa";
365
+ readonly 100: "#ccfbf1";
366
+ readonly 200: "#99f6e4";
367
+ readonly 300: "#5eead4";
368
+ readonly 400: "#2dd4bf";
369
+ readonly 500: "#14b8a6";
370
+ readonly 600: "#0d9488";
371
+ readonly 700: "#0f766e";
372
+ readonly 800: "#115e59";
373
+ readonly 900: "#134e4a";
374
+ readonly 950: "#042f2e";
375
+ };
376
+ readonly cyan: {
377
+ readonly 50: "#ecfeff";
378
+ readonly 100: "#cffafe";
379
+ readonly 200: "#a5f3fc";
380
+ readonly 300: "#67e8f9";
381
+ readonly 400: "#22d3ee";
382
+ readonly 500: "#06b6d4";
383
+ readonly 600: "#0891b2";
384
+ readonly 700: "#0e7490";
385
+ readonly 800: "#155e75";
386
+ readonly 900: "#164e63";
387
+ readonly 950: "#083344";
388
+ };
389
+ readonly sky: {
390
+ readonly 50: "#f0f9ff";
391
+ readonly 100: "#e0f2fe";
392
+ readonly 200: "#bae6fd";
393
+ readonly 300: "#7dd3fc";
394
+ readonly 400: "#38bdf8";
395
+ readonly 500: "#0ea5e9";
396
+ readonly 600: "#0284c7";
397
+ readonly 700: "#0369a1";
398
+ readonly 800: "#075985";
399
+ readonly 900: "#0c4a6e";
400
+ readonly 950: "#082f49";
401
+ };
402
+ readonly blue: {
403
+ readonly 50: "#eff6ff";
404
+ readonly 100: "#dbeafe";
405
+ readonly 200: "#bfdbfe";
406
+ readonly 300: "#93c5fd";
407
+ readonly 400: "#60a5fa";
408
+ readonly 500: "#3b82f6";
409
+ readonly 600: "#2563eb";
410
+ readonly 700: "#1d4ed8";
411
+ readonly 800: "#1e40af";
412
+ readonly 900: "#1e3a8a";
413
+ readonly 950: "#172554";
414
+ };
415
+ readonly indigo: {
416
+ readonly 50: "#eef2ff";
417
+ readonly 100: "#e0e7ff";
418
+ readonly 200: "#c7d2fe";
419
+ readonly 300: "#a5b4fc";
420
+ readonly 400: "#818cf8";
421
+ readonly 500: "#6366f1";
422
+ readonly 600: "#4f46e5";
423
+ readonly 700: "#4338ca";
424
+ readonly 800: "#3730a3";
425
+ readonly 900: "#312e81";
426
+ readonly 950: "#1e1b4b";
427
+ };
428
+ readonly violet: {
429
+ readonly 50: "#f5f3ff";
430
+ readonly 100: "#ede9fe";
431
+ readonly 200: "#ddd6fe";
432
+ readonly 300: "#c4b5fd";
433
+ readonly 400: "#a78bfa";
434
+ readonly 500: "#8b5cf6";
435
+ readonly 600: "#7c3aed";
436
+ readonly 700: "#6d28d9";
437
+ readonly 800: "#5b21b6";
438
+ readonly 900: "#4c1d95";
439
+ readonly 950: "#2e1065";
440
+ };
441
+ readonly purple: {
442
+ readonly 50: "#faf5ff";
443
+ readonly 100: "#f3e8ff";
444
+ readonly 200: "#e9d5ff";
445
+ readonly 300: "#d8b4fe";
446
+ readonly 400: "#c084fc";
447
+ readonly 500: "#a855f7";
448
+ readonly 600: "#9333ea";
449
+ readonly 700: "#7e22ce";
450
+ readonly 800: "#6b21a8";
451
+ readonly 900: "#581c87";
452
+ readonly 950: "#3b0764";
453
+ };
454
+ readonly fuchsia: {
455
+ readonly 50: "#fdf4ff";
456
+ readonly 100: "#fae8ff";
457
+ readonly 200: "#f5d0fe";
458
+ readonly 300: "#f0abfc";
459
+ readonly 400: "#e879f9";
460
+ readonly 500: "#d946ef";
461
+ readonly 600: "#c026d3";
462
+ readonly 700: "#a21caf";
463
+ readonly 800: "#86198f";
464
+ readonly 900: "#701a75";
465
+ readonly 950: "#4a044e";
466
+ };
467
+ readonly pink: {
468
+ readonly 50: "#fdf2f8";
469
+ readonly 100: "#fce7f3";
470
+ readonly 200: "#fbcfe8";
471
+ readonly 300: "#f9a8d4";
472
+ readonly 400: "#f472b6";
473
+ readonly 500: "#ec4899";
474
+ readonly 600: "#db2777";
475
+ readonly 700: "#be185d";
476
+ readonly 800: "#9d174d";
477
+ readonly 900: "#831843";
478
+ readonly 950: "#500724";
479
+ };
480
+ readonly rose: {
481
+ readonly 50: "#fff1f2";
482
+ readonly 100: "#ffe4e6";
483
+ readonly 200: "#fecdd3";
484
+ readonly 300: "#fda4af";
485
+ readonly 400: "#fb7185";
486
+ readonly 500: "#f43f5e";
487
+ readonly 600: "#e11d48";
488
+ readonly 700: "#be123c";
489
+ readonly 800: "#9f1239";
490
+ readonly 900: "#881337";
491
+ readonly 950: "#4c0519";
492
+ };
493
+ readonly black: "#000000";
494
+ readonly white: "#ffffff";
495
+ readonly transparent: "transparent";
496
+ };
497
+ /** Constant across both modes. */
498
+ declare const primitives: {
499
+ readonly white: "#ffffff";
500
+ readonly black: "#000000";
501
+ readonly snow: "#fafafa";
502
+ readonly eclipse: "#18181b";
503
+ };
504
+ type PaletteFamily = keyof typeof palette;
505
+ type PaletteShade = keyof (typeof palette)['zinc'];
506
+
507
+ /** One value redraws every corner in the library. */
508
+ declare function buildRadius(base: number): XAUIRadius;
509
+ /**
510
+ * Three roles, not an sm→xl scale — which is what lets dark mode drop the surface shadow
511
+ * entirely instead of shipping a scale that reads as dirt on a dark background.
512
+ */
513
+ declare function buildShadows(mode: ColorMode): XAUITheme['shadows'];
514
+
515
+ declare const tokens: {
516
+ readonly light: {
517
+ readonly background: "#fafafa";
518
+ readonly foreground: "#18181b";
519
+ readonly surface: "#ffffff";
520
+ readonly surfaceForeground: "#18181b";
521
+ readonly surfaceSecondary: "#f4f4f5";
522
+ readonly surfaceSecondaryForeground: "#18181b";
523
+ readonly surfaceTertiary: "#e4e4e7";
524
+ readonly surfaceTertiaryForeground: "#18181b";
525
+ readonly overlay: "#ffffff";
526
+ readonly overlayForeground: "#18181b";
527
+ readonly backdrop: "rgba(0, 0, 0, 0.2)";
528
+ readonly muted: "#71717a";
529
+ readonly default: "#f4f4f5";
530
+ readonly defaultForeground: "#18181b";
531
+ readonly accent: "#9333ea";
532
+ readonly accentForeground: "#faf5ff";
533
+ readonly fieldBackground: "#ffffff";
534
+ readonly fieldForeground: "#18181b";
535
+ readonly fieldPlaceholder: "#71717a";
536
+ readonly fieldBorder: "#e4e4e7";
537
+ readonly success: "#15803d";
538
+ readonly successForeground: "#fafafa";
539
+ readonly warning: "#b45309";
540
+ readonly warningForeground: "#fafafa";
541
+ readonly danger: "#dc2626";
542
+ readonly dangerForeground: "#fafafa";
543
+ readonly segment: "#ffffff";
544
+ readonly segmentForeground: "#18181b";
545
+ readonly border: "#e4e4e7";
546
+ readonly separator: "#d4d4d8";
547
+ readonly focus: "#9333ea";
548
+ readonly link: "#18181b";
549
+ readonly accentPressed: "#9c4eee";
550
+ readonly successPressed: "#378c50";
551
+ readonly warningPressed: "#bd642f";
552
+ readonly dangerPressed: "#e2473f";
553
+ readonly defaultPressed: "#eaeaeb";
554
+ readonly surfacePressed: "#eaeaea";
555
+ readonly defaultSoft: "rgba(244, 244, 245, 0.5)";
556
+ readonly defaultSoftForeground: "#18181b";
557
+ readonly defaultSoftPressed: "rgba(244, 244, 245, 0.6)";
558
+ readonly accentSoft: "rgba(147, 51, 234, 0.15)";
559
+ readonly accentSoftForeground: "#7833bc";
560
+ readonly accentSoftPressed: "rgba(147, 51, 234, 0.2)";
561
+ readonly successSoft: "rgba(21, 128, 61, 0.15)";
562
+ readonly successSoftForeground: "#205f34";
563
+ readonly successSoftPressed: "rgba(21, 128, 61, 0.2)";
564
+ readonly warningSoft: "rgba(180, 83, 9, 0.15)";
565
+ readonly warningSoftForeground: "#793f1e";
566
+ readonly warningSoftPressed: "rgba(180, 83, 9, 0.2)";
567
+ readonly dangerSoft: "rgba(220, 38, 38, 0.15)";
568
+ readonly dangerSoftForeground: "#b22b28";
569
+ readonly dangerSoftPressed: "rgba(220, 38, 38, 0.2)";
570
+ readonly backgroundSecondary: "#f0f0f0";
571
+ readonly backgroundTertiary: "#e5e5e6";
572
+ readonly backgroundInverse: "#18181b";
573
+ readonly borderSecondary: "#c6c6c7";
574
+ readonly borderTertiary: "#a8a8a9";
575
+ readonly separatorSecondary: "#d8d8d8";
576
+ readonly separatorTertiary: "#cdcdce";
577
+ readonly fieldPressed: "#e5e5e5";
578
+ readonly fieldFocus: "#ffffff";
579
+ readonly fieldBorderPressed: "#c8c8cb";
580
+ readonly fieldBorderFocus: "#a9a9ac";
581
+ readonly white: "#ffffff";
582
+ readonly black: "#000000";
583
+ readonly snow: "#fafafa";
584
+ readonly eclipse: "#18181b";
585
+ };
586
+ readonly dark: {
587
+ readonly background: "#09090b";
588
+ readonly foreground: "#fafafa";
589
+ readonly surface: "#18181b";
590
+ readonly surfaceForeground: "#fafafa";
591
+ readonly surfaceSecondary: "#27272a";
592
+ readonly surfaceSecondaryForeground: "#fafafa";
593
+ readonly surfaceTertiary: "#3f3f46";
594
+ readonly surfaceTertiaryForeground: "#fafafa";
595
+ readonly overlay: "#18181b";
596
+ readonly overlayForeground: "#fafafa";
597
+ readonly backdrop: "rgba(0, 0, 0, 0.5)";
598
+ readonly muted: "#a1a1aa";
599
+ readonly default: "#27272a";
600
+ readonly defaultForeground: "#fafafa";
601
+ readonly accent: "#c084fc";
602
+ readonly accentForeground: "#18181b";
603
+ readonly fieldBackground: "#18181b";
604
+ readonly fieldForeground: "#fafafa";
605
+ readonly fieldPlaceholder: "#a1a1aa";
606
+ readonly fieldBorder: "#3f3f46";
607
+ readonly success: "#4ade80";
608
+ readonly successForeground: "#18181b";
609
+ readonly warning: "#fbbf24";
610
+ readonly warningForeground: "#18181b";
611
+ readonly danger: "#f87171";
612
+ readonly dangerForeground: "#18181b";
613
+ readonly segment: "#3f3f46";
614
+ readonly segmentForeground: "#fafafa";
615
+ readonly border: "#27272a";
616
+ readonly separator: "#52525b";
617
+ readonly focus: "#c084fc";
618
+ readonly link: "#fafafa";
619
+ readonly accentPressed: "#ad78e3";
620
+ readonly successPressed: "#47c875";
621
+ readonly warningPressed: "#e1ac2b";
622
+ readonly dangerPressed: "#df6868";
623
+ readonly defaultPressed: "#2e2e31";
624
+ readonly surfacePressed: "#27272a";
625
+ readonly defaultSoft: "rgba(39, 39, 42, 0.5)";
626
+ readonly defaultSoftForeground: "#fafafa";
627
+ readonly defaultSoftPressed: "rgba(39, 39, 42, 0.6)";
628
+ readonly accentSoft: "rgba(192, 132, 252, 0.15)";
629
+ readonly accentSoftForeground: "#cb9dfd";
630
+ readonly accentSoftPressed: "rgba(192, 132, 252, 0.2)";
631
+ readonly successSoft: "rgba(74, 222, 128, 0.15)";
632
+ readonly successSoftForeground: "#8de8a6";
633
+ readonly successSoftPressed: "rgba(74, 222, 128, 0.2)";
634
+ readonly warningSoft: "rgba(251, 191, 36, 0.15)";
635
+ readonly warningSoftForeground: "#fbd586";
636
+ readonly warningSoftPressed: "rgba(251, 191, 36, 0.2)";
637
+ readonly dangerSoft: "rgba(248, 113, 113, 0.15)";
638
+ readonly dangerSoftForeground: "#fc8f8c";
639
+ readonly dangerSoftPressed: "rgba(248, 113, 113, 0.2)";
640
+ readonly backgroundSecondary: "#101012";
641
+ readonly backgroundTertiary: "#18181a";
642
+ readonly backgroundInverse: "#fafafa";
643
+ readonly borderSecondary: "#424245";
644
+ readonly borderTertiary: "#5b5b5e";
645
+ readonly separatorSecondary: "#343437";
646
+ readonly separatorTertiary: "#3c3c3f";
647
+ readonly fieldPressed: "#2a2a2d";
648
+ readonly fieldFocus: "#18181b";
649
+ readonly fieldBorderPressed: "#535359";
650
+ readonly fieldBorderFocus: "#6b6b71";
651
+ readonly white: "#ffffff";
652
+ readonly black: "#000000";
653
+ readonly snow: "#fafafa";
654
+ readonly eclipse: "#18181b";
655
+ };
656
+ };
657
+ /** Which keys belong to the source layer — the rest is derived or primitive. */
658
+ declare const sourceKeys: readonly ["background", "foreground", "surface", "surfaceForeground", "surfaceSecondary", "surfaceSecondaryForeground", "surfaceTertiary", "surfaceTertiaryForeground", "overlay", "overlayForeground", "backdrop", "muted", "default", "defaultForeground", "accent", "accentForeground", "fieldBackground", "fieldForeground", "fieldPlaceholder", "fieldBorder", "success", "successForeground", "warning", "warningForeground", "danger", "dangerForeground", "segment", "segmentForeground", "border", "separator", "focus", "link"];
659
+
660
+ /** Bare context. `null` is what lets the hooks throw a named error outside the provider. */
661
+ declare const ThemeContext: react.Context<XAUITheme | null>;
662
+
663
+ declare function useXAUITheme(): XAUITheme;
664
+ /** The resolved mode — never `'system'`. */
665
+ declare function useColorMode(): ColorMode;
666
+ declare function useThemeColor(token: keyof XAUIColors): string;
667
+ declare function useThemeColor(tokens: Array<keyof XAUIColors>): string[];
668
+
669
+ export { type ColorMode, type ColorModePreference, type FontSizeKey, type FontWeightKey, type PaletteFamily, type PaletteShade, type RadiusKey, type Size, ThemeContext, type XAUIColors, type XAUIDerivedColors, type XAUIPrimitiveColors, XAUIProvider, type XAUIProviderProps, type XAUIRadius, type XAUIShadow, type XAUISourceColors, type XAUITheme, type XAUIThemeConfig, type XAUIThemeSet, buildRadius, buildShadows, createTheme, defaultTheme, deriveColors, palette, primitives, sourceKeys, tokens, useColorMode, useThemeColor, useXAUITheme };
@@ -0,0 +1,32 @@
1
+ import {
2
+ ThemeContext,
3
+ XAUIProvider,
4
+ buildRadius,
5
+ buildShadows,
6
+ createTheme,
7
+ defaultTheme,
8
+ deriveColors,
9
+ palette,
10
+ primitives,
11
+ sourceKeys,
12
+ tokens,
13
+ useColorMode,
14
+ useThemeColor,
15
+ useXAUITheme
16
+ } from "../chunk-T3ZI2PZ6.js";
17
+ export {
18
+ ThemeContext,
19
+ XAUIProvider,
20
+ buildRadius,
21
+ buildShadows,
22
+ createTheme,
23
+ defaultTheme,
24
+ deriveColors,
25
+ palette,
26
+ primitives,
27
+ sourceKeys,
28
+ tokens,
29
+ useColorMode,
30
+ useThemeColor,
31
+ useXAUITheme
32
+ };