@cystackapp/ui 1.4.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 (52) hide show
  1. package/dist/assets/background-pattern-circles-md.svg.js +5 -0
  2. package/dist/components/badge/Badge.d.ts +29 -0
  3. package/dist/components/badge/Badge.js +67 -0
  4. package/dist/components/badge/BadgeTestStory.d.ts +5 -0
  5. package/dist/components/badge/badge-utils.d.ts +27 -0
  6. package/dist/components/badge/badge-utils.js +74 -0
  7. package/dist/components/badge/variants/BadgeMore.d.ts +6 -0
  8. package/dist/components/badge/variants/BadgeMore.js +10 -0
  9. package/dist/components/badge/variants/BadgeMoreTestStory.d.ts +5 -0
  10. package/dist/components/badge/variants/BadgeTag.d.ts +10 -0
  11. package/dist/components/badge/variants/BadgeTag.js +50 -0
  12. package/dist/components/combobox/Combobox.d.ts +96 -0
  13. package/dist/components/combobox/Combobox.js +206 -0
  14. package/dist/components/combobox/use-validated-combobox.d.ts +17 -0
  15. package/dist/components/combobox/use-validated-combobox.js +23 -0
  16. package/dist/components/error-state/ErrorState.d.ts +9 -0
  17. package/dist/components/error-state/ErrorState.js +33 -0
  18. package/dist/components/page-title/PageTitle.d.ts +7 -0
  19. package/dist/components/page-title/PageTitle.js +6 -0
  20. package/dist/components/popover/Popover.d.ts +8 -0
  21. package/dist/components/popover/Popover.js +42 -0
  22. package/dist/components/popover/use-popover-coord.d.ts +24 -0
  23. package/dist/components/popover/use-popover-coord.js +130 -0
  24. package/dist/components/switch/Switch.d.ts +7 -0
  25. package/dist/components/switch/Switch.js +39 -0
  26. package/dist/components/tooltip/Tooltip.d.ts +11 -0
  27. package/dist/components/tooltip/Tooltip.js +58 -0
  28. package/dist/components/tooltip/tooltip-utils.d.ts +4 -0
  29. package/dist/components/tooltip/tooltip-utils.js +120 -0
  30. package/dist/hooks/element-shift/use-animation-frame.d.ts +4 -0
  31. package/dist/hooks/element-shift/use-animation-frame.js +14 -0
  32. package/dist/hooks/element-shift/use-element-shift.d.ts +17 -0
  33. package/dist/hooks/element-shift/use-element-shift.js +22 -0
  34. package/dist/hooks/element-shift/use-mutation-observer.d.ts +4 -0
  35. package/dist/hooks/element-shift/use-mutation-observer.js +15 -0
  36. package/dist/hooks/element-shift/use-resize-observer.d.ts +5 -0
  37. package/dist/hooks/element-shift/use-resize-observer.js +13 -0
  38. package/dist/hooks/element-shift/use-scroll-listener.d.ts +5 -0
  39. package/dist/hooks/element-shift/use-scroll-listener.js +26 -0
  40. package/dist/hooks/element-shift/use-transition-end-listener.d.ts +5 -0
  41. package/dist/hooks/element-shift/use-transition-end-listener.js +28 -0
  42. package/dist/hooks/element-shift/use-window-resize-listener.d.ts +4 -0
  43. package/dist/hooks/element-shift/use-window-resize-listener.js +10 -0
  44. package/dist/i18n/resources.d.ts +2 -0
  45. package/dist/index.d.ts +23 -0
  46. package/dist/index.js +42 -0
  47. package/dist/node_modules/clsx/dist/clsx.js +16 -0
  48. package/dist/node_modules/tailwind-merge/dist/bundle-mjs.js +2924 -0
  49. package/dist/utils/cn.d.ts +2 -0
  50. package/dist/utils/cn.js +8 -0
  51. package/package.json +66 -0
  52. package/theme.css +358 -0
