@godxjp/ui 28.6.0 → 28.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/dist/components/data-display/data-table.d.ts +10 -2
  2. package/dist/components/data-display/data-table.js +12 -5
  3. package/dist/components/data-display/index.d.ts +2 -0
  4. package/dist/components/data-display/index.js +2 -0
  5. package/dist/components/data-display/marquee.d.ts +16 -0
  6. package/dist/components/data-display/marquee.js +155 -0
  7. package/dist/components/data-display/scroll-area.js +16 -2
  8. package/dist/components/data-display/service-launcher-card.d.ts +25 -0
  9. package/dist/components/data-display/table.d.ts +38 -1
  10. package/dist/components/data-display/table.js +57 -39
  11. package/dist/components/data-entry/form-field.js +29 -12
  12. package/dist/components/general/reveal.d.ts +23 -2
  13. package/dist/components/general/reveal.js +37 -7
  14. package/dist/components/general/typography.d.ts +4 -1
  15. package/dist/components/general/typography.js +14 -1
  16. package/dist/components/layout/affix.d.ts +86 -0
  17. package/dist/components/layout/affix.js +187 -0
  18. package/dist/components/layout/index.d.ts +4 -0
  19. package/dist/components/layout/index.js +4 -0
  20. package/dist/components/layout/legal-document-shell.js +4 -3
  21. package/dist/components/layout/masonry.d.ts +74 -0
  22. package/dist/components/layout/masonry.js +214 -0
  23. package/dist/components/layout/page-container.js +5 -20
  24. package/dist/components/navigation/anchor.d.ts +64 -0
  25. package/dist/components/navigation/anchor.js +284 -0
  26. package/dist/components/navigation/app-setting-picker.js +20 -3
  27. package/dist/components/navigation/index.d.ts +4 -0
  28. package/dist/components/navigation/index.js +4 -0
  29. package/dist/components/navigation/mega-menu.d.ts +21 -0
  30. package/dist/components/navigation/mega-menu.js +526 -0
  31. package/dist/components/ui/table.js +1 -0
  32. package/dist/contracts/measurement.json +1 -1
  33. package/dist/i18n/messages/en.json +522 -1
  34. package/dist/i18n/messages/ja.json +518 -1
  35. package/dist/i18n/messages/vi.json +518 -1
  36. package/dist/lib/hooks.d.ts +91 -0
  37. package/dist/lib/hooks.js +79 -0
  38. package/dist/lib/platform.d.ts +14 -0
  39. package/dist/lib/platform.js +10 -1
  40. package/dist/lib/utils.d.ts +1 -1
  41. package/dist/lib/utils.js +3 -2
  42. package/dist/props/components/data-display.prop.d.ts +109 -1
  43. package/dist/props/components/general.prop.d.ts +47 -3
  44. package/dist/props/components/layout.prop.d.ts +194 -0
  45. package/dist/props/components/navigation.prop.d.ts +263 -0
  46. package/dist/props/registry.d.ts +360 -5
  47. package/dist/props/registry.js +474 -4
  48. package/dist/props/vocabulary/index.d.ts +1 -1
  49. package/dist/props/vocabulary/interaction.prop.d.ts +39 -2
  50. package/dist/styles/control.css +5 -6
  51. package/dist/styles/data-display-layout.css +2 -1
  52. package/dist/styles/density.css +4 -0
  53. package/dist/styles/form-layout.css +22 -0
  54. package/dist/styles/layout.css +79 -1
  55. package/dist/styles/motion.css +121 -1
  56. package/dist/styles/navigation-layout.css +415 -20
  57. package/dist/styles/shell-layout.css +3 -0
  58. package/dist/styles/text-layout.css +52 -4
  59. package/dist/tokens/base.css +5 -0
  60. package/dist/tokens/components/affix.css +7 -0
  61. package/dist/tokens/components/anchor.css +17 -0
  62. package/dist/tokens/components/control.css +3 -3
  63. package/dist/tokens/components/form.css +3 -1
  64. package/dist/tokens/components/marquee.css +7 -0
  65. package/dist/tokens/components/masonry.css +6 -0
  66. package/dist/tokens/components/mega-menu.css +62 -0
  67. package/dist/tokens/components/navigation.css +2 -0
  68. package/dist/tokens/components/shell.css +3 -0
  69. package/dist/tokens/foundation.css +11 -0
  70. package/dist/tokens/semantic/layout.css +7 -0
  71. package/docs/COMPOSITION-VS-COMPONENT.md +21 -0
  72. package/docs/DESIGN-AUTHORITY.md +124 -23
  73. package/docs/FRAME-COVERAGE-REPORT.md +7 -2
  74. package/docs/data-display/marquee.tsx +254 -0
  75. package/docs/data-display/scroll-area.tsx +31 -0
  76. package/docs/data-display/service-launcher-card.tsx +275 -115
  77. package/docs/foundation/_theme-editor-scope.ts +222 -0
  78. package/docs/foundation/density.tsx +12 -2
  79. package/docs/foundation/spacing.tsx +5 -0
  80. package/docs/foundation/theme-editor.tsx +645 -0
  81. package/docs/general/activity.tsx +65 -0
  82. package/docs/general/reveal.tsx +290 -22
  83. package/docs/general/typography.tsx +91 -1
  84. package/docs/layout/affix.tsx +209 -0
  85. package/docs/layout/masonry.tsx +291 -0
  86. package/docs/navigation/anchor.tsx +285 -0
  87. package/docs/navigation/mega-menu-panel.tsx +86 -0
  88. package/docs/navigation/mega-menu.tsx +254 -0
  89. package/docs/roadmap/website-components.md +779 -0
  90. package/docs/showcase/acme-website.tsx +75 -39
  91. package/docs/showcase/futurelastic-web.tsx +91 -49
  92. package/docs/showcase/marketing-page.tsx +885 -0
  93. package/docs/showcase/table-footer-totals.tsx +12 -2
  94. package/docs/showcase/theme-customization.tsx +1259 -0
  95. package/package.json +8 -5
  96. package/scripts/brand-accent.generated.mjs +27 -0
  97. package/scripts/ui-audit.mjs +66 -0
  98. package/scripts/visual-audit-rules.mjs +46 -2
  99. package/scripts/visual-audit.mjs +29 -1
