@tenerife.music/ui 1.1.0 → 1.2.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.
package/dist/styles.css CHANGED
@@ -494,9 +494,6 @@ body {
494
494
  .right-0 {
495
495
  right: 0;
496
496
  }
497
- .right-1 {
498
- right: 0.25rem;
499
- }
500
497
  .right-md {
501
498
  right: 1rem;
502
499
  }
@@ -602,9 +599,6 @@ body {
602
599
  .mb-4 {
603
600
  margin-bottom: 1rem;
604
601
  }
605
- .mb-8 {
606
- margin-bottom: 2rem;
607
- }
608
602
  .mb-lg {
609
603
  margin-bottom: 1.5rem;
610
604
  }
@@ -710,15 +704,6 @@ body {
710
704
  .hidden {
711
705
  display: none;
712
706
  }
713
- .aspect-\[16\/9\] {
714
- aspect-ratio: 16/9;
715
- }
716
- .aspect-\[4\/3\] {
717
- aspect-ratio: 4/3;
718
- }
719
- .aspect-square {
720
- aspect-ratio: 1 / 1;
721
- }
722
707
  .aspect-video {
723
708
  aspect-ratio: 16 / 9;
724
709
  }
@@ -1082,9 +1067,6 @@ body {
1082
1067
  .max-w-md {
1083
1068
  max-width: 28rem;
1084
1069
  }
1085
- .max-w-none {
1086
- max-width: none;
1087
- }
1088
1070
  .max-w-sm {
1089
1071
  max-width: 24rem;
1090
1072
  }
@@ -1336,6 +1318,12 @@ body {
1336
1318
  .resize {
1337
1319
  resize: both;
1338
1320
  }
1321
+ .list-inside {
1322
+ list-style-position: inside;
1323
+ }
1324
+ .list-disc {
1325
+ list-style-type: disc;
1326
+ }
1339
1327
  .list-none {
1340
1328
  list-style-type: none;
1341
1329
  }
@@ -1548,9 +1536,6 @@ body {
1548
1536
  .rounded-2xl {
1549
1537
  border-radius: 1rem;
1550
1538
  }
1551
- .rounded-3xl {
1552
- border-radius: 1.5rem;
1553
- }
1554
1539
  .rounded-\[4px\] {
1555
1540
  border-radius: 4px;
1556
1541
  }
@@ -1635,15 +1620,9 @@ body {
1635
1620
  .border-t {
1636
1621
  border-top-width: 1px;
1637
1622
  }
1638
- .border-solid {
1639
- border-style: solid;
1640
- }
1641
1623
  .border-dashed {
1642
1624
  border-style: dashed;
1643
1625
  }
1644
- .border-dotted {
1645
- border-style: dotted;
1646
- }
1647
1626
  .border-none {
1648
1627
  border-style: none;
1649
1628
  }
@@ -1939,6 +1918,9 @@ body {
1939
1918
  .bg-muted {
1940
1919
  background-color: hsl(var(--muted));
1941
1920
  }
1921
+ .bg-muted\/30 {
1922
+ background-color: hsl(var(--muted) / 0.3);
1923
+ }
1942
1924
  .bg-muted\/50 {
1943
1925
  background-color: hsl(var(--muted) / 0.5);
1944
1926
  }
@@ -2209,18 +2191,12 @@ body {
2209
2191
  .pb-sm {
2210
2192
  padding-bottom: 0.5rem;
2211
2193
  }
2212
- .pl-10 {
2213
- padding-left: 2.5rem;
2214
- }
2215
2194
  .pl-8 {
2216
2195
  padding-left: 2rem;
2217
2196
  }
2218
2197
  .pl-lg {
2219
2198
  padding-left: 1.5rem;
2220
2199
  }
2221
- .pr-10 {
2222
- padding-right: 2.5rem;
2223
- }
2224
2200
  .pr-8 {
2225
2201
  padding-right: 2rem;
2226
2202
  }
@@ -2260,6 +2236,17 @@ body {
2260
2236
  Roboto,
2261
2237
  sans-serif;
2262
2238
  }
2239
+ .font-mono {
2240
+ font-family:
2241
+ ui-monospace,
2242
+ SFMono-Regular,
2243
+ Menlo,
2244
+ Monaco,
2245
+ Consolas,
2246
+ Liberation Mono,
2247
+ Courier New,
2248
+ monospace;
2249
+ }
2263
2250
  .text-2xl {
2264
2251
  font-size: clamp(1.5rem, 1.25rem + 1.25vw, 2rem);
2265
2252
  line-height: 2rem;
@@ -2478,10 +2465,6 @@ body {
2478
2465
  .text-foreground\/95 {
2479
2466
  color: hsl(var(--foreground) / 0.95);
2480
2467
  }
2481
- .text-gray-900 {
2482
- --tw-text-opacity: 1;
2483
- color: rgb(17 24 39 / var(--tw-text-opacity, 1));
2484
- }
2485
2468
  .text-green-700 {
2486
2469
  --tw-text-opacity: 1;
2487
2470
  color: rgb(21 128 61 / var(--tw-text-opacity, 1));
@@ -2568,9 +2551,6 @@ body {
2568
2551
  --tw-text-opacity: 1;
2569
2552
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
2570
2553
  }
2571
- .text-white\/80 {
2572
- color: rgb(255 255 255 / 0.8);
2573
- }
2574
2554
  .text-yellow-500 {
2575
2555
  --tw-text-opacity: 1;
2576
2556
  color: rgb(234 179 8 / var(--tw-text-opacity, 1));
@@ -2621,14 +2601,6 @@ body {
2621
2601
  var(--tw-ring-shadow, 0 0 #0000),
2622
2602
  var(--tw-shadow);
2623
2603
  }
2624
- .shadow-inner {
2625
- --tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / 0.05);
2626
- --tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color);
2627
- box-shadow:
2628
- var(--tw-ring-offset-shadow, 0 0 #0000),
2629
- var(--tw-ring-shadow, 0 0 #0000),
2630
- var(--tw-shadow);
2631
- }
2632
2604
  .shadow-lg {
2633
2605
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
2634
2606
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
@@ -3035,8 +3007,8 @@ body {
3035
3007
  .hover\:text-accent-foreground:hover {
3036
3008
  color: hsl(var(--tm-accent-foreground));
3037
3009
  }
3038
- .hover\:text-accent-foreground\/80:hover {
3039
- color: hsl(var(--tm-accent-foreground) / 0.8);
3010
+ .hover\:text-accent\/80:hover {
3011
+ color: hsl(var(--tm-accent) / 0.8);
3040
3012
  }
3041
3013
  .hover\:text-destructive\/80:hover {
3042
3014
  color: hsl(var(--destructive) / 0.8);
@@ -3044,9 +3016,6 @@ body {
3044
3016
  .hover\:text-foreground:hover {
3045
3017
  color: hsl(var(--foreground));
3046
3018
  }
3047
- .hover\:text-primary:hover {
3048
- color: hsl(var(--tm-primary));
3049
- }
3050
3019
  .hover\:text-primary\/80:hover {
3051
3020
  color: hsl(var(--tm-primary) / 0.8);
3052
3021
  }
@@ -3077,13 +3046,6 @@ body {
3077
3046
  --tw-scale-y: 1.05;
3078
3047
  transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
3079
3048
  }
3080
- .focus\:opacity-100:focus {
3081
- opacity: 1;
3082
- }
3083
- .focus\:outline-none:focus {
3084
- outline: 2px solid transparent;
3085
- outline-offset: 2px;
3086
- }
3087
3049
  .focus\:outline:focus {
3088
3050
  outline-style: solid;
3089
3051
  }
@@ -3096,14 +3058,6 @@ body {
3096
3058
  .focus\:outline-ring:focus {
3097
3059
  outline-color: hsl(var(--ring));
3098
3060
  }
3099
- .focus\:ring-1:focus {
3100
- --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
3101
- --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);
3102
- box-shadow:
3103
- var(--tw-ring-offset-shadow),
3104
- var(--tw-ring-shadow),
3105
- var(--tw-shadow, 0 0 #0000);
3106
- }
3107
3061
  .focus-visible\:bg-\[hsl\(var\(--accent\)\)\]:focus-visible {
3108
3062
  background-color: hsl(var(--accent));
3109
3063
  }
@@ -3400,21 +3354,6 @@ body {
3400
3354
  .md\:justify-end {
3401
3355
  justify-content: flex-end;
3402
3356
  }
3403
- .md\:text-3xl {
3404
- font-size: clamp(1.875rem, 1.5rem + 1.875vw, 2.5rem);
3405
- line-height: 2.25rem;
3406
- letter-spacing: -0.05em;
3407
- }
3408
- .md\:text-4xl {
3409
- font-size: clamp(2.25rem, 1.75rem + 2.5vw, 3rem);
3410
- line-height: 2.5rem;
3411
- letter-spacing: -0.025em;
3412
- }
3413
- .md\:text-5xl {
3414
- font-size: clamp(3rem, 2rem + 5vw, 4rem);
3415
- line-height: 1;
3416
- letter-spacing: -0.025em;
3417
- }
3418
3357
  .md\:text-sm {
3419
3358
  font-size: clamp(0.875rem, 0.8rem + 0.25vw, 1rem);
3420
3359
  line-height: 1.25rem;
@@ -3434,16 +3373,6 @@ body {
3434
3373
  .lg\:gap-xl {
3435
3374
  gap: 2rem;
3436
3375
  }
3437
- .lg\:text-5xl {
3438
- font-size: clamp(3rem, 2rem + 5vw, 4rem);
3439
- line-height: 1;
3440
- letter-spacing: -0.025em;
3441
- }
3442
- .lg\:text-6xl {
3443
- font-size: clamp(3.75rem, 2.5rem + 6.25vw, 5rem);
3444
- line-height: 1;
3445
- letter-spacing: -0.05em;
3446
- }
3447
3376
  }
3448
3377
  @media (min-width: 1280px) {
3449
3378
  .xl\:grid-cols-4 {
@@ -121,6 +121,74 @@ var init_default = __esm({
121
121
  }
122
122
  });
123
123
 
124
+ // src/themes/--help.ts
125
+ var help_exports = {};
126
+ __export(help_exports, {
127
+ helpTheme: () => helpTheme
128
+ });
129
+ var helpTheme;
130
+ var init_help = __esm({
131
+ "src/themes/--help.ts"() {
132
+ helpTheme = {
133
+ name: "--help",
134
+ description: "Custom theme: Help"
135
+ // Override primary colors (optional)
136
+ // primaryColors: {
137
+ // 500: "210 75% 45%", // HSL format
138
+ // 600: "210 70% 40%",
139
+ // },
140
+ // Override accent colors (optional)
141
+ // accentColors: {
142
+ // 500: "285 80% 60%",
143
+ // },
144
+ // Override secondary colors (optional)
145
+ // secondaryColors: {
146
+ // 500: "170 90% 45%",
147
+ // },
148
+ // Override base colors for day mode (optional)
149
+ // baseColorsDay: {
150
+ // background: "0 0% 100%",
151
+ // foreground: "0 0% 9%",
152
+ // },
153
+ // Override base colors for night mode (optional)
154
+ // baseColorsNight: {
155
+ // background: "240 10% 3.9%",
156
+ // foreground: "0 0% 89.8%",
157
+ // },
158
+ // Override surface colors for day mode (optional)
159
+ // surfaceColorsDay: {
160
+ // base: "0 0% 100%",
161
+ // elevated1: "0 0% 98%",
162
+ // },
163
+ // Override surface colors for night mode (optional)
164
+ // surfaceColorsNight: {
165
+ // base: "240 10% 2%",
166
+ // elevated1: "240 10% 3%",
167
+ // },
168
+ // Override semantic colors for day mode (optional)
169
+ // semanticColorsDay: {
170
+ // success: "145 75% 40%",
171
+ // error: "0 84.2% 60.2%",
172
+ // },
173
+ // Override semantic colors for night mode (optional)
174
+ // semanticColorsNight: {
175
+ // success: "145 70% 48%",
176
+ // error: "0 62.8% 30.6%",
177
+ // },
178
+ // Override text colors for day mode (optional)
179
+ // textColorsDay: {
180
+ // primary: "0 0% 9%",
181
+ // secondary: "0 0% 45%",
182
+ // },
183
+ // Override text colors for night mode (optional)
184
+ // textColorsNight: {
185
+ // primary: "0 0% 89.8%",
186
+ // secondary: "0 0% 65%",
187
+ // },
188
+ };
189
+ }
190
+ });
191
+
124
192
  // src/FOUNDATION/tokens/colors.ts
125
193
  var primaryColors = {
126
194
  50: "210 40% 98%",
@@ -2430,7 +2498,8 @@ function removeBrandOverrides(namespace) {
2430
2498
  var themes = {
2431
2499
  default: () => Promise.resolve().then(() => (init_default(), default_exports)).then((m) => m.defaultTheme),
2432
2500
  dark: () => Promise.resolve().then(() => (init_dark(), dark_exports)).then((m) => m.darkTheme),
2433
- brand: () => Promise.resolve().then(() => (init_brand(), brand_exports)).then((m) => m.brandTheme)
2501
+ brand: () => Promise.resolve().then(() => (init_brand(), brand_exports)).then((m) => m.brandTheme),
2502
+ "--help": () => Promise.resolve().then(() => (init_help(), help_exports)).then((m) => m.helpTheme)
2434
2503
  };
2435
2504
  async function getTheme(name) {
2436
2505
  const themeLoader = themes[name];
@@ -3572,21 +3641,23 @@ function ThemeProvider({
3572
3641
  applyDocumentTheme(initialMode, initialTheme, initialBrand);
3573
3642
  if (typeof document !== "undefined" && document.documentElement) {
3574
3643
  setTimeout(() => {
3575
- const afterApply = document.documentElement.style.getPropertyValue("--tm-primary");
3576
- fetch("http://127.0.0.1:7243/ingest/ff5d1e20-0815-4ca0-af82-fcbd3cfa35b1", {
3577
- method: "POST",
3578
- headers: { "Content-Type": "application/json" },
3579
- body: JSON.stringify({
3580
- location: "ThemeProvider.tsx:289",
3581
- message: "ThemeProvider useEffect after applyDocumentTheme",
3582
- data: { afterValue: afterApply, hasValue: !!afterApply },
3583
- timestamp: Date.now(),
3584
- sessionId: "debug-session",
3585
- runId: "run1",
3586
- hypothesisId: "C"
3587
- })
3588
- }).catch(() => {
3589
- });
3644
+ if (typeof document !== "undefined" && document.documentElement) {
3645
+ const afterApply = document.documentElement.style.getPropertyValue("--tm-primary");
3646
+ fetch("http://127.0.0.1:7243/ingest/ff5d1e20-0815-4ca0-af82-fcbd3cfa35b1", {
3647
+ method: "POST",
3648
+ headers: { "Content-Type": "application/json" },
3649
+ body: JSON.stringify({
3650
+ location: "ThemeProvider.tsx:289",
3651
+ message: "ThemeProvider useEffect after applyDocumentTheme",
3652
+ data: { afterValue: afterApply, hasValue: !!afterApply },
3653
+ timestamp: Date.now(),
3654
+ sessionId: "debug-session",
3655
+ runId: "run1",
3656
+ hypothesisId: "C"
3657
+ })
3658
+ }).catch(() => {
3659
+ });
3660
+ }
3590
3661
  }, 100);
3591
3662
  }
3592
3663
  persistMode(initialMode, storageKey);
@@ -115,6 +115,74 @@ var init_default = __esm({
115
115
  }
116
116
  });
117
117
 
118
+ // src/themes/--help.ts
119
+ var help_exports = {};
120
+ __export(help_exports, {
121
+ helpTheme: () => helpTheme
122
+ });
123
+ var helpTheme;
124
+ var init_help = __esm({
125
+ "src/themes/--help.ts"() {
126
+ helpTheme = {
127
+ name: "--help",
128
+ description: "Custom theme: Help"
129
+ // Override primary colors (optional)
130
+ // primaryColors: {
131
+ // 500: "210 75% 45%", // HSL format
132
+ // 600: "210 70% 40%",
133
+ // },
134
+ // Override accent colors (optional)
135
+ // accentColors: {
136
+ // 500: "285 80% 60%",
137
+ // },
138
+ // Override secondary colors (optional)
139
+ // secondaryColors: {
140
+ // 500: "170 90% 45%",
141
+ // },
142
+ // Override base colors for day mode (optional)
143
+ // baseColorsDay: {
144
+ // background: "0 0% 100%",
145
+ // foreground: "0 0% 9%",
146
+ // },
147
+ // Override base colors for night mode (optional)
148
+ // baseColorsNight: {
149
+ // background: "240 10% 3.9%",
150
+ // foreground: "0 0% 89.8%",
151
+ // },
152
+ // Override surface colors for day mode (optional)
153
+ // surfaceColorsDay: {
154
+ // base: "0 0% 100%",
155
+ // elevated1: "0 0% 98%",
156
+ // },
157
+ // Override surface colors for night mode (optional)
158
+ // surfaceColorsNight: {
159
+ // base: "240 10% 2%",
160
+ // elevated1: "240 10% 3%",
161
+ // },
162
+ // Override semantic colors for day mode (optional)
163
+ // semanticColorsDay: {
164
+ // success: "145 75% 40%",
165
+ // error: "0 84.2% 60.2%",
166
+ // },
167
+ // Override semantic colors for night mode (optional)
168
+ // semanticColorsNight: {
169
+ // success: "145 70% 48%",
170
+ // error: "0 62.8% 30.6%",
171
+ // },
172
+ // Override text colors for day mode (optional)
173
+ // textColorsDay: {
174
+ // primary: "0 0% 9%",
175
+ // secondary: "0 0% 45%",
176
+ // },
177
+ // Override text colors for night mode (optional)
178
+ // textColorsNight: {
179
+ // primary: "0 0% 89.8%",
180
+ // secondary: "0 0% 65%",
181
+ // },
182
+ };
183
+ }
184
+ });
185
+
118
186
  // src/FOUNDATION/tokens/colors.ts
119
187
  var primaryColors = {
120
188
  50: "210 40% 98%",
@@ -2424,7 +2492,8 @@ function removeBrandOverrides(namespace) {
2424
2492
  var themes = {
2425
2493
  default: () => Promise.resolve().then(() => (init_default(), default_exports)).then((m) => m.defaultTheme),
2426
2494
  dark: () => Promise.resolve().then(() => (init_dark(), dark_exports)).then((m) => m.darkTheme),
2427
- brand: () => Promise.resolve().then(() => (init_brand(), brand_exports)).then((m) => m.brandTheme)
2495
+ brand: () => Promise.resolve().then(() => (init_brand(), brand_exports)).then((m) => m.brandTheme),
2496
+ "--help": () => Promise.resolve().then(() => (init_help(), help_exports)).then((m) => m.helpTheme)
2428
2497
  };
2429
2498
  async function getTheme(name) {
2430
2499
  const themeLoader = themes[name];
@@ -3566,21 +3635,23 @@ function ThemeProvider({
3566
3635
  applyDocumentTheme(initialMode, initialTheme, initialBrand);
3567
3636
  if (typeof document !== "undefined" && document.documentElement) {
3568
3637
  setTimeout(() => {
3569
- const afterApply = document.documentElement.style.getPropertyValue("--tm-primary");
3570
- fetch("http://127.0.0.1:7243/ingest/ff5d1e20-0815-4ca0-af82-fcbd3cfa35b1", {
3571
- method: "POST",
3572
- headers: { "Content-Type": "application/json" },
3573
- body: JSON.stringify({
3574
- location: "ThemeProvider.tsx:289",
3575
- message: "ThemeProvider useEffect after applyDocumentTheme",
3576
- data: { afterValue: afterApply, hasValue: !!afterApply },
3577
- timestamp: Date.now(),
3578
- sessionId: "debug-session",
3579
- runId: "run1",
3580
- hypothesisId: "C"
3581
- })
3582
- }).catch(() => {
3583
- });
3638
+ if (typeof document !== "undefined" && document.documentElement) {
3639
+ const afterApply = document.documentElement.style.getPropertyValue("--tm-primary");
3640
+ fetch("http://127.0.0.1:7243/ingest/ff5d1e20-0815-4ca0-af82-fcbd3cfa35b1", {
3641
+ method: "POST",
3642
+ headers: { "Content-Type": "application/json" },
3643
+ body: JSON.stringify({
3644
+ location: "ThemeProvider.tsx:289",
3645
+ message: "ThemeProvider useEffect after applyDocumentTheme",
3646
+ data: { afterValue: afterApply, hasValue: !!afterApply },
3647
+ timestamp: Date.now(),
3648
+ sessionId: "debug-session",
3649
+ runId: "run1",
3650
+ hypothesisId: "C"
3651
+ })
3652
+ }).catch(() => {
3653
+ });
3654
+ }
3584
3655
  }, 100);
3585
3656
  }
3586
3657
  persistMode(initialMode, storageKey);
@@ -660,15 +660,16 @@ var BUTTON_TOKENS = {
660
660
  /**
661
661
  * Icon size within buttons by button size
662
662
  * Scales proportionally with button size for visual balance
663
+ * Contains full SVG selector classes for direct use in CVA
663
664
  */
664
665
  iconSize: {
665
- sm: "size-3.5",
666
+ sm: "[&_svg]:w-3.5 [&_svg]:h-3.5",
666
667
  // 14px (0.875rem) - smaller icon for small buttons
667
- md: "size-4",
668
+ md: "[&_svg]:w-4 [&_svg]:h-4",
668
669
  // 16px (1rem) - medium icon for medium buttons
669
- lg: "size-5",
670
+ lg: "[&_svg]:w-5 [&_svg]:h-5",
670
671
  // 20px (1.25rem) - larger icon for large buttons
671
- icon: "size-4"
672
+ icon: "[&_svg]:w-4 [&_svg]:h-4"
672
673
  // 16px (1rem) - medium icon for icon-only buttons
673
674
  },
674
675
  /**