@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,45 +1,138 @@
1
1
  import { AuthAdapter, User } from './types.cjs';
2
+ /**
3
+ * Current display authentication state; see useAuth for provider setup.
4
+ *
5
+ * @see useAuth for the canonical usage example.
6
+ */
2
7
  export interface AuthState {
8
+ /**
9
+ * Current display user or null; optimistic display is not proof of a verified session.
10
+ */
3
11
  user: User | null;
12
+ /**
13
+ * True during initial hydration/query loading or tracked login/register/logout/OAuth work.
14
+ */
4
15
  isLoading: boolean;
16
+ /**
17
+ * Last tracked action error or session-query error; null when none is present.
18
+ */
5
19
  error: Error | null;
6
20
  }
7
21
  /**
8
- * 認証コンテキストの値
22
+ * Authentication state and adapter-backed actions exposed by AuthProvider.
9
23
  *
10
- * AuthProvider 配下のコンポーネントで useAuth() を通じて取得できます。
11
- * アダプターが対応していないオプショナルメソッドは undefined になります。
24
+ * @remarks Optional adapter capabilities are undefined when unsupported.
25
+ *
26
+ * @see useAuth for consumption; see AuthAdapter for argument/result contracts.
12
27
  */
13
28
  export interface AuthContextValue extends AuthState {
14
- /** セッションが裏で再検証され、確定した状態か。`optimisticSession` 無効時は常に true */
29
+ /**
30
+ * Whether a session query has fetched without placeholder data; false before verification even when optimistic caching is disabled.
31
+ */
15
32
  isSessionVerified?: boolean;
16
- /** 再検証によって「未ログイン」が確定しているか。`optimisticSession` 無効時は false */
33
+ /**
34
+ * Whether backend verification completed with user null; independent of whether optimistic caching is enabled.
35
+ */
17
36
  isLoggedOutKnown?: boolean;
18
- /** 楽観セッションキャッシュを利用中か */
37
+ /**
38
+ * Whether the provider enabled optimistic display caching.
39
+ */
19
40
  optimisticSession?: boolean;
20
- /** メール/パスワードでログイン */
41
+ /**
42
+ * Sign in through the adapter; see AuthAdapter.login.
43
+ *
44
+ * @param email - Account email.
45
+ *
46
+ * @param password - Account password.
47
+ *
48
+ * @returns Signed-in user; adapter failures reject.
49
+ */
21
50
  login: AuthAdapter['login'];
22
- /** 新規ユーザー登録 */
51
+ /**
52
+ * Register through the adapter; see AuthAdapter.register.
53
+ *
54
+ * @param email - New account email.
55
+ *
56
+ * @param password - New account password.
57
+ *
58
+ * @param data - Optional display name.
59
+ *
60
+ * @returns Registered user; adapter failures reject.
61
+ */
23
62
  register: AuthAdapter['register'];
24
- /** ログアウト */
63
+ /**
64
+ * Sign out through the adapter; see AuthAdapter.logout.
65
+ *
66
+ * @returns No value after adapter sign-out; adapter failures reject.
67
+ */
25
68
  logout: AuthAdapter['logout'];
26
- /** パスワードリセットメール送信 */
69
+ /**
70
+ * Request a reset through the adapter; see AuthAdapter.resetPassword.
71
+ *
72
+ * @param email - Account email.
73
+ *
74
+ * @returns No value after the adapter accepts the reset request; failures reject.
75
+ */
27
76
  resetPassword: AuthAdapter['resetPassword'];
28
- /** メールアドレス変更 */
77
+ /**
78
+ * Change email through the adapter; see AuthAdapter.updateEmail.
79
+ *
80
+ * @param email - Replacement email.
81
+ *
82
+ * @returns No value after adapter completion; failures reject.
83
+ */
29
84
  updateEmail: AuthAdapter['updateEmail'];
30
- /** パスワード変更 */
85
+ /**
86
+ * Change password through the adapter; see AuthAdapter.updatePassword.
87
+ *
88
+ * @param password - Replacement password.
89
+ *
90
+ * @returns No value after adapter completion; failures reject.
91
+ */
31
92
  updatePassword: AuthAdapter['updatePassword'];
32
- /** 再認証(パスワード/メール変更前に必要、アダプター対応時のみ) */
93
+ /**
94
+ * Optional adapter reauthentication capability; see AuthAdapter.reauthenticate.
95
+ */
33
96
  reauthenticate?: AuthAdapter['reauthenticate'];
34
- /** メールアドレス確認メール送信(アダプター対応時のみ) */
97
+ /**
98
+ * Optional verification-email capability; see AuthAdapter.sendVerificationEmail.
99
+ */
35
100
  sendVerificationEmail?: AuthAdapter['sendVerificationEmail'];
36
- /** 認証トークン取得(API 連携用、アダプター対応時のみ) */
101
+ /**
102
+ * Optional token capability; see AuthAdapter.getToken.
103
+ */
37
104
  getToken?: AuthAdapter['getToken'];
38
- /** OAuth プロバイダーでログイン(アダプター対応時のみ) */
105
+ /**
106
+ * Optional OAuth capability; see AuthAdapter.loginWithProvider.
107
+ */
39
108
  loginWithProvider?: AuthAdapter['loginWithProvider'];
40
109
  }
110
+ /**
111
+ * Nullable React authentication context; AuthProvider owns its populated value.
112
+ *
113
+ * @see useAuth for supported consumption and missing-provider checks.
114
+ */
41
115
  export declare const AuthContext: import('react').Context<AuthContextValue | null>;
42
116
  /**
43
- * 現在の認証状態およびログイン・ログアウト等の認証操作関数を提供するReactフック。
117
+ * Reads authentication state and adapter actions from the nearest AuthProvider.
118
+ *
119
+ * @returns Current display state and provider actions; optional capabilities can be undefined.
120
+ *
121
+ * @throws Error when used outside AuthProvider.
122
+ *
123
+ * @remarks Requires AuthProvider inside QueryClientProvider; no CSS is required by the hook.
124
+ * Actions can reject with adapter errors. Backend authorization remains host-owned.
125
+ *
126
+ * @example
127
+ * ```tsx
128
+ * import type { ReactNode } from 'react';
129
+ * import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
130
+ * import { AuthProvider, useAuth, type AuthAdapter } from '@alneas/appkit-react/tools/auth';
131
+ *
132
+ * function Content() { const { user } = useAuth(); return <span>{user?.email ?? 'Signed out'}</span>; }
133
+ * export function Example({ adapter, queryClient }: { adapter: AuthAdapter; queryClient: QueryClient }) {
134
+ * return <QueryClientProvider client={queryClient}><AuthProvider adapter={adapter}><Content /></AuthProvider></QueryClientProvider>;
135
+ * }
136
+ * ```
44
137
  */
