@e-burgos/tucu-ui 2.7.2 → 2.8.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 (63) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/base.css +225 -0
  3. package/components/inputs/select.mjs +1 -1
  4. package/components/loaders/loader.mjs +21 -21
  5. package/components/typography/index.mjs +30 -30
  6. package/components/utils/code-block.mjs +1 -1
  7. package/hooks/use-breakpoint.mjs +21 -5
  8. package/hooks/use-click-away.mjs +17 -6
  9. package/hooks/use-copy-to-clipboard.mjs +45 -6
  10. package/hooks/use-measure.mjs +24 -4
  11. package/index.css +1 -1
  12. package/index.d.ts +29 -6
  13. package/index.js +9 -9
  14. package/macos/index.css +15 -0
  15. package/macos/sonoma/index.css +34 -0
  16. package/macos/sonoma/macos-auth.css +162 -0
  17. package/macos/sonoma/macos-backgrounds.css +314 -0
  18. package/macos/sonoma/macos-buttons.css +231 -0
  19. package/macos/sonoma/macos-cards.css +104 -0
  20. package/macos/sonoma/macos-content.css +157 -0
  21. package/macos/sonoma/macos-dialogs.css +122 -0
  22. package/macos/sonoma/macos-feedback.css +237 -0
  23. package/macos/sonoma/macos-fonts.css +7 -0
  24. package/macos/sonoma/macos-foundations.css +479 -0
  25. package/macos/sonoma/macos-inputs.css +1580 -0
  26. package/macos/sonoma/macos-layouts.css +223 -0
  27. package/macos/sonoma/macos-liquid-glass.css +279 -0
  28. package/macos/sonoma/macos-menus.css +184 -0
  29. package/macos/sonoma/macos-misc.css +635 -0
  30. package/macos/sonoma/macos-navigation.css +145 -0
  31. package/macos/sonoma/macos-selection.css +237 -0
  32. package/macos/sonoma/macos-sidebar.css +416 -0
  33. package/macos/sonoma/macos-tables.css +318 -0
  34. package/macos/sonoma/macos-toolbar.css +302 -0
  35. package/macos/sonoma/macos-typography.css +485 -0
  36. package/macos/sonoma/macos-window.css +273 -0
  37. package/macos/tahoe/index.css +34 -0
  38. package/macos/tahoe/macos-auth.css +162 -0
  39. package/macos/tahoe/macos-backgrounds.css +314 -0
  40. package/macos/tahoe/macos-buttons.css +286 -0
  41. package/macos/tahoe/macos-cards.css +125 -0
  42. package/macos/tahoe/macos-content.css +157 -0
  43. package/macos/tahoe/macos-dialogs.css +195 -0
  44. package/macos/tahoe/macos-feedback.css +273 -0
  45. package/macos/tahoe/macos-fonts.css +7 -0
  46. package/macos/tahoe/macos-foundations.css +516 -0
  47. package/macos/tahoe/macos-inputs.css +1656 -0
  48. package/macos/tahoe/macos-layouts.css +438 -0
  49. package/macos/tahoe/macos-liquid-glass.css +279 -0
  50. package/macos/tahoe/macos-menus.css +184 -0
  51. package/macos/tahoe/macos-misc.css +635 -0
  52. package/macos/tahoe/macos-navigation.css +191 -0
  53. package/macos/tahoe/macos-selection.css +237 -0
  54. package/macos/tahoe/macos-sidebar.css +420 -0
  55. package/macos/tahoe/macos-tables.css +320 -0
  56. package/macos/tahoe/macos-toolbar.css +304 -0
  57. package/macos/tahoe/macos-typography.css +485 -0
  58. package/macos/tahoe/macos-window.css +273 -0
  59. package/package.json +3 -3
  60. package/theme.css +812 -0
  61. package/third-party.css +39 -0
  62. package/utilities.css +105 -0
  63. package/hooks/internal/cjs-esm-interop.mjs +0 -9
