@oneclick.dev/cms-core-modules 0.0.123 → 0.0.125

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 (223) hide show
  1. package/dist/AppointmentListTable-CWzbwqR-.js +1 -0
  2. package/dist/AppointmentListTable-DoZuBstk.mjs +270 -0
  3. package/dist/ContentEditor-BlNbqkAz.js +324 -0
  4. package/dist/{ContentEditor-MDGolnIP.mjs → ContentEditor-D754iLJS.mjs} +7985 -26820
  5. package/dist/{Detail-Dk8E6_uF.mjs → Detail-BOxWQ1QQ.mjs} +15 -14
  6. package/dist/{Detail-Cn9Bk0u0.mjs → Detail-BfKW0uZE.mjs} +26 -25
  7. package/dist/Detail-DFVu2F38.mjs +11 -0
  8. package/dist/Detail-DJea_fCd.js +1 -0
  9. package/dist/Detail-DPJacXfm.js +1 -0
  10. package/dist/Detail-DSLZ7_bM.js +1 -0
  11. package/dist/Detail-DUGThL9Y.js +1 -0
  12. package/dist/{Detail-B_scnidb.mjs → Detail-D_LlEeHu.mjs} +35 -34
  13. package/dist/Editor-D4evcdhv.mjs +768 -0
  14. package/dist/Editor-gLLtuJbY.js +1 -0
  15. package/dist/FormStatusBadge.vue_vue_type_script_setup_true_lang-BjKpsqT9.js +1 -0
  16. package/dist/FormStatusBadge.vue_vue_type_script_setup_true_lang-D5v5AhLe.mjs +76 -0
  17. package/dist/Knowledge-B66vxz--.js +1 -0
  18. package/dist/Knowledge-BnMTTuJ7.mjs +742 -0
  19. package/dist/Overview-0hFXiuYo.js +1 -0
  20. package/dist/Overview-BE4uYPx0.mjs +745 -0
  21. package/dist/Overview-BTx5LF4J.js +1 -0
  22. package/dist/Overview-CCu2PHai.mjs +289 -0
  23. package/dist/Overview-CQRpFhbJ.mjs +286 -0
  24. package/dist/Overview-CTs7sX4d.js +1 -0
  25. package/dist/Overview-Cj89XXKN.js +1 -0
  26. package/dist/Overview-D2u-leeO.js +1 -0
  27. package/dist/Overview-D_2wozCG.mjs +1733 -0
  28. package/dist/Overview-D_c18mbR.mjs +248 -0
  29. package/dist/Overview-Dffo-zH4.mjs +11 -0
  30. package/dist/Overview-g4Rcj245.js +1 -0
  31. package/dist/{TableCalculationWidget-CrqcLGfU.mjs → TableCalculationWidget-B_LFoOYm.mjs} +3 -3
  32. package/dist/{TableCalculationWidget-CkQPrVUd.js → TableCalculationWidget-CahOIcbk.js} +1 -1
  33. package/dist/TableDataWidget-BwqWFH4A.js +1 -0
  34. package/dist/TableDataWidget-RsVxcDsL.mjs +112 -0
  35. package/dist/TableOverviewCard-BPWCqo56.js +1 -0
  36. package/dist/{TableOverviewCard-Ci0d4o4w.mjs → TableOverviewCard-D667DDag.mjs} +113 -127
  37. package/dist/TableResultView.vue_vue_type_script_setup_true_lang-C3XiOXgb.js +1 -0
  38. package/dist/TableResultView.vue_vue_type_script_setup_true_lang-sp0TLio0.mjs +547 -0
  39. package/dist/{TableRowActionCard-BhdnnPaq.mjs → TableRowActionCard-BPYJ-Kjy.mjs} +95 -101
  40. package/dist/TableRowActionCard-Bnqj1YIe.js +1 -0
  41. package/dist/TableView-CwhZ9YN2.js +4 -0
  42. package/dist/TableView-DX9PKS8N.mjs +9673 -0
  43. package/dist/TemplateBuilder.vue_vue_type_script_setup_true_lang-BgDdzbLe.js +1 -0
  44. package/dist/TemplateBuilder.vue_vue_type_script_setup_true_lang-D85V4nrQ.mjs +2886 -0
  45. package/dist/Test-CzmOmi53.mjs +447 -0
  46. package/dist/Test-USDtNFY1.js +1 -0
  47. package/dist/UserDetail-DpUL3mhk.mjs +1483 -0
  48. package/dist/UserDetail-KRIfxaYd.js +1 -0
  49. package/dist/cms-core-modules.css +1 -1
  50. package/dist/dateRangePresets-CaPVagHY.mjs +453 -0
  51. package/dist/dateRangePresets-gxQCiZ6c.js +1 -0
  52. package/dist/index-6hZ6MYY6.js +1 -0
  53. package/dist/index-BVmmicu3.mjs +14 -0
  54. package/dist/index-CQuN5rKx.js +1 -0
  55. package/dist/index-ChHD_1Cf.js +144 -0
  56. package/dist/index-CnDGeInm.js +1 -0
  57. package/dist/index-CqDTc5Ig.mjs +20 -0
  58. package/dist/index-CvV4nVWI.js +1 -0
  59. package/dist/index-CyvvAdt4.js +1 -0
  60. package/dist/index-DH2z0W_w.mjs +19012 -0
  61. package/dist/index-DIRD7t5_.mjs +20 -0
  62. package/dist/index-DZKzj48V.mjs +17 -0
  63. package/dist/index-OJuBYR60.mjs +57 -0
  64. package/dist/index.cjs.js +1 -1
  65. package/dist/index.mjs +480 -103
  66. package/dist/orders-C_sz8J9b.js +1 -0
  67. package/dist/{orders-BfTLIm7U.mjs → orders-Cgdggzvx.mjs} +84 -84
  68. package/dist/server-handlers.cjs.js +1 -1
  69. package/dist/server-handlers.mjs +2696 -605
  70. package/dist/src/appointments/chat-components/AppointmentListTable.vue.d.ts +3 -0
  71. package/dist/src/appointments/index.d.ts +93 -3
  72. package/dist/src/appointments/reservation-summary.d.ts +48 -0
  73. package/dist/src/appointments/server.d.ts +1 -0
  74. package/dist/src/appointments/tools.d.ts +93 -3
  75. package/dist/src/contentManager/components/content-editor/tiptap-extensions/Container.d.ts +1 -1
  76. package/dist/src/contentManager/components/content-editor/tiptap-extensions/Row.d.ts +7 -0
  77. package/dist/src/contentManager/components/content-editor/tiptap-extensions/Stack.d.ts +7 -0
  78. package/dist/src/contentManager/components/content-editor/tiptap-extensions/helpers/resizeHistory.d.ts +9 -0
  79. package/dist/src/contentManager/components/content-editor/tiptap-menus/ElementEditorMenu.vue.d.ts +3 -1
  80. package/dist/src/filezone/config.d.ts +31 -0
  81. package/dist/src/filezone/index.d.ts +43 -0
  82. package/dist/src/filezone/index.vue.d.ts +2 -0
  83. package/dist/src/filezone/metadata.d.ts +2 -0
  84. package/dist/src/filezone/pages/Overview.vue.d.ts +4 -0
  85. package/dist/src/filezone/permissions.d.ts +5 -0
  86. package/dist/src/filezone/routes.d.ts +5 -0
  87. package/dist/src/filezone/server.d.ts +36 -0
  88. package/dist/src/firebaseAuthManager/components/DeleteUserDialog.vue.d.ts +25 -0
  89. package/dist/src/firebaseAuthManager/components/ReasonActionDialog.vue.d.ts +23 -0
  90. package/dist/src/firebaseAuthManager/components/UserStatusBadge.vue.d.ts +5 -0
  91. package/dist/src/firebaseAuthManager/config.d.ts +151 -0
  92. package/dist/src/firebaseAuthManager/index.d.ts +163 -0
  93. package/dist/src/firebaseAuthManager/index.vue.d.ts +14 -0
  94. package/dist/src/firebaseAuthManager/metadata.d.ts +2 -0
  95. package/dist/src/firebaseAuthManager/pages/Overview.vue.d.ts +2 -0
  96. package/dist/src/firebaseAuthManager/pages/UserDetail.vue.d.ts +2 -0
  97. package/dist/src/firebaseAuthManager/permissions.d.ts +5 -0
  98. package/dist/src/firebaseAuthManager/routes.d.ts +5 -0
  99. package/dist/src/firebaseAuthManager/server.d.ts +162 -0
  100. package/dist/src/firebaseAuthManager/types.d.ts +84 -0
  101. package/dist/src/formBuilder/components/FormPreviewDialog.vue.d.ts +12 -0
  102. package/dist/src/formBuilder/components/FormStatusBadge.vue.d.ts +9 -0
  103. package/dist/src/formBuilder/config.d.ts +31 -0
  104. package/dist/src/formBuilder/index.d.ts +44 -0
  105. package/dist/src/formBuilder/index.vue.d.ts +14 -0
  106. package/dist/src/formBuilder/lib/forms.d.ts +11 -0
  107. package/dist/src/formBuilder/metadata.d.ts +2 -0
  108. package/dist/src/formBuilder/pages/Editor.vue.d.ts +2 -0
  109. package/dist/src/formBuilder/pages/Overview.vue.d.ts +2 -0
  110. package/dist/src/formBuilder/permissions.d.ts +5 -0
  111. package/dist/src/formBuilder/routes.d.ts +5 -0
  112. package/dist/src/formBuilder/server.d.ts +87 -0
  113. package/dist/src/formBuilder/tools.d.ts +1 -0
  114. package/dist/src/formBuilder/types.d.ts +46 -0
  115. package/dist/src/helpbot/composables/useHelpbotApi.d.ts +18 -0
  116. package/dist/src/helpbot/config.d.ts +17 -0
  117. package/dist/src/helpbot/index.d.ts +29 -0
  118. package/dist/src/helpbot/index.vue.d.ts +2 -0
  119. package/dist/src/helpbot/metadata.d.ts +2 -0
  120. package/dist/src/helpbot/pages/Knowledge.vue.d.ts +4 -0
  121. package/dist/src/helpbot/pages/Overview.vue.d.ts +2 -0
  122. package/dist/src/helpbot/pages/Test.vue.d.ts +4 -0
  123. package/dist/src/helpbot/permissions.d.ts +5 -0
  124. package/dist/src/helpbot/routes.d.ts +5 -0
  125. package/dist/src/helpbot/types.d.ts +42 -0
  126. package/dist/src/index.d.ts +5 -0
  127. package/dist/src/mailTemplates/builder-types.d.ts +40 -0
  128. package/dist/src/mailTemplates/components/BlockRenderer.vue.d.ts +24 -0
  129. package/dist/src/mailTemplates/components/DesignPanel.vue.d.ts +13 -0
  130. package/dist/src/mailTemplates/components/EmailCanvas.vue.d.ts +44 -0
  131. package/dist/src/mailTemplates/components/RichTextEditor.vue.d.ts +10 -0
  132. package/dist/src/mailTemplates/components/RightSidebar.vue.d.ts +18 -0
  133. package/dist/src/mailTemplates/components/SettingsPanel.vue.d.ts +15 -0
  134. package/dist/src/mailTemplates/components/TemplateBuilder.vue.d.ts +2 -0
  135. package/dist/src/mailTemplates/components/TemplateList.vue.d.ts +19 -1
  136. package/dist/src/mailTemplates/components/rich-text.d.ts +6 -0
  137. package/dist/src/mailTemplates/config.d.ts +10 -4
  138. package/dist/src/mailTemplates/defaults.d.ts +10 -0
  139. package/dist/src/mailTemplates/editor-state.d.ts +21 -0
  140. package/dist/src/mailTemplates/index.d.ts +11 -5
  141. package/dist/src/mailTemplates/index.vue.d.ts +2 -4
  142. package/dist/src/mailTemplates/metadata.d.ts +1 -1
  143. package/dist/src/mailTemplates/pages/Detail.vue.d.ts +1 -13
  144. package/dist/src/mailTemplates/pages/Overview.vue.d.ts +1 -13
  145. package/dist/src/mailTemplates/server.d.ts +23 -0
  146. package/dist/src/server-handlers.d.ts +6 -0
  147. package/dist/src/table/badge-filter-utils.d.ts +8 -0
  148. package/dist/src/table/chat-components/TableOverviewCard.vue.d.ts +2 -7
  149. package/dist/src/table/chat-components/TableResultView.vue.d.ts +3 -7
  150. package/dist/src/table/components/TableDisplayCell.vue.d.ts +8 -0
  151. package/dist/src/table/components/columns/BadgeColumnSettings.vue.d.ts +9 -0
  152. package/dist/src/table/components/columns/ColumnColorSelect.vue.d.ts +11 -0
  153. package/dist/src/table/components/columns/ColumnDisplaySettings.vue.d.ts +9 -0
  154. package/dist/src/table/components/columns/ColumnTypeSelect.vue.d.ts +11 -0
  155. package/dist/src/table/components/columns/ColumnValueSourceInput.vue.d.ts +15 -0
  156. package/dist/src/table/components/columns/DialogTableColumnItem.vue.d.ts +8 -11
  157. package/dist/src/table/components/columns/ProgressColumnSettings.vue.d.ts +8 -0
  158. package/dist/src/table/components/stats/StatDialog.vue.d.ts +6 -10
  159. package/dist/src/table/components/stats/Stats.vue.d.ts +9 -15
  160. package/dist/src/table/composables/useTableClock.d.ts +4 -0
  161. package/dist/src/table/display-utils.d.ts +35 -0
  162. package/dist/src/table/row-value.d.ts +1 -0
  163. package/dist/src/table/stat-utils.d.ts +9 -0
  164. package/dist/src/table/tool-utils.d.ts +1 -1
  165. package/dist/src/table/types.d.ts +54 -1
  166. package/dist/src/whatsappBusiness/analytics.d.ts +4 -0
  167. package/dist/src/whatsappBusiness/components/AccountPanel.vue.d.ts +2 -0
  168. package/dist/src/whatsappBusiness/components/InsightsPanel.vue.d.ts +5 -0
  169. package/dist/src/whatsappBusiness/components/TemplateDialog.vue.d.ts +14 -0
  170. package/dist/src/whatsappBusiness/components/TemplatesPanel.vue.d.ts +5 -0
  171. package/dist/src/whatsappBusiness/components/presentation.d.ts +4 -0
  172. package/dist/src/whatsappBusiness/config.d.ts +51 -0
  173. package/dist/src/whatsappBusiness/connection.d.ts +77 -0
  174. package/dist/src/whatsappBusiness/index.d.ts +63 -0
  175. package/dist/src/whatsappBusiness/index.vue.d.ts +5 -0
  176. package/dist/src/whatsappBusiness/metadata.d.ts +2 -0
  177. package/dist/src/whatsappBusiness/pages/Overview.vue.d.ts +2 -0
  178. package/dist/src/whatsappBusiness/permissions.d.ts +5 -0
  179. package/dist/src/whatsappBusiness/provider.d.ts +21 -0
  180. package/dist/src/whatsappBusiness/routes.d.ts +5 -0
  181. package/dist/src/whatsappBusiness/server.d.ts +14 -0
  182. package/dist/src/whatsappBusiness/templates.d.ts +94 -0
  183. package/dist/src/whatsappBusiness/types.d.ts +162 -0
  184. package/dist/{tool-sandbox-DoF1PsyS.js → tool-sandbox-BSkKdH7V.js} +1 -1
  185. package/dist/{tool-sandbox-DdkMLkDK.mjs → tool-sandbox-DU9b1B7v.mjs} +1 -1
  186. package/dist/types-9N-DKxNj.mjs +250 -0
  187. package/dist/types-B5MifmeF.mjs +2696 -0
  188. package/dist/types-Cem0vPo_.js +1 -0
  189. package/dist/types-D5dgTskW.js +1 -0
  190. package/dist/useHelpbotApi-BIIungOh.js +1 -0
  191. package/dist/useHelpbotApi-HC9JSiSn.mjs +229 -0
  192. package/dist/{useTableAgentTools-D5mzGf3A.js → useTableAgentTools-BrUot49I.js} +1 -1
  193. package/dist/{useTableAgentTools-DcN3kYRL.mjs → useTableAgentTools-r5InEI4p.mjs} +8 -8
  194. package/dist/vee-validate-zod-CWZwNTWE.js +1 -0
  195. package/dist/vee-validate-zod-D0WaDgDZ.mjs +1780 -0
  196. package/package.json +2 -2
  197. package/src/appointments/tools.ts +52 -2
  198. package/src/formBuilder/tools.ts +1 -0
  199. package/dist/AppointmentListTable-DZJNmTMb.mjs +0 -177
  200. package/dist/AppointmentListTable-Dieu9US_.js +0 -1
  201. package/dist/ContentEditor-C-Wm48ai.js +0 -467
  202. package/dist/Detail-BCUUNWvp.js +0 -1
  203. package/dist/Detail-Byk781b4.mjs +0 -26
  204. package/dist/Detail-DGg_xXZc.js +0 -1
  205. package/dist/Detail-Sc2qZdxj.js +0 -1
  206. package/dist/Detail-mvSGbnFU.js +0 -1
  207. package/dist/Overview-BDlBCUI_.js +0 -1
  208. package/dist/Overview-Su8ZUbMs.mjs +0 -26
  209. package/dist/TableDataWidget-7qvC3Egd.js +0 -1
  210. package/dist/TableDataWidget-DMTSoGRO.mjs +0 -121
  211. package/dist/TableOverviewCard-AFq-puJs.js +0 -1
  212. package/dist/TableResultView.vue_vue_type_script_setup_true_lang-CBn-Oxl9.mjs +0 -534
  213. package/dist/TableResultView.vue_vue_type_script_setup_true_lang-C_Lv-SmJ.js +0 -1
  214. package/dist/TableRowActionCard-IzB6tNN-.js +0 -1
  215. package/dist/TableView-BkwoKREo.js +0 -4
  216. package/dist/TableView-C4Zyp8d7.mjs +0 -8228
  217. package/dist/TemplateList.vue_vue_type_script_setup_true_lang-B_AtWnHa.js +0 -1
  218. package/dist/TemplateList.vue_vue_type_script_setup_true_lang-Cmovy7kk.mjs +0 -40
  219. package/dist/dateRangePresets-B-l5b_wR.mjs +0 -48
  220. package/dist/dateRangePresets-CPWqst_x.js +0 -1
  221. package/dist/orders-DUa2PVoa.js +0 -1
  222. package/dist/vee-validate-zod-SjDT8X35.mjs +0 -4404
  223. package/dist/vee-validate-zod-VCmLnrtQ.js +0 -1
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),J=require("./index-ijdf0d9-.js"),a=require("lucide-vue-next"),B=require("@oneclick.dev/cms-kit"),s=require("./types-Cem0vPo_.js"),Se={class:"mx-auto flex w-full max-w-7xl flex-1 flex-col px-4 py-6 sm:px-6 sm:py-10 lg:px-8"},De={class:"flex flex-col gap-5 sm:flex-row sm:items-start sm:justify-between"},Ae={class:"max-w-2xl"},ze={class:"flex flex-wrap items-center gap-2"},Me={key:0,class:"mt-10 flex flex-1 items-center justify-center rounded-xl border border-dashed p-8"},Pe={class:"max-w-md text-center"},Ue={class:"mx-auto flex size-11 items-center justify-center rounded-full bg-muted"},Fe={class:"mt-8 border-b pb-5"},Re={class:"w-full max-w-2xl space-y-2"},Ie={class:"grid gap-2 sm:grid-cols-[8rem_minmax(0,1fr)_auto]"},Le={class:"relative min-w-0 flex-1"},$e={key:1,class:"mt-6 overflow-hidden rounded-xl border","aria-label":"Loading Firebase users"},je={class:"min-w-0 flex-1 space-y-2"},qe={class:"flex min-w-0 items-center gap-3"},He={class:"min-w-0"},Ge={class:"truncate font-medium"},Oe=["title"],Xe={class:"mt-2 flex flex-wrap gap-1 @2xl:hidden"},Ke={key:2,class:"text-sm text-muted-foreground"},We={class:"flex max-w-64 flex-wrap gap-1"},Ye={key:0,class:"text-sm text-muted-foreground"},Je={class:"mt-5 flex flex-col gap-3 text-sm text-muted-foreground sm:flex-row sm:items-center sm:justify-between"},Qe={key:0},Ze=e.defineComponent({__name:"Overview",setup(et){const{config:$}=B.useModule(),A=B.useModuleApi(),{navigateTo:C}=B.useModuleRoute(),{hasPermission:k}=B.useModulePermissions();B.useModuleBreadcrumbs(()=>[]);const u=e.ref([]),d=e.ref(!1),T=e.ref(""),z=e.ref(""),b=e.ref(""),m=e.ref(""),h=e.ref("uid"),E=e.ref("uid"),w=e.ref(null),g=e.ref(null),c=e.ref([]),i=e.ref(null),S=e.ref(!1),V=e.ref(""),M=e.computed(()=>k("view-auth-users")),p=e.computed(()=>k("view-auth-user-pii")),j=e.computed(()=>k("create-auth-users")),q=e.computed(()=>k("manage-auth-status")),H=e.computed(()=>k("manage-auth-sessions")),Q=e.computed(()=>q.value||H.value),P=e.computed(()=>!!$.linkFirestoreProfiles),Z=e.computed(()=>{const l=Number($.pageSize)||50;return Math.min(100,Math.max(10,l))}),ee=e.computed(()=>c.value.length+1);function U(l){return p.value?l.displayName||l.email||l.phoneNumber||"Unnamed user":`User ${l.uid.slice(0,8)}`}function F(l){return p.value&&(l.email||l.phoneNumber)||l.uid}async function f(l=w.value){if(!M.value)return!1;d.value=!0,T.value="";const t={limit:Z.value};l&&(t.pageToken=l),m.value&&(t.search=m.value,t.searchBy=E.value);try{const n=await A.get("/users",{query:t});return u.value=Array.isArray(n.users)?n.users:[],g.value=n.nextPageToken||null,w.value=l,!0}catch(n){return u.value=[],g.value=null,T.value=s.getReadableError(n,"Firebase Authentication users could not be loaded."),!1}finally{d.value=!1}}async function te(){m.value=b.value,E.value=h.value,c.value=[],w.value=null,await f(null)}async function G(){b.value="",m.value="",c.value=[],w.value=null,await f(null)}async function oe(){if(!g.value||d.value)return;const l=w.value;await f(g.value)&&c.value.push(l)}async function le(){if(c.value.length===0||d.value)return;const l=c.value[c.value.length-1]||null;await f(l)&&c.value.pop()}function ae(l){const t=l.disabled;i.value={user:l,kind:"status",disabled:!t,title:t?"Restore sign-in":"Suspend sign-in",description:t?"This user will be allowed to authenticate with the connected Firebase project again.":"This user will no longer be able to sign in or refresh their Firebase session.",confirmLabel:t?"Restore sign-in":"Suspend sign-in",destructive:!t},V.value=""}function ne(l){i.value={user:l,kind:"sessions",title:"Revoke all sessions",description:"All Firebase refresh tokens for this user will be revoked. Existing ID tokens can remain valid until they expire unless the connected app checks revocation.",confirmLabel:"Revoke sessions",destructive:!0},V.value=""}function O(l){l||(i.value=null,V.value="")}async function re(l){const t=i.value;if(!(!t||S.value)){S.value=!0,V.value="";try{let n;const r=s.encodeFirebaseUid(t.user.uid);t.kind==="status"?n=await A.post(`/users/${r}/status`,{body:{disabled:!!t.disabled,reason:l}}):n=await A.post(`/users/${r}/revoke-sessions`,{body:{reason:l}});const _=s.unwrapFirebaseAuthUser(n),D=u.value.findIndex(R=>R.uid===_.uid);D>=0&&(u.value[D]=_),J.toast.success(t.kind==="status"?_.disabled?"Sign-in suspended":"Sign-in restored":"Sessions revoked"),s.mutationAuditWasNotRecorded(n)&&(z.value="The account action completed, but Studio could not confirm that its activity entry was recorded.",J.toast.warning("Action completed without a confirmed activity entry")),O(!1)}catch(n){V.value=s.getReadableError(n,"The account action could not be completed.")}finally{S.value=!1}}}return e.onMounted(()=>{M.value&&f(null)}),(l,t)=>{const n=e.resolveComponent("Badge"),r=e.resolveComponent("Button"),_=e.resolveComponent("Label"),D=e.resolveComponent("SelectValue"),R=e.resolveComponent("SelectTrigger"),I=e.resolveComponent("SelectItem"),se=e.resolveComponent("SelectContent"),ie=e.resolveComponent("Select"),de=e.resolveComponent("Input"),X=e.resolveComponent("AlertTitle"),K=e.resolveComponent("AlertDescription"),W=e.resolveComponent("Alert"),y=e.resolveComponent("Skeleton"),ce=e.resolveComponent("EmptyMedia"),ue=e.resolveComponent("EmptyTitle"),me=e.resolveComponent("EmptyDescription"),pe=e.resolveComponent("EmptyHeader"),fe=e.resolveComponent("EmptyContent"),ve=e.resolveComponent("Empty"),v=e.resolveComponent("TableHead"),Y=e.resolveComponent("TableRow"),xe=e.resolveComponent("TableHeader"),Ne=e.resolveComponent("AvatarImage"),be=e.resolveComponent("AvatarFallback"),Ve=e.resolveComponent("Avatar"),x=e.resolveComponent("TableCell"),Ce=e.resolveComponent("DropdownMenuTrigger"),ke=e.resolveComponent("DropdownMenuLabel"),he=e.resolveComponent("DropdownMenuSeparator"),L=e.resolveComponent("DropdownMenuItem"),we=e.resolveComponent("DropdownMenuContent"),ge=e.resolveComponent("DropdownMenu"),_e=e.resolveComponent("TableBody"),ye=e.resolveComponent("Table"),Be=e.resolveComponent("Card"),Te=e.resolveComponent("ButtonGroupText"),Ee=e.resolveComponent("ButtonGroup");return e.openBlock(),e.createElementBlock("main",Se,[e.createElementVNode("header",De,[e.createElementVNode("div",Ae,[e.createElementVNode("div",ze,[t[8]||(t[8]=e.createElementVNode("h1",{class:"text-2xl font-semibold tracking-tight sm:text-3xl"},"Firebase users",-1)),e.createVNode(n,{variant:"outline",class:"gap-1.5"},{default:e.withCtx(()=>[...t[7]||(t[7]=[e.createElementVNode("span",{class:"size-1.5 rounded-full bg-emerald-500"},null,-1),e.createTextVNode(" Firebase integration configured ",-1)])]),_:1})]),t[9]||(t[9]=e.createElementVNode("p",{class:"mt-2 text-sm leading-6 text-muted-foreground sm:text-base"}," Find an exact identity, review access state, and perform accountable account actions. ",-1))]),j.value?(e.openBlock(),e.createBlock(r,{key:0,class:"w-full shrink-0 sm:w-auto",onClick:t[0]||(t[0]=o=>e.unref(C)("new"))},{default:e.withCtx(()=>[e.createVNode(e.unref(a.Plus),{class:"size-4"}),t[10]||(t[10]=e.createTextVNode(" New user ",-1))]),_:1})):e.createCommentVNode("",!0)]),M.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("section",Fe,[e.createElementVNode("form",{class:"flex flex-col gap-3 lg:flex-row lg:items-end lg:justify-between",onSubmit:e.withModifiers(te,["prevent"])},[e.createElementVNode("div",Re,[e.createVNode(_,{for:"firebase-auth-user-search"},{default:e.withCtx(()=>[...t[13]||(t[13]=[e.createTextVNode("Exact user search",-1)])]),_:1}),e.createElementVNode("div",Ie,[e.createVNode(ie,{modelValue:h.value,"onUpdate:modelValue":t[1]||(t[1]=o=>h.value=o)},{default:e.withCtx(()=>[e.createVNode(R,{"aria-label":"Search Firebase users by"},{default:e.withCtx(()=>[e.createVNode(D)]),_:1}),e.createVNode(se,null,{default:e.withCtx(()=>[e.createVNode(I,{value:"uid"},{default:e.withCtx(()=>[...t[14]||(t[14]=[e.createTextVNode("UID",-1)])]),_:1}),e.createVNode(I,{value:"email",disabled:!p.value},{default:e.withCtx(()=>[...t[15]||(t[15]=[e.createTextVNode("Email",-1)])]),_:1},8,["disabled"]),e.createVNode(I,{value:"phone",disabled:!p.value},{default:e.withCtx(()=>[...t[16]||(t[16]=[e.createTextVNode("Phone",-1)])]),_:1},8,["disabled"])]),_:1})]),_:1},8,["modelValue"]),e.createElementVNode("div",Le,[e.createVNode(e.unref(a.Search),{class:"pointer-events-none absolute left-3 top-1/2 size-4 -translate-y-1/2 text-muted-foreground"}),e.createVNode(de,{id:"firebase-auth-user-search",modelValue:b.value,"onUpdate:modelValue":t[2]||(t[2]=o=>b.value=o),type:"search",placeholder:h.value==="uid"?"Exact Firebase UID":h.value==="email"?"user@example.com":"+32470000000",class:"pl-9 pr-9",autocomplete:"off"},null,8,["modelValue","placeholder"]),b.value?(e.openBlock(),e.createBlock(r,{key:0,type:"button",variant:"ghost",size:"icon",class:"absolute right-0 top-0","aria-label":"Clear search",onClick:G},{default:e.withCtx(()=>[e.createVNode(e.unref(a.X),{class:"size-4"})]),_:1})):e.createCommentVNode("",!0)]),e.createVNode(r,{type:"submit",variant:"outline",class:"w-full sm:w-auto",disabled:d.value||!b.value},{default:e.withCtx(()=>[e.createVNode(e.unref(a.Search),{class:"size-4"}),t[17]||(t[17]=e.createTextVNode(" Search ",-1))]),_:1},8,["disabled"])]),t[18]||(t[18]=e.createElementVNode("p",{class:"text-xs text-muted-foreground"}," Choose the identifier type explicitly. Matching is exact; browse the directory with Previous and Next below. ",-1))]),e.createVNode(r,{type:"button",variant:"ghost",disabled:d.value,onClick:t[3]||(t[3]=o=>f())},{default:e.withCtx(()=>[e.createVNode(e.unref(a.RefreshCw),{class:e.normalizeClass(["size-4",{"animate-spin":d.value}])},null,8,["class"]),t[19]||(t[19]=e.createTextVNode(" Refresh ",-1))]),_:1},8,["disabled"])],32)]),z.value?(e.openBlock(),e.createBlock(W,{key:0,class:"mt-6 border-amber-400/60 bg-amber-50 dark:border-amber-800/70 dark:bg-amber-950/30"},{default:e.withCtx(()=>[e.createVNode(e.unref(a.ShieldAlert)),e.createVNode(X,null,{default:e.withCtx(()=>[...t[20]||(t[20]=[e.createTextVNode("Activity entry confirmation missing",-1)])]),_:1}),e.createVNode(K,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(z.value),1)]),_:1})]),_:1})):e.createCommentVNode("",!0),d.value?(e.openBlock(),e.createElementBlock("section",$e,[(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(6,o=>e.createElementVNode("div",{key:o,class:"flex items-center gap-4 border-b p-4 last:border-b-0"},[e.createVNode(y,{class:"size-10 shrink-0 rounded-full"}),e.createElementVNode("div",je,[e.createVNode(y,{class:"h-4 w-48 max-w-full"}),e.createVNode(y,{class:"h-3 w-72 max-w-full"})]),e.createVNode(y,{class:"hidden h-6 w-24 rounded-full sm:block"}),e.createVNode(y,{class:"size-8 rounded-md"})])),64))])):T.value?(e.openBlock(),e.createBlock(W,{key:2,variant:"destructive",class:"mt-6"},{default:e.withCtx(()=>[e.createVNode(e.unref(a.AlertCircle)),e.createVNode(X,null,{default:e.withCtx(()=>[...t[21]||(t[21]=[e.createTextVNode("Could not load Firebase users",-1)])]),_:1}),e.createVNode(K,{class:"flex flex-col items-start gap-3 sm:flex-row sm:items-center sm:justify-between"},{default:e.withCtx(()=>[e.createElementVNode("span",null,e.toDisplayString(T.value),1),e.createVNode(r,{variant:"outline",size:"sm",onClick:t[4]||(t[4]=o=>f())},{default:e.withCtx(()=>[e.createVNode(e.unref(a.RefreshCw),{class:"size-4"}),t[22]||(t[22]=e.createTextVNode(" Try again ",-1))]),_:1})]),_:1})]),_:1})):u.value.length===0?(e.openBlock(),e.createBlock(ve,{key:3,class:"mt-6 min-h-80 rounded-xl border border-dashed"},{default:e.withCtx(()=>[e.createVNode(pe,null,{default:e.withCtx(()=>[e.createVNode(ce,{variant:"icon"},{default:e.withCtx(()=>[e.createVNode(e.unref(a.Users))]),_:1}),e.createVNode(ue,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(m.value?"No exact user match":"No users on this page"),1)]),_:1}),e.createVNode(me,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(m.value?E.value==="uid"?"Check the complete Firebase UID and try again.":E.value==="email"?"Check the complete email address and try again.":"Check the complete E.164 phone number and try again.":"Create the first Authentication user or refresh this directory."),1)]),_:1})]),_:1}),e.createVNode(fe,null,{default:e.withCtx(()=>[m.value?(e.openBlock(),e.createBlock(r,{key:0,variant:"outline",onClick:G},{default:e.withCtx(()=>[...t[23]||(t[23]=[e.createTextVNode("Clear search",-1)])]),_:1})):j.value?(e.openBlock(),e.createBlock(r,{key:1,onClick:t[5]||(t[5]=o=>e.unref(C)("new"))},{default:e.withCtx(()=>[e.createVNode(e.unref(a.Plus),{class:"size-4"}),t[24]||(t[24]=e.createTextVNode(" New user ",-1))]),_:1})):e.createCommentVNode("",!0)]),_:1})]),_:1})):(e.openBlock(),e.createElementBlock(e.Fragment,{key:4},[e.createVNode(Be,{class:"mt-6 gap-0 overflow-hidden py-0"},{default:e.withCtx(()=>[e.createVNode(ye,{class:"table-fixed @2xl:table-auto"},{default:e.withCtx(()=>[e.createVNode(xe,null,{default:e.withCtx(()=>[e.createVNode(Y,null,{default:e.withCtx(()=>[e.createVNode(v,null,{default:e.withCtx(()=>[...t[25]||(t[25]=[e.createTextVNode("User",-1)])]),_:1}),e.createVNode(v,{class:"hidden @2xl:table-cell"},{default:e.withCtx(()=>[...t[26]||(t[26]=[e.createTextVNode("Access",-1)])]),_:1}),p.value?(e.openBlock(),e.createBlock(v,{key:0,class:"hidden @4xl:table-cell"},{default:e.withCtx(()=>[...t[27]||(t[27]=[e.createTextVNode("Verification",-1)])]),_:1})):e.createCommentVNode("",!0),e.createVNode(v,{class:"hidden @5xl:table-cell"},{default:e.withCtx(()=>[...t[28]||(t[28]=[e.createTextVNode("Providers",-1)])]),_:1}),e.createVNode(v,{class:"hidden @6xl:table-cell"},{default:e.withCtx(()=>[...t[29]||(t[29]=[e.createTextVNode("Last sign-in",-1)])]),_:1}),P.value?(e.openBlock(),e.createBlock(v,{key:1,class:"hidden @3xl:table-cell"},{default:e.withCtx(()=>[...t[30]||(t[30]=[e.createTextVNode("Profile",-1)])]),_:1})):e.createCommentVNode("",!0),e.createVNode(v,{class:"w-16 text-right"},{default:e.withCtx(()=>[...t[31]||(t[31]=[e.createElementVNode("span",{class:"sr-only"},"Actions",-1)])]),_:1})]),_:1})]),_:1}),e.createVNode(_e,null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(u.value,o=>(e.openBlock(),e.createBlock(Y,{key:o.uid,class:"cursor-pointer",onClick:N=>e.unref(C)(e.unref(s.firebaseAuthUserPath)(o.uid))},{default:e.withCtx(()=>[e.createVNode(x,null,{default:e.withCtx(()=>[e.createElementVNode("div",qe,[e.createVNode(Ve,{class:"size-10 shrink-0"},{default:e.withCtx(()=>[p.value&&o.photoURL?(e.openBlock(),e.createBlock(Ne,{key:0,src:o.photoURL,alt:U(o)},null,8,["src","alt"])):e.createCommentVNode("",!0),e.createVNode(be,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(p.value?e.unref(s.getUserInitials)(o):"U"),1)]),_:2},1024)]),_:2},1024),e.createElementVNode("div",He,[e.createElementVNode("p",Ge,e.toDisplayString(U(o)),1),e.createElementVNode("p",{class:"truncate text-xs text-muted-foreground",title:F(o)},e.toDisplayString(F(o)),9,Oe),e.createElementVNode("div",Xe,[e.createVNode(s._sfc_main,{disabled:o.disabled},null,8,["disabled"]),P.value?(e.openBlock(),e.createBlock(n,{key:0,variant:"outline",class:e.normalizeClass(o.profile?.enabled&&o.profile.exists?"border-emerald-400/60 text-emerald-700 dark:text-emerald-300":o.profile?.enabled?"border-amber-400/60 text-amber-700 dark:text-amber-300":"text-muted-foreground")},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.profile?.enabled?o.profile.exists?"Profile linked":"Profile missing":"Profile unavailable"),1)]),_:2},1032,["class"])):e.createCommentVNode("",!0)])])])]),_:2},1024),e.createVNode(x,{class:"hidden @2xl:table-cell"},{default:e.withCtx(()=>[e.createVNode(s._sfc_main,{disabled:o.disabled},null,8,["disabled"])]),_:2},1024),p.value?(e.openBlock(),e.createBlock(x,{key:0,class:"hidden @4xl:table-cell"},{default:e.withCtx(()=>[o.email&&o.emailVerified?(e.openBlock(),e.createBlock(n,{key:0,variant:"outline",class:"gap-1 text-emerald-700 dark:text-emerald-300"},{default:e.withCtx(()=>[e.createVNode(e.unref(a.ShieldCheck),{class:"size-3"}),t[32]||(t[32]=e.createTextVNode(" Verified ",-1))]),_:1})):o.email?(e.openBlock(),e.createBlock(n,{key:1,variant:"outline",class:"gap-1 text-amber-700 dark:text-amber-300"},{default:e.withCtx(()=>[e.createVNode(e.unref(a.ShieldX),{class:"size-3"}),t[33]||(t[33]=e.createTextVNode(" Unverified ",-1))]),_:1})):(e.openBlock(),e.createElementBlock("span",Ke,"No email"))]),_:2},1024)):e.createCommentVNode("",!0),e.createVNode(x,{class:"hidden @5xl:table-cell"},{default:e.withCtx(()=>[e.createElementVNode("div",We,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(o.providers,N=>(e.openBlock(),e.createBlock(n,{key:N,variant:"secondary"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(s.formatProvider)(N)),1)]),_:2},1024))),128)),o.providers.length===0?(e.openBlock(),e.createElementBlock("span",Ye,"None")):e.createCommentVNode("",!0)])]),_:2},1024),e.createVNode(x,{class:"hidden whitespace-nowrap @6xl:table-cell"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(s.formatFirebaseDate)(o.lastSignInAt)),1)]),_:2},1024),P.value?(e.openBlock(),e.createBlock(x,{key:1,class:"hidden @3xl:table-cell"},{default:e.withCtx(()=>[e.createVNode(n,{variant:"outline",class:e.normalizeClass(o.profile?.enabled&&o.profile.exists?"border-emerald-400/60 text-emerald-700 dark:text-emerald-300":o.profile?.enabled?"border-amber-400/60 text-amber-700 dark:text-amber-300":"text-muted-foreground")},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(o.profile?.enabled?o.profile.exists?"Linked":"Missing":"Unavailable"),1)]),_:2},1032,["class"])]),_:2},1024)):e.createCommentVNode("",!0),e.createVNode(x,{class:"text-right",onClick:t[6]||(t[6]=e.withModifiers(()=>{},["stop"]))},{default:e.withCtx(()=>[Q.value?(e.openBlock(),e.createBlock(ge,{key:0},{default:e.withCtx(()=>[e.createVNode(Ce,{"as-child":""},{default:e.withCtx(()=>[e.createVNode(r,{variant:"ghost",size:"icon","aria-label":"User actions"},{default:e.withCtx(()=>[e.createVNode(e.unref(a.Ellipsis),{class:"size-4"})]),_:1})]),_:1}),e.createVNode(we,{align:"end",class:"w-56"},{default:e.withCtx(()=>[e.createVNode(ke,{class:"truncate"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(U(o)),1)]),_:2},1024),e.createVNode(he),e.createVNode(L,{onClick:N=>e.unref(C)(e.unref(s.firebaseAuthUserPath)(o.uid))},{default:e.withCtx(()=>[e.createVNode(e.unref(a.UserRound),{class:"size-4"}),t[34]||(t[34]=e.createTextVNode(" Open user ",-1))]),_:1},8,["onClick"]),q.value?(e.openBlock(),e.createBlock(L,{key:0,onClick:N=>ae(o)},{default:e.withCtx(()=>[o.disabled?(e.openBlock(),e.createBlock(e.unref(a.ShieldCheck),{key:0,class:"size-4"})):(e.openBlock(),e.createBlock(e.unref(a.ShieldX),{key:1,class:"size-4"})),e.createTextVNode(" "+e.toDisplayString(o.disabled?"Restore sign-in":"Suspend sign-in"),1)]),_:2},1032,["onClick"])):e.createCommentVNode("",!0),H.value?(e.openBlock(),e.createBlock(L,{key:1,onClick:N=>ne(o)},{default:e.withCtx(()=>[e.createVNode(e.unref(a.KeyRound),{class:"size-4"}),t[35]||(t[35]=e.createTextVNode(" Revoke sessions ",-1))]),_:1},8,["onClick"])):e.createCommentVNode("",!0)]),_:2},1024)]),_:2},1024)):(e.openBlock(),e.createBlock(r,{key:1,variant:"ghost",size:"icon","aria-label":"Open user",onClick:N=>e.unref(C)(e.unref(s.firebaseAuthUserPath)(o.uid))},{default:e.withCtx(()=>[e.createVNode(e.unref(a.UserRound),{class:"size-4"})]),_:1},8,["onClick"]))]),_:2},1024)]),_:2},1032,["onClick"]))),128))]),_:1})]),_:1})]),_:1}),e.createElementVNode("footer",Je,[e.createElementVNode("p",null,[e.createTextVNode(" Showing "+e.toDisplayString(u.value.length)+" "+e.toDisplayString(u.value.length===1?"user":"users")+" ",1),m.value?(e.openBlock(),e.createElementBlock("span",Qe," for the exact search")):e.createCommentVNode("",!0)]),e.createVNode(Ee,null,{default:e.withCtx(()=>[e.createVNode(r,{variant:"outline",size:"sm",disabled:c.value.length===0||d.value,onClick:le},{default:e.withCtx(()=>[e.createVNode(e.unref(a.ChevronLeft),{class:"size-4"}),t[36]||(t[36]=e.createTextVNode(" Previous ",-1))]),_:1},8,["disabled"]),e.createVNode(Te,{class:"min-w-20 justify-center"},{default:e.withCtx(()=>[e.createTextVNode("Page "+e.toDisplayString(ee.value),1)]),_:1}),e.createVNode(r,{variant:"outline",size:"sm",disabled:!g.value||d.value,onClick:oe},{default:e.withCtx(()=>[t[37]||(t[37]=e.createTextVNode(" Next ",-1)),e.createVNode(e.unref(a.ChevronRight),{class:"size-4"})]),_:1},8,["disabled"])]),_:1})])],64))],64)):(e.openBlock(),e.createElementBlock("section",Me,[e.createElementVNode("div",Pe,[e.createElementVNode("div",Ue,[e.createVNode(e.unref(a.ShieldAlert),{class:"size-5 text-muted-foreground"})]),t[11]||(t[11]=e.createElementVNode("h2",{class:"mt-4 font-semibold"},"You cannot view Firebase users",-1)),t[12]||(t[12]=e.createElementVNode("p",{class:"mt-1 text-sm leading-6 text-muted-foreground"}," Ask a project administrator for the View Firebase users permission. ",-1))])])),i.value?(e.openBlock(),e.createBlock(s._sfc_main$1,{key:2,open:!!i.value,title:i.value.title,description:i.value.description,"confirm-label":i.value.confirmLabel,subject:F(i.value.user),destructive:i.value.destructive,busy:S.value,error:V.value,"onUpdate:open":O,onConfirm:re},null,8,["open","title","description","confirm-label","subject","destructive","busy","error"])):e.createCommentVNode("",!0)])}}});exports.default=Ze;
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("vue"),p=require("lucide-vue-next"),P=require("@oneclick.dev/cms-kit"),G=require("./index-ijdf0d9-.js");function O(x,E){const l=x;return l?.data?.statusMessage||l?.statusMessage||E}function _(x){return x==null||x===""?"Not available":String(x).replaceAll("_"," ").toLowerCase().replace(/^./,E=>E.toUpperCase())}function Q(x){return typeof x=="number"&&Number.isFinite(x)?new Intl.NumberFormat().format(x):"Not available"}function J(x,E){if(!x)return"Not available";const l=new Date(typeof x=="number"?x*1e3:x);return Number.isNaN(l.getTime())?"Not available":l.toLocaleDateString(void 0,{dateStyle:"medium",...E?{timeZone:E}:{}})}const te={key:0,role:"status",class:"flex items-center justify-center gap-2 py-16 text-sm text-muted-foreground"},oe={class:"grid min-w-0 gap-6 md:grid-cols-[minmax(0,1.25fr)_minmax(0,1fr)]"},ae={key:0,class:"min-w-0 space-y-4"},le={class:"space-y-2"},ne={class:"grid grid-cols-2 gap-3"},se={class:"space-y-2"},re={class:"space-y-2"},de={class:"space-y-2"},ie={key:0,class:"space-y-2"},ue={class:"space-y-2"},ce={key:1,class:"space-y-3 rounded-lg border p-3"},me={class:"space-y-2"},pe={class:"space-y-3"},ve={class:"flex items-center justify-between gap-2"},fe={class:"text-xs leading-5 text-muted-foreground"},xe={class:"flex items-center gap-2"},Ve={class:"space-y-2"},Ne={key:0,class:"space-y-2"},ge={key:1,class:"space-y-2"},ye={key:1,class:"min-w-0 space-y-5"},be={class:"grid grid-cols-2 gap-5 text-sm"},Ce={class:"mt-1 font-medium"},we={class:"mt-1 font-medium"},ke={class:"mt-1 font-medium"},_e={class:"mt-1 font-medium"},Ee={key:1,class:"rounded-lg border bg-muted/30 p-3 text-sm leading-6 text-muted-foreground"},he={href:"https://business.facebook.com/wa/manage/message-templates/",target:"_blank",rel:"noopener noreferrer",class:"flex items-center gap-1.5 text-sm underline underline-offset-4"},Be={class:"min-w-0 self-start rounded-xl border bg-muted/40 p-4"},Te={class:"overflow-hidden rounded-lg border bg-background shadow-sm"},Se={key:0,class:"whitespace-pre-wrap break-words px-4 pt-4 text-sm font-semibold"},De={key:1,class:"whitespace-pre-wrap break-words p-4 text-sm leading-6"},$e={key:2,class:"whitespace-pre-wrap break-words px-4 pb-4 text-xs text-muted-foreground"},Me={key:3,class:"border-t"},Ae={key:4,class:"m-3 rounded border border-dashed p-3 text-sm text-muted-foreground"},Re={key:1,class:"mt-5 rounded-lg border bg-muted/30 p-3 text-sm leading-6 text-muted-foreground"},Le=e.defineComponent({__name:"TemplateDialog",props:{open:{type:Boolean},template:{},canManage:{type:Boolean}},emits:["update:open","saved"],setup(x,{emit:E}){const l=x,V=E,y=P.useModuleApi(),n=e.ref(null),v=e.ref(!1),a=e.ref(!1),u=e.ref(!1),f=e.ref(""),r=e.ref(o()),N=e.computed(()=>[...new Set(Array.from(r.value.bodyText.matchAll(/\{\{(\d+)\}\}/g),c=>Number(c[1])))].sort((c,t)=>c-t).slice(0,20)),g=e.ref({}),m=e.computed(()=>!n.value&&!u.value&&(r.value.buttons?.length||0)<(r.value.buttons?.some(c=>c.type!=="QUICK_REPLY")?2:3)),h=e.computed(()=>v.value?[...r.value.headerText?[{type:"HEADER",format:"TEXT",text:r.value.headerText}]:[],{type:"BODY",text:r.value.bodyText||"Your message will appear here."},...r.value.footerText?[{type:"FOOTER",text:r.value.footerText}]:[],...r.value.buttons?.length?[{type:"BUTTONS",buttons:r.value.buttons}]:[]]:n.value?.components||[]);function o(){return{name:"",language:"en_US",category:"UTILITY",headerText:"",headerExample:"",bodyText:"",bodyExamples:[],footerText:"",buttons:[]}}function I(c){return"Example for {{"+c+"}}"}function L(c){r.value=JSON.parse(JSON.stringify(c)),r.value.buttons||=[],g.value=Object.fromEntries((c.bodyExamples||[]).map((t,w)=>[w+1,t]))}e.watch(()=>[l.open,l.template?.id],async([c],t,w)=>{let b=!1;if(w(()=>{b=!0}),!!c&&(a.value=!1,f.value="",n.value=l.template,v.value=!l.template,L(l.template?.draft||o()),!!l.template)){a.value=!0;try{const B=await y.get(`/templates/${encodeURIComponent(l.template.id)}`,{query:{name:l.template.name}});if(b)return;n.value=B,B.draft&&L(B.draft)}catch(B){b||(f.value=O(B,"The latest template could not be loaded. Reopen it to try again."))}finally{b||(a.value=!1)}}});function U(c,t){if(n.value||u.value)return;const w=r.value.buttons?.[c]?.text||"";let b={type:"QUICK_REPLY",text:w};t==="URL"&&(b={type:"URL",text:w,url:""}),t==="PHONE_NUMBER"&&(b={type:"PHONE_NUMBER",text:w,phoneNumber:""}),r.value.buttons&&(r.value.buttons[c]=b)}function C(c,t){const w=(r.value.buttons||[]).filter((b,B)=>B!==c);return t==="QUICK_REPLY"?w.every(b=>b.type==="QUICK_REPLY"):w.every(b=>b.type!=="QUICK_REPLY"&&b.type!==t)}function s(){if(!m.value)return;const c=r.value.buttons||=[];c.some(t=>t.type==="URL")?c.push({type:"PHONE_NUMBER",text:"",phoneNumber:""}):c.some(t=>t.type==="PHONE_NUMBER")?c.push({type:"URL",text:"",url:""}):c.push({type:"QUICK_REPLY",text:""})}async function S(){if(!(u.value||!l.canManage||n.value&&!n.value.editable)){u.value=!0,f.value="";try{const c={...r.value,bodyExamples:N.value.map(w=>g.value[w]||"")};if(!(n.value?await y.patch(`/templates/${encodeURIComponent(n.value.id)}`,{body:c}):await y.post("/templates",{body:c})).success)throw new Error("Mutation unsuccessful");G.toast.success("Template submitted to Meta"),V("saved"),V("update:open",!1)}catch(c){f.value=O(c,"The template could not be submitted. Review the fields and try again.")}finally{u.value=!1}}}function M(c){u.value||V("update:open",c)}return(c,t)=>{const w=e.resolveComponent("ResponsiveModalTitle"),b=e.resolveComponent("ResponsiveModalDescription"),B=e.resolveComponent("ResponsiveModalHeader"),z=e.resolveComponent("AlertTitle"),F=e.resolveComponent("AlertDescription"),A=e.resolveComponent("Alert"),D=e.resolveComponent("Label"),T=e.resolveComponent("Input"),H=e.resolveComponent("SelectValue"),q=e.resolveComponent("SelectTrigger"),$=e.resolveComponent("SelectItem"),j=e.resolveComponent("SelectContent"),Y=e.resolveComponent("Select"),K=e.resolveComponent("Textarea"),d=e.resolveComponent("Button"),W=e.resolveComponent("ResponsiveModalFooter"),X=e.resolveComponent("ResponsiveModalScrollContent"),Z=e.resolveComponent("ResponsiveModal");return e.openBlock(),e.createBlock(Z,{open:x.open,"onUpdate:open":M},{default:e.withCtx(()=>[e.createVNode(X,{class:"sm:max-w-4xl"},{default:e.withCtx(()=>[e.createVNode(B,null,{default:e.withCtx(()=>[e.createVNode(w,{class:"break-all"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.value?n.value.name:"New message template"),1)]),_:1}),e.createVNode(b,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(v.value?"Submit a standard text template for Meta approval.":"Review this template and its current approval status."),1)]),_:1})]),_:1}),a.value?(e.openBlock(),e.createElementBlock("div",te,[e.createVNode(e.unref(p.Loader2),{class:"size-4 animate-spin"}),t[9]||(t[9]=e.createTextVNode("Loading template…",-1))])):(e.openBlock(),e.createElementBlock("form",{key:1,class:"py-5",onSubmit:e.withModifiers(S,["prevent"])},[f.value?(e.openBlock(),e.createBlock(A,{key:0,variant:"destructive",class:"mb-5"},{default:e.withCtx(()=>[e.createVNode(e.unref(p.AlertCircle)),e.createVNode(z,null,{default:e.withCtx(()=>[...t[10]||(t[10]=[e.createTextVNode("Template unavailable",-1)])]),_:1}),e.createVNode(F,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(f.value),1)]),_:1})]),_:1})):e.createCommentVNode("",!0),e.createElementVNode("div",oe,[v.value?(e.openBlock(),e.createElementBlock("div",ae,[e.createElementVNode("div",le,[e.createVNode(D,{for:"wa-template-name"},{default:e.withCtx(()=>[...t[11]||(t[11]=[e.createTextVNode("Name",-1)])]),_:1}),e.createVNode(T,{id:"wa-template-name",modelValue:r.value.name,"onUpdate:modelValue":t[0]||(t[0]=i=>r.value.name=i),pattern:"[a-z0-9_]+",maxlength:"512",placeholder:"appointment_reminder",disabled:!!n.value||u.value,required:""},null,8,["modelValue","disabled"]),t[12]||(t[12]=e.createElementVNode("p",{class:"text-xs text-muted-foreground"},"Lowercase letters, numbers, and underscores. Existing names cannot change.",-1))]),e.createElementVNode("div",ne,[e.createElementVNode("div",se,[e.createVNode(D,{for:"wa-template-language"},{default:e.withCtx(()=>[...t[13]||(t[13]=[e.createTextVNode("Language code",-1)])]),_:1}),e.createVNode(T,{id:"wa-template-language",modelValue:r.value.language,"onUpdate:modelValue":t[1]||(t[1]=i=>r.value.language=i),placeholder:"en_US",disabled:!!n.value||u.value,required:""},null,8,["modelValue","disabled"]),t[14]||(t[14]=e.createElementVNode("p",{class:"text-xs text-muted-foreground"},"Meta code, e.g. en_US, nl, fr.",-1))]),e.createElementVNode("div",re,[e.createVNode(D,{for:"wa-template-category"},{default:e.withCtx(()=>[...t[15]||(t[15]=[e.createTextVNode("Category",-1)])]),_:1}),e.createVNode(Y,{modelValue:r.value.category,"onUpdate:modelValue":t[2]||(t[2]=i=>r.value.category=i),disabled:!!n.value||u.value},{default:e.withCtx(()=>[e.createVNode(q,{id:"wa-template-category"},{default:e.withCtx(()=>[e.createVNode(H)]),_:1}),e.createVNode(j,null,{default:e.withCtx(()=>[e.createVNode($,{value:"UTILITY"},{default:e.withCtx(()=>[...t[16]||(t[16]=[e.createTextVNode("Utility",-1)])]),_:1}),e.createVNode($,{value:"MARKETING"},{default:e.withCtx(()=>[...t[17]||(t[17]=[e.createTextVNode("Marketing",-1)])]),_:1})]),_:1})]),_:1},8,["modelValue","disabled"])])]),e.createElementVNode("div",de,[e.createVNode(D,{for:"wa-template-header"},{default:e.withCtx(()=>[...t[18]||(t[18]=[e.createTextVNode("Header ",-1),e.createElementVNode("span",{class:"font-normal text-muted-foreground"},"(optional)",-1)])]),_:1}),e.createVNode(T,{id:"wa-template-header",modelValue:r.value.headerText,"onUpdate:modelValue":t[3]||(t[3]=i=>r.value.headerText=i),maxlength:"60",disabled:u.value},null,8,["modelValue","disabled"])]),r.value.headerText?.includes("{{1}}")?(e.openBlock(),e.createElementBlock("div",ie,[e.createVNode(D,{for:"wa-template-header-example"},{default:e.withCtx(()=>[...t[19]||(t[19]=[e.createTextVNode("Header variable example",-1)])]),_:1}),e.createVNode(T,{id:"wa-template-header-example",modelValue:r.value.headerExample,"onUpdate:modelValue":t[4]||(t[4]=i=>r.value.headerExample=i),placeholder:"Example for {{1}}",disabled:u.value,required:""},null,8,["modelValue","disabled"])])):e.createCommentVNode("",!0),e.createElementVNode("div",ue,[e.createVNode(D,{for:"wa-template-body"},{default:e.withCtx(()=>[...t[20]||(t[20]=[e.createTextVNode("Message",-1)])]),_:1}),e.createVNode(K,{id:"wa-template-body",modelValue:r.value.bodyText,"onUpdate:modelValue":t[5]||(t[5]=i=>r.value.bodyText=i),rows:"6",maxlength:"1024",placeholder:"Hello {{1}}, your appointment is on {{2}}.",disabled:u.value,required:""},null,8,["modelValue","disabled"]),t[21]||(t[21]=e.createElementVNode("p",{class:"text-xs leading-5 text-muted-foreground"},[e.createTextVNode("Use numbered variables such as "),e.createElementVNode("code",null,"{{1}}"),e.createTextVNode(" and "),e.createElementVNode("code",null,"{{2}}"),e.createTextVNode(", in order. Provide sample values for Meta’s review.")],-1))]),N.value.length?(e.openBlock(),e.createElementBlock("div",ce,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(N.value,i=>(e.openBlock(),e.createElementBlock("div",{key:i,class:"space-y-2"},[e.createVNode(D,{for:`wa-example-${i}`},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(I(i)),1)]),_:2},1032,["for"]),e.createVNode(T,{id:`wa-example-${i}`,modelValue:g.value[i],"onUpdate:modelValue":k=>g.value[i]=k,disabled:u.value,required:""},null,8,["id","modelValue","onUpdate:modelValue","disabled"])]))),128)),t[22]||(t[22]=e.createElementVNode("p",{class:"text-xs text-muted-foreground"},"Use fictional examples rather than customer details.",-1))])):e.createCommentVNode("",!0),e.createElementVNode("div",me,[e.createVNode(D,{for:"wa-template-footer"},{default:e.withCtx(()=>[...t[23]||(t[23]=[e.createTextVNode("Footer ",-1),e.createElementVNode("span",{class:"font-normal text-muted-foreground"},"(optional)",-1)])]),_:1}),e.createVNode(T,{id:"wa-template-footer",modelValue:r.value.footerText,"onUpdate:modelValue":t[6]||(t[6]=i=>r.value.footerText=i),maxlength:"60",disabled:u.value},null,8,["modelValue","disabled"])]),e.createElementVNode("div",pe,[e.createElementVNode("div",ve,[t[25]||(t[25]=e.createElementVNode("h3",{class:"text-sm font-medium"},[e.createTextVNode("Buttons "),e.createElementVNode("span",{class:"font-normal text-muted-foreground"},"(optional)")],-1)),e.createVNode(d,{type:"button",variant:"outline",size:"sm",disabled:!m.value,onClick:s},{default:e.withCtx(()=>[e.createVNode(e.unref(p.Plus),{class:"size-3.5"}),t[24]||(t[24]=e.createTextVNode("Add",-1))]),_:1},8,["disabled"])]),e.createElementVNode("p",fe,e.toDisplayString(n.value?"Existing button types and positions are preserved for your automations. Create a new template to change the button structure.":"Up to three quick replies, or one website and one phone button."),1),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(r.value.buttons,(i,k)=>(e.openBlock(),e.createElementBlock("div",{key:k,class:"space-y-3 rounded-lg border p-3"},[e.createElementVNode("div",xe,[e.createVNode(Y,{"model-value":i.type,disabled:!!n.value||u.value,"onUpdate:modelValue":R=>U(k,R)},{default:e.withCtx(()=>[e.createVNode(q,{"aria-label":`Button ${k+1} type`},{default:e.withCtx(()=>[e.createVNode(H)]),_:1},8,["aria-label"]),e.createVNode(j,null,{default:e.withCtx(()=>[e.createVNode($,{value:"QUICK_REPLY",disabled:!C(k,"QUICK_REPLY")},{default:e.withCtx(()=>[...t[26]||(t[26]=[e.createTextVNode("Quick reply",-1)])]),_:1},8,["disabled"]),e.createVNode($,{value:"URL",disabled:!C(k,"URL")},{default:e.withCtx(()=>[...t[27]||(t[27]=[e.createTextVNode("Website",-1)])]),_:1},8,["disabled"]),e.createVNode($,{value:"PHONE_NUMBER",disabled:!C(k,"PHONE_NUMBER")},{default:e.withCtx(()=>[...t[28]||(t[28]=[e.createTextVNode("Phone number",-1)])]),_:1},8,["disabled"])]),_:2},1024)]),_:2},1032,["model-value","disabled","onUpdate:modelValue"]),e.createVNode(d,{type:"button",variant:"ghost",size:"icon",class:"shrink-0","aria-label":`Remove button ${k+1}`,disabled:!!n.value||u.value,onClick:R=>r.value.buttons?.splice(k,1)},{default:e.withCtx(()=>[e.createVNode(e.unref(p.Trash2),{class:"size-4"})]),_:1},8,["aria-label","disabled","onClick"])]),e.createElementVNode("div",Ve,[e.createVNode(D,{for:`wa-button-${k}`},{default:e.withCtx(()=>[...t[29]||(t[29]=[e.createTextVNode("Button text",-1)])]),_:1},8,["for"]),e.createVNode(T,{id:`wa-button-${k}`,modelValue:i.text,"onUpdate:modelValue":R=>i.text=R,maxlength:"25",disabled:u.value,required:""},null,8,["id","modelValue","onUpdate:modelValue","disabled"])]),i.type==="URL"?(e.openBlock(),e.createElementBlock("div",Ne,[e.createVNode(D,{for:`wa-button-url-${k}`},{default:e.withCtx(()=>[...t[30]||(t[30]=[e.createTextVNode("Website URL",-1)])]),_:1},8,["for"]),e.createVNode(T,{id:`wa-button-url-${k}`,modelValue:i.url,"onUpdate:modelValue":R=>i.url=R,type:"url",placeholder:"https://example.com",disabled:u.value,required:""},null,8,["id","modelValue","onUpdate:modelValue","disabled"]),t[31]||(t[31]=e.createElementVNode("p",{class:"text-xs text-muted-foreground"},"Use a fixed HTTPS URL without variables.",-1))])):e.createCommentVNode("",!0),i.type==="PHONE_NUMBER"?(e.openBlock(),e.createElementBlock("div",ge,[e.createVNode(D,{for:`wa-button-phone-${k}`},{default:e.withCtx(()=>[...t[32]||(t[32]=[e.createTextVNode("Phone number",-1)])]),_:1},8,["for"]),e.createVNode(T,{id:`wa-button-phone-${k}`,modelValue:i.phoneNumber,"onUpdate:modelValue":R=>i.phoneNumber=R,type:"tel",placeholder:"+32470000000",disabled:u.value,required:""},null,8,["id","modelValue","onUpdate:modelValue","disabled"])])):e.createCommentVNode("",!0)]))),128))])])):n.value?(e.openBlock(),e.createElementBlock("div",ye,[e.createElementVNode("dl",be,[e.createElementVNode("div",null,[t[33]||(t[33]=e.createElementVNode("dt",{class:"text-muted-foreground"},"Status",-1)),e.createElementVNode("dd",Ce,e.toDisplayString(e.unref(_)(n.value.status)),1)]),e.createElementVNode("div",null,[t[34]||(t[34]=e.createElementVNode("dt",{class:"text-muted-foreground"},"Category",-1)),e.createElementVNode("dd",we,e.toDisplayString(e.unref(_)(n.value.category)),1)]),e.createElementVNode("div",null,[t[35]||(t[35]=e.createElementVNode("dt",{class:"text-muted-foreground"},"Language",-1)),e.createElementVNode("dd",ke,e.toDisplayString(n.value.language),1)]),e.createElementVNode("div",null,[t[36]||(t[36]=e.createElementVNode("dt",{class:"text-muted-foreground"},"Quality",-1)),e.createElementVNode("dd",_e,e.toDisplayString(e.unref(_)(n.value.quality)),1)])]),n.value.rejectionReason?(e.openBlock(),e.createBlock(A,{key:0,variant:"destructive"},{default:e.withCtx(()=>[e.createVNode(e.unref(p.AlertCircle)),e.createVNode(z,null,{default:e.withCtx(()=>[...t[37]||(t[37]=[e.createTextVNode("Meta review feedback",-1)])]),_:1}),e.createVNode(F,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(n.value.rejectionReason),1)]),_:1})]),_:1})):e.createCommentVNode("",!0),n.value.editable?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("p",Ee,e.toDisplayString(n.value.editReason||"This template uses a format that must be managed in Meta."),1)),x.canManage&&n.value.editable&&n.value.draft&&!f.value?(e.openBlock(),e.createBlock(d,{key:2,type:"button",variant:"outline",onClick:t[7]||(t[7]=i=>v.value=!0)},{default:e.withCtx(()=>[e.createVNode(e.unref(p.Pencil),{class:"size-4"}),t[38]||(t[38]=e.createTextVNode("Edit template",-1))]),_:1})):e.createCommentVNode("",!0),e.createElementVNode("a",he,[t[39]||(t[39]=e.createTextVNode("Open Meta template manager",-1)),e.createVNode(e.unref(p.ExternalLink),{class:"size-3.5"})])])):e.createCommentVNode("",!0),e.createElementVNode("aside",Be,[t[40]||(t[40]=e.createElementVNode("h3",{class:"mb-3 text-xs font-medium uppercase tracking-wide text-muted-foreground"},"Message preview",-1)),e.createElementVNode("div",Te,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(h.value,(i,k)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:k},[i.type==="HEADER"&&i.text?(e.openBlock(),e.createElementBlock("p",Se,e.toDisplayString(i.text),1)):i.type==="BODY"?(e.openBlock(),e.createElementBlock("p",De,e.toDisplayString(i.text),1)):i.type==="FOOTER"?(e.openBlock(),e.createElementBlock("p",$e,e.toDisplayString(i.text),1)):i.type==="BUTTONS"?(e.openBlock(),e.createElementBlock("div",Me,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(i.buttons,(R,ee)=>(e.openBlock(),e.createElementBlock("p",{key:ee,class:"break-words border-b px-4 py-3 text-center text-sm last:border-0"},e.toDisplayString(R.text||"Button text"),1))),128))])):(e.openBlock(),e.createElementBlock("div",Ae,e.toDisplayString(e.unref(_)(i.format||i.type))+" component · preview unavailable",1))],64))),128))]),t[41]||(t[41]=e.createElementVNode("p",{class:"mt-3 text-xs leading-5 text-muted-foreground"},"Preview only. Variables are filled by your sending application.",-1))])]),v.value?(e.openBlock(),e.createElementBlock("p",Re,e.toDisplayString(n.value?"Edits are sent to Meta and may affect existing Firebase automations. Keep the same variables and their meaning. Create a new template if its parameters need to change.":"Meta decides approval and may update the category. This template becomes usable after approval."),1)):e.createCommentVNode("",!0),e.createVNode(W,{class:"mt-5 gap-2"},{default:e.withCtx(()=>[e.createVNode(d,{type:"button",variant:"outline",disabled:u.value,onClick:t[8]||(t[8]=i=>M(!1))},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(v.value?"Cancel":"Close"),1)]),_:1},8,["disabled"]),v.value&&x.canManage?(e.openBlock(),e.createBlock(d,{key:0,type:"submit",disabled:u.value||!r.value.name.trim()||!r.value.bodyText.trim()},{default:e.withCtx(()=>[u.value?(e.openBlock(),e.createBlock(e.unref(p.Loader2),{key:0,class:"size-4 animate-spin"})):e.createCommentVNode("",!0),e.createTextVNode(e.toDisplayString(u.value?"Submitting…":"Submit to Meta"),1)]),_:1},8,["disabled"])):e.createCommentVNode("",!0)]),_:1})],32))]),_:1})]),_:1},8,["open"])}}}),Ue={class:"min-w-0"},Pe={class:"flex flex-wrap items-start justify-between gap-4"},Ie={class:"space-y-2"},ze={class:"space-y-2"},He={key:0,role:"status",class:"mt-6 flex items-center justify-center gap-2 rounded-xl border py-20 text-sm text-muted-foreground"},Oe={key:2,class:"mt-6 rounded-xl border border-dashed px-6 py-16 text-center"},Fe={class:"mt-3 font-medium"},qe={class:"mx-auto mt-2 max-w-md text-sm leading-6 text-muted-foreground"},je={key:3,class:"mt-6 overflow-hidden rounded-xl border"},Ye=["onClick"],Qe=["title"],Ke={class:"mt-1 block truncate text-xs text-muted-foreground sm:hidden"},We={class:"mt-1 hidden text-xs text-muted-foreground sm:block md:hidden"},Je={key:4,class:"mt-4 flex flex-wrap items-center justify-between gap-3 text-sm text-muted-foreground"},Ge={class:"flex gap-2"},Xe=e.defineComponent({__name:"TemplatesPanel",props:{canManage:{type:Boolean}},setup(x){const E=P.useModuleApi(),l=e.ref([]),V=e.ref(!1),y=e.ref(""),n=e.ref(""),v=e.ref("ALL"),a=e.ref(""),u=e.ref("ALL"),f=e.ref(null),r=e.ref(null),N=e.ref([]),g=e.ref(!1),m=e.ref(null);async function h(C=f.value){if(V.value)return!1;V.value=!0,y.value="";try{const s={};C&&(s.after=C),a.value&&(s.search=a.value),u.value!=="ALL"&&(s.status=u.value);const S=await E.get("/templates",{query:s});return l.value=S.templates,r.value=S.nextCursor,f.value=C,!0}catch(s){return l.value=[],y.value=O(s,"Templates could not be loaded from Meta."),!1}finally{V.value=!1}}async function o(){V.value||(a.value=n.value.trim(),u.value=v.value,N.value=[],f.value=null,await h(null))}async function I(){if(!r.value||V.value)return;const C=f.value;await h(r.value)&&N.value.push(C)}async function L(){!N.value.length||V.value||await h(N.value[N.value.length-1])&&N.value.pop()}function U(C){m.value=C,g.value=!0}return e.onMounted(()=>h(null)),(C,s)=>{const S=e.resolveComponent("Button"),M=e.resolveComponent("Label"),c=e.resolveComponent("Input"),t=e.resolveComponent("SelectValue"),w=e.resolveComponent("SelectTrigger"),b=e.resolveComponent("SelectItem"),B=e.resolveComponent("SelectContent"),z=e.resolveComponent("Select"),F=e.resolveComponent("AlertTitle"),A=e.resolveComponent("AlertDescription"),D=e.resolveComponent("Alert"),T=e.resolveComponent("TableHead"),H=e.resolveComponent("TableRow"),q=e.resolveComponent("TableHeader"),$=e.resolveComponent("TableCell"),j=e.resolveComponent("Badge"),Y=e.resolveComponent("TableBody"),K=e.resolveComponent("Table");return e.openBlock(),e.createElementBlock("section",Ue,[e.createElementVNode("div",Pe,[s[7]||(s[7]=e.createElementVNode("div",null,[e.createElementVNode("h2",{class:"text-lg font-semibold"},"Message templates"),e.createElementVNode("p",{class:"mt-1 text-sm leading-6 text-muted-foreground"},"Templates are shared by all numbers in this business account. Changes are submitted to Meta for review.")],-1)),x.canManage?(e.openBlock(),e.createBlock(S,{key:0,class:"shrink-0",onClick:s[0]||(s[0]=d=>U(null))},{default:e.withCtx(()=>[e.createVNode(e.unref(p.Plus),{class:"size-4"}),s[6]||(s[6]=e.createTextVNode("New template",-1))]),_:1})):e.createCommentVNode("",!0)]),e.createElementVNode("form",{class:"mt-5 grid items-end gap-3 sm:grid-cols-[minmax(0,1fr)_11rem_auto]",onSubmit:e.withModifiers(o,["prevent"])},[e.createElementVNode("div",Ie,[e.createVNode(M,{for:"wa-template-search"},{default:e.withCtx(()=>[...s[8]||(s[8]=[e.createTextVNode("Search templates",-1)])]),_:1}),e.createVNode(c,{id:"wa-template-search",modelValue:n.value,"onUpdate:modelValue":s[1]||(s[1]=d=>n.value=d),type:"search",placeholder:"Search name or message",disabled:V.value},null,8,["modelValue","disabled"])]),e.createElementVNode("div",ze,[e.createVNode(M,{for:"wa-template-status"},{default:e.withCtx(()=>[...s[9]||(s[9]=[e.createTextVNode("Status",-1)])]),_:1}),e.createVNode(z,{modelValue:v.value,"onUpdate:modelValue":s[2]||(s[2]=d=>v.value=d),disabled:V.value},{default:e.withCtx(()=>[e.createVNode(w,{id:"wa-template-status"},{default:e.withCtx(()=>[e.createVNode(t)]),_:1}),e.createVNode(B,null,{default:e.withCtx(()=>[e.createVNode(b,{value:"ALL"},{default:e.withCtx(()=>[...s[10]||(s[10]=[e.createTextVNode("All statuses",-1)])]),_:1}),(e.openBlock(),e.createElementBlock(e.Fragment,null,e.renderList(["APPROVED","PENDING","REJECTED","PAUSED","DISABLED","IN_APPEAL"],d=>e.createVNode(b,{key:d,value:d},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(_)(d)),1)]),_:2},1032,["value"])),64))]),_:1})]),_:1},8,["modelValue","disabled"])]),e.createVNode(S,{type:"submit",variant:"outline",disabled:V.value},{default:e.withCtx(()=>[e.createVNode(e.unref(p.Search),{class:"size-4"}),s[11]||(s[11]=e.createTextVNode("Search",-1))]),_:1},8,["disabled"])],32),V.value?(e.openBlock(),e.createElementBlock("div",He,[e.createVNode(e.unref(p.Loader2),{class:"size-4 animate-spin"}),s[12]||(s[12]=e.createTextVNode("Loading templates…",-1))])):y.value?(e.openBlock(),e.createBlock(D,{key:1,variant:"destructive",class:"mt-6"},{default:e.withCtx(()=>[e.createVNode(e.unref(p.AlertCircle)),e.createVNode(F,null,{default:e.withCtx(()=>[...s[13]||(s[13]=[e.createTextVNode("Templates unavailable",-1)])]),_:1}),e.createVNode(A,{class:"space-y-3"},{default:e.withCtx(()=>[e.createElementVNode("p",null,e.toDisplayString(y.value),1),e.createVNode(S,{size:"sm",variant:"outline",onClick:s[3]||(s[3]=d=>h())},{default:e.withCtx(()=>[...s[14]||(s[14]=[e.createTextVNode("Try again",-1)])]),_:1})]),_:1})]),_:1})):l.value.length?(e.openBlock(),e.createElementBlock("div",je,[e.createVNode(K,{class:"table-fixed"},{default:e.withCtx(()=>[e.createVNode(q,null,{default:e.withCtx(()=>[e.createVNode(H,null,{default:e.withCtx(()=>[e.createVNode(T,null,{default:e.withCtx(()=>[...s[15]||(s[15]=[e.createTextVNode("Template",-1)])]),_:1}),e.createVNode(T,{class:"hidden w-36 sm:table-cell"},{default:e.withCtx(()=>[...s[16]||(s[16]=[e.createTextVNode("Category",-1)])]),_:1}),e.createVNode(T,{class:"hidden w-24 md:table-cell"},{default:e.withCtx(()=>[...s[17]||(s[17]=[e.createTextVNode("Language",-1)])]),_:1}),e.createVNode(T,{class:"w-28"},{default:e.withCtx(()=>[...s[18]||(s[18]=[e.createTextVNode("Status",-1)])]),_:1}),e.createVNode(T,{class:"hidden w-32 lg:table-cell"},{default:e.withCtx(()=>[...s[19]||(s[19]=[e.createTextVNode("Quality",-1)])]),_:1})]),_:1})]),_:1}),e.createVNode(Y,null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value,d=>(e.openBlock(),e.createBlock(H,{key:d.id},{default:e.withCtx(()=>[e.createVNode($,null,{default:e.withCtx(()=>[e.createElementVNode("button",{type:"button",class:"w-full rounded text-left outline-none focus-visible:ring-2 focus-visible:ring-ring",onClick:W=>U(d)},[e.createElementVNode("span",{class:"block truncate font-medium underline-offset-4 hover:underline",title:d.name},e.toDisplayString(d.name),9,Qe),e.createElementVNode("span",Ke,e.toDisplayString(e.unref(_)(d.category))+" · "+e.toDisplayString(d.language),1),e.createElementVNode("span",We,e.toDisplayString(d.language),1)],8,Ye)]),_:2},1024),e.createVNode($,{class:"hidden sm:table-cell"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(_)(d.category)),1)]),_:2},1024),e.createVNode($,{class:"hidden md:table-cell"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(d.language),1)]),_:2},1024),e.createVNode($,null,{default:e.withCtx(()=>[e.createVNode(j,{variant:"outline",class:e.normalizeClass(["max-w-full whitespace-normal break-words",d.status==="APPROVED"?"text-emerald-700 dark:text-emerald-300":d.status==="REJECTED"?"text-destructive":""])},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(_)(d.status)),1)]),_:2},1032,["class"])]),_:2},1024),e.createVNode($,{class:"hidden lg:table-cell text-muted-foreground"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(_)(d.quality)),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1})])):(e.openBlock(),e.createElementBlock("div",Oe,[e.createVNode(e.unref(p.FileText),{class:"mx-auto size-7 text-muted-foreground"}),e.createElementVNode("h3",Fe,e.toDisplayString(a.value||u.value!=="ALL"?"No matching templates":"No message templates yet"),1),e.createElementVNode("p",qe,e.toDisplayString(a.value||u.value!=="ALL"?"Try a different search or choose another status.":"Create your first text template here, or manage more advanced formats in Meta."),1)])),!y.value&&(l.value.length||N.value.length)?(e.openBlock(),e.createElementBlock("div",Je,[e.createElementVNode("p",null,"Page "+e.toDisplayString(N.value.length+1)+" · "+e.toDisplayString(l.value.length)+" templates",1),e.createElementVNode("div",Ge,[e.createVNode(S,{variant:"outline",size:"sm",disabled:!N.value.length||V.value,onClick:L},{default:e.withCtx(()=>[e.createVNode(e.unref(p.ChevronLeft),{class:"size-4"}),s[20]||(s[20]=e.createTextVNode("Previous",-1))]),_:1},8,["disabled"]),e.createVNode(S,{variant:"outline",size:"sm",disabled:!r.value||V.value,onClick:I},{default:e.withCtx(()=>[s[21]||(s[21]=e.createTextVNode("Next",-1)),e.createVNode(e.unref(p.ChevronRight),{class:"size-4"})]),_:1},8,["disabled"])])])):e.createCommentVNode("",!0),e.createVNode(Le,{open:g.value,template:m.value,"can-manage":x.canManage,"onUpdate:open":s[4]||(s[4]=d=>g.value=d),onSaved:s[5]||(s[5]=d=>h())},null,8,["open","template","can-manage"])])}}}),Ze={class:"min-w-0 space-y-6"},et={class:"flex flex-wrap items-start justify-between gap-4"},tt={class:"w-40 space-y-2"},ot={key:0,role:"status",class:"flex items-center justify-center gap-2 rounded-xl border py-20 text-sm text-muted-foreground"},at={class:"space-y-4"},lt={class:"mt-1 text-sm text-muted-foreground"},nt={key:0,class:"grid gap-4 sm:grid-cols-2"},st={class:"rounded-xl border p-5"},rt={class:"flex items-center justify-between gap-3 text-sm text-muted-foreground"},dt={class:"mt-3 text-3xl font-semibold tracking-tight"},it={class:"rounded-xl border p-5"},ut={class:"flex items-center justify-between gap-3 text-sm text-muted-foreground"},ct={class:"mt-3 text-3xl font-semibold tracking-tight"},mt={key:1,class:"rounded-xl border border-dashed p-5"},pt={class:"font-medium"},vt={class:"mt-1 text-sm leading-6 text-muted-foreground"},ft={key:2,class:"text-sm text-muted-foreground"},xt={class:"space-y-4 border-t pt-6"},Vt={class:"flex flex-wrap items-start justify-between gap-3"},Nt={key:0,class:"flex flex-wrap items-center justify-between gap-4 rounded-xl border p-5"},gt={key:1,class:"rounded-xl border border-dashed p-6"},yt={class:"mt-1 text-sm leading-6 text-muted-foreground"},bt={key:2,class:"rounded-xl border border-dashed p-8 text-center"},Ct={class:"mt-1 text-sm leading-6 text-muted-foreground"},wt={key:3,class:"overflow-hidden rounded-xl border"},kt=["title"],_t={class:"mt-1 text-xs text-muted-foreground"},Et={key:4,class:"text-sm text-muted-foreground"},ht=e.defineComponent({__name:"InsightsPanel",props:{canManage:{type:Boolean}},setup(x){const E=P.useModuleApi(),{config:l}=P.useModule(),V=String(e.unref(l)?.defaultDays||"30"),y=e.ref(["7","30","90"].includes(V)?V:"30"),n=e.ref(null),v=e.ref(!1),a=e.ref(""),u=e.ref(!1),f=e.ref(!1),r=e.ref("");let N=0;async function g(){const h=++N;v.value=!0,a.value="";try{const o=await E.get("/insights",{query:{days:Number(y.value)}});h===N&&(n.value=o)}catch(o){h===N&&(a.value=O(o,"Insights could not be loaded from Meta."))}finally{h===N&&(v.value=!1)}}async function m(){if(!f.value){f.value=!0,r.value="";try{await E.post("/insights/enable",{body:{confirm:!0}}),u.value=!1,G.toast.success("Template insights enabled"),await g()}catch(h){r.value=O(h,"Template insights could not be enabled.")}finally{f.value=!1}}}return e.watch(y,g),e.onMounted(g),e.onUnmounted(()=>{N++}),(h,o)=>{const I=e.resolveComponent("Label"),L=e.resolveComponent("SelectValue"),U=e.resolveComponent("SelectTrigger"),C=e.resolveComponent("SelectItem"),s=e.resolveComponent("SelectContent"),S=e.resolveComponent("Select"),M=e.resolveComponent("AlertTitle"),c=e.resolveComponent("Button"),t=e.resolveComponent("AlertDescription"),w=e.resolveComponent("Alert"),b=e.resolveComponent("Badge"),B=e.resolveComponent("TableHead"),z=e.resolveComponent("TableRow"),F=e.resolveComponent("TableHeader"),A=e.resolveComponent("TableCell"),D=e.resolveComponent("TableBody"),T=e.resolveComponent("Table"),H=e.resolveComponent("ResponsiveModalTitle"),q=e.resolveComponent("ResponsiveModalDescription"),$=e.resolveComponent("ResponsiveModalHeader"),j=e.resolveComponent("ResponsiveModalFooter"),Y=e.resolveComponent("ResponsiveModalScrollContent"),K=e.resolveComponent("ResponsiveModal");return e.openBlock(),e.createElementBlock("section",Ze,[e.createElementVNode("div",et,[o[8]||(o[8]=e.createElementVNode("div",null,[e.createElementVNode("h2",{class:"text-lg font-semibold"},"Messaging insights"),e.createElementVNode("p",{class:"mt-1 text-sm leading-6 text-muted-foreground"},"Aggregated activity reported by Meta. Recent results may take time to appear.")],-1)),e.createElementVNode("div",tt,[e.createVNode(I,{for:"wa-insights-period",class:"sr-only"},{default:e.withCtx(()=>[...o[4]||(o[4]=[e.createTextVNode("Insights period",-1)])]),_:1}),e.createVNode(S,{modelValue:y.value,"onUpdate:modelValue":o[0]||(o[0]=d=>y.value=d)},{default:e.withCtx(()=>[e.createVNode(U,{id:"wa-insights-period"},{default:e.withCtx(()=>[e.createVNode(L)]),_:1}),e.createVNode(s,null,{default:e.withCtx(()=>[e.createVNode(C,{value:"7"},{default:e.withCtx(()=>[...o[5]||(o[5]=[e.createTextVNode("Last 7 days",-1)])]),_:1}),e.createVNode(C,{value:"30"},{default:e.withCtx(()=>[...o[6]||(o[6]=[e.createTextVNode("Last 30 days",-1)])]),_:1}),e.createVNode(C,{value:"90"},{default:e.withCtx(()=>[...o[7]||(o[7]=[e.createTextVNode("Last 90 days",-1)])]),_:1})]),_:1})]),_:1},8,["modelValue"])])]),v.value?(e.openBlock(),e.createElementBlock("div",ot,[e.createVNode(e.unref(p.Loader2),{class:"size-4 animate-spin"}),o[9]||(o[9]=e.createTextVNode("Loading insights…",-1))])):a.value?(e.openBlock(),e.createBlock(w,{key:1,variant:"destructive"},{default:e.withCtx(()=>[e.createVNode(e.unref(p.AlertCircle)),e.createVNode(M,null,{default:e.withCtx(()=>[...o[10]||(o[10]=[e.createTextVNode("Insights unavailable",-1)])]),_:1}),e.createVNode(t,{class:"space-y-3"},{default:e.withCtx(()=>[e.createElementVNode("p",null,e.toDisplayString(a.value),1),e.createVNode(c,{variant:"outline",size:"sm",onClick:g},{default:e.withCtx(()=>[...o[11]||(o[11]=[e.createTextVNode("Try again",-1)])]),_:1})]),_:1})]),_:1})):n.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:2},[e.createElementVNode("section",at,[e.createElementVNode("div",null,[o[12]||(o[12]=e.createElementVNode("h3",{class:"font-medium"},"Selected phone number",-1)),e.createElementVNode("p",lt,e.toDisplayString(n.value.phoneNumber)+" · "+e.toDisplayString(e.unref(J)(n.value.start,"UTC"))+" – "+e.toDisplayString(e.unref(J)(n.value.end-1,"UTC"))+" · UTC",1)]),n.value.messages.state!=="unavailable"&&n.value.messages.data?(e.openBlock(),e.createElementBlock("div",nt,[e.createElementVNode("div",st,[e.createElementVNode("p",rt,[o[13]||(o[13]=e.createTextVNode("Messages sent",-1)),e.createVNode(e.unref(p.Send),{class:"size-4"})]),e.createElementVNode("p",dt,e.toDisplayString(e.unref(Q)(n.value.messages.data.sent)),1)]),e.createElementVNode("div",it,[e.createElementVNode("p",ut,[o[14]||(o[14]=e.createTextVNode("Messages delivered",-1)),e.createVNode(e.unref(p.CheckCheck),{class:"size-4"})]),e.createElementVNode("p",ct,e.toDisplayString(e.unref(Q)(n.value.messages.data.delivered)),1)])])):(e.openBlock(),e.createElementBlock("div",mt,[e.createElementVNode("p",pt,"Message volume "+e.toDisplayString(n.value.messages.state==="empty"?"has no data":"unavailable"),1),e.createElementVNode("p",vt,e.toDisplayString(n.value.messages.reason||"Meta has not returned message volume for this phone and period."),1)])),n.value.messages.state==="empty"&&n.value.messages.data?(e.openBlock(),e.createElementBlock("p",ft,e.toDisplayString(n.value.messages.reason||"No message activity was reported for this period."),1)):e.createCommentVNode("",!0)]),e.createElementVNode("section",xt,[e.createElementVNode("div",Vt,[o[16]||(o[16]=e.createElementVNode("div",null,[e.createElementVNode("h3",{class:"font-medium"},"Template performance"),e.createElementVNode("p",{class:"mt-1 text-sm leading-6 text-muted-foreground"},"Across all phone numbers in this WhatsApp Business account.")],-1)),e.createVNode(b,{variant:"outline"},{default:e.withCtx(()=>[...o[15]||(o[15]=[e.createTextVNode("Account-wide",-1)])]),_:1})]),n.value.enabled!==!0&&n.value.canEnable&&x.canManage?(e.openBlock(),e.createElementBlock("div",Nt,[o[18]||(o[18]=e.createElementVNode("div",{class:"max-w-xl"},[e.createElementVNode("p",{class:"font-medium"},"Enable template insights"),e.createElementVNode("p",{class:"mt-1 text-sm leading-6 text-muted-foreground"},"Meta requires an account-level opt-in before sharing template performance. This setting cannot be reversed.")],-1)),e.createVNode(c,{variant:"outline",onClick:o[1]||(o[1]=d=>u.value=!0)},{default:e.withCtx(()=>[...o[17]||(o[17]=[e.createTextVNode("Review and enable",-1)])]),_:1})])):e.createCommentVNode("",!0),n.value.templates.state==="unavailable"?(e.openBlock(),e.createElementBlock("div",gt,[e.createVNode(e.unref(p.BarChart3),{class:"size-5 text-muted-foreground"}),o[19]||(o[19]=e.createElementVNode("h4",{class:"mt-3 font-medium"},"Template insights unavailable",-1)),e.createElementVNode("p",yt,e.toDisplayString(n.value.templates.reason||"Meta has not made these metrics available for this account."),1)])):n.value.templates.data?.templates.length?(e.openBlock(),e.createElementBlock("div",wt,[e.createVNode(T,null,{default:e.withCtx(()=>[e.createVNode(F,null,{default:e.withCtx(()=>[e.createVNode(z,null,{default:e.withCtx(()=>[e.createVNode(B,{class:"min-w-48"},{default:e.withCtx(()=>[...o[21]||(o[21]=[e.createTextVNode("Template",-1)])]),_:1}),e.createVNode(B,{class:"text-right"},{default:e.withCtx(()=>[...o[22]||(o[22]=[e.createTextVNode("Sent",-1)])]),_:1}),e.createVNode(B,{class:"text-right"},{default:e.withCtx(()=>[...o[23]||(o[23]=[e.createTextVNode("Delivered",-1)])]),_:1}),e.createVNode(B,{class:"text-right"},{default:e.withCtx(()=>[...o[24]||(o[24]=[e.createTextVNode("Read",-1)])]),_:1}),e.createVNode(B,{class:"text-right"},{default:e.withCtx(()=>[...o[25]||(o[25]=[e.createTextVNode("Clicks",-1)])]),_:1})]),_:1})]),_:1}),e.createVNode(D,null,{default:e.withCtx(()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(n.value.templates.data.templates,d=>(e.openBlock(),e.createBlock(z,{key:d.id},{default:e.withCtx(()=>[e.createVNode(A,null,{default:e.withCtx(()=>[e.createElementVNode("p",{class:"max-w-72 truncate font-medium",title:d.name},e.toDisplayString(d.name),9,kt),e.createElementVNode("p",_t,e.toDisplayString(d.language),1)]),_:2},1024),e.createVNode(A,{class:"whitespace-nowrap text-right tabular-nums"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(Q)(d.sent)),1)]),_:2},1024),e.createVNode(A,{class:"whitespace-nowrap text-right tabular-nums"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(Q)(d.delivered)),1)]),_:2},1024),e.createVNode(A,{class:"whitespace-nowrap text-right tabular-nums"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(Q)(d.read)),1)]),_:2},1024),e.createVNode(A,{class:"whitespace-nowrap text-right tabular-nums"},{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(e.unref(Q)(d.clicked)),1)]),_:2},1024)]),_:2},1024))),128))]),_:1})]),_:1})])):(e.openBlock(),e.createElementBlock("div",bt,[e.createVNode(e.unref(p.BarChart3),{class:"mx-auto size-6 text-muted-foreground"}),o[20]||(o[20]=e.createElementVNode("h4",{class:"mt-3 font-medium"},"No template performance for this period",-1)),e.createElementVNode("p",Ct,e.toDisplayString(n.value.templates.reason||"Metrics will appear when Meta reports activity for your templates."),1)])),n.value.templates.data?.truncated?(e.openBlock(),e.createElementBlock("p",Et,"Meta returned a limited set of templates. These results do not represent every template in the account.")):e.createCommentVNode("",!0),o[26]||(o[26]=e.createElementVNode("p",{class:"text-xs leading-5 text-muted-foreground"},"“Not available” means Meta did not return that metric. Availability depends on template type, account eligibility, and Meta’s reporting rules.",-1))])],64)):e.createCommentVNode("",!0),e.createVNode(K,{open:u.value,"onUpdate:open":o[3]||(o[3]=d=>!f.value&&(u.value=d))},{default:e.withCtx(()=>[e.createVNode(Y,{class:"sm:max-w-lg"},{default:e.withCtx(()=>[e.createVNode($,null,{default:e.withCtx(()=>[e.createVNode(H,null,{default:e.withCtx(()=>[...o[27]||(o[27]=[e.createTextVNode("Enable template insights for this account?",-1)])]),_:1}),e.createVNode(q,null,{default:e.withCtx(()=>[...o[28]||(o[28]=[e.createTextVNode("This opts your entire WhatsApp Business account into Meta’s template performance reporting. Meta does not allow template insights to be disabled after activation.",-1)])]),_:1})]),_:1}),r.value?(e.openBlock(),e.createBlock(w,{key:0,variant:"destructive",class:"mt-5"},{default:e.withCtx(()=>[e.createVNode(e.unref(p.AlertCircle)),e.createVNode(M,null,{default:e.withCtx(()=>[...o[29]||(o[29]=[e.createTextVNode("Could not enable insights",-1)])]),_:1}),e.createVNode(t,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(r.value),1)]),_:1})]),_:1})):e.createCommentVNode("",!0),e.createVNode(j,{class:"mt-5 gap-2"},{default:e.withCtx(()=>[e.createVNode(c,{variant:"outline",disabled:f.value,onClick:o[2]||(o[2]=d=>u.value=!1)},{default:e.withCtx(()=>[...o[30]||(o[30]=[e.createTextVNode("Cancel",-1)])]),_:1},8,["disabled"]),e.createVNode(c,{disabled:f.value,onClick:m},{default:e.withCtx(()=>[f.value?(e.openBlock(),e.createBlock(e.unref(p.Loader2),{key:0,class:"size-4 animate-spin"})):e.createCommentVNode("",!0),o[31]||(o[31]=e.createTextVNode("Enable account insights",-1))]),_:1},8,["disabled"])]),_:1})]),_:1})]),_:1},8,["open"])])}}}),Bt={class:"space-y-5"},Tt={key:0,role:"status",class:"flex items-center justify-center gap-2 rounded-xl border py-20 text-sm text-muted-foreground"},St={key:2,class:"grid gap-5 md:grid-cols-2"},Dt={class:"min-w-0 rounded-xl border p-5"},$t={key:0,class:"mt-4 space-y-4 text-sm"},Mt={class:"mt-1 font-medium"},At={class:"mt-1 break-words"},Rt={class:"grid grid-cols-2 gap-4"},Lt={class:"mt-1"},Ut={class:"mt-1 break-words"},Pt={class:"mt-1 break-all font-mono text-xs"},It={key:1,class:"mt-3 text-sm leading-6 text-muted-foreground"},zt={class:"min-w-0 rounded-xl border p-5"},Ht={key:0,class:"mt-4 grid grid-cols-2 gap-4 text-sm"},Ot={class:"col-span-2"},Ft={class:"mt-1 break-words font-medium"},qt={class:"mt-1 break-words"},jt={class:"mt-1 break-words"},Yt={class:"mt-1 break-words"},Qt={class:"mt-1"},Kt={class:"col-span-2"},Wt={class:"mt-1 break-all font-mono text-xs"},Jt={key:1,class:"mt-3 text-sm leading-6 text-muted-foreground"},Gt={class:"min-w-0 rounded-xl border p-5"},Xt={class:"mt-4 text-sm"},Zt={class:"mt-1 font-medium"},eo={key:0,class:"mt-4 divide-y border-t text-sm"},to={class:"text-muted-foreground"},oo={key:1,class:"mt-3 text-sm leading-6 text-muted-foreground"},ao={class:"min-w-0 rounded-xl border p-5"},lo={key:0,class:"mt-4 space-y-4 text-sm"},no={class:"mt-1 whitespace-pre-wrap break-words"},so={key:0},ro={class:"mt-1 whitespace-pre-wrap break-words"},io={class:"mt-1"},uo={class:"mt-1 break-words"},co={class:"mt-1 whitespace-pre-wrap break-words"},mo={key:1},po={key:1,class:"mt-3 text-sm leading-6 text-muted-foreground"},vo=e.defineComponent({__name:"AccountPanel",setup(x){const E=P.useModuleApi(),l=e.ref(null),V=e.ref(!1),y=e.ref("");async function n(){V.value=!0,y.value="";try{l.value=await E.get("/overview")}catch(v){y.value=O(v,"Account details could not be loaded from Meta.")}finally{V.value=!1}}return e.onMounted(n),(v,a)=>{const u=e.resolveComponent("AlertTitle"),f=e.resolveComponent("Button"),r=e.resolveComponent("AlertDescription"),N=e.resolveComponent("Alert");return e.openBlock(),e.createElementBlock("section",Bt,[a[25]||(a[25]=e.createElementVNode("div",null,[e.createElementVNode("h2",{class:"text-lg font-semibold"},"Account and phone number"),e.createElementVNode("p",{class:"mt-1 text-sm leading-6 text-muted-foreground"},"Current business information, quality, and sending availability reported by Meta.")],-1)),V.value?(e.openBlock(),e.createElementBlock("div",Tt,[e.createVNode(e.unref(p.Loader2),{class:"size-4 animate-spin"}),a[0]||(a[0]=e.createTextVNode("Loading account details…",-1))])):y.value?(e.openBlock(),e.createBlock(N,{key:1,variant:"destructive"},{default:e.withCtx(()=>[e.createVNode(e.unref(p.AlertCircle)),e.createVNode(u,null,{default:e.withCtx(()=>[...a[1]||(a[1]=[e.createTextVNode("Account unavailable",-1)])]),_:1}),e.createVNode(r,{class:"space-y-3"},{default:e.withCtx(()=>[e.createElementVNode("p",null,e.toDisplayString(y.value),1),e.createVNode(f,{variant:"outline",size:"sm",onClick:n},{default:e.withCtx(()=>[...a[2]||(a[2]=[e.createTextVNode("Try again",-1)])]),_:1})]),_:1})]),_:1})):l.value?(e.openBlock(),e.createElementBlock("div",St,[e.createElementVNode("section",Dt,[a[8]||(a[8]=e.createElementVNode("h3",{class:"font-semibold"},"Selected phone number",-1)),l.value.phone.data?(e.openBlock(),e.createElementBlock("dl",$t,[e.createElementVNode("div",null,[a[3]||(a[3]=e.createElementVNode("dt",{class:"text-muted-foreground"},"Phone number",-1)),e.createElementVNode("dd",Mt,e.toDisplayString(l.value.phone.data.displayPhoneNumber||"Not available"),1)]),e.createElementVNode("div",null,[a[4]||(a[4]=e.createElementVNode("dt",{class:"text-muted-foreground"},"Verified name",-1)),e.createElementVNode("dd",At,e.toDisplayString(l.value.phone.data.verifiedName||"Not available"),1)]),e.createElementVNode("div",Rt,[e.createElementVNode("div",null,[a[5]||(a[5]=e.createElementVNode("dt",{class:"text-muted-foreground"},"Quality rating",-1)),e.createElementVNode("dd",Lt,e.toDisplayString(e.unref(_)(l.value.phone.data.qualityRating)),1)]),e.createElementVNode("div",null,[a[6]||(a[6]=e.createElementVNode("dt",{class:"text-muted-foreground"},"Verification",-1)),e.createElementVNode("dd",Ut,e.toDisplayString(e.unref(_)(l.value.phone.data.verificationStatus)),1)])]),e.createElementVNode("div",null,[a[7]||(a[7]=e.createElementVNode("dt",{class:"text-muted-foreground"},"Phone number ID",-1)),e.createElementVNode("dd",Pt,e.toDisplayString(l.value.phone.data.id),1)])])):(e.openBlock(),e.createElementBlock("p",It,e.toDisplayString(l.value.phone.reason||"Phone details are not available."),1))]),e.createElementVNode("section",zt,[a[15]||(a[15]=e.createElementVNode("h3",{class:"font-semibold"},"Business account",-1)),l.value.account.data?(e.openBlock(),e.createElementBlock("dl",Ht,[e.createElementVNode("div",Ot,[a[9]||(a[9]=e.createElementVNode("dt",{class:"text-muted-foreground"},"Name",-1)),e.createElementVNode("dd",Ft,e.toDisplayString(l.value.account.data.name||"Not available"),1)]),e.createElementVNode("div",null,[a[10]||(a[10]=e.createElementVNode("dt",{class:"text-muted-foreground"},"Account status",-1)),e.createElementVNode("dd",qt,e.toDisplayString(e.unref(_)(l.value.account.data.status)),1)]),e.createElementVNode("div",null,[a[11]||(a[11]=e.createElementVNode("dt",{class:"text-muted-foreground"},"Review status",-1)),e.createElementVNode("dd",jt,e.toDisplayString(e.unref(_)(l.value.account.data.reviewStatus)),1)]),e.createElementVNode("div",null,[a[12]||(a[12]=e.createElementVNode("dt",{class:"text-muted-foreground"},"Business verification",-1)),e.createElementVNode("dd",Yt,e.toDisplayString(e.unref(_)(l.value.account.data.verificationStatus)),1)]),e.createElementVNode("div",null,[a[13]||(a[13]=e.createElementVNode("dt",{class:"text-muted-foreground"},"Currency",-1)),e.createElementVNode("dd",Qt,e.toDisplayString(l.value.account.data.currency||"Not available"),1)]),e.createElementVNode("div",Kt,[a[14]||(a[14]=e.createElementVNode("dt",{class:"text-muted-foreground"},"Account ID",-1)),e.createElementVNode("dd",Wt,e.toDisplayString(l.value.account.data.id),1)])])):(e.openBlock(),e.createElementBlock("p",Jt,e.toDisplayString(l.value.account.reason||"Business account details are not available."),1))]),e.createElementVNode("section",Gt,[a[17]||(a[17]=e.createElementVNode("h3",{class:"font-semibold"},"Sending health",-1)),l.value.health.data?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createElementVNode("dl",Xt,[a[16]||(a[16]=e.createElementVNode("dt",{class:"text-muted-foreground"},"Can send messages",-1)),e.createElementVNode("dd",Zt,e.toDisplayString(e.unref(_)(l.value.health.data.canSendMessage)),1)]),l.value.health.data.entities.length?(e.openBlock(),e.createElementBlock("ul",eo,[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value.health.data.entities,(g,m)=>(e.openBlock(),e.createElementBlock("li",{key:`${g.id}-${m}`,class:"flex flex-wrap justify-between gap-2 py-3"},[e.createElementVNode("span",to,e.toDisplayString(e.unref(_)(g.type)),1),e.createElementVNode("span",null,e.toDisplayString(e.unref(_)(g.canSendMessage)),1)]))),128))])):e.createCommentVNode("",!0)],64)):(e.openBlock(),e.createElementBlock("p",oo,e.toDisplayString(l.value.health.reason||"Meta has not returned sending health for this account."),1))]),e.createElementVNode("section",ao,[a[24]||(a[24]=e.createElementVNode("h3",{class:"font-semibold"},"Business profile",-1)),l.value.profile.data?(e.openBlock(),e.createElementBlock("dl",lo,[e.createElementVNode("div",null,[a[18]||(a[18]=e.createElementVNode("dt",{class:"text-muted-foreground"},"About",-1)),e.createElementVNode("dd",no,e.toDisplayString(l.value.profile.data.about||"Not provided"),1)]),l.value.profile.data.description?(e.openBlock(),e.createElementBlock("div",so,[a[19]||(a[19]=e.createElementVNode("dt",{class:"text-muted-foreground"},"Description",-1)),e.createElementVNode("dd",ro,e.toDisplayString(l.value.profile.data.description),1)])):e.createCommentVNode("",!0),e.createElementVNode("div",null,[a[20]||(a[20]=e.createElementVNode("dt",{class:"text-muted-foreground"},"Industry",-1)),e.createElementVNode("dd",io,e.toDisplayString(e.unref(_)(l.value.profile.data.vertical)),1)]),e.createElementVNode("div",null,[a[21]||(a[21]=e.createElementVNode("dt",{class:"text-muted-foreground"},"Email",-1)),e.createElementVNode("dd",uo,e.toDisplayString(l.value.profile.data.email||"Not provided"),1)]),e.createElementVNode("div",null,[a[22]||(a[22]=e.createElementVNode("dt",{class:"text-muted-foreground"},"Address",-1)),e.createElementVNode("dd",co,e.toDisplayString(l.value.profile.data.address||"Not provided"),1)]),l.value.profile.data.websites.length?(e.openBlock(),e.createElementBlock("div",mo,[a[23]||(a[23]=e.createElementVNode("dt",{class:"text-muted-foreground"},"Websites",-1)),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(l.value.profile.data.websites,g=>(e.openBlock(),e.createElementBlock("dd",{key:g,class:"mt-1 break-all"},e.toDisplayString(g),1))),128))])):e.createCommentVNode("",!0)])):(e.openBlock(),e.createElementBlock("p",po,e.toDisplayString(l.value.profile.reason||"The business profile is not available."),1))])])):e.createCommentVNode("",!0)])}}}),fo={class:"mx-auto flex w-full min-w-0 max-w-7xl flex-1 flex-col px-4 py-6 sm:px-6 sm:py-10 lg:px-8"},xo={class:"flex flex-wrap items-start justify-between gap-4"},Vo={class:"flex flex-wrap items-center gap-3"},No={key:0,class:"mt-1 text-sm font-medium"},go={class:"ml-2 font-normal text-muted-foreground"},yo={key:0,class:"mt-8 rounded-xl border border-dashed p-8 text-center"},bo={key:2,role:"status",class:"flex items-center justify-center gap-2 py-24 text-sm text-muted-foreground"},Co={key:3,class:"mt-8 rounded-xl border border-dashed p-8 text-center sm:p-12"},wo=e.defineComponent({__name:"Overview",setup(x){const E=P.useModuleApi(),{hasPermission:l}=P.useModulePermissions();P.useModuleBreadcrumbs(()=>[]);const V=e.computed(()=>l("view-whatsapp")),y=e.computed(()=>l("manage-whatsapp-templates")),n=e.computed(()=>l("manage-whatsapp-insights")),v=e.ref(null),a=e.ref(!1),u=e.ref(""),f=e.ref("templates"),r=e.ref(0);async function N(){if(V.value){a.value=!0,u.value="";try{v.value=await E.get("/connection"),r.value++}catch(g){u.value=O(g,"The WhatsApp connection could not be loaded.")}finally{a.value=!1}}}return e.onMounted(N),(g,m)=>{const h=e.resolveComponent("Badge"),o=e.resolveComponent("Button"),I=e.resolveComponent("AlertTitle"),L=e.resolveComponent("AlertDescription"),U=e.resolveComponent("Alert"),C=e.resolveComponent("TabsTrigger"),s=e.resolveComponent("TabsList"),S=e.resolveComponent("TabsContent"),M=e.resolveComponent("Tabs");return e.openBlock(),e.createElementBlock("main",fo,[e.createElementVNode("header",xo,[e.createElementVNode("div",null,[e.createElementVNode("div",Vo,[m[2]||(m[2]=e.createElementVNode("h1",{class:"text-2xl font-semibold tracking-tight sm:text-3xl"},"WhatsApp Business",-1)),v.value?.connected?(e.openBlock(),e.createBlock(h,{key:0,variant:"outline",class:"gap-1.5"},{default:e.withCtx(()=>[...m[1]||(m[1]=[e.createElementVNode("span",{class:"size-1.5 rounded-full bg-emerald-500"},null,-1),e.createTextVNode(" Connected ",-1)])]),_:1})):e.createCommentVNode("",!0)]),m[3]||(m[3]=e.createElementVNode("p",{class:"mt-2 text-sm leading-6 text-muted-foreground"}," Manage your message templates and follow their performance. ",-1)),v.value?.connected?(e.openBlock(),e.createElementBlock("p",No,[e.createTextVNode(e.toDisplayString(v.value.verifiedName||"Connected business")+" ",1),e.createElementVNode("span",go,e.toDisplayString(v.value.displayPhoneNumber),1)])):e.createCommentVNode("",!0)]),V.value?(e.openBlock(),e.createBlock(o,{key:0,variant:"outline",size:"sm",disabled:a.value,onClick:N},{default:e.withCtx(()=>[e.createVNode(e.unref(p.RefreshCw),{class:e.normalizeClass(["size-4",{"animate-spin":a.value}])},null,8,["class"]),m[4]||(m[4]=e.createTextVNode(" Refresh ",-1))]),_:1},8,["disabled"])):e.createCommentVNode("",!0)]),V.value?u.value?(e.openBlock(),e.createBlock(U,{key:1,variant:"destructive",class:"mt-8"},{default:e.withCtx(()=>[e.createVNode(e.unref(p.AlertCircle)),e.createVNode(I,null,{default:e.withCtx(()=>[...m[7]||(m[7]=[e.createTextVNode("Connection unavailable",-1)])]),_:1}),e.createVNode(L,null,{default:e.withCtx(()=>[e.createTextVNode(e.toDisplayString(u.value),1)]),_:1})]),_:1})):a.value&&!v.value?(e.openBlock(),e.createElementBlock("div",bo,[e.createVNode(e.unref(p.Loader2),{class:"size-4 animate-spin"}),m[8]||(m[8]=e.createTextVNode(" Loading your connection… ",-1))])):v.value&&!v.value.connected?(e.openBlock(),e.createElementBlock("section",Co,[e.createVNode(e.unref(p.Smartphone),{class:"mx-auto size-7 text-muted-foreground"}),m[9]||(m[9]=e.createElementVNode("h2",{class:"mt-4 font-semibold"},"Select your WhatsApp integration",-1)),m[10]||(m[10]=e.createElementVNode("p",{class:"mx-auto mt-2 max-w-lg text-sm leading-6 text-muted-foreground"}," Add a WhatsApp Business account in your Studio project integrations, then select it in this module’s settings. A Studio administrator can set this up for you. ",-1))])):v.value?.connected?(e.openBlock(),e.createBlock(M,{key:4,modelValue:f.value,"onUpdate:modelValue":m[0]||(m[0]=c=>f.value=c),class:"mt-7 min-w-0"},{default:e.withCtx(()=>[e.createVNode(s,{class:"mb-5 grid h-auto w-full grid-cols-3 sm:w-auto sm:self-start"},{default:e.withCtx(()=>[e.createVNode(C,{value:"templates",class:"gap-2 px-2 py-2 sm:px-4"},{default:e.withCtx(()=>[e.createVNode(e.unref(p.FileText),{class:"hidden size-4 sm:block"}),m[11]||(m[11]=e.createTextVNode("Templates",-1))]),_:1}),e.createVNode(C,{value:"insights",class:"gap-2 px-2 py-2 sm:px-4"},{default:e.withCtx(()=>[e.createVNode(e.unref(p.BarChart3),{class:"hidden size-4 sm:block"}),m[12]||(m[12]=e.createTextVNode("Insights",-1))]),_:1}),e.createVNode(C,{value:"account",class:"gap-2 px-2 py-2 sm:px-4"},{default:e.withCtx(()=>[e.createVNode(e.unref(p.Smartphone),{class:"hidden size-4 sm:block"}),m[13]||(m[13]=e.createTextVNode("Account",-1))]),_:1})]),_:1}),e.createVNode(S,{value:"templates"},{default:e.withCtx(()=>[v.value.connected&&f.value==="templates"?(e.openBlock(),e.createBlock(Xe,{key:r.value,"can-manage":y.value},null,8,["can-manage"])):e.createCommentVNode("",!0)]),_:1}),e.createVNode(S,{value:"insights"},{default:e.withCtx(()=>[v.value.connected&&f.value==="insights"?(e.openBlock(),e.createBlock(ht,{key:r.value,"can-manage":n.value},null,8,["can-manage"])):e.createCommentVNode("",!0)]),_:1}),e.createVNode(S,{value:"account"},{default:e.withCtx(()=>[v.value.connected&&f.value==="account"?(e.openBlock(),e.createBlock(vo,{key:r.value})):e.createCommentVNode("",!0)]),_:1})]),_:1},8,["modelValue"])):e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("section",yo,[e.createVNode(e.unref(p.ShieldAlert),{class:"mx-auto size-6 text-muted-foreground"}),m[5]||(m[5]=e.createElementVNode("h2",{class:"mt-3 font-medium"},"You cannot view this WhatsApp account",-1)),m[6]||(m[6]=e.createElementVNode("p",{class:"mt-2 text-sm text-muted-foreground"},"Ask a Studio administrator for the View WhatsApp permission.",-1))]))])}}});exports.default=wo;