@@ -220,27 +220,27 @@
220
220
  }
221
221
 
222
222
  [data-slot="tabs"][data-variant="card"][data-placement="start"] [data-slot="tabs-list"],
223
- [data-slot="tabs"][data-variant="editable-card"][data-placement="start"]
224
- [data-slot="tabs-list"] {
223
+ [data-slot="tabs"][data-variant="editable-card"][data-placement="start"] [data-slot="tabs-list"] {
225
224
  box-shadow: inset calc(-1 * var(--tabs-card-rail-border-width)) 0 0 hsl(var(--border));
226
225
  }
227
226
 
228
227
  [data-slot="tabs"][data-variant="card"][data-placement="end"] [data-slot="tabs-list"],
229
- [data-slot="tabs"][data-variant="editable-card"][data-placement="end"]
230
- [data-slot="tabs-list"] {
228
+ [data-slot="tabs"][data-variant="editable-card"][data-placement="end"] [data-slot="tabs-list"] {
231
229
  box-shadow: inset var(--tabs-card-rail-border-width) 0 0 hsl(var(--border));
232
230
  }
233
231
 
234
- [dir="rtl"] [data-slot="tabs"][data-variant="card"][data-placement="start"]
232
+ [dir="rtl"]
233
+ [data-slot="tabs"][data-variant="card"][data-placement="start"]
235
234
  [data-slot="tabs-list"],
236
- [dir="rtl"] [data-slot="tabs"][data-variant="editable-card"][data-placement="start"]
235
+ [dir="rtl"]
236
+ [data-slot="tabs"][data-variant="editable-card"][data-placement="start"]
237
237
  [data-slot="tabs-list"] {
238
238
  box-shadow: inset var(--tabs-card-rail-border-width) 0 0 hsl(var(--border));
239
239
  }
240
240
 
241
- [dir="rtl"] [data-slot="tabs"][data-variant="card"][data-placement="end"]
242
- [data-slot="tabs-list"],
243
- [dir="rtl"] [data-slot="tabs"][data-variant="editable-card"][data-placement="end"]
241
+ [dir="rtl"] [data-slot="tabs"][data-variant="card"][data-placement="end"] [data-slot="tabs-list"],
242
+ [dir="rtl"]
243
+ [data-slot="tabs"][data-variant="editable-card"][data-placement="end"]
244
244
  [data-slot="tabs-list"] {
245
245
  box-shadow: inset calc(-1 * var(--tabs-card-rail-border-width)) 0 0 hsl(var(--border));
246
246
  }
@@ -277,7 +277,7 @@
277
277
  margin-inline-start: calc(var(--tabs-panel-space-inset) + var(--tabs-panel-border-width));
278
278
  }
279
279
 
280
- [data-slot="tabs"][data-bodied="true"] > [data-slot="tabs-panel"],
280
+ [data-slot="tabs"][data-bodied="true"] > [data-slot="tabs-panel"],
281
281
  [data-slot="tabs"][data-bodied="true"] > [data-slot="tabs-content"] {
282
282
  border: var(--tabs-panel-border-width) solid hsl(var(--border));
283
283
  border-radius: var(--tabs-panel-radius);
@@ -1002,7 +1002,6 @@
1002
1002
  }
1003
1003
 
1004
1004
  .ui-app-setting-picker-icon {
1005
- inline-size: var(--control-height);
1006
1005
  justify-content: center;
1007
1006
  border-color: transparent;
1008
1007
  background: transparent;
@@ -1026,35 +1025,35 @@
1026
1025
 
1027
1026
  @media (min-width: 40rem) {
1028
1027
  .ui-app-setting-picker-trigger[data-kind="locale"] {
1029
- inline-size: var(--app-setting-picker-locale-width);
1028
+ --app-setting-picker-trigger-width: var(--app-setting-picker-locale-width);
1030
1029
  }
1031
1030
 
1032
1031
  .ui-app-setting-picker-trigger[data-kind="timezone"] {
1033
- inline-size: var(--app-setting-picker-timezone-width);
1032
+ --app-setting-picker-trigger-width: var(--app-setting-picker-timezone-width);
1034
1033
  }
1035
1034
 
1036
1035
  .ui-app-setting-picker-trigger[data-kind="dateFormat"] {
1037
- inline-size: var(--app-setting-picker-date-format-width);
1036
+ --app-setting-picker-trigger-width: var(--app-setting-picker-date-format-width);
1038
1037
  }
1039
1038
 
1040
1039
  .ui-app-setting-picker-trigger[data-kind="timeFormat"] {
1041
- inline-size: var(--app-setting-picker-time-format-width);
1040
+ --app-setting-picker-trigger-width: var(--app-setting-picker-time-format-width);
1042
1041
  }
1043
1042
 
1044
1043
  .ui-app-setting-picker-trigger[data-kind="theme"] {
1045
- inline-size: var(--app-setting-picker-theme-width);
1044
+ --app-setting-picker-trigger-width: var(--app-setting-picker-theme-width);
1046
1045
  }
1047
1046
 
1048
1047
  .ui-app-setting-picker-trigger[data-kind="brand"] {
1049
- inline-size: var(--app-setting-picker-brand-width);
1048
+ --app-setting-picker-trigger-width: var(--app-setting-picker-brand-width);
1050
1049
  }
1051
1050
 
1052
1051
  .ui-app-setting-picker-trigger[data-kind="density"] {
1053
- inline-size: var(--app-setting-picker-density-width);
1052
+ --app-setting-picker-trigger-width: var(--app-setting-picker-density-width);
1054
1053
  }
1055
1054
 
1056
1055
  .ui-app-setting-picker-trigger[data-kind="fontSize"] {
1057
- inline-size: var(--app-setting-picker-font-size-width);
1056
+ --app-setting-picker-trigger-width: var(--app-setting-picker-font-size-width);
1058
1057
  }
1059
1058
  }
1060
1059
  }
@@ -1086,12 +1085,13 @@
1086
1085
  }
