@flowtomic/ui 0.1.4 → 0.1.5

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 (49) hide show
  1. package/dist/components/atoms/actions/badge/badge.d.ts +2 -2
  2. package/dist/components/atoms/actions/button/button.d.ts +2 -2
  3. package/dist/components/atoms/data-display/index.d.ts +2 -0
  4. package/dist/components/atoms/data-display/index.d.ts.map +1 -1
  5. package/dist/components/atoms/data-display/index.js +1 -0
  6. package/dist/components/atoms/data-display/qr-code/index.d.ts +3 -0
  7. package/dist/components/atoms/data-display/qr-code/index.d.ts.map +1 -0
  8. package/dist/components/atoms/data-display/qr-code/index.js +1 -0
  9. package/dist/components/atoms/data-display/qr-code/qr-code.d.ts +18 -0
  10. package/dist/components/atoms/data-display/qr-code/qr-code.d.ts.map +1 -0
  11. package/dist/components/atoms/data-display/qr-code/qr-code.js +79 -0
  12. package/dist/components/atoms/feedback/alert/alert.d.ts +1 -1
  13. package/dist/components/atoms/feedback/alert-dialog/alert-dialog.d.ts +2 -2
  14. package/dist/components/atoms/forms/input/input.d.ts +2 -2
  15. package/dist/components/atoms/forms/toggle/toggle.d.ts +2 -2
  16. package/dist/components/atoms/layout/sidebar/sidebar.d.ts +2 -2
  17. package/dist/components/atoms/navigation/command/command.d.ts +13 -13
  18. package/dist/components/molecules/forms/item/item.d.ts +2 -2
  19. package/dist/components/molecules/forms/text-editor/index.d.ts +3 -0
  20. package/dist/components/molecules/forms/text-editor/index.d.ts.map +1 -0
  21. package/dist/components/molecules/forms/text-editor/index.js +1 -0
  22. package/dist/components/molecules/forms/text-editor/text-editor.d.ts +33 -0
  23. package/dist/components/molecules/forms/text-editor/text-editor.d.ts.map +1 -0
  24. package/dist/components/molecules/forms/text-editor/text-editor.js +211 -0
  25. package/dist/components/molecules/index.d.ts +2 -0
  26. package/dist/components/molecules/index.d.ts.map +1 -1
  27. package/dist/components/molecules/index.js +1 -0
  28. package/dist/components/organisms/context/context.d.ts +4 -4
  29. package/dist/components/organisms/document-editor/document-editor.d.ts +43 -0
  30. package/dist/components/organisms/document-editor/document-editor.d.ts.map +1 -0
  31. package/dist/components/organisms/document-editor/document-editor.js +144 -0
  32. package/dist/components/organisms/document-editor/index.d.ts +3 -0
  33. package/dist/components/organisms/document-editor/index.d.ts.map +1 -0
  34. package/dist/components/organisms/document-editor/index.js +1 -0
  35. package/dist/components/organisms/form-layout/form-layout.d.ts +111 -0
  36. package/dist/components/organisms/form-layout/form-layout.d.ts.map +1 -0
  37. package/dist/components/organisms/form-layout/form-layout.js +83 -0
  38. package/dist/components/organisms/form-layout/index.d.ts +2 -0
  39. package/dist/components/organisms/form-layout/index.d.ts.map +1 -0
  40. package/dist/components/organisms/form-layout/index.js +1 -0
  41. package/dist/components/organisms/index.d.ts +4 -0
  42. package/dist/components/organisms/index.d.ts.map +1 -1
  43. package/dist/components/organisms/index.js +2 -0
  44. package/dist/components/organisms/model-selector/model-selector.d.ts +1 -1
  45. package/dist/index.js +649 -514
  46. package/dist/styles/globals.css +489 -0
  47. package/dist/styles/theme.css +1364 -0
  48. package/dist/styles/typography.css +430 -0
  49. package/package.json +21 -5