@@ -0,0 +1,191 @@
1
+ /* ============================================================
2
+ macOS Tahoe 26 — Navigation Overrides
3
+
4
+ Targets: Tabs, ParamTab, CollapsibleMenu, NavLink
5
+ Selectors: html.macos-tahoe [data-tucu="tabs"], etc.
6
+
7
+ References:
8
+ - macOS Tahoe segmented control: 24pt height, 8-10pt radius
9
+ - Tab bar: bottom border, semibold active tab
10
+ - macOS Finder sidebar groups, glass materials
11
+ ============================================================ */
12
+
13
+ /* ── Tabs container ──────────────────────────────────────────── */
14
+ html.macos-tahoe [data-tucu='tabs'] {
15
+ border-bottom: 1px solid var(--macos-separator);
16
+ gap: 0;
17
+ font-family: var(--macos-font-family);
18
+ }
19
+
20
+ /* ── Tab item ────────────────────────────────────────────────── */
21
+ html.macos-tahoe [data-tucu='tab'] {
22
+ padding: var(--macos-space-2) var(--macos-space-4);
23
+ font-size: var(--macos-font-size-body);
24
+ font-weight: var(--macos-font-weight-regular);
25
+ color: var(--macos-secondary-label);
26
+ border-bottom: 2px solid transparent;
27
+ transition: all var(--macos-transition-fast);
28
+ border-radius: 0;
29
+ background: transparent;
30
+ }
31
+
32
+ html.macos-tahoe [data-tucu='tab']:hover {
33
+ color: var(--macos-label);
34
+ background-color: rgba(0, 0, 0, 0.03);
35
+ }
36
+
37
+ html.macos-tahoe.dark [data-tucu='tab']:hover {
38
+ background-color: rgba(255, 255, 255, 0.04);
39
+ }
40
+
41
+ html.macos-tahoe [data-tucu='tab'][data-active='true'] {
42
+ color: var(--macos-control-accent);
43
+ font-weight: var(--macos-font-weight-medium);
44
+ border-bottom-color: var(--macos-control-accent);
45
+ }
46
+
47
+ html.macos-tahoe [data-tucu='tab']:focus-visible {
48
+ outline: none;
49
+ box-shadow: 0 0 0 var(--macos-focus-ring-width) var(--macos-focus-ring);
50
+ }
51
+
52
+ /* ── Segmented Control style (ParamTab) ──────────────────────── */
53
+ html.macos-tahoe [data-tucu='segmented-control'] {
54
+ display: inline-flex;
55
+ background-color: rgba(0, 0, 0, 0.05);
56
+ border-radius: var(--macos-radius-small-control);
57
+ padding: 2px;
58
+ gap: 1px;
59
+ }
60
+
61
+ html.macos-tahoe.dark [data-tucu='segmented-control'] {
62
+ background-color: rgba(255, 255, 255, 0.08);
63
+ }
64
+
65
+ html.macos-tahoe [data-tucu='segmented-item'] {
66
+ height: calc(var(--macos-segmented-height) - 4px);
67
+ padding: 0 var(--macos-space-3);
68
+ border-radius: 7px;
69
+ font-size: var(--macos-font-size-callout);
70
+ font-weight: var(--macos-font-weight-medium);
71
+ color: var(--macos-secondary-label);
72
+ background: transparent;
73
+ transition: background-color 0.1s ease, color 0.1s ease, box-shadow 0.1s ease;
74
+ }
75
+
76
+ html.macos-tahoe [data-tucu='segmented-item'][data-active='true'] {
77
+ background-color: var(--macos-control-bg);
78
+ color: var(--macos-label);
79
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 0.5px 1px rgba(0, 0, 0, 0.08);
80
+ font-weight: var(--macos-font-weight-medium);
81
+ }
82
+
83
+ html.macos-tahoe.dark [data-tucu='segmented-item'][data-active='true'] {
84
+ background-color: rgba(99, 99, 102, 0.7);
85
+ color: var(--macos-label);
86
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25);
87
+ }
88
+
89
+ html.macos-tahoe [data-tucu='segmented-item']:focus-visible {
90
+ outline: none;
91
+ box-shadow: 0 0 0 var(--macos-focus-ring-width) var(--macos-focus-ring);
92
+ }
93
+
94
+ /* ── Collapsible Menu ────────────────────────────────────────── */
95
+ html.macos-tahoe [data-tucu='collapsible-menu'] {
96
+ font-family: var(--macos-font-family);
97
+ }
98
+
99
+ html.macos-tahoe [data-tucu='collapsible-header'] {
100
+ font-size: var(--macos-font-size-subheadline);
101
+ font-weight: var(--macos-font-weight-semibold);
102
+ color: var(--macos-secondary-label);
103
+ text-transform: uppercase;
104
+ letter-spacing: 0.06em;
105
+ padding: var(--macos-space-3) var(--macos-space-3) var(--macos-space-1);
106
+ }
107
+
108
+ html.macos-tahoe [data-tucu='collapsible-item'] {
109
+ height: var(--macos-sidebar-row-height);
110
+ padding: 0 var(--macos-space-3);
111
+ border-radius: var(--macos-radius-md);
112
+ font-size: var(--macos-font-size-body);
113
+ transition: background-color var(--macos-transition-fast);
114
+ }
115
+
116
+ html.macos-tahoe [data-tucu='collapsible-item']:hover {
117
+ background-color: rgba(0, 0, 0, 0.04);
118
+ }
119
+
120
+ html.macos-tahoe.dark [data-tucu='collapsible-item']:hover {
121
+ background-color: rgba(255, 255, 255, 0.06);
122
+ }
123
+
124
+ html.macos-tahoe [data-tucu='collapsible-item'][data-active='true'] {
125
+ background-color: var(--macos-selected-content-bg);
126
+ color: #ffffff;
127
+ }
128
+
129
+ /* ── NavLink ─────────────────────────────────────────────────── */
130
+ html.macos-tahoe [data-tucu='nav-link'] {
131
+ color: var(--macos-link);
132
+ text-decoration: none;
133
+ font-weight: var(--macos-font-weight-regular);
134
+ transition: color var(--macos-transition-fast);
135
+ }
136
+
137
+ html.macos-tahoe [data-tucu='nav-link']:hover {
138
+ text-decoration: underline;
139
+ }
140
+
141
+ html.macos-tahoe [data-tucu='nav-link'][data-active='true'] {
142
+ font-weight: var(--macos-font-weight-medium);
143
+ }
144
+
145
+ /* ============================================================
146
+ macOS Tahoe 26 — Navigation & Toolbar (Liquid Glass)
147
+ ============================================================ */
148
+
149
+ /* Toolbars & Sidebars */
150
+ html.macos-tahoe [data-tucu='macos-toolbar'],
151
+ html.macos-tahoe [data-tucu='macos-sidebar'] {
152
+ background: var(--macos-glass-regular-bg);
153
+ backdrop-filter: blur(var(--macos-glass-regular-blur)) saturate(150%);
154
+ -webkit-backdrop-filter: blur(var(--macos-glass-regular-blur)) saturate(150%);
155
+ border-bottom: 1px solid var(--macos-glass-regular-border);
156
+ }
157
+
158
+ html.macos-tahoe [data-tucu='macos-sidebar'] {
159
+ border-bottom: none;
160
+ border-right: 1px solid var(--macos-glass-regular-border);
161
+ }
162
+
163
+ /* Tabs & Segmented Controls */
164
+ html.macos-tahoe [data-tucu='segmented-control'] {
165
+ background: var(--macos-glass-dim-layer);
166
+ border: 1px solid var(--macos-glass-clear-border);
167
+ border-radius: var(--macos-radius-md);
168
+ padding: 2px;
169
+ }
170
+
171
+ html.macos-tahoe [data-tucu='segmented-control-item'][data-state='active'] {
172
+ background: var(--macos-glass-prominent-bg);
173
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1), var(--macos-glass-highlight);
174
+ border-radius: calc(var(--macos-radius-md) - 2px);
175
+ color: var(--macos-label);
176
+ }
177
+
178
+ @media (prefers-reduced-transparency: reduce) {
179
+ html.macos-tahoe [data-tucu='macos-toolbar'],
180
+ html.macos-tahoe [data-tucu='macos-sidebar'],
181
+ html.macos-tahoe [data-tucu='segmented-control'],
182
+ html.macos-tahoe [data-tucu='segmented-control-item'][data-state='active'] {
183
+ backdrop-filter: none !important;
184
+ -webkit-backdrop-filter: none !important;
185
+ }
186
+
187
+ html.macos-tahoe [data-tucu='macos-toolbar'],
188
+ html.macos-tahoe [data-tucu='macos-sidebar'] {
189
+ background: var(--color-semantic-elevation-2);
190
+ }
191
+ }
@@ -0,0 +1,237 @@
1
+ /* ============================================================
2
+ macOS Tahoe 26 — Selection & Numeric Input Overrides
3
+
4
+ Targets: SegmentedControl, Slider, Stepper, RangeInput
5
+ Selector: html.macos-tahoe [data-tucu="..."]
6
+
7
+ References:
8
+ - Apple HIG > Segmented Controls: 8pt radius, 22pt height
9
+ - Apple HIG > Sliders: thumb 22pt, track 4pt, accent color
10
+ - Apple HIG > Steppers: 19pt height, paired +/- buttons
11
+ ============================================================ */
12
+
13
+ /* ── Segmented Control ───────────────────────────────────────── */
14
+
15
+ html.macos-tahoe [data-tucu='segmented-control'] {
16
+ background-color: rgba(0, 0, 0, 0.05);
17
+ border-radius: var(--macos-radius-small-control);
18
+ font-family: var(--macos-font-family);
19
+ padding: 2px;
20
+ }
21
+
22
+ html.macos-tahoe.dark [data-tucu='segmented-control'] {
23
+ background-color: rgba(255, 255, 255, 0.08);
24
+ }
25
+
26
+ html.macos-tahoe [data-tucu='segmented-item'] {
27
+ font-family: var(--macos-font-family);
28
+ font-size: var(--macos-font-size-callout);
29
+ font-weight: var(--macos-font-weight-medium);
30
+ letter-spacing: var(--macos-tracking-12);
31
+ border-radius: 7px;
32
+ transition: background-color 0.1s ease, box-shadow 0.1s ease, color 0.1s ease;
33
+ color: var(--macos-secondary-label);
34
+ }
35
+
36
+ html.macos-tahoe [data-tucu='segmented-item'][data-active='true'],
37
+ html.macos-tahoe [data-tucu='segmented-item'][aria-checked='true'] {
38
+ background-color: var(--macos-control-bg);
39
+ color: var(--macos-label);
40
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 1px rgba(0, 0, 0, 0.08);
41
+ }
42
+
43
+ html.macos-tahoe.dark [data-tucu='segmented-item'][data-active='true'],
44
+ html.macos-tahoe.dark [data-tucu='segmented-item'][aria-checked='true'] {
45
+ background-color: rgba(99, 99, 102, 0.7);
46
+ color: var(--macos-label);
47
+ }
48
+
49
+ html.macos-tahoe
50
+ [data-tucu='segmented-item']:not([data-active='true']):not(
51
+ [aria-checked='true']
52
+ ):hover {
53
+ color: var(--macos-label);
54
+ background-color: rgba(0, 0, 0, 0.03);
55
+ }
56
+
57
+ html.macos-tahoe.dark
58
+ [data-tucu='segmented-item']:not([data-active='true']):not(
59
+ [aria-checked='true']
60
+ ):hover {
61
+ background-color: rgba(255, 255, 255, 0.04);
62
+ }
63
+
64
+ html.macos-tahoe [data-tucu='segmented-item']:focus-visible {
65
+ outline: none;
66
+ box-shadow: 0 0 0 var(--macos-focus-ring-width) var(--macos-focus-ring);
67
+ }
68
+
69
+ /* ── Slider ──────────────────────────────────────────────────── */
70
+
71
+ html.macos-tahoe [data-tucu='slider'] {
72
+ font-family: var(--macos-font-family);
73
+ }
74
+
75
+ html.macos-tahoe [data-tucu='slider-track'] {
76
+ height: 4px;
77
+ border-radius: 2px;
78
+ background-color: var(--macos-separator);
79
+ }
80
+
81
+ html.macos-tahoe [data-tucu='slider-fill'] {
82
+ background-color: var(--macos-control-accent);
83
+ border-radius: 2px;
84
+ }
85
+
86
+ html.macos-tahoe [data-tucu='slider-thumb'] {
87
+ width: 20px;
88
+ height: 20px;
89
+ border-radius: var(--macos-radius-pill);
90
+ background-color: white;
91
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2), 0 0.5px 1px rgba(0, 0, 0, 0.12);
92
+ transition: box-shadow 0.1s ease, transform 0.1s ease;
93
+ cursor: pointer;
94
+ }
95
+
96
+ html.macos-tahoe [data-tucu='slider-thumb']:hover {
97
+ box-shadow: 0 2px 5px rgba(0, 0, 0, 0.22), 0 0.5px 1px rgba(0, 0, 0, 0.12);
98
+ }
99
+
100
+ html.macos-tahoe [data-tucu='slider-thumb']:active {
101
+ transform: scale(1.1);
102
+ }
103
+
104
+ html.macos-tahoe [data-tucu='slider-thumb']:focus-visible {
105
+ outline: none;
106
+ box-shadow: 0 0 0 var(--macos-focus-ring-width) var(--macos-focus-ring);
107
+ }
108
+
109
+ html.macos-tahoe.dark [data-tucu='slider-track'] {
110
+ background-color: rgba(255, 255, 255, 0.16);
111
+ }
112
+
113
+ /* ── Native range input (if used) ───────────────────────────── */
114
+
115
+ html.macos-tahoe input[type='range'] {
116
+ -webkit-appearance: none;
117
+ appearance: none;
118
+ height: 4px;
119
+ background: var(--macos-separator);
120
+ border-radius: 2px;
121
+ outline: none;
122
+ cursor: pointer;
123
+ }
124
+
125
+ html.macos-tahoe input[type='range']::-webkit-slider-thumb {
126
+ -webkit-appearance: none;
127
+ width: 20px;
128
+ height: 20px;
129
+ border-radius: 50%;
130
+ background: white;
131
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2), 0 0.5px 1px rgba(0, 0, 0, 0.12);
132
+ cursor: pointer;
133
+ transition: box-shadow 0.1s ease;
134
+ }
135
+
136
+ html.macos-tahoe input[type='range']::-webkit-slider-thumb:hover {
137
+ box-shadow: 0 2px 5px rgba(0, 0, 0, 0.22), 0 0.5px 1px rgba(0, 0, 0, 0.12);
138
+ }
139
+
140
+ html.macos-tahoe input[type='range']:focus-visible::-webkit-slider-thumb {
141
+ box-shadow: 0 0 0 var(--macos-focus-ring-width) var(--macos-focus-ring);
142
+ }
143
+
144
+ html.macos-tahoe input[type='range']::-moz-range-thumb {
145
+ width: 20px;
146
+ height: 20px;
147
+ border: none;
148
+ border-radius: 50%;
149
+ background: white;
150
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2), 0 0.5px 1px rgba(0, 0, 0, 0.12);
151
+ cursor: pointer;
152
+ }
153
+
154
+ /* ── Stepper ─────────────────────────────────────────────────── */
155
+
156
+ html.macos-tahoe [data-tucu='stepper'] {
157
+ font-family: var(--macos-font-family);
158
+ display: inline-flex;
159
+ align-items: stretch;
160
+ border-radius: var(--macos-radius-control);
161
+ border: 0.5px solid var(--macos-separator);
162
+ overflow: hidden;
163
+ box-shadow: 0 0.5px 1px rgba(0, 0, 0, 0.1);
164
+ }
165
+
166
+ html.macos-tahoe [data-tucu='stepper-button'] {
167
+ background-color: var(--macos-control-bg);
168
+ color: var(--macos-label);
169
+ border: none;
170
+ width: 22px;
171
+ min-height: var(--macos-control-height);
172
+ font-size: 14px;
173
+ font-weight: var(--macos-font-weight-medium);
174
+ cursor: pointer;
175
+ transition: background-color 0.1s ease;
176
+ display: flex;
177
+ align-items: center;
178
+ justify-content: center;
179
+ }
180
+
181
+ html.macos-tahoe [data-tucu='stepper-button']:hover {
182
+ background-color: var(--macos-control-bg-hover);
183
+ }
184
+
185
+ html.macos-tahoe [data-tucu='stepper-button']:active {
186
+ background-color: var(--macos-control-bg-active);
187
+ }
188
+
189
+ html.macos-tahoe [data-tucu='stepper-button']:disabled {
190
+ opacity: 0.4;
191
+ cursor: default;
192
+ }
193
+
194
+ html.macos-tahoe [data-tucu='stepper-button']:focus-visible {
195
+ outline: none;
196
+ box-shadow: inset 0 0 0 var(--macos-focus-ring-width) var(--macos-focus-ring);
197
+ }
198
+
199
+ html.macos-tahoe [data-tucu='stepper-value'] {
200
+ font-size: var(--macos-font-size-body);
201
+ font-family: var(--macos-font-family);
202
+ color: var(--macos-label);
203
+ border-left: 0.5px solid var(--macos-separator);
204
+ border-right: 0.5px solid var(--macos-separator);
205
+ padding: 0 10px;
206
+ min-width: 44px;
207
+ text-align: center;
208
+ background-color: var(--macos-control-bg);
209
+ display: flex;
210
+ align-items: center;
211
+ justify-content: center;
212
+ }
213
+
214
+ html.macos-tahoe.dark [data-tucu='stepper'],
215
+ html.macos-tahoe.dark [data-tucu='stepper-button'],
216
+ html.macos-tahoe.dark [data-tucu='stepper-value'] {
217
+ border-color: rgba(255, 255, 255, 0.12);
218
+ }
219
+
220
+ html.macos-tahoe.dark [data-tucu='stepper-button'],
221
+ html.macos-tahoe.dark [data-tucu='stepper-value'] {
222
+ background-color: rgba(255, 255, 255, 0.1);
223
+ }
224
+
225
+ html.macos-tahoe.dark [data-tucu='stepper-button']:hover {
226
+ background-color: rgba(255, 255, 255, 0.14);
227
+ }
228
+
229
+ /* ── Reduced motion ──────────────────────────────────────────── */
230
+
231
+ @media (prefers-reduced-motion: reduce) {
232
+ html.macos-tahoe [data-tucu='segmented-item'],
233
+ html.macos-tahoe [data-tucu='slider-thumb'],
234
+ html.macos-tahoe [data-tucu='stepper-button'] {
235
+ transition: none;
236
+ }
237
+ }