@alneas/appkit-react 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (659) hide show
  1. package/CHANGELOG.md +53 -0
  2. package/README.md +85 -15
  3. package/consumer-ai/SKILL.md +12 -0
  4. package/consumer-ai/api-index.json +103754 -0
  5. package/consumer-ai/package-context.json +409 -0
  6. package/dist/ai/action/ExecutionHistory.cjs.map +1 -1
  7. package/dist/ai/action/ExecutionHistory.d.cts +32 -2
  8. package/dist/ai/action/ExecutionHistory.d.ts +32 -2
  9. package/dist/ai/action/ExecutionHistory.js.map +1 -1
  10. package/dist/ai/action/ScreenActionContext.cjs.map +1 -1
  11. package/dist/ai/action/ScreenActionContext.d.cts +15 -2
  12. package/dist/ai/action/ScreenActionContext.d.ts +15 -2
  13. package/dist/ai/action/ScreenActionContext.js.map +1 -1
  14. package/dist/ai/action/context.cjs.map +1 -1
  15. package/dist/ai/action/context.d.cts +19 -3
  16. package/dist/ai/action/context.d.ts +19 -3
  17. package/dist/ai/action/context.js.map +1 -1
  18. package/dist/ai/action/types.d.cts +35 -3
  19. package/dist/ai/action/types.d.ts +35 -3
  20. package/dist/ai/action/use-execution-session.cjs.map +1 -1
  21. package/dist/ai/action/use-execution-session.d.cts +17 -1
  22. package/dist/ai/action/use-execution-session.d.ts +17 -1
  23. package/dist/ai/action/use-execution-session.js.map +1 -1
  24. package/dist/ai/action/use-screen-action-registry.cjs.map +1 -1
  25. package/dist/ai/action/use-screen-action-registry.d.cts +77 -8
  26. package/dist/ai/action/use-screen-action-registry.d.ts +77 -8
  27. package/dist/ai/action/use-screen-action-registry.js.map +1 -1
  28. package/dist/ai/action/use-screen-action.cjs.map +1 -1
  29. package/dist/ai/action/use-screen-action.d.cts +23 -6
  30. package/dist/ai/action/use-screen-action.d.ts +23 -6
  31. package/dist/ai/action/use-screen-action.js.map +1 -1
  32. package/dist/ai/action/use-screen-context.cjs.map +1 -1
  33. package/dist/ai/action/use-screen-context.d.cts +42 -5
  34. package/dist/ai/action/use-screen-context.d.ts +42 -5
  35. package/dist/ai/action/use-screen-context.js.map +1 -1
  36. package/dist/ai/ai-chat/transport.cjs.map +1 -1
  37. package/dist/ai/ai-chat/transport.d.cts +35 -8
  38. package/dist/ai/ai-chat/transport.d.ts +35 -8
  39. package/dist/ai/ai-chat/transport.js.map +1 -1
  40. package/dist/ai/generative-ui/GenerativeUIRenderer.cjs.map +1 -1
  41. package/dist/ai/generative-ui/GenerativeUIRenderer.d.cts +21 -3
  42. package/dist/ai/generative-ui/GenerativeUIRenderer.d.ts +21 -3
  43. package/dist/ai/generative-ui/GenerativeUIRenderer.js.map +1 -1
  44. package/dist/ai/generative-ui/error-boundary.cjs.map +1 -1
  45. package/dist/ai/generative-ui/error-boundary.d.cts +98 -2
  46. package/dist/ai/generative-ui/error-boundary.d.ts +98 -2
  47. package/dist/ai/generative-ui/error-boundary.js.map +1 -1
  48. package/dist/ai/generative-ui/registry.cjs.map +1 -1
  49. package/dist/ai/generative-ui/registry.d.cts +96 -7
  50. package/dist/ai/generative-ui/registry.d.ts +96 -7
  51. package/dist/ai/generative-ui/registry.js.map +1 -1
  52. package/dist/ai/proposal/ProposalFieldReview.cjs.map +1 -1
  53. package/dist/ai/proposal/ProposalFieldReview.d.cts +170 -8
  54. package/dist/ai/proposal/ProposalFieldReview.d.ts +170 -8
  55. package/dist/ai/proposal/ProposalFieldReview.js.map +1 -1
  56. package/dist/ai/proposal/types.d.cts +97 -26
  57. package/dist/ai/proposal/types.d.ts +97 -26
  58. package/dist/ai/proposal/use-proposal-batch-review.cjs.map +1 -1
  59. package/dist/ai/proposal/use-proposal-batch-review.d.cts +133 -7
  60. package/dist/ai/proposal/use-proposal-batch-review.d.ts +133 -7
  61. package/dist/ai/proposal/use-proposal-batch-review.js.map +1 -1
  62. package/dist/ai/proposal/use-proposal-review.cjs.map +1 -1
  63. package/dist/ai/proposal/use-proposal-review.d.cts +47 -5
  64. package/dist/ai/proposal/use-proposal-review.d.ts +47 -5
  65. package/dist/ai/proposal/use-proposal-review.js.map +1 -1
  66. package/dist/avatar.svg +1 -0
  67. package/dist/consumer-ai/SKILL.md +6 -0
  68. package/dist/consumer-ai/api-index.json +103754 -0
  69. package/dist/consumer-ai/package-context.json +5 -3
  70. package/dist/mockServiceWorker.js +361 -0
  71. package/dist/styles.css +1 -1
  72. package/dist/tools/components/auth/AuthForms.cjs.map +1 -1
  73. package/dist/tools/components/auth/AuthForms.d.cts +131 -81
  74. package/dist/tools/components/auth/AuthForms.d.ts +131 -81
  75. package/dist/tools/components/auth/AuthForms.js.map +1 -1
  76. package/dist/tools/components/auth/AuthGuard.cjs.map +1 -1
  77. package/dist/tools/components/auth/AuthGuard.d.cts +31 -4
  78. package/dist/tools/components/auth/AuthGuard.d.ts +31 -4
  79. package/dist/tools/components/auth/AuthGuard.js.map +1 -1
  80. package/dist/tools/components/auth/AuthProvider.cjs.map +1 -1
  81. package/dist/tools/components/auth/AuthProvider.d.cts +39 -42
  82. package/dist/tools/components/auth/AuthProvider.d.ts +39 -42
  83. package/dist/tools/components/auth/AuthProvider.js.map +1 -1
  84. package/dist/tools/components/auth/ProtectedRoute.cjs.map +1 -1
  85. package/dist/tools/components/auth/ProtectedRoute.d.cts +75 -60
  86. package/dist/tools/components/auth/ProtectedRoute.d.ts +75 -60
  87. package/dist/tools/components/auth/ProtectedRoute.js.map +1 -1
  88. package/dist/tools/components/auth/SignInButton.cjs.map +1 -1
  89. package/dist/tools/components/auth/SignInButton.d.cts +26 -18
  90. package/dist/tools/components/auth/SignInButton.d.ts +26 -18
  91. package/dist/tools/components/auth/SignInButton.js.map +1 -1
  92. package/dist/tools/components/auth/UserProfileProvider.cjs.map +1 -1
  93. package/dist/tools/components/auth/UserProfileProvider.d.cts +48 -20
  94. package/dist/tools/components/auth/UserProfileProvider.d.ts +48 -20
  95. package/dist/tools/components/auth/UserProfileProvider.js.map +1 -1
  96. package/dist/tools/components/auth/adapters/better-auth-adapter.cjs.map +1 -1
  97. package/dist/tools/components/auth/adapters/better-auth-adapter.d.cts +371 -51
  98. package/dist/tools/components/auth/adapters/better-auth-adapter.d.ts +371 -51
  99. package/dist/tools/components/auth/adapters/better-auth-adapter.js.map +1 -1
  100. package/dist/tools/components/auth/adapters/mock-adapter.cjs.map +1 -1
  101. package/dist/tools/components/auth/adapters/mock-adapter.d.cts +149 -28
  102. package/dist/tools/components/auth/adapters/mock-adapter.d.ts +149 -28
  103. package/dist/tools/components/auth/adapters/mock-adapter.js.map +1 -1
  104. package/dist/tools/components/auth/auth-session.cjs.map +1 -1
  105. package/dist/tools/components/auth/auth-session.d.cts +147 -1
  106. package/dist/tools/components/auth/auth-session.d.ts +147 -1
  107. package/dist/tools/components/auth/auth-session.js.map +1 -1
  108. package/dist/tools/components/auth/session-cache.cjs.map +1 -1
  109. package/dist/tools/components/auth/session-cache.d.cts +88 -24
  110. package/dist/tools/components/auth/session-cache.d.ts +88 -24
  111. package/dist/tools/components/auth/session-cache.js.map +1 -1
  112. package/dist/tools/components/auth/types.cjs.map +1 -1
  113. package/dist/tools/components/auth/types.d.cts +329 -106
  114. package/dist/tools/components/auth/types.d.ts +329 -106
  115. package/dist/tools/components/auth/types.js.map +1 -1
  116. package/dist/tools/components/auth/useAuth.cjs.map +1 -1
  117. package/dist/tools/components/auth/useAuth.d.cts +110 -17
  118. package/dist/tools/components/auth/useAuth.d.ts +110 -17
  119. package/dist/tools/components/auth/useAuth.js.map +1 -1
  120. package/dist/tools/components/auth/useAuthGuard.cjs.map +1 -1
  121. package/dist/tools/components/auth/useAuthGuard.d.cts +49 -38
  122. package/dist/tools/components/auth/useAuthGuard.d.ts +49 -38
  123. package/dist/tools/components/auth/useAuthGuard.js.map +1 -1
  124. package/dist/tools/components/auth/useRoleCheck.cjs.map +1 -1
  125. package/dist/tools/components/auth/useRoleCheck.d.cts +48 -1
  126. package/dist/tools/components/auth/useRoleCheck.d.ts +48 -1
  127. package/dist/tools/components/auth/useRoleCheck.js.map +1 -1
  128. package/dist/tools/components/auth/useUserProfile.cjs.map +1 -1
  129. package/dist/tools/components/auth/useUserProfile.d.cts +66 -1
  130. package/dist/tools/components/auth/useUserProfile.d.ts +66 -1
  131. package/dist/tools/components/auth/useUserProfile.js.map +1 -1
  132. package/dist/tools/components/barcode/BarcodeGenerator.cjs.map +1 -1
  133. package/dist/tools/components/barcode/BarcodeGenerator.d.cts +32 -18
  134. package/dist/tools/components/barcode/BarcodeGenerator.d.ts +32 -18
  135. package/dist/tools/components/barcode/BarcodeGenerator.js.map +1 -1
  136. package/dist/tools/components/barcode/QRCodeGenerator.cjs +1 -1
  137. package/dist/tools/components/barcode/QRCodeGenerator.cjs.map +1 -1
  138. package/dist/tools/components/barcode/QRCodeGenerator.d.cts +20 -13
  139. package/dist/tools/components/barcode/QRCodeGenerator.d.ts +20 -13
  140. package/dist/tools/components/barcode/QRCodeGenerator.js +1 -1
  141. package/dist/tools/components/barcode/QRCodeGenerator.js.map +1 -1
  142. package/dist/tools/components/barcode/QRCodeScanner.cjs.map +1 -1
  143. package/dist/tools/components/barcode/QRCodeScanner.d.cts +32 -1
  144. package/dist/tools/components/barcode/QRCodeScanner.d.ts +32 -1
  145. package/dist/tools/components/barcode/QRCodeScanner.js.map +1 -1
  146. package/dist/tools/components/calendar/ResourceCalendar.cjs.map +1 -1
  147. package/dist/tools/components/calendar/ResourceCalendar.d.cts +17 -42
  148. package/dist/tools/components/calendar/ResourceCalendar.d.ts +17 -42
  149. package/dist/tools/components/calendar/ResourceCalendar.js.map +1 -1
  150. package/dist/tools/components/calendar/views/ResourceView.cjs +1 -1
  151. package/dist/tools/components/calendar/views/ResourceView.cjs.map +1 -1
  152. package/dist/tools/components/calendar/views/ResourceView.js +2 -2
  153. package/dist/tools/components/calendar/views/ResourceView.js.map +1 -1
  154. package/dist/tools/components/chart/ComposedChart.cjs.map +1 -1
  155. package/dist/tools/components/chart/ComposedChart.d.cts +54 -1
  156. package/dist/tools/components/chart/ComposedChart.d.ts +54 -1
  157. package/dist/tools/components/chart/ComposedChart.js.map +1 -1
  158. package/dist/tools/components/chart/SimpleAreaChart.cjs.map +1 -1
  159. package/dist/tools/components/chart/SimpleAreaChart.d.cts +41 -1
  160. package/dist/tools/components/chart/SimpleAreaChart.d.ts +41 -1
  161. package/dist/tools/components/chart/SimpleAreaChart.js.map +1 -1
  162. package/dist/tools/components/chart/SimpleBarChart.cjs.map +1 -1
  163. package/dist/tools/components/chart/SimpleBarChart.d.cts +34 -24
  164. package/dist/tools/components/chart/SimpleBarChart.d.ts +34 -24
  165. package/dist/tools/components/chart/SimpleBarChart.js.map +1 -1
  166. package/dist/tools/components/chart/SimpleLineChart.cjs.map +1 -1
  167. package/dist/tools/components/chart/SimpleLineChart.d.cts +31 -28
  168. package/dist/tools/components/chart/SimpleLineChart.d.ts +31 -28
  169. package/dist/tools/components/chart/SimpleLineChart.js.map +1 -1
  170. package/dist/tools/components/chart/SimplePieChart.cjs.map +1 -1
  171. package/dist/tools/components/chart/SimplePieChart.d.cts +28 -22
  172. package/dist/tools/components/chart/SimplePieChart.d.ts +28 -22
  173. package/dist/tools/components/chart/SimplePieChart.js.map +1 -1
  174. package/dist/tools/components/chart/SimpleRadarChart.cjs.map +1 -1
  175. package/dist/tools/components/chart/SimpleRadarChart.d.cts +38 -1
  176. package/dist/tools/components/chart/SimpleRadarChart.d.ts +38 -1
  177. package/dist/tools/components/chart/SimpleRadarChart.js.map +1 -1
  178. package/dist/tools/components/chart/SimpleScatterChart.cjs.map +1 -1
  179. package/dist/tools/components/chart/SimpleScatterChart.d.cts +44 -1
  180. package/dist/tools/components/chart/SimpleScatterChart.d.ts +44 -1
  181. package/dist/tools/components/chart/SimpleScatterChart.js.map +1 -1
  182. package/dist/tools/components/chart/StackedBarChart.cjs.map +1 -1
  183. package/dist/tools/components/chart/StackedBarChart.d.cts +38 -1
  184. package/dist/tools/components/chart/StackedBarChart.d.ts +38 -1
  185. package/dist/tools/components/chart/StackedBarChart.js.map +1 -1
  186. package/dist/tools/components/data-table/data-table.cjs +1 -1
  187. package/dist/tools/components/data-table/data-table.cjs.map +1 -1
  188. package/dist/tools/components/data-table/data-table.js +286 -263
  189. package/dist/tools/components/data-table/data-table.js.map +1 -1
  190. package/dist/tools/components/data-table/table-utils.cjs.map +1 -1
  191. package/dist/tools/components/data-table/table-utils.d.cts +45 -35
  192. package/dist/tools/components/data-table/table-utils.d.ts +45 -35
  193. package/dist/tools/components/data-table/table-utils.js.map +1 -1
  194. package/dist/tools/components/editable-table/editable-table.cjs +1 -1
  195. package/dist/tools/components/editable-table/editable-table.cjs.map +1 -1
  196. package/dist/tools/components/editable-table/editable-table.js +15 -2
  197. package/dist/tools/components/editable-table/editable-table.js.map +1 -1
  198. package/dist/tools/components/error/ErrorDialog.cjs +1 -1
  199. package/dist/tools/components/error/ErrorDialog.cjs.map +1 -1
  200. package/dist/tools/components/error/ErrorDialog.js +1 -1
  201. package/dist/tools/components/error/ErrorDialog.js.map +1 -1
  202. package/dist/tools/components/error/ErrorInline.cjs +1 -1
  203. package/dist/tools/components/error/ErrorInline.cjs.map +1 -1
  204. package/dist/tools/components/error/ErrorInline.js +1 -1
  205. package/dist/tools/components/error/ErrorInline.js.map +1 -1
  206. package/dist/tools/components/error/ErrorNotification.cjs +1 -1
  207. package/dist/tools/components/error/ErrorNotification.cjs.map +1 -1
  208. package/dist/tools/components/error/ErrorNotification.js +10 -10
  209. package/dist/tools/components/error/ErrorNotification.js.map +1 -1
  210. package/dist/tools/components/file-browser/FilePreview.cjs +1 -1
  211. package/dist/tools/components/file-browser/FilePreview.cjs.map +1 -1
  212. package/dist/tools/components/file-browser/FilePreview.js +28 -26
  213. package/dist/tools/components/file-browser/FilePreview.js.map +1 -1
  214. package/dist/tools/components/filter/filter.cjs.map +1 -1
  215. package/dist/tools/components/filter/filter.d.cts +23 -34
  216. package/dist/tools/components/filter/filter.d.ts +23 -34
  217. package/dist/tools/components/filter/filter.js.map +1 -1
  218. package/dist/tools/components/form/EnhancedDetailPage.cjs.map +1 -1
  219. package/dist/tools/components/form/EnhancedDetailPage.d.cts +47 -42
  220. package/dist/tools/components/form/EnhancedDetailPage.d.ts +47 -42
  221. package/dist/tools/components/form/EnhancedDetailPage.js.map +1 -1
  222. package/dist/tools/components/form/form-grid.cjs.map +1 -1
  223. package/dist/tools/components/form/form-grid.d.cts +44 -22
  224. package/dist/tools/components/form/form-grid.d.ts +44 -22
  225. package/dist/tools/components/form/form-grid.js.map +1 -1
  226. package/dist/tools/components/gantt/GanttChart.cjs +1 -1
  227. package/dist/tools/components/gantt/GanttChart.cjs.map +1 -1
  228. package/dist/tools/components/gantt/GanttChart.d.cts +20 -1
  229. package/dist/tools/components/gantt/GanttChart.d.ts +20 -1
  230. package/dist/tools/components/gantt/GanttChart.js +3 -0
  231. package/dist/tools/components/gantt/GanttChart.js.map +1 -1
  232. package/dist/tools/components/gantt/components/GanttTaskBar.cjs +1 -1
  233. package/dist/tools/components/gantt/components/GanttTaskBar.cjs.map +1 -1
  234. package/dist/tools/components/gantt/components/GanttTaskBar.js +2 -1
  235. package/dist/tools/components/gantt/components/GanttTaskBar.js.map +1 -1
  236. package/dist/tools/components/header/header.cjs +1 -1
  237. package/dist/tools/components/header/header.cjs.map +1 -1
  238. package/dist/tools/components/header/header.d.cts +103 -40
  239. package/dist/tools/components/header/header.d.ts +103 -40
  240. package/dist/tools/components/header/header.js +1 -1
  241. package/dist/tools/components/header/header.js.map +1 -1
  242. package/dist/tools/components/i18n/LanguageSwitcher.cjs.map +1 -1
  243. package/dist/tools/components/i18n/LanguageSwitcher.d.cts +18 -14
  244. package/dist/tools/components/i18n/LanguageSwitcher.d.ts +18 -14
  245. package/dist/tools/components/i18n/LanguageSwitcher.js.map +1 -1
  246. package/dist/tools/components/kanban/KanbanBoard.cjs +1 -1
  247. package/dist/tools/components/kanban/KanbanBoard.cjs.map +1 -1
  248. package/dist/tools/components/kanban/KanbanBoard.d.cts +16 -34
  249. package/dist/tools/components/kanban/KanbanBoard.d.ts +16 -34
  250. package/dist/tools/components/kanban/KanbanBoard.js +3 -0
  251. package/dist/tools/components/kanban/KanbanBoard.js.map +1 -1
  252. package/dist/tools/components/kanban/KanbanColumn.cjs +1 -1
  253. package/dist/tools/components/kanban/KanbanColumn.cjs.map +1 -1
  254. package/dist/tools/components/kanban/KanbanColumn.js +1 -1
  255. package/dist/tools/components/kanban/KanbanColumn.js.map +1 -1
  256. package/dist/tools/components/kanban/kanban-compound.cjs +1 -1
  257. package/dist/tools/components/kanban/kanban-compound.cjs.map +1 -1
  258. package/dist/tools/components/kanban/kanban-compound.js +4 -1
  259. package/dist/tools/components/kanban/kanban-compound.js.map +1 -1
  260. package/dist/tools/components/kanban/kanban-primitives.cjs +1 -1
  261. package/dist/tools/components/kanban/kanban-primitives.cjs.map +1 -1
  262. package/dist/tools/components/kanban/kanban-primitives.js +0 -1
  263. package/dist/tools/components/kanban/kanban-primitives.js.map +1 -1
  264. package/dist/tools/components/priority-queue/PriorityCard.cjs +1 -1
  265. package/dist/tools/components/priority-queue/PriorityCard.cjs.map +1 -1
  266. package/dist/tools/components/priority-queue/PriorityCard.js +3 -1
  267. package/dist/tools/components/priority-queue/PriorityCard.js.map +1 -1
  268. package/dist/tools/components/sidebar/SmartSidebar.cjs.map +1 -1
  269. package/dist/tools/components/sidebar/SmartSidebar.d.cts +41 -43
  270. package/dist/tools/components/sidebar/SmartSidebar.d.ts +41 -43
  271. package/dist/tools/components/sidebar/SmartSidebar.js.map +1 -1
  272. package/dist/tools/components/splash/SplashScreen.cjs.map +1 -1
  273. package/dist/tools/components/splash/SplashScreen.d.cts +43 -68
  274. package/dist/tools/components/splash/SplashScreen.d.ts +43 -68
  275. package/dist/tools/components/splash/SplashScreen.js.map +1 -1
  276. package/dist/tools/components/workflow/WorkflowStatusPanel.cjs +1 -1
  277. package/dist/tools/components/workflow/WorkflowStatusPanel.cjs.map +1 -1
  278. package/dist/tools/components/workflow/WorkflowStatusPanel.js +2 -2
  279. package/dist/tools/components/workflow/WorkflowStatusPanel.js.map +1 -1
  280. package/dist/tools/lib/data-access/data-access-context.cjs.map +1 -1
  281. package/dist/tools/lib/data-access/data-access-context.d.cts +15 -6
  282. package/dist/tools/lib/data-access/data-access-context.d.ts +15 -6
  283. package/dist/tools/lib/data-access/data-access-context.js.map +1 -1
  284. package/dist/tools/lib/data-access/react-query-provider.cjs.map +1 -1
  285. package/dist/tools/lib/data-access/react-query-provider.d.cts +19 -2
  286. package/dist/tools/lib/data-access/react-query-provider.d.ts +19 -2
  287. package/dist/tools/lib/data-access/react-query-provider.js.map +1 -1
  288. package/dist/tools/lib/data-access/react-query.cjs.map +1 -1
  289. package/dist/tools/lib/data-access/react-query.d.cts +365 -90
  290. package/dist/tools/lib/data-access/react-query.d.ts +365 -90
  291. package/dist/tools/lib/data-access/react-query.js.map +1 -1
  292. package/dist/tools/lib/error/AppError.cjs.map +1 -1
  293. package/dist/tools/lib/error/AppError.d.cts +157 -63
  294. package/dist/tools/lib/error/AppError.d.ts +157 -63
  295. package/dist/tools/lib/error/AppError.js.map +1 -1
  296. package/dist/tools/lib/hooks/useAsyncWithTimeout.cjs.map +1 -1
  297. package/dist/tools/lib/hooks/useAsyncWithTimeout.d.cts +79 -26
  298. package/dist/tools/lib/hooks/useAsyncWithTimeout.d.ts +79 -26
  299. package/dist/tools/lib/hooks/useAsyncWithTimeout.js.map +1 -1
  300. package/dist/tools/lib/hooks/useError.cjs.map +1 -1
  301. package/dist/tools/lib/hooks/useError.d.cts +51 -16
  302. package/dist/tools/lib/hooks/useError.d.ts +51 -16
  303. package/dist/tools/lib/hooks/useError.js.map +1 -1
  304. package/dist/tools/lib/schema/ajv.cjs +1 -1
  305. package/dist/tools/lib/schema/ajv.cjs.map +1 -1
  306. package/dist/tools/lib/schema/ajv.d.cts +19 -8
  307. package/dist/tools/lib/schema/ajv.d.ts +19 -8
  308. package/dist/tools/lib/schema/ajv.js +2 -1
  309. package/dist/tools/lib/schema/ajv.js.map +1 -1
  310. package/dist/tools/lib/state/error-store.cjs.map +1 -1
  311. package/dist/tools/lib/state/error-store.d.cts +61 -10
  312. package/dist/tools/lib/state/error-store.d.ts +61 -10
  313. package/dist/tools/lib/state/error-store.js.map +1 -1
  314. package/dist/tools/lib/state/store-factory.cjs.map +1 -1
  315. package/dist/tools/lib/state/store-factory.d.cts +25 -4
  316. package/dist/tools/lib/state/store-factory.d.ts +25 -4
  317. package/dist/tools/lib/state/store-factory.js.map +1 -1
  318. package/dist/tools/lib/state/ui-store.cjs.map +1 -1
  319. package/dist/tools/lib/state/ui-store.d.cts +39 -0
  320. package/dist/tools/lib/state/ui-store.d.ts +39 -0
  321. package/dist/tools/lib/state/ui-store.js.map +1 -1
  322. package/dist/ui/components/theme/theme-context.cjs.map +1 -1
  323. package/dist/ui/components/theme/theme-context.d.cts +171 -1
  324. package/dist/ui/components/theme/theme-context.d.ts +171 -1
  325. package/dist/ui/components/theme/theme-context.js.map +1 -1
  326. package/dist/ui/components/theme/theme-provider.cjs.map +1 -1
  327. package/dist/ui/components/theme/theme-provider.d.cts +31 -19
  328. package/dist/ui/components/theme/theme-provider.d.ts +31 -19
  329. package/dist/ui/components/theme/theme-provider.js.map +1 -1
  330. package/dist/ui/components/theme/theme-script.cjs.map +1 -1
  331. package/dist/ui/components/theme/theme-script.d.cts +16 -1
  332. package/dist/ui/components/theme/theme-script.d.ts +16 -1
  333. package/dist/ui/components/theme/theme-script.js.map +1 -1
  334. package/dist/ui/components/theme/theme-switcher.cjs +1 -1
  335. package/dist/ui/components/theme/theme-switcher.cjs.map +1 -1
  336. package/dist/ui/components/theme/theme-switcher.d.cts +82 -13
  337. package/dist/ui/components/theme/theme-switcher.d.ts +82 -13
  338. package/dist/ui/components/theme/theme-switcher.js +8 -0
  339. package/dist/ui/components/theme/theme-switcher.js.map +1 -1
  340. package/dist/ui/components/ui/accordion.cjs.map +1 -1
  341. package/dist/ui/components/ui/accordion.d.cts +60 -0
  342. package/dist/ui/components/ui/accordion.d.ts +60 -0
  343. package/dist/ui/components/ui/accordion.js.map +1 -1
  344. package/dist/ui/components/ui/adjustable-pane.cjs.map +1 -1
  345. package/dist/ui/components/ui/adjustable-pane.d.cts +44 -26
  346. package/dist/ui/components/ui/adjustable-pane.d.ts +44 -26
  347. package/dist/ui/components/ui/adjustable-pane.js.map +1 -1
  348. package/dist/ui/components/ui/alert-dialog.cjs.map +1 -1
  349. package/dist/ui/components/ui/alert-dialog.d.cts +179 -2
  350. package/dist/ui/components/ui/alert-dialog.d.ts +179 -2
  351. package/dist/ui/components/ui/alert-dialog.js.map +1 -1
  352. package/dist/ui/components/ui/alert.cjs.map +1 -1
  353. package/dist/ui/components/ui/alert.d.cts +52 -4
  354. package/dist/ui/components/ui/alert.d.ts +52 -4
  355. package/dist/ui/components/ui/alert.js.map +1 -1
  356. package/dist/ui/components/ui/aspect-ratio.cjs.map +1 -1
  357. package/dist/ui/components/ui/aspect-ratio.d.cts +16 -1
  358. package/dist/ui/components/ui/aspect-ratio.d.ts +16 -1
  359. package/dist/ui/components/ui/aspect-ratio.js.map +1 -1
  360. package/dist/ui/components/ui/avatar.cjs.map +1 -1
  361. package/dist/ui/components/ui/avatar.d.cts +87 -3
  362. package/dist/ui/components/ui/avatar.d.ts +87 -3
  363. package/dist/ui/components/ui/avatar.js.map +1 -1
  364. package/dist/ui/components/ui/badge-components.cjs.map +1 -1
  365. package/dist/ui/components/ui/badge-components.d.cts +13 -1
  366. package/dist/ui/components/ui/badge-components.d.ts +13 -1
  367. package/dist/ui/components/ui/badge-components.js.map +1 -1
  368. package/dist/ui/components/ui/badge-variants.cjs.map +1 -1
  369. package/dist/ui/components/ui/badge-variants.d.cts +15 -0
  370. package/dist/ui/components/ui/badge-variants.d.ts +15 -0
  371. package/dist/ui/components/ui/badge-variants.js.map +1 -1
  372. package/dist/ui/components/ui/breadcrumb.cjs.map +1 -1
  373. package/dist/ui/components/ui/breadcrumb.d.cts +91 -7
  374. package/dist/ui/components/ui/breadcrumb.d.ts +91 -7
  375. package/dist/ui/components/ui/breadcrumb.js.map +1 -1
  376. package/dist/ui/components/ui/button-components.cjs.map +1 -1
  377. package/dist/ui/components/ui/button-components.d.cts +18 -6
  378. package/dist/ui/components/ui/button-components.d.ts +18 -6
  379. package/dist/ui/components/ui/button-components.js.map +1 -1
  380. package/dist/ui/components/ui/button-group-components.cjs.map +1 -1
  381. package/dist/ui/components/ui/button-group-components.d.cts +39 -3
  382. package/dist/ui/components/ui/button-group-components.d.ts +39 -3
  383. package/dist/ui/components/ui/button-group-components.js.map +1 -1
  384. package/dist/ui/components/ui/button-group-variants.cjs.map +1 -1
  385. package/dist/ui/components/ui/button-group-variants.d.cts +15 -0
  386. package/dist/ui/components/ui/button-group-variants.d.ts +15 -0
  387. package/dist/ui/components/ui/button-group-variants.js.map +1 -1
  388. package/dist/ui/components/ui/button-variants.cjs.map +1 -1
  389. package/dist/ui/components/ui/button-variants.d.cts +13 -2
  390. package/dist/ui/components/ui/button-variants.d.ts +13 -2
  391. package/dist/ui/components/ui/button-variants.js.map +1 -1
  392. package/dist/ui/components/ui/card.cjs.map +1 -1
  393. package/dist/ui/components/ui/card.d.cts +106 -2
  394. package/dist/ui/components/ui/card.d.ts +106 -2
  395. package/dist/ui/components/ui/card.js.map +1 -1
  396. package/dist/ui/components/ui/checkbox-group.cjs.map +1 -1
  397. package/dist/ui/components/ui/checkbox-group.d.cts +13 -1
  398. package/dist/ui/components/ui/checkbox-group.d.ts +13 -1
  399. package/dist/ui/components/ui/checkbox-group.js.map +1 -1
  400. package/dist/ui/components/ui/checkbox.cjs.map +1 -1
  401. package/dist/ui/components/ui/checkbox.d.cts +17 -6
  402. package/dist/ui/components/ui/checkbox.d.ts +17 -6
  403. package/dist/ui/components/ui/checkbox.js.map +1 -1
  404. package/dist/ui/components/ui/collapsible.cjs.map +1 -1
  405. package/dist/ui/components/ui/collapsible.d.cts +39 -3
  406. package/dist/ui/components/ui/collapsible.d.ts +39 -3
  407. package/dist/ui/components/ui/collapsible.js.map +1 -1
  408. package/dist/ui/components/ui/combobox-components.cjs.map +1 -1
  409. package/dist/ui/components/ui/combobox-components.d.cts +209 -14
  410. package/dist/ui/components/ui/combobox-components.d.ts +209 -14
  411. package/dist/ui/components/ui/combobox-components.js.map +1 -1
  412. package/dist/ui/components/ui/combobox-hooks.cjs.map +1 -1
  413. package/dist/ui/components/ui/combobox-hooks.d.cts +13 -1
  414. package/dist/ui/components/ui/combobox-hooks.d.ts +13 -1
  415. package/dist/ui/components/ui/combobox-hooks.js.map +1 -1
  416. package/dist/ui/components/ui/command.cjs.map +1 -1
  417. package/dist/ui/components/ui/command.d.cts +132 -9
  418. package/dist/ui/components/ui/command.d.ts +132 -9
  419. package/dist/ui/components/ui/command.js.map +1 -1
  420. package/dist/ui/components/ui/context-menu.cjs.map +1 -1
  421. package/dist/ui/components/ui/context-menu.d.cts +233 -2
  422. package/dist/ui/components/ui/context-menu.d.ts +233 -2
  423. package/dist/ui/components/ui/context-menu.js.map +1 -1
  424. package/dist/ui/components/ui/dialog.cjs.map +1 -1
  425. package/dist/ui/components/ui/dialog.d.cts +157 -5
  426. package/dist/ui/components/ui/dialog.d.ts +157 -5
  427. package/dist/ui/components/ui/dialog.js.map +1 -1
  428. package/dist/ui/components/ui/drawer.cjs.map +1 -1
  429. package/dist/ui/components/ui/drawer.d.cts +130 -10
  430. package/dist/ui/components/ui/drawer.d.ts +130 -10
  431. package/dist/ui/components/ui/drawer.js.map +1 -1
  432. package/dist/ui/components/ui/dropdown-menu.cjs.map +1 -1
  433. package/dist/ui/components/ui/dropdown-menu.d.cts +225 -6
  434. package/dist/ui/components/ui/dropdown-menu.d.ts +225 -6
  435. package/dist/ui/components/ui/dropdown-menu.js.map +1 -1
  436. package/dist/ui/components/ui/empty.cjs.map +1 -1
  437. package/dist/ui/components/ui/empty.d.cts +78 -6
  438. package/dist/ui/components/ui/empty.d.ts +78 -6
  439. package/dist/ui/components/ui/empty.js.map +1 -1
  440. package/dist/ui/components/ui/field.cjs.map +1 -1
  441. package/dist/ui/components/ui/field.d.cts +180 -6
  442. package/dist/ui/components/ui/field.d.ts +180 -6
  443. package/dist/ui/components/ui/field.js.map +1 -1
  444. package/dist/ui/components/ui/file-icon.cjs.map +1 -1
  445. package/dist/ui/components/ui/file-icon.d.cts +32 -4
  446. package/dist/ui/components/ui/file-icon.d.ts +32 -4
  447. package/dist/ui/components/ui/file-icon.js.map +1 -1
  448. package/dist/ui/components/ui/hover-card.cjs.map +1 -1
  449. package/dist/ui/components/ui/hover-card.d.cts +39 -3
  450. package/dist/ui/components/ui/hover-card.d.ts +39 -3
  451. package/dist/ui/components/ui/hover-card.js.map +1 -1
  452. package/dist/ui/components/ui/input-group.cjs.map +1 -1
  453. package/dist/ui/components/ui/input-group.d.cts +84 -6
  454. package/dist/ui/components/ui/input-group.d.ts +84 -6
  455. package/dist/ui/components/ui/input-group.js.map +1 -1
  456. package/dist/ui/components/ui/input-otp.cjs.map +1 -1
  457. package/dist/ui/components/ui/input-otp.d.cts +58 -4
  458. package/dist/ui/components/ui/input-otp.d.ts +58 -4
  459. package/dist/ui/components/ui/input-otp.js.map +1 -1
  460. package/dist/ui/components/ui/input.cjs.map +1 -1
  461. package/dist/ui/components/ui/input.d.cts +18 -10
  462. package/dist/ui/components/ui/input.d.ts +18 -10
  463. package/dist/ui/components/ui/input.js.map +1 -1
  464. package/dist/ui/components/ui/item.cjs.map +1 -1
  465. package/dist/ui/components/ui/item.d.cts +130 -10
  466. package/dist/ui/components/ui/item.d.ts +130 -10
  467. package/dist/ui/components/ui/item.js.map +1 -1
  468. package/dist/ui/components/ui/kbd.cjs.map +1 -1
  469. package/dist/ui/components/ui/kbd.d.cts +26 -2
  470. package/dist/ui/components/ui/kbd.d.ts +26 -2
  471. package/dist/ui/components/ui/kbd.js.map +1 -1
  472. package/dist/ui/components/ui/label.cjs.map +1 -1
  473. package/dist/ui/components/ui/label.d.cts +15 -0
  474. package/dist/ui/components/ui/label.d.ts +15 -0
  475. package/dist/ui/components/ui/label.js.map +1 -1
  476. package/dist/ui/components/ui/layout.cjs +1 -1
  477. package/dist/ui/components/ui/layout.cjs.map +1 -1
  478. package/dist/ui/components/ui/layout.d.cts +45 -11
  479. package/dist/ui/components/ui/layout.d.ts +45 -11
  480. package/dist/ui/components/ui/layout.js +22 -20
  481. package/dist/ui/components/ui/layout.js.map +1 -1
  482. package/dist/ui/components/ui/menubar.cjs.map +1 -1
  483. package/dist/ui/components/ui/menubar.d.cts +220 -16
  484. package/dist/ui/components/ui/menubar.d.ts +220 -16
  485. package/dist/ui/components/ui/menubar.js.map +1 -1
  486. package/dist/ui/components/ui/meter.cjs.map +1 -1
  487. package/dist/ui/components/ui/meter.d.cts +52 -4
  488. package/dist/ui/components/ui/meter.d.ts +52 -4
  489. package/dist/ui/components/ui/meter.js.map +1 -1
  490. package/dist/ui/components/ui/mobile-form-variants.cjs.map +1 -1
  491. package/dist/ui/components/ui/mobile-form-variants.d.cts +30 -0
  492. package/dist/ui/components/ui/mobile-form-variants.d.ts +30 -0
  493. package/dist/ui/components/ui/mobile-form-variants.js.map +1 -1
  494. package/dist/ui/components/ui/mobile-form.cjs.map +1 -1
  495. package/dist/ui/components/ui/mobile-form.d.cts +186 -9
  496. package/dist/ui/components/ui/mobile-form.d.ts +186 -9
  497. package/dist/ui/components/ui/mobile-form.js.map +1 -1
  498. package/dist/ui/components/ui/navigation-menu-components.cjs.map +1 -1
  499. package/dist/ui/components/ui/navigation-menu-components.d.cts +104 -8
  500. package/dist/ui/components/ui/navigation-menu-components.d.ts +104 -8
  501. package/dist/ui/components/ui/navigation-menu-components.js.map +1 -1
  502. package/dist/ui/components/ui/navigation-menu-variants.cjs.map +1 -1
  503. package/dist/ui/components/ui/navigation-menu-variants.d.cts +15 -0
  504. package/dist/ui/components/ui/navigation-menu-variants.d.ts +15 -0
  505. package/dist/ui/components/ui/navigation-menu-variants.js.map +1 -1
  506. package/dist/ui/components/ui/number-field.cjs.map +1 -1
  507. package/dist/ui/components/ui/number-field.d.cts +78 -6
  508. package/dist/ui/components/ui/number-field.d.ts +78 -6
  509. package/dist/ui/components/ui/number-field.js.map +1 -1
  510. package/dist/ui/components/ui/pagination.cjs.map +1 -1
  511. package/dist/ui/components/ui/pagination.d.cts +99 -7
  512. package/dist/ui/components/ui/pagination.d.ts +99 -7
  513. package/dist/ui/components/ui/pagination.js.map +1 -1
  514. package/dist/ui/components/ui/password-input.cjs.map +1 -1
  515. package/dist/ui/components/ui/password-input.d.cts +10 -7
  516. package/dist/ui/components/ui/password-input.d.ts +10 -7
  517. package/dist/ui/components/ui/password-input.js.map +1 -1
  518. package/dist/ui/components/ui/popover.cjs.map +1 -1
  519. package/dist/ui/components/ui/popover.d.cts +86 -2
  520. package/dist/ui/components/ui/popover.d.ts +86 -2
  521. package/dist/ui/components/ui/popover.js.map +1 -1
  522. package/dist/ui/components/ui/progress.cjs.map +1 -1
  523. package/dist/ui/components/ui/progress.d.cts +72 -2
  524. package/dist/ui/components/ui/progress.d.ts +72 -2
  525. package/dist/ui/components/ui/progress.js.map +1 -1
  526. package/dist/ui/components/ui/radio-card.cjs.map +1 -1
  527. package/dist/ui/components/ui/radio-card.d.cts +32 -4
  528. package/dist/ui/components/ui/radio-card.d.ts +32 -4
  529. package/dist/ui/components/ui/radio-card.js.map +1 -1
  530. package/dist/ui/components/ui/radio-group.cjs.map +1 -1
  531. package/dist/ui/components/ui/radio-group.d.cts +28 -2
  532. package/dist/ui/components/ui/radio-group.d.ts +28 -2
  533. package/dist/ui/components/ui/radio-group.js.map +1 -1
  534. package/dist/ui/components/ui/resizable.cjs.map +1 -1
  535. package/dist/ui/components/ui/resizable.d.cts +42 -3
  536. package/dist/ui/components/ui/resizable.d.ts +42 -3
  537. package/dist/ui/components/ui/resizable.js.map +1 -1
  538. package/dist/ui/components/ui/responsive-list.cjs.map +1 -1
  539. package/dist/ui/components/ui/responsive-list.d.cts +176 -13
  540. package/dist/ui/components/ui/responsive-list.d.ts +176 -13
  541. package/dist/ui/components/ui/responsive-list.js.map +1 -1
  542. package/dist/ui/components/ui/scroll-area.cjs.map +1 -1
  543. package/dist/ui/components/ui/scroll-area.d.cts +28 -1
  544. package/dist/ui/components/ui/scroll-area.d.ts +28 -1
  545. package/dist/ui/components/ui/scroll-area.js.map +1 -1
  546. package/dist/ui/components/ui/searchable-select-input.cjs.map +1 -1
  547. package/dist/ui/components/ui/searchable-select-input.d.cts +199 -49
  548. package/dist/ui/components/ui/searchable-select-input.d.ts +199 -49
  549. package/dist/ui/components/ui/searchable-select-input.js.map +1 -1
  550. package/dist/ui/components/ui/select.cjs.map +1 -1
  551. package/dist/ui/components/ui/select.d.cts +205 -40
  552. package/dist/ui/components/ui/select.d.ts +205 -40
  553. package/dist/ui/components/ui/select.js.map +1 -1
  554. package/dist/ui/components/ui/separator.cjs.map +1 -1
  555. package/dist/ui/components/ui/separator.d.cts +13 -2
  556. package/dist/ui/components/ui/separator.d.ts +13 -2
  557. package/dist/ui/components/ui/separator.js.map +1 -1
  558. package/dist/ui/components/ui/sheet.cjs.map +1 -1
  559. package/dist/ui/components/ui/sheet.d.cts +128 -3
  560. package/dist/ui/components/ui/sheet.d.ts +128 -3
  561. package/dist/ui/components/ui/sheet.js.map +1 -1
  562. package/dist/ui/components/ui/skeleton.cjs.map +1 -1
  563. package/dist/ui/components/ui/skeleton.d.cts +13 -1
  564. package/dist/ui/components/ui/skeleton.d.ts +13 -1
  565. package/dist/ui/components/ui/skeleton.js.map +1 -1
  566. package/dist/ui/components/ui/slider.cjs.map +1 -1
  567. package/dist/ui/components/ui/slider.d.cts +13 -7
  568. package/dist/ui/components/ui/slider.d.ts +13 -7
  569. package/dist/ui/components/ui/slider.js.map +1 -1
  570. package/dist/ui/components/ui/spinner.cjs.map +1 -1
  571. package/dist/ui/components/ui/spinner.d.cts +13 -1
  572. package/dist/ui/components/ui/spinner.d.ts +13 -1
  573. package/dist/ui/components/ui/spinner.js.map +1 -1
  574. package/dist/ui/components/ui/switch.cjs.map +1 -1
  575. package/dist/ui/components/ui/switch.d.cts +26 -0
  576. package/dist/ui/components/ui/switch.d.ts +26 -0
  577. package/dist/ui/components/ui/switch.js.map +1 -1
  578. package/dist/ui/components/ui/table.cjs.map +1 -1
  579. package/dist/ui/components/ui/table.d.cts +118 -2
  580. package/dist/ui/components/ui/table.d.ts +118 -2
  581. package/dist/ui/components/ui/table.js.map +1 -1
  582. package/dist/ui/components/ui/tabs-components.cjs.map +1 -1
  583. package/dist/ui/components/ui/tabs-components.d.cts +52 -5
  584. package/dist/ui/components/ui/tabs-components.d.ts +52 -5
  585. package/dist/ui/components/ui/tabs-components.js.map +1 -1
  586. package/dist/ui/components/ui/tabs-variants.cjs.map +1 -1
  587. package/dist/ui/components/ui/tabs-variants.d.cts +15 -0
  588. package/dist/ui/components/ui/tabs-variants.d.ts +15 -0
  589. package/dist/ui/components/ui/tabs-variants.js.map +1 -1
  590. package/dist/ui/components/ui/textarea.cjs.map +1 -1
  591. package/dist/ui/components/ui/textarea.d.cts +23 -0
  592. package/dist/ui/components/ui/textarea.d.ts +23 -0
  593. package/dist/ui/components/ui/textarea.js.map +1 -1
  594. package/dist/ui/components/ui/toast.cjs.map +1 -1
  595. package/dist/ui/components/ui/toast.d.cts +136 -0
  596. package/dist/ui/components/ui/toast.d.ts +136 -0
  597. package/dist/ui/components/ui/toast.js.map +1 -1
  598. package/dist/ui/components/ui/toaster.cjs.map +1 -1
  599. package/dist/ui/components/ui/toaster.d.cts +12 -3
  600. package/dist/ui/components/ui/toaster.d.ts +12 -3
  601. package/dist/ui/components/ui/toaster.js.map +1 -1
  602. package/dist/ui/components/ui/toggle-components.cjs.map +1 -1
  603. package/dist/ui/components/ui/toggle-components.d.cts +15 -0
  604. package/dist/ui/components/ui/toggle-components.d.ts +15 -0
  605. package/dist/ui/components/ui/toggle-components.js.map +1 -1
  606. package/dist/ui/components/ui/toggle-group.cjs.map +1 -1
  607. package/dist/ui/components/ui/toggle-group.d.cts +33 -0
  608. package/dist/ui/components/ui/toggle-group.d.ts +33 -0
  609. package/dist/ui/components/ui/toggle-group.js.map +1 -1
  610. package/dist/ui/components/ui/toggle-variants.cjs.map +1 -1
  611. package/dist/ui/components/ui/toggle-variants.d.cts +15 -0
  612. package/dist/ui/components/ui/toggle-variants.d.ts +15 -0
  613. package/dist/ui/components/ui/toggle-variants.js.map +1 -1
  614. package/dist/ui/components/ui/toolbar.cjs.map +1 -1
  615. package/dist/ui/components/ui/toolbar.d.cts +94 -7
  616. package/dist/ui/components/ui/toolbar.d.ts +94 -7
  617. package/dist/ui/components/ui/toolbar.js.map +1 -1
  618. package/dist/ui/components/ui/tooltip.cjs.map +1 -1
  619. package/dist/ui/components/ui/tooltip.d.cts +54 -3
  620. package/dist/ui/components/ui/tooltip.d.ts +54 -3
  621. package/dist/ui/components/ui/tooltip.js.map +1 -1
  622. package/dist/ui/lib/hooks/use-gps.cjs.map +1 -1
  623. package/dist/ui/lib/hooks/use-gps.d.cts +29 -4
  624. package/dist/ui/lib/hooks/use-gps.d.ts +29 -4
  625. package/dist/ui/lib/hooks/use-gps.js.map +1 -1
  626. package/dist/ui/lib/hooks/use-is-client.cjs.map +1 -1
  627. package/dist/ui/lib/hooks/use-is-client.d.cts +11 -2
  628. package/dist/ui/lib/hooks/use-is-client.d.ts +11 -2
  629. package/dist/ui/lib/hooks/use-is-client.js.map +1 -1
  630. package/dist/ui/lib/hooks/use-keyboard-shortcut.cjs.map +1 -1
  631. package/dist/ui/lib/hooks/use-keyboard-shortcut.d.cts +48 -18
  632. package/dist/ui/lib/hooks/use-keyboard-shortcut.d.ts +48 -18
  633. package/dist/ui/lib/hooks/use-keyboard-shortcut.js.map +1 -1
  634. package/dist/ui/lib/hooks/use-mobile.cjs.map +1 -1
  635. package/dist/ui/lib/hooks/use-mobile.d.cts +11 -3
  636. package/dist/ui/lib/hooks/use-mobile.d.ts +11 -3
  637. package/dist/ui/lib/hooks/use-mobile.js.map +1 -1
  638. package/dist/ui/lib/hooks/use-toast.cjs.map +1 -1
  639. package/dist/ui/lib/hooks/use-toast.d.cts +184 -15
  640. package/dist/ui/lib/hooks/use-toast.d.ts +184 -15
  641. package/dist/ui/lib/hooks/use-toast.js.map +1 -1
  642. package/dist/ui/lib/ime-utils.cjs.map +1 -1
  643. package/dist/ui/lib/ime-utils.d.cts +40 -13
  644. package/dist/ui/lib/ime-utils.d.ts +40 -13
  645. package/dist/ui/lib/ime-utils.js.map +1 -1
  646. package/dist/ui/lib/utils.cjs.map +1 -1
  647. package/dist/ui/lib/utils.d.cts +9 -6
  648. package/dist/ui/lib/utils.d.ts +9 -6
  649. package/dist/ui/lib/utils.js.map +1 -1
  650. package/docs/ai.md +34 -1
  651. package/docs/exports.md +5 -1
  652. package/docs/index.md +89 -16
  653. package/docs/migration.md +268 -0
  654. package/docs/request-form.md +4 -1
  655. package/docs/tools.md +4 -1
  656. package/docs/ui.md +4 -1
  657. package/llms-full.txt +499 -36
  658. package/llms.txt +4 -0
  659. package/package.json +35 -5