45
138
  export declare const useAuth: () => AuthContextValue;
@@ -1,45 +1,138 @@
1
1
  import { AuthAdapter, User } from './types.js';
2
+ /**
3
+ * Current display authentication state; see useAuth for provider setup.
4
+ *
5
+ * @see useAuth for the canonical usage example.
6
+ */
2
7
  export interface AuthState {
8
+ /**
9
+ * Current display user or null; optimistic display is not proof of a verified session.
10
+ */
3
11
  user: User | null;
12
+ /**
13
+ * True during initial hydration/query loading or tracked login/register/logout/OAuth work.
14
+ */
4
15
  isLoading: boolean;
16
+ /**
17
+ * Last tracked action error or session-query error; null when none is present.
18
+ */
5
19
  error: Error | null;
6
20
  }
7
21
  /**
8
- * 認証コンテキストの値
22
+ * Authentication state and adapter-backed actions exposed by AuthProvider.
9
23
  *
10
- * AuthProvider 配下のコンポーネントで useAuth() を通じて取得できます。
11
- * アダプターが対応していないオプショナルメソッドは undefined になります。
24
+ * @remarks Optional adapter capabilities are undefined when unsupported.
25
+ *
26
+ * @see useAuth for consumption; see AuthAdapter for argument/result contracts.
12
27
  */
13
28
  export interface AuthContextValue extends AuthState {
14
- /** セッションが裏で再検証され、確定した状態か。`optimisticSession` 無効時は常に true */
29
+ /**
30
+ * Whether a session query has fetched without placeholder data; false before verification even when optimistic caching is disabled.
31
+ */
15
32
  isSessionVerified?: boolean;
16
- /** 再検証によって「未ログイン」が確定しているか。`optimisticSession` 無効時は false */
33
+ /**
34
+ * Whether backend verification completed with user null; independent of whether optimistic caching is enabled.
35
+ */
17
36
  isLoggedOutKnown?: boolean;
18
- /** 楽観セッションキャッシュを利用中か */
37
+ /**
38
+ * Whether the provider enabled optimistic display caching.
39
+ */
19
40
  optimisticSession?: boolean;
20
- /** メール/パスワードでログイン */
41
+ /**
42
+ * Sign in through the adapter; see AuthAdapter.login.
43
+ *
44
+ * @param email - Account email.
45
+ *
46
+ * @param password - Account password.
47
+ *
48
+ * @returns Signed-in user; adapter failures reject.
49
+ */
21
50
  login: AuthAdapter['login'];
22
- /** 新規ユーザー登録 */
51
+ /**
52
+ * Register through the adapter; see AuthAdapter.register.
53
+ *
54
+ * @param email - New account email.
55
+ *
56
+ * @param password - New account password.
57
+ *
58
+ * @param data - Optional display name.
59
+ *
60
+ * @returns Registered user; adapter failures reject.
61
+ */
23
62
  register: AuthAdapter['register'];
24
- /** ログアウト */
63
+ /**
64
+ * Sign out through the adapter; see AuthAdapter.logout.
65
+ *
66
+ * @returns No value after adapter sign-out; adapter failures reject.
67
+ */
25
68
  logout: AuthAdapter['logout'];
26
- /** パスワードリセットメール送信 */
69
+ /**
70
+ * Request a reset through the adapter; see AuthAdapter.resetPassword.
71
+ *
72
+ * @param email - Account email.
73
+ *
74
+ * @returns No value after the adapter accepts the reset request; failures reject.
75
+ */
27
76
  resetPassword: AuthAdapter['resetPassword'];
28
- /** メールアドレス変更 */
77
+ /**
78
+ * Change email through the adapter; see AuthAdapter.updateEmail.
79
+ *
80
+ * @param email - Replacement email.
81
+ *
82
+ * @returns No value after adapter completion; failures reject.
83
+ */
29
84
  updateEmail: AuthAdapter['updateEmail'];
30
- /** パスワード変更 */
85
+ /**
86
+ * Change password through the adapter; see AuthAdapter.updatePassword.
87
+ *
88
+ * @param password - Replacement password.
89
+ *
90
+ * @returns No value after adapter completion; failures reject.
91
+ */
31
92
  updatePassword: AuthAdapter['updatePassword'];
32
- /** 再認証(パスワード/メール変更前に必要、アダプター対応時のみ) */
93
+ /**
94
+ * Optional adapter reauthentication capability; see AuthAdapter.reauthenticate.
95
+ */
33
96
  reauthenticate?: AuthAdapter['reauthenticate'];
34
- /** メールアドレス確認メール送信(アダプター対応時のみ) */
97
+ /**
98
+ * Optional verification-email capability; see AuthAdapter.sendVerificationEmail.
99
+ */
35
100
  sendVerificationEmail?: AuthAdapter['sendVerificationEmail'];
36
- /** 認証トークン取得(API 連携用、アダプター対応時のみ) */
101
+ /**
102
+ * Optional token capability; see AuthAdapter.getToken.
103
+ */
37
104
  getToken?: AuthAdapter['getToken'];
38
- /** OAuth プロバイダーでログイン(アダプター対応時のみ) */
105
+ /**
106
+ * Optional OAuth capability; see AuthAdapter.loginWithProvider.
107
+ */
39
108
  loginWithProvider?: AuthAdapter['loginWithProvider'];
40
109
  }
110
+ /**
111
+ * Nullable React authentication context; AuthProvider owns its populated value.
112
+ *
113
+ * @see useAuth for supported consumption and missing-provider checks.
114
+ */
41
115
  export declare const AuthContext: import('react').Context<AuthContextValue | null>;