@@ -0,0 +1,489 @@
1
+ @import "tailwindcss";
2
+
3
+ @import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap");
4
+ @import url("https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;600&display=swap");
5
+ @import "tw-animate-css";
6
+
7
+ /* Input glow effect - renderizado dentro do próprio input (Email e Password) */
8
+ .email-glow-focused input {
9
+ animation: emailGlowPulse 2s ease-in-out infinite;
10
+ }
11
+
12
+ /* Efeito de glow usando pseudo-elemento no container do Input (Email) */
13
+ .email-glow-focused > div > div::after {
14
+ content: "";
15
+ position: absolute;
16
+ top: 1.75rem;
17
+ left: 0;
18
+ right: 0;
19
+ height: 2.75rem;
20
+ border-radius: 0.375rem;
21
+ background: radial-gradient(
22
+ ellipse at center,
23
+ rgba(91, 95, 237, 0.4) 0%,
24
+ rgba(91, 95, 237, 0.2) 50%,
25
+ transparent 100%
26
+ );
27
+ filter: blur(12px);
28
+ z-index: 0;
29
+ opacity: 0;
30
+ animation: emailGlowFade 2s ease-in-out infinite;
31
+ pointer-events: none;
32
+ }
33
+
34
+ /* Efeito de glow para PasswordInput (estrutura diferente) */
35
+ .email-glow-focused > div > div > div {
36
+ position: relative;
37
+ }
38
+
39
+ .email-glow-focused > div > div > div > input {
40
+ position: relative;
41
+ z-index: 1;
42
+ }
43
+
44
+ .email-glow-focused > div > div > div::after {
45
+ content: "";
46
+ position: absolute;
47
+ top: 0;
48
+ left: 0;
49
+ right: 0;
50
+ bottom: 0;
51
+ border-radius: 0.375rem;
52
+ background: radial-gradient(
53
+ ellipse at center,
54
+ rgba(91, 95, 237, 0.4) 0%,
55
+ rgba(91, 95, 237, 0.2) 50%,
56
+ transparent 100%
57
+ );
58
+ filter: blur(12px);
59
+ z-index: 0;
60
+ opacity: 0;
61
+ animation: emailGlowFade 2s ease-in-out infinite;
62
+ pointer-events: none;
63
+ }
64
+
65
+ @keyframes emailGlowPulse {
66
+ 0%,
67
+ 100% {
68
+ box-shadow: 0 0 0 0 rgba(91, 95, 237, 0);
69
+ }
70
+
71
+ 50% {
72
+ box-shadow: 0 0 20px 5px rgba(91, 95, 237, 0.3);
73
+ }
74
+ }
75
+
76
+ @keyframes emailGlowFade {
77
+ 0%,
78
+ 100% {
79
+ opacity: 0;
80
+ }
81
+
82
+ 50% {
83
+ opacity: 1;
84
+ }
85
+ }
86
+
87
+ @custom-variant dark (&:is(.dark *));
88
+
89
+ @layer base {
90
+ :root {
91
+ /* Background & Surface */
92
+ --background: 0 0% 100%;
93
+ --surface: 249 100% 98%;
94
+ --surface-hover: 210 40% 96%;
95
+
96
+ /* Foreground & Text */
97
+ --foreground: 222.2 84% 4.9%;
98
+ --text-primary: 222.2 84% 4.9%;
99
+ --text-secondary: 215.4 16.3% 46.9%;
100
+
101
+ /* Card */
102
+ --card: 0 0% 100%;
103
+ --card-foreground: 222.2 84% 4.9%;
104
+
105
+ /* Popover */
106
+ --popover: 0 0% 100%;
107
+ --popover-foreground: 222.2 84% 4.9%;
108
+
109
+ /* Primary Colors - Purple */
110
+ --primary: 262 85% 58%;
111
+ --primary-foreground: 0 0% 100%;
112
+ --primary-hover: 265 73% 50%;
113
+
114
+ /* Secondary Colors - Purple */
115
+ --secondary: 258 90% 66%;
116
+ --secondary-foreground: 0 0% 100%;
117
+ --secondary-hover: 262 85% 58%;
118
+
119
+ /* Accent Colors - Purple */
120
+ --accent: 252 94% 76%;
121
+ --accent-foreground: 262 85% 58%;
122
+ --accent-hover: 258 90% 66%;
123
+
124
+ /* Success Colors - Verde com melhor contraste */
125
+ --success: 142 76% 36%;
126
+ --success-foreground: 0 0% 100%;
127
+ --success-hover: 142 76% 30%;
128
+
129
+ /* Warning Colors - Amarelo com melhor contraste */
130
+ --warning: 38 92% 50%;
131
+ --warning-foreground: 38 92% 20%;
132
+ --warning-hover: 38 92% 45%;
133
+
134
+ /* Info Colors - Azul com melhor contraste */
135
+ --info: 217 91% 50%;
136
+ --info-foreground: 217 91% 20%;
137
+ --info-hover: 217 91% 45%;
138
+
139
+ /* Error/Destructive Colors - Vermelho para erros e ações destrutivas */
140
+ --error: 0 84% 60%;
141
+ --error-foreground: 0 84% 20%;
142
+ --error-hover: 0 84% 50%;
143
+ --destructive: 0 84% 60%;
144
+ --destructive-foreground: 0 84% 20%;
145
+
146
+ /* Muted Colors */
147
+ --muted: 210 40% 96%;
148
+ --muted-foreground: 215.4 16.3% 46.9%;
149
+
150
+ /* Border & Input */
151
+ --border: 214.3 31.8% 91.4%;
152
+ --border-hover: 213 31% 82%;
153
+ --input: 214.3 31.8% 91.4%;
154
+
155
+ /* Ring (Focus) - Purple */
156
+ --ring: 262 85% 58%;
157
+
158
+ /* Radius */
159
+ --radius: 0.75rem;
160
+
161
+ /* Design System Tokens */
162
+ /* Componentes */
163
+ --ds-button-radius: 0.375rem;
164
+ --ds-input-radius: 0.375rem;
165
+ --ds-card-radius: 0.5rem;
166
+ --ds-table-radius: 0.375rem;
167
+ --ds-card-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
168
+ --ds-table-header-height: 3rem;
169
+ --ds-table-row-height: 3rem;
170
+
171
+ /* Layout */
172
+ --ds-layout-max-width: 7xl;
173
+ --ds-layout-padding: 1.5rem;
174
+ --ds-layout-gap: 1rem;
175
+
176
+ /* Animações */
177
+ --ds-animation-fast: 150ms;
178
+ --ds-animation-normal: 300ms;
179
+ --ds-animation-slow: 500ms;
180
+ --ds-animation-easing-linear: linear;
181
+ --ds-animation-easing-in: cubic-bezier(0.4, 0, 1, 1);
182
+ --ds-animation-easing-out: cubic-bezier(0, 0, 0.2, 1);
183
+ --ds-animation-easing-in-out: cubic-bezier(0.4, 0, 0.2, 1);
184
+
185
+ /* Acessibilidade */
186
+ --ds-focus-ring: 2px solid;
187
+ --ds-focus-ring-offset: 2px;
188
+ }
189
+
190
+ .dark {
191
+ /* Background & Surface */
192
+ --background: 222.2 84% 4.9%;
193
+ --surface: 217 32% 17%;
194
+ --surface-hover: 217 32% 25%;
195
+
196
+ /* Foreground & Text */
197
+ --foreground: 210 40% 98%;
198
+ --text-primary: 210 40% 98%;
199
+ --text-secondary: 215 20.2% 65.1%;
200
+
201
+ /* Card */
202
+ --card: 222.2 84% 4.9%;
203
+ --card-foreground: 210 40% 98%;
204
+
205
+ /* Popover */
206
+ --popover: 222.2 84% 4.9%;
207
+ --popover-foreground: 210 40% 98%;
208
+
209
+ /* Primary Colors - Purple */
210
+ --primary: 258 90% 66%;
211
+ --primary-foreground: 0 0% 100%;
212
+ --primary-hover: 262 85% 58%;
213
+
214
+ /* Secondary Colors - Purple */
215
+ --secondary: 252 94% 76%;
216
+ --secondary-foreground: 0 0% 100%;
217
+ --secondary-hover: 258 90% 66%;
218
+
219
+ /* Accent Colors - Purple */
220
+ --accent: 248 95% 85%;
221
+ --accent-foreground: 0 0% 100%;
222
+ --accent-hover: 252 94% 76%;
223
+
224
+ /* Success Colors - Verde com melhor contraste para dark mode */
225
+ --success: 142 76% 45%;
226
+ --success-foreground: 142 76% 85%;
227
+ --success-hover: 142 76% 55%;
228
+
229
+ /* Warning Colors - Amarelo com melhor contraste para dark mode */
230
+ --warning: 38 92% 55%;
231
+ --warning-foreground: 38 92% 85%;
232
+ --warning-hover: 38 92% 65%;
233
+
234
+ /* Info Colors - Azul com melhor contraste para dark mode */
235
+ --info: 217 91% 55%;
236
+ --info-foreground: 217 91% 85%;
237
+ --info-hover: 217 91% 65%;
238
+
239
+ /* Error/Destructive Colors - Vermelho para erros e ações destrutivas (dark mode) */
240
+ --error: 0 84% 60%;
241
+ --error-foreground: 0 84% 85%;
242
+ --error-hover: 0 72% 70%;
243
+ --destructive: 0 62.8% 30.6%;
244
+ --destructive-foreground: 0 84% 85%;
245
+
246
+ /* Muted Colors */
247
+ --muted: 217 32% 17%;
248
+ --muted-foreground: 215 20.2% 65.1%;
249
+
250
+ /* Border & Input */
251
+ --border: 217 32% 17%;
252
+ --border-hover: 217 32% 25%;
253
+ --input: 217 33% 30%;
254
+
255
+ /* Ring (Focus) - Purple */
256
+ --ring: 258 90% 66%;
257
+ }
258
+ }
259
+
260
+ @theme {
261
+ /* Cores customizadas mapeadas para o Tailwind v4 */
262
+ /* Essas cores referenciam as variáveis CSS definidas em globals.css */
263
+ --color-background: hsl(var(--background));
264
+ --color-foreground: hsl(var(--foreground));
265
+ --color-card: hsl(var(--card));
266
+ --color-card-foreground: hsl(var(--card-foreground));
267
+ --color-popover: hsl(var(--popover));
268
+ --color-popover-foreground: hsl(var(--popover-foreground));
269
+ --color-primary: hsl(var(--primary));
270
+ --color-primary-foreground: hsl(var(--primary-foreground));
271
+ --color-secondary: hsl(var(--secondary));
272
+ --color-secondary-foreground: hsl(var(--secondary-foreground));
273
+ --color-muted: hsl(var(--muted));
274
+ --color-muted-foreground: hsl(var(--muted-foreground));
275
+ --color-accent: hsl(var(--accent));
276
+ --color-accent-foreground: hsl(var(--accent-foreground));
277
+ --color-destructive: hsl(var(--destructive));
278
+ --color-destructive-foreground: hsl(var(--destructive-foreground));
279
+ --color-border: hsl(var(--border));
280
+ --color-input: hsl(var(--input));
281
+ --color-ring: hsl(var(--ring));
282
+ --color-success: hsl(var(--success));
283
+ --color-success-foreground: hsl(var(--success-foreground));
284
+ --color-warning: hsl(var(--warning));
285
+ --color-warning-foreground: hsl(var(--warning-foreground));
286
+ --color-info: hsl(var(--info));
287
+ --color-info-foreground: hsl(var(--info-foreground));
288
+ --color-error: hsl(var(--error));
289
+ --color-error-foreground: hsl(var(--error-foreground));
290
+ --color-surface: hsl(var(--surface));
291
+ --color-surface-hover: hsl(var(--surface-hover));
292
+ --color-text-primary: hsl(var(--text-primary));
293
+ --color-text-secondary: hsl(var(--text-secondary));
294
+ }
295
+
296
+ @layer base {
297
+ * {
298
+ border-color: hsl(var(--border));
299
+ }
300
+
301
+ body {
302
+ @apply bg-background text-foreground;
303
+ font-feature-settings:
304
+ "rlig" 1,
305
+ "calt" 1;
306
+ font-family:
307
+ "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu",
308
+ "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
309
+ -webkit-font-smoothing: antialiased;
310
+ -moz-osx-font-smoothing: grayscale;
311
+ line-height: 1.6;
312
+ transition:
313
+ background-color 0.3s ease,
314
+ color 0.3s ease;
315
+ }
316
+ }
317
+
318
+ @layer components {
319
+ /* Componentes customizados do Design System */
320
+ .ds-card {
321
+ @apply bg-card text-card-foreground rounded-lg border shadow-sm;
322
+ }
323
+
324
+ .ds-card-hover {
325
+ @apply hover:shadow-lg transition-shadow duration-200;
326
+ }
327
+
328
+ .ds-button {
329
+ @apply inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none;
330
+ }
331
+
332
+ .ds-input {
333
+ @apply flex w-full rounded-md border border-input bg-transparent px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50;
334
+ }
335
+
336
+ .ds-badge {
337
+ @apply inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2;
338
+ }
339
+
340
+ .ds-table {
341
+ @apply w-full caption-bottom text-sm;
342
+ }
343
+
344
+ .ds-table-header {
345
+ @apply [&_tr]:border-b;
346
+ }
347
+
348
+ .ds-table-body {
349
+ @apply [&_tr:last-child]:border-0;
350
+ }
351
+
352
+ .ds-table-row {
353
+ @apply border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted;
354
+ }
355
+
356
+ .ds-table-head {
357
+ @apply h-12 px-4 text-left align-middle font-medium text-muted-foreground [&:has([role=checkbox])]:pr-0;
358
+ }
359
+
360
+ .ds-table-cell {
361
+ @apply p-4 align-middle [&:has([role=checkbox])]:pr-0;
362
+ }
363
+ }
364
+
365
+ @layer utilities {
366
+ /* Utilitários customizados */
367
+ .text-balance {
368
+ text-wrap: balance;
369
+ }
370
+
371
+ .text-pretty {
372
+ text-wrap: pretty;
373
+ }
374
+
375
+ .scrollbar-hide {
376
+ -ms-overflow-style: none;
377
+ scrollbar-width: none;
378
+ }
379
+
380
+ .scrollbar-hide::-webkit-scrollbar {
381
+ display: none;
382
+ }
383
+
384
+ .animate-in {
385
+ animation: fadeIn 0.5s ease-in-out;
386
+ }
387
+
388
+ .animate-slide-up {
389
+ animation: slideUp 0.3s ease-out;
390
+ }
391
+
392
+ .animate-slide-down {
393
+ animation: slideDown 0.3s ease-out;
394
+ }
395
+ }
396
+
397
+ /* Scrollbar Styling */
398
+ ::-webkit-scrollbar {
399
+ width: 8px;
400
+ height: 8px;
401
+ }
402
+
403
+ ::-webkit-scrollbar-track {
404
+ background: hsl(var(--surface));
405
+ }
406
+
407
+ ::-webkit-scrollbar-thumb {
408
+ background: hsl(var(--border));
409
+ border-radius: 4px;
410
+ }
411
+
412
+ ::-webkit-scrollbar-thumb:hover {
413
+ background: hsl(var(--text-secondary));
414
+ }
415
+
416
+ :root {
417
+ --sidebar: hsl(0 0% 98%);
418
+ --sidebar-foreground: hsl(240 5.3% 26.1%);
419
+ --sidebar-primary: hsl(240 5.9% 10%);
420
+ --sidebar-primary-foreground: hsl(0 0% 98%);
421
+ --sidebar-accent: hsl(240 4.8% 95.9%);
422
+ --sidebar-accent-foreground: hsl(240 5.9% 10%);
423
+ --sidebar-border: hsl(220 13% 91%);
424
+ --sidebar-ring: hsl(217.2 91.2% 59.8%);
425
+ }
426
+
427
+ .dark {
428
+ --sidebar: hsl(240 5.9% 10%);
429
+ --sidebar-foreground: hsl(240 4.8% 95.9%);
430
+ --sidebar-primary: hsl(224.3 76.3% 48%);
431
+ --sidebar-primary-foreground: hsl(0 0% 100%);
432
+ --sidebar-accent: hsl(240 3.7% 15.9%);
433
+ --sidebar-accent-foreground: hsl(240 4.8% 95.9%);
434
+ --sidebar-border: hsl(240 3.7% 15.9%);
435
+ --sidebar-ring: hsl(217.2 91.2% 59.8%);
436
+ }
437
+
438
+ @theme inline {
439
+ --color-sidebar: var(--sidebar);
440
+ --color-sidebar-foreground: var(--sidebar-foreground);
441
+ --color-sidebar-primary: var(--sidebar-primary);
442
+ --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
443
+ --color-sidebar-accent: var(--sidebar-accent);
444
+ --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
445
+ --color-sidebar-border: var(--sidebar-border);
446
+ --color-sidebar-ring: var(--sidebar-ring);
447
+ --animate-accordion-down: accordion-down 0.2s ease-out;
448
+ --animate-accordion-up: accordion-up 0.2s ease-out;
449
+
450
+ @keyframes accordion-down {
451
+ from {
452
+ height: 0;
453
+ }
454
+
455
+ to {
456
+ height: var(--radix-accordion-content-height);
457
+ }
458
+ }
459
+
460
+ @keyframes accordion-up {
461
+ from {
462
+ height: var(--radix-accordion-content-height);
463
+ }
464
+
465
+ to {
466
+ height: 0;
467
+ }
468
+ }
469
+
470
+ --animate-shiny-text: shiny-text 3s infinite;
471
+ @keyframes shiny-text {
472
+ 0% {
473
+ background-position: calc(-1 * var(--shiny-width)) 0;
474
+ }
475
+ 100% {
476
+ background-position: calc(100% + var(--shiny-width)) 0;
477
+ }
478
+ }
479
+ }
480
+
481
+ @layer base {
482
+ * {
483
+ @apply border-border outline-ring/50;
484
+ }
485
+
486
+ body {
487
+ @apply bg-background text-foreground;
488
+ }
489
+ }