@@ -1,123 +1,217 @@
1
1
  /**
2
- * エラー表示モード
3
- * - inline: フォーム内のフィールド近くに表示
4
- * - notification: 画面上部のバナー通知
5
- * - dialog: モーダルダイアログ
6
- * - page: 全画面エラーページ
2
+ * Requested error presentation: inline field feedback, notification banner, modal dialog or full page.
3
+ * @remarks This is metadata; a host renderer must display the error.
4
+ * @see AppError for creation.
7
5
  */
8
6
  export type ErrorDisplayMode = 'inline' | 'notification' | 'dialog' | 'page';
9
7
  /**
10
- * エラーの重要度
8
+ * Presentation severity from informational through critical; does not change Error behavior.
9
+ * @see AppError for creation.
11
10
  */
12
11
  export type ErrorSeverity = 'info' | 'warning' | 'error' | 'critical';
13
12
  /**
14
- * AppError: アプリケーション全体で使用するエラークラス
15
- *
13
+ * Application Error carrying a code, display hint, severity and optional metadata/original error.
14
+ * @remarks Presentation hints do not render UI or enforce authorization. Metadata is retained
15
+ * by reference and included in toJSON; exclude secrets before displaying or serializing.
16
16
  * @example
17
- * ```typescript
18
- * // 基本的な使用法
19
- * throw new AppError('auth/user-not-found', 'User not found');
20
- *
21
- * // 表示モード指定
22
- * throw new AppError('network/timeout', 'Request timed out', {
23
- * displayMode: 'notification',
24
- * severity: 'warning'
25
- * });
26
- *
27
- * // メタデータ付き
28
- * throw new AppError('validation/invalid-field', 'Invalid input', {
29
- * displayMode: 'inline',
30
- * metadata: { field: 'email' }
31
- * });
17
+ * ```ts
18
+ * import { AppError } from '@alneas/appkit-react/tools/core';
19
+ * const error = new AppError('validation/input', 'Review the input', { displayMode: 'inline', severity: 'warning' });
32
20
  * ```
33
21
  */