42
116
  /**
43
- * 現在の認証状態およびログイン・ログアウト等の認証操作関数を提供するReactフック。
117
+ * Reads authentication state and adapter actions from the nearest AuthProvider.
118
+ *
119
+ * @returns Current display state and provider actions; optional capabilities can be undefined.
120
+ *
121
+ * @throws Error when used outside AuthProvider.
122
+ *
123
+ * @remarks Requires AuthProvider inside QueryClientProvider; no CSS is required by the hook.
124
+ * Actions can reject with adapter errors. Backend authorization remains host-owned.
125
+ *
126
+ * @example
127
+ * ```tsx
128
+ * import type { ReactNode } from 'react';
129
+ * import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
130
+ * import { AuthProvider, useAuth, type AuthAdapter } from '@alneas/appkit-react/tools/auth';
131
+ *
132
+ * function Content() { const { user } = useAuth(); return <span>{user?.email ?? 'Signed out'}</span>; }
133
+ * export function Example({ adapter, queryClient }: { adapter: AuthAdapter; queryClient: QueryClient }) {
134
+ * return <QueryClientProvider client={queryClient}><AuthProvider adapter={adapter}><Content /></AuthProvider></QueryClientProvider>;
135
+ * }
136
+ * ```
44
137
  */
45
138
  export declare const useAuth: () => AuthContextValue;
