@master/internal-site 0.2.8 → 0.2.10

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 (120) hide show
  1. package/dist/astro.mjs +2 -1
  2. package/package.json +2 -2
  3. package/src/benchmarks/BenchmarkBars.astro +2 -1
  4. package/src/benchmarks/BenchmarkChart.astro +1 -1
  5. package/src/benchmarks/BenchmarkChartGroup.astro +2 -1
  6. package/src/benchmarks/BenchmarkDataTable.astro +3 -3
  7. package/src/benchmarks/BenchmarkFigure.astro +1 -1
  8. package/src/benchmarks/BenchmarkMetrics.astro +2 -1
  9. package/src/benchmarks/BenchmarkSampleSummary.astro +2 -1
  10. package/src/benchmarks/BenchmarkStackedBars.astro +2 -1
  11. package/src/demo/Demo.svelte +2 -2
  12. package/src/demo/DemoAsset.astro +1 -1
  13. package/src/demo/DemoCatalog.astro +3 -3
  14. package/src/demo/DemoComparison.svelte +2 -2
  15. package/src/demo/DemoContainer.svelte +1 -1
  16. package/src/demo/DemoCopyButton.svelte +2 -2
  17. package/src/demo/DemoFeatureSupport.svelte +2 -2
  18. package/src/demo/DemoGeneratedCSS.svelte +2 -2
  19. package/src/demo/DemoIndex.astro +1 -1
  20. package/src/demo/DemoMotion.svelte +1 -1
  21. package/src/demo/DemoViewport.svelte +5 -5
  22. package/src/demo/DemoWaterfall.astro +2 -1
  23. package/src/demo/foundations/FoundationDialog.astro +1 -1
  24. package/src/docs-shell/components/ArticleHeader.astro +2 -2
  25. package/src/docs-shell/components/Callout.astro +5 -4
  26. package/src/docs-shell/components/CodeCopyButton.astro +3 -3
  27. package/src/docs-shell/components/CodeTabBar.astro +7 -6
  28. package/src/docs-shell/components/CodeTabs.astro +4 -4
  29. package/src/docs-shell/components/CodeView.astro +2 -2
  30. package/src/docs-shell/components/DocHeader.svelte +5 -4
  31. package/src/docs-shell/components/DocMenuButton.svelte +1 -1
  32. package/src/docs-shell/components/DocumentAPIIndex.astro +4 -4
  33. package/src/docs-shell/components/DocumentChoices.astro +4 -4
  34. package/src/docs-shell/components/DocumentCodeExampleView.astro +5 -5
  35. package/src/docs-shell/components/DocumentCopyButton.svelte +2 -2
  36. package/src/docs-shell/components/DocumentDisclosure.astro +3 -3
  37. package/src/docs-shell/components/DocumentFileTree.astro +2 -1
  38. package/src/docs-shell/components/DocumentFlow.astro +2 -2
  39. package/src/docs-shell/components/DocumentIllustration.astro +4 -4
  40. package/src/docs-shell/components/DocumentKeyList.astro +3 -3
  41. package/src/docs-shell/components/DocumentOptionList.astro +2 -2
  42. package/src/docs-shell/components/DocumentParameters.astro +2 -2
  43. package/src/docs-shell/components/DocumentPrompt.astro +3 -3
  44. package/src/docs-shell/components/DocumentValueList.astro +3 -3
  45. package/src/docs-shell/components/DocumentationIndex.svelte +3 -3
  46. package/src/docs-shell/components/ExpandContent.svelte +2 -2
  47. package/src/docs-shell/components/ExplorerView.astro +3 -2
  48. package/src/docs-shell/components/GeneratedCSS.astro +3 -3
  49. package/src/docs-shell/components/InlineCode.astro +4 -3
  50. package/src/docs-shell/components/LanguageButton.svelte +1 -1
  51. package/src/docs-shell/components/NotFound.astro +1 -1
  52. package/src/docs-shell/components/PMAction.astro +1 -1
  53. package/src/docs-shell/components/PageContentDisclosure.astro +3 -3
  54. package/src/docs-shell/components/SearchButton.svelte +4 -5
  55. package/src/docs-shell/components/SearchDialogPanel.svelte +15 -14
  56. package/src/docs-shell/components/Tab.astro +2 -2
  57. package/src/docs-shell/components/Tabs.astro +2 -2
  58. package/src/docs-shell/remark/markdown-components.js +1 -1
  59. package/src/docs-shell/utils/documentation-search.ts +11 -1
  60. package/src/docs-shell/utils/highlight-code-core.ts +2 -2
  61. package/src/examples/components/ArticleTransitionScene.svelte +3 -3
  62. package/src/scripts/legacy-design-routes.ts +2 -1
  63. package/src/styles/blog-article.css +3 -1
  64. package/src/styles/demo.css +0 -3
  65. package/src/styles/docs-shell/documentation-search.css +4 -11
  66. package/src/styles/docs-shell/footer.css +2 -2
  67. package/src/styles/docs-shell/menu.css +1 -1
  68. package/src/styles/docs-shell/prose.css +0 -1
  69. package/src/styles/documentation-illustration.css +3 -3
  70. package/src/styles/documentation-index.css +0 -2
  71. package/src/styles/interface.css +0 -1
  72. package/src/styles/interface.ts +2 -1
  73. package/src/styles/site-contract.md +3 -3
  74. package/src/styles/system/browser.css +0 -1
  75. package/src/styles/system/buttons.ts +2 -0
  76. package/src/styles/system/callout.css +4 -12
  77. package/src/styles/system/callout.ts +4 -0
  78. package/src/styles/system/chart.css +1 -1
  79. package/src/styles/system/code-panel.css +23 -65
  80. package/src/styles/system/code-panel.ts +2 -0
  81. package/src/styles/system/code-tabs.css +4 -32
  82. package/src/styles/system/code-tabs.ts +2 -0
  83. package/src/styles/system/code-ui.ts +2 -0
  84. package/src/styles/system/copy.css +2 -24
  85. package/src/styles/system/dialog.css +10 -11
  86. package/src/styles/system/disclosure.css +3 -13
  87. package/src/styles/system/disclosure.ts +2 -0
  88. package/src/styles/system/header-core.css +8 -17
  89. package/src/styles/system/index.css +3 -7
  90. package/src/styles/system/index.ts +3 -0
  91. package/src/styles/system/inline-code.css +2 -2
  92. package/src/styles/system/inline-code.ts +2 -0
  93. package/src/styles/system/logos.css +1 -1
  94. package/src/styles/system/metrics.css +1 -1
  95. package/src/styles/system/parameters.css +2 -3
  96. package/src/styles/system/parameters.ts +4 -0
  97. package/src/styles/system/prompt.css +3 -5
  98. package/src/styles/system/reading.css +2 -4
  99. package/src/styles/system/search-trigger.css +2 -7
  100. package/src/styles/system/segmented.css +0 -6
  101. package/src/styles/system/sidebar.css +1 -1
  102. package/src/styles/system/stage.css +6 -12
  103. package/src/styles/system/stage.ts +2 -0
  104. package/src/styles/system/steps.css +1 -2
  105. package/src/styles/system/tabs.ts +1 -0
  106. package/src/styles/system/toc.css +3 -3
  107. package/src/styles/system/tray-code.css +2 -4
  108. package/src/styles/system/tray-layout.css +5 -5
  109. package/src/styles/system/tree.css +1 -1
  110. package/src/styles/system/waterfall.css +1 -1
  111. package/src/styles/docs-shell/code.css +0 -5
  112. package/src/styles/system/buttons.css +0 -1
  113. package/src/styles/system/code.css +0 -8
  114. package/src/styles/system/controls.css +0 -10
  115. package/src/styles/system/data.css +0 -10
  116. package/src/styles/system/sheet.css +0 -1
  117. package/src/styles/system/shell.css +0 -8
  118. package/src/styles/system/surfaces.css +0 -7
  119. package/src/styles/system/table.css +0 -3
  120. package/src/styles/system/tray.css +0 -2
