@lostgradient/cinder 0.1.1 → 0.2.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 (551) hide show
  1. package/CHANGELOG.md +62 -0
  2. package/README.md +163 -0
  3. package/components.json +390 -3
  4. package/dist/_internal/chart/chart-focus-ring.d.ts +57 -0
  5. package/dist/_internal/chart/chart-utilities.d.ts +2 -0
  6. package/dist/_internal/chart/heatmap-utilities.d.ts +60 -0
  7. package/dist/components/accordion/index.js +14 -1
  8. package/dist/components/alert/alert.schema.js +3 -3
  9. package/dist/components/alert/alert.types.d.ts +3 -2
  10. package/dist/components/alert/index.js +3 -2
  11. package/dist/components/alert-dialog/index.js +11 -2
  12. package/dist/components/area-chart/area-chart.css +57 -7
  13. package/dist/components/area-chart/index.js +283 -40
  14. package/dist/components/avatar-group/avatar-group.css +2 -3
  15. package/dist/components/badge/badge.css +17 -0
  16. package/dist/components/badge/badge.schema.js +6 -1
  17. package/dist/components/badge/badge.types.d.ts +7 -0
  18. package/dist/components/badge/index.js +4 -2
  19. package/dist/components/bar-chart/bar-chart.css +57 -7
  20. package/dist/components/bar-chart/index.js +233 -45
  21. package/dist/components/button/button.css +5 -3
  22. package/dist/components/button/index.js +11 -2
  23. package/dist/components/capability-gate/capability-gate.css +131 -0
  24. package/dist/components/capability-gate/capability-gate.schema.d.ts +3 -0
  25. package/dist/components/capability-gate/capability-gate.schema.js +128 -0
  26. package/dist/components/capability-gate/capability-gate.svelte.d.ts +19 -0
  27. package/dist/components/capability-gate/capability-gate.types.d.ts +70 -0
  28. package/dist/components/capability-gate/capability-gate.variables.d.ts +2 -0
  29. package/dist/components/capability-gate/capability-gate.variables.js +61 -0
  30. package/dist/components/capability-gate/index.d.ts +5 -0
  31. package/dist/components/capability-gate/index.js +285 -0
  32. package/dist/components/card/card.css +4 -0
  33. package/dist/components/card/card.schema.js +5 -1
  34. package/dist/components/card/card.svelte.d.ts +1 -1
  35. package/dist/components/card/card.types.d.ts +4 -0
  36. package/dist/components/card/index.d.ts +1 -1
  37. package/dist/components/card/index.js +8 -4
  38. package/dist/components/chat/index.css +2 -2
  39. package/dist/components/chat/index.js +159 -81
  40. package/dist/components/choice-grid/choice-grid-context.d.ts +23 -0
  41. package/dist/components/choice-grid/choice-grid.css +27 -0
  42. package/dist/components/choice-grid/choice-grid.schema.d.ts +3 -0
  43. package/dist/components/choice-grid/choice-grid.schema.js +121 -0
  44. package/dist/components/choice-grid/choice-grid.svelte.d.ts +20 -0
  45. package/dist/components/choice-grid/choice-grid.types.d.ts +122 -0
  46. package/dist/components/choice-grid/choice-grid.variables.d.ts +2 -0
  47. package/dist/components/choice-grid/choice-grid.variables.js +61 -0
  48. package/dist/components/choice-grid/index.d.ts +13 -0
  49. package/dist/components/choice-grid/index.js +466 -0
  50. package/dist/components/choice-grid-item/choice-grid-item.css +139 -0
  51. package/dist/components/choice-grid-item/choice-grid-item.schema.d.ts +3 -0
  52. package/dist/components/choice-grid-item/choice-grid-item.schema.js +93 -0
  53. package/dist/components/choice-grid-item/choice-grid-item.svelte.d.ts +17 -0
  54. package/dist/components/choice-grid-item/choice-grid-item.types.d.ts +24 -0
  55. package/dist/components/choice-grid-item/choice-grid-item.variables.d.ts +2 -0
  56. package/dist/components/choice-grid-item/choice-grid-item.variables.js +61 -0
  57. package/dist/components/choice-grid-item/index.d.ts +5 -0
  58. package/dist/components/choice-grid-item/index.js +203 -0
  59. package/dist/components/color-field/color-field.css +6 -9
  60. package/dist/components/color-picker/color-picker.css +31 -24
  61. package/dist/components/color-swatch-picker/color-swatch-picker.css +6 -9
  62. package/dist/components/confirm-dialog/index.js +11 -2
  63. package/dist/components/context-menu/index.js +114 -43
  64. package/dist/components/context-menu-trigger/index.js +6 -4
  65. package/dist/components/data-table/data-table.css +30 -0
  66. package/dist/components/data-table/data-table.schema.d.ts +3 -0
  67. package/dist/components/data-table/data-table.schema.js +103 -0
  68. package/dist/components/data-table/data-table.svelte.d.ts +39 -0
  69. package/dist/components/data-table/data-table.types.d.ts +86 -0
  70. package/dist/components/data-table/data-table.variables.d.ts +2 -0
  71. package/dist/components/data-table/data-table.variables.js +61 -0
  72. package/dist/components/data-table/index.d.ts +5 -0
  73. package/dist/components/data-table/index.js +591 -0
  74. package/dist/components/diff-viewer/index.js +14 -3
  75. package/dist/components/dropdown/index.js +115 -46
  76. package/dist/components/dropdown-item/dropdown-item.schema.js +13 -1
  77. package/dist/components/dropdown-item/dropdown-item.svelte.d.ts +1 -1
  78. package/dist/components/dropdown-item/dropdown-item.types.d.ts +46 -2
  79. package/dist/components/dropdown-item/index.d.ts +1 -1
  80. package/dist/components/dropdown-item/index.js +97 -28
  81. package/dist/components/floating-action-button/floating-action-button.css +4 -2
  82. package/dist/components/json-schema-editor/index.js +29 -4
  83. package/dist/components/keyboard-shortcuts/index.d.ts +5 -0
  84. package/dist/components/keyboard-shortcuts/index.js +238 -0
  85. package/dist/components/keyboard-shortcuts/keyboard-shortcuts.css +84 -0
  86. package/dist/components/keyboard-shortcuts/keyboard-shortcuts.schema.d.ts +3 -0
  87. package/dist/components/keyboard-shortcuts/keyboard-shortcuts.schema.js +87 -0
  88. package/dist/components/keyboard-shortcuts/keyboard-shortcuts.svelte.d.ts +17 -0
  89. package/dist/components/keyboard-shortcuts/keyboard-shortcuts.types.d.ts +42 -0
  90. package/dist/components/keyboard-shortcuts/keyboard-shortcuts.variables.d.ts +2 -0
  91. package/dist/components/keyboard-shortcuts/keyboard-shortcuts.variables.js +61 -0
  92. package/dist/components/line-chart/index.js +283 -40
  93. package/dist/components/line-chart/line-chart.css +57 -8
  94. package/dist/components/markdown-editor/index.js +129 -51
  95. package/dist/components/matrix-chart/index.d.ts +5 -0
  96. package/dist/components/matrix-chart/index.js +1232 -0
  97. package/dist/components/matrix-chart/matrix-chart.css +50 -0
  98. package/dist/components/matrix-chart/matrix-chart.schema.d.ts +3 -0
  99. package/dist/components/matrix-chart/matrix-chart.schema.js +123 -0
  100. package/dist/components/matrix-chart/matrix-chart.svelte.d.ts +20 -0
  101. package/dist/components/matrix-chart/matrix-chart.types.d.ts +52 -0
  102. package/dist/components/matrix-chart/matrix-chart.variables.d.ts +2 -0
  103. package/dist/components/matrix-chart/matrix-chart.variables.js +61 -0
  104. package/dist/components/media-controls/index.d.ts +5 -0
  105. package/dist/components/media-controls/index.js +338 -0
  106. package/dist/components/media-controls/media-controls.css +112 -0
  107. package/dist/components/media-controls/media-controls.schema.d.ts +3 -0
  108. package/dist/components/media-controls/media-controls.schema.js +125 -0
  109. package/dist/components/media-controls/media-controls.svelte.d.ts +18 -0
  110. package/dist/components/media-controls/media-controls.types.d.ts +77 -0
  111. package/dist/components/media-controls/media-controls.variables.d.ts +2 -0
  112. package/dist/components/media-controls/media-controls.variables.js +61 -0
  113. package/dist/components/navigation-bar/navigation-bar.schema.js +5 -5
  114. package/dist/components/navigation-bar/navigation-bar.types.d.ts +2 -1
  115. package/dist/components/pricing-card/index.d.ts +5 -0
  116. package/dist/components/pricing-card/index.js +406 -0
  117. package/dist/components/pricing-card/pricing-card.css +173 -0
  118. package/dist/components/pricing-card/pricing-card.schema.d.ts +3 -0
  119. package/dist/components/pricing-card/pricing-card.schema.js +100 -0
  120. package/dist/components/pricing-card/pricing-card.svelte.d.ts +18 -0
  121. package/dist/components/pricing-card/pricing-card.types.d.ts +47 -0
  122. package/dist/components/pricing-card/pricing-card.variables.d.ts +2 -0
  123. package/dist/components/pricing-card/pricing-card.variables.js +61 -0
  124. package/dist/components/review-editor/index.js +212 -132
  125. package/dist/components/share-card/index.d.ts +5 -0
  126. package/dist/components/share-card/index.js +446 -0
  127. package/dist/components/share-card/share-card.css +115 -0
  128. package/dist/components/share-card/share-card.schema.d.ts +3 -0
  129. package/dist/components/share-card/share-card.schema.js +113 -0
  130. package/dist/components/share-card/share-card.svelte.d.ts +18 -0
  131. package/dist/components/share-card/share-card.types.d.ts +66 -0
  132. package/dist/components/share-card/share-card.variables.d.ts +2 -0
  133. package/dist/components/share-card/share-card.variables.js +61 -0
  134. package/dist/components/shortcut-hint/index.d.ts +5 -0
  135. package/dist/components/shortcut-hint/index.js +197 -0
  136. package/dist/components/shortcut-hint/shortcut-hint.css +26 -0
  137. package/dist/components/shortcut-hint/shortcut-hint.schema.d.ts +3 -0
  138. package/dist/components/shortcut-hint/shortcut-hint.schema.js +96 -0
  139. package/dist/components/shortcut-hint/shortcut-hint.svelte.d.ts +17 -0
  140. package/dist/components/shortcut-hint/shortcut-hint.types.d.ts +33 -0
  141. package/dist/components/shortcut-hint/shortcut-hint.variables.d.ts +2 -0
  142. package/dist/components/shortcut-hint/shortcut-hint.variables.js +61 -0
  143. package/dist/components/skip-link/index.d.ts +4 -0
  144. package/dist/components/skip-link/index.js +180 -0
  145. package/dist/components/skip-link/skip-link.schema.d.ts +3 -0
  146. package/dist/components/skip-link/skip-link.schema.js +76 -0
  147. package/dist/components/skip-link/skip-link.svelte.d.ts +19 -0
  148. package/dist/components/skip-link/skip-link.types.d.ts +38 -0
  149. package/dist/components/skip-link/skip-link.variables.d.ts +2 -0
  150. package/dist/components/skip-link/skip-link.variables.js +61 -0
  151. package/dist/components/spectrogram/index.d.ts +5 -0
  152. package/dist/components/spectrogram/index.js +1156 -0
  153. package/dist/components/spectrogram/spectrogram.css +43 -0
  154. package/dist/components/spectrogram/spectrogram.schema.d.ts +3 -0
  155. package/dist/components/spectrogram/spectrogram.schema.js +103 -0
  156. package/dist/components/spectrogram/spectrogram.svelte.d.ts +21 -0
  157. package/dist/components/spectrogram/spectrogram.types.d.ts +60 -0
  158. package/dist/components/spectrogram/spectrogram.variables.d.ts +2 -0
  159. package/dist/components/spectrogram/spectrogram.variables.js +61 -0
  160. package/dist/components/spectrum-chart/index.d.ts +5 -0
  161. package/dist/components/spectrum-chart/index.js +1056 -0
  162. package/dist/components/spectrum-chart/spectrum-chart.css +49 -0
  163. package/dist/components/spectrum-chart/spectrum-chart.schema.d.ts +3 -0
  164. package/dist/components/spectrum-chart/spectrum-chart.schema.js +97 -0
  165. package/dist/components/spectrum-chart/spectrum-chart.svelte.d.ts +21 -0
  166. package/dist/components/spectrum-chart/spectrum-chart.types.d.ts +41 -0
  167. package/dist/components/spectrum-chart/spectrum-chart.variables.d.ts +2 -0
  168. package/dist/components/spectrum-chart/spectrum-chart.variables.js +61 -0
  169. package/dist/components/status-dot/status-dot.css +8 -0
  170. package/dist/components/status-dot/status-dot.schema.js +3 -3
  171. package/dist/components/status-dot/status-dot.types.d.ts +5 -2
  172. package/dist/components/subscription-badge/index.d.ts +5 -0
  173. package/dist/components/subscription-badge/index.js +383 -0
  174. package/dist/components/subscription-badge/subscription-badge.css +18 -0
  175. package/dist/components/subscription-badge/subscription-badge.schema.d.ts +3 -0
  176. package/dist/components/subscription-badge/subscription-badge.schema.js +77 -0
  177. package/dist/components/subscription-badge/subscription-badge.svelte.d.ts +19 -0
  178. package/dist/components/subscription-badge/subscription-badge.types.d.ts +28 -0
  179. package/dist/components/subscription-badge/subscription-badge.variables.d.ts +2 -0
  180. package/dist/components/subscription-badge/subscription-badge.variables.js +61 -0
  181. package/dist/components/tab/index.js +14 -1
  182. package/dist/components/table/index.js +26 -17
  183. package/dist/components/table-cell/index.js +18 -9
  184. package/dist/components/table-cell/table-cell.schema.js +5 -1
  185. package/dist/components/table-cell/table-cell.types.d.ts +16 -1
  186. package/dist/components/tabs/index.js +14 -1
  187. package/dist/components/waveform/index.d.ts +5 -0
  188. package/dist/components/waveform/index.js +1075 -0
  189. package/dist/components/waveform/waveform.css +53 -0
  190. package/dist/components/waveform/waveform.schema.d.ts +3 -0
  191. package/dist/components/waveform/waveform.schema.js +98 -0
  192. package/dist/components/waveform/waveform.svelte.d.ts +20 -0
  193. package/dist/components/waveform/waveform.types.d.ts +42 -0
  194. package/dist/components/waveform/waveform.variables.d.ts +2 -0
  195. package/dist/components/waveform/waveform.variables.js +61 -0
  196. package/dist/index.d.ts +33 -2
  197. package/dist/index.js +144 -115
  198. package/dist/server/components/accordion/index.js +14 -1
  199. package/dist/server/components/alert/alert.schema.js +3 -3
  200. package/dist/server/components/alert/index.js +3 -2
  201. package/dist/server/components/alert-dialog/index.js +12 -3
  202. package/dist/server/components/area-chart/index.css +50 -3
  203. package/dist/server/components/area-chart/index.js +181 -2
  204. package/dist/server/components/avatar-group/index.css +1 -1
  205. package/dist/server/components/badge/badge.schema.js +6 -1
  206. package/dist/server/components/badge/index.css +4 -0
  207. package/dist/server/components/badge/index.js +3 -1
  208. package/dist/server/components/bar-chart/index.css +50 -3
  209. package/dist/server/components/bar-chart/index.js +166 -2
  210. package/dist/server/components/button/index.css +1 -1
  211. package/dist/server/components/button/index.js +12 -3
  212. package/dist/server/components/capability-gate/capability-gate.schema.js +110 -0
  213. package/dist/server/components/capability-gate/capability-gate.variables.js +43 -0
  214. package/dist/server/components/capability-gate/index.css +121 -0
  215. package/dist/server/components/capability-gate/index.js +168 -0
  216. package/dist/server/components/card/card.schema.js +5 -1
  217. package/dist/server/components/card/index.css +9 -1
  218. package/dist/server/components/card/index.js +3 -2
  219. package/dist/server/components/chat/index.css +2 -2
  220. package/dist/server/components/chat/index.js +78 -19
  221. package/dist/server/components/choice-grid/choice-grid.schema.js +103 -0
  222. package/dist/server/components/choice-grid/choice-grid.variables.js +43 -0
  223. package/dist/server/components/choice-grid/index.css +103 -0
  224. package/dist/server/components/choice-grid/index.js +383 -0
  225. package/dist/server/components/choice-grid-item/choice-grid-item.schema.js +75 -0
  226. package/dist/server/components/choice-grid-item/choice-grid-item.variables.js +43 -0
  227. package/dist/server/components/choice-grid-item/index.css +86 -0
  228. package/dist/server/components/choice-grid-item/index.js +139 -0
  229. package/dist/server/components/color-field/index.css +2 -4
  230. package/dist/server/components/color-picker/index.css +14 -10
  231. package/dist/server/components/color-swatch-picker/index.css +2 -4
  232. package/dist/server/components/confirm-dialog/index.js +12 -3
  233. package/dist/server/components/context-menu/index.js +72 -20
  234. package/dist/server/components/context-menu-trigger/index.js +6 -4
  235. package/dist/server/components/data-table/data-table.schema.js +85 -0
  236. package/dist/server/components/data-table/data-table.variables.js +43 -0
  237. package/dist/server/components/data-table/index.css +182 -0
  238. package/dist/server/components/data-table/index.js +469 -0
  239. package/dist/server/components/diff-viewer/index.js +14 -3
  240. package/dist/server/components/dropdown/index.js +67 -17
  241. package/dist/server/components/dropdown-item/dropdown-item.schema.js +13 -1
  242. package/dist/server/components/dropdown-item/index.js +67 -17
  243. package/dist/server/components/floating-action-button/index.css +1 -1
  244. package/dist/server/components/json-schema-editor/index.js +29 -4
  245. package/dist/server/components/keyboard-shortcuts/index.css +86 -0
  246. package/dist/server/components/keyboard-shortcuts/index.js +149 -0
  247. package/dist/server/components/keyboard-shortcuts/keyboard-shortcuts.schema.js +69 -0
  248. package/dist/server/components/keyboard-shortcuts/keyboard-shortcuts.variables.js +43 -0
  249. package/dist/server/components/line-chart/index.css +50 -3
  250. package/dist/server/components/line-chart/index.js +181 -2
  251. package/dist/server/components/markdown-editor/index.js +78 -19
  252. package/dist/server/components/matrix-chart/index.css +52 -0
  253. package/dist/server/components/matrix-chart/index.js +1026 -0
  254. package/dist/server/components/matrix-chart/matrix-chart.schema.js +105 -0
  255. package/dist/server/components/matrix-chart/matrix-chart.variables.js +43 -0
  256. package/dist/server/components/media-controls/index.css +109 -0
  257. package/dist/server/components/media-controls/index.js +192 -0
  258. package/dist/server/components/media-controls/media-controls.schema.js +107 -0
  259. package/dist/server/components/media-controls/media-controls.variables.js +43 -0
  260. package/dist/server/components/navigation-bar/navigation-bar.schema.js +5 -5
  261. package/dist/server/components/pricing-card/index.css +131 -0
  262. package/dist/server/components/pricing-card/index.js +258 -0
  263. package/dist/server/components/pricing-card/pricing-card.schema.js +82 -0
  264. package/dist/server/components/pricing-card/pricing-card.variables.js +43 -0
  265. package/dist/server/components/review-editor/index.css +2 -2
  266. package/dist/server/components/review-editor/index.js +80 -19
  267. package/dist/server/components/share-card/index.css +113 -0
  268. package/dist/server/components/share-card/index.js +270 -0
  269. package/dist/server/components/share-card/share-card.schema.js +95 -0
  270. package/dist/server/components/share-card/share-card.variables.js +43 -0
  271. package/dist/server/components/shortcut-hint/index.css +28 -0
  272. package/dist/server/components/shortcut-hint/index.js +134 -0
  273. package/dist/server/components/shortcut-hint/shortcut-hint.schema.js +78 -0
  274. package/dist/server/components/shortcut-hint/shortcut-hint.variables.js +43 -0
  275. package/dist/server/components/skip-link/index.js +141 -0
  276. package/dist/server/components/skip-link/skip-link.schema.js +58 -0
  277. package/dist/server/components/skip-link/skip-link.variables.js +43 -0
  278. package/dist/server/components/spectrogram/index.css +45 -0
  279. package/dist/server/components/spectrogram/index.js +970 -0
  280. package/dist/server/components/spectrogram/spectrogram.schema.js +85 -0
  281. package/dist/server/components/spectrogram/spectrogram.variables.js +43 -0
  282. package/dist/server/components/spectrum-chart/index.css +51 -0
  283. package/dist/server/components/spectrum-chart/index.js +871 -0
  284. package/dist/server/components/spectrum-chart/spectrum-chart.schema.js +79 -0
  285. package/dist/server/components/spectrum-chart/spectrum-chart.variables.js +43 -0
  286. package/dist/server/components/status-dot/index.css +8 -0
  287. package/dist/server/components/status-dot/status-dot.schema.js +3 -3
  288. package/dist/server/components/subscription-badge/index.css +2 -0
  289. package/dist/server/components/subscription-badge/index.js +339 -0
  290. package/dist/server/components/subscription-badge/subscription-badge.schema.js +59 -0
  291. package/dist/server/components/subscription-badge/subscription-badge.variables.js +43 -0
  292. package/dist/server/components/tab/index.js +14 -1
  293. package/dist/server/components/table/index.js +13 -8
  294. package/dist/server/components/table-cell/index.js +13 -8
  295. package/dist/server/components/table-cell/table-cell.schema.js +5 -1
  296. package/dist/server/components/tabs/index.js +14 -1
  297. package/dist/server/components/waveform/index.css +55 -0
  298. package/dist/server/components/waveform/index.js +907 -0
  299. package/dist/server/components/waveform/waveform.schema.js +80 -0
  300. package/dist/server/components/waveform/waveform.variables.js +43 -0
  301. package/dist/server/index.css +1137 -55
  302. package/dist/server/index.js +4225 -1750
  303. package/package.json +380 -2
  304. package/src/_internal/chart/chart-focus-ring.ts +209 -0
  305. package/src/_internal/chart/chart-utilities.ts +4 -0
  306. package/src/_internal/chart/heatmap-utilities.ts +159 -0
  307. package/src/components/accordion/accordion.examples.json +1 -0
  308. package/src/components/alert/README.md +5 -5
  309. package/src/components/alert/alert.schema.json +2 -2
  310. package/src/components/alert/alert.schema.ts +3 -2
  311. package/src/components/alert/alert.svelte +5 -1
  312. package/src/components/alert/alert.types.ts +3 -2
  313. package/src/components/area-chart/README.md +62 -0
  314. package/src/components/area-chart/area-chart.css +57 -7
  315. package/src/components/area-chart/area-chart.svelte +128 -10
  316. package/src/components/avatar-group/avatar-group.css +2 -3
  317. package/src/components/avatar-group/avatar-group.examples.json +1 -0
  318. package/src/components/backdrop/README.md +56 -0
  319. package/src/components/badge/README.md +6 -5
  320. package/src/components/badge/badge.css +17 -0
  321. package/src/components/badge/badge.schema.json +5 -0
  322. package/src/components/badge/badge.schema.ts +6 -0
  323. package/src/components/badge/badge.svelte +2 -0
  324. package/src/components/badge/badge.types.ts +7 -0
  325. package/src/components/bar-chart/README.md +65 -0
  326. package/src/components/bar-chart/bar-chart.css +57 -7
  327. package/src/components/bar-chart/bar-chart.svelte +94 -13
  328. package/src/components/button/button.css +5 -3
  329. package/src/components/button/button.examples.json +1 -0
  330. package/src/components/button/button.svelte +15 -0
  331. package/src/components/capability-gate/README.md +60 -0
  332. package/src/components/capability-gate/capability-gate.css +131 -0
  333. package/src/components/capability-gate/capability-gate.examples.json +19 -0
  334. package/src/components/capability-gate/capability-gate.schema.json +68 -0
  335. package/src/components/capability-gate/capability-gate.schema.ts +72 -0
  336. package/src/components/capability-gate/capability-gate.svelte +186 -0
  337. package/src/components/capability-gate/capability-gate.types.ts +83 -0
  338. package/src/components/capability-gate/capability-gate.variables.json +1 -0
  339. package/src/components/capability-gate/capability-gate.variables.ts +3 -0
  340. package/src/components/capability-gate/index.ts +10 -0
  341. package/src/components/card/README.md +1 -0
  342. package/src/components/card/card.css +4 -0
  343. package/src/components/card/card.examples.json +6 -0
  344. package/src/components/card/card.schema.json +4 -0
  345. package/src/components/card/card.schema.ts +5 -0
  346. package/src/components/card/card.svelte +9 -2
  347. package/src/components/card/card.types.ts +4 -0
  348. package/src/components/card/index.ts +1 -1
  349. package/src/components/chat/README.md +81 -0
  350. package/src/components/chat/container/chat-jump-controls.svelte +12 -9
  351. package/src/components/chat/input/chat-input.svelte +7 -8
  352. package/src/components/chat/message/chat-message.svelte +15 -20
  353. package/src/components/chat/message/tool-call-group.svelte +10 -4
  354. package/src/components/choice-grid/README.md +66 -0
  355. package/src/components/choice-grid/choice-grid-context.ts +30 -0
  356. package/src/components/choice-grid/choice-grid.css +27 -0
  357. package/src/components/choice-grid/choice-grid.examples.json +31 -0
  358. package/src/components/choice-grid/choice-grid.schema.json +61 -0
  359. package/src/components/choice-grid/choice-grid.schema.ts +70 -0
  360. package/src/components/choice-grid/choice-grid.svelte +272 -0
  361. package/src/components/choice-grid/choice-grid.types.ts +152 -0
  362. package/src/components/choice-grid/choice-grid.variables.json +1 -0
  363. package/src/components/choice-grid/choice-grid.variables.ts +3 -0
  364. package/src/components/choice-grid/index.ts +22 -0
  365. package/src/components/choice-grid-item/README.md +41 -0
  366. package/src/components/choice-grid-item/choice-grid-item.css +139 -0
  367. package/src/components/choice-grid-item/choice-grid-item.schema.json +32 -0
  368. package/src/components/choice-grid-item/choice-grid-item.schema.ts +38 -0
  369. package/src/components/choice-grid-item/choice-grid-item.svelte +139 -0
  370. package/src/components/choice-grid-item/choice-grid-item.types.ts +30 -0
  371. package/src/components/choice-grid-item/choice-grid-item.variables.json +1 -0
  372. package/src/components/choice-grid-item/choice-grid-item.variables.ts +3 -0
  373. package/src/components/choice-grid-item/index.ts +6 -0
  374. package/src/components/click-away-listener/README.md +50 -0
  375. package/src/components/color-field/color-field.css +6 -9
  376. package/src/components/color-picker/color-picker.css +31 -24
  377. package/src/components/color-swatch-picker/color-swatch-picker.css +6 -9
  378. package/src/components/command-menu/README.md +61 -0
  379. package/src/components/confirm-dialog/confirm-dialog.examples.json +6 -0
  380. package/src/components/context-menu/README.md +55 -0
  381. package/src/components/context-menu-trigger/README.md +50 -0
  382. package/src/components/context-menu-trigger/context-menu-trigger.svelte +5 -3
  383. package/src/components/data-table/README.md +67 -0
  384. package/src/components/data-table/data-table.css +30 -0
  385. package/src/components/data-table/data-table.examples.json +19 -0
  386. package/src/components/data-table/data-table.schema.json +43 -0
  387. package/src/components/data-table/data-table.schema.ts +50 -0
  388. package/src/components/data-table/data-table.svelte +106 -0
  389. package/src/components/data-table/data-table.types.ts +89 -0
  390. package/src/components/data-table/data-table.variables.json +1 -0
  391. package/src/components/data-table/data-table.variables.ts +3 -0
  392. package/src/components/data-table/index.ts +6 -0
  393. package/src/components/diff-viewer/README.md +59 -0
  394. package/src/components/diff-viewer/front-matter-header.svelte +20 -4
  395. package/src/components/dropdown-group/README.md +52 -0
  396. package/src/components/dropdown-item/README.md +10 -7
  397. package/src/components/dropdown-item/dropdown-item.schema.json +12 -0
  398. package/src/components/dropdown-item/dropdown-item.schema.ts +14 -0
  399. package/src/components/dropdown-item/dropdown-item.svelte +108 -25
  400. package/src/components/dropdown-item/dropdown-item.types.ts +58 -2
  401. package/src/components/dropdown-item/index.ts +6 -1
  402. package/src/components/floating-action-button/README.md +53 -0
  403. package/src/components/floating-action-button/floating-action-button.css +4 -2
  404. package/src/components/form-section/form-section.examples.json +6 -0
  405. package/src/components/hover-card/README.md +60 -0
  406. package/src/components/json-schema-editor/README.md +59 -0
  407. package/src/components/kanban-board/README.md +62 -0
  408. package/src/components/keyboard-shortcuts/README.md +51 -0
  409. package/src/components/keyboard-shortcuts/index.ts +10 -0
  410. package/src/components/keyboard-shortcuts/keyboard-shortcuts.css +84 -0
  411. package/src/components/keyboard-shortcuts/keyboard-shortcuts.examples.json +13 -0
  412. package/src/components/keyboard-shortcuts/keyboard-shortcuts.schema.json +27 -0
  413. package/src/components/keyboard-shortcuts/keyboard-shortcuts.schema.ts +31 -0
  414. package/src/components/keyboard-shortcuts/keyboard-shortcuts.svelte +91 -0
  415. package/src/components/keyboard-shortcuts/keyboard-shortcuts.types.ts +46 -0
  416. package/src/components/keyboard-shortcuts/keyboard-shortcuts.variables.json +1 -0
  417. package/src/components/keyboard-shortcuts/keyboard-shortcuts.variables.ts +3 -0
  418. package/src/components/line-chart/README.md +61 -0
  419. package/src/components/line-chart/line-chart.css +57 -8
  420. package/src/components/line-chart/line-chart.svelte +128 -10
  421. package/src/components/link/README.md +55 -0
  422. package/src/components/markdown-editor/README.md +70 -0
  423. package/src/components/markdown-editor/editor-toolbar/toolbar-button.svelte +9 -4
  424. package/src/components/markdown-editor/editor-toolbar/toolbar-dropdown.svelte +9 -4
  425. package/src/components/markdown-editor/prosemirror.css +4 -2
  426. package/src/components/matrix-chart/README.md +61 -0
  427. package/src/components/matrix-chart/index.ts +10 -0
  428. package/src/components/matrix-chart/matrix-chart.css +50 -0
  429. package/src/components/matrix-chart/matrix-chart.examples.json +19 -0
  430. package/src/components/matrix-chart/matrix-chart.schema.json +63 -0
  431. package/src/components/matrix-chart/matrix-chart.schema.ts +67 -0
  432. package/src/components/matrix-chart/matrix-chart.svelte +336 -0
  433. package/src/components/matrix-chart/matrix-chart.types.ts +56 -0
  434. package/src/components/matrix-chart/matrix-chart.variables.json +1 -0
  435. package/src/components/matrix-chart/matrix-chart.variables.ts +3 -0
  436. package/src/components/media-controls/README.md +60 -0
  437. package/src/components/media-controls/index.ts +6 -0
  438. package/src/components/media-controls/media-controls.css +112 -0
  439. package/src/components/media-controls/media-controls.examples.json +19 -0
  440. package/src/components/media-controls/media-controls.schema.json +65 -0
  441. package/src/components/media-controls/media-controls.schema.ts +69 -0
  442. package/src/components/media-controls/media-controls.svelte +238 -0
  443. package/src/components/media-controls/media-controls.types.ts +80 -0
  444. package/src/components/media-controls/media-controls.variables.json +1 -0
  445. package/src/components/media-controls/media-controls.variables.ts +3 -0
  446. package/src/components/menu-bar/README.md +53 -0
  447. package/src/components/navigation-bar/README.md +1 -1
  448. package/src/components/navigation-bar/navigation-bar.schema.json +4 -4
  449. package/src/components/navigation-bar/navigation-bar.schema.ts +4 -4
  450. package/src/components/navigation-bar/navigation-bar.types.ts +2 -1
  451. package/src/components/pricing-card/README.md +55 -0
  452. package/src/components/pricing-card/index.ts +6 -0
  453. package/src/components/pricing-card/pricing-card.css +173 -0
  454. package/src/components/pricing-card/pricing-card.examples.json +19 -0
  455. package/src/components/pricing-card/pricing-card.schema.json +40 -0
  456. package/src/components/pricing-card/pricing-card.schema.ts +44 -0
  457. package/src/components/pricing-card/pricing-card.svelte +70 -0
  458. package/src/components/pricing-card/pricing-card.types.ts +49 -0
  459. package/src/components/pricing-card/pricing-card.variables.json +1 -0
  460. package/src/components/pricing-card/pricing-card.variables.ts +3 -0
  461. package/src/components/review-editor/README.md +64 -0
  462. package/src/components/review-editor/comment-composer.svelte +8 -8
  463. package/src/components/review-editor/comment-list.svelte +10 -1
  464. package/src/components/search-field/search-field.examples.json +13 -0
  465. package/src/components/segment/README.md +55 -0
  466. package/src/components/share-card/README.md +58 -0
  467. package/src/components/share-card/index.ts +6 -0
  468. package/src/components/share-card/share-card.css +115 -0
  469. package/src/components/share-card/share-card.examples.json +19 -0
  470. package/src/components/share-card/share-card.schema.json +53 -0
  471. package/src/components/share-card/share-card.schema.ts +57 -0
  472. package/src/components/share-card/share-card.svelte +330 -0
  473. package/src/components/share-card/share-card.types.ts +69 -0
  474. package/src/components/share-card/share-card.variables.json +1 -0
  475. package/src/components/share-card/share-card.variables.ts +3 -0
  476. package/src/components/shortcut-hint/README.md +52 -0
  477. package/src/components/shortcut-hint/index.ts +6 -0
  478. package/src/components/shortcut-hint/shortcut-hint.css +26 -0
  479. package/src/components/shortcut-hint/shortcut-hint.examples.json +13 -0
  480. package/src/components/shortcut-hint/shortcut-hint.schema.json +36 -0
  481. package/src/components/shortcut-hint/shortcut-hint.schema.ts +40 -0
  482. package/src/components/shortcut-hint/shortcut-hint.svelte +62 -0
  483. package/src/components/shortcut-hint/shortcut-hint.types.ts +35 -0
  484. package/src/components/shortcut-hint/shortcut-hint.variables.json +1 -0
  485. package/src/components/shortcut-hint/shortcut-hint.variables.ts +3 -0
  486. package/src/components/side-navigation/side-navigation.examples.json +6 -0
  487. package/src/components/skip-link/README.md +50 -0
  488. package/src/components/skip-link/index.ts +5 -0
  489. package/src/components/skip-link/skip-link.examples.json +13 -0
  490. package/src/components/skip-link/skip-link.schema.json +16 -0
  491. package/src/components/skip-link/skip-link.schema.ts +20 -0
  492. package/src/components/skip-link/skip-link.svelte +86 -0
  493. package/src/components/skip-link/skip-link.types.ts +40 -0
  494. package/src/components/skip-link/skip-link.variables.json +1 -0
  495. package/src/components/skip-link/skip-link.variables.ts +3 -0
  496. package/src/components/spectrogram/README.md +58 -0
  497. package/src/components/spectrogram/index.ts +10 -0
  498. package/src/components/spectrogram/spectrogram.css +43 -0
  499. package/src/components/spectrogram/spectrogram.examples.json +13 -0
  500. package/src/components/spectrogram/spectrogram.schema.json +43 -0
  501. package/src/components/spectrogram/spectrogram.schema.ts +47 -0
  502. package/src/components/spectrogram/spectrogram.svelte +284 -0
  503. package/src/components/spectrogram/spectrogram.types.ts +63 -0
  504. package/src/components/spectrogram/spectrogram.variables.json +1 -0
  505. package/src/components/spectrogram/spectrogram.variables.ts +3 -0
  506. package/src/components/spectrum-chart/README.md +57 -0
  507. package/src/components/spectrum-chart/index.ts +10 -0
  508. package/src/components/spectrum-chart/spectrum-chart.css +49 -0
  509. package/src/components/spectrum-chart/spectrum-chart.examples.json +13 -0
  510. package/src/components/spectrum-chart/spectrum-chart.schema.json +37 -0
  511. package/src/components/spectrum-chart/spectrum-chart.schema.ts +41 -0
  512. package/src/components/spectrum-chart/spectrum-chart.svelte +247 -0
  513. package/src/components/spectrum-chart/spectrum-chart.types.ts +44 -0
  514. package/src/components/spectrum-chart/spectrum-chart.variables.json +1 -0
  515. package/src/components/spectrum-chart/spectrum-chart.variables.ts +3 -0
  516. package/src/components/status-dot/README.md +7 -7
  517. package/src/components/status-dot/status-dot.css +8 -0
  518. package/src/components/status-dot/status-dot.schema.json +2 -2
  519. package/src/components/status-dot/status-dot.schema.ts +3 -2
  520. package/src/components/status-dot/status-dot.types.ts +13 -2
  521. package/src/components/subscription-badge/README.md +50 -0
  522. package/src/components/subscription-badge/index.ts +6 -0
  523. package/src/components/subscription-badge/subscription-badge.css +18 -0
  524. package/src/components/subscription-badge/subscription-badge.examples.json +19 -0
  525. package/src/components/subscription-badge/subscription-badge.schema.json +16 -0
  526. package/src/components/subscription-badge/subscription-badge.schema.ts +21 -0
  527. package/src/components/subscription-badge/subscription-badge.svelte +69 -0
  528. package/src/components/subscription-badge/subscription-badge.types.ts +37 -0
  529. package/src/components/subscription-badge/subscription-badge.variables.json +1 -0
  530. package/src/components/subscription-badge/subscription-badge.variables.ts +3 -0
  531. package/src/components/table-cell/README.md +6 -5
  532. package/src/components/table-cell/table-cell.schema.json +4 -0
  533. package/src/components/table-cell/table-cell.schema.ts +5 -0
  534. package/src/components/table-cell/table-cell.svelte +9 -3
  535. package/src/components/table-cell/table-cell.types.ts +16 -1
  536. package/src/components/tag-input/README.md +75 -0
  537. package/src/components/typography/README.md +51 -0
  538. package/src/components/waveform/README.md +57 -0
  539. package/src/components/waveform/index.ts +6 -0
  540. package/src/components/waveform/waveform.css +53 -0
  541. package/src/components/waveform/waveform.examples.json +19 -0
  542. package/src/components/waveform/waveform.schema.json +38 -0
  543. package/src/components/waveform/waveform.schema.ts +42 -0
  544. package/src/components/waveform/waveform.svelte +286 -0
  545. package/src/components/waveform/waveform.types.ts +45 -0
  546. package/src/components/waveform/waveform.variables.json +1 -0
  547. package/src/components/waveform/waveform.variables.ts +3 -0
  548. package/src/index.ts +85 -2
  549. package/src/styles/components.css +13 -0
  550. package/src/styles/shell.css +3 -0
  551. package/src/styles/tokens-base.css +59 -22
