@gjermundgaraba-designs/pixel-paper 0.26.0 → 0.27.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 (940) hide show
  1. package/DESIGN.md +28 -3
  2. package/dist/src/adapters/diagram.d.ts +38 -0
  3. package/dist/src/adapters/diagram.d.ts.map +1 -0
  4. package/dist/src/adapters/diagram.js +206 -0
  5. package/dist/src/adapters/mermaid.d.ts +2 -20
  6. package/dist/src/adapters/mermaid.d.ts.map +1 -1
  7. package/dist/src/adapters/mermaid.js +9 -229
  8. package/dist/src/announcer/announcer.d.ts +0 -4
  9. package/dist/src/announcer/announcer.d.ts.map +1 -1
  10. package/dist/src/announcer/announcer.js +19 -18
  11. package/dist/src/attributes/attributes.d.ts.map +1 -1
  12. package/dist/src/{audioFrame/audioFrame.d.ts → audio-frame/audio-frame.d.ts} +1 -1
  13. package/dist/src/audio-frame/audio-frame.d.ts.map +1 -0
  14. package/dist/src/{audioFrame/audioFrame.js → audio-frame/audio-frame.js} +1 -1
  15. package/dist/src/audio-frame/index.d.ts +3 -0
  16. package/dist/src/audio-frame/index.d.ts.map +1 -0
  17. package/dist/src/audio-frame/index.js +1 -0
  18. package/dist/src/banner/banner.d.ts.map +1 -1
  19. package/dist/src/banner/index.d.ts.map +1 -1
  20. package/dist/src/{barChart/barChart.d.ts → bar-chart/bar-chart.d.ts} +2 -2
  21. package/dist/src/bar-chart/bar-chart.d.ts.map +1 -0
  22. package/dist/src/{barChart/barChart.js → bar-chart/bar-chart.js} +40 -35
  23. package/dist/src/bar-chart/index.d.ts +3 -0
  24. package/dist/src/bar-chart/index.d.ts.map +1 -0
  25. package/dist/src/bar-chart/index.js +1 -0
  26. package/dist/src/bench/bench.d.ts.map +1 -1
  27. package/dist/src/bench/index.d.ts.map +1 -1
  28. package/dist/src/board/board.d.ts +45 -46
  29. package/dist/src/board/board.d.ts.map +1 -1
  30. package/dist/src/board/board.js +76 -102
  31. package/dist/src/board/index.d.ts +1 -1
  32. package/dist/src/board/index.d.ts.map +1 -1
  33. package/dist/src/button/button.d.ts +1 -2
  34. package/dist/src/button/button.d.ts.map +1 -1
  35. package/dist/src/button/button.js +7 -5
  36. package/dist/src/button/index.d.ts +1 -1
  37. package/dist/src/button/index.d.ts.map +1 -1
  38. package/dist/src/card/card.d.ts.map +1 -1
  39. package/dist/src/card/card.js +4 -2
  40. package/dist/src/card/index.d.ts.map +1 -1
  41. package/dist/src/{chartTable/chartTable.d.ts → chart-table/chart-table.d.ts} +4 -14
  42. package/dist/src/chart-table/chart-table.d.ts.map +1 -0
  43. package/dist/src/{chartTable/chartTable.js → chart-table/chart-table.js} +9 -16
  44. package/dist/src/chip/chip.d.ts.map +1 -1
  45. package/dist/src/chip/chip.js +4 -2
  46. package/dist/src/chip/index.d.ts.map +1 -1
  47. package/dist/src/choice/choice.d.ts.map +1 -1
  48. package/dist/src/choice/choice.js +3 -1
  49. package/dist/src/choice/index.d.ts.map +1 -1
  50. package/dist/src/choices/choices.d.ts.map +1 -1
  51. package/dist/src/choices/index.d.ts.map +1 -1
  52. package/dist/src/{codeEditor/codeEditor.d.ts → code-editor/code-editor.d.ts} +1 -1
  53. package/dist/src/code-editor/code-editor.d.ts.map +1 -0
  54. package/dist/src/{codeEditor/codeEditor.js → code-editor/code-editor.js} +2 -2
  55. package/dist/src/code-editor/index.d.ts +3 -0
  56. package/dist/src/code-editor/index.d.ts.map +1 -0
  57. package/dist/src/code-editor/index.js +1 -0
  58. package/dist/src/{codeSurface/codeSurface.d.ts → code-surface/code-surface.d.ts} +1 -1
  59. package/dist/src/code-surface/code-surface.d.ts.map +1 -0
  60. package/dist/src/{codeSurface/codeSurface.js → code-surface/code-surface.js} +6 -1
  61. package/dist/src/code-surface/index.d.ts +3 -0
  62. package/dist/src/code-surface/index.d.ts.map +1 -0
  63. package/dist/src/code-surface/index.js +1 -0
  64. package/dist/src/{commandPalette/commandPalette.d.ts → command-palette/command-palette.d.ts} +85 -77
  65. package/dist/src/command-palette/command-palette.d.ts.map +1 -0
  66. package/dist/src/command-palette/command-palette.js +625 -0
  67. package/dist/src/{commandPalette → command-palette}/index.d.ts +2 -2
  68. package/dist/src/command-palette/index.d.ts.map +1 -0
  69. package/dist/src/{commandPalette → command-palette}/index.js +1 -1
  70. package/dist/src/{commandPalette → command-palette}/keys.d.ts +0 -21
  71. package/dist/src/command-palette/keys.d.ts.map +1 -0
  72. package/dist/src/command-palette/keys.js +85 -0
  73. package/dist/src/{commandPalette → command-palette}/match.d.ts +5 -11
  74. package/dist/src/command-palette/match.d.ts.map +1 -0
  75. package/dist/src/{commandPalette → command-palette}/match.js +20 -24
  76. package/dist/src/{commandPalette → command-palette}/message.d.ts +37 -26
  77. package/dist/src/command-palette/message.d.ts.map +1 -0
  78. package/dist/src/{commandPalette → command-palette}/message.js +8 -20
  79. package/dist/src/{confirmDialog/confirmDialog.d.ts → confirm-dialog/confirm-dialog.d.ts} +1 -1
  80. package/dist/src/confirm-dialog/confirm-dialog.d.ts.map +1 -0
  81. package/dist/src/{confirmDialog/confirmDialog.js → confirm-dialog/confirm-dialog.js} +18 -23
  82. package/dist/src/confirm-dialog/index.d.ts +3 -0
  83. package/dist/src/confirm-dialog/index.d.ts.map +1 -0
  84. package/dist/src/{confirmDialog → confirm-dialog}/index.js +1 -1
  85. package/dist/src/{contextMenu/contextMenu.d.ts → context-menu/context-menu.d.ts} +18 -21
  86. package/dist/src/context-menu/context-menu.d.ts.map +1 -0
  87. package/dist/src/{contextMenu/contextMenu.js → context-menu/context-menu.js} +45 -57
  88. package/dist/src/{contextMenu → context-menu}/index.d.ts +2 -2
  89. package/dist/src/context-menu/index.d.ts.map +1 -0
  90. package/dist/src/{contextMenu → context-menu}/index.js +1 -1
  91. package/dist/src/{copyButton/copyButton.d.ts → copy-button/copy-button.d.ts} +5 -7
  92. package/dist/src/copy-button/copy-button.d.ts.map +1 -0
  93. package/dist/src/{copyButton/copyButton.js → copy-button/copy-button.js} +18 -27
  94. package/dist/src/copy-button/index.d.ts +3 -0
  95. package/dist/src/copy-button/index.d.ts.map +1 -0
  96. package/dist/src/copy-button/index.js +1 -0
  97. package/dist/src/crumbs/crumbs.d.ts +1 -1
  98. package/dist/src/crumbs/crumbs.d.ts.map +1 -1
  99. package/dist/src/crumbs/index.d.ts.map +1 -1
  100. package/dist/src/deck/deck.d.ts.map +1 -1
  101. package/dist/src/deck/index.d.ts.map +1 -1
  102. package/dist/src/dialog/dialog.d.ts +6 -14
  103. package/dist/src/dialog/dialog.d.ts.map +1 -1
  104. package/dist/src/dialog/dialog.js +29 -36
  105. package/dist/src/dialog/fold.d.ts +3 -3
  106. package/dist/src/dialog/fold.d.ts.map +1 -1
  107. package/dist/src/dialog/fold.js +5 -4
  108. package/dist/src/dialog/index.d.ts +1 -1
  109. package/dist/src/dialog/index.d.ts.map +1 -1
  110. package/dist/src/disclosure/disclosure.d.ts.map +1 -1
  111. package/dist/src/disclosure/disclosure.js +3 -1
  112. package/dist/src/disclosure/index.d.ts.map +1 -1
  113. package/dist/src/dom/html-element.d.ts +3 -0
  114. package/dist/src/dom/html-element.d.ts.map +1 -0
  115. package/dist/src/dom/html-element.js +6 -0
  116. package/dist/src/drag/drag.d.ts +0 -34
  117. package/dist/src/drag/drag.d.ts.map +1 -1
  118. package/dist/src/drag/drag.js +27 -73
  119. package/dist/src/{dropZone/dropZone.d.ts → drop-zone/drop-zone.d.ts} +3 -3
  120. package/dist/src/drop-zone/drop-zone.d.ts.map +1 -0
  121. package/dist/src/{dropZone/dropZone.js → drop-zone/drop-zone.js} +13 -19
  122. package/dist/src/drop-zone/index.d.ts +3 -0
  123. package/dist/src/drop-zone/index.d.ts.map +1 -0
  124. package/dist/src/drop-zone/index.js +1 -0
  125. package/dist/src/{editableTitle/editableTitle.d.ts → editable-title/editable-title.d.ts} +14 -12
  126. package/dist/src/editable-title/editable-title.d.ts.map +1 -0
  127. package/dist/src/{editableTitle/editableTitle.js → editable-title/editable-title.js} +33 -39
  128. package/dist/src/editable-title/index.d.ts +4 -0
  129. package/dist/src/editable-title/index.d.ts.map +1 -0
  130. package/dist/src/{editableTitle → editable-title}/index.js +1 -1
  131. package/dist/src/{emptyState/emptyState.d.ts → empty-state/empty-state.d.ts} +1 -1
  132. package/dist/src/empty-state/empty-state.d.ts.map +1 -0
  133. package/dist/src/{emptyState/emptyState.js → empty-state/empty-state.js} +5 -2
  134. package/dist/src/empty-state/index.d.ts +3 -0
  135. package/dist/src/empty-state/index.d.ts.map +1 -0
  136. package/dist/src/empty-state/index.js +1 -0
  137. package/dist/src/{errorSummary/errorSummary.d.ts → error-summary/error-summary.d.ts} +2 -2
  138. package/dist/src/error-summary/error-summary.d.ts.map +1 -0
  139. package/dist/src/{errorSummary/errorSummary.js → error-summary/error-summary.js} +7 -5
  140. package/dist/src/error-summary/index.d.ts +3 -0
  141. package/dist/src/error-summary/index.d.ts.map +1 -0
  142. package/dist/src/error-summary/index.js +1 -0
  143. package/dist/src/field/field.d.ts +2 -7
  144. package/dist/src/field/field.d.ts.map +1 -1
  145. package/dist/src/field/field.js +12 -13
  146. package/dist/src/field/index.d.ts.map +1 -1
  147. package/dist/src/{fieldGrid/fieldGrid.d.ts → field-grid/field-grid.d.ts} +1 -1
  148. package/dist/src/field-grid/field-grid.d.ts.map +1 -0
  149. package/dist/src/{fieldGrid/fieldGrid.js → field-grid/field-grid.js} +1 -1
  150. package/dist/src/field-grid/index.d.ts +3 -0
  151. package/dist/src/field-grid/index.d.ts.map +1 -0
  152. package/dist/src/field-grid/index.js +1 -0
  153. package/dist/src/fields/fields.d.ts.map +1 -1
  154. package/dist/src/fields/fields.js +4 -1
  155. package/dist/src/fields/index.d.ts.map +1 -1
  156. package/dist/src/fieldset/fieldset.d.ts.map +1 -1
  157. package/dist/src/fieldset/index.d.ts.map +1 -1
  158. package/dist/src/{fileTree/fileTree.d.ts → file-tree/file-tree.d.ts} +5 -5
  159. package/dist/src/file-tree/file-tree.d.ts.map +1 -0
  160. package/dist/src/file-tree/file-tree.js +242 -0
  161. package/dist/src/file-tree/index.d.ts +3 -0
  162. package/dist/src/file-tree/index.d.ts.map +1 -0
  163. package/dist/src/{fileTree → file-tree}/index.js +1 -1
  164. package/dist/src/{filterChip/filterChip.d.ts → filter-chip/filter-chip.d.ts} +1 -1
  165. package/dist/src/filter-chip/filter-chip.d.ts.map +1 -0
  166. package/dist/src/{filterChip/filterChip.js → filter-chip/filter-chip.js} +11 -7
  167. package/dist/src/filter-chip/index.d.ts +3 -0
  168. package/dist/src/filter-chip/index.d.ts.map +1 -0
  169. package/dist/src/filter-chip/index.js +1 -0
  170. package/dist/src/{filterStrip/filterStrip.d.ts → filter-strip/filter-strip.d.ts} +1 -1
  171. package/dist/src/filter-strip/filter-strip.d.ts.map +1 -0
  172. package/dist/src/{filterStrip/filterStrip.js → filter-strip/filter-strip.js} +1 -1
  173. package/dist/src/filter-strip/index.d.ts +3 -0
  174. package/dist/src/filter-strip/index.d.ts.map +1 -0
  175. package/dist/src/filter-strip/index.js +1 -0
  176. package/dist/src/{flashWord/flashWord.d.ts → flash-word/flash-word.d.ts} +2 -2
  177. package/dist/src/flash-word/flash-word.d.ts.map +1 -0
  178. package/dist/src/{flashWord/flashWord.js → flash-word/flash-word.js} +2 -3
  179. package/dist/src/flash-word/index.d.ts +3 -0
  180. package/dist/src/flash-word/index.d.ts.map +1 -0
  181. package/dist/src/flash-word/index.js +1 -0
  182. package/dist/src/focus/focus.d.ts.map +1 -1
  183. package/dist/src/focus/focus.js +0 -2
  184. package/dist/src/format/format.d.ts +0 -7
  185. package/dist/src/format/format.d.ts.map +1 -1
  186. package/dist/src/format/format.js +7 -16
  187. package/dist/src/format/index.d.ts.map +1 -1
  188. package/dist/src/glyph/glyph.d.ts +1 -2
  189. package/dist/src/glyph/glyph.d.ts.map +1 -1
  190. package/dist/src/glyph/glyph.js +0 -2
  191. package/dist/src/glyph/glyphs.d.ts +19 -4
  192. package/dist/src/glyph/glyphs.d.ts.map +1 -1
  193. package/dist/src/glyph/glyphs.js +2577 -2594
  194. package/dist/src/glyph/index.d.ts.map +1 -1
  195. package/dist/src/group/group.d.ts.map +1 -1
  196. package/dist/src/group/index.d.ts.map +1 -1
  197. package/dist/src/history/history.d.ts +1 -1
  198. package/dist/src/history/history.d.ts.map +1 -1
  199. package/dist/src/history/history.js +6 -3
  200. package/dist/src/history/index.d.ts.map +1 -1
  201. package/dist/src/{iconButton/iconButton.d.ts → icon-button/icon-button.d.ts} +1 -1
  202. package/dist/src/icon-button/icon-button.d.ts.map +1 -0
  203. package/dist/src/{iconButton/iconButton.js → icon-button/icon-button.js} +6 -4
  204. package/dist/src/icon-button/index.d.ts +3 -0
  205. package/dist/src/icon-button/index.d.ts.map +1 -0
  206. package/dist/src/icon-button/index.js +1 -0
  207. package/dist/src/identity/identity.d.ts.map +1 -1
  208. package/dist/src/identity/index.d.ts.map +1 -1
  209. package/dist/src/{imageFrame/imageFrame.d.ts → image-frame/image-frame.d.ts} +1 -1
  210. package/dist/src/image-frame/image-frame.d.ts.map +1 -0
  211. package/dist/src/{imageFrame/imageFrame.js → image-frame/image-frame.js} +19 -12
  212. package/dist/src/image-frame/index.d.ts +3 -0
  213. package/dist/src/image-frame/index.d.ts.map +1 -0
  214. package/dist/src/image-frame/index.js +1 -0
  215. package/dist/src/index.d.ts +41 -41
  216. package/dist/src/index.d.ts.map +1 -1
  217. package/dist/src/index.js +41 -41
  218. package/dist/src/inline-input/index.d.ts +3 -0
  219. package/dist/src/inline-input/index.d.ts.map +1 -0
  220. package/dist/src/{inlineInput → inline-input}/index.js +1 -1
  221. package/dist/src/{inlineInput/inlineInput.d.ts → inline-input/inline-input.d.ts} +8 -12
  222. package/dist/src/inline-input/inline-input.d.ts.map +1 -0
  223. package/dist/src/{inlineInput/inlineInput.js → inline-input/inline-input.js} +60 -75
  224. package/dist/src/key-help/index.d.ts +3 -0
  225. package/dist/src/key-help/index.d.ts.map +1 -0
  226. package/dist/src/{keyHelp → key-help}/index.js +1 -1
  227. package/dist/src/{keyHelp/keyHelp.d.ts → key-help/key-help.d.ts} +7 -7
  228. package/dist/src/key-help/key-help.d.ts.map +1 -0
  229. package/dist/src/{keyHelp/keyHelp.js → key-help/key-help.js} +48 -47
  230. package/dist/src/key-hint/index.d.ts +4 -0
  231. package/dist/src/key-hint/index.d.ts.map +1 -0
  232. package/dist/src/key-hint/index.js +2 -0
  233. package/dist/src/{keyHint/keyHint.d.ts → key-hint/key-hint.d.ts} +2 -2
  234. package/dist/src/key-hint/key-hint.d.ts.map +1 -0
  235. package/dist/src/{keyHint/keyHint.js → key-hint/key-hint.js} +2 -2
  236. package/dist/src/{keyHint/keyLabel.d.ts → key-hint/key-label.d.ts} +2 -3
  237. package/dist/src/key-hint/key-label.d.ts.map +1 -0
  238. package/dist/src/{keyHint/keyLabel.js → key-hint/key-label.js} +29 -24
  239. package/dist/src/keymap/index.d.ts.map +1 -1
  240. package/dist/src/keymap/keymap.d.ts +2 -2
  241. package/dist/src/keymap/keymap.d.ts.map +1 -1
  242. package/dist/src/keymap/keymap.js +3 -1
  243. package/dist/src/keys/keys.d.ts +0 -2
  244. package/dist/src/keys/keys.d.ts.map +1 -1
  245. package/dist/src/keys/keys.js +0 -2
  246. package/dist/src/line-chart/index.d.ts +3 -0
  247. package/dist/src/line-chart/index.d.ts.map +1 -0
  248. package/dist/src/line-chart/index.js +1 -0
  249. package/dist/src/{lineChart/lineChart.d.ts → line-chart/line-chart.d.ts} +2 -2
  250. package/dist/src/line-chart/line-chart.d.ts.map +1 -0
  251. package/dist/src/{lineChart/lineChart.js → line-chart/line-chart.js} +52 -44
  252. package/dist/src/line-diff/diff.d.ts +29 -0
  253. package/dist/src/line-diff/diff.d.ts.map +1 -0
  254. package/dist/src/line-diff/diff.js +85 -0
  255. package/dist/src/line-diff/index.d.ts +5 -0
  256. package/dist/src/line-diff/index.d.ts.map +1 -0
  257. package/dist/src/line-diff/index.js +2 -0
  258. package/dist/src/{lineDiff/lineDiff.d.ts → line-diff/line-diff.d.ts} +1 -1
  259. package/dist/src/line-diff/line-diff.d.ts.map +1 -0
  260. package/dist/src/{lineDiff/lineDiff.js → line-diff/line-diff.js} +26 -19
  261. package/dist/src/{lineDiff → line-diff}/patch.d.ts +5 -9
  262. package/dist/src/line-diff/patch.d.ts.map +1 -0
  263. package/dist/src/{lineDiff → line-diff}/patch.js +54 -62
  264. package/dist/src/link-button/index.d.ts +3 -0
  265. package/dist/src/link-button/index.d.ts.map +1 -0
  266. package/dist/src/link-button/index.js +1 -0
  267. package/dist/src/{linkButton/linkButton.d.ts → link-button/link-button.d.ts} +2 -2
  268. package/dist/src/link-button/link-button.d.ts.map +1 -0
  269. package/dist/src/{linkButton/linkButton.js → link-button/link-button.js} +1 -1
  270. package/dist/src/link-state/index.d.ts +3 -0
  271. package/dist/src/link-state/index.d.ts.map +1 -0
  272. package/dist/src/link-state/index.js +1 -0
  273. package/dist/src/{linkState/linkState.d.ts → link-state/link-state.d.ts} +1 -1
  274. package/dist/src/link-state/link-state.d.ts.map +1 -0
  275. package/dist/src/link-state/link-state.js +24 -0
  276. package/dist/src/live-region/index.d.ts +3 -0
  277. package/dist/src/live-region/index.d.ts.map +1 -0
  278. package/dist/src/live-region/index.js +1 -0
  279. package/dist/src/{liveRegion/liveRegion.d.ts → live-region/live-region.d.ts} +6 -3
  280. package/dist/src/live-region/live-region.d.ts.map +1 -0
  281. package/dist/src/{liveRegion/liveRegion.js → live-region/live-region.js} +7 -5
  282. package/dist/src/loading/index.d.ts.map +1 -1
  283. package/dist/src/loading/loading.d.ts.map +1 -1
  284. package/dist/src/loading/loading.js +5 -1
  285. package/dist/src/mark/index.d.ts.map +1 -1
  286. package/dist/src/mark/mark.d.ts +0 -4
  287. package/dist/src/mark/mark.d.ts.map +1 -1
  288. package/dist/src/mark/mark.js +6 -3
  289. package/dist/src/media/index.d.ts.map +1 -1
  290. package/dist/src/media/media.d.ts +17 -42
  291. package/dist/src/media/media.d.ts.map +1 -1
  292. package/dist/src/media/media.js +106 -104
  293. package/dist/src/menu/index.d.ts.map +1 -1
  294. package/dist/src/menu/item.d.ts +8 -8
  295. package/dist/src/menu/item.d.ts.map +1 -1
  296. package/dist/src/menu/menu.d.ts +2 -5
  297. package/dist/src/menu/menu.d.ts.map +1 -1
  298. package/dist/src/menu/menu.js +19 -30
  299. package/dist/src/menu/slip.d.ts +4 -18
  300. package/dist/src/menu/slip.d.ts.map +1 -1
  301. package/dist/src/menu/slip.js +36 -36
  302. package/dist/src/meter/index.d.ts.map +1 -1
  303. package/dist/src/meter/meter.d.ts +1 -1
  304. package/dist/src/meter/meter.d.ts.map +1 -1
  305. package/dist/src/meter/meter.js +12 -15
  306. package/dist/src/monogram/index.d.ts.map +1 -1
  307. package/dist/src/monogram/monogram.d.ts.map +1 -1
  308. package/dist/src/monogram/monogram.js +9 -8
  309. package/dist/src/nav-strip/index.d.ts +3 -0
  310. package/dist/src/nav-strip/index.d.ts.map +1 -0
  311. package/dist/src/nav-strip/index.js +1 -0
  312. package/dist/src/{navStrip/navStrip.d.ts → nav-strip/nav-strip.d.ts} +3 -6
  313. package/dist/src/nav-strip/nav-strip.d.ts.map +1 -0
  314. package/dist/src/nav-strip/nav-strip.js +25 -0
  315. package/dist/src/notice/index.d.ts.map +1 -1
  316. package/dist/src/notice/notice.d.ts +0 -4
  317. package/dist/src/notice/notice.d.ts.map +1 -1
  318. package/dist/src/notice/notice.js +1 -4
  319. package/dist/src/outcome/index.d.ts.map +1 -1
  320. package/dist/src/outcome/outcome.d.ts.map +1 -1
  321. package/dist/src/outcome/outcome.js +1 -1
  322. package/dist/src/page-head/index.d.ts +3 -0
  323. package/dist/src/page-head/index.d.ts.map +1 -0
  324. package/dist/src/page-head/index.js +1 -0
  325. package/dist/src/{pageHead/pageHead.d.ts → page-head/page-head.d.ts} +1 -1
  326. package/dist/src/page-head/page-head.d.ts.map +1 -0
  327. package/dist/src/{pageHead/pageHead.js → page-head/page-head.js} +1 -1
  328. package/dist/src/panel/index.d.ts.map +1 -1
  329. package/dist/src/panel/panel.d.ts +0 -1
  330. package/dist/src/panel/panel.d.ts.map +1 -1
  331. package/dist/src/panel/panel.js +0 -1
  332. package/dist/src/password-field/index.d.ts +3 -0
  333. package/dist/src/password-field/index.d.ts.map +1 -0
  334. package/dist/src/password-field/index.js +1 -0
  335. package/dist/src/{passwordField/passwordField.d.ts → password-field/password-field.d.ts} +1 -1
  336. package/dist/src/password-field/password-field.d.ts.map +1 -0
  337. package/dist/src/{passwordField/passwordField.js → password-field/password-field.js} +4 -5
  338. package/dist/src/places/index.d.ts.map +1 -1
  339. package/dist/src/places/places.d.ts +3 -4
  340. package/dist/src/places/places.d.ts.map +1 -1
  341. package/dist/src/places/places.js +8 -2
  342. package/dist/src/props-list/index.d.ts +3 -0
  343. package/dist/src/props-list/index.d.ts.map +1 -0
  344. package/dist/src/props-list/index.js +1 -0
  345. package/dist/src/{propsList/propsList.d.ts → props-list/props-list.d.ts} +2 -2
  346. package/dist/src/props-list/props-list.d.ts.map +1 -0
  347. package/dist/src/{propsList/propsList.js → props-list/props-list.js} +2 -2
  348. package/dist/src/prose/index.d.ts.map +1 -1
  349. package/dist/src/prose/prose.d.ts.map +1 -1
  350. package/dist/src/query-chip/index.d.ts +3 -0
  351. package/dist/src/query-chip/index.d.ts.map +1 -0
  352. package/dist/src/query-chip/index.js +1 -0
  353. package/dist/src/{queryChip/queryChip.d.ts → query-chip/query-chip.d.ts} +1 -1
  354. package/dist/src/query-chip/query-chip.d.ts.map +1 -0
  355. package/dist/src/{queryChip/queryChip.js → query-chip/query-chip.js} +7 -4
  356. package/dist/src/{radioChoices → radio-choices}/index.d.ts +2 -2
  357. package/dist/src/radio-choices/index.d.ts.map +1 -0
  358. package/dist/src/{radioChoices → radio-choices}/index.js +1 -1
  359. package/dist/src/{radioChoices/radioChoices.d.ts → radio-choices/radio-choices.d.ts} +3 -3
  360. package/dist/src/radio-choices/radio-choices.d.ts.map +1 -0
  361. package/dist/src/{radioChoices/radioChoices.js → radio-choices/radio-choices.js} +25 -24
  362. package/dist/src/rail/index.d.ts.map +1 -1
  363. package/dist/src/rail/rail.d.ts +16 -32
  364. package/dist/src/rail/rail.d.ts.map +1 -1
  365. package/dist/src/rail/rail.js +97 -65
  366. package/dist/src/reel/index.d.ts +1 -1
  367. package/dist/src/reel/index.d.ts.map +1 -1
  368. package/dist/src/reel/layout.d.ts +12 -54
  369. package/dist/src/reel/layout.d.ts.map +1 -1
  370. package/dist/src/reel/layout.js +120 -145
  371. package/dist/src/reel/reel.d.ts +35 -34
  372. package/dist/src/reel/reel.d.ts.map +1 -1
  373. package/dist/src/reel/reel.js +253 -233
  374. package/dist/src/remote/index.d.ts.map +1 -1
  375. package/dist/src/remote/remote.d.ts +2 -2
  376. package/dist/src/remote/remote.d.ts.map +1 -1
  377. package/dist/src/remote/remote.js +6 -2
  378. package/dist/src/rows/index.d.ts.map +1 -1
  379. package/dist/src/rows/rows.d.ts +2 -2
  380. package/dist/src/rows/rows.d.ts.map +1 -1
  381. package/dist/src/rows/rows.js +16 -7
  382. package/dist/src/scheme/index.d.ts +1 -1
  383. package/dist/src/scheme/index.d.ts.map +1 -1
  384. package/dist/src/scheme/index.js +1 -1
  385. package/dist/src/scheme/{schemeSwitch.d.ts → scheme-switch.d.ts} +2 -2
  386. package/dist/src/scheme/scheme-switch.d.ts.map +1 -0
  387. package/dist/src/scheme/{schemeSwitch.js → scheme-switch.js} +33 -38
  388. package/dist/src/scheme/scheme.d.ts +0 -2
  389. package/dist/src/scheme/scheme.d.ts.map +1 -1
  390. package/dist/src/scheme/scheme.js +0 -2
  391. package/dist/src/secret/index.d.ts.map +1 -1
  392. package/dist/src/secret/secret.d.ts.map +1 -1
  393. package/dist/src/segmented/index.d.ts.map +1 -1
  394. package/dist/src/segmented/segmented.d.ts.map +1 -1
  395. package/dist/src/segmented/segmented.js +14 -3
  396. package/dist/src/select-all/index.d.ts +3 -0
  397. package/dist/src/select-all/index.d.ts.map +1 -0
  398. package/dist/src/select-all/index.js +1 -0
  399. package/dist/src/{selectAll/selectAll.d.ts → select-all/select-all.d.ts} +1 -1
  400. package/dist/src/select-all/select-all.d.ts.map +1 -0
  401. package/dist/src/{selectAll/selectAll.js → select-all/select-all.js} +2 -2
  402. package/dist/src/select-field/index.d.ts +3 -0
  403. package/dist/src/select-field/index.d.ts.map +1 -0
  404. package/dist/src/select-field/index.js +1 -0
  405. package/dist/src/{selectField/selectField.d.ts → select-field/select-field.d.ts} +2 -2
  406. package/dist/src/select-field/select-field.d.ts.map +1 -0
  407. package/dist/src/{selectField/selectField.js → select-field/select-field.js} +10 -7
  408. package/dist/src/sheet/index.d.ts.map +1 -1
  409. package/dist/src/sheet/sheet.d.ts.map +1 -1
  410. package/dist/src/sheet/sheet.js +4 -1
  411. package/dist/src/skip-link/index.d.ts +2 -0
  412. package/dist/src/skip-link/index.d.ts.map +1 -0
  413. package/dist/src/skip-link/index.js +1 -0
  414. package/dist/src/{skipLink/skipLink.d.ts → skip-link/skip-link.d.ts} +1 -3
  415. package/dist/src/skip-link/skip-link.d.ts.map +1 -0
  416. package/dist/src/{skipLink/skipLink.js → skip-link/skip-link.js} +7 -11
  417. package/dist/src/slot/slot.d.ts +1 -4
  418. package/dist/src/slot/slot.d.ts.map +1 -1
  419. package/dist/src/slot/slot.js +3 -3
  420. package/dist/src/sortable/index.d.ts.map +1 -1
  421. package/dist/src/sortable/sortable.d.ts +44 -44
  422. package/dist/src/sortable/sortable.d.ts.map +1 -1
  423. package/dist/src/sortable/sortable.js +60 -93
  424. package/dist/src/stack/index.d.ts.map +1 -1
  425. package/dist/src/stack/stack.d.ts.map +1 -1
  426. package/dist/src/stack/stack.js +0 -2
  427. package/dist/src/stage/index.d.ts.map +1 -1
  428. package/dist/src/stage/stage.d.ts +1 -1
  429. package/dist/src/stage/stage.d.ts.map +1 -1
  430. package/dist/src/stage/stage.js +4 -1
  431. package/dist/src/stat/index.d.ts.map +1 -1
  432. package/dist/src/stat/stat.d.ts +1 -1
  433. package/dist/src/stat/stat.d.ts.map +1 -1
  434. package/dist/src/stat/stat.js +17 -8
  435. package/dist/src/status-bar/index.d.ts +4 -0
  436. package/dist/src/status-bar/index.d.ts.map +1 -0
  437. package/dist/src/status-bar/index.js +2 -0
  438. package/dist/src/{statusBar/statusBar.d.ts → status-bar/status-bar.d.ts} +4 -4
  439. package/dist/src/status-bar/status-bar.d.ts.map +1 -0
  440. package/dist/src/{statusBar/statusBar.js → status-bar/status-bar.js} +5 -6
  441. package/dist/src/subscription/{prefixKeys.d.ts → prefix-keys.d.ts} +1 -2
  442. package/dist/src/subscription/prefix-keys.d.ts.map +1 -0
  443. package/dist/src/subscription/{prefixKeys.js → prefix-keys.js} +2 -5
  444. package/dist/src/table/index.d.ts.map +1 -1
  445. package/dist/src/table/table.d.ts +1 -1
  446. package/dist/src/table/table.d.ts.map +1 -1
  447. package/dist/src/table/table.js +19 -7
  448. package/dist/src/tabs/index.d.ts.map +1 -1
  449. package/dist/src/tabs/tabs.d.ts +4 -4
  450. package/dist/src/tabs/tabs.d.ts.map +1 -1
  451. package/dist/src/tabs/tabs.js +1 -6
  452. package/dist/src/tag/index.d.ts.map +1 -1
  453. package/dist/src/tag/tag.d.ts.map +1 -1
  454. package/dist/src/tag/tag.js +4 -1
  455. package/dist/src/text-button/index.d.ts +3 -0
  456. package/dist/src/text-button/index.d.ts.map +1 -0
  457. package/dist/src/text-button/index.js +1 -0
  458. package/dist/src/{textButton/textButton.d.ts → text-button/text-button.d.ts} +1 -1
  459. package/dist/src/text-button/text-button.d.ts.map +1 -0
  460. package/dist/src/{textButton/textButton.js → text-button/text-button.js} +2 -2
  461. package/dist/src/textarea-field/index.d.ts +3 -0
  462. package/dist/src/textarea-field/index.d.ts.map +1 -0
  463. package/dist/src/textarea-field/index.js +1 -0
  464. package/dist/src/{textareaField/textareaField.d.ts → textarea-field/textarea-field.d.ts} +1 -1
  465. package/dist/src/textarea-field/textarea-field.d.ts.map +1 -0
  466. package/dist/src/{textareaField/textareaField.js → textarea-field/textarea-field.js} +2 -2
  467. package/dist/src/time/index.d.ts.map +1 -1
  468. package/dist/src/time/time.d.ts.map +1 -1
  469. package/dist/src/time/time.js +16 -9
  470. package/dist/src/tips/index.d.ts.map +1 -1
  471. package/dist/src/tips/tips.d.ts +7 -18
  472. package/dist/src/tips/tips.d.ts.map +1 -1
  473. package/dist/src/tips/tips.js +67 -65
  474. package/dist/src/toast/index.d.ts.map +1 -1
  475. package/dist/src/toast/stack.d.ts +1 -8
  476. package/dist/src/toast/stack.d.ts.map +1 -1
  477. package/dist/src/toast/stack.js +5 -18
  478. package/dist/src/toast/toast.d.ts +3 -5
  479. package/dist/src/toast/toast.d.ts.map +1 -1
  480. package/dist/src/toast/toast.js +42 -39
  481. package/dist/src/toc/index.d.ts.map +1 -1
  482. package/dist/src/toc/toc.d.ts +3 -3
  483. package/dist/src/toc/toc.d.ts.map +1 -1
  484. package/dist/src/toc/toc.js +10 -7
  485. package/dist/src/toolbar/index.d.ts.map +1 -1
  486. package/dist/src/toolbar/toolbar.d.ts +1 -1
  487. package/dist/src/toolbar/toolbar.d.ts.map +1 -1
  488. package/dist/src/toolbar/toolbar.js +27 -24
  489. package/dist/src/{topBar/barHeight.d.ts → top-bar/bar-height.d.ts} +1 -2
  490. package/dist/src/top-bar/bar-height.d.ts.map +1 -0
  491. package/dist/src/{topBar/barHeight.js → top-bar/bar-height.js} +20 -13
  492. package/dist/src/top-bar/index.d.ts +4 -0
  493. package/dist/src/top-bar/index.d.ts.map +1 -0
  494. package/dist/src/top-bar/index.js +2 -0
  495. package/dist/src/{topBar/topBar.d.ts → top-bar/top-bar.d.ts} +3 -3
  496. package/dist/src/top-bar/top-bar.d.ts.map +1 -0
  497. package/dist/src/{topBar/topBar.js → top-bar/top-bar.js} +2 -2
  498. package/dist/src/video-frame/index.d.ts +3 -0
  499. package/dist/src/video-frame/index.d.ts.map +1 -0
  500. package/dist/src/video-frame/index.js +1 -0
  501. package/dist/src/{videoFrame/videoFrame.d.ts → video-frame/video-frame.d.ts} +1 -1
  502. package/dist/src/video-frame/video-frame.d.ts.map +1 -0
  503. package/dist/src/{videoFrame/videoFrame.js → video-frame/video-frame.js} +11 -7
  504. package/dist/src/wall/index.d.ts.map +1 -1
  505. package/dist/src/wall/wall.d.ts.map +1 -1
  506. package/dist/src/window/index.d.ts.map +1 -1
  507. package/dist/src/window/window.d.ts +2 -2
  508. package/dist/src/window/window.d.ts.map +1 -1
  509. package/dist/src/window/window.js +4 -2
  510. package/dist/src/wordmark/index.d.ts.map +1 -1
  511. package/dist/src/wordmark/wordmark.d.ts.map +1 -1
  512. package/dist/src/wrap/index.d.ts.map +1 -1
  513. package/dist/src/wrap/wrap.d.ts.map +1 -1
  514. package/package.json +6 -6
  515. package/src/adapters/diagram.ts +278 -0
  516. package/src/adapters/mermaid.ts +13 -273
  517. package/src/announcer/announcer.ts +54 -35
  518. package/src/attributes/attributes.ts +3 -1
  519. package/src/{audioFrame/audioFrame.ts → audio-frame/audio-frame.ts} +4 -6
  520. package/src/audio-frame/index.ts +3 -0
  521. package/src/banner/banner.ts +5 -4
  522. package/src/banner/index.ts +1 -0
  523. package/src/{barChart/barChart.ts → bar-chart/bar-chart.ts} +81 -43
  524. package/src/bar-chart/index.ts +3 -0
  525. package/src/bench/bench.ts +5 -4
  526. package/src/bench/index.ts +1 -0
  527. package/src/board/board.ts +338 -243
  528. package/src/board/index.ts +8 -1
  529. package/src/button/button.ts +24 -16
  530. package/src/button/index.ts +8 -1
  531. package/src/card/card.ts +23 -21
  532. package/src/card/index.ts +1 -0
  533. package/src/chart-table/chart-table.ts +87 -0
  534. package/src/chip/chip.ts +13 -9
  535. package/src/chip/index.ts +1 -0
  536. package/src/choice/choice.ts +13 -7
  537. package/src/choice/index.ts +1 -0
  538. package/src/choices/choices.ts +4 -3
  539. package/src/choices/index.ts +1 -0
  540. package/src/{codeEditor/codeEditor.ts → code-editor/code-editor.ts} +5 -4
  541. package/src/code-editor/index.ts +3 -0
  542. package/src/{codeSurface/codeSurface.ts → code-surface/code-surface.ts} +11 -5
  543. package/src/code-surface/index.ts +3 -0
  544. package/src/{commandPalette/commandPalette.ts → command-palette/command-palette.ts} +470 -295
  545. package/src/{commandPalette → command-palette}/index.ts +12 -2
  546. package/src/{commandPalette → command-palette}/keys.ts +44 -43
  547. package/src/{commandPalette → command-palette}/match.ts +42 -30
  548. package/src/{commandPalette → command-palette}/message.ts +13 -20
  549. package/src/{confirmDialog/confirmDialog.ts → confirm-dialog/confirm-dialog.ts} +51 -46
  550. package/src/{confirmDialog → confirm-dialog}/index.ts +3 -2
  551. package/src/{contextMenu/contextMenu.ts → context-menu/context-menu.ts} +71 -70
  552. package/src/{contextMenu → context-menu}/index.ts +4 -2
  553. package/src/{copyButton/copyButton.ts → copy-button/copy-button.ts} +51 -54
  554. package/src/{copyButton → copy-button}/index.ts +3 -2
  555. package/src/crumbs/crumbs.ts +7 -6
  556. package/src/crumbs/index.ts +1 -0
  557. package/src/deck/deck.ts +4 -3
  558. package/src/deck/index.ts +1 -0
  559. package/src/dialog/dialog.ts +135 -113
  560. package/src/dialog/fold.ts +44 -25
  561. package/src/dialog/index.ts +9 -1
  562. package/src/disclosure/disclosure.ts +14 -8
  563. package/src/disclosure/index.ts +1 -0
  564. package/src/dom/html-element.ts +10 -0
  565. package/src/drag/drag.ts +102 -119
  566. package/src/{dropZone/dropZone.ts → drop-zone/drop-zone.ts} +43 -43
  567. package/src/drop-zone/index.ts +11 -0
  568. package/src/{editableTitle/editableTitle.ts → editable-title/editable-title.ts} +29 -32
  569. package/src/{editableTitle → editable-title}/index.ts +4 -2
  570. package/src/{emptyState/emptyState.ts → empty-state/empty-state.ts} +9 -5
  571. package/src/empty-state/index.ts +3 -0
  572. package/src/{errorSummary/errorSummary.ts → error-summary/error-summary.ts} +16 -7
  573. package/src/error-summary/index.ts +3 -0
  574. package/src/field/field.ts +38 -28
  575. package/src/field/index.ts +1 -0
  576. package/src/{fieldGrid/fieldGrid.ts → field-grid/field-grid.ts} +4 -3
  577. package/src/field-grid/index.ts +3 -0
  578. package/src/fields/fields.ts +9 -5
  579. package/src/fields/index.ts +1 -0
  580. package/src/fieldset/fieldset.ts +6 -5
  581. package/src/fieldset/index.ts +1 -0
  582. package/src/{fileTree/fileTree.ts → file-tree/file-tree.ts} +241 -166
  583. package/src/file-tree/index.ts +12 -0
  584. package/src/{filterChip/filterChip.ts → filter-chip/filter-chip.ts} +32 -13
  585. package/src/filter-chip/index.ts +3 -0
  586. package/src/{filterStrip/filterStrip.ts → filter-strip/filter-strip.ts} +4 -3
  587. package/src/filter-strip/index.ts +3 -0
  588. package/src/{flashWord/flashWord.ts → flash-word/flash-word.ts} +9 -7
  589. package/src/flash-word/index.ts +3 -0
  590. package/src/focus/focus.ts +5 -5
  591. package/src/format/format.ts +37 -31
  592. package/src/format/index.ts +1 -0
  593. package/src/glyph/glyph.ts +7 -6
  594. package/src/glyph/glyphs.ts +2601 -2611
  595. package/src/glyph/index.ts +3 -0
  596. package/src/group/group.ts +4 -3
  597. package/src/group/index.ts +1 -0
  598. package/src/history/history.ts +18 -10
  599. package/src/history/index.ts +1 -0
  600. package/src/{iconButton/iconButton.ts → icon-button/icon-button.ts} +13 -7
  601. package/src/icon-button/index.ts +3 -0
  602. package/src/identity/identity.ts +7 -6
  603. package/src/identity/index.ts +1 -0
  604. package/src/{imageFrame/imageFrame.ts → image-frame/image-frame.ts} +43 -25
  605. package/src/image-frame/index.ts +3 -0
  606. package/src/index.ts +139 -41
  607. package/src/{inlineInput → inline-input}/index.ts +3 -2
  608. package/src/{inlineInput/inlineInput.ts → inline-input/inline-input.ts} +97 -88
  609. package/src/{keyHelp → key-help}/index.ts +3 -2
  610. package/src/{keyHelp/keyHelp.ts → key-help/key-help.ts} +74 -62
  611. package/src/key-hint/index.ts +5 -0
  612. package/src/{keyHint/keyHint.ts → key-hint/key-hint.ts} +10 -5
  613. package/src/{keyHint/keyLabel.ts → key-hint/key-label.ts} +43 -22
  614. package/src/keymap/index.ts +1 -0
  615. package/src/keymap/keymap.ts +23 -9
  616. package/src/keys/keys.ts +0 -2
  617. package/src/line-chart/index.ts +3 -0
  618. package/src/{lineChart/lineChart.ts → line-chart/line-chart.ts} +71 -49
  619. package/src/line-diff/diff.ts +196 -0
  620. package/src/line-diff/index.ts +7 -0
  621. package/src/{lineDiff/lineDiff.ts → line-diff/line-diff.ts} +45 -23
  622. package/src/{lineDiff → line-diff}/patch.ts +104 -76
  623. package/src/link-button/index.ts +3 -0
  624. package/src/{linkButton/linkButton.ts → link-button/link-button.ts} +7 -5
  625. package/src/link-state/index.ts +3 -0
  626. package/src/{linkState/linkState.ts → link-state/link-state.ts} +20 -9
  627. package/src/live-region/index.ts +3 -0
  628. package/src/{liveRegion/liveRegion.ts → live-region/live-region.ts} +15 -11
  629. package/src/loading/index.ts +1 -0
  630. package/src/loading/loading.ts +10 -5
  631. package/src/mark/index.ts +1 -0
  632. package/src/mark/mark.ts +17 -15
  633. package/src/media/index.ts +1 -0
  634. package/src/media/media.ts +255 -157
  635. package/src/menu/index.ts +4 -0
  636. package/src/menu/item.ts +10 -11
  637. package/src/menu/menu.ts +110 -97
  638. package/src/menu/slip.ts +129 -92
  639. package/src/meter/index.ts +1 -0
  640. package/src/meter/meter.ts +52 -33
  641. package/src/monogram/index.ts +1 -0
  642. package/src/monogram/monogram.ts +27 -19
  643. package/src/nav-strip/index.ts +3 -0
  644. package/src/{navStrip/navStrip.ts → nav-strip/nav-strip.ts} +21 -13
  645. package/src/notice/index.ts +1 -0
  646. package/src/notice/notice.ts +24 -16
  647. package/src/outcome/index.ts +1 -0
  648. package/src/outcome/outcome.ts +14 -6
  649. package/src/page-head/index.ts +3 -0
  650. package/src/{pageHead/pageHead.ts → page-head/page-head.ts} +6 -5
  651. package/src/panel/index.ts +1 -0
  652. package/src/panel/panel.ts +6 -6
  653. package/src/password-field/index.ts +3 -0
  654. package/src/{passwordField/passwordField.ts → password-field/password-field.ts} +13 -13
  655. package/src/pixel-paper.css +26 -508
  656. package/src/places/index.ts +1 -0
  657. package/src/places/places.ts +22 -11
  658. package/src/props-list/index.ts +3 -0
  659. package/src/{propsList/propsList.ts → props-list/props-list.ts} +6 -6
  660. package/src/prose/index.ts +1 -0
  661. package/src/prose/prose.ts +4 -4
  662. package/src/query-chip/index.ts +3 -0
  663. package/src/{queryChip/queryChip.ts → query-chip/query-chip.ts} +18 -7
  664. package/src/{radioChoices → radio-choices}/index.ts +3 -2
  665. package/src/{radioChoices/radioChoices.ts → radio-choices/radio-choices.ts} +79 -65
  666. package/src/rail/index.ts +1 -0
  667. package/src/rail/rail.ts +291 -225
  668. package/src/reel/index.ts +8 -1
  669. package/src/reel/layout.ts +393 -238
  670. package/src/reel/reel.ts +750 -452
  671. package/src/remote/index.ts +1 -0
  672. package/src/remote/remote.ts +18 -11
  673. package/src/rows/index.ts +1 -0
  674. package/src/rows/rows.ts +83 -47
  675. package/src/scheme/index.ts +3 -1
  676. package/src/scheme/{schemeSwitch.ts → scheme-switch.ts} +24 -35
  677. package/src/scheme/scheme.ts +4 -4
  678. package/src/secret/index.ts +1 -0
  679. package/src/secret/secret.ts +5 -4
  680. package/src/segmented/index.ts +1 -0
  681. package/src/segmented/segmented.ts +22 -10
  682. package/src/select-all/index.ts +3 -0
  683. package/src/{selectAll/selectAll.ts → select-all/select-all.ts} +9 -8
  684. package/src/{selectField → select-field}/index.ts +3 -2
  685. package/src/{selectField/selectField.ts → select-field/select-field.ts} +25 -11
  686. package/src/sheet/index.ts +1 -0
  687. package/src/sheet/sheet.ts +9 -5
  688. package/src/skip-link/index.ts +1 -0
  689. package/src/{skipLink/skipLink.ts → skip-link/skip-link.ts} +9 -15
  690. package/src/slot/slot.ts +5 -6
  691. package/src/sortable/index.ts +1 -0
  692. package/src/sortable/sortable.ts +287 -206
  693. package/src/stack/index.ts +1 -0
  694. package/src/stack/stack.ts +6 -7
  695. package/src/stage/index.ts +1 -0
  696. package/src/stage/stage.ts +12 -8
  697. package/src/stat/index.ts +1 -0
  698. package/src/stat/stat.ts +39 -20
  699. package/src/status-bar/index.ts +5 -0
  700. package/src/{statusBar/statusBar.ts → status-bar/status-bar.ts} +18 -11
  701. package/src/subscription/{prefixKeys.ts → prefix-keys.ts} +5 -6
  702. package/src/table/index.ts +1 -0
  703. package/src/table/table.ts +49 -24
  704. package/src/tabs/index.ts +1 -0
  705. package/src/tabs/tabs.ts +58 -60
  706. package/src/tag/index.ts +1 -0
  707. package/src/tag/tag.ts +14 -7
  708. package/src/text-button/index.ts +3 -0
  709. package/src/{textButton/textButton.ts → text-button/text-button.ts} +7 -5
  710. package/src/textarea-field/index.ts +3 -0
  711. package/src/{textareaField/textareaField.ts → textarea-field/textarea-field.ts} +15 -7
  712. package/src/time/index.ts +1 -0
  713. package/src/time/time.ts +58 -25
  714. package/src/tips/index.ts +1 -0
  715. package/src/tips/tips.ts +183 -127
  716. package/src/toast/index.ts +3 -0
  717. package/src/toast/stack.ts +22 -23
  718. package/src/toast/toast.ts +168 -100
  719. package/src/toc/index.ts +1 -0
  720. package/src/toc/toc.ts +42 -27
  721. package/src/tokens.css +7 -24
  722. package/src/toolbar/index.ts +1 -0
  723. package/src/toolbar/toolbar.ts +78 -40
  724. package/src/{topBar/barHeight.ts → top-bar/bar-height.ts} +26 -12
  725. package/src/top-bar/index.ts +5 -0
  726. package/src/{topBar/topBar.ts → top-bar/top-bar.ts} +13 -7
  727. package/src/video-frame/index.ts +3 -0
  728. package/src/{videoFrame/videoFrame.ts → video-frame/video-frame.ts} +31 -18
  729. package/src/wall/index.ts +1 -0
  730. package/src/wall/wall.ts +13 -10
  731. package/src/window/index.ts +1 -0
  732. package/src/window/window.ts +15 -9
  733. package/src/wordmark/index.ts +1 -0
  734. package/src/wordmark/wordmark.ts +4 -3
  735. package/src/wrap/index.ts +1 -0
  736. package/src/wrap/wrap.ts +4 -3
  737. package/dist/src/audioFrame/audioFrame.d.ts.map +0 -1
  738. package/dist/src/audioFrame/index.d.ts +0 -3
  739. package/dist/src/audioFrame/index.d.ts.map +0 -1
  740. package/dist/src/audioFrame/index.js +0 -1
  741. package/dist/src/barChart/barChart.d.ts.map +0 -1
  742. package/dist/src/barChart/index.d.ts +0 -3
  743. package/dist/src/barChart/index.d.ts.map +0 -1
  744. package/dist/src/barChart/index.js +0 -1
  745. package/dist/src/chartTable/chartTable.d.ts.map +0 -1
  746. package/dist/src/codeEditor/codeEditor.d.ts.map +0 -1
  747. package/dist/src/codeEditor/index.d.ts +0 -3
  748. package/dist/src/codeEditor/index.d.ts.map +0 -1
  749. package/dist/src/codeEditor/index.js +0 -1
  750. package/dist/src/codeSurface/codeSurface.d.ts.map +0 -1
  751. package/dist/src/codeSurface/index.d.ts +0 -3
  752. package/dist/src/codeSurface/index.d.ts.map +0 -1
  753. package/dist/src/codeSurface/index.js +0 -1
  754. package/dist/src/commandPalette/commandPalette.d.ts.map +0 -1
  755. package/dist/src/commandPalette/commandPalette.js +0 -611
  756. package/dist/src/commandPalette/index.d.ts.map +0 -1
  757. package/dist/src/commandPalette/keys.d.ts.map +0 -1
  758. package/dist/src/commandPalette/keys.js +0 -102
  759. package/dist/src/commandPalette/match.d.ts.map +0 -1
  760. package/dist/src/commandPalette/message.d.ts.map +0 -1
  761. package/dist/src/confirmDialog/confirmDialog.d.ts.map +0 -1
  762. package/dist/src/confirmDialog/index.d.ts +0 -3
  763. package/dist/src/confirmDialog/index.d.ts.map +0 -1
  764. package/dist/src/contextMenu/contextMenu.d.ts.map +0 -1
  765. package/dist/src/contextMenu/index.d.ts.map +0 -1
  766. package/dist/src/copyButton/copyButton.d.ts.map +0 -1
  767. package/dist/src/copyButton/index.d.ts +0 -3
  768. package/dist/src/copyButton/index.d.ts.map +0 -1
  769. package/dist/src/copyButton/index.js +0 -1
  770. package/dist/src/dropZone/dropZone.d.ts.map +0 -1
  771. package/dist/src/dropZone/index.d.ts +0 -3
  772. package/dist/src/dropZone/index.d.ts.map +0 -1
  773. package/dist/src/dropZone/index.js +0 -1
  774. package/dist/src/editableTitle/editableTitle.d.ts.map +0 -1
  775. package/dist/src/editableTitle/index.d.ts +0 -4
  776. package/dist/src/editableTitle/index.d.ts.map +0 -1
  777. package/dist/src/emptyState/emptyState.d.ts.map +0 -1
  778. package/dist/src/emptyState/index.d.ts +0 -3
  779. package/dist/src/emptyState/index.d.ts.map +0 -1
  780. package/dist/src/emptyState/index.js +0 -1
  781. package/dist/src/errorSummary/errorSummary.d.ts.map +0 -1
  782. package/dist/src/errorSummary/index.d.ts +0 -3
  783. package/dist/src/errorSummary/index.d.ts.map +0 -1
  784. package/dist/src/errorSummary/index.js +0 -1
  785. package/dist/src/fieldGrid/fieldGrid.d.ts.map +0 -1
  786. package/dist/src/fieldGrid/index.d.ts +0 -3
  787. package/dist/src/fieldGrid/index.d.ts.map +0 -1
  788. package/dist/src/fieldGrid/index.js +0 -1
  789. package/dist/src/fileTree/fileTree.d.ts.map +0 -1
  790. package/dist/src/fileTree/fileTree.js +0 -230
  791. package/dist/src/fileTree/index.d.ts +0 -3
  792. package/dist/src/fileTree/index.d.ts.map +0 -1
  793. package/dist/src/filterChip/filterChip.d.ts.map +0 -1
  794. package/dist/src/filterChip/index.d.ts +0 -3
  795. package/dist/src/filterChip/index.d.ts.map +0 -1
  796. package/dist/src/filterChip/index.js +0 -1
  797. package/dist/src/filterStrip/filterStrip.d.ts.map +0 -1
  798. package/dist/src/filterStrip/index.d.ts +0 -3
  799. package/dist/src/filterStrip/index.d.ts.map +0 -1
  800. package/dist/src/filterStrip/index.js +0 -1
  801. package/dist/src/flashWord/flashWord.d.ts.map +0 -1
  802. package/dist/src/flashWord/index.d.ts +0 -3
  803. package/dist/src/flashWord/index.d.ts.map +0 -1
  804. package/dist/src/flashWord/index.js +0 -1
  805. package/dist/src/iconButton/iconButton.d.ts.map +0 -1
  806. package/dist/src/iconButton/index.d.ts +0 -3
  807. package/dist/src/iconButton/index.d.ts.map +0 -1
  808. package/dist/src/iconButton/index.js +0 -1
  809. package/dist/src/imageFrame/imageFrame.d.ts.map +0 -1
  810. package/dist/src/imageFrame/index.d.ts +0 -3
  811. package/dist/src/imageFrame/index.d.ts.map +0 -1
  812. package/dist/src/imageFrame/index.js +0 -1
  813. package/dist/src/inlineInput/index.d.ts +0 -3
  814. package/dist/src/inlineInput/index.d.ts.map +0 -1
  815. package/dist/src/inlineInput/inlineInput.d.ts.map +0 -1
  816. package/dist/src/keyHelp/index.d.ts +0 -3
  817. package/dist/src/keyHelp/index.d.ts.map +0 -1
  818. package/dist/src/keyHelp/keyHelp.d.ts.map +0 -1
  819. package/dist/src/keyHint/index.d.ts +0 -4
  820. package/dist/src/keyHint/index.d.ts.map +0 -1
  821. package/dist/src/keyHint/index.js +0 -2
  822. package/dist/src/keyHint/keyHint.d.ts.map +0 -1
  823. package/dist/src/keyHint/keyLabel.d.ts.map +0 -1
  824. package/dist/src/lineChart/index.d.ts +0 -3
  825. package/dist/src/lineChart/index.d.ts.map +0 -1
  826. package/dist/src/lineChart/index.js +0 -1
  827. package/dist/src/lineChart/lineChart.d.ts.map +0 -1
  828. package/dist/src/lineDiff/diff.d.ts +0 -41
  829. package/dist/src/lineDiff/diff.d.ts.map +0 -1
  830. package/dist/src/lineDiff/diff.js +0 -92
  831. package/dist/src/lineDiff/index.d.ts +0 -5
  832. package/dist/src/lineDiff/index.d.ts.map +0 -1
  833. package/dist/src/lineDiff/index.js +0 -2
  834. package/dist/src/lineDiff/lineDiff.d.ts.map +0 -1
  835. package/dist/src/lineDiff/patch.d.ts.map +0 -1
  836. package/dist/src/linkButton/index.d.ts +0 -3
  837. package/dist/src/linkButton/index.d.ts.map +0 -1
  838. package/dist/src/linkButton/index.js +0 -1
  839. package/dist/src/linkButton/linkButton.d.ts.map +0 -1
  840. package/dist/src/linkState/index.d.ts +0 -3
  841. package/dist/src/linkState/index.d.ts.map +0 -1
  842. package/dist/src/linkState/index.js +0 -1
  843. package/dist/src/linkState/linkState.d.ts.map +0 -1
  844. package/dist/src/linkState/linkState.js +0 -14
  845. package/dist/src/liveRegion/index.d.ts +0 -3
  846. package/dist/src/liveRegion/index.d.ts.map +0 -1
  847. package/dist/src/liveRegion/index.js +0 -1
  848. package/dist/src/liveRegion/liveRegion.d.ts.map +0 -1
  849. package/dist/src/navStrip/index.d.ts +0 -3
  850. package/dist/src/navStrip/index.d.ts.map +0 -1
  851. package/dist/src/navStrip/index.js +0 -1
  852. package/dist/src/navStrip/navStrip.d.ts.map +0 -1
  853. package/dist/src/navStrip/navStrip.js +0 -27
  854. package/dist/src/pageHead/index.d.ts +0 -3
  855. package/dist/src/pageHead/index.d.ts.map +0 -1
  856. package/dist/src/pageHead/index.js +0 -1
  857. package/dist/src/pageHead/pageHead.d.ts.map +0 -1
  858. package/dist/src/passwordField/index.d.ts +0 -3
  859. package/dist/src/passwordField/index.d.ts.map +0 -1
  860. package/dist/src/passwordField/index.js +0 -1
  861. package/dist/src/passwordField/passwordField.d.ts.map +0 -1
  862. package/dist/src/propsList/index.d.ts +0 -3
  863. package/dist/src/propsList/index.d.ts.map +0 -1
  864. package/dist/src/propsList/index.js +0 -1
  865. package/dist/src/propsList/propsList.d.ts.map +0 -1
  866. package/dist/src/queryChip/index.d.ts +0 -3
  867. package/dist/src/queryChip/index.d.ts.map +0 -1
  868. package/dist/src/queryChip/index.js +0 -1
  869. package/dist/src/queryChip/queryChip.d.ts.map +0 -1
  870. package/dist/src/radioChoices/index.d.ts.map +0 -1
  871. package/dist/src/radioChoices/radioChoices.d.ts.map +0 -1
  872. package/dist/src/scheme/schemeSwitch.d.ts.map +0 -1
  873. package/dist/src/selectAll/index.d.ts +0 -3
  874. package/dist/src/selectAll/index.d.ts.map +0 -1
  875. package/dist/src/selectAll/index.js +0 -1
  876. package/dist/src/selectAll/selectAll.d.ts.map +0 -1
  877. package/dist/src/selectField/index.d.ts +0 -3
  878. package/dist/src/selectField/index.d.ts.map +0 -1
  879. package/dist/src/selectField/index.js +0 -1
  880. package/dist/src/selectField/selectField.d.ts.map +0 -1
  881. package/dist/src/skipLink/index.d.ts +0 -2
  882. package/dist/src/skipLink/index.d.ts.map +0 -1
  883. package/dist/src/skipLink/index.js +0 -1
  884. package/dist/src/skipLink/skipLink.d.ts.map +0 -1
  885. package/dist/src/statusBar/index.d.ts +0 -4
  886. package/dist/src/statusBar/index.d.ts.map +0 -1
  887. package/dist/src/statusBar/index.js +0 -2
  888. package/dist/src/statusBar/statusBar.d.ts.map +0 -1
  889. package/dist/src/subscription/prefixKeys.d.ts.map +0 -1
  890. package/dist/src/textButton/index.d.ts +0 -3
  891. package/dist/src/textButton/index.d.ts.map +0 -1
  892. package/dist/src/textButton/index.js +0 -1
  893. package/dist/src/textButton/textButton.d.ts.map +0 -1
  894. package/dist/src/textareaField/index.d.ts +0 -3
  895. package/dist/src/textareaField/index.d.ts.map +0 -1
  896. package/dist/src/textareaField/index.js +0 -1
  897. package/dist/src/textareaField/textareaField.d.ts.map +0 -1
  898. package/dist/src/topBar/barHeight.d.ts.map +0 -1
  899. package/dist/src/topBar/index.d.ts +0 -4
  900. package/dist/src/topBar/index.d.ts.map +0 -1
  901. package/dist/src/topBar/index.js +0 -2
  902. package/dist/src/topBar/topBar.d.ts.map +0 -1
  903. package/dist/src/videoFrame/index.d.ts +0 -3
  904. package/dist/src/videoFrame/index.d.ts.map +0 -1
  905. package/dist/src/videoFrame/index.js +0 -1
  906. package/dist/src/videoFrame/videoFrame.d.ts.map +0 -1
  907. package/src/audioFrame/index.ts +0 -2
  908. package/src/barChart/index.ts +0 -2
  909. package/src/chartTable/chartTable.ts +0 -88
  910. package/src/codeEditor/index.ts +0 -2
  911. package/src/codeSurface/index.ts +0 -2
  912. package/src/dropZone/index.ts +0 -2
  913. package/src/emptyState/index.ts +0 -2
  914. package/src/errorSummary/index.ts +0 -2
  915. package/src/fieldGrid/index.ts +0 -2
  916. package/src/fileTree/index.ts +0 -2
  917. package/src/filterChip/index.ts +0 -2
  918. package/src/filterStrip/index.ts +0 -2
  919. package/src/flashWord/index.ts +0 -2
  920. package/src/iconButton/index.ts +0 -2
  921. package/src/imageFrame/index.ts +0 -2
  922. package/src/keyHint/index.ts +0 -3
  923. package/src/lineChart/index.ts +0 -2
  924. package/src/lineDiff/diff.ts +0 -182
  925. package/src/lineDiff/index.ts +0 -4
  926. package/src/linkButton/index.ts +0 -2
  927. package/src/linkState/index.ts +0 -2
  928. package/src/liveRegion/index.ts +0 -2
  929. package/src/navStrip/index.ts +0 -2
  930. package/src/pageHead/index.ts +0 -2
  931. package/src/passwordField/index.ts +0 -2
  932. package/src/propsList/index.ts +0 -2
  933. package/src/queryChip/index.ts +0 -2
  934. package/src/selectAll/index.ts +0 -2
  935. package/src/skipLink/index.ts +0 -1
  936. package/src/statusBar/index.ts +0 -3
  937. package/src/textButton/index.ts +0 -2
  938. package/src/textareaField/index.ts +0 -2
  939. package/src/topBar/index.ts +0 -3
  940. package/src/videoFrame/index.ts +0 -2