@@ -1,7 +1,5 @@
1
- /* prompt: owned component styles; shared definitions come from the foundation. */
1
+ /* A prose prompt uses the canonical code panel; only its prose body differs. */
2
2
  @layer components {
3
- .ui-prompt { --code-corner: calc(var(--ui-space-md) + var(--ui-text-code) * var(--ui-leading-code) / 2 - 1rem); }
4
- .ui-prompt { display: grid; gap: 0; min-width: 0; overflow: hidden; border-radius: var(--ui-radius-xl); background: var(--ui-surface-code); box-shadow: inset 0 0 0 1px var(--ui-line-contour), 0 1px 0 var(--ui-lip); }
5
- .ui-prompt-body { margin: 0; padding: var(--ui-space-xs) var(--ui-space-md) var(--ui-space-md); color: var(--ui-text-strong); font: var(--ui-weight-regular) .9375rem/1.7 var(--font-family-sans); white-space: pre-wrap; }
6
- .ui-prompt-body var { padding: 0 .25em; border-radius: var(--ui-radius-xs); background: var(--ui-surface-chip); color: var(--ui-text-body); box-shadow: inset 0 0 0 1px var(--ui-line-hair); font: var(--ui-weight-regular) .8125rem/1 var(--font-family-mono); font-style: normal; }
3
+ .ui-prompt-body { margin: 0; padding: var(--ui-space-sm) var(--ui-space-md) var(--ui-space-md); color: var(--color-text-strong); font: var(--ui-weight-regular) .9375rem/1.7 var(--font-family-sans); white-space: pre-wrap; }
4
+ .ui-prompt-body var { font-style: normal; }
7
5
  }
