uidex 0.3.0 → 0.4.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.
@@ -135,57 +135,57 @@ import {
135
135
  var KIND_STYLE = {
136
136
  route: {
137
137
  icon: RouteIcon,
138
- tone: "text-blue-700 dark:text-blue-300",
139
- chip: "bg-blue-400/20 text-blue-700 group-data-hover:bg-blue-400/30 dark:bg-blue-400/10 dark:text-blue-300 dark:group-data-hover:bg-blue-400/15",
138
+ tone: "text-blue-700 dark:text-blue-400",
139
+ chip: "bg-blue-50 text-blue-700 inset-ring inset-ring-blue-700/10 group-data-hover:bg-blue-100 dark:bg-blue-400/10 dark:text-blue-400 dark:inset-ring-blue-400/30 dark:group-data-hover:bg-blue-400/20",
140
140
  color: "#60a5fa",
141
141
  label: "Route"
142
142
  },
143
143
  page: {
144
144
  icon: FileText,
145
- tone: "text-emerald-700 dark:text-emerald-300",
146
- chip: "bg-emerald-400/20 text-emerald-700 group-data-hover:bg-emerald-400/30 dark:bg-emerald-400/10 dark:text-emerald-300 dark:group-data-hover:bg-emerald-400/15",
145
+ tone: "text-emerald-700 dark:text-emerald-400",
146
+ chip: "bg-emerald-50 text-emerald-700 inset-ring inset-ring-emerald-600/20 group-data-hover:bg-emerald-100 dark:bg-emerald-400/10 dark:text-emerald-400 dark:inset-ring-emerald-500/20 dark:group-data-hover:bg-emerald-400/20",
147
147
  color: "#34d399",
148
148
  label: "Page"
149
149
  },
150
150
  feature: {
151
151
  icon: Sparkles,
152
- tone: "text-amber-700 dark:text-amber-300",
153
- chip: "bg-amber-400/20 text-amber-700 group-data-hover:bg-amber-400/30 dark:bg-amber-400/10 dark:text-amber-300 dark:group-data-hover:bg-amber-400/15",
152
+ tone: "text-amber-700 dark:text-amber-500",
153
+ chip: "bg-amber-50 text-amber-800 inset-ring inset-ring-amber-600/20 group-data-hover:bg-amber-100 dark:bg-amber-400/10 dark:text-amber-500 dark:inset-ring-amber-400/20 dark:group-data-hover:bg-amber-400/20",
154
154
  color: "#fbbf24",
155
155
  label: "Feature"
156
156
  },
157
157
  widget: {
158
158
  icon: LayoutGrid,
159
- tone: "text-violet-700 dark:text-violet-300",
160
- chip: "bg-violet-400/20 text-violet-700 group-data-hover:bg-violet-400/30 dark:bg-violet-400/10 dark:text-violet-300 dark:group-data-hover:bg-violet-400/15",
159
+ tone: "text-violet-700 dark:text-violet-400",
160
+ chip: "bg-violet-50 text-violet-700 inset-ring inset-ring-violet-700/10 group-data-hover:bg-violet-100 dark:bg-violet-400/10 dark:text-violet-400 dark:inset-ring-violet-400/30 dark:group-data-hover:bg-violet-400/20",
161
161
  color: "#a78bfa",
162
162
  label: "Widget"
163
163
  },
164
164
  region: {
165
165
  icon: LayoutPanelTop,
166
- tone: "text-cyan-700 dark:text-cyan-300",
167
- chip: "bg-cyan-400/20 text-cyan-700 group-data-hover:bg-cyan-400/30 dark:bg-cyan-400/10 dark:text-cyan-300 dark:group-data-hover:bg-cyan-400/15",
166
+ tone: "text-cyan-700 dark:text-cyan-400",
167
+ chip: "bg-cyan-50 text-cyan-700 inset-ring inset-ring-cyan-700/10 group-data-hover:bg-cyan-100 dark:bg-cyan-400/10 dark:text-cyan-400 dark:inset-ring-cyan-400/30 dark:group-data-hover:bg-cyan-400/20",
168
168
  color: "#22d3ee",
169
169
  label: "Region"
170
170
  },
171
171
  element: {
172
172
  icon: MousePointerClick,
173
- tone: "text-rose-700 dark:text-rose-300",
174
- chip: "bg-rose-400/20 text-rose-700 group-data-hover:bg-rose-400/30 dark:bg-rose-400/10 dark:text-rose-300 dark:group-data-hover:bg-rose-400/15",
173
+ tone: "text-rose-700 dark:text-rose-400",
174
+ chip: "bg-rose-50 text-rose-700 inset-ring inset-ring-rose-600/10 group-data-hover:bg-rose-100 dark:bg-rose-400/10 dark:text-rose-400 dark:inset-ring-rose-400/20 dark:group-data-hover:bg-rose-400/20",
175
175
  color: "#fb7185",
176
176
  label: "Element"
177
177
  },
178
178
  primitive: {
179
179
  icon: Circle,
180
- tone: "text-slate-700 dark:text-slate-300",
181
- chip: "bg-slate-400/20 text-slate-700 group-data-hover:bg-slate-400/30 dark:bg-slate-400/10 dark:text-slate-300 dark:group-data-hover:bg-slate-400/15",
180
+ tone: "text-slate-600 dark:text-slate-400",
181
+ chip: "bg-slate-50 text-slate-600 inset-ring inset-ring-slate-500/10 group-data-hover:bg-slate-100 dark:bg-slate-400/10 dark:text-slate-400 dark:inset-ring-slate-400/20 dark:group-data-hover:bg-slate-400/20",
182
182
  color: "#94a3b8",
183
183
  label: "Primitive"
184
184
  },
185
185
  flow: {
186
186
  icon: Workflow,
187
- tone: "text-fuchsia-700 dark:text-fuchsia-300",
188
- chip: "bg-fuchsia-400/20 text-fuchsia-700 group-data-hover:bg-fuchsia-400/30 dark:bg-fuchsia-400/10 dark:text-fuchsia-300 dark:group-data-hover:bg-fuchsia-400/15",
187
+ tone: "text-fuchsia-700 dark:text-fuchsia-400",
188
+ chip: "bg-fuchsia-50 text-fuchsia-700 inset-ring inset-ring-fuchsia-700/10 group-data-hover:bg-fuchsia-100 dark:bg-fuchsia-400/10 dark:text-fuchsia-400 dark:inset-ring-fuchsia-400/20 dark:group-data-hover:bg-fuchsia-400/20",
189
189
  color: "#e879f9",
190
190
  label: "Flow"
191
191
  }
@@ -701,33 +701,46 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
701
701
  --color-red-400: oklch(70.4% 0.191 22.216);
702
702
  --color-red-500: oklch(63.7% 0.237 25.331);
703
703
  --color-red-700: oklch(50.5% 0.213 27.518);
704
- --color-amber-300: oklch(87.9% 0.169 91.605);
704
+ --color-amber-50: oklch(98.7% 0.022 95.277);
705
+ --color-amber-100: oklch(96.2% 0.059 95.617);
705
706
  --color-amber-400: oklch(82.8% 0.189 84.429);
706
707
  --color-amber-500: oklch(76.9% 0.188 70.08);
708
+ --color-amber-600: oklch(66.6% 0.179 58.318);
707
709
  --color-amber-700: oklch(55.5% 0.163 48.998);
708
- --color-emerald-300: oklch(84.5% 0.143 164.978);
710
+ --color-amber-800: oklch(47.3% 0.137 46.201);
711
+ --color-emerald-50: oklch(97.9% 0.021 166.113);
712
+ --color-emerald-100: oklch(95% 0.052 163.051);
709
713
  --color-emerald-400: oklch(76.5% 0.177 163.223);
710
714
  --color-emerald-500: oklch(69.6% 0.17 162.48);
715
+ --color-emerald-600: oklch(59.6% 0.145 163.225);
711
716
  --color-emerald-700: oklch(50.8% 0.118 165.612);
712
- --color-cyan-300: oklch(86.5% 0.127 207.078);
717
+ --color-cyan-50: oklch(98.4% 0.019 200.873);
718
+ --color-cyan-100: oklch(95.6% 0.045 203.388);
713
719
  --color-cyan-400: oklch(78.9% 0.154 211.53);
714
720
  --color-cyan-700: oklch(52% 0.105 223.128);
715
- --color-blue-300: oklch(80.9% 0.105 251.813);
721
+ --color-blue-50: oklch(97% 0.014 254.604);
722
+ --color-blue-100: oklch(93.2% 0.032 255.585);
716
723
  --color-blue-400: oklch(70.7% 0.165 254.624);
717
724
  --color-blue-500: oklch(62.3% 0.214 259.815);
718
725
  --color-blue-700: oklch(48.8% 0.243 264.376);
719
- --color-violet-300: oklch(81.1% 0.111 293.571);
726
+ --color-violet-50: oklch(96.9% 0.016 293.756);
727
+ --color-violet-100: oklch(94.3% 0.029 294.588);
720
728
  --color-violet-400: oklch(70.2% 0.183 293.541);
721
729
  --color-violet-700: oklch(49.1% 0.27 292.581);
722
- --color-fuchsia-300: oklch(83.3% 0.145 321.434);
730
+ --color-fuchsia-50: oklch(97.7% 0.017 320.058);
731
+ --color-fuchsia-100: oklch(95.2% 0.037 318.852);
723
732
  --color-fuchsia-400: oklch(74% 0.238 322.16);
724
733
  --color-fuchsia-700: oklch(51.8% 0.253 323.949);
725
- --color-rose-300: oklch(81% 0.117 11.638);
734
+ --color-rose-50: oklch(96.9% 0.015 12.422);
735
+ --color-rose-100: oklch(94.1% 0.03 12.58);
726
736
  --color-rose-400: oklch(71.2% 0.194 13.428);
737
+ --color-rose-600: oklch(58.6% 0.253 17.585);
727
738
  --color-rose-700: oklch(51.4% 0.222 16.935);
728
- --color-slate-300: oklch(86.9% 0.022 252.894);
739
+ --color-slate-50: oklch(98.4% 0.003 247.858);
740
+ --color-slate-100: oklch(96.8% 0.007 247.896);
729
741
  --color-slate-400: oklch(70.4% 0.04 256.788);
730
- --color-slate-700: oklch(37.2% 0.044 257.287);
742
+ --color-slate-500: oklch(55.4% 0.046 257.417);
743
+ --color-slate-600: oklch(44.6% 0.043 257.281);
731
744
  --color-neutral-50: oklch(98.5% 0 0);
732
745
  --color-neutral-100: oklch(97% 0 0);
733
746
  --color-neutral-400: oklch(70.8% 0 0);
@@ -737,6 +750,7 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
737
750
  --color-black: #000;
738
751
  --color-white: #fff;
739
752
  --spacing: 0.25rem;
753
+ --container-sm: 24rem;
740
754
  --container-xl: 36rem;
741
755
  --text-xs: 0.75rem;
742
756
  --text-xs--line-height: calc(1 / 0.75);
@@ -744,20 +758,27 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
744
758
  --text-sm--line-height: calc(1.25 / 0.875);
745
759
  --text-base: 1rem;
746
760
  --text-base--line-height: calc(1.5 / 1);
761
+ --text-xl: 1.25rem;
762
+ --text-xl--line-height: calc(1.75 / 1.25);
747
763
  --font-weight-normal: 400;
748
764
  --font-weight-medium: 500;
749
765
  --font-weight-semibold: 600;
766
+ --tracking-tight: -0.025em;
750
767
  --tracking-widest: 0.1em;
751
768
  --leading-relaxed: 1.625;
769
+ --radius-md: calc(var(--radius) * 0.8);
770
+ --radius-lg: var(--radius);
752
771
  --radius-xl: calc(var(--radius) * 1.4);
753
772
  --radius-2xl: calc(var(--radius) * 1.8);
754
773
  --ease-out: cubic-bezier(0, 0, 0.2, 1);
774
+ --animate-spin: spin 1s linear infinite;
755
775
  --blur-sm: 8px;
756
776
  --default-transition-duration: 150ms;
757
777
  --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
758
778
  --default-font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI",
759
779
  Roboto, sans-serif;
760
780
  --default-mono-font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
781
+ --color-muted: var(--muted);
761
782
  --color-border: var(--border);
762
783
  }
763
784
  }
@@ -913,6 +934,9 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
913
934
  .pointer-events-none {
914
935
  pointer-events: none;
915
936
  }
937
+ .\\!visible {
938
+ visibility: visible !important;
939
+ }
916
940
  .invisible {
917
941
  visibility: hidden;
918
942
  }
@@ -951,15 +975,18 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
951
975
  .right-2 {
952
976
  right: calc(var(--spacing) * 2);
953
977
  }
