@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
@@ -1,5 +1,14 @@
1
1
  import { Input as UiInput } from "@foldkit/ui";
2
- import { Array, Effect, Match, Number, Option, Queue, Schema, Stream } from "effect";
2
+ import {
3
+ Array,
4
+ Effect,
5
+ Match,
6
+ Number,
7
+ Option,
8
+ Queue,
9
+ Schema,
10
+ Stream,
11
+ } from "effect";
3
12
  import * as Command from "foldkit/command";
4
13
  import * as Dom from "foldkit/dom";
5
14
  import type { Html, HtmlBuilder } from "foldkit/html";
@@ -11,29 +20,20 @@ import type * as Update from "foldkit/update";
11
20
 
12
21
  import * as Button from "../button/button.ts";
13
22
  import { UNKNOWN_CLOCK, formatClock } from "../format/format.ts";
14
- import * as IconButton from "../iconButton/iconButton.ts";
23
+ import * as IconButton from "../icon-button/icon-button.ts";
15
24
  import { isPlain } from "../keys/keys.ts";
16
25
  import { slotView } from "../slot/slot.ts";
17
26
 
18
- // NOTE: what ImageFrame, VideoFrame and AudioFrame share: the space a frame keeps, its
19
- // caption, and a player's state read from the media element's own events. The package
20
- // exports the player as `Media`, and VideoFrame and AudioFrame are its two views; the parts
21
- // of a frame's view kept here (the caption, the play and mute buttons, the seek cells, the
22
- // time, a failed player's retry) are theirs alone.
23
-
24
- // FRAME
25
-
26
27
  /** The space a frame keeps before its picture arrives, so nothing moves when it does: the
27
28
  * picture's own size in CSS pixels (it prints at that width and shrinks to fit, never grows),
28
29
  * or a ratio of width to height (16 / 9) that fills the width it is given. */
29
30
  export const FrameSize = defineTaggedUnion({
30
- Pixels: { width: Schema.Number, height: Schema.Number },
31
- Ratio: { ratio: Schema.Number },
31
+ Pixels: { width: Schema.Finite, height: Schema.Finite },
32
+ Ratio: { ratio: Schema.Finite },
32
33
  });
34
+
33
35
  export type FrameSize = typeof FrameSize.Type;
34
36
 
35
- /** A frame's ratio as the `--ratio` its CSS reads, and its width when it has one: the
36
- * picture's, inside the 2px border, so a pixel drawing prints cell for cell. */
37
37
  export const frameStyle = (size: FrameSize): Record<string, string> =>
