themelia-react-ui 2.0.2 → 2.0.4

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 (435) hide show
  1. package/CHANGELOG.md +67 -7
  2. package/README.md +70 -37
  3. package/THIRD_PARTY_NOTICES.md +6 -12
  4. package/dist/{accordion-Cjb6sx0G.js → accordion-96o0pN62.js} +5 -5
  5. package/dist/{accordion-Cjb6sx0G.js.map → accordion-96o0pN62.js.map} +1 -1
  6. package/dist/action-menu-CHgs8vmj.js +281 -0
  7. package/dist/action-menu-CHgs8vmj.js.map +1 -0
  8. package/dist/{affordance-geometry.generated-tF36bREk.js → affordance-geometry.generated-B8yGOr8-.js} +7 -1
  9. package/dist/affordance-geometry.generated-B8yGOr8-.js.map +1 -0
  10. package/dist/{ai-artifact-DvTwDVyL.js → ai-artifact-BZUGwBq6.js} +277 -276
  11. package/dist/ai-artifact-BZUGwBq6.js.map +1 -0
  12. package/dist/{app-shell-C4FhvCqF.js → app-shell-D63ATkIK.js} +84 -83
  13. package/dist/app-shell-D63ATkIK.js.map +1 -0
  14. package/dist/{attachment-BxDfL2mw.js → attachment-DkoqHPPl.js} +7 -7
  15. package/dist/{attachment-BxDfL2mw.js.map → attachment-DkoqHPPl.js.map} +1 -1
  16. package/dist/{auth-ax2BqjrI.js → auth-D2FVZ1MH.js} +10 -10
  17. package/dist/{auth-ax2BqjrI.js.map → auth-D2FVZ1MH.js.map} +1 -1
  18. package/dist/{avatar-DAPlDvhJ.js → avatar-DWO_HHhB.js} +5 -5
  19. package/dist/{avatar-DAPlDvhJ.js.map → avatar-DWO_HHhB.js.map} +1 -1
  20. package/dist/{badge-HpFqoqSY.js → badge-DErMA7ul.js} +4 -4
  21. package/dist/{badge-HpFqoqSY.js.map → badge-DErMA7ul.js.map} +1 -1
  22. package/dist/base/accordion.js +1 -1
  23. package/dist/base/action-menu.js +1 -1
  24. package/dist/base/attachment.js +1 -1
  25. package/dist/base/avatar.js +1 -1
  26. package/dist/base/badge.js +1 -1
  27. package/dist/base/batch-action-bar.js +1 -1
  28. package/dist/base/buttons.js +1 -1
  29. package/dist/base/cards.js +2 -2
  30. package/dist/base/carousel.js +3 -3
  31. package/dist/base/cascader.js +13 -13
  32. package/dist/base/chart.js +1 -1
  33. package/dist/base/choice-inputs.js +2 -2
  34. package/dist/base/code-block.js +1 -1
  35. package/dist/base/combobox.js +2 -2
  36. package/dist/base/command.js +1 -1
  37. package/dist/base/copyable.js +1 -1
  38. package/dist/base/date-pickers.js +2 -2
  39. package/dist/base/display.js +6 -6
  40. package/dist/base/feedback.js +3 -3
  41. package/dist/base/forms-numeric.js +1 -1
  42. package/dist/base/forms.js +3 -3
  43. package/dist/base/inline-edit.js +10 -10
  44. package/dist/base/item.js +1 -1
  45. package/dist/base/media-gallery.js +1 -1
  46. package/dist/base/metadata-list.js +1 -1
  47. package/dist/base/navigation.js +6 -6
  48. package/dist/base/popover-menu.js +1 -1
  49. package/dist/base/popover.js +1 -1
  50. package/dist/base/qr-code.js +1 -1
  51. package/dist/base/repeaters.js +9 -9
  52. package/dist/base/sheet.js +1 -1
  53. package/dist/base/sidebar.js +1 -1
  54. package/dist/base/signature-pad.js +6 -6
  55. package/dist/base/skeleton.js +1 -1
  56. package/dist/base/spinner.js +4 -4
  57. package/dist/base/structure.js +1 -1
  58. package/dist/base/table.js +1 -1
  59. package/dist/base/text-inputs.js +2 -2
  60. package/dist/base/toaster.js +3 -3
  61. package/dist/base/tree.js +1 -1
  62. package/dist/base/upload-queue.js +1 -1
  63. package/dist/base/upload.js +3 -3
  64. package/dist/base/value-inputs.js +1 -1
  65. package/dist/{batch-action-bar-DnUJ21NQ.js → batch-action-bar-CdfIkCsV.js} +4 -4
  66. package/dist/{batch-action-bar-DnUJ21NQ.js.map → batch-action-bar-CdfIkCsV.js.map} +1 -1
  67. package/dist/blocks/admin.js +20 -20
  68. package/dist/blocks/admin.js.map +1 -1
  69. package/dist/blocks/ai.js +15 -15
  70. package/dist/blocks/analytics/usage-card.js +1 -1
  71. package/dist/blocks/analytics.js +17 -17
  72. package/dist/blocks/analytics.js.map +1 -1
  73. package/dist/blocks/collaboration.js +1 -1
  74. package/dist/blocks/commerce/receipt.js +1 -1
  75. package/dist/blocks/commerce.js +570 -567
  76. package/dist/blocks/commerce.js.map +1 -1
  77. package/dist/blocks/data-display.js +2 -2
  78. package/dist/blocks/onboarding.js +5 -5
  79. package/dist/blocks/planning.js +11 -11
  80. package/dist/blocks/timelines.js +1 -1
  81. package/dist/{breadcrumbs-C-oqs1sQ.js → breadcrumbs-B-WFKecD.js} +4 -4
  82. package/dist/{breadcrumbs-C-oqs1sQ.js.map → breadcrumbs-B-WFKecD.js.map} +1 -1
  83. package/dist/{button-DVzspB_G.js → button-DkmK-z8E.js} +2 -2
  84. package/dist/{button-DVzspB_G.js.map → button-DkmK-z8E.js.map} +1 -1
  85. package/dist/{buttons-DPZekJFu.js → buttons-BbfzgczK.js} +8 -8
  86. package/dist/{buttons-DPZekJFu.js.map → buttons-BbfzgczK.js.map} +1 -1
  87. package/dist/{cards-BaBZR-AU.js → cards-4JTWqvVe.js} +10 -10
  88. package/dist/cards-4JTWqvVe.js.map +1 -0
  89. package/dist/{chart-ZOYyK2xG.js → chart-C19flDQb.js} +4 -4
  90. package/dist/{chart-ZOYyK2xG.js.map → chart-C19flDQb.js.map} +1 -1
  91. package/dist/{checkbox-AWIhNhmo.js → checkbox-CzYUTPeJ.js} +9 -5
  92. package/dist/checkbox-CzYUTPeJ.js.map +1 -0
  93. package/dist/{choice-inputs-CNHvARCJ.js → choice-inputs-JLtij2y4.js} +182 -176
  94. package/dist/choice-inputs-JLtij2y4.js.map +1 -0
  95. package/dist/{code-block-DeneBJR_.js → code-block-CGNaUtAE.js} +7 -7
  96. package/dist/{code-block-DeneBJR_.js.map → code-block-CGNaUtAE.js.map} +1 -1
  97. package/dist/{collapsible-C-_l4hpy.js → collapsible-Do4G0zcC.js} +3 -3
  98. package/dist/{collapsible-C-_l4hpy.js.map → collapsible-Do4G0zcC.js.map} +1 -1
  99. package/dist/{collection-content-By56pLog.js → collection-content-C0e8SsTm.js} +3 -3
  100. package/dist/{collection-content-By56pLog.js.map → collection-content-C0e8SsTm.js.map} +1 -1
  101. package/dist/{combobox-C0EQW6dr.js → combobox-CBJDs6w_.js} +349 -347
  102. package/dist/combobox-CBJDs6w_.js.map +1 -0
  103. package/dist/{combobox-xCQ2RMNE.js → combobox-hbhSS18O.js} +158 -112
  104. package/dist/combobox-hbhSS18O.js.map +1 -0
  105. package/dist/{command-C25VMRII.js → command-D8NrBj-b.js} +7 -7
  106. package/dist/{command-C25VMRII.js.map → command-D8NrBj-b.js.map} +1 -1
  107. package/dist/{comments-BYYlTA8E.js → comments-Di4w0H_S.js} +383 -382
  108. package/dist/comments-Di4w0H_S.js.map +1 -0
  109. package/dist/components/base/action-menu/action-menu.d.ts +2 -0
  110. package/dist/components/base/cards/card.recipes.d.ts +12 -5
  111. package/dist/components/base/cards/smart-card.types.d.ts +12 -7
  112. package/dist/components/base/choice-inputs/checkbox.d.ts +7 -2
  113. package/dist/components/base/choice-inputs/switch-card.d.ts +7 -0
  114. package/dist/components/base/choice-inputs/toggle-field.d.ts +7 -0
  115. package/dist/components/base/combobox/combobox-field.d.ts +16 -0
  116. package/dist/components/base/date-pickers/datepicker.types.d.ts +7 -0
  117. package/dist/components/base/forms/controlled-form-field.d.ts +6 -6
  118. package/dist/components/base/forms/form-field.d.ts +5 -3
  119. package/dist/components/base/forms/index.d.ts +1 -0
  120. package/dist/components/base/forms/server-errors.d.ts +16 -0
  121. package/dist/components/base/forms/workflow.d.ts +5 -2
  122. package/dist/components/base/metadata-list/metadata-list.d.ts +3 -1
  123. package/dist/components/base/navigation/page-header/page-header.d.ts +4 -2
  124. package/dist/components/base/structure/composition.recipes.d.ts +17 -0
  125. package/dist/components/base/text-inputs/hooks/use-form-field-state.d.ts +7 -2
  126. package/dist/components/base/text-inputs/input.d.ts +4 -2
  127. package/dist/components/base/text-inputs/textarea.d.ts +4 -2
  128. package/dist/components/base/value-inputs/date-time-input.d.ts +2 -1
  129. package/dist/components/base/value-inputs/slider.d.ts +5 -1
  130. package/dist/components/base/value-inputs/tags-input.d.ts +5 -1
  131. package/dist/components/typography/text.styles.d.ts +26 -1
  132. package/dist/components/ui/combobox-dismiss.d.ts +16 -0
  133. package/dist/components/ui/combobox.d.ts +11 -6
  134. package/dist/components/ui/dialog.d.ts +1 -1
  135. package/dist/components/ui/popover.d.ts +1 -1
  136. package/dist/components/ui/sheet.d.ts +1 -1
  137. package/dist/composition.recipes-COdiFhxB.js +19 -0
  138. package/dist/composition.recipes-COdiFhxB.js.map +1 -0
  139. package/dist/containers-CRmHf7GP.js +104 -0
  140. package/dist/containers-CRmHf7GP.js.map +1 -0
  141. package/dist/{copyable-ClBuk_UK.js → copyable-CnGCZdX4.js} +4 -4
  142. package/dist/{copyable-ClBuk_UK.js.map → copyable-CnGCZdX4.js.map} +1 -1
  143. package/dist/{data-display-DT_khPl_.js → data-display-D4oujtx0.js} +239 -238
  144. package/dist/data-display-D4oujtx0.js.map +1 -0
  145. package/dist/{date-DCrsDTZc.js → date-Q7jnXxpk.js} +5 -5
  146. package/dist/{date-DCrsDTZc.js.map → date-Q7jnXxpk.js.map} +1 -1
  147. package/dist/{date-picker-ay0Pha_a.js → date-picker-zOt1oNss.js} +102 -90
  148. package/dist/date-picker-zOt1oNss.js.map +1 -0
  149. package/dist/date-pickers-cj8IXbDC.js +179 -0
  150. package/dist/date-pickers-cj8IXbDC.js.map +1 -0
  151. package/dist/{display-hAc1HjpI.js → display-BB4BL_-K.js} +8 -8
  152. package/dist/{display-hAc1HjpI.js.map → display-BB4BL_-K.js.map} +1 -1
  153. package/dist/{dropdown-menu-Cl4X7L5S.js → dropdown-menu-CjY8Vt7W.js} +8 -8
  154. package/dist/{dropdown-menu-Cl4X7L5S.js.map → dropdown-menu-CjY8Vt7W.js.map} +1 -1
  155. package/dist/features/activities.js +11 -11
  156. package/dist/features/ai-chat.js +9 -9
  157. package/dist/features/appointment-calendar.js +222 -220
  158. package/dist/features/appointment-calendar.js.map +1 -1
  159. package/dist/features/async-preview.js +8 -8
  160. package/dist/features/combobox.js +1 -1
  161. package/dist/features/comments.js +1 -1
  162. package/dist/features/data-view.js +10 -10
  163. package/dist/features/email-composer.js +275 -274
  164. package/dist/features/email-composer.js.map +1 -1
  165. package/dist/features/event-calendar.js +199 -198
  166. package/dist/features/event-calendar.js.map +1 -1
  167. package/dist/features/filters.js +1 -1
  168. package/dist/features/global-search.js +12 -12
  169. package/dist/features/kanban.js +4 -4
  170. package/dist/features/map.js +7 -7
  171. package/dist/features/media-library.js +623 -622
  172. package/dist/features/media-library.js.map +1 -1
  173. package/dist/features/mentions.js +1 -1
  174. package/dist/features/overlays.js +1 -1
  175. package/dist/features/products.js +973 -969
  176. package/dist/features/products.js.map +1 -1
  177. package/dist/features/questionnaire.js +12 -12
  178. package/dist/features/resource-assignment.js +8 -8
  179. package/dist/features/resource.js +113 -112
  180. package/dist/features/resource.js.map +1 -1
  181. package/dist/features/rich-text-editor.js +2 -2
  182. package/dist/features/schema-form.js +254 -253
  183. package/dist/features/schema-form.js.map +1 -1
  184. package/dist/features/suggestions.js +3 -3
  185. package/dist/features/sync.js +3 -3
  186. package/dist/features/table.js +1 -1
  187. package/dist/features/theme-tweaker.js +19 -19
  188. package/dist/features/theme-tweaker.js.map +1 -1
  189. package/dist/{feedback-BYIhtitP.js → feedback-DZNL5Lg1.js} +9 -9
  190. package/dist/{feedback-BYIhtitP.js.map → feedback-DZNL5Lg1.js.map} +1 -1
  191. package/dist/{field-affordance-recipes-DZhnIL_Y.js → field-affordance-recipes-DjwGx8eM.js} +2 -2
  192. package/dist/{field-affordance-recipes-DZhnIL_Y.js.map → field-affordance-recipes-DjwGx8eM.js.map} +1 -1
  193. package/dist/{filters-BGfvjP4d.js → filters-BcT-uoFy.js} +19 -19
  194. package/dist/{filters-BGfvjP4d.js.map → filters-BcT-uoFy.js.map} +1 -1
  195. package/dist/{form-field-CwH9y77i.js → form-field-CsgRmdit.js} +14 -8
  196. package/dist/form-field-CsgRmdit.js.map +1 -0
  197. package/dist/{form-sizing-BdP_Mf5p.js → form-sizing-NXgjkmBG.js} +3 -3
  198. package/dist/{form-sizing-BdP_Mf5p.js.map → form-sizing-NXgjkmBG.js.map} +1 -1
  199. package/dist/{forms-B9G_xwzi.js → forms-BV5m5aQF.js} +83 -65
  200. package/dist/forms-BV5m5aQF.js.map +1 -0
  201. package/dist/{forms-numeric-B_jraJaQ.js → forms-numeric-Cd33AKbD.js} +288 -288
  202. package/dist/forms-numeric-Cd33AKbD.js.map +1 -0
  203. package/dist/{header-CGXuhcRm.js → header-BA697l4a.js} +14 -14
  204. package/dist/{header-CGXuhcRm.js.map → header-BA697l4a.js.map} +1 -1
  205. package/dist/hooks/useFormErrors.d.ts +1 -1
  206. package/dist/{hooks-Dkz0K2WT.js → hooks-BQ-L7Uu2.js} +2 -2
  207. package/dist/{hooks-Dkz0K2WT.js.map → hooks-BQ-L7Uu2.js.map} +1 -1
  208. package/dist/{icon-badge-DYKIwvOV.js → icon-badge-COWbCCWu.js} +3 -3
  209. package/dist/{icon-badge-DYKIwvOV.js.map → icon-badge-COWbCCWu.js.map} +1 -1
  210. package/dist/index.js +2 -2
  211. package/dist/input-Cdw4k0fb.js +289 -0
  212. package/dist/input-Cdw4k0fb.js.map +1 -0
  213. package/dist/{input-CZw8iU99.js → input-DOPL5_QE.js} +3 -3
  214. package/dist/{input-CZw8iU99.js.map → input-DOPL5_QE.js.map} +1 -1
  215. package/dist/item-BvZ2DR_x.js +277 -0
  216. package/dist/item-BvZ2DR_x.js.map +1 -0
  217. package/dist/layout/app-shell.js +1 -1
  218. package/dist/layout/auth.js +1 -1
  219. package/dist/layout/containers.js +1 -1
  220. package/dist/layout/header.js +1 -1
  221. package/dist/layout/hooks.js +1 -1
  222. package/dist/layout/navigation.js +1 -1
  223. package/dist/layout/page.js +1 -1
  224. package/dist/layout/settings.js +1 -1
  225. package/dist/layout/sidebar.js +2 -2
  226. package/dist/layout/workspace.js +1 -1
  227. package/dist/layout.js +10 -10
  228. package/dist/lib/affordance-geometry.generated.d.ts +6 -0
  229. package/dist/lib/ui-provider/types.d.ts +1 -1
  230. package/dist/lib/use-popup-focus-recovery.d.ts +8 -0
  231. package/dist/lib/utils.js +1 -1
  232. package/dist/{media-gallery-3zIVLMWH.js → media-gallery-CSl5W1Fy.js} +6 -6
  233. package/dist/{media-gallery-3zIVLMWH.js.map → media-gallery-CSl5W1Fy.js.map} +1 -1
  234. package/dist/{mentions-utuUvH1K.js → mentions-RKOQaaIB.js} +8 -8
  235. package/dist/{mentions-utuUvH1K.js.map → mentions-RKOQaaIB.js.map} +1 -1
  236. package/dist/{message-DZ_ruyUV.js → message-INU2xsxu.js} +4 -4
  237. package/dist/{message-DZ_ruyUV.js.map → message-INU2xsxu.js.map} +1 -1
  238. package/dist/metadata-list-qVV7AVxa.js +443 -0
  239. package/dist/metadata-list-qVV7AVxa.js.map +1 -0
  240. package/dist/{navigation-BzhHI3lo.js → navigation-BQNcg1jT.js} +8 -8
  241. package/dist/{navigation-BzhHI3lo.js.map → navigation-BQNcg1jT.js.map} +1 -1
  242. package/dist/{navigation-Bnotn4AQ.js → navigation-DLF3E1IC.js} +7 -7
  243. package/dist/{navigation-Bnotn4AQ.js.map → navigation-DLF3E1IC.js.map} +1 -1
  244. package/dist/{navigation-row-recipes-BFLCk_Aq.js → navigation-row-recipes-WZEs-hYo.js} +2 -2
  245. package/dist/{navigation-row-recipes-BFLCk_Aq.js.map → navigation-row-recipes-WZEs-hYo.js.map} +1 -1
  246. package/dist/{number-DbV1Dija.js → number-E_OiIfJz.js} +5 -5
  247. package/dist/{number-DbV1Dija.js.map → number-E_OiIfJz.js.map} +1 -1
  248. package/dist/{overflow-tab-bar-CWY7Nogn.js → overflow-tab-bar-CrbqMteP.js} +107 -105
  249. package/dist/overflow-tab-bar-CrbqMteP.js.map +1 -0
  250. package/dist/{overlays-DNWmZrJ4.js → overlays-BlKynmde.js} +322 -319
  251. package/dist/overlays-BlKynmde.js.map +1 -0
  252. package/dist/page-CIwNUtGr.js +227 -0
  253. package/dist/page-CIwNUtGr.js.map +1 -0
  254. package/dist/page-header-commands-DFMlNYzN.js +128 -0
  255. package/dist/page-header-commands-DFMlNYzN.js.map +1 -0
  256. package/dist/{pagination-BL25hu2s.js → pagination-Ch8X_47u.js} +5 -5
  257. package/dist/{pagination-BL25hu2s.js.map → pagination-Ch8X_47u.js.map} +1 -1
  258. package/dist/{popover-menu-B9WWygpa.js → popover-menu-BYaCdFhf.js} +6 -6
  259. package/dist/{popover-menu-B9WWygpa.js.map → popover-menu-BYaCdFhf.js.map} +1 -1
  260. package/dist/{popover-7_m66eYW.js → popover-uwzX2vo7.js} +65 -63
  261. package/dist/popover-uwzX2vo7.js.map +1 -0
  262. package/dist/{primitives-BFK08r9M.js → primitives-Du64iDbb.js} +6 -6
  263. package/dist/{primitives-BFK08r9M.js.map → primitives-Du64iDbb.js.map} +1 -1
  264. package/dist/primitives.js +4 -4
  265. package/dist/{progress-B1VnCT0K.js → progress-BvF2oCdV.js} +5 -5
  266. package/dist/{progress-B1VnCT0K.js.map → progress-BvF2oCdV.js.map} +1 -1
  267. package/dist/{receipt-BVSOH3Xo.js → receipt-D789Jwyy.js} +6 -6
  268. package/dist/{receipt-BVSOH3Xo.js.map → receipt-D789Jwyy.js.map} +1 -1
  269. package/dist/{rich-text-GOUyKQ-s.js → rich-text-CLJEf76s.js} +4 -4
  270. package/dist/{rich-text-GOUyKQ-s.js.map → rich-text-CLJEf76s.js.map} +1 -1
  271. package/dist/{rich-text-editor-cRLC-eBK.js → rich-text-editor-Cm1dpUpQ.js} +10 -10
  272. package/dist/{rich-text-editor-cRLC-eBK.js.map → rich-text-editor-Cm1dpUpQ.js.map} +1 -1
  273. package/dist/{rich-text-editor-toolbar-DfXg0-VC.js → rich-text-editor-toolbar-L__e4x47.js} +4 -4
  274. package/dist/{rich-text-editor-toolbar-DfXg0-VC.js.map → rich-text-editor-toolbar-L__e4x47.js.map} +1 -1
  275. package/dist/{scroll-area-DcI-M1UT.js → scroll-area-La5RXsEk.js} +2 -2
  276. package/dist/{scroll-area-DcI-M1UT.js.map → scroll-area-La5RXsEk.js.map} +1 -1
  277. package/dist/{separator-Bom7NsGO.js → separator-DAEV0w65.js} +2 -2
  278. package/dist/{separator-Bom7NsGO.js.map → separator-DAEV0w65.js.map} +1 -1
  279. package/dist/{separator-BDV-Y648.js → separator-GNfPG-90.js} +3 -3
  280. package/dist/{separator-BDV-Y648.js.map → separator-GNfPG-90.js.map} +1 -1
  281. package/dist/services/actions.js +1 -1
  282. package/dist/settings-BA2iboic.js +174 -0
  283. package/dist/settings-BA2iboic.js.map +1 -0
  284. package/dist/{sheet-CGpB3omz.js → sheet-DoAxTb2J.js} +75 -73
  285. package/dist/sheet-DoAxTb2J.js.map +1 -0
  286. package/dist/{sidebar-A0ElHINE.js → sidebar-ByqKR_W5.js} +13 -13
  287. package/dist/{sidebar-A0ElHINE.js.map → sidebar-ByqKR_W5.js.map} +1 -1
  288. package/dist/{sidebar-CPx_7YBa.js → sidebar-D2iSnGJ7.js} +11 -11
  289. package/dist/{sidebar-CPx_7YBa.js.map → sidebar-D2iSnGJ7.js.map} +1 -1
  290. package/dist/{skeleton-Byjnt7qr.js → skeleton-CUj8O5Bd.js} +3 -3
  291. package/dist/{skeleton-Byjnt7qr.js.map → skeleton-CUj8O5Bd.js.map} +1 -1
  292. package/dist/smart-card-CqkzQsK-.js +614 -0
  293. package/dist/smart-card-CqkzQsK-.js.map +1 -0
  294. package/dist/{structure-BmisBK-3.js → structure-C0V0_Fyf.js} +3 -3
  295. package/dist/{structure-BmisBK-3.js.map → structure-C0V0_Fyf.js.map} +1 -1
  296. package/dist/{structure.recipes-EPz60cU8.js → structure.recipes-BB4-n58V.js} +2 -2
  297. package/dist/{structure.recipes-EPz60cU8.js.map → structure.recipes-BB4-n58V.js.map} +1 -1
  298. package/dist/style.css +1 -1
  299. package/dist/{table-DsfzoUia.js → table-CpvnzJn9.js} +3 -3
  300. package/dist/{table-DsfzoUia.js.map → table-CpvnzJn9.js.map} +1 -1
  301. package/dist/{table-BweFy_P9.js → table-DH7rozUv.js} +19 -19
  302. package/dist/{table-BweFy_P9.js.map → table-DH7rozUv.js.map} +1 -1
  303. package/dist/{tabs-CDocW5D1.js → tabs-eqVsJZWO.js} +7 -7
  304. package/dist/{tabs-CDocW5D1.js.map → tabs-eqVsJZWO.js.map} +1 -1
  305. package/dist/{text-inputs-f9Ia-aCi.js → text-inputs-DXItiR0O.js} +101 -98
  306. package/dist/text-inputs-DXItiR0O.js.map +1 -0
  307. package/dist/{text.styles-g4He6UIW.js → text.styles-B64My8RZ.js} +25 -10
  308. package/dist/text.styles-B64My8RZ.js.map +1 -0
  309. package/dist/theme.css +152 -112
  310. package/dist/{timelines-CwM_9IhD.js → timelines-DmtztAY_.js} +10 -10
  311. package/dist/{timelines-CwM_9IhD.js.map → timelines-DmtztAY_.js.map} +1 -1
  312. package/dist/{tooltip-yiRJUFjp.js → tooltip-B4hjKtoV.js} +3 -3
  313. package/dist/{tooltip-yiRJUFjp.js.map → tooltip-B4hjKtoV.js.map} +1 -1
  314. package/dist/{tree-WnKQzwbq.js → tree-CV11PURP.js} +8 -8
  315. package/dist/{tree-WnKQzwbq.js.map → tree-CV11PURP.js.map} +1 -1
  316. package/dist/typography/rich-text.js +1 -1
  317. package/dist/typography-CSyJrh28.js +117 -0
  318. package/dist/typography-CSyJrh28.js.map +1 -0
  319. package/dist/typography.js +1 -1
  320. package/dist/{ui-provider-C_U0Xma4.js → ui-provider-CQCuCBcy.js} +3 -3
  321. package/dist/ui-provider-CQCuCBcy.js.map +1 -0
  322. package/dist/ui-provider.js +1 -1
  323. package/dist/{upload-CXyxmQBP.js → upload-C9SA0X-8.js} +11 -11
  324. package/dist/{upload-CXyxmQBP.js.map → upload-C9SA0X-8.js.map} +1 -1
  325. package/dist/{upload-queue-Boscubn9.js → upload-queue-DhQJiSRc.js} +9 -9
  326. package/dist/{upload-queue-Boscubn9.js.map → upload-queue-DhQJiSRc.js.map} +1 -1
  327. package/dist/{usage-card-BhO5eqkX.js → usage-card-DVTRDmGz.js} +134 -133
  328. package/dist/usage-card-DVTRDmGz.js.map +1 -0
  329. package/dist/use-popup-focus-recovery-C0QPvgOR.js +36 -0
  330. package/dist/use-popup-focus-recovery-C0QPvgOR.js.map +1 -0
  331. package/dist/{utils-BRhFDwuU.js → utils-CF3c95Io.js} +68 -5
  332. package/dist/utils-CF3c95Io.js.map +1 -0
  333. package/dist/value-inputs-C0o70p-U.js +980 -0
  334. package/dist/value-inputs-C0o70p-U.js.map +1 -0
  335. package/dist/{value-typography-BP8OG6h5.js → value-typography-ClupF0Gz.js} +2 -2
  336. package/dist/{value-typography-BP8OG6h5.js.map → value-typography-ClupF0Gz.js.map} +1 -1
  337. package/dist/workspace-9EFVXUyk.js +410 -0
  338. package/dist/workspace-9EFVXUyk.js.map +1 -0
  339. package/docs/consumer-skill/SKILL.md +14 -129
  340. package/docs/consumer-skill/examples/app-layout.tsx +22 -12
  341. package/docs/consumer-skill/examples/authentication.tsx +77 -0
  342. package/docs/consumer-skill/examples/edit.tsx +30 -38
  343. package/docs/consumer-skill/examples/manifest.json +51 -1
  344. package/docs/consumer-skill/examples/rhf-bindings.tsx +86 -0
  345. package/docs/consumer-skill/examples/rhf-edit-page.tsx +141 -0
  346. package/docs/consumer-skill/examples/rhf-overlay-form.tsx +92 -0
  347. package/docs/consumer-skill/examples/rhf-transport.tsx +28 -0
  348. package/docs/consumer-skill/references/agents-md.md +17 -7
  349. package/docs/consumer-skill/references/authentication.md +42 -0
  350. package/docs/consumer-skill/references/component-contracts.json +319824 -0
  351. package/docs/consumer-skill/references/composition-mapping.md +92 -0
  352. package/docs/consumer-skill/references/composition.md +43 -19
  353. package/docs/consumer-skill/references/design-contract.md +32 -0
  354. package/docs/consumer-skill/references/discovery.md +84 -7
  355. package/docs/consumer-skill/references/installation.md +45 -35
  356. package/docs/consumer-skill/references/integration.md +6 -2
  357. package/docs/consumer-skill/references/public-api.json +1520 -66
  358. package/docs/consumer-skill/references/review.md +9 -4
  359. package/docs/consumer-skill/references/rhf-workflows.md +86 -0
  360. package/docs/consumer-skill/references/screen-archetypes.md +22 -0
  361. package/docs/consumer-skill/references/theming.md +8 -9
  362. package/docs/consumer-skill/references/tokens.json +12 -3
  363. package/docs/consumer-skill/references/workflows.md +7 -5
  364. package/docs/consumer-skill/scripts/composition-schema.d.mts +2 -0
  365. package/docs/consumer-skill/scripts/composition-schema.mjs +32 -0
  366. package/docs/consumer-skill/scripts/composition.mjs +198 -0
  367. package/docs/consumer-skill/scripts/discovery.mjs +42 -10
  368. package/docs/consumer-skill/scripts/inspect-component.mjs +11 -0
  369. package/docs/consumer-skill/scripts/inspect-tokens.mjs +11 -0
  370. package/docs/consumer-skill/scripts/inspection.mjs +138 -0
  371. package/docs/consumer-skill/scripts/map-composition.mjs +12 -0
  372. package/docs/consumer-skill/scripts/setup-skills.mjs +76 -0
  373. package/docs/consumer-skills/themelia-components/SKILL.md +30 -0
  374. package/docs/consumer-skills/themelia-composition/SKILL.md +35 -0
  375. package/docs/consumer-skills/themelia-forms/SKILL.md +12 -0
  376. package/docs/consumer-skills/themelia-foundation/SKILL.md +14 -0
  377. package/docs/consumer-skills/themelia-tokenization/SKILL.md +35 -0
  378. package/package.json +6 -4
  379. package/templates/README.md +39 -0
  380. package/templates/admin-shell-template.tsx +382 -0
  381. package/templates/analytics-operations-template.tsx +376 -0
  382. package/templates/customers-template.tsx +509 -0
  383. package/templates/index.ts +29 -0
  384. package/templates/orders-template.tsx +1102 -0
  385. package/templates/products-template.tsx +834 -0
  386. package/templates/user-permissions-template.tsx +450 -0
  387. package/dist/action-menu-CllU52Mm.js +0 -280
  388. package/dist/action-menu-CllU52Mm.js.map +0 -1
  389. package/dist/affordance-geometry.generated-tF36bREk.js.map +0 -1
  390. package/dist/ai-artifact-DvTwDVyL.js.map +0 -1
  391. package/dist/app-shell-C4FhvCqF.js.map +0 -1
  392. package/dist/cards-BaBZR-AU.js.map +0 -1
  393. package/dist/checkbox-AWIhNhmo.js.map +0 -1
  394. package/dist/choice-inputs-CNHvARCJ.js.map +0 -1
  395. package/dist/combobox-C0EQW6dr.js.map +0 -1
  396. package/dist/combobox-xCQ2RMNE.js.map +0 -1
  397. package/dist/comments-BYYlTA8E.js.map +0 -1
  398. package/dist/containers-Mu1LMGV1.js +0 -103
  399. package/dist/containers-Mu1LMGV1.js.map +0 -1
  400. package/dist/data-display-DT_khPl_.js.map +0 -1
  401. package/dist/date-picker-ay0Pha_a.js.map +0 -1
  402. package/dist/date-pickers-Ccw8DL2b.js +0 -175
  403. package/dist/date-pickers-Ccw8DL2b.js.map +0 -1
  404. package/dist/form-field-CwH9y77i.js.map +0 -1
  405. package/dist/forms-B9G_xwzi.js.map +0 -1
  406. package/dist/forms-numeric-B_jraJaQ.js.map +0 -1
  407. package/dist/input-DQdEd0YD.js +0 -263
  408. package/dist/input-DQdEd0YD.js.map +0 -1
  409. package/dist/item-K5_ghvze.js +0 -275
  410. package/dist/item-K5_ghvze.js.map +0 -1
  411. package/dist/metadata-list-8N16ZMW_.js +0 -405
  412. package/dist/metadata-list-8N16ZMW_.js.map +0 -1
  413. package/dist/overflow-tab-bar-CWY7Nogn.js.map +0 -1
  414. package/dist/overlays-DNWmZrJ4.js.map +0 -1
  415. package/dist/page-Bgl1F560.js +0 -224
  416. package/dist/page-Bgl1F560.js.map +0 -1
  417. package/dist/page-header-commands-DOb6WsfD.js +0 -126
  418. package/dist/page-header-commands-DOb6WsfD.js.map +0 -1
  419. package/dist/popover-7_m66eYW.js.map +0 -1
  420. package/dist/settings-ybnjVwbd.js +0 -171
  421. package/dist/settings-ybnjVwbd.js.map +0 -1
  422. package/dist/sheet-CGpB3omz.js.map +0 -1
  423. package/dist/smart-card-DiC5aac3.js +0 -604
  424. package/dist/smart-card-DiC5aac3.js.map +0 -1
  425. package/dist/text-inputs-f9Ia-aCi.js.map +0 -1
  426. package/dist/text.styles-g4He6UIW.js.map +0 -1
  427. package/dist/typography-UTnveOEy.js +0 -117
  428. package/dist/typography-UTnveOEy.js.map +0 -1
  429. package/dist/ui-provider-C_U0Xma4.js.map +0 -1
  430. package/dist/usage-card-BhO5eqkX.js.map +0 -1
  431. package/dist/utils-BRhFDwuU.js.map +0 -1
  432. package/dist/value-inputs-DXPDjvBU.js +0 -963
  433. package/dist/value-inputs-DXPDjvBU.js.map +0 -1
  434. package/dist/workspace-Cdrg7k9f.js +0 -408
  435. package/dist/workspace-Cdrg7k9f.js.map +0 -1
