zignal-stencil-library 1.1.149 → 1.1.151

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 (183) hide show
  1. package/dist/cjs/autocomplete-address_44.cjs.entry.js +88 -55
  2. package/dist/cjs/{dayjs-BSEUEjDP.js → dayjs-C-Yh2o_8.js} +1 -1
  3. package/dist/cjs/{index-BcqF7VoK.js → index-BXiJqJvp.js} +14 -2
  4. package/dist/cjs/index.cjs.js +1 -1
  5. package/dist/cjs/loader.cjs.js +1 -1
  6. package/dist/cjs/quick-message-app.cjs.entry.js +3 -3
  7. package/dist/cjs/zignal-stencil-library.cjs.js +1 -1
  8. package/dist/collection/components/autocomplete-address/autocomplete-address.css +1 -1
  9. package/dist/collection/components/autocomplete-multiple-select/autocomplete-multiple-select.css +1 -1
  10. package/dist/collection/components/autocomplete-select/autocomplete-select.css +1 -1
  11. package/dist/collection/components/channel-box/channel-box.css +1 -1
  12. package/dist/collection/components/chat-app/chat-app.css +1 -1
  13. package/dist/collection/components/chat-header/chat-header.css +1 -1
  14. package/dist/collection/components/chat-input/chat-input.css +1 -1
  15. package/dist/collection/components/chat-input/chat-input.js +3 -2
  16. package/dist/collection/components/checkbox-list/checkbox-list.css +1 -1
  17. package/dist/collection/components/dialog-bill-editor/dialog-bill-editor.css +1 -1
  18. package/dist/collection/components/dialog-custom-filter/dialog-custom-filter.css +1 -1
  19. package/dist/collection/components/dialog-editor/dialog-editor.css +1 -1
  20. package/dist/collection/components/dialog-preview-media/dialog-preview-media.css +1 -1
  21. package/dist/collection/components/dialog-search/dialog-search.css +1 -1
  22. package/dist/collection/components/internal-component/chat-item.js +2 -2
  23. package/dist/collection/components/menu-chat-channel/menu-chat-channel.css +1 -1
  24. package/dist/collection/components/menu-chat-type/menu-chat-type.css +1 -1
  25. package/dist/collection/components/menu-list/menu-list.css +1 -1
  26. package/dist/collection/components/message-box/message-box.css +1 -1
  27. package/dist/collection/components/message-box/message-box.js +44 -11
  28. package/dist/collection/components/message-content/message-content.css +1 -1
  29. package/dist/collection/components/message-item/message-item.css +1 -1
  30. package/dist/collection/components/message-media/message-media.css +1 -1
  31. package/dist/collection/components/profile-history/profile-history.css +1 -1
  32. package/dist/collection/components/profile-info/profile-info.css +1 -1
  33. package/dist/collection/components/profile-media/profile-media.css +1 -1
  34. package/dist/collection/components/profile-tabs/profile-tabs.css +1 -1
  35. package/dist/collection/components/quick-message-add-template/quick-message-add-template.css +1 -1
  36. package/dist/collection/components/quick-message-app/quick-message-app.css +1 -1
  37. package/dist/collection/components/quick-message-file/quick-message-file.css +1 -1
  38. package/dist/collection/components/quick-message-image/quick-message-image.css +1 -1
  39. package/dist/collection/components/quick-message-modal/quick-message-modal.css +1 -1
  40. package/dist/collection/components/quick-message-template/quick-message-template.css +1 -1
  41. package/dist/collection/components/search-box/search-box.css +1 -1
  42. package/dist/collection/components/status-badge/status-badge.css +1 -1
  43. package/dist/collection/components/tag-list/tag-list.css +1 -1
  44. package/dist/collection/components/tag-or-status-item/tag-or-status-item.css +1 -1
  45. package/dist/collection/components/tag-popper/tag-popper.css +1 -1
  46. package/dist/collection/components/typography-clamp/typography-clamp.css +1 -1
  47. package/dist/collection/components/z-avatar/z-avatar.css +1 -1
  48. package/dist/collection/components/z-dialog/z-dialog.css +1 -1
  49. package/dist/components/autocomplete-address.js +1 -1
  50. package/dist/components/autocomplete-multiple-select.js +1 -1
  51. package/dist/components/autocomplete-select.js +1 -1
  52. package/dist/components/channel-box.js +1 -1
  53. package/dist/components/chat-app.js +39 -39
  54. package/dist/components/chat-header.js +1 -1
  55. package/dist/components/chat-input.js +1 -1
  56. package/dist/components/checkbox-list.js +1 -1
  57. package/dist/components/dialog-bill-editor.js +1 -1
  58. package/dist/components/dialog-custom-filter.js +1 -1
  59. package/dist/components/dialog-editor.js +1 -1
  60. package/dist/components/dialog-preview-media.js +1 -1
  61. package/dist/components/dialog-search.js +1 -1
  62. package/dist/components/index.js +14 -2
  63. package/dist/components/menu-chat-channel.js +1 -1
  64. package/dist/components/menu-chat-type.js +1 -1
  65. package/dist/components/menu-list.js +1 -1
  66. package/dist/components/message-box.js +1 -1
  67. package/dist/components/message-content.js +1 -1
  68. package/dist/components/message-item.js +1 -1
  69. package/dist/components/message-media.js +1 -1
  70. package/dist/components/p-9C7AwGvM.js +223 -0
  71. package/dist/components/p-BB9ah96y.js +554 -0
  72. package/dist/components/p-BRpYxO3M.js +119 -0
  73. package/dist/components/p-BTCmyW_D.js +98 -0
  74. package/dist/components/p-BYBimJCQ.js +312 -0
  75. package/dist/components/p-BZZk_Nhz.js +515 -0
  76. package/dist/components/p-BhBNwwRB.js +154 -0
  77. package/dist/components/p-Bmp0v9GX.js +51 -0
  78. package/dist/components/p-Bp0zz6Y6.js +135 -0
  79. package/dist/components/p-BsI1HZGG.js +266 -0
  80. package/dist/components/p-BzKx9Adn.js +611 -0
  81. package/dist/components/p-C5VvgOE9.js +599 -0
  82. package/dist/components/p-CE3c3IL-.js +128 -0
  83. package/dist/components/p-CNszmmDL.js +102 -0
  84. package/dist/components/p-COZKLVfW.js +168 -0
  85. package/dist/components/p-CYRSDtTf.js +57 -0
  86. package/dist/components/p-CZ3iEwuo.js +563 -0
  87. package/dist/components/p-C_PDZKGG.js +158 -0
  88. package/dist/components/p-CeBFtax1.js +166 -0
  89. package/dist/components/p-CimyVUlr.js +32 -0
  90. package/dist/components/p-Ck5c82Vm.js +74 -0
  91. package/dist/components/p-Cq4sFbGO.js +129 -0
  92. package/dist/components/p-CtoKbtXk.js +156 -0
  93. package/dist/components/p-D8oZapy4.js +230 -0
  94. package/dist/components/p-DKBK5jV_.js +122 -0
  95. package/dist/components/p-DOxk_wHY.js +107 -0
  96. package/dist/components/p-DQYxfaQG.js +108 -0
  97. package/dist/components/p-DSkVwgQ_.js +155 -0
  98. package/dist/components/p-DXAea_-R.js +96 -0
  99. package/dist/components/p-DfZBI89D.js +214 -0
  100. package/dist/components/p-Dt295Plo.js +178 -0
  101. package/dist/components/p-DtS5-nUS.js +231 -0
  102. package/dist/components/p-Dx2yZdeP.js +138 -0
  103. package/dist/components/p-MPfQpLuD.js +684 -0
  104. package/dist/components/p-_ZatmxBq.js +65 -0
  105. package/dist/components/p-vWZ6UOF3.js +161 -0
  106. package/dist/components/p-z4HeU4Nl.js +76 -0
  107. package/dist/components/p-zdFO-UlQ.js +171 -0
  108. package/dist/components/profile-history.js +1 -1
  109. package/dist/components/profile-info.js +1 -1
  110. package/dist/components/profile-media.js +1 -1
  111. package/dist/components/profile-tabs.js +1 -1
  112. package/dist/components/quick-message-add-template.js +1 -1
  113. package/dist/components/quick-message-app.js +6 -6
  114. package/dist/components/quick-message-file.js +1 -1
  115. package/dist/components/quick-message-image.js +1 -1
  116. package/dist/components/quick-message-modal.js +1 -1
  117. package/dist/components/quick-message-template.js +1 -1
  118. package/dist/components/search-box.js +1 -1
  119. package/dist/components/status-badge.js +1 -1
  120. package/dist/components/summarize-message-section.js +1 -1
  121. package/dist/components/tag-list.js +1 -1
  122. package/dist/components/tag-or-status-item.js +1 -1
  123. package/dist/components/tag-popper.js +1 -1
  124. package/dist/components/typography-clamp.js +1 -1
  125. package/dist/components/user-info-section.js +1 -1
  126. package/dist/components/z-avatar.js +1 -1
  127. package/dist/components/z-dialog.js +1 -1
  128. package/dist/esm/autocomplete-address_44.entry.js +88 -55
  129. package/dist/esm/{dayjs-CudFbPUo.js → dayjs-BzCDyqMN.js} +1 -1
  130. package/dist/esm/{index-B3nb31xy.js → index-DPOSmdTJ.js} +14 -2
  131. package/dist/esm/index.js +1 -1
  132. package/dist/esm/loader.js +1 -1
  133. package/dist/esm/quick-message-app.entry.js +3 -3
  134. package/dist/esm/zignal-stencil-library.js +1 -1
  135. package/dist/types/components/message-box/message-box.d.ts +4 -0
  136. package/dist/zignal-stencil-library/index.esm.js +1 -1
  137. package/dist/zignal-stencil-library/p-DPOSmdTJ.js +1 -0
  138. package/dist/zignal-stencil-library/{p-QJh7p40E.js → p-DPcrmSvN.js} +1 -1
  139. package/dist/zignal-stencil-library/p-e66b7102.entry.js +2 -0
  140. package/dist/zignal-stencil-library/p-f6779826.entry.js +1 -0
  141. package/dist/zignal-stencil-library/zignal-stencil-library.esm.js +1 -1
  142. package/package.json +1 -1
  143. package/dist/components/p-5FDU529Q.js +0 -129
  144. package/dist/components/p-B3sv8Cpm.js +0 -684
  145. package/dist/components/p-B9PRtKKm.js +0 -554
  146. package/dist/components/p-BWv8MbzZ.js +0 -158
  147. package/dist/components/p-BZ7KCncK.js +0 -178
  148. package/dist/components/p-BaATyWCh.js +0 -102
  149. package/dist/components/p-Bd28bEf_.js +0 -155
  150. package/dist/components/p-Bk2GvoAQ.js +0 -515
  151. package/dist/components/p-BmD78zPG.js +0 -161
  152. package/dist/components/p-BpHIg6Zj.js +0 -122
  153. package/dist/components/p-C-wUv6vx.js +0 -98
  154. package/dist/components/p-C9lpq3mD.js +0 -578
  155. package/dist/components/p-CTCAyv3Q.js +0 -51
  156. package/dist/components/p-CWAhjm33.js +0 -74
  157. package/dist/components/p-CXYv5DLC.js +0 -128
  158. package/dist/components/p-C_OxAbGN.js +0 -598
  159. package/dist/components/p-CdDmXJDZ.js +0 -168
  160. package/dist/components/p-CgbHzdYE.js +0 -214
  161. package/dist/components/p-CmgyIFb-.js +0 -266
  162. package/dist/components/p-CnsAVxMy.js +0 -65
  163. package/dist/components/p-CpA5hc_o.js +0 -312
  164. package/dist/components/p-CzfGejIm.js +0 -119
  165. package/dist/components/p-D6IxrcVY.js +0 -166
  166. package/dist/components/p-D7LdFiVw.js +0 -57
  167. package/dist/components/p-D8yzEuEG.js +0 -108
  168. package/dist/components/p-DC0UH_ws.js +0 -231
  169. package/dist/components/p-DS1y2tKg.js +0 -563
  170. package/dist/components/p-DTaNTSq8.js +0 -107
  171. package/dist/components/p-D_Jqalu2.js +0 -135
  172. package/dist/components/p-DcC5eHv4.js +0 -230
  173. package/dist/components/p-DfKJdTvJ.js +0 -32
  174. package/dist/components/p-DrueVuU5.js +0 -223
  175. package/dist/components/p-DsWfCgkk.js +0 -154
  176. package/dist/components/p-Du5YXEgv.js +0 -156
  177. package/dist/components/p-Kj4A18ko.js +0 -138
  178. package/dist/components/p-KkLF26TT.js +0 -76
  179. package/dist/components/p-Sc5G6hdD.js +0 -96
  180. package/dist/components/p-j1XqaFsN.js +0 -171
  181. package/dist/zignal-stencil-library/p-47a5491a.entry.js +0 -1
  182. package/dist/zignal-stencil-library/p-B3nb31xy.js +0 -1
  183. package/dist/zignal-stencil-library/p-efc109b8.entry.js +0 -2