@@ -17,16 +17,14 @@
17
17
  .ui-prose > h2 { width: auto; }
18
18
  .ui-prose > h2:not(:first-child)::before { content: ""; display: var(--section-rule, block); position: absolute; top: calc(var(--line) * -.875); inset-inline: 0 var(--rule-end, 0); height: 1px; background: var(--ui-line-hair); pointer-events: none; }
19
19
  .ui-prose > :is(a[id]:empty, .sr-only):first-child + h2, .ui-prose > .ui-disclosure:not(.ui-code + *) + h2, .ui-prose > .ui-disclosure:not(.ui-code + *) + a[id]:empty + h2, .ui-prose > .ui-disclosure:not(.ui-code + *) + hr + h2, .ui-prose > .ui-disclosure:not(.ui-code + *) + hr + a[id]:empty + h2, .ui-prose > .ui-pagehead + h2, .ui-prose > .ui-pagehead + a[id]:empty + h2, .ui-prose > :has(> .ui-disclosure:last-child) + h2 { --section-rule: none; }
20
- .ui-anchor { position: absolute; right: 100%; top: 50%; translate: -.375rem -50%; display: grid; place-items: center; width: 1.5rem; height: 1.5rem; border-radius: var(--ui-radius-sm); color: var(--ui-text-disabled); font: var(--ui-weight-regular) .875rem/1 var(--font-family-mono); opacity: 0; text-decoration: none; transition: opacity var(--ui-duration-quick), color var(--ui-duration-quick); }
20
+ .ui-anchor { position: absolute; right: 100%; top: 50%; translate: -.375rem -50%; display: grid; place-items: center; width: 1.5rem; height: 1.5rem; border-radius: calc(var(--radius-control-sm) * var(--corner-scale)); corner-shape: var(--corner-shape); color: var(--ui-text-disabled); font: var(--ui-weight-regular) .875rem/1 var(--font-family-mono); opacity: 0; text-decoration: none; transition: opacity var(--ui-duration-quick), color var(--ui-duration-quick); }
21
21
  .ui-anchor:hover { color: var(--ui-text-muted); }
22
22
  .ui-prose > :is(h2, h3):is(:hover, :target, :focus-within) > .ui-anchor { opacity: 1; }
23
23
  .ui-anchor:focus-visible { opacity: 1; @apply --ui-focus-ring; outline-offset: 1px; }
24
24
  .ui-prose > :is(p, ul, ol, blockquote, h2, h3, h4) :is(strong, b) { color: var(--ui-text-strong); font-weight: var(--ui-weight-strong); }
