@prestack/thread-ui 0.1.1 → 0.1.2

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 (343) hide show
  1. package/CHANGELOG.md +174 -0
  2. package/dist/ui/animations/anm_appear.d.ts +8 -8
  3. package/dist/ui/animations/anm_blur_in.d.ts +12 -12
  4. package/dist/ui/animations/anm_blur_out.d.ts +12 -12
  5. package/dist/ui/animations/anm_dismiss.d.ts +12 -12
  6. package/dist/ui/animations/anm_drop.d.ts +12 -12
  7. package/dist/ui/animations/anm_fall.d.ts +12 -12
  8. package/dist/ui/animations/anm_flash.d.ts +9 -9
  9. package/dist/ui/animations/anm_glow.d.ts +8 -8
  10. package/dist/ui/animations/anm_lift.d.ts +8 -8
  11. package/dist/ui/animations/anm_nudge.d.ts +8 -8
  12. package/dist/ui/animations/anm_pop_in.d.ts +16 -16
  13. package/dist/ui/animations/anm_pop_out.d.ts +16 -16
  14. package/dist/ui/animations/anm_press.d.ts +9 -9
  15. package/dist/ui/animations/anm_pulse.d.ts +10 -10
  16. package/dist/ui/animations/anm_rise.d.ts +12 -12
  17. package/dist/ui/animations/anm_shake.d.ts +11 -11
  18. package/dist/ui/animations/anm_slide_in_left.d.ts +12 -12
  19. package/dist/ui/animations/anm_slide_in_right.d.ts +12 -12
  20. package/dist/ui/animations/anm_slide_out_left.d.ts +12 -12
  21. package/dist/ui/animations/anm_slide_out_right.d.ts +12 -12
  22. package/dist/ui/animations/anm_spin.d.ts +8 -8
  23. package/dist/ui/animations/anm_swell.d.ts +8 -8
  24. package/dist/ui/animations/anm_wobble.d.ts +13 -13
  25. package/dist/ui/animations/anm_zoom_in.d.ts +12 -12
  26. package/dist/ui/animations/anm_zoom_out.d.ts +12 -12
  27. package/dist/ui/animations.d.ts +8 -8
  28. package/dist/ui/animations.js +4 -4
  29. package/dist/ui/animations.ts +1 -1
  30. package/dist/ui/attach.js +22 -78
  31. package/dist/ui/attach.ts +8 -66
  32. package/dist/ui/charts.d.ts +0 -3
  33. package/dist/ui/charts.js +3 -7
  34. package/dist/ui/charts.tsx +0 -4
  35. package/dist/ui/checked.d.ts +1 -1
  36. package/dist/ui/checked.ts +1 -1
  37. package/dist/ui/collector.js +1 -1
  38. package/dist/ui/collector.ts +1 -1
  39. package/dist/ui/compositions.d.ts +9 -3
  40. package/dist/ui/compositions.js +9 -158
  41. package/dist/ui/compositions.ts +6 -170
  42. package/dist/ui/content.js +4 -7
  43. package/dist/ui/content.tsx +4 -15
  44. package/dist/ui/controls.js +1 -1
  45. package/dist/ui/door.d.ts +1 -1
  46. package/dist/ui/elements/accordion.d.ts +2 -1
  47. package/dist/ui/elements/accordion.js +4 -4
  48. package/dist/ui/elements/accordion.tsx +2 -1
  49. package/dist/ui/elements/aspect-ratio.d.ts +2 -1
  50. package/dist/ui/elements/aspect-ratio.js +1 -1
  51. package/dist/ui/elements/aspect-ratio.tsx +2 -1
  52. package/dist/ui/elements/avatar.d.ts +2 -1
  53. package/dist/ui/elements/avatar.js +3 -3
  54. package/dist/ui/elements/avatar.tsx +2 -1
  55. package/dist/ui/elements/badge.d.ts +2 -1
  56. package/dist/ui/elements/badge.js +3 -3
  57. package/dist/ui/elements/badge.tsx +2 -1
  58. package/dist/ui/elements/bars.d.ts +2 -1
  59. package/dist/ui/elements/bars.js +5 -5
  60. package/dist/ui/elements/bars.tsx +2 -1
  61. package/dist/ui/elements/bars.works.js +3 -3
  62. package/dist/ui/elements/box.d.ts +2 -1
  63. package/dist/ui/elements/box.js +1 -1
  64. package/dist/ui/elements/box.tsx +2 -1
  65. package/dist/ui/elements/breadcrumb.d.ts +2 -1
  66. package/dist/ui/elements/breadcrumb.js +5 -5
  67. package/dist/ui/elements/breadcrumb.tsx +2 -1
  68. package/dist/ui/elements/breadcrumb.works.js +1 -1
  69. package/dist/ui/elements/button.d.ts +2 -1
  70. package/dist/ui/elements/button.js +3 -3
  71. package/dist/ui/elements/button.tsx +2 -1
  72. package/dist/ui/elements/button.works.js +2 -2
  73. package/dist/ui/elements/column.d.ts +2 -1
  74. package/dist/ui/elements/column.js +1 -1
  75. package/dist/ui/elements/column.tsx +2 -1
  76. package/dist/ui/elements/consent.d.ts +2 -1
  77. package/dist/ui/elements/consent.js +10 -10
  78. package/dist/ui/elements/consent.tsx +2 -1
  79. package/dist/ui/elements/consent.works.js +1 -1
  80. package/dist/ui/elements/donut.d.ts +2 -1
  81. package/dist/ui/elements/donut.js +4 -4
  82. package/dist/ui/elements/donut.tsx +2 -1
  83. package/dist/ui/elements/donut.works.js +2 -2
  84. package/dist/ui/elements/each.d.ts +2 -1
  85. package/dist/ui/elements/each.js +3 -3
  86. package/dist/ui/elements/each.tsx +2 -1
  87. package/dist/ui/elements/each.works.js +2 -2
  88. package/dist/ui/elements/empty.d.ts +2 -1
  89. package/dist/ui/elements/empty.js +2 -2
  90. package/dist/ui/elements/empty.tsx +2 -1
  91. package/dist/ui/elements/field.d.ts +2 -1
  92. package/dist/ui/elements/field.js +3 -3
  93. package/dist/ui/elements/field.tsx +2 -1
  94. package/dist/ui/elements/field.works.js +1 -1
  95. package/dist/ui/elements/funnel.d.ts +2 -1
  96. package/dist/ui/elements/funnel.js +5 -5
  97. package/dist/ui/elements/funnel.tsx +2 -1
  98. package/dist/ui/elements/funnel.works.js +3 -3
  99. package/dist/ui/elements/gauge.d.ts +2 -1
  100. package/dist/ui/elements/gauge.js +3 -3
  101. package/dist/ui/elements/gauge.tsx +2 -1
  102. package/dist/ui/elements/gauge.works.js +1 -1
  103. package/dist/ui/elements/glyph.d.ts +2 -1
  104. package/dist/ui/elements/glyph.js +3 -3
  105. package/dist/ui/elements/glyph.tsx +2 -1
  106. package/dist/ui/elements/glyph.works.js +1 -1
  107. package/dist/ui/elements/grid.d.ts +2 -1
  108. package/dist/ui/elements/grid.js +1 -1
  109. package/dist/ui/elements/grid.tsx +2 -1
  110. package/dist/ui/elements/heatmap.d.ts +2 -1
  111. package/dist/ui/elements/heatmap.js +5 -5
  112. package/dist/ui/elements/heatmap.tsx +2 -1
  113. package/dist/ui/elements/heatmap.works.js +1 -1
  114. package/dist/ui/elements/hit-box.d.ts +2 -1
  115. package/dist/ui/elements/hit-box.js +2 -2
  116. package/dist/ui/elements/hit-box.tsx +2 -1
  117. package/dist/ui/elements/hit-box.works.d.ts +2 -2
  118. package/dist/ui/elements/hit-box.works.js +5 -5
  119. package/dist/ui/elements/hit-box.works.tsx +2 -1
  120. package/dist/ui/elements/image.d.ts +2 -1
  121. package/dist/ui/elements/image.js +2 -2
  122. package/dist/ui/elements/image.tsx +2 -1
  123. package/dist/ui/elements/line-chart.d.ts +2 -1
  124. package/dist/ui/elements/line-chart.js +4 -4
  125. package/dist/ui/elements/line-chart.tsx +2 -1
  126. package/dist/ui/elements/line-chart.works.js +2 -2
  127. package/dist/ui/elements/link.d.ts +2 -1
  128. package/dist/ui/elements/link.js +3 -3
  129. package/dist/ui/elements/link.tsx +2 -1
  130. package/dist/ui/elements/link.works.js +1 -1
  131. package/dist/ui/elements/media.d.ts +2 -1
  132. package/dist/ui/elements/media.js +2 -2
  133. package/dist/ui/elements/media.tsx +2 -1
  134. package/dist/ui/elements/menu.d.ts +2 -1
  135. package/dist/ui/elements/menu.js +5 -5
  136. package/dist/ui/elements/menu.tsx +2 -1
  137. package/dist/ui/elements/menu.works.d.ts +2 -1
  138. package/dist/ui/elements/menu.works.js +5 -5
  139. package/dist/ui/elements/menu.works.tsx +2 -1
  140. package/dist/ui/elements/money.d.ts +3 -1
  141. package/dist/ui/elements/money.js +10 -5
  142. package/dist/ui/elements/money.tsx +12 -3
  143. package/dist/ui/elements/money.works.js +1 -1
  144. package/dist/ui/elements/pagination.d.ts +2 -1
  145. package/dist/ui/elements/pagination.js +5 -5
  146. package/dist/ui/elements/pagination.tsx +2 -1
  147. package/dist/ui/elements/progress.d.ts +2 -1
  148. package/dist/ui/elements/progress.js +3 -3
  149. package/dist/ui/elements/progress.tsx +2 -1
  150. package/dist/ui/elements/radio-group.d.ts +2 -1
  151. package/dist/ui/elements/radio-group.js +4 -4
  152. package/dist/ui/elements/radio-group.tsx +2 -1
  153. package/dist/ui/elements/radio-group.works.js +1 -1
  154. package/dist/ui/elements/row.d.ts +2 -1
  155. package/dist/ui/elements/row.js +1 -1
  156. package/dist/ui/elements/row.tsx +2 -1
  157. package/dist/ui/elements/scatter.d.ts +2 -1
  158. package/dist/ui/elements/scatter.js +3 -3
  159. package/dist/ui/elements/scatter.tsx +2 -1
  160. package/dist/ui/elements/scatter.works.js +1 -1
  161. package/dist/ui/elements/select.d.ts +2 -1
  162. package/dist/ui/elements/select.js +4 -4
  163. package/dist/ui/elements/select.tsx +2 -1
  164. package/dist/ui/elements/separator.d.ts +2 -1
  165. package/dist/ui/elements/separator.js +2 -2
  166. package/dist/ui/elements/separator.tsx +2 -1
  167. package/dist/ui/elements/skeleton.d.ts +2 -1
  168. package/dist/ui/elements/skeleton.js +2 -2
  169. package/dist/ui/elements/skeleton.tsx +2 -1
  170. package/dist/ui/elements/slider.d.ts +2 -1
  171. package/dist/ui/elements/slider.js +3 -3
  172. package/dist/ui/elements/slider.tsx +2 -1
  173. package/dist/ui/elements/sparkline.d.ts +2 -1
  174. package/dist/ui/elements/sparkline.js +3 -3
  175. package/dist/ui/elements/sparkline.tsx +2 -1
  176. package/dist/ui/elements/sparkline.works.js +1 -1
  177. package/dist/ui/elements/spinner.d.ts +2 -1
  178. package/dist/ui/elements/spinner.js +2 -2
  179. package/dist/ui/elements/spinner.tsx +2 -1
  180. package/dist/ui/elements/stack.d.ts +2 -1
  181. package/dist/ui/elements/stack.js +1 -1
  182. package/dist/ui/elements/stack.tsx +2 -1
  183. package/dist/ui/elements/stat.d.ts +2 -1
  184. package/dist/ui/elements/stat.js +3 -3
  185. package/dist/ui/elements/stat.tsx +2 -1
  186. package/dist/ui/elements/stat.works.js +1 -1
  187. package/dist/ui/elements/surface.d.ts +2 -1
  188. package/dist/ui/elements/surface.js +2 -2
  189. package/dist/ui/elements/surface.tsx +2 -1
  190. package/dist/ui/elements/surface.works.js +1 -1
  191. package/dist/ui/elements/table.d.ts +2 -1
  192. package/dist/ui/elements/table.js +4 -4
  193. package/dist/ui/elements/table.tsx +2 -1
  194. package/dist/ui/elements/table.works.js +1 -1
  195. package/dist/ui/elements/tabs.d.ts +2 -1
  196. package/dist/ui/elements/tabs.js +4 -4
  197. package/dist/ui/elements/tabs.tsx +2 -1
  198. package/dist/ui/elements/tabs.works.js +1 -1
  199. package/dist/ui/elements/text.d.ts +2 -1
  200. package/dist/ui/elements/text.js +2 -2
  201. package/dist/ui/elements/text.tsx +2 -1
  202. package/dist/ui/elements/textarea.d.ts +2 -1
  203. package/dist/ui/elements/textarea.js +4 -4
  204. package/dist/ui/elements/textarea.tsx +2 -1
  205. package/dist/ui/elements/time.d.ts +3 -1
  206. package/dist/ui/elements/time.js +7 -4
  207. package/dist/ui/elements/time.tsx +9 -2
  208. package/dist/ui/elements/time.works.d.ts +1 -0
  209. package/dist/ui/elements/time.works.js +7 -3
  210. package/dist/ui/elements/time.works.ts +6 -2
  211. package/dist/ui/elements/toggle.d.ts +2 -1
  212. package/dist/ui/elements/toggle.js +3 -3
  213. package/dist/ui/elements/toggle.tsx +2 -1
  214. package/dist/ui/elements/tooltip.d.ts +2 -1
  215. package/dist/ui/elements/tooltip.js +2 -2
  216. package/dist/ui/elements/tooltip.tsx +2 -1
  217. package/dist/ui/elements/tooltip.works.js +2 -2
  218. package/dist/ui/elements/value.d.ts +3 -1
  219. package/dist/ui/elements/value.js +10 -5
  220. package/dist/ui/elements/value.tsx +12 -3
  221. package/dist/ui/elements/value.works.js +1 -1
  222. package/dist/ui/elements.d.ts +15 -11
  223. package/dist/ui/elements.js +6 -6
  224. package/dist/ui/elements.ts +7 -7
  225. package/dist/ui/fonts.d.ts +1 -1
  226. package/dist/ui/fonts.js +1 -1
  227. package/dist/ui/generators/dev.d.ts +1 -2
  228. package/dist/ui/generators/dev.js +33 -37
  229. package/dist/ui/generators/dev.ts +30 -37
  230. package/dist/ui/generators/elements.d.ts +1 -0
  231. package/dist/ui/generators/elements.js +11 -9
  232. package/dist/ui/generators/elements.ts +12 -9
  233. package/dist/ui/generators/i18n.js +6 -23
  234. package/dist/ui/generators/i18n.ts +1 -18
  235. package/dist/ui/generators/icons.js +5 -14
  236. package/dist/ui/generators/icons.ts +1 -10
  237. package/dist/ui/generators/react.js +4 -5
  238. package/dist/ui/generators/react.ts +2 -3
  239. package/dist/ui/generators/routes.js +66 -51
  240. package/dist/ui/generators/routes.ts +67 -46
  241. package/dist/ui/generators/show.js +9 -6
  242. package/dist/ui/generators/show.ts +4 -2
  243. package/dist/ui/generators/styles.js +12 -16
  244. package/dist/ui/generators/styles.ts +1 -5
  245. package/dist/ui/generators/variants.js +3 -3
  246. package/dist/ui/generators/variants.ts +1 -1
  247. package/dist/ui/i18n/catalogs/en.js +1 -1
  248. package/dist/ui/i18n/format.js +1 -1
  249. package/dist/ui/i18n/translator.js +2 -2
  250. package/dist/ui/material.d.ts +11 -11
  251. package/dist/ui/material.js +1 -1
  252. package/dist/ui/materials/mat_bordered.d.ts +13 -13
  253. package/dist/ui/materials/mat_bordered.js +1 -1
  254. package/dist/ui/materials/mat_ceramic.d.ts +13 -13
  255. package/dist/ui/materials/mat_ceramic.js +1 -1
  256. package/dist/ui/materials/mat_clay.d.ts +13 -13
  257. package/dist/ui/materials/mat_clay.js +1 -1
  258. package/dist/ui/materials/mat_elevated.d.ts +13 -13
  259. package/dist/ui/materials/mat_elevated.js +1 -1
  260. package/dist/ui/materials/mat_flat.d.ts +25 -25
  261. package/dist/ui/materials/mat_flat.js +1 -1
  262. package/dist/ui/materials/mat_glass.d.ts +17 -17
  263. package/dist/ui/materials/mat_glass.js +1 -1
  264. package/dist/ui/materials/mat_lit.d.ts +13 -13
  265. package/dist/ui/materials/mat_lit.js +1 -1
  266. package/dist/ui/materials/mat_moulded.d.ts +9 -9
  267. package/dist/ui/materials/mat_moulded.js +1 -1
  268. package/dist/ui/materials.d.ts +30 -30
  269. package/dist/ui/materials.js +3 -3
  270. package/dist/ui/materials.ts +1 -1
  271. package/dist/ui/modes.d.ts +2 -2
  272. package/dist/ui/presented.js +5 -5
  273. package/dist/ui/provider.d.ts +3 -0
  274. package/dist/ui/provider.js +9 -10
  275. package/dist/ui/provider.tsx +7 -5
  276. package/dist/ui/screens.js +6 -6
  277. package/dist/ui/screens.ts +1 -1
  278. package/dist/ui/scroll-lock.js +1 -1
  279. package/dist/ui/series.js +1 -1
  280. package/dist/ui/styleguide.js +1 -1
  281. package/dist/ui/tokens.d.ts +2 -2
  282. package/dist/ui/tokens.js +3 -3
  283. package/dist/ui/tokens.ts +1 -1
  284. package/dist/ui/validators.js +1 -1
  285. package/dist/ui/variant.d.ts +37 -37
  286. package/dist/ui/variant.js +2 -2
  287. package/dist/ui/variants/var_avatar-round.d.ts +13 -13
  288. package/dist/ui/variants/var_avatar-round.js +1 -1
  289. package/dist/ui/variants/var_bubble-me.d.ts +12 -12
  290. package/dist/ui/variants/var_bubble-me.js +1 -1
  291. package/dist/ui/variants/var_bubble-them.d.ts +10 -10
  292. package/dist/ui/variants/var_bubble-them.js +1 -1
  293. package/dist/ui/variants/var_button-border.d.ts +61 -61
  294. package/dist/ui/variants/var_button-border.js +1 -1
  295. package/dist/ui/variants/var_button-cta.d.ts +61 -61
  296. package/dist/ui/variants/var_button-cta.js +1 -1
  297. package/dist/ui/variants/var_button-destructive-ghost.d.ts +59 -59
  298. package/dist/ui/variants/var_button-destructive-ghost.js +1 -1
  299. package/dist/ui/variants/var_button-destructive.d.ts +61 -61
  300. package/dist/ui/variants/var_button-destructive.js +1 -1
  301. package/dist/ui/variants/var_button-fill.d.ts +61 -61
  302. package/dist/ui/variants/var_button-fill.js +1 -1
  303. package/dist/ui/variants/var_button-ghost.d.ts +59 -59
  304. package/dist/ui/variants/var_button-ghost.js +1 -1
  305. package/dist/ui/variants/var_button-glass.d.ts +40 -40
  306. package/dist/ui/variants/var_button-glass.js +1 -1
  307. package/dist/ui/variants/var_button-normal.d.ts +61 -61
  308. package/dist/ui/variants/var_button-normal.js +1 -1
  309. package/dist/ui/variants/var_button-quiet.d.ts +63 -63
  310. package/dist/ui/variants/var_button-quiet.js +1 -1
  311. package/dist/ui/variants/var_card.d.ts +17 -17
  312. package/dist/ui/variants/var_card.js +1 -1
  313. package/dist/ui/variants/var_chip.d.ts +10 -10
  314. package/dist/ui/variants/var_chip.js +1 -1
  315. package/dist/ui/variants/var_choice.d.ts +15 -15
  316. package/dist/ui/variants/var_choice.js +1 -1
  317. package/dist/ui/variants/var_framed.d.ts +5 -5
  318. package/dist/ui/variants/var_framed.js +1 -1
  319. package/dist/ui/variants/var_glyph-plain.d.ts +7 -7
  320. package/dist/ui/variants/var_glyph-plain.js +1 -1
  321. package/dist/ui/variants/var_input.d.ts +30 -30
  322. package/dist/ui/variants/var_input.js +1 -1
  323. package/dist/ui/variants/var_link-inline.d.ts +17 -17
  324. package/dist/ui/variants/var_link-inline.js +1 -1
  325. package/dist/ui/variants/var_list-row.d.ts +22 -22
  326. package/dist/ui/variants/var_list-row.js +1 -1
  327. package/dist/ui/variants/var_rule.d.ts +5 -5
  328. package/dist/ui/variants/var_rule.js +1 -1
  329. package/dist/ui/variants/var_skeleton-block.d.ts +9 -9
  330. package/dist/ui/variants/var_skeleton-block.js +1 -1
  331. package/dist/ui/variants/var_spinner-turning.d.ts +9 -9
  332. package/dist/ui/variants/var_spinner-turning.js +1 -1
  333. package/dist/ui/variants/var_stat-tile.d.ts +10 -10
  334. package/dist/ui/variants/var_stat-tile.js +1 -1
  335. package/dist/ui/variants/var_tab-bar.d.ts +14 -14
  336. package/dist/ui/variants/var_tab-bar.js +1 -1
  337. package/dist/ui/variants/var_tap-target.d.ts +11 -11
  338. package/dist/ui/variants/var_tap-target.js +1 -1
  339. package/dist/ui/variants.d.ts +88 -88
  340. package/dist/ui/wrappers.d.ts +7 -6
  341. package/dist/ui/wrappers.js +16 -14
  342. package/dist/ui/wrappers.tsx +21 -18
  343. package/package.json +2 -2