954
- .right-3 {
955
- right: calc(var(--spacing) * 3);
978
+ .bottom-px {
979
+ bottom: 1px;
956
980
  }
957
- .bottom-12 {
958
- bottom: calc(var(--spacing) * 12);
981
+ .z-1 {
982
+ z-index: 1;
959
983
  }
960
984
  .z-10 {
961
985
  z-index: 10;
962
986
  }
987
+ .z-\\[2147483647\\] {
988
+ z-index: 2147483647;
989
+ }
963
990
  .container {
964
991
  width: 100%;
965
992
  @media (width >= 40rem) {
@@ -1014,9 +1041,6 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
1014
1041
  .inline {
1015
1042
  display: inline;
1016
1043
  }
1017
- .inline-block {
1018
- display: inline-block;
1019
- }
1020
1044
  .inline-flex {
1021
1045
  display: inline-flex;
1022
1046
  }
@@ -1092,6 +1116,12 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
1092
1116
  .h-px {
1093
1117
  height: 1px;
1094
1118
  }
1119
+ .max-h-32 {
1120
+ max-height: calc(var(--spacing) * 32);
1121
+ }
1122
+ .max-h-full {
1123
+ max-height: 100%;
1124
+ }
1095
1125
  .min-h-0 {
1096
1126
  min-height: calc(var(--spacing) * 0);
1097
1127
  }
@@ -1110,6 +1140,12 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
1110
1140
  .w-4 {
1111
1141
  width: calc(var(--spacing) * 4);
1112
1142
  }
1143
+ .w-20 {
1144
+ width: calc(var(--spacing) * 20);
1145
+ }
1146
+ .w-36 {
1147
+ width: calc(var(--spacing) * 36);
1148
+ }
1113
1149
  .w-56 {
1114
1150
  width: calc(var(--spacing) * 56);
1115
1151
  }
@@ -1122,6 +1158,12 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
1122
1158
  .w-px {
1123
1159
  width: 1px;
1124
1160
  }
1161
+ .max-w-full {
1162
+ max-width: 100%;
1163
+ }
1164
+ .max-w-sm {
1165
+ max-width: var(--container-sm);
1166
+ }
1125
1167
  .max-w-xl {
1126
1168
  max-width: var(--container-xl);
1127
1169
  }
@@ -1149,9 +1191,41 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
1149
1191
  .shrink-0 {
1150
1192
  flex-shrink: 0;
1151
1193
  }
1194
+ .origin-bottom-left {
1195
+ transform-origin: 0 100%;
1196
+ }
1197
+ .origin-bottom-right {
1198
+ transform-origin: 100% 100%;
1199
+ }
1200
+ .-translate-x-0\\.5 {
1201
+ --tw-translate-x: calc(var(--spacing) * -0.5);
1202
+ translate: var(--tw-translate-x) var(--tw-translate-y);
1203
+ }
1204
+ .translate-x-0\\.5 {
1205
+ --tw-translate-x: calc(var(--spacing) * 0.5);
1206
+ translate: var(--tw-translate-x) var(--tw-translate-y);
1207
+ }
1208
+ .scale-84 {
1209
+ --tw-scale-x: 84%;
1210
+ --tw-scale-y: 84%;
1211
+ --tw-scale-z: 84%;
1212
+ scale: var(--tw-scale-x) var(--tw-scale-y);
1213
+ }
1214
+ .-rotate-10 {
1215
+ rotate: calc(10deg * -1);
1216
+ }
1217
+ .rotate-10 {
1218
+ rotate: 10deg;
1219
+ }
1152
1220
  .transform {
1153
1221
  transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);
1154
1222
  }
1223
+ .animate-skeleton {
1224
+ animation: skeleton 2s -1s infinite linear;
1225
+ }
1226
+ .animate-spin {
1227
+ animation: var(--animate-spin);
1228
+ }
1155
1229
  .cursor-default {
1156
1230
  cursor: default;
1157
1231
  }
@@ -1176,9 +1250,6 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
1176
1250
  .flex-row {
1177
1251
  flex-direction: row;
1178
1252
  }
1179
- .flex-wrap {
1180
- flex-wrap: wrap;
1181
- }
1182
1253
  .items-center {
1183
1254
  align-items: center;
1184
1255
  }
@@ -1212,6 +1283,9 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
1212
1283
  .gap-4 {
1213
1284
  gap: calc(var(--spacing) * 4);
1214
1285
  }
1286
+ .gap-6 {
1287
+ gap: calc(var(--spacing) * 6);
1288
+ }
1215
1289
  .self-start {
1216
1290
  align-self: flex-start;
1217
1291
  }
@@ -1232,6 +1306,9 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
1232
1306
  .rounded-\\[0\\.25rem\\] {
1233
1307
  border-radius: 0.25rem;
1234
1308
  }
1309
+ .rounded-full {
1310
+ border-radius: calc(infinity * 1px);
1311
+ }
1235
1312
  .rounded-lg {
1236
1313
  border-radius: var(--radius);
1237
1314
  }
@@ -1241,6 +1318,9 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
1241
1318
  .rounded-sm {
1242
1319
  border-radius: calc(var(--radius) * 0.6);
1243
1320
  }
1321
+ .rounded-xl {
1322
+ border-radius: calc(var(--radius) * 1.4);
1323
+ }
1244
1324
  .rounded-t-xl {
1245
1325
  border-top-left-radius: calc(var(--radius) * 1.4);
1246
1326
  border-top-right-radius: calc(var(--radius) * 1.4);
@@ -1261,12 +1341,24 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
1261
1341
  border-bottom-style: var(--tw-border-style);
1262
1342
  border-bottom-width: 0px;
1263
1343
  }
1344
+ .border-amber-500\\/40 {
1345
+ border-color: color-mix(in srgb, oklch(76.9% 0.188 70.08) 40%, transparent);
1346
+ @supports (color: color-mix(in lab, red, red)) {
1347
+ border-color: color-mix(in oklab, var(--color-amber-500) 40%, transparent);
1348
+ }
1349
+ }
1264
1350
  .border-border {
1265
1351
  border-color: var(--border);
1266
1352
  }
1267
1353
  .border-destructive {
1268
1354
  border-color: var(--destructive);
1269
1355
  }
1356
+ .border-info\\/40 {
1357
+ border-color: var(--info);
1358
+ @supports (color: color-mix(in lab, red, red)) {
1359
+ border-color: color-mix(in oklab, var(--info) 40%, transparent);
1360
+ }
1361
+ }
1270
1362
  .border-input {
1271
1363
  border-color: var(--input);
1272
1364
  }
@@ -1276,10 +1368,13 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
1276
1368
  .border-transparent {
1277
1369
  border-color: transparent;
1278
1370
  }
1279
- .bg-amber-400\\/20 {
1280
- background-color: color-mix(in srgb, oklch(82.8% 0.189 84.429) 20%, transparent);
1371
+ .bg-amber-50 {
1372
+ background-color: var(--color-amber-50);
1373
+ }
1374
+ .bg-amber-500\\/15 {
1375
+ background-color: color-mix(in srgb, oklch(76.9% 0.188 70.08) 15%, transparent);
1281
1376
  @supports (color: color-mix(in lab, red, red)) {
1282
- background-color: color-mix(in oklab, var(--color-amber-400) 20%, transparent);
1377
+ background-color: color-mix(in oklab, var(--color-amber-500) 15%, transparent);
1283
1378
  }
1284
1379
  }
1285
1380
  .bg-background {
@@ -1291,20 +1386,23 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
1291
1386
  background-color: color-mix(in oklab, var(--color-black) 32%, transparent);
1292
1387
  }
1293
1388
  }
1294
- .bg-blue-400\\/20 {
1295
- background-color: color-mix(in srgb, oklch(70.7% 0.165 254.624) 20%, transparent);
1389
+ .bg-black\\/80 {
1390
+ background-color: color-mix(in srgb, #000 80%, transparent);
1296
1391
  @supports (color: color-mix(in lab, red, red)) {
1297
- background-color: color-mix(in oklab, var(--color-blue-400) 20%, transparent);
1392
+ background-color: color-mix(in oklab, var(--color-black) 80%, transparent);
1298
1393
  }
1299
1394
  }
1395
+ .bg-blue-50 {
1396
+ background-color: var(--color-blue-50);
1397
+ }
1300
1398
  .bg-border {
1301
1399
  background-color: var(--border);
1302
1400
  }
1303
- .bg-cyan-400\\/20 {
1304
- background-color: color-mix(in srgb, oklch(78.9% 0.154 211.53) 20%, transparent);
1305
- @supports (color: color-mix(in lab, red, red)) {
1306
- background-color: color-mix(in oklab, var(--color-cyan-400) 20%, transparent);
1307
- }
1401
+ .bg-card {
1402
+ background-color: var(--card);
1403
+ }
1404
+ .bg-cyan-50 {
1405
+ background-color: var(--color-cyan-50);
1308
1406
  }
1309
1407
  .bg-destructive {
1310
1408
  background-color: var(--destructive);
@@ -1315,17 +1413,11 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
1315
1413
  background-color: color-mix(in oklab, var(--destructive) 10%, transparent);
1316
1414
  }
1317
1415
  }
1318
- .bg-emerald-400\\/20 {
1319
- background-color: color-mix(in srgb, oklch(76.5% 0.177 163.223) 20%, transparent);
1320
- @supports (color: color-mix(in lab, red, red)) {
1321
- background-color: color-mix(in oklab, var(--color-emerald-400) 20%, transparent);
1322
- }
1416
+ .bg-emerald-50 {
1417
+ background-color: var(--color-emerald-50);
1323
1418
  }
1324
- .bg-fuchsia-400\\/20 {
1325
- background-color: color-mix(in srgb, oklch(74% 0.238 322.16) 20%, transparent);
1326
- @supports (color: color-mix(in lab, red, red)) {
1327
- background-color: color-mix(in oklab, var(--color-fuchsia-400) 20%, transparent);
1328
- }
1419
+ .bg-fuchsia-50 {
1420
+ background-color: var(--color-fuchsia-50);
1329
1421
  }
1330
1422
  .bg-info\\/10 {
1331
1423
  background-color: var(--info);
@@ -1333,6 +1425,12 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
1333
1425
  background-color: color-mix(in oklab, var(--info) 10%, transparent);
1334
1426
  }
1335
1427
  }
1428
+ .bg-info\\/15 {
1429
+ background-color: var(--info);
1430
+ @supports (color: color-mix(in lab, red, red)) {
1431
+ background-color: color-mix(in oklab, var(--info) 15%, transparent);
1432
+ }
1433
+ }
1336
1434
  .bg-muted {
1337
1435
  background-color: var(--muted);
1338
1436
  }
@@ -1342,20 +1440,14 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
1342
1440
  .bg-primary {
1343
1441
  background-color: var(--primary);
1344
1442
  }
1345
- .bg-rose-400\\/20 {
1346
- background-color: color-mix(in srgb, oklch(71.2% 0.194 13.428) 20%, transparent);
1347
- @supports (color: color-mix(in lab, red, red)) {
1348
- background-color: color-mix(in oklab, var(--color-rose-400) 20%, transparent);
1349
- }
1443
+ .bg-rose-50 {
1444
+ background-color: var(--color-rose-50);
1350
1445
  }
1351
1446
  .bg-secondary {
1352
1447
  background-color: var(--secondary);
1353
1448
  }
1354
- .bg-slate-400\\/20 {
1355
- background-color: color-mix(in srgb, oklch(70.4% 0.04 256.788) 20%, transparent);
1356
- @supports (color: color-mix(in lab, red, red)) {
1357
- background-color: color-mix(in oklab, var(--color-slate-400) 20%, transparent);
1358
- }
1449
+ .bg-slate-50 {
1450
+ background-color: var(--color-slate-50);
1359
1451
  }
1360
1452
  .bg-success\\/10 {
1361
1453
  background-color: var(--success);
@@ -1366,11 +1458,8 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
1366
1458
  .bg-transparent {
1367
1459
  background-color: transparent;
1368
1460
  }
1369
- .bg-violet-400\\/20 {
1370
- background-color: color-mix(in srgb, oklch(70.2% 0.183 293.541) 20%, transparent);
1371
- @supports (color: color-mix(in lab, red, red)) {
1372
- background-color: color-mix(in oklab, var(--color-violet-400) 20%, transparent);
1373
- }
1461
+ .bg-violet-50 {
1462
+ background-color: var(--color-violet-50);
1374
1463
  }
1375
1464
  .bg-warning\\/10 {
1376
1465
  background-color: var(--warning);
@@ -1387,15 +1476,27 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
1387
1476
  .bg-no-repeat {
1388
1477
  background-repeat: no-repeat;
1389
1478
  }
1479
+ .object-cover {
1480
+ object-fit: cover;
1481
+ }
1482
+ .object-top {
1483
+ object-position: top;
1484
+ }
1390
1485
  .p-1 {
1391
1486
  padding: calc(var(--spacing) * 1);
1392
1487
  }
1488
+ .p-1\\.5 {
1489
+ padding: calc(var(--spacing) * 1.5);
1490
+ }
1393
1491
  .p-2 {
1394
1492
  padding: calc(var(--spacing) * 2);
1395
1493
  }
1396
1494
  .p-4 {
1397
1495
  padding: calc(var(--spacing) * 4);
1398
1496
  }
1497
+ .p-6 {
1498
+ padding: calc(var(--spacing) * 6);
1499
+ }
1399
1500
  .px-0 {
1400
1501
  padding-inline: calc(var(--spacing) * 0);
1401
1502
  }
@@ -1420,8 +1521,8 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
1420
1521
  .px-4 {
1421
1522
  padding-inline: calc(var(--spacing) * 4);
1422
1523
  }
1423
- .px-5 {
1424
- padding-inline: calc(var(--spacing) * 5);
1524
+ .px-6 {
1525
+ padding-inline: calc(var(--spacing) * 6);
1425
1526
  }
1426
1527
  .py-0 {
1427
1528
  padding-block: calc(var(--spacing) * 0);
@@ -1435,12 +1536,12 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
1435
1536
  .py-2 {
1436
1537
  padding-block: calc(var(--spacing) * 2);
1437
1538
  }
1438
- .py-3 {
1439
- padding-block: calc(var(--spacing) * 3);
1440
- }
1441
1539
  .py-4 {
1442
1540
  padding-block: calc(var(--spacing) * 4);
1443
1541
  }
1542
+ .py-12 {
1543
+ padding-block: calc(var(--spacing) * 12);
1544
+ }
1444
1545
  .py-\\[max\\(1rem\\,4vh\\)\\] {
1445
1546
  padding-block: max(1rem, 4vh);
1446
1547
  }
@@ -1481,6 +1582,10 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
1481
1582
  font-size: var(--text-sm);
1482
1583
  line-height: var(--tw-leading, var(--text-sm--line-height));
1483
1584
  }
1585
+ .text-xl {
1586
+ font-size: var(--text-xl);
1587
+ line-height: var(--tw-leading, var(--text-xl--line-height));
1588
+ }
1484
1589
  .text-xs {
1485
1590
  font-size: var(--text-xs);
1486
1591
  line-height: var(--tw-leading, var(--text-xs--line-height));
@@ -1504,10 +1609,17 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
1504
1609
  --tw-font-weight: var(--font-weight-semibold);
1505
1610
  font-weight: var(--font-weight-semibold);
1506
1611
  }
1612
+ .tracking-tight {
1613
+ --tw-tracking: var(--tracking-tight);
1614
+ letter-spacing: var(--tracking-tight);
1615
+ }
1507
1616
  .tracking-widest {
1508
1617
  --tw-tracking: var(--tracking-widest);
1509
1618
  letter-spacing: var(--tracking-widest);
1510
1619
  }
1620
+ .text-balance {
1621
+ text-wrap: balance;
1622
+ }
1511
1623
  .break-words {
1512
1624
  overflow-wrap: break-word;
1513
1625
  }
@@ -1517,9 +1629,15 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
1517
1629
  .whitespace-nowrap {
1518
1630
  white-space: nowrap;
1519
1631
  }
1632
+ .text-amber-600 {
1633
+ color: var(--color-amber-600);
1634
+ }
1520
1635
  .text-amber-700 {
1521
1636
  color: var(--color-amber-700);
1522
1637
  }
1638
+ .text-amber-800 {
1639
+ color: var(--color-amber-800);
1640
+ }
1523
1641
  .text-blue-700 {
1524
1642
  color: var(--color-blue-700);
1525
1643
  }
@@ -1562,8 +1680,8 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
1562
1680
  .text-secondary-foreground {
1563
1681
  color: var(--secondary-foreground);
1564
1682
  }
1565
- .text-slate-700 {
1566
- color: var(--color-slate-700);
1683
+ .text-slate-600 {
1684
+ color: var(--color-slate-600);
1567
1685
  }
1568
1686
  .text-success-foreground {
1569
1687
  color: var(--success-foreground);
@@ -1580,6 +1698,14 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
1580
1698
  .lowercase {
1581
1699
  text-transform: lowercase;
1582
1700
  }
1701
+ .ordinal {
1702
+ --tw-ordinal: ordinal;
1703
+ font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);
1704
+ }
1705
+ .tabular-nums {
1706
+ --tw-numeric-spacing: tabular-nums;
1707
+ font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,);
1708
+ }
1583
1709
  .line-through {
1584
1710
  text-decoration-line: line-through;
1585
1711
  }
@@ -1595,6 +1721,9 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
1595
1721
  .accent-primary {
1596
1722
  accent-color: var(--primary);
1597
1723
  }
1724
+ .opacity-50 {
1725
+ opacity: 50%;
1726
+ }
1598
1727
  .opacity-80 {
1599
1728
  opacity: 80%;
1600
1729
  }
@@ -1603,6 +1732,11 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
1603
1732
  --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, oklab(from rgb(0 0 0 / 0.1) l a b / 5%)), 0 4px 6px -4px var(--tw-shadow-color, oklab(from rgb(0 0 0 / 0.1) l a b / 5%));
1604
1733
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
1605
1734
  }
1735
+ .shadow-sm\\/5 {
1736
+ --tw-shadow-alpha: 5%;
1737
+ --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, oklab(from rgb(0 0 0 / 0.1) l a b / 5%)), 0 1px 2px -1px var(--tw-shadow-color, oklab(from rgb(0 0 0 / 0.1) l a b / 5%));
1738
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
1739
+ }
1606
1740
  .shadow-xs\\/5 {
1607
1741
  --tw-shadow-alpha: 5%;
1608
1742
  --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, oklab(from rgb(0 0 0 / 0.05) l a b / 5%));
@@ -1612,10 +1746,6 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
1612
1746
  --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
1613
1747
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
1614
1748
  }
1615
- .shadow-lg {
1616
- --tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / 0.1));
1617
- box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
1618
- }
1619
1749
  .shadow-none {
1620
1750
  --tw-shadow: 0 0 #0000;
1621
1751
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
@@ -1628,6 +1758,58 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
1628
1758
  --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
1629
1759
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
1630
1760
  }
1761
+ .inset-ring {
1762
+ --tw-inset-ring-shadow: inset 0 0 0 1px var(--tw-inset-ring-color, currentcolor);
1763
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
1764
+ }
1765
+ .inset-ring-amber-600\\/20 {
1766
+ --tw-inset-ring-color: color-mix(in srgb, oklch(66.6% 0.179 58.318) 20%, transparent);
1767
+ @supports (color: color-mix(in lab, red, red)) {
1768
+ --tw-inset-ring-color: color-mix(in oklab, var(--color-amber-600) 20%, transparent);
1769
+ }
1770
+ }
1771
+ .inset-ring-blue-700\\/10 {
1772
+ --tw-inset-ring-color: color-mix(in srgb, oklch(48.8% 0.243 264.376) 10%, transparent);
1773
+ @supports (color: color-mix(in lab, red, red)) {
1774
+ --tw-inset-ring-color: color-mix(in oklab, var(--color-blue-700) 10%, transparent);
1775
+ }
1776
+ }
1777
+ .inset-ring-cyan-700\\/10 {
1778
+ --tw-inset-ring-color: color-mix(in srgb, oklch(52% 0.105 223.128) 10%, transparent);
1779
+ @supports (color: color-mix(in lab, red, red)) {
1780
+ --tw-inset-ring-color: color-mix(in oklab, var(--color-cyan-700) 10%, transparent);
1781
+ }
1782
+ }
1783
+ .inset-ring-emerald-600\\/20 {
1784
+ --tw-inset-ring-color: color-mix(in srgb, oklch(59.6% 0.145 163.225) 20%, transparent);
1785
+ @supports (color: color-mix(in lab, red, red)) {
1786
+ --tw-inset-ring-color: color-mix(in oklab, var(--color-emerald-600) 20%, transparent);
1787
+ }
1788
+ }
1789
+ .inset-ring-fuchsia-700\\/10 {
1790
+ --tw-inset-ring-color: color-mix(in srgb, oklch(51.8% 0.253 323.949) 10%, transparent);
1791
+ @supports (color: color-mix(in lab, red, red)) {
1792
+ --tw-inset-ring-color: color-mix(in oklab, var(--color-fuchsia-700) 10%, transparent);
1793
+ }
1794
+ }
1795
+ .inset-ring-rose-600\\/10 {
1796
+ --tw-inset-ring-color: color-mix(in srgb, oklch(58.6% 0.253 17.585) 10%, transparent);
1797
+ @supports (color: color-mix(in lab, red, red)) {
1798
+ --tw-inset-ring-color: color-mix(in oklab, var(--color-rose-600) 10%, transparent);
1799
+ }
1800
+ }
1801
+ .inset-ring-slate-500\\/10 {
1802
+ --tw-inset-ring-color: color-mix(in srgb, oklch(55.4% 0.046 257.417) 10%, transparent);
1803
+ @supports (color: color-mix(in lab, red, red)) {
1804
+ --tw-inset-ring-color: color-mix(in oklab, var(--color-slate-500) 10%, transparent);
1805
+ }
1806
+ }
1807
+ .inset-ring-violet-700\\/10 {
1808
+ --tw-inset-ring-color: color-mix(in srgb, oklch(49.1% 0.27 292.581) 10%, transparent);
1809
+ @supports (color: color-mix(in lab, red, red)) {
1810
+ --tw-inset-ring-color: color-mix(in oklab, var(--color-violet-700) 10%, transparent);
1811
+ }
1812
+ }
1631
1813
  .outline {
1632
1814
  outline-style: var(--tw-outline-style);
1633
1815
  outline-width: 1px;
@@ -1671,76 +1853,61 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
1671
1853
  -webkit-user-select: none;
1672
1854
  user-select: none;
1673
1855
  }
1856
+ .\\[--skeleton-highlight\\:--alpha\\(var\\(--color-white\\)\\/64\\%\\)\\] {
1857
+ --skeleton-highlight: color-mix(in srgb, #fff 64%, transparent);
1858
+ @supports (color: color-mix(in lab, red, red)) {
1859
+ --skeleton-highlight: color-mix(in oklab, var(--color-white) 64%, transparent);
1860
+ }
1861
+ }
1862
+ .\\[background\\:linear-gradient\\(120deg\\,transparent_40\\%\\,var\\(--skeleton-highlight\\)\\,transparent_60\\%\\)_var\\(--color-muted\\)_0_0\\/200\\%_100\\%_fixed\\] {
1863
+ background: linear-gradient(120deg,transparent 40%,var(--skeleton-highlight),transparent 60%) var(--color-muted) 0 0/200% 100% fixed;
1864
+ }
1674
1865
  .\\[clip-path\\:inset\\(0_1px\\)\\] {
1675
1866
  clip-path: inset(0 1px);
1676
1867
  }
1677
1868
  .not-dark\\:bg-clip-padding {
1678
- &:not(*:is(.dark *)) {
1869
+ &:not(*:is(.dark *, :host(.dark) *)) {
1679
1870
  background-clip: padding-box;
1680
1871
  }
1681
1872
  }
1682
- .group-data-hover\\:bg-amber-400\\/30 {
1873
+ .group-data-hover\\:bg-amber-100 {
1683
1874
  &:is(:where(.group)[data-hover] *) {
1684
- background-color: color-mix(in srgb, oklch(82.8% 0.189 84.429) 30%, transparent);
1685
- @supports (color: color-mix(in lab, red, red)) {
1686
- background-color: color-mix(in oklab, var(--color-amber-400) 30%, transparent);
1687
- }
1875
+ background-color: var(--color-amber-100);
1688
1876
  }
1689
1877
  }
1690
- .group-data-hover\\:bg-blue-400\\/30 {
1878
+ .group-data-hover\\:bg-blue-100 {
1691
1879
  &:is(:where(.group)[data-hover] *) {
1692
- background-color: color-mix(in srgb, oklch(70.7% 0.165 254.624) 30%, transparent);
1693
- @supports (color: color-mix(in lab, red, red)) {
1694
- background-color: color-mix(in oklab, var(--color-blue-400) 30%, transparent);
1695
- }
1880
+ background-color: var(--color-blue-100);
1696
1881
  }
1697
1882
  }
1698
- .group-data-hover\\:bg-cyan-400\\/30 {
1883
+ .group-data-hover\\:bg-cyan-100 {
1699
1884
  &:is(:where(.group)[data-hover] *) {
1700
- background-color: color-mix(in srgb, oklch(78.9% 0.154 211.53) 30%, transparent);
1701
- @supports (color: color-mix(in lab, red, red)) {
1702
- background-color: color-mix(in oklab, var(--color-cyan-400) 30%, transparent);
1703
- }
1885
+ background-color: var(--color-cyan-100);
1704
1886
  }
1705
1887
  }
1706
- .group-data-hover\\:bg-emerald-400\\/30 {
1888
+ .group-data-hover\\:bg-emerald-100 {
1707
1889
  &:is(:where(.group)[data-hover] *) {
1708
- background-color: color-mix(in srgb, oklch(76.5% 0.177 163.223) 30%, transparent);
1709
- @supports (color: color-mix(in lab, red, red)) {
1710
- background-color: color-mix(in oklab, var(--color-emerald-400) 30%, transparent);
1711
- }
1890
+ background-color: var(--color-emerald-100);
1712
1891
  }
1713
1892
  }
1714
- .group-data-hover\\:bg-fuchsia-400\\/30 {
1893
+ .group-data-hover\\:bg-fuchsia-100 {
1715
1894
  &:is(:where(.group)[data-hover] *) {
1716
- background-color: color-mix(in srgb, oklch(74% 0.238 322.16) 30%, transparent);
1717
- @supports (color: color-mix(in lab, red, red)) {
1718
- background-color: color-mix(in oklab, var(--color-fuchsia-400) 30%, transparent);
1719
- }
1895
+ background-color: var(--color-fuchsia-100);
1720
1896
  }
1721
1897
  }
1722
- .group-data-hover\\:bg-rose-400\\/30 {
1898
+ .group-data-hover\\:bg-rose-100 {
1723
1899
  &:is(:where(.group)[data-hover] *) {
1724
- background-color: color-mix(in srgb, oklch(71.2% 0.194 13.428) 30%, transparent);
1725
- @supports (color: color-mix(in lab, red, red)) {
1726
- background-color: color-mix(in oklab, var(--color-rose-400) 30%, transparent);
1727
- }
1900
+ background-color: var(--color-rose-100);
1728
1901
  }
1729
1902
  }
1730
- .group-data-hover\\:bg-slate-400\\/30 {
1903
+ .group-data-hover\\:bg-slate-100 {
1731
1904
  &:is(:where(.group)[data-hover] *) {
1732
- background-color: color-mix(in srgb, oklch(70.4% 0.04 256.788) 30%, transparent);
1733
- @supports (color: color-mix(in lab, red, red)) {
1734
- background-color: color-mix(in oklab, var(--color-slate-400) 30%, transparent);
1735
- }
1905
+ background-color: var(--color-slate-100);
1736
1906
  }
1737
1907
  }
1738
- .group-data-hover\\:bg-violet-400\\/30 {
1908
+ .group-data-hover\\:bg-violet-100 {
1739
1909
  &:is(:where(.group)[data-hover] *) {
1740
- background-color: color-mix(in srgb, oklch(70.2% 0.183 293.541) 30%, transparent);
1741
- @supports (color: color-mix(in lab, red, red)) {
1742
- background-color: color-mix(in oklab, var(--color-violet-400) 30%, transparent);
1743
- }
1910
+ background-color: var(--color-violet-100);
1744
1911
  }
1745
1912
  }
1746
1913
  .placeholder\\:text-muted-foreground {
@@ -1772,6 +1939,24 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
1772
1939
  border-radius: calc(var(--radius-2xl) - 1px);
1773
1940
  }
1774
1941
  }
1942
+ .before\\:rounded-\\[calc\\(var\\(--radius-lg\\)-1px\\)\\] {
1943
+ &::before {
1944
+ content: var(--tw-content);
1945
+ border-radius: calc(var(--radius-lg) - 1px);
1946
+ }
1947
+ }
1948
+ .before\\:rounded-\\[calc\\(var\\(--radius-md\\)-1px\\)\\] {
1949
+ &::before {
1950
+ content: var(--tw-content);
1951
+ border-radius: calc(var(--radius-md) - 1px);
1952
+ }
1953
+ }
1954
+ .before\\:rounded-\\[calc\\(var\\(--radius-xl\\)-1px\\)\\] {
1955
+ &::before {
1956
+ content: var(--tw-content);
1957
+ border-radius: calc(var(--radius-xl) - 1px);
1958
+ }
1959
+ }
1775
1960
  .before\\:rounded-t-\\[calc\\(var\\(--radius-xl\\)-1px\\)\\] {
1776
1961
  &::before {
1777
1962
  content: var(--tw-content);
@@ -1844,6 +2029,16 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
1844
2029
  }
1845
2030
  }
1846
2031
  }
2032
+ .hover\\:bg-amber-500\\/20 {
2033
+ &:hover {
2034
+ @media (hover: hover) {
2035
+ background-color: color-mix(in srgb, oklch(76.9% 0.188 70.08) 20%, transparent);
2036
+ @supports (color: color-mix(in lab, red, red)) {
2037
+ background-color: color-mix(in oklab, var(--color-amber-500) 20%, transparent);
2038
+ }
2039
+ }
2040
+ }
2041
+ }
1847
2042
  .hover\\:bg-destructive\\/5 {
1848
2043
  &:hover {
1849
2044
  @media (hover: hover) {
@@ -1864,6 +2059,16 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
1864
2059
  }
1865
2060
  }
1866
2061
  }
2062
+ .hover\\:bg-info\\/20 {
2063
+ &:hover {
2064
+ @media (hover: hover) {
2065
+ background-color: var(--info);
2066
+ @supports (color: color-mix(in lab, red, red)) {
2067
+ background-color: color-mix(in oklab, var(--info) 20%, transparent);
2068
+ }
2069
+ }
2070
+ }
2071
+ }
1867
2072
  .hover\\:bg-primary\\/90 {
1868
2073
  &:hover {
1869
2074
  @media (hover: hover) {
@@ -1998,11 +2203,6 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
1998
2203
  pointer-events: none;
1999
2204
  }
2000
2205
  }
2001
- .data-\\[disabled\\]\\:opacity-60 {
2002
- &[data-disabled] {
2003
- opacity: 60%;
2004
- }
2005
- }
2006
2206
  .data-\\[disabled\\]\\:opacity-64 {
2007
2207
  &[data-disabled] {
2008
2208
  opacity: 64%;
@@ -2041,7 +2241,7 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
2041
2241
  }
2042
2242
  }
2043
2243
  .dark\\:bg-amber-400\\/10 {
2044
- &:is(.dark *) {
2244
+ &:is(.dark *, :host(.dark) *) {
2045
2245
  background-color: color-mix(in srgb, oklch(82.8% 0.189 84.429) 10%, transparent);
2046
2246
  @supports (color: color-mix(in lab, red, red)) {
2047
2247
  background-color: color-mix(in oklab, var(--color-amber-400) 10%, transparent);
@@ -2049,7 +2249,7 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
2049
2249
  }
2050
2250
  }
2051
2251
  .dark\\:bg-blue-400\\/10 {
2052
- &:is(.dark *) {
2252
+ &:is(.dark *, :host(.dark) *) {
2053
2253
  background-color: color-mix(in srgb, oklch(70.7% 0.165 254.624) 10%, transparent);
2054
2254
  @supports (color: color-mix(in lab, red, red)) {
2055
2255
  background-color: color-mix(in oklab, var(--color-blue-400) 10%, transparent);
@@ -2057,7 +2257,7 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
2057
2257
  }
2058
2258
  }
2059
2259
  .dark\\:bg-cyan-400\\/10 {
2060
- &:is(.dark *) {
2260
+ &:is(.dark *, :host(.dark) *) {
2061
2261
  background-color: color-mix(in srgb, oklch(78.9% 0.154 211.53) 10%, transparent);
2062
2262
  @supports (color: color-mix(in lab, red, red)) {
2063
2263
  background-color: color-mix(in oklab, var(--color-cyan-400) 10%, transparent);
@@ -2065,7 +2265,7 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
2065
2265
  }
2066
2266
  }
2067
2267
  .dark\\:bg-destructive\\/20 {
2068
- &:is(.dark *) {
2268
+ &:is(.dark *, :host(.dark) *) {
2069
2269
  background-color: var(--destructive);
2070
2270
  @supports (color: color-mix(in lab, red, red)) {
2071
2271
  background-color: color-mix(in oklab, var(--destructive) 20%, transparent);
@@ -2073,7 +2273,7 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
2073
2273
  }
2074
2274
  }
2075
2275
  .dark\\:bg-emerald-400\\/10 {
2076
- &:is(.dark *) {
2276
+ &:is(.dark *, :host(.dark) *) {
2077
2277
  background-color: color-mix(in srgb, oklch(76.5% 0.177 163.223) 10%, transparent);
2078
2278
  @supports (color: color-mix(in lab, red, red)) {
2079
2279
  background-color: color-mix(in oklab, var(--color-emerald-400) 10%, transparent);
@@ -2081,7 +2281,7 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
2081
2281
  }
2082
2282
  }
2083
2283
  .dark\\:bg-fuchsia-400\\/10 {
2084
- &:is(.dark *) {
2284
+ &:is(.dark *, :host(.dark) *) {
2085
2285
  background-color: color-mix(in srgb, oklch(74% 0.238 322.16) 10%, transparent);
2086
2286
  @supports (color: color-mix(in lab, red, red)) {
2087
2287
  background-color: color-mix(in oklab, var(--color-fuchsia-400) 10%, transparent);
@@ -2089,7 +2289,7 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
2089
2289
  }
2090
2290
  }
2091
2291
  .dark\\:bg-info\\/20 {
2092
- &:is(.dark *) {
2292
+ &:is(.dark *, :host(.dark) *) {
2093
2293
  background-color: var(--info);
2094
2294
  @supports (color: color-mix(in lab, red, red)) {
2095
2295
  background-color: color-mix(in oklab, var(--info) 20%, transparent);
@@ -2097,7 +2297,7 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
2097
2297
  }
2098
2298
  }
2099
2299
  .dark\\:bg-input\\/30 {
2100
- &:is(.dark *) {
2300
+ &:is(.dark *, :host(.dark) *) {
2101
2301
  background-color: var(--input);
2102
2302
  @supports (color: color-mix(in lab, red, red)) {
2103
2303
  background-color: color-mix(in oklab, var(--input) 30%, transparent);
@@ -2105,7 +2305,7 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
2105
2305
  }
2106
2306
  }
2107
2307
  .dark\\:bg-rose-400\\/10 {
2108
- &:is(.dark *) {
2308
+ &:is(.dark *, :host(.dark) *) {
2109
2309
  background-color: color-mix(in srgb, oklch(71.2% 0.194 13.428) 10%, transparent);
2110
2310
  @supports (color: color-mix(in lab, red, red)) {
2111
2311
  background-color: color-mix(in oklab, var(--color-rose-400) 10%, transparent);
@@ -2113,7 +2313,7 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
2113
2313
  }
2114
2314
  }
2115
2315
  .dark\\:bg-slate-400\\/10 {
2116
- &:is(.dark *) {
2316
+ &:is(.dark *, :host(.dark) *) {
2117
2317
  background-color: color-mix(in srgb, oklch(70.4% 0.04 256.788) 10%, transparent);
2118
2318
  @supports (color: color-mix(in lab, red, red)) {
2119
2319
  background-color: color-mix(in oklab, var(--color-slate-400) 10%, transparent);
@@ -2121,7 +2321,7 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
2121
2321
  }
2122
2322
  }
2123
2323
  .dark\\:bg-success\\/20 {
2124
- &:is(.dark *) {
2324
+ &:is(.dark *, :host(.dark) *) {
2125
2325
  background-color: var(--success);
2126
2326
  @supports (color: color-mix(in lab, red, red)) {
2127
2327
  background-color: color-mix(in oklab, var(--success) 20%, transparent);
@@ -2129,7 +2329,7 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
2129
2329
  }
2130
2330
  }
2131
2331
  .dark\\:bg-violet-400\\/10 {
2132
- &:is(.dark *) {
2332
+ &:is(.dark *, :host(.dark) *) {
2133
2333
  background-color: color-mix(in srgb, oklch(70.2% 0.183 293.541) 10%, transparent);
2134
2334
  @supports (color: color-mix(in lab, red, red)) {
2135
2335
  background-color: color-mix(in oklab, var(--color-violet-400) 10%, transparent);
@@ -2137,135 +2337,212 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
2137
2337
  }
2138
2338
  }
2139
2339
  .dark\\:bg-warning\\/20 {
2140
- &:is(.dark *) {
2340
+ &:is(.dark *, :host(.dark) *) {
2141
2341
  background-color: var(--warning);
2142
2342
  @supports (color: color-mix(in lab, red, red)) {
2143
2343
  background-color: color-mix(in oklab, var(--warning) 20%, transparent);
2144
2344
  }
2145
2345
  }
2146
2346
  }
2147
- .dark\\:text-amber-300 {
2148
- &:is(.dark *) {
2149
- color: var(--color-amber-300);
2347
+ .dark\\:text-amber-400 {
2348
+ &:is(.dark *, :host(.dark) *) {
2349
+ color: var(--color-amber-400);
2150
2350
  }
2151
2351
  }
2152
- .dark\\:text-blue-300 {
2153
- &:is(.dark *) {
2154
- color: var(--color-blue-300);
2352
+ .dark\\:text-amber-500 {
2353
+ &:is(.dark *, :host(.dark) *) {
2354
+ color: var(--color-amber-500);
2155
2355
  }
2156
2356
  }
2157
- .dark\\:text-cyan-300 {
2158
- &:is(.dark *) {
2159
- color: var(--color-cyan-300);
2357
+ .dark\\:text-blue-400 {
2358
+ &:is(.dark *, :host(.dark) *) {
2359
+ color: var(--color-blue-400);
2160
2360
  }
2161
2361
  }
2162
- .dark\\:text-emerald-300 {
2163
- &:is(.dark *) {
2164
- color: var(--color-emerald-300);
2362
+ .dark\\:text-cyan-400 {
2363
+ &:is(.dark *, :host(.dark) *) {
2364
+ color: var(--color-cyan-400);
2165
2365
  }
2166
2366
  }
2167
- .dark\\:text-fuchsia-300 {
2168
- &:is(.dark *) {
2169
- color: var(--color-fuchsia-300);
2367
+ .dark\\:text-emerald-400 {
2368
+ &:is(.dark *, :host(.dark) *) {
2369
+ color: var(--color-emerald-400);
2170
2370
  }
2171
2371
  }
2172
- .dark\\:text-rose-300 {
2173
- &:is(.dark *) {
2174
- color: var(--color-rose-300);
2372
+ .dark\\:text-fuchsia-400 {
2373
+ &:is(.dark *, :host(.dark) *) {
2374
+ color: var(--color-fuchsia-400);
2175
2375
  }
2176
2376
  }
2177
- .dark\\:text-slate-300 {
2178
- &:is(.dark *) {
2179
- color: var(--color-slate-300);
2377
+ .dark\\:text-rose-400 {
2378
+ &:is(.dark *, :host(.dark) *) {
2379
+ color: var(--color-rose-400);
2180
2380
  }
2181
2381
  }
2182
- .dark\\:text-violet-300 {
2183
- &:is(.dark *) {
2184
- color: var(--color-violet-300);
2382
+ .dark\\:text-slate-400 {
2383
+ &:is(.dark *, :host(.dark) *) {
2384
+ color: var(--color-slate-400);
2185
2385
  }
2186
2386
  }
2187
- .dark\\:group-data-hover\\:bg-amber-400\\/15 {
2188
- &:is(.dark *) {
2387
+ .dark\\:text-violet-400 {
2388
+ &:is(.dark *, :host(.dark) *) {
2389
+ color: var(--color-violet-400);
2390
+ }
2391
+ }
2392
+ .dark\\:inset-ring-amber-400\\/20 {
2393
+ &:is(.dark *, :host(.dark) *) {
2394
+ --tw-inset-ring-color: color-mix(in srgb, oklch(82.8% 0.189 84.429) 20%, transparent);
2395
+ @supports (color: color-mix(in lab, red, red)) {
2396
+ --tw-inset-ring-color: color-mix(in oklab, var(--color-amber-400) 20%, transparent);
2397
+ }
2398
+ }
2399
+ }
2400
+ .dark\\:inset-ring-blue-400\\/30 {
2401
+ &:is(.dark *, :host(.dark) *) {
2402
+ --tw-inset-ring-color: color-mix(in srgb, oklch(70.7% 0.165 254.624) 30%, transparent);
2403
+ @supports (color: color-mix(in lab, red, red)) {
2404
+ --tw-inset-ring-color: color-mix(in oklab, var(--color-blue-400) 30%, transparent);
2405
+ }
2406
+ }
2407
+ }
2408
+ .dark\\:inset-ring-cyan-400\\/30 {
2409
+ &:is(.dark *, :host(.dark) *) {
2410
+ --tw-inset-ring-color: color-mix(in srgb, oklch(78.9% 0.154 211.53) 30%, transparent);
2411
+ @supports (color: color-mix(in lab, red, red)) {
2412
+ --tw-inset-ring-color: color-mix(in oklab, var(--color-cyan-400) 30%, transparent);
2413
+ }
2414
+ }
2415
+ }
2416
+ .dark\\:inset-ring-emerald-500\\/20 {
2417
+ &:is(.dark *, :host(.dark) *) {
2418
+ --tw-inset-ring-color: color-mix(in srgb, oklch(69.6% 0.17 162.48) 20%, transparent);
2419
+ @supports (color: color-mix(in lab, red, red)) {
2420
+ --tw-inset-ring-color: color-mix(in oklab, var(--color-emerald-500) 20%, transparent);
2421
+ }
2422
+ }
2423
+ }
2424
+ .dark\\:inset-ring-fuchsia-400\\/20 {
2425
+ &:is(.dark *, :host(.dark) *) {
2426
+ --tw-inset-ring-color: color-mix(in srgb, oklch(74% 0.238 322.16) 20%, transparent);
2427
+ @supports (color: color-mix(in lab, red, red)) {
2428
+ --tw-inset-ring-color: color-mix(in oklab, var(--color-fuchsia-400) 20%, transparent);
2429
+ }
2430
+ }
2431
+ }
2432
+ .dark\\:inset-ring-rose-400\\/20 {
2433
+ &:is(.dark *, :host(.dark) *) {
2434
+ --tw-inset-ring-color: color-mix(in srgb, oklch(71.2% 0.194 13.428) 20%, transparent);
2435
+ @supports (color: color-mix(in lab, red, red)) {
2436
+ --tw-inset-ring-color: color-mix(in oklab, var(--color-rose-400) 20%, transparent);
2437
+ }
2438
+ }
2439
+ }
2440
+ .dark\\:inset-ring-slate-400\\/20 {
2441
+ &:is(.dark *, :host(.dark) *) {
2442
+ --tw-inset-ring-color: color-mix(in srgb, oklch(70.4% 0.04 256.788) 20%, transparent);
2443
+ @supports (color: color-mix(in lab, red, red)) {
2444
+ --tw-inset-ring-color: color-mix(in oklab, var(--color-slate-400) 20%, transparent);
2445
+ }
2446
+ }
2447
+ }
2448
+ .dark\\:inset-ring-violet-400\\/30 {
2449
+ &:is(.dark *, :host(.dark) *) {
2450
+ --tw-inset-ring-color: color-mix(in srgb, oklch(70.2% 0.183 293.541) 30%, transparent);
2451
+ @supports (color: color-mix(in lab, red, red)) {
2452
+ --tw-inset-ring-color: color-mix(in oklab, var(--color-violet-400) 30%, transparent);
2453
+ }
2454
+ }
2455
+ }
2456
+ .dark\\:\\[--skeleton-highlight\\:--alpha\\(var\\(--color-white\\)\\/4\\%\\)\\] {
2457
+ &:is(.dark *, :host(.dark) *) {
2458
+ --skeleton-highlight: color-mix(in srgb, #fff 4%, transparent);
2459
+ @supports (color: color-mix(in lab, red, red)) {
2460
+ --skeleton-highlight: color-mix(in oklab, var(--color-white) 4%, transparent);
2461
+ }
2462
+ }
2463
+ }
2464
+ .dark\\:group-data-hover\\:bg-amber-400\\/20 {
2465
+ &:is(.dark *, :host(.dark) *) {
2189
2466
  &:is(:where(.group)[data-hover] *) {
2190
- background-color: color-mix(in srgb, oklch(82.8% 0.189 84.429) 15%, transparent);
2467
+ background-color: color-mix(in srgb, oklch(82.8% 0.189 84.429) 20%, transparent);
2191
2468
  @supports (color: color-mix(in lab, red, red)) {
2192
- background-color: color-mix(in oklab, var(--color-amber-400) 15%, transparent);
2469
+ background-color: color-mix(in oklab, var(--color-amber-400) 20%, transparent);
2193
2470
  }
2194
2471
  }
2195
2472
  }
2196
2473
  }
2197
- .dark\\:group-data-hover\\:bg-blue-400\\/15 {
2198
- &:is(.dark *) {
2474
+ .dark\\:group-data-hover\\:bg-blue-400\\/20 {
2475
+ &:is(.dark *, :host(.dark) *) {
2199
2476
  &:is(:where(.group)[data-hover] *) {
2200
- background-color: color-mix(in srgb, oklch(70.7% 0.165 254.624) 15%, transparent);
2477
+ background-color: color-mix(in srgb, oklch(70.7% 0.165 254.624) 20%, transparent);
2201
2478
  @supports (color: color-mix(in lab, red, red)) {
2202
- background-color: color-mix(in oklab, var(--color-blue-400) 15%, transparent);
2479
+ background-color: color-mix(in oklab, var(--color-blue-400) 20%, transparent);
2203
2480
  }
2204
2481
  }
2205
2482
  }
2206
2483
  }
2207
- .dark\\:group-data-hover\\:bg-cyan-400\\/15 {
2208
- &:is(.dark *) {
2484
+ .dark\\:group-data-hover\\:bg-cyan-400\\/20 {
2485
+ &:is(.dark *, :host(.dark) *) {
2209
2486
  &:is(:where(.group)[data-hover] *) {
2210
- background-color: color-mix(in srgb, oklch(78.9% 0.154 211.53) 15%, transparent);
2487
+ background-color: color-mix(in srgb, oklch(78.9% 0.154 211.53) 20%, transparent);
2211
2488
  @supports (color: color-mix(in lab, red, red)) {
2212
- background-color: color-mix(in oklab, var(--color-cyan-400) 15%, transparent);
2489
+ background-color: color-mix(in oklab, var(--color-cyan-400) 20%, transparent);
2213
2490
  }
2214
2491
  }
2215
2492
  }
2216
2493
  }
2217
- .dark\\:group-data-hover\\:bg-emerald-400\\/15 {
2218
- &:is(.dark *) {
2494
+ .dark\\:group-data-hover\\:bg-emerald-400\\/20 {
2495
+ &:is(.dark *, :host(.dark) *) {
2219
2496
  &:is(:where(.group)[data-hover] *) {
2220
- background-color: color-mix(in srgb, oklch(76.5% 0.177 163.223) 15%, transparent);
2497
+ background-color: color-mix(in srgb, oklch(76.5% 0.177 163.223) 20%, transparent);
2221
2498
  @supports (color: color-mix(in lab, red, red)) {
2222
- background-color: color-mix(in oklab, var(--color-emerald-400) 15%, transparent);
2499
+ background-color: color-mix(in oklab, var(--color-emerald-400) 20%, transparent);
2223
2500
  }
2224
2501
  }
2225
2502
  }
2226
2503
  }
2227
- .dark\\:group-data-hover\\:bg-fuchsia-400\\/15 {
2228
- &:is(.dark *) {
2504
+ .dark\\:group-data-hover\\:bg-fuchsia-400\\/20 {
2505
+ &:is(.dark *, :host(.dark) *) {
2229
2506
  &:is(:where(.group)[data-hover] *) {
2230
- background-color: color-mix(in srgb, oklch(74% 0.238 322.16) 15%, transparent);
2507
+ background-color: color-mix(in srgb, oklch(74% 0.238 322.16) 20%, transparent);
2231
2508
  @supports (color: color-mix(in lab, red, red)) {
2232
- background-color: color-mix(in oklab, var(--color-fuchsia-400) 15%, transparent);
2509
+ background-color: color-mix(in oklab, var(--color-fuchsia-400) 20%, transparent);
2233
2510
  }
2234
2511
  }
2235
2512
  }
2236
2513
  }
2237
- .dark\\:group-data-hover\\:bg-rose-400\\/15 {
2238
- &:is(.dark *) {
2514
+ .dark\\:group-data-hover\\:bg-rose-400\\/20 {
2515
+ &:is(.dark *, :host(.dark) *) {
2239
2516
  &:is(:where(.group)[data-hover] *) {
2240
- background-color: color-mix(in srgb, oklch(71.2% 0.194 13.428) 15%, transparent);
2517
+ background-color: color-mix(in srgb, oklch(71.2% 0.194 13.428) 20%, transparent);
2241
2518
  @supports (color: color-mix(in lab, red, red)) {
2242
- background-color: color-mix(in oklab, var(--color-rose-400) 15%, transparent);
2519
+ background-color: color-mix(in oklab, var(--color-rose-400) 20%, transparent);
2243
2520
  }
2244
2521
  }
2245
2522
  }
2246
2523
  }
2247
- .dark\\:group-data-hover\\:bg-slate-400\\/15 {
2248
- &:is(.dark *) {
2524
+ .dark\\:group-data-hover\\:bg-slate-400\\/20 {
2525
+ &:is(.dark *, :host(.dark) *) {
2249
2526
  &:is(:where(.group)[data-hover] *) {
2250
- background-color: color-mix(in srgb, oklch(70.4% 0.04 256.788) 15%, transparent);
2527
+ background-color: color-mix(in srgb, oklch(70.4% 0.04 256.788) 20%, transparent);
2251
2528
  @supports (color: color-mix(in lab, red, red)) {
2252
- background-color: color-mix(in oklab, var(--color-slate-400) 15%, transparent);
2529
+ background-color: color-mix(in oklab, var(--color-slate-400) 20%, transparent);
2253
2530
  }
2254
2531
  }
2255
2532
  }
2256
2533
  }
2257
- .dark\\:group-data-hover\\:bg-violet-400\\/15 {
2258
- &:is(.dark *) {
2534
+ .dark\\:group-data-hover\\:bg-violet-400\\/20 {
2535
+ &:is(.dark *, :host(.dark) *) {
2259
2536
  &:is(:where(.group)[data-hover] *) {
2260
- background-color: color-mix(in srgb, oklch(70.2% 0.183 293.541) 15%, transparent);
2537
+ background-color: color-mix(in srgb, oklch(70.2% 0.183 293.541) 20%, transparent);
2261
2538
  @supports (color: color-mix(in lab, red, red)) {
2262
- background-color: color-mix(in oklab, var(--color-violet-400) 15%, transparent);
2539
+ background-color: color-mix(in oklab, var(--color-violet-400) 20%, transparent);
2263
2540
  }
2264
2541
  }
2265
2542
  }
2266
2543
  }
2267
2544
  .dark\\:before\\:shadow-\\[0_-1px_--theme\\(--color-white\\/6\\%\\)\\] {
2268
- &:is(.dark *) {
2545
+ &:is(.dark *, :host(.dark) *) {
2269
2546
  &::before {
2270
2547
  content: var(--tw-content);
2271
2548
  --tw-shadow: 0 -1px var(--tw-shadow-color, color-mix(in srgb, #fff 6%, transparent));
@@ -2303,6 +2580,38 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
2303
2580
  height: calc(var(--spacing) * 4);
2304
2581
  }
2305
2582
  }
2583
+ .\\[\\&_svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-4\\.5 {
2584
+ & svg:not([class*='size-']) {
2585
+ width: calc(var(--spacing) * 4.5);
2586
+ height: calc(var(--spacing) * 4.5);
2587
+ }
2588
+ }
2589
+ .\\[\\&\\>svg\\]\\:pointer-events-none {
2590
+ &>svg {
2591
+ pointer-events: none;
2592
+ }
2593
+ }
2594
+ .\\[\\&\\>svg\\]\\:-mx-0\\.5 {
2595
+ &>svg {
2596
+ margin-inline: calc(var(--spacing) * -0.5);
2597
+ }
2598
+ }
2599
+ .\\[\\&\\>svg\\]\\:shrink-0 {
2600
+ &>svg {
2601
+ flex-shrink: 0;
2602
+ }
2603
+ }
2604
+ .\\[\\&\\>svg\\:not\\(\\[class\\*\\=\\'opacity-\\'\\]\\)\\]\\:opacity-80 {
2605
+ &>svg:not([class*='opacity-']) {
2606
+ opacity: 80%;
2607
+ }
2608
+ }
2609
+ .\\[\\&\\>svg\\:not\\(\\[class\\*\\=\\'size-\\'\\]\\)\\]\\:size-4 {
2610
+ &>svg:not([class*='size-']) {
2611
+ width: calc(var(--spacing) * 4);
2612
+ height: calc(var(--spacing) * 4);
2613
+ }
2614
+ }
2306
2615
  }
2307
2616
  @layer base {
2308
2617
  *, ::after, ::before {
@@ -2310,6 +2619,30 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
2310
2619
  }
2311
2620
  }
2312
2621
  @layer components {
2622
+ [data-highlighted] {
2623
+ background-color: var(--accent);
2624
+ color: var(--accent-foreground);
2625
+ transition: background-color 150ms ease-out;
2626
+ }
2627
+ [data-kbd-nav] [data-highlighted]:not([data-kbd-highlighted]) {
2628
+ background-color: transparent;
2629
+ color: inherit;
2630
+ }
2631
+ [data-kbd-highlighted] {
2632
+ background-color: var(--accent);
2633
+ @supports (color: color-mix(in lab, red, red)) {
2634
+ background-color: color-mix(in srgb, var(--accent) 200%, transparent);
2635
+ }
2636
+ color: var(--accent-foreground);
2637
+ }
2638
+ .uidex-item-interactive:hover {
2639
+ background-color: var(--accent);
2640
+ color: var(--accent-foreground);
2641
+ }
2642
+ [data-kbd-nav] .uidex-item-interactive:hover:not(:focus):not(:focus-within) {
2643
+ background-color: transparent;
2644
+ color: inherit;
2645
+ }
2313
2646
  .uidex-scrollbar {
2314
2647
  scrollbar-width: thin;
2315
2648
  scrollbar-color: var(--muted-foreground) transparent;
@@ -2343,6 +2676,11 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
2343
2676
  background: transparent;
2344
2677
  }
2345
2678
  }
2679
+ @keyframes skeleton {
2680
+ to {
2681
+ background-position: -200% 0;
2682
+ }
2683
+ }
2346
2684
  :where(:host, :root) {
2347
2685
  --background: color-mix(
2348
2686
  in srgb,
@@ -2478,6 +2816,36 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
2478
2816
  --warning: var(--color-amber-500);
2479
2817
  --warning-foreground: var(--color-amber-700);
2480
2818
  }
2819
+ @property --tw-translate-x {
2820
+ syntax: "*";
2821
+ inherits: false;
2822
+ initial-value: 0;
2823
+ }
2824
+ @property --tw-translate-y {
2825
+ syntax: "*";
2826
+ inherits: false;
2827
+ initial-value: 0;
2828
+ }
2829
+ @property --tw-translate-z {
2830
+ syntax: "*";
2831
+ inherits: false;
2832
+ initial-value: 0;
2833
+ }
2834
+ @property --tw-scale-x {
2835
+ syntax: "*";
2836
+ inherits: false;
2837
+ initial-value: 1;
2838
+ }
2839
+ @property --tw-scale-y {
2840
+ syntax: "*";
2841
+ inherits: false;
2842
+ initial-value: 1;
2843
+ }
2844
+ @property --tw-scale-z {
2845
+ syntax: "*";
2846
+ inherits: false;
2847
+ initial-value: 1;
2848
+ }
2481
2849
  @property --tw-rotate-x {
2482
2850
  syntax: "*";
2483
2851
  inherits: false;
@@ -2515,6 +2883,26 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
2515
2883
  syntax: "*";
2516
2884
  inherits: false;
2517
2885
  }
2886
+ @property --tw-ordinal {
2887
+ syntax: "*";
2888
+ inherits: false;
2889
+ }
2890
+ @property --tw-slashed-zero {
2891
+ syntax: "*";
2892
+ inherits: false;
2893
+ }
2894
+ @property --tw-numeric-figure {
2895
+ syntax: "*";
2896
+ inherits: false;
2897
+ }
2898
+ @property --tw-numeric-spacing {
2899
+ syntax: "*";
2900
+ inherits: false;
2901
+ }
2902
+ @property --tw-numeric-fraction {
2903
+ syntax: "*";
2904
+ inherits: false;
2905
+ }
2518
2906
  @property --tw-shadow {
2519
2907
  syntax: "*";
2520
2908
  inherits: false;
@@ -2683,9 +3071,20 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
2683
3071
  initial-value: "";
2684
3072
  inherits: false;
2685
3073
  }
3074
+ @keyframes spin {
3075
+ to {
3076
+ transform: rotate(360deg);
3077
+ }
3078
+ }
2686
3079
  @layer properties {
2687
3080
  @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
2688
3081
  *, ::before, ::after, ::backdrop {
3082
+ --tw-translate-x: 0;
3083
+ --tw-translate-y: 0;
3084
+ --tw-translate-z: 0;
3085
+ --tw-scale-x: 1;
3086
+ --tw-scale-y: 1;
3087
+ --tw-scale-z: 1;
2689
3088
  --tw-rotate-x: initial;
2690
3089
  --tw-rotate-y: initial;
2691
3090
  --tw-rotate-z: initial;
@@ -2695,6 +3094,11 @@ var tailwind_built_default = `/*! tailwindcss v4.2.2 | MIT License | https://tai
2695
3094
  --tw-leading: initial;
2696
3095
  --tw-font-weight: initial;
2697
3096
  --tw-tracking: initial;
3097
+ --tw-ordinal: initial;
3098
+ --tw-slashed-zero: initial;
3099
+ --tw-numeric-figure: initial;
3100
+ --tw-numeric-spacing: initial;
3101
+ --tw-numeric-fraction: initial;
2698
3102
  --tw-shadow: 0 0 #0000;
2699
3103
  --tw-shadow-color: initial;
2700
3104
  --tw-shadow-alpha: 100%;
@@ -2821,22 +3225,22 @@ var TOOLTIP_OFFSET = 16;
2821
3225
  var ARROW_SIZE = 5;
2822
3226
  function createCursorTooltip(deps) {
2823
3227
  const { container } = deps;
2824
- const el = document.createElement("div");
2825
- el.setAttribute("data-uidex-cursor-tooltip", "");
2826
- el.style.position = "fixed";
2827
- el.style.pointerEvents = "none";
2828
- el.style.zIndex = String(Z_CHROME);
2829
- el.style.padding = "4px 8px";
2830
- el.style.fontSize = "12px";
2831
- el.style.fontFamily = "ui-sans-serif, system-ui, sans-serif";
2832
- el.style.borderRadius = "6px";
2833
- el.style.background = DEFAULT_TOOLTIP_COLOR;
2834
- el.style.color = "#0a0a0a";
2835
- el.style.display = "none";
2836
- el.style.whiteSpace = "nowrap";
2837
- el.style.transform = "translate(-50%, 0)";
2838
- el.style.alignItems = "center";
2839
- el.style.gap = "6px";
3228
+ const el2 = document.createElement("div");
3229
+ el2.setAttribute("data-uidex-cursor-tooltip", "");
3230
+ el2.style.position = "fixed";
3231
+ el2.style.pointerEvents = "none";
3232
+ el2.style.zIndex = String(Z_CHROME);
3233
+ el2.style.padding = "4px 8px";
3234
+ el2.style.fontSize = "12px";
3235
+ el2.style.fontFamily = "ui-sans-serif, system-ui, sans-serif";
3236
+ el2.style.borderRadius = "6px";
3237
+ el2.style.background = DEFAULT_TOOLTIP_COLOR;
3238
+ el2.style.color = "#0a0a0a";
3239
+ el2.style.display = "none";
3240
+ el2.style.whiteSpace = "nowrap";
3241
+ el2.style.transform = "translate(-50%, 0)";
3242
+ el2.style.alignItems = "center";
3243
+ el2.style.gap = "6px";
2840
3244
  const arrow = document.createElement("div");
2841
3245
  arrow.setAttribute("data-uidex-cursor-tooltip-arrow", "");
2842
3246
  arrow.style.position = "absolute";
@@ -2848,18 +3252,18 @@ function createCursorTooltip(deps) {
2848
3252
  arrow.style.borderLeft = `${ARROW_SIZE}px solid transparent`;
2849
3253
  arrow.style.borderRight = `${ARROW_SIZE}px solid transparent`;
2850
3254
  arrow.style.borderBottom = `${ARROW_SIZE}px solid ${DEFAULT_TOOLTIP_COLOR}`;
2851
- el.appendChild(arrow);
3255
+ el2.appendChild(arrow);
2852
3256
  const body = document.createElement("span");
2853
3257
  body.setAttribute("data-uidex-cursor-tooltip-body", "");
2854
3258
  body.style.display = "inline-flex";
2855
3259
  body.style.alignItems = "center";
2856
3260
  body.style.gap = "6px";
2857
- el.appendChild(body);
2858
- container.appendChild(el);
3261
+ el2.appendChild(body);
3262
+ container.appendChild(el2);
2859
3263
  let currentContent = null;
2860
3264
  let currentCursor = null;
2861
3265
  const applyColor = (color) => {
2862
- el.style.background = color;
3266
+ el2.style.background = color;
2863
3267
  arrow.style.borderBottom = `${ARROW_SIZE}px solid ${color}`;
2864
3268
  };
2865
3269
  const renderBody = () => {
@@ -2883,26 +3287,28 @@ function createCursorTooltip(deps) {
2883
3287
  }
2884
3288
  const label = displayName(entity, node);
2885
3289
  body.append(document.createTextNode(label));
2886
- const rawId = entity.kind === "route" ? entity.path : entity.id;
2887
- if (rawId && rawId !== label) {
2888
- const subordinate = document.createElement("span");
2889
- subordinate.setAttribute("data-uidex-cursor-tooltip-id", "");
2890
- subordinate.style.opacity = "0.65";
2891
- subordinate.style.fontFamily = "ui-monospace, SFMono-Regular, Menlo, monospace";
2892
- subordinate.style.fontSize = "11px";
2893
- subordinate.textContent = rawId;
2894
- body.append(subordinate);
3290
+ if (currentContent.layer) {
3291
+ const counter = document.createElement("span");
3292
+ counter.setAttribute("data-uidex-cursor-tooltip-layer", "");
3293
+ counter.style.fontFamily = "ui-monospace, SFMono-Regular, Menlo, monospace";
3294
+ counter.style.fontSize = "10px";
3295
+ counter.style.lineHeight = "1";
3296
+ counter.style.padding = "2px 5px";
3297
+ counter.style.borderRadius = "4px";
3298
+ counter.style.background = "rgba(0,0,0,0.18)";
3299
+ counter.textContent = `${currentContent.layer.index + 1}/${currentContent.layer.total}`;
3300
+ body.append(counter);
2895
3301
  }
2896
3302
  };
2897
3303
  const render = () => {
2898
3304
  if (!currentContent || !currentCursor) {
2899
- el.style.display = "none";
3305
+ el2.style.display = "none";
2900
3306
  return;
2901
3307
  }
2902
3308
  renderBody();
2903
- el.style.display = "inline-flex";
2904
- el.style.left = `${currentCursor.x}px`;
2905
- el.style.top = `${currentCursor.y + TOOLTIP_OFFSET}px`;
3309
+ el2.style.display = "inline-flex";
3310
+ el2.style.left = `${currentCursor.x}px`;
3311
+ el2.style.top = `${currentCursor.y + TOOLTIP_OFFSET}px`;
2906
3312
  };
2907
3313
  return {
2908
3314
  update(content, cursor) {
@@ -2911,7 +3317,7 @@ function createCursorTooltip(deps) {
2911
3317
  render();
2912
3318
  },
2913
3319
  destroy() {
2914
- el.remove();
3320
+ el2.remove();
2915
3321
  currentContent = null;
2916
3322
  currentCursor = null;
2917
3323
  }
@@ -2926,56 +3332,79 @@ function entityForRef(ref, registry) {
2926
3332
  }
2927
3333
  if (ref.kind === "route") return { kind: "route", path: ref.id, page: ref.id };
2928
3334
  if (ref.kind === "flow") {
2929
- return { kind: "flow", id: ref.id, loc: { file: "" }, touches: [] };
3335
+ return {
3336
+ kind: "flow",
3337
+ id: ref.id,
3338
+ loc: { file: "" },
3339
+ touches: [],
3340
+ steps: []
3341
+ };
2930
3342
  }
2931
3343
  return { kind: ref.kind, id: ref.id };
2932
3344
  }
2933
- function defaultResolveMatch(target, registry) {
2934
- if (target.closest(SURFACE_IGNORE_SELECTOR)) return null;
3345
+ function defaultResolveAllMatches(target, registry) {
3346
+ if (target.closest(SURFACE_IGNORE_SELECTOR)) return [];
3347
+ const matches = [];
3348
+ const seen = /* @__PURE__ */ new Set();
2935
3349
  let node = target;
2936
3350
  while (node) {
2937
3351
  if (node instanceof HTMLElement) {
2938
3352
  for (const [attr, kind] of UIDEX_ATTR_TO_KIND) {
2939
3353
  const id = node.getAttribute(attr);
2940
3354
  if (id) {
2941
- const ref = { kind, id };
2942
- const entity = entityForRef(ref, registry);
2943
- return {
2944
- element: node,
2945
- ref,
2946
- entity,
2947
- label: displayName(entity, node)
2948
- };
3355
+ const key = `${kind}:${id}`;
3356
+ if (!seen.has(key)) {
3357
+ seen.add(key);
3358
+ const ref = { kind, id };
3359
+ const entity = entityForRef(ref, registry);
3360
+ matches.push({
3361
+ element: node,
3362
+ ref,
3363
+ entity,
3364
+ label: displayName(entity, node)
3365
+ });
3366
+ }
2949
3367
  }
2950
3368
  }
2951
3369
  }
2952
3370
  node = node.parentElement;
2953
3371
  }
2954
- return null;
3372
+ return matches;
2955
3373
  }
2956
3374
  function createInspector(options) {
2957
3375
  const {
2958
3376
  session,
2959
3377
  registry,
2960
- resolve = (target) => defaultResolveMatch(target, registry),
3378
+ resolveAll = (target) => defaultResolveAllMatches(target, registry),
2961
3379
  onHover,
2962
- onSelect
3380
+ onSelect,
3381
+ onCycle
2963
3382
  } = options;
2964
3383
  let mounted = false;
2965
3384
  let currentEl = null;
2966
3385
  let cursorStyleEl = null;
3386
+ let stack = [];
3387
+ let layerIndex = 0;
3388
+ let lastCursor = { x: 0, y: 0 };
3389
+ const makeStack = () => stack.length > 0 ? { matches: stack, index: layerIndex, current: stack[layerIndex] } : null;
2967
3390
  const onMouseMove = (e) => {
2968
3391
  if (!(e.target instanceof Element)) return;
2969
- const match = resolve(e.target);
3392
+ const matches = resolveAll(e.target);
2970
3393
  const cursor = { x: e.clientX, y: e.clientY };
2971
- if (match) {
2972
- if (match.element !== currentEl) {
2973
- currentEl = match.element;
2974
- session.getState().actions.hover(match.ref);
3394
+ lastCursor = cursor;
3395
+ const topEl = matches.length > 0 ? matches[0].element : null;
3396
+ if (topEl) {
3397
+ if (topEl !== currentEl) {
3398
+ currentEl = topEl;
3399
+ stack = matches;
3400
+ layerIndex = 0;
3401
+ session.getState().actions.hover(stack[0].ref);
2975
3402
  }
2976
- onHover?.(match, cursor);
3403
+ onHover?.(makeStack(), cursor);
2977
3404
  } else if (currentEl) {
2978
3405
  currentEl = null;
3406
+ stack = [];
3407
+ layerIndex = 0;
2979
3408
  session.getState().actions.hover(null);
2980
3409
  onHover?.(null, cursor);
2981
3410
  }
@@ -2983,13 +3412,22 @@ function createInspector(options) {
2983
3412
  const onClick = (e) => {
2984
3413
  if (!(e.target instanceof Element)) return;
2985
3414
  if (e.target.closest(SURFACE_IGNORE_SELECTOR)) return;
2986
- const match = resolve(e.target);
2987
- if (!match) return;
3415
+ if (stack.length === 0) return;
2988
3416
  e.preventDefault();
2989
3417
  e.stopPropagation();
3418
+ const match = stack[layerIndex];
2990
3419
  session.getState().actions.select(match.ref);
2991
3420
  onSelect?.(match, { x: e.clientX, y: e.clientY });
2992
3421
  };
3422
+ const onContextMenu = (e) => {
3423
+ if (stack.length <= 1) return;
3424
+ e.preventDefault();
3425
+ e.stopPropagation();
3426
+ layerIndex = (layerIndex + 1) % stack.length;
3427
+ const match = stack[layerIndex];
3428
+ session.getState().actions.hover(match.ref);
3429
+ onCycle?.(makeStack(), lastCursor);
3430
+ };
2993
3431
  return {
2994
3432
  mount() {
2995
3433
  if (mounted) return;
@@ -3002,17 +3440,21 @@ function createInspector(options) {
3002
3440
  }
3003
3441
  document.addEventListener("mousemove", onMouseMove);
3004
3442
  document.addEventListener("click", onClick, true);
3443
+ document.addEventListener("contextmenu", onContextMenu, true);
3005
3444
  },
3006
3445
  destroy() {
3007
3446
  if (!mounted) return;
3008
3447
  mounted = false;
3009
3448
  currentEl = null;
3449
+ stack = [];
3450
+ layerIndex = 0;
3010
3451
  if (cursorStyleEl) {
3011
3452
  cursorStyleEl.remove();
3012
3453
  cursorStyleEl = null;
3013
3454
  }
3014
3455
  document.removeEventListener("mousemove", onMouseMove);
3015
3456
  document.removeEventListener("click", onClick, true);
3457
+ document.removeEventListener("contextmenu", onContextMenu, true);
3016
3458
  session.getState().actions.hover(null);
3017
3459
  onHover?.(null, null);
3018
3460
  }
@@ -3020,6 +3462,71 @@ function createInspector(options) {
3020
3462
  }
3021
3463
 
3022
3464
  // src/surface/menu-bar.ts
3465
+ import {
3466
+ Command,
3467
+ Highlighter,
3468
+ MousePointerClick as MousePointerClick2,
3469
+ createElement as createLucideElement2
3470
+ } from "lucide";
3471
+
3472
+ // src/internal/cn.ts
3473
+ import { clsx } from "clsx";
3474
+ import { twMerge } from "tailwind-merge";
3475
+ function cn(...inputs) {
3476
+ return twMerge(clsx(inputs));
3477
+ }
3478
+
3479
+ // src/internal/el.ts
3480
+ function el(tag, options = {}, children = []) {
3481
+ const node = document.createElement(tag);
3482
+ if (options.class) node.className = cn(options.class);
3483
+ if (options.attrs) {
3484
+ for (const [key, value] of Object.entries(options.attrs)) {
3485
+ if (value === void 0 || value === null || value === false) continue;
3486
+ if (value === true) {
3487
+ node.setAttribute(key, "");
3488
+ } else {
3489
+ node.setAttribute(key, String(value));
3490
+ }
3491
+ }
3492
+ }
3493
+ if (options.dataset) {
3494
+ for (const [key, value] of Object.entries(options.dataset)) {
3495
+ node.dataset[key] = value;
3496
+ }
3497
+ }
3498
+ if (options.style) {
3499
+ Object.assign(node.style, options.style);
3500
+ }
3501
+ if (options.text !== void 0) {
3502
+ node.textContent = options.text;
3503
+ }
3504
+ const list = Array.isArray(children) ? children : [children];
3505
+ for (const child of list) {
3506
+ if (child === null || child === void 0 || child === false) continue;
3507
+ node.append(
3508
+ typeof child === "string" ? document.createTextNode(child) : child
3509
+ );
3510
+ }
3511
+ return node;
3512
+ }
3513
+
3514
+ // src/surface/keys.ts
3515
+ var INSPECT_SHORTCUT = { key: "i" };
3516
+ function formatShortcutLabel(shortcut) {
3517
+ const parts = [];
3518
+ if (shortcut.mod !== false) parts.push("\u2318");
3519
+ if (shortcut.shift) parts.push("\u21E7");
3520
+ parts.push(shortcut.key.toUpperCase());
3521
+ return parts.join("");
3522
+ }
3523
+
3524
+ // src/surface/menu-bar.ts
3525
+ var ROOT_CLASS = "inline-flex items-center gap-1.5 rounded-xl border border-border bg-popover p-1.5 font-sans text-xs text-popover-foreground shadow-lg/5 select-none not-dark:bg-clip-padding before:pointer-events-none before:absolute before:inset-0 before:rounded-[calc(var(--radius-xl)-1px)] before:bg-muted/72 before:shadow-[0_1px_--theme(--color-black/4%)] dark:before:shadow-[0_-1px_--theme(--color-white/6%)]";
3526
+ var BUTTON_CLASS = "relative z-1 inline-flex size-6 shrink-0 cursor-pointer items-center justify-center rounded-md border border-transparent text-muted-foreground transition-colors hover:bg-accent hover:text-accent-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring";
3527
+ var BUTTON_ACTIVE_CLASS = "border-info/40 bg-info/15 text-info-foreground hover:bg-info/20";
3528
+ var TITLE_CLASS = "relative z-1 whitespace-nowrap px-1.5 text-xs font-semibold tracking-tight text-foreground";
3529
+ var BUTTON_HIGHLIGHT_ACTIVE_CLASS = "border-amber-500/40 bg-amber-500/15 text-amber-600 hover:bg-amber-500/20 dark:text-amber-400";
3023
3530
  function createMenuBar(options) {
3024
3531
  const {
3025
3532
  container,
@@ -3027,80 +3534,84 @@ function createMenuBar(options) {
3027
3534
  initialCorner = "bottom-right",
3028
3535
  appTitle
3029
3536
  } = options;
3030
- const root = document.createElement("div");
3031
- root.setAttribute("data-uidex-menubar", "");
3032
- root.setAttribute("role", "toolbar");
3033
- Object.assign(root.style, {
3034
- position: "fixed",
3035
- zIndex: String(Z_CHROME),
3036
- pointerEvents: "auto",
3037
- display: "inline-flex",
3038
- alignItems: "center",
3039
- gap: "6px",
3040
- padding: "6px",
3041
- borderRadius: "8px",
3042
- background: "rgba(20, 20, 20, 0.92)",
3043
- color: "#f5f5f5",
3044
- fontFamily: "ui-sans-serif, system-ui, sans-serif",
3045
- fontSize: "12px",
3046
- userSelect: "none",
3047
- cursor: "grab"
3537
+ const root = el("div", {
3538
+ class: ROOT_CLASS,
3539
+ attrs: {
3540
+ "data-uidex-menubar": "",
3541
+ role: "toolbar"
3542
+ },
3543
+ style: {
3544
+ position: "fixed",
3545
+ zIndex: String(Z_CHROME),
3546
+ pointerEvents: "auto",
3547
+ cursor: "grab"
3548
+ }
3048
3549
  });
3049
- const buttonStyle = {
3050
- background: "rgba(255,255,255,0.08)",
3051
- color: "inherit",
3052
- border: "1px solid rgba(255,255,255,0.12)",
3053
- borderRadius: "6px",
3054
- padding: "4px 8px",
3055
- font: "inherit",
3056
- cursor: "pointer"
3057
- };
3058
- const buttonActiveStyle = {
3059
- background: "rgba(120, 180, 255, 0.28)",
3060
- borderColor: "rgba(120, 180, 255, 0.55)"
3061
- };
3550
+ let titleEl = null;
3062
3551
  if (appTitle) {
3063
- const titleEl = document.createElement("span");
3064
- titleEl.setAttribute("data-uidex-menubar-title", "");
3065
- titleEl.textContent = appTitle;
3066
- Object.assign(titleEl.style, {
3067
- padding: "0 6px 0 4px",
3068
- fontWeight: "600",
3069
- letterSpacing: "0.01em",
3070
- whiteSpace: "nowrap"
3552
+ titleEl = el("span", {
3553
+ class: TITLE_CLASS,
3554
+ attrs: { "data-uidex-menubar-title": "" },
3555
+ text: appTitle
3071
3556
  });
3072
3557
  root.appendChild(titleEl);
3073
3558
  }
3074
- const highlightDot = document.createElement("span");
3075
- highlightDot.setAttribute("data-uidex-menubar-highlight-indicator", "");
3076
- highlightDot.setAttribute("aria-label", "Element highlighted (press Esc)");
3077
- highlightDot.setAttribute("role", "status");
3078
- Object.assign(highlightDot.style, {
3079
- display: "none",
3080
- width: "8px",
3081
- height: "8px",
3082
- borderRadius: "50%",
3083
- margin: "0 2px 0 4px",
3084
- background: "rgba(120, 180, 255, 0.85)",
3085
- boxShadow: "0 0 6px rgba(120, 180, 255, 0.75)",
3086
- flex: "0 0 auto"
3559
+ const highlightIcon = createLucideElement2(Highlighter);
3560
+ highlightIcon.setAttribute("class", "size-3.5");
3561
+ highlightIcon.setAttribute("aria-hidden", "true");
3562
+ const highlightBtn = el(
3563
+ "button",
3564
+ {
3565
+ class: BUTTON_CLASS,
3566
+ attrs: {
3567
+ type: "button",
3568
+ "data-uidex-menubar-highlight": "",
3569
+ "aria-label": "Dismiss highlight"
3570
+ }
3571
+ },
3572
+ highlightIcon
3573
+ );
3574
+ highlightBtn.hidden = true;
3575
+ highlightBtn.addEventListener("click", (e) => {
3576
+ e.stopPropagation();
3577
+ session.send({ type: "UNPIN" });
3087
3578
  });
3088
- root.appendChild(highlightDot);
3089
- const inspectBtn = document.createElement("button");
3090
- inspectBtn.type = "button";
3091
- inspectBtn.setAttribute("data-uidex-menubar-inspect", "");
3092
- inspectBtn.textContent = "Inspect";
3093
- Object.assign(inspectBtn.style, buttonStyle);
3579
+ root.appendChild(highlightBtn);
3580
+ const inspectIcon = createLucideElement2(MousePointerClick2);
3581
+ inspectIcon.setAttribute("class", "size-3.5");
3582
+ inspectIcon.setAttribute("aria-hidden", "true");
3583
+ const inspectBtn = el(
3584
+ "button",
3585
+ {
3586
+ class: BUTTON_CLASS,
3587
+ attrs: {
3588
+ type: "button",
3589
+ "data-uidex-menubar-inspect": "",
3590
+ "aria-label": `Inspect (${formatShortcutLabel(INSPECT_SHORTCUT)})`
3591
+ }
3592
+ },
3593
+ inspectIcon
3594
+ );
3094
3595
  inspectBtn.addEventListener("click", (e) => {
3095
3596
  e.stopPropagation();
3096
3597
  session.send({ type: "TOGGLE_INSPECTOR" });
3097
3598
  });
3098
3599
  root.appendChild(inspectBtn);
3099
- const paletteBtn = document.createElement("button");
3100
- paletteBtn.type = "button";
3101
- paletteBtn.setAttribute("data-uidex-menubar-palette", "");
3102
- paletteBtn.textContent = "\u2318K";
3103
- Object.assign(paletteBtn.style, buttonStyle);
3600
+ const paletteIcon = createLucideElement2(Command);
3601
+ paletteIcon.setAttribute("class", "size-3.5");
3602
+ paletteIcon.setAttribute("aria-hidden", "true");
3603
+ const paletteBtn = el(
3604
+ "button",
3605
+ {
3606
+ class: BUTTON_CLASS,
3607
+ attrs: {
3608
+ type: "button",
3609
+ "data-uidex-menubar-palette": "",
3610
+ "aria-label": "Command palette"
3611
+ }
3612
+ },
3613
+ paletteIcon
3614
+ );
3104
3615
  paletteBtn.addEventListener("click", (e) => {
3105
3616
  e.stopPropagation();
3106
3617
  if (session.getState().stack.length > 0) {
@@ -3113,13 +3624,14 @@ function createMenuBar(options) {
3113
3624
  container.appendChild(root);
3114
3625
  const syncButtonStates = () => {
3115
3626
  const state = session.getState();
3627
+ const inspectActive = state.inspectorActive;
3116
3628
  inspectBtn.setAttribute(
3117
3629
  "data-uidex-menubar-inspect-active",
3118
- state.inspectorActive ? "true" : "false"
3630
+ inspectActive ? "true" : "false"
3119
3631
  );
3120
- Object.assign(
3121
- inspectBtn.style,
3122
- state.inspectorActive ? buttonActiveStyle : buttonStyle
3632
+ inspectBtn.className = cn(
3633
+ BUTTON_CLASS,
3634
+ inspectActive && BUTTON_ACTIVE_CLASS
3123
3635
  );
3124
3636
  const top = state.stack[state.stack.length - 1] ?? null;
3125
3637
  const paletteOpen = top?.id === "command-palette";
@@ -3127,16 +3639,17 @@ function createMenuBar(options) {
3127
3639
  "data-uidex-menubar-palette-active",
3128
3640
  paletteOpen ? "true" : "false"
3129
3641
  );
3130
- Object.assign(
3131
- paletteBtn.style,
3132
- paletteOpen ? buttonActiveStyle : buttonStyle
3133
- );
3642
+ paletteBtn.className = cn(BUTTON_CLASS, paletteOpen && BUTTON_ACTIVE_CLASS);
3134
3643
  const highlightActive = state.pinnedHighlight !== null;
3135
- highlightDot.setAttribute(
3644
+ highlightBtn.setAttribute(
3136
3645
  "data-uidex-menubar-highlight-active",
3137
3646
  highlightActive ? "true" : "false"
3138
3647
  );
3139
- highlightDot.style.display = highlightActive ? "inline-block" : "none";
3648
+ highlightBtn.className = cn(
3649
+ BUTTON_CLASS,
3650
+ highlightActive && BUTTON_HIGHLIGHT_ACTIVE_CLASS
3651
+ );
3652
+ highlightBtn.hidden = !highlightActive;
3140
3653
  };
3141
3654
  syncButtonStates();
3142
3655
  const unsubscribeSession = session.subscribe(syncButtonStates);
@@ -3220,13 +3733,28 @@ function createMenuBar(options) {
3220
3733
  var DEFAULT_COLOR = "#34d399";
3221
3734
  var DEFAULT_BORDER_WIDTH = 2;
3222
3735
  var DEFAULT_FILL_OPACITY = 0.08;
3736
+ var BACKDROP_OPACITY = 0.45;
3223
3737
  function createOverlay(deps) {
3224
3738
  const { container } = deps;
3739
+ const backdrop = document.createElement("div");
3740
+ backdrop.setAttribute("data-uidex-overlay-backdrop", "");
3741
+ backdrop.style.position = "fixed";
3742
+ backdrop.style.inset = "0";
3743
+ backdrop.style.zIndex = String(Z_OVERLAY);
3744
+ backdrop.style.backgroundColor = `rgba(0, 0, 0, ${BACKDROP_OPACITY})`;
3745
+ backdrop.style.display = "none";
3746
+ backdrop.style.pointerEvents = "auto";
3747
+ backdrop.style.cursor = "default";
3748
+ backdrop.addEventListener("click", (e) => {
3749
+ e.stopPropagation();
3750
+ overlay.onDismiss?.();
3751
+ });
3752
+ container.appendChild(backdrop);
3225
3753
  const box = document.createElement("div");
3226
3754
  box.setAttribute("data-uidex-overlay", "");
3227
3755
  box.style.position = "fixed";
3228
3756
  box.style.pointerEvents = "none";
3229
- box.style.zIndex = String(Z_OVERLAY);
3757
+ box.style.zIndex = String(Z_OVERLAY + 1);
3230
3758
  box.style.boxSizing = "border-box";
3231
3759
  box.style.display = "none";
3232
3760
  const label = document.createElement("div");
@@ -3250,7 +3778,8 @@ function createOverlay(deps) {
3250
3778
  padding: 0,
3251
3779
  borderStyle: "solid",
3252
3780
  borderWidth: DEFAULT_BORDER_WIDTH,
3253
- fillOpacity: DEFAULT_FILL_OPACITY
3781
+ fillOpacity: DEFAULT_FILL_OPACITY,
3782
+ backdrop: false
3254
3783
  };
3255
3784
  let rafId = null;
3256
3785
  let attached = false;
@@ -3294,16 +3823,26 @@ function createOverlay(deps) {
3294
3823
  if (!target) return;
3295
3824
  const rect = target.getBoundingClientRect();
3296
3825
  const pad = opts.padding;
3297
- box.style.top = `${rect.top - pad}px`;
3298
- box.style.left = `${rect.left - pad}px`;
3299
- box.style.width = `${rect.width + pad * 2}px`;
3300
- box.style.height = `${rect.height + pad * 2}px`;
3826
+ const top = rect.top - pad;
3827
+ const left = rect.left - pad;
3828
+ const w = rect.width + pad * 2;
3829
+ const h = rect.height + pad * 2;
3830
+ box.style.top = `${top}px`;
3831
+ box.style.left = `${left}px`;
3832
+ box.style.width = `${w}px`;
3833
+ box.style.height = `${h}px`;
3834
+ if (opts.backdrop) {
3835
+ const vw = window.innerWidth;
3836
+ const vh = window.innerHeight;
3837
+ backdrop.style.clipPath = cutoutPath(vw, vh, left, top, w, h);
3838
+ }
3301
3839
  }
3302
3840
  function applyStyles() {
3303
3841
  box.style.borderColor = opts.color;
3304
3842
  box.style.borderStyle = opts.borderStyle;
3305
3843
  box.style.borderWidth = `${opts.borderWidth}px`;
3306
3844
  box.style.backgroundColor = rgbaFromColor(opts.color, opts.fillOpacity);
3845
+ box.style.borderRadius = "6px";
3307
3846
  if (opts.label) {
3308
3847
  label.textContent = opts.label;
3309
3848
  label.style.backgroundColor = opts.color;
@@ -3312,8 +3851,13 @@ function createOverlay(deps) {
3312
3851
  label.textContent = "";
3313
3852
  label.style.display = "none";
3314
3853
  }
3854
+ backdrop.style.display = opts.backdrop ? "" : "none";
3855
+ if (!opts.backdrop) {
3856
+ backdrop.style.clipPath = "";
3857
+ }
3315
3858
  }
3316
- return {
3859
+ const overlay = {
3860
+ onDismiss: null,
3317
3861
  show(nextTarget, showOpts) {
3318
3862
  target = nextTarget;
3319
3863
  opts = {
@@ -3322,7 +3866,8 @@ function createOverlay(deps) {
3322
3866
  padding: showOpts?.padding ?? 0,
3323
3867
  borderStyle: showOpts?.borderStyle ?? "solid",
3324
3868
  borderWidth: showOpts?.borderWidth ?? DEFAULT_BORDER_WIDTH,
3325
- fillOpacity: showOpts?.fillOpacity ?? DEFAULT_FILL_OPACITY
3869
+ fillOpacity: showOpts?.fillOpacity ?? DEFAULT_FILL_OPACITY,
3870
+ backdrop: showOpts?.backdrop ?? false
3326
3871
  };
3327
3872
  applyStyles();
3328
3873
  updatePosition();
@@ -3332,17 +3877,26 @@ function createOverlay(deps) {
3332
3877
  hide() {
3333
3878
  target = null;
3334
3879
  box.style.display = "none";
3880
+ backdrop.style.display = "none";
3881
+ backdrop.style.clipPath = "";
3335
3882
  detach();
3336
3883
  },
3337
3884
  destroy() {
3338
3885
  detach();
3339
3886
  box.remove();
3887
+ backdrop.remove();
3340
3888
  target = null;
3341
3889
  },
3342
3890
  get isVisible() {
3343
3891
  return target !== null;
3344
3892
  }
3345
3893
  };
3894
+ return overlay;
3895
+ }
3896
+ function cutoutPath(vw, vh, x, y, w, h) {
3897
+ const outer = `M0 0H${vw}V${vh}H0Z`;
3898
+ const inner = `M${x} ${y}V${y + h}H${x + w}V${y}Z`;
3899
+ return `path(evenodd,"${outer}${inner}")`;
3346
3900
  }
3347
3901
  function rgbaFromColor(color, alpha) {
3348
3902
  if (color.startsWith("#")) {
@@ -3450,21 +4004,35 @@ function createSurfaceShell(options) {
3450
4004
  });
3451
4005
  cleanup.add(tooltip);
3452
4006
  const afterHover = options.inspector?.onAfterHover;
4007
+ const showStack = (stack, cursor) => {
4008
+ if (!stack) {
4009
+ overlay.hide();
4010
+ tooltip.update(null, cursor);
4011
+ return;
4012
+ }
4013
+ const { current } = stack;
4014
+ overlay.show(current.element, {
4015
+ color: KIND_STYLE[current.ref.kind].color
4016
+ });
4017
+ tooltip.update(
4018
+ {
4019
+ entity: current.entity,
4020
+ node: current.element,
4021
+ layer: stack.matches.length > 1 ? { index: stack.index, total: stack.matches.length } : void 0
4022
+ },
4023
+ cursor
4024
+ );
4025
+ };
3453
4026
  const inspector = createInspector({
3454
4027
  session: options.session,
3455
4028
  registry: options.registry,
3456
4029
  onSelect: options.inspector?.onSelect,
3457
- onHover: (match, cursor) => {
3458
- if (!match) {
3459
- overlay.hide();
3460
- tooltip.update(null, cursor);
3461
- } else {
3462
- overlay.show(match.element, {
3463
- color: KIND_STYLE[match.ref.kind].color
3464
- });
3465
- tooltip.update({ entity: match.entity, node: match.element }, cursor);
3466
- }
3467
- afterHover?.(match, cursor);
4030
+ onHover: (stack, cursor) => {
4031
+ showStack(stack, cursor);
4032
+ afterHover?.(stack?.current ?? null, cursor);
4033
+ },
4034
+ onCycle: (stack, cursor) => {
4035
+ showStack(stack, cursor);
3468
4036
  }
3469
4037
  });
3470
4038
  cleanup.add(inspector);