@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
@@ -2,36 +2,32 @@ import { Input as UiInput } from "@foldkit/ui";
2
2
  import { Effect, Match, Option, Schema, String, pipe } from "effect";
3
3
  import * as Command from "foldkit/command";
4
4
  import * as Dom from "foldkit/dom";
5
- import { type Html, type HtmlBuilder } from "foldkit/html";
5
+ import type { Html, HtmlBuilder } from "foldkit/html";
6
6
  import { defineMessageUnion } from "foldkit/message";
7
7
  import * as Mount from "foldkit/mount";
8
8
  import { defineTaggedUnion } from "foldkit/schema";
9
9
  import { modifyFields } from "foldkit/struct";
10
10
  import { defineView } from "foldkit/submodel";
11
- import * as Update from "foldkit/update";
11
+ import type * as Update from "foldkit/update";
12
12
 
13
13
  import { isPlain } from "../keys/keys.ts";
14
14
  import * as Notice from "../notice/notice.ts";
15
15
 
16
- // MODEL
17
-
18
- /** What started a save: Enter, or leaving the field. */
19
16
  const SaveTrigger = Schema.Literals(["Enter", "Blur"]);
17
+
20
18
  type SaveTrigger = typeof SaveTrigger.Type;
21
19
 
22
- /** How an inline edit ended: Enter, leaving the field, or Escape. */
23
20
  const InlineEnd = Schema.Literals(["Enter", "Blur", "Escape"]);
21
+
24
22
  type InlineEnd = typeof InlineEnd.Type;
25
23
 
26
- /** Where an inline edit is. `Saving`: the caller's save is out; the field holds, read-only and
27
- * focused. `hasLeft` records that focus left it meanwhile, so the edit ends when the save
28
- * lands instead of taking the next item. `Ended`: the edit is over; a blur from the field
29
- * being removed writes nothing. */
30
24
  const Phase = defineTaggedUnion({
31
25
  Editing: {},
32
- Saving: { trigger: SaveTrigger, hasLeft: Schema.Boolean },
26
+ Saving: { trigger: SaveTrigger },
27
+ LeftWhileSaving: {},
33
28
  Ended: {},
34
29
  });
30
+
35
31
  type Phase = typeof Phase.Type;
36
32
 
37
33
  /** Schema for an inline field. `maybeDraft` is none while the field is untouched: it then
@@ -48,9 +44,8 @@ export const Model = Schema.Struct({
48
44
  maybeLastSavedId: Schema.Option(Schema.String),
49
45
  isRepeating: Schema.Boolean,
50
46
  });
51
- export type Model = typeof Model.Type;
52
47
 
53
- // MESSAGE
48
+ export type Model = typeof Model.Type;
54
49
 
55
50
  /** Union of all Messages an inline field can produce. `UpdatedDraft` carries the draft and the
56
51
  * value it replaces, as the view had it. */
@@ -61,9 +56,8 @@ export const Message = defineMessageUnion({
61
56
  BlurredField: {},
62
57
  CompletedFocusField: {},
63
58
  });
64
- export type Message = typeof Message.Type;
65
59
 
66
- // OUT MESSAGE
60
+ export type Message = typeof Message.Type;
67
61
 
68
62
  /** Union of OutMessages an inline field reports. `Committed`: save this text (new, non-empty,
69
63
  * trimmed); the field holds until the caller reports back with `succeeded` or `failed`.
@@ -74,9 +68,8 @@ export const OutMessage = defineMessageUnion({
74
68
  Committed: { text: Schema.String },
75
69
  Ended: { how: InlineEnd, maybeLastSavedId: Schema.Option(Schema.String) },
76
70
  });
77
- export type OutMessage = typeof OutMessage.Type;
78
71
 
79
- // COMMAND
72
+ export type OutMessage = typeof OutMessage.Type;
80
73
 
81
74
  /** Focuses the field once it renders, selecting its text as an edit begins. */
