@misoto22/design 0.7.0 → 0.9.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 (398) hide show
  1. package/AGENTS.md +87 -0
  2. package/CLAUDE.md +1 -0
  3. package/README.md +50 -5
  4. package/bin/misoto22-design.mjs +59 -13
  5. package/dist/agent/Accordion.md +24 -1
  6. package/dist/agent/Alert.md +23 -1
  7. package/dist/agent/AppShell.md +30 -2
  8. package/dist/agent/ArchitectureFigure.md +25 -2
  9. package/dist/agent/AreaChart.md +27 -2
  10. package/dist/agent/Article.md +26 -3
  11. package/dist/agent/AspectRatio.md +57 -0
  12. package/dist/agent/Avatar.md +25 -5
  13. package/dist/agent/Badge.md +22 -1
  14. package/dist/agent/BarChart.md +29 -2
  15. package/dist/agent/BarList.md +27 -1
  16. package/dist/agent/BigNumber.md +26 -2
  17. package/dist/agent/BoxPlot.md +24 -1
  18. package/dist/agent/Breadcrumb.md +24 -2
  19. package/dist/agent/BulletChart.md +23 -1
  20. package/dist/agent/Button.md +25 -1
  21. package/dist/agent/Calendar.md +37 -3
  22. package/dist/agent/Card.md +24 -2
  23. package/dist/agent/Checkbox.md +23 -2
  24. package/dist/agent/Code.md +50 -0
  25. package/dist/agent/CodeBlock.md +74 -0
  26. package/dist/agent/Collapsible.md +22 -1
  27. package/dist/agent/ColorPicker.md +75 -0
  28. package/dist/agent/Combobox.md +29 -3
  29. package/dist/agent/Command.md +25 -2
  30. package/dist/agent/ComposedChart.md +26 -2
  31. package/dist/agent/ContextMenu.md +37 -4
  32. package/dist/agent/DataflowFigure.md +22 -1
  33. package/dist/agent/DatePicker.md +34 -6
  34. package/dist/agent/DescriptionList.md +68 -0
  35. package/dist/agent/Diagram.md +27 -3
  36. package/dist/agent/DiagramCanvas.md +24 -1
  37. package/dist/agent/DiagramExportMenu.md +29 -3
  38. package/dist/agent/DiagramInspector.md +23 -1
  39. package/dist/agent/DiagramLegend.md +22 -1
  40. package/dist/agent/DiagramMinimap.md +24 -4
  41. package/dist/agent/DiagramToolbar.md +23 -1
  42. package/dist/agent/Dialog.md +26 -3
  43. package/dist/agent/DropdownMenu.md +45 -6
  44. package/dist/agent/EmptyState.md +26 -1
  45. package/dist/agent/ErrorState.md +27 -2
  46. package/dist/agent/Facet.md +25 -1
  47. package/dist/agent/Field.md +45 -4
  48. package/dist/agent/FigureBand.md +24 -1
  49. package/dist/agent/FloatingIconButton.md +23 -1
  50. package/dist/agent/FunnelChart.md +23 -1
  51. package/dist/agent/Heading.md +64 -0
  52. package/dist/agent/Heatmap.md +25 -1
  53. package/dist/agent/Histogram.md +26 -2
  54. package/dist/agent/Input.md +22 -1
  55. package/dist/agent/Kbd.md +19 -1
  56. package/dist/agent/LifecycleFigure.md +22 -1
  57. package/dist/agent/LineChart.md +26 -2
  58. package/dist/agent/LinkArrow.md +20 -1
  59. package/dist/agent/Markdown.md +68 -0
  60. package/dist/agent/NativeSelect.md +23 -2
  61. package/dist/agent/NavItem.md +21 -1
  62. package/dist/agent/NumberField.md +72 -0
  63. package/dist/agent/Pagination.md +28 -2
  64. package/dist/agent/PieChart.md +26 -2
  65. package/dist/agent/Popover.md +23 -1
  66. package/dist/agent/Progress.md +27 -3
  67. package/dist/agent/RadarChart.md +26 -2
  68. package/dist/agent/RadialChart.md +26 -3
  69. package/dist/agent/RadioGroup.md +23 -2
  70. package/dist/agent/SankeyChart.md +25 -2
  71. package/dist/agent/ScatterChart.md +27 -2
  72. package/dist/agent/ScrollArea.md +24 -3
  73. package/dist/agent/SearchableMenu.md +23 -1
  74. package/dist/agent/Select.md +29 -3
  75. package/dist/agent/Separator.md +28 -4
  76. package/dist/agent/SequenceFigure.md +23 -1
  77. package/dist/agent/Sheet.md +25 -2
  78. package/dist/agent/Sidebar.md +193 -0
  79. package/dist/agent/Skeleton.md +24 -2
  80. package/dist/agent/Slider.md +31 -4
  81. package/dist/agent/Sparkline.md +23 -1
  82. package/dist/agent/Spinner.md +24 -2
  83. package/dist/agent/StatusDot.md +20 -1
  84. package/dist/agent/StatusPill.md +28 -2
  85. package/dist/agent/Steps.md +24 -1
  86. package/dist/agent/Switch.md +21 -1
  87. package/dist/agent/Table.md +28 -3
  88. package/dist/agent/Tabs.md +24 -2
  89. package/dist/agent/Tag.md +40 -9
  90. package/dist/agent/Text.md +65 -0
  91. package/dist/agent/Textarea.md +20 -1
  92. package/dist/agent/Timestamp.md +64 -0
  93. package/dist/agent/Toast.md +26 -2
  94. package/dist/agent/ToggleGroup.md +24 -2
  95. package/dist/agent/Toolbar.md +71 -0
  96. package/dist/agent/Tooltip.md +23 -1
  97. package/dist/agent/TreemapChart.md +24 -1
  98. package/dist/agent/WaterfallChart.md +24 -1
  99. package/dist/agent/WorkflowFigure.md +24 -2
  100. package/dist/agent/catalog.json +5915 -699
  101. package/dist/agent/index.md +20 -8
  102. package/dist/article.css +16 -4
  103. package/dist/charts/AreaChart/AreaChart.d.ts +9 -2
  104. package/dist/charts/AreaChart/AreaChart.js +12 -13
  105. package/dist/charts/AreaChart/AreaChart.js.map +1 -1
  106. package/dist/charts/BarChart/BarChart.d.ts +14 -3
  107. package/dist/charts/BarChart/BarChart.js +20 -12
  108. package/dist/charts/BarChart/BarChart.js.map +1 -1
  109. package/dist/charts/BarList/BarList.d.ts +9 -1
  110. package/dist/charts/BarList/BarList.js +9 -1
  111. package/dist/charts/BarList/BarList.js.map +1 -1
  112. package/dist/charts/BigNumber/BigNumber.d.ts +19 -3
  113. package/dist/charts/BigNumber/BigNumber.js +25 -5
  114. package/dist/charts/BigNumber/BigNumber.js.map +1 -1
  115. package/dist/charts/BoxPlot/BoxPlot.js +4 -2
  116. package/dist/charts/BoxPlot/BoxPlot.js.map +1 -1
  117. package/dist/charts/BulletChart/BulletChart.js +44 -9
  118. package/dist/charts/BulletChart/BulletChart.js.map +1 -1
  119. package/dist/charts/ComposedChart/ComposedChart.d.ts +9 -2
  120. package/dist/charts/ComposedChart/ComposedChart.js +10 -10
  121. package/dist/charts/ComposedChart/ComposedChart.js.map +1 -1
  122. package/dist/charts/FunnelChart/FunnelChart.d.ts +7 -2
  123. package/dist/charts/FunnelChart/FunnelChart.js +6 -16
  124. package/dist/charts/FunnelChart/FunnelChart.js.map +1 -1
  125. package/dist/charts/Heatmap/Heatmap.d.ts +17 -3
  126. package/dist/charts/Heatmap/Heatmap.js +20 -11
  127. package/dist/charts/Heatmap/Heatmap.js.map +1 -1
  128. package/dist/charts/Histogram/Histogram.d.ts +24 -1
  129. package/dist/charts/Histogram/Histogram.js +43 -11
  130. package/dist/charts/Histogram/Histogram.js.map +1 -1
  131. package/dist/charts/LineChart/LineChart.d.ts +9 -2
  132. package/dist/charts/LineChart/LineChart.js +11 -12
  133. package/dist/charts/LineChart/LineChart.js.map +1 -1
  134. package/dist/charts/PieChart/PieChart.d.ts +15 -3
  135. package/dist/charts/PieChart/PieChart.js +14 -6
  136. package/dist/charts/PieChart/PieChart.js.map +1 -1
  137. package/dist/charts/RadarChart/RadarChart.d.ts +15 -3
  138. package/dist/charts/RadarChart/RadarChart.js +15 -11
  139. package/dist/charts/RadarChart/RadarChart.js.map +1 -1
  140. package/dist/charts/RadialChart/RadialChart.d.ts +22 -4
  141. package/dist/charts/RadialChart/RadialChart.js +28 -6
  142. package/dist/charts/RadialChart/RadialChart.js.map +1 -1
  143. package/dist/charts/SankeyChart/SankeyChart.d.ts +16 -4
  144. package/dist/charts/SankeyChart/SankeyChart.js +14 -6
  145. package/dist/charts/SankeyChart/SankeyChart.js.map +1 -1
  146. package/dist/charts/ScatterChart/ScatterChart.d.ts +24 -3
  147. package/dist/charts/ScatterChart/ScatterChart.js +21 -15
  148. package/dist/charts/ScatterChart/ScatterChart.js.map +1 -1
  149. package/dist/charts/Sparkline/Sparkline.js +5 -3
  150. package/dist/charts/Sparkline/Sparkline.js.map +1 -1
  151. package/dist/charts/TreemapChart/TreemapChart.d.ts +7 -2
  152. package/dist/charts/TreemapChart/TreemapChart.js +20 -11
  153. package/dist/charts/TreemapChart/TreemapChart.js.map +1 -1
  154. package/dist/charts/WaterfallChart/WaterfallChart.js +4 -2
  155. package/dist/charts/WaterfallChart/WaterfallChart.js.map +1 -1
  156. package/dist/charts/lib/export.d.ts +1 -0
  157. package/dist/charts/lib/figure.d.ts +21 -1
  158. package/dist/charts/lib/figure.js +5 -2
  159. package/dist/charts/lib/figure.js.map +1 -1
  160. package/dist/charts/lib/scale.d.ts +23 -0
  161. package/dist/charts/lib/scale.js +13 -0
  162. package/dist/charts/lib/scale.js.map +1 -0
  163. package/dist/charts/lib/selection.d.ts +20 -0
  164. package/dist/charts/lib/selection.js +18 -0
  165. package/dist/charts/lib/selection.js.map +1 -0
  166. package/dist/charts/lib/toolbar.d.ts +1 -0
  167. package/dist/components/Accordion/Accordion.js +8 -1
  168. package/dist/components/Accordion/Accordion.js.map +1 -1
  169. package/dist/components/AppShell/AppShell.d.ts +6 -0
  170. package/dist/components/AppShell/AppShell.js +34 -4
  171. package/dist/components/AppShell/AppShell.js.map +1 -1
  172. package/dist/components/Article/Article.d.ts +11 -4
  173. package/dist/components/Article/Article.js +13 -0
  174. package/dist/components/Article/Article.js.map +1 -1
  175. package/dist/components/AspectRatio/AspectRatio.d.ts +46 -0
  176. package/dist/components/AspectRatio/AspectRatio.js +33 -0
  177. package/dist/components/AspectRatio/AspectRatio.js.map +1 -0
  178. package/dist/components/Avatar/Avatar.d.ts +12 -3
  179. package/dist/components/Avatar/Avatar.js +6 -1
  180. package/dist/components/Avatar/Avatar.js.map +1 -1
  181. package/dist/components/Breadcrumb/Breadcrumb.d.ts +6 -0
  182. package/dist/components/Breadcrumb/Breadcrumb.js +15 -0
  183. package/dist/components/Breadcrumb/Breadcrumb.js.map +1 -1
  184. package/dist/components/Button/Button.js +14 -0
  185. package/dist/components/Button/Button.js.map +1 -1
  186. package/dist/components/Calendar/Calendar.d.ts +29 -3
  187. package/dist/components/Calendar/Calendar.js +60 -12
  188. package/dist/components/Calendar/Calendar.js.map +1 -1
  189. package/dist/components/Card/Card.d.ts +6 -0
  190. package/dist/components/Card/Card.js +1 -1
  191. package/dist/components/Card/Card.js.map +1 -1
  192. package/dist/components/Checkbox/Checkbox.d.ts +5 -2
  193. package/dist/components/Checkbox/Checkbox.js +12 -2
  194. package/dist/components/Checkbox/Checkbox.js.map +1 -1
  195. package/dist/components/Code/Code.d.ts +30 -0
  196. package/dist/components/Code/Code.js +21 -0
  197. package/dist/components/Code/Code.js.map +1 -0
  198. package/dist/components/CodeBlock/CodeBlock.d.ts +141 -0
  199. package/dist/components/CodeBlock/CodeBlock.js +123 -0
  200. package/dist/components/CodeBlock/CodeBlock.js.map +1 -0
  201. package/dist/components/Collapsible/Collapsible.js +10 -2
  202. package/dist/components/Collapsible/Collapsible.js.map +1 -1
  203. package/dist/components/ColorPicker/ColorPicker.d.ts +67 -0
  204. package/dist/components/ColorPicker/ColorPicker.js +334 -0
  205. package/dist/components/ColorPicker/ColorPicker.js.map +1 -0
  206. package/dist/components/Combobox/Combobox.d.ts +15 -1
  207. package/dist/components/Combobox/Combobox.js +25 -5
  208. package/dist/components/Combobox/Combobox.js.map +1 -1
  209. package/dist/components/Command/Command.d.ts +4 -2
  210. package/dist/components/Command/Command.js +14 -2
  211. package/dist/components/Command/Command.js.map +1 -1
  212. package/dist/components/ContextMenu/ContextMenu.d.ts +30 -5
  213. package/dist/components/ContextMenu/ContextMenu.js +33 -3
  214. package/dist/components/ContextMenu/ContextMenu.js.map +1 -1
  215. package/dist/components/DatePicker/DatePicker.d.ts +36 -4
  216. package/dist/components/DatePicker/DatePicker.js +55 -12
  217. package/dist/components/DatePicker/DatePicker.js.map +1 -1
  218. package/dist/components/DescriptionList/DescriptionList.d.ts +73 -0
  219. package/dist/components/DescriptionList/DescriptionList.js +35 -0
  220. package/dist/components/DescriptionList/DescriptionList.js.map +1 -0
  221. package/dist/components/Diagram/Diagram.d.ts +8 -3
  222. package/dist/components/Diagram/Diagram.js +82 -10
  223. package/dist/components/Diagram/Diagram.js.map +1 -1
  224. package/dist/components/Dialog/Dialog.d.ts +18 -3
  225. package/dist/components/Dialog/Dialog.js +21 -3
  226. package/dist/components/Dialog/Dialog.js.map +1 -1
  227. package/dist/components/DropdownMenu/DropdownMenu.d.ts +49 -11
  228. package/dist/components/DropdownMenu/DropdownMenu.js +33 -3
  229. package/dist/components/DropdownMenu/DropdownMenu.js.map +1 -1
  230. package/dist/components/EmptyState/EmptyState.d.ts +25 -1
  231. package/dist/components/EmptyState/EmptyState.js +3 -1
  232. package/dist/components/EmptyState/EmptyState.js.map +1 -1
  233. package/dist/components/ErrorState/ErrorState.d.ts +22 -1
  234. package/dist/components/ErrorState/ErrorState.js +12 -3
  235. package/dist/components/ErrorState/ErrorState.js.map +1 -1
  236. package/dist/components/Field/Field.d.ts +70 -3
  237. package/dist/components/Field/Field.js +53 -12
  238. package/dist/components/Field/Field.js.map +1 -1
  239. package/dist/components/Field/field-control.d.ts +31 -0
  240. package/dist/components/Field/field-control.js +12 -0
  241. package/dist/components/Field/field-control.js.map +1 -0
  242. package/dist/components/FloatingIconButton/FloatingIconButton.js +2 -0
  243. package/dist/components/FloatingIconButton/FloatingIconButton.js.map +1 -1
  244. package/dist/components/Heading/Heading.d.ts +62 -0
  245. package/dist/components/Heading/Heading.js +44 -0
  246. package/dist/components/Heading/Heading.js.map +1 -0
  247. package/dist/components/Markdown/Markdown.d.ts +139 -0
  248. package/dist/components/Markdown/Markdown.js +135 -0
  249. package/dist/components/Markdown/Markdown.js.map +1 -0
  250. package/dist/components/Markdown/inline.d.ts +29 -0
  251. package/dist/components/Markdown/inline.js +74 -0
  252. package/dist/components/Markdown/inline.js.map +1 -0
  253. package/dist/components/Markdown/nodes.d.ts +65 -0
  254. package/dist/components/Markdown/nodes.js +1 -0
  255. package/dist/components/Markdown/nodes.js.map +1 -0
  256. package/dist/components/Markdown/parse.d.ts +24 -0
  257. package/dist/components/Markdown/parse.js +110 -0
  258. package/dist/components/Markdown/parse.js.map +1 -0
  259. package/dist/components/Markdown/slug.d.ts +15 -0
  260. package/dist/components/Markdown/slug.js +7 -0
  261. package/dist/components/Markdown/slug.js.map +1 -0
  262. package/dist/components/NativeSelect/NativeSelect.d.ts +6 -0
  263. package/dist/components/NativeSelect/NativeSelect.js +2 -3
  264. package/dist/components/NativeSelect/NativeSelect.js.map +1 -1
  265. package/dist/components/NavItem/NavItem.js +1 -1
  266. package/dist/components/NavItem/NavItem.js.map +1 -1
  267. package/dist/components/NumberField/NumberField.d.ts +69 -0
  268. package/dist/components/NumberField/NumberField.js +162 -0
  269. package/dist/components/NumberField/NumberField.js.map +1 -0
  270. package/dist/components/Pagination/Pagination.d.ts +24 -1
  271. package/dist/components/Pagination/Pagination.js +6 -3
  272. package/dist/components/Pagination/Pagination.js.map +1 -1
  273. package/dist/components/Popover/Popover.js +1 -1
  274. package/dist/components/Popover/Popover.js.map +1 -1
  275. package/dist/components/Progress/Progress.d.ts +17 -5
  276. package/dist/components/Progress/Progress.js +18 -6
  277. package/dist/components/Progress/Progress.js.map +1 -1
  278. package/dist/components/RadioGroup/RadioGroup.d.ts +6 -0
  279. package/dist/components/RadioGroup/RadioGroup.js +11 -1
  280. package/dist/components/RadioGroup/RadioGroup.js.map +1 -1
  281. package/dist/components/ScrollArea/ScrollArea.d.ts +15 -0
  282. package/dist/components/ScrollArea/ScrollArea.js +2 -2
  283. package/dist/components/ScrollArea/ScrollArea.js.map +1 -1
  284. package/dist/components/SearchableMenu/SearchableMenu.d.ts +11 -2
  285. package/dist/components/SearchableMenu/SearchableMenu.js +24 -2
  286. package/dist/components/SearchableMenu/SearchableMenu.js.map +1 -1
  287. package/dist/components/Select/Select.d.ts +18 -2
  288. package/dist/components/Select/Select.js +21 -4
  289. package/dist/components/Select/Select.js.map +1 -1
  290. package/dist/components/Separator/Separator.d.ts +21 -3
  291. package/dist/components/Separator/Separator.js +9 -1
  292. package/dist/components/Separator/Separator.js.map +1 -1
  293. package/dist/components/Sheet/Sheet.d.ts +3 -0
  294. package/dist/components/Sheet/Sheet.js +12 -3
  295. package/dist/components/Sheet/Sheet.js.map +1 -1
  296. package/dist/components/Sidebar/Sidebar.d.ts +349 -0
  297. package/dist/components/Sidebar/Sidebar.js +455 -0
  298. package/dist/components/Sidebar/Sidebar.js.map +1 -0
  299. package/dist/components/Skeleton/Skeleton.d.ts +8 -1
  300. package/dist/components/Skeleton/Skeleton.js +1 -1
  301. package/dist/components/Skeleton/Skeleton.js.map +1 -1
  302. package/dist/components/Slider/Slider.d.ts +42 -3
  303. package/dist/components/Slider/Slider.js +121 -30
  304. package/dist/components/Slider/Slider.js.map +1 -1
  305. package/dist/components/Spinner/Spinner.d.ts +8 -0
  306. package/dist/components/Spinner/Spinner.js +3 -2
  307. package/dist/components/Spinner/Spinner.js.map +1 -1
  308. package/dist/components/StatusPill/StatusPill.d.ts +5 -0
  309. package/dist/components/StatusPill/StatusPill.js +6 -0
  310. package/dist/components/StatusPill/StatusPill.js.map +1 -1
  311. package/dist/components/Table/Table.d.ts +20 -0
  312. package/dist/components/Table/Table.js +3 -1
  313. package/dist/components/Table/Table.js.map +1 -1
  314. package/dist/components/Tabs/Tabs.js +7 -1
  315. package/dist/components/Tabs/Tabs.js.map +1 -1
  316. package/dist/components/Tag/Tag.d.ts +68 -9
  317. package/dist/components/Tag/Tag.js +50 -10
  318. package/dist/components/Tag/Tag.js.map +1 -1
  319. package/dist/components/Text/Text.d.ts +62 -0
  320. package/dist/components/Text/Text.js +30 -0
  321. package/dist/components/Text/Text.js.map +1 -0
  322. package/dist/components/Timestamp/Timestamp.d.ts +59 -0
  323. package/dist/components/Timestamp/Timestamp.js +56 -0
  324. package/dist/components/Timestamp/Timestamp.js.map +1 -0
  325. package/dist/components/Toast/Toast.d.ts +9 -1
  326. package/dist/components/Toast/Toast.js +27 -4
  327. package/dist/components/Toast/Toast.js.map +1 -1
  328. package/dist/components/ToggleGroup/ToggleGroup.d.ts +6 -1
  329. package/dist/components/ToggleGroup/ToggleGroup.js +11 -1
  330. package/dist/components/ToggleGroup/ToggleGroup.js.map +1 -1
  331. package/dist/components/Toolbar/Toolbar.d.ts +55 -0
  332. package/dist/components/Toolbar/Toolbar.js +43 -0
  333. package/dist/components/Toolbar/Toolbar.js.map +1 -0
  334. package/dist/diagrams/ArchitectureFigure/ArchitectureFigure.d.ts +6 -0
  335. package/dist/diagrams/ArchitectureFigure/ArchitectureFigure.js +48 -8
  336. package/dist/diagrams/ArchitectureFigure/ArchitectureFigure.js.map +1 -1
  337. package/dist/diagrams/DataflowFigure/DataflowFigure.js +21 -2
  338. package/dist/diagrams/DataflowFigure/DataflowFigure.js.map +1 -1
  339. package/dist/diagrams/DiagramCanvas/DiagramCanvas.d.ts +14 -0
  340. package/dist/diagrams/DiagramCanvas/DiagramCanvas.js +14 -7
  341. package/dist/diagrams/DiagramCanvas/DiagramCanvas.js.map +1 -1
  342. package/dist/diagrams/DiagramExportMenu/DiagramExportMenu.d.ts +38 -4
  343. package/dist/diagrams/DiagramExportMenu/DiagramExportMenu.js +14 -16
  344. package/dist/diagrams/DiagramExportMenu/DiagramExportMenu.js.map +1 -1
  345. package/dist/diagrams/DiagramInspector/DiagramInspector.js +2 -2
  346. package/dist/diagrams/DiagramInspector/DiagramInspector.js.map +1 -1
  347. package/dist/diagrams/DiagramMinimap/DiagramMinimap.d.ts +23 -7
  348. package/dist/diagrams/DiagramMinimap/DiagramMinimap.js +45 -18
  349. package/dist/diagrams/DiagramMinimap/DiagramMinimap.js.map +1 -1
  350. package/dist/diagrams/LifecycleFigure/LifecycleFigure.js +44 -12
  351. package/dist/diagrams/LifecycleFigure/LifecycleFigure.js.map +1 -1
  352. package/dist/diagrams/SequenceFigure/SequenceFigure.js +35 -5
  353. package/dist/diagrams/SequenceFigure/SequenceFigure.js.map +1 -1
  354. package/dist/diagrams/WorkflowFigure/WorkflowFigure.d.ts +3 -1
  355. package/dist/diagrams/WorkflowFigure/WorkflowFigure.js +76 -28
  356. package/dist/diagrams/WorkflowFigure/WorkflowFigure.js.map +1 -1
  357. package/dist/diagrams/index.d.ts +1 -0
  358. package/dist/diagrams/index.js +10 -0
  359. package/dist/diagrams/index.js.map +1 -1
  360. package/dist/diagrams/lib/dev.d.ts +61 -0
  361. package/dist/diagrams/lib/dev.js +96 -0
  362. package/dist/diagrams/lib/dev.js.map +1 -0
  363. package/dist/diagrams/lib/frame.d.ts +48 -7
  364. package/dist/diagrams/lib/frame.js +17 -2
  365. package/dist/diagrams/lib/frame.js.map +1 -1
  366. package/dist/diagrams/lib/route.d.ts +22 -1
  367. package/dist/diagrams/lib/route.js +24 -1
  368. package/dist/diagrams/lib/route.js.map +1 -1
  369. package/dist/diagrams/lib/wires.js +9 -5
  370. package/dist/diagrams/lib/wires.js.map +1 -1
  371. package/dist/diagrams/spec.d.ts +64 -12
  372. package/dist/index.d.ts +19 -4
  373. package/dist/index.js +12 -0
  374. package/dist/index.js.map +1 -1
  375. package/dist/keyframes.css +57 -3
  376. package/dist/lib/color.d.ts +80 -0
  377. package/dist/lib/color.js +189 -0
  378. package/dist/lib/color.js.map +1 -0
  379. package/dist/lib/numeric.d.ts +35 -0
  380. package/dist/lib/numeric.js +29 -0
  381. package/dist/lib/numeric.js.map +1 -0
  382. package/dist/lib/overlay-container.d.ts +14 -4
  383. package/dist/lib/overlay-container.js.map +1 -1
  384. package/dist/lib/warn.d.ts +73 -0
  385. package/dist/lib/warn.js +38 -0
  386. package/dist/lib/warn.js.map +1 -0
  387. package/dist/semantic.css +17 -6
  388. package/dist/styles.css +1 -1
  389. package/dist/themes.css +8 -0
  390. package/dist/tokens.css +86 -5
  391. package/dist/tokens.d.ts +4 -1
  392. package/dist/tokens.js +56 -36
  393. package/dist/tokens.json +56 -36
  394. package/llms.txt +35 -0
  395. package/package.json +5 -2
  396. package/skills/misoto22-design/evals/evals.json +84 -0
  397. package/skills/misoto22-design/rules/a11y.md +55 -3
  398. package/skills/misoto22-design/rules/forms.md +8 -1