25
25
  .ui-prose > :is(p, ul, ol, blockquote) a:not([class]) { color: var(--ui-text-strong); text-decoration: underline; text-decoration-color: var(--ui-line-strong); text-decoration-thickness: 1px; text-underline-offset: .24em; transition: text-decoration-color var(--ui-duration-quick); }
26
26
  .ui-prose > :is(p, ul, ol, blockquote) a:not([class]):hover { text-decoration-color: currentColor; }
27
- .ui-prose > :is(p, ul, ol, blockquote) a:not([class]):focus-visible { @apply --ui-focus-ring; outline-offset: 2px; border-radius: var(--ui-radius-xs); }
28
- .ui-prose > :is(p, ul, ol, blockquote, h2, h3, h4) code:not(pre code) { padding: .125em .375em; border-radius: var(--ui-radius-xs); background: var(--ui-surface-chip); color: color-mix(in oklab, var(--ui-text-strong) 60%, var(--ui-text-body)); box-shadow: inset 0 0 0 1px var(--ui-line-hair); font: var(--ui-weight-regular) .84em/1 var(--font-family-mono); overflow-wrap: anywhere; }
29
- .ui-prose > :is(h2, h3, h4) code:not(pre code) { padding: 0; background: none; box-shadow: none; color: inherit; font-size: .9em; }
27
+ .ui-prose > :is(p, ul, ol, blockquote) a:not([class]):focus-visible { @apply --ui-focus-ring; outline-offset: 2px; border-radius: calc(var(--radius-chip) * var(--corner-scale)); corner-shape: var(--corner-shape); }
30
28
  .ui-prose > :is(ul, ol):not([class]) { padding-left: 1.25em; }
31
29
  .ui-prose > :is(ul, ol):not([class]) li { margin-block: calc(var(--line) * .25); padding-left: .375em; }
32
30
  .ui-prose > :is(ul, ol):not([class]) li > :is(p, ul, ol) { margin-block: calc(var(--line) * .25); }
@@ -1,10 +1,5 @@
1
- /* search-trigger: owned component styles; shared definitions come from the foundation. */
1
+ /* Search action composition; UI button owns the surface and states. */
2
2
  @layer components {
3
- .ui-search-trigger { appearance: none; display: flex; align-items: center; gap: .625rem; width: 100%; height: 2.5rem; padding: 0; border: 0; border-radius: 0;
4
- background: transparent; color: var(--ui-text-muted); box-shadow: inset 0 -1px 0 var(--ui-line-hair); font: var(--ui-weight-regular) var(--ui-text-small)/1 var(--font-family-sans); cursor: pointer; transition: color var(--ui-duration-quick), box-shadow var(--ui-duration-quick); }
5
- .ui-search-trigger:hover { color: var(--ui-text-strong); box-shadow: inset 0 -1px 0 var(--ui-line-strong); }
6
- .ui-search-trigger > .kbd { box-shadow: none; }
7
- .ui-search-trigger:focus-visible { @apply --ui-focus-ring; outline-offset: 2px; border-radius: var(--ui-radius-sm); }
8
- .ui-search-trigger > svg { flex: none; width: 15px; height: 15px; }
3
+ .ui-search-trigger { justify-content: flex-start; width: 100%; --btn-height: 2.5rem; --btn-gap: .625rem; }
9
4
  .ui-search-trigger > .kbd { margin-left: auto; }
10
5
  }
@@ -1,7 +1 @@
1
1
  @import '@master/ui/components/segmented.css';
2
- @layer components {
3
- .ui-segmented[data-variant="underline"] { display: flex; gap: 0 var(--ui-space-lg); padding: 0; border-radius: 0; background: none; box-shadow: inset 0 -1px 0 var(--ui-line-divider); }
4
- .ui-segmented[data-variant="underline"] > :is(button, a) { min-width: 0; min-height: 2.75rem; padding: 0; border-radius: 0; color: var(--ui-text-muted); font: var(--ui-weight-regular) var(--ui-text-small)/1.4 var(--font-family-sans); }
5
- .ui-segmented[data-variant="underline"] > :is(button, a):is([aria-pressed="true"], [aria-selected="true"], [aria-checked="true"], [aria-current="page"]) { color: var(--ui-text-strong); background: none; box-shadow: inset 0 -2px 0 var(--ui-text-strong); }
6
- .ui-segmented[data-variant="underline"] > :is(button, a):focus-visible { outline-offset: -2px; border-radius: var(--ui-radius-xs); }
7
- }
@@ -9,6 +9,6 @@
9
9
  .ui-nav-link:hover::before { background: var(--ui-line-mark); }
