@starci/grammar 0.3.0 → 0.4.1

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 (250) hide show
  1. package/README.md +74 -39
  2. package/dist/common/conformance.d.ts +31 -0
  3. package/dist/common/conformance.d.ts.map +1 -0
  4. package/dist/common/conformance.js +33 -0
  5. package/dist/common/conformance.js.map +1 -0
  6. package/dist/common/index.d.ts +5 -5
  7. package/dist/common/index.d.ts.map +1 -1
  8. package/dist/common/index.js +5 -10
  9. package/dist/common/index.js.map +1 -1
  10. package/dist/common/registry.d.ts +79 -0
  11. package/dist/common/registry.d.ts.map +1 -0
  12. package/dist/common/registry.js +34 -0
  13. package/dist/common/registry.js.map +1 -0
  14. package/dist/common/renderers.d.ts +41 -0
  15. package/dist/common/renderers.d.ts.map +1 -0
  16. package/dist/common/renderers.js +44 -0
  17. package/dist/common/renderers.js.map +1 -0
  18. package/dist/common/rule-catalog.generated.d.ts +40 -0
  19. package/dist/common/rule-catalog.generated.d.ts.map +1 -0
  20. package/dist/common/rule-catalog.generated.js +230 -0
  21. package/dist/common/rule-catalog.generated.js.map +1 -0
  22. package/dist/common/spacing.d.ts +20 -0
  23. package/dist/common/spacing.d.ts.map +1 -0
  24. package/dist/common/spacing.js +18 -0
  25. package/dist/common/spacing.js.map +1 -0
  26. package/dist/common/state.d.ts +6 -0
  27. package/dist/common/state.d.ts.map +1 -0
  28. package/dist/common/state.js +11 -0
  29. package/dist/common/state.js.map +1 -0
  30. package/dist/common/styles.css +1566 -2
  31. package/dist/core/OtpInput.d.ts.map +1 -1
  32. package/dist/core/OtpInput.js +2 -1
  33. package/dist/core/OtpInput.js.map +1 -1
  34. package/dist/core/branch/MarkdownArticle/index.d.ts.map +1 -1
  35. package/dist/core/branch/MarkdownArticle/index.js +2 -2
  36. package/dist/core/branch/MarkdownArticle/index.js.map +1 -1
  37. package/dist/core/branch/Rail/classNames.d.ts.map +1 -1
  38. package/dist/core/branch/Rail/classNames.js +4 -4
  39. package/dist/core/branch/Rail/classNames.js.map +1 -1
  40. package/dist/core/branch/Rail/index.d.ts +4 -0
  41. package/dist/core/branch/Rail/index.d.ts.map +1 -1
  42. package/dist/core/branch/Rail/index.js +12 -2
  43. package/dist/core/branch/Rail/index.js.map +1 -1
  44. package/dist/core/branch/Subnav/classNames.d.ts +8 -0
  45. package/dist/core/branch/Subnav/classNames.d.ts.map +1 -0
  46. package/dist/core/branch/Subnav/classNames.js +9 -0
  47. package/dist/core/branch/Subnav/classNames.js.map +1 -0
  48. package/dist/core/branch/Subnav/index.d.ts +17 -0
  49. package/dist/core/branch/Subnav/index.d.ts.map +1 -0
  50. package/dist/core/branch/Subnav/index.js +6 -0
  51. package/dist/core/branch/Subnav/index.js.map +1 -0
  52. package/dist/core/branch/SurfaceAccordionCard/classNames.d.ts +6 -2
  53. package/dist/core/branch/SurfaceAccordionCard/classNames.d.ts.map +1 -1
  54. package/dist/core/branch/SurfaceAccordionCard/classNames.js +14 -9
  55. package/dist/core/branch/SurfaceAccordionCard/classNames.js.map +1 -1
  56. package/dist/core/branch/SurfaceAccordionCard/index.d.ts +8 -1
  57. package/dist/core/branch/SurfaceAccordionCard/index.d.ts.map +1 -1
  58. package/dist/core/branch/SurfaceAccordionCard/index.js +29 -11
  59. package/dist/core/branch/SurfaceAccordionCard/index.js.map +1 -1
  60. package/dist/core/branch/SurfaceCard/classNames.d.ts +11 -1
  61. package/dist/core/branch/SurfaceCard/classNames.d.ts.map +1 -1
  62. package/dist/core/branch/SurfaceCard/classNames.js +16 -7
  63. package/dist/core/branch/SurfaceCard/classNames.js.map +1 -1
  64. package/dist/core/branch/SurfaceCard/index.d.ts +11 -1
  65. package/dist/core/branch/SurfaceCard/index.d.ts.map +1 -1
  66. package/dist/core/branch/SurfaceCard/index.js +15 -4
  67. package/dist/core/branch/SurfaceCard/index.js.map +1 -1
  68. package/dist/core/branch/SurfaceListCard/classNames.d.ts +2 -0
  69. package/dist/core/branch/SurfaceListCard/classNames.d.ts.map +1 -1
  70. package/dist/core/branch/SurfaceListCard/classNames.js +7 -5
  71. package/dist/core/branch/SurfaceListCard/classNames.js.map +1 -1
  72. package/dist/core/branch/SurfaceListCard/index.d.ts.map +1 -1
  73. package/dist/core/branch/SurfaceListCard/index.js +3 -2
  74. package/dist/core/branch/SurfaceListCard/index.js.map +1 -1
  75. package/dist/core/branch/Tabs/classNames.d.ts +11 -0
  76. package/dist/core/branch/Tabs/classNames.d.ts.map +1 -0
  77. package/dist/core/branch/Tabs/classNames.js +13 -0
  78. package/dist/core/branch/Tabs/classNames.js.map +1 -0
  79. package/dist/core/branch/Tabs/index.d.ts +22 -0
  80. package/dist/core/branch/Tabs/index.d.ts.map +1 -0
  81. package/dist/core/branch/Tabs/index.js +28 -0
  82. package/dist/core/branch/Tabs/index.js.map +1 -0
  83. package/dist/core/branch/Tooltip/classNames.d.ts +3 -0
  84. package/dist/core/branch/Tooltip/classNames.d.ts.map +1 -0
  85. package/dist/core/branch/Tooltip/classNames.js +4 -0
  86. package/dist/core/branch/Tooltip/classNames.js.map +1 -0
  87. package/dist/core/branch/Tooltip/index.d.ts +18 -0
  88. package/dist/core/branch/Tooltip/index.d.ts.map +1 -0
  89. package/dist/core/branch/Tooltip/index.js +14 -0
  90. package/dist/core/branch/Tooltip/index.js.map +1 -0
  91. package/dist/core/classNames.d.ts.map +1 -1
  92. package/dist/core/classNames.js +3 -3
  93. package/dist/core/classNames.js.map +1 -1
  94. package/dist/core/composite/EmptyNotice/index.d.ts +17 -0
  95. package/dist/core/composite/EmptyNotice/index.d.ts.map +1 -0
  96. package/dist/core/composite/EmptyNotice/index.js +7 -0
  97. package/dist/core/composite/EmptyNotice/index.js.map +1 -0
  98. package/dist/core/composite/HorizontalScrollRegion/index.d.ts +2 -0
  99. package/dist/core/composite/HorizontalScrollRegion/index.d.ts.map +1 -1
  100. package/dist/core/composite/HorizontalScrollRegion/index.js +5 -2
  101. package/dist/core/composite/HorizontalScrollRegion/index.js.map +1 -1
  102. package/dist/core/composite/StaticStateRow/index.d.ts.map +1 -1
  103. package/dist/core/composite/StaticStateRow/index.js +1 -1
  104. package/dist/core/composite/StaticStateRow/index.js.map +1 -1
  105. package/dist/core/composite/VerticalScrollRegion/index.d.ts +2 -0
  106. package/dist/core/composite/VerticalScrollRegion/index.d.ts.map +1 -1
  107. package/dist/core/composite/VerticalScrollRegion/index.js +2 -2
  108. package/dist/core/composite/VerticalScrollRegion/index.js.map +1 -1
  109. package/dist/core/composition/ChatWorkspace/classNames.d.ts +30 -0
  110. package/dist/core/composition/ChatWorkspace/classNames.d.ts.map +1 -0
  111. package/dist/core/composition/ChatWorkspace/classNames.js +31 -0
  112. package/dist/core/composition/ChatWorkspace/classNames.js.map +1 -0
  113. package/dist/core/composition/ChatWorkspace/index.d.ts +48 -0
  114. package/dist/core/composition/ChatWorkspace/index.d.ts.map +1 -0
  115. package/dist/core/composition/ChatWorkspace/index.js +40 -0
  116. package/dist/core/composition/ChatWorkspace/index.js.map +1 -0
  117. package/dist/core/composition/NavigationFeatureNav/classNames.d.ts +9 -0
  118. package/dist/core/composition/NavigationFeatureNav/classNames.d.ts.map +1 -0
  119. package/dist/core/composition/NavigationFeatureNav/classNames.js +10 -0
  120. package/dist/core/composition/NavigationFeatureNav/classNames.js.map +1 -0
  121. package/dist/core/composition/NavigationFeatureNav/index.d.ts +26 -0
  122. package/dist/core/composition/NavigationFeatureNav/index.d.ts.map +1 -0
  123. package/dist/core/composition/NavigationFeatureNav/index.js +13 -0
  124. package/dist/core/composition/NavigationFeatureNav/index.js.map +1 -0
  125. package/dist/core/composition/PrimaryRailLayout/index.d.ts +14 -0
  126. package/dist/core/composition/PrimaryRailLayout/index.d.ts.map +1 -0
  127. package/dist/core/composition/PrimaryRailLayout/index.js +8 -0
  128. package/dist/core/composition/PrimaryRailLayout/index.js.map +1 -0
  129. package/dist/core/composition/Sidebar/index.d.ts +31 -0
  130. package/dist/core/composition/Sidebar/index.d.ts.map +1 -0
  131. package/dist/core/composition/Sidebar/index.js +40 -0
  132. package/dist/core/composition/Sidebar/index.js.map +1 -0
  133. package/dist/core/composition/WorkspaceShell/classNames.d.ts +11 -0
  134. package/dist/core/composition/WorkspaceShell/classNames.d.ts.map +1 -0
  135. package/dist/core/composition/WorkspaceShell/classNames.js +12 -0
  136. package/dist/core/composition/WorkspaceShell/classNames.js.map +1 -0
  137. package/dist/core/composition/WorkspaceShell/index.d.ts +67 -0
  138. package/dist/core/composition/WorkspaceShell/index.d.ts.map +1 -0
  139. package/dist/core/composition/WorkspaceShell/index.js +20 -0
  140. package/dist/core/composition/WorkspaceShell/index.js.map +1 -0
  141. package/dist/core/dna.d.ts +180 -0
  142. package/dist/core/dna.d.ts.map +1 -0
  143. package/dist/core/dna.js +175 -0
  144. package/dist/core/dna.js.map +1 -0
  145. package/dist/core/index.d.ts +58 -11
  146. package/dist/core/index.d.ts.map +1 -1
  147. package/dist/core/index.js +27 -11
  148. package/dist/core/index.js.map +1 -1
  149. package/dist/core/primitive/Badge/index.d.ts +12 -0
  150. package/dist/core/primitive/Badge/index.d.ts.map +1 -0
  151. package/dist/core/primitive/Badge/index.js +15 -0
  152. package/dist/core/primitive/Badge/index.js.map +1 -0
  153. package/dist/core/primitive/Button/index.d.ts +52 -0
  154. package/dist/core/primitive/Button/index.d.ts.map +1 -0
  155. package/dist/core/primitive/Button/index.js +26 -0
  156. package/dist/core/primitive/Button/index.js.map +1 -0
  157. package/dist/core/primitive/Divider/index.d.ts +7 -0
  158. package/dist/core/primitive/Divider/index.d.ts.map +1 -0
  159. package/dist/core/primitive/Divider/index.js +5 -0
  160. package/dist/core/primitive/Divider/index.js.map +1 -0
  161. package/dist/core/primitive/GrammarRoot/index.d.ts +10 -0
  162. package/dist/core/primitive/GrammarRoot/index.d.ts.map +1 -0
  163. package/dist/core/primitive/GrammarRoot/index.js +5 -0
  164. package/dist/core/primitive/GrammarRoot/index.js.map +1 -0
  165. package/dist/core/primitive/Heading/index.d.ts +15 -0
  166. package/dist/core/primitive/Heading/index.d.ts.map +1 -0
  167. package/dist/core/primitive/Heading/index.js +26 -0
  168. package/dist/core/primitive/Heading/index.js.map +1 -0
  169. package/dist/core/primitive/Icon/index.d.ts +31 -0
  170. package/dist/core/primitive/Icon/index.d.ts.map +1 -0
  171. package/dist/core/primitive/Icon/index.js +23 -0
  172. package/dist/core/primitive/Icon/index.js.map +1 -0
  173. package/dist/core/primitive/IconButton/index.d.ts +13 -0
  174. package/dist/core/primitive/IconButton/index.d.ts.map +1 -0
  175. package/dist/core/primitive/IconButton/index.js +9 -0
  176. package/dist/core/primitive/IconButton/index.js.map +1 -0
  177. package/dist/core/primitive/IconTile/index.d.ts +17 -0
  178. package/dist/core/primitive/IconTile/index.d.ts.map +1 -0
  179. package/dist/core/primitive/IconTile/index.js +32 -0
  180. package/dist/core/primitive/IconTile/index.js.map +1 -0
  181. package/dist/core/primitive/IncludedMark/index.d.ts +10 -0
  182. package/dist/core/primitive/IncludedMark/index.d.ts.map +1 -0
  183. package/dist/core/primitive/IncludedMark/index.js +8 -0
  184. package/dist/core/primitive/IncludedMark/index.js.map +1 -0
  185. package/dist/core/primitive/Input/index.d.ts +31 -0
  186. package/dist/core/primitive/Input/index.d.ts.map +1 -0
  187. package/dist/core/primitive/Input/index.js +27 -0
  188. package/dist/core/primitive/Input/index.js.map +1 -0
  189. package/dist/core/primitive/Label/classNames.d.ts +12 -0
  190. package/dist/core/primitive/Label/classNames.d.ts.map +1 -0
  191. package/dist/core/primitive/Label/classNames.js +13 -0
  192. package/dist/core/primitive/Label/classNames.js.map +1 -0
  193. package/dist/core/primitive/Label/index.d.ts +11 -0
  194. package/dist/core/primitive/Label/index.d.ts.map +1 -0
  195. package/dist/core/primitive/Label/index.js +14 -0
  196. package/dist/core/primitive/Label/index.js.map +1 -0
  197. package/dist/core/primitive/MediaFrame/index.d.ts +15 -0
  198. package/dist/core/primitive/MediaFrame/index.d.ts.map +1 -0
  199. package/dist/core/primitive/MediaFrame/index.js +8 -0
  200. package/dist/core/primitive/MediaFrame/index.js.map +1 -0
  201. package/dist/core/primitive/PageContainer/index.d.ts +9 -0
  202. package/dist/core/primitive/PageContainer/index.d.ts.map +1 -0
  203. package/dist/core/primitive/PageContainer/index.js +8 -0
  204. package/dist/core/primitive/PageContainer/index.js.map +1 -0
  205. package/dist/core/primitive/Progress/index.d.ts +11 -0
  206. package/dist/core/primitive/Progress/index.d.ts.map +1 -0
  207. package/dist/core/primitive/Progress/index.js +13 -0
  208. package/dist/core/primitive/Progress/index.js.map +1 -0
  209. package/dist/core/primitive/RankArtwork/index.d.ts +12 -0
  210. package/dist/core/primitive/RankArtwork/index.d.ts.map +1 -0
  211. package/dist/core/primitive/RankArtwork/index.js +14 -0
  212. package/dist/core/primitive/RankArtwork/index.js.map +1 -0
  213. package/dist/core/primitive/SectionHeader/index.d.ts +15 -0
  214. package/dist/core/primitive/SectionHeader/index.d.ts.map +1 -0
  215. package/dist/core/primitive/SectionHeader/index.js +6 -0
  216. package/dist/core/primitive/SectionHeader/index.js.map +1 -0
  217. package/dist/core/primitive/SurfaceCopyGroup/index.d.ts +7 -0
  218. package/dist/core/primitive/SurfaceCopyGroup/index.d.ts.map +1 -0
  219. package/dist/core/primitive/SurfaceCopyGroup/index.js +5 -0
  220. package/dist/core/primitive/SurfaceCopyGroup/index.js.map +1 -0
  221. package/dist/core/primitive/Text/index.d.ts +25 -0
  222. package/dist/core/primitive/Text/index.d.ts.map +1 -0
  223. package/dist/core/primitive/Text/index.js +57 -0
  224. package/dist/core/primitive/Text/index.js.map +1 -0
  225. package/dist/core/primitive/TextAction/index.d.ts +45 -0
  226. package/dist/core/primitive/TextAction/index.d.ts.map +1 -0
  227. package/dist/core/primitive/TextAction/index.js +112 -0
  228. package/dist/core/primitive/TextAction/index.js.map +1 -0
  229. package/dist/core/primitive/actionStyles.d.ts +5 -0
  230. package/dist/core/primitive/actionStyles.d.ts.map +1 -0
  231. package/dist/core/primitive/actionStyles.js +19 -0
  232. package/dist/core/primitive/actionStyles.js.map +1 -0
  233. package/dist/core/state.d.ts +2 -2
  234. package/dist/core/state.js +1 -1
  235. package/dist/core/styles.css +163 -592
  236. package/dist/heritage/index.d.ts +27 -0
  237. package/dist/heritage/index.d.ts.map +1 -0
  238. package/dist/heritage/index.js +44 -0
  239. package/dist/heritage/index.js.map +1 -0
  240. package/dist/heritage/styles.css +165 -0
  241. package/dist/offset-pop/index.d.ts +12 -0
  242. package/dist/offset-pop/index.d.ts.map +1 -0
  243. package/dist/offset-pop/index.js +41 -0
  244. package/dist/offset-pop/index.js.map +1 -0
  245. package/dist/offset-pop/styles.css +292 -393
  246. package/package.json +78 -68
  247. package/dist/core/scrollable-surfaces.spec.d.ts +0 -2
  248. package/dist/core/scrollable-surfaces.spec.d.ts.map +0 -1
  249. package/dist/core/scrollable-surfaces.spec.js +0 -37
  250. package/dist/core/scrollable-surfaces.spec.js.map +0 -1
