@lattice-php/lattice 0.17.2 → 0.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (728) hide show
  1. package/dist/action/components/action-form.d.ts +2 -2
  2. package/dist/action/components/action-form.js +11 -11
  3. package/dist/action/components/action-form.js.map +1 -1
  4. package/dist/action/components/action-group.d.ts +1 -1
  5. package/dist/action/components/action-group.js +6 -4
  6. package/dist/action/components/action-group.js.map +1 -1
  7. package/dist/action/components/action-trigger-provider.d.ts +10 -0
  8. package/dist/action/components/action-trigger-provider.js +24 -0
  9. package/dist/action/components/action-trigger-provider.js.map +1 -0
  10. package/dist/action/components/action.d.ts +1 -1
  11. package/dist/action/components/action.js +4 -4
  12. package/dist/action/components/action.js.map +1 -1
  13. package/dist/action/{use-action.d.ts → hooks/use-action.d.ts} +1 -1
  14. package/dist/action/{use-action.js → hooks/use-action.js} +7 -7
  15. package/dist/action/hooks/use-action.js.map +1 -0
  16. package/dist/action/hooks/use-click-behavior.d.ts +3 -0
  17. package/dist/action/hooks/use-click-behavior.js +3 -0
  18. package/dist/action/index.d.ts +10 -1
  19. package/dist/action/index.js +8 -13
  20. package/dist/action/{run-action.d.ts → lib/run-action.d.ts} +1 -1
  21. package/dist/action/{run-action.js → lib/run-action.js} +2 -2
  22. package/dist/action/lib/run-action.js.map +1 -0
  23. package/dist/action/plugin.d.ts +1 -0
  24. package/dist/action/plugin.js +15 -0
  25. package/dist/action/plugin.js.map +1 -0
  26. package/dist/appearance/index.d.ts +4 -1
  27. package/dist/appearance/index.js +11 -2
  28. package/dist/appearance/index.js.map +1 -1
  29. package/dist/chat/components/chat-box.d.ts +1 -1
  30. package/dist/chat/components/chat-box.js +2 -2
  31. package/dist/chat/components/chat-box.js.map +1 -1
  32. package/dist/chat/components/message-list.d.ts +1 -1
  33. package/dist/chat/components/message-list.js.map +1 -1
  34. package/dist/chat/components/message.d.ts +1 -1
  35. package/dist/chat/components/message.js.map +1 -1
  36. package/dist/chat/components/prompt-input.js +1 -1
  37. package/dist/chat/components/prompt-input.js.map +1 -1
  38. package/dist/chat/{use-chat.d.ts → hooks/use-chat.d.ts} +1 -1
  39. package/dist/chat/{use-chat.js → hooks/use-chat.js} +2 -2
  40. package/dist/chat/hooks/use-chat.js.map +1 -0
  41. package/dist/chat/index.d.ts +4 -1
  42. package/dist/chat/index.js +3 -17
  43. package/dist/chat/{transport.d.ts → lib/transport.d.ts} +2 -2
  44. package/dist/chat/{transport.js → lib/transport.js} +2 -2
  45. package/dist/chat/lib/transport.js.map +1 -0
  46. package/dist/chat/parts/text.d.ts +1 -1
  47. package/dist/chat/parts/tool-call.d.ts +1 -1
  48. package/dist/chat/plugin.d.ts +2 -0
  49. package/dist/chat/plugin.js +17 -0
  50. package/dist/chat/plugin.js.map +1 -0
  51. package/dist/chat/types.d.ts +2 -2
  52. package/dist/clipboard/index.d.ts +1 -2
  53. package/dist/clipboard/index.js +1 -10
  54. package/dist/clipboard/index.js.map +1 -1
  55. package/dist/core/api.d.ts +1 -1
  56. package/dist/core/api.js.map +1 -1
  57. package/dist/core/headers.js.map +1 -1
  58. package/dist/core/{column-sizing.d.ts → hooks/column-sizing.d.ts} +2 -2
  59. package/dist/core/{column-sizing.js → hooks/column-sizing.js} +1 -1
  60. package/dist/core/hooks/column-sizing.js.map +1 -0
  61. package/dist/core/{use-column-resizing.d.ts → hooks/use-column-resizing.d.ts} +2 -1
  62. package/dist/core/{use-column-resizing.js → hooks/use-column-resizing.js} +59 -31
  63. package/dist/core/hooks/use-column-resizing.js.map +1 -0
  64. package/dist/core/index.d.ts +13 -0
  65. package/dist/core/index.js +10 -0
  66. package/dist/core/materialize.d.ts +9 -0
  67. package/dist/core/materialize.js +39 -0
  68. package/dist/core/materialize.js.map +1 -0
  69. package/dist/core/nodes.d.ts +1 -1
  70. package/dist/core/registry-context.d.ts +3 -3
  71. package/dist/core/registry-context.js.map +1 -1
  72. package/dist/core/registry.d.ts +5 -3
  73. package/dist/core/registry.js.map +1 -1
  74. package/dist/core/renderer.d.ts +1 -1
  75. package/dist/core/renderer.js +3 -3
  76. package/dist/core/renderer.js.map +1 -1
  77. package/dist/core/test-id.d.ts +1 -1
  78. package/dist/core/types.d.ts +1 -1
  79. package/dist/create-app.d.ts +3 -3
  80. package/dist/effects/dispatch.d.ts +2 -2
  81. package/dist/effects/registry.d.ts +4 -3
  82. package/dist/effects/registry.js +7 -7
  83. package/dist/effects/registry.js.map +1 -1
  84. package/dist/effects/use-effect-dispatcher.d.ts +1 -1
  85. package/dist/{events/event-bridge.d.ts → event-bridge.d.ts} +2 -3
  86. package/dist/{events/event-bridge.js → event-bridge.js} +4 -11
  87. package/dist/event-bridge.js.map +1 -0
  88. package/dist/form/components/base/field.d.ts +1 -1
  89. package/dist/form/components/base/field.js +5 -5
  90. package/dist/form/components/base/field.js.map +1 -1
  91. package/dist/form/components/base/submit-button.d.ts +1 -1
  92. package/dist/form/components/base/submit-button.js +3 -3
  93. package/dist/form/components/base/submit-button.js.map +1 -1
  94. package/dist/form/components/fields/{block-add-menu.d.ts → add-row-menu.d.ts} +3 -3
  95. package/dist/form/components/fields/{block-add-menu.js → add-row-menu.js} +10 -10
  96. package/dist/form/components/fields/add-row-menu.js.map +1 -0
  97. package/dist/form/components/fields/builder.d.ts +1 -1
  98. package/dist/form/components/fields/builder.js +80 -75
  99. package/dist/form/components/fields/builder.js.map +1 -1
  100. package/dist/form/components/fields/checkbox.d.ts +1 -1
  101. package/dist/form/components/fields/checkbox.js +12 -9
  102. package/dist/form/components/fields/checkbox.js.map +1 -1
  103. package/dist/form/components/fields/choice.d.ts +1 -1
  104. package/dist/form/components/fields/choice.js +4 -4
  105. package/dist/form/components/fields/choice.js.map +1 -1
  106. package/dist/form/components/fields/date-input.d.ts +1 -1
  107. package/dist/form/components/fields/date-picker-field.js +2 -2
  108. package/dist/form/components/fields/date-picker-field.js.map +1 -1
  109. package/dist/form/components/fields/date-picker.d.ts +1 -1
  110. package/dist/form/components/fields/date-time-input.d.ts +1 -1
  111. package/dist/form/components/fields/file-upload.d.ts +1 -1
  112. package/dist/form/components/fields/file-upload.js +4 -4
  113. package/dist/form/components/fields/file-upload.js.map +1 -1
  114. package/dist/form/components/fields/hidden-input.d.ts +1 -1
  115. package/dist/form/components/fields/hidden-input.js +1 -1
  116. package/dist/form/components/fields/hidden-input.js.map +1 -1
  117. package/dist/form/components/fields/number-input.d.ts +1 -1
  118. package/dist/form/components/fields/number-input.js +2 -2
  119. package/dist/form/components/fields/number-input.js.map +1 -1
  120. package/dist/form/components/fields/otp-input.d.ts +1 -1
  121. package/dist/form/components/fields/otp-input.js +1 -1
  122. package/dist/form/components/fields/otp-input.js.map +1 -1
  123. package/dist/form/components/fields/password-input.d.ts +1 -1
  124. package/dist/form/components/fields/password-input.js +6 -6
  125. package/dist/form/components/fields/password-input.js.map +1 -1
  126. package/dist/form/components/fields/repeater-rows.d.ts +6 -1
  127. package/dist/form/components/fields/repeater-rows.js +9 -5
  128. package/dist/form/components/fields/repeater-rows.js.map +1 -1
  129. package/dist/form/components/fields/repeater.d.ts +1 -1
  130. package/dist/form/components/fields/repeater.js +57 -48
  131. package/dist/form/components/fields/repeater.js.map +1 -1
  132. package/dist/form/components/fields/rich-editor-field.d.ts +1 -1
  133. package/dist/form/components/fields/rich-editor-field.js +5 -5
  134. package/dist/form/components/fields/rich-editor-field.js.map +1 -1
  135. package/dist/form/components/fields/rich-editor.d.ts +1 -1
  136. package/dist/form/components/fields/row-action-menu.d.ts +2 -2
  137. package/dist/form/components/fields/row-actions.js +1 -1
  138. package/dist/form/components/fields/row-actions.js.map +1 -1
  139. package/dist/form/components/fields/row-item.d.ts +3 -3
  140. package/dist/form/components/fields/row-item.js +1 -1
  141. package/dist/form/components/fields/row-item.js.map +1 -1
  142. package/dist/form/components/fields/row-key-inputs.d.ts +7 -0
  143. package/dist/form/components/fields/row-key-inputs.js +16 -0
  144. package/dist/form/components/fields/row-key-inputs.js.map +1 -0
  145. package/dist/form/components/fields/row-templates.d.ts +9 -0
  146. package/dist/form/components/fields/row-templates.js +14 -0
  147. package/dist/form/components/fields/row-templates.js.map +1 -0
  148. package/dist/form/components/fields/select.d.ts +1 -1
  149. package/dist/form/components/fields/select.js +23 -13
  150. package/dist/form/components/fields/select.js.map +1 -1
  151. package/dist/form/components/fields/simple-field.d.ts +2 -2
  152. package/dist/form/components/fields/simple-field.js +2 -2
  153. package/dist/form/components/fields/simple-field.js.map +1 -1
  154. package/dist/form/components/fields/table-rows.d.ts +3 -3
  155. package/dist/form/components/fields/table-rows.js +10 -11
  156. package/dist/form/components/fields/table-rows.js.map +1 -1
  157. package/dist/form/components/fields/text-input.d.ts +1 -1
  158. package/dist/form/components/fields/text-input.js +2 -2
  159. package/dist/form/components/fields/text-input.js.map +1 -1
  160. package/dist/form/components/fields/textarea.d.ts +1 -1
  161. package/dist/form/components/fields/textarea.js +1 -1
  162. package/dist/form/components/fields/textarea.js.map +1 -1
  163. package/dist/form/components/fields/time-input.d.ts +1 -1
  164. package/dist/form/components/fields/time-input.js +3 -3
  165. package/dist/form/components/fields/time-input.js.map +1 -1
  166. package/dist/form/components/fields/time-picker.d.ts +1 -1
  167. package/dist/form/components/fields/toggle.d.ts +1 -1
  168. package/dist/form/components/fields/toggle.js +10 -9
  169. package/dist/form/components/fields/toggle.js.map +1 -1
  170. package/dist/form/components/fields/use-row-collection.d.ts +1 -1
  171. package/dist/form/components/fields/use-row-collection.js +2 -2
  172. package/dist/form/components/fields/use-row-collection.js.map +1 -1
  173. package/dist/form/components/form.d.ts +1 -1
  174. package/dist/form/components/form.js +6 -6
  175. package/dist/form/components/form.js.map +1 -1
  176. package/dist/form/components/index.d.ts +17 -17
  177. package/dist/form/embed.d.ts +17 -0
  178. package/dist/form/embed.js +10 -0
  179. package/dist/form/{components → hooks}/context.d.ts +3 -0
  180. package/dist/form/{components → hooks}/context.js +2 -1
  181. package/dist/form/hooks/context.js.map +1 -0
  182. package/dist/form/{components → hooks}/field-scope.js +3 -3
  183. package/dist/form/hooks/field-scope.js.map +1 -0
  184. package/dist/form/{components → hooks}/prefill-context.js +1 -1
  185. package/dist/form/hooks/prefill-context.js.map +1 -0
  186. package/dist/form/{components → hooks}/resolved-nodes.d.ts +1 -1
  187. package/dist/form/{components → hooks}/resolved-nodes.js +2 -2
  188. package/dist/form/hooks/resolved-nodes.js.map +1 -0
  189. package/dist/form/{components → hooks}/row-layout-context.js +1 -1
  190. package/dist/form/hooks/row-layout-context.js.map +1 -0
  191. package/dist/form/{components → hooks}/use-controlled-field.d.ts +2 -2
  192. package/dist/form/{components → hooks}/use-controlled-field.js +6 -5
  193. package/dist/form/hooks/use-controlled-field.js.map +1 -0
  194. package/dist/form/hooks/use-dependent-field.d.ts +3 -0
  195. package/dist/form/{components → hooks}/use-dependent-field.js +6 -6
  196. package/dist/form/hooks/use-dependent-field.js.map +1 -0
  197. package/dist/form/{components → hooks}/use-field-commit.d.ts +5 -0
  198. package/dist/form/{components → hooks}/use-field-commit.js +9 -2
  199. package/dist/form/hooks/use-field-commit.js.map +1 -0
  200. package/dist/form/{components → hooks}/use-form-resolver.d.ts +2 -2
  201. package/dist/form/{components → hooks}/use-form-resolver.js +5 -5
  202. package/dist/form/hooks/use-form-resolver.js.map +1 -0
  203. package/dist/form/{components → hooks}/use-seed-default.js +1 -1
  204. package/dist/form/hooks/use-seed-default.js.map +1 -0
  205. package/dist/form/{components → hooks}/values.d.ts +3 -1
  206. package/dist/form/hooks/values.js +136 -0
  207. package/dist/form/hooks/values.js.map +1 -0
  208. package/dist/form/index.d.ts +4 -1
  209. package/dist/form/index.js +3 -30
  210. package/dist/form/{components → lib}/conditions.d.ts +2 -1
  211. package/dist/form/{components → lib}/conditions.js +12 -2
  212. package/dist/form/lib/conditions.js.map +1 -0
  213. package/dist/form/lib/field-dom-name.d.ts +1 -0
  214. package/dist/form/lib/field-dom-name.js +10 -0
  215. package/dist/form/lib/field-dom-name.js.map +1 -0
  216. package/dist/form/{components → lib}/field-props.d.ts +2 -3
  217. package/dist/form/{components → lib}/field-props.js +1 -1
  218. package/dist/form/lib/field-props.js.map +1 -0
  219. package/dist/form/{components → lib}/form-path.js +1 -1
  220. package/dist/form/lib/form-path.js.map +1 -0
  221. package/dist/form/{components → lib}/form-transport.d.ts +1 -1
  222. package/dist/form/lib/form-transport.js +21 -0
  223. package/dist/form/lib/form-transport.js.map +1 -0
  224. package/dist/form/lib/override-keys.js +12 -0
  225. package/dist/form/lib/override-keys.js.map +1 -0
  226. package/dist/form/{components → lib}/prefill-targets.d.ts +2 -2
  227. package/dist/form/{components → lib}/prefill-targets.js +4 -5
  228. package/dist/form/lib/prefill-targets.js.map +1 -0
  229. package/dist/form/plugin.d.ts +1 -0
  230. package/dist/form/plugin.js +47 -0
  231. package/dist/form/plugin.js.map +1 -0
  232. package/dist/form/toolkit.d.ts +17 -0
  233. package/dist/form/toolkit.js +14 -0
  234. package/dist/form/{components/types.d.ts → types.d.ts} +3 -3
  235. package/dist/format/number.d.ts +1 -1
  236. package/dist/format/value.d.ts +1 -1
  237. package/dist/i18n/backend.d.ts +1 -1
  238. package/dist/i18n/config.d.ts +1 -1
  239. package/dist/i18n/index.d.ts +13 -13
  240. package/dist/i18n/locale-reload.js +1 -1
  241. package/dist/i18n/locale-reload.js.map +1 -1
  242. package/dist/i18n/locale.js.map +1 -1
  243. package/dist/i18n/page-props.d.ts +1 -1
  244. package/dist/i18n/timezone.js.map +1 -1
  245. package/dist/i18n/translatable.d.ts +1 -1
  246. package/dist/icons/icon-renderer.js.map +1 -1
  247. package/dist/icons/index.d.ts +4 -4
  248. package/dist/icons/sprite.js.map +1 -1
  249. package/dist/index.d.ts +37 -38
  250. package/dist/index.js +10 -9
  251. package/dist/inertia.js +1 -1
  252. package/dist/layout/{breadcrumbs.d.ts → components/breadcrumbs.d.ts} +1 -1
  253. package/dist/layout/{breadcrumbs.js → components/breadcrumbs.js} +2 -2
  254. package/dist/layout/components/breadcrumbs.js.map +1 -0
  255. package/dist/layout/{callouts.d.ts → components/callouts.d.ts} +1 -1
  256. package/dist/layout/{callouts.js → components/callouts.js} +7 -7
  257. package/dist/layout/components/callouts.js.map +1 -0
  258. package/dist/layout/{dropdown.d.ts → components/dropdown.d.ts} +1 -1
  259. package/dist/layout/{dropdown.js → components/dropdown.js} +2 -2
  260. package/dist/layout/components/dropdown.js.map +1 -0
  261. package/dist/layout/{menu-item.d.ts → components/menu-item.d.ts} +1 -1
  262. package/dist/layout/{menu-item.js → components/menu-item.js} +9 -8
  263. package/dist/layout/components/menu-item.js.map +1 -0
  264. package/dist/layout/{menu.d.ts → components/menu.d.ts} +1 -1
  265. package/dist/layout/{menu.js → components/menu.js} +2 -2
  266. package/dist/layout/components/menu.js.map +1 -0
  267. package/dist/layout/{outlet.d.ts → components/outlet.d.ts} +1 -1
  268. package/dist/layout/{outlet.js → components/outlet.js} +2 -2
  269. package/dist/layout/components/outlet.js.map +1 -0
  270. package/dist/layout/{popover.js → components/popover.js} +4 -4
  271. package/dist/layout/components/popover.js.map +1 -0
  272. package/dist/layout/{schema-layout.js → components/schema-layout.js} +3 -3
  273. package/dist/layout/components/schema-layout.js.map +1 -0
  274. package/dist/layout/{sidebar.d.ts → components/sidebar.d.ts} +1 -1
  275. package/dist/layout/{sidebar.js → components/sidebar.js} +5 -5
  276. package/dist/layout/components/sidebar.js.map +1 -0
  277. package/dist/layout/{topbar.d.ts → components/topbar.d.ts} +1 -1
  278. package/dist/layout/{topbar.js → components/topbar.js} +3 -3
  279. package/dist/layout/components/topbar.js.map +1 -0
  280. package/dist/layout/{context.d.ts → hooks/context.d.ts} +1 -1
  281. package/dist/layout/{context.js → hooks/context.js} +2 -2
  282. package/dist/layout/hooks/context.js.map +1 -0
  283. package/dist/layout/index.d.ts +4 -4
  284. package/dist/layout/index.js +4 -4
  285. package/dist/layout/plugin.d.ts +2 -0
  286. package/dist/layout/{components.js → plugin.js} +10 -10
  287. package/dist/layout/plugin.js.map +1 -0
  288. package/dist/notifications/api.d.ts +1 -1
  289. package/dist/notifications/components/notification-item.d.ts +1 -1
  290. package/dist/notifications/components/notification-item.js.map +1 -1
  291. package/dist/notifications/components/notification-list.d.ts +2 -2
  292. package/dist/notifications/components/notification-list.js +1 -1
  293. package/dist/notifications/components/notification-list.js.map +1 -1
  294. package/dist/notifications/components/notifications-echo.d.ts +1 -1
  295. package/dist/notifications/components/notifications-echo.js.map +1 -1
  296. package/dist/notifications/components/notifications.d.ts +1 -1
  297. package/dist/notifications/components/notifications.js +3 -3
  298. package/dist/notifications/components/notifications.js.map +1 -1
  299. package/dist/notifications/index.d.ts +2 -1
  300. package/dist/notifications/index.js +1 -10
  301. package/dist/notifications/plugin.d.ts +2 -0
  302. package/dist/notifications/plugin.js +11 -0
  303. package/dist/notifications/plugin.js.map +1 -0
  304. package/dist/notifications/store.d.ts +1 -1
  305. package/dist/notifications/types.d.ts +1 -1
  306. package/dist/page.d.ts +1 -1
  307. package/dist/provider-base.d.ts +2 -2
  308. package/dist/provider-base.js +5 -4
  309. package/dist/provider-base.js.map +1 -1
  310. package/dist/provider.d.ts +3 -3
  311. package/dist/realtime/build-effects.d.ts +2 -2
  312. package/dist/realtime/listeners.d.ts +1 -1
  313. package/dist/realtime/subscriptions.d.ts +1 -1
  314. package/dist/registry.d.ts +1 -1
  315. package/dist/registry.js +9 -9
  316. package/dist/registry.js.map +1 -1
  317. package/dist/remote/components/data-list.d.ts +2 -2
  318. package/dist/remote/components/data-list.js +1 -34
  319. package/dist/remote/components/data-list.js.map +1 -1
  320. package/dist/remote/index.d.ts +1 -1
  321. package/dist/remote/index.js +1 -10
  322. package/dist/remote/plugin.d.ts +2 -0
  323. package/dist/remote/plugin.js +11 -0
  324. package/dist/remote/plugin.js.map +1 -0
  325. package/dist/table/components/bulk-bar.d.ts +1 -1
  326. package/dist/table/components/bulk-bar.js +4 -4
  327. package/dist/table/components/bulk-bar.js.map +1 -1
  328. package/dist/table/components/cells/badge-cell.d.ts +1 -1
  329. package/dist/table/components/cells/badge-cell.js +1 -1
  330. package/dist/table/components/cells/badge-cell.js.map +1 -1
  331. package/dist/table/components/cells/boolean-cell.d.ts +1 -1
  332. package/dist/table/components/cells/boolean-cell.js.map +1 -1
  333. package/dist/table/components/cells/icon-cell.d.ts +1 -1
  334. package/dist/table/components/cells/icon-cell.js.map +1 -1
  335. package/dist/table/components/cells/image-cell.d.ts +1 -1
  336. package/dist/table/components/cells/image-cell.js +1 -1
  337. package/dist/table/components/cells/image-cell.js.map +1 -1
  338. package/dist/table/components/cells/money-cell.d.ts +1 -1
  339. package/dist/table/components/cells/money-cell.js +1 -1
  340. package/dist/table/components/cells/money-cell.js.map +1 -1
  341. package/dist/table/components/cells/number-cell.d.ts +1 -1
  342. package/dist/table/components/cells/number-cell.js +1 -1
  343. package/dist/table/components/cells/number-cell.js.map +1 -1
  344. package/dist/table/components/cells/stack-cell.d.ts +1 -1
  345. package/dist/table/components/cells/stack-cell.js +3 -7
  346. package/dist/table/components/cells/stack-cell.js.map +1 -1
  347. package/dist/table/components/cells/text-cell.d.ts +1 -1
  348. package/dist/table/components/cells/text-cell.js +4 -4
  349. package/dist/table/components/cells/text-cell.js.map +1 -1
  350. package/dist/table/components/column-filter-control.d.ts +3 -3
  351. package/dist/table/components/column-filter-control.js +34 -19
  352. package/dist/table/components/column-filter-control.js.map +1 -1
  353. package/dist/table/components/column-header.d.ts +1 -1
  354. package/dist/table/components/column-header.js +7 -7
  355. package/dist/table/components/column-header.js.map +1 -1
  356. package/dist/table/components/column-visibility-menu.d.ts +1 -1
  357. package/dist/table/components/column-visibility-menu.js +3 -3
  358. package/dist/table/components/column-visibility-menu.js.map +1 -1
  359. package/dist/table/components/filter-bar.d.ts +9 -7
  360. package/dist/table/components/filter-bar.js +62 -52
  361. package/dist/table/components/filter-bar.js.map +1 -1
  362. package/dist/table/components/filter-controls.d.ts +5 -9
  363. package/dist/table/components/filter-controls.js +96 -224
  364. package/dist/table/components/filter-controls.js.map +1 -1
  365. package/dist/table/components/filter-value-input.d.ts +1 -1
  366. package/dist/table/components/filter-value-input.js +1 -1
  367. package/dist/table/components/filter-value-input.js.map +1 -1
  368. package/dist/table/components/pagination.d.ts +2 -2
  369. package/dist/table/components/pagination.js.map +1 -1
  370. package/dist/table/components/sort-bar.d.ts +1 -1
  371. package/dist/table/components/sort-bar.js +2 -2
  372. package/dist/table/components/sort-bar.js.map +1 -1
  373. package/dist/table/components/table-action-node.d.ts +1 -1
  374. package/dist/table/components/table-action-node.js +1 -1
  375. package/dist/table/components/table-action-node.js.map +1 -1
  376. package/dist/table/components/table-cell.d.ts +1 -1
  377. package/dist/table/components/table-cell.js +2 -2
  378. package/dist/table/components/table-cell.js.map +1 -1
  379. package/dist/table/components/table.d.ts +1 -1
  380. package/dist/table/components/table.js +23 -31
  381. package/dist/table/components/table.js.map +1 -1
  382. package/dist/{core → table/hooks}/use-column-visibility.d.ts +5 -3
  383. package/dist/{core → table/hooks}/use-column-visibility.js +4 -4
  384. package/dist/table/hooks/use-column-visibility.js.map +1 -0
  385. package/dist/table/{use-table-selection.js → hooks/use-table-selection.js} +1 -1
  386. package/dist/table/hooks/use-table-selection.js.map +1 -0
  387. package/dist/table/{use-table.d.ts → hooks/use-table.d.ts} +7 -7
  388. package/dist/table/{use-table.js → hooks/use-table.js} +12 -9
  389. package/dist/table/hooks/use-table.js.map +1 -0
  390. package/dist/table/index.d.ts +6 -1
  391. package/dist/table/index.js +5 -11
  392. package/dist/table/{align.d.ts → lib/align.d.ts} +1 -1
  393. package/dist/table/{align.js → lib/align.js} +1 -1
  394. package/dist/table/lib/align.js.map +1 -0
  395. package/dist/table/{bulk.d.ts → lib/bulk.d.ts} +3 -3
  396. package/dist/table/{bulk.js → lib/bulk.js} +1 -1
  397. package/dist/table/lib/bulk.js.map +1 -0
  398. package/dist/table/{filter-values.d.ts → lib/filter-values.d.ts} +10 -3
  399. package/dist/table/{filter-values.js → lib/filter-values.js} +14 -4
  400. package/dist/table/lib/filter-values.js.map +1 -0
  401. package/dist/table/{format.d.ts → lib/format.d.ts} +2 -2
  402. package/dist/table/{format.js → lib/format.js} +3 -3
  403. package/dist/table/lib/format.js.map +1 -0
  404. package/dist/table/{payload.d.ts → lib/payload.d.ts} +2 -3
  405. package/dist/table/{payload.js → lib/payload.js} +12 -9
  406. package/dist/table/lib/payload.js.map +1 -0
  407. package/dist/table/{query.d.ts → lib/query.d.ts} +3 -3
  408. package/dist/table/{query.js → lib/query.js} +27 -27
  409. package/dist/table/lib/query.js.map +1 -0
  410. package/dist/table/plugin.d.ts +2 -0
  411. package/dist/table/plugin.js +11 -0
  412. package/dist/table/plugin.js.map +1 -0
  413. package/dist/table/registry.d.ts +3 -1
  414. package/dist/table/registry.js.map +1 -1
  415. package/dist/table/types.d.ts +57 -7
  416. package/dist/toast/callout.d.ts +1 -1
  417. package/dist/toast/callout.js.map +1 -1
  418. package/dist/toast/index.d.ts +6 -5
  419. package/dist/toast/index.js +2 -1
  420. package/dist/toast/toast.d.ts +1 -1
  421. package/dist/toast/toaster.js.map +1 -1
  422. package/dist/toast/variant-styles.d.ts +1 -1
  423. package/dist/types/generated.d.ts +118 -64
  424. package/dist/types/index.d.ts +1 -1
  425. package/dist/{action/components → ui}/action-menu-context.js +1 -1
  426. package/dist/ui/action-menu-context.js.map +1 -0
  427. package/dist/{form/components/base → ui}/affix-group.d.ts +1 -1
  428. package/dist/{form/components/base → ui}/affix-group.js +3 -3
  429. package/dist/ui/affix-group.js.map +1 -0
  430. package/dist/{core/components → ui}/badge.d.ts +1 -1
  431. package/dist/{core/components → ui}/badge.js +2 -2
  432. package/dist/ui/badge.js.map +1 -0
  433. package/dist/{core/components → ui}/button.d.ts +2 -2
  434. package/dist/{core/components → ui}/button.js +5 -5
  435. package/dist/ui/button.js.map +1 -0
  436. package/dist/{core/components → ui}/card.d.ts +1 -1
  437. package/dist/{core/components → ui}/card.js +3 -3
  438. package/dist/ui/card.js.map +1 -0
  439. package/dist/{core/components → ui}/chart-view.d.ts +1 -1
  440. package/dist/{core/components → ui}/chart-view.js +5 -5
  441. package/dist/ui/chart-view.js.map +1 -0
  442. package/dist/{core/components → ui}/chart.d.ts +1 -1
  443. package/dist/{core/components → ui}/chart.js +1 -1
  444. package/dist/ui/chart.js.map +1 -0
  445. package/dist/{core/components → ui}/checkbox.js +3 -3
  446. package/dist/ui/checkbox.js.map +1 -0
  447. package/dist/{core/use-click-behavior.d.ts → ui/click-behavior.d.ts} +17 -19
  448. package/dist/ui/click-behavior.js +46 -0
  449. package/dist/ui/click-behavior.js.map +1 -0
  450. package/dist/{core/components → ui}/collapsible.d.ts +1 -1
  451. package/dist/{core/components → ui}/collapsible.js +6 -6
  452. package/dist/ui/collapsible.js.map +1 -0
  453. package/dist/{core/components → ui}/combobox.d.ts +1 -1
  454. package/dist/{core/components → ui}/combobox.js +4 -4
  455. package/dist/ui/combobox.js.map +1 -0
  456. package/dist/{core/components → ui}/confirm-dialog.d.ts +1 -1
  457. package/dist/{core/components → ui}/confirm-dialog.js +1 -1
  458. package/dist/ui/confirm-dialog.js.map +1 -0
  459. package/dist/{core/components → ui}/control.d.ts +1 -1
  460. package/dist/{core/components → ui}/control.js +1 -1
  461. package/dist/ui/control.js.map +1 -0
  462. package/dist/{clipboard → ui}/copyable-text.d.ts +1 -0
  463. package/dist/{clipboard → ui}/copyable-text.js +11 -3
  464. package/dist/ui/copyable-text.js.map +1 -0
  465. package/dist/{core/components → ui}/dialog.js +3 -3
  466. package/dist/ui/dialog.js.map +1 -0
  467. package/dist/{core/components → ui}/dropdown-menu.d.ts +1 -1
  468. package/dist/{core/components → ui}/dropdown-menu.js +3 -3
  469. package/dist/ui/dropdown-menu.js.map +1 -0
  470. package/dist/{core/components → ui}/floating-panel.d.ts +1 -1
  471. package/dist/{core/components → ui}/floating-panel.js +4 -4
  472. package/dist/ui/floating-panel.js.map +1 -0
  473. package/dist/{core/components → ui}/fragment.d.ts +1 -1
  474. package/dist/{core/components → ui}/fragment.js +5 -5
  475. package/dist/ui/fragment.js.map +1 -0
  476. package/dist/{core/components → ui}/grid.d.ts +1 -1
  477. package/dist/{core/components → ui}/grid.js +3 -3
  478. package/dist/ui/grid.js.map +1 -0
  479. package/dist/{core/components → ui}/heading.d.ts +1 -1
  480. package/dist/{core/components → ui}/heading.js +2 -2
  481. package/dist/ui/heading.js.map +1 -0
  482. package/dist/{core/components → ui}/icon.d.ts +1 -1
  483. package/dist/{core/components → ui}/icon.js +3 -3
  484. package/dist/ui/icon.js.map +1 -0
  485. package/dist/ui/index.d.ts +27 -0
  486. package/dist/ui/index.js +26 -0
  487. package/dist/{core/components → ui}/info-tooltip.js +3 -3
  488. package/dist/ui/info-tooltip.js.map +1 -0
  489. package/dist/{form/components/base → ui}/input-error.js +2 -2
  490. package/dist/ui/input-error.js.map +1 -0
  491. package/dist/{form/components/base → ui}/input-otp.js +2 -2
  492. package/dist/ui/input-otp.js.map +1 -0
  493. package/dist/{form/components/base → ui}/input.js +3 -3
  494. package/dist/ui/input.js.map +1 -0
  495. package/dist/{form/components/base → ui}/label.js +2 -2
  496. package/dist/ui/label.js.map +1 -0
  497. package/dist/{core/components → ui}/link.d.ts +1 -1
  498. package/dist/{core/components → ui}/link.js +8 -7
  499. package/dist/ui/link.js.map +1 -0
  500. package/dist/{core/components → ui}/modal.d.ts +1 -1
  501. package/dist/{core/components → ui}/modal.js +2 -2
  502. package/dist/ui/modal.js.map +1 -0
  503. package/dist/{form/components/base → ui}/password-input.js +3 -3
  504. package/dist/ui/password-input.js.map +1 -0
  505. package/dist/ui/plugin.d.ts +1 -0
  506. package/dist/{core/components/index.js → ui/plugin.js} +6 -6
  507. package/dist/ui/plugin.js.map +1 -0
  508. package/dist/{core/components → ui}/popover.js +2 -2
  509. package/dist/ui/popover.js.map +1 -0
  510. package/dist/{core/components → ui}/raw-block.d.ts +1 -1
  511. package/dist/{core/components → ui}/raw-block.js +1 -1
  512. package/dist/ui/raw-block.js.map +1 -0
  513. package/dist/{core/components → ui}/section.d.ts +1 -1
  514. package/dist/{core/components → ui}/section.js +6 -6
  515. package/dist/ui/section.js.map +1 -0
  516. package/dist/{core/components → ui}/segmented-control.d.ts +1 -1
  517. package/dist/{core/components → ui}/segmented-control.js +1 -1
  518. package/dist/ui/segmented-control.js.map +1 -0
  519. package/dist/{core/components → ui}/segmented-pills.d.ts +1 -1
  520. package/dist/{core/components → ui}/segmented-pills.js +2 -2
  521. package/dist/ui/segmented-pills.js.map +1 -0
  522. package/dist/{core/components → ui}/skeleton.js +2 -2
  523. package/dist/ui/skeleton.js.map +1 -0
  524. package/dist/{core/components → ui}/spinner.js +4 -4
  525. package/dist/ui/spinner.js.map +1 -0
  526. package/dist/{core/components → ui}/stack.d.ts +1 -1
  527. package/dist/{core/components → ui}/stack.js +3 -3
  528. package/dist/ui/stack.js.map +1 -0
  529. package/dist/{core/components → ui}/tabs.d.ts +1 -1
  530. package/dist/{core/components → ui}/tabs.js +3 -3
  531. package/dist/ui/tabs.js.map +1 -0
  532. package/dist/{core/components → ui}/text.d.ts +1 -1
  533. package/dist/{core/components → ui}/text.js +4 -4
  534. package/dist/ui/text.js.map +1 -0
  535. package/dist/{form/components/base → ui}/textarea.js +3 -3
  536. package/dist/ui/textarea.js.map +1 -0
  537. package/dist/{core/components → ui}/tooltip.d.ts +1 -1
  538. package/dist/{core/components → ui}/tooltip.js +3 -3
  539. package/dist/ui/tooltip.js.map +1 -0
  540. package/dist/vite.js +2 -2
  541. package/dist/vite.js.map +1 -1
  542. package/package.json +28 -94
  543. package/resources/icons/align-center.svg +1 -1
  544. package/resources/icons/align-justify.svg +1 -1
  545. package/resources/icons/align-left.svg +1 -1
  546. package/resources/icons/align-right.svg +1 -1
  547. package/resources/icons/arrow-down.svg +1 -1
  548. package/resources/icons/arrow-up.svg +1 -1
  549. package/resources/icons/bell.svg +1 -1
  550. package/resources/icons/bold.svg +1 -1
  551. package/resources/icons/calendar.svg +1 -1
  552. package/resources/icons/check.svg +1 -1
  553. package/resources/icons/chevron-down.svg +1 -1
  554. package/resources/icons/chevron-left.svg +1 -1
  555. package/resources/icons/chevron-right.svg +1 -1
  556. package/resources/icons/chevrons-up-down.svg +1 -1
  557. package/resources/icons/circle-alert.svg +1 -1
  558. package/resources/icons/circle-check.svg +1 -1
  559. package/resources/icons/circle-help.svg +1 -1
  560. package/resources/icons/circle-x.svg +1 -1
  561. package/resources/icons/clock.svg +1 -1
  562. package/resources/icons/code.svg +1 -1
  563. package/resources/icons/columns-3.svg +1 -1
  564. package/resources/icons/copy.svg +1 -1
  565. package/resources/icons/external-link.svg +1 -1
  566. package/resources/icons/eye-off.svg +1 -1
  567. package/resources/icons/eye.svg +1 -1
  568. package/resources/icons/filter.svg +1 -1
  569. package/resources/icons/heading-1.svg +1 -1
  570. package/resources/icons/heading-2.svg +1 -1
  571. package/resources/icons/heading-3.svg +1 -1
  572. package/resources/icons/highlighter.svg +1 -1
  573. package/resources/icons/info.svg +1 -1
  574. package/resources/icons/italic.svg +1 -1
  575. package/resources/icons/layout-dashboard.svg +1 -1
  576. package/resources/icons/link.svg +1 -1
  577. package/resources/icons/list-ordered.svg +1 -1
  578. package/resources/icons/list.svg +1 -1
  579. package/resources/icons/loader-2.svg +1 -1
  580. package/resources/icons/minus.svg +1 -1
  581. package/resources/icons/more-horizontal.svg +1 -1
  582. package/resources/icons/panel-left.svg +1 -1
  583. package/resources/icons/pencil-line.svg +1 -1
  584. package/resources/icons/pencil.svg +1 -1
  585. package/resources/icons/plus.svg +1 -1
  586. package/resources/icons/quote.svg +1 -1
  587. package/resources/icons/rotate-ccw.svg +1 -1
  588. package/resources/icons/rows-3.svg +1 -1
  589. package/resources/icons/search.svg +1 -1
  590. package/resources/icons/send.svg +1 -1
  591. package/resources/icons/settings.svg +1 -1
  592. package/resources/icons/smile.svg +1 -1
  593. package/resources/icons/strikethrough.svg +1 -1
  594. package/resources/icons/table.svg +1 -1
  595. package/resources/icons/trash-2.svg +1 -1
  596. package/resources/icons/underline.svg +1 -1
  597. package/resources/icons/x.svg +1 -1
  598. package/dist/action/components/action-menu-context.js.map +0 -1
  599. package/dist/action/index.js.map +0 -1
  600. package/dist/action/run-action.js.map +0 -1
  601. package/dist/action/use-action.js.map +0 -1
  602. package/dist/chat/index.js.map +0 -1
  603. package/dist/chat/transport.js.map +0 -1
  604. package/dist/chat/use-chat.js.map +0 -1
  605. package/dist/clipboard/copyable-text.js.map +0 -1
  606. package/dist/core/column-sizing.js.map +0 -1
  607. package/dist/core/components/badge.js.map +0 -1
  608. package/dist/core/components/button.js.map +0 -1
  609. package/dist/core/components/card.js.map +0 -1
  610. package/dist/core/components/chart-view.js.map +0 -1
  611. package/dist/core/components/chart.js.map +0 -1
  612. package/dist/core/components/checkbox.js.map +0 -1
  613. package/dist/core/components/collapsible.js.map +0 -1
  614. package/dist/core/components/combobox.js.map +0 -1
  615. package/dist/core/components/confirm-dialog.js.map +0 -1
  616. package/dist/core/components/control.js.map +0 -1
  617. package/dist/core/components/dialog.js.map +0 -1
  618. package/dist/core/components/dropdown-menu.js.map +0 -1
  619. package/dist/core/components/floating-panel.js.map +0 -1
  620. package/dist/core/components/fragment.js.map +0 -1
  621. package/dist/core/components/grid.js.map +0 -1
  622. package/dist/core/components/heading.js.map +0 -1
  623. package/dist/core/components/icon.js.map +0 -1
  624. package/dist/core/components/index.d.ts +0 -1
  625. package/dist/core/components/index.js.map +0 -1
  626. package/dist/core/components/info-tooltip.js.map +0 -1
  627. package/dist/core/components/link.js.map +0 -1
  628. package/dist/core/components/modal.js.map +0 -1
  629. package/dist/core/components/popover.js.map +0 -1
  630. package/dist/core/components/raw-block.js.map +0 -1
  631. package/dist/core/components/section.js.map +0 -1
  632. package/dist/core/components/segmented-control.js.map +0 -1
  633. package/dist/core/components/segmented-pills.js.map +0 -1
  634. package/dist/core/components/skeleton.js.map +0 -1
  635. package/dist/core/components/spinner.js.map +0 -1
  636. package/dist/core/components/stack.js.map +0 -1
  637. package/dist/core/components/tabs.js.map +0 -1
  638. package/dist/core/components/text.js.map +0 -1
  639. package/dist/core/components/tooltip.js.map +0 -1
  640. package/dist/core/use-click-behavior.js +0 -46
  641. package/dist/core/use-click-behavior.js.map +0 -1
  642. package/dist/core/use-column-resizing.js.map +0 -1
  643. package/dist/core/use-column-visibility.js.map +0 -1
  644. package/dist/events/event-bridge.js.map +0 -1
  645. package/dist/form/components/base/affix-group.js.map +0 -1
  646. package/dist/form/components/base/input-error.js.map +0 -1
  647. package/dist/form/components/base/input-otp.js.map +0 -1
  648. package/dist/form/components/base/input.js.map +0 -1
  649. package/dist/form/components/base/label.js.map +0 -1
  650. package/dist/form/components/base/password-input.js.map +0 -1
  651. package/dist/form/components/base/textarea.js.map +0 -1
  652. package/dist/form/components/conditions.js.map +0 -1
  653. package/dist/form/components/context.js.map +0 -1
  654. package/dist/form/components/field-props.js.map +0 -1
  655. package/dist/form/components/field-scope.js.map +0 -1
  656. package/dist/form/components/fields/block-add-menu.js.map +0 -1
  657. package/dist/form/components/form-path.js.map +0 -1
  658. package/dist/form/components/form-transport.js +0 -30
  659. package/dist/form/components/form-transport.js.map +0 -1
  660. package/dist/form/components/override-keys.js +0 -12
  661. package/dist/form/components/override-keys.js.map +0 -1
  662. package/dist/form/components/prefill-context.js.map +0 -1
  663. package/dist/form/components/prefill-targets.js.map +0 -1
  664. package/dist/form/components/resolved-nodes.js.map +0 -1
  665. package/dist/form/components/row-layout-context.js.map +0 -1
  666. package/dist/form/components/use-controlled-field.js.map +0 -1
  667. package/dist/form/components/use-dependent-field.d.ts +0 -3
  668. package/dist/form/components/use-dependent-field.js.map +0 -1
  669. package/dist/form/components/use-field-commit.js.map +0 -1
  670. package/dist/form/components/use-form-resolver.js.map +0 -1
  671. package/dist/form/components/use-seed-default.js.map +0 -1
  672. package/dist/form/components/values.js +0 -52
  673. package/dist/form/components/values.js.map +0 -1
  674. package/dist/form/index.js.map +0 -1
  675. package/dist/layout/breadcrumbs.js.map +0 -1
  676. package/dist/layout/callouts.js.map +0 -1
  677. package/dist/layout/components.d.ts +0 -1
  678. package/dist/layout/components.js.map +0 -1
  679. package/dist/layout/context.js.map +0 -1
  680. package/dist/layout/dropdown.js.map +0 -1
  681. package/dist/layout/menu-item.js.map +0 -1
  682. package/dist/layout/menu.js.map +0 -1
  683. package/dist/layout/outlet.js.map +0 -1
  684. package/dist/layout/popover.js.map +0 -1
  685. package/dist/layout/schema-layout.js.map +0 -1
  686. package/dist/layout/sidebar.js.map +0 -1
  687. package/dist/layout/topbar.js.map +0 -1
  688. package/dist/notifications/index.js.map +0 -1
  689. package/dist/remote/index.js.map +0 -1
  690. package/dist/svg-sprite-client/index.d.ts +0 -1
  691. package/dist/svg-sprite-client/index.js +0 -0
  692. package/dist/table/align.js.map +0 -1
  693. package/dist/table/bulk.js.map +0 -1
  694. package/dist/table/components/filter-stack-bar.d.ts +0 -7
  695. package/dist/table/components/filter-stack-bar.js +0 -38
  696. package/dist/table/components/filter-stack-bar.js.map +0 -1
  697. package/dist/table/filter-values.js.map +0 -1
  698. package/dist/table/format.js.map +0 -1
  699. package/dist/table/index.js.map +0 -1
  700. package/dist/table/payload.js.map +0 -1
  701. package/dist/table/query.js.map +0 -1
  702. package/dist/table/use-table-selection.js.map +0 -1
  703. package/dist/table/use-table.js.map +0 -1
  704. package/dist/types/generated.js +0 -0
  705. package/dist/types/index.js +0 -0
  706. /package/dist/form/{components → hooks}/field-scope.d.ts +0 -0
  707. /package/dist/form/{components → hooks}/prefill-context.d.ts +0 -0
  708. /package/dist/form/{components → hooks}/row-layout-context.d.ts +0 -0
  709. /package/dist/form/{components → hooks}/use-seed-default.d.ts +0 -0
  710. /package/dist/form/{components → lib}/form-path.d.ts +0 -0
  711. /package/dist/form/{components → lib}/override-keys.d.ts +0 -0
  712. /package/dist/form/{components/types.js → types.js} +0 -0
  713. /package/dist/layout/{popover.d.ts → components/popover.d.ts} +0 -0
  714. /package/dist/layout/{schema-layout.d.ts → components/schema-layout.d.ts} +0 -0
  715. /package/dist/table/{use-table-selection.d.ts → hooks/use-table-selection.d.ts} +0 -0
  716. /package/dist/{action/components → ui}/action-menu-context.d.ts +0 -0
  717. /package/dist/{core/components → ui}/checkbox.d.ts +0 -0
  718. /package/dist/{core/components → ui}/dialog.d.ts +0 -0
  719. /package/dist/{core/components → ui}/info-tooltip.d.ts +0 -0
  720. /package/dist/{form/components/base → ui}/input-error.d.ts +0 -0
  721. /package/dist/{form/components/base → ui}/input-otp.d.ts +0 -0
  722. /package/dist/{form/components/base → ui}/input.d.ts +0 -0
  723. /package/dist/{form/components/base → ui}/label.d.ts +0 -0
  724. /package/dist/{form/components/base → ui}/password-input.d.ts +0 -0
  725. /package/dist/{core/components → ui}/popover.d.ts +0 -0
  726. /package/dist/{core/components → ui}/skeleton.d.ts +0 -0
  727. /package/dist/{core/components → ui}/spinner.d.ts +0 -0
  728. /package/dist/{form/components/base → ui}/textarea.d.ts +0 -0