@@ -1 +1 @@
1
- {"version":3,"file":"useAuth.js","names":["AuthContext","createContext","useAuth","context","useContext"],"sources":["../../../../src/tools/components/auth/useAuth.ts"],"sourcesContent":["import { createContext, useContext } from 'react';\nimport type { AuthAdapter, User } from './types';\n\nexport interface AuthState {\n user: User | null;\n isLoading: boolean;\n error: Error | null;\n}\n\n/**\n * 認証コンテキストの値\n *\n * AuthProvider 配下のコンポーネントで useAuth() を通じて取得できます。\n * アダプターが対応していないオプショナルメソッドは undefined になります。\n */\nexport interface AuthContextValue extends AuthState {\n /** セッションが裏で再検証され、確定した状態か。`optimisticSession` 無効時は常に true */\n isSessionVerified?: boolean;\n /** 再検証によって「未ログイン」が確定しているか。`optimisticSession` 無効時は false */\n isLoggedOutKnown?: boolean;\n /** 楽観セッションキャッシュを利用中か */\n optimisticSession?: boolean;\n /** メール/パスワードでログイン */\n login: AuthAdapter['login'];\n /** 新規ユーザー登録 */\n register: AuthAdapter['register'];\n /** ログアウト */\n logout: AuthAdapter['logout'];\n /** パスワードリセットメール送信 */\n resetPassword: AuthAdapter['resetPassword'];\n /** メールアドレス変更 */\n updateEmail: AuthAdapter['updateEmail'];\n /** パスワード変更 */\n updatePassword: AuthAdapter['updatePassword'];\n /** 再認証(パスワード/メール変更前に必要、アダプター対応時のみ) */\n reauthenticate?: AuthAdapter['reauthenticate'];\n /** メールアドレス確認メール送信(アダプター対応時のみ) */\n sendVerificationEmail?: AuthAdapter['sendVerificationEmail'];\n /** 認証トークン取得(API 連携用、アダプター対応時のみ) */\n getToken?: AuthAdapter['getToken'];\n /** OAuth プロバイダーでログイン(アダプター対応時のみ) */\n loginWithProvider?: AuthAdapter['loginWithProvider'];\n}\n\nexport const AuthContext = createContext<AuthContextValue | null>(null);\n\n/**\n * 現在の認証状態およびログイン・ログアウト等の認証操作関数を提供するReactフック。\n */\nexport const useAuth = () => {\n const context = useContext(AuthContext);\n if (!context) {\n throw new Error('useAuth must be used within an AuthProvider');\n }\n return context;\n};\n"],"mappings":";;;AA4CA,IAAaA,IAAcC,EAAuC,IAAI,GAKzDC,UAAgB;CAC3B,IAAMC,IAAUC,EAAWJ,CAAW;CACtC,IAAI,CAACG,GACH,MAAU,MAAM,6CAA6C;CAE/D,OAAOA;AACT"}
1
+ {"version":3,"file":"useAuth.js","names":["AuthContext","createContext","useAuth","context","useContext"],"sources":["../../../../src/tools/components/auth/useAuth.ts"],"sourcesContent":["import { createContext, useContext } from 'react';\nimport type { AuthAdapter, User } from './types';\n\n/**\n * Current display authentication state; see useAuth for provider setup.\n *\n * @see useAuth for the canonical usage example.\n */\nexport interface AuthState {\n /**\n * Current display user or null; optimistic display is not proof of a verified session.\n */\n user: User | null;\n /**\n * True during initial hydration/query loading or tracked login/register/logout/OAuth work.\n */\n isLoading: boolean;\n /**\n * Last tracked action error or session-query error; null when none is present.\n */\n error: Error | null;\n}\n\n/**\n * Authentication state and adapter-backed actions exposed by AuthProvider.\n *\n * @remarks Optional adapter capabilities are undefined when unsupported.\n *\n * @see useAuth for consumption; see AuthAdapter for argument/result contracts.\n */\nexport interface AuthContextValue extends AuthState {\n /**\n * Whether a session query has fetched without placeholder data; false before verification even when optimistic caching is disabled.\n */\n isSessionVerified?: boolean;\n /**\n * Whether backend verification completed with user null; independent of whether optimistic caching is enabled.\n */\n isLoggedOutKnown?: boolean;\n /**\n * Whether the provider enabled optimistic display caching.\n */\n optimisticSession?: boolean;\n /**\n * Sign in through the adapter; see AuthAdapter.login.\n *\n * @param email - Account email.\n *\n * @param password - Account password.\n *\n * @returns Signed-in user; adapter failures reject.\n */\n login: AuthAdapter['login'];\n /**\n * Register through the adapter; see AuthAdapter.register.\n *\n * @param email - New account email.\n *\n * @param password - New account password.\n *\n * @param data - Optional display name.\n *\n * @returns Registered user; adapter failures reject.\n */\n register: AuthAdapter['register'];\n /**\n * Sign out through the adapter; see AuthAdapter.logout.\n *\n * @returns No value after adapter sign-out; adapter failures reject.\n */\n logout: AuthAdapter['logout'];\n /**\n * Request a reset through the adapter; see AuthAdapter.resetPassword.\n *\n * @param email - Account email.\n *\n * @returns No value after the adapter accepts the reset request; failures reject.\n */\n resetPassword: AuthAdapter['resetPassword'];\n /**\n * Change email through the adapter; see AuthAdapter.updateEmail.\n *\n * @param email - Replacement email.\n *\n * @returns No value after adapter completion; failures reject.\n */\n updateEmail: AuthAdapter['updateEmail'];\n /**\n * Change password through the adapter; see AuthAdapter.updatePassword.\n *\n * @param password - Replacement password.\n *\n * @returns No value after adapter completion; failures reject.\n */\n updatePassword: AuthAdapter['updatePassword'];\n /**\n * Optional adapter reauthentication capability; see AuthAdapter.reauthenticate.\n */\n reauthenticate?: AuthAdapter['reauthenticate'];\n /**\n * Optional verification-email capability; see AuthAdapter.sendVerificationEmail.\n */\n sendVerificationEmail?: AuthAdapter['sendVerificationEmail'];\n /**\n * Optional token capability; see AuthAdapter.getToken.\n */\n getToken?: AuthAdapter['getToken'];\n /**\n * Optional OAuth capability; see AuthAdapter.loginWithProvider.\n */\n loginWithProvider?: AuthAdapter['loginWithProvider'];\n}\n\n/**\n * Nullable React authentication context; AuthProvider owns its populated value.\n *\n * @see useAuth for supported consumption and missing-provider checks.\n */\nexport const AuthContext = createContext<AuthContextValue | null>(null);\n\n/**\n * Reads authentication state and adapter actions from the nearest AuthProvider.\n *\n * @returns Current display state and provider actions; optional capabilities can be undefined.\n *\n * @throws Error when used outside AuthProvider.\n *\n * @remarks Requires AuthProvider inside QueryClientProvider; no CSS is required by the hook.\n * Actions can reject with adapter errors. Backend authorization remains host-owned.\n *\n * @example\n * ```tsx\n * import type { ReactNode } from 'react';\n * import { QueryClient, QueryClientProvider } from '@tanstack/react-query';\n * import { AuthProvider, useAuth, type AuthAdapter } from '@alneas/appkit-react/tools/auth';\n *\n * function Content() { const { user } = useAuth(); return <span>{user?.email ?? 'Signed out'}</span>; }\n * export function Example({ adapter, queryClient }: { adapter: AuthAdapter; queryClient: QueryClient }) {\n * return <QueryClientProvider client={queryClient}><AuthProvider adapter={adapter}><Content /></AuthProvider></QueryClientProvider>;\n * }\n * ```\n */\nexport const useAuth = () => {\n const context = useContext(AuthContext);\n if (!context) {\n throw new Error('useAuth must be used within an AuthProvider');\n }\n return context;\n};\n"],"mappings":";;;AAsHA,IAAaA,IAAcC,EAAuC,IAAI,GAwBzDC,UAAgB;CAC3B,IAAMC,IAAUC,EAAWJ,CAAW;CACtC,IAAI,CAACG,GACH,MAAU,MAAM,6CAA6C;CAE/D,OAAOA;AACT"}
@@ -1 +1 @@
1
- {"version":3,"file":"useAuthGuard.cjs","names":["useAuth","useRef","useState","useCallback","require_tools_components_auth_useAuth","react","useAuthGuard","options","lastCheckRef","pendingRedirect","setPendingRedirect","handleAuthExpired","onAuthExpired","loginPath","logoutAndRedirect","logout","checkAuth","user","isLoading","checkOnVisibility","handleVisibilityChange","handleFocus","enablePeriodicCheck","interval","checkInterval"],"sources":["../../../../src/tools/components/auth/useAuthGuard.tsx"],"sourcesContent":["import { useEffect, useCallback, useRef, useState } from 'react';\nimport { useAuth } from './useAuth';\n\nexport interface AuthGuardOptions {\n /**\n * 認証切れ時のコールバック\n * @default undefined\n */\n onAuthExpired?: () => void;\n /**\n * ログインページへのリダイレクトパス\n * @default '/login'\n */\n loginPath?: string;\n /**\n * タブフォーカス時に認証状態をチェック\n * @default true\n */\n checkOnVisibility?: boolean;\n /**\n * 定期チェックの間隔 (ms)\n * @default 60000 (1分)\n */\n checkInterval?: number;\n /**\n * 定期チェックを有効にする\n * @default false\n */\n enablePeriodicCheck?: boolean;\n}\n\nexport interface AuthGuardResult {\n /** 認証済みかどうか */\n isAuthenticated: boolean;\n /** 認証をチェック中かどうか */\n isLoading: boolean;\n /** 手動で認証状態をチェック */\n checkAuth: () => Promise<void>;\n /** ログアウトして指定パスへリダイレクト */\n logoutAndRedirect: () => Promise<void>;\n}\n\n/**\n * 認証ガードフック\n *\n * Firebase と Supabase の両方で動作し、以下の機能を提供:\n * - onAuthStateChanged によるリアルタイム監視\n * - タブフォーカス時の認証チェック\n * - オプションの定期チェック\n * - 認証切れ時の自動リダイレクト\n *\n * @example\n * ```tsx\n * function App() {\n * useAuthGuard({\n * onAuthExpired: () => navigate('/login'),\n * checkOnVisibility: true,\n * });\n *\n * return <MainContent />;\n * }\n * ```\n *\n * @example\n * ```tsx\n * // ルートコンポーネントで使用\n * function ProtectedRoute({ children }) {\n * const { isAuthenticated, isLoading } = useAuthGuard({\n * loginPath: '/login',\n * });\n *\n * if (isLoading) return <LoadingSpinner />;\n * if (!isAuthenticated) return null; // リダイレクト処理中\n * return children;\n * }\n * ```\n */\nexport function useAuthGuard(options: AuthGuardOptions = {}): AuthGuardResult {\n const {\n onAuthExpired,\n loginPath = '/login',\n checkOnVisibility = true,\n checkInterval = 60000,\n enablePeriodicCheck = false,\n } = options;\n\n const { user, isLoading, logout } = useAuth();\n const lastCheckRef = useRef<number>(0);\n // SSR-safe: Track pending redirect in state, perform in useEffect\n const [pendingRedirect, setPendingRedirect] = useState<string | null>(null);\n\n // Perform actual redirect in useEffect (client-only)\n useEffect(() => {\n lastCheckRef.current = Date.now();\n if (pendingRedirect) {\n window.location.href = pendingRedirect;\n }\n }, [pendingRedirect]);\n\n const handleAuthExpired = useCallback(() => {\n if (onAuthExpired) {\n onAuthExpired();\n } else {\n // Set state instead of directly accessing window\n setPendingRedirect(loginPath);\n }\n }, [onAuthExpired, loginPath]);\n\n const logoutAndRedirect = useCallback(async () => {\n try {\n await logout();\n } catch {\n // Ignore logout errors\n }\n handleAuthExpired();\n }, [logout, handleAuthExpired]);\n\n const checkAuth = useCallback(async () => {\n lastCheckRef.current = Date.now();\n // 認証状態は onAuthStateChanged で自動更新されるため、\n // ここでは現在のユーザー状態をチェック\n if (!user && !isLoading) {\n handleAuthExpired();\n }\n }, [user, isLoading, handleAuthExpired]);\n\n // タブがフォーカスされた時のチェック\n useEffect(() => {\n if (!checkOnVisibility) return;\n\n const handleVisibilityChange = () => {\n if (document.visibilityState === 'visible') {\n // タブがアクティブになった時、認証状態をチェック\n checkAuth();\n }\n };\n\n const handleFocus = () => {\n // window.focus イベントでもチェック\n checkAuth();\n };\n\n document.addEventListener('visibilitychange', handleVisibilityChange);\n window.addEventListener('focus', handleFocus);\n\n return () => {\n document.removeEventListener('visibilitychange', handleVisibilityChange);\n window.removeEventListener('focus', handleFocus);\n };\n }, [checkOnVisibility, checkAuth]);\n\n // 定期チェック\n useEffect(() => {\n if (!enablePeriodicCheck) return;\n\n const interval = setInterval(() => {\n checkAuth();\n }, checkInterval);\n\n return () => clearInterval(interval);\n }, [enablePeriodicCheck, checkInterval, checkAuth]);\n\n // ユーザーが null になった時の処理 (セッション切れ)\n useEffect(() => {\n if (!isLoading && !user) {\n // 初回ロード後にユーザーがいない場合\n // onAuthExpired は呼ばず、コンポーネント側で判断させる\n }\n }, [user, isLoading]);\n\n return {\n isAuthenticated: !!user,\n isLoading,\n checkAuth,\n logoutAndRedirect,\n };\n}\n"],"mappings":"A,wIA6EA,SAAgBM,EAAa,EAA4B,CAAC,EAAoB,CAC5E,GAAM,CACJ,gBACA,YAAY,SACZ,oBAAoB,GACpB,gBAAgB,IAChB,sBAAsB,IACpBC,EAEE,CAAE,OAAM,YAAW,UAAWP,EAAAA,QAAQ,EACtCQ,GAAA,EAAeP,EAAAA,OAAAA,CAAe,CAAC,EAE/B,CAACQ,EAAiBC,IAAA,EAAsBR,EAAAA,SAAAA,CAAwB,IAAI,GAG1E,EAAAG,EAAA,UAAA,KAAgB,CACd,EAAa,QAAU,KAAK,IAAI,EAC5BI,IACF,OAAO,SAAS,KAAOA,EAE3B,EAAG,CAACA,CAAe,CAAC,EAEpB,IAAME,GAAA,EAAoBR,EAAAA,YAAAA,KAAkB,CACtCS,EACFA,EAAc,EAGdF,EAAmBG,CAAS,CAEhC,EAAG,CAACD,EAAeC,CAAS,CAAC,EAEvBC,GAAA,EAAoBX,EAAAA,YAAAA,CAAY,SAAY,CAChD,GAAI,CACF,MAAMY,EAAO,CACf,MAAQ,CAER,CACAJ,EAAkB,CACpB,EAAG,CAACI,EAAQJ,CAAiB,CAAC,EAExBK,GAAA,EAAYb,EAAAA,YAAAA,CAAY,SAAY,CACxC,EAAa,QAAU,KAAK,IAAI,EAG5B,CAACc,GAAQ,CAACC,GACZP,EAAkB,CAEtB,EAAG,CAACM,EAAMC,EAAWP,CAAiB,CAAC,EA8CvC,OA3CA,EAAAN,EAAA,UAAA,KAAgB,CACd,GAAI,CAACc,EAAmB,OAExB,IAAMC,MAA+B,CAC/B,SAAS,kBAAoB,WAE/BJ,EAAU,CAEd,EAEMK,MAAoB,CAExBL,EAAU,CACZ,EAKA,OAHA,SAAS,iBAAiB,mBAAoBI,CAAsB,EACpE,OAAO,iBAAiB,QAASC,CAAW,MAE/B,CACX,SAAS,oBAAoB,mBAAoBD,CAAsB,EACvE,OAAO,oBAAoB,QAASC,CAAW,CACjD,CACF,EAAG,CAACF,EAAmBH,CAAS,CAAC,GAGjC,EAAAX,EAAA,UAAA,KAAgB,CACd,GAAI,CAACiB,EAAqB,OAE1B,IAAMC,EAAW,gBAAkB,CACjCP,EAAU,CACZ,EAAGQ,CAAa,EAEhB,UAAa,cAAcD,CAAQ,CACrC,EAAG,CAACD,EAAqBE,EAAeR,CAAS,CAAC,GAGlD,EAAAX,EAAA,UAAA,KAAgB,CAKhB,EAAG,CAACY,EAAMC,CAAS,CAAC,EAEb,CACL,gBAAiB,CAAC,CAACD,EACnB,YACA,YACA,mBACF,CACF,C"}
1
+ {"version":3,"file":"useAuthGuard.cjs","names":["useAuth","useRef","useState","useCallback","require_tools_components_auth_useAuth","react","useAuthGuard","options","lastCheckRef","pendingRedirect","setPendingRedirect","handleAuthExpired","onAuthExpired","loginPath","logoutAndRedirect","logout","checkAuth","user","isLoading","checkOnVisibility","handleVisibilityChange","handleFocus","enablePeriodicCheck","interval","checkInterval"],"sources":["../../../../src/tools/components/auth/useAuthGuard.tsx"],"sourcesContent":["import { useEffect, useCallback, useRef, useState } from 'react';\nimport { useAuth } from './useAuth';\n\n/**\n * Display-session checks and client navigation settings for useAuthGuard.\n *\n * @see useAuthGuard for behavior and setup.\n */\nexport interface AuthGuardOptions {\n /**\n * Callback used instead of navigation when a check finds no user; omitted by default. Callback errors propagate.\n */\n onAuthExpired?: () => void;\n /**\n * Destination assigned to window.location.href when no callback is supplied; defaults to /login.\n */\n loginPath?: string;\n /**\n * Check the current context on visible/focus events; defaults to true.\n */\n checkOnVisibility?: boolean;\n /**\n * Periodic timer interval in milliseconds; defaults to 60000 and is used only when periodic checks are enabled.\n */\n checkInterval?: number;\n /**\n * Start a repeating current-context check; defaults to false.\n */\n enablePeriodicCheck?: boolean;\n}\n\n/**\n * Display-session state and explicit check/navigation actions; see useAuthGuard.\n *\n * @see useAuthGuard for the canonical usage example.\n */\nexport interface AuthGuardResult {\n /**\n * Whether the context currently has a user; does not require isSessionVerified.\n */\n isAuthenticated: boolean;\n /**\n * Current AuthProvider loading flag.\n */\n isLoading: boolean;\n /**\n * Inspect current context, without a backend request.\n *\n * @returns No value; invokes expiry handling only when no user and not loading.\n */\n checkAuth: () => Promise<void>;\n /**\n * Attempt logout, swallow logout failure, then handle expiry.\n *\n * @returns No value after logout attempt and expiry callback or navigation scheduling.\n *\n * @throws Rejects if the supplied expiry callback throws.\n */\n logoutAndRedirect: () => Promise<void>;\n}\n\n/**\n * Checks current authentication context on explicit calls, focus or optional timers.\n *\n * @param options - Expiry callback/navigation and check scheduling; defaults to focus checks only.\n *\n * @returns Current display authentication/loading flags and explicit check/logout actions.\n *\n * @throws Error when no AuthProvider exists.\n *\n * @remarks Requires AuthProvider within QueryClientProvider. Checks do not call a backend\n * or refetch a session; they inspect useAuth state. Mounting alone does not redirect:\n * checkAuth must run via an event, timer or caller. onAuthExpired overrides navigation;\n * otherwise navigation is performed by an effect. Cleanup removes listeners/timers.\n * No CSS is required. Optimistic display state can report authenticated before verification.\n *\n * @example\n * ```tsx\n * import type { ReactNode } from 'react';\n * import { QueryClient, QueryClientProvider } from '@tanstack/react-query';\n * import { AuthProvider, useAuthGuard, type AuthAdapter } from '@alneas/appkit-react/tools/auth';\n *\n * function Content() { const { isAuthenticated } = useAuthGuard(); return <span>{isAuthenticated ? 'Signed in' : 'Signed out'}</span>; }\n * export function Example({ adapter, queryClient }: { adapter: AuthAdapter; queryClient: QueryClient }) {\n * return <QueryClientProvider client={queryClient}><AuthProvider adapter={adapter}><Content /></AuthProvider></QueryClientProvider>;\n * }\n * ```\n */\nexport function useAuthGuard(options: AuthGuardOptions = {}): AuthGuardResult {\n const {\n onAuthExpired,\n loginPath = '/login',\n checkOnVisibility = true,\n checkInterval = 60000,\n enablePeriodicCheck = false,\n } = options;\n\n const { user, isLoading, logout } = useAuth();\n const lastCheckRef = useRef<number>(0);\n // SSR-safe: Track pending redirect in state, perform in useEffect\n const [pendingRedirect, setPendingRedirect] = useState<string | null>(null);\n\n // Perform actual redirect in useEffect (client-only)\n useEffect(() => {\n lastCheckRef.current = Date.now();\n if (pendingRedirect) {\n window.location.href = pendingRedirect;\n }\n }, [pendingRedirect]);\n\n const handleAuthExpired = useCallback(() => {\n if (onAuthExpired) {\n onAuthExpired();\n } else {\n // Set state instead of directly accessing window\n setPendingRedirect(loginPath);\n }\n }, [onAuthExpired, loginPath]);\n\n const logoutAndRedirect = useCallback(async () => {\n try {\n await logout();\n } catch {\n // Ignore logout errors\n }\n handleAuthExpired();\n }, [logout, handleAuthExpired]);\n\n const checkAuth = useCallback(async () => {\n lastCheckRef.current = Date.now();\n // 認証状態は onAuthStateChanged で自動更新されるため、\n // ここでは現在のユーザー状態をチェック\n if (!user && !isLoading) {\n handleAuthExpired();\n }\n }, [user, isLoading, handleAuthExpired]);\n\n // タブがフォーカスされた時のチェック\n useEffect(() => {\n if (!checkOnVisibility) return;\n\n const handleVisibilityChange = () => {\n if (document.visibilityState === 'visible') {\n // タブがアクティブになった時、認証状態をチェック\n checkAuth();\n }\n };\n\n const handleFocus = () => {\n // window.focus イベントでもチェック\n checkAuth();\n };\n\n document.addEventListener('visibilitychange', handleVisibilityChange);\n window.addEventListener('focus', handleFocus);\n\n return () => {\n document.removeEventListener('visibilitychange', handleVisibilityChange);\n window.removeEventListener('focus', handleFocus);\n };\n }, [checkOnVisibility, checkAuth]);\n\n // 定期チェック\n useEffect(() => {\n if (!enablePeriodicCheck) return;\n\n const interval = setInterval(() => {\n checkAuth();\n }, checkInterval);\n\n return () => clearInterval(interval);\n }, [enablePeriodicCheck, checkInterval, checkAuth]);\n\n // ユーザーが null になった時の処理 (セッション切れ)\n useEffect(() => {\n if (!isLoading && !user) {\n // 初回ロード後にユーザーがいない場合\n // onAuthExpired は呼ばず、コンポーネント側で判断させる\n }\n }, [user, isLoading]);\n\n return {\n isAuthenticated: !!user,\n isLoading,\n checkAuth,\n logoutAndRedirect,\n };\n}\n"],"mappings":"A,wIAwFA,SAAgBM,EAAa,EAA4B,CAAC,EAAoB,CAC5E,GAAM,CACJ,gBACA,YAAY,SACZ,oBAAoB,GACpB,gBAAgB,IAChB,sBAAsB,IACpBC,EAEE,CAAE,OAAM,YAAW,UAAWP,EAAAA,QAAQ,EACtCQ,GAAA,EAAeP,EAAAA,OAAAA,CAAe,CAAC,EAE/B,CAACQ,EAAiBC,IAAA,EAAsBR,EAAAA,SAAAA,CAAwB,IAAI,GAG1E,EAAAG,EAAA,UAAA,KAAgB,CACd,EAAa,QAAU,KAAK,IAAI,EAC5BI,IACF,OAAO,SAAS,KAAOA,EAE3B,EAAG,CAACA,CAAe,CAAC,EAEpB,IAAME,GAAA,EAAoBR,EAAAA,YAAAA,KAAkB,CACtCS,EACFA,EAAc,EAGdF,EAAmBG,CAAS,CAEhC,EAAG,CAACD,EAAeC,CAAS,CAAC,EAEvBC,GAAA,EAAoBX,EAAAA,YAAAA,CAAY,SAAY,CAChD,GAAI,CACF,MAAMY,EAAO,CACf,MAAQ,CAER,CACAJ,EAAkB,CACpB,EAAG,CAACI,EAAQJ,CAAiB,CAAC,EAExBK,GAAA,EAAYb,EAAAA,YAAAA,CAAY,SAAY,CACxC,EAAa,QAAU,KAAK,IAAI,EAG5B,CAACc,GAAQ,CAACC,GACZP,EAAkB,CAEtB,EAAG,CAACM,EAAMC,EAAWP,CAAiB,CAAC,EA8CvC,OA3CA,EAAAN,EAAA,UAAA,KAAgB,CACd,GAAI,CAACc,EAAmB,OAExB,IAAMC,MAA+B,CAC/B,SAAS,kBAAoB,WAE/BJ,EAAU,CAEd,EAEMK,MAAoB,CAExBL,EAAU,CACZ,EAKA,OAHA,SAAS,iBAAiB,mBAAoBI,CAAsB,EACpE,OAAO,iBAAiB,QAASC,CAAW,MAE/B,CACX,SAAS,oBAAoB,mBAAoBD,CAAsB,EACvE,OAAO,oBAAoB,QAASC,CAAW,CACjD,CACF,EAAG,CAACF,EAAmBH,CAAS,CAAC,GAGjC,EAAAX,EAAA,UAAA,KAAgB,CACd,GAAI,CAACiB,EAAqB,OAE1B,IAAMC,EAAW,gBAAkB,CACjCP,EAAU,CACZ,EAAGQ,CAAa,EAEhB,UAAa,cAAcD,CAAQ,CACrC,EAAG,CAACD,EAAqBE,EAAeR,CAAS,CAAC,GAGlD,EAAAX,EAAA,UAAA,KAAgB,CAKhB,EAAG,CAACY,EAAMC,CAAS,CAAC,EAEb,CACL,gBAAiB,CAAC,CAACD,EACnB,YACA,YACA,mBACF,CACF,C"}
@@ -1,72 +1,83 @@
1
+ /**
2
+ * Display-session checks and client navigation settings for useAuthGuard.
3
+ *
4
+ * @see useAuthGuard for behavior and setup.
5
+ */
1
6
  export interface AuthGuardOptions {
2
7
  /**
3
- * 認証切れ時のコールバック
4
- * @default undefined
8
+ * Callback used instead of navigation when a check finds no user; omitted by default. Callback errors propagate.
5
9
  */
6
10
  onAuthExpired?: () => void;
7
11
  /**
8
- * ログインページへのリダイレクトパス
9
- * @default '/login'
12
+ * Destination assigned to window.location.href when no callback is supplied; defaults to /login.
10
13
  */
11
14
  loginPath?: string;
12
15
  /**
13
- * タブフォーカス時に認証状態をチェック
14
- * @default true
16
+ * Check the current context on visible/focus events; defaults to true.
15
17
  */
16
18
  checkOnVisibility?: boolean;
17
19
  /**
18
- * 定期チェックの間隔 (ms)
19
- * @default 60000 (1分)
20
+ * Periodic timer interval in milliseconds; defaults to 60000 and is used only when periodic checks are enabled.
20
21
  */
21
22
  checkInterval?: number;
22
23
  /**
23
- * 定期チェックを有効にする
24
- * @default false
24
+ * Start a repeating current-context check; defaults to false.
25
25
  */
26
26
  enablePeriodicCheck?: boolean;
27
27
  }