@@ -1,50 +1,50 @@
1
1
  export declare const FLAT: {
2
- readonly id: "flat";
2
+ readonly id: 'flat';
3
3
  readonly sets: readonly [{
4
- readonly property: "background";
5
- readonly is: "colour-surface";
4
+ readonly property: 'background';
5
+ readonly is: 'colour-surface';
6
6
  }, {
7
- readonly property: "borderWidth";
8
- readonly is: "edge-hair";
7
+ readonly property: 'borderWidth';
8
+ readonly is: 'edge-hair';
9
9
  }, {
10
- readonly property: "borderStyle";
11
- readonly is: "line-solid";
10
+ readonly property: 'borderStyle';
11
+ readonly is: 'line-solid';
12
12
  }, {
13
- readonly property: "borderColor";
14
- readonly is: "colour-edge-faint";
13
+ readonly property: 'borderColor';
14
+ readonly is: 'colour-edge-faint';
15
15
  }, {
16
- readonly property: "boxShadow";
17
- readonly is: "shadow-1";
16
+ readonly property: 'boxShadow';
17
+ readonly is: 'shadow-1';
18
18
  }, {
19
- readonly property: "color";
20
- readonly is: "colour-ink";
19
+ readonly property: 'color';
20
+ readonly is: 'colour-ink';
21
21
  }];
22
22
  readonly states: readonly [{
23
23
  readonly when: readonly ["hover"];
24
24
  readonly sets: readonly [{
25
- readonly property: "boxShadow";
26
- readonly is: "shadow-2";
25
+ readonly property: 'boxShadow';
26
+ readonly is: 'shadow-2';
27
27
  }];
28
28
  }, {
29
29
  readonly when: readonly ["focus"];
30
30
  readonly sets: readonly [{
31
- readonly property: "borderColor";
32
- readonly is: "colour-accent";
31
+ readonly property: 'borderColor';
32
+ readonly is: 'colour-accent';
33
33
  }, {
34
- readonly property: "borderWidth";
35
- readonly is: "edge-thick";
34
+ readonly property: 'borderWidth';
35
+ readonly is: 'edge-thick';
36
36
  }];
37
37
  }, {
38
38
  readonly when: readonly ["focus", "hover"];
39
39
  readonly sets: readonly [{
40
- readonly property: "borderColor";
41
- readonly is: "colour-accent";
40
+ readonly property: 'borderColor';
41
+ readonly is: 'colour-accent';
42
42
  }, {
43
- readonly property: "borderWidth";
44
- readonly is: "edge-thick";
43
+ readonly property: 'borderWidth';
44
+ readonly is: 'edge-thick';
45
45
  }, {
46
- readonly property: "boxShadow";
47
- readonly is: "shadow-2";
46
+ readonly property: 'boxShadow';
47
+ readonly is: 'shadow-2';
48
48
  }];
49
49
  }];
50
50
  };