@@ -0,0 +1,21 @@
1
+ import { apiFetch } from "../../core/api.js";
2
+ //#region resources/js/form/lib/form-transport.ts
3
+ /**
4
+ * Shared client transport for the lattice form endpoint: every form sub-action
5
+ * (validation resolve, option search) POSTs to the same signed URL, so the
6
+ * request shape lives here once.
7
+ */
8
+ var FORM_DEBOUNCE_MS = 250;
9
+ function postFormAction(action, componentRef, body, signal) {
10
+ return apiFetch(action, {
11
+ method: "POST",
12
+ ref: componentRef,
13
+ signal,
14
+ body: JSON.stringify(body),
15
+ throwOnError: false
16
+ }).then((response) => response.ok ? response.json() : null);
17
+ }
18
+ //#endregion
19
+ export { FORM_DEBOUNCE_MS, postFormAction };
20
+
21
+ //# sourceMappingURL=form-transport.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-transport.js","names":[],"sources":["../../../resources/js/form/lib/form-transport.ts"],"sourcesContent":["/**\n * Shared client transport for the lattice form endpoint: every form sub-action\n * (validation resolve, option search) POSTs to the same signed URL, so the\n * request shape lives here once.\n */\n\nimport { apiFetch } from \"@lattice-php/lattice/core/api\";\n\nexport const FORM_DEBOUNCE_MS = 250;\n\nexport function postFormAction<T>(\n action: string,\n componentRef: string,\n body: Record<string, unknown>,\n signal: AbortSignal,\n): Promise<T | null> {\n return apiFetch(action, {\n method: \"POST\",\n ref: componentRef,\n signal,\n body: JSON.stringify(body),\n throwOnError: false,\n }).then((response) => (response.ok ? (response.json() as Promise<T>) : null));\n}\n"],"mappings":";;;;;;;AAQA,IAAa,mBAAmB;AAEhC,SAAgB,eACd,QACA,cACA,MACA,QACmB;CACnB,OAAO,SAAS,QAAQ;EACtB,QAAQ;EACR,KAAK;EACL;EACA,MAAM,KAAK,UAAU,IAAI;EACzB,cAAc;CAChB,CAAC,EAAE,MAAM,aAAc,SAAS,KAAM,SAAS,KAAK,IAAmB,IAAK;AAC9E"}
@@ -0,0 +1,12 @@
1
+ import { ROW_ID_KEY } from "../components/fields/repeater-rows.js";
2
+ //#region resources/js/form/lib/override-keys.ts
3
+ function rowIdFrom(row) {
4
+ return typeof row["rowId"] === "string" ? row[ROW_ID_KEY] : null;
5
+ }
6
+ function buildOverrideKey(base, rowId, index, name) {
7
+ return `${base}.${rowId ?? String(index)}.${name}`;
8
+ }
9
+ //#endregion
10
+ export { buildOverrideKey, rowIdFrom };
11
+
12
+ //# sourceMappingURL=override-keys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"override-keys.js","names":[],"sources":["../../../resources/js/form/lib/override-keys.ts"],"sourcesContent":["import { ROW_ID_KEY } from \"@lattice-php/lattice/form/components/fields/repeater-rows\";\n\nexport function rowIdFrom(row: Record<string, unknown>): string | null {\n return typeof row[ROW_ID_KEY] === \"string\" ? row[ROW_ID_KEY] : null;\n}\n\nexport function buildOverrideKey(\n base: string,\n rowId: string | null,\n index: number,\n name: string,\n): string {\n return `${base}.${rowId ?? String(index)}.${name}`;\n}\n"],"mappings":";;AAEA,SAAgB,UAAU,KAA6C;CACrE,OAAO,OAAO,IAAA,aAAoB,WAAW,IAAI,cAAc;AACjE;AAEA,SAAgB,iBACd,MACA,OACA,OACA,MACQ;CACR,OAAO,GAAG,KAAK,GAAG,SAAS,OAAO,KAAK,EAAE,GAAG;AAC9C"}
@@ -1,4 +1,4 @@
1
- import { Node } from '../../core/types';
1
+ import { Node } from '../../core/types.js';
2
2
  type PrefillTarget = {
3
3
  path: string;
4
4
  overrideKey: string;
@@ -9,7 +9,7 @@ type PrefillSnapshot = {
9
9
  targets: PrefillTarget[];
10
10
  values: Record<string, unknown>;
11
11
  };
12
- export { getPath } from './form-path';
12
+ export { getPath } from './form-path.js';
13
13
  export declare function collectPrefillTargets(nodes: Node[] | undefined, values: Record<string, unknown>): PrefillTarget[];
14
14
  export declare function pathsToClear(previous: PrefillSnapshot, next: PrefillSnapshot): string[];
15
15
  export declare function seededOverrides(targets: PrefillTarget[], values: Record<string, unknown>): string[];
@@ -1,7 +1,8 @@
1
1
  import { fieldProps } from "./field-props.js";
2
2
  import { appendPath, getPath } from "./form-path.js";
3
3
  import { buildOverrideKey, rowIdFrom } from "./override-keys.js";
4
- //#region resources/js/form/components/prefill-targets.ts
4
+ import { rowSchemaFor } from "../components/fields/row-templates.js";
5
+ //#region resources/js/form/lib/prefill-targets.ts
5
6
  var ROW_COLLECTION_TYPES = new Set(["field.builder", "field.repeater"]);
6
7
  function mapDep(dep, rowPath) {
7
8
  if (dep.startsWith("@")) return dep.slice(1);
@@ -28,10 +29,8 @@ function collectPrefillTargets(nodes, values) {
28
29
  const childCollectionPath = appendPath(rowPath, name);
29
30
  const childIdentityCollectionPath = appendPath(identityRowPath, name);
30
31
  const storedRows = getPath(values, childCollectionPath);
31
- const rows = Array.isArray(storedRows) ? storedRows : [];
32
- const blocks = node.blocks;
33
- rows.forEach((childRow, childIndex) => {
34
- walk(blocks ? blocks.find((block) => block.type === childRow.type)?.schema ?? [] : node.schema ?? [], appendPath(childCollectionPath, childIndex), appendPath(childIdentityCollectionPath, rowIdFrom(childRow) ?? childIndex), childIdentityCollectionPath, childIndex, childRow);
32
+ (Array.isArray(storedRows) ? storedRows : []).forEach((childRow, childIndex) => {
33
+ walk(rowSchemaFor(node, childRow), appendPath(childCollectionPath, childIndex), appendPath(childIdentityCollectionPath, rowIdFrom(childRow) ?? childIndex), childIdentityCollectionPath, childIndex, childRow);
35
34
  });
36
35
  }
37
36
  continue;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prefill-targets.js","names":[],"sources":["../../../resources/js/form/lib/prefill-targets.ts"],"sourcesContent":["import type { Node } from \"@lattice-php/lattice/core/types\";\nimport { fieldProps } from \"./field-props\";\nimport { rowSchemaFor } from \"@lattice-php/lattice/form/components/fields/row-templates\";\nimport { appendPath, getPath } from \"./form-path\";\nimport { buildOverrideKey, rowIdFrom } from \"./override-keys\";\n\ntype PrefillTarget = {\n path: string;\n overrideKey: string;\n resetOn: string[];\n refreshOn: string[];\n};\n\ntype PrefillSnapshot = {\n targets: PrefillTarget[];\n values: Record<string, unknown>;\n};\n\nconst ROW_COLLECTION_TYPES = new Set([\"field.builder\", \"field.repeater\"]);\n\nexport { getPath } from \"./form-path\";\n\nfunction mapDep(dep: string, rowPath: string | null): string {\n if (dep.startsWith(\"@\")) {\n return dep.slice(1);\n }\n\n return rowPath === null ? dep : appendPath(rowPath, dep);\n}\n\nfunction targetFor(\n node: Node,\n rowPath: string | null,\n identityCollectionPath: string | null,\n index = 0,\n row: Record<string, unknown> = {},\n): PrefillTarget | null {\n const props = fieldProps(node);\n\n if (!props.editablePrefill || !props.name) {\n return null;\n }\n\n const rowId = rowIdFrom(row);\n\n return {\n path: rowPath === null ? props.name : appendPath(rowPath, props.name),\n overrideKey:\n identityCollectionPath === null\n ? props.name\n : buildOverrideKey(identityCollectionPath, rowId, index, props.name),\n resetOn: (props.prefillResetOn ?? []).map((dep) => mapDep(dep, rowPath)),\n refreshOn: (props.prefillRefreshOn ?? []).map((dep) => mapDep(dep, rowPath)),\n };\n}\n\nexport function collectPrefillTargets(\n nodes: Node[] | undefined,\n values: Record<string, unknown>,\n): PrefillTarget[] {\n const targets: PrefillTarget[] = [];\n\n const walk = (\n list: Node[] | undefined,\n rowPath: string | null = null,\n identityRowPath: string | null = null,\n identityCollectionPath: string | null = null,\n index = 0,\n row: Record<string, unknown> = {},\n ): void => {\n for (const node of list ?? []) {\n if (ROW_COLLECTION_TYPES.has(node.type)) {\n const name = fieldProps(node).name;\n if (name) {\n const childCollectionPath = appendPath(rowPath, name);\n const childIdentityCollectionPath = appendPath(identityRowPath, name);\n const storedRows = getPath(values, childCollectionPath);\n const rows = Array.isArray(storedRows)\n ? (storedRows as Array<Record<string, unknown>>)\n : [];\n rows.forEach((childRow, childIndex) => {\n walk(\n rowSchemaFor(node, childRow),\n appendPath(childCollectionPath, childIndex),\n appendPath(childIdentityCollectionPath, rowIdFrom(childRow) ?? childIndex),\n childIdentityCollectionPath,\n childIndex,\n childRow,\n );\n });\n }\n\n continue;\n }\n\n const target = targetFor(node, rowPath, identityCollectionPath, index, row);\n if (target) {\n targets.push(target);\n }\n\n walk(node.schema, rowPath, identityRowPath, identityCollectionPath, index, row);\n }\n };\n\n walk(nodes);\n\n return targets;\n}\n\nexport function pathsToClear(previous: PrefillSnapshot, next: PrefillSnapshot): string[] {\n const previousByKey = new Map(\n previous.targets.map((target) => [target.overrideKey, target] as const),\n );\n\n return next.targets\n .filter((target) => {\n const previousTarget = previousByKey.get(target.overrideKey);\n\n return target.resetOn.some((dep, index) => {\n const previousDep = previousTarget?.resetOn[index] ?? dep;\n\n return !Object.is(getPath(previous.values, previousDep), getPath(next.values, dep));\n });\n })\n .map((target) => target.overrideKey);\n}\n\nexport function seededOverrides(\n targets: PrefillTarget[],\n values: Record<string, unknown>,\n): string[] {\n return targets\n .filter((target) => {\n const value = getPath(values, target.path);\n\n return value !== undefined && value !== null && value !== \"\";\n })\n .map((target) => target.overrideKey);\n}\n\nexport function pruneOverrides(overrides: Set<string>, targets: PrefillTarget[]): Set<string> {\n const liveKeys = new Set(targets.map((target) => target.overrideKey));\n\n return new Set([...overrides].filter((key) => liveKeys.has(key)));\n}\n"],"mappings":";;;;;AAkBA,IAAM,uBAAuB,IAAI,IAAI,CAAC,iBAAiB,gBAAgB,CAAC;AAIxE,SAAS,OAAO,KAAa,SAAgC;CAC3D,IAAI,IAAI,WAAW,GAAG,GACpB,OAAO,IAAI,MAAM,CAAC;CAGpB,OAAO,YAAY,OAAO,MAAM,WAAW,SAAS,GAAG;AACzD;AAEA,SAAS,UACP,MACA,SACA,wBACA,QAAQ,GACR,MAA+B,CAAC,GACV;CACtB,MAAM,QAAQ,WAAW,IAAI;CAE7B,IAAI,CAAC,MAAM,mBAAmB,CAAC,MAAM,MACnC,OAAO;CAGT,MAAM,QAAQ,UAAU,GAAG;CAE3B,OAAO;EACL,MAAM,YAAY,OAAO,MAAM,OAAO,WAAW,SAAS,MAAM,IAAI;EACpE,aACE,2BAA2B,OACvB,MAAM,OACN,iBAAiB,wBAAwB,OAAO,OAAO,MAAM,IAAI;EACvE,UAAU,MAAM,kBAAkB,CAAC,GAAG,KAAK,QAAQ,OAAO,KAAK,OAAO,CAAC;EACvE,YAAY,MAAM,oBAAoB,CAAC,GAAG,KAAK,QAAQ,OAAO,KAAK,OAAO,CAAC;CAC7E;AACF;AAEA,SAAgB,sBACd,OACA,QACiB;CACjB,MAAM,UAA2B,CAAC;CAElC,MAAM,QACJ,MACA,UAAyB,MACzB,kBAAiC,MACjC,yBAAwC,MACxC,QAAQ,GACR,MAA+B,CAAC,MACvB;EACT,KAAK,MAAM,QAAQ,QAAQ,CAAC,GAAG;GAC7B,IAAI,qBAAqB,IAAI,KAAK,IAAI,GAAG;IACvC,MAAM,OAAO,WAAW,IAAI,EAAE;IAC9B,IAAI,MAAM;KACR,MAAM,sBAAsB,WAAW,SAAS,IAAI;KACpD,MAAM,8BAA8B,WAAW,iBAAiB,IAAI;KACpE,MAAM,aAAa,QAAQ,QAAQ,mBAAmB;KAItD,CAHa,MAAM,QAAQ,UAAU,IAChC,aACD,CAAC,GACA,SAAS,UAAU,eAAe;MACrC,KACE,aAAa,MAAM,QAAQ,GAC3B,WAAW,qBAAqB,UAAU,GAC1C,WAAW,6BAA6B,UAAU,QAAQ,KAAK,UAAU,GACzE,6BACA,YACA,QACF;KACF,CAAC;IACH;IAEA;GACF;GAEA,MAAM,SAAS,UAAU,MAAM,SAAS,wBAAwB,OAAO,GAAG;GAC1E,IAAI,QACF,QAAQ,KAAK,MAAM;GAGrB,KAAK,KAAK,QAAQ,SAAS,iBAAiB,wBAAwB,OAAO,GAAG;EAChF;CACF;CAEA,KAAK,KAAK;CAEV,OAAO;AACT;AAEA,SAAgB,aAAa,UAA2B,MAAiC;CACvF,MAAM,gBAAgB,IAAI,IACxB,SAAS,QAAQ,KAAK,WAAW,CAAC,OAAO,aAAa,MAAM,CAAU,CACxE;CAEA,OAAO,KAAK,QACT,QAAQ,WAAW;EAClB,MAAM,iBAAiB,cAAc,IAAI,OAAO,WAAW;EAE3D,OAAO,OAAO,QAAQ,MAAM,KAAK,UAAU;GACzC,MAAM,cAAc,gBAAgB,QAAQ,UAAU;GAEtD,OAAO,CAAC,OAAO,GAAG,QAAQ,SAAS,QAAQ,WAAW,GAAG,QAAQ,KAAK,QAAQ,GAAG,CAAC;EACpF,CAAC;CACH,CAAC,EACA,KAAK,WAAW,OAAO,WAAW;AACvC;AAEA,SAAgB,gBACd,SACA,QACU;CACV,OAAO,QACJ,QAAQ,WAAW;EAClB,MAAM,QAAQ,QAAQ,QAAQ,OAAO,IAAI;EAEzC,OAAO,UAAU,KAAA,KAAa,UAAU,QAAQ,UAAU;CAC5D,CAAC,EACA,KAAK,WAAW,OAAO,WAAW;AACvC;AAEA,SAAgB,eAAe,WAAwB,SAAuC;CAC5F,MAAM,WAAW,IAAI,IAAI,QAAQ,KAAK,WAAW,OAAO,WAAW,CAAC;CAEpE,OAAO,IAAI,IAAI,CAAC,GAAG,SAAS,EAAE,QAAQ,QAAQ,SAAS,IAAI,GAAG,CAAC,CAAC;AAClE"}
@@ -0,0 +1 @@
1
+ export declare const formComponents: import('../core/registry.js').Plugin;
@@ -0,0 +1,47 @@
1
+ import { createPlugin, eagerComponent } from "../core/registry.js";
2
+ import { BuilderComponent } from "./components/fields/builder.js";
3
+ import { CheckboxComponent } from "./components/fields/checkbox.js";
4
+ import { ChoiceComponent } from "./components/fields/choice.js";
5
+ import { DateInputComponent } from "./components/fields/date-input.js";
6
+ import { DateTimeInputComponent } from "./components/fields/date-time-input.js";
7
+ import { FileUploadComponent } from "./components/fields/file-upload.js";
8
+ import { FormComponent } from "./components/form.js";
9
+ import { HiddenInputComponent } from "./components/fields/hidden-input.js";
10
+ import { NumberInputComponent } from "./components/fields/number-input.js";
11
+ import { OtpInputComponent } from "./components/fields/otp-input.js";
12
+ import { PasswordInputComponent } from "./components/fields/password-input.js";
13
+ import { RepeaterComponent } from "./components/fields/repeater.js";
14
+ import { SelectComponent } from "./components/fields/select.js";
15
+ import { TextareaComponent } from "./components/fields/textarea.js";
16
+ import { TextInputComponent } from "./components/fields/text-input.js";
17
+ import { TimeInputComponent } from "./components/fields/time-input.js";
18
+ import { ToggleComponent } from "./components/fields/toggle.js";
19
+ import { RichEditorComponent } from "./components/fields/rich-editor.js";
20
+ //#region resources/js/form/plugin.ts
21
+ var formComponents = createPlugin({
22
+ components: {
23
+ form: eagerComponent(FormComponent),
24
+ "field.builder": eagerComponent(BuilderComponent),
25
+ "field.checkbox": eagerComponent(CheckboxComponent),
26
+ "field.choice": eagerComponent(ChoiceComponent),
27
+ "field.date-input": eagerComponent(DateInputComponent),
28
+ "field.date-time-input": eagerComponent(DateTimeInputComponent),
29
+ "field.file-upload": eagerComponent(FileUploadComponent),
30
+ "field.hidden-input": eagerComponent(HiddenInputComponent),
31
+ "field.number-input": eagerComponent(NumberInputComponent),
32
+ "field.otp": eagerComponent(OtpInputComponent),
33
+ "field.password-input": eagerComponent(PasswordInputComponent),
34
+ "field.repeater": eagerComponent(RepeaterComponent),
35
+ "field.rich-editor": eagerComponent(RichEditorComponent),
36
+ "field.select": eagerComponent(SelectComponent),
37
+ "field.textarea": eagerComponent(TextareaComponent),
38
+ "field.text-input": eagerComponent(TextInputComponent),
39
+ "field.time-input": eagerComponent(TimeInputComponent),
40
+ "field.toggle": eagerComponent(ToggleComponent)
41
+ },
42
+ name: "lattice/form"
43
+ });
44
+ //#endregion
45
+ export { formComponents };
46
+
47
+ //# sourceMappingURL=plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.js","names":[],"sources":["../../resources/js/form/plugin.ts"],"sourcesContent":["import {\n createPlugin,\n eagerComponent,\n type ComponentRegistryFor,\n} from \"@lattice-php/lattice/core/registry\";\nimport type { FormNodeType } from \"@lattice-php/lattice/types/generated\";\nimport {\n BuilderComponent,\n CheckboxComponent,\n ChoiceComponent,\n DateInputComponent,\n DateTimeInputComponent,\n FileUploadComponent,\n FormComponent,\n HiddenInputComponent,\n NumberInputComponent,\n OtpInputComponent,\n PasswordInputComponent,\n RepeaterComponent,\n SelectComponent,\n TextareaComponent,\n TextInputComponent,\n TimeInputComponent,\n ToggleComponent,\n} from \"./components\";\nimport { RichEditorComponent } from \"./components/fields/rich-editor\";\n\nexport const formComponents = createPlugin({\n components: {\n form: eagerComponent(FormComponent),\n \"field.builder\": eagerComponent(BuilderComponent),\n \"field.checkbox\": eagerComponent(CheckboxComponent),\n \"field.choice\": eagerComponent(ChoiceComponent),\n \"field.date-input\": eagerComponent(DateInputComponent),\n \"field.date-time-input\": eagerComponent(DateTimeInputComponent),\n \"field.file-upload\": eagerComponent(FileUploadComponent),\n \"field.hidden-input\": eagerComponent(HiddenInputComponent),\n \"field.number-input\": eagerComponent(NumberInputComponent),\n \"field.otp\": eagerComponent(OtpInputComponent),\n \"field.password-input\": eagerComponent(PasswordInputComponent),\n \"field.repeater\": eagerComponent(RepeaterComponent),\n \"field.rich-editor\": eagerComponent(RichEditorComponent),\n \"field.select\": eagerComponent(SelectComponent),\n \"field.textarea\": eagerComponent(TextareaComponent),\n \"field.text-input\": eagerComponent(TextInputComponent),\n \"field.time-input\": eagerComponent(TimeInputComponent),\n \"field.toggle\": eagerComponent(ToggleComponent),\n } satisfies ComponentRegistryFor<FormNodeType>,\n name: \"lattice/form\",\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AA2BA,IAAa,iBAAiB,aAAa;CACzC,YAAY;EACV,MAAM,eAAe,aAAa;EAClC,iBAAiB,eAAe,gBAAgB;EAChD,kBAAkB,eAAe,iBAAiB;EAClD,gBAAgB,eAAe,eAAe;EAC9C,oBAAoB,eAAe,kBAAkB;EACrD,yBAAyB,eAAe,sBAAsB;EAC9D,qBAAqB,eAAe,mBAAmB;EACvD,sBAAsB,eAAe,oBAAoB;EACzD,sBAAsB,eAAe,oBAAoB;EACzD,aAAa,eAAe,iBAAiB;EAC7C,wBAAwB,eAAe,sBAAsB;EAC7D,kBAAkB,eAAe,iBAAiB;EAClD,qBAAqB,eAAe,mBAAmB;EACvD,gBAAgB,eAAe,eAAe;EAC9C,kBAAkB,eAAe,iBAAiB;EAClD,oBAAoB,eAAe,kBAAkB;EACrD,oBAAoB,eAAe,kBAAkB;EACrD,gBAAgB,eAAe,eAAe;CAChD;CACA,MAAM;AACR,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Entry point for building custom form fields outside the package. Form
3
+ * modules not re-exported here are internal and may change without notice.
4
+ */
5
+ export { FormFieldFrame } from './components/base/field.js';
6
+ export { useFormContext } from './hooks/context.js';
7
+ export { FieldScopeProvider, useFieldScope } from './hooks/field-scope.js';
8
+ export { fieldProps, walkFields } from './lib/field-props.js';
9
+ export { appendPath, getPath, setPath, toHtmlName } from './lib/form-path.js';
10
+ export { AddRowMenu, type AddRowOption } from './components/fields/add-row-menu.js';
11
+ export { ROW_ID_KEY, addRow, duplicateRow, ensureRowIds, moveRow, removeRow, seedRows, withRowId, type RepeaterRow, } from './components/fields/repeater-rows.js';
12
+ export { RowKeyInputs } from './components/fields/row-key-inputs.js';
13
+ export { rowSchemaFor, rowTemplatesOf, type RowTemplate } from './components/fields/row-templates.js';
14
+ export { useRowCollection } from './components/fields/use-row-collection.js';
15
+ export { useDependentField } from './hooks/use-dependent-field.js';
16
+ export { useFieldCommit } from './hooks/use-field-commit.js';
17
+ export { useFormValue, useFormValues, useSetFormValue } from './hooks/values.js';
@@ -0,0 +1,14 @@
1
+ import { useFormContext } from "./hooks/context.js";
2
+ import { fieldProps, walkFields } from "./lib/field-props.js";
3
+ import { appendPath, getPath, setPath, toHtmlName } from "./lib/form-path.js";
4
+ import { ROW_ID_KEY, addRow, duplicateRow, ensureRowIds, moveRow, removeRow, seedRows, withRowId } from "./components/fields/repeater-rows.js";
5
+ import { FieldScopeProvider, useFieldScope } from "./hooks/field-scope.js";
6
+ import { useFormValue, useFormValues, useSetFormValue } from "./hooks/values.js";
7
+ import { useFieldCommit } from "./hooks/use-field-commit.js";
8
+ import { rowSchemaFor, rowTemplatesOf } from "./components/fields/row-templates.js";
9
+ import { FormFieldFrame } from "./components/base/field.js";
10
+ import { useDependentField } from "./hooks/use-dependent-field.js";
11
+ import { AddRowMenu } from "./components/fields/add-row-menu.js";
12
+ import { RowKeyInputs } from "./components/fields/row-key-inputs.js";
13
+ import { useRowCollection } from "./components/fields/use-row-collection.js";
14
+ export { AddRowMenu, FieldScopeProvider, FormFieldFrame, ROW_ID_KEY, RowKeyInputs, addRow, appendPath, duplicateRow, ensureRowIds, fieldProps, getPath, moveRow, removeRow, rowSchemaFor, rowTemplatesOf, seedRows, setPath, toHtmlName, useDependentField, useFieldCommit, useFieldScope, useFormContext, useFormValue, useFormValues, useRowCollection, useSetFormValue, walkFields, withRowId };
@@ -1,7 +1,7 @@
1
1
  import { Method } from '@inertiajs/core';
2
- import { NodeUnionOf } from '../../core/types';
3
- import { FormFieldNodeType, FormNodeType } from '../../types/generated';
4
- export type { Checkbox, Choice, DateInput, DateTimeInput, Form, FormNodeType, HiddenInput, NumberInput, PasswordInput, RichEditor, Select, Textarea, TextInput, TimeInput, } from '../../types/generated';
2
+ import { NodeUnionOf } from '../core/types.js';
3
+ import { FormFieldNodeType, FormNodeType } from '../types/generated.js';
4
+ export type { Checkbox, Choice, DateInput, DateTimeInput, Form, FormNodeType, HiddenInput, NumberInput, PasswordInput, RichEditor, Select, Textarea, TextInput, TimeInput, } from '../types/generated.js';
5
5
  export type FormFieldNode = NodeUnionOf<FormFieldNodeType>;
6
6
  export type FormNode = NodeUnionOf<FormNodeType>;
7
7
  export type FormMethod = Method;
@@ -1,2 +1,2 @@
1
- import { NumberFormat } from '../types';
1
+ import { NumberFormat } from '../types/index.js';
2
2
  export declare function formatNumber(value: unknown, format: NumberFormat, locale: string): string;
@@ -1,4 +1,4 @@
1
- import { DateFormat, NumberFormat } from '../types';
1
+ import { DateFormat, NumberFormat } from '../types/index.js';
2
2
  export type Format = NumberFormat | DateFormat;
3
3
  export declare function formatValue(value: unknown, format: Format | null, ctx: {
4
4
  locale: string;
@@ -1,4 +1,4 @@
1
- import { I18nConfig } from '../types/generated';
1
+ import { I18nConfig } from '../types/generated.js';
2
2
  /** The i18n settings the backend shares to the frontend (Inertia `lattice.i18n`). */
3
3
  export type { I18nConfig };
4
4
  export type BackendOptions = {
@@ -1,4 +1,4 @@
1
- import { I18nConfig } from '../types/generated';
1
+ import { I18nConfig } from '../types/generated.js';
2
2
  type Config = {
3
3
  readonly locales: readonly string[];
4
4
  readonly timezone: string | null;
@@ -1,13 +1,13 @@
1
- export { i18n, useT, translate } from './instance';
2
- export { configureI18n, enableBackend } from './backend';
3
- export { currentLocale, localeHeader, setLocale, useLocale } from './locale';
4
- export { LocaleReload } from './locale-reload';
5
- export { LocaleSwitcher, useLocaleOptions } from './locale-switcher';
6
- export { configureI18nFromPageProps, i18nConfigFromPageProps } from './page-props';
7
- export type { BackendOptions, ConfigureI18nOptions, I18nConfig } from './backend';
8
- export type { LocaleOption, LocaleSwitcherProps, UseLocaleOptionsOptions, UseLocaleOptionsReturn, } from './locale-switcher';
9
- export type { UseLocaleReturn } from './locale';
10
- export { currentTimezone, setTimezone, useTimezone } from './timezone';
11
- export type { UseTimezoneReturn } from './timezone';
12
- export { DateTime } from './date-time';
13
- export type { DateTimeProps } from './date-time';
1
+ export { i18n, useT, translate } from './instance.js';
2
+ export { configureI18n, enableBackend } from './backend.js';
3
+ export { currentLocale, localeHeader, setLocale, useLocale } from './locale.js';
4
+ export { LocaleReload } from './locale-reload.js';
5
+ export { LocaleSwitcher, useLocaleOptions } from './locale-switcher.js';
6
+ export { configureI18nFromPageProps, i18nConfigFromPageProps } from './page-props.js';
7
+ export type { BackendOptions, ConfigureI18nOptions, I18nConfig } from './backend.js';
8
+ export type { LocaleOption, LocaleSwitcherProps, UseLocaleOptionsOptions, UseLocaleOptionsReturn, } from './locale-switcher.js';
9
+ export type { UseLocaleReturn } from './locale.js';
10
+ export { currentTimezone, setTimezone, useTimezone } from './timezone.js';
11
+ export type { UseTimezoneReturn } from './timezone.js';
12
+ export { DateTime } from './date-time.js';
13
+ export type { DateTimeProps } from './date-time.js';
@@ -1,4 +1,4 @@
1
- import { EventBridge } from "../events/event-bridge.js";
1
+ import { EventBridge } from "../event-bridge.js";
2
2
  import { router } from "@inertiajs/react";
3
3
  import { useCallback } from "react";
4
4
  import { jsx } from "react/jsx-runtime";
@@ -1 +1 @@
1
- {"version":3,"file":"locale-reload.js","names":[],"sources":["../../resources/js/i18n/locale-reload.tsx"],"sourcesContent":["import type { VisitOptions } from \"@inertiajs/core\";\nimport { router } from \"@inertiajs/react\";\nimport { useCallback } from \"react\";\nimport { EventBridge } from \"../events/event-bridge\";\n\ntype LocaleReloadProps = Pick<VisitOptions, \"preserveScroll\" | \"preserveState\">;\n\n// preserveState by default: the visit only re-fetches the re-localized props,\n// so keeping the page mounted avoids remounting the whole tree (and losing\n// table sort/filter, form input, focus) on every locale switch.\nexport function LocaleReload({ preserveScroll = true, preserveState = true }: LocaleReloadProps) {\n const reload = useCallback(() => {\n router.visit(window.location.href, { preserveScroll, preserveState });\n }, [preserveScroll, preserveState]);\n\n return <EventBridge onLocaleChange={reload} />;\n}\n"],"mappings":";;;;;AAUA,SAAgB,aAAa,EAAE,iBAAiB,MAAM,gBAAgB,QAA2B;CAK/F,OAAO,oBAAC,aAAD,EAAa,gBAJL,kBAAkB;EAC/B,OAAO,MAAM,OAAO,SAAS,MAAM;GAAE;GAAgB;EAAc,CAAC;CACtE,GAAG,CAAC,gBAAgB,aAAa,CAEG,EAAS,CAAA;AAC/C"}
1
+ {"version":3,"file":"locale-reload.js","names":[],"sources":["../../resources/js/i18n/locale-reload.tsx"],"sourcesContent":["import type { VisitOptions } from \"@inertiajs/core\";\nimport { router } from \"@inertiajs/react\";\nimport { useCallback } from \"react\";\nimport { EventBridge } from \"@lattice-php/lattice/event-bridge\";\n\ntype LocaleReloadProps = Pick<VisitOptions, \"preserveScroll\" | \"preserveState\">;\n\n// preserveState by default: the visit only re-fetches the re-localized props,\n// so keeping the page mounted avoids remounting the whole tree (and losing\n// table sort/filter, form input, focus) on every locale switch.\nexport function LocaleReload({ preserveScroll = true, preserveState = true }: LocaleReloadProps) {\n const reload = useCallback(() => {\n router.visit(window.location.href, { preserveScroll, preserveState });\n }, [preserveScroll, preserveState]);\n\n return <EventBridge onLocaleChange={reload} />;\n}\n"],"mappings":";;;;;AAUA,SAAgB,aAAa,EAAE,iBAAiB,MAAM,gBAAgB,QAA2B;CAK/F,OAAO,oBAAC,aAAD,EAAa,gBAJL,kBAAkB;EAC/B,OAAO,MAAM,OAAO,SAAS,MAAM;GAAE;GAAgB;EAAc,CAAC;CACtE,GAAG,CAAC,gBAAgB,aAAa,CAEG,EAAS,CAAA;AAC/C"}
@@ -1 +1 @@
1
- {"version":3,"file":"locale.js","names":[],"sources":["../../resources/js/i18n/locale.ts"],"sourcesContent":["import { useSyncExternalStore } from \"react\";\nimport { LATTICE_EVENT } from \"../events/event-names\";\n\nexport type UseLocaleReturn = {\n readonly locale: string;\n readonly setLocale: (locale: string) => void;\n};\n\nconst key = \"locale\";\nconst fallback = \"en\";\nconst maxAge = 365 * 24 * 60 * 60;\nconst listeners = new Set<() => void>();\n\nlet active: string | undefined;\n\nfunction normalize(value: string): string {\n const next = value.trim();\n\n return next === \"\" ? fallback : next;\n}\n\nfunction storedValue(): string | null {\n if (typeof window === \"undefined\") {\n return null;\n }\n\n try {\n return localStorage.getItem(key);\n } catch {\n return null;\n }\n}\n\nfunction cookieValue(): string | null {\n if (typeof document === \"undefined\") {\n return null;\n }\n\n const item = document.cookie\n .split(\";\")\n .map((cookie) => cookie.trim())\n .find((cookie) => cookie.startsWith(`${key}=`));\n\n if (!item) {\n return null;\n }\n\n try {\n return decodeURIComponent(item.slice(key.length + 1));\n } catch {\n return null;\n }\n}\n\nfunction documentValue(): string | null {\n if (typeof document === \"undefined\") {\n return null;\n }\n\n return document.documentElement.lang || null;\n}\n\nfunction detectedLocale(): string {\n return normalize(storedValue() ?? cookieValue() ?? documentValue() ?? fallback);\n}\n\nfunction persist(locale: string): void {\n if (typeof document !== \"undefined\") {\n document.cookie = `${key}=${encodeURIComponent(locale)};path=/;max-age=${maxAge};SameSite=Lax`;\n document.documentElement.lang = locale;\n }\n\n if (typeof window !== \"undefined\") {\n try {\n localStorage.setItem(key, locale);\n } catch {\n return;\n }\n }\n}\n\nfunction snapshot(): string {\n active ??= detectedLocale();\n\n return active;\n}\n\nfunction subscribe(callback: () => void): () => void {\n listeners.add(callback);\n\n return () => {\n listeners.delete(callback);\n };\n}\n\nfunction notify(): void {\n listeners.forEach((listener) => listener());\n}\n\nfunction dispatch(locale: string): void {\n if (typeof window === \"undefined\") {\n return;\n }\n\n window.dispatchEvent(new CustomEvent(LATTICE_EVENT.localeChange, { detail: { locale } }));\n}\n\nexport function currentLocale(): string {\n return snapshot();\n}\n\nexport function localeHeader(): Record<string, string> {\n return { \"Accept-Language\": currentLocale() };\n}\n\nexport function subscribeLocale(callback: (locale: string) => void): () => void {\n return subscribe(() => callback(currentLocale()));\n}\n\nexport function setLocale(locale: string): void {\n const previous = currentLocale();\n const next = normalize(locale);\n\n active = next;\n persist(next);\n\n if (next === previous) {\n return;\n }\n\n notify();\n dispatch(next);\n}\n\nexport function useLocale(): UseLocaleReturn {\n const locale = useSyncExternalStore(subscribe, snapshot, () => fallback);\n\n return { locale, setLocale } as const;\n}\n"],"mappings":";;;AAQA,IAAM,MAAM;AACZ,IAAM,WAAW;AACjB,IAAM,SAAS,MAAM,KAAK,KAAK;AAC/B,IAAM,4BAAY,IAAI,IAAgB;AAEtC,IAAI;AAEJ,SAAS,UAAU,OAAuB;CACxC,MAAM,OAAO,MAAM,KAAK;CAExB,OAAO,SAAS,KAAK,WAAW;AAClC;AAEA,SAAS,cAA6B;CACpC,IAAI,OAAO,WAAW,aACpB,OAAO;CAGT,IAAI;EACF,OAAO,aAAa,QAAQ,GAAG;CACjC,QAAQ;EACN,OAAO;CACT;AACF;AAEA,SAAS,cAA6B;CACpC,IAAI,OAAO,aAAa,aACtB,OAAO;CAGT,MAAM,OAAO,SAAS,OACnB,MAAM,GAAG,EACT,KAAK,WAAW,OAAO,KAAK,CAAC,EAC7B,MAAM,WAAW,OAAO,WAAW,GAAG,IAAI,EAAE,CAAC;CAEhD,IAAI,CAAC,MACH,OAAO;CAGT,IAAI;EACF,OAAO,mBAAmB,KAAK,MAAM,CAAc,CAAC;CACtD,QAAQ;EACN,OAAO;CACT;AACF;AAEA,SAAS,gBAA+B;CACtC,IAAI,OAAO,aAAa,aACtB,OAAO;CAGT,OAAO,SAAS,gBAAgB,QAAQ;AAC1C;AAEA,SAAS,iBAAyB;CAChC,OAAO,UAAU,YAAY,KAAK,YAAY,KAAK,cAAc,KAAK,QAAQ;AAChF;AAEA,SAAS,QAAQ,QAAsB;CACrC,IAAI,OAAO,aAAa,aAAa;EACnC,SAAS,SAAS,GAAG,IAAI,GAAG,mBAAmB,MAAM,EAAE,kBAAkB,OAAO;EAChF,SAAS,gBAAgB,OAAO;CAClC;CAEA,IAAI,OAAO,WAAW,aACpB,IAAI;EACF,aAAa,QAAQ,KAAK,MAAM;CAClC,QAAQ;EACN;CACF;AAEJ;AAEA,SAAS,WAAmB;CAC1B,WAAW,eAAe;CAE1B,OAAO;AACT;AAEA,SAAS,UAAU,UAAkC;CACnD,UAAU,IAAI,QAAQ;CAEtB,aAAa;EACX,UAAU,OAAO,QAAQ;CAC3B;AACF;AAEA,SAAS,SAAe;CACtB,UAAU,SAAS,aAAa,SAAS,CAAC;AAC5C;AAEA,SAAS,SAAS,QAAsB;CACtC,IAAI,OAAO,WAAW,aACpB;CAGF,OAAO,cAAc,IAAI,YAAY,cAAc,cAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;AAC1F;AAEA,SAAgB,gBAAwB;CACtC,OAAO,SAAS;AAClB;AAEA,SAAgB,eAAuC;CACrD,OAAO,EAAE,mBAAmB,cAAc,EAAE;AAC9C;AAEA,SAAgB,gBAAgB,UAAgD;CAC9E,OAAO,gBAAgB,SAAS,cAAc,CAAC,CAAC;AAClD;AAEA,SAAgB,UAAU,QAAsB;CAC9C,MAAM,WAAW,cAAc;CAC/B,MAAM,OAAO,UAAU,MAAM;CAE7B,SAAS;CACT,QAAQ,IAAI;CAEZ,IAAI,SAAS,UACX;CAGF,OAAO;CACP,SAAS,IAAI;AACf;AAEA,SAAgB,YAA6B;CAG3C,OAAO;EAAE,QAFM,qBAAqB,WAAW,gBAAgB,QAEtD;EAAQ;CAAU;AAC7B"}
1
+ {"version":3,"file":"locale.js","names":[],"sources":["../../resources/js/i18n/locale.ts"],"sourcesContent":["import { useSyncExternalStore } from \"react\";\nimport { LATTICE_EVENT } from \"@lattice-php/lattice/events/event-names\";\n\nexport type UseLocaleReturn = {\n readonly locale: string;\n readonly setLocale: (locale: string) => void;\n};\n\nconst key = \"locale\";\nconst fallback = \"en\";\nconst maxAge = 365 * 24 * 60 * 60;\nconst listeners = new Set<() => void>();\n\nlet active: string | undefined;\n\nfunction normalize(value: string): string {\n const next = value.trim();\n\n return next === \"\" ? fallback : next;\n}\n\nfunction storedValue(): string | null {\n if (typeof window === \"undefined\") {\n return null;\n }\n\n try {\n return localStorage.getItem(key);\n } catch {\n return null;\n }\n}\n\nfunction cookieValue(): string | null {\n if (typeof document === \"undefined\") {\n return null;\n }\n\n const item = document.cookie\n .split(\";\")\n .map((cookie) => cookie.trim())\n .find((cookie) => cookie.startsWith(`${key}=`));\n\n if (!item) {\n return null;\n }\n\n try {\n return decodeURIComponent(item.slice(key.length + 1));\n } catch {\n return null;\n }\n}\n\nfunction documentValue(): string | null {\n if (typeof document === \"undefined\") {\n return null;\n }\n\n return document.documentElement.lang || null;\n}\n\nfunction detectedLocale(): string {\n return normalize(storedValue() ?? cookieValue() ?? documentValue() ?? fallback);\n}\n\nfunction persist(locale: string): void {\n if (typeof document !== \"undefined\") {\n document.cookie = `${key}=${encodeURIComponent(locale)};path=/;max-age=${maxAge};SameSite=Lax`;\n document.documentElement.lang = locale;\n }\n\n if (typeof window !== \"undefined\") {\n try {\n localStorage.setItem(key, locale);\n } catch {\n return;\n }\n }\n}\n\nfunction snapshot(): string {\n active ??= detectedLocale();\n\n return active;\n}\n\nfunction subscribe(callback: () => void): () => void {\n listeners.add(callback);\n\n return () => {\n listeners.delete(callback);\n };\n}\n\nfunction notify(): void {\n listeners.forEach((listener) => listener());\n}\n\nfunction dispatch(locale: string): void {\n if (typeof window === \"undefined\") {\n return;\n }\n\n window.dispatchEvent(new CustomEvent(LATTICE_EVENT.localeChange, { detail: { locale } }));\n}\n\nexport function currentLocale(): string {\n return snapshot();\n}\n\nexport function localeHeader(): Record<string, string> {\n return { \"Accept-Language\": currentLocale() };\n}\n\nexport function subscribeLocale(callback: (locale: string) => void): () => void {\n return subscribe(() => callback(currentLocale()));\n}\n\nexport function setLocale(locale: string): void {\n const previous = currentLocale();\n const next = normalize(locale);\n\n active = next;\n persist(next);\n\n if (next === previous) {\n return;\n }\n\n notify();\n dispatch(next);\n}\n\nexport function useLocale(): UseLocaleReturn {\n const locale = useSyncExternalStore(subscribe, snapshot, () => fallback);\n\n return { locale, setLocale } as const;\n}\n"],"mappings":";;;AAQA,IAAM,MAAM;AACZ,IAAM,WAAW;AACjB,IAAM,SAAS,MAAM,KAAK,KAAK;AAC/B,IAAM,4BAAY,IAAI,IAAgB;AAEtC,IAAI;AAEJ,SAAS,UAAU,OAAuB;CACxC,MAAM,OAAO,MAAM,KAAK;CAExB,OAAO,SAAS,KAAK,WAAW;AAClC;AAEA,SAAS,cAA6B;CACpC,IAAI,OAAO,WAAW,aACpB,OAAO;CAGT,IAAI;EACF,OAAO,aAAa,QAAQ,GAAG;CACjC,QAAQ;EACN,OAAO;CACT;AACF;AAEA,SAAS,cAA6B;CACpC,IAAI,OAAO,aAAa,aACtB,OAAO;CAGT,MAAM,OAAO,SAAS,OACnB,MAAM,GAAG,EACT,KAAK,WAAW,OAAO,KAAK,CAAC,EAC7B,MAAM,WAAW,OAAO,WAAW,GAAG,IAAI,EAAE,CAAC;CAEhD,IAAI,CAAC,MACH,OAAO;CAGT,IAAI;EACF,OAAO,mBAAmB,KAAK,MAAM,CAAc,CAAC;CACtD,QAAQ;EACN,OAAO;CACT;AACF;AAEA,SAAS,gBAA+B;CACtC,IAAI,OAAO,aAAa,aACtB,OAAO;CAGT,OAAO,SAAS,gBAAgB,QAAQ;AAC1C;AAEA,SAAS,iBAAyB;CAChC,OAAO,UAAU,YAAY,KAAK,YAAY,KAAK,cAAc,KAAK,QAAQ;AAChF;AAEA,SAAS,QAAQ,QAAsB;CACrC,IAAI,OAAO,aAAa,aAAa;EACnC,SAAS,SAAS,GAAG,IAAI,GAAG,mBAAmB,MAAM,EAAE,kBAAkB,OAAO;EAChF,SAAS,gBAAgB,OAAO;CAClC;CAEA,IAAI,OAAO,WAAW,aACpB,IAAI;EACF,aAAa,QAAQ,KAAK,MAAM;CAClC,QAAQ;EACN;CACF;AAEJ;AAEA,SAAS,WAAmB;CAC1B,WAAW,eAAe;CAE1B,OAAO;AACT;AAEA,SAAS,UAAU,UAAkC;CACnD,UAAU,IAAI,QAAQ;CAEtB,aAAa;EACX,UAAU,OAAO,QAAQ;CAC3B;AACF;AAEA,SAAS,SAAe;CACtB,UAAU,SAAS,aAAa,SAAS,CAAC;AAC5C;AAEA,SAAS,SAAS,QAAsB;CACtC,IAAI,OAAO,WAAW,aACpB;CAGF,OAAO,cAAc,IAAI,YAAY,cAAc,cAAc,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;AAC1F;AAEA,SAAgB,gBAAwB;CACtC,OAAO,SAAS;AAClB;AAEA,SAAgB,eAAuC;CACrD,OAAO,EAAE,mBAAmB,cAAc,EAAE;AAC9C;AAEA,SAAgB,gBAAgB,UAAgD;CAC9E,OAAO,gBAAgB,SAAS,cAAc,CAAC,CAAC;AAClD;AAEA,SAAgB,UAAU,QAAsB;CAC9C,MAAM,WAAW,cAAc;CAC/B,MAAM,OAAO,UAAU,MAAM;CAE7B,SAAS;CACT,QAAQ,IAAI;CAEZ,IAAI,SAAS,UACX;CAGF,OAAO;CACP,SAAS,IAAI;AACf;AAEA,SAAgB,YAA6B;CAG3C,OAAO;EAAE,QAFM,qBAAqB,WAAW,gBAAgB,QAEtD;EAAQ;CAAU;AAC7B"}
@@ -1,3 +1,3 @@
1
- import { ConfigureI18nOptions, I18nConfig } from './backend';
1
+ import { ConfigureI18nOptions, I18nConfig } from './backend.js';
2
2
  export declare function i18nConfigFromPageProps(props: unknown): I18nConfig | undefined;
3
3
  export declare function configureI18nFromPageProps(props: unknown, options?: ConfigureI18nOptions): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"timezone.js","names":[],"sources":["../../resources/js/i18n/timezone.ts"],"sourcesContent":["import { useSyncExternalStore } from \"react\";\nimport { LATTICE_EVENT } from \"../events/event-names\";\nimport { configTimezone, subscribeConfig } from \"./config\";\n\nexport type UseTimezoneReturn = {\n readonly timezone: string;\n readonly setTimezone: (timezone: string) => void;\n};\n\nconst fallback = \"UTC\";\nconst listeners = new Set<() => void>();\n\nlet override: string | undefined;\n\nfunction detectedTimezone(): string {\n if (typeof Intl === \"undefined\") {\n return fallback;\n }\n\n try {\n return Intl.DateTimeFormat().resolvedOptions().timeZone || fallback;\n } catch {\n return fallback;\n }\n}\n\nfunction snapshot(): string {\n return override ?? configTimezone() ?? detectedTimezone();\n}\n\nfunction subscribe(callback: () => void): () => void {\n listeners.add(callback);\n\n return () => {\n listeners.delete(callback);\n };\n}\n\nfunction notify(): void {\n listeners.forEach((listener) => listener());\n}\n\nsubscribeConfig(() => notify());\n\nfunction dispatch(timezone: string): void {\n if (typeof window === \"undefined\") {\n return;\n }\n\n window.dispatchEvent(new CustomEvent(LATTICE_EVENT.timezoneChange, { detail: { timezone } }));\n}\n\nexport function currentTimezone(): string {\n return snapshot();\n}\n\nexport function setTimezone(timezone: string): void {\n const previous = currentTimezone();\n const next = timezone.trim();\n\n override = next === \"\" ? undefined : next;\n\n if (currentTimezone() === previous) {\n return;\n }\n\n notify();\n dispatch(currentTimezone());\n}\n\nexport function useTimezone(): UseTimezoneReturn {\n const timezone = useSyncExternalStore(subscribe, snapshot, () => fallback);\n\n return { timezone, setTimezone } as const;\n}\n"],"mappings":";;;;AASA,IAAM,WAAW;AACjB,IAAM,4BAAY,IAAI,IAAgB;AAEtC,IAAI;AAEJ,SAAS,mBAA2B;CAClC,IAAI,OAAO,SAAS,aAClB,OAAO;CAGT,IAAI;EACF,OAAO,KAAK,eAAe,EAAE,gBAAgB,EAAE,YAAY;CAC7D,QAAQ;EACN,OAAO;CACT;AACF;AAEA,SAAS,WAAmB;CAC1B,OAAO,YAAY,eAAe,KAAK,iBAAiB;AAC1D;AAEA,SAAS,UAAU,UAAkC;CACnD,UAAU,IAAI,QAAQ;CAEtB,aAAa;EACX,UAAU,OAAO,QAAQ;CAC3B;AACF;AAEA,SAAS,SAAe;CACtB,UAAU,SAAS,aAAa,SAAS,CAAC;AAC5C;AAEA,sBAAsB,OAAO,CAAC;AAE9B,SAAS,SAAS,UAAwB;CACxC,IAAI,OAAO,WAAW,aACpB;CAGF,OAAO,cAAc,IAAI,YAAY,cAAc,gBAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;AAC9F;AAEA,SAAgB,kBAA0B;CACxC,OAAO,SAAS;AAClB;AAEA,SAAgB,YAAY,UAAwB;CAClD,MAAM,WAAW,gBAAgB;CACjC,MAAM,OAAO,SAAS,KAAK;CAE3B,WAAW,SAAS,KAAK,KAAA,IAAY;CAErC,IAAI,gBAAgB,MAAM,UACxB;CAGF,OAAO;CACP,SAAS,gBAAgB,CAAC;AAC5B;AAEA,SAAgB,cAAiC;CAG/C,OAAO;EAAE,UAFQ,qBAAqB,WAAW,gBAAgB,QAExD;EAAU;CAAY;AACjC"}
1
+ {"version":3,"file":"timezone.js","names":[],"sources":["../../resources/js/i18n/timezone.ts"],"sourcesContent":["import { useSyncExternalStore } from \"react\";\nimport { LATTICE_EVENT } from \"@lattice-php/lattice/events/event-names\";\nimport { configTimezone, subscribeConfig } from \"./config\";\n\nexport type UseTimezoneReturn = {\n readonly timezone: string;\n readonly setTimezone: (timezone: string) => void;\n};\n\nconst fallback = \"UTC\";\nconst listeners = new Set<() => void>();\n\nlet override: string | undefined;\n\nfunction detectedTimezone(): string {\n if (typeof Intl === \"undefined\") {\n return fallback;\n }\n\n try {\n return Intl.DateTimeFormat().resolvedOptions().timeZone || fallback;\n } catch {\n return fallback;\n }\n}\n\nfunction snapshot(): string {\n return override ?? configTimezone() ?? detectedTimezone();\n}\n\nfunction subscribe(callback: () => void): () => void {\n listeners.add(callback);\n\n return () => {\n listeners.delete(callback);\n };\n}\n\nfunction notify(): void {\n listeners.forEach((listener) => listener());\n}\n\nsubscribeConfig(() => notify());\n\nfunction dispatch(timezone: string): void {\n if (typeof window === \"undefined\") {\n return;\n }\n\n window.dispatchEvent(new CustomEvent(LATTICE_EVENT.timezoneChange, { detail: { timezone } }));\n}\n\nexport function currentTimezone(): string {\n return snapshot();\n}\n\nexport function setTimezone(timezone: string): void {\n const previous = currentTimezone();\n const next = timezone.trim();\n\n override = next === \"\" ? undefined : next;\n\n if (currentTimezone() === previous) {\n return;\n }\n\n notify();\n dispatch(currentTimezone());\n}\n\nexport function useTimezone(): UseTimezoneReturn {\n const timezone = useSyncExternalStore(subscribe, snapshot, () => fallback);\n\n return { timezone, setTimezone } as const;\n}\n"],"mappings":";;;;AASA,IAAM,WAAW;AACjB,IAAM,4BAAY,IAAI,IAAgB;AAEtC,IAAI;AAEJ,SAAS,mBAA2B;CAClC,IAAI,OAAO,SAAS,aAClB,OAAO;CAGT,IAAI;EACF,OAAO,KAAK,eAAe,EAAE,gBAAgB,EAAE,YAAY;CAC7D,QAAQ;EACN,OAAO;CACT;AACF;AAEA,SAAS,WAAmB;CAC1B,OAAO,YAAY,eAAe,KAAK,iBAAiB;AAC1D;AAEA,SAAS,UAAU,UAAkC;CACnD,UAAU,IAAI,QAAQ;CAEtB,aAAa;EACX,UAAU,OAAO,QAAQ;CAC3B;AACF;AAEA,SAAS,SAAe;CACtB,UAAU,SAAS,aAAa,SAAS,CAAC;AAC5C;AAEA,sBAAsB,OAAO,CAAC;AAE9B,SAAS,SAAS,UAAwB;CACxC,IAAI,OAAO,WAAW,aACpB;CAGF,OAAO,cAAc,IAAI,YAAY,cAAc,gBAAgB,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;AAC9F;AAEA,SAAgB,kBAA0B;CACxC,OAAO,SAAS;AAClB;AAEA,SAAgB,YAAY,UAAwB;CAClD,MAAM,WAAW,gBAAgB;CACjC,MAAM,OAAO,SAAS,KAAK;CAE3B,WAAW,SAAS,KAAK,KAAA,IAAY;CAErC,IAAI,gBAAgB,MAAM,UACxB;CAGF,OAAO;CACP,SAAS,gBAAgB,CAAC;AAC5B;AAEA,SAAgB,cAAiC;CAG/C,OAAO;EAAE,UAFQ,qBAAqB,WAAW,gBAAgB,QAExD;EAAU;CAAY;AACjC"}
@@ -1,4 +1,4 @@
1
- import { Translatable } from '../types/generated';
1
+ import { Translatable } from '../types/generated.js';
2
2
  export type Translate = (key: string, defaultValue?: string, options?: Record<string, unknown>) => string;
3
3
  export declare function isTranslatable(value: unknown): value is Translatable;
4
4
  export declare function resolveTranslatable(value: Translatable, payload: Record<string, unknown>, t: Translate): string;
@@ -1 +1 @@
1
- {"version":3,"file":"icon-renderer.js","names":[],"sources":["../../resources/js/icons/icon-renderer.tsx"],"sourcesContent":["import { createContext, useContext, useMemo } from \"react\";\nimport type { ReactNode } from \"react\";\nimport { cn } from \"../lib/utils\";\nimport { Icon, useSprite } from \"./sprite\";\n\nexport type IconRendererProps = {\n className?: string;\n icon: string;\n};\n\nexport type IconRendererFunction = (props: IconRendererProps) => ReactNode;\n\ntype IconRendererProviderProps = {\n children: ReactNode;\n mode?: \"replace\" | \"stack\";\n renderer: IconRendererFunction;\n};\n\nconst IconRenderersContext = createContext<IconRendererFunction[]>([]);\nconst loggedMissingIcons = new Set<string>();\n\nexport function IconRendererProvider({\n children,\n mode = \"stack\",\n renderer,\n}: IconRendererProviderProps) {\n const parentRenderers = useContext(IconRenderersContext);\n const renderers = useMemo(\n () => (mode === \"replace\" ? [renderer] : [renderer, ...parentRenderers]),\n [mode, parentRenderers, renderer],\n );\n\n return (\n <IconRenderersContext.Provider value={renderers}>{children}</IconRenderersContext.Provider>\n );\n}\n\nexport function IconRenderer({ className, icon }: IconRendererProps) {\n const renderers = useContext(IconRenderersContext);\n const { ids } = useSprite();\n\n // Custom renderers (the override stack) take precedence over the sprite.\n for (const renderer of renderers) {\n const rendered = renderer({ className, icon });\n\n if (rendered !== null && rendered !== undefined && rendered !== false) {\n return rendered;\n }\n }\n\n // When the sprite is wired and the icon is genuinely absent, show a visible\n // marker. When `ids` is unknown (not yet wired), optimistically emit the\n // sprite reference rather than crying wolf.\n if (ids && !ids.includes(icon)) {\n logMissingIcon(icon);\n return <MissingIcon className={className} />;\n }\n\n return <Icon className={className} name={icon} />;\n}\n\nfunction MissingIcon({ className }: { className?: string }) {\n return (\n <svg\n aria-hidden=\"true\"\n className={cn(\"size-lt-icon-md text-lt-muted-fg\", className)}\n data-lattice-missing-icon=\"\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"2\"\n viewBox=\"0 0 24 24\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\" />\n <path d=\"M12 17h.01\" />\n </svg>\n );\n}\n\nfunction logMissingIcon(icon: string): void {\n if (!import.meta.env.DEV || loggedMissingIcons.has(icon)) {\n return;\n }\n\n loggedMissingIcons.add(icon);\n console.log(`[Lattice] Missing icon renderer for \"${icon}\".`);\n}\n"],"mappings":";;;;;AAkBA,IAAM,uBAAuB,cAAsC,CAAC,CAAC;AAGrE,SAAgB,qBAAqB,EACnC,UACA,OAAO,SACP,YAC4B;CAC5B,MAAM,kBAAkB,WAAW,oBAAoB;CACvD,MAAM,YAAY,cACT,SAAS,YAAY,CAAC,QAAQ,IAAI,CAAC,UAAU,GAAG,eAAe,GACtE;EAAC;EAAM;EAAiB;CAAQ,CAClC;CAEA,OACE,oBAAC,qBAAqB,UAAtB;EAA+B,OAAO;EAAY;CAAwC,CAAA;AAE9F;AAEA,SAAgB,aAAa,EAAE,WAAW,QAA2B;CACnE,MAAM,YAAY,WAAW,oBAAoB;CACjD,MAAM,EAAE,QAAQ,UAAU;CAG1B,KAAK,MAAM,YAAY,WAAW;EAChC,MAAM,WAAW,SAAS;GAAE;GAAW;EAAK,CAAC;EAE7C,IAAI,aAAa,QAAQ,aAAa,KAAA,KAAa,aAAa,OAC9D,OAAO;CAEX;CAKA,IAAI,OAAO,CAAC,IAAI,SAAS,IAAI,GAE3B,OAAO,oBAAC,aAAD,EAAwB,UAAY,CAAA;CAG7C,OAAO,oBAAC,MAAD;EAAiB;EAAW,MAAM;CAAO,CAAA;AAClD;AAEA,SAAS,YAAY,EAAE,aAAqC;CAC1D,OACE,qBAAC,OAAD;EACE,eAAY;EACZ,WAAW,GAAG,oCAAoC,SAAS;EAC3D,6BAA0B;EAC1B,MAAK;EACL,QAAO;EACP,eAAc;EACd,gBAAe;EACf,aAAY;EACZ,SAAQ;YATV;GAWE,oBAAC,UAAD;IAAQ,IAAG;IAAK,IAAG;IAAK,GAAE;GAAM,CAAA;GAChC,oBAAC,QAAD,EAAM,GAAE,uCAAwC,CAAA;GAChD,oBAAC,QAAD,EAAM,GAAE,aAAc,CAAA;EACnB;;AAET"}
1
+ {"version":3,"file":"icon-renderer.js","names":[],"sources":["../../resources/js/icons/icon-renderer.tsx"],"sourcesContent":["import { createContext, useContext, useMemo } from \"react\";\nimport type { ReactNode } from \"react\";\nimport { cn } from \"@lattice-php/lattice/lib/utils\";\nimport { Icon, useSprite } from \"./sprite\";\n\nexport type IconRendererProps = {\n className?: string;\n icon: string;\n};\n\nexport type IconRendererFunction = (props: IconRendererProps) => ReactNode;\n\ntype IconRendererProviderProps = {\n children: ReactNode;\n mode?: \"replace\" | \"stack\";\n renderer: IconRendererFunction;\n};\n\nconst IconRenderersContext = createContext<IconRendererFunction[]>([]);\nconst loggedMissingIcons = new Set<string>();\n\nexport function IconRendererProvider({\n children,\n mode = \"stack\",\n renderer,\n}: IconRendererProviderProps) {\n const parentRenderers = useContext(IconRenderersContext);\n const renderers = useMemo(\n () => (mode === \"replace\" ? [renderer] : [renderer, ...parentRenderers]),\n [mode, parentRenderers, renderer],\n );\n\n return (\n <IconRenderersContext.Provider value={renderers}>{children}</IconRenderersContext.Provider>\n );\n}\n\nexport function IconRenderer({ className, icon }: IconRendererProps) {\n const renderers = useContext(IconRenderersContext);\n const { ids } = useSprite();\n\n // Custom renderers (the override stack) take precedence over the sprite.\n for (const renderer of renderers) {\n const rendered = renderer({ className, icon });\n\n if (rendered !== null && rendered !== undefined && rendered !== false) {\n return rendered;\n }\n }\n\n // When the sprite is wired and the icon is genuinely absent, show a visible\n // marker. When `ids` is unknown (not yet wired), optimistically emit the\n // sprite reference rather than crying wolf.\n if (ids && !ids.includes(icon)) {\n logMissingIcon(icon);\n return <MissingIcon className={className} />;\n }\n\n return <Icon className={className} name={icon} />;\n}\n\nfunction MissingIcon({ className }: { className?: string }) {\n return (\n <svg\n aria-hidden=\"true\"\n className={cn(\"size-lt-icon-md text-lt-muted-fg\", className)}\n data-lattice-missing-icon=\"\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth=\"2\"\n viewBox=\"0 0 24 24\"\n >\n <circle cx=\"12\" cy=\"12\" r=\"10\" />\n <path d=\"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\" />\n <path d=\"M12 17h.01\" />\n </svg>\n );\n}\n\nfunction logMissingIcon(icon: string): void {\n if (!import.meta.env.DEV || loggedMissingIcons.has(icon)) {\n return;\n }\n\n loggedMissingIcons.add(icon);\n console.log(`[Lattice] Missing icon renderer for \"${icon}\".`);\n}\n"],"mappings":";;;;;AAkBA,IAAM,uBAAuB,cAAsC,CAAC,CAAC;AAGrE,SAAgB,qBAAqB,EACnC,UACA,OAAO,SACP,YAC4B;CAC5B,MAAM,kBAAkB,WAAW,oBAAoB;CACvD,MAAM,YAAY,cACT,SAAS,YAAY,CAAC,QAAQ,IAAI,CAAC,UAAU,GAAG,eAAe,GACtE;EAAC;EAAM;EAAiB;CAAQ,CAClC;CAEA,OACE,oBAAC,qBAAqB,UAAtB;EAA+B,OAAO;EAAY;CAAwC,CAAA;AAE9F;AAEA,SAAgB,aAAa,EAAE,WAAW,QAA2B;CACnE,MAAM,YAAY,WAAW,oBAAoB;CACjD,MAAM,EAAE,QAAQ,UAAU;CAG1B,KAAK,MAAM,YAAY,WAAW;EAChC,MAAM,WAAW,SAAS;GAAE;GAAW;EAAK,CAAC;EAE7C,IAAI,aAAa,QAAQ,aAAa,KAAA,KAAa,aAAa,OAC9D,OAAO;CAEX;CAKA,IAAI,OAAO,CAAC,IAAI,SAAS,IAAI,GAE3B,OAAO,oBAAC,aAAD,EAAwB,UAAY,CAAA;CAG7C,OAAO,oBAAC,MAAD;EAAiB;EAAW,MAAM;CAAO,CAAA;AAClD;AAEA,SAAS,YAAY,EAAE,aAAqC;CAC1D,OACE,qBAAC,OAAD;EACE,eAAY;EACZ,WAAW,GAAG,oCAAoC,SAAS;EAC3D,6BAA0B;EAC1B,MAAK;EACL,QAAO;EACP,eAAc;EACd,gBAAe;EACf,aAAY;EACZ,SAAQ;YATV;GAWE,oBAAC,UAAD;IAAQ,IAAG;IAAK,IAAG;IAAK,GAAE;GAAM,CAAA;GAChC,oBAAC,QAAD,EAAM,GAAE,uCAAwC,CAAA;GAChD,oBAAC,QAAD,EAAM,GAAE,aAAc,CAAA;EACnB;;AAET"}
@@ -1,4 +1,4 @@
1
- export { Icon, SpriteProvider, useSprite } from './sprite';
2
- export type { IconName, KnownIcons, SpriteValue } from './sprite';
3
- export { IconRenderer, IconRendererProvider } from './icon-renderer';
4
- export type { IconRendererFunction, IconRendererProps } from './icon-renderer';
1
+ export { Icon, SpriteProvider, useSprite } from './sprite.js';
2
+ export type { IconName, KnownIcons, SpriteValue } from './sprite.js';
3
+ export { IconRenderer, IconRendererProvider } from './icon-renderer.js';
4
+ export type { IconRendererFunction, IconRendererProps } from './icon-renderer.js';
@@ -1 +1 @@
1
- {"version":3,"file":"sprite.js","names":[],"sources":["../../resources/js/icons/sprite.tsx"],"sourcesContent":["import { createContext, useContext } from \"react\";\nimport type { ReactNode } from \"react\";\nimport { cn } from \"../lib/utils\";\n\n// Augmentable registry of icon names. The sprite plugin can generate a\n// `declare module \"@lattice-php/lattice\" { interface KnownIcons { … } }` block\n// from the built sprite, which turns `IconName` into the real set for\n// autocomplete. Unaugmented it falls back to `string`, so any name still works.\nexport interface KnownIcons {}\nexport type IconName = keyof KnownIcons | (string & {});\n\nexport type SpriteValue = {\n /** The sprite URL. Empty when the sprite is inlined into the document (dev). */\n href: string;\n /** Every symbol id in the sprite, or undefined when not yet wired/known. */\n ids?: readonly string[];\n /** Inline sprite markup to inject once (dev); empty/omitted in builds. */\n source?: string;\n};\n\nconst SpriteContext = createContext<SpriteValue>({ href: \"\" });\n\n/**\n * Seeds the icon sprite for everything below it. When `sprite.source` is set\n * (dev), it's injected once so same-document `<use href=\"#id\">` references\n * resolve; in builds `href` points at the emitted sprite asset instead.\n */\nexport function SpriteProvider({ children, sprite }: { children: ReactNode; sprite: SpriteValue }) {\n return (\n <SpriteContext.Provider value={sprite}>\n {sprite.source ? <div hidden dangerouslySetInnerHTML={{ __html: sprite.source }} /> : null}\n {children}\n </SpriteContext.Provider>\n );\n}\n\nexport function useSprite(): SpriteValue {\n return useContext(SpriteContext);\n}\n\nconst warnedIcons = new Set<string>();\n\n/**\n * Renders a single sprite symbol by name. Used for Lattice's own UI chrome and\n * as the resolved default for server-driven icons. Extra `<svg>` props are\n * forwarded, so callers can override `aria-hidden`, set a `role`, etc.\n */\nexport function Icon({\n className,\n name,\n ...props\n}: { name: IconName } & React.ComponentProps<\"svg\">) {\n const { href, ids } = useSprite();\n\n if (import.meta.env.DEV && ids && !ids.includes(name) && !warnedIcons.has(name)) {\n warnedIcons.add(name);\n console.warn(`[Lattice] Icon \"${name}\" is not in the sprite.`);\n }\n\n return (\n <svg aria-hidden=\"true\" {...props} className={cn(\"size-lt-icon-md\", className)}>\n <use href={`${href}#${name}`} />\n </svg>\n );\n}\n"],"mappings":";;;;AAoBA,IAAM,gBAAgB,cAA2B,EAAE,MAAM,GAAG,CAAC;;;;;;AAO7D,SAAgB,eAAe,EAAE,UAAU,UAAwD;CACjG,OACE,qBAAC,cAAc,UAAf;EAAwB,OAAO;YAA/B,CACG,OAAO,SAAS,oBAAC,OAAD;GAAK,QAAA;GAAO,yBAAyB,EAAE,QAAQ,OAAO,OAAO;EAAI,CAAA,IAAI,MACrF,QACqB;;AAE5B;AAEA,SAAgB,YAAyB;CACvC,OAAO,WAAW,aAAa;AACjC;;;;;;AASA,SAAgB,KAAK,EACnB,WACA,MACA,GAAG,SACgD;CACnD,MAAM,EAAE,MAAM,QAAQ,UAAU;CAOhC,OACE,oBAAC,OAAD;EAAK,eAAY;EAAO,GAAI;EAAO,WAAW,GAAG,mBAAmB,SAAS;YAC3E,oBAAC,OAAD,EAAK,MAAM,GAAG,KAAK,GAAG,OAAS,CAAA;CAC5B,CAAA;AAET"}
1
+ {"version":3,"file":"sprite.js","names":[],"sources":["../../resources/js/icons/sprite.tsx"],"sourcesContent":["import { createContext, useContext } from \"react\";\nimport type { ReactNode } from \"react\";\nimport { cn } from \"@lattice-php/lattice/lib/utils\";\n\n// Augmentable registry of icon names. The sprite plugin can generate a\n// `declare module \"@lattice-php/lattice\" { interface KnownIcons { … } }` block\n// from the built sprite, which turns `IconName` into the real set for\n// autocomplete. Unaugmented it falls back to `string`, so any name still works.\nexport interface KnownIcons {}\nexport type IconName = keyof KnownIcons | (string & {});\n\nexport type SpriteValue = {\n /** The sprite URL. Empty when the sprite is inlined into the document (dev). */\n href: string;\n /** Every symbol id in the sprite, or undefined when not yet wired/known. */\n ids?: readonly string[];\n /** Inline sprite markup to inject once (dev); empty/omitted in builds. */\n source?: string;\n};\n\nconst SpriteContext = createContext<SpriteValue>({ href: \"\" });\n\n/**\n * Seeds the icon sprite for everything below it. When `sprite.source` is set\n * (dev), it's injected once so same-document `<use href=\"#id\">` references\n * resolve; in builds `href` points at the emitted sprite asset instead.\n */\nexport function SpriteProvider({ children, sprite }: { children: ReactNode; sprite: SpriteValue }) {\n return (\n <SpriteContext.Provider value={sprite}>\n {sprite.source ? <div hidden dangerouslySetInnerHTML={{ __html: sprite.source }} /> : null}\n {children}\n </SpriteContext.Provider>\n );\n}\n\nexport function useSprite(): SpriteValue {\n return useContext(SpriteContext);\n}\n\nconst warnedIcons = new Set<string>();\n\n/**\n * Renders a single sprite symbol by name. Used for Lattice's own UI chrome and\n * as the resolved default for server-driven icons. Extra `<svg>` props are\n * forwarded, so callers can override `aria-hidden`, set a `role`, etc.\n */\nexport function Icon({\n className,\n name,\n ...props\n}: { name: IconName } & React.ComponentProps<\"svg\">) {\n const { href, ids } = useSprite();\n\n if (import.meta.env.DEV && ids && !ids.includes(name) && !warnedIcons.has(name)) {\n warnedIcons.add(name);\n console.warn(`[Lattice] Icon \"${name}\" is not in the sprite.`);\n }\n\n return (\n <svg aria-hidden=\"true\" {...props} className={cn(\"size-lt-icon-md\", className)}>\n <use href={`${href}#${name}`} />\n </svg>\n );\n}\n"],"mappings":";;;;AAoBA,IAAM,gBAAgB,cAA2B,EAAE,MAAM,GAAG,CAAC;;;;;;AAO7D,SAAgB,eAAe,EAAE,UAAU,UAAwD;CACjG,OACE,qBAAC,cAAc,UAAf;EAAwB,OAAO;YAA/B,CACG,OAAO,SAAS,oBAAC,OAAD;GAAK,QAAA;GAAO,yBAAyB,EAAE,QAAQ,OAAO,OAAO;EAAI,CAAA,IAAI,MACrF,QACqB;;AAE5B;AAEA,SAAgB,YAAyB;CACvC,OAAO,WAAW,aAAa;AACjC;;;;;;AASA,SAAgB,KAAK,EACnB,WACA,MACA,GAAG,SACgD;CACnD,MAAM,EAAE,MAAM,QAAQ,UAAU;CAOhC,OACE,oBAAC,OAAD;EAAK,eAAY;EAAO,GAAI;EAAO,WAAW,GAAG,mBAAmB,SAAS;YAC3E,oBAAC,OAAD,EAAK,MAAM,GAAG,KAAK,GAAG,OAAS,CAAA;CAC5B,CAAA;AAET"}
package/dist/index.d.ts CHANGED
@@ -1,39 +1,38 @@
1
- export { registry } from './registry';
2
- export { useChat } from './chat/use-chat';
3
- export { chatComponents } from './chat';
4
- export { getActionEffects, isActionEffect, dispatchEffects, dispatchActionError, } from './effects/dispatch';
5
- export { useEffectDispatcher } from './effects/use-effect-dispatcher';
6
- export { builtinEffectHandlers, effectHandler, mergeEffectHandlers } from './effects/registry';
7
- export { initializeTheme, updateAppearance, useAppearance } from './appearance';
8
- export { copyToClipboard, useClipboard } from './clipboard';
9
- export { createLatticeApp, type CreateLatticeAppOptions } from './create-app';
10
- export { EventBridge } from './events/event-bridge';
11
- export { Icon, IconRenderer, IconRendererProvider, SpriteProvider } from './icons';
12
- export { createLayoutResolver, createPageResolver, pageComponentName, withVisitHeaders, } from './inertia';
13
- export { Callouts, layoutComponents, OutletContext, SchemaLayout, SidebarCollapsedContext, useSidebarCollapsed, } from './layout';
14
- export { Provider, useColumnRegistry, useComponentRegistry } from './provider';
15
- export { onCallout, onToast, showToast, Toaster } from './toast';
16
- export { createPlugin, createRegistry, eagerComponent, extendRegistry, lazyComponent, } from './core/registry';
17
- export type { Plugin, Registry } from './core/registry';
18
- export type { UseChatOptions } from './chat/use-chat';
19
- export type { ChatFrame, ChatMessage, ChatRole, ChatStatus, ChatTransport, ChatTransportRequest, UseChatReturn, } from './chat/types';
20
- export { Renderer } from './core/renderer';
21
- export { LATTICE_REF_HEADER, withRefHeader } from './core/component-ref';
22
- export { withHeaders } from './core/headers';
23
- export { LATTICE_EVENT } from './events/event-names';
24
- export type { ButtonVariant } from './core/components/button';
25
- export type { ReloadComponentEvent } from './events/event-names';
26
- export type { ComponentProps, KnownPageContainer, LayoutPayload, Node, NodeOfType, NodeProps, NodeType, PageContainer, PageBreadcrumb, PagePayload, PropsOf, RendererComponent, RendererComponentModule, RendererComponentProps, Schema, UnknownComponent, WireNode, } from './core/types';
27
- export { RealtimeListeners } from './realtime/listeners';
28
- export type { ChannelVisibility, DateFormat, ListenerPayload, NumberFormat, } from './types/generated';
29
- export { columnCell } from './table/registry';
30
- export type { ColumnCellArgs, ColumnCellComponent, ColumnRegistry } from './table/registry';
31
- export type { ColumnProps, ColumnPropsOf } from './table/types';
1
+ export { registry } from './registry.js';
2
+ export { useChat } from './chat/hooks/use-chat.js';
3
+ export { chatComponents } from './chat/plugin.js';
4
+ export { getActionEffects, isActionEffect, dispatchEffects, dispatchActionError, } from './effects/dispatch.js';
5
+ export { useEffectDispatcher } from './effects/use-effect-dispatcher.js';
6
+ export { builtinEffectHandlers, effectHandler, mergeEffectHandlers } from './effects/registry.js';
7
+ export { initializeTheme, updateAppearance, useAppearance } from './appearance/index.js';
8
+ export { copyToClipboard, useClipboard } from './clipboard/index.js';
9
+ export { createLatticeApp, type CreateLatticeAppOptions } from './create-app.js';
10
+ export { EventBridge } from './event-bridge.js';
11
+ export { Icon, IconRenderer, IconRendererProvider, SpriteProvider } from './icons/index.js';
12
+ export { createLayoutResolver, createPageResolver, pageComponentName, withVisitHeaders, } from './inertia.js';
13
+ export { Callouts, layoutComponents, OutletContext, SchemaLayout, SidebarCollapsedContext, useSidebarCollapsed, } from './layout/index.js';
14
+ export { Provider, useColumnRegistry, useComponentRegistry } from './provider.js';
15
+ export { onCallout, onToast, showToast, Toaster } from './toast/index.js';
16
+ export { createPlugin, createRegistry, eagerComponent, extendRegistry, lazyComponent, } from './core/registry.js';
17
+ export type { Plugin, Registry } from './core/registry.js';
18
+ export type { UseChatOptions } from './chat/hooks/use-chat.js';
19
+ export type { ChatFrame, ChatMessage, ChatRole, ChatStatus, ChatTransport, ChatTransportRequest, UseChatReturn, } from './chat/types.js';
20
+ export { Renderer } from './core/renderer.js';
21
+ export { LATTICE_REF_HEADER, withRefHeader } from './core/component-ref.js';
22
+ export { withHeaders } from './core/headers.js';
23
+ export { LATTICE_EVENT } from './events/event-names.js';
24
+ export type { ButtonVariant } from './ui/button.js';
25
+ export type { ReloadComponentEvent } from './events/event-names.js';
26
+ export type { ComponentProps, KnownPageContainer, LayoutPayload, Node, NodeOfType, NodeProps, NodeType, PageContainer, PageBreadcrumb, PagePayload, PropsOf, RendererComponent, RendererComponentModule, RendererComponentProps, Schema, UnknownComponent, WireNode, } from './core/types.js';
27
+ export { RealtimeListeners } from './realtime/listeners.js';
28
+ export type { ChannelVisibility, DateFormat, ListenerPayload, NumberFormat, } from './types/generated.js';
29
+ export { columnCell } from './table/registry.js';
30
+ export type { ColumnCellArgs, ColumnCellComponent, ColumnRegistry } from './table/registry.js';
31
+ export type { ColumnProps, ColumnPropsOf } from './table/types.js';
32
32
  export type { Method } from '@inertiajs/core';
33
- export type { ActionEffect, ActionResponse } from './effects/dispatch';
34
- export type { EffectHandler, EffectHandlerRegistry, EffectOf, EffectProps, } from './effects/registry';
35
- export type { ResolvedAppearance, UseAppearanceReturn } from './appearance';
36
- export type { CopiedValue, CopyFn, UseClipboardReturn } from './clipboard';
37
- export type { Appearance } from './events/event-bridge';
38
- export type { Callout, ToastMessage, Variant } from './toast';
39
- export type { IconName, IconRendererFunction, IconRendererProps, KnownIcons, SpriteValue, } from './icons';
33
+ export type { ActionEffect, ActionResponse } from './effects/dispatch.js';
34
+ export type { EffectHandler, EffectHandlerRegistry, EffectOf, EffectProps, } from './effects/registry.js';
35
+ export type { Appearance, ResolvedAppearance, UseAppearanceReturn } from './appearance/index.js';
36
+ export type { CopiedValue, CopyFn, UseClipboardReturn } from './clipboard/index.js';
37
+ export type { Callout, ToastMessage, Variant } from './toast/index.js';
38
+ export type { IconName, IconRendererFunction, IconRendererProps, KnownIcons, SpriteValue, } from './icons/index.js';
package/dist/index.js CHANGED
@@ -10,22 +10,23 @@ import { CollapsedContext, useCollapsed } from "./core/collapsed-context.js";
10
10
  import { Renderer } from "./core/renderer.js";
11
11
  import { onToast, showToast } from "./toast/toast.js";
12
12
  import { onCallout } from "./toast/callout.js";
13
- import { EventBridge } from "./events/event-bridge.js";
14
- import Callouts from "./layout/callouts.js";
13
+ import { EventBridge } from "./event-bridge.js";
14
+ import { Toaster } from "./toast/toaster.js";
15
+ import Callouts from "./layout/components/callouts.js";
15
16
  import { builtinEffectHandlers, effectHandler, mergeEffectHandlers } from "./effects/registry.js";
16
17
  import { dispatchActionError, dispatchEffects, getActionEffects, isActionEffect } from "./effects/dispatch.js";
17
18
  import { useEffectDispatcher } from "./effects/use-effect-dispatcher.js";
18
- import { OutletContext } from "./layout/context.js";
19
- import { layoutComponents } from "./layout/components.js";
20
- import SchemaLayout from "./layout/schema-layout.js";
19
+ import { OutletContext } from "./layout/hooks/context.js";
20
+ import { layoutComponents } from "./layout/plugin.js";
21
+ import SchemaLayout from "./layout/components/schema-layout.js";
21
22
  import { RealtimeListeners } from "./realtime/listeners.js";
22
23
  import { createLayoutResolver, createPageResolver, pageComponentName, withVisitHeaders } from "./inertia.js";
23
- import { Toaster } from "./toast/toaster.js";
24
- import { useChat } from "./chat/use-chat.js";
25
- import { chatComponents } from "./chat/index.js";
26
- import { copyToClipboard, useClipboard } from "./clipboard/index.js";
24
+ import { useChat } from "./chat/hooks/use-chat.js";
25
+ import { chatComponents } from "./chat/plugin.js";
26
+ import { copyToClipboard } from "./ui/copyable-text.js";
27
27
  import { columnCell } from "./table/registry.js";
28
28
  import { registry } from "./registry.js";
29
29
  import { createLatticeApp } from "./create-app.js";
30
+ import { useClipboard } from "./clipboard/index.js";
30
31
  import { Provider } from "./provider.js";
31
32
  export { Callouts, EventBridge, Icon, IconRenderer, IconRendererProvider, LATTICE_EVENT, LATTICE_REF_HEADER, OutletContext, Provider, RealtimeListeners, Renderer, SchemaLayout, CollapsedContext as SidebarCollapsedContext, SpriteProvider, Toaster, builtinEffectHandlers, chatComponents, columnCell, copyToClipboard, createLatticeApp, createLayoutResolver, createPageResolver, createPlugin, createRegistry, dispatchActionError, dispatchEffects, eagerComponent, effectHandler, extendRegistry, getActionEffects, initializeTheme, isActionEffect, layoutComponents, lazyComponent, mergeEffectHandlers, onCallout, onToast, pageComponentName, registry, showToast, updateAppearance, useAppearance, useChat, useClipboard, useColumnRegistry, useComponentRegistry, useEffectDispatcher, useCollapsed as useSidebarCollapsed, withHeaders, withRefHeader, withVisitHeaders };
package/dist/inertia.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { withHeaders } from "./core/headers.js";
2
- import SchemaLayout from "./layout/schema-layout.js";
2
+ import SchemaLayout from "./layout/components/schema-layout.js";
3
3
  import Page from "./page.js";
4
4
  //#region resources/js/inertia.ts
5
5
  var pageComponentName = "lattice/page";
@@ -1,3 +1,3 @@
1
- import { RendererComponent } from '../core/types';
1
+ import { RendererComponent } from '../../core/types.js';
2
2
  declare const BreadcrumbsComponent: RendererComponent<"breadcrumbs">;
3
3
  export default BreadcrumbsComponent;
@@ -1,8 +1,8 @@
1
- import { nodeIdentity } from "../core/test-id.js";
1
+ import { nodeIdentity } from "../../core/test-id.js";
2
2
  import { Link, usePage } from "@inertiajs/react";
3
3
  import { Fragment } from "react";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
5
- //#region resources/js/layout/breadcrumbs.tsx
5
+ //#region resources/js/layout/components/breadcrumbs.tsx
6
6
  var BreadcrumbsComponent = ({ node }) => {
7
7
  const crumbs = usePage().props.lattice?.breadcrumbs ?? [];
8
8
  if (crumbs.length === 0) return null;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breadcrumbs.js","names":[],"sources":["../../../resources/js/layout/components/breadcrumbs.tsx"],"sourcesContent":["import { Link, usePage } from \"@inertiajs/react\";\nimport { Fragment } from \"react\";\nimport type { PagePayload, RendererComponent } from \"@lattice-php/lattice/core/types\";\nimport { nodeIdentity } from \"@lattice-php/lattice/core/test-id\";\n\nconst BreadcrumbsComponent: RendererComponent<\"breadcrumbs\"> = ({ node }) => {\n const page = usePage();\n const crumbs = (page.props.lattice as PagePayload | undefined)?.breadcrumbs ?? [];\n\n if (crumbs.length === 0) {\n return null;\n }\n\n return (\n <nav aria-label=\"Breadcrumb\" data-lattice-component={nodeIdentity(node)}>\n <ol className=\"flex items-center gap-2 text-sm text-lt-muted-fg\">\n {crumbs.map((crumb, index) => {\n const isLast = index === crumbs.length - 1;\n\n return (\n <Fragment key={crumb.href}>\n <li>\n {isLast ? (\n <span aria-current=\"page\" className=\"text-lt-fg\">\n {crumb.title}\n </span>\n ) : (\n <Link className=\"hover:text-lt-fg\" href={crumb.href}>\n {crumb.title}\n </Link>\n )}\n </li>\n {isLast ? null : <li aria-hidden=\"true\">/</li>}\n </Fragment>\n );\n })}\n </ol>\n </nav>\n );\n};\n\nexport default BreadcrumbsComponent;\n"],"mappings":";;;;;AAKA,IAAM,wBAA0D,EAAE,WAAW;CAE3E,MAAM,SADO,QACG,EAAK,MAAM,SAAqC,eAAe,CAAC;CAEhF,IAAI,OAAO,WAAW,GACpB,OAAO;CAGT,OACE,oBAAC,OAAD;EAAK,cAAW;EAAa,0BAAwB,aAAa,IAAI;YACpE,oBAAC,MAAD;GAAI,WAAU;aACX,OAAO,KAAK,OAAO,UAAU;IAC5B,MAAM,SAAS,UAAU,OAAO,SAAS;IAEzC,OACE,qBAAC,UAAD,EAAA,UAAA,CACE,oBAAC,MAAD,EAAA,UACG,SACC,oBAAC,QAAD;KAAM,gBAAa;KAAO,WAAU;eACjC,MAAM;IACH,CAAA,IAEN,oBAAC,MAAD;KAAM,WAAU;KAAmB,MAAM,MAAM;eAC5C,MAAM;IACH,CAAA,EAEN,CAAA,GACH,SAAS,OAAO,oBAAC,MAAD;KAAI,eAAY;eAAO;IAAK,CAAA,CACrC,EAAA,GAbK,MAAM,IAaX;GAEd,CAAC;EACC,CAAA;CACD,CAAA;AAET"}
@@ -1,3 +1,3 @@
1
- import { RendererComponent } from '../core/types';
1
+ import { RendererComponent } from '../../core/types.js';
2
2
  declare const Callouts: RendererComponent<"callouts">;
3
3
  export default Callouts;
@@ -1,12 +1,12 @@
1
- import { cn } from "../lib/utils.js";
2
- import { Icon } from "../icons/sprite.js";
3
- import { RenderNode } from "../core/renderer.js";
4
- import { onCallout } from "../toast/callout.js";
5
- import { useT } from "../i18n/instance.js";
6
- import { variantStyles } from "../toast/variant-styles.js";
1
+ import { cn } from "../../lib/utils.js";
2
+ import { Icon } from "../../icons/sprite.js";
3
+ import { RenderNode } from "../../core/renderer.js";
4
+ import { onCallout } from "../../toast/callout.js";
5
+ import { useT } from "../../i18n/instance.js";
6
+ import { variantStyles } from "../../toast/variant-styles.js";
7
7
  import { useEffect, useState } from "react";
8
8
  import { jsx, jsxs } from "react/jsx-runtime";
9
- //#region resources/js/layout/callouts.tsx
9
+ //#region resources/js/layout/components/callouts.tsx
10
10
  var nextId = 0;
11
11
  var Callouts = () => {
12
12
  const { t } = useT("lattice");
@@ -0,0 +1 @@
1
+ {"version":3,"file":"callouts.js","names":[],"sources":["../../../resources/js/layout/components/callouts.tsx"],"sourcesContent":["import { Icon } from \"@lattice-php/lattice/icons\";\nimport { useEffect, useState } from \"react\";\nimport { RenderNode } from \"@lattice-php/lattice/core/renderer\";\nimport type { Callout } from \"@lattice-php/lattice/types/generated\";\nimport type { RendererComponent } from \"@lattice-php/lattice/core/types\";\nimport { onCallout } from \"@lattice-php/lattice/toast\";\nimport { cn } from \"@lattice-php/lattice/lib/utils\";\nimport { useT } from \"@lattice-php/lattice/i18n\";\nimport { variantStyles } from \"@lattice-php/lattice/toast\";\n\ntype CalloutItem = Callout & { id: number };\n\nlet nextId = 0;\n\nconst Callouts: RendererComponent<\"callouts\"> = () => {\n const { t } = useT(\"lattice\");\n const [callouts, setCallouts] = useState<CalloutItem[]>([]);\n\n useEffect(\n () =>\n onCallout((callout) => {\n setCallouts((current) => [...current, { ...callout, id: nextId++ }]);\n }),\n [],\n );\n\n function dismiss(id: number): void {\n setCallouts((current) => current.filter((callout) => callout.id !== id));\n }\n\n if (callouts.length === 0) {\n return null;\n }\n\n return (\n <div className=\"flex w-full flex-col gap-2\">\n {callouts.map((callout) => (\n <div\n key={callout.id}\n role=\"status\"\n data-test={`callout-${callout.variant}`}\n className={cn(\n \"flex items-start gap-3 rounded-lt border border-l-4 border-lt-border bg-lt-popover p-4 text-lt-popover-fg\",\n variantStyles[callout.variant].accent,\n )}\n >\n {variantStyles[callout.variant].icon}\n <div className=\"flex min-w-0 flex-1 flex-col gap-2\">\n {callout.title ? (\n <p className=\"text-sm font-medium text-lt-fg\">{callout.title}</p>\n ) : null}\n <p className=\"text-sm text-lt-fg\">{callout.message}</p>\n {callout.action ? (\n <div className=\"flex flex-wrap gap-2\">\n <RenderNode node={callout.action} />\n </div>\n ) : null}\n </div>\n {callout.dismissible ? (\n <button\n type=\"button\"\n aria-label={t(\"common.dismiss\", \"Dismiss\")}\n data-test=\"callout-dismiss\"\n className=\"shrink-0 rounded-lt-sm p-1 text-lt-muted-fg transition-colors hover:bg-lt-muted hover:text-lt-fg\"\n onClick={() => dismiss(callout.id)}\n >\n <Icon name=\"x\" className=\"size-lt-icon-md\" />\n </button>\n ) : null}\n </div>\n ))}\n </div>\n );\n};\n\nexport default Callouts;\n"],"mappings":";;;;;;;;;AAYA,IAAI,SAAS;AAEb,IAAM,iBAAgD;CACpD,MAAM,EAAE,MAAM,KAAK,SAAS;CAC5B,MAAM,CAAC,UAAU,eAAe,SAAwB,CAAC,CAAC;CAE1D,gBAEI,WAAW,YAAY;EACrB,aAAa,YAAY,CAAC,GAAG,SAAS;GAAE,GAAG;GAAS,IAAI;EAAS,CAAC,CAAC;CACrE,CAAC,GACH,CAAC,CACH;CAEA,SAAS,QAAQ,IAAkB;EACjC,aAAa,YAAY,QAAQ,QAAQ,YAAY,QAAQ,OAAO,EAAE,CAAC;CACzE;CAEA,IAAI,SAAS,WAAW,GACtB,OAAO;CAGT,OACE,oBAAC,OAAD;EAAK,WAAU;YACZ,SAAS,KAAK,YACb,qBAAC,OAAD;GAEE,MAAK;GACL,aAAW,WAAW,QAAQ;GAC9B,WAAW,GACT,6GACA,cAAc,QAAQ,SAAS,MACjC;aAPF;IASG,cAAc,QAAQ,SAAS;IAChC,qBAAC,OAAD;KAAK,WAAU;eAAf;MACG,QAAQ,QACP,oBAAC,KAAD;OAAG,WAAU;iBAAkC,QAAQ;MAAS,CAAA,IAC9D;MACJ,oBAAC,KAAD;OAAG,WAAU;iBAAsB,QAAQ;MAAW,CAAA;MACrD,QAAQ,SACP,oBAAC,OAAD;OAAK,WAAU;iBACb,oBAAC,YAAD,EAAY,MAAM,QAAQ,OAAS,CAAA;MAChC,CAAA,IACH;KACD;;IACJ,QAAQ,cACP,oBAAC,UAAD;KACE,MAAK;KACL,cAAY,EAAE,kBAAkB,SAAS;KACzC,aAAU;KACV,WAAU;KACV,eAAe,QAAQ,QAAQ,EAAE;eAEjC,oBAAC,MAAD;MAAM,MAAK;MAAI,WAAU;KAAmB,CAAA;IACtC,CAAA,IACN;GACD;KA/BE,QAAQ,EA+BV,CACN;CACE,CAAA;AAET"}