10
10
  .ui-nav-link:is([aria-current="page"], [aria-current="true"]) { color: var(--ui-text-strong); font-weight: var(--ui-weight-medium); }
11
11
  .ui-nav-link:is([aria-current="page"], [aria-current="true"])::before { background: var(--ui-text-strong); }
12
- .ui-nav-link:focus-visible { @apply --ui-focus-ring; outline-offset: 1px; border-radius: var(--ui-radius-sm); }
12
+ .ui-nav-link:focus-visible { @apply --ui-focus-ring; outline-offset: 1px; border-radius: calc(var(--radius-control-sm) * var(--corner-scale)); corner-shape: var(--corner-shape); }
13
13
  .ui-nav-link > .badge { margin-left: auto; }
14
14
  }
@@ -1,18 +1,12 @@
1
- /* stage: owned component styles; shared definitions come from the foundation. */
1
+ /* UI sheet-flat owns stage material and geometry; the site arranges lesson artwork. */
2
2
  @layer components {
3
- .ui-stage {
4
- position: relative; isolation: isolate; container: stage / inline-size; display: grid; place-items: center;
5
- min-height: 10rem; padding: 3rem 2.5rem; border-radius: var(--ui-radius-xl); overflow: hidden;
6
- background: var(--ui-stage-light), var(--ui-surface-stage);
7
- box-shadow: inset 0 0 0 1px var(--ui-line-contour), inset 0 1px 2px light-dark(oklch(18% 0 none / .04), oklch(0% 0 none / .45)), 0 1px 0 var(--ui-lip);
8
- }
3
+ .ui-stage { position: relative; isolation: isolate; container: stage / inline-size; display: grid; place-items: center; min-height: 10rem; padding: 3rem 2.5rem; overflow: hidden; }
9
4
  .ui-stage[data-padding="none"] { padding: 0; place-items: stretch; }
10
5
  .ui-stage[data-padding="sm"] { min-height: 0; padding: var(--ui-space-md); }
11
6
  .ui-stage[data-align="start"] { place-items: start; }
12
- .ui-stage[data-background="grid"] { background: linear-gradient(var(--ui-line-hair) 1px, transparent 1px) 0 0 / 20px 20px, linear-gradient(90deg, var(--ui-line-hair) 1px, transparent 1px) 0 0 / 20px 20px, var(--ui-stage-light), var(--ui-surface-stage); }
13
- .ui-stage[data-background="dots"] { background: radial-gradient(var(--ui-line-divider) .8px, transparent 1.1px) 0 0 / 14px 14px, var(--ui-stage-light), var(--ui-surface-stage); }
14
- .ui-stage[data-background="hatch"] { background: var(--ui-hatch), var(--ui-surface-stage); }
15
- .ui-stage[data-background="checkerboard"] { background: conic-gradient(var(--ui-line-hair) 25%, transparent 0 50%, var(--ui-line-hair) 0 75%, transparent 0) 0 0 / 16px 16px, var(--ui-surface-stage); }
7
+ .ui-stage[data-background="grid"] { background-image: linear-gradient(var(--color-line-hair) 1px, transparent 1px), linear-gradient(90deg, var(--color-line-hair) 1px, transparent 1px); background-size: 20px 20px; }
8
+ .ui-stage[data-background="dots"] { background-image: radial-gradient(var(--color-line-divider) .8px, transparent 1.1px); background-size: 14px 14px; }
9
+ .ui-stage[data-background="hatch"] { background-image: var(--ui-hatch); }
10
+ .ui-stage[data-background="checkerboard"] { background-image: conic-gradient(var(--color-line-hair) 25%, transparent 0 50%, var(--color-line-hair) 0 75%, transparent 0); background-size: 16px 16px; }
16
11
  @media (width < 35rem) { .ui-stage { min-height: 8rem; padding: 2.25rem 1.125rem; } }
17
- .ui-stage[data-standalone] { border-radius: var(--ui-radius-2xl); }
18
12
  }