28
+ /**
29
+ * Display-session state and explicit check/navigation actions; see useAuthGuard.
30
+ *
31
+ * @see useAuthGuard for the canonical usage example.
32
+ */
28
33
  export interface AuthGuardResult {
29
- /** 認証済みかどうか */
34
+ /**
35
+ * Whether the context currently has a user; does not require isSessionVerified.
36
+ */
30
37
  isAuthenticated: boolean;
31
- /** 認証をチェック中かどうか */
38
+ /**
39
+ * Current AuthProvider loading flag.
40
+ */
32
41
  isLoading: boolean;
33
- /** 手動で認証状態をチェック */
42
+ /**
43
+ * Inspect current context, without a backend request.
44
+ *
45
+ * @returns No value; invokes expiry handling only when no user and not loading.
46
+ */
34
47
  checkAuth: () => Promise<void>;
35
- /** ログアウトして指定パスへリダイレクト */
48
+ /**
49
+ * Attempt logout, swallow logout failure, then handle expiry.
50
+ *
51
+ * @returns No value after logout attempt and expiry callback or navigation scheduling.
52
+ *
53
+ * @throws Rejects if the supplied expiry callback throws.
54
+ */
36
55
  logoutAndRedirect: () => Promise<void>;
37
56
  }
38
57
  /**
39
- * 認証ガードフック
58
+ * Checks current authentication context on explicit calls, focus or optional timers.
40
59
  *
41
- * Firebase と Supabase の両方で動作し、以下の機能を提供:
42
- * - onAuthStateChanged によるリアルタイム監視
43
- * - タブフォーカス時の認証チェック
44
- * - オプションの定期チェック
45
- * - 認証切れ時の自動リダイレクト
60
+ * @param options - Expiry callback/navigation and check scheduling; defaults to focus checks only.
46
61
  *
47
- * @example
48
- * ```tsx
49
- * function App() {
50
- * useAuthGuard({
51
- * onAuthExpired: () => navigate('/login'),
52
- * checkOnVisibility: true,
53
- * });
62
+ * @returns Current display authentication/loading flags and explicit check/logout actions.
54
63
  *
55
- * return <MainContent />;
56
- * }
57
- * ```
64
+ * @throws Error when no AuthProvider exists.
65
+ *
66
+ * @remarks Requires AuthProvider within QueryClientProvider. Checks do not call a backend
67
+ * or refetch a session; they inspect useAuth state. Mounting alone does not redirect:
68
+ * checkAuth must run via an event, timer or caller. onAuthExpired overrides navigation;
69
+ * otherwise navigation is performed by an effect. Cleanup removes listeners/timers.
70
+ * No CSS is required. Optimistic display state can report authenticated before verification.
58
71
  *
59
72
  * @example
60
73
  * ```tsx
61
- * // ルートコンポーネントで使用
62
- * function ProtectedRoute({ children }) {
63
- * const { isAuthenticated, isLoading } = useAuthGuard({
64
- * loginPath: '/login',
65
- * });
74
+ * import type { ReactNode } from 'react';
75
+ * import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
76
+ * import { AuthProvider, useAuthGuard, type AuthAdapter } from '@alneas/appkit-react/tools/auth';
66
77
  *
67
- * if (isLoading) return <LoadingSpinner />;
68
- * if (!isAuthenticated) return null; // リダイレクト処理中
69
- * return children;
78
+ * function Content() { const { isAuthenticated } = useAuthGuard(); return <span>{isAuthenticated ? 'Signed in' : 'Signed out'}</span>; }
79
+ * export function Example({ adapter, queryClient }: { adapter: AuthAdapter; queryClient: QueryClient }) {
80
+ * return <QueryClientProvider client={queryClient}><AuthProvider adapter={adapter}><Content /></AuthProvider></QueryClientProvider>;
70
81
  * }
71
82
  * ```
72
83
  */