1087
1086
 
1088
1087
  .ui-conversations-row {
1088
+ --button-radius: var(--conversations-item-radius);
1089
+
1089
1090
  min-inline-size: 0;
1090
1091
  height: var(--conversations-item-height);
1091
1092
  flex: 1 1 auto;
1092
1093
  gap: var(--conversations-item-gap);
1093
1094
  padding-inline: var(--conversations-item-padding-inline);
1094
- border-radius: var(--conversations-item-radius);
1095
1095
  color: var(--conversations-item-color, hsl(var(--muted-foreground)));
1096
1096
  font-size: var(--conversations-item-font-size);
1097
1097
  }
@@ -1196,4 +1196,399 @@
1196
1196
  hsl(var(--separator-rule-color, var(--border)));
1197
1197
  background: transparent;
1198
1198
  }
1199
+
1200
+ .ui-anchor-track {
1201
+ position: relative;
1202
+ }
1203
+
1204
+ .ui-anchor-list {
1205
+ list-style: none;
1206
+ margin: 0;
1207
+ padding: 0;
1208
+ }
1209
+
1210
+ .ui-anchor [data-slot="anchor-link"] {
1211
+ display: block;
1212
+ padding-block: var(--anchor-item-padding-block);
1213
+ padding-inline: var(--anchor-item-padding-inline) 0;
1214
+ color: hsl(var(--muted-foreground));
1215
+ text-decoration: none;
1216
+
1217
+ overflow-wrap: anywhere;
1218
+ }
1219
+
1220
+ .ui-anchor [data-slot="anchor-link"]:hover {
1221
+ color: hsl(var(--foreground));
1222
+ }
1223
+
1224
+ .ui-anchor [data-slot="anchor-link"][data-active] {
1225
+ color: hsl(var(--anchor-ink-color, var(--primary)));
1226
+ font-weight: var(--font-weight-medium);
1227
+ }
1228
+
1229
+ .ui-anchor [data-slot="anchor-item"][data-nested] > [data-slot="anchor-link"] {
1230
+ padding-inline-start: calc(
1231
+ var(--anchor-item-padding-inline) + var(--anchor-nested-padding-inline)
1232
+ );
1233
+ }
1234
+
1235
+ .ui-anchor-ink {
1236
+ position: absolute;
1237
+ background: hsl(var(--anchor-ink-color, var(--primary)));
1238
+
1239
+ opacity: 0;
1240
+ transition:
1241
+ opacity var(--duration-fast) var(--ease-standard),
1242
+ inset-block-start var(--duration-fast) var(--ease-standard),
1243
+ inset-inline-start var(--duration-fast) var(--ease-standard),
1244
+ block-size var(--duration-fast) var(--ease-standard),
1245
+ inline-size var(--duration-fast) var(--ease-standard);
1246
+ }
1247
+
1248
+ .ui-anchor-ink[data-visible] {
1249
+ opacity: 1;
1250
+ }
1251
+
1252
+ .ui-anchor[data-ink="hidden"] .ui-anchor-ink {
1253
+ display: none;
1254
+ }
1255
+
1256
+ .ui-anchor[data-direction="vertical"] .ui-anchor-track {
1257
+ border-inline-start: var(--anchor-ink-width) solid hsl(var(--anchor-track-color, var(--border)));
1258
+ }
1259
+
1260
+ .ui-anchor[data-direction="vertical"] .ui-anchor-ink {
1261
+
1262
+ inset-inline-start: calc(-1 * var(--anchor-ink-width));
1263
+ inline-size: var(--anchor-ink-width);
1264
+ inset-block-start: var(--anchor-ink-offset, 0px);
1265
+ block-size: var(--anchor-ink-extent, 0px);
1266
+ }
1267
+
1268
+ .ui-anchor[data-direction="horizontal"] .ui-anchor-track {
1269
+ border-block-end: var(--anchor-ink-width) solid hsl(var(--anchor-track-color, var(--border)));
1270
+ }
1271
+
1272
+ .ui-anchor[data-direction="horizontal"] .ui-anchor-list {
1273
+ display: flex;
1274
+ gap: var(--anchor-gap);
1275
+
1276
+ overflow-x: auto;
1277
+ }
1278
+
1279
+ .ui-anchor[data-direction="horizontal"] [data-slot="anchor-link"] {
1280
+ padding-inline: 0;
1281
+ white-space: nowrap;
1282
+ }
1283
+
1284
+ .ui-anchor[data-direction="horizontal"] .ui-anchor-ink {
1285
+ inset-block-end: calc(-1 * var(--anchor-ink-width));
1286
+ block-size: var(--anchor-ink-width);
1287
+ inset-inline-start: var(--anchor-ink-offset, 0px);
1288
+ inline-size: var(--anchor-ink-extent, 0px);
1289
+ }
1290
+
1291
+ @media (prefers-reduced-motion: reduce) {
1292
+ .ui-anchor-ink {
1293
+ transition: none;
1294
+ }
1295
+ }
1296
+ }
1297
+
1298
+ @layer components {
1299
+
1300
+ .ui-mega-menu {
1301
+ position: relative;
1302
+ display: block;
1303
+ }
1304
+
1305
+ .ui-mega-menu-bar {
1306
+ display: flex;
1307
+ flex-wrap: wrap;
1308
+ align-items: center;
1309
+ gap: var(--mega-menu-bar-gap);
1310
+ margin: 0;
1311
+ padding: 0;
1312
+ list-style: none;
1313
+ }
1314
+
1315
+ .ui-mega-menu-item {
1316
+ position: static;
1317
+ list-style: none;
1318
+ }
1319
+
1320
+ .ui-mega-menu-trigger {
1321
+ display: inline-flex;
1322
+ align-items: center;
1323
+ gap: var(--mega-menu-trigger-gap);
1324
+ min-block-size: var(--mega-menu-trigger-height);
1325
+ padding-inline: var(--mega-menu-trigger-padding-x);
1326
+ border: 0;
1327
+ border-radius: var(--mega-menu-trigger-radius);
1328
+ background: var(--mega-menu-trigger-background);
1329
+ color: var(--mega-menu-trigger-foreground);
1330
+ font-size: var(--mega-menu-trigger-font-size);
1331
+ font-weight: var(--font-weight-medium);
1332
+ line-height: var(--line-height-normal);
1333
+ text-align: start;
1334
+ text-decoration: none;
1335
+ cursor: pointer;
1336
+ }
1337
+
1338
+ .ui-mega-menu-trigger:hover {
1339
+ background: var(--mega-menu-trigger-hover-background, hsl(var(--accent)));
1340
+ color: var(--mega-menu-trigger-hover-foreground, hsl(var(--accent-foreground)));
1341
+ }
1342
+
1343
+ .ui-mega-menu-trigger[data-open="true"] {
1344
+ background: var(--mega-menu-trigger-open-background, hsl(var(--accent)));
1345
+ color: var(--mega-menu-trigger-open-foreground, hsl(var(--accent-foreground)));
1346
+ }
1347
+
1348
+ .ui-mega-menu-trigger[aria-current="page"] {
1349
+ color: var(--mega-menu-trigger-current-foreground, hsl(var(--primary)));
1350
+ font-weight: var(--font-weight-semibold);
1351
+ text-decoration: underline;
1352
+ text-underline-offset: var(--space-1);
1353
+ }
1354
+
1355
+ .ui-mega-menu-trigger:disabled,
1356
+ .ui-mega-menu-trigger[aria-disabled="true"] {
1357
+ opacity: var(--mega-menu-trigger-disabled-alpha);
1358
+ cursor: not-allowed;
1359
+ }
1360
+
1361
+ .ui-mega-menu-trigger-icon {
1362
+ display: inline-flex;
1363
+ flex: none;
1364
+ }
1365
+
1366
+ .ui-mega-menu-trigger-icon svg {
1367
+ inline-size: var(--mega-menu-expand-icon-size);
1368
+ block-size: var(--mega-menu-expand-icon-size);
1369
+ }
1370
+
1371
+ .ui-mega-menu-trigger-label {
1372
+ min-inline-size: 0;
1373
+ overflow-wrap: anywhere;
1374
+ }
1375
+
1376
+ .ui-mega-menu-expand-icon {
1377
+ display: inline-flex;
1378
+ flex: none;
1379
+ transition: rotate var(--duration-fast) var(--ease-standard);
1380
+ }
1381
+
1382
+ .ui-mega-menu-expand-icon svg {
1383
+ inline-size: var(--mega-menu-expand-icon-size);
1384
+ block-size: var(--mega-menu-expand-icon-size);
1385
+ }
1386
+
1387
+ .ui-mega-menu-trigger[data-open="true"] .ui-mega-menu-expand-icon {
1388
+ rotate: 180deg;
1389
+ }
1390
+
1391
+ .ui-mega-menu-panel {
1392
+ position: fixed;
1393
+ z-index: var(--overlay-z-index);
1394
+ inset-inline-start: 0;
1395
+ inset-block-start: var(--mega-menu-panel-offset);
1396
+ inline-size: var(--mega-menu-panel-measured-width, 100%);
1397
+ translate: var(--mega-menu-panel-translate-x, 0) var(--mega-menu-panel-translate-y, 0);
1398
+ max-block-size: var(--mega-menu-panel-max-height);
1399
+ overflow-y: auto;
1400
+ border: var(--mega-menu-panel-border-width) solid var(--mega-menu-panel-border-color);
1401
+ border-radius: var(--mega-menu-panel-radius);
1402
+ background: var(--mega-menu-panel-background);
1403
+ color: var(--mega-menu-panel-foreground);
1404
+ box-shadow: var(--mega-menu-panel-shadow);
1405
+ animation: ui-mega-menu-panel-in var(--duration-fast) var(--ease-standard);
1406
+ }
1407
+
1408
+ @keyframes ui-mega-menu-panel-in {
1409
+ from {
1410
+ opacity: 0;
1411
+ }
1412
+
1413
+ to {
1414
+ opacity: 1;
1415
+ }
1416
+ }
1417
+
1418
+ .ui-mega-menu-panel-inner {
1419
+ padding: var(--mega-menu-panel-padding);
1420
+ }
1421
+
1422
+ .ui-mega-menu-groups {
1423
+ display: grid;
1424
+ grid-template-columns: repeat(
1425
+ auto-fit,
1426
+ minmax(min(var(--mega-menu-group-min-width), 100%), 1fr)
1427
+ );
1428
+ gap: var(--mega-menu-groups-gap);
1429
+ margin: 0;
1430
+ padding: 0;
1431
+ list-style: none;
1432
+ }
1433
+
1434
+ .ui-mega-menu-group {
1435
+ display: flex;
1436
+ flex-direction: column;
1437
+ gap: var(--mega-menu-group-gap);
1438
+ min-inline-size: 0;
1439
+ list-style: none;
1440
+ }
1441
+
1442
+ .ui-mega-menu-group-label {
1443
+ display: flex;
1444
+ align-items: center;
1445
+ gap: var(--mega-menu-link-gap);
1446
+ margin: 0;
1447
+ color: var(--mega-menu-group-label-foreground);
1448
+ font-size: var(--mega-menu-group-label-font-size);
1449
+ font-weight: var(--font-weight-semibold);
1450
+ overflow-wrap: anywhere;
1451
+ }
1452
+
1453
+ .ui-mega-menu-group-icon {
1454
+ display: inline-flex;
1455
+ flex: none;
1456
+ }
1457
+
1458
+ .ui-mega-menu-group-icon svg {
1459
+ inline-size: var(--mega-menu-group-icon-size);
1460
+ block-size: var(--mega-menu-group-icon-size);
1461
+ }
1462
+
1463
+ .ui-mega-menu-group-description {
1464
+ margin: 0;
1465
+ color: var(--mega-menu-group-description-foreground);
1466
+ font-size: var(--mega-menu-group-description-font-size);
1467
+ line-height: var(--line-height-body);
1468
+ overflow-wrap: anywhere;
1469
+ }
1470
+
1471
+ .ui-mega-menu-group-links {
1472
+ display: flex;
1473
+ flex-direction: column;
1474
+ margin: 0;
1475
+ padding: 0;
1476
+ list-style: none;
1477
+ }
1478
+
1479
+ .ui-mega-menu-link-row {
1480
+ list-style: none;
1481
+ }
1482
+
1483
+ .ui-mega-menu-link {
1484
+ display: flex;
1485
+ align-items: start;
1486
+ gap: var(--mega-menu-link-gap);
1487
+ min-block-size: var(--mega-menu-link-min-height);
1488
+ padding-block: var(--mega-menu-link-padding-y);
1489
+ padding-inline: var(--mega-menu-link-padding-x);
1490
+ border-radius: var(--mega-menu-link-radius);
1491
+ color: var(--mega-menu-link-foreground);
1492
+ font-size: var(--mega-menu-link-font-size);
1493
+ line-height: var(--line-height-body);
1494
+ text-decoration: none;
1495
+ }
1496
+
1497
+ .ui-mega-menu-link:hover {
1498
+ background: var(--mega-menu-link-hover-background, hsl(var(--accent)));
1499
+ color: var(--mega-menu-link-hover-foreground, hsl(var(--accent-foreground)));
1500
+ }
1501
+
1502
+ .ui-mega-menu-link[aria-current="page"] {
1503
+ color: var(--mega-menu-link-current-foreground, hsl(var(--primary)));
1504
+ font-weight: var(--font-weight-semibold);
1505
+ }
1506
+
1507
+ .ui-mega-menu-link[data-disabled="true"] {
1508
+ opacity: var(--mega-menu-trigger-disabled-alpha);
1509
+ cursor: not-allowed;
1510
+ }
1511
+
1512
+ .ui-mega-menu-link-icon {
1513
+ display: inline-flex;
1514
+ flex: none;
1515
+ }
1516
+
1517
+ .ui-mega-menu-link-icon svg {
1518
+ inline-size: var(--mega-menu-link-icon-size);
1519
+ block-size: var(--mega-menu-link-icon-size);
1520
+ }
1521
+
1522
+ .ui-mega-menu-link-text {
1523
+ display: flex;
1524
+ flex-direction: column;
1525
+ min-inline-size: 0;
1526
+ overflow-wrap: anywhere;
1527
+ }
1528
+
1529
+ .ui-mega-menu-link-description {
1530
+ color: var(--mega-menu-link-description-foreground);
1531
+ font-size: var(--mega-menu-link-description-font-size);
1532
+ font-weight: var(--font-weight-normal);
1533
+ }
1534
+
1535
+ .ui-mega-menu-panel-footer {
1536
+ margin-block-start: var(--mega-menu-panel-footer-gap);
1537
+ padding-block-start: var(--mega-menu-panel-footer-gap);
1538
+ border-block-start: var(--mega-menu-panel-border-width) solid
1539
+ var(--mega-menu-panel-footer-border-color);
1540
+ }
1541
+
1542
+ @media (max-width: 47.99rem) {
1543
+ .ui-mega-menu-bar {
1544
+ flex-direction: column;
1545
+ align-items: stretch;
1546
+ }
1547
+
1548
+ .ui-mega-menu-trigger {
1549
+ inline-size: 100%;
1550
+ justify-content: space-between;
1551
+ }
1552
+
1553
+ .ui-mega-menu-panel {
1554
+ position: static;
1555
+ inline-size: auto;
1556
+ translate: none;
1557
+ max-block-size: none;
1558
+ margin-block-start: var(--mega-menu-bar-gap);
1559
+ box-shadow: none;
1560
+ }
1561
+
1562
+ .ui-mega-menu-panel-inner {
1563
+ padding: var(--mega-menu-link-padding-x);
1564
+ }
1565
+
1566
+ .ui-mega-menu-groups {
1567
+ grid-template-columns: 1fr;
1568
+ gap: var(--mega-menu-group-gap);
1569
+ }
1570
+ }
1571
+
1572
+ @media (prefers-reduced-motion: reduce) {
1573
+ .ui-mega-menu-panel {
1574
+ animation: none;
1575
+ }
1576
+
1577
+ .ui-mega-menu-expand-icon {
1578
+ transition: none;
1579
+ }
1580
+ }
1581
+
1582
+ @media (forced-colors: active) {
1583
+ .ui-mega-menu-panel {
1584
+ border-color: CanvasText;
1585
+ }
1586
+
1587
+ .ui-mega-menu-trigger[data-open="true"],
1588
+ .ui-mega-menu-link[aria-current="page"] {
1589
+ forced-color-adjust: none;
1590
+ background: Highlight;
1591
+ color: HighlightText;
1592
+ }
1593
+ }
1199
1594
  }