package/dist/tokens.js CHANGED
@@ -297,37 +297,37 @@ export const TOKENS = {
297
297
  "fs-title": {
298
298
  "layer": "tokens",
299
299
  "category": "type",
300
- "light": "clamp(2.5rem, calc(4.6 * var(--fluid)), 3.375rem)"
300
+ "light": "clamp(2.5rem, calc(4.6 * var(--fluid)), 3.375rem)",
301
+ "comment": "page h1 40 → 54px"
301
302
  },
302
303
  "fs-lead": {
303
304
  "layer": "tokens",
304
305
  "category": "type",
305
306
  "light": "clamp(1.875rem, calc(3 * var(--fluid)), 2.625rem)",
306
- "comment": "page h1 4054px"
307
+ "comment": "band heading 3042px"
307
308
  },
308
309
  "fs-heading": {
309
310
  "layer": "tokens",
310
311
  "category": "type",
311
312
  "light": "clamp(1.5rem, calc(2.1 * var(--fluid)), 1.8125rem)",
312
- "comment": "band heading 3042px"
313
+ "comment": "record title 2429px"
313
314
  },
314
315
  "fs-sub": {
315
316
  "layer": "tokens",
316
317
  "category": "type",
317
318
  "light": "clamp(1.3125rem, calc(1.7 * var(--fluid)), 1.5625rem)",
318
- "comment": "record title 2429px"
319
+ "comment": "card sub-head 2125px"
319
320
  },
320
321
  "fs-item": {
321
322
  "layer": "tokens",
322
323
  "category": "type",
323
324
  "light": "clamp(1.125rem, calc(1.35 * var(--fluid)), 1.25rem)",
324
- "comment": "card sub-head 2125px"
325
+ "comment": "in-card title 1820px"
325
326
  },
326
327
  "pad": {
327
328
  "layer": "tokens",
328
329
  "category": "space",
329
- "light": "clamp(18px, calc(4.4 * var(--fluid)), 64px)",
330
- "comment": "in-card title 18 → 20px"
330
+ "light": "clamp(18px, calc(4.4 * var(--fluid)), 64px)"
331
331
  },
332
332
  "sec": {
333
333
  "layer": "tokens",
@@ -354,111 +354,114 @@ export const TOKENS = {
354
354
  "layer": "tokens",
355
355
  "category": "radius",
356
356
  "light": "calc(4px * var(--radius-factor))",
357
- "comment": "The numbers are the ones the rest of the industry settled on, and that is the argument for them: 8px for a control, 12px for a panel, and 4/6 for the small marks inside one. Tailwind's own scale, shadcn's `--radius` ± 2 and ± 4, Radix Themes' steps 3 and 4, and Material's `xs`/`sm`/`md` all agree within a pixel of this. The previous 2/4/6/10 was a step tighter than any of them, which is what made a card read as a rectangle with the corners shaved rather than as a rounded panel."
357
+ "comment": "a mark inside a tight box"
358
358
  },
359
359
  "radius-sm": {
360
360
  "layer": "tokens",
361
361
  "category": "radius",
362
362
  "light": "calc(6px * var(--radius-factor))",
363
- "comment": "a mark inside a tight box"
363
+ "comment": "chips, keys, list rows"
364
364
  },
365
365
  "radius": {
366
366
  "layer": "tokens",
367
367
  "category": "radius",
368
368
  "light": "calc(8px * var(--radius-factor))",
369
- "comment": "chips, keys, list rows"
369
+ "comment": "inputs, code, small plates"
370
370
  },
371
371
  "radius-lg": {
372
372
  "layer": "tokens",
373
373
  "category": "radius",
374
374
  "light": "calc(12px * var(--radius-factor))",
375
- "comment": "inputs, code, small plates"
375
+ "comment": "cards, dialogs, menu panels"
376
376
  },
377
377
  "radius-pill": {
378
378
  "layer": "tokens",
379
379
  "category": "radius",
380
380
  "light": "calc(999px * var(--radius-factor))",
381
- "comment": "cards, dialogs, menu panels"
381
+ "comment": "capsules and counters"
382
382
  },
383
383
  "radius-row": {
384
384
  "layer": "tokens",
385
385
  "category": "radius",
386
386
  "light": "max(0px, calc(var(--radius-lg) - 0.375rem))",
387
- "comment": "The nesting law, applied to the two insets this system actually uses."
387
+ "comment": "a row in a 6px-padded panel"
388
388
  },
389
389
  "radius-frame": {
390
390
  "layer": "tokens",
391
391
  "category": "radius",
392
392
  "light": "calc(var(--radius-lg) + 1rem * var(--radius-gate))",
393
- "comment": "a row in a 6px-padded panel"
393
+ "comment": "a frame 16px outside a panel"
394
394
  },
395
395
  "control-h-sm": {
396
396
  "layer": "tokens",
397
397
  "category": "density",
398
- "light": "1.875rem"
398
+ "light": "2.25rem",
399
+ "comment": "36px"
399
400
  },
400
401
  "control-h-md": {
401
402
  "layer": "tokens",
402
403
  "category": "density",
403
- "light": "2.25rem",
404
- "comment": "30px"
404
+ "light": "2.75rem",
405
+ "comment": "44px — WCAG 2.5.5"
405
406
  },
406
407
  "control-h-lg": {
407
408
  "layer": "tokens",
408
409
  "category": "density",
409
- "light": "2.5rem",
410
- "comment": "36px — clears WCAG 2.5.8, not 2.5.5"
410
+ "light": "3rem",
411
+ "comment": "48px"
411
412
  },
412
413
  "control-px-sm": {
413
414
  "layer": "tokens",
414
415
  "category": "density",
415
- "light": "0.75rem",
416
- "comment": "40px"
416
+ "light": "1rem"
417
417
  },
418
418
  "control-px-md": {
419
419
  "layer": "tokens",
420
420
  "category": "density",
421
- "light": "1rem"
421
+ "light": "1.5rem"
422
422
  },
423
423
  "control-px-lg": {
424
424
  "layer": "tokens",
425
425
  "category": "density",
426
- "light": "1.25rem"
426
+ "light": "1.75rem"
427
427
  },
428
428
  "control-py-sm": {
429
429
  "layer": "tokens",
430
430
  "category": "density",
431
- "light": "0.25rem"
431
+ "light": "0.5rem",
432
+ "comment": "The vertical padding is part of the axis too, and has to be: a control whose padding alone exceeds the compact height never shrinks, because `min-height` is a floor and not a ceiling."
432
433
  },
433
434
  "control-py-md": {
434
435
  "layer": "tokens",
435
436
  "category": "density",
436
- "light": "0.375rem"
437
+ "light": "0.75rem"
437
438
  },
438
439
  "control-py-lg": {
439
440
  "layer": "tokens",
440
441
  "category": "density",
441
- "light": "0.5rem"
442
+ "light": "0.75rem"
442
443
  },
443
444
  "control-gap": {
444
445
  "layer": "tokens",
445
446
  "category": "density",
446
- "light": "0.5rem"
447
+ "light": "0.625rem"
447
448
  },
448
449
  "field-px": {
449
450
  "layer": "tokens",
450
451
  "category": "density",
451
- "light": "0.625rem"
452
+ "light": "0.875rem",
453
+ "comment": "Text inputs are measured separately: they are read as much as they are hit, so their padding tracks the type rather than the target."
452
454
  },
453
455
  "field-py": {
454
456
  "layer": "tokens",
455
457
  "category": "density",
456
- "light": "0.375rem"
458
+ "light": "0.625rem"
457
459
  },
458
460
  "table-pad-y": {
459
461
  "layer": "tokens",
460
462
  "category": "other",
461
- "light": "0.5rem"
463
+ "light": "0.875rem",
464
+ "comment": "A table's own row padding. Separate from the control scale because a table row is neither a control nor a field — it is a line of text with a rule under it, and it tightens on its own axis."
462
465
  },
463
466
  "table-pad-x": {
464
467
  "layer": "tokens",
@@ -466,6 +469,17 @@ export const TOKENS = {
466
469
  "light": "0px",
467
470
  "comment": "`0px`, not `0`. The cell rule adds to this inside a calc, and a unitless zero makes `calc(0 + 1.5rem)` invalid at computed-value time — the whole declaration is dropped and every column loses its gutter in silence."
468
471
  },
472
+ "sidebar-w": {
473
+ "layer": "tokens",
474
+ "category": "other",
475
+ "light": "16rem",
476
+ "comment": "─── Sidebar ──────────────────────────────────────────────────────────── The two widths a navigation rail has, and the reason they are tokens rather than numbers inside the component: an application shell has to reserve exactly this much beside its content, and a shell that hard-codes 17rem while the rail believes something else is a gap or an overlap that appears only at one window size. Both sides read the same name. `--sidebar-w-icon` is what is left when the rail collapses to icons. It is `--control-h-md` plus the rail's own padding, so a 44px pointer target still fits inside it at comfortable density — a collapsed rail whose rows are too small to hit is a rail nobody can use in the state it spends most of its life in."
477
+ },
478
+ "sidebar-w-icon": {
479
+ "layer": "tokens",
480
+ "category": "other",
481
+ "light": "3.5rem"
482
+ },
469
483
  "panel-bg": {
470
484
  "layer": "tokens",
471
485
  "category": "other",
@@ -482,6 +496,12 @@ export const TOKENS = {
482
496
  "category": "other",
483
497
  "light": "none"
484
498
  },
499
+ "panel-lift": {
500
+ "layer": "tokens",
501
+ "category": "other",
502
+ "light": "0 2px 0 0 var(--rule-2), 0 5px 0 -1px var(--rule)",
503
+ "comment": "The offset under a floating panel, and it does not break Law 2: the law says a box-shadow is never BLURRED, not that there is never one. This is the same hard-offset idiom as `--lift`, in the rule colour rather than the accent — every menu in the system wearing a clay drop shadow would be a louder claim than \"this sits above the page\". Two steps, because one reads as a second border: a firm edge just below the panel and a softer one below that is a stack seen from the front, which is the flattest way to say depth without drawing light."
504
+ },
485
505
  "ease": {
486
506
  "layer": "tokens",
487
507
  "category": "motion",
@@ -507,7 +527,7 @@ export const TOKENS = {
507
527
  "layer": "tokens",
508
528
  "category": "layer",
509
529
  "light": "1",
510
- "comment": "─── Stacking ─── seven ranks, named for what sits at each."
530
+ "comment": "─── Stacking ─── seven ranks, named for what sits at each. Every overlay in the package portals to document.body, so all of them are siblings in the ROOT stacking context and the rank is the whole of the decision — there is no ancestor left to nest one inside another. Read it as a sentence: a sticky header clears the page, a drawer clears the header, a scrim covers both, a modal sits on its scrim, an ANCHORED panel clears the modal it was opened from, and a toast clears everything because it is the only rank that has to survive a modal asking a question. --z-anchored is the one that is not obvious, and it is the one that was wrong. A popover, a menu or a select listbox is opened FROM something, and the surface it is most often opened from is a modal — a select inside a modal form is one of the most ordinary shapes in an application. Ranked below the modal, as it was, the panel is painted behind the very dialog that summoned it. The rank it replaced, --z-palette, was read by nothing: a command palette is a Dialog, so it lands at --z-modal, and its order against a second modal is settled by document order — which is the right answer, because it moves a scrim and its panel together."
511
531
  },
512
532
  "z-sticky": {
513
533
  "layer": "tokens",
@@ -529,7 +549,7 @@ export const TOKENS = {
529
549
  "category": "layer",
530
550
  "light": "210"
531
551
  },
532
- "z-palette": {
552
+ "z-anchored": {
533
553
  "layer": "tokens",
534
554
  "category": "layer",
535
555
  "light": "220"
@@ -800,7 +820,7 @@ export const TOKENS = {
800
820
  "layer": "semantic",
801
821
  "category": "depth",
802
822
  "light": "transparent",
803
- "comment": "─── Depth ──────────────────────────────────────────────────────────── Law 2 — a box-shadow is never blurred. The system has no elevation ramp; depth is a hard offset in ink, applied per component. These three resolve to nothing on purpose, so a component ported from a shadowed system stays flat instead of drawing a blur the White Reset does not have. Reach for --lift instead, which is the offset idiom expressed once."
823
+ "comment": "─── Depth ──────────────────────────────────────────────────────────── Law 2 — a box-shadow is never blurred. The system has no elevation ramp; depth is a hard offset in ink, applied per component. These three resolve to nothing on purpose, so a component ported from a shadowed system stays flat instead of drawing a blur the White Reset does not have. --lift below is the sanctioned offset idiom for anything that must read as raised."
804
824
  },
805
825
  "shadow-sm": {
806
826
  "layer": "semantic",
@@ -821,7 +841,7 @@ export const TOKENS = {
821
841
  "layer": "semantic",
822
842
  "category": "depth",
823
843
  "light": "3px 3px 0 0 var(--shadow-offset)",
824
- "comment": "The one depth cue the system does have: a hard 3px ink offset, no blur. Used by a plate that must read as sitting above the page."
844
+ "comment": "The one depth cue the system does have: a hard 3px ink offset, no blur, in the accent rather than a grey because --shadow-offset points at --clay. PUBLISHED, NOT CONSUMED. No component in this package sets either one — there is not a single shadow-(--lift) in src/. What the library actually separates with is a hairline, a change of ground, and the reversal that Card variant=\"plate\" reaches for. These two exist so a consumer building a raised plate of their own has the system's answer instead of inventing a blur; do not read them as describing what the library does."
825
845
  },
826
846
  "lift-sm": {
827
847
  "layer": "semantic",
@@ -872,8 +892,8 @@ export const TOKENS = {
872
892
  "z-dropdown": {
873
893
  "layer": "semantic",
874
894
  "category": "layer",
875
- "light": "var(--z-drawer)",
876
- "comment": "─── Stacking ─── five component-facing names onto the seven ranks. ─────"
895
+ "light": "var(--z-anchored)",
896
+ "comment": "─── Stacking ─── two component-facing names onto the seven ranks. ────── The other five ranks are read by their own names; only these two had a component-facing spelling that outlived the rank it pointed at. --z-dropdown pointed at --z-drawer, 100, which put every anchored panel under the modal at 210 that opened it."
877
897
  },
878
898
  "z-overlay": {
879
899
  "layer": "semantic",
package/dist/tokens.json CHANGED
@@ -296,37 +296,37 @@
296
296
  "fs-title": {
297
297
  "layer": "tokens",
298
298
  "category": "type",
299
- "light": "clamp(2.5rem, calc(4.6 * var(--fluid)), 3.375rem)"
299
+ "light": "clamp(2.5rem, calc(4.6 * var(--fluid)), 3.375rem)",
300
+ "comment": "page h1 40 → 54px"
300
301
  },
301
302
  "fs-lead": {
302
303
  "layer": "tokens",
303
304
  "category": "type",
304
305
  "light": "clamp(1.875rem, calc(3 * var(--fluid)), 2.625rem)",
305
- "comment": "page h1 4054px"
306
+ "comment": "band heading 3042px"
306
307
  },
307
308
  "fs-heading": {
308
309
  "layer": "tokens",
309
310
  "category": "type",
310
311
  "light": "clamp(1.5rem, calc(2.1 * var(--fluid)), 1.8125rem)",
311
- "comment": "band heading 3042px"
312
+ "comment": "record title 2429px"
312
313
  },
313
314
  "fs-sub": {
314
315
  "layer": "tokens",
315
316
  "category": "type",
316
317
  "light": "clamp(1.3125rem, calc(1.7 * var(--fluid)), 1.5625rem)",
317
- "comment": "record title 2429px"
318
+ "comment": "card sub-head 2125px"
318
319
  },
319
320
  "fs-item": {
320
321
  "layer": "tokens",
321
322
  "category": "type",
322
323
  "light": "clamp(1.125rem, calc(1.35 * var(--fluid)), 1.25rem)",
323
- "comment": "card sub-head 2125px"
324
+ "comment": "in-card title 1820px"
324
325
  },
325
326
  "pad": {
326
327
  "layer": "tokens",
327
328
  "category": "space",
328
- "light": "clamp(18px, calc(4.4 * var(--fluid)), 64px)",
329
- "comment": "in-card title 18 → 20px"
329
+ "light": "clamp(18px, calc(4.4 * var(--fluid)), 64px)"
330
330
  },
331
331
  "sec": {
332
332
  "layer": "tokens",
@@ -353,111 +353,114 @@
353
353
  "layer": "tokens",
354
354
  "category": "radius",
355
355
  "light": "calc(4px * var(--radius-factor))",
356
- "comment": "The numbers are the ones the rest of the industry settled on, and that is the argument for them: 8px for a control, 12px for a panel, and 4/6 for the small marks inside one. Tailwind's own scale, shadcn's `--radius` ± 2 and ± 4, Radix Themes' steps 3 and 4, and Material's `xs`/`sm`/`md` all agree within a pixel of this. The previous 2/4/6/10 was a step tighter than any of them, which is what made a card read as a rectangle with the corners shaved rather than as a rounded panel."
356
+ "comment": "a mark inside a tight box"
357
357
  },
358
358
  "radius-sm": {
359
359
  "layer": "tokens",
360
360
  "category": "radius",
361
361
  "light": "calc(6px * var(--radius-factor))",
362
- "comment": "a mark inside a tight box"
362
+ "comment": "chips, keys, list rows"
363
363
  },
364
364
  "radius": {
365
365
  "layer": "tokens",
366
366
  "category": "radius",
367
367
  "light": "calc(8px * var(--radius-factor))",
368
- "comment": "chips, keys, list rows"
368
+ "comment": "inputs, code, small plates"
369
369
  },
370
370
  "radius-lg": {
371
371
  "layer": "tokens",
372
372
  "category": "radius",
373
373
  "light": "calc(12px * var(--radius-factor))",
374
- "comment": "inputs, code, small plates"
374
+ "comment": "cards, dialogs, menu panels"
375
375
  },
376
376
  "radius-pill": {
377
377
  "layer": "tokens",
378
378
  "category": "radius",
379
379
  "light": "calc(999px * var(--radius-factor))",
380
- "comment": "cards, dialogs, menu panels"
380
+ "comment": "capsules and counters"
381
381
  },
382
382
  "radius-row": {
383
383
  "layer": "tokens",
384
384
  "category": "radius",
385
385
  "light": "max(0px, calc(var(--radius-lg) - 0.375rem))",
386
- "comment": "The nesting law, applied to the two insets this system actually uses."
386
+ "comment": "a row in a 6px-padded panel"
387
387
  },
388
388
  "radius-frame": {
389
389
  "layer": "tokens",
390
390
  "category": "radius",
391
391
  "light": "calc(var(--radius-lg) + 1rem * var(--radius-gate))",
392
- "comment": "a row in a 6px-padded panel"
392
+ "comment": "a frame 16px outside a panel"
393
393
  },
394
394
  "control-h-sm": {
395
395
  "layer": "tokens",
396
396
  "category": "density",
397
- "light": "1.875rem"
397
+ "light": "2.25rem",
398
+ "comment": "36px"
398
399
  },
399
400
  "control-h-md": {
400
401
  "layer": "tokens",
401
402
  "category": "density",
402
- "light": "2.25rem",
403
- "comment": "30px"
403
+ "light": "2.75rem",
404
+ "comment": "44px — WCAG 2.5.5"
404
405
  },
405
406
  "control-h-lg": {
406
407
  "layer": "tokens",
407
408
  "category": "density",
408
- "light": "2.5rem",
409
- "comment": "36px — clears WCAG 2.5.8, not 2.5.5"
409
+ "light": "3rem",
410
+ "comment": "48px"
410
411
  },
411
412
  "control-px-sm": {
412
413
  "layer": "tokens",
413
414
  "category": "density",
414
- "light": "0.75rem",
415
- "comment": "40px"
415
+ "light": "1rem"
416
416
  },
417
417
  "control-px-md": {
418
418
  "layer": "tokens",
419
419
  "category": "density",
420
- "light": "1rem"
420
+ "light": "1.5rem"
421
421
  },
422
422
  "control-px-lg": {
423
423
  "layer": "tokens",
424
424
  "category": "density",
425
- "light": "1.25rem"
425
+ "light": "1.75rem"
426
426
  },
427
427
  "control-py-sm": {
428
428
  "layer": "tokens",
429
429
  "category": "density",
430
- "light": "0.25rem"
430
+ "light": "0.5rem",
431
+ "comment": "The vertical padding is part of the axis too, and has to be: a control whose padding alone exceeds the compact height never shrinks, because `min-height` is a floor and not a ceiling."
431
432
  },
432
433
  "control-py-md": {
433
434
  "layer": "tokens",
434
435
  "category": "density",
435
- "light": "0.375rem"
436
+ "light": "0.75rem"
436
437
  },
437
438
  "control-py-lg": {
438
439
  "layer": "tokens",
439
440
  "category": "density",
440
- "light": "0.5rem"
441
+ "light": "0.75rem"
441
442
  },
442
443
  "control-gap": {
443
444
  "layer": "tokens",
444
445
  "category": "density",
445
- "light": "0.5rem"
446
+ "light": "0.625rem"
446
447
  },
447
448
  "field-px": {
448
449
  "layer": "tokens",
449
450
  "category": "density",
450
- "light": "0.625rem"
451
+ "light": "0.875rem",
452
+ "comment": "Text inputs are measured separately: they are read as much as they are hit, so their padding tracks the type rather than the target."
451
453
  },
452
454
  "field-py": {
453
455
  "layer": "tokens",
454
456
  "category": "density",
455
- "light": "0.375rem"
457
+ "light": "0.625rem"
456
458
  },
457
459
  "table-pad-y": {
458
460
  "layer": "tokens",
459
461
  "category": "other",
460
- "light": "0.5rem"
462
+ "light": "0.875rem",
463
+ "comment": "A table's own row padding. Separate from the control scale because a table row is neither a control nor a field — it is a line of text with a rule under it, and it tightens on its own axis."
461
464
  },
462
465
  "table-pad-x": {
463
466
  "layer": "tokens",
@@ -465,6 +468,17 @@
465
468
  "light": "0px",
466
469
  "comment": "`0px`, not `0`. The cell rule adds to this inside a calc, and a unitless zero makes `calc(0 + 1.5rem)` invalid at computed-value time — the whole declaration is dropped and every column loses its gutter in silence."
467
470
  },
471
+ "sidebar-w": {
472
+ "layer": "tokens",
473
+ "category": "other",
474
+ "light": "16rem",
475
+ "comment": "─── Sidebar ──────────────────────────────────────────────────────────── The two widths a navigation rail has, and the reason they are tokens rather than numbers inside the component: an application shell has to reserve exactly this much beside its content, and a shell that hard-codes 17rem while the rail believes something else is a gap or an overlap that appears only at one window size. Both sides read the same name. `--sidebar-w-icon` is what is left when the rail collapses to icons. It is `--control-h-md` plus the rail's own padding, so a 44px pointer target still fits inside it at comfortable density — a collapsed rail whose rows are too small to hit is a rail nobody can use in the state it spends most of its life in."
476
+ },
477
+ "sidebar-w-icon": {
478
+ "layer": "tokens",
479
+ "category": "other",
480
+ "light": "3.5rem"
481
+ },
468
482
  "panel-bg": {
469
483
  "layer": "tokens",
470
484
  "category": "other",
@@ -481,6 +495,12 @@
481
495
  "category": "other",
482
496
  "light": "none"
483
497
  },
498
+ "panel-lift": {
499
+ "layer": "tokens",
500
+ "category": "other",
501
+ "light": "0 2px 0 0 var(--rule-2), 0 5px 0 -1px var(--rule)",
502
+ "comment": "The offset under a floating panel, and it does not break Law 2: the law says a box-shadow is never BLURRED, not that there is never one. This is the same hard-offset idiom as `--lift`, in the rule colour rather than the accent — every menu in the system wearing a clay drop shadow would be a louder claim than \"this sits above the page\". Two steps, because one reads as a second border: a firm edge just below the panel and a softer one below that is a stack seen from the front, which is the flattest way to say depth without drawing light."
503
+ },
484
504
  "ease": {
485
505
  "layer": "tokens",
486
506
  "category": "motion",
@@ -506,7 +526,7 @@
506
526
  "layer": "tokens",
507
527
  "category": "layer",
508
528
  "light": "1",
509
- "comment": "─── Stacking ─── seven ranks, named for what sits at each."
529
+ "comment": "─── Stacking ─── seven ranks, named for what sits at each. Every overlay in the package portals to document.body, so all of them are siblings in the ROOT stacking context and the rank is the whole of the decision — there is no ancestor left to nest one inside another. Read it as a sentence: a sticky header clears the page, a drawer clears the header, a scrim covers both, a modal sits on its scrim, an ANCHORED panel clears the modal it was opened from, and a toast clears everything because it is the only rank that has to survive a modal asking a question. --z-anchored is the one that is not obvious, and it is the one that was wrong. A popover, a menu or a select listbox is opened FROM something, and the surface it is most often opened from is a modal — a select inside a modal form is one of the most ordinary shapes in an application. Ranked below the modal, as it was, the panel is painted behind the very dialog that summoned it. The rank it replaced, --z-palette, was read by nothing: a command palette is a Dialog, so it lands at --z-modal, and its order against a second modal is settled by document order — which is the right answer, because it moves a scrim and its panel together."
510
530
  },
511
531
  "z-sticky": {
512
532
  "layer": "tokens",
@@ -528,7 +548,7 @@
528
548
  "category": "layer",
529
549
  "light": "210"
530
550
  },
531
- "z-palette": {
551
+ "z-anchored": {
532
552
  "layer": "tokens",
533
553
  "category": "layer",
534
554
  "light": "220"
@@ -799,7 +819,7 @@
799
819
  "layer": "semantic",
800
820
  "category": "depth",
801
821
  "light": "transparent",
802
- "comment": "─── Depth ──────────────────────────────────────────────────────────── Law 2 — a box-shadow is never blurred. The system has no elevation ramp; depth is a hard offset in ink, applied per component. These three resolve to nothing on purpose, so a component ported from a shadowed system stays flat instead of drawing a blur the White Reset does not have. Reach for --lift instead, which is the offset idiom expressed once."
822
+ "comment": "─── Depth ──────────────────────────────────────────────────────────── Law 2 — a box-shadow is never blurred. The system has no elevation ramp; depth is a hard offset in ink, applied per component. These three resolve to nothing on purpose, so a component ported from a shadowed system stays flat instead of drawing a blur the White Reset does not have. --lift below is the sanctioned offset idiom for anything that must read as raised."
803
823
  },
804
824
  "shadow-sm": {
805
825
  "layer": "semantic",
@@ -820,7 +840,7 @@
820
840
  "layer": "semantic",
821
841
  "category": "depth",
822
842
  "light": "3px 3px 0 0 var(--shadow-offset)",
823
- "comment": "The one depth cue the system does have: a hard 3px ink offset, no blur. Used by a plate that must read as sitting above the page."
843
+ "comment": "The one depth cue the system does have: a hard 3px ink offset, no blur, in the accent rather than a grey because --shadow-offset points at --clay. PUBLISHED, NOT CONSUMED. No component in this package sets either one — there is not a single shadow-(--lift) in src/. What the library actually separates with is a hairline, a change of ground, and the reversal that Card variant=\"plate\" reaches for. These two exist so a consumer building a raised plate of their own has the system's answer instead of inventing a blur; do not read them as describing what the library does."
824
844
  },
825
845
  "lift-sm": {
826
846
  "layer": "semantic",
@@ -871,8 +891,8 @@
871
891
  "z-dropdown": {
872
892
  "layer": "semantic",
873
893
  "category": "layer",
874
- "light": "var(--z-drawer)",
875
- "comment": "─── Stacking ─── five component-facing names onto the seven ranks. ─────"
894
+ "light": "var(--z-anchored)",
895
+ "comment": "─── Stacking ─── two component-facing names onto the seven ranks. ────── The other five ranks are read by their own names; only these two had a component-facing spelling that outlived the rank it pointed at. --z-dropdown pointed at --z-drawer, 100, which put every anchored panel under the modal at 210 that opened it."
876
896
  },
877
897
  "z-overlay": {
878
898
  "layer": "semantic",
package/llms.txt ADDED
@@ -0,0 +1,35 @@
1
+ # @misoto22/design
2
+
3
+ > A monochrome design system for software, writing and photography: portable CSS
4
+ > tokens and accessible React 19 primitives, charts and diagrams. Components ship
5
+ > compiled — import them, do not copy them.
6
+
7
+ This file is a stub on purpose. It carries no prop tables and no version, so it
8
+ cannot go stale between releases; everything it points at is generated from the
9
+ source in this same tarball at build time.
10
+
11
+ ## In this package, offline
12
+
13
+ - [dist/agent/index.md](./dist/agent/index.md): every component, one line each, plus the theme axes read out of the stylesheets.
14
+ - [dist/agent/<Component>.md](./dist/agent/): one component in full — every prop with its type and default, the exported unions, the keyboard contract, the accessibility promises, the examples.
15
+ - [skills/misoto22-design/SKILL.md](./skills/misoto22-design/SKILL.md): the conventions an agent gets wrong from habit — the names that diverge from shadcn/ui, and colour that is never a raw class.
16
+ - [AGENTS.md](./AGENTS.md): the short version of this, plus what to know when working on the package itself.
17
+
18
+ Prefer the CLI over reading these by path — it resolves parts and types, not
19
+ just components:
20
+
21
+ ```bash
22
+ npx misoto22-design docs Button
23
+ npx misoto22-design docs --installed
24
+ ```
25
+
26
+ ## On the web
27
+
28
+ - [https://ui.misoto22.com/llms.txt](https://ui.misoto22.com/llms.txt): the site's index.
29
+ - [https://ui.misoto22.com/llms-full.txt](https://ui.misoto22.com/llms-full.txt): every component inline, in one file.
30
+ - [https://ui.misoto22.com](https://ui.misoto22.com): the rendered documentation.
31
+
32
+ ## Optional
33
+
34
+ - [README.md](./README.md): install, theming, and the same three commands for a human reader.
35
+ - [CHANGELOG.md](./CHANGELOG.md)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@misoto22/design",
3
- "version": "0.7.0",
3
+ "version": "0.9.0",
4
4
  "private": false,
5
5
  "description": "Monochrome design system — CSS tokens and accessible React primitives",
6
6
  "license": "MIT",
@@ -13,6 +13,9 @@
13
13
  "dist",
14
14
  "skills",
15
15
  "bin",
16
+ "AGENTS.md",
17
+ "CLAUDE.md",
18
+ "llms.txt",
16
19
  "LICENSE",
17
20
  "README.md"
18
21
  ],
@@ -143,7 +146,7 @@
143
146
  },
144
147
  "scripts": {
145
148
  "build:fonts": "node scripts/vendor-fonts.mjs",
146
- "build:js": "NODE_OPTIONS=--max-old-space-size=6144 tsup",
149
+ "build:js": "NODE_OPTIONS=--max-old-space-size=8192 tsup",
147
150
  "build:css": "tailwindcss -i ./src/styles/index.css -o ./dist/styles.css --minify && node scripts/copy-portable-css.mjs && node scripts/emit-tokens.mjs",
148
151
  "build:agent": "node scripts/emit-agent.mjs",
149
152
  "build": "pnpm run build:fonts && pnpm run build:js && pnpm run build:css && pnpm run build:agent",