@@ -1,72 +1,83 @@
1
+ /**
2
+ * Display-session checks and client navigation settings for useAuthGuard.
3
+ *
4
+ * @see useAuthGuard for behavior and setup.
5
+ */
1
6
  export interface AuthGuardOptions {
2
7
  /**
3
- * 認証切れ時のコールバック
4
- * @default undefined
8
+ * Callback used instead of navigation when a check finds no user; omitted by default. Callback errors propagate.
5
9
  */
6
10
  onAuthExpired?: () => void;
7
11
  /**
8
- * ログインページへのリダイレクトパス
9
- * @default '/login'
12
+ * Destination assigned to window.location.href when no callback is supplied; defaults to /login.
10
13
  */
11
14
  loginPath?: string;
12
15
  /**
13
- * タブフォーカス時に認証状態をチェック
14
- * @default true
16
+ * Check the current context on visible/focus events; defaults to true.
15
17
  */
16
18
  checkOnVisibility?: boolean;
17
19
  /**
18
- * 定期チェックの間隔 (ms)
19
- * @default 60000 (1分)
20
+ * Periodic timer interval in milliseconds; defaults to 60000 and is used only when periodic checks are enabled.
20
21
  */
21
22
  checkInterval?: number;
22
23
  /**
23
- * 定期チェックを有効にする
24
- * @default false
24
+ * Start a repeating current-context check; defaults to false.
25
25
  */
26
26
  enablePeriodicCheck?: boolean;
27
27
  }