@@ -1,10 +1,66 @@
1
1
  import type { Snippet } from 'svelte';
2
- import type { HTMLButtonAttributes } from 'svelte/elements';
2
+ import type { HTMLAnchorAttributes, HTMLAttributes, HTMLButtonAttributes } from 'svelte/elements';
3
+
3
4
  export type DropdownItemVariant = 'default' | 'danger';
4
- export type DropdownItemProps = Omit<HTMLButtonAttributes, 'class'> & {
5
+
6
+ // The shared base carries the common HTML attribute surface — crucially the
7
+ // event handlers (onclick/onkeydown/onfocus/…) — typed against the generic
8
+ // `HTMLElement`. Both render paths (`<button>` and `<a>`) satisfy that, so a
9
+ // consumer can attach an inline handler without TypeScript forcing it to
10
+ // "prove" which branch it is on. Element-specific NON-event attributes live in
11
+ // the two branches so the `href` ⇄ `type` discriminant stays real.
12
+ type DropdownItemBase = Omit<HTMLAttributes<HTMLElement>, 'class'> & {
5
13
  variant?: DropdownItemVariant;
6
14
  inset?: boolean;
7
15
  closeOnSelect?: boolean;
8
16
  class?: string;
9
17
  children?: Snippet;
18
+ /** When true the item is inert: click is blocked and aria-disabled is set. */
19
+ disabled?: boolean | undefined;
10
20
  };
21
+
22
+ /**
23
+ * Button variant — renders a `<button>`. Forwards every button-specific
24
+ * attribute (`name`, `value`, `form`, `formaction`, `formmethod`,
25
+ * `formnovalidate`, `formtarget`, `formenctype`, …) by subtracting the shared
26
+ * `HTMLElement` surface — which the base already provides with `HTMLElement`-typed
27
+ * event handlers — so a form-submitting menu item (`type="submit"` with `name`/
28
+ * `value`) keeps full typing without reintroducing the inline-handler
29
+ * contravariance trap. `disabled` is owned by the base (a managed click guard +
30
+ * aria-disabled), not the native attribute.
31
+ */
32
+ export type DropdownItemButtonProps = DropdownItemBase &
33
+ Omit<HTMLButtonAttributes, keyof HTMLAttributes<HTMLElement> | 'class' | 'disabled' | 'type'> & {
34
+ href?: undefined;
35
+ /**
36
+ * Button type forwarded to the `<button>` element. Defaults to `"button"`.
37
+ *
38
+ * NOTE: `type="submit"` only submits a surrounding `<form>` when the menu
39
+ * stays inside that form's DOM subtree. DropdownMenu portals its panel to
40
+ * `document.body` on the non-popover fallback path, so a submit item is then
41
+ * NOT a form descendant and native submission is skipped. To submit a form
42
+ * from a portaled menu, set `form="<form-id>"` to associate the button with
43
+ * the form by id, or handle submission in `onclick`.
44
+ */
45
+ type?: 'button' | 'submit' | 'reset';
46
+ };
47
+
48
+ /**
49
+ * Anchor variant — renders an `<a href>`. `disabled` blocks navigation and sets
50
+ * aria-disabled. Forwards every anchor-specific attribute (`target`, `rel`,
51
+ * `download`, `ping`, `hreflang`, `referrerpolicy`, …) by subtracting the shared
52
+ * `HTMLElement` surface — which the base already provides with `HTMLElement`-typed
53
+ * event handlers — so the inline-handler contravariance trap never reappears.
54
+ */
55
+ export type DropdownItemAnchorProps = DropdownItemBase &
56
+ Omit<HTMLAnchorAttributes, keyof HTMLAttributes<HTMLElement> | 'class' | 'href'> & {
57
+ /**
58
+ * Destination URL. Any defined value — including an empty string — selects
59
+ * the anchor branch and renders an `<a>`. Omit `href` entirely to render a
60
+ * `<button>`.
61
+ */
62
+ href: string;
63
+ type?: undefined;
64
+ };
65
+
66
+ export type DropdownItemProps = DropdownItemButtonProps | DropdownItemAnchorProps;
@@ -1,5 +1,10 @@
1
1
  import DropdownItem from './dropdown-item.svelte';
2
2
 
3
3
  export default DropdownItem;
4
- export type { DropdownItemProps, DropdownItemVariant } from './dropdown-item.types.ts';
4
+ export type {
5
+ DropdownItemAnchorProps,
6
+ DropdownItemButtonProps,
7
+ DropdownItemProps,
8
+ DropdownItemVariant,
9
+ } from './dropdown-item.types.ts';
5
10
  export { DropdownItem };
@@ -0,0 +1,53 @@
1
+ # FloatingActionButton
2
+
3
+ Circular button representing the single most important action on a screen.
4
+
5
+ ## Usage
6
+
7
+ ```svelte
8
+ <script lang="ts">
9
+ import { FloatingActionButton } from '@lostgradient/cinder/floating-action-button';
10
+ </script>
11
+ ```
12
+
13
+ ## Guidance
14
+
15
+ ### Use When
16
+
17
+ - One action dominates the page purpose (compose, add, create).
18
+
19
+ ### Avoid When
20
+
21
+ - Multiple equally-important actions exist — use a toolbar or button group.
22
+ - You need it pinned to the viewport — it doesn't position itself; wrap it in your own fixed/sticky container.
23
+
24
+ ## Props
25
+
26
+ <!-- generated:props:start -->
27
+
28
+ | Prop | Type | Required | Default | Description |
29
+ | ---------- | ------------------------------------------- | -------- | ----------- | -------------------------------------------------------- |
30
+ | `class` | `string` | no | — | Custom class merged with `.cinder-fab`. |
31
+ | `color` | `"primary"` \| `"secondary"` \| `"surface"` | no | `"primary"` | Color palette. |
32
+ | `disabled` | `boolean` | no | `false` | When true, disables the button and prevents interaction. |
33
+ | `href` | `string` | no | — | Render as an anchor `<a>` element with this href. |
34
+ | `size` | `"sm"` \| `"md"` \| `"lg"` | no | `"md"` | Size of the FAB. |
35
+ | `variant` | `"filled"` \| `"extended"` | no | `"filled"` | Visual variant. `filled` = circle, `extended` = pill. |
36
+
37
+ <!-- generated:props:end -->
38
+
39
+ ## CSS Variables
40
+
41
+ <!-- generated:variables:start -->
42
+
43
+ This component does not declare any local CSS variables.
44
+
45
+ <!-- generated:variables:end -->
46
+
47
+ ## Subcomponents
48
+
49
+ <!-- generated:subcomponents:start -->
50
+
51
+ None.
52
+
53
+ <!-- generated:subcomponents:end -->
@@ -179,9 +179,11 @@
179
179
  }