@@ -0,0 +1,2 @@
1
+ import './sheet.ts'
2
+ import './stage.css'
@@ -11,7 +11,7 @@
11
11
  }
12
12
 
13
13
  /*
14
- * Document steps (`StepSection`) on `ui-steps` (styles/system/data.css): a step's content holds an authored heading,
14
+ * Document steps (`StepSection`) on `ui-steps` (styles/system/steps.css): a step's content holds an authored heading,
15
15
  * its text and, in a row step, the code beside it once the column has room.
16
16
  */
17
17
  @layer components {
@@ -32,7 +32,6 @@
32
32
  /* Several files under one step part by a small gap, never contour against contour. */
33
33
  .ui-steps-source { display: grid; align-content: start; gap: var(--ui-space-sm); }
34
34
  /* A note inside a step is part of its text: the icon leads a muted paragraph, without a frame of its own in the narrow column. */
35
- .ui-steps-content .ui-callout { padding: 0; background: none; box-shadow: none; color: var(--ui-text-muted); }
36
35
  /* Only reset panels placed by the step grid; nested trays own their internal spacing. */
37
36
  :is(.ui-steps-content, .ui-steps-text, .ui-steps-source) > :is(.ui-code, .ui-tray) { margin: 0; }
38
37
  :is(.ui-steps-content, .ui-steps-text, .ui-steps-source) > :is(.ui-code, p):first-child { margin-top: 0; }
@@ -0,0 +1 @@
1
+ import '@master/ui/components/tabs.css'
@@ -11,7 +11,7 @@
11
11
  .ui-toc a:hover::before { background: var(--ui-line-mark); }
12
12
  .ui-toc a[aria-current="location"] { color: var(--ui-text-strong); font-weight: var(--ui-weight-medium); }
13
13
  .ui-toc a[aria-current="location"]::before { background: var(--ui-text-strong); }
14
- .ui-toc a:focus-visible { @apply --ui-focus-ring; outline-offset: 1px; border-radius: var(--ui-radius-xs); }
14
+ .ui-toc a:focus-visible { @apply --ui-focus-ring; outline-offset: 1px; border-radius: calc(var(--radius-chip) * var(--corner-scale)); corner-shape: var(--corner-shape); }
15
15
  .ui-toc ol ol a:not([aria-current]) { color: color-mix(in oklab, var(--ui-text-muted) 72%, var(--ui-text-disabled)); }
16
16
  .ui-toc ol ol a:not([aria-current])::before { background: var(--ui-line-hair); }
17
17
  .ui-toc ol ol a:not([aria-current]):hover { color: var(--ui-text-strong); }
@@ -21,7 +21,7 @@
21
21
  }
22
22
 
23
23
  /*
24
- * The page's contents (`ui-toc`, styles/system/shell.css) as the site uses them: the documentation rail (docs.css
24
+ * The page's contents (`ui-toc`, styles/system/toc.css) as the site uses them: the documentation rail (docs.css
25
25
  * places it), the narrow-screen disclosure under the page head, and a blog post's margin contents. Sections nest
26
26
  * their subsections; the entry being read carries `aria-current="location"`.
27
27
  */
@@ -32,7 +32,7 @@
32
32
  .ui-toc li:has(> ol [aria-current="location"]) > a { color: var(--ui-text-body); }
33
33
  /* A long list folds: every section stays listed, only the one being read opens its subsections. */
34
34
  .ui-toc ol[data-fold] > li:not(:has([aria-current="location"])) > ol { display: none; }
35
- .ui-toc-actions > a:focus-visible { @apply --ui-focus-ring; outline-offset: 2px; border-radius: var(--ui-radius-xs); }
35
+ .ui-toc-actions > a:focus-visible { @apply --ui-focus-ring; outline-offset: 2px; border-radius: calc(var(--radius-chip) * var(--corner-scale)); corner-shape: var(--corner-shape); }
36
36
  .ui-toc-actions > a { text-decoration: none; transition: color var(--ui-duration-quick); }
