@e-burgos/tucu-ui 2.7.3 → 2.8.1

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 (58) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/README.md +17 -0
  3. package/base.css +225 -0
  4. package/components/inputs/input.mjs +43 -43
  5. package/components/inputs/select.mjs +1 -1
  6. package/components/loaders/loader.mjs +21 -21
  7. package/components/typography/index.mjs +30 -30
  8. package/index.css +1 -1
  9. package/index.js +1 -1
  10. package/macos/index.css +15 -0
  11. package/macos/sonoma/index.css +34 -0
  12. package/macos/sonoma/macos-auth.css +162 -0
  13. package/macos/sonoma/macos-backgrounds.css +314 -0
  14. package/macos/sonoma/macos-buttons.css +231 -0
  15. package/macos/sonoma/macos-cards.css +104 -0
  16. package/macos/sonoma/macos-content.css +157 -0
  17. package/macos/sonoma/macos-dialogs.css +122 -0
  18. package/macos/sonoma/macos-feedback.css +237 -0
  19. package/macos/sonoma/macos-fonts.css +7 -0
  20. package/macos/sonoma/macos-foundations.css +479 -0
  21. package/macos/sonoma/macos-inputs.css +1580 -0
  22. package/macos/sonoma/macos-layouts.css +223 -0
  23. package/macos/sonoma/macos-liquid-glass.css +279 -0
  24. package/macos/sonoma/macos-menus.css +184 -0
  25. package/macos/sonoma/macos-misc.css +635 -0
  26. package/macos/sonoma/macos-navigation.css +145 -0
  27. package/macos/sonoma/macos-selection.css +237 -0
  28. package/macos/sonoma/macos-sidebar.css +416 -0
  29. package/macos/sonoma/macos-tables.css +318 -0
  30. package/macos/sonoma/macos-toolbar.css +302 -0
  31. package/macos/sonoma/macos-typography.css +485 -0
  32. package/macos/sonoma/macos-window.css +273 -0
  33. package/macos/tahoe/index.css +34 -0
  34. package/macos/tahoe/macos-auth.css +162 -0
  35. package/macos/tahoe/macos-backgrounds.css +314 -0
  36. package/macos/tahoe/macos-buttons.css +286 -0
  37. package/macos/tahoe/macos-cards.css +125 -0
  38. package/macos/tahoe/macos-content.css +157 -0
  39. package/macos/tahoe/macos-dialogs.css +195 -0
  40. package/macos/tahoe/macos-feedback.css +273 -0
  41. package/macos/tahoe/macos-fonts.css +7 -0
  42. package/macos/tahoe/macos-foundations.css +516 -0
  43. package/macos/tahoe/macos-inputs.css +1656 -0
  44. package/macos/tahoe/macos-layouts.css +438 -0
  45. package/macos/tahoe/macos-liquid-glass.css +279 -0
  46. package/macos/tahoe/macos-menus.css +184 -0
  47. package/macos/tahoe/macos-misc.css +635 -0
  48. package/macos/tahoe/macos-navigation.css +191 -0
  49. package/macos/tahoe/macos-selection.css +237 -0
  50. package/macos/tahoe/macos-sidebar.css +420 -0
  51. package/macos/tahoe/macos-tables.css +320 -0
  52. package/macos/tahoe/macos-toolbar.css +304 -0
  53. package/macos/tahoe/macos-typography.css +485 -0
  54. package/macos/tahoe/macos-window.css +273 -0
  55. package/package.json +3 -2
  56. package/theme.css +812 -0
  57. package/third-party.css +39 -0
  58. package/utilities.css +105 -0
