@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,83 +1,81 @@
1
1
  import * as React from 'react';
2
2
  /**
3
- * サイドバーのアイテム
3
+ * A navigation item rendered by {@link SmartSidebar}.
4
+ * @see SmartSidebar
4
5
  */
5
6
  export interface SmartSidebarItem {
6
- /** ラベル */
7
+ /** Visible item label; also used in collapsed tooltips. */
7
8
  label: string;
8
- /** アイコン */
9
+ /** Icon rendered in expanded and collapsed layouts. */
9
10
  icon: React.ReactNode;
10
- /** パス */
11
+ /** Opaque destination passed to onNavigate; compared exactly with activePath. */
11
12
  path: string;
12
- /** 無効化 */
13
+ /** Disables item activation when true; omitted means enabled. */
13
14
  disabled?: boolean;
14
- /** バッジ等の追加コンテンツ */
15
+ /** Additional content shown beside the expanded item label. */
15
16
  extra?: React.ReactNode;
16
17
  }
17
18
  /**
18
19
  * サイドバーのグループ
19
20
  */
20
21
  export interface SmartSidebarGroup {
21
- /** グループタイトル */
22
+ /** Optional heading; omitted headings render no group title. */
22
23
  title?: string;
23
- /** アイテム */
24
+ /** Items in display order. */
24
25
  items: SmartSidebarItem[];
25
- /** 折りたたみ可能か */
26
+ /** Allows the expanded sidebar heading to toggle between all items and a two-item preview. */
26
27
  collapsible?: boolean;
27
- /** 初期状態で折りたたまれているか */
28
+ /** Initial two-item group preview state; defaults to false. Later prop changes do not reset local state. */
28
29
  defaultCollapsed?: boolean;
29
30
  }
30
31
  /**
31
32
  * サイドバーのプロップス
32
33
  */
33
34
  export interface SidebarProps {
34
- /** 追加CSS */
35
+ /** Additional classes for the sidebar root. */
35
36
  className?: string;
36
- /** ナビゲーショングループ */
37
+ /** Groups in display order. */
37
38
  groups: SmartSidebarGroup[];
38
- /** フッターアイテム */
39
+ /** Optional navigation items pinned below the scrollable groups. */
39
40
  footerItems?: SmartSidebarItem[];
40
- /** 現在のパス */
41
+ /** Exact path used to highlight active items; no item is active when omitted. */
41
42
  activePath?: string;
42
- /** ナビゲーション発火 */
43
+ /** Called with the activated item path; the host performs routing. */
43
44
  onNavigate?: (path: string) => void;
44
- /** 折りたたみ状態 */
45
+ /** Controlled whole-sidebar collapse state; defaults to false. */
45
46
  collapsed?: boolean;
46
- /** 折りたたみトグル */
47
+ /** Called by the toggle button; the host must update collapsed. Omitted hides the button. */
47
48
  onToggleCollapse?: () => void;
48
- /** カスタムヘッダー */
49
+ /** Renders header content with the current collapsed state. */
49
50
  header?: (collapsed: boolean) => React.ReactNode;
50
- /** カスタムフッター */
51
+ /** Renders footer content with the current collapsed state. */
51
52
  sidebarFooter?: (collapsed: boolean) => React.ReactNode;
52
53
  }
53
54
  /**
54
- * サイドバーコンポーネント
55
- *
56
- * 折りたたみ可能なナビゲーションサイドバー。
57
- * グループ化されたアイテム、アイコン、ツールチップに対応。
58
- *
55
+ * Renders grouped navigation with controlled sidebar collapse and local group collapse.
56
+ * @param props - Navigation items, controlled selection/collapse and render callbacks; see {@link SidebarProps}.
57
+ * @returns The sidebar element, including its own tooltip provider.
58
+ * @remarks Import Appkit CSS. ThemeProvider enables reactive spacing density; without one,
59
+ * the theme context uses normal spacing. The host owns routing
60
+ * and updates activePath/collapsed. Sidebar from the same entry is a compound namespace;
61
+ * use SmartSidebar for this groups-based API. CSS variables --sidebar-width and
62
+ * --sidebar-collapsed-width fall back to 16rem and 4rem respectively.
59
63
  * @example
60
64
  * ```tsx
61
- * import { Sidebar } from '@alneas/appkit-react/tools/sidebar';
62
- * import { Home, Settings } from 'lucide-react';
63
- *
64
- * const groups = [
65
- * {
66
- * title: 'メイン',
67
- * items: [
68
- * { label: 'ホーム', icon: <Home />, path: '/' },
69
- * { label: '設定', icon: <Settings />, path: '/settings' },
70
- * ],
71
- * },
72
- * ];
65
+ * import { useState } from 'react';
66
+ * import { SmartSidebar } from '@alneas/appkit-react/tools/sidebar';
67
+ * import { ThemeProvider } from '@alneas/appkit-react/ui/theme';
68
+ * import '@alneas/appkit-react/styles';
73
69
  *
74
- * <Sidebar
75
- * groups={groups}
76
- * activePath={location.pathname}
77
- * onNavigate={(path) => navigate(path)}
78
- * collapsed={isCollapsed}
79
- * onToggleCollapse={() => setIsCollapsed(!isCollapsed)}
80
- * />
70
+ * export function Navigation() {
71
+ * const [path, setPath] = useState('/');
72
+ * const [collapsed, setCollapsed] = useState(false);
73
+ * return <ThemeProvider><SmartSidebar
74
+ * groups={[{ title: 'Main', items: [{ label: 'Home', icon: <span>H</span>, path: '/' }] }]}
75
+ * activePath={path} onNavigate={setPath} collapsed={collapsed}
76
+ * onToggleCollapse={() => setCollapsed(value => !value)}
77
+ * /></ThemeProvider>;
78
+ * }
81
79
  * ```
82
80
  */
83
81
  export declare function SmartSidebar({ className, groups, footerItems, activePath, onNavigate, collapsed, onToggleCollapse, header, sidebarFooter, }: SidebarProps): React.JSX.Element;
@@ -1,83 +1,81 @@
1
1
  import * as React from 'react';
2
2
  /**
3
- * サイドバーのアイテム
3
+ * A navigation item rendered by {@link SmartSidebar}.
4
+ * @see SmartSidebar
4
5
  */
5
6
  export interface SmartSidebarItem {
6
- /** ラベル */
7
+ /** Visible item label; also used in collapsed tooltips. */
7
8
  label: string;
8
- /** アイコン */
9
+ /** Icon rendered in expanded and collapsed layouts. */
9
10
  icon: React.ReactNode;
10
- /** パス */
11
+ /** Opaque destination passed to onNavigate; compared exactly with activePath. */
11
12
  path: string;
12
- /** 無効化 */
13
+ /** Disables item activation when true; omitted means enabled. */
13
14
  disabled?: boolean;
14
- /** バッジ等の追加コンテンツ */
15
+ /** Additional content shown beside the expanded item label. */
15
16
  extra?: React.ReactNode;
16
17
  }
17
18
  /**
18
19
  * サイドバーのグループ
19
20
  */
20
21
  export interface SmartSidebarGroup {
21
- /** グループタイトル */
22
+ /** Optional heading; omitted headings render no group title. */
22
23
  title?: string;
23
- /** アイテム */
24
+ /** Items in display order. */
24
25
  items: SmartSidebarItem[];
25
- /** 折りたたみ可能か */
26
+ /** Allows the expanded sidebar heading to toggle between all items and a two-item preview. */
26
27
  collapsible?: boolean;
27
- /** 初期状態で折りたたまれているか */
28
+ /** Initial two-item group preview state; defaults to false. Later prop changes do not reset local state. */
28
29
  defaultCollapsed?: boolean;
29
30
  }
