zignal-stencil-library 1.1.110 → 1.1.112

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 (299) hide show
  1. package/dist/cjs/app-globals-V2Kpy_OQ.js.map +1 -1
  2. package/dist/cjs/autocomplete-address_43.cjs.entry.js +185 -137
  3. package/dist/cjs/{dayjs-Dssqvl2P.js → dayjs-Fs60i07x.js} +3 -3
  4. package/dist/cjs/dayjs-Fs60i07x.js.map +1 -0
  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/quick-message-app.entry.cjs.js.map +1 -1
  8. package/dist/cjs/zignal-stencil-library.cjs.js +1 -1
  9. package/dist/collection/components/autocomplete-address/autocomplete-address.css +1 -1
  10. package/dist/collection/components/autocomplete-multiple-select/autocomplete-multiple-select.css +1 -1
  11. package/dist/collection/components/autocomplete-select/autocomplete-select.css +1 -1
  12. package/dist/collection/components/channel-box/channel-box.css +1 -1
  13. package/dist/collection/components/chat-app/chat-app.css +1 -1
  14. package/dist/collection/components/chat-app/chat-app.js +1 -1
  15. package/dist/collection/components/chat-app/chat-app.js.map +1 -1
  16. package/dist/collection/components/chat-header/chat-header.css +1 -1
  17. package/dist/collection/components/chat-input/chat-input.css +1 -1
  18. package/dist/collection/components/checkbox-list/checkbox-list.css +1 -1
  19. package/dist/collection/components/dialog-bill-editor/dialog-bill-editor.css +1 -1
  20. package/dist/collection/components/dialog-editor/dialog-editor.css +1 -1
  21. package/dist/collection/components/dialog-preview-media/dialog-preview-media.css +1 -1
  22. package/dist/collection/components/dialog-search/dialog-search.css +1 -1
  23. package/dist/collection/components/internal-component/merge-user-view.js +1 -1
  24. package/dist/collection/components/internal-component/merge-user-view.js.map +1 -1
  25. package/dist/collection/components/menu-chat-channel/menu-chat-channel.css +1 -1
  26. package/dist/collection/components/menu-chat-type/menu-chat-type.css +1 -1
  27. package/dist/collection/components/menu-list/menu-list.css +1 -1
  28. package/dist/collection/components/menu-list/menu-list.js +23 -2
  29. package/dist/collection/components/menu-list/menu-list.js.map +1 -1
  30. package/dist/collection/components/message-box/message-box.css +1 -1
  31. package/dist/collection/components/message-content/message-content.css +1 -1
  32. package/dist/collection/components/message-item/message-item.css +1 -1
  33. package/dist/collection/components/message-item/message-item.js +4 -2
  34. package/dist/collection/components/message-item/message-item.js.map +1 -1
  35. package/dist/collection/components/message-media/message-media.css +1 -1
  36. package/dist/collection/components/profile-history/profile-history.css +1 -1
  37. package/dist/collection/components/profile-history/profile-history.js +14 -22
  38. package/dist/collection/components/profile-history/profile-history.js.map +1 -1
  39. package/dist/collection/components/profile-info/profile-info.css +1 -1
  40. package/dist/collection/components/profile-info/profile-info.js +21 -38
  41. package/dist/collection/components/profile-info/profile-info.js.map +1 -1
  42. package/dist/collection/components/profile-info/user-info-section.js +48 -5
  43. package/dist/collection/components/profile-info/user-info-section.js.map +1 -1
  44. package/dist/collection/components/profile-media/profile-media.css +1 -1
  45. package/dist/collection/components/profile-media/profile-media.js +1 -1
  46. package/dist/collection/components/profile-tabs/profile-tabs.css +1 -1
  47. package/dist/collection/components/profile-tabs/profile-tabs.js +6 -6
  48. package/dist/collection/components/profile-tabs/profile-tabs.js.map +1 -1
  49. package/dist/collection/components/quick-message-add-template/quick-message-add-template.css +1 -1
  50. package/dist/collection/components/quick-message-add-template/quick-message-add-template.js +3 -3
  51. package/dist/collection/components/quick-message-add-template/quick-message-text-content.js +1 -1
  52. package/dist/collection/components/quick-message-app/quick-message-app.css +1 -1
  53. package/dist/collection/components/quick-message-app/quick-message-app.js +1 -1
  54. package/dist/collection/components/quick-message-file/quick-message-file.css +1 -1
  55. package/dist/collection/components/quick-message-file/quick-message-file.js +1 -1
  56. package/dist/collection/components/quick-message-image/quick-message-image.css +1 -1
  57. package/dist/collection/components/quick-message-image/quick-message-image.js +1 -1
  58. package/dist/collection/components/quick-message-modal/quick-message-modal.css +1 -1
  59. package/dist/collection/components/quick-message-modal/quick-message-modal.js +1 -1
  60. package/dist/collection/components/quick-message-template/quick-message-template.css +1 -1
  61. package/dist/collection/components/quick-message-template/quick-message-template.js +3 -3
  62. package/dist/collection/components/search-box/search-box.css +1 -1
  63. package/dist/collection/components/search-box/search-box.js +1 -1
  64. package/dist/collection/components/status-badge/status-badge.css +1 -1
  65. package/dist/collection/components/status-badge/status-badge.js +2 -2
  66. package/dist/collection/components/tag-list/tag-list.css +1 -1
  67. package/dist/collection/components/tag-list/tag-list.js +1 -1
  68. package/dist/collection/components/tag-or-status-item/tag-or-status-item.css +1 -1
  69. package/dist/collection/components/tag-or-status-item/tag-or-status-item.js +2 -2
  70. package/dist/collection/components/tag-popper/tag-popper.css +1 -1
  71. package/dist/collection/components/tag-popper/tag-popper.js +2 -2
  72. package/dist/collection/components/typography-clamp/typography-clamp.css +1 -1
  73. package/dist/collection/components/typography-clamp/typography-clamp.js +2 -2
  74. package/dist/collection/components/z-avatar/z-avatar.css +1 -1
  75. package/dist/collection/components/z-avatar/z-avatar.js +8 -2
  76. package/dist/collection/components/z-avatar/z-avatar.js.map +1 -1
  77. package/dist/collection/components/z-dialog/z-dialog.css +1 -1
  78. package/dist/collection/store/chat.js +6 -1
  79. package/dist/collection/store/chat.js.map +1 -1
  80. package/dist/collection/store/message.js +38 -6
  81. package/dist/collection/store/message.js.map +1 -1
  82. package/dist/collection/store/store.js +1 -1
  83. package/dist/collection/store/store.js.map +1 -1
  84. package/dist/components/autocomplete-address.js +1 -1
  85. package/dist/components/autocomplete-multiple-select.js +1 -1
  86. package/dist/components/autocomplete-select.js +1 -1
  87. package/dist/components/channel-box.js +1 -1
  88. package/dist/components/chat-app.js +48 -48
  89. package/dist/components/chat-app.js.map +1 -1
  90. package/dist/components/chat-header.js +1 -1
  91. package/dist/components/chat-input.js +1 -1
  92. package/dist/components/checkbox-list.js +1 -1
  93. package/dist/components/dialog-bill-editor.js +1 -1
  94. package/dist/components/dialog-editor.js +1 -1
  95. package/dist/components/dialog-preview-media.js +1 -1
  96. package/dist/components/dialog-search.js +1 -1
  97. package/dist/components/menu-chat-channel.js +1 -1
  98. package/dist/components/menu-chat-type.js +1 -1
  99. package/dist/components/menu-list.js +1 -1
  100. package/dist/components/message-box.js +1 -1
  101. package/dist/components/message-content.js +1 -1
  102. package/dist/components/message-item.js +1 -1
  103. package/dist/components/message-media.js +1 -1
  104. package/dist/components/{p-BfwDQevk.js → p-2QReMzO8.js} +15 -15
  105. package/dist/components/{p-BfwDQevk.js.map → p-2QReMzO8.js.map} +1 -1
  106. package/dist/components/{p-BAcE386V.js → p-5S7W_s42.js} +44 -12
  107. package/dist/components/p-5S7W_s42.js.map +1 -0
  108. package/dist/components/{p-7VwG3GTl.js → p-5z3Oz7nB.js} +4 -4
  109. package/dist/components/{p-7VwG3GTl.js.map → p-5z3Oz7nB.js.map} +1 -1
  110. package/dist/components/{p-Bb01kTl4.js → p-B6HiV-kQ.js} +3 -3
  111. package/dist/components/{p-Bb01kTl4.js.map → p-B6HiV-kQ.js.map} +1 -1
  112. package/dist/components/p-BB1RB9Dr.js +35 -0
  113. package/dist/components/{p-DBgHNduI.js.map → p-BB1RB9Dr.js.map} +1 -1
  114. package/dist/components/{p-GrnK0v_A.js → p-BLQ37Esu.js} +7 -7
  115. package/dist/components/{p-GrnK0v_A.js.map → p-BLQ37Esu.js.map} +1 -1
  116. package/dist/components/p-BLnHiJOJ.js +127 -0
  117. package/dist/components/p-BLnHiJOJ.js.map +1 -0
  118. package/dist/components/{p-xc8pAQt4.js → p-BQHu9-yW.js} +4 -4
  119. package/dist/components/{p-xc8pAQt4.js.map → p-BQHu9-yW.js.map} +1 -1
  120. package/dist/components/{p-DOx_fYz_.js → p-Bc8NC50u.js} +10 -10
  121. package/dist/components/{p-DOx_fYz_.js.map → p-Bc8NC50u.js.map} +1 -1
  122. package/dist/components/{p-DT1e8U5J.js → p-BdEkTr1V.js} +12 -12
  123. package/dist/components/{p-DT1e8U5J.js.map → p-BdEkTr1V.js.map} +1 -1
  124. package/dist/components/p-BlPbmOUJ.js +145 -0
  125. package/dist/components/p-BlPbmOUJ.js.map +1 -0
  126. package/dist/components/p-BpgguOkG.js +55 -0
  127. package/dist/components/{p-Zye2AvZI.js.map → p-BpgguOkG.js.map} +1 -1
  128. package/dist/components/p-Bt-g4GxB.js +113 -0
  129. package/dist/components/{p-rShdvhEn.js.map → p-Bt-g4GxB.js.map} +1 -1
  130. package/dist/components/{p-COFzcZWg.js → p-Bvoo3LWo.js} +6 -6
  131. package/dist/components/{p-COFzcZWg.js.map → p-Bvoo3LWo.js.map} +1 -1
  132. package/dist/components/{p-C0an_Y-_.js → p-C-YLmbpA.js} +4 -4
  133. package/dist/components/{p-C0an_Y-_.js.map → p-C-YLmbpA.js.map} +1 -1
  134. package/dist/components/{p-Dhuf9YNy.js → p-C2YAe0Ke.js} +3 -3
  135. package/dist/components/{p-Dhuf9YNy.js.map → p-C2YAe0Ke.js.map} +1 -1
  136. package/dist/components/{p-BQ0yCCV6.js → p-C4fbtLks.js} +5 -5
  137. package/dist/components/{p-BQ0yCCV6.js.map → p-C4fbtLks.js.map} +1 -1
  138. package/dist/components/{p-Csg2zfWF.js → p-C5i_qaws.js} +9 -9
  139. package/dist/components/{p-Csg2zfWF.js.map → p-C5i_qaws.js.map} +1 -1
  140. package/dist/components/{p-Bfvlw-rF.js → p-C7MtMQaw.js} +3 -3
  141. package/dist/components/{p-Bfvlw-rF.js.map → p-C7MtMQaw.js.map} +1 -1
  142. package/dist/components/{p-Ca9LbW-0.js → p-CB09ePCJ.js} +7 -7
  143. package/dist/components/{p-Ca9LbW-0.js.map → p-CB09ePCJ.js.map} +1 -1
  144. package/dist/components/{p-BEYgWj6b.js → p-CDPdfHLJ.js} +3 -3
  145. package/dist/components/{p-BEYgWj6b.js.map → p-CDPdfHLJ.js.map} +1 -1
  146. package/dist/components/p-CO0rmAnj.js +79 -0
  147. package/dist/components/{p-Drdp5Euh.js.map → p-CO0rmAnj.js.map} +1 -1
  148. package/dist/components/{p-uDj0XDfv.js → p-CRUuP7NU.js} +5 -5
  149. package/dist/components/{p-uDj0XDfv.js.map → p-CRUuP7NU.js.map} +1 -1
  150. package/dist/components/p-CS9zOcMw.js +126 -0
  151. package/dist/components/{p-aG9sejEo.js.map → p-CS9zOcMw.js.map} +1 -1
  152. package/dist/components/{p-a8Ave0b1.js → p-CZRPZKJ-.js} +11 -6
  153. package/dist/components/p-CZRPZKJ-.js.map +1 -0
  154. package/dist/components/{p-Cav9Xvhc.js → p-CZnSKQhh.js} +6 -6
  155. package/dist/components/{p-Cav9Xvhc.js.map → p-CZnSKQhh.js.map} +1 -1
  156. package/dist/components/{p-BQwk0OCD.js → p-C_gF8T8r.js} +12 -12
  157. package/dist/components/{p-BQwk0OCD.js.map → p-C_gF8T8r.js.map} +1 -1
  158. package/dist/components/{p-D5PoL4hp.js → p-CbjDD_ZV.js} +4 -4
  159. package/dist/components/{p-D5PoL4hp.js.map → p-CbjDD_ZV.js.map} +1 -1
  160. package/dist/components/{p-DHFOACHm.js → p-Cbmk_g-R.js} +5 -5
  161. package/dist/components/{p-DHFOACHm.js.map → p-Cbmk_g-R.js.map} +1 -1
  162. package/dist/components/{p-DeqB7qmW.js → p-CbwYwjdH.js} +3 -3
  163. package/dist/components/{p-DeqB7qmW.js.map → p-CbwYwjdH.js.map} +1 -1
  164. package/dist/components/{p-DXliIvkR.js → p-CiMfB3dP.js} +8 -8
  165. package/dist/components/{p-DXliIvkR.js.map → p-CiMfB3dP.js.map} +1 -1
  166. package/dist/components/p-CqgrsdCk.js +124 -0
  167. package/dist/components/p-CqgrsdCk.js.map +1 -0
  168. package/dist/components/{p-CaKYRiqR.js → p-CtIwL686.js} +4 -4
  169. package/dist/components/{p-CaKYRiqR.js.map → p-CtIwL686.js.map} +1 -1
  170. package/dist/components/{p-DTALiLAZ.js → p-D0EnDE_o.js} +4 -4
  171. package/dist/components/{p-DTALiLAZ.js.map → p-D0EnDE_o.js.map} +1 -1
  172. package/dist/components/{p-BTItt0Vn.js → p-DD6xErUJ.js} +43 -59
  173. package/dist/components/p-DD6xErUJ.js.map +1 -0
  174. package/dist/components/{p-CZjMEPqi.js → p-DFb_40q7.js} +7 -7
  175. package/dist/components/{p-CZjMEPqi.js.map → p-DFb_40q7.js.map} +1 -1
  176. package/dist/components/p-DIX7oTZv.js +112 -0
  177. package/dist/components/{p-DQjjDohc.js.map → p-DIX7oTZv.js.map} +1 -1
  178. package/dist/components/{p-2nxqY6Yv.js → p-DJ2KkdwP.js} +6 -6
  179. package/dist/components/{p-2nxqY6Yv.js.map → p-DJ2KkdwP.js.map} +1 -1
  180. package/dist/components/{p-C0WNBAqe.js → p-DRC94y7I.js} +5 -5
  181. package/dist/components/{p-C0WNBAqe.js.map → p-DRC94y7I.js.map} +1 -1
  182. package/dist/components/p-DUHqYYmX.js +161 -0
  183. package/dist/components/p-DUHqYYmX.js.map +1 -0
  184. package/dist/components/{p-D-KXyaWT.js → p-DXwuZde7.js} +6 -6
  185. package/dist/components/{p-D-KXyaWT.js.map → p-DXwuZde7.js.map} +1 -1
  186. package/dist/components/{p-CoklAWrF.js → p-DakbQEWw.js} +29 -29
  187. package/dist/components/{p-CoklAWrF.js.map → p-DakbQEWw.js.map} +1 -1
  188. package/dist/components/p-DdQFGe5w.js +225 -0
  189. package/dist/components/p-DdQFGe5w.js.map +1 -0
  190. package/dist/components/{p-b7Sv1iEG.js → p-DkfO3Url.js} +13 -13
  191. package/dist/components/{p-b7Sv1iEG.js.map → p-DkfO3Url.js.map} +1 -1
  192. package/dist/components/p-DtADJshZ.js +101 -0
  193. package/dist/components/p-DtADJshZ.js.map +1 -0
  194. package/dist/components/{p-DyI3f7kr.js → p-Dtzhm5Pa.js} +7 -7
  195. package/dist/components/{p-DyI3f7kr.js.map → p-Dtzhm5Pa.js.map} +1 -1
  196. package/dist/components/{p-DKrfS1S5.js → p-DwRMNFnU.js} +3 -3
  197. package/dist/components/{p-DKrfS1S5.js.map → p-DwRMNFnU.js.map} +1 -1
  198. package/dist/components/p-HxECzi7b.js +161 -0
  199. package/dist/components/{p-34NvdAct.js.map → p-HxECzi7b.js.map} +1 -1
  200. package/dist/components/p-KedgTCA1.js +61 -0
  201. package/dist/components/{p-a3QvEULN.js.map → p-KedgTCA1.js.map} +1 -1
  202. package/dist/components/{p-WYN1j0PL.js → p-L97C6UYO.js} +5 -5
  203. package/dist/components/{p-WYN1j0PL.js.map → p-L97C6UYO.js.map} +1 -1
  204. package/dist/components/{p-Khnj_GHE.js → p-PLHiwThd.js} +3 -3
  205. package/dist/components/{p-Khnj_GHE.js.map → p-PLHiwThd.js.map} +1 -1
  206. package/dist/components/{p-COEdIJkP.js → p-l6ffmvGW.js} +5 -5
  207. package/dist/components/{p-COEdIJkP.js.map → p-l6ffmvGW.js.map} +1 -1
  208. package/dist/components/{p-D1eldCje.js → p-m4eaolum.js} +4 -4
  209. package/dist/components/{p-D1eldCje.js.map → p-m4eaolum.js.map} +1 -1
  210. package/dist/components/{p-D6cBz4be.js → p-odaejdwA.js} +19 -19
  211. package/dist/components/{p-D6cBz4be.js.map → p-odaejdwA.js.map} +1 -1
  212. package/dist/components/p-sa3XE9PE.js +148 -0
  213. package/dist/components/p-sa3XE9PE.js.map +1 -0
  214. package/dist/components/{p-LsQYRhK6.js → p-x8gJGTdZ.js} +3 -3
  215. package/dist/components/p-x8gJGTdZ.js.map +1 -0
  216. package/dist/components/profile-history.js +1 -1
  217. package/dist/components/profile-info.js +1 -1
  218. package/dist/components/profile-media.js +1 -1
  219. package/dist/components/profile-tabs.js +1 -1
  220. package/dist/components/quick-message-add-template.js +1 -1
  221. package/dist/components/quick-message-app.js +13 -13
  222. package/dist/components/quick-message-app.js.map +1 -1
  223. package/dist/components/quick-message-button-content.js +1 -1
  224. package/dist/components/quick-message-file.js +1 -1
  225. package/dist/components/quick-message-image-content.js +1 -1
  226. package/dist/components/quick-message-image.js +1 -1
  227. package/dist/components/quick-message-menu-list-content.js +1 -1
  228. package/dist/components/quick-message-modal.js +1 -1
  229. package/dist/components/quick-message-template.js +1 -1
  230. package/dist/components/quick-message-text-content.js +1 -1
  231. package/dist/components/quick-message-video-content.js +1 -1
  232. package/dist/components/search-box.js +1 -1
  233. package/dist/components/status-badge.js +1 -1
  234. package/dist/components/summarize-message-section.js +1 -1
  235. package/dist/components/tag-list.js +1 -1
  236. package/dist/components/tag-or-status-item.js +1 -1
  237. package/dist/components/tag-popper.js +1 -1
  238. package/dist/components/typography-clamp.js +1 -1
  239. package/dist/components/user-info-section.js +1 -1
  240. package/dist/components/z-avatar.js +1 -1
  241. package/dist/components/z-dialog.js +1 -1
  242. package/dist/esm/app-globals-DQuL1Twl.js.map +1 -1
  243. package/dist/esm/autocomplete-address_43.entry.js +185 -137
  244. package/dist/esm/{dayjs-9U43dXkE.js → dayjs-CBRfzh5w.js} +4 -4
  245. package/dist/esm/dayjs-CBRfzh5w.js.map +1 -0
  246. package/dist/esm/loader.js +1 -1
  247. package/dist/esm/quick-message-app.entry.js +3 -3
  248. package/dist/esm/quick-message-app.entry.js.map +1 -1
  249. package/dist/esm/zignal-stencil-library.js +1 -1
  250. package/dist/types/components/menu-list/menu-list.d.ts +3 -2
  251. package/dist/types/components/profile-history/profile-history.d.ts +1 -0
  252. package/dist/types/components/profile-info/profile-info.d.ts +2 -2
  253. package/dist/types/components/profile-info/user-info-section.d.ts +2 -0
  254. package/dist/types/components/z-avatar/z-avatar.d.ts +1 -1
  255. package/dist/types/components.d.ts +12 -2
  256. package/dist/types/store/store.d.ts +1 -1
  257. package/dist/zignal-stencil-library/{p-35a45709.entry.js → p-2fcff9fe.entry.js} +64 -64
  258. package/dist/zignal-stencil-library/p-2fcff9fe.entry.js.map +1 -0
  259. package/dist/zignal-stencil-library/p-4b0cf474.entry.js +2 -0
  260. package/dist/zignal-stencil-library/{p-b3cbf3e3.entry.js.map → p-4b0cf474.entry.js.map} +1 -1
  261. package/dist/zignal-stencil-library/p-CZlSuaCa.js +2 -0
  262. package/dist/zignal-stencil-library/p-CZlSuaCa.js.map +1 -0
  263. package/dist/zignal-stencil-library/p-DQuL1Twl.js.map +1 -1
  264. package/dist/zignal-stencil-library/quick-message-app.entry.esm.js.map +1 -1
  265. package/dist/zignal-stencil-library/zignal-stencil-library.css +1 -1
  266. package/dist/zignal-stencil-library/zignal-stencil-library.esm.js +1 -1
  267. package/package.json +1 -1
  268. package/dist/cjs/dayjs-Dssqvl2P.js.map +0 -1
  269. package/dist/components/p-34NvdAct.js +0 -161
  270. package/dist/components/p-8c8Dr0ZV.js +0 -148
  271. package/dist/components/p-8c8Dr0ZV.js.map +0 -1
  272. package/dist/components/p-B0F3Fpbq.js +0 -127
  273. package/dist/components/p-B0F3Fpbq.js.map +0 -1
  274. package/dist/components/p-B5dJsgfS.js +0 -122
  275. package/dist/components/p-B5dJsgfS.js.map +0 -1
  276. package/dist/components/p-BAcE386V.js.map +0 -1
  277. package/dist/components/p-BTItt0Vn.js.map +0 -1
  278. package/dist/components/p-BtVgKal4.js +0 -116
  279. package/dist/components/p-BtVgKal4.js.map +0 -1
  280. package/dist/components/p-DBgHNduI.js +0 -35
  281. package/dist/components/p-DLUy8rmx.js +0 -223
  282. package/dist/components/p-DLUy8rmx.js.map +0 -1
  283. package/dist/components/p-DQjjDohc.js +0 -112
  284. package/dist/components/p-Drdp5Euh.js +0 -79
  285. package/dist/components/p-LsQYRhK6.js.map +0 -1
  286. package/dist/components/p-Zye2AvZI.js +0 -55
  287. package/dist/components/p-a3QvEULN.js +0 -61
  288. package/dist/components/p-a8Ave0b1.js.map +0 -1
  289. package/dist/components/p-aG9sejEo.js +0 -126
  290. package/dist/components/p-eM9QTWv9.js +0 -95
  291. package/dist/components/p-eM9QTWv9.js.map +0 -1
  292. package/dist/components/p-rShdvhEn.js +0 -113
  293. package/dist/components/p-tAmACNBr.js +0 -169
  294. package/dist/components/p-tAmACNBr.js.map +0 -1
  295. package/dist/esm/dayjs-9U43dXkE.js.map +0 -1
  296. package/dist/zignal-stencil-library/p-35a45709.entry.js.map +0 -1
  297. package/dist/zignal-stencil-library/p-DO7BhE7i.js +0 -2
  298. package/dist/zignal-stencil-library/p-DO7BhE7i.js.map +0 -1
  299. package/dist/zignal-stencil-library/p-b3cbf3e3.entry.js +0 -2
