@alfakit/react 0.0.0-stage → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1015) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/LICENSE.md +21 -0
  3. package/README.md +19 -2
  4. package/dist/app/components.d.ts +49 -0
  5. package/dist/app/components.d.ts.map +1 -0
  6. package/dist/app/components.js +99 -0
  7. package/dist/app/components.js.map +1 -0
  8. package/dist/app/hooks.d.ts +79 -0
  9. package/dist/app/hooks.d.ts.map +1 -0
  10. package/dist/app/hooks.js +239 -0
  11. package/dist/app/hooks.js.map +1 -0
  12. package/dist/components/actions/action-button.d.ts +17 -0
  13. package/dist/components/actions/action-button.d.ts.map +1 -0
  14. package/dist/components/actions/action-button.js +150 -0
  15. package/dist/components/actions/action-button.js.map +1 -0
  16. package/dist/components/actions/action-context.d.ts +11 -0
  17. package/dist/components/actions/action-context.d.ts.map +1 -0
  18. package/dist/components/actions/action-context.js +24 -0
  19. package/dist/components/actions/action-context.js.map +1 -0
  20. package/dist/components/actions/action-list.d.ts +20 -0
  21. package/dist/components/actions/action-list.d.ts.map +1 -0
  22. package/dist/components/actions/action-list.js +181 -0
  23. package/dist/components/actions/action-list.js.map +1 -0
  24. package/dist/components/actions/action-modals.d.ts +5 -0
  25. package/dist/components/actions/action-modals.d.ts.map +1 -0
  26. package/dist/components/actions/action-modals.js +362 -0
  27. package/dist/components/actions/action-modals.js.map +1 -0
  28. package/dist/components/actions/index.d.ts +5 -0
  29. package/dist/components/ai/copilot-panel.js +439 -0
  30. package/dist/components/ai/copilot-panel.js.map +1 -0
  31. package/dist/components/ai/copilot.d.ts +12 -0
  32. package/dist/components/ai/copilot.d.ts.map +1 -0
  33. package/dist/components/ai/copilot.js +66 -0
  34. package/dist/components/ai/copilot.js.map +1 -0
  35. package/dist/components/ai/index.d.ts +3 -0
  36. package/dist/components/ai/index.js +3 -0
  37. package/dist/components/ai/stream-lazy.d.ts +9 -0
  38. package/dist/components/ai/stream-lazy.d.ts.map +1 -0
  39. package/dist/components/ai/stream-lazy.js +13 -0
  40. package/dist/components/ai/stream-lazy.js.map +1 -0
  41. package/dist/components/ai/stream.js +85 -0
  42. package/dist/components/ai/stream.js.map +1 -0
  43. package/dist/components/analytics/alfakit-analytics.d.ts +14 -0
  44. package/dist/components/analytics/alfakit-analytics.d.ts.map +1 -0
  45. package/dist/components/analytics/alfakit-analytics.js +36 -0
  46. package/dist/components/analytics/alfakit-analytics.js.map +1 -0
  47. package/dist/components/analytics/breakdown.d.ts +11 -0
  48. package/dist/components/analytics/breakdown.d.ts.map +1 -0
  49. package/dist/components/analytics/breakdown.js +155 -0
  50. package/dist/components/analytics/breakdown.js.map +1 -0
  51. package/dist/components/analytics/index.d.ts +3 -0
  52. package/dist/components/cms/admin-bar.js +68 -0
  53. package/dist/components/cms/admin-bar.js.map +1 -0
  54. package/dist/components/cms/blocks.d.ts +41 -0
  55. package/dist/components/cms/blocks.d.ts.map +1 -0
  56. package/dist/components/cms/blocks.js +400 -0
  57. package/dist/components/cms/blocks.js.map +1 -0
  58. package/dist/components/cms/context.d.ts +24 -0
  59. package/dist/components/cms/context.d.ts.map +1 -0
  60. package/dist/components/cms/context.js +43 -0
  61. package/dist/components/cms/context.js.map +1 -0
  62. package/dist/components/cms/head.d.ts +11 -0
  63. package/dist/components/cms/head.d.ts.map +1 -0
  64. package/dist/components/cms/head.js +40 -0
  65. package/dist/components/cms/head.js.map +1 -0
  66. package/dist/components/cms/index.d.ts +8 -0
  67. package/dist/components/cms/index.js +8 -0
  68. package/dist/components/cms/live-preview-lazy.d.ts +9 -0
  69. package/dist/components/cms/live-preview-lazy.d.ts.map +1 -0
  70. package/dist/components/cms/live-preview-lazy.js +13 -0
  71. package/dist/components/cms/live-preview-lazy.js.map +1 -0
  72. package/dist/components/cms/live-preview.js +288 -0
  73. package/dist/components/cms/live-preview.js.map +1 -0
  74. package/dist/components/cms/menu.d.ts +24 -0
  75. package/dist/components/cms/menu.d.ts.map +1 -0
  76. package/dist/components/cms/menu.js +181 -0
  77. package/dist/components/cms/menu.js.map +1 -0
  78. package/dist/components/cms/page.d.ts +27 -0
  79. package/dist/components/cms/page.d.ts.map +1 -0
  80. package/dist/components/cms/page.js +180 -0
  81. package/dist/components/cms/page.js.map +1 -0
  82. package/dist/components/cms/parts.d.ts +24 -0
  83. package/dist/components/cms/parts.d.ts.map +1 -0
  84. package/dist/components/cms/parts.js +58 -0
  85. package/dist/components/cms/parts.js.map +1 -0
  86. package/dist/components/dev-tools/dev-tools-inspector.js +302 -0
  87. package/dist/components/dev-tools/dev-tools-inspector.js.map +1 -0
  88. package/dist/components/dev-tools/dev-tools-slot.js +24 -0
  89. package/dist/components/dev-tools/dev-tools-slot.js.map +1 -0
  90. package/dist/components/entries/code-entry.d.ts +8 -0
  91. package/dist/components/entries/code-entry.d.ts.map +1 -0
  92. package/dist/components/entries/code-entry.js +59 -0
  93. package/dist/components/entries/code-entry.js.map +1 -0
  94. package/dist/components/entries/entry-wrapper.d.ts +13 -0
  95. package/dist/components/entries/entry-wrapper.d.ts.map +1 -0
  96. package/dist/components/entries/entry-wrapper.js +175 -0
  97. package/dist/components/entries/entry-wrapper.js.map +1 -0
  98. package/dist/components/entries/index.d.ts +6 -0
  99. package/dist/components/entries/other-entries.d.ts +20 -0
  100. package/dist/components/entries/other-entries.d.ts.map +1 -0
  101. package/dist/components/entries/other-entries.js +169 -0
  102. package/dist/components/entries/other-entries.js.map +1 -0
  103. package/dist/components/entries/repeatable-entry-table.js +33 -0
  104. package/dist/components/entries/repeatable-entry-table.js.map +1 -0
  105. package/dist/components/entries/text-entry.d.ts +12 -0
  106. package/dist/components/entries/text-entry.d.ts.map +1 -0
  107. package/dist/components/entries/text-entry.js +181 -0
  108. package/dist/components/entries/text-entry.js.map +1 -0
  109. package/dist/components/entries/view-entry.d.ts +8 -0
  110. package/dist/components/entries/view-entry.d.ts.map +1 -0
  111. package/dist/components/entries/view-entry.js +26 -0
  112. package/dist/components/entries/view-entry.js.map +1 -0
  113. package/dist/components/fields/builder-picker.js +215 -0
  114. package/dist/components/fields/builder-picker.js.map +1 -0
  115. package/dist/components/fields/builder.d.ts +16 -0
  116. package/dist/components/fields/builder.d.ts.map +1 -0
  117. package/dist/components/fields/builder.js +351 -0
  118. package/dist/components/fields/builder.js.map +1 -0
  119. package/dist/components/fields/checkbox-list.d.ts +7 -0
  120. package/dist/components/fields/checkbox-list.d.ts.map +1 -0
  121. package/dist/components/fields/checkbox-list.js +133 -0
  122. package/dist/components/fields/checkbox-list.js.map +1 -0
  123. package/dist/components/fields/checkbox.d.ts +7 -0
  124. package/dist/components/fields/checkbox.d.ts.map +1 -0
  125. package/dist/components/fields/checkbox.js +29 -0
  126. package/dist/components/fields/checkbox.js.map +1 -0
  127. package/dist/components/fields/code-editor-lazy.d.ts +9 -0
  128. package/dist/components/fields/code-editor-lazy.d.ts.map +1 -0
  129. package/dist/components/fields/code-editor-lazy.js +31 -0
  130. package/dist/components/fields/code-editor-lazy.js.map +1 -0
  131. package/dist/components/fields/code-editor.js +107 -0
  132. package/dist/components/fields/code-editor.js.map +1 -0
  133. package/dist/components/fields/code-tokens.js +18 -0
  134. package/dist/components/fields/code-tokens.js.map +1 -0
  135. package/dist/components/fields/color-picker.d.ts +7 -0
  136. package/dist/components/fields/color-picker.d.ts.map +1 -0
  137. package/dist/components/fields/color-picker.js +70 -0
  138. package/dist/components/fields/color-picker.js.map +1 -0
  139. package/dist/components/fields/date-picker.d.ts +7 -0
  140. package/dist/components/fields/date-picker.d.ts.map +1 -0
  141. package/dist/components/fields/date-picker.js +230 -0
  142. package/dist/components/fields/date-picker.js.map +1 -0
  143. package/dist/components/fields/file-upload.d.ts +7 -0
  144. package/dist/components/fields/file-upload.d.ts.map +1 -0
  145. package/dist/components/fields/file-upload.js +397 -0
  146. package/dist/components/fields/file-upload.js.map +1 -0
  147. package/dist/components/fields/hidden.d.ts +7 -0
  148. package/dist/components/fields/hidden.d.ts.map +1 -0
  149. package/dist/components/fields/hidden.js +17 -0
  150. package/dist/components/fields/hidden.js.map +1 -0
  151. package/dist/components/fields/icon-picker-lazy.d.ts +9 -0
  152. package/dist/components/fields/icon-picker-lazy.d.ts.map +1 -0
  153. package/dist/components/fields/icon-picker-lazy.js +45 -0
  154. package/dist/components/fields/icon-picker-lazy.js.map +1 -0
  155. package/dist/components/fields/icon-picker-value.js +48 -0
  156. package/dist/components/fields/icon-picker-value.js.map +1 -0
  157. package/dist/components/fields/icon-picker.js +228 -0
  158. package/dist/components/fields/icon-picker.js.map +1 -0
  159. package/dist/components/fields/image-editor-dialog-lazy.js +18 -0
  160. package/dist/components/fields/image-editor-dialog-lazy.js.map +1 -0
  161. package/dist/components/fields/image-editor-dialog.js +328 -0
  162. package/dist/components/fields/image-editor-dialog.js.map +1 -0
  163. package/dist/components/fields/index.d.ts +24 -0
  164. package/dist/components/fields/item-actions.js +270 -0
  165. package/dist/components/fields/item-actions.js.map +1 -0
  166. package/dist/components/fields/key-value.d.ts +11 -0
  167. package/dist/components/fields/key-value.d.ts.map +1 -0
  168. package/dist/components/fields/key-value.js +194 -0
  169. package/dist/components/fields/key-value.js.map +1 -0
  170. package/dist/components/fields/lazy-fields.d.ts +13 -0
  171. package/dist/components/fields/lazy-fields.d.ts.map +1 -0
  172. package/dist/components/fields/lazy-fields.js +34 -0
  173. package/dist/components/fields/lazy-fields.js.map +1 -0
  174. package/dist/components/fields/modal-table-select.js +386 -0
  175. package/dist/components/fields/modal-table-select.js.map +1 -0
  176. package/dist/components/fields/money-input.d.ts +7 -0
  177. package/dist/components/fields/money-input.d.ts.map +1 -0
  178. package/dist/components/fields/money-input.js +91 -0
  179. package/dist/components/fields/money-input.js.map +1 -0
  180. package/dist/components/fields/one-time-code-input.d.ts +12 -0
  181. package/dist/components/fields/one-time-code-input.d.ts.map +1 -0
  182. package/dist/components/fields/one-time-code-input.js +53 -0
  183. package/dist/components/fields/one-time-code-input.js.map +1 -0
  184. package/dist/components/fields/query-builder-rules.js +295 -0
  185. package/dist/components/fields/query-builder-rules.js.map +1 -0
  186. package/dist/components/fields/radio.d.ts +7 -0
  187. package/dist/components/fields/radio.d.ts.map +1 -0
  188. package/dist/components/fields/radio.js +57 -0
  189. package/dist/components/fields/radio.js.map +1 -0
  190. package/dist/components/fields/repeater-table.js +111 -0
  191. package/dist/components/fields/repeater-table.js.map +1 -0
  192. package/dist/components/fields/repeater.d.ts +15 -0
  193. package/dist/components/fields/repeater.d.ts.map +1 -0
  194. package/dist/components/fields/repeater.js +209 -0
  195. package/dist/components/fields/repeater.js.map +1 -0
  196. package/dist/components/fields/rich-editor-extensions.js +295 -0
  197. package/dist/components/fields/rich-editor-extensions.js.map +1 -0
  198. package/dist/components/fields/rich-editor-lazy.d.ts +9 -0
  199. package/dist/components/fields/rich-editor-lazy.d.ts.map +1 -0
  200. package/dist/components/fields/rich-editor-lazy.js +24 -0
  201. package/dist/components/fields/rich-editor-lazy.js.map +1 -0
  202. package/dist/components/fields/rich-editor.js +517 -0
  203. package/dist/components/fields/rich-editor.js.map +1 -0
  204. package/dist/components/fields/select.d.ts +7 -0
  205. package/dist/components/fields/select.d.ts.map +1 -0
  206. package/dist/components/fields/select.js +455 -0
  207. package/dist/components/fields/select.js.map +1 -0
  208. package/dist/components/fields/slider.d.ts +12 -0
  209. package/dist/components/fields/slider.d.ts.map +1 -0
  210. package/dist/components/fields/slider.js +146 -0
  211. package/dist/components/fields/slider.js.map +1 -0
  212. package/dist/components/fields/tags-input.d.ts +7 -0
  213. package/dist/components/fields/tags-input.d.ts.map +1 -0
  214. package/dist/components/fields/tags-input.js +129 -0
  215. package/dist/components/fields/tags-input.js.map +1 -0
  216. package/dist/components/fields/text-input.d.ts +7 -0
  217. package/dist/components/fields/text-input.d.ts.map +1 -0
  218. package/dist/components/fields/text-input.js +135 -0
  219. package/dist/components/fields/text-input.js.map +1 -0
  220. package/dist/components/fields/textarea.d.ts +7 -0
  221. package/dist/components/fields/textarea.d.ts.map +1 -0
  222. package/dist/components/fields/textarea.js +37 -0
  223. package/dist/components/fields/textarea.js.map +1 -0
  224. package/dist/components/fields/toggle-buttons.d.ts +7 -0
  225. package/dist/components/fields/toggle-buttons.d.ts.map +1 -0
  226. package/dist/components/fields/toggle-buttons.js +84 -0
  227. package/dist/components/fields/toggle-buttons.js.map +1 -0
  228. package/dist/components/fields/toggle.d.ts +7 -0
  229. package/dist/components/fields/toggle.d.ts.map +1 -0
  230. package/dist/components/fields/toggle.js +39 -0
  231. package/dist/components/fields/toggle.js.map +1 -0
  232. package/dist/components/file-manager/file-manager-lazy.d.ts +10 -0
  233. package/dist/components/file-manager/file-manager-lazy.d.ts.map +1 -0
  234. package/dist/components/file-manager/file-manager-lazy.js +49 -0
  235. package/dist/components/file-manager/file-manager-lazy.js.map +1 -0
  236. package/dist/components/file-manager/file-manager.d.ts +1 -0
  237. package/dist/components/file-manager/file-manager.js +1387 -0
  238. package/dist/components/file-manager/file-manager.js.map +1 -0
  239. package/dist/components/file-manager/index.d.ts +3 -0
  240. package/dist/components/file-manager/picker-field.d.ts +12 -0
  241. package/dist/components/file-manager/picker-field.d.ts.map +1 -0
  242. package/dist/components/file-manager/picker-field.js +124 -0
  243. package/dist/components/file-manager/picker-field.js.map +1 -0
  244. package/dist/components/form/form-block.d.ts +12 -0
  245. package/dist/components/form/form-block.d.ts.map +1 -0
  246. package/dist/components/form/form-block.js +155 -0
  247. package/dist/components/form/form-block.js.map +1 -0
  248. package/dist/components/form/form-context.d.ts +27 -0
  249. package/dist/components/form/form-context.d.ts.map +1 -0
  250. package/dist/components/form/form-context.js +65 -0
  251. package/dist/components/form/form-context.js.map +1 -0
  252. package/dist/components/helpdesk/chat-panel.js +209 -0
  253. package/dist/components/helpdesk/chat-panel.js.map +1 -0
  254. package/dist/components/helpdesk/chat-widget.d.ts +23 -0
  255. package/dist/components/helpdesk/chat-widget.d.ts.map +1 -0
  256. package/dist/components/helpdesk/chat-widget.js +76 -0
  257. package/dist/components/helpdesk/chat-widget.js.map +1 -0
  258. package/dist/components/helpdesk/inbox-lazy.d.ts +9 -0
  259. package/dist/components/helpdesk/inbox-lazy.d.ts.map +1 -0
  260. package/dist/components/helpdesk/inbox-lazy.js +46 -0
  261. package/dist/components/helpdesk/inbox-lazy.js.map +1 -0
  262. package/dist/components/helpdesk/inbox.js +609 -0
  263. package/dist/components/helpdesk/inbox.js.map +1 -0
  264. package/dist/components/helpdesk/index.d.ts +3 -0
  265. package/dist/components/kanban/index.d.ts +2 -0
  266. package/dist/components/kanban/index.js +2 -0
  267. package/dist/components/kanban/kanban-lazy.d.ts +10 -0
  268. package/dist/components/kanban/kanban-lazy.d.ts.map +1 -0
  269. package/dist/components/kanban/kanban-lazy.js +31 -0
  270. package/dist/components/kanban/kanban-lazy.js.map +1 -0
  271. package/dist/components/kanban/kanban.js +591 -0
  272. package/dist/components/kanban/kanban.js.map +1 -0
  273. package/dist/components/layout/actions.js +40 -0
  274. package/dist/components/layout/actions.js.map +1 -0
  275. package/dist/components/layout/component-context.d.ts +13 -0
  276. package/dist/components/layout/component-context.d.ts.map +1 -0
  277. package/dist/components/layout/component-context.js +28 -0
  278. package/dist/components/layout/component-context.js.map +1 -0
  279. package/dist/components/layout/deferred.js +135 -0
  280. package/dist/components/layout/deferred.js.map +1 -0
  281. package/dist/components/layout/elements.d.ts +23 -0
  282. package/dist/components/layout/elements.d.ts.map +1 -0
  283. package/dist/components/layout/elements.js +183 -0
  284. package/dist/components/layout/elements.js.map +1 -0
  285. package/dist/components/layout/fieldset.d.ts +7 -0
  286. package/dist/components/layout/fieldset.d.ts.map +1 -0
  287. package/dist/components/layout/fieldset.js +29 -0
  288. package/dist/components/layout/fieldset.js.map +1 -0
  289. package/dist/components/layout/fused-group.d.ts +11 -0
  290. package/dist/components/layout/fused-group.d.ts.map +1 -0
  291. package/dist/components/layout/fused-group.js +64 -0
  292. package/dist/components/layout/fused-group.js.map +1 -0
  293. package/dist/components/layout/grid.d.ts +7 -0
  294. package/dist/components/layout/grid.d.ts.map +1 -0
  295. package/dist/components/layout/grid.js +20 -0
  296. package/dist/components/layout/grid.js.map +1 -0
  297. package/dist/components/layout/index.d.ts +12 -0
  298. package/dist/components/layout/mixed-content.d.ts +14 -0
  299. package/dist/components/layout/mixed-content.d.ts.map +1 -0
  300. package/dist/components/layout/mixed-content.js +44 -0
  301. package/dist/components/layout/mixed-content.js.map +1 -0
  302. package/dist/components/layout/prime.d.ts +17 -0
  303. package/dist/components/layout/prime.d.ts.map +1 -0
  304. package/dist/components/layout/prime.js +126 -0
  305. package/dist/components/layout/prime.js.map +1 -0
  306. package/dist/components/layout/schema-children.d.ts +18 -0
  307. package/dist/components/layout/schema-children.d.ts.map +1 -0
  308. package/dist/components/layout/schema-children.js +26 -0
  309. package/dist/components/layout/schema-children.js.map +1 -0
  310. package/dist/components/layout/section.d.ts +7 -0
  311. package/dist/components/layout/section.d.ts.map +1 -0
  312. package/dist/components/layout/section.js +133 -0
  313. package/dist/components/layout/section.js.map +1 -0
  314. package/dist/components/layout/tabs.d.ts +7 -0
  315. package/dist/components/layout/tabs.d.ts.map +1 -0
  316. package/dist/components/layout/tabs.js +83 -0
  317. package/dist/components/layout/tabs.js.map +1 -0
  318. package/dist/components/layout/wizard.d.ts +7 -0
  319. package/dist/components/layout/wizard.d.ts.map +1 -0
  320. package/dist/components/layout/wizard.js +172 -0
  321. package/dist/components/layout/wizard.js.map +1 -0
  322. package/dist/components/notifications/flash-toasts.d.ts +20 -0
  323. package/dist/components/notifications/flash-toasts.d.ts.map +1 -0
  324. package/dist/components/notifications/flash-toasts.js +121 -0
  325. package/dist/components/notifications/flash-toasts.js.map +1 -0
  326. package/dist/components/notifications/index.d.ts +5 -0
  327. package/dist/components/notifications/notifications-menu.d.ts +15 -0
  328. package/dist/components/notifications/notifications-menu.d.ts.map +1 -0
  329. package/dist/components/notifications/notifications-menu.js +201 -0
  330. package/dist/components/notifications/notifications-menu.js.map +1 -0
  331. package/dist/components/notifications/realtime-notifications.d.ts +9 -0
  332. package/dist/components/notifications/realtime-notifications.d.ts.map +1 -0
  333. package/dist/components/notifications/realtime-notifications.js +30 -0
  334. package/dist/components/notifications/realtime-notifications.js.map +1 -0
  335. package/dist/components/notifications/undo-button.d.ts +13 -0
  336. package/dist/components/notifications/undo-button.d.ts.map +1 -0
  337. package/dist/components/notifications/undo-button.js +54 -0
  338. package/dist/components/notifications/undo-button.js.map +1 -0
  339. package/dist/components/panel/app-sidebar.d.ts +7 -0
  340. package/dist/components/panel/app-sidebar.d.ts.map +1 -0
  341. package/dist/components/panel/app-sidebar.js +302 -0
  342. package/dist/components/panel/app-sidebar.js.map +1 -0
  343. package/dist/components/panel/bottom-nav.d.ts +9 -0
  344. package/dist/components/panel/bottom-nav.d.ts.map +1 -0
  345. package/dist/components/panel/bottom-nav.js +100 -0
  346. package/dist/components/panel/bottom-nav.js.map +1 -0
  347. package/dist/components/panel/debug-panel-slot.d.ts +8 -0
  348. package/dist/components/panel/debug-panel-slot.d.ts.map +1 -0
  349. package/dist/components/panel/debug-panel-slot.js +19 -0
  350. package/dist/components/panel/debug-panel-slot.js.map +1 -0
  351. package/dist/components/panel/debug-panel.d.ts +18 -0
  352. package/dist/components/panel/debug-panel.d.ts.map +1 -0
  353. package/dist/components/panel/debug-panel.js +423 -0
  354. package/dist/components/panel/debug-panel.js.map +1 -0
  355. package/dist/components/panel/global-search-palette.js +278 -0
  356. package/dist/components/panel/global-search-palette.js.map +1 -0
  357. package/dist/components/panel/global-search.d.ts +13 -0
  358. package/dist/components/panel/global-search.d.ts.map +1 -0
  359. package/dist/components/panel/global-search.js +114 -0
  360. package/dist/components/panel/global-search.js.map +1 -0
  361. package/dist/components/panel/impersonation-banner.d.ts +11 -0
  362. package/dist/components/panel/impersonation-banner.d.ts.map +1 -0
  363. package/dist/components/panel/impersonation-banner.js +52 -0
  364. package/dist/components/panel/impersonation-banner.js.map +1 -0
  365. package/dist/components/panel/index.d.ts +18 -0
  366. package/dist/components/panel/keyboard-shortcuts.d.ts +10 -0
  367. package/dist/components/panel/keyboard-shortcuts.d.ts.map +1 -0
  368. package/dist/components/panel/keyboard-shortcuts.js +107 -0
  369. package/dist/components/panel/keyboard-shortcuts.js.map +1 -0
  370. package/dist/components/panel/lazy-placeholder.d.ts +11 -0
  371. package/dist/components/panel/lazy-placeholder.d.ts.map +1 -0
  372. package/dist/components/panel/lazy-placeholder.js +35 -0
  373. package/dist/components/panel/lazy-placeholder.js.map +1 -0
  374. package/dist/components/panel/locale-switcher.d.ts +19 -0
  375. package/dist/components/panel/locale-switcher.d.ts.map +1 -0
  376. package/dist/components/panel/locale-switcher.js +113 -0
  377. package/dist/components/panel/locale-switcher.js.map +1 -0
  378. package/dist/components/panel/menu-item.js +65 -0
  379. package/dist/components/panel/menu-item.js.map +1 -0
  380. package/dist/components/panel/nav-label.js +29 -0
  381. package/dist/components/panel/nav-label.js.map +1 -0
  382. package/dist/components/panel/pwa.d.ts +13 -0
  383. package/dist/components/panel/pwa.d.ts.map +1 -0
  384. package/dist/components/panel/pwa.js +90 -0
  385. package/dist/components/panel/pwa.js.map +1 -0
  386. package/dist/components/panel/schema-contract-guard.js +44 -0
  387. package/dist/components/panel/schema-contract-guard.js.map +1 -0
  388. package/dist/components/panel/shortcut-keys.d.ts +11 -0
  389. package/dist/components/panel/shortcut-keys.d.ts.map +1 -0
  390. package/dist/components/panel/shortcut-keys.js +33 -0
  391. package/dist/components/panel/shortcut-keys.js.map +1 -0
  392. package/dist/components/panel/shortcuts-overlay.d.ts +13 -0
  393. package/dist/components/panel/shortcuts-overlay.d.ts.map +1 -0
  394. package/dist/components/panel/shortcuts-overlay.js +159 -0
  395. package/dist/components/panel/shortcuts-overlay.js.map +1 -0
  396. package/dist/components/panel/slot.d.ts +18 -0
  397. package/dist/components/panel/slot.d.ts.map +1 -0
  398. package/dist/components/panel/slot.js +31 -0
  399. package/dist/components/panel/slot.js.map +1 -0
  400. package/dist/components/panel/sub-navigation.js +125 -0
  401. package/dist/components/panel/sub-navigation.js.map +1 -0
  402. package/dist/components/panel/tenant-menu.d.ts +10 -0
  403. package/dist/components/panel/tenant-menu.d.ts.map +1 -0
  404. package/dist/components/panel/tenant-menu.js +196 -0
  405. package/dist/components/panel/tenant-menu.js.map +1 -0
  406. package/dist/components/panel/theme-toggle.d.ts +4 -0
  407. package/dist/components/panel/theme-toggle.d.ts.map +1 -0
  408. package/dist/components/panel/theme-toggle.js +84 -0
  409. package/dist/components/panel/theme-toggle.js.map +1 -0
  410. package/dist/components/panel/topbar.d.ts +10 -0
  411. package/dist/components/panel/topbar.d.ts.map +1 -0
  412. package/dist/components/panel/topbar.js +74 -0
  413. package/dist/components/panel/topbar.js.map +1 -0
  414. package/dist/components/panel/user-menu.d.ts +16 -0
  415. package/dist/components/panel/user-menu.d.ts.map +1 -0
  416. package/dist/components/panel/user-menu.js +151 -0
  417. package/dist/components/panel/user-menu.js.map +1 -0
  418. package/dist/components/realtime/conflict-banner.d.ts +13 -0
  419. package/dist/components/realtime/conflict-banner.d.ts.map +1 -0
  420. package/dist/components/realtime/conflict-banner.js +193 -0
  421. package/dist/components/realtime/conflict-banner.js.map +1 -0
  422. package/dist/components/realtime/index.d.ts +4 -0
  423. package/dist/components/realtime/index.js +4 -0
  424. package/dist/components/realtime/live-records-pill.d.ts +19 -0
  425. package/dist/components/realtime/live-records-pill.d.ts.map +1 -0
  426. package/dist/components/realtime/live-records-pill.js +57 -0
  427. package/dist/components/realtime/live-records-pill.js.map +1 -0
  428. package/dist/components/realtime/record-presence.d.ts +12 -0
  429. package/dist/components/realtime/record-presence.d.ts.map +1 -0
  430. package/dist/components/realtime/record-presence.js +79 -0
  431. package/dist/components/realtime/record-presence.js.map +1 -0
  432. package/dist/components/schema/content-slot.js +49 -0
  433. package/dist/components/schema/content-slot.js.map +1 -0
  434. package/dist/components/schema/field-actions.js +72 -0
  435. package/dist/components/schema/field-actions.js.map +1 -0
  436. package/dist/components/schema/field-wrapper.d.ts +20 -0
  437. package/dist/components/schema/field-wrapper.d.ts.map +1 -0
  438. package/dist/components/schema/field-wrapper.js +210 -0
  439. package/dist/components/schema/field-wrapper.js.map +1 -0
  440. package/dist/components/schema/fused-group-context.js +14 -0
  441. package/dist/components/schema/fused-group-context.js.map +1 -0
  442. package/dist/components/schema/schema-renderer.d.ts +23 -0
  443. package/dist/components/schema/schema-renderer.d.ts.map +1 -0
  444. package/dist/components/schema/schema-renderer.js +77 -0
  445. package/dist/components/schema/schema-renderer.js.map +1 -0
  446. package/dist/components/schema/translatable-field.js +76 -0
  447. package/dist/components/schema/translatable-field.js.map +1 -0
  448. package/dist/components/schema/virtual-spacer.js +23 -0
  449. package/dist/components/schema/virtual-spacer.js.map +1 -0
  450. package/dist/components/table/cells.d.ts +12 -0
  451. package/dist/components/table/cells.d.ts.map +1 -0
  452. package/dist/components/table/cells.js +472 -0
  453. package/dist/components/table/cells.js.map +1 -0
  454. package/dist/components/table/column-manager.d.ts +17 -0
  455. package/dist/components/table/column-manager.d.ts.map +1 -0
  456. package/dist/components/table/column-manager.js +338 -0
  457. package/dist/components/table/column-manager.js.map +1 -0
  458. package/dist/components/table/content-layout.d.ts +30 -0
  459. package/dist/components/table/content-layout.d.ts.map +1 -0
  460. package/dist/components/table/content-layout.js +224 -0
  461. package/dist/components/table/content-layout.js.map +1 -0
  462. package/dist/components/table/filters.d.ts +15 -0
  463. package/dist/components/table/filters.d.ts.map +1 -0
  464. package/dist/components/table/filters.js +300 -0
  465. package/dist/components/table/filters.js.map +1 -0
  466. package/dist/components/table/grouping.js +194 -0
  467. package/dist/components/table/grouping.js.map +1 -0
  468. package/dist/components/table/index.d.ts +10 -0
  469. package/dist/components/table/list-tabs.js +105 -0
  470. package/dist/components/table/list-tabs.js.map +1 -0
  471. package/dist/components/table/pagination.d.ts +7 -0
  472. package/dist/components/table/pagination.d.ts.map +1 -0
  473. package/dist/components/table/pagination.js +255 -0
  474. package/dist/components/table/pagination.js.map +1 -0
  475. package/dist/components/table/record-cell.d.ts +25 -0
  476. package/dist/components/table/record-cell.d.ts.map +1 -0
  477. package/dist/components/table/record-cell.js +86 -0
  478. package/dist/components/table/record-cell.js.map +1 -0
  479. package/dist/components/table/spreadsheet-lazy.d.ts +7 -0
  480. package/dist/components/table/spreadsheet-lazy.d.ts.map +1 -0
  481. package/dist/components/table/spreadsheet-lazy.js +15 -0
  482. package/dist/components/table/spreadsheet-lazy.js.map +1 -0
  483. package/dist/components/table/spreadsheet.d.ts +11 -0
  484. package/dist/components/table/spreadsheet.d.ts.map +1 -0
  485. package/dist/components/table/spreadsheet.js +420 -0
  486. package/dist/components/table/spreadsheet.js.map +1 -0
  487. package/dist/components/table/summary-rows.js +104 -0
  488. package/dist/components/table/summary-rows.js.map +1 -0
  489. package/dist/components/table/table-block.d.ts +12 -0
  490. package/dist/components/table/table-block.d.ts.map +1 -0
  491. package/dist/components/table/table-block.js +875 -0
  492. package/dist/components/table/table-block.js.map +1 -0
  493. package/dist/components/table/table-views.d.ts +15 -0
  494. package/dist/components/table/table-views.d.ts.map +1 -0
  495. package/dist/components/table/table-views.js +376 -0
  496. package/dist/components/table/table-views.js.map +1 -0
  497. package/dist/components/table/trigger-button.js +44 -0
  498. package/dist/components/table/trigger-button.js.map +1 -0
  499. package/dist/components/translation-manager/index.d.ts +2 -0
  500. package/dist/components/translation-manager/index.js +2 -0
  501. package/dist/components/translation-manager/translation-manager-lazy.d.ts +9 -0
  502. package/dist/components/translation-manager/translation-manager-lazy.d.ts.map +1 -0
  503. package/dist/components/translation-manager/translation-manager-lazy.js +24 -0
  504. package/dist/components/translation-manager/translation-manager-lazy.js.map +1 -0
  505. package/dist/components/translation-manager/translation-manager.js +719 -0
  506. package/dist/components/translation-manager/translation-manager.js.map +1 -0
  507. package/dist/components/tree/index.d.ts +2 -0
  508. package/dist/components/tree/index.js +2 -0
  509. package/dist/components/tree/tree-lazy.d.ts +10 -0
  510. package/dist/components/tree/tree-lazy.d.ts.map +1 -0
  511. package/dist/components/tree/tree-lazy.js +24 -0
  512. package/dist/components/tree/tree-lazy.js.map +1 -0
  513. package/dist/components/tree/tree.js +291 -0
  514. package/dist/components/tree/tree.js.map +1 -0
  515. package/dist/components/ui/alert.d.ts +12 -0
  516. package/dist/components/ui/alert.d.ts.map +1 -0
  517. package/dist/components/ui/alert.js +37 -0
  518. package/dist/components/ui/alert.js.map +1 -0
  519. package/dist/components/ui/avatar.d.ts +9 -0
  520. package/dist/components/ui/avatar.d.ts.map +1 -0
  521. package/dist/components/ui/avatar.js +29 -0
  522. package/dist/components/ui/avatar.js.map +1 -0
  523. package/dist/components/ui/badge.d.ts +12 -0
  524. package/dist/components/ui/badge.d.ts.map +1 -0
  525. package/dist/components/ui/badge.js +26 -0
  526. package/dist/components/ui/badge.js.map +1 -0
  527. package/dist/components/ui/breadcrumb.d.ts +14 -0
  528. package/dist/components/ui/breadcrumb.d.ts.map +1 -0
  529. package/dist/components/ui/breadcrumb.js +79 -0
  530. package/dist/components/ui/breadcrumb.js.map +1 -0
  531. package/dist/components/ui/button.d.ts +13 -0
  532. package/dist/components/ui/button.d.ts.map +1 -0
  533. package/dist/components/ui/button.js +47 -0
  534. package/dist/components/ui/button.js.map +1 -0
  535. package/dist/components/ui/calendar.d.ts +7 -0
  536. package/dist/components/ui/calendar.d.ts.map +1 -0
  537. package/dist/components/ui/calendar.js +48 -0
  538. package/dist/components/ui/calendar.js.map +1 -0
  539. package/dist/components/ui/card.d.ts +12 -0
  540. package/dist/components/ui/card.d.ts.map +1 -0
  541. package/dist/components/ui/card.js +56 -0
  542. package/dist/components/ui/card.js.map +1 -0
  543. package/dist/components/ui/checkbox.d.ts +7 -0
  544. package/dist/components/ui/checkbox.d.ts.map +1 -0
  545. package/dist/components/ui/checkbox.js +21 -0
  546. package/dist/components/ui/checkbox.js.map +1 -0
  547. package/dist/components/ui/collapsible.d.ts +9 -0
  548. package/dist/components/ui/collapsible.d.ts.map +1 -0
  549. package/dist/components/ui/collapsible.js +25 -0
  550. package/dist/components/ui/collapsible.js.map +1 -0
  551. package/dist/components/ui/command.d.ts +23 -0
  552. package/dist/components/ui/command.d.ts.map +1 -0
  553. package/dist/components/ui/command.js +89 -0
  554. package/dist/components/ui/command.js.map +1 -0
  555. package/dist/components/ui/dialog.d.ts +18 -0
  556. package/dist/components/ui/dialog.d.ts.map +1 -0
  557. package/dist/components/ui/dialog.js +92 -0
  558. package/dist/components/ui/dialog.js.map +1 -0
  559. package/dist/components/ui/dropdown-menu.d.ts +28 -0
  560. package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
  561. package/dist/components/ui/dropdown-menu.js +123 -0
  562. package/dist/components/ui/dropdown-menu.js.map +1 -0
  563. package/dist/components/ui/input.d.ts +6 -0
  564. package/dist/components/ui/input.d.ts.map +1 -0
  565. package/dist/components/ui/input.js +15 -0
  566. package/dist/components/ui/input.js.map +1 -0
  567. package/dist/components/ui/label.d.ts +7 -0
  568. package/dist/components/ui/label.d.ts.map +1 -0
  569. package/dist/components/ui/label.js +15 -0
  570. package/dist/components/ui/label.js.map +1 -0
  571. package/dist/components/ui/popover.d.ts +10 -0
  572. package/dist/components/ui/popover.d.ts.map +1 -0
  573. package/dist/components/ui/popover.js +35 -0
  574. package/dist/components/ui/popover.js.map +1 -0
  575. package/dist/components/ui/radio-group.d.ts +8 -0
  576. package/dist/components/ui/radio-group.d.ts.map +1 -0
  577. package/dist/components/ui/radio-group.js +28 -0
  578. package/dist/components/ui/radio-group.js.map +1 -0
  579. package/dist/components/ui/scroll-area.d.ts +8 -0
  580. package/dist/components/ui/scroll-area.d.ts.map +1 -0
  581. package/dist/components/ui/scroll-area.js +36 -0
  582. package/dist/components/ui/scroll-area.js.map +1 -0
  583. package/dist/components/ui/select.d.ts +18 -0
  584. package/dist/components/ui/select.d.ts.map +1 -0
  585. package/dist/components/ui/select.js +96 -0
  586. package/dist/components/ui/select.js.map +1 -0
  587. package/dist/components/ui/separator.d.ts +7 -0
  588. package/dist/components/ui/separator.d.ts.map +1 -0
  589. package/dist/components/ui/separator.js +17 -0
  590. package/dist/components/ui/separator.js.map +1 -0
  591. package/dist/components/ui/sheet.d.ts +17 -0
  592. package/dist/components/ui/sheet.d.ts.map +1 -0
  593. package/dist/components/ui/sheet.js +89 -0
  594. package/dist/components/ui/sheet.js.map +1 -0
  595. package/dist/components/ui/sidebar.d.ts +72 -0
  596. package/dist/components/ui/sidebar.d.ts.map +1 -0
  597. package/dist/components/ui/sidebar.js +376 -0
  598. package/dist/components/ui/sidebar.js.map +1 -0
  599. package/dist/components/ui/skeleton.d.ts +6 -0
  600. package/dist/components/ui/skeleton.d.ts.map +1 -0
  601. package/dist/components/ui/skeleton.js +14 -0
  602. package/dist/components/ui/skeleton.js.map +1 -0
  603. package/dist/components/ui/sonner.d.ts +6 -0
  604. package/dist/components/ui/sonner.d.ts.map +1 -0
  605. package/dist/components/ui/sonner.js +34 -0
  606. package/dist/components/ui/sonner.js.map +1 -0
  607. package/dist/components/ui/spinner.d.ts +10 -0
  608. package/dist/components/ui/spinner.d.ts.map +1 -0
  609. package/dist/components/ui/spinner.js +30 -0
  610. package/dist/components/ui/spinner.js.map +1 -0
  611. package/dist/components/ui/switch.d.ts +7 -0
  612. package/dist/components/ui/switch.d.ts.map +1 -0
  613. package/dist/components/ui/switch.js +19 -0
  614. package/dist/components/ui/switch.js.map +1 -0
  615. package/dist/components/ui/table.d.ts +13 -0
  616. package/dist/components/ui/table.d.ts.map +1 -0
  617. package/dist/components/ui/table.js +67 -0
  618. package/dist/components/ui/table.js.map +1 -0
  619. package/dist/components/ui/tabs.d.ts +10 -0
  620. package/dist/components/ui/tabs.d.ts.map +1 -0
  621. package/dist/components/ui/tabs.js +36 -0
  622. package/dist/components/ui/tabs.js.map +1 -0
  623. package/dist/components/ui/textarea.d.ts +6 -0
  624. package/dist/components/ui/textarea.d.ts.map +1 -0
  625. package/dist/components/ui/textarea.js +14 -0
  626. package/dist/components/ui/textarea.js.map +1 -0
  627. package/dist/components/ui/tooltip.d.ts +10 -0
  628. package/dist/components/ui/tooltip.d.ts.map +1 -0
  629. package/dist/components/ui/tooltip.js +36 -0
  630. package/dist/components/ui/tooltip.js.map +1 -0
  631. package/dist/components/versions/record-versions.d.ts +12 -0
  632. package/dist/components/versions/record-versions.d.ts.map +1 -0
  633. package/dist/components/versions/record-versions.js +138 -0
  634. package/dist/components/versions/record-versions.js.map +1 -0
  635. package/dist/components/widgets/calendar-lazy.d.ts +9 -0
  636. package/dist/components/widgets/calendar-lazy.d.ts.map +1 -0
  637. package/dist/components/widgets/calendar-lazy.js +47 -0
  638. package/dist/components/widgets/calendar-lazy.js.map +1 -0
  639. package/dist/components/widgets/calendar.js +122 -0
  640. package/dist/components/widgets/calendar.js.map +1 -0
  641. package/dist/components/widgets/chart-filters.js +101 -0
  642. package/dist/components/widgets/chart-filters.js.map +1 -0
  643. package/dist/components/widgets/chart-lazy.d.ts +9 -0
  644. package/dist/components/widgets/chart-lazy.d.ts.map +1 -0
  645. package/dist/components/widgets/chart-lazy.js +27 -0
  646. package/dist/components/widgets/chart-lazy.js.map +1 -0
  647. package/dist/components/widgets/chart.js +216 -0
  648. package/dist/components/widgets/chart.js.map +1 -0
  649. package/dist/components/widgets/dashboard-customizer.d.ts +15 -0
  650. package/dist/components/widgets/dashboard-customizer.d.ts.map +1 -0
  651. package/dist/components/widgets/dashboard-customizer.js +219 -0
  652. package/dist/components/widgets/dashboard-customizer.js.map +1 -0
  653. package/dist/components/widgets/index.d.ts +6 -0
  654. package/dist/components/widgets/stats-overview.d.ts +7 -0
  655. package/dist/components/widgets/stats-overview.d.ts.map +1 -0
  656. package/dist/components/widgets/stats-overview.js +133 -0
  657. package/dist/components/widgets/stats-overview.js.map +1 -0
  658. package/dist/components/widgets/widgets-block.d.ts +10 -0
  659. package/dist/components/widgets/widgets-block.d.ts.map +1 -0
  660. package/dist/components/widgets/widgets-block.js +72 -0
  661. package/dist/components/widgets/widgets-block.js.map +1 -0
  662. package/dist/context.d.ts +55 -0
  663. package/dist/context.d.ts.map +1 -0
  664. package/dist/context.js +115 -0
  665. package/dist/context.js.map +1 -0
  666. package/dist/create-alfakit.d.ts +25 -0
  667. package/dist/create-alfakit.d.ts.map +1 -0
  668. package/dist/create-alfakit.js +182 -0
  669. package/dist/create-alfakit.js.map +1 -0
  670. package/dist/eject-manifest.json +1128 -0
  671. package/dist/hooks/use-hydrated.d.ts +9 -0
  672. package/dist/hooks/use-hydrated.d.ts.map +1 -0
  673. package/dist/hooks/use-hydrated.js +15 -0
  674. package/dist/hooks/use-hydrated.js.map +1 -0
  675. package/dist/hooks/use-mobile.d.ts +8 -0
  676. package/dist/hooks/use-mobile.d.ts.map +1 -0
  677. package/dist/hooks/use-mobile.js +21 -0
  678. package/dist/hooks/use-mobile.js.map +1 -0
  679. package/dist/hooks/use-store.d.ts +7 -0
  680. package/dist/hooks/use-store.d.ts.map +1 -0
  681. package/dist/hooks/use-store.js +13 -0
  682. package/dist/hooks/use-store.js.map +1 -0
  683. package/dist/hooks/use-virtual-list.d.ts +29 -0
  684. package/dist/hooks/use-virtual-list.d.ts.map +1 -0
  685. package/dist/hooks/use-virtual-list.js +73 -0
  686. package/dist/hooks/use-virtual-list.js.map +1 -0
  687. package/dist/index.d.ts +180 -0
  688. package/dist/index.js +161 -0
  689. package/dist/layouts/app-layout.d.ts +11 -0
  690. package/dist/layouts/app-layout.d.ts.map +1 -0
  691. package/dist/layouts/app-layout.js +104 -0
  692. package/dist/layouts/app-layout.js.map +1 -0
  693. package/dist/layouts/auth-layout.d.ts +11 -0
  694. package/dist/layouts/auth-layout.d.ts.map +1 -0
  695. package/dist/layouts/auth-layout.js +65 -0
  696. package/dist/layouts/auth-layout.js.map +1 -0
  697. package/dist/layouts/blank-layout.d.ts +7 -0
  698. package/dist/layouts/blank-layout.d.ts.map +1 -0
  699. package/dist/layouts/blank-layout.js +12 -0
  700. package/dist/layouts/blank-layout.js.map +1 -0
  701. package/dist/layouts/fullscreen-layout.d.ts +16 -0
  702. package/dist/layouts/fullscreen-layout.d.ts.map +1 -0
  703. package/dist/layouts/fullscreen-layout.js +107 -0
  704. package/dist/layouts/fullscreen-layout.js.map +1 -0
  705. package/dist/layouts/top-nav-layout.d.ts +15 -0
  706. package/dist/layouts/top-nav-layout.d.ts.map +1 -0
  707. package/dist/layouts/top-nav-layout.js +223 -0
  708. package/dist/layouts/top-nav-layout.js.map +1 -0
  709. package/dist/lib/attributes.d.ts +12 -0
  710. package/dist/lib/attributes.d.ts.map +1 -0
  711. package/dist/lib/attributes.js +55 -0
  712. package/dist/lib/attributes.js.map +1 -0
  713. package/dist/lib/colors.d.ts +23 -0
  714. package/dist/lib/colors.d.ts.map +1 -0
  715. package/dist/lib/colors.js +126 -0
  716. package/dist/lib/colors.js.map +1 -0
  717. package/dist/lib/discovery.d.ts +22 -0
  718. package/dist/lib/discovery.d.ts.map +1 -0
  719. package/dist/lib/discovery.js +45 -0
  720. package/dist/lib/discovery.js.map +1 -0
  721. package/dist/lib/icons.d.ts +24 -0
  722. package/dist/lib/icons.d.ts.map +1 -0
  723. package/dist/lib/icons.js +93 -0
  724. package/dist/lib/icons.js.map +1 -0
  725. package/dist/lib/lazy.d.ts +8 -0
  726. package/dist/lib/lazy.d.ts.map +1 -0
  727. package/dist/lib/lazy.js +47 -0
  728. package/dist/lib/lazy.js.map +1 -0
  729. package/dist/lib/new-tab-hint.js +15 -0
  730. package/dist/lib/new-tab-hint.js.map +1 -0
  731. package/dist/lib/utils.d.ts +5 -0
  732. package/dist/lib/utils.d.ts.map +1 -0
  733. package/dist/lib/utils.js +10 -0
  734. package/dist/lib/utils.js.map +1 -0
  735. package/dist/pages/page.d.ts +23 -0
  736. package/dist/pages/page.d.ts.map +1 -0
  737. package/dist/pages/page.js +328 -0
  738. package/dist/pages/page.js.map +1 -0
  739. package/dist/registry.d.ts +7 -0
  740. package/dist/registry.d.ts.map +1 -0
  741. package/dist/registry.js +113 -0
  742. package/dist/registry.js.map +1 -0
  743. package/dist/server.d.ts +28 -0
  744. package/dist/server.d.ts.map +1 -0
  745. package/dist/server.js +38 -0
  746. package/dist/server.js.map +1 -0
  747. package/dist/standalone/alfakit-component.d.ts +30 -0
  748. package/dist/standalone/alfakit-component.d.ts.map +1 -0
  749. package/dist/standalone/alfakit-component.js +156 -0
  750. package/dist/standalone/alfakit-component.js.map +1 -0
  751. package/dist/standalone/alfakit-toaster.d.ts +26 -0
  752. package/dist/standalone/alfakit-toaster.d.ts.map +1 -0
  753. package/dist/standalone/alfakit-toaster.js +38 -0
  754. package/dist/standalone/alfakit-toaster.js.map +1 -0
  755. package/dist/standalone/configure.d.ts +14 -0
  756. package/dist/standalone/configure.d.ts.map +1 -0
  757. package/dist/standalone/configure.js +27 -0
  758. package/dist/standalone/configure.js.map +1 -0
  759. package/dist/standalone/index.d.ts +4 -0
  760. package/dist/standalone/runtime.js +94 -0
  761. package/dist/standalone/runtime.js.map +1 -0
  762. package/dist/standalone.css +150 -0
  763. package/dist/starter-kit/index.d.ts +4 -0
  764. package/dist/starter-kit/index.js +4 -0
  765. package/dist/starter-kit/navigation.d.ts +20 -0
  766. package/dist/starter-kit/navigation.d.ts.map +1 -0
  767. package/dist/starter-kit/navigation.js +25 -0
  768. package/dist/starter-kit/navigation.js.map +1 -0
  769. package/dist/starter-kit/starter-kit.d.ts +56 -0
  770. package/dist/starter-kit/starter-kit.d.ts.map +1 -0
  771. package/dist/starter-kit/starter-kit.js +120 -0
  772. package/dist/starter-kit/starter-kit.js.map +1 -0
  773. package/dist/starter-kit/widgets-loaded.js +172 -0
  774. package/dist/starter-kit/widgets-loaded.js.map +1 -0
  775. package/dist/starter-kit/widgets-triggers.js +90 -0
  776. package/dist/starter-kit/widgets-triggers.js.map +1 -0
  777. package/dist/starter-kit/widgets.d.ts +38 -0
  778. package/dist/starter-kit/widgets.d.ts.map +1 -0
  779. package/dist/starter-kit/widgets.js +64 -0
  780. package/dist/starter-kit/widgets.js.map +1 -0
  781. package/dist/styles.css +305 -0
  782. package/dist/themes.css +1340 -0
  783. package/package.json +128 -3
  784. package/src/app/components.tsx +104 -0
  785. package/src/app/hooks.ts +365 -0
  786. package/src/components/actions/action-button.tsx +254 -0
  787. package/src/components/actions/action-context.tsx +23 -0
  788. package/src/components/actions/action-list.tsx +356 -0
  789. package/src/components/actions/action-modals.tsx +479 -0
  790. package/src/components/actions/index.ts +4 -0
  791. package/src/components/ai/copilot-panel.tsx +517 -0
  792. package/src/components/ai/copilot.tsx +82 -0
  793. package/src/components/ai/index.ts +2 -0
  794. package/src/components/ai/stream-lazy.tsx +8 -0
  795. package/src/components/ai/stream.tsx +100 -0
  796. package/src/components/analytics/alfakit-analytics.tsx +27 -0
  797. package/src/components/analytics/breakdown.tsx +150 -0
  798. package/src/components/analytics/index.ts +2 -0
  799. package/src/components/cms/admin-bar.tsx +66 -0
  800. package/src/components/cms/blocks.tsx +474 -0
  801. package/src/components/cms/context.tsx +57 -0
  802. package/src/components/cms/head.tsx +47 -0
  803. package/src/components/cms/index.ts +23 -0
  804. package/src/components/cms/live-preview-lazy.tsx +8 -0
  805. package/src/components/cms/live-preview.tsx +339 -0
  806. package/src/components/cms/menu.tsx +246 -0
  807. package/src/components/cms/page.tsx +219 -0
  808. package/src/components/cms/parts.tsx +84 -0
  809. package/src/components/dev-tools/dev-tools-inspector.tsx +374 -0
  810. package/src/components/dev-tools/dev-tools-slot.tsx +28 -0
  811. package/src/components/entries/code-entry.tsx +73 -0
  812. package/src/components/entries/entry-wrapper.tsx +171 -0
  813. package/src/components/entries/index.ts +11 -0
  814. package/src/components/entries/other-entries.tsx +235 -0
  815. package/src/components/entries/repeatable-entry-table.tsx +50 -0
  816. package/src/components/entries/text-entry.tsx +264 -0
  817. package/src/components/entries/view-entry.tsx +27 -0
  818. package/src/components/fields/builder-picker.tsx +323 -0
  819. package/src/components/fields/builder.tsx +537 -0
  820. package/src/components/fields/checkbox-list.tsx +181 -0
  821. package/src/components/fields/checkbox.tsx +26 -0
  822. package/src/components/fields/code-editor-lazy.tsx +33 -0
  823. package/src/components/fields/code-editor.tsx +157 -0
  824. package/src/components/fields/code-tokens.ts +15 -0
  825. package/src/components/fields/color-picker.tsx +72 -0
  826. package/src/components/fields/date-picker.tsx +336 -0
  827. package/src/components/fields/file-upload.tsx +643 -0
  828. package/src/components/fields/hidden.tsx +8 -0
  829. package/src/components/fields/icon-picker-lazy.tsx +44 -0
  830. package/src/components/fields/icon-picker-value.tsx +46 -0
  831. package/src/components/fields/icon-picker.tsx +293 -0
  832. package/src/components/fields/image-editor-dialog-lazy.tsx +22 -0
  833. package/src/components/fields/image-editor-dialog.tsx +431 -0
  834. package/src/components/fields/index.ts +23 -0
  835. package/src/components/fields/item-actions.tsx +381 -0
  836. package/src/components/fields/key-value.tsx +218 -0
  837. package/src/components/fields/lazy-fields.tsx +30 -0
  838. package/src/components/fields/modal-table-select.tsx +519 -0
  839. package/src/components/fields/money-input.tsx +132 -0
  840. package/src/components/fields/one-time-code-input.tsx +56 -0
  841. package/src/components/fields/query-builder-rules.tsx +444 -0
  842. package/src/components/fields/radio.tsx +67 -0
  843. package/src/components/fields/repeater-table.tsx +185 -0
  844. package/src/components/fields/repeater.tsx +317 -0
  845. package/src/components/fields/rich-editor-extensions.tsx +470 -0
  846. package/src/components/fields/rich-editor-lazy.tsx +21 -0
  847. package/src/components/fields/rich-editor.tsx +815 -0
  848. package/src/components/fields/select.tsx +667 -0
  849. package/src/components/fields/slider.tsx +262 -0
  850. package/src/components/fields/tags-input.tsx +176 -0
  851. package/src/components/fields/text-input.tsx +179 -0
  852. package/src/components/fields/textarea.tsx +37 -0
  853. package/src/components/fields/toggle-buttons.tsx +125 -0
  854. package/src/components/fields/toggle.tsx +50 -0
  855. package/src/components/file-manager/file-manager-lazy.tsx +52 -0
  856. package/src/components/file-manager/file-manager.tsx +1857 -0
  857. package/src/components/file-manager/index.ts +2 -0
  858. package/src/components/file-manager/picker-field.tsx +169 -0
  859. package/src/components/form/form-block.tsx +237 -0
  860. package/src/components/form/form-context.tsx +95 -0
  861. package/src/components/helpdesk/chat-panel.tsx +247 -0
  862. package/src/components/helpdesk/chat-widget.tsx +107 -0
  863. package/src/components/helpdesk/inbox-lazy.tsx +42 -0
  864. package/src/components/helpdesk/inbox.tsx +745 -0
  865. package/src/components/helpdesk/index.ts +2 -0
  866. package/src/components/kanban/index.ts +1 -0
  867. package/src/components/kanban/kanban-lazy.tsx +34 -0
  868. package/src/components/kanban/kanban.tsx +788 -0
  869. package/src/components/layout/actions.tsx +48 -0
  870. package/src/components/layout/component-context.ts +31 -0
  871. package/src/components/layout/deferred.tsx +156 -0
  872. package/src/components/layout/elements.tsx +259 -0
  873. package/src/components/layout/fieldset.tsx +35 -0
  874. package/src/components/layout/fused-group.tsx +96 -0
  875. package/src/components/layout/grid.tsx +19 -0
  876. package/src/components/layout/index.ts +18 -0
  877. package/src/components/layout/mixed-content.tsx +59 -0
  878. package/src/components/layout/prime.tsx +168 -0
  879. package/src/components/layout/schema-children.tsx +30 -0
  880. package/src/components/layout/section.tsx +173 -0
  881. package/src/components/layout/tabs.tsx +129 -0
  882. package/src/components/layout/wizard.tsx +244 -0
  883. package/src/components/notifications/flash-toasts.tsx +200 -0
  884. package/src/components/notifications/index.ts +4 -0
  885. package/src/components/notifications/notifications-menu.tsx +262 -0
  886. package/src/components/notifications/realtime-notifications.tsx +40 -0
  887. package/src/components/notifications/undo-button.tsx +50 -0
  888. package/src/components/panel/app-sidebar.tsx +439 -0
  889. package/src/components/panel/bottom-nav.tsx +130 -0
  890. package/src/components/panel/debug-panel-slot.tsx +25 -0
  891. package/src/components/panel/debug-panel.tsx +412 -0
  892. package/src/components/panel/global-search-palette.tsx +387 -0
  893. package/src/components/panel/global-search.tsx +147 -0
  894. package/src/components/panel/impersonation-banner.tsx +47 -0
  895. package/src/components/panel/index.ts +16 -0
  896. package/src/components/panel/keyboard-shortcuts.tsx +134 -0
  897. package/src/components/panel/lazy-placeholder.tsx +39 -0
  898. package/src/components/panel/locale-switcher.tsx +144 -0
  899. package/src/components/panel/menu-item.tsx +89 -0
  900. package/src/components/panel/nav-label.tsx +34 -0
  901. package/src/components/panel/pwa.tsx +118 -0
  902. package/src/components/panel/schema-contract-guard.tsx +50 -0
  903. package/src/components/panel/shortcut-keys.tsx +34 -0
  904. package/src/components/panel/shortcuts-overlay.tsx +238 -0
  905. package/src/components/panel/slot.tsx +43 -0
  906. package/src/components/panel/sub-navigation.tsx +161 -0
  907. package/src/components/panel/tenant-menu.tsx +175 -0
  908. package/src/components/panel/theme-toggle.tsx +69 -0
  909. package/src/components/panel/topbar.tsx +81 -0
  910. package/src/components/panel/user-menu.tsx +166 -0
  911. package/src/components/realtime/conflict-banner.tsx +208 -0
  912. package/src/components/realtime/index.ts +3 -0
  913. package/src/components/realtime/live-records-pill.tsx +66 -0
  914. package/src/components/realtime/record-presence.tsx +98 -0
  915. package/src/components/schema/content-slot.tsx +81 -0
  916. package/src/components/schema/field-actions.tsx +67 -0
  917. package/src/components/schema/field-wrapper.tsx +246 -0
  918. package/src/components/schema/fused-group-context.ts +11 -0
  919. package/src/components/schema/schema-renderer.tsx +127 -0
  920. package/src/components/schema/translatable-field.tsx +113 -0
  921. package/src/components/schema/virtual-spacer.tsx +14 -0
  922. package/src/components/table/cells.tsx +712 -0
  923. package/src/components/table/column-manager.tsx +480 -0
  924. package/src/components/table/content-layout.tsx +368 -0
  925. package/src/components/table/filters.tsx +378 -0
  926. package/src/components/table/grouping.tsx +275 -0
  927. package/src/components/table/index.ts +9 -0
  928. package/src/components/table/list-tabs.tsx +144 -0
  929. package/src/components/table/pagination.tsx +335 -0
  930. package/src/components/table/record-cell.tsx +147 -0
  931. package/src/components/table/spreadsheet-lazy.tsx +14 -0
  932. package/src/components/table/spreadsheet.tsx +602 -0
  933. package/src/components/table/summary-rows.tsx +160 -0
  934. package/src/components/table/table-block.tsx +1112 -0
  935. package/src/components/table/table-views.tsx +460 -0
  936. package/src/components/table/trigger-button.tsx +92 -0
  937. package/src/components/translation-manager/index.ts +1 -0
  938. package/src/components/translation-manager/translation-manager-lazy.tsx +25 -0
  939. package/src/components/translation-manager/translation-manager.tsx +827 -0
  940. package/src/components/tree/index.ts +1 -0
  941. package/src/components/tree/tree-lazy.tsx +30 -0
  942. package/src/components/tree/tree.tsx +385 -0
  943. package/src/components/ui/alert.tsx +57 -0
  944. package/src/components/ui/avatar.tsx +38 -0
  945. package/src/components/ui/badge.tsx +33 -0
  946. package/src/components/ui/breadcrumb.tsx +110 -0
  947. package/src/components/ui/button.tsx +54 -0
  948. package/src/components/ui/calendar.tsx +65 -0
  949. package/src/components/ui/card.tsx +74 -0
  950. package/src/components/ui/checkbox.tsx +30 -0
  951. package/src/components/ui/collapsible.tsx +20 -0
  952. package/src/components/ui/command.tsx +158 -0
  953. package/src/components/ui/dialog.tsx +124 -0
  954. package/src/components/ui/dropdown-menu.tsx +217 -0
  955. package/src/components/ui/input.tsx +20 -0
  956. package/src/components/ui/label.tsx +18 -0
  957. package/src/components/ui/popover.tsx +39 -0
  958. package/src/components/ui/radio-group.tsx +36 -0
  959. package/src/components/ui/scroll-area.tsx +53 -0
  960. package/src/components/ui/select.tsx +165 -0
  961. package/src/components/ui/separator.tsx +25 -0
  962. package/src/components/ui/sheet.tsx +131 -0
  963. package/src/components/ui/sidebar.tsx +660 -0
  964. package/src/components/ui/skeleton.tsx +14 -0
  965. package/src/components/ui/sonner.tsx +43 -0
  966. package/src/components/ui/spinner.tsx +31 -0
  967. package/src/components/ui/switch.tsx +25 -0
  968. package/src/components/ui/table.tsx +89 -0
  969. package/src/components/ui/tabs.tsx +51 -0
  970. package/src/components/ui/textarea.tsx +17 -0
  971. package/src/components/ui/tooltip.tsx +50 -0
  972. package/src/components/versions/record-versions.tsx +162 -0
  973. package/src/components/widgets/calendar-lazy.tsx +31 -0
  974. package/src/components/widgets/calendar.tsx +124 -0
  975. package/src/components/widgets/chart-filters.tsx +114 -0
  976. package/src/components/widgets/chart-lazy.tsx +21 -0
  977. package/src/components/widgets/chart.tsx +252 -0
  978. package/src/components/widgets/dashboard-customizer.tsx +309 -0
  979. package/src/components/widgets/index.ts +5 -0
  980. package/src/components/widgets/stats-overview.tsx +185 -0
  981. package/src/components/widgets/widgets-block.tsx +102 -0
  982. package/src/context.tsx +187 -0
  983. package/src/create-alfakit.tsx +300 -0
  984. package/src/hooks/use-hydrated.ts +16 -0
  985. package/src/hooks/use-mobile.ts +29 -0
  986. package/src/hooks/use-store.ts +18 -0
  987. package/src/hooks/use-virtual-list.ts +88 -0
  988. package/src/index.ts +135 -0
  989. package/src/layouts/app-layout.tsx +128 -0
  990. package/src/layouts/auth-layout.tsx +66 -0
  991. package/src/layouts/blank-layout.tsx +5 -0
  992. package/src/layouts/fullscreen-layout.tsx +86 -0
  993. package/src/layouts/top-nav-layout.tsx +293 -0
  994. package/src/lib/attributes.ts +79 -0
  995. package/src/lib/colors.ts +151 -0
  996. package/src/lib/discovery.tsx +68 -0
  997. package/src/lib/icons.tsx +145 -0
  998. package/src/lib/lazy.tsx +89 -0
  999. package/src/lib/new-tab-hint.tsx +8 -0
  1000. package/src/lib/utils.ts +6 -0
  1001. package/src/pages/page.tsx +463 -0
  1002. package/src/registry.ts +132 -0
  1003. package/src/server.tsx +68 -0
  1004. package/src/standalone/alfakit-component.tsx +222 -0
  1005. package/src/standalone/alfakit-toaster.tsx +52 -0
  1006. package/src/standalone/configure.ts +24 -0
  1007. package/src/standalone/index.ts +3 -0
  1008. package/src/standalone/runtime.ts +153 -0
  1009. package/src/starter-kit/index.ts +14 -0
  1010. package/src/starter-kit/navigation.ts +34 -0
  1011. package/src/starter-kit/starter-kit.tsx +196 -0
  1012. package/src/starter-kit/widgets-loaded.tsx +217 -0
  1013. package/src/starter-kit/widgets-triggers.tsx +103 -0
  1014. package/src/starter-kit/widgets.tsx +103 -0
  1015. package/src/styles.css +305 -0
