@fluencypassdevs/cycle 0.1.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 (141) hide show
  1. package/README.md +36 -0
  2. package/dist/chunk-2MXR6RRJ.js +106 -0
  3. package/dist/chunk-2MXR6RRJ.js.map +1 -0
  4. package/dist/chunk-2WPH3IQP.js +48 -0
  5. package/dist/chunk-2WPH3IQP.js.map +1 -0
  6. package/dist/chunk-3LXU5C35.js +68 -0
  7. package/dist/chunk-3LXU5C35.js.map +1 -0
  8. package/dist/chunk-6LML23MS.js +347 -0
  9. package/dist/chunk-6LML23MS.js.map +1 -0
  10. package/dist/chunk-726XFHED.js +22 -0
  11. package/dist/chunk-726XFHED.js.map +1 -0
  12. package/dist/chunk-7UMEJDC3.js +62 -0
  13. package/dist/chunk-7UMEJDC3.js.map +1 -0
  14. package/dist/chunk-7XT6ISPQ.js +97 -0
  15. package/dist/chunk-7XT6ISPQ.js.map +1 -0
  16. package/dist/chunk-AL2ALTBH.js +115 -0
  17. package/dist/chunk-AL2ALTBH.js.map +1 -0
  18. package/dist/chunk-CIM6KJH5.js +59 -0
  19. package/dist/chunk-CIM6KJH5.js.map +1 -0
  20. package/dist/chunk-CSL4DRPW.js +39 -0
  21. package/dist/chunk-CSL4DRPW.js.map +1 -0
  22. package/dist/chunk-HZJRM5EK.js +97 -0
  23. package/dist/chunk-HZJRM5EK.js.map +1 -0
  24. package/dist/chunk-IJTNFN6N.js +61 -0
  25. package/dist/chunk-IJTNFN6N.js.map +1 -0
  26. package/dist/chunk-K567KZD5.js +63 -0
  27. package/dist/chunk-K567KZD5.js.map +1 -0
  28. package/dist/chunk-MSLQRGSP.js +113 -0
  29. package/dist/chunk-MSLQRGSP.js.map +1 -0
  30. package/dist/chunk-NGOZFA33.js +60 -0
  31. package/dist/chunk-NGOZFA33.js.map +1 -0
  32. package/dist/chunk-NVA4ZJOS.js +66 -0
  33. package/dist/chunk-NVA4ZJOS.js.map +1 -0
  34. package/dist/chunk-OT2HCBR2.js +37 -0
  35. package/dist/chunk-OT2HCBR2.js.map +1 -0
  36. package/dist/chunk-PM6ZUCMQ.js +73 -0
  37. package/dist/chunk-PM6ZUCMQ.js.map +1 -0
  38. package/dist/chunk-PXWCEJ2C.js +223 -0
  39. package/dist/chunk-PXWCEJ2C.js.map +1 -0
  40. package/dist/chunk-QTL6W4I2.js +57 -0
  41. package/dist/chunk-QTL6W4I2.js.map +1 -0
  42. package/dist/chunk-QZVQPUVT.js +129 -0
  43. package/dist/chunk-QZVQPUVT.js.map +1 -0
  44. package/dist/chunk-R4LITCVX.js +111 -0
  45. package/dist/chunk-R4LITCVX.js.map +1 -0
  46. package/dist/chunk-TYCPXAXF.js +10 -0
  47. package/dist/chunk-TYCPXAXF.js.map +1 -0
  48. package/dist/chunk-UEJLA7Q6.js +70 -0
  49. package/dist/chunk-UEJLA7Q6.js.map +1 -0
  50. package/dist/chunk-UVCEQOQR.js +104 -0
  51. package/dist/chunk-UVCEQOQR.js.map +1 -0
  52. package/dist/chunk-VECLN5AT.js +202 -0
  53. package/dist/chunk-VECLN5AT.js.map +1 -0
  54. package/dist/chunk-XX3I65LQ.js +435 -0
  55. package/dist/chunk-XX3I65LQ.js.map +1 -0
  56. package/dist/chunk-YINJ5YZ5.js +35 -0
  57. package/dist/chunk-YINJ5YZ5.js.map +1 -0
  58. package/dist/icons/index.d.ts +617 -0
  59. package/dist/icons/index.js +5 -0
  60. package/dist/icons/index.js.map +1 -0
  61. package/dist/index.d.ts +33 -0
  62. package/dist/index.js +30 -0
  63. package/dist/index.js.map +1 -0
  64. package/dist/lib/utils.d.ts +5 -0
  65. package/dist/lib/utils.js +4 -0
  66. package/dist/lib/utils.js.map +1 -0
  67. package/dist/styles/tailwind-theme.css +87 -0
  68. package/dist/styles/tokens.css +496 -0
  69. package/dist/ui/accordion.d.ts +10 -0
  70. package/dist/ui/accordion.js +5 -0
  71. package/dist/ui/accordion.js.map +1 -0
  72. package/dist/ui/audio-player.d.ts +30 -0
  73. package/dist/ui/audio-player.js +7 -0
  74. package/dist/ui/audio-player.js.map +1 -0
  75. package/dist/ui/avatar.d.ts +16 -0
  76. package/dist/ui/avatar.js +5 -0
  77. package/dist/ui/avatar.js.map +1 -0
  78. package/dist/ui/badge.d.ts +15 -0
  79. package/dist/ui/badge.js +5 -0
  80. package/dist/ui/badge.js.map +1 -0
  81. package/dist/ui/button.d.ts +15 -0
  82. package/dist/ui/button.js +5 -0
  83. package/dist/ui/button.js.map +1 -0
  84. package/dist/ui/chat-bubble.d.ts +21 -0
  85. package/dist/ui/chat-bubble.js +6 -0
  86. package/dist/ui/chat-bubble.js.map +1 -0
  87. package/dist/ui/chat-panel.d.ts +35 -0
  88. package/dist/ui/chat-panel.js +10 -0
  89. package/dist/ui/chat-panel.js.map +1 -0
  90. package/dist/ui/checkbox.d.ts +17 -0
  91. package/dist/ui/checkbox.js +5 -0
  92. package/dist/ui/checkbox.js.map +1 -0
  93. package/dist/ui/file-card.d.ts +27 -0
  94. package/dist/ui/file-card.js +5 -0
  95. package/dist/ui/file-card.js.map +1 -0
  96. package/dist/ui/input.d.ts +11 -0
  97. package/dist/ui/input.js +5 -0
  98. package/dist/ui/input.js.map +1 -0
  99. package/dist/ui/label.d.ts +9 -0
  100. package/dist/ui/label.js +5 -0
  101. package/dist/ui/label.js.map +1 -0
  102. package/dist/ui/like-dislike.d.ts +32 -0
  103. package/dist/ui/like-dislike.js +9 -0
  104. package/dist/ui/like-dislike.js.map +1 -0
  105. package/dist/ui/live-waiting.d.ts +16 -0
  106. package/dist/ui/live-waiting.js +8 -0
  107. package/dist/ui/live-waiting.js.map +1 -0
  108. package/dist/ui/progress-stage.d.ts +19 -0
  109. package/dist/ui/progress-stage.js +5 -0
  110. package/dist/ui/progress-stage.js.map +1 -0
  111. package/dist/ui/progress.d.ts +19 -0
  112. package/dist/ui/progress.js +5 -0
  113. package/dist/ui/progress.js.map +1 -0
  114. package/dist/ui/radio-group.d.ts +19 -0
  115. package/dist/ui/radio-group.js +5 -0
  116. package/dist/ui/radio-group.js.map +1 -0
  117. package/dist/ui/scroll-area.d.ts +8 -0
  118. package/dist/ui/scroll-area.js +5 -0
  119. package/dist/ui/scroll-area.js.map +1 -0
  120. package/dist/ui/sheet.d.ts +17 -0
  121. package/dist/ui/sheet.js +5 -0
  122. package/dist/ui/sheet.js.map +1 -0
  123. package/dist/ui/slider.d.ts +16 -0
  124. package/dist/ui/slider.js +5 -0
  125. package/dist/ui/slider.js.map +1 -0
  126. package/dist/ui/switch.d.ts +16 -0
  127. package/dist/ui/switch.js +5 -0
  128. package/dist/ui/switch.js.map +1 -0
  129. package/dist/ui/tabs.d.ts +15 -0
  130. package/dist/ui/tabs.js +5 -0
  131. package/dist/ui/tabs.js.map +1 -0
  132. package/dist/ui/textarea.d.ts +12 -0
  133. package/dist/ui/textarea.js +5 -0
  134. package/dist/ui/textarea.js.map +1 -0
  135. package/dist/ui/toggle.d.ts +17 -0
  136. package/dist/ui/toggle.js +5 -0
  137. package/dist/ui/toggle.js.map +1 -0
  138. package/dist/ui/video-player.d.ts +28 -0
  139. package/dist/ui/video-player.js +7 -0
  140. package/dist/ui/video-player.js.map +1 -0
  141. package/package.json +90 -0