@@ -0,0 +1,515 @@
1
+ import { p as proxyCustomElement, H, c as createEvent, h, a as Host } from './p-CspQEuuq.js';
2
+ import { d as dayjs } from './p-B_5_ahYE.js';
3
+ import { b as getQuickMessageTemplates, e as updateQuickMessageTemplate, f as createQuickMessageTemplate, h as deleteQuickMessageTemplate } from './p-Br7G1klJ.js';
4
+ import { c as configStore } from './p-g5ZX6XGs.js';
5
+ import { u as useTranslation } from './p-CjxHbUhu.js';
6
+ import { I as Icon } from './p-Sf5NNGh3.js';
7
+ import { h as handleError, o as openDialog } from './p-uDTLu3vv.js';
8
+ import { d as defineCustomElement$6 } from './p-DfZBI89D.js';
9
+ import { d as defineCustomElement$5 } from './p-DHav3rKr.js';
10
+ import { d as defineCustomElement$4 } from './p-DXf9j5Kz.js';
11
+ import { d as defineCustomElement$3 } from './p-C8_9J8Sz.js';
12
+ import { d as defineCustomElement$2 } from './p-BDeyoiwX.js';
13
+ import { d as defineCustomElement$1 } from './p-ByksJVYG.js';
14
+
15
+ const quickMessageTemplateCss = "@layer base{*,::backdrop,:after,:before{--tw-space-y-reverse:0;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-alpha:100%;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-offset-width:0;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-space-x-reverse:0;--tw-drop-shadow-alpha:100%;border:0 solid;box-sizing:border-box;margin:0;padding:0}}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-space-x-reverse:0;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-space-y-reverse:0;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0}}}@layer theme{:host,:root{--container-xl:36rem;--text-xl:1.25rem;--text-xl--line-height:1.4;--color-yellow-500:oklch(79.5% .184 86.047);--color-yellow-300:oklch(90.5% .182 98.111);--container-3xs:16rem;--container-sm:24rem;--color-red-50:oklch(97.1% .013 17.38);--color-red-200:oklch(88.5% .062 18.334);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-900:oklch(20.8% .042 265.755);--container-xs:20rem;--container-md:28rem;--text-2xl:1.5rem;--text-2xl--line-height:1.33333;--color-gray-400:oklch(70.7% .022 261.325);--color-gray-600:oklch(44.6% .03 256.802);--color-red-700:oklch(50.5% .213 27.518);--color-green-500:oklch(72.3% .219 149.579);--color-green-700:oklch(52.7% .154 150.069);--color-blue-500:oklch(62.3% .214 259.815);--color-pink-100:oklch(94.8% .028 342.258);--font-weight-bold:700;--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace;--color-red-500:oklch(63.7% .237 25.331);--color-blue-600:oklch(54.6% .245 262.881);--color-slate-500:oklch(55.4% .046 257.417);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-500:oklch(55.1% .027 264.364);--color-black:#000;--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:1.33333;--text-sm:.875rem;--text-sm--line-height:1.42857;--text-base:1rem;--text-base--line-height:1.5;--text-lg:1.125rem;--text-lg--line-height:1.55556;--font-weight-medium:500;--font-weight-semibold:600;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:\"Kanit\",var(--default-font);--default-mono-font-family:var(--font-mono);--default-font:ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--color-primary:#e02848;--color-secondary:#023761;--color-background:#fff;--color-surface:#000;--color-paper:#f3f4f6;--color-divider:#e5e7eb;--color-theme-gray:#6b7280;--color-overlay:#0000004d;--color-selected:#fdeef1}}@layer base{::file-selector-button{appearance:button;background-color:#0000;border:0 solid;border-radius:0;box-sizing:border-box;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;margin:0;margin-inline-end:4px;opacity:1;padding:0}:host,html{-webkit-text-size-adjust:100%;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);tab-size:4;-webkit-tap-highlight-color:transparent;line-height:1.5}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-size:1em;font-variation-settings:var(--default-mono-font-variation-settings,normal)}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}button,input,optgroup,select,textarea{background-color:#0000;border-radius:0;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;opacity:1}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;min-height:1.5em;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0;padding-bottom:0;padding-top:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0;padding-bottom:0;padding-top:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0;padding-bottom:0;padding-top:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0;padding-bottom:0;padding-top:0}::-webkit-datetime-edit-meridiem-field{padding-block:0;padding-bottom:0;padding-top:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}[multiple],[type=date],[type=datetime-local],[type=email],[type=month],[type=number],[type=password],[type=search],[type=tel],[type=text],[type=time],[type=url],[type=week],input:where(:not([type])),select,textarea{appearance:none;--tw-shadow:0 0 #0000;background-color:#fff;border-color:oklch(55.1% .027 264.364);border-radius:0;border-width:1px;font-size:1rem;line-height:1.5rem;padding:.5rem .75rem}:is([type=text],input:where(:not([type])),[type=email],[type=url],[type=password],[type=number],[type=date],[type=datetime-local],[type=month],[type=search],[type=tel],[type=time],[type=week],[multiple],textarea,select):focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:oklch(54.6% .245 262.881);--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color);border-color:oklch(54.6% .245 262.881);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline:2px solid #0000}input::placeholder,textarea::placeholder{color:oklch(55.1% .027 264.364);opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}select{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='oklch(55.1%25 0.027 264.364)' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E\");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem;print-color-adjust:exact}[multiple],[size]:where(select:not([size=\"1\"])){background-image:none;background-position:0 0;background-repeat:unset;background-size:initial;padding-right:.75rem;print-color-adjust:unset}[type=checkbox],[type=radio]{appearance:none;color:oklch(54.6% .245 262.881);print-color-adjust:exact;-webkit-user-select:none;user-select:none;vertical-align:middle;--tw-shadow:0 0 #0000;background-color:#fff;background-origin:border-box;border-color:oklch(55.1% .027 264.364);border-width:1px;display:inline-block;flex-shrink:0;height:1rem;padding:0;width:1rem}[type=checkbox]{border-radius:0}[type=radio]{border-radius:100%}[type=checkbox]:focus,[type=radio]:focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:2px;--tw-ring-offset-color:#fff;--tw-ring-color:oklch(54.6% .245 262.881);--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline:2px solid #0000}[type=checkbox]:checked,[type=radio]:checked{background-color:currentColor;background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:#0000}[type=checkbox]:checked{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 16 16'%3E%3Cpath d='M12.207 4.793a1 1 0 0 1 0 1.414l-5 5a1 1 0 0 1-1.414 0l-2-2a1 1 0 0 1 1.414-1.414L6.5 9.086l4.293-4.293a1 1 0 0 1 1.414 0'/%3E%3C/svg%3E\")}[type=radio]:checked{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='3'/%3E%3C/svg%3E\")}[type=checkbox]:checked:focus,[type=checkbox]:checked:hover,[type=radio]:checked:focus,[type=radio]:checked:hover{background-color:currentColor;border-color:#0000}[type=checkbox]:indeterminate{background-color:currentColor;background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3E%3Cpath stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3E%3C/svg%3E\");background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:#0000}[type=checkbox]:indeterminate:focus,[type=checkbox]:indeterminate:hover{background-color:currentColor;border-color:#0000}[type=file]{background:unset;border-color:inherit;border-radius:0;border-width:0;font-size:unset;line-height:inherit;padding:0}[type=file]:focus{outline:1px solid buttontext;outline:1px auto -webkit-focus-ring-color}}@layer components{.dialog-backdrop{align-items:center;background-color:#0006;display:flex;inset:calc(var(--spacing)*0);justify-content:center;position:fixed;z-index:50}@supports (color:color-mix(in lab,red,red)){.dialog-backdrop{background-color:color-mix(in oklab,var(--color-black)40%,transparent);background-color:color-mix(in srgb,#00040%,transparent)}}.chat-item{border-radius:var(--radius-xl);cursor:pointer;margin-block:calc(var(--spacing)*1);margin-inline:calc(var(--spacing)*2);padding-block:calc(var(--spacing)*3);padding-inline:calc(var(--spacing)*4);--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);align-items:flex-start;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);display:flex;position:relative}:where(.chat-item>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-end:calc(var(--spacing)*4*(1 - var(--tw-space-x-reverse)));margin-inline-start:calc(var(--spacing)*4*var(--tw-space-x-reverse))}.chat-item .chat-item-pin{position:absolute;right:calc(var(--spacing)*-3);top:calc(var(--spacing)*1)}.chat-item .chat-item-pin-icon{fill:currentColor;height:calc(var(--spacing)*3);rotate:45deg;width:calc(var(--spacing)*3)}.chat-item .chat-item-content-container{display:flex;flex-direction:row;width:100%}:where(.chat-item .chat-item-content-container>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-end:calc(var(--spacing)*4*(1 - var(--tw-space-x-reverse)));margin-inline-start:calc(var(--spacing)*4*var(--tw-space-x-reverse))}.chat-item .chat-item-avatar-wrapper{align-self:center;flex-shrink:0;position:relative}.chat-item .chat-item-avatar-badge{bottom:calc(var(--spacing)*-.5);position:absolute;right:calc(var(--spacing)*-.5)}.chat-item .chat-item-content-wrapper{min-height:calc(var(--spacing)*18);width:100%}.chat-item .chat-item-content-main{align-items:center;display:flex}:where(.chat-item .chat-item-content-main>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-end:calc(var(--spacing)*1*(1 - var(--tw-space-x-reverse)));margin-inline-start:calc(var(--spacing)*1*var(--tw-space-x-reverse))}.chat-item .chat-item-content-main-image{border-radius:3.40282e+38px;height:calc(var(--spacing)*4);width:calc(var(--spacing)*4)}.chat-item .chat-item-content-main-name{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.chat-item .chat-item-content-main-name,.chat-item .chat-item-content-main-time{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.chat-item .chat-item-content-main-time{color:var(--color-gray-500);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));margin-left:auto}.chat-item .chat-item-content-secondary{align-items:flex-start;display:flex;flex-direction:row;width:100%}.chat-item .chat-item-content-secondary-nickname{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.chat-item .chat-item-content-secondary-message,.chat-item .chat-item-content-secondary-nickname{color:var(--color-surface);-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.chat-item .chat-item-content-secondary-message{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.chat-item .chat-item-content-unread{background-color:var(--color-primary);border-radius:3.40282e+38px;color:var(--color-white);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));margin-left:auto}.chat-item .chat-item-content-unread-mark{display:inline-block;height:calc(var(--spacing)*2.5);width:calc(var(--spacing)*2.5)}.chat-item .chat-item-content-unread-count{padding-block:calc(var(--spacing)*.5);padding-inline:calc(var(--spacing)*2)}.z-icon-button{cursor:pointer;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-medium);align-items:center;border-radius:3.40282e+38px;display:inline-flex;font-weight:var(--font-weight-medium);justify-content:center;transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.z-icon-button:focus{--tw-outline-style:none;outline-style:none}.z-icon-button-primary{background-color:var(--color-primary);color:var(--color-white)}.z-icon-button-outlined{border-color:var(--color-primary);border-style:var(--tw-border-style);border-width:1px}.z-icon-button-outlined,.z-icon-button-text{color:var(--color-primary)}.z-icon-button-disabled{cursor:not-allowed;opacity:.5}.z-button{cursor:pointer;--tw-font-weight:var(--font-weight-medium);align-items:center;border-radius:3.40282e+38px;display:inline-flex;font-weight:var(--font-weight-medium);justify-content:center;transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.z-button:focus{--tw-outline-style:none;outline-style:none}.z-button-small{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));padding-block:calc(var(--spacing)*1.5);padding-inline:calc(var(--spacing)*2)}.z-button-medium{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));padding-block:calc(var(--spacing)*2);padding-inline:calc(var(--spacing)*3)}.z-button-large{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height));padding-block:calc(var(--spacing)*3);padding-inline:calc(var(--spacing)*4)}.z-button-primary{background-color:var(--color-primary);color:var(--color-white)}.z-button-outlined{border-color:var(--color-primary);border-style:var(--tw-border-style);border-width:1px;color:var(--color-primary)}.z-button-disabled{cursor:not-allowed;opacity:.5}.z-button-text{margin-inline:calc(var(--spacing)*2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.z-input-area-label{margin-bottom:calc(var(--spacing)*1);--tw-font-weight:var(--font-weight-medium);display:block;font-weight:var(--font-weight-medium)}.z-input-area-input,.z-input-area-label{color:var(--color-surface);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.z-input-area-input{background-color:var(--color-paper);border-color:var(--color-surface);border-radius:var(--radius-lg);border-style:var(--tw-border-style);padding-block:calc(var(--spacing)*2);padding-inline:calc(var(--spacing)*4);--tw-ring-color:var(--color-primary);border-width:1px;width:100%}.z-input-area-input:focus{border-color:var(--color-primary);--tw-outline-style:none;outline-style:none}.z-input-area-error{color:var(--color-red-500);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));margin-top:calc(var(--spacing)*1)}.z-input-label{margin-bottom:calc(var(--spacing)*1);--tw-font-weight:var(--font-weight-medium);display:block;font-weight:var(--font-weight-medium)}.z-input,.z-input-label{color:var(--color-surface);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.z-input{background-color:var(--color-background);border-color:var(--color-divider);border-radius:var(--radius-md);border-style:var(--tw-border-style);padding-block:calc(var(--spacing)*2);padding-inline:calc(var(--spacing)*4);--tw-ring-color:var(--color-primary);border-width:1px;width:100%}.z-input:focus{border-color:var(--color-primary);--tw-outline-style:none;outline-style:none}.z-input-error{color:var(--color-red-500);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));margin-top:calc(var(--spacing)*1)}.z-select-input-label{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));margin-bottom:calc(var(--spacing)*1);--tw-font-weight:var(--font-weight-medium);display:block;font-weight:var(--font-weight-medium)}.z-tag-or-status-item{align-items:center;border-radius:var(--radius-2xl);gap:calc(var(--spacing)*2);padding-block:calc(var(--spacing)*1.5);padding-inline:calc(var(--spacing)*3);--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);display:inline-flex}.z-tag-or-status-item .z-tag-or-status-item-name{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));max-width:calc(var(--spacing)*20)}.z-tag-or-status-item .z-tag-or-status-item-icon{border-radius:3.40282e+38px;height:calc(var(--spacing)*4);width:calc(var(--spacing)*4)}.z-context-input{align-items:stretch;display:flex;flex-direction:row;margin-block:calc(var(--spacing)*1)}.z-context-input-key{background-color:var(--color-background);border-bottom-left-radius:var(--radius-3xl);border-color:var(--color-divider);border-style:var(--tw-border-style);border-top-left-radius:var(--radius-3xl);border-width:1px;color:var(--color-surface);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));max-height:6.4rem;min-height:2.4rem;padding-block:calc(var(--spacing)*2);padding-inline:calc(var(--spacing)*4);resize:none;width:100%;--tw-ring-color:var(--color-primary);flex:1}.z-context-input-key:focus{border-color:var(--color-primary);--tw-outline-style:none;outline-style:none}.z-context-input-value{background-color:var(--color-background);border-bottom-right-radius:var(--radius-3xl);border-color:var(--color-primary);border-style:var(--tw-border-style);border-top-right-radius:var(--radius-3xl);border-width:1px;color:var(--color-surface);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));max-height:6.4rem;min-height:2.4rem;padding-block:calc(var(--spacing)*2);padding-inline:calc(var(--spacing)*4);resize:none;width:100%;--tw-ring-color:var(--color-primary);flex:1}.z-context-input-value:focus{border-color:var(--color-primary);--tw-outline-style:none;outline-style:none}.z-text-with-link{color:var(--color-blue-600);text-decoration-line:underline}.z-button-group{display:inline-flex}.z-button-group-tab{border-radius:var(--radius-md);display:flex;gap:calc(var(--spacing)*1);padding:calc(var(--spacing)*.5)!important}.z-button-group-tab-overlay{background-color:var(--color-overlay)}.z-button-group-item{border-style:var(--tw-border-style);cursor:pointer;--tw-font-weight:var(--font-weight-medium);align-items:center;border-width:1px;display:inline-flex;font-weight:var(--font-weight-medium);justify-content:center;transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.z-button-group-item:focus{--tw-outline-style:none;outline-style:none}.z-button-group-item-tab{align-items:center;border-radius:var(--radius-sm);border-style:var(--tw-border-style)!important;border-width:0!important;display:flex;flex:1;flex-direction:column;gap:calc(var(--spacing)*2);justify-content:center;padding:calc(var(--spacing)*1)!important}.z-button-group-item-tab-selected{background-color:var(--color-white);--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.z-button-group-item-tab-selected,.z-button-group-item-tab-unselected{border-style:var(--tw-border-style)!important;border-width:0!important}.z-button-group-small{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));padding-block:calc(var(--spacing)*1.5);padding-inline:calc(var(--spacing)*2)}.z-button-group-medium{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));padding-block:calc(var(--spacing)*2);padding-inline:calc(var(--spacing)*3)}.z-button-group-large{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height));padding-block:calc(var(--spacing)*3);padding-inline:calc(var(--spacing)*4)}.z-button-group-item-first{border-bottom-left-radius:3.40282e+38px;border-top-left-radius:3.40282e+38px}.z-button-group-item-last{border-bottom-right-radius:3.40282e+38px;border-top-right-radius:3.40282e+38px}.z-button-group-item-middle{border-radius:0}.z-button-group-item-primary-selected{background-color:var(--color-primary);border-color:var(--color-primary);color:var(--color-white)}.z-button-group-item-primary-unselected{background-color:var(--color-white);border-color:var(--color-primary);color:var(--color-primary)}.z-button-group-item-outlined-selected{background-color:var(--color-primary);border-color:var(--color-primary);color:var(--color-white)}.z-button-group-item-outlined-unselected{background-color:#0000;border-color:var(--color-primary);color:var(--color-primary)}.z-button-group-item-disabled{cursor:not-allowed;opacity:.5}.z-button-group-item:not(:first-child){margin-left:-1px}.z-avatar-error{align-items:center;display:flex;justify-content:center}.z-avatar-2x-small{height:calc(var(--spacing)*3);min-height:calc(var(--spacing)*3);min-width:calc(var(--spacing)*3);width:calc(var(--spacing)*3)}.z-avatar-x-small{height:calc(var(--spacing)*4);min-height:calc(var(--spacing)*4);min-width:calc(var(--spacing)*4);width:calc(var(--spacing)*4)}.z-avatar-small{height:calc(var(--spacing)*8);min-height:calc(var(--spacing)*8);min-width:calc(var(--spacing)*8);width:calc(var(--spacing)*8)}.z-avatar-medium{height:calc(var(--spacing)*16);min-height:calc(var(--spacing)*16);min-width:calc(var(--spacing)*16);width:calc(var(--spacing)*16)}.z-avatar-large{height:calc(var(--spacing)*32);min-height:calc(var(--spacing)*32);min-width:calc(var(--spacing)*32);width:calc(var(--spacing)*32)}.z-avatar-full{height:100%;width:100%}.z-avatar-group{background-color:#023761;border-radius:3.40282e+38px}}@layer utilities{.contents{display:contents}.bg-background{background-color:var(--color-background)}.px-4{padding-inline:calc(var(--spacing)*4)}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-surface{color:var(--color-surface)}}[data-theme=light]{--color-primary:#e02848;--color-secondary:#023761;--color-background:#fff;--color-surface:#000;--color-paper:#f3f4f6;--color-divider:#e5e7eb;--color-theme-gray:#6b7280;--color-overlay:#0000004d;--color-selected:#fdeef1}[data-theme=dark]{--color-primary:#b50f30;--color-secondary:#fff;--color-background:#23292d;--color-surface:#fff;--color-paper:#374151;--color-divider:#4b5563;--color-theme-gray:#d1d5db;--color-overlay:#ffffff4d;--color-selected:#3a242e}.scroll-container::-webkit-scrollbar{background:#0000001a;height:8px;width:8px}.scroll-container:active::-webkit-scrollbar,.scroll-container:hover::-webkit-scrollbar{background:#0003}.scroll-container:active::-webkit-scrollbar-thumb,.scroll-container:hover::-webkit-scrollbar-thumb{background:#0006;border-radius:4px}.bg-time-badge{background-color:#0000004d}@supports (color:color-mix(in lab,red,red)){.bg-time-badge{background-color:color-mix(in srgb,var(--color-surface)30%,transparent);background-color:color-mix(in srgb,#00030%,transparent)}}.placeholder-surface::placeholder{color:var(--color-text-gray)}.z-width-100{width:100%}.z-width-90{width:90%}.z-width-75{width:75%}.z-width-50{width:50%}.z-width-25{width:25%}.z-width-0{width:0}.z-animate-width{transition-duration:.5s;transition-property:width;transition-timing-function:cubic-bezier(.4,0,.2,1)}.z-animate-grid-template-cols{transition:grid-template-rows .5s}[type=checkbox]{background-color:var(--color-gray-300);border-color:var(--color-gray-300);border-radius:4px;cursor:pointer}[type=checkbox]:checked,[type=checkbox]:indeterminate{background-color:var(--color-primary);border-color:var(--color-primary);border-radius:4px;cursor:pointer}[type=checkbox]:focus{offset:0;outline-offset:0;--tw-ring-color:var(--color-primary);outline:none}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.grid-cols-1{grid-template-columns:1fr}.grid-cols-1_3{grid-template-columns:1fr 3fr}.grid-cols-1_2_1{grid-template-columns:1fr 2fr 1fr}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:calc(var(--spacing)*0)}.top-3{top:calc(var(--spacing)*3)}.right-3{right:calc(var(--spacing)*3)}.right-4{right:calc(var(--spacing)*4)}.bottom-3{bottom:calc(var(--spacing)*3)}.left-3{left:calc(var(--spacing)*3)}.z-10{z-index:10}.z-80{z-index:80}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-6{margin-top:calc(var(--spacing)*6)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.aspect-square{aspect-ratio:1}.size-4{height:calc(var(--spacing)*4);width:calc(var(--spacing)*4)}.size-6{height:calc(var(--spacing)*6);width:calc(var(--spacing)*6)}.size-8{height:calc(var(--spacing)*8);width:calc(var(--spacing)*8)}.size-12{height:calc(var(--spacing)*12);width:calc(var(--spacing)*12)}.size-14{height:calc(var(--spacing)*14);width:calc(var(--spacing)*14)}.h-7{height:calc(var(--spacing)*7)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-\\[180px\\]{height:180px}.h-\\[220px\\]{height:220px}.h-\\[280px\\]{height:280px}.h-full{height:100%}.w-7{width:calc(var(--spacing)*7)}.w-8{width:calc(var(--spacing)*8)}.w-9{width:calc(var(--spacing)*9)}.w-\\[200px\\]{width:200px}.w-\\[250px\\]{width:250px}.w-full{width:100%}.max-w-full{max-width:100%}.max-w-md{max-width:var(--container-md)}.max-w-xs{max-width:var(--container-xs)}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.animate-spin{animation:var(--animate-spin)}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize-none{resize:none}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:calc(var(--spacing)*1)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-\\[18px\\]{border-radius:18px}.rounded-full{border-radius:3.40282e+38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-\\[1\\.5px\\]{border-style:var(--tw-border-style);border-width:1.5px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-b-\\[1\\.5px\\]{border-bottom-style:var(--tw-border-style);border-bottom-width:1.5px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-none{--tw-border-style:none;border-style:none}.border-current{border-color:currentColor}.border-primary{border-color:var(--color-primary)}.border-red-500{border-color:var(--color-red-500)}.bg-slate-900\\/40{background-color:#0f172b66}@supports (color:color-mix(in lab,red,red)){.bg-slate-900\\/40{background-color:color-mix(in oklab,var(--color-slate-900)40%,transparent)}}.bg-slate-900\\/60{background-color:#0f172b99}@supports (color:color-mix(in lab,red,red)){.bg-slate-900\\/60{background-color:color-mix(in oklab,var(--color-slate-900)60%,transparent)}}.bg-surface{background-color:var(--color-surface)}.bg-transparent{background-color:#0000}.bg-white\\/90{background-color:#ffffffe6}@supports (color:color-mix(in lab,red,red)){.bg-white\\/90{background-color:color-mix(in srgb,#fff90%,transparent);background-color:color-mix(in oklab,var(--color-white)90%,transparent)}}.object-cover{object-fit:cover}.p-1{padding:calc(var(--spacing)*1)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-5{padding:calc(var(--spacing)*5)}.p-6{padding:calc(var(--spacing)*6)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-8{padding-inline:calc(var(--spacing)*8)}.py-1\\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-12{padding-block:calc(var(--spacing)*12)}.pr-16{padding-right:calc(var(--spacing)*16)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pb-8{padding-bottom:calc(var(--spacing)*8)}.pl-2{padding-left:calc(var(--spacing)*2)}.text-center{text-align:center}.text-right{text-align:right}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\\[13px\\]{font-size:13px}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-primary{color:var(--color-primary)}.text-red-500{color:var(--color-red-500)}.text-slate-700{color:var(--color-slate-700)}.text-theme-gray{color:var(--color-theme-gray)}.text-white{color:var(--color-white)}.placeholder-surface::placeholder{color:var(--color-surface)}.opacity-0{opacity:0}.opacity-60{opacity:.6}.opacity-80{opacity:.8}.shadow,.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a)}.shadow,.shadow-sm,.shadow-xl{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a)}.ring-primary{--tw-ring-color:var(--color-primary)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.transition-all,.transition-colors{transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.transition-opacity{transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.focus\\:border-red-500:focus{border-color:var(--color-red-500)}.focus\\:ring-0:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor)}.focus\\:ring-0:focus,.focus\\:ring-2:focus{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor)}.focus\\:ring-red-200:focus{--tw-ring-color:var(--color-red-200)}.focus\\:ring-red-500:focus{--tw-ring-color:var(--color-red-500)}.focus\\:ring-slate-200:focus{--tw-ring-color:var(--color-slate-200)}.focus\\:outline-none:focus{--tw-outline-style:none;outline-style:none}}@keyframes spin{to{transform:rotate(1turn)}}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{.top-1\\/2{top:50%}.right-2{right:calc(var(--spacing)*2)}.mt-auto{margin-top:auto}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.h-10{height:calc(var(--spacing)*10)}.min-h-0{min-height:calc(var(--spacing)*0)}.w-10{width:calc(var(--spacing)*10)}.min-w-0{min-width:calc(var(--spacing)*0)}.-translate-y-1\\/2{--tw-translate-y:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.gap-2\\.5{gap:calc(var(--spacing)*2.5)}.overflow-y-auto{overflow-y:auto}.border-divider{border-color:var(--color-divider)}.bg-primary{background-color:var(--color-primary)}.py-2\\.5{padding-block:calc(var(--spacing)*2.5)}.pt-2{padding-top:calc(var(--spacing)*2)}.pr-9{padding-right:calc(var(--spacing)*9)}.break-words{overflow-wrap:break-word}.text-gray-400{color:var(--color-gray-400)}.focus\\:border-primary:focus{border-color:var(--color-primary)}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:opacity-40:disabled{opacity:.4}.col-span-full{grid-column:1/-1}.size-3{height:calc(var(--spacing)*3);width:calc(var(--spacing)*3)}.h-16{height:calc(var(--spacing)*16)}.w-16{width:calc(var(--spacing)*16)}.auto-rows-auto{grid-auto-rows:auto}.content-start{align-content:flex-start}.border-transparent{border-color:#0000}.p-1\\.5{padding:calc(var(--spacing)*1.5)}.inset-y-0{inset-block:calc(var(--spacing)*0)}.container{width:100%}.mb-2{margin-bottom:calc(var(--spacing)*2)}.size-5{height:calc(var(--spacing)*5);width:calc(var(--spacing)*5)}.size-10{height:calc(var(--spacing)*10);width:calc(var(--spacing)*10)}.h-40{height:calc(var(--spacing)*40)}.h-\\[200px\\]{height:200px}.w-60{width:calc(var(--spacing)*60)}.shrink-0{flex-shrink:0}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.gap-1\\.5{gap:calc(var(--spacing)*1.5)}.self-end{align-self:flex-end}.border-surface{border-color:var(--color-surface)}.py-1{padding-block:calc(var(--spacing)*1)}.py-10{padding-block:calc(var(--spacing)*10)}.pb-1{padding-bottom:calc(var(--spacing)*1)}.text-\\[10px\\]{font-size:10px}.text-\\[11px\\]{font-size:11px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.whitespace-pre-line{white-space:pre-line}.text-slate-500{color:var(--color-slate-500)}.opacity-70{opacity:.7}.shadow-\\[0_8px_24px_rgba\\(15\\,23\\,42\\,0\\.08\\)\\]{--tw-shadow:0 8px 24px var(--tw-shadow-color,#0f172a14)}.shadow-\\[0_8px_24px_rgba\\(15\\,23\\,42\\,0\\.08\\)\\],.shadow-sm{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a)}.max-w-sm{max-width:var(--container-sm)}.text-green-500{color:var(--color-green-500)}.text-yellow-500{color:var(--color-yellow-500)}.hidden\\!{display:none!important}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.bg-paper{background-color:var(--color-paper)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.visible{visibility:visible}.mx-auto{margin-inline:auto}.size-18{height:calc(var(--spacing)*18);width:calc(var(--spacing)*18)}.rotate-45{rotate:45deg}.text-blue-500{color:var(--color-blue-500)}.col-span-2{grid-column:span 2/span 2}.my-2{margin-block:calc(var(--spacing)*2)}.w-xl{width:var(--container-xl)}.w-xs{width:var(--container-xs)}}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-end:calc(var(--spacing)*2*(1 - var(--tw-space-y-reverse)));margin-block-start:calc(var(--spacing)*2*var(--tw-space-y-reverse))}}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{.mb-auto{margin-bottom:auto}.px-1{padding-inline:calc(var(--spacing)*1)}.text-black{color:var(--color-black)}.mr-2{margin-right:calc(var(--spacing)*2)}.bg-primary\\/10{background-color:#e028481a}}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{@supports (color:color-mix(in lab,red,red)){.bg-primary\\/10{background-color:color-mix(in srgb,#e0284810%,transparent);background-color:color-mix(in oklab,var(--color-primary)10%,transparent)}}.underline{text-decoration-line:underline}.mb-1{margin-bottom:calc(var(--spacing)*1)}.ml-1{margin-left:calc(var(--spacing)*1)}.size-1\\.5{height:calc(var(--spacing)*1.5);width:calc(var(--spacing)*1.5)}.h-\\[40px\\]{height:40px}.w-1\\/4{width:25%}.rotate-0{rotate:none}.rotate-180{rotate:180deg}.fill-current{fill:currentColor}.m-auto{margin:auto}.size-32{height:calc(var(--spacing)*32);width:calc(var(--spacing)*32)}.size-2{height:calc(var(--spacing)*2);width:calc(var(--spacing)*2)}.bg-pink-100{background-color:var(--color-pink-100)}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.-top-12{top:calc(var(--spacing)*-12)}.-top-24{top:calc(var(--spacing)*-24)}.mt-10{margin-top:calc(var(--spacing)*10)}.mb-10{margin-bottom:calc(var(--spacing)*10)}.inline-block{display:inline-block}.pt-4{padding-top:calc(var(--spacing)*4)}.right-full{right:100%}.-bottom-2{bottom:calc(var(--spacing)*-2)}.left-full{left:100%}.mb-0\\.5{margin-bottom:calc(var(--spacing)*.5)}.mb-2\\.5{margin-bottom:calc(var(--spacing)*2.5)}.ml-2{margin-left:calc(var(--spacing)*2)}.justify-start{justify-content:flex-start}.bg-yellow-300{background-color:var(--color-yellow-300)}.pl-10{padding-left:calc(var(--spacing)*10)}.text-left{text-align:left}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.max-w-3xs{max-width:var(--container-3xs)}.resize{resize:both}.rounded-br-\\[0\\]{border-bottom-right-radius:0}.rounded-bl-\\[0\\]{border-bottom-left-radius:0}.bg-black{background-color:var(--color-black)}.bg-white{background-color:var(--color-white)}.p-2{padding:calc(var(--spacing)*2)}.-right-0\\.5{right:calc(var(--spacing)*-.5)}.-bottom-0\\.5{bottom:calc(var(--spacing)*-.5)}.col-span-3{grid-column:span 3/span 3}.gap-y-1{row-gap:calc(var(--spacing)*1)}.border-b-\\[0\\.5px\\]{border-bottom-style:var(--tw-border-style);border-bottom-width:.5px}.whitespace-nowrap{white-space:nowrap}.text-background{color:var(--color-background)}.size-16{height:calc(var(--spacing)*16);width:calc(var(--spacing)*16)}.size-\\[8px\\]{height:8px;width:8px}.size-\\[10px\\]{height:10px;width:10px}.m-0\\.5{margin:calc(var(--spacing)*.5)}.size-42{height:calc(var(--spacing)*42);width:calc(var(--spacing)*42)}.h-20{height:calc(var(--spacing)*20)}.w-42{width:calc(var(--spacing)*42)}.col-span-1{grid-column:span 1/span 1}.m-2{margin:calc(var(--spacing)*2)}.mx-4{margin-inline:calc(var(--spacing)*4)}.ml-0\\.5{margin-left:calc(var(--spacing)*.5)}.w-1\\/2{width:50%}.max-w-32{max-width:calc(var(--spacing)*32)}.translate-y-0{--tw-translate-y:calc(var(--spacing)*0)}.translate-y-0,.translate-y-full{translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-full{--tw-translate-y:100%}.bg-selected{background-color:var(--color-selected)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.text-green-700{color:var(--color-green-700)}.text-red-700{color:var(--color-red-700)}.capitalize{text-transform:capitalize}.opacity-100{opacity:1}}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities;/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer components{.chat-item .chat-item-content-main-name,.chat-item .chat-item-content-main-time{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.chat-item .chat-item-content-secondary-message,.chat-item .chat-item-content-secondary-nickname{color:var(--color-surface);-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.z-icon-button-outlined,.z-icon-button-text{color:var(--color-primary)}.z-input,.z-input-area-input,.z-input-area-label,.z-input-label{color:var(--color-surface);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.z-button-group-item-tab,.z-button-group-item-tab-selected{border-style:var(--tw-border-style)!important;border-width:0!important}}@layer utilities{.focus\\:ring-0:focus,.focus\\:ring-2:focus,.shadow,.shadow-\\[0_8px_24px_rgba\\(15\\,23\\,42\\,0\\.08\\)\\],.shadow-sm,.shadow-xl{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.translate-y-0,.translate-y-full{translate:var(--tw-translate-x)var(--tw-translate-y)}}@property --tw-space-y-reverse{syntax:\"*\";inherits:false;initial-value:0}@property --tw-translate-x{syntax:\"*\";inherits:false;initial-value:0}@property --tw-translate-y{syntax:\"*\";inherits:false;initial-value:0}@property --tw-translate-z{syntax:\"*\";inherits:false;initial-value:0}.quick-message-template__card{box-shadow:0 8px 24px #0f172a14}.quick-message-template__button-action{color:var(--quick-modal-primary)}.quick-message-template__toggle{border:1px solid #94a3b866}.quick-message-template__dialog-overlay{align-items:center;background:#0f172a59;display:flex;inset:0;justify-content:center;padding:16px;position:absolute;z-index:70}.quick-message-template__dialog{border:1px solid #94a3b840;border-radius:16px;box-shadow:0 20px 45px #11182738;display:flex;flex-direction:column;max-height:min(440px,100%);width:min(440px,100%)}.quick-message-template__dialog-header{align-items:center;border-bottom:1px solid #94a3b847;display:flex;justify-content:space-between;padding:18px 20px 12px}.quick-message-template__dialog-header h3{font-size:16px;font-weight:600;margin:0}.quick-message-template__dialog-close{align-items:center;background:0 0;border:none;border-radius:9999px;cursor:pointer;display:inline-flex;height:32px;justify-content:center;width:32px}.quick-message-template__dialog-body{display:flex;flex-direction:column;gap:16px;overflow-y:auto;padding:16px 20px}.quick-message-template__input,.quick-message-template__textarea{border-radius:12px;border-width:1px;font-size:14px;padding:10px 14px;resize:none}.quick-message-template__textarea{min-height:100px}.quick-message-template__dialog-footer{border-top:1px solid #94a3b82e;display:flex;gap:12px;justify-content:flex-end;padding:16px 20px 20px}.quick-message-template__dialog-button{border:none;border-radius:9999px;cursor:pointer;font-size:13px;font-weight:600;padding:10px 18px}.quick-message-template__dialog-button--ghost{background:0 0;color:#64748b}.quick-message-template__dialog-button--primary{background:var(--quick-modal-primary);box-shadow:0 10px 25px var(--quick-modal-primary-shadow);color:#fff}.quick-message-template__dialog-button--primary:disabled{box-shadow:none;cursor:not-allowed;opacity:.4}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-leading{syntax:\"*\";inherits:false}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:\"*\";inherits:false}@property --tw-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:\"*\";inherits:false}@property --tw-inset-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:\"*\";inherits:false}@property --tw-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:\"*\";inherits:false}@property --tw-inset-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:\"*\";inherits:false}@property --tw-ring-offset-width{syntax:\"<length>\";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:\"*\";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-space-x-reverse{syntax:\"*\";inherits:false;initial-value:0}@property --tw-blur{syntax:\"*\";inherits:false}@property --tw-brightness{syntax:\"*\";inherits:false}@property --tw-contrast{syntax:\"*\";inherits:false}@property --tw-grayscale{syntax:\"*\";inherits:false}@property --tw-hue-rotate{syntax:\"*\";inherits:false}@property --tw-invert{syntax:\"*\";inherits:false}@property --tw-opacity{syntax:\"*\";inherits:false}@property --tw-saturate{syntax:\"*\";inherits:false}@property --tw-sepia{syntax:\"*\";inherits:false}@property --tw-drop-shadow{syntax:\"*\";inherits:false}@property --tw-drop-shadow-color{syntax:\"*\";inherits:false}@property --tw-drop-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:\"*\";inherits:false}@media (forced-colors:active){[type=checkbox]:checked,[type=radio]:checked{appearance:auto}[type=checkbox]:indeterminate{appearance:auto}[type=checkbox]:checked,[type=checkbox]:indeterminate,[type=radio]:checked{appearance:auto}}@media (hover:hover){.z-button-outlined:hover,.z-button-primary:hover,.z-icon-button-outlined:hover,.z-icon-button-primary:hover,.z-icon-button-text:hover{--tw-brightness:brightness(110%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.z-button-group-item-tab:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.z-button-group-item-tab-unselected:hover{background-color:var(--color-white)}.z-button-group-item-primary-unselected:hover{--tw-brightness:brightness(95%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.z-button-group-item-outlined-unselected:hover{background-color:#e028481a}@supports (color:color-mix(in lab,red,red)){.z-button-group-item-outlined-unselected:hover{background-color:color-mix(in oklab,var(--color-primary)10%,transparent);background-color:color-mix(in srgb,#e0284810%,transparent)}}.group-hover\\:opacity-100:is(:where(.group):hover *){opacity:1}.hover\\:bg-background:hover{background-color:var(--color-background)}.hover\\:bg-red-50:hover{background-color:var(--color-red-50)}.hover\\:bg-slate-100:hover{background-color:var(--color-slate-100)}.hover\\:bg-white:hover{background-color:var(--color-white)}.hover\\:text-gray-600:hover{color:var(--color-gray-600)}.hover\\:opacity-100:hover{opacity:1}.hover\\:brightness-110:hover{--tw-brightness:brightness(110%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.hover\\:bg-primary\\/10:hover{background-color:#e028481a}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-primary\\/10:hover{background-color:color-mix(in srgb,#e0284810%,transparent);background-color:color-mix(in oklab,var(--color-primary)10%,transparent)}}.hover\\:text-primary:hover{color:var(--color-primary)}.z-button-outlined:hover,.z-button-primary:hover,.z-icon-button-outlined:hover,.z-icon-button-primary:hover,.z-icon-button-text:hover{--tw-brightness:brightness(110%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}}@media screen and (min-width:0){.z-max-height{height:calc(100vh - 56px)}}@media screen and (min-width:600px){.z-max-height{height:calc(100vh - 64px)}}@media not all and (min-width:40rem){.max-sm\\:hidden{display:none}}@media (min-width:40rem){.sm\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.container{max-width:40rem}.sm\\:min-w-0{min-width:calc(var(--spacing)*0)}.sm\\:flex-row{flex-direction:row}}@media (min-width:48rem){.md\\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.container{max-width:48rem}}@media (min-width:64rem){.lg\\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}";
16
+
17
+ const QuickMessageTemplateComponent = /*@__PURE__*/ proxyCustomElement(class QuickMessageTemplateComponent extends H {
18
+ constructor(registerHost) {
19
+ super();
20
+ if (registerHost !== false) {
21
+ this.__registerHost();
22
+ }
23
+ this.templatesChange = createEvent(this, "templatesChange");
24
+ this.sendTemplate = createEvent(this, "sendTemplate");
25
+ }
26
+ handleClose;
27
+ value;
28
+ isMaster = false;
29
+ isZignal = true;
30
+ searchTemplate = '';
31
+ templates = [];
32
+ showAddTemplateDialog = false;
33
+ editingTemplate;
34
+ dialogMode = 'create';
35
+ isLoading = false;
36
+ isLoadingMore = false;
37
+ isSavingTemplate = false;
38
+ deletingTemplateId;
39
+ templatePendingDelete;
40
+ totalTemplates = 0;
41
+ totalPages = 0;
42
+ isSelectZignal = true;
43
+ page = 1;
44
+ pageSize = 10;
45
+ loadMoreThreshold = 160;
46
+ currentSearch = '';
47
+ scrollContainer;
48
+ templatesChange;
49
+ sendTemplate;
50
+ componentWillLoad() {
51
+ this.syncTemplatesFromProp(this.value);
52
+ }
53
+ async componentDidLoad() {
54
+ await this.fetchTemplates({ reset: true });
55
+ }
56
+ componentDidRender() {
57
+ this.autoLoadMoreIfNeeded();
58
+ }
59
+ handleValueChange(newValue) {
60
+ this.syncTemplatesFromProp(newValue);
61
+ }
62
+ syncTemplatesFromProp(value) {
63
+ if (value === undefined || value === null) {
64
+ this.setTemplates([], false);
65
+ return;
66
+ }
67
+ const parsed = this.parseTemplateValue(value);
68
+ this.setTemplates(parsed, false);
69
+ }
70
+ mergeWithExistingState(fetched) {
71
+ if (this.templates.length === 0) {
72
+ return fetched;
73
+ }
74
+ const expandedMap = new Map(this.templates.map(template => [template.id, template.isExpanded ?? false]));
75
+ return fetched.map(template => ({
76
+ ...template,
77
+ isExpanded: expandedMap.get(template.id) ?? template.isExpanded ?? false,
78
+ }));
79
+ }
80
+ appendTemplates(fetched) {
81
+ if (fetched.length === 0) {
82
+ return [...this.templates];
83
+ }
84
+ const next = [...this.templates];
85
+ const indexMap = new Map(next.map((template, index) => [template.id, index]));
86
+ fetched.forEach(template => {
87
+ const existingIndex = indexMap.get(template.id);
88
+ if (existingIndex !== undefined) {
89
+ next[existingIndex] = {
90
+ ...template,
91
+ isExpanded: next[existingIndex].isExpanded ?? false,
92
+ };
93
+ return;
94
+ }
95
+ next.push({ ...template, isExpanded: template.isExpanded ?? false });
96
+ indexMap.set(template.id, next.length - 1);
97
+ });
98
+ return next;
99
+ }
100
+ async fetchTemplates({ search, reset = true } = {}) {
101
+ const businessId = configStore.get('businessId');
102
+ const shopId = configStore.get('shopId');
103
+ if (!businessId || !shopId) {
104
+ return;
105
+ }
106
+ if (reset ? this.isLoading : this.isLoadingMore) {
107
+ return;
108
+ }
109
+ const normalizedSearch = search !== undefined ? search : this.currentSearch;
110
+ const trimmedSearch = normalizedSearch?.trim() ?? '';
111
+ const nextPage = reset ? 1 : this.page + 1;
112
+ if (search !== undefined) {
113
+ this.searchTemplate = normalizedSearch ?? '';
114
+ }
115
+ if (reset) {
116
+ this.isLoading = true;
117
+ }
118
+ else {
119
+ this.isLoadingMore = true;
120
+ }
121
+ try {
122
+ const response = await getQuickMessageTemplates({
123
+ search: trimmedSearch ? trimmedSearch : undefined,
124
+ page: nextPage,
125
+ limit: this.pageSize,
126
+ });
127
+ const normalized = this.cloneTemplates(response.templates || []);
128
+ const nextTemplates = reset ? this.mergeWithExistingState(normalized) : this.appendTemplates(normalized);
129
+ this.page = response.page > 0 ? response.page : nextPage;
130
+ const resolvedTotalPages = response.total_pages > 0 ? response.total_pages : nextTemplates.length > 0 ? 1 : 0;
131
+ this.totalPages = resolvedTotalPages;
132
+ this.totalTemplates = response.total;
133
+ this.currentSearch = trimmedSearch;
134
+ this.setTemplates(nextTemplates);
135
+ }
136
+ catch (error) {
137
+ handleError(error, '[quick-message-template] Failed to fetch templates');
138
+ }
139
+ finally {
140
+ if (reset) {
141
+ this.isLoading = false;
142
+ }
143
+ else {
144
+ this.isLoadingMore = false;
145
+ }
146
+ }
147
+ }
148
+ async loadMoreTemplates() {
149
+ if (this.isLoading || this.isLoadingMore) {
150
+ return;
151
+ }
152
+ if (this.totalTemplates > 0 && this.templates.length >= this.totalTemplates) {
153
+ return;
154
+ }
155
+ if (this.totalPages === 0 || this.page >= this.totalPages) {
156
+ return;
157
+ }
158
+ await this.fetchTemplates({ reset: false });
159
+ }
160
+ handleScroll(event) {
161
+ const target = event.target;
162
+ if (!target) {
163
+ return;
164
+ }
165
+ this.triggerLoadMoreIfNeeded(target);
166
+ }
167
+ async handleSearchSubmit(event) {
168
+ event?.preventDefault();
169
+ await this.fetchTemplates({ search: this.searchTemplate, reset: true });
170
+ }
171
+ handleSearchInput(event) {
172
+ const value = event.target.value;
173
+ this.searchTemplate = value;
174
+ if (!value.trim() && this.currentSearch && !this.isLoading && !this.isLoadingMore) {
175
+ void this.fetchTemplates({ search: '', reset: true });
176
+ }
177
+ }
178
+ clearSearch() {
179
+ if (!this.searchTemplate && !this.currentSearch) {
180
+ return;
181
+ }
182
+ this.searchTemplate = '';
183
+ if (!this.isLoading && !this.isLoadingMore) {
184
+ void this.fetchTemplates({ search: '', reset: true });
185
+ }
186
+ }
187
+ parseTemplateValue(value) {
188
+ if (typeof value === 'string') {
189
+ try {
190
+ const deserialized = JSON.parse(value);
191
+ return this.cloneTemplates(deserialized);
192
+ }
193
+ catch (error) {
194
+ console.warn('[quick-message-template] Failed to parse templates value', error);
195
+ return [];
196
+ }
197
+ }
198
+ return this.cloneTemplates(value);
199
+ }
200
+ cloneTemplates(templates) {
201
+ return (templates || []).map(template => {
202
+ const rawContents = template.contents || [];
203
+ const normalizedContents = rawContents.map(content => {
204
+ const rawMenuList = content.menu_list || [];
205
+ const menuList = rawMenuList.map(menu => ({
206
+ ...menu,
207
+ buttons: (menu.buttons || []).map(button => ({ ...button })),
208
+ }));
209
+ return {
210
+ ...content,
211
+ buttons: (content.buttons || []).map(button => ({ ...button })),
212
+ menu_list: menuList,
213
+ };
214
+ });
215
+ return {
216
+ ...template,
217
+ contents: normalizedContents,
218
+ };
219
+ });
220
+ }
221
+ setTemplates(next, shouldEmit = true) {
222
+ this.templates = next;
223
+ if (shouldEmit) {
224
+ const payload = this.cloneTemplates(next);
225
+ this.templatesChange.emit(payload);
226
+ }
227
+ }
228
+ canAttemptLoadMore() {
229
+ if (this.isLoading || this.isLoadingMore) {
230
+ return false;
231
+ }
232
+ if (this.totalTemplates > 0 && this.templates.length >= this.totalTemplates) {
233
+ return false;
234
+ }
235
+ if (this.totalPages === 0 || this.page >= this.totalPages) {
236
+ return false;
237
+ }
238
+ return true;
239
+ }
240
+ triggerLoadMoreIfNeeded(container) {
241
+ if (!this.canAttemptLoadMore()) {
242
+ return;
243
+ }
244
+ const remaining = container.scrollHeight - container.scrollTop - container.clientHeight;
245
+ if (remaining < this.loadMoreThreshold) {
246
+ void this.loadMoreTemplates();
247
+ }
248
+ }
249
+ autoLoadMoreIfNeeded() {
250
+ if (!this.scrollContainer) {
251
+ return;
252
+ }
253
+ this.triggerLoadMoreIfNeeded(this.scrollContainer);
254
+ }
255
+ toggleTemplateExpansion(id) {
256
+ this.setTemplates(this.templates.map(template => (template.id === id ? { ...template, isExpanded: !template.isExpanded } : template)));
257
+ }
258
+ filterTemplates() {
259
+ const search = this.currentSearch.trim().toLowerCase();
260
+ if (!search)
261
+ return this.templates;
262
+ return this.templates.filter(template => template.title.toLowerCase().includes(search));
263
+ }
264
+ handleTemplateAction(template, mode) {
265
+ if (mode === 'create' || mode === 'edit' || mode === 'edit-send') {
266
+ this.openTemplateDialog(template, mode);
267
+ return;
268
+ }
269
+ if (mode === 'send') {
270
+ const clonedTemplate = {
271
+ ...template,
272
+ contents: (template.contents || []).map(content => ({
273
+ ...content,
274
+ buttons: [...(content.buttons || [])],
275
+ menu_list: (content.menu_list || []).map(menu => ({
276
+ ...menu,
277
+ buttons: [...(menu.buttons || [])],
278
+ })),
279
+ })),
280
+ };
281
+ const processedTemplate = this.processTemplate(clonedTemplate);
282
+ this.closeTemplateDialog();
283
+ this.handleClose?.();
284
+ this.sendTemplate.emit(processedTemplate);
285
+ }
286
+ }
287
+ renderTemplateContent(content) {
288
+ switch (content.type) {
289
+ case 'text':
290
+ return (h("div", { class: "flex flex-col gap-2" }, h("p", { class: "text-surface whitespace-pre-line text-sm leading-relaxed" }, content.text)));
291
+ case 'button':
292
+ return (h("div", { class: "flex flex-col gap-2" }, h("p", { class: "text-surface whitespace-pre-line text-sm leading-relaxed" }, content.text), h("div", { class: "flex flex-col gap-1.5" }, content.buttons.length > 0 && (h("div", { class: "flex flex-col gap-2" }, content.buttons.map(button => (h("div", { class: "flex w-full flex-col items-center gap-1 rounded-xl px-3 py-2 text-sm font-medium text-white shadow-sm bg-primary truncate", key: button.id }, h("span", { class: "w-full text-center leading-tight truncate" }, button.text || '-'), h("span", { class: "w-full text-center text-xs leading-none opacity-80 truncate" }, button.action_type === 'text' ? '-' : button.action || '-')))))))));
293
+ case 'image':
294
+ return h("div", { class: "flex flex-wrap gap-3" }, content.file_url && this.renderImageMedia(content.file_url));
295
+ case 'menu_list':
296
+ return (h("div", { class: "flex gap-3 overflow-x-auto pb-1" }, content.menu_list.map(menu => (h("div", { class: "flex w-60 shrink-0 flex-col overflow-hidden rounded-[18px] border-[1.5px] shadow-sm border-primary bg-background", key: menu.id }, h("div", { class: "relative h-40 border-b-[1.5px] border-primary overflow-hidden" }, menu.file_url ? (h("img", { src: menu.file_url, alt: menu.title, class: "h-full w-full object-cover", loading: "lazy" })) : (h("div", { class: "flex h-full w-full items-center justify-center bg-background text-theme-gray opacity-60" }, h(Icon, { name: "Image", addClass: "size-10" })))), h("div", { class: "flex flex-col gap-2 px-4 py-4" }, menu.title && h("div", { class: "text-sm font-semibold leading-snug" }, menu.title), menu.description && h("div", { class: "text-xs leading-snug text-theme-gray" }, menu.description), menu.buttons.length > 0 && (h("div", { class: "flex flex-col gap-2" }, menu.buttons.map(button => (h("div", { class: "flex w-full flex-col items-center gap-1 rounded-xl px-3 py-2 text-sm font-medium text-white shadow-sm bg-primary", key: button.id }, h("span", { class: "w-full text-center leading-tight truncate" }, button.text || '-'), h("span", { class: "w-full text-center text-xs leading-none opacity-80 truncate" }, button.action_type === 'text' ? '-' : button.action || '-'))))))))))));
297
+ case 'video':
298
+ return (h("video", { src: content.file_url, class: "h-[220px] object-cover rounded-xl", controls: true }, h("track", { kind: "captions", src: "", label: "English" })));
299
+ default:
300
+ return null;
301
+ }
302
+ }
303
+ renderImageMedia(fileUrl) {
304
+ return h("img", { src: fileUrl, alt: "", class: "h-[200px] w-[200px] rounded-xl border object-cover border-surface", loading: "lazy" });
305
+ }
306
+ closeTemplateDialog() {
307
+ this.showAddTemplateDialog = false;
308
+ this.editingTemplate = undefined;
309
+ this.dialogMode = 'edit';
310
+ this.isSavingTemplate = false;
311
+ }
312
+ openTemplateDialog(template, mode = 'edit') {
313
+ this.editingTemplate = template ? { ...template } : undefined;
314
+ this.dialogMode = mode;
315
+ this.showAddTemplateDialog = true;
316
+ this.isSavingTemplate = false;
317
+ }
318
+ processTemplate(template) {
319
+ // remove empty menuList
320
+ template.contents = template.contents.map(content => {
321
+ if (content.type === 'menu_list') {
322
+ content.menu_list = content.menu_list.filter(menu => menu.buttons.length > 0 || menu.file_url || menu.title || menu.description);
323
+ }
324
+ return content;
325
+ });
326
+ // remove empty content
327
+ template.contents = template.contents.filter(content => content.text || content.buttons.length > 0 || content.file_url || content.menu_list.length > 0);
328
+ return template;
329
+ }
330
+ upsertTemplate(template, { closeDialog = true } = {}) {
331
+ const withMeta = {
332
+ ...template,
333
+ isExpanded: this.editingTemplate?.id === template.id ? this.editingTemplate.isExpanded : true,
334
+ };
335
+ const exists = this.templates.some(item => item.id === withMeta.id);
336
+ const nextTemplates = exists ? this.templates.map(item => (item.id === withMeta.id ? withMeta : item)) : [...this.templates, withMeta];
337
+ this.setTemplates(nextTemplates);
338
+ if (closeDialog) {
339
+ this.closeTemplateDialog();
340
+ }
341
+ }
342
+ async handleTemplateSave(template) {
343
+ if (this.isSavingTemplate) {
344
+ return;
345
+ }
346
+ const cloned = this.cloneTemplates([template]);
347
+ const workingTemplate = cloned[0];
348
+ if (!workingTemplate) {
349
+ return;
350
+ }
351
+ const processedTemplate = this.processTemplate(workingTemplate);
352
+ const isNewTemplate = !processedTemplate.id || processedTemplate.id.startsWith('template-');
353
+ if (!isNewTemplate) {
354
+ try {
355
+ this.isSavingTemplate = true;
356
+ const updated = await updateQuickMessageTemplate(processedTemplate);
357
+ const [normalized] = this.cloneTemplates([updated]);
358
+ this.upsertTemplate(normalized);
359
+ void this.fetchTemplates({ reset: true });
360
+ }
361
+ catch (error) {
362
+ handleError(error, '[quick-message-template] Failed to update template');
363
+ }
364
+ finally {
365
+ this.isSavingTemplate = false;
366
+ }
367
+ return;
368
+ }
369
+ try {
370
+ this.isSavingTemplate = true;
371
+ const created = await createQuickMessageTemplate(processedTemplate);
372
+ const [normalized] = this.cloneTemplates([created]);
373
+ this.upsertTemplate(normalized);
374
+ void this.fetchTemplates({ reset: true });
375
+ }
376
+ catch (error) {
377
+ handleError(error, '[quick-message-template] Failed to create template');
378
+ }
379
+ finally {
380
+ this.isSavingTemplate = false;
381
+ }
382
+ }
383
+ requestDeleteTemplate(template) {
384
+ if (!template?.id || this.deletingTemplateId) {
385
+ return;
386
+ }
387
+ this.templatePendingDelete = template;
388
+ const t = useTranslation();
389
+ const title = t('quick_message.delete_template_title');
390
+ openDialog({
391
+ open: true,
392
+ type: "WARNING" /* DIALOG_TYPE.WARNING */,
393
+ title,
394
+ buttonName: t('confirm'),
395
+ cancelButtonName: t('cancel'),
396
+ onSubmitDialog: () => {
397
+ this.confirmDeleteTemplate();
398
+ },
399
+ onCloseDialog: () => {
400
+ this.templatePendingDelete = undefined;
401
+ },
402
+ });
403
+ }
404
+ async confirmDeleteTemplate() {
405
+ const template = this.templatePendingDelete;
406
+ if (!template?.id || this.deletingTemplateId) {
407
+ this.templatePendingDelete = undefined;
408
+ return;
409
+ }
410
+ this.deletingTemplateId = template.id;
411
+ this.templatePendingDelete = undefined;
412
+ try {
413
+ await deleteQuickMessageTemplate(template.id);
414
+ const remaining = this.templates.filter(item => item.id !== template.id);
415
+ this.setTemplates(remaining);
416
+ this.totalTemplates = Math.max(0, this.totalTemplates - 1);
417
+ void this.fetchTemplates({ reset: true });
418
+ }
419
+ catch (error) {
420
+ handleError(error, '[quick-message-template] Failed to delete template');
421
+ }
422
+ finally {
423
+ this.deletingTemplateId = undefined;
424
+ }
425
+ }
426
+ renderSelectPlatformButton(name, onClick, isSelected) {
427
+ return (h("button", { class: `cursor-pointer inline-flex items-center rounded-full px-4 py-1 text-[10px] font-semibold ${isSelected ? 'text-white bg-primary' : 'text-primary border border-primary'}`, onClick: onClick }, name));
428
+ }
429
+ render() {
430
+ const theme = configStore.get('theme');
431
+ const t = useTranslation();
432
+ const filteredTemplates = this.filterTemplates();
433
+ const showBottomSpinner = (this.isLoading && filteredTemplates.length > 0) || this.isLoadingMore;
434
+ return (h(Host, { key: 'ac23aba5e79b798180665f50407afa6b9dbb7990', class: "relative flex min-h-0 flex-1 flex-col gap-2", "data-theme": theme }, !this.isMaster && !this.isZignal && h("div", { key: 'a94c5be28a6de283139861f4ee8da0fcc1420439', class: "flex items-center gap-2" }, this.renderSelectPlatformButton('ZIGNAL', () => this.isSelectZignal = true, this.isSelectZignal), this.renderSelectPlatformButton('ZWIZ.AI', () => this.isSelectZignal = false, !this.isSelectZignal)), this.isSelectZignal ? (h("div", { class: "flex flex-col min-h-0 flex-1" }, h("form", { class: "relative w-full mb-2", onSubmit: event => this.handleSearchSubmit(event) }, h("input", { type: "text", class: "w-full border border-divider text-sm px-4 py-2 rounded-lg ring-primary focus:outline-none focus:border-primary bg-background text-surface", placeholder: t('quick_message.search_template'), value: this.searchTemplate, onInput: event => this.handleSearchInput(event), autoComplete: "off" }), this.searchTemplate && (h("button", { type: "button", class: "absolute inset-y-0 right-3 flex items-center text-xs opacity-70 transition-opacity hover:opacity-100", onClick: () => this.clearSearch() }, h(Icon, { name: "X", addClass: "size-4" })))), h("div", { class: "flex flex-1 flex-col gap-3 overflow-y-auto min-h-0", ref: el => {
435
+ this.scrollContainer = el ? el : undefined;
436
+ }, onScroll: event => this.handleScroll(event) }, h("button", { class: "inline-flex items-center justify-center gap-2 rounded-xl border-[1.5px] border-dashed px-4 py-2 text-primary cursor-pointer", type: "button", onClick: () => this.openTemplateDialog(undefined, 'create') }, h(Icon, { name: "Plus", addClass: "size-4" }), h("span", { class: "text-sm" }, t('quick_message.add_template'))), this.isLoading && filteredTemplates.length === 0 ? (h("div", { class: "flex flex-1 items-center justify-center py-10 text-sm text-slate-500" }, h(Icon, { name: "Loader2", addClass: "size-6 animate-spin" }))) : (h("div", { class: "flex flex-col gap-3" }, filteredTemplates.length === 0 && h("div", { class: "py-10 text-center text-sm text-slate-500" }, t('quick_message.template_empty')), filteredTemplates.map(template => {
437
+ const lastUpdatedAt = template.last_updated_at || template.created_at || new Date();
438
+ const formattedDate = dayjs(lastUpdatedAt).tz().format('DD/MM/YYYY HH:mm');
439
+ const rawLastUpdatedBy = template.last_updated_by ?? template.created_by ?? '';
440
+ const displayUpdatedBy = typeof rawLastUpdatedBy === 'string' && rawLastUpdatedBy.trim().length > 0 ? rawLastUpdatedBy : '-';
441
+ return (h("div", { class: "quick-message-template__card border-primary rounded-2xl border-[1.5px] px-4 py-4 shadow-[0_8px_24px_rgba(15,23,42,0.08)]", key: template.id }, h("div", { class: "flex flex-col sm:flex-row items-start gap-3 sm:min-w-0" }, h("div", { class: "flex-1 flex flex-col gap-1.5 w-full overflow-hidden" }, h("div", { class: "text-base font-semibold truncate", title: template.title }, template.title), h("div", { class: "text-[11px] text-theme-gray" }, t('quick_message.updated_at').replace('{date}', formattedDate).replace('{by}', displayUpdatedBy))), h("div", { class: "flex gap-4 flex-row items-center self-end" }, this.isMaster && h("button", { type: "button", onClick: () => this.handleTemplateAction(template, 'edit'), "aria-label": t('edit') }, h(Icon, { name: "Pencil", addClass: "size-4 cursor-pointer text-primary" })), this.isMaster && h("button", { type: "button", "aria-label": t('delete'), onClick: () => this.requestDeleteTemplate(template), disabled: Boolean(this.deletingTemplateId), class: `${this.deletingTemplateId ? 'opacity-60 cursor-not-allowed' : 'cursor-pointer'}` }, this.deletingTemplateId === template.id ? (h(Icon, { name: "Loader2", addClass: "size-4 animate-spin text-primary" })) : (h(Icon, { name: "Trash2", addClass: "size-4 text-primary" }))), !this.isMaster && (h("button", { type: "button", class: "inline-flex items-center justify-center rounded-full border px-4 py-2 text-xs font-semibold cursor-pointer border-primary text-primary", onClick: () => this.handleTemplateAction(template, 'edit-send') }, t('quick_message.edit_before_send'))), !this.isMaster && (h("button", { type: "button", class: "inline-flex items-center justify-center rounded-full px-4 py-2 text-xs font-semibold text-white cursor-pointer bg-primary", onClick: () => this.handleTemplateAction(template, 'send') }, t('quick_message.send_now'))), h("button", { type: "button", class: "quick-message-template__toggle inline-flex h-9 w-9 items-center justify-center rounded-full cursor-pointer", onClick: () => this.toggleTemplateExpansion(template.id) }, h(Icon, { name: template.isExpanded ? 'ChevronUp' : 'ChevronDown' })))), template.isExpanded && (h("div", { class: "mt-4 flex flex-col gap-2" }, template.contents.map(content => (h("div", { key: content.id, class: "border border-surface rounded-xl p-4" }, this.renderTemplateContent(content))))))));
442
+ }))), showBottomSpinner && (h("div", { class: "flex justify-center py-4 text-sm text-slate-500" }, h(Icon, { name: "Loader2", addClass: "size-5 animate-spin" })))))) :
443
+ (h("div", null, "ZWIZ.AI")), this.showAddTemplateDialog && (h("quick-message-add-template", { key: '2e4e8a2a8d33669c65c6ce39d1eb7be499205a7e', handleClose: () => this.closeTemplateDialog(), handleSave: template => this.handleTemplateSave(template), handleSend: template => this.handleTemplateAction(template, 'send'), initialTemplate: this.editingTemplate, mode: this.dialogMode, isSaving: this.isSavingTemplate }))));
444
+ }
445
+ static get watchers() { return {
446
+ "value": ["handleValueChange"]
447
+ }; }
448
+ static get style() { return quickMessageTemplateCss; }
449
+ }, [768, "quick-message-template", {
450
+ "handleClose": [16],
451
+ "value": [1],
452
+ "isMaster": [4, "is-master"],
453
+ "isZignal": [4, "is-zignal"],
454
+ "searchTemplate": [32],
455
+ "templates": [32],
456
+ "showAddTemplateDialog": [32],
457
+ "editingTemplate": [32],
458
+ "dialogMode": [32],
459
+ "isLoading": [32],
460
+ "isLoadingMore": [32],
461
+ "isSavingTemplate": [32],
462
+ "deletingTemplateId": [32],
463
+ "templatePendingDelete": [32],
464
+ "totalTemplates": [32],
465
+ "totalPages": [32],
466
+ "isSelectZignal": [32]
467
+ }, undefined, {
468
+ "value": ["handleValueChange"]
469
+ }]);
470
+ function defineCustomElement() {
471
+ if (typeof customElements === "undefined") {
472
+ return;
473
+ }
474
+ const components = ["quick-message-template", "quick-message-add-template", "quick-message-button-content", "quick-message-image-content", "quick-message-menu-list-content", "quick-message-text-content", "quick-message-video-content"];
475
+ components.forEach(tagName => { switch (tagName) {
476
+ case "quick-message-template":
477
+ if (!customElements.get(tagName)) {
478
+ customElements.define(tagName, QuickMessageTemplateComponent);
479
+ }
480
+ break;
481
+ case "quick-message-add-template":
482
+ if (!customElements.get(tagName)) {
483
+ defineCustomElement$6();
484
+ }
485
+ break;
486
+ case "quick-message-button-content":
487
+ if (!customElements.get(tagName)) {
488
+ defineCustomElement$5();
489
+ }
490
+ break;
491
+ case "quick-message-image-content":
492
+ if (!customElements.get(tagName)) {
493
+ defineCustomElement$4();
494
+ }
495
+ break;
496
+ case "quick-message-menu-list-content":
497
+ if (!customElements.get(tagName)) {
498
+ defineCustomElement$3();
499
+ }
500
+ break;
501
+ case "quick-message-text-content":
502
+ if (!customElements.get(tagName)) {
503
+ defineCustomElement$2();
504
+ }
505
+ break;
506
+ case "quick-message-video-content":
507
+ if (!customElements.get(tagName)) {
508
+ defineCustomElement$1();
509
+ }
510
+ break;
511
+ } });
512
+ }
513
+ defineCustomElement();
514
+
515
+ export { QuickMessageTemplateComponent as Q, defineCustomElement as d };