@@ -1,36 +1,37 @@
1
1
  "use client";
2
2
  import { useStrings as e } from "../lib/strings.js";
3
- import { t } from "../utils-BRhFDwuU.js";
4
- import { n } from "../buttons-DPZekJFu.js";
5
- import { c as r } from "../typography-UTnveOEy.js";
6
- import { i, t as a } from "../structure-BmisBK-3.js";
7
- import { h as o, p as s, t as c, v as l } from "../smart-card-DiC5aac3.js";
8
- import { n as u, t as d } from "../feedback-BYIhtitP.js";
9
- import { n as f, t as p } from "../action-menu-CllU52Mm.js";
10
- import { n as m, r as h, t as g } from "../overlays-DNWmZrJ4.js";
11
- import { n as _ } from "../content-typography-CnwgMJ37.js";
12
- import { t as v } from "../accordion-Cjb6sx0G.js";
13
- import { t as y } from "../input-DQdEd0YD.js";
14
- import { t as b } from "../form-field-CwH9y77i.js";
15
- import { a as x, c as S, d as C, o as w, s as T } from "../text-inputs-f9Ia-aCi.js";
16
- import { l as E } from "../choice-inputs-CNHvARCJ.js";
17
- import { t as ee } from "../scroll-area-DcI-M1UT.js";
18
- import { i as D, n as O, r as te, t as ne } from "../tabs-CDocW5D1.js";
19
- import { t as k } from "../popover-menu-B9WWygpa.js";
20
- import { n as A, t as j } from "../rich-text-editor-toolbar-DfXg0-VC.js";
21
- import { t as M } from "../rich-text-editor.strings-CB59ekH2.js";
22
- import { a as N, c as P, i as F, l as I, n as L, o as R, r as z, s as B, t as V, u as H } from "../http-D_6rOnzU.js";
23
- import { useEffect as U, useId as W, useImperativeHandle as G, useMemo as re, useRef as K, useState as q } from "react";
24
- import { Fragment as J, jsx as Y, jsxs as X } from "react/jsx-runtime";
25
- import { Bold as ie, Italic as ae, Link as oe, List as se, ListOrdered as ce, Plus as Z, Redo2 as le, Undo2 as ue, X as de } from "lucide-react";
26
- import { EditorContent as fe, Node as pe, generateJSON as me, mergeAttributes as he, useEditor as ge } from "@tiptap/react";
27
- import _e from "@tiptap/starter-kit";
3
+ import { t } from "../utils-CF3c95Io.js";
4
+ import { n } from "../buttons-BbfzgczK.js";
5
+ import { c as r } from "../typography-CSyJrh28.js";
6
+ import { i, t as a } from "../structure-C0V0_Fyf.js";
7
+ import { h as o, p as s, t as c, v as l } from "../smart-card-CqkzQsK-.js";
8
+ import { n as u, t as d } from "../feedback-DZNL5Lg1.js";
9
+ import { n as f } from "../composition.recipes-COdiFhxB.js";
10
+ import { n as p, t as m } from "../action-menu-CHgs8vmj.js";
11
+ import { n as h, r as g, t as _ } from "../overlays-BlKynmde.js";
12
+ import { n as v } from "../content-typography-CnwgMJ37.js";
13
+ import { t as y } from "../accordion-96o0pN62.js";
14
+ import { t as b } from "../input-Cdw4k0fb.js";
15
+ import { t as x } from "../form-field-CsgRmdit.js";
16
+ import { a as S, c as C, d as w, o as T, s as E } from "../text-inputs-DXItiR0O.js";
17
+ import { l as D } from "../choice-inputs-JLtij2y4.js";
18
+ import { t as O } from "../scroll-area-La5RXsEk.js";
19
+ import { i as k, n as A, r as ee, t as te } from "../tabs-eqVsJZWO.js";
20
+ import { t as ne } from "../popover-menu-BYaCdFhf.js";
21
+ import { n as j, t as M } from "../rich-text-editor-toolbar-L__e4x47.js";
22
+ import { t as N } from "../rich-text-editor.strings-CB59ekH2.js";
23
+ import { a as P, c as F, i as I, l as L, n as R, o as z, r as B, s as V, t as H, u as U } from "../http-D_6rOnzU.js";
24
+ import { useEffect as W, useId as G, useImperativeHandle as K, useMemo as re, useRef as q, useState as J } from "react";
25
+ import { Fragment as Y, jsx as X, jsxs as Z } from "react/jsx-runtime";
26
+ import { Bold as ie, Italic as ae, Link as oe, List as se, ListOrdered as ce, Plus as le, Redo2 as ue, Undo2 as de, X as fe } from "lucide-react";
27
+ import { EditorContent as pe, Node as me, generateJSON as he, mergeAttributes as ge, useEditor as _e } from "@tiptap/react";
28
+ import ve from "@tiptap/starter-kit";
28
29
  //#region src/components/features/email-composer/partials/data-status.tsx