82
75
  export const FocusField = Command.define("FocusField", {
@@ -86,19 +79,18 @@ export const FocusField = Command.define("FocusField", {
86
79
  Dom.focus(`#${CSS.escape(id)}`).pipe(
87
80
  Effect.andThen(
88
81
  Effect.sync(() => {
89
- const field = document.getElementById(id);
82
+ const field = document.querySelector(`#${CSS.escape(id)}`);
83
+
90
84
  if (field instanceof HTMLInputElement) {
91
85
  field.select();
92
86
  }
93
- }),
87
+ })
94
88
  ),
95
89
  Effect.ignore,
96
- Effect.as(Message.CompletedFocusField()),
90
+ Effect.as(Message.CompletedFocusField())
97
91
  ),
98
92
  });
99
93
 
100
- // INIT
101
-
102
94
  /** Configuration for starting an inline edit with `init`. The `id` (the input's) must be
103
95
  * unique in the document. `isRepeating`: adding several, so a save from Enter empties the
104
96
  * field and keeps it open for the next instead of ending. */
@@ -119,35 +111,35 @@ export const init = (config: InitConfig): Update.Return<Model, Message> => ({
119
111
  commands: [FocusField({ id: config.id })],
120
112
  });
121
113
 
122
- // ACCESSORS
123
-
124
114
  /** Whether the caller's save is out: the field holds until `succeeded` or `failed`. */
125
- export const isSaving = (model: Model): boolean => Phase.guards.Saving(model.phase);
115
+ export const isSaving = (model: Model): boolean =>
116
+ Phase.guards.Saving(model.phase) || Phase.guards.LeftWhileSaving(model.phase);
126
117
 
127
118
  /** Why the last save was refused, while the field still holds that text: none before a save
128
119
  * fails, and again once the draft changes or the next save goes out. */
129
- export const maybeError = (model: Model): Option.Option<string> => model.maybeError;
120
+ export const maybeError = (model: Model): Option.Option<string> =>
121
+ model.maybeError;
130
122
 
131
- // the element `errorView` renders, which the field points at while a save was refused
132
123
  const errorId = (model: Model): string => UiInput.descriptionId(model.id);
133
124
 
134
- // UPDATE
135
-
136
125
  type UpdateReturn = Update.ReturnWithOutMessage<Model, Message, OutMessage>;
137
126
 
138
127
  const end = (model: Model, how: InlineEnd): UpdateReturn => ({
139
128
  model: modifyFields(model, { phase: () => Phase.Ended() }),
140
- outMessage: OutMessage.Ended({ how, maybeLastSavedId: model.maybeLastSavedId }),
129
+ outMessage: OutMessage.Ended({
130
+ how,
131
+ maybeLastSavedId: model.maybeLastSavedId,
132
+ }),
141
133
  });
142
134
 
143
- /** What Enter or leaving an inline field writes: the draft trimmed, or none (an untouched
144
- * draft, so an edit made elsewhere to `value` is never overwritten; an empty one; or the
145
- * text it replaces). */
146
- export const toWrite = (maybeDraft: Option.Option<string>, value: string): Option.Option<string> =>
135
+ export const toWrite = (
136
+ maybeDraft: Option.Option<string>,
137
+ value: string
138
+ ): Option.Option<string> =>
147
139
  pipe(
148
140
  maybeDraft,
149
141
  Option.map(String.trim),
150
- Option.filter((text) => String.isNonEmpty(text) && text !== value),
142
+ Option.filter((text) => String.isNonEmpty(text) && text !== value)
151
143
  );
152
144
 
153
145
  const commit = (model: Model, trigger: SaveTrigger): UpdateReturn =>
@@ -155,7 +147,7 @@ const commit = (model: Model, trigger: SaveTrigger): UpdateReturn =>
155
147
  onNone: () => end(model, trigger),
156
148
  onSome: (text) => ({
157
149
  model: modifyFields(model, {
158
- phase: () => Phase.Saving({ trigger, hasLeft: false }),
150
+ phase: () => Phase.Saving({ trigger }),
159
151
  maybeError: () => Option.none(),
160
152
  }),
161
153
  outMessage: OutMessage.Committed({ text }),
@@ -175,39 +167,46 @@ export const update = (model: Model, message: Message) =>
175
167
  }),