37
37
  .ui-toc-actions > a:hover { color: var(--ui-text-strong); }
38
38
  /* The rail scrolls and clips, so its rings sit inside the entry. */
@@ -1,6 +1,4 @@
1
- /* tray-code: owned component styles; shared definitions come from the foundation. */
1
+ /* Source and generated output retain their canonical UI wells inside the tray. */
2
2
  @layer components {
3
- .ui-tray > :is(.ui-code, .ui-tree), .ui-tray > .ui-disclosure > .ui-code { box-shadow: none; }
4
- /* Generated output closes the source panel after the tray's frame reset. */
5
- .ui-tray > .ui-disclosure .ui-code { border-radius: 0 0 var(--ui-radius-xl) var(--ui-radius-xl); background: transparent; box-shadow: inset 0 1px 0 var(--ui-line-hair); }
3
+ .ui-tray > .ui-disclosure > .ui-code { margin-top: var(--ui-inset); }
6
4
  }
@@ -1,5 +1,9 @@
1
1
  /* tray: owned component styles; shared definitions come from the foundation. */
2
2
  @layer components {
3
+ /* Explicit held-root roles: scaled child radius + tray's 4px inset, in either curve mode. */
4
+ .ui-tray > .code-panel, .ui-tray > .ui-disclosure > .code-panel { --code-radius: var(--radius-surface); }
5
+ .ui-tray > .window { --window-radius: var(--radius-surface); }
6
+ .ui-tray > .alert { --alert-radius: var(--radius-surface); }
3
7
  .ui-tray { margin: 0; }
4
8
  .ui-tray-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--ui-space-xs) var(--ui-space-md); min-height: 2.75rem; padding: var(--ui-space-sm) var(--ui-space-md); }
5
9
  .ui-tray-title { min-width: 0; margin: 0; color: var(--ui-text-strong); font-size: .8125rem; font-weight: var(--ui-weight-medium); line-height: 1.4; letter-spacing: 0; }
@@ -10,11 +14,7 @@
10
14
  .ui-tray-caption code { color: var(--ui-text-body); }
11
15
  .ui-tray > * + :is(.ui-stage, .ui-code, .ui-browser, .ui-compare) { margin-top: var(--ui-inset); }
12
16
  .ui-tray > .ui-tray-head + :is(.ui-stage, .ui-code, .ui-browser, .ui-compare) { margin-top: 0; }
13
- .ui-tray > .ui-callout { margin-top: var(--ui-inset); border-radius: var(--ui-radius-xl); }
17
+ .ui-tray > .ui-callout { margin-top: var(--ui-inset); }
14
18
  .ui-tray > .ui-disclosure > summary { padding-inline: var(--ui-space-sm); }
15
- .ui-tray .ui-stage { box-shadow: none; }
16
- .ui-tray:has(> .ui-browser:only-child) { padding: 0; border-radius: var(--ui-radius-xl); background: none; box-shadow: none; }
17
- .ui-tray .ui-browser[data-variant="plain"]::after { content: none; }
18
- .ui-tray > .ui-browser[data-variant="plain"]:only-child::after { content: ""; }
19
19
  .ui-tray > :has(> .ui-browser-tools:last-child) + .ui-tray-caption, .ui-tray > .ui-browser-tools + .ui-tray-caption { padding-top: 0; }
20
20
  }
@@ -1,7 +1,7 @@
1
1
  /* tree: owned component styles; shared definitions come from the foundation. */