29
30
  function Q(e) {
30
31
  return !!(e?.loading || e?.error);
31
32
  }
32
- function ve({ state: e, label: t, retryLabel: n, report: r }) {
33
- return e?.loading ? /* @__PURE__ */ Y(u, { label: t }) : e?.error ? /* @__PURE__ */ Y(d, {
33
+ function ye({ state: e, label: t, retryLabel: n, report: r }) {
34
+ return e?.loading ? /* @__PURE__ */ X(u, { label: t }) : e?.error ? /* @__PURE__ */ X(d, {
34
35
  variant: "inline",
35
36
  description: e.error,
36
37
  retryLabel: n,
@@ -41,8 +42,8 @@ function ve({ state: e, label: t, retryLabel: n, report: r }) {
41
42
  }
42
43
  //#endregion
43
44
  //#region src/components/features/email-composer/use-composer.ts
44
- function ye(t) {
45
- let n = e(H, t.strings), r = K(null);
45
+ function be(t) {
46
+ let n = e(U, t.strings), r = q(null);
46
47
  r.current ||= structuredClone({
47
48
  to: [],
48
49
  cc: [],
@@ -50,12 +51,12 @@ function ye(t) {
50
51
  subject: "",
51
52
  body: {
52
53
  kind: "rich",
53
- document: I
54
+ document: L
54
55
  },
55
56
  placeholderOverrides: {},
56
57
  ...t.value ?? t.defaultValue
57
58
  });
58
- let [i, a] = q(r.current), o = t.value ?? i, s = K({
59
+ let [i, a] = J(r.current), o = t.value ?? i, s = q({
59
60
  props: t,
60
61
  draft: o,
61
62
  strings: n
@@ -65,10 +66,10 @@ function ye(t) {
65
66
  draft: o,
66
67
  strings: n
67
68
  };
68
- let c = K(o);
69
+ let c = q(o);
69
70
  t.value !== void 0 && (c.current = t.value);
70
- let l = K(null), u = K(null), [d, f] = q(!1), [p, m] = q(""), [h, g] = q(""), [_, v] = q(!1), [y, b] = q([]), x = K(!0);
71
- U(() => (x.current = !0, () => {
71
+ let l = q(null), u = q(null), [d, f] = J(!1), [p, m] = J(""), [h, g] = J(""), [_, v] = J(!1), [y, b] = J([]), x = q(!0);
72
+ W(() => (x.current = !0, () => {
72
73
  x.current = !1;
73
74
  }), []);
74
75
  let S = re(() => {
@@ -78,13 +79,13 @@ function ye(t) {
78
79
  r.definitions[t] && (e[t] = r.definitions[t]);
79
80
  }
80
81
  return e;
81
- }, [t.placeholders?.sets, n]), C = re(() => [...t.templates?.items ?? [], ...y], [t.templates?.items, y]), w = K(C);
82
+ }, [t.placeholders?.sets, n]), C = re(() => [...t.templates?.items ?? [], ...y], [t.templates?.items, y]), w = q(C);
82
83
  if (w.current = C, new Set(C.map((e) => e.id)).size !== C.length) throw Error(n.duplicateTemplate);
83
- let T = () => s.current.props.value ?? c.current, E = (e) => C.find((t) => t.id === e.templateId), ee = K(null), D = (e = T()) => {
84
- let t = s.current.props.context, n = E(e), r = s.current.strings, i = ee.current;
84
+ let T = () => s.current.props.value ?? c.current, E = (e) => C.find((t) => t.id === e.templateId), D = q(null), O = (e = T()) => {
85
+ let t = s.current.props.context, n = E(e), r = s.current.strings, i = D.current;
85
86
  if (i && i.draft === e && i.context === t && i.definitions === S && i.template === n && i.strings === r) return i.result;
86
- let a = L(e, t, S, n, r);
87
- return ee.current = {
87
+ let a = R(e, t, S, n, r);
88
+ return D.current = {
88
89
  draft: e,
89
90
  context: t,
90
91
  definitions: S,
@@ -92,7 +93,7 @@ function ye(t) {
92
93
  strings: r,
93
94
  result: a
94
95
  }, a;
95
- }, O = () => {
96
+ }, k = () => {
96
97
  let { props: e, strings: t } = s.current, n = [];
97
98
  for (let r of [
98
99
  "to",
@@ -106,23 +107,23 @@ function ye(t) {
106
107
  field: "placeholders",
107
108
  message: t.dataUnavailable
108
109
  }), n;
109
- }, te = O().length > 0, ne = (e = T()) => structuredClone([...O(), ...D(e).issues]), k = () => {
110
- let e = T(), t = [...D(e).rendered?.unresolved ?? []];
110
+ }, A = k().length > 0, ee = (e = T()) => structuredClone([...k(), ...O(e).issues]), te = () => {
111
+ let e = T(), t = [...O(e).rendered?.unresolved ?? []];
111
112
  return {
112
113
  draft: structuredClone(e),
113
114
  dirty: JSON.stringify(e) !== JSON.stringify(r.current),
114
115
  busy: u.current !== null,
115
- issues: ne(e),
116
+ issues: ee(e),
116
117
  unresolvedPlaceholders: t
117
118
  };
118
- }, A = (e) => {
119
+ }, ne = (e) => {
119
120
  let t = e instanceof Error ? e : Error(String(e));
120
121
  x.current && m(t.message), s.current.props.onError?.(t);
121
122
  }, j = (e, t = "api", n = !1) => {
122
123
  if (!x.current || !n && u.current && u.current !== "action") return;
123
124
  let r = structuredClone(e(structuredClone(T())));
124
125
  s.current.props.value === void 0 && (c.current = r, a(r)), s.current.props.onChange?.(structuredClone(r)), s.current.props.onEdit?.(structuredClone(r), { source: t }), m(""), g("");
125
- }, M = K(null);
126
+ }, M = q(null);
126
127
  async function N(e, t, n = !1) {
127
128
  if (u.current && !(n && u.current === "action") || !x.current) return;
128
129
  let r = {
@@ -134,7 +135,7 @@ function ye(t) {
134
135
  try {
135
136
  await t();
136
137
  } catch (e) {
137
- A(e);
138
+ ne(e);
138
139
  } finally {
139
140
  if (r.settled = !0, M.current === r) {
140
141
  let e = r.parent;
@@ -161,31 +162,31 @@ function ye(t) {
161
162
  placeholderOverrides: t.overrides === "reset" ? {} : n.placeholderOverrides
162
163
  }), "template", r);
163
164
  }
164
- let R = K(null), z = K(null);
165
+ let I = q(null), z = q(null);
165
166
  z.current ||= {
166
- getState: () => R.current.getState(),
167
- update: (e) => R.current.update(e),
168
- setSubject: (e) => R.current.setSubject(e),
169
- setRecipients: (e, t) => R.current.setRecipients(e, t),
170
- setBody: (e) => R.current.setBody(e),
171
- importBody: (e) => R.current.importBody(e),
172
- setPlaceholder: (e, t) => R.current.setPlaceholder(e, t),
173
- clearPlaceholderOverride: (e) => R.current.clearPlaceholderOverride(e),
174
- insertPlaceholder: (e) => R.current.insertPlaceholder(e),
175
- applyTemplate: (e, t) => R.current.applyTemplate(e, t),
176
- insertText: (e) => R.current.insertText(e),
177
- focusBody: () => R.current.focusBody(),
178
- validate: () => R.current.validate(),
179
- prepare: () => R.current.prepare(),
180
- send: () => R.current.send(),
181
- discard: () => R.current.discard()
167
+ getState: () => I.current.getState(),
168
+ update: (e) => I.current.update(e),
169
+ setSubject: (e) => I.current.setSubject(e),
170
+ setRecipients: (e, t) => I.current.setRecipients(e, t),
171
+ setBody: (e) => I.current.setBody(e),
172
+ importBody: (e) => I.current.importBody(e),
173
+ setPlaceholder: (e, t) => I.current.setPlaceholder(e, t),
174
+ clearPlaceholderOverride: (e) => I.current.clearPlaceholderOverride(e),
175
+ insertPlaceholder: (e) => I.current.insertPlaceholder(e),
176
+ applyTemplate: (e, t) => I.current.applyTemplate(e, t),
177
+ insertText: (e) => I.current.insertText(e),
178
+ focusBody: () => I.current.focusBody(),
179
+ validate: () => I.current.validate(),
180
+ prepare: () => I.current.prepare(),
181
+ send: () => I.current.send(),
182
+ discard: () => I.current.discard()
182
183
  };
183
184
  let B = z.current, V = async () => {
184
- if (O().length) throw Error(s.current.strings.dataUnavailable);
185
- let e = D();
185
+ if (k().length) throw Error(s.current.strings.dataUnavailable);
186
+ let e = O();
186
187
  if (e.issues.length || !e.rendered) throw Error(e.issues.map((e) => e.message).join(" "));
187
188
  return structuredClone(e.rendered.email);
188
- }, W = (e = !1) => N("send", async () => {
189
+ }, H = (e = !1) => N("send", async () => {
189
190
  let e = s.current.props;
190
191
  v(!0);
191
192
  let t = await V();
@@ -195,12 +196,12 @@ function ye(t) {
195
196
  t = n;
196
197
  }
197
198
  x.current && (t = structuredClone(t), await e.onSend(structuredClone(t)), x.current && (g(n.sent), e.onSent?.(t)));
198
- }, e), J = (e = !1) => N("discard", async () => {
199
+ }, e), G = (e = !1) => N("discard", async () => {
199
200
  let e = s.current.props, t = T();
200
201
  await e.onDiscard?.(B), x.current && T() === t && (j(() => r.current, "api", !0), v(!1), g(n.discarded), e.onClose?.());
201
202
  }, e);
202
- R.current = {
203
- getState: k,
203
+ I.current = {
204
+ getState: te,
204
205
  update: (e) => j(e),
205
206
  setSubject: (e) => j((t) => ({
206
207
  ...t,
@@ -253,15 +254,15 @@ function ye(t) {
253
254
  if (!r) throw Error(n.unknownTemplate(e));
254
255
  F(r, t);
255
256
  },
256
- validate: () => ne(),
257
+ validate: () => ee(),
257
258
  prepare: V,
258
- send: () => W(),
259
- discard: () => J()
260
- }, G(t.apiRef, () => B, [B]);
259
+ send: () => H(),
260
+ discard: () => G()
261
+ }, K(t.apiRef, () => B, [B]);
261
262
  let Y = (e) => N("action", async () => {
262
263
  await e.onSelect(Object.assign(Object.create(B), {
263
- send: () => W(!0),
264
- discard: () => J(!0)
264
+ send: () => H(!0),
265
+ discard: () => G(!0)
265
266
  }));
266
267
  }), X = () => N("import", async () => {
267
268
  let e = T(), t = await s.current.props.templates?.onImport?.();
@@ -269,24 +270,24 @@ function ye(t) {
269
270
  if (w.current.some((e) => e.id === t.id)) throw Error(n.duplicateTemplate);
270
271
  b((e) => [...e, structuredClone(t)]), T() === e && F(t, {}, !0);
271
272
  }
272
- }), { rendered: ie, renderError: ae } = D(o);
273
+ }), { rendered: Z, renderError: ie } = O(o);
273
274
  return {
274
275
  api: B,
275
276
  draft: o,
276
277
  strings: n,
277
278
  busy: d,
278
- dataPending: te,
279
+ dataPending: A,
279
280
  error: p,
280
281
  notice: h,
281
282
  attempted: _,
282
- rendered: ie,
283
- renderError: ae,
283
+ rendered: Z,
284
+ renderError: ie,
284
285
  definitions: S,
285
286
  templates: C,
286
- values: ie?.email.resolvedPlaceholders ?? {},
287
+ values: Z?.email.resolvedPlaceholders ?? {},
287
288
  editorRef: l,
288
- state: k(),
289
- report: A,
289
+ state: te(),
290
+ report: ne,
290
291
  runAction: Y,
291
292
  importTemplate: X,
292
293
  changeBody: (e) => j((t) => ({
@@ -305,20 +306,20 @@ function ye(t) {
305
306
  }
306
307
  //#endregion
307
308
  //#region src/components/features/email-composer/partials/recipients.tsx
308
- function be({ recipient: e, field: t, index: n, options: r, busy: i, strings: a, change: o, remove: s, add: c, id: l, errorId: u }) {
309
- let [d, f] = q(F(e));
310
- U(() => {
311
- f(F(e));
309
+ function xe({ recipient: e, field: t, index: n, options: r, busy: i, strings: a, change: o, remove: s, add: c, id: l, errorId: u }) {
310
+ let [d, f] = J(I(e));
311
+ W(() => {
312
+ f(I(e));
312
313
  }, [e.name, e.email]);
313
314
  let p = r.mode === "readonly", m = r.mode === "disabled" || i, h = r.mode !== "disabled" && r.allowRemove !== !1 && (!p || r.allowRemove === !0), g = () => {
314
- !p && !m && d !== F(e) && o({
315
+ !p && !m && d !== I(e) && o({
315
316
  id: e.id,
316
- ...z(d)
317
+ ...B(d)
317
318
  });
318
319
  };
319
- return /* @__PURE__ */ X(x, {
320
+ return /* @__PURE__ */ Z(S, {
320
321
  className: "min-w-0 w-full",
321
- children: [/* @__PURE__ */ Y(S, {
322
+ children: [/* @__PURE__ */ X(C, {
322
323
  id: l,
323
324
  "aria-invalid": !!u,
324
325
  "aria-describedby": u,
@@ -326,23 +327,23 @@ function be({ recipient: e, field: t, index: n, options: r, busy: i, strings: a,
326
327
  value: d,
327
328
  readOnly: p,
328
329
  disabled: m,
329
- title: F(e),
330
+ title: I(e),
330
331
  onChange: (e) => f(e.target.value),
331
332
  onBlur: g,
332
333
  onKeyDown: (t) => {
333
- t.key === "Enter" && (t.preventDefault(), g()), t.key === "Escape" && (t.preventDefault(), f(F(e)));
334
+ t.key === "Enter" && (t.preventDefault(), g()), t.key === "Escape" && (t.preventDefault(), f(I(e)));
334
335
  }
335
- }), (h || c) && /* @__PURE__ */ X(w, {
336
+ }), (h || c) && /* @__PURE__ */ Z(T, {
336
337
  align: "inline-end",
337
- children: [h && /* @__PURE__ */ Y(T, {
338
+ children: [h && /* @__PURE__ */ X(E, {
338
339
  type: "button",
339
340
  iconOnly: !0,
340
341
  size: "sm",
341
342
  disabled: i,
342
343
  "aria-label": a.removeRecipient(e.email),
343
344
  onClick: s,
344
- children: /* @__PURE__ */ Y(de, { className: "size-icon" })
345
- }), c && /* @__PURE__ */ Y(T, {
345
+ children: /* @__PURE__ */ X(fe, { className: "size-icon" })
346
+ }), c && /* @__PURE__ */ X(E, {
346
347
  type: "button",
347
348
  iconOnly: !0,
348
349
  size: "sm",
@@ -350,38 +351,38 @@ function be({ recipient: e, field: t, index: n, options: r, busy: i, strings: a,
350
351
  "aria-label": a.addRecipient(t),
351
352
  title: a.addRecipient(t),
352
353
  onClick: c,
353
- children: /* @__PURE__ */ Y(Z, { className: "size-icon" })
354
+ children: /* @__PURE__ */ X(le, { className: "size-icon" })
354
355
  })]
355
356
  })]
356
357
  });
357
358
  }
358
- function xe({ field: e, value: t, options: n = {}, busy: r, strings: i, onChange: o, error: s, actions: c, report: l }) {
359
- let [u, d] = q(!1), [f, p] = q(""), m = W(), h = s ? `${m}-error` : void 0, g = K(null), _ = n.mode !== "disabled" && n.allowAdd !== !1 && (n.mode !== "readonly" || n.allowAdd === !0), v = u || t.length === 0, y = Q(n), C = () => {
359
+ function Se({ field: e, value: t, options: n = {}, busy: r, strings: i, onChange: o, error: s, actions: c, report: l }) {
360
+ let [u, d] = J(!1), [f, p] = J(""), m = G(), h = s ? `${m}-error` : void 0, g = q(null), _ = n.mode !== "disabled" && n.allowAdd !== !1 && (n.mode !== "readonly" || n.allowAdd === !0), v = u || t.length === 0, y = Q(n), b = () => {
360
361
  if (r || !_ || !v || y) return;
361
- let e = z(f);
362
+ let e = B(f);
362
363
  f.trim() && !t.some((t) => t.email.toLowerCase() === e.email.toLowerCase()) && o([...t, e]), p(""), d(!1);
363
364
  };
364
- U(() => {
365
+ W(() => {
365
366
  u && g.current?.focus();
366
367
  }, [u]);
367
- let E = () => {
368
- v && C(), d(!0), g.current?.focus();
368
+ let w = () => {
369
+ v && b(), d(!0), g.current?.focus();
369
370
  };
370
- return /* @__PURE__ */ Y(b, {
371
+ return /* @__PURE__ */ X(x, {
371
372
  label: i[e],
372
373
  required: e === "to",
373
374
  error: s,
374
375
  supportingTextId: h,
375
376
  htmlFor: t.length ? `${m}-0` : `${m}-new`,
376
- children: /* @__PURE__ */ X(a, {
377
+ children: /* @__PURE__ */ Z(a, {
377
378
  id: `${m}-group`,
378
379
  gap: "sm",
379
- children: [y ? /* @__PURE__ */ Y(ve, {
380
+ children: [y ? /* @__PURE__ */ X(ye, {
380
381
  state: n,
381
382
  label: i.loadingRecipients(i[e]),
382
383
  retryLabel: i.retry,
383
384
  report: l
384
- }) : /* @__PURE__ */ X(J, { children: [t.map((a, s) => /* @__PURE__ */ Y(be, {
385
+ }) : /* @__PURE__ */ Z(Y, { children: [t.map((a, s) => /* @__PURE__ */ X(xe, {
385
386
  id: `${m}-${s}`,
386
387
  errorId: h,
387
388
  recipient: a,
@@ -392,10 +393,10 @@ function xe({ field: e, value: t, options: n = {}, busy: r, strings: i, onChange
392
393
  strings: i,
393
394
  change: (e) => o(t.map((t, n) => n === s ? e : t)),
394
395
  remove: () => o(t.filter((e, t) => t !== s)),
395
- add: _ && !v && s === t.length - 1 ? E : void 0
396
- }, a.id ?? s)), v && /* @__PURE__ */ X(x, {
396
+ add: _ && !v && s === t.length - 1 ? w : void 0
397
+ }, a.id ?? s)), v && /* @__PURE__ */ Z(S, {
397
398
  className: "min-w-0 w-full",
398
- children: [/* @__PURE__ */ Y(S, {
399
+ children: [/* @__PURE__ */ X(C, {
399
400
  id: `${m}-new`,
400
401
  ref: g,
401
402
  autoFocus: e !== "to",
@@ -407,13 +408,13 @@ function xe({ field: e, value: t, options: n = {}, busy: r, strings: i, onChange
407
408
  disabled: r || n.mode === "disabled",
408
409
  readOnly: !_,
409
410
  onChange: (e) => p(e.target.value),
410
- onBlur: C,
411
+ onBlur: b,
411
412
  onKeyDown: (e) => {
412
- e.key === "Enter" && (e.preventDefault(), C()), e.key === "Escape" && (e.preventDefault(), p(""), d(!1));
413
+ e.key === "Enter" && (e.preventDefault(), b()), e.key === "Escape" && (e.preventDefault(), p(""), d(!1));
413
414
  }
414
- }), _ && /* @__PURE__ */ Y(w, {
415
+ }), _ && /* @__PURE__ */ X(T, {
415
416
  align: "inline-end",
416
- children: /* @__PURE__ */ Y(T, {
417
+ children: /* @__PURE__ */ X(E, {
417
418
  type: "button",
418
419
  iconOnly: !0,
419
420
  size: "sm",
@@ -421,11 +422,11 @@ function xe({ field: e, value: t, options: n = {}, busy: r, strings: i, onChange
421
422
  "aria-label": i.addRecipient(i[e]),
422
423
  title: i.addRecipient(i[e]),
423
424
  onMouseDown: (e) => e.preventDefault(),
424
- onClick: E,
425
- children: /* @__PURE__ */ Y(Z, { className: "size-icon" })
425
+ onClick: w,
426
+ children: /* @__PURE__ */ X(le, { className: "size-icon" })
426
427
  })
427
428
  })]
428
- })] }), c && /* @__PURE__ */ Y(a, {
429
+ })] }), c && /* @__PURE__ */ X(a, {
429
430
  direction: "horizontal",
430
431
  gap: "xs",
431
432
  justify: "end",
@@ -436,9 +437,9 @@ function xe({ field: e, value: t, options: n = {}, busy: r, strings: i, onChange
436
437
  }
437
438
  //#endregion
438
439
  //#region src/components/features/email-composer/partials/variables.tsx
439
- function Se({ definitions: e, values: t, draft: r, api: o, strings: s, busy: c, editable: l }) {
440
- let u = W();
441
- return /* @__PURE__ */ Y(i, {
440
+ function Ce({ definitions: e, values: t, draft: r, api: o, strings: s, busy: c, editable: l }) {
441
+ let u = G();
442
+ return /* @__PURE__ */ X(i, {
442
443
  minColumnWidth: "sm",
443
444
  gap: "md",
444
445
  children: Object.keys(e).map((i) => {
@@ -447,36 +448,36 @@ function Se({ definitions: e, values: t, draft: r, api: o, strings: s, busy: c,
447
448
  value: String(t[i] ?? ""),
448
449
  disabled: c,
449
450
  readOnly: !d.editable
450
- }, h = d.input === "textarea" ? /* @__PURE__ */ Y(C, {
451
+ }, h = d.input === "textarea" ? /* @__PURE__ */ X(w, {
451
452
  ...m,
452
453
  onChange: (e) => o.setPlaceholder(i, e.target.value)
453
- }) : d.input === "select" ? /* @__PURE__ */ Y(E, {
454
+ }) : d.input === "select" ? /* @__PURE__ */ X(D, {
454
455
  ...m,
455
456
  placeholder: s.choose,
456
457
  options: [...d.options ?? []],
457
458
  onValueChange: (e) => o.setPlaceholder(i, e ?? "")
458
- }) : /* @__PURE__ */ Y(y, {
459
+ }) : /* @__PURE__ */ X(b, {
459
460
  ...m,
460
461
  type: d.input === "number" ? "number" : d.input === "date" ? "date" : "text",
461
462
  onChange: (e) => o.setPlaceholder(i, d.input === "number" && e.target.value !== "" ? Number(e.target.value) : e.target.value)
462
463
  });
463
- return /* @__PURE__ */ Y(b, {
464
+ return /* @__PURE__ */ X(x, {
464
465
  label: d.group ? `${d.group} · ${d.label}` : d.label,
465
466
  htmlFor: p,
466
467
  required: d.required,
467
468
  helperText: `${f ? s.overridden : s.dynamic}${d.description ? ` · ${d.description}` : ""}`,
468
- children: /* @__PURE__ */ X(a, {
469
+ children: /* @__PURE__ */ Z(a, {
469
470
  id: `${p}-group`,
470
471
  direction: "horizontal",
471
472
  gap: "sm",
472
473
  align: "start",
473
474
  wrap: !1,
474
475
  children: [
475
- /* @__PURE__ */ Y("div", {
476
+ /* @__PURE__ */ X("div", {
476
477
  className: "min-w-0 flex-1",
477
478
  children: h
478
479
  }),
479
- /* @__PURE__ */ Y(n, {
480
+ /* @__PURE__ */ X(n, {
480
481
  type: "button",
481
482
  iconOnly: !0,
482
483
  size: "sm",
@@ -485,9 +486,9 @@ function Se({ definitions: e, values: t, draft: r, api: o, strings: s, busy: c,
485
486
  disabled: c || !l,
486
487
  "aria-label": s.insertVariable(d.label),
487
488
  onClick: () => o.insertPlaceholder(i),
488
- children: /* @__PURE__ */ Y(Z, { className: "size-icon" })
489
+ children: /* @__PURE__ */ X(le, { className: "size-icon" })
489
490
  }),
490
- f && /* @__PURE__ */ Y(n, {
491
+ f && /* @__PURE__ */ X(n, {
491
492
  type: "button",
492
493
  size: "sm",
493
494
  buttonStyle: "ghost",
@@ -504,7 +505,7 @@ function Se({ definitions: e, values: t, draft: r, api: o, strings: s, busy: c,
504
505
  }
505
506
  //#endregion
506
507
  //#region src/components/features/email-composer/partials/body-editor.tsx
507
- var Ce = pe.create({
508
+ var we = me.create({
508
509
  name: "placeholderToken",
509
510
  group: "inline",
510
511
  inline: !0,
@@ -516,7 +517,7 @@ var Ce = pe.create({
516
517
  parseHTML: () => [{ tag: "span[data-placeholder]" }],
517
518
  renderHTML: ({ node: e, HTMLAttributes: t }) => [
518
519
  "span",
519
- he(t, {
520
+ ge(t, {
520
521
  "data-placeholder": e.attrs.key,
521
522
  class: "rounded-inner bg-accent text-accent-foreground",
522
523
  contenteditable: "false"
@@ -524,27 +525,27 @@ var Ce = pe.create({
524
525
  `{{${e.attrs.key}}}`
525
526
  ],
526
527
  renderText: ({ node: e }) => `{{${e.attrs.key}}}`
527
- }), $ = [_e.configure({ link: { openOnClick: !1 } }), Ce];
528
- function we({ body: n, disabled: r, onChange: i, adapterRef: c, strings: l }) {
529
- let u = K(i);
528
+ }), $ = [ve.configure({ link: { openOnClick: !1 } }), we];
529
+ function Te({ body: n, disabled: r, onChange: i, adapterRef: c, strings: l }) {
530
+ let u = q(i);
530
531
  u.current = i;
531
- let d = K(!1), [f, p] = q(!1), [m, g] = q(""), [v, x] = q(""), S = K({
532
+ let d = q(!1), [f, p] = J(!1), [m, h] = J(""), [_, y] = J(""), S = q({
532
533
  from: 1,
533
534
  to: 1
534
- }), C = e(M, {
535
+ }), C = e(N, {
535
536
  editorLabel: l.body,
536
537
  toolbar: l.toolbar
537
- }), w = ge({
538
+ }), w = _e({
538
539
  extensions: $,
539
540
  immediatelyRender: !1,
540
541
  shouldRerenderOnTransaction: !0,
541
- content: n.kind === "rich" ? n.document : P(n),
542
+ content: n.kind === "rich" ? n.document : F(n),
542
543
  editable: !r,
543
544
  editorProps: { attributes: {
544
545
  role: "textbox",
545
546
  "aria-label": l.body,
546
547
  "aria-multiline": "true",
547
- class: _
548
+ class: v
548
549
  } },
549
550
  onUpdate: ({ editor: e }) => {
550
551
  d.current || u.current({
@@ -553,20 +554,20 @@ function we({ body: n, disabled: r, onChange: i, adapterRef: c, strings: l }) {
553
554
  });
554
555
  }
555
556
  });
556
- U(() => {
557
+ W(() => {
557
558
  if (w) try {
558
- let e = n.kind === "rich" ? w.schema.nodeFromJSON(n.document).toJSON() : me(P(n), $);
559
+ let e = n.kind === "rich" ? w.schema.nodeFromJSON(n.document).toJSON() : he(F(n), $);
559
560
  JSON.stringify(w.getJSON()) !== JSON.stringify(e) && w.commands.setContent(e, { emitUpdate: !1 });
560
561
  } catch {}
561
- }), U(() => {
562
+ }), W(() => {
562
563
  w?.setEditable(!r && n.kind !== "html", !1);
563
564
  }, [
564
565
  w,
565
566
  r,
566
567
  n.kind
567
- ]), U(() => {
568
+ ]), W(() => {
568
569
  (r || n.kind === "html") && p(!1);
569
- }, [r, n.kind]), G(c, () => {
570
+ }, [r, n.kind]), K(c, () => {
570
571
  let e = (e) => {
571
572
  if (!w) throw Error(l.editorNotReady);
572
573
  d.current = !0;
@@ -582,7 +583,7 @@ function we({ body: n, disabled: r, onChange: i, adapterRef: c, strings: l }) {
582
583
  return {
583
584
  synchronize: (e) => {
584
585
  if (!w) return;
585
- let t = e.kind === "rich" ? w.schema.nodeFromJSON(e.document).toJSON() : me(P(e), $);
586
+ let t = e.kind === "rich" ? w.schema.nodeFromJSON(e.document).toJSON() : he(F(e), $);
586
587
  JSON.stringify(w.getJSON()) !== JSON.stringify(t) && w.commands.setContent(t, { emitUpdate: !1 });
587
588
  },
588
589
  focus: () => {
@@ -590,10 +591,10 @@ function we({ body: n, disabled: r, onChange: i, adapterRef: c, strings: l }) {
590
591
  },
591
592
  convert: (e) => ({
592
593
  kind: "rich",
593
- document: e.kind === "rich" ? e.document : me(P(e), $)
594
+ document: e.kind === "rich" ? e.document : he(F(e), $)
594
595
  }),
595
596
  insert: (t, n) => e(() => {
596
- n === "append" && w.commands.focus("end"), w.chain().focus().insertContent(t.kind === "rich" ? t.document.content ?? [] : P(t)).run();
597
+ n === "append" && w.commands.focus("end"), w.chain().focus().insertContent(t.kind === "rich" ? t.document.content ?? [] : F(t)).run();
597
598
  }),
598
599
  insertText: (t) => e(() => {
599
600
  t && w.chain().focus().insertContent({
@@ -648,7 +649,7 @@ function we({ body: n, disabled: r, onChange: i, adapterRef: c, strings: l }) {
648
649
  },
649
650
  {
650
651
  id: "undo",
651
- icon: ue,
652
+ icon: de,
652
653
  label: C.toolbar.undo,
653
654
  isActive: () => !1,
654
655
  run: () => {
@@ -658,7 +659,7 @@ function we({ body: n, disabled: r, onChange: i, adapterRef: c, strings: l }) {
658
659
  },
659
660
  {
660
661
  id: "redo",
661
- icon: le,
662
+ icon: ue,
662
663
  label: C.toolbar.redo,
663
664
  isActive: () => !1,
664
665
  run: () => {
@@ -667,11 +668,11 @@ function we({ body: n, disabled: r, onChange: i, adapterRef: c, strings: l }) {
667
668
  disabled: !w?.can().redo()
668
669
  }
669
670
  ];
670
- return /* @__PURE__ */ X(a, {
671
+ return /* @__PURE__ */ Z(a, {
671
672
  gap: "none",
672
- className: t("email-composer--editor", A.frame, r && A.disabled),
673
+ className: t("email-composer--editor", j.frame, r && j.disabled),
673
674
  children: [
674
- /* @__PURE__ */ Y(j, {
675
+ /* @__PURE__ */ X(M, {
675
676
  buttons: T,
676
677
  disabled: r,
677
678
  hasEditor: !!w,
@@ -687,15 +688,15 @@ function we({ body: n, disabled: r, onChange: i, adapterRef: c, strings: l }) {
687
688
  w && (S.current = {
688
689
  from: w.state.selection.from,
689
690
  to: w.state.selection.to
690
- }, g(String(w.getAttributes("link").href ?? "")), x(""), p(!0));
691
+ }, h(String(w.getAttributes("link").href ?? "")), y(""), p(!0));
691
692
  }
692
693
  }]
693
694
  }),
694
- /* @__PURE__ */ Y(fe, {
695
+ /* @__PURE__ */ X(pe, {
695
696
  editor: w,
696
- className: t(A.content, "min-h-64 w-full min-w-0 [&_.ProseMirror]:min-h-64")
697
+ className: t(j.content, "min-h-64 w-full min-w-0 [&_.ProseMirror]:min-h-64")
697
698
  }),
698
- /* @__PURE__ */ Y(h, {
699
+ /* @__PURE__ */ X(g, {
699
700
  open: f,
700
701
  onOpenChange: p,
701
702
  title: l.linkTitle,
@@ -708,22 +709,22 @@ function we({ body: n, disabled: r, onChange: i, adapterRef: c, strings: l }) {
708
709
  onAsyncConfirm: async () => {
709
710
  let e = m.trim();
710
711
  if (e && !/^(https?:\/\/|mailto:)/i.test(e)) {
711
- x(l.invalidLink);
712
+ y(l.invalidLink);
712
713
  return;
713
714
  }
714
715
  w?.commands.setTextSelection(S.current), e ? w?.chain().focus().extendMarkRange("link").setLink({ href: e }).run() : w?.chain().focus().extendMarkRange("link").unsetLink().run(), p(!1);
715
716
  },
716
- children: /* @__PURE__ */ X(a, {
717
+ children: /* @__PURE__ */ Z(a, {
717
718
  gap: "md",
718
- children: [/* @__PURE__ */ Y(b, {
719
+ children: [/* @__PURE__ */ X(x, {
719
720
  label: l.linkUrl,
720
- children: /* @__PURE__ */ Y(y, {
721
+ children: /* @__PURE__ */ X(b, {
721
722
  value: m,
722
- onChange: (e) => g(e.target.value)
723
+ onChange: (e) => h(e.target.value)
723
724
  })
724
- }), v && /* @__PURE__ */ Y(s, {
725
+ }), _ && /* @__PURE__ */ X(s, {
725
726
  tone: "destructive",
726
- children: /* @__PURE__ */ Y(o, { children: v })
727
+ children: /* @__PURE__ */ X(o, { children: _ })
727
728
  })]
728
729
  })
729
730
  })
@@ -732,21 +733,21 @@ function we({ body: n, disabled: r, onChange: i, adapterRef: c, strings: l }) {
732
733
  }
733
734
  //#endregion
734
735
  //#region src/components/features/email-composer/partials/html-preview.tsx
735
- function Te({ html: e, subject: t, strings: n }) {
736
- return /* @__PURE__ */ X(a, {
736
+ function Ee({ html: e, subject: t, strings: n }) {
737
+ return /* @__PURE__ */ Z(a, {
737
738
  gap: "normal",
738
739
  className: "min-w-0",
739
- children: [/* @__PURE__ */ X(r, {
740
+ children: [/* @__PURE__ */ Z(r, {
740
741
  type: "secondary",
741
742
  children: [
742
743
  n.subject,
743
744
  ": ",
744
745
  t
745
746
  ]
746
- }), /* @__PURE__ */ Y(c, {
747
+ }), /* @__PURE__ */ X(c, {
747
748
  surface: "card",
748
749
  padding: "none",
749
- children: /* @__PURE__ */ Y("iframe", {
750
+ children: /* @__PURE__ */ X("iframe", {
750
751
  title: n.previewLabel,
751
752
  sandbox: "",
752
753
  referrerPolicy: "no-referrer",
@@ -758,158 +759,158 @@ function Te({ html: e, subject: t, strings: n }) {
758
759
  }
759
760
  //#endregion
760
761
  //#region src/components/features/email-composer/email-composer.tsx
761
- function Ee(e) {
762
- let r = ye(e), { api: i, draft: u, strings: d, busy: _, state: x } = r, [S, C] = q("editor"), [w, T] = q(e.placeholders?.showEditor ?? !1), [E, A] = q(!1), [j, M] = q(!1), [N, P] = q(!1), F = W(), I = S === "preview" || u.body.kind === "html", L = (t) => (e.actions ?? []).filter((e) => (e.position ?? "toolbar") === t && (e.visible?.(x) ?? !0)).map((e) => ({
762
+ function De(e) {
763
+ let r = be(e), { api: i, draft: u, strings: d, busy: v, state: S } = r, [C, w] = J("editor"), [T, E] = J(e.placeholders?.showEditor ?? !1), [D, j] = J(!1), [M, N] = J(!1), [P, F] = J(!1), I = G(), L = C === "preview" || u.body.kind === "html", R = (t) => (e.actions ?? []).filter((e) => (e.position ?? "toolbar") === t && (e.visible?.(S) ?? !0)).map((e) => ({
763
764
  id: e.id,
764
765
  label: e.label,
765
766
  icon: e.icon,
766
- disabled: _ || e.disabled?.(x),
767
+ disabled: v || e.disabled?.(S),
767
768
  onClick: () => {
768
769
  r.runAction(e);
769
770
  },
770
771
  buttonStyle: "ghost",
771
772
  tone: "secondary"
772
- })), R = /* @__PURE__ */ X(a, {
773
+ })), z = /* @__PURE__ */ Z(a, {
773
774
  direction: {
774
775
  base: "vertical",
775
776
  sm: "horizontal"
776
777
  },
777
- gap: "sm",
778
+ gap: f.commands,
778
779
  align: {
779
780
  base: "stretch",
780
781
  sm: "center"
781
782
  },
782
783
  justify: "between",
783
784
  className: "w-full",
784
- children: [/* @__PURE__ */ X(a, {
785
+ children: [/* @__PURE__ */ Z(a, {
785
786
  direction: "horizontal",
786
- gap: "sm",
787
- children: [e.buttons?.discard !== !1 && /* @__PURE__ */ Y(n, {
787
+ gap: f.commands,
788
+ children: [e.buttons?.discard !== !1 && /* @__PURE__ */ X(n, {
788
789
  type: "button",
789
790
  tone: "secondary",
790
791
  buttonStyle: "ghost",
791
- disabled: _,
792
+ disabled: v,
792
793
  onClick: () => {
793
794
  i.discard();
794
795
  },
795
796
  children: e.buttons?.discard?.label ?? d.discard
796
- }), /* @__PURE__ */ Y(p, { actions: L("footer-start") })]
797
- }), /* @__PURE__ */ X(a, {
797
+ }), /* @__PURE__ */ X(m, { actions: R("footer-start") })]
798
+ }), /* @__PURE__ */ Z(a, {
798
799
  direction: "horizontal",
799
- gap: "sm",
800
+ gap: f.commands,
800
801
  justify: "end",
801
- children: [/* @__PURE__ */ Y(p, { actions: L("footer-end") }), (e.buttons?.send !== !1 || !!L("overflow").length) && /* @__PURE__ */ X(a, {
802
+ children: [/* @__PURE__ */ X(m, { actions: R("footer-end") }), (e.buttons?.send !== !1 || !!R("overflow").length) && /* @__PURE__ */ Z(a, {
802
803
  direction: "horizontal",
803
- gap: "sm",
804
+ gap: f.commands,
804
805
  wrap: !1,
805
806
  className: "email-composer--send-commands",
806
- children: [e.buttons?.send !== !1 && /* @__PURE__ */ Y(n, {
807
+ children: [e.buttons?.send !== !1 && /* @__PURE__ */ X(n, {
807
808
  type: "button",
808
809
  tone: "primary",
809
- disabled: _ || r.dataPending,
810
- loading: _,
810
+ disabled: v || r.dataPending,
811
+ loading: v,
811
812
  strings: { loading: d.working },
812
813
  onClick: () => {
813
814
  i.send();
814
815
  },
815
- children: _ ? d.working : e.buttons?.send?.label ?? d.send
816
- }), !!L("overflow").length && /* @__PURE__ */ Y(f, {
817
- actions: L("overflow"),
816
+ children: v ? d.working : e.buttons?.send?.label ?? d.send
817
+ }), !!R("overflow").length && /* @__PURE__ */ X(p, {
818
+ actions: R("overflow"),
818
819
  srText: d.more,
819
- buttonProps: { disabled: _ }
820
+ buttonProps: { disabled: v }
820
821
  })]
821
822
  })]
822
823
  })]
823
- }), z = (e) => r.attempted ? x.issues.find((t) => t.field === e)?.message : void 0, B = /* @__PURE__ */ X(a, {
824
+ }), B = (e) => r.attempted ? S.issues.find((t) => t.field === e)?.message : void 0, V = /* @__PURE__ */ Z(a, {
824
825
  gap: "lg",
825
826
  className: "email-composer--body min-w-0",
826
827
  children: [
827
- /* @__PURE__ */ X(a, {
828
+ /* @__PURE__ */ Z(a, {
828
829
  gap: "md",
829
830
  className: "email-composer--details",
830
- children: [/* @__PURE__ */ Y(a, {
831
+ children: [/* @__PURE__ */ X(a, {
831
832
  gap: "md",
832
833
  children: [
833
834
  "to",
834
835
  "cc",
835
836
  "bcc"
836
- ].filter((t) => t === "to" || t === "cc" && (E || u.cc.length || Q(e.recipients?.cc)) || t === "bcc" && (j || u.bcc.length || Q(e.recipients?.bcc))).map((t) => /* @__PURE__ */ Y(xe, {
837
+ ].filter((t) => t === "to" || t === "cc" && (D || u.cc.length || Q(e.recipients?.cc)) || t === "bcc" && (M || u.bcc.length || Q(e.recipients?.bcc))).map((t) => /* @__PURE__ */ X(Se, {
837
838
  field: t,
838
839
  value: u[t],
839
840
  options: e.recipients?.[t],
840
841
  strings: d,
841
- busy: _,
842
+ busy: v,
842
843
  report: r.report,
843
- error: z(t),
844
+ error: B(t),
844
845
  onChange: (e) => r.changeRecipients(t, e),
845
- actions: t === "to" ? /* @__PURE__ */ X(J, { children: [!E && !u.cc.length && /* @__PURE__ */ Y(n, {
846
+ actions: t === "to" ? /* @__PURE__ */ Z(Y, { children: [!D && !u.cc.length && /* @__PURE__ */ X(n, {
846
847
  type: "button",
847
848
  size: "sm",
848
849
  buttonStyle: "ghost",
849
850
  tone: "secondary",
850
- disabled: _,
851
- onClick: () => A(!0),
851
+ disabled: v,
852
+ onClick: () => j(!0),
852
853
  children: d.cc
853
- }), !j && !u.bcc.length && /* @__PURE__ */ Y(n, {
854
+ }), !M && !u.bcc.length && /* @__PURE__ */ X(n, {
854
855
  type: "button",
855
856
  size: "sm",
856
857
  buttonStyle: "ghost",
857
858
  tone: "secondary",
858
- disabled: _,
859
- onClick: () => M(!0),
859
+ disabled: v,
860
+ onClick: () => N(!0),
860
861
  children: d.bcc
861
862
  })] }) : void 0
862
863
  }, t))
863
- }), /* @__PURE__ */ Y(b, {
864
+ }), /* @__PURE__ */ X(x, {
864
865
  label: d.subject,
865
866
  required: !0,
866
- htmlFor: `${F}-subject`,
867
- error: z("subject"),
868
- supportingTextId: `${F}-subject-error`,
869
- children: /* @__PURE__ */ Y(y, {
870
- id: `${F}-subject`,
867
+ htmlFor: `${I}-subject`,
868
+ error: B("subject"),
869
+ supportingTextId: `${I}-subject-error`,
870
+ children: /* @__PURE__ */ X(b, {
871
+ id: `${I}-subject`,
871
872
  value: u.subject,
872
873
  readOnly: e.subject?.readOnly,
873
- disabled: _,
874
- invalid: !!z("subject"),
875
- "aria-describedby": z("subject") ? `${F}-subject-error` : void 0,
874
+ disabled: v,
875
+ invalid: !!B("subject"),
876
+ "aria-describedby": B("subject") ? `${I}-subject-error` : void 0,
876
877
  onChange: (e) => r.changeSubject(e.target.value)
877
878
  })
878
879
  })]
879
880
  }),
880
- /* @__PURE__ */ Y(ne, {
881
- value: I ? "preview" : "editor",
881
+ /* @__PURE__ */ X(te, {
882
+ value: L ? "preview" : "editor",
882
883
  onValueChange: (e) => {
883
- e && C(e);
884
+ e && w(e);
884
885
  },
885
- children: /* @__PURE__ */ X(c, {
886
+ children: /* @__PURE__ */ Z(c, {
886
887
  surface: "flat",
887
888
  padding: "none",
888
889
  contentGap: "md",
889
890
  titleSize: "sm",
890
891
  title: d.body,
891
- headerAction: /* @__PURE__ */ X(te, { children: [/* @__PURE__ */ Y(D, {
892
+ headerAction: /* @__PURE__ */ Z(ee, { children: [/* @__PURE__ */ X(k, {
892
893
  value: "editor",
893
894
  disabled: u.body.kind === "html",
894
895
  children: d.editor
895
- }), /* @__PURE__ */ Y(D, {
896
+ }), /* @__PURE__ */ X(k, {
896
897
  value: "preview",
897
898
  children: d.preview
898
899
  })] }),
899
900
  children: [
900
- (!!e.templates || !!r.templates.length || L("toolbar").length > 0) && /* @__PURE__ */ X(a, {
901
+ (!!e.templates || !!r.templates.length || R("toolbar").length > 0) && /* @__PURE__ */ Z(a, {
901
902
  direction: "horizontal",
902
- gap: "sm",
903
+ gap: f.commands,
903
904
  align: "center",
904
905
  className: "email-composer--message-actions",
905
906
  children: [
906
- (e.templates || !!r.templates.length) && /* @__PURE__ */ Y(k, {
907
- trigger: /* @__PURE__ */ Y(n, {
907
+ (e.templates || !!r.templates.length) && /* @__PURE__ */ X(ne, {
908
+ trigger: /* @__PURE__ */ X(n, {
908
909
  type: "button",
909
910
  tone: "secondary",
910
911
  buttonStyle: "outline",
911
912
  size: "sm",
912
- disabled: _,
913
+ disabled: v,
913
914
  children: d.templates
914
915
  }),
915
916
  items: r.templates.map((e) => ({
@@ -938,37 +939,37 @@ function Ee(e) {
938
939
  retry: d.retry
939
940
  }
940
941
  }),
941
- e.templates?.allowImport && e.templates.onImport && /* @__PURE__ */ Y(n, {
942
+ e.templates?.allowImport && e.templates.onImport && /* @__PURE__ */ X(n, {
942
943
  type: "button",
943
944
  tone: "secondary",
944
945
  buttonStyle: "ghost",
945
946
  size: "sm",
946
- disabled: _,
947
+ disabled: v,
947
948
  onClick: () => {
948
949
  r.importTemplate();
949
950
  },
950
951
  children: d.importTemplate
951
952
  }),
952
- /* @__PURE__ */ Y(p, {
953
+ /* @__PURE__ */ X(m, {
953
954
  size: "sm",
954
- actions: L("toolbar")
955
+ actions: R("toolbar")
955
956
  })
956
957
  ]
957
958
  }),
958
- /* @__PURE__ */ Y(O, {
959
+ /* @__PURE__ */ X(A, {
959
960
  value: "editor",
960
961
  keepMounted: !0,
961
- children: /* @__PURE__ */ Y(we, {
962
+ children: /* @__PURE__ */ X(Te, {
962
963
  body: u.body,
963
- disabled: _ || I,
964
+ disabled: v || L,
964
965
  onChange: r.changeBody,
965
966
  adapterRef: r.editorRef,
966
967
  strings: d
967
968
  })
968
969
  }),
969
- /* @__PURE__ */ Y(O, {
970
+ /* @__PURE__ */ X(A, {
970
971
  value: "preview",
971
- children: r.rendered && /* @__PURE__ */ Y(Te, {
972
+ children: r.rendered && /* @__PURE__ */ X(Ee, {
972
973
  html: r.rendered.email.html,
973
974
  subject: r.rendered.email.subject,
974
975
  strings: d
@@ -977,110 +978,110 @@ function Ee(e) {
977
978
  ]
978
979
  })
979
980
  }),
980
- (!!Object.keys(r.definitions).length || Q(e.placeholders)) && /* @__PURE__ */ Y(v, {
981
- value: w ? ["variables"] : [],
982
- onValueChange: (e) => T(e.includes("variables")),
981
+ (!!Object.keys(r.definitions).length || Q(e.placeholders)) && /* @__PURE__ */ X(y, {
982
+ value: T ? ["variables"] : [],
983
+ onValueChange: (e) => E(e.includes("variables")),
983
984
  items: [{
984
985
  value: "variables",
985
986
  title: d.variables,
986
987
  description: d.variablesDescription,
987
- content: Q(e.placeholders) ? /* @__PURE__ */ Y(ve, {
988
+ content: Q(e.placeholders) ? /* @__PURE__ */ X(ye, {
988
989
  state: e.placeholders,
989
990
  label: d.loadingVariables,
990
991
  retryLabel: d.retry,
991
992
  report: r.report
992
- }) : /* @__PURE__ */ Y(Se, {
993
+ }) : /* @__PURE__ */ X(Ce, {
993
994
  definitions: r.definitions,
994
995
  values: r.values,
995
996
  draft: u,
996
997
  api: i,
997
998
  strings: d,
998
- busy: _,
999
- editable: !I
999
+ busy: v,
1000
+ editable: !L
1000
1001
  })
1001
1002
  }]
1002
1003
  }),
1003
- u.body.kind === "html" && /* @__PURE__ */ Y(n, {
1004
+ u.body.kind === "html" && /* @__PURE__ */ X(n, {
1004
1005
  type: "button",
1005
1006
  tone: "secondary",
1006
1007
  buttonStyle: "outline",
1007
- disabled: _,
1008
- onClick: () => P(!0),
1008
+ disabled: v,
1009
+ onClick: () => F(!0),
1009
1010
  children: d.convert
1010
1011
  }),
1011
- (r.error || !r.dataPending && r.renderError) && /* @__PURE__ */ X(s, {
1012
+ (r.error || !r.dataPending && r.renderError) && /* @__PURE__ */ Z(s, {
1012
1013
  tone: "destructive",
1013
- children: [/* @__PURE__ */ Y(l, { children: d.errorTitle }), /* @__PURE__ */ Y(o, { children: r.error || r.renderError })]
1014
+ children: [/* @__PURE__ */ X(l, { children: d.errorTitle }), /* @__PURE__ */ X(o, { children: r.error || r.renderError })]
1014
1015
  }),
1015
- r.notice && /* @__PURE__ */ Y(s, {
1016
+ r.notice && /* @__PURE__ */ X(s, {
1016
1017
  tone: "success",
1017
1018
  role: "status",
1018
- children: /* @__PURE__ */ Y(o, { children: r.notice })
1019
+ children: /* @__PURE__ */ X(o, { children: r.notice })
1019
1020
  }),
1020
1021
  e.children?.(i)
1021
1022
  ]
1022
- }), V = e.title ?? d.title, H = e.onClose ? /* @__PURE__ */ Y(n, {
1023
+ }), H = e.title ?? d.title, U = e.onClose ? /* @__PURE__ */ X(n, {
1023
1024
  type: "button",
1024
1025
  iconOnly: !0,
1025
1026
  tone: "secondary",
1026
1027
  buttonStyle: "ghost",
1027
1028
  size: "sm",
1028
- disabled: _,
1029
+ disabled: v,
1029
1030
  "aria-label": d.close,
1030
1031
  onClick: e.onClose,
1031
- children: /* @__PURE__ */ Y(de, { className: "size-icon" })
1032
- }) : void 0, U, G = t("email-composer--component min-w-0", e.className);
1032
+ children: /* @__PURE__ */ X(fe, { className: "size-icon" })
1033
+ }) : void 0, W, K = t("email-composer--component min-w-0", e.className);
1033
1034
  if (e.position === "dialog" || e.position === "sheet") {
1034
1035
  let t = {
1035
1036
  open: !0,
1036
- title: V,
1037
+ title: H,
1037
1038
  description: e.description,
1038
1039
  onOpenChange: (t) => {
1039
- !t && !_ && e.onClose?.();
1040
+ !t && !v && e.onClose?.();
1040
1041
  },
1041
- closeOnEscape: !_ && !!e.onClose,
1042
+ closeOnEscape: !v && !!e.onClose,
1042
1043
  closeOnBackdropClick: !1,
1043
- loading: _,
1044
+ loading: v,
1044
1045
  strings: { close: d.close },
1045
1046
  showCancel: !1,
1046
1047
  showConfirm: !1,
1047
- showCloseButton: !!e.onClose && !_,
1048
- footer: R,
1049
- className: G
1048
+ showCloseButton: !!e.onClose && !v,
1049
+ footer: z,
1050
+ className: K
1050
1051
  };
1051
- U = e.position === "dialog" ? /* @__PURE__ */ Y(h, {
1052
+ W = e.position === "dialog" ? /* @__PURE__ */ X(g, {
1052
1053
  ...t,
1053
1054
  size: "3xl",
1054
- showCloseButton: !!e.onClose && !_,
1055
- children: B
1056
- }) : /* @__PURE__ */ Y(m, {
1055
+ showCloseButton: !!e.onClose && !v,
1056
+ children: V
1057
+ }) : /* @__PURE__ */ X(h, {
1057
1058
  ...t,
1058
1059
  width: "3xl",
1059
- children: B
1060
+ children: V
1060
1061
  });
1061
1062
  } else {
1062
- let t = /* @__PURE__ */ Y(c, {
1063
- className: G,
1063
+ let t = /* @__PURE__ */ X(c, {
1064
+ className: K,
1064
1065
  surface: "card",
1065
- title: V,
1066
+ title: H,
1066
1067
  description: e.description,
1067
- headerAction: H,
1068
- headerClassName: e.position === "floating" && H ? "flex-nowrap [&>.card--header-start]:basis-0 [&>.card--header-end]:shrink-0" : void 0,
1069
- footerSlot: R,
1070
- children: B
1068
+ headerAction: U,
1069
+ headerClassName: e.position === "floating" && U ? "flex-nowrap [&>.card--header-start]:basis-0 [&>.card--header-end]:shrink-0" : void 0,
1070
+ footerSlot: z,
1071
+ children: V
1071
1072
  });
1072
- U = e.position === "floating" ? /* @__PURE__ */ Y("div", {
1073
+ W = e.position === "floating" ? /* @__PURE__ */ X("div", {
1073
1074
  className: "fixed bottom-space-md end-space-md z-40 w-[min(42rem,calc(100vw-2rem))]",
1074
- children: /* @__PURE__ */ Y(ee, {
1075
+ children: /* @__PURE__ */ X(O, {
1075
1076
  className: "max-h-[calc(100dvh-2rem)]",
1076
1077
  viewportClassName: "max-h-[calc(100dvh-2rem)]",
1077
1078
  children: t
1078
1079
  })
1079
1080
  }) : t;
1080
1081
  }
1081
- return /* @__PURE__ */ X(J, { children: [U, /* @__PURE__ */ Y(g, {
1082
- open: N,
1083
- onOpenChange: P,
1082
+ return /* @__PURE__ */ Z(Y, { children: [W, /* @__PURE__ */ X(_, {
1083
+ open: P,
1084
+ onOpenChange: F,
1084
1085
  title: d.convertTitle,
1085
1086
  description: d.convertDescription,
1086
1087
  strings: {
@@ -1089,11 +1090,11 @@ function Ee(e) {
1089
1090
  close: d.closeConversion
1090
1091
  },
1091
1092
  onConfirm: () => {
1092
- !_ && r.editorRef.current && (i.setBody(r.editorRef.current.convert(u.body)), C("editor"));
1093
+ !v && r.editorRef.current && (i.setBody(r.editorRef.current.convert(u.body)), w("editor"));
1093
1094
  }
1094
1095
  })] });
1095
1096
  }
1096
1097
  //#endregion
1097
- export { Ee as EmailComposer, P as bodyHtml, V as createHttpSender, H as defaultEmailComposerStrings, z as parseRecipient, F as recipientLabel, N as renderEmail, R as resolveValues, B as validate };
1098
+ export { De as EmailComposer, F as bodyHtml, H as createHttpSender, U as defaultEmailComposerStrings, B as parseRecipient, I as recipientLabel, P as renderEmail, z as resolveValues, V as validate };
1098
1099
 
1099
1100
  //# sourceMappingURL=email-composer.js.map