@lattice-php/lattice 0.1.0 → 0.3.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 (589) hide show
  1. package/README.md +3 -1
  2. package/dist/action/components/action-form.d.ts +24 -0
  3. package/dist/action/components/action-form.js +238 -0
  4. package/dist/action/components/action-form.js.map +1 -0
  5. package/dist/action/components/action-group.d.ts +1 -8
  6. package/dist/action/components/action-group.js +34 -64
  7. package/dist/action/components/action-group.js.map +1 -1
  8. package/dist/action/components/action-menu-context.d.ts +6 -0
  9. package/dist/action/components/action-menu-context.js +18 -0
  10. package/dist/action/components/action-menu-context.js.map +1 -0
  11. package/dist/action/components/action.d.ts +1 -24
  12. package/dist/action/components/action.js +73 -51
  13. package/dist/action/components/action.js.map +1 -1
  14. package/dist/action/index.d.ts +1 -1
  15. package/dist/action/index.js.map +1 -1
  16. package/dist/appearance/index.js +7 -2
  17. package/dist/appearance/index.js.map +1 -1
  18. package/dist/chat/components/chat-box.d.ts +3 -0
  19. package/dist/chat/components/chat-box.js +53 -0
  20. package/dist/chat/components/chat-box.js.map +1 -0
  21. package/dist/chat/components/message-list.d.ts +5 -0
  22. package/dist/chat/components/message-list.js +22 -0
  23. package/dist/chat/components/message-list.js.map +1 -0
  24. package/dist/chat/components/message.d.ts +5 -0
  25. package/dist/chat/components/message.js +20 -0
  26. package/dist/chat/components/message.js.map +1 -0
  27. package/dist/chat/components/prompt-input.d.ts +8 -0
  28. package/dist/chat/components/prompt-input.js +49 -0
  29. package/dist/chat/components/prompt-input.js.map +1 -0
  30. package/dist/chat/index.d.ts +1 -0
  31. package/dist/chat/index.js +15 -0
  32. package/dist/chat/index.js.map +1 -0
  33. package/dist/chat/parts/text.d.ts +3 -0
  34. package/dist/chat/parts/text.js +12 -0
  35. package/dist/chat/parts/text.js.map +1 -0
  36. package/dist/chat/parts/tool-call.d.ts +3 -0
  37. package/dist/chat/parts/tool-call.js +20 -0
  38. package/dist/chat/parts/tool-call.js.map +1 -0
  39. package/dist/chat/transport.d.ts +2 -0
  40. package/dist/chat/transport.js +47 -0
  41. package/dist/chat/transport.js.map +1 -0
  42. package/dist/chat/types.d.ts +39 -0
  43. package/dist/chat/use-chat.d.ts +15 -0
  44. package/dist/chat/use-chat.js +161 -0
  45. package/dist/chat/use-chat.js.map +1 -0
  46. package/dist/core/api.d.ts +18 -0
  47. package/dist/core/api.js +51 -0
  48. package/dist/core/api.js.map +1 -0
  49. package/dist/core/collapsed-context.d.ts +2 -0
  50. package/dist/core/collapsed-context.js +10 -0
  51. package/dist/core/collapsed-context.js.map +1 -0
  52. package/dist/core/column-sizing.d.ts +17 -0
  53. package/dist/core/column-sizing.js +61 -0
  54. package/dist/core/column-sizing.js.map +1 -0
  55. package/dist/core/components/badge.d.ts +1 -8
  56. package/dist/core/components/badge.js +2 -3
  57. package/dist/core/components/badge.js.map +1 -1
  58. package/dist/core/components/button.d.ts +5 -13
  59. package/dist/core/components/button.js +10 -9
  60. package/dist/core/components/button.js.map +1 -1
  61. package/dist/core/components/card.d.ts +1 -9
  62. package/dist/core/components/card.js +1 -3
  63. package/dist/core/components/card.js.map +1 -1
  64. package/dist/core/components/chart.d.ts +3 -0
  65. package/dist/core/components/chart.js +175 -0
  66. package/dist/core/components/chart.js.map +1 -0
  67. package/dist/{form/components/base → core/components}/checkbox.js +7 -4
  68. package/dist/core/components/checkbox.js.map +1 -0
  69. package/dist/core/components/combobox.d.ts +33 -0
  70. package/dist/core/components/combobox.js +99 -0
  71. package/dist/core/components/combobox.js.map +1 -0
  72. package/dist/core/components/confirm-dialog.d.ts +2 -3
  73. package/dist/core/components/confirm-dialog.js +17 -17
  74. package/dist/core/components/confirm-dialog.js.map +1 -1
  75. package/dist/core/components/control.d.ts +13 -0
  76. package/dist/core/components/control.js +27 -0
  77. package/dist/core/components/control.js.map +1 -0
  78. package/dist/core/components/dialog.d.ts +19 -0
  79. package/dist/core/components/dialog.js +75 -0
  80. package/dist/core/components/dialog.js.map +1 -0
  81. package/dist/core/components/dropdown-menu.d.ts +14 -0
  82. package/dist/core/components/dropdown-menu.js +42 -0
  83. package/dist/core/components/dropdown-menu.js.map +1 -0
  84. package/dist/core/components/floating-panel.d.ts +3 -0
  85. package/dist/core/components/floating-panel.js +65 -0
  86. package/dist/core/components/floating-panel.js.map +1 -0
  87. package/dist/core/components/fragment.d.ts +1 -10
  88. package/dist/core/components/fragment.js +29 -18
  89. package/dist/core/components/fragment.js.map +1 -1
  90. package/dist/core/components/grid.d.ts +1 -8
  91. package/dist/core/components/grid.js +1 -2
  92. package/dist/core/components/grid.js.map +1 -1
  93. package/dist/core/components/heading.d.ts +1 -9
  94. package/dist/core/components/heading.js +2 -3
  95. package/dist/core/components/heading.js.map +1 -1
  96. package/dist/core/components/icon.d.ts +3 -0
  97. package/dist/core/components/icon.js +31 -0
  98. package/dist/core/components/icon.js.map +1 -0
  99. package/dist/core/components/index.d.ts +1 -1
  100. package/dist/core/components/index.js +12 -1
  101. package/dist/core/components/index.js.map +1 -1
  102. package/dist/core/components/info-tooltip.d.ts +3 -0
  103. package/dist/core/components/info-tooltip.js +26 -0
  104. package/dist/core/components/info-tooltip.js.map +1 -0
  105. package/dist/core/components/link.d.ts +1 -12
  106. package/dist/core/components/link.js +12 -11
  107. package/dist/core/components/link.js.map +1 -1
  108. package/dist/core/components/modal.d.ts +1 -11
  109. package/dist/core/components/modal.js +16 -42
  110. package/dist/core/components/modal.js.map +1 -1
  111. package/dist/core/components/popover.d.ts +8 -0
  112. package/dist/core/components/popover.js +37 -0
  113. package/dist/core/components/popover.js.map +1 -0
  114. package/dist/core/components/raw-block.d.ts +3 -0
  115. package/dist/core/components/raw-block.js +10 -0
  116. package/dist/core/components/raw-block.js.map +1 -0
  117. package/dist/core/components/section.d.ts +3 -0
  118. package/dist/core/components/section.js +75 -0
  119. package/dist/core/components/section.js.map +1 -0
  120. package/dist/core/components/segmented-control.d.ts +1 -14
  121. package/dist/core/components/segmented-control.js +4 -7
  122. package/dist/core/components/segmented-control.js.map +1 -1
  123. package/dist/core/components/segmented-pills.d.ts +4 -2
  124. package/dist/core/components/segmented-pills.js +10 -1
  125. package/dist/core/components/segmented-pills.js.map +1 -1
  126. package/dist/core/components/skeleton.d.ts +3 -0
  127. package/dist/core/components/skeleton.js +16 -0
  128. package/dist/core/components/skeleton.js.map +1 -0
  129. package/dist/core/components/spinner.js +8 -4
  130. package/dist/core/components/spinner.js.map +1 -1
  131. package/dist/core/components/stack.d.ts +1 -11
  132. package/dist/core/components/stack.js +24 -13
  133. package/dist/core/components/stack.js.map +1 -1
  134. package/dist/core/components/tabs.d.ts +1 -19
  135. package/dist/core/components/tabs.js +45 -21
  136. package/dist/core/components/tabs.js.map +1 -1
  137. package/dist/core/components/text.d.ts +1 -9
  138. package/dist/core/components/text.js +18 -3
  139. package/dist/core/components/text.js.map +1 -1
  140. package/dist/core/headers.d.ts +1 -0
  141. package/dist/core/headers.js +14 -0
  142. package/dist/core/headers.js.map +1 -0
  143. package/dist/core/registry-context.d.ts +21 -0
  144. package/dist/core/registry-context.js +40 -0
  145. package/dist/core/registry-context.js.map +1 -0
  146. package/dist/core/registry.d.ts +12 -3
  147. package/dist/core/registry.js +30 -5
  148. package/dist/core/registry.js.map +1 -1
  149. package/dist/core/renderer.d.ts +8 -14
  150. package/dist/core/renderer.js +20 -36
  151. package/dist/core/renderer.js.map +1 -1
  152. package/dist/core/test-id.d.ts +8 -0
  153. package/dist/core/test-id.js +21 -0
  154. package/dist/core/test-id.js.map +1 -0
  155. package/dist/core/types.d.ts +68 -26
  156. package/dist/core/use-column-resizing.d.ts +27 -0
  157. package/dist/core/use-column-resizing.js +228 -0
  158. package/dist/core/use-column-resizing.js.map +1 -0
  159. package/dist/effects/dispatch.d.ts +20 -0
  160. package/dist/effects/dispatch.js +39 -0
  161. package/dist/effects/dispatch.js.map +1 -0
  162. package/dist/effects/registry.d.ts +38 -0
  163. package/dist/effects/registry.js +51 -0
  164. package/dist/effects/registry.js.map +1 -0
  165. package/dist/effects/use-effect-dispatcher.d.ts +8 -0
  166. package/dist/effects/use-effect-dispatcher.js +20 -0
  167. package/dist/effects/use-effect-dispatcher.js.map +1 -0
  168. package/dist/effects/use-flash-effects.d.ts +5 -0
  169. package/dist/effects/use-flash-effects.js +22 -0
  170. package/dist/effects/use-flash-effects.js.map +1 -0
  171. package/dist/events/event-bridge.d.ts +3 -7
  172. package/dist/events/event-bridge.js +17 -47
  173. package/dist/events/event-bridge.js.map +1 -1
  174. package/dist/events/event-names.d.ts +3 -1
  175. package/dist/events/event-names.js +3 -1
  176. package/dist/events/event-names.js.map +1 -1
  177. package/dist/form/components/base/field.d.ts +3 -1
  178. package/dist/form/components/base/field.js +21 -2
  179. package/dist/form/components/base/field.js.map +1 -1
  180. package/dist/form/components/base/input-error.js +1 -1
  181. package/dist/form/components/base/input-error.js.map +1 -1
  182. package/dist/form/components/base/input.js +2 -1
  183. package/dist/form/components/base/input.js.map +1 -1
  184. package/dist/form/components/base/label.js.map +1 -1
  185. package/dist/form/components/base/password-input.js +9 -2
  186. package/dist/form/components/base/password-input.js.map +1 -1
  187. package/dist/form/components/base/submit-button.d.ts +4 -4
  188. package/dist/form/components/base/submit-button.js +5 -3
  189. package/dist/form/components/base/submit-button.js.map +1 -1
  190. package/dist/form/components/base/textarea.js +2 -1
  191. package/dist/form/components/base/textarea.js.map +1 -1
  192. package/dist/form/components/conditions.d.ts +6 -9
  193. package/dist/form/components/conditions.js +10 -2
  194. package/dist/form/components/conditions.js.map +1 -1
  195. package/dist/form/components/context.d.ts +1 -4
  196. package/dist/form/components/context.js +2 -5
  197. package/dist/form/components/context.js.map +1 -1
  198. package/dist/form/components/field-props.d.ts +28 -0
  199. package/dist/form/components/field-props.js +15 -0
  200. package/dist/form/components/field-props.js.map +1 -0
  201. package/dist/form/components/field-scope.d.ts +21 -0
  202. package/dist/form/components/field-scope.js +54 -0
  203. package/dist/form/components/field-scope.js.map +1 -0
  204. package/dist/form/components/fields/block-add-menu.d.ts +9 -0
  205. package/dist/form/components/fields/block-add-menu.js +27 -0
  206. package/dist/form/components/fields/block-add-menu.js.map +1 -0
  207. package/dist/form/components/fields/builder.d.ts +2 -0
  208. package/dist/form/components/fields/builder.js +124 -0
  209. package/dist/form/components/fields/builder.js.map +1 -0
  210. package/dist/form/components/fields/checkbox.d.ts +2 -16
  211. package/dist/form/components/fields/checkbox.js +28 -30
  212. package/dist/form/components/fields/checkbox.js.map +1 -1
  213. package/dist/form/components/fields/choice.d.ts +2 -14
  214. package/dist/form/components/fields/choice.js +14 -20
  215. package/dist/form/components/fields/choice.js.map +1 -1
  216. package/dist/form/components/fields/date-input.d.ts +2 -20
  217. package/dist/form/components/fields/date-input.js +12 -16
  218. package/dist/form/components/fields/date-input.js.map +1 -1
  219. package/dist/form/components/fields/file-upload.d.ts +2 -0
  220. package/dist/form/components/fields/file-upload.js +250 -0
  221. package/dist/form/components/fields/file-upload.js.map +1 -0
  222. package/dist/form/components/fields/hidden-input.d.ts +2 -10
  223. package/dist/form/components/fields/hidden-input.js +11 -6
  224. package/dist/form/components/fields/hidden-input.js.map +1 -1
  225. package/dist/form/components/fields/number-input.d.ts +2 -23
  226. package/dist/form/components/fields/number-input.js +40 -41
  227. package/dist/form/components/fields/number-input.js.map +1 -1
  228. package/dist/form/components/fields/password-input.d.ts +2 -29
  229. package/dist/form/components/fields/password-input.js +41 -41
  230. package/dist/form/components/fields/password-input.js.map +1 -1
  231. package/dist/form/components/fields/repeater-rows.d.ts +12 -0
  232. package/dist/form/components/fields/repeater-rows.js +46 -0
  233. package/dist/form/components/fields/repeater-rows.js.map +1 -0
  234. package/dist/form/components/fields/repeater.d.ts +2 -0
  235. package/dist/form/components/fields/repeater.js +97 -0
  236. package/dist/form/components/fields/repeater.js.map +1 -0
  237. package/dist/form/components/fields/rich-editor.d.ts +2 -17
  238. package/dist/form/components/fields/rich-editor.js +90 -52
  239. package/dist/form/components/fields/rich-editor.js.map +1 -1
  240. package/dist/form/components/fields/row-action-menu.d.ts +17 -0
  241. package/dist/form/components/fields/row-action-menu.js +61 -0
  242. package/dist/form/components/fields/row-action-menu.js.map +1 -0
  243. package/dist/form/components/fields/row-actions.d.ts +10 -0
  244. package/dist/form/components/fields/row-actions.js +45 -0
  245. package/dist/form/components/fields/row-actions.js.map +1 -0
  246. package/dist/form/components/fields/row-item.d.ts +27 -0
  247. package/dist/form/components/fields/row-item.js +69 -0
  248. package/dist/form/components/fields/row-item.js.map +1 -0
  249. package/dist/form/components/fields/select.d.ts +2 -23
  250. package/dist/form/components/fields/select.js +97 -121
  251. package/dist/form/components/fields/select.js.map +1 -1
  252. package/dist/form/components/fields/simple-field.d.ts +9 -0
  253. package/dist/form/components/fields/simple-field.js +23 -0
  254. package/dist/form/components/fields/simple-field.js.map +1 -0
  255. package/dist/form/components/fields/table-rows.d.ts +32 -0
  256. package/dist/form/components/fields/table-rows.js +188 -0
  257. package/dist/form/components/fields/table-rows.js.map +1 -0
  258. package/dist/form/components/fields/text-input.d.ts +2 -21
  259. package/dist/form/components/fields/text-input.js +13 -17
  260. package/dist/form/components/fields/text-input.js.map +1 -1
  261. package/dist/form/components/fields/textarea.d.ts +2 -20
  262. package/dist/form/components/fields/textarea.js +12 -16
  263. package/dist/form/components/fields/textarea.js.map +1 -1
  264. package/dist/form/components/fields/use-flip-reorder.d.ts +6 -0
  265. package/dist/form/components/fields/use-flip-reorder.js +51 -0
  266. package/dist/form/components/fields/use-flip-reorder.js.map +1 -0
  267. package/dist/form/components/fields/use-row-collection.d.ts +11 -0
  268. package/dist/form/components/fields/use-row-collection.js +44 -0
  269. package/dist/form/components/fields/use-row-collection.js.map +1 -0
  270. package/dist/form/components/form-path.d.ts +5 -0
  271. package/dist/form/components/form-path.js +40 -0
  272. package/dist/form/components/form-path.js.map +1 -0
  273. package/dist/form/components/form-transport.d.ts +3 -4
  274. package/dist/form/components/form-transport.js +17 -18
  275. package/dist/form/components/form-transport.js.map +1 -1
  276. package/dist/form/components/form.d.ts +1 -20
  277. package/dist/form/components/form.js +47 -48
  278. package/dist/form/components/form.js.map +1 -1
  279. package/dist/form/components/index.d.ts +3 -1
  280. package/dist/form/components/index.js +4 -2
  281. package/dist/form/components/override-keys.d.ts +2 -0
  282. package/dist/form/components/override-keys.js +12 -0
  283. package/dist/form/components/override-keys.js.map +1 -0
  284. package/dist/form/components/prefill-context.d.ts +5 -0
  285. package/dist/form/components/prefill-context.js +11 -0
  286. package/dist/form/components/prefill-context.js.map +1 -0
  287. package/dist/form/components/prefill-targets.d.ts +17 -0
  288. package/dist/form/components/prefill-targets.js +73 -0
  289. package/dist/form/components/prefill-targets.js.map +1 -0
  290. package/dist/form/components/resolved-nodes.d.ts +1 -1
  291. package/dist/form/components/resolved-nodes.js +6 -3
  292. package/dist/form/components/resolved-nodes.js.map +1 -1
  293. package/dist/form/components/row-layout-context.d.ts +5 -0
  294. package/dist/form/components/row-layout-context.js +18 -0
  295. package/dist/form/components/row-layout-context.js.map +1 -0
  296. package/dist/form/components/types.d.ts +1 -0
  297. package/dist/form/components/use-controlled-field.d.ts +5 -9
  298. package/dist/form/components/use-controlled-field.js +17 -13
  299. package/dist/form/components/use-controlled-field.js.map +1 -1
  300. package/dist/form/components/use-dependent-field.d.ts +1 -1
  301. package/dist/form/components/use-dependent-field.js +14 -8
  302. package/dist/form/components/use-dependent-field.js.map +1 -1
  303. package/dist/form/components/use-field-commit.d.ts +4 -0
  304. package/dist/form/components/use-field-commit.js +21 -7
  305. package/dist/form/components/use-field-commit.js.map +1 -1
  306. package/dist/form/components/use-form-resolver.d.ts +7 -2
  307. package/dist/form/components/use-form-resolver.js +57 -17
  308. package/dist/form/components/use-form-resolver.js.map +1 -1
  309. package/dist/form/components/use-seed-default.d.ts +5 -0
  310. package/dist/form/components/use-seed-default.js +28 -0
  311. package/dist/form/components/use-seed-default.js.map +1 -0
  312. package/dist/form/components/values.js +20 -5
  313. package/dist/form/components/values.js.map +1 -1
  314. package/dist/form/index.d.ts +1 -1
  315. package/dist/form/index.js +13 -11
  316. package/dist/form/index.js.map +1 -1
  317. package/dist/form/skeleton.d.ts +1 -1
  318. package/dist/form/skeleton.js +5 -4
  319. package/dist/form/skeleton.js.map +1 -1
  320. package/dist/i18n/backend.d.ts +26 -0
  321. package/dist/i18n/backend.js +54 -0
  322. package/dist/i18n/backend.js.map +1 -0
  323. package/dist/i18n/config.d.ts +6 -0
  324. package/dist/i18n/config.js +36 -0
  325. package/dist/i18n/config.js.map +1 -0
  326. package/dist/i18n/index.d.ts +9 -0
  327. package/dist/i18n/index.js +7 -0
  328. package/dist/i18n/instance.d.ts +27 -0
  329. package/dist/i18n/instance.js +95 -0
  330. package/dist/i18n/instance.js.map +1 -0
  331. package/dist/i18n/locale-reload.d.ts +3 -0
  332. package/dist/i18n/locale-reload.js +17 -0
  333. package/dist/i18n/locale-reload.js.map +1 -0
  334. package/dist/i18n/locale-switcher.d.ts +21 -0
  335. package/dist/i18n/locale-switcher.js +25 -0
  336. package/dist/i18n/locale-switcher.js.map +1 -0
  337. package/dist/i18n/locale.d.ts +9 -0
  338. package/dist/i18n/locale.js +93 -0
  339. package/dist/i18n/locale.js.map +1 -0
  340. package/dist/i18n/page-props.d.ts +3 -0
  341. package/dist/i18n/page-props.js +24 -0
  342. package/dist/i18n/page-props.js.map +1 -0
  343. package/dist/icons/icon-renderer.js +30 -5
  344. package/dist/icons/icon-renderer.js.map +1 -1
  345. package/dist/icons/index.d.ts +2 -0
  346. package/dist/icons/index.js +2 -1
  347. package/dist/icons/sprite.d.ts +30 -0
  348. package/dist/icons/sprite.js +40 -0
  349. package/dist/icons/sprite.js.map +1 -0
  350. package/dist/index.d.ts +23 -9
  351. package/dist/index.js +22 -7
  352. package/dist/inertia.d.ts +3 -7
  353. package/dist/inertia.js +13 -10
  354. package/dist/inertia.js.map +1 -1
  355. package/dist/lattice.css +172 -15
  356. package/dist/layout/breadcrumbs.d.ts +3 -0
  357. package/dist/layout/breadcrumbs.js +34 -0
  358. package/dist/layout/breadcrumbs.js.map +1 -0
  359. package/dist/layout/callouts.d.ts +3 -0
  360. package/dist/layout/callouts.js +67 -0
  361. package/dist/layout/callouts.js.map +1 -0
  362. package/dist/layout/components.d.ts +1 -0
  363. package/dist/layout/components.js +25 -0
  364. package/dist/layout/components.js.map +1 -0
  365. package/dist/layout/context.d.ts +4 -0
  366. package/dist/layout/context.js +8 -0
  367. package/dist/layout/context.js.map +1 -0
  368. package/dist/layout/dropdown.d.ts +3 -0
  369. package/dist/layout/dropdown.js +23 -0
  370. package/dist/layout/dropdown.js.map +1 -0
  371. package/dist/layout/index.d.ts +4 -0
  372. package/dist/layout/index.js +6 -0
  373. package/dist/layout/menu-item.d.ts +3 -0
  374. package/dist/layout/menu-item.js +101 -0
  375. package/dist/layout/menu-item.js.map +1 -0
  376. package/dist/layout/menu.d.ts +3 -0
  377. package/dist/layout/menu.js +13 -0
  378. package/dist/layout/menu.js.map +1 -0
  379. package/dist/layout/outlet.d.ts +6 -0
  380. package/dist/layout/outlet.js +14 -0
  381. package/dist/layout/outlet.js.map +1 -0
  382. package/dist/layout/popover.d.ts +17 -0
  383. package/dist/layout/popover.js +46 -0
  384. package/dist/layout/popover.js.map +1 -0
  385. package/dist/layout/schema-layout.d.ts +10 -0
  386. package/dist/layout/schema-layout.js +23 -0
  387. package/dist/layout/schema-layout.js.map +1 -0
  388. package/dist/layout/sidebar.d.ts +3 -0
  389. package/dist/layout/sidebar.js +48 -0
  390. package/dist/layout/sidebar.js.map +1 -0
  391. package/dist/lib/utils.d.ts +0 -2
  392. package/dist/lib/utils.js +1 -4
  393. package/dist/lib/utils.js.map +1 -1
  394. package/dist/page.d.ts +1 -1
  395. package/dist/page.js +4 -10
  396. package/dist/page.js.map +1 -1
  397. package/dist/provider.d.ts +7 -4
  398. package/dist/provider.js +15 -11
  399. package/dist/provider.js.map +1 -1
  400. package/dist/registry.d.ts +1 -1
  401. package/dist/registry.js +3 -1
  402. package/dist/registry.js.map +1 -1
  403. package/dist/svg-sprite-client/index.d.ts +1 -0
  404. package/dist/svg-sprite-client/index.js +0 -0
  405. package/dist/svg-sprite-client.d.ts +1 -0
  406. package/dist/table/align.d.ts +4 -0
  407. package/dist/table/align.js +23 -0
  408. package/dist/table/align.js.map +1 -0
  409. package/dist/table/bulk.d.ts +6 -10
  410. package/dist/table/bulk.js +13 -35
  411. package/dist/table/bulk.js.map +1 -1
  412. package/dist/table/components/bulk-bar.js +40 -6
  413. package/dist/table/components/bulk-bar.js.map +1 -1
  414. package/dist/table/components/cells/badge-cell.d.ts +2 -0
  415. package/dist/table/components/cells/badge-cell.js +16 -0
  416. package/dist/table/components/cells/badge-cell.js.map +1 -0
  417. package/dist/table/components/cells/boolean-cell.d.ts +3 -0
  418. package/dist/table/components/cells/boolean-cell.js +23 -0
  419. package/dist/table/components/cells/boolean-cell.js.map +1 -0
  420. package/dist/table/components/cells/icon-cell.d.ts +2 -0
  421. package/dist/table/components/cells/icon-cell.js +21 -0
  422. package/dist/table/components/cells/icon-cell.js.map +1 -0
  423. package/dist/table/components/cells/image-cell.d.ts +2 -0
  424. package/dist/table/components/cells/image-cell.js +23 -0
  425. package/dist/table/components/cells/image-cell.js.map +1 -0
  426. package/dist/table/components/cells/money-cell.d.ts +2 -0
  427. package/dist/table/components/cells/money-cell.js +28 -0
  428. package/dist/table/components/cells/money-cell.js.map +1 -0
  429. package/dist/table/components/cells/number-cell.d.ts +2 -0
  430. package/dist/table/components/cells/number-cell.js +25 -0
  431. package/dist/table/components/cells/number-cell.js.map +1 -0
  432. package/dist/table/components/cells/numeric.d.ts +2 -0
  433. package/dist/table/components/cells/numeric.js +10 -0
  434. package/dist/table/components/cells/numeric.js.map +1 -0
  435. package/dist/table/components/cells/stack-cell.d.ts +3 -0
  436. package/dist/table/components/cells/stack-cell.js +17 -0
  437. package/dist/table/components/cells/stack-cell.js.map +1 -0
  438. package/dist/table/components/cells/text-cell.d.ts +2 -0
  439. package/dist/table/components/cells/text-cell.js +49 -0
  440. package/dist/table/components/cells/text-cell.js.map +1 -0
  441. package/dist/table/components/column-filter-control.d.ts +3 -1
  442. package/dist/table/components/column-filter-control.js +125 -100
  443. package/dist/table/components/column-filter-control.js.map +1 -1
  444. package/dist/table/components/column-header.d.ts +3 -1
  445. package/dist/table/components/column-header.js +28 -14
  446. package/dist/table/components/column-header.js.map +1 -1
  447. package/dist/table/components/filter-bar.d.ts +15 -0
  448. package/dist/table/components/filter-bar.js +81 -0
  449. package/dist/table/components/filter-bar.js.map +1 -0
  450. package/dist/table/components/filter-controls.d.ts +18 -0
  451. package/dist/table/components/filter-controls.js +256 -0
  452. package/dist/table/components/filter-controls.js.map +1 -0
  453. package/dist/table/components/filter-stack-bar.d.ts +2 -2
  454. package/dist/table/components/filter-stack-bar.js +10 -8
  455. package/dist/table/components/filter-stack-bar.js.map +1 -1
  456. package/dist/table/components/filter-value-input.d.ts +6 -3
  457. package/dist/table/components/filter-value-input.js +27 -17
  458. package/dist/table/components/filter-value-input.js.map +1 -1
  459. package/dist/table/components/pagination.d.ts +1 -1
  460. package/dist/table/components/pagination.js +20 -8
  461. package/dist/table/components/pagination.js.map +1 -1
  462. package/dist/table/components/sort-bar.d.ts +2 -2
  463. package/dist/table/components/sort-bar.js +12 -10
  464. package/dist/table/components/sort-bar.js.map +1 -1
  465. package/dist/table/components/table-action-node.d.ts +1 -1
  466. package/dist/table/components/table-action-node.js +1 -1
  467. package/dist/table/components/table-action-node.js.map +1 -1
  468. package/dist/table/components/table-cell.js +23 -52
  469. package/dist/table/components/table-cell.js.map +1 -1
  470. package/dist/table/components/table.d.ts +6 -2
  471. package/dist/table/components/table.js +198 -136
  472. package/dist/table/components/table.js.map +1 -1
  473. package/dist/table/filter-values.d.ts +13 -0
  474. package/dist/table/filter-values.js +30 -0
  475. package/dist/table/filter-values.js.map +1 -0
  476. package/dist/table/format.js +5 -3
  477. package/dist/table/format.js.map +1 -1
  478. package/dist/table/index.d.ts +1 -1
  479. package/dist/table/index.js.map +1 -1
  480. package/dist/table/payload.d.ts +1 -1
  481. package/dist/table/payload.js +24 -3
  482. package/dist/table/payload.js.map +1 -1
  483. package/dist/table/query.d.ts +10 -2
  484. package/dist/table/query.js +64 -11
  485. package/dist/table/query.js.map +1 -1
  486. package/dist/table/registry.d.ts +19 -0
  487. package/dist/table/registry.js +14 -0
  488. package/dist/table/registry.js.map +1 -0
  489. package/dist/table/types.d.ts +43 -57
  490. package/dist/table/use-table.d.ts +9 -5
  491. package/dist/table/use-table.js +66 -27
  492. package/dist/table/use-table.js.map +1 -1
  493. package/dist/toast/callout.d.ts +6 -0
  494. package/dist/toast/callout.js +31 -0
  495. package/dist/toast/callout.js.map +1 -0
  496. package/dist/toast/index.d.ts +5 -0
  497. package/dist/toast/index.js +4 -0
  498. package/dist/toast/toast.d.ts +14 -0
  499. package/dist/toast/toast.js +51 -0
  500. package/dist/toast/toast.js.map +1 -0
  501. package/dist/toast/toaster.d.ts +3 -0
  502. package/dist/toast/toaster.js +62 -0
  503. package/dist/toast/toaster.js.map +1 -0
  504. package/dist/toast/variant-styles.d.ts +6 -0
  505. package/dist/toast/variant-styles.js +37 -0
  506. package/dist/toast/variant-styles.js.map +1 -0
  507. package/dist/types/generated.d.ts +1037 -0
  508. package/dist/types/generated.js +0 -0
  509. package/dist/types/index.d.ts +1 -1
  510. package/dist/types/vite-env.d.ts +1 -0
  511. package/dist/vite.d.ts +25 -0
  512. package/dist/vite.js +72 -0
  513. package/dist/vite.js.map +1 -0
  514. package/package.json +125 -12
  515. package/resources/icons/align-center.svg +17 -0
  516. package/resources/icons/align-justify.svg +17 -0
  517. package/resources/icons/align-left.svg +17 -0
  518. package/resources/icons/align-right.svg +17 -0
  519. package/resources/icons/arrow-down.svg +16 -0
  520. package/resources/icons/arrow-up.svg +16 -0
  521. package/resources/icons/bold.svg +15 -0
  522. package/resources/icons/check.svg +15 -0
  523. package/resources/icons/chevron-down.svg +15 -0
  524. package/resources/icons/chevron-right.svg +15 -0
  525. package/resources/icons/chevrons-up-down.svg +16 -0
  526. package/resources/icons/circle-alert.svg +17 -0
  527. package/resources/icons/circle-check.svg +16 -0
  528. package/resources/icons/circle-help.svg +17 -0
  529. package/resources/icons/circle-x.svg +17 -0
  530. package/resources/icons/code.svg +16 -0
  531. package/resources/icons/columns-3.svg +17 -0
  532. package/resources/icons/copy.svg +16 -0
  533. package/resources/icons/external-link.svg +17 -0
  534. package/resources/icons/eye-off.svg +18 -0
  535. package/resources/icons/eye.svg +16 -0
  536. package/resources/icons/filter.svg +15 -0
  537. package/resources/icons/heading-1.svg +18 -0
  538. package/resources/icons/heading-2.svg +18 -0
  539. package/resources/icons/heading-3.svg +19 -0
  540. package/resources/icons/highlighter.svg +16 -0
  541. package/resources/icons/info.svg +17 -0
  542. package/resources/icons/italic.svg +17 -0
  543. package/resources/icons/layout-dashboard.svg +18 -0
  544. package/resources/icons/link.svg +16 -0
  545. package/resources/icons/list-ordered.svg +20 -0
  546. package/resources/icons/list.svg +20 -0
  547. package/resources/icons/loader-2.svg +15 -0
  548. package/resources/icons/minus.svg +15 -0
  549. package/resources/icons/more-horizontal.svg +17 -0
  550. package/resources/icons/panel-left.svg +16 -0
  551. package/resources/icons/pencil-line.svg +17 -0
  552. package/resources/icons/pencil.svg +16 -0
  553. package/resources/icons/plus.svg +16 -0
  554. package/resources/icons/quote.svg +16 -0
  555. package/resources/icons/rotate-ccw.svg +16 -0
  556. package/resources/icons/rows-3.svg +17 -0
  557. package/resources/icons/search.svg +16 -0
  558. package/resources/icons/send.svg +16 -0
  559. package/resources/icons/settings.svg +16 -0
  560. package/resources/icons/smile.svg +18 -0
  561. package/resources/icons/strikethrough.svg +17 -0
  562. package/resources/icons/table.svg +18 -0
  563. package/resources/icons/trash-2.svg +19 -0
  564. package/resources/icons/underline.svg +16 -0
  565. package/resources/icons/x.svg +16 -0
  566. package/dist/action/effects.d.ts +0 -30
  567. package/dist/action/effects.js +0 -44
  568. package/dist/action/effects.js.map +0 -1
  569. package/dist/core/props.d.ts +0 -14
  570. package/dist/core/props.js +0 -30
  571. package/dist/core/props.js.map +0 -1
  572. package/dist/form/components/base/checkbox.js.map +0 -1
  573. package/dist/form/components/fields/submit-button.d.ts +0 -10
  574. package/dist/form/components/fields/submit-button.js +0 -14
  575. package/dist/form/components/fields/submit-button.js.map +0 -1
  576. package/dist/generated/types.d.ts +0 -17
  577. package/dist/icons/default-icons.d.ts +0 -3
  578. package/dist/icons/default-icons.js +0 -44
  579. package/dist/icons/default-icons.js.map +0 -1
  580. package/dist/icons/dynamic-lucide-renderer.d.ts +0 -2
  581. package/dist/icons/dynamic-lucide-renderer.js +0 -18
  582. package/dist/icons/dynamic-lucide-renderer.js.map +0 -1
  583. package/dist/menu/index.d.ts +0 -1
  584. package/dist/menu/index.js +0 -2
  585. package/dist/menu/use-menu.d.ts +0 -2
  586. package/dist/menu/use-menu.js +0 -9
  587. package/dist/menu/use-menu.js.map +0 -1
  588. /package/dist/{generated → chat}/types.js +0 -0
  589. /package/dist/{form/components/base → core/components}/checkbox.d.ts +0 -0