38
38
  FrameSize.match(size, {
39
39
  Pixels: ({ width, height }) => ({
@@ -43,8 +43,10 @@ export const frameStyle = (size: FrameSize): Record<string, string> =>
43
43
  Ratio: ({ ratio }) => ({ "--ratio": `${ratio}` }),
44
44
  });
45
45
 
46
- /** A frame's width and height attributes, when it has a size in pixels. */
47
- export const sizeAttributes = <Message>(size: FrameSize, h: HtmlBuilder<Message>) =>
46
+ export const sizeAttributes = <Message>(
47
+ size: FrameSize,
48
+ h: HtmlBuilder<Message>
49
+ ) =>
48
50
  FrameSize.match(size, {
49
51
  Pixels: ({ width, height }) => [h.Width(`${width}`), h.Height(`${height}`)],
50
52
  Ratio: () => [],
@@ -53,51 +55,51 @@ export const sizeAttributes = <Message>(size: FrameSize, h: HtmlBuilder<Message>
53
55
  /** What a frame holds whatever its source does: a specimen, or a source the product already
54
56
  * knows is gone. */
55
57
  export const Held = Schema.Literals(["Loading", "Broken"]);
58
+
56
59
  export type Held = typeof Held.Type;
57
60
 
58
- /** A figure's caption in the sans, its credit in the meta register at the right. */
59
61
  export const captionView = <Message>(
60
62
  caption: ReadonlyArray<Html | string>,
61
63
  credit: ReadonlyArray<Html | string>,
62
- h: HtmlBuilder<Message>,
63
- ): ReadonlyArray<Html> =>
64
+ h: HtmlBuilder<Message>
65
+ ): readonly Html[] =>
64
66
  Array.match(
65
67
  [
66
- ...Array.match(caption, { onEmpty: () => [], onNonEmpty: (words) => [h.span([], words)] }),
68
+ ...Array.match(caption, {
69
+ onEmpty: () => [],
70
+ onNonEmpty: (words) => [h.span([], words)],
71
+ }),
67
72
  ...slotView("span", "meta", credit, h),
68
73
  ],
69
74
  {
70
75
  onEmpty: () => [],
71
76
  onNonEmpty: (lines) => [h.figcaption([h.Class("media-caption")], lines)],
72
- },
77
+ }
73
78
  );
74
79
 
75
- // MODEL
76
-
77
80
  /** Schema for a player: the element's state as its events last said it. */
78
81
  export const Model = Schema.Struct({
79
82
  id: Schema.String,
80
83
  isPlaying: Schema.Boolean,
81
- time: Schema.Number,
82
- maybeDuration: Schema.Option(Schema.Number),
84
+ time: Schema.Finite,
85
+ maybeDuration: Schema.Option(Schema.Finite),
83
86
  isMuted: Schema.Boolean,
84
87
  isWaiting: Schema.Boolean,
85
- maybeErrorCode: Schema.Option(Schema.Number),
88
+ maybeErrorCode: Schema.Option(Schema.Finite),
86
89
  isShowingCaptions: Schema.Boolean,
87
90
  });
91
+
88
92
  export type Model = typeof Model.Type;
89
93
 
90
- /** The media element's state at one moment, as `ReadMedia` reads it. */
91
94
  export const Reading = Schema.Struct({
92
95
  isPlaying: Schema.Boolean,
93
- time: Schema.Number,
94
- maybeDuration: Schema.Option(Schema.Number),
96
+ time: Schema.Finite,
97
+ maybeDuration: Schema.Option(Schema.Finite),
95
98
  isMuted: Schema.Boolean,
96
- maybeErrorCode: Schema.Option(Schema.Number),
99
+ maybeErrorCode: Schema.Option(Schema.Finite),
97
100
  });
98
- export type Reading = typeof Reading.Type;
99
101
 
100
- // MESSAGE
102
+ export type Reading = typeof Reading.Type;
101
103
 
102
104
  /** Union of all Messages a player can produce. */
103
105
  export const Message = defineMessageUnion({
@@ -106,9 +108,9 @@ export const Message = defineMessageUnion({
106
108
  ClickedMute: {},
107
109
  ClickedCaptions: {},
108
110
  ClickedRetry: {},
109
- UpdatedSeek: { to: Schema.Number },
111
+ UpdatedSeek: { to: Schema.Finite },
110
112
  PressedPlaybackKey: {},
111
- PressedSeekKey: { by: Schema.Number },
113
+ PressedSeekKey: { by: Schema.Finite },
112
114
  UpdatedMediaState: { reading: Reading },
113
115
  UpdatedWaiting: { isWaiting: Schema.Boolean },
114
116
  CompletedPlayMedia: {},
@@ -117,18 +119,16 @@ export const Message = defineMessageUnion({
117
119
  CompletedReloadMedia: {},
118
120
  CompletedShowCaptions: {},
119
121
  });
120
- export type Message = typeof Message.Type;
121
122
 
122
- // OUT MESSAGE
123
+ export type Message = typeof Message.Type;
123
124
 
124
125
  /** Union of OutMessages a player reports to its parent: the reader asked to load the source
125
126
  * again, and it is loading. */
126
127
  export const OutMessage = defineMessageUnion({
127
128
  Retried: {},
128
129
  });
129
- export type OutMessage = typeof OutMessage.Type;
130
130
 
131
- // INIT
131
+ export type OutMessage = typeof OutMessage.Type;
132
132
 
133
133
  /** Configuration for creating a player with `init`. The `id` must be unique in the document:
134
134
  * it is the media element's. */
@@ -146,16 +146,16 @@ export const init = (config: InitConfig): Model => ({
146
146
  isShowingCaptions: false,
147
147
  });
148
148
 
149
- // ACCESSORS
150
-
151
149
  /** The media element's id, unique in the document. */
152
150
  export const id = (model: Model): string => model.id;
153
151
 
154
- // COMMAND
155
-
156
- const withMedia = (mediaId: string, act: (media: HTMLMediaElement) => void): Effect.Effect<void> =>
152
+ const withMedia = (
153
+ mediaId: string,
154
+ act: (media: HTMLMediaElement) => void
155
+ ): Effect.Effect<void> =>
157
156
  Effect.sync(() => {
158
- const element = document.getElementById(mediaId);
157
+ const element = document.querySelector(`#${CSS.escape(mediaId)}`);
158
+
159
159
  if (element instanceof HTMLMediaElement) {
160
160
  act(element);
161
161
  }
@@ -167,9 +167,12 @@ export const PlayMedia = Command.define("PlayMedia", {
167
167
  messages: [Message.CompletedPlayMedia],
168
168
  execute: ({ mediaId }) =>
169
169
  Effect.suspend(() => {
170
- const element = document.getElementById(mediaId);
170
+ const element = document.querySelector(`#${CSS.escape(mediaId)}`);
171
+
171
172
  return element instanceof HTMLMediaElement
172
- ? Effect.tryPromise(() => element.play())
173
+ ? Effect.tryPromise(async () => {
174
+ await element.play();
175
+ })
173
176
  : Effect.void;
174
177
  }).pipe(Effect.ignore, Effect.as(Message.CompletedPlayMedia())),
175
178
  });
@@ -179,12 +182,14 @@ export const PauseMedia = Command.define("PauseMedia", {
179
182
  args: { mediaId: Schema.String },
180
183
  messages: [Message.CompletedPauseMedia],
181
184
  execute: ({ mediaId }) =>
182
- withMedia(mediaId, (media) => media.pause()).pipe(Effect.as(Message.CompletedPauseMedia())),
185
+ withMedia(mediaId, (media) => {
186
+ media.pause();
187
+ }).pipe(Effect.as(Message.CompletedPauseMedia())),
183
188
  });
184
189
 
185
190
  /** Moves the media element to a place, in seconds. */
186
191
  export const SeekMedia = Command.define("SeekMedia", {
187
- args: { mediaId: Schema.String, to: Schema.Number },
192
+ args: { mediaId: Schema.String, to: Schema.Finite },
188
193
  messages: [Message.CompletedSeekMedia],
189
194
  execute: ({ mediaId, to }) =>
190
195
  withMedia(mediaId, (media) => {
@@ -197,26 +202,26 @@ export const ReloadMedia = Command.define("ReloadMedia", {
197
202
  args: { mediaId: Schema.String },
198
203
  messages: [Message.CompletedReloadMedia],
199
204
  execute: ({ mediaId }) =>
200
- withMedia(mediaId, (media) => media.load()).pipe(Effect.as(Message.CompletedReloadMedia())),
205
+ withMedia(mediaId, (media) => {
206
+ media.load();
207
+ }).pipe(Effect.as(Message.CompletedReloadMedia())),
201
208
  });
202
209
 
203
- const captionsMode = (isShowing: boolean): TextTrackMode => (isShowing ? "showing" : "hidden");
210
+ const captionsMode = (isShowing: boolean): TextTrackMode =>
211
+ isShowing ? "showing" : "hidden";
204
212
 
205
213
  /** Shows or hides the media element's caption tracks. */
206
214
  export const ShowCaptions = Command.define("ShowCaptions", {
207
215
  args: { mediaId: Schema.String, isShowing: Schema.Boolean },
208
216
  messages: [Message.CompletedShowCaptions],
209
217
  execute: ({ mediaId, isShowing }) =>
210
- withMedia(mediaId, (media) =>
211
- Array.forEach(Array.fromIterable(media.textTracks), (track) => {
218
+ withMedia(mediaId, (media) => {
219
+ for (const track of media.textTracks) {
212
220
  track.mode = captionsMode(isShowing);
213
- }),
214
- ).pipe(Effect.as(Message.CompletedShowCaptions())),
221
+ }
222
+ }).pipe(Effect.as(Message.CompletedShowCaptions())),
215
223
  });
216
224
 
217
- // UPDATE
218
-
219
- /** How far a seek key moves, in seconds. */
220
225
  export const SEEK_STEP = 5;
221
226
 
222
227
  type UpdateReturn = Update.ReturnWithOutMessage<Model, Message, OutMessage>;
@@ -236,6 +241,7 @@ const seek = (model: Model, to: number): UpdateReturn =>
236
241
  onNone: () => ({ model }),
237
242
  onSome: (duration) => {
238
243
  const clamped = Number.clamp(to, { minimum: 0, maximum: duration });
244
+
239
245
  return {
240
246
  model: modifyFields(model, { time: () => clamped }),
241
247
  commands: [SeekMedia({ mediaId: model.id, to: clamped })],
@@ -243,9 +249,9 @@ const seek = (model: Model, to: number): UpdateReturn =>
243
249
  },
244
250
  });
245
251
 
246
- const playOrPause = (model: Model): UpdateReturn => (model.isPlaying ? pause(model) : play(model));
252
+ const playOrPause = (model: Model): UpdateReturn =>
253
+ model.isPlaying ? pause(model) : play(model);
247
254
 
248
- // NOTE: a failed element takes no keys: its frame prints broken, its controls held.
249
255
  const isFailed = (model: Model): boolean => Option.isSome(model.maybeErrorCode);
250
256
 
251
257
  /** Processes a player Message and returns the next Model, Commands and OutMessage. */
@@ -253,10 +259,19 @@ export const update = (model: Model, message: Message) =>
253
259
  Message.match<UpdateReturn>(message, {
254
260
  ClickedPlay: () => play(model),
255
261
  ClickedPause: () => pause(model),
256
- ClickedMute: () => ({ model: modifyFields(model, { isMuted: (isMuted) => !isMuted }) }),
262
+ ClickedMute: () => ({
263
+ model: modifyFields(model, { isMuted: (isMuted) => !isMuted }),
264
+ }),
257
265
  ClickedCaptions: () => ({
258
- model: modifyFields(model, { isShowingCaptions: (isShowing) => !isShowing }),
259
- commands: [ShowCaptions({ mediaId: model.id, isShowing: !model.isShowingCaptions })],
266
+ model: modifyFields(model, {
267
+ isShowingCaptions: (isShowing) => !isShowing,
268
+ }),
269
+ commands: [
270
+ ShowCaptions({
271
+ mediaId: model.id,
272
+ isShowing: !model.isShowingCaptions,
273
+ }),
274
+ ],
260
275
  }),
261
276
  ClickedRetry: () => ({
262
277
  model: modifyFields(model, { maybeErrorCode: () => Option.none() }),
@@ -264,8 +279,10 @@ export const update = (model: Model, message: Message) =>
264
279
  outMessage: OutMessage.Retried(),
265
280
  }),
266
281
  UpdatedSeek: ({ to }) => seek(model, to),
267
- PressedPlaybackKey: () => (isFailed(model) ? { model } : playOrPause(model)),
268
- PressedSeekKey: ({ by }) => (isFailed(model) ? { model } : seek(model, model.time + by)),
282
+ PressedPlaybackKey: () =>
283
+ isFailed(model) ? { model } : playOrPause(model),
284
+ PressedSeekKey: ({ by }) =>
285
+ isFailed(model) ? { model } : seek(model, model.time + by),
269
286
  UpdatedMediaState: ({ reading }) => ({
270
287
  model: modifyFields(model, {
271
288
  isPlaying: () => reading.isPlaying,
@@ -285,17 +302,22 @@ export const update = (model: Model, message: Message) =>
285
302
  CompletedShowCaptions: () => ({ model }),
286
303
  });
287
304
 
288
- // READING THE ELEMENT
289
-
290
305
  const readMedia = (media: HTMLMediaElement): Reading => ({
291
306
  isPlaying: !media.paused,
292
307
  time: media.currentTime,
293
- maybeDuration: Option.liftPredicate(media.duration, globalThis.Number.isFinite),
308
+ maybeDuration: Option.liftPredicate(
309
+ media.duration,
310
+ globalThis.Number.isFinite
311
+ ),
294
312
  isMuted: media.muted,
295
- maybeErrorCode: Option.map(Option.fromNullishOr(media.error), ({ code }) => code),
313
+ maybeErrorCode: Option.map(
314
+ Option.fromNullishOr(media.error),
315
+ ({ code }) => code
316
+ ),
296
317
  });
297
318
 
298
319
  const MediaEvent = Schema.Literals(["Read", "Wait", "Settle"]);
320
+
299
321
  type MediaEvent = typeof MediaEvent.Type;
300
322
 
301
323
  const MEDIA_EVENTS: ReadonlyArray<readonly [string, MediaEvent]> = [
@@ -314,18 +336,25 @@ const MEDIA_EVENTS: ReadonlyArray<readonly [string, MediaEvent]> = [
314
336
  ["emptied", "Settle"],
315
337
  ];
316
338
 
317
- type ElementMessage = typeof Message.UpdatedMediaState.Type | typeof Message.UpdatedWaiting.Type;
339
+ type ElementMessage =
340
+ | typeof Message.UpdatedMediaState.Type
341
+ | typeof Message.UpdatedWaiting.Type;
318
342
 
319
- const toMessages = (media: HTMLMediaElement, event: MediaEvent): ReadonlyArray<ElementMessage> =>
343
+ const toMessages = (
344
+ media: HTMLMediaElement,
345
+ event: MediaEvent
346
+ ): readonly ElementMessage[] =>
320
347
  Match.value(event).pipe(
321
- Match.withReturnType<ReadonlyArray<ElementMessage>>(),
322
- Match.when("Read", () => [Message.UpdatedMediaState({ reading: readMedia(media) })]),
348
+ Match.withReturnType<readonly ElementMessage[]>(),
349
+ Match.when("Read", () => [
350
+ Message.UpdatedMediaState({ reading: readMedia(media) }),
351
+ ]),
323
352
  Match.when("Wait", () => [Message.UpdatedWaiting({ isWaiting: true })]),
324
353
  Match.when("Settle", () => [
325
354
  Message.UpdatedWaiting({ isWaiting: false }),
326
355
  Message.UpdatedMediaState({ reading: readMedia(media) }),
327
356
  ]),
328
- Match.exhaustive,
357
+ Match.exhaustive
329
358
  );
330
359
 
331
360
  /** Reads a media element's state from its own events, and once when it mounts, for whatever
@@ -340,65 +369,90 @@ export const ReadMedia = Mount.defineStream("ReadMedia", {
340
369
  if (!(element instanceof HTMLMediaElement)) {
341
370
  return yield* Effect.never;
342
371
  }
343
- const offer = (event: MediaEvent) => (): void =>
344
- Array.forEach(toMessages(element, event), (message) => {
372
+
373
+ const offer = (event: MediaEvent) => (): void => {
374
+ for (const message of toMessages(element, event)) {
345
375
  Queue.offerUnsafe(queue, message);
346
- });
376
+ }
377
+ };
378
+
347
379
  yield* Effect.acquireRelease(
348
380
  Effect.sync(() => {
349
381
  const listeners = Array.map(MEDIA_EVENTS, ([type, event]) => {
350
382
  const listener = offer(event);
351
383
  element.addEventListener(type, listener);
384
+
352
385
  return [type, listener] as const;
353
386
  });
354
- Array.forEach(Array.fromIterable(element.textTracks), (track) => {
387
+
388
+ for (const track of element.textTracks) {
355
389
  track.mode = captionsMode(false);
356
- });
390
+ }
391
+
357
392
  offer("Read")();
393
+
358
394
  return listeners;
359
395
  }),
360
396
  (listeners) =>
361
- Effect.sync(() =>
362
- Array.forEach(listeners, ([type, listener]) =>
363
- element.removeEventListener(type, listener),
364
- ),
365
- ),
397
+ Effect.sync(() => {
398
+ for (const [type, listener] of listeners) {
399
+ element.removeEventListener(type, listener);
400
+ }
401
+ })
366
402
  );
403
+
367
404
  return yield* Effect.never;
368
- }),
405
+ })
369
406
  ),
370
407
  });
371
408
 
372
- // KEYS
373
-
374
- type KeyMessage = typeof Message.PressedPlaybackKey.Type | typeof Message.PressedSeekKey.Type;
409
+ type KeyMessage =
410
+ | typeof Message.PressedPlaybackKey.Type
411
+ | typeof Message.PressedSeekKey.Type;
375
412
 
376
413
  const toKeyMessage = (event: KeyboardEvent): Option.Option<KeyMessage> => {
377
- const target = Option.liftPredicate(event.target, (target) => target instanceof Element);
378
- const isOnSeek = Option.exists(target, (element) => element.matches("input[type=range]"));
379
- const isOnButton = Option.exists(target, (element) => element.tagName === "BUTTON");
414
+ const target = Option.liftPredicate(
415
+ event.target,
416
+ (eventTarget) => eventTarget instanceof Element
417
+ );
418
+
419
+ const isOnSeek = Option.exists(target, (element) =>
420
+ element.matches("input[type=range]")
421
+ );
422
+
423
+ const isOnButton = Option.exists(
424
+ target,
425
+ (element) => element.tagName === "BUTTON"
426
+ );
380
427
 
381
428
  return Match.value(event.key).pipe(
382
429
  Match.withReturnType<Option.Option<KeyMessage>>(),
383
430
  Match.when("k", () => Option.some(Message.PressedPlaybackKey())),
384
- Match.when(" ", () => Option.liftPredicate(Message.PressedPlaybackKey(), () => !isOnButton)),
385
- Match.when("ArrowLeft", () => Option.some(Message.PressedSeekKey({ by: -SEEK_STEP }))),
386
- Match.when("ArrowRight", () => Option.some(Message.PressedSeekKey({ by: SEEK_STEP }))),
431
+ Match.when(" ", () =>
432
+ Option.liftPredicate(Message.PressedPlaybackKey(), () => !isOnButton)
433
+ ),
434
+ Match.when("ArrowLeft", () =>
435
+ Option.some(Message.PressedSeekKey({ by: -SEEK_STEP }))
436
+ ),
437
+ Match.when("ArrowRight", () =>
438
+ Option.some(Message.PressedSeekKey({ by: SEEK_STEP }))
439
+ ),
387
440
  Match.when("ArrowDown", () =>
388
- Option.liftPredicate(Message.PressedSeekKey({ by: -SEEK_STEP }), () => isOnSeek),
441
+ Option.liftPredicate(
442
+ Message.PressedSeekKey({ by: -SEEK_STEP }),
443
+ () => isOnSeek
444
+ )
389
445
  ),
390
446
  Match.when("ArrowUp", () =>
391
- Option.liftPredicate(Message.PressedSeekKey({ by: SEEK_STEP }), () => isOnSeek),
447
+ Option.liftPredicate(
448
+ Message.PressedSeekKey({ by: SEEK_STEP }),
449
+ () => isOnSeek
450
+ )
392
451
  ),
393
- Match.orElse(() => Option.none()),
452
+ Match.orElse(() => Option.none())
394
453
  );
395
454
  };
396
455
 
397
- /** The player's key for one keydown inside its frame: Space or k plays and pauses, the arrows
398
- * seek five seconds. A button keeps its own Space, and the seek bar its Home and End. A key
399
- * an IME is composing, one someone already handled and one with a modifier are left alone;
400
- * `BindPlayerKeys` prevents the default only for a key the player takes. A failed player's
401
- * update ignores the keys. */
402
456
  export const playerKey = (event: KeyboardEvent): Option.Option<KeyMessage> =>
403
457
  event.isComposing || event.defaultPrevented || !isPlain(event)
404
458
  ? Option.none()
@@ -416,47 +470,72 @@ export const BindPlayerKeys = Mount.defineStream("BindPlayerKeys", {
416
470
  }),
417
471
  });
418
472
 
419
- // SHARED VIEWS
420
-
421
- // NOTE: `MediaError`'s codes, written out because the view renders on the server too, where
422
- // there is no `MediaError` to read them from.
423
473
  const MEDIA_ERR_ABORTED = 1;
424
474
  const MEDIA_ERR_NETWORK = 2;
425
475
  const MEDIA_ERR_DECODE = 3;
426
476
 
427
- /** Why it cannot play, by `MediaError` code, in the reader's words. */
428
477
  export const failureReason = (maybeErrorCode: Option.Option<number>): string =>
429
478
  Match.value(maybeErrorCode).pipe(
430
479
  Match.withReturnType<string>(),
431
480
  Match.when(
432
481
  Option.contains(MEDIA_ERR_ABORTED),
433
- () => "Loading was stopped before it could play.",
482
+ () => "Loading was stopped before it could play."
434
483
  ),
435
- Match.when(Option.contains(MEDIA_ERR_NETWORK), () => "The connection dropped while it loaded."),
436
- Match.when(Option.contains(MEDIA_ERR_DECODE), () => "The file is damaged or cut short."),
437
- Match.orElse(() => "The source is missing, or in a format this browser cannot play."),
484
+ Match.when(
485
+ Option.contains(MEDIA_ERR_NETWORK),
486
+ () => "The connection dropped while it loaded."
487
+ ),
488
+ Match.when(
489
+ Option.contains(MEDIA_ERR_DECODE),
490
+ () => "The file is damaged or cut short."
491
+ ),
492
+ Match.orElse(
493
+ () => "The source is missing, or in a format this browser cannot play."
494
+ )
438
495
  );
439
496
 
440
- /** Whether the player prints broken: held so, or failed while not held loading. */
441
- export const isBroken = (model: Model, maybeHeld: Option.Option<Held>): boolean =>
497
+ export const isBroken = (
498
+ model: Model,
499
+ maybeHeld: Option.Option<Held>
500
+ ): boolean =>
442
501
  Option.contains(maybeHeld, "Broken") ||
443
- (!Option.contains(maybeHeld, "Loading") && Option.isSome(model.maybeErrorCode));
502
+ (!Option.contains(maybeHeld, "Loading") &&
503
+ Option.isSome(model.maybeErrorCode));
444
504
 
445
- /** Whether the player prints waiting: held loading, or waiting for data while not broken. */
446
- export const isWaiting = (model: Model, maybeHeld: Option.Option<Held>): boolean =>
447
- Option.contains(maybeHeld, "Loading") || (!isBroken(model, maybeHeld) && model.isWaiting);
505
+ export const isWaiting = (
506
+ model: Model,
507
+ maybeHeld: Option.Option<Held>
508
+ ): boolean =>
509
+ Option.contains(maybeHeld, "Loading") ||
510
+ (!isBroken(model, maybeHeld) && model.isWaiting);
448
511
 
449
- /** The play button, which pauses while it plays. */
450
- export const playButtonView = (model: Model, isDisabled: boolean, h: HtmlBuilder<Message>): Html =>
512
+ export const playButtonView = (
513
+ model: Model,
514
+ isDisabled: boolean,
515
+ h: HtmlBuilder<Message>
516
+ ): Html =>
451
517
  IconButton.view(
452
518
  model.isPlaying
453
- ? { glyph: "pause", label: "Pause", onClick: Message.ClickedPause(), isDisabled }
454
- : { glyph: "play", label: "Play", onClick: Message.ClickedPlay(), isDisabled },
455
- h,
519
+ ? {
520
+ glyph: "pause",
521
+ label: "Pause",
522
+ onClick: Message.ClickedPause(),
523
+ isDisabled,
524
+ }
525
+ : {
526
+ glyph: "play",
527
+ label: "Play",
528
+ onClick: Message.ClickedPlay(),
529
+ isDisabled,
530
+ },
531
+ h
456
532
  );
457
533
 
458
- /** The mute toggle, which says whether it is pressed. */
459
- export const muteButtonView = (model: Model, isDisabled: boolean, h: HtmlBuilder<Message>): Html =>
534
+ export const muteButtonView = (
535
+ model: Model,
536
+ isDisabled: boolean,
537
+ h: HtmlBuilder<Message>
538
+ ): Html =>
460
539
  IconButton.view(
461
540
  {
462
541
  glyph: model.isMuted ? "volume-off" : "volume",
@@ -465,44 +544,55 @@ export const muteButtonView = (model: Model, isDisabled: boolean, h: HtmlBuilder
465
544
  isDisabled,
466
545
  attributes: [Button.pressedAttribute(model.isMuted, h)],
467
546
  },
468
- h,
547
+ h
469
548
  );
470
549
 
471
- /** A failed player's actions: its retry button, when it has one. */
472
- export const retryActions = (hasRetry: boolean, h: HtmlBuilder<Message>): ReadonlyArray<Html> =>
550
+ export const retryActions = (
551
+ hasRetry: boolean,
552
+ h: HtmlBuilder<Message>
553
+ ): readonly Html[] =>
473
554
  hasRetry
474
- ? [Button.view({ label: "retry", isSmall: true, onClick: Message.ClickedRetry() }, h)]
555
+ ? [
556
+ Button.view(
557
+ { label: "retry", isSmall: true, onClick: Message.ClickedRetry() },
558
+ h
559
+ ),
560
+ ]
475
561
  : [];
476
562
 
477
563
  const SEEK_CELLS = 24;
478
564
 
479
- /** Where it is, as a row of cells lit up to the place: the cells are what shows, and a native
480
- * range over them (unseen) is what the pointer, the keyboard and a screen reader use. The
481
- * range is natively disabled only while the source is broken (`isNativeDisabled`); while the
482
- * length is unknown (before the metadata, and always for a stream) it is held, aria-disabled
483
- * with no handler, and stays in the keyboard. */
484
565
  export const seekView = (
485
566
  model: Model,
486
567
  isNativeDisabled: boolean,
487
- h: HtmlBuilder<Message>,
568
+ h: HtmlBuilder<Message>
488
569
  ): Html => {
489
- const maybeKnown = Option.filter(model.maybeDuration, (duration) => duration > 0);
490
- const place = Option.match(maybeKnown, {
570
+ const maybeKnownLength = Option.filter(
571
+ model.maybeDuration,
572
+ (duration) => duration > 0
573
+ );
574
+
575
+ const place = Option.match(maybeKnownLength, {
491
576
  onNone: () => 0,
492
577
  onSome: (duration) => Math.min(model.time, duration),
493
578
  });
494
- const lit = Option.match(maybeKnown, {
579
+
580
+ const lit = Option.match(maybeKnownLength, {
495
581
  onNone: () => 0,
496
582
  onSome: (duration) => Math.floor((place / duration) * SEEK_CELLS),
497
583
  });
498
- const isHeld = !isNativeDisabled && Option.isNone(maybeKnown);
584
+
585
+ const isHeldUntilLengthKnown =
586
+ !isNativeDisabled && Option.isNone(maybeKnownLength);
499
587
 
500
588
  return h.span(
501
589
  [h.Class("media-seek")],
502
590
  [
503
591
  h.span(
504
592
  [h.Class("cells"), h.AriaHidden(true)],
505
- Array.makeBy(SEEK_CELLS, (index) => h.span([h.Class(index < lit ? "cell on" : "cell")])),
593
+ Array.makeBy(SEEK_CELLS, (index) =>
594
+ h.span([h.Class(index < lit ? "cell on" : "cell")])
595
+ )
506
596
  ),
507
597
  UiInput.view(
508
598
  {
@@ -510,43 +600,48 @@ export const seekView = (
510
600
  type: "range",
511
601
  value: `${place}`,
512
602
  isDisabled: isNativeDisabled,
513
- ...(isHeld
603
+ ...(isHeldUntilLengthKnown
514
604
  ? {}
515
605
  : {
516
- onInput: (value: string) => Message.UpdatedSeek({ to: globalThis.Number(value) }),
606
+ onInput: (value: string) =>
607
+ Message.UpdatedSeek({ to: globalThis.Number(value) }),
517
608
  }),
518
609
  toView: (groups) =>
519
610
  h.input([
520
611
  ...groups.input,
521
- ...(isHeld ? [h.AriaDisabled(true)] : []),
612
+ ...(isHeldUntilLengthKnown ? [h.AriaDisabled(true)] : []),
522
613
  h.AriaLabel("Seek"),
523
614
  h.AriaValuetext(
524
615
  Option.match(model.maybeDuration, {
525
616
  onNone: () => `${formatClock(model.time)}, length unknown`,
526
- onSome: (duration) => `${formatClock(model.time)} of ${formatClock(duration)}`,
527
- }),
617
+ onSome: (duration) =>
618
+ `${formatClock(model.time)} of ${formatClock(duration)}`,
619
+ })
528
620
  ),
529
621
  h.Min("0"),
530
- h.Max(`${Option.getOrElse(maybeKnown, () => 0)}`),
622
+ h.Max(`${Option.getOrElse(maybeKnownLength, () => 0)}`),
531
623
  h.Step("any"),
532
624
  ]),
533
625
  },
534
- h,
626
+ h
535
627
  ),
536
- ],
628
+ ]
537
629
  );
538
630
  };
539
631
 
540
- /** The time, as the place and the length in tabular pixel figures; while the element waits
541
- * for data (where nothing else says so), the word and the working cursor instead. The word
542
- * is said by a status that stays in place, its words swapped, so a screen reader hears it. */
543
- export const timeView = (model: Model, isTimeWaiting: boolean, h: HtmlBuilder<Message>): Html =>
632
+ export const timeView = (
633
+ model: Model,
634
+ isTimeWaiting: boolean,
635
+ h: HtmlBuilder<Message>
636
+ ): Html =>
544
637
  h.span(
545
638
  [h.Class(isTimeWaiting ? "media-time waiting" : "media-time")],
546
639
  [
547
640
  h.span(
548
641
  [h.Role("status")],
549
- isTimeWaiting ? ["loading", h.span([h.Class("cursor"), h.AriaHidden(true)])] : [],
642
+ isTimeWaiting
643
+ ? ["loading", h.span([h.Class("cursor"), h.AriaHidden(true)])]
644
+ : []
550
645
  ),
551
646
  ...(isTimeWaiting
552
647
  ? []
@@ -554,12 +649,15 @@ export const timeView = (model: Model, isTimeWaiting: boolean, h: HtmlBuilder<Me
554
649
  h.span(
555
650
  [h.AriaHidden(true)],
556
651
  [
557
- `${formatClock(model.time)} / ${Option.match(model.maybeDuration, {
558
- onNone: () => UNKNOWN_CLOCK,
559
- onSome: formatClock,
560
- })}`,
561
- ],
652
+ `${formatClock(model.time)} / ${Option.match(
653
+ model.maybeDuration,
654
+ {
655
+ onNone: () => UNKNOWN_CLOCK,
656
+ onSome: formatClock,
657
+ }
658
+ )}`,
659
+ ]
562
660
  ),
563
661
  ]),
564
- ],
662
+ ]
565
663
  );