@@ -1974,6 +1974,9 @@
1974
1974
  gap: var(--topbar-gap);
1975
1975
  padding-inline: var(--topbar-inset);
1976
1976
 
1977
+ background-color: hsl(var(--background) / var(--topbar-background-alpha));
1978
+ backdrop-filter: blur(var(--topbar-backdrop-blur-size));
1979
+
1977
1980
  overflow: clip;
1978
1981
  overflow-clip-margin: var(--focus-ring-clip-margin);
1979
1982
  }
@@ -27,6 +27,22 @@
27
27
  font-size: var(--font-size-2xl);
28
28
  }
29
29
 
30
+ [data-slot="text"][data-size="3xl"],
31
+ [data-slot="text"][data-size="4xl"],
32
+ [data-slot="text"][data-size="5xl"] {
33
+ line-height: var(--line-height-tight);
34
+ letter-spacing: var(--letter-spacing-tight);
35
+ }
36
+ [data-slot="text"][data-size="3xl"] {
37
+ font-size: var(--font-size-3xl);
38
+ }
39
+ [data-slot="text"][data-size="4xl"] {
40
+ font-size: var(--font-size-4xl);
41
+ }
42
+ [data-slot="text"][data-size="5xl"] {
43
+ font-size: var(--font-size-5xl);
44
+ }
45
+
30
46
  [data-slot="text"][data-weight="regular"],