176
168
  }
177
169
  : { model },
178
- PressedEnter: () => (Phase.guards.Editing(model.phase) ? commit(model, "Enter") : { model }),
179
- PressedEscape: () => (Phase.guards.Editing(model.phase) ? end(model, "Escape") : { model }),
170
+ PressedEnter: () =>
171
+ Phase.guards.Editing(model.phase) ? commit(model, "Enter") : { model },
172
+ PressedEscape: () =>
173
+ Phase.guards.Editing(model.phase) ? end(model, "Escape") : { model },
180
174
  BlurredField: () =>
181
175
  Phase.match<UpdateReturn>(model.phase, {
182
176
  Editing: () => commit(model, "Blur"),
183
- Saving: ({ trigger }) => ({
177
+ Saving: () => ({
184
178
  model: modifyFields(model, {
185
- phase: () => Phase.Saving({ trigger, hasLeft: true }),
179
+ phase: () => Phase.LeftWhileSaving(),
186
180
  }),
187
181
  }),
182
+ LeftWhileSaving: () => ({ model }),
188
183
  Ended: () => ({ model }),
189
184
  }),
190
185
  CompletedFocusField: () => ({ model }),
191
186
  });
192
187
 
188
+ const savedAs = (model: Model, savedId: string): Model =>
189
+ modifyFields(model, { maybeLastSavedId: () => Option.some(savedId) });
190
+
193
191
  /** The caller's save went through, giving the saved item's id. A save from Enter in a
194
192
  * repeating field empties the field and keeps it open, focused, for the next; any other
195
193
  * save ends the edit (as `Blur` if focus left meanwhile). A result for an edit that is no
196
194
  * longer saving changes nothing. */
197
195
  export const succeeded = (model: Model, savedId: string): UpdateReturn =>