@@ -1,8 +1,8 @@
1
- import { r as readMessage, i as unReadMessage, j as getChatMessages, t as translateChatMessage } from './p-Ca9LbW-0.js';
2
- import { a as chatsStore, s as selectedChatStore, m as messagesStore, c as configStore } from './p-LsQYRhK6.js';
3
- import { M as MESSAGE_PAGE_LIMIT } from './p-DKrfS1S5.js';
1
+ import { r as readMessage, i as unReadMessage, j as getChatMessages, t as translateChatMessage } from './p-CB09ePCJ.js';
2
+ import { a as chatsStore, s as selectedChatStore, m as messagesStore, c as configStore } from './p-x8gJGTdZ.js';
3
+ import { M as MESSAGE_PAGE_LIMIT } from './p-DwRMNFnU.js';
4
4
  import { d as dayjs } from './p-B_5_ahYE.js';
5
- import { h as handleError } from './p-Dhuf9YNy.js';
5
+ import { h as handleError } from './p-C2YAe0Ke.js';
6
6
 
7
7
  const instanceOfAny = (object, constructors) => constructors.some((c) => object instanceof c);
8
8
 
@@ -442,14 +442,46 @@ function handleMapReadMessage() {
442
442
  setTimeout(() => {
443
443
  const reads = messagesStore.get('reads');
444
444
  const messages = messagesStore.get('messages');
445
- const readsMap = new Map();
446
- for (const read of reads) {
447
- for (const message of messages.reverse()) {
448
- if (read.read_at && dayjs(read.read_at).isAfter(dayjs(message.message_at))) {
449
- readsMap[message.id] = [...(readsMap[message.id] || []), read];
450
- break;
445
+ if (messages.length === 0 || reads.length === 0) {
446
+ messagesStore.set('readsMap', {});
447
+ return;
448
+ }
449
+ const readsMap = {};
450
+ const sortedMessages = [...messages]
451
+ .map(msg => ({
452
+ id: msg.id,
453
+ timestamp: dayjs(msg.message_at).valueOf()
454
+ }))
455
+ .sort((a, b) => a.timestamp - b.timestamp);
456
+ const validReads = reads
457
+ .filter(read => read.read_at)
458
+ .map(read => ({
459
+ reader: read,
460
+ timestamp: dayjs(read.read_at).valueOf()
461
+ }))
462
+ .sort((a, b) => a.timestamp - b.timestamp);
463
+ if (validReads.length === 0) {
464
+ messagesStore.set('readsMap', {});
465
+ return;
466
+ }
467
+ const assignedReadIndices = new Set();
468
+ for (let i = sortedMessages.length - 1; i >= 0; i--) {
469
+ const message = sortedMessages[i];
470
+ const applicableReads = [];
471
+ for (let j = 0; j < validReads.length; j++) {
472
+ if (assignedReadIndices.has(j))
473
+ continue;
474
+ if (validReads[j].timestamp > message.timestamp) {
475
+ applicableReads.push(validReads[j].reader);
476
+ assignedReadIndices.add(j);
451
477
  }
452
478
  }
479
+ if (applicableReads.length > 0) {
480
+ readsMap[message.id] = applicableReads;
481
+ }
482
+ if (assignedReadIndices.size === validReads.length) {
483
+ break;
484
+ }
453
485
  }
454
486
  messagesStore.set('readsMap', readsMap);
455
487
  }, 300);
@@ -744,6 +776,6 @@ function getMessagePicture(sender, item) {
744
776
  }
745
777
 
746
778
  export { serviceUnReadMessage as a, serviceUpdateMessageItems as b, serviceUpdateChatItem as c, scrollBottomMessage as d, storeTranslation as e, getMessagePicture as f, getTranslation as g, scrollToMessage as h, handleGetChatMessages as i, initDB as j, getOrFetchTranslation as k, handleMapReadMessage as l, serviceReadMessage as s };
747
- //# sourceMappingURL=p-BAcE386V.js.map
779
+ //# sourceMappingURL=p-5S7W_s42.js.map
748
780
 
749
- //# sourceMappingURL=p-BAcE386V.js.map
781
+ //# sourceMappingURL=p-5S7W_s42.js.map
@@ -0,0 +1 @@
1
+ {"file":"p-5S7W_s42.js","mappings":"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","names":[],"sources":["../../node_modules/idb/build/index.js","src/store/message.ts"],"sourcesContent":["const instanceOfAny = (object, constructors) => constructors.some((c) => object instanceof c);\n\nlet idbProxyableTypes;\nlet cursorAdvanceMethods;\n// This is a function to prevent it throwing up in node environments.\nfunction getIdbProxyableTypes() {\n return (idbProxyableTypes ||\n (idbProxyableTypes = [\n IDBDatabase,\n IDBObjectStore,\n IDBIndex,\n IDBCursor,\n IDBTransaction,\n ]));\n}\n// This is a function to prevent it throwing up in node environments.\nfunction getCursorAdvanceMethods() {\n return (cursorAdvanceMethods ||\n (cursorAdvanceMethods = [\n IDBCursor.prototype.advance,\n IDBCursor.prototype.continue,\n IDBCursor.prototype.continuePrimaryKey,\n ]));\n}\nconst transactionDoneMap = new WeakMap();\nconst transformCache = new WeakMap();\nconst reverseTransformCache = new WeakMap();\nfunction promisifyRequest(request) {\n const promise = new Promise((resolve, reject) => {\n const unlisten = () => {\n request.removeEventListener('success', success);\n request.removeEventListener('error', error);\n };\n const success = () => {\n resolve(wrap(request.result));\n unlisten();\n };\n const error = () => {\n reject(request.error);\n unlisten();\n };\n request.addEventListener('success', success);\n request.addEventListener('error', error);\n });\n // This mapping exists in reverseTransformCache but doesn't exist in transformCache. This\n // is because we create many promises from a single IDBRequest.\n reverseTransformCache.set(promise, request);\n return promise;\n}\nfunction cacheDonePromiseForTransaction(tx) {\n // Early bail if we've already created a done promise for this transaction.\n if (transactionDoneMap.has(tx))\n return;\n const done = new Promise((resolve, reject) => {\n const unlisten = () => {\n tx.removeEventListener('complete', complete);\n tx.removeEventListener('error', error);\n tx.removeEventListener('abort', error);\n };\n const complete = () => {\n resolve();\n unlisten();\n };\n const error = () => {\n reject(tx.error || new DOMException('AbortError', 'AbortError'));\n unlisten();\n };\n tx.addEventListener('complete', complete);\n tx.addEventListener('error', error);\n tx.addEventListener('abort', error);\n });\n // Cache it for later retrieval.\n transactionDoneMap.set(tx, done);\n}\nlet idbProxyTraps = {\n get(target, prop, receiver) {\n if (target instanceof IDBTransaction) {\n // Special handling for transaction.done.\n if (prop === 'done')\n return transactionDoneMap.get(target);\n // Make tx.store return the only store in the transaction, or undefined if there are many.\n if (prop === 'store') {\n return receiver.objectStoreNames[1]\n ? undefined\n : receiver.objectStore(receiver.objectStoreNames[0]);\n }\n }\n // Else transform whatever we get back.\n return wrap(target[prop]);\n },\n set(target, prop, value) {\n target[prop] = value;\n return true;\n },\n has(target, prop) {\n if (target instanceof IDBTransaction &&\n (prop === 'done' || prop === 'store')) {\n return true;\n }\n return prop in target;\n },\n};\nfunction replaceTraps(callback) {\n idbProxyTraps = callback(idbProxyTraps);\n}\nfunction wrapFunction(func) {\n // Due to expected object equality (which is enforced by the caching in `wrap`), we\n // only create one new func per func.\n // Cursor methods are special, as the behaviour is a little more different to standard IDB. In\n // IDB, you advance the cursor and wait for a new 'success' on the IDBRequest that gave you the\n // cursor. It's kinda like a promise that can resolve with many values. That doesn't make sense\n // with real promises, so each advance methods returns a new promise for the cursor object, or\n // undefined if the end of the cursor has been reached.\n if (getCursorAdvanceMethods().includes(func)) {\n return function (...args) {\n // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n // the original object.\n func.apply(unwrap(this), args);\n return wrap(this.request);\n };\n }\n return function (...args) {\n // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n // the original object.\n return wrap(func.apply(unwrap(this), args));\n };\n}\nfunction transformCachableValue(value) {\n if (typeof value === 'function')\n return wrapFunction(value);\n // This doesn't return, it just creates a 'done' promise for the transaction,\n // which is later returned for transaction.done (see idbObjectHandler).\n if (value instanceof IDBTransaction)\n cacheDonePromiseForTransaction(value);\n if (instanceOfAny(value, getIdbProxyableTypes()))\n return new Proxy(value, idbProxyTraps);\n // Return the same value back if we're not going to transform it.\n return value;\n}\nfunction wrap(value) {\n // We sometimes generate multiple promises from a single IDBRequest (eg when cursoring), because\n // IDB is weird and a single IDBRequest can yield many responses, so these can't be cached.\n if (value instanceof IDBRequest)\n return promisifyRequest(value);\n // If we've already transformed this value before, reuse the transformed value.\n // This is faster, but it also provides object equality.\n if (transformCache.has(value))\n return transformCache.get(value);\n const newValue = transformCachableValue(value);\n // Not all types are transformed.\n // These may be primitive types, so they can't be WeakMap keys.\n if (newValue !== value) {\n transformCache.set(value, newValue);\n reverseTransformCache.set(newValue, value);\n }\n return newValue;\n}\nconst unwrap = (value) => reverseTransformCache.get(value);\n\n/**\n * Open a database.\n *\n * @param name Name of the database.\n * @param version Schema version.\n * @param callbacks Additional callbacks.\n */\nfunction openDB(name, version, { blocked, upgrade, blocking, terminated } = {}) {\n const request = indexedDB.open(name, version);\n const openPromise = wrap(request);\n if (upgrade) {\n request.addEventListener('upgradeneeded', (event) => {\n upgrade(wrap(request.result), event.oldVersion, event.newVersion, wrap(request.transaction), event);\n });\n }\n if (blocked) {\n request.addEventListener('blocked', (event) => blocked(\n // Casting due to https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/1405\n event.oldVersion, event.newVersion, event));\n }\n openPromise\n .then((db) => {\n if (terminated)\n db.addEventListener('close', () => terminated());\n if (blocking) {\n db.addEventListener('versionchange', (event) => blocking(event.oldVersion, event.newVersion, event));\n }\n })\n .catch(() => { });\n return openPromise;\n}\n/**\n * Delete a database.\n *\n * @param name Name of the database.\n */\nfunction deleteDB(name, { blocked } = {}) {\n const request = indexedDB.deleteDatabase(name);\n if (blocked) {\n request.addEventListener('blocked', (event) => blocked(\n // Casting due to https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/1405\n event.oldVersion, event));\n }\n return wrap(request).then(() => undefined);\n}\n\nconst readMethods = ['get', 'getKey', 'getAll', 'getAllKeys', 'count'];\nconst writeMethods = ['put', 'add', 'delete', 'clear'];\nconst cachedMethods = new Map();\nfunction getMethod(target, prop) {\n if (!(target instanceof IDBDatabase &&\n !(prop in target) &&\n typeof prop === 'string')) {\n return;\n }\n if (cachedMethods.get(prop))\n return cachedMethods.get(prop);\n const targetFuncName = prop.replace(/FromIndex$/, '');\n const useIndex = prop !== targetFuncName;\n const isWrite = writeMethods.includes(targetFuncName);\n if (\n // Bail if the target doesn't exist on the target. Eg, getAll isn't in Edge.\n !(targetFuncName in (useIndex ? IDBIndex : IDBObjectStore).prototype) ||\n !(isWrite || readMethods.includes(targetFuncName))) {\n return;\n }\n const method = async function (storeName, ...args) {\n // isWrite ? 'readwrite' : undefined gzipps better, but fails in Edge :(\n const tx = this.transaction(storeName, isWrite ? 'readwrite' : 'readonly');\n let target = tx.store;\n if (useIndex)\n target = target.index(args.shift());\n // Must reject if op rejects.\n // If it's a write operation, must reject if tx.done rejects.\n // Must reject with op rejection first.\n // Must resolve with op value.\n // Must handle both promises (no unhandled rejections)\n return (await Promise.all([\n target[targetFuncName](...args),\n isWrite && tx.done,\n ]))[0];\n };\n cachedMethods.set(prop, method);\n return method;\n}\nreplaceTraps((oldTraps) => ({\n ...oldTraps,\n get: (target, prop, receiver) => getMethod(target, prop) || oldTraps.get(target, prop, receiver),\n has: (target, prop) => !!getMethod(target, prop) || oldTraps.has(target, prop),\n}));\n\nconst advanceMethodProps = ['continue', 'continuePrimaryKey', 'advance'];\nconst methodMap = {};\nconst advanceResults = new WeakMap();\nconst ittrProxiedCursorToOriginalProxy = new WeakMap();\nconst cursorIteratorTraps = {\n get(target, prop) {\n if (!advanceMethodProps.includes(prop))\n return target[prop];\n let cachedFunc = methodMap[prop];\n if (!cachedFunc) {\n cachedFunc = methodMap[prop] = function (...args) {\n advanceResults.set(this, ittrProxiedCursorToOriginalProxy.get(this)[prop](...args));\n };\n }\n return cachedFunc;\n },\n};\nasync function* iterate(...args) {\n // tslint:disable-next-line:no-this-assignment\n let cursor = this;\n if (!(cursor instanceof IDBCursor)) {\n cursor = await cursor.openCursor(...args);\n }\n if (!cursor)\n return;\n cursor = cursor;\n const proxiedCursor = new Proxy(cursor, cursorIteratorTraps);\n ittrProxiedCursorToOriginalProxy.set(proxiedCursor, cursor);\n // Map this double-proxy back to the original, so other cursor methods work.\n reverseTransformCache.set(proxiedCursor, unwrap(cursor));\n while (cursor) {\n yield proxiedCursor;\n // If one of the advancing methods was not called, call continue().\n cursor = await (advanceResults.get(proxiedCursor) || cursor.continue());\n advanceResults.delete(proxiedCursor);\n }\n}\nfunction isIteratorProp(target, prop) {\n return ((prop === Symbol.asyncIterator &&\n instanceOfAny(target, [IDBIndex, IDBObjectStore, IDBCursor])) ||\n (prop === 'iterate' && instanceOfAny(target, [IDBIndex, IDBObjectStore])));\n}\nreplaceTraps((oldTraps) => ({\n ...oldTraps,\n get(target, prop, receiver) {\n if (isIteratorProp(target, prop))\n return iterate;\n return oldTraps.get(target, prop, receiver);\n },\n has(target, prop) {\n return isIteratorProp(target, prop) || oldTraps.has(target, prop);\n },\n}));\n\nexport { deleteDB, openDB, unwrap, wrap };\n","import { openDB, DBSchema, IDBPDatabase } from 'idb';\nimport { getChatMessages, readMessage, translateChatMessage, unReadMessage } from '../api';\nimport { chatsStore, configStore, messagesStore, selectedChatStore } from './store';\nimport { MESSAGE_PAGE_LIMIT } from '../utils/constant';\nimport {\n ChannelType,\n ChatMessageItem,\n ChatMessageReader,\n ChatMessageTemplateAction,\n ChatSender,\n MessageAttachmentPayloadButton,\n QuickMessageTemplateButton,\n QuickMessageTemplateMenuListItem,\n TChatItem,\n} from './type';\nimport dayjs from 'dayjs';\nimport { handleError } from './dialog';\n\ninterface TranslatedMessage {\n business_id: string;\n shop_id: string;\n chat_id: string;\n message_id: string;\n translated_text: string;\n created_at?: number;\n}\n\ninterface TranslationDB extends DBSchema {\n translations: {\n key: string; // `${business_id}-${shop_id}-${chat_id}-${message_id}`\n value: TranslatedMessage;\n };\n}\n\nlet dbPromise: Promise<IDBPDatabase<TranslationDB>>;\n\nexport function initDB() {\n dbPromise = openDB<TranslationDB>('TranslationsDB', 1, {\n upgrade(db) {\n if (!db.objectStoreNames.contains('translations')) {\n db.createObjectStore('translations');\n }\n },\n });\n}\n\nfunction makeKey({ chat_id, message_id }: { chat_id: string; message_id: string }) {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n return `${businessId}-${shopId}-${chat_id}-${message_id}`;\n}\n\nexport async function getTranslation({ chat_id, message_ids }: { chat_id: string; message_ids: string[] }) {\n const db = await dbPromise;\n\n const keys = message_ids.map(message_id => makeKey({ chat_id, message_id }));\n\n const results = await Promise.all(keys.map(key => db.get('translations', key)));\n\n return results.filter((item): item is NonNullable<typeof item> => !!item);\n}\n\nexport async function storeTranslation(data: { chat_id: string; message_id: string; translated_text: string }) {\n const db = await dbPromise;\n const { chat_id, message_id } = data;\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n const key = makeKey({ chat_id, message_id });\n\n await db.put(\n 'translations',\n {\n ...data,\n business_id: businessId,\n shop_id: shopId,\n created_at: Date.now(),\n },\n key,\n );\n}\n\nexport async function getTranslationsByChat({ business_id, shop_id, chat_id }: { business_id: string; shop_id: string; chat_id: string }) {\n const db = await dbPromise;\n const tx = db.transaction('translations', 'readonly');\n const store = tx.objectStore('translations');\n\n const all: any[] = [];\n let cursor = await store.openCursor();\n while (cursor) {\n if (cursor.value.business_id === business_id && cursor.value.shop_id === shop_id && cursor.value.chat_id === chat_id) {\n all.push(cursor.value);\n }\n cursor = await cursor.continue();\n }\n return all;\n}\n\nasync function fetchAndStoreTranslation({ chat_id, message_ids }: { chat_id: string; message_ids: string[] }) {\n try {\n const translatedResponse = await translateChatMessage({\n sessionId: chat_id,\n messageIds: message_ids,\n });\n\n for (const message of translatedResponse?.messages || []) {\n await storeTranslation({\n chat_id,\n message_id: message.id,\n translated_text: message.text,\n });\n }\n\n return translatedResponse;\n } catch (error: unknown) {\n handleError(error, 'Failed to Translate Chat Message');\n }\n}\n\nexport async function getOrFetchTranslation({ chat_id, message_ids }: { chat_id: string; message_ids: string[] }) {\n if (message_ids.length === 0) return { messages: [] };\n\n const cachedTranslations = await getTranslation({ chat_id, message_ids });\n if (cachedTranslations.length > 0) {\n const transformedTranslations = cachedTranslations.map(item => ({\n id: item.message_id,\n text: item.translated_text,\n }));\n return { messages: transformedTranslations };\n }\n return fetchAndStoreTranslation({ chat_id, message_ids });\n}\n\nexport async function handleGetChatMessages({ startMessageId, next, prev, isNewer = false }: { startMessageId?: string; next?: string; prev?: string; isNewer?: boolean }) {\n const loadedKeys = messagesStore.get('loadedKeys');\n if ((next && loadedKeys.has(next)) || (prev && loadedKeys.has(prev))) return;\n\n const selectedChat = selectedChatStore.get('selectedChat');\n\n const {\n messages,\n reads,\n next: nextKey,\n prev: prevKey,\n } = await getChatMessages({\n sessionId: selectedChat.id,\n limit: MESSAGE_PAGE_LIMIT,\n next: startMessageId ? undefined : next,\n prev,\n startMessageId,\n });\n if (!messages.length) return;\n let translatedMessages = messages;\n const translationSettings = configStore.get('translationSettings');\n\n if (translationSettings.is_auto && selectedChat.language !== translationSettings.target_language && !translationSettings.exclude_languages.includes(selectedChat.language)) {\n const translatedResponse = await getOrFetchTranslation({\n chat_id: selectedChat.id,\n message_ids: messages.filter(item => item.text).map(item => item.id),\n });\n\n const translatedMap = new Map((translatedResponse?.messages ?? []).map(m => [m.id, m.text]));\n\n translatedMessages = messages.map(item => ({\n ...item,\n translatedText: translatedMap.get(item.id) ?? item.translatedText,\n }));\n }\n const isJumpMessage = Boolean(startMessageId);\n serviceUpdateMessageItems({ updateMessages: translatedMessages, clearMessages: isJumpMessage });\n\n messagesStore.set('reads', reads);\n const keys = { next: nextKey, prev: prevKey };\n messagesStore.set(isNewer ? 'newer' : 'older', keys);\n messagesStore.set('jumpMessageId', startMessageId);\n if (next || prev) {\n messagesStore.set('loadedKeys', new Set([...loadedKeys, next, prev]));\n }\n\n if (isJumpMessage && keys.prev && translatedMessages.length < MESSAGE_PAGE_LIMIT) {\n console.log('Load more automatic');\n await handleGetChatMessages({ prev: keys.prev, isNewer });\n }\n\n setTimeout(() => {\n handleMapReadMessage();\n }, 300);\n}\n\nexport function serviceUpdateMessageItems({\n updateMessages,\n clearSending = false,\n clearMessages = false,\n}: {\n updateMessages: ChatMessageItem[];\n clearSending?: boolean;\n clearMessages?: boolean;\n}) {\n const selectedChat = selectedChatStore.get('selectedChat');\n const channel = selectedChat?.channel;\n\n const mappedUpdateMessages = updateMessages\n .map(item => mapTemplateContent(item, channel))\n .filter((item): item is ChatMessageItem => Boolean(item));\n\n if (!mappedUpdateMessages.length) return;\n const messages = clearMessages ? [] : messagesStore.get('messages');\n\n let newMessages: ChatMessageItem[] = [];\n let oldMessages: ChatMessageItem[] = [];\n\n if (mappedUpdateMessages.length > 1 && dayjs(mappedUpdateMessages[0].message_at).isAfter(dayjs(mappedUpdateMessages[mappedUpdateMessages.length - 1].message_at))) {\n newMessages = mappedUpdateMessages.reverse();\n } else {\n newMessages = mappedUpdateMessages;\n }\n\n if (messages.length > 1 && dayjs(messages[0].message_at).isAfter(dayjs(messages[messages.length - 1].message_at))) {\n oldMessages = messages.reverse();\n } else {\n oldMessages = messages;\n }\n\n let mergedMessages: ChatMessageItem[] = [];\n if (newMessages.length && oldMessages.length && dayjs(newMessages[0].message_at).isAfter(oldMessages[0].message_at)) {\n mergedMessages = [...oldMessages, ...newMessages];\n } else {\n mergedMessages = [...newMessages, ...oldMessages];\n }\n\n const filteredMessages = clearSending ? mergedMessages.filter(item => !item.isSending) : mergedMessages;\n\n const uniqueMessages = Array.from(new Map(filteredMessages.map(m => [m.id, m])).values());\n\n messagesStore.set('messages', uniqueMessages);\n}\n\nexport function handleMapReadMessage() {\n setTimeout(() => {\n const reads = messagesStore.get('reads');\n const messages = messagesStore.get('messages');\n\n if (messages.length === 0 || reads.length === 0) {\n messagesStore.set('readsMap', {});\n return;\n }\n\n const readsMap: Record<string, ChatMessageReader[]> = {};\n\n const sortedMessages = [...messages]\n .map(msg => ({\n id: msg.id,\n timestamp: dayjs(msg.message_at).valueOf()\n }))\n .sort((a, b) => a.timestamp - b.timestamp);\n\n const validReads = reads\n .filter(read => read.read_at)\n .map(read => ({\n reader: read,\n timestamp: dayjs(read.read_at).valueOf()\n }))\n .sort((a, b) => a.timestamp - b.timestamp);\n\n if (validReads.length === 0) {\n messagesStore.set('readsMap', {});\n return;\n }\n\n const assignedReadIndices = new Set<number>();\n\n for (let i = sortedMessages.length - 1; i >= 0; i--) {\n const message = sortedMessages[i];\n const applicableReads: ChatMessageReader[] = [];\n\n for (let j = 0; j < validReads.length; j++) {\n if (assignedReadIndices.has(j)) continue;\n\n if (validReads[j].timestamp > message.timestamp) {\n applicableReads.push(validReads[j].reader);\n assignedReadIndices.add(j);\n }\n }\n\n if (applicableReads.length > 0) {\n readsMap[message.id] = applicableReads;\n }\n\n if (assignedReadIndices.size === validReads.length) {\n break;\n }\n }\n\n messagesStore.set('readsMap', readsMap);\n }, 300);\n}\n\nexport async function serviceReadMessage(sessionId: string) {\n const { last_read_at } = await readMessage({ sessionId });\n if (last_read_at) {\n serviceUpdateChatItem({\n chatId: sessionId,\n updateValue: {\n mark_as_unread: false,\n unread_count: 0,\n updated_at: last_read_at,\n },\n });\n return true;\n }\n return false;\n}\n\nexport async function serviceUnReadMessage(sessionId: string) {\n const { code } = await unReadMessage({ sessionId });\n if (code === 'chat-marked-as-unread') {\n serviceUpdateChatItem({\n chatId: sessionId,\n updateValue: {\n mark_as_unread: true,\n },\n });\n return true;\n }\n return false;\n}\n\nexport function serviceUpdateChatItem({ chatId, updateValue }: { chatId: string; updateValue: Partial<TChatItem> }) {\n const chats = chatsStore.get('chats');\n const idx = chats.findIndex(chat => chat.id === chatId);\n\n if (idx !== -1) {\n const updatedChats = [\n ...chats.slice(0, idx),\n {\n ...chats[idx],\n ...updateValue,\n },\n ...chats.slice(idx + 1),\n ];\n chatsStore.set('chats', updatedChats);\n }\n}\n\nexport function scrollBottomMessage(chatId: string) {\n setTimeout(() => {\n const messageContainer = document.getElementById(`message-box-${chatId}`);\n if (messageContainer) {\n messageContainer.scrollTop = messageContainer.scrollHeight;\n }\n }, 100);\n}\n\nexport function scrollToMessage(messageId: string) {\n const messageElement = document.getElementById(`message-${messageId}`);\n if (messageElement) {\n messageElement.scrollIntoView({ behavior: 'smooth' });\n }\n\n const messageContentElement = document.getElementById(`message-content-${messageId}`);\n if (messageContentElement) {\n messageContentElement.focus();\n }\n\n return Boolean(messageElement);\n}\n\n\n\nfunction generateTemplateId(prefix: string) {\n if (typeof crypto !== 'undefined' && typeof crypto.randomUUID === 'function') {\n return `${prefix}-${crypto.randomUUID()}`;\n }\n return `${prefix}-${Math.random().toString(36).slice(2)}-${Date.now().toString(36)}`;\n}\n\nfunction createTemplateButton({\n actionType,\n text,\n action,\n sequence,\n}: {\n actionType: QuickMessageTemplateButton['action_type'];\n text?: string | null;\n action?: string | null;\n sequence?: number;\n}): QuickMessageTemplateButton {\n const button: QuickMessageTemplateButton = {\n id: generateTemplateId('btn'),\n action_type: actionType,\n };\n\n const trimmedText = text?.trim();\n if (trimmedText) {\n button.text = trimmedText;\n }\n\n const trimmedAction = action?.trim();\n if (trimmedAction) {\n button.action = trimmedAction;\n }\n\n if (typeof sequence === 'number') {\n button.sequence = sequence;\n }\n\n return button;\n}\n\nfunction createMenuListItem({\n fileUrl,\n title,\n description,\n buttons,\n sequence,\n}: {\n fileUrl?: string | null;\n title?: string | null;\n description?: string | null;\n buttons: QuickMessageTemplateButton[];\n sequence?: number;\n}): QuickMessageTemplateMenuListItem {\n const menuItem: QuickMessageTemplateMenuListItem = {\n id: generateTemplateId('menu'),\n buttons,\n };\n\n const trimmedFileUrl = fileUrl?.trim();\n if (trimmedFileUrl) {\n menuItem.file_url = trimmedFileUrl;\n }\n\n const trimmedTitle = title?.trim();\n if (trimmedTitle) {\n menuItem.title = trimmedTitle;\n }\n\n const trimmedDescription = description?.trim();\n if (trimmedDescription) {\n menuItem.description = trimmedDescription;\n }\n\n if (typeof sequence === 'number') {\n menuItem.sequence = sequence;\n }\n\n return menuItem;\n}\n\nfunction mapLineActionType(label?: string | null): QuickMessageTemplateButton['action_type'] {\n switch (label) {\n case 'url':\n return 'url';\n case 'tel':\n return 'tel';\n default:\n return 'text';\n }\n}\n\nfunction mapLineTemplateActions(actions?: ChatMessageTemplateAction[] | null): QuickMessageTemplateButton[] {\n if (!actions || actions.length === 0) {\n return [];\n }\n\n return actions\n .map((action, index) =>\n createTemplateButton({\n actionType: mapLineActionType(action?.label),\n text: action?.label ?? action?.text ?? '',\n action: action?.uri ?? undefined,\n sequence: index + 1,\n }),\n )\n .filter(button => Boolean(button.text || button.action));\n}\n\nfunction mapMetaActionType(type?: string | null): QuickMessageTemplateButton['action_type'] {\n switch (type) {\n case 'web_url':\n return 'url';\n case 'phone_number':\n return 'tel';\n default:\n return 'text';\n }\n}\n\nfunction mapMetaPayloadButtons(buttons?: MessageAttachmentPayloadButton[] | null): QuickMessageTemplateButton[] {\n if (!buttons || buttons.length === 0) {\n return [];\n }\n\n return buttons\n .map((button, index) =>\n createTemplateButton({\n actionType: mapMetaActionType(button?.type),\n text: button?.title ?? '',\n action: button?.payload ?? button?.url ?? undefined,\n sequence: index + 1,\n }),\n )\n .filter(button => Boolean(button.text || button.action));\n}\n\nfunction processButtonContent({\n message,\n channel,\n}: {\n message: ChatMessageItem;\n channel?: ChannelType | null;\n}): { buttons: QuickMessageTemplateButton[]; text?: string } {\n if (!channel) {\n return { buttons: [] };\n }\n\n switch (channel) {\n case 'line': {\n const template = message.template;\n if (template?.type === 'buttons') {\n return {\n buttons: mapLineTemplateActions(template.actions),\n text: template.text ?? message.text,\n };\n }\n break;\n }\n case 'facebook':\n case 'instagram': {\n const attachments = message.attachments ?? [];\n const buttons: QuickMessageTemplateButton[] = [];\n let templateText: string | undefined;\n for (const attachment of attachments) {\n if (attachment.type !== 'template') continue;\n const payload = attachment.payload;\n if (payload?.template_type !== 'button') continue;\n buttons.push(...mapMetaPayloadButtons(payload.buttons));\n if (!templateText && payload.text) {\n templateText = payload.text;\n }\n }\n return { buttons, text: templateText };\n }\n default:\n break;\n }\n\n return { buttons: [] };\n}\n\nfunction processMenuListContent({\n message,\n channel,\n}: {\n message: ChatMessageItem;\n channel?: ChannelType | null;\n}): QuickMessageTemplateMenuListItem[] {\n if (!channel) {\n return [];\n }\n\n switch (channel) {\n case 'line': {\n const template = message.template;\n if (!template) {\n return [];\n }\n\n if (template.type === 'carousel' || template.type === 'image_carousel') {\n const columns = template.columns ?? [];\n return columns\n .map((column, index) => {\n const buttons = mapLineTemplateActions(column?.actions);\n const menuItem = createMenuListItem({\n fileUrl: column?.thumbnailImageUrl,\n title: column?.title,\n description: column?.text,\n buttons,\n sequence: index + 1,\n });\n if (menuItem.buttons.length === 0 && !menuItem.file_url && !menuItem.title && !menuItem.description) {\n return null;\n }\n return menuItem;\n })\n .filter((menuItem): menuItem is QuickMessageTemplateMenuListItem => menuItem !== null);\n }\n break;\n }\n case 'facebook':\n case 'instagram': {\n const attachments = message.attachments ?? [];\n const menuList: QuickMessageTemplateMenuListItem[] = [];\n let sequence = 0;\n for (const attachment of attachments) {\n if (attachment.type !== 'template') continue;\n const payload = attachment.payload;\n if (payload?.template_type !== 'generic') continue;\n const elements = payload.elements ?? [];\n for (const element of elements) {\n sequence += 1;\n const buttons = mapMetaPayloadButtons(element?.buttons);\n const menuItem = createMenuListItem({\n fileUrl: element?.image_url,\n title: element?.title,\n description: element?.subtitle,\n buttons,\n sequence,\n });\n if (menuItem.buttons.length === 0 && !menuItem.file_url && !menuItem.title && !menuItem.description) {\n continue;\n }\n menuList.push(menuItem);\n }\n }\n return menuList;\n }\n default:\n break;\n }\n\n return [];\n}\n\nfunction mapTemplateContent(message: ChatMessageItem, channel?: ChannelType | null): ChatMessageItem | null {\n const hasTemplateData =\n Boolean(message.template) || Boolean(message.attachments?.some(attachment => attachment.type === 'template'));\n\n const selectedChannel = channel ?? selectedChatStore.get('selectedChat')?.channel;\n if (!selectedChannel) {\n return hasTemplateData ? null : message;\n }\n\n if (!hasTemplateData) {\n return message;\n }\n\n const { buttons, text: buttonText } = processButtonContent({ message, channel: selectedChannel });\n const menuList = processMenuListContent({ message, channel: selectedChannel });\n\n const hasButtons = buttons.length > 0;\n const hasMenuList = menuList.length > 0;\n\n if (!hasButtons && !hasMenuList) {\n return null;\n }\n\n const nextMessage: ChatMessageItem = {\n ...message,\n text: message.text || buttonText || '',\n type: hasMenuList ? 'menu_list' : hasButtons ? 'button' : message.type,\n };\n\n nextMessage.buttons = hasButtons ? buttons : undefined;\n nextMessage.menu_list = hasMenuList ? menuList : undefined;\n\n return nextMessage;\n}\n\nexport function getMessagePicture(sender: ChatSender, item: TChatItem) {\n if (item.type === 'user') {\n return item.user?.picture_url || '';\n }\n if (item.type === 'group') {\n return sender.picture_url || item?.group?.picture_url || '';\n }\n return '';\n}\n"],"version":3}
@@ -1,8 +1,8 @@
1
1
  import { p as proxyCustomElement, H, c as createEvent, h, F as Fragment } from './p-D_ltSEZy.js';
2
- import { c as configStore } from './p-LsQYRhK6.js';
2
+ import { c as configStore } from './p-x8gJGTdZ.js';
3
3
  import { u as useTranslation } from './p-GPPFvEYq.js';
4
4
  import { I as Icon } from './p-CErcZoEr.js';
5
- import { Q as QuickMessageTemplateButtonList, a as QuickMessageTemplateButtonDialog } from './p-DeqB7qmW.js';
5
+ import { Q as QuickMessageTemplateButtonList, a as QuickMessageTemplateButtonDialog } from './p-CbwYwjdH.js';
6
6
 
7
7
  const QuickMessageMenuListContentComponent = /*@__PURE__*/ proxyCustomElement(class QuickMessageMenuListContentComponent extends H {
8
8
  constructor(registerHost) {
@@ -253,6 +253,6 @@ function defineCustomElement() {
253
253
  defineCustomElement();
254
254
 
255
255
  export { QuickMessageMenuListContentComponent as Q, defineCustomElement as d };
256
- //# sourceMappingURL=p-7VwG3GTl.js.map
256
+ //# sourceMappingURL=p-5z3Oz7nB.js.map
257
257
 
258
- //# sourceMappingURL=p-7VwG3GTl.js.map
258
+ //# sourceMappingURL=p-5z3Oz7nB.js.map
@@ -1 +1 @@
1
- {"file":"p-7VwG3GTl.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/quick-message-add-template/quick-message-menu-list-content.tsx"],"sourcesContent":["import { Component, Event, EventEmitter, Fragment, Prop, State, h } from '@stencil/core';\nimport { QuickMessageTemplateButton, QuickMessageTemplateButtonAction, QuickMessageTemplateContent, QuickMessageTemplateMenuListItem } from '../../store/type';\nimport { configStore } from '../../store/store';\nimport { useTranslation } from '../../utils/utils';\nimport { Icon } from '../internal-component/icon';\nimport { QuickMessageTemplateButtonList } from './quick-message-template-button-list';\nimport { QuickMessageTemplateButtonDialog } from './quick-message-template-button-dialog';\n\n@Component({\n tag: 'quick-message-menu-list-content',\n})\nexport class QuickMessageMenuListContentComponent {\n @Prop() content: QuickMessageTemplateContent;\n @Prop() maxMenuList: number = 10;\n @Prop() maxFileSize = 10 * 1024 * 1024; // 10MB\n @Prop() maxTitleLength: number = 80;\n @Prop() maxDescriptionLength: number = 80;\n @Prop() maxButtonCount: number = 3;\n @Prop() maxButtonNameLength: number = 20;\n\n @Event({ bubbles: true, composed: true }) contentChange!: EventEmitter<QuickMessageTemplateContent>;\n\n @State() private isButtonDialogOpen = false;\n @State() private buttonDialogMenuId?: string;\n @State() private buttonDialogLabel: string = '';\n @State() private buttonDialogAction: string = '';\n @State() private buttonDialogType: QuickMessageTemplateButtonAction = 'text';\n @State() private editingButtonId?: string;\n @State() private menuErrors: Record<string, string | undefined> = {};\n\n private fileInputs: Record<string, HTMLInputElement | undefined> = {};\n\n private emitContent(update: Partial<QuickMessageTemplateContent>) {\n if (!this.content) {\n return;\n }\n\n const nextContent = { ...this.content, ...update };\n this.contentChange.emit(nextContent);\n }\n\n private updateMenuList(updater: (menus: QuickMessageTemplateMenuListItem[]) => QuickMessageTemplateMenuListItem[]) {\n if (!this.content) {\n return;\n }\n\n const currentMenus = this.content.menu_list || [];\n const nextMenus = updater(currentMenus);\n this.emitContent({ menu_list: nextMenus });\n }\n\n private updateMenu(menuId: string, updater: (menu: QuickMessageTemplateMenuListItem) => QuickMessageTemplateMenuListItem) {\n this.updateMenuList(menus =>\n menus.map(menu => {\n if (menu.id !== menuId) {\n return menu;\n }\n\n const draft: QuickMessageTemplateMenuListItem = {\n ...menu,\n buttons: [...(menu.buttons || [])],\n };\n\n return updater(draft);\n }),\n );\n }\n\n private readonly handleAddMenu = () => {\n const totalMenus = this.content?.menu_list?.length || 0;\n if (totalMenus >= this.maxMenuList) {\n return;\n }\n\n const newMenu: QuickMessageTemplateMenuListItem = {\n id: `menu-${Date.now()}-${Math.floor(Math.random() * 1000)}`,\n buttons: [],\n };\n\n this.updateMenuList(menus => [...menus, newMenu]);\n };\n\n private handleDeleteMenu(menuId: string) {\n this.updateMenuList(menus => menus.filter(menu => menu.id !== menuId));\n const { [menuId]: _, ...rest } = this.menuErrors;\n this.menuErrors = rest;\n }\n\n private reorderMenu(menuId: string, direction: 'prev' | 'next') {\n this.updateMenuList(menus => {\n const currentIndex = menus.findIndex(menu => menu.id === menuId);\n if (currentIndex === -1) {\n return menus;\n }\n\n const targetIndex = direction === 'prev' ? currentIndex - 1 : currentIndex + 1;\n if (targetIndex < 0 || targetIndex >= menus.length) {\n return menus;\n }\n\n const nextMenus = [...menus];\n [nextMenus[currentIndex], nextMenus[targetIndex]] = [nextMenus[targetIndex], nextMenus[currentIndex]];\n return nextMenus;\n });\n }\n\n private setMenuTitle(menuId: string, title: string) {\n this.updateMenu(menuId, menu => ({ ...menu, title }));\n }\n\n private setMenuDescription(menuId: string, description: string) {\n this.updateMenu(menuId, menu => ({ ...menu, description }));\n }\n\n private handleSelectImage(menuId: string) {\n this.fileInputs[menuId]?.click();\n }\n\n private handleImageChange(menuId: string, event: Event) {\n const input = event.target as HTMLInputElement;\n const file = input.files?.[0];\n const t = useTranslation();\n\n if (!file) {\n return;\n }\n\n if (file.size > this.maxFileSize) {\n this.menuErrors = { ...this.menuErrors, [menuId]: t('quick_message.image_too_large') };\n input.value = '';\n return;\n }\n\n const reader = new FileReader();\n reader.onload = () => {\n const url = reader.result as string;\n this.updateMenu(menuId, menu => ({ ...menu, file_url: url }));\n this.menuErrors = { ...this.menuErrors, [menuId]: undefined };\n input.value = '';\n };\n reader.readAsDataURL(file);\n }\n\n private handleRemoveImage(menuId: string) {\n this.updateMenu(menuId, menu => ({ ...menu, file_url: undefined }));\n this.menuErrors = { ...this.menuErrors, [menuId]: undefined };\n }\n\n private openButtonDialog(menuId: string, button?: QuickMessageTemplateButton) {\n this.buttonDialogMenuId = menuId;\n this.editingButtonId = button?.id;\n this.buttonDialogLabel = button?.text || '';\n this.buttonDialogType = button?.action_type || 'text';\n this.buttonDialogAction = button && button.action ? button.action : '';\n this.isButtonDialogOpen = true;\n }\n\n private closeButtonDialog() {\n this.isButtonDialogOpen = false;\n this.buttonDialogMenuId = undefined;\n this.editingButtonId = undefined;\n this.buttonDialogLabel = '';\n this.buttonDialogAction = '';\n this.buttonDialogType = 'text';\n }\n\n private setButtonDialogType(type: QuickMessageTemplateButtonAction) {\n this.buttonDialogType = type;\n if (type === 'text') {\n this.buttonDialogAction = '';\n }\n }\n\n private handleButtonSave() {\n if (!this.buttonDialogMenuId) {\n return;\n }\n\n const label = this.buttonDialogLabel.trim();\n const actionType = this.buttonDialogType;\n const actionValue = actionType === 'text' ? undefined : this.buttonDialogAction.trim();\n\n if (!label || (actionType !== 'text' && !actionValue)) {\n return;\n }\n\n const button: QuickMessageTemplateButton = {\n id: this.editingButtonId || `menu-button-${Date.now()}-${Math.floor(Math.random() * 1000)}`,\n action_type: actionType,\n text: label,\n action: actionValue,\n };\n\n this.updateMenu(this.buttonDialogMenuId, menu => {\n const buttons = menu.buttons || [];\n\n if (this.editingButtonId) {\n return {\n ...menu,\n buttons: buttons.map(current => (current.id === this.editingButtonId ? button : current)),\n };\n }\n\n if (buttons.length >= this.maxButtonCount) {\n return menu;\n }\n\n return { ...menu, buttons: [...buttons, button] };\n });\n\n this.closeButtonDialog();\n }\n\n private handleDeleteButton() {\n if (!this.buttonDialogMenuId || !this.editingButtonId) {\n return;\n }\n\n this.updateMenu(this.buttonDialogMenuId, menu => ({\n ...menu,\n buttons: (menu.buttons || []).filter(button => button.id !== this.editingButtonId),\n }));\n\n this.closeButtonDialog();\n }\n\n private reorderMenuButton(menuId: string, buttonId: string, direction: 'up' | 'down') {\n this.updateMenu(menuId, menu => {\n const buttons = menu.buttons || [];\n const currentIndex = buttons.findIndex(button => button.id === buttonId);\n if (currentIndex === -1) {\n return menu;\n }\n\n const targetIndex = direction === 'up' ? currentIndex - 1 : currentIndex + 1;\n if (targetIndex < 0 || targetIndex >= buttons.length) {\n return menu;\n }\n\n const nextButtons = [...buttons];\n [nextButtons[currentIndex], nextButtons[targetIndex]] = [nextButtons[targetIndex], nextButtons[currentIndex]];\n\n return { ...menu, buttons: nextButtons };\n });\n }\n\n private renderMenuCard(menu: QuickMessageTemplateMenuListItem, index: number, total: number, theme: string, t: ReturnType<typeof useTranslation>) {\n const title = menu.title || '';\n const description = menu.description || '';\n const buttons = menu.buttons || [];\n const error = this.menuErrors[menu.id];\n const isFirst = index === 0;\n const isLast = index === total - 1;\n\n const borderClass = `z-border-primary-${theme}`;\n const primaryTextClass = `z-text-primary-${theme}`;\n const grayTextClass = `z-text-gray-${theme}`;\n const backgroundClass = `z-background-${theme}`;\n\n return (\n <div class=\"relative flex shrink-0 flex-col\" key={menu.id}>\n <div class={`relative flex w-[250px] flex-col overflow-hidden rounded-[18px] border-[1.5px] shadow-sm ${borderClass} ${backgroundClass}`}>\n <div class=\"pointer-events-none absolute left-3 right-3 top-3 z-10 flex items-center justify-between\">\n <div class=\"flex items-center gap-2 pointer-events-auto\">\n {!isFirst && (\n <button\n type=\"button\"\n class={`inline-flex h-8 w-8 items-center justify-center rounded-full border-[1.5px] z-border-primary-${theme} z-text-primary-${theme} ${backgroundClass} transition-colors hover:bg-white focus:outline-none focus:ring-2 focus:ring-slate-200 cursor-pointer`}\n aria-label={t('quick_message.move_left')}\n onClick={() => this.reorderMenu(menu.id, 'prev')}\n >\n <Icon name=\"ChevronLeft\" addClass=\"size-4\" />\n </button>\n )}\n {!isLast && (\n <button\n type=\"button\"\n class={`inline-flex h-8 w-8 items-center justify-center rounded-full border-[1.5px] z-border-primary-${theme} z-text-primary-${theme} ${backgroundClass} transition-colors hover:bg-white focus:outline-none focus:ring-2 focus:ring-slate-200 cursor-pointer`}\n aria-label={t('quick_message.move_right')}\n onClick={() => this.reorderMenu(menu.id, 'next')}\n >\n <Icon name=\"ChevronRight\" addClass=\"size-4\" />\n </button>\n )}\n </div>\n <button\n type=\"button\"\n class={`pointer-events-auto inline-flex h-8 w-8 items-center justify-center rounded-full z-background-${theme} text-red-500 shadow focus:outline-none focus:ring-2 focus:ring-red-200 cursor-pointer hover:bg-white`}\n onClick={() => this.handleDeleteMenu(menu.id)}\n aria-label={t('remove')}\n >\n <Icon name=\"Trash2\" addClass=\"size-4\" />\n </button>\n </div>\n <div class={`group relative h-[180px] overflow-hidden border-b-[1.5px] ${borderClass}`}>\n <input\n type=\"file\"\n accept=\"image/*\"\n class=\"hidden\"\n ref={el => (this.fileInputs[menu.id] = el as HTMLInputElement)}\n onChange={event => this.handleImageChange(menu.id, event)}\n />\n {menu.file_url ? (\n <Fragment>\n <img src={menu.file_url} alt={menu.title || t('quick_message.add_image')} class=\"h-full w-full object-cover\" loading=\"lazy\" />\n <div class=\"absolute inset-0 flex items-center justify-center gap-2 bg-slate-900/60 opacity-0 transition-opacity group-hover:opacity-100\">\n <button\n type=\"button\"\n class=\"inline-flex cursor-pointer items-center gap-2 rounded-full bg-white/90 px-3 py-1.5 text-xs font-semibold text-slate-700 shadow\"\n onClick={() => this.handleSelectImage(menu.id)}\n >\n <Icon name=\"Image\" addClass=\"size-4\" />\n <span>{t('quick_message.change_image')}</span>\n </button>\n <button\n type=\"button\"\n class=\"inline-flex cursor-pointer items-center gap-2 rounded-full bg-white/90 px-3 py-1.5 text-xs font-semibold text-red-500 shadow\"\n onClick={() => this.handleRemoveImage(menu.id)}\n >\n <Icon name=\"Trash2\" addClass=\"size-4\" />\n <span>{t('remove')}</span>\n </button>\n </div>\n </Fragment>\n ) : (\n <button\n type=\"button\"\n class={`flex h-full w-full flex-col items-center justify-center gap-2 border-0 px-4 text-center ${primaryTextClass} ${backgroundClass} cursor-pointer`}\n onClick={() => this.handleSelectImage(menu.id)}\n >\n <Icon name=\"Image\" addClass=\"size-12\" />\n <span class=\"text-sm font-semibold leading-tight\">+ {t('quick_message.add_image')}</span>\n <span class={`text-xs font-medium ${grayTextClass}`}>{t('quick_message.image_size_hint')}</span>\n </button>\n )}\n </div>\n\n <div class=\"flex flex-col gap-2 px-2 py-2\">\n <div>\n <textarea\n value={title}\n maxLength={this.maxTitleLength}\n rows={2}\n placeholder={t('quick_message.type_title_here')}\n class=\"w-full resize-none border-0 bg-transparent text-sm font-semibold leading-snug focus:outline-none focus:ring-0\"\n onInput={event => this.setMenuTitle(menu.id, (event.target as HTMLTextAreaElement).value)}\n />\n <div class={`text-right text-xs ${grayTextClass}`}>\n {title.length}/{this.maxTitleLength}\n </div>\n </div>\n\n <div>\n <textarea\n value={description}\n maxLength={this.maxDescriptionLength}\n rows={2}\n placeholder={t('quick_message.type_description_here')}\n class=\"w-full resize-none border-0 bg-transparent text-xs leading-snug focus:outline-none focus:ring-0\"\n onInput={event => this.setMenuDescription(menu.id, (event.target as HTMLTextAreaElement).value)}\n />\n <div class={`text-right text-xs ${grayTextClass}`}>\n {description.length}/{this.maxDescriptionLength}\n </div>\n </div>\n\n <QuickMessageTemplateButtonList\n theme={theme}\n buttons={buttons}\n maxButtonCount={this.maxButtonCount}\n addButtonLabel={t('quick_message.add_button')}\n onButtonClick={button => this.openButtonDialog(menu.id, button)}\n onAddButton={() => this.openButtonDialog(menu.id)}\n onReorderButton={(buttonId, direction) => this.reorderMenuButton(menu.id, buttonId, direction)}\n listClass=\"flex flex-col gap-2\"\n buttonClass=\"px-3\"\n />\n </div>\n </div>\n\n {error && <p class=\"mt-2 text-xs font-medium text-red-500\">{error}</p>}\n </div>\n );\n }\n\n render() {\n if (!this.content) {\n return null;\n }\n\n const theme = configStore.get('theme');\n const t = useTranslation();\n const menus = this.content.menu_list || [];\n\n return (\n <div class=\"flex flex-col gap-3 items-end overflow-x-auto\">\n <div class=\"flex max-w-full gap-3 pb-2\">\n {menus.map((menu, index) => this.renderMenuCard(menu, index, menus.length, theme, t))}\n {menus.length < this.maxMenuList && (\n <button\n type=\"button\"\n class={`flex h-[280px] w-[200px] shrink-0 items-center justify-center rounded-[18px] border-[1.5px] border-dashed text-2xl font-semibold ${`z-border-primary-${theme}`} ${`z-text-primary-${theme}`} ${`z-background-${theme}`} cursor-pointer`}\n onClick={() => this.handleAddMenu()}\n >\n <Icon name=\"Plus\" addClass=\"size-8\" />\n </button>\n )}\n </div>\n\n <QuickMessageTemplateButtonDialog\n theme={theme}\n isOpen={this.isButtonDialogOpen}\n isEditing={!!this.editingButtonId}\n label={this.buttonDialogLabel}\n actionValue={this.buttonDialogAction}\n actionType={this.buttonDialogType}\n maxButtonNameLength={this.maxButtonNameLength}\n onLabelInput={value => (this.buttonDialogLabel = value)}\n onActionInput={value => (this.buttonDialogAction = value)}\n onActionTypeChange={type => this.setButtonDialogType(type)}\n onClose={() => this.closeButtonDialog()}\n onSave={() => this.handleButtonSave()}\n onDelete={this.editingButtonId ? () => this.handleDeleteButton() : undefined}\n />\n </div>\n );\n }\n}\n"],"version":3}
1
+ {"file":"p-5z3Oz7nB.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/quick-message-add-template/quick-message-menu-list-content.tsx"],"sourcesContent":["import { Component, Event, EventEmitter, Fragment, Prop, State, h } from '@stencil/core';\nimport { QuickMessageTemplateButton, QuickMessageTemplateButtonAction, QuickMessageTemplateContent, QuickMessageTemplateMenuListItem } from '../../store/type';\nimport { configStore } from '../../store/store';\nimport { useTranslation } from '../../utils/utils';\nimport { Icon } from '../internal-component/icon';\nimport { QuickMessageTemplateButtonList } from './quick-message-template-button-list';\nimport { QuickMessageTemplateButtonDialog } from './quick-message-template-button-dialog';\n\n@Component({\n tag: 'quick-message-menu-list-content',\n})\nexport class QuickMessageMenuListContentComponent {\n @Prop() content: QuickMessageTemplateContent;\n @Prop() maxMenuList: number = 10;\n @Prop() maxFileSize = 10 * 1024 * 1024; // 10MB\n @Prop() maxTitleLength: number = 80;\n @Prop() maxDescriptionLength: number = 80;\n @Prop() maxButtonCount: number = 3;\n @Prop() maxButtonNameLength: number = 20;\n\n @Event({ bubbles: true, composed: true }) contentChange!: EventEmitter<QuickMessageTemplateContent>;\n\n @State() private isButtonDialogOpen = false;\n @State() private buttonDialogMenuId?: string;\n @State() private buttonDialogLabel: string = '';\n @State() private buttonDialogAction: string = '';\n @State() private buttonDialogType: QuickMessageTemplateButtonAction = 'text';\n @State() private editingButtonId?: string;\n @State() private menuErrors: Record<string, string | undefined> = {};\n\n private fileInputs: Record<string, HTMLInputElement | undefined> = {};\n\n private emitContent(update: Partial<QuickMessageTemplateContent>) {\n if (!this.content) {\n return;\n }\n\n const nextContent = { ...this.content, ...update };\n this.contentChange.emit(nextContent);\n }\n\n private updateMenuList(updater: (menus: QuickMessageTemplateMenuListItem[]) => QuickMessageTemplateMenuListItem[]) {\n if (!this.content) {\n return;\n }\n\n const currentMenus = this.content.menu_list || [];\n const nextMenus = updater(currentMenus);\n this.emitContent({ menu_list: nextMenus });\n }\n\n private updateMenu(menuId: string, updater: (menu: QuickMessageTemplateMenuListItem) => QuickMessageTemplateMenuListItem) {\n this.updateMenuList(menus =>\n menus.map(menu => {\n if (menu.id !== menuId) {\n return menu;\n }\n\n const draft: QuickMessageTemplateMenuListItem = {\n ...menu,\n buttons: [...(menu.buttons || [])],\n };\n\n return updater(draft);\n }),\n );\n }\n\n private readonly handleAddMenu = () => {\n const totalMenus = this.content?.menu_list?.length || 0;\n if (totalMenus >= this.maxMenuList) {\n return;\n }\n\n const newMenu: QuickMessageTemplateMenuListItem = {\n id: `menu-${Date.now()}-${Math.floor(Math.random() * 1000)}`,\n buttons: [],\n };\n\n this.updateMenuList(menus => [...menus, newMenu]);\n };\n\n private handleDeleteMenu(menuId: string) {\n this.updateMenuList(menus => menus.filter(menu => menu.id !== menuId));\n const { [menuId]: _, ...rest } = this.menuErrors;\n this.menuErrors = rest;\n }\n\n private reorderMenu(menuId: string, direction: 'prev' | 'next') {\n this.updateMenuList(menus => {\n const currentIndex = menus.findIndex(menu => menu.id === menuId);\n if (currentIndex === -1) {\n return menus;\n }\n\n const targetIndex = direction === 'prev' ? currentIndex - 1 : currentIndex + 1;\n if (targetIndex < 0 || targetIndex >= menus.length) {\n return menus;\n }\n\n const nextMenus = [...menus];\n [nextMenus[currentIndex], nextMenus[targetIndex]] = [nextMenus[targetIndex], nextMenus[currentIndex]];\n return nextMenus;\n });\n }\n\n private setMenuTitle(menuId: string, title: string) {\n this.updateMenu(menuId, menu => ({ ...menu, title }));\n }\n\n private setMenuDescription(menuId: string, description: string) {\n this.updateMenu(menuId, menu => ({ ...menu, description }));\n }\n\n private handleSelectImage(menuId: string) {\n this.fileInputs[menuId]?.click();\n }\n\n private handleImageChange(menuId: string, event: Event) {\n const input = event.target as HTMLInputElement;\n const file = input.files?.[0];\n const t = useTranslation();\n\n if (!file) {\n return;\n }\n\n if (file.size > this.maxFileSize) {\n this.menuErrors = { ...this.menuErrors, [menuId]: t('quick_message.image_too_large') };\n input.value = '';\n return;\n }\n\n const reader = new FileReader();\n reader.onload = () => {\n const url = reader.result as string;\n this.updateMenu(menuId, menu => ({ ...menu, file_url: url }));\n this.menuErrors = { ...this.menuErrors, [menuId]: undefined };\n input.value = '';\n };\n reader.readAsDataURL(file);\n }\n\n private handleRemoveImage(menuId: string) {\n this.updateMenu(menuId, menu => ({ ...menu, file_url: undefined }));\n this.menuErrors = { ...this.menuErrors, [menuId]: undefined };\n }\n\n private openButtonDialog(menuId: string, button?: QuickMessageTemplateButton) {\n this.buttonDialogMenuId = menuId;\n this.editingButtonId = button?.id;\n this.buttonDialogLabel = button?.text || '';\n this.buttonDialogType = button?.action_type || 'text';\n this.buttonDialogAction = button && button.action ? button.action : '';\n this.isButtonDialogOpen = true;\n }\n\n private closeButtonDialog() {\n this.isButtonDialogOpen = false;\n this.buttonDialogMenuId = undefined;\n this.editingButtonId = undefined;\n this.buttonDialogLabel = '';\n this.buttonDialogAction = '';\n this.buttonDialogType = 'text';\n }\n\n private setButtonDialogType(type: QuickMessageTemplateButtonAction) {\n this.buttonDialogType = type;\n if (type === 'text') {\n this.buttonDialogAction = '';\n }\n }\n\n private handleButtonSave() {\n if (!this.buttonDialogMenuId) {\n return;\n }\n\n const label = this.buttonDialogLabel.trim();\n const actionType = this.buttonDialogType;\n const actionValue = actionType === 'text' ? undefined : this.buttonDialogAction.trim();\n\n if (!label || (actionType !== 'text' && !actionValue)) {\n return;\n }\n\n const button: QuickMessageTemplateButton = {\n id: this.editingButtonId || `menu-button-${Date.now()}-${Math.floor(Math.random() * 1000)}`,\n action_type: actionType,\n text: label,\n action: actionValue,\n };\n\n this.updateMenu(this.buttonDialogMenuId, menu => {\n const buttons = menu.buttons || [];\n\n if (this.editingButtonId) {\n return {\n ...menu,\n buttons: buttons.map(current => (current.id === this.editingButtonId ? button : current)),\n };\n }\n\n if (buttons.length >= this.maxButtonCount) {\n return menu;\n }\n\n return { ...menu, buttons: [...buttons, button] };\n });\n\n this.closeButtonDialog();\n }\n\n private handleDeleteButton() {\n if (!this.buttonDialogMenuId || !this.editingButtonId) {\n return;\n }\n\n this.updateMenu(this.buttonDialogMenuId, menu => ({\n ...menu,\n buttons: (menu.buttons || []).filter(button => button.id !== this.editingButtonId),\n }));\n\n this.closeButtonDialog();\n }\n\n private reorderMenuButton(menuId: string, buttonId: string, direction: 'up' | 'down') {\n this.updateMenu(menuId, menu => {\n const buttons = menu.buttons || [];\n const currentIndex = buttons.findIndex(button => button.id === buttonId);\n if (currentIndex === -1) {\n return menu;\n }\n\n const targetIndex = direction === 'up' ? currentIndex - 1 : currentIndex + 1;\n if (targetIndex < 0 || targetIndex >= buttons.length) {\n return menu;\n }\n\n const nextButtons = [...buttons];\n [nextButtons[currentIndex], nextButtons[targetIndex]] = [nextButtons[targetIndex], nextButtons[currentIndex]];\n\n return { ...menu, buttons: nextButtons };\n });\n }\n\n private renderMenuCard(menu: QuickMessageTemplateMenuListItem, index: number, total: number, theme: string, t: ReturnType<typeof useTranslation>) {\n const title = menu.title || '';\n const description = menu.description || '';\n const buttons = menu.buttons || [];\n const error = this.menuErrors[menu.id];\n const isFirst = index === 0;\n const isLast = index === total - 1;\n\n const borderClass = `z-border-primary-${theme}`;\n const primaryTextClass = `z-text-primary-${theme}`;\n const grayTextClass = `z-text-gray-${theme}`;\n const backgroundClass = `z-background-${theme}`;\n\n return (\n <div class=\"relative flex shrink-0 flex-col\" key={menu.id}>\n <div class={`relative flex w-[250px] flex-col overflow-hidden rounded-[18px] border-[1.5px] shadow-sm ${borderClass} ${backgroundClass}`}>\n <div class=\"pointer-events-none absolute left-3 right-3 top-3 z-10 flex items-center justify-between\">\n <div class=\"flex items-center gap-2 pointer-events-auto\">\n {!isFirst && (\n <button\n type=\"button\"\n class={`inline-flex h-8 w-8 items-center justify-center rounded-full border-[1.5px] z-border-primary-${theme} z-text-primary-${theme} ${backgroundClass} transition-colors hover:bg-white focus:outline-none focus:ring-2 focus:ring-slate-200 cursor-pointer`}\n aria-label={t('quick_message.move_left')}\n onClick={() => this.reorderMenu(menu.id, 'prev')}\n >\n <Icon name=\"ChevronLeft\" addClass=\"size-4\" />\n </button>\n )}\n {!isLast && (\n <button\n type=\"button\"\n class={`inline-flex h-8 w-8 items-center justify-center rounded-full border-[1.5px] z-border-primary-${theme} z-text-primary-${theme} ${backgroundClass} transition-colors hover:bg-white focus:outline-none focus:ring-2 focus:ring-slate-200 cursor-pointer`}\n aria-label={t('quick_message.move_right')}\n onClick={() => this.reorderMenu(menu.id, 'next')}\n >\n <Icon name=\"ChevronRight\" addClass=\"size-4\" />\n </button>\n )}\n </div>\n <button\n type=\"button\"\n class={`pointer-events-auto inline-flex h-8 w-8 items-center justify-center rounded-full z-background-${theme} text-red-500 shadow focus:outline-none focus:ring-2 focus:ring-red-200 cursor-pointer hover:bg-white`}\n onClick={() => this.handleDeleteMenu(menu.id)}\n aria-label={t('remove')}\n >\n <Icon name=\"Trash2\" addClass=\"size-4\" />\n </button>\n </div>\n <div class={`group relative h-[180px] overflow-hidden border-b-[1.5px] ${borderClass}`}>\n <input\n type=\"file\"\n accept=\"image/*\"\n class=\"hidden\"\n ref={el => (this.fileInputs[menu.id] = el as HTMLInputElement)}\n onChange={event => this.handleImageChange(menu.id, event)}\n />\n {menu.file_url ? (\n <Fragment>\n <img src={menu.file_url} alt={menu.title || t('quick_message.add_image')} class=\"h-full w-full object-cover\" loading=\"lazy\" />\n <div class=\"absolute inset-0 flex items-center justify-center gap-2 bg-slate-900/60 opacity-0 transition-opacity group-hover:opacity-100\">\n <button\n type=\"button\"\n class=\"inline-flex cursor-pointer items-center gap-2 rounded-full bg-white/90 px-3 py-1.5 text-xs font-semibold text-slate-700 shadow\"\n onClick={() => this.handleSelectImage(menu.id)}\n >\n <Icon name=\"Image\" addClass=\"size-4\" />\n <span>{t('quick_message.change_image')}</span>\n </button>\n <button\n type=\"button\"\n class=\"inline-flex cursor-pointer items-center gap-2 rounded-full bg-white/90 px-3 py-1.5 text-xs font-semibold text-red-500 shadow\"\n onClick={() => this.handleRemoveImage(menu.id)}\n >\n <Icon name=\"Trash2\" addClass=\"size-4\" />\n <span>{t('remove')}</span>\n </button>\n </div>\n </Fragment>\n ) : (\n <button\n type=\"button\"\n class={`flex h-full w-full flex-col items-center justify-center gap-2 border-0 px-4 text-center ${primaryTextClass} ${backgroundClass} cursor-pointer`}\n onClick={() => this.handleSelectImage(menu.id)}\n >\n <Icon name=\"Image\" addClass=\"size-12\" />\n <span class=\"text-sm font-semibold leading-tight\">+ {t('quick_message.add_image')}</span>\n <span class={`text-xs font-medium ${grayTextClass}`}>{t('quick_message.image_size_hint')}</span>\n </button>\n )}\n </div>\n\n <div class=\"flex flex-col gap-2 px-2 py-2\">\n <div>\n <textarea\n value={title}\n maxLength={this.maxTitleLength}\n rows={2}\n placeholder={t('quick_message.type_title_here')}\n class=\"w-full resize-none border-0 bg-transparent text-sm font-semibold leading-snug focus:outline-none focus:ring-0\"\n onInput={event => this.setMenuTitle(menu.id, (event.target as HTMLTextAreaElement).value)}\n />\n <div class={`text-right text-xs ${grayTextClass}`}>\n {title.length}/{this.maxTitleLength}\n </div>\n </div>\n\n <div>\n <textarea\n value={description}\n maxLength={this.maxDescriptionLength}\n rows={2}\n placeholder={t('quick_message.type_description_here')}\n class=\"w-full resize-none border-0 bg-transparent text-xs leading-snug focus:outline-none focus:ring-0\"\n onInput={event => this.setMenuDescription(menu.id, (event.target as HTMLTextAreaElement).value)}\n />\n <div class={`text-right text-xs ${grayTextClass}`}>\n {description.length}/{this.maxDescriptionLength}\n </div>\n </div>\n\n <QuickMessageTemplateButtonList\n theme={theme}\n buttons={buttons}\n maxButtonCount={this.maxButtonCount}\n addButtonLabel={t('quick_message.add_button')}\n onButtonClick={button => this.openButtonDialog(menu.id, button)}\n onAddButton={() => this.openButtonDialog(menu.id)}\n onReorderButton={(buttonId, direction) => this.reorderMenuButton(menu.id, buttonId, direction)}\n listClass=\"flex flex-col gap-2\"\n buttonClass=\"px-3\"\n />\n </div>\n </div>\n\n {error && <p class=\"mt-2 text-xs font-medium text-red-500\">{error}</p>}\n </div>\n );\n }\n\n render() {\n if (!this.content) {\n return null;\n }\n\n const theme = configStore.get('theme');\n const t = useTranslation();\n const menus = this.content.menu_list || [];\n\n return (\n <div class=\"flex flex-col gap-3 items-end overflow-x-auto\">\n <div class=\"flex max-w-full gap-3 pb-2\">\n {menus.map((menu, index) => this.renderMenuCard(menu, index, menus.length, theme, t))}\n {menus.length < this.maxMenuList && (\n <button\n type=\"button\"\n class={`flex h-[280px] w-[200px] shrink-0 items-center justify-center rounded-[18px] border-[1.5px] border-dashed text-2xl font-semibold ${`z-border-primary-${theme}`} ${`z-text-primary-${theme}`} ${`z-background-${theme}`} cursor-pointer`}\n onClick={() => this.handleAddMenu()}\n >\n <Icon name=\"Plus\" addClass=\"size-8\" />\n </button>\n )}\n </div>\n\n <QuickMessageTemplateButtonDialog\n theme={theme}\n isOpen={this.isButtonDialogOpen}\n isEditing={!!this.editingButtonId}\n label={this.buttonDialogLabel}\n actionValue={this.buttonDialogAction}\n actionType={this.buttonDialogType}\n maxButtonNameLength={this.maxButtonNameLength}\n onLabelInput={value => (this.buttonDialogLabel = value)}\n onActionInput={value => (this.buttonDialogAction = value)}\n onActionTypeChange={type => this.setButtonDialogType(type)}\n onClose={() => this.closeButtonDialog()}\n onSave={() => this.handleButtonSave()}\n onDelete={this.editingButtonId ? () => this.handleDeleteButton() : undefined}\n />\n </div>\n );\n }\n}\n"],"version":3}
@@ -1,5 +1,5 @@
1
1
  import { p as proxyCustomElement, H, c as createEvent, h } from './p-D_ltSEZy.js';
2
- import { c as configStore } from './p-LsQYRhK6.js';
2
+ import { c as configStore } from './p-x8gJGTdZ.js';
3
3
  import { u as useTranslation } from './p-GPPFvEYq.js';
4
4
  import { I as Icon } from './p-CErcZoEr.js';
5
5
 
@@ -83,6 +83,6 @@ function defineCustomElement() {
83
83
  defineCustomElement();
84
84
 
85
85
  export { QuickMessageImageContentComponent as Q, defineCustomElement as d };
86
- //# sourceMappingURL=p-Bb01kTl4.js.map
86
+ //# sourceMappingURL=p-B6HiV-kQ.js.map
87
87
 
88
- //# sourceMappingURL=p-Bb01kTl4.js.map
88
+ //# sourceMappingURL=p-B6HiV-kQ.js.map
@@ -1 +1 @@
1
- {"file":"p-Bb01kTl4.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/quick-message-add-template/quick-message-image-content.tsx"],"sourcesContent":["import { Component, Event, EventEmitter, Prop, State, h } from '@stencil/core';\nimport { QuickMessageTemplateContent } from '../../store/type';\nimport { configStore } from '../../store/store';\nimport { useTranslation } from '../../utils/utils';\nimport { Icon } from '../internal-component/icon';\n\n@Component({\n tag: 'quick-message-image-content',\n})\nexport class QuickMessageImageContentComponent {\n @Prop() content: QuickMessageTemplateContent;\n @Prop() maxFileSize = 10 * 1024 * 1024; // 10MB\n\n @Event({ bubbles: true, composed: true }) contentChange!: EventEmitter<QuickMessageTemplateContent>;\n\n @State() private errorMessage?: string;\n\n private fileInput?: HTMLInputElement;\n\n private emitContent(update: Partial<QuickMessageTemplateContent>) {\n if (!this.content) {\n return;\n }\n\n const nextContent = { ...this.content, ...update };\n this.contentChange.emit(nextContent);\n }\n\n private readonly handleSelectClick = () => {\n this.fileInput?.click();\n };\n\n private readonly handleFileChange = (event: Event) => {\n const input = event.target as HTMLInputElement;\n const file = input.files?.[0];\n if (!file) {\n return;\n }\n\n if (file.size > this.maxFileSize) {\n this.errorMessage = useTranslation()('quick_message.image_too_large');\n input.value = '';\n return;\n }\n\n const reader = new FileReader();\n reader.onload = () => {\n const url = reader.result as string;\n this.emitContent({ file_url: url });\n this.errorMessage = undefined;\n input.value = '';\n };\n reader.readAsDataURL(file);\n };\n\n private readonly handleRemoveImage = () => {\n this.emitContent({ file_url: '' });\n this.errorMessage = undefined;\n };\n\n render() {\n if (!this.content) {\n return null;\n }\n\n const theme = configStore.get('theme');\n const t = useTranslation();\n const preview = this.content.file_url;\n\n const borderClass = `z-border-primary-${theme}`;\n const primaryTextClass = `z-text-primary-${theme}`;\n const grayTextClass = `z-text-gray-${theme}`;\n\n return (\n <div class=\"flex justify-end\">\n <div class=\"max-w-xs h-[220px] aspect-square\">\n <input type=\"file\" accept=\"image/*\" class=\"hidden\" ref={el => (this.fileInput = el as HTMLInputElement)} onChange={this.handleFileChange} />\n\n {preview ? (\n <div class={`group h-[220px] relative w-full overflow-hidden rounded-[18px] border-[1.5px] z-background-${theme} shadow-sm ${borderClass}`}>\n <img src={preview} alt=\"preview-message-image\" class=\"h-[220px] w-full object-cover\" loading=\"lazy\" />\n <div class=\"absolute inset-0 flex flex-col items-center justify-center gap-2 bg-slate-900/60 opacity-0 transition-opacity group-hover:opacity-100\">\n <button\n type=\"button\"\n class={`inline-flex items-center gap-2 rounded-full z-background-${theme} px-4 py-2 text-xs font-semibold text-slate-700 shadow cursor-pointer`}\n onClick={this.handleSelectClick}\n >\n <Icon name=\"Image\" addClass={`size-4 z-text-${theme}`} />\n <span class={`z-text-${theme}`}>{t('quick_message.change_image')}</span>\n </button>\n <button\n type=\"button\"\n class={`inline-flex items-center gap-2 rounded-full z-background-${theme} px-4 py-2 text-xs font-semibold text-red-500 shadow cursor-pointer`}\n onClick={this.handleRemoveImage}\n >\n <Icon name=\"Trash2\" addClass=\"size-4\" />\n <span class=\"text-red-500\">{t('remove')}</span>\n </button>\n </div>\n </div>\n ) : (\n <button\n type=\"button\"\n class={`flex w-full flex-col items-center justify-center gap-2 rounded-[18px] border-[1.5px] border-current z-background-${theme} px-8 py-12 text-center shadow-sm transition-colors hover:z-background-${theme} ${borderClass} cursor-pointer`}\n onClick={this.handleSelectClick}\n >\n <Icon name=\"Image\" addClass={`size-12 ${primaryTextClass}`} />\n <span class={`text-base font-semibold leading-tight ${primaryTextClass}`}>+ {t('quick_message.add_image')}</span>\n <span class={`text-[13px] font-medium ${grayTextClass}`}>{t('quick_message.image_size_hint')}</span>\n </button>\n )}\n\n {this.errorMessage && <p class=\"mt-2 text-xs text-red-500\">{this.errorMessage}</p>}\n </div>\n </div>\n );\n }\n}\n"],"version":3}
1
+ {"file":"p-B6HiV-kQ.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/quick-message-add-template/quick-message-image-content.tsx"],"sourcesContent":["import { Component, Event, EventEmitter, Prop, State, h } from '@stencil/core';\nimport { QuickMessageTemplateContent } from '../../store/type';\nimport { configStore } from '../../store/store';\nimport { useTranslation } from '../../utils/utils';\nimport { Icon } from '../internal-component/icon';\n\n@Component({\n tag: 'quick-message-image-content',\n})\nexport class QuickMessageImageContentComponent {\n @Prop() content: QuickMessageTemplateContent;\n @Prop() maxFileSize = 10 * 1024 * 1024; // 10MB\n\n @Event({ bubbles: true, composed: true }) contentChange!: EventEmitter<QuickMessageTemplateContent>;\n\n @State() private errorMessage?: string;\n\n private fileInput?: HTMLInputElement;\n\n private emitContent(update: Partial<QuickMessageTemplateContent>) {\n if (!this.content) {\n return;\n }\n\n const nextContent = { ...this.content, ...update };\n this.contentChange.emit(nextContent);\n }\n\n private readonly handleSelectClick = () => {\n this.fileInput?.click();\n };\n\n private readonly handleFileChange = (event: Event) => {\n const input = event.target as HTMLInputElement;\n const file = input.files?.[0];\n if (!file) {\n return;\n }\n\n if (file.size > this.maxFileSize) {\n this.errorMessage = useTranslation()('quick_message.image_too_large');\n input.value = '';\n return;\n }\n\n const reader = new FileReader();\n reader.onload = () => {\n const url = reader.result as string;\n this.emitContent({ file_url: url });\n this.errorMessage = undefined;\n input.value = '';\n };\n reader.readAsDataURL(file);\n };\n\n private readonly handleRemoveImage = () => {\n this.emitContent({ file_url: '' });\n this.errorMessage = undefined;\n };\n\n render() {\n if (!this.content) {\n return null;\n }\n\n const theme = configStore.get('theme');\n const t = useTranslation();\n const preview = this.content.file_url;\n\n const borderClass = `z-border-primary-${theme}`;\n const primaryTextClass = `z-text-primary-${theme}`;\n const grayTextClass = `z-text-gray-${theme}`;\n\n return (\n <div class=\"flex justify-end\">\n <div class=\"max-w-xs h-[220px] aspect-square\">\n <input type=\"file\" accept=\"image/*\" class=\"hidden\" ref={el => (this.fileInput = el as HTMLInputElement)} onChange={this.handleFileChange} />\n\n {preview ? (\n <div class={`group h-[220px] relative w-full overflow-hidden rounded-[18px] border-[1.5px] z-background-${theme} shadow-sm ${borderClass}`}>\n <img src={preview} alt=\"preview-message-image\" class=\"h-[220px] w-full object-cover\" loading=\"lazy\" />\n <div class=\"absolute inset-0 flex flex-col items-center justify-center gap-2 bg-slate-900/60 opacity-0 transition-opacity group-hover:opacity-100\">\n <button\n type=\"button\"\n class={`inline-flex items-center gap-2 rounded-full z-background-${theme} px-4 py-2 text-xs font-semibold text-slate-700 shadow cursor-pointer`}\n onClick={this.handleSelectClick}\n >\n <Icon name=\"Image\" addClass={`size-4 z-text-${theme}`} />\n <span class={`z-text-${theme}`}>{t('quick_message.change_image')}</span>\n </button>\n <button\n type=\"button\"\n class={`inline-flex items-center gap-2 rounded-full z-background-${theme} px-4 py-2 text-xs font-semibold text-red-500 shadow cursor-pointer`}\n onClick={this.handleRemoveImage}\n >\n <Icon name=\"Trash2\" addClass=\"size-4\" />\n <span class=\"text-red-500\">{t('remove')}</span>\n </button>\n </div>\n </div>\n ) : (\n <button\n type=\"button\"\n class={`flex w-full flex-col items-center justify-center gap-2 rounded-[18px] border-[1.5px] border-current z-background-${theme} px-8 py-12 text-center shadow-sm transition-colors hover:z-background-${theme} ${borderClass} cursor-pointer`}\n onClick={this.handleSelectClick}\n >\n <Icon name=\"Image\" addClass={`size-12 ${primaryTextClass}`} />\n <span class={`text-base font-semibold leading-tight ${primaryTextClass}`}>+ {t('quick_message.add_image')}</span>\n <span class={`text-[13px] font-medium ${grayTextClass}`}>{t('quick_message.image_size_hint')}</span>\n </button>\n )}\n\n {this.errorMessage && <p class=\"mt-2 text-xs text-red-500\">{this.errorMessage}</p>}\n </div>\n </div>\n );\n }\n}\n"],"version":3}
@@ -0,0 +1,35 @@
1
+ import { p as proxyCustomElement, H, h, a as Host } from './p-D_ltSEZy.js';
2
+
3
+ const profileMediaCss = "@layer base{*,::backdrop,:after,:before{--tw-space-y-reverse:0;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-space-x-reverse:0;--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-drop-shadow-alpha:100%;--tw-border-style:solid;border:0 solid;box-sizing:border-box;margin:0;padding:0}}/*! tailwindcss v4.1.16 | 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-space-x-reverse:0;--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-font-weight:initial;--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-border-style:solid;--tw-space-y-reverse:0;--tw-leading:initial;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0}}}@layer theme{:host,:root{--container-xl:36rem;--color-yellow-300:oklch(90.5% .182 98.111);--container-3xs:16rem;--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-md:28rem;--text-2xl:1.5rem;--text-2xl--line-height:1.33333;--color-slate-500:oklch(55.4% .046 257.417);--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--color-yellow-500:oklch(79.5% .184 86.047);--container-xs:20rem;--container-sm:24rem;--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-semibold:600;--font-weight-bold:700;--animate-spin:spin 1s linear infinite;--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-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--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;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--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-primary-dark:#b50f30;--color-secondary-dark:#fff;--color-background-dark:#23292d}}@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:-12px;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:-2px;position:absolute;right:-2px}.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);-webkit-line-clamp:1;line-height:var(--tw-leading,var(--text-base--line-height));-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.chat-item .chat-item-content-secondary-message{color:var(--color-gray-600);font-size:var(--text-sm);-webkit-line-clamp:1;line-height:var(--tw-leading,var(--text-sm--line-height));-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.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{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.z-input-area-input{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{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.z-input{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-radius:3.40282e+38px;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:center;display:flex;flex-direction:row;margin-block:calc(var(--spacing)*1)}.z-context-input-key{border-bottom-left-radius:var(--radius-3xl);border-style:var(--tw-border-style);border-top-left-radius:var(--radius-3xl);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)*4);width:100%;--tw-ring-color:var(--color-primary);border-width:1px;flex:1}.z-context-input-key:focus{border-color:var(--color-primary);--tw-outline-style:none;outline-style:none}.z-context-input-value{border-bottom-right-radius:var(--radius-3xl);border-style:var(--tw-border-style);border-top-right-radius:var(--radius-3xl);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));min-height:2.4rem;padding-block:calc(var(--spacing)*2);padding-inline:calc(var(--spacing)*4);width:100%;--tw-ring-color:var(--color-primary);border-width:1px;flex:2}.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}}@layer utilities{.hidden{display:none}.hidden\\!{display:none!important}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.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,)}}.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}.z-text-light{color:var(--color-black)}.z-text-dark{color:var(--color-white)}.z-text-primary-light{color:var(--color-primary)}.z-text-primary-dark{color:var(--color-primary-dark)}.z-text-gray-light{color:var(--color-gray-500)}.z-text-gray-dark{color:var(--color-gray-300)}.z-text-background-light{color:var(--color-background)}.z-text-background-dark{color:var(--color-background-dark)}.z-border-light{border-color:var(--color-black)}.z-border-dark{border-color:var(--color-white)}.z-border-primary-light{border-color:var(--color-primary)}.z-border-primary-dark{border-color:var(--color-primary-dark)}.z-border-divider-light{border-color:var(--color-gray-400)}.z-border-divider-dark{border-color:var(--color-gray-300)}.z-search-input-background-light{background-color:var(--color-gray-200)}.z-search-input-background-dark{background-color:var(--color-gray-500)}.z-chat-input-background-light{background-color:var(--color-white)}.z-chat-input-background-dark{background-color:var(--color-gray-700)}.z-placeholder-light::placeholder{color:var(--color-gray-500)}.z-placeholder-dark::placeholder{color:var(--color-gray-200)}.z-background-primary-light{background-color:var(--color-primary)}.z-background-primary-dark{background-color:var(--color-primary-dark)}.z-background-light{background-color:var(--color-background)}.z-background-dark{background-color:var(--color-background-dark)}.z-paper-light{background-color:var(--color-gray-100)}.z-paper-dark{background-color:var(--color-gray-700)}.z-bg-gray-light{background-color:var(--color-gray-500)}.z-bg-gray-dark{background-color:var(--color-gray-300)}.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.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{.relative{position:relative}.size-5{height:calc(var(--spacing)*5);width:calc(var(--spacing)*5)}.rotate-45{rotate:45deg}.text-blue-500{color:var(--color-blue-500)}.text-green-500{color:var(--color-green-500)}.container{width:100%}.\\!hidden{display:none!important}.bg-pink-100{background-color:var(--color-pink-100)}.text-black{color:var(--color-black)}.m-auto{margin:auto}.size-32{height:calc(var(--spacing)*32);width:calc(var(--spacing)*32)}.w-xl{width:var(--container-xl)}.w-xs{width:var(--container-xs)}.visible{visibility:visible}.-top-12{top:calc(var(--spacing)*-12)}.-top-24{top:calc(var(--spacing)*-24)}.mx-auto{margin-inline:auto}.mt-10{margin-top:calc(var(--spacing)*10)}.mb-10{margin-bottom:calc(var(--spacing)*10)}.inline-block{display:inline-block}.size-18{height:calc(var(--spacing)*18);width:calc(var(--spacing)*18)}.p-4{padding:calc(var(--spacing)*4)}.px-4{padding-inline:calc(var(--spacing)*4)}.pt-4{padding-top:calc(var(--spacing)*4)}.pb-8{padding-bottom:calc(var(--spacing)*8)}.mb-2{margin-bottom:calc(var(--spacing)*2)}}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.16 | 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))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.absolute{position:absolute}.right-full{right:100%}.-bottom-2{bottom:calc(var(--spacing)*-2)}.left-full{left:100%}.mr-2{margin-right:calc(var(--spacing)*2)}.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)}.flex{display:flex}.size-3{height:calc(var(--spacing)*3);width:calc(var(--spacing)*3)}.size-6{height:calc(var(--spacing)*6);width:calc(var(--spacing)*6)}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.items-center{align-items:center}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.rounded-full{border-radius:3.40282e+38px}.bg-yellow-300{background-color:var(--color-yellow-300)}.text-left{text-align:left}.text-right{text-align:right}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.mt-1{margin-top:calc(var(--spacing)*1)}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.size-4{height:calc(var(--spacing)*4);width:calc(var(--spacing)*4)}.size-8{height:calc(var(--spacing)*8);width:calc(var(--spacing)*8)}.max-w-3xs{max-width:var(--container-3xs)}.max-w-sm{max-width:var(--container-sm)}.cursor-pointer{cursor:pointer}.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)}.p-3{padding:calc(var(--spacing)*3)}.px-3{padding-inline:calc(var(--spacing)*3)}.py-2{padding-block:calc(var(--spacing)*2)}.text-white{color:var(--color-white)}.underline{text-decoration-line:underline}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.-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}.mt-2{margin-top:calc(var(--spacing)*2)}.w-full{width:100%}.flex-wrap{flex-wrap:wrap}.gap-y-1{row-gap:calc(var(--spacing)*1)}.border-b-\\[0\\.5px\\]{border-bottom-style:var(--tw-border-style);border-bottom-width:.5px}.fill-current{fill:currentColor}.pt-2{padding-top:calc(var(--spacing)*2)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.whitespace-nowrap{white-space:nowrap}.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)}.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.fixed{position:fixed}.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-4{margin-top:calc(var(--spacing)*4)}.mt-6{margin-top:calc(var(--spacing)*6)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.contents{display:contents}.grid{display:grid}.inline-flex{display:inline-flex}.aspect-square{aspect-ratio:1}.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}.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}.resize-none{resize:none}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.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-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-red-500{border-color:var(--color-red-500)}.bg-slate-900\\/40{background-color:#0f172b66}}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities;/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{@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-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-5{padding:calc(var(--spacing)*5)}.p-6{padding:calc(var(--spacing)*6)}.px-2{padding-inline:calc(var(--spacing)*2)}.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-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)}.pl-2{padding-left:calc(var(--spacing)*2)}.text-center{text-align:center}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--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)}.text-red-500{color:var(--color-red-500)}.text-slate-700{color:var(--color-slate-700)}.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.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{.top-1\\/2{top:50%}.right-2{right:calc(var(--spacing)*2)}.col-span-full{grid-column:1/-1}.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-16{height:calc(var(--spacing)*16)}.min-h-0{min-height:calc(var(--spacing)*0)}.w-16{width:calc(var(--spacing)*16)}.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)}.auto-rows-auto{grid-auto-rows:auto}.content-start{align-content:flex-start}.gap-2\\.5{gap:calc(var(--spacing)*2.5)}.overflow-y-auto{overflow-y:auto}.border-transparent{border-color:#0000}.p-1\\.5{padding:calc(var(--spacing)*1.5)}.py-2\\.5{padding-block:calc(var(--spacing)*2.5)}.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}.h-10{height:calc(var(--spacing)*10)}.w-10{width:calc(var(--spacing)*10)}.inset-y-0{inset-block:calc(var(--spacing)*0)}.size-10{height:calc(var(--spacing)*10);width:calc(var(--spacing)*10)}.h-\\[160px\\]{height:160px}.h-\\[200px\\]{height:200px}.w-\\[240px\\]{width:240px}.shrink-0{flex-shrink:0}.gap-1\\.5{gap:calc(var(--spacing)*1.5)}.self-end{align-self:flex-end}.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)}.size-16{height:calc(var(--spacing)*16);width:calc(var(--spacing)*16)}.size-\\[8px\\]{height:8px;width:8px}.size-\\[10px\\]{height:10px;width:10px}.text-yellow-500{color:var(--color-yellow-500)}.col-span-1{grid-column:span 1/span 1}.col-span-2{grid-column:span 2/span 2}.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%}.text-green-700{color:var(--color-green-700)}.text-primary{color:var(--color-primary)}.text-red-700{color:var(--color-red-700)}.capitalize{text-transform:capitalize}.opacity-100{opacity:1}}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities;/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.16 | 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}.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{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}}@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-leading{syntax:\"*\";inherits:false}@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}:host{display:block}@property --tw-space-x-reverse{syntax:\"*\";inherits:false;initial-value:0}@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-font-weight{syntax:\"*\";inherits:false}@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}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@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){.hover\\:brightness-110: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,)}.group-hover\\:opacity-100:is(:where(.group):hover *){opacity:1}.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,.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 (min-width:40rem){.container{max-width:40rem}.sm\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\\:min-w-0{min-width:calc(var(--spacing)*0)}.sm\\:flex-row{flex-direction:row}}@media (min-width:48rem){.container{max-width:48rem}.md\\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width:64rem){.container{max-width:64rem}.lg\\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}@media not all and (min-width:40rem){.max-sm\\:hidden{display:none}}";
4
+
5
+ const ProfileMedia = /*@__PURE__*/ proxyCustomElement(class ProfileMedia extends H {
6
+ constructor(registerHost) {
7
+ super();
8
+ if (registerHost !== false) {
9
+ this.__registerHost();
10
+ }
11
+ }
12
+ render() {
13
+ return h(Host, { key: '26b1f4c814275ab00281da28ba016d98a76af940' }, "Media");
14
+ }
15
+ static get style() { return profileMediaCss; }
16
+ }, [256, "profile-media"]);
17
+ function defineCustomElement() {
18
+ if (typeof customElements === "undefined") {
19
+ return;
20
+ }
21
+ const components = ["profile-media"];
22
+ components.forEach(tagName => { switch (tagName) {
23
+ case "profile-media":
24
+ if (!customElements.get(tagName)) {
25
+ customElements.define(tagName, ProfileMedia);
26
+ }
27
+ break;
28
+ } });
29
+ }
30
+ defineCustomElement();
31
+
32
+ export { ProfileMedia as P, defineCustomElement as d };
33
+ //# sourceMappingURL=p-BB1RB9Dr.js.map
34
+
35
+ //# sourceMappingURL=p-BB1RB9Dr.js.map
@@ -1 +1 @@
1
- {"file":"p-DBgHNduI.js","mappings":";;AAAA,MAAM,eAAe,GAAG,g+/CAAg+/C;;MCM3+/C,YAAY,iBAAAA,kBAAA,CAAA,MAAA,YAAA,SAAAC,CAAA,CAAA;;;;;;;IACvB,MAAM,GAAA;AACJ,QAAA,OAAO,CAAA,CAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAA,OAAA,CAAa;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/profile-media/profile-media.css?tag=profile-media","src/components/profile-media/profile-media.tsx"],"sourcesContent":[":host {\n display: block;\n}\n","import { Component, Host, h } from '@stencil/core';\n\n@Component({\n tag: 'profile-media',\n styleUrl: 'profile-media.css',\n})\nexport class ProfileMedia {\n render() {\n return <Host>Media</Host>;\n }\n}\n"],"version":3}
1
+ {"file":"p-BB1RB9Dr.js","mappings":";;AAAA,MAAM,eAAe,GAAG,+5+CAA+5+C;;MCM16+C,YAAY,iBAAAA,kBAAA,CAAA,MAAA,YAAA,SAAAC,CAAA,CAAA;;;;;;;IACvB,MAAM,GAAA;AACJ,QAAA,OAAO,CAAA,CAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAA,OAAA,CAAa;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/profile-media/profile-media.css?tag=profile-media","src/components/profile-media/profile-media.tsx"],"sourcesContent":[":host {\n display: block;\n}\n","import { Component, Host, h } from '@stencil/core';\n\n@Component({\n tag: 'profile-media',\n styleUrl: 'profile-media.css',\n})\nexport class ProfileMedia {\n render() {\n return <Host>Media</Host>;\n }\n}\n"],"version":3}