@@ -1,4 +1,4 @@
1
- import { material } from "../material.js";
1
+ import { material } from '../material.js';
2
2
  export const FLAT = material({
3
3
  id: 'flat',
4
4
  sets: [
@@ -1,32 +1,32 @@
1
1
  export declare const GLASS: {
2
- readonly id: "glass";
2
+ readonly id: 'glass';
3
3
  readonly sets: readonly [{
4
- readonly property: "background";
5
- readonly is: "colour-glass";
4
+ readonly property: 'background';
5
+ readonly is: 'colour-glass';
6
6
  }, {
7
- readonly property: "backdropFilter";
8
- readonly is: "blur-md";
7
+ readonly property: 'backdropFilter';
8
+ readonly is: 'blur-md';
9
9
  }, {
10
- readonly property: "borderWidth";
11
- readonly is: "edge-hair";
10
+ readonly property: 'borderWidth';
11
+ readonly is: 'edge-hair';
12
12
  }, {
13
- readonly property: "borderStyle";
14
- readonly is: "line-solid";
13
+ readonly property: 'borderStyle';
14
+ readonly is: 'line-solid';
15
15
  }, {
16
- readonly property: "borderColor";
17
- readonly is: "colour-edge-glass";
16
+ readonly property: 'borderColor';
17
+ readonly is: 'colour-edge-glass';
18
18
  }, {
19
- readonly property: "boxShadow";
20
- readonly is: "shadow-3";
19
+ readonly property: 'boxShadow';
20
+ readonly is: 'shadow-3';
21
21
  }, {
22
- readonly property: "color";
23
- readonly is: "colour-ink";
22
+ readonly property: 'color';
23
+ readonly is: 'colour-ink';
24
24
  }];
25
25
  readonly states: readonly [{
26
26
  readonly when: readonly ["hover"];
27
27
  readonly sets: readonly [{
28
- readonly property: "backdropFilter";
29
- readonly is: "blur-lg";
28
+ readonly property: 'backdropFilter';
29
+ readonly is: 'blur-lg';
30
30
  }];
31
31
  }];
32
32
  };
@@ -1,4 +1,4 @@
1
- import { material } from "../material.js";
1
+ import { material } from '../material.js';
2
2
  export const GLASS = material({
3
3
  id: 'glass',
4
4
  sets: [
@@ -1,22 +1,22 @@
1
1
  export declare const LIT: {
2
- readonly id: "lit";
2
+ readonly id: 'lit';
3
3
  readonly sets: readonly [{
4
- readonly property: "background";
5
- readonly is: "colour-surface-lit";
4
+ readonly property: 'background';
5
+ readonly is: 'colour-surface-lit';
6
6
  }, {
7
- readonly property: "borderWidth";
8
- readonly is: "edge-thin";
7
+ readonly property: 'borderWidth';
8
+ readonly is: 'edge-thin';
9
9
  }, {
10
- readonly property: "borderStyle";
11
- readonly is: "line-solid";
10
+ readonly property: 'borderStyle';
11
+ readonly is: 'line-solid';
12
12
  }, {
13
- readonly property: "borderColor";
14
- readonly is: "colour-edge-lit";
13
+ readonly property: 'borderColor';
14
+ readonly is: 'colour-edge-lit';
15
15
  }, {
16
- readonly property: "boxShadow";
17
- readonly is: "shadow-glow";
16
+ readonly property: 'boxShadow';
17
+ readonly is: 'shadow-glow';
18
18
  }, {
19
- readonly property: "color";
20
- readonly is: "colour-ink";
19
+ readonly property: 'color';
20
+ readonly is: 'colour-ink';
21
21
  }];
22
22
  };
@@ -1,4 +1,4 @@
1
- import { material } from "../material.js";
1
+ import { material } from '../material.js';
2
2
  export const LIT = material({
3
3
  id: 'lit',
4
4
  sets: [
@@ -1,16 +1,16 @@
1
1
  export declare const MOULDED: {
2
- readonly id: "moulded";
2
+ readonly id: 'moulded';
3
3
  readonly sets: readonly [{
4
- readonly property: "background";
5
- readonly is: "colour-page";
4
+ readonly property: 'background';
5
+ readonly is: 'colour-page';
6
6
  }, {
7
- readonly property: "borderStyle";
8
- readonly is: "line-off";
7
+ readonly property: 'borderStyle';
8
+ readonly is: 'line-off';
9
9
  }, {
10
- readonly property: "boxShadow";
11
- readonly is: "shadow-moulded";
10
+ readonly property: 'boxShadow';
11
+ readonly is: 'shadow-moulded';
12
12
  }, {
13
- readonly property: "color";
14
- readonly is: "colour-ink";
13
+ readonly property: 'color';
14
+ readonly is: 'colour-ink';
15
15
  }];
16
16
  };
@@ -1,4 +1,4 @@
1
- import { material } from "../material.js";
1
+ import { material } from '../material.js';
2
2
  export const MOULDED = material({
3
3
  id: 'moulded',
4
4
  sets: [
@@ -1,46 +1,46 @@
1
1
  import type { Threaded } from '@prestack/thread/core/thread';
2
2
  export declare const MATERIALS: {
3
- readonly id: "material";
4
- readonly at: "thread/ui/materials.ts";
5
- readonly files: "ui/mat_*.ts";
6
- readonly describes: "A combination of style guide values that gives one specific appearance, worn by any variant that names it: glass, clay, a glaze. It composes and never computes, because every value it sets is a name the style guide holds and never a raw one, which is what lets one material be worn by many variants. Each row names a file prefixed `mat_`, and that file is the material; a file under it that no row names is not a material but a file somebody wrote. An app adds its own to this same list, and a row that goes missing breaks the build, because what the framework offers is not an app’s to withdraw. These are materials and not aesthetics: Neumorphism, Claymorphism and Cyberpunk are templates, and a template is what picks a material.";
3
+ readonly id: 'material';
4
+ readonly at: 'thread/ui/materials.ts';
5
+ readonly files: 'ui/mat_*.ts';
6
+ readonly describes: 'A combination of style guide values that gives one specific appearance, worn by any variant that names it: glass, clay, a glaze. It composes and never computes, because every value it sets is a name the style guide holds and never a raw one, which is what lets one material be worn by many variants. Each row names a file prefixed `mat_`, and that file is the material; a file under it that no row names is not a material but a file somebody wrote. An app adds its own to this same list, and a row that goes missing breaks the build, because what the framework offers is not an app’s to withdraw. These are materials and not aesthetics: Neumorphism, Claymorphism and Cyberpunk are templates, and a template is what picks a material.';
7
7
  readonly version: 1;
8
8
  readonly cites: readonly [{
9
- readonly on: "2026-08-25";
10
- readonly said: "Style guides they can be used for simple pickings that need no thinking. We can pick colours and basic effects for using the app. Materials however are for more complex and detailed work. Materials.ts is a declaration sheet, SSOT, and each row is a file, mat_";
9
+ readonly on: '2026-08-25';
10
+ readonly said: 'Style guides they can be used for simple pickings that need no thinking. We can pick colours and basic effects for using the app. Materials however are for more complex and detailed work. Materials.ts is a declaration sheet, SSOT, and each row is a file, mat_';
11
11
  }];
12
12
  readonly declares: readonly [{
13
- readonly id: "glass";
14
- readonly at: "thread/ui/materials/mat_glass.ts";
15
- readonly describes: "A pane you can see through, with what is behind it softened and desaturation corrected for.";
13
+ readonly id: 'glass';
14
+ readonly at: 'thread/ui/materials/mat_glass.ts';
15
+ readonly describes: 'A pane you can see through, with what is behind it softened and desaturation corrected for.';
16
16
  }, {
17
- readonly id: "flat";
18
- readonly at: "thread/ui/materials/mat_flat.ts";
19
- readonly describes: "Paper. A plain filled panel with a hairline and almost no lift — the same tokens as glass, asked more quietly.";
17
+ readonly id: 'flat';
18
+ readonly at: 'thread/ui/materials/mat_flat.ts';
19
+ readonly describes: 'Paper. A plain filled panel with a hairline and almost no lift — the same tokens as glass, asked more quietly.';
20
20
  }, {
21
- readonly id: "elevated";
22
- readonly at: "thread/ui/materials/mat_elevated.ts";
23
- readonly describes: "Something lifted off the page, reading by its shadow rather than by any outline.";
21
+ readonly id: 'elevated';
22
+ readonly at: 'thread/ui/materials/mat_elevated.ts';
23
+ readonly describes: 'Something lifted off the page, reading by its shadow rather than by any outline.';
24
24
  }, {
25
- readonly id: "bordered";
26
- readonly at: "thread/ui/materials/mat_bordered.ts";
27
- readonly describes: "Ink on paper — a hard outline and a shadow with no blur, offset like a stamp.";
25
+ readonly id: 'bordered';
26
+ readonly at: 'thread/ui/materials/mat_bordered.ts';
27
+ readonly describes: 'Ink on paper — a hard outline and a shadow with no blur, offset like a stamp.';
28
28
  }, {
29
- readonly id: "moulded";
30
- readonly at: "thread/ui/materials/mat_moulded.ts";
31
- readonly describes: "Pressed out of the page rather than laid on it. Its fill is the page itself, and its relief is one shadow cast twice in opposite directions.";
29
+ readonly id: 'moulded';
30
+ readonly at: 'thread/ui/materials/mat_moulded.ts';
31
+ readonly describes: 'Pressed out of the page rather than laid on it. Its fill is the page itself, and its relief is one shadow cast twice in opposite directions.';
32
32
  }, {
33
- readonly id: "clay";
34
- readonly at: "thread/ui/materials/mat_clay.ts";
35
- readonly describes: "Something soft and inflated, lit from above — an outer shadow it sits in and an inset highlight along its top edge.";
33
+ readonly id: 'clay';
34
+ readonly at: 'thread/ui/materials/mat_clay.ts';
35
+ readonly describes: 'Something soft and inflated, lit from above — an outer shadow it sits in and an inset highlight along its top edge.';
36
36
  }, {
37
- readonly id: "lit";
38
- readonly at: "thread/ui/materials/mat_lit.ts";
39
- readonly describes: "Something that emits rather than reflects. Its glow is a shadow cast from nowhere in particular, and it names no colour of its own.";
37
+ readonly id: 'lit';
38
+ readonly at: 'thread/ui/materials/mat_lit.ts';
39
+ readonly describes: 'Something that emits rather than reflects. Its glow is a shadow cast from nowhere in particular, and it names no colour of its own.';
40
40
  }, {
41
- readonly id: "ceramic";
42
- readonly at: "thread/ui/materials/mat_ceramic.ts";
43
- readonly describes: "A glazed surface with the light falling down its face. The one material that asks for a gradient rather than a fill.";
41
+ readonly id: 'ceramic';
42
+ readonly at: 'thread/ui/materials/mat_ceramic.ts';
43
+ readonly describes: 'A glazed surface with the light falling down its face. The one material that asks for a gradient rather than a fill.';
44
44
  }];
45
45
  };
46
46
  export declare function nameOf(id: string): string;
@@ -6,12 +6,12 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
6
6
  }
7
7
  return path;
8
8
  };
9
- import { existsSync, readFileSync, writeFileSync } from "@prestack/thread/core/files";
9
+ import { existsSync, readFileSync, writeFileSync } from '@prestack/thread/integrations/disk';
10
10
  import { basename, join } from 'node:path';
11
11
  import { argv, stdout } from 'node:process';
12
12
  import { pathToFileURL } from 'node:url';
13
- import { exit, invoked } from "@prestack/thread/core/invoked";
14
- import { findTree, inTree, strayFiles } from "@prestack/thread/core/tree";
13
+ import { exit, invoked } from '@prestack/thread/core/invoked';
14
+ import { findTree, inTree, strayFiles } from '@prestack/thread/core/tree';
15
15
  export const MATERIALS = {
16
16
  id: 'material',
17
17
  at: 'thread/ui/materials.ts',
@@ -1,4 +1,4 @@
1
- import { existsSync, readdirSync, readFileSync, writeFileSync } from '@prestack/thread/core/files'
1
+ import { existsSync, readdirSync, readFileSync, writeFileSync } from '@prestack/thread/integrations/disk'
2
2
  import { basename, dirname, join } from 'node:path'
3
3
  import { argv, stdout } from 'node:process'
4
4
  import { pathToFileURL } from 'node:url'
@@ -7,9 +7,9 @@ export declare const holds: readonly [Omit<Threaded, "at"> & {
7
7
  readonly is: string;
8
8
  }];
9
9
  export declare const MODES: {
10
- readonly id: "mode";
10
+ readonly id: 'mode';
11
11
  readonly at: "thread/ui/modes.ts";
12
- readonly describes: "Every way a reader’s own device can ask for a different look, and the query that answers it. A mode is chosen for the app rather than by it, which is what tells it from a theme — and a theme has its own modes, so the two are dimensions rather than one list. A mode changes what the variables hold, never what a material or a variant says.";
12
+ readonly describes: 'Every way a reader’s own device can ask for a different look, and the query that answers it. A mode is chosen for the app rather than by it, which is what tells it from a theme — and a theme has its own modes, so the two are dimensions rather than one list. A mode changes what the variables hold, never what a material or a variant says.';
13
13
  readonly version: 1;
14
14
  readonly cites: {
15
15
  on: string;
@@ -1,11 +1,11 @@
1
1
  'use client';
2
- import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { useEffect, useId, useRef, useState } from 'react';
4
4
  import { createPortal } from 'react-dom';
5
- import { PRESENTATION_BEHAVIOUR } from "./door.js";
6
- import { useDismissLayer } from "./dismiss-layer.js";
7
- import { useFocusScope } from "./focus-scope.js";
8
- import { lockScroll } from "./scroll-lock.js";
5
+ import { PRESENTATION_BEHAVIOUR } from './door.js';
6
+ import { useDismissLayer } from './dismiss-layer.js';
7
+ import { useFocusScope } from './focus-scope.js';
8
+ import { lockScroll } from './scroll-lock.js';
9
9
  export function Presented(props) {
10
10
  const behaviour = PRESENTATION_BEHAVIOUR[props.presentation];
11
11
  const open = props.open ?? true;
@@ -1,4 +1,5 @@
1
1
  import { type ReactNode } from 'react';
2
+ import { type CollectorOptions } from './collector.ts';
2
3
  import { type UiConfig } from './wrappers.tsx';
3
4
  export interface ThreadUiProps {
4
5
  readonly children: ReactNode;
@@ -25,6 +26,8 @@ export interface ThreadUiProps {
25
26
  readonly endpoint?: string;
26
27
  readonly allowed: () => boolean;
27
28
  readonly sample?: number;
29
+ readonly beacon?: CollectorOptions['beacon'];
30
+ readonly fetch?: CollectorOptions['fetch'];
28
31
  };
29
32
  readonly dispatch?: (name: string, input?: Readonly<Record<string, unknown>>) => Promise<unknown>;
30
33
  readonly navigateTo?: (screen: string) => void;
@@ -1,12 +1,12 @@
1
1
  'use client';
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
3
  import { useCallback, useContext, useEffect, useMemo, useSyncExternalStore } from 'react';
4
- import { en } from "./i18n/catalogs/en.js";
5
- import { createTranslator } from "./i18n/translator.js";
6
- import { EDGE_SCROLL_DEFAULTS } from "./drag.js";
7
- import { createCollector, INERT_COLLECTOR } from "./collector.js";
8
- import { Clock, Ticker } from "./door.js";
9
- import { UiContext, UiProvider } from "./wrappers.js";
4
+ import { en } from './i18n/catalogs/en.js';
5
+ import { createTranslator } from './i18n/translator.js';
6
+ import { EDGE_SCROLL_DEFAULTS } from './drag.js';
7
+ import { createCollector, INERT_COLLECTOR } from './collector.js';
8
+ import { Clock, Ticker } from './door.js';
9
+ import { UiContext, UiProvider } from './wrappers.js';
10
10
  function useMedia(query, fallback) {
11
11
  const subscribe = useCallback((onChange) => {
12
12
  if (typeof globalThis.matchMedia !== 'function')
@@ -77,11 +77,10 @@ export function ThreadUi(props) {
77
77
  endpoint: props.telemetry.endpoint ?? '/obs/client',
78
78
  allowed: props.telemetry.allowed,
79
79
  ...(props.telemetry.sample === undefined ? {} : { sample: props.telemetry.sample }),
80
- ...(typeof navigator === 'object' && typeof navigator.sendBeacon === 'function'
81
- ? { beacon: (url, body) => navigator.sendBeacon(url, new Blob([body], { type: 'application/json' })) }
82
- : {}),
80
+ ...(props.telemetry.beacon === undefined ? {} : { beacon: props.telemetry.beacon }),
81
+ ...(props.telemetry.fetch === undefined ? {} : { fetch: props.telemetry.fetch }),
83
82
  });
84
- }, [telemetryOff, props.telemetry?.endpoint, props.telemetry?.sample, props.telemetry?.allowed]);
83
+ }, [telemetryOff, props.telemetry?.endpoint, props.telemetry?.sample, props.telemetry?.allowed, props.telemetry?.beacon, props.telemetry?.fetch]);
85
84
  useEffect(() => () => collector.stop(), [collector]);
86
85
  const gate = props.permits;
87
86
  const asked = props.asking;
@@ -6,7 +6,7 @@ import { en } from './i18n/catalogs/en.ts'
6
6
  import { createTranslator } from './i18n/translator.ts'
7
7
  import { EDGE_SCROLL_DEFAULTS } from './drag.ts'
8
8
 
9
- import { createCollector, INERT_COLLECTOR } from './collector.ts'
9
+ import { createCollector, INERT_COLLECTOR, type CollectorOptions } from './collector.ts'
10
10
  import { Clock, Ticker } from './door.ts'
11
11
  import { UiContext, UiProvider, type Appearance, type UiConfig } from './wrappers.tsx'
12
12
 
@@ -34,6 +34,9 @@ export interface ThreadUiProps {
34
34
  readonly allowed: () => boolean
35
35
 
36
36
  readonly sample?: number
37
+
38
+ readonly beacon?: CollectorOptions['beacon']
39
+ readonly fetch?: CollectorOptions['fetch']
37
40
  }
38
41
 
39
42
  readonly dispatch?: (name: string, input?: Readonly<Record<string, unknown>>) => Promise<unknown>
@@ -133,12 +136,11 @@ export function ThreadUi(props: ThreadUiProps): ReactNode {
133
136
  endpoint: props.telemetry.endpoint ?? '/obs/client',
134
137
  allowed: props.telemetry.allowed,
135
138
  ...(props.telemetry.sample === undefined ? {} : { sample: props.telemetry.sample }),
136
- ...(typeof navigator === 'object' && typeof navigator.sendBeacon === 'function'
137
- ? { beacon: (url: string, body: string) => navigator.sendBeacon(url, new Blob([body], { type: 'application/json' })) }
138
- : {}),
139
+ ...(props.telemetry.beacon === undefined ? {} : { beacon: props.telemetry.beacon }),
140
+ ...(props.telemetry.fetch === undefined ? {} : { fetch: props.telemetry.fetch }),
139
141
  })
140
142
 
141
- }, [telemetryOff, props.telemetry?.endpoint, props.telemetry?.sample, props.telemetry?.allowed])
143
+ }, [telemetryOff, props.telemetry?.endpoint, props.telemetry?.sample, props.telemetry?.allowed, props.telemetry?.beacon, props.telemetry?.fetch])
142
144
 
143
145
  useEffect(() => () => collector.stop(), [collector])
144
146
 
@@ -1,11 +1,11 @@
1
- import { existsSync, readFileSync, writeFileSync } from "@prestack/thread/core/files";
1
+ import { existsSync, readFileSync, writeFileSync } from '@prestack/thread/integrations/disk';
2
2
  import { basename, join } from 'node:path';
3
3
  import { argv, stdout } from 'node:process';
4
- import { exit, invoked } from "@prestack/thread/core/invoked";
5
- import { valuesIn } from "@prestack/thread/core/rows";
6
- import { findTree, inTree } from "@prestack/thread/core/tree";
7
- import { HOME, settled, undeclared } from "./compositions.js";
8
- import { PRESENTATIONS } from "./door.js";
4
+ import { exit, invoked } from '@prestack/thread/core/invoked';
5
+ import { valuesIn } from '@prestack/thread/core/rows';
6
+ import { findTree, inTree } from '@prestack/thread/core/tree';
7
+ import { HOME, settled, undeclared } from './compositions.js';
8
+ import { PRESENTATIONS } from './door.js';
9
9
  const here = 'thread/ui/screens.ts';
10
10
  const said = [
11
11
  {
@@ -1,4 +1,4 @@
1
- import { existsSync, readFileSync, writeFileSync } from '@prestack/thread/core/files'
1
+ import { existsSync, readFileSync, writeFileSync } from '@prestack/thread/integrations/disk'
2
2
  import { basename, dirname, join } from 'node:path'
3
3
  import { argv, stdout } from 'node:process'
4
4
 
@@ -1,4 +1,4 @@
1
- import { nameOf } from "./token.js";
1
+ import { nameOf } from './token.js';
2
2
  let held = 0;
3
3
  let previous = null;
4
4
  export function lockScroll() {
package/dist/ui/series.js CHANGED
@@ -1,4 +1,4 @@
1
- import { contrast, CONTRAST_LARGE } from "./contrast.js";
1
+ import { contrast, CONTRAST_LARGE } from './contrast.js';
2
2
  const GOLDEN_ANGLE = 137.508;
3
3
  const toLinear = (c) => (c <= 0.04045 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4);
4
4
  const toSrgb = (c) => (c <= 0.0031308 ? 12.92 * c : 1.055 * c ** (1 / 2.4) - 0.055);
@@ -1,4 +1,4 @@
1
- import { held, sheeted } from "./token.js";
1
+ import { held, sheeted } from './token.js';
2
2
  export function themedBy(theme) {
3
3
  return `:root[data-theme="${theme}"]`;
4
4
  }
@@ -80,9 +80,9 @@ export declare const declares: readonly [Threaded & {
80
80
  readonly id: "shadow";
81
81
  }];
82
82
  export declare const TOKENS: {
83
- readonly id: "token";
83
+ readonly id: 'token';
84
84
  readonly at: "thread/ui/tokens.ts";
85
- readonly describes: "A sort of variable an app may have, named and never valued — colour, space, shadow. It says such a variable can exist; the style guide says which ones there are and what each holds. Where the thing is better stated as a rule than as a list, the token carries that rule and a style guide row hands it arguments instead of a value. An app adds one to bring a new sort of variable into being, and may not remove what the framework put there.";
85
+ readonly describes: 'A sort of variable an app may have, named and never valued — colour, space, shadow. It says such a variable can exist; the style guide says which ones there are and what each holds. Where the thing is better stated as a rule than as a list, the token carries that rule and a style guide row hands it arguments instead of a value. An app adds one to bring a new sort of variable into being, and may not remove what the framework put there.';
86
86
  readonly version: 1;
87
87
  readonly cites: {
88
88
  on: string;
package/dist/ui/tokens.js CHANGED
@@ -6,12 +6,12 @@ var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExte
6
6
  }
7
7
  return path;
8
8
  };
9
- import { existsSync, readdirSync, writeFileSync } from "@prestack/thread/core/files";
9
+ import { existsSync, readdirSync, writeFileSync } from '@prestack/thread/integrations/disk';
10
10
  import { basename, dirname, join } from 'node:path';
11
11
  import { argv, stdout } from 'node:process';
12
12
  import { pathToFileURL } from 'node:url';
13
- import { exit, invoked } from "@prestack/thread/core/invoked";
14
- import { findTree, inTree } from "@prestack/thread/core/tree";
13
+ import { exit, invoked } from '@prestack/thread/core/invoked';
14
+ import { findTree, inTree } from '@prestack/thread/core/tree';
15
15
  const here = 'thread/ui/tokens.ts';
16
16
  const said = [
17
17
  {
package/dist/ui/tokens.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { existsSync, readdirSync, writeFileSync } from '@prestack/thread/core/files'
1
+ import { existsSync, readdirSync, writeFileSync } from '@prestack/thread/integrations/disk'
2
2
  import { basename, dirname, join } from 'node:path'
3
3
  import { argv, stdout } from 'node:process'
4
4
  import { pathToFileURL } from 'node:url'
@@ -1,4 +1,4 @@
1
- import { ENTRY_MODES, FORMATS, KEYBOARDS, formatNamed, showValue, } from "@prestack/thread/core/types";
1
+ import { ENTRY_MODES, FORMATS, KEYBOARDS, formatNamed, showValue, } from '@prestack/thread/core/types';
2
2
  export { ENTRY_MODES, KEYBOARDS };
3
3
  export const valid = (value) => ({ ok: true, value });
4
4
  export const invalid = (errorKey) => ({ ok: false, errorKey });