2
2
  @layer components {
3
3
  .ui-tree img { flex: none; align-self: center; width: 14px; height: 14px; }
4
- .ui-tree { margin: 0; overflow-x: auto; overflow-wrap: anywhere; padding: var(--ui-space-sm) 0; border-radius: var(--ui-radius-xl); background: var(--ui-surface-code); box-shadow: inset 0 0 0 1px var(--ui-line-contour), 0 1px 0 var(--ui-lip); }
4
+ .ui-tree { margin: 0; overflow-x: auto; overflow-wrap: anywhere; padding: var(--ui-space-sm) 0; }
5
5
  .ui-tree ul { margin: 0; padding: 0; list-style: none; }
6
6
  .ui-tree ul ul { margin-left: 1.375rem; box-shadow: inset 1px 0 0 var(--ui-line-hair); }
7
7
  .ui-tree li > div > * { min-width: 0; }
@@ -1,6 +1,6 @@
1
1
  /* waterfall: owned component styles; shared definitions come from the foundation. */
2
2
  @layer components {
3
- .ui-waterfall { display: grid; gap: 2px; padding: var(--ui-space-md) var(--ui-space-lg) var(--ui-space-lg); border-radius: var(--ui-radius-xl); @apply --ui-sheet-face; box-shadow: var(--ui-elevation-rise-1); }
3
+ .ui-waterfall { display: grid; gap: 2px; padding: var(--ui-space-md) var(--ui-space-lg) var(--ui-space-lg); }
4
4
  .ui-waterfall-axis { display: grid; grid-template-columns: 7.5rem 1fr; margin-bottom: var(--ui-space-xs); color: var(--ui-text-muted); font: var(--ui-weight-regular) .65625rem/1 var(--font-family-mono); }
5
5
  .ui-waterfall-axis > div { display: flex; justify-content: space-between; }
6
6
  .ui-waterfall-row { display: grid; grid-template-columns: 7.5rem 1fr; align-items: center; min-height: 1.75rem; font-size: .78125rem; }
@@ -1,5 +0,0 @@
1
- /* Compatibility code entry; owners use these same leaves directly. */
2
- @import '../system/code-panel.css';
3
- @import '../system/code-tabs.css';
4
- @import '../system/copy.css';
5
- @import '../system/disclosure.css';
@@ -1 +0,0 @@
1
- @import '@master/ui/components/button.css';
@@ -1,8 +0,0 @@
1
- /* Explicit full code collection. Components import their own leaf stylesheet. */
2
- @import './code-panel.css';
3
- @import './prompt.css';
4
- @import './tray-code.css';
5
- @import './code-tabs.css';
6
- @import './inline-code.css';
7
- @import './disclosure.css';
8
- @import './tree.css';
@@ -1,10 +0,0 @@
1
- /* Explicit full controls collection. Components import their own leaf stylesheet. */
2
- @import './buttons.css';
3
- @import './segmented.css';
4
- @import './fields.css';
5
- @import './range.css';
6
- @import './checks.css';
7
- @import './copy.css';
8
- @import './kbd.css';
9
- @import './button-feedback.css';
10
- @import './tooltip.css';
@@ -1,10 +0,0 @@
1
- /* Explicit full data collection. Components import their own leaf stylesheet. */
2
- @import './table.css';
3
- @import './metrics.css';
4
- @import './source.css';
5
- @import './parameters.css';
6
- @import './steps.css';
7
- @import './index.css';
8
- @import './logos.css';
9
- @import './chart.css';
10
- @import './waterfall.css';
@@ -1 +0,0 @@
1
- @import '@master/ui/components/surface.css';
@@ -1,8 +0,0 @@
1
- /* Explicit full shell collection. Components import their own leaf stylesheet. */
2
- @import './header-core.css';
3
- @import './sidebar.css';
4
- @import './search-trigger.css';
5
- @import './toc.css';
6
- @import './pagehead.css';
7
- @import './pager.css';
8
- @import './dialog.css';
@@ -1,7 +0,0 @@
1
- /* Explicit full surfaces collection. Components import their own leaf stylesheet. */
2
- @import './sheet.css';
3
- @import './tray.css';
4
- @import './stage.css';
5
- @import './compare.css';
6
- @import './browser.css';
7
- @import './expand.css';
@@ -1,3 +0,0 @@
1
- @import '@master/ui/components/table.css';
2
- @import '@master/ui/components/surface.css';
3
- @import './table-layout.css';
@@ -1,2 +0,0 @@
1
- @import '@master/ui/components/surface.css';
2
- @import './tray-layout.css';