30
31
  /**
31
32
  * サイドバーのプロップス
32
33
  */
33
34
  export interface SidebarProps {
34
- /** 追加CSS */
35
+ /** Additional classes for the sidebar root. */
35
36
  className?: string;
36
- /** ナビゲーショングループ */
37
+ /** Groups in display order. */
37
38
  groups: SmartSidebarGroup[];
38
- /** フッターアイテム */
39
+ /** Optional navigation items pinned below the scrollable groups. */
39
40
  footerItems?: SmartSidebarItem[];
40
- /** 現在のパス */
41
+ /** Exact path used to highlight active items; no item is active when omitted. */
41
42
  activePath?: string;
42
- /** ナビゲーション発火 */
43
+ /** Called with the activated item path; the host performs routing. */
43
44
  onNavigate?: (path: string) => void;
44
- /** 折りたたみ状態 */
45
+ /** Controlled whole-sidebar collapse state; defaults to false. */
45
46
  collapsed?: boolean;
46
- /** 折りたたみトグル */
47
+ /** Called by the toggle button; the host must update collapsed. Omitted hides the button. */
47
48
  onToggleCollapse?: () => void;
48
- /** カスタムヘッダー */
49
+ /** Renders header content with the current collapsed state. */
49
50
  header?: (collapsed: boolean) => React.ReactNode;
50
- /** カスタムフッター */
51
+ /** Renders footer content with the current collapsed state. */
51
52
  sidebarFooter?: (collapsed: boolean) => React.ReactNode;
52
53
  }
53
54
  /**
54
- * サイドバーコンポーネント
55
- *
56
- * 折りたたみ可能なナビゲーションサイドバー。
57
- * グループ化されたアイテム、アイコン、ツールチップに対応。
58
- *
55
+ * Renders grouped navigation with controlled sidebar collapse and local group collapse.
56
+ * @param props - Navigation items, controlled selection/collapse and render callbacks; see {@link SidebarProps}.
57
+ * @returns The sidebar element, including its own tooltip provider.
58
+ * @remarks Import Appkit CSS. ThemeProvider enables reactive spacing density; without one,
59
+ * the theme context uses normal spacing. The host owns routing
60
+ * and updates activePath/collapsed. Sidebar from the same entry is a compound namespace;
61
+ * use SmartSidebar for this groups-based API. CSS variables --sidebar-width and
62
+ * --sidebar-collapsed-width fall back to 16rem and 4rem respectively.
59
63
  * @example
60
64
  * ```tsx
61
- * import { Sidebar } from '@alneas/appkit-react/tools/sidebar';
62
- * import { Home, Settings } from 'lucide-react';
63
- *
64
- * const groups = [
65
- * {
66
- * title: 'メイン',
67
- * items: [
68
- * { label: 'ホーム', icon: <Home />, path: '/' },
69
- * { label: '設定', icon: <Settings />, path: '/settings' },
70
- * ],
71
- * },
72
- * ];
65
+ * import { useState } from 'react';
66
+ * import { SmartSidebar } from '@alneas/appkit-react/tools/sidebar';
67
+ * import { ThemeProvider } from '@alneas/appkit-react/ui/theme';
68
+ * import '@alneas/appkit-react/styles';
73
69
  *
74
- * <Sidebar
75
- * groups={groups}
76
- * activePath={location.pathname}
77
- * onNavigate={(path) => navigate(path)}
78
- * collapsed={isCollapsed}
79
- * onToggleCollapse={() => setIsCollapsed(!isCollapsed)}
80
- * />
70
+ * export function Navigation() {
71
+ * const [path, setPath] = useState('/');
72
+ * const [collapsed, setCollapsed] = useState(false);
73
+ * return <ThemeProvider><SmartSidebar
74
+ * groups={[{ title: 'Main', items: [{ label: 'Home', icon: <span>H</span>, path: '/' }] }]}
75
+ * activePath={path} onNavigate={setPath} collapsed={collapsed}
76
+ * onToggleCollapse={() => setCollapsed(value => !value)}
77
+ * /></ThemeProvider>;
78
+ * }
81
79
  * ```
82
80
  */