package/src/rail/rail.ts CHANGED
@@ -1,4 +1,5 @@
1
- import { Array, Cause, Effect, Number, Option, Schema, Stream } from "effect";
1
+ import type { Cause } from "effect";
2
+ import { Array, Effect, Number, Option, Schema, Stream } from "effect";
2
3
  import * as Command from "foldkit/command";
3
4
  import * as Dom from "foldkit/dom";
4
5
  import type { Html } from "foldkit/html";
@@ -11,19 +12,21 @@ import * as Subscription from "foldkit/subscription";
11
12
  import type * as Update from "foldkit/update";
12
13
 
13
14
  import * as Button from "../button/button.ts";
14
- import { escapeKeys, markDragging, pointerMessages, splitterAttributes } from "../drag/drag.ts";
15
- import * as IconButton from "../iconButton/iconButton.ts";
16
- import { prefixKeys } from "../subscription/prefixKeys.ts";
15
+ import { htmlElement } from "../dom/html-element.ts";
16
+ import {
17
+ escapeKeys,
18
+ markDragging,
19
+ pointerMessages,
20
+ splitterAttributes,
21
+ } from "../drag/drag.ts";
22
+ import * as IconButton from "../icon-button/icon-button.ts";
23
+ import { prefixKeys } from "../subscription/prefix-keys.ts";
17
24
 