@@ -1,598 +1,169 @@
1
- @layer starci-grammar-core {
2
- .starci-core-form-page {
3
- display: flex;
4
- min-height: 100dvh;
5
- padding: 1.5rem 1rem;
6
- align-items: center;
7
- justify-content: center;
8
- overflow: hidden;
9
- }
10
-
11
- .starci-core-form-scroll-viewport {
12
- width: 100%;
13
- max-height: calc(100dvh - 3rem);
14
- overscroll-behavior: contain;
15
- }
16
-
17
- .starci-core-form-surface {
18
- display: flex;
19
- width: min(100%, var(--starci-core-form-measure, 30rem));
20
- min-width: 0;
21
- flex-direction: column;
22
- gap: var(--starci-core-section-gap, 0.75rem);
23
- }
24
-
25
- .starci-core-form-surface--compact {
26
- width: min(100%, var(--starci-core-form-compact-measure, 28rem));
27
- }
28
-
29
- .starci-core-form-surface > .card {
30
- max-height: calc(100dvh - 3rem);
31
- overflow: hidden !important;
32
- padding: 0 !important;
33
- }
34
-
35
- .starci-core-form-field {
36
- display: flex;
37
- min-width: 0;
38
- flex-direction: column;
39
- gap: var(--starci-core-field-gap, 0.5rem);
40
- }
41
-
42
- .starci-core-form-label--screen-reader {
43
- position: absolute;
44
- width: 1px;
45
- height: 1px;
46
- padding: 0;
47
- margin: -1px;
48
- overflow: hidden;
49
- clip: rect(0, 0, 0, 0);
50
- white-space: nowrap;
51
- border: 0;
52
- }
53
-
54
- .starci-core-horizontal-scroll-region {
55
- width: 100%;
56
- min-width: 0;
57
- padding-block: 0.25rem;
58
- overscroll-behavior-inline: contain;
59
- }
60
-
61
- .starci-core-horizontal-scroll-region > * {
62
- width: max-content;
63
- min-width: max-content;
64
- }
65
-
66
- @media (min-width: 40rem) {
67
- .starci-core-form-page {
68
- padding-block: 2.5rem;
69
- }
70
-
71
- .starci-core-form-scroll-viewport {
72
- max-height: calc(100dvh - 5rem);
1
+ @import "../common/styles.css";
2
+
3
+ @layer starci-grammar-core {
4
+ /*
5
+ * StarCi visual DNA is opt-in through GrammarRoot. It supplies a complete,
6
+ * portable semantic theme while keeping product/UI laws out of CSS.
7
+ */
8
+ .grammar-common-root[data-grammar-family="core"] {
9
+ color-scheme: light;
10
+
11
+ --starci-core-accent: #7547ff;
12
+ --starci-core-accent-foreground: oklch(100% 0 0);
13
+ --starci-core-focus: #7248ff;
14
+ --starci-core-canvas: oklch(97.02% 0.0015 354.13);
15
+ --starci-core-surface: oklch(100% 0.0008 354.13);
16
+ --starci-core-surface-secondary: oklch(95.24% 0.0012 354.13);
17
+ --starci-core-foreground: oklch(21.03% 0.0015 354.13);
18
+ --starci-core-muted: oklch(55.17% 0.003 354.13);
19
+ --starci-core-border: oklch(90% 0.0015 354.13);
20
+ --starci-core-separator: oklch(92% 0.0015 354.13);
21
+ --starci-core-success: oklch(73.29% 0.1941 162.85);
22
+ --starci-core-success-foreground: oklch(21.03% 0.0059 162.85);
23
+ --starci-core-warning: oklch(78.19% 0.159 84.37);
24
+ --starci-core-warning-foreground: oklch(21.03% 0.0059 84.37);
25
+ --starci-core-danger: oklch(65.32% 0.2335 37.78);
26
+ --starci-core-danger-foreground: oklch(99.11% 0 0);
27
+ --starci-core-info: oklch(72% 0.17 250);
28
+ --starci-core-info-foreground: oklch(21.03% 0.0059 250);
29
+ --starci-core-page-measure: 80rem;
30
+ --starci-core-reading-measure: 72ch;
31
+ --starci-core-page-inset: var(--grammar-page-inset);
32
+ --starci-core-region-gap: var(--grammar-region-gap);
33
+ --starci-core-section-gap: var(--grammar-section-gap);
34
+ --starci-core-inline-gap: var(--grammar-inline-gap);
35
+ --starci-core-row-gap: var(--grammar-row-gap);
36
+ --starci-core-surface-radius: 1rem;
37
+ --starci-core-control-radius: 0.75rem;
38
+ --starci-core-pill-radius: 999px;
39
+ --starci-core-surface-shadow: 0 8px 28px oklch(21.03% 0.0059 354.13 / 0.07);
40
+ --starci-core-motion-duration: 180ms;
41
+ --starci-core-motion-easing: cubic-bezier(0.2, 0, 0, 1);
42
+
43
+ /* HeroUI and existing Grammar anatomy resolve through the same DNA. */
44
+ --accent: var(--starci-core-accent);
45
+ --accent-foreground: var(--starci-core-accent-foreground);
46
+ --focus: var(--starci-core-focus);
47
+ --background: var(--starci-core-canvas);
48
+ --foreground: var(--starci-core-foreground);
49
+ --surface: var(--starci-core-surface);
50
+ --surface-foreground: var(--starci-core-foreground);
51
+ --surface-secondary: var(--starci-core-surface-secondary);
52
+ --surface-secondary-foreground: var(--starci-core-foreground);
53
+ --muted: var(--starci-core-muted);
54
+ --border: var(--starci-core-border);
55
+ --separator: var(--starci-core-separator);
56
+ --success: var(--starci-core-success);
57
+ --success-foreground: var(--starci-core-success-foreground);
58
+ --warning: var(--starci-core-warning);
59
+ --warning-foreground: var(--starci-core-warning-foreground);
60
+ --danger: var(--starci-core-danger);
61
+ --danger-foreground: var(--starci-core-danger-foreground);
62
+ --info: var(--starci-core-info);
63
+ --info-foreground: var(--starci-core-info-foreground);
64
+ --field-background: var(--starci-core-surface);
65
+ --field-border: transparent;
66
+ --field-foreground: var(--starci-core-foreground);
67
+ --field-placeholder: var(--starci-core-muted);
68
+ --radius: var(--starci-core-control-radius);
69
+ --field-radius: var(--starci-core-control-radius);
70
+ --shadow-surface: var(--starci-core-surface-shadow);
71
+
72
+ min-width: 0;
73
+ background: var(--starci-core-canvas);
74
+ color: var(--starci-core-foreground);
75
+ font-family: var(--starci-font-sans, ui-sans-serif, system-ui, sans-serif);
76
+ }
77
+
78
+ .grammar-common-root[data-grammar-family="core"][data-grammar-theme="dark"] {
79
+ color-scheme: dark;
80
+ --starci-core-canvas: oklch(12% 0.0015 354.13);
81
+ --starci-core-surface: oklch(21.03% 0.003 354.13);
82
+ --starci-core-surface-secondary: oklch(25.7% 0.0023 354.13);
83
+ --starci-core-foreground: oklch(99.11% 0.0015 354.13);
84
+ --starci-core-muted: oklch(70.5% 0.003 354.13);
85
+ --starci-core-border: oklch(28% 0.0015 354.13);
86
+ --starci-core-separator: oklch(25% 0.0015 354.13);
87
+ --starci-core-success: oklch(73.29% 0.1941 162.85);
88
+ --starci-core-success-foreground: oklch(21.03% 0.0059 162.85);
89
+ --starci-core-warning: oklch(82.03% 0.1392 88.38);
90
+ --starci-core-warning-foreground: oklch(21.03% 0.0059 88.38);
91
+ --starci-core-danger: oklch(59.4% 0.1973 36.67);
92
+ --starci-core-danger-foreground: oklch(99.11% 0 0);
93
+ --starci-core-info: oklch(72% 0.17 250);
94
+ --starci-core-info-foreground: oklch(21.03% 0.0059 250);
95
+ }
96
+
97
+ /* StarCi labelled surfaces paint one material box around label and content. */
98
+ .grammar-common-root[data-grammar-family="core"]
99
+ .starci-core-surface-card[data-grammar-surface-labelled="true"][data-grammar-frame="bounded"] {
100
+ overflow: hidden;
101
+ border-radius: var(--starci-core-surface-radius, 1rem);
102
+ background: var(--starci-core-surface, var(--surface, Canvas));
103
+ box-shadow: var(--starci-core-surface-shadow, var(--shadow-surface, none));
104
+ }
105
+
106
+ .grammar-common-root[data-grammar-family="core"]
107
+ .starci-core-surface-card[data-grammar-surface-labelled="true"][data-grammar-frame="bounded"]
108
+ > [data-grammar-surface-label] {
109
+ padding: var(--starci-core-surface-inset, 1rem) var(--starci-core-surface-inset, 1rem) 0;
110
+ }
111
+
112
+ .grammar-common-root[data-grammar-family="core"]
113
+ .starci-core-surface-card[data-grammar-surface-labelled="true"][data-grammar-frame="bounded"]
114
+ > [data-grammar-frame="bounded"],
115
+ .grammar-common-root[data-grammar-family="core"]
116
+ .starci-core-surface-card[data-grammar-surface-labelled="true"][data-grammar-frame="bounded"]
117
+ > [data-grammar-highlight="true"]
118
+ > [data-grammar-frame="bounded"] {
119
+ border: 0;
120
+ border-radius: 0;
121
+ background: transparent;
122
+ box-shadow: none;
123
+ }
124
+
125
+ @media (prefers-color-scheme: dark) {
126
+ .grammar-common-root[data-grammar-family="core"][data-grammar-theme="system"] {
127
+ color-scheme: dark;
128
+ --starci-core-canvas: oklch(12% 0.0015 354.13);
129
+ --starci-core-surface: oklch(21.03% 0.003 354.13);
130
+ --starci-core-surface-secondary: oklch(25.7% 0.0023 354.13);
131
+ --starci-core-foreground: oklch(99.11% 0.0015 354.13);
132
+ --starci-core-muted: oklch(70.5% 0.003 354.13);
133
+ --starci-core-border: oklch(28% 0.0015 354.13);
134
+ --starci-core-separator: oklch(25% 0.0015 354.13);
135
+ --starci-core-success: oklch(73.29% 0.1941 162.85);
136
+ --starci-core-success-foreground: oklch(21.03% 0.0059 162.85);
137
+ --starci-core-warning: oklch(82.03% 0.1392 88.38);
138
+ --starci-core-warning-foreground: oklch(21.03% 0.0059 88.38);
139
+ --starci-core-danger: oklch(59.4% 0.1973 36.67);
140
+ --starci-core-danger-foreground: oklch(99.11% 0 0);
141
+ --starci-core-info: oklch(72% 0.17 250);
142
+ --starci-core-info-foreground: oklch(21.03% 0.0059 250);
73
143
  }
74
-
75
- .starci-core-form-surface > .card {
76
- max-height: calc(100dvh - 5rem);
77
- }
78
- }
79
-
80
- .starci-core-surface-card,
81
- .starci-core-surface-list,
82
- .starci-core-surface-accordion-card {
83
- container-name: starci-core-surface;
84
- container-type: inline-size;
85
- display: flex;
86
- min-width: 0;
87
- width: 100%;
88
- flex-direction: column;
89
- gap: var(--starci-core-section-gap, 0.75rem);
90
- }
91
-
92
- .starci-core-surface-label {
93
- display: flex;
94
- min-width: 0;
95
- align-items: baseline;
96
- justify-content: space-between;
97
- gap: var(--starci-core-inline-gap, 0.5rem);
98
- }
99
-
100
- .starci-core-surface-label > :first-child {
101
- min-width: 0;
102
- margin: 0;
103
- }
104
-
105
- .starci-core-surface {
106
- position: relative;
107
- min-width: 0;
108
- overflow: hidden;
109
- border-radius: var(--starci-core-surface-radius, 1rem);
110
- background: var(--surface, Canvas);
111
- color: var(--surface-foreground, CanvasText);
112
- }
113
-
114
- .starci-core-surface[data-grammar-surface-depth="top"] {
115
- border: 0;
116
- box-shadow: var(--starci-core-surface-shadow, var(--shadow-surface, 0 1px 3px rgb(0 0 0 / 0.16)));
117
- }
118
-
119
- .starci-core-surface[data-grammar-surface-depth="nested"] {
120
- border: 1px solid var(--border, GrayText);
121
- box-shadow: none;
122
- }
123
-
124
- .starci-core-surface-content {
125
- min-width: 0;
126
- padding: var(--starci-core-surface-inset, 1rem);
127
- }
128
-
129
- .starci-core-surface.starci-core-frameless-surface {
130
- position: relative;
131
- min-width: 0;
132
- overflow: visible;
133
- border: 0;
134
- border-radius: 0;
135
- background: transparent;
136
- box-shadow: none;
137
- color: inherit;
138
- }
139
-
140
- .starci-core-frameless-surface > .starci-core-surface-content {
141
- padding: 0;
142
- }
143
-
144
- [data-grammar-scroll="contained"] {
145
- max-height: var(--starci-core-contained-max-height, calc(100dvh - 3rem));
146
- overflow: hidden;
147
- }
148
-
149
- [data-grammar-scroll="contained"] > .scroll-shadow--vertical {
150
- width: 100%;
151
- max-height: inherit;
152
- min-height: 0;
153
- overscroll-behavior: contain;
154
- }
155
-
156
- [data-grammar-whole-action] {
157
- position: absolute;
158
- z-index: 1;
159
- inset: 0;
160
- border: 0;
161
- border-radius: inherit;
162
- background: transparent;
163
- color: inherit;
164
- cursor: pointer;
165
- }
166
-
167
- [data-grammar-whole-action]:focus-visible {
168
- outline: 2px solid var(--focus, Highlight);
169
- outline-offset: -2px;
170
- }
171
-
172
- [data-grammar-whole-action][aria-disabled="true"],
173
- [data-grammar-whole-action]:disabled {
174
- cursor: not-allowed;
175
- }
176
-
177
- [data-grammar-state="unavailable"] {
178
- opacity: var(--starci-core-disabled-opacity, 0.55);
179
- }
180
-
181
- [data-grammar-state="pending"] {
182
- cursor: progress;
183
- }
184
-
185
- .starci-core-leading-number {
186
- display: inline-block;
187
- flex: none;
188
- min-width: 1.25rem;
189
- color: var(--muted, GrayText);
190
- font-size: 0.875rem;
191
- font-variant-numeric: tabular-nums;
192
- line-height: 1.25rem;
193
- text-align: end;
194
- white-space: nowrap;
195
- }
196
-
197
- .starci-core-list-shell {
198
- padding: 0;
199
- }
200
-
201
- .starci-core-static-list {
202
- display: flex;
203
- margin: 0;
204
- padding: 0;
205
- flex-direction: column;
206
- list-style: none;
207
- }
208
-
209
- .starci-core-owned-collection {
210
- min-width: 0;
211
- }
212
-
213
- .starci-core-surface-footer {
214
- min-width: 0;
215
- }
216
-
217
- .starci-core-static-row,
218
- .starci-core-empty-row {
219
- display: flex;
220
- min-width: 0;
221
- margin: 0;
222
- align-items: flex-start;
223
- gap: var(--starci-core-row-gap, 0.75rem);
224
- padding: var(--starci-core-row-inset, 1rem);
225
- }
226
-
227
- .starci-core-static-row + .starci-core-static-row {
228
- border-top: 1px solid var(--separator, var(--border, GrayText));
229
- }
230
-
231
- .starci-core-list-shell[data-grammar-hover="invariant"] .starci-core-static-row:hover {
232
- background: transparent;
233
- box-shadow: none;
234
- color: inherit;
235
- transform: none;
236
- }
237
-
238
- .starci-core-accordion-shell {
239
- width: 100%;
240
- min-width: 0;
241
- }
242
-
243
- .starci-core-accordion-shell-frameless {
244
- overflow: visible;
245
- border: 0;
246
- border-radius: 0;
247
- background: transparent;
248
- box-shadow: none;
249
- }
250
-
251
- .starci-core-accordion-row {
252
- width: 100%;
253
- min-width: 0;
254
- }
255
-
256
- .starci-core-accordion-row + .starci-core-accordion-row {
257
- border-top: 1px solid var(--separator, var(--border, GrayText));
258
- }
259
-
260
- .starci-core-accordion-heading {
261
- margin: 0;
262
- }
263
-
264
- .starci-core-accordion-trigger {
265
- display: block;
266
- width: 100%;
267
- min-width: 0;
268
- min-height: 44px;
269
- padding: var(--starci-core-row-inset, 1rem);
270
- border: 0;
271
- background: transparent;
272
- box-shadow: none;
273
- color: inherit;
274
- cursor: pointer;
275
- font: inherit;
276
- text-align: left;
277
- transform: none;
278
- }
279
-
280
- .starci-core-accordion-trigger:hover,
281
- .starci-core-accordion-trigger[data-hovered="true"] {
282
- background: transparent;
283
- box-shadow: none;
284
- color: inherit;
285
- transform: none;
286
- }
287
-
288
- .starci-core-accordion-trigger:disabled {
289
- cursor: default;
290
- }
291
-
292
- .starci-core-accordion-panel {
293
- width: 100%;
294
- min-width: 0;
295
- padding: 0 var(--starci-core-row-inset, 1rem) var(--starci-core-row-inset, 1rem);
296
144
  }
297
145
 
298
- .starci-core-markdown-article {
299
- display: flex;
300
- width: 100%;
301
- min-width: 0;
302
- flex-direction: column;
303
- gap: 1rem;
304
- color: inherit;
305
- font-size: 0.875rem;
306
- line-height: 1.65;
307
- overflow-wrap: anywhere;
308
- }
309
-
310
- .starci-core-markdown-article[data-grammar-markdown-measure="compact"] {
311
- max-width: 72ch;
312
- gap: 0.75rem;
313
- }
314
-
315
- .starci-core-markdown-article > :first-child {
316
- margin-top: 0;
317
- }
318
-
319
- .starci-core-markdown-article > :last-child {
320
- margin-bottom: 0;
321
- }
322
-
323
- .starci-core-markdown-article :where(h1, h2, h3, h4) {
324
- margin: 1.5rem 0 0.625rem;
325
- color: inherit;
326
- font-weight: 600;
327
- line-height: 1.3;
328
- }
329
-
330
- .starci-core-markdown-article h1 { font-size: 1.5rem; }
331
- .starci-core-markdown-article h2 { font-size: 1.25rem; }
332
- .starci-core-markdown-article h3 { font-size: 1.125rem; }
333
- .starci-core-markdown-article h4 { font-size: 1rem; }
334
-
335
- .starci-core-markdown-article :where(p, ul, ol, blockquote, pre, table) {
336
- margin: 0;
337
- }
338
-
339
- .starci-core-markdown-article :where(ul, ol) {
340
- padding-inline-start: 1.5rem;
341
- }
342
-
343
- .starci-core-markdown-article ul { list-style: disc; }
344
- .starci-core-markdown-article ol { list-style: decimal; }
345
-
346
- .starci-core-markdown-article strong { font-weight: 600; }
347
- .starci-core-markdown-article em { font-style: italic; }
348
-
349
- .starci-core-markdown-article li + li {
350
- margin-top: 0.375rem;
351
- }
352
-
353
- .starci-core-markdown-article :not(pre) > code {
354
- display: inline;
355
- padding: 0.125rem 0.375rem;
356
- border: 1px solid var(--border, GrayText);
357
- border-radius: 999px;
358
- background: var(--muted-surface, color-mix(in srgb, CanvasText 7%, Canvas));
359
- color: inherit;
360
- font: 500 0.875rem/1.4 ui-monospace, SFMono-Regular, Consolas, monospace;
361
- white-space: break-spaces;
362
- }
363
-
364
- .starci-core-markdown-article pre,
365
- .starci-core-fenced-code-block pre {
366
- max-width: 100%;
367
- margin: 0;
368
- padding: 1rem;
369
- overflow-x: auto;
370
- border: 1px solid var(--border, GrayText);
371
- border-radius: 0.75rem;
372
- background: var(--code-surface, color-mix(in srgb, CanvasText 6%, Canvas));
373
- color: inherit;
374
- overscroll-behavior-inline: contain;
375
- }
376
-
377
- .starci-core-markdown-article pre code,
378
- .starci-core-fenced-code-block pre code {
379
- padding: 0;
380
- border: 0;
381
- background: transparent;
382
- color: inherit;
383
- font: 400 0.875rem/1.6 ui-monospace, SFMono-Regular, Consolas, monospace;
384
- white-space: pre;
385
- }
386
-
387
- .starci-core-fenced-code-block {
388
- width: 100%;
389
- min-width: 0;
390
- margin: 0 0 1rem;
391
- }
392
-
393
- .starci-core-fenced-code-header {
394
- display: flex;
395
- min-width: 0;
396
- align-items: center;
397
- justify-content: space-between;
398
- gap: 0.75rem;
399
- padding: 0 0 0.5rem;
400
- color: var(--muted, GrayText);
401
- }
402
-
403
- .starci-core-fenced-code-header :where(button) {
404
- padding: 0;
405
- border: 0;
406
- background: transparent;
407
- color: inherit;
408
- cursor: pointer;
409
- font: inherit;
410
- }
411
-
412
- [data-grammar-fenced-code-highlight="true"] {
413
- width: 100%;
414
- min-width: 0;
415
- overflow-x: auto;
416
- border: 1px solid var(--border, GrayText);
417
- border-radius: 0.75rem;
418
- background: var(--code-surface, color-mix(in srgb, CanvasText 6%, Canvas));
419
- overscroll-behavior-inline: contain;
420
- }
421
-
422
- [data-grammar-fenced-code-highlight="true"] pre {
423
- width: max-content;
424
- min-width: 100%;
425
- padding: 1rem;
426
- border: 0;
427
- border-radius: 0;
428
- background: transparent !important;
429
- }
430
-
431
- .starci-core-markdown-article blockquote {
432
- padding-inline-start: 1rem;
433
- border-inline-start: 3px solid var(--border, GrayText);
434
- color: var(--muted, GrayText);
435
- }
436
-
437
- .starci-core-markdown-article table,
438
- .starci-core-markdown-table-frame {
439
- display: block;
440
- width: 100%;
441
- max-width: 100%;
442
- overflow-x: auto;
443
- overscroll-behavior-inline: contain;
444
- }
445
-
446
- .starci-core-markdown-article table {
447
- border-collapse: collapse;
448
- }
449
-
450
- .starci-core-markdown-table-frame {
451
- min-width: 0;
452
- border: 1px solid var(--border, GrayText);
453
- border-radius: 0.75rem;
454
- background: var(--code-surface, color-mix(in srgb, CanvasText 4%, Canvas));
455
- box-shadow: none;
456
- }
457
-
458
- .starci-core-markdown-article hr {
459
- width: 100%;
460
- margin: 1rem 0;
461
- border: 0;
462
- border-top: 1px solid var(--separator, var(--border, GrayText));
463
- }
464
-
465
- .starci-core-markdown-article :where(th, td) {
466
- min-width: 8rem;
467
- padding: 0.625rem 0.75rem;
468
- border-bottom: 1px solid var(--separator, var(--border, GrayText));
469
- text-align: start;
470
- vertical-align: top;
471
- }
472
-
473
- .starci-core-markdown-article a {
474
- color: var(--link, LinkText);
475
- text-decoration: underline;
476
- text-underline-offset: 0.15em;
477
- }
478
-
479
- .starci-core-static-row-copy {
480
- display: flex;
481
- min-width: 0;
482
- flex: 1;
483
- flex-direction: column;
484
- gap: var(--starci-core-copy-gap, 0.25rem);
485
- }
486
-
487
- .starci-core-static-row-copy > :last-child:not(:first-child) {
488
- color: var(--muted, GrayText);
489
- }
490
-
491
- [data-grammar-state-mark="check"] {
492
- width: 1.25rem;
493
- height: 1.25rem;
494
- flex: none;
495
- color: var(--success, #15803d);
496
- }
497
-
498
- .starci-core-rail {
499
- container-name: starci-core-rail;
500
- container-type: inline-size;
501
- width: 100%;
502
- min-width: 0;
503
- }
504
-
505
- .starci-core-rail[data-grammar-rail-width="compact"] {
506
- max-width: var(--starci-core-rail-compact, 16rem);
507
- }
508
-
509
- .starci-core-rail[data-grammar-collapse="collapsed"] {
510
- max-width: var(--starci-core-rail-collapsed, 4rem);
511
- }
512
-
513
- .starci-core-rail[data-grammar-rail-width="standard"] {
514
- max-width: var(--starci-core-rail-standard, 20rem);
515
- }
516
-
517
- .starci-core-rail[data-grammar-rail-width="wide"] {
518
- max-width: var(--starci-core-rail-wide, 24rem);
519
- }
520
-
521
- .starci-core-rail-frame {
522
- display: flex;
523
- min-width: 0;
524
- max-height: calc(100dvh - var(--starci-core-rail-offset, 5.5rem) - 1.5rem);
525
- flex-direction: column;
526
- gap: var(--starci-core-rail-gap, 1rem);
527
- }
528
-
529
- .starci-core-rail[data-grammar-rail-mode="sticky"] .starci-core-rail-frame {
530
- position: sticky;
531
- top: var(--starci-core-rail-offset, 5.5rem);
532
- }
533
-
534
- .starci-core-rail-body {
535
- min-height: 0;
536
- overflow-y: auto;
537
- overscroll-behavior: contain;
538
- }
539
-
540
- .starci-core-rail[data-grammar-rail-height="fill"],
541
- .starci-core-rail[data-grammar-rail-height="fill"] .starci-core-rail-frame,
542
- .starci-core-rail[data-grammar-rail-height="fill"] .starci-core-rail-body {
543
- height: 100%;
544
- min-height: 0;
545
- }
546
-
547
- .starci-core-rail[data-grammar-rail-height="fill"] .starci-core-rail-frame {
548
- max-height: none;
549
- }
550
-
551
- .starci-core-rail[data-grammar-rail-height="fill"] .starci-core-rail-body {
552
- flex: 1 1 0%;
553
- overflow: hidden;
554
- }
555
-
556
- .starci-core-rail-footer {
557
- flex: none;
558
- }
559
-
560
- .starci-core-rail :where(button, [role="button"]) {
561
- min-inline-size: 44px;
562
- min-block-size: 44px;
563
- }
564
-
565
- @container starci-core-surface (max-width: 28rem) {
566
- .starci-core-surface-label {
567
- align-items: flex-start;
568
- flex-direction: column;
569
- }
570
-
571
- .starci-core-static-row {
572
- gap: var(--starci-core-row-gap-compact, 0.5rem);
573
- }
574
- }
575
-
576
- @container starci-core-rail (max-width: 18rem) {
577
- .starci-core-rail-frame {
578
- gap: var(--starci-core-rail-gap-compact, 0.75rem);
579
- }
580
- }
581
-
582
- @media (max-width: 47.999rem) {
583
- .starci-core-rail[data-grammar-rail-mode="sticky"] .starci-core-rail-frame {
584
- position: static;
585
- max-height: none;
586
- }
587
-
588
- .starci-core-rail-body {
589
- overflow-y: visible;
590
- }
591
- }
592
-
593
- @media (prefers-reduced-motion: reduce) {
594
- [data-grammar-motion="animated"] {
595
- scroll-behavior: auto;
146
+ @media (forced-colors: active) {
147
+ .grammar-common-root[data-grammar-family="core"] {
148
+ --starci-core-accent: Highlight;
149
+ --starci-core-focus: Highlight;
150
+ --starci-core-canvas: Canvas;
151
+ --starci-core-surface: Canvas;
152
+ --starci-core-surface-secondary: Canvas;
153
+ --starci-core-foreground: CanvasText;
154
+ --starci-core-muted: GrayText;
155
+ --starci-core-border: CanvasText;
156
+ --starci-core-separator: CanvasText;
157
+ --starci-core-success: CanvasText;
158
+ --starci-core-success-foreground: Canvas;
159
+ --starci-core-warning: CanvasText;
160
+ --starci-core-warning-foreground: Canvas;
161
+ --starci-core-danger: CanvasText;
162
+ --starci-core-danger-foreground: Canvas;
163
+ --starci-core-info: CanvasText;
164
+ --starci-core-info-foreground: Canvas;
165
+ --starci-core-surface-shadow: none;
596
166
  }
597
167
  }
598
168
  }
169
+