28
+ /**
29
+ * Display-session state and explicit check/navigation actions; see useAuthGuard.
30
+ *
31
+ * @see useAuthGuard for the canonical usage example.
32
+ */
28
33
  export interface AuthGuardResult {
29
- /** 認証済みかどうか */
34
+ /**
35
+ * Whether the context currently has a user; does not require isSessionVerified.
36
+ */
30
37
  isAuthenticated: boolean;
31
- /** 認証をチェック中かどうか */
38
+ /**
39
+ * Current AuthProvider loading flag.
40
+ */
32
41
  isLoading: boolean;
33
- /** 手動で認証状態をチェック */
42
+ /**
43
+ * Inspect current context, without a backend request.
44
+ *
45
+ * @returns No value; invokes expiry handling only when no user and not loading.
46
+ */
34
47
  checkAuth: () => Promise<void>;
35
- /** ログアウトして指定パスへリダイレクト */
48
+ /**
49
+ * Attempt logout, swallow logout failure, then handle expiry.
50
+ *
51
+ * @returns No value after logout attempt and expiry callback or navigation scheduling.
52
+ *
53
+ * @throws Rejects if the supplied expiry callback throws.
54
+ */
36
55
  logoutAndRedirect: () => Promise<void>;
37
56
  }
38
57
  /**
39
- * 認証ガードフック
58
+ * Checks current authentication context on explicit calls, focus or optional timers.
40
59
  *
41
- * Firebase と Supabase の両方で動作し、以下の機能を提供:
42
- * - onAuthStateChanged によるリアルタイム監視
43
- * - タブフォーカス時の認証チェック
44
- * - オプションの定期チェック
45
- * - 認証切れ時の自動リダイレクト
60
+ * @param options - Expiry callback/navigation and check scheduling; defaults to focus checks only.
46
61
  *
47
- * @example
48
- * ```tsx
49
- * function App() {
50
- * useAuthGuard({
51
- * onAuthExpired: () => navigate('/login'),
52
- * checkOnVisibility: true,
53
- * });
62
+ * @returns Current display authentication/loading flags and explicit check/logout actions.
54
63
  *
55
- * return <MainContent />;
56
- * }
57
- * ```
64
+ * @throws Error when no AuthProvider exists.
65
+ *
66
+ * @remarks Requires AuthProvider within QueryClientProvider. Checks do not call a backend
67
+ * or refetch a session; they inspect useAuth state. Mounting alone does not redirect:
68
+ * checkAuth must run via an event, timer or caller. onAuthExpired overrides navigation;
69
+ * otherwise navigation is performed by an effect. Cleanup removes listeners/timers.
70
+ * No CSS is required. Optimistic display state can report authenticated before verification.
58
71
  *
59
72
  * @example
60
73
  * ```tsx
61
- * // ルートコンポーネントで使用
62
- * function ProtectedRoute({ children }) {
63
- * const { isAuthenticated, isLoading } = useAuthGuard({
64
- * loginPath: '/login',
65
- * });
74
+ * import type { ReactNode } from 'react';
75
+ * import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
76
+ * import { AuthProvider, useAuthGuard, type AuthAdapter } from '@alneas/appkit-react/tools/auth';
66
77
  *
67
- * if (isLoading) return <LoadingSpinner />;
68
- * if (!isAuthenticated) return null; // リダイレクト処理中
69
- * return children;
78
+ * function Content() { const { isAuthenticated } = useAuthGuard(); return <span>{isAuthenticated ? 'Signed in' : 'Signed out'}</span>; }
79
+ * export function Example({ adapter, queryClient }: { adapter: AuthAdapter; queryClient: QueryClient }) {
80
+ * return <QueryClientProvider client={queryClient}><AuthProvider adapter={adapter}><Content /></AuthProvider></QueryClientProvider>;
70
81
  * }
71
82
  * ```
72
83
  */