18
- // MODEL
19
-
20
- /** A splitter a pointer drags: pressed at `pressX` on a rail `fromWidth` wide, and the width
21
- * it previews. */
22
25
  const Resizing = Schema.Struct({
23
- pointerId: Schema.Number,
24
- pressX: Schema.Number,
25
- fromWidth: Schema.Number,
26
- width: Schema.Number,
26
+ pointerId: Schema.Finite,
27
+ pressX: Schema.Finite,
28
+ fromWidth: Schema.Finite,
29
+ width: Schema.Finite,
27
30
  });
28
31
 
29
32
  /** Schema for a rail: whether it is open as a drawer (at 900px and under; wider, it is always
@@ -34,9 +37,8 @@ export const Model = Schema.Struct({
34
37
  isOpen: Schema.Boolean,
35
38
  maybeResizing: Schema.Option(Resizing),
36
39
  });
37
- export type Model = typeof Model.Type;
38
40
 
39
- // MESSAGE
41
+ export type Model = typeof Model.Type;
40
42
 
41
43
  /** Union of all Messages a rail can produce. `ClosedDrawer` is the browser closing it on
42
44
  * Escape or a press on the veil; `BlurredDrawer` is focus leaving it; `WidenedPastDrawer` is
@@ -44,12 +46,16 @@ export type Model = typeof Model.Type;
44
46
  export const Message = defineMessageUnion({
45
47
  ClickedOpen: {},
46
48
  ClickedToggle: {},
47
- PressedSplitter: { pointerId: Schema.Number, clientX: Schema.Number, width: Schema.Number },
48
- MovedSplitter: { clientX: Schema.Number },
49
- ReleasedSplitter: { clientX: Schema.Number },
49
+ PressedSplitter: {
50
+ pointerId: Schema.Finite,
51
+ clientX: Schema.Finite,
52
+ width: Schema.Finite,
53
+ },
54
+ MovedSplitter: { clientX: Schema.Finite },
55
+ ReleasedSplitter: { clientX: Schema.Finite },
50
56
  CancelledSplitter: {},
51
57
  PressedEscape: {},
52
- PressedSplitterKey: { width: Schema.Number },
58
+ PressedSplitterKey: { width: Schema.Finite },
53
59
  ClickedClose: {},
54
60
  ClosedDrawer: {},
55
61
  BlurredDrawer: {},
@@ -58,6 +64,7 @@ export const Message = defineMessageUnion({
58
64
  CompletedHideRailDrawer: {},
59
65
  CompletedFocusRailToggle: {},
60
66
  });
67
+
61
68
  export type Message = typeof Message.Type;
62
69
 
63
70
  /** What a rail asks of its parent. `ResizedRail`: its splitter was let go, or stepped by a
@@ -66,12 +73,11 @@ export type Message = typeof Message.Type;
66
73
  * parent flips whether it keeps the rail hidden (per client) and passes it back as the view's
67
74
  * `isHidden`. */
