@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
@@ -1 +1 @@
1
- {"version":3,"file":"provider-base.js","names":[],"sources":["../resources/js/provider-base.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport type { Registry } from \"./core/registry\";\nimport { RegistryContext } from \"./core/registry-context\";\nimport { useFlashEffects } from \"./effects/use-flash-effects\";\nimport { EventBridge } from \"./events/event-bridge\";\nimport type { SpriteValue } from \"./icons/sprite\";\nimport { SpriteProvider } from \"./icons/sprite\";\nimport { Toaster } from \"./toast\";\nimport { updateAppearance } from \"./appearance\";\n\nconst defaultSprite: SpriteValue = { href: \"\" };\n\nexport type ProviderBaseProps = {\n children: ReactNode;\n registry: Registry;\n sprite?: SpriteValue;\n toaster?: boolean;\n};\n\nexport function ProviderBase({\n children,\n registry,\n sprite = defaultSprite,\n toaster = true,\n}: ProviderBaseProps) {\n useFlashEffects();\n\n return (\n <RegistryContext.Provider value={registry}>\n <SpriteProvider sprite={sprite}>\n {children}\n <EventBridge onAppearanceChange={updateAppearance} />\n {toaster ? <Toaster /> : null}\n </SpriteProvider>\n </RegistryContext.Provider>\n );\n}\n"],"mappings":";;;;;;;;AAUA,IAAM,gBAA6B,EAAE,MAAM,GAAG;AAS9C,SAAgB,aAAa,EAC3B,UACA,UACA,SAAS,eACT,UAAU,QACU;CACpB,gBAAgB;CAEhB,OACE,oBAAC,gBAAgB,UAAjB;EAA0B,OAAO;YAC/B,qBAAC,gBAAD;GAAwB;aAAxB;IACG;IACD,oBAAC,aAAD,EAAa,oBAAoB,iBAAmB,CAAA;IACnD,UAAU,oBAAC,SAAD,CAAU,CAAA,IAAI;GACX;;CACQ,CAAA;AAE9B"}
1
+ {"version":3,"file":"provider-base.js","names":[],"sources":["../resources/js/provider-base.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { ActionInteractionProvider } from \"./action/components/action-trigger-provider\";\nimport type { Registry } from \"./core/registry\";\nimport { RegistryContext } from \"./core/registry-context\";\nimport { useFlashEffects } from \"./effects/use-flash-effects\";\nimport { EventBridge } from \"./event-bridge\";\nimport type { SpriteValue } from \"./icons/sprite\";\nimport { SpriteProvider } from \"./icons/sprite\";\nimport { Toaster } from \"./toast\";\nimport { updateAppearance } from \"./appearance\";\n\nconst defaultSprite: SpriteValue = { href: \"\" };\n\nexport type ProviderBaseProps = {\n children: ReactNode;\n registry: Registry;\n sprite?: SpriteValue;\n toaster?: boolean;\n};\n\nexport function ProviderBase({\n children,\n registry,\n sprite = defaultSprite,\n toaster = true,\n}: ProviderBaseProps) {\n useFlashEffects();\n\n return (\n <RegistryContext.Provider value={registry}>\n <ActionInteractionProvider>\n <SpriteProvider sprite={sprite}>\n {children}\n <EventBridge onAppearanceChange={updateAppearance} />\n {toaster ? <Toaster /> : null}\n </SpriteProvider>\n </ActionInteractionProvider>\n </RegistryContext.Provider>\n );\n}\n"],"mappings":";;;;;;;;;AAWA,IAAM,gBAA6B,EAAE,MAAM,GAAG;AAS9C,SAAgB,aAAa,EAC3B,UACA,UACA,SAAS,eACT,UAAU,QACU;CACpB,gBAAgB;CAEhB,OACE,oBAAC,gBAAgB,UAAjB;EAA0B,OAAO;YAC/B,oBAAC,2BAAD,EAAA,UACE,qBAAC,gBAAD;GAAwB;aAAxB;IACG;IACD,oBAAC,aAAD,EAAa,oBAAoB,iBAAmB,CAAA;IACnD,UAAU,oBAAC,SAAD,CAAU,CAAA,IAAI;GACX;KACS,CAAA;CACH,CAAA;AAE9B"}
@@ -1,7 +1,7 @@
1
- import { Registry } from './core/registry';
2
- import { ProviderBaseProps } from './provider-base';
1
+ import { Registry } from './core/registry.js';
2
+ import { ProviderBaseProps } from './provider-base.js';
3
3
  type ProviderProps = Omit<ProviderBaseProps, "registry"> & {
4
4
  registry?: Registry;
5
5
  };
6
6
  export declare function Provider({ registry, ...props }: ProviderProps): import("react").JSX.Element;
7
- export { useComponentRegistry, useColumnRegistry, useEffectHandlerRegistry, } from './core/registry-context';
7
+ export { useComponentRegistry, useColumnRegistry, useEffectHandlerRegistry, } from './core/registry-context.js';
@@ -1,5 +1,5 @@
1
- import { Effect } from '../types/generated';
2
- import { Translate } from '../i18n/translatable';
1
+ import { Effect } from '../types/generated.js';
2
+ import { Translate } from '../i18n/translatable.js';
3
3
  type RawEffect = Record<string, unknown>;
4
4
  export declare function buildEffects(effects: readonly RawEffect[], payload: Record<string, unknown>, t: Translate): Effect[];
5
5
  export {};