@@ -0,0 +1,115 @@
1
+ import { LocaleFormatter, pollComponent, resolvePanelNavigation, translator } from "@alfakit/core";
2
+ import { usePage } from "@inertiajs/react";
3
+ import { createContext, useContext, useMemo } from "react";
4
+ import { jsx } from "react/jsx-runtime";
5
+ //#region src/context.tsx
6
+ const AlfakitContext = createContext(null);
7
+ const NO_PROPS = {};
8
+ /**
9
+ * The Inertia page props, or an empty object outside an Inertia app (component tests,
10
+ * Storybook, a plain server render of an `<AlfakitComponent>`). `usePage()` only reads a
11
+ * context before throwing, so the hook order is the same on both paths.
12
+ */
13
+ function useOptionalPageProps() {
14
+ try {
15
+ return usePage().props;
16
+ } catch {
17
+ return NO_PROPS;
18
+ }
19
+ }
20
+ const StandaloneContext = createContext(null);
21
+ function StandaloneProvider({ value, children }) {
22
+ return /* @__PURE__ */ jsx(StandaloneContext.Provider, {
23
+ value,
24
+ children
25
+ });
26
+ }
27
+ function useStandalone() {
28
+ return useContext(StandaloneContext);
29
+ }
30
+ function AlfakitProvider({ value, children }) {
31
+ return /* @__PURE__ */ jsx(AlfakitContext.Provider, {
32
+ value,
33
+ children
34
+ });
35
+ }
36
+ function useAlfakit() {
37
+ const context = useContext(AlfakitContext);
38
+ if (!context) throw new Error("Alfakit components must be rendered inside createAlfakit().");
39
+ return context;
40
+ }
41
+ /**
42
+ * The component registry when rendered inside `createAlfakit()`, otherwise null (primitives
43
+ * rendered on their own in tests or Storybook).
44
+ */
45
+ function useOptionalRegistry() {
46
+ return useContext(AlfakitContext)?.registry ?? null;
47
+ }
48
+ /** The context the component renders in, or null outside `createAlfakit()` and `<AlfakitComponent>`. */
49
+ function useOptionalAlfakit() {
50
+ return useContext(AlfakitContext);
51
+ }
52
+ /** The shared `alfakit` prop (panel, navigation, user, endpoints…). */
53
+ function usePanel() {
54
+ const standalone = useContext(StandaloneContext);
55
+ const props = useOptionalPageProps();
56
+ return resolvePanelNavigation(standalone?.panel ?? props.alfakit, props.alfakitNavigationBadges);
57
+ }
58
+ function usePageSchema() {
59
+ const standalone = useContext(StandaloneContext);
60
+ const page = useOptionalPageProps().page;
61
+ return standalone?.page ?? page;
62
+ }
63
+ /** Poll a component (`table`, `widget:<id>`); the returned function stops it. */
64
+ function usePollComponent() {
65
+ return useContext(AlfakitContext)?.poll ?? pollComponent;
66
+ }
67
+ function useAlfakitProps() {
68
+ return useOptionalPageProps();
69
+ }
70
+ function useTranslator() {
71
+ return useContext(AlfakitContext)?.translator ?? translator;
72
+ }
73
+ /** `t('table.showing', { first: 1, last: 10, total: 42 }, 'Fallback')` */
74
+ function useT() {
75
+ const translator = useTranslator();
76
+ return translator.t.bind(translator);
77
+ }
78
+ /** Plural-aware lines: `choice('table.selected', 3)` (Laravel `trans_choice` syntax). */
79
+ function useChoice() {
80
+ const translator = useTranslator();
81
+ return translator.choice.bind(translator);
82
+ }
83
+ /** The current language, direction, currency, timezone and language list. */
84
+ function useLocalization() {
85
+ return usePanel().localization;
86
+ }
87
+ function useDirection() {
88
+ const standalone = useContext(StandaloneContext);
89
+ const panel = useOptionalPageProps().alfakit;
90
+ return (standalone?.panel ?? panel)?.localization?.direction ?? "ltr";
91
+ }
92
+ /** `Intl` formatting in the user's locale: `format.money(12.5)`, `format.relative(date)`. */
93
+ function useFormatter() {
94
+ const standalone = useContext(StandaloneContext);
95
+ const panel = useOptionalPageProps().alfakit;
96
+ const localization = (standalone?.panel ?? panel)?.localization;
97
+ const tag = localization?.tag;
98
+ const currency = localization?.currency;
99
+ const timezone = localization?.timezone;
100
+ return useMemo(() => new LocaleFormatter(tag ?? "en", currency ?? "USD", timezone), [
101
+ tag,
102
+ currency,
103
+ timezone
104
+ ]);
105
+ }
106
+ function useActionRunner() {
107
+ return useAlfakit().actions;
108
+ }
109
+ function useRegistry() {
110
+ return useAlfakit().registry;
111
+ }
112
+ //#endregion
113
+ export { AlfakitProvider, StandaloneProvider, useActionRunner, useAlfakit, useAlfakitProps, useChoice, useDirection, useFormatter, useLocalization, useOptionalAlfakit, useOptionalRegistry, usePageSchema, usePanel, usePollComponent, useRegistry, useStandalone, useT };
114
+
115
+ //# sourceMappingURL=context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.js","names":["globalTranslator"],"sources":["../src/context.tsx"],"sourcesContent":["import {\n translator as globalTranslator,\n LocaleFormatter,\n pollComponent,\n resolvePanelNavigation,\n type ActionRunner,\n type AlfakitPageProps,\n type ComponentRegistry,\n type LocalizationSchema,\n type PageSchema,\n type PanelSchema,\n type Translator,\n} from '@alfakit/core'\nimport { usePage } from '@inertiajs/react'\nimport { createContext, useContext, useMemo, type ComponentType, type ReactNode } from 'react'\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type AnyComponent = ComponentType<any>\n\nexport interface AlfakitContextValue {\n registry: ComponentRegistry<AnyComponent>\n pages: Record<string, AnyComponent>\n actions: ActionRunner\n translator: Translator\n /**\n * Polls a component (`table`, `widget:<id>`) and returns an unsubscribe. Panels use the\n * shared `pollComponent()` (an Inertia partial reload); components outside panels fetch\n * their own schemas by token.\n */\n poll?: (target: string, interval: string | number | null | undefined) => () => void\n}\n\nconst AlfakitContext = createContext<AlfakitContextValue | null>(null)\n\nconst NO_PROPS: AlfakitPageProps = {} as AlfakitPageProps\n\n/**\n * The Inertia page props, or an empty object outside an Inertia app (component tests,\n * Storybook, a plain server render of an `<AlfakitComponent>`). `usePage()` only reads a\n * context before throwing, so the hook order is the same on both paths.\n */\nfunction useOptionalPageProps(): AlfakitPageProps {\n try {\n return usePage<AlfakitPageProps>().props\n } catch {\n return NO_PROPS\n }\n}\n\n/**\n * Outside panels there is no shared `alfakit` prop and no `page` prop: `<AlfakitComponent>`\n * provides both from its payload, and the hooks below read them first.\n */\nexport interface StandaloneContextValue {\n panel: PanelSchema\n page: PageSchema\n}\n\nconst StandaloneContext = createContext<StandaloneContextValue | null>(null)\n\nexport function StandaloneProvider({\n value,\n children,\n}: {\n value: StandaloneContextValue\n children: ReactNode\n}) {\n return <StandaloneContext.Provider value={value}>{children}</StandaloneContext.Provider>\n}\n\nexport function useStandalone(): StandaloneContextValue | null {\n return useContext(StandaloneContext)\n}\n\nexport function AlfakitProvider({\n value,\n children,\n}: {\n value: AlfakitContextValue\n children: ReactNode\n}) {\n return <AlfakitContext.Provider value={value}>{children}</AlfakitContext.Provider>\n}\n\nexport function useAlfakit(): AlfakitContextValue {\n const context = useContext(AlfakitContext)\n\n if (!context) {\n throw new Error('Alfakit components must be rendered inside createAlfakit().')\n }\n\n return context\n}\n\n/**\n * The component registry when rendered inside `createAlfakit()`, otherwise null (primitives\n * rendered on their own in tests or Storybook).\n */\nexport function useOptionalRegistry(): ComponentRegistry<AnyComponent> | null {\n return useContext(AlfakitContext)?.registry ?? null\n}\n\n/** The context the component renders in, or null outside `createAlfakit()` and `<AlfakitComponent>`. */\nexport function useOptionalAlfakit(): AlfakitContextValue | null {\n return useContext(AlfakitContext)\n}\n\n/** The shared `alfakit` prop (panel, navigation, user, endpoints…). */\nexport function usePanel(): PanelSchema {\n const standalone = useContext(StandaloneContext)\n const props = useOptionalPageProps()\n\n // The navigation structure is a once prop; its active items and badges are merged in here.\n return resolvePanelNavigation(standalone?.panel ?? props.alfakit, props.alfakitNavigationBadges)\n}\n\nexport function usePageSchema(): PageSchema | undefined {\n const standalone = useContext(StandaloneContext)\n const page = useOptionalPageProps().page\n\n return standalone?.page ?? page\n}\n\n/** Poll a component (`table`, `widget:<id>`); the returned function stops it. */\nexport function usePollComponent(): NonNullable<AlfakitContextValue['poll']> {\n return useContext(AlfakitContext)?.poll ?? pollComponent\n}\n\nexport function useAlfakitProps(): AlfakitPageProps {\n return useOptionalPageProps()\n}\n\nfunction useTranslator(): Translator {\n // Primitives may render outside createAlfakit() (tests, Storybook); fall back to the\n // shared translator so they still show their English defaults.\n return useContext(AlfakitContext)?.translator ?? globalTranslator\n}\n\n/** `t('table.showing', { first: 1, last: 10, total: 42 }, 'Fallback')` */\nexport function useT(): Translator['t'] {\n const translator = useTranslator()\n\n return translator.t.bind(translator)\n}\n\n/** Plural-aware lines: `choice('table.selected', 3)` (Laravel `trans_choice` syntax). */\nexport function useChoice(): Translator['choice'] {\n const translator = useTranslator()\n\n return translator.choice.bind(translator)\n}\n\n/** The current language, direction, currency, timezone and language list. */\nexport function useLocalization(): LocalizationSchema {\n return usePanel().localization\n}\n\nexport function useDirection(): 'ltr' | 'rtl' {\n const standalone = useContext(StandaloneContext)\n const panel = useOptionalPageProps().alfakit\n\n return (standalone?.panel ?? panel)?.localization?.direction ?? 'ltr'\n}\n\n/** `Intl` formatting in the user's locale: `format.money(12.5)`, `format.relative(date)`. */\nexport function useFormatter(): LocaleFormatter {\n const standalone = useContext(StandaloneContext)\n const panel = useOptionalPageProps().alfakit\n const localization = (standalone?.panel ?? panel)?.localization\n\n const tag = localization?.tag\n const currency = localization?.currency\n const timezone = localization?.timezone\n\n return useMemo(\n () => new LocaleFormatter(tag ?? 'en', currency ?? 'USD', timezone),\n [tag, currency, timezone],\n )\n}\n\nexport function useActionRunner(): ActionRunner {\n return useAlfakit().actions\n}\n\nexport function useRegistry(): ComponentRegistry<AnyComponent> {\n return useAlfakit().registry\n}\n"],"mappings":";;;;;AAgCA,MAAM,iBAAiB,cAA0C,IAAI;AAErE,MAAM,WAA6B,CAAC;;;;;;AAOpC,SAAS,uBAAyC;CAChD,IAAI;EACF,OAAO,QAA0B,CAAC,CAAC;CACrC,QAAQ;EACN,OAAO;CACT;AACF;AAWA,MAAM,oBAAoB,cAA6C,IAAI;AAE3E,SAAgB,mBAAmB,EACjC,OACA,YAIC;CACD,OAAO,oBAAC,kBAAkB,UAAnB;EAAmC;EAAQ;CAAqC,CAAA;AACzF;AAEA,SAAgB,gBAA+C;CAC7D,OAAO,WAAW,iBAAiB;AACrC;AAEA,SAAgB,gBAAgB,EAC9B,OACA,YAIC;CACD,OAAO,oBAAC,eAAe,UAAhB;EAAgC;EAAQ;CAAkC,CAAA;AACnF;AAEA,SAAgB,aAAkC;CAChD,MAAM,UAAU,WAAW,cAAc;CAEzC,IAAI,CAAC,SACH,MAAM,IAAI,MAAM,6DAA6D;CAG/E,OAAO;AACT;;;;;AAMA,SAAgB,sBAA8D;CAC5E,OAAO,WAAW,cAAc,CAAC,EAAE,YAAY;AACjD;;AAGA,SAAgB,qBAAiD;CAC/D,OAAO,WAAW,cAAc;AAClC;;AAGA,SAAgB,WAAwB;CACtC,MAAM,aAAa,WAAW,iBAAiB;CAC/C,MAAM,QAAQ,qBAAqB;CAGnC,OAAO,uBAAuB,YAAY,SAAS,MAAM,SAAS,MAAM,uBAAuB;AACjG;AAEA,SAAgB,gBAAwC;CACtD,MAAM,aAAa,WAAW,iBAAiB;CAC/C,MAAM,OAAO,qBAAqB,CAAC,CAAC;CAEpC,OAAO,YAAY,QAAQ;AAC7B;;AAGA,SAAgB,mBAA6D;CAC3E,OAAO,WAAW,cAAc,CAAC,EAAE,QAAQ;AAC7C;AAEA,SAAgB,kBAAoC;CAClD,OAAO,qBAAqB;AAC9B;AAEA,SAAS,gBAA4B;CAGnC,OAAO,WAAW,cAAc,CAAC,EAAE,cAAcA;AACnD;;AAGA,SAAgB,OAAwB;CACtC,MAAM,aAAa,cAAc;CAEjC,OAAO,WAAW,EAAE,KAAK,UAAU;AACrC;;AAGA,SAAgB,YAAkC;CAChD,MAAM,aAAa,cAAc;CAEjC,OAAO,WAAW,OAAO,KAAK,UAAU;AAC1C;;AAGA,SAAgB,kBAAsC;CACpD,OAAO,SAAS,CAAC,CAAC;AACpB;AAEA,SAAgB,eAA8B;CAC5C,MAAM,aAAa,WAAW,iBAAiB;CAC/C,MAAM,QAAQ,qBAAqB,CAAC,CAAC;CAErC,QAAQ,YAAY,SAAS,MAAA,EAAQ,cAAc,aAAa;AAClE;;AAGA,SAAgB,eAAgC;CAC9C,MAAM,aAAa,WAAW,iBAAiB;CAC/C,MAAM,QAAQ,qBAAqB,CAAC,CAAC;CACrC,MAAM,gBAAgB,YAAY,SAAS,MAAA,EAAQ;CAEnD,MAAM,MAAM,cAAc;CAC1B,MAAM,WAAW,cAAc;CAC/B,MAAM,WAAW,cAAc;CAE/B,OAAO,cACC,IAAI,gBAAgB,OAAO,MAAM,YAAY,OAAO,QAAQ,GAClE;EAAC;EAAK;EAAU;CAAQ,CAC1B;AACF;AAEA,SAAgB,kBAAgC;CAC9C,OAAO,WAAW,CAAC,CAAC;AACtB;AAEA,SAAgB,cAA+C;CAC7D,OAAO,WAAW,CAAC,CAAC;AACtB"}
@@ -0,0 +1,25 @@
1
+ import { AnyComponent } from "./context.js";
2
+ import { AlfakitOptions } from "@alfakit/core";
3
+ import { ReactElement, ReactNode } from "react";
4
+ import { Page } from "@inertiajs/core";
5
+ //#region src/create-alfakit.d.ts
6
+ export interface CreateAlfakitOptions extends AlfakitOptions<AnyComponent> {
7
+ /** Wrap the whole app (e.g. with your own providers). */
8
+ withApp?: (app: ReactNode) => ReactNode;
9
+ strictMode?: boolean;
10
+ }
11
+ /**
12
+ * Boot the Alfakit panel frontend. Call once from your panel entry file. Markup rendered by
13
+ * `createAlfakitServer()` (`@alfakit/react/server`) is hydrated instead of re-rendered.
14
+ *
15
+ * ```tsx
16
+ * createAlfakit({
17
+ * // Files in resources/js/alfakit/fields, columns, … register themselves.
18
+ * discover: import.meta.glob('./{fields,columns,entries,widgets,pages,components,blocks}/**\/*.tsx'),
19
+ * components: { 'map-picker': MapPicker },
20
+ * })
21
+ * ```
22
+ */
23
+ export declare function createAlfakit(options?: CreateAlfakitOptions): Promise<void>;
24
+ //#endregion
25
+ //# sourceMappingURL=create-alfakit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-alfakit.d.ts","names":[],"sources":["../src/create-alfakit.tsx"],"mappings":";;;;;iBAgHiB,6BAA6B,eAAe;;EAE3D,WAAW,KAAK,cAAc;EAC9B;;;;;;;;;;;;;;wBAmLoB,cAAc,UAAS,uBAA4B"}
@@ -0,0 +1,182 @@
1
+ import { AlfakitProvider, useAlfakit } from "./context.js";
2
+ import { preloadIcons } from "./lib/icons.js";
3
+ import { TooltipProvider } from "./components/ui/tooltip.js";
4
+ import { discoverComponents } from "./lib/discovery.js";
5
+ import { builtInComponents, createDefaultRegistry } from "./registry.js";
6
+ import { FlashToasts, showToast } from "./components/notifications/flash-toasts.js";
7
+ import { PwaManager } from "./components/panel/pwa.js";
8
+ import { AlfakitPage } from "./pages/page.js";
9
+ import { ActionModals } from "./components/actions/action-modals.js";
10
+ import { RealtimeNotifications } from "./components/notifications/realtime-notifications.js";
11
+ import { ImpersonationBanner } from "./components/panel/impersonation-banner.js";
12
+ import { DevToolsSlot } from "./components/dev-tools/dev-tools-slot.js";
13
+ import { SchemaContractGuard } from "./components/panel/schema-contract-guard.js";
14
+ import { Toaster } from "./components/ui/sonner.js";
15
+ import { ActionRunner, PANEL_TOAST_OFFSET, Translator, applyDocumentLocale, applyPanelTheme, configureCharts, configureRealtime, debugRecorder, effectiveErrorNotifications, initializeAppearance, installErrorNotifications, installPrefetchInvalidation, installSpaUrlExceptions, registerRichEditorExtensions, reloadOnExpiredPage, resolveRequestErrorNotification, resolveToastPosition, setRequestErrorReporter, whenIdle } from "@alfakit/core";
16
+ import { createInertiaApp, router, usePage } from "@inertiajs/react";
17
+ import { StrictMode, createElement, useLayoutEffect } from "react";
18
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
19
+ import { Direction } from "radix-ui";
20
+ //#region src/create-alfakit.tsx
21
+ /**
22
+ * Rendered inside Inertia's page tree, so it follows the current page: the reading
23
+ * direction for Radix primitives, modals and toasts.
24
+ */
25
+ function AlfakitRoot({ children, toasterId }) {
26
+ const panel = usePage().props.alfakit;
27
+ const { translator, registry } = useAlfakit();
28
+ const localization = panel?.localization;
29
+ const direction = localization?.direction ?? "ltr";
30
+ if (panel) {
31
+ translator.setTranslations(panel.translations ?? {});
32
+ translator.setLocale(localization?.tag ?? "en");
33
+ }
34
+ useLayoutEffect(() => {
35
+ applyDocumentLocale(localization);
36
+ }, [localization]);
37
+ useLayoutEffect(() => {
38
+ applyPanelTheme(panel);
39
+ }, [panel]);
40
+ return /* @__PURE__ */ jsx(Direction.Provider, {
41
+ dir: direction,
42
+ children: /* @__PURE__ */ jsxs(TooltipProvider, {
43
+ delayDuration: 0,
44
+ children: [
45
+ /* @__PURE__ */ jsx(SchemaContractGuard, {
46
+ panel,
47
+ children
48
+ }),
49
+ /* @__PURE__ */ jsx(ActionModals, {}),
50
+ /* @__PURE__ */ jsx(FlashToasts, {}),
51
+ /* @__PURE__ */ jsx(RealtimeNotifications, {}),
52
+ /* @__PURE__ */ jsx(PwaManager, {}),
53
+ /* @__PURE__ */ jsx(DevToolsSlot, {}),
54
+ panel?.impersonation && createElement(registry.resolve("panel:impersonation-banner") ?? ImpersonationBanner, { impersonation: panel.impersonation }),
55
+ /* @__PURE__ */ jsx(Toaster, {
56
+ id: toasterId,
57
+ position: resolveToastPosition(panel?.toastPosition, direction),
58
+ offset: PANEL_TOAST_OFFSET,
59
+ mobileOffset: PANEL_TOAST_OFFSET,
60
+ dir: direction,
61
+ richColors: true,
62
+ closeButton: true
63
+ })
64
+ ]
65
+ })
66
+ });
67
+ }
68
+ /**
69
+ * The Inertia app shared by `createAlfakit()` (browser) and `createAlfakitServer()` (Node):
70
+ * the same registry, pages, layout and providers. In the browser it mounts, or hydrates
71
+ * server-rendered markup; on the server (no `window`) Inertia returns a render function.
72
+ */
73
+ function bootAlfakit(options = {}) {
74
+ const discovered = discoverComponents(options.discover);
75
+ const registry = createDefaultRegistry().registerMany(discovered.components).registerMany(options.components ?? {});
76
+ const pages = {
77
+ "Alfakit/Page": AlfakitPage,
78
+ ...discovered.pages,
79
+ ...options.pages
80
+ };
81
+ const isServer = typeof window === "undefined";
82
+ preloadIcons();
83
+ configureCharts(options);
84
+ if (options.echo !== void 0 && !isServer) configureRealtime(null, { echo: options.echo });
85
+ registerRichEditorExtensions(options.richEditorExtensions ?? {});
86
+ let currentPanel = null;
87
+ let currentErrorNotifications;
88
+ const createContext = () => {
89
+ const translator = new Translator();
90
+ return {
91
+ registry,
92
+ pages,
93
+ translator,
94
+ actions: new ActionRunner({
95
+ endpoints: {
96
+ action: "",
97
+ modal: ""
98
+ },
99
+ onError: (error) => {
100
+ const notification = resolveRequestErrorNotification(error, currentErrorNotifications, (key, replacements, fallback) => translator.t(key, replacements, fallback));
101
+ if (notification) showToast(notification);
102
+ }
103
+ })
104
+ };
105
+ };
106
+ const browserContext = isServer ? null : createContext();
107
+ const sync = (context, page, applyToDocument) => {
108
+ const props = page.props;
109
+ const panel = props.alfakit;
110
+ if (!panel) return;
111
+ if (context === browserContext) {
112
+ currentPanel = panel;
113
+ currentErrorNotifications = effectiveErrorNotifications(panel, props.page);
114
+ }
115
+ context.translator.setTranslations(panel.translations ?? {});
116
+ context.translator.setLocale(panel.localization?.tag ?? "en");
117
+ context.actions.setEndpoints({
118
+ action: panel.endpoints.action ?? "",
119
+ modal: panel.endpoints.modal ?? ""
120
+ });
121
+ if (applyToDocument) {
122
+ applyDocumentLocale(panel.localization);
123
+ applyPanelTheme(panel);
124
+ debugRecorder.setEnabled(props.alfakitDebug !== void 0);
125
+ }
126
+ };
127
+ if (browserContext) {
128
+ router.on("navigate", (event) => sync(browserContext, event.detail.page, true));
129
+ reloadOnExpiredPage();
130
+ installPrefetchInvalidation();
131
+ installSpaUrlExceptions(() => currentPanel);
132
+ installErrorNotifications(() => ({ errorNotifications: currentErrorNotifications }), (notification) => showToast(notification));
133
+ setRequestErrorReporter((error) => {
134
+ const notification = resolveRequestErrorNotification(error, currentErrorNotifications, (key, replacements, fallback) => browserContext.translator.t(key, replacements, fallback));
135
+ if (notification) showToast(notification);
136
+ });
137
+ }
138
+ return createInertiaApp({
139
+ title: (title) => title,
140
+ progress: options.progress === void 0 ? { color: "var(--primary)" } : options.progress,
141
+ resolve: (name, page) => {
142
+ const component = pages[name];
143
+ if (!component) throw new Error(`Alfakit: page component "${name}" is not registered. Pass it to createAlfakit({ pages }).`);
144
+ const pending = [builtInComponents.preloadFor(page), discovered.discovery.preloadFor(page)].filter((promise) => promise !== void 0);
145
+ return pending.length > 0 ? Promise.all(pending).then(() => component) : component;
146
+ },
147
+ layout: () => AlfakitRoot,
148
+ strictMode: options.strictMode ?? true,
149
+ withApp: (app, { page, ssr }) => {
150
+ const context = browserContext ?? createContext();
151
+ sync(context, page, !ssr);
152
+ const panel = page.props.alfakit;
153
+ if (!ssr && panel) initializeAppearance(panel);
154
+ const tree = /* @__PURE__ */ jsx(AlfakitProvider, {
155
+ value: context,
156
+ children: app
157
+ });
158
+ const wrapped = options.withApp ? options.withApp(tree) : tree;
159
+ return options.strictMode === false ? /* @__PURE__ */ jsx(Fragment$1, { children: wrapped }) : /* @__PURE__ */ jsx(StrictMode, { children: wrapped });
160
+ }
161
+ });
162
+ }
163
+ /**
164
+ * Boot the Alfakit panel frontend. Call once from your panel entry file. Markup rendered by
165
+ * `createAlfakitServer()` (`@alfakit/react/server`) is hydrated instead of re-rendered.
166
+ *
167
+ * ```tsx
168
+ * createAlfakit({
169
+ * // Files in resources/js/alfakit/fields, columns, … register themselves.
170
+ * discover: import.meta.glob('./{fields,columns,entries,widgets,pages,components,blocks}/**\/*.tsx'),
171
+ * components: { 'map-picker': MapPicker },
172
+ * })
173
+ * ```
174
+ */
175
+ async function createAlfakit(options = {}) {
176
+ await bootAlfakit(options);
177
+ whenIdle(() => void builtInComponents.preloadAll());
178
+ }
179
+ //#endregion
180
+ export { AlfakitRoot, bootAlfakit, createAlfakit };
181
+
182
+ //# sourceMappingURL=create-alfakit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-alfakit.js","names":[],"sources":["../src/create-alfakit.tsx"],"sourcesContent":["import {\n ActionRunner,\n PANEL_TOAST_OFFSET,\n Translator,\n applyDocumentLocale,\n applyPanelTheme,\n configureCharts,\n configureRealtime,\n debugRecorder,\n effectiveErrorNotifications,\n initializeAppearance,\n installErrorNotifications,\n installPrefetchInvalidation,\n installSpaUrlExceptions,\n registerRichEditorExtensions,\n reloadOnExpiredPage,\n resolveRequestErrorNotification,\n resolveToastPosition,\n setRequestErrorReporter,\n whenIdle,\n type AlfakitOptions,\n type AlfakitPageProps,\n type ErrorNotificationsSchema,\n type PanelSchema,\n} from '@alfakit/core'\nimport type { InertiaAppSSRResponse, Page } from '@inertiajs/core'\nimport { createInertiaApp, router, usePage } from '@inertiajs/react'\nimport { Direction } from 'radix-ui'\nimport {\n StrictMode,\n createElement,\n useLayoutEffect,\n type ReactElement,\n type ReactNode,\n} from 'react'\nimport { ActionModals } from './components/actions/action-modals'\nimport { DevToolsSlot } from './components/dev-tools/dev-tools-slot'\nimport { FlashToasts, showToast } from './components/notifications/flash-toasts'\nimport { RealtimeNotifications } from './components/notifications/realtime-notifications'\nimport { ImpersonationBanner } from './components/panel/impersonation-banner'\nimport { PwaManager } from './components/panel/pwa'\nimport { SchemaContractGuard } from './components/panel/schema-contract-guard'\nimport { Toaster } from './components/ui/sonner'\nimport { TooltipProvider } from './components/ui/tooltip'\nimport { AlfakitProvider, useAlfakit, type AlfakitContextValue, type AnyComponent } from './context'\nimport { discoverComponents } from './lib/discovery'\nimport { preloadIcons } from './lib/icons'\nimport { AlfakitPage } from './pages/page'\nimport { builtInComponents, createDefaultRegistry } from './registry'\n\n/**\n * Rendered inside Inertia's page tree, so it follows the current page: the reading\n * direction for Radix primitives, modals and toasts.\n */\nexport function AlfakitRoot({\n children,\n toasterId,\n}: {\n children: ReactNode\n /** Starter kit mode: Alfakit's toaster gets an id so the host's id-less one never doubles its toasts. */\n toasterId?: string\n}) {\n const panel = usePage<AlfakitPageProps>().props.alfakit\n const { translator, registry } = useAlfakit()\n const localization = panel?.localization\n const direction = localization?.direction ?? 'ltr'\n\n // Every visit (including the redirect after a language switch) may carry new strings,\n // so the translator is updated before children render.\n if (panel) {\n translator.setTranslations(panel.translations ?? {})\n translator.setLocale(localization?.tag ?? 'en')\n }\n\n useLayoutEffect(() => {\n applyDocumentLocale(localization)\n }, [localization])\n\n useLayoutEffect(() => {\n applyPanelTheme(panel)\n }, [panel])\n\n return (\n <Direction.Provider dir={direction}>\n <TooltipProvider delayDuration={0}>\n <SchemaContractGuard panel={panel}>{children}</SchemaContractGuard>\n <ActionModals />\n <FlashToasts />\n <RealtimeNotifications />\n {/* `Panel::pwa()`: service worker and the \"new version\" toast. */}\n <PwaManager />\n {/* Schema inspector: renders (and loads its code) only with `alfakitDevTools`. */}\n <DevToolsSlot />\n {/* Replace with createAlfakit({ components: { 'panel:impersonation-banner': … } }). */}\n {panel?.impersonation &&\n createElement(registry.resolve('panel:impersonation-banner') ?? ImpersonationBanner, {\n impersonation: panel.impersonation,\n })}\n <Toaster\n id={toasterId}\n position={resolveToastPosition(panel?.toastPosition, direction)}\n offset={PANEL_TOAST_OFFSET}\n mobileOffset={PANEL_TOAST_OFFSET}\n dir={direction}\n richColors\n closeButton\n />\n </TooltipProvider>\n </Direction.Provider>\n )\n}\n\nexport interface CreateAlfakitOptions extends AlfakitOptions<AnyComponent> {\n /** Wrap the whole app (e.g. with your own providers). */\n withApp?: (app: ReactNode) => ReactNode\n strictMode?: boolean\n}\n\n/** Renders one Inertia page to HTML: what `createInertiaApp` returns on the server. */\nexport type AlfakitRenderFunction = (\n page: Page,\n renderToString: (element: ReactElement) => string,\n) => Promise<InertiaAppSSRResponse>\n\n/**\n * The Inertia app shared by `createAlfakit()` (browser) and `createAlfakitServer()` (Node):\n * the same registry, pages, layout and providers. In the browser it mounts, or hydrates\n * server-rendered markup; on the server (no `window`) Inertia returns a render function.\n */\nexport function bootAlfakit(\n options: CreateAlfakitOptions = {},\n): Promise<void | AlfakitRenderFunction> {\n // Auto-registered files sit between the built-ins and the explicit `components` / `pages`.\n const discovered = discoverComponents(options.discover)\n const registry = createDefaultRegistry()\n .registerMany(discovered.components)\n .registerMany(options.components ?? {})\n const pages: Record<string, AnyComponent> = {\n 'Alfakit/Page': AlfakitPage,\n ...discovered.pages,\n ...options.pages,\n }\n const isServer = typeof window === 'undefined'\n\n // Every panel page draws named icons: fetch `lucide-react/dynamic` while booting.\n preloadIcons()\n\n // `'js:name'` chart option callbacks and Chart.js plugins for every chart widget.\n configureCharts(options)\n // `createAlfakit({ echo })`: Laravel Echo for `Panel::realtime()` without `window.Echo`.\n if (options.echo !== undefined && !isServer) configureRealtime(null, { echo: options.echo })\n // Rich content plugin extensions, loaded when an editor needs them.\n registerRichEditorExtensions(options.richEditorExtensions ?? {})\n\n // The browser's current panel, read by the SPA-exception and error-notification listeners.\n let currentPanel: PanelSchema | null = null\n // The open page's error notifications (its override, else the panel's).\n let currentErrorNotifications: ErrorNotificationsSchema | false | undefined\n\n // One translator and action runner for the browser session; a server render gets fresh\n // ones per request so concurrent renders never share a locale or endpoints.\n const createContext = (): AlfakitContextValue => {\n const translator = new Translator()\n\n return {\n registry,\n pages,\n translator,\n // The runner's endpoints are refreshed on every navigation from the shared props.\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 currentErrorNotifications,\n (key, replacements, fallback) => translator.t(key, replacements, fallback),\n )\n\n if (notification) showToast(notification)\n },\n }),\n }\n }\n\n const browserContext = isServer ? null : createContext()\n\n const sync = (context: AlfakitContextValue, page: Page, applyToDocument: boolean) => {\n const props = page.props as unknown as AlfakitPageProps\n const panel = props.alfakit\n\n if (!panel) return\n\n if (context === browserContext) {\n currentPanel = panel\n currentErrorNotifications = effectiveErrorNotifications(panel, props.page)\n }\n\n context.translator.setTranslations(panel.translations ?? {})\n context.translator.setLocale(panel.localization?.tag ?? 'en')\n context.actions.setEndpoints({\n action: panel.endpoints.action ?? '',\n modal: panel.endpoints.modal ?? '',\n })\n\n if (applyToDocument) {\n applyDocumentLocale(panel.localization)\n applyPanelTheme(panel)\n // Internal requests and form stores are only recorded while the page carries the debug prop.\n debugRecorder.setEnabled(props.alfakitDebug !== undefined)\n }\n }\n\n if (browserContext) {\n router.on('navigate', (event) => sync(browserContext, event.detail.page, true))\n reloadOnExpiredPage()\n // Prefetched pages and deferred table totals are dropped after every mutation.\n installPrefetchInvalidation()\n installSpaUrlExceptions(() => currentPanel)\n installErrorNotifications(\n () => ({ errorNotifications: currentErrorNotifications }),\n (notification) => showToast(notification),\n )\n // Failed internal requests without their own handler (form live refreshes, step\n // validation) show the configured error notification too.\n setRequestErrorReporter((error) => {\n const notification = resolveRequestErrorNotification(\n error,\n currentErrorNotifications,\n (key, replacements, fallback) => browserContext.translator.t(key, replacements, fallback),\n )\n\n if (notification) showToast(notification)\n })\n }\n\n return createInertiaApp<AlfakitPageProps>({\n title: (title) => title,\n progress: options.progress === undefined ? { color: 'var(--primary)' } : options.progress,\n resolve: (name, page) => {\n const component = pages[name]\n\n if (!component) {\n throw new Error(\n `Alfakit: page component \"${name}\" is not registered. Pass it to createAlfakit({ pages }).`,\n )\n }\n\n // The page's auto-registered components load first, so the server render and the\n // hydration both show them (no flash, no mismatch).\n // Built-ins split per type (`builtInComponents`) load the same way.\n const pending = [\n builtInComponents.preloadFor(page),\n discovered.discovery.preloadFor(page),\n ].filter((promise) => promise !== undefined)\n\n return pending.length > 0 ? Promise.all(pending).then(() => component) : component\n },\n layout: () => AlfakitRoot,\n strictMode: options.strictMode ?? true,\n withApp: (app, { page, ssr }) => {\n const context = browserContext ?? createContext()\n\n sync(context, page as Page, !ssr)\n\n // Panel pages only: other pages (`pages` option) follow the application's own dark\n // mode, like standalone components do.\n const panel = (page.props as unknown as Partial<AlfakitPageProps>).alfakit\n\n if (!ssr && panel) {\n initializeAppearance(panel)\n }\n\n const tree = <AlfakitProvider value={context}>{app}</AlfakitProvider>\n\n const wrapped = options.withApp ? options.withApp(tree) : tree\n\n return options.strictMode === false ? <>{wrapped}</> : <StrictMode>{wrapped}</StrictMode>\n },\n }) as Promise<void | AlfakitRenderFunction>\n}\n\n/**\n * Boot the Alfakit panel frontend. Call once from your panel entry file. Markup rendered by\n * `createAlfakitServer()` (`@alfakit/react/server`) is hydrated instead of re-rendered.\n *\n * ```tsx\n * createAlfakit({\n * // Files in resources/js/alfakit/fields, columns, … register themselves.\n * discover: import.meta.glob('./{fields,columns,entries,widgets,pages,components,blocks}/**\\/*.tsx'),\n * components: { 'map-picker': MapPicker },\n * })\n * ```\n */\nexport async function createAlfakit(options: CreateAlfakitOptions = {}): Promise<void> {\n await bootAlfakit(options)\n\n // After the first render: the remaining split built-ins (action modals' fields).\n whenIdle(() => void builtInComponents.preloadAll())\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAsDA,SAAgB,YAAY,EAC1B,UACA,aAKC;CACD,MAAM,QAAQ,QAA0B,CAAC,CAAC,MAAM;CAChD,MAAM,EAAE,YAAY,aAAa,WAAW;CAC5C,MAAM,eAAe,OAAO;CAC5B,MAAM,YAAY,cAAc,aAAa;CAI7C,IAAI,OAAO;EACT,WAAW,gBAAgB,MAAM,gBAAgB,CAAC,CAAC;EACnD,WAAW,UAAU,cAAc,OAAO,IAAI;CAChD;CAEA,sBAAsB;EACpB,oBAAoB,YAAY;CAClC,GAAG,CAAC,YAAY,CAAC;CAEjB,sBAAsB;EACpB,gBAAgB,KAAK;CACvB,GAAG,CAAC,KAAK,CAAC;CAEV,OACE,oBAAC,UAAU,UAAX;EAAoB,KAAK;EACvB,UAAA,qBAAC,iBAAD;GAAiB,eAAe;GAAhC,UAAA;IACE,oBAAC,qBAAD;KAA4B;KAAQ;IAA8B,CAAA;IAClE,oBAAC,cAAD,CAAe,CAAA;IACf,oBAAC,aAAD,CAAc,CAAA;IACd,oBAAC,uBAAD,CAAwB,CAAA;IAExB,oBAAC,YAAD,CAAa,CAAA;IAEb,oBAAC,cAAD,CAAe,CAAA;IAEd,OAAO,iBACN,cAAc,SAAS,QAAQ,4BAA4B,KAAK,qBAAqB,EACnF,eAAe,MAAM,cACvB,CAAC;IACH,oBAAC,SAAD;KACE,IAAI;KACJ,UAAU,qBAAqB,OAAO,eAAe,SAAS;KAC9D,QAAQ;KACR,cAAc;KACd,KAAK;KACL,YAAA;KACA,aAAA;IACD,CAAA;GACc;;CACC,CAAA;AAExB;;;;;;AAmBA,SAAgB,YACd,UAAgC,CAAC,GACM;CAEvC,MAAM,aAAa,mBAAmB,QAAQ,QAAQ;CACtD,MAAM,WAAW,sBAAsB,CAAC,CACrC,aAAa,WAAW,UAAU,CAAC,CACnC,aAAa,QAAQ,cAAc,CAAC,CAAC;CACxC,MAAM,QAAsC;EAC1C,gBAAgB;EAChB,GAAG,WAAW;EACd,GAAG,QAAQ;CACb;CACA,MAAM,WAAW,OAAO,WAAW;CAGnC,aAAa;CAGb,gBAAgB,OAAO;CAEvB,IAAI,QAAQ,SAAS,KAAA,KAAa,CAAC,UAAU,kBAAkB,MAAM,EAAE,MAAM,QAAQ,KAAK,CAAC;CAE3F,6BAA6B,QAAQ,wBAAwB,CAAC,CAAC;CAG/D,IAAI,eAAmC;CAEvC,IAAI;CAIJ,MAAM,sBAA2C;EAC/C,MAAM,aAAa,IAAI,WAAW;EAElC,OAAO;GACL;GACA;GACA;GAEA,SAAS,IAAI,aAAa;IACxB,WAAW;KAAE,QAAQ;KAAI,OAAO;IAAG;IAEnC,UAAU,UAAU;KAClB,MAAM,eAAe,gCACnB,OACA,4BACC,KAAK,cAAc,aAAa,WAAW,EAAE,KAAK,cAAc,QAAQ,CAC3E;KAEA,IAAI,cAAc,UAAU,YAAY;IAC1C;GACF,CAAC;EACH;CACF;CAEA,MAAM,iBAAiB,WAAW,OAAO,cAAc;CAEvD,MAAM,QAAQ,SAA8B,MAAY,oBAA6B;EACnF,MAAM,QAAQ,KAAK;EACnB,MAAM,QAAQ,MAAM;EAEpB,IAAI,CAAC,OAAO;EAEZ,IAAI,YAAY,gBAAgB;GAC9B,eAAe;GACf,4BAA4B,4BAA4B,OAAO,MAAM,IAAI;EAC3E;EAEA,QAAQ,WAAW,gBAAgB,MAAM,gBAAgB,CAAC,CAAC;EAC3D,QAAQ,WAAW,UAAU,MAAM,cAAc,OAAO,IAAI;EAC5D,QAAQ,QAAQ,aAAa;GAC3B,QAAQ,MAAM,UAAU,UAAU;GAClC,OAAO,MAAM,UAAU,SAAS;EAClC,CAAC;EAED,IAAI,iBAAiB;GACnB,oBAAoB,MAAM,YAAY;GACtC,gBAAgB,KAAK;GAErB,cAAc,WAAW,MAAM,iBAAiB,KAAA,CAAS;EAC3D;CACF;CAEA,IAAI,gBAAgB;EAClB,OAAO,GAAG,aAAa,UAAU,KAAK,gBAAgB,MAAM,OAAO,MAAM,IAAI,CAAC;EAC9E,oBAAoB;EAEpB,4BAA4B;EAC5B,8BAA8B,YAAY;EAC1C,iCACS,EAAE,oBAAoB,0BAA0B,KACtD,iBAAiB,UAAU,YAAY,CAC1C;EAGA,yBAAyB,UAAU;GACjC,MAAM,eAAe,gCACnB,OACA,4BACC,KAAK,cAAc,aAAa,eAAe,WAAW,EAAE,KAAK,cAAc,QAAQ,CAC1F;GAEA,IAAI,cAAc,UAAU,YAAY;EAC1C,CAAC;CACH;CAEA,OAAO,iBAAmC;EACxC,QAAQ,UAAU;EAClB,UAAU,QAAQ,aAAa,KAAA,IAAY,EAAE,OAAO,iBAAiB,IAAI,QAAQ;EACjF,UAAU,MAAM,SAAS;GACvB,MAAM,YAAY,MAAM;GAExB,IAAI,CAAC,WACH,MAAM,IAAI,MACR,4BAA4B,KAAK,0DACnC;GAMF,MAAM,UAAU,CACd,kBAAkB,WAAW,IAAI,GACjC,WAAW,UAAU,WAAW,IAAI,CACtC,CAAC,CAAC,QAAQ,YAAY,YAAY,KAAA,CAAS;GAE3C,OAAO,QAAQ,SAAS,IAAI,QAAQ,IAAI,OAAO,CAAC,CAAC,WAAW,SAAS,IAAI;EAC3E;EACA,cAAc;EACd,YAAY,QAAQ,cAAc;EAClC,UAAU,KAAK,EAAE,MAAM,UAAU;GAC/B,MAAM,UAAU,kBAAkB,cAAc;GAEhD,KAAK,SAAS,MAAc,CAAC,GAAG;GAIhC,MAAM,QAAS,KAAK,MAA+C;GAEnE,IAAI,CAAC,OAAO,OACV,qBAAqB,KAAK;GAG5B,MAAM,OAAO,oBAAC,iBAAD;IAAiB,OAAO;IAAU,UAAA;GAAqB,CAAA;GAEpE,MAAM,UAAU,QAAQ,UAAU,QAAQ,QAAQ,IAAI,IAAI;GAE1D,OAAO,QAAQ,eAAe,QAAQ,oBAAA,YAAA,EAAA,UAAG,QAAU,CAAA,IAAI,oBAAC,YAAD,EAAA,UAAa,QAAoB,CAAA;EAC1F;CACF,CAAC;AACH;;;;;;;;;;;;;AAcA,eAAsB,cAAc,UAAgC,CAAC,GAAkB;CACrF,MAAM,YAAY,OAAO;CAGzB,eAAe,KAAK,kBAAkB,WAAW,CAAC;AACpD"}