@alfakit/react 0.0.0-stage → 0.1.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 (1014) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +19 -2
  3. package/dist/app/components.d.ts +49 -0
  4. package/dist/app/components.d.ts.map +1 -0
  5. package/dist/app/components.js +99 -0
  6. package/dist/app/components.js.map +1 -0
  7. package/dist/app/hooks.d.ts +79 -0
  8. package/dist/app/hooks.d.ts.map +1 -0
  9. package/dist/app/hooks.js +239 -0
  10. package/dist/app/hooks.js.map +1 -0
  11. package/dist/components/actions/action-button.d.ts +17 -0
  12. package/dist/components/actions/action-button.d.ts.map +1 -0
  13. package/dist/components/actions/action-button.js +150 -0
  14. package/dist/components/actions/action-button.js.map +1 -0
  15. package/dist/components/actions/action-context.d.ts +11 -0
  16. package/dist/components/actions/action-context.d.ts.map +1 -0
  17. package/dist/components/actions/action-context.js +24 -0
  18. package/dist/components/actions/action-context.js.map +1 -0
  19. package/dist/components/actions/action-list.d.ts +20 -0
  20. package/dist/components/actions/action-list.d.ts.map +1 -0
  21. package/dist/components/actions/action-list.js +181 -0
  22. package/dist/components/actions/action-list.js.map +1 -0
  23. package/dist/components/actions/action-modals.d.ts +5 -0
  24. package/dist/components/actions/action-modals.d.ts.map +1 -0
  25. package/dist/components/actions/action-modals.js +362 -0
  26. package/dist/components/actions/action-modals.js.map +1 -0
  27. package/dist/components/actions/index.d.ts +5 -0
  28. package/dist/components/ai/copilot-panel.js +439 -0
  29. package/dist/components/ai/copilot-panel.js.map +1 -0
  30. package/dist/components/ai/copilot.d.ts +12 -0
  31. package/dist/components/ai/copilot.d.ts.map +1 -0
  32. package/dist/components/ai/copilot.js +66 -0
  33. package/dist/components/ai/copilot.js.map +1 -0
  34. package/dist/components/ai/index.d.ts +3 -0
  35. package/dist/components/ai/index.js +3 -0
  36. package/dist/components/ai/stream-lazy.d.ts +9 -0
  37. package/dist/components/ai/stream-lazy.d.ts.map +1 -0
  38. package/dist/components/ai/stream-lazy.js +13 -0
  39. package/dist/components/ai/stream-lazy.js.map +1 -0
  40. package/dist/components/ai/stream.js +85 -0
  41. package/dist/components/ai/stream.js.map +1 -0
  42. package/dist/components/analytics/alfakit-analytics.d.ts +14 -0
  43. package/dist/components/analytics/alfakit-analytics.d.ts.map +1 -0
  44. package/dist/components/analytics/alfakit-analytics.js +36 -0
  45. package/dist/components/analytics/alfakit-analytics.js.map +1 -0
  46. package/dist/components/analytics/breakdown.d.ts +11 -0
  47. package/dist/components/analytics/breakdown.d.ts.map +1 -0
  48. package/dist/components/analytics/breakdown.js +155 -0
  49. package/dist/components/analytics/breakdown.js.map +1 -0
  50. package/dist/components/analytics/index.d.ts +3 -0
  51. package/dist/components/cms/admin-bar.js +68 -0
  52. package/dist/components/cms/admin-bar.js.map +1 -0
  53. package/dist/components/cms/blocks.d.ts +41 -0
  54. package/dist/components/cms/blocks.d.ts.map +1 -0
  55. package/dist/components/cms/blocks.js +400 -0
  56. package/dist/components/cms/blocks.js.map +1 -0
  57. package/dist/components/cms/context.d.ts +24 -0
  58. package/dist/components/cms/context.d.ts.map +1 -0
  59. package/dist/components/cms/context.js +43 -0
  60. package/dist/components/cms/context.js.map +1 -0
  61. package/dist/components/cms/head.d.ts +11 -0
  62. package/dist/components/cms/head.d.ts.map +1 -0
  63. package/dist/components/cms/head.js +40 -0
  64. package/dist/components/cms/head.js.map +1 -0
  65. package/dist/components/cms/index.d.ts +8 -0
  66. package/dist/components/cms/index.js +8 -0
  67. package/dist/components/cms/live-preview-lazy.d.ts +9 -0
  68. package/dist/components/cms/live-preview-lazy.d.ts.map +1 -0
  69. package/dist/components/cms/live-preview-lazy.js +13 -0
  70. package/dist/components/cms/live-preview-lazy.js.map +1 -0
  71. package/dist/components/cms/live-preview.js +288 -0
  72. package/dist/components/cms/live-preview.js.map +1 -0
  73. package/dist/components/cms/menu.d.ts +24 -0
  74. package/dist/components/cms/menu.d.ts.map +1 -0
  75. package/dist/components/cms/menu.js +181 -0
  76. package/dist/components/cms/menu.js.map +1 -0
  77. package/dist/components/cms/page.d.ts +27 -0
  78. package/dist/components/cms/page.d.ts.map +1 -0
  79. package/dist/components/cms/page.js +180 -0
  80. package/dist/components/cms/page.js.map +1 -0
  81. package/dist/components/cms/parts.d.ts +24 -0
  82. package/dist/components/cms/parts.d.ts.map +1 -0
  83. package/dist/components/cms/parts.js +58 -0
  84. package/dist/components/cms/parts.js.map +1 -0
  85. package/dist/components/dev-tools/dev-tools-inspector.js +302 -0
  86. package/dist/components/dev-tools/dev-tools-inspector.js.map +1 -0
  87. package/dist/components/dev-tools/dev-tools-slot.js +24 -0
  88. package/dist/components/dev-tools/dev-tools-slot.js.map +1 -0
  89. package/dist/components/entries/code-entry.d.ts +8 -0
  90. package/dist/components/entries/code-entry.d.ts.map +1 -0
  91. package/dist/components/entries/code-entry.js +59 -0
  92. package/dist/components/entries/code-entry.js.map +1 -0
  93. package/dist/components/entries/entry-wrapper.d.ts +13 -0
  94. package/dist/components/entries/entry-wrapper.d.ts.map +1 -0
  95. package/dist/components/entries/entry-wrapper.js +175 -0
  96. package/dist/components/entries/entry-wrapper.js.map +1 -0
  97. package/dist/components/entries/index.d.ts +6 -0
  98. package/dist/components/entries/other-entries.d.ts +20 -0
  99. package/dist/components/entries/other-entries.d.ts.map +1 -0
  100. package/dist/components/entries/other-entries.js +169 -0
  101. package/dist/components/entries/other-entries.js.map +1 -0
  102. package/dist/components/entries/repeatable-entry-table.js +33 -0
  103. package/dist/components/entries/repeatable-entry-table.js.map +1 -0
  104. package/dist/components/entries/text-entry.d.ts +12 -0
  105. package/dist/components/entries/text-entry.d.ts.map +1 -0
  106. package/dist/components/entries/text-entry.js +181 -0
  107. package/dist/components/entries/text-entry.js.map +1 -0
  108. package/dist/components/entries/view-entry.d.ts +8 -0
  109. package/dist/components/entries/view-entry.d.ts.map +1 -0
  110. package/dist/components/entries/view-entry.js +26 -0
  111. package/dist/components/entries/view-entry.js.map +1 -0
  112. package/dist/components/fields/builder-picker.js +215 -0
  113. package/dist/components/fields/builder-picker.js.map +1 -0
  114. package/dist/components/fields/builder.d.ts +16 -0
  115. package/dist/components/fields/builder.d.ts.map +1 -0
  116. package/dist/components/fields/builder.js +351 -0
  117. package/dist/components/fields/builder.js.map +1 -0
  118. package/dist/components/fields/checkbox-list.d.ts +7 -0
  119. package/dist/components/fields/checkbox-list.d.ts.map +1 -0
  120. package/dist/components/fields/checkbox-list.js +133 -0
  121. package/dist/components/fields/checkbox-list.js.map +1 -0
  122. package/dist/components/fields/checkbox.d.ts +7 -0
  123. package/dist/components/fields/checkbox.d.ts.map +1 -0
  124. package/dist/components/fields/checkbox.js +29 -0
  125. package/dist/components/fields/checkbox.js.map +1 -0
  126. package/dist/components/fields/code-editor-lazy.d.ts +9 -0
  127. package/dist/components/fields/code-editor-lazy.d.ts.map +1 -0
  128. package/dist/components/fields/code-editor-lazy.js +31 -0
  129. package/dist/components/fields/code-editor-lazy.js.map +1 -0
  130. package/dist/components/fields/code-editor.js +107 -0
  131. package/dist/components/fields/code-editor.js.map +1 -0
  132. package/dist/components/fields/code-tokens.js +18 -0
  133. package/dist/components/fields/code-tokens.js.map +1 -0
  134. package/dist/components/fields/color-picker.d.ts +7 -0
  135. package/dist/components/fields/color-picker.d.ts.map +1 -0
  136. package/dist/components/fields/color-picker.js +70 -0
  137. package/dist/components/fields/color-picker.js.map +1 -0
  138. package/dist/components/fields/date-picker.d.ts +7 -0
  139. package/dist/components/fields/date-picker.d.ts.map +1 -0
  140. package/dist/components/fields/date-picker.js +230 -0
  141. package/dist/components/fields/date-picker.js.map +1 -0
  142. package/dist/components/fields/file-upload.d.ts +7 -0
  143. package/dist/components/fields/file-upload.d.ts.map +1 -0
  144. package/dist/components/fields/file-upload.js +397 -0
  145. package/dist/components/fields/file-upload.js.map +1 -0
  146. package/dist/components/fields/hidden.d.ts +7 -0
  147. package/dist/components/fields/hidden.d.ts.map +1 -0
  148. package/dist/components/fields/hidden.js +17 -0
  149. package/dist/components/fields/hidden.js.map +1 -0
  150. package/dist/components/fields/icon-picker-lazy.d.ts +9 -0
  151. package/dist/components/fields/icon-picker-lazy.d.ts.map +1 -0
  152. package/dist/components/fields/icon-picker-lazy.js +45 -0
  153. package/dist/components/fields/icon-picker-lazy.js.map +1 -0
  154. package/dist/components/fields/icon-picker-value.js +48 -0
  155. package/dist/components/fields/icon-picker-value.js.map +1 -0
  156. package/dist/components/fields/icon-picker.js +228 -0
  157. package/dist/components/fields/icon-picker.js.map +1 -0
  158. package/dist/components/fields/image-editor-dialog-lazy.js +18 -0
  159. package/dist/components/fields/image-editor-dialog-lazy.js.map +1 -0
  160. package/dist/components/fields/image-editor-dialog.js +328 -0
  161. package/dist/components/fields/image-editor-dialog.js.map +1 -0
  162. package/dist/components/fields/index.d.ts +24 -0
  163. package/dist/components/fields/item-actions.js +270 -0
  164. package/dist/components/fields/item-actions.js.map +1 -0
  165. package/dist/components/fields/key-value.d.ts +11 -0
  166. package/dist/components/fields/key-value.d.ts.map +1 -0
  167. package/dist/components/fields/key-value.js +194 -0
  168. package/dist/components/fields/key-value.js.map +1 -0
  169. package/dist/components/fields/lazy-fields.d.ts +13 -0
  170. package/dist/components/fields/lazy-fields.d.ts.map +1 -0
  171. package/dist/components/fields/lazy-fields.js +34 -0
  172. package/dist/components/fields/lazy-fields.js.map +1 -0
  173. package/dist/components/fields/modal-table-select.js +386 -0
  174. package/dist/components/fields/modal-table-select.js.map +1 -0
  175. package/dist/components/fields/money-input.d.ts +7 -0
  176. package/dist/components/fields/money-input.d.ts.map +1 -0
  177. package/dist/components/fields/money-input.js +91 -0
  178. package/dist/components/fields/money-input.js.map +1 -0
  179. package/dist/components/fields/one-time-code-input.d.ts +12 -0
  180. package/dist/components/fields/one-time-code-input.d.ts.map +1 -0
  181. package/dist/components/fields/one-time-code-input.js +53 -0
  182. package/dist/components/fields/one-time-code-input.js.map +1 -0
  183. package/dist/components/fields/query-builder-rules.js +295 -0
  184. package/dist/components/fields/query-builder-rules.js.map +1 -0
  185. package/dist/components/fields/radio.d.ts +7 -0
  186. package/dist/components/fields/radio.d.ts.map +1 -0
  187. package/dist/components/fields/radio.js +57 -0
  188. package/dist/components/fields/radio.js.map +1 -0
  189. package/dist/components/fields/repeater-table.js +111 -0
  190. package/dist/components/fields/repeater-table.js.map +1 -0
  191. package/dist/components/fields/repeater.d.ts +15 -0
  192. package/dist/components/fields/repeater.d.ts.map +1 -0
  193. package/dist/components/fields/repeater.js +209 -0
  194. package/dist/components/fields/repeater.js.map +1 -0
  195. package/dist/components/fields/rich-editor-extensions.js +295 -0
  196. package/dist/components/fields/rich-editor-extensions.js.map +1 -0
  197. package/dist/components/fields/rich-editor-lazy.d.ts +9 -0
  198. package/dist/components/fields/rich-editor-lazy.d.ts.map +1 -0
  199. package/dist/components/fields/rich-editor-lazy.js +24 -0
  200. package/dist/components/fields/rich-editor-lazy.js.map +1 -0
  201. package/dist/components/fields/rich-editor.js +517 -0
  202. package/dist/components/fields/rich-editor.js.map +1 -0
  203. package/dist/components/fields/select.d.ts +7 -0
  204. package/dist/components/fields/select.d.ts.map +1 -0
  205. package/dist/components/fields/select.js +455 -0
  206. package/dist/components/fields/select.js.map +1 -0
  207. package/dist/components/fields/slider.d.ts +12 -0
  208. package/dist/components/fields/slider.d.ts.map +1 -0
  209. package/dist/components/fields/slider.js +146 -0
  210. package/dist/components/fields/slider.js.map +1 -0
  211. package/dist/components/fields/tags-input.d.ts +7 -0
  212. package/dist/components/fields/tags-input.d.ts.map +1 -0
  213. package/dist/components/fields/tags-input.js +129 -0
  214. package/dist/components/fields/tags-input.js.map +1 -0
  215. package/dist/components/fields/text-input.d.ts +7 -0
  216. package/dist/components/fields/text-input.d.ts.map +1 -0
  217. package/dist/components/fields/text-input.js +135 -0
  218. package/dist/components/fields/text-input.js.map +1 -0
  219. package/dist/components/fields/textarea.d.ts +7 -0
  220. package/dist/components/fields/textarea.d.ts.map +1 -0
  221. package/dist/components/fields/textarea.js +37 -0
  222. package/dist/components/fields/textarea.js.map +1 -0
  223. package/dist/components/fields/toggle-buttons.d.ts +7 -0
  224. package/dist/components/fields/toggle-buttons.d.ts.map +1 -0
  225. package/dist/components/fields/toggle-buttons.js +84 -0
  226. package/dist/components/fields/toggle-buttons.js.map +1 -0
  227. package/dist/components/fields/toggle.d.ts +7 -0
  228. package/dist/components/fields/toggle.d.ts.map +1 -0
  229. package/dist/components/fields/toggle.js +39 -0
  230. package/dist/components/fields/toggle.js.map +1 -0
  231. package/dist/components/file-manager/file-manager-lazy.d.ts +10 -0
  232. package/dist/components/file-manager/file-manager-lazy.d.ts.map +1 -0
  233. package/dist/components/file-manager/file-manager-lazy.js +49 -0
  234. package/dist/components/file-manager/file-manager-lazy.js.map +1 -0
  235. package/dist/components/file-manager/file-manager.d.ts +1 -0
  236. package/dist/components/file-manager/file-manager.js +1387 -0
  237. package/dist/components/file-manager/file-manager.js.map +1 -0
  238. package/dist/components/file-manager/index.d.ts +3 -0
  239. package/dist/components/file-manager/picker-field.d.ts +12 -0
  240. package/dist/components/file-manager/picker-field.d.ts.map +1 -0
  241. package/dist/components/file-manager/picker-field.js +124 -0
  242. package/dist/components/file-manager/picker-field.js.map +1 -0
  243. package/dist/components/form/form-block.d.ts +12 -0
  244. package/dist/components/form/form-block.d.ts.map +1 -0
  245. package/dist/components/form/form-block.js +155 -0
  246. package/dist/components/form/form-block.js.map +1 -0
  247. package/dist/components/form/form-context.d.ts +27 -0
  248. package/dist/components/form/form-context.d.ts.map +1 -0
  249. package/dist/components/form/form-context.js +65 -0
  250. package/dist/components/form/form-context.js.map +1 -0
  251. package/dist/components/helpdesk/chat-panel.js +209 -0
  252. package/dist/components/helpdesk/chat-panel.js.map +1 -0
  253. package/dist/components/helpdesk/chat-widget.d.ts +23 -0
  254. package/dist/components/helpdesk/chat-widget.d.ts.map +1 -0
  255. package/dist/components/helpdesk/chat-widget.js +76 -0
  256. package/dist/components/helpdesk/chat-widget.js.map +1 -0
  257. package/dist/components/helpdesk/inbox-lazy.d.ts +9 -0
  258. package/dist/components/helpdesk/inbox-lazy.d.ts.map +1 -0
  259. package/dist/components/helpdesk/inbox-lazy.js +46 -0
  260. package/dist/components/helpdesk/inbox-lazy.js.map +1 -0
  261. package/dist/components/helpdesk/inbox.js +609 -0
  262. package/dist/components/helpdesk/inbox.js.map +1 -0
  263. package/dist/components/helpdesk/index.d.ts +3 -0
  264. package/dist/components/kanban/index.d.ts +2 -0
  265. package/dist/components/kanban/index.js +2 -0
  266. package/dist/components/kanban/kanban-lazy.d.ts +10 -0
  267. package/dist/components/kanban/kanban-lazy.d.ts.map +1 -0
  268. package/dist/components/kanban/kanban-lazy.js +31 -0
  269. package/dist/components/kanban/kanban-lazy.js.map +1 -0
  270. package/dist/components/kanban/kanban.js +591 -0
  271. package/dist/components/kanban/kanban.js.map +1 -0
  272. package/dist/components/layout/actions.js +40 -0
  273. package/dist/components/layout/actions.js.map +1 -0
  274. package/dist/components/layout/component-context.d.ts +13 -0
  275. package/dist/components/layout/component-context.d.ts.map +1 -0
  276. package/dist/components/layout/component-context.js +28 -0
  277. package/dist/components/layout/component-context.js.map +1 -0
  278. package/dist/components/layout/deferred.js +135 -0
  279. package/dist/components/layout/deferred.js.map +1 -0
  280. package/dist/components/layout/elements.d.ts +23 -0
  281. package/dist/components/layout/elements.d.ts.map +1 -0
  282. package/dist/components/layout/elements.js +183 -0
  283. package/dist/components/layout/elements.js.map +1 -0
  284. package/dist/components/layout/fieldset.d.ts +7 -0
  285. package/dist/components/layout/fieldset.d.ts.map +1 -0
  286. package/dist/components/layout/fieldset.js +29 -0
  287. package/dist/components/layout/fieldset.js.map +1 -0
  288. package/dist/components/layout/fused-group.d.ts +11 -0
  289. package/dist/components/layout/fused-group.d.ts.map +1 -0
  290. package/dist/components/layout/fused-group.js +64 -0
  291. package/dist/components/layout/fused-group.js.map +1 -0
  292. package/dist/components/layout/grid.d.ts +7 -0
  293. package/dist/components/layout/grid.d.ts.map +1 -0
  294. package/dist/components/layout/grid.js +20 -0
  295. package/dist/components/layout/grid.js.map +1 -0
  296. package/dist/components/layout/index.d.ts +12 -0
  297. package/dist/components/layout/mixed-content.d.ts +14 -0
  298. package/dist/components/layout/mixed-content.d.ts.map +1 -0
  299. package/dist/components/layout/mixed-content.js +44 -0
  300. package/dist/components/layout/mixed-content.js.map +1 -0
  301. package/dist/components/layout/prime.d.ts +17 -0
  302. package/dist/components/layout/prime.d.ts.map +1 -0
  303. package/dist/components/layout/prime.js +126 -0
  304. package/dist/components/layout/prime.js.map +1 -0
  305. package/dist/components/layout/schema-children.d.ts +18 -0
  306. package/dist/components/layout/schema-children.d.ts.map +1 -0
  307. package/dist/components/layout/schema-children.js +26 -0
  308. package/dist/components/layout/schema-children.js.map +1 -0
  309. package/dist/components/layout/section.d.ts +7 -0
  310. package/dist/components/layout/section.d.ts.map +1 -0
  311. package/dist/components/layout/section.js +133 -0
  312. package/dist/components/layout/section.js.map +1 -0
  313. package/dist/components/layout/tabs.d.ts +7 -0
  314. package/dist/components/layout/tabs.d.ts.map +1 -0
  315. package/dist/components/layout/tabs.js +83 -0
  316. package/dist/components/layout/tabs.js.map +1 -0
  317. package/dist/components/layout/wizard.d.ts +7 -0
  318. package/dist/components/layout/wizard.d.ts.map +1 -0
  319. package/dist/components/layout/wizard.js +172 -0
  320. package/dist/components/layout/wizard.js.map +1 -0
  321. package/dist/components/notifications/flash-toasts.d.ts +20 -0
  322. package/dist/components/notifications/flash-toasts.d.ts.map +1 -0
  323. package/dist/components/notifications/flash-toasts.js +121 -0
  324. package/dist/components/notifications/flash-toasts.js.map +1 -0
  325. package/dist/components/notifications/index.d.ts +5 -0
  326. package/dist/components/notifications/notifications-menu.d.ts +15 -0
  327. package/dist/components/notifications/notifications-menu.d.ts.map +1 -0
  328. package/dist/components/notifications/notifications-menu.js +201 -0
  329. package/dist/components/notifications/notifications-menu.js.map +1 -0
  330. package/dist/components/notifications/realtime-notifications.d.ts +9 -0
  331. package/dist/components/notifications/realtime-notifications.d.ts.map +1 -0
  332. package/dist/components/notifications/realtime-notifications.js +30 -0
  333. package/dist/components/notifications/realtime-notifications.js.map +1 -0
  334. package/dist/components/notifications/undo-button.d.ts +13 -0
  335. package/dist/components/notifications/undo-button.d.ts.map +1 -0
  336. package/dist/components/notifications/undo-button.js +54 -0
  337. package/dist/components/notifications/undo-button.js.map +1 -0
  338. package/dist/components/panel/app-sidebar.d.ts +7 -0
  339. package/dist/components/panel/app-sidebar.d.ts.map +1 -0
  340. package/dist/components/panel/app-sidebar.js +302 -0
  341. package/dist/components/panel/app-sidebar.js.map +1 -0
  342. package/dist/components/panel/bottom-nav.d.ts +9 -0
  343. package/dist/components/panel/bottom-nav.d.ts.map +1 -0
  344. package/dist/components/panel/bottom-nav.js +100 -0
  345. package/dist/components/panel/bottom-nav.js.map +1 -0
  346. package/dist/components/panel/debug-panel-slot.d.ts +8 -0
  347. package/dist/components/panel/debug-panel-slot.d.ts.map +1 -0
  348. package/dist/components/panel/debug-panel-slot.js +19 -0
  349. package/dist/components/panel/debug-panel-slot.js.map +1 -0
  350. package/dist/components/panel/debug-panel.d.ts +18 -0
  351. package/dist/components/panel/debug-panel.d.ts.map +1 -0
  352. package/dist/components/panel/debug-panel.js +423 -0
  353. package/dist/components/panel/debug-panel.js.map +1 -0
  354. package/dist/components/panel/global-search-palette.js +278 -0
  355. package/dist/components/panel/global-search-palette.js.map +1 -0
  356. package/dist/components/panel/global-search.d.ts +13 -0
  357. package/dist/components/panel/global-search.d.ts.map +1 -0
  358. package/dist/components/panel/global-search.js +114 -0
  359. package/dist/components/panel/global-search.js.map +1 -0
  360. package/dist/components/panel/impersonation-banner.d.ts +11 -0
  361. package/dist/components/panel/impersonation-banner.d.ts.map +1 -0
  362. package/dist/components/panel/impersonation-banner.js +52 -0
  363. package/dist/components/panel/impersonation-banner.js.map +1 -0
  364. package/dist/components/panel/index.d.ts +18 -0
  365. package/dist/components/panel/keyboard-shortcuts.d.ts +10 -0
  366. package/dist/components/panel/keyboard-shortcuts.d.ts.map +1 -0
  367. package/dist/components/panel/keyboard-shortcuts.js +107 -0
  368. package/dist/components/panel/keyboard-shortcuts.js.map +1 -0
  369. package/dist/components/panel/lazy-placeholder.d.ts +11 -0
  370. package/dist/components/panel/lazy-placeholder.d.ts.map +1 -0
  371. package/dist/components/panel/lazy-placeholder.js +35 -0
  372. package/dist/components/panel/lazy-placeholder.js.map +1 -0
  373. package/dist/components/panel/locale-switcher.d.ts +19 -0
  374. package/dist/components/panel/locale-switcher.d.ts.map +1 -0
  375. package/dist/components/panel/locale-switcher.js +113 -0
  376. package/dist/components/panel/locale-switcher.js.map +1 -0
  377. package/dist/components/panel/menu-item.js +65 -0
  378. package/dist/components/panel/menu-item.js.map +1 -0
  379. package/dist/components/panel/nav-label.js +29 -0
  380. package/dist/components/panel/nav-label.js.map +1 -0
  381. package/dist/components/panel/pwa.d.ts +13 -0
  382. package/dist/components/panel/pwa.d.ts.map +1 -0
  383. package/dist/components/panel/pwa.js +90 -0
  384. package/dist/components/panel/pwa.js.map +1 -0
  385. package/dist/components/panel/schema-contract-guard.js +44 -0
  386. package/dist/components/panel/schema-contract-guard.js.map +1 -0
  387. package/dist/components/panel/shortcut-keys.d.ts +11 -0
  388. package/dist/components/panel/shortcut-keys.d.ts.map +1 -0
  389. package/dist/components/panel/shortcut-keys.js +33 -0
  390. package/dist/components/panel/shortcut-keys.js.map +1 -0
  391. package/dist/components/panel/shortcuts-overlay.d.ts +13 -0
  392. package/dist/components/panel/shortcuts-overlay.d.ts.map +1 -0
  393. package/dist/components/panel/shortcuts-overlay.js +159 -0
  394. package/dist/components/panel/shortcuts-overlay.js.map +1 -0
  395. package/dist/components/panel/slot.d.ts +18 -0
  396. package/dist/components/panel/slot.d.ts.map +1 -0
  397. package/dist/components/panel/slot.js +31 -0
  398. package/dist/components/panel/slot.js.map +1 -0
  399. package/dist/components/panel/sub-navigation.js +125 -0
  400. package/dist/components/panel/sub-navigation.js.map +1 -0
  401. package/dist/components/panel/tenant-menu.d.ts +10 -0
  402. package/dist/components/panel/tenant-menu.d.ts.map +1 -0
  403. package/dist/components/panel/tenant-menu.js +196 -0
  404. package/dist/components/panel/tenant-menu.js.map +1 -0
  405. package/dist/components/panel/theme-toggle.d.ts +4 -0
  406. package/dist/components/panel/theme-toggle.d.ts.map +1 -0
  407. package/dist/components/panel/theme-toggle.js +84 -0
  408. package/dist/components/panel/theme-toggle.js.map +1 -0
  409. package/dist/components/panel/topbar.d.ts +10 -0
  410. package/dist/components/panel/topbar.d.ts.map +1 -0
  411. package/dist/components/panel/topbar.js +74 -0
  412. package/dist/components/panel/topbar.js.map +1 -0
  413. package/dist/components/panel/user-menu.d.ts +16 -0
  414. package/dist/components/panel/user-menu.d.ts.map +1 -0
  415. package/dist/components/panel/user-menu.js +151 -0
  416. package/dist/components/panel/user-menu.js.map +1 -0
  417. package/dist/components/realtime/conflict-banner.d.ts +13 -0
  418. package/dist/components/realtime/conflict-banner.d.ts.map +1 -0
  419. package/dist/components/realtime/conflict-banner.js +193 -0
  420. package/dist/components/realtime/conflict-banner.js.map +1 -0
  421. package/dist/components/realtime/index.d.ts +4 -0
  422. package/dist/components/realtime/index.js +4 -0
  423. package/dist/components/realtime/live-records-pill.d.ts +19 -0
  424. package/dist/components/realtime/live-records-pill.d.ts.map +1 -0
  425. package/dist/components/realtime/live-records-pill.js +57 -0
  426. package/dist/components/realtime/live-records-pill.js.map +1 -0
  427. package/dist/components/realtime/record-presence.d.ts +12 -0
  428. package/dist/components/realtime/record-presence.d.ts.map +1 -0
  429. package/dist/components/realtime/record-presence.js +79 -0
  430. package/dist/components/realtime/record-presence.js.map +1 -0
  431. package/dist/components/schema/content-slot.js +49 -0
  432. package/dist/components/schema/content-slot.js.map +1 -0
  433. package/dist/components/schema/field-actions.js +72 -0
  434. package/dist/components/schema/field-actions.js.map +1 -0
  435. package/dist/components/schema/field-wrapper.d.ts +20 -0
  436. package/dist/components/schema/field-wrapper.d.ts.map +1 -0
  437. package/dist/components/schema/field-wrapper.js +210 -0
  438. package/dist/components/schema/field-wrapper.js.map +1 -0
  439. package/dist/components/schema/fused-group-context.js +14 -0
  440. package/dist/components/schema/fused-group-context.js.map +1 -0
  441. package/dist/components/schema/schema-renderer.d.ts +23 -0
  442. package/dist/components/schema/schema-renderer.d.ts.map +1 -0
  443. package/dist/components/schema/schema-renderer.js +77 -0
  444. package/dist/components/schema/schema-renderer.js.map +1 -0
  445. package/dist/components/schema/translatable-field.js +76 -0
  446. package/dist/components/schema/translatable-field.js.map +1 -0
  447. package/dist/components/schema/virtual-spacer.js +23 -0
  448. package/dist/components/schema/virtual-spacer.js.map +1 -0
  449. package/dist/components/table/cells.d.ts +12 -0
  450. package/dist/components/table/cells.d.ts.map +1 -0
  451. package/dist/components/table/cells.js +472 -0
  452. package/dist/components/table/cells.js.map +1 -0
  453. package/dist/components/table/column-manager.d.ts +17 -0
  454. package/dist/components/table/column-manager.d.ts.map +1 -0
  455. package/dist/components/table/column-manager.js +338 -0
  456. package/dist/components/table/column-manager.js.map +1 -0
  457. package/dist/components/table/content-layout.d.ts +30 -0
  458. package/dist/components/table/content-layout.d.ts.map +1 -0
  459. package/dist/components/table/content-layout.js +224 -0
  460. package/dist/components/table/content-layout.js.map +1 -0
  461. package/dist/components/table/filters.d.ts +15 -0
  462. package/dist/components/table/filters.d.ts.map +1 -0
  463. package/dist/components/table/filters.js +300 -0
  464. package/dist/components/table/filters.js.map +1 -0
  465. package/dist/components/table/grouping.js +194 -0
  466. package/dist/components/table/grouping.js.map +1 -0
  467. package/dist/components/table/index.d.ts +10 -0
  468. package/dist/components/table/list-tabs.js +105 -0
  469. package/dist/components/table/list-tabs.js.map +1 -0
  470. package/dist/components/table/pagination.d.ts +7 -0
  471. package/dist/components/table/pagination.d.ts.map +1 -0
  472. package/dist/components/table/pagination.js +255 -0
  473. package/dist/components/table/pagination.js.map +1 -0
  474. package/dist/components/table/record-cell.d.ts +25 -0
  475. package/dist/components/table/record-cell.d.ts.map +1 -0
  476. package/dist/components/table/record-cell.js +86 -0
  477. package/dist/components/table/record-cell.js.map +1 -0
  478. package/dist/components/table/spreadsheet-lazy.d.ts +7 -0
  479. package/dist/components/table/spreadsheet-lazy.d.ts.map +1 -0
  480. package/dist/components/table/spreadsheet-lazy.js +15 -0
  481. package/dist/components/table/spreadsheet-lazy.js.map +1 -0
  482. package/dist/components/table/spreadsheet.d.ts +11 -0
  483. package/dist/components/table/spreadsheet.d.ts.map +1 -0
  484. package/dist/components/table/spreadsheet.js +420 -0
  485. package/dist/components/table/spreadsheet.js.map +1 -0
  486. package/dist/components/table/summary-rows.js +104 -0
  487. package/dist/components/table/summary-rows.js.map +1 -0
  488. package/dist/components/table/table-block.d.ts +12 -0
  489. package/dist/components/table/table-block.d.ts.map +1 -0
  490. package/dist/components/table/table-block.js +875 -0
  491. package/dist/components/table/table-block.js.map +1 -0
  492. package/dist/components/table/table-views.d.ts +15 -0
  493. package/dist/components/table/table-views.d.ts.map +1 -0
  494. package/dist/components/table/table-views.js +376 -0
  495. package/dist/components/table/table-views.js.map +1 -0
  496. package/dist/components/table/trigger-button.js +44 -0
  497. package/dist/components/table/trigger-button.js.map +1 -0
  498. package/dist/components/translation-manager/index.d.ts +2 -0
  499. package/dist/components/translation-manager/index.js +2 -0
  500. package/dist/components/translation-manager/translation-manager-lazy.d.ts +9 -0
  501. package/dist/components/translation-manager/translation-manager-lazy.d.ts.map +1 -0
  502. package/dist/components/translation-manager/translation-manager-lazy.js +24 -0
  503. package/dist/components/translation-manager/translation-manager-lazy.js.map +1 -0
  504. package/dist/components/translation-manager/translation-manager.js +719 -0
  505. package/dist/components/translation-manager/translation-manager.js.map +1 -0
  506. package/dist/components/tree/index.d.ts +2 -0
  507. package/dist/components/tree/index.js +2 -0
  508. package/dist/components/tree/tree-lazy.d.ts +10 -0
  509. package/dist/components/tree/tree-lazy.d.ts.map +1 -0
  510. package/dist/components/tree/tree-lazy.js +24 -0
  511. package/dist/components/tree/tree-lazy.js.map +1 -0
  512. package/dist/components/tree/tree.js +291 -0
  513. package/dist/components/tree/tree.js.map +1 -0
  514. package/dist/components/ui/alert.d.ts +12 -0
  515. package/dist/components/ui/alert.d.ts.map +1 -0
  516. package/dist/components/ui/alert.js +37 -0
  517. package/dist/components/ui/alert.js.map +1 -0
  518. package/dist/components/ui/avatar.d.ts +9 -0
  519. package/dist/components/ui/avatar.d.ts.map +1 -0
  520. package/dist/components/ui/avatar.js +29 -0
  521. package/dist/components/ui/avatar.js.map +1 -0
  522. package/dist/components/ui/badge.d.ts +12 -0
  523. package/dist/components/ui/badge.d.ts.map +1 -0
  524. package/dist/components/ui/badge.js +26 -0
  525. package/dist/components/ui/badge.js.map +1 -0
  526. package/dist/components/ui/breadcrumb.d.ts +14 -0
  527. package/dist/components/ui/breadcrumb.d.ts.map +1 -0
  528. package/dist/components/ui/breadcrumb.js +79 -0
  529. package/dist/components/ui/breadcrumb.js.map +1 -0
  530. package/dist/components/ui/button.d.ts +13 -0
  531. package/dist/components/ui/button.d.ts.map +1 -0
  532. package/dist/components/ui/button.js +47 -0
  533. package/dist/components/ui/button.js.map +1 -0
  534. package/dist/components/ui/calendar.d.ts +7 -0
  535. package/dist/components/ui/calendar.d.ts.map +1 -0
  536. package/dist/components/ui/calendar.js +48 -0
  537. package/dist/components/ui/calendar.js.map +1 -0
  538. package/dist/components/ui/card.d.ts +12 -0
  539. package/dist/components/ui/card.d.ts.map +1 -0
  540. package/dist/components/ui/card.js +56 -0
  541. package/dist/components/ui/card.js.map +1 -0
  542. package/dist/components/ui/checkbox.d.ts +7 -0
  543. package/dist/components/ui/checkbox.d.ts.map +1 -0
  544. package/dist/components/ui/checkbox.js +21 -0
  545. package/dist/components/ui/checkbox.js.map +1 -0
  546. package/dist/components/ui/collapsible.d.ts +9 -0
  547. package/dist/components/ui/collapsible.d.ts.map +1 -0
  548. package/dist/components/ui/collapsible.js +25 -0
  549. package/dist/components/ui/collapsible.js.map +1 -0
  550. package/dist/components/ui/command.d.ts +23 -0
  551. package/dist/components/ui/command.d.ts.map +1 -0
  552. package/dist/components/ui/command.js +89 -0
  553. package/dist/components/ui/command.js.map +1 -0
  554. package/dist/components/ui/dialog.d.ts +18 -0
  555. package/dist/components/ui/dialog.d.ts.map +1 -0
  556. package/dist/components/ui/dialog.js +92 -0
  557. package/dist/components/ui/dialog.js.map +1 -0
  558. package/dist/components/ui/dropdown-menu.d.ts +28 -0
  559. package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
  560. package/dist/components/ui/dropdown-menu.js +123 -0
  561. package/dist/components/ui/dropdown-menu.js.map +1 -0
  562. package/dist/components/ui/input.d.ts +6 -0
  563. package/dist/components/ui/input.d.ts.map +1 -0
  564. package/dist/components/ui/input.js +15 -0
  565. package/dist/components/ui/input.js.map +1 -0
  566. package/dist/components/ui/label.d.ts +7 -0
  567. package/dist/components/ui/label.d.ts.map +1 -0
  568. package/dist/components/ui/label.js +15 -0
  569. package/dist/components/ui/label.js.map +1 -0
  570. package/dist/components/ui/popover.d.ts +10 -0
  571. package/dist/components/ui/popover.d.ts.map +1 -0
  572. package/dist/components/ui/popover.js +35 -0
  573. package/dist/components/ui/popover.js.map +1 -0
  574. package/dist/components/ui/radio-group.d.ts +8 -0
  575. package/dist/components/ui/radio-group.d.ts.map +1 -0
  576. package/dist/components/ui/radio-group.js +28 -0
  577. package/dist/components/ui/radio-group.js.map +1 -0
  578. package/dist/components/ui/scroll-area.d.ts +8 -0
  579. package/dist/components/ui/scroll-area.d.ts.map +1 -0
  580. package/dist/components/ui/scroll-area.js +36 -0
  581. package/dist/components/ui/scroll-area.js.map +1 -0
  582. package/dist/components/ui/select.d.ts +18 -0
  583. package/dist/components/ui/select.d.ts.map +1 -0
  584. package/dist/components/ui/select.js +96 -0
  585. package/dist/components/ui/select.js.map +1 -0
  586. package/dist/components/ui/separator.d.ts +7 -0
  587. package/dist/components/ui/separator.d.ts.map +1 -0
  588. package/dist/components/ui/separator.js +17 -0
  589. package/dist/components/ui/separator.js.map +1 -0
  590. package/dist/components/ui/sheet.d.ts +17 -0
  591. package/dist/components/ui/sheet.d.ts.map +1 -0
  592. package/dist/components/ui/sheet.js +89 -0
  593. package/dist/components/ui/sheet.js.map +1 -0
  594. package/dist/components/ui/sidebar.d.ts +72 -0
  595. package/dist/components/ui/sidebar.d.ts.map +1 -0
  596. package/dist/components/ui/sidebar.js +376 -0
  597. package/dist/components/ui/sidebar.js.map +1 -0
  598. package/dist/components/ui/skeleton.d.ts +6 -0
  599. package/dist/components/ui/skeleton.d.ts.map +1 -0
  600. package/dist/components/ui/skeleton.js +14 -0
  601. package/dist/components/ui/skeleton.js.map +1 -0
  602. package/dist/components/ui/sonner.d.ts +6 -0
  603. package/dist/components/ui/sonner.d.ts.map +1 -0
  604. package/dist/components/ui/sonner.js +34 -0
  605. package/dist/components/ui/sonner.js.map +1 -0
  606. package/dist/components/ui/spinner.d.ts +10 -0
  607. package/dist/components/ui/spinner.d.ts.map +1 -0
  608. package/dist/components/ui/spinner.js +30 -0
  609. package/dist/components/ui/spinner.js.map +1 -0
  610. package/dist/components/ui/switch.d.ts +7 -0
  611. package/dist/components/ui/switch.d.ts.map +1 -0
  612. package/dist/components/ui/switch.js +19 -0
  613. package/dist/components/ui/switch.js.map +1 -0
  614. package/dist/components/ui/table.d.ts +13 -0
  615. package/dist/components/ui/table.d.ts.map +1 -0
  616. package/dist/components/ui/table.js +67 -0
  617. package/dist/components/ui/table.js.map +1 -0
  618. package/dist/components/ui/tabs.d.ts +10 -0
  619. package/dist/components/ui/tabs.d.ts.map +1 -0
  620. package/dist/components/ui/tabs.js +36 -0
  621. package/dist/components/ui/tabs.js.map +1 -0
  622. package/dist/components/ui/textarea.d.ts +6 -0
  623. package/dist/components/ui/textarea.d.ts.map +1 -0
  624. package/dist/components/ui/textarea.js +14 -0
  625. package/dist/components/ui/textarea.js.map +1 -0
  626. package/dist/components/ui/tooltip.d.ts +10 -0
  627. package/dist/components/ui/tooltip.d.ts.map +1 -0
  628. package/dist/components/ui/tooltip.js +36 -0
  629. package/dist/components/ui/tooltip.js.map +1 -0
  630. package/dist/components/versions/record-versions.d.ts +12 -0
  631. package/dist/components/versions/record-versions.d.ts.map +1 -0
  632. package/dist/components/versions/record-versions.js +138 -0
  633. package/dist/components/versions/record-versions.js.map +1 -0
  634. package/dist/components/widgets/calendar-lazy.d.ts +9 -0
  635. package/dist/components/widgets/calendar-lazy.d.ts.map +1 -0
  636. package/dist/components/widgets/calendar-lazy.js +47 -0
  637. package/dist/components/widgets/calendar-lazy.js.map +1 -0
  638. package/dist/components/widgets/calendar.js +122 -0
  639. package/dist/components/widgets/calendar.js.map +1 -0
  640. package/dist/components/widgets/chart-filters.js +101 -0
  641. package/dist/components/widgets/chart-filters.js.map +1 -0
  642. package/dist/components/widgets/chart-lazy.d.ts +9 -0
  643. package/dist/components/widgets/chart-lazy.d.ts.map +1 -0
  644. package/dist/components/widgets/chart-lazy.js +27 -0
  645. package/dist/components/widgets/chart-lazy.js.map +1 -0
  646. package/dist/components/widgets/chart.js +216 -0
  647. package/dist/components/widgets/chart.js.map +1 -0
  648. package/dist/components/widgets/dashboard-customizer.d.ts +15 -0
  649. package/dist/components/widgets/dashboard-customizer.d.ts.map +1 -0
  650. package/dist/components/widgets/dashboard-customizer.js +219 -0
  651. package/dist/components/widgets/dashboard-customizer.js.map +1 -0
  652. package/dist/components/widgets/index.d.ts +6 -0
  653. package/dist/components/widgets/stats-overview.d.ts +7 -0
  654. package/dist/components/widgets/stats-overview.d.ts.map +1 -0
  655. package/dist/components/widgets/stats-overview.js +133 -0
  656. package/dist/components/widgets/stats-overview.js.map +1 -0
  657. package/dist/components/widgets/widgets-block.d.ts +10 -0
  658. package/dist/components/widgets/widgets-block.d.ts.map +1 -0
  659. package/dist/components/widgets/widgets-block.js +72 -0
  660. package/dist/components/widgets/widgets-block.js.map +1 -0
  661. package/dist/context.d.ts +55 -0
  662. package/dist/context.d.ts.map +1 -0
  663. package/dist/context.js +115 -0
  664. package/dist/context.js.map +1 -0
  665. package/dist/create-alfakit.d.ts +25 -0
  666. package/dist/create-alfakit.d.ts.map +1 -0
  667. package/dist/create-alfakit.js +182 -0
  668. package/dist/create-alfakit.js.map +1 -0
  669. package/dist/eject-manifest.json +1128 -0
  670. package/dist/hooks/use-hydrated.d.ts +9 -0
  671. package/dist/hooks/use-hydrated.d.ts.map +1 -0
  672. package/dist/hooks/use-hydrated.js +15 -0
  673. package/dist/hooks/use-hydrated.js.map +1 -0
  674. package/dist/hooks/use-mobile.d.ts +8 -0
  675. package/dist/hooks/use-mobile.d.ts.map +1 -0
  676. package/dist/hooks/use-mobile.js +21 -0
  677. package/dist/hooks/use-mobile.js.map +1 -0
  678. package/dist/hooks/use-store.d.ts +7 -0
  679. package/dist/hooks/use-store.d.ts.map +1 -0
  680. package/dist/hooks/use-store.js +13 -0
  681. package/dist/hooks/use-store.js.map +1 -0
  682. package/dist/hooks/use-virtual-list.d.ts +29 -0
  683. package/dist/hooks/use-virtual-list.d.ts.map +1 -0
  684. package/dist/hooks/use-virtual-list.js +73 -0
  685. package/dist/hooks/use-virtual-list.js.map +1 -0
  686. package/dist/index.d.ts +180 -0
  687. package/dist/index.js +161 -0
  688. package/dist/layouts/app-layout.d.ts +11 -0
  689. package/dist/layouts/app-layout.d.ts.map +1 -0
  690. package/dist/layouts/app-layout.js +104 -0
  691. package/dist/layouts/app-layout.js.map +1 -0
  692. package/dist/layouts/auth-layout.d.ts +11 -0
  693. package/dist/layouts/auth-layout.d.ts.map +1 -0
  694. package/dist/layouts/auth-layout.js +65 -0
  695. package/dist/layouts/auth-layout.js.map +1 -0
  696. package/dist/layouts/blank-layout.d.ts +7 -0
  697. package/dist/layouts/blank-layout.d.ts.map +1 -0
  698. package/dist/layouts/blank-layout.js +12 -0
  699. package/dist/layouts/blank-layout.js.map +1 -0
  700. package/dist/layouts/fullscreen-layout.d.ts +16 -0
  701. package/dist/layouts/fullscreen-layout.d.ts.map +1 -0
  702. package/dist/layouts/fullscreen-layout.js +107 -0
  703. package/dist/layouts/fullscreen-layout.js.map +1 -0
  704. package/dist/layouts/top-nav-layout.d.ts +15 -0
  705. package/dist/layouts/top-nav-layout.d.ts.map +1 -0
  706. package/dist/layouts/top-nav-layout.js +223 -0
  707. package/dist/layouts/top-nav-layout.js.map +1 -0
  708. package/dist/lib/attributes.d.ts +12 -0
  709. package/dist/lib/attributes.d.ts.map +1 -0
  710. package/dist/lib/attributes.js +55 -0
  711. package/dist/lib/attributes.js.map +1 -0
  712. package/dist/lib/colors.d.ts +23 -0
  713. package/dist/lib/colors.d.ts.map +1 -0
  714. package/dist/lib/colors.js +126 -0
  715. package/dist/lib/colors.js.map +1 -0
  716. package/dist/lib/discovery.d.ts +22 -0
  717. package/dist/lib/discovery.d.ts.map +1 -0
  718. package/dist/lib/discovery.js +45 -0
  719. package/dist/lib/discovery.js.map +1 -0
  720. package/dist/lib/icons.d.ts +24 -0
  721. package/dist/lib/icons.d.ts.map +1 -0
  722. package/dist/lib/icons.js +93 -0
  723. package/dist/lib/icons.js.map +1 -0
  724. package/dist/lib/lazy.d.ts +8 -0
  725. package/dist/lib/lazy.d.ts.map +1 -0
  726. package/dist/lib/lazy.js +47 -0
  727. package/dist/lib/lazy.js.map +1 -0
  728. package/dist/lib/new-tab-hint.js +15 -0
  729. package/dist/lib/new-tab-hint.js.map +1 -0
  730. package/dist/lib/utils.d.ts +5 -0
  731. package/dist/lib/utils.d.ts.map +1 -0
  732. package/dist/lib/utils.js +10 -0
  733. package/dist/lib/utils.js.map +1 -0
  734. package/dist/pages/page.d.ts +23 -0
  735. package/dist/pages/page.d.ts.map +1 -0
  736. package/dist/pages/page.js +328 -0
  737. package/dist/pages/page.js.map +1 -0
  738. package/dist/registry.d.ts +7 -0
  739. package/dist/registry.d.ts.map +1 -0
  740. package/dist/registry.js +113 -0
  741. package/dist/registry.js.map +1 -0
  742. package/dist/server.d.ts +28 -0
  743. package/dist/server.d.ts.map +1 -0
  744. package/dist/server.js +38 -0
  745. package/dist/server.js.map +1 -0
  746. package/dist/standalone/alfakit-component.d.ts +30 -0
  747. package/dist/standalone/alfakit-component.d.ts.map +1 -0
  748. package/dist/standalone/alfakit-component.js +156 -0
  749. package/dist/standalone/alfakit-component.js.map +1 -0
  750. package/dist/standalone/alfakit-toaster.d.ts +26 -0
  751. package/dist/standalone/alfakit-toaster.d.ts.map +1 -0
  752. package/dist/standalone/alfakit-toaster.js +38 -0
  753. package/dist/standalone/alfakit-toaster.js.map +1 -0
  754. package/dist/standalone/configure.d.ts +14 -0
  755. package/dist/standalone/configure.d.ts.map +1 -0
  756. package/dist/standalone/configure.js +27 -0
  757. package/dist/standalone/configure.js.map +1 -0
  758. package/dist/standalone/index.d.ts +4 -0
  759. package/dist/standalone/runtime.js +94 -0
  760. package/dist/standalone/runtime.js.map +1 -0
  761. package/dist/standalone.css +150 -0
  762. package/dist/starter-kit/index.d.ts +4 -0
  763. package/dist/starter-kit/index.js +4 -0
  764. package/dist/starter-kit/navigation.d.ts +20 -0
  765. package/dist/starter-kit/navigation.d.ts.map +1 -0
  766. package/dist/starter-kit/navigation.js +25 -0
  767. package/dist/starter-kit/navigation.js.map +1 -0
  768. package/dist/starter-kit/starter-kit.d.ts +56 -0
  769. package/dist/starter-kit/starter-kit.d.ts.map +1 -0
  770. package/dist/starter-kit/starter-kit.js +120 -0
  771. package/dist/starter-kit/starter-kit.js.map +1 -0
  772. package/dist/starter-kit/widgets-loaded.js +172 -0
  773. package/dist/starter-kit/widgets-loaded.js.map +1 -0
  774. package/dist/starter-kit/widgets-triggers.js +90 -0
  775. package/dist/starter-kit/widgets-triggers.js.map +1 -0
  776. package/dist/starter-kit/widgets.d.ts +38 -0
  777. package/dist/starter-kit/widgets.d.ts.map +1 -0
  778. package/dist/starter-kit/widgets.js +64 -0
  779. package/dist/starter-kit/widgets.js.map +1 -0
  780. package/dist/styles.css +305 -0
  781. package/dist/themes.css +1340 -0
  782. package/package.json +128 -3
  783. package/src/app/components.tsx +104 -0
  784. package/src/app/hooks.ts +365 -0
  785. package/src/components/actions/action-button.tsx +254 -0
  786. package/src/components/actions/action-context.tsx +23 -0
  787. package/src/components/actions/action-list.tsx +356 -0
  788. package/src/components/actions/action-modals.tsx +479 -0
  789. package/src/components/actions/index.ts +4 -0
  790. package/src/components/ai/copilot-panel.tsx +517 -0
  791. package/src/components/ai/copilot.tsx +82 -0
  792. package/src/components/ai/index.ts +2 -0
  793. package/src/components/ai/stream-lazy.tsx +8 -0
  794. package/src/components/ai/stream.tsx +100 -0
  795. package/src/components/analytics/alfakit-analytics.tsx +27 -0
  796. package/src/components/analytics/breakdown.tsx +150 -0
  797. package/src/components/analytics/index.ts +2 -0
  798. package/src/components/cms/admin-bar.tsx +66 -0
  799. package/src/components/cms/blocks.tsx +474 -0
  800. package/src/components/cms/context.tsx +57 -0
  801. package/src/components/cms/head.tsx +47 -0
  802. package/src/components/cms/index.ts +23 -0
  803. package/src/components/cms/live-preview-lazy.tsx +8 -0
  804. package/src/components/cms/live-preview.tsx +339 -0
  805. package/src/components/cms/menu.tsx +246 -0
  806. package/src/components/cms/page.tsx +219 -0
  807. package/src/components/cms/parts.tsx +84 -0
  808. package/src/components/dev-tools/dev-tools-inspector.tsx +374 -0
  809. package/src/components/dev-tools/dev-tools-slot.tsx +28 -0
  810. package/src/components/entries/code-entry.tsx +73 -0
  811. package/src/components/entries/entry-wrapper.tsx +171 -0
  812. package/src/components/entries/index.ts +11 -0
  813. package/src/components/entries/other-entries.tsx +235 -0
  814. package/src/components/entries/repeatable-entry-table.tsx +50 -0
  815. package/src/components/entries/text-entry.tsx +264 -0
  816. package/src/components/entries/view-entry.tsx +27 -0
  817. package/src/components/fields/builder-picker.tsx +323 -0
  818. package/src/components/fields/builder.tsx +537 -0
  819. package/src/components/fields/checkbox-list.tsx +181 -0
  820. package/src/components/fields/checkbox.tsx +26 -0
  821. package/src/components/fields/code-editor-lazy.tsx +33 -0
  822. package/src/components/fields/code-editor.tsx +157 -0
  823. package/src/components/fields/code-tokens.ts +15 -0
  824. package/src/components/fields/color-picker.tsx +72 -0
  825. package/src/components/fields/date-picker.tsx +336 -0
  826. package/src/components/fields/file-upload.tsx +643 -0
  827. package/src/components/fields/hidden.tsx +8 -0
  828. package/src/components/fields/icon-picker-lazy.tsx +44 -0
  829. package/src/components/fields/icon-picker-value.tsx +46 -0
  830. package/src/components/fields/icon-picker.tsx +293 -0
  831. package/src/components/fields/image-editor-dialog-lazy.tsx +22 -0
  832. package/src/components/fields/image-editor-dialog.tsx +431 -0
  833. package/src/components/fields/index.ts +23 -0
  834. package/src/components/fields/item-actions.tsx +381 -0
  835. package/src/components/fields/key-value.tsx +218 -0
  836. package/src/components/fields/lazy-fields.tsx +30 -0
  837. package/src/components/fields/modal-table-select.tsx +519 -0
  838. package/src/components/fields/money-input.tsx +132 -0
  839. package/src/components/fields/one-time-code-input.tsx +56 -0
  840. package/src/components/fields/query-builder-rules.tsx +444 -0
  841. package/src/components/fields/radio.tsx +67 -0
  842. package/src/components/fields/repeater-table.tsx +185 -0
  843. package/src/components/fields/repeater.tsx +317 -0
  844. package/src/components/fields/rich-editor-extensions.tsx +470 -0
  845. package/src/components/fields/rich-editor-lazy.tsx +21 -0
  846. package/src/components/fields/rich-editor.tsx +815 -0
  847. package/src/components/fields/select.tsx +667 -0
  848. package/src/components/fields/slider.tsx +262 -0
  849. package/src/components/fields/tags-input.tsx +176 -0
  850. package/src/components/fields/text-input.tsx +179 -0
  851. package/src/components/fields/textarea.tsx +37 -0
  852. package/src/components/fields/toggle-buttons.tsx +125 -0
  853. package/src/components/fields/toggle.tsx +50 -0
  854. package/src/components/file-manager/file-manager-lazy.tsx +52 -0
  855. package/src/components/file-manager/file-manager.tsx +1857 -0
  856. package/src/components/file-manager/index.ts +2 -0
  857. package/src/components/file-manager/picker-field.tsx +169 -0
  858. package/src/components/form/form-block.tsx +237 -0
  859. package/src/components/form/form-context.tsx +95 -0
  860. package/src/components/helpdesk/chat-panel.tsx +247 -0
  861. package/src/components/helpdesk/chat-widget.tsx +107 -0
  862. package/src/components/helpdesk/inbox-lazy.tsx +42 -0
  863. package/src/components/helpdesk/inbox.tsx +745 -0
  864. package/src/components/helpdesk/index.ts +2 -0
  865. package/src/components/kanban/index.ts +1 -0
  866. package/src/components/kanban/kanban-lazy.tsx +34 -0
  867. package/src/components/kanban/kanban.tsx +788 -0
  868. package/src/components/layout/actions.tsx +48 -0
  869. package/src/components/layout/component-context.ts +31 -0
  870. package/src/components/layout/deferred.tsx +156 -0
  871. package/src/components/layout/elements.tsx +259 -0
  872. package/src/components/layout/fieldset.tsx +35 -0
  873. package/src/components/layout/fused-group.tsx +96 -0
  874. package/src/components/layout/grid.tsx +19 -0
  875. package/src/components/layout/index.ts +18 -0
  876. package/src/components/layout/mixed-content.tsx +59 -0
  877. package/src/components/layout/prime.tsx +168 -0
  878. package/src/components/layout/schema-children.tsx +30 -0
  879. package/src/components/layout/section.tsx +173 -0
  880. package/src/components/layout/tabs.tsx +129 -0
  881. package/src/components/layout/wizard.tsx +244 -0
  882. package/src/components/notifications/flash-toasts.tsx +200 -0
  883. package/src/components/notifications/index.ts +4 -0
  884. package/src/components/notifications/notifications-menu.tsx +262 -0
  885. package/src/components/notifications/realtime-notifications.tsx +40 -0
  886. package/src/components/notifications/undo-button.tsx +50 -0
  887. package/src/components/panel/app-sidebar.tsx +439 -0
  888. package/src/components/panel/bottom-nav.tsx +130 -0
  889. package/src/components/panel/debug-panel-slot.tsx +25 -0
  890. package/src/components/panel/debug-panel.tsx +412 -0
  891. package/src/components/panel/global-search-palette.tsx +387 -0
  892. package/src/components/panel/global-search.tsx +147 -0
  893. package/src/components/panel/impersonation-banner.tsx +47 -0
  894. package/src/components/panel/index.ts +16 -0
  895. package/src/components/panel/keyboard-shortcuts.tsx +134 -0
  896. package/src/components/panel/lazy-placeholder.tsx +39 -0
  897. package/src/components/panel/locale-switcher.tsx +144 -0
  898. package/src/components/panel/menu-item.tsx +89 -0
  899. package/src/components/panel/nav-label.tsx +34 -0
  900. package/src/components/panel/pwa.tsx +118 -0
  901. package/src/components/panel/schema-contract-guard.tsx +50 -0
  902. package/src/components/panel/shortcut-keys.tsx +34 -0
  903. package/src/components/panel/shortcuts-overlay.tsx +238 -0
  904. package/src/components/panel/slot.tsx +43 -0
  905. package/src/components/panel/sub-navigation.tsx +161 -0
  906. package/src/components/panel/tenant-menu.tsx +175 -0
  907. package/src/components/panel/theme-toggle.tsx +69 -0
  908. package/src/components/panel/topbar.tsx +81 -0
  909. package/src/components/panel/user-menu.tsx +166 -0
  910. package/src/components/realtime/conflict-banner.tsx +208 -0
  911. package/src/components/realtime/index.ts +3 -0
  912. package/src/components/realtime/live-records-pill.tsx +66 -0
  913. package/src/components/realtime/record-presence.tsx +98 -0
  914. package/src/components/schema/content-slot.tsx +81 -0
  915. package/src/components/schema/field-actions.tsx +67 -0
  916. package/src/components/schema/field-wrapper.tsx +246 -0
  917. package/src/components/schema/fused-group-context.ts +11 -0
  918. package/src/components/schema/schema-renderer.tsx +127 -0
  919. package/src/components/schema/translatable-field.tsx +113 -0
  920. package/src/components/schema/virtual-spacer.tsx +14 -0
  921. package/src/components/table/cells.tsx +712 -0
  922. package/src/components/table/column-manager.tsx +480 -0
  923. package/src/components/table/content-layout.tsx +368 -0
  924. package/src/components/table/filters.tsx +378 -0
  925. package/src/components/table/grouping.tsx +275 -0
  926. package/src/components/table/index.ts +9 -0
  927. package/src/components/table/list-tabs.tsx +144 -0
  928. package/src/components/table/pagination.tsx +335 -0
  929. package/src/components/table/record-cell.tsx +147 -0
  930. package/src/components/table/spreadsheet-lazy.tsx +14 -0
  931. package/src/components/table/spreadsheet.tsx +602 -0
  932. package/src/components/table/summary-rows.tsx +160 -0
  933. package/src/components/table/table-block.tsx +1112 -0
  934. package/src/components/table/table-views.tsx +460 -0
  935. package/src/components/table/trigger-button.tsx +92 -0
  936. package/src/components/translation-manager/index.ts +1 -0
  937. package/src/components/translation-manager/translation-manager-lazy.tsx +25 -0
  938. package/src/components/translation-manager/translation-manager.tsx +827 -0
  939. package/src/components/tree/index.ts +1 -0
  940. package/src/components/tree/tree-lazy.tsx +30 -0
  941. package/src/components/tree/tree.tsx +385 -0
  942. package/src/components/ui/alert.tsx +57 -0
  943. package/src/components/ui/avatar.tsx +38 -0
  944. package/src/components/ui/badge.tsx +33 -0
  945. package/src/components/ui/breadcrumb.tsx +110 -0
  946. package/src/components/ui/button.tsx +54 -0
  947. package/src/components/ui/calendar.tsx +65 -0
  948. package/src/components/ui/card.tsx +74 -0
  949. package/src/components/ui/checkbox.tsx +30 -0
  950. package/src/components/ui/collapsible.tsx +20 -0
  951. package/src/components/ui/command.tsx +158 -0
  952. package/src/components/ui/dialog.tsx +124 -0
  953. package/src/components/ui/dropdown-menu.tsx +217 -0
  954. package/src/components/ui/input.tsx +20 -0
  955. package/src/components/ui/label.tsx +18 -0
  956. package/src/components/ui/popover.tsx +39 -0
  957. package/src/components/ui/radio-group.tsx +36 -0
  958. package/src/components/ui/scroll-area.tsx +53 -0
  959. package/src/components/ui/select.tsx +165 -0
  960. package/src/components/ui/separator.tsx +25 -0
  961. package/src/components/ui/sheet.tsx +131 -0
  962. package/src/components/ui/sidebar.tsx +660 -0
  963. package/src/components/ui/skeleton.tsx +14 -0
  964. package/src/components/ui/sonner.tsx +43 -0
  965. package/src/components/ui/spinner.tsx +31 -0
  966. package/src/components/ui/switch.tsx +25 -0
  967. package/src/components/ui/table.tsx +89 -0
  968. package/src/components/ui/tabs.tsx +51 -0
  969. package/src/components/ui/textarea.tsx +17 -0
  970. package/src/components/ui/tooltip.tsx +50 -0
  971. package/src/components/versions/record-versions.tsx +162 -0
  972. package/src/components/widgets/calendar-lazy.tsx +31 -0
  973. package/src/components/widgets/calendar.tsx +124 -0
  974. package/src/components/widgets/chart-filters.tsx +114 -0
  975. package/src/components/widgets/chart-lazy.tsx +21 -0
  976. package/src/components/widgets/chart.tsx +252 -0
  977. package/src/components/widgets/dashboard-customizer.tsx +309 -0
  978. package/src/components/widgets/index.ts +5 -0
  979. package/src/components/widgets/stats-overview.tsx +185 -0
  980. package/src/components/widgets/widgets-block.tsx +102 -0
  981. package/src/context.tsx +187 -0
  982. package/src/create-alfakit.tsx +300 -0
  983. package/src/hooks/use-hydrated.ts +16 -0
  984. package/src/hooks/use-mobile.ts +29 -0
  985. package/src/hooks/use-store.ts +18 -0
  986. package/src/hooks/use-virtual-list.ts +88 -0
  987. package/src/index.ts +135 -0
  988. package/src/layouts/app-layout.tsx +128 -0
  989. package/src/layouts/auth-layout.tsx +66 -0
  990. package/src/layouts/blank-layout.tsx +5 -0
  991. package/src/layouts/fullscreen-layout.tsx +86 -0
  992. package/src/layouts/top-nav-layout.tsx +293 -0
  993. package/src/lib/attributes.ts +79 -0
  994. package/src/lib/colors.ts +151 -0
  995. package/src/lib/discovery.tsx +68 -0
  996. package/src/lib/icons.tsx +145 -0
  997. package/src/lib/lazy.tsx +89 -0
  998. package/src/lib/new-tab-hint.tsx +8 -0
  999. package/src/lib/utils.ts +6 -0
  1000. package/src/pages/page.tsx +463 -0
  1001. package/src/registry.ts +132 -0
  1002. package/src/server.tsx +68 -0
  1003. package/src/standalone/alfakit-component.tsx +222 -0
  1004. package/src/standalone/alfakit-toaster.tsx +52 -0
  1005. package/src/standalone/configure.ts +24 -0
  1006. package/src/standalone/index.ts +3 -0
  1007. package/src/standalone/runtime.ts +153 -0
  1008. package/src/starter-kit/index.ts +14 -0
  1009. package/src/starter-kit/navigation.ts +34 -0
  1010. package/src/starter-kit/starter-kit.tsx +196 -0
  1011. package/src/starter-kit/widgets-loaded.tsx +217 -0
  1012. package/src/starter-kit/widgets-triggers.tsx +103 -0
  1013. package/src/starter-kit/widgets.tsx +103 -0
  1014. package/src/styles.css +305 -0