34
22
  export declare class AppError extends Error {
35
- /** エラーコード。i18n のキーとしても使用 (例: 'auth/user-not-found') */
23
+ /**
24
+ * Stable host error code, also usable for localized message lookup.
25
+ */
36
26
  readonly code: string;
37
- /** 推奨される表示モード */
27
+ /**
28
+ * Recommended host display mode; defaults to notification.
29
+ */
38
30
  readonly displayMode: ErrorDisplayMode;
39
- /** エラーの重要度 */
31
+ /**
32
+ * Presentation severity; defaults to error.
33
+ */
40
34
  readonly severity: ErrorSeverity;
41
- /** 追加のメタデータ (フィールド名、HTTP ステータスなど) */
35
+ /**
36
+ * Optional host metadata retained by reference and included in JSON serialization.
37
+ */
42
38
  readonly metadata?: Record<string, unknown>;
43
- /** 元のエラー (ラップする場合) */
39
+ /**
40
+ * Optional wrapped Error retained by reference; excluded from toJSON.
41
+ */
44
42
  readonly originalError?: Error;
45
43
  /**
46
- * AppError の新しいインスタンスを生成します。
47
- * @param code エラーコード
48
- * @param message エラーメッセージ
49
- * @param options 追加オプション
50
- */
44
+ * Creates an Error with explicit application code and presentation metadata.
45
+ * @param code - Host error identifier; no format validation is applied.
46
+ * @param message - Error message stored by the Error base class.
47
+ * @param options - Optional displayMode/severity (defaults notification/error), metadata and wrapped Error.
48
+ * @example
49
+ * ```ts
50
+ * import { AppError } from '@alneas/appkit-react/tools/core';
51
+ * const error = new AppError('error/example', 'Operation failed');
52
+ * ```
53
+ */
51
54
  constructor(code: string, message: string, options?: {
55
+ /**
56
+ * Presentation hint, default notification.
57
+ */
52
58
  displayMode?: ErrorDisplayMode;
59
+ /**
60
+ * Presentation severity, default error.
61
+ */
53
62
  severity?: ErrorSeverity;
63
+ /**
64
+ * Optional host metadata included by toJSON.
65
+ */
54
66
  metadata?: Record<string, unknown>;
67
+ /**
68
+ * Optional wrapped Error, excluded from toJSON.
69
+ */
55
70
  originalError?: Error;
56
71
  });
57
72
  /**
58
- * 任意のエラーを AppError に変換します。
59
- * Firebase, Supabase 等のエラーを自動的にコードマッピングします。
60
- */
73
+ * Converts an unknown value to AppError, preserving an existing AppError unchanged.
74
+ * @param error - Error or arbitrary thrown value to normalize.
75
+ * @param defaultDisplayMode - Hint for newly created wrappers; defaults to notification.
76
+ * @returns Existing AppError identity, or a new wrapper. Error instances with a string code
77
+ * retain that code and map selected known auth messages; other Errors use message matching
78
+ * or error/unknown. Non-Error values are stringified as error/unknown.
79
+ * @remarks Plain objects with code/message are not interpreted as Error instances. The
80
+ * default display hint does not override an existing AppError. No UI is rendered.
81
+ * @example
82
+ * ```ts
83
+ * import { AppError } from '@alneas/appkit-react/tools/core';
84
+ * const error = AppError.from(new Error('Unavailable'), 'dialog');
85
+ * ```
86
+ */
61
87
  static from(error: unknown, defaultDisplayMode?: ErrorDisplayMode): AppError;
62
88
  /**
63
- * 文字列表現
64
- */
89
+ * Formats the application code and message for display/logging.
90
+ * @returns String in [code] message form; does not include metadata or stack.
91
+ * @example
92
+ * ```ts
93
+ * import { AppError } from '@alneas/appkit-react/tools/core';
94
+ * const error = new AppError('error/example', 'Unavailable').toString();
95
+ * ```
96
+ */
65
97
  toString(): string;
66
98
  /**
67
- * JSON シリアライズ用
68
- */
99
+ * Selects enumerable presentation fields for JSON serialization.
100
+ * @returns New object with name/code/message/displayMode/severity/metadata; stack and originalError are omitted.
101
+ * @remarks Metadata remains referenced and may itself be non-serializable or sensitive.
102
+ * @example
103
+ * ```ts
104
+ * import { AppError } from '@alneas/appkit-react/tools/core';
105
+ * const error = new AppError('error/example', 'Unavailable').toJSON();
106
+ * ```
107
+ */
69
108
  toJSON(): Record<string, unknown>;
70
109
  }
