@starci/grammar 0.4.12 → 0.5.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 (361) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +269 -47
  3. package/dist/.build-stamp.json +9 -0
  4. package/dist/common/components-forms.css +435 -0
  5. package/dist/common/components-navigation.css +1163 -0
  6. package/dist/common/components-overlays.css +939 -0
  7. package/dist/common/registry.d.ts +60 -1
  8. package/dist/common/registry.d.ts.map +1 -1
  9. package/dist/common/registry.js +6 -0
  10. package/dist/common/registry.js.map +1 -1
  11. package/dist/common/renderers-forms.d.ts +44 -0
  12. package/dist/common/renderers-forms.d.ts.map +1 -0
  13. package/dist/common/renderers-forms.js +49 -0
  14. package/dist/common/renderers-forms.js.map +1 -0
  15. package/dist/common/renderers-navigation.d.ts +42 -0
  16. package/dist/common/renderers-navigation.d.ts.map +1 -0
  17. package/dist/common/renderers-navigation.js +46 -0
  18. package/dist/common/renderers-navigation.js.map +1 -0
  19. package/dist/common/renderers-overlays.d.ts +32 -0
  20. package/dist/common/renderers-overlays.d.ts.map +1 -0
  21. package/dist/common/renderers-overlays.js +36 -0
  22. package/dist/common/renderers-overlays.js.map +1 -0
  23. package/dist/common/renderers.d.ts +5 -2
  24. package/dist/common/renderers.d.ts.map +1 -1
  25. package/dist/common/renderers.js +3 -0
  26. package/dist/common/renderers.js.map +1 -1
  27. package/dist/common/styles.css +282 -1
  28. package/dist/core/LeadingNumber.d.ts.map +1 -1
  29. package/dist/core/LeadingNumber.js +1 -1
  30. package/dist/core/LeadingNumber.js.map +1 -1
  31. package/dist/core/OtpInput.d.ts +17 -1
  32. package/dist/core/OtpInput.d.ts.map +1 -1
  33. package/dist/core/OtpInput.js +17 -5
  34. package/dist/core/OtpInput.js.map +1 -1
  35. package/dist/core/StateMark.d.ts +6 -1
  36. package/dist/core/StateMark.d.ts.map +1 -1
  37. package/dist/core/StateMark.js +7 -2
  38. package/dist/core/StateMark.js.map +1 -1
  39. package/dist/core/branch/Accordion/index.d.ts +28 -0
  40. package/dist/core/branch/Accordion/index.d.ts.map +1 -0
  41. package/dist/core/branch/Accordion/index.js +30 -0
  42. package/dist/core/branch/Accordion/index.js.map +1 -0
  43. package/dist/core/branch/AlertDialog/index.d.ts +40 -0
  44. package/dist/core/branch/AlertDialog/index.d.ts.map +1 -0
  45. package/dist/core/branch/AlertDialog/index.js +59 -0
  46. package/dist/core/branch/AlertDialog/index.js.map +1 -0
  47. package/dist/core/branch/Calendar/index.d.ts +26 -0
  48. package/dist/core/branch/Calendar/index.d.ts.map +1 -0
  49. package/dist/core/branch/Calendar/index.js +17 -0
  50. package/dist/core/branch/Calendar/index.js.map +1 -0
  51. package/dist/core/branch/ComboBox/index.d.ts +32 -0
  52. package/dist/core/branch/ComboBox/index.d.ts.map +1 -0
  53. package/dist/core/branch/ComboBox/index.js +28 -0
  54. package/dist/core/branch/ComboBox/index.js.map +1 -0
  55. package/dist/core/branch/DataTable/index.d.ts +52 -0
  56. package/dist/core/branch/DataTable/index.d.ts.map +1 -0
  57. package/dist/core/branch/DataTable/index.js +46 -0
  58. package/dist/core/branch/DataTable/index.js.map +1 -0
  59. package/dist/core/branch/DatePicker/index.d.ts +23 -0
  60. package/dist/core/branch/DatePicker/index.d.ts.map +1 -0
  61. package/dist/core/branch/DatePicker/index.js +29 -0
  62. package/dist/core/branch/DatePicker/index.js.map +1 -0
  63. package/dist/core/branch/DateRangePicker/index.d.ts +21 -0
  64. package/dist/core/branch/DateRangePicker/index.d.ts.map +1 -0
  65. package/dist/core/branch/DateRangePicker/index.js +22 -0
  66. package/dist/core/branch/DateRangePicker/index.js.map +1 -0
  67. package/dist/core/branch/Dialog/index.d.ts +36 -0
  68. package/dist/core/branch/Dialog/index.d.ts.map +1 -0
  69. package/dist/core/branch/Dialog/index.js +20 -0
  70. package/dist/core/branch/Dialog/index.js.map +1 -0
  71. package/dist/core/branch/Disclosure/index.d.ts +22 -0
  72. package/dist/core/branch/Disclosure/index.d.ts.map +1 -0
  73. package/dist/core/branch/Disclosure/index.js +26 -0
  74. package/dist/core/branch/Disclosure/index.js.map +1 -0
  75. package/dist/core/branch/Drawer/index.d.ts +35 -0
  76. package/dist/core/branch/Drawer/index.d.ts.map +1 -0
  77. package/dist/core/branch/Drawer/index.js +20 -0
  78. package/dist/core/branch/Drawer/index.js.map +1 -0
  79. package/dist/core/branch/DropdownMenu/index.d.ts +61 -0
  80. package/dist/core/branch/DropdownMenu/index.d.ts.map +1 -0
  81. package/dist/core/branch/DropdownMenu/index.js +59 -0
  82. package/dist/core/branch/DropdownMenu/index.js.map +1 -0
  83. package/dist/core/branch/ListBox/index.d.ts +30 -0
  84. package/dist/core/branch/ListBox/index.d.ts.map +1 -0
  85. package/dist/core/branch/ListBox/index.js +14 -0
  86. package/dist/core/branch/ListBox/index.js.map +1 -0
  87. package/dist/core/branch/MarkdownArticle/index.d.ts +8 -0
  88. package/dist/core/branch/MarkdownArticle/index.d.ts.map +1 -1
  89. package/dist/core/branch/MarkdownArticle/index.js +7 -2
  90. package/dist/core/branch/MarkdownArticle/index.js.map +1 -1
  91. package/dist/core/branch/Popover/index.d.ts +33 -0
  92. package/dist/core/branch/Popover/index.d.ts.map +1 -0
  93. package/dist/core/branch/Popover/index.js +16 -0
  94. package/dist/core/branch/Popover/index.js.map +1 -0
  95. package/dist/core/branch/Rail/index.d.ts +2 -0
  96. package/dist/core/branch/Rail/index.d.ts.map +1 -1
  97. package/dist/core/branch/Rail/index.js +10 -3
  98. package/dist/core/branch/Rail/index.js.map +1 -1
  99. package/dist/core/branch/Select/index.d.ts +31 -0
  100. package/dist/core/branch/Select/index.d.ts.map +1 -0
  101. package/dist/core/branch/Select/index.js +41 -0
  102. package/dist/core/branch/Select/index.js.map +1 -0
  103. package/dist/core/branch/SurfaceAccordionCard/index.d.ts +6 -0
  104. package/dist/core/branch/SurfaceAccordionCard/index.d.ts.map +1 -1
  105. package/dist/core/branch/SurfaceAccordionCard/index.js +6 -6
  106. package/dist/core/branch/SurfaceAccordionCard/index.js.map +1 -1
  107. package/dist/core/branch/SurfaceCard/classNames.d.ts +7 -2
  108. package/dist/core/branch/SurfaceCard/classNames.d.ts.map +1 -1
  109. package/dist/core/branch/SurfaceCard/classNames.js +7 -2
  110. package/dist/core/branch/SurfaceCard/classNames.js.map +1 -1
  111. package/dist/core/branch/SurfaceCard/index.d.ts +6 -0
  112. package/dist/core/branch/SurfaceCard/index.d.ts.map +1 -1
  113. package/dist/core/branch/SurfaceCard/index.js +4 -4
  114. package/dist/core/branch/SurfaceCard/index.js.map +1 -1
  115. package/dist/core/branch/SurfaceListCard/index.d.ts +17 -1
  116. package/dist/core/branch/SurfaceListCard/index.d.ts.map +1 -1
  117. package/dist/core/branch/SurfaceListCard/index.js +10 -4
  118. package/dist/core/branch/SurfaceListCard/index.js.map +1 -1
  119. package/dist/core/branch/Tabs/index.js +1 -1
  120. package/dist/core/branch/Tabs/index.js.map +1 -1
  121. package/dist/core/branch/Toast/index.d.ts +75 -0
  122. package/dist/core/branch/Toast/index.d.ts.map +1 -0
  123. package/dist/core/branch/Toast/index.js +145 -0
  124. package/dist/core/branch/Toast/index.js.map +1 -0
  125. package/dist/core/composite/Alert/index.d.ts +40 -0
  126. package/dist/core/composite/Alert/index.d.ts.map +1 -0
  127. package/dist/core/composite/Alert/index.js +27 -0
  128. package/dist/core/composite/Alert/index.js.map +1 -0
  129. package/dist/core/composite/AvatarGroup/index.d.ts +23 -0
  130. package/dist/core/composite/AvatarGroup/index.d.ts.map +1 -0
  131. package/dist/core/composite/AvatarGroup/index.js +15 -0
  132. package/dist/core/composite/AvatarGroup/index.js.map +1 -0
  133. package/dist/core/composite/Breadcrumbs/index.d.ts +27 -0
  134. package/dist/core/composite/Breadcrumbs/index.d.ts.map +1 -0
  135. package/dist/core/composite/Breadcrumbs/index.js +16 -0
  136. package/dist/core/composite/Breadcrumbs/index.js.map +1 -0
  137. package/dist/core/composite/ButtonGroup/index.d.ts +14 -0
  138. package/dist/core/composite/ButtonGroup/index.d.ts.map +1 -0
  139. package/dist/core/composite/ButtonGroup/index.js +17 -0
  140. package/dist/core/composite/ButtonGroup/index.js.map +1 -0
  141. package/dist/core/composite/CheckboxGroup/index.d.ts +23 -0
  142. package/dist/core/composite/CheckboxGroup/index.d.ts.map +1 -0
  143. package/dist/core/composite/CheckboxGroup/index.js +21 -0
  144. package/dist/core/composite/CheckboxGroup/index.js.map +1 -0
  145. package/dist/core/composite/DescriptionList/index.d.ts +23 -0
  146. package/dist/core/composite/DescriptionList/index.d.ts.map +1 -0
  147. package/dist/core/composite/DescriptionList/index.js +8 -0
  148. package/dist/core/composite/DescriptionList/index.js.map +1 -0
  149. package/dist/core/composite/Fieldset/index.d.ts +17 -0
  150. package/dist/core/composite/Fieldset/index.d.ts.map +1 -0
  151. package/dist/core/composite/Fieldset/index.js +14 -0
  152. package/dist/core/composite/Fieldset/index.js.map +1 -0
  153. package/dist/core/composite/Form/index.d.ts +32 -0
  154. package/dist/core/composite/Form/index.d.ts.map +1 -0
  155. package/dist/core/composite/Form/index.js +25 -0
  156. package/dist/core/composite/Form/index.js.map +1 -0
  157. package/dist/core/composite/HorizontalScrollRegion/index.d.ts +5 -0
  158. package/dist/core/composite/HorizontalScrollRegion/index.d.ts.map +1 -1
  159. package/dist/core/composite/HorizontalScrollRegion/index.js +3 -2
  160. package/dist/core/composite/HorizontalScrollRegion/index.js.map +1 -1
  161. package/dist/core/composite/Pagination/index.d.ts +31 -0
  162. package/dist/core/composite/Pagination/index.d.ts.map +1 -0
  163. package/dist/core/composite/Pagination/index.js +42 -0
  164. package/dist/core/composite/Pagination/index.js.map +1 -0
  165. package/dist/core/composite/RadioGroup/index.d.ts +15 -0
  166. package/dist/core/composite/RadioGroup/index.d.ts.map +1 -0
  167. package/dist/core/composite/RadioGroup/index.js +20 -0
  168. package/dist/core/composite/RadioGroup/index.js.map +1 -0
  169. package/dist/core/composite/SegmentedControl/index.d.ts +24 -0
  170. package/dist/core/composite/SegmentedControl/index.d.ts.map +1 -0
  171. package/dist/core/composite/SegmentedControl/index.js +33 -0
  172. package/dist/core/composite/SegmentedControl/index.js.map +1 -0
  173. package/dist/core/composite/StaticStateRow/index.d.ts +6 -1
  174. package/dist/core/composite/StaticStateRow/index.d.ts.map +1 -1
  175. package/dist/core/composite/StaticStateRow/index.js +6 -1
  176. package/dist/core/composite/StaticStateRow/index.js.map +1 -1
  177. package/dist/core/composite/Stepper/index.d.ts +34 -0
  178. package/dist/core/composite/Stepper/index.d.ts.map +1 -0
  179. package/dist/core/composite/Stepper/index.js +27 -0
  180. package/dist/core/composite/Stepper/index.js.map +1 -0
  181. package/dist/core/composite/TagGroup/index.d.ts +41 -0
  182. package/dist/core/composite/TagGroup/index.d.ts.map +1 -0
  183. package/dist/core/composite/TagGroup/index.js +17 -0
  184. package/dist/core/composite/TagGroup/index.js.map +1 -0
  185. package/dist/core/composite/Timeline/index.d.ts +28 -0
  186. package/dist/core/composite/Timeline/index.d.ts.map +1 -0
  187. package/dist/core/composite/Timeline/index.js +14 -0
  188. package/dist/core/composite/Timeline/index.js.map +1 -0
  189. package/dist/core/composite/VerticalScrollRegion/index.d.ts +31 -1
  190. package/dist/core/composite/VerticalScrollRegion/index.d.ts.map +1 -1
  191. package/dist/core/composite/VerticalScrollRegion/index.js +16 -3
  192. package/dist/core/composite/VerticalScrollRegion/index.js.map +1 -1
  193. package/dist/core/composition/BottomNav/index.d.ts +33 -0
  194. package/dist/core/composition/BottomNav/index.d.ts.map +1 -0
  195. package/dist/core/composition/BottomNav/index.js +22 -0
  196. package/dist/core/composition/BottomNav/index.js.map +1 -0
  197. package/dist/core/composition/Footer/index.d.ts +35 -0
  198. package/dist/core/composition/Footer/index.d.ts.map +1 -0
  199. package/dist/core/composition/Footer/index.js +19 -0
  200. package/dist/core/composition/Footer/index.js.map +1 -0
  201. package/dist/core/composition/NavigationFeatureNav/index.d.ts +3 -0
  202. package/dist/core/composition/NavigationFeatureNav/index.d.ts.map +1 -1
  203. package/dist/core/composition/NavigationFeatureNav/index.js +3 -0
  204. package/dist/core/composition/NavigationFeatureNav/index.js.map +1 -1
  205. package/dist/core/composition/TopBar/index.d.ts +34 -0
  206. package/dist/core/composition/TopBar/index.d.ts.map +1 -0
  207. package/dist/core/composition/TopBar/index.js +15 -0
  208. package/dist/core/composition/TopBar/index.js.map +1 -0
  209. package/dist/core/composition/WorkspaceShell/index.d.ts +18 -1
  210. package/dist/core/composition/WorkspaceShell/index.d.ts.map +1 -1
  211. package/dist/core/composition/WorkspaceShell/index.js +10 -1
  212. package/dist/core/composition/WorkspaceShell/index.js.map +1 -1
  213. package/dist/core/dna.d.ts +26 -8
  214. package/dist/core/dna.d.ts.map +1 -1
  215. package/dist/core/dna.js +22 -4
  216. package/dist/core/dna.js.map +1 -1
  217. package/dist/core/index.d.ts +60 -1
  218. package/dist/core/index.d.ts.map +1 -1
  219. package/dist/core/navigationClassNames.d.ts +3 -0
  220. package/dist/core/navigationClassNames.d.ts.map +1 -0
  221. package/dist/core/navigationClassNames.js +4 -0
  222. package/dist/core/navigationClassNames.js.map +1 -0
  223. package/dist/core/navigationKeys.d.ts +11 -0
  224. package/dist/core/navigationKeys.d.ts.map +1 -0
  225. package/dist/core/navigationKeys.js +44 -0
  226. package/dist/core/navigationKeys.js.map +1 -0
  227. package/dist/core/overlayScope.d.ts +42 -0
  228. package/dist/core/overlayScope.d.ts.map +1 -0
  229. package/dist/core/overlayScope.js +54 -0
  230. package/dist/core/overlayScope.js.map +1 -0
  231. package/dist/core/primitive/Avatar/index.d.ts +34 -0
  232. package/dist/core/primitive/Avatar/index.d.ts.map +1 -0
  233. package/dist/core/primitive/Avatar/index.js +24 -0
  234. package/dist/core/primitive/Avatar/index.js.map +1 -0
  235. package/dist/core/primitive/Badge/index.d.ts +6 -1
  236. package/dist/core/primitive/Badge/index.d.ts.map +1 -1
  237. package/dist/core/primitive/Badge/index.js +7 -2
  238. package/dist/core/primitive/Badge/index.js.map +1 -1
  239. package/dist/core/primitive/Checkbox/index.d.ts +25 -0
  240. package/dist/core/primitive/Checkbox/index.d.ts.map +1 -0
  241. package/dist/core/primitive/Checkbox/index.js +17 -0
  242. package/dist/core/primitive/Checkbox/index.js.map +1 -0
  243. package/dist/core/primitive/CloseButton/index.d.ts +17 -0
  244. package/dist/core/primitive/CloseButton/index.d.ts.map +1 -0
  245. package/dist/core/primitive/CloseButton/index.js +11 -0
  246. package/dist/core/primitive/CloseButton/index.js.map +1 -0
  247. package/dist/core/primitive/DateField/index.d.ts +33 -0
  248. package/dist/core/primitive/DateField/index.d.ts.map +1 -0
  249. package/dist/core/primitive/DateField/index.js +33 -0
  250. package/dist/core/primitive/DateField/index.js.map +1 -0
  251. package/dist/core/primitive/Field/index.d.ts +127 -0
  252. package/dist/core/primitive/Field/index.d.ts.map +1 -0
  253. package/dist/core/primitive/Field/index.js +100 -0
  254. package/dist/core/primitive/Field/index.js.map +1 -0
  255. package/dist/core/primitive/FileDropzone/index.d.ts +25 -0
  256. package/dist/core/primitive/FileDropzone/index.d.ts.map +1 -0
  257. package/dist/core/primitive/FileDropzone/index.js +35 -0
  258. package/dist/core/primitive/FileDropzone/index.js.map +1 -0
  259. package/dist/core/primitive/GrammarRoot/index.d.ts +6 -1
  260. package/dist/core/primitive/GrammarRoot/index.d.ts.map +1 -1
  261. package/dist/core/primitive/GrammarRoot/index.js +7 -2
  262. package/dist/core/primitive/GrammarRoot/index.js.map +1 -1
  263. package/dist/core/primitive/Icon/index.d.ts +7 -1
  264. package/dist/core/primitive/Icon/index.d.ts.map +1 -1
  265. package/dist/core/primitive/Icon/index.js +7 -2
  266. package/dist/core/primitive/Icon/index.js.map +1 -1
  267. package/dist/core/primitive/IconButton/index.d.ts +1 -1
  268. package/dist/core/primitive/IconButton/index.d.ts.map +1 -1
  269. package/dist/core/primitive/IconButton/index.js +2 -2
  270. package/dist/core/primitive/IconButton/index.js.map +1 -1
  271. package/dist/core/primitive/Image/index.d.ts +30 -0
  272. package/dist/core/primitive/Image/index.d.ts.map +1 -0
  273. package/dist/core/primitive/Image/index.js +29 -0
  274. package/dist/core/primitive/Image/index.js.map +1 -0
  275. package/dist/core/primitive/IncludedMark/index.d.ts +2 -1
  276. package/dist/core/primitive/IncludedMark/index.d.ts.map +1 -1
  277. package/dist/core/primitive/IncludedMark/index.js +3 -2
  278. package/dist/core/primitive/IncludedMark/index.js.map +1 -1
  279. package/dist/core/primitive/Kbd/index.d.ts +13 -0
  280. package/dist/core/primitive/Kbd/index.d.ts.map +1 -0
  281. package/dist/core/primitive/Kbd/index.js +14 -0
  282. package/dist/core/primitive/Kbd/index.js.map +1 -0
  283. package/dist/core/primitive/Label/index.d.ts +18 -4
  284. package/dist/core/primitive/Label/index.d.ts.map +1 -1
  285. package/dist/core/primitive/Label/index.js +4 -2
  286. package/dist/core/primitive/Label/index.js.map +1 -1
  287. package/dist/core/primitive/Link/index.d.ts +30 -0
  288. package/dist/core/primitive/Link/index.d.ts.map +1 -0
  289. package/dist/core/primitive/Link/index.js +17 -0
  290. package/dist/core/primitive/Link/index.js.map +1 -0
  291. package/dist/core/primitive/Meter/index.d.ts +16 -0
  292. package/dist/core/primitive/Meter/index.d.ts.map +1 -0
  293. package/dist/core/primitive/Meter/index.js +20 -0
  294. package/dist/core/primitive/Meter/index.js.map +1 -0
  295. package/dist/core/primitive/NumberField/index.d.ts +21 -0
  296. package/dist/core/primitive/NumberField/index.d.ts.map +1 -0
  297. package/dist/core/primitive/NumberField/index.js +15 -0
  298. package/dist/core/primitive/NumberField/index.js.map +1 -0
  299. package/dist/core/primitive/ProgressCircle/index.d.ts +13 -0
  300. package/dist/core/primitive/ProgressCircle/index.d.ts.map +1 -0
  301. package/dist/core/primitive/ProgressCircle/index.js +5 -0
  302. package/dist/core/primitive/ProgressCircle/index.js.map +1 -0
  303. package/dist/core/primitive/RankArtwork/index.d.ts +2 -1
  304. package/dist/core/primitive/RankArtwork/index.d.ts.map +1 -1
  305. package/dist/core/primitive/RankArtwork/index.js +3 -2
  306. package/dist/core/primitive/RankArtwork/index.js.map +1 -1
  307. package/dist/core/primitive/Rating/index.d.ts +26 -0
  308. package/dist/core/primitive/Rating/index.d.ts.map +1 -0
  309. package/dist/core/primitive/Rating/index.js +37 -0
  310. package/dist/core/primitive/Rating/index.js.map +1 -0
  311. package/dist/core/primitive/SearchField/index.d.ts +22 -0
  312. package/dist/core/primitive/SearchField/index.d.ts.map +1 -0
  313. package/dist/core/primitive/SearchField/index.js +15 -0
  314. package/dist/core/primitive/SearchField/index.js.map +1 -0
  315. package/dist/core/primitive/SectionHeader/index.d.ts +9 -2
  316. package/dist/core/primitive/SectionHeader/index.d.ts.map +1 -1
  317. package/dist/core/primitive/SectionHeader/index.js +8 -2
  318. package/dist/core/primitive/SectionHeader/index.js.map +1 -1
  319. package/dist/core/primitive/Skeleton/index.d.ts +21 -0
  320. package/dist/core/primitive/Skeleton/index.d.ts.map +1 -0
  321. package/dist/core/primitive/Skeleton/index.js +18 -0
  322. package/dist/core/primitive/Skeleton/index.js.map +1 -0
  323. package/dist/core/primitive/Slider/index.d.ts +26 -0
  324. package/dist/core/primitive/Slider/index.d.ts.map +1 -0
  325. package/dist/core/primitive/Slider/index.js +37 -0
  326. package/dist/core/primitive/Slider/index.js.map +1 -0
  327. package/dist/core/primitive/Spinner/index.d.ts +18 -0
  328. package/dist/core/primitive/Spinner/index.d.ts.map +1 -0
  329. package/dist/core/primitive/Spinner/index.js +11 -0
  330. package/dist/core/primitive/Spinner/index.js.map +1 -0
  331. package/dist/core/primitive/Switch/index.d.ts +13 -0
  332. package/dist/core/primitive/Switch/index.d.ts.map +1 -0
  333. package/dist/core/primitive/Switch/index.js +15 -0
  334. package/dist/core/primitive/Switch/index.js.map +1 -0
  335. package/dist/core/primitive/Textarea/index.d.ts +16 -0
  336. package/dist/core/primitive/Textarea/index.d.ts.map +1 -0
  337. package/dist/core/primitive/Textarea/index.js +20 -0
  338. package/dist/core/primitive/Textarea/index.js.map +1 -0
  339. package/dist/core/primitive/TimeField/index.d.ts +15 -0
  340. package/dist/core/primitive/TimeField/index.d.ts.map +1 -0
  341. package/dist/core/primitive/TimeField/index.js +13 -0
  342. package/dist/core/primitive/TimeField/index.js.map +1 -0
  343. package/dist/core/styles.css +32 -6
  344. package/dist/heritage/styles.css +21 -6
  345. package/dist/offset-pop/components-forms.css +405 -0
  346. package/dist/offset-pop/components-navigation.css +394 -0
  347. package/dist/offset-pop/components-overlays.css +253 -0
  348. package/dist/offset-pop/conformance.d.ts +64 -0
  349. package/dist/offset-pop/conformance.d.ts.map +1 -0
  350. package/dist/offset-pop/conformance.js +63 -0
  351. package/dist/offset-pop/conformance.js.map +1 -0
  352. package/dist/offset-pop/dna.d.ts +282 -0
  353. package/dist/offset-pop/dna.d.ts.map +1 -0
  354. package/dist/offset-pop/dna.js +276 -0
  355. package/dist/offset-pop/dna.js.map +1 -0
  356. package/dist/offset-pop/index.d.ts +4 -8
  357. package/dist/offset-pop/index.d.ts.map +1 -1
  358. package/dist/offset-pop/index.js +7 -18
  359. package/dist/offset-pop/index.js.map +1 -1
  360. package/dist/offset-pop/styles.css +203 -62
  361. package/package.json +33 -9