68
75
  export const OutMessage = defineMessageUnion({
69
- ResizedRail: { width: Schema.Number },
76
+ ResizedRail: { width: Schema.Finite },
70
77
  ToggledRail: {},
71
78
  });
72
- export type OutMessage = typeof OutMessage.Type;
73
79
 
74
- // INIT
80
+ export type OutMessage = typeof OutMessage.Type;
75
81
 
76
82
  /** Configuration for creating a rail with `init`. The `id` is the rail's, unique in the
77
83
  * document. */
@@ -84,20 +90,24 @@ export const init = (config: InitConfig): Model => ({
84
90
  maybeResizing: Option.none(),
85
91
  });
86
92
 
87
- // WIDTH
93
+ const WIDEST_DRAWER_WINDOW = 900;
94
+ const NARROWEST_RAILED_WINDOW = WIDEST_DRAWER_WINDOW + 1;
95
+ const LEAST_DECK_WIDTH = 421;
88
96
 
89
- /** The rail's widths, in pixels: before the reader sizes it (as the stylesheet's `--rail` has
90
- * it, which the splitter says as its value until a width is given), the least its panels
91
- * still fit in (a tree's row keeps a glyph, a dot and a few words of its title), the most
92
- * (which leaves the deck at least 421px of a 901px window, the narrowest one the rail stands
93
- * in, more than a phone has), and what an arrow on its splitter moves it. The bounds and the
94
- * step are the component's, not tokens: the splitter says them as its values. */
95
- export const WIDTH = { start: 272, least: 220, most: 480, step: 16 };
97
+ export const WIDTH = {
98
+ start: 272,
99
+ leastFittingPanels: 220,
100
+ mostLeavingLeastDeck: NARROWEST_RAILED_WINDOW - LEAST_DECK_WIDTH,
101
+ arrowStep: 16,
102
+ };
96
103
 