180
180
  }
181
181
 
182
- /* :active placed after hover media so press feedback fires on tap as well */
182
+ /* :active placed after hover media so press feedback fires on tap as well.
183
+ Uses the gentler on-fill pressed token so the --cinder-accent-contrast label stays
184
+ AA-legible on the pressed fill (see --cinder-accent-active-on-fill in tokens-base.css). */
183
185
  .cinder-fab[data-cinder-color='primary']:active:not(:disabled):not([aria-disabled='true']) {
184
- background: var(--cinder-accent-active);
186
+ background: var(--cinder-accent-active-on-fill);
185
187
  }
186
188
 
187
189
  .cinder-fab[data-cinder-color='secondary']:active:not(:disabled):not([aria-disabled='true']) {
@@ -3,6 +3,12 @@
3
3
  "component": "form-section",
4
4
  "import": "@lostgradient/cinder/form-section",
5
5
  "examples": [
6
+ {
7
+ "id": "account-settings",
8
+ "title": "Account settings panel",
9
+ "description": "FormSection groups related account and privacy controls under a headed section. Text fields use FormField + Input; on/off settings use Toggle standalone (it renders its own label).",
10
+ "code": "<script lang=\"ts\">\n import { FormField } from '@lostgradient/cinder/form-field';\n import { FormSection } from '@lostgradient/cinder/form-section';\n import { Input } from '@lostgradient/cinder/input';\n import { Toggle } from '@lostgradient/cinder/toggle';\n\n let displayName = $state('');\n let email = $state('');\n let publicProfile = $state(true);\n let marketingEmails = $state(false);\n</script>\n\n<div style=\"display: flex; flex-direction: column; gap: 2rem;\">\n <FormSection\n heading=\"Account\"\n headingLevel={2}\n description=\"Update your display name and email address.\"\n columns={2}\n >\n <FormField id=\"display-name\" label=\"Display name\">\n <Input id=\"display-name\" bind:value={displayName} placeholder=\"Jane Smith\" />\n </FormField>\n <FormField id=\"account-email\" label=\"Email address\">\n <Input id=\"account-email\" bind:value={email} type=\"email\" placeholder=\"jane@example.com\" />\n </FormField>\n </FormSection>\n\n <FormSection\n heading=\"Privacy\"\n headingLevel={2}\n description=\"Control who can see your profile and what communications you receive.\"\n >\n <Toggle id=\"public-profile\" bind:checked={publicProfile} label=\"Public profile\" />\n <Toggle id=\"marketing-emails\" bind:checked={marketingEmails} label=\"Marketing emails\" />\n </FormSection>\n</div>\n"
11
+ },
6
12
  {
7
13
  "id": "fieldset-legend",
8
14
  "title": "Fieldset with legend",
@@ -0,0 +1,60 @@
1
+ # HoverCard
2
+
3
+ Hover-and-focus triggered rich preview card for non-interactive contextual content.
4
+
5
+ ## Usage
6
+
7
+ ```svelte
8
+ <script lang="ts">
9
+ import { HoverCard } from '@lostgradient/cinder/hover-card';
10
+ </script>
11
+ ```
12
+
13
+ ## Guidance
14
+
15
+ ### Use When
16
+
17
+ - Showing a profile, issue, or metadata preview that is richer than a tooltip but still read-only.
18
+ - Revealing supplementary preview content on pointer hover or keyboard focus without moving focus.
19
+
20
+ ### Avoid When
21
+
22
+ - The floating content contains focusable controls — use popover.
23
+ - The trigger needs a short accessible description — use tooltip.
24
+
25
+ ## Props
26
+
27
+ <!-- generated:props:start -->
28
+
29
+ | Prop | Type | Required | Default | Description |
30
+ | -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------- | ------- | -------------------------------------------------------------------------------------------------------------------------- |
31
+ | `class` | `string` | no | — | |
32
+ | `closeDelay` | `number` | no | — | |
33
+ | `description` | `string` | no | — | |
34
+ | `offset` | `number` | no | — | |
35
+ | `open` | `boolean` | no | — | |
36
+ | `openDelay` | `number` | no | — | |
37
+ | `placement` | `"top"` \| `"top-start"` \| `"top-end"` \| `"right"` \| `"right-start"` \| `"right-end"` \| `"bottom"` \| `"bottom-start"` \| `"bottom-end"` \| `"left"` \| `"left-start"` \| `"left-end"` | no | — | |
38
+ | `showArrow` | `boolean` | no | — | |
39
+ | `children` | `(opaque)` | no | — | A function or snippet prop. Its shape is not captured by the JSON schema; see the component types for the exact signature. |
40
+ | `onopenchange` | `(opaque)` | no | — | A function or snippet prop. Its shape is not captured by the JSON schema; see the component types for the exact signature. |
41
+ | `trigger` | `(opaque)` | no | — | A function or snippet prop. Its shape is not captured by the JSON schema; see the component types for the exact signature. |
42
+ | `triggerRef` | `(opaque)` | no | — | A prop whose shape is not captured by the JSON schema; see the component types for the exact signature. |
43
+
44
+ <!-- generated:props:end -->
45
+
46
+ ## CSS Variables
47
+
48
+ <!-- generated:variables:start -->
49
+
50
+ This component does not declare any local CSS variables.
51
+
52
+ <!-- generated:variables:end -->
53
+
54
+ ## Subcomponents
55
+
56
+ <!-- generated:subcomponents:start -->
57
+
58
+ None.
59
+
60
+ <!-- generated:subcomponents:end -->
@@ -0,0 +1,59 @@
1
+ # JsonSchemaEditor
2
+
3
+ Multi-view editor for authoring JSON Schema documents with form, raw JSON, and diff modes plus undo history and validation.
4
+
5
+ ## Usage
6
+
7
+ ```svelte
8
+ <script lang="ts">
9
+ import { JsonSchemaEditor } from '@lostgradient/cinder/json-schema-editor';
10
+ </script>
11
+ ```
12
+
13
+ ## Guidance
14
+
15
+ ### Use When
16
+
17
+ - Letting users edit a JSON Schema with a guided form alongside the raw source.
18
+ - Reviewing schema changes against a baseline via the built-in diff view.
19
+
20
+ ### Avoid When
21
+
22
+ - Editing arbitrary free-form JSON with no schema semantics — use a plain code editor instead.
23
+
24
+ ## Props
25
+
26
+ <!-- generated:props:start -->
27
+
28
+ | Prop | Type | Required | Default | Description |
29
+ | --------------- | ------------------------------------------ | -------- | ------- | -------------------------------------------------------------------------------------------------------------------------- |
30
+ | `class` | `string` | no | — | |
31
+ | `draftOverride` | `"2020-12"` \| `"2019-09"` \| `"draft-07"` | no | — | Force a draft override regardless of $schema. |
32
+ | `id` | `string` | yes | — | Required for ARIA wiring. |
33
+ | `maxHistory` | `number` | no | — | Maximum history entries (default 100). |
34
+ | `readonly` | `boolean` | no | — | Read-only mode disables all mutations. |
35
+ | `schemaKey` | `string` | no | — | Changing this triggers a full reset (history clears). |
36
+ | `view` | `"form"` \| `"json"` \| `"diff"` | no | — | Active view: form / json / diff. Bindable. |
37
+ | `onchange` | `(opaque)` | no | — | A function or snippet prop. Its shape is not captured by the JSON schema; see the component types for the exact signature. |
38
+ | `onrevert` | `(opaque)` | no | — | A function or snippet prop. Its shape is not captured by the JSON schema; see the component types for the exact signature. |
39
+ | `onvalidate` | `(opaque)` | no | — | A function or snippet prop. Its shape is not captured by the JSON schema; see the component types for the exact signature. |
40
+ | `original` | `(opaque)` | no | — | A prop whose shape is not captured by the JSON schema; see the component types for the exact signature. |
41
+ | `schema` | `(opaque)` | no | — | A prop whose shape is not captured by the JSON schema; see the component types for the exact signature. |
42
+
43
+ <!-- generated:props:end -->
44
+
45
+ ## CSS Variables
46
+
47
+ <!-- generated:variables:start -->
48
+
49
+ This component does not declare any local CSS variables.
50
+
51
+ <!-- generated:variables:end -->
52
+
53
+ ## Subcomponents
54
+
55
+ <!-- generated:subcomponents:start -->
56
+
57
+ None.
58
+
59
+ <!-- generated:subcomponents:end -->
@@ -0,0 +1,62 @@
1
+ # KanbanBoard
2
+
3
+ Controlled multi-column board for reordering cards within and across workflow columns with keyboard, pointer, and live-region feedback.
4
+
5
+ ## Usage
6
+
7
+ ```svelte
8
+ <script lang="ts">
9
+ import { KanbanBoard } from '@lostgradient/cinder/kanban-board';
10
+ </script>
11
+ ```
12
+
13
+ ## Guidance
14
+
15
+ ### Use When
16
+
17
+ - Presenting a workflow board where users move cards between ordered columns.
18
+ - Consumers own card rendering and need cinder to manage reorder affordances and change metadata.
19
+
20
+ ### Avoid When
21
+
22
+ - Showing a single ordered list — use sortable-list instead.
23
+ - Sorting by computed fields rather than direct manual placement.
24
+
25
+ ## Props
26
+
27
+ <!-- generated:props:start -->
28
+
29
+ | Prop | Type | Required | Default | Description |
30
+ | ---------------- | ---------- | -------- | ------- | -------------------------------------------------------------------------------------------------------------------------- |
31
+ | `class` | `string` | no | — | |
32
+ | `collapsible` | `boolean` | no | — | |
33
+ | `label` | `string` | no | — | |
34
+ | `reorderColumns` | `boolean` | no | — | |
35
+ | `card` | `(opaque)` | no | — | A function or snippet prop. Its shape is not captured by the JSON schema; see the component types for the exact signature. |
36
+ | `columnActions` | `(opaque)` | no | — | A function or snippet prop. Its shape is not captured by the JSON schema; see the component types for the exact signature. |
37
+ | `columnHeader` | `(opaque)` | no | — | A function or snippet prop. Its shape is not captured by the JSON schema; see the component types for the exact signature. |
38
+ | `columns` | `(opaque)` | no | — | A prop whose shape is not captured by the JSON schema; see the component types for the exact signature. |
39
+ | `emptyColumn` | `(opaque)` | no | — | A function or snippet prop. Its shape is not captured by the JSON schema; see the component types for the exact signature. |
40
+ | `getCardKey` | `(opaque)` | no | — | A function or snippet prop. Its shape is not captured by the JSON schema; see the component types for the exact signature. |
41
+ | `getCardLabel` | `(opaque)` | no | — | A function or snippet prop. Its shape is not captured by the JSON schema; see the component types for the exact signature. |
42
+ | `onchange` | `(opaque)` | no | — | A function or snippet prop. Its shape is not captured by the JSON schema; see the component types for the exact signature. |
43
+
44
+ <!-- generated:props:end -->
45
+
46
+ ## CSS Variables
47
+
48
+ <!-- generated:variables:start -->
49
+
50
+ - `--cinder-kanban-card-background`
51
+ - `--cinder-kanban-column-background`
52
+ - `--cinder-kanban-column-gap`
53
+ - `--cinder-kanban-column-width`
54
+ <!-- generated:variables:end -->
55
+
56
+ ## Subcomponents
57
+
58
+ <!-- generated:subcomponents:start -->
59
+
60
+ None.
61
+
62
+ <!-- generated:subcomponents:end -->
@@ -0,0 +1,51 @@
1
+ # KeyboardShortcuts
2
+
3
+ Grouped keyboard-shortcut reference that renders key combos via Kbd with accessible labels not reliant only on visual keycaps.
4
+
5
+ ## Usage
6
+
7
+ ```svelte
8
+ <script lang="ts">
9
+ import { KeyboardShortcuts } from '@lostgradient/cinder/keyboard-shortcuts';
10
+ </script>
11
+ ```
12
+
13
+ ## Guidance
14
+
15
+ ### Use When
16
+
17
+ - Displaying a reference panel of keyboard shortcuts grouped by feature area.
18
+ - Embedding a shortcut table inside a modal, sheet, popover, or help page.
19
+
20
+ ### Avoid When
21
+
22
+ - Showing a single inline shortcut hint — use shortcut-hint instead.
23
+
24
+ ## Props
25
+
26
+ <!-- generated:props:start -->
27
+
28
+ | Prop | Type | Required | Default | Description |
29
+ | ---------- | ---------- | -------- | ------- | -------------------------------------------------------------------------------------------------------------------------- |
30
+ | `class` | `string` | no | — | Additional class names merged with `.cinder-keyboard-shortcuts`. |
31
+ | `heading` | `string` | no | — | Optional heading for the entire shortcuts panel. |
32
+ | `children` | `(opaque)` | no | — | A function or snippet prop. Its shape is not captured by the JSON schema; see the component types for the exact signature. |
33
+ | `groups` | `(opaque)` | no | — | A prop whose shape is not captured by the JSON schema; see the component types for the exact signature. |
34
+
35
+ <!-- generated:props:end -->
36
+
37
+ ## CSS Variables
38
+
39
+ <!-- generated:variables:start -->
40
+
41
+ This component does not declare any local CSS variables.
42
+
43
+ <!-- generated:variables:end -->
44
+
45
+ ## Subcomponents
46
+
47
+ <!-- generated:subcomponents:start -->
48
+
49
+ None.
50
+
51
+ <!-- generated:subcomponents:end -->
@@ -0,0 +1,10 @@
1
+ import './keyboard-shortcuts.css';
2
+ import KeyboardShortcuts from './keyboard-shortcuts.svelte';
3
+
4
+ export default KeyboardShortcuts;
5
+ export type {
6
+ KeyboardShortcutEntry,
7
+ KeyboardShortcutGroup,
8
+ KeyboardShortcutsProps,
9
+ } from './keyboard-shortcuts.types.ts';
10
+ export { KeyboardShortcuts };
@@ -0,0 +1,84 @@
1
+ @layer cinder.tokens, cinder.foundation, cinder.components, cinder.utilities;
2
+ @layer cinder.components {
3
+ .cinder-keyboard-shortcuts {
4
+ display: flex;
5
+ flex-direction: column;
6
+ gap: var(--cinder-space-4);
7
+ }
8
+
9
+ .cinder-keyboard-shortcuts__heading {
10
+ font-size: var(--cinder-text-lg);
11
+ font-weight: 600;
12
+ color: var(--cinder-text);
13
+ margin: 0;
14
+ }
15
+
16
+ .cinder-keyboard-shortcuts__intro {
17
+ font-size: var(--cinder-text-sm);
18
+ color: var(--cinder-text-muted);
19
+ }
20
+
21
+ .cinder-keyboard-shortcuts__group {
22
+ display: flex;
23
+ flex-direction: column;
24
+ gap: var(--cinder-space-2);
25
+ }
26
+
27
+ .cinder-keyboard-shortcuts__group-label {
28
+ font-size: var(--cinder-text-xs);
29
+ font-weight: 600;
30
+ text-transform: uppercase;
31
+ letter-spacing: 0.05em;
32
+ color: var(--cinder-text-muted);
33
+ margin: 0;
34
+ }
35
+
36
+ .cinder-keyboard-shortcuts__list {
37
+ display: flex;
38
+ flex-direction: column;
39
+ gap: 0;
40
+ margin: 0;
41
+ padding: 0;
42
+ border: 1px solid var(--cinder-border);
43
+ border-radius: var(--cinder-radius-md);
44
+ overflow: hidden;
45
+ }
46
+
47
+ .cinder-keyboard-shortcuts__row {
48
+ display: flex;
49
+ align-items: center;
50
+ justify-content: space-between;
51
+ padding: var(--cinder-space-1) var(--cinder-space-2);
52
+ gap: var(--cinder-space-3);
53
+ }
54
+
55
+ .cinder-keyboard-shortcuts__row + .cinder-keyboard-shortcuts__row {
56
+ border-top: 1px solid var(--cinder-border);
57
+ }
58
+
59
+ .cinder-keyboard-shortcuts__action {
60
+ font-size: var(--cinder-text-sm);
61
+ color: var(--cinder-text);
62
+ flex: 1;
63
+ }
64
+
65
+ .cinder-keyboard-shortcuts__keys {
66
+ display: flex;
67
+ align-items: center;
68
+ flex-shrink: 0;
69
+ margin: 0;
70
+ }
71
+
72
+ .cinder-keyboard-shortcuts__keys-visual {
73
+ display: inline-flex;
74
+ align-items: center;
75
+ gap: var(--cinder-space-1);
76
+ }
77
+
78
+ .cinder-keyboard-shortcuts__separator {
79
+ font-size: var(--cinder-text-xs);
80
+ color: var(--cinder-text-muted);
81
+ line-height: 1;
82
+ user-select: none;
83
+ }
84
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "$schema": "../../schemas/examples.schema.json",
3
+ "component": "keyboard-shortcuts",
4
+ "import": "@lostgradient/cinder/keyboard-shortcuts",
5
+ "examples": [
6
+ {
7
+ "id": "command-palette",
8
+ "title": "Command palette shortcuts reference",
9
+ "description": "A grouped shortcut reference panel suitable for embedding in a modal or sheet.",
10
+ "code": "<script lang=\"ts\">\n import { KeyboardShortcuts } from '@lostgradient/cinder/keyboard-shortcuts';\n</script>\n\n<div style=\"max-width: 28rem;\">\n <KeyboardShortcuts\n heading=\"Keyboard Shortcuts\"\n groups={[\n {\n label: 'General',\n shortcuts: [\n { action: 'Open command palette', keys: ['Ctrl', 'K'], keysLabel: 'Control plus K' },\n { action: 'Search', keys: ['Ctrl', 'F'], keysLabel: 'Control plus F' },\n { action: 'Go back', keys: ['Alt', '←'], keysLabel: 'Alt plus Left arrow' },\n ],\n },\n {\n label: 'Editing',\n shortcuts: [\n { action: 'Save', keys: ['Ctrl', 'S'], keysLabel: 'Control plus S' },\n { action: 'Undo', keys: ['Ctrl', 'Z'], keysLabel: 'Control plus Z' },\n { action: 'Redo', keys: ['Ctrl', 'Shift', 'Z'], keysLabel: 'Control plus Shift plus Z' },\n ],\n },\n ]}\n />\n</div>\n"
11
+ }
12
+ ]
13
+ }
@@ -0,0 +1,27 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "type": "object",
4
+ "properties": {
5
+ "heading": {
6
+ "type": "string",
7
+ "description": "Optional heading for the entire shortcuts panel."
8
+ },
9
+ "class": {
10
+ "type": "string",
11
+ "description": "Additional class names merged with `.cinder-keyboard-shortcuts`."
12
+ }
13
+ },
14
+ "additionalProperties": false,
15
+ "metadata": {
16
+ "unsupportedProps": [
17
+ {
18
+ "name": "children",
19
+ "reason": "function-or-snippet"
20
+ },
21
+ {
22
+ "name": "groups",
23
+ "reason": "unknown-shape"
24
+ }
25
+ ]
26
+ }
27
+ }
@@ -0,0 +1,31 @@
1
+ import type { ComponentSchema } from '../../schema-types';
2
+
3
+ const schema = {
4
+ $schema: 'https://json-schema.org/draft/2020-12/schema',
5
+ type: 'object',
6
+ properties: {
7
+ heading: {
8
+ type: 'string',
9
+ description: 'Optional heading for the entire shortcuts panel.',
10
+ },
11
+ class: {
12
+ type: 'string',
13
+ description: 'Additional class names merged with `.cinder-keyboard-shortcuts`.',
14
+ },
15
+ },
16
+ additionalProperties: false,
17
+ metadata: {
18
+ unsupportedProps: [
19
+ {
20
+ name: 'children',
21
+ reason: 'function-or-snippet',
22
+ },
23
+ {
24
+ name: 'groups',
25
+ reason: 'unknown-shape',
26
+ },
27
+ ],
28
+ },
29
+ } satisfies ComponentSchema;
30
+
31
+ export default schema as ComponentSchema;