@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,791 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }// src/provider/xaui-provider.tsx
2
+ var _reactnative = require('react-native');
3
+
4
+ // src/utils/stable-hash.ts
5
+ function canonical(value) {
6
+ if (value === null || typeof value !== "object") return _nullishCoalesce(JSON.stringify(value), () => ( "null"));
7
+ if (Array.isArray(value)) return `[${value.map(canonical).join(",")}]`;
8
+ const entries = Object.entries(value).filter(([, v]) => typeof v !== "function").sort(([a], [b]) => a < b ? -1 : 1).map(([k, v]) => `${JSON.stringify(k)}:${canonical(v)}`);
9
+ return `{${entries.join(",")}}`;
10
+ }
11
+ function stableHash(value) {
12
+ const input = canonical(value);
13
+ let hash = 2166136261;
14
+ for (let i = 0; i < input.length; i++) {
15
+ hash ^= input.charCodeAt(i);
16
+ hash = Math.imul(hash, 16777619) >>> 0;
17
+ }
18
+ return hash.toString(36);
19
+ }
20
+
21
+ // src/utils/colors.ts
22
+ var srgbToLinear = (c) => c <= 0.04045 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4;
23
+ var linearToSrgb = (c) => c <= 31308e-7 ? 12.92 * c : 1.055 * c ** (1 / 2.4) - 0.055;
24
+ var clamp01 = (n) => Math.min(1, Math.max(0, n));
25
+ var HEX = /^#?(?:[0-9a-f]{3}|[0-9a-f]{6})$/i;
26
+ function hexToRgb(hex) {
27
+ if (!HEX.test(hex)) {
28
+ throw new Error(
29
+ `XAUI: "${hex}" is not a hex colour. Tokens that feed mix() and alpha() must be #rgb or #rrggbb \u2014 named colours and rgb()/rgba() values cannot be blended.`
30
+ );
31
+ }
32
+ const raw = hex.replace("#", "");
33
+ const full = raw.length === 3 ? raw.split("").map((c) => c + c).join("") : raw;
34
+ return [
35
+ parseInt(full.slice(0, 2), 16) / 255,
36
+ parseInt(full.slice(2, 4), 16) / 255,
37
+ parseInt(full.slice(4, 6), 16) / 255
38
+ ];
39
+ }
40
+ function rgbToHex([r, g, b]) {
41
+ const to = (n) => Math.round(clamp01(n) * 255).toString(16).padStart(2, "0");
42
+ return `#${to(r)}${to(g)}${to(b)}`;
43
+ }
44
+ function rgbToOklab([r, g, b]) {
45
+ const R = srgbToLinear(r);
46
+ const G = srgbToLinear(g);
47
+ const B = srgbToLinear(b);
48
+ const l = Math.cbrt(0.4122214708 * R + 0.5363325363 * G + 0.0514459929 * B);
49
+ const m = Math.cbrt(0.2119034982 * R + 0.6806995451 * G + 0.1073969566 * B);
50
+ const s = Math.cbrt(0.0883024619 * R + 0.2817188376 * G + 0.6299787005 * B);
51
+ return [
52
+ 0.2104542553 * l + 0.793617785 * m - 0.0040720468 * s,
53
+ 1.9779984951 * l - 2.428592205 * m + 0.4505937099 * s,
54
+ 0.0259040371 * l + 0.7827717662 * m - 0.808675766 * s
55
+ ];
56
+ }
57
+ function oklabToRgb([L, a, b]) {
58
+ const l = (L + 0.3963377774 * a + 0.2158037573 * b) ** 3;
59
+ const m = (L - 0.1055613458 * a - 0.0638541728 * b) ** 3;
60
+ const s = (L - 0.0894841775 * a - 1.291485548 * b) ** 3;
61
+ return [
62
+ clamp01(linearToSrgb(4.0767416621 * l - 3.3077115913 * m + 0.2309699292 * s)),
63
+ clamp01(linearToSrgb(-1.2684380046 * l + 2.6097574011 * m - 0.3413193965 * s)),
64
+ clamp01(linearToSrgb(-0.0041960863 * l - 0.7034186147 * m + 1.707614701 * s))
65
+ ];
66
+ }
67
+ function mix(base, other, amount) {
68
+ const from = rgbToOklab(hexToRgb(base));
69
+ const to = rgbToOklab(hexToRgb(other));
70
+ return rgbToHex(
71
+ oklabToRgb([
72
+ from[0] + (to[0] - from[0]) * amount,
73
+ from[1] + (to[1] - from[1]) * amount,
74
+ from[2] + (to[2] - from[2]) * amount
75
+ ])
76
+ );
77
+ }
78
+ function alpha(hex, amount) {
79
+ const [r, g, b] = hexToRgb(hex).map((v) => Math.round(v * 255));
80
+ return `rgba(${r}, ${g}, ${b}, ${amount})`;
81
+ }
82
+
83
+ // src/theme/derive-colors.ts
84
+ function deriveColors(s) {
85
+ return {
86
+ accentPressed: mix(s.accent, s.accentForeground, 0.1),
87
+ successPressed: mix(s.success, s.successForeground, 0.1),
88
+ warningPressed: mix(s.warning, s.warningForeground, 0.1),
89
+ dangerPressed: mix(s.danger, s.dangerForeground, 0.1),
90
+ defaultPressed: mix(s.default, s.defaultForeground, 0.04),
91
+ surfacePressed: mix(s.surface, s.surfaceForeground, 0.08),
92
+ defaultSoft: alpha(s.default, 0.5),
93
+ defaultSoftForeground: s.defaultForeground,
94
+ defaultSoftPressed: alpha(s.default, 0.6),
95
+ accentSoft: alpha(s.accent, 0.15),
96
+ accentSoftForeground: mix(s.accent, s.foreground, 0.2),
97
+ accentSoftPressed: alpha(s.accent, 0.2),
98
+ successSoft: alpha(s.success, 0.15),
99
+ successSoftForeground: mix(s.success, s.foreground, 0.3),
100
+ successSoftPressed: alpha(s.success, 0.2),
101
+ warningSoft: alpha(s.warning, 0.15),
102
+ warningSoftForeground: mix(s.warning, s.foreground, 0.35),
103
+ warningSoftPressed: alpha(s.warning, 0.2),
104
+ dangerSoft: alpha(s.danger, 0.15),
105
+ dangerSoftForeground: mix(s.danger, s.foreground, 0.2),
106
+ dangerSoftPressed: alpha(s.danger, 0.2),
107
+ backgroundSecondary: mix(s.background, s.foreground, 0.04),
108
+ backgroundTertiary: mix(s.background, s.foreground, 0.08),
109
+ backgroundInverse: s.foreground,
110
+ borderSecondary: mix(s.surface, s.surfaceForeground, 0.22),
111
+ borderTertiary: mix(s.surface, s.surfaceForeground, 0.34),
112
+ separatorSecondary: mix(s.surface, s.surfaceForeground, 0.15),
113
+ separatorTertiary: mix(s.surface, s.surfaceForeground, 0.19),
114
+ fieldPressed: mix(s.fieldBackground, s.fieldForeground, 0.1),
115
+ fieldFocus: s.fieldBackground,
116
+ fieldBorderPressed: mix(s.fieldBorder, s.fieldForeground, 0.12),
117
+ fieldBorderFocus: mix(s.fieldBorder, s.fieldForeground, 0.26)
118
+ };
119
+ }
120
+
121
+ // src/theme/scales.ts
122
+ var SPACING_UNIT = 4;
123
+ var RADIUS_BASE = 12;
124
+ function buildRadius(base) {
125
+ return {
126
+ xs: base * 0.25,
127
+ sm: base * 0.5,
128
+ md: base * 0.75,
129
+ lg: base,
130
+ xl: base * 1.5,
131
+ "2xl": base * 2,
132
+ "3xl": base * 3,
133
+ "4xl": base * 4,
134
+ field: base * 1.75,
135
+ full: 9999
136
+ };
137
+ }
138
+ var controlHeights = {
139
+ xs: 32,
140
+ sm: 40,
141
+ md: 48,
142
+ lg: 56
143
+ };
144
+ var fontSizes = {
145
+ xs: 12,
146
+ sm: 14,
147
+ md: 16,
148
+ lg: 18,
149
+ xl: 20,
150
+ "2xl": 24,
151
+ "3xl": 30,
152
+ "4xl": 36
153
+ };
154
+ var lineHeights = {
155
+ xs: 16,
156
+ sm: 20,
157
+ md: 24,
158
+ lg: 28,
159
+ xl: 28,
160
+ "2xl": 32,
161
+ "3xl": 36,
162
+ "4xl": 40
163
+ };
164
+ var fontWeights = {
165
+ regular: "400",
166
+ medium: "500",
167
+ semibold: "600",
168
+ bold: "700"
169
+ };
170
+ var fontFamilies = {
171
+ body: "System",
172
+ heading: "System",
173
+ mono: "monospace"
174
+ };
175
+ var borderWidth = { default: 1, field: 1 };
176
+ var opacity = { disabled: 0.5 };
177
+ var noShadow = {
178
+ shadowColor: "#000000",
179
+ shadowOffset: { width: 0, height: 0 },
180
+ shadowOpacity: 0,
181
+ shadowRadius: 0,
182
+ elevation: 0
183
+ };
184
+ function buildShadows(mode) {
185
+ if (mode === "dark") {
186
+ return {
187
+ surface: noShadow,
188
+ overlay: {
189
+ shadowColor: "#000000",
190
+ shadowOffset: { width: 0, height: 8 },
191
+ shadowOpacity: 0.6,
192
+ shadowRadius: 24,
193
+ elevation: 16
194
+ },
195
+ field: noShadow
196
+ };
197
+ }
198
+ return {
199
+ surface: {
200
+ shadowColor: "#000000",
201
+ shadowOffset: { width: 0, height: 1 },
202
+ shadowOpacity: 0.06,
203
+ shadowRadius: 3,
204
+ elevation: 2
205
+ },
206
+ overlay: {
207
+ shadowColor: "#000000",
208
+ shadowOffset: { width: 0, height: 8 },
209
+ shadowOpacity: 0.14,
210
+ shadowRadius: 24,
211
+ elevation: 16
212
+ },
213
+ field: {
214
+ shadowColor: "#000000",
215
+ shadowOffset: { width: 0, height: 1 },
216
+ shadowOpacity: 0.04,
217
+ shadowRadius: 2,
218
+ elevation: 1
219
+ }
220
+ };
221
+ }
222
+
223
+ // src/theme/tokens.gen.ts
224
+ var tokens = {
225
+ light: {
226
+ background: "#fafafa",
227
+ foreground: "#18181b",
228
+ surface: "#ffffff",
229
+ surfaceForeground: "#18181b",
230
+ surfaceSecondary: "#f4f4f5",
231
+ surfaceSecondaryForeground: "#18181b",
232
+ surfaceTertiary: "#e4e4e7",
233
+ surfaceTertiaryForeground: "#18181b",
234
+ overlay: "#ffffff",
235
+ overlayForeground: "#18181b",
236
+ backdrop: "rgba(0, 0, 0, 0.2)",
237
+ muted: "#71717a",
238
+ default: "#f4f4f5",
239
+ defaultForeground: "#18181b",
240
+ accent: "#9333ea",
241
+ accentForeground: "#faf5ff",
242
+ fieldBackground: "#ffffff",
243
+ fieldForeground: "#18181b",
244
+ fieldPlaceholder: "#71717a",
245
+ fieldBorder: "#e4e4e7",
246
+ success: "#15803d",
247
+ successForeground: "#fafafa",
248
+ warning: "#b45309",
249
+ warningForeground: "#fafafa",
250
+ danger: "#dc2626",
251
+ dangerForeground: "#fafafa",
252
+ segment: "#ffffff",
253
+ segmentForeground: "#18181b",
254
+ border: "#e4e4e7",
255
+ separator: "#d4d4d8",
256
+ focus: "#9333ea",
257
+ link: "#18181b",
258
+ accentPressed: "#9c4eee",
259
+ successPressed: "#378c50",
260
+ warningPressed: "#bd642f",
261
+ dangerPressed: "#e2473f",
262
+ defaultPressed: "#eaeaeb",
263
+ surfacePressed: "#eaeaea",
264
+ defaultSoft: "rgba(244, 244, 245, 0.5)",
265
+ defaultSoftForeground: "#18181b",
266
+ defaultSoftPressed: "rgba(244, 244, 245, 0.6)",
267
+ accentSoft: "rgba(147, 51, 234, 0.15)",
268
+ accentSoftForeground: "#7833bc",
269
+ accentSoftPressed: "rgba(147, 51, 234, 0.2)",
270
+ successSoft: "rgba(21, 128, 61, 0.15)",
271
+ successSoftForeground: "#205f34",
272
+ successSoftPressed: "rgba(21, 128, 61, 0.2)",
273
+ warningSoft: "rgba(180, 83, 9, 0.15)",
274
+ warningSoftForeground: "#793f1e",
275
+ warningSoftPressed: "rgba(180, 83, 9, 0.2)",
276
+ dangerSoft: "rgba(220, 38, 38, 0.15)",
277
+ dangerSoftForeground: "#b22b28",
278
+ dangerSoftPressed: "rgba(220, 38, 38, 0.2)",
279
+ backgroundSecondary: "#f0f0f0",
280
+ backgroundTertiary: "#e5e5e6",
281
+ backgroundInverse: "#18181b",
282
+ borderSecondary: "#c6c6c7",
283
+ borderTertiary: "#a8a8a9",
284
+ separatorSecondary: "#d8d8d8",
285
+ separatorTertiary: "#cdcdce",
286
+ fieldPressed: "#e5e5e5",
287
+ fieldFocus: "#ffffff",
288
+ fieldBorderPressed: "#c8c8cb",
289
+ fieldBorderFocus: "#a9a9ac",
290
+ white: "#ffffff",
291
+ black: "#000000",
292
+ snow: "#fafafa",
293
+ eclipse: "#18181b"
294
+ },
295
+ dark: {
296
+ background: "#09090b",
297
+ foreground: "#fafafa",
298
+ surface: "#18181b",
299
+ surfaceForeground: "#fafafa",
300
+ surfaceSecondary: "#27272a",
301
+ surfaceSecondaryForeground: "#fafafa",
302
+ surfaceTertiary: "#3f3f46",
303
+ surfaceTertiaryForeground: "#fafafa",
304
+ overlay: "#18181b",
305
+ overlayForeground: "#fafafa",
306
+ backdrop: "rgba(0, 0, 0, 0.5)",
307
+ muted: "#a1a1aa",
308
+ default: "#27272a",
309
+ defaultForeground: "#fafafa",
310
+ accent: "#c084fc",
311
+ accentForeground: "#18181b",
312
+ fieldBackground: "#18181b",
313
+ fieldForeground: "#fafafa",
314
+ fieldPlaceholder: "#a1a1aa",
315
+ fieldBorder: "#3f3f46",
316
+ success: "#4ade80",
317
+ successForeground: "#18181b",
318
+ warning: "#fbbf24",
319
+ warningForeground: "#18181b",
320
+ danger: "#f87171",
321
+ dangerForeground: "#18181b",
322
+ segment: "#3f3f46",
323
+ segmentForeground: "#fafafa",
324
+ border: "#27272a",
325
+ separator: "#52525b",
326
+ focus: "#c084fc",
327
+ link: "#fafafa",
328
+ accentPressed: "#ad78e3",
329
+ successPressed: "#47c875",
330
+ warningPressed: "#e1ac2b",
331
+ dangerPressed: "#df6868",
332
+ defaultPressed: "#2e2e31",
333
+ surfacePressed: "#27272a",
334
+ defaultSoft: "rgba(39, 39, 42, 0.5)",
335
+ defaultSoftForeground: "#fafafa",
336
+ defaultSoftPressed: "rgba(39, 39, 42, 0.6)",
337
+ accentSoft: "rgba(192, 132, 252, 0.15)",
338
+ accentSoftForeground: "#cb9dfd",
339
+ accentSoftPressed: "rgba(192, 132, 252, 0.2)",
340
+ successSoft: "rgba(74, 222, 128, 0.15)",
341
+ successSoftForeground: "#8de8a6",
342
+ successSoftPressed: "rgba(74, 222, 128, 0.2)",
343
+ warningSoft: "rgba(251, 191, 36, 0.15)",
344
+ warningSoftForeground: "#fbd586",
345
+ warningSoftPressed: "rgba(251, 191, 36, 0.2)",
346
+ dangerSoft: "rgba(248, 113, 113, 0.15)",
347
+ dangerSoftForeground: "#fc8f8c",
348
+ dangerSoftPressed: "rgba(248, 113, 113, 0.2)",
349
+ backgroundSecondary: "#101012",
350
+ backgroundTertiary: "#18181a",
351
+ backgroundInverse: "#fafafa",
352
+ borderSecondary: "#424245",
353
+ borderTertiary: "#5b5b5e",
354
+ separatorSecondary: "#343437",
355
+ separatorTertiary: "#3c3c3f",
356
+ fieldPressed: "#2a2a2d",
357
+ fieldFocus: "#18181b",
358
+ fieldBorderPressed: "#535359",
359
+ fieldBorderFocus: "#6b6b71",
360
+ white: "#ffffff",
361
+ black: "#000000",
362
+ snow: "#fafafa",
363
+ eclipse: "#18181b"
364
+ }
365
+ };
366
+ var sourceKeys = [
367
+ "background",
368
+ "foreground",
369
+ "surface",
370
+ "surfaceForeground",
371
+ "surfaceSecondary",
372
+ "surfaceSecondaryForeground",
373
+ "surfaceTertiary",
374
+ "surfaceTertiaryForeground",
375
+ "overlay",
376
+ "overlayForeground",
377
+ "backdrop",
378
+ "muted",
379
+ "default",
380
+ "defaultForeground",
381
+ "accent",
382
+ "accentForeground",
383
+ "fieldBackground",
384
+ "fieldForeground",
385
+ "fieldPlaceholder",
386
+ "fieldBorder",
387
+ "success",
388
+ "successForeground",
389
+ "warning",
390
+ "warningForeground",
391
+ "danger",
392
+ "dangerForeground",
393
+ "segment",
394
+ "segmentForeground",
395
+ "border",
396
+ "separator",
397
+ "focus",
398
+ "link"
399
+ ];
400
+
401
+ // src/theme/create-theme.ts
402
+ function resolveColors(mode, config) {
403
+ const defaults = tokens[mode];
404
+ const overrides = _optionalChain([config, 'access', _ => _.colors, 'optionalAccess', _2 => _2[mode]]);
405
+ if (!overrides || Object.keys(overrides).length === 0) return defaults;
406
+ const source = {};
407
+ for (const key of sourceKeys) {
408
+ source[key] = _nullishCoalesce(overrides[key], () => ( defaults[key]));
409
+ }
410
+ return { ...defaults, ...source, ...deriveColors(source), ...overrides };
411
+ }
412
+ function resolveMode(mode, config, id) {
413
+ const unit = _nullishCoalesce(config.spacingUnit, () => ( SPACING_UNIT));
414
+ const shadows = buildShadows(mode);
415
+ return {
416
+ id,
417
+ mode,
418
+ colors: resolveColors(mode, config),
419
+ spacing: (steps) => steps * unit,
420
+ radius: { ...buildRadius(_nullishCoalesce(config.radius, () => ( RADIUS_BASE))) },
421
+ borderWidth: { ...borderWidth, ...config.borderWidth },
422
+ fontSizes: { ...fontSizes, ...config.fontSizes },
423
+ lineHeights: { ...lineHeights, ...config.lineHeights },
424
+ fontWeights: { ...fontWeights, ...config.fontWeights },
425
+ fontFamilies: { ...fontFamilies, ...config.fontFamilies },
426
+ shadows: {
427
+ surface: { ...shadows.surface, ..._optionalChain([config, 'access', _3 => _3.shadows, 'optionalAccess', _4 => _4.surface]) },
428
+ overlay: { ...shadows.overlay, ..._optionalChain([config, 'access', _5 => _5.shadows, 'optionalAccess', _6 => _6.overlay]) },
429
+ field: { ...shadows.field, ..._optionalChain([config, 'access', _7 => _7.shadows, 'optionalAccess', _8 => _8.field]) }
430
+ },
431
+ opacity: { ...opacity, ...config.opacity },
432
+ controlHeights: { ...controlHeights, ...config.controlHeights }
433
+ };
434
+ }
435
+ function createTheme(config = {}) {
436
+ const id = stableHash(config);
437
+ return {
438
+ id,
439
+ light: resolveMode("light", config, id),
440
+ dark: resolveMode("dark", config, id)
441
+ };
442
+ }
443
+ var defaultTheme = createTheme();
444
+
445
+ // src/theme/theme-context.ts
446
+ var _react = require('react');
447
+ var ThemeContext = _react.createContext.call(void 0, null);
448
+
449
+ // src/provider/xaui-provider.tsx
450
+ function XAUIProvider({
451
+ children,
452
+ theme = defaultTheme,
453
+ colorMode = "system"
454
+ }) {
455
+ const scheme = _reactnative.useColorScheme.call(void 0, );
456
+ const resolved = colorMode === "system" ? scheme === "dark" ? "dark" : "light" : colorMode;
457
+ return /* @__PURE__ */ React.createElement(ThemeContext.Provider, { value: theme[resolved] }, children);
458
+ }
459
+
460
+ // src/theme/palette.ts
461
+ var palette = {
462
+ slate: {
463
+ 50: "#f8fafc",
464
+ 100: "#f1f5f9",
465
+ 200: "#e2e8f0",
466
+ 300: "#cbd5e1",
467
+ 400: "#94a3b8",
468
+ 500: "#64748b",
469
+ 600: "#475569",
470
+ 700: "#334155",
471
+ 800: "#1e293b",
472
+ 900: "#0f172a",
473
+ 950: "#020617"
474
+ },
475
+ gray: {
476
+ 50: "#f9fafb",
477
+ 100: "#f3f4f6",
478
+ 200: "#e5e7eb",
479
+ 300: "#d1d5db",
480
+ 400: "#9ca3af",
481
+ 500: "#6b7280",
482
+ 600: "#4b5563",
483
+ 700: "#374151",
484
+ 800: "#1f2937",
485
+ 900: "#111827",
486
+ 950: "#030712"
487
+ },
488
+ zinc: {
489
+ 50: "#fafafa",
490
+ 100: "#f4f4f5",
491
+ 200: "#e4e4e7",
492
+ 300: "#d4d4d8",
493
+ 400: "#a1a1aa",
494
+ 500: "#71717a",
495
+ 600: "#52525b",
496
+ 700: "#3f3f46",
497
+ 800: "#27272a",
498
+ 900: "#18181b",
499
+ 950: "#09090b"
500
+ },
501
+ neutral: {
502
+ 50: "#fafafa",
503
+ 100: "#f5f5f5",
504
+ 200: "#e5e5e5",
505
+ 300: "#d4d4d4",
506
+ 400: "#a3a3a3",
507
+ 500: "#737373",
508
+ 600: "#525252",
509
+ 700: "#404040",
510
+ 800: "#262626",
511
+ 900: "#171717",
512
+ 950: "#0a0a0a"
513
+ },
514
+ stone: {
515
+ 50: "#fafaf9",
516
+ 100: "#f5f5f4",
517
+ 200: "#e7e5e4",
518
+ 300: "#d6d3d1",
519
+ 400: "#a8a29e",
520
+ 500: "#78716c",
521
+ 600: "#57534e",
522
+ 700: "#44403c",
523
+ 800: "#292524",
524
+ 900: "#1c1917",
525
+ 950: "#0c0a09"
526
+ },
527
+ red: {
528
+ 50: "#fef2f2",
529
+ 100: "#fee2e2",
530
+ 200: "#fecaca",
531
+ 300: "#fca5a5",
532
+ 400: "#f87171",
533
+ 500: "#ef4444",
534
+ 600: "#dc2626",
535
+ 700: "#b91c1c",
536
+ 800: "#991b1b",
537
+ 900: "#7f1d1d",
538
+ 950: "#450a0a"
539
+ },
540
+ orange: {
541
+ 50: "#fff7ed",
542
+ 100: "#ffedd5",
543
+ 200: "#fed7aa",
544
+ 300: "#fdba74",
545
+ 400: "#fb923c",
546
+ 500: "#f97316",
547
+ 600: "#ea580c",
548
+ 700: "#c2410c",
549
+ 800: "#9a3412",
550
+ 900: "#7c2d12",
551
+ 950: "#431407"
552
+ },
553
+ amber: {
554
+ 50: "#fffbeb",
555
+ 100: "#fef3c7",
556
+ 200: "#fde68a",
557
+ 300: "#fcd34d",
558
+ 400: "#fbbf24",
559
+ 500: "#f59e0b",
560
+ 600: "#d97706",
561
+ 700: "#b45309",
562
+ 800: "#92400e",
563
+ 900: "#78350f",
564
+ 950: "#451a03"
565
+ },
566
+ yellow: {
567
+ 50: "#fefce8",
568
+ 100: "#fef9c3",
569
+ 200: "#fef08a",
570
+ 300: "#fde047",
571
+ 400: "#facc15",
572
+ 500: "#eab308",
573
+ 600: "#ca8a04",
574
+ 700: "#a16207",
575
+ 800: "#854d0e",
576
+ 900: "#713f12",
577
+ 950: "#422006"
578
+ },
579
+ lime: {
580
+ 50: "#f7fee7",
581
+ 100: "#ecfccb",
582
+ 200: "#d9f99d",
583
+ 300: "#bef264",
584
+ 400: "#a3e635",
585
+ 500: "#84cc16",
586
+ 600: "#65a30d",
587
+ 700: "#4d7c0f",
588
+ 800: "#3f6212",
589
+ 900: "#365314",
590
+ 950: "#1a2e05"
591
+ },
592
+ green: {
593
+ 50: "#f0fdf4",
594
+ 100: "#dcfce7",
595
+ 200: "#bbf7d0",
596
+ 300: "#86efac",
597
+ 400: "#4ade80",
598
+ 500: "#22c55e",
599
+ 600: "#16a34a",
600
+ 700: "#15803d",
601
+ 800: "#166534",
602
+ 900: "#14532d",
603
+ 950: "#052e16"
604
+ },
605
+ emerald: {
606
+ 50: "#ecfdf5",
607
+ 100: "#d1fae5",
608
+ 200: "#a7f3d0",
609
+ 300: "#6ee7b7",
610
+ 400: "#34d399",
611
+ 500: "#10b981",
612
+ 600: "#059669",
613
+ 700: "#047857",
614
+ 800: "#065f46",
615
+ 900: "#064e3b",
616
+ 950: "#022c22"
617
+ },
618
+ teal: {
619
+ 50: "#f0fdfa",
620
+ 100: "#ccfbf1",
621
+ 200: "#99f6e4",
622
+ 300: "#5eead4",
623
+ 400: "#2dd4bf",
624
+ 500: "#14b8a6",
625
+ 600: "#0d9488",
626
+ 700: "#0f766e",
627
+ 800: "#115e59",
628
+ 900: "#134e4a",
629
+ 950: "#042f2e"
630
+ },
631
+ cyan: {
632
+ 50: "#ecfeff",
633
+ 100: "#cffafe",
634
+ 200: "#a5f3fc",
635
+ 300: "#67e8f9",
636
+ 400: "#22d3ee",
637
+ 500: "#06b6d4",
638
+ 600: "#0891b2",
639
+ 700: "#0e7490",
640
+ 800: "#155e75",
641
+ 900: "#164e63",
642
+ 950: "#083344"
643
+ },
644
+ sky: {
645
+ 50: "#f0f9ff",
646
+ 100: "#e0f2fe",
647
+ 200: "#bae6fd",
648
+ 300: "#7dd3fc",
649
+ 400: "#38bdf8",
650
+ 500: "#0ea5e9",
651
+ 600: "#0284c7",
652
+ 700: "#0369a1",
653
+ 800: "#075985",
654
+ 900: "#0c4a6e",
655
+ 950: "#082f49"
656
+ },
657
+ blue: {
658
+ 50: "#eff6ff",
659
+ 100: "#dbeafe",
660
+ 200: "#bfdbfe",
661
+ 300: "#93c5fd",
662
+ 400: "#60a5fa",
663
+ 500: "#3b82f6",
664
+ 600: "#2563eb",
665
+ 700: "#1d4ed8",
666
+ 800: "#1e40af",
667
+ 900: "#1e3a8a",
668
+ 950: "#172554"
669
+ },
670
+ indigo: {
671
+ 50: "#eef2ff",
672
+ 100: "#e0e7ff",
673
+ 200: "#c7d2fe",
674
+ 300: "#a5b4fc",
675
+ 400: "#818cf8",
676
+ 500: "#6366f1",
677
+ 600: "#4f46e5",
678
+ 700: "#4338ca",
679
+ 800: "#3730a3",
680
+ 900: "#312e81",
681
+ 950: "#1e1b4b"
682
+ },
683
+ violet: {
684
+ 50: "#f5f3ff",
685
+ 100: "#ede9fe",
686
+ 200: "#ddd6fe",
687
+ 300: "#c4b5fd",
688
+ 400: "#a78bfa",
689
+ 500: "#8b5cf6",
690
+ 600: "#7c3aed",
691
+ 700: "#6d28d9",
692
+ 800: "#5b21b6",
693
+ 900: "#4c1d95",
694
+ 950: "#2e1065"
695
+ },
696
+ purple: {
697
+ 50: "#faf5ff",
698
+ 100: "#f3e8ff",
699
+ 200: "#e9d5ff",
700
+ 300: "#d8b4fe",
701
+ 400: "#c084fc",
702
+ 500: "#a855f7",
703
+ 600: "#9333ea",
704
+ 700: "#7e22ce",
705
+ 800: "#6b21a8",
706
+ 900: "#581c87",
707
+ 950: "#3b0764"
708
+ },
709
+ fuchsia: {
710
+ 50: "#fdf4ff",
711
+ 100: "#fae8ff",
712
+ 200: "#f5d0fe",
713
+ 300: "#f0abfc",
714
+ 400: "#e879f9",
715
+ 500: "#d946ef",
716
+ 600: "#c026d3",
717
+ 700: "#a21caf",
718
+ 800: "#86198f",
719
+ 900: "#701a75",
720
+ 950: "#4a044e"
721
+ },
722
+ pink: {
723
+ 50: "#fdf2f8",
724
+ 100: "#fce7f3",
725
+ 200: "#fbcfe8",
726
+ 300: "#f9a8d4",
727
+ 400: "#f472b6",
728
+ 500: "#ec4899",
729
+ 600: "#db2777",
730
+ 700: "#be185d",
731
+ 800: "#9d174d",
732
+ 900: "#831843",
733
+ 950: "#500724"
734
+ },
735
+ rose: {
736
+ 50: "#fff1f2",
737
+ 100: "#ffe4e6",
738
+ 200: "#fecdd3",
739
+ 300: "#fda4af",
740
+ 400: "#fb7185",
741
+ 500: "#f43f5e",
742
+ 600: "#e11d48",
743
+ 700: "#be123c",
744
+ 800: "#9f1239",
745
+ 900: "#881337",
746
+ 950: "#4c0519"
747
+ },
748
+ black: "#000000",
749
+ white: "#ffffff",
750
+ transparent: "transparent"
751
+ };
752
+ var primitives = {
753
+ white: "#ffffff",
754
+ black: "#000000",
755
+ snow: "#fafafa",
756
+ eclipse: "#18181b"
757
+ };
758
+
759
+ // src/theme/theme-hooks.ts
760
+
761
+ function useXAUITheme() {
762
+ const theme = _react.useContext.call(void 0, ThemeContext);
763
+ if (theme === null) {
764
+ throw new Error("XAUI: useXAUITheme must be used within <XAUIProvider>.");
765
+ }
766
+ return theme;
767
+ }
768
+ function useColorMode() {
769
+ return useXAUITheme().mode;
770
+ }
771
+ function useThemeColor(token) {
772
+ const { colors } = useXAUITheme();
773
+ return Array.isArray(token) ? token.map((key) => colors[key]) : colors[token];
774
+ }
775
+
776
+
777
+
778
+
779
+
780
+
781
+
782
+
783
+
784
+
785
+
786
+
787
+
788
+
789
+
790
+
791
+ exports.deriveColors = deriveColors; exports.buildRadius = buildRadius; exports.buildShadows = buildShadows; exports.tokens = tokens; exports.sourceKeys = sourceKeys; exports.createTheme = createTheme; exports.defaultTheme = defaultTheme; exports.ThemeContext = ThemeContext; exports.XAUIProvider = XAUIProvider; exports.palette = palette; exports.primitives = primitives; exports.useXAUITheme = useXAUITheme; exports.useColorMode = useColorMode; exports.useThemeColor = useThemeColor;