@alneas/appkit-react 0.2.0 → 0.3.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 (1525) hide show
  1. package/CHANGELOG.md +86 -0
  2. package/README.md +18 -91
  3. package/consumer-ai/SKILL.md +8 -0
  4. package/consumer-ai/api-index.json +1244 -791
  5. package/consumer-ai/package-context.json +11 -11
  6. package/dist/ai/action/use-screen-action.cjs.map +1 -1
  7. package/dist/ai/action/use-screen-action.d.cts +5 -0
  8. package/dist/ai/action/use-screen-action.d.ts +5 -0
  9. package/dist/ai/action/use-screen-action.js.map +1 -1
  10. package/dist/ai/action/use-screen-context.cjs.map +1 -1
  11. package/dist/ai/action/use-screen-context.d.cts +6 -0
  12. package/dist/ai/action/use-screen-context.d.ts +6 -0
  13. package/dist/ai/action/use-screen-context.js.map +1 -1
  14. package/dist/ai/generative-ui/GenerativeUIRenderer.cjs.map +1 -1
  15. package/dist/ai/generative-ui/GenerativeUIRenderer.d.cts +5 -5
  16. package/dist/ai/generative-ui/GenerativeUIRenderer.d.ts +5 -5
  17. package/dist/ai/generative-ui/GenerativeUIRenderer.js.map +1 -1
  18. package/dist/ai/proposal/use-proposal-batch-review.cjs.map +1 -1
  19. package/dist/ai/proposal/use-proposal-batch-review.d.cts +4 -0
  20. package/dist/ai/proposal/use-proposal-batch-review.d.ts +4 -0
  21. package/dist/ai/proposal/use-proposal-batch-review.js.map +1 -1
  22. package/dist/consumer-ai/SKILL.md +8 -0
  23. package/dist/consumer-ai/api-index.json +1244 -791
  24. package/dist/consumer-ai/package-context.json +11 -11
  25. package/dist/mockServiceWorker.js +185 -86
  26. package/dist/styles.css +1 -1
  27. package/dist/tools/components/data-table/column-order.cjs +2 -0
  28. package/dist/tools/components/data-table/column-order.cjs.map +1 -0
  29. package/dist/tools/components/data-table/column-order.d.cts +11 -0
  30. package/dist/tools/components/data-table/column-order.d.ts +11 -0
  31. package/dist/tools/components/data-table/column-order.js +18 -0
  32. package/dist/tools/components/data-table/column-order.js.map +1 -0
  33. package/dist/tools/components/data-table/data-table.cjs +1 -1
  34. package/dist/tools/components/data-table/data-table.cjs.map +1 -1
  35. package/dist/tools/components/data-table/data-table.d.cts +18 -28
  36. package/dist/tools/components/data-table/data-table.d.ts +18 -28
  37. package/dist/tools/components/data-table/data-table.js +294 -263
  38. package/dist/tools/components/data-table/data-table.js.map +1 -1
  39. package/dist/tools/components/file-browser/FileBrowser.cjs +1 -1
  40. package/dist/tools/components/file-browser/FileBrowser.cjs.map +1 -1
  41. package/dist/tools/components/file-browser/FileBrowser.d.cts +17 -4
  42. package/dist/tools/components/file-browser/FileBrowser.d.ts +17 -4
  43. package/dist/tools/components/file-browser/FileBrowser.js +124 -90
  44. package/dist/tools/components/file-browser/FileBrowser.js.map +1 -1
  45. package/dist/tools/components/file-browser/FileGridView.cjs +1 -1
  46. package/dist/tools/components/file-browser/FileGridView.cjs.map +1 -1
  47. package/dist/tools/components/file-browser/FileGridView.d.cts +16 -1
  48. package/dist/tools/components/file-browser/FileGridView.d.ts +16 -1
  49. package/dist/tools/components/file-browser/FileGridView.js +27 -16
  50. package/dist/tools/components/file-browser/FileGridView.js.map +1 -1
  51. package/dist/tools/components/file-browser/FileListView.cjs +1 -1
  52. package/dist/tools/components/file-browser/FileListView.cjs.map +1 -1
  53. package/dist/tools/components/file-browser/FileListView.d.cts +16 -1
  54. package/dist/tools/components/file-browser/FileListView.d.ts +16 -1
  55. package/dist/tools/components/file-browser/FileListView.js +7 -9
  56. package/dist/tools/components/file-browser/FileListView.js.map +1 -1
  57. package/dist/tools/components/file-browser/file-drop.cjs +2 -0
  58. package/dist/tools/components/file-browser/file-drop.cjs.map +1 -0
  59. package/dist/tools/components/file-browser/file-drop.d.cts +20 -0
  60. package/dist/tools/components/file-browser/file-drop.d.ts +20 -0
  61. package/dist/tools/components/file-browser/file-drop.js +17 -0
  62. package/dist/tools/components/file-browser/file-drop.js.map +1 -0
  63. package/dist/tools/components/filter/use-filter.cjs +1 -1
  64. package/dist/tools/components/filter/use-filter.cjs.map +1 -1
  65. package/dist/tools/components/filter/use-filter.d.cts +3 -0
  66. package/dist/tools/components/filter/use-filter.d.ts +3 -0
  67. package/dist/tools/components/filter/use-filter.js +28 -30
  68. package/dist/tools/components/filter/use-filter.js.map +1 -1
  69. package/dist/tools/components/form/form-action-bar.cjs +1 -1
  70. package/dist/tools/components/form/form-action-bar.cjs.map +1 -1
  71. package/dist/tools/components/form/form-action-bar.d.cts +4 -1
  72. package/dist/tools/components/form/form-action-bar.d.ts +4 -1
  73. package/dist/tools/components/form/form-action-bar.js +29 -28
  74. package/dist/tools/components/form/form-action-bar.js.map +1 -1
  75. package/dist/tools/components/form/form-container.cjs +1 -1
  76. package/dist/tools/components/form/form-container.cjs.map +1 -1
  77. package/dist/tools/components/form/form-container.d.cts +4 -1
  78. package/dist/tools/components/form/form-container.d.ts +4 -1
  79. package/dist/tools/components/form/form-container.js +13 -10
  80. package/dist/tools/components/form/form-container.js.map +1 -1
  81. package/dist/tools/components/form/form-grid.cjs +1 -1
  82. package/dist/tools/components/form/form-grid.cjs.map +1 -1
  83. package/dist/tools/components/form/form-grid.d.cts +8 -2
  84. package/dist/tools/components/form/form-grid.d.ts +8 -2
  85. package/dist/tools/components/form/form-grid.js +24 -19
  86. package/dist/tools/components/form/form-grid.js.map +1 -1
  87. package/dist/tools/components/kanban/KanbanBoard.cjs +1 -1
  88. package/dist/tools/components/kanban/KanbanBoard.cjs.map +1 -1
  89. package/dist/tools/components/kanban/KanbanBoard.d.cts +4 -1
  90. package/dist/tools/components/kanban/KanbanBoard.d.ts +4 -1
  91. package/dist/tools/components/kanban/KanbanBoard.js +29 -28
  92. package/dist/tools/components/kanban/KanbanBoard.js.map +1 -1
  93. package/dist/tools/components/kanban/KanbanCard.cjs +1 -1
  94. package/dist/tools/components/kanban/KanbanCard.cjs.map +1 -1
  95. package/dist/tools/components/kanban/KanbanCard.d.cts +4 -1
  96. package/dist/tools/components/kanban/KanbanCard.d.ts +4 -1
  97. package/dist/tools/components/kanban/KanbanCard.js +16 -14
  98. package/dist/tools/components/kanban/KanbanCard.js.map +1 -1
  99. package/dist/tools/components/kanban/KanbanCardView.cjs +1 -1
  100. package/dist/tools/components/kanban/KanbanCardView.cjs.map +1 -1
  101. package/dist/tools/components/kanban/KanbanCardView.d.cts +4 -1
  102. package/dist/tools/components/kanban/KanbanCardView.d.ts +4 -1
  103. package/dist/tools/components/kanban/KanbanCardView.js +35 -34
  104. package/dist/tools/components/kanban/KanbanCardView.js.map +1 -1
  105. package/dist/tools/components/kanban/KanbanColumn.cjs +1 -1
  106. package/dist/tools/components/kanban/KanbanColumn.cjs.map +1 -1
  107. package/dist/tools/components/kanban/KanbanColumn.d.cts +23 -2
  108. package/dist/tools/components/kanban/KanbanColumn.d.ts +23 -2
  109. package/dist/tools/components/kanban/KanbanColumn.js +28 -33
  110. package/dist/tools/components/kanban/KanbanColumn.js.map +1 -1
  111. package/dist/tools/components/kanban/kanban-compound.cjs +1 -1
  112. package/dist/tools/components/kanban/kanban-compound.cjs.map +1 -1
  113. package/dist/tools/components/kanban/kanban-compound.js +43 -48
  114. package/dist/tools/components/kanban/kanban-compound.js.map +1 -1
  115. package/dist/tools/components/kanban/kanban-drag.cjs.map +1 -1
  116. package/dist/tools/components/kanban/kanban-drag.d.cts +26 -4
  117. package/dist/tools/components/kanban/kanban-drag.d.ts +26 -4
  118. package/dist/tools/components/kanban/kanban-drag.js.map +1 -1
  119. package/dist/tools/components/kanban/kanban-events.cjs +2 -0
  120. package/dist/tools/components/kanban/kanban-events.cjs.map +1 -0
  121. package/dist/tools/components/kanban/kanban-events.d.cts +19 -0
  122. package/dist/tools/components/kanban/kanban-events.d.ts +19 -0
  123. package/dist/tools/components/kanban/kanban-events.js +17 -0
  124. package/dist/tools/components/kanban/kanban-events.js.map +1 -0
  125. package/dist/tools/components/kanban/kanban-primitives.cjs +1 -1
  126. package/dist/tools/components/kanban/kanban-primitives.cjs.map +1 -1
  127. package/dist/tools/components/kanban/kanban-primitives.d.cts +71 -4
  128. package/dist/tools/components/kanban/kanban-primitives.d.ts +71 -4
  129. package/dist/tools/components/kanban/kanban-primitives.js +71 -48
  130. package/dist/tools/components/kanban/kanban-primitives.js.map +1 -1
  131. package/dist/tools/components/kanban/use-kanban-drag.cjs +1 -1
  132. package/dist/tools/components/kanban/use-kanban-drag.cjs.map +1 -1
  133. package/dist/tools/components/kanban/use-kanban-drag.d.cts +34 -17
  134. package/dist/tools/components/kanban/use-kanban-drag.d.ts +34 -17
  135. package/dist/tools/components/kanban/use-kanban-drag.js +20 -22
  136. package/dist/tools/components/kanban/use-kanban-drag.js.map +1 -1
  137. package/dist/tools/components/kanban/use-kanban-sensors.cjs +1 -1
  138. package/dist/tools/components/kanban/use-kanban-sensors.cjs.map +1 -1
  139. package/dist/tools/components/kanban/use-kanban-sensors.d.cts +21 -2
  140. package/dist/tools/components/kanban/use-kanban-sensors.d.ts +21 -2
  141. package/dist/tools/components/kanban/use-kanban-sensors.js +41 -26
  142. package/dist/tools/components/kanban/use-kanban-sensors.js.map +1 -1
  143. package/dist/tools/components/pane/SearchAndCreatePane.cjs.map +1 -1
  144. package/dist/tools/components/pane/SearchAndCreatePane.d.cts +5 -0
  145. package/dist/tools/components/pane/SearchAndCreatePane.d.ts +5 -0
  146. package/dist/tools/components/pane/SearchAndCreatePane.js.map +1 -1
  147. package/dist/tools/components/priority-queue/PriorityCard.cjs +1 -1
  148. package/dist/tools/components/priority-queue/PriorityCard.cjs.map +1 -1
  149. package/dist/tools/components/priority-queue/PriorityCard.d.cts +4 -1
  150. package/dist/tools/components/priority-queue/PriorityCard.d.ts +4 -1
  151. package/dist/tools/components/priority-queue/PriorityCard.js +35 -35
  152. package/dist/tools/components/priority-queue/PriorityCard.js.map +1 -1
  153. package/dist/tools/components/priority-queue/PriorityQueue.cjs +1 -1
  154. package/dist/tools/components/priority-queue/PriorityQueue.cjs.map +1 -1
  155. package/dist/tools/components/priority-queue/PriorityQueue.d.cts +4 -1
  156. package/dist/tools/components/priority-queue/PriorityQueue.d.ts +4 -1
  157. package/dist/tools/components/priority-queue/PriorityQueue.js +20 -20
  158. package/dist/tools/components/priority-queue/PriorityQueue.js.map +1 -1
  159. package/dist/tools/components/sidebar/sidebar-compound.d.cts +2 -1
  160. package/dist/tools/components/sidebar/sidebar-compound.d.ts +2 -1
  161. package/dist/tools/components/ui/chart.cjs +2 -2
  162. package/dist/tools/components/ui/chart.cjs.map +1 -1
  163. package/dist/tools/components/ui/chart.d.cts +15 -6
  164. package/dist/tools/components/ui/chart.d.ts +15 -6
  165. package/dist/tools/components/ui/chart.js +42 -40
  166. package/dist/tools/components/ui/chart.js.map +1 -1
  167. package/dist/tools/components/ui/dnd/DnDProvider.cjs +1 -1
  168. package/dist/tools/components/ui/dnd/DnDProvider.cjs.map +1 -1
  169. package/dist/tools/components/ui/dnd/DnDProvider.d.cts +27 -11
  170. package/dist/tools/components/ui/dnd/DnDProvider.d.ts +27 -11
  171. package/dist/tools/components/ui/dnd/DnDProvider.js +15 -12
  172. package/dist/tools/components/ui/dnd/DnDProvider.js.map +1 -1
  173. package/dist/tools/components/ui/dnd/Draggable.cjs +1 -1
  174. package/dist/tools/components/ui/dnd/Draggable.cjs.map +1 -1
  175. package/dist/tools/components/ui/dnd/Draggable.d.cts +32 -11
  176. package/dist/tools/components/ui/dnd/Draggable.d.ts +32 -11
  177. package/dist/tools/components/ui/dnd/Draggable.js +13 -16
  178. package/dist/tools/components/ui/dnd/Draggable.js.map +1 -1
  179. package/dist/tools/components/ui/dnd/Droppable.cjs +1 -1
  180. package/dist/tools/components/ui/dnd/Droppable.cjs.map +1 -1
  181. package/dist/tools/components/ui/dnd/Droppable.d.cts +30 -10
  182. package/dist/tools/components/ui/dnd/Droppable.d.ts +30 -10
  183. package/dist/tools/components/ui/dnd/Droppable.js +12 -11
  184. package/dist/tools/components/ui/dnd/Droppable.js.map +1 -1
  185. package/dist/tools/components/ui/dnd/use-accessible-drag-ref.cjs +2 -0
  186. package/dist/tools/components/ui/dnd/use-accessible-drag-ref.cjs.map +1 -0
  187. package/dist/tools/components/ui/dnd/use-accessible-drag-ref.d.cts +8 -0
  188. package/dist/tools/components/ui/dnd/use-accessible-drag-ref.d.ts +8 -0
  189. package/dist/tools/components/ui/dnd/use-accessible-drag-ref.js +27 -0
  190. package/dist/tools/components/ui/dnd/use-accessible-drag-ref.js.map +1 -0
  191. package/dist/tools/components/ui/field.cjs +1 -1
  192. package/dist/tools/components/ui/field.cjs.map +1 -1
  193. package/dist/tools/components/ui/field.d.cts +4 -1
  194. package/dist/tools/components/ui/field.d.ts +4 -1
  195. package/dist/tools/components/ui/field.js +48 -47
  196. package/dist/tools/components/ui/field.js.map +1 -1
  197. package/dist/tools/components/ui/form-helpers.d.cts +5 -14
  198. package/dist/tools/components/ui/form-helpers.d.ts +5 -14
  199. package/dist/tools/paraglide/messages/auth_alreadyhaveaccount2.cjs +1 -1
  200. package/dist/tools/paraglide/messages/auth_alreadyhaveaccount2.cjs.map +1 -1
  201. package/dist/tools/paraglide/messages/auth_alreadyhaveaccount2.d.cts +2 -0
  202. package/dist/tools/paraglide/messages/auth_alreadyhaveaccount2.d.ts +2 -0
  203. package/dist/tools/paraglide/messages/auth_alreadyhaveaccount2.js +4 -4
  204. package/dist/tools/paraglide/messages/auth_alreadyhaveaccount2.js.map +1 -1
  205. package/dist/tools/paraglide/messages/auth_donthaveaccount2.cjs +1 -1
  206. package/dist/tools/paraglide/messages/auth_donthaveaccount2.cjs.map +1 -1
  207. package/dist/tools/paraglide/messages/auth_donthaveaccount2.d.cts +2 -0
  208. package/dist/tools/paraglide/messages/auth_donthaveaccount2.d.ts +2 -0
  209. package/dist/tools/paraglide/messages/auth_donthaveaccount2.js +4 -4
  210. package/dist/tools/paraglide/messages/auth_donthaveaccount2.js.map +1 -1
  211. package/dist/tools/paraglide/messages/auth_email.cjs +1 -1
  212. package/dist/tools/paraglide/messages/auth_email.cjs.map +1 -1
  213. package/dist/tools/paraglide/messages/auth_email.d.cts +2 -0
  214. package/dist/tools/paraglide/messages/auth_email.d.ts +2 -0
  215. package/dist/tools/paraglide/messages/auth_email.js +4 -4
  216. package/dist/tools/paraglide/messages/auth_email.js.map +1 -1
  217. package/dist/tools/paraglide/messages/auth_emailplaceholder1.cjs +1 -1
  218. package/dist/tools/paraglide/messages/auth_emailplaceholder1.cjs.map +1 -1
  219. package/dist/tools/paraglide/messages/auth_emailplaceholder1.d.cts +2 -0
  220. package/dist/tools/paraglide/messages/auth_emailplaceholder1.d.ts +2 -0
  221. package/dist/tools/paraglide/messages/auth_emailplaceholder1.js +2 -5
  222. package/dist/tools/paraglide/messages/auth_emailplaceholder1.js.map +1 -1
  223. package/dist/tools/paraglide/messages/auth_failedtologin2.cjs +1 -1
  224. package/dist/tools/paraglide/messages/auth_failedtologin2.cjs.map +1 -1
  225. package/dist/tools/paraglide/messages/auth_failedtologin2.d.cts +2 -0
  226. package/dist/tools/paraglide/messages/auth_failedtologin2.d.ts +2 -0
  227. package/dist/tools/paraglide/messages/auth_failedtologin2.js +4 -4
  228. package/dist/tools/paraglide/messages/auth_failedtologin2.js.map +1 -1
  229. package/dist/tools/paraglide/messages/auth_failedtoregister2.cjs +1 -1
  230. package/dist/tools/paraglide/messages/auth_failedtoregister2.cjs.map +1 -1
  231. package/dist/tools/paraglide/messages/auth_failedtoregister2.d.cts +2 -0
  232. package/dist/tools/paraglide/messages/auth_failedtoregister2.d.ts +2 -0
  233. package/dist/tools/paraglide/messages/auth_failedtoregister2.js +4 -4
  234. package/dist/tools/paraglide/messages/auth_failedtoregister2.js.map +1 -1
  235. package/dist/tools/paraglide/messages/auth_loggingin1.cjs +1 -1
  236. package/dist/tools/paraglide/messages/auth_loggingin1.cjs.map +1 -1
  237. package/dist/tools/paraglide/messages/auth_loggingin1.d.cts +2 -0
  238. package/dist/tools/paraglide/messages/auth_loggingin1.d.ts +2 -0
  239. package/dist/tools/paraglide/messages/auth_loggingin1.js +4 -4
  240. package/dist/tools/paraglide/messages/auth_loggingin1.js.map +1 -1
  241. package/dist/tools/paraglide/messages/auth_loginwithapple2.cjs +1 -1
  242. package/dist/tools/paraglide/messages/auth_loginwithapple2.cjs.map +1 -1
  243. package/dist/tools/paraglide/messages/auth_loginwithapple2.d.cts +2 -0
  244. package/dist/tools/paraglide/messages/auth_loginwithapple2.d.ts +2 -0
  245. package/dist/tools/paraglide/messages/auth_loginwithapple2.js +4 -4
  246. package/dist/tools/paraglide/messages/auth_loginwithapple2.js.map +1 -1
  247. package/dist/tools/paraglide/messages/auth_loginwithgoogle2.cjs +1 -1
  248. package/dist/tools/paraglide/messages/auth_loginwithgoogle2.cjs.map +1 -1
  249. package/dist/tools/paraglide/messages/auth_loginwithgoogle2.d.cts +2 -0
  250. package/dist/tools/paraglide/messages/auth_loginwithgoogle2.d.ts +2 -0
  251. package/dist/tools/paraglide/messages/auth_loginwithgoogle2.js +4 -4
  252. package/dist/tools/paraglide/messages/auth_loginwithgoogle2.js.map +1 -1
  253. package/dist/tools/paraglide/messages/auth_name.cjs +1 -1
  254. package/dist/tools/paraglide/messages/auth_name.cjs.map +1 -1
  255. package/dist/tools/paraglide/messages/auth_name.d.cts +2 -0
  256. package/dist/tools/paraglide/messages/auth_name.d.ts +2 -0
  257. package/dist/tools/paraglide/messages/auth_name.js +4 -4
  258. package/dist/tools/paraglide/messages/auth_name.js.map +1 -1
  259. package/dist/tools/paraglide/messages/auth_nameplaceholder1.cjs +1 -1
  260. package/dist/tools/paraglide/messages/auth_nameplaceholder1.cjs.map +1 -1
  261. package/dist/tools/paraglide/messages/auth_nameplaceholder1.d.cts +2 -0
  262. package/dist/tools/paraglide/messages/auth_nameplaceholder1.d.ts +2 -0
  263. package/dist/tools/paraglide/messages/auth_nameplaceholder1.js +4 -4
  264. package/dist/tools/paraglide/messages/auth_nameplaceholder1.js.map +1 -1
  265. package/dist/tools/paraglide/messages/auth_orcontinuewith2.cjs +1 -1
  266. package/dist/tools/paraglide/messages/auth_orcontinuewith2.cjs.map +1 -1
  267. package/dist/tools/paraglide/messages/auth_orcontinuewith2.d.cts +2 -0
  268. package/dist/tools/paraglide/messages/auth_orcontinuewith2.d.ts +2 -0
  269. package/dist/tools/paraglide/messages/auth_orcontinuewith2.js +4 -4
  270. package/dist/tools/paraglide/messages/auth_orcontinuewith2.js.map +1 -1
  271. package/dist/tools/paraglide/messages/auth_password.cjs +1 -1
  272. package/dist/tools/paraglide/messages/auth_password.cjs.map +1 -1
  273. package/dist/tools/paraglide/messages/auth_password.d.cts +2 -0
  274. package/dist/tools/paraglide/messages/auth_password.d.ts +2 -0
  275. package/dist/tools/paraglide/messages/auth_password.js +4 -4
  276. package/dist/tools/paraglide/messages/auth_password.js.map +1 -1
  277. package/dist/tools/paraglide/messages/auth_registering.cjs +1 -1
  278. package/dist/tools/paraglide/messages/auth_registering.cjs.map +1 -1
  279. package/dist/tools/paraglide/messages/auth_registering.d.cts +2 -0
  280. package/dist/tools/paraglide/messages/auth_registering.d.ts +2 -0
  281. package/dist/tools/paraglide/messages/auth_registering.js +4 -4
  282. package/dist/tools/paraglide/messages/auth_registering.js.map +1 -1
  283. package/dist/tools/paraglide/messages/auth_socialloginfailed2.cjs +1 -1
  284. package/dist/tools/paraglide/messages/auth_socialloginfailed2.cjs.map +1 -1
  285. package/dist/tools/paraglide/messages/auth_socialloginfailed2.d.cts +2 -0
  286. package/dist/tools/paraglide/messages/auth_socialloginfailed2.d.ts +2 -0
  287. package/dist/tools/paraglide/messages/auth_socialloginfailed2.js +4 -4
  288. package/dist/tools/paraglide/messages/auth_socialloginfailed2.js.map +1 -1
  289. package/dist/tools/paraglide/messages/auth_validation_invalidemail1.cjs +1 -1
  290. package/dist/tools/paraglide/messages/auth_validation_invalidemail1.cjs.map +1 -1
  291. package/dist/tools/paraglide/messages/auth_validation_invalidemail1.d.cts +2 -0
  292. package/dist/tools/paraglide/messages/auth_validation_invalidemail1.d.ts +2 -0
  293. package/dist/tools/paraglide/messages/auth_validation_invalidemail1.js +4 -4
  294. package/dist/tools/paraglide/messages/auth_validation_invalidemail1.js.map +1 -1
  295. package/dist/tools/paraglide/messages/auth_validation_invalidnumber1.cjs +1 -1
  296. package/dist/tools/paraglide/messages/auth_validation_invalidnumber1.cjs.map +1 -1
  297. package/dist/tools/paraglide/messages/auth_validation_invalidnumber1.d.cts +2 -0
  298. package/dist/tools/paraglide/messages/auth_validation_invalidnumber1.d.ts +2 -0
  299. package/dist/tools/paraglide/messages/auth_validation_invalidnumber1.js +4 -4
  300. package/dist/tools/paraglide/messages/auth_validation_invalidnumber1.js.map +1 -1
  301. package/dist/tools/paraglide/messages/auth_validation_passwordlength1.cjs +1 -1
  302. package/dist/tools/paraglide/messages/auth_validation_passwordlength1.cjs.map +1 -1
  303. package/dist/tools/paraglide/messages/auth_validation_passwordlength1.d.cts +2 -0
  304. package/dist/tools/paraglide/messages/auth_validation_passwordlength1.d.ts +2 -0
  305. package/dist/tools/paraglide/messages/auth_validation_passwordlength1.js +4 -4
  306. package/dist/tools/paraglide/messages/auth_validation_passwordlength1.js.map +1 -1
  307. package/dist/tools/paraglide/messages/auth_validation_required.cjs +1 -1
  308. package/dist/tools/paraglide/messages/auth_validation_required.cjs.map +1 -1
  309. package/dist/tools/paraglide/messages/auth_validation_required.d.cts +2 -0
  310. package/dist/tools/paraglide/messages/auth_validation_required.d.ts +2 -0
  311. package/dist/tools/paraglide/messages/auth_validation_required.js +4 -4
  312. package/dist/tools/paraglide/messages/auth_validation_required.js.map +1 -1
  313. package/dist/tools/paraglide/messages/calendar_day.cjs +1 -1
  314. package/dist/tools/paraglide/messages/calendar_day.cjs.map +1 -1
  315. package/dist/tools/paraglide/messages/calendar_day.d.cts +2 -0
  316. package/dist/tools/paraglide/messages/calendar_day.d.ts +2 -0
  317. package/dist/tools/paraglide/messages/calendar_day.js +2 -5
  318. package/dist/tools/paraglide/messages/calendar_day.js.map +1 -1
  319. package/dist/tools/paraglide/messages/calendar_month.cjs +1 -1
  320. package/dist/tools/paraglide/messages/calendar_month.cjs.map +1 -1
  321. package/dist/tools/paraglide/messages/calendar_month.d.cts +2 -0
  322. package/dist/tools/paraglide/messages/calendar_month.d.ts +2 -0
  323. package/dist/tools/paraglide/messages/calendar_month.js +2 -5
  324. package/dist/tools/paraglide/messages/calendar_month.js.map +1 -1
  325. package/dist/tools/paraglide/messages/calendar_resources.cjs +1 -1
  326. package/dist/tools/paraglide/messages/calendar_resources.cjs.map +1 -1
  327. package/dist/tools/paraglide/messages/calendar_resources.d.cts +2 -0
  328. package/dist/tools/paraglide/messages/calendar_resources.d.ts +2 -0
  329. package/dist/tools/paraglide/messages/calendar_resources.js +4 -4
  330. package/dist/tools/paraglide/messages/calendar_resources.js.map +1 -1
  331. package/dist/tools/paraglide/messages/calendar_today.cjs +1 -1
  332. package/dist/tools/paraglide/messages/calendar_today.cjs.map +1 -1
  333. package/dist/tools/paraglide/messages/calendar_today.d.cts +2 -0
  334. package/dist/tools/paraglide/messages/calendar_today.d.ts +2 -0
  335. package/dist/tools/paraglide/messages/calendar_today.js +4 -4
  336. package/dist/tools/paraglide/messages/calendar_today.js.map +1 -1
  337. package/dist/tools/paraglide/messages/calendar_view_agenda.cjs +1 -1
  338. package/dist/tools/paraglide/messages/calendar_view_agenda.cjs.map +1 -1
  339. package/dist/tools/paraglide/messages/calendar_view_agenda.d.cts +2 -0
  340. package/dist/tools/paraglide/messages/calendar_view_agenda.d.ts +2 -0
  341. package/dist/tools/paraglide/messages/calendar_view_agenda.js +4 -4
  342. package/dist/tools/paraglide/messages/calendar_view_agenda.js.map +1 -1
  343. package/dist/tools/paraglide/messages/calendar_view_comingsoon1.cjs +1 -1
  344. package/dist/tools/paraglide/messages/calendar_view_comingsoon1.cjs.map +1 -1
  345. package/dist/tools/paraglide/messages/calendar_view_comingsoon1.d.cts +2 -0
  346. package/dist/tools/paraglide/messages/calendar_view_comingsoon1.d.ts +2 -0
  347. package/dist/tools/paraglide/messages/calendar_view_comingsoon1.js +4 -4
  348. package/dist/tools/paraglide/messages/calendar_view_comingsoon1.js.map +1 -1
  349. package/dist/tools/paraglide/messages/calendar_view_day.cjs +1 -1
  350. package/dist/tools/paraglide/messages/calendar_view_day.cjs.map +1 -1
  351. package/dist/tools/paraglide/messages/calendar_view_day.d.cts +2 -0
  352. package/dist/tools/paraglide/messages/calendar_view_day.d.ts +2 -0
  353. package/dist/tools/paraglide/messages/calendar_view_day.js +4 -4
  354. package/dist/tools/paraglide/messages/calendar_view_day.js.map +1 -1
  355. package/dist/tools/paraglide/messages/calendar_view_grid.cjs +1 -1
  356. package/dist/tools/paraglide/messages/calendar_view_grid.cjs.map +1 -1
  357. package/dist/tools/paraglide/messages/calendar_view_grid.d.cts +2 -0
  358. package/dist/tools/paraglide/messages/calendar_view_grid.d.ts +2 -0
  359. package/dist/tools/paraglide/messages/calendar_view_grid.js +4 -4
  360. package/dist/tools/paraglide/messages/calendar_view_grid.js.map +1 -1
  361. package/dist/tools/paraglide/messages/calendar_view_month.cjs +1 -1
  362. package/dist/tools/paraglide/messages/calendar_view_month.cjs.map +1 -1
  363. package/dist/tools/paraglide/messages/calendar_view_month.d.cts +2 -0
  364. package/dist/tools/paraglide/messages/calendar_view_month.d.ts +2 -0
  365. package/dist/tools/paraglide/messages/calendar_view_month.js +2 -5
  366. package/dist/tools/paraglide/messages/calendar_view_month.js.map +1 -1
  367. package/dist/tools/paraglide/messages/calendar_view_resource.cjs +1 -1
  368. package/dist/tools/paraglide/messages/calendar_view_resource.cjs.map +1 -1
  369. package/dist/tools/paraglide/messages/calendar_view_resource.d.cts +2 -0
  370. package/dist/tools/paraglide/messages/calendar_view_resource.d.ts +2 -0
  371. package/dist/tools/paraglide/messages/calendar_view_resource.js +4 -4
  372. package/dist/tools/paraglide/messages/calendar_view_resource.js.map +1 -1
  373. package/dist/tools/paraglide/messages/calendar_view_timeline.cjs +1 -1
  374. package/dist/tools/paraglide/messages/calendar_view_timeline.cjs.map +1 -1
  375. package/dist/tools/paraglide/messages/calendar_view_timeline.d.cts +2 -0
  376. package/dist/tools/paraglide/messages/calendar_view_timeline.d.ts +2 -0
  377. package/dist/tools/paraglide/messages/calendar_view_timeline.js +4 -4
  378. package/dist/tools/paraglide/messages/calendar_view_timeline.js.map +1 -1
  379. package/dist/tools/paraglide/messages/calendar_view_week.cjs +1 -1
  380. package/dist/tools/paraglide/messages/calendar_view_week.cjs.map +1 -1
  381. package/dist/tools/paraglide/messages/calendar_view_week.d.cts +2 -0
  382. package/dist/tools/paraglide/messages/calendar_view_week.d.ts +2 -0
  383. package/dist/tools/paraglide/messages/calendar_view_week.js +4 -4
  384. package/dist/tools/paraglide/messages/calendar_view_week.js.map +1 -1
  385. package/dist/tools/paraglide/messages/calendar_week.cjs +1 -1
  386. package/dist/tools/paraglide/messages/calendar_week.cjs.map +1 -1
  387. package/dist/tools/paraglide/messages/calendar_week.d.cts +2 -0
  388. package/dist/tools/paraglide/messages/calendar_week.d.ts +2 -0
  389. package/dist/tools/paraglide/messages/calendar_week.js +4 -4
  390. package/dist/tools/paraglide/messages/calendar_week.js.map +1 -1
  391. package/dist/tools/paraglide/messages/calendar_year.cjs +1 -1
  392. package/dist/tools/paraglide/messages/calendar_year.cjs.map +1 -1
  393. package/dist/tools/paraglide/messages/calendar_year.d.cts +2 -0
  394. package/dist/tools/paraglide/messages/calendar_year.d.ts +2 -0
  395. package/dist/tools/paraglide/messages/calendar_year.js +2 -5
  396. package/dist/tools/paraglide/messages/calendar_year.js.map +1 -1
  397. package/dist/tools/paraglide/messages/common_actions_back.cjs +1 -1
  398. package/dist/tools/paraglide/messages/common_actions_back.cjs.map +1 -1
  399. package/dist/tools/paraglide/messages/common_actions_back.d.cts +2 -0
  400. package/dist/tools/paraglide/messages/common_actions_back.d.ts +2 -0
  401. package/dist/tools/paraglide/messages/common_actions_back.js +4 -4
  402. package/dist/tools/paraglide/messages/common_actions_back.js.map +1 -1
  403. package/dist/tools/paraglide/messages/common_actions_cancel.cjs +1 -1
  404. package/dist/tools/paraglide/messages/common_actions_cancel.cjs.map +1 -1
  405. package/dist/tools/paraglide/messages/common_actions_cancel.d.cts +2 -0
  406. package/dist/tools/paraglide/messages/common_actions_cancel.d.ts +2 -0
  407. package/dist/tools/paraglide/messages/common_actions_cancel.js +4 -4
  408. package/dist/tools/paraglide/messages/common_actions_cancel.js.map +1 -1
  409. package/dist/tools/paraglide/messages/common_actions_create.cjs +1 -1
  410. package/dist/tools/paraglide/messages/common_actions_create.cjs.map +1 -1
  411. package/dist/tools/paraglide/messages/common_actions_create.d.cts +2 -0
  412. package/dist/tools/paraglide/messages/common_actions_create.d.ts +2 -0
  413. package/dist/tools/paraglide/messages/common_actions_create.js +4 -4
  414. package/dist/tools/paraglide/messages/common_actions_create.js.map +1 -1
  415. package/dist/tools/paraglide/messages/common_actions_delete.cjs +1 -1
  416. package/dist/tools/paraglide/messages/common_actions_delete.cjs.map +1 -1
  417. package/dist/tools/paraglide/messages/common_actions_delete.d.cts +2 -0
  418. package/dist/tools/paraglide/messages/common_actions_delete.d.ts +2 -0
  419. package/dist/tools/paraglide/messages/common_actions_delete.js +4 -4
  420. package/dist/tools/paraglide/messages/common_actions_delete.js.map +1 -1
  421. package/dist/tools/paraglide/messages/common_actions_download.cjs +1 -1
  422. package/dist/tools/paraglide/messages/common_actions_download.cjs.map +1 -1
  423. package/dist/tools/paraglide/messages/common_actions_download.d.cts +2 -0
  424. package/dist/tools/paraglide/messages/common_actions_download.d.ts +2 -0
  425. package/dist/tools/paraglide/messages/common_actions_download.js +4 -4
  426. package/dist/tools/paraglide/messages/common_actions_download.js.map +1 -1
  427. package/dist/tools/paraglide/messages/common_actions_edit.cjs +1 -1
  428. package/dist/tools/paraglide/messages/common_actions_edit.cjs.map +1 -1
  429. package/dist/tools/paraglide/messages/common_actions_edit.d.cts +2 -0
  430. package/dist/tools/paraglide/messages/common_actions_edit.d.ts +2 -0
  431. package/dist/tools/paraglide/messages/common_actions_edit.js +4 -4
  432. package/dist/tools/paraglide/messages/common_actions_edit.js.map +1 -1
  433. package/dist/tools/paraglide/messages/common_actions_home.cjs +1 -1
  434. package/dist/tools/paraglide/messages/common_actions_home.cjs.map +1 -1
  435. package/dist/tools/paraglide/messages/common_actions_home.d.cts +2 -0
  436. package/dist/tools/paraglide/messages/common_actions_home.d.ts +2 -0
  437. package/dist/tools/paraglide/messages/common_actions_home.js +4 -4
  438. package/dist/tools/paraglide/messages/common_actions_home.js.map +1 -1
  439. package/dist/tools/paraglide/messages/common_actions_next.cjs +1 -1
  440. package/dist/tools/paraglide/messages/common_actions_next.cjs.map +1 -1
  441. package/dist/tools/paraglide/messages/common_actions_next.d.cts +2 -0
  442. package/dist/tools/paraglide/messages/common_actions_next.d.ts +2 -0
  443. package/dist/tools/paraglide/messages/common_actions_next.js +4 -4
  444. package/dist/tools/paraglide/messages/common_actions_next.js.map +1 -1
  445. package/dist/tools/paraglide/messages/common_actions_ok.cjs +1 -1
  446. package/dist/tools/paraglide/messages/common_actions_ok.cjs.map +1 -1
  447. package/dist/tools/paraglide/messages/common_actions_ok.d.cts +2 -0
  448. package/dist/tools/paraglide/messages/common_actions_ok.d.ts +2 -0
  449. package/dist/tools/paraglide/messages/common_actions_ok.js +4 -4
  450. package/dist/tools/paraglide/messages/common_actions_ok.js.map +1 -1
  451. package/dist/tools/paraglide/messages/common_actions_previous.cjs +1 -1
  452. package/dist/tools/paraglide/messages/common_actions_previous.cjs.map +1 -1
  453. package/dist/tools/paraglide/messages/common_actions_previous.d.cts +2 -0
  454. package/dist/tools/paraglide/messages/common_actions_previous.d.ts +2 -0
  455. package/dist/tools/paraglide/messages/common_actions_previous.js +4 -4
  456. package/dist/tools/paraglide/messages/common_actions_previous.js.map +1 -1
  457. package/dist/tools/paraglide/messages/common_actions_retry.cjs +1 -1
  458. package/dist/tools/paraglide/messages/common_actions_retry.cjs.map +1 -1
  459. package/dist/tools/paraglide/messages/common_actions_retry.d.cts +2 -0
  460. package/dist/tools/paraglide/messages/common_actions_retry.d.ts +2 -0
  461. package/dist/tools/paraglide/messages/common_actions_retry.js +4 -4
  462. package/dist/tools/paraglide/messages/common_actions_retry.js.map +1 -1
  463. package/dist/tools/paraglide/messages/common_actions_save.cjs +1 -1
  464. package/dist/tools/paraglide/messages/common_actions_save.cjs.map +1 -1
  465. package/dist/tools/paraglide/messages/common_actions_save.d.cts +2 -0
  466. package/dist/tools/paraglide/messages/common_actions_save.d.ts +2 -0
  467. package/dist/tools/paraglide/messages/common_actions_save.js +2 -5
  468. package/dist/tools/paraglide/messages/common_actions_save.js.map +1 -1
  469. package/dist/tools/paraglide/messages/common_actions_search.cjs +1 -1
  470. package/dist/tools/paraglide/messages/common_actions_search.cjs.map +1 -1
  471. package/dist/tools/paraglide/messages/common_actions_search.d.cts +2 -0
  472. package/dist/tools/paraglide/messages/common_actions_search.d.ts +2 -0
  473. package/dist/tools/paraglide/messages/common_actions_search.js +4 -4
  474. package/dist/tools/paraglide/messages/common_actions_search.js.map +1 -1
  475. package/dist/tools/paraglide/messages/common_actions_submit.cjs +1 -1
  476. package/dist/tools/paraglide/messages/common_actions_submit.cjs.map +1 -1
  477. package/dist/tools/paraglide/messages/common_actions_submit.d.cts +2 -0
  478. package/dist/tools/paraglide/messages/common_actions_submit.d.ts +2 -0
  479. package/dist/tools/paraglide/messages/common_actions_submit.js +4 -4
  480. package/dist/tools/paraglide/messages/common_actions_submit.js.map +1 -1
  481. package/dist/tools/paraglide/messages/common_actions_update.cjs +1 -1
  482. package/dist/tools/paraglide/messages/common_actions_update.cjs.map +1 -1
  483. package/dist/tools/paraglide/messages/common_actions_update.d.cts +2 -0
  484. package/dist/tools/paraglide/messages/common_actions_update.d.ts +2 -0
  485. package/dist/tools/paraglide/messages/common_actions_update.js +2 -5
  486. package/dist/tools/paraglide/messages/common_actions_update.js.map +1 -1
  487. package/dist/tools/paraglide/messages/common_advanced.cjs +1 -1
  488. package/dist/tools/paraglide/messages/common_advanced.cjs.map +1 -1
  489. package/dist/tools/paraglide/messages/common_advanced.d.cts +2 -0
  490. package/dist/tools/paraglide/messages/common_advanced.d.ts +2 -0
  491. package/dist/tools/paraglide/messages/common_advanced.js +4 -4
  492. package/dist/tools/paraglide/messages/common_advanced.js.map +1 -1
  493. package/dist/tools/paraglide/messages/common_language.cjs +1 -1
  494. package/dist/tools/paraglide/messages/common_language.cjs.map +1 -1
  495. package/dist/tools/paraglide/messages/common_language.d.cts +2 -0
  496. package/dist/tools/paraglide/messages/common_language.d.ts +2 -0
  497. package/dist/tools/paraglide/messages/common_language.js +4 -4
  498. package/dist/tools/paraglide/messages/common_language.js.map +1 -1
  499. package/dist/tools/paraglide/messages/common_no.cjs +1 -1
  500. package/dist/tools/paraglide/messages/common_no.cjs.map +1 -1
  501. package/dist/tools/paraglide/messages/common_no.d.cts +2 -0
  502. package/dist/tools/paraglide/messages/common_no.d.ts +2 -0
  503. package/dist/tools/paraglide/messages/common_no.js +4 -4
  504. package/dist/tools/paraglide/messages/common_no.js.map +1 -1
  505. package/dist/tools/paraglide/messages/common_status_error.cjs +1 -1
  506. package/dist/tools/paraglide/messages/common_status_error.cjs.map +1 -1
  507. package/dist/tools/paraglide/messages/common_status_error.d.cts +2 -0
  508. package/dist/tools/paraglide/messages/common_status_error.d.ts +2 -0
  509. package/dist/tools/paraglide/messages/common_status_error.js +4 -4
  510. package/dist/tools/paraglide/messages/common_status_error.js.map +1 -1
  511. package/dist/tools/paraglide/messages/common_status_loading.cjs +1 -1
  512. package/dist/tools/paraglide/messages/common_status_loading.cjs.map +1 -1
  513. package/dist/tools/paraglide/messages/common_status_loading.d.cts +2 -0
  514. package/dist/tools/paraglide/messages/common_status_loading.d.ts +2 -0
  515. package/dist/tools/paraglide/messages/common_status_loading.js +4 -4
  516. package/dist/tools/paraglide/messages/common_status_loading.js.map +1 -1
  517. package/dist/tools/paraglide/messages/common_stepprogress1.cjs +1 -1
  518. package/dist/tools/paraglide/messages/common_stepprogress1.cjs.map +1 -1
  519. package/dist/tools/paraglide/messages/common_stepprogress1.d.cts +2 -0
  520. package/dist/tools/paraglide/messages/common_stepprogress1.d.ts +2 -0
  521. package/dist/tools/paraglide/messages/common_stepprogress1.js +4 -4
  522. package/dist/tools/paraglide/messages/common_stepprogress1.js.map +1 -1
  523. package/dist/tools/paraglide/messages/common_validation_noresults1.cjs +1 -1
  524. package/dist/tools/paraglide/messages/common_validation_noresults1.cjs.map +1 -1
  525. package/dist/tools/paraglide/messages/common_validation_noresults1.d.cts +2 -0
  526. package/dist/tools/paraglide/messages/common_validation_noresults1.d.ts +2 -0
  527. package/dist/tools/paraglide/messages/common_validation_noresults1.js +4 -4
  528. package/dist/tools/paraglide/messages/common_validation_noresults1.js.map +1 -1
  529. package/dist/tools/paraglide/messages/common_validation_noschemas1.cjs +1 -1
  530. package/dist/tools/paraglide/messages/common_validation_noschemas1.cjs.map +1 -1
  531. package/dist/tools/paraglide/messages/common_validation_noschemas1.d.cts +2 -0
  532. package/dist/tools/paraglide/messages/common_validation_noschemas1.d.ts +2 -0
  533. package/dist/tools/paraglide/messages/common_validation_noschemas1.js +4 -4
  534. package/dist/tools/paraglide/messages/common_validation_noschemas1.js.map +1 -1
  535. package/dist/tools/paraglide/messages/common_validation_notfound1.cjs +1 -1
  536. package/dist/tools/paraglide/messages/common_validation_notfound1.cjs.map +1 -1
  537. package/dist/tools/paraglide/messages/common_validation_notfound1.d.cts +2 -0
  538. package/dist/tools/paraglide/messages/common_validation_notfound1.d.ts +2 -0
  539. package/dist/tools/paraglide/messages/common_validation_notfound1.js +4 -4
  540. package/dist/tools/paraglide/messages/common_validation_notfound1.js.map +1 -1
  541. package/dist/tools/paraglide/messages/common_yes.cjs +1 -1
  542. package/dist/tools/paraglide/messages/common_yes.cjs.map +1 -1
  543. package/dist/tools/paraglide/messages/common_yes.d.cts +2 -0
  544. package/dist/tools/paraglide/messages/common_yes.d.ts +2 -0
  545. package/dist/tools/paraglide/messages/common_yes.js +4 -4
  546. package/dist/tools/paraglide/messages/common_yes.js.map +1 -1
  547. package/dist/tools/paraglide/messages/datatable_filterplaceholder2.cjs +1 -1
  548. package/dist/tools/paraglide/messages/datatable_filterplaceholder2.cjs.map +1 -1
  549. package/dist/tools/paraglide/messages/datatable_filterplaceholder2.d.cts +2 -0
  550. package/dist/tools/paraglide/messages/datatable_filterplaceholder2.d.ts +2 -0
  551. package/dist/tools/paraglide/messages/datatable_filterplaceholder2.js +4 -4
  552. package/dist/tools/paraglide/messages/datatable_filterplaceholder2.js.map +1 -1
  553. package/dist/tools/paraglide/messages/datatable_gotofirstpage4.cjs +1 -1
  554. package/dist/tools/paraglide/messages/datatable_gotofirstpage4.cjs.map +1 -1
  555. package/dist/tools/paraglide/messages/datatable_gotofirstpage4.d.cts +2 -0
  556. package/dist/tools/paraglide/messages/datatable_gotofirstpage4.d.ts +2 -0
  557. package/dist/tools/paraglide/messages/datatable_gotofirstpage4.js +4 -4
  558. package/dist/tools/paraglide/messages/datatable_gotofirstpage4.js.map +1 -1
  559. package/dist/tools/paraglide/messages/datatable_gotolastpage4.cjs +1 -1
  560. package/dist/tools/paraglide/messages/datatable_gotolastpage4.cjs.map +1 -1
  561. package/dist/tools/paraglide/messages/datatable_gotolastpage4.d.cts +2 -0
  562. package/dist/tools/paraglide/messages/datatable_gotolastpage4.d.ts +2 -0
  563. package/dist/tools/paraglide/messages/datatable_gotolastpage4.js +4 -4
  564. package/dist/tools/paraglide/messages/datatable_gotolastpage4.js.map +1 -1
  565. package/dist/tools/paraglide/messages/datatable_gotonextpage4.cjs +1 -1
  566. package/dist/tools/paraglide/messages/datatable_gotonextpage4.cjs.map +1 -1
  567. package/dist/tools/paraglide/messages/datatable_gotonextpage4.d.cts +2 -0
  568. package/dist/tools/paraglide/messages/datatable_gotonextpage4.d.ts +2 -0
  569. package/dist/tools/paraglide/messages/datatable_gotonextpage4.js +4 -4
  570. package/dist/tools/paraglide/messages/datatable_gotonextpage4.js.map +1 -1
  571. package/dist/tools/paraglide/messages/datatable_gotopreviouspage4.cjs +1 -1
  572. package/dist/tools/paraglide/messages/datatable_gotopreviouspage4.cjs.map +1 -1
  573. package/dist/tools/paraglide/messages/datatable_gotopreviouspage4.d.cts +2 -0
  574. package/dist/tools/paraglide/messages/datatable_gotopreviouspage4.d.ts +2 -0
  575. package/dist/tools/paraglide/messages/datatable_gotopreviouspage4.js +4 -4
  576. package/dist/tools/paraglide/messages/datatable_gotopreviouspage4.js.map +1 -1
  577. package/dist/tools/paraglide/messages/datatable_items1.cjs +1 -1
  578. package/dist/tools/paraglide/messages/datatable_items1.cjs.map +1 -1
  579. package/dist/tools/paraglide/messages/datatable_items1.d.cts +2 -0
  580. package/dist/tools/paraglide/messages/datatable_items1.d.ts +2 -0
  581. package/dist/tools/paraglide/messages/datatable_items1.js +4 -4
  582. package/dist/tools/paraglide/messages/datatable_items1.js.map +1 -1
  583. package/dist/tools/paraglide/messages/datatable_noresults2.cjs +1 -1
  584. package/dist/tools/paraglide/messages/datatable_noresults2.cjs.map +1 -1
  585. package/dist/tools/paraglide/messages/datatable_noresults2.d.cts +2 -0
  586. package/dist/tools/paraglide/messages/datatable_noresults2.d.ts +2 -0
  587. package/dist/tools/paraglide/messages/datatable_noresults2.js +4 -4
  588. package/dist/tools/paraglide/messages/datatable_noresults2.js.map +1 -1
  589. package/dist/tools/paraglide/messages/datatable_page1.cjs +1 -1
  590. package/dist/tools/paraglide/messages/datatable_page1.cjs.map +1 -1
  591. package/dist/tools/paraglide/messages/datatable_page1.d.cts +2 -0
  592. package/dist/tools/paraglide/messages/datatable_page1.d.ts +2 -0
  593. package/dist/tools/paraglide/messages/datatable_page1.js +4 -4
  594. package/dist/tools/paraglide/messages/datatable_page1.js.map +1 -1
  595. package/dist/tools/paraglide/messages/datatable_rowsperpage3.cjs +1 -1
  596. package/dist/tools/paraglide/messages/datatable_rowsperpage3.cjs.map +1 -1
  597. package/dist/tools/paraglide/messages/datatable_rowsperpage3.d.cts +2 -0
  598. package/dist/tools/paraglide/messages/datatable_rowsperpage3.d.ts +2 -0
  599. package/dist/tools/paraglide/messages/datatable_rowsperpage3.js +4 -4
  600. package/dist/tools/paraglide/messages/datatable_rowsperpage3.js.map +1 -1
  601. package/dist/tools/paraglide/messages/datatable_rowsselected2.cjs +1 -1
  602. package/dist/tools/paraglide/messages/datatable_rowsselected2.cjs.map +1 -1
  603. package/dist/tools/paraglide/messages/datatable_rowsselected2.d.cts +2 -0
  604. package/dist/tools/paraglide/messages/datatable_rowsselected2.d.ts +2 -0
  605. package/dist/tools/paraglide/messages/datatable_rowsselected2.js +4 -4
  606. package/dist/tools/paraglide/messages/datatable_rowsselected2.js.map +1 -1
  607. package/dist/tools/paraglide/messages/datatable_togglecolumns2.cjs +1 -1
  608. package/dist/tools/paraglide/messages/datatable_togglecolumns2.cjs.map +1 -1
  609. package/dist/tools/paraglide/messages/datatable_togglecolumns2.d.cts +2 -0
  610. package/dist/tools/paraglide/messages/datatable_togglecolumns2.d.ts +2 -0
  611. package/dist/tools/paraglide/messages/datatable_togglecolumns2.js +4 -4
  612. package/dist/tools/paraglide/messages/datatable_togglecolumns2.js.map +1 -1
  613. package/dist/tools/paraglide/messages/datatable_view1.cjs +1 -1
  614. package/dist/tools/paraglide/messages/datatable_view1.cjs.map +1 -1
  615. package/dist/tools/paraglide/messages/datatable_view1.d.cts +2 -0
  616. package/dist/tools/paraglide/messages/datatable_view1.d.ts +2 -0
  617. package/dist/tools/paraglide/messages/datatable_view1.js +4 -4
  618. package/dist/tools/paraglide/messages/datatable_view1.js.map +1 -1
  619. package/dist/tools/paraglide/messages/errors_auth_account_exists_with_different_credential.cjs +1 -1
  620. package/dist/tools/paraglide/messages/errors_auth_account_exists_with_different_credential.cjs.map +1 -1
  621. package/dist/tools/paraglide/messages/errors_auth_account_exists_with_different_credential.d.cts +2 -0
  622. package/dist/tools/paraglide/messages/errors_auth_account_exists_with_different_credential.d.ts +2 -0
  623. package/dist/tools/paraglide/messages/errors_auth_account_exists_with_different_credential.js +4 -4
  624. package/dist/tools/paraglide/messages/errors_auth_account_exists_with_different_credential.js.map +1 -1
  625. package/dist/tools/paraglide/messages/errors_auth_email_already_in_use.cjs +1 -1
  626. package/dist/tools/paraglide/messages/errors_auth_email_already_in_use.cjs.map +1 -1
  627. package/dist/tools/paraglide/messages/errors_auth_email_already_in_use.d.cts +2 -0
  628. package/dist/tools/paraglide/messages/errors_auth_email_already_in_use.d.ts +2 -0
  629. package/dist/tools/paraglide/messages/errors_auth_email_already_in_use.js +4 -4
  630. package/dist/tools/paraglide/messages/errors_auth_email_already_in_use.js.map +1 -1
  631. package/dist/tools/paraglide/messages/errors_auth_expired_action_code.cjs +1 -1
  632. package/dist/tools/paraglide/messages/errors_auth_expired_action_code.cjs.map +1 -1
  633. package/dist/tools/paraglide/messages/errors_auth_expired_action_code.d.cts +2 -0
  634. package/dist/tools/paraglide/messages/errors_auth_expired_action_code.d.ts +2 -0
  635. package/dist/tools/paraglide/messages/errors_auth_expired_action_code.js +4 -4
  636. package/dist/tools/paraglide/messages/errors_auth_expired_action_code.js.map +1 -1
  637. package/dist/tools/paraglide/messages/errors_auth_invalid_action_code.cjs +1 -1
  638. package/dist/tools/paraglide/messages/errors_auth_invalid_action_code.cjs.map +1 -1
  639. package/dist/tools/paraglide/messages/errors_auth_invalid_action_code.d.cts +2 -0
  640. package/dist/tools/paraglide/messages/errors_auth_invalid_action_code.d.ts +2 -0
  641. package/dist/tools/paraglide/messages/errors_auth_invalid_action_code.js +4 -4
  642. package/dist/tools/paraglide/messages/errors_auth_invalid_action_code.js.map +1 -1
  643. package/dist/tools/paraglide/messages/errors_auth_invalid_credential.cjs +1 -1
  644. package/dist/tools/paraglide/messages/errors_auth_invalid_credential.cjs.map +1 -1
  645. package/dist/tools/paraglide/messages/errors_auth_invalid_credential.d.cts +2 -0
  646. package/dist/tools/paraglide/messages/errors_auth_invalid_credential.d.ts +2 -0
  647. package/dist/tools/paraglide/messages/errors_auth_invalid_credential.js +4 -4
  648. package/dist/tools/paraglide/messages/errors_auth_invalid_credential.js.map +1 -1
  649. package/dist/tools/paraglide/messages/errors_auth_invalid_email.cjs +1 -1
  650. package/dist/tools/paraglide/messages/errors_auth_invalid_email.cjs.map +1 -1
  651. package/dist/tools/paraglide/messages/errors_auth_invalid_email.d.cts +2 -0
  652. package/dist/tools/paraglide/messages/errors_auth_invalid_email.d.ts +2 -0
  653. package/dist/tools/paraglide/messages/errors_auth_invalid_email.js +4 -4
  654. package/dist/tools/paraglide/messages/errors_auth_invalid_email.js.map +1 -1
  655. package/dist/tools/paraglide/messages/errors_auth_network_request_failed.cjs +1 -1
  656. package/dist/tools/paraglide/messages/errors_auth_network_request_failed.cjs.map +1 -1
  657. package/dist/tools/paraglide/messages/errors_auth_network_request_failed.d.cts +2 -0
  658. package/dist/tools/paraglide/messages/errors_auth_network_request_failed.d.ts +2 -0
  659. package/dist/tools/paraglide/messages/errors_auth_network_request_failed.js +4 -4
  660. package/dist/tools/paraglide/messages/errors_auth_network_request_failed.js.map +1 -1
  661. package/dist/tools/paraglide/messages/errors_auth_operation_not_allowed.cjs +1 -1
  662. package/dist/tools/paraglide/messages/errors_auth_operation_not_allowed.cjs.map +1 -1
  663. package/dist/tools/paraglide/messages/errors_auth_operation_not_allowed.d.cts +2 -0
  664. package/dist/tools/paraglide/messages/errors_auth_operation_not_allowed.d.ts +2 -0
  665. package/dist/tools/paraglide/messages/errors_auth_operation_not_allowed.js +4 -4
  666. package/dist/tools/paraglide/messages/errors_auth_operation_not_allowed.js.map +1 -1
  667. package/dist/tools/paraglide/messages/errors_auth_popup_closed_by_user.cjs +1 -1
  668. package/dist/tools/paraglide/messages/errors_auth_popup_closed_by_user.cjs.map +1 -1
  669. package/dist/tools/paraglide/messages/errors_auth_popup_closed_by_user.d.cts +2 -0
  670. package/dist/tools/paraglide/messages/errors_auth_popup_closed_by_user.d.ts +2 -0
  671. package/dist/tools/paraglide/messages/errors_auth_popup_closed_by_user.js +4 -4
  672. package/dist/tools/paraglide/messages/errors_auth_popup_closed_by_user.js.map +1 -1
  673. package/dist/tools/paraglide/messages/errors_auth_requires_recent_login.cjs +1 -1
  674. package/dist/tools/paraglide/messages/errors_auth_requires_recent_login.cjs.map +1 -1
  675. package/dist/tools/paraglide/messages/errors_auth_requires_recent_login.d.cts +2 -0
  676. package/dist/tools/paraglide/messages/errors_auth_requires_recent_login.d.ts +2 -0
  677. package/dist/tools/paraglide/messages/errors_auth_requires_recent_login.js +4 -4
  678. package/dist/tools/paraglide/messages/errors_auth_requires_recent_login.js.map +1 -1
  679. package/dist/tools/paraglide/messages/errors_auth_too_many_requests.cjs +1 -1
  680. package/dist/tools/paraglide/messages/errors_auth_too_many_requests.cjs.map +1 -1
  681. package/dist/tools/paraglide/messages/errors_auth_too_many_requests.d.cts +2 -0
  682. package/dist/tools/paraglide/messages/errors_auth_too_many_requests.d.ts +2 -0
  683. package/dist/tools/paraglide/messages/errors_auth_too_many_requests.js +4 -4
  684. package/dist/tools/paraglide/messages/errors_auth_too_many_requests.js.map +1 -1
  685. package/dist/tools/paraglide/messages/errors_auth_user_disabled.cjs +1 -1
  686. package/dist/tools/paraglide/messages/errors_auth_user_disabled.cjs.map +1 -1
  687. package/dist/tools/paraglide/messages/errors_auth_user_disabled.d.cts +2 -0
  688. package/dist/tools/paraglide/messages/errors_auth_user_disabled.d.ts +2 -0
  689. package/dist/tools/paraglide/messages/errors_auth_user_disabled.js +4 -4
  690. package/dist/tools/paraglide/messages/errors_auth_user_disabled.js.map +1 -1
  691. package/dist/tools/paraglide/messages/errors_auth_user_not_found.cjs +1 -1
  692. package/dist/tools/paraglide/messages/errors_auth_user_not_found.cjs.map +1 -1
  693. package/dist/tools/paraglide/messages/errors_auth_user_not_found.d.cts +2 -0
  694. package/dist/tools/paraglide/messages/errors_auth_user_not_found.d.ts +2 -0
  695. package/dist/tools/paraglide/messages/errors_auth_user_not_found.js +4 -4
  696. package/dist/tools/paraglide/messages/errors_auth_user_not_found.js.map +1 -1
  697. package/dist/tools/paraglide/messages/errors_auth_weak_password.cjs +1 -1
  698. package/dist/tools/paraglide/messages/errors_auth_weak_password.cjs.map +1 -1
  699. package/dist/tools/paraglide/messages/errors_auth_weak_password.d.cts +2 -0
  700. package/dist/tools/paraglide/messages/errors_auth_weak_password.d.ts +2 -0
  701. package/dist/tools/paraglide/messages/errors_auth_weak_password.js +4 -4
  702. package/dist/tools/paraglide/messages/errors_auth_weak_password.js.map +1 -1
  703. package/dist/tools/paraglide/messages/errors_auth_wrong_password.cjs +1 -1
  704. package/dist/tools/paraglide/messages/errors_auth_wrong_password.cjs.map +1 -1
  705. package/dist/tools/paraglide/messages/errors_auth_wrong_password.d.cts +2 -0
  706. package/dist/tools/paraglide/messages/errors_auth_wrong_password.d.ts +2 -0
  707. package/dist/tools/paraglide/messages/errors_auth_wrong_password.js +4 -4
  708. package/dist/tools/paraglide/messages/errors_auth_wrong_password.js.map +1 -1
  709. package/dist/tools/paraglide/messages/errors_code.cjs +1 -1
  710. package/dist/tools/paraglide/messages/errors_code.cjs.map +1 -1
  711. package/dist/tools/paraglide/messages/errors_code.d.cts +2 -0
  712. package/dist/tools/paraglide/messages/errors_code.d.ts +2 -0
  713. package/dist/tools/paraglide/messages/errors_code.js +4 -4
  714. package/dist/tools/paraglide/messages/errors_code.js.map +1 -1
  715. package/dist/tools/paraglide/messages/errors_dialogtitle1.cjs +1 -1
  716. package/dist/tools/paraglide/messages/errors_dialogtitle1.cjs.map +1 -1
  717. package/dist/tools/paraglide/messages/errors_dialogtitle1.d.cts +2 -0
  718. package/dist/tools/paraglide/messages/errors_dialogtitle1.d.ts +2 -0
  719. package/dist/tools/paraglide/messages/errors_dialogtitle1.js +4 -4
  720. package/dist/tools/paraglide/messages/errors_dialogtitle1.js.map +1 -1
  721. package/dist/tools/paraglide/messages/errors_error_forbidden.cjs +1 -1
  722. package/dist/tools/paraglide/messages/errors_error_forbidden.cjs.map +1 -1
  723. package/dist/tools/paraglide/messages/errors_error_forbidden.d.cts +2 -0
  724. package/dist/tools/paraglide/messages/errors_error_forbidden.d.ts +2 -0
  725. package/dist/tools/paraglide/messages/errors_error_forbidden.js +4 -4
  726. package/dist/tools/paraglide/messages/errors_error_forbidden.js.map +1 -1
  727. package/dist/tools/paraglide/messages/errors_error_network.cjs +1 -1
  728. package/dist/tools/paraglide/messages/errors_error_network.cjs.map +1 -1
  729. package/dist/tools/paraglide/messages/errors_error_network.d.cts +2 -0
  730. package/dist/tools/paraglide/messages/errors_error_network.d.ts +2 -0
  731. package/dist/tools/paraglide/messages/errors_error_network.js +4 -4
  732. package/dist/tools/paraglide/messages/errors_error_network.js.map +1 -1
  733. package/dist/tools/paraglide/messages/errors_error_not_found.cjs +1 -1
  734. package/dist/tools/paraglide/messages/errors_error_not_found.cjs.map +1 -1
  735. package/dist/tools/paraglide/messages/errors_error_not_found.d.cts +2 -0
  736. package/dist/tools/paraglide/messages/errors_error_not_found.d.ts +2 -0
  737. package/dist/tools/paraglide/messages/errors_error_not_found.js +4 -4
  738. package/dist/tools/paraglide/messages/errors_error_not_found.js.map +1 -1
  739. package/dist/tools/paraglide/messages/errors_error_server.cjs +1 -1
  740. package/dist/tools/paraglide/messages/errors_error_server.cjs.map +1 -1
  741. package/dist/tools/paraglide/messages/errors_error_server.d.cts +2 -0
  742. package/dist/tools/paraglide/messages/errors_error_server.d.ts +2 -0
  743. package/dist/tools/paraglide/messages/errors_error_server.js +4 -4
  744. package/dist/tools/paraglide/messages/errors_error_server.js.map +1 -1
  745. package/dist/tools/paraglide/messages/errors_error_timeout.cjs +1 -1
  746. package/dist/tools/paraglide/messages/errors_error_timeout.cjs.map +1 -1
  747. package/dist/tools/paraglide/messages/errors_error_timeout.d.cts +2 -0
  748. package/dist/tools/paraglide/messages/errors_error_timeout.d.ts +2 -0
  749. package/dist/tools/paraglide/messages/errors_error_timeout.js +4 -4
  750. package/dist/tools/paraglide/messages/errors_error_timeout.js.map +1 -1
  751. package/dist/tools/paraglide/messages/errors_error_unauthorized.cjs +1 -1
  752. package/dist/tools/paraglide/messages/errors_error_unauthorized.cjs.map +1 -1
  753. package/dist/tools/paraglide/messages/errors_error_unauthorized.d.cts +2 -0
  754. package/dist/tools/paraglide/messages/errors_error_unauthorized.d.ts +2 -0
  755. package/dist/tools/paraglide/messages/errors_error_unauthorized.js +4 -4
  756. package/dist/tools/paraglide/messages/errors_error_unauthorized.js.map +1 -1
  757. package/dist/tools/paraglide/messages/errors_error_unknown.cjs +1 -1
  758. package/dist/tools/paraglide/messages/errors_error_unknown.cjs.map +1 -1
  759. package/dist/tools/paraglide/messages/errors_error_unknown.d.cts +2 -0
  760. package/dist/tools/paraglide/messages/errors_error_unknown.d.ts +2 -0
  761. package/dist/tools/paraglide/messages/errors_error_unknown.js +4 -4
  762. package/dist/tools/paraglide/messages/errors_error_unknown.js.map +1 -1
  763. package/dist/tools/paraglide/messages/errors_error_validation.cjs +1 -1
  764. package/dist/tools/paraglide/messages/errors_error_validation.cjs.map +1 -1
  765. package/dist/tools/paraglide/messages/errors_error_validation.d.cts +2 -0
  766. package/dist/tools/paraglide/messages/errors_error_validation.d.ts +2 -0
  767. package/dist/tools/paraglide/messages/errors_error_validation.js +4 -4
  768. package/dist/tools/paraglide/messages/errors_error_validation.js.map +1 -1
  769. package/dist/tools/paraglide/messages/errors_functions_aborted.cjs +1 -1
  770. package/dist/tools/paraglide/messages/errors_functions_aborted.cjs.map +1 -1
  771. package/dist/tools/paraglide/messages/errors_functions_aborted.d.cts +2 -0
  772. package/dist/tools/paraglide/messages/errors_functions_aborted.d.ts +2 -0
  773. package/dist/tools/paraglide/messages/errors_functions_aborted.js +4 -4
  774. package/dist/tools/paraglide/messages/errors_functions_aborted.js.map +1 -1
  775. package/dist/tools/paraglide/messages/errors_functions_already_exists.cjs +1 -1
  776. package/dist/tools/paraglide/messages/errors_functions_already_exists.cjs.map +1 -1
  777. package/dist/tools/paraglide/messages/errors_functions_already_exists.d.cts +2 -0
  778. package/dist/tools/paraglide/messages/errors_functions_already_exists.d.ts +2 -0
  779. package/dist/tools/paraglide/messages/errors_functions_already_exists.js +4 -4
  780. package/dist/tools/paraglide/messages/errors_functions_already_exists.js.map +1 -1
  781. package/dist/tools/paraglide/messages/errors_functions_cancelled.cjs +1 -1
  782. package/dist/tools/paraglide/messages/errors_functions_cancelled.cjs.map +1 -1
  783. package/dist/tools/paraglide/messages/errors_functions_cancelled.d.cts +2 -0
  784. package/dist/tools/paraglide/messages/errors_functions_cancelled.d.ts +2 -0
  785. package/dist/tools/paraglide/messages/errors_functions_cancelled.js +4 -4
  786. package/dist/tools/paraglide/messages/errors_functions_cancelled.js.map +1 -1
  787. package/dist/tools/paraglide/messages/errors_functions_data_loss.cjs +1 -1
  788. package/dist/tools/paraglide/messages/errors_functions_data_loss.cjs.map +1 -1
  789. package/dist/tools/paraglide/messages/errors_functions_data_loss.d.cts +2 -0
  790. package/dist/tools/paraglide/messages/errors_functions_data_loss.d.ts +2 -0
  791. package/dist/tools/paraglide/messages/errors_functions_data_loss.js +4 -4
  792. package/dist/tools/paraglide/messages/errors_functions_data_loss.js.map +1 -1
  793. package/dist/tools/paraglide/messages/errors_functions_deadline_exceeded.cjs +1 -1
  794. package/dist/tools/paraglide/messages/errors_functions_deadline_exceeded.cjs.map +1 -1
  795. package/dist/tools/paraglide/messages/errors_functions_deadline_exceeded.d.cts +2 -0
  796. package/dist/tools/paraglide/messages/errors_functions_deadline_exceeded.d.ts +2 -0
  797. package/dist/tools/paraglide/messages/errors_functions_deadline_exceeded.js +4 -4
  798. package/dist/tools/paraglide/messages/errors_functions_deadline_exceeded.js.map +1 -1
  799. package/dist/tools/paraglide/messages/errors_functions_failed_precondition.cjs +1 -1
  800. package/dist/tools/paraglide/messages/errors_functions_failed_precondition.cjs.map +1 -1
  801. package/dist/tools/paraglide/messages/errors_functions_failed_precondition.d.cts +2 -0
  802. package/dist/tools/paraglide/messages/errors_functions_failed_precondition.d.ts +2 -0
  803. package/dist/tools/paraglide/messages/errors_functions_failed_precondition.js +4 -4
  804. package/dist/tools/paraglide/messages/errors_functions_failed_precondition.js.map +1 -1
  805. package/dist/tools/paraglide/messages/errors_functions_internal.cjs +1 -1
  806. package/dist/tools/paraglide/messages/errors_functions_internal.cjs.map +1 -1
  807. package/dist/tools/paraglide/messages/errors_functions_internal.d.cts +2 -0
  808. package/dist/tools/paraglide/messages/errors_functions_internal.d.ts +2 -0
  809. package/dist/tools/paraglide/messages/errors_functions_internal.js +4 -4
  810. package/dist/tools/paraglide/messages/errors_functions_internal.js.map +1 -1
  811. package/dist/tools/paraglide/messages/errors_functions_invalid_argument.cjs +1 -1
  812. package/dist/tools/paraglide/messages/errors_functions_invalid_argument.cjs.map +1 -1
  813. package/dist/tools/paraglide/messages/errors_functions_invalid_argument.d.cts +2 -0
  814. package/dist/tools/paraglide/messages/errors_functions_invalid_argument.d.ts +2 -0
  815. package/dist/tools/paraglide/messages/errors_functions_invalid_argument.js +4 -4
  816. package/dist/tools/paraglide/messages/errors_functions_invalid_argument.js.map +1 -1
  817. package/dist/tools/paraglide/messages/errors_functions_not_found.cjs +1 -1
  818. package/dist/tools/paraglide/messages/errors_functions_not_found.cjs.map +1 -1
  819. package/dist/tools/paraglide/messages/errors_functions_not_found.d.cts +2 -0
  820. package/dist/tools/paraglide/messages/errors_functions_not_found.d.ts +2 -0
  821. package/dist/tools/paraglide/messages/errors_functions_not_found.js +4 -4
  822. package/dist/tools/paraglide/messages/errors_functions_not_found.js.map +1 -1
  823. package/dist/tools/paraglide/messages/errors_functions_out_of_range.cjs +1 -1
  824. package/dist/tools/paraglide/messages/errors_functions_out_of_range.cjs.map +1 -1
  825. package/dist/tools/paraglide/messages/errors_functions_out_of_range.d.cts +2 -0
  826. package/dist/tools/paraglide/messages/errors_functions_out_of_range.d.ts +2 -0
  827. package/dist/tools/paraglide/messages/errors_functions_out_of_range.js +4 -4
  828. package/dist/tools/paraglide/messages/errors_functions_out_of_range.js.map +1 -1
  829. package/dist/tools/paraglide/messages/errors_functions_permission_denied.cjs +1 -1
  830. package/dist/tools/paraglide/messages/errors_functions_permission_denied.cjs.map +1 -1
  831. package/dist/tools/paraglide/messages/errors_functions_permission_denied.d.cts +2 -0
  832. package/dist/tools/paraglide/messages/errors_functions_permission_denied.d.ts +2 -0
  833. package/dist/tools/paraglide/messages/errors_functions_permission_denied.js +4 -4
  834. package/dist/tools/paraglide/messages/errors_functions_permission_denied.js.map +1 -1
  835. package/dist/tools/paraglide/messages/errors_functions_resource_exhausted.cjs +1 -1
  836. package/dist/tools/paraglide/messages/errors_functions_resource_exhausted.cjs.map +1 -1
  837. package/dist/tools/paraglide/messages/errors_functions_resource_exhausted.d.cts +2 -0
  838. package/dist/tools/paraglide/messages/errors_functions_resource_exhausted.d.ts +2 -0
  839. package/dist/tools/paraglide/messages/errors_functions_resource_exhausted.js +4 -4
  840. package/dist/tools/paraglide/messages/errors_functions_resource_exhausted.js.map +1 -1
  841. package/dist/tools/paraglide/messages/errors_functions_unauthenticated.cjs +1 -1
  842. package/dist/tools/paraglide/messages/errors_functions_unauthenticated.cjs.map +1 -1
  843. package/dist/tools/paraglide/messages/errors_functions_unauthenticated.d.cts +2 -0
  844. package/dist/tools/paraglide/messages/errors_functions_unauthenticated.d.ts +2 -0
  845. package/dist/tools/paraglide/messages/errors_functions_unauthenticated.js +4 -4
  846. package/dist/tools/paraglide/messages/errors_functions_unauthenticated.js.map +1 -1
  847. package/dist/tools/paraglide/messages/errors_functions_unavailable.cjs +1 -1
  848. package/dist/tools/paraglide/messages/errors_functions_unavailable.cjs.map +1 -1
  849. package/dist/tools/paraglide/messages/errors_functions_unavailable.d.cts +2 -0
  850. package/dist/tools/paraglide/messages/errors_functions_unavailable.d.ts +2 -0
  851. package/dist/tools/paraglide/messages/errors_functions_unavailable.js +4 -4
  852. package/dist/tools/paraglide/messages/errors_functions_unavailable.js.map +1 -1
  853. package/dist/tools/paraglide/messages/errors_functions_unimplemented.cjs +1 -1
  854. package/dist/tools/paraglide/messages/errors_functions_unimplemented.cjs.map +1 -1
  855. package/dist/tools/paraglide/messages/errors_functions_unimplemented.d.cts +2 -0
  856. package/dist/tools/paraglide/messages/errors_functions_unimplemented.d.ts +2 -0
  857. package/dist/tools/paraglide/messages/errors_functions_unimplemented.js +4 -4
  858. package/dist/tools/paraglide/messages/errors_functions_unimplemented.js.map +1 -1
  859. package/dist/tools/paraglide/messages/errors_functions_unknown.cjs +1 -1
  860. package/dist/tools/paraglide/messages/errors_functions_unknown.cjs.map +1 -1
  861. package/dist/tools/paraglide/messages/errors_functions_unknown.d.cts +2 -0
  862. package/dist/tools/paraglide/messages/errors_functions_unknown.d.ts +2 -0
  863. package/dist/tools/paraglide/messages/errors_functions_unknown.js +4 -4
  864. package/dist/tools/paraglide/messages/errors_functions_unknown.js.map +1 -1
  865. package/dist/tools/paraglide/messages/errors_generic.cjs +1 -1
  866. package/dist/tools/paraglide/messages/errors_generic.cjs.map +1 -1
  867. package/dist/tools/paraglide/messages/errors_generic.d.cts +2 -0
  868. package/dist/tools/paraglide/messages/errors_generic.d.ts +2 -0
  869. package/dist/tools/paraglide/messages/errors_generic.js +4 -4
  870. package/dist/tools/paraglide/messages/errors_generic.js.map +1 -1
  871. package/dist/tools/paraglide/messages/errors_generictitle1.cjs +1 -1
  872. package/dist/tools/paraglide/messages/errors_generictitle1.cjs.map +1 -1
  873. package/dist/tools/paraglide/messages/errors_generictitle1.d.cts +2 -0
  874. package/dist/tools/paraglide/messages/errors_generictitle1.d.ts +2 -0
  875. package/dist/tools/paraglide/messages/errors_generictitle1.js +4 -4
  876. package/dist/tools/paraglide/messages/errors_generictitle1.js.map +1 -1
  877. package/dist/tools/paraglide/messages/errors_storage_bucket_not_found.cjs +1 -1
  878. package/dist/tools/paraglide/messages/errors_storage_bucket_not_found.cjs.map +1 -1
  879. package/dist/tools/paraglide/messages/errors_storage_bucket_not_found.d.cts +2 -0
  880. package/dist/tools/paraglide/messages/errors_storage_bucket_not_found.d.ts +2 -0
  881. package/dist/tools/paraglide/messages/errors_storage_bucket_not_found.js +4 -4
  882. package/dist/tools/paraglide/messages/errors_storage_bucket_not_found.js.map +1 -1
  883. package/dist/tools/paraglide/messages/errors_storage_file_too_large.cjs +1 -1
  884. package/dist/tools/paraglide/messages/errors_storage_file_too_large.cjs.map +1 -1
  885. package/dist/tools/paraglide/messages/errors_storage_file_too_large.d.cts +2 -0
  886. package/dist/tools/paraglide/messages/errors_storage_file_too_large.d.ts +2 -0
  887. package/dist/tools/paraglide/messages/errors_storage_file_too_large.js +4 -4
  888. package/dist/tools/paraglide/messages/errors_storage_file_too_large.js.map +1 -1
  889. package/dist/tools/paraglide/messages/errors_storage_invalid_file_type.cjs +1 -1
  890. package/dist/tools/paraglide/messages/errors_storage_invalid_file_type.cjs.map +1 -1
  891. package/dist/tools/paraglide/messages/errors_storage_invalid_file_type.d.cts +2 -0
  892. package/dist/tools/paraglide/messages/errors_storage_invalid_file_type.d.ts +2 -0
  893. package/dist/tools/paraglide/messages/errors_storage_invalid_file_type.js +4 -4
  894. package/dist/tools/paraglide/messages/errors_storage_invalid_file_type.js.map +1 -1
  895. package/dist/tools/paraglide/messages/errors_storage_object_not_found.cjs +1 -1
  896. package/dist/tools/paraglide/messages/errors_storage_object_not_found.cjs.map +1 -1
  897. package/dist/tools/paraglide/messages/errors_storage_object_not_found.d.cts +2 -0
  898. package/dist/tools/paraglide/messages/errors_storage_object_not_found.d.ts +2 -0
  899. package/dist/tools/paraglide/messages/errors_storage_object_not_found.js +4 -4
  900. package/dist/tools/paraglide/messages/errors_storage_object_not_found.js.map +1 -1
  901. package/dist/tools/paraglide/messages/errors_storage_unauthorized.cjs +1 -1
  902. package/dist/tools/paraglide/messages/errors_storage_unauthorized.cjs.map +1 -1
  903. package/dist/tools/paraglide/messages/errors_storage_unauthorized.d.cts +2 -0
  904. package/dist/tools/paraglide/messages/errors_storage_unauthorized.d.ts +2 -0
  905. package/dist/tools/paraglide/messages/errors_storage_unauthorized.js +4 -4
  906. package/dist/tools/paraglide/messages/errors_storage_unauthorized.js.map +1 -1
  907. package/dist/tools/paraglide/messages/errors_storage_upload_failed.cjs +1 -1
  908. package/dist/tools/paraglide/messages/errors_storage_upload_failed.cjs.map +1 -1
  909. package/dist/tools/paraglide/messages/errors_storage_upload_failed.d.cts +2 -0
  910. package/dist/tools/paraglide/messages/errors_storage_upload_failed.d.ts +2 -0
  911. package/dist/tools/paraglide/messages/errors_storage_upload_failed.js +4 -4
  912. package/dist/tools/paraglide/messages/errors_storage_upload_failed.js.map +1 -1
  913. package/dist/tools/paraglide/messages/errors_supabase_bad_jwt.cjs +1 -1
  914. package/dist/tools/paraglide/messages/errors_supabase_bad_jwt.cjs.map +1 -1
  915. package/dist/tools/paraglide/messages/errors_supabase_bad_jwt.d.cts +2 -0
  916. package/dist/tools/paraglide/messages/errors_supabase_bad_jwt.d.ts +2 -0
  917. package/dist/tools/paraglide/messages/errors_supabase_bad_jwt.js +4 -4
  918. package/dist/tools/paraglide/messages/errors_supabase_bad_jwt.js.map +1 -1
  919. package/dist/tools/paraglide/messages/errors_supabase_check_violation.cjs +1 -1
  920. package/dist/tools/paraglide/messages/errors_supabase_check_violation.cjs.map +1 -1
  921. package/dist/tools/paraglide/messages/errors_supabase_check_violation.d.cts +2 -0
  922. package/dist/tools/paraglide/messages/errors_supabase_check_violation.d.ts +2 -0
  923. package/dist/tools/paraglide/messages/errors_supabase_check_violation.js +4 -4
  924. package/dist/tools/paraglide/messages/errors_supabase_check_violation.js.map +1 -1
  925. package/dist/tools/paraglide/messages/errors_supabase_email_not_confirmed.cjs +1 -1
  926. package/dist/tools/paraglide/messages/errors_supabase_email_not_confirmed.cjs.map +1 -1
  927. package/dist/tools/paraglide/messages/errors_supabase_email_not_confirmed.d.cts +2 -0
  928. package/dist/tools/paraglide/messages/errors_supabase_email_not_confirmed.d.ts +2 -0
  929. package/dist/tools/paraglide/messages/errors_supabase_email_not_confirmed.js +4 -4
  930. package/dist/tools/paraglide/messages/errors_supabase_email_not_confirmed.js.map +1 -1
  931. package/dist/tools/paraglide/messages/errors_supabase_foreign_key_violation.cjs +1 -1
  932. package/dist/tools/paraglide/messages/errors_supabase_foreign_key_violation.cjs.map +1 -1
  933. package/dist/tools/paraglide/messages/errors_supabase_foreign_key_violation.d.cts +2 -0
  934. package/dist/tools/paraglide/messages/errors_supabase_foreign_key_violation.d.ts +2 -0
  935. package/dist/tools/paraglide/messages/errors_supabase_foreign_key_violation.js +4 -4
  936. package/dist/tools/paraglide/messages/errors_supabase_foreign_key_violation.js.map +1 -1
  937. package/dist/tools/paraglide/messages/errors_supabase_insufficient_privilege.cjs +1 -1
  938. package/dist/tools/paraglide/messages/errors_supabase_insufficient_privilege.cjs.map +1 -1
  939. package/dist/tools/paraglide/messages/errors_supabase_insufficient_privilege.d.cts +2 -0
  940. package/dist/tools/paraglide/messages/errors_supabase_insufficient_privilege.d.ts +2 -0
  941. package/dist/tools/paraglide/messages/errors_supabase_insufficient_privilege.js +4 -4
  942. package/dist/tools/paraglide/messages/errors_supabase_insufficient_privilege.js.map +1 -1
  943. package/dist/tools/paraglide/messages/errors_supabase_invalid_credentials.cjs +1 -1
  944. package/dist/tools/paraglide/messages/errors_supabase_invalid_credentials.cjs.map +1 -1
  945. package/dist/tools/paraglide/messages/errors_supabase_invalid_credentials.d.cts +2 -0
  946. package/dist/tools/paraglide/messages/errors_supabase_invalid_credentials.d.ts +2 -0
  947. package/dist/tools/paraglide/messages/errors_supabase_invalid_credentials.js +4 -4
  948. package/dist/tools/paraglide/messages/errors_supabase_invalid_credentials.js.map +1 -1
  949. package/dist/tools/paraglide/messages/errors_supabase_invalid_grant.cjs +1 -1
  950. package/dist/tools/paraglide/messages/errors_supabase_invalid_grant.cjs.map +1 -1
  951. package/dist/tools/paraglide/messages/errors_supabase_invalid_grant.d.cts +2 -0
  952. package/dist/tools/paraglide/messages/errors_supabase_invalid_grant.d.ts +2 -0
  953. package/dist/tools/paraglide/messages/errors_supabase_invalid_grant.js +4 -4
  954. package/dist/tools/paraglide/messages/errors_supabase_invalid_grant.js.map +1 -1
  955. package/dist/tools/paraglide/messages/errors_supabase_invalid_token.cjs +1 -1
  956. package/dist/tools/paraglide/messages/errors_supabase_invalid_token.cjs.map +1 -1
  957. package/dist/tools/paraglide/messages/errors_supabase_invalid_token.d.cts +2 -0
  958. package/dist/tools/paraglide/messages/errors_supabase_invalid_token.d.ts +2 -0
  959. package/dist/tools/paraglide/messages/errors_supabase_invalid_token.js +4 -4
  960. package/dist/tools/paraglide/messages/errors_supabase_invalid_token.js.map +1 -1
  961. package/dist/tools/paraglide/messages/errors_supabase_not_admin.cjs +1 -1
  962. package/dist/tools/paraglide/messages/errors_supabase_not_admin.cjs.map +1 -1
  963. package/dist/tools/paraglide/messages/errors_supabase_not_admin.d.cts +2 -0
  964. package/dist/tools/paraglide/messages/errors_supabase_not_admin.d.ts +2 -0
  965. package/dist/tools/paraglide/messages/errors_supabase_not_admin.js +4 -4
  966. package/dist/tools/paraglide/messages/errors_supabase_not_admin.js.map +1 -1
  967. package/dist/tools/paraglide/messages/errors_supabase_rate_limit_exceeded.cjs +1 -1
  968. package/dist/tools/paraglide/messages/errors_supabase_rate_limit_exceeded.cjs.map +1 -1
  969. package/dist/tools/paraglide/messages/errors_supabase_rate_limit_exceeded.d.cts +2 -0
  970. package/dist/tools/paraglide/messages/errors_supabase_rate_limit_exceeded.d.ts +2 -0
  971. package/dist/tools/paraglide/messages/errors_supabase_rate_limit_exceeded.js +4 -4
  972. package/dist/tools/paraglide/messages/errors_supabase_rate_limit_exceeded.js.map +1 -1
  973. package/dist/tools/paraglide/messages/errors_supabase_session_expired.cjs +1 -1
  974. package/dist/tools/paraglide/messages/errors_supabase_session_expired.cjs.map +1 -1
  975. package/dist/tools/paraglide/messages/errors_supabase_session_expired.d.cts +2 -0
  976. package/dist/tools/paraglide/messages/errors_supabase_session_expired.d.ts +2 -0
  977. package/dist/tools/paraglide/messages/errors_supabase_session_expired.js +4 -4
  978. package/dist/tools/paraglide/messages/errors_supabase_session_expired.js.map +1 -1
  979. package/dist/tools/paraglide/messages/errors_supabase_undefined_table.cjs +1 -1
  980. package/dist/tools/paraglide/messages/errors_supabase_undefined_table.cjs.map +1 -1
  981. package/dist/tools/paraglide/messages/errors_supabase_undefined_table.d.cts +2 -0
  982. package/dist/tools/paraglide/messages/errors_supabase_undefined_table.d.ts +2 -0
  983. package/dist/tools/paraglide/messages/errors_supabase_undefined_table.js +4 -4
  984. package/dist/tools/paraglide/messages/errors_supabase_undefined_table.js.map +1 -1
  985. package/dist/tools/paraglide/messages/errors_supabase_unique_violation.cjs +1 -1
  986. package/dist/tools/paraglide/messages/errors_supabase_unique_violation.cjs.map +1 -1
  987. package/dist/tools/paraglide/messages/errors_supabase_unique_violation.d.cts +2 -0
  988. package/dist/tools/paraglide/messages/errors_supabase_unique_violation.d.ts +2 -0
  989. package/dist/tools/paraglide/messages/errors_supabase_unique_violation.js +4 -4
  990. package/dist/tools/paraglide/messages/errors_supabase_unique_violation.js.map +1 -1
  991. package/dist/tools/paraglide/messages/errors_supabase_user_already_exists.cjs +1 -1
  992. package/dist/tools/paraglide/messages/errors_supabase_user_already_exists.cjs.map +1 -1
  993. package/dist/tools/paraglide/messages/errors_supabase_user_already_exists.d.cts +2 -0
  994. package/dist/tools/paraglide/messages/errors_supabase_user_already_exists.d.ts +2 -0
  995. package/dist/tools/paraglide/messages/errors_supabase_user_already_exists.js +4 -4
  996. package/dist/tools/paraglide/messages/errors_supabase_user_already_exists.js.map +1 -1
  997. package/dist/tools/paraglide/messages/errors_supabase_user_not_found.cjs +1 -1
  998. package/dist/tools/paraglide/messages/errors_supabase_user_not_found.cjs.map +1 -1
  999. package/dist/tools/paraglide/messages/errors_supabase_user_not_found.d.cts +2 -0
  1000. package/dist/tools/paraglide/messages/errors_supabase_user_not_found.d.ts +2 -0
  1001. package/dist/tools/paraglide/messages/errors_supabase_user_not_found.js +4 -4
  1002. package/dist/tools/paraglide/messages/errors_supabase_user_not_found.js.map +1 -1
  1003. package/dist/tools/paraglide/messages/errors_validation_invalidemail1.cjs +1 -1
  1004. package/dist/tools/paraglide/messages/errors_validation_invalidemail1.cjs.map +1 -1
  1005. package/dist/tools/paraglide/messages/errors_validation_invalidemail1.d.cts +2 -0
  1006. package/dist/tools/paraglide/messages/errors_validation_invalidemail1.d.ts +2 -0
  1007. package/dist/tools/paraglide/messages/errors_validation_invalidemail1.js +4 -4
  1008. package/dist/tools/paraglide/messages/errors_validation_invalidemail1.js.map +1 -1
  1009. package/dist/tools/paraglide/messages/errors_validation_maxlength1.cjs +1 -1
  1010. package/dist/tools/paraglide/messages/errors_validation_maxlength1.cjs.map +1 -1
  1011. package/dist/tools/paraglide/messages/errors_validation_maxlength1.d.cts +2 -0
  1012. package/dist/tools/paraglide/messages/errors_validation_maxlength1.d.ts +2 -0
  1013. package/dist/tools/paraglide/messages/errors_validation_maxlength1.js +4 -4
  1014. package/dist/tools/paraglide/messages/errors_validation_maxlength1.js.map +1 -1
  1015. package/dist/tools/paraglide/messages/errors_validation_minlength1.cjs +1 -1
  1016. package/dist/tools/paraglide/messages/errors_validation_minlength1.cjs.map +1 -1
  1017. package/dist/tools/paraglide/messages/errors_validation_minlength1.d.cts +2 -0
  1018. package/dist/tools/paraglide/messages/errors_validation_minlength1.d.ts +2 -0
  1019. package/dist/tools/paraglide/messages/errors_validation_minlength1.js +4 -4
  1020. package/dist/tools/paraglide/messages/errors_validation_minlength1.js.map +1 -1
  1021. package/dist/tools/paraglide/messages/errors_validation_pattern.cjs +1 -1
  1022. package/dist/tools/paraglide/messages/errors_validation_pattern.cjs.map +1 -1
  1023. package/dist/tools/paraglide/messages/errors_validation_pattern.d.cts +2 -0
  1024. package/dist/tools/paraglide/messages/errors_validation_pattern.d.ts +2 -0
  1025. package/dist/tools/paraglide/messages/errors_validation_pattern.js +4 -4
  1026. package/dist/tools/paraglide/messages/errors_validation_pattern.js.map +1 -1
  1027. package/dist/tools/paraglide/messages/errors_validation_required.cjs +1 -1
  1028. package/dist/tools/paraglide/messages/errors_validation_required.cjs.map +1 -1
  1029. package/dist/tools/paraglide/messages/errors_validation_required.d.cts +2 -0
  1030. package/dist/tools/paraglide/messages/errors_validation_required.d.ts +2 -0
  1031. package/dist/tools/paraglide/messages/errors_validation_required.js +4 -4
  1032. package/dist/tools/paraglide/messages/errors_validation_required.js.map +1 -1
  1033. package/dist/tools/paraglide/messages/errors_validation_weakpassword1.cjs +1 -1
  1034. package/dist/tools/paraglide/messages/errors_validation_weakpassword1.cjs.map +1 -1
  1035. package/dist/tools/paraglide/messages/errors_validation_weakpassword1.d.cts +2 -0
  1036. package/dist/tools/paraglide/messages/errors_validation_weakpassword1.d.ts +2 -0
  1037. package/dist/tools/paraglide/messages/errors_validation_weakpassword1.js +4 -4
  1038. package/dist/tools/paraglide/messages/errors_validation_weakpassword1.js.map +1 -1
  1039. package/dist/tools/paraglide/messages/filter_all.cjs +1 -1
  1040. package/dist/tools/paraglide/messages/filter_all.cjs.map +1 -1
  1041. package/dist/tools/paraglide/messages/filter_all.d.cts +2 -0
  1042. package/dist/tools/paraglide/messages/filter_all.d.ts +2 -0
  1043. package/dist/tools/paraglide/messages/filter_all.js +4 -4
  1044. package/dist/tools/paraglide/messages/filter_all.js.map +1 -1
  1045. package/dist/tools/paraglide/messages/filter_apply.cjs +1 -1
  1046. package/dist/tools/paraglide/messages/filter_apply.cjs.map +1 -1
  1047. package/dist/tools/paraglide/messages/filter_apply.d.cts +2 -0
  1048. package/dist/tools/paraglide/messages/filter_apply.d.ts +2 -0
  1049. package/dist/tools/paraglide/messages/filter_apply.js +4 -4
  1050. package/dist/tools/paraglide/messages/filter_apply.js.map +1 -1
  1051. package/dist/tools/paraglide/messages/filter_max.cjs +1 -1
  1052. package/dist/tools/paraglide/messages/filter_max.cjs.map +1 -1
  1053. package/dist/tools/paraglide/messages/filter_max.d.cts +2 -0
  1054. package/dist/tools/paraglide/messages/filter_max.d.ts +2 -0
  1055. package/dist/tools/paraglide/messages/filter_max.js +2 -5
  1056. package/dist/tools/paraglide/messages/filter_max.js.map +1 -1
  1057. package/dist/tools/paraglide/messages/filter_min.cjs +1 -1
  1058. package/dist/tools/paraglide/messages/filter_min.cjs.map +1 -1
  1059. package/dist/tools/paraglide/messages/filter_min.d.cts +2 -0
  1060. package/dist/tools/paraglide/messages/filter_min.d.ts +2 -0
  1061. package/dist/tools/paraglide/messages/filter_min.js +2 -5
  1062. package/dist/tools/paraglide/messages/filter_min.js.map +1 -1
  1063. package/dist/tools/paraglide/messages/filter_reset.cjs +1 -1
  1064. package/dist/tools/paraglide/messages/filter_reset.cjs.map +1 -1
  1065. package/dist/tools/paraglide/messages/filter_reset.d.cts +2 -0
  1066. package/dist/tools/paraglide/messages/filter_reset.d.ts +2 -0
  1067. package/dist/tools/paraglide/messages/filter_reset.js +4 -4
  1068. package/dist/tools/paraglide/messages/filter_reset.js.map +1 -1
  1069. package/dist/tools/paraglide/messages/kanban_sort_default.cjs +1 -1
  1070. package/dist/tools/paraglide/messages/kanban_sort_default.cjs.map +1 -1
  1071. package/dist/tools/paraglide/messages/kanban_sort_default.d.cts +2 -0
  1072. package/dist/tools/paraglide/messages/kanban_sort_default.d.ts +2 -0
  1073. package/dist/tools/paraglide/messages/kanban_sort_default.js +4 -4
  1074. package/dist/tools/paraglide/messages/kanban_sort_default.js.map +1 -1
  1075. package/dist/tools/paraglide/messages/kanban_sort_dueasc1.cjs +1 -1
  1076. package/dist/tools/paraglide/messages/kanban_sort_dueasc1.cjs.map +1 -1
  1077. package/dist/tools/paraglide/messages/kanban_sort_dueasc1.d.cts +2 -0
  1078. package/dist/tools/paraglide/messages/kanban_sort_dueasc1.d.ts +2 -0
  1079. package/dist/tools/paraglide/messages/kanban_sort_dueasc1.js +4 -4
  1080. package/dist/tools/paraglide/messages/kanban_sort_dueasc1.js.map +1 -1
  1081. package/dist/tools/paraglide/messages/kanban_sort_duedesc1.cjs +1 -1
  1082. package/dist/tools/paraglide/messages/kanban_sort_duedesc1.cjs.map +1 -1
  1083. package/dist/tools/paraglide/messages/kanban_sort_duedesc1.d.cts +2 -0
  1084. package/dist/tools/paraglide/messages/kanban_sort_duedesc1.d.ts +2 -0
  1085. package/dist/tools/paraglide/messages/kanban_sort_duedesc1.js +4 -4
  1086. package/dist/tools/paraglide/messages/kanban_sort_duedesc1.js.map +1 -1
  1087. package/dist/tools/paraglide/messages/kanban_sort_priorityasc1.cjs +1 -1
  1088. package/dist/tools/paraglide/messages/kanban_sort_priorityasc1.cjs.map +1 -1
  1089. package/dist/tools/paraglide/messages/kanban_sort_priorityasc1.d.cts +2 -0
  1090. package/dist/tools/paraglide/messages/kanban_sort_priorityasc1.d.ts +2 -0
  1091. package/dist/tools/paraglide/messages/kanban_sort_priorityasc1.js +4 -4
  1092. package/dist/tools/paraglide/messages/kanban_sort_priorityasc1.js.map +1 -1
  1093. package/dist/tools/paraglide/messages/kanban_sort_prioritydesc1.cjs +1 -1
  1094. package/dist/tools/paraglide/messages/kanban_sort_prioritydesc1.cjs.map +1 -1
  1095. package/dist/tools/paraglide/messages/kanban_sort_prioritydesc1.d.cts +2 -0
  1096. package/dist/tools/paraglide/messages/kanban_sort_prioritydesc1.d.ts +2 -0
  1097. package/dist/tools/paraglide/messages/kanban_sort_prioritydesc1.js +4 -4
  1098. package/dist/tools/paraglide/messages/kanban_sort_prioritydesc1.js.map +1 -1
  1099. package/dist/tools/paraglide/messages/kanban_sort_titleasc1.cjs +1 -1
  1100. package/dist/tools/paraglide/messages/kanban_sort_titleasc1.cjs.map +1 -1
  1101. package/dist/tools/paraglide/messages/kanban_sort_titleasc1.d.cts +2 -0
  1102. package/dist/tools/paraglide/messages/kanban_sort_titleasc1.d.ts +2 -0
  1103. package/dist/tools/paraglide/messages/kanban_sort_titleasc1.js +4 -4
  1104. package/dist/tools/paraglide/messages/kanban_sort_titleasc1.js.map +1 -1
  1105. package/dist/tools/paraglide/messages/kanban_sort_titledesc1.cjs +1 -1
  1106. package/dist/tools/paraglide/messages/kanban_sort_titledesc1.cjs.map +1 -1
  1107. package/dist/tools/paraglide/messages/kanban_sort_titledesc1.d.cts +2 -0
  1108. package/dist/tools/paraglide/messages/kanban_sort_titledesc1.d.ts +2 -0
  1109. package/dist/tools/paraglide/messages/kanban_sort_titledesc1.js +4 -4
  1110. package/dist/tools/paraglide/messages/kanban_sort_titledesc1.js.map +1 -1
  1111. package/dist/tools/paraglide/messages/pdf_close.cjs +1 -1
  1112. package/dist/tools/paraglide/messages/pdf_close.cjs.map +1 -1
  1113. package/dist/tools/paraglide/messages/pdf_close.d.cts +2 -0
  1114. package/dist/tools/paraglide/messages/pdf_close.d.ts +2 -0
  1115. package/dist/tools/paraglide/messages/pdf_close.js +4 -4
  1116. package/dist/tools/paraglide/messages/pdf_close.js.map +1 -1
  1117. package/dist/tools/paraglide/messages/pdf_description.cjs +1 -1
  1118. package/dist/tools/paraglide/messages/pdf_description.cjs.map +1 -1
  1119. package/dist/tools/paraglide/messages/pdf_description.d.cts +2 -0
  1120. package/dist/tools/paraglide/messages/pdf_description.d.ts +2 -0
  1121. package/dist/tools/paraglide/messages/pdf_description.js +4 -4
  1122. package/dist/tools/paraglide/messages/pdf_description.js.map +1 -1
  1123. package/dist/tools/paraglide/messages/pdf_export.cjs +1 -1
  1124. package/dist/tools/paraglide/messages/pdf_export.cjs.map +1 -1
  1125. package/dist/tools/paraglide/messages/pdf_export.d.cts +2 -0
  1126. package/dist/tools/paraglide/messages/pdf_export.d.ts +2 -0
  1127. package/dist/tools/paraglide/messages/pdf_export.js +4 -4
  1128. package/dist/tools/paraglide/messages/pdf_export.js.map +1 -1
  1129. package/dist/tools/paraglide/messages/pdf_options_landscape.cjs +1 -1
  1130. package/dist/tools/paraglide/messages/pdf_options_landscape.cjs.map +1 -1
  1131. package/dist/tools/paraglide/messages/pdf_options_landscape.d.cts +2 -0
  1132. package/dist/tools/paraglide/messages/pdf_options_landscape.d.ts +2 -0
  1133. package/dist/tools/paraglide/messages/pdf_options_landscape.js +4 -4
  1134. package/dist/tools/paraglide/messages/pdf_options_landscape.js.map +1 -1
  1135. package/dist/tools/paraglide/messages/pdf_options_portrait.cjs +1 -1
  1136. package/dist/tools/paraglide/messages/pdf_options_portrait.cjs.map +1 -1
  1137. package/dist/tools/paraglide/messages/pdf_options_portrait.d.cts +2 -0
  1138. package/dist/tools/paraglide/messages/pdf_options_portrait.d.ts +2 -0
  1139. package/dist/tools/paraglide/messages/pdf_options_portrait.js +4 -4
  1140. package/dist/tools/paraglide/messages/pdf_options_portrait.js.map +1 -1
  1141. package/dist/tools/paraglide/messages/pdf_options_shrink.cjs +1 -1
  1142. package/dist/tools/paraglide/messages/pdf_options_shrink.cjs.map +1 -1
  1143. package/dist/tools/paraglide/messages/pdf_options_shrink.d.cts +2 -0
  1144. package/dist/tools/paraglide/messages/pdf_options_shrink.d.ts +2 -0
  1145. package/dist/tools/paraglide/messages/pdf_options_shrink.js +4 -4
  1146. package/dist/tools/paraglide/messages/pdf_options_shrink.js.map +1 -1
  1147. package/dist/tools/paraglide/messages/pdf_options_truncate.cjs +1 -1
  1148. package/dist/tools/paraglide/messages/pdf_options_truncate.cjs.map +1 -1
  1149. package/dist/tools/paraglide/messages/pdf_options_truncate.d.cts +2 -0
  1150. package/dist/tools/paraglide/messages/pdf_options_truncate.d.ts +2 -0
  1151. package/dist/tools/paraglide/messages/pdf_options_truncate.js +4 -4
  1152. package/dist/tools/paraglide/messages/pdf_options_truncate.js.map +1 -1
  1153. package/dist/tools/paraglide/messages/pdf_options_wrap.cjs +1 -1
  1154. package/dist/tools/paraglide/messages/pdf_options_wrap.cjs.map +1 -1
  1155. package/dist/tools/paraglide/messages/pdf_options_wrap.d.cts +2 -0
  1156. package/dist/tools/paraglide/messages/pdf_options_wrap.d.ts +2 -0
  1157. package/dist/tools/paraglide/messages/pdf_options_wrap.js +4 -4
  1158. package/dist/tools/paraglide/messages/pdf_options_wrap.js.map +1 -1
  1159. package/dist/tools/paraglide/messages/pdf_preview.cjs +1 -1
  1160. package/dist/tools/paraglide/messages/pdf_preview.cjs.map +1 -1
  1161. package/dist/tools/paraglide/messages/pdf_preview.d.cts +2 -0
  1162. package/dist/tools/paraglide/messages/pdf_preview.d.ts +2 -0
  1163. package/dist/tools/paraglide/messages/pdf_preview.js +4 -4
  1164. package/dist/tools/paraglide/messages/pdf_preview.js.map +1 -1
  1165. package/dist/tools/paraglide/messages/pdf_settings_aligncenter1.cjs +1 -1
  1166. package/dist/tools/paraglide/messages/pdf_settings_aligncenter1.cjs.map +1 -1
  1167. package/dist/tools/paraglide/messages/pdf_settings_aligncenter1.d.cts +2 -0
  1168. package/dist/tools/paraglide/messages/pdf_settings_aligncenter1.d.ts +2 -0
  1169. package/dist/tools/paraglide/messages/pdf_settings_aligncenter1.js +4 -4
  1170. package/dist/tools/paraglide/messages/pdf_settings_aligncenter1.js.map +1 -1
  1171. package/dist/tools/paraglide/messages/pdf_settings_alignleft1.cjs +1 -1
  1172. package/dist/tools/paraglide/messages/pdf_settings_alignleft1.cjs.map +1 -1
  1173. package/dist/tools/paraglide/messages/pdf_settings_alignleft1.d.cts +2 -0
  1174. package/dist/tools/paraglide/messages/pdf_settings_alignleft1.d.ts +2 -0
  1175. package/dist/tools/paraglide/messages/pdf_settings_alignleft1.js +4 -4
  1176. package/dist/tools/paraglide/messages/pdf_settings_alignleft1.js.map +1 -1
  1177. package/dist/tools/paraglide/messages/pdf_settings_alignright1.cjs +1 -1
  1178. package/dist/tools/paraglide/messages/pdf_settings_alignright1.cjs.map +1 -1
  1179. package/dist/tools/paraglide/messages/pdf_settings_alignright1.d.cts +2 -0
  1180. package/dist/tools/paraglide/messages/pdf_settings_alignright1.d.ts +2 -0
  1181. package/dist/tools/paraglide/messages/pdf_settings_alignright1.js +4 -4
  1182. package/dist/tools/paraglide/messages/pdf_settings_alignright1.js.map +1 -1
  1183. package/dist/tools/paraglide/messages/pdf_settings_bottom.cjs +1 -1
  1184. package/dist/tools/paraglide/messages/pdf_settings_bottom.cjs.map +1 -1
  1185. package/dist/tools/paraglide/messages/pdf_settings_bottom.d.cts +2 -0
  1186. package/dist/tools/paraglide/messages/pdf_settings_bottom.d.ts +2 -0
  1187. package/dist/tools/paraglide/messages/pdf_settings_bottom.js +2 -5
  1188. package/dist/tools/paraglide/messages/pdf_settings_bottom.js.map +1 -1
  1189. package/dist/tools/paraglide/messages/pdf_settings_font.cjs +1 -1
  1190. package/dist/tools/paraglide/messages/pdf_settings_font.cjs.map +1 -1
  1191. package/dist/tools/paraglide/messages/pdf_settings_font.d.cts +2 -0
  1192. package/dist/tools/paraglide/messages/pdf_settings_font.d.ts +2 -0
  1193. package/dist/tools/paraglide/messages/pdf_settings_font.js +4 -4
  1194. package/dist/tools/paraglide/messages/pdf_settings_font.js.map +1 -1
  1195. package/dist/tools/paraglide/messages/pdf_settings_fontsize1.cjs +1 -1
  1196. package/dist/tools/paraglide/messages/pdf_settings_fontsize1.cjs.map +1 -1
  1197. package/dist/tools/paraglide/messages/pdf_settings_fontsize1.d.cts +2 -0
  1198. package/dist/tools/paraglide/messages/pdf_settings_fontsize1.d.ts +2 -0
  1199. package/dist/tools/paraglide/messages/pdf_settings_fontsize1.js +4 -4
  1200. package/dist/tools/paraglide/messages/pdf_settings_fontsize1.js.map +1 -1
  1201. package/dist/tools/paraglide/messages/pdf_settings_footer.cjs +1 -1
  1202. package/dist/tools/paraglide/messages/pdf_settings_footer.cjs.map +1 -1
  1203. package/dist/tools/paraglide/messages/pdf_settings_footer.d.cts +2 -0
  1204. package/dist/tools/paraglide/messages/pdf_settings_footer.d.ts +2 -0
  1205. package/dist/tools/paraglide/messages/pdf_settings_footer.js +4 -4
  1206. package/dist/tools/paraglide/messages/pdf_settings_footer.js.map +1 -1
  1207. package/dist/tools/paraglide/messages/pdf_settings_format.cjs +1 -1
  1208. package/dist/tools/paraglide/messages/pdf_settings_format.cjs.map +1 -1
  1209. package/dist/tools/paraglide/messages/pdf_settings_format.d.cts +2 -0
  1210. package/dist/tools/paraglide/messages/pdf_settings_format.d.ts +2 -0
  1211. package/dist/tools/paraglide/messages/pdf_settings_format.js +4 -4
  1212. package/dist/tools/paraglide/messages/pdf_settings_format.js.map +1 -1
  1213. package/dist/tools/paraglide/messages/pdf_settings_header.cjs +1 -1
  1214. package/dist/tools/paraglide/messages/pdf_settings_header.cjs.map +1 -1
  1215. package/dist/tools/paraglide/messages/pdf_settings_header.d.cts +2 -0
  1216. package/dist/tools/paraglide/messages/pdf_settings_header.d.ts +2 -0
  1217. package/dist/tools/paraglide/messages/pdf_settings_header.js +4 -4
  1218. package/dist/tools/paraglide/messages/pdf_settings_header.js.map +1 -1
  1219. package/dist/tools/paraglide/messages/pdf_settings_left.cjs +1 -1
  1220. package/dist/tools/paraglide/messages/pdf_settings_left.cjs.map +1 -1
  1221. package/dist/tools/paraglide/messages/pdf_settings_left.d.cts +2 -0
  1222. package/dist/tools/paraglide/messages/pdf_settings_left.d.ts +2 -0
  1223. package/dist/tools/paraglide/messages/pdf_settings_left.js +2 -5
  1224. package/dist/tools/paraglide/messages/pdf_settings_left.js.map +1 -1
  1225. package/dist/tools/paraglide/messages/pdf_settings_margins.cjs +1 -1
  1226. package/dist/tools/paraglide/messages/pdf_settings_margins.cjs.map +1 -1
  1227. package/dist/tools/paraglide/messages/pdf_settings_margins.d.cts +2 -0
  1228. package/dist/tools/paraglide/messages/pdf_settings_margins.d.ts +2 -0
  1229. package/dist/tools/paraglide/messages/pdf_settings_margins.js +4 -4
  1230. package/dist/tools/paraglide/messages/pdf_settings_margins.js.map +1 -1
  1231. package/dist/tools/paraglide/messages/pdf_settings_orientation.cjs +1 -1
  1232. package/dist/tools/paraglide/messages/pdf_settings_orientation.cjs.map +1 -1
  1233. package/dist/tools/paraglide/messages/pdf_settings_orientation.d.cts +2 -0
  1234. package/dist/tools/paraglide/messages/pdf_settings_orientation.d.ts +2 -0
  1235. package/dist/tools/paraglide/messages/pdf_settings_orientation.js +4 -4
  1236. package/dist/tools/paraglide/messages/pdf_settings_orientation.js.map +1 -1
  1237. package/dist/tools/paraglide/messages/pdf_settings_overflow.cjs +1 -1
  1238. package/dist/tools/paraglide/messages/pdf_settings_overflow.cjs.map +1 -1
  1239. package/dist/tools/paraglide/messages/pdf_settings_overflow.d.cts +2 -0
  1240. package/dist/tools/paraglide/messages/pdf_settings_overflow.d.ts +2 -0
  1241. package/dist/tools/paraglide/messages/pdf_settings_overflow.js +4 -4
  1242. package/dist/tools/paraglide/messages/pdf_settings_overflow.js.map +1 -1
  1243. package/dist/tools/paraglide/messages/pdf_settings_right.cjs +1 -1
  1244. package/dist/tools/paraglide/messages/pdf_settings_right.cjs.map +1 -1
  1245. package/dist/tools/paraglide/messages/pdf_settings_right.d.cts +2 -0
  1246. package/dist/tools/paraglide/messages/pdf_settings_right.d.ts +2 -0
  1247. package/dist/tools/paraglide/messages/pdf_settings_right.js +2 -5
  1248. package/dist/tools/paraglide/messages/pdf_settings_right.js.map +1 -1
  1249. package/dist/tools/paraglide/messages/pdf_settings_showline1.cjs +1 -1
  1250. package/dist/tools/paraglide/messages/pdf_settings_showline1.cjs.map +1 -1
  1251. package/dist/tools/paraglide/messages/pdf_settings_showline1.d.cts +2 -0
  1252. package/dist/tools/paraglide/messages/pdf_settings_showline1.d.ts +2 -0
  1253. package/dist/tools/paraglide/messages/pdf_settings_showline1.js +4 -4
  1254. package/dist/tools/paraglide/messages/pdf_settings_showline1.js.map +1 -1
  1255. package/dist/tools/paraglide/messages/pdf_settings_shrinktable1.cjs +1 -1
  1256. package/dist/tools/paraglide/messages/pdf_settings_shrinktable1.cjs.map +1 -1
  1257. package/dist/tools/paraglide/messages/pdf_settings_shrinktable1.d.cts +2 -0
  1258. package/dist/tools/paraglide/messages/pdf_settings_shrinktable1.d.ts +2 -0
  1259. package/dist/tools/paraglide/messages/pdf_settings_shrinktable1.js +4 -4
  1260. package/dist/tools/paraglide/messages/pdf_settings_shrinktable1.js.map +1 -1
  1261. package/dist/tools/paraglide/messages/pdf_settings_shrinktabledesc2.cjs +1 -1
  1262. package/dist/tools/paraglide/messages/pdf_settings_shrinktabledesc2.cjs.map +1 -1
  1263. package/dist/tools/paraglide/messages/pdf_settings_shrinktabledesc2.d.cts +2 -0
  1264. package/dist/tools/paraglide/messages/pdf_settings_shrinktabledesc2.d.ts +2 -0
  1265. package/dist/tools/paraglide/messages/pdf_settings_shrinktabledesc2.js +4 -4
  1266. package/dist/tools/paraglide/messages/pdf_settings_shrinktabledesc2.js.map +1 -1
  1267. package/dist/tools/paraglide/messages/pdf_settings_top.cjs +1 -1
  1268. package/dist/tools/paraglide/messages/pdf_settings_top.cjs.map +1 -1
  1269. package/dist/tools/paraglide/messages/pdf_settings_top.d.cts +2 -0
  1270. package/dist/tools/paraglide/messages/pdf_settings_top.d.ts +2 -0
  1271. package/dist/tools/paraglide/messages/pdf_settings_top.js +2 -5
  1272. package/dist/tools/paraglide/messages/pdf_settings_top.js.map +1 -1
  1273. package/dist/tools/paraglide/messages/pdf_tabs_behavior.cjs +1 -1
  1274. package/dist/tools/paraglide/messages/pdf_tabs_behavior.cjs.map +1 -1
  1275. package/dist/tools/paraglide/messages/pdf_tabs_behavior.d.cts +2 -0
  1276. package/dist/tools/paraglide/messages/pdf_tabs_behavior.d.ts +2 -0
  1277. package/dist/tools/paraglide/messages/pdf_tabs_behavior.js +4 -4
  1278. package/dist/tools/paraglide/messages/pdf_tabs_behavior.js.map +1 -1
  1279. package/dist/tools/paraglide/messages/pdf_tabs_page.cjs +1 -1
  1280. package/dist/tools/paraglide/messages/pdf_tabs_page.cjs.map +1 -1
  1281. package/dist/tools/paraglide/messages/pdf_tabs_page.d.cts +2 -0
  1282. package/dist/tools/paraglide/messages/pdf_tabs_page.d.ts +2 -0
  1283. package/dist/tools/paraglide/messages/pdf_tabs_page.js +4 -4
  1284. package/dist/tools/paraglide/messages/pdf_tabs_page.js.map +1 -1
  1285. package/dist/tools/paraglide/messages/pdf_tabs_text.cjs +1 -1
  1286. package/dist/tools/paraglide/messages/pdf_tabs_text.cjs.map +1 -1
  1287. package/dist/tools/paraglide/messages/pdf_tabs_text.d.cts +2 -0
  1288. package/dist/tools/paraglide/messages/pdf_tabs_text.d.ts +2 -0
  1289. package/dist/tools/paraglide/messages/pdf_tabs_text.js +4 -4
  1290. package/dist/tools/paraglide/messages/pdf_tabs_text.js.map +1 -1
  1291. package/dist/tools/paraglide/messages/pdf_title.cjs +1 -1
  1292. package/dist/tools/paraglide/messages/pdf_title.cjs.map +1 -1
  1293. package/dist/tools/paraglide/messages/pdf_title.d.cts +2 -0
  1294. package/dist/tools/paraglide/messages/pdf_title.d.ts +2 -0
  1295. package/dist/tools/paraglide/messages/pdf_title.js +4 -4
  1296. package/dist/tools/paraglide/messages/pdf_title.js.map +1 -1
  1297. package/dist/tools/paraglide/messages/signin1.cjs +1 -1
  1298. package/dist/tools/paraglide/messages/signin1.cjs.map +1 -1
  1299. package/dist/tools/paraglide/messages/signin1.d.cts +2 -0
  1300. package/dist/tools/paraglide/messages/signin1.d.ts +2 -0
  1301. package/dist/tools/paraglide/messages/signin1.js +4 -4
  1302. package/dist/tools/paraglide/messages/signin1.js.map +1 -1
  1303. package/dist/tools/paraglide/messages/signup1.cjs +1 -1
  1304. package/dist/tools/paraglide/messages/signup1.cjs.map +1 -1
  1305. package/dist/tools/paraglide/messages/signup1.d.cts +2 -0
  1306. package/dist/tools/paraglide/messages/signup1.d.ts +2 -0
  1307. package/dist/tools/paraglide/messages/signup1.js +4 -4
  1308. package/dist/tools/paraglide/messages/signup1.js.map +1 -1
  1309. package/dist/tools/paraglide/runtime.cjs +1 -1
  1310. package/dist/tools/paraglide/runtime.cjs.map +1 -1
  1311. package/dist/tools/paraglide/runtime.d.cts +18 -4
  1312. package/dist/tools/paraglide/runtime.d.ts +18 -4
  1313. package/dist/tools/paraglide/runtime.js +54 -36
  1314. package/dist/tools/paraglide/runtime.js.map +1 -1
  1315. package/dist/ui/components/ui/accordion.cjs +1 -1
  1316. package/dist/ui/components/ui/accordion.cjs.map +1 -1
  1317. package/dist/ui/components/ui/accordion.d.cts +16 -4
  1318. package/dist/ui/components/ui/accordion.d.ts +16 -4
  1319. package/dist/ui/components/ui/accordion.js +58 -50
  1320. package/dist/ui/components/ui/accordion.js.map +1 -1
  1321. package/dist/ui/components/ui/alert-dialog.cjs +1 -1
  1322. package/dist/ui/components/ui/alert-dialog.cjs.map +1 -1
  1323. package/dist/ui/components/ui/alert-dialog.d.cts +46 -12
  1324. package/dist/ui/components/ui/alert-dialog.d.ts +46 -12
  1325. package/dist/ui/components/ui/alert-dialog.js +103 -83
  1326. package/dist/ui/components/ui/alert-dialog.js.map +1 -1
  1327. package/dist/ui/components/ui/avatar.cjs +1 -1
  1328. package/dist/ui/components/ui/avatar.cjs.map +1 -1
  1329. package/dist/ui/components/ui/avatar.d.cts +18 -5
  1330. package/dist/ui/components/ui/avatar.d.ts +18 -5
  1331. package/dist/ui/components/ui/avatar.js +34 -28
  1332. package/dist/ui/components/ui/avatar.js.map +1 -1
  1333. package/dist/ui/components/ui/button-components.cjs +1 -1
  1334. package/dist/ui/components/ui/button-components.cjs.map +1 -1
  1335. package/dist/ui/components/ui/button-components.d.cts +4 -1
  1336. package/dist/ui/components/ui/button-components.d.ts +4 -1
  1337. package/dist/ui/components/ui/button-components.js +29 -27
  1338. package/dist/ui/components/ui/button-components.js.map +1 -1
  1339. package/dist/ui/components/ui/card.cjs +1 -1
  1340. package/dist/ui/components/ui/card.cjs.map +1 -1
  1341. package/dist/ui/components/ui/card.d.cts +30 -9
  1342. package/dist/ui/components/ui/card.d.ts +30 -9
  1343. package/dist/ui/components/ui/card.js +66 -52
  1344. package/dist/ui/components/ui/card.js.map +1 -1
  1345. package/dist/ui/components/ui/checkbox.cjs +1 -1
  1346. package/dist/ui/components/ui/checkbox.cjs.map +1 -1
  1347. package/dist/ui/components/ui/checkbox.d.cts +4 -1
  1348. package/dist/ui/components/ui/checkbox.d.ts +4 -1
  1349. package/dist/ui/components/ui/checkbox.js +19 -17
  1350. package/dist/ui/components/ui/checkbox.js.map +1 -1
  1351. package/dist/ui/components/ui/context-menu.cjs +1 -1
  1352. package/dist/ui/components/ui/context-menu.cjs.map +1 -1
  1353. package/dist/ui/components/ui/context-menu.d.cts +62 -17
  1354. package/dist/ui/components/ui/context-menu.d.ts +62 -17
  1355. package/dist/ui/components/ui/context-menu.js +145 -119
  1356. package/dist/ui/components/ui/context-menu.js.map +1 -1
  1357. package/dist/ui/components/ui/dialog.cjs +1 -1
  1358. package/dist/ui/components/ui/dialog.cjs.map +1 -1
  1359. package/dist/ui/components/ui/dialog.d.cts +28 -7
  1360. package/dist/ui/components/ui/dialog.d.ts +28 -7
  1361. package/dist/ui/components/ui/dialog.js +82 -70
  1362. package/dist/ui/components/ui/dialog.js.map +1 -1
  1363. package/dist/ui/components/ui/dropdown-menu.cjs +1 -1
  1364. package/dist/ui/components/ui/dropdown-menu.cjs.map +1 -1
  1365. package/dist/ui/components/ui/dropdown-menu.d.cts +46 -13
  1366. package/dist/ui/components/ui/dropdown-menu.d.ts +46 -13
  1367. package/dist/ui/components/ui/dropdown-menu.js +125 -107
  1368. package/dist/ui/components/ui/dropdown-menu.js.map +1 -1
  1369. package/dist/ui/components/ui/field.cjs +1 -1
  1370. package/dist/ui/components/ui/field.cjs.map +1 -1
  1371. package/dist/ui/components/ui/field.d.cts +24 -7
  1372. package/dist/ui/components/ui/field.d.ts +24 -7
  1373. package/dist/ui/components/ui/field.js +56 -50
  1374. package/dist/ui/components/ui/field.js.map +1 -1
  1375. package/dist/ui/components/ui/input.cjs +1 -1
  1376. package/dist/ui/components/ui/input.cjs.map +1 -1
  1377. package/dist/ui/components/ui/input.d.cts +4 -1
  1378. package/dist/ui/components/ui/input.d.ts +4 -1
  1379. package/dist/ui/components/ui/input.js +18 -18
  1380. package/dist/ui/components/ui/input.js.map +1 -1
  1381. package/dist/ui/components/ui/label.cjs +1 -1
  1382. package/dist/ui/components/ui/label.cjs.map +1 -1
  1383. package/dist/ui/components/ui/label.d.cts +4 -1
  1384. package/dist/ui/components/ui/label.d.ts +4 -1
  1385. package/dist/ui/components/ui/label.js +11 -9
  1386. package/dist/ui/components/ui/label.js.map +1 -1
  1387. package/dist/ui/components/ui/layout.cjs +1 -1
  1388. package/dist/ui/components/ui/layout.cjs.map +1 -1
  1389. package/dist/ui/components/ui/layout.d.cts +4 -1
  1390. package/dist/ui/components/ui/layout.d.ts +4 -1
  1391. package/dist/ui/components/ui/layout.js +22 -22
  1392. package/dist/ui/components/ui/layout.js.map +1 -1
  1393. package/dist/ui/components/ui/mobile-form.cjs +1 -1
  1394. package/dist/ui/components/ui/mobile-form.cjs.map +1 -1
  1395. package/dist/ui/components/ui/mobile-form.d.cts +24 -6
  1396. package/dist/ui/components/ui/mobile-form.d.ts +24 -6
  1397. package/dist/ui/components/ui/mobile-form.js +102 -94
  1398. package/dist/ui/components/ui/mobile-form.js.map +1 -1
  1399. package/dist/ui/components/ui/pagination.cjs +1 -1
  1400. package/dist/ui/components/ui/pagination.cjs.map +1 -1
  1401. package/dist/ui/components/ui/pagination.d.cts +22 -6
  1402. package/dist/ui/components/ui/pagination.d.ts +22 -6
  1403. package/dist/ui/components/ui/pagination.js +57 -48
  1404. package/dist/ui/components/ui/pagination.js.map +1 -1
  1405. package/dist/ui/components/ui/password-input.cjs +1 -1
  1406. package/dist/ui/components/ui/password-input.cjs.map +1 -1
  1407. package/dist/ui/components/ui/password-input.d.cts +4 -1
  1408. package/dist/ui/components/ui/password-input.d.ts +4 -1
  1409. package/dist/ui/components/ui/password-input.js +6 -6
  1410. package/dist/ui/components/ui/password-input.js.map +1 -1
  1411. package/dist/ui/components/ui/popover.cjs +1 -1
  1412. package/dist/ui/components/ui/popover.cjs.map +1 -1
  1413. package/dist/ui/components/ui/popover.d.cts +16 -4
  1414. package/dist/ui/components/ui/popover.d.ts +16 -4
  1415. package/dist/ui/components/ui/popover.js +51 -43
  1416. package/dist/ui/components/ui/popover.js.map +1 -1
  1417. package/dist/ui/components/ui/progress.cjs +1 -1
  1418. package/dist/ui/components/ui/progress.cjs.map +1 -1
  1419. package/dist/ui/components/ui/progress.d.cts +21 -5
  1420. package/dist/ui/components/ui/progress.d.ts +21 -5
  1421. package/dist/ui/components/ui/progress.js +50 -40
  1422. package/dist/ui/components/ui/progress.js.map +1 -1
  1423. package/dist/ui/components/ui/radio-card.cjs +1 -1
  1424. package/dist/ui/components/ui/radio-card.cjs.map +1 -1
  1425. package/dist/ui/components/ui/radio-card.d.cts +9 -3
  1426. package/dist/ui/components/ui/radio-card.d.ts +9 -3
  1427. package/dist/ui/components/ui/radio-card.js +46 -42
  1428. package/dist/ui/components/ui/radio-card.js.map +1 -1
  1429. package/dist/ui/components/ui/radio-group.cjs +1 -1
  1430. package/dist/ui/components/ui/radio-group.cjs.map +1 -1
  1431. package/dist/ui/components/ui/radio-group.d.cts +8 -2
  1432. package/dist/ui/components/ui/radio-group.d.ts +8 -2
  1433. package/dist/ui/components/ui/radio-group.js +28 -24
  1434. package/dist/ui/components/ui/radio-group.js.map +1 -1
  1435. package/dist/ui/components/ui/scroll-area.cjs +1 -1
  1436. package/dist/ui/components/ui/scroll-area.cjs.map +1 -1
  1437. package/dist/ui/components/ui/scroll-area.d.cts +4 -1
  1438. package/dist/ui/components/ui/scroll-area.d.ts +4 -1
  1439. package/dist/ui/components/ui/scroll-area.js +26 -24
  1440. package/dist/ui/components/ui/scroll-area.js.map +1 -1
  1441. package/dist/ui/components/ui/select.cjs +1 -1
  1442. package/dist/ui/components/ui/select.cjs.map +1 -1
  1443. package/dist/ui/components/ui/select.d.cts +8 -2
  1444. package/dist/ui/components/ui/select.d.ts +8 -2
  1445. package/dist/ui/components/ui/select.js +76 -72
  1446. package/dist/ui/components/ui/select.js.map +1 -1
  1447. package/dist/ui/components/ui/separator.cjs +1 -1
  1448. package/dist/ui/components/ui/separator.cjs.map +1 -1
  1449. package/dist/ui/components/ui/separator.d.cts +5 -1
  1450. package/dist/ui/components/ui/separator.d.ts +5 -1
  1451. package/dist/ui/components/ui/separator.js +13 -11
  1452. package/dist/ui/components/ui/separator.js.map +1 -1
  1453. package/dist/ui/components/ui/sheet.cjs +1 -1
  1454. package/dist/ui/components/ui/sheet.cjs.map +1 -1
  1455. package/dist/ui/components/ui/sheet.d.cts +20 -5
  1456. package/dist/ui/components/ui/sheet.d.ts +20 -5
  1457. package/dist/ui/components/ui/sheet.js +72 -62
  1458. package/dist/ui/components/ui/sheet.js.map +1 -1
  1459. package/dist/ui/components/ui/slider.cjs +1 -1
  1460. package/dist/ui/components/ui/slider.cjs.map +1 -1
  1461. package/dist/ui/components/ui/slider.d.cts +4 -1
  1462. package/dist/ui/components/ui/slider.d.ts +4 -1
  1463. package/dist/ui/components/ui/slider.js +15 -15
  1464. package/dist/ui/components/ui/slider.js.map +1 -1
  1465. package/dist/ui/components/ui/switch.cjs +1 -1
  1466. package/dist/ui/components/ui/switch.cjs.map +1 -1
  1467. package/dist/ui/components/ui/switch.d.cts +4 -1
  1468. package/dist/ui/components/ui/switch.d.ts +4 -1
  1469. package/dist/ui/components/ui/switch.js +18 -16
  1470. package/dist/ui/components/ui/switch.js.map +1 -1
  1471. package/dist/ui/components/ui/table.cjs +1 -1
  1472. package/dist/ui/components/ui/table.cjs.map +1 -1
  1473. package/dist/ui/components/ui/table.d.cts +32 -8
  1474. package/dist/ui/components/ui/table.d.ts +32 -8
  1475. package/dist/ui/components/ui/table.js +78 -62
  1476. package/dist/ui/components/ui/table.js.map +1 -1
  1477. package/dist/ui/components/ui/textarea.cjs +1 -1
  1478. package/dist/ui/components/ui/textarea.cjs.map +1 -1
  1479. package/dist/ui/components/ui/textarea.d.cts +4 -1
  1480. package/dist/ui/components/ui/textarea.d.ts +4 -1
  1481. package/dist/ui/components/ui/textarea.js +12 -10
  1482. package/dist/ui/components/ui/textarea.js.map +1 -1
  1483. package/dist/ui/components/ui/toast.cjs +1 -1
  1484. package/dist/ui/components/ui/toast.cjs.map +1 -1
  1485. package/dist/ui/components/ui/toast.d.cts +27 -8
  1486. package/dist/ui/components/ui/toast.d.ts +27 -8
  1487. package/dist/ui/components/ui/toast.js +64 -52
  1488. package/dist/ui/components/ui/toast.js.map +1 -1
  1489. package/dist/ui/components/ui/toggle-components.cjs +1 -1
  1490. package/dist/ui/components/ui/toggle-components.cjs.map +1 -1
  1491. package/dist/ui/components/ui/toggle-components.d.cts +5 -4
  1492. package/dist/ui/components/ui/toggle-components.d.ts +5 -4
  1493. package/dist/ui/components/ui/toggle-components.js +16 -14
  1494. package/dist/ui/components/ui/toggle-components.js.map +1 -1
  1495. package/dist/ui/components/ui/toggle-group.cjs +1 -1
  1496. package/dist/ui/components/ui/toggle-group.cjs.map +1 -1
  1497. package/dist/ui/components/ui/toggle-group.d.cts +9 -3
  1498. package/dist/ui/components/ui/toggle-group.d.ts +9 -3
  1499. package/dist/ui/components/ui/toggle-group.js +22 -18
  1500. package/dist/ui/components/ui/toggle-group.js.map +1 -1
  1501. package/dist/ui/components/ui/tooltip.cjs +1 -1
  1502. package/dist/ui/components/ui/tooltip.cjs.map +1 -1
  1503. package/dist/ui/components/ui/tooltip.d.cts +4 -1
  1504. package/dist/ui/components/ui/tooltip.d.ts +4 -1
  1505. package/dist/ui/components/ui/tooltip.js +26 -24
  1506. package/dist/ui/components/ui/tooltip.js.map +1 -1
  1507. package/dist/ui/lib/hooks/use-keyboard-shortcut.cjs +1 -1
  1508. package/dist/ui/lib/hooks/use-keyboard-shortcut.cjs.map +1 -1
  1509. package/dist/ui/lib/hooks/use-keyboard-shortcut.d.cts +4 -5
  1510. package/dist/ui/lib/hooks/use-keyboard-shortcut.d.ts +4 -5
  1511. package/dist/ui/lib/hooks/use-keyboard-shortcut.js +15 -14
  1512. package/dist/ui/lib/hooks/use-keyboard-shortcut.js.map +1 -1
  1513. package/docs/index.md +18 -91
  1514. package/docs/migration.md +335 -18
  1515. package/docs/tools.md +8 -0
  1516. package/llms-full.txt +368 -189
  1517. package/package.json +25 -20
  1518. package/dist/tools/types/dnd-react19.cjs +0 -1
  1519. package/dist/tools/types/dnd-react19.d.cts +0 -10
  1520. package/dist/tools/types/dnd-react19.d.ts +0 -10
  1521. package/dist/tools/types/dnd-react19.js +0 -1
  1522. package/dist/types/dnd-react19.cjs +0 -1
  1523. package/dist/types/dnd-react19.d.cts +0 -10
  1524. package/dist/types/dnd-react19.d.ts +0 -10
  1525. package/dist/types/dnd-react19.js +0 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "name": "@alneas/appkit-react",