@@ -1,4 +1,4 @@
1
- import { ListenerPayload } from '../types/generated';
1
+ import { ListenerPayload } from '../types/generated.js';
2
2
  /**
3
3
  * Renders nothing when a page declares no listeners, so the echo-react chunk
4
4
  * is only fetched where it is actually needed.
@@ -1,4 +1,4 @@
1
- import { ListenerPayload } from '../types/generated';
1
+ import { ListenerPayload } from '../types/generated.js';
2
2
  export default function Subscriptions({ listeners }: {
3
3
  listeners: ListenerPayload[];
4
4
  }): import("react").JSX.Element;
@@ -1 +1 @@
1
- export declare const registry: import('./core/registry').Registry;
1
+ export declare const registry: import('./core/registry.js').Registry;
package/dist/registry.js CHANGED
@@ -1,14 +1,14 @@
1
1
  import { createRegistry } from "./core/registry.js";
2
- import { layoutComponents } from "./layout/components.js";
3
- import { actionComponents } from "./action/index.js";
4
- import { chatComponents } from "./chat/index.js";
5
- import { coreComponents } from "./core/components/index.js";
6
- import { formComponents } from "./form/index.js";
7
- import { notificationsComponents } from "./notifications/index.js";
8
- import { remoteComponents } from "./remote/index.js";
9
- import { tableComponents } from "./table/index.js";
2
+ import { layoutComponents } from "./layout/plugin.js";
3
+ import { actionComponents } from "./action/plugin.js";
4
+ import { chatComponents } from "./chat/plugin.js";
5
+ import { uiComponents } from "./ui/plugin.js";
6
+ import { formComponents } from "./form/plugin.js";
7
+ import { notificationsComponents } from "./notifications/plugin.js";
8
+ import { remoteComponents } from "./remote/plugin.js";
9
+ import { tableComponents } from "./table/plugin.js";
10
10
  //#region resources/js/registry.ts
11
- var registry = createRegistry(coreComponents, actionComponents, formComponents, layoutComponents, tableComponents, chatComponents, notificationsComponents, remoteComponents);
11
+ var registry = createRegistry(uiComponents, actionComponents, formComponents, layoutComponents, tableComponents, chatComponents, notificationsComponents, remoteComponents);
12
12
  //#endregion
13
13
  export { registry };
14
14
 
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","names":[],"sources":["../resources/js/registry.ts"],"sourcesContent":["import { createRegistry } from \"@lattice-php/lattice/core/registry\";\nimport { actionComponents } from \"./action\";\nimport { chatComponents } from \"./chat\";\nimport { coreComponents } from \"./core/components\";\nimport { formComponents } from \"./form\";\nimport { layoutComponents } from \"./layout\";\nimport { notificationsComponents } from \"./notifications\";\nimport { remoteComponents } from \"./remote\";\nimport { tableComponents } from \"./table\";\n\nexport const registry = createRegistry(\n coreComponents,\n actionComponents,\n formComponents,\n layoutComponents,\n tableComponents,\n chatComponents,\n notificationsComponents,\n remoteComponents,\n);\n"],"mappings":";;;;;;;;;;AAUA,IAAa,WAAW,eACtB,gBACA,kBACA,gBACA,kBACA,iBACA,gBACA,yBACA,gBACF"}
1
+ {"version":3,"file":"registry.js","names":[],"sources":["../resources/js/registry.ts"],"sourcesContent":["import { createRegistry } from \"@lattice-php/lattice/core/registry\";\nimport { actionComponents } from \"./action/plugin\";\nimport { chatComponents } from \"./chat/plugin\";\nimport { uiComponents } from \"./ui/plugin\";\nimport { formComponents } from \"./form/plugin\";\nimport { layoutComponents } from \"./layout\";\nimport { notificationsComponents } from \"./notifications/plugin\";\nimport { remoteComponents } from \"./remote/plugin\";\nimport { tableComponents } from \"./table/plugin\";\n\nexport const registry = createRegistry(\n uiComponents,\n actionComponents,\n formComponents,\n layoutComponents,\n tableComponents,\n chatComponents,\n notificationsComponents,\n remoteComponents,\n);\n"],"mappings":";;;;;;;;;;AAUA,IAAa,WAAW,eACtB,cACA,kBACA,gBACA,kBACA,iBACA,gBACA,yBACA,gBACF"}
@@ -1,5 +1,5 @@
1
- import { RendererComponent, Schema } from '../../core/types';
2
- import { DataList as DataListProps } from '../../types/generated';
1
+ import { RendererComponent, Schema } from '../../core/types.js';
2
+ import { DataList as DataListProps } from '../../types/generated.js';
3
3
  type RemoteDataListProps = DataListProps & {
4
4
  schema?: Schema;
5
5
  };
@@ -1,6 +1,7 @@
1
1
  import { Renderer } from "../../core/renderer.js";
2
2
  import { useT } from "../../i18n/instance.js";
3
3
  import { remoteJson } from "../../core/api.js";
4
+ import { materializeSchema } from "../../core/materialize.js";
4
5
  import { useEffect, useState } from "react";
5
6
  import { jsx, jsxs } from "react/jsx-runtime";
6
7
  //#region resources/js/remote/components/data-list.tsx
@@ -8,40 +9,6 @@ function label(value) {
8
9
  if (value === null || value === void 0) return "";
9
10
  return String(value);
10
11
  }
11
- function isRecord(value) {
12
- return typeof value === "object" && value !== null && !Array.isArray(value);
13
- }
14
- function dataBindings(value) {
15
- if (!isRecord(value)) return {};
16
- return Object.fromEntries(Object.entries(value).filter((entry) => {
17
- return typeof entry[1] === "string";
18
- }));
19
- }
20
- function rowValue(row, key) {
21
- if (key in row) return row[key];
22
- return key.split(".").reduce((value, segment) => {
23
- return isRecord(value) ? value[segment] : void 0;
24
- }, row);
25
- }
26
- function materializeProps(props, row) {
27
- if (!isRecord(props)) return {};
28
- const { dataBindings: bindings, ...materialized } = props;
29
- for (const [prop, key] of Object.entries(dataBindings(bindings))) {
30
- const value = rowValue(row, key);
31
- if (value !== void 0) materialized[prop] = value;
32
- }
33
- return materialized;
34
- }
35
- function materializeNode(node, row) {
36
- return {
37
- ...node,
38
- props: materializeProps(node.props, row),
39
- schema: node.schema?.map((child) => materializeNode(child, row))
40
- };
41
- }
42
- function materializeSchema(schema, row) {
43
- return schema?.map((node) => materializeNode(node, row)) ?? [];
44
- }
45
12
  function RemoteDataList({ props }) {
46
13
  const { t } = useT("lattice");
47
14
  const [rows, setRows] = useState([]);
@@ -1 +1 @@
1
- {"version":3,"file":"data-list.js","names":[],"sources":["../../../resources/js/remote/components/data-list.tsx"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport { Renderer } from \"@lattice-php/lattice/core/renderer\";\nimport type { Node, NodeProps, RendererComponent, Schema } from \"@lattice-php/lattice/core/types\";\nimport { remoteJson } from \"@lattice-php/lattice/core/api\";\nimport type { DataList as DataListProps } from \"@lattice-php/lattice/types/generated\";\nimport { useT } from \"@lattice-php/lattice/i18n\";\n\ntype RemotePayload = {\n data?: Array<Record<string, unknown>>;\n};\n\ntype RemoteRow = Record<string, unknown>;\n\ntype DataBindings = Record<string, string>;\n\ntype RemoteDataListProps = DataListProps & {\n schema?: Schema;\n};\n\nfunction label(value: unknown): string {\n if (value === null || value === undefined) {\n return \"\";\n }\n\n return String(value);\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction dataBindings(value: unknown): DataBindings {\n if (!isRecord(value)) {\n return {};\n }\n\n return Object.fromEntries(\n Object.entries(value).filter((entry): entry is [string, string] => {\n return typeof entry[1] === \"string\";\n }),\n );\n}\n\nfunction rowValue(row: RemoteRow, key: string): unknown {\n if (key in row) {\n return row[key];\n }\n\n return key.split(\".\").reduce<unknown>((value, segment) => {\n return isRecord(value) ? value[segment] : undefined;\n }, row);\n}\n\nfunction materializeProps(props: unknown, row: RemoteRow): NodeProps {\n if (!isRecord(props)) {\n return {};\n }\n\n const { dataBindings: bindings, ...materialized } = props;\n\n for (const [prop, key] of Object.entries(dataBindings(bindings))) {\n const value = rowValue(row, key);\n\n if (value !== undefined) {\n materialized[prop] = value;\n }\n }\n\n return materialized;\n}\n\nfunction materializeNode(node: Node, row: RemoteRow): Node {\n return {\n ...node,\n props: materializeProps(node.props, row),\n schema: node.schema?.map((child) => materializeNode(child, row)),\n } as Node;\n}\n\nfunction materializeSchema(schema: Schema | undefined, row: RemoteRow): Schema {\n return schema?.map((node) => materializeNode(node, row)) ?? [];\n}\n\nexport function RemoteDataList({ props }: { props: RemoteDataListProps }) {\n const { t } = useT(\"lattice\");\n const [rows, setRows] = useState<RemoteRow[]>([]);\n const [error, setError] = useState<string | null>(null);\n const [loading, setLoading] = useState(false);\n\n useEffect(() => {\n if (!props.remote || !props.dataEndpoint) {\n setRows([]);\n setLoading(false);\n\n return;\n }\n\n let cancelled = false;\n setError(null);\n setLoading(true);\n\n void remoteJson<RemotePayload>(props.dataEndpoint, { remote: props.remote })\n .then((payload) => {\n if (!cancelled) {\n setRows(payload.data ?? []);\n }\n })\n .catch((caught: unknown) => {\n if (!cancelled) {\n setError(caught instanceof Error ? caught.message : String(caught));\n }\n })\n .finally(() => {\n if (!cancelled) {\n setLoading(false);\n }\n });\n\n return () => {\n cancelled = true;\n };\n }, [props.dataEndpoint, props.remote]);\n\n if (error) {\n return <div className=\"rounded-lt border border-lt-danger/40 p-3 text-sm\">{error}</div>;\n }\n\n if (loading || !props.remote) {\n return (\n <div className=\"rounded-lt border border-lt-border p-3 text-sm\">\n {t(\"common.remote.data-list.loading\", \"Loading...\")}\n </div>\n );\n }\n\n return (\n <div className=\"rounded-lt border border-lt-border bg-lt-bg\">\n <div className=\"border-b border-lt-border px-3 py-2 text-sm font-medium\">\n {t(\"common.remote.data-list.title\", \"Remote data\")}\n </div>\n <div className=\"divide-y divide-lt-border\">\n {rows.map((row, index) => {\n return (\n <div className=\"px-3 py-2\" key={label(row.id) || index}>\n <Renderer nodes={materializeSchema(props.schema, row)} />\n </div>\n );\n })}\n {rows.length === 0 ? (\n <div className=\"px-3 py-2 text-sm text-lt-muted-fg\">\n {props.emptyLabel ?? t(\"common.remote.data-list.empty\", \"No data\")}\n </div>\n ) : null}\n </div>\n </div>\n );\n}\n\nexport const DataList: RendererComponent<\"remote.data-list\"> = ({ node }) => {\n return <RemoteDataList props={{ ...node.props, schema: node.schema }} />;\n};\n\nexport default DataList;\n"],"mappings":";;;;;;AAmBA,SAAS,MAAM,OAAwB;CACrC,IAAI,UAAU,QAAQ,UAAU,KAAA,GAC9B,OAAO;CAGT,OAAO,OAAO,KAAK;AACrB;AAEA,SAAS,SAAS,OAAkD;CAClE,OAAO,OAAO,UAAU,YAAY,UAAU,QAAQ,CAAC,MAAM,QAAQ,KAAK;AAC5E;AAEA,SAAS,aAAa,OAA8B;CAClD,IAAI,CAAC,SAAS,KAAK,GACjB,OAAO,CAAC;CAGV,OAAO,OAAO,YACZ,OAAO,QAAQ,KAAK,EAAE,QAAQ,UAAqC;EACjE,OAAO,OAAO,MAAM,OAAO;CAC7B,CAAC,CACH;AACF;AAEA,SAAS,SAAS,KAAgB,KAAsB;CACtD,IAAI,OAAO,KACT,OAAO,IAAI;CAGb,OAAO,IAAI,MAAM,GAAG,EAAE,QAAiB,OAAO,YAAY;EACxD,OAAO,SAAS,KAAK,IAAI,MAAM,WAAW,KAAA;CAC5C,GAAG,GAAG;AACR;AAEA,SAAS,iBAAiB,OAAgB,KAA2B;CACnE,IAAI,CAAC,SAAS,KAAK,GACjB,OAAO,CAAC;CAGV,MAAM,EAAE,cAAc,UAAU,GAAG,iBAAiB;CAEpD,KAAK,MAAM,CAAC,MAAM,QAAQ,OAAO,QAAQ,aAAa,QAAQ,CAAC,GAAG;EAChE,MAAM,QAAQ,SAAS,KAAK,GAAG;EAE/B,IAAI,UAAU,KAAA,GACZ,aAAa,QAAQ;CAEzB;CAEA,OAAO;AACT;AAEA,SAAS,gBAAgB,MAAY,KAAsB;CACzD,OAAO;EACL,GAAG;EACH,OAAO,iBAAiB,KAAK,OAAO,GAAG;EACvC,QAAQ,KAAK,QAAQ,KAAK,UAAU,gBAAgB,OAAO,GAAG,CAAC;CACjE;AACF;AAEA,SAAS,kBAAkB,QAA4B,KAAwB;CAC7E,OAAO,QAAQ,KAAK,SAAS,gBAAgB,MAAM,GAAG,CAAC,KAAK,CAAC;AAC/D;AAEA,SAAgB,eAAe,EAAE,SAAyC;CACxE,MAAM,EAAE,MAAM,KAAK,SAAS;CAC5B,MAAM,CAAC,MAAM,WAAW,SAAsB,CAAC,CAAC;CAChD,MAAM,CAAC,OAAO,YAAY,SAAwB,IAAI;CACtD,MAAM,CAAC,SAAS,cAAc,SAAS,KAAK;CAE5C,gBAAgB;EACd,IAAI,CAAC,MAAM,UAAU,CAAC,MAAM,cAAc;GACxC,QAAQ,CAAC,CAAC;GACV,WAAW,KAAK;GAEhB;EACF;EAEA,IAAI,YAAY;EAChB,SAAS,IAAI;EACb,WAAW,IAAI;EAEf,WAA+B,MAAM,cAAc,EAAE,QAAQ,MAAM,OAAO,CAAC,EACxE,MAAM,YAAY;GACjB,IAAI,CAAC,WACH,QAAQ,QAAQ,QAAQ,CAAC,CAAC;EAE9B,CAAC,EACA,OAAO,WAAoB;GAC1B,IAAI,CAAC,WACH,SAAS,kBAAkB,QAAQ,OAAO,UAAU,OAAO,MAAM,CAAC;EAEtE,CAAC,EACA,cAAc;GACb,IAAI,CAAC,WACH,WAAW,KAAK;EAEpB,CAAC;EAEH,aAAa;GACX,YAAY;EACd;CACF,GAAG,CAAC,MAAM,cAAc,MAAM,MAAM,CAAC;CAErC,IAAI,OACF,OAAO,oBAAC,OAAD;EAAK,WAAU;YAAqD;CAAW,CAAA;CAGxF,IAAI,WAAW,CAAC,MAAM,QACpB,OACE,oBAAC,OAAD;EAAK,WAAU;YACZ,EAAE,mCAAmC,YAAY;CAC/C,CAAA;CAIT,OACE,qBAAC,OAAD;EAAK,WAAU;YAAf,CACE,oBAAC,OAAD;GAAK,WAAU;aACZ,EAAE,iCAAiC,aAAa;EAC9C,CAAA,GACL,qBAAC,OAAD;GAAK,WAAU;aAAf,CACG,KAAK,KAAK,KAAK,UAAU;IACxB,OACE,oBAAC,OAAD;KAAK,WAAU;eACb,oBAAC,UAAD,EAAU,OAAO,kBAAkB,MAAM,QAAQ,GAAG,EAAI,CAAA;IACrD,GAF2B,MAAM,IAAI,EAAE,KAAK,KAE5C;GAET,CAAC,GACA,KAAK,WAAW,IACf,oBAAC,OAAD;IAAK,WAAU;cACZ,MAAM,cAAc,EAAE,iCAAiC,SAAS;GAC9D,CAAA,IACH,IACD;IACF;;AAET;AAEA,IAAa,YAAmD,EAAE,WAAW;CAC3E,OAAO,oBAAC,gBAAD,EAAgB,OAAO;EAAE,GAAG,KAAK;EAAO,QAAQ,KAAK;CAAO,EAAI,CAAA;AACzE"}
1
+ {"version":3,"file":"data-list.js","names":[],"sources":["../../../resources/js/remote/components/data-list.tsx"],"sourcesContent":["import { useEffect, useState } from \"react\";\nimport { Renderer } from \"@lattice-php/lattice/core/renderer\";\nimport type { RendererComponent, Schema } from \"@lattice-php/lattice/core/types\";\nimport { remoteJson } from \"@lattice-php/lattice/core/api\";\nimport { materializeSchema, type RemoteRow } from \"@lattice-php/lattice/core/materialize\";\nimport type { DataList as DataListProps } from \"@lattice-php/lattice/types/generated\";\nimport { useT } from \"@lattice-php/lattice/i18n\";\n\ntype RemotePayload = {\n data?: Array<Record<string, unknown>>;\n};\n\ntype RemoteDataListProps = DataListProps & {\n schema?: Schema;\n};\n\nfunction label(value: unknown): string {\n if (value === null || value === undefined) {\n return \"\";\n }\n\n return String(value);\n}\n\nexport function RemoteDataList({ props }: { props: RemoteDataListProps }) {\n const { t } = useT(\"lattice\");\n const [rows, setRows] = useState<RemoteRow[]>([]);\n const [error, setError] = useState<string | null>(null);\n const [loading, setLoading] = useState(false);\n\n useEffect(() => {\n if (!props.remote || !props.dataEndpoint) {\n setRows([]);\n setLoading(false);\n\n return;\n }\n\n let cancelled = false;\n setError(null);\n setLoading(true);\n\n void remoteJson<RemotePayload>(props.dataEndpoint, { remote: props.remote })\n .then((payload) => {\n if (!cancelled) {\n setRows(payload.data ?? []);\n }\n })\n .catch((caught: unknown) => {\n if (!cancelled) {\n setError(caught instanceof Error ? caught.message : String(caught));\n }\n })\n .finally(() => {\n if (!cancelled) {\n setLoading(false);\n }\n });\n\n return () => {\n cancelled = true;\n };\n }, [props.dataEndpoint, props.remote]);\n\n if (error) {\n return <div className=\"rounded-lt border border-lt-danger/40 p-3 text-sm\">{error}</div>;\n }\n\n if (loading || !props.remote) {\n return (\n <div className=\"rounded-lt border border-lt-border p-3 text-sm\">\n {t(\"common.remote.data-list.loading\", \"Loading...\")}\n </div>\n );\n }\n\n return (\n <div className=\"rounded-lt border border-lt-border bg-lt-bg\">\n <div className=\"border-b border-lt-border px-3 py-2 text-sm font-medium\">\n {t(\"common.remote.data-list.title\", \"Remote data\")}\n </div>\n <div className=\"divide-y divide-lt-border\">\n {rows.map((row, index) => {\n return (\n <div className=\"px-3 py-2\" key={label(row.id) || index}>\n <Renderer nodes={materializeSchema(props.schema, row)} />\n </div>\n );\n })}\n {rows.length === 0 ? (\n <div className=\"px-3 py-2 text-sm text-lt-muted-fg\">\n {props.emptyLabel ?? t(\"common.remote.data-list.empty\", \"No data\")}\n </div>\n ) : null}\n </div>\n </div>\n );\n}\n\nexport const DataList: RendererComponent<\"remote.data-list\"> = ({ node }) => {\n return <RemoteDataList props={{ ...node.props, schema: node.schema }} />;\n};\n\nexport default DataList;\n"],"mappings":";;;;;;;AAgBA,SAAS,MAAM,OAAwB;CACrC,IAAI,UAAU,QAAQ,UAAU,KAAA,GAC9B,OAAO;CAGT,OAAO,OAAO,KAAK;AACrB;AAEA,SAAgB,eAAe,EAAE,SAAyC;CACxE,MAAM,EAAE,MAAM,KAAK,SAAS;CAC5B,MAAM,CAAC,MAAM,WAAW,SAAsB,CAAC,CAAC;CAChD,MAAM,CAAC,OAAO,YAAY,SAAwB,IAAI;CACtD,MAAM,CAAC,SAAS,cAAc,SAAS,KAAK;CAE5C,gBAAgB;EACd,IAAI,CAAC,MAAM,UAAU,CAAC,MAAM,cAAc;GACxC,QAAQ,CAAC,CAAC;GACV,WAAW,KAAK;GAEhB;EACF;EAEA,IAAI,YAAY;EAChB,SAAS,IAAI;EACb,WAAW,IAAI;EAEf,WAA+B,MAAM,cAAc,EAAE,QAAQ,MAAM,OAAO,CAAC,EACxE,MAAM,YAAY;GACjB,IAAI,CAAC,WACH,QAAQ,QAAQ,QAAQ,CAAC,CAAC;EAE9B,CAAC,EACA,OAAO,WAAoB;GAC1B,IAAI,CAAC,WACH,SAAS,kBAAkB,QAAQ,OAAO,UAAU,OAAO,MAAM,CAAC;EAEtE,CAAC,EACA,cAAc;GACb,IAAI,CAAC,WACH,WAAW,KAAK;EAEpB,CAAC;EAEH,aAAa;GACX,YAAY;EACd;CACF,GAAG,CAAC,MAAM,cAAc,MAAM,MAAM,CAAC;CAErC,IAAI,OACF,OAAO,oBAAC,OAAD;EAAK,WAAU;YAAqD;CAAW,CAAA;CAGxF,IAAI,WAAW,CAAC,MAAM,QACpB,OACE,oBAAC,OAAD;EAAK,WAAU;YACZ,EAAE,mCAAmC,YAAY;CAC/C,CAAA;CAIT,OACE,qBAAC,OAAD;EAAK,WAAU;YAAf,CACE,oBAAC,OAAD;GAAK,WAAU;aACZ,EAAE,iCAAiC,aAAa;EAC9C,CAAA,GACL,qBAAC,OAAD;GAAK,WAAU;aAAf,CACG,KAAK,KAAK,KAAK,UAAU;IACxB,OACE,oBAAC,OAAD;KAAK,WAAU;eACb,oBAAC,UAAD,EAAU,OAAO,kBAAkB,MAAM,QAAQ,GAAG,EAAI,CAAA;IACrD,GAF2B,MAAM,IAAI,EAAE,KAAK,KAE5C;GAET,CAAC,GACA,KAAK,WAAW,IACf,oBAAC,OAAD;IAAK,WAAU;cACZ,MAAM,cAAc,EAAE,iCAAiC,SAAS;GAC9D,CAAA,IACH,IACD;IACF;;AAET;AAEA,IAAa,YAAmD,EAAE,WAAW;CAC3E,OAAO,oBAAC,gBAAD,EAAgB,OAAO;EAAE,GAAG,KAAK;EAAO,QAAQ,KAAK;CAAO,EAAI,CAAA;AACzE"}
@@ -1 +1 @@
1
- export declare const remoteComponents: import('../core/registry').Plugin;
1
+ export { remoteComponents } from './plugin.js';
@@ -1,11 +1,2 @@
1
- import { createPlugin, eagerComponent } from "../core/registry.js";
2
- import { DataList } from "./components/data-list.js";
3
- //#region resources/js/remote/index.ts
4
- var remoteComponents = createPlugin({
5
- components: { "remote.data-list": eagerComponent(DataList) },
6
- name: "lattice/remote"
7
- });
8
- //#endregion
1
+ import { remoteComponents } from "./plugin.js";
9
2
  export { remoteComponents };
10
-
11
- //# sourceMappingURL=index.js.map
@@ -0,0 +1,2 @@
1
+ export type RemoteComponentType = "remote.data-list";
2
+ export declare const remoteComponents: import('../core/registry.js').Plugin;
@@ -0,0 +1,11 @@
1
+ import { createPlugin, eagerComponent } from "../core/registry.js";
2
+ import { DataList } from "./components/data-list.js";
3
+ //#region resources/js/remote/plugin.ts
4
+ var remoteComponents = createPlugin({
5
+ components: { "remote.data-list": eagerComponent(DataList) },
6
+ name: "lattice/remote"
7
+ });
8
+ //#endregion
9
+ export { remoteComponents };
10
+
11
+ //# sourceMappingURL=plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.js","names":[],"sources":["../../resources/js/remote/plugin.ts"],"sourcesContent":["import {\n createPlugin,\n eagerComponent,\n type ComponentRegistryFor,\n} from \"@lattice-php/lattice/core/registry\";\nimport DataListComponent from \"./components/data-list\";\n\nexport type RemoteComponentType = \"remote.data-list\";\n\nexport const remoteComponents = createPlugin({\n components: {\n \"remote.data-list\": eagerComponent(DataListComponent),\n } satisfies ComponentRegistryFor<RemoteComponentType>,\n name: \"lattice/remote\",\n});\n"],"mappings":";;;AASA,IAAa,mBAAmB,aAAa;CAC3C,YAAY,EACV,oBAAoB,eAAe,QAAiB,EACtD;CACA,MAAM;AACR,CAAC"}
@@ -1,4 +1,4 @@
1
- import { BulkAction } from '../bulk';
1
+ import { BulkAction } from '../lib/bulk.js';
2
2
  export declare function BulkBar({ actions, selectedKeys, allMatching, total, query, canSelectAllMatching, onSelectAllMatching, onCompleted, }: {
3
3
  actions: BulkAction[];
4
4
  selectedKeys: string[];
@@ -1,12 +1,12 @@
1
1
  import { withHeaders } from "../../core/headers.js";
2
2
  import { useT } from "../../i18n/instance.js";
3
3
  import { prefixedTestId } from "../../core/test-id.js";
4
- import { Button } from "../../core/components/button.js";
5
- import { Spinner } from "../../core/components/spinner.js";
6
- import { ConfirmDialog } from "../../core/components/confirm-dialog.js";
7
4
  import { getActionEffects } from "../../effects/dispatch.js";
8
5
  import { useEffectDispatcher } from "../../effects/use-effect-dispatcher.js";
9
- import { runAction } from "../../action/run-action.js";
6
+ import { Button } from "../../ui/button.js";
7
+ import { Spinner } from "../../ui/spinner.js";
8
+ import { ConfirmDialog } from "../../ui/confirm-dialog.js";
9
+ import { runAction } from "../../action/lib/run-action.js";
10
10
  import { ActionForm } from "../../action/components/action-form.js";
11
11
  import { useHttp } from "@inertiajs/react";
12
12
  import { useState } from "react";
@@ -1 +1 @@
1
- {"version":3,"file":"bulk-bar.js","names":[],"sources":["../../../resources/js/table/components/bulk-bar.tsx"],"sourcesContent":["import { useHttp } from \"@inertiajs/react\";\nimport { useState } from \"react\";\nimport { ActionForm } from \"@lattice-php/lattice/action/components/action-form\";\nimport { runAction } from \"@lattice-php/lattice/action/run-action\";\nimport { getActionEffects } from \"@lattice-php/lattice/effects/dispatch\";\nimport type { ActionResponse } from \"@lattice-php/lattice/effects/dispatch\";\nimport { useEffectDispatcher } from \"@lattice-php/lattice/effects/use-effect-dispatcher\";\nimport { withHeaders } from \"@lattice-php/lattice/core/headers\";\nimport { Button } from \"@lattice-php/lattice/core/components/button\";\nimport { ConfirmDialog } from \"@lattice-php/lattice/core/components/confirm-dialog\";\nimport { Spinner } from \"@lattice-php/lattice/core/components/spinner\";\nimport { prefixedTestId } from \"@lattice-php/lattice/core/test-id\";\nimport { useT } from \"@lattice-php/lattice/i18n\";\nimport type { BulkAction } from \"../bulk\";\n\ntype BulkData = {\n allMatching?: boolean;\n selected?: string[];\n};\n\nexport function BulkBar({\n actions,\n selectedKeys,\n allMatching,\n total,\n query,\n canSelectAllMatching,\n onSelectAllMatching,\n onCompleted,\n}: {\n actions: BulkAction[];\n selectedKeys: string[];\n allMatching: boolean;\n total?: number;\n query: Record<string, unknown>;\n canSelectAllMatching: boolean;\n onSelectAllMatching: () => void;\n onCompleted: () => void;\n}) {\n const { t } = useT(\"lattice\");\n const http = useHttp<BulkData, ActionResponse>({});\n const dispatch = useEffectDispatcher();\n const [confirming, setConfirming] = useState<BulkAction | null>(null);\n const [filling, setFilling] = useState<BulkAction | null>(null);\n\n const selectionPayload = (): Record<string, unknown> =>\n allMatching ? { allMatching: true, ...query } : { selected: selectedKeys };\n\n async function submit(action: BulkAction): Promise<void> {\n http.transform((data) => ({ ...data, ...selectionPayload() }));\n\n const ok = await runAction(\n () => http[action.method](action.endpoint, { headers: withHeaders(action.ref ?? \"\") }),\n dispatch,\n );\n\n if (ok) {\n setConfirming(null);\n onCompleted();\n }\n }\n\n function run(action: BulkAction): void {\n if (action.form) {\n setFilling(action);\n\n return;\n }\n\n if (action.confirmation) {\n setConfirming(action);\n\n return;\n }\n\n void submit(action);\n }\n\n const count = allMatching ? (total ?? selectedKeys.length) : selectedKeys.length;\n\n return (\n <div className=\"flex flex-wrap items-center gap-3 border-b border-lt-border bg-lt-muted/50 p-4 text-sm\">\n <span className=\"font-medium\">\n {allMatching\n ? t(\"table.bulk.allSelected\", \"All {{count}} selected\", { count })\n : t(\"table.bulk.selected\", \"{{count}} selected\", { count })}\n </span>\n {canSelectAllMatching && (\n <button\n type=\"button\"\n data-test=\"bulk-select-all-matching\"\n className=\"font-medium text-lt-primary underline underline-offset-2\"\n onClick={onSelectAllMatching}\n >\n {t(\"table.bulk.selectAllMatching\", \"Select all {{total}} matching\", { total })}\n </button>\n )}\n <div className=\"flex flex-wrap items-center gap-2\">\n {actions.map((action) => (\n <Button\n key={action.id}\n type=\"button\"\n data-test={prefixedTestId(\"bulk-action\", action.id)}\n variant={action.variant}\n disabled={http.processing}\n onClick={() => run(action)}\n >\n {http.processing && <Spinner />}\n {action.label}\n </Button>\n ))}\n </div>\n\n {confirming?.confirmation && (\n <ConfirmDialog\n title={confirming.confirmation.title ?? confirming.label}\n description={confirming.confirmation.description ?? undefined}\n confirmLabel={confirming.confirmation.confirmLabel ?? confirming.label}\n cancelLabel={confirming.confirmation.cancelLabel ?? \"Cancel\"}\n confirmVariant={confirming.variant}\n processing={http.processing}\n onConfirm={() => void submit(confirming)}\n onCancel={() => setConfirming(null)}\n />\n )}\n\n {filling?.form && (\n <ActionForm\n cancelLabel={filling.confirmation?.cancelLabel ?? \"Cancel\"}\n componentRef={filling.ref}\n description={filling.confirmation?.description ?? undefined}\n endpoint={filling.endpoint}\n extraData={selectionPayload()}\n formNode={filling.form}\n method={filling.method}\n onClose={() => setFilling(null)}\n onSuccess={(response) => {\n dispatch(getActionEffects(response.effects));\n setFilling(null);\n onCompleted();\n }}\n submitLabel={filling.confirmation?.confirmLabel ?? filling.label}\n title={filling.confirmation?.title ?? filling.label}\n />\n )}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;AAoBA,SAAgB,QAAQ,EACtB,SACA,cACA,aACA,OACA,OACA,sBACA,qBACA,eAUC;CACD,MAAM,EAAE,MAAM,KAAK,SAAS;CAC5B,MAAM,OAAO,QAAkC,CAAC,CAAC;CACjD,MAAM,WAAW,oBAAoB;CACrC,MAAM,CAAC,YAAY,iBAAiB,SAA4B,IAAI;CACpE,MAAM,CAAC,SAAS,cAAc,SAA4B,IAAI;CAE9D,MAAM,yBACJ,cAAc;EAAE,aAAa;EAAM,GAAG;CAAM,IAAI,EAAE,UAAU,aAAa;CAE3E,eAAe,OAAO,QAAmC;EACvD,KAAK,WAAW,UAAU;GAAE,GAAG;GAAM,GAAG,iBAAiB;EAAE,EAAE;EAO7D,IAAI,MALa,gBACT,KAAK,OAAO,QAAQ,OAAO,UAAU,EAAE,SAAS,YAAY,OAAO,OAAO,EAAE,EAAE,CAAC,GACrF,QACF,GAEQ;GACN,cAAc,IAAI;GAClB,YAAY;EACd;CACF;CAEA,SAAS,IAAI,QAA0B;EACrC,IAAI,OAAO,MAAM;GACf,WAAW,MAAM;GAEjB;EACF;EAEA,IAAI,OAAO,cAAc;GACvB,cAAc,MAAM;GAEpB;EACF;EAEA,OAAY,MAAM;CACpB;CAEA,MAAM,QAAQ,cAAe,SAAS,aAAa,SAAU,aAAa;CAE1E,OACE,qBAAC,OAAD;EAAK,WAAU;YAAf;GACE,oBAAC,QAAD;IAAM,WAAU;cACb,cACG,EAAE,0BAA0B,0BAA0B,EAAE,MAAM,CAAC,IAC/D,EAAE,uBAAuB,sBAAsB,EAAE,MAAM,CAAC;GACxD,CAAA;GACL,wBACC,oBAAC,UAAD;IACE,MAAK;IACL,aAAU;IACV,WAAU;IACV,SAAS;cAER,EAAE,gCAAgC,iCAAiC,EAAE,MAAM,CAAC;GACvE,CAAA;GAEV,oBAAC,OAAD;IAAK,WAAU;cACZ,QAAQ,KAAK,WACZ,qBAAC,QAAD;KAEE,MAAK;KACL,aAAW,eAAe,eAAe,OAAO,EAAE;KAClD,SAAS,OAAO;KAChB,UAAU,KAAK;KACf,eAAe,IAAI,MAAM;eAN3B,CAQG,KAAK,cAAc,oBAAC,SAAD,CAAU,CAAA,GAC7B,OAAO,KACF;OATD,OAAO,EASN,CACT;GACE,CAAA;GAEJ,YAAY,gBACX,oBAAC,eAAD;IACE,OAAO,WAAW,aAAa,SAAS,WAAW;IACnD,aAAa,WAAW,aAAa,eAAe,KAAA;IACpD,cAAc,WAAW,aAAa,gBAAgB,WAAW;IACjE,aAAa,WAAW,aAAa,eAAe;IACpD,gBAAgB,WAAW;IAC3B,YAAY,KAAK;IACjB,iBAAiB,KAAK,OAAO,UAAU;IACvC,gBAAgB,cAAc,IAAI;GACnC,CAAA;GAGF,SAAS,QACR,oBAAC,YAAD;IACE,aAAa,QAAQ,cAAc,eAAe;IAClD,cAAc,QAAQ;IACtB,aAAa,QAAQ,cAAc,eAAe,KAAA;IAClD,UAAU,QAAQ;IAClB,WAAW,iBAAiB;IAC5B,UAAU,QAAQ;IAClB,QAAQ,QAAQ;IAChB,eAAe,WAAW,IAAI;IAC9B,YAAY,aAAa;KACvB,SAAS,iBAAiB,SAAS,OAAO,CAAC;KAC3C,WAAW,IAAI;KACf,YAAY;IACd;IACA,aAAa,QAAQ,cAAc,gBAAgB,QAAQ;IAC3D,OAAO,QAAQ,cAAc,SAAS,QAAQ;GAC/C,CAAA;EAEA;;AAET"}
1
+ {"version":3,"file":"bulk-bar.js","names":[],"sources":["../../../resources/js/table/components/bulk-bar.tsx"],"sourcesContent":["import { useHttp } from \"@inertiajs/react\";\nimport { useState } from \"react\";\nimport { ActionForm, runAction } from \"@lattice-php/lattice/action\";\nimport { getActionEffects } from \"@lattice-php/lattice/effects/dispatch\";\nimport type { ActionResponse } from \"@lattice-php/lattice/effects/dispatch\";\nimport { useEffectDispatcher } from \"@lattice-php/lattice/effects/use-effect-dispatcher\";\nimport { withHeaders } from \"@lattice-php/lattice/core/headers\";\nimport { Button } from \"@lattice-php/lattice/ui/button\";\nimport { ConfirmDialog } from \"@lattice-php/lattice/ui/confirm-dialog\";\nimport { Spinner } from \"@lattice-php/lattice/ui/spinner\";\nimport { prefixedTestId } from \"@lattice-php/lattice/core/test-id\";\nimport { useT } from \"@lattice-php/lattice/i18n\";\nimport type { BulkAction } from \"@lattice-php/lattice/table/lib/bulk\";\n\ntype BulkData = {\n allMatching?: boolean;\n selected?: string[];\n};\n\nexport function BulkBar({\n actions,\n selectedKeys,\n allMatching,\n total,\n query,\n canSelectAllMatching,\n onSelectAllMatching,\n onCompleted,\n}: {\n actions: BulkAction[];\n selectedKeys: string[];\n allMatching: boolean;\n total?: number;\n query: Record<string, unknown>;\n canSelectAllMatching: boolean;\n onSelectAllMatching: () => void;\n onCompleted: () => void;\n}) {\n const { t } = useT(\"lattice\");\n const http = useHttp<BulkData, ActionResponse>({});\n const dispatch = useEffectDispatcher();\n const [confirming, setConfirming] = useState<BulkAction | null>(null);\n const [filling, setFilling] = useState<BulkAction | null>(null);\n\n const selectionPayload = (): Record<string, unknown> =>\n allMatching ? { allMatching: true, ...query } : { selected: selectedKeys };\n\n async function submit(action: BulkAction): Promise<void> {\n http.transform((data) => ({ ...data, ...selectionPayload() }));\n\n const ok = await runAction(\n () => http[action.method](action.endpoint, { headers: withHeaders(action.ref ?? \"\") }),\n dispatch,\n );\n\n if (ok) {\n setConfirming(null);\n onCompleted();\n }\n }\n\n function run(action: BulkAction): void {\n if (action.form) {\n setFilling(action);\n\n return;\n }\n\n if (action.confirmation) {\n setConfirming(action);\n\n return;\n }\n\n void submit(action);\n }\n\n const count = allMatching ? (total ?? selectedKeys.length) : selectedKeys.length;\n\n return (\n <div className=\"flex flex-wrap items-center gap-3 border-b border-lt-border bg-lt-muted/50 p-4 text-sm\">\n <span className=\"font-medium\">\n {allMatching\n ? t(\"table.bulk.allSelected\", \"All {{count}} selected\", { count })\n : t(\"table.bulk.selected\", \"{{count}} selected\", { count })}\n </span>\n {canSelectAllMatching && (\n <button\n type=\"button\"\n data-test=\"bulk-select-all-matching\"\n className=\"font-medium text-lt-primary underline underline-offset-2\"\n onClick={onSelectAllMatching}\n >\n {t(\"table.bulk.selectAllMatching\", \"Select all {{total}} matching\", { total })}\n </button>\n )}\n <div className=\"flex flex-wrap items-center gap-2\">\n {actions.map((action) => (\n <Button\n key={action.id}\n type=\"button\"\n data-test={prefixedTestId(\"bulk-action\", action.id)}\n variant={action.variant}\n disabled={http.processing}\n onClick={() => run(action)}\n >\n {http.processing && <Spinner />}\n {action.label}\n </Button>\n ))}\n </div>\n\n {confirming?.confirmation && (\n <ConfirmDialog\n title={confirming.confirmation.title ?? confirming.label}\n description={confirming.confirmation.description ?? undefined}\n confirmLabel={confirming.confirmation.confirmLabel ?? confirming.label}\n cancelLabel={confirming.confirmation.cancelLabel ?? \"Cancel\"}\n confirmVariant={confirming.variant}\n processing={http.processing}\n onConfirm={() => void submit(confirming)}\n onCancel={() => setConfirming(null)}\n />\n )}\n\n {filling?.form && (\n <ActionForm\n cancelLabel={filling.confirmation?.cancelLabel ?? \"Cancel\"}\n componentRef={filling.ref}\n description={filling.confirmation?.description ?? undefined}\n endpoint={filling.endpoint}\n extraData={selectionPayload()}\n formNode={filling.form}\n method={filling.method}\n onClose={() => setFilling(null)}\n onSuccess={(response) => {\n dispatch(getActionEffects(response.effects));\n setFilling(null);\n onCompleted();\n }}\n submitLabel={filling.confirmation?.confirmLabel ?? filling.label}\n title={filling.confirmation?.title ?? filling.label}\n />\n )}\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;AAmBA,SAAgB,QAAQ,EACtB,SACA,cACA,aACA,OACA,OACA,sBACA,qBACA,eAUC;CACD,MAAM,EAAE,MAAM,KAAK,SAAS;CAC5B,MAAM,OAAO,QAAkC,CAAC,CAAC;CACjD,MAAM,WAAW,oBAAoB;CACrC,MAAM,CAAC,YAAY,iBAAiB,SAA4B,IAAI;CACpE,MAAM,CAAC,SAAS,cAAc,SAA4B,IAAI;CAE9D,MAAM,yBACJ,cAAc;EAAE,aAAa;EAAM,GAAG;CAAM,IAAI,EAAE,UAAU,aAAa;CAE3E,eAAe,OAAO,QAAmC;EACvD,KAAK,WAAW,UAAU;GAAE,GAAG;GAAM,GAAG,iBAAiB;EAAE,EAAE;EAO7D,IAAI,MALa,gBACT,KAAK,OAAO,QAAQ,OAAO,UAAU,EAAE,SAAS,YAAY,OAAO,OAAO,EAAE,EAAE,CAAC,GACrF,QACF,GAEQ;GACN,cAAc,IAAI;GAClB,YAAY;EACd;CACF;CAEA,SAAS,IAAI,QAA0B;EACrC,IAAI,OAAO,MAAM;GACf,WAAW,MAAM;GAEjB;EACF;EAEA,IAAI,OAAO,cAAc;GACvB,cAAc,MAAM;GAEpB;EACF;EAEA,OAAY,MAAM;CACpB;CAEA,MAAM,QAAQ,cAAe,SAAS,aAAa,SAAU,aAAa;CAE1E,OACE,qBAAC,OAAD;EAAK,WAAU;YAAf;GACE,oBAAC,QAAD;IAAM,WAAU;cACb,cACG,EAAE,0BAA0B,0BAA0B,EAAE,MAAM,CAAC,IAC/D,EAAE,uBAAuB,sBAAsB,EAAE,MAAM,CAAC;GACxD,CAAA;GACL,wBACC,oBAAC,UAAD;IACE,MAAK;IACL,aAAU;IACV,WAAU;IACV,SAAS;cAER,EAAE,gCAAgC,iCAAiC,EAAE,MAAM,CAAC;GACvE,CAAA;GAEV,oBAAC,OAAD;IAAK,WAAU;cACZ,QAAQ,KAAK,WACZ,qBAAC,QAAD;KAEE,MAAK;KACL,aAAW,eAAe,eAAe,OAAO,EAAE;KAClD,SAAS,OAAO;KAChB,UAAU,KAAK;KACf,eAAe,IAAI,MAAM;eAN3B,CAQG,KAAK,cAAc,oBAAC,SAAD,CAAU,CAAA,GAC7B,OAAO,KACF;OATD,OAAO,EASN,CACT;GACE,CAAA;GAEJ,YAAY,gBACX,oBAAC,eAAD;IACE,OAAO,WAAW,aAAa,SAAS,WAAW;IACnD,aAAa,WAAW,aAAa,eAAe,KAAA;IACpD,cAAc,WAAW,aAAa,gBAAgB,WAAW;IACjE,aAAa,WAAW,aAAa,eAAe;IACpD,gBAAgB,WAAW;IAC3B,YAAY,KAAK;IACjB,iBAAiB,KAAK,OAAO,UAAU;IACvC,gBAAgB,cAAc,IAAI;GACnC,CAAA;GAGF,SAAS,QACR,oBAAC,YAAD;IACE,aAAa,QAAQ,cAAc,eAAe;IAClD,cAAc,QAAQ;IACtB,aAAa,QAAQ,cAAc,eAAe,KAAA;IAClD,UAAU,QAAQ;IAClB,WAAW,iBAAiB;IAC5B,UAAU,QAAQ;IAClB,QAAQ,QAAQ;IAChB,eAAe,WAAW,IAAI;IAC9B,YAAY,aAAa;KACvB,SAAS,iBAAiB,SAAS,OAAO,CAAC;KAC3C,WAAW,IAAI;KACf,YAAY;IACd;IACA,aAAa,QAAQ,cAAc,gBAAgB,QAAQ;IAC3D,OAAO,QAAQ,cAAc,SAAS,QAAQ;GAC/C,CAAA;EAEA;;AAET"}
@@ -1,2 +1,2 @@
1
- import { ColumnCellComponent } from '../../registry';
1
+ import { ColumnCellComponent } from '../../registry.js';
2
2
  export declare const BadgeCell: ColumnCellComponent<"column.badge">;
@@ -1,5 +1,5 @@
1
1
  import { cn } from "../../../lib/utils.js";
2
- import { formatCell } from "../../format.js";
2
+ import { formatCell } from "../../lib/format.js";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
  //#region resources/js/table/components/cells/badge-cell.tsx
5
5
  var BadgeCell = ({ column, props, value }) => {
@@ -1 +1 @@
1
- {"version":3,"file":"badge-cell.js","names":[],"sources":["../../../../resources/js/table/components/cells/badge-cell.tsx"],"sourcesContent":["import { cn } from \"@lattice-php/lattice/lib/utils\";\nimport { formatCell } from \"../../format\";\nimport type { ColumnCellComponent } from \"../../registry\";\n\nexport const BadgeCell: ColumnCellComponent<\"column.badge\"> = ({ column, props, value }) => {\n const label = formatCell(value, column);\n\n if (label === \"\") {\n return null;\n }\n\n const color = props.colors?.[String(value)] ?? \"gray\";\n\n return <span className={cn(\"lt-cell-badge\", `lt-cell-tone-${color}`)}>{label}</span>;\n};\n"],"mappings":";;;;AAIA,IAAa,aAAkD,EAAE,QAAQ,OAAO,YAAY;CAC1F,MAAM,QAAQ,WAAW,OAAO,MAAM;CAEtC,IAAI,UAAU,IACZ,OAAO;CAKT,OAAO,oBAAC,QAAD;EAAM,WAAW,GAAG,iBAAiB,gBAF9B,MAAM,SAAS,OAAO,KAAK,MAAM,QAEoB;YAAI;CAAY,CAAA;AACrF"}
1
+ {"version":3,"file":"badge-cell.js","names":[],"sources":["../../../../resources/js/table/components/cells/badge-cell.tsx"],"sourcesContent":["import { cn } from \"@lattice-php/lattice/lib/utils\";\nimport { formatCell } from \"@lattice-php/lattice/table/lib/format\";\nimport type { ColumnCellComponent } from \"@lattice-php/lattice/table/registry\";\n\nexport const BadgeCell: ColumnCellComponent<\"column.badge\"> = ({ column, props, value }) => {\n const label = formatCell(value, column);\n\n if (label === \"\") {\n return null;\n }\n\n const color = props.colors?.[String(value)] ?? \"gray\";\n\n return <span className={cn(\"lt-cell-badge\", `lt-cell-tone-${color}`)}>{label}</span>;\n};\n"],"mappings":";;;;AAIA,IAAa,aAAkD,EAAE,QAAQ,OAAO,YAAY;CAC1F,MAAM,QAAQ,WAAW,OAAO,MAAM;CAEtC,IAAI,UAAU,IACZ,OAAO;CAKT,OAAO,oBAAC,QAAD;EAAM,WAAW,GAAG,iBAAiB,gBAF9B,MAAM,SAAS,OAAO,KAAK,MAAM,QAEoB;YAAI;CAAY,CAAA;AACrF"}
@@ -1,2 +1,2 @@
1
- import { ColumnCellComponent } from '../../registry';
1
+ import { ColumnCellComponent } from '../../registry.js';
2
2
  export declare const BooleanCell: ColumnCellComponent<"column.boolean">;
@@ -1 +1 @@
1
- {"version":3,"file":"boolean-cell.js","names":[],"sources":["../../../../resources/js/table/components/cells/boolean-cell.tsx"],"sourcesContent":["import { Icon } from \"@lattice-php/lattice/icons\";\nimport { cn } from \"@lattice-php/lattice/lib/utils\";\nimport type { ColumnCellComponent } from \"../../registry\";\n\nfunction isTruthy(value: unknown): boolean {\n return value === true || value === 1 || value === \"1\" || value === \"true\";\n}\n\nexport const BooleanCell: ColumnCellComponent<\"column.boolean\"> = ({ value }) => {\n const truthy = isTruthy(value);\n\n return (\n <span aria-label={String(truthy)} role=\"img\">\n <Icon\n name={truthy ? \"check\" : \"x\"}\n className={cn(\"size-lt-icon-md\", truthy ? \"text-lt-success\" : \"text-lt-muted-fg\")}\n />\n </span>\n );\n};\n"],"mappings":";;;;AAIA,SAAS,SAAS,OAAyB;CACzC,OAAO,UAAU,QAAQ,UAAU,KAAK,UAAU,OAAO,UAAU;AACrE;AAEA,IAAa,eAAsD,EAAE,YAAY;CAC/E,MAAM,SAAS,SAAS,KAAK;CAE7B,OACE,oBAAC,QAAD;EAAM,cAAY,OAAO,MAAM;EAAG,MAAK;YACrC,oBAAC,MAAD;GACE,MAAM,SAAS,UAAU;GACzB,WAAW,GAAG,mBAAmB,SAAS,oBAAoB,kBAAkB;EACjF,CAAA;CACG,CAAA;AAEV"}
1
+ {"version":3,"file":"boolean-cell.js","names":[],"sources":["../../../../resources/js/table/components/cells/boolean-cell.tsx"],"sourcesContent":["import { Icon } from \"@lattice-php/lattice/icons\";\nimport { cn } from \"@lattice-php/lattice/lib/utils\";\nimport type { ColumnCellComponent } from \"@lattice-php/lattice/table/registry\";\n\nfunction isTruthy(value: unknown): boolean {\n return value === true || value === 1 || value === \"1\" || value === \"true\";\n}\n\nexport const BooleanCell: ColumnCellComponent<\"column.boolean\"> = ({ value }) => {\n const truthy = isTruthy(value);\n\n return (\n <span aria-label={String(truthy)} role=\"img\">\n <Icon\n name={truthy ? \"check\" : \"x\"}\n className={cn(\"size-lt-icon-md\", truthy ? \"text-lt-success\" : \"text-lt-muted-fg\")}\n />\n </span>\n );\n};\n"],"mappings":";;;;AAIA,SAAS,SAAS,OAAyB;CACzC,OAAO,UAAU,QAAQ,UAAU,KAAK,UAAU,OAAO,UAAU;AACrE;AAEA,IAAa,eAAsD,EAAE,YAAY;CAC/E,MAAM,SAAS,SAAS,KAAK;CAE7B,OACE,oBAAC,QAAD;EAAM,cAAY,OAAO,MAAM;EAAG,MAAK;YACrC,oBAAC,MAAD;GACE,MAAM,SAAS,UAAU;GACzB,WAAW,GAAG,mBAAmB,SAAS,oBAAoB,kBAAkB;EACjF,CAAA;CACG,CAAA;AAEV"}
@@ -1,2 +1,2 @@
1
- import { ColumnCellComponent } from '../../registry';
1
+ import { ColumnCellComponent } from '../../registry.js';
2
2
  export declare const IconCell: ColumnCellComponent<"column.icon">;
@@ -1 +1 @@
1
- {"version":3,"file":"icon-cell.js","names":[],"sources":["../../../../resources/js/table/components/cells/icon-cell.tsx"],"sourcesContent":["import { IconRenderer } from \"@lattice-php/lattice/icons\";\nimport { cn } from \"@lattice-php/lattice/lib/utils\";\nimport type { ColumnCellComponent } from \"../../registry\";\n\nexport const IconCell: ColumnCellComponent<\"column.icon\"> = ({ props, value }) => {\n const icon = props.icons?.[String(value)] ?? props.icon ?? undefined;\n\n if (!icon) {\n return null;\n }\n\n const color = props.colors?.[String(value)];\n\n return (\n <span\n aria-label={String(value)}\n className={cn(\"lt-cell-icon\", color && `lt-cell-tone-${color}`)}\n >\n <IconRenderer className=\"size-lt-icon-md\" icon={icon} />\n </span>\n );\n};\n"],"mappings":";;;;AAIA,IAAa,YAAgD,EAAE,OAAO,YAAY;CAChF,MAAM,OAAO,MAAM,QAAQ,OAAO,KAAK,MAAM,MAAM,QAAQ,KAAA;CAE3D,IAAI,CAAC,MACH,OAAO;CAGT,MAAM,QAAQ,MAAM,SAAS,OAAO,KAAK;CAEzC,OACE,oBAAC,QAAD;EACE,cAAY,OAAO,KAAK;EACxB,WAAW,GAAG,gBAAgB,SAAS,gBAAgB,OAAO;YAE9D,oBAAC,cAAD;GAAc,WAAU;GAAwB;EAAO,CAAA;CACnD,CAAA;AAEV"}
1
+ {"version":3,"file":"icon-cell.js","names":[],"sources":["../../../../resources/js/table/components/cells/icon-cell.tsx"],"sourcesContent":["import { IconRenderer } from \"@lattice-php/lattice/icons\";\nimport { cn } from \"@lattice-php/lattice/lib/utils\";\nimport type { ColumnCellComponent } from \"@lattice-php/lattice/table/registry\";\n\nexport const IconCell: ColumnCellComponent<\"column.icon\"> = ({ props, value }) => {\n const icon = props.icons?.[String(value)] ?? props.icon ?? undefined;\n\n if (!icon) {\n return null;\n }\n\n const color = props.colors?.[String(value)];\n\n return (\n <span\n aria-label={String(value)}\n className={cn(\"lt-cell-icon\", color && `lt-cell-tone-${color}`)}\n >\n <IconRenderer className=\"size-lt-icon-md\" icon={icon} />\n </span>\n );\n};\n"],"mappings":";;;;AAIA,IAAa,YAAgD,EAAE,OAAO,YAAY;CAChF,MAAM,OAAO,MAAM,QAAQ,OAAO,KAAK,MAAM,MAAM,QAAQ,KAAA;CAE3D,IAAI,CAAC,MACH,OAAO;CAGT,MAAM,QAAQ,MAAM,SAAS,OAAO,KAAK;CAEzC,OACE,oBAAC,QAAD;EACE,cAAY,OAAO,KAAK;EACxB,WAAW,GAAG,gBAAgB,SAAS,gBAAgB,OAAO;YAE9D,oBAAC,cAAD;GAAc,WAAU;GAAwB;EAAO,CAAA;CACnD,CAAA;AAEV"}
@@ -1,2 +1,2 @@
1
- import { ColumnCellComponent } from '../../registry';
1
+ import { ColumnCellComponent } from '../../registry.js';
2
2
  export declare const ImageCell: ColumnCellComponent<"column.image">;
@@ -6,7 +6,7 @@ var ImageCell = ({ column, props, value }) => {
6
6
  if (url === "") return null;
7
7
  const size = props.size ?? 32;
8
8
  return /* @__PURE__ */ jsx("img", {
9
- alt: column.label,
9
+ alt: column.props.label ?? void 0,
10
10
  src: url,
11
11
  width: size,
12
12
  height: size,
@@ -1 +1 @@
1
- {"version":3,"file":"image-cell.js","names":[],"sources":["../../../../resources/js/table/components/cells/image-cell.tsx"],"sourcesContent":["import { cn } from \"@lattice-php/lattice/lib/utils\";\nimport type { ColumnCellComponent } from \"../../registry\";\n\nexport const ImageCell: ColumnCellComponent<\"column.image\"> = ({ column, props, value }) => {\n const url = typeof value === \"string\" ? value : \"\";\n\n if (url === \"\") {\n return null;\n }\n\n const size = props.size ?? 32;\n\n return (\n <img\n alt={column.label}\n src={url}\n width={size}\n height={size}\n className={cn(\"object-cover\", props.circular ? \"rounded-full\" : \"rounded-lt-sm\")}\n style={{ width: size, height: size }}\n />\n );\n};\n"],"mappings":";;;AAGA,IAAa,aAAkD,EAAE,QAAQ,OAAO,YAAY;CAC1F,MAAM,MAAM,OAAO,UAAU,WAAW,QAAQ;CAEhD,IAAI,QAAQ,IACV,OAAO;CAGT,MAAM,OAAO,MAAM,QAAQ;CAE3B,OACE,oBAAC,OAAD;EACE,KAAK,OAAO;EACZ,KAAK;EACL,OAAO;EACP,QAAQ;EACR,WAAW,GAAG,gBAAgB,MAAM,WAAW,iBAAiB,eAAe;EAC/E,OAAO;GAAE,OAAO;GAAM,QAAQ;EAAK;CACpC,CAAA;AAEL"}
1
+ {"version":3,"file":"image-cell.js","names":[],"sources":["../../../../resources/js/table/components/cells/image-cell.tsx"],"sourcesContent":["import { cn } from \"@lattice-php/lattice/lib/utils\";\nimport type { ColumnCellComponent } from \"@lattice-php/lattice/table/registry\";\n\nexport const ImageCell: ColumnCellComponent<\"column.image\"> = ({ column, props, value }) => {\n const url = typeof value === \"string\" ? value : \"\";\n\n if (url === \"\") {\n return null;\n }\n\n const size = props.size ?? 32;\n\n return (\n <img\n alt={column.props.label ?? undefined}\n src={url}\n width={size}\n height={size}\n className={cn(\"object-cover\", props.circular ? \"rounded-full\" : \"rounded-lt-sm\")}\n style={{ width: size, height: size }}\n />\n );\n};\n"],"mappings":";;;AAGA,IAAa,aAAkD,EAAE,QAAQ,OAAO,YAAY;CAC1F,MAAM,MAAM,OAAO,UAAU,WAAW,QAAQ;CAEhD,IAAI,QAAQ,IACV,OAAO;CAGT,MAAM,OAAO,MAAM,QAAQ;CAE3B,OACE,oBAAC,OAAD;EACE,KAAK,OAAO,MAAM,SAAS,KAAA;EAC3B,KAAK;EACL,OAAO;EACP,QAAQ;EACR,WAAW,GAAG,gBAAgB,MAAM,WAAW,iBAAiB,eAAe;EAC/E,OAAO;GAAE,OAAO;GAAM,QAAQ;EAAK;CACpC,CAAA;AAEL"}
@@ -1,2 +1,2 @@
1
- import { ColumnCellComponent } from '../../registry';
1
+ import { ColumnCellComponent } from '../../registry.js';
2
2
  export declare const MoneyCell: ColumnCellComponent<"column.money">;
@@ -1,5 +1,5 @@
1
1
  import { useLocale } from "../../../i18n/locale.js";
2
- import { formatCell } from "../../format.js";
2
+ import { formatCell } from "../../lib/format.js";
3
3
  import { numericValue } from "../../../format/numeric.js";
4
4
  import { formatNumber } from "../../../format/number.js";
5
5
  import { jsx } from "react/jsx-runtime";
@@ -1 +1 @@
1
- {"version":3,"file":"money-cell.js","names":[],"sources":["../../../../resources/js/table/components/cells/money-cell.tsx"],"sourcesContent":["import { useLocale } from \"@lattice-php/lattice/i18n\";\nimport { formatNumber } from \"../../../format/number\";\nimport { numericValue } from \"../../../format/numeric\";\nimport { formatCell } from \"../../format\";\nimport type { ColumnCellComponent } from \"../../registry\";\n\nexport const MoneyCell: ColumnCellComponent<\"column.money\"> = ({ column, props, row, value }) => {\n const { locale } = useLocale();\n\n if (numericValue(value) === null) {\n return <span>{formatCell(value, column)}</span>;\n }\n\n const rawCode = props.currencyField ? row[props.currencyField] : undefined;\n const code = props.currency ?? (typeof rawCode === \"string\" ? rawCode : null);\n\n const text = formatNumber(\n value,\n {\n kind: \"number\",\n notation: \"standard\",\n minimumFractionDigits: props.minimumFractionDigits,\n maximumFractionDigits: props.maximumFractionDigits,\n currency: code,\n unit: null,\n },\n locale,\n );\n\n return <span className=\"tabular-nums\">{text}</span>;\n};\n"],"mappings":";;;;;;AAMA,IAAa,aAAkD,EAAE,QAAQ,OAAO,KAAK,YAAY;CAC/F,MAAM,EAAE,WAAW,UAAU;CAE7B,IAAI,aAAa,KAAK,MAAM,MAC1B,OAAO,oBAAC,QAAD,EAAA,UAAO,WAAW,OAAO,MAAM,EAAQ,CAAA;CAGhD,MAAM,UAAU,MAAM,gBAAgB,IAAI,MAAM,iBAAiB,KAAA;CACjE,MAAM,OAAO,MAAM,aAAa,OAAO,YAAY,WAAW,UAAU;CAexE,OAAO,oBAAC,QAAD;EAAM,WAAU;YAbV,aACX,OACA;GACE,MAAM;GACN,UAAU;GACV,uBAAuB,MAAM;GAC7B,uBAAuB,MAAM;GAC7B,UAAU;GACV,MAAM;EACR,GACA,MAGqC;CAAW,CAAA;AACpD"}
1
+ {"version":3,"file":"money-cell.js","names":[],"sources":["../../../../resources/js/table/components/cells/money-cell.tsx"],"sourcesContent":["import { useLocale } from \"@lattice-php/lattice/i18n\";\nimport { formatNumber } from \"@lattice-php/lattice/format/number\";\nimport { numericValue } from \"@lattice-php/lattice/format/numeric\";\nimport { formatCell } from \"@lattice-php/lattice/table/lib/format\";\nimport type { ColumnCellComponent } from \"@lattice-php/lattice/table/registry\";\n\nexport const MoneyCell: ColumnCellComponent<\"column.money\"> = ({ column, props, row, value }) => {\n const { locale } = useLocale();\n\n if (numericValue(value) === null) {\n return <span>{formatCell(value, column)}</span>;\n }\n\n const rawCode = props.currencyField ? row[props.currencyField] : undefined;\n const code = props.currency ?? (typeof rawCode === \"string\" ? rawCode : null);\n\n const text = formatNumber(\n value,\n {\n kind: \"number\",\n notation: \"standard\",\n minimumFractionDigits: props.minimumFractionDigits,\n maximumFractionDigits: props.maximumFractionDigits,\n currency: code,\n unit: null,\n },\n locale,\n );\n\n return <span className=\"tabular-nums\">{text}</span>;\n};\n"],"mappings":";;;;;;AAMA,IAAa,aAAkD,EAAE,QAAQ,OAAO,KAAK,YAAY;CAC/F,MAAM,EAAE,WAAW,UAAU;CAE7B,IAAI,aAAa,KAAK,MAAM,MAC1B,OAAO,oBAAC,QAAD,EAAA,UAAO,WAAW,OAAO,MAAM,EAAQ,CAAA;CAGhD,MAAM,UAAU,MAAM,gBAAgB,IAAI,MAAM,iBAAiB,KAAA;CACjE,MAAM,OAAO,MAAM,aAAa,OAAO,YAAY,WAAW,UAAU;CAexE,OAAO,oBAAC,QAAD;EAAM,WAAU;YAbV,aACX,OACA;GACE,MAAM;GACN,UAAU;GACV,uBAAuB,MAAM;GAC7B,uBAAuB,MAAM;GAC7B,UAAU;GACV,MAAM;EACR,GACA,MAGqC;CAAW,CAAA;AACpD"}
@@ -1,2 +1,2 @@
1
- import { ColumnCellComponent } from '../../registry';
1
+ import { ColumnCellComponent } from '../../registry.js';
2
2
  export declare const NumberCell: ColumnCellComponent<"column.number">;
@@ -1,5 +1,5 @@
1
1
  import { useLocale } from "../../../i18n/locale.js";
2
- import { formatCell } from "../../format.js";
2
+ import { formatCell } from "../../lib/format.js";
3
3
  import { numericValue } from "../../../format/numeric.js";
4
4
  import { formatNumber } from "../../../format/number.js";
5
5
  import { jsx } from "react/jsx-runtime";
@@ -1 +1 @@
1
- {"version":3,"file":"number-cell.js","names":[],"sources":["../../../../resources/js/table/components/cells/number-cell.tsx"],"sourcesContent":["import { useLocale } from \"@lattice-php/lattice/i18n\";\nimport { formatNumber } from \"../../../format/number\";\nimport { numericValue } from \"../../../format/numeric\";\nimport { formatCell } from \"../../format\";\nimport type { ColumnCellComponent } from \"../../registry\";\n\nexport const NumberCell: ColumnCellComponent<\"column.number\"> = ({ column, props, value }) => {\n const { locale } = useLocale();\n\n if (numericValue(value) === null) {\n return <span>{formatCell(value, column)}</span>;\n }\n\n const text = formatNumber(\n value,\n {\n kind: \"number\",\n notation: props.compact ? \"compact\" : \"standard\",\n minimumFractionDigits: props.minimumFractionDigits,\n maximumFractionDigits: props.maximumFractionDigits,\n currency: null,\n unit: props.unit,\n },\n locale,\n );\n\n return <span className=\"tabular-nums\">{text}</span>;\n};\n"],"mappings":";;;;;;AAMA,IAAa,cAAoD,EAAE,QAAQ,OAAO,YAAY;CAC5F,MAAM,EAAE,WAAW,UAAU;CAE7B,IAAI,aAAa,KAAK,MAAM,MAC1B,OAAO,oBAAC,QAAD,EAAA,UAAO,WAAW,OAAO,MAAM,EAAQ,CAAA;CAgBhD,OAAO,oBAAC,QAAD;EAAM,WAAU;YAbV,aACX,OACA;GACE,MAAM;GACN,UAAU,MAAM,UAAU,YAAY;GACtC,uBAAuB,MAAM;GAC7B,uBAAuB,MAAM;GAC7B,UAAU;GACV,MAAM,MAAM;EACd,GACA,MAGqC;CAAW,CAAA;AACpD"}
1
+ {"version":3,"file":"number-cell.js","names":[],"sources":["../../../../resources/js/table/components/cells/number-cell.tsx"],"sourcesContent":["import { useLocale } from \"@lattice-php/lattice/i18n\";\nimport { formatNumber } from \"@lattice-php/lattice/format/number\";\nimport { numericValue } from \"@lattice-php/lattice/format/numeric\";\nimport { formatCell } from \"@lattice-php/lattice/table/lib/format\";\nimport type { ColumnCellComponent } from \"@lattice-php/lattice/table/registry\";\n\nexport const NumberCell: ColumnCellComponent<\"column.number\"> = ({ column, props, value }) => {\n const { locale } = useLocale();\n\n if (numericValue(value) === null) {\n return <span>{formatCell(value, column)}</span>;\n }\n\n const text = formatNumber(\n value,\n {\n kind: \"number\",\n notation: props.compact ? \"compact\" : \"standard\",\n minimumFractionDigits: props.minimumFractionDigits,\n maximumFractionDigits: props.maximumFractionDigits,\n currency: null,\n unit: props.unit,\n },\n locale,\n );\n\n return <span className=\"tabular-nums\">{text}</span>;\n};\n"],"mappings":";;;;;;AAMA,IAAa,cAAoD,EAAE,QAAQ,OAAO,YAAY;CAC5F,MAAM,EAAE,WAAW,UAAU;CAE7B,IAAI,aAAa,KAAK,MAAM,MAC1B,OAAO,oBAAC,QAAD,EAAA,UAAO,WAAW,OAAO,MAAM,EAAQ,CAAA;CAgBhD,OAAO,oBAAC,QAAD;EAAM,WAAU;YAbV,aACX,OACA;GACE,MAAM;GACN,UAAU,MAAM,UAAU,YAAY;GACtC,uBAAuB,MAAM;GAC7B,uBAAuB,MAAM;GAC7B,UAAU;GACV,MAAM,MAAM;EACd,GACA,MAGqC;CAAW,CAAA;AACpD"}
@@ -1,2 +1,2 @@
1
- import { ColumnCellComponent } from '../../registry';
1
+ import { ColumnCellComponent } from '../../registry.js';
2
2
  export declare const StackCell: ColumnCellComponent<"column.stack">;
@@ -1,14 +1,10 @@
1
- import { TextCell } from "./text-cell.js";
1
+ import { Renderer } from "../../../core/renderer.js";
2
+ import { materializeSchema } from "../../../core/materialize.js";
2
3
  import { jsx } from "react/jsx-runtime";
3
4
  //#region resources/js/table/components/cells/stack-cell.tsx
4
5
  var StackCell = ({ column, row }) => /* @__PURE__ */ jsx("div", {
5
6
  className: "grid gap-1",
6
- children: (column.columns ?? []).map((stackedColumn) => /* @__PURE__ */ jsx("span", { children: /* @__PURE__ */ jsx(TextCell, {
7
- column: stackedColumn,
8
- props: stackedColumn.props ?? {},
9
- row,
10
- value: row[stackedColumn.key]
11
- }) }, stackedColumn.key))
7
+ children: /* @__PURE__ */ jsx(Renderer, { nodes: materializeSchema(column.schema, row) })
12
8
  });
13
9
  //#endregion
14
10
  export { StackCell };
@@ -1 +1 @@
1
- {"version":3,"file":"stack-cell.js","names":[],"sources":["../../../../resources/js/table/components/cells/stack-cell.tsx"],"sourcesContent":["import type { ColumnCellComponent } from \"../../registry\";\nimport type { ColumnPropsOf } from \"../../types\";\nimport { TextCell } from \"./text-cell\";\n\nexport const StackCell: ColumnCellComponent<\"column.stack\"> = ({ column, row }) => (\n <div className=\"grid gap-1\">\n {(column.columns ?? []).map((stackedColumn) => (\n <span key={stackedColumn.key}>\n <TextCell\n column={stackedColumn}\n props={(stackedColumn.props ?? {}) as ColumnPropsOf<\"column.text\">}\n row={row}\n value={row[stackedColumn.key]}\n />\n </span>\n ))}\n </div>\n);\n"],"mappings":";;;AAIA,IAAa,aAAkD,EAAE,QAAQ,UACvE,oBAAC,OAAD;CAAK,WAAU;YACX,OAAO,WAAW,CAAC,GAAG,KAAK,kBAC3B,oBAAC,QAAD,EAAA,UACE,oBAAC,UAAD;EACE,QAAQ;EACR,OAAQ,cAAc,SAAS,CAAC;EAC3B;EACL,OAAO,IAAI,cAAc;CAC1B,CAAA,EACG,GAPK,cAAc,GAOnB,CACP;AACE,CAAA"}
1
+ {"version":3,"file":"stack-cell.js","names":[],"sources":["../../../../resources/js/table/components/cells/stack-cell.tsx"],"sourcesContent":["import { Renderer } from \"@lattice-php/lattice/core/renderer\";\nimport { materializeSchema } from \"@lattice-php/lattice/core/materialize\";\nimport type { ColumnCellComponent } from \"@lattice-php/lattice/table/registry\";\n\nexport const StackCell: ColumnCellComponent<\"column.stack\"> = ({ column, row }) => (\n <div className=\"grid gap-1\">\n <Renderer nodes={materializeSchema(column.schema, row)} />\n </div>\n);\n"],"mappings":";;;;AAIA,IAAa,aAAkD,EAAE,QAAQ,UACvE,oBAAC,OAAD;CAAK,WAAU;WACb,oBAAC,UAAD,EAAU,OAAO,kBAAkB,OAAO,QAAQ,GAAG,EAAI,CAAA;AACtD,CAAA"}
@@ -1,2 +1,2 @@
1
- import { ColumnCellComponent } from '../../registry';
1
+ import { ColumnCellComponent } from '../../registry.js';
2
2
  export declare const TextCell: ColumnCellComponent<"column.text">;
@@ -1,7 +1,7 @@
1
1
  import { cn } from "../../../lib/utils.js";
2
2
  import { DateTime } from "../../../i18n/date-time.js";
3
- import { CopyableText } from "../../../clipboard/copyable-text.js";
4
- import { formatCell, resolveLink } from "../../format.js";
3
+ import { CopyableText } from "../../../ui/copyable-text.js";
4
+ import { formatCell, resolveLink } from "../../lib/format.js";
5
5
  import { jsx } from "react/jsx-runtime";
6
6
  //#region resources/js/table/components/cells/text-cell.tsx
7
7
  var TextCell = (args) => {
@@ -39,7 +39,7 @@ function SingleBadgeCell({ column, props, row, value }) {
39
39
  });
40
40
  }
41
41
  function PlainTextCell({ column, props, row, value }) {
42
- const dateProps = column.props?.date;
42
+ const dateProps = column.props.date;
43
43
  const href = resolveLink(column, row, value);
44
44
  const text = formatCell(value, column);
45
45
  const content = href ? /* @__PURE__ */ jsx("a", {
@@ -57,7 +57,7 @@ function PlainTextCell({ column, props, row, value }) {
57
57
  if (!props.copyable) return content;
58
58
  return /* @__PURE__ */ jsx(CopyableText, {
59
59
  value: text,
60
- label: column.label,
60
+ label: column.props.label ?? column.key,
61
61
  testId: `copy-${column.key}`,
62
62
  children: content
63
63
  });
@@ -1 +1 @@
1
- {"version":3,"file":"text-cell.js","names":[],"sources":["../../../../resources/js/table/components/cells/text-cell.tsx"],"sourcesContent":["import { CopyableText } from \"@lattice-php/lattice/clipboard\";\nimport { DateTime } from \"@lattice-php/lattice/i18n\";\nimport { cn } from \"@lattice-php/lattice/lib/utils\";\nimport type { ReactNode } from \"react\";\nimport { formatCell, resolveLink } from \"../../format\";\nimport type { ColumnCellArgs, ColumnCellComponent } from \"../../registry\";\nimport type { ColumnPropsOf } from \"../../types\";\n\ntype TextProps = ColumnCellArgs<\"column.text\">[\"props\"];\n\nexport const TextCell: ColumnCellComponent<\"column.text\"> = (args) => {\n if (args.props.multiple) {\n return <MultipleCell {...args} />;\n }\n\n if (args.props.badge) {\n return <SingleBadgeCell {...args} />;\n }\n\n return <PlainTextCell {...args} />;\n};\n\nfunction Badge({ label, color }: { label: string; color?: string | null }): ReactNode {\n if (label === \"\") {\n return null;\n }\n\n return <span className={cn(\"lt-cell-badge\", `lt-cell-tone-${color || \"gray\"}`)}>{label}</span>;\n}\n\nfunction MultipleCell({ column, props, value }: ColumnCellArgs<\"column.text\">): ReactNode {\n const items = Array.isArray(value) ? value : [];\n\n if (items.length === 0) {\n return null;\n }\n\n if (!props.badge) {\n return <span>{items.map((item) => formatCell(item, column)).join(\", \")}</span>;\n }\n\n return (\n <div className=\"flex flex-wrap gap-1\">\n {items.map((item, index) => {\n const chip = item as { value: unknown; color?: string };\n\n return <Badge key={index} label={formatCell(chip.value, column)} color={chip.color} />;\n })}\n </div>\n );\n}\n\nfunction SingleBadgeCell({ column, props, row, value }: ColumnCellArgs<\"column.text\">): ReactNode {\n const colorKey = (props.badge as NonNullable<TextProps[\"badge\"]>).colorKey;\n\n return <Badge label={formatCell(value, column)} color={String(row[colorKey] ?? \"\")} />;\n}\n\nfunction PlainTextCell({ column, props, row, value }: ColumnCellArgs<\"column.text\">): ReactNode {\n const dateProps = (column.props as ColumnPropsOf<\"column.text\"> | null)?.date;\n const href = resolveLink(column, row, value);\n const text = formatCell(value, column);\n\n const content = href ? (\n <a\n className=\"underline underline-offset-2\"\n href={href}\n rel={props.link?.external ? \"noreferrer\" : undefined}\n target={props.link?.external ? \"_blank\" : undefined}\n >\n {text}\n </a>\n ) : (\n text\n );\n\n if (dateProps && !href && !props.copyable && value !== null && value !== undefined) {\n return (\n <DateTime value={value} dateStyle={dateProps.dateStyle} timeStyle={dateProps.timeStyle} />\n );\n }\n\n if (!props.copyable) {\n return content;\n }\n\n return (\n <CopyableText value={text} label={column.label} testId={`copy-${column.key}`}>\n {content}\n </CopyableText>\n );\n}\n"],"mappings":";;;;;;AAUA,IAAa,YAAgD,SAAS;CACpE,IAAI,KAAK,MAAM,UACb,OAAO,oBAAC,cAAD,EAAc,GAAI,KAAO,CAAA;CAGlC,IAAI,KAAK,MAAM,OACb,OAAO,oBAAC,iBAAD,EAAiB,GAAI,KAAO,CAAA;CAGrC,OAAO,oBAAC,eAAD,EAAe,GAAI,KAAO,CAAA;AACnC;AAEA,SAAS,MAAM,EAAE,OAAO,SAA8D;CACpF,IAAI,UAAU,IACZ,OAAO;CAGT,OAAO,oBAAC,QAAD;EAAM,WAAW,GAAG,iBAAiB,gBAAgB,SAAS,QAAQ;YAAI;CAAY,CAAA;AAC/F;AAEA,SAAS,aAAa,EAAE,QAAQ,OAAO,SAAmD;CACxF,MAAM,QAAQ,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC;CAE9C,IAAI,MAAM,WAAW,GACnB,OAAO;CAGT,IAAI,CAAC,MAAM,OACT,OAAO,oBAAC,QAAD,EAAA,UAAO,MAAM,KAAK,SAAS,WAAW,MAAM,MAAM,CAAC,EAAE,KAAK,IAAI,EAAQ,CAAA;CAG/E,OACE,oBAAC,OAAD;EAAK,WAAU;YACZ,MAAM,KAAK,MAAM,UAAU;GAC1B,MAAM,OAAO;GAEb,OAAO,oBAAC,OAAD;IAAmB,OAAO,WAAW,KAAK,OAAO,MAAM;IAAG,OAAO,KAAK;GAAQ,GAAlE,KAAkE;EACvF,CAAC;CACE,CAAA;AAET;AAEA,SAAS,gBAAgB,EAAE,QAAQ,OAAO,KAAK,SAAmD;CAChG,MAAM,WAAY,MAAM,MAA0C;CAElE,OAAO,oBAAC,OAAD;EAAO,OAAO,WAAW,OAAO,MAAM;EAAG,OAAO,OAAO,IAAI,aAAa,EAAE;CAAI,CAAA;AACvF;AAEA,SAAS,cAAc,EAAE,QAAQ,OAAO,KAAK,SAAmD;CAC9F,MAAM,YAAa,OAAO,OAA+C;CACzE,MAAM,OAAO,YAAY,QAAQ,KAAK,KAAK;CAC3C,MAAM,OAAO,WAAW,OAAO,MAAM;CAErC,MAAM,UAAU,OACd,oBAAC,KAAD;EACE,WAAU;EACJ;EACN,KAAK,MAAM,MAAM,WAAW,eAAe,KAAA;EAC3C,QAAQ,MAAM,MAAM,WAAW,WAAW,KAAA;YAEzC;CACA,CAAA,IAEH;CAGF,IAAI,aAAa,CAAC,QAAQ,CAAC,MAAM,YAAY,UAAU,QAAQ,UAAU,KAAA,GACvE,OACE,oBAAC,UAAD;EAAiB;EAAO,WAAW,UAAU;EAAW,WAAW,UAAU;CAAY,CAAA;CAI7F,IAAI,CAAC,MAAM,UACT,OAAO;CAGT,OACE,oBAAC,cAAD;EAAc,OAAO;EAAM,OAAO,OAAO;EAAO,QAAQ,QAAQ,OAAO;YACpE;CACW,CAAA;AAElB"}
1
+ {"version":3,"file":"text-cell.js","names":[],"sources":["../../../../resources/js/table/components/cells/text-cell.tsx"],"sourcesContent":["import { DateTime } from \"@lattice-php/lattice/i18n\";\nimport { cn } from \"@lattice-php/lattice/lib/utils\";\nimport { CopyableText } from \"@lattice-php/lattice/ui/copyable-text\";\nimport type { ReactNode } from \"react\";\nimport { formatCell, resolveLink } from \"@lattice-php/lattice/table/lib/format\";\nimport type { ColumnCellArgs, ColumnCellComponent } from \"@lattice-php/lattice/table/registry\";\nimport type { ColumnPropsOf } from \"@lattice-php/lattice/table/types\";\n\ntype TextProps = ColumnCellArgs<\"column.text\">[\"props\"];\n\nexport const TextCell: ColumnCellComponent<\"column.text\"> = (args) => {\n if (args.props.multiple) {\n return <MultipleCell {...args} />;\n }\n\n if (args.props.badge) {\n return <SingleBadgeCell {...args} />;\n }\n\n return <PlainTextCell {...args} />;\n};\n\nfunction Badge({ label, color }: { label: string; color?: string | null }): ReactNode {\n if (label === \"\") {\n return null;\n }\n\n return <span className={cn(\"lt-cell-badge\", `lt-cell-tone-${color || \"gray\"}`)}>{label}</span>;\n}\n\nfunction MultipleCell({ column, props, value }: ColumnCellArgs<\"column.text\">): ReactNode {\n const items = Array.isArray(value) ? value : [];\n\n if (items.length === 0) {\n return null;\n }\n\n if (!props.badge) {\n return <span>{items.map((item) => formatCell(item, column)).join(\", \")}</span>;\n }\n\n return (\n <div className=\"flex flex-wrap gap-1\">\n {items.map((item, index) => {\n const chip = item as { value: unknown; color?: string };\n\n return <Badge key={index} label={formatCell(chip.value, column)} color={chip.color} />;\n })}\n </div>\n );\n}\n\nfunction SingleBadgeCell({ column, props, row, value }: ColumnCellArgs<\"column.text\">): ReactNode {\n const colorKey = (props.badge as NonNullable<TextProps[\"badge\"]>).colorKey;\n\n return <Badge label={formatCell(value, column)} color={String(row[colorKey] ?? \"\")} />;\n}\n\nfunction PlainTextCell({ column, props, row, value }: ColumnCellArgs<\"column.text\">): ReactNode {\n const dateProps = (column.props as ColumnPropsOf<\"column.text\">).date;\n const href = resolveLink(column, row, value);\n const text = formatCell(value, column);\n\n const content = href ? (\n <a\n className=\"underline underline-offset-2\"\n href={href}\n rel={props.link?.external ? \"noreferrer\" : undefined}\n target={props.link?.external ? \"_blank\" : undefined}\n >\n {text}\n </a>\n ) : (\n text\n );\n\n if (dateProps && !href && !props.copyable && value !== null && value !== undefined) {\n return (\n <DateTime value={value} dateStyle={dateProps.dateStyle} timeStyle={dateProps.timeStyle} />\n );\n }\n\n if (!props.copyable) {\n return content;\n }\n\n return (\n <CopyableText\n value={text}\n label={column.props.label ?? column.key}\n testId={`copy-${column.key}`}\n >\n {content}\n </CopyableText>\n );\n}\n"],"mappings":";;;;;;AAUA,IAAa,YAAgD,SAAS;CACpE,IAAI,KAAK,MAAM,UACb,OAAO,oBAAC,cAAD,EAAc,GAAI,KAAO,CAAA;CAGlC,IAAI,KAAK,MAAM,OACb,OAAO,oBAAC,iBAAD,EAAiB,GAAI,KAAO,CAAA;CAGrC,OAAO,oBAAC,eAAD,EAAe,GAAI,KAAO,CAAA;AACnC;AAEA,SAAS,MAAM,EAAE,OAAO,SAA8D;CACpF,IAAI,UAAU,IACZ,OAAO;CAGT,OAAO,oBAAC,QAAD;EAAM,WAAW,GAAG,iBAAiB,gBAAgB,SAAS,QAAQ;YAAI;CAAY,CAAA;AAC/F;AAEA,SAAS,aAAa,EAAE,QAAQ,OAAO,SAAmD;CACxF,MAAM,QAAQ,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC;CAE9C,IAAI,MAAM,WAAW,GACnB,OAAO;CAGT,IAAI,CAAC,MAAM,OACT,OAAO,oBAAC,QAAD,EAAA,UAAO,MAAM,KAAK,SAAS,WAAW,MAAM,MAAM,CAAC,EAAE,KAAK,IAAI,EAAQ,CAAA;CAG/E,OACE,oBAAC,OAAD;EAAK,WAAU;YACZ,MAAM,KAAK,MAAM,UAAU;GAC1B,MAAM,OAAO;GAEb,OAAO,oBAAC,OAAD;IAAmB,OAAO,WAAW,KAAK,OAAO,MAAM;IAAG,OAAO,KAAK;GAAQ,GAAlE,KAAkE;EACvF,CAAC;CACE,CAAA;AAET;AAEA,SAAS,gBAAgB,EAAE,QAAQ,OAAO,KAAK,SAAmD;CAChG,MAAM,WAAY,MAAM,MAA0C;CAElE,OAAO,oBAAC,OAAD;EAAO,OAAO,WAAW,OAAO,MAAM;EAAG,OAAO,OAAO,IAAI,aAAa,EAAE;CAAI,CAAA;AACvF;AAEA,SAAS,cAAc,EAAE,QAAQ,OAAO,KAAK,SAAmD;CAC9F,MAAM,YAAa,OAAO,MAAuC;CACjE,MAAM,OAAO,YAAY,QAAQ,KAAK,KAAK;CAC3C,MAAM,OAAO,WAAW,OAAO,MAAM;CAErC,MAAM,UAAU,OACd,oBAAC,KAAD;EACE,WAAU;EACJ;EACN,KAAK,MAAM,MAAM,WAAW,eAAe,KAAA;EAC3C,QAAQ,MAAM,MAAM,WAAW,WAAW,KAAA;YAEzC;CACA,CAAA,IAEH;CAGF,IAAI,aAAa,CAAC,QAAQ,CAAC,MAAM,YAAY,UAAU,QAAQ,UAAU,KAAA,GACvE,OACE,oBAAC,UAAD;EAAiB;EAAO,WAAW,UAAU;EAAW,WAAW,UAAU;CAAY,CAAA;CAI7F,IAAI,CAAC,MAAM,UACT,OAAO;CAGT,OACE,oBAAC,cAAD;EACE,OAAO;EACP,OAAO,OAAO,MAAM,SAAS,OAAO;EACpC,QAAQ,QAAQ,OAAO;YAEtB;CACW,CAAA;AAElB"}
@@ -1,5 +1,5 @@
1
- import { FilterClause, TableColumn } from '../types';
2
- import { FilterOptionSearch } from './filter-controls';
1
+ import { Option } from '../../types/generated.js';
2
+ import { FilterClause, TableColumn } from '../types.js';
3
3
  type ColumnClause = {
4
4
  clause: FilterClause;
5
5
  index: number;
@@ -12,6 +12,6 @@ export declare function ColumnFilterControl({ column, clauses, processing, onAdd
12
12
  onUpdate: (index: number, clause: FilterClause) => void;
13
13
  onRemove: (index: number) => void;
14
14
  onReplace: (field: string, clauses: FilterClause[]) => void;
15
- onSearch?: FilterOptionSearch;
15
+ onSearch?: (query: string, signal?: AbortSignal) => Promise<Option[]>;
16
16
  }): import("react").JSX.Element | null;
17
17
  export {};