@gjermundgaraba/pixel-paper 0.0.0-stage → 0.1.1

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 (387) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +50 -2
  3. package/dist/_virtual/_rolldown/runtime.js +13 -0
  4. package/dist/announcer/announcer.d.ts +35 -0
  5. package/dist/announcer/announcer.js +121 -0
  6. package/dist/announcer/index.d.ts +5 -0
  7. package/dist/announcer/index.js +11 -0
  8. package/dist/attributes/attributes.d.ts +4 -0
  9. package/dist/banner/banner.d.ts +20 -0
  10. package/dist/banner/banner.js +18 -0
  11. package/dist/banner/index.d.ts +5 -0
  12. package/dist/banner/index.js +6 -0
  13. package/dist/bench/bench.d.ts +16 -0
  14. package/dist/bench/bench.js +12 -0
  15. package/dist/bench/index.d.ts +5 -0
  16. package/dist/bench/index.js +6 -0
  17. package/dist/board/board.d.ts +1151 -0
  18. package/dist/board/board.js +449 -0
  19. package/dist/board/index.d.ts +6 -0
  20. package/dist/board/index.js +21 -0
  21. package/dist/button/button.d.ts +54 -0
  22. package/dist/button/button.js +50 -0
  23. package/dist/button/index.d.ts +5 -0
  24. package/dist/button/index.js +9 -0
  25. package/dist/card/card.d.ts +66 -0
  26. package/dist/card/card.js +70 -0
  27. package/dist/card/index.d.ts +5 -0
  28. package/dist/card/index.js +10 -0
  29. package/dist/chip/chip.d.ts +27 -0
  30. package/dist/chip/chip.js +34 -0
  31. package/dist/chip/index.d.ts +5 -0
  32. package/dist/chip/index.js +9 -0
  33. package/dist/choice/choice.d.ts +16 -0
  34. package/dist/choice/choice.js +17 -0
  35. package/dist/choice/index.d.ts +5 -0
  36. package/dist/choice/index.js +6 -0
  37. package/dist/code-editor/code-editor.d.ts +15 -0
  38. package/dist/code-editor/code-editor.js +22 -0
  39. package/dist/code-editor/index.d.ts +5 -0
  40. package/dist/code-editor/index.js +6 -0
  41. package/dist/code-surface/code-surface.d.ts +12 -0
  42. package/dist/code-surface/code-surface.js +12 -0
  43. package/dist/code-surface/index.d.ts +5 -0
  44. package/dist/code-surface/index.js +6 -0
  45. package/dist/command-palette/command-palette.d.ts +579 -0
  46. package/dist/command-palette/command-palette.js +600 -0
  47. package/dist/command-palette/index.d.ts +9 -0
  48. package/dist/command-palette/index.js +32 -0
  49. package/dist/command-palette/keys.d.ts +13 -0
  50. package/dist/command-palette/keys.js +71 -0
  51. package/dist/command-palette/match.d.ts +43 -0
  52. package/dist/command-palette/match.js +45 -0
  53. package/dist/command-palette/message.d.ts +94 -0
  54. package/dist/command-palette/message.js +46 -0
  55. package/dist/confirm-dialog/confirm-dialog.d.ts +287 -0
  56. package/dist/confirm-dialog/confirm-dialog.js +115 -0
  57. package/dist/confirm-dialog/index.d.ts +5 -0
  58. package/dist/confirm-dialog/index.js +17 -0
  59. package/dist/copy-button/copy-button.d.ts +99 -0
  60. package/dist/copy-button/copy-button.js +96 -0
  61. package/dist/copy-button/index.d.ts +5 -0
  62. package/dist/copy-button/index.js +13 -0
  63. package/dist/crumbs/crumbs.d.ts +15 -0
  64. package/dist/crumbs/crumbs.js +11 -0
  65. package/dist/crumbs/index.d.ts +5 -0
  66. package/dist/crumbs/index.js +6 -0
  67. package/dist/deck/deck.d.ts +9 -0
  68. package/dist/deck/deck.js +9 -0
  69. package/dist/deck/index.d.ts +5 -0
  70. package/dist/deck/index.js +6 -0
  71. package/dist/dialog/dialog.d.ts +278 -0
  72. package/dist/dialog/dialog.js +145 -0
  73. package/dist/dialog/fold.d.ts +58 -0
  74. package/dist/dialog/fold.js +63 -0
  75. package/dist/dialog/index.d.ts +6 -0
  76. package/dist/dialog/index.js +21 -0
  77. package/dist/disclosure/disclosure.d.ts +24 -0
  78. package/dist/disclosure/disclosure.js +25 -0
  79. package/dist/disclosure/index.d.ts +5 -0
  80. package/dist/disclosure/index.js +6 -0
  81. package/dist/dom/html-element.js +8 -0
  82. package/dist/drag/drag.d.ts +15 -0
  83. package/dist/drag/drag.js +123 -0
  84. package/dist/drop-zone/drop-zone.d.ts +119 -0
  85. package/dist/drop-zone/drop-zone.js +64 -0
  86. package/dist/drop-zone/index.d.ts +5 -0
  87. package/dist/drop-zone/index.js +14 -0
  88. package/dist/empty-state/empty-state.d.ts +18 -0
  89. package/dist/empty-state/empty-state.js +16 -0
  90. package/dist/empty-state/index.d.ts +5 -0
  91. package/dist/empty-state/index.js +6 -0
  92. package/dist/error-summary/error-summary.d.ts +34 -0
  93. package/dist/error-summary/error-summary.js +33 -0
  94. package/dist/error-summary/index.d.ts +5 -0
  95. package/dist/error-summary/index.js +6 -0
  96. package/dist/field/field.d.ts +35 -0
  97. package/dist/field/field.js +34 -0
  98. package/dist/field/index.d.ts +5 -0
  99. package/dist/field/index.js +6 -0
  100. package/dist/field-grid/field-grid.d.ts +8 -0
  101. package/dist/field-grid/field-grid.js +8 -0
  102. package/dist/field-grid/index.d.ts +5 -0
  103. package/dist/field-grid/index.js +6 -0
  104. package/dist/fields/fields.js +9 -0
  105. package/dist/fieldset/fieldset.d.ts +13 -0
  106. package/dist/fieldset/fieldset.js +13 -0
  107. package/dist/fieldset/index.d.ts +5 -0
  108. package/dist/fieldset/index.js +6 -0
  109. package/dist/filter-chip/filter-chip.d.ts +21 -0
  110. package/dist/filter-chip/filter-chip.js +28 -0
  111. package/dist/filter-chip/index.d.ts +5 -0
  112. package/dist/filter-chip/index.js +6 -0
  113. package/dist/filter-strip/filter-strip.d.ts +12 -0
  114. package/dist/filter-strip/filter-strip.js +13 -0
  115. package/dist/filter-strip/index.d.ts +5 -0
  116. package/dist/filter-strip/index.js +6 -0
  117. package/dist/flash-word/flash-word.d.ts +31 -0
  118. package/dist/flash-word/flash-word.js +31 -0
  119. package/dist/flash-word/index.d.ts +5 -0
  120. package/dist/flash-word/index.js +9 -0
  121. package/dist/focus/focus.d.ts +15 -0
  122. package/dist/focus/focus.js +17 -0
  123. package/dist/focus/index.d.ts +5 -0
  124. package/dist/focus/index.js +9 -0
  125. package/dist/format/format.js +52 -0
  126. package/dist/format/index.d.ts +5 -0
  127. package/dist/format/index.js +6 -0
  128. package/dist/glyph/glyph.d.ts +9 -0
  129. package/dist/glyph/glyph.js +25 -0
  130. package/dist/glyph/glyphs.d.ts +381 -0
  131. package/dist/glyph/glyphs.js +2603 -0
  132. package/dist/glyph/index.d.ts +5 -0
  133. package/dist/glyph/index.js +6 -0
  134. package/dist/group/group.d.ts +8 -0
  135. package/dist/group/group.js +9 -0
  136. package/dist/group/index.d.ts +5 -0
  137. package/dist/group/index.js +6 -0
  138. package/dist/history/history.d.ts +34 -0
  139. package/dist/history/history.js +15 -0
  140. package/dist/history/index.d.ts +5 -0
  141. package/dist/history/index.js +6 -0
  142. package/dist/icon-button/icon-button.d.ts +23 -0
  143. package/dist/icon-button/icon-button.js +23 -0
  144. package/dist/icon-button/index.d.ts +5 -0
  145. package/dist/icon-button/index.js +6 -0
  146. package/dist/identity/identity.d.ts +15 -0
  147. package/dist/identity/identity.js +15 -0
  148. package/dist/identity/index.d.ts +5 -0
  149. package/dist/identity/index.js +6 -0
  150. package/dist/index.d.ts +85 -0
  151. package/dist/index.js +85 -0
  152. package/dist/inline-input/index.d.ts +5 -0
  153. package/dist/inline-input/index.js +20 -0
  154. package/dist/inline-input/inline-input.d.ts +196 -0
  155. package/dist/inline-input/inline-input.js +212 -0
  156. package/dist/key-help/index.d.ts +5 -0
  157. package/dist/key-help/index.js +18 -0
  158. package/dist/key-help/key-help.d.ts +255 -0
  159. package/dist/key-help/key-help.js +137 -0
  160. package/dist/key-hint/index.d.ts +6 -0
  161. package/dist/key-hint/index.js +12 -0
  162. package/dist/key-hint/key-hint.d.ts +13 -0
  163. package/dist/key-hint/key-hint.js +7 -0
  164. package/dist/key-hint/key-label.d.ts +18 -0
  165. package/dist/key-hint/key-label.js +77 -0
  166. package/dist/keymap/keymap.d.ts +11 -0
  167. package/dist/keymap/keymap.js +9 -0
  168. package/dist/keys/keys.js +4 -0
  169. package/dist/line-diff/diff.d.ts +2 -0
  170. package/dist/line-diff/diff.js +73 -0
  171. package/dist/line-diff/index.d.ts +6 -0
  172. package/dist/line-diff/index.js +10 -0
  173. package/dist/line-diff/line-diff.d.ts +21 -0
  174. package/dist/line-diff/line-diff.js +75 -0
  175. package/dist/line-diff/patch.d.ts +15 -0
  176. package/dist/line-diff/patch.js +120 -0
  177. package/dist/link-button/index.d.ts +5 -0
  178. package/dist/link-button/index.js +6 -0
  179. package/dist/link-button/link-button.d.ts +11 -0
  180. package/dist/link-button/link-button.js +10 -0
  181. package/dist/link-state/index.d.ts +5 -0
  182. package/dist/link-state/index.js +6 -0
  183. package/dist/link-state/link-state.d.ts +15 -0
  184. package/dist/link-state/link-state.js +17 -0
  185. package/dist/live-region/index.d.ts +5 -0
  186. package/dist/live-region/index.js +9 -0
  187. package/dist/live-region/live-region.d.ts +39 -0
  188. package/dist/live-region/live-region.js +33 -0
  189. package/dist/loading/index.d.ts +5 -0
  190. package/dist/loading/index.js +6 -0
  191. package/dist/loading/loading.d.ts +19 -0
  192. package/dist/loading/loading.js +16 -0
  193. package/dist/locale/locale.d.ts +3 -0
  194. package/dist/locale/locale.js +5 -0
  195. package/dist/mark/index.d.ts +5 -0
  196. package/dist/mark/index.js +6 -0
  197. package/dist/mark/mark.d.ts +15 -0
  198. package/dist/mark/mark.js +30 -0
  199. package/dist/menu/index.d.ts +7 -0
  200. package/dist/menu/index.js +25 -0
  201. package/dist/menu/item.d.ts +236 -0
  202. package/dist/menu/item.js +19 -0
  203. package/dist/menu/menu.d.ts +206 -0
  204. package/dist/menu/menu.js +208 -0
  205. package/dist/menu/slip.js +163 -0
  206. package/dist/meter/index.d.ts +5 -0
  207. package/dist/meter/index.js +6 -0
  208. package/dist/meter/meter.d.ts +38 -0
  209. package/dist/meter/meter.js +69 -0
  210. package/dist/monogram/monogram.js +33 -0
  211. package/dist/nav-strip/index.d.ts +5 -0
  212. package/dist/nav-strip/index.js +6 -0
  213. package/dist/nav-strip/nav-strip.d.ts +19 -0
  214. package/dist/nav-strip/nav-strip.js +21 -0
  215. package/dist/notice/index.d.ts +5 -0
  216. package/dist/notice/index.js +6 -0
  217. package/dist/notice/notice.d.ts +23 -0
  218. package/dist/notice/notice.js +35 -0
  219. package/dist/outcome/index.d.ts +5 -0
  220. package/dist/outcome/index.js +6 -0
  221. package/dist/outcome/outcome.d.ts +19 -0
  222. package/dist/outcome/outcome.js +14 -0
  223. package/dist/page-head/index.d.ts +5 -0
  224. package/dist/page-head/index.js +6 -0
  225. package/dist/page-head/page-head.d.ts +13 -0
  226. package/dist/page-head/page-head.js +10 -0
  227. package/dist/panel/index.d.ts +5 -0
  228. package/dist/panel/index.js +6 -0
  229. package/dist/panel/panel.d.ts +35 -0
  230. package/dist/panel/panel.js +25 -0
  231. package/dist/password-field/index.d.ts +5 -0
  232. package/dist/password-field/index.js +6 -0
  233. package/dist/password-field/password-field.d.ts +33 -0
  234. package/dist/password-field/password-field.js +39 -0
  235. package/dist/places/index.d.ts +5 -0
  236. package/dist/places/index.js +6 -0
  237. package/dist/places/places.d.ts +32 -0
  238. package/dist/places/places.js +22 -0
  239. package/dist/props-list/index.d.ts +5 -0
  240. package/dist/props-list/index.js +6 -0
  241. package/dist/props-list/props-list.d.ts +18 -0
  242. package/dist/props-list/props-list.js +12 -0
  243. package/dist/prose/index.d.ts +5 -0
  244. package/dist/prose/index.js +6 -0
  245. package/dist/prose/prose.d.ts +14 -0
  246. package/dist/prose/prose.js +6 -0
  247. package/dist/query-chip/index.d.ts +5 -0
  248. package/dist/query-chip/index.js +6 -0
  249. package/dist/query-chip/query-chip.d.ts +18 -0
  250. package/dist/query-chip/query-chip.js +17 -0
  251. package/dist/radio-choices/index.d.ts +5 -0
  252. package/dist/radio-choices/index.js +12 -0
  253. package/dist/radio-choices/radio-choices.d.ts +105 -0
  254. package/dist/radio-choices/radio-choices.js +56 -0
  255. package/dist/rail/index.d.ts +5 -0
  256. package/dist/rail/index.js +22 -0
  257. package/dist/rail/rail.d.ts +403 -0
  258. package/dist/rail/rail.js +355 -0
  259. package/dist/reel/index.d.ts +6 -0
  260. package/dist/reel/index.js +26 -0
  261. package/dist/reel/layout.d.ts +58 -0
  262. package/dist/reel/layout.js +378 -0
  263. package/dist/reel/reel.d.ts +1070 -0
  264. package/dist/reel/reel.js +1019 -0
  265. package/dist/remote/index.d.ts +5 -0
  266. package/dist/remote/index.js +6 -0
  267. package/dist/remote/remote.d.ts +28 -0
  268. package/dist/remote/remote.js +41 -0
  269. package/dist/rows/index.d.ts +5 -0
  270. package/dist/rows/index.js +12 -0
  271. package/dist/rows/rows.d.ts +116 -0
  272. package/dist/rows/rows.js +67 -0
  273. package/dist/scheme/index.d.ts +6 -0
  274. package/dist/scheme/index.js +10 -0
  275. package/dist/scheme/scheme-switch.d.ts +98 -0
  276. package/dist/scheme/scheme-switch.js +118 -0
  277. package/dist/scheme/scheme.d.ts +5 -0
  278. package/dist/scheme/scheme.js +16 -0
  279. package/dist/scheme/script.d.ts +8 -0
  280. package/dist/scheme/script.js +10 -0
  281. package/dist/secret/index.d.ts +5 -0
  282. package/dist/secret/index.js +6 -0
  283. package/dist/secret/secret.d.ts +13 -0
  284. package/dist/secret/secret.js +9 -0
  285. package/dist/segmented/index.d.ts +5 -0
  286. package/dist/segmented/index.js +6 -0
  287. package/dist/segmented/segmented.d.ts +17 -0
  288. package/dist/segmented/segmented.js +17 -0
  289. package/dist/select-field/index.d.ts +5 -0
  290. package/dist/select-field/index.js +6 -0
  291. package/dist/select-field/select-field.d.ts +38 -0
  292. package/dist/select-field/select-field.js +29 -0
  293. package/dist/sheet/index.d.ts +5 -0
  294. package/dist/sheet/index.js +6 -0
  295. package/dist/sheet/sheet.d.ts +16 -0
  296. package/dist/sheet/sheet.js +15 -0
  297. package/dist/skip-link/index.d.ts +5 -0
  298. package/dist/skip-link/index.js +9 -0
  299. package/dist/skip-link/skip-link.d.ts +23 -0
  300. package/dist/skip-link/skip-link.js +36 -0
  301. package/dist/slot/slot.js +8 -0
  302. package/dist/sortable/index.d.ts +5 -0
  303. package/dist/sortable/index.js +16 -0
  304. package/dist/sortable/sortable.d.ts +1125 -0
  305. package/dist/sortable/sortable.js +431 -0
  306. package/dist/stack/index.d.ts +5 -0
  307. package/dist/stack/index.js +6 -0
  308. package/dist/stack/stack.d.ts +15 -0
  309. package/dist/stack/stack.js +12 -0
  310. package/dist/stage/index.d.ts +5 -0
  311. package/dist/stage/index.js +6 -0
  312. package/dist/stage/stage.d.ts +14 -0
  313. package/dist/stage/stage.js +11 -0
  314. package/dist/stat/index.d.ts +5 -0
  315. package/dist/stat/index.js +6 -0
  316. package/dist/stat/stat.d.ts +18 -0
  317. package/dist/stat/stat.js +13 -0
  318. package/dist/status-bar/index.d.ts +6 -0
  319. package/dist/status-bar/index.js +11 -0
  320. package/dist/status-bar/status-bar.d.ts +28 -0
  321. package/dist/status-bar/status-bar.js +19 -0
  322. package/dist/subscription/prefix-keys.js +12 -0
  323. package/dist/table/index.d.ts +5 -0
  324. package/dist/table/index.js +6 -0
  325. package/dist/table/table.d.ts +26 -0
  326. package/dist/table/table.js +18 -0
  327. package/dist/tabs/index.d.ts +5 -0
  328. package/dist/tabs/index.js +14 -0
  329. package/dist/tabs/tabs.d.ts +125 -0
  330. package/dist/tabs/tabs.js +57 -0
  331. package/dist/tag/index.d.ts +5 -0
  332. package/dist/tag/index.js +6 -0
  333. package/dist/tag/tag.d.ts +16 -0
  334. package/dist/tag/tag.js +25 -0
  335. package/dist/text-button/index.d.ts +5 -0
  336. package/dist/text-button/index.js +6 -0
  337. package/dist/text-button/text-button.d.ts +8 -0
  338. package/dist/text-button/text-button.js +12 -0
  339. package/dist/textarea-field/index.d.ts +5 -0
  340. package/dist/textarea-field/index.js +6 -0
  341. package/dist/textarea-field/textarea-field.d.ts +28 -0
  342. package/dist/textarea-field/textarea-field.js +30 -0
  343. package/dist/time/index.d.ts +5 -0
  344. package/dist/time/index.js +9 -0
  345. package/dist/time/time.d.ts +38 -0
  346. package/dist/time/time.js +63 -0
  347. package/dist/tips/index.d.ts +5 -0
  348. package/dist/tips/index.js +14 -0
  349. package/dist/tips/tips.d.ts +339 -0
  350. package/dist/tips/tips.js +308 -0
  351. package/dist/toast/index.d.ts +5 -0
  352. package/dist/toast/index.js +17 -0
  353. package/dist/toast/stack.d.ts +7 -0
  354. package/dist/toast/stack.js +23 -0
  355. package/dist/toast/toast.d.ts +559 -0
  356. package/dist/toast/toast.js +269 -0
  357. package/dist/toc/index.d.ts +5 -0
  358. package/dist/toc/index.js +9 -0
  359. package/dist/toc/toc.d.ts +42 -0
  360. package/dist/toc/toc.js +35 -0
  361. package/dist/top-bar/bar-height.d.ts +26 -0
  362. package/dist/top-bar/bar-height.js +43 -0
  363. package/dist/top-bar/index.d.ts +6 -0
  364. package/dist/top-bar/index.js +12 -0
  365. package/dist/top-bar/top-bar.d.ts +19 -0
  366. package/dist/top-bar/top-bar.js +18 -0
  367. package/dist/wall/index.d.ts +5 -0
  368. package/dist/wall/index.js +9 -0
  369. package/dist/wall/wall.d.ts +16 -0
  370. package/dist/wall/wall.js +15 -0
  371. package/dist/window/index.d.ts +5 -0
  372. package/dist/window/index.js +6 -0
  373. package/dist/window/window.d.ts +28 -0
  374. package/dist/window/window.js +29 -0
  375. package/dist/wordmark/index.d.ts +5 -0
  376. package/dist/wordmark/index.js +6 -0
  377. package/dist/wordmark/wordmark.d.ts +10 -0
  378. package/dist/wordmark/wordmark.js +10 -0
  379. package/dist/wrap/index.d.ts +5 -0
  380. package/dist/wrap/index.js +6 -0
  381. package/dist/wrap/wrap.d.ts +12 -0
  382. package/dist/wrap/wrap.js +9 -0
  383. package/fonts/DepartureMono-Regular.woff2 +0 -0
  384. package/fonts/LICENSE.txt +2 -0
  385. package/package.json +57 -3
  386. package/src/pixel-paper.css +4611 -0
  387. package/src/tokens.css +151 -0
