@frosted-ui/react-native 0.0.1-canary.91 → 0.0.1-canary.94

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 (172) hide show
  1. package/README.md +72 -14
  2. package/dist/components/accordion.js +2 -2
  3. package/dist/components/accordion.js.map +1 -1
  4. package/dist/components/alert-dialog.js +2 -2
  5. package/dist/components/alert-dialog.js.map +1 -1
  6. package/dist/components/avatar.d.ts.map +1 -1
  7. package/dist/components/avatar.js +5 -20
  8. package/dist/components/avatar.js.map +1 -1
  9. package/dist/components/badge.d.ts +2 -4
  10. package/dist/components/badge.d.ts.map +1 -1
  11. package/dist/components/badge.js +8 -22
  12. package/dist/components/badge.js.map +1 -1
  13. package/dist/components/button.d.ts +1 -1
  14. package/dist/components/button.d.ts.map +1 -1
  15. package/dist/components/button.js +13 -17
  16. package/dist/components/button.js.map +1 -1
  17. package/dist/components/callout.d.ts +2 -4
  18. package/dist/components/callout.d.ts.map +1 -1
  19. package/dist/components/callout.js +6 -24
  20. package/dist/components/callout.js.map +1 -1
  21. package/dist/components/card.d.ts +1 -2
  22. package/dist/components/card.d.ts.map +1 -1
  23. package/dist/components/card.js +4 -4
  24. package/dist/components/card.js.map +1 -1
  25. package/dist/components/checkbox.d.ts +1 -2
  26. package/dist/components/checkbox.d.ts.map +1 -1
  27. package/dist/components/checkbox.js +5 -21
  28. package/dist/components/checkbox.js.map +1 -1
  29. package/dist/components/code.d.ts +6 -8
  30. package/dist/components/code.d.ts.map +1 -1
  31. package/dist/components/code.js +7 -7
  32. package/dist/components/code.js.map +1 -1
  33. package/dist/components/context-menu.js +9 -9
  34. package/dist/components/context-menu.js.map +1 -1
  35. package/dist/components/dialog.js +2 -2
  36. package/dist/components/dialog.js.map +1 -1
  37. package/dist/components/dropdown-menu.js +9 -9
  38. package/dist/components/dropdown-menu.js.map +1 -1
  39. package/dist/components/heading.d.ts +6 -6
  40. package/dist/components/heading.d.ts.map +1 -1
  41. package/dist/components/heading.js +2 -2
  42. package/dist/components/heading.js.map +1 -1
  43. package/dist/components/hover-card.js +2 -2
  44. package/dist/components/hover-card.js.map +1 -1
  45. package/dist/components/icon-button.d.ts +2 -2
  46. package/dist/components/icon-button.d.ts.map +1 -1
  47. package/dist/components/icon-button.js +13 -17
  48. package/dist/components/icon-button.js.map +1 -1
  49. package/dist/components/icon.d.ts +6 -7
  50. package/dist/components/icon.d.ts.map +1 -1
  51. package/dist/components/icon.js +9 -24
  52. package/dist/components/icon.js.map +1 -1
  53. package/dist/components/index.d.ts +2 -0
  54. package/dist/components/index.d.ts.map +1 -1
  55. package/dist/components/index.js +2 -0
  56. package/dist/components/index.js.map +1 -1
  57. package/dist/components/label.js +2 -2
  58. package/dist/components/label.js.map +1 -1
  59. package/dist/components/link.d.ts +19 -0
  60. package/dist/components/link.d.ts.map +1 -0
  61. package/dist/components/link.js +68 -0
  62. package/dist/components/link.js.map +1 -0
  63. package/dist/components/list.d.ts +37 -0
  64. package/dist/components/list.d.ts.map +1 -0
  65. package/dist/components/list.js +112 -0
  66. package/dist/components/list.js.map +1 -0
  67. package/dist/components/native-only-animated-view.d.ts +0 -4
  68. package/dist/components/native-only-animated-view.d.ts.map +1 -1
  69. package/dist/components/popover.js +2 -2
  70. package/dist/components/popover.js.map +1 -1
  71. package/dist/components/progress.d.ts +1 -2
  72. package/dist/components/progress.d.ts.map +1 -1
  73. package/dist/components/progress.js +5 -21
  74. package/dist/components/progress.js.map +1 -1
  75. package/dist/components/radio-group.d.ts +1 -2
  76. package/dist/components/radio-group.d.ts.map +1 -1
  77. package/dist/components/radio-group.js +7 -23
  78. package/dist/components/radio-group.js.map +1 -1
  79. package/dist/components/segmented-control.js +3 -3
  80. package/dist/components/segmented-control.js.map +1 -1
  81. package/dist/components/select.d.ts.map +1 -1
  82. package/dist/components/select.js +11 -13
  83. package/dist/components/select.js.map +1 -1
  84. package/dist/components/separator.d.ts +1 -1
  85. package/dist/components/separator.d.ts.map +1 -1
  86. package/dist/components/separator.js +4 -21
  87. package/dist/components/separator.js.map +1 -1
  88. package/dist/components/skeleton.d.ts.map +1 -1
  89. package/dist/components/skeleton.js +10 -26
  90. package/dist/components/skeleton.js.map +1 -1
  91. package/dist/components/spinner.js +2 -2
  92. package/dist/components/spinner.js.map +1 -1
  93. package/dist/components/switch.d.ts +1 -2
  94. package/dist/components/switch.d.ts.map +1 -1
  95. package/dist/components/switch.js +5 -21
  96. package/dist/components/switch.js.map +1 -1
  97. package/dist/components/tabs.d.ts +4 -3
  98. package/dist/components/tabs.d.ts.map +1 -1
  99. package/dist/components/tabs.js +10 -9
  100. package/dist/components/tabs.js.map +1 -1
  101. package/dist/components/text-area.d.ts.map +1 -1
  102. package/dist/components/text-area.js +13 -9
  103. package/dist/components/text-area.js.map +1 -1
  104. package/dist/components/text-field.d.ts.map +1 -1
  105. package/dist/components/text-field.js +62 -18
  106. package/dist/components/text-field.js.map +1 -1
  107. package/dist/components/text.d.ts +6 -6
  108. package/dist/components/text.d.ts.map +1 -1
  109. package/dist/components/text.js +22 -11
  110. package/dist/components/text.js.map +1 -1
  111. package/dist/components/tooltip.js +2 -2
  112. package/dist/components/tooltip.js.map +1 -1
  113. package/dist/index.d.ts +6 -1
  114. package/dist/index.d.ts.map +1 -1
  115. package/dist/index.js +11 -1
  116. package/dist/index.js.map +1 -1
  117. package/dist/lib/button-styles.d.ts +6 -6
  118. package/dist/lib/button-styles.d.ts.map +1 -1
  119. package/dist/lib/button-styles.js +1 -17
  120. package/dist/lib/button-styles.js.map +1 -1
  121. package/dist/lib/color-utils.d.ts +19 -14
  122. package/dist/lib/color-utils.d.ts.map +1 -1
  123. package/dist/lib/color-utils.js +37 -73
  124. package/dist/lib/color-utils.js.map +1 -1
  125. package/dist/lib/full-window-overlay.d.ts +11 -0
  126. package/dist/lib/full-window-overlay.d.ts.map +1 -0
  127. package/dist/lib/full-window-overlay.js +16 -0
  128. package/dist/lib/full-window-overlay.js.map +1 -0
  129. package/dist/lib/text-input-styles.d.ts +9 -8
  130. package/dist/lib/text-input-styles.d.ts.map +1 -1
  131. package/dist/lib/text-input-styles.js +4 -23
  132. package/dist/lib/text-input-styles.js.map +1 -1
  133. package/dist/lib/theme-context.d.ts +80 -0
  134. package/dist/lib/theme-context.d.ts.map +1 -0
  135. package/dist/lib/theme-context.js +97 -0
  136. package/dist/lib/theme-context.js.map +1 -0
  137. package/dist/lib/{theme-vars.d.ts → theme-tokens.d.ts} +2 -2
  138. package/dist/lib/theme-tokens.d.ts.map +1 -0
  139. package/dist/lib/{theme-vars.js → theme-tokens.js} +4 -19
  140. package/dist/lib/theme-tokens.js.map +1 -0
  141. package/dist/lib/theme.d.ts +14 -54
  142. package/dist/lib/theme.d.ts.map +1 -1
  143. package/dist/lib/theme.js +98 -66
  144. package/dist/lib/theme.js.map +1 -1
  145. package/dist/lib/types.d.ts +6 -2
  146. package/dist/lib/types.d.ts.map +1 -1
  147. package/dist/lib/use-theme-tokens.d.ts +593 -0
  148. package/dist/lib/use-theme-tokens.d.ts.map +1 -0
  149. package/dist/lib/use-theme-tokens.js +44 -0
  150. package/dist/lib/use-theme-tokens.js.map +1 -0
  151. package/docs/llm/COLOR_SYSTEM.md +799 -0
  152. package/docs/llm/COMPONENTS.md +1183 -0
  153. package/docs/llm/DESIGN_PATTERNS.md +2466 -0
  154. package/docs/llm/README.md +117 -0
  155. package/docs/llm/TYPOGRAPHY.md +516 -0
  156. package/package.json +11 -21
  157. package/dist/lib/native-colors.d.ts +0 -8
  158. package/dist/lib/native-colors.d.ts.map +0 -1
  159. package/dist/lib/native-colors.js +0 -67
  160. package/dist/lib/native-colors.js.map +0 -1
  161. package/dist/lib/theme-vars.d.ts.map +0 -1
  162. package/dist/lib/theme-vars.js.map +0 -1
  163. package/dist/lib/use-theme-vars.d.ts +0 -325
  164. package/dist/lib/use-theme-vars.d.ts.map +0 -1
  165. package/dist/lib/use-theme-vars.js +0 -17
  166. package/dist/lib/use-theme-vars.js.map +0 -1
  167. package/dist/lib/utils.d.ts +0 -3
  168. package/dist/lib/utils.d.ts.map +0 -1
  169. package/dist/lib/utils.js +0 -17
  170. package/dist/lib/utils.js.map +0 -1
  171. package/global.css +0 -1813
  172. package/tailwind-preset.js +0 -310