198
196
  Phase.match<UpdateReturn>(model.phase, {
199
- Saving: ({ trigger, hasLeft }) => {
200
- const saved = modifyFields(model, { maybeLastSavedId: () => Option.some(savedId) });
201
- const isNext = model.isRepeating && trigger === "Enter" && !hasLeft;
202
- return isNext
197
+ Saving: ({ trigger }) => {
198
+ const saved = savedAs(model, savedId);
199
+
200
+ return model.isRepeating && trigger === "Enter"
203
201
  ? {
204
202
  model: modifyFields(saved, {
205
203
  phase: () => Phase.Editing(),
206
204
  maybeDraft: () => Option.some(""),
207
205
  }),
208
206
  }
209
- : end(saved, hasLeft ? "Blur" : trigger);
207
+ : end(saved, trigger);
210
208
  },
209
+ LeftWhileSaving: () => end(savedAs(model, savedId), "Blur"),
211
210
  Editing: () => ({ model }),
212
211
  Ended: () => ({ model }),
213
212
  });
@@ -217,8 +216,11 @@ export const succeeded = (model: Model, savedId: string): UpdateReturn =>
217
216
  * outcome is told elsewhere, such as a lost connection's notice) it only lets go of the
218
217
  * text. It reports nothing, so it folds as a plain return. A result for an edit that is no
219
218
  * longer saving changes nothing. */
220
- export const failed = (model: Model, error?: string): Update.Return<Model, Message> =>
221
- Phase.guards.Saving(model.phase)
219
+ export const failed = (
220
+ model: Model,
221
+ error?: string
222
+ ): Update.Return<Model, Message> =>
223
+ isSaving(model)
222
224
  ? {
223
225
  model: modifyFields(model, {
224
226
  phase: () => Phase.Editing(),
@@ -227,13 +229,10 @@ export const failed = (model: Model, error?: string): Update.Return<Model, Messa
227
229
  }
228
230
  : { model };
229
231
 
230
- // KEYS
231
-
232
- type KeyMessage = typeof Message.PressedEnter.Type | typeof Message.PressedEscape.Type;
232
+ type KeyMessage =
233
+ | typeof Message.PressedEnter.Type
234
+ | typeof Message.PressedEscape.Type;
233
235
 
234
- /** What one keydown in the field does: Enter saves, Escape discards. A key an IME is
235
- * composing, a modified key, a key someone already handled and any other key are left
236
- * alone. */
237
236
  export const fieldKey = (event: KeyboardEvent): Option.Option<KeyMessage> =>
238
237
  event.isComposing || event.defaultPrevented || !isPlain(event)
239
238
  ? Option.none()
@@ -241,7 +240,7 @@ export const fieldKey = (event: KeyboardEvent): Option.Option<KeyMessage> =>
241
240
  Match.withReturnType<Option.Option<KeyMessage>>(),
242
241
  Match.when("Enter", () => Option.some(Message.PressedEnter())),
243
242
  Match.when("Escape", () => Option.some(Message.PressedEscape())),
244
- Match.orElse(() => Option.none()),
243
+ Match.orElse(() => Option.none())
245
244
  );
246
245
 
247
246
  /** The field's keys: Enter saves (or ends, with nothing new to save) and Escape discards and
@@ -259,10 +258,9 @@ export const BindFieldKeys = Mount.defineStream("BindFieldKeys", {
259
258
  }),
260
259
  });
261
260
 
262
- // VIEW
263
-
264
261
  /** How tall the field is: a row's words, or a card's 16px title. */
265
262
  export const Size = Schema.Literals(["Row", "Title"]);
263
+
266
264
  export type Size = typeof Size.Type;
267
265
 
268
266
  /** Per-render inputs passed to `view` through `h.submodel`'s `viewInputs`. */
@@ -279,7 +277,10 @@ export type ViewInputs = Readonly<{
279
277
  error?: string | undefined;
280
278
  }>;
281
279
 
282
- const shownError = (model: Model, error: string | undefined): Option.Option<string> =>
280
+ const shownError = (
281
+ model: Model,
282
+ error: string | undefined
283
+ ): Option.Option<string> =>
283
284
  Option.orElse(Option.fromNullishOr(error), () => model.maybeError);
284
285
 
285
286
  /**
@@ -290,34 +291,39 @@ const shownError = (model: Model, error: string | undefined): Option.Option<stri
290
291
  * the field `aria-invalid` and points it at `errorView`. Escape discards the draft and ends. The field moves no focus
291
292
  * itself: the caller does on `Ended`.
292
293
  */
293
- export const view = defineView<Model, Message, ViewInputs>((model, viewInputs, h): Html => {
294
- const { value, label, placeholder, size = "Row", error } = viewInputs;
295
- const isHeld = isSaving(model);
296
- const hasError = Option.isSome(shownError(model, error));
297
-
298
- return UiInput.view(
299
- {
300
- id: model.id,
301
- value: Option.getOrElse(model.maybeDraft, () => value),
302
- onInput: (draft) => Message.UpdatedDraft({ value: draft, replaced: value }),
303
- isReadOnly: isHeld,
304
- isInvalid: hasError,
305
- hasDescription: hasError,
306
- ...(placeholder !== undefined && { placeholder }),
307
- toView: (groups) =>
308
- h.input([
309
- ...groups.input,
310
- h.AriaLabel(label),
311
- ...(isHeld ? [h.AriaBusy(true)] : []),
312
- h.Autocomplete("off"),
313
- h.OnBlur(Message.BlurredField()),
314
- h.OnMount(BindFieldKeys()),
315
- h.Class(size === "Title" ? "inline-input title-edit" : "inline-input"),
316
- ]),
317
- },
318
- h,
319
- );
320
- });
294
+ export const view = defineView<Model, Message, ViewInputs>(
295
+ (model, viewInputs, h): Html => {
296
+ const { value, label, placeholder, size = "Row", error } = viewInputs;
297
+ const isHeld = isSaving(model);
298
+ const hasError = Option.isSome(shownError(model, error));
299
+
300
+ return UiInput.view(
301
+ {
302
+ id: model.id,
303
+ value: Option.getOrElse(model.maybeDraft, () => value),
304
+ onInput: (draft) =>
305
+ Message.UpdatedDraft({ value: draft, replaced: value }),
306
+ isReadOnly: isHeld,
307
+ isInvalid: hasError,
308
+ hasDescription: hasError,
309
+ ...(placeholder !== undefined && { placeholder }),
310
+ toView: (groups) =>
311
+ h.input([
312
+ ...groups.input,
313
+ h.AriaLabel(label),
314
+ ...(isHeld ? [h.AriaBusy(true)] : []),
315
+ h.Autocomplete("off"),
316
+ h.OnBlur(Message.BlurredField()),
317
+ h.OnMount(BindFieldKeys()),
318
+ h.Class(
319
+ size === "Title" ? "inline-input title-edit" : "inline-input"
320
+ ),
321
+ ]),
322
+ },
323
+ h
324
+ );
325
+ }
326
+ );
321
327
 
322
328
  /** Why the field is marked: the caller's `error`, else why the last save was refused, as an
323
329
  * error Notice with the id the field points at, or nothing. Place it under the field and
@@ -325,10 +331,13 @@ export const view = defineView<Model, Message, ViewInputs>((model, viewInputs, h
325
331
  export const errorView = <ParentMessage>(
326
332
  model: Model,
327
333
  h: HtmlBuilder<ParentMessage>,
328
- error?: string,
334
+ error?: string
329
335
  ): Html =>
330
336
  Option.match(shownError(model, error), {
331
337
  onNone: () => h.empty,
332
- onSome: (error) =>
333
- Notice.view({ tone: "Error", body: [error], attributes: [h.Id(errorId(model))] }, h),
338
+ onSome: (shown) =>
339
+ Notice.view(
340
+ { tone: "Error", body: [shown], attributes: [h.Id(errorId(model))] },
341
+ h
342
+ ),
334
343
  });
@@ -12,5 +12,6 @@ export {
12
12
  toKeymapGroups,
13
13
  update,
14
14
  view,
15
- } from "./keyHelp.ts";
16
- export type { Binding, InitConfig, ViewInputs } from "./keyHelp.ts";
15
+ } from "./key-help.ts";
16
+
17
+ export type { Binding, InitConfig, ViewInputs } from "./key-help.ts";
@@ -6,23 +6,23 @@ import { defineMessageUnion } from "foldkit/message";
6
6
  import { modifyFields } from "foldkit/struct";
7
7
  import { defineView } from "foldkit/submodel";
8
8
  import * as Subscription from "foldkit/subscription";
9
- import * as Update from "foldkit/update";
9
+ import type * as Update from "foldkit/update";
10
10
 
11
11
  import * as Button from "../button/button.ts";
12
12
  import * as Card from "../card/card.ts";
13
13
  import * as Dialog from "../dialog/dialog.ts";
14
14
  import { foldDialog } from "../dialog/fold.ts";
15
15
  import * as Field from "../field/field.ts";
16
- import { type KeyPlatform, keyLabel, pressesOf } from "../keyHint/keyLabel.ts";
16
+ import { keyLabel, pressesOf } from "../key-hint/key-label.ts";
17
+ import type { KeyPlatform } from "../key-hint/key-label.ts";
17
18
  import * as Keymap from "../keymap/keymap.ts";
18
19
 
19
- // MODEL
20
-
21
20
  /** Schema for the key help: its Dialog and the words in its find field. */
22
21
  export const Model = Schema.Struct({
23
22
  dialog: Dialog.Model,
24
23
  query: Schema.String,
25
24
  });
25
+
26
26
  export type Model = typeof Model.Type;
27
27
 
28
28
  /** One command the keyboard gives, as the help lists it: the keys that give it (any of
@@ -30,7 +30,7 @@ export type Model = typeof Model.Type;
30
30
  * Describe the same bindings the application hands `Dom.streamFromKeyBindings`, so a key
31
31
  * never says one thing and does another. */
32
32
  export type Binding = Readonly<{
33
- keys: ReadonlyArray<KeySequence>;
33
+ keys: readonly KeySequence[];
34
34
  group: string;
35
35
  does: string;
36
36
  }>;
@@ -39,9 +39,11 @@ export type Binding = Readonly<{
39
39
  export const HELP_KEYS: KeySequence = "Shift+?";
40
40
 
41
41
  /** The help's own line in its listing. */
42
- export const helpBinding: Binding = { keys: [HELP_KEYS], group: "Help", does: "These keys" };
43
-
44
- // MESSAGE
42
+ export const helpBinding: Binding = {
43
+ keys: [HELP_KEYS],
44
+ group: "Help",
45
+ does: "These keys",
46
+ };
45
47
 
46
48
  /** Union of all Messages the key help can produce. */
47
49
  export const Message = defineMessageUnion({
@@ -49,18 +51,16 @@ export const Message = defineMessageUnion({
49
51
  UpdatedQuery: { value: Schema.String },
50
52
  PressedHelpKey: {},
51
53
  });
52
- export type Message = typeof Message.Type;
53
54
 
54
- // OUT MESSAGE
55
+ export type Message = typeof Message.Type;
55
56
 
56
57
  /** Union of OutMessages the key help reports: the reader closed it (Escape, a click on the
57
58
  * veil, a close button). Opening it, by `?` or `open`, reports nothing. */
58
59
  export const OutMessage = defineMessageUnion({
59
60
  Closed: {},
60
61
  });
61
- export type OutMessage = typeof OutMessage.Type;
62
62
 
63
- // INIT
63
+ export type OutMessage = typeof OutMessage.Type;
64
64
 
65
65
  /** Configuration for creating the key help with `init`. */
66
66
  export type InitConfig = Readonly<{ id: string }>;
@@ -71,8 +71,6 @@ export const init = (config: InitConfig): Model => ({
71
71
  query: "",
72
72
  });
73
73
 
74
- // UPDATE
75
-
76
74
  const toOutMessage = Dialog.OutMessage.match<OutMessage>({
77
75
  Closed: () => OutMessage.Closed(),
78
76
  });
@@ -81,34 +79,38 @@ const dialogFold = foldDialog(Dialog, {
81
79
  read: (model: Model) => model.dialog,
82
80
  write: (model: Model, nextDialog: Dialog.Model): Model =>
83
81
  modifyFields(model, { dialog: () => nextDialog }),
84
- toParentMessage: (message: Dialog.Message) => Message.GotDialogMessage({ message }),
82
+ toParentMessage: (message: Dialog.Message) =>
83
+ Message.GotDialogMessage({ message }),
85
84
  toParentOutMessage: toOutMessage,
86
85
  });
87
86
 
88
- const clearQuery = (model: Model): Model => modifyFields(model, { query: () => "" });
87
+ const clearQuery = (model: Model): Model =>
88
+ modifyFields(model, { query: () => "" });
89
89
 
90
90
  /** Processes a key help Message and returns the next Model, Commands and OutMessage. */
91
91
  export const update = (model: Model, message: Message) =>
92
- Message.match<Update.ReturnWithOutMessage<Model, Message, OutMessage>>(message, {
93
- GotDialogMessage: ({ message: dialogMessage }) => dialogFold.update(model, dialogMessage),
94
- UpdatedQuery: ({ value }) => ({ model: modifyFields(model, { query: () => value }) }),
95
- PressedHelpKey: () => dialogFold.open(clearQuery(model)),
96
- });
92
+ Message.match<Update.ReturnWithOutMessage<Model, Message, OutMessage>>(
93
+ message,
94
+ {
95
+ GotDialogMessage: ({ message: dialogMessage }) =>
96
+ dialogFold.update(model, dialogMessage),
97
+ UpdatedQuery: ({ value }) => ({
98
+ model: modifyFields(model, { query: () => value }),
99
+ }),
100
+ PressedHelpKey: () => dialogFold.open(clearQuery(model)),
101
+ }
102
+ );
97
103
 
98
104
  /** Opens the key help, as `?` does: for a button or a command palette entry. */
99
105
  export const open = (model: Model): Update.Return<Model, Message> =>
100
106
  dialogFold.open(clearQuery(model));
101
107
 
102
- // ACCESSORS
103
-
104
108
  /** The key help's id, unique in the document. */
105
109
  export const id = (model: Model): string => Dialog.id(model.dialog);
106
110
 
107
111
  /** Whether the key help is open. */
108
112
  export const isOpen = (model: Model): boolean => Dialog.isOpen(model.dialog);
109
113
 
110
- // SUBSCRIPTION
111
-
112
114
  /** Opens the help on `?` while it is closed. Lift it into the application's Subscriptions. */
113
115
  export const subscriptions = Subscription.make<Model, Message>()((entry) => ({
114
116
  helpKey: entry(
@@ -125,43 +127,50 @@ export const subscriptions = Subscription.make<Model, Message>()((entry) => ({
125
127
  },
126
128
  ],
127
129
  }),
128
- },
130
+ }
129
131
  ),
130
132
  }));
131
133
 
132
- // LISTING
133
-
134
134
  const isFound = (binding: Binding, labels: string, query: string): boolean =>
135
135
  pipe(
136
- [labels, ...Array.flatMap(binding.keys, pressesOf), binding.does, binding.group],
136
+ [
137
+ labels,
138
+ ...Array.flatMap(binding.keys, pressesOf),
139
+ binding.does,
140
+ binding.group,
141
+ ],
137
142
  Array.join(" "),
138
143
  String.toLowerCase,
139
- String.includes(query),
144
+ String.includes(query)
140
145
  );
141
146
 
142
147
  /** The bindings as a keymap: under their groups in the order the groups first appear, each
143
148
  * binding's keys printed for the platform, filtered by the query (its keys or its words). */
144
149
  export const toKeymapGroups = (
145
- bindings: ReadonlyArray<Binding>,
150
+ bindings: readonly Binding[],
146
151
  platform: KeyPlatform,
147
- query: string,
148
- ): ReadonlyArray<Keymap.KeymapGroup> => {
152
+ query: string
153
+ ): readonly Keymap.KeymapGroup[] => {
149
154
  const normalizedQuery = pipe(query, String.trim, String.toLowerCase);
155
+
150
156
  const rows = pipe(
151
157
  bindings,
152
158
  Array.map((binding) => ({
153
159
  binding,
154
160
  labels: Array.join(
155
161
  Array.map(binding.keys, (keys) => keyLabel(keys, platform)),
156
- " / ",
162
+ " / "
157
163
  ),
158
164
  })),
159
- Array.filter(({ binding, labels }) => isFound(binding, labels, normalizedQuery)),
165
+ Array.filter(({ binding, labels }) =>
166
+ isFound(binding, labels, normalizedQuery)
167
+ ),
160
168
  Array.map(({ binding, labels }) => ({
161
169
  group: binding.group,
162
170
  row: { keys: labels, does: binding.does },
163
- })),
171
+ }))
164
172
  );