97
104
  const bounded = (width: number): number =>
98
- Math.round(Number.clamp(width, { minimum: WIDTH.least, maximum: WIDTH.most }));
99
-
100
- // ACCESSORS
105
+ Math.round(
106
+ Number.clamp(width, {
107
+ minimum: WIDTH.leastFittingPanels,
108
+ maximum: WIDTH.mostLeavingLeastDeck,
109
+ })
110
+ );
101
111
 
102
112
  /** The rail's id, unique in the document. */
103
113
  export const id = (model: Model): string => model.id;
@@ -109,24 +119,24 @@ const openButtonId = (model: Model): string => `${model.id}-open`;
109
119
 
110
120
  const toggleId = (model: Model): string => `${model.id}-toggle`;
111
121
 
112
- // COMMAND
113
-
114
122
  const FOCUSABLE =
115
123
  "a[href], button:not(:disabled), input:not(:disabled), select:not(:disabled), textarea:not(:disabled), [tabindex]";
116
124
 
117
- const findRail = (railId: string): Effect.Effect<HTMLElement, Cause.NoSuchElementError> =>
125
+ const findRail = (
126
+ railId: string
127
+ ): Effect.Effect<HTMLElement, Cause.NoSuchElementError> =>
118
128
  Effect.suspend(() =>
119
- Effect.fromNullishOr(document.querySelector<HTMLElement>(`#${CSS.escape(railId)}`)),
129
+ Effect.fromOption(htmlElement(`#${CSS.escape(railId)}`))
120
130
  );