@@ -0,0 +1,94 @@
1
+ import { createDefaultRegistry } from "../registry.js";
2
+ import { getStandaloneDefaults } from "./configure.js";
3
+ import { showToast } from "../components/notifications/flash-toasts.js";
4
+ import { ActionRunner, ComponentRegistry, FlashNotificationTracker, Translator, reloadOnExpiredPage, resolveRequestErrorNotification } from "@alfakit/core";
5
+ import { router } from "@inertiajs/react";
6
+ //#region src/standalone/runtime.ts
7
+ const isServer = typeof window === "undefined";
8
+ const browserTranslator = isServer ? null : new Translator();
9
+ let browserReady = false;
10
+ /** Browser-wide listeners every panel app installs; once per page load. */
11
+ function ensureStandaloneRuntime() {
12
+ if (isServer || browserReady) return;
13
+ browserReady = true;
14
+ reloadOnExpiredPage();
15
+ }
16
+ /**
17
+ * The registry of a standalone component: the built-in renderers, the `configureAlfakit()`
18
+ * defaults (or the surrounding panel's registry), then the component's own overrides.
19
+ */
20
+ function createStandaloneRegistry(overrides, base) {
21
+ if (!base) return createDefaultRegistry().registerMany(getStandaloneDefaults().components ?? {}).registerMany(overrides ?? {});
22
+ if (!overrides || Object.keys(overrides).length === 0) return base;
23
+ const registry = new ComponentRegistry();
24
+ for (const type of base.types()) {
25
+ const component = base.resolve(type);
26
+ if (component) registry.register(type, component);
27
+ }
28
+ return registry.registerMany(overrides);
29
+ }
30
+ /**
31
+ * The context value of one `<AlfakitComponent>` rendered outside `createAlfakit()`: its
32
+ * own registry and action runner (so its modals are its own), the shared translator.
33
+ */
34
+ function createStandaloneContext(endpoints, overrides, poll) {
35
+ const translator = browserTranslator ?? new Translator();
36
+ return {
37
+ registry: createStandaloneRegistry(overrides),
38
+ pages: {},
39
+ translator,
40
+ actions: new ActionRunner({
41
+ endpoints: { ...endpoints },
42
+ onError: (error) => {
43
+ const notification = resolveRequestErrorNotification(error, null, (key, replacements, fallback) => translator.t(key, replacements, fallback));
44
+ if (notification) showToast(notification);
45
+ }
46
+ }),
47
+ poll
48
+ };
49
+ }
50
+ let toasters = 0;
51
+ /** An `<AlfakitToaster>` (or the component that took the role) is mounted; returns a release. */
52
+ function claimToaster() {
53
+ toasters++;
54
+ return () => {
55
+ toasters--;
56
+ };
57
+ }
58
+ function hasToaster() {
59
+ return toasters > 0;
60
+ }
61
+ const flashTracker = new FlashNotificationTracker();
62
+ let flashRegistry = null;
63
+ let flashListening = false;
64
+ /**
65
+ * Show the notifications the server flashed (`Notification::make()->send()`), from the
66
+ * `flash` Inertia event after each visit and from the initial page (whose event fired
67
+ * before the app mounted). One listener per page load, so it survives layouts that remount
68
+ * between visits; the registry of the last mounted toaster renders custom toast views.
69
+ */
70
+ function ensureFlashToasts(registry) {
71
+ flashRegistry = registry;
72
+ if (isServer || flashListening) return;
73
+ flashListening = true;
74
+ const show = (flash) => {
75
+ const flashed = flash?.alfakitNotifications;
76
+ for (const notification of flashTracker.fresh(flashed)) showToast(notification, flashRegistry?.resolve(notification.view ?? ""));
77
+ };
78
+ show(initialFlash());
79
+ router.on("flash", (event) => show(event.detail.flash));
80
+ }
81
+ /** The initial page's flash data (fired as an event before the app mounted). */
82
+ function initialFlash() {
83
+ if (isServer) return void 0;
84
+ try {
85
+ const page = document.querySelector("[data-page]")?.dataset.page;
86
+ return page ? JSON.parse(page).flash : void 0;
87
+ } catch {
88
+ return;
89
+ }
90
+ }
91
+ //#endregion
92
+ export { claimToaster, createStandaloneContext, createStandaloneRegistry, ensureFlashToasts, ensureStandaloneRuntime, hasToaster, initialFlash };
93
+
94
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","names":[],"sources":["../../src/standalone/runtime.ts"],"sourcesContent":["import {\n ActionRunner,\n ComponentRegistry,\n FlashNotificationTracker,\n Translator,\n reloadOnExpiredPage,\n resolveRequestErrorNotification,\n type NotificationSchema,\n} from '@alfakit/core'\nimport { router } from '@inertiajs/react'\nimport { showToast } from '../components/notifications/flash-toasts'\nimport type { AlfakitContextValue, AnyComponent } from '../context'\nimport { createDefaultRegistry } from '../registry'\nimport { getStandaloneDefaults } from './configure'\n\nconst isServer = typeof window === 'undefined'\n\n// Translations are the same for every component of a page, so the browser shares one\n// translator; a server render gets its own so concurrent requests never share a locale.\nconst browserTranslator = isServer ? null : new Translator()\n\nlet browserReady = false\n\n/** Browser-wide listeners every panel app installs; once per page load. */\nexport function ensureStandaloneRuntime(): void {\n if (isServer || browserReady) return\n\n browserReady = true\n reloadOnExpiredPage()\n}\n\n/**\n * The registry of a standalone component: the built-in renderers, the `configureAlfakit()`\n * defaults (or the surrounding panel's registry), then the component's own overrides.\n */\nexport function createStandaloneRegistry(\n overrides?: Record<string, AnyComponent>,\n base?: ComponentRegistry<AnyComponent>,\n): ComponentRegistry<AnyComponent> {\n if (!base) {\n return createDefaultRegistry()\n .registerMany(getStandaloneDefaults().components ?? {})\n .registerMany(overrides ?? {})\n }\n\n if (!overrides || Object.keys(overrides).length === 0) {\n return base\n }\n\n const registry = new ComponentRegistry<AnyComponent>()\n\n for (const type of base.types()) {\n const component = base.resolve(type)\n\n if (component) registry.register(type, component)\n }\n\n return registry.registerMany(overrides)\n}\n\n/**\n * The context value of one `<AlfakitComponent>` rendered outside `createAlfakit()`: its\n * own registry and action runner (so its modals are its own), the shared translator.\n */\nexport function createStandaloneContext(\n endpoints: { action: string; modal: string },\n overrides: Record<string, AnyComponent> | undefined,\n poll: AlfakitContextValue['poll'],\n): AlfakitContextValue {\n const translator = browserTranslator ?? new Translator()\n\n return {\n registry: createStandaloneRegistry(overrides),\n pages: {},\n translator,\n actions: new ActionRunner({\n endpoints: { ...endpoints },\n // Outside a panel there is no `errorNotifications` config: a generic toast.\n onError: (error) => {\n const notification = resolveRequestErrorNotification(\n error,\n null,\n (key, replacements, fallback) => translator.t(key, replacements, fallback),\n )\n\n if (notification) showToast(notification)\n },\n }),\n poll,\n }\n}\n\n// ---------------------------------------------------------------- Toaster ownership\n\nlet toasters = 0\n\n/** An `<AlfakitToaster>` (or the component that took the role) is mounted; returns a release. */\nexport function claimToaster(): () => void {\n toasters++\n\n return () => {\n toasters--\n }\n}\n\nexport function hasToaster(): boolean {\n return toasters > 0\n}\n\n// ---------------------------------------------------------------- Flashed notifications\n\nconst flashTracker = new FlashNotificationTracker()\nlet flashRegistry: ComponentRegistry<AnyComponent> | null = null\nlet flashListening = false\n\n/**\n * Show the notifications the server flashed (`Notification::make()->send()`), from the\n * `flash` Inertia event after each visit and from the initial page (whose event fired\n * before the app mounted). One listener per page load, so it survives layouts that remount\n * between visits; the registry of the last mounted toaster renders custom toast views.\n */\nexport function ensureFlashToasts(registry: ComponentRegistry<AnyComponent>): void {\n flashRegistry = registry\n\n if (isServer || flashListening) return\n\n flashListening = true\n\n const show = (flash: unknown) => {\n const flashed = (flash as { alfakitNotifications?: NotificationSchema[] } | undefined)\n ?.alfakitNotifications\n\n for (const notification of flashTracker.fresh(flashed)) {\n showToast(notification, flashRegistry?.resolve(notification.view ?? ''))\n }\n }\n\n show(initialFlash())\n router.on('flash', (event) => show(event.detail.flash))\n}\n\n/** The initial page's flash data (fired as an event before the app mounted). */\nexport function initialFlash(): unknown {\n if (isServer) return undefined\n\n try {\n const page = document.querySelector<HTMLElement>('[data-page]')?.dataset.page\n\n return page ? (JSON.parse(page) as { flash?: unknown }).flash : undefined\n } catch {\n return undefined\n }\n}\n"],"mappings":";;;;;;AAeA,MAAM,WAAW,OAAO,WAAW;AAInC,MAAM,oBAAoB,WAAW,OAAO,IAAI,WAAW;AAE3D,IAAI,eAAe;;AAGnB,SAAgB,0BAAgC;CAC9C,IAAI,YAAY,cAAc;CAE9B,eAAe;CACf,oBAAoB;AACtB;;;;;AAMA,SAAgB,yBACd,WACA,MACiC;CACjC,IAAI,CAAC,MACH,OAAO,sBAAsB,CAAC,CAC3B,aAAa,sBAAsB,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CACtD,aAAa,aAAa,CAAC,CAAC;CAGjC,IAAI,CAAC,aAAa,OAAO,KAAK,SAAS,CAAC,CAAC,WAAW,GAClD,OAAO;CAGT,MAAM,WAAW,IAAI,kBAAgC;CAErD,KAAK,MAAM,QAAQ,KAAK,MAAM,GAAG;EAC/B,MAAM,YAAY,KAAK,QAAQ,IAAI;EAEnC,IAAI,WAAW,SAAS,SAAS,MAAM,SAAS;CAClD;CAEA,OAAO,SAAS,aAAa,SAAS;AACxC;;;;;AAMA,SAAgB,wBACd,WACA,WACA,MACqB;CACrB,MAAM,aAAa,qBAAqB,IAAI,WAAW;CAEvD,OAAO;EACL,UAAU,yBAAyB,SAAS;EAC5C,OAAO,CAAC;EACR;EACA,SAAS,IAAI,aAAa;GACxB,WAAW,EAAE,GAAG,UAAU;GAE1B,UAAU,UAAU;IAClB,MAAM,eAAe,gCACnB,OACA,OACC,KAAK,cAAc,aAAa,WAAW,EAAE,KAAK,cAAc,QAAQ,CAC3E;IAEA,IAAI,cAAc,UAAU,YAAY;GAC1C;EACF,CAAC;EACD;CACF;AACF;AAIA,IAAI,WAAW;;AAGf,SAAgB,eAA2B;CACzC;CAEA,aAAa;EACX;CACF;AACF;AAEA,SAAgB,aAAsB;CACpC,OAAO,WAAW;AACpB;AAIA,MAAM,eAAe,IAAI,yBAAyB;AAClD,IAAI,gBAAwD;AAC5D,IAAI,iBAAiB;;;;;;;AAQrB,SAAgB,kBAAkB,UAAiD;CACjF,gBAAgB;CAEhB,IAAI,YAAY,gBAAgB;CAEhC,iBAAiB;CAEjB,MAAM,QAAQ,UAAmB;EAC/B,MAAM,UAAW,OACb;EAEJ,KAAK,MAAM,gBAAgB,aAAa,MAAM,OAAO,GACnD,UAAU,cAAc,eAAe,QAAQ,aAAa,QAAQ,EAAE,CAAC;CAE3E;CAEA,KAAK,aAAa,CAAC;CACnB,OAAO,GAAG,UAAU,UAAU,KAAK,MAAM,OAAO,KAAK,CAAC;AACxD;;AAGA,SAAgB,eAAwB;CACtC,IAAI,UAAU,OAAO,KAAA;CAErB,IAAI;EACF,MAAM,OAAO,SAAS,cAA2B,aAAa,CAAC,EAAE,QAAQ;EAEzE,OAAO,OAAQ,KAAK,MAAM,IAAI,CAAC,CAAyB,QAAQ,KAAA;CAClE,QAAQ;EACN;CACF;AACF"}
@@ -0,0 +1,150 @@
1
+ /*
2
+ * Alfakit outside panels. Import it after Tailwind in the stylesheet of the application
3
+ * that renders `<AlfakitComponent>`, and point Tailwind at the renderer's compiled
4
+ * components so their classes are generated:
5
+ *
6
+ * @import 'tailwindcss';
7
+ * @import '@alfakit/react/standalone.css';
8
+ * @source '../../node_modules/@alfakit/react/dist';
9
+ *
10
+ * Unlike `styles.css` (the panel stylesheet) it defines no shadcn palette: components
11
+ * inherit your application's `--primary`, `--border`, `--radius`… and only the status
12
+ * colours Alfakit adds (`success`, `warning`, `info`) get defaults here. Override them in
13
+ * your own `:root`. Shared by the React, Vue and Svelte renderers (copied into each dist).
14
+ */
15
+
16
+ @custom-variant dark (&:is(.dark *));
17
+
18
+ /*
19
+ * Grid classes are composed at runtime from schema breakpoints (`columns`, `columnSpan`),
20
+ * so force Tailwind to generate every variant the renderers can produce.
21
+ */
22
+ @source inline('{,sm:,md:,lg:,xl:,2xl:}grid-cols-{1,2,3,4,5,6,7,8,9,10,11,12}');
23
+ @source inline('{,sm:,md:,lg:,xl:,2xl:}col-span-{1,2,3,4,5,6,7,8,9,10,11,12,full}');
24
+ @source inline('{,sm:,md:,lg:,xl:,2xl:}col-start-{1,2,3,4,5,6,7,8,9,10,11,12}');
25
+ @source inline('line-clamp-{1,2,3,4,5,6}');
26
+ @source inline('{,sm:,md:,lg:,xl:,2xl:}{flex,hidden,flex-row,flex-col,items-center}');
27
+ @source inline(
28
+ '{@3xs:,@2xs:,@xs:,@sm:,@md:,@lg:,@xl:,@2xl:,@3xl:,@4xl:,@5xl:,@6xl:,@7xl:}grid-cols-{1,2,3,4,5,6,7,8,9,10,11,12}'
29
+ );
30
+ @source inline(
31
+ '{@3xs:,@2xs:,@xs:,@sm:,@md:,@lg:,@xl:,@2xl:,@3xl:,@4xl:,@5xl:,@6xl:,@7xl:}col-span-{1,2,3,4,5,6,7,8,9,10,11,12,full}'
32
+ );
33
+ @source inline('{,sm:,md:,lg:,xl:,2xl:}{flex-row,items-start,items-center,items-end}');
34
+
35
+ /* Status colours used by badges, buttons, notifications and stats; shadcn has no defaults for them. */
36
+ @theme inline {
37
+ --color-success: var(--success);
38
+ --color-success-foreground: var(--success-foreground);
39
+ --color-warning: var(--warning);
40
+ --color-warning-foreground: var(--warning-foreground);
41
+ --color-info: var(--info);
42
+ --color-info-foreground: var(--info-foreground);
43
+ --color-danger: var(--destructive);
44
+ --color-danger-foreground: var(--destructive-foreground);
45
+ --color-gray: var(--muted-foreground);
46
+ }
47
+
48
+ :root {
49
+ --success: var(--alfakit-success, oklch(0.627 0.194 149.214));
50
+ --success-foreground: oklch(0.985 0 0);
51
+ --warning: var(--alfakit-warning, oklch(0.769 0.188 70.08));
52
+ --warning-foreground: oklch(0.145 0 0);
53
+ --info: var(--alfakit-info, oklch(0.623 0.214 259.815));
54
+ --info-foreground: oklch(0.985 0 0);
55
+ }
56
+
57
+ .dark {
58
+ --success: var(--alfakit-success, oklch(0.723 0.219 149.579));
59
+ --warning: var(--alfakit-warning, oklch(0.828 0.189 84.429));
60
+ --info: var(--alfakit-info, oklch(0.707 0.165 254.624));
61
+ }
62
+
63
+ /*
64
+ * Text on solid danger buttons and badges. The Laravel starter kits set
65
+ * `--destructive-foreground` to the same red as `--destructive` (their own buttons use
66
+ * `text-white`), which would hide the label of every danger button. Only AlfaKit's views
67
+ * (`data-alfakit-embedded` in starter kit pages, `data-alfakit-component` for standalone
68
+ * components) and the dialogs, sheets and menus they open while one is on the page get a
69
+ * readable foreground; the host's own components keep theirs. Override it with
70
+ * `--alfakit-danger-foreground`.
71
+ */
72
+ :where([data-alfakit-embedded], [data-alfakit-component]),
73
+ :where(body:has([data-alfakit-embedded], [data-alfakit-component]))
74
+ :where(
75
+ [data-slot='dialog-content'],
76
+ [data-slot='sheet-content'],
77
+ [data-slot='alert-dialog-content'],
78
+ [data-slot='dropdown-menu-content'],
79
+ [data-slot='popover-content']
80
+ ) {
81
+ --destructive-foreground: var(--alfakit-danger-foreground, oklch(0.985 0 0));
82
+ /* A non-inline `@theme` (the starter kits) resolves the colour on :root, so set it here too. */
83
+ --color-destructive-foreground: var(--destructive-foreground);
84
+ }
85
+
86
+ /* Rich editor content and extensions (same rules as the panel stylesheet). */
87
+ .alfakit-prose :where(h2) {
88
+ @apply mt-4 mb-2 text-xl font-semibold;
89
+ }
90
+ .alfakit-prose :where(h3) {
91
+ @apply mt-3 mb-1 text-lg font-semibold;
92
+ }
93
+ .alfakit-prose :where(p) {
94
+ @apply my-2 leading-relaxed;
95
+ }
96
+ .alfakit-prose :where(ul) {
97
+ @apply my-2 list-disc ps-6;
98
+ }
99
+ .alfakit-prose :where(ol) {
100
+ @apply my-2 list-decimal ps-6;
101
+ }
102
+ .alfakit-prose :where(blockquote) {
103
+ @apply text-muted-foreground my-2 border-s-2 ps-4 italic;
104
+ }
105
+ .alfakit-prose :where(pre) {
106
+ @apply bg-muted my-2 overflow-x-auto rounded-md p-3 text-sm;
107
+ }
108
+ .alfakit-prose :where(code) {
109
+ @apply bg-muted rounded px-1 py-0.5 text-sm;
110
+ }
111
+ .alfakit-prose :where(a) {
112
+ @apply text-primary underline underline-offset-4;
113
+ }
114
+ .alfakit-prose :where(img) {
115
+ @apply my-2 max-w-full rounded-md;
116
+ }
117
+ .alfakit-prose :where(table) {
118
+ @apply my-2 w-full border-collapse text-sm;
119
+ }
120
+ .alfakit-prose :where(td, th) {
121
+ @apply border px-2 py-1;
122
+ }
123
+ .alfakit-prose :where(.alfakit-mention) {
124
+ @apply bg-primary/10 text-primary rounded px-1 font-medium;
125
+ }
126
+ .alfakit-prose :where(.alfakit-merge-tag) {
127
+ @apply bg-muted text-muted-foreground rounded px-1 font-mono text-xs;
128
+ }
129
+ .alfakit-prose :where(.alfakit-custom-block) {
130
+ @apply bg-card my-2 overflow-hidden rounded-md border;
131
+ }
132
+ .alfakit-prose :where(.alfakit-custom-block.ProseMirror-selectednode) {
133
+ @apply ring-ring/50 ring-[3px];
134
+ }
135
+ .alfakit-prose :where(.alfakit-custom-block-header) {
136
+ @apply text-muted-foreground bg-muted/40 flex items-center justify-between gap-2 border-b px-2 py-1 text-xs font-medium;
137
+ }
138
+ .alfakit-prose :where(.alfakit-custom-block-controls) {
139
+ @apply flex items-center gap-1;
140
+ }
141
+ .alfakit-prose :where(.alfakit-custom-block-controls button) {
142
+ @apply hover:bg-accent hover:text-accent-foreground rounded px-1.5 py-0.5;
143
+ }
144
+ .alfakit-prose :where(.alfakit-custom-block-preview) {
145
+ @apply p-3;
146
+ }
147
+ .tiptap p.is-editor-empty:first-child::before {
148
+ content: attr(data-placeholder);
149
+ @apply text-muted-foreground pointer-events-none float-left;
150
+ }
@@ -0,0 +1,4 @@
1
+ import { AlfakitNavigation, useAlfakitNavigation } from "./navigation.js";
2
+ import { AlfakitStarterKitRoot, StarterKitContentLayout, StarterKitLayout, StarterKitPageOptions, createStarterKitPage } from "./starter-kit.js";
3
+ import { AlfakitHeaderWidgetProps, AlfakitNotifications, AlfakitSearch, AlfakitTenantSwitcher } from "./widgets.js";
4
+ export { type AlfakitHeaderWidgetProps, type AlfakitNavigation, AlfakitNotifications, AlfakitSearch, AlfakitStarterKitRoot, AlfakitTenantSwitcher, StarterKitContentLayout, type StarterKitLayout, type StarterKitPageOptions, createStarterKitPage, useAlfakitNavigation };
@@ -0,0 +1,4 @@
1
+ import { useAlfakitNavigation } from "./navigation.js";
2
+ import { AlfakitStarterKitRoot, StarterKitContentLayout, createStarterKitPage } from "./starter-kit.js";
3
+ import { AlfakitNotifications, AlfakitSearch, AlfakitTenantSwitcher } from "./widgets.js";
4
+ export { AlfakitNotifications, AlfakitSearch, AlfakitStarterKitRoot, AlfakitTenantSwitcher, StarterKitContentLayout, createStarterKitPage, useAlfakitNavigation };
@@ -0,0 +1,20 @@
1
+ import { StarterKitNavGroup, StarterKitNavigationSchema } from "@alfakit/core";
2
+ //#region src/starter-kit/navigation.d.ts
3
+ export interface AlfakitNavigation {
4
+ /** The panel's navigation as the server shared it, or null for guests. */
5
+ navigation: StarterKitNavigationSchema | null;
6
+ /** Its groups as plain items (`title`, `href`, `icon`, `isActive`, `badge`, `children`). */
7
+ groups: StarterKitNavGroup[];
8
+ }
9
+ /**
10
+ * The navigation of a `starterKit()` panel (the first one unless `panelId` is given), for the
11
+ * host's sidebar. Every Inertia page of the application carries it, so the host's own pages
12
+ * list the panel's resources too.
13
+ *
14
+ * ```tsx
15
+ * const { groups } = useAlfakitNavigation()
16
+ * ```
17
+ */
18
+ export declare function useAlfakitNavigation(panelId?: string): AlfakitNavigation;
19
+ //#endregion
20
+ //# sourceMappingURL=navigation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation.d.ts","names":[],"sources":["../../src/starter-kit/navigation.ts"],"mappings":";;iBASiB;;EAEf,YAAY;;EAEZ,QAAQ;;;;;;;;;;;wBAYM,qBAAqB,mBAAmB"}
@@ -0,0 +1,25 @@
1
+ import { starterKitNavigation, toStarterKitNavGroups } from "@alfakit/core";
2
+ import { usePage } from "@inertiajs/react";
3
+ import { useMemo } from "react";
4
+ //#region src/starter-kit/navigation.ts
5
+ /**
6
+ * The navigation of a `starterKit()` panel (the first one unless `panelId` is given), for the
7
+ * host's sidebar. Every Inertia page of the application carries it, so the host's own pages
8
+ * list the panel's resources too.
9
+ *
10
+ * ```tsx
11
+ * const { groups } = useAlfakitNavigation()
12
+ * ```
13
+ */
14
+ function useAlfakitNavigation(panelId) {
15
+ const props = usePage().props;
16
+ const navigation = starterKitNavigation(props, panelId);
17
+ return useMemo(() => ({
18
+ navigation,
19
+ groups: toStarterKitNavGroups(navigation?.groups)
20
+ }), [navigation]);
21
+ }
22
+ //#endregion
23
+ export { useAlfakitNavigation };
24
+
25
+ //# sourceMappingURL=navigation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation.js","names":[],"sources":["../../src/starter-kit/navigation.ts"],"sourcesContent":["import {\n starterKitNavigation,\n toStarterKitNavGroups,\n type StarterKitNavGroup,\n type StarterKitNavigationSchema,\n} from '@alfakit/core'\nimport { usePage } from '@inertiajs/react'\nimport { useMemo } from 'react'\n\nexport interface AlfakitNavigation {\n /** The panel's navigation as the server shared it, or null for guests. */\n navigation: StarterKitNavigationSchema | null\n /** Its groups as plain items (`title`, `href`, `icon`, `isActive`, `badge`, `children`). */\n groups: StarterKitNavGroup[]\n}\n\n/**\n * The navigation of a `starterKit()` panel (the first one unless `panelId` is given), for the\n * host's sidebar. Every Inertia page of the application carries it, so the host's own pages\n * list the panel's resources too.\n *\n * ```tsx\n * const { groups } = useAlfakitNavigation()\n * ```\n */\nexport function useAlfakitNavigation(panelId?: string): AlfakitNavigation {\n const props = usePage().props\n const navigation = starterKitNavigation(props, panelId)\n\n return useMemo(\n () => ({ navigation, groups: toStarterKitNavGroups(navigation?.groups) }),\n [navigation],\n )\n}\n"],"mappings":";;;;;;;;;;;;;AAyBA,SAAgB,qBAAqB,SAAqC;CACxE,MAAM,QAAQ,QAAQ,CAAC,CAAC;CACxB,MAAM,aAAa,qBAAqB,OAAO,OAAO;CAEtD,OAAO,eACE;EAAE;EAAY,QAAQ,sBAAsB,YAAY,MAAM;CAAE,IACvE,CAAC,UAAU,CACb;AACF"}
@@ -0,0 +1,56 @@
1
+ import { AnyComponent } from "../context.js";
2
+ import { AppLayoutProps } from "../layouts/app-layout.js";
3
+ import { AlfakitOptions, StarterKitBreadcrumb } from "@alfakit/core";
4
+ import { ComponentType, ReactNode } from "react";
5
+ //#region src/starter-kit/starter-kit.d.ts
6
+ /** The host's layout, as the starter kits' `AppLayout` takes its props. */
7
+ export type StarterKitLayout = ComponentType<{
8
+ breadcrumbs?: StarterKitBreadcrumb[];
9
+ children: ReactNode;
10
+ }>;
11
+ export interface StarterKitPageOptions extends Pick<AlfakitOptions<AnyComponent>, 'components' | 'pages' | 'chartFormatters' | 'chartPlugins' | 'richEditorExtensions'> {
12
+ /**
13
+ * The host layout Alfakit pages render in, usually the starter kit's `AppLayout`
14
+ * (`@/layouts/app-layout`). It receives the page's breadcrumbs as `{ title, href }`.
15
+ * `null` renders the pages without a host layout.
16
+ */
17
+ layout?: StarterKitLayout | null;
18
+ }
19
+ /**
20
+ * The content area of an Alfakit page inside the host layout: what `layout:app` renders in
21
+ * starter kit mode instead of Alfakit's sidebar and top bar. Replace it with
22
+ * `createStarterKitPage({ components: { 'layout:app': MyContent } })`.
23
+ */
24
+ export declare function StarterKitContentLayout({ children, maxContentWidth }: AppLayoutProps): import("react").JSX.Element;
25
+ /**
26
+ * The Inertia layout around every Alfakit page in starter kit mode, inside the host layout:
27
+ * Alfakit's context, modals, toasts and the reading direction. It stays mounted while the
28
+ * user moves between Alfakit pages.
29
+ */
30
+ export declare function AlfakitStarterKitRoot({ options, children }: {
31
+ options?: StarterKitPageOptions;
32
+ children?: ReactNode;
33
+ }): import("react").JSX.Element;
34
+ /**
35
+ * The page component for `Alfakit/Page` in a starter kit app: the host's
36
+ * `resources/js/pages/Alfakit/Page.tsx` (written by `alfakit:install --starter-kit`) exports it,
37
+ * so Inertia's page resolution, the root view's page preload and SSR all find it like any
38
+ * other host page.
39
+ *
40
+ * ```tsx
41
+ * import { createStarterKitPage } from '@alfakit/react'
42
+ * import AppLayout from '@/layouts/app-layout'
43
+ *
44
+ * export default createStarterKitPage({ layout: AppLayout })
45
+ * ```
46
+ */
47
+ export declare function createStarterKitPage(options?: StarterKitPageOptions): {
48
+ (): import("react").JSX.Element;
49
+ layout(props: Record<string, unknown>): (readonly [StarterKitLayout, {
50
+ readonly breadcrumbs: StarterKitBreadcrumb[];
51
+ }] | readonly [typeof AlfakitStarterKitRoot, {
52
+ readonly options: StarterKitPageOptions;
53
+ }])[];
54
+ };
55
+ //#endregion
56
+ //# sourceMappingURL=starter-kit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"starter-kit.d.ts","names":[],"sources":["../../src/starter-kit/starter-kit.tsx"],"mappings":";;;;;;YAgCY,mBAAmB;EAC7B,cAAc;EACd,UAAU;;iBAGK,8BAA8B,KAC7C,eAAe;;;;;;EAQf,SAAS;;;;;;;wBAQK,0BAA0B,UAAU,mBAAmB,iCAAc,IAAA;;;;;;wBAgErE,wBACd,SACA;EAEA,UAAU;EACV,WAAW;oBACZ,IAAA;;;;;;;;;;;;;;wBAmDe,qBAAqB,UAAS;;EAYL,OAAA,OAAA,qCAAuB"}
@@ -0,0 +1,120 @@
1
+ import { AlfakitProvider, useAlfakitProps } from "../context.js";
2
+ import { cn } from "../lib/utils.js";
3
+ import { preloadIcons } from "../lib/icons.js";
4
+ import { createDefaultRegistry } from "../registry.js";
5
+ import { setToasterId, showToast } from "../components/notifications/flash-toasts.js";
6
+ import { Slot } from "../components/panel/slot.js";
7
+ import { MAX_WIDTHS } from "../layouts/app-layout.js";
8
+ import { AlfakitPage } from "../pages/page.js";
9
+ import { AlfakitRoot } from "../create-alfakit.js";
10
+ import { ActionRunner, STARTER_KIT_TOASTER_ID, Translator, configureCharts, installStarterKitRuntime, registerRichEditorExtensions, resolveRequestErrorNotification, starterKitBreadcrumbsFromProps, syncStarterKitPage } from "@alfakit/core";
11
+ import { usePage } from "@inertiajs/react";
12
+ import { useEffect, useState } from "react";
13
+ import { jsx, jsxs } from "react/jsx-runtime";
14
+ //#region src/starter-kit/starter-kit.tsx
15
+ /**
16
+ * The content area of an Alfakit page inside the host layout: what `layout:app` renders in
17
+ * starter kit mode instead of Alfakit's sidebar and top bar. Replace it with
18
+ * `createStarterKitPage({ components: { 'layout:app': MyContent } })`.
19
+ */
20
+ function StarterKitContentLayout({ children, maxContentWidth }) {
21
+ const props = useAlfakitProps();
22
+ const width = maxContentWidth ?? props.alfakit.maxContentWidth ?? "full";
23
+ return /* @__PURE__ */ jsxs("div", {
24
+ "data-slot": "content",
25
+ "data-alfakit-embedded": "",
26
+ className: cn("mx-auto flex w-full min-w-0 flex-1 flex-col gap-6 p-4 md:p-6", MAX_WIDTHS[width] ?? "max-w-full"),
27
+ children: [
28
+ /* @__PURE__ */ jsx(Slot, { name: "content.start" }),
29
+ children,
30
+ /* @__PURE__ */ jsx(Slot, { name: "content.end" })
31
+ ]
32
+ });
33
+ }
34
+ let browserContext = null;
35
+ function createStarterKitContext(options) {
36
+ const registry = createDefaultRegistry().register("layout:app", StarterKitContentLayout).registerMany(options.components ?? {});
37
+ const translator = new Translator();
38
+ return {
39
+ registry,
40
+ pages: {
41
+ "Alfakit/Page": AlfakitPage,
42
+ ...options.pages
43
+ },
44
+ translator,
45
+ actions: new ActionRunner({
46
+ endpoints: {
47
+ action: "",
48
+ modal: ""
49
+ },
50
+ onError: (error) => {
51
+ const notification = resolveRequestErrorNotification(error, null, (key, replacements, fallback) => translator.t(key, replacements, fallback));
52
+ if (notification) showToast(notification);
53
+ }
54
+ })
55
+ };
56
+ }
57
+ function starterKitContext(options) {
58
+ if (typeof window === "undefined") return createStarterKitContext(options);
59
+ browserContext ??= createStarterKitContext(options);
60
+ return browserContext;
61
+ }
62
+ /**
63
+ * The Inertia layout around every Alfakit page in starter kit mode, inside the host layout:
64
+ * Alfakit's context, modals, toasts and the reading direction. It stays mounted while the
65
+ * user moves between Alfakit pages.
66
+ */
67
+ function AlfakitStarterKitRoot({ options, children }) {
68
+ const [context] = useState(() => starterKitContext(options ?? {}));
69
+ const props = usePage().props;
70
+ const panel = props.alfakit;
71
+ if (panel) context.actions.setEndpoints({
72
+ action: panel.endpoints.action ?? "",
73
+ modal: panel.endpoints.modal ?? ""
74
+ });
75
+ useEffect(() => {
76
+ syncStarterKitPage(props);
77
+ }, [props]);
78
+ useEffect(() => {
79
+ installStarterKitRuntime((notification) => showToast(notification), (key, replacements, fallback) => context.translator.t(key, replacements, fallback));
80
+ setToasterId(STARTER_KIT_TOASTER_ID);
81
+ return () => {
82
+ syncStarterKitPage(null);
83
+ setToasterId(void 0);
84
+ };
85
+ }, [context]);
86
+ return /* @__PURE__ */ jsx(AlfakitProvider, {
87
+ value: context,
88
+ children: /* @__PURE__ */ jsx(AlfakitRoot, {
89
+ toasterId: STARTER_KIT_TOASTER_ID,
90
+ children
91
+ })
92
+ });
93
+ }
94
+ /**
95
+ * The page component for `Alfakit/Page` in a starter kit app: the host's
96
+ * `resources/js/pages/Alfakit/Page.tsx` (written by `alfakit:install --starter-kit`) exports it,
97
+ * so Inertia's page resolution, the root view's page preload and SSR all find it like any
98
+ * other host page.
99
+ *
100
+ * ```tsx
101
+ * import { createStarterKitPage } from '@alfakit/react'
102
+ * import AppLayout from '@/layouts/app-layout'
103
+ *
104
+ * export default createStarterKitPage({ layout: AppLayout })
105
+ * ```
106
+ */
107
+ function createStarterKitPage(options = {}) {
108
+ preloadIcons();
109
+ configureCharts(options);
110
+ registerRichEditorExtensions(options.richEditorExtensions ?? {});
111
+ function AlfakitStarterKitPage() {
112
+ return /* @__PURE__ */ jsx(AlfakitPage, {});
113
+ }
114
+ AlfakitStarterKitPage.layout = (props) => [...options.layout ? [[options.layout, { breadcrumbs: starterKitBreadcrumbsFromProps(props) }]] : [], [AlfakitStarterKitRoot, { options }]];
115
+ return AlfakitStarterKitPage;
116
+ }
117
+ //#endregion
118
+ export { AlfakitStarterKitRoot, StarterKitContentLayout, createStarterKitPage };
119
+
120
+ //# sourceMappingURL=starter-kit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"starter-kit.js","names":[],"sources":["../../src/starter-kit/starter-kit.tsx"],"sourcesContent":["import {\n ActionRunner,\n STARTER_KIT_TOASTER_ID,\n Translator,\n configureCharts,\n installStarterKitRuntime,\n registerRichEditorExtensions,\n resolveRequestErrorNotification,\n starterKitBreadcrumbsFromProps,\n syncStarterKitPage,\n type AlfakitOptions,\n type AlfakitPageProps,\n type StarterKitBreadcrumb,\n} from '@alfakit/core'\nimport { usePage } from '@inertiajs/react'\nimport { useEffect, useState, type ComponentType, type ReactNode } from 'react'\nimport { setToasterId, showToast } from '../components/notifications/flash-toasts'\nimport { Slot } from '../components/panel/slot'\nimport {\n AlfakitProvider,\n useAlfakitProps,\n type AlfakitContextValue,\n type AnyComponent,\n} from '../context'\nimport { AlfakitRoot } from '../create-alfakit'\nimport { MAX_WIDTHS, type AppLayoutProps } from '../layouts/app-layout'\nimport { preloadIcons } from '../lib/icons'\nimport { cn } from '../lib/utils'\nimport { AlfakitPage } from '../pages/page'\nimport { createDefaultRegistry } from '../registry'\n\n/** The host's layout, as the starter kits' `AppLayout` takes its props. */\nexport type StarterKitLayout = ComponentType<{\n breadcrumbs?: StarterKitBreadcrumb[]\n children: ReactNode\n}>\n\nexport interface StarterKitPageOptions extends Pick<\n AlfakitOptions<AnyComponent>,\n 'components' | 'pages' | 'chartFormatters' | 'chartPlugins' | 'richEditorExtensions'\n> {\n /**\n * The host layout Alfakit pages render in, usually the starter kit's `AppLayout`\n * (`@/layouts/app-layout`). It receives the page's breadcrumbs as `{ title, href }`.\n * `null` renders the pages without a host layout.\n */\n layout?: StarterKitLayout | null\n}\n\n/**\n * The content area of an Alfakit page inside the host layout: what `layout:app` renders in\n * starter kit mode instead of Alfakit's sidebar and top bar. Replace it with\n * `createStarterKitPage({ components: { 'layout:app': MyContent } })`.\n */\nexport function StarterKitContentLayout({ children, maxContentWidth }: AppLayoutProps) {\n const props = useAlfakitProps()\n // The host's pages fill the content area, so starter kit pages default to the full width.\n const width = maxContentWidth ?? props.alfakit.maxContentWidth ?? 'full'\n\n return (\n <div\n data-slot=\"content\"\n data-alfakit-embedded=\"\"\n className={cn(\n 'mx-auto flex w-full min-w-0 flex-1 flex-col gap-6 p-4 md:p-6',\n MAX_WIDTHS[width] ?? 'max-w-full',\n )}\n >\n <Slot name=\"content.start\" />\n {children}\n <Slot name=\"content.end\" />\n </div>\n )\n}\n\n// One context for the browser session (it survives navigations between host and Alfakit\n// pages); a server render builds one per request so concurrent renders never share a locale.\nlet browserContext: AlfakitContextValue | null = null\n\nfunction createStarterKitContext(options: StarterKitPageOptions): AlfakitContextValue {\n const registry = createDefaultRegistry()\n .register('layout:app', StarterKitContentLayout)\n .registerMany(options.components ?? {})\n const translator = new Translator()\n\n return {\n registry,\n pages: { 'Alfakit/Page': AlfakitPage, ...options.pages },\n translator,\n actions: new ActionRunner({\n endpoints: { action: '', modal: '' },\n // A failed action request is a toast, never a silent no-op.\n onError: (error) => {\n const notification = resolveRequestErrorNotification(\n error,\n null,\n (key, replacements, fallback) => translator.t(key, replacements, fallback),\n )\n\n if (notification) showToast(notification)\n },\n }),\n }\n}\n\nfunction starterKitContext(options: StarterKitPageOptions): AlfakitContextValue {\n if (typeof window === 'undefined') return createStarterKitContext(options)\n\n browserContext ??= createStarterKitContext(options)\n\n return browserContext\n}\n\n/**\n * The Inertia layout around every Alfakit page in starter kit mode, inside the host layout:\n * Alfakit's context, modals, toasts and the reading direction. It stays mounted while the\n * user moves between Alfakit pages.\n */\nexport function AlfakitStarterKitRoot({\n options,\n children,\n}: {\n options?: StarterKitPageOptions\n children?: ReactNode\n}) {\n const [context] = useState(() => starterKitContext(options ?? {}))\n const props = usePage<AlfakitPageProps>().props\n const panel = props.alfakit\n\n // Endpoints and error notifications follow the open page.\n if (panel) {\n context.actions.setEndpoints({\n action: panel.endpoints.action ?? '',\n modal: panel.endpoints.modal ?? '',\n })\n }\n\n useEffect(() => {\n syncStarterKitPage(props)\n }, [props])\n\n useEffect(() => {\n installStarterKitRuntime(\n (notification) => showToast(notification),\n (key, replacements, fallback) => context.translator.t(key, replacements, fallback),\n )\n setToasterId(STARTER_KIT_TOASTER_ID)\n\n return () => {\n // A host page is open: its errors and toasts are the host's again.\n syncStarterKitPage(null)\n setToasterId(undefined)\n }\n }, [context])\n\n return (\n <AlfakitProvider value={context}>\n <AlfakitRoot toasterId={STARTER_KIT_TOASTER_ID}>{children}</AlfakitRoot>\n </AlfakitProvider>\n )\n}\n\n/**\n * The page component for `Alfakit/Page` in a starter kit app: the host's\n * `resources/js/pages/Alfakit/Page.tsx` (written by `alfakit:install --starter-kit`) exports it,\n * so Inertia's page resolution, the root view's page preload and SSR all find it like any\n * other host page.\n *\n * ```tsx\n * import { createStarterKitPage } from '@alfakit/react'\n * import AppLayout from '@/layouts/app-layout'\n *\n * export default createStarterKitPage({ layout: AppLayout })\n * ```\n */\nexport function createStarterKitPage(options: StarterKitPageOptions = {}) {\n // Panel pages draw named icons: fetch `lucide-react/dynamic` with the page.\n preloadIcons()\n // `'js:name'` chart option callbacks, Chart.js plugins and rich editor extensions.\n configureCharts(options)\n registerRichEditorExtensions(options.richEditorExtensions ?? {})\n\n function AlfakitStarterKitPage() {\n return <AlfakitPage />\n }\n\n // A layout callback: the host layout (with the page's breadcrumbs), then Alfakit's root.\n AlfakitStarterKitPage.layout = (props: Record<string, unknown>) => [\n ...(options.layout\n ? [[options.layout, { breadcrumbs: starterKitBreadcrumbsFromProps(props) }] as const]\n : []),\n [AlfakitStarterKitRoot, { options }] as const,\n ]\n\n return AlfakitStarterKitPage\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAsDA,SAAgB,wBAAwB,EAAE,UAAU,mBAAmC;CACrF,MAAM,QAAQ,gBAAgB;CAE9B,MAAM,QAAQ,mBAAmB,MAAM,QAAQ,mBAAmB;CAElE,OACE,qBAAC,OAAD;EACE,aAAU;EACV,yBAAsB;EACtB,WAAW,GACT,gEACA,WAAW,UAAU,YACvB;EANF,UAAA;GAQE,oBAAC,MAAD,EAAM,MAAK,gBAAiB,CAAA;GAC3B;GACD,oBAAC,MAAD,EAAM,MAAK,cAAe,CAAA;EACvB;;AAET;AAIA,IAAI,iBAA6C;AAEjD,SAAS,wBAAwB,SAAqD;CACpF,MAAM,WAAW,sBAAsB,CAAC,CACrC,SAAS,cAAc,uBAAuB,CAAC,CAC/C,aAAa,QAAQ,cAAc,CAAC,CAAC;CACxC,MAAM,aAAa,IAAI,WAAW;CAElC,OAAO;EACL;EACA,OAAO;GAAE,gBAAgB;GAAa,GAAG,QAAQ;EAAM;EACvD;EACA,SAAS,IAAI,aAAa;GACxB,WAAW;IAAE,QAAQ;IAAI,OAAO;GAAG;GAEnC,UAAU,UAAU;IAClB,MAAM,eAAe,gCACnB,OACA,OACC,KAAK,cAAc,aAAa,WAAW,EAAE,KAAK,cAAc,QAAQ,CAC3E;IAEA,IAAI,cAAc,UAAU,YAAY;GAC1C;EACF,CAAC;CACH;AACF;AAEA,SAAS,kBAAkB,SAAqD;CAC9E,IAAI,OAAO,WAAW,aAAa,OAAO,wBAAwB,OAAO;CAEzE,mBAAmB,wBAAwB,OAAO;CAElD,OAAO;AACT;;;;;;AAOA,SAAgB,sBAAsB,EACpC,SACA,YAIC;CACD,MAAM,CAAC,WAAW,eAAe,kBAAkB,WAAW,CAAC,CAAC,CAAC;CACjE,MAAM,QAAQ,QAA0B,CAAC,CAAC;CAC1C,MAAM,QAAQ,MAAM;CAGpB,IAAI,OACF,QAAQ,QAAQ,aAAa;EAC3B,QAAQ,MAAM,UAAU,UAAU;EAClC,OAAO,MAAM,UAAU,SAAS;CAClC,CAAC;CAGH,gBAAgB;EACd,mBAAmB,KAAK;CAC1B,GAAG,CAAC,KAAK,CAAC;CAEV,gBAAgB;EACd,0BACG,iBAAiB,UAAU,YAAY,IACvC,KAAK,cAAc,aAAa,QAAQ,WAAW,EAAE,KAAK,cAAc,QAAQ,CACnF;EACA,aAAa,sBAAsB;EAEnC,aAAa;GAEX,mBAAmB,IAAI;GACvB,aAAa,KAAA,CAAS;EACxB;CACF,GAAG,CAAC,OAAO,CAAC;CAEZ,OACE,oBAAC,iBAAD;EAAiB,OAAO;EACtB,UAAA,oBAAC,aAAD;GAAa,WAAW;GAAyB;EAAsB,CAAA;CACxD,CAAA;AAErB;;;;;;;;;;;;;;AAeA,SAAgB,qBAAqB,UAAiC,CAAC,GAAG;CAExE,aAAa;CAEb,gBAAgB,OAAO;CACvB,6BAA6B,QAAQ,wBAAwB,CAAC,CAAC;CAE/D,SAAS,wBAAwB;EAC/B,OAAO,oBAAC,aAAD,CAAc,CAAA;CACvB;CAGA,sBAAsB,UAAU,UAAmC,CACjE,GAAI,QAAQ,SACR,CAAC,CAAC,QAAQ,QAAQ,EAAE,aAAa,+BAA+B,KAAK,EAAE,CAAC,CAAU,IAClF,CAAC,GACL,CAAC,uBAAuB,EAAE,QAAQ,CAAC,CACrC;CAEA,OAAO;AACT"}