@@ -0,0 +1,416 @@
1
+ /* ============================================================
2
+ macOS Sonoma 14 — Sidebar, ContentPane, ScrollView, SplitView
3
+
4
+ Scoped to html.macos — no leakage to default theme.
5
+ References: Apple HIG > Sidebars > macOS Sonoma 14
6
+ Components: MacOSSidebar, MacOSSidebarSection, MacOSSidebarItem,
7
+ MacOSContentPane, MacOSScrollView, MacOSSplitView,
8
+ MacOSInspector
9
+ ============================================================ */
10
+
11
+ /* ── MacOSSidebar container ──────────────────────────────────── */
12
+
13
+ html.macos [data-tucu='sidebar'] {
14
+ width: var(--macos-sidebar-width);
15
+ min-width: var(--macos-sidebar-width);
16
+ max-width: var(--macos-sidebar-width);
17
+ height: 100%;
18
+ display: flex;
19
+ flex-direction: column;
20
+ flex-shrink: 0;
21
+ position: relative;
22
+
23
+ /* Liquid Glass regular material */
24
+ background-color: var(--macos-glass-regular-bg);
25
+ backdrop-filter: blur(var(--macos-glass-blur, 28px)) saturate(1.6);
26
+ -webkit-backdrop-filter: blur(var(--macos-glass-blur, 28px)) saturate(1.6);
27
+ border-right: 0.5px solid var(--macos-glass-border);
28
+ overflow: hidden;
29
+ }
30
+
31
+ html.macos.dark [data-tucu='sidebar'] {
32
+ background-color: var(--macos-glass-regular-bg);
33
+ border-right-color: var(--macos-glass-border);
34
+ }
35
+
36
+ /* Fallback: no backdrop-filter support */
37
+ @supports not (backdrop-filter: blur(1px)) {
38
+ html.macos [data-tucu='sidebar'] {
39
+ background-color: var(--macos-glass-regular-bg-opaque);
40
+ }
41
+ }
42
+
43
+ /* Reduced transparency */
44
+ @media (prefers-reduced-transparency: reduce) {
45
+ html.macos [data-tucu='sidebar'] {
46
+ background-color: var(--macos-glass-regular-bg-opaque);
47
+ backdrop-filter: none;
48
+ -webkit-backdrop-filter: none;
49
+ }
50
+ }
51
+
52
+ /* Sidebar header (avatar, search, etc.) */
53
+ html.macos [data-tucu='sidebar-header'] {
54
+ flex-shrink: 0;
55
+ padding: var(--macos-space-3) var(--macos-space-3) var(--macos-space-2);
56
+ border-bottom: 0.5px solid var(--macos-separator);
57
+ }
58
+
59
+ /* Sidebar scrollable navigation area */
60
+ html.macos [data-tucu='sidebar-nav'] {
61
+ flex: 1;
62
+ overflow-y: auto;
63
+ overflow-x: hidden;
64
+ padding: var(--macos-space-2) var(--macos-space-2);
65
+ /* Custom thin scrollbar */
66
+ scrollbar-width: thin;
67
+ scrollbar-color: var(--macos-gray3) transparent;
68
+ }
69
+
70
+ html.macos [data-tucu='sidebar-nav']::-webkit-scrollbar {
71
+ width: 4px;
72
+ }
73
+
74
+ html.macos [data-tucu='sidebar-nav']::-webkit-scrollbar-track {
75
+ background: transparent;
76
+ }
77
+
78
+ html.macos [data-tucu='sidebar-nav']::-webkit-scrollbar-thumb {
79
+ background-color: var(--macos-gray3);
80
+ border-radius: var(--macos-radius-pill);
81
+ }
82
+
83
+ html.macos.dark [data-tucu='sidebar-nav']::-webkit-scrollbar-thumb {
84
+ background-color: var(--macos-gray4);
85
+ }
86
+
87
+ /* Sidebar footer */
88
+ html.macos [data-tucu='sidebar-footer'] {
89
+ flex-shrink: 0;
90
+ padding: var(--macos-space-2) var(--macos-space-3) var(--macos-space-3);
91
+ border-top: 0.5px solid var(--macos-separator);
92
+ }
93
+
94
+ /* ── MacOSSidebarSection ─────────────────────────────────────── */
95
+
96
+ html.macos [data-tucu='sidebar-section'] {
97
+ margin-bottom: var(--macos-space-4);
98
+ }
99
+
100
+ html.macos [data-tucu='sidebar-section']:last-child {
101
+ margin-bottom: 0;
102
+ }
103
+
104
+ html.macos [data-tucu='sidebar-section-label'] {
105
+ font-family: var(--macos-font-family);
106
+ font-size: var(--macos-ts-subheadline-size);
107
+ font-weight: var(--macos-font-weight-semibold);
108
+ line-height: var(--macos-ts-subheadline-leading);
109
+ letter-spacing: 0.06em;
110
+ text-transform: uppercase;
111
+ color: var(--macos-tertiary-label);
112
+ padding: var(--macos-space-1) var(--macos-space-2) var(--macos-space-1);
113
+ margin-bottom: var(--macos-space-1);
114
+ user-select: none;
115
+ }
116
+
117
+ html.macos [data-tucu='sidebar-section-items'] {
118
+ display: flex;
119
+ flex-direction: column;
120
+ gap: 1px;
121
+ list-style: none;
122
+ padding: 0;
123
+ margin: 0;
124
+ }
125
+
126
+ /* ── MacOSSidebarItem ────────────────────────────────────────── */
127
+
128
+ html.macos [data-tucu='sidebar-item'] {
129
+ height: 28px; /* Apple HIG: sidebar row 28px */
130
+ display: flex;
131
+ align-items: center;
132
+ gap: var(--macos-space-2);
133
+ padding: 0 var(--macos-space-2);
134
+ border-radius: var(--macos-radius-small-control);
135
+ width: 100%;
136
+ border: none;
137
+ background-color: transparent;
138
+ cursor: default;
139
+ text-align: left;
140
+ transition: background-color 0.1s ease;
141
+ position: relative;
142
+ text-decoration: none;
143
+ }
144
+
145
+ html.macos [data-tucu='sidebar-item']:hover {
146
+ background-color: rgba(0, 0, 0, 0.06);
147
+ }
148
+
149
+ html.macos.dark [data-tucu='sidebar-item']:hover {
150
+ background-color: rgba(255, 255, 255, 0.08);
151
+ }
152
+
153
+ /* Active / selected state */
154
+ html.macos [data-tucu='sidebar-item'][data-active='true'],
155
+ html.macos [data-tucu='sidebar-item'][aria-current='page'],
156
+ html.macos [data-tucu='sidebar-item'][aria-selected='true'] {
157
+ background-color: color-mix(
158
+ in srgb,
159
+ var(--color-brand, #0088ff) 14%,
160
+ transparent
161
+ );
162
+ color: var(--macos-control-accent);
163
+ font-weight: var(--macos-font-weight-medium);
164
+ }
165
+
166
+ html.macos.dark [data-tucu='sidebar-item'][data-active='true'],
167
+ html.macos.dark [data-tucu='sidebar-item'][aria-current='page'],
168
+ html.macos.dark [data-tucu='sidebar-item'][aria-selected='true'] {
169
+ background-color: color-mix(
170
+ in srgb,
171
+ var(--color-brand, #0091ff) 18%,
172
+ transparent
173
+ );
174
+ color: var(--color-brand, #3da3ff);
175
+ }
176
+
177
+ /* Pressed / active press state */
178
+ html.macos [data-tucu='sidebar-item']:active {
179
+ background-color: rgba(0, 0, 0, 0.1);
180
+ }
181
+
182
+ html.macos.dark [data-tucu='sidebar-item']:active {
183
+ background-color: rgba(255, 255, 255, 0.12);
184
+ }
185
+
186
+ /* Disabled */
187
+ html.macos [data-tucu='sidebar-item'][disabled],
188
+ html.macos [data-tucu='sidebar-item']:disabled,
189
+ html.macos [data-tucu='sidebar-item'][data-disabled='true'] {
190
+ opacity: 0.38;
191
+ cursor: not-allowed;
192
+ pointer-events: none;
193
+ }
194
+
195
+ /* Focus */
196
+ html.macos [data-tucu='sidebar-item']:focus-visible {
197
+ outline: none;
198
+ box-shadow: 0 0 0 var(--macos-focus-ring-width) var(--macos-focus-ring);
199
+ }
200
+
201
+ /* Item icon */
202
+ html.macos [data-tucu='sidebar-item-icon'] {
203
+ width: var(--macos-sidebar-icon-size);
204
+ height: var(--macos-sidebar-icon-size);
205
+ flex-shrink: 0;
206
+ display: flex;
207
+ align-items: center;
208
+ justify-content: center;
209
+ color: var(--macos-secondary-label);
210
+ }
211
+
212
+ html.macos
213
+ [data-tucu='sidebar-item'][data-active='true']
214
+ [data-tucu='sidebar-item-icon'],
215
+ html.macos
216
+ [data-tucu='sidebar-item'][aria-current='page']
217
+ [data-tucu='sidebar-item-icon'] {
218
+ color: var(--macos-control-accent);
219
+ }
220
+
221
+ /* Item label */
222
+ html.macos [data-tucu='sidebar-item-label'] {
223
+ flex: 1;
224
+ font-family: var(--macos-font-family);
225
+ font-size: var(--macos-ts-body-size);
226
+ font-weight: inherit;
227
+ line-height: var(--macos-ts-body-leading);
228
+ letter-spacing: var(--macos-ts-body-tracking);
229
+ color: var(--macos-label);
230
+ white-space: nowrap;
231
+ overflow: hidden;
232
+ text-overflow: ellipsis;
233
+ user-select: none;
234
+ }
235
+
236
+ html.macos
237
+ [data-tucu='sidebar-item'][data-active='true']
238
+ [data-tucu='sidebar-item-label'],
239
+ html.macos
240
+ [data-tucu='sidebar-item'][aria-current='page']
241
+ [data-tucu='sidebar-item-label'] {
242
+ color: inherit;
243
+ }
244
+
245
+ /* Item badge */
246
+ html.macos [data-tucu='sidebar-item-badge'] {
247
+ flex-shrink: 0;
248
+ min-width: 18px;
249
+ height: 18px;
250
+ display: flex;
251
+ align-items: center;
252
+ justify-content: center;
253
+ padding: 0 5px;
254
+ border-radius: var(--macos-radius-pill);
255
+ font-family: var(--macos-font-family);
256
+ font-size: var(--macos-ts-caption2-size);
257
+ font-weight: var(--macos-font-weight-medium);
258
+ background-color: var(--macos-secondary-label);
259
+ color: var(--macos-window-bg);
260
+ }
261
+
262
+ html.macos
263
+ [data-tucu='sidebar-item'][data-active='true']
264
+ [data-tucu='sidebar-item-badge'] {
265
+ background-color: var(--macos-control-accent);
266
+ color: #ffffff;
267
+ }
268
+
269
+ html.macos.dark [data-tucu='sidebar-item-badge'] {
270
+ background-color: rgba(235, 235, 245, 0.3);
271
+ color: rgba(235, 235, 245, 0.88);
272
+ }
273
+
274
+ /* ── MacOSContentPane ────────────────────────────────────────── */
275
+ /* SOLID background — no glass in content areas */
276
+
277
+ html.macos [data-tucu='content-pane'] {
278
+ flex: 1;
279
+ display: flex;
280
+ flex-direction: column;
281
+ overflow: hidden;
282
+ background-color: var(--macos-content-bg);
283
+ position: relative;
284
+ }
285
+
286
+ html.macos.dark [data-tucu='content-pane'] {
287
+ background-color: var(--macos-content-bg);
288
+ }
289
+
290
+ html.macos [data-tucu='content-pane-body'] {
291
+ flex: 1;
292
+ overflow-y: auto;
293
+ overflow-x: hidden;
294
+ padding: var(--macos-content-padding);
295
+ }
296
+
297
+ /* ── MacOSScrollView ─────────────────────────────────────────── */
298
+
299
+ html.macos [data-tucu='scroll-view'] {
300
+ overflow-y: auto;
301
+ overflow-x: hidden;
302
+ position: relative;
303
+ /* Thin scrollbar */
304
+ scrollbar-width: thin;
305
+ scrollbar-color: var(--macos-gray3) transparent;
306
+ }
307
+
308
+ html.macos [data-tucu='scroll-view']::-webkit-scrollbar {
309
+ width: 4px;
310
+ height: 4px;
311
+ }
312
+
313
+ html.macos [data-tucu='scroll-view']::-webkit-scrollbar-track {
314
+ background: transparent;
315
+ }
316
+
317
+ html.macos [data-tucu='scroll-view']::-webkit-scrollbar-thumb {
318
+ background-color: var(--macos-gray3);
319
+ border-radius: var(--macos-radius-pill);
320
+ }
321
+
322
+ html.macos.dark [data-tucu='scroll-view']::-webkit-scrollbar-thumb {
323
+ background-color: var(--macos-gray4);
324
+ }
325
+
326
+ /* Scroll edge overlays */
327
+ html.macos [data-tucu='scroll-view'] > [data-tucu='scroll-edge-top'] {
328
+ background: linear-gradient(to bottom, var(--macos-content-bg), transparent);
329
+ }
330
+
331
+ html.macos [data-tucu='scroll-view'] > [data-tucu='scroll-edge-bottom'] {
332
+ background: linear-gradient(to top, var(--macos-content-bg), transparent);
333
+ }
334
+
335
+ /* ── MacOSSplitView ──────────────────────────────────────────── */
336
+
337
+ html.macos [data-tucu='split-view'] {
338
+ display: flex;
339
+ width: 100%;
340
+ height: 100%;
341
+ overflow: hidden;
342
+ }
343
+
344
+ html.macos [data-tucu='split-divider'] {
345
+ width: 1px;
346
+ min-width: 1px;
347
+ background-color: var(--macos-separator);
348
+ cursor: col-resize;
349
+ position: relative;
350
+ flex-shrink: 0;
351
+ transition: background-color 0.15s ease;
352
+ }
353
+
354
+ html.macos [data-tucu='split-divider']:hover,
355
+ html.macos [data-tucu='split-divider'][data-dragging='true'] {
356
+ background-color: var(--macos-control-accent);
357
+ }
358
+
359
+ html.macos [data-tucu='split-divider']::after {
360
+ content: '';
361
+ position: absolute;
362
+ top: 0;
363
+ bottom: 0;
364
+ left: -4px;
365
+ right: -4px;
366
+ }
367
+
368
+ /* ── MacOSInspector ──────────────────────────────────────────── */
369
+
370
+ html.macos [data-tucu='inspector'] {
371
+ width: var(--macos-inspector-width);
372
+ min-width: var(--macos-inspector-width);
373
+ height: 100%;
374
+ display: flex;
375
+ flex-direction: column;
376
+ flex-shrink: 0;
377
+ background-color: var(--macos-grouped-bg);
378
+ border-left: 0.5px solid var(--macos-separator);
379
+ overflow-y: auto;
380
+ overflow-x: hidden;
381
+ }
382
+
383
+ html.macos.dark [data-tucu='inspector'] {
384
+ background-color: var(--macos-grouped-bg);
385
+ border-left-color: var(--macos-separator);
386
+ }
387
+
388
+ html.macos [data-tucu='inspector-section'] {
389
+ padding: var(--macos-space-4);
390
+ border-bottom: 0.5px solid var(--macos-separator);
391
+ }
392
+
393
+ html.macos [data-tucu='inspector-section']:last-child {
394
+ border-bottom: none;
395
+ }
396
+
397
+ html.macos [data-tucu='inspector-section-title'] {
398
+ font-family: var(--macos-font-family);
399
+ font-size: var(--macos-ts-subheadline-size);
400
+ font-weight: var(--macos-font-weight-semibold);
401
+ line-height: var(--macos-ts-subheadline-leading);
402
+ letter-spacing: 0.06em;
403
+ text-transform: uppercase;
404
+ color: var(--macos-tertiary-label);
405
+ margin-bottom: var(--macos-space-2);
406
+ user-select: none;
407
+ }
408
+
409
+ /* ── Reduced motion ──────────────────────────────────────────── */
410
+
411
+ @media (prefers-reduced-motion: reduce) {
412
+ html.macos [data-tucu='sidebar-item'],
413
+ html.macos [data-tucu='split-divider'] {
414
+ transition: none;
415
+ }
416
+ }