121
131
 
122
- /** The drawer's first Tab stop past its head: a control the keyboard reaches, so a tree's
123
- * items other than its one stop (`tabindex="-1"`) are passed over, and so is the toggle,
124
- * which the drawer does not print. */
125
132
  export const firstTabStop = (rail: Element): Option.Option<HTMLElement> =>
126
133
  Array.findFirst(
127
- Array.fromIterable(rail.querySelectorAll<HTMLElement>(`.rail-head ~ * :is(${FOCUSABLE})`)),
134
+ Array.fromIterable(
135
+ rail.querySelectorAll<HTMLElement>(`.rail-head ~ * :is(${FOCUSABLE})`)
136
+ ),
128
137
  (control) =>
129
- control.tabIndex >= 0 && control.closest("[inert], [hidden], .rail-toggle") === null,
138
+ control.tabIndex >= 0 &&
139
+ control.closest("[inert], [hidden], .rail-toggle") === null
130
140
  );
131
141
 
132
142
  /** Opens the rail as a drawer over the page and puts focus on its first control past its
@@ -138,9 +148,13 @@ export const ShowRailDrawer = Command.define("ShowRailDrawer", {
138
148
  Effect.gen(function* () {
139
149
  yield* Render.afterCommit;
140
150
  const rail = yield* findRail(railId);
151
+
141
152
  if (!rail.matches(":popover-open")) {
142
- yield* Effect.try(() => rail.showPopover());
153
+ yield* Effect.try(() => {
154
+ rail.showPopover();
155
+ });
143
156
  }
157
+
144
158
  const control = yield* Effect.fromOption(firstTabStop(rail));
145
159
  control.focus();
146
160
  }).pipe(Effect.ignore, Effect.as(Message.CompletedShowRailDrawer())),
@@ -148,21 +162,30 @@ export const ShowRailDrawer = Command.define("ShowRailDrawer", {
148
162
 
149
163
  /** Closes the drawer, and puts focus back on the button that opened it when asked. */
