@prestack/thread-ui 0.1.0 → 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 +373 -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,9 +1,14 @@
1
1
  'use client';
2
- import { roleClass } from "../fonts.js";
3
- import { element, useSurface } from "../wrappers.js";
4
- import { shows } from "./money.works.js";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { roleClass } from '../fonts.js';
4
+ import { element, useSurface } from '../wrappers.js';
5
+ import { shows } from './money.works.js';
5
6
  export const Money = element('Money', (props, className) => {
6
7
  const surface = useSurface({ className: roleClass(props.is, className),
7
- invokes: { ...(props.dispatch === undefined ? {} : { dispatch: props.dispatch }), ...(props.input === undefined ? {} : { input: props.input }), ...(props.invokeOn === undefined ? {} : { on: props.invokeOn }) }, });
8
- return (shows(props, surface));
8
+ invokes: { ...(props.dispatch === undefined ? {} : { dispatch: props.dispatch }), ...(props.input === undefined ? {} : { input: props.input }), ...(props.invokeOn === undefined ? {} : { on: props.invokeOn }) },
9
+ holds: [
10
+ ...(props.invalid === true ? ['invalid'] : []),
11
+ ],
12
+ raises: ['invalid'], });
13
+ return (_jsx("span", { className: surface.className, ...surface.marks, ...surface.invokes, ...surface.a11y, children: shows(props, surface) }));
9
14
  }, 'e-money', {});
@@ -1,7 +1,9 @@
1
1
  'use client'
2
2
 
3
+ import type { MessageKey } from '../content.tsx'
3
4
  import { roleClass, type FontRoleId } from '../fonts.ts'
4
5
 
6
+ import type { Dispatching } from '../checked.ts'
5
7
  import { type Element, element, useSurface } from '../wrappers.tsx'
6
8
  import { shows } from './money.works.ts'
7
9
 
@@ -9,7 +11,8 @@ import { shows } from './money.works.ts'
9
11
  export interface MoneyProps {
10
12
  readonly value?: unknown
11
13
  readonly is?: FontRoleId
12
- readonly dispatch?: string
14
+ readonly invalid?: boolean
15
+ readonly dispatch?: keyof Dispatching
13
16
  readonly input?: Readonly<Record<string, unknown>>
14
17
  readonly invokeOn?: 'press' | 'shown'
15
18
  }
@@ -18,9 +21,15 @@ export const Money: Element<'Money', MoneyProps> = element(
18
21
  'Money',
19
22
  (props: MoneyProps, className) => {
20
23
  const surface = useSurface({ className: roleClass(props.is, className),
21
- invokes: { ...(props.dispatch === undefined ? {} : { dispatch: props.dispatch }), ...(props.input === undefined ? {} : { input: props.input }), ...(props.invokeOn === undefined ? {} : { on: props.invokeOn }) }, })
24
+ invokes: { ...(props.dispatch === undefined ? {} : { dispatch: props.dispatch }), ...(props.input === undefined ? {} : { input: props.input }), ...(props.invokeOn === undefined ? {} : { on: props.invokeOn }) },
25
+ holds: [
26
+ ...(props.invalid === true ? ['invalid' as const] : []),
27
+ ],
28
+ raises: ['invalid' as const], })
22
29
  return (
23
- shows(props, surface)
30
+ <span className={surface.className} {...surface.marks} {...surface.invokes} {...surface.a11y}>
31
+ {shows(props, surface)}
32
+ </span>
24
33
  )
25
34
  },
26
35
  'e-money',
@@ -1,4 +1,4 @@
1
- import { renderValue } from "../content.js";
1
+ import { renderValue } from '../content.js';
2
2
  export function shows(props, surface) {
3
3
  return renderValue({ validator: 'money', value: props.value }, surface);
4
4
  }
@@ -1,10 +1,11 @@
1
1
  import type { MapIsland } from '../islands/map.ts';
2
+ import type { Dispatching } from '../checked.ts';
2
3
  import { type Element } from '../wrappers.tsx';
3
4
  export interface PaginationProps {
4
5
  readonly map: MapIsland;
5
6
  readonly sequence: readonly string[];
6
7
  readonly current: string;
7
- readonly dispatch?: string;
8
+ readonly dispatch?: keyof Dispatching;
8
9
  readonly input?: Readonly<Record<string, unknown>>;
9
10
  readonly invokeOn?: 'press' | 'shown';
10
11
  }