71
110
  /**
72
- * ネットワークタイムアウトエラー
111
+ * Represents an operation timeout with notification/warning presentation.
112
+ * @remarks Construction does not start timers, perform a request or render error UI.
113
+ * @example
114
+ * ```ts
115
+ * import { TimeoutError } from '@alneas/appkit-react/tools/core';
116
+ * const error = new TimeoutError();
117
+ * ```
73
118
  */
74
119
  export declare class TimeoutError extends AppError {
75
120
  /**
76
- * TimeoutError の新しいインスタンスを生成します。
77
- * @param message エラーメッセージ
78
- * @param duration タイムアウトした時間(ミリ秒)
79
- */
121
+ * Creates an application error with code error/timeout.
122
+ * @param message - Message, default The operation timed out.
123
+ * @param duration - Optional timeout duration in milliseconds; retained in metadata.
124
+ * @example
125
+ * ```ts
126
+ * import { TimeoutError } from '@alneas/appkit-react/tools/core';
127
+ * const error = new TimeoutError();
128
+ * ```
129
+ */
80
130
  constructor(message?: string, duration?: number);
81
131
  }
82
132
  /**
83
- * ネットワークエラー
133
+ * Represents a network failure with notification/error presentation.
134
+ * @remarks Construction does not start timers, perform a request or render error UI.
135
+ * @example
136
+ * ```ts
137
+ * import { NetworkError } from '@alneas/appkit-react/tools/core';
138
+ * const error = new NetworkError();
139
+ * ```
84
140
  */