150
164
  export const HideRailDrawer = Command.define("HideRailDrawer", {
151
- args: { railId: Schema.String, buttonId: Schema.String, isReturningFocus: Schema.Boolean },
165
+ args: {
166
+ railId: Schema.String,
167
+ buttonId: Schema.String,
168
+ isReturningFocus: Schema.Boolean,
169
+ },
152
170
  messages: [Message.CompletedHideRailDrawer],
153
171
  execute: ({ railId, buttonId, isReturningFocus }) =>
154
172
  Effect.gen(function* () {
155
173
  yield* Render.afterCommit;
156
174
  const rail = yield* findRail(railId);
175
+
157
176
  if (rail.matches(":popover-open")) {
158
- yield* Effect.try(() => rail.hidePopover());
177
+ yield* Effect.try(() => {
178
+ rail.hidePopover();
179
+ });
159
180
  }
160
181
  }).pipe(
161
182
  Effect.ignore,
162
183
  Effect.andThen(
163
- isReturningFocus ? Dom.focus(`#${CSS.escape(buttonId)}`).pipe(Effect.ignore) : Effect.void,
184
+ isReturningFocus
185
+ ? Dom.focus(`#${CSS.escape(buttonId)}`).pipe(Effect.ignore)
186
+ : Effect.void
164
187
  ),
165
- Effect.as(Message.CompletedHideRailDrawer()),
188
+ Effect.as(Message.CompletedHideRailDrawer())
166
189
  ),
167
190
  });
168
191
 
@@ -174,19 +197,20 @@ export const FocusRailToggle = Command.define("FocusRailToggle", {
174
197
  messages: [Message.CompletedFocusRailToggle],
175
198
  execute: ({ railId, toggleId: buttonId }) =>
176
199
  Effect.gen(function* () {
177
- // NOTE: read before the fold renders, which takes away the control focus is on
178
200
  const rail = yield* findRail(railId);
179
201
  const active = document.activeElement;
202
+
180
203
  const isOnSplitter =
181
- active?.matches(`.rail-resize[aria-controls="${CSS.escape(railId)}"]`) ?? false;
204
+ active?.matches(
205
+ `.rail-resize[aria-controls="${CSS.escape(railId)}"]`
206
+ ) ?? false;
207
+
182
208
  if (rail.contains(active) || isOnSplitter) {
183
209
  yield* Dom.focus(`#${CSS.escape(buttonId)}`);
184
210
  }
185
211
  }).pipe(Effect.ignore, Effect.as(Message.CompletedFocusRailToggle())),
186
212
  });
187
213
 
188
- // UPDATE
189
-
190
214
  type UpdateReturn = Update.Return<Model, Message>;
191
215
 
192
216
  const closeDrawer = (model: Model, isReturningFocus: boolean): UpdateReturn =>
@@ -194,12 +218,15 @@ const closeDrawer = (model: Model, isReturningFocus: boolean): UpdateReturn =>
194
218
  ? {
195
219
  model: modifyFields(model, { isOpen: () => false }),
196
220
  commands: [
197
- HideRailDrawer({ railId: model.id, buttonId: openButtonId(model), isReturningFocus }),
221
+ HideRailDrawer({
222
+ railId: model.id,
223
+ buttonId: openButtonId(model),
224
+ isReturningFocus,
225
+ }),
198
226
  ],
199
227
  }
200
228
  : { model };
201
229
 
202
- /** Opens the rail's drawer and moves focus to its first Tab stop. */
203
230
  const open = (model: Model): UpdateReturn => ({
204
231
  model: modifyFields(model, { isOpen: () => true }),
205
232
  commands: [ShowRailDrawer({ railId: model.id })],
@@ -216,120 +243,141 @@ export const toggle = (model: Model): UpdateReturn => ({
216
243
  commands: [FocusRailToggle({ railId: model.id, toggleId: toggleId(model) })],
217
244
  });
218
245
 
219
- const withResizing = (model: Model, maybeResizing: Option.Option<typeof Resizing.Type>): Model =>
220
- modifyFields(model, { maybeResizing: () => maybeResizing });
246
+ const withResizing = (
247
+ model: Model,
248
+ maybeResizing: Option.Option<typeof Resizing.Type>
249
+ ): Model => modifyFields(model, { maybeResizing: () => maybeResizing });
221
250
 
222
- /** The width a dragged splitter previews with the pointer at `clientX`. */
223
251
  const dragTo = (model: Model, clientX: number): Model =>
224
252
  withResizing(
225
253
  model,
226
254
  Option.map(model.maybeResizing, (resizing) => ({
227
255
  ...resizing,
228
256
  width: bounded(resizing.fromWidth + clientX - resizing.pressX),
229
- })),
257
+ }))
230
258
  );
231
259
 
232
260
  /** Processes a rail Message and returns the next Model, Commands and OutMessage: a splitter let
233
261
  * go where it changes the width, or stepped by a key, asks for the width, and the toggle asks
234
262
  * to fold or unfold the rail. */
235
263
  export const update = (model: Model, message: Message) =>