83
81
  export declare function SmartSidebar({ className, groups, footerItems, activePath, onNavigate, collapsed, onToggleCollapse, header, sidebarFooter, }: SidebarProps): React.JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"SmartSidebar.js","names":["React","React$1","sidebarDensity","SmartSidebar","useTheme","density","spacingTheme","handleNavigate","onNavigate","path","TooltipProvider","cn","collapsed","className","header","onToggleCollapse","Button","PanelLeft","ScrollArea","groups","SidebarGroupSection","index","footerItems","SidebarItemRow","activePath","item","sidebarFooter","groupCollapsed","setGroupCollapsed","group","isGroupCollapsible","toggleGroup","prev","visibleItems","Separator","Tooltip","TooltipTrigger","buttonVariants","isActive","itemHeight","TooltipContent"],"sources":["../../../../src/tools/components/sidebar/SmartSidebar.tsx"],"sourcesContent":["import * as React from 'react';\nimport { cn } from \"../../lib/utils\";\nimport { Button, buttonVariants } from '../ui/button';\nimport { ScrollArea } from '../ui/scroll-area';\nimport { Separator } from '../ui/separator';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '../ui/tooltip';\nimport { PanelLeft } from 'lucide-react';\nimport { useTheme, type SpacingTheme } from '../theme/theme-context';\n\nconst sidebarDensity: Record<SpacingTheme, {\n groupGap: string;\n itemGap: string;\n itemHeight: string;\n}> = {\n compact: { groupGap: 'gap-1', itemGap: 'gap-0', itemHeight: 'h-8' },\n normal: { groupGap: 'gap-2', itemGap: 'gap-1', itemHeight: 'h-9' },\n comfortable: { groupGap: 'gap-4', itemGap: 'gap-2', itemHeight: 'h-11' },\n};\n\n/**\n * サイドバーのアイテム\n */\nexport interface SmartSidebarItem {\n /** ラベル */\n label: string;\n /** アイコン */\n icon: React.ReactNode;\n /** パス */\n path: string;\n /** 無効化 */\n disabled?: boolean;\n /** バッジ等の追加コンテンツ */\n extra?: React.ReactNode;\n}\n\n/**\n * サイドバーのグループ\n */\nexport interface SmartSidebarGroup {\n /** グループタイトル */\n title?: string;\n /** アイテム */\n items: SmartSidebarItem[];\n /** 折りたたみ可能か */\n collapsible?: boolean;\n /** 初期状態で折りたたまれているか */\n defaultCollapsed?: boolean;\n}\n\n/**\n * サイドバーのプロップス\n */\nexport interface SidebarProps {\n /** 追加CSS */\n className?: string;\n /** ナビゲーショングループ */\n groups: SmartSidebarGroup[];\n /** フッターアイテム */\n footerItems?: SmartSidebarItem[];\n /** 現在のパス */\n activePath?: string;\n /** ナビゲーション発火 */\n onNavigate?: (path: string) => void;\n /** 折りたたみ状態 */\n collapsed?: boolean;\n /** 折りたたみトグル */\n onToggleCollapse?: () => void;\n /** カスタムヘッダー */\n header?: (collapsed: boolean) => React.ReactNode;\n /** カスタムフッター */\n sidebarFooter?: (collapsed: boolean) => React.ReactNode;\n}\n\n/**\n * サイドバーコンポーネント\n *\n * 折りたたみ可能なナビゲーションサイドバー。\n * グループ化されたアイテム、アイコン、ツールチップに対応。\n *\n * @example\n * ```tsx\n * import { Sidebar } from '@alneas/appkit-react/tools/sidebar';\n * import { Home, Settings } from 'lucide-react';\n *\n * const groups = [\n * {\n * title: 'メイン',\n * items: [\n * { label: 'ホーム', icon: <Home />, path: '/' },\n * { label: '設定', icon: <Settings />, path: '/settings' },\n * ],\n * },\n * ];\n *\n * <Sidebar\n * groups={groups}\n * activePath={location.pathname}\n * onNavigate={(path) => navigate(path)}\n * collapsed={isCollapsed}\n * onToggleCollapse={() => setIsCollapsed(!isCollapsed)}\n * />\n * ```\n */\nexport function SmartSidebar({\n className,\n groups,\n footerItems,\n activePath,\n onNavigate,\n collapsed = false,\n onToggleCollapse,\n header,\n sidebarFooter,\n}: SidebarProps) {\n const { spacingTheme } = useTheme();\n const density = sidebarDensity[spacingTheme];\n const handleNavigate = (path: string) => {\n if (onNavigate) {\n onNavigate(path);\n }\n };\n\n // Determine width based on collapsed state\n // w-64 (16rem) -> expanded\n // w-16 (4rem) -> collapsed\n // You can adjust these values or make them configurable if needed\n const widthClass = collapsed\n ? 'w-[var(--sidebar-collapsed-width,4rem)]'\n : 'w-[var(--sidebar-width,16rem)]';\n\n return (\n <TooltipProvider>\n <div\n className={cn(\n 'flex flex-col h-full bg-muted/20 border-r border-border transition-all duration-300 ease-in-out',\n widthClass,\n className,\n )}\n >\n {/* Combined Header and Toggle Section */}\n <div\n className={cn(\n 'flex-none flex items-center h-14 px-3 gap-2',\n collapsed ? 'justify-center' : 'justify-between',\n )}\n >\n {/* Custom Header Content */}\n {header && (\n <div\n className={cn(\n 'overflow-hidden whitespace-nowrap transition-all duration-300 ease-in-out',\n collapsed && onToggleCollapse\n ? 'max-w-0 opacity-0 flex-none'\n : 'max-w-full flex-1 opacity-100',\n )}\n >\n {header(collapsed)}\n </div>\n )}\n\n {/* Toggle Button */}\n {onToggleCollapse && (\n <Button\n variant='ghost'\n size='icon'\n className='h-8 w-8 shrink-0'\n onClick={onToggleCollapse}\n >\n <PanelLeft size={16} />\n </Button>\n )}\n </div>\n\n <ScrollArea className='flex-1 py-2 min-h-0'>\n <nav className={cn('flex flex-col px-2', density.groupGap)}>\n {groups.map((group, index) => (\n <SidebarGroupSection\n key={index}\n group={group}\n collapsed={collapsed}\n activePath={activePath}\n onNavigate={handleNavigate}\n density={density}\n />\n ))}\n </nav>\n </ScrollArea>\n\n {/* Footer Items Section (Sticky Bottom) */}\n {footerItems && footerItems.length > 0 && (\n <div className='flex-none mt-auto p-2 border-t border-border bg-background/50 backdrop-blur-sm'>\n <ul className={cn('flex flex-col', density.itemGap)}>\n {footerItems.map((item, index) => (\n <SidebarItemRow\n key={index}\n item={item}\n collapsed={collapsed}\n isActive={activePath === item.path}\n onNavigate={handleNavigate}\n itemHeight={density.itemHeight}\n />\n ))}\n </ul>\n </div>\n )}\n\n {/* Custom Footer Section */}\n {sidebarFooter && (\n <div\n className={cn(\n 'flex-none p-4 border-t border-border bg-background/50 backdrop-blur-sm',\n collapsed ? 'flex justify-center' : '',\n )}\n >\n {sidebarFooter(collapsed)}\n </div>\n )}\n </div>\n </TooltipProvider>\n );\n}\n\nfunction SidebarGroupSection({\n group,\n collapsed,\n activePath,\n onNavigate,\n density,\n}: {\n group: SmartSidebarGroup;\n collapsed: boolean;\n activePath?: string;\n onNavigate: (path: string) => void;\n density: (typeof sidebarDensity)[SpacingTheme];\n}) {\n const [groupCollapsed, setGroupCollapsed] = React.useState(\n group.defaultCollapsed ?? false\n );\n\n const isGroupCollapsible = group.collapsible && !collapsed;\n\n const toggleGroup = React.useCallback(() => {\n if (isGroupCollapsible) setGroupCollapsed(prev => !prev);\n }, [isGroupCollapsible]);\n\n // If no items, don't render group\n if (!group.items?.length) return null;\n\n const visibleItems = isGroupCollapsible && groupCollapsed\n ? group.items.slice(0, 2)\n : group.items;\n\n return (\n <div className={cn('flex flex-col', density.itemGap)}>\n {/* Group Title Area - Fixed Height for smooth transition */}\n {group.title && (\n <div\n className={cn(\n 'h-7 flex items-center relative px-2',\n isGroupCollapsible && 'cursor-pointer hover:text-primary transition-colors',\n )}\n onClick={toggleGroup}\n >\n {/* Title Text */}\n <h4\n className={cn(\n 'text-sm font-semibold text-primary/80 uppercase tracking-wider overflow-hidden text-ellipsis whitespace-nowrap absolute left-2 right-2 transition-all duration-300 ease-in-out',\n collapsed ? 'opacity-0 translate-x-[-10px]' : 'opacity-100 translate-x-0',\n )}\n >\n {group.title}\n {isGroupCollapsible && (\n <span className='ml-1.5 text-xs opacity-60'>\n {groupCollapsed ? '▸' : '▾'}\n </span>\n )}\n </h4>\n\n {/* Collapsed Separator */}\n <div\n className={cn(\n 'absolute left-0 right-0 top-1/2 -translate-y-1/2 flex justify-center transition-all duration-300',\n collapsed ? 'opacity-100' : 'opacity-0',\n )}\n >\n <Separator className='w-8 opacity-50' />\n </div>\n </div>\n )}\n\n <ul className={cn('flex flex-col', density.itemGap)}>\n {visibleItems.map((item, index) => (\n <SidebarItemRow\n key={index}\n item={item}\n collapsed={collapsed}\n isActive={activePath === item.path}\n onNavigate={onNavigate}\n itemHeight={density.itemHeight}\n />\n ))}\n {isGroupCollapsible && groupCollapsed && group.items.length > 2 && (\n <li>\n <button\n onClick={(e) => { e.stopPropagation(); setGroupCollapsed(false); }}\n className='flex w-full items-center justify-center h-8 text-xs text-muted-foreground hover:text-primary transition-colors'\n >\n +{group.items.length - 2} more\n </button>\n </li>\n )}\n </ul>\n </div>\n );\n}\n\nfunction SidebarItemRow({\n item,\n collapsed,\n isActive,\n onNavigate,\n itemHeight,\n}: {\n item: SmartSidebarItem;\n collapsed: boolean;\n isActive: boolean;\n onNavigate: (path: string) => void;\n itemHeight: string;\n}) {\n return (\n <li>\n <Tooltip>\n <TooltipTrigger\n className={cn(\n buttonVariants({ variant: isActive ? 'secondary' : 'ghost' }),\n 'flex w-full items-center transition-all duration-300',\n itemHeight,\n collapsed ? 'justify-center px-1' : 'justify-start px-3',\n isActive && 'bg-primary/10 text-primary font-medium hover:bg-primary/20',\n !isActive && 'text-muted-foreground hover:text-foreground font-normal',\n )}\n onClick={() => onNavigate(item.path)}\n disabled={item.disabled}\n >\n {/* Icon Wrapper */}\n <span\n className={cn(\n 'flex items-center justify-center shrink-0 transition-all duration-300',\n isActive ? 'text-primary' : 'opacity-70',\n )}\n >\n {React.isValidElement(item.icon)\n ? // @ts-expect-error - cloning strictly for size prop if supported\n React.cloneElement(item.icon, { size: 18 })\n : item.icon}\n </span>\n\n {/* Label & Extra Wrapper for smooth transition */}\n <span\n className={cn(\n 'flex flex-1 items-center overflow-hidden transition-all duration-300 ease-in-out',\n collapsed ? 'max-w-0 opacity-0' : 'max-w-[200px] opacity-100 ml-3',\n )}\n >\n <span className='truncate flex-1 text-left text-sm'>{item.label}</span>\n {item.extra && (\n <span className='shrink-0 text-xs text-muted-foreground ml-2'>{item.extra}</span>\n )}\n </span>\n </TooltipTrigger>\n {collapsed && (\n <TooltipContent side='right' className='flex items-center gap-2'>\n {item.label}\n {item.extra && <span className='opacity-70'>{item.extra}</span>}\n </TooltipContent>\n )}\n </Tooltip>\n </li>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"SmartSidebar.js","names":["React","React$1","sidebarDensity","SmartSidebar","useTheme","density","spacingTheme","handleNavigate","onNavigate","path","TooltipProvider","cn","collapsed","className","header","onToggleCollapse","Button","PanelLeft","ScrollArea","groups","SidebarGroupSection","index","footerItems","SidebarItemRow","activePath","item","sidebarFooter","groupCollapsed","setGroupCollapsed","group","isGroupCollapsible","toggleGroup","prev","visibleItems","Separator","Tooltip","TooltipTrigger","buttonVariants","isActive","itemHeight","TooltipContent"],"sources":["../../../../src/tools/components/sidebar/SmartSidebar.tsx"],"sourcesContent":["import * as React from 'react';\nimport { cn } from \"../../lib/utils\";\nimport { Button, buttonVariants } from '../ui/button';\nimport { ScrollArea } from '../ui/scroll-area';\nimport { Separator } from '../ui/separator';\nimport { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from '../ui/tooltip';\nimport { PanelLeft } from 'lucide-react';\nimport { useTheme, type SpacingTheme } from '../theme/theme-context';\n\nconst sidebarDensity: Record<SpacingTheme, {\n groupGap: string;\n itemGap: string;\n itemHeight: string;\n}> = {\n compact: { groupGap: 'gap-1', itemGap: 'gap-0', itemHeight: 'h-8' },\n normal: { groupGap: 'gap-2', itemGap: 'gap-1', itemHeight: 'h-9' },\n comfortable: { groupGap: 'gap-4', itemGap: 'gap-2', itemHeight: 'h-11' },\n};\n\n/**\n * A navigation item rendered by {@link SmartSidebar}.\n * @see SmartSidebar\n */\nexport interface SmartSidebarItem {\n /** Visible item label; also used in collapsed tooltips. */\n label: string;\n /** Icon rendered in expanded and collapsed layouts. */\n icon: React.ReactNode;\n /** Opaque destination passed to onNavigate; compared exactly with activePath. */\n path: string;\n /** Disables item activation when true; omitted means enabled. */\n disabled?: boolean;\n /** Additional content shown beside the expanded item label. */\n extra?: React.ReactNode;\n}\n\n/**\n * サイドバーのグループ\n */\nexport interface SmartSidebarGroup {\n /** Optional heading; omitted headings render no group title. */\n title?: string;\n /** Items in display order. */\n items: SmartSidebarItem[];\n /** Allows the expanded sidebar heading to toggle between all items and a two-item preview. */\n collapsible?: boolean;\n /** Initial two-item group preview state; defaults to false. Later prop changes do not reset local state. */\n defaultCollapsed?: boolean;\n}\n\n/**\n * サイドバーのプロップス\n */\nexport interface SidebarProps {\n /** Additional classes for the sidebar root. */\n className?: string;\n /** Groups in display order. */\n groups: SmartSidebarGroup[];\n /** Optional navigation items pinned below the scrollable groups. */\n footerItems?: SmartSidebarItem[];\n /** Exact path used to highlight active items; no item is active when omitted. */\n activePath?: string;\n /** Called with the activated item path; the host performs routing. */\n onNavigate?: (path: string) => void;\n /** Controlled whole-sidebar collapse state; defaults to false. */\n collapsed?: boolean;\n /** Called by the toggle button; the host must update collapsed. Omitted hides the button. */\n onToggleCollapse?: () => void;\n /** Renders header content with the current collapsed state. */\n header?: (collapsed: boolean) => React.ReactNode;\n /** Renders footer content with the current collapsed state. */\n sidebarFooter?: (collapsed: boolean) => React.ReactNode;\n}\n\n/**\n * Renders grouped navigation with controlled sidebar collapse and local group collapse.\n * @param props - Navigation items, controlled selection/collapse and render callbacks; see {@link SidebarProps}.\n * @returns The sidebar element, including its own tooltip provider.\n * @remarks Import Appkit CSS. ThemeProvider enables reactive spacing density; without one,\n * the theme context uses normal spacing. The host owns routing\n * and updates activePath/collapsed. Sidebar from the same entry is a compound namespace;\n * use SmartSidebar for this groups-based API. CSS variables --sidebar-width and\n * --sidebar-collapsed-width fall back to 16rem and 4rem respectively.\n * @example\n * ```tsx\n * import { useState } from 'react';\n * import { SmartSidebar } from '@alneas/appkit-react/tools/sidebar';\n * import { ThemeProvider } from '@alneas/appkit-react/ui/theme';\n * import '@alneas/appkit-react/styles';\n *\n * export function Navigation() {\n * const [path, setPath] = useState('/');\n * const [collapsed, setCollapsed] = useState(false);\n * return <ThemeProvider><SmartSidebar\n * groups={[{ title: 'Main', items: [{ label: 'Home', icon: <span>H</span>, path: '/' }] }]}\n * activePath={path} onNavigate={setPath} collapsed={collapsed}\n * onToggleCollapse={() => setCollapsed(value => !value)}\n * /></ThemeProvider>;\n * }\n * ```\n */\nexport function SmartSidebar({\n className,\n groups,\n footerItems,\n activePath,\n onNavigate,\n collapsed = false,\n onToggleCollapse,\n header,\n sidebarFooter,\n}: SidebarProps) {\n const { spacingTheme } = useTheme();\n const density = sidebarDensity[spacingTheme];\n const handleNavigate = (path: string) => {\n if (onNavigate) {\n onNavigate(path);\n }\n };\n\n // Determine width based on collapsed state\n // w-64 (16rem) -> expanded\n // w-16 (4rem) -> collapsed\n // You can adjust these values or make them configurable if needed\n const widthClass = collapsed\n ? 'w-[var(--sidebar-collapsed-width,4rem)]'\n : 'w-[var(--sidebar-width,16rem)]';\n\n return (\n <TooltipProvider>\n <div\n className={cn(\n 'flex flex-col h-full bg-muted/20 border-r border-border transition-all duration-300 ease-in-out',\n widthClass,\n className,\n )}\n >\n {/* Combined Header and Toggle Section */}\n <div\n className={cn(\n 'flex-none flex items-center h-14 px-3 gap-2',\n collapsed ? 'justify-center' : 'justify-between',\n )}\n >\n {/* Custom Header Content */}\n {header && (\n <div\n className={cn(\n 'overflow-hidden whitespace-nowrap transition-all duration-300 ease-in-out',\n collapsed && onToggleCollapse\n ? 'max-w-0 opacity-0 flex-none'\n : 'max-w-full flex-1 opacity-100',\n )}\n >\n {header(collapsed)}\n </div>\n )}\n\n {/* Toggle Button */}\n {onToggleCollapse && (\n <Button\n variant='ghost'\n size='icon'\n className='h-8 w-8 shrink-0'\n onClick={onToggleCollapse}\n >\n <PanelLeft size={16} />\n </Button>\n )}\n </div>\n\n <ScrollArea className='flex-1 py-2 min-h-0'>\n <nav className={cn('flex flex-col px-2', density.groupGap)}>\n {groups.map((group, index) => (\n <SidebarGroupSection\n key={index}\n group={group}\n collapsed={collapsed}\n activePath={activePath}\n onNavigate={handleNavigate}\n density={density}\n />\n ))}\n </nav>\n </ScrollArea>\n\n {/* Footer Items Section (Sticky Bottom) */}\n {footerItems && footerItems.length > 0 && (\n <div className='flex-none mt-auto p-2 border-t border-border bg-background/50 backdrop-blur-sm'>\n <ul className={cn('flex flex-col', density.itemGap)}>\n {footerItems.map((item, index) => (\n <SidebarItemRow\n key={index}\n item={item}\n collapsed={collapsed}\n isActive={activePath === item.path}\n onNavigate={handleNavigate}\n itemHeight={density.itemHeight}\n />\n ))}\n </ul>\n </div>\n )}\n\n {/* Custom Footer Section */}\n {sidebarFooter && (\n <div\n className={cn(\n 'flex-none p-4 border-t border-border bg-background/50 backdrop-blur-sm',\n collapsed ? 'flex justify-center' : '',\n )}\n >\n {sidebarFooter(collapsed)}\n </div>\n )}\n </div>\n </TooltipProvider>\n );\n}\n\nfunction SidebarGroupSection({\n group,\n collapsed,\n activePath,\n onNavigate,\n density,\n}: {\n group: SmartSidebarGroup;\n collapsed: boolean;\n activePath?: string;\n onNavigate: (path: string) => void;\n density: (typeof sidebarDensity)[SpacingTheme];\n}) {\n const [groupCollapsed, setGroupCollapsed] = React.useState(\n group.defaultCollapsed ?? false\n );\n\n const isGroupCollapsible = group.collapsible && !collapsed;\n\n const toggleGroup = React.useCallback(() => {\n if (isGroupCollapsible) setGroupCollapsed(prev => !prev);\n }, [isGroupCollapsible]);\n\n // If no items, don't render group\n if (!group.items?.length) return null;\n\n const visibleItems = isGroupCollapsible && groupCollapsed\n ? group.items.slice(0, 2)\n : group.items;\n\n return (\n <div className={cn('flex flex-col', density.itemGap)}>\n {/* Group Title Area - Fixed Height for smooth transition */}\n {group.title && (\n <div\n className={cn(\n 'h-7 flex items-center relative px-2',\n isGroupCollapsible && 'cursor-pointer hover:text-primary transition-colors',\n )}\n onClick={toggleGroup}\n >\n {/* Title Text */}\n <h4\n className={cn(\n 'text-sm font-semibold text-primary/80 uppercase tracking-wider overflow-hidden text-ellipsis whitespace-nowrap absolute left-2 right-2 transition-all duration-300 ease-in-out',\n collapsed ? 'opacity-0 translate-x-[-10px]' : 'opacity-100 translate-x-0',\n )}\n >\n {group.title}\n {isGroupCollapsible && (\n <span className='ml-1.5 text-xs opacity-60'>\n {groupCollapsed ? '▸' : '▾'}\n </span>\n )}\n </h4>\n\n {/* Collapsed Separator */}\n <div\n className={cn(\n 'absolute left-0 right-0 top-1/2 -translate-y-1/2 flex justify-center transition-all duration-300',\n collapsed ? 'opacity-100' : 'opacity-0',\n )}\n >\n <Separator className='w-8 opacity-50' />\n </div>\n </div>\n )}\n\n <ul className={cn('flex flex-col', density.itemGap)}>\n {visibleItems.map((item, index) => (\n <SidebarItemRow\n key={index}\n item={item}\n collapsed={collapsed}\n isActive={activePath === item.path}\n onNavigate={onNavigate}\n itemHeight={density.itemHeight}\n />\n ))}\n {isGroupCollapsible && groupCollapsed && group.items.length > 2 && (\n <li>\n <button\n onClick={(e) => { e.stopPropagation(); setGroupCollapsed(false); }}\n className='flex w-full items-center justify-center h-8 text-xs text-muted-foreground hover:text-primary transition-colors'\n >\n +{group.items.length - 2} more\n </button>\n </li>\n )}\n </ul>\n </div>\n );\n}\n\nfunction SidebarItemRow({\n item,\n collapsed,\n isActive,\n onNavigate,\n itemHeight,\n}: {\n item: SmartSidebarItem;\n collapsed: boolean;\n isActive: boolean;\n onNavigate: (path: string) => void;\n itemHeight: string;\n}) {\n return (\n <li>\n <Tooltip>\n <TooltipTrigger\n className={cn(\n buttonVariants({ variant: isActive ? 'secondary' : 'ghost' }),\n 'flex w-full items-center transition-all duration-300',\n itemHeight,\n collapsed ? 'justify-center px-1' : 'justify-start px-3',\n isActive && 'bg-primary/10 text-primary font-medium hover:bg-primary/20',\n !isActive && 'text-muted-foreground hover:text-foreground font-normal',\n )}\n onClick={() => onNavigate(item.path)}\n disabled={item.disabled}\n >\n {/* Icon Wrapper */}\n <span\n className={cn(\n 'flex items-center justify-center shrink-0 transition-all duration-300',\n isActive ? 'text-primary' : 'opacity-70',\n )}\n >\n {React.isValidElement(item.icon)\n ? // @ts-expect-error - cloning strictly for size prop if supported\n React.cloneElement(item.icon, { size: 18 })\n : item.icon}\n </span>\n\n {/* Label & Extra Wrapper for smooth transition */}\n <span\n className={cn(\n 'flex flex-1 items-center overflow-hidden transition-all duration-300 ease-in-out',\n collapsed ? 'max-w-0 opacity-0' : 'max-w-[200px] opacity-100 ml-3',\n )}\n >\n <span className='truncate flex-1 text-left text-sm'>{item.label}</span>\n {item.extra && (\n <span className='shrink-0 text-xs text-muted-foreground ml-2'>{item.extra}</span>\n )}\n </span>\n </TooltipTrigger>\n {collapsed && (\n <TooltipContent side='right' className='flex items-center gap-2'>\n {item.label}\n {item.extra && <span className='opacity-70'>{item.extra}</span>}\n </TooltipContent>\n )}\n </Tooltip>\n </li>\n );\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"SplashScreen.cjs","names":["React","cn","ScreenTransition","require_runtime","require_ui_lib_utils","require_tools_components_future_ScreenTransition","react_jsx_runtime","react","PHASE_MESSAGES","SplashScreen","exited","setExited","handleHalf","onComplete","defaultContent","logo","message","phase","children","i","className"],"sources":["../../../../src/tools/components/splash/SplashScreen.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { cn } from '../../lib/utils';\nimport { ScreenTransition, type TransitionType } from '../future/ScreenTransition';\n\nconst PHASE_MESSAGES: Record<string, string> = {\n initializing: 'システムを初期化しています...',\n loading: 'データを読み込んでいます...',\n hydrating: 'アプリケーションを起動しています...',\n connecting: 'サーバーに接続しています...',\n syncing: 'データを同期しています...',\n ready: '',\n};\n\nexport interface SplashScreenProps {\n /** スプラッシュを表示するか(false で退場アニメ開始) */\n show: boolean;\n /** 退場アニメーションのタイプ */\n type?: TransitionType;\n /** アニメーション時間(ms, デフォルト 600) */\n duration?: number;\n /** 表示フェーズ(initializing / loading / hydrating / connecting / syncing) */\n phase?: string;\n /** 任意のメッセージ(phase より優先) */\n message?: string;\n /** 任意のロゴ要素 */\n logo?: React.ReactNode;\n /** 完全カスタムコンテンツ(渡すと phase/message/logo は無視) */\n children?: React.ReactNode;\n /** アニメーション完了時のコールバック */\n onComplete?: () => void;\n /** 追加クラス */\n className?: string;\n}\n\n/**\n * 全画面スプラッシュ画面コンポーネント。\n *\n * アプリ起動時の初期化・データ読み込み中などに表示する。\n * `show` が `false` になると `ScreenTransition` の退場アニメーションを再生し、\n * 完了後に DOM から削除される。\n *\n * 子要素を渡せば完全カスタム表示、渡さなければ `phase` に応じた\n * デフォルトメッセージ + ロゴを表示する。\n *\n * ### 表示タイミングの制御\n *\n * スプラッシュの表示制御はプロジェクト側で行う。典型的なパターン:\n *\n * ```tsx\n * function App() {\n * const [ready, setReady] = useState(false);\n *\n * useEffect(() => {\n * Promise.all([\n * initAuth(),\n * loadData(),\n * hydrateApp(),\n * ]).then(() => setReady(true));\n * }, []);\n *\n * return (\n * <>\n * <SplashScreen\n * show={!ready}\n * type=\"radial\"\n * phase={phase}\n * onComplete={() => console.log('splash finished')}\n * />\n * {ready && <MainApp />}\n * </>\n * );\n * }\n * ```\n *\n * @param props - コンポーネントのプロパティ\n * @param props.show - false になると退場アニメーションを開始する\n * @param props.type - 退場アニメーションの種類(デフォルト: glitch)\n * @param props.duration - アニメーション時間(デフォルト: 600ms)\n * @param props.phase - 表示するフェーズ名。内蔵メッセージ: initializing / loading / hydrating / connecting / syncing\n * @param props.message - 任意のメッセージ文字列(phase より優先)\n * @param props.logo - ロゴ要素\n * @param props.children - 完全カスタムコンテンツ\n * @param props.onComplete - 退場アニメーション完了時のコールバック\n * @param props.className - 追加クラス\n *\n * @example\n * ```tsx\n * // デフォルト表示(phase で自動メッセージ)\n * <SplashScreen show={splash} type=\"radial\" phase=\"hydrating\" />\n *\n * // カスタムメッセージ\n * <SplashScreen show={splash} message=\"データ準備中...\" />\n *\n * // 完全カスタム\n * <SplashScreen show={splash} type=\"glitch\">\n * <MyCustomContent />\n * </SplashScreen>\n * ```\n */\nexport function SplashScreen({\n show,\n type = 'glitch',\n duration = 600,\n phase,\n message,\n logo,\n children,\n onComplete,\n className,\n}: SplashScreenProps) {\n const [exited, setExited] = React.useState(false);\n\n const handleHalf = React.useCallback(() => {\n setExited(true);\n onComplete?.();\n }, [onComplete]);\n\n if (exited) return null;\n\n const defaultContent = (\n <div className=\"flex flex-col items-center justify-center min-h-screen bg-background text-foreground\">\n {logo && <div className=\"mb-6\">{logo}</div>}\n {!logo && (\n <div className=\"mb-6 text-2xl font-bold tracking-[0.3em] text-foreground\">\n LOADING\n </div>\n )}\n <div\n className={cn(\n 'font-mono text-xs tracking-[0.2em]',\n 'text-foreground',\n )}\n >\n {message || (phase ? PHASE_MESSAGES[phase] ?? phase : 'LOADING')}\n </div>\n {(!message && !children) && (\n <div className=\"mt-8 flex gap-1\">\n {[0, 1, 2].map((i) => (\n <div\n key={i}\n className=\"w-1.5 h-1.5 rounded-full bg-primary\"\n style={{\n animation: 'splash-dot 1.4s ease-in-out infinite',\n animationDelay: `${i * 0.2}s`,\n opacity: 0.3,\n }}\n />\n ))}\n </div>\n )}\n </div>\n );\n\n return (\n <div\n className={cn('fixed inset-0 z-[10000]', className)}\n style={{ background: 'var(--background)' }}\n >\n <ScreenTransition\n type={type}\n duration={duration}\n trigger={show ? 0 : 1}\n onHalf={handleHalf}\n >\n {children || defaultContent}\n </ScreenTransition>\n </div>\n );\n}\nSplashScreen.displayName = 'SplashScreen';\n"],"mappings":"A,kTAMA,IAAMQ,EAAyC,CAC7C,aAAc,mBACd,QAAS,kBACT,UAAW,sBACX,WAAY,kBACZ,QAAS,iBACT,MAAO,EACT,EAwFA,SAAgBC,EAAa,CAC3B,OACA,OAAO,SACP,WAAW,IACX,QACA,UACA,OACA,WACA,aACA,aACoB,CACpB,GAAM,CAACC,EAAQC,GAAaX,EAAM,SAAS,EAAK,EAE1CY,EAAaZ,EAAM,gBAAkB,CACzCW,EAAU,EAAI,EACdE,IAAa,CACf,EAAG,CAACA,CAAU,CAAC,EAEf,GAAIH,EAAQ,OAAO,KAEnB,IAAMI,GACJ,EAAAR,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,uFAAf,SAAA,CACGS,IAAQ,EAAAT,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,OAAQ,SAAAS,CAAU,CAAA,EACzC,CAACA,IACA,EAAAT,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,2DAA2D,SAAA,SAErE,CAAA,GAEP,EAAAA,EAAA,IAAA,CAAC,MAAD,CACE,UAAWL,EAAAA,GACT,qCACA,iBACF,EAEC,SAAAe,IAAYC,EAAQT,EAAeS,IAAUA,EAAQ,UACnD,CAAA,EACH,CAACD,GAAW,CAACE,IACb,EAAAZ,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,kBACZ,SAAA,CAAC,EAAG,EAAG,CAAC,CAAC,CAAC,IAAK,IACd,EAAAA,EAAA,IAAA,CAAC,MAAD,CAEE,UAAU,sCACV,MAAO,CACL,UAAW,uCACX,eAAgB,GAAGa,EAAI,GAAI,GAC3B,QAAS,EACX,CACD,EAPMA,CAON,CACF,CACE,CAAA,CAEJ,C,GAGP,OACE,EAAAb,EAAA,IAAA,CAAC,MAAD,CACE,UAAWL,EAAAA,GAAG,0BAA2BmB,CAAS,EAClD,MAAO,CAAE,WAAY,mBAAoB,EAEzC,UAAA,EAAAd,EAAA,IAAA,CAACJ,EAAAA,iBAAD,CACQ,OACI,WACV,QAAS,IACT,OAAQU,EAEP,SAAAM,GAAYJ,CACG,CAAA,CACf,CAAA,CAET,CACA,EAAa,YAAc,e"}
1
+ {"version":3,"file":"SplashScreen.cjs","names":["React","cn","ScreenTransition","require_runtime","require_ui_lib_utils","require_tools_components_future_ScreenTransition","react_jsx_runtime","react","PHASE_MESSAGES","SplashScreen","exited","setExited","handleHalf","onComplete","defaultContent","logo","message","phase","children","i","className"],"sources":["../../../../src/tools/components/splash/SplashScreen.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { cn } from '../../lib/utils';\nimport { ScreenTransition, type TransitionType } from '../future/ScreenTransition';\n\nconst PHASE_MESSAGES: Record<string, string> = {\n initializing: 'システムを初期化しています...',\n loading: 'データを読み込んでいます...',\n hydrating: 'アプリケーションを起動しています...',\n connecting: 'サーバーに接続しています...',\n syncing: 'データを同期しています...',\n ready: '',\n};\n\n/**\n * Host inputs and presentation settings for SplashScreen.\n * @see SplashScreen\n */\nexport interface SplashScreenProps {\n /**\n * Mount as true, then set false to trigger one dismissal. Initial false does not dismiss automatically.\n */\n show: boolean;\n /**\n * Transition class-name suffix; defaults to glitch. Matching animation CSS is host-owned.\n */\n type?: TransitionType;\n /**\n * Configured full transition duration in milliseconds; defaults to 600. Splash removal/onComplete occur at duration / 2.\n */\n duration?: number;\n /**\n * Built-in phase message key (initializing/loading/hydrating/connecting/syncing/ready); unknown strings display verbatim, omitted displays LOADING.\n */\n phase?: string;\n /**\n * Truthy custom text overriding the phase message; an empty string falls back to the phase.\n */\n message?: string;\n /**\n * Optional logo; omitted renders LOADING text.\n */\n logo?: React.ReactNode;\n /**\n * Truthy custom content replacing phase/message/logo output.\n */\n children?: React.ReactNode;\n /**\n * Called once when the exit midpoint removes the splash, not after the full duration. Later show=true does not remount it.\n * @returns No value; complete the host callback action.\n */\n onComplete?: () => void;\n /**\n * Additional classes on the component outer element.\n */\n className?: string;\n}\n\n/**\n * Shows a full-screen loading surface until a true-to-false show change reaches the transition midpoint.\n * @param props - Visibility trigger, transition settings and optional loading content/callback; see SplashScreenProps. Wrapper defaults: type='glitch', duration=600.\n * @returns The rendered SplashScreen composition.\n * @remarks Import @alneas/appkit-react/styles in the rendering host. Import Appkit CSS. The host owns readiness and must mount with show=true, then change to false to start dismissal. Initial show=false does not dismiss because the internal transition records that initial trigger. At duration/2 the splash unmounts itself and calls onComplete; it does not wait for a full exit/enter cycle or reappear after show becomes true. Supplied truthy children replace default content. Transition class names and --future-duration are emitted, but this package has no public tools/transitions stylesheet/export and its bundled CSS supplies no future-transition/splash-dot animation rules; the host must add matching CSS to see those effects.\n * @example\n * ```tsx\n * import { useState } from 'react';\n * import { SplashScreen } from '@alneas/appkit-react/tools/splash';\n * import '@alneas/appkit-react/styles';\n *\n * export function Example() {\n * const [show, setShow] = useState(true);\n * return (<><button type=\"button\" onClick={() => setShow(false)}>Ready</button><SplashScreen show={show} phase=\"loading\" /></>);\n * }\n * ```\n */\nexport function SplashScreen({\n show,\n type = 'glitch',\n duration = 600,\n phase,\n message,\n logo,\n children,\n onComplete,\n className,\n}: SplashScreenProps) {\n const [exited, setExited] = React.useState(false);\n\n const handleHalf = React.useCallback(() => {\n setExited(true);\n onComplete?.();\n }, [onComplete]);\n\n if (exited) return null;\n\n const defaultContent = (\n <div className=\"flex flex-col items-center justify-center min-h-screen bg-background text-foreground\">\n {logo && <div className=\"mb-6\">{logo}</div>}\n {!logo && (\n <div className=\"mb-6 text-2xl font-bold tracking-[0.3em] text-foreground\">\n LOADING\n </div>\n )}\n <div\n className={cn(\n 'font-mono text-xs tracking-[0.2em]',\n 'text-foreground',\n )}\n >\n {message || (phase ? PHASE_MESSAGES[phase] ?? phase : 'LOADING')}\n </div>\n {(!message && !children) && (\n <div className=\"mt-8 flex gap-1\">\n {[0, 1, 2].map((i) => (\n <div\n key={i}\n className=\"w-1.5 h-1.5 rounded-full bg-primary\"\n style={{\n animation: 'splash-dot 1.4s ease-in-out infinite',\n animationDelay: `${i * 0.2}s`,\n opacity: 0.3,\n }}\n />\n ))}\n </div>\n )}\n </div>\n );\n\n return (\n <div\n className={cn('fixed inset-0 z-[10000]', className)}\n style={{ background: 'var(--background)' }}\n >\n <ScreenTransition\n type={type}\n duration={duration}\n trigger={show ? 0 : 1}\n onHalf={handleHalf}\n >\n {children || defaultContent}\n </ScreenTransition>\n </div>\n );\n}\nSplashScreen.displayName = 'SplashScreen';\n"],"mappings":"A,kTAMA,IAAMQ,EAAyC,CAC7C,aAAc,mBACd,QAAS,kBACT,UAAW,sBACX,WAAY,kBACZ,QAAS,iBACT,MAAO,EACT,EA+DA,SAAgBC,EAAa,CAC3B,OACA,OAAO,SACP,WAAW,IACX,QACA,UACA,OACA,WACA,aACA,aACoB,CACpB,GAAM,CAACC,EAAQC,GAAaX,EAAM,SAAS,EAAK,EAE1CY,EAAaZ,EAAM,gBAAkB,CACzCW,EAAU,EAAI,EACdE,IAAa,CACf,EAAG,CAACA,CAAU,CAAC,EAEf,GAAIH,EAAQ,OAAO,KAEnB,IAAMI,GACJ,EAAAR,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,uFAAf,SAAA,CACGS,IAAQ,EAAAT,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,OAAQ,SAAAS,CAAU,CAAA,EACzC,CAACA,IACA,EAAAT,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,2DAA2D,SAAA,SAErE,CAAA,GAEP,EAAAA,EAAA,IAAA,CAAC,MAAD,CACE,UAAWL,EAAAA,GACT,qCACA,iBACF,EAEC,SAAAe,IAAYC,EAAQT,EAAeS,IAAUA,EAAQ,UACnD,CAAA,EACH,CAACD,GAAW,CAACE,IACb,EAAAZ,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,kBACZ,SAAA,CAAC,EAAG,EAAG,CAAC,CAAC,CAAC,IAAK,IACd,EAAAA,EAAA,IAAA,CAAC,MAAD,CAEE,UAAU,sCACV,MAAO,CACL,UAAW,uCACX,eAAgB,GAAGa,EAAI,GAAI,GAC3B,QAAS,EACX,CACD,EAPMA,CAON,CACF,CACE,CAAA,CAEJ,C,GAGP,OACE,EAAAb,EAAA,IAAA,CAAC,MAAD,CACE,UAAWL,EAAAA,GAAG,0BAA2BmB,CAAS,EAClD,MAAO,CAAE,WAAY,mBAAoB,EAEzC,UAAA,EAAAd,EAAA,IAAA,CAACJ,EAAAA,iBAAD,CACQ,OACI,WACV,QAAS,IACT,OAAQU,EAEP,SAAAM,GAAYJ,CACG,CAAA,CACf,CAAA,CAET,CACA,EAAa,YAAc,e"}
@@ -1,88 +1,63 @@
1
1
  import { TransitionType } from '../future/ScreenTransition.cjs';
2
2
  import * as React from 'react';
3
+ /**
4
+ * Host inputs and presentation settings for SplashScreen.
5
+ * @see SplashScreen
6
+ */
3
7
  export interface SplashScreenProps {
4
- /** スプラッシュを表示するか(false で退場アニメ開始) */
8
+ /**
9
+ * Mount as true, then set false to trigger one dismissal. Initial false does not dismiss automatically.
10
+ */
5
11
  show: boolean;
6
- /** 退場アニメーションのタイプ */
12
+ /**
13
+ * Transition class-name suffix; defaults to glitch. Matching animation CSS is host-owned.
14
+ */
7
15
  type?: TransitionType;
8
- /** アニメーション時間(ms, デフォルト 600) */
16
+ /**
17
+ * Configured full transition duration in milliseconds; defaults to 600. Splash removal/onComplete occur at duration / 2.
18
+ */
9
19
  duration?: number;
10
- /** 表示フェーズ(initializing / loading / hydrating / connecting / syncing) */
20
+ /**
21
+ * Built-in phase message key (initializing/loading/hydrating/connecting/syncing/ready); unknown strings display verbatim, omitted displays LOADING.
22
+ */
11
23
  phase?: string;
12
- /** 任意のメッセージ(phase より優先) */
24
+ /**
25
+ * Truthy custom text overriding the phase message; an empty string falls back to the phase.
26
+ */
13
27
  message?: string;
14
- /** 任意のロゴ要素 */
28
+ /**
29
+ * Optional logo; omitted renders LOADING text.
30
+ */
15
31
  logo?: React.ReactNode;
16
- /** 完全カスタムコンテンツ(渡すと phase/message/logo は無視) */
32
+ /**
33
+ * Truthy custom content replacing phase/message/logo output.
34
+ */
17
35
  children?: React.ReactNode;
18
- /** アニメーション完了時のコールバック */
36
+ /**
37
+ * Called once when the exit midpoint removes the splash, not after the full duration. Later show=true does not remount it.
38
+ * @returns No value; complete the host callback action.
39
+ */
19
40
  onComplete?: () => void;
20
- /** 追加クラス */
41
+ /**
42
+ * Additional classes on the component outer element.
43
+ */
21
44
  className?: string;
22
45
  }
23
46
  /**
24
- * 全画面スプラッシュ画面コンポーネント。
25
- *
26
- * アプリ起動時の初期化・データ読み込み中などに表示する。
27
- * `show` が `false` になると `ScreenTransition` の退場アニメーションを再生し、
28
- * 完了後に DOM から削除される。
29
- *
30
- * 子要素を渡せば完全カスタム表示、渡さなければ `phase` に応じた
31
- * デフォルトメッセージ + ロゴを表示する。
32
- *
33
- * ### 表示タイミングの制御
34
- *
35
- * スプラッシュの表示制御はプロジェクト側で行う。典型的なパターン:
36
- *
37
- * ```tsx
38
- * function App() {
39
- * const [ready, setReady] = useState(false);
40
- *
41
- * useEffect(() => {
42
- * Promise.all([
43
- * initAuth(),
44
- * loadData(),
45
- * hydrateApp(),
46
- * ]).then(() => setReady(true));
47
- * }, []);
48
- *
49
- * return (
50
- * <>
51
- * <SplashScreen
52
- * show={!ready}
53
- * type="radial"
54
- * phase={phase}
55
- * onComplete={() => console.log('splash finished')}
56
- * />
57
- * {ready && <MainApp />}
58
- * </>
59
- * );
60
- * }
61
- * ```
62
- *
63
- * @param props - コンポーネントのプロパティ
64
- * @param props.show - false になると退場アニメーションを開始する
65
- * @param props.type - 退場アニメーションの種類(デフォルト: glitch)
66
- * @param props.duration - アニメーション時間(デフォルト: 600ms)
67
- * @param props.phase - 表示するフェーズ名。内蔵メッセージ: initializing / loading / hydrating / connecting / syncing
68
- * @param props.message - 任意のメッセージ文字列(phase より優先)
69
- * @param props.logo - ロゴ要素
70
- * @param props.children - 完全カスタムコンテンツ
71
- * @param props.onComplete - 退場アニメーション完了時のコールバック
72
- * @param props.className - 追加クラス
73
- *
47
+ * Shows a full-screen loading surface until a true-to-false show change reaches the transition midpoint.
48
+ * @param props - Visibility trigger, transition settings and optional loading content/callback; see SplashScreenProps. Wrapper defaults: type='glitch', duration=600.
49
+ * @returns The rendered SplashScreen composition.
50
+ * @remarks Import @alneas/appkit-react/styles in the rendering host. Import Appkit CSS. The host owns readiness and must mount with show=true, then change to false to start dismissal. Initial show=false does not dismiss because the internal transition records that initial trigger. At duration/2 the splash unmounts itself and calls onComplete; it does not wait for a full exit/enter cycle or reappear after show becomes true. Supplied truthy children replace default content. Transition class names and --future-duration are emitted, but this package has no public tools/transitions stylesheet/export and its bundled CSS supplies no future-transition/splash-dot animation rules; the host must add matching CSS to see those effects.
74
51
  * @example
75
52
  * ```tsx
76
- * // デフォルト表示(phase で自動メッセージ)
77
- * <SplashScreen show={splash} type="radial" phase="hydrating" />
53
+ * import { useState } from 'react';
54
+ * import { SplashScreen } from '@alneas/appkit-react/tools/splash';
55
+ * import '@alneas/appkit-react/styles';
78
56
  *
79
- * // カスタムメッセージ
80
- * <SplashScreen show={splash} message="データ準備中..." />
81
- *
82
- * // 完全カスタム
83
- * <SplashScreen show={splash} type="glitch">
84
- * <MyCustomContent />
85
- * </SplashScreen>
57
+ * export function Example() {
58
+ * const [show, setShow] = useState(true);
59
+ * return (<><button type="button" onClick={() => setShow(false)}>Ready</button><SplashScreen show={show} phase="loading" /></>);
60
+ * }
86
61
  * ```
87
62
  */
88
63
  export declare function SplashScreen({ show, type, duration, phase, message, logo, children, onComplete, className, }: SplashScreenProps): React.JSX.Element | null;