85
141
  export declare class NetworkError extends AppError {
86
142
  /**
87
- * NetworkError の新しいインスタンスを生成します。
88
- * @param message エラーメッセージ
89
- */
143
+ * Creates an application error with code error/network.
144
+ * @param message - Message, default Network error occurred.
145
+ * @example
146
+ * ```ts
147
+ * import { NetworkError } from '@alneas/appkit-react/tools/core';
148
+ * const error = new NetworkError();
149
+ * ```
150
+ */
90
151
  constructor(message?: string);
91
152
  }
92
153
  /**
93
- * 認証不足エラー
154
+ * Represents denied access with dialog/error presentation.
155
+ * @remarks Construction does not start timers, perform a request or render error UI.
156
+ * @example
157
+ * ```ts
158
+ * import { UnauthorizedError } from '@alneas/appkit-react/tools/core';
159
+ * const error = new UnauthorizedError();
160
+ * ```
94
161
  */
95
162
  export declare class UnauthorizedError extends AppError {
96
163
  /**
97
- * UnauthorizedError の新しいインスタンスを生成します。
98
- * @param message エラーメッセージ
99
- */
164
+ * Creates an application error with code error/unauthorized.
165
+ * @param message - Message, default You are not authorized to perform this action.
166
+ * @example
167
+ * ```ts
168
+ * import { UnauthorizedError } from '@alneas/appkit-react/tools/core';
169
+ * const error = new UnauthorizedError();
170
+ * ```
171
+ */
100
172
  constructor(message?: string);
101
173
  }
102
174
  /**
103
- * リソースが見つからないエラー
175
+ * Represents a missing resource with page/error presentation.
176
+ * @remarks Construction does not start timers, perform a request or render error UI.
177
+ * @example
178
+ * ```ts
179
+ * import { NotFoundError } from '@alneas/appkit-react/tools/core';
180
+ * const error = new NotFoundError();
181
+ * ```
104
182
  */
105
183
  export declare class NotFoundError extends AppError {
106
184
  /**
107
- * NotFoundError の新しいインスタンスを生成します。
108
- * @param message エラーメッセージ
109
- * @param resource 見つからなかったリソース名
110
- */
185
+ * Creates an application error with code error/not-found.
186
+ * @param message - Message, default The requested resource was not found.
187
+ * @param resource - Optional missing resource name retained in metadata.
188
+ * @example
189
+ * ```ts
190
+ * import { NotFoundError } from '@alneas/appkit-react/tools/core';
191
+ * const error = new NotFoundError();
192
+ * ```
193
+ */
111
194
  constructor(message?: string, resource?: string);
112
195
  }
113
196
  /**
114
- * バリデーションエラー
197
+ * Represents invalid input with inline/warning presentation.
198
+ * @remarks Construction does not start timers, perform a request or render error UI.
199
+ * @example
200
+ * ```ts
201
+ * import { ValidationError } from '@alneas/appkit-react/tools/core';
202
+ * const error = new ValidationError('Invalid input');
203
+ * ```
115
204
  */