@@ -0,0 +1,2 @@
1
+ import { ClassValue } from 'clsx';
2
+ export declare function cn(...inputs: ClassValue[]): string;
@@ -0,0 +1,8 @@
1
+ import { clsx as o } from "../node_modules/clsx/dist/clsx.js";
2
+ import { twMerge as t } from "../node_modules/tailwind-merge/dist/bundle-mjs.js";
3
+ function n(...r) {
4
+ return t(o(...r));
5
+ }
6
+ export {
7
+ n as cn
8
+ };
package/package.json ADDED
@@ -0,0 +1,66 @@
1
+ {
2
+ "name": "@cystackapp/ui",
3
+ "version": "1.4.0",
4
+ "type": "module",
5
+ "main": "./dist/index.js",
6
+ "types": "./dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "import": "./dist/index.js",
10
+ "types": "./dist/index.d.ts"
11
+ },
12
+ "./theme.css": "./theme.css"
13
+ },
14
+ "files": [
15
+ "dist",
16
+ "theme.css"
17
+ ],
18
+ "publishConfig": {
19
+ "access": "public"
20
+ },
21
+ "scripts": {
22
+ "build": "vite build",
23
+ "dev": "vite build --watch",
24
+ "typecheck": "tsc --noEmit --pretty",
25
+ "storybook": "storybook dev -p 6007",
26
+ "test": "vitest run --passWithNoTests && playwright test -c playwright-ct.config.ts",
27
+ "test:component": "playwright test -c playwright-ct.config.ts",
28
+ "test:unit": "vitest run",
29
+ "test:unit:watch": "vitest",
30
+ "i18n": "node ../../scripts/generate-i18n.mjs",
31
+ "i18n:check": "node ../../scripts/check-i18n-keys.mjs"
32
+ },
33
+ "peerDependencies": {
34
+ "@untitled-ui/icons-react": "^0.1.4",
35
+ "i18next": "23.7.7",
36
+ "react": "^18.0.0",
37
+ "react-dom": "^18.0.0",
38
+ "react-i18next": "^15.0.0",
39
+ "react-router-dom": "^6.0.0"
40
+ },
41
+ "dependencies": {
42
+ "clsx": "^2.1.1",
43
+ "tailwind-merge": "^3.5.0"
44
+ },
45
+ "devDependencies": {
46
+ "@platform-dash/eslint-config": "*",
47
+ "eslint": "^10.0.3",
48
+ "@playwright/experimental-ct-react": "^1.59.1",
49
+ "@storybook/addon-essentials": "^8.6.18",
50
+ "@storybook/react": "^8.6.18",
51
+ "@storybook/react-vite": "^8.6.18",
52
+ "@storybook/test": "^8.6.18",
53
+ "@tailwindcss/vite": "~4.1",
54
+ "@types/react": "^18.2.34",
55
+ "@types/react-dom": "^18.2.14",
56
+ "@vitejs/plugin-react": "^5",
57
+ "picocolors": "^1.1.1",
58
+ "storybook": "^8.6.18",
59
+ "tailwindcss": "~4.1",
60
+ "typescript": "~5.9",
61
+ "vite": "^6",
62
+ "vite-plugin-dts": "^4",
63
+ "vite-plugin-svgr": "^4",
64
+ "vitest": "^4.1.0"
65
+ }
66
+ }
package/theme.css ADDED
@@ -0,0 +1,358 @@
1
+ @source "./src";
2
+
3
+ @layer base {
4
+ button {
5
+ cursor: pointer;
6
+ }
7
+
8
+ button:disabled {
9
+ cursor: auto;
10
+ }
11
+ }
12
+
13
+ @theme {
14
+ --color-white: #ffffff;
15
+
16
+ /* Gray */
17
+ --color-gray-v2-25: #fdfdfd;
18
+ --color-gray-v2-50: #fafafa;
19
+ --color-gray-v2-100: #f5f5f5;
20
+ --color-gray-v2-200: #e9eaeb;
21
+ --color-gray-v2-300: #d5d7da;
22
+ --color-gray-v2-400: #a4a7ae;
23
+ --color-gray-v2-500: #717680;
24
+ --color-gray-v2-600: #535862;
25
+ --color-gray-v2-700: #414651;
26
+ --color-gray-v2-800: #252b37;
27
+ --color-gray-v2-900: #181d27;
28
+ --color-gray-v2-950: #0a0d12;
29
+ --color-gray-v2: #717680;
30
+
31
+ /* Brand */
32
+ --color-brand-v2-25: #f5f8ff;
33
+ --color-brand-v2-50: #eff4ff;
34
+ --color-brand-v2-100: #d1e0ff;
35
+ --color-brand-v2-200: #b2ccff;
36
+ --color-brand-v2-300: #84adff;
37
+ --color-brand-v2-400: #528bff;
38
+ --color-brand-v2-500: #2970ff;
39
+ --color-brand-v2-600: #155eef;
40
+ --color-brand-v2-700: #004eeb;
41
+ --color-brand-v2-800: #0040c1;
42
+ --color-brand-v2-900: #00359e;
43
+ --color-brand-v2-950: #002266;
44
+ --color-brand-v2: #2970ff;
45
+
46
+ /* Error */
47
+ --color-error-v2-25: #fffbfa;
48
+ --color-error-v2-50: #fef3f2;
49
+ --color-error-v2-100: #fee4e2;
50
+ --color-error-v2-200: #fecdca;
51
+ --color-error-v2-300: #fda29b;
52
+ --color-error-v2-400: #f97066;
53
+ --color-error-v2-500: #f04438;
54
+ --color-error-v2-600: #d92d20;
55
+ --color-error-v2-700: #b42318;
56
+ --color-error-v2-800: #912018;
57
+ --color-error-v2-900: #7a271a;
58
+ --color-error-v2-950: #55160c;
59
+ --color-error-v2: #f04438;
60
+
61
+ /* Warning */
62
+ --color-warning-v2-25: #fffcf5;
63
+ --color-warning-v2-50: #fffaeb;
64
+ --color-warning-v2-100: #fef0c7;
65
+ --color-warning-v2-200: #fedf89;
66
+ --color-warning-v2-300: #fec84b;
67
+ --color-warning-v2-400: #fdb022;
68
+ --color-warning-v2-500: #f79009;
69
+ --color-warning-v2-600: #dc6803;
70
+ --color-warning-v2-700: #b54708;
71
+ --color-warning-v2-800: #93370d;
72
+ --color-warning-v2-900: #7a2e0e;
73
+ --color-warning-v2-950: #4e1d09;
74
+ --color-warning-v2: #f79009;
75
+
76
+ /* Success */
77
+ --color-success-v2-25: #f6fef9;
78
+ --color-success-v2-50: #ecfdf3;
79
+ --color-success-v2-100: #dcfae6;
80
+ --color-success-v2-200: #a9efc5;
81
+ --color-success-v2-300: #75e0a7;
82
+ --color-success-v2-400: #47cd89;
83
+ --color-success-v2-500: #17b26a;
84
+ --color-success-v2-600: #079455;
85
+ --color-success-v2-700: #067647;
86
+ --color-success-v2-800: #085d3a;
87
+ --color-success-v2-900: #074d31;
88
+ --color-success-v2-950: #053321;
89
+ --color-success-v2: #17b26a;
90
+
91
+ /* Gray Blue */
92
+ --color-gray-blue-v2-25: #fcfcfd;
93
+ --color-gray-blue-v2-50: #f8f9fc;
94
+ --color-gray-blue-v2-100: #eaecf5;
95
+ --color-gray-blue-v2-200: #d5d9eb;
96
+ --color-gray-blue-v2-300: #b3b8db;
97
+ --color-gray-blue-v2-400: #717bbc;
98
+ --color-gray-blue-v2-500: #4e5ba6;
99
+ --color-gray-blue-v2-600: #3e4784;
100
+ --color-gray-blue-v2-700: #363f72;
101
+ --color-gray-blue-v2-800: #293056;
102
+ --color-gray-blue-v2-900: #101323;
103
+ --color-gray-blue-v2-950: #0d0f1c;
104
+ --color-gray-blue-v2: #4e5ba6;
105
+
106
+ /* Green Light */
107
+ --color-green-light-v2-25: #fafef5;
108
+ --color-green-light-v2-50: #f3fee7;
109
+ --color-green-light-v2-100: #e4fbcc;
110
+ --color-green-light-v2-200: #d0f8ab;
111
+ --color-green-light-v2-300: #a6ef67;
112
+ --color-green-light-v2-400: #85e13a;
113
+ --color-green-light-v2-500: #66c61c;
114
+ --color-green-light-v2-600: #4ca30d;
115
+ --color-green-light-v2-700: #3b7c0f;
116
+ --color-green-light-v2-800: #326212;
117
+ --color-green-light-v2-900: #2b5314;
118
+ --color-green-light-v2-950: #15290a;
119
+ --color-green-light-v2: #66c61c;
120
+
121
+ /* Green */
122
+ --color-green-v2-25: #f6fef9;
123
+ --color-green-v2-50: #edfcf2;
124
+ --color-green-v2-100: #d3f8df;
125
+ --color-green-v2-200: #aaf0c4;
126
+ --color-green-v2-300: #73e2a3;
127
+ --color-green-v2-400: #3ccb7f;
128
+ --color-green-v2-500: #16b364;
129
+ --color-green-v2-600: #099250;
130
+ --color-green-v2-700: #087443;
131
+ --color-green-v2-800: #095c37;
132
+ --color-green-v2-900: #084c2e;
133
+ --color-green-v2-950: #052e1c;
134
+ --color-green-v2: #16b364;
135
+
136
+ /* Teal */
137
+ --color-teal-v2-25: #f6fefc;
138
+ --color-teal-v2-50: #f0fdf9;
139
+ --color-teal-v2-100: #ccfbef;
140
+ --color-teal-v2-200: #99f6e0;
141
+ --color-teal-v2-300: #5fe9d0;
142
+ --color-teal-v2-400: #2ed3b7;
143
+ --color-teal-v2-500: #15b79e;
144
+ --color-teal-v2-600: #0e9384;
145
+ --color-teal-v2-700: #107569;
146
+ --color-teal-v2-800: #125d56;
147
+ --color-teal-v2-900: #134e48;
148
+ --color-teal-v2-950: #0a2926;
149
+ --color-teal-v2: #15b79e;
150
+
151
+ /* Blue Light */
152
+ --color-blue-light-v2-25: #f5fbff;
153
+ --color-blue-light-v2-50: #f0f9ff;
154
+ --color-blue-light-v2-100: #e0f2fe;
155
+ --color-blue-light-v2-200: #b9e6fe;
156
+ --color-blue-light-v2-300: #7cd4fd;
157
+ --color-blue-light-v2-400: #36bffa;
158
+ --color-blue-light-v2-500: #0ba5ec;
159
+ --color-blue-light-v2-600: #0086c9;
160
+ --color-blue-light-v2-700: #026aa2;
161
+ --color-blue-light-v2-800: #065986;
162
+ --color-blue-light-v2-900: #0b4a6f;
163
+ --color-blue-light-v2-950: #062c41;
164
+ --color-blue-light-v2: #0ba5ec;
165
+
166
+ /* Blue */
167
+ --color-blue-v2-25: #f5faff;
168
+ --color-blue-v2-50: #eff8ff;
169
+ --color-blue-v2-100: #d1e9ff;
170
+ --color-blue-v2-200: #b2ddff;
171
+ --color-blue-v2-300: #84caff;
172
+ --color-blue-v2-400: #53b1fd;
173
+ --color-blue-v2-500: #2e90fa;
174
+ --color-blue-v2-600: #1570ef;
175
+ --color-blue-v2-700: #175cd3;
176
+ --color-blue-v2-800: #1849a9;
177
+ --color-blue-v2-900: #194185;
178
+ --color-blue-v2-950: #102a56;
179
+ --color-blue-v2: #2e90fa;
180
+
181
+ /* Blue Dark */
182
+ --color-blue-dark-v2-25: #f5f8ff;
183
+ --color-blue-dark-v2-50: #eff4ff;
184
+ --color-blue-dark-v2-100: #d1e0ff;
185
+ --color-blue-dark-v2-200: #b2ccff;
186
+ --color-blue-dark-v2-300: #84adff;
187
+ --color-blue-dark-v2-400: #528bff;
188
+ --color-blue-dark-v2-500: #2970ff;
189
+ --color-blue-dark-v2-600: #155eef;
190
+ --color-blue-dark-v2-700: #004eeb;
191
+ --color-blue-dark-v2-800: #0040c1;
192
+ --color-blue-dark-v2-900: #00359e;
193
+ --color-blue-dark-v2-950: #002266;
194
+ --color-blue-dark-v2: #2970ff;
195
+
196
+ /* Indigo */
197
+ --color-indigo-v2-25: #f5f8ff;
198
+ --color-indigo-v2-50: #eef4ff;
199
+ --color-indigo-v2-100: #e0eaff;
200
+ --color-indigo-v2-200: #c7d7fe;
201
+ --color-indigo-v2-300: #a4bcfd;
202
+ --color-indigo-v2-400: #8098f9;
203
+ --color-indigo-v2-500: #6172f3;
204
+ --color-indigo-v2-600: #444ce7;
205
+ --color-indigo-v2-700: #3538cd;
206
+ --color-indigo-v2-800: #2d31a6;
207
+ --color-indigo-v2-900: #2d3282;
208
+ --color-indigo-v2-950: #1f235b;
209
+ --color-indigo-v2: #6172f3;
210
+
211
+ /* Purple */
212
+ --color-purple-v2-25: #fafaff;
213
+ --color-purple-v2-50: #f4f3ff;
214
+ --color-purple-v2-100: #ebe9fe;
215
+ --color-purple-v2-200: #d9d6fe;
216
+ --color-purple-v2-300: #bdb4fe;
217
+ --color-purple-v2-400: #9b8afb;
218
+ --color-purple-v2-500: #7a5af8;
219
+ --color-purple-v2-600: #6938ef;
220
+ --color-purple-v2-700: #5925dc;
221
+ --color-purple-v2-800: #4a1fb8;
222
+ --color-purple-v2-900: #3e1c96;
223
+ --color-purple-v2-950: #27115f;
224
+ --color-purple-v2: #7a5af8;
225
+
226
+ /* Pink */
227
+ --color-pink-v2-25: #fef6fb;
228
+ --color-pink-v2-50: #fdf2fa;
229
+ --color-pink-v2-100: #fce7f6;
230
+ --color-pink-v2-200: #fcceee;
231
+ --color-pink-v2-300: #faa7e0;
232
+ --color-pink-v2-400: #f670c7;
233
+ --color-pink-v2-500: #ee46bc;
234
+ --color-pink-v2-600: #dd2590;
235
+ --color-pink-v2-700: #c11574;
236
+ --color-pink-v2-800: #9e165f;
237
+ --color-pink-v2-900: #851651;
238
+ --color-pink-v2-950: #4e0d30;
239
+ --color-pink-v2: #ee46bc;
240
+
241
+ /* Rose */
242
+ --color-rose-v2-25: #fff5f6;
243
+ --color-rose-v2-50: #fff1f3;
244
+ --color-rose-v2-100: #ffe4e8;
245
+ --color-rose-v2-200: #fecdd6;
246
+ --color-rose-v2-300: #fea3b4;
247
+ --color-rose-v2-400: #fd6f8e;
248
+ --color-rose-v2-500: #f63d68;
249
+ --color-rose-v2-600: #e31b54;
250
+ --color-rose-v2-700: #c01048;
251
+ --color-rose-v2-800: #a11043;
252
+ --color-rose-v2-900: #89123e;
253
+ --color-rose-v2-950: #510b24;
254
+ --color-rose-v2: #f63d68;
255
+
256
+ /* Orange */
257
+ --color-orange-v2-25: #fefaf5;
258
+ --color-orange-v2-50: #fef6ee;
259
+ --color-orange-v2-100: #fdead7;
260
+ --color-orange-v2-200: #f9dbaf;
261
+ --color-orange-v2-300: #f7b27a;
262
+ --color-orange-v2-400: #f38744;
263
+ --color-orange-v2-500: #ef6820;
264
+ --color-orange-v2-600: #e04f16;
265
+ --color-orange-v2-700: #b93815;
266
+ --color-orange-v2-800: #932f19;
267
+ --color-orange-v2-900: #772917;
268
+ --color-orange-v2-950: #511c10;
269
+ --color-orange-v2: #ef6820;
270
+
271
+ /* Orange Dark */
272
+ --color-orange-dark-v2-25: #fff9f5;
273
+ --color-orange-dark-v2-50: #fff4ed;
274
+ --color-orange-dark-v2-100: #ffe6d5;
275
+ --color-orange-dark-v2-200: #ffd6ae;
276
+ --color-orange-dark-v2-300: #ff9c66;
277
+ --color-orange-dark-v2-400: #ff692e;
278
+ --color-orange-dark-v2-500: #ff4405;
279
+ --color-orange-dark-v2-600: #e62e05;
280
+ --color-orange-dark-v2-700: #bc1b06;
281
+ --color-orange-dark-v2-800: #97180c;
282
+ --color-orange-dark-v2-900: #771a0d;
283
+ --color-orange-dark-v2-950: #57130a;
284
+ --color-orange-dark-v2: #ff4405;
285
+
286
+ /* Yellow */
287
+ --color-yellow-v2-25: #fefdf0;
288
+ --color-yellow-v2-50: #fefbe8;
289
+ --color-yellow-v2-100: #fef7c3;
290
+ --color-yellow-v2-200: #feee95;
291
+ --color-yellow-v2-300: #fde272;
292
+ --color-yellow-v2-400: #fac515;
293
+ --color-yellow-v2-500: #eaaa08;
294
+ --color-yellow-v2-600: #ca8504;
295
+ --color-yellow-v2-700: #a15c07;
296
+ --color-yellow-v2-800: #854a0e;
297
+ --color-yellow-v2-900: #713b12;
298
+ --color-yellow-v2-950: #542c0d;
299
+ --color-yellow-v2: #eaaa08;
300
+
301
+ /* Typography */
302
+ --text-display-2xl: 4.5rem;
303
+ --text-display-2xl--line-height: 5.625rem;
304
+ --text-display-2xl--letter-spacing: -0.02em;
305
+ --text-display-xl: 3.75rem;
306
+ --text-display-xl--line-height: 4.5rem;
307
+ --text-display-xl--letter-spacing: -0.02em;
308
+ --text-display-lg: 3rem;
309
+ --text-display-lg--line-height: 3.75rem;
310
+ --text-display-lg--letter-spacing: -0.02em;
311
+ --text-display-md: 2.25rem;
312
+ --text-display-md--line-height: 2.75rem;
313
+ --text-display-md--letter-spacing: -0.02em;
314
+ --text-display-sm: 1.875rem;
315
+ --text-display-sm--line-height: 2.375rem;
316
+ --text-display-xs: 1.5rem;
317
+ --text-display-xs--line-height: 2rem;
318
+ --text-xl: 1.25rem;
319
+ --text-xl--line-height: 1.875rem;
320
+ --text-lg: 1.125rem;
321
+ --text-lg--line-height: 1.75rem;
322
+ --text-md: 1rem;
323
+ --text-md--line-height: 1.5rem;
324
+ --text-md-body: 1rem;
325
+ --text-md-body--line-height: 2rem;
326
+ --text-sm: 0.875rem;
327
+ --text-sm--line-height: 1.25rem;
328
+ --text-xs: 0.75rem;
329
+ --text-xs--line-height: 1.125rem;
330
+
331
+ --font-mono: Courier New, source-code-pro, Menlo, Monaco, Consolas, monospace;
332
+
333
+ --shadow-xs: 0px 1px 2px rgba(10, 13, 18, 0.05);
334
+ --shadow-sm-01: 0px 1px 2px -1px rgba(10, 13, 18, 0.1);
335
+ --shadow-sm-02: 0px 1px 3px rgba(10, 13, 18, 0.1);
336
+ }
337
+
338
+ @keyframes pseudo-rotate {
339
+ 0% {
340
+ opacity: 1;
341
+ }
342
+
343
+ 20% {
344
+ opacity: 0.9;
345
+ }
346
+
347
+ 70% {
348
+ opacity: 0.1;
349
+ }
350
+
351
+ 90% {
352
+ opacity: 0;
353
+ }
354
+ }
355
+
356
+ @utility animate-pseudo-rotate {
357
+ animation: pseudo-rotate 1s ease-in infinite;
358
+ }