@@ -0,0 +1,1163 @@
1
+ /*
2
+ * Common anatomy for the navigation, layout-chrome and data-display group.
3
+ * Structure, geometry and state wiring only: every colour resolves through Common semantic
4
+ * variables (which each family binds), with system-colour fallbacks for an unthemed page.
5
+ */
6
+ @layer starci-grammar-common {
7
+ .starci-core-nav-visually-hidden {
8
+ position: absolute;
9
+ width: 1px;
10
+ height: 1px;
11
+ overflow: hidden;
12
+ margin: -1px;
13
+ padding: 0;
14
+ border: 0;
15
+ clip: rect(0, 0, 0, 0);
16
+ white-space: nowrap;
17
+ }
18
+
19
+ /* ---------- Link ---------- */
20
+ .starci-core-link {
21
+ color: var(--accent, var(--starci-core-accent, LinkText));
22
+ text-decoration-line: underline;
23
+ text-decoration-thickness: 1px;
24
+ text-underline-offset: 0.2em;
25
+ border-radius: 0.25rem;
26
+ overflow-wrap: anywhere;
27
+ }
28
+
29
+ .starci-core-link[data-grammar-link-visited="distinct"]:visited {
30
+ color: var(--accent-soft-foreground, var(--starci-core-accent, VisitedText));
31
+ }
32
+
33
+ .starci-core-link:hover,
34
+ .starci-core-link[data-hovered="true"] {
35
+ text-decoration-thickness: 2px;
36
+ }
37
+
38
+ .starci-core-link[data-grammar-current="true"] {
39
+ color: var(--foreground, var(--starci-core-foreground, CanvasText));
40
+ font-weight: 600;
41
+ text-decoration-line: none;
42
+ }
43
+
44
+ .starci-core-link:focus-visible,
45
+ .starci-core-link[data-focus-visible="true"] {
46
+ outline: 2px solid var(--focus, var(--accent, Highlight));
47
+ outline-offset: 2px;
48
+ }
49
+
50
+ .starci-core-link[aria-disabled="true"] {
51
+ color: var(--muted, GrayText);
52
+ text-decoration-line: none;
53
+ cursor: default;
54
+ }
55
+
56
+ .starci-core-link-external-icon {
57
+ display: inline-flex;
58
+ margin-inline-start: 0.25rem;
59
+ vertical-align: -0.125em;
60
+ }
61
+
62
+ .starci-core-link-external-icon > svg {
63
+ width: 0.875em;
64
+ height: 0.875em;
65
+ }
66
+
67
+ /* ---------- Breadcrumbs ---------- */
68
+ .starci-core-breadcrumbs {
69
+ min-width: 0;
70
+ max-width: 100%;
71
+ overflow-x: auto;
72
+ overscroll-behavior-inline: contain;
73
+ }
74
+
75
+ .starci-core-breadcrumbs-list {
76
+ display: flex;
77
+ flex-wrap: nowrap;
78
+ align-items: center;
79
+ gap: var(--grammar-inline-gap, 0.5rem);
80
+ margin: 0;
81
+ padding: 0;
82
+ list-style: none;
83
+ white-space: nowrap;
84
+ }
85
+
86
+ .starci-core-breadcrumb {
87
+ display: inline-flex;
88
+ min-width: 0;
89
+ align-items: center;
90
+ gap: var(--grammar-inline-gap, 0.5rem);
91
+ color: var(--muted, var(--starci-core-muted, GrayText));
92
+ }
93
+
94
+ .starci-core-breadcrumb-label {
95
+ display: inline-flex;
96
+ min-width: 0;
97
+ max-width: 16rem;
98
+ align-items: center;
99
+ gap: 0.25rem;
100
+ overflow: hidden;
101
+ text-overflow: ellipsis;
102
+ }
103
+
104
+ /* A leading glyph slot (breadcrumb or tag): never squeezed, centred on the label's line, and an
105
+ unsized app SVG takes the label's em box. A Grammar Icon keeps its own usage size. */
106
+ .starci-core-breadcrumb-leading,
107
+ .starci-core-tag-leading {
108
+ display: inline-flex;
109
+ flex: none;
110
+ align-items: center;
111
+ }
112
+
113
+ .starci-core-breadcrumb-leading > svg,
114
+ .starci-core-tag-leading > svg {
115
+ width: 1em;
116
+ height: 1em;
117
+ }
118
+
119
+ .starci-core-breadcrumb-label[data-grammar-current="true"] {
120
+ max-width: none;
121
+ color: var(--foreground, var(--starci-core-foreground, CanvasText));
122
+ font-weight: 600;
123
+ }
124
+
125
+ @media (max-width: 30rem) {
126
+ .starci-core-breadcrumb-label {
127
+ max-width: 8rem;
128
+ }
129
+ }
130
+
131
+ /* ---------- Pagination ---------- */
132
+ .starci-core-pagination {
133
+ display: flex;
134
+ min-width: 0;
135
+ flex-wrap: wrap;
136
+ align-items: center;
137
+ justify-content: space-between;
138
+ gap: var(--grammar-row-gap, 0.75rem);
139
+ }
140
+
141
+ .starci-core-pagination-list {
142
+ display: flex;
143
+ flex-wrap: nowrap;
144
+ align-items: center;
145
+ gap: 0.25rem;
146
+ margin: 0;
147
+ padding: 0;
148
+ list-style: none;
149
+ }
150
+
151
+ .starci-core-pagination-page,
152
+ .starci-core-pagination-step {
153
+ min-inline-size: 2.75rem;
154
+ min-block-size: 2.75rem;
155
+ border-radius: var(--radius, 0.5rem);
156
+ }
157
+
158
+ .starci-core-pagination-step {
159
+ display: inline-flex;
160
+ align-items: center;
161
+ gap: 0.25rem;
162
+ padding-inline: 0.75rem;
163
+ }
164
+
165
+ .starci-core-pagination-page[data-grammar-current="true"] {
166
+ background: var(--accent-soft, var(--starci-core-accent, Highlight));
167
+ color: var(--accent-soft-foreground, var(--starci-core-accent, HighlightText));
168
+ font-weight: 600;
169
+ }
170
+
171
+ .starci-core-pagination-page:focus-visible,
172
+ .starci-core-pagination-step:focus-visible,
173
+ .starci-core-pagination-page[data-focus-visible="true"],
174
+ .starci-core-pagination-step[data-focus-visible="true"] {
175
+ outline: 2px solid var(--focus, var(--accent, Highlight));
176
+ outline-offset: 2px;
177
+ }
178
+
179
+ @media (max-width: 30rem) {
180
+ .starci-core-pagination-step-label {
181
+ position: absolute;
182
+ width: 1px;
183
+ height: 1px;
184
+ overflow: hidden;
185
+ clip: rect(0, 0, 0, 0);
186
+ white-space: nowrap;
187
+ }
188
+
189
+ .starci-core-pagination-step {
190
+ padding-inline: 0;
191
+ justify-content: center;
192
+ }
193
+
194
+ .starci-core-pagination-item[data-grammar-page-distance="1"][data-grammar-page-edge="false"],
195
+ .starci-core-pagination-item[data-grammar-page-distance="2"][data-grammar-page-edge="false"] {
196
+ display: none;
197
+ }
198
+ }
199
+
200
+ /* ---------- Stepper ---------- */
201
+ .starci-core-stepper {
202
+ min-width: 0;
203
+ }
204
+
205
+ .starci-core-stepper-list {
206
+ display: flex;
207
+ margin: 0;
208
+ padding: 0;
209
+ list-style: none;
210
+ counter-reset: none;
211
+ }
212
+
213
+ .starci-core-stepper[data-grammar-stepper-orientation="horizontal"] .starci-core-stepper-list {
214
+ flex-direction: row;
215
+ align-items: flex-start;
216
+ gap: var(--grammar-inline-gap, 0.5rem);
217
+ }
218
+
219
+ .starci-core-stepper[data-grammar-stepper-orientation="vertical"] .starci-core-stepper-list {
220
+ flex-direction: column;
221
+ gap: var(--grammar-row-gap, 0.75rem);
222
+ }
223
+
224
+ .starci-core-step {
225
+ position: relative;
226
+ display: flex;
227
+ min-width: 0;
228
+ flex: 1 1 0%;
229
+ }
230
+
231
+ .starci-core-step-body {
232
+ display: flex;
233
+ min-width: 0;
234
+ align-items: flex-start;
235
+ gap: var(--grammar-inline-gap, 0.5rem);
236
+ padding: 0.25rem;
237
+ border: 0;
238
+ border-radius: var(--radius, 0.5rem);
239
+ background: transparent;
240
+ color: inherit;
241
+ font: inherit;
242
+ text-align: start;
243
+ }
244
+
245
+ .starci-core-step-control {
246
+ min-block-size: 2.75rem;
247
+ cursor: pointer;
248
+ }
249
+
250
+ .starci-core-step-control:disabled {
251
+ cursor: default;
252
+ opacity: 0.6;
253
+ }
254
+
255
+ .starci-core-step-control:focus-visible {
256
+ outline: 2px solid var(--focus, var(--accent, Highlight));
257
+ outline-offset: 2px;
258
+ }
259
+
260
+ .starci-core-step-marker {
261
+ display: inline-flex;
262
+ width: 2rem;
263
+ height: 2rem;
264
+ flex: 0 0 auto;
265
+ align-items: center;
266
+ justify-content: center;
267
+ border: 2px solid var(--border, var(--starci-core-border, CanvasText));
268
+ border-radius: 999px;
269
+ background: var(--surface, Canvas);
270
+ color: var(--muted, GrayText);
271
+ font-size: 0.875rem;
272
+ font-weight: 600;
273
+ font-variant-numeric: tabular-nums;
274
+ }
275
+
276
+ .starci-core-step[data-grammar-step-state="complete"] .starci-core-step-marker {
277
+ border-color: var(--accent, Highlight);
278
+ background: var(--accent, Highlight);
279
+ color: var(--accent-foreground, HighlightText);
280
+ }
281
+
282
+ .starci-core-step[data-grammar-step-state="current"] .starci-core-step-marker {
283
+ border-color: var(--accent, Highlight);
284
+ color: var(--accent, Highlight);
285
+ }
286
+
287
+ .starci-core-step[data-grammar-step-state="error"] .starci-core-step-marker {
288
+ border-color: var(--danger, Mark);
289
+ color: var(--danger, CanvasText);
290
+ }
291
+
292
+ .starci-core-step-copy {
293
+ display: flex;
294
+ min-width: 0;
295
+ flex-direction: column;
296
+ gap: 0.125rem;
297
+ padding-block-start: 0.25rem;
298
+ }
299
+
300
+ .starci-core-step-label {
301
+ overflow-wrap: anywhere;
302
+ font-size: 0.875rem;
303
+ font-weight: 600;
304
+ }
305
+
306
+ .starci-core-step[data-grammar-step-state="upcoming"] .starci-core-step-label {
307
+ color: var(--muted, GrayText);
308
+ font-weight: 500;
309
+ }
310
+
311
+ .starci-core-step-description {
312
+ color: var(--muted, GrayText);
313
+ font-size: 0.8125rem;
314
+ }
315
+
316
+ @media (max-width: 30rem) {
317
+ .starci-core-stepper[data-grammar-stepper-orientation="horizontal"] .starci-core-step:not([data-grammar-current="true"]) .starci-core-step-copy {
318
+ position: absolute;
319
+ width: 1px;
320
+ height: 1px;
321
+ overflow: hidden;
322
+ clip: rect(0, 0, 0, 0);
323
+ white-space: nowrap;
324
+ }
325
+
326
+ .starci-core-stepper[data-grammar-stepper-orientation="horizontal"] .starci-core-step:not([data-grammar-current="true"]) {
327
+ flex: 0 0 auto;
328
+ }
329
+ }
330
+
331
+ /* ---------- TopBar ---------- */
332
+ .starci-core-top-bar {
333
+ display: flex;
334
+ min-width: 0;
335
+ min-block-size: 3.5rem;
336
+ align-items: center;
337
+ gap: var(--grammar-row-gap, 0.75rem);
338
+ padding-block: 0.5rem;
339
+ padding-inline: var(--grammar-page-inset, 1rem);
340
+ padding-inline-start: max(var(--grammar-page-inset, 1rem), env(safe-area-inset-left));
341
+ padding-inline-end: max(var(--grammar-page-inset, 1rem), env(safe-area-inset-right));
342
+ border-block-end: 1px solid var(--separator, var(--border, CanvasText));
343
+ background: var(--background, Canvas);
344
+ color: var(--foreground, CanvasText);
345
+ }
346
+
347
+ .starci-core-top-bar[data-grammar-top-bar-position="sticky"] {
348
+ position: sticky;
349
+ z-index: var(--starci-core-top-bar-z, 40);
350
+ top: 0;
351
+ }
352
+
353
+ .starci-core-top-bar-brand {
354
+ display: flex;
355
+ min-width: 0;
356
+ flex: 0 1 auto;
357
+ align-items: center;
358
+ overflow: hidden;
359
+ white-space: nowrap;
360
+ }
361
+
362
+ .starci-core-top-bar-navigation {
363
+ display: flex;
364
+ min-width: 0;
365
+ flex: 1 1 auto;
366
+ align-items: center;
367
+ overflow-x: auto;
368
+ }
369
+
370
+ .starci-core-top-bar-actions {
371
+ display: flex;
372
+ flex: 0 0 auto;
373
+ align-items: center;
374
+ gap: var(--grammar-inline-gap, 0.5rem);
375
+ margin-inline-start: auto;
376
+ }
377
+
378
+ .starci-core-top-bar-menu-trigger {
379
+ min-inline-size: 2.75rem;
380
+ min-block-size: 2.75rem;
381
+ flex: 0 0 auto;
382
+ }
383
+
384
+ @media (min-width: 48rem) {
385
+ .starci-core-top-bar[data-grammar-top-bar-menu="compact"] .starci-core-top-bar-menu-trigger {
386
+ display: none;
387
+ }
388
+ }
389
+
390
+ @media (max-width: 47.99rem) {
391
+ .starci-core-top-bar[data-grammar-top-bar-menu="compact"] .starci-core-top-bar-navigation,
392
+ .starci-core-top-bar[data-grammar-top-bar-menu="always"] .starci-core-top-bar-navigation {
393
+ display: none;
394
+ }
395
+ }
396
+
397
+ /* ---------- BottomNav ---------- */
398
+ .starci-core-bottom-nav {
399
+ min-width: 0;
400
+ padding-block-end: env(safe-area-inset-bottom, 0px);
401
+ padding-inline: env(safe-area-inset-left, 0px) env(safe-area-inset-right, 0px);
402
+ border-block-start: 1px solid var(--separator, var(--border, CanvasText));
403
+ background: var(--surface, var(--background, Canvas));
404
+ color: var(--foreground, CanvasText);
405
+ }
406
+
407
+ .starci-core-bottom-nav[data-grammar-bottom-nav-position="fixed"] {
408
+ position: fixed;
409
+ z-index: var(--starci-core-bottom-nav-z, 40);
410
+ inset-inline: 0;
411
+ bottom: 0;
412
+ }
413
+
414
+ /*
415
+ * THE FIXED BAR RESERVES ITS OWN SPACE.
416
+ *
417
+ * A fixed BottomNav publishes `--starci-core-bottom-nav-offset` on its GrammarRoot: the bar's
418
+ * block size (`--starci-core-bottom-nav-block-size`, which a family redefines when it redraws the
419
+ * bar) plus the device safe area. It is published only while the bar is actually drawn - always
420
+ * for `visibility="always"`, below 48rem for `compact` - and is 0 otherwise.
421
+ *
422
+ * Three readers consume it, so no content and no toast ever sits under the bar:
423
+ * - the OUTERMOST page container (WorkspaceShell, PrimaryRailLayout or PageContainer) pads its
424
+ * block end by the offset, so the last content scrolls clear of the bar;
425
+ * - a page Footer takes that padding instead when the page has one (it is the last block);
426
+ * - a bottom-placed Toaster lifts above the bar.
427
+ */
428
+ .grammar-common-root {
429
+ --starci-core-bottom-nav-block-size: calc(4rem + 1px);
430
+ }
431
+
432
+ .grammar-common-root:has(.starci-core-bottom-nav[data-grammar-bottom-nav-position="fixed"]) {
433
+ --starci-core-bottom-nav-offset: 0px;
434
+ }
435
+
436
+ .grammar-common-root:has(.starci-core-bottom-nav[data-grammar-bottom-nav-position="fixed"][data-grammar-bottom-nav-visibility="always"]) {
437
+ --starci-core-bottom-nav-offset: calc(var(--starci-core-bottom-nav-block-size) + env(safe-area-inset-bottom, 0px));
438
+ }
439
+
440
+ @media (max-width: 47.99rem) {
441
+ .grammar-common-root:has(.starci-core-bottom-nav[data-grammar-bottom-nav-position="fixed"][data-grammar-bottom-nav-visibility="compact"]) {
442
+ --starci-core-bottom-nav-offset: calc(var(--starci-core-bottom-nav-block-size) + env(safe-area-inset-bottom, 0px));
443
+ }
444
+ }
445
+
446
+ .grammar-common-root:has(.starci-core-bottom-nav[data-grammar-bottom-nav-position="fixed"]):not(:has(.starci-core-footer)) :is(.starci-core-workspace-shell, .starci-core-primary-rail-layout, .starci-core-page-container):not(:is(.starci-core-workspace-shell, .starci-core-primary-rail-layout, .starci-core-page-container, .starci-core-navigation-feature-nav, .starci-core-top-bar, .starci-core-bottom-nav) *) {
447
+ padding-block-end: var(--starci-core-bottom-nav-offset);
448
+ }
449
+
450
+ .grammar-common-root:has(.starci-core-bottom-nav[data-grammar-bottom-nav-position="fixed"]) .starci-core-footer {
451
+ padding-block-end: calc(var(--grammar-section-gap, 1rem) + max(var(--starci-core-bottom-nav-offset), env(safe-area-inset-bottom, 0px)));
452
+ }
453
+
454
+ .grammar-common-root:has(.starci-core-bottom-nav[data-grammar-bottom-nav-position="fixed"]) .starci-core-toaster:is([data-placement="bottom-start"], [data-placement="bottom"], [data-placement="bottom-end"]) {
455
+ bottom: max(var(--grammar-page-inset, 1rem), env(safe-area-inset-bottom, 0px), calc(var(--starci-core-bottom-nav-offset) + var(--grammar-page-inset, 1rem)));
456
+ }
457
+
458
+ .starci-core-bottom-nav-list {
459
+ display: grid;
460
+ grid-template-columns: repeat(var(--starci-core-bottom-nav-count, 4), minmax(0, 1fr));
461
+ margin: 0;
462
+ padding: 0.25rem;
463
+ list-style: none;
464
+ }
465
+
466
+ .starci-core-bottom-nav-slot {
467
+ display: flex;
468
+ min-width: 0;
469
+ }
470
+
471
+ .starci-core-bottom-nav-item {
472
+ display: flex;
473
+ min-width: 0;
474
+ min-block-size: 3.5rem;
475
+ flex: 1 1 auto;
476
+ flex-direction: column;
477
+ align-items: center;
478
+ justify-content: center;
479
+ gap: 0.125rem;
480
+ padding: 0.25rem;
481
+ border: 0;
482
+ border-radius: var(--radius, 0.5rem);
483
+ background: transparent;
484
+ color: var(--muted, GrayText);
485
+ font: inherit;
486
+ font-size: 0.75rem;
487
+ font-weight: 500;
488
+ text-decoration: none;
489
+ cursor: pointer;
490
+ -webkit-tap-highlight-color: transparent;
491
+ }
492
+
493
+ .starci-core-bottom-nav-item:disabled {
494
+ cursor: default;
495
+ opacity: 0.5;
496
+ }
497
+
498
+ .starci-core-bottom-nav-item[data-grammar-current="true"] {
499
+ color: var(--accent, Highlight);
500
+ font-weight: 600;
501
+ }
502
+
503
+ .starci-core-bottom-nav-item:focus-visible {
504
+ outline: 2px solid var(--focus, var(--accent, Highlight));
505
+ outline-offset: -2px;
506
+ }
507
+
508
+ .starci-core-bottom-nav-icon {
509
+ position: relative;
510
+ display: inline-flex;
511
+ min-inline-size: 2.75rem;
512
+ min-block-size: 1.75rem;
513
+ align-items: center;
514
+ justify-content: center;
515
+ border-radius: 999px;
516
+ }
517
+
518
+ .starci-core-bottom-nav-item[data-grammar-current="true"] .starci-core-bottom-nav-icon {
519
+ background: var(--accent-soft, transparent);
520
+ }
521
+
522
+ .starci-core-bottom-nav-icon > svg {
523
+ width: 1.5rem;
524
+ height: 1.5rem;
525
+ }
526
+
527
+ .starci-core-bottom-nav-badge {
528
+ position: absolute;
529
+ top: -0.125rem;
530
+ inset-inline-end: 0.25rem;
531
+ min-inline-size: 1.125rem;
532
+ padding-inline: 0.25rem;
533
+ border-radius: 999px;
534
+ background: var(--danger, Mark);
535
+ color: var(--danger-foreground, MarkText);
536
+ font-size: 0.6875rem;
537
+ font-weight: 700;
538
+ line-height: 1.125rem;
539
+ text-align: center;
540
+ }
541
+
542
+ .starci-core-bottom-nav-label {
543
+ max-width: 100%;
544
+ overflow: hidden;
545
+ text-overflow: ellipsis;
546
+ white-space: nowrap;
547
+ }
548
+
549
+ @media (min-width: 48rem) {
550
+ .starci-core-bottom-nav[data-grammar-bottom-nav-visibility="compact"] {
551
+ display: none;
552
+ }
553
+ }
554
+
555
+ /* ---------- Footer ---------- */
556
+ .starci-core-footer {
557
+ display: flex;
558
+ min-width: 0;
559
+ flex-direction: column;
560
+ gap: var(--grammar-region-gap, 1.5rem);
561
+ padding-block: var(--grammar-region-gap, 1.5rem) calc(var(--grammar-section-gap, 1rem) + env(safe-area-inset-bottom, 0px));
562
+ padding-inline: var(--grammar-page-inset, 1rem);
563
+ border-block-start: 1px solid var(--separator, var(--border, CanvasText));
564
+ color: var(--foreground, CanvasText);
565
+ }
566
+
567
+ .starci-core-footer-main {
568
+ display: grid;
569
+ min-width: 0;
570
+ grid-template-columns: minmax(0, 1fr);
571
+ gap: var(--grammar-region-gap, 1.5rem);
572
+ }
573
+
574
+ @media (min-width: 48rem) {
575
+ .starci-core-footer-main {
576
+ grid-template-columns: minmax(12rem, 1fr) minmax(0, 3fr);
577
+ }
578
+ }
579
+
580
+ /* The brand column stacks whatever identity the app passes, like a directory group. */
581
+ .starci-core-footer-brand {
582
+ display: flex;
583
+ min-width: 0;
584
+ flex-direction: column;
585
+ gap: var(--grammar-inline-gap, 0.5rem);
586
+ }
587
+
588
+ .starci-core-footer-directory {
589
+ display: grid;
590
+ min-width: 0;
591
+ grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr));
592
+ gap: var(--grammar-section-gap, 1rem);
593
+ }
594
+
595
+ .starci-core-footer-group {
596
+ display: flex;
597
+ min-width: 0;
598
+ flex-direction: column;
599
+ gap: var(--grammar-inline-gap, 0.5rem);
600
+ }
601
+
602
+ .starci-core-footer-group-label {
603
+ margin: 0;
604
+ font-size: 0.875rem;
605
+ font-weight: 600;
606
+ }
607
+
608
+ .starci-core-footer-links {
609
+ display: flex;
610
+ flex-direction: column;
611
+ gap: 0.25rem;
612
+ margin: 0;
613
+ padding: 0;
614
+ list-style: none;
615
+ }
616
+
617
+ .starci-core-footer-links .starci-core-link {
618
+ display: inline-flex;
619
+ min-block-size: 2.75rem;
620
+ align-items: center;
621
+ color: var(--muted, GrayText);
622
+ text-decoration-line: none;
623
+ }
624
+
625
+ .starci-core-footer-links .starci-core-link:hover {
626
+ color: var(--foreground, CanvasText);
627
+ text-decoration-line: underline;
628
+ }
629
+
630
+ .starci-core-footer-links .starci-core-link[data-grammar-current="true"] {
631
+ color: var(--foreground, CanvasText);
632
+ }
633
+
634
+ .starci-core-footer-legal {
635
+ color: var(--muted, GrayText);
636
+ font-size: 0.8125rem;
637
+ }
638
+
639
+ /* ---------- Avatar / AvatarGroup ---------- */
640
+ .starci-core-avatar {
641
+ flex: 0 0 auto;
642
+ }
643
+
644
+ .starci-core-avatar[data-grammar-current="true"] {
645
+ box-shadow: 0 0 0 2px var(--background, Canvas), 0 0 0 4px var(--accent, Highlight);
646
+ }
647
+
648
+ .starci-core-avatar-group {
649
+ min-width: 0;
650
+ max-width: 100%;
651
+ flex-wrap: nowrap;
652
+ }
653
+
654
+ /* ---------- TagGroup ---------- */
655
+ .starci-core-tag-group {
656
+ min-width: 0;
657
+ max-width: 100%;
658
+ }
659
+
660
+ .starci-core-tag-list {
661
+ display: flex;
662
+ min-width: 0;
663
+ flex-wrap: wrap;
664
+ gap: var(--grammar-inline-gap, 0.5rem);
665
+ }
666
+
667
+ .starci-core-tag {
668
+ max-width: 100%;
669
+ min-block-size: 2rem;
670
+ }
671
+
672
+ .starci-core-tag-label {
673
+ display: inline-flex;
674
+ min-width: 0;
675
+ align-items: center;
676
+ gap: 0.25rem;
677
+ overflow: hidden;
678
+ text-overflow: ellipsis;
679
+ white-space: nowrap;
680
+ }
681
+
682
+ .starci-core-tag[data-selected="true"],
683
+ .starci-core-tag:has(> [data-grammar-selected="true"]) {
684
+ background: var(--accent-soft, Highlight);
685
+ color: var(--accent-soft-foreground, HighlightText);
686
+ }
687
+
688
+ .starci-core-tag[data-focus-visible="true"] {
689
+ outline: 2px solid var(--focus, var(--accent, Highlight));
690
+ outline-offset: 2px;
691
+ }
692
+
693
+ .starci-core-tag-remove {
694
+ min-inline-size: 1.5rem;
695
+ min-block-size: 1.5rem;
696
+ }
697
+
698
+ .starci-core-tag-empty {
699
+ color: var(--muted, GrayText);
700
+ }
701
+
702
+ /* ---------- DataTable ---------- */
703
+ .starci-core-data-table {
704
+ min-width: 0;
705
+ max-width: 100%;
706
+ }
707
+
708
+ .starci-core-data-table-scroll {
709
+ max-width: 100%;
710
+ overflow-x: auto;
711
+ overscroll-behavior-inline: contain;
712
+ }
713
+
714
+ .starci-core-data-table[data-grammar-table-bounded="true"] .starci-core-data-table-scroll {
715
+ max-block-size: var(--starci-core-data-table-max-block-size, 24rem);
716
+ overflow-y: auto;
717
+ }
718
+
719
+ .starci-core-data-table-content {
720
+ min-width: 100%;
721
+ width: max-content;
722
+ border-collapse: separate;
723
+ border-spacing: 0;
724
+ }
725
+
726
+ .starci-core-data-table[data-grammar-table-sticky="true"] .starci-core-data-table-header {
727
+ position: sticky;
728
+ z-index: 1;
729
+ top: 0;
730
+ background: var(--surface, Canvas);
731
+ }
732
+
733
+ .starci-core-data-table-column,
734
+ .starci-core-data-table-cell {
735
+ padding: 0.75rem;
736
+ text-align: start;
737
+ white-space: nowrap;
738
+ }
739
+
740
+ .starci-core-data-table-column[data-grammar-table-align="end"],
741
+ .starci-core-data-table-cell[data-grammar-table-align="end"] {
742
+ text-align: end;
743
+ font-variant-numeric: tabular-nums;
744
+ }
745
+
746
+ .starci-core-data-table-column[data-grammar-table-selection="true"],
747
+ .starci-core-data-table-cell[data-grammar-table-selection="true"] {
748
+ width: 2.75rem;
749
+ padding-inline-end: 0;
750
+ }
751
+
752
+ .starci-core-data-table-row[data-grammar-selected="true"] {
753
+ background: var(--accent-soft, Highlight);
754
+ color: var(--accent-soft-foreground, HighlightText);
755
+ }
756
+
757
+ .starci-core-data-table-row[data-focus-visible="true"],
758
+ .starci-core-data-table-column[data-focus-visible="true"],
759
+ .starci-core-data-table-cell[data-focus-visible="true"] {
760
+ outline: 2px solid var(--focus, var(--accent, Highlight));
761
+ outline-offset: -2px;
762
+ }
763
+
764
+ .starci-core-data-table-placeholder {
765
+ display: flex;
766
+ min-block-size: 8rem;
767
+ align-items: center;
768
+ justify-content: center;
769
+ padding: var(--grammar-section-gap, 1rem);
770
+ color: var(--muted, GrayText);
771
+ white-space: normal;
772
+ text-align: center;
773
+ }
774
+
775
+ /* ---------- DescriptionList ---------- */
776
+ .starci-core-description-list {
777
+ display: flex;
778
+ min-width: 0;
779
+ flex-direction: column;
780
+ margin: 0;
781
+ }
782
+
783
+ .starci-core-description-pair {
784
+ display: grid;
785
+ min-width: 0;
786
+ grid-template-columns: minmax(0, 1fr);
787
+ gap: 0.25rem;
788
+ padding-block: var(--grammar-inline-gap, 0.5rem);
789
+ }
790
+
791
+ .starci-core-description-list[data-grammar-description-divided="true"] .starci-core-description-pair + .starci-core-description-pair {
792
+ border-block-start: 1px solid var(--separator, var(--border, CanvasText));
793
+ }
794
+
795
+ .starci-core-description-term {
796
+ color: var(--muted, GrayText);
797
+ font-size: 0.875rem;
798
+ font-weight: 500;
799
+ }
800
+
801
+ .starci-core-description-value {
802
+ min-width: 0;
803
+ margin: 0;
804
+ overflow-wrap: anywhere;
805
+ }
806
+
807
+ @media (min-width: 30rem) {
808
+ .starci-core-description-list[data-grammar-description-layout="columns"] .starci-core-description-pair {
809
+ grid-template-columns: minmax(8rem, 1fr) minmax(0, 2fr);
810
+ align-items: baseline;
811
+ gap: var(--grammar-row-gap, 0.75rem);
812
+ }
813
+ }
814
+
815
+ /* ---------- ListBox ---------- */
816
+ .starci-core-list-box {
817
+ min-width: 0;
818
+ }
819
+
820
+ .starci-core-list-box-item {
821
+ min-block-size: 2.75rem;
822
+ }
823
+
824
+ .starci-core-list-box-row {
825
+ display: flex;
826
+ min-width: 0;
827
+ flex: 1 1 auto;
828
+ align-items: center;
829
+ gap: var(--grammar-row-gap, 0.75rem);
830
+ }
831
+
832
+ .starci-core-list-box-item[data-selected="true"],
833
+ .starci-core-list-box-item:has(> [data-grammar-selected="true"]) {
834
+ background: var(--accent-soft, Highlight);
835
+ color: var(--accent-soft-foreground, HighlightText);
836
+ }
837
+
838
+ .starci-core-list-box-copy {
839
+ display: flex;
840
+ min-width: 0;
841
+ flex: 1 1 auto;
842
+ flex-direction: column;
843
+ }
844
+
845
+ .starci-core-list-box-label {
846
+ overflow: hidden;
847
+ text-overflow: ellipsis;
848
+ white-space: nowrap;
849
+ }
850
+
851
+ .starci-core-list-box-description {
852
+ color: var(--muted, GrayText);
853
+ font-size: 0.8125rem;
854
+ }
855
+
856
+ .starci-core-list-box-leading,
857
+ .starci-core-list-box-trailing,
858
+ .starci-core-list-box-indicator {
859
+ flex: 0 0 auto;
860
+ }
861
+
862
+ .starci-core-list-box-empty {
863
+ padding: var(--grammar-section-gap, 1rem);
864
+ color: var(--muted, GrayText);
865
+ }
866
+
867
+ /* ---------- Disclosure / Accordion (generic) ---------- */
868
+ .starci-core-disclosure,
869
+ .starci-core-generic-accordion {
870
+ min-width: 0;
871
+ }
872
+
873
+ .starci-core-disclosure-heading,
874
+ .starci-core-generic-accordion-heading {
875
+ margin: 0;
876
+ font: inherit;
877
+ }
878
+
879
+ .starci-core-disclosure-trigger,
880
+ .starci-core-generic-accordion-trigger {
881
+ display: flex;
882
+ width: 100%;
883
+ min-block-size: 2.75rem;
884
+ align-items: center;
885
+ justify-content: space-between;
886
+ gap: var(--grammar-row-gap, 0.75rem);
887
+ text-align: start;
888
+ font-weight: 600;
889
+ }
890
+
891
+ .starci-core-disclosure-trigger[data-focus-visible="true"],
892
+ .starci-core-generic-accordion-trigger[data-focus-visible="true"] {
893
+ outline: 2px solid var(--focus, var(--accent, Highlight));
894
+ outline-offset: 2px;
895
+ }
896
+
897
+ .starci-core-disclosure-title,
898
+ .starci-core-generic-accordion-title {
899
+ min-width: 0;
900
+ overflow-wrap: anywhere;
901
+ }
902
+
903
+ .starci-core-disclosure-indicator,
904
+ .starci-core-generic-accordion-indicator {
905
+ flex: 0 0 auto;
906
+ transition: transform var(--starci-core-motion-duration, 180ms) ease;
907
+ }
908
+
909
+ .starci-core-disclosure[data-grammar-disclosure-state="open"] .starci-core-disclosure-indicator,
910
+ .starci-core-generic-accordion-item[data-grammar-disclosure-state="open"] .starci-core-generic-accordion-indicator {
911
+ transform: rotate(180deg);
912
+ }
913
+
914
+ /* ---------- Image ---------- */
915
+ .starci-core-image {
916
+ position: relative;
917
+ display: block;
918
+ min-width: 0;
919
+ max-width: 100%;
920
+ overflow: hidden;
921
+ border-radius: var(--radius, 0.5rem);
922
+ background: var(--surface-secondary, transparent);
923
+ }
924
+
925
+ .starci-core-image[data-grammar-image-aspect="square"] { aspect-ratio: 1 / 1; }
926
+ .starci-core-image[data-grammar-image-aspect="landscape"] { aspect-ratio: 4 / 3; }
927
+ .starci-core-image[data-grammar-image-aspect="portrait"] { aspect-ratio: 3 / 4; }
928
+ .starci-core-image[data-grammar-image-aspect="wide"] { aspect-ratio: 16 / 9; }
929
+
930
+ .starci-core-image-element {
931
+ display: block;
932
+ width: 100%;
933
+ max-width: 100%;
934
+ height: auto;
935
+ }
936
+
937
+ .starci-core-image:not([data-grammar-image-aspect="auto"]) .starci-core-image-element {
938
+ height: 100%;
939
+ }
940
+
941
+ .starci-core-image[data-grammar-image-fit="cover"] .starci-core-image-element { object-fit: cover; }
942
+ .starci-core-image[data-grammar-image-fit="contain"] .starci-core-image-element { object-fit: contain; }
943
+
944
+ .starci-core-image[data-grammar-image-state="loading"] .starci-core-image-element {
945
+ opacity: 0;
946
+ }
947
+
948
+ .starci-core-image[data-grammar-image-state="loaded"] .starci-core-image-element {
949
+ opacity: 1;
950
+ transition: opacity var(--starci-core-motion-duration, 180ms) ease;
951
+ }
952
+
953
+ .starci-core-image-fallback {
954
+ display: flex;
955
+ width: 100%;
956
+ height: 100%;
957
+ min-block-size: 3rem;
958
+ align-items: center;
959
+ justify-content: center;
960
+ color: var(--muted, GrayText);
961
+ }
962
+
963
+ /* ---------- Rating ---------- */
964
+ .starci-core-rating {
965
+ display: inline-flex;
966
+ align-items: center;
967
+ gap: 0.125rem;
968
+ }
969
+
970
+ .starci-core-rating-item {
971
+ position: relative;
972
+ display: inline-flex;
973
+ align-items: center;
974
+ justify-content: center;
975
+ color: var(--border, GrayText);
976
+ }
977
+
978
+ .starci-core-rating[data-grammar-rating-mode="interactive"] .starci-core-rating-item {
979
+ min-inline-size: 2.75rem;
980
+ min-block-size: 2.75rem;
981
+ cursor: pointer;
982
+ }
983
+
984
+ .starci-core-rating[data-grammar-disabled="true"] .starci-core-rating-item {
985
+ cursor: default;
986
+ opacity: 0.5;
987
+ }
988
+
989
+ .starci-core-rating-input {
990
+ position: absolute;
991
+ inset: 0;
992
+ width: 100%;
993
+ height: 100%;
994
+ margin: 0;
995
+ opacity: 0;
996
+ cursor: inherit;
997
+ }
998
+
999
+ .starci-core-rating-item:has(.starci-core-rating-input:focus-visible) {
1000
+ outline: 2px solid var(--focus, var(--accent, Highlight));
1001
+ outline-offset: -2px;
1002
+ border-radius: var(--radius, 0.5rem);
1003
+ }
1004
+
1005
+ .starci-core-rating-glyph,
1006
+ .starci-core-rating-item > svg {
1007
+ width: 1.25rem;
1008
+ height: 1.25rem;
1009
+ fill: none;
1010
+ stroke: currentColor;
1011
+ stroke-width: 1.5;
1012
+ }
1013
+
1014
+ .starci-core-rating-item[data-grammar-rating-fill="full"],
1015
+ .starci-core-rating-item[data-grammar-rating-fill="half"] {
1016
+ color: var(--warning, var(--accent, Highlight));
1017
+ }
1018
+
1019
+ .starci-core-rating-item[data-grammar-rating-fill="full"] .starci-core-rating-glyph {
1020
+ fill: currentColor;
1021
+ }
1022
+
1023
+ .starci-core-rating-item[data-grammar-rating-fill="half"] .starci-core-rating-glyph {
1024
+ fill: currentColor;
1025
+ clip-path: inset(0 50% 0 0);
1026
+ }
1027
+
1028
+ /* ---------- Timeline ---------- */
1029
+ .starci-core-timeline {
1030
+ display: flex;
1031
+ min-width: 0;
1032
+ flex-direction: column;
1033
+ margin: 0;
1034
+ padding: 0;
1035
+ list-style: none;
1036
+ }
1037
+
1038
+ .starci-core-timeline-item {
1039
+ position: relative;
1040
+ display: grid;
1041
+ min-width: 0;
1042
+ grid-template-columns: 1.5rem minmax(0, 1fr);
1043
+ gap: var(--grammar-row-gap, 0.75rem);
1044
+ padding-block-end: var(--grammar-section-gap, 1rem);
1045
+ }
1046
+
1047
+ .starci-core-timeline-item:not(:last-child)::before {
1048
+ position: absolute;
1049
+ top: 1.5rem;
1050
+ bottom: 0;
1051
+ inset-inline-start: calc(0.75rem - 1px);
1052
+ width: 2px;
1053
+ background: var(--separator, var(--border, GrayText));
1054
+ content: "";
1055
+ }
1056
+
1057
+ .starci-core-timeline-marker {
1058
+ display: inline-flex;
1059
+ width: 1.5rem;
1060
+ height: 1.5rem;
1061
+ align-items: center;
1062
+ justify-content: center;
1063
+ border-radius: 999px;
1064
+ background: var(--surface, Canvas);
1065
+ color: var(--muted, GrayText);
1066
+ }
1067
+
1068
+ .starci-core-timeline-marker:empty::after {
1069
+ width: 0.625rem;
1070
+ height: 0.625rem;
1071
+ border: 2px solid currentColor;
1072
+ border-radius: 999px;
1073
+ content: "";
1074
+ }
1075
+
1076
+ .starci-core-timeline-item[data-grammar-timeline-state="affirmative"] .starci-core-timeline-marker { color: var(--success, CanvasText); }
1077
+ .starci-core-timeline-item[data-grammar-timeline-state="informative"] .starci-core-timeline-marker { color: var(--info, CanvasText); }
1078
+ .starci-core-timeline-item[data-grammar-timeline-state="cautionary"] .starci-core-timeline-marker { color: var(--warning, CanvasText); }
1079
+ .starci-core-timeline-item[data-grammar-timeline-state="negative"] .starci-core-timeline-marker { color: var(--danger, CanvasText); }
1080
+
1081
+ .starci-core-timeline-item[data-grammar-current="true"] .starci-core-timeline-marker {
1082
+ color: var(--accent, Highlight);
1083
+ }
1084
+
1085
+ .starci-core-timeline-item[data-grammar-current="true"] .starci-core-timeline-marker:empty::after {
1086
+ background: currentColor;
1087
+ }
1088
+
1089
+ .starci-core-timeline-copy {
1090
+ display: flex;
1091
+ min-width: 0;
1092
+ flex-direction: column;
1093
+ gap: 0.125rem;
1094
+ }
1095
+
1096
+ .starci-core-timeline-title {
1097
+ margin: 0;
1098
+ overflow-wrap: anywhere;
1099
+ font-weight: 600;
1100
+ }
1101
+
1102
+ .starci-core-timeline-time,
1103
+ .starci-core-timeline-description {
1104
+ color: var(--muted, GrayText);
1105
+ font-size: 0.8125rem;
1106
+ }
1107
+
1108
+ /* ---------- Calendar ---------- */
1109
+ .starci-core-calendar {
1110
+ max-width: 100%;
1111
+ min-width: 0;
1112
+ }
1113
+
1114
+ .starci-core-calendar-header {
1115
+ display: flex;
1116
+ align-items: center;
1117
+ justify-content: space-between;
1118
+ gap: var(--grammar-inline-gap, 0.5rem);
1119
+ }
1120
+
1121
+ .starci-core-calendar-nav {
1122
+ min-inline-size: 2.75rem;
1123
+ min-block-size: 2.75rem;
1124
+ }
1125
+
1126
+ .starci-core-calendar-month {
1127
+ width: 100%;
1128
+ table-layout: fixed;
1129
+ }
1130
+
1131
+ .starci-core-calendar-day[data-selected="true"] {
1132
+ background: var(--accent, Highlight);
1133
+ color: var(--accent-foreground, HighlightText);
1134
+ }
1135
+
1136
+ .starci-core-calendar-day[data-unavailable="true"] {
1137
+ color: var(--muted, GrayText);
1138
+ text-decoration-line: line-through;
1139
+ }
1140
+
1141
+ /* ---------- Shared accessibility fallbacks ---------- */
1142
+ @media (prefers-reduced-motion: reduce) {
1143
+ .starci-core-disclosure-indicator,
1144
+ .starci-core-generic-accordion-indicator,
1145
+ .starci-core-image-element {
1146
+ transition: none !important;
1147
+ }
1148
+ }
1149
+
1150
+ @media (forced-colors: active) {
1151
+ .starci-core-link[data-grammar-current="true"],
1152
+ .starci-core-pagination-page[data-grammar-current="true"],
1153
+ .starci-core-bottom-nav-item[data-grammar-current="true"],
1154
+ .starci-core-step[data-grammar-current="true"] .starci-core-step-marker,
1155
+ .starci-core-data-table-row[data-grammar-selected="true"],
1156
+ .starci-core-list-box-item:has(> [data-grammar-selected="true"]),
1157
+ .starci-core-tag:has(> [data-grammar-selected="true"]) {
1158
+ outline: 2px solid Highlight;
1159
+ outline-offset: -2px;
1160
+ forced-color-adjust: none;
1161
+ }
1162
+ }
1163
+ }