@@ -0,0 +1,75 @@
1
+ import { cn } from "../../lib/utils.js";
2
+ import { Button } from "./button.js";
3
+ import { Icon } from "../../icons/sprite.js";
4
+ import "react";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ import * as DialogPrimitive from "@radix-ui/react-dialog";
7
+ //#region resources/js/core/components/dialog.tsx
8
+ var DIALOG_SURFACE = "fixed left-1/2 top-1/2 z-50 -translate-x-1/2 -translate-y-1/2 rounded-lt border border-lt-border bg-lt-bg p-6 shadow-lg";
9
+ function Dialog(props) {
10
+ return /* @__PURE__ */ jsx(DialogPrimitive.Root, {
11
+ "data-slot": "dialog",
12
+ ...props
13
+ });
14
+ }
15
+ function DialogClose(props) {
16
+ return /* @__PURE__ */ jsx(DialogPrimitive.Close, {
17
+ "data-slot": "dialog-close",
18
+ ...props
19
+ });
20
+ }
21
+ function DialogTitle({ className, ...props }) {
22
+ return /* @__PURE__ */ jsx(DialogPrimitive.Title, {
23
+ className: cn("text-lg font-semibold leading-none tracking-tight", className),
24
+ "data-slot": "dialog-title",
25
+ ...props
26
+ });
27
+ }
28
+ function DialogDescription({ className, ...props }) {
29
+ return /* @__PURE__ */ jsx(DialogPrimitive.Description, {
30
+ className: cn("text-sm text-lt-muted-fg", className),
31
+ "data-slot": "dialog-description",
32
+ ...props
33
+ });
34
+ }
35
+ function DialogContent({ children, className, ...props }) {
36
+ return /* @__PURE__ */ jsxs(DialogPrimitive.Portal, { children: [/* @__PURE__ */ jsx(DialogPrimitive.Overlay, {
37
+ className: "fixed inset-0 z-50 bg-lt-overlay",
38
+ "data-slot": "dialog-overlay"
39
+ }), /* @__PURE__ */ jsx(DialogPrimitive.Content, {
40
+ className: cn(DIALOG_SURFACE, className),
41
+ "data-slot": "dialog-content",
42
+ ...props,
43
+ children
44
+ })] });
45
+ }
46
+ /**
47
+ * The shared dialog header: a title with an optional description and a ghost
48
+ * close button. Pass `description` as `undefined` to suppress the description
49
+ * and the matching `aria-describedby` wiring on the content.
50
+ */
51
+ function DialogHeader({ closeLabel, description, title }) {
52
+ return /* @__PURE__ */ jsxs("div", {
53
+ className: "flex items-start justify-between gap-4",
54
+ children: [/* @__PURE__ */ jsxs("div", {
55
+ className: "grid gap-2",
56
+ children: [/* @__PURE__ */ jsx(DialogTitle, { children: title }), description ? /* @__PURE__ */ jsx(DialogDescription, { children: description }) : null]
57
+ }), /* @__PURE__ */ jsx(DialogClose, {
58
+ asChild: true,
59
+ children: /* @__PURE__ */ jsx(Button, {
60
+ "aria-label": closeLabel,
61
+ size: "icon",
62
+ variant: "ghost",
63
+ children: /* @__PURE__ */ jsx(Icon, {
64
+ name: "x",
65
+ "aria-hidden": "true",
66
+ className: "size-lt-icon-md"
67
+ })
68
+ })
69
+ })]
70
+ });
71
+ }
72
+ //#endregion
73
+ export { DIALOG_SURFACE, Dialog, DialogClose, DialogContent, DialogDescription, DialogHeader, DialogTitle };
74
+
75
+ //# sourceMappingURL=dialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog.js","names":[],"sources":["../../../resources/js/core/components/dialog.tsx"],"sourcesContent":["import { Icon } from \"@lattice-php/lattice/icons\";\nimport * as DialogPrimitive from \"@radix-ui/react-dialog\";\nimport * as React from \"react\";\nimport { Button } from \"@lattice-php/lattice/core/components/button\";\nimport { cn } from \"@lattice-php/lattice/lib/utils\";\n\nexport const DIALOG_SURFACE =\n \"fixed left-1/2 top-1/2 z-50 -translate-x-1/2 -translate-y-1/2 rounded-lt border border-lt-border bg-lt-bg p-6 shadow-lg\";\n\nfunction Dialog(props: React.ComponentProps<typeof DialogPrimitive.Root>) {\n return <DialogPrimitive.Root data-slot=\"dialog\" {...props} />;\n}\n\nfunction DialogClose(props: React.ComponentProps<typeof DialogPrimitive.Close>) {\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />;\n}\n\nfunction DialogTitle({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Title>) {\n return (\n <DialogPrimitive.Title\n className={cn(\"text-lg font-semibold leading-none tracking-tight\", className)}\n data-slot=\"dialog-title\"\n {...props}\n />\n );\n}\n\nfunction DialogDescription({\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Description>) {\n return (\n <DialogPrimitive.Description\n className={cn(\"text-sm text-lt-muted-fg\", className)}\n data-slot=\"dialog-description\"\n {...props}\n />\n );\n}\n\nfunction DialogContent({\n children,\n className,\n ...props\n}: React.ComponentProps<typeof DialogPrimitive.Content>) {\n return (\n <DialogPrimitive.Portal>\n <DialogPrimitive.Overlay\n className=\"fixed inset-0 z-50 bg-lt-overlay\"\n data-slot=\"dialog-overlay\"\n />\n <DialogPrimitive.Content\n className={cn(DIALOG_SURFACE, className)}\n data-slot=\"dialog-content\"\n {...props}\n >\n {children}\n </DialogPrimitive.Content>\n </DialogPrimitive.Portal>\n );\n}\n\n/**\n * The shared dialog header: a title with an optional description and a ghost\n * close button. Pass `description` as `undefined` to suppress the description\n * and the matching `aria-describedby` wiring on the content.\n */\nfunction DialogHeader({\n closeLabel,\n description,\n title,\n}: {\n closeLabel?: string;\n description?: React.ReactNode;\n title: React.ReactNode;\n}) {\n return (\n <div className=\"flex items-start justify-between gap-4\">\n <div className=\"grid gap-2\">\n <DialogTitle>{title}</DialogTitle>\n {description ? <DialogDescription>{description}</DialogDescription> : null}\n </div>\n <DialogClose asChild>\n <Button aria-label={closeLabel} size=\"icon\" variant=\"ghost\">\n <Icon name=\"x\" aria-hidden=\"true\" className=\"size-lt-icon-md\" />\n </Button>\n </DialogClose>\n </div>\n );\n}\n\nexport { Dialog, DialogClose, DialogContent, DialogDescription, DialogHeader, DialogTitle };\n"],"mappings":";;;;;;;AAMA,IAAa,iBACX;AAEF,SAAS,OAAO,OAA0D;CACxE,OAAO,oBAAC,gBAAgB,MAAjB;EAAsB,aAAU;EAAS,GAAI;CAAQ,CAAA;AAC9D;AAEA,SAAS,YAAY,OAA2D;CAC9E,OAAO,oBAAC,gBAAgB,OAAjB;EAAuB,aAAU;EAAe,GAAI;CAAQ,CAAA;AACrE;AAEA,SAAS,YAAY,EAAE,WAAW,GAAG,SAA6D;CAChG,OACE,oBAAC,gBAAgB,OAAjB;EACE,WAAW,GAAG,qDAAqD,SAAS;EAC5E,aAAU;EACV,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,kBAAkB,EACzB,WACA,GAAG,SACwD;CAC3D,OACE,oBAAC,gBAAgB,aAAjB;EACE,WAAW,GAAG,4BAA4B,SAAS;EACnD,aAAU;EACV,GAAI;CACL,CAAA;AAEL;AAEA,SAAS,cAAc,EACrB,UACA,WACA,GAAG,SACoD;CACvD,OACE,qBAAC,gBAAgB,QAAjB,EAAA,UAAA,CACE,oBAAC,gBAAgB,SAAjB;EACE,WAAU;EACV,aAAU;CACX,CAAA,GACD,oBAAC,gBAAgB,SAAjB;EACE,WAAW,GAAG,gBAAgB,SAAS;EACvC,aAAU;EACV,GAAI;EAEH;CACsB,CAAA,CACH,EAAA,CAAA;AAE5B;;;;;;AAOA,SAAS,aAAa,EACpB,YACA,aACA,SAKC;CACD,OACE,qBAAC,OAAD;EAAK,WAAU;YAAf,CACE,qBAAC,OAAD;GAAK,WAAU;aAAf,CACE,oBAAC,aAAD,EAAA,UAAc,MAAmB,CAAA,GAChC,cAAc,oBAAC,mBAAD,EAAA,UAAoB,YAA+B,CAAA,IAAI,IACnE;MACL,oBAAC,aAAD;GAAa,SAAA;aACX,oBAAC,QAAD;IAAQ,cAAY;IAAY,MAAK;IAAO,SAAQ;cAClD,oBAAC,MAAD;KAAM,MAAK;KAAI,eAAY;KAAO,WAAU;IAAmB,CAAA;GACzD,CAAA;EACG,CAAA,CACV;;AAET"}
@@ -0,0 +1,14 @@
1
+ import { Popover, PopoverContent, PopoverTrigger } from './popover';
2
+ import * as React from "react";
3
+ declare function DropdownMenu(props: React.ComponentProps<typeof Popover>): React.JSX.Element;
4
+ declare function DropdownMenuTrigger(props: React.ComponentProps<typeof PopoverTrigger>): React.JSX.Element;
5
+ declare function DropdownMenuContent({ className, ...props }: React.ComponentProps<typeof PopoverContent>): React.JSX.Element;
6
+ /**
7
+ * A menu entry that closes the menu when activated. Wrap the click handler in
8
+ * `onClick`; selecting the item dismisses the popover via `PopoverClose`.
9
+ */
10
+ declare function DropdownMenuItem({ children, className, destructive, icon, ...props }: React.ComponentProps<"button"> & {
11
+ destructive?: boolean;
12
+ icon?: string;
13
+ }): React.JSX.Element;
14
+ export { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger };
@@ -0,0 +1,42 @@
1
+ import { cn } from "../../lib/utils.js";
2
+ import { Icon } from "../../icons/sprite.js";
3
+ import { Popover, PopoverClose, PopoverContent, PopoverTrigger } from "./popover.js";
4
+ import "react";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ //#region resources/js/core/components/dropdown-menu.tsx
7
+ function DropdownMenu(props) {
8
+ return /* @__PURE__ */ jsx(Popover, { ...props });
9
+ }
10
+ function DropdownMenuTrigger(props) {
11
+ return /* @__PURE__ */ jsx(PopoverTrigger, { ...props });
12
+ }
13
+ function DropdownMenuContent({ className, ...props }) {
14
+ return /* @__PURE__ */ jsx(PopoverContent, {
15
+ className: cn("grid min-w-40 gap-1 p-1", className),
16
+ role: "menu",
17
+ ...props
18
+ });
19
+ }
20
+ /**
21
+ * A menu entry that closes the menu when activated. Wrap the click handler in
22
+ * `onClick`; selecting the item dismisses the popover via `PopoverClose`.
23
+ */
24
+ function DropdownMenuItem({ children, className, destructive = false, icon, ...props }) {
25
+ return /* @__PURE__ */ jsx(PopoverClose, {
26
+ asChild: true,
27
+ children: /* @__PURE__ */ jsxs("button", {
28
+ type: "button",
29
+ role: "menuitem",
30
+ className: cn("flex w-full items-center gap-2 rounded-lt-sm px-3 py-1.5 text-left text-sm [&_svg]:size-lt-icon-sm", destructive ? "text-lt-danger hover:bg-lt-danger/10" : "hover:bg-lt-accent hover:text-lt-accent-fg", className),
31
+ ...props,
32
+ children: [icon ? /* @__PURE__ */ jsx(Icon, {
33
+ name: icon,
34
+ "aria-hidden": "true"
35
+ }) : null, children]
36
+ })
37
+ });
38
+ }
39
+ //#endregion
40
+ export { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger };
41
+
42
+ //# sourceMappingURL=dropdown-menu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropdown-menu.js","names":[],"sources":["../../../resources/js/core/components/dropdown-menu.tsx"],"sourcesContent":["import { Icon } from \"@lattice-php/lattice/icons\";\nimport * as React from \"react\";\nimport { cn } from \"@lattice-php/lattice/lib/utils\";\nimport { Popover, PopoverClose, PopoverContent, PopoverTrigger } from \"./popover\";\n\nfunction DropdownMenu(props: React.ComponentProps<typeof Popover>) {\n return <Popover {...props} />;\n}\n\nfunction DropdownMenuTrigger(props: React.ComponentProps<typeof PopoverTrigger>) {\n return <PopoverTrigger {...props} />;\n}\n\nfunction DropdownMenuContent({ className, ...props }: React.ComponentProps<typeof PopoverContent>) {\n return (\n <PopoverContent className={cn(\"grid min-w-40 gap-1 p-1\", className)} role=\"menu\" {...props} />\n );\n}\n\n/**\n * A menu entry that closes the menu when activated. Wrap the click handler in\n * `onClick`; selecting the item dismisses the popover via `PopoverClose`.\n */\nfunction DropdownMenuItem({\n children,\n className,\n destructive = false,\n icon,\n ...props\n}: React.ComponentProps<\"button\"> & { destructive?: boolean; icon?: string }) {\n return (\n <PopoverClose asChild>\n <button\n type=\"button\"\n role=\"menuitem\"\n className={cn(\n \"flex w-full items-center gap-2 rounded-lt-sm px-3 py-1.5 text-left text-sm [&_svg]:size-lt-icon-sm\",\n destructive\n ? \"text-lt-danger hover:bg-lt-danger/10\"\n : \"hover:bg-lt-accent hover:text-lt-accent-fg\",\n className,\n )}\n {...props}\n >\n {icon ? <Icon name={icon} aria-hidden=\"true\" /> : null}\n {children}\n </button>\n </PopoverClose>\n );\n}\n\nexport { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger };\n"],"mappings":";;;;;;AAKA,SAAS,aAAa,OAA6C;CACjE,OAAO,oBAAC,SAAD,EAAS,GAAI,MAAQ,CAAA;AAC9B;AAEA,SAAS,oBAAoB,OAAoD;CAC/E,OAAO,oBAAC,gBAAD,EAAgB,GAAI,MAAQ,CAAA;AACrC;AAEA,SAAS,oBAAoB,EAAE,WAAW,GAAG,SAAsD;CACjG,OACE,oBAAC,gBAAD;EAAgB,WAAW,GAAG,2BAA2B,SAAS;EAAG,MAAK;EAAO,GAAI;CAAQ,CAAA;AAEjG;;;;;AAMA,SAAS,iBAAiB,EACxB,UACA,WACA,cAAc,OACd,MACA,GAAG,SACyE;CAC5E,OACE,oBAAC,cAAD;EAAc,SAAA;YACZ,qBAAC,UAAD;GACE,MAAK;GACL,MAAK;GACL,WAAW,GACT,sGACA,cACI,yCACA,8CACJ,SACF;GACA,GAAI;aAVN,CAYG,OAAO,oBAAC,MAAD;IAAM,MAAM;IAAM,eAAY;GAAQ,CAAA,IAAI,MACjD,QACK;;CACI,CAAA;AAElB"}
@@ -0,0 +1,3 @@
1
+ import { RendererComponent } from '../types';
2
+ declare const FloatingPanelComponent: RendererComponent<"floating-panel">;
3
+ export default FloatingPanelComponent;
@@ -0,0 +1,65 @@
1
+ import { cn } from "../../lib/utils.js";
2
+ import { RenderNode } from "../renderer.js";
3
+ import { useState } from "react";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ //#region resources/js/core/components/floating-panel.tsx
6
+ function placementStyle(placement, offset) {
7
+ if (placement === "top-start") return {
8
+ left: offset,
9
+ top: offset
10
+ };
11
+ if (placement === "top-end") return {
12
+ right: offset,
13
+ top: offset
14
+ };
15
+ if (placement === "bottom-start") return {
16
+ bottom: offset,
17
+ left: offset
18
+ };
19
+ return {
20
+ bottom: offset,
21
+ right: offset
22
+ };
23
+ }
24
+ var FloatingPanelComponent = ({ children, node }) => {
25
+ const label = node.props.label ?? void 0;
26
+ const offset = Math.max(0, node.props.offset ?? 16);
27
+ const placement = node.props.placement ?? "bottom-end";
28
+ const trigger = node.props.trigger ?? [];
29
+ const [open, setOpen] = useState(false);
30
+ if (trigger.length === 0) return /* @__PURE__ */ jsx("div", {
31
+ "aria-label": label,
32
+ className: "fixed z-50 max-w-[calc(100vw-2rem)] rounded-lt border border-lt-border bg-lt-popover p-1 text-lt-popover-fg shadow-md",
33
+ "data-lattice-component": node.id,
34
+ role: label ? "group" : void 0,
35
+ style: placementStyle(placement, offset),
36
+ children
37
+ });
38
+ const expandsUpward = placement === "bottom-start" || placement === "bottom-end";
39
+ const anchorsToStart = placement === "top-start" || placement === "bottom-start";
40
+ return /* @__PURE__ */ jsx("div", {
41
+ "aria-label": label,
42
+ className: "fixed z-50 max-w-[calc(100vw-2rem)]",
43
+ "data-lattice-component": node.id,
44
+ role: label ? "group" : void 0,
45
+ style: placementStyle(placement, offset),
46
+ children: /* @__PURE__ */ jsxs("div", {
47
+ className: cn("flex w-fit gap-2", expandsUpward ? "flex-col-reverse" : "flex-col"),
48
+ children: [/* @__PURE__ */ jsx("button", {
49
+ "aria-expanded": open,
50
+ className: cn("inline-flex items-center gap-2 rounded-lt border border-lt-border bg-lt-popover px-3 py-1.5 text-sm font-medium text-lt-popover-fg shadow-md hover:bg-lt-muted", anchorsToStart ? "self-start" : "self-end"),
51
+ "data-test": node.key ? `${node.key}-trigger` : void 0,
52
+ onClick: () => setOpen((value) => !value),
53
+ type: "button",
54
+ children: trigger.map((triggerNode, index) => /* @__PURE__ */ jsx(RenderNode, { node: triggerNode }, triggerNode.key ?? `${triggerNode.type}-${index}`))
55
+ }), /* @__PURE__ */ jsx("div", {
56
+ className: open ? "block" : "hidden",
57
+ children
58
+ })]
59
+ })
60
+ });
61
+ };
62
+ //#endregion
63
+ export { FloatingPanelComponent as default };
64
+
65
+ //# sourceMappingURL=floating-panel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"floating-panel.js","names":[],"sources":["../../../resources/js/core/components/floating-panel.tsx"],"sourcesContent":["import { type CSSProperties, useState } from \"react\";\nimport type { RendererComponent } from \"@lattice-php/lattice/core/types\";\nimport type { FloatingPlacement } from \"@lattice-php/lattice/types/generated\";\nimport { RenderNode } from \"@lattice-php/lattice/core/renderer\";\nimport { cn } from \"@lattice-php/lattice/lib/utils\";\n\nfunction placementStyle(placement: FloatingPlacement, offset: number): CSSProperties {\n if (placement === \"top-start\") {\n return { left: offset, top: offset };\n }\n\n if (placement === \"top-end\") {\n return { right: offset, top: offset };\n }\n\n if (placement === \"bottom-start\") {\n return { bottom: offset, left: offset };\n }\n\n return { bottom: offset, right: offset };\n}\n\nconst FloatingPanelComponent: RendererComponent<\"floating-panel\"> = ({ children, node }) => {\n const label = node.props.label ?? undefined;\n const offset = Math.max(0, node.props.offset ?? 16);\n const placement = node.props.placement ?? \"bottom-end\";\n const trigger = node.props.trigger ?? [];\n const [open, setOpen] = useState(false);\n\n if (trigger.length === 0) {\n return (\n <div\n aria-label={label}\n className=\"fixed z-50 max-w-[calc(100vw-2rem)] rounded-lt border border-lt-border bg-lt-popover p-1 text-lt-popover-fg shadow-md\"\n data-lattice-component={node.id}\n role={label ? \"group\" : undefined}\n style={placementStyle(placement, offset)}\n >\n {children}\n </div>\n );\n }\n\n const expandsUpward = placement === \"bottom-start\" || placement === \"bottom-end\";\n const anchorsToStart = placement === \"top-start\" || placement === \"bottom-start\";\n\n return (\n <div\n aria-label={label}\n className=\"fixed z-50 max-w-[calc(100vw-2rem)]\"\n data-lattice-component={node.id}\n role={label ? \"group\" : undefined}\n style={placementStyle(placement, offset)}\n >\n <div className={cn(\"flex w-fit gap-2\", expandsUpward ? \"flex-col-reverse\" : \"flex-col\")}>\n <button\n aria-expanded={open}\n className={cn(\n \"inline-flex items-center gap-2 rounded-lt border border-lt-border bg-lt-popover px-3 py-1.5 text-sm font-medium text-lt-popover-fg shadow-md hover:bg-lt-muted\",\n anchorsToStart ? \"self-start\" : \"self-end\",\n )}\n data-test={node.key ? `${node.key}-trigger` : undefined}\n onClick={() => setOpen((value) => !value)}\n type=\"button\"\n >\n {trigger.map((triggerNode, index) => (\n <RenderNode\n key={triggerNode.key ?? `${triggerNode.type}-${index}`}\n node={triggerNode}\n />\n ))}\n </button>\n <div className={open ? \"block\" : \"hidden\"}>{children}</div>\n </div>\n </div>\n );\n};\n\nexport default FloatingPanelComponent;\n"],"mappings":";;;;;AAMA,SAAS,eAAe,WAA8B,QAA+B;CACnF,IAAI,cAAc,aAChB,OAAO;EAAE,MAAM;EAAQ,KAAK;CAAO;CAGrC,IAAI,cAAc,WAChB,OAAO;EAAE,OAAO;EAAQ,KAAK;CAAO;CAGtC,IAAI,cAAc,gBAChB,OAAO;EAAE,QAAQ;EAAQ,MAAM;CAAO;CAGxC,OAAO;EAAE,QAAQ;EAAQ,OAAO;CAAO;AACzC;AAEA,IAAM,0BAA+D,EAAE,UAAU,WAAW;CAC1F,MAAM,QAAQ,KAAK,MAAM,SAAS,KAAA;CAClC,MAAM,SAAS,KAAK,IAAI,GAAG,KAAK,MAAM,UAAU,EAAE;CAClD,MAAM,YAAY,KAAK,MAAM,aAAa;CAC1C,MAAM,UAAU,KAAK,MAAM,WAAW,CAAC;CACvC,MAAM,CAAC,MAAM,WAAW,SAAS,KAAK;CAEtC,IAAI,QAAQ,WAAW,GACrB,OACE,oBAAC,OAAD;EACE,cAAY;EACZ,WAAU;EACV,0BAAwB,KAAK;EAC7B,MAAM,QAAQ,UAAU,KAAA;EACxB,OAAO,eAAe,WAAW,MAAM;EAEtC;CACE,CAAA;CAIT,MAAM,gBAAgB,cAAc,kBAAkB,cAAc;CACpE,MAAM,iBAAiB,cAAc,eAAe,cAAc;CAElE,OACE,oBAAC,OAAD;EACE,cAAY;EACZ,WAAU;EACV,0BAAwB,KAAK;EAC7B,MAAM,QAAQ,UAAU,KAAA;EACxB,OAAO,eAAe,WAAW,MAAM;YAEvC,qBAAC,OAAD;GAAK,WAAW,GAAG,oBAAoB,gBAAgB,qBAAqB,UAAU;aAAtF,CACE,oBAAC,UAAD;IACE,iBAAe;IACf,WAAW,GACT,kKACA,iBAAiB,eAAe,UAClC;IACA,aAAW,KAAK,MAAM,GAAG,KAAK,IAAI,YAAY,KAAA;IAC9C,eAAe,SAAS,UAAU,CAAC,KAAK;IACxC,MAAK;cAEJ,QAAQ,KAAK,aAAa,UACzB,oBAAC,YAAD,EAEE,MAAM,YACP,GAFM,YAAY,OAAO,GAAG,YAAY,KAAK,GAAG,OAEhD,CACF;GACK,CAAA,GACR,oBAAC,OAAD;IAAK,WAAW,OAAO,UAAU;IAAW;GAAc,CAAA,CACvD;;CACF,CAAA;AAET"}
@@ -1,12 +1,3 @@
1
- import { RendererComponent } from '../../../../core/types';
2
- declare module '../../../../core/types' {
3
- interface ComponentProps {
4
- fragment: {
5
- endpoint?: string;
6
- ref?: string;
7
- lazy?: boolean;
8
- };
9
- }
10
- }
1
+ import { RendererComponent } from '../types';
11
2
  declare const FragmentComponent: RendererComponent<"fragment">;