236
- Message.match<Update.ReturnWithOutMessage<Model, Message, OutMessage>>(message, {
237
- ClickedOpen: () => open(model),
238
- ClickedToggle: () => ({ ...toggle(model), outMessage: OutMessage.ToggledRail() }),
239
- PressedSplitter: ({ pointerId, clientX, width }) =>
240
- Option.isSome(model.maybeResizing)
241
- ? { model }
242
- : {
243
- model: withResizing(
244
- model,
245
- Option.some({ pointerId, pressX: clientX, fromWidth: width, width }),
246
- ),
247
- },
248
- MovedSplitter: ({ clientX }) => ({ model: dragTo(model, clientX) }),
249
- ReleasedSplitter: ({ clientX }) =>
250
- Option.match(dragTo(model, clientX).maybeResizing, {
251
- onNone: () => ({ model }),
252
- onSome: ({ fromWidth, width }) => ({
253
- model: withResizing(model, Option.none()),
254
- ...(width === fromWidth ? {} : { outMessage: OutMessage.ResizedRail({ width }) }),
264
+ Message.match<Update.ReturnWithOutMessage<Model, Message, OutMessage>>(
265
+ message,
266
+ {
267
+ ClickedOpen: () => open(model),
268
+ ClickedToggle: () => ({
269
+ ...toggle(model),
270
+ outMessage: OutMessage.ToggledRail(),
271
+ }),
272
+ PressedSplitter: ({ pointerId, clientX, width }) =>
273
+ Option.isSome(model.maybeResizing)
274
+ ? { model }
275
+ : {
276
+ model: withResizing(
277
+ model,
278
+ Option.some({
279
+ pointerId,
280
+ pressX: clientX,
281
+ fromWidth: width,
282
+ width,
283
+ })
284
+ ),
285
+ },
286
+ MovedSplitter: ({ clientX }) => ({ model: dragTo(model, clientX) }),
287
+ ReleasedSplitter: ({ clientX }) =>
288
+ Option.match(dragTo(model, clientX).maybeResizing, {
289
+ onNone: () => ({ model }),
290
+ onSome: ({ fromWidth, width }) => ({
291
+ model: withResizing(model, Option.none()),
292
+ ...(width === fromWidth
293
+ ? {}
294
+ : { outMessage: OutMessage.ResizedRail({ width }) }),
295
+ }),
255
296
  }),
297
+ CancelledSplitter: () => ({ model: withResizing(model, Option.none()) }),
298
+ PressedEscape: () => ({ model: withResizing(model, Option.none()) }),
299
+ PressedSplitterKey: ({ width }) => ({
300
+ model,
301
+ outMessage: OutMessage.ResizedRail({ width: bounded(width) }),
256
302
  }),
257
- CancelledSplitter: () => ({ model: withResizing(model, Option.none()) }),
258
- PressedEscape: () => ({ model: withResizing(model, Option.none()) }),
259
- PressedSplitterKey: ({ width }) => ({
260
- model,
261
- outMessage: OutMessage.ResizedRail({ width: bounded(width) }),
262
- }),
263
- ClickedClose: () => close(model),
264
- ClosedDrawer: () => close(model),
265
- BlurredDrawer: () => closeDrawer(model, false),
266
- WidenedPastDrawer: () => closeDrawer(model, false),
267
- CompletedShowRailDrawer: () => ({ model }),
268
- CompletedHideRailDrawer: () => ({ model }),
269
- CompletedFocusRailToggle: () => ({ model }),
270
- });
271
-
272
- // DRAWER EVENTS
303
+ ClickedClose: () => close(model),
304
+ ClosedDrawer: () => close(model),
305
+ BlurredDrawer: () => closeDrawer(model, false),
306
+ WidenedPastDrawer: () => closeDrawer(model, false),
307
+ CompletedShowRailDrawer: () => ({ model }),
308
+ CompletedHideRailDrawer: () => ({ model }),
309
+ CompletedFocusRailToggle: () => ({ model }),
310
+ }
311
+ );
273
312
 
274
313
  type DrawerMessage =
275
314
  | typeof Message.ClosedDrawer.Type
276
315
  | typeof Message.BlurredDrawer.Type
277
316
  | typeof Message.WidenedPastDrawer.Type;
278
317
 
279
- /** The width at and under which the rail is a drawer, as the stylesheet has it. */
280
- export const DRAWER_QUERY = "(max-width: 900px)";
318
+ export const DRAWER_QUERY = `(max-width: ${WIDEST_DRAWER_WINDOW}px)`;
281
319
 
282
- /** The window crossing the drawer's width: growing past it while the drawer is open closes
283
- * the drawer, since the rail is back in the page there. */
284
320
  export const widthChangeMessage = (
285
321
  isDrawerWidth: boolean,
286
- isDrawerOpen: boolean,
322
+ isDrawerOpen: boolean
287
323
  ): Option.Option<DrawerMessage> =>
288
- !isDrawerWidth && isDrawerOpen ? Option.some(Message.WidenedPastDrawer()) : Option.none();
324
+ !isDrawerWidth && isDrawerOpen
325
+ ? Option.some(Message.WidenedPastDrawer())
326
+ : Option.none();
289
327
 
290
- /** The browser closing the drawer (Escape, a press on the veil); a toggle that opened it says
291
- * nothing. */
292
328
  export const drawerToggleMessage = (
293
- event: Pick<ToggleEvent, "newState">,
329
+ event: Pick<ToggleEvent, "newState">
294
330
  ): Option.Option<DrawerMessage> =>
295
- Option.liftPredicate(Message.ClosedDrawer(), () => event.newState === "closed");
331
+ Option.liftPredicate(
332
+ Message.ClosedDrawer(),
333
+ () => event.newState === "closed"
334
+ );
296
335
 
297
- /** Focus leaving the drawer while it is open (`isDrawerOpen`, the rail matching
298
- * `:popover-open`); focus moving inside it says nothing. */
299
336
  export const drawerFocusOutMessage = (
300
337
  rail: Element,
301
338
  event: FocusEvent,
302
- isDrawerOpen: boolean,
339
+ isDrawerOpen: boolean
303
340
  ): Option.Option<DrawerMessage> =>
304
341
  Option.liftPredicate(
305
342
  Message.BlurredDrawer(),
306
343
  () =>
307
- isDrawerOpen && event.relatedTarget instanceof Node && !rail.contains(event.relatedTarget),
344
+ isDrawerOpen &&
345
+ event.relatedTarget instanceof Node &&
346
+ !rail.contains(event.relatedTarget)
308
347
  );
309
348
 
310
349
  /** Follows the drawer the browser shows: the browser closing it (Escape, a press on the
311
350
  * veil), focus leaving it while it is open, and the window growing past its width while it
312
351
  * is open, each of which closes the rail. */
313
352
  export const FollowRailDrawer = Mount.defineStream("FollowRailDrawer", {
314
- messages: [Message.ClosedDrawer, Message.BlurredDrawer, Message.WidenedPastDrawer],
353
+ messages: [
354
+ Message.ClosedDrawer,
355
+ Message.BlurredDrawer,
356
+ Message.WidenedPastDrawer,
357
+ ],
315
358
  execute: ({ element }) => {
316
359
  const isDrawerOpen = (): boolean => element.matches(":popover-open");
360
+
317
361
  const fromToggle = Dom.streamFromEventFilterMap({
318
362
  target: element,
319
363
  type: "toggle",
320
364
  filterMapEvent: drawerToggleMessage,
321
365
  });
366
+
322
367
  const fromFocusOut = Dom.streamFromEventFilterMap({
323
368
  target: element,
324
369
  type: "focusout",
325
- filterMapEvent: (event) => drawerFocusOutMessage(element, event, isDrawerOpen()),
370
+ filterMapEvent: (event) =>
371
+ drawerFocusOutMessage(element, event, isDrawerOpen()),
326
372
  });
373
+
327
374
  const fromWidth = Dom.streamFromMediaQuery({
328
375
  query: DRAWER_QUERY,
329
- mapMatches: (isDrawerWidth) => widthChangeMessage(isDrawerWidth, isDrawerOpen()),
376
+ mapMatches: (isDrawerWidth) =>
377
+ widthChangeMessage(isDrawerWidth, isDrawerOpen()),
330
378
  }).pipe(
331
379
  Stream.filter(Option.isSome),
332
- Stream.map(({ value }) => value),
380
+ Stream.map(({ value }) => value)
333
381
  );
334
382
 
335
383
  return Stream.mergeAll([fromToggle, fromFocusOut, fromWidth], {
@@ -338,14 +386,15 @@ export const FollowRailDrawer = Mount.defineStream("FollowRailDrawer", {
338
386
  },
339
387
  });
340
388
 
341
- // SUBSCRIPTION
342
-
343
389
  const railSubscriptions = Subscription.make<Model, Message>()((entry) => ({
344
390
  resize: entry(
345
- { maybePointerId: Schema.Option(Schema.Number) },
391
+ { maybePointerId: Schema.Option(Schema.Finite) },
346
392
  {
347
393
  modelToDependencies: (model) => ({
348
- maybePointerId: Option.map(model.maybeResizing, ({ pointerId }) => pointerId),
394
+ maybePointerId: Option.map(
395
+ model.maybeResizing,
396
+ ({ pointerId }) => pointerId
397
+ ),
349
398
  }),
350
399
  dependenciesToStream: ({ maybePointerId }) =>
351
400
  Option.match(maybePointerId, {
@@ -354,21 +403,24 @@ const railSubscriptions = Subscription.make<Model, Message>()((entry) => ({
354
403
  Stream.merge(
355
404
  pointerMessages<Message>(pointerId, {
356
405
  moved: ({ clientX }) => Message.MovedSplitter({ clientX }),
357
- released: ({ clientX }) => Message.ReleasedSplitter({ clientX }),
406
+ released: ({ clientX }) =>
407
+ Message.ReleasedSplitter({ clientX }),
358
408
  cancelled: () => Message.CancelledSplitter(),
359
409
  }),
360
- markDragging,
410
+ markDragging
361
411
  ),
362
412
  }),
363
- },
413
+ }
364
414
  ),
365
415
  escape: entry(
366
416
  { isResizing: Schema.Boolean },
367
417
  {
368
- modelToDependencies: (model) => ({ isResizing: Option.isSome(model.maybeResizing) }),
418
+ modelToDependencies: (model) => ({
419
+ isResizing: Option.isSome(model.maybeResizing),
420
+ }),
369
421
  dependenciesToStream: ({ isResizing }) =>
370
422
  isResizing ? escapeKeys(Message.PressedEscape()) : Stream.empty,
371
- },
423
+ }
372
424
  ),
373
425
  }));
374
426
 
@@ -379,8 +431,6 @@ const railSubscriptions = Subscription.make<Model, Message>()((entry) => ({
379
431
  export const subscriptions = <Prefix extends string>(keyPrefix: Prefix) =>
380
432
  prefixKeys(keyPrefix, railSubscriptions);
381
433
 
382
- // VIEW
383
-
384
434
  /** Per-render inputs passed to `view` through `h.submodel`'s `viewInputs`. */
385
435
  export type ViewInputs = Readonly<{
386
436
  /** Names the rail for screen readers, and its button, drawer head and splitter
@@ -400,7 +450,7 @@ export type ViewInputs = Readonly<{
400
450
  * its first panel's `lead`. A function because a Submodel's viewInputs may hold functions
401
451
  * only at the top level, and Foldkit runs this one in the parent's boundary, so the
402
452
  * handlers in what it returns dispatch the parent's Messages. */
403
- toAsideView: (toggle: Html) => ReadonlyArray<Html>;
453
+ toAsideView: (toggle: Html) => readonly Html[];
404
454
  /** The page beside the rail, `main.deck#main` or `main.bench#main`, given the button that
405
455
  * opens the drawer to print first in it. A function because it receives that button, and
406
456
  * runs in the parent's boundary like `toAsideView`. */
@@ -435,112 +485,128 @@ export type ViewInputs = Readonly<{
435
485
  * rendered only while open, and this one is always in the page, placed by the stylesheet, and
436
486
  * opened as a native popover so the browser keeps it in the top layer.
437
487
  */
438
- export const view = defineView<Model, Message, ViewInputs>((model, viewInputs, h): Html => {
439
- const { label, isHidden, maybeToggleKeyHint, toAsideView, toDeckView } = viewInputs;
440
- const maybeWidth = Option.orElse(
441
- Option.map(model.maybeResizing, ({ width }) => width),
442
- () => Option.map(viewInputs.maybeWidth, bounded),
443
- );
444
- const width = Option.getOrElse(maybeWidth, () => WIDTH.start);
488
+ export const view = defineView<Model, Message, ViewInputs>(
489
+ (model, viewInputs, h): Html => {
490
+ const { label, isHidden, maybeToggleKeyHint, toAsideView, toDeckView } =
491
+ viewInputs;
492
+
493
+ const maybeWidth = Option.orElse(
494
+ Option.map(model.maybeResizing, ({ width }) => width),
495
+ () => Option.map(viewInputs.maybeWidth, bounded)
496
+ );
445
497
 
446
- const openButton = h.span(
447
- [h.Class("rail-open")],
448
- [
449
- Button.view(
450
- {
451
- label,
452
- glyph: "sidebar",
453
- isSmall: true,
454
- onClick: Message.ClickedOpen(),
455
- attributes: [
456
- h.Id(openButtonId(model)),
457
- h.AriaExpanded(model.isOpen),
458
- h.AriaControls(model.id),
459
- ],
460
- },
461
- h,
462
- ),
463
- ],
464
- );
498
+ const width = Option.getOrElse(maybeWidth, () => WIDTH.start);
499
+
500
+ const openButton = h.span(
501
+ [h.Class("rail-open")],
502
+ [
503
+ Button.view(
504
+ {
505
+ label,
506
+ glyph: "sidebar",
507
+ isSmall: true,
508
+ onClick: Message.ClickedOpen(),
509
+ attributes: [
510
+ h.Id(openButtonId(model)),
511
+ h.AriaExpanded(model.isOpen),
512
+ h.AriaControls(model.id),
513
+ ],
514
+ },
515
+ h
516
+ ),
517
+ ]
518
+ );
465
519
 
466
- const toggleButton = h.span(
467
- [h.Class("rail-toggle")],
468
- [
469
- IconButton.view(
520
+ const toggleButton = h.span(
521
+ [h.Class("rail-toggle")],
522
+ [
523
+ IconButton.view(
524
+ {
525
+ glyph: "sidebar",
526
+ label: `${isHidden ? "Show" : "Hide"} ${label}`,
527
+ isQuiet: true,
528
+ onClick: Message.ClickedToggle(),
529
+ ...Option.match(maybeToggleKeyHint, {
530
+ onNone: () => ({}),
531
+ onSome: (keyHint) => ({ keyHint }),
532
+ }),
533
+ attributes: [
534
+ h.Id(toggleId(model)),
535
+ h.AriaExpanded(!isHidden),
536
+ h.AriaControls(model.id),
537
+ ],
538
+ },
539
+ h
540
+ ),
541
+ ]
542
+ );
543
+
544
+ const splitter = h.div([
545
+ h.Class("rail-resize"),
546
+ h.Role("separator"),
547
+ h.AriaLabel(`Width of ${label}`),
548
+ h.AriaControls(model.id),
549
+ h.AriaValuemin(WIDTH.leastFittingPanels),
550
+ h.AriaValuemax(WIDTH.mostLeavingLeastDeck),
551
+ h.AriaValuenow(width),
552
+ h.AriaValuetext(`${width} pixels`),
553
+ h.Tabindex(0),
554
+ ...splitterAttributes(
470
555
  {
471
- glyph: "sidebar",
472
- label: `${isHidden ? "Show" : "Hide"} ${label}`,
473
- isQuiet: true,
474
- onClick: Message.ClickedToggle(),
475
- ...Option.match(maybeToggleKeyHint, {
476
- onNone: () => ({}),
477
- onSome: (keyHint) => ({ keyHint }),
478
- }),
479
- attributes: [h.Id(toggleId(model)), h.AriaExpanded(!isHidden), h.AriaControls(model.id)],
556
+ orientation: "vertical",
557
+ isIdle: Option.isNone(model.maybeResizing),
558
+ onPress: (pointerId, clientX) =>
559
+ Message.PressedSplitter({ pointerId, clientX, width }),
560
+ onStep: (direction) =>
561
+ Message.PressedSplitterKey({
562
+ width: width + direction * WIDTH.arrowStep,
563
+ }),
480
564
  },
481
- h,
565
+ h
482
566
  ),
483
- ],
484
- );
485
-
486
- const splitter = h.div([
487
- h.Class("rail-resize"),
488
- h.Role("separator"),
489
- h.AriaLabel(`Width of ${label}`),
490
- h.AriaControls(model.id),
491
- h.AriaValuemin(WIDTH.least),
492
- h.AriaValuemax(WIDTH.most),
493
- h.AriaValuenow(width),
494
- h.AriaValuetext(`${width} pixels`),
495
- h.Tabindex(0),
496
- ...splitterAttributes(
497
- {
498
- orientation: "vertical",
499
- isIdle: Option.isNone(model.maybeResizing),
500
- onPress: (pointerId, clientX) => Message.PressedSplitter({ pointerId, clientX, width }),
501
- onStep: (direction) =>
502
- Message.PressedSplitterKey({ width: width + direction * WIDTH.step }),
503
- },
504
- h,
505
- ),
506
- ]);
507
-
508
- // NOTE: the deck comes first so the page's main content, and its h1, precede the rail's
509
- // panels in reading order; the stylesheet places the rail, fixed, at the left.
510
- return h.div(
511
- [
512
- h.Class(isHidden ? "railed folded" : "railed"),
513
- ...(isHidden
514
- ? []
515
- : Array.fromOption(
516
- Option.map(maybeWidth, (shown) => h.Style({ "--railed-width": `${shown}px` })),
517
- )),
518
- ],
519
- [
520
- toDeckView(openButton),
521
- h.aside(
522
- [
523
- h.Id(model.id),
524
- h.Popover("auto"),
525
- h.AriaLabel(label),
526
- h.Class("rail"),
527
- h.OnMount(FollowRailDrawer()),
528
- ],
529
- [
530
- h.div(
531
- [h.Class("rail-head")],
532
- [
533
- h.span([h.Class("label")], [label]),
534
- IconButton.view(
535
- { glyph: "cross", label: "Close", onClick: Message.ClickedClose() },
536
- h,
537
- ),
538
- ],
539
- ),
540
- ...toAsideView(toggleButton),
541
- ],
542
- ),
543
- ...(isHidden ? [] : [splitter]),
544
- ],
545
- );
546
- });
567
+ ]);
568
+
569
+ return h.div(
570
+ [
571
+ h.Class(isHidden ? "railed folded" : "railed"),
572
+ ...(isHidden
573
+ ? []
574
+ : Array.fromOption(
575
+ Option.map(maybeWidth, (shown) =>
576
+ h.Style({ "--railed-width": `${shown}px` })
577
+ )
578
+ )),
579
+ ],
580
+ [
581
+ toDeckView(openButton),
582
+ h.aside(
583
+ [
584
+ h.Id(model.id),
585
+ h.Popover("auto"),
586
+ h.AriaLabel(label),
587
+ h.Class("rail"),
588
+ h.OnMount(FollowRailDrawer()),
589
+ ],
590
+ [
591
+ h.div(
592
+ [h.Class("rail-head")],
593
+ [
594
+ h.span([h.Class("label")], [label]),
595
+ IconButton.view(
596
+ {
597
+ glyph: "cross",
598
+ label: "Close",
599
+ onClick: Message.ClickedClose(),
600
+ },
601
+ h
602
+ ),
603
+ ]
604
+ ),
605
+ ...toAsideView(toggleButton),
606
+ ]
607
+ ),
608
+ ...(isHidden ? [] : [splitter]),
609
+ ]
610
+ );
611
+ }
612
+ );