31
47
  [data-slot="heading"][data-weight="regular"] {
32
48
  font-weight: var(--font-weight-normal);
@@ -154,18 +170,50 @@
154
170
  letter-spacing: var(--letter-spacing-tight);
155
171
  line-height: var(--line-height-tight);
156
172
  }
157
- [data-slot="heading"][data-level="1"] {
173
+
174
+ [data-slot="heading"][data-level="1"]:not([data-size]) {
158
175
  font-size: var(--heading-h1);
159
176
  }
160
- [data-slot="heading"][data-level="2"] {
177
+ [data-slot="heading"][data-level="2"]:not([data-size]) {
161
178
  font-size: var(--heading-h2);
162
179
  }
163
- [data-slot="heading"][data-level="3"] {
180
+ [data-slot="heading"][data-level="3"]:not([data-size]) {
164
181
  font-size: var(--heading-h3);
165
182
  }
166
- [data-slot="heading"][data-level="4"] {
183
+ [data-slot="heading"][data-level="4"]:not([data-size]) {
167
184
  font-size: var(--heading-h4);
168
185
  }
186
+
187
+ [data-slot="heading"][data-size="2xs"] {
188
+ font-size: var(--font-size-2xs);
189
+ }
190
+ [data-slot="heading"][data-size="xs"] {
191
+ font-size: var(--font-size-xs);
192
+ }
193
+ [data-slot="heading"][data-size="sm"] {
194
+ font-size: var(--font-size-sm);
195
+ }
196
+ [data-slot="heading"][data-size="md"] {
197
+ font-size: var(--font-size-base);
198
+ }
199
+ [data-slot="heading"][data-size="lg"] {
200
+ font-size: var(--font-size-lg);
201
+ }
202
+ [data-slot="heading"][data-size="xl"] {
203
+ font-size: var(--font-size-xl);
204
+ }
205
+ [data-slot="heading"][data-size="2xl"] {
206
+ font-size: var(--font-size-2xl);
207
+ }
208
+ [data-slot="heading"][data-size="3xl"] {
209
+ font-size: var(--font-size-3xl);
210
+ }
211
+ [data-slot="heading"][data-size="4xl"] {
212
+ font-size: var(--font-size-4xl);
213
+ }
214
+ [data-slot="heading"][data-size="5xl"] {
215
+ font-size: var(--font-size-5xl);
216
+ }
169
217
  }
170
218
 
171
219
  @layer components {
@@ -44,3 +44,8 @@
44
44
  @import "./components/conversations.css";
45
45
  @import "./components/float-button.css";
46
46
  @import "./components/draggable-panel.css";
47
+ @import "./components/masonry.css";
48
+ @import "./components/mega-menu.css";
49
+ @import "./components/marquee.css";
50
+ @import "./components/affix.css";
51
+ @import "./components/anchor.css";
@@ -0,0 +1,7 @@
1
+
2
+ :root {
3
+
4
+ --affix-inset-block-start: 0px;
5
+
6
+ --affix-inset-block-end: 0px;
7
+ }
@@ -0,0 +1,17 @@
1
+
2
+ :root {
3
+
4
+ --anchor-ink-width: 2px;
5
+
6
+ --anchor-ink-color: initial;
7
+
8
+ --anchor-track-color: initial;
9
+
10
+ --anchor-item-padding-block: var(--space-1);
11
+
12
+ --anchor-item-padding-inline: var(--space-3);
13
+
14
+ --anchor-nested-padding-inline: var(--space-4);
15
+
16
+ --anchor-gap: var(--space-inline-lg);
17
+ }
@@ -377,11 +377,11 @@
377
377
 
378
378
  --control-label-disabled-alpha: 0.7;
379
379
 
380
- --control-surface-border-color: hsl(var(--input));
381
- --control-surface-background: hsl(var(--background));
380
+ --control-surface-border-color: initial;
381
+ --control-surface-background: initial;
382
382
 
383
383
  --control-filled-border-color: transparent;
384
- --control-filled-background: hsl(var(--muted));
384
+ --control-filled-background: initial;
385
385
  --control-filled-shadow: none;
386
386
 
387
387
  --control-borderless-border-color: transparent;
@@ -6,10 +6,12 @@
6
6
 
7
7
  --form-label-gap: var(--space-4);
8
8
 
9
- --form-label-font-size: var(--text-sm);
9
+ --form-label-font-size: var(--control-label-font-size, var(--text-sm));
10
10
 
11
11
  --form-block-gap: var(--space-4);
12
12
 
13
+ --form-feedback-icon-size: var(--icon-size-sm);
14
+
13
15
  --form-field-row-gap: var(--space-3);
14
16
 
15
17
  --form-grid-row-gap: var(--form-field-row-gap);
@@ -0,0 +1,7 @@
1
+
2
+ :root {
3
+
4
+ --marquee-gap-inline: var(--space-inline-lg);
5
+
6
+ --marquee-mask-width: var(--space-10);
7
+ }
@@ -0,0 +1,6 @@
1
+
2
+ :root {
3
+
4
+ --masonry-gap-inline: 0px;
5
+ --masonry-gap-block: 0px;
6
+ }