@@ -0,0 +1,5 @@
1
+ import { ClassValue } from 'clsx';
2
+
3
+ declare function cn(...inputs: ClassValue[]): string;
4
+
5
+ export { cn };
@@ -0,0 +1,4 @@
1
+ export { cn } from '../chunk-TYCPXAXF.js';
2
+ import '../chunk-YINJ5YZ5.js';
3
+ //# sourceMappingURL=utils.js.map
4
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"utils.js"}
@@ -0,0 +1,87 @@
1
+ /**
2
+ * @fluencypassdevs/cycle — Tailwind CSS 4 Theme
3
+ *
4
+ * Copy this @theme block into your project's globals.css
5
+ * (after your @import "tailwindcss" line) to map Cycle's
6
+ * CSS variables to Tailwind utility classes.
7
+ *
8
+ * Usage in your globals.css:
9
+ * @import "tailwindcss";
10
+ * @import "tw-animate-css";
11
+ * @custom-variant dark (&:is(.dark *));
12
+ *
13
+ * @theme inline {
14
+ * ... paste the contents below ...
15
+ * }
16
+ */
17
+
18
+ @theme inline {
19
+ --color-background: var(--background);
20
+ --color-foreground: var(--foreground);
21
+ --color-card: var(--card);
22
+ --color-card-foreground: var(--card-foreground);
23
+ --color-popover: var(--popover);
24
+ --color-popover-foreground: var(--popover-foreground);
25
+ --color-primary: var(--primary);
26
+ --color-primary-foreground: var(--primary-foreground);
27
+ --color-secondary: var(--secondary);
28
+ --color-secondary-foreground: var(--secondary-foreground);
29
+ --color-muted: var(--muted);
30
+ --color-muted-foreground: var(--muted-foreground);
31
+ --color-accent: var(--accent);
32
+ --color-accent-foreground: var(--accent-foreground);
33
+ --color-destructive: var(--destructive);
34
+ --color-destructive-foreground: var(--destructive-foreground);
35
+ --color-border: var(--border);
36
+ --color-input: var(--input);
37
+ --color-ring: var(--ring);
38
+ --color-chart-1: var(--chart-1);
39
+ --color-chart-2: var(--chart-2);
40
+ --color-chart-3: var(--chart-3);
41
+ --color-chart-4: var(--chart-4);
42
+ --color-chart-5: var(--chart-5);
43
+ --color-sidebar: var(--sidebar);
44
+ --color-sidebar-foreground: var(--sidebar-foreground);
45
+ --color-sidebar-primary: var(--sidebar-primary);
46
+ --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
47
+ --color-sidebar-accent: var(--sidebar-accent);
48
+ --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
49
+ --color-sidebar-border: var(--sidebar-border);
50
+ --color-sidebar-ring: var(--sidebar-ring);
51
+ --color-alpha-backdrop: var(--alpha-backdrop);
52
+ --color-alpha-overlay: var(--alpha-overlay);
53
+ --color-neutral-foreground: var(--neutral-foreground);
54
+ --color-neutral-muted-foreground: var(--neutral-muted-foreground);
55
+ --color-neutral-border: var(--neutral-border);
56
+ --color-neutral-input: var(--neutral-input);
57
+ --color-neutral-bg: var(--neutral-bg);
58
+ --color-neutral-accent: var(--neutral-accent);
59
+ --radius-sm: calc(var(--radius) - 4px);
60
+ --radius-md: calc(var(--radius) - 2px);
61
+ --radius-lg: var(--radius);
62
+ --radius-xl: calc(var(--radius) + 4px);
63
+
64
+ --shadow-xs: var(--cycle-shadow-xs);
65
+ --shadow-sm: var(--cycle-shadow-sm);
66
+ --shadow-md: var(--cycle-shadow-md);
67
+ --shadow-lg: var(--cycle-shadow-lg);
68
+ --shadow-xl: var(--cycle-shadow-xl);
69
+
70
+ --text-2xs: 0.625rem;
71
+ --text-4xl: 2.5rem;
72
+ --text-6xl: 4rem;
73
+
74
+ --leading-3_5: 0.875rem;
75
+ --leading-4_5: 1.125rem;
76
+ --leading-7_5: 1.875rem;
77
+ --leading-15: 3.75rem;
78
+ --leading-20_5: 5.125rem;
79
+ --leading-22_5: 5.625rem;
80
+
81
+ --tracking-tighter: -0.05em;
82
+ --tracking-tight: -0.025em;
83
+ --tracking-normal: 0em;
84
+ --tracking-wide: 0.025em;
85
+ --tracking-wider: 0.05em;
86
+ --tracking-widest: 0.1em;
87
+ }
@@ -0,0 +1,496 @@
1
+ /**
2
+ * @fluencypassdevs/cycle — Design Tokens
3
+ *
4
+ * Import this file in your app to get Cycle's design tokens:
5
+ * import "@fluencypassdevs/cycle/styles.css"
6
+ *
7
+ * These are pure CSS custom properties. They work with or without Tailwind.
8
+ * If using Tailwind CSS 4, also copy the theme block from tailwind-theme.css
9
+ * into your globals.css.
10
+ */
11
+
12
+ /* --- Color Primitives (Cycle scale) --- */
13
+ :root {
14
+ --base-white: #FFFFFF;
15
+ --base-black: #000000;
16
+ --gray-50: #FAFAFA;
17
+ --gray-100: #F5F5F5;
18
+ --gray-200: #E9EAEB;
19
+ --gray-300: #D5D7DA;
20
+ --gray-400: #A4A7AE;
21
+ --gray-500: #717680;
22
+ --gray-600: #535862;
23
+ --gray-700: #414651;
24
+ --gray-800: #252B37;
25
+ --gray-900: #181D27;
26
+ --gray-950: #0D0D12;
27
+ }
28
+
29
+ /* --- Light Mode: Neutral (global theme) --- */
30
+ :root {
31
+ --background: var(--base-white);
32
+ --foreground: var(--gray-950);
33
+ --card: var(--base-white);
34
+ --card-foreground: var(--gray-950);
35
+ --popover: var(--base-white);
36
+ --popover-foreground: var(--gray-950);
37
+ --muted: var(--gray-50);
38
+ --muted-foreground: var(--gray-600);
39
+ --accent: var(--gray-100);
40
+ --accent-foreground: var(--gray-900);
41
+ --primary: var(--gray-950);
42
+ --primary-foreground: var(--gray-100);
43
+ --secondary: var(--gray-50);
44
+ --secondary-foreground: var(--gray-900);
45
+ --border: var(--gray-300);
46
+ --input: var(--gray-200);
47
+ --ring: var(--gray-500);
48
+ --destructive: #B32020;
49
+ --destructive-foreground: var(--base-white);
50
+ --chart-1: #D45558;
51
+ --chart-2: #1A5FE0;
52
+ --chart-3: #00C234;
53
+ --chart-4: #D48E00;
54
+ --chart-5: #7D0DD4;
55
+ --radius: 0.625rem;
56
+ --neutral-foreground: var(--gray-900);
57
+ --neutral-muted-foreground: var(--gray-600);
58
+ --neutral-border: var(--gray-300);
59
+ --neutral-input: var(--gray-200);
60
+ --neutral-bg: var(--base-white);
61
+ --neutral-accent: var(--gray-100);
62
+ --alpha-backdrop: rgba(0, 0, 0, 0.6);
63
+ --alpha-overlay: rgba(255, 255, 255, 0.6);
64
+
65
+ /* Shadows — Light */
66
+ --cycle-shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
67
+ --cycle-shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, 0.08), 0 1px 2px -1px rgba(0, 0, 0, 0.08);
68
+ --cycle-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.08), 0 2px 4px -2px rgba(0, 0, 0, 0.05);
69
+ --cycle-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.08), 0 4px 6px -4px rgba(0, 0, 0, 0.05);
70
+ --cycle-shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.08), 0 8px 10px -6px rgba(0, 0, 0, 0.05);
71
+
72
+ --sidebar: var(--gray-50);
73
+ --sidebar-foreground: var(--gray-900);
74
+ --sidebar-primary: var(--gray-950);
75
+ --sidebar-primary-foreground: var(--gray-100);
76
+ --sidebar-accent: var(--gray-100);
77
+ --sidebar-accent-foreground: var(--gray-900);
78
+ --sidebar-border: var(--gray-300);
79
+ --sidebar-ring: var(--gray-500);
80
+ }
81
+
82
+ /* --- Dark Mode: Neutral --- */
83
+ .dark {
84
+ --background: var(--base-black);
85
+ --foreground: var(--gray-50);
86
+ --card: var(--gray-950);
87
+ --card-foreground: var(--gray-50);
88
+ --popover: var(--gray-950);
89
+ --popover-foreground: var(--gray-50);
90
+ --muted: var(--gray-950);
91
+ --muted-foreground: var(--gray-400);
92
+ --accent: var(--gray-800);
93
+ --accent-foreground: var(--gray-50);
94
+ --primary: var(--base-white);
95
+ --primary-foreground: var(--gray-900);
96
+ --secondary: var(--gray-900);
97
+ --secondary-foreground: var(--gray-200);
98
+ --border: var(--gray-700);
99
+ --input: var(--gray-800);
100
+ --ring: var(--gray-400);
101
+ --destructive: #D42B2B;
102
+ --destructive-foreground: var(--gray-50);
103
+ --chart-1: #ED6A6D;
104
+ --chart-2: #2E74FF;
105
+ --chart-3: #00E73E;
106
+ --chart-4: #F5A800;
107
+ --chart-5: #9810FA;
108
+ --neutral-foreground: var(--gray-50);
109
+ --neutral-muted-foreground: var(--gray-400);
110
+ --neutral-border: var(--gray-700);
111
+ --neutral-input: var(--gray-800);
112
+ --neutral-bg: var(--gray-950);
113
+ --neutral-accent: var(--gray-800);
114
+ --alpha-backdrop: rgba(0, 0, 0, 0.6);
115
+ --alpha-overlay: rgba(255, 255, 255, 0.6);
116
+
117
+ /* Shadows — Dark */
118
+ --cycle-shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(255, 255, 255, 0.03);
119
+ --cycle-shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(255, 255, 255, 0.04);
120
+ --cycle-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(255, 255, 255, 0.05);
121
+ --cycle-shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.6), 0 0 0 1px rgba(255, 255, 255, 0.05);
122
+ --cycle-shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.6), 0 0 0 1px rgba(255, 255, 255, 0.06);
123
+
124
+ --sidebar: var(--gray-900);
125
+ --sidebar-foreground: var(--gray-50);
126
+ --sidebar-primary: var(--base-white);
127
+ --sidebar-primary-foreground: var(--gray-900);
128
+ --sidebar-accent: var(--gray-800);
129
+ --sidebar-accent-foreground: var(--gray-50);
130
+ --sidebar-border: var(--gray-700);
131
+ --sidebar-ring: var(--gray-400);
132
+ }
133
+
134
+ /* --- Theme Variations: Light Mode --- */
135
+
136
+ .theme-brand {
137
+ --background: #FFE8E8;
138
+ --foreground: #D45558;
139
+ --card: #FFE8E8;
140
+ --card-foreground: #D45558;
141
+ --popover: #FFE8E8;
142
+ --popover-foreground: #D45558;
143
+ --muted: #FFD0D1;
144
+ --muted-foreground: #8C2D2F;
145
+ --accent: #FF8A8D;
146
+ --accent-foreground: #6B1E20;
147
+ --primary: #D45558;
148
+ --primary-foreground: #FFFFFF;
149
+ --secondary: #FFE8E8;
150
+ --secondary-foreground: #0a0a0a;
151
+ --border: #D45558;
152
+ --input: #ED6A6D;
153
+ --ring: #B33E41;
154
+ }
155
+
156
+ .theme-class {
157
+ --background: #E0EBFF;
158
+ --foreground: #1A5FE0;
159
+ --card: #E0EBFF;
160
+ --card-foreground: #1A5FE0;
161
+ --popover: #E0EBFF;
162
+ --popover-foreground: #1A5FE0;
163
+ --muted: #C2D6FF;
164
+ --muted-foreground: #0A3590;
165
+ --accent: #70A0FF;
166
+ --accent-foreground: #062268;
167
+ --primary: #1A5FE0;
168
+ --primary-foreground: #FFFFFF;
169
+ --secondary: #E0EBFF;
170
+ --secondary-foreground: #0a0a0a;
171
+ --border: #1A5FE0;
172
+ --input: #2E74FF;
173
+ --ring: #0F4BBC;
174
+ }
175
+
176
+ .theme-private {
177
+ --background: #FFEDE0;
178
+ --foreground: #E56530;
179
+ --card: #FFEDE0;
180
+ --card-foreground: #E56530;
181
+ --popover: #FFEDE0;
182
+ --popover-foreground: #E56530;
183
+ --muted: #FFD9C2;
184
+ --muted-foreground: #993A16;
185
+ --accent: #FFA570;
186
+ --accent-foreground: #73270E;
187
+ --primary: #E56530;
188
+ --primary-foreground: #FFFFFF;
189
+ --secondary: #FFEDE0;
190
+ --secondary-foreground: #0a0a0a;
191
+ --border: #E56530;
192
+ --input: #FF8041;
193
+ --ring: #BF4D20;
194
+ }
195
+
196
+ .theme-group {
197
+ --background: #E0FFE9;
198
+ --foreground: #00C234;
199
+ --card: #E0FFE9;
200
+ --card-foreground: #00C234;
201
+ --popover: #E0FFE9;
202
+ --popover-foreground: #00C234;
203
+ --muted: #B8FFD0;
204
+ --muted-foreground: #00731E;
205
+ --accent: #47FF8A;
206
+ --accent-foreground: #004D14;
207
+ --primary: #00C234;
208
+ --primary-foreground: #0a0a0a;
209
+ --secondary: #E0FFE9;
210
+ --secondary-foreground: #0a0a0a;
211
+ --border: #00C234;
212
+ --input: #00E73E;
213
+ --ring: #009929;
214
+ }
215
+
216
+ .theme-impulse {
217
+ --background: #F7E0FF;
218
+ --foreground: #7D0DD4;
219
+ --card: #F7E0FF;
220
+ --card-foreground: #7D0DD4;
221
+ --popover: #F7E0FF;
222
+ --popover-foreground: #7D0DD4;
223
+ --muted: #EFC2FF;
224
+ --muted-foreground: #48077C;
225
+ --accent: #D070FF;
226
+ --accent-foreground: #48077C;
227
+ --primary: #7D0DD4;
228
+ --primary-foreground: #FFFFFF;
229
+ --secondary: #F7E0FF;
230
+ --secondary-foreground: #0a0a0a;
231
+ --border: #7D0DD4;
232
+ --input: #9810FA;
233
+ --ring: #6209A8;
234
+ }
235
+
236
+ .theme-positive {
237
+ --background: #E0FAF0;
238
+ --foreground: #098A5E;
239
+ --card: #E0FAF0;
240
+ --card-foreground: #098A5E;
241
+ --popover: #E0FAF0;
242
+ --popover-foreground: #098A5E;
243
+ --muted: #B8F2D9;
244
+ --muted-foreground: #05523A;
245
+ --accent: #47D99E;
246
+ --accent-foreground: #033526;
247
+ --primary: #098A5E;
248
+ --primary-foreground: #FFFFFF;
249
+ --secondary: #E0FAF0;
250
+ --secondary-foreground: #0a0a0a;
251
+ --border: #098A5E;
252
+ --input: #0BA370;
253
+ --ring: #07704C;
254
+ }
255
+
256
+ .theme-warning {
257
+ --background: #FFF5D9;
258
+ --foreground: #D48E00;
259
+ --card: #FFF5D9;
260
+ --card-foreground: #D48E00;
261
+ --popover: #FFF5D9;
262
+ --popover-foreground: #D48E00;
263
+ --muted: #FEEAB0;
264
+ --muted-foreground: #7D5400;
265
+ --accent: #FECF50;
266
+ --accent-foreground: #523800;
267
+ --primary: #D48E00;
268
+ --primary-foreground: #FFFFFF;
269
+ --secondary: #FFF5D9;
270
+ --secondary-foreground: #0a0a0a;
271
+ --border: #D48E00;
272
+ --input: #F5A800;
273
+ --ring: #AA7200;
274
+ }
275
+
276
+ .theme-critical {
277
+ --background: #FFE8E8;
278
+ --foreground: #B32020;
279
+ --card: #FFE8E8;
280
+ --card-foreground: #B32020;
281
+ --popover: #FFE8E8;
282
+ --popover-foreground: #B32020;
283
+ --muted: #FFD0D0;
284
+ --muted-foreground: #6B1010;
285
+ --accent: #FF8585;
286
+ --accent-foreground: #470A0A;
287
+ --primary: #B32020;
288
+ --primary-foreground: #FFFFFF;
289
+ --secondary: #FFE8E8;
290
+ --secondary-foreground: #0a0a0a;
291
+ --border: #B32020;
292
+ --input: #D42B2B;
293
+ --ring: #8F1717;
294
+ }
295
+
296
+ /* --- Theme Variations: Dark Mode --- */
297
+
298
+ .dark .theme-brand,
299
+ .theme-brand:is(.dark *) {
300
+ --background: rgba(237, 106, 109, 0.1);
301
+ --foreground: #ED6A6D;
302
+ --card: rgba(237, 106, 109, 0.1);
303
+ --card-foreground: #ED6A6D;
304
+ --popover: rgba(237, 106, 109, 0.1);
305
+ --popover-foreground: #ED6A6D;
306
+ --muted: rgba(237, 106, 109, 0.2);
307
+ --muted-foreground: #FFB0B2;
308
+ --accent: rgba(237, 106, 109, 0.3);
309
+ --accent-foreground: #FFE8E8;
310
+ --primary: #ED6A6D;
311
+ --primary-foreground: #FFFFFF;
312
+ --secondary: rgba(237, 106, 109, 0.1);
313
+ --secondary-foreground: #ffffff;
314
+ --border: #ED6A6D;
315
+ --input: #F57B7E;
316
+ --ring: #F57B7E;
317
+ }
318
+
319
+ .dark .theme-class,
320
+ .theme-class:is(.dark *) {
321
+ --background: rgba(46, 116, 255, 0.1);
322
+ --foreground: #2E74FF;
323
+ --card: rgba(46, 116, 255, 0.1);
324
+ --card-foreground: #2E74FF;
325
+ --popover: rgba(46, 116, 255, 0.1);
326
+ --popover-foreground: #2E74FF;
327
+ --muted: rgba(46, 116, 255, 0.2);
328
+ --muted-foreground: #99BBFF;
329
+ --accent: rgba(46, 116, 255, 0.3);
330
+ --accent-foreground: #E0EBFF;
331
+ --primary: #2E74FF;
332
+ --primary-foreground: #FFFFFF;
333
+ --secondary: rgba(46, 116, 255, 0.1);
334
+ --secondary-foreground: #ffffff;
335
+ --border: #2E74FF;
336
+ --input: #4D8AFF;
337
+ --ring: #4D8AFF;
338
+ }
339
+
340
+ .dark .theme-private,
341
+ .theme-private:is(.dark *) {
342
+ --background: rgba(255, 128, 65, 0.1);
343
+ --foreground: #FF8041;
344
+ --card: rgba(255, 128, 65, 0.1);
345
+ --card-foreground: #FF8041;
346
+ --popover: rgba(255, 128, 65, 0.1);
347
+ --popover-foreground: #FF8041;
348
+ --muted: rgba(255, 128, 65, 0.2);
349
+ --muted-foreground: #FFC09A;
350
+ --accent: rgba(255, 128, 65, 0.3);
351
+ --accent-foreground: #FFEDE0;
352
+ --primary: #FF8041;
353
+ --primary-foreground: #FFFFFF;
354
+ --secondary: rgba(255, 128, 65, 0.1);
355
+ --secondary-foreground: #ffffff;
356
+ --border: #FF8041;
357
+ --input: #FF9158;
358
+ --ring: #FF9158;
359
+ }
360
+
361
+ .dark .theme-group,
362
+ .theme-group:is(.dark *) {
363
+ --background: rgba(0, 231, 62, 0.1);
364
+ --foreground: #00E73E;
365
+ --card: rgba(0, 231, 62, 0.1);
366
+ --card-foreground: #00E73E;
367
+ --popover: rgba(0, 231, 62, 0.1);
368
+ --popover-foreground: #00E73E;
369
+ --muted: rgba(0, 231, 62, 0.2);
370
+ --muted-foreground: #80FFB0;
371
+ --accent: rgba(0, 231, 62, 0.3);
372
+ --accent-foreground: #E0FFE9;
373
+ --primary: #00E73E;
374
+ --primary-foreground: #0a0a0a;
375
+ --secondary: rgba(0, 231, 62, 0.1);
376
+ --secondary-foreground: #ffffff;
377
+ --border: #00E73E;
378
+ --input: #1AFF61;
379
+ --ring: #1AFF61;
380
+ }
381
+
382
+ .dark .theme-impulse,
383
+ .theme-impulse:is(.dark *) {
384
+ --background: rgba(152, 16, 250, 0.1);
385
+ --foreground: #9810FA;
386
+ --card: rgba(152, 16, 250, 0.1);
387
+ --card-foreground: #9810FA;
388
+ --popover: rgba(152, 16, 250, 0.1);
389
+ --popover-foreground: #9810FA;
390
+ --muted: rgba(152, 16, 250, 0.2);
391
+ --muted-foreground: #E29AFF;
392
+ --accent: rgba(152, 16, 250, 0.3);
393
+ --accent-foreground: #F7E0FF;
394
+ --primary: #9810FA;
395
+ --primary-foreground: #FFFFFF;
396
+ --secondary: rgba(152, 16, 250, 0.1);
397
+ --secondary-foreground: #ffffff;
398
+ --border: #9810FA;
399
+ --input: #B844FF;
400
+ --ring: #B844FF;
401
+ }
402
+
403
+ .dark .theme-positive,
404
+ .theme-positive:is(.dark *) {
405
+ --background: rgba(11, 163, 112, 0.1);
406
+ --foreground: #0BA370;
407
+ --card: rgba(11, 163, 112, 0.1);
408
+ --card-foreground: #0BA370;
409
+ --popover: rgba(11, 163, 112, 0.1);
410
+ --popover-foreground: #0BA370;
411
+ --muted: rgba(11, 163, 112, 0.2);
412
+ --muted-foreground: #80E8BC;
413
+ --accent: rgba(11, 163, 112, 0.3);
414
+ --accent-foreground: #E0FAF0;
415
+ --primary: #0BA370;
416
+ --primary-foreground: #FFFFFF;
417
+ --secondary: rgba(11, 163, 112, 0.1);
418
+ --secondary-foreground: #ffffff;
419
+ --border: #0BA370;
420
+ --input: #1EC485;
421
+ --ring: #1EC485;
422
+ }
423
+
424
+ .dark .theme-warning,
425
+ .theme-warning:is(.dark *) {
426
+ --background: rgba(245, 168, 0, 0.1);
427
+ --foreground: #F5A800;
428
+ --card: rgba(245, 168, 0, 0.1);
429
+ --card-foreground: #F5A800;
430
+ --popover: rgba(245, 168, 0, 0.1);
431
+ --popover-foreground: #F5A800;
432
+ --muted: rgba(245, 168, 0, 0.2);
433
+ --muted-foreground: #FEDD80;
434
+ --accent: rgba(245, 168, 0, 0.3);
435
+ --accent-foreground: #FFF5D9;
436
+ --primary: #F5A800;
437
+ --primary-foreground: #FFFFFF;
438
+ --secondary: rgba(245, 168, 0, 0.1);
439
+ --secondary-foreground: #ffffff;
440
+ --border: #F5A800;
441
+ --input: #FDC028;
442
+ --ring: #FDC028;
443
+ }
444
+
445
+ .dark .theme-critical,
446
+ .theme-critical:is(.dark *) {
447
+ --background: rgba(212, 43, 43, 0.1);
448
+ --foreground: #D42B2B;
449
+ --card: rgba(212, 43, 43, 0.1);
450
+ --card-foreground: #D42B2B;
451
+ --popover: rgba(212, 43, 43, 0.1);
452
+ --popover-foreground: #D42B2B;
453
+ --muted: rgba(212, 43, 43, 0.2);
454
+ --muted-foreground: #FFB0B0;
455
+ --accent: rgba(212, 43, 43, 0.3);
456
+ --accent-foreground: #FFE8E8;
457
+ --primary: #D42B2B;
458
+ --primary-foreground: #FFFFFF;
459
+ --secondary: rgba(212, 43, 43, 0.1);
460
+ --secondary-foreground: #ffffff;
461
+ --border: #D42B2B;
462
+ --input: #ED5555;
463
+ --ring: #ED5555;
464
+ }
465
+
466
+ /* --- Base layer --- */
467
+ *, *::before, *::after {
468
+ border-color: var(--border);
469
+ }
470
+
471
+ body {
472
+ background-color: var(--background);
473
+ color: var(--foreground);
474
+ }
475
+
476
+ /* --- Animations --- */
477
+ @keyframes like-pop {
478
+ 0% { transform: scale(1); }
479
+ 40% { transform: scale(1.25); }
480
+ 100% { transform: scale(1); }
481
+ }
482
+
483
+ @keyframes like-burst {
484
+ 0% {
485
+ opacity: 1;
486
+ transform: translateY(0) scaleY(0);
487
+ }
488
+ 30% {
489
+ opacity: 1;
490
+ transform: translateY(-10px) scaleY(1);
491
+ }
492
+ 100% {
493
+ opacity: 0;
494
+ transform: translateY(-18px) scaleY(0.4);
495
+ }
496
+ }
@@ -0,0 +1,10 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { Accordion as Accordion$1 } from 'radix-ui';
4
+
5
+ declare function Accordion({ ...props }: React.ComponentProps<typeof Accordion$1.Root>): react_jsx_runtime.JSX.Element;
6
+ declare function AccordionItem({ className, ...props }: React.ComponentProps<typeof Accordion$1.Item>): react_jsx_runtime.JSX.Element;
7
+ declare function AccordionTrigger({ className, children, ...props }: React.ComponentProps<typeof Accordion$1.Trigger>): react_jsx_runtime.JSX.Element;
8
+ declare function AccordionContent({ className, children, ...props }: React.ComponentProps<typeof Accordion$1.Content>): react_jsx_runtime.JSX.Element;
9
+
10
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger };
@@ -0,0 +1,5 @@
1
+ export { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from '../chunk-UEJLA7Q6.js';
2
+ import '../chunk-TYCPXAXF.js';
3
+ import '../chunk-YINJ5YZ5.js';
4
+ //# sourceMappingURL=accordion.js.map
5
+ //# sourceMappingURL=accordion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"accordion.js"}
@@ -0,0 +1,30 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+
3
+ interface AudioPlayerProps {
4
+ /** URL do audio (mp3, ogg, m3u8) */
5
+ src: string;
6
+ /** Nome da track/aula */
7
+ title: string;
8
+ /** Subtitulo / nome do curso */
9
+ subtitle?: string;
10
+ /** URL da imagem de capa (variante card) */
11
+ coverArt?: string;
12
+ /** Alt text da imagem de capa */
13
+ coverArtAlt?: string;
14
+ /** Variante de layout */
15
+ variant?: "default" | "card";
16
+ /** Icones, textos e sliders em primary-foreground — usar com .theme-* */
17
+ filled?: boolean;
18
+ /** Iniciar automaticamente */
19
+ autoPlay?: boolean;
20
+ /** Iniciar mutado */
21
+ muted?: boolean;
22
+ /** Repetir ao terminar */
23
+ loop?: boolean;
24
+ /** Exibir controle de velocidade (default: true — EdTech) */
25
+ showSpeed?: boolean;
26
+ className?: string;
27
+ }
28
+ declare function AudioPlayer({ src, title, subtitle, coverArt, coverArtAlt, variant, filled, autoPlay, muted, loop, showSpeed, className, }: AudioPlayerProps): react_jsx_runtime.JSX.Element;
29
+
30
+ export { AudioPlayer, type AudioPlayerProps };
@@ -0,0 +1,7 @@
1
+ export { AudioPlayer } from '../chunk-VECLN5AT.js';
2
+ import '../chunk-6LML23MS.js';
3
+ import '../chunk-OT2HCBR2.js';
4
+ import '../chunk-TYCPXAXF.js';
5
+ import '../chunk-YINJ5YZ5.js';
6
+ //# sourceMappingURL=audio-player.js.map
7
+ //# sourceMappingURL=audio-player.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"audio-player.js"}
@@ -0,0 +1,16 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as React from 'react';
3
+ import { Avatar as Avatar$1 } from 'radix-ui';
4
+
5
+ declare function Avatar({ className, size, theme, ...props }: React.ComponentProps<typeof Avatar$1.Root> & {
6
+ size?: "default" | "sm" | "lg";
7
+ /** Apply a color theme (.theme-*) — colors the fallback bg/text via primary tokens */
8
+ theme?: string;
9
+ }): react_jsx_runtime.JSX.Element;
10
+ declare function AvatarImage({ className, ...props }: React.ComponentProps<typeof Avatar$1.Image>): react_jsx_runtime.JSX.Element;
11
+ declare function AvatarFallback({ className, ...props }: React.ComponentProps<typeof Avatar$1.Fallback>): react_jsx_runtime.JSX.Element;
12
+ declare function AvatarBadge({ className, ...props }: React.ComponentProps<"span">): react_jsx_runtime.JSX.Element;
13
+ declare function AvatarGroup({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
14
+ declare function AvatarGroupCount({ className, ...props }: React.ComponentProps<"div">): react_jsx_runtime.JSX.Element;
15
+
16
+ export { Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage };
@@ -0,0 +1,5 @@
1
+ export { Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage } from '../chunk-MSLQRGSP.js';
2
+ import '../chunk-TYCPXAXF.js';
3
+ import '../chunk-YINJ5YZ5.js';
4
+ //# sourceMappingURL=avatar.js.map
5
+ //# sourceMappingURL=avatar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"avatar.js"}