@@ -0,0 +1,115 @@
1
+ import { brandViewResult as __foldkitBrandViewResult } from 'foldkit/brand'
2
+ import { view as view$1 } from "../button/button.js";
3
+ import { view as view$2 } from "../card/card.js";
4
+ import { foldDialog } from "../dialog/fold.js";
5
+ import { FREE, Message as Message$1, Model as Model$1, OutMessage as OutMessage$1, dialog_exports, id as id$1, init as init$1, isOpen as isOpen$1, view as view$3 } from "../dialog/dialog.js";
6
+ import { view as view$4 } from "../outcome/outcome.js";
7
+ import { Schema, pipe } from "effect";
8
+ import { defineMessageUnion } from "foldkit/message";
9
+ import { modifyFields } from "foldkit/struct";
10
+ import { defineView } from "foldkit/submodel";
11
+ import * as Update from "foldkit/update";
12
+ // src/confirm-dialog/confirm-dialog.ts
13
+ /** Schema for a confirm dialog: the pixel-paper Dialog it opens in. */
14
+ const Model = Schema.Struct({ dialog: Model$1 });
15
+ /** Union of all Messages a confirm dialog can produce. */
16
+ const Message = defineMessageUnion({
17
+ GotDialogMessage: { message: Message$1 },
18
+ ClickedConfirm: {},
19
+ ClickedCancel: {}
20
+ });
21
+ /** Union of OutMessages a confirm dialog reports. `Confirmed`: the reader pressed the action;
22
+ * the dialog stays open until the parent calls `close`. `Cancelled`: cancel, Escape or a click
23
+ * on the veil; the dialog has closed, and whether that also stops work already running is
24
+ * the parent's to decide. Never reported while its ways out are held (`Dialog.UpdateContext`). */
25
+ const OutMessage = defineMessageUnion({
26
+ Confirmed: {},
27
+ Cancelled: {}
28
+ });
29
+ /** Creates a closed confirm dialog. */
30
+ const init = (config) => (__foldkitBrandViewResult(({ dialog: init$1({ id: config.id }) }), "@gjermundgaraba/pixel-paper/confirm-dialog/confirm-dialog.js#init"));
31
+ const toCancelled = OutMessage$1.match({ Closed: () => __foldkitBrandViewResult((OutMessage.Cancelled()), "@gjermundgaraba/pixel-paper/confirm-dialog/confirm-dialog.js#Closed") });
32
+ const dialogFold = foldDialog(dialog_exports, {
33
+ read: (model) => __foldkitBrandViewResult((model.dialog), "@gjermundgaraba/pixel-paper/confirm-dialog/confirm-dialog.js#read"),
34
+ write: (model, nextDialog) => __foldkitBrandViewResult((modifyFields(model, { dialog: () => __foldkitBrandViewResult((nextDialog), "@gjermundgaraba/pixel-paper/confirm-dialog/confirm-dialog.js#dialog") })), "@gjermundgaraba/pixel-paper/confirm-dialog/confirm-dialog.js#write"),
35
+ toParentMessage: (message) => __foldkitBrandViewResult((Message.GotDialogMessage({ message })), "@gjermundgaraba/pixel-paper/confirm-dialog/confirm-dialog.js#toParentMessage"),
36
+ toParentOutMessage: toCancelled
37
+ });
38
+ /** Processes a confirm dialog Message and returns the next Model, Commands and OutMessage.
39
+ * While `context.isCloseHeld`, cancel, Escape and the veil change nothing. */
40
+ const update = (model, message, context = FREE) => __foldkitBrandViewResult((Message.match(message, {
41
+ GotDialogMessage: ({ message: dialogMessage }) => __foldkitBrandViewResult((dialogFold.updateWith(context)(model, dialogMessage)), "@gjermundgaraba/pixel-paper/confirm-dialog/confirm-dialog.js#GotDialogMessage"),
42
+ ClickedConfirm: () => (__foldkitBrandViewResult(({
43
+ model,
44
+ outMessage: OutMessage.Confirmed()
45
+ }), "@gjermundgaraba/pixel-paper/confirm-dialog/confirm-dialog.js#ClickedConfirm")),
46
+ ClickedCancel: () => __foldkitBrandViewResult((context.isCloseHeld ? { model } : pipe(dialogFold.close(model), Update.withOutMessage(OutMessage.Cancelled()))), "@gjermundgaraba/pixel-paper/confirm-dialog/confirm-dialog.js#ClickedCancel")
47
+ })), "@gjermundgaraba/pixel-paper/confirm-dialog/confirm-dialog.js#update");
48
+ /** Opens the confirm dialog: focus starts on the action, or on cancel when it is `isDanger`. */
49
+ const open = (model) => __foldkitBrandViewResult((dialogFold.open(model)), "@gjermundgaraba/pixel-paper/confirm-dialog/confirm-dialog.js#open");
50
+ /** Closes the confirm dialog without reporting `Cancelled`: call it once confirmed work has
51
+ * landed. */
52
+ const close = (model) => __foldkitBrandViewResult((dialogFold.close(model)), "@gjermundgaraba/pixel-paper/confirm-dialog/confirm-dialog.js#close");
53
+ /** The confirm dialog's id, unique in the document. */
54
+ const id = (model) => __foldkitBrandViewResult((id$1(model.dialog)), "@gjermundgaraba/pixel-paper/confirm-dialog/confirm-dialog.js#id");
55
+ /** Whether the confirm dialog is open. */
56
+ const isOpen = (model) => __foldkitBrandViewResult((isOpen$1(model.dialog)), "@gjermundgaraba/pixel-paper/confirm-dialog/confirm-dialog.js#isOpen");
57
+ const cardView = (viewInputs, render, h) => {
58
+ const { isDanger = false, isBusy = false, isDisabled = false, toDetailView } = viewInputs;
59
+ const commit = view$1({
60
+ label: viewInputs.label,
61
+ variant: isDanger ? "Danger" : "Primary",
62
+ isDefault: !isDanger,
63
+ isBusy,
64
+ isDisabled,
65
+ onClick: Message.ClickedConfirm(),
66
+ attributes: isDanger ? [] : render.initialFocus
67
+ }, h);
68
+ const cancel = view$1({
69
+ label: "cancel",
70
+ isDefault: isDanger,
71
+ isDisabled: isBusy,
72
+ onClick: Message.ClickedCancel(),
73
+ attributes: isDanger ? render.initialFocus : []
74
+ }, h);
75
+ return __foldkitBrandViewResult((view$2({
76
+ title: viewInputs.title,
77
+ titleAttributes: render.title,
78
+ isNarrow: true,
79
+ actionBarAttributes: render.actionBar,
80
+ actions: isDanger ? [commit, cancel] : [cancel, commit],
81
+ body: [view$4({
82
+ title: viewInputs.question,
83
+ body: viewInputs.body,
84
+ tone: isDanger ? "Error" : "Warn",
85
+ ...toDetailView !== void 0 && { detail: toDetailView() },
86
+ bodyAttributes: render.description
87
+ }, h)]
88
+ }, h)), "@gjermundgaraba/pixel-paper/confirm-dialog/confirm-dialog.js#cardView");
89
+ };
90
+ /**
91
+ * The one question before an irreversible step: a glyph in a box, a headline, a sentence. With
92
+ * `isDanger` it is the system's only destructive confirm. The thing that destroys (delete,
93
+ * disable, reset) is a neutral Button at rest that opens this dialog; the red button is the
94
+ * commit inside it, focus starts on cancel, and the dialog is an alert (`alertdialog`); without
95
+ * it the dialog is a plain one with focus on the action. There is no inline
96
+ * arm-then-confirm button: red never rests on a button, and an armed button is easy to
97
+ * double-click through.
98
+ *
99
+ * Work that takes a while stays in the dialog: set `isBusy` while it runs (and `isCloseHeld`
100
+ * in `update`'s context), `close` once it has landed, and on failure keep it open with the
101
+ * error in `toDetailView`.
102
+ */
103
+ const view = defineView((model, viewInputs, h) => __foldkitBrandViewResult((h.submodel({
104
+ slotId: id(model),
105
+ model: model.dialog,
106
+ view: view$3,
107
+ viewInputs: {
108
+ isAlert: viewInputs.isDanger ?? false,
109
+ hasDescription: true,
110
+ toLiveRegionView: viewInputs.toLiveRegionView,
111
+ toView: (render) => __foldkitBrandViewResult((cardView(viewInputs, render, h)), "@gjermundgaraba/pixel-paper/confirm-dialog/confirm-dialog.js#toView")
112
+ },
113
+ toParentMessage: (message) => __foldkitBrandViewResult((Message.GotDialogMessage({ message })), "@gjermundgaraba/pixel-paper/confirm-dialog/confirm-dialog.js#toParentMessage~2")
114
+ })), "@gjermundgaraba/pixel-paper/confirm-dialog/confirm-dialog.js#anonymous"));
115
+ export { Message, Model, OutMessage, close, id, init, isOpen, open, update, view };
@@ -0,0 +1,5 @@
1
+ import { InitConfig, Message, Model, OutMessage, ViewInputs, close, id, init, isOpen, open, update, view } from "./confirm-dialog.js";
2
+ declare namespace index_d_exports {
3
+ export { InitConfig, Message, Model, OutMessage, ViewInputs, close, id, init, isOpen, open, update, view };
4
+ }
5
+ export { type InitConfig, Message, Model, OutMessage, type ViewInputs, close, id, index_d_exports, init, isOpen, open, update, view };
@@ -0,0 +1,17 @@
1
+ import { brandViewResult as __foldkitBrandViewResult } from 'foldkit/brand'
2
+ import { __exportAll } from "../_virtual/_rolldown/runtime.js";
3
+ import { Message, Model, OutMessage, close, id, init, isOpen, open, update, view } from "./confirm-dialog.js";
4
+ // src/confirm-dialog/index.ts
5
+ var confirm_dialog_exports = /* @__PURE__ */ __exportAll({
6
+ Message: () => __foldkitBrandViewResult((Message), "@gjermundgaraba/pixel-paper/confirm-dialog/index.js#Message"),
7
+ Model: () => __foldkitBrandViewResult((Model), "@gjermundgaraba/pixel-paper/confirm-dialog/index.js#Model"),
8
+ OutMessage: () => __foldkitBrandViewResult((OutMessage), "@gjermundgaraba/pixel-paper/confirm-dialog/index.js#OutMessage"),
9
+ close: () => __foldkitBrandViewResult((close), "@gjermundgaraba/pixel-paper/confirm-dialog/index.js#close"),
10
+ id: () => __foldkitBrandViewResult((id), "@gjermundgaraba/pixel-paper/confirm-dialog/index.js#id"),
11
+ init: () => __foldkitBrandViewResult((init), "@gjermundgaraba/pixel-paper/confirm-dialog/index.js#init"),
12
+ isOpen: () => __foldkitBrandViewResult((isOpen), "@gjermundgaraba/pixel-paper/confirm-dialog/index.js#isOpen"),
13
+ open: () => __foldkitBrandViewResult((open), "@gjermundgaraba/pixel-paper/confirm-dialog/index.js#open"),
14
+ update: () => __foldkitBrandViewResult((update), "@gjermundgaraba/pixel-paper/confirm-dialog/index.js#update"),
15
+ view: () => __foldkitBrandViewResult((view), "@gjermundgaraba/pixel-paper/confirm-dialog/index.js#view")
16
+ });
17
+ export { Message, Model, OutMessage, close, confirm_dialog_exports, id, init, isOpen, open, update, view };
@@ -0,0 +1,99 @@
1
+ import { Effect, Schema } from "effect";
2
+ import "foldkit/command";
3
+ import * as Update from "foldkit/update";
4
+ import { Clipboard } from "@effect/platform-browser";
5
+ /** Schema for a copy button: whether it just copied. */
6
+ export declare const Model: Schema.Struct<{
7
+ readonly id: Schema.String;
8
+ readonly state: import("foldkit/schema").TaggedUnion<{
9
+ readonly Idle: {};
10
+ readonly Copying: {};
11
+ readonly Copied: {};
12
+ }>;
13
+ }>;
14
+ export type Model = typeof Model.Type;
15
+ /** Union of all Messages a copy button can produce. */
16
+ export declare const Message: import("foldkit/message").MessageUnion<{
17
+ readonly ClickedCopy: {
18
+ text: Schema.String;
19
+ };
20
+ readonly SucceededCopyText: {};
21
+ readonly FailedCopyText: {};
22
+ readonly CompletedWaitBeforeResettingWord: {};
23
+ readonly CompletedAnnounceCopy: {};
24
+ }>;
25
+ export type Message = typeof Message.Type;
26
+ /** Configuration for creating a copy button with `init`. The `id` is the button's, unique in
27
+ * the document. */
28
+ export type InitConfig = Readonly<{
29
+ id: string;
30
+ }>;
31
+ /** Creates a copy button that has copied nothing. */
32
+ export declare const init: (config: InitConfig) => Model;
33
+ /** The button's id, unique in the document. */
34
+ export declare const id: (model: Model) => string;
35
+ /** Processes a copy button Message and returns the next Model and Commands. Its copy needs
36
+ * the `Clipboard` service. A parent that follows the copy reads `isCopied`. */
37
+ export declare const update: (model: Model, message: Message) => Readonly<{
38
+ model: {
39
+ readonly id: string;
40
+ readonly state: {
41
+ readonly _tag: "Copied";
42
+ } | {
43
+ readonly _tag: "Copying";
44
+ } | {
45
+ readonly _tag: "Idle";
46
+ };
47
+ };
48
+ commands?: Update.Commands<{
49
+ readonly _tag: "FailedCopyText";
50
+ } | {
51
+ readonly _tag: "SucceededCopyText";
52
+ } | {
53
+ readonly _tag: "CompletedWaitBeforeResettingWord";
54
+ } | {
55
+ readonly _tag: "CompletedAnnounceCopy";
56
+ } | {
57
+ readonly _tag: "ClickedCopy";
58
+ readonly text: string;
59
+ }, Clipboard.Clipboard>;
60
+ outMessage?: never;
61
+ }>;
62
+ /** Per-render inputs passed to `view` through `h.submodel`'s `viewInputs`. */
63
+ export type ViewInputs = Readonly<{
64
+ /** What goes on the clipboard. */
65
+ text: string;
66
+ /** The button's words: the glyph's name and tip (`"Copy link"`). */
67
+ label: string;
68
+ }>;
69
+ /**
70
+ * Copies text to the clipboard and says so, on the button and to screen readers: a quiet
71
+ * IconButton whose copy glyph turns to a check for a beat. A failed copy is said too. Its `CopyText` Command needs `Clipboard.layer` in the application's
72
+ * resources.
73
+ */
74
+ export declare const view: import("foldkit/submodel").View<{
75
+ readonly id: string;
76
+ readonly state: {
77
+ readonly _tag: "Copied";
78
+ } | {
79
+ readonly _tag: "Copying";
80
+ } | {
81
+ readonly _tag: "Idle";
82
+ };
83
+ }, {
84
+ readonly _tag: "FailedCopyText";
85
+ } | {
86
+ readonly _tag: "SucceededCopyText";
87
+ } | {
88
+ readonly _tag: "CompletedWaitBeforeResettingWord";
89
+ } | {
90
+ readonly _tag: "CompletedAnnounceCopy";
91
+ } | {
92
+ readonly _tag: "ClickedCopy";
93
+ readonly text: string;
94
+ }, Readonly<{
95
+ /** What goes on the clipboard. */
96
+ text: string;
97
+ /** The button's words: the glyph's name and tip (`"Copy link"`). */
98
+ label: string;
99
+ }>>;
@@ -0,0 +1,96 @@
1
+ import { brandViewResult as __foldkitBrandViewResult } from 'foldkit/brand'
2
+ import { announce } from "../announcer/announcer.js";
3
+ import { view as view$1 } from "../icon-button/icon-button.js";
4
+ import { Duration, Effect, Schema } from "effect";
5
+ import * as Command from "foldkit/command";
6
+ import { defineMessageUnion } from "foldkit/message";
7
+ import { modifyFields } from "foldkit/struct";
8
+ import { defineView } from "foldkit/submodel";
9
+ import { Clipboard } from "@effect/platform-browser";
10
+ import { defineTaggedUnion } from "foldkit/schema";
11
+ // src/copy-button/copy-button.ts
12
+ const CopyState = defineTaggedUnion({
13
+ Idle: {},
14
+ Copying: {},
15
+ Copied: {}
16
+ });
17
+ /** Schema for a copy button: whether it just copied. */
18
+ const Model = Schema.Struct({
19
+ id: Schema.String,
20
+ state: CopyState
21
+ });
22
+ /** Union of all Messages a copy button can produce. */
23
+ const Message = defineMessageUnion({
24
+ ClickedCopy: { text: Schema.String },
25
+ SucceededCopyText: {},
26
+ FailedCopyText: {},
27
+ CompletedWaitBeforeResettingWord: {},
28
+ CompletedAnnounceCopy: {}
29
+ });
30
+ /** Creates a copy button that has copied nothing. */
31
+ const init = (config) => (__foldkitBrandViewResult(({
32
+ id: config.id,
33
+ state: CopyState.Idle()
34
+ }), "@gjermundgaraba/pixel-paper/copy-button/copy-button.js#init"));
35
+ /** The button's id, unique in the document. */
36
+ const id = (model) => __foldkitBrandViewResult((model.id), "@gjermundgaraba/pixel-paper/copy-button/copy-button.js#id");
37
+ /** Whether the button shows that it just copied. */
38
+ const isCopied = (model) => __foldkitBrandViewResult((CopyState.guards.Copied(model.state)), "@gjermundgaraba/pixel-paper/copy-button/copy-button.js#isCopied");
39
+ const WORD_BEAT = Duration.millis(1800);
40
+ const FAILED = "Copy failed: the clipboard is not available here.";
41
+ /** Writes the text to the clipboard through Effect's `Clipboard` port. Provide
42
+ * `Clipboard.layer` from `@effect/platform-browser` in the application's `resources` (or a
43
+ * desktop shell's own clipboard). */
44
+ const CopyText = Command.define("CopyText", {
45
+ args: { text: Schema.String },
46
+ messages: [Message.SucceededCopyText, Message.FailedCopyText],
47
+ execute: ({ text }) => __foldkitBrandViewResult((Effect.gen(function* () {
48
+ yield* (yield* Clipboard.Clipboard).writeString(text);
49
+ return __foldkitBrandViewResult((Message.SucceededCopyText()), "@gjermundgaraba/pixel-paper/copy-button/copy-button.js#anonymous");
50
+ }).pipe(Effect.orElseSucceed(() => __foldkitBrandViewResult((Message.FailedCopyText()), "@gjermundgaraba/pixel-paper/copy-button/copy-button.js#anonymous~2")))), "@gjermundgaraba/pixel-paper/copy-button/copy-button.js#execute")
51
+ });
52
+ /** Waits out the beat the word or the check shows for. */
53
+ const WaitBeforeResettingWord = Command.define("WaitBeforeResettingWord", {
54
+ messages: [Message.CompletedWaitBeforeResettingWord],
55
+ execute: Effect.sleep(WORD_BEAT).pipe(Effect.as(Message.CompletedWaitBeforeResettingWord()))
56
+ });
57
+ /** Says how the copy went through the page's live region. */
58
+ const AnnounceCopy = Command.define("AnnounceCopy", {
59
+ args: { text: Schema.String },
60
+ messages: [Message.CompletedAnnounceCopy],
61
+ execute: ({ text }) => __foldkitBrandViewResult((announce(text).pipe(Effect.as(Message.CompletedAnnounceCopy()))), "@gjermundgaraba/pixel-paper/copy-button/copy-button.js#execute~2")
62
+ });
63
+ /** Processes a copy button Message and returns the next Model and Commands. Its copy needs
64
+ * the `Clipboard` service. A parent that follows the copy reads `isCopied`. */
65
+ const update = (model, message) => __foldkitBrandViewResult((Message.match(message, {
66
+ ClickedCopy: ({ text }) => __foldkitBrandViewResult((CopyState.guards.Idle(model.state) ? {
67
+ model: modifyFields(model, { state: () => __foldkitBrandViewResult((CopyState.Copying()), "@gjermundgaraba/pixel-paper/copy-button/copy-button.js#state") }),
68
+ commands: [CopyText({ text })]
69
+ } : { model }), "@gjermundgaraba/pixel-paper/copy-button/copy-button.js#ClickedCopy"),
70
+ SucceededCopyText: () => (__foldkitBrandViewResult(({
71
+ model: modifyFields(model, { state: () => __foldkitBrandViewResult((CopyState.Copied()), "@gjermundgaraba/pixel-paper/copy-button/copy-button.js#state~2") }),
72
+ commands: [WaitBeforeResettingWord(), AnnounceCopy({ text: "Copied." })]
73
+ }), "@gjermundgaraba/pixel-paper/copy-button/copy-button.js#SucceededCopyText")),
74
+ FailedCopyText: () => (__foldkitBrandViewResult(({
75
+ model: modifyFields(model, { state: () => __foldkitBrandViewResult((CopyState.Idle()), "@gjermundgaraba/pixel-paper/copy-button/copy-button.js#state~3") }),
76
+ commands: [AnnounceCopy({ text: FAILED })]
77
+ }), "@gjermundgaraba/pixel-paper/copy-button/copy-button.js#FailedCopyText")),
78
+ CompletedWaitBeforeResettingWord: () => (__foldkitBrandViewResult(({ model: modifyFields(model, { state: () => __foldkitBrandViewResult((CopyState.Idle()), "@gjermundgaraba/pixel-paper/copy-button/copy-button.js#state~4") }) }), "@gjermundgaraba/pixel-paper/copy-button/copy-button.js#CompletedWaitBeforeResettingWord")),
79
+ CompletedAnnounceCopy: () => (__foldkitBrandViewResult(({ model }), "@gjermundgaraba/pixel-paper/copy-button/copy-button.js#CompletedAnnounceCopy"))
80
+ })), "@gjermundgaraba/pixel-paper/copy-button/copy-button.js#update");
81
+ /**
82
+ * Copies text to the clipboard and says so, on the button and to screen readers: a quiet
83
+ * IconButton whose copy glyph turns to a check for a beat. A failed copy is said too. Its `CopyText` Command needs `Clipboard.layer` in the application's
84
+ * resources.
85
+ */
86
+ const view = defineView((model, viewInputs, h) => {
87
+ const { text, label } = viewInputs;
88
+ return __foldkitBrandViewResult((view$1({
89
+ glyph: isCopied(model) ? "check" : "copy",
90
+ label,
91
+ onClick: Message.ClickedCopy({ text }),
92
+ isQuiet: true,
93
+ attributes: [h.Id(id(model))]
94
+ }, h)), "@gjermundgaraba/pixel-paper/copy-button/copy-button.js#anonymous~3");
95
+ });
96
+ export { AnnounceCopy, CopyState, CopyText, Message, Model, WaitBeforeResettingWord, id, init, isCopied, update, view };
@@ -0,0 +1,5 @@
1
+ import { InitConfig, Message, Model, ViewInputs, id, init, update, view } from "./copy-button.js";
2
+ declare namespace index_d_exports {
3
+ export { InitConfig, Message, Model, ViewInputs, id, init, update, view };
4
+ }
5
+ export { type InitConfig, Message, Model, type ViewInputs, id, index_d_exports, init, update, view };
@@ -0,0 +1,13 @@
1
+ import { brandViewResult as __foldkitBrandViewResult } from 'foldkit/brand'
2
+ import { __exportAll } from "../_virtual/_rolldown/runtime.js";
3
+ import { Message, Model, id, init, update, view } from "./copy-button.js";
4
+ // src/copy-button/index.ts
5
+ var copy_button_exports = /* @__PURE__ */ __exportAll({
6
+ Message: () => __foldkitBrandViewResult((Message), "@gjermundgaraba/pixel-paper/copy-button/index.js#Message"),
7
+ Model: () => __foldkitBrandViewResult((Model), "@gjermundgaraba/pixel-paper/copy-button/index.js#Model"),
8
+ id: () => __foldkitBrandViewResult((id), "@gjermundgaraba/pixel-paper/copy-button/index.js#id"),
9
+ init: () => __foldkitBrandViewResult((init), "@gjermundgaraba/pixel-paper/copy-button/index.js#init"),
10
+ update: () => __foldkitBrandViewResult((update), "@gjermundgaraba/pixel-paper/copy-button/index.js#update"),
11
+ view: () => __foldkitBrandViewResult((view), "@gjermundgaraba/pixel-paper/copy-button/index.js#view")
12
+ });
13
+ export { Message, Model, copy_button_exports, id, init, update, view };
@@ -0,0 +1,15 @@
1
+ import { Html, HtmlBuilder } from "foldkit/html";
2
+ /** One step of the path: its words, and where it links. */
3
+ export type Crumb = Readonly<{
4
+ label: string;
5
+ /** Every crumb but the last links up the path; the last is here. A crumb's link, else its
6
+ * words, is unique in the path. */
7
+ href?: string;
8
+ }>;
9
+ /** Configuration for rendering crumbs with `view`. */
10
+ export type ViewConfig = Readonly<{
11
+ crumbs: readonly Crumb[];
12
+ }>;
13
+ /** The path to where you are, in the pixel face, split by muted slashes: a navigation
14
+ * landmark named "Breadcrumb", its steps an ordered list, the last `aria-current="page"`. */
15
+ export declare const view: <Message>(config: ViewConfig, h: HtmlBuilder<Message>) => Html;
@@ -0,0 +1,11 @@
1
+ import { brandViewResult as __foldkitBrandViewResult } from 'foldkit/brand'
2
+ import { Array } from "effect";
3
+ // src/crumbs/crumbs.ts
4
+ const crumbView = (lastIndex, h) => __foldkitBrandViewResult((({ label, href }, index) => __foldkitBrandViewResult((h.keyed("li")(href ?? label, [], [href === void 0 || index === lastIndex ? h.span(index === lastIndex ? [h.AriaCurrent("page")] : [], [label]) : h.a([h.Href(href)], [label])])), "@gjermundgaraba/pixel-paper/crumbs/crumbs.js#anonymous")), "@gjermundgaraba/pixel-paper/crumbs/crumbs.js#crumbView");
5
+ /** The path to where you are, in the pixel face, split by muted slashes: a navigation
6
+ * landmark named "Breadcrumb", its steps an ordered list, the last `aria-current="page"`. */
7
+ const view = (config, h) => {
8
+ const { crumbs } = config;
9
+ return __foldkitBrandViewResult((h.nav([h.AriaLabel("Breadcrumb"), h.Class("crumbs")], [h.ol([], Array.map(crumbs, crumbView(crumbs.length - 1, h)))])), "@gjermundgaraba/pixel-paper/crumbs/crumbs.js#view");
10
+ };
11
+ export { view };
@@ -0,0 +1,5 @@
1
+ import { ViewConfig, view } from "./crumbs.js";
2
+ declare namespace index_d_exports {
3
+ export { ViewConfig, view };
4
+ }
5
+ export { type ViewConfig, index_d_exports, view };
@@ -0,0 +1,6 @@
1
+ import { brandViewResult as __foldkitBrandViewResult } from 'foldkit/brand'
2
+ import { __exportAll } from "../_virtual/_rolldown/runtime.js";
3
+ import { view } from "./crumbs.js";
4
+ // src/crumbs/index.ts
5
+ var crumbs_exports = /* @__PURE__ */ __exportAll({ view: () => __foldkitBrandViewResult((view), "@gjermundgaraba/pixel-paper/crumbs/index.js#view") });
6
+ export { crumbs_exports, view };
@@ -0,0 +1,9 @@
1
+ import { Html, HtmlBuilder } from "foldkit/html";
2
+ /** Configuration for rendering a deck with `view`. */
3
+ export type ViewConfig = Readonly<{
4
+ /** The panels, a PageHead first. */
5
+ body: ReadonlyArray<Html | string>;
6
+ }>;
7
+ /** The page body: a centred column of panels, 24px apart. It is the main landmark
8
+ * (`<main id="main">`), the skip link's target. */
9
+ export declare const view: <Message>(config: ViewConfig, h: HtmlBuilder<Message>) => Html;
@@ -0,0 +1,9 @@
1
+ import { brandViewResult as __foldkitBrandViewResult } from 'foldkit/brand'
2
+ // src/deck/deck.ts
3
+ /** The page body: a centred column of panels, 24px apart. It is the main landmark
4
+ * (`<main id="main">`), the skip link's target. */
5
+ const view = (config, h) => {
6
+ const { body } = config;
7
+ return __foldkitBrandViewResult((h.main([h.Id("main"), h.Class("deck")], body)), "@gjermundgaraba/pixel-paper/deck/deck.js#view");
8
+ };
9
+ export { view };
@@ -0,0 +1,5 @@
1
+ import { ViewConfig, view } from "./deck.js";
2
+ declare namespace index_d_exports {
3
+ export { ViewConfig, view };
4
+ }
5
+ export { type ViewConfig, index_d_exports, view };
@@ -0,0 +1,6 @@
1
+ import { brandViewResult as __foldkitBrandViewResult } from 'foldkit/brand'
2
+ import { __exportAll } from "../_virtual/_rolldown/runtime.js";
3
+ import { view } from "./deck.js";
4
+ // src/deck/index.ts
5
+ var deck_exports = /* @__PURE__ */ __exportAll({ view: () => __foldkitBrandViewResult((view), "@gjermundgaraba/pixel-paper/deck/index.js#view") });
6
+ export { deck_exports, view };