@@ -1,310 +0,0 @@
1
- /* eslint-env node */
2
- /* eslint-disable @typescript-eslint/no-var-requires */
3
-
4
- /**
5
- * Frosted UI Tailwind Preset for React Native / NativeWind
6
- *
7
- * Usage in your tailwind.config.js:
8
- *
9
- * const { frostedPreset } = require('@frosted-ui/react-native/tailwind-preset');
10
- *
11
- * module.exports = {
12
- * content: ['./App.{js,jsx,ts,tsx}', './src/**\/*.{js,jsx,ts,tsx}'],
13
- * presets: [require('nativewind/preset'), frostedPreset],
14
- * // your custom theme extensions...
15
- * };
16
- */
17
-
18
- const { hairlineWidth } = require('nativewind/theme');
19
- const frostedColors = require('@frosted-ui/colors');
20
-
21
- // ============================================================================
22
- // Semantic color tokens (CSS variable references)
23
- // ============================================================================
24
-
25
- const semanticColorVars = {
26
- background: 'var(--color-background)',
27
- overlay: 'var(--color-overlay)',
28
- 'panel-solid': 'var(--color-panel-solid)',
29
- 'panel-translucent': 'var(--color-panel-translucent)',
30
- surface: 'var(--color-surface)',
31
- stroke: 'var(--color-stroke)',
32
- 'gray-2-translucent': 'var(--gray-2-translucent)',
33
- 'mauve-2-translucent': 'var(--mauve-2-translucent)',
34
- 'slate-2-translucent': 'var(--slate-2-translucent)',
35
- 'sage-2-translucent': 'var(--sage-2-translucent)',
36
- 'olive-2-translucent': 'var(--olive-2-translucent)',
37
- 'sand-2-translucent': 'var(--sand-2-translucent)',
38
- };
39
-
40
- // ============================================================================
41
- // Typography scale (CSS variable references)
42
- // ============================================================================
43
-
44
- const typographyScale = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9].reduce(
45
- (acc, step) => ({
46
- ...acc,
47
- [`${step}`]: [
48
- `var(--font-size-${step})`,
49
- {
50
- lineHeight: `var(--line-height-${step})`,
51
- letterSpacing: `var(--letter-spacing-${step})`,
52
- },
53
- ],
54
- }),
55
- {}
56
- );
57
-
58
- const fontWeightScale = {
59
- thin: '100',
60
- extralight: '200',
61
- light: 'var(--font-weight-light)',
62
- normal: 'var(--font-weight-regular)',
63
- medium: 'var(--font-weight-medium)',
64
- semibold: '600',
65
- bold: 'var(--font-weight-bold)',
66
- extrabold: '800',
67
- black: '900',
68
- };
69
-
70
- const lineHeightScale = {
71
- none: '1',
72
- tight: '1.25',
73
- snug: '1.375',
74
- normal: '1.5',
75
- relaxed: '1.625',
76
- loose: '2',
77
- };
78
-
79
- const letterSpacingScale = {
80
- tighter: '-0.05em',
81
- tight: '-0.025em',
82
- normal: '0',
83
- wide: '0.025em',
84
- wider: '0.05em',
85
- widest: '0.1em',
86
- };
87
-
88
- // ============================================================================
89
- // Color tokens
90
- // ============================================================================
91
-
92
- const contrastColorNames = [
93
- 'tomato',
94
- 'red',
95
- 'ruby',
96
- 'crimson',
97
- 'pink',
98
- 'plum',
99
- 'purple',
100
- 'violet',
101
- 'iris',
102
- 'cyan',
103
- 'teal',
104
- 'jade',
105
- 'green',
106
- 'grass',
107
- 'brown',
108
- 'sky',
109
- 'mint',
110
- 'yellow',
111
- 'amber',
112
- 'gold',
113
- 'bronze',
114
- 'gray',
115
- 'blue',
116
- 'orange',
117
- 'indigo',
118
- 'magenta',
119
- 'lemon',
120
- 'lime',
121
- ];
122
-
123
- const contrastColorTokens = contrastColorNames.reduce((acc, name) => {
124
- acc[`${name}-9-contrast`] = `var(--${name}-9-contrast)`;
125
- return acc;
126
- }, {});
127
-
128
- /**
129
- * Creates color tokens from @frosted-ui/colors exports
130
- */
131
- const createFrostedColorTokens = (paletteExports) =>
132
- Object.entries(paletteExports).reduce((acc, [paletteName, paletteValues]) => {
133
- const isObjectPalette =
134
- paletteValues && typeof paletteValues === 'object' && !Array.isArray(paletteValues);
135
- const isAlphaPalette = paletteName.endsWith('A');
136
- const baseName = (isAlphaPalette ? paletteName.slice(0, -1) : paletteName) || '';
137
- const normalizedBase = baseName.toLowerCase();
138
- const isSupportedName = /^[a-z]+$/.test(normalizedBase) && !paletteName.includes('P3');
139
-
140
- if (!isObjectPalette || !isSupportedName) {
141
- return acc;
142
- }
143
-
144
- Object.entries(paletteValues).forEach(([shadeKey]) => {
145
- const stepMatch = shadeKey.match(/(\d+)$/);
146
-
147
- if (!stepMatch) {
148
- return;
149
- }
150
-
151
- const variantSuffix = `${isAlphaPalette ? 'a' : ''}${stepMatch[1]}`;
152
- const cssVarName = `--${normalizedBase}-${variantSuffix}`;
153
- acc[`${normalizedBase}-${variantSuffix}`] = `var(${cssVarName})`;
154
- });
155
-
156
- return acc;
157
- }, {});
158
-
159
- const frostedColorTokens = createFrostedColorTokens(frostedColors);
160
-
161
- // Accent color tokens (defaults to blue, overridable via CSS variables)
162
- const accentColorTokens = {
163
- 1: 'var(--accent-1)',
164
- 2: 'var(--accent-2)',
165
- 3: 'var(--accent-3)',
166
- 4: 'var(--accent-4)',
167
- 5: 'var(--accent-5)',
168
- 6: 'var(--accent-6)',
169
- 7: 'var(--accent-7)',
170
- 8: 'var(--accent-8)',
171
- 9: 'var(--accent-9)',
172
- '9-contrast': 'var(--accent-9-contrast)',
173
- 10: 'var(--accent-10)',
174
- 11: 'var(--accent-11)',
175
- 12: 'var(--accent-12)',
176
- a1: 'var(--accent-a1)',
177
- a2: 'var(--accent-a2)',
178
- a3: 'var(--accent-a3)',
179
- a4: 'var(--accent-a4)',
180
- a5: 'var(--accent-a5)',
181
- a6: 'var(--accent-a6)',
182
- a7: 'var(--accent-a7)',
183
- a8: 'var(--accent-a8)',
184
- a9: 'var(--accent-a9)',
185
- a10: 'var(--accent-a10)',
186
- a11: 'var(--accent-a11)',
187
- a12: 'var(--accent-a12)',
188
- };
189
-
190
- // ============================================================================
191
- // Frosted UI Preset
192
- // ============================================================================
193
-
194
- /** @type {import('tailwindcss').Config} */
195
- const frostedPreset = {
196
- darkMode: 'class',
197
- theme: {
198
- fontSize: typographyScale,
199
- lineHeight: lineHeightScale,
200
- letterSpacing: letterSpacingScale,
201
- fontWeight: fontWeightScale,
202
- colors: {
203
- transparent: 'transparent',
204
- current: 'currentColor',
205
- inherit: 'inherit',
206
- accent: accentColorTokens,
207
- ...frostedColorTokens,
208
- ...contrastColorTokens,
209
- ...semanticColorVars,
210
- },
211
- extend: {
212
- borderRadius: {
213
- lg: 'var(--radius)',
214
- md: 'calc(var(--radius) - 2px)',
215
- sm: 'calc(var(--radius) - 4px)',
216
- },
217
- borderWidth: {
218
- hairline: hairlineWidth(),
219
- },
220
- keyframes: {
221
- 'accordion-down': {
222
- from: { height: '0' },
223
- to: { height: 'var(--radix-accordion-content-height)' },
224
- },
225
- 'accordion-up': {
226
- from: { height: 'var(--radix-accordion-content-height)' },
227
- to: { height: '0' },
228
- },
229
- },
230
- animation: {
231
- 'accordion-down': 'accordion-down 0.2s ease-out',
232
- 'accordion-up': 'accordion-up 0.2s ease-out',
233
- },
234
- },
235
- },
236
- future: {
237
- hoverOnlyWhenSupported: true,
238
- },
239
- plugins: [require('tailwindcss-animate')],
240
- };
241
-
242
- // ============================================================================
243
- // Helper to create content paths for frosted-ui components
244
- // ============================================================================
245
-
246
- /**
247
- * Returns the content paths needed for Tailwind to scan frosted-ui components.
248
- * Add these to your tailwind.config.js content array.
249
- *
250
- * @example
251
- * content: [
252
- * './App.{js,jsx,ts,tsx}',
253
- * ...getFrostedUIContentPaths(),
254
- * ],
255
- */
256
- function getFrostedUIContentPaths() {
257
- return [
258
- './node_modules/@frosted-ui/react-native/dist/**/*.js',
259
- // Also include src for development/linking scenarios
260
- './node_modules/@frosted-ui/react-native/src/**/*.{ts,tsx}',
261
- ];
262
- }
263
-
264
- /**
265
- * Utility to merge your Tailwind config with Frosted UI preset.
266
- * This is an alternative to using presets if you need more control.
267
- *
268
- * @param {import('tailwindcss').Config} userConfig - Your Tailwind config
269
- * @returns {import('tailwindcss').Config} - Merged config with Frosted UI theme
270
- *
271
- * @example
272
- * const { withFrostedUI } = require('@frosted-ui/react-native/tailwind-preset');
273
- *
274
- * module.exports = withFrostedUI({
275
- * content: ['./App.{js,jsx,ts,tsx}'],
276
- * theme: {
277
- * extend: {
278
- * // your customizations
279
- * },
280
- * },
281
- * });
282
- */
283
- function withFrostedUI(userConfig = {}) {
284
- const contentPaths = getFrostedUIContentPaths();
285
-
286
- return {
287
- ...userConfig,
288
- darkMode: userConfig.darkMode || 'class',
289
- content: [...(userConfig.content || []), ...contentPaths],
290
- presets: [require('nativewind/preset'), frostedPreset, ...(userConfig.presets || [])],
291
- theme: {
292
- ...userConfig.theme,
293
- extend: {
294
- ...frostedPreset.theme.extend,
295
- ...(userConfig.theme?.extend || {}),
296
- },
297
- },
298
- future: {
299
- ...frostedPreset.future,
300
- ...(userConfig.future || {}),
301
- },
302
- plugins: [...(frostedPreset.plugins || []), ...(userConfig.plugins || [])],
303
- };
304
- }
305
-
306
- module.exports = {
307
- frostedPreset,
308
- getFrostedUIContentPaths,
309
- withFrostedUI,
310
- };