svelte-comp 1.3.3 → 1.3.6

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 (138) hide show
  1. package/LICENSE.md +21 -21
  2. package/README.md +101 -100
  3. package/dist/App.svelte +507 -507
  4. package/dist/Container.svelte +59 -59
  5. package/dist/app.css +234 -235
  6. package/dist/app.d.ts +10 -0
  7. package/dist/lib/Accordion.svelte +155 -155
  8. package/dist/lib/Badge.svelte +44 -44
  9. package/dist/lib/Button.svelte +185 -170
  10. package/dist/lib/Calendar.svelte +384 -384
  11. package/dist/lib/Card.svelte +103 -103
  12. package/dist/lib/Carousel.svelte +293 -293
  13. package/dist/lib/Carousel.svelte.d.ts +1 -1
  14. package/dist/lib/CheckBox.svelte +210 -210
  15. package/dist/lib/CodeView.svelte +308 -307
  16. package/dist/lib/ColorPicker.svelte +159 -159
  17. package/dist/lib/ContextMenu.svelte +328 -322
  18. package/dist/lib/DatePicker.svelte +246 -246
  19. package/dist/lib/Dialog.svelte +233 -233
  20. package/dist/lib/Field.svelte +299 -299
  21. package/dist/lib/FilePicker.svelte +295 -240
  22. package/dist/lib/FilePicker.svelte.d.ts +6 -1
  23. package/dist/lib/Form.svelte +438 -438
  24. package/dist/lib/Hamburger.svelte +217 -217
  25. package/dist/lib/InstallPWA.svelte +94 -94
  26. package/dist/lib/Menu.svelte +623 -623
  27. package/dist/lib/NoticeBase.svelte +140 -140
  28. package/dist/lib/PaginatedCard.svelte +73 -73
  29. package/dist/lib/Pagination.svelte +119 -119
  30. package/dist/lib/PrimaryColorSelect.svelte +111 -111
  31. package/dist/lib/ProgressBar.svelte +141 -141
  32. package/dist/lib/ProgressCircle.svelte +190 -190
  33. package/dist/lib/Radio.svelte +189 -189
  34. package/dist/lib/SearchInput.svelte +104 -104
  35. package/dist/lib/Select.svelte +524 -524
  36. package/dist/lib/Slider.svelte +253 -253
  37. package/dist/lib/Splitter.svelte +159 -150
  38. package/dist/lib/Switch.svelte +168 -167
  39. package/dist/lib/Table.svelte +299 -299
  40. package/dist/lib/Tabs.svelte +213 -213
  41. package/dist/lib/ThemeToggle.svelte +128 -127
  42. package/dist/lib/TimePicker.svelte +312 -312
  43. package/dist/lib/TimePickerNew.svelte +634 -0
  44. package/dist/lib/TimePickerNew.svelte.d.ts +49 -0
  45. package/dist/lib/Toast.svelte +123 -123
  46. package/dist/lib/Tooltip.svelte +110 -110
  47. package/dist/lib/Topbar.svelte +107 -107
  48. package/dist/lib/__tests__/Accordion.test.d.ts +1 -0
  49. package/dist/lib/__tests__/Accordion.test.js +171 -0
  50. package/dist/lib/__tests__/Badge.test.d.ts +1 -0
  51. package/dist/lib/__tests__/Badge.test.js +41 -0
  52. package/dist/lib/__tests__/Button.test.d.ts +1 -0
  53. package/dist/lib/__tests__/Button.test.js +269 -0
  54. package/dist/lib/__tests__/Calendar.test.d.ts +1 -0
  55. package/dist/lib/__tests__/Calendar.test.js +171 -0
  56. package/dist/lib/__tests__/Card.test.d.ts +1 -0
  57. package/dist/lib/__tests__/Card.test.js +148 -0
  58. package/dist/lib/__tests__/Carousel.test.d.ts +1 -0
  59. package/dist/lib/__tests__/Carousel.test.js +439 -0
  60. package/dist/lib/__tests__/CheckBox.test.d.ts +1 -0
  61. package/dist/lib/__tests__/CheckBox.test.js +152 -0
  62. package/dist/lib/__tests__/CodeView.test.d.ts +1 -0
  63. package/dist/lib/__tests__/CodeView.test.js +157 -0
  64. package/dist/lib/__tests__/ColorPicker.test.d.ts +1 -0
  65. package/dist/lib/__tests__/ColorPicker.test.js +93 -0
  66. package/dist/lib/__tests__/ContextMenu.test.d.ts +1 -0
  67. package/dist/lib/__tests__/ContextMenu.test.js +67 -0
  68. package/dist/lib/__tests__/DatePicker.test.d.ts +1 -0
  69. package/dist/lib/__tests__/DatePicker.test.js +108 -0
  70. package/dist/lib/__tests__/Dialog.test.d.ts +1 -0
  71. package/dist/lib/__tests__/Dialog.test.js +183 -0
  72. package/dist/lib/__tests__/Field.test.d.ts +1 -0
  73. package/dist/lib/__tests__/Field.test.js +190 -0
  74. package/dist/lib/__tests__/FilePicker.test.d.ts +1 -0
  75. package/dist/lib/__tests__/FilePicker.test.js +179 -0
  76. package/dist/lib/__tests__/Form.integration.test.d.ts +1 -0
  77. package/dist/lib/__tests__/Form.integration.test.js +158 -0
  78. package/dist/lib/__tests__/Form.test.d.ts +1 -0
  79. package/dist/lib/__tests__/Form.test.js +463 -0
  80. package/dist/lib/__tests__/Hamburger.test.d.ts +1 -0
  81. package/dist/lib/__tests__/Hamburger.test.js +161 -0
  82. package/dist/lib/__tests__/InstallPWA.test.d.ts +1 -0
  83. package/dist/lib/__tests__/InstallPWA.test.js +15 -0
  84. package/dist/lib/__tests__/Menu.test.d.ts +1 -0
  85. package/dist/lib/__tests__/Menu.test.js +285 -0
  86. package/dist/lib/__tests__/NoticeBase.test.d.ts +1 -0
  87. package/dist/lib/__tests__/NoticeBase.test.js +60 -0
  88. package/dist/lib/__tests__/PaginatedCard.test.d.ts +1 -0
  89. package/dist/lib/__tests__/PaginatedCard.test.js +89 -0
  90. package/dist/lib/__tests__/Pagination.test.d.ts +1 -0
  91. package/dist/lib/__tests__/Pagination.test.js +168 -0
  92. package/dist/lib/__tests__/PrimaryColorSelect.test.d.ts +1 -0
  93. package/dist/lib/__tests__/PrimaryColorSelect.test.js +92 -0
  94. package/dist/lib/__tests__/ProgressBar.test.d.ts +1 -0
  95. package/dist/lib/__tests__/ProgressBar.test.js +69 -0
  96. package/dist/lib/__tests__/ProgressCircle.test.d.ts +1 -0
  97. package/dist/lib/__tests__/ProgressCircle.test.js +71 -0
  98. package/dist/lib/__tests__/Radio.test.d.ts +1 -0
  99. package/dist/lib/__tests__/Radio.test.js +127 -0
  100. package/dist/lib/__tests__/SearchInput.test.d.ts +1 -0
  101. package/dist/lib/__tests__/SearchInput.test.js +80 -0
  102. package/dist/lib/__tests__/Select.test.d.ts +1 -0
  103. package/dist/lib/__tests__/Select.test.js +408 -0
  104. package/dist/lib/__tests__/Slider.test.d.ts +1 -0
  105. package/dist/lib/__tests__/Slider.test.js +213 -0
  106. package/dist/lib/__tests__/Splitter.test.d.ts +1 -0
  107. package/dist/lib/__tests__/Splitter.test.js +87 -0
  108. package/dist/lib/__tests__/Switch.test.d.ts +1 -0
  109. package/dist/lib/__tests__/Switch.test.js +97 -0
  110. package/dist/lib/__tests__/Table.test.d.ts +1 -0
  111. package/dist/lib/__tests__/Table.test.js +349 -0
  112. package/dist/lib/__tests__/Tabs.test.d.ts +1 -0
  113. package/dist/lib/__tests__/Tabs.test.js +262 -0
  114. package/dist/lib/__tests__/ThemeToggle.test.d.ts +1 -0
  115. package/dist/lib/__tests__/ThemeToggle.test.js +84 -0
  116. package/dist/lib/__tests__/TimePicker.test.d.ts +1 -0
  117. package/dist/lib/__tests__/TimePicker.test.js +146 -0
  118. package/dist/lib/__tests__/TimePickerNew.test.d.ts +1 -0
  119. package/dist/lib/__tests__/TimePickerNew.test.js +322 -0
  120. package/dist/lib/__tests__/Toast.test.d.ts +1 -0
  121. package/dist/lib/__tests__/Toast.test.js +135 -0
  122. package/dist/lib/__tests__/Tooltip.test.d.ts +1 -0
  123. package/dist/lib/__tests__/Tooltip.test.js +171 -0
  124. package/dist/lib/__tests__/Topbar.test.d.ts +1 -0
  125. package/dist/lib/__tests__/Topbar.test.js +25 -0
  126. package/dist/lib/__tests__/setupLangContext.d.ts +1 -0
  127. package/dist/lib/__tests__/setupLangContext.js +65 -0
  128. package/dist/lib/__tests__/storage.test.d.ts +1 -0
  129. package/dist/lib/__tests__/storage.test.js +124 -0
  130. package/dist/lib/__tests__/utils.test.d.ts +1 -0
  131. package/dist/lib/__tests__/utils.test.js +11 -0
  132. package/dist/lib/index.d.ts +1 -0
  133. package/dist/lib/index.js +1 -0
  134. package/dist/lib/lang.d.ts +4 -0
  135. package/dist/lib/lang.js +4 -0
  136. package/dist/styles.css +234 -232
  137. package/dist/utils/index.js +15 -4
  138. package/package.json +52 -52
