@panphora/bevel 0.1.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 (539) hide show
  1. package/LICENSE +16 -0
  2. package/README.md +226 -0
  3. package/bevel-fonts.css +16 -0
  4. package/bevel.css +3075 -0
  5. package/bevel.js +2126 -0
  6. package/dist/react/components/activity-feed.d.ts +89 -0
  7. package/dist/react/components/activity-feed.js +54 -0
  8. package/dist/react/components/alert-dialog.d.ts +14 -0
  9. package/dist/react/components/alert-dialog.js +19 -0
  10. package/dist/react/components/app-shell.d.ts +98 -0
  11. package/dist/react/components/app-shell.js +86 -0
  12. package/dist/react/components/app-toolbar.d.ts +19 -0
  13. package/dist/react/components/app-toolbar.js +22 -0
  14. package/dist/react/components/avatar-group.d.ts +67 -0
  15. package/dist/react/components/avatar-group.js +49 -0
  16. package/dist/react/components/badge-and-pill.d.ts +34 -0
  17. package/dist/react/components/badge-and-pill.js +12 -0
  18. package/dist/react/components/breadcrumbs.d.ts +56 -0
  19. package/dist/react/components/breadcrumbs.js +44 -0
  20. package/dist/react/components/bulk-bar.d.ts +22 -0
  21. package/dist/react/components/bulk-bar.js +59 -0
  22. package/dist/react/components/button.d.ts +15 -0
  23. package/dist/react/components/button.js +20 -0
  24. package/dist/react/components/callout-and-hint.d.ts +17 -0
  25. package/dist/react/components/callout-and-hint.js +8 -0
  26. package/dist/react/components/checkbox.d.ts +5 -0
  27. package/dist/react/components/checkbox.js +13 -0
  28. package/dist/react/components/chip.d.ts +149 -0
  29. package/dist/react/components/chip.js +29 -0
  30. package/dist/react/components/code-block.d.ts +50 -0
  31. package/dist/react/components/code-block.js +77 -0
  32. package/dist/react/components/code-editor.d.ts +122 -0
  33. package/dist/react/components/code-editor.js +695 -0
  34. package/dist/react/components/column-manager.d.ts +28 -0
  35. package/dist/react/components/column-manager.js +85 -0
  36. package/dist/react/components/combobox.d.ts +32 -0
  37. package/dist/react/components/combobox.js +37 -0
  38. package/dist/react/components/data-grid.d.ts +108 -0
  39. package/dist/react/components/data-grid.js +159 -0
  40. package/dist/react/components/data-table.d.ts +2 -0
  41. package/dist/react/components/data-table.js +6 -0
  42. package/dist/react/components/date.d.ts +23 -0
  43. package/dist/react/components/date.js +11 -0
  44. package/dist/react/components/details.d.ts +13 -0
  45. package/dist/react/components/details.js +20 -0
  46. package/dist/react/components/dialog.d.ts +74 -0
  47. package/dist/react/components/dialog.js +31 -0
  48. package/dist/react/components/diff-view.d.ts +73 -0
  49. package/dist/react/components/diff-view.js +68 -0
  50. package/dist/react/components/documents.d.ts +70 -0
  51. package/dist/react/components/documents.js +10 -0
  52. package/dist/react/components/drawer.d.ts +45 -0
  53. package/dist/react/components/drawer.js +35 -0
  54. package/dist/react/components/editable-grid-cells.d.ts +32 -0
  55. package/dist/react/components/editable-grid-cells.js +116 -0
  56. package/dist/react/components/eyebrow-kicker-lede-pull-quote.d.ts +39 -0
  57. package/dist/react/components/eyebrow-kicker-lede-pull-quote.js +12 -0
  58. package/dist/react/components/field.d.ts +32 -0
  59. package/dist/react/components/field.js +27 -0
  60. package/dist/react/components/file-tree.d.ts +75 -0
  61. package/dist/react/components/file-tree.js +247 -0
  62. package/dist/react/components/file.d.ts +43 -0
  63. package/dist/react/components/file.js +73 -0
  64. package/dist/react/components/files-table.d.ts +174 -0
  65. package/dist/react/components/files-table.js +237 -0
  66. package/dist/react/components/filter-builder.d.ts +37 -0
  67. package/dist/react/components/filter-builder.js +109 -0
  68. package/dist/react/components/form-error-summary.d.ts +16 -0
  69. package/dist/react/components/form-error-summary.js +49 -0
  70. package/dist/react/components/icon-button.d.ts +8 -0
  71. package/dist/react/components/icon-button.js +14 -0
  72. package/dist/react/components/icon.d.ts +7 -0
  73. package/dist/react/components/icon.js +15 -0
  74. package/dist/react/components/image.d.ts +72 -0
  75. package/dist/react/components/image.js +24 -0
  76. package/dist/react/components/inline-edit.d.ts +70 -0
  77. package/dist/react/components/inline-edit.js +149 -0
  78. package/dist/react/components/input.d.ts +29 -0
  79. package/dist/react/components/input.js +20 -0
  80. package/dist/react/components/kanban-board.d.ts +140 -0
  81. package/dist/react/components/kanban-board.js +374 -0
  82. package/dist/react/components/layout.d.ts +51 -0
  83. package/dist/react/components/layout.js +28 -0
  84. package/dist/react/components/list.d.ts +28 -0
  85. package/dist/react/components/list.js +6 -0
  86. package/dist/react/components/masthead-and-verdict.d.ts +60 -0
  87. package/dist/react/components/masthead-and-verdict.js +8 -0
  88. package/dist/react/components/menu.d.ts +26 -0
  89. package/dist/react/components/menu.js +31 -0
  90. package/dist/react/components/multi-select-picker.d.ts +49 -0
  91. package/dist/react/components/multi-select-picker.js +20 -0
  92. package/dist/react/components/note.d.ts +33 -0
  93. package/dist/react/components/note.js +8 -0
  94. package/dist/react/components/number-field.d.ts +16 -0
  95. package/dist/react/components/number-field.js +17 -0
  96. package/dist/react/components/pagination.d.ts +45 -0
  97. package/dist/react/components/pagination.js +87 -0
  98. package/dist/react/components/persistent-action-banner.d.ts +71 -0
  99. package/dist/react/components/persistent-action-banner.js +39 -0
  100. package/dist/react/components/popconfirm.d.ts +42 -0
  101. package/dist/react/components/popconfirm.js +59 -0
  102. package/dist/react/components/popover.d.ts +16 -0
  103. package/dist/react/components/popover.js +21 -0
  104. package/dist/react/components/progress-and-gauge.d.ts +44 -0
  105. package/dist/react/components/progress-and-gauge.js +19 -0
  106. package/dist/react/components/radio.d.ts +7 -0
  107. package/dist/react/components/radio.js +13 -0
  108. package/dist/react/components/rich-text-toolbar.d.ts +26 -0
  109. package/dist/react/components/rich-text-toolbar.js +64 -0
  110. package/dist/react/components/rows-and-card.d.ts +88 -0
  111. package/dist/react/components/rows-and-card.js +10 -0
  112. package/dist/react/components/save-status-indicator.d.ts +11 -0
  113. package/dist/react/components/save-status-indicator.js +33 -0
  114. package/dist/react/components/segmented-control.d.ts +21 -0
  115. package/dist/react/components/segmented-control.js +15 -0
  116. package/dist/react/components/select.d.ts +29 -0
  117. package/dist/react/components/select.js +29 -0
  118. package/dist/react/components/selectable-cards.d.ts +30 -0
  119. package/dist/react/components/selectable-cards.js +29 -0
  120. package/dist/react/components/settings-rows.d.ts +51 -0
  121. package/dist/react/components/settings-rows.js +8 -0
  122. package/dist/react/components/sidebar-nav.d.ts +77 -0
  123. package/dist/react/components/sidebar-nav.js +41 -0
  124. package/dist/react/components/skeleton-and-empty.d.ts +51 -0
  125. package/dist/react/components/skeleton-and-empty.js +14 -0
  126. package/dist/react/components/slider.d.ts +19 -0
  127. package/dist/react/components/slider.js +17 -0
  128. package/dist/react/components/small-charts.d.ts +60 -0
  129. package/dist/react/components/small-charts.js +76 -0
  130. package/dist/react/components/sortable.d.ts +30 -0
  131. package/dist/react/components/sortable.js +85 -0
  132. package/dist/react/components/split-button.d.ts +38 -0
  133. package/dist/react/components/split-button.js +43 -0
  134. package/dist/react/components/split-panes.d.ts +35 -0
  135. package/dist/react/components/split-panes.js +102 -0
  136. package/dist/react/components/stat-tiles.d.ts +54 -0
  137. package/dist/react/components/stat-tiles.js +8 -0
  138. package/dist/react/components/steps.d.ts +11 -0
  139. package/dist/react/components/steps.js +13 -0
  140. package/dist/react/components/switch.d.ts +6 -0
  141. package/dist/react/components/switch.js +13 -0
  142. package/dist/react/components/table.d.ts +61 -0
  143. package/dist/react/components/table.js +6 -0
  144. package/dist/react/components/tabs.d.ts +7 -0
  145. package/dist/react/components/tabs.js +13 -0
  146. package/dist/react/components/tags.d.ts +33 -0
  147. package/dist/react/components/tags.js +83 -0
  148. package/dist/react/components/textarea.d.ts +10 -0
  149. package/dist/react/components/textarea.js +6 -0
  150. package/dist/react/components/toast.d.ts +35 -0
  151. package/dist/react/components/toast.js +90 -0
  152. package/dist/react/components/tooltip-and-key.d.ts +20 -0
  153. package/dist/react/components/tooltip-and-key.js +20 -0
  154. package/dist/react/components/tree-view.d.ts +34 -0
  155. package/dist/react/components/tree-view.js +118 -0
  156. package/dist/react/components/upload-dropzone.d.ts +92 -0
  157. package/dist/react/components/upload-dropzone.js +116 -0
  158. package/dist/react/components/wizard-shell.d.ts +78 -0
  159. package/dist/react/components/wizard-shell.js +176 -0
  160. package/dist/react/fonts.css.d.ts +1 -0
  161. package/dist/react/index.d.ts +76 -0
  162. package/dist/react/index.js +77 -0
  163. package/dist/react/integrations/quickcrop.d.ts +58 -0
  164. package/dist/react/integrations/quickcrop.js +137 -0
  165. package/dist/react/integrations/richclay.d.ts +43 -0
  166. package/dist/react/integrations/richclay.js +129 -0
  167. package/dist/react/internal/classes.d.ts +3 -0
  168. package/dist/react/internal/classes.js +10 -0
  169. package/dist/react/internal/close-mark.d.ts +1 -0
  170. package/dist/react/internal/close-mark.js +10 -0
  171. package/dist/react/internal/controllable-state.d.ts +9 -0
  172. package/dist/react/internal/controllable-state.js +22 -0
  173. package/dist/react/internal/drop-effect.d.ts +28 -0
  174. package/dist/react/internal/drop-effect.js +8 -0
  175. package/dist/react/internal/form-reset.d.ts +2 -0
  176. package/dist/react/internal/form-reset.js +22 -0
  177. package/dist/react/internal/format.d.ts +1 -0
  178. package/dist/react/internal/format.js +14 -0
  179. package/dist/react/internal/link.d.ts +2 -0
  180. package/dist/react/internal/link.js +8 -0
  181. package/dist/react/internal/part.d.ts +20 -0
  182. package/dist/react/internal/part.js +47 -0
  183. package/dist/react/internal/pointer-session.d.ts +8 -0
  184. package/dist/react/internal/pointer-session.js +60 -0
  185. package/dist/react/internal/refs.d.ts +2 -0
  186. package/dist/react/internal/refs.js +22 -0
  187. package/dist/react/internal/rich-text.d.ts +28 -0
  188. package/dist/react/internal/rich-text.js +4 -0
  189. package/dist/react/internal/table-context.d.ts +39 -0
  190. package/dist/react/internal/table-context.js +12 -0
  191. package/dist/react/internal/use-object-url.d.ts +1 -0
  192. package/dist/react/internal/use-object-url.js +15 -0
  193. package/dist/react/layout.css +274 -0
  194. package/dist/react/layout.css.d.ts +1 -0
  195. package/dist/react/models/filter.d.ts +31 -0
  196. package/dist/react/models/filter.js +79 -0
  197. package/dist/react/models/kanban.d.ts +51 -0
  198. package/dist/react/models/kanban.js +35 -0
  199. package/dist/react/models/reorder.d.ts +9 -0
  200. package/dist/react/models/reorder.js +23 -0
  201. package/dist/react/models/table.d.ts +85 -0
  202. package/dist/react/models/table.js +144 -0
  203. package/dist/react/models/tree.d.ts +16 -0
  204. package/dist/react/models/tree.js +26 -0
  205. package/dist/react/provider.d.ts +18 -0
  206. package/dist/react/provider.js +31 -0
  207. package/dist/react/recipes/context-hypercms.d.ts +17 -0
  208. package/dist/react/recipes/context-hypercms.js +71 -0
  209. package/dist/react/recipes/context-quickcrop.d.ts +8 -0
  210. package/dist/react/recipes/context-quickcrop.js +49 -0
  211. package/dist/react/theme.css +8004 -0
  212. package/dist/react/theme.css.d.ts +1 -0
  213. package/examples/README.md +34 -0
  214. package/examples/components/activity-feed.html +28 -0
  215. package/examples/components/app-shell.html +12 -0
  216. package/examples/components/app-toolbar.html +38 -0
  217. package/examples/components/avatar-group.html +27 -0
  218. package/examples/components/breadcrumbs.html +26 -0
  219. package/examples/components/bulk-bar.html +22 -0
  220. package/examples/components/code-block.html +12 -0
  221. package/examples/components/code-editor.html +25 -0
  222. package/examples/components/column-manager.html +9 -0
  223. package/examples/components/combobox.html +13 -0
  224. package/examples/components/context-hypercms.css +41 -0
  225. package/examples/components/context-hypercms.html +40 -0
  226. package/examples/components/context-hypercms.js +62 -0
  227. package/examples/components/context-quickcrop.html +137 -0
  228. package/examples/components/diff-view.html +9 -0
  229. package/examples/components/drawer.html +11 -0
  230. package/examples/components/editable-grid-cells.html +9 -0
  231. package/examples/components/file-browser.html +53 -0
  232. package/examples/components/file-tree.html +34 -0
  233. package/examples/components/files-table.html +80 -0
  234. package/examples/components/filter-builder.html +11 -0
  235. package/examples/components/form-error-summary.html +11 -0
  236. package/examples/components/index.html +51 -0
  237. package/examples/components/inline-edit.html +42 -0
  238. package/examples/components/kanban-board.html +42 -0
  239. package/examples/components/manifest.json +3279 -0
  240. package/examples/components/modal.html +11 -0
  241. package/examples/components/multi-select-picker.html +13 -0
  242. package/examples/components/pagination.html +32 -0
  243. package/examples/components/persistent-action-banner.html +23 -0
  244. package/examples/components/popconfirm.html +13 -0
  245. package/examples/components/popover-menu.html +13 -0
  246. package/examples/components/reference/baseline/DECISIONS.md +85 -0
  247. package/examples/components/reference/baseline/README.md +58 -0
  248. package/examples/components/reference/baseline/bevel-fonts.css +16 -0
  249. package/examples/components/reference/baseline/bevel.css +1339 -0
  250. package/examples/components/reference/baseline/bevel.js +496 -0
  251. package/examples/components/reference/baseline/fonts/LICENSE-ibm-plex-mono.txt +93 -0
  252. package/examples/components/reference/baseline/fonts/LICENSE-ibm-plex-sans.txt +93 -0
  253. package/examples/components/reference/baseline/fonts/LICENSE-newsreader.txt +93 -0
  254. package/examples/components/reference/baseline/fonts/ibm-plex-mono-latin-400-normal.woff2 +0 -0
  255. package/examples/components/reference/baseline/fonts/ibm-plex-mono-latin-500-normal.woff2 +0 -0
  256. package/examples/components/reference/baseline/fonts/ibm-plex-mono-latin-600-normal.woff2 +0 -0
  257. package/examples/components/reference/baseline/fonts/ibm-plex-sans-latin-400-italic.woff2 +0 -0
  258. package/examples/components/reference/baseline/fonts/ibm-plex-sans-latin-400-normal.woff2 +0 -0
  259. package/examples/components/reference/baseline/fonts/ibm-plex-sans-latin-500-normal.woff2 +0 -0
  260. package/examples/components/reference/baseline/fonts/ibm-plex-sans-latin-600-normal.woff2 +0 -0
  261. package/examples/components/reference/baseline/fonts/newsreader-latin-opsz-italic.woff2 +0 -0
  262. package/examples/components/reference/baseline/fonts/newsreader-latin-opsz-normal.woff2 +0 -0
  263. package/examples/components/reference/fable/IMPROVEMENTS.md +106 -0
  264. package/examples/components/reference/fable/PARENT-REPAIRS.md +17 -0
  265. package/examples/components/reference/fable/__pycache__/build_repairs.cpython-311.pyc +0 -0
  266. package/examples/components/reference/fable/__pycache__/kanban.cpython-311.pyc +0 -0
  267. package/examples/components/reference/fable/as-authored/IMPROVEMENTS-completed.md +106 -0
  268. package/examples/components/reference/fable/as-authored/base-astra.css +17 -0
  269. package/examples/components/reference/fable/as-authored/base-parent.css +416 -0
  270. package/examples/components/reference/fable/as-authored/build.py +858 -0
  271. package/examples/components/reference/fable/as-authored/fable.css +823 -0
  272. package/examples/components/reference/fable/as-authored/kanban-completed.css +235 -0
  273. package/examples/components/reference/fable/as-authored/kanban-completed.html +53 -0
  274. package/examples/components/reference/fable/as-authored/kanban-completed.py +212 -0
  275. package/examples/components/reference/fable/as-authored/kanban.py +207 -0
  276. package/examples/components/reference/fable/base-astra.css +17 -0
  277. package/examples/components/reference/fable/base-parent.css +416 -0
  278. package/examples/components/reference/fable/build.py +858 -0
  279. package/examples/components/reference/fable/build_repairs.py +25 -0
  280. package/examples/components/reference/fable/components/activity-feed.html +3 -0
  281. package/examples/components/reference/fable/components/app-toolbar.html +3 -0
  282. package/examples/components/reference/fable/components/avatar-group.html +4 -0
  283. package/examples/components/reference/fable/components/breadcrumbs.html +3 -0
  284. package/examples/components/reference/fable/components/code-block.html +9 -0
  285. package/examples/components/reference/fable/components/column-manager.html +3 -0
  286. package/examples/components/reference/fable/components/combobox.html +6 -0
  287. package/examples/components/reference/fable/components/context-hypercms.html +3 -0
  288. package/examples/components/reference/fable/components/context-quickcrop.html +4 -0
  289. package/examples/components/reference/fable/components/diff-view.html +13 -0
  290. package/examples/components/reference/fable/components/drawer.html +3 -0
  291. package/examples/components/reference/fable/components/editable-grid-cells.html +3 -0
  292. package/examples/components/reference/fable/components/filter-builder.html +3 -0
  293. package/examples/components/reference/fable/components/form-error-summary.html +4 -0
  294. package/examples/components/reference/fable/components/inline-edit.html +3 -0
  295. package/examples/components/reference/fable/components/kanban-board.html +53 -0
  296. package/examples/components/reference/fable/components/modal.html +3 -0
  297. package/examples/components/reference/fable/components/multi-select-picker.html +5 -0
  298. package/examples/components/reference/fable/components/pagination.html +3 -0
  299. package/examples/components/reference/fable/components/persistent-action-banner.html +4 -0
  300. package/examples/components/reference/fable/components/popconfirm.html +5 -0
  301. package/examples/components/reference/fable/components/popover-menu.html +3 -0
  302. package/examples/components/reference/fable/components/rich-text-toolbar.html +3 -0
  303. package/examples/components/reference/fable/components/save-status-indicator.html +2 -0
  304. package/examples/components/reference/fable/components/selectable-cards.html +3 -0
  305. package/examples/components/reference/fable/components/settings-rows.html +3 -0
  306. package/examples/components/reference/fable/components/sidebar-nav.html +4 -0
  307. package/examples/components/reference/fable/components/small-charts.html +5 -0
  308. package/examples/components/reference/fable/components/split-button.html +4 -0
  309. package/examples/components/reference/fable/components/split-panes.html +8 -0
  310. package/examples/components/reference/fable/components/stat-tiles.html +3 -0
  311. package/examples/components/reference/fable/components/toast-stack.html +5 -0
  312. package/examples/components/reference/fable/components/tree-view.html +4 -0
  313. package/examples/components/reference/fable/components/upload-dropzone.html +6 -0
  314. package/examples/components/reference/fable/components/wizard-shell.html +3 -0
  315. package/examples/components/reference/fable/coverage.json +414 -0
  316. package/examples/components/reference/fable/fable.css +823 -0
  317. package/examples/components/reference/fable/index.html +5 -0
  318. package/examples/components/reference/fable/kanban.css +237 -0
  319. package/examples/components/reference/fable/kanban.py +212 -0
  320. package/examples/components/reference/fable/parent-repairs.css +9 -0
  321. package/examples/components/reference/fixtures/data.json +102 -0
  322. package/examples/components/reference/fixtures/host.js +47 -0
  323. package/examples/components/reference/fixtures/static-host.js +39 -0
  324. package/examples/components/reference/fixtures/workspace.jpg +0 -0
  325. package/examples/components/reference/parent/CHANGES.md +179 -0
  326. package/examples/components/reference/parent/__pycache__/kanban.cpython-311.pyc +0 -0
  327. package/examples/components/reference/parent/base-astra.css +17 -0
  328. package/examples/components/reference/parent/base-parent.css +416 -0
  329. package/examples/components/reference/parent/build.py +148 -0
  330. package/examples/components/reference/parent/components/activity-feed.html +2 -0
  331. package/examples/components/reference/parent/components/app-toolbar.html +2 -0
  332. package/examples/components/reference/parent/components/avatar-group.html +4 -0
  333. package/examples/components/reference/parent/components/breadcrumbs.html +2 -0
  334. package/examples/components/reference/parent/components/code-block.html +8 -0
  335. package/examples/components/reference/parent/components/column-manager.html +2 -0
  336. package/examples/components/reference/parent/components/combobox.html +6 -0
  337. package/examples/components/reference/parent/components/context-hypercms.html +2 -0
  338. package/examples/components/reference/parent/components/context-quickcrop.html +4 -0
  339. package/examples/components/reference/parent/components/diff-view.html +4 -0
  340. package/examples/components/reference/parent/components/drawer.html +2 -0
  341. package/examples/components/reference/parent/components/editable-grid-cells.html +2 -0
  342. package/examples/components/reference/parent/components/filter-builder.html +2 -0
  343. package/examples/components/reference/parent/components/form-error-summary.html +2 -0
  344. package/examples/components/reference/parent/components/inline-edit.html +2 -0
  345. package/examples/components/reference/parent/components/kanban-board.html +84 -0
  346. package/examples/components/reference/parent/components/modal.html +2 -0
  347. package/examples/components/reference/parent/components/multi-select-picker.html +5 -0
  348. package/examples/components/reference/parent/components/pagination.html +2 -0
  349. package/examples/components/reference/parent/components/persistent-action-banner.html +4 -0
  350. package/examples/components/reference/parent/components/popconfirm.html +5 -0
  351. package/examples/components/reference/parent/components/popover-menu.html +2 -0
  352. package/examples/components/reference/parent/components/rich-text-toolbar.html +2 -0
  353. package/examples/components/reference/parent/components/save-status-indicator.html +2 -0
  354. package/examples/components/reference/parent/components/selectable-cards.html +2 -0
  355. package/examples/components/reference/parent/components/settings-rows.html +2 -0
  356. package/examples/components/reference/parent/components/sidebar-nav.html +4 -0
  357. package/examples/components/reference/parent/components/small-charts.html +2 -0
  358. package/examples/components/reference/parent/components/split-button.html +5 -0
  359. package/examples/components/reference/parent/components/split-panes.html +8 -0
  360. package/examples/components/reference/parent/components/stat-tiles.html +2 -0
  361. package/examples/components/reference/parent/components/toast-stack.html +5 -0
  362. package/examples/components/reference/parent/components/tree-view.html +4 -0
  363. package/examples/components/reference/parent/components/upload-dropzone.html +6 -0
  364. package/examples/components/reference/parent/components/wizard-shell.html +2 -0
  365. package/examples/components/reference/parent/coverage.json +414 -0
  366. package/examples/components/reference/parent/index.html +1 -0
  367. package/examples/components/reference/parent/kanban.css +114 -0
  368. package/examples/components/reference/parent/kanban.py +55 -0
  369. package/examples/components/reference/parent/refinement.css +53 -0
  370. package/examples/components/reference/selected/build.py +70 -0
  371. package/examples/components/reference/selected/components/activity-feed.html +3 -0
  372. package/examples/components/reference/selected/components/app-toolbar.html +3 -0
  373. package/examples/components/reference/selected/components/avatar-group.html +4 -0
  374. package/examples/components/reference/selected/components/breadcrumbs.html +3 -0
  375. package/examples/components/reference/selected/components/code-block.html +9 -0
  376. package/examples/components/reference/selected/components/column-manager.html +3 -0
  377. package/examples/components/reference/selected/components/combobox.html +6 -0
  378. package/examples/components/reference/selected/components/context-hypercms.html +3 -0
  379. package/examples/components/reference/selected/components/context-quickcrop.html +4 -0
  380. package/examples/components/reference/selected/components/diff-view.html +13 -0
  381. package/examples/components/reference/selected/components/drawer.html +3 -0
  382. package/examples/components/reference/selected/components/editable-grid-cells.html +3 -0
  383. package/examples/components/reference/selected/components/filter-builder.html +3 -0
  384. package/examples/components/reference/selected/components/form-error-summary.html +4 -0
  385. package/examples/components/reference/selected/components/inline-edit.html +3 -0
  386. package/examples/components/reference/selected/components/kanban-board.html +53 -0
  387. package/examples/components/reference/selected/components/modal.html +2 -0
  388. package/examples/components/reference/selected/components/multi-select-picker.html +5 -0
  389. package/examples/components/reference/selected/components/pagination.html +3 -0
  390. package/examples/components/reference/selected/components/persistent-action-banner.html +4 -0
  391. package/examples/components/reference/selected/components/popconfirm.html +5 -0
  392. package/examples/components/reference/selected/components/popover-menu.html +3 -0
  393. package/examples/components/reference/selected/components/rich-text-toolbar.html +3 -0
  394. package/examples/components/reference/selected/components/save-status-indicator.html +2 -0
  395. package/examples/components/reference/selected/components/selectable-cards.html +3 -0
  396. package/examples/components/reference/selected/components/settings-rows.html +3 -0
  397. package/examples/components/reference/selected/components/sidebar-nav.html +4 -0
  398. package/examples/components/reference/selected/components/small-charts.html +5 -0
  399. package/examples/components/reference/selected/components/split-button.html +4 -0
  400. package/examples/components/reference/selected/components/split-panes.html +8 -0
  401. package/examples/components/reference/selected/components/stat-tiles.html +3 -0
  402. package/examples/components/reference/selected/components/toast-stack.html +5 -0
  403. package/examples/components/reference/selected/components/tree-view.html +4 -0
  404. package/examples/components/reference/selected/components/upload-dropzone.html +6 -0
  405. package/examples/components/reference/selected/components/wizard-shell.html +3 -0
  406. package/examples/components/reference/selected/corrections.css +11 -0
  407. package/examples/components/reference/selected/coverage.json +413 -0
  408. package/examples/components/reference/selected/gallery-build.mjs +49 -0
  409. package/examples/components/reference/selected/gallery-spec.json +12 -0
  410. package/examples/components/reference/selected/index.html +1 -0
  411. package/examples/components/reference/selected/kanban-comparison.json +6 -0
  412. package/examples/components/reference/selected/manifest.json +476 -0
  413. package/examples/components/reference/sha256.json +142 -0
  414. package/examples/components/reference/sources/diagonal-close.svg +1 -0
  415. package/examples/components/reference/sources/hyperclay/public-assets/css/hyperclay-app-source.css +614 -0
  416. package/examples/components/reference/sources/hyperclay/public-assets/js/app.js +94 -0
  417. package/examples/components/reference/sources/hyperclayjs/src/ui/theModal.js +897 -0
  418. package/examples/components/reference/sources/hypercms/scripts/build-theme.js +203 -0
  419. package/examples/components/reference/sources/hypercms/src/anchor.js +24 -0
  420. package/examples/components/reference/sources/hypercms/src/apply-loop.js +167 -0
  421. package/examples/components/reference/sources/hypercms/src/diagnostics.js +44 -0
  422. package/examples/components/reference/sources/hypercms/src/enhance.js +173 -0
  423. package/examples/components/reference/sources/hypercms/src/events.js +955 -0
  424. package/examples/components/reference/sources/hypercms/src/form-builder.js +518 -0
  425. package/examples/components/reference/sources/hypercms/src/form-rules.js +208 -0
  426. package/examples/components/reference/sources/hypercms/src/hooks.js +100 -0
  427. package/examples/components/reference/sources/hypercms/src/hypercms-bundle.js +10 -0
  428. package/examples/components/reference/sources/hypercms/src/hypercms.js +347 -0
  429. package/examples/components/reference/sources/hypercms/src/morph.js +10 -0
  430. package/examples/components/reference/sources/hypercms/src/path.js +61 -0
  431. package/examples/components/reference/sources/hypercms/src/place.js +131 -0
  432. package/examples/components/reference/sources/hypercms/src/platform.js +131 -0
  433. package/examples/components/reference/sources/hypercms/src/refresh.js +87 -0
  434. package/examples/components/reference/sources/hypercms/src/richclay-bridge.js +140 -0
  435. package/examples/components/reference/sources/hypercms/src/row-identity.js +111 -0
  436. package/examples/components/reference/sources/hypercms/src/scaffold.js +10 -0
  437. package/examples/components/reference/sources/hypercms/src/session.js +303 -0
  438. package/examples/components/reference/sources/hypercms/src/shell.js +248 -0
  439. package/examples/components/reference/sources/hypercms/src/styles.css +298 -0
  440. package/examples/components/reference/sources/hypercms/src/targets.js +144 -0
  441. package/examples/components/reference/sources/hypercms/src/templates.js +656 -0
  442. package/examples/components/reference/sources/hypercms/src/theme/pixel-quiet.overrides.css +761 -0
  443. package/examples/components/reference/sources/hypercms/src/theme.generated.css +1772 -0
  444. package/examples/components/reference/sources/hypercms/src/toggle.js +666 -0
  445. package/examples/components/reference/sources/hypercms/src/unresolved.js +211 -0
  446. package/examples/components/reference/sources/hypercms/src/vendor/mirk.vendor.js +212 -0
  447. package/examples/components/reference/sources/hypercms/src/views/inline-layer.js +421 -0
  448. package/examples/components/reference/sources/hypercms/src/views/inline.js +1072 -0
  449. package/examples/components/reference/sources/hypercms/src/views/sidebar.js +97 -0
  450. package/examples/components/reference/sources/modal-reference.html +301 -0
  451. package/examples/components/reference/sources/quickcrop/quickcrop.css +124 -0
  452. package/examples/components/reference/sources/quickcrop/quickcrop.js +400 -0
  453. package/examples/components/reference/sources/richclay/richclay.css +416 -0
  454. package/examples/components/reference/sources/richclay/richclay.js +2962 -0
  455. package/examples/components/reference/sources/richclay/src/a11y.js +67 -0
  456. package/examples/components/reference/sources/richclay/src/browser-global.js +7 -0
  457. package/examples/components/reference/sources/richclay/src/buttons.js +254 -0
  458. package/examples/components/reference/sources/richclay/src/hyperclay.js +470 -0
  459. package/examples/components/reference/sources/richclay/src/normalize.js +380 -0
  460. package/examples/components/reference/sources/richclay/src/richclay.js +1356 -0
  461. package/examples/components/reference/sources/richclay/src/sanitize.js +189 -0
  462. package/examples/components/reference/sources/richclay/src/styles.js +23 -0
  463. package/examples/components/reference/sources/richclay/src/toolbar-float.js +175 -0
  464. package/examples/components/reference/sources/richclay/src/toolbar.js +394 -0
  465. package/examples/components/reference/sources/richclay/src/vendor-bundle.js +15 -0
  466. package/examples/components/reference/sources/richclay/vendor/DOMPURIFY-LICENSE +202 -0
  467. package/examples/components/reference/sources/richclay/vendor/DOMPURIFY-LICENSE-MPL +373 -0
  468. package/examples/components/reference/sources/richclay/vendor/SQUIRE-LICENSE +21 -0
  469. package/examples/components/reference/sources/richclay/vendor/purify.es.mjs +2249 -0
  470. package/examples/components/reference/sources/richclay/vendor/purify.min.js +3 -0
  471. package/examples/components/reference/sources/richclay/vendor/squire.js +22 -0
  472. package/examples/components/reference/sources/richclay/vendor/squire.mjs +22 -0
  473. package/examples/components/reference/sources/richclay/vendor/squire.provenance.json +19 -0
  474. package/examples/components/rich-text-toolbar.html +43 -0
  475. package/examples/components/save-status-indicator.html +11 -0
  476. package/examples/components/selectable-cards.html +9 -0
  477. package/examples/components/settings-rows.html +10 -0
  478. package/examples/components/sidebar-nav.html +9 -0
  479. package/examples/components/small-charts.html +21 -0
  480. package/examples/components/split-button.html +13 -0
  481. package/examples/components/split-panes-editor.html +6 -0
  482. package/examples/components/split-panes.html +9 -0
  483. package/examples/components/stat-tiles.html +23 -0
  484. package/examples/components/toast-stack.html +21 -0
  485. package/examples/components/tree-view.html +9 -0
  486. package/examples/components/upload-dropzone.html +88 -0
  487. package/examples/components/wizard-shell.html +50 -0
  488. package/examples/datastar/index.html +38 -0
  489. package/examples/datastar/server.mjs +31 -0
  490. package/examples/fixtures/field-guide.pdf +14 -0
  491. package/examples/fixtures/workspace.jpg +0 -0
  492. package/examples/setup-peers.mjs +35 -0
  493. package/fonts/LICENSE-ibm-plex-mono.txt +93 -0
  494. package/fonts/LICENSE-ibm-plex-sans.txt +93 -0
  495. package/fonts/LICENSE-newsreader.txt +93 -0
  496. package/fonts/ibm-plex-mono-latin-400-normal.woff2 +0 -0
  497. package/fonts/ibm-plex-mono-latin-500-normal.woff2 +0 -0
  498. package/fonts/ibm-plex-mono-latin-600-normal.woff2 +0 -0
  499. package/fonts/ibm-plex-sans-latin-400-italic.woff2 +0 -0
  500. package/fonts/ibm-plex-sans-latin-400-normal.woff2 +0 -0
  501. package/fonts/ibm-plex-sans-latin-500-normal.woff2 +0 -0
  502. package/fonts/ibm-plex-sans-latin-600-normal.woff2 +0 -0
  503. package/fonts/newsreader-latin-opsz-italic.woff2 +0 -0
  504. package/fonts/newsreader-latin-opsz-normal.woff2 +0 -0
  505. package/icons/LICENSE +21 -0
  506. package/icons/house.json +71 -0
  507. package/icons/icons.d.ts +17 -0
  508. package/icons/icons.js +648 -0
  509. package/icons/icons.svg +126 -0
  510. package/icons/marks/build-tray.source.mjs +45 -0
  511. package/icons/marks/hyperclay-local.svg +11 -0
  512. package/icons/phosphor.json +53 -0
  513. package/icons/round.json +8 -0
  514. package/integrations/datastar.js +202 -0
  515. package/integrations/quickcrop.css +26 -0
  516. package/integrations/quickcrop.js +56 -0
  517. package/integrations/richclay.css +100 -0
  518. package/integrations/richclay.js +131 -0
  519. package/package.json +630 -0
  520. package/react/README.md +244 -0
  521. package/src/README.md +83 -0
  522. package/vendor/datastar/datastar-1.0.3.js +10 -0
  523. package/vendor/datastar/provenance.json +6 -0
  524. package/vendor/floating-ui/LICENSE-core +20 -0
  525. package/vendor/floating-ui/LICENSE-dom +20 -0
  526. package/vendor/floating-ui/floating-ui.core.umd.min.js +1 -0
  527. package/vendor/floating-ui/floating-ui.dom.umd.min.js +1 -0
  528. package/vendor/floating-ui/provenance.json +17 -0
  529. package/vendor/richclay/LICENSE +16 -0
  530. package/vendor/richclay/THIRD-PARTY-NOTICES.md +45 -0
  531. package/vendor/richclay/provenance.json +17 -0
  532. package/vendor/richclay/richclay.css +404 -0
  533. package/vendor/richclay/richclay.js +2940 -0
  534. package/vendor/richclay/vendor/DOMPURIFY-LICENSE +202 -0
  535. package/vendor/richclay/vendor/DOMPURIFY-LICENSE-MPL +373 -0
  536. package/vendor/richclay/vendor/SQUIRE-LICENSE +21 -0
  537. package/vendor/richclay/vendor/purify.min.js +3 -0
  538. package/vendor/richclay/vendor/squire.js +22 -0
  539. package/vendor/richclay/vendor/squire.provenance.json +30 -0