@@ -1,10 +1,10 @@
1
1
  'use client';
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
- import { roleClass } from "../fonts.js";
4
- import { Link } from "./link.js";
5
- import { element, useSurface } from "../wrappers.js";
6
- import { Each } from "../elements/each.js";
7
- import { step, steps } from "./pagination.works.js";
3
+ import { roleClass } from '../fonts.js';
4
+ import { Link } from './link.js';
5
+ import { element, useSurface } from '../wrappers.js';
6
+ import { Each } from '../elements/each.js';
7
+ import { step, steps } from './pagination.works.js';
8
8
  export const Pagination = element('Pagination', (props, className) => {
9
9
  const surface = useSurface({ className: roleClass(undefined, className),
10
10
  invokes: { ...(props.dispatch === undefined ? {} : { dispatch: props.dispatch }), ...(props.input === undefined ? {} : { input: props.input }), ...(props.invokeOn === undefined ? {} : { on: props.invokeOn }) }, });
@@ -4,6 +4,7 @@ import { roleClass } from '../fonts.ts'
4
4
  import type { MapIsland } from '../islands/map.ts'
5
5
  import { Link } from './link.tsx'
6
6
 
7
+ import type { Dispatching } from '../checked.ts'
7
8
  import { type Element, element, useSurface } from '../wrappers.tsx'
8
9
  import { Each } from '../elements/each.tsx'
9
10
  import { step, steps } from './pagination.works.ts'
@@ -13,7 +14,7 @@ export interface PaginationProps {
13
14
  readonly map: MapIsland
14
15
  readonly sequence: readonly string[]
15
16
  readonly current: string
16
- readonly dispatch?: string
17
+ readonly dispatch?: keyof Dispatching
17
18
  readonly input?: Readonly<Record<string, unknown>>
18
19
  readonly invokeOn?: 'press' | 'shown'
19
20
  }
@@ -1,10 +1,11 @@
1
1
  import type { MessageKey } from '../content.tsx';
2
+ import type { Dispatching } from '../checked.ts';
2
3
  import { type Element } from '../wrappers.tsx';
3
4
  export interface ProgressProps {
4
5
  readonly value?: number;
5
6
  readonly target?: number;
6
7
  readonly labelKey: MessageKey;
7
- readonly dispatch?: string;
8
+ readonly dispatch?: keyof Dispatching;
8
9
  readonly input?: Readonly<Record<string, unknown>>;
9
10
  readonly invokeOn?: 'press' | 'shown';
10
11
  }
@@ -1,8 +1,8 @@
1
1
  'use client';
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
- import { roleClass } from "../fonts.js";
4
- import { element, useSurface } from "../wrappers.js";
5
- import { measured } from "./progress.works.js";
3
+ import { roleClass } from '../fonts.js';
4
+ import { element, useSurface } from '../wrappers.js';
5
+ import { measured } from './progress.works.js';
6
6
  export const Progress = element('Progress', (props, className) => {
7
7
  const surface = useSurface({ className: roleClass(undefined, className),
8
8
  invokes: { ...(props.dispatch === undefined ? {} : { dispatch: props.dispatch }), ...(props.input === undefined ? {} : { input: props.input }), ...(props.invokeOn === undefined ? {} : { on: props.invokeOn }) },
@@ -3,6 +3,7 @@
3
3
  import type { MessageKey } from '../content.tsx'
4
4
  import { roleClass } from '../fonts.ts'
5
5
 
6
+ import type { Dispatching } from '../checked.ts'
6
7
  import { type Element, element, useSurface } from '../wrappers.tsx'
7
8
  import { measured } from './progress.works.ts'
8
9
 
@@ -11,7 +12,7 @@ export interface ProgressProps {
11
12
  readonly value?: number
12
13
  readonly target?: number
13
14
  readonly labelKey: MessageKey
14
- readonly dispatch?: string
15
+ readonly dispatch?: keyof Dispatching
15
16
  readonly input?: Readonly<Record<string, unknown>>
16
17
  readonly invokeOn?: 'press' | 'shown'
17
18
  }
@@ -1,5 +1,6 @@
1
1
  import type { MessageKey } from '../content.tsx';
2
2
  import type { Row } from '../charts.tsx';
3
+ import type { Dispatching } from '../checked.ts';
3
4
  import { type Element } from '../wrappers.tsx';
4
5
  export interface RadioGroupProps {
5
6
  readonly name: string;
@@ -8,7 +9,7 @@ export interface RadioGroupProps {
8
9
  readonly chosen?: string;
9
10
  readonly onValue?: (said: string) => void;
10
11
  readonly disabled?: boolean;
11
- readonly dispatch?: string;
12
+ readonly dispatch?: keyof Dispatching;
12
13
  readonly input?: Readonly<Record<string, unknown>>;
13
14
  readonly invokeOn?: 'press' | 'shown';
14
15
  }
@@ -1,9 +1,9 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { roleClass } from "../fonts.js";
4
- import { element, useSurface } from "../wrappers.js";
5
- import { Each } from "../elements/each.js";
6
- import { shown, option, uses } from "./radio-group.works.js";
3
+ import { roleClass } from '../fonts.js';
4
+ import { element, useSurface } from '../wrappers.js';
5
+ import { Each } from '../elements/each.js';
6
+ import { shown, option, uses } from './radio-group.works.js';
7
7
  export const RadioGroup = element('RadioGroup', (props, className) => {
8
8
  const kept = uses(props);
9
9
  const surface = useSurface({ className: roleClass(undefined, className),
@@ -4,6 +4,7 @@ import type { MessageKey } from '../content.tsx'
4
4
  import type { Row } from '../charts.tsx'
5
5
  import { roleClass } from '../fonts.ts'
6
6
 
7
+ import type { Dispatching } from '../checked.ts'
7
8
  import { type Element, element, useSurface } from '../wrappers.tsx'
8
9
  import { Each } from '../elements/each.tsx'
9
10
  import { shown, option, uses } from './radio-group.works.ts'
@@ -16,7 +17,7 @@ export interface RadioGroupProps {
16
17
  readonly chosen?: string
17
18
  readonly onValue?: (said: string) => void
18
19
  readonly disabled?: boolean
19
- readonly dispatch?: string
20
+ readonly dispatch?: keyof Dispatching
20
21
  readonly input?: Readonly<Record<string, unknown>>
21
22
  readonly invokeOn?: 'press' | 'shown'
22
23
  }
@@ -1,5 +1,5 @@
1
1
  import { useRef } from 'react';
2
- import { ITEM_ATTR, useRovingFocus } from "../roving-focus.js";
2
+ import { ITEM_ATTR, useRovingFocus } from '../roving-focus.js';
3
3
  export function uses(props) {
4
4
  const group = useRef(null);
5
5
  useRovingFocus(group, { orientation: 'vertical' });
@@ -1,8 +1,9 @@
1
1
  import type { ReactNode } from 'react';
2
+ import type { Dispatching } from '../checked.ts';
2
3
  import { type Element } from '../wrappers.tsx';
3
4
  export interface RowProps {
4
5
  readonly children: ReactNode;
5
- readonly dispatch?: string;
6
+ readonly dispatch?: keyof Dispatching;
6
7
  readonly input?: Readonly<Record<string, unknown>>;
7
8
  readonly invokeOn?: 'press' | 'shown';
8
9
  }
@@ -1,6 +1,6 @@
1
1
  'use client';
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
- import { element, useSurface } from "../wrappers.js";
3
+ import { element, useSurface } from '../wrappers.js';
4
4
  export const Row = element('Row', (props, className) => {
5
5
  const surface = useSurface({ className,
6
6
  invokes: { ...(props.dispatch === undefined ? {} : { dispatch: props.dispatch }), ...(props.input === undefined ? {} : { input: props.input }), ...(props.invokeOn === undefined ? {} : { on: props.invokeOn }) }, });
@@ -2,12 +2,13 @@
2
2
 
3
3
  import type { ReactNode } from 'react'
4
4
 
5
+ import type { Dispatching } from '../checked.ts'
5
6
  import { type Element, element, useSurface } from '../wrappers.tsx'
6
7
 
7
8
 
8
9
  export interface RowProps {
9
10
  readonly children: ReactNode
10
- readonly dispatch?: string
11
+ readonly dispatch?: keyof Dispatching
11
12
  readonly input?: Readonly<Record<string, unknown>>
12
13
  readonly invokeOn?: 'press' | 'shown'
13
14
  }
@@ -1,12 +1,13 @@
1
1
  import type { MessageKey } from '../content.tsx';
2
2
  import type { Row } from '../charts.tsx';
3
+ import type { Dispatching } from '../checked.ts';
3
4
  import { type Element } from '../wrappers.tsx';
4
5
  export interface ScatterProps {
5
6
  readonly rows: readonly Row[];
6
7
  readonly x: string;
7
8
  readonly y: string;
8
9
  readonly titleKey?: MessageKey;
9
- readonly dispatch?: string;
10
+ readonly dispatch?: keyof Dispatching;
10
11
  readonly input?: Readonly<Record<string, unknown>>;
11
12
  readonly invokeOn?: 'press' | 'shown';
12
13
  }
@@ -1,8 +1,8 @@
1
1
  'use client';
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
- import { roleClass } from "../fonts.js";
4
- import { element, useSurface } from "../wrappers.js";
5
- import { point, uses } from "./scatter.works.js";
3
+ import { roleClass } from '../fonts.js';
4
+ import { element, useSurface } from '../wrappers.js';
5
+ import { point, uses } from './scatter.works.js';
6
6
  export const Scatter = element('Scatter', (props, className) => {
7
7
  const kept = uses(props);
8
8
  const surface = useSurface({ className: roleClass(undefined, className),
@@ -4,6 +4,7 @@ import type { MessageKey } from '../content.tsx'
4
4
  import type { Row } from '../charts.tsx'
5
5
  import { roleClass } from '../fonts.ts'
6
6
 
7
+ import type { Dispatching } from '../checked.ts'
7
8
  import { type Element, element, useSurface } from '../wrappers.tsx'
8
9
  import { point, uses } from './scatter.works.ts'
9
10
 
@@ -13,7 +14,7 @@ export interface ScatterProps {
13
14
  readonly x: string
14
15
  readonly y: string
15
16
  readonly titleKey?: MessageKey
16
- readonly dispatch?: string
17
+ readonly dispatch?: keyof Dispatching
17
18
  readonly input?: Readonly<Record<string, unknown>>
18
19
  readonly invokeOn?: 'press' | 'shown'
19
20
  }
@@ -1,4 +1,4 @@
1
- import { num, useRamp } from "../charts.js";
1
+ import { num, useRamp } from '../charts.js';
2
2
  const SIDE = 100;
3
3
  export function uses(props) {
4
4
  const ramp = useRamp(1);
@@ -1,12 +1,13 @@
1
1
  import type { MessageKey } from '../content.tsx';
2
2
  import type { Row } from '../charts.tsx';
3
+ import type { Dispatching } from '../checked.ts';
3
4
  import { type Element } from '../wrappers.tsx';
4
5
  export interface SelectProps {
5
6
  readonly labelKey: MessageKey;
6
7
  readonly options: readonly Row[];
7
8
  readonly value?: string;
8
9
  readonly onValue?: (said: string) => void;
9
- readonly dispatch?: string;
10
+ readonly dispatch?: keyof Dispatching;
10
11
  readonly input?: Readonly<Record<string, unknown>>;
11
12
  readonly invokeOn?: 'press' | 'shown';
12
13
  }
@@ -1,9 +1,9 @@
1
1
  'use client';
2
2
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- import { roleClass } from "../fonts.js";
4
- import { element, useSurface } from "../wrappers.js";
5
- import { Each } from "../elements/each.js";
6
- import { does } from "./select.works.js";
3
+ import { roleClass } from '../fonts.js';
4
+ import { element, useSurface } from '../wrappers.js';
5
+ import { Each } from '../elements/each.js';
6
+ import { does } from './select.works.js';
7
7
  export const Select = element('Select', (props, className) => {
8
8
  const surface = useSurface({ className: roleClass(undefined, className),
9
9
  invokes: { ...(props.dispatch === undefined ? {} : { dispatch: props.dispatch }), ...(props.input === undefined ? {} : { input: props.input }), ...(props.invokeOn === undefined ? {} : { on: props.invokeOn }) }, });
@@ -4,6 +4,7 @@ import type { MessageKey } from '../content.tsx'
4
4
  import type { Row } from '../charts.tsx'
5
5
  import { roleClass } from '../fonts.ts'
6
6
 
7
+ import type { Dispatching } from '../checked.ts'
7
8
  import { type Element, element, useSurface } from '../wrappers.tsx'
8
9
  import { Each } from '../elements/each.tsx'
9
10
  import { does } from './select.works.ts'
@@ -14,7 +15,7 @@ export interface SelectProps {
14
15
  readonly options: readonly Row[]
15
16
  readonly value?: string
16
17
  readonly onValue?: (said: string) => void
17
- readonly dispatch?: string
18
+ readonly dispatch?: keyof Dispatching
18
19
  readonly input?: Readonly<Record<string, unknown>>
19
20
  readonly invokeOn?: 'press' | 'shown'
20
21
  }
@@ -1,9 +1,10 @@
1
1
  import type { MessageKey } from '../content.tsx';
2
+ import type { Dispatching } from '../checked.ts';
2
3
  import { type Element } from '../wrappers.tsx';
3
4
  export interface SeparatorProps {
4
5
  readonly labelKey?: MessageKey;
5
6
  readonly orientation?: string;
6
- readonly dispatch?: string;
7
+ readonly dispatch?: keyof Dispatching;
7
8
  readonly input?: Readonly<Record<string, unknown>>;
8
9
  readonly invokeOn?: 'press' | 'shown';
9
10
  }
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
- import { roleClass } from "../fonts.js";
4
- import { element, useSurface } from "../wrappers.js";
3
+ import { roleClass } from '../fonts.js';
4
+ import { element, useSurface } from '../wrappers.js';
5
5
  export const Separator = element('Separator', (props, className) => {
6
6
  const surface = useSurface({ className: roleClass(undefined, className),
7
7
  invokes: { ...(props.dispatch === undefined ? {} : { dispatch: props.dispatch }), ...(props.input === undefined ? {} : { input: props.input }), ...(props.invokeOn === undefined ? {} : { on: props.invokeOn }) }, });
@@ -3,13 +3,14 @@
3
3
  import type { MessageKey } from '../content.tsx'
4
4
  import { roleClass } from '../fonts.ts'
5
5
 
6
+ import type { Dispatching } from '../checked.ts'
6
7
  import { type Element, element, useSurface } from '../wrappers.tsx'
7
8
 
8
9
 
9
10
  export interface SeparatorProps {
10
11
  readonly labelKey?: MessageKey
11
12
  readonly orientation?: string
12
- readonly dispatch?: string
13
+ readonly dispatch?: keyof Dispatching
13
14
  readonly input?: Readonly<Record<string, unknown>>
14
15
  readonly invokeOn?: 'press' | 'shown'
15
16
  }
@@ -1,7 +1,8 @@
1
+ import type { Dispatching } from '../checked.ts';
1
2
  import { type Element } from '../wrappers.tsx';
2
3
  export interface SkeletonProps {
3
4
  readonly lines?: number;
4
- readonly dispatch?: string;
5
+ readonly dispatch?: keyof Dispatching;
5
6
  readonly input?: Readonly<Record<string, unknown>>;
6
7
  readonly invokeOn?: 'press' | 'shown';
7
8
  }
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
- import { roleClass } from "../fonts.js";
4
- import { element, useSurface } from "../wrappers.js";
3
+ import { roleClass } from '../fonts.js';
4
+ import { element, useSurface } from '../wrappers.js';
5
5
  export const Skeleton = element('Skeleton', (props, className) => {
6
6
  const surface = useSurface({ className: roleClass(undefined, className),
7
7
  invokes: { ...(props.dispatch === undefined ? {} : { dispatch: props.dispatch }), ...(props.input === undefined ? {} : { input: props.input }), ...(props.invokeOn === undefined ? {} : { on: props.invokeOn }) }, });
@@ -2,12 +2,13 @@
2
2
 
3
3
  import { roleClass } from '../fonts.ts'
4
4
 
5
+ import type { Dispatching } from '../checked.ts'
5
6
  import { type Element, element, useSurface } from '../wrappers.tsx'
6
7
 
7
8
 
8
9
  export interface SkeletonProps {
9
10
  readonly lines?: number
10
- readonly dispatch?: string
11
+ readonly dispatch?: keyof Dispatching
11
12
  readonly input?: Readonly<Record<string, unknown>>
12
13
  readonly invokeOn?: 'press' | 'shown'
13
14
  }
@@ -1,4 +1,5 @@
1
1
  import type { MessageKey } from '../content.tsx';
2
+ import type { Dispatching } from '../checked.ts';
2
3
  import { type Element } from '../wrappers.tsx';
3
4
  export interface SliderProps {
4
5
  readonly labelKey: MessageKey;
@@ -7,7 +8,7 @@ export interface SliderProps {
7
8
  readonly max?: number;
8
9
  readonly step?: number;
9
10
  readonly onValue?: (said: number) => void;
10
- readonly dispatch?: string;
11
+ readonly dispatch?: keyof Dispatching;
11
12
  readonly input?: Readonly<Record<string, unknown>>;
12
13
  readonly invokeOn?: 'press' | 'shown';
13
14
  }
@@ -1,8 +1,8 @@
1
1
  'use client';
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
- import { roleClass } from "../fonts.js";
4
- import { element, useSurface } from "../wrappers.js";
5
- import { does } from "./slider.works.js";
3
+ import { roleClass } from '../fonts.js';
4
+ import { element, useSurface } from '../wrappers.js';
5
+ import { does } from './slider.works.js';
6
6
  export const Slider = element('Slider', (props, className) => {
7
7
  const surface = useSurface({ className: roleClass(undefined, className),
8
8
  invokes: { ...(props.dispatch === undefined ? {} : { dispatch: props.dispatch }), ...(props.input === undefined ? {} : { input: props.input }), ...(props.invokeOn === undefined ? {} : { on: props.invokeOn }) }, });
@@ -3,6 +3,7 @@
3
3
  import type { MessageKey } from '../content.tsx'
4
4
  import { roleClass } from '../fonts.ts'
5
5
 
6
+ import type { Dispatching } from '../checked.ts'
6
7
  import { type Element, element, useSurface } from '../wrappers.tsx'
7
8
  import { does } from './slider.works.ts'
8
9
 
@@ -14,7 +15,7 @@ export interface SliderProps {
14
15
  readonly max?: number
15
16
  readonly step?: number
16
17
  readonly onValue?: (said: number) => void
17
- readonly dispatch?: string
18
+ readonly dispatch?: keyof Dispatching
18
19
  readonly input?: Readonly<Record<string, unknown>>
19
20
  readonly invokeOn?: 'press' | 'shown'
20
21
  }
@@ -1,9 +1,10 @@
1
1
  import type { Row } from '../charts.tsx';
2
+ import type { Dispatching } from '../checked.ts';
2
3
  import { type Element } from '../wrappers.tsx';
3
4
  export interface SparklineProps {
4
5
  readonly rows: readonly Row[];
5
6
  readonly value: string;
6
- readonly dispatch?: string;
7
+ readonly dispatch?: keyof Dispatching;
7
8
  readonly input?: Readonly<Record<string, unknown>>;
8
9
  readonly invokeOn?: 'press' | 'shown';
9
10
  }
@@ -1,8 +1,8 @@
1
1
  'use client';
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
- import { roleClass } from "../fonts.js";
4
- import { element, useSurface } from "../wrappers.js";
5
- import { drawing, uses } from "./sparkline.works.js";
3
+ import { roleClass } from '../fonts.js';
4
+ import { element, useSurface } from '../wrappers.js';
5
+ import { drawing, uses } from './sparkline.works.js';
6
6
  export const Sparkline = element('Sparkline', (props, className) => {
7
7
  const kept = uses(props);
8
8
  const surface = useSurface({ className: roleClass(undefined, className),
@@ -3,6 +3,7 @@
3
3
  import type { Row } from '../charts.tsx'
4
4
  import { roleClass } from '../fonts.ts'
5
5
 
6
+ import type { Dispatching } from '../checked.ts'
6
7
  import { type Element, element, useSurface } from '../wrappers.tsx'
7
8
  import { drawing, uses } from './sparkline.works.ts'
8
9
 
@@ -10,7 +11,7 @@ import { drawing, uses } from './sparkline.works.ts'
10
11
  export interface SparklineProps {
11
12
  readonly rows: readonly Row[]
12
13
  readonly value: string
13
- readonly dispatch?: string
14
+ readonly dispatch?: keyof Dispatching
14
15
  readonly input?: Readonly<Record<string, unknown>>
15
16
  readonly invokeOn?: 'press' | 'shown'
16
17
  }
@@ -1,4 +1,4 @@
1
- import { num, polyline, useRamp } from "../charts.js";
1
+ import { num, polyline, useRamp } from '../charts.js';
2
2
  const WIDE = 100;
3
3
  const TALL = 24;
4
4
  export function uses(props) {
@@ -1,8 +1,9 @@
1
1
  import type { MessageKey } from '../content.tsx';
2
+ import type { Dispatching } from '../checked.ts';
2
3
  import { type Element } from '../wrappers.tsx';
3
4
  export interface SpinnerProps {
4
5
  readonly labelKey: MessageKey;
5
- readonly dispatch?: string;
6
+ readonly dispatch?: keyof Dispatching;
6
7
  readonly input?: Readonly<Record<string, unknown>>;
7
8
  readonly invokeOn?: 'press' | 'shown';
8
9
  }
@@ -1,7 +1,7 @@
1
1
  'use client';
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
- import { roleClass } from "../fonts.js";
4
- import { element, useSurface } from "../wrappers.js";
3
+ import { roleClass } from '../fonts.js';
4
+ import { element, useSurface } from '../wrappers.js';
5
5
  export const Spinner = element('Spinner', (props, className) => {
6
6
  const surface = useSurface({ className: roleClass(undefined, className),
7
7
  invokes: { ...(props.dispatch === undefined ? {} : { dispatch: props.dispatch }), ...(props.input === undefined ? {} : { input: props.input }), ...(props.invokeOn === undefined ? {} : { on: props.invokeOn }) },
@@ -3,12 +3,13 @@
3
3
  import type { MessageKey } from '../content.tsx'
4
4
  import { roleClass } from '../fonts.ts'
5
5
 
6
+ import type { Dispatching } from '../checked.ts'
6
7
  import { type Element, element, useSurface } from '../wrappers.tsx'
7
8
 
8
9
 
9
10
  export interface SpinnerProps {
10
11
  readonly labelKey: MessageKey
11
- readonly dispatch?: string
12
+ readonly dispatch?: keyof Dispatching
12
13
  readonly input?: Readonly<Record<string, unknown>>
13
14
  readonly invokeOn?: 'press' | 'shown'
14
15
  }
@@ -1,8 +1,9 @@
1
1
  import type { ReactNode } from 'react';
2
+ import type { Dispatching } from '../checked.ts';
2
3
  import { type Element } from '../wrappers.tsx';
3
4
  export interface StackProps {
4
5
  readonly children: ReactNode;
5
- readonly dispatch?: string;
6
+ readonly dispatch?: keyof Dispatching;
6
7
  readonly input?: Readonly<Record<string, unknown>>;
7
8
  readonly invokeOn?: 'press' | 'shown';
8
9
  }
@@ -1,6 +1,6 @@
1
1
  'use client';
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
- import { element, useSurface } from "../wrappers.js";
3
+ import { element, useSurface } from '../wrappers.js';
4
4
  export const Stack = element('Stack', (props, className) => {
5
5
  const surface = useSurface({ className,
6
6
  invokes: { ...(props.dispatch === undefined ? {} : { dispatch: props.dispatch }), ...(props.input === undefined ? {} : { input: props.input }), ...(props.invokeOn === undefined ? {} : { on: props.invokeOn }) }, });
@@ -2,12 +2,13 @@
2
2
 
3
3
  import type { ReactNode } from 'react'
4
4
 
5
+ import type { Dispatching } from '../checked.ts'
5
6
  import { type Element, element, useSurface } from '../wrappers.tsx'
6
7
 
7
8
 
8
9
  export interface StackProps {
9
10
  readonly children: ReactNode
10
- readonly dispatch?: string
11
+ readonly dispatch?: keyof Dispatching
11
12
  readonly input?: Readonly<Record<string, unknown>>
12
13
  readonly invokeOn?: 'press' | 'shown'
13
14
  }
@@ -1,11 +1,12 @@
1
1
  import type { MessageKey } from '../content.tsx';
2
+ import type { Dispatching } from '../checked.ts';
2
3
  import { type Element } from '../wrappers.tsx';
3
4
  export interface StatProps {
4
5
  readonly labelKey: MessageKey;
5
6
  readonly value?: unknown;
6
7
  readonly compare?: number;
7
8
  readonly format?: string;
8
- readonly dispatch?: string;
9
+ readonly dispatch?: keyof Dispatching;
9
10
  readonly input?: Readonly<Record<string, unknown>>;
10
11
  readonly invokeOn?: 'press' | 'shown';
11
12
  }