173
+
165
174
  const groups = Array.dedupe(Array.map(rows, ({ group }) => group));
166
175
 
167
176
  return Array.map(groups, (group) => ({
@@ -169,17 +178,15 @@ export const toKeymapGroups = (
169
178
  rows: pipe(
170
179
  rows,
171
180
  Array.filter((row) => row.group === group),
172
- Array.map(({ row }) => row),
181
+ Array.map(({ row }) => row)
173
182
  ),
174
183
  }));
175
184
  };
176
185
 
177
- // VIEW
178
-
179
186
  /** Per-render inputs passed to `view` through `h.submodel`'s `viewInputs`. */
180
187
  export type ViewInputs = Readonly<{
181
188
  /** Every key in force now. The help adds its own `?` line. */
182
- bindings: ReadonlyArray<Binding>;
189
+ bindings: readonly Binding[];
183
190
  platform: KeyPlatform;
184
191
  /** The application's own words above the find field: what the page would say that the
185
192
  * reader still needs while the help covers it (a sync notice and its retry). A slot that
@@ -190,29 +197,31 @@ export type ViewInputs = Readonly<{
190
197
  toLiveRegionView?: (() => Html) | undefined;
191
198
  }>;
192
199
 
193
- // NOTE: the note claims only what Foldkit's key bindings do: a key waits while focus is in a
194
- // field (unless its binding acts while typing), and a pending sequence lets go on any key that
195
- // does not continue it. Any other pause (while a card is held) is the application's, so the
196
- // note does not claim it.
197
200
  const NOTE = "Keys wait while you type in a field.";
201
+
198
202
  const SEQUENCE_NOTE =
199
203
  " Type the keys of a sequence one straight after the other; any other key lets go of the first.";
204
+
200
205
  const NOTHING_FOUND = "No key does that.";
201
206
 
202
- const hasSequence = (bindings: ReadonlyArray<Binding>): boolean =>
203
- Array.some(bindings, (binding) => Array.some(binding.keys, (keys) => !Predicate.isString(keys)));
207
+ const hasSequence = (bindings: readonly Binding[]): boolean =>
208
+ Array.some(bindings, (binding) =>
209
+ Array.some(binding.keys, (keys) => !Predicate.isString(keys))
210
+ );
204
211
 
205
212
  const cardView = (
206
213
  model: Model,
207
214
  viewInputs: ViewInputs,
208
215
  render: Dialog.RenderInfo,
209
- h: HtmlBuilder<Message>,
216
+ h: HtmlBuilder<Message>
210
217
  ): Html => {
211
218
  const bindings = [...viewInputs.bindings, helpBinding];
212
219
  const groups = toKeymapGroups(bindings, viewInputs.platform, model.query);
220
+
213
221
  const note = Array.match(groups, {
214
222
  onEmpty: () => NOTHING_FOUND,
215
- onNonEmpty: () => (hasSequence(bindings) ? `${NOTE}${SEQUENCE_NOTE}` : NOTE),
223
+ onNonEmpty: () =>
224
+ hasSequence(bindings) ? `${NOTE}${SEQUENCE_NOTE}` : NOTE,
216
225
  });
217
226
 
218
227
  return Card.view(
@@ -222,7 +231,9 @@ const cardView = (
222
231
  isNarrow: true,
223
232
  closeAttributes: render.closeButton,
224
233
  actionBarAttributes: render.actionBar,
225
- actions: [Button.view({ label: "close", attributes: render.closeButton }, h)],
234
+ actions: [
235
+ Button.view({ label: "close", attributes: render.closeButton }, h),
236
+ ],
226
237
  body: [
227
238
  ...(viewInputs.toIntroView?.() ?? []),
228
239
  Field.view(
@@ -233,27 +244,28 @@ const cardView = (
233
244
  onInput: (value) => Message.UpdatedQuery({ value }),
234
245
  inputAttributes: render.initialFocus,
235
246
  },
236
- h,
247
+ h
237
248
  ),
238
249
  Keymap.view({ groups, note }, h),
239
250
  ],
240
251
  },
241
- h,
252
+ h
242
253
  );
243
254
  };
244
255
 
245
256
  /** The keyboard's help: every key in force, under its group, with a field that finds one by
246
257
  * its keys or its words. `?` opens it (see `subscriptions`), and so does `open`. Render it
247
258
  * once per page. */
248
- export const view = defineView<Model, Message, ViewInputs>((model, viewInputs, h): Html =>
249
- h.submodel({
250
- slotId: id(model),
251
- model: model.dialog,
252
- view: Dialog.view,
253
- viewInputs: {
254
- toLiveRegionView: viewInputs.toLiveRegionView,
255
- toView: (render) => cardView(model, viewInputs, render, h),
256
- },
257
- toParentMessage: (message) => Message.GotDialogMessage({ message }),
258
- }),
259
+ export const view = defineView<Model, Message, ViewInputs>(
260
+ (model, viewInputs, h): Html =>
261
+ h.submodel({
262
+ slotId: id(model),
263
+ model: model.dialog,
264
+ view: Dialog.view,
265
+ viewInputs: {
266
+ toLiveRegionView: viewInputs.toLiveRegionView,
267
+ toView: (render) => cardView(model, viewInputs, render, h),
268
+ },
269
+ toParentMessage: (message) => Message.GotDialogMessage({ message }),
270
+ })
259
271
  );