@@ -0,0 +1,42 @@
1
+ <!doctype html>
2
+ <html class="light" lang="en">
3
+ <head><meta charset="utf-8"/><meta content="width=device-width,initial-scale=1" name="viewport"/><title>Kanban board · Bevel</title><link href="../../bevel-fonts.css" rel="stylesheet"/><link href="../../bevel.css" rel="stylesheet"/></head>
4
+ <body>
5
+ <main class="bevel-kanban" data-bevel-data-mode="local" data-bevel-selected="FN-104" data-bevel-today="2026-09-08" data-state="selected">
6
+ <header class="bevel-kanban__mast"><div class="bevel-kanban__mast-title"><div class="bevel-kanban__kicker">Northstar Studio<i>/</i>Project 004<i>/</i>Board</div><h1>Field notes</h1><p>Everything the studio is making for the field guide, in the order it will ship.</p></div>
7
+ <div class="bevel-kanban__mast-side"><div class="bevel-kanban__team"><span class="bevel-kanban__people"><span aria-label="Mira Chen" class="bevel-avatar" data-who="MC" title="Mira Chen">MC</span><span aria-label="Alex Rivera" class="bevel-avatar" data-who="AR" title="Alex Rivera">AR</span><span aria-label="Sam Patel" class="bevel-avatar" data-who="SP" title="Sam Patel">SP</span><span aria-label="Jules Park" class="bevel-avatar" data-who="JP" title="Jules Park">JP</span></span><small>4 people</small></div><button class="bevel-button" data-bevel-action="share" type="button"><svg aria-hidden="true" height="15" width="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="square" stroke-linejoin="miter"><path d="M12 3v12m-4-8 4-4 4 4M5 14v6h14v-6"/></svg><span class="bevel-button__label">Share</span></button><button class="bevel-button bevel-button--primary" data-bevel-column="backlog" data-bevel-kanban-create="" type="button"><svg aria-hidden="true" height="15" width="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="square" stroke-linejoin="miter"><path d="M12 5v14M5 12h14"/></svg><span class="bevel-button__label">New task</span></button></div></header>
8
+ <nav aria-label="Views" class="bevel-kanban__views"><a aria-current="page" href="#board"><svg aria-hidden="true" height="15" width="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="square" stroke-linejoin="miter"><path d="M3 4h5v16H3ZM10 4h5v11h-5ZM17 4h4v7h-4Z"/></svg>Board<b data-bevel-kanban-total="">11</b></a><a data-bevel-action="view-list" href="#list"><svg aria-hidden="true" height="15" width="15" viewBox="0 0 256 256" fill="currentColor"><path d="M80,64a8,8,0,0,1,8-8H216a8,8,0,0,1,0,16H88A8,8,0,0,1,80,64Zm136,56H88a8,8,0,0,0,0,16H216a8,8,0,0,0,0-16Zm0,64H88a8,8,0,0,0,0,16H216a8,8,0,0,0,0-16ZM44,52A12,12,0,1,0,56,64,12,12,0,0,0,44,52Zm0,64a12,12,0,1,0,12,12A12,12,0,0,0,44,116Zm0,64a12,12,0,1,0,12,12A12,12,0,0,0,44,180Z"/></svg>List</a><a data-bevel-action="view-timeline" href="#timeline"><svg aria-hidden="true" height="15" width="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="square" stroke-linejoin="miter"><path d="M4 3v18M4 5h11v4.5H4M4 9.5h16V14H4M4 14h8v4.5H4"/></svg>Timeline</a><a data-bevel-action="view-calendar" href="#calendar"><svg aria-hidden="true" height="15" width="15" viewBox="0 0 256 256" fill="currentColor"><path d="M208,32H184V24a8,8,0,0,0-16,0v8H88V24a8,8,0,0,0-16,0v8H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM72,48v8a8,8,0,0,0,16,0V48h80v8a8,8,0,0,0,16,0V48h24V80H48V48ZM208,208H48V96H208V208Z"/></svg>Calendar</a><span class="bevel-kanban__views-note"><svg aria-hidden="true" height="12" width="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="square" stroke-linejoin="miter"><path d="M6 11h12v10H6ZM8 11V7a4 4 0 0 1 8 0v4"/></svg>Private · updated 10:42</span></nav>
9
+ <div class="bevel-kanban__tools"><label class="bevel-kanban__search"><svg aria-hidden="true" height="15" width="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="square" stroke-linejoin="miter"><path d="M20 20l-4.5-4.5M17 10a7 7 0 1 1-14 0 7 7 0 0 1 14 0"/></svg><input aria-label="Search tasks" placeholder="Search tasks" type="search"/><kbd>⌘ K</kbd></label><button aria-controls="kanban-due-filter" aria-expanded="false" class="bevel-kanban__chip" data-bevel-open="kanban-due-filter" type="button"><svg aria-hidden="true" height="13" width="13" viewBox="0 0 256 256" fill="currentColor"><path d="M208,32H184V24a8,8,0,0,0-16,0v8H88V24a8,8,0,0,0-16,0v8H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM72,48v8a8,8,0,0,0,16,0V48h80v8a8,8,0,0,0,16,0V48h24V80H48V48ZM208,208H48V96H208V208Z"/></svg><span data-bevel-kanban-due-label="">Due: any time</span><svg aria-hidden="true" height="12" width="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="square" stroke-linejoin="miter"><path d="m5 9 7 7 7-7"/></svg></button><label class="bevel-kanban__chip">Assignee: <select aria-label="Filter assignee" data-bevel-kanban-filter="assignee"><option value="">anyone</option><option value="MC">Mira Chen</option><option value="AR">Alex Rivera</option><option value="SP">Sam Patel</option><option value="JP">Jules Park</option></select></label><label class="bevel-kanban__chip">Label: <select aria-label="Filter label" data-bevel-kanban-filter="label"><option value="">all</option><option value="design">Design</option><option value="editorial">Editorial</option><option value="engineering">Engineering</option><option value="launch">Launch</option><option value="studio">Studio</option></select></label><label class="bevel-kanban__chip">Priority: <select aria-label="Filter priority" data-bevel-kanban-filter="priority"><option value="">all</option><option value="low">Low</option><option value="normal">Normal</option><option value="high">High</option><option value="urgent">Urgent</option></select></label><span class="bevel-kanban__spacer"></span><button class="bevel-kanban__chip bevel-kanban__chip-quiet" data-bevel-action="board-settings" type="button"><svg aria-hidden="true" height="13" width="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.85" stroke-linecap="square" stroke-linejoin="miter"><path d="M3 3h7v7H3ZM14 3h7v7h-7ZM3 14h7v7H3ZM14 14h7v7h-7Z"/></svg>Group: status</button><span class="bevel-kanban__chip bevel-kanban__chip-quiet"><svg aria-hidden="true" height="13" width="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.85" stroke-linecap="square" stroke-linejoin="miter"><path d="M4 6h16M7 12h10M10 18h4"/></svg>Order: manual</span></div><p class="bevel-kanban__empty-note" data-bevel-kanban-zero="" hidden="" role="status">No tasks match these filters.</p>
10
+ <dl class="bevel-kanban__tape"><div><dt>Open</dt><dd><span data-bevel-kanban-open="">9</span></dd></div><div><dt>In progress</dt><dd><span data-bevel-kanban-working="">3</span><small data-bevel-kanban-limit="">of 3</small></dd></div><div><dt>Blocked</dt><dd data-tone="ox"><span data-bevel-kanban-blocked="">1</span></dd></div><div><dt>Done</dt><dd><span data-bevel-kanban-done="">2</span></dd></div><div class="bevel-kanban__tape-meter"><dt>Progress</dt><dd><i class="bevel-kanban__check-bar"><b data-bevel-kanban-meter="" style="width:18%"></b></i><span data-bevel-kanban-progress="">18%</span></dd></div></dl>
11
+ <div class="bevel-kanban__work bevel-kanban--has-panel"><div class="bevel-kanban__board-wrap"><div aria-label="Board lanes" class="bevel-kanban__board" tabindex="0"><section aria-label="Backlog" class="bevel-kanban__column" data-bevel-column-key="backlog"><header class="bevel-kanban__column-head"><span class="bevel-kanban__column-mark" data-bevel-column-key="backlog"></span><h2>Backlog</h2><span class="bevel-kanban__count">3</span><button aria-label="Add a task to Backlog" class="bevel-kanban__icon" data-bevel-kanban-create="" type="button"><svg aria-hidden="true" height="15" width="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="square" stroke-linejoin="miter"><path d="M12 5v14M5 12h14"/></svg></button></header><div class="bevel-kanban__list"><p class="bevel-kanban__column-empty" data-bevel-kanban-column-empty="" hidden="">No tasks in this lane.</p><article class="bevel-kanban__card" data-bevel-assignee="SP" data-bevel-due="2026-09-19" data-bevel-key="FN-109" data-bevel-priority="normal" tabindex="0"><div class="bevel-kanban__card-top"><span class="bevel-kanban__id">FN-109</span><span class="bevel-kanban__priority" data-bevel-priority="normal"><svg aria-hidden="true" height="11" width="11" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.18" stroke-linecap="square" stroke-linejoin="miter"><path d="M5 21V4h13l-3 4 3 4H5"/></svg>Normal</span></div><h3 class="bevel-kanban__title">Archive the 2025 field notes</h3><p class="bevel-kanban__description bevel-kanban__desc" hidden=""></p><div class="bevel-kanban__labels"><span class="bevel-kanban__label" data-bevel-label="editorial">Editorial</span></div><footer class="bevel-kanban__card-foot"><span class="bevel-kanban__due" data-bevel-due=""><svg aria-hidden="true" height="12" width="12" viewBox="0 0 256 256" fill="currentColor"><path d="M208,32H184V24a8,8,0,0,0-16,0v8H88V24a8,8,0,0,0-16,0v8H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM72,48v8a8,8,0,0,0,16,0V48h80v8a8,8,0,0,0,16,0V48h24V80H48V48ZM208,208H48V96H208V208Z"/></svg>Sep 19</span><span class="bevel-kanban__meta"></span><span class="bevel-kanban__people"><span aria-label="Sam Patel" class="bevel-avatar bevel-avatar--small" data-who="SP" title="Sam Patel">SP</span></span></footer></article><article class="bevel-kanban__card" data-bevel-assignee="AR" data-bevel-due="2026-09-24" data-bevel-key="FN-110" data-bevel-priority="normal" tabindex="0"><div class="bevel-kanban__card-top"><span class="bevel-kanban__id">FN-110</span><span class="bevel-kanban__priority" data-bevel-priority="normal"><svg aria-hidden="true" height="11" width="11" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.18" stroke-linecap="square" stroke-linejoin="miter"><path d="M5 21V4h13l-3 4 3 4H5"/></svg>Normal</span></div><h3 class="bevel-kanban__title">Print-ready export for the field guide</h3><p class="bevel-kanban__description bevel-kanban__desc" hidden=""></p><div class="bevel-kanban__labels"><span class="bevel-kanban__label" data-bevel-label="engineering">Engineering</span></div><div aria-label="Checklist 0 of 3" class="bevel-kanban__check"><i class="bevel-kanban__check-bar"><b style="width:0%"></b></i><span class="bevel-kanban__check-count">0/3</span></div><footer class="bevel-kanban__card-foot"><span class="bevel-kanban__due" data-bevel-due=""><svg aria-hidden="true" height="12" width="12" viewBox="0 0 256 256" fill="currentColor"><path d="M208,32H184V24a8,8,0,0,0-16,0v8H88V24a8,8,0,0,0-16,0v8H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM72,48v8a8,8,0,0,0,16,0V48h80v8a8,8,0,0,0,16,0V48h24V80H48V48ZM208,208H48V96H208V208Z"/></svg>Sep 24</span><span class="bevel-kanban__meta"><span><svg aria-hidden="true" height="12" width="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="square" stroke-linejoin="miter"><path d="M4 4h16v12H9l-5 4V4Z"/></svg>1</span></span><span class="bevel-kanban__people"><span aria-label="Alex Rivera" class="bevel-avatar bevel-avatar--small" data-who="AR" title="Alex Rivera">AR</span></span></footer><div class="bevel-kanban__checklist-data" hidden=""><label><input data-bevel-check-key="step-1" type="checkbox"/>Draft the change</label><label><input data-bevel-check-key="step-2" type="checkbox"/>Review the details</label><label><input data-bevel-check-key="step-3" type="checkbox"/>Check the result</label></div></article><article class="bevel-kanban__card" data-bevel-assignee="MC" data-bevel-due="2026-09-26" data-bevel-key="FN-111" data-bevel-priority="normal" tabindex="0"><div class="bevel-kanban__card-top"><span class="bevel-kanban__id">FN-111</span><span class="bevel-kanban__priority" data-bevel-priority="normal"><svg aria-hidden="true" height="11" width="11" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.18" stroke-linecap="square" stroke-linejoin="miter"><path d="M5 21V4h13l-3 4 3 4H5"/></svg>Normal</span></div><h3 class="bevel-kanban__title">Photograph the studio for the cover</h3><p class="bevel-kanban__description bevel-kanban__desc" hidden=""></p><div class="bevel-kanban__labels"><span class="bevel-kanban__label" data-bevel-label="design">Design</span></div><footer class="bevel-kanban__card-foot"><span class="bevel-kanban__due" data-bevel-due=""><svg aria-hidden="true" height="12" width="12" viewBox="0 0 256 256" fill="currentColor"><path d="M208,32H184V24a8,8,0,0,0-16,0v8H88V24a8,8,0,0,0-16,0v8H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM72,48v8a8,8,0,0,0,16,0V48h80v8a8,8,0,0,0,16,0V48h24V80H48V48ZM208,208H48V96H208V208Z"/></svg>Sep 26</span><span class="bevel-kanban__meta"><span><svg aria-hidden="true" height="12" width="12" viewBox="0 0 256 256" fill="currentColor"><path d="M209.66,122.34a8,8,0,0,1,0,11.32l-82.05,82a56,56,0,0,1-79.2-79.21L147.67,35.73a40,40,0,1,1,56.61,56.55L105,193A24,24,0,1,1,71,159L154.3,74.38A8,8,0,1,1,165.7,85.6L82.39,170.31a8,8,0,1,0,11.27,11.36L192.93,81A24,24,0,1,0,159,47L59.76,147.68a40,40,0,1,0,56.53,56.62l82.06-82A8,8,0,0,1,209.66,122.34Z"/></svg>1</span></span><span class="bevel-kanban__people"><span aria-label="Mira Chen" class="bevel-avatar bevel-avatar--small" data-who="MC" title="Mira Chen">MC</span></span></footer></article><button class="bevel-kanban__add" data-bevel-kanban-create="" type="button"><svg aria-hidden="true" height="13" width="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.85" stroke-linecap="square" stroke-linejoin="miter"><path d="M12 5v14M5 12h14"/></svg>Add task</button></div></section><section aria-label="Up next" class="bevel-kanban__column" data-bevel-column-key="next"><header class="bevel-kanban__column-head"><span class="bevel-kanban__column-mark" data-bevel-column-key="next"></span><h2>Up next</h2><span class="bevel-kanban__count">3</span><button aria-label="Add a task to Up next" class="bevel-kanban__icon" data-bevel-kanban-create="" type="button"><svg aria-hidden="true" height="15" width="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="square" stroke-linejoin="miter"><path d="M12 5v14M5 12h14"/></svg></button></header><div class="bevel-kanban__list"><p class="bevel-kanban__column-empty" data-bevel-kanban-column-empty="" hidden="">No tasks in this lane.</p><article class="bevel-kanban__card" data-bevel-assignee="SP" data-bevel-due="2026-09-10" data-bevel-key="FN-101" data-bevel-priority="high" tabindex="0"><div class="bevel-kanban__card-top"><span class="bevel-kanban__id">FN-101</span><span class="bevel-kanban__priority" data-bevel-priority="high"><svg aria-hidden="true" height="11" width="11" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.18" stroke-linecap="square" stroke-linejoin="miter"><path d="M5 21V4h13l-3 4 3 4H5"/></svg>High</span></div><h3 class="bevel-kanban__title">Turn research into a field guide</h3><p class="bevel-kanban__description bevel-kanban__desc">A useful home for what we learned in the interviews.</p><div class="bevel-kanban__labels"><span class="bevel-kanban__label" data-bevel-label="editorial">Editorial</span></div><div aria-label="Checklist 2 of 5" class="bevel-kanban__check"><i class="bevel-kanban__check-bar"><b style="width:40%"></b></i><span class="bevel-kanban__check-count">2/5</span></div><footer class="bevel-kanban__card-foot"><span class="bevel-kanban__due" data-bevel-due=""><svg aria-hidden="true" height="12" width="12" viewBox="0 0 256 256" fill="currentColor"><path d="M208,32H184V24a8,8,0,0,0-16,0v8H88V24a8,8,0,0,0-16,0v8H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM72,48v8a8,8,0,0,0,16,0V48h80v8a8,8,0,0,0,16,0V48h24V80H48V48ZM208,208H48V96H208V208Z"/></svg>Sep 10</span><span class="bevel-kanban__meta"><span><svg aria-hidden="true" height="12" width="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="square" stroke-linejoin="miter"><path d="M4 4h16v12H9l-5 4V4Z"/></svg>3</span><span><svg aria-hidden="true" height="12" width="12" viewBox="0 0 256 256" fill="currentColor"><path d="M209.66,122.34a8,8,0,0,1,0,11.32l-82.05,82a56,56,0,0,1-79.2-79.21L147.67,35.73a40,40,0,1,1,56.61,56.55L105,193A24,24,0,1,1,71,159L154.3,74.38A8,8,0,1,1,165.7,85.6L82.39,170.31a8,8,0,1,0,11.27,11.36L192.93,81A24,24,0,1,0,159,47L59.76,147.68a40,40,0,1,0,56.53,56.62l82.06-82A8,8,0,0,1,209.66,122.34Z"/></svg>2</span></span><span class="bevel-kanban__people"><span aria-label="Sam Patel" class="bevel-avatar bevel-avatar--small" data-who="SP" title="Sam Patel">SP</span></span></footer><div class="bevel-kanban__checklist-data" hidden=""><label><input checked="" data-bevel-check-key="step-1" type="checkbox"/>Draft the change</label><label><input checked="" data-bevel-check-key="step-2" type="checkbox"/>Review the details</label><label><input data-bevel-check-key="step-3" type="checkbox"/>Check the result</label><label><input data-bevel-check-key="step-4" type="checkbox"/>Approve the final version</label><label><input data-bevel-check-key="step-5" type="checkbox"/>Prepare delivery</label></div></article><article class="bevel-kanban__card" data-bevel-assignee="MC" data-bevel-due="2026-09-11" data-bevel-key="FN-102" data-bevel-priority="normal" tabindex="0"><figure class="bevel-kanban__cover"><img alt="The studio desk, a reference for the cover" src="../fixtures/workspace.jpg"/><figcaption>Cover reference</figcaption></figure><div class="bevel-kanban__card-top"><span class="bevel-kanban__id">FN-102</span><span class="bevel-kanban__priority" data-bevel-priority="normal"><svg aria-hidden="true" height="11" width="11" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.18" stroke-linecap="square" stroke-linejoin="miter"><path d="M5 21V4h13l-3 4 3 4H5"/></svg>Normal</span></div><h3 class="bevel-kanban__title">Shape the cover story</h3><p class="bevel-kanban__description bevel-kanban__desc" hidden=""></p><div class="bevel-kanban__labels"><span class="bevel-kanban__label" data-bevel-label="design">Design</span></div><footer class="bevel-kanban__card-foot"><span class="bevel-kanban__due" data-bevel-due=""><svg aria-hidden="true" height="12" width="12" viewBox="0 0 256 256" fill="currentColor"><path d="M208,32H184V24a8,8,0,0,0-16,0v8H88V24a8,8,0,0,0-16,0v8H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM72,48v8a8,8,0,0,0,16,0V48h80v8a8,8,0,0,0,16,0V48h24V80H48V48ZM208,208H48V96H208V208Z"/></svg>Sep 11</span><span class="bevel-kanban__meta"><span><svg aria-hidden="true" height="12" width="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="square" stroke-linejoin="miter"><path d="M4 4h16v12H9l-5 4V4Z"/></svg>2</span><span><svg aria-hidden="true" height="12" width="12" viewBox="0 0 256 256" fill="currentColor"><path d="M209.66,122.34a8,8,0,0,1,0,11.32l-82.05,82a56,56,0,0,1-79.2-79.21L147.67,35.73a40,40,0,1,1,56.61,56.55L105,193A24,24,0,1,1,71,159L154.3,74.38A8,8,0,1,1,165.7,85.6L82.39,170.31a8,8,0,1,0,11.27,11.36L192.93,81A24,24,0,1,0,159,47L59.76,147.68a40,40,0,1,0,56.53,56.62l82.06-82A8,8,0,0,1,209.66,122.34Z"/></svg>1</span></span><span class="bevel-kanban__people"><span aria-label="Mira Chen" class="bevel-avatar bevel-avatar--small" data-who="MC" title="Mira Chen">MC</span><span aria-label="Sam Patel" class="bevel-avatar bevel-avatar--small" data-who="SP" title="Sam Patel">SP</span></span></footer></article><article class="bevel-kanban__card" data-bevel-assignee="JP" data-bevel-due="2026-09-12" data-bevel-key="FN-103" data-bevel-priority="normal" tabindex="0"><div class="bevel-kanban__card-top"><span class="bevel-kanban__id">FN-103</span><span class="bevel-kanban__priority" data-bevel-priority="normal"><svg aria-hidden="true" height="11" width="11" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.18" stroke-linecap="square" stroke-linejoin="miter"><path d="M5 21V4h13l-3 4 3 4H5"/></svg>Normal</span></div><h3 class="bevel-kanban__title">Invite the next four collaborators</h3><p class="bevel-kanban__description bevel-kanban__desc" hidden=""></p><div class="bevel-kanban__labels"><span class="bevel-kanban__label" data-bevel-label="studio">Studio</span></div><div aria-label="Checklist 0 of 4" class="bevel-kanban__check"><i class="bevel-kanban__check-bar"><b style="width:0%"></b></i><span class="bevel-kanban__check-count">0/4</span></div><footer class="bevel-kanban__card-foot"><span class="bevel-kanban__due" data-bevel-due=""><svg aria-hidden="true" height="12" width="12" viewBox="0 0 256 256" fill="currentColor"><path d="M208,32H184V24a8,8,0,0,0-16,0v8H88V24a8,8,0,0,0-16,0v8H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM72,48v8a8,8,0,0,0,16,0V48h80v8a8,8,0,0,0,16,0V48h24V80H48V48ZM208,208H48V96H208V208Z"/></svg>Sep 12</span><span class="bevel-kanban__meta"></span><span class="bevel-kanban__people"><span aria-label="Jules Park" class="bevel-avatar bevel-avatar--small" data-who="JP" title="Jules Park">JP</span></span></footer><div class="bevel-kanban__checklist-data" hidden=""><label><input data-bevel-check-key="step-1" type="checkbox"/>Draft the change</label><label><input data-bevel-check-key="step-2" type="checkbox"/>Review the details</label><label><input data-bevel-check-key="step-3" type="checkbox"/>Check the result</label><label><input data-bevel-check-key="step-4" type="checkbox"/>Approve the final version</label></div></article><button class="bevel-kanban__add" data-bevel-kanban-create="" type="button"><svg aria-hidden="true" height="13" width="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.85" stroke-linecap="square" stroke-linejoin="miter"><path d="M12 5v14M5 12h14"/></svg>Add task</button></div></section><section aria-label="In progress" class="bevel-kanban__column" data-bevel-column-key="progress" data-bevel-wip="3"><header class="bevel-kanban__column-head"><span class="bevel-kanban__column-mark" data-bevel-column-key="progress"></span><h2>In progress</h2><span class="bevel-kanban__count">3</span><span class="bevel-kanban__wip" data-full="true">WIP 3 / 3</span><button aria-label="Add a task to In progress" class="bevel-kanban__icon" data-bevel-kanban-create="" type="button"><svg aria-hidden="true" height="15" width="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="square" stroke-linejoin="miter"><path d="M12 5v14M5 12h14"/></svg></button></header><div class="bevel-kanban__list"><p class="bevel-kanban__column-empty" data-bevel-kanban-column-empty="" hidden="">No tasks in this lane.</p><article aria-current="true" class="bevel-kanban__card bevel-kanban--selected bevel-kanban--blocked" data-bevel-assignee="MC" data-bevel-due="2026-09-08" data-bevel-key="FN-104" data-bevel-priority="urgent" tabindex="0"><div class="bevel-kanban__card-top"><span class="bevel-kanban__id">FN-104</span><span class="bevel-kanban__priority" data-bevel-priority="urgent"><svg aria-hidden="true" height="11" width="11" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.18" stroke-linecap="square" stroke-linejoin="miter"><path d="M5 21V4h13l-3 4 3 4H5"/></svg>Urgent</span></div><h3 class="bevel-kanban__title">Make room for good work</h3><p class="bevel-kanban__description bevel-kanban__desc">Finish the new project experience. Keep the first step calm and easy to return to.</p><div class="bevel-kanban__labels"><span class="bevel-kanban__label" data-bevel-label="design">Design</span><span class="bevel-kanban__label" data-bevel-label="launch">Launch</span></div><div class="bevel-kanban__dep bevel-kanban--blocked"><svg aria-hidden="true" height="12" width="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="square" stroke-linejoin="miter"><path d="M6 11h12v10H6ZM8 11V7a4 4 0 0 1 8 0v4"/></svg><span>Blocked by <b>FN-105</b> · Font licensing</span></div><div aria-label="Checklist 3 of 4" class="bevel-kanban__check"><i class="bevel-kanban__check-bar"><b style="width:75%"></b></i><span class="bevel-kanban__check-count">3/4</span></div><div class="bevel-kanban__checklist-data" hidden=""><label><input checked="" data-bevel-check-key="details" type="checkbox"/>Set the project details</label><label><input checked="" data-bevel-check-key="modes" type="checkbox"/>Check both colour modes</label><label><input checked="" data-bevel-check-key="compact" type="checkbox"/>Review the compact layout</label><label><input data-bevel-check-key="review" type="checkbox"/>Get Jules’ final review</label></div><footer class="bevel-kanban__card-foot"><span class="bevel-kanban__due" data-bevel-due="today"><svg aria-hidden="true" height="12" width="12" viewBox="0 0 256 256" fill="currentColor"><path d="M208,32H184V24a8,8,0,0,0-16,0v8H88V24a8,8,0,0,0-16,0v8H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM72,48v8a8,8,0,0,0,16,0V48h80v8a8,8,0,0,0,16,0V48h24V80H48V48ZM208,208H48V96H208V208Z"/></svg>Today</span><span class="bevel-kanban__meta"><span><svg aria-hidden="true" height="12" width="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="square" stroke-linejoin="miter"><path d="M4 4h16v12H9l-5 4V4Z"/></svg>8</span><span><svg aria-hidden="true" height="12" width="12" viewBox="0 0 256 256" fill="currentColor"><path d="M209.66,122.34a8,8,0,0,1,0,11.32l-82.05,82a56,56,0,0,1-79.2-79.21L147.67,35.73a40,40,0,1,1,56.61,56.55L105,193A24,24,0,1,1,71,159L154.3,74.38A8,8,0,1,1,165.7,85.6L82.39,170.31a8,8,0,1,0,11.27,11.36L192.93,81A24,24,0,1,0,159,47L59.76,147.68a40,40,0,1,0,56.53,56.62l82.06-82A8,8,0,0,1,209.66,122.34Z"/></svg>3</span></span><span class="bevel-kanban__people"><span aria-label="Mira Chen" class="bevel-avatar bevel-avatar--small" data-who="MC" title="Mira Chen">MC</span><span aria-label="Alex Rivera" class="bevel-avatar bevel-avatar--small" data-who="AR" title="Alex Rivera">AR</span></span></footer><template data-bevel-task-details=""><dl class="bevel-kanban__props"><dt>Estimate</dt><dd class="bevel-kanban__mono" data-bevel-task-field="estimate">3 days · 2 spent</dd></dl><section class="bevel-kanban__panel-section"><h4>Blocked by <b class="bevel-kanban__check-count">1</b></h4>
12
+ <div class="bevel-kanban__dep-row"><svg aria-hidden="true" height="14" width="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.71" stroke-linecap="square" stroke-linejoin="miter"><path d="M6 11h12v10H6ZM8 11V7a4 4 0 0 1 8 0v4"/></svg><div><b>FN-105</b> Polish the document export<small>In progress · Alex Rivera · <span class="bevel-kanban__due" data-bevel-due="overdue">due Sep 07</span></small></div><span aria-label="Alex Rivera" class="bevel-avatar bevel-avatar--small" data-who="AR" title="Alex Rivera">AR</span></div>
13
+ </section><section class="bevel-kanban__panel-section"><h4>Attachments <b class="bevel-kanban__check-count">3</b></h4>
14
+ <div class="bevel-kanban__files"><a class="bevel-kanban__file" data-bevel-key="workspace.jpg" href="../fixtures/workspace.jpg"><img alt="" src="../fixtures/workspace.jpg"/><span>workspace.jpg<small>184 KB</small></span></a><a class="bevel-kanban__file" data-bevel-key="project-brief.pdf" href="../fixtures/field-guide.pdf"><svg aria-hidden="true" height="18" width="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="square" stroke-linejoin="miter"><path d="M5 3h9l5 5v13H5ZM14 3v6h5"/></svg><span>project-brief.pdf<small>420 KB</small></span></a><a class="bevel-kanban__file" data-bevel-action="attachment-open" data-bevel-key="welcome-copy.md" data-bevel-task-key="FN-104" href="#"><svg aria-hidden="true" height="18" width="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="square" stroke-linejoin="miter"><path d="M5 3h9l5 5v13H5ZM14 3v6h5"/></svg><span>welcome-copy.md<small>3 KB</small></span></a></div>
15
+ </section><section class="bevel-kanban__panel-section"><h4>Activity <b class="bevel-kanban__check-count">8</b></h4>
16
+ <div class="bevel-kanban__comment"><span aria-label="Alex Rivera" class="bevel-avatar bevel-avatar--small" data-who="AR" title="Alex Rivera">AR</span><div><b>Alex Rivera <small>18 min ago</small></b><p>The new flow reads clearly. Ready for one last look at the copy.</p></div></div>
17
+ <div class="bevel-kanban__comment"><span aria-label="Sam Patel" class="bevel-avatar bevel-avatar--small" data-who="SP" title="Sam Patel">SP</span><div><b>Sam Patel <small>2 h ago</small></b><p>Tightened the welcome line. It is on the card now.</p></div></div>
18
+ <div class="bevel-kanban__event"><span class="bevel-kanban__event-dot"></span>Mira moved this from <b>Up next</b> to <b>In progress</b><small>Yesterday</small></div>
19
+ <button class="bevel-kanban__composer" data-bevel-action="comment" type="button"><span>Leave a comment…</span><kbd>⌘ ↵</kbd></button>
20
+ </section><span class="bevel-kanban__mono" data-bevel-task-created="">Created Sep 02 by Jules Park</span></template></article><article class="bevel-kanban__card" data-bevel-assignee="AR" data-bevel-due="2026-09-07" data-bevel-key="FN-105" data-bevel-priority="high" tabindex="0"><div class="bevel-kanban__card-top"><span class="bevel-kanban__id">FN-105</span><span class="bevel-kanban__priority" data-bevel-priority="high"><svg aria-hidden="true" height="11" width="11" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.18" stroke-linecap="square" stroke-linejoin="miter"><path d="M5 21V4h13l-3 4 3 4H5"/></svg>High</span></div><h3 class="bevel-kanban__title">Polish the document export</h3><p class="bevel-kanban__description bevel-kanban__desc" hidden=""></p><div class="bevel-kanban__labels"><span class="bevel-kanban__label" data-bevel-label="engineering">Engineering</span></div><div class="bevel-kanban__dep"><svg aria-hidden="true" height="12" width="12" viewBox="0 0 256 256" fill="currentColor"><path d="M240,88.23a54.43,54.43,0,0,1-16,37L189.25,160a54.27,54.27,0,0,1-38.63,16h-.05A54.63,54.63,0,0,1,96,119.84a8,8,0,0,1,16,.45A38.62,38.62,0,0,0,150.58,160h0a38.39,38.39,0,0,0,27.31-11.31l34.75-34.75a38.63,38.63,0,0,0-54.63-54.63l-11,11A8,8,0,0,1,135.7,59l11-11A54.65,54.65,0,0,1,224,48,54.86,54.86,0,0,1,240,88.23ZM109,185.66l-11,11A38.41,38.41,0,0,1,70.6,208h0a38.63,38.63,0,0,1-27.29-65.94L78,107.31A38.63,38.63,0,0,1,144,135.71a8,8,0,0,0,16,.45A54.86,54.86,0,0,0,144,96a54.65,54.65,0,0,0-77.27,0L32,130.75A54.62,54.62,0,0,0,70.56,224h0a54.28,54.28,0,0,0,38.64-16l11-11A8,8,0,0,0,109,185.66Z"/></svg><span>Blocks <b>FN-104</b> · Make room for good work</span></div><div aria-label="Checklist 1 of 3" class="bevel-kanban__check"><i class="bevel-kanban__check-bar"><b style="width:33%"></b></i><span class="bevel-kanban__check-count">1/3</span></div><footer class="bevel-kanban__card-foot"><span class="bevel-kanban__due" data-bevel-due="overdue"><svg aria-hidden="true" height="12" width="12" viewBox="0 0 256 256" fill="currentColor"><path d="M208,32H184V24a8,8,0,0,0-16,0v8H88V24a8,8,0,0,0-16,0v8H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM72,48v8a8,8,0,0,0,16,0V48h80v8a8,8,0,0,0,16,0V48h24V80H48V48ZM208,208H48V96H208V208Z"/></svg>Sep 07</span><span class="bevel-kanban__meta"><span><svg aria-hidden="true" height="12" width="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="square" stroke-linejoin="miter"><path d="M4 4h16v12H9l-5 4V4Z"/></svg>4</span></span><span class="bevel-kanban__people"><span aria-label="Alex Rivera" class="bevel-avatar bevel-avatar--small" data-who="AR" title="Alex Rivera">AR</span></span></footer><div class="bevel-kanban__checklist-data" hidden=""><label><input checked="" data-bevel-check-key="step-1" type="checkbox"/>Draft the change</label><label><input data-bevel-check-key="step-2" type="checkbox"/>Review the details</label><label><input data-bevel-check-key="step-3" type="checkbox"/>Check the result</label></div></article><article class="bevel-kanban__card" data-bevel-assignee="SP" data-bevel-due="2026-09-09" data-bevel-key="FN-106" data-bevel-priority="normal" tabindex="0"><div class="bevel-kanban__card-top"><span class="bevel-kanban__id">FN-106</span><span class="bevel-kanban__priority" data-bevel-priority="normal"><svg aria-hidden="true" height="11" width="11" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.18" stroke-linecap="square" stroke-linejoin="miter"><path d="M5 21V4h13l-3 4 3 4H5"/></svg>Normal</span></div><h3 class="bevel-kanban__title">Give every empty state a voice</h3><p class="bevel-kanban__description bevel-kanban__desc" hidden=""></p><div class="bevel-kanban__labels"><span class="bevel-kanban__label" data-bevel-label="editorial">Editorial</span></div><div aria-label="Checklist 2 of 3" class="bevel-kanban__check"><i class="bevel-kanban__check-bar"><b style="width:67%"></b></i><span class="bevel-kanban__check-count">2/3</span></div><footer class="bevel-kanban__card-foot"><span class="bevel-kanban__due" data-bevel-due=""><svg aria-hidden="true" height="12" width="12" viewBox="0 0 256 256" fill="currentColor"><path d="M208,32H184V24a8,8,0,0,0-16,0v8H88V24a8,8,0,0,0-16,0v8H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM72,48v8a8,8,0,0,0,16,0V48h80v8a8,8,0,0,0,16,0V48h24V80H48V48ZM208,208H48V96H208V208Z"/></svg>Sep 09</span><span class="bevel-kanban__meta"><span><svg aria-hidden="true" height="12" width="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="square" stroke-linejoin="miter"><path d="M4 4h16v12H9l-5 4V4Z"/></svg>1</span></span><span class="bevel-kanban__people"><span aria-label="Sam Patel" class="bevel-avatar bevel-avatar--small" data-who="SP" title="Sam Patel">SP</span></span></footer><div class="bevel-kanban__checklist-data" hidden=""><label><input checked="" data-bevel-check-key="step-1" type="checkbox"/>Draft the change</label><label><input checked="" data-bevel-check-key="step-2" type="checkbox"/>Review the details</label><label><input data-bevel-check-key="step-3" type="checkbox"/>Check the result</label></div></article><button class="bevel-kanban__add" data-bevel-kanban-create="" type="button"><svg aria-hidden="true" height="13" width="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.85" stroke-linecap="square" stroke-linejoin="miter"><path d="M12 5v14M5 12h14"/></svg>Add task</button></div></section><section aria-label="Done" class="bevel-kanban__column" data-bevel-column-key="done"><header class="bevel-kanban__column-head"><span class="bevel-kanban__column-mark" data-bevel-column-key="done"></span><h2>Done</h2><span class="bevel-kanban__count">2</span><span class="bevel-kanban__wip" data-full="false">This week</span><button aria-label="Add a task to Done" class="bevel-kanban__icon" data-bevel-kanban-create="" type="button"><svg aria-hidden="true" height="15" width="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="square" stroke-linejoin="miter"><path d="M12 5v14M5 12h14"/></svg></button></header><div class="bevel-kanban__list"><p class="bevel-kanban__column-empty" data-bevel-kanban-column-empty="" hidden="">No tasks in this lane.</p><article class="bevel-kanban__card bevel-kanban--done" data-bevel-assignee="MC" data-bevel-due="2026-09-08" data-bevel-key="FN-107" data-bevel-priority="normal" tabindex="0"><div class="bevel-kanban__card-top"><span class="bevel-kanban__id">FN-107</span><span class="bevel-kanban__priority" data-bevel-priority="normal"><svg aria-hidden="true" height="11" width="11" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.18" stroke-linecap="square" stroke-linejoin="miter"><path d="M5 21V4h13l-3 4 3 4H5"/></svg>Normal</span></div><h3 class="bevel-kanban__title">A calmer workspace navigation</h3><p class="bevel-kanban__description bevel-kanban__desc" hidden=""></p><div class="bevel-kanban__labels"><span class="bevel-kanban__label" data-bevel-label="design">Design</span></div><div aria-label="Checklist 4 of 4" class="bevel-kanban__check"><i class="bevel-kanban__check-bar"><b style="width:100%"></b></i><span class="bevel-kanban__check-count">4/4</span></div><footer class="bevel-kanban__card-foot"><span class="bevel-kanban__due" data-bevel-due="done"><svg aria-hidden="true" height="12" width="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="square" stroke-linejoin="miter"><path d="m5 12 4 4L19 6"/></svg>Sep 08</span><span class="bevel-kanban__meta"><span><svg aria-hidden="true" height="12" width="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="square" stroke-linejoin="miter"><path d="M4 4h16v12H9l-5 4V4Z"/></svg>5</span><span><svg aria-hidden="true" height="12" width="12" viewBox="0 0 256 256" fill="currentColor"><path d="M209.66,122.34a8,8,0,0,1,0,11.32l-82.05,82a56,56,0,0,1-79.2-79.21L147.67,35.73a40,40,0,1,1,56.61,56.55L105,193A24,24,0,1,1,71,159L154.3,74.38A8,8,0,1,1,165.7,85.6L82.39,170.31a8,8,0,1,0,11.27,11.36L192.93,81A24,24,0,1,0,159,47L59.76,147.68a40,40,0,1,0,56.53,56.62l82.06-82A8,8,0,0,1,209.66,122.34Z"/></svg>2</span></span><span class="bevel-kanban__people"><span aria-label="Mira Chen" class="bevel-avatar bevel-avatar--small" data-who="MC" title="Mira Chen">MC</span></span></footer><div class="bevel-kanban__checklist-data" hidden=""><label><input checked="" data-bevel-check-key="step-1" type="checkbox"/>Draft the change</label><label><input checked="" data-bevel-check-key="step-2" type="checkbox"/>Review the details</label><label><input checked="" data-bevel-check-key="step-3" type="checkbox"/>Check the result</label><label><input checked="" data-bevel-check-key="step-4" type="checkbox"/>Approve the final version</label></div></article><article class="bevel-kanban__card bevel-kanban--done" data-bevel-assignee="SP" data-bevel-due="2026-09-07" data-bevel-key="FN-108" data-bevel-priority="normal" tabindex="0"><div class="bevel-kanban__card-top"><span class="bevel-kanban__id">FN-108</span><span class="bevel-kanban__priority" data-bevel-priority="normal"><svg aria-hidden="true" height="11" width="11" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.18" stroke-linecap="square" stroke-linejoin="miter"><path d="M5 21V4h13l-3 4 3 4H5"/></svg>Normal</span></div><h3 class="bevel-kanban__title">Write the first welcome</h3><p class="bevel-kanban__description bevel-kanban__desc" hidden=""></p><div class="bevel-kanban__labels"><span class="bevel-kanban__label" data-bevel-label="editorial">Editorial</span></div><div aria-label="Checklist 3 of 3" class="bevel-kanban__check"><i class="bevel-kanban__check-bar"><b style="width:100%"></b></i><span class="bevel-kanban__check-count">3/3</span></div><footer class="bevel-kanban__card-foot"><span class="bevel-kanban__due" data-bevel-due="done"><svg aria-hidden="true" height="12" width="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="square" stroke-linejoin="miter"><path d="m5 12 4 4L19 6"/></svg>Sep 07</span><span class="bevel-kanban__meta"><span><svg aria-hidden="true" height="12" width="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="square" stroke-linejoin="miter"><path d="M4 4h16v12H9l-5 4V4Z"/></svg>2</span></span><span class="bevel-kanban__people"><span aria-label="Sam Patel" class="bevel-avatar bevel-avatar--small" data-who="SP" title="Sam Patel">SP</span><span aria-label="Jules Park" class="bevel-avatar bevel-avatar--small" data-who="JP" title="Jules Park">JP</span></span></footer><div class="bevel-kanban__checklist-data" hidden=""><label><input checked="" data-bevel-check-key="step-1" type="checkbox"/>Draft the change</label><label><input checked="" data-bevel-check-key="step-2" type="checkbox"/>Review the details</label><label><input checked="" data-bevel-check-key="step-3" type="checkbox"/>Check the result</label></div></article><button class="bevel-kanban__add" data-bevel-kanban-create="" type="button"><svg aria-hidden="true" height="13" width="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.85" stroke-linecap="square" stroke-linejoin="miter"><path d="M12 5v14M5 12h14"/></svg>Add task</button></div></section></div><div aria-hidden="true" class="bevel-kanban__scroll-rail"><b style="width:80%"></b></div><p class="bevel-kanban__scroll-hint"><svg aria-hidden="true" height="12" width="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="square" stroke-linejoin="miter"><path d="M4 12h16m-6-6 6 6-6 6"/></svg>Four lanes. Scroll the board sideways for <b>Done</b>.</p></div><aside class="bevel-kanban__panel" data-bevel-kanban-inspector="" hidden=""></aside></div>
21
+ <footer class="bevel-kanban__foot"><span><svg aria-hidden="true" height="13" width="13" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.85" stroke-linecap="square" stroke-linejoin="miter"><path d="M3 4h5v16H3ZM10 4h5v11h-5ZM17 4h4v7h-4Z"/></svg>Grouped by status · manual order</span><span><span data-bevel-kanban-total=""></span> tasks · <span data-bevel-kanban-done=""></span> done · <span data-bevel-kanban-people=""></span> people</span></footer>
22
+ <section aria-labelledby="kanban-archive-title" class="bevel-popconfirm" data-bevel-placement="top-end" id="kanban-archive-confirm" popover="manual" role="dialog"><span class="bevel-popconfirm__arrow" data-bevel-arrow=""></span><div class="bevel-popconfirm__head"><svg aria-hidden="true" height="18" width="18" viewBox="0 0 256 256" fill="currentColor"><path d="M236.8,188.09,149.35,36.22h0a24.76,24.76,0,0,0-42.7,0L19.2,188.09a23.51,23.51,0,0,0,0,23.72A24.35,24.35,0,0,0,40.55,224h174.9a24.35,24.35,0,0,0,21.33-12.19A23.51,23.51,0,0,0,236.8,188.09ZM222.93,203.8a8.5,8.5,0,0,1-7.48,4.2H40.55a8.5,8.5,0,0,1-7.48-4.2,7.59,7.59,0,0,1,0-7.72L120.52,44.21a8.75,8.75,0,0,1,15,0l87.45,151.87A7.59,7.59,0,0,1,222.93,203.8ZM120,144V104a8,8,0,0,1,16,0v40a8,8,0,0,1-16,0Zm20,36a12,12,0,1,1-12-12A12,12,0,0,1,140,180Z"/></svg><h3 id="kanban-archive-title">Archive this task?</h3></div><p class="bevel-popconfirm__description">The task stays in its current lane and can be restored.</p><div class="bevel-popconfirm__actions"><button class="bevel-button bevel-button--small" data-bevel-close="" type="button">Keep it</button><button class="bevel-button bevel-button--small bevel-button--danger" data-bevel-kanban-archive="" type="button">Archive</button></div></section><dialog class="bevel-modal bevel-kanban__editor" data-bevel-kanban-editor=""><form class="bevel-modal__inner" data-bevel-kanban-form=""><header class="bevel-modal__header"><h2 data-bevel-kanban-form-heading="">New task</h2></header><div class="bevel-modal__body"><label>Title<input name="title" required=""/></label><label>Description<textarea name="description"></textarea></label><label>Assignee<select name="assignee"><option value="">Unassigned</option><option value="MC">Mira Chen</option><option value="AR">Alex Rivera</option><option value="SP">Sam Patel</option><option value="JP">Jules Park</option></select></label><label>Priority<select name="priority"><option>low</option><option selected="">normal</option><option>high</option><option>urgent</option></select></label><label>Due<input name="due" type="date"/></label><label>Labels<input name="labels" placeholder="design, launch"/></label><input name="column" type="hidden"/><input name="key" type="hidden"/></div><footer class="bevel-modal__footer"><button class="bevel-button" data-bevel-close="" type="button">Cancel</button><button class="bevel-button bevel-button--primary" data-bevel-kanban-save="" type="submit">Save task</button></footer></form></dialog><div class="bevel-kanban__empty-note" data-bevel-kanban-empty="" hidden="">No tasks yet. Add a task to begin.<span class="bevel-kanban__empty-actions"><button class="bevel-button bevel-button--small" data-bevel-kanban-create="" type="button">Add task</button></span></div><template data-bevel-kanban-inspector-template="">
23
+ <header class="bevel-kanban__panel-head"><span class="bevel-kanban__id"></span><span class="bevel-kanban__status" data-bevel-column-key="progress"></span><span class="bevel-kanban__spacer"></span><button aria-label="Task options" class="bevel-kanban__icon" data-bevel-action="task-options" type="button"><svg aria-hidden="true" height="16" width="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.6" stroke-linecap="square" stroke-linejoin="miter"><path d="M5 12h1m5 0h1m5 0h1"/></svg></button><button aria-label="Close task" class="bevel-kanban__icon" data-bevel-kanban-close="" type="button"><svg aria-hidden="true" height="16" width="16" viewBox="0 0 256 256" fill="currentColor"><path d="M205.66,194.34a8,8,0,0,1-11.32,11.32L128,139.31,61.66,205.66a8,8,0,0,1-11.32-11.32L116.69,128,50.34,61.66A8,8,0,0,1,61.66,50.34L128,116.69l66.34-66.35a8,8,0,0,1,11.32,11.32L139.31,128Z"/></svg></button></header>
24
+ <h2></h2>
25
+ <p class="bevel-kanban__panel-lede"></p><p class="bevel-kanban__empty-note" data-bevel-kanban-outside="" hidden="" role="status"></p>
26
+ <dl class="bevel-kanban__props">
27
+ <dt>Assignees</dt><dd data-bevel-task-field="assignee"></dd>
28
+ <dt>Priority</dt><dd data-bevel-task-field="priority"></dd>
29
+ <dt>Due</dt><dd data-bevel-task-field="due"></dd>
30
+ <dt>Labels</dt><dd class="bevel-kanban__labels" data-bevel-task-field="labels"></dd>
31
+ <dt>Estimate</dt><dd class="bevel-kanban__mono" data-bevel-task-field="estimate"></dd></dl>
32
+ <section class="bevel-kanban__panel-section" data-bevel-kanban-checklist=""><h4>Checklist <b class="bevel-kanban__check-count">0/0</b><button aria-label="Add checklist item" class="bevel-kanban__icon" data-bevel-kanban-check-add="" type="button">+</button></h4><i class="bevel-kanban__check-bar"><b style="width:0%"></b></i>
33
+ <form data-bevel-kanban-check-form="" hidden=""><label>Checklist item<input autocomplete="off" class="bevel-input" name="text" required=""/></label><button class="bevel-button bevel-button--small" type="submit">Add item</button><button class="bevel-button bevel-button--small" data-bevel-kanban-check-cancel="" type="button">Cancel</button></form></section><div data-bevel-task-details=""></div>
34
+ <footer class="bevel-kanban__panel-foot"><span class="bevel-kanban__mono" data-bevel-task-created=""></span><span class="bevel-kanban__panel-actions"><button class="bevel-button bevel-button--small" data-bevel-kanban-edit="" type="button">Edit</button><select aria-label="Move to" data-bevel-kanban-move-column=""><option value="backlog">Backlog</option><option value="next">Up next</option><option value="progress">In progress</option><option value="done">Done</option></select><select aria-label="Position" data-bevel-kanban-move-position=""><option value="first">First</option><option value="last">Last</option></select><button class="bevel-button bevel-button--small" data-bevel-kanban-move="" type="button">Move</button><button aria-controls="kanban-archive-confirm" aria-expanded="false" class="bevel-button bevel-button--small" data-bevel-open="kanban-archive-confirm" type="button">Archive</button><button class="bevel-button bevel-button--small" data-bevel-kanban-restore="" hidden="" type="button">Restore</button></span><button class="bevel-button bevel-button--small" data-bevel-action="open-task" data-bevel-key="FN-104" type="button"><svg aria-hidden="true" height="15" width="15" viewBox="0 0 256 256" fill="currentColor"><path d="M216,48V96a8,8,0,0,1-16,0V67.31l-50.34,50.35a8,8,0,0,1-11.32-11.32L188.69,56H160a8,8,0,0,1,0-16h48A8,8,0,0,1,216,48ZM106.34,138.34,56,188.69V160a8,8,0,0,0-16,0v48a8,8,0,0,0,8,8H96a8,8,0,0,0,0-16H67.31l50.35-50.34a8,8,0,0,0-11.32-11.32Z"/></svg><span class="bevel-button__label">Open task</span></button></footer>
35
+ </template><section aria-label="Filter due dates" class="bevel-popconfirm" data-bevel-placement="bottom-start" id="kanban-due-filter" popover="manual" role="dialog"><h3>Due date range</h3><label>From<input aria-label="Due from" class="bevel-input" data-bevel-kanban-filter="due-from" type="date"/></label><label>Through<input aria-label="Due through" class="bevel-input" data-bevel-kanban-filter="due-to" type="date"/></label><button class="bevel-button bevel-button--small" data-bevel-kanban-filter-clear="" type="button">Clear dates</button><button class="bevel-button bevel-button--small" data-bevel-close="" type="button">Done</button></section></main>
36
+
37
+ <script src="../../vendor/floating-ui/floating-ui.core.umd.min.js"></script>
38
+ <script src="../../vendor/floating-ui/floating-ui.dom.umd.min.js"></script>
39
+ <script src="../../bevel.js"></script>
40
+
41
+ </body>
42
+ </html>