@@ -1,60 +1,60 @@
1
- <!-- src/Container.svelte -->
2
- <script lang="ts">
3
- import type { Snippet } from "svelte";
4
- import { cx } from "./utils";
5
-
6
- type Props = {
7
- header?: Snippet;
8
- footer?: Snippet;
9
- left?: Snippet;
10
- right?: Snippet;
11
- children?: Snippet;
12
- class?: string;
13
- };
14
-
15
- let {
16
- header,
17
- footer,
18
- left,
19
- right,
20
- children,
21
- class: externalClass = "",
22
- }: Props = $props();
23
-
24
- const baseClass =
25
- "min-h-dvh w-full bg-[var(--color-bg-page,oklch(98%_0_0))] text-[var(--color-text-default,oklch(15%_0_0))] transition-colors duration-[var(--transition-normal,300ms)]";
26
-
27
- const rootClass = $derived(cx(baseClass, externalClass));
28
- </script>
29
-
30
- <div class={rootClass}>
31
- <div class="grid min-h-dvh grid-rows-[auto_1fr_auto]">
32
- {#if header}
33
- <header class="p-[var(--spacing-md,1rem)]">
34
- {@render header?.()}
35
- </header>
36
- {/if}
37
-
38
- {#if left}
39
- <aside class="hidden lg:block p-[var(--spacing-md,1rem)]">
40
- {@render left?.()}
41
- </aside>
42
- {/if}
43
-
44
- <main class="p-[var(--spacing-md,1rem)]">
45
- {@render children?.()}
46
- </main>
47
-
48
- {#if right}
49
- <aside class="hidden lg:block p-[var(--spacing-md,1rem)]">
50
- {@render right?.()}
51
- </aside>
52
- {/if}
53
-
54
- {#if footer}
55
- <footer class="p-[var(--spacing-md,1rem)]">
56
- {@render footer?.()}
57
- </footer>
58
- {/if}
59
- </div>
1
+ <!-- src/Container.svelte -->
2
+ <script lang="ts">
3
+ import type { Snippet } from "svelte";
4
+ import { cx } from "./utils";
5
+
6
+ type Props = {
7
+ header?: Snippet;
8
+ footer?: Snippet;
9
+ left?: Snippet;
10
+ right?: Snippet;
11
+ children?: Snippet;
12
+ class?: string;
13
+ };
14
+
15
+ let {
16
+ header,
17
+ footer,
18
+ left,
19
+ right,
20
+ children,
21
+ class: externalClass = "",
22
+ }: Props = $props();
23
+
24
+ const baseClass =
25
+ "min-h-dvh w-full bg-[var(--color-bg-page,oklch(98%_0_0))] text-[var(--color-text-default,oklch(15%_0_0))] transition-colors duration-[var(--transition-normal,300ms)]";
26
+
27
+ const rootClass = $derived(cx(baseClass, externalClass));
28
+ </script>
29
+
30
+ <div class={rootClass}>
31
+ <div class="grid min-h-dvh grid-rows-[auto_1fr_auto]">
32
+ {#if header}
33
+ <header class="p-[var(--spacing-md,1rem)]">
34
+ {@render header?.()}
35
+ </header>
36
+ {/if}
37
+
38
+ {#if left}
39
+ <aside class="hidden lg:block p-[var(--spacing-md,1rem)]">
40
+ {@render left?.()}
41
+ </aside>
42
+ {/if}
43
+
44
+ <main class="p-[var(--spacing-md,1rem)]">
45
+ {@render children?.()}
46
+ </main>
47
+
48
+ {#if right}
49
+ <aside class="hidden lg:block p-[var(--spacing-md,1rem)]">
50
+ {@render right?.()}
51
+ </aside>
52
+ {/if}
53
+
54
+ {#if footer}
55
+ <footer class="p-[var(--spacing-md,1rem)]">
56
+ {@render footer?.()}
57
+ </footer>
58
+ {/if}
59
+ </div>
60
60
  </div>
package/dist/app.css CHANGED
@@ -1,235 +1,234 @@
1
- /* src/app.css */
2
-
3
- @import "tailwindcss";
4
-
5
- /* src/styles.css */
6
- @import "tailwindcss";
7
- @custom-variant dark (&:where(.dark, .dark *));
8
-
9
- @theme {
10
- /* COLORS TEXT */
11
- --color-text-default: oklch(15% 0 0deg);
12
- --color-text-muted: oklch(60% 0 0deg);
13
- --color-text-danger: oklch(92% 0.05 25deg);
14
- --color-text-success: oklch(92% 0.05 150deg);
15
- --color-text-warning: oklch(95% 0.05 90deg);
16
- --color-text-link: oklch(35% 0.3 250deg);
17
- --color-text-red: oklch(50% 0.25 30deg);
18
-
19
- /* COLORS BG */
20
- --color-bg-page: oklch(98% 0 0deg);
21
- --color-bg-surface: oklch(100% 0 0deg);
22
- --color-bg-primary: oklch(62.3% 0.214 259.8deg);
23
- --color-primary: var(--color-bg-primary);
24
- --color-bg-secondary: oklch(80% 0 0deg);
25
- --color-bg-danger: oklch(60% 0.25 30deg);
26
- --color-bg-success: oklch(55% 0.2 150deg);
27
- --color-bg-warning: oklch(75% 0.2 70deg);
28
- --color-bg-muted: oklch(90% 0 0deg);
29
-
30
- /* INTERACTION STATES */
31
- --color-bg-hover: oklch(94% 0 0deg);
32
- --color-bg-active: oklch(88% 0 0deg);
33
-
34
- /* BORDER */
35
- --border-color-default: oklch(85% 0 0deg);
36
- --border-color-primary: oklch(50% 0.19 259.8deg);
37
- --border-color-strong: oklch(75% 0 0deg);
38
- --border-color-focus: oklch(68.7% 0.14 237.5deg);
39
-
40
- /* SHADOW */
41
- --shadow-color: oklch(0% 0 0deg / 0.15);
42
-
43
- /* SPACING */
44
- --spacing-xs: 0.25rem;
45
- --spacing-sm: 0.5rem;
46
- --spacing-md: 1rem;
47
- --spacing-lg: 1.5rem;
48
- --spacing-xl: 2rem;
49
-
50
- /* TYPOGRAPHY */
51
- --font-sans: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;
52
- --font-mono: "Fira Code", "Consolas", "Monaco", monospace;
53
-
54
- /* FONT WEIGHTS */
55
- --font-weight-normal: 400;
56
- --font-weight-medium: 500;
57
- --font-weight-semibold: 600;
58
- --font-weight-bold: 700;
59
-
60
- /* TEXT SIZES */
61
- --text-xs: 0.75rem;
62
- --text-sm: 0.875rem;
63
- --text-md: 1rem;
64
- --text-lg: 1.125rem;
65
- --text-xl: 1.25rem;
66
-
67
- /* LINE HEIGHT & LETTER SPACING */
68
- --line-height-tight: 1.1;
69
- --line-height-normal: 1.4;
70
- --line-height-relaxed: 1.6;
71
- --letter-spacing-tight: -0.01em;
72
- --letter-spacing-normal: 0;
73
- --letter-spacing-wide: 0.02em;
74
-
75
- /* RADIUS */
76
- --radius-sm: 0.125rem;
77
- --radius-md: 0.375rem;
78
- --radius-lg: 0.5rem;
79
- --radius-xl: 0.75rem;
80
- --radius-2xl: 1rem;
81
- --radius-full: 9999px;
82
-
83
- /* TRANSITIONS */
84
- --transition-fast: 150ms;
85
- --transition-normal: 300ms;
86
- --transition-slow: 500ms;
87
- --timing-default: ease-in-out;
88
-
89
- /* OPACITY */
90
- --opacity-disabled: 0.5;
91
- --opacity-hover: 0.9;
92
- --opacity-overlay: 0.7;
93
-
94
- /* Z-INDEX */
95
- --z-base: 0;
96
- --z-dropdown: 10;
97
- --z-overlay: 50;
98
- --z-modal: 100;
99
- --z-toast: 200;
100
- }
101
-
102
- .dark {
103
- /* COLORS TEXT */
104
- --color-text-default: oklch(98% 0 0deg);
105
- --color-text-muted: oklch(60% 0 0deg);
106
- --color-text-danger: oklch(98% 0.02 25deg);
107
- --color-text-success: oklch(92% 0.05 150deg);
108
- --color-text-warning: oklch(95% 0.05 90deg);
109
- --color-text-link: oklch(65% 0.3 250deg);
110
- --color-text-red: oklch(50% 0.25 30deg);
111
-
112
- /* COLORS BG */
113
- --color-bg-page: oklch(15% 0 0deg);
114
- --color-bg-surface: oklch(26% 0 0deg);
115
- --color-bg-primary: oklch(42% 0.19 259.8deg);
116
- --color-primary: var(--color-bg-primary);
117
- --color-bg-secondary: oklch(45% 0 0deg);
118
- --color-bg-danger: oklch(50% 0.25 30deg);
119
- --color-bg-success: oklch(45% 0.2 150deg);
120
- --color-bg-warning: oklch(65% 0.2 70deg);
121
- --color-bg-muted: oklch(30% 0 0deg);
122
-
123
- /* INTERACTION STATES */
124
- --color-bg-hover: oklch(25% 0 0deg);
125
- --color-bg-active: oklch(18% 0 0deg);
126
-
127
- /* BORDER */
128
- --border-color-default: oklch(35% 0 0deg);
129
- --border-color-primary: oklch(50% 0.17 259.8deg);
130
- --border-color-strong: oklch(45% 0 0deg);
131
- --border-color-focus: oklch(68.7% 0.14 237.5deg);
132
-
133
- /* SHADOW */
134
- --shadow-color: oklch(0% 0 0deg / 0.6);
135
-
136
- /* OPACITY */
137
- --opacity-disabled: 0.4;
138
- --opacity-hover: 0.85;
139
- --opacity-overlay: 0.6;
140
- }
141
-
142
- /* SCROLLBARS */
143
- ::-webkit-scrollbar {
144
- width: 4px;
145
- height: 4px;
146
- }
147
-
148
- ::-webkit-scrollbar-track {
149
- background: transparent;
150
- }
151
-
152
- ::-webkit-scrollbar-thumb {
153
- background: var(--color-bg-secondary);
154
- border-radius: 3px;
155
- }
156
-
157
- ::-webkit-scrollbar-thumb:hover {
158
- background: oklch(from var(--color-bg-secondary) l c h / 0.8);
159
- }
160
-
161
- @supports (scrollbar-width: thin) {
162
- * {
163
- scrollbar-width: thin;
164
- scrollbar-color: var(--color-bg-secondary) transparent;
165
- }
166
-
167
- .dark * {
168
- scrollbar-color: oklch(from var(--color-bg-secondary) l c h / 0.7)
169
- transparent;
170
- }
171
- }
172
-
173
- .dark ::-webkit-scrollbar-thumb {
174
- background: oklch(from var(--color-bg-secondary) l c h / 0.7);
175
- }
176
-
177
- /* ----------------------------- */
178
- /* 🎨 Primary color palettes */
179
- /* ----------------------------- */
180
-
181
- [data-primary="default"] {
182
- --color-primary: oklch(62.3% 0.214 259.8deg);
183
- --color-bg-primary: var(--color-primary);
184
- --border-color-primary: var(--color-primary);
185
- --border-color-focus: var(--color-primary);
186
- }
187
-
188
- [data-primary="cyan"] {
189
- --color-primary: oklch(86.5% 0.127 207.078);
190
- --color-bg-primary: var(--color-primary);
191
- --border-color-primary: var(--color-primary);
192
- --border-color-focus: var(--color-primary);
193
- }
194
-
195
- [data-primary="red"] {
196
- --color-primary: oklch(58% 0.24 30deg);
197
- --color-bg-primary: var(--color-primary);
198
- --border-color-primary: var(--color-primary);
199
- --border-color-focus: var(--color-primary);
200
- }
201
-
202
- [data-primary="green"] {
203
- --color-primary: oklch(65% 0.22 140deg);
204
- --color-bg-primary: var(--color-primary);
205
- --border-color-primary: var(--color-primary);
206
- --border-color-focus: var(--color-primary);
207
- }
208
-
209
- [data-primary="yellow"] {
210
- --color-primary: oklch(75% 0.18 90deg);
211
- --color-bg-primary: var(--color-primary);
212
- --border-color-primary: var(--color-primary);
213
- --border-color-focus: var(--color-primary);
214
- }
215
-
216
- [data-primary="pink"] {
217
- --color-primary: oklch(70% 0.25 350deg);
218
- --color-bg-primary: var(--color-primary);
219
- --border-color-primary: var(--color-primary);
220
- --border-color-focus: var(--color-primary);
221
- }
222
-
223
- [data-primary="orange"] {
224
- --color-primary: oklch(72% 0.22 60deg);
225
- --color-bg-primary: var(--color-primary);
226
- --border-color-primary: var(--color-primary);
227
- --border-color-focus: var(--color-primary);
228
- }
229
-
230
- [data-primary="purple"] {
231
- --color-primary: oklch(55% 0.22 290deg);
232
- --color-bg-primary: var(--color-primary);
233
- --border-color-primary: var(--color-primary);
234
- --border-color-focus: var(--color-primary);
235
- }
1
+ /* src/app.css */
2
+ @import "tailwindcss";
3
+
4
+ @custom-variant dark (&:where(.dark, .dark *));
5
+
6
+ @theme {
7
+ /* COLORS TEXT */
8
+ --color-text-default: oklch(15% 0 0deg);
9
+ --color-text-muted: oklch(60% 0 0deg);
10
+ --color-text-danger: oklch(92% 0.05 25deg);
11
+ --color-text-success: oklch(92% 0.05 150deg);
12
+ --color-text-warning: oklch(95% 0.05 90deg);
13
+ --color-text-link: oklch(35% 0.3 250deg);
14
+ --color-text-red: oklch(50% 0.25 30deg);
15
+ --color-text-inverse: oklch(100% 0 0deg);
16
+
17
+ /* COLORS BG */
18
+ --color-bg-page: oklch(98% 0 0deg);
19
+ --color-bg-surface: oklch(100% 0 0deg);
20
+ --color-bg-primary: oklch(62.3% 0.214 259.8deg);
21
+ --color-primary: var(--color-bg-primary);
22
+ --color-bg-secondary: oklch(80% 0 0deg);
23
+ --color-bg-danger: oklch(60% 0.25 30deg);
24
+ --color-bg-success: oklch(55% 0.2 150deg);
25
+ --color-bg-warning: oklch(75% 0.2 70deg);
26
+ --color-bg-muted: oklch(90% 0 0deg);
27
+
28
+ /* INTERACTION STATES */
29
+ --color-bg-hover: oklch(94% 0 0deg);
30
+ --color-bg-active: oklch(88% 0 0deg);
31
+
32
+ /* BORDER */
33
+ --border-color-default: oklch(85% 0 0deg);
34
+ --border-color-primary: oklch(50% 0.19 259.8deg);
35
+ --border-color-strong: oklch(75% 0 0deg);
36
+ --border-color-focus: oklch(68.7% 0.14 237.5deg);
37
+
38
+ /* SHADOW */
39
+ --shadow-color: oklch(0% 0 0deg / 0.15);
40
+
41
+ /* SPACING */
42
+ --spacing-xs: 0.25rem;
43
+ --spacing-sm: 0.5rem;
44
+ --spacing-md: 1rem;
45
+ --spacing-lg: 1.5rem;
46
+ --spacing-xl: 2rem;
47
+
48
+ /* TYPOGRAPHY */
49
+ --font-sans: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;
50
+ --font-mono: "Fira Code", "Consolas", "Monaco", monospace;
51
+
52
+ /* FONT WEIGHTS */
53
+ --font-weight-normal: 400;
54
+ --font-weight-medium: 500;
55
+ --font-weight-semibold: 600;
56
+ --font-weight-bold: 700;
57
+
58
+ /* TEXT SIZES */
59
+ --text-xs: 0.75rem;
60
+ --text-sm: 0.875rem;
61
+ --text-md: 1rem;
62
+ --text-lg: 1.125rem;
63
+ --text-xl: 1.25rem;
64
+
65
+ /* LINE HEIGHT & LETTER SPACING */
66
+ --line-height-tight: 1.1;
67
+ --line-height-normal: 1.4;
68
+ --line-height-relaxed: 1.6;
69
+ --letter-spacing-tight: -0.01em;
70
+ --letter-spacing-normal: 0;
71
+ --letter-spacing-wide: 0.02em;
72
+
73
+ /* RADIUS */
74
+ --radius-sm: 0.125rem;
75
+ --radius-md: 0.375rem;
76
+ --radius-lg: 0.5rem;
77
+ --radius-xl: 0.75rem;
78
+ --radius-2xl: 1rem;
79
+ --radius-full: 9999px;
80
+
81
+ /* TRANSITIONS */
82
+ --transition-fast: 150ms;
83
+ --transition-normal: 300ms;
84
+ --transition-slow: 500ms;
85
+ --timing-default: ease-in-out;
86
+
87
+ /* OPACITY */
88
+ --opacity-disabled: 0.5;
89
+ --opacity-hover: 0.9;
90
+ --opacity-overlay: 0.7;
91
+
92
+ /* Z-INDEX */
93
+ --z-base: 0;
94
+ --z-dropdown: 10;
95
+ --z-overlay: 50;
96
+ --z-modal: 100;
97
+ --z-toast: 200;
98
+ }
99
+
100
+ .dark {
101
+ /* COLORS — TEXT */
102
+ --color-text-default: oklch(98% 0 0deg);
103
+ --color-text-muted: oklch(60% 0 0deg);
104
+ --color-text-danger: oklch(98% 0.02 25deg);
105
+ --color-text-success: oklch(92% 0.05 150deg);
106
+ --color-text-warning: oklch(95% 0.05 90deg);
107
+ --color-text-link: oklch(65% 0.3 250deg);
108
+ --color-text-red: oklch(50% 0.25 30deg);
109
+ --color-text-inverse: oklch(100% 0 0deg);
110
+
111
+ /* COLORS — BG */
112
+ --color-bg-page: oklch(15% 0 0deg);
113
+ --color-bg-surface: oklch(26% 0 0deg);
114
+ --color-bg-primary: oklch(42% 0.19 259.8deg);
115
+ --color-primary: var(--color-bg-primary);
116
+ --color-bg-secondary: oklch(45% 0 0deg);
117
+ --color-bg-danger: oklch(50% 0.25 30deg);
118
+ --color-bg-success: oklch(45% 0.2 150deg);
119
+ --color-bg-warning: oklch(65% 0.2 70deg);
120
+ --color-bg-muted: oklch(30% 0 0deg);
121
+
122
+ /* INTERACTION STATES */
123
+ --color-bg-hover: oklch(25% 0 0deg);
124
+ --color-bg-active: oklch(18% 0 0deg);
125
+
126
+ /* BORDER */
127
+ --border-color-default: oklch(35% 0 0deg);
128
+ --border-color-primary: oklch(50% 0.17 259.8deg);
129
+ --border-color-strong: oklch(45% 0 0deg);
130
+ --border-color-focus: oklch(68.7% 0.14 237.5deg);
131
+
132
+ /* SHADOW */
133
+ --shadow-color: oklch(0% 0 0deg / 0.6);
134
+
135
+ /* OPACITY */
136
+ --opacity-disabled: 0.4;
137
+ --opacity-hover: 0.85;
138
+ --opacity-overlay: 0.6;
139
+ }
140
+
141
+ /* SCROLLBARS */
142
+ ::-webkit-scrollbar {
143
+ width: 4px;
144
+ height: 4px;
145
+ }
146
+
147
+ ::-webkit-scrollbar-track {
148
+ background: transparent;
149
+ }
150
+
151
+ ::-webkit-scrollbar-thumb {
152
+ background: var(--color-bg-secondary);
153
+ border-radius: 3px;
154
+ }
155
+
156
+ ::-webkit-scrollbar-thumb:hover {
157
+ background: oklch(from var(--color-bg-secondary) l c h / 0.8);
158
+ }
159
+
160
+ @supports (scrollbar-width: thin) {
161
+ * {
162
+ scrollbar-width: thin;
163
+ scrollbar-color: var(--color-bg-secondary) transparent;
164
+ }
165
+
166
+ .dark * {
167
+ scrollbar-color: oklch(from var(--color-bg-secondary) l c h / 0.7)
168
+ transparent;
169
+ }
170
+ }
171
+
172
+ .dark ::-webkit-scrollbar-thumb {
173
+ background: oklch(from var(--color-bg-secondary) l c h / 0.7);
174
+ }
175
+
176
+ /* ----------------------------- */
177
+ /* 🎨 Primary color palettes */
178
+ /* ----------------------------- */
179
+
180
+ [data-primary="default"] {
181
+ --color-primary: oklch(62.3% 0.214 259.8deg);
182
+ --color-bg-primary: var(--color-primary);
183
+ --border-color-primary: var(--color-primary);
184
+ --border-color-focus: var(--color-primary);
185
+ }
186
+
187
+ [data-primary="cyan"] {
188
+ --color-primary: oklch(86.5% 0.127 207.078);
189
+ --color-bg-primary: var(--color-primary);
190
+ --border-color-primary: var(--color-primary);
191
+ --border-color-focus: var(--color-primary);
192
+ }
193
+
194
+ [data-primary="red"] {
195
+ --color-primary: oklch(58% 0.24 30deg);
196
+ --color-bg-primary: var(--color-primary);
197
+ --border-color-primary: var(--color-primary);
198
+ --border-color-focus: var(--color-primary);
199
+ }
200
+
201
+ [data-primary="green"] {
202
+ --color-primary: oklch(65% 0.22 140deg);
203
+ --color-bg-primary: var(--color-primary);
204
+ --border-color-primary: var(--color-primary);
205
+ --border-color-focus: var(--color-primary);
206
+ }
207
+
208
+ [data-primary="yellow"] {
209
+ --color-primary: oklch(75% 0.18 90deg);
210
+ --color-bg-primary: var(--color-primary);
211
+ --border-color-primary: var(--color-primary);
212
+ --border-color-focus: var(--color-primary);
213
+ }
214
+
215
+ [data-primary="pink"] {
216
+ --color-primary: oklch(70% 0.25 350deg);
217
+ --color-bg-primary: var(--color-primary);
218
+ --border-color-primary: var(--color-primary);
219
+ --border-color-focus: var(--color-primary);
220
+ }
221
+
222
+ [data-primary="orange"] {
223
+ --color-primary: oklch(72% 0.22 60deg);
224
+ --color-bg-primary: var(--color-primary);
225
+ --border-color-primary: var(--color-primary);
226
+ --border-color-focus: var(--color-primary);
227
+ }
228
+
229
+ [data-primary="purple"] {
230
+ --color-primary: oklch(55% 0.22 290deg);
231
+ --color-bg-primary: var(--color-primary);
232
+ --border-color-primary: var(--color-primary);
233
+ --border-color-focus: var(--color-primary);
234
+ }
package/dist/app.d.ts ADDED
@@ -0,0 +1,10 @@
1
+ // src/app.d.ts
2
+ declare module "*.css" {
3
+ const content: string;
4
+ export default content;
5
+ }
6
+
7
+ declare module "prismjs/themes/*.css" {
8
+ const content: string;
9
+ export default content;
10
+ }