12
3
  export default FragmentComponent;
@@ -1,30 +1,34 @@
1
- import { withRefHeader } from "../component-ref.js";
2
- import { getStringProp } from "../props.js";
3
1
  import { LATTICE_EVENT } from "../../events/event-names.js";
4
- import { Renderer, useRendererContext } from "../renderer.js";
2
+ import { apiJson } from "../api.js";
3
+ import { Skeleton } from "./skeleton.js";
4
+ import { Renderer } from "../renderer.js";
5
5
  import { useCallback, useEffect, useState } from "react";
6
6
  import { jsx } from "react/jsx-runtime";
7
7
  //#region resources/js/core/components/fragment.tsx
8
+ var fragmentSizeHeights = {
9
+ lg: 320,
10
+ md: 64,
11
+ sm: 40,
12
+ xl: 384,
13
+ xs: 32
14
+ };
8
15
  function getComponents(value) {
9
16
  if (!Array.isArray(value)) return [];
10
17
  return value.filter((node) => typeof node === "object" && node !== null && "type" in node && typeof node.type === "string");
11
18
  }
12
19
  var FragmentComponent = ({ node }) => {
13
- const endpoint = getStringProp(node.props, "endpoint");
14
- const isLazy = node.props?.lazy === true;
15
- const componentRef = getStringProp(node.props, "ref");
16
- const [components, setComponents] = useState(() => node.children ?? []);
20
+ const endpoint = node.props.endpoint ?? "";
21
+ const isLazy = node.props.lazy === true;
22
+ const componentRef = node.props.ref ?? "";
23
+ const placeholderHeight = fragmentSizeHeights[node.props.size];
24
+ const [components, setComponents] = useState(() => node.schema ?? []);
17
25
  const [hasLoaded, setHasLoaded] = useState(!isLazy);
18
26
  const [processing, setProcessing] = useState(isLazy && endpoint !== "");
19
- const { fallback, missingComponent, registry } = useRendererContext();
20
27
  const load = useCallback(async () => {
21
28
  if (!endpoint) return;
22
29
  setProcessing(true);
23
30
  try {
24
- setComponents(getComponents((await (await fetch(endpoint, { headers: {
25
- Accept: "application/json",
26
- ...withRefHeader(componentRef)
27
- } })).json()).components));
31
+ setComponents(getComponents((await apiJson(endpoint, { ref: componentRef })).schema));
28
32
  setHasLoaded(true);
29
33
  } finally {
30
34
  setProcessing(false);
@@ -46,14 +50,21 @@ var FragmentComponent = ({ node }) => {
46
50
  window.addEventListener(LATTICE_EVENT.reloadComponent, reload);
47
51
  return () => window.removeEventListener(LATTICE_EVENT.reloadComponent, reload);
48
52
  }, [load, node.id]);
53
+ useEffect(() => {
54
+ function reloadOnLocaleChange() {
55
+ if (!hasLoaded) return;
56
+ load();
57
+ }
58
+ window.addEventListener(LATTICE_EVENT.localeChange, reloadOnLocaleChange);
59
+ return () => window.removeEventListener(LATTICE_EVENT.localeChange, reloadOnLocaleChange);
60
+ }, [hasLoaded, load]);
49
61
  return /* @__PURE__ */ jsx("div", {
50
62
  "data-lattice-fragment": node.id,
51
- children: processing && components.length === 0 ? /* @__PURE__ */ jsx("div", { className: "h-16 animate-pulse rounded-lt-sm bg-lt-muted" }) : /* @__PURE__ */ jsx(Renderer, {
52
- fallback,
53
- missingComponent,
54
- nodes: components,
55
- registry
56
- })
63
+ style: processing && components.length === 0 ? { minHeight: placeholderHeight } : void 0,
64
+ children: processing && components.length === 0 ? /* @__PURE__ */ jsx(Skeleton, {
65
+ className: "w-full",
66
+ style: { height: placeholderHeight }
67
+ }) : /* @__PURE__ */ jsx(Renderer, { nodes: components })
57
68
  });
58
69
  };
59
70
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"fragment.js","names":[],"sources":["../../../resources/js/core/components/fragment.tsx"],"sourcesContent":["import { useCallback, useEffect, useState } from \"react\";\nimport { withRefHeader } from \"@lattice/lattice/core/component-ref\";\nimport { getStringProp } from \"@lattice/lattice/core/props\";\nimport { Renderer, useRendererContext } from \"@lattice/lattice/core/renderer\";\nimport type { Node, RendererComponent } from \"@lattice/lattice/core/types\";\nimport { LATTICE_EVENT, type ReloadComponentEvent } from \"@lattice/lattice/events/event-names\";\n\ntype FragmentResponse = {\n components?: Node[];\n};\n\ndeclare module \"@lattice/lattice/core/types\" {\n interface ComponentProps {\n fragment: {\n endpoint?: string;\n ref?: string;\n lazy?: boolean;\n };\n }\n}\n\nfunction getComponents(value: unknown): Node[] {\n if (!Array.isArray(value)) {\n return [];\n }\n\n return value.filter(\n (node): node is Node =>\n typeof node === \"object\" && node !== null && \"type\" in node && typeof node.type === \"string\",\n );\n}\n\nconst FragmentComponent: RendererComponent<\"fragment\"> = ({ node }) => {\n const endpoint = getStringProp(node.props, \"endpoint\");\n const isLazy = node.props?.lazy === true;\n const componentRef = getStringProp(node.props, \"ref\");\n const [components, setComponents] = useState(() => node.children ?? []);\n const [hasLoaded, setHasLoaded] = useState(!isLazy);\n const [processing, setProcessing] = useState(isLazy && endpoint !== \"\");\n const { fallback, missingComponent, registry } = useRendererContext();\n\n const load = useCallback(async (): Promise<void> => {\n if (!endpoint) {\n return;\n }\n\n setProcessing(true);\n\n try {\n const response = await fetch(endpoint, {\n headers: {\n Accept: \"application/json\",\n ...withRefHeader(componentRef),\n },\n });\n const result = (await response.json()) as FragmentResponse;\n\n setComponents(getComponents(result.components));\n setHasLoaded(true);\n } finally {\n setProcessing(false);\n }\n }, [endpoint, componentRef]);\n\n useEffect(() => {\n if (!isLazy || hasLoaded) {\n return;\n }\n\n void load();\n }, [hasLoaded, isLazy, load]);\n\n useEffect(() => {\n function reload(event: Event): void {\n const detail = (event as ReloadComponentEvent).detail;\n\n if (detail?.component !== node.id) {\n return;\n }\n\n void load();\n }\n\n window.addEventListener(LATTICE_EVENT.reloadComponent, reload);\n\n return () => window.removeEventListener(LATTICE_EVENT.reloadComponent, reload);\n }, [load, node.id]);\n\n return (\n <div data-lattice-fragment={node.id}>\n {processing && components.length === 0 ? (\n <div className=\"h-16 animate-pulse rounded-lt-sm bg-lt-muted\" />\n ) : (\n <Renderer\n fallback={fallback}\n missingComponent={missingComponent}\n nodes={components}\n registry={registry}\n />\n )}\n </div>\n );\n};\n\nexport default FragmentComponent;\n"],"mappings":";;;;;;;AAqBA,SAAS,cAAc,OAAwB;CAC7C,IAAI,CAAC,MAAM,QAAQ,KAAK,GACtB,OAAO,CAAC;CAGV,OAAO,MAAM,QACV,SACC,OAAO,SAAS,YAAY,SAAS,QAAQ,UAAU,QAAQ,OAAO,KAAK,SAAS,QACxF;AACF;AAEA,IAAM,qBAAoD,EAAE,WAAW;CACrE,MAAM,WAAW,cAAc,KAAK,OAAO,UAAU;CACrD,MAAM,SAAS,KAAK,OAAO,SAAS;CACpC,MAAM,eAAe,cAAc,KAAK,OAAO,KAAK;CACpD,MAAM,CAAC,YAAY,iBAAiB,eAAe,KAAK,YAAY,CAAC,CAAC;CACtE,MAAM,CAAC,WAAW,gBAAgB,SAAS,CAAC,MAAM;CAClD,MAAM,CAAC,YAAY,iBAAiB,SAAS,UAAU,aAAa,EAAE;CACtE,MAAM,EAAE,UAAU,kBAAkB,aAAa,mBAAmB;CAEpE,MAAM,OAAO,YAAY,YAA2B;EAClD,IAAI,CAAC,UACH;EAGF,cAAc,IAAI;EAElB,IAAI;GASF,cAAc,eAAc,OAFN,MANC,MAAM,UAAU,EACrC,SAAS;IACP,QAAQ;IACR,GAAG,cAAc,YAAY;GAC/B,EACF,CAAC,GAC8B,KAAK,GAED,UAAU,CAAC;GAC9C,aAAa,IAAI;EACnB,UAAU;GACR,cAAc,KAAK;EACrB;CACF,GAAG,CAAC,UAAU,YAAY,CAAC;CAE3B,gBAAgB;EACd,IAAI,CAAC,UAAU,WACb;EAGF,KAAU;CACZ,GAAG;EAAC;EAAW;EAAQ;CAAI,CAAC;CAE5B,gBAAgB;EACd,SAAS,OAAO,OAAoB;GAGlC,IAFgB,MAA+B,QAEnC,cAAc,KAAK,IAC7B;GAGF,KAAU;EACZ;EAEA,OAAO,iBAAiB,cAAc,iBAAiB,MAAM;EAE7D,aAAa,OAAO,oBAAoB,cAAc,iBAAiB,MAAM;CAC/E,GAAG,CAAC,MAAM,KAAK,EAAE,CAAC;CAElB,OACE,oBAAC,OAAD;EAAK,yBAAuB,KAAK;YAC9B,cAAc,WAAW,WAAW,IACnC,oBAAC,OAAD,EAAK,WAAU,+CAAgD,CAAA,IAE/D,oBAAC,UAAD;GACY;GACQ;GAClB,OAAO;GACG;EACX,CAAA;CAEA,CAAA;AAET"}
1
+ {"version":3,"file":"fragment.js","names":[],"sources":["../../../resources/js/core/components/fragment.tsx"],"sourcesContent":["import { useCallback, useEffect, useState } from \"react\";\nimport { apiJson } from \"@lattice-php/lattice/core/api\";\nimport { Skeleton } from \"@lattice-php/lattice/core/components/skeleton\";\nimport { Renderer } from \"@lattice-php/lattice/core/renderer\";\nimport type { Node, RendererComponent, Schema } from \"@lattice-php/lattice/core/types\";\nimport { LATTICE_EVENT, type ReloadComponentEvent } from \"@lattice-php/lattice/events/event-names\";\n\ntype FragmentResponse = {\n schema?: Schema;\n};\n\nconst fragmentSizeHeights = {\n lg: 320,\n md: 64,\n sm: 40,\n xl: 384,\n xs: 32,\n} as const;\n\nfunction getComponents(value: unknown): Node[] {\n if (!Array.isArray(value)) {\n return [];\n }\n\n return value.filter(\n (node): node is Node =>\n typeof node === \"object\" && node !== null && \"type\" in node && typeof node.type === \"string\",\n );\n}\n\nconst FragmentComponent: RendererComponent<\"fragment\"> = ({ node }) => {\n const endpoint = node.props.endpoint ?? \"\";\n const isLazy = node.props.lazy === true;\n const componentRef = node.props.ref ?? \"\";\n const placeholderHeight = fragmentSizeHeights[node.props.size];\n const [components, setComponents] = useState(() => node.schema ?? []);\n const [hasLoaded, setHasLoaded] = useState(!isLazy);\n const [processing, setProcessing] = useState(isLazy && endpoint !== \"\");\n\n const load = useCallback(async (): Promise<void> => {\n if (!endpoint) {\n return;\n }\n\n setProcessing(true);\n\n try {\n const result = await apiJson<FragmentResponse>(endpoint, { ref: componentRef });\n\n setComponents(getComponents(result.schema));\n setHasLoaded(true);\n } finally {\n setProcessing(false);\n }\n }, [endpoint, componentRef]);\n\n useEffect(() => {\n if (!isLazy || hasLoaded) {\n return;\n }\n\n void load();\n }, [hasLoaded, isLazy, load]);\n\n useEffect(() => {\n function reload(event: Event): void {\n const detail = (event as ReloadComponentEvent).detail;\n\n if (detail?.component !== node.id) {\n return;\n }\n\n void load();\n }\n\n window.addEventListener(LATTICE_EVENT.reloadComponent, reload);\n\n return () => window.removeEventListener(LATTICE_EVENT.reloadComponent, reload);\n }, [load, node.id]);\n\n useEffect(() => {\n function reloadOnLocaleChange(): void {\n if (!hasLoaded) {\n return;\n }\n\n void load();\n }\n\n window.addEventListener(LATTICE_EVENT.localeChange, reloadOnLocaleChange);\n\n return () => window.removeEventListener(LATTICE_EVENT.localeChange, reloadOnLocaleChange);\n }, [hasLoaded, load]);\n\n return (\n <div\n data-lattice-fragment={node.id}\n style={processing && components.length === 0 ? { minHeight: placeholderHeight } : undefined}\n >\n {processing && components.length === 0 ? (\n <Skeleton className=\"w-full\" style={{ height: placeholderHeight }} />\n ) : (\n <Renderer nodes={components} />\n )}\n </div>\n );\n};\n\nexport default FragmentComponent;\n"],"mappings":";;;;;;;AAWA,IAAM,sBAAsB;CAC1B,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;AAEA,SAAS,cAAc,OAAwB;CAC7C,IAAI,CAAC,MAAM,QAAQ,KAAK,GACtB,OAAO,CAAC;CAGV,OAAO,MAAM,QACV,SACC,OAAO,SAAS,YAAY,SAAS,QAAQ,UAAU,QAAQ,OAAO,KAAK,SAAS,QACxF;AACF;AAEA,IAAM,qBAAoD,EAAE,WAAW;CACrE,MAAM,WAAW,KAAK,MAAM,YAAY;CACxC,MAAM,SAAS,KAAK,MAAM,SAAS;CACnC,MAAM,eAAe,KAAK,MAAM,OAAO;CACvC,MAAM,oBAAoB,oBAAoB,KAAK,MAAM;CACzD,MAAM,CAAC,YAAY,iBAAiB,eAAe,KAAK,UAAU,CAAC,CAAC;CACpE,MAAM,CAAC,WAAW,gBAAgB,SAAS,CAAC,MAAM;CAClD,MAAM,CAAC,YAAY,iBAAiB,SAAS,UAAU,aAAa,EAAE;CAEtE,MAAM,OAAO,YAAY,YAA2B;EAClD,IAAI,CAAC,UACH;EAGF,cAAc,IAAI;EAElB,IAAI;GAGF,cAAc,eAAc,MAFP,QAA0B,UAAU,EAAE,KAAK,aAAa,CAAC,GAE3C,MAAM,CAAC;GAC1C,aAAa,IAAI;EACnB,UAAU;GACR,cAAc,KAAK;EACrB;CACF,GAAG,CAAC,UAAU,YAAY,CAAC;CAE3B,gBAAgB;EACd,IAAI,CAAC,UAAU,WACb;EAGF,KAAU;CACZ,GAAG;EAAC;EAAW;EAAQ;CAAI,CAAC;CAE5B,gBAAgB;EACd,SAAS,OAAO,OAAoB;GAGlC,IAFgB,MAA+B,QAEnC,cAAc,KAAK,IAC7B;GAGF,KAAU;EACZ;EAEA,OAAO,iBAAiB,cAAc,iBAAiB,MAAM;EAE7D,aAAa,OAAO,oBAAoB,cAAc,iBAAiB,MAAM;CAC/E,GAAG,CAAC,MAAM,KAAK,EAAE,CAAC;CAElB,gBAAgB;EACd,SAAS,uBAA6B;GACpC,IAAI,CAAC,WACH;GAGF,KAAU;EACZ;EAEA,OAAO,iBAAiB,cAAc,cAAc,oBAAoB;EAExE,aAAa,OAAO,oBAAoB,cAAc,cAAc,oBAAoB;CAC1F,GAAG,CAAC,WAAW,IAAI,CAAC;CAEpB,OACE,oBAAC,OAAD;EACE,yBAAuB,KAAK;EAC5B,OAAO,cAAc,WAAW,WAAW,IAAI,EAAE,WAAW,kBAAkB,IAAI,KAAA;YAEjF,cAAc,WAAW,WAAW,IACnC,oBAAC,UAAD;GAAU,WAAU;GAAS,OAAO,EAAE,QAAQ,kBAAkB;EAAI,CAAA,IAEpE,oBAAC,UAAD,EAAU,OAAO,WAAa,CAAA;CAE7B,CAAA;AAET"}
@@ -1,10 +1,3 @@
1
- import { RendererComponent } from '../../../../core/types';
2
- declare module '../../../../core/types' {
3
- interface ComponentProps {
4
- grid: {
5
- columns?: number;
6
- };
7
- }
8
- }
1
+ import { RendererComponent } from '../types';
9
2
  declare const GridComponent: RendererComponent<"grid">;
10
3
  export default GridComponent;
@@ -1,9 +1,8 @@
1
1
  import { cn } from "../../lib/utils.js";
2
- import { getNumberProp } from "../props.js";
3
2
  import { jsx } from "react/jsx-runtime";
4
3
  //#region resources/js/core/components/grid.tsx
5
4
  var GridComponent = ({ children, node }) => {
6
- const columns = Math.min(Math.max(getNumberProp(node.props, "columns", 1), 1), 4);
5
+ const columns = Math.min(Math.max(node.props.columns ?? 1, 1), 4);
7
6
  return /* @__PURE__ */ jsx("div", {
8
7
  "data-lattice-component": node.id,
9
8
  className: cn("grid gap-x-4 gap-y-6", columns >= 2 && "md:grid-cols-2", columns >= 3 && "lg:grid-cols-3", columns >= 4 && "xl:grid-cols-4"),
@@ -1 +1 @@
1
- {"version":3,"file":"grid.js","names":[],"sources":["../../../resources/js/core/components/grid.tsx"],"sourcesContent":["import { getNumberProp } from \"@lattice/lattice/core/props\";\nimport type { RendererComponent } from \"@lattice/lattice/core/types\";\nimport { cn } from \"@lattice/lattice/lib/utils\";\n\ndeclare module \"@lattice/lattice/core/types\" {\n interface ComponentProps {\n grid: {\n columns?: number;\n };\n }\n}\n\nconst GridComponent: RendererComponent<\"grid\"> = ({ children, node }) => {\n const columns = Math.min(Math.max(getNumberProp(node.props, \"columns\", 1), 1), 4);\n\n return (\n <div\n data-lattice-component={node.id}\n className={cn(\n \"grid gap-x-4 gap-y-6\",\n columns >= 2 && \"md:grid-cols-2\",\n columns >= 3 && \"lg:grid-cols-3\",\n columns >= 4 && \"xl:grid-cols-4\",\n )}\n >\n {children}\n </div>\n );\n};\n\nexport default GridComponent;\n"],"mappings":";;;;AAYA,IAAM,iBAA4C,EAAE,UAAU,WAAW;CACvE,MAAM,UAAU,KAAK,IAAI,KAAK,IAAI,cAAc,KAAK,OAAO,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;CAEhF,OACE,oBAAC,OAAD;EACE,0BAAwB,KAAK;EAC7B,WAAW,GACT,wBACA,WAAW,KAAK,kBAChB,WAAW,KAAK,kBAChB,WAAW,KAAK,gBAClB;EAEC;CACE,CAAA;AAET"}
1
+ {"version":3,"file":"grid.js","names":[],"sources":["../../../resources/js/core/components/grid.tsx"],"sourcesContent":["import type { RendererComponent } from \"@lattice-php/lattice/core/types\";\nimport { cn } from \"@lattice-php/lattice/lib/utils\";\n\nconst GridComponent: RendererComponent<\"grid\"> = ({ children, node }) => {\n const columns = Math.min(Math.max(node.props.columns ?? 1, 1), 4);\n\n return (\n <div\n data-lattice-component={node.id}\n className={cn(\n \"grid gap-x-4 gap-y-6\",\n columns >= 2 && \"md:grid-cols-2\",\n columns >= 3 && \"lg:grid-cols-3\",\n columns >= 4 && \"xl:grid-cols-4\",\n )}\n >\n {children}\n </div>\n );\n};\n\nexport default GridComponent;\n"],"mappings":";;;AAGA,IAAM,iBAA4C,EAAE,UAAU,WAAW;CACvE,MAAM,UAAU,KAAK,IAAI,KAAK,IAAI,KAAK,MAAM,WAAW,GAAG,CAAC,GAAG,CAAC;CAEhE,OACE,oBAAC,OAAD;EACE,0BAAwB,KAAK;EAC7B,WAAW,GACT,wBACA,WAAW,KAAK,kBAChB,WAAW,KAAK,kBAChB,WAAW,KAAK,gBAClB;EAEC;CACE,CAAA;AAET"}
@@ -1,11 +1,3 @@
1
- import { RendererComponent } from '../../../../core/types';
2
- declare module '../../../../core/types' {
3
- interface ComponentProps {
4
- heading: {
5
- level?: number;
6
- text?: string;
7
- };
8
- }
9
- }
1
+ import { RendererComponent } from '../types';
10
2
  declare const HeadingComponent: RendererComponent<"heading">;
11
3
  export default HeadingComponent;
@@ -1,10 +1,9 @@
1
1
  import { cn } from "../../lib/utils.js";
2
- import { getNumberProp, getStringProp } from "../props.js";
3
2
  import { jsx } from "react/jsx-runtime";
4
3
  //#region resources/js/core/components/heading.tsx
5
4
  var HeadingComponent = ({ node }) => {
6
- const text = getStringProp(node.props, "text");
7
- const level = Math.min(Math.max(getNumberProp(node.props, "level", 1), 1), 6);
5
+ const { text } = node.props;
6
+ const level = Math.min(Math.max(node.props.level, 1), 6);
8
7
  const className = cn("max-w-3xl font-semibold tracking-normal text-balance text-lt-fg", level === 1 && "text-4xl leading-tight sm:text-5xl", level === 2 && "text-2xl", level > 2 && "text-lg");
9
8
  switch (level) {
10
9
  case 1: return /* @__PURE__ */ jsx("h1", {
@@ -1 +1 @@
1
- {"version":3,"file":"heading.js","names":[],"sources":["../../../resources/js/core/components/heading.tsx"],"sourcesContent":["import { getNumberProp, getStringProp } from \"@lattice/lattice/core/props\";\nimport type { RendererComponent } from \"@lattice/lattice/core/types\";\nimport { cn } from \"@lattice/lattice/lib/utils\";\n\ndeclare module \"@lattice/lattice/core/types\" {\n interface ComponentProps {\n heading: {\n level?: number;\n text?: string;\n };\n }\n}\n\nconst HeadingComponent: RendererComponent<\"heading\"> = ({ node }) => {\n const text = getStringProp(node.props, \"text\");\n const level = Math.min(Math.max(getNumberProp(node.props, \"level\", 1), 1), 6);\n const className = cn(\n \"max-w-3xl font-semibold tracking-normal text-balance text-lt-fg\",\n level === 1 && \"text-4xl leading-tight sm:text-5xl\",\n level === 2 && \"text-2xl\",\n level > 2 && \"text-lg\",\n );\n\n switch (level) {\n case 1:\n return <h1 className={className}>{text}</h1>;\n case 2:\n return <h2 className={className}>{text}</h2>;\n case 3:\n return <h3 className={className}>{text}</h3>;\n case 4:\n return <h4 className={className}>{text}</h4>;\n case 5:\n return <h5 className={className}>{text}</h5>;\n default:\n return <h6 className={className}>{text}</h6>;\n }\n};\n\nexport default HeadingComponent;\n"],"mappings":";;;;AAaA,IAAM,oBAAkD,EAAE,WAAW;CACnE,MAAM,OAAO,cAAc,KAAK,OAAO,MAAM;CAC7C,MAAM,QAAQ,KAAK,IAAI,KAAK,IAAI,cAAc,KAAK,OAAO,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;CAC5E,MAAM,YAAY,GAChB,mEACA,UAAU,KAAK,sCACf,UAAU,KAAK,YACf,QAAQ,KAAK,SACf;CAEA,QAAQ,OAAR;EACE,KAAK,GACH,OAAO,oBAAC,MAAD;GAAe;aAAY;EAAS,CAAA;EAC7C,KAAK,GACH,OAAO,oBAAC,MAAD;GAAe;aAAY;EAAS,CAAA;EAC7C,KAAK,GACH,OAAO,oBAAC,MAAD;GAAe;aAAY;EAAS,CAAA;EAC7C,KAAK,GACH,OAAO,oBAAC,MAAD;GAAe;aAAY;EAAS,CAAA;EAC7C,KAAK,GACH,OAAO,oBAAC,MAAD;GAAe;aAAY;EAAS,CAAA;EAC7C,SACE,OAAO,oBAAC,MAAD;GAAe;aAAY;EAAS,CAAA;CAC/C;AACF"}
1
+ {"version":3,"file":"heading.js","names":[],"sources":["../../../resources/js/core/components/heading.tsx"],"sourcesContent":["import type { RendererComponent } from \"@lattice-php/lattice/core/types\";\nimport { cn } from \"@lattice-php/lattice/lib/utils\";\n\nconst HeadingComponent: RendererComponent<\"heading\"> = ({ node }) => {\n const { text } = node.props;\n const level = Math.min(Math.max(node.props.level, 1), 6);\n const className = cn(\n \"max-w-3xl font-semibold tracking-normal text-balance text-lt-fg\",\n level === 1 && \"text-4xl leading-tight sm:text-5xl\",\n level === 2 && \"text-2xl\",\n level > 2 && \"text-lg\",\n );\n\n switch (level) {\n case 1:\n return <h1 className={className}>{text}</h1>;\n case 2:\n return <h2 className={className}>{text}</h2>;\n case 3:\n return <h3 className={className}>{text}</h3>;\n case 4:\n return <h4 className={className}>{text}</h4>;\n case 5:\n return <h5 className={className}>{text}</h5>;\n default:\n return <h6 className={className}>{text}</h6>;\n }\n};\n\nexport default HeadingComponent;\n"],"mappings":";;;AAGA,IAAM,oBAAkD,EAAE,WAAW;CACnE,MAAM,EAAE,SAAS,KAAK;CACtB,MAAM,QAAQ,KAAK,IAAI,KAAK,IAAI,KAAK,MAAM,OAAO,CAAC,GAAG,CAAC;CACvD,MAAM,YAAY,GAChB,mEACA,UAAU,KAAK,sCACf,UAAU,KAAK,YACf,QAAQ,KAAK,SACf;CAEA,QAAQ,OAAR;EACE,KAAK,GACH,OAAO,oBAAC,MAAD;GAAe;aAAY;EAAS,CAAA;EAC7C,KAAK,GACH,OAAO,oBAAC,MAAD;GAAe;aAAY;EAAS,CAAA;EAC7C,KAAK,GACH,OAAO,oBAAC,MAAD;GAAe;aAAY;EAAS,CAAA;EAC7C,KAAK,GACH,OAAO,oBAAC,MAAD;GAAe;aAAY;EAAS,CAAA;EAC7C,KAAK,GACH,OAAO,oBAAC,MAAD;GAAe;aAAY;EAAS,CAAA;EAC7C,SACE,OAAO,oBAAC,MAAD;GAAe;aAAY;EAAS,CAAA;CAC/C;AACF"}
@@ -0,0 +1,3 @@
1
+ import { RendererComponent } from '../types';
2
+ declare const IconComponent: RendererComponent<"icon">;
3
+ export default IconComponent;
@@ -0,0 +1,31 @@
1
+ import { cn } from "../../lib/utils.js";
2
+ import { IconRenderer } from "../../icons/icon-renderer.js";
3
+ import { jsx } from "react/jsx-runtime";
4
+ //#region resources/js/core/components/icon.tsx
5
+ var sizeClass = {
6
+ xs: "size-lt-icon-xs",
7
+ sm: "size-lt-icon-sm",
8
+ md: "size-lt-icon-md",
9
+ lg: "size-lt-icon-lg",
10
+ xl: "size-lt-icon-xl"
11
+ };
12
+ var colorClass = {
13
+ default: "text-lt-fg",
14
+ muted: "text-lt-muted-fg",
15
+ primary: "text-lt-primary",
16
+ success: "text-lt-success",
17
+ info: "text-lt-info",
18
+ warning: "text-lt-warning",
19
+ danger: "text-lt-danger"
20
+ };
21
+ var IconComponent = ({ node }) => {
22
+ const { name, size, color, class: className } = node.props;
23
+ return /* @__PURE__ */ jsx(IconRenderer, {
24
+ icon: name,
25
+ className: cn(sizeClass[size], color ? colorClass[color] : void 0, className)
26
+ });
27
+ };
28
+ //#endregion
29
+ export { IconComponent as default };
30
+
31
+ //# sourceMappingURL=icon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon.js","names":[],"sources":["../../../resources/js/core/components/icon.tsx"],"sourcesContent":["import type { RendererComponent } from \"@lattice-php/lattice/core/types\";\nimport { IconRenderer } from \"@lattice-php/lattice/icons\";\nimport { cn } from \"@lattice-php/lattice/lib/utils\";\nimport type { Color, Size } from \"@lattice-php/lattice/types/generated\";\n\nconst sizeClass: Record<Size, string> = {\n xs: \"size-lt-icon-xs\",\n sm: \"size-lt-icon-sm\",\n md: \"size-lt-icon-md\",\n lg: \"size-lt-icon-lg\",\n xl: \"size-lt-icon-xl\",\n};\n\nconst colorClass: Record<Color, string> = {\n default: \"text-lt-fg\",\n muted: \"text-lt-muted-fg\",\n primary: \"text-lt-primary\",\n success: \"text-lt-success\",\n info: \"text-lt-info\",\n warning: \"text-lt-warning\",\n danger: \"text-lt-danger\",\n};\n\nconst IconComponent: RendererComponent<\"icon\"> = ({ node }) => {\n const { name, size, color, class: className } = node.props;\n\n return (\n <IconRenderer\n icon={name}\n className={cn(sizeClass[size], color ? colorClass[color] : undefined, className)}\n />\n );\n};\n\nexport default IconComponent;\n"],"mappings":";;;;AAKA,IAAM,YAAkC;CACtC,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;AAEA,IAAM,aAAoC;CACxC,SAAS;CACT,OAAO;CACP,SAAS;CACT,SAAS;CACT,MAAM;CACN,SAAS;CACT,QAAQ;AACV;AAEA,IAAM,iBAA4C,EAAE,WAAW;CAC7D,MAAM,EAAE,MAAM,MAAM,OAAO,OAAO,cAAc,KAAK;CAErD,OACE,oBAAC,cAAD;EACE,MAAM;EACN,WAAW,GAAG,UAAU,OAAO,QAAQ,WAAW,SAAS,KAAA,GAAW,SAAS;CAChF,CAAA;AAEL"}
@@ -1 +1 @@
1
- export declare const coreComponents: import('../../../../core/registry').Plugin;
1
+ export declare const coreComponents: import('../registry').Plugin;
@@ -1,12 +1,17 @@
1
- import { createPlugin, eagerComponent } from "../registry.js";
1
+ import { createPlugin, eagerComponent, lazyComponent } from "../registry.js";
2
2
  import ButtonComponent from "./button.js";
3
+ import { ChatBox } from "../../chat/components/chat-box.js";
3
4
  import BadgeComponent from "./badge.js";
4
5
  import CardComponent from "./card.js";
6
+ import FloatingPanelComponent from "./floating-panel.js";
5
7
  import FragmentComponent from "./fragment.js";
6
8
  import GridComponent from "./grid.js";
7
9
  import HeadingComponent from "./heading.js";
10
+ import IconComponent from "./icon.js";
8
11
  import LinkComponent from "./link.js";
9
12
  import ModalComponent from "./modal.js";
13
+ import RawBlockComponent from "./raw-block.js";
14
+ import SectionComponent from "./section.js";
10
15
  import SegmentedControlComponent from "./segmented-control.js";
11
16
  import StackComponent from "./stack.js";
12
17
  import TabComponent, { TabsComponent } from "./tabs.js";
@@ -17,11 +22,17 @@ var coreComponents = createPlugin({
17
22
  badge: eagerComponent(BadgeComponent),
18
23
  button: eagerComponent(ButtonComponent),
19
24
  card: eagerComponent(CardComponent),
25
+ chart: lazyComponent(() => import("./chart.js")),
26
+ "chat.box": eagerComponent(ChatBox),
27
+ "floating-panel": eagerComponent(FloatingPanelComponent),
20
28
  fragment: eagerComponent(FragmentComponent),
21
29
  grid: eagerComponent(GridComponent),
22
30
  heading: eagerComponent(HeadingComponent),
31
+ icon: eagerComponent(IconComponent),
23
32
  link: eagerComponent(LinkComponent),
24
33
  modal: eagerComponent(ModalComponent),
34
+ "raw-block": eagerComponent(RawBlockComponent),
35
+ section: eagerComponent(SectionComponent),
25
36
  "segmented-control": eagerComponent(SegmentedControlComponent),
26
37
  stack: eagerComponent(StackComponent),
27
38
  tab: eagerComponent(TabComponent),
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../resources/js/core/components/index.ts"],"sourcesContent":["import { createPlugin, eagerComponent } from \"@lattice/lattice/core/registry\";\nimport BadgeComponent from \"./badge\";\nimport ButtonComponent from \"./button\";\nimport CardComponent from \"./card\";\nimport FragmentComponent from \"./fragment\";\nimport GridComponent from \"./grid\";\nimport HeadingComponent from \"./heading\";\nimport LinkComponent from \"./link\";\nimport ModalComponent from \"./modal\";\nimport SegmentedControlComponent from \"./segmented-control\";\nimport StackComponent from \"./stack\";\nimport TabComponent, { TabsComponent } from \"./tabs\";\nimport TextComponent from \"./text\";\n\nexport const coreComponents = createPlugin({\n components: {\n badge: eagerComponent(BadgeComponent),\n button: eagerComponent(ButtonComponent),\n card: eagerComponent(CardComponent),\n fragment: eagerComponent(FragmentComponent),\n grid: eagerComponent(GridComponent),\n heading: eagerComponent(HeadingComponent),\n link: eagerComponent(LinkComponent),\n modal: eagerComponent(ModalComponent),\n \"segmented-control\": eagerComponent(SegmentedControlComponent),\n stack: eagerComponent(StackComponent),\n tab: eagerComponent(TabComponent),\n tabs: eagerComponent(TabsComponent),\n text: eagerComponent(TextComponent),\n },\n name: \"lattice/core\",\n});\n"],"mappings":";;;;;;;;;;;;;;AAcA,IAAa,iBAAiB,aAAa;CACzC,YAAY;EACV,OAAO,eAAe,cAAc;EACpC,QAAQ,eAAe,eAAe;EACtC,MAAM,eAAe,aAAa;EAClC,UAAU,eAAe,iBAAiB;EAC1C,MAAM,eAAe,aAAa;EAClC,SAAS,eAAe,gBAAgB;EACxC,MAAM,eAAe,aAAa;EAClC,OAAO,eAAe,cAAc;EACpC,qBAAqB,eAAe,yBAAyB;EAC7D,OAAO,eAAe,cAAc;EACpC,KAAK,eAAe,YAAY;EAChC,MAAM,eAAe,aAAa;EAClC,MAAM,eAAe,aAAa;CACpC;CACA,MAAM;AACR,CAAC"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../resources/js/core/components/index.ts"],"sourcesContent":["import { createPlugin, eagerComponent, lazyComponent } from \"@lattice-php/lattice/core/registry\";\nimport type { RendererComponentModule } from \"@lattice-php/lattice/core/types\";\nimport ChatBoxComponent from \"../../chat/components/chat-box\";\nimport BadgeComponent from \"./badge\";\nimport ButtonComponent from \"./button\";\nimport CardComponent from \"./card\";\nimport FloatingPanelComponent from \"./floating-panel\";\nimport FragmentComponent from \"./fragment\";\nimport GridComponent from \"./grid\";\nimport HeadingComponent from \"./heading\";\nimport IconComponent from \"./icon\";\nimport LinkComponent from \"./link\";\nimport ModalComponent from \"./modal\";\nimport RawBlockComponent from \"./raw-block\";\nimport SectionComponent from \"./section\";\nimport SegmentedControlComponent from \"./segmented-control\";\nimport StackComponent from \"./stack\";\nimport TabComponent, { TabsComponent } from \"./tabs\";\nimport TextComponent from \"./text\";\n\nexport const coreComponents = createPlugin({\n components: {\n badge: eagerComponent(BadgeComponent),\n button: eagerComponent(ButtonComponent),\n card: eagerComponent(CardComponent),\n chart: lazyComponent(\n () => import(\"./chart\") as unknown as Promise<RendererComponentModule<\"chart\">>,\n ),\n \"chat.box\": eagerComponent(ChatBoxComponent),\n \"floating-panel\": eagerComponent(FloatingPanelComponent),\n fragment: eagerComponent(FragmentComponent),\n grid: eagerComponent(GridComponent),\n heading: eagerComponent(HeadingComponent),\n icon: eagerComponent(IconComponent),\n link: eagerComponent(LinkComponent),\n modal: eagerComponent(ModalComponent),\n \"raw-block\": eagerComponent(RawBlockComponent),\n section: eagerComponent(SectionComponent),\n \"segmented-control\": eagerComponent(SegmentedControlComponent),\n stack: eagerComponent(StackComponent),\n tab: eagerComponent(TabComponent),\n tabs: eagerComponent(TabsComponent),\n text: eagerComponent(TextComponent),\n },\n name: \"lattice/core\",\n});\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAoBA,IAAa,iBAAiB,aAAa;CACzC,YAAY;EACV,OAAO,eAAe,cAAc;EACpC,QAAQ,eAAe,eAAe;EACtC,MAAM,eAAe,aAAa;EAClC,OAAO,oBACC,OAAO,aACf;EACA,YAAY,eAAe,OAAgB;EAC3C,kBAAkB,eAAe,sBAAsB;EACvD,UAAU,eAAe,iBAAiB;EAC1C,MAAM,eAAe,aAAa;EAClC,SAAS,eAAe,gBAAgB;EACxC,MAAM,eAAe,aAAa;EAClC,MAAM,eAAe,aAAa;EAClC,OAAO,eAAe,cAAc;EACpC,aAAa,eAAe,iBAAiB;EAC7C,SAAS,eAAe,gBAAgB;EACxC,qBAAqB,eAAe,yBAAyB;EAC7D,OAAO,eAAe,cAAc;EACpC,KAAK,eAAe,YAAY;EAChC,MAAM,eAAe,aAAa;EAClC,MAAM,eAAe,aAAa;CACpC;CACA,MAAM;AACR,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function InfoTooltip({ content }: {
2
+ content?: string | null;
3
+ }): import("react").JSX.Element | null;
@@ -0,0 +1,26 @@
1
+ import { Icon } from "../../icons/sprite.js";
2
+ import { useT } from "../../i18n/instance.js";
3
+ import { Popover, PopoverContent, PopoverTrigger } from "./popover.js";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ //#region resources/js/core/components/info-tooltip.tsx
6
+ function InfoTooltip({ content }) {
7
+ const { t } = useT("lattice");
8
+ if (!content) return null;
9
+ return /* @__PURE__ */ jsxs(Popover, { children: [/* @__PURE__ */ jsx(PopoverTrigger, {
10
+ type: "button",
11
+ "aria-label": t("a11y.moreInfo", "More information"),
12
+ className: "ml-1 inline-flex rounded-lt-sm text-lt-muted-fg outline-none hover:text-lt-fg focus-visible:text-lt-fg focus-visible:ring-lt-ring/50 focus-visible:ring-[3px]",
13
+ children: /* @__PURE__ */ jsx(Icon, {
14
+ name: "info",
15
+ className: "size-lt-icon-sm"
16
+ })
17
+ }), /* @__PURE__ */ jsx(PopoverContent, {
18
+ align: "start",
19
+ className: "max-w-xs p-3 text-sm [&_a]:underline",
20
+ dangerouslySetInnerHTML: { __html: content }
21
+ })] });
22
+ }
23
+ //#endregion
24
+ export { InfoTooltip };
25
+
26
+ //# sourceMappingURL=info-tooltip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"info-tooltip.js","names":[],"sources":["../../../resources/js/core/components/info-tooltip.tsx"],"sourcesContent":["import { Icon } from \"@lattice-php/lattice/icons\";\nimport { useT } from \"@lattice-php/lattice/i18n\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"./popover\";\n\nexport function InfoTooltip({ content }: { content?: string | null }) {\n const { t } = useT(\"lattice\");\n\n if (!content) {\n return null;\n }\n\n return (\n <Popover>\n <PopoverTrigger\n type=\"button\"\n aria-label={t(\"a11y.moreInfo\", \"More information\")}\n className=\"ml-1 inline-flex rounded-lt-sm text-lt-muted-fg outline-none hover:text-lt-fg focus-visible:text-lt-fg focus-visible:ring-lt-ring/50 focus-visible:ring-[3px]\"\n >\n <Icon name=\"info\" className=\"size-lt-icon-sm\" />\n </PopoverTrigger>\n <PopoverContent\n align=\"start\"\n className=\"max-w-xs p-3 text-sm [&_a]:underline\"\n dangerouslySetInnerHTML={{ __html: content }}\n />\n </Popover>\n );\n}\n"],"mappings":";;;;;AAIA,SAAgB,YAAY,EAAE,WAAwC;CACpE,MAAM,EAAE,MAAM,KAAK,SAAS;CAE5B,IAAI,CAAC,SACH,OAAO;CAGT,OACE,qBAAC,SAAD,EAAA,UAAA,CACE,oBAAC,gBAAD;EACE,MAAK;EACL,cAAY,EAAE,iBAAiB,kBAAkB;EACjD,WAAU;YAEV,oBAAC,MAAD;GAAM,MAAK;GAAO,WAAU;EAAmB,CAAA;CACjC,CAAA,GAChB,oBAAC,gBAAD;EACE,OAAM;EACN,WAAU;EACV,yBAAyB,EAAE,QAAQ,QAAQ;CAC5C,CAAA,CACM,EAAA,CAAA;AAEb"}
@@ -1,17 +1,6 @@
1
- import { Method } from '@inertiajs/core';
2
1
  import { Link } from '@inertiajs/react';
3
2
  import { ComponentProps } from 'react';
4
- import { RendererComponent } from '../../../../core/types';
5
- declare module '../../../../core/types' {
6
- interface ComponentProps {
7
- link: {
8
- href?: string;
9
- label?: string;
10
- method?: Method;
11
- tabIndex?: number;
12
- };
13
- }
14
- }
3
+ import { RendererComponent } from '../types';
15
4
  declare function TextLink({ className, children, ...props }: ComponentProps<typeof Link>): import("react").JSX.Element;
16
5
  declare const LinkComponent: RendererComponent<"link">;
17
6
  export default LinkComponent;