4
- "version": "0.2.0",
4
+ "version": "0.3.1",
5
5
  "exports": {
6
6
  ".": {
7
7
  "import": {
@@ -351,29 +351,29 @@
351
351
  "./api-index.json": "./consumer-ai/api-index.json"
352
352
  },
353
353
  "dependencies": {
354
- "@alneas/appkit-core": "0.2.0",
354
+ "@alneas/appkit-core": "^0.2.2",
355
355
  "@base-ui/react": "^1.9.0",
356
- "@dnd-kit/core": "^6.3.1",
357
- "@dnd-kit/sortable": "^10.0.0",
358
- "@dnd-kit/utilities": "^3.2.2",
359
- "@hookform/resolvers": "^5.9.2",
360
- "@tanstack/react-query": "5.104.4",
356
+ "@dnd-kit/collision": "0.5.1",
357
+ "@dnd-kit/dom": "0.5.1",
358
+ "@dnd-kit/react": "0.5.1",
359
+ "@hookform/resolvers": "^6.0.0",
360
+ "@tanstack/react-query": "5.104.5",
361
361
  "@tanstack/react-table": "9.3.1",
362
362
  "class-variance-authority": "^0.7.1",
363
363
  "clsx": "^2.1.1",
364
364
  "cmdk-base": "^1.0.0",
365
365
  "date-fns": "^4.4.0",
366
366
  "input-otp": "^1.5.0",
367
- "lucide-react": "^1.59.0",
367
+ "lucide-react": "^1.61.0",
368
368
  "react-day-picker": "^10.0.2",
369
369
  "react-hook-form": "^7.90.0",
370
- "react-resizable-panels": "^4.14.6",
370
+ "react-resizable-panels": "^4.14.8",
371
371
  "tailwind-merge": "^3.7.0",
372
372
  "vaul-base": "^1.0.0",
373
- "zustand": "^5.0.15",
373
+ "zustand": "^5.0.16",
374
374
  "tw-animate-css": "^1.4.0",
375
375
  "zod": "^4.2.1",
376
- "@tanstack/query-core": "5.104.4",
376
+ "@tanstack/query-core": "5.104.5",
377
377
  "@tanstack/table-core": "9.3.1"
378
378
  },
379
379
  "peers": {
@@ -1 +1 @@
1
- {"version":3,"file":"use-screen-action.cjs","names":["useScreenActionRegistry","useRef","require_ai_action_context","react","useScreenAction","registry","actionRef","action","unregister","input","context","id","description","metadata"],"sources":["../../../src/ai/action/use-screen-action.ts"],"sourcesContent":["import { useLayoutEffect, useRef } from 'react';\nimport type { ActionDefinition, ActionValidator, ExecutionContext } from \"@alneas/appkit-core/ai\";\nimport { useScreenActionRegistry } from './context';\n\n/**\n * Registers a validated action on the nearest screen registry after commit.\n *\n * @typeParam TInput - Validated input shape; defaults to unknown.\n *\n * @typeParam TOutput - Handler output shape; defaults to unknown.\n *\n * @param action - Stable ID/description/metadata with validator and handler from the host.\n *\n * @returns No value; effect cleanup unregisters this registration.\n *\n * @throws Error without ScreenActionProvider; registration errors propagate from the layout effect.\n *\n * @remarks Latest committed validator/handler are read through refs. ID, description or\n * metadata identity changes trigger re-registration. No action executes automatically;\n * no styles are required. The host owns effects and authorization in its handler.\n *\n * @example\n * ```tsx\n * import { ScreenActionProvider, useScreenAction, type ActionDefinition } from '@alneas/appkit-react/ai/action';\n * function Registration({ action }: { action: ActionDefinition<string, string> }) { useScreenAction(action); return null; }\n * export function Screen({ action }: { action: ActionDefinition<string, string> }) {\n * return <ScreenActionProvider><Registration action={action} /></ScreenActionProvider>;\n * }\n * ```\n */\nexport function useScreenAction<TInput = unknown, TOutput = unknown>(\n action: ActionDefinition<TInput, TOutput>\n): void {\n const registry = useScreenActionRegistry();\n\n const actionRef = useRef(action);\n useLayoutEffect(() => {\n actionRef.current = action;\n });\n\n const { id, description, metadata } = action;\n\n useLayoutEffect(() => {\n const wrappedValidate: ActionValidator<TInput> = (input) => {\n return actionRef.current.validate(input);\n };\n\n const wrappedHandler = (input: TInput, context?: ExecutionContext) => {\n return context ? actionRef.current.handler(input, context) : actionRef.current.handler(input);\n };\n\n const unregister = registry.registerAction({\n id,\n description,\n validate: wrappedValidate,\n handler: wrappedHandler,\n metadata,\n });\n\n return () => {\n unregister();\n };\n }, [registry, id, description, metadata]);\n}\n"],"mappings":"A,wIA8BA,SAAgBI,EACd,EACM,CACN,IAAMC,EAAWL,EAAAA,wBAAwB,EAEnCM,GAAA,EAAYL,EAAAA,OAAAA,CAAOM,CAAM,GAC/B,EAAAJ,EAAA,gBAAA,KAAsB,CACpB,EAAU,QAAUI,CACtB,CAAC,EAED,GAAM,CAAE,KAAI,cAAa,YAAaA,GAEtC,EAAAJ,EAAA,gBAAA,KAAsB,CASpB,IAAMK,EAAaH,EAAS,eAAe,CACzC,KACA,cACA,SAXgD,GACzCC,EAAU,QAAQ,SAASG,CAAK,EAWvC,SARsB,EAAe,IAC9BC,EAAUJ,EAAU,QAAQ,QAAQG,EAAOC,CAAO,EAAIJ,EAAU,QAAQ,QAAQG,CAAK,EAQ5F,UACF,CAAC,EAED,UAAa,CACXD,EAAW,CACb,CACF,EAAG,CAACH,EAAUM,EAAIC,EAAaC,CAAQ,CAAC,CAC1C,C"}
1
+ {"version":3,"file":"use-screen-action.cjs","names":["useScreenActionRegistry","useRef","require_ai_action_context","react","useScreenAction","registry","actionRef","action","unregister","input","context","id","description","metadata"],"sources":["../../../src/ai/action/use-screen-action.ts"],"sourcesContent":["import { useLayoutEffect, useRef } from 'react';\nimport type { ActionDefinition, ActionValidator, ExecutionContext } from \"@alneas/appkit-core/ai\";\nimport { useScreenActionRegistry } from './context';\n\n/**\n * Registers a validated action on the nearest screen registry after commit.\n *\n * @typeParam TInput - Validated input shape; defaults to unknown.\n *\n * @typeParam TOutput - Handler output shape; defaults to unknown.\n *\n * @param action - Stable ID/description/metadata with validator and handler from the host.\n *\n * @returns No value; effect cleanup unregisters this registration.\n *\n * @throws Error without ScreenActionProvider; registration errors propagate from the layout effect.\n *\n * @remarks Latest committed validator/handler are read through refs. ID, description or\n * metadata identity changes trigger re-registration. No action executes automatically;\n * no styles are required. The host owns effects and authorization in its handler.\n * Keep the ref/layout-effect bridge: external registry callers can invoke validation\n * and execution outside Effect-originated callbacks. useEffectEvent is restricted to\n * Effect logic and is not a replacement for these externally callable functions.\n * This preserves latest committed callbacks without re-registering on every render;\n * it is not a React 18 compatibility shim.\n *\n * @example\n * ```tsx\n * import { ScreenActionProvider, useScreenAction, type ActionDefinition } from '@alneas/appkit-react/ai/action';\n * function Registration({ action }: { action: ActionDefinition<string, string> }) { useScreenAction(action); return null; }\n * export function Screen({ action }: { action: ActionDefinition<string, string> }) {\n * return <ScreenActionProvider><Registration action={action} /></ScreenActionProvider>;\n * }\n * ```\n */\nexport function useScreenAction<TInput = unknown, TOutput = unknown>(\n action: ActionDefinition<TInput, TOutput>\n): void {\n const registry = useScreenActionRegistry();\n\n const actionRef = useRef(action);\n useLayoutEffect(() => {\n actionRef.current = action;\n });\n\n const { id, description, metadata } = action;\n\n useLayoutEffect(() => {\n const wrappedValidate: ActionValidator<TInput> = (input) => {\n return actionRef.current.validate(input);\n };\n\n const wrappedHandler = (input: TInput, context?: ExecutionContext) => {\n return context ? actionRef.current.handler(input, context) : actionRef.current.handler(input);\n };\n\n const unregister = registry.registerAction({\n id,\n description,\n validate: wrappedValidate,\n handler: wrappedHandler,\n metadata,\n });\n\n return () => {\n unregister();\n };\n }, [registry, id, description, metadata]);\n}\n"],"mappings":"A,wIAmCA,SAAgBI,EACd,EACM,CACN,IAAMC,EAAWL,EAAAA,wBAAwB,EAEnCM,GAAA,EAAYL,EAAAA,OAAAA,CAAOM,CAAM,GAC/B,EAAAJ,EAAA,gBAAA,KAAsB,CACpB,EAAU,QAAUI,CACtB,CAAC,EAED,GAAM,CAAE,KAAI,cAAa,YAAaA,GAEtC,EAAAJ,EAAA,gBAAA,KAAsB,CASpB,IAAMK,EAAaH,EAAS,eAAe,CACzC,KACA,cACA,SAXgD,GACzCC,EAAU,QAAQ,SAASG,CAAK,EAWvC,SARsB,EAAe,IAC9BC,EAAUJ,EAAU,QAAQ,QAAQG,EAAOC,CAAO,EAAIJ,EAAU,QAAQ,QAAQG,CAAK,EAQ5F,UACF,CAAC,EAED,UAAa,CACXD,EAAW,CACb,CACF,EAAG,CAACH,EAAUM,EAAIC,EAAaC,CAAQ,CAAC,CAC1C,C"}
@@ -15,6 +15,11 @@ import { ActionDefinition } from '@alneas/appkit-core/ai';
15
15
  * @remarks Latest committed validator/handler are read through refs. ID, description or
16
16
  * metadata identity changes trigger re-registration. No action executes automatically;
17
17
  * no styles are required. The host owns effects and authorization in its handler.
18
+ * Keep the ref/layout-effect bridge: external registry callers can invoke validation
19
+ * and execution outside Effect-originated callbacks. useEffectEvent is restricted to
20
+ * Effect logic and is not a replacement for these externally callable functions.
21
+ * This preserves latest committed callbacks without re-registering on every render;
22
+ * it is not a React 18 compatibility shim.
18
23
  *
19
24
  * @example
20
25
  * ```tsx
@@ -15,6 +15,11 @@ import { ActionDefinition } from '@alneas/appkit-core/ai';
15
15
  * @remarks Latest committed validator/handler are read through refs. ID, description or
16
16
  * metadata identity changes trigger re-registration. No action executes automatically;
17
17
  * no styles are required. The host owns effects and authorization in its handler.
18
+ * Keep the ref/layout-effect bridge: external registry callers can invoke validation
19
+ * and execution outside Effect-originated callbacks. useEffectEvent is restricted to
20
+ * Effect logic and is not a replacement for these externally callable functions.
21
+ * This preserves latest committed callbacks without re-registering on every render;
22
+ * it is not a React 18 compatibility shim.
18
23
  *
19
24
  * @example
20
25
  * ```tsx
@@ -1 +1 @@
1
- {"version":3,"file":"use-screen-action.js","names":["useScreenAction","registry","useScreenActionRegistry","actionRef","useRef","action","unregister","input","context","id","description","metadata"],"sources":["../../../src/ai/action/use-screen-action.ts"],"sourcesContent":["import { useLayoutEffect, useRef } from 'react';\nimport type { ActionDefinition, ActionValidator, ExecutionContext } from \"@alneas/appkit-core/ai\";\nimport { useScreenActionRegistry } from './context';\n\n/**\n * Registers a validated action on the nearest screen registry after commit.\n *\n * @typeParam TInput - Validated input shape; defaults to unknown.\n *\n * @typeParam TOutput - Handler output shape; defaults to unknown.\n *\n * @param action - Stable ID/description/metadata with validator and handler from the host.\n *\n * @returns No value; effect cleanup unregisters this registration.\n *\n * @throws Error without ScreenActionProvider; registration errors propagate from the layout effect.\n *\n * @remarks Latest committed validator/handler are read through refs. ID, description or\n * metadata identity changes trigger re-registration. No action executes automatically;\n * no styles are required. The host owns effects and authorization in its handler.\n *\n * @example\n * ```tsx\n * import { ScreenActionProvider, useScreenAction, type ActionDefinition } from '@alneas/appkit-react/ai/action';\n * function Registration({ action }: { action: ActionDefinition<string, string> }) { useScreenAction(action); return null; }\n * export function Screen({ action }: { action: ActionDefinition<string, string> }) {\n * return <ScreenActionProvider><Registration action={action} /></ScreenActionProvider>;\n * }\n * ```\n */\nexport function useScreenAction<TInput = unknown, TOutput = unknown>(\n action: ActionDefinition<TInput, TOutput>\n): void {\n const registry = useScreenActionRegistry();\n\n const actionRef = useRef(action);\n useLayoutEffect(() => {\n actionRef.current = action;\n });\n\n const { id, description, metadata } = action;\n\n useLayoutEffect(() => {\n const wrappedValidate: ActionValidator<TInput> = (input) => {\n return actionRef.current.validate(input);\n };\n\n const wrappedHandler = (input: TInput, context?: ExecutionContext) => {\n return context ? actionRef.current.handler(input, context) : actionRef.current.handler(input);\n };\n\n const unregister = registry.registerAction({\n id,\n description,\n validate: wrappedValidate,\n handler: wrappedHandler,\n metadata,\n });\n\n return () => {\n unregister();\n };\n }, [registry, id, description, metadata]);\n}\n"],"mappings":";;;;AA8BA,SAAgBA,EACd,GACM;CACN,IAAMC,IAAWC,EAAwB,GAEnCC,IAAYC,EAAOC,CAAM;CAC/B,QAAsB;EACpB,EAAU,UAAUA;CACtB,CAAC;CAED,IAAM,EAAE,OAAI,gBAAa,gBAAaA;CAEtC,QAAsB;EASpB,IAAMC,IAAaL,EAAS,eAAe;GACzC;GACA;GACA,WAXgD,MACzCE,EAAU,QAAQ,SAASI,CAAK;GAWvC,UARsB,GAAe,MAC9BC,IAAUL,EAAU,QAAQ,QAAQI,GAAOC,CAAO,IAAIL,EAAU,QAAQ,QAAQI,CAAK;GAQ5F;EACF,CAAC;EAED,aAAa;GACX,EAAW;EACb;CACF,GAAG;EAACN;EAAUQ;EAAIC;EAAaC;CAAQ,CAAC;AAC1C"}
1
+ {"version":3,"file":"use-screen-action.js","names":["useScreenAction","registry","useScreenActionRegistry","actionRef","useRef","action","unregister","input","context","id","description","metadata"],"sources":["../../../src/ai/action/use-screen-action.ts"],"sourcesContent":["import { useLayoutEffect, useRef } from 'react';\nimport type { ActionDefinition, ActionValidator, ExecutionContext } from \"@alneas/appkit-core/ai\";\nimport { useScreenActionRegistry } from './context';\n\n/**\n * Registers a validated action on the nearest screen registry after commit.\n *\n * @typeParam TInput - Validated input shape; defaults to unknown.\n *\n * @typeParam TOutput - Handler output shape; defaults to unknown.\n *\n * @param action - Stable ID/description/metadata with validator and handler from the host.\n *\n * @returns No value; effect cleanup unregisters this registration.\n *\n * @throws Error without ScreenActionProvider; registration errors propagate from the layout effect.\n *\n * @remarks Latest committed validator/handler are read through refs. ID, description or\n * metadata identity changes trigger re-registration. No action executes automatically;\n * no styles are required. The host owns effects and authorization in its handler.\n * Keep the ref/layout-effect bridge: external registry callers can invoke validation\n * and execution outside Effect-originated callbacks. useEffectEvent is restricted to\n * Effect logic and is not a replacement for these externally callable functions.\n * This preserves latest committed callbacks without re-registering on every render;\n * it is not a React 18 compatibility shim.\n *\n * @example\n * ```tsx\n * import { ScreenActionProvider, useScreenAction, type ActionDefinition } from '@alneas/appkit-react/ai/action';\n * function Registration({ action }: { action: ActionDefinition<string, string> }) { useScreenAction(action); return null; }\n * export function Screen({ action }: { action: ActionDefinition<string, string> }) {\n * return <ScreenActionProvider><Registration action={action} /></ScreenActionProvider>;\n * }\n * ```\n */\nexport function useScreenAction<TInput = unknown, TOutput = unknown>(\n action: ActionDefinition<TInput, TOutput>\n): void {\n const registry = useScreenActionRegistry();\n\n const actionRef = useRef(action);\n useLayoutEffect(() => {\n actionRef.current = action;\n });\n\n const { id, description, metadata } = action;\n\n useLayoutEffect(() => {\n const wrappedValidate: ActionValidator<TInput> = (input) => {\n return actionRef.current.validate(input);\n };\n\n const wrappedHandler = (input: TInput, context?: ExecutionContext) => {\n return context ? actionRef.current.handler(input, context) : actionRef.current.handler(input);\n };\n\n const unregister = registry.registerAction({\n id,\n description,\n validate: wrappedValidate,\n handler: wrappedHandler,\n metadata,\n });\n\n return () => {\n unregister();\n };\n }, [registry, id, description, metadata]);\n}\n"],"mappings":";;;;AAmCA,SAAgBA,EACd,GACM;CACN,IAAMC,IAAWC,EAAwB,GAEnCC,IAAYC,EAAOC,CAAM;CAC/B,QAAsB;EACpB,EAAU,UAAUA;CACtB,CAAC;CAED,IAAM,EAAE,OAAI,gBAAa,gBAAaA;CAEtC,QAAsB;EASpB,IAAMC,IAAaL,EAAS,eAAe;GACzC;GACA;GACA,WAXgD,MACzCE,EAAU,QAAQ,SAASI,CAAK;GAWvC,UARsB,GAAe,MAC9BC,IAAUL,EAAU,QAAQ,QAAQI,GAAOC,CAAO,IAAIL,EAAU,QAAQ,QAAQI,CAAK;GAQ5F;EACF,CAAC;EAED,aAAa;GACX,EAAW;EACb;CACF,GAAG;EAACN;EAAUQ;EAAIC;EAAaC;CAAQ,CAAC;AAC1C"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-screen-context.cjs","names":["useScreenActionRegistry","useRef","require_ai_action_context","react","useScreenContext","registry","key","keyOrOptions","getter","maybeGetter","description","maybeDescription","getterRef","unregister"],"sources":["../../../src/ai/action/use-screen-context.ts"],"sourcesContent":["import { useLayoutEffect, useRef } from 'react';\nimport type { ContextGetter } from \"@alneas/appkit-core/ai\";\nimport { useScreenActionRegistry } from './context';\nimport type { UseScreenContextOptions } from './types';\n\n/**\n * Registers an on-demand context getter using positional arguments.\n *\n * @typeParam T - Context getter result shape; defaults to unknown.\n *\n * @param key - Stable registry key.\n *\n * @param getter - Pure host getter invoked by registry context reads, using its latest committed version.\n *\n * @param description - Optional human/model-facing description.\n *\n * @returns No value; cleanup unregisters the context.\n *\n * @throws Error without ScreenActionProvider; registry registration failures propagate from the layout effect.\n *\n * @remarks Requires ScreenActionProvider; no styles. Key/description/registry changes\n * re-register the context, while getter changes update a ref after commit.\n *\n * @example\n * ```tsx\n * import { ScreenActionProvider, useScreenContext } from '@alneas/appkit-react/ai/action';\n * function Context() { useScreenContext('selection', () => ({ ids: [] as string[] })); return null; }\n * export function Screen() { return <ScreenActionProvider><Context /></ScreenActionProvider>; }\n * ```\n */\nexport function useScreenContext<T = unknown>(\n key: string,\n getter: ContextGetter<T>,\n description?: string\n): void;\n/**\n * Registers an on-demand context getter using an options object.\n *\n * @typeParam T - Context getter result shape; defaults to unknown.\n *\n * @param options - Stable key, optional description and latest committed getter.\n *\n * @returns No value; cleanup unregisters the context.\n *\n * @throws Error without ScreenActionProvider; registry registration errors propagate from the layout effect.\n *\n * @remarks Requires ScreenActionProvider; no styles. Lifecycle matches the positional overload.\n *\n * @example\n * ```tsx\n * import { ScreenActionProvider, useScreenContext } from '@alneas/appkit-react/ai/action';\n * function Context() { useScreenContext({ key: 'selection', getter: () => ({ ids: [] as string[] }) }); return null; }\n * export function Screen() { return <ScreenActionProvider><Context /></ScreenActionProvider>; }\n * ```\n */\nexport function useScreenContext<T = unknown>(\n options: UseScreenContextOptions<T>\n): void;\nexport function useScreenContext<T = unknown>(\n keyOrOptions: string | UseScreenContextOptions<T>,\n maybeGetter?: ContextGetter<T>,\n maybeDescription?: string\n): void {\n const registry = useScreenActionRegistry();\n\n const key = typeof keyOrOptions === 'string' ? keyOrOptions : keyOrOptions.key;\n const getter =\n typeof keyOrOptions === 'string' ? maybeGetter! : keyOrOptions.getter;\n const description =\n typeof keyOrOptions === 'string'\n ? maybeDescription\n : keyOrOptions.description;\n\n const getterRef = useRef(getter);\n useLayoutEffect(() => {\n getterRef.current = getter;\n });\n\n useLayoutEffect(() => {\n const wrappedGetter: ContextGetter<T> = () => {\n return getterRef.current();\n };\n\n const unregister = registry.registerContext({\n key,\n description,\n getter: wrappedGetter,\n });\n\n return () => {\n unregister();\n };\n }, [registry, key, description]);\n}\n"],"mappings":"A,wIA0DA,SAAgBI,EACd,EACA,EACA,EACM,CACN,IAAMC,EAAWL,EAAAA,wBAAwB,EAEnCM,EAAM,OAAOC,GAAiB,SAAWA,EAAeA,EAAa,IACrEC,EACJ,OAAOD,GAAiB,SAAWE,EAAeF,EAAa,OAC3DG,EACJ,OAAOH,GAAiB,SACpBI,EACAJ,EAAa,YAEbK,GAAA,EAAYX,EAAAA,OAAAA,CAAOO,CAAM,GAC/B,EAAAL,EAAA,gBAAA,KAAsB,CACpB,EAAU,QAAUK,CACtB,CAAC,GAED,EAAAL,EAAA,gBAAA,KAAsB,CAKpB,IAAMU,EAAaR,EAAS,gBAAgB,CAC1C,MACA,cACA,WANOO,EAAU,QAAQ,CAO3B,CAAC,EAED,UAAa,CACXC,EAAW,CACb,CACF,EAAG,CAACR,EAAUC,EAAKI,CAAW,CAAC,CACjC,C"}
1
+ {"version":3,"file":"use-screen-context.cjs","names":["useScreenActionRegistry","useRef","require_ai_action_context","react","useScreenContext","registry","key","keyOrOptions","getter","maybeGetter","description","maybeDescription","getterRef","unregister"],"sources":["../../../src/ai/action/use-screen-context.ts"],"sourcesContent":["import { useLayoutEffect, useRef } from 'react';\nimport type { ContextGetter } from \"@alneas/appkit-core/ai\";\nimport { useScreenActionRegistry } from './context';\nimport type { UseScreenContextOptions } from './types';\n\n/**\n * Registers an on-demand context getter using positional arguments.\n *\n * @typeParam T - Context getter result shape; defaults to unknown.\n *\n * @param key - Stable registry key.\n *\n * @param getter - Pure host getter invoked by registry context reads, using its latest committed version.\n *\n * @param description - Optional human/model-facing description.\n *\n * @returns No value; cleanup unregisters the context.\n *\n * @throws Error without ScreenActionProvider; registry registration failures propagate from the layout effect.\n *\n * @remarks Requires ScreenActionProvider; no styles. Key/description/registry changes\n * re-register the context, while getter changes update a ref after commit.\n * Keep the ref/layout-effect bridge because external registry reads can invoke the\n * getter outside Effect-originated callbacks. useEffectEvent is restricted to Effect\n * logic and cannot replace this on-demand public callback. The bridge preserves the\n * latest committed getter without re-registering; it is not a React 18 compatibility shim.\n *\n * @example\n * ```tsx\n * import { ScreenActionProvider, useScreenContext } from '@alneas/appkit-react/ai/action';\n * function Context() { useScreenContext('selection', () => ({ ids: [] as string[] })); return null; }\n * export function Screen() { return <ScreenActionProvider><Context /></ScreenActionProvider>; }\n * ```\n */\nexport function useScreenContext<T = unknown>(\n key: string,\n getter: ContextGetter<T>,\n description?: string\n): void;\n/**\n * Registers an on-demand context getter using an options object.\n *\n * @typeParam T - Context getter result shape; defaults to unknown.\n *\n * @param options - Stable key, optional description and latest committed getter.\n *\n * @returns No value; cleanup unregisters the context.\n *\n * @throws Error without ScreenActionProvider; registry registration errors propagate from the layout effect.\n *\n * @remarks Requires ScreenActionProvider; no styles. Lifecycle matches the positional overload.\n * The getter remains externally callable through the registry, so its latest committed\n * version is held in a ref rather than an Effect-scoped useEffectEvent callback.\n *\n * @example\n * ```tsx\n * import { ScreenActionProvider, useScreenContext } from '@alneas/appkit-react/ai/action';\n * function Context() { useScreenContext({ key: 'selection', getter: () => ({ ids: [] as string[] }) }); return null; }\n * export function Screen() { return <ScreenActionProvider><Context /></ScreenActionProvider>; }\n * ```\n */\nexport function useScreenContext<T = unknown>(\n options: UseScreenContextOptions<T>\n): void;\nexport function useScreenContext<T = unknown>(\n keyOrOptions: string | UseScreenContextOptions<T>,\n maybeGetter?: ContextGetter<T>,\n maybeDescription?: string\n): void {\n const registry = useScreenActionRegistry();\n\n const key = typeof keyOrOptions === 'string' ? keyOrOptions : keyOrOptions.key;\n const getter =\n typeof keyOrOptions === 'string' ? maybeGetter! : keyOrOptions.getter;\n const description =\n typeof keyOrOptions === 'string'\n ? maybeDescription\n : keyOrOptions.description;\n\n const getterRef = useRef(getter);\n useLayoutEffect(() => {\n getterRef.current = getter;\n });\n\n useLayoutEffect(() => {\n const wrappedGetter: ContextGetter<T> = () => {\n return getterRef.current();\n };\n\n const unregister = registry.registerContext({\n key,\n description,\n getter: wrappedGetter,\n });\n\n return () => {\n unregister();\n };\n }, [registry, key, description]);\n}\n"],"mappings":"A,wIAgEA,SAAgBI,EACd,EACA,EACA,EACM,CACN,IAAMC,EAAWL,EAAAA,wBAAwB,EAEnCM,EAAM,OAAOC,GAAiB,SAAWA,EAAeA,EAAa,IACrEC,EACJ,OAAOD,GAAiB,SAAWE,EAAeF,EAAa,OAC3DG,EACJ,OAAOH,GAAiB,SACpBI,EACAJ,EAAa,YAEbK,GAAA,EAAYX,EAAAA,OAAAA,CAAOO,CAAM,GAC/B,EAAAL,EAAA,gBAAA,KAAsB,CACpB,EAAU,QAAUK,CACtB,CAAC,GAED,EAAAL,EAAA,gBAAA,KAAsB,CAKpB,IAAMU,EAAaR,EAAS,gBAAgB,CAC1C,MACA,cACA,WANOO,EAAU,QAAQ,CAO3B,CAAC,EAED,UAAa,CACXC,EAAW,CACb,CACF,EAAG,CAACR,EAAUC,EAAKI,CAAW,CAAC,CACjC,C"}
@@ -17,6 +17,10 @@ import { UseScreenContextOptions } from './types.cjs';
17
17
  *
18
18
  * @remarks Requires ScreenActionProvider; no styles. Key/description/registry changes
19
19
  * re-register the context, while getter changes update a ref after commit.
20
+ * Keep the ref/layout-effect bridge because external registry reads can invoke the
21
+ * getter outside Effect-originated callbacks. useEffectEvent is restricted to Effect
22
+ * logic and cannot replace this on-demand public callback. The bridge preserves the
23
+ * latest committed getter without re-registering; it is not a React 18 compatibility shim.
20
24
  *
21
25
  * @example
22
26
  * ```tsx
@@ -38,6 +42,8 @@ export declare function useScreenContext<T = unknown>(key: string, getter: Conte
38
42
  * @throws Error without ScreenActionProvider; registry registration errors propagate from the layout effect.
39
43
  *
40
44
  * @remarks Requires ScreenActionProvider; no styles. Lifecycle matches the positional overload.
45
+ * The getter remains externally callable through the registry, so its latest committed
46
+ * version is held in a ref rather than an Effect-scoped useEffectEvent callback.
41
47
  *
42
48
  * @example
43
49
  * ```tsx
@@ -17,6 +17,10 @@ import { UseScreenContextOptions } from './types.js';
17
17
  *
18
18
  * @remarks Requires ScreenActionProvider; no styles. Key/description/registry changes
19
19
  * re-register the context, while getter changes update a ref after commit.
20
+ * Keep the ref/layout-effect bridge because external registry reads can invoke the
21
+ * getter outside Effect-originated callbacks. useEffectEvent is restricted to Effect
22
+ * logic and cannot replace this on-demand public callback. The bridge preserves the
23
+ * latest committed getter without re-registering; it is not a React 18 compatibility shim.
20
24
  *
21
25
  * @example
22
26
  * ```tsx
@@ -38,6 +42,8 @@ export declare function useScreenContext<T = unknown>(key: string, getter: Conte
38
42
  * @throws Error without ScreenActionProvider; registry registration errors propagate from the layout effect.
39
43
  *
40
44
  * @remarks Requires ScreenActionProvider; no styles. Lifecycle matches the positional overload.
45
+ * The getter remains externally callable through the registry, so its latest committed
46
+ * version is held in a ref rather than an Effect-scoped useEffectEvent callback.
41
47
  *
42
48
  * @example
43
49
  * ```tsx
@@ -1 +1 @@
1
- {"version":3,"file":"use-screen-context.js","names":["useScreenContext","registry","useScreenActionRegistry","key","keyOrOptions","getter","maybeGetter","description","maybeDescription","getterRef","useRef","useLayoutEffect","unregister"],"sources":["../../../src/ai/action/use-screen-context.ts"],"sourcesContent":["import { useLayoutEffect, useRef } from 'react';\nimport type { ContextGetter } from \"@alneas/appkit-core/ai\";\nimport { useScreenActionRegistry } from './context';\nimport type { UseScreenContextOptions } from './types';\n\n/**\n * Registers an on-demand context getter using positional arguments.\n *\n * @typeParam T - Context getter result shape; defaults to unknown.\n *\n * @param key - Stable registry key.\n *\n * @param getter - Pure host getter invoked by registry context reads, using its latest committed version.\n *\n * @param description - Optional human/model-facing description.\n *\n * @returns No value; cleanup unregisters the context.\n *\n * @throws Error without ScreenActionProvider; registry registration failures propagate from the layout effect.\n *\n * @remarks Requires ScreenActionProvider; no styles. Key/description/registry changes\n * re-register the context, while getter changes update a ref after commit.\n *\n * @example\n * ```tsx\n * import { ScreenActionProvider, useScreenContext } from '@alneas/appkit-react/ai/action';\n * function Context() { useScreenContext('selection', () => ({ ids: [] as string[] })); return null; }\n * export function Screen() { return <ScreenActionProvider><Context /></ScreenActionProvider>; }\n * ```\n */\nexport function useScreenContext<T = unknown>(\n key: string,\n getter: ContextGetter<T>,\n description?: string\n): void;\n/**\n * Registers an on-demand context getter using an options object.\n *\n * @typeParam T - Context getter result shape; defaults to unknown.\n *\n * @param options - Stable key, optional description and latest committed getter.\n *\n * @returns No value; cleanup unregisters the context.\n *\n * @throws Error without ScreenActionProvider; registry registration errors propagate from the layout effect.\n *\n * @remarks Requires ScreenActionProvider; no styles. Lifecycle matches the positional overload.\n *\n * @example\n * ```tsx\n * import { ScreenActionProvider, useScreenContext } from '@alneas/appkit-react/ai/action';\n * function Context() { useScreenContext({ key: 'selection', getter: () => ({ ids: [] as string[] }) }); return null; }\n * export function Screen() { return <ScreenActionProvider><Context /></ScreenActionProvider>; }\n * ```\n */\nexport function useScreenContext<T = unknown>(\n options: UseScreenContextOptions<T>\n): void;\nexport function useScreenContext<T = unknown>(\n keyOrOptions: string | UseScreenContextOptions<T>,\n maybeGetter?: ContextGetter<T>,\n maybeDescription?: string\n): void {\n const registry = useScreenActionRegistry();\n\n const key = typeof keyOrOptions === 'string' ? keyOrOptions : keyOrOptions.key;\n const getter =\n typeof keyOrOptions === 'string' ? maybeGetter! : keyOrOptions.getter;\n const description =\n typeof keyOrOptions === 'string'\n ? maybeDescription\n : keyOrOptions.description;\n\n const getterRef = useRef(getter);\n useLayoutEffect(() => {\n getterRef.current = getter;\n });\n\n useLayoutEffect(() => {\n const wrappedGetter: ContextGetter<T> = () => {\n return getterRef.current();\n };\n\n const unregister = registry.registerContext({\n key,\n description,\n getter: wrappedGetter,\n });\n\n return () => {\n unregister();\n };\n }, [registry, key, description]);\n}\n"],"mappings":";;;;AA0DA,SAAgBA,EACd,GACA,GACA,GACM;CACN,IAAMC,IAAWC,EAAwB,GAEnCC,IAAM,OAAOC,KAAiB,WAAWA,IAAeA,EAAa,KACrEC,IACJ,OAAOD,KAAiB,WAAWE,IAAeF,EAAa,QAC3DG,IACJ,OAAOH,KAAiB,WACpBI,IACAJ,EAAa,aAEbK,IAAYC,EAAOL,CAAM;CAK/B,AAJAM,QAAsB;EACpB,EAAU,UAAUN;CACtB,CAAC,GAEDM,QAAsB;EAKpB,IAAMC,IAAaX,EAAS,gBAAgB;GAC1C;GACA;GACA,cANOQ,EAAU,QAAQ;EAO3B,CAAC;EAED,aAAa;GACX,EAAW;EACb;CACF,GAAG;EAACR;EAAUE;EAAKI;CAAW,CAAC;AACjC"}
1
+ {"version":3,"file":"use-screen-context.js","names":["useScreenContext","registry","useScreenActionRegistry","key","keyOrOptions","getter","maybeGetter","description","maybeDescription","getterRef","useRef","useLayoutEffect","unregister"],"sources":["../../../src/ai/action/use-screen-context.ts"],"sourcesContent":["import { useLayoutEffect, useRef } from 'react';\nimport type { ContextGetter } from \"@alneas/appkit-core/ai\";\nimport { useScreenActionRegistry } from './context';\nimport type { UseScreenContextOptions } from './types';\n\n/**\n * Registers an on-demand context getter using positional arguments.\n *\n * @typeParam T - Context getter result shape; defaults to unknown.\n *\n * @param key - Stable registry key.\n *\n * @param getter - Pure host getter invoked by registry context reads, using its latest committed version.\n *\n * @param description - Optional human/model-facing description.\n *\n * @returns No value; cleanup unregisters the context.\n *\n * @throws Error without ScreenActionProvider; registry registration failures propagate from the layout effect.\n *\n * @remarks Requires ScreenActionProvider; no styles. Key/description/registry changes\n * re-register the context, while getter changes update a ref after commit.\n * Keep the ref/layout-effect bridge because external registry reads can invoke the\n * getter outside Effect-originated callbacks. useEffectEvent is restricted to Effect\n * logic and cannot replace this on-demand public callback. The bridge preserves the\n * latest committed getter without re-registering; it is not a React 18 compatibility shim.\n *\n * @example\n * ```tsx\n * import { ScreenActionProvider, useScreenContext } from '@alneas/appkit-react/ai/action';\n * function Context() { useScreenContext('selection', () => ({ ids: [] as string[] })); return null; }\n * export function Screen() { return <ScreenActionProvider><Context /></ScreenActionProvider>; }\n * ```\n */\nexport function useScreenContext<T = unknown>(\n key: string,\n getter: ContextGetter<T>,\n description?: string\n): void;\n/**\n * Registers an on-demand context getter using an options object.\n *\n * @typeParam T - Context getter result shape; defaults to unknown.\n *\n * @param options - Stable key, optional description and latest committed getter.\n *\n * @returns No value; cleanup unregisters the context.\n *\n * @throws Error without ScreenActionProvider; registry registration errors propagate from the layout effect.\n *\n * @remarks Requires ScreenActionProvider; no styles. Lifecycle matches the positional overload.\n * The getter remains externally callable through the registry, so its latest committed\n * version is held in a ref rather than an Effect-scoped useEffectEvent callback.\n *\n * @example\n * ```tsx\n * import { ScreenActionProvider, useScreenContext } from '@alneas/appkit-react/ai/action';\n * function Context() { useScreenContext({ key: 'selection', getter: () => ({ ids: [] as string[] }) }); return null; }\n * export function Screen() { return <ScreenActionProvider><Context /></ScreenActionProvider>; }\n * ```\n */\nexport function useScreenContext<T = unknown>(\n options: UseScreenContextOptions<T>\n): void;\nexport function useScreenContext<T = unknown>(\n keyOrOptions: string | UseScreenContextOptions<T>,\n maybeGetter?: ContextGetter<T>,\n maybeDescription?: string\n): void {\n const registry = useScreenActionRegistry();\n\n const key = typeof keyOrOptions === 'string' ? keyOrOptions : keyOrOptions.key;\n const getter =\n typeof keyOrOptions === 'string' ? maybeGetter! : keyOrOptions.getter;\n const description =\n typeof keyOrOptions === 'string'\n ? maybeDescription\n : keyOrOptions.description;\n\n const getterRef = useRef(getter);\n useLayoutEffect(() => {\n getterRef.current = getter;\n });\n\n useLayoutEffect(() => {\n const wrappedGetter: ContextGetter<T> = () => {\n return getterRef.current();\n };\n\n const unregister = registry.registerContext({\n key,\n description,\n getter: wrappedGetter,\n });\n\n return () => {\n unregister();\n };\n }, [registry, key, description]);\n}\n"],"mappings":";;;;AAgEA,SAAgBA,EACd,GACA,GACA,GACM;CACN,IAAMC,IAAWC,EAAwB,GAEnCC,IAAM,OAAOC,KAAiB,WAAWA,IAAeA,EAAa,KACrEC,IACJ,OAAOD,KAAiB,WAAWE,IAAeF,EAAa,QAC3DG,IACJ,OAAOH,KAAiB,WACpBI,IACAJ,EAAa,aAEbK,IAAYC,EAAOL,CAAM;CAK/B,AAJAM,QAAsB;EACpB,EAAU,UAAUN;CACtB,CAAC,GAEDM,QAAsB;EAKpB,IAAMC,IAAaX,EAAS,gBAAgB;GAC1C;GACA;GACA,cANOQ,EAAU,QAAQ;EAO3B,CAAC;EAED,aAAa;GACX,EAAW;EACb;CACF,GAAG;EAACR;EAAUE;EAAKI;CAAW,CAAC;AACjC"}
@@ -1 +1 @@
1
- {"version":3,"file":"GenerativeUIRenderer.cjs","names":["useMemo","validateGenerativeUIDocument","useState","_Fragment","MinimalErrorBoundary","require_ai_generative_ui_error_boundary","react_jsx_runtime","react","_alneas_appkit_core_ai","defaultFallback","issue","GenerativeUIRenderer","document","input","scope","setScope","registry","resolved","block","key","fallback","renderFallback"],"sources":["../../../src/ai/generative-ui/GenerativeUIRenderer.tsx"],"sourcesContent":["import { useMemo, useState, type ReactNode } from 'react';\nimport { validateGenerativeUIDocument } from \"@alneas/appkit-core/ai\";\nimport { MinimalErrorBoundary } from './error-boundary';\nimport type { GenerativeUIIssue, GenerativeUIRegistry } from './registry';\n\n/**\n * Props for rendering a fully assembled, immutable JSON response.\n * @see GenerativeUIRenderer for the canonical usage example.\n */\nexport interface GenerativeUIRendererProps {\n /** Parsed JSON input. Replace its reference to submit a new immutable document. */\n input: unknown;\n /** Only explicitly registered component types can render. */\n registry: GenerativeUIRegistry;\n /** Application-owned fallback/localization. Receives safe metadata, never raw exceptions. */\n renderFallback?: (issue: GenerativeUIIssue) => ReactNode;\n}\n\nfunction defaultFallback(issue: GenerativeUIIssue): ReactNode {\n return <p role=\"status\" data-generative-ui-error={issue.code}>This content cannot be displayed.</p>;\n}\n\n/**\n * Renders validated JSON blocks using an explicit application registry.\n *\n *\n * @remarks\n * Envelope validation snapshots input by reference. Pass immutable documents; replace\n * input when a response changes. Component validators run during rendering and must\n * be pure. Unknown types and invalid data get per-block fallbacks; malformed envelopes\n * get a document fallback. MinimalErrorBoundary isolates client render failures.\n * Block identity includes document ID, block ID/type and data.\n *\n *\n * @param props - Immutable response, explicit registry and optional localized fallback renderer.\n *\n * @returns Block wrappers and registered elements, or fallback content for invalid input.\n *\n * @remarks Requires React; registered components own any other providers or CSS.\n * The default fallback is an English status paragraph. Client error boundaries handle\n * descendant render failures; React server rendering errors are not isolated by them.\n * Fallback callback errors propagate. Changing registry identity remounts blocks.\n *\n * @example\n * ```tsx\n * import { createGenerativeUIRegistry, GenerativeUIRenderer } from '@alneas/appkit-react/ai/generative-ui';\n * const registry = createGenerativeUIRegistry([]);\n * // Supply a parsed host response; unregistered types receive the fallback.\n * export function GeneratedResponse({ response }: { response: unknown }) {\n * return <GenerativeUIRenderer input={response} registry={registry} />;\n * }\n * ```\n */\nexport function GenerativeUIRenderer({\n input,\n registry,\n renderFallback = defaultFallback,\n}: GenerativeUIRendererProps): ReactNode {\n const document = useMemo(() => validateGenerativeUIDocument(input), [input]);\n const [scope, setScope] = useState({ registry, generation: 0 });\n if (scope.registry !== registry) setScope({ registry, generation: scope.generation + 1 });\n if (!document.ok) return renderFallback({ code: 'INVALID_DOCUMENT' });\n\n return (\n <>\n {document.data.blocks.map(block => {\n const resolved = registry.resolve(block);\n const key = JSON.stringify([scope.generation, document.data.id, block]);\n const fallback = (issue: GenerativeUIIssue) => (\n <div data-generative-ui-block={block.id}>{renderFallback(issue)}</div>\n );\n if (!resolved.ok) return <div key={key}>{fallback(resolved.issue)}</div>;\n return (\n <MinimalErrorBoundary\n key={key}\n fallback={() => fallback({ code: 'RENDER_ERROR', blockId: block.id, type: block.type })}\n >\n <div data-generative-ui-block={block.id}>{resolved.element}</div>\n </MinimalErrorBoundary>\n );\n })}\n </>\n );\n}\n"],"mappings":"A,kNAkBA,SAASS,EAAgB,EAAqC,CAC5D,OAAO,EAAAH,EAAA,IAAA,CAAC,IAAD,CAAG,KAAK,SAAS,2BAA0BI,EAAM,KAAM,SAAA,mCAAoC,CAAA,CACpG,CAiCA,SAAgBC,EAAqB,CACnC,QACA,WACA,iBAAiBF,GACsB,CACvC,IAAMG,GAAA,EAAWZ,EAAAA,QAAAA,MAAAA,EAAcC,EAAAA,6BAAAA,CAA6BY,CAAK,EAAG,CAACA,CAAK,CAAC,EACrE,CAACC,EAAOC,IAAA,EAAYb,EAAAA,SAAAA,CAAS,CAAE,WAAU,WAAY,CAAE,CAAC,EAI9D,OAHIY,EAAM,WAAaE,GAAUD,EAAS,CAAE,WAAU,WAAYD,EAAM,WAAa,CAAE,CAAC,EACnFF,EAAS,IAGZ,EAAAN,EAAA,IAAA,CAAAH,EAAAA,SAAA,CAAA,SACGS,EAAS,KAAK,OAAO,IAAI,GAAS,CACjC,IAAMK,EAAWD,EAAS,QAAQE,CAAK,EACjCC,EAAM,KAAK,UAAU,CAACL,EAAM,WAAYF,EAAS,KAAK,GAAIM,CAAK,CAAC,EAChEE,EAAY,IAChB,EAAAd,EAAA,IAAA,CAAC,MAAD,CAAK,2BAA0BY,EAAM,GAAK,SAAAG,EAAeX,CAAK,CAAO,CAAA,EAGvE,OADKO,EAAS,IAEZ,EAAAX,EAAA,IAAA,CAACF,EAAAA,qBAAD,CAEE,aAAgBgB,EAAS,CAAE,KAAM,eAAgB,QAASF,EAAM,GAAI,KAAMA,EAAM,IAAK,CAAC,EAEtF,UAAA,EAAAZ,EAAA,IAAA,CAAC,MAAD,CAAK,2BAA0BY,EAAM,GAAK,SAAAD,EAAS,OAAa,CAAA,CAC5C,EAJfE,CAIe,GAPC,EAAAb,EAAA,IAAA,CAAC,MAAD,CAAA,SAAgBc,EAASH,EAAS,KAAK,CAAO,EAApCE,CAAoC,CASzE,CAAC,CACD,CAAA,EApBqBE,EAAe,CAAE,KAAM,kBAAmB,CAAC,CAsBtE,C"}
1
+ {"version":3,"file":"GenerativeUIRenderer.cjs","names":["useMemo","validateGenerativeUIDocument","useState","_Fragment","MinimalErrorBoundary","require_ai_generative_ui_error_boundary","react_jsx_runtime","react","_alneas_appkit_core_ai","defaultFallback","issue","GenerativeUIRenderer","document","input","scope","setScope","registry","resolved","block","key","fallback","renderFallback"],"sources":["../../../src/ai/generative-ui/GenerativeUIRenderer.tsx"],"sourcesContent":["import { useMemo, useState, type ReactNode } from 'react';\nimport { validateGenerativeUIDocument } from \"@alneas/appkit-core/ai\";\nimport { MinimalErrorBoundary } from './error-boundary';\nimport type { GenerativeUIIssue, GenerativeUIRegistry } from './registry';\n\n/**\n * Props for rendering a fully assembled, immutable JSON response.\n * @see GenerativeUIRenderer for the canonical usage example.\n */\nexport interface GenerativeUIRendererProps {\n /** Parsed JSON input. Replace its reference to submit a new immutable document. */\n input: unknown;\n /** Only explicitly registered component types can render. */\n registry: GenerativeUIRegistry;\n /** Application-owned fallback/localization. Receives safe metadata, never raw exceptions. */\n renderFallback?: (issue: GenerativeUIIssue) => ReactNode;\n}\n\nfunction defaultFallback(issue: GenerativeUIIssue): ReactNode {\n return <p role=\"status\" data-generative-ui-error={issue.code}>This content cannot be displayed.</p>;\n}\n\n/**\n * Renders validated JSON blocks using an explicit application registry.\n *\n *\n * @remarks\n * Envelope validation snapshots input by reference. Pass immutable documents; replace\n * input when a response changes. Component validators run during rendering and must\n * be pure. Unknown types and invalid data get per-block fallbacks; malformed envelopes\n * get a document fallback. MinimalErrorBoundary isolates client render failures.\n * Block identity includes document ID, block ID/type and data.\n *\n *\n * Requires React; registered components own any other providers or CSS.\n * The default fallback is an English status paragraph. Client error boundaries handle\n * descendant render failures; React server rendering errors are not isolated by them.\n * Fallback callback errors propagate. Changing registry identity remounts blocks.\n *\n * @param props - Immutable response, explicit registry and optional localized fallback renderer.\n *\n * @returns Block wrappers and registered elements, or fallback content for invalid input.\n *\n * @example\n * ```tsx\n * import { createGenerativeUIRegistry, GenerativeUIRenderer } from '@alneas/appkit-react/ai/generative-ui';\n * const registry = createGenerativeUIRegistry([]);\n * // Supply a parsed host response; unregistered types receive the fallback.\n * export function GeneratedResponse({ response }: { response: unknown }) {\n * return <GenerativeUIRenderer input={response} registry={registry} />;\n * }\n * ```\n */\nexport function GenerativeUIRenderer({\n input,\n registry,\n renderFallback = defaultFallback,\n}: GenerativeUIRendererProps): ReactNode {\n const document = useMemo(() => validateGenerativeUIDocument(input), [input]);\n const [scope, setScope] = useState({ registry, generation: 0 });\n if (scope.registry !== registry) setScope({ registry, generation: scope.generation + 1 });\n if (!document.ok) return renderFallback({ code: 'INVALID_DOCUMENT' });\n\n return (\n <>\n {document.data.blocks.map(block => {\n const resolved = registry.resolve(block);\n const key = JSON.stringify([scope.generation, document.data.id, block]);\n const fallback = (issue: GenerativeUIIssue) => (\n <div data-generative-ui-block={block.id}>{renderFallback(issue)}</div>\n );\n if (!resolved.ok) return <div key={key}>{fallback(resolved.issue)}</div>;\n return (\n <MinimalErrorBoundary\n key={key}\n fallback={() => fallback({ code: 'RENDER_ERROR', blockId: block.id, type: block.type })}\n >\n <div data-generative-ui-block={block.id}>{resolved.element}</div>\n </MinimalErrorBoundary>\n );\n })}\n </>\n );\n}\n"],"mappings":"A,kNAkBA,SAASS,EAAgB,EAAqC,CAC5D,OAAO,EAAAH,EAAA,IAAA,CAAC,IAAD,CAAG,KAAK,SAAS,2BAA0BI,EAAM,KAAM,SAAA,mCAAoC,CAAA,CACpG,CAiCA,SAAgBC,EAAqB,CACnC,QACA,WACA,iBAAiBF,GACsB,CACvC,IAAMG,GAAA,EAAWZ,EAAAA,QAAAA,MAAAA,EAAcC,EAAAA,6BAAAA,CAA6BY,CAAK,EAAG,CAACA,CAAK,CAAC,EACrE,CAACC,EAAOC,IAAA,EAAYb,EAAAA,SAAAA,CAAS,CAAE,WAAU,WAAY,CAAE,CAAC,EAI9D,OAHIY,EAAM,WAAaE,GAAUD,EAAS,CAAE,WAAU,WAAYD,EAAM,WAAa,CAAE,CAAC,EACnFF,EAAS,IAGZ,EAAAN,EAAA,IAAA,CAAAH,EAAAA,SAAA,CAAA,SACGS,EAAS,KAAK,OAAO,IAAI,GAAS,CACjC,IAAMK,EAAWD,EAAS,QAAQE,CAAK,EACjCC,EAAM,KAAK,UAAU,CAACL,EAAM,WAAYF,EAAS,KAAK,GAAIM,CAAK,CAAC,EAChEE,EAAY,IAChB,EAAAd,EAAA,IAAA,CAAC,MAAD,CAAK,2BAA0BY,EAAM,GAAK,SAAAG,EAAeX,CAAK,CAAO,CAAA,EAGvE,OADKO,EAAS,IAEZ,EAAAX,EAAA,IAAA,CAACF,EAAAA,qBAAD,CAEE,aAAgBgB,EAAS,CAAE,KAAM,eAAgB,QAASF,EAAM,GAAI,KAAMA,EAAM,IAAK,CAAC,EAEtF,UAAA,EAAAZ,EAAA,IAAA,CAAC,MAAD,CAAK,2BAA0BY,EAAM,GAAK,SAAAD,EAAS,OAAa,CAAA,CAC5C,EAJfE,CAIe,GAPC,EAAAb,EAAA,IAAA,CAAC,MAAD,CAAA,SAAgBc,EAASH,EAAS,KAAK,CAAO,EAApCE,CAAoC,CASzE,CAAC,CACD,CAAA,EApBqBE,EAAe,CAAE,KAAM,kBAAmB,CAAC,CAsBtE,C"}
@@ -24,15 +24,15 @@ export interface GenerativeUIRendererProps {
24
24
  * Block identity includes document ID, block ID/type and data.
25
25
  *
26
26
  *
27
- * @param props - Immutable response, explicit registry and optional localized fallback renderer.
28
- *
29
- * @returns Block wrappers and registered elements, or fallback content for invalid input.
30
- *
31
- * @remarks Requires React; registered components own any other providers or CSS.
27
+ * Requires React; registered components own any other providers or CSS.
32
28
  * The default fallback is an English status paragraph. Client error boundaries handle
33
29
  * descendant render failures; React server rendering errors are not isolated by them.
34
30
  * Fallback callback errors propagate. Changing registry identity remounts blocks.
35
31
  *
32
+ * @param props - Immutable response, explicit registry and optional localized fallback renderer.
33
+ *
34
+ * @returns Block wrappers and registered elements, or fallback content for invalid input.
35
+ *
36
36
  * @example
37
37
  * ```tsx
38
38
  * import { createGenerativeUIRegistry, GenerativeUIRenderer } from '@alneas/appkit-react/ai/generative-ui';
@@ -24,15 +24,15 @@ export interface GenerativeUIRendererProps {
24
24
  * Block identity includes document ID, block ID/type and data.
25
25
  *
26
26
  *
27
- * @param props - Immutable response, explicit registry and optional localized fallback renderer.
28
- *
29
- * @returns Block wrappers and registered elements, or fallback content for invalid input.
30
- *
31
- * @remarks Requires React; registered components own any other providers or CSS.
27
+ * Requires React; registered components own any other providers or CSS.
32
28
  * The default fallback is an English status paragraph. Client error boundaries handle
33
29
  * descendant render failures; React server rendering errors are not isolated by them.
34
30
  * Fallback callback errors propagate. Changing registry identity remounts blocks.
35
31
  *
32
+ * @param props - Immutable response, explicit registry and optional localized fallback renderer.
33
+ *
34
+ * @returns Block wrappers and registered elements, or fallback content for invalid input.
35
+ *
36
36
  * @example
37
37
  * ```tsx
38
38
  * import { createGenerativeUIRegistry, GenerativeUIRenderer } from '@alneas/appkit-react/ai/generative-ui';
@@ -1 +1 @@
1
- {"version":3,"file":"GenerativeUIRenderer.js","names":["_Fragment","defaultFallback","issue","GenerativeUIRenderer","document","useMemo","validateGenerativeUIDocument","input","scope","setScope","useState","registry","Fragment","resolved","block","key","fallback","renderFallback","MinimalErrorBoundary"],"sources":["../../../src/ai/generative-ui/GenerativeUIRenderer.tsx"],"sourcesContent":["import { useMemo, useState, type ReactNode } from 'react';\nimport { validateGenerativeUIDocument } from \"@alneas/appkit-core/ai\";\nimport { MinimalErrorBoundary } from './error-boundary';\nimport type { GenerativeUIIssue, GenerativeUIRegistry } from './registry';\n\n/**\n * Props for rendering a fully assembled, immutable JSON response.\n * @see GenerativeUIRenderer for the canonical usage example.\n */\nexport interface GenerativeUIRendererProps {\n /** Parsed JSON input. Replace its reference to submit a new immutable document. */\n input: unknown;\n /** Only explicitly registered component types can render. */\n registry: GenerativeUIRegistry;\n /** Application-owned fallback/localization. Receives safe metadata, never raw exceptions. */\n renderFallback?: (issue: GenerativeUIIssue) => ReactNode;\n}\n\nfunction defaultFallback(issue: GenerativeUIIssue): ReactNode {\n return <p role=\"status\" data-generative-ui-error={issue.code}>This content cannot be displayed.</p>;\n}\n\n/**\n * Renders validated JSON blocks using an explicit application registry.\n *\n *\n * @remarks\n * Envelope validation snapshots input by reference. Pass immutable documents; replace\n * input when a response changes. Component validators run during rendering and must\n * be pure. Unknown types and invalid data get per-block fallbacks; malformed envelopes\n * get a document fallback. MinimalErrorBoundary isolates client render failures.\n * Block identity includes document ID, block ID/type and data.\n *\n *\n * @param props - Immutable response, explicit registry and optional localized fallback renderer.\n *\n * @returns Block wrappers and registered elements, or fallback content for invalid input.\n *\n * @remarks Requires React; registered components own any other providers or CSS.\n * The default fallback is an English status paragraph. Client error boundaries handle\n * descendant render failures; React server rendering errors are not isolated by them.\n * Fallback callback errors propagate. Changing registry identity remounts blocks.\n *\n * @example\n * ```tsx\n * import { createGenerativeUIRegistry, GenerativeUIRenderer } from '@alneas/appkit-react/ai/generative-ui';\n * const registry = createGenerativeUIRegistry([]);\n * // Supply a parsed host response; unregistered types receive the fallback.\n * export function GeneratedResponse({ response }: { response: unknown }) {\n * return <GenerativeUIRenderer input={response} registry={registry} />;\n * }\n * ```\n */\nexport function GenerativeUIRenderer({\n input,\n registry,\n renderFallback = defaultFallback,\n}: GenerativeUIRendererProps): ReactNode {\n const document = useMemo(() => validateGenerativeUIDocument(input), [input]);\n const [scope, setScope] = useState({ registry, generation: 0 });\n if (scope.registry !== registry) setScope({ registry, generation: scope.generation + 1 });\n if (!document.ok) return renderFallback({ code: 'INVALID_DOCUMENT' });\n\n return (\n <>\n {document.data.blocks.map(block => {\n const resolved = registry.resolve(block);\n const key = JSON.stringify([scope.generation, document.data.id, block]);\n const fallback = (issue: GenerativeUIIssue) => (\n <div data-generative-ui-block={block.id}>{renderFallback(issue)}</div>\n );\n if (!resolved.ok) return <div key={key}>{fallback(resolved.issue)}</div>;\n return (\n <MinimalErrorBoundary\n key={key}\n fallback={() => fallback({ code: 'RENDER_ERROR', blockId: block.id, type: block.type })}\n >\n <div data-generative-ui-block={block.id}>{resolved.element}</div>\n </MinimalErrorBoundary>\n );\n })}\n </>\n );\n}\n"],"mappings":";;;;;;AAkBA,SAASC,EAAgB,GAAqC;CAC5D,OAAO,kBAAC,KAAD;EAAG,MAAK;EAAS,4BAA0BC,EAAM;EAAM,UAAA;CAAoC,CAAA;AACpG;AAiCA,SAAgBC,EAAqB,EACnC,UACA,aACA,oBAAiBF,KACsB;CACvC,IAAMG,IAAWC,QAAcC,EAA6BC,CAAK,GAAG,CAACA,CAAK,CAAC,GACrE,CAACC,GAAOC,KAAYC,EAAS;EAAE;EAAU,YAAY;CAAE,CAAC;CAI9D,OAHIF,EAAM,aAAaG,KAAUF,EAAS;EAAE;EAAU,YAAYD,EAAM,aAAa;CAAE,CAAC,GACnFJ,EAAS,KAGZ,kBAAAJ,GAAA,EAAA,UACGI,EAAS,KAAK,OAAO,KAAI,MAAS;EACjC,IAAMS,IAAWF,EAAS,QAAQG,CAAK,GACjCC,IAAM,KAAK,UAAU;GAACP,EAAM;GAAYJ,EAAS,KAAK;GAAIU;EAAK,CAAC,GAChEE,KAAY,MAChB,kBAAC,OAAD;GAAK,4BAA0BF,EAAM;GAAK,UAAAG,EAAef,CAAK;EAAO,CAAA;EAGvE,OADKW,EAAS,KAEZ,kBAACK,GAAD;GAEE,gBAAgBF,EAAS;IAAE,MAAM;IAAgB,SAASF,EAAM;IAAI,MAAMA,EAAM;GAAK,CAAC;GAEtF,UAAA,kBAAC,OAAD;IAAK,4BAA0BA,EAAM;IAAK,UAAAD,EAAS;GAAa,CAAA;EAC5C,GAJfE,CAIe,IAPC,kBAAC,OAAD,EAAA,UAAgBC,EAASH,EAAS,KAAK,EAAO,GAApCE,CAAoC;CASzE,CAAC,EACD,CAAA,IApBqBE,EAAe,EAAE,MAAM,mBAAmB,CAAC;AAsBtE"}
1
+ {"version":3,"file":"GenerativeUIRenderer.js","names":["_Fragment","defaultFallback","issue","GenerativeUIRenderer","document","useMemo","validateGenerativeUIDocument","input","scope","setScope","useState","registry","Fragment","resolved","block","key","fallback","renderFallback","MinimalErrorBoundary"],"sources":["../../../src/ai/generative-ui/GenerativeUIRenderer.tsx"],"sourcesContent":["import { useMemo, useState, type ReactNode } from 'react';\nimport { validateGenerativeUIDocument } from \"@alneas/appkit-core/ai\";\nimport { MinimalErrorBoundary } from './error-boundary';\nimport type { GenerativeUIIssue, GenerativeUIRegistry } from './registry';\n\n/**\n * Props for rendering a fully assembled, immutable JSON response.\n * @see GenerativeUIRenderer for the canonical usage example.\n */\nexport interface GenerativeUIRendererProps {\n /** Parsed JSON input. Replace its reference to submit a new immutable document. */\n input: unknown;\n /** Only explicitly registered component types can render. */\n registry: GenerativeUIRegistry;\n /** Application-owned fallback/localization. Receives safe metadata, never raw exceptions. */\n renderFallback?: (issue: GenerativeUIIssue) => ReactNode;\n}\n\nfunction defaultFallback(issue: GenerativeUIIssue): ReactNode {\n return <p role=\"status\" data-generative-ui-error={issue.code}>This content cannot be displayed.</p>;\n}\n\n/**\n * Renders validated JSON blocks using an explicit application registry.\n *\n *\n * @remarks\n * Envelope validation snapshots input by reference. Pass immutable documents; replace\n * input when a response changes. Component validators run during rendering and must\n * be pure. Unknown types and invalid data get per-block fallbacks; malformed envelopes\n * get a document fallback. MinimalErrorBoundary isolates client render failures.\n * Block identity includes document ID, block ID/type and data.\n *\n *\n * Requires React; registered components own any other providers or CSS.\n * The default fallback is an English status paragraph. Client error boundaries handle\n * descendant render failures; React server rendering errors are not isolated by them.\n * Fallback callback errors propagate. Changing registry identity remounts blocks.\n *\n * @param props - Immutable response, explicit registry and optional localized fallback renderer.\n *\n * @returns Block wrappers and registered elements, or fallback content for invalid input.\n *\n * @example\n * ```tsx\n * import { createGenerativeUIRegistry, GenerativeUIRenderer } from '@alneas/appkit-react/ai/generative-ui';\n * const registry = createGenerativeUIRegistry([]);\n * // Supply a parsed host response; unregistered types receive the fallback.\n * export function GeneratedResponse({ response }: { response: unknown }) {\n * return <GenerativeUIRenderer input={response} registry={registry} />;\n * }\n * ```\n */\nexport function GenerativeUIRenderer({\n input,\n registry,\n renderFallback = defaultFallback,\n}: GenerativeUIRendererProps): ReactNode {\n const document = useMemo(() => validateGenerativeUIDocument(input), [input]);\n const [scope, setScope] = useState({ registry, generation: 0 });\n if (scope.registry !== registry) setScope({ registry, generation: scope.generation + 1 });\n if (!document.ok) return renderFallback({ code: 'INVALID_DOCUMENT' });\n\n return (\n <>\n {document.data.blocks.map(block => {\n const resolved = registry.resolve(block);\n const key = JSON.stringify([scope.generation, document.data.id, block]);\n const fallback = (issue: GenerativeUIIssue) => (\n <div data-generative-ui-block={block.id}>{renderFallback(issue)}</div>\n );\n if (!resolved.ok) return <div key={key}>{fallback(resolved.issue)}</div>;\n return (\n <MinimalErrorBoundary\n key={key}\n fallback={() => fallback({ code: 'RENDER_ERROR', blockId: block.id, type: block.type })}\n >\n <div data-generative-ui-block={block.id}>{resolved.element}</div>\n </MinimalErrorBoundary>\n );\n })}\n </>\n );\n}\n"],"mappings":";;;;;;AAkBA,SAASC,EAAgB,GAAqC;CAC5D,OAAO,kBAAC,KAAD;EAAG,MAAK;EAAS,4BAA0BC,EAAM;EAAM,UAAA;CAAoC,CAAA;AACpG;AAiCA,SAAgBC,EAAqB,EACnC,UACA,aACA,oBAAiBF,KACsB;CACvC,IAAMG,IAAWC,QAAcC,EAA6BC,CAAK,GAAG,CAACA,CAAK,CAAC,GACrE,CAACC,GAAOC,KAAYC,EAAS;EAAE;EAAU,YAAY;CAAE,CAAC;CAI9D,OAHIF,EAAM,aAAaG,KAAUF,EAAS;EAAE;EAAU,YAAYD,EAAM,aAAa;CAAE,CAAC,GACnFJ,EAAS,KAGZ,kBAAAJ,GAAA,EAAA,UACGI,EAAS,KAAK,OAAO,KAAI,MAAS;EACjC,IAAMS,IAAWF,EAAS,QAAQG,CAAK,GACjCC,IAAM,KAAK,UAAU;GAACP,EAAM;GAAYJ,EAAS,KAAK;GAAIU;EAAK,CAAC,GAChEE,KAAY,MAChB,kBAAC,OAAD;GAAK,4BAA0BF,EAAM;GAAK,UAAAG,EAAef,CAAK;EAAO,CAAA;EAGvE,OADKW,EAAS,KAEZ,kBAACK,GAAD;GAEE,gBAAgBF,EAAS;IAAE,MAAM;IAAgB,SAASF,EAAM;IAAI,MAAMA,EAAM;GAAK,CAAC;GAEtF,UAAA,kBAAC,OAAD;IAAK,4BAA0BA,EAAM;IAAK,UAAAD,EAAS;GAAa,CAAA;EAC5C,GAJfE,CAIe,IAPC,kBAAC,OAAD,EAAA,UAAgBC,EAASH,EAAS,KAAK,EAAO,GAApCE,CAAoC;CASzE,CAAC,EACD,CAAA,IApBqBE,EAAe,EAAE,MAAM,mBAAmB,CAAC;AAsBtE"}
@@ -1 +1 @@
1
- {"version":3,"file":"use-proposal-batch-review.cjs","names":["createExecutionSession","useState","useRef","useSyncExternalStore","prepareProposalBatch","react","_alneas_appkit_core_ai","initial","useProposalBatchReview","key","options","item","stored","setStored","state","session","live","latest","current","history","busy","record","update","change","entries","items","applied","preparation","editable","id","next","value","selected","field","decision","planned","outcome","context","completed","payload","checked","fraction","progress"],"sources":["../../../src/ai/proposal/use-proposal-batch-review.ts"],"sourcesContent":["import { useLayoutEffect, useRef, useState, useSyncExternalStore } from 'react';\nimport { createExecutionSession, type ExecutionContext, type ExecutionRecord, type ExecutionSession } from \"@alneas/appkit-core/ai\";\nimport {\n prepareProposalBatch,\n type ApplyProposalPayload,\n type FieldDecision,\n type FieldKey,\n type PreparedProposalBatch,\n type ProposalBatchEntry,\n type ProposalBatchItem,\n type ProposalBatchValidator,\n type ReviewDecisions,\n} from \"@alneas/appkit-core/ai\";\n\n/**\n * Host inputs for reviewing unique immutable proposals across multiple records.\n *\n * @typeParam TRecord - Record shape; defaults to a string-keyed record.\n *\n * @see useProposalBatchReview for usage.\n */\nexport interface UseProposalBatchReviewOptions<TRecord extends Record<string, any> = Record<string, any>> {\n /** Change for a new review session, including an intentional replay of the same proposals. */\n batchId: string;\n /**\n * Validated proposals and latest records/versions; proposal IDs must be unique.\n */\n items: readonly ProposalBatchItem<TRecord>[];\n /**\n * Optional synchronous validator passed to Core batch preparation; thrown errors become invalid_candidate issues.\n */\n validateCandidate?: ProposalBatchValidator<TRecord>;\n /**\n * Sequential host callback receiving one prepared payload and cooperative abort/progress context.\n *\n * @param payload - Validated candidate and decisions for one proposal.\n *\n * @param context - Abort signal and fractional-progress reporting for this row.\n *\n * @returns No value after the host confirms application; reject to stop later rows.\n */\n onApply?: (payload: ApplyProposalPayload<TRecord>, context: ExecutionContext) => void | Promise<void>;\n}\n\n/**\n * Batch selection/decision state and explicit execution controls.\n *\n * @typeParam TRecord - Shared record shape; defaults to a string-keyed record.\n *\n * @see useProposalBatchReview for usage.\n */\nexport interface UseProposalBatchReviewReturn<TRecord extends Record<string, any> = Record<string, any>> {\n /**\n * Current selected proposal IDs; applied IDs are excluded from preparation.\n */\n selectedIds: ReadonlySet<string>;\n /**\n * Host-confirmed successes in this review session.\n */\n appliedIds: ReadonlySet<string>;\n /**\n * Per-proposal field decisions; absent choices remain pending.\n */\n decisions: ReadonlyMap<string, ReviewDecisions<TRecord>>;\n /**\n * Core batch preflight result for current selection and latest input props.\n */\n preparation: PreparedProposalBatch<TRecord>;\n /**\n * Whether a handler exists, preparation passes and state is not submitting.\n */\n canApply: boolean;\n /**\n * Whether the displayed batch is currently running.\n */\n isSubmitting: boolean;\n /**\n * Current row being applied, or null outside active row work.\n */\n activeProposalId: string | null;\n /**\n * Generic current-session batch failure message, or null; raw host exceptions are not exposed.\n */\n error: string | null;\n /**\n * Read-only execution history for this batch session.\n */\n history: readonly ExecutionRecord[];\n /**\n * Select or deselect an editable known proposal.\n *\n * @param id - Proposal identifier.\n *\n * @param selected - Desired selection state.\n *\n * @returns No value; unknown/applied/busy proposals are ignored.\n */\n setSelected(id: string, selected: boolean): void;\n /**\n * Change selection for the current items when idle.\n *\n * @param selected - True selects all current IDs; false retains only applied IDs in the selection set.\n *\n * @returns No value; calls while execution is busy are ignored.\n */\n selectAll(selected: boolean): void;\n /**\n * Change one existing proposed field while editable.\n *\n * @param id - Proposal identifier.\n *\n * @param field - Field present in that proposal.\n *\n * @param decision - Pending, accepted or rejected choice.\n *\n * @returns No value; invalid IDs/fields and busy/applied proposals are ignored.\n */\n setDecision(id: string, field: FieldKey<TRecord>, decision: FieldDecision): void;\n /**\n * Change every proposed field choice for one editable proposal.\n *\n * @param id - Proposal identifier.\n *\n * @param decision - Choice applied to all its changes.\n *\n * @returns No value; unknown/applied/busy proposals are ignored.\n */\n decideAll(id: string, decision: FieldDecision): void;\n /**\n * Preflight the selection, then apply rows sequentially with latest-record rechecks.\n *\n * @returns True only for current-session complete success; false when blocked, failed, cancelled or superseded.\n *\n * @remarks Confirmed successes are retained and skipped on retry; unconfirmed backend effects may still exist.\n */\n apply(): Promise<boolean>;\n /**\n * Request cooperative cancellation of current execution.\n *\n * @returns No value; does not roll back previously applied rows or force host work to stop.\n */\n cancel(): void;\n /**\n * Clear settled execution history using the session policy.\n *\n * @returns No value; does not clear review choices or confirmed applied IDs.\n */\n clearHistory(): void;\n}\n\ninterface ReviewState<TRecord extends Record<string, any>> {\n key: string;\n session: ExecutionSession;\n selected: ReadonlySet<string>;\n applied: ReadonlySet<string>;\n decisions: ReadonlyMap<string, ReviewDecisions<TRecord>>;\n running: boolean;\n active: string | null;\n error: string | null;\n}\n\nfunction initial<TRecord extends Record<string, any>>(key: string): ReviewState<TRecord> {\n return {\n key,\n session: createExecutionSession(),\n selected: new Set(),\n applied: new Set(),\n decisions: new Map(),\n running: false,\n active: null,\n error: null,\n };\n}\n\n/**\n * Reviews a batch with explicit field decisions and sequential host application.\n *\n * @typeParam TRecord - Record shape; defaults to a string-keyed record.\n *\n * @param options - Batch identity, unique immutable proposals/latest records, validation and optional host apply callback.\n *\n * @returns Selection/decision controls, preflight state, bounded execution history and cooperative cancellation.\n *\n * @remarks Requires React; no context/styles. Changing batchId or serialized proposal\n * content starts a new session; unmount/session changes request cancellation. Each row\n * is rechecked against latest committed host inputs before apply. Stops at the first\n * failure/cancellation; successes remain excluded from retries. Cancellation cannot\n * undo host effects, so persist idempotently and enforce concurrency/authorization in\n * the backend. A row that changed the backend before rejecting has an uncertain outcome.\n *\n * @example\n * ```tsx\n * import { useProposalBatchReview, type UseProposalBatchReviewOptions } from '@alneas/appkit-react/ai/proposal';\n * type RecordData = { title: string };\n * export function Batch({ options }: { options: UseProposalBatchReviewOptions<RecordData> }) {\n * const review = useProposalBatchReview(options);\n * return <button disabled={!review.canApply} onClick={() => { void review.apply(); }}>Apply selected records</button>;\n * }\n * ```\n */\nexport function useProposalBatchReview<TRecord extends Record<string, any> = Record<string, any>>(\n options: UseProposalBatchReviewOptions<TRecord>\n): UseProposalBatchReviewReturn<TRecord> {\n const key = JSON.stringify([options.batchId, options.items.map(item => JSON.stringify(item.proposal)).sort()]);\n const [stored, setStored] = useState(() => initial<TRecord>(key));\n let state = stored;\n if (state.key !== key) {\n state = initial<TRecord>(key);\n setStored(state);\n }\n const session = state.session;\n const live = useRef<{ session: ExecutionSession; applied: Set<string> } | null>(null);\n const latest = useRef(options);\n useLayoutEffect(() => {\n latest.current = options;\n });\n useLayoutEffect(() => {\n const current = { session, applied: new Set<string>() };\n live.current = current;\n return () => {\n session.cancel();\n if (live.current === current) live.current = null;\n };\n }, [session]);\n\n const history = useSyncExternalStore(session.subscribe, session.getSnapshot, session.getSnapshot);\n const busy = () => session.getSnapshot().some(record => record.status === 'running' || record.status === 'cancelling');\n const update = (change: (current: ReviewState<TRecord>) => ReviewState<TRecord>) => {\n setStored(current => (current.session === session ? change(current) : current));\n };\n\n const entries = (\n items: readonly ProposalBatchItem<TRecord>[],\n applied: ReadonlySet<string>\n ): ProposalBatchEntry<TRecord>[] =>\n items.map(item => ({\n ...item,\n decisions: state.decisions.get(item.proposal.id) ?? ({} as ReviewDecisions<TRecord>),\n selected: state.selected.has(item.proposal.id) && !applied.has(item.proposal.id),\n }));\n\n const preparation = prepareProposalBatch(entries(options.items, state.applied), options.validateCandidate);\n const editable = (id: string) =>\n live.current?.session === session && !busy() && !live.current.applied.has(id) && options.items.some(item => item.proposal.id === id);\n\n const apply = async (): Promise<boolean> => {\n const current = live.current;\n if (!current || current.session !== session || busy() || !latest.current.onApply) return false;\n const planned = prepareProposalBatch(entries(latest.current.items, current.applied), latest.current.validateCandidate);\n if (!planned.canApply) return false;\n update(value => ({ ...value, running: true, error: null }));\n const outcome = await session.run(`一括適用 ${planned.payloads.length} 件`, async context => {\n context.reportProgress({ completed: 0, total: planned.payloads.length });\n let completed = 0;\n for (const payload of planned.payloads) {\n context.signal.throwIfAborted();\n if (live.current !== current) throw new DOMException('Review session changed', 'AbortError');\n const item = latest.current.items.find(value => value.proposal.id === payload.proposalId);\n if (!item) throw new Error('対象の提案が見つかりません。再確認してください。');\n const checked = prepareProposalBatch(\n [{ ...item, selected: true, decisions: state.decisions.get(payload.proposalId) ?? ({} as ReviewDecisions<TRecord>) }],\n latest.current.validateCandidate\n );\n if (!checked.canApply || !latest.current.onApply) {\n throw new Error('適用前にデータが変更されたため停止しました。再確認してください。');\n }\n update(value => ({ ...value, active: payload.proposalId }));\n await latest.current.onApply(checked.payloads[0], {\n signal: context.signal,\n reportProgress(progress) {\n const fraction =\n progress.total && Number.isFinite(progress.total) && Number.isFinite(progress.completed)\n ? Math.max(0, Math.min(1, progress.completed / progress.total))\n : 0;\n context.reportProgress({\n completed: completed + fraction,\n total: planned.payloads.length,\n message: progress.message,\n });\n },\n });\n if (live.current !== current) throw new DOMException('Review session changed', 'AbortError');\n current.applied.add(payload.proposalId);\n update(value => ({ ...value, applied: new Set(current.applied) }));\n context.reportProgress({ completed: ++completed, total: planned.payloads.length });\n }\n });\n if (live.current !== current) return false;\n update(value => ({\n ...value,\n running: false,\n active: null,\n error: outcome.status === 'failed' ? '適用に失敗しました。成功済みの提案を除いて再試行できます。' : null,\n }));\n return outcome.status === 'succeeded';\n };\n\n return {\n selectedIds: state.selected,\n appliedIds: state.applied,\n decisions: state.decisions,\n preparation,\n canApply: !!options.onApply && preparation.canApply && !state.running,\n isSubmitting: state.running,\n activeProposalId: state.active,\n error: state.error,\n history,\n setSelected(id, selected) {\n if (!editable(id)) return;\n update(value => {\n const next = new Set(value.selected);\n if (selected) next.add(id);\n else next.delete(id);\n return { ...value, selected: next, error: null };\n });\n },\n selectAll(selected) {\n if (busy()) return;\n update(value => ({\n ...value,\n selected: new Set(selected ? options.items.map(item => item.proposal.id) : value.applied),\n error: null,\n }));\n },\n setDecision(id, field, decision) {\n if (!editable(id) || !options.items.find(item => item.proposal.id === id)?.proposal.changes.some(change => change.field === field)) return;\n update(value => ({\n ...value,\n decisions: new Map(value.decisions).set(id, {\n ...value.decisions.get(id),\n [field]: decision,\n } as ReviewDecisions<TRecord>),\n error: null,\n }));\n },\n decideAll(id, decision) {\n if (!editable(id)) return;\n const item = options.items.find(value => value.proposal.id === id)!;\n update(value => ({\n ...value,\n decisions: new Map(value.decisions).set(\n id,\n Object.fromEntries(item.proposal.changes.map(change => [change.field, decision])) as ReviewDecisions<TRecord>\n ),\n error: null,\n }));\n },\n apply,\n cancel: session.cancel,\n clearHistory: session.clearHistory,\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"use-proposal-batch-review.cjs","names":["createExecutionSession","useState","useRef","useSyncExternalStore","prepareProposalBatch","react","_alneas_appkit_core_ai","initial","useProposalBatchReview","key","options","item","stored","setStored","state","session","live","latest","current","history","busy","record","update","change","entries","items","applied","preparation","editable","id","next","value","selected","field","decision","planned","outcome","context","completed","payload","checked","fraction","progress"],"sources":["../../../src/ai/proposal/use-proposal-batch-review.ts"],"sourcesContent":["import { useLayoutEffect, useRef, useState, useSyncExternalStore } from 'react';\nimport { createExecutionSession, type ExecutionContext, type ExecutionRecord, type ExecutionSession } from \"@alneas/appkit-core/ai\";\nimport {\n prepareProposalBatch,\n type ApplyProposalPayload,\n type FieldDecision,\n type FieldKey,\n type PreparedProposalBatch,\n type ProposalBatchEntry,\n type ProposalBatchItem,\n type ProposalBatchValidator,\n type ReviewDecisions,\n} from \"@alneas/appkit-core/ai\";\n\n/**\n * Host inputs for reviewing unique immutable proposals across multiple records.\n *\n * @typeParam TRecord - Record shape; defaults to a string-keyed record.\n *\n * @see useProposalBatchReview for usage.\n */\nexport interface UseProposalBatchReviewOptions<TRecord extends Record<string, any> = Record<string, any>> {\n /** Change for a new review session, including an intentional replay of the same proposals. */\n batchId: string;\n /**\n * Validated proposals and latest records/versions; proposal IDs must be unique.\n */\n items: readonly ProposalBatchItem<TRecord>[];\n /**\n * Optional synchronous validator passed to Core batch preparation; thrown errors become invalid_candidate issues.\n */\n validateCandidate?: ProposalBatchValidator<TRecord>;\n /**\n * Sequential host callback receiving one prepared payload and cooperative abort/progress context.\n *\n * @param payload - Validated candidate and decisions for one proposal.\n *\n * @param context - Abort signal and fractional-progress reporting for this row.\n *\n * @returns No value after the host confirms application; reject to stop later rows.\n */\n onApply?: (payload: ApplyProposalPayload<TRecord>, context: ExecutionContext) => void | Promise<void>;\n}\n\n/**\n * Batch selection/decision state and explicit execution controls.\n *\n * @typeParam TRecord - Shared record shape; defaults to a string-keyed record.\n *\n * @see useProposalBatchReview for usage.\n */\nexport interface UseProposalBatchReviewReturn<TRecord extends Record<string, any> = Record<string, any>> {\n /**\n * Current selected proposal IDs; applied IDs are excluded from preparation.\n */\n selectedIds: ReadonlySet<string>;\n /**\n * Host-confirmed successes in this review session.\n */\n appliedIds: ReadonlySet<string>;\n /**\n * Per-proposal field decisions; absent choices remain pending.\n */\n decisions: ReadonlyMap<string, ReviewDecisions<TRecord>>;\n /**\n * Core batch preflight result for current selection and latest input props.\n */\n preparation: PreparedProposalBatch<TRecord>;\n /**\n * Whether a handler exists, preparation passes and state is not submitting.\n */\n canApply: boolean;\n /**\n * Whether the displayed batch is currently running.\n */\n isSubmitting: boolean;\n /**\n * Current row being applied, or null outside active row work.\n */\n activeProposalId: string | null;\n /**\n * Generic current-session batch failure message, or null; raw host exceptions are not exposed.\n */\n error: string | null;\n /**\n * Read-only execution history for this batch session.\n */\n history: readonly ExecutionRecord[];\n /**\n * Select or deselect an editable known proposal.\n *\n * @param id - Proposal identifier.\n *\n * @param selected - Desired selection state.\n *\n * @returns No value; unknown/applied/busy proposals are ignored.\n */\n setSelected(id: string, selected: boolean): void;\n /**\n * Change selection for the current items when idle.\n *\n * @param selected - True selects all current IDs; false retains only applied IDs in the selection set.\n *\n * @returns No value; calls while execution is busy are ignored.\n */\n selectAll(selected: boolean): void;\n /**\n * Change one existing proposed field while editable.\n *\n * @param id - Proposal identifier.\n *\n * @param field - Field present in that proposal.\n *\n * @param decision - Pending, accepted or rejected choice.\n *\n * @returns No value; invalid IDs/fields and busy/applied proposals are ignored.\n */\n setDecision(id: string, field: FieldKey<TRecord>, decision: FieldDecision): void;\n /**\n * Change every proposed field choice for one editable proposal.\n *\n * @param id - Proposal identifier.\n *\n * @param decision - Choice applied to all its changes.\n *\n * @returns No value; unknown/applied/busy proposals are ignored.\n */\n decideAll(id: string, decision: FieldDecision): void;\n /**\n * Preflight the selection, then apply rows sequentially with latest-record rechecks.\n *\n * @returns True only for current-session complete success; false when blocked, failed, cancelled or superseded.\n *\n * @remarks Confirmed successes are retained and skipped on retry; unconfirmed backend effects may still exist.\n */\n apply(): Promise<boolean>;\n /**\n * Request cooperative cancellation of current execution.\n *\n * @returns No value; does not roll back previously applied rows or force host work to stop.\n */\n cancel(): void;\n /**\n * Clear settled execution history using the session policy.\n *\n * @returns No value; does not clear review choices or confirmed applied IDs.\n */\n clearHistory(): void;\n}\n\ninterface ReviewState<TRecord extends Record<string, any>> {\n key: string;\n session: ExecutionSession;\n selected: ReadonlySet<string>;\n applied: ReadonlySet<string>;\n decisions: ReadonlyMap<string, ReviewDecisions<TRecord>>;\n running: boolean;\n active: string | null;\n error: string | null;\n}\n\nfunction initial<TRecord extends Record<string, any>>(key: string): ReviewState<TRecord> {\n return {\n key,\n session: createExecutionSession(),\n selected: new Set(),\n applied: new Set(),\n decisions: new Map(),\n running: false,\n active: null,\n error: null,\n };\n}\n\n/**\n * Reviews a batch with explicit field decisions and sequential host application.\n *\n * @typeParam TRecord - Record shape; defaults to a string-keyed record.\n *\n * @param options - Batch identity, unique immutable proposals/latest records, validation and optional host apply callback.\n *\n * @returns Selection/decision controls, preflight state, bounded execution history and cooperative cancellation.\n *\n * @remarks Requires React; no context/styles. Changing batchId or serialized proposal\n * content starts a new session; unmount/session changes request cancellation. Each row\n * is rechecked against latest committed host inputs before apply. Stops at the first\n * failure/cancellation; successes remain excluded from retries. Cancellation cannot\n * undo host effects, so persist idempotently and enforce concurrency/authorization in\n * the backend. A row that changed the backend before rejecting has an uncertain outcome.\n * Keep the ref/layout-effect bridge for latest host inputs: the returned apply control\n * can be called by UI event handlers and other host code outside Effect logic.\n * useEffectEvent is restricted to Effect-originated callbacks and cannot replace this\n * externally callable execution path. The ref is not a React 18 compatibility shim.\n *\n * @example\n * ```tsx\n * import { useProposalBatchReview, type UseProposalBatchReviewOptions } from '@alneas/appkit-react/ai/proposal';\n * type RecordData = { title: string };\n * export function Batch({ options }: { options: UseProposalBatchReviewOptions<RecordData> }) {\n * const review = useProposalBatchReview(options);\n * return <button disabled={!review.canApply} onClick={() => { void review.apply(); }}>Apply selected records</button>;\n * }\n * ```\n */\nexport function useProposalBatchReview<TRecord extends Record<string, any> = Record<string, any>>(\n options: UseProposalBatchReviewOptions<TRecord>\n): UseProposalBatchReviewReturn<TRecord> {\n const key = JSON.stringify([options.batchId, options.items.map(item => JSON.stringify(item.proposal)).sort()]);\n const [stored, setStored] = useState(() => initial<TRecord>(key));\n let state = stored;\n if (state.key !== key) {\n state = initial<TRecord>(key);\n setStored(state);\n }\n const session = state.session;\n const live = useRef<{ session: ExecutionSession; applied: Set<string> } | null>(null);\n const latest = useRef(options);\n useLayoutEffect(() => {\n latest.current = options;\n });\n useLayoutEffect(() => {\n const current = { session, applied: new Set<string>() };\n live.current = current;\n return () => {\n session.cancel();\n if (live.current === current) live.current = null;\n };\n }, [session]);\n\n const history = useSyncExternalStore(session.subscribe, session.getSnapshot, session.getSnapshot);\n const busy = () => session.getSnapshot().some(record => record.status === 'running' || record.status === 'cancelling');\n const update = (change: (current: ReviewState<TRecord>) => ReviewState<TRecord>) => {\n setStored(current => (current.session === session ? change(current) : current));\n };\n\n const entries = (\n items: readonly ProposalBatchItem<TRecord>[],\n applied: ReadonlySet<string>\n ): ProposalBatchEntry<TRecord>[] =>\n items.map(item => ({\n ...item,\n decisions: state.decisions.get(item.proposal.id) ?? ({} as ReviewDecisions<TRecord>),\n selected: state.selected.has(item.proposal.id) && !applied.has(item.proposal.id),\n }));\n\n const preparation = prepareProposalBatch(entries(options.items, state.applied), options.validateCandidate);\n const editable = (id: string) =>\n live.current?.session === session && !busy() && !live.current.applied.has(id) && options.items.some(item => item.proposal.id === id);\n\n const apply = async (): Promise<boolean> => {\n const current = live.current;\n if (!current || current.session !== session || busy() || !latest.current.onApply) return false;\n const planned = prepareProposalBatch(entries(latest.current.items, current.applied), latest.current.validateCandidate);\n if (!planned.canApply) return false;\n update(value => ({ ...value, running: true, error: null }));\n const outcome = await session.run(`一括適用 ${planned.payloads.length} 件`, async context => {\n context.reportProgress({ completed: 0, total: planned.payloads.length });\n let completed = 0;\n for (const payload of planned.payloads) {\n context.signal.throwIfAborted();\n if (live.current !== current) throw new DOMException('Review session changed', 'AbortError');\n const item = latest.current.items.find(value => value.proposal.id === payload.proposalId);\n if (!item) throw new Error('対象の提案が見つかりません。再確認してください。');\n const checked = prepareProposalBatch(\n [{ ...item, selected: true, decisions: state.decisions.get(payload.proposalId) ?? ({} as ReviewDecisions<TRecord>) }],\n latest.current.validateCandidate\n );\n if (!checked.canApply || !latest.current.onApply) {\n throw new Error('適用前にデータが変更されたため停止しました。再確認してください。');\n }\n update(value => ({ ...value, active: payload.proposalId }));\n await latest.current.onApply(checked.payloads[0], {\n signal: context.signal,\n reportProgress(progress) {\n const fraction =\n progress.total && Number.isFinite(progress.total) && Number.isFinite(progress.completed)\n ? Math.max(0, Math.min(1, progress.completed / progress.total))\n : 0;\n context.reportProgress({\n completed: completed + fraction,\n total: planned.payloads.length,\n message: progress.message,\n });\n },\n });\n if (live.current !== current) throw new DOMException('Review session changed', 'AbortError');\n current.applied.add(payload.proposalId);\n update(value => ({ ...value, applied: new Set(current.applied) }));\n context.reportProgress({ completed: ++completed, total: planned.payloads.length });\n }\n });\n if (live.current !== current) return false;\n update(value => ({\n ...value,\n running: false,\n active: null,\n error: outcome.status === 'failed' ? '適用に失敗しました。成功済みの提案を除いて再試行できます。' : null,\n }));\n return outcome.status === 'succeeded';\n };\n\n return {\n selectedIds: state.selected,\n appliedIds: state.applied,\n decisions: state.decisions,\n preparation,\n canApply: !!options.onApply && preparation.canApply && !state.running,\n isSubmitting: state.running,\n activeProposalId: state.active,\n error: state.error,\n history,\n setSelected(id, selected) {\n if (!editable(id)) return;\n update(value => {\n const next = new Set(value.selected);\n if (selected) next.add(id);\n else next.delete(id);\n return { ...value, selected: next, error: null };\n });\n },\n selectAll(selected) {\n if (busy()) return;\n update(value => ({\n ...value,\n selected: new Set(selected ? options.items.map(item => item.proposal.id) : value.applied),\n error: null,\n }));\n },\n setDecision(id, field, decision) {\n if (!editable(id) || !options.items.find(item => item.proposal.id === id)?.proposal.changes.some(change => change.field === field)) return;\n update(value => ({\n ...value,\n decisions: new Map(value.decisions).set(id, {\n ...value.decisions.get(id),\n [field]: decision,\n } as ReviewDecisions<TRecord>),\n error: null,\n }));\n },\n decideAll(id, decision) {\n if (!editable(id)) return;\n const item = options.items.find(value => value.proposal.id === id)!;\n update(value => ({\n ...value,\n decisions: new Map(value.decisions).set(\n id,\n Object.fromEntries(item.proposal.changes.map(change => [change.field, decision])) as ReviewDecisions<TRecord>\n ),\n error: null,\n }));\n },\n apply,\n cancel: session.cancel,\n clearHistory: session.clearHistory,\n };\n}\n"],"mappings":"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"}
@@ -148,6 +148,10 @@ export interface UseProposalBatchReviewReturn<TRecord extends Record<string, any
148
148
  * failure/cancellation; successes remain excluded from retries. Cancellation cannot
149
149
  * undo host effects, so persist idempotently and enforce concurrency/authorization in
150
150
  * the backend. A row that changed the backend before rejecting has an uncertain outcome.
151
+ * Keep the ref/layout-effect bridge for latest host inputs: the returned apply control
152
+ * can be called by UI event handlers and other host code outside Effect logic.
153
+ * useEffectEvent is restricted to Effect-originated callbacks and cannot replace this
154
+ * externally callable execution path. The ref is not a React 18 compatibility shim.
151
155
  *
152
156
  * @example
153
157
  * ```tsx
@@ -148,6 +148,10 @@ export interface UseProposalBatchReviewReturn<TRecord extends Record<string, any
148
148
  * failure/cancellation; successes remain excluded from retries. Cancellation cannot
149
149
  * undo host effects, so persist idempotently and enforce concurrency/authorization in
150
150
  * the backend. A row that changed the backend before rejecting has an uncertain outcome.
151
+ * Keep the ref/layout-effect bridge for latest host inputs: the returned apply control
152
+ * can be called by UI event handlers and other host code outside Effect logic.
153
+ * useEffectEvent is restricted to Effect-originated callbacks and cannot replace this
154
+ * externally callable execution path. The ref is not a React 18 compatibility shim.
151
155
  *
152
156
  * @example
153
157
  * ```tsx
@@ -1 +1 @@
1
- {"version":3,"file":"use-proposal-batch-review.js","names":["initial","createExecutionSession","useProposalBatchReview","key","options","item","stored","setStored","useState","state","session","live","useRef","latest","useLayoutEffect","current","history","useSyncExternalStore","busy","record","update","change","entries","items","applied","preparation","prepareProposalBatch","editable","id","next","value","selected","field","decision","planned","outcome","completed","payload","context","checked","fraction","progress"],"sources":["../../../src/ai/proposal/use-proposal-batch-review.ts"],"sourcesContent":["import { useLayoutEffect, useRef, useState, useSyncExternalStore } from 'react';\nimport { createExecutionSession, type ExecutionContext, type ExecutionRecord, type ExecutionSession } from \"@alneas/appkit-core/ai\";\nimport {\n prepareProposalBatch,\n type ApplyProposalPayload,\n type FieldDecision,\n type FieldKey,\n type PreparedProposalBatch,\n type ProposalBatchEntry,\n type ProposalBatchItem,\n type ProposalBatchValidator,\n type ReviewDecisions,\n} from \"@alneas/appkit-core/ai\";\n\n/**\n * Host inputs for reviewing unique immutable proposals across multiple records.\n *\n * @typeParam TRecord - Record shape; defaults to a string-keyed record.\n *\n * @see useProposalBatchReview for usage.\n */\nexport interface UseProposalBatchReviewOptions<TRecord extends Record<string, any> = Record<string, any>> {\n /** Change for a new review session, including an intentional replay of the same proposals. */\n batchId: string;\n /**\n * Validated proposals and latest records/versions; proposal IDs must be unique.\n */\n items: readonly ProposalBatchItem<TRecord>[];\n /**\n * Optional synchronous validator passed to Core batch preparation; thrown errors become invalid_candidate issues.\n */\n validateCandidate?: ProposalBatchValidator<TRecord>;\n /**\n * Sequential host callback receiving one prepared payload and cooperative abort/progress context.\n *\n * @param payload - Validated candidate and decisions for one proposal.\n *\n * @param context - Abort signal and fractional-progress reporting for this row.\n *\n * @returns No value after the host confirms application; reject to stop later rows.\n */\n onApply?: (payload: ApplyProposalPayload<TRecord>, context: ExecutionContext) => void | Promise<void>;\n}\n\n/**\n * Batch selection/decision state and explicit execution controls.\n *\n * @typeParam TRecord - Shared record shape; defaults to a string-keyed record.\n *\n * @see useProposalBatchReview for usage.\n */\nexport interface UseProposalBatchReviewReturn<TRecord extends Record<string, any> = Record<string, any>> {\n /**\n * Current selected proposal IDs; applied IDs are excluded from preparation.\n */\n selectedIds: ReadonlySet<string>;\n /**\n * Host-confirmed successes in this review session.\n */\n appliedIds: ReadonlySet<string>;\n /**\n * Per-proposal field decisions; absent choices remain pending.\n */\n decisions: ReadonlyMap<string, ReviewDecisions<TRecord>>;\n /**\n * Core batch preflight result for current selection and latest input props.\n */\n preparation: PreparedProposalBatch<TRecord>;\n /**\n * Whether a handler exists, preparation passes and state is not submitting.\n */\n canApply: boolean;\n /**\n * Whether the displayed batch is currently running.\n */\n isSubmitting: boolean;\n /**\n * Current row being applied, or null outside active row work.\n */\n activeProposalId: string | null;\n /**\n * Generic current-session batch failure message, or null; raw host exceptions are not exposed.\n */\n error: string | null;\n /**\n * Read-only execution history for this batch session.\n */\n history: readonly ExecutionRecord[];\n /**\n * Select or deselect an editable known proposal.\n *\n * @param id - Proposal identifier.\n *\n * @param selected - Desired selection state.\n *\n * @returns No value; unknown/applied/busy proposals are ignored.\n */\n setSelected(id: string, selected: boolean): void;\n /**\n * Change selection for the current items when idle.\n *\n * @param selected - True selects all current IDs; false retains only applied IDs in the selection set.\n *\n * @returns No value; calls while execution is busy are ignored.\n */\n selectAll(selected: boolean): void;\n /**\n * Change one existing proposed field while editable.\n *\n * @param id - Proposal identifier.\n *\n * @param field - Field present in that proposal.\n *\n * @param decision - Pending, accepted or rejected choice.\n *\n * @returns No value; invalid IDs/fields and busy/applied proposals are ignored.\n */\n setDecision(id: string, field: FieldKey<TRecord>, decision: FieldDecision): void;\n /**\n * Change every proposed field choice for one editable proposal.\n *\n * @param id - Proposal identifier.\n *\n * @param decision - Choice applied to all its changes.\n *\n * @returns No value; unknown/applied/busy proposals are ignored.\n */\n decideAll(id: string, decision: FieldDecision): void;\n /**\n * Preflight the selection, then apply rows sequentially with latest-record rechecks.\n *\n * @returns True only for current-session complete success; false when blocked, failed, cancelled or superseded.\n *\n * @remarks Confirmed successes are retained and skipped on retry; unconfirmed backend effects may still exist.\n */\n apply(): Promise<boolean>;\n /**\n * Request cooperative cancellation of current execution.\n *\n * @returns No value; does not roll back previously applied rows or force host work to stop.\n */\n cancel(): void;\n /**\n * Clear settled execution history using the session policy.\n *\n * @returns No value; does not clear review choices or confirmed applied IDs.\n */\n clearHistory(): void;\n}\n\ninterface ReviewState<TRecord extends Record<string, any>> {\n key: string;\n session: ExecutionSession;\n selected: ReadonlySet<string>;\n applied: ReadonlySet<string>;\n decisions: ReadonlyMap<string, ReviewDecisions<TRecord>>;\n running: boolean;\n active: string | null;\n error: string | null;\n}\n\nfunction initial<TRecord extends Record<string, any>>(key: string): ReviewState<TRecord> {\n return {\n key,\n session: createExecutionSession(),\n selected: new Set(),\n applied: new Set(),\n decisions: new Map(),\n running: false,\n active: null,\n error: null,\n };\n}\n\n/**\n * Reviews a batch with explicit field decisions and sequential host application.\n *\n * @typeParam TRecord - Record shape; defaults to a string-keyed record.\n *\n * @param options - Batch identity, unique immutable proposals/latest records, validation and optional host apply callback.\n *\n * @returns Selection/decision controls, preflight state, bounded execution history and cooperative cancellation.\n *\n * @remarks Requires React; no context/styles. Changing batchId or serialized proposal\n * content starts a new session; unmount/session changes request cancellation. Each row\n * is rechecked against latest committed host inputs before apply. Stops at the first\n * failure/cancellation; successes remain excluded from retries. Cancellation cannot\n * undo host effects, so persist idempotently and enforce concurrency/authorization in\n * the backend. A row that changed the backend before rejecting has an uncertain outcome.\n *\n * @example\n * ```tsx\n * import { useProposalBatchReview, type UseProposalBatchReviewOptions } from '@alneas/appkit-react/ai/proposal';\n * type RecordData = { title: string };\n * export function Batch({ options }: { options: UseProposalBatchReviewOptions<RecordData> }) {\n * const review = useProposalBatchReview(options);\n * return <button disabled={!review.canApply} onClick={() => { void review.apply(); }}>Apply selected records</button>;\n * }\n * ```\n */\nexport function useProposalBatchReview<TRecord extends Record<string, any> = Record<string, any>>(\n options: UseProposalBatchReviewOptions<TRecord>\n): UseProposalBatchReviewReturn<TRecord> {\n const key = JSON.stringify([options.batchId, options.items.map(item => JSON.stringify(item.proposal)).sort()]);\n const [stored, setStored] = useState(() => initial<TRecord>(key));\n let state = stored;\n if (state.key !== key) {\n state = initial<TRecord>(key);\n setStored(state);\n }\n const session = state.session;\n const live = useRef<{ session: ExecutionSession; applied: Set<string> } | null>(null);\n const latest = useRef(options);\n useLayoutEffect(() => {\n latest.current = options;\n });\n useLayoutEffect(() => {\n const current = { session, applied: new Set<string>() };\n live.current = current;\n return () => {\n session.cancel();\n if (live.current === current) live.current = null;\n };\n }, [session]);\n\n const history = useSyncExternalStore(session.subscribe, session.getSnapshot, session.getSnapshot);\n const busy = () => session.getSnapshot().some(record => record.status === 'running' || record.status === 'cancelling');\n const update = (change: (current: ReviewState<TRecord>) => ReviewState<TRecord>) => {\n setStored(current => (current.session === session ? change(current) : current));\n };\n\n const entries = (\n items: readonly ProposalBatchItem<TRecord>[],\n applied: ReadonlySet<string>\n ): ProposalBatchEntry<TRecord>[] =>\n items.map(item => ({\n ...item,\n decisions: state.decisions.get(item.proposal.id) ?? ({} as ReviewDecisions<TRecord>),\n selected: state.selected.has(item.proposal.id) && !applied.has(item.proposal.id),\n }));\n\n const preparation = prepareProposalBatch(entries(options.items, state.applied), options.validateCandidate);\n const editable = (id: string) =>\n live.current?.session === session && !busy() && !live.current.applied.has(id) && options.items.some(item => item.proposal.id === id);\n\n const apply = async (): Promise<boolean> => {\n const current = live.current;\n if (!current || current.session !== session || busy() || !latest.current.onApply) return false;\n const planned = prepareProposalBatch(entries(latest.current.items, current.applied), latest.current.validateCandidate);\n if (!planned.canApply) return false;\n update(value => ({ ...value, running: true, error: null }));\n const outcome = await session.run(`一括適用 ${planned.payloads.length} 件`, async context => {\n context.reportProgress({ completed: 0, total: planned.payloads.length });\n let completed = 0;\n for (const payload of planned.payloads) {\n context.signal.throwIfAborted();\n if (live.current !== current) throw new DOMException('Review session changed', 'AbortError');\n const item = latest.current.items.find(value => value.proposal.id === payload.proposalId);\n if (!item) throw new Error('対象の提案が見つかりません。再確認してください。');\n const checked = prepareProposalBatch(\n [{ ...item, selected: true, decisions: state.decisions.get(payload.proposalId) ?? ({} as ReviewDecisions<TRecord>) }],\n latest.current.validateCandidate\n );\n if (!checked.canApply || !latest.current.onApply) {\n throw new Error('適用前にデータが変更されたため停止しました。再確認してください。');\n }\n update(value => ({ ...value, active: payload.proposalId }));\n await latest.current.onApply(checked.payloads[0], {\n signal: context.signal,\n reportProgress(progress) {\n const fraction =\n progress.total && Number.isFinite(progress.total) && Number.isFinite(progress.completed)\n ? Math.max(0, Math.min(1, progress.completed / progress.total))\n : 0;\n context.reportProgress({\n completed: completed + fraction,\n total: planned.payloads.length,\n message: progress.message,\n });\n },\n });\n if (live.current !== current) throw new DOMException('Review session changed', 'AbortError');\n current.applied.add(payload.proposalId);\n update(value => ({ ...value, applied: new Set(current.applied) }));\n context.reportProgress({ completed: ++completed, total: planned.payloads.length });\n }\n });\n if (live.current !== current) return false;\n update(value => ({\n ...value,\n running: false,\n active: null,\n error: outcome.status === 'failed' ? '適用に失敗しました。成功済みの提案を除いて再試行できます。' : null,\n }));\n return outcome.status === 'succeeded';\n };\n\n return {\n selectedIds: state.selected,\n appliedIds: state.applied,\n decisions: state.decisions,\n preparation,\n canApply: !!options.onApply && preparation.canApply && !state.running,\n isSubmitting: state.running,\n activeProposalId: state.active,\n error: state.error,\n history,\n setSelected(id, selected) {\n if (!editable(id)) return;\n update(value => {\n const next = new Set(value.selected);\n if (selected) next.add(id);\n else next.delete(id);\n return { ...value, selected: next, error: null };\n });\n },\n selectAll(selected) {\n if (busy()) return;\n update(value => ({\n ...value,\n selected: new Set(selected ? options.items.map(item => item.proposal.id) : value.applied),\n error: null,\n }));\n },\n setDecision(id, field, decision) {\n if (!editable(id) || !options.items.find(item => item.proposal.id === id)?.proposal.changes.some(change => change.field === field)) return;\n update(value => ({\n ...value,\n decisions: new Map(value.decisions).set(id, {\n ...value.decisions.get(id),\n [field]: decision,\n } as ReviewDecisions<TRecord>),\n error: null,\n }));\n },\n decideAll(id, decision) {\n if (!editable(id)) return;\n const item = options.items.find(value => value.proposal.id === id)!;\n update(value => ({\n ...value,\n decisions: new Map(value.decisions).set(\n id,\n Object.fromEntries(item.proposal.changes.map(change => [change.field, decision])) as ReviewDecisions<TRecord>\n ),\n error: null,\n }));\n },\n apply,\n cancel: session.cancel,\n clearHistory: session.clearHistory,\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"use-proposal-batch-review.js","names":["initial","createExecutionSession","useProposalBatchReview","key","options","item","stored","setStored","useState","state","session","live","useRef","latest","useLayoutEffect","current","history","useSyncExternalStore","busy","record","update","change","entries","items","applied","preparation","prepareProposalBatch","editable","id","next","value","selected","field","decision","planned","outcome","completed","payload","context","checked","fraction","progress"],"sources":["../../../src/ai/proposal/use-proposal-batch-review.ts"],"sourcesContent":["import { useLayoutEffect, useRef, useState, useSyncExternalStore } from 'react';\nimport { createExecutionSession, type ExecutionContext, type ExecutionRecord, type ExecutionSession } from \"@alneas/appkit-core/ai\";\nimport {\n prepareProposalBatch,\n type ApplyProposalPayload,\n type FieldDecision,\n type FieldKey,\n type PreparedProposalBatch,\n type ProposalBatchEntry,\n type ProposalBatchItem,\n type ProposalBatchValidator,\n type ReviewDecisions,\n} from \"@alneas/appkit-core/ai\";\n\n/**\n * Host inputs for reviewing unique immutable proposals across multiple records.\n *\n * @typeParam TRecord - Record shape; defaults to a string-keyed record.\n *\n * @see useProposalBatchReview for usage.\n */\nexport interface UseProposalBatchReviewOptions<TRecord extends Record<string, any> = Record<string, any>> {\n /** Change for a new review session, including an intentional replay of the same proposals. */\n batchId: string;\n /**\n * Validated proposals and latest records/versions; proposal IDs must be unique.\n */\n items: readonly ProposalBatchItem<TRecord>[];\n /**\n * Optional synchronous validator passed to Core batch preparation; thrown errors become invalid_candidate issues.\n */\n validateCandidate?: ProposalBatchValidator<TRecord>;\n /**\n * Sequential host callback receiving one prepared payload and cooperative abort/progress context.\n *\n * @param payload - Validated candidate and decisions for one proposal.\n *\n * @param context - Abort signal and fractional-progress reporting for this row.\n *\n * @returns No value after the host confirms application; reject to stop later rows.\n */\n onApply?: (payload: ApplyProposalPayload<TRecord>, context: ExecutionContext) => void | Promise<void>;\n}\n\n/**\n * Batch selection/decision state and explicit execution controls.\n *\n * @typeParam TRecord - Shared record shape; defaults to a string-keyed record.\n *\n * @see useProposalBatchReview for usage.\n */\nexport interface UseProposalBatchReviewReturn<TRecord extends Record<string, any> = Record<string, any>> {\n /**\n * Current selected proposal IDs; applied IDs are excluded from preparation.\n */\n selectedIds: ReadonlySet<string>;\n /**\n * Host-confirmed successes in this review session.\n */\n appliedIds: ReadonlySet<string>;\n /**\n * Per-proposal field decisions; absent choices remain pending.\n */\n decisions: ReadonlyMap<string, ReviewDecisions<TRecord>>;\n /**\n * Core batch preflight result for current selection and latest input props.\n */\n preparation: PreparedProposalBatch<TRecord>;\n /**\n * Whether a handler exists, preparation passes and state is not submitting.\n */\n canApply: boolean;\n /**\n * Whether the displayed batch is currently running.\n */\n isSubmitting: boolean;\n /**\n * Current row being applied, or null outside active row work.\n */\n activeProposalId: string | null;\n /**\n * Generic current-session batch failure message, or null; raw host exceptions are not exposed.\n */\n error: string | null;\n /**\n * Read-only execution history for this batch session.\n */\n history: readonly ExecutionRecord[];\n /**\n * Select or deselect an editable known proposal.\n *\n * @param id - Proposal identifier.\n *\n * @param selected - Desired selection state.\n *\n * @returns No value; unknown/applied/busy proposals are ignored.\n */\n setSelected(id: string, selected: boolean): void;\n /**\n * Change selection for the current items when idle.\n *\n * @param selected - True selects all current IDs; false retains only applied IDs in the selection set.\n *\n * @returns No value; calls while execution is busy are ignored.\n */\n selectAll(selected: boolean): void;\n /**\n * Change one existing proposed field while editable.\n *\n * @param id - Proposal identifier.\n *\n * @param field - Field present in that proposal.\n *\n * @param decision - Pending, accepted or rejected choice.\n *\n * @returns No value; invalid IDs/fields and busy/applied proposals are ignored.\n */\n setDecision(id: string, field: FieldKey<TRecord>, decision: FieldDecision): void;\n /**\n * Change every proposed field choice for one editable proposal.\n *\n * @param id - Proposal identifier.\n *\n * @param decision - Choice applied to all its changes.\n *\n * @returns No value; unknown/applied/busy proposals are ignored.\n */\n decideAll(id: string, decision: FieldDecision): void;\n /**\n * Preflight the selection, then apply rows sequentially with latest-record rechecks.\n *\n * @returns True only for current-session complete success; false when blocked, failed, cancelled or superseded.\n *\n * @remarks Confirmed successes are retained and skipped on retry; unconfirmed backend effects may still exist.\n */\n apply(): Promise<boolean>;\n /**\n * Request cooperative cancellation of current execution.\n *\n * @returns No value; does not roll back previously applied rows or force host work to stop.\n */\n cancel(): void;\n /**\n * Clear settled execution history using the session policy.\n *\n * @returns No value; does not clear review choices or confirmed applied IDs.\n */\n clearHistory(): void;\n}\n\ninterface ReviewState<TRecord extends Record<string, any>> {\n key: string;\n session: ExecutionSession;\n selected: ReadonlySet<string>;\n applied: ReadonlySet<string>;\n decisions: ReadonlyMap<string, ReviewDecisions<TRecord>>;\n running: boolean;\n active: string | null;\n error: string | null;\n}\n\nfunction initial<TRecord extends Record<string, any>>(key: string): ReviewState<TRecord> {\n return {\n key,\n session: createExecutionSession(),\n selected: new Set(),\n applied: new Set(),\n decisions: new Map(),\n running: false,\n active: null,\n error: null,\n };\n}\n\n/**\n * Reviews a batch with explicit field decisions and sequential host application.\n *\n * @typeParam TRecord - Record shape; defaults to a string-keyed record.\n *\n * @param options - Batch identity, unique immutable proposals/latest records, validation and optional host apply callback.\n *\n * @returns Selection/decision controls, preflight state, bounded execution history and cooperative cancellation.\n *\n * @remarks Requires React; no context/styles. Changing batchId or serialized proposal\n * content starts a new session; unmount/session changes request cancellation. Each row\n * is rechecked against latest committed host inputs before apply. Stops at the first\n * failure/cancellation; successes remain excluded from retries. Cancellation cannot\n * undo host effects, so persist idempotently and enforce concurrency/authorization in\n * the backend. A row that changed the backend before rejecting has an uncertain outcome.\n * Keep the ref/layout-effect bridge for latest host inputs: the returned apply control\n * can be called by UI event handlers and other host code outside Effect logic.\n * useEffectEvent is restricted to Effect-originated callbacks and cannot replace this\n * externally callable execution path. The ref is not a React 18 compatibility shim.\n *\n * @example\n * ```tsx\n * import { useProposalBatchReview, type UseProposalBatchReviewOptions } from '@alneas/appkit-react/ai/proposal';\n * type RecordData = { title: string };\n * export function Batch({ options }: { options: UseProposalBatchReviewOptions<RecordData> }) {\n * const review = useProposalBatchReview(options);\n * return <button disabled={!review.canApply} onClick={() => { void review.apply(); }}>Apply selected records</button>;\n * }\n * ```\n */\nexport function useProposalBatchReview<TRecord extends Record<string, any> = Record<string, any>>(\n options: UseProposalBatchReviewOptions<TRecord>\n): UseProposalBatchReviewReturn<TRecord> {\n const key = JSON.stringify([options.batchId, options.items.map(item => JSON.stringify(item.proposal)).sort()]);\n const [stored, setStored] = useState(() => initial<TRecord>(key));\n let state = stored;\n if (state.key !== key) {\n state = initial<TRecord>(key);\n setStored(state);\n }\n const session = state.session;\n const live = useRef<{ session: ExecutionSession; applied: Set<string> } | null>(null);\n const latest = useRef(options);\n useLayoutEffect(() => {\n latest.current = options;\n });\n useLayoutEffect(() => {\n const current = { session, applied: new Set<string>() };\n live.current = current;\n return () => {\n session.cancel();\n if (live.current === current) live.current = null;\n };\n }, [session]);\n\n const history = useSyncExternalStore(session.subscribe, session.getSnapshot, session.getSnapshot);\n const busy = () => session.getSnapshot().some(record => record.status === 'running' || record.status === 'cancelling');\n const update = (change: (current: ReviewState<TRecord>) => ReviewState<TRecord>) => {\n setStored(current => (current.session === session ? change(current) : current));\n };\n\n const entries = (\n items: readonly ProposalBatchItem<TRecord>[],\n applied: ReadonlySet<string>\n ): ProposalBatchEntry<TRecord>[] =>\n items.map(item => ({\n ...item,\n decisions: state.decisions.get(item.proposal.id) ?? ({} as ReviewDecisions<TRecord>),\n selected: state.selected.has(item.proposal.id) && !applied.has(item.proposal.id),\n }));\n\n const preparation = prepareProposalBatch(entries(options.items, state.applied), options.validateCandidate);\n const editable = (id: string) =>\n live.current?.session === session && !busy() && !live.current.applied.has(id) && options.items.some(item => item.proposal.id === id);\n\n const apply = async (): Promise<boolean> => {\n const current = live.current;\n if (!current || current.session !== session || busy() || !latest.current.onApply) return false;\n const planned = prepareProposalBatch(entries(latest.current.items, current.applied), latest.current.validateCandidate);\n if (!planned.canApply) return false;\n update(value => ({ ...value, running: true, error: null }));\n const outcome = await session.run(`一括適用 ${planned.payloads.length} 件`, async context => {\n context.reportProgress({ completed: 0, total: planned.payloads.length });\n let completed = 0;\n for (const payload of planned.payloads) {\n context.signal.throwIfAborted();\n if (live.current !== current) throw new DOMException('Review session changed', 'AbortError');\n const item = latest.current.items.find(value => value.proposal.id === payload.proposalId);\n if (!item) throw new Error('対象の提案が見つかりません。再確認してください。');\n const checked = prepareProposalBatch(\n [{ ...item, selected: true, decisions: state.decisions.get(payload.proposalId) ?? ({} as ReviewDecisions<TRecord>) }],\n latest.current.validateCandidate\n );\n if (!checked.canApply || !latest.current.onApply) {\n throw new Error('適用前にデータが変更されたため停止しました。再確認してください。');\n }\n update(value => ({ ...value, active: payload.proposalId }));\n await latest.current.onApply(checked.payloads[0], {\n signal: context.signal,\n reportProgress(progress) {\n const fraction =\n progress.total && Number.isFinite(progress.total) && Number.isFinite(progress.completed)\n ? Math.max(0, Math.min(1, progress.completed / progress.total))\n : 0;\n context.reportProgress({\n completed: completed + fraction,\n total: planned.payloads.length,\n message: progress.message,\n });\n },\n });\n if (live.current !== current) throw new DOMException('Review session changed', 'AbortError');\n current.applied.add(payload.proposalId);\n update(value => ({ ...value, applied: new Set(current.applied) }));\n context.reportProgress({ completed: ++completed, total: planned.payloads.length });\n }\n });\n if (live.current !== current) return false;\n update(value => ({\n ...value,\n running: false,\n active: null,\n error: outcome.status === 'failed' ? '適用に失敗しました。成功済みの提案を除いて再試行できます。' : null,\n }));\n return outcome.status === 'succeeded';\n };\n\n return {\n selectedIds: state.selected,\n appliedIds: state.applied,\n decisions: state.decisions,\n preparation,\n canApply: !!options.onApply && preparation.canApply && !state.running,\n isSubmitting: state.running,\n activeProposalId: state.active,\n error: state.error,\n history,\n setSelected(id, selected) {\n if (!editable(id)) return;\n update(value => {\n const next = new Set(value.selected);\n if (selected) next.add(id);\n else next.delete(id);\n return { ...value, selected: next, error: null };\n });\n },\n selectAll(selected) {\n if (busy()) return;\n update(value => ({\n ...value,\n selected: new Set(selected ? options.items.map(item => item.proposal.id) : value.applied),\n error: null,\n }));\n },\n setDecision(id, field, decision) {\n if (!editable(id) || !options.items.find(item => item.proposal.id === id)?.proposal.changes.some(change => change.field === field)) return;\n update(value => ({\n ...value,\n decisions: new Map(value.decisions).set(id, {\n ...value.decisions.get(id),\n [field]: decision,\n } as ReviewDecisions<TRecord>),\n error: null,\n }));\n },\n decideAll(id, decision) {\n if (!editable(id)) return;\n const item = options.items.find(value => value.proposal.id === id)!;\n update(value => ({\n ...value,\n decisions: new Map(value.decisions).set(\n id,\n Object.fromEntries(item.proposal.changes.map(change => [change.field, decision])) as ReviewDecisions<TRecord>\n ),\n error: null,\n }));\n },\n apply,\n cancel: session.cancel,\n clearHistory: session.clearHistory,\n };\n}\n"],"mappings":"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"}
@@ -10,3 +10,11 @@ Use api-index.json for actual exported names, signatures and public import paths
10
10
  The Core package's appkit-api CLI searches locally available catalogs without running tools or contacting a provider. Check each result's package version and digest; registry 0.1.0 does not include this new CLI. Never replace a missing legacy catalog with a newer API surface. Always verify generated code with the consumer's type checker and relevant behavior tests.
11
11
 
12
12
  AI tool calls and outputs are untrusted. Schema validity is not approval. Bind host approval to immutable arguments/targets/session/registration, enforce server permissions and durable idempotency at execution, and project minimal outputs. Adapters do not run tools or authorize writes. Read the AI guide and Core error guide; never infer permission from a tool-output event or bypass duplicate-call protection.
13
+
14
+ React 0.3.0 drag surfaces use native dnd-kit React. Read docs/migration.md from
15
+ this installed package before adapting a 0.2.0 consumer. It covers nullable native
16
+ events, cancellation guards, registration refs, React 19 function component types
17
+ and Query 5.104.5 alignment. High-level features own their native providers;
18
+ standalone registrations must share a native provider. Resolve exact types from
19
+ the matching installed API catalog. A prepared source version does not prove
20
+ registry availability, and a newer catalog must not replace an older installation.