116
205
  export declare class ValidationError extends AppError {
117
206
  /**
118
- * ValidationError の新しいインスタンスを生成します。
119
- * @param message エラーメッセージ
120
- * @param fields フィールドごとのエラーマッピング
121
- */
207
+ * Creates an application error with code error/validation.
208
+ * @param message - Required validation message.
209
+ * @param fields - Optional per-field error messages retained in metadata.
210
+ * @example
211
+ * ```ts
212
+ * import { ValidationError } from '@alneas/appkit-react/tools/core';
213
+ * const error = new ValidationError('Invalid input');
214
+ * ```
215
+ */
122
216
  constructor(message: string, fields?: Record<string, string>);
123
217
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AppError.js","names":["m.errors_auth_invalid_email","m.errors_auth_wrong_password","m.errors_auth_user_not_found","m.errors_auth_user_disabled","m.errors_auth_too_many_requests","m.errors_auth_operation_not_allowed","m.errors_auth_email_already_in_use","m.errors_auth_requires_recent_login","m.errors_auth_account_exists_with_different_credential","m.errors_auth_weak_password","m.errors_auth_network_request_failed","m.errors_supabase_invalid_credentials","m.errors_supabase_email_not_confirmed","AppError","message","code","options","error","errors_auth_invalid_email","errors_auth_wrong_password","errors_auth_user_not_found","errors_auth_user_disabled","errors_auth_too_many_requests","errors_auth_operation_not_allowed","errors_auth_email_already_in_use","errors_auth_requires_recent_login","errors_auth_account_exists_with_different_credential","errors_auth_weak_password","errors_auth_network_request_failed","defaultDisplayMode","errorRecord","msg","errors_supabase_invalid_credentials","errors_supabase_email_not_confirmed","TimeoutError","NetworkError","UnauthorizedError","NotFoundError","ValidationError"],"sources":["../../../../src/tools/lib/error/AppError.ts"],"sourcesContent":["import * as m from '../../paraglide/messages';\n\n/**\n * エラー表示モード\n * - inline: フォーム内のフィールド近くに表示\n * - notification: 画面上部のバナー通知\n * - dialog: モーダルダイアログ\n * - page: 全画面エラーページ\n */\nexport type ErrorDisplayMode = 'inline' | 'notification' | 'dialog' | 'page';\n\n/**\n * エラーの重要度\n */\nexport type ErrorSeverity = 'info' | 'warning' | 'error' | 'critical';\n\n/**\n * AppError: アプリケーション全体で使用するエラークラス\n *\n * @example\n * ```typescript\n * // 基本的な使用法\n * throw new AppError('auth/user-not-found', 'User not found');\n *\n * // 表示モード指定\n * throw new AppError('network/timeout', 'Request timed out', {\n * displayMode: 'notification',\n * severity: 'warning'\n * });\n *\n * // メタデータ付き\n * throw new AppError('validation/invalid-field', 'Invalid input', {\n * displayMode: 'inline',\n * metadata: { field: 'email' }\n * });\n * ```\n */\nexport class AppError extends Error {\n /** エラーコード。i18n のキーとしても使用 (例: 'auth/user-not-found') */\n readonly code: string;\n\n /** 推奨される表示モード */\n readonly displayMode: ErrorDisplayMode;\n\n /** エラーの重要度 */\n readonly severity: ErrorSeverity;\n\n /** 追加のメタデータ (フィールド名、HTTP ステータスなど) */\n readonly metadata?: Record<string, unknown>;\n\n /** 元のエラー (ラップする場合) */\n readonly originalError?: Error;\n\n /**\n * AppError の新しいインスタンスを生成します。\n * @param code エラーコード\n * @param message エラーメッセージ\n * @param options 追加オプション\n */\n constructor(\n code: string,\n message: string,\n options?: {\n displayMode?: ErrorDisplayMode;\n severity?: ErrorSeverity;\n metadata?: Record<string, unknown>;\n originalError?: Error;\n },\n ) {\n super(message);\n this.name = 'AppError';\n this.code = code;\n this.displayMode = options?.displayMode ?? 'notification';\n this.severity = options?.severity ?? 'error';\n this.metadata = options?.metadata;\n this.originalError = options?.originalError;\n\n // Error の prototype chain を正しく設定\n Object.setPrototypeOf(this, new.target.prototype);\n }\n\n /**\n * 任意のエラーを AppError に変換します。\n * Firebase, Supabase 等のエラーを自動的にコードマッピングします。\n */\n static from(error: unknown, defaultDisplayMode: ErrorDisplayMode = 'notification'): AppError {\n if (error instanceof AppError) {\n return error;\n }\n\n if (error instanceof Error) {\n // Firebase Auth Error\n if ('code' in error && typeof (error as { code: unknown }).code === 'string') {\n const code = (error as { code: string }).code;\n let message = error.message;\n\n switch (code) {\n case 'auth/invalid-email':\n message = m.errors_auth_invalid_email();\n break;\n case 'auth/wrong-password':\n message = m.errors_auth_wrong_password();\n break;\n case 'auth/user-not-found':\n message = m.errors_auth_user_not_found();\n break;\n case 'auth/user-disabled':\n message = m.errors_auth_user_disabled();\n break;\n case 'auth/too-many-requests':\n message = m.errors_auth_too_many_requests();\n break;\n case 'auth/operation-not-allowed':\n message = m.errors_auth_operation_not_allowed();\n break;\n case 'auth/email-already-in-use':\n message = m.errors_auth_email_already_in_use();\n break;\n case 'auth/requires-recent-login':\n message = m.errors_auth_requires_recent_login();\n break;\n case 'auth/credential-already-in-use':\n message = m.errors_auth_account_exists_with_different_credential();\n break;\n case 'auth/weak-password':\n message = m.errors_auth_weak_password();\n break;\n case 'auth/network-request-failed':\n message = m.errors_auth_network_request_failed();\n break;\n }\n\n return new AppError(code, message, {\n displayMode: defaultDisplayMode,\n originalError: error,\n });\n }\n\n // Supabase/PostgreSQL Error\n // Supabase errors often have 'code' and 'message'.\n // We can also look for specific strings in the message if the code is generic.\n if ('code' in error || 'message' in error) {\n const errorRecord = error as { code?: unknown; message?: unknown };\n const msg = typeof errorRecord.message === 'string' ? errorRecord.message : '';\n\n // Supabase generic error message mapping\n if (msg.includes('Invalid login credentials')) {\n return new AppError(\n 'bg-auth/invalid-credentials',\n m.errors_supabase_invalid_credentials(),\n { displayMode: defaultDisplayMode, originalError: error },\n );\n }\n if (msg.includes('Email not confirmed')) {\n return new AppError(\n 'bg-auth/email-not-confirmed',\n m.errors_supabase_email_not_confirmed(),\n { displayMode: defaultDisplayMode, originalError: error },\n );\n }\n }\n\n // Generic Error\n return new AppError('error/unknown', error.message, {\n displayMode: defaultDisplayMode,\n originalError: error,\n });\n }\n\n // Unknown type\n return new AppError('error/unknown', String(error), {\n displayMode: defaultDisplayMode,\n });\n }\n\n /**\n * 文字列表現\n */\n toString(): string {\n return `[${this.code}] ${this.message}`;\n }\n\n /**\n * JSON シリアライズ用\n */\n toJSON(): Record<string, unknown> {\n return {\n name: this.name,\n code: this.code,\n message: this.message,\n displayMode: this.displayMode,\n severity: this.severity,\n metadata: this.metadata,\n };\n }\n}\n\n/**\n * ネットワークタイムアウトエラー\n */\nexport class TimeoutError extends AppError {\n /**\n * TimeoutError の新しいインスタンスを生成します。\n * @param message エラーメッセージ\n * @param duration タイムアウトした時間(ミリ秒)\n */\n constructor(message = 'The operation timed out', duration?: number) {\n super('error/timeout', message, {\n displayMode: 'notification',\n severity: 'warning',\n metadata: { duration },\n });\n this.name = 'TimeoutError';\n }\n}\n\n/**\n * ネットワークエラー\n */\nexport class NetworkError extends AppError {\n /**\n * NetworkError の新しいインスタンスを生成します。\n * @param message エラーメッセージ\n */\n constructor(message = 'Network error occurred') {\n super('error/network', message, {\n displayMode: 'notification',\n severity: 'error',\n });\n this.name = 'NetworkError';\n }\n}\n\n/**\n * 認証不足エラー\n */\nexport class UnauthorizedError extends AppError {\n /**\n * UnauthorizedError の新しいインスタンスを生成します。\n * @param message エラーメッセージ\n */\n constructor(message = 'You are not authorized to perform this action') {\n super('error/unauthorized', message, {\n displayMode: 'dialog',\n severity: 'error',\n });\n this.name = 'UnauthorizedError';\n }\n}\n\n/**\n * リソースが見つからないエラー\n */\nexport class NotFoundError extends AppError {\n /**\n * NotFoundError の新しいインスタンスを生成します。\n * @param message エラーメッセージ\n * @param resource 見つからなかったリソース名\n */\n constructor(message = 'The requested resource was not found', resource?: string) {\n super('error/not-found', message, {\n displayMode: 'page',\n severity: 'error',\n metadata: { resource },\n });\n this.name = 'NotFoundError';\n }\n}\n\n/**\n * バリデーションエラー\n */\nexport class ValidationError extends AppError {\n /**\n * ValidationError の新しいインスタンスを生成します。\n * @param message エラーメッセージ\n * @param fields フィールドごとのエラーマッピング\n */\n constructor(message: string, fields?: Record<string, string>) {\n super('error/validation', message, {\n displayMode: 'inline',\n severity: 'warning',\n metadata: { fields },\n });\n this.name = 'ValidationError';\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;AAqCA,IAAaa,IAAb,MAAaA,UAAiB,MAAM;CAElC;CAGA;CAGA;CAGA;CAGA;CAQA,YACE,GACA,GACA,GAMA;EAUA,AATA,MAAMC,CAAO,GACb,KAAK,OAAO,YACZ,KAAK,OAAOC,GACZ,KAAK,cAAcC,GAAS,eAAe,gBAC3C,KAAK,WAAWA,GAAS,YAAY,SACrC,KAAK,WAAWA,GAAS,UACzB,KAAK,gBAAgBA,GAAS,eAG9B,OAAO,eAAe,MAAM,WAAW,SAAS;CAClD;CAMA,OAAO,KAAK,GAAgB,IAAuC,gBAA0B;EAC3F,IAAIC,aAAiBJ,GACnB,OAAOI;EAGT,IAAIA,aAAiB,OAAO;GAE1B,IAAI,UAAUA,KAAS,OAAQA,EAA4B,QAAS,UAAU;IAC5E,IAAMF,IAAQE,EAA2B,MACrCH,IAAUG,EAAM;IAEpB,QAAQF,GAAR;KACE,KAAK;MACH,IAAUf,EAA4B;MACtC;KACF,KAAK;MACH,IAAUC,EAA6B;MACvC;KACF,KAAK;MACH,IAAUC,EAA6B;MACvC;KACF,KAAK;MACH,IAAUC,EAA4B;MACtC;KACF,KAAK;MACH,IAAUC,EAAgC;MAC1C;KACF,KAAK;MACH,IAAUC,EAAoC;MAC9C;KACF,KAAK;MACH,IAAUC,EAAmC;MAC7C;KACF,KAAK;MACH,IAAUC,EAAoC;MAC9C;KACF,KAAK;MACH,IAAUC,EAAuD;MACjE;KACF,KAAK;MACH,IAAUC,EAA4B;MACtC;KACF,KAAK,+BACH,IAAUC,EAAqC;IAEnD;IAEA,OAAO,IAAIG,EAASE,GAAMD,GAAS;KACjC,aAAae;KACb,eAAeZ;IACjB,CAAC;GACH;GAKA,IAAI,UAAUA,KAAS,aAAaA,GAAO;IACzC,IAAMa,IAAcb,GACdc,IAAM,OAAOD,EAAY,WAAY,WAAWA,EAAY,UAAU;IAG5E,IAAIC,EAAI,SAAS,2BAA2B,GAC1C,OAAO,IAAIlB,EACT,+BACAF,EAAsC,GACtC;KAAE,aAAakB;KAAoB,eAAeZ;IAAM,CAC1D;IAEF,IAAIc,EAAI,SAAS,qBAAqB,GACpC,OAAO,IAAIlB,EACT,+BACAD,EAAsC,GACtC;KAAE,aAAaiB;KAAoB,eAAeZ;IAAM,CAC1D;GAEJ;GAGA,OAAO,IAAIJ,EAAS,iBAAiBI,EAAM,SAAS;IAClD,aAAaY;IACb,eAAeZ;GACjB,CAAC;EACH;EAGA,OAAO,IAAIJ,EAAS,iBAAiB,OAAOI,CAAK,GAAG,EAClD,aAAaY,EACf,CAAC;CACH;CAKA,WAAmB;EACjB,OAAO,IAAI,KAAK,KAAK,IAAI,KAAK;CAChC;CAKA,SAAkC;EAChC,OAAO;GACL,MAAM,KAAK;GACX,MAAM,KAAK;GACX,SAAS,KAAK;GACd,aAAa,KAAK;GAClB,UAAU,KAAK;GACf,UAAU,KAAK;EACjB;CACF;AACF,GAKaK,IAAb,cAAkCrB,EAAS;CAMzC,YAAY,IAAU,2BAA2B,GAAmB;EAMlE,AALA,MAAM,iBAAiBC,GAAS;GAC9B,aAAa;GACb,UAAU;GACV,UAAU,EAAE,YAAS;EACvB,CAAC,GACD,KAAK,OAAO;CACd;AACF,GAKaqB,IAAb,cAAkCtB,EAAS;CAKzC,YAAY,IAAU,0BAA0B;EAK9C,AAJA,MAAM,iBAAiBC,GAAS;GAC9B,aAAa;GACb,UAAU;EACZ,CAAC,GACD,KAAK,OAAO;CACd;AACF,GAKasB,IAAb,cAAuCvB,EAAS;CAK9C,YAAY,IAAU,iDAAiD;EAKrE,AAJA,MAAM,sBAAsBC,GAAS;GACnC,aAAa;GACb,UAAU;EACZ,CAAC,GACD,KAAK,OAAO;CACd;AACF,GAKauB,IAAb,cAAmCxB,EAAS;CAM1C,YAAY,IAAU,wCAAwC,GAAmB;EAM/E,AALA,MAAM,mBAAmBC,GAAS;GAChC,aAAa;GACb,UAAU;GACV,UAAU,EAAE,YAAS;EACvB,CAAC,GACD,KAAK,OAAO;CACd;AACF,GAKawB,IAAb,cAAqCzB,EAAS;CAM5C,YAAY,GAAiB,GAAiC;EAM5D,AALA,MAAM,oBAAoBC,GAAS;GACjC,aAAa;GACb,UAAU;GACV,UAAU,EAAE,UAAO;EACrB,CAAC,GACD,KAAK,OAAO;CACd;AACF"}
1
+ {"version":3,"file":"AppError.js","names":["m.errors_auth_invalid_email","m.errors_auth_wrong_password","m.errors_auth_user_not_found","m.errors_auth_user_disabled","m.errors_auth_too_many_requests","m.errors_auth_operation_not_allowed","m.errors_auth_email_already_in_use","m.errors_auth_requires_recent_login","m.errors_auth_account_exists_with_different_credential","m.errors_auth_weak_password","m.errors_auth_network_request_failed","m.errors_supabase_invalid_credentials","m.errors_supabase_email_not_confirmed","AppError","message","code","options","error","errors_auth_invalid_email","errors_auth_wrong_password","errors_auth_user_not_found","errors_auth_user_disabled","errors_auth_too_many_requests","errors_auth_operation_not_allowed","errors_auth_email_already_in_use","errors_auth_requires_recent_login","errors_auth_account_exists_with_different_credential","errors_auth_weak_password","errors_auth_network_request_failed","defaultDisplayMode","errorRecord","msg","errors_supabase_invalid_credentials","errors_supabase_email_not_confirmed","TimeoutError","NetworkError","UnauthorizedError","NotFoundError","ValidationError"],"sources":["../../../../src/tools/lib/error/AppError.ts"],"sourcesContent":["import * as m from '../../paraglide/messages';\n\n/**\n * Requested error presentation: inline field feedback, notification banner, modal dialog or full page.\n * @remarks This is metadata; a host renderer must display the error.\n * @see AppError for creation.\n */\nexport type ErrorDisplayMode = 'inline' | 'notification' | 'dialog' | 'page';\n\n/**\n * Presentation severity from informational through critical; does not change Error behavior.\n * @see AppError for creation.\n */\nexport type ErrorSeverity = 'info' | 'warning' | 'error' | 'critical';\n\n/**\n * Application Error carrying a code, display hint, severity and optional metadata/original error.\n * @remarks Presentation hints do not render UI or enforce authorization. Metadata is retained\n * by reference and included in toJSON; exclude secrets before displaying or serializing.\n * @example\n * ```ts\n * import { AppError } from '@alneas/appkit-react/tools/core';\n * const error = new AppError('validation/input', 'Review the input', { displayMode: 'inline', severity: 'warning' });\n * ```\n */\nexport class AppError extends Error {\n /**\n * Stable host error code, also usable for localized message lookup.\n */\n readonly code: string;\n\n /**\n * Recommended host display mode; defaults to notification.\n */\n readonly displayMode: ErrorDisplayMode;\n\n /**\n * Presentation severity; defaults to error.\n */\n readonly severity: ErrorSeverity;\n\n /**\n * Optional host metadata retained by reference and included in JSON serialization.\n */\n readonly metadata?: Record<string, unknown>;\n\n /**\n * Optional wrapped Error retained by reference; excluded from toJSON.\n */\n readonly originalError?: Error;\n\n /**\n * Creates an Error with explicit application code and presentation metadata.\n * @param code - Host error identifier; no format validation is applied.\n * @param message - Error message stored by the Error base class.\n * @param options - Optional displayMode/severity (defaults notification/error), metadata and wrapped Error.\n * @example\n * ```ts\n * import { AppError } from '@alneas/appkit-react/tools/core';\n * const error = new AppError('error/example', 'Operation failed');\n * ```\n */\n constructor(\n code: string,\n message: string,\n options?: {\n /**\n * Presentation hint, default notification.\n */\n displayMode?: ErrorDisplayMode;\n /**\n * Presentation severity, default error.\n */\n severity?: ErrorSeverity;\n /**\n * Optional host metadata included by toJSON.\n */\n metadata?: Record<string, unknown>;\n /**\n * Optional wrapped Error, excluded from toJSON.\n */\n originalError?: Error;\n },\n ) {\n super(message);\n this.name = 'AppError';\n this.code = code;\n this.displayMode = options?.displayMode ?? 'notification';\n this.severity = options?.severity ?? 'error';\n this.metadata = options?.metadata;\n this.originalError = options?.originalError;\n\n // Error の prototype chain を正しく設定\n Object.setPrototypeOf(this, new.target.prototype);\n }\n\n /**\n * Converts an unknown value to AppError, preserving an existing AppError unchanged.\n * @param error - Error or arbitrary thrown value to normalize.\n * @param defaultDisplayMode - Hint for newly created wrappers; defaults to notification.\n * @returns Existing AppError identity, or a new wrapper. Error instances with a string code\n * retain that code and map selected known auth messages; other Errors use message matching\n * or error/unknown. Non-Error values are stringified as error/unknown.\n * @remarks Plain objects with code/message are not interpreted as Error instances. The\n * default display hint does not override an existing AppError. No UI is rendered.\n * @example\n * ```ts\n * import { AppError } from '@alneas/appkit-react/tools/core';\n * const error = AppError.from(new Error('Unavailable'), 'dialog');\n * ```\n */\n static from(error: unknown, defaultDisplayMode: ErrorDisplayMode = 'notification'): AppError {\n if (error instanceof AppError) {\n return error;\n }\n\n if (error instanceof Error) {\n // Firebase Auth Error\n if ('code' in error && typeof (error as { code: unknown }).code === 'string') {\n const code = (error as { code: string }).code;\n let message = error.message;\n\n switch (code) {\n case 'auth/invalid-email':\n message = m.errors_auth_invalid_email();\n break;\n case 'auth/wrong-password':\n message = m.errors_auth_wrong_password();\n break;\n case 'auth/user-not-found':\n message = m.errors_auth_user_not_found();\n break;\n case 'auth/user-disabled':\n message = m.errors_auth_user_disabled();\n break;\n case 'auth/too-many-requests':\n message = m.errors_auth_too_many_requests();\n break;\n case 'auth/operation-not-allowed':\n message = m.errors_auth_operation_not_allowed();\n break;\n case 'auth/email-already-in-use':\n message = m.errors_auth_email_already_in_use();\n break;\n case 'auth/requires-recent-login':\n message = m.errors_auth_requires_recent_login();\n break;\n case 'auth/credential-already-in-use':\n message = m.errors_auth_account_exists_with_different_credential();\n break;\n case 'auth/weak-password':\n message = m.errors_auth_weak_password();\n break;\n case 'auth/network-request-failed':\n message = m.errors_auth_network_request_failed();\n break;\n }\n\n return new AppError(code, message, {\n displayMode: defaultDisplayMode,\n originalError: error,\n });\n }\n\n // Supabase/PostgreSQL Error\n // Supabase errors often have 'code' and 'message'.\n // We can also look for specific strings in the message if the code is generic.\n if ('code' in error || 'message' in error) {\n const errorRecord = error as { code?: unknown; message?: unknown };\n const msg = typeof errorRecord.message === 'string' ? errorRecord.message : '';\n\n // Supabase generic error message mapping\n if (msg.includes('Invalid login credentials')) {\n return new AppError(\n 'bg-auth/invalid-credentials',\n m.errors_supabase_invalid_credentials(),\n { displayMode: defaultDisplayMode, originalError: error },\n );\n }\n if (msg.includes('Email not confirmed')) {\n return new AppError(\n 'bg-auth/email-not-confirmed',\n m.errors_supabase_email_not_confirmed(),\n { displayMode: defaultDisplayMode, originalError: error },\n );\n }\n }\n\n // Generic Error\n return new AppError('error/unknown', error.message, {\n displayMode: defaultDisplayMode,\n originalError: error,\n });\n }\n\n // Unknown type\n return new AppError('error/unknown', String(error), {\n displayMode: defaultDisplayMode,\n });\n }\n\n /**\n * Formats the application code and message for display/logging.\n * @returns String in [code] message form; does not include metadata or stack.\n * @example\n * ```ts\n * import { AppError } from '@alneas/appkit-react/tools/core';\n * const error = new AppError('error/example', 'Unavailable').toString();\n * ```\n */\n toString(): string {\n return `[${this.code}] ${this.message}`;\n }\n\n /**\n * Selects enumerable presentation fields for JSON serialization.\n * @returns New object with name/code/message/displayMode/severity/metadata; stack and originalError are omitted.\n * @remarks Metadata remains referenced and may itself be non-serializable or sensitive.\n * @example\n * ```ts\n * import { AppError } from '@alneas/appkit-react/tools/core';\n * const error = new AppError('error/example', 'Unavailable').toJSON();\n * ```\n */\n toJSON(): Record<string, unknown> {\n return {\n name: this.name,\n code: this.code,\n message: this.message,\n displayMode: this.displayMode,\n severity: this.severity,\n metadata: this.metadata,\n };\n }\n}\n\n/**\n * Represents an operation timeout with notification/warning presentation.\n * @remarks Construction does not start timers, perform a request or render error UI.\n * @example\n * ```ts\n * import { TimeoutError } from '@alneas/appkit-react/tools/core';\n * const error = new TimeoutError();\n * ```\n */\nexport class TimeoutError extends AppError {\n /**\n * Creates an application error with code error/timeout.\n * @param message - Message, default The operation timed out.\n * @param duration - Optional timeout duration in milliseconds; retained in metadata.\n * @example\n * ```ts\n * import { TimeoutError } from '@alneas/appkit-react/tools/core';\n * const error = new TimeoutError();\n * ```\n */\n constructor(message = 'The operation timed out', duration?: number) {\n super('error/timeout', message, {\n displayMode: 'notification',\n severity: 'warning',\n metadata: { duration },\n });\n this.name = 'TimeoutError';\n }\n}\n\n/**\n * Represents a network failure with notification/error presentation.\n * @remarks Construction does not start timers, perform a request or render error UI.\n * @example\n * ```ts\n * import { NetworkError } from '@alneas/appkit-react/tools/core';\n * const error = new NetworkError();\n * ```\n */\nexport class NetworkError extends AppError {\n /**\n * Creates an application error with code error/network.\n * @param message - Message, default Network error occurred.\n * @example\n * ```ts\n * import { NetworkError } from '@alneas/appkit-react/tools/core';\n * const error = new NetworkError();\n * ```\n */\n constructor(message = 'Network error occurred') {\n super('error/network', message, {\n displayMode: 'notification',\n severity: 'error',\n });\n this.name = 'NetworkError';\n }\n}\n\n/**\n * Represents denied access with dialog/error presentation.\n * @remarks Construction does not start timers, perform a request or render error UI.\n * @example\n * ```ts\n * import { UnauthorizedError } from '@alneas/appkit-react/tools/core';\n * const error = new UnauthorizedError();\n * ```\n */\nexport class UnauthorizedError extends AppError {\n /**\n * Creates an application error with code error/unauthorized.\n * @param message - Message, default You are not authorized to perform this action.\n * @example\n * ```ts\n * import { UnauthorizedError } from '@alneas/appkit-react/tools/core';\n * const error = new UnauthorizedError();\n * ```\n */\n constructor(message = 'You are not authorized to perform this action') {\n super('error/unauthorized', message, {\n displayMode: 'dialog',\n severity: 'error',\n });\n this.name = 'UnauthorizedError';\n }\n}\n\n/**\n * Represents a missing resource with page/error presentation.\n * @remarks Construction does not start timers, perform a request or render error UI.\n * @example\n * ```ts\n * import { NotFoundError } from '@alneas/appkit-react/tools/core';\n * const error = new NotFoundError();\n * ```\n */\nexport class NotFoundError extends AppError {\n /**\n * Creates an application error with code error/not-found.\n * @param message - Message, default The requested resource was not found.\n * @param resource - Optional missing resource name retained in metadata.\n * @example\n * ```ts\n * import { NotFoundError } from '@alneas/appkit-react/tools/core';\n * const error = new NotFoundError();\n * ```\n */\n constructor(message = 'The requested resource was not found', resource?: string) {\n super('error/not-found', message, {\n displayMode: 'page',\n severity: 'error',\n metadata: { resource },\n });\n this.name = 'NotFoundError';\n }\n}\n\n/**\n * Represents invalid input with inline/warning presentation.\n * @remarks Construction does not start timers, perform a request or render error UI.\n * @example\n * ```ts\n * import { ValidationError } from '@alneas/appkit-react/tools/core';\n * const error = new ValidationError('Invalid input');\n * ```\n */\nexport class ValidationError extends AppError {\n /**\n * Creates an application error with code error/validation.\n * @param message - Required validation message.\n * @param fields - Optional per-field error messages retained in metadata.\n * @example\n * ```ts\n * import { ValidationError } from '@alneas/appkit-react/tools/core';\n * const error = new ValidationError('Invalid input');\n * ```\n */\n constructor(message: string, fields?: Record<string, string>) {\n super('error/validation', message, {\n displayMode: 'inline',\n severity: 'warning',\n metadata: { fields },\n });\n this.name = 'ValidationError';\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useAsyncWithTimeout.cjs","names":["useState","useError","useRef","useCallback","TimeoutError","AppError","require_tools_lib_error_AppError","require_tools_lib_hooks_useError","react","DEFAULT_TIMEOUT","useAsyncWithTimeout","options","isLoading","setIsLoading","error","setError","data","setData","abortControllerRef","isMountedRef","timeoutPromise","reject","timeout","result","fn","onSuccess","err","appError","errorDisplayMode","showErrorOnFailure","showError","onError","withTimeout","promise"],"sources":["../../../../src/tools/lib/hooks/useAsyncWithTimeout.ts"],"sourcesContent":["import { useState, useCallback, useRef, useEffect } from 'react';\nimport { AppError, TimeoutError, ErrorDisplayMode } from \"../error\";\nimport { useError } from './useError';\n\n/** デフォルトのタイムアウト時間 (30秒) */\nconst DEFAULT_TIMEOUT = 30000;\n\nexport interface UseAsyncWithTimeoutOptions<T> {\n /** 実行する非同期関数 */\n fn: () => Promise<T>;\n /** タイムアウト時間 (ミリ秒)。デフォルト: 30000 */\n timeout?: number;\n /** エラー発生時の表示モード */\n errorDisplayMode?: ErrorDisplayMode;\n /** エラー発生時に自動で表示するか。デフォルト: true */\n showErrorOnFailure?: boolean;\n /** 成功時のコールバック */\n onSuccess?: (data: T) => void;\n /** エラー時のコールバック */\n onError?: (error: AppError) => void;\n}\n\nexport interface UseAsyncWithTimeoutReturn<T> {\n /** 非同期処理を実行 */\n execute: () => Promise<T | undefined>;\n /** 現在読み込み中か */\n isLoading: boolean;\n /** 最後に発生したエラー */\n error: AppError | null;\n /** 成功したデータ */\n data: T | undefined;\n /** エラー状態をリセット */\n reset: () => void;\n}\n\n/**\n * タイムアウト付き非同期処理フック\n *\n * @example\n * ```tsx\n * const { execute, isLoading, error, data } = useAsyncWithTimeout({\n * fn: async () => await api.fetchData(),\n * timeout: 10000, // 10秒\n * errorDisplayMode: 'notification',\n * onSuccess: (data) => console.log('Success:', data),\n * });\n *\n * // ボタンクリックで実行\n * <button onClick={execute} disabled={isLoading}>\n * {isLoading ? 'Loading...' : 'Fetch Data'}\n * </button>\n * ```\n */\nexport function useAsyncWithTimeout<T>(\n options: UseAsyncWithTimeoutOptions<T>,\n): UseAsyncWithTimeoutReturn<T> {\n const {\n fn,\n timeout = DEFAULT_TIMEOUT,\n errorDisplayMode = 'notification',\n showErrorOnFailure = true,\n onSuccess,\n onError,\n } = options;\n\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState<AppError | null>(null);\n const [data, setData] = useState<T | undefined>(undefined);\n\n const { showError } = useError();\n const abortControllerRef = useRef<AbortController | null>(null);\n const isMountedRef = useRef(true);\n\n // コンポーネントのアンマウント時にクリーンアップ\n useEffect(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n abortControllerRef.current?.abort();\n };\n }, []);\n\n const execute = useCallback(async (): Promise<T | undefined> => {\n // 既存のリクエストをキャンセル\n abortControllerRef.current?.abort();\n abortControllerRef.current = new AbortController();\n\n setIsLoading(true);\n setError(null);\n\n // タイムアウト用のPromise\n const timeoutPromise = new Promise<never>((_, reject) => {\n setTimeout(() => {\n reject(new TimeoutError('The operation timed out', timeout));\n }, timeout);\n });\n\n try {\n // fetchとtimeoutのレース\n const result = await Promise.race([fn(), timeoutPromise]);\n\n if (isMountedRef.current) {\n setData(result);\n setIsLoading(false);\n onSuccess?.(result);\n }\n\n return result;\n } catch (err) {\n if (!isMountedRef.current) return undefined;\n\n const appError = AppError.from(err, errorDisplayMode);\n setError(appError);\n setIsLoading(false);\n\n if (showErrorOnFailure) {\n showError(appError);\n }\n\n onError?.(appError);\n return undefined;\n }\n }, [fn, timeout, errorDisplayMode, showErrorOnFailure, showError, onSuccess, onError]);\n\n const reset = useCallback(() => {\n setIsLoading(false);\n setError(null);\n setData(undefined);\n abortControllerRef.current?.abort();\n }, []);\n\n return {\n execute,\n isLoading,\n error,\n data,\n reset,\n };\n}\n\n/**\n * タイムアウト付きで Promise を実行するユーティリティ関数\n * (フック外で使用する場合)\n */\nexport async function withTimeout<T>(\n promise: Promise<T>,\n timeout: number = DEFAULT_TIMEOUT,\n): Promise<T> {\n const timeoutPromise = new Promise<never>((_, reject) => {\n setTimeout(() => {\n reject(new TimeoutError('The operation timed out', timeout));\n }, timeout);\n });\n\n return Promise.race([promise, timeoutPromise]);\n}\n"],"mappings":"A,4KAKA,IAAMS,EAAkB,IAgDxB,SAAgBC,EACd,EAC8B,CAC9B,GAAM,CACJ,KACA,UAAUD,EACV,mBAAmB,eACnB,qBAAqB,GACrB,YACA,WACEE,EAEE,CAACC,EAAWC,IAAA,EAAgBb,EAAAA,SAAAA,CAAS,EAAK,EAC1C,CAACc,EAAOC,IAAA,EAAYf,EAAAA,SAAAA,CAA0B,IAAI,EAClD,CAACgB,EAAMC,IAAA,EAAWjB,EAAAA,SAAAA,CAAwB,IAAA,EAAS,EAEnD,CAAE,aAAcC,EAAAA,SAAS,EACzBiB,GAAA,EAAqBhB,EAAAA,OAAAA,CAA+B,IAAI,EACxDiB,GAAA,EAAejB,EAAAA,OAAAA,CAAO,EAAI,EA4DhC,OAzDA,EAAAM,EAAA,UAAA,MACE,EAAa,QAAU,OACV,CACX,EAAa,QAAU,GACvBU,EAAmB,SAAS,MAAM,CACpC,GACC,CAAC,CAAC,EAmDE,CACL,SAAA,EAlDcf,EAAAA,YAAAA,CAAY,SAAoC,CAE9De,EAAmB,SAAS,MAAM,EAClC,EAAmB,QAAU,IAAI,gBAEjCL,EAAa,EAAI,EACjBE,EAAS,IAAI,EAGb,IAAMK,EAAiB,IAAI,SAAgB,EAAG,IAAW,CACvD,eAAiB,CACfC,EAAO,IAAIjB,EAAAA,aAAa,0BAA2BkB,CAAO,CAAC,CAC7D,EAAGA,CAAO,CACZ,CAAC,EAED,GAAI,CAEF,IAAMC,EAAS,MAAM,QAAQ,KAAK,CAACC,EAAG,EAAGJ,CAAc,CAAC,EAQxD,OANID,EAAa,UACfF,EAAQM,CAAM,EACdV,EAAa,EAAK,EAClBY,IAAYF,CAAM,GAGbA,CACT,OAASG,EAAK,CACZ,GAAI,CAACP,EAAa,QAAS,OAE3B,IAAMQ,EAAWtB,EAAAA,SAAS,KAAKqB,EAAKE,CAAgB,EACpDb,EAASY,CAAQ,EACjBd,EAAa,EAAK,EAEdgB,GACFC,EAAUH,CAAQ,EAGpBI,IAAUJ,CAAQ,EAClB,MACF,CACF,EAAG,CAACH,EAAIF,EAASM,EAAkBC,EAAoBC,EAAWL,EAAWM,CAAO,CAUlF,EACA,YACA,QACA,OACA,OAAA,EAZY5B,EAAAA,YAAAA,KAAkB,CAC9BU,EAAa,EAAK,EAClBE,EAAS,IAAI,EACbE,EAAQ,IAAA,EAAS,EACjBC,EAAmB,SAAS,MAAM,CACpC,EAAG,CAAC,CAOF,CACF,CACF,CAMA,eAAsBc,EACpB,EACA,EAAkBvB,EACN,CACZ,IAAMW,EAAiB,IAAI,SAAgB,EAAG,IAAW,CACvD,eAAiB,CACfC,EAAO,IAAIjB,EAAAA,aAAa,0BAA2BkB,CAAO,CAAC,CAC7D,EAAGA,CAAO,CACZ,CAAC,EAED,OAAO,QAAQ,KAAK,CAACW,EAASb,CAAc,CAAC,CAC/C,C"}
1
+ {"version":3,"file":"useAsyncWithTimeout.cjs","names":["useState","useError","useRef","useCallback","TimeoutError","AppError","require_tools_lib_error_AppError","require_tools_lib_hooks_useError","react","DEFAULT_TIMEOUT","useAsyncWithTimeout","options","isLoading","setIsLoading","error","setError","data","setData","abortControllerRef","isMountedRef","timeoutPromise","reject","timeout","result","fn","onSuccess","err","appError","errorDisplayMode","showErrorOnFailure","showError","onError","withTimeout","promise"],"sources":["../../../../src/tools/lib/hooks/useAsyncWithTimeout.ts"],"sourcesContent":["import { useState, useCallback, useRef, useEffect } from 'react';\nimport { AppError, TimeoutError, ErrorDisplayMode } from \"../error\";\nimport { useError } from './useError';\n\n/** Default timeout delay in milliseconds (30 seconds). */\nconst DEFAULT_TIMEOUT = 30000;\n\n/**\n * Host asynchronous operation and timeout/presentation settings.\n * @typeParam T - Operation result shape.\n * @see useAsyncWithTimeout for usage.\n */\nexport interface UseAsyncWithTimeoutOptions<T> {\n /**\n * Host operation invoked with no abort signal.\n * @returns Promise resolving the operation result; rejection is normalized by execute.\n */\n fn: () => Promise<T>;\n /**\n * Timeout in milliseconds; defaults to 30000. Does not cancel underlying work.\n */\n timeout?: number;\n /**\n * Display hint for newly wrapped errors; defaults to notification.\n */\n errorDisplayMode?: ErrorDisplayMode;\n /**\n * Add normalized failure to the shared error store; defaults to true.\n */\n showErrorOnFailure?: boolean;\n /**\n * Optional synchronous callback after a mounted success; errors are handled as execution failures.\n * @param data - Resolved operation result.\n * @returns No value.\n */\n onSuccess?: (data: T) => void;\n /**\n * Optional synchronous callback after mounted failure normalization/presentation.\n * @param error - Normalized AppError.\n * @returns No value; thrown callback errors reject execute.\n */\n onError?: (error: AppError) => void;\n}\n\n/**\n * Last result/status with explicit execute/reset controls.\n * @typeParam T - Host operation result shape.\n * @see useAsyncWithTimeout for usage.\n */\nexport interface UseAsyncWithTimeoutReturn<T> {\n /**\n * Race a new host operation against a timeout.\n * @returns Host result on success, or undefined on handled failure/unmounted rejection.\n * @throws Errors from onError/error-presentation callbacks may reject.\n */\n execute: () => Promise<T | undefined>;\n /**\n * Whether execute last set pending state; overlapping completions can overwrite this flag.\n */\n isLoading: boolean;\n /**\n * Most recent mounted execution failure or null.\n */\n error: AppError | null;\n /**\n * Last mounted success, initially undefined; errors do not clear prior data.\n */\n data: T | undefined;\n /**\n * Clear displayed loading/error/data state.\n * @returns No value; in-flight host work can still finish and update state on this mount.\n */\n reset: () => void;\n}\n\n/**\n * Runs explicit asynchronous work against a display timeout and tracks the last completion.\n * @typeParam T - Host operation result shape.\n * @param options - Host operation, timeout, presentation settings and synchronous outcome callbacks.\n * @returns Execute/reset controls and displayed loading, result and normalized error state.\n * @remarks Requires React and the shared error store; no context or styles are required by\n * the hook. The internal AbortController is never passed to fn: new executes, reset and\n * unmount do not cancel host work. Unmount suppresses state/callback updates; overlapping\n * operations on one mount can complete out of order. Timeout timers are not cleared on\n * settlement. onSuccess errors enter failure handling; onError errors may reject execute.\n * To display errors, mount a host renderer for useError's shared store.\n * @example\n * ```tsx\n * import { useAsyncWithTimeout } from '@alneas/appkit-react/tools/core';\n * export function Load({ load }: { load: () => Promise<string> }) {\n * const task = useAsyncWithTimeout({ fn: load, timeout: 10000 });\n * return <button disabled={task.isLoading} onClick={() => { void task.execute(); }}>{task.data ?? 'Load'}</button>;\n * }\n * ```\n */\nexport function useAsyncWithTimeout<T>(\n options: UseAsyncWithTimeoutOptions<T>,\n): UseAsyncWithTimeoutReturn<T> {\n const {\n fn,\n timeout = DEFAULT_TIMEOUT,\n errorDisplayMode = 'notification',\n showErrorOnFailure = true,\n onSuccess,\n onError,\n } = options;\n\n const [isLoading, setIsLoading] = useState(false);\n const [error, setError] = useState<AppError | null>(null);\n const [data, setData] = useState<T | undefined>(undefined);\n\n const { showError } = useError();\n const abortControllerRef = useRef<AbortController | null>(null);\n const isMountedRef = useRef(true);\n\n // コンポーネントのアンマウント時にクリーンアップ\n useEffect(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n abortControllerRef.current?.abort();\n };\n }, []);\n\n const execute = useCallback(async (): Promise<T | undefined> => {\n // 既存のリクエストをキャンセル\n abortControllerRef.current?.abort();\n abortControllerRef.current = new AbortController();\n\n setIsLoading(true);\n setError(null);\n\n // タイムアウト用のPromise\n const timeoutPromise = new Promise<never>((_, reject) => {\n setTimeout(() => {\n reject(new TimeoutError('The operation timed out', timeout));\n }, timeout);\n });\n\n try {\n // fetchとtimeoutのレース\n const result = await Promise.race([fn(), timeoutPromise]);\n\n if (isMountedRef.current) {\n setData(result);\n setIsLoading(false);\n onSuccess?.(result);\n }\n\n return result;\n } catch (err) {\n if (!isMountedRef.current) return undefined;\n\n const appError = AppError.from(err, errorDisplayMode);\n setError(appError);\n setIsLoading(false);\n\n if (showErrorOnFailure) {\n showError(appError);\n }\n\n onError?.(appError);\n return undefined;\n }\n }, [fn, timeout, errorDisplayMode, showErrorOnFailure, showError, onSuccess, onError]);\n\n const reset = useCallback(() => {\n setIsLoading(false);\n setError(null);\n setData(undefined);\n abortControllerRef.current?.abort();\n }, []);\n\n return {\n execute,\n isLoading,\n error,\n data,\n reset,\n };\n}\n\n/**\n * Races an existing promise against a timeout rejection without cancelling either task.\n * @typeParam T - Promise result shape.\n * @param promise - Already-started host operation.\n * @param timeout - Delay in milliseconds before TimeoutError rejection; defaults to 30000.\n * @returns Original result if it wins the race.\n * @throws Rejects with the original rejection or TimeoutError, whichever settles first.\n * @remarks No React context is required. The timer is not cleared when the host promise\n * settles; timeout does not abort the operation or roll back its effects.\n * @example\n * ```ts\n * import { withTimeout } from '@alneas/appkit-react/tools/core';\n * export function limited<T>(operation: Promise<T>) { return withTimeout(operation, 5000); }\n * ```\n */\nexport async function withTimeout<T>(\n promise: Promise<T>,\n timeout: number = DEFAULT_TIMEOUT,\n): Promise<T> {\n const timeoutPromise = new Promise<never>((_, reject) => {\n setTimeout(() => {\n reject(new TimeoutError('The operation timed out', timeout));\n }, timeout);\n });\n\n return Promise.race([promise, timeoutPromise]);\n}\n"],"mappings":"A,4KAKA,IAAMS,EAAkB,IA0FxB,SAAgBC,EACd,EAC8B,CAC9B,GAAM,CACJ,KACA,UAAUD,EACV,mBAAmB,eACnB,qBAAqB,GACrB,YACA,WACEE,EAEE,CAACC,EAAWC,IAAA,EAAgBb,EAAAA,SAAAA,CAAS,EAAK,EAC1C,CAACc,EAAOC,IAAA,EAAYf,EAAAA,SAAAA,CAA0B,IAAI,EAClD,CAACgB,EAAMC,IAAA,EAAWjB,EAAAA,SAAAA,CAAwB,IAAA,EAAS,EAEnD,CAAE,aAAcC,EAAAA,SAAS,EACzBiB,GAAA,EAAqBhB,EAAAA,OAAAA,CAA+B,IAAI,EACxDiB,GAAA,EAAejB,EAAAA,OAAAA,CAAO,EAAI,EA4DhC,OAzDA,EAAAM,EAAA,UAAA,MACE,EAAa,QAAU,OACV,CACX,EAAa,QAAU,GACvBU,EAAmB,SAAS,MAAM,CACpC,GACC,CAAC,CAAC,EAmDE,CACL,SAAA,EAlDcf,EAAAA,YAAAA,CAAY,SAAoC,CAE9De,EAAmB,SAAS,MAAM,EAClC,EAAmB,QAAU,IAAI,gBAEjCL,EAAa,EAAI,EACjBE,EAAS,IAAI,EAGb,IAAMK,EAAiB,IAAI,SAAgB,EAAG,IAAW,CACvD,eAAiB,CACfC,EAAO,IAAIjB,EAAAA,aAAa,0BAA2BkB,CAAO,CAAC,CAC7D,EAAGA,CAAO,CACZ,CAAC,EAED,GAAI,CAEF,IAAMC,EAAS,MAAM,QAAQ,KAAK,CAACC,EAAG,EAAGJ,CAAc,CAAC,EAQxD,OANID,EAAa,UACfF,EAAQM,CAAM,EACdV,EAAa,EAAK,EAClBY,IAAYF,CAAM,GAGbA,CACT,OAASG,EAAK,CACZ,GAAI,CAACP,EAAa,QAAS,OAE3B,IAAMQ,EAAWtB,EAAAA,SAAS,KAAKqB,EAAKE,CAAgB,EACpDb,EAASY,CAAQ,EACjBd,EAAa,EAAK,EAEdgB,GACFC,EAAUH,CAAQ,EAGpBI,IAAUJ,CAAQ,EAClB,MACF,CACF,EAAG,CAACH,EAAIF,EAASM,EAAkBC,EAAoBC,EAAWL,EAAWM,CAAO,CAUlF,EACA,YACA,QACA,OACA,OAAA,EAZY5B,EAAAA,YAAAA,KAAkB,CAC9BU,EAAa,EAAK,EAClBE,EAAS,IAAI,EACbE,EAAQ,IAAA,EAAS,EACjBC,EAAmB,SAAS,MAAM,CACpC,EAAG,CAAC,CAOF,CACF,CACF,CAiBA,eAAsBc,EACpB,EACA,EAAkBvB,EACN,CACZ,IAAMW,EAAiB,IAAI,SAAgB,EAAG,IAAW,CACvD,eAAiB,CACfC,EAAO,IAAIjB,EAAAA,aAAa,0BAA2BkB,CAAO,CAAC,CAC7D,EAAGA,CAAO,CACZ,CAAC,EAED,OAAO,QAAQ,KAAK,CAACW,EAASb,CAAc,CAAC,CAC/C,C"}
@@ -1,51 +1,104 @@
1
1
  import { AppError, ErrorDisplayMode } from '../error/index.cjs';
2
+ /**
3
+ * Host asynchronous operation and timeout/presentation settings.
4
+ * @typeParam T - Operation result shape.
5
+ * @see useAsyncWithTimeout for usage.
6
+ */
2
7
  export interface UseAsyncWithTimeoutOptions<T> {
3
- /** 実行する非同期関数 */
8
+ /**
9
+ * Host operation invoked with no abort signal.
10
+ * @returns Promise resolving the operation result; rejection is normalized by execute.
11
+ */
4
12
  fn: () => Promise<T>;
5
- /** タイムアウト時間 (ミリ秒)。デフォルト: 30000 */
13
+ /**
14
+ * Timeout in milliseconds; defaults to 30000. Does not cancel underlying work.
15
+ */
6
16
  timeout?: number;
7
- /** エラー発生時の表示モード */
17
+ /**
18
+ * Display hint for newly wrapped errors; defaults to notification.
19
+ */
8
20
  errorDisplayMode?: ErrorDisplayMode;
9
- /** エラー発生時に自動で表示するか。デフォルト: true */
21
+ /**
22
+ * Add normalized failure to the shared error store; defaults to true.
23
+ */
10
24
  showErrorOnFailure?: boolean;
11
- /** 成功時のコールバック */
25
+ /**
26
+ * Optional synchronous callback after a mounted success; errors are handled as execution failures.
27
+ * @param data - Resolved operation result.
28
+ * @returns No value.
29
+ */
12
30
  onSuccess?: (data: T) => void;
13
- /** エラー時のコールバック */
31
+ /**
32
+ * Optional synchronous callback after mounted failure normalization/presentation.
33
+ * @param error - Normalized AppError.
34
+ * @returns No value; thrown callback errors reject execute.
35
+ */
14
36
  onError?: (error: AppError) => void;
15
37
  }
38
+ /**
39
+ * Last result/status with explicit execute/reset controls.
40
+ * @typeParam T - Host operation result shape.
41
+ * @see useAsyncWithTimeout for usage.
42
+ */
16
43
  export interface UseAsyncWithTimeoutReturn<T> {
17
- /** 非同期処理を実行 */
44
+ /**
45
+ * Race a new host operation against a timeout.
46
+ * @returns Host result on success, or undefined on handled failure/unmounted rejection.
47
+ * @throws Errors from onError/error-presentation callbacks may reject.
48
+ */
18
49
  execute: () => Promise<T | undefined>;
19
- /** 現在読み込み中か */
50
+ /**
51
+ * Whether execute last set pending state; overlapping completions can overwrite this flag.
52
+ */
20
53
  isLoading: boolean;
21
- /** 最後に発生したエラー */
54
+ /**
55
+ * Most recent mounted execution failure or null.
56
+ */
22
57
  error: AppError | null;
23
- /** 成功したデータ */
58
+ /**
59
+ * Last mounted success, initially undefined; errors do not clear prior data.
60
+ */
24
61
  data: T | undefined;
25
- /** エラー状態をリセット */
62
+ /**
63
+ * Clear displayed loading/error/data state.
64
+ * @returns No value; in-flight host work can still finish and update state on this mount.
65
+ */
26
66
  reset: () => void;
27
67
  }
28
68
  /**
29
- * タイムアウト付き非同期処理フック
30
- *
69
+ * Runs explicit asynchronous work against a display timeout and tracks the last completion.
70
+ * @typeParam T - Host operation result shape.
71
+ * @param options - Host operation, timeout, presentation settings and synchronous outcome callbacks.
72
+ * @returns Execute/reset controls and displayed loading, result and normalized error state.
73
+ * @remarks Requires React and the shared error store; no context or styles are required by
74
+ * the hook. The internal AbortController is never passed to fn: new executes, reset and
75
+ * unmount do not cancel host work. Unmount suppresses state/callback updates; overlapping
76
+ * operations on one mount can complete out of order. Timeout timers are not cleared on
77
+ * settlement. onSuccess errors enter failure handling; onError errors may reject execute.
78
+ * To display errors, mount a host renderer for useError's shared store.
31
79
  * @example
32
80
  * ```tsx
33
- * const { execute, isLoading, error, data } = useAsyncWithTimeout({
34
- * fn: async () => await api.fetchData(),
35
- * timeout: 10000, // 10秒
36
- * errorDisplayMode: 'notification',
37
- * onSuccess: (data) => console.log('Success:', data),
38
- * });
39
- *
40
- * // ボタンクリックで実行
41
- * <button onClick={execute} disabled={isLoading}>
42
- * {isLoading ? 'Loading...' : 'Fetch Data'}
43
- * </button>
81
+ * import { useAsyncWithTimeout } from '@alneas/appkit-react/tools/core';
82
+ * export function Load({ load }: { load: () => Promise<string> }) {
83
+ * const task = useAsyncWithTimeout({ fn: load, timeout: 10000 });
84
+ * return <button disabled={task.isLoading} onClick={() => { void task.execute(); }}>{task.data ?? 'Load'}</button>;
85
+ * }
44
86
  * ```
45
87
  */
46
88
  export declare function useAsyncWithTimeout<T>(options: UseAsyncWithTimeoutOptions<T>): UseAsyncWithTimeoutReturn<T>;
47
89
  /**
48
- * タイムアウト付きで Promise を実行するユーティリティ関数
49
- * (フック外で使用する場合)
90
+ * Races an existing promise against a timeout rejection without cancelling either task.
91
+ * @typeParam T - Promise result shape.
92
+ * @param promise - Already-started host operation.
93
+ * @param timeout - Delay in milliseconds before TimeoutError rejection; defaults to 30000.
94
+ * @returns Original result if it wins the race.
95
+ * @throws Rejects with the original rejection or TimeoutError, whichever settles first.
96
+ * @remarks No React context is required. The timer is not cleared when the host promise
97
+ * settles; timeout does not abort the operation or roll back its effects.
98
+ * @example
99
+ * ```ts
100
+ * import { withTimeout } from '@alneas/appkit-react/tools/core';
101
+ * export function limited<T>(operation: Promise<T>) { return withTimeout(operation, 5000); }
102
+ * ```
50
103
  */
51
104
  export declare function withTimeout<T>(promise: Promise<T>, timeout?: number): Promise<T>;