zignal-stencil-library 1.1.110 → 1.1.111
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.
- package/dist/cjs/app-globals-V2Kpy_OQ.js.map +1 -1
- package/dist/cjs/autocomplete-address_43.cjs.entry.js +180 -136
- package/dist/cjs/{dayjs-Dssqvl2P.js → dayjs-Fs60i07x.js} +3 -3
- package/dist/cjs/dayjs-Fs60i07x.js.map +1 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/quick-message-app.cjs.entry.js +3 -3
- package/dist/cjs/quick-message-app.entry.cjs.js.map +1 -1
- package/dist/cjs/zignal-stencil-library.cjs.js +1 -1
- package/dist/collection/components/autocomplete-address/autocomplete-address.css +1 -1
- package/dist/collection/components/autocomplete-multiple-select/autocomplete-multiple-select.css +1 -1
- package/dist/collection/components/autocomplete-select/autocomplete-select.css +1 -1
- package/dist/collection/components/channel-box/channel-box.css +1 -1
- package/dist/collection/components/chat-app/chat-app.css +1 -1
- package/dist/collection/components/chat-header/chat-header.css +1 -1
- package/dist/collection/components/chat-input/chat-input.css +1 -1
- package/dist/collection/components/checkbox-list/checkbox-list.css +1 -1
- package/dist/collection/components/dialog-bill-editor/dialog-bill-editor.css +1 -1
- package/dist/collection/components/dialog-editor/dialog-editor.css +1 -1
- package/dist/collection/components/dialog-preview-media/dialog-preview-media.css +1 -1
- package/dist/collection/components/dialog-search/dialog-search.css +1 -1
- package/dist/collection/components/internal-component/merge-user-view.js +1 -1
- package/dist/collection/components/internal-component/merge-user-view.js.map +1 -1
- package/dist/collection/components/menu-chat-channel/menu-chat-channel.css +1 -1
- package/dist/collection/components/menu-chat-type/menu-chat-type.css +1 -1
- package/dist/collection/components/menu-list/menu-list.css +1 -1
- package/dist/collection/components/menu-list/menu-list.js +23 -2
- package/dist/collection/components/menu-list/menu-list.js.map +1 -1
- package/dist/collection/components/message-box/message-box.css +1 -1
- package/dist/collection/components/message-content/message-content.css +1 -1
- package/dist/collection/components/message-item/message-item.css +1 -1
- package/dist/collection/components/message-item/message-item.js +4 -2
- package/dist/collection/components/message-item/message-item.js.map +1 -1
- package/dist/collection/components/message-media/message-media.css +1 -1
- package/dist/collection/components/profile-history/profile-history.css +1 -1
- package/dist/collection/components/profile-history/profile-history.js +14 -22
- package/dist/collection/components/profile-history/profile-history.js.map +1 -1
- package/dist/collection/components/profile-info/profile-info.css +1 -1
- package/dist/collection/components/profile-info/profile-info.js +22 -38
- package/dist/collection/components/profile-info/profile-info.js.map +1 -1
- package/dist/collection/components/profile-info/user-info-section.js +42 -4
- package/dist/collection/components/profile-info/user-info-section.js.map +1 -1
- package/dist/collection/components/profile-media/profile-media.css +1 -1
- package/dist/collection/components/profile-media/profile-media.js +1 -1
- package/dist/collection/components/profile-tabs/profile-tabs.css +1 -1
- package/dist/collection/components/profile-tabs/profile-tabs.js +6 -6
- package/dist/collection/components/profile-tabs/profile-tabs.js.map +1 -1
- package/dist/collection/components/quick-message-add-template/quick-message-add-template.css +1 -1
- package/dist/collection/components/quick-message-add-template/quick-message-add-template.js +3 -3
- package/dist/collection/components/quick-message-add-template/quick-message-text-content.js +1 -1
- package/dist/collection/components/quick-message-app/quick-message-app.css +1 -1
- package/dist/collection/components/quick-message-app/quick-message-app.js +1 -1
- package/dist/collection/components/quick-message-file/quick-message-file.css +1 -1
- package/dist/collection/components/quick-message-file/quick-message-file.js +1 -1
- package/dist/collection/components/quick-message-image/quick-message-image.css +1 -1
- package/dist/collection/components/quick-message-image/quick-message-image.js +1 -1
- package/dist/collection/components/quick-message-modal/quick-message-modal.css +1 -1
- package/dist/collection/components/quick-message-modal/quick-message-modal.js +1 -1
- package/dist/collection/components/quick-message-template/quick-message-template.css +1 -1
- package/dist/collection/components/quick-message-template/quick-message-template.js +3 -3
- package/dist/collection/components/search-box/search-box.css +1 -1
- package/dist/collection/components/search-box/search-box.js +1 -1
- package/dist/collection/components/status-badge/status-badge.css +1 -1
- package/dist/collection/components/status-badge/status-badge.js +2 -2
- package/dist/collection/components/tag-list/tag-list.css +1 -1
- package/dist/collection/components/tag-list/tag-list.js +1 -1
- package/dist/collection/components/tag-or-status-item/tag-or-status-item.css +1 -1
- package/dist/collection/components/tag-or-status-item/tag-or-status-item.js +2 -2
- package/dist/collection/components/tag-popper/tag-popper.css +1 -1
- package/dist/collection/components/tag-popper/tag-popper.js +2 -2
- package/dist/collection/components/typography-clamp/typography-clamp.css +1 -1
- package/dist/collection/components/typography-clamp/typography-clamp.js +2 -2
- package/dist/collection/components/z-avatar/z-avatar.css +1 -1
- package/dist/collection/components/z-avatar/z-avatar.js +8 -2
- package/dist/collection/components/z-avatar/z-avatar.js.map +1 -1
- package/dist/collection/components/z-dialog/z-dialog.css +1 -1
- package/dist/collection/store/chat.js +6 -1
- package/dist/collection/store/chat.js.map +1 -1
- package/dist/collection/store/message.js +38 -6
- package/dist/collection/store/message.js.map +1 -1
- package/dist/collection/store/store.js +1 -1
- package/dist/collection/store/store.js.map +1 -1
- package/dist/components/autocomplete-address.js +1 -1
- package/dist/components/autocomplete-multiple-select.js +1 -1
- package/dist/components/autocomplete-select.js +1 -1
- package/dist/components/channel-box.js +1 -1
- package/dist/components/chat-app.js +47 -47
- package/dist/components/chat-app.js.map +1 -1
- package/dist/components/chat-header.js +1 -1
- package/dist/components/chat-input.js +1 -1
- package/dist/components/checkbox-list.js +1 -1
- package/dist/components/dialog-bill-editor.js +1 -1
- package/dist/components/dialog-editor.js +1 -1
- package/dist/components/dialog-preview-media.js +1 -1
- package/dist/components/dialog-search.js +1 -1
- package/dist/components/menu-chat-channel.js +1 -1
- package/dist/components/menu-chat-type.js +1 -1
- package/dist/components/menu-list.js +1 -1
- package/dist/components/message-box.js +1 -1
- package/dist/components/message-content.js +1 -1
- package/dist/components/message-item.js +1 -1
- package/dist/components/message-media.js +1 -1
- package/dist/components/{p-DHFOACHm.js → p--gZqhhLL.js} +5 -5
- package/dist/components/{p-DHFOACHm.js.map → p--gZqhhLL.js.map} +1 -1
- package/dist/components/p-3jt5iBgO.js +104 -0
- package/dist/components/{p-Cav9Xvhc.js.map → p-3jt5iBgO.js.map} +1 -1
- package/dist/components/{p-BAcE386V.js → p-5S7W_s42.js} +44 -12
- package/dist/components/p-5S7W_s42.js.map +1 -0
- package/dist/components/{p-7VwG3GTl.js → p-5z3Oz7nB.js} +4 -4
- package/dist/components/{p-7VwG3GTl.js.map → p-5z3Oz7nB.js.map} +1 -1
- package/dist/components/{p-COFzcZWg.js → p-8qMMsvE2.js} +6 -6
- package/dist/components/{p-COFzcZWg.js.map → p-8qMMsvE2.js.map} +1 -1
- package/dist/components/{p-Bb01kTl4.js → p-B6HiV-kQ.js} +3 -3
- package/dist/components/{p-Bb01kTl4.js.map → p-B6HiV-kQ.js.map} +1 -1
- package/dist/components/{p-D-KXyaWT.js → p-B7CuMj9y.js} +6 -6
- package/dist/components/{p-D-KXyaWT.js.map → p-B7CuMj9y.js.map} +1 -1
- package/dist/components/{p-tAmACNBr.js → p-BNblLfcs.js} +24 -32
- package/dist/components/p-BNblLfcs.js.map +1 -0
- package/dist/components/p-BOrhSlbo.js +127 -0
- package/dist/components/p-BOrhSlbo.js.map +1 -0
- package/dist/components/{p-DBgHNduI.js → p-Bj6H7JrX.js} +4 -4
- package/dist/components/{p-DBgHNduI.js.map → p-Bj6H7JrX.js.map} +1 -1
- package/dist/components/{p-BQ0yCCV6.js → p-Bo_qpOg-.js} +5 -5
- package/dist/components/{p-BQ0yCCV6.js.map → p-Bo_qpOg-.js.map} +1 -1
- package/dist/components/p-BrKDVlCP.js +101 -0
- package/dist/components/p-BrKDVlCP.js.map +1 -0
- package/dist/components/{p-C0an_Y-_.js → p-C-YLmbpA.js} +4 -4
- package/dist/components/{p-C0an_Y-_.js.map → p-C-YLmbpA.js.map} +1 -1
- package/dist/components/{p-DLUy8rmx.js → p-C-hvo0Uo.js} +17 -15
- package/dist/components/p-C-hvo0Uo.js.map +1 -0
- package/dist/components/p-C0MuZqgR.js +81 -0
- package/dist/components/{p-xc8pAQt4.js.map → p-C0MuZqgR.js.map} +1 -1
- package/dist/components/{p-Dhuf9YNy.js → p-C2YAe0Ke.js} +3 -3
- package/dist/components/{p-Dhuf9YNy.js.map → p-C2YAe0Ke.js.map} +1 -1
- package/dist/components/{p-Bfvlw-rF.js → p-C7MtMQaw.js} +3 -3
- package/dist/components/{p-Bfvlw-rF.js.map → p-C7MtMQaw.js.map} +1 -1
- package/dist/components/p-C7n7EjKD.js +61 -0
- package/dist/components/{p-a3QvEULN.js.map → p-C7n7EjKD.js.map} +1 -1
- package/dist/components/{p-BTItt0Vn.js → p-C9OqpwzA.js} +44 -59
- package/dist/components/p-C9OqpwzA.js.map +1 -0
- package/dist/components/{p-Ca9LbW-0.js → p-CB09ePCJ.js} +7 -7
- package/dist/components/{p-Ca9LbW-0.js.map → p-CB09ePCJ.js.map} +1 -1
- package/dist/components/p-CBGDhDhT.js +132 -0
- package/dist/components/{p-2nxqY6Yv.js.map → p-CBGDhDhT.js.map} +1 -1
- package/dist/components/{p-BEYgWj6b.js → p-CDPdfHLJ.js} +3 -3
- package/dist/components/{p-BEYgWj6b.js.map → p-CDPdfHLJ.js.map} +1 -1
- package/dist/components/{p-DyI3f7kr.js → p-CH39HrFZ.js} +7 -7
- package/dist/components/{p-DyI3f7kr.js.map → p-CH39HrFZ.js.map} +1 -1
- package/dist/components/{p-a8Ave0b1.js → p-CZRPZKJ-.js} +11 -6
- package/dist/components/p-CZRPZKJ-.js.map +1 -0
- package/dist/components/{p-D5PoL4hp.js → p-CbjDD_ZV.js} +4 -4
- package/dist/components/{p-D5PoL4hp.js.map → p-CbjDD_ZV.js.map} +1 -1
- package/dist/components/{p-DeqB7qmW.js → p-CbwYwjdH.js} +3 -3
- package/dist/components/{p-DeqB7qmW.js.map → p-CbwYwjdH.js.map} +1 -1
- package/dist/components/{p-Zye2AvZI.js → p-CeHDqun7.js} +5 -5
- package/dist/components/{p-Zye2AvZI.js.map → p-CeHDqun7.js.map} +1 -1
- package/dist/components/{p-8c8Dr0ZV.js → p-CgTZtTmT.js} +25 -25
- package/dist/components/p-CgTZtTmT.js.map +1 -0
- package/dist/components/{p-BfwDQevk.js → p-CjdpcyF4.js} +15 -15
- package/dist/components/{p-BfwDQevk.js.map → p-CjdpcyF4.js.map} +1 -1
- package/dist/components/{p-CaKYRiqR.js → p-CtIwL686.js} +4 -4
- package/dist/components/{p-CaKYRiqR.js.map → p-CtIwL686.js.map} +1 -1
- package/dist/components/{p-DQjjDohc.js → p-Cw5rK8nZ.js} +6 -6
- package/dist/components/{p-DQjjDohc.js.map → p-Cw5rK8nZ.js.map} +1 -1
- package/dist/components/{p-aG9sejEo.js → p-Cy-sLMQG.js} +6 -6
- package/dist/components/{p-aG9sejEo.js.map → p-Cy-sLMQG.js.map} +1 -1
- package/dist/components/{p-WYN1j0PL.js → p-D-3sn9sH.js} +5 -5
- package/dist/components/{p-WYN1j0PL.js.map → p-D-3sn9sH.js.map} +1 -1
- package/dist/components/p-D-75lLYc.js +124 -0
- package/dist/components/p-D-75lLYc.js.map +1 -0
- package/dist/components/{p-DT1e8U5J.js → p-DCmuKByr.js} +12 -12
- package/dist/components/{p-DT1e8U5J.js.map → p-DCmuKByr.js.map} +1 -1
- package/dist/components/{p-CZjMEPqi.js → p-DG0KCn3k.js} +7 -7
- package/dist/components/{p-CZjMEPqi.js.map → p-DG0KCn3k.js.map} +1 -1
- package/dist/components/{p-D6cBz4be.js → p-DGC5KYEl.js} +19 -19
- package/dist/components/{p-D6cBz4be.js.map → p-DGC5KYEl.js.map} +1 -1
- package/dist/components/{p-Drdp5Euh.js → p-DHM0YbIt.js} +6 -6
- package/dist/components/{p-Drdp5Euh.js.map → p-DHM0YbIt.js.map} +1 -1
- package/dist/components/{p-C0WNBAqe.js → p-DRC94y7I.js} +5 -5
- package/dist/components/{p-C0WNBAqe.js.map → p-DRC94y7I.js.map} +1 -1
- package/dist/components/p-Dnb_md64.js +140 -0
- package/dist/components/p-Dnb_md64.js.map +1 -0
- package/dist/components/{p-DOx_fYz_.js → p-Dv5lS2bl.js} +10 -10
- package/dist/components/{p-DOx_fYz_.js.map → p-Dv5lS2bl.js.map} +1 -1
- package/dist/components/{p-DKrfS1S5.js → p-DwRMNFnU.js} +3 -3
- package/dist/components/{p-DKrfS1S5.js.map → p-DwRMNFnU.js.map} +1 -1
- package/dist/components/{p-DTALiLAZ.js → p-My1l3OBd.js} +4 -4
- package/dist/components/{p-DTALiLAZ.js.map → p-My1l3OBd.js.map} +1 -1
- package/dist/components/{p-Khnj_GHE.js → p-PLHiwThd.js} +3 -3
- package/dist/components/{p-Khnj_GHE.js.map → p-PLHiwThd.js.map} +1 -1
- package/dist/components/{p-b7Sv1iEG.js → p-XunATCgp.js} +13 -13
- package/dist/components/{p-b7Sv1iEG.js.map → p-XunATCgp.js.map} +1 -1
- package/dist/components/p-av8MQL9x.js +107 -0
- package/dist/components/{p-DXliIvkR.js.map → p-av8MQL9x.js.map} +1 -1
- package/dist/components/{p-GrnK0v_A.js → p-drInZwO0.js} +7 -7
- package/dist/components/{p-GrnK0v_A.js.map → p-drInZwO0.js.map} +1 -1
- package/dist/components/{p-uDj0XDfv.js → p-htsjbc2A.js} +5 -5
- package/dist/components/{p-uDj0XDfv.js.map → p-htsjbc2A.js.map} +1 -1
- package/dist/components/{p-CoklAWrF.js → p-kbTcbS6Y.js} +29 -29
- package/dist/components/{p-CoklAWrF.js.map → p-kbTcbS6Y.js.map} +1 -1
- package/dist/components/{p-COEdIJkP.js → p-l6ffmvGW.js} +5 -5
- package/dist/components/{p-COEdIJkP.js.map → p-l6ffmvGW.js.map} +1 -1
- package/dist/components/{p-D1eldCje.js → p-m4eaolum.js} +4 -4
- package/dist/components/{p-D1eldCje.js.map → p-m4eaolum.js.map} +1 -1
- package/dist/components/p-mVYojO3m.js +161 -0
- package/dist/components/{p-34NvdAct.js.map → p-mVYojO3m.js.map} +1 -1
- package/dist/components/p-maYXfa3o.js +113 -0
- package/dist/components/{p-rShdvhEn.js.map → p-maYXfa3o.js.map} +1 -1
- package/dist/components/{p-BQwk0OCD.js → p-p3q1OJSb.js} +12 -12
- package/dist/components/{p-BQwk0OCD.js.map → p-p3q1OJSb.js.map} +1 -1
- package/dist/components/{p-Csg2zfWF.js → p-tkW40LmD.js} +9 -9
- package/dist/components/{p-Csg2zfWF.js.map → p-tkW40LmD.js.map} +1 -1
- package/dist/components/{p-LsQYRhK6.js → p-x8gJGTdZ.js} +3 -3
- package/dist/components/p-x8gJGTdZ.js.map +1 -0
- package/dist/components/profile-history.js +1 -1
- package/dist/components/profile-info.js +1 -1
- package/dist/components/profile-media.js +1 -1
- package/dist/components/profile-tabs.js +1 -1
- package/dist/components/quick-message-add-template.js +1 -1
- package/dist/components/quick-message-app.js +13 -13
- package/dist/components/quick-message-app.js.map +1 -1
- package/dist/components/quick-message-button-content.js +1 -1
- package/dist/components/quick-message-file.js +1 -1
- package/dist/components/quick-message-image-content.js +1 -1
- package/dist/components/quick-message-image.js +1 -1
- package/dist/components/quick-message-menu-list-content.js +1 -1
- package/dist/components/quick-message-modal.js +1 -1
- package/dist/components/quick-message-template.js +1 -1
- package/dist/components/quick-message-text-content.js +1 -1
- package/dist/components/quick-message-video-content.js +1 -1
- package/dist/components/search-box.js +1 -1
- package/dist/components/status-badge.js +1 -1
- package/dist/components/summarize-message-section.js +1 -1
- package/dist/components/tag-list.js +1 -1
- package/dist/components/tag-or-status-item.js +1 -1
- package/dist/components/tag-popper.js +1 -1
- package/dist/components/typography-clamp.js +1 -1
- package/dist/components/user-info-section.js +1 -1
- package/dist/components/z-avatar.js +1 -1
- package/dist/components/z-dialog.js +1 -1
- package/dist/esm/app-globals-DQuL1Twl.js.map +1 -1
- package/dist/esm/autocomplete-address_43.entry.js +180 -136
- package/dist/esm/{dayjs-9U43dXkE.js → dayjs-CBRfzh5w.js} +4 -4
- package/dist/esm/dayjs-CBRfzh5w.js.map +1 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/quick-message-app.entry.js +3 -3
- package/dist/esm/quick-message-app.entry.js.map +1 -1
- package/dist/esm/zignal-stencil-library.js +1 -1
- package/dist/types/components/menu-list/menu-list.d.ts +3 -2
- package/dist/types/components/profile-history/profile-history.d.ts +1 -0
- package/dist/types/components/profile-info/profile-info.d.ts +2 -2
- package/dist/types/components/profile-info/user-info-section.d.ts +2 -0
- package/dist/types/components/z-avatar/z-avatar.d.ts +1 -1
- package/dist/types/components.d.ts +12 -2
- package/dist/types/store/store.d.ts +1 -1
- package/dist/zignal-stencil-library/p-4976f186.entry.js +2 -0
- package/dist/zignal-stencil-library/{p-b3cbf3e3.entry.js.map → p-4976f186.entry.js.map} +1 -1
- package/dist/zignal-stencil-library/p-CZlSuaCa.js +2 -0
- package/dist/zignal-stencil-library/p-CZlSuaCa.js.map +1 -0
- package/dist/zignal-stencil-library/p-DQuL1Twl.js.map +1 -1
- package/dist/zignal-stencil-library/{p-35a45709.entry.js → p-c349823b.entry.js} +64 -64
- package/dist/zignal-stencil-library/p-c349823b.entry.js.map +1 -0
- package/dist/zignal-stencil-library/quick-message-app.entry.esm.js.map +1 -1
- package/dist/zignal-stencil-library/zignal-stencil-library.css +1 -1
- package/dist/zignal-stencil-library/zignal-stencil-library.esm.js +1 -1
- package/package.json +1 -1
- package/dist/cjs/dayjs-Dssqvl2P.js.map +0 -1
- package/dist/components/p-2nxqY6Yv.js +0 -132
- package/dist/components/p-34NvdAct.js +0 -161
- package/dist/components/p-8c8Dr0ZV.js.map +0 -1
- package/dist/components/p-B0F3Fpbq.js +0 -127
- package/dist/components/p-B0F3Fpbq.js.map +0 -1
- package/dist/components/p-B5dJsgfS.js +0 -122
- package/dist/components/p-B5dJsgfS.js.map +0 -1
- package/dist/components/p-BAcE386V.js.map +0 -1
- package/dist/components/p-BTItt0Vn.js.map +0 -1
- package/dist/components/p-BtVgKal4.js +0 -116
- package/dist/components/p-BtVgKal4.js.map +0 -1
- package/dist/components/p-Cav9Xvhc.js +0 -104
- package/dist/components/p-DLUy8rmx.js.map +0 -1
- package/dist/components/p-DXliIvkR.js +0 -107
- package/dist/components/p-LsQYRhK6.js.map +0 -1
- package/dist/components/p-a3QvEULN.js +0 -61
- package/dist/components/p-a8Ave0b1.js.map +0 -1
- package/dist/components/p-eM9QTWv9.js +0 -95
- package/dist/components/p-eM9QTWv9.js.map +0 -1
- package/dist/components/p-rShdvhEn.js +0 -113
- package/dist/components/p-tAmACNBr.js.map +0 -1
- package/dist/components/p-xc8pAQt4.js +0 -81
- package/dist/esm/dayjs-9U43dXkE.js.map +0 -1
- package/dist/zignal-stencil-library/p-35a45709.entry.js.map +0 -1
- package/dist/zignal-stencil-library/p-DO7BhE7i.js +0 -2
- package/dist/zignal-stencil-library/p-DO7BhE7i.js.map +0 -1
- package/dist/zignal-stencil-library/p-b3cbf3e3.entry.js +0 -2
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { p as proxyCustomElement, H, h, a as Host } from './p-D_ltSEZy.js';
|
|
2
2
|
import { I as Icon } from './p-CErcZoEr.js';
|
|
3
|
-
import { c as configStore } from './p-
|
|
3
|
+
import { c as configStore } from './p-x8gJGTdZ.js';
|
|
4
4
|
|
|
5
|
-
const statusBadgeCss = "@layer base{*,::backdrop,:after,:before{--tw-space-y-reverse:0;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-border-style:solid;--tw-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%;border:0 solid;box-sizing:border-box;margin:0;padding:0}}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-border-style:solid;--tw-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-space-y-reverse:0;--tw-leading:initial;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0}}}@layer theme{:host,:root{--color-yellow-500:oklch(79.5% .184 86.047);--container-3xs:16rem;--container-sm:24rem;--container-xl:36rem;--color-yellow-300:oklch(90.5% .182 98.111);--color-red-50:oklch(97.1% .013 17.38);--color-red-200:oklch(88.5% .062 18.334);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-900:oklch(20.8% .042 265.755);--container-xs:20rem;--container-md:28rem;--text-2xl:1.5rem;--text-2xl--line-height:1.33333;--color-slate-500:oklch(55.4% .046 257.417);--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--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;--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;--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:\"Kanit\",var(--default-font);--default-mono-font-family:var(--font-mono);--default-font:ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--color-primary:#e02848;--color-secondary:#023761;--color-background:#fff;--color-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!important}.hidden{display:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.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.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{.relative{position:relative}.mt-auto{margin-top:auto}.mb-auto{margin-bottom:auto}.text-black{color:var(--color-black)}.mx-auto{margin-inline:auto}.size-18{height:calc(var(--spacing)*18);width:calc(var(--spacing)*18)}.visible{visibility:visible}.-top-12{top:calc(var(--spacing)*-12)}.-top-24{top:calc(var(--spacing)*-24)}.mt-10{margin-top:calc(var(--spacing)*10)}.mb-10{margin-bottom:calc(var(--spacing)*10)}.inline-block{display:inline-block}.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)}.w-xl{width:var(--container-xl)}.w-xs{width:var(--container-xs)}}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.15 | 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)}.container{width:100%}.bg-pink-100{background-color:var(--color-pink-100)}.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-3{height:calc(var(--spacing)*3);width:calc(var(--spacing)*3)}.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}.m-auto{margin:auto}.size-32{height:calc(var(--spacing)*32);width:calc(var(--spacing)*32)}.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)}.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-6{height:calc(var(--spacing)*6);width:calc(var(--spacing)*6)}.items-center{align-items:center}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-start{justify-content:flex-start}.gap-2{gap:calc(var(--spacing)*2)}.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))}.border-transparent{border-color:#0000}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.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-2{margin-top:calc(var(--spacing)*2)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-6{margin-top:calc(var(--spacing)*6)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.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}.w-full{width:100%}.max-w-full{max-width:100%}.max-w-md{max-width:var(--container-md)}.max-w-xs{max-width:var(--container-xs)}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.animate-spin{animation:var(--animate-spin)}.cursor-not-allowed{cursor:not-allowed}.resize-none{resize:none}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.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-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.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities;/*! tailwindcss v4.1.15 | 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-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-\\[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-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.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.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{.right-\\[-2px\\]{right:-2px}.bottom-\\[-2px\\]{bottom:-2px}.col-span-3{grid-column:span 3/span 3}.size-5{height:calc(var(--spacing)*5);width:calc(var(--spacing)*5)}.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)}.whitespace-nowrap{white-space:nowrap}.top-1\\/2{top:50%}.right-2{right:calc(var(--spacing)*2)}.col-span-full{grid-column:1/-1}.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}.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}.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}.flex-row{flex-direction:row}.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)}.h-10{height:calc(var(--spacing)*10)}.w-10{width:calc(var(--spacing)*10)}.size-16{height:calc(var(--spacing)*16);width:calc(var(--spacing)*16)}.size-\\[10px\\]{height:10px;width:10px}.text-green-500{color:var(--color-green-500)}.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-blue-500{color:var(--color-blue-500)}.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.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities;/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.15 | 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:inline-block}.status-badge{display:grid;place-items:center}.status-badge-loading-icon{animation:var(--animate-spin);height:calc(var(--spacing)*3);width:calc(var(--spacing)*3)}.status-badge-wrapper{align-items:center;display:inline-flex;gap:calc(var(--spacing)*2);min-width:calc(var(--spacing)*0)}.status-badge-label{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@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}@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}}";
|
|
5
|
+
const statusBadgeCss = "@layer base{*,::backdrop,:after,:before{--tw-space-y-reverse:0;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-border-style:solid;--tw-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%;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-border-style:solid;--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-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;--container-3xs:16rem;--color-yellow-300:oklch(90.5% .182 98.111);--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-yellow-500:oklch(79.5% .184 86.047);--container-xs:20rem;--container-sm:24rem;--color-slate-500:oklch(55.4% .046 257.417);--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--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;--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;--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:\"Kanit\",var(--default-font);--default-mono-font-family:var(--font-mono);--default-font:ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--color-primary:#e02848;--color-secondary:#023761;--color-background:#fff;--color-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!important}.hidden{display:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.shadow-md{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.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{.mb-2{margin-bottom:calc(var(--spacing)*2)}.w-xl{width:var(--container-xl)}.w-xs{width:var(--container-xs)}}/*! 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)}.col-span-2{grid-column:span 2/span 2}.my-2{margin-block:calc(var(--spacing)*2)}.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-3{height:calc(var(--spacing)*3);width:calc(var(--spacing)*3)}.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-black{color:var(--color-black)}.text-white{color:var(--color-white)}.underline{text-decoration-line:underline}.relative{position:relative}.container{width:100%}.size-18{height:calc(var(--spacing)*18);width:calc(var(--spacing)*18)}.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)}.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-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))}.border-transparent{border-color:#0000}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.hidden\\!{display:none!important}.bg-pink-100{background-color:var(--color-pink-100)}.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-2{margin-top:calc(var(--spacing)*2)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-6{margin-top:calc(var(--spacing)*6)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.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}.w-full{width:100%}.max-w-full{max-width:100%}.max-w-md{max-width:var(--container-md)}.max-w-xs{max-width:var(--container-xs)}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.animate-spin{animation:var(--animate-spin)}.cursor-not-allowed{cursor:not-allowed}.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{}@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{}@layer utilities;/*! 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-4{padding:calc(var(--spacing)*4)}.p-5{padding:calc(var(--spacing)*5)}.p-6{padding:calc(var(--spacing)*6)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-4{padding-inline:calc(var(--spacing)*4)}.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)}.pb-8{padding-bottom:calc(var(--spacing)*8)}.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-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-\\[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-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.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{}@layer utilities{.top-1\\/2{top:50%}.right-2{right:calc(var(--spacing)*2)}.mt-auto{margin-top:auto}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.h-10{height:calc(var(--spacing)*10)}.min-h-0{min-height:calc(var(--spacing)*0)}.w-10{width:calc(var(--spacing)*10)}.min-w-0{min-width:calc(var(--spacing)*0)}.-translate-y-1\\/2{--tw-translate-y:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.gap-2\\.5{gap:calc(var(--spacing)*2.5)}.overflow-y-auto{overflow-y:auto}.py-2\\.5{padding-block:calc(var(--spacing)*2.5)}.pt-2{padding-top:calc(var(--spacing)*2)}.pr-9{padding-right:calc(var(--spacing)*9)}.break-words{overflow-wrap:break-word}.text-gray-400{color:var(--color-gray-400)}.focus\\:border-primary:focus{border-color:var(--color-primary)}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:opacity-40:disabled{opacity:.4}.col-span-full{grid-column:1/-1}.h-16{height:calc(var(--spacing)*16)}.w-16{width:calc(var(--spacing)*16)}.auto-rows-auto{grid-auto-rows:auto}.content-start{align-content:flex-start}.p-1\\.5{padding:calc(var(--spacing)*1.5)}.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}.pt-4{padding-top:calc(var(--spacing)*4)}.-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}.size-5{height:calc(var(--spacing)*5);width:calc(var(--spacing)*5)}.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}.whitespace-nowrap{white-space:nowrap}.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-32{height:calc(var(--spacing)*32);width:calc(var(--spacing)*32)}.size-\\[8px\\]{height:8px;width:8px}.size-\\[10px\\]{height:10px;width:10px}.text-green-500{color:var(--color-green-500)}.text-yellow-500{color:var(--color-yellow-500)}.col-span-1{grid-column:span 1/span 1}.m-2{margin:calc(var(--spacing)*2)}.mx-4{margin-inline:calc(var(--spacing)*4)}.ml-0\\.5{margin-left:calc(var(--spacing)*.5)}.w-1\\/2{width:50%}.max-w-32{max-width:calc(var(--spacing)*32)}.translate-y-0{--tw-translate-y:calc(var(--spacing)*0)}.translate-y-0,.translate-y-full{translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-full{--tw-translate-y:100%}.text-blue-500{color:var(--color-blue-500)}.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{}@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{}/*! 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{}/*! 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{}/*! 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{}/*! 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{}/*! 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{}/*! 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{}/*! 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:inline-block}.status-badge{display:grid;place-items:center}.status-badge-loading-icon{animation:var(--animate-spin);height:calc(var(--spacing)*3);width:calc(var(--spacing)*3)}.status-badge-wrapper{align-items:center;display:inline-flex;gap:calc(var(--spacing)*2);min-width:calc(var(--spacing)*0)}.status-badge-label{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@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}@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}}";
|
|
6
6
|
|
|
7
7
|
const StatusBadge = /*@__PURE__*/ proxyCustomElement(class StatusBadge extends H {
|
|
8
8
|
constructor(registerHost) {
|
|
@@ -42,12 +42,12 @@ const StatusBadge = /*@__PURE__*/ proxyCustomElement(class StatusBadge extends H
|
|
|
42
42
|
render() {
|
|
43
43
|
const color = this.getEffectiveColor();
|
|
44
44
|
const theme = configStore.get('theme');
|
|
45
|
-
return (h(Host, { key: '
|
|
45
|
+
return (h(Host, { key: '1f7e6a0017f62b2675bab2f4a8a2aab737fd74b4' }, h("div", { key: '52ebdb75b7eee3c1d7bf14071c2d1ca80c19544c', class: `status-badge-wrapper z-background-${theme}`, style: {
|
|
46
46
|
borderRadius: `${this.radius}px`,
|
|
47
47
|
border: `${this.borderWidth}px solid ${color}`,
|
|
48
48
|
padding: this.padding || '6px 12px',
|
|
49
49
|
color: color,
|
|
50
|
-
}, title: this.label }, this.renderLeading(color), h("span", { key: '
|
|
50
|
+
}, title: this.label }, this.renderLeading(color), h("span", { key: 'ba281a68eee125c66eef01946c1128dfface8f4a', class: "status-badge-label", style: { lineHeight: '1' } }, this.label))));
|
|
51
51
|
}
|
|
52
52
|
static get style() { return statusBadgeCss; }
|
|
53
53
|
}, [256, "status-badge", {
|
|
@@ -74,6 +74,6 @@ function defineCustomElement() {
|
|
|
74
74
|
defineCustomElement();
|
|
75
75
|
|
|
76
76
|
export { StatusBadge as S, defineCustomElement as d };
|
|
77
|
-
//# sourceMappingURL=p-
|
|
77
|
+
//# sourceMappingURL=p-DHM0YbIt.js.map
|
|
78
78
|
|
|
79
|
-
//# sourceMappingURL=p-
|
|
79
|
+
//# sourceMappingURL=p-DHM0YbIt.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"p-
|
|
1
|
+
{"file":"p-DHM0YbIt.js","mappings":";;;;AAAA,MAAM,cAAc,GAAG,mtlDAAmtlD;;MCQ7tlD,WAAW,iBAAAA,kBAAA,CAAA,MAAA,WAAA,SAAAC,CAAA,CAAA;;;;;;;;AAEd,IAAA,MAAM;;AAEN,IAAA,KAAK;;AAEL,IAAA,OAAO;;IAEP,WAAW,GAAW,CAAC;;IAEvB,MAAM,GAAW,EAAE;;AAEnB,IAAA,KAAK;IAEL,iBAAiB,GAAA;QACvB,IAAI,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC,KAAK;QACjC,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC;QACtC,OAAO,KAAK,KAAK,MAAM,GAAG,6BAA6B,GAAG,wBAAwB;;AAG5E,IAAA,aAAa,CAAC,KAAa,EAAA;AACjC,QAAA,QAAQ,IAAI,CAAC,MAAM;AACjB,YAAA,KAAK,SAAS;AACZ,gBAAA,QACE,CAAK,CAAA,KAAA,EAAA,EAAA,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,EAAC,cAAc,EAAA,EACjE,CAAA,CAAC,IAAI,EAAA,EAAC,IAAI,EAAC,cAAc,EAAC,QAAQ,EAAC,2BAA2B,EAAA,CAAG,CAC7D;YAEV,KAAK,WAAW,EAAE;gBAChB,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC;gBACtC,QACE,WAAK,KAAK,EAAC,2BAA2B,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,KAAK,EAAE,EAAA,EACrG,CAAA,CAAC,IAAI,EAAA,EAAC,IAAI,EAAC,OAAO,EAAC,QAAQ,EAAE,CAA4B,yBAAA,EAAA,KAAK,EAAE,EAAI,CAAA,CAChE;;;;IAMd,MAAM,GAAA;AACJ,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,iBAAiB,EAAE;QACtC,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC;QAEtC,QACE,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACH,CAAA,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EACE,KAAK,EAAE,CAAA,kCAAA,EAAqC,KAAK,CAAA,CAAE,EACnD,KAAK,EAAE;AACL,gBAAA,YAAY,EAAE,CAAA,EAAG,IAAI,CAAC,MAAM,CAAI,EAAA,CAAA;AAChC,gBAAA,MAAM,EAAE,CAAG,EAAA,IAAI,CAAC,WAAW,CAAA,SAAA,EAAY,KAAK,CAAE,CAAA;AAC9C,gBAAA,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,UAAU;AACnC,gBAAA,KAAK,EAAE,KAAK;AACb,aAAA,EACD,KAAK,EAAE,IAAI,CAAC,KAAK,EAAA,EAEhB,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAC1B,CAAA,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAM,KAAK,EAAC,oBAAoB,EAAC,KAAK,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,EAAA,EACxD,IAAI,CAAC,KAAK,CACN,CACH,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/status-badge/status-badge.css?tag=status-badge","src/components/status-badge/status-badge.tsx"],"sourcesContent":[":host {\n display: inline-block;\n}\n\n.status-badge {\n @apply grid place-items-center\n}\n\n.status-badge-loading-icon {\n @apply animate-spin size-3\n}\n\n.status-badge-wrapper {\n @apply inline-flex items-center min-w-0 gap-2\n}\n\n.status-badge-label {\n @apply text-xs truncate\n}","import { Component, Host, Prop, h } from '@stencil/core';\nimport { Icon } from '../internal-component/icon';\nimport { configStore } from '../../store/store';\n\n@Component({\n tag: 'status-badge',\n styleUrl: 'status-badge.css',\n})\nexport class StatusBadge {\n /** loading | completed */\n @Prop() status!: 'loading' | 'completed';\n /** Label text displayed inside the badge */\n @Prop() label!: string;\n /** CSS padding shorthand, e.g. `6px 12px` */\n @Prop() padding?: string;\n /** Border width in px */\n @Prop() borderWidth: number = 1;\n /** Corner radius in px */\n @Prop() radius: number = 20;\n /** Accent color for border and text (falls back to theme secondary) */\n @Prop() color?: string;\n\n private getEffectiveColor(): string {\n if (this.color) return this.color;\n const theme = configStore.get('theme');\n return theme === 'dark' ? 'var(--color-secondary-dark)' : 'var(--color-secondary)';\n }\n\n private renderLeading(color: string) {\n switch (this.status) {\n case 'loading':\n return (\n <div style={{ width: '14px', height: '14px' }} class=\"status-badge\">\n <Icon name=\"LoaderCircle\" addClass=\"status-badge-loading-icon\" />\n </div>\n );\n case 'completed': {\n const theme = configStore.get('theme');\n return (\n <div class=\"rounded-full status-badge\" style={{ width: '16px', height: '16px', backgroundColor: color }}>\n <Icon name=\"Check\" addClass={`size-3 z-text-background-${theme}`} />\n </div>\n );\n }\n }\n }\n\n render() {\n const color = this.getEffectiveColor();\n const theme = configStore.get('theme');\n\n return (\n <Host>\n <div\n class={`status-badge-wrapper z-background-${theme}`}\n style={{\n borderRadius: `${this.radius}px`,\n border: `${this.borderWidth}px solid ${color}`,\n padding: this.padding || '6px 12px',\n color: color,\n }}\n title={this.label}\n >\n {this.renderLeading(color)}\n <span class=\"status-badge-label\" style={{ lineHeight: '1' }}>\n {this.label}\n </span>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { c as configStore } from './p-
|
|
2
|
-
import { g as getSignedS3Request, a as apiService } from './p-
|
|
3
|
-
import { h as handleError } from './p-
|
|
1
|
+
import { c as configStore } from './p-x8gJGTdZ.js';
|
|
2
|
+
import { g as getSignedS3Request, a as apiService } from './p-l6ffmvGW.js';
|
|
3
|
+
import { h as handleError } from './p-C2YAe0Ke.js';
|
|
4
4
|
|
|
5
5
|
const uploadFile = async ({ file, filename = 'untitled', folder }) => {
|
|
6
6
|
const businessId = configStore.get('businessId');
|
|
@@ -375,6 +375,6 @@ const getQuickMessageLibraryFiles = async (params = {}) => {
|
|
|
375
375
|
};
|
|
376
376
|
|
|
377
377
|
export { updateQuickMessageLibraryFileName as a, getQuickMessageTemplates as b, createQuickMessageLibraryFiles as c, deleteQuickMessageLibraryFile as d, updateQuickMessageTemplate as e, createQuickMessageTemplate as f, getQuickMessageLibraryFiles as g, deleteQuickMessageTemplate as h, uploadFile as u };
|
|
378
|
-
//# sourceMappingURL=p-
|
|
378
|
+
//# sourceMappingURL=p-DRC94y7I.js.map
|
|
379
379
|
|
|
380
|
-
//# sourceMappingURL=p-
|
|
380
|
+
//# sourceMappingURL=p-DRC94y7I.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"p-C0WNBAqe.js","mappings":"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","names":[],"sources":["src/utils/upload.ts","src/api/quick-message.ts"],"sourcesContent":["import { GetSignedS3Params, GetSignedS3Response, IUploadFieldToS3 } from '../api/type';\nimport { handleError } from '../store/dialog';\nimport { configStore } from '../store/store';\nimport { getSignedS3Request } from './axios';\n\nexport const uploadFile = async ({ file, filename = 'untitled', folder }: IUploadFieldToS3) => {\n const businessId = configStore.get('businessId');\n const data: GetSignedS3Params = {\n 'file-name': `${businessId}_${Date.now()}_${filename.replaceAll(' ', '-')}.${file?.name?.split('.')?.pop() || ''}`,\n 'file-type': file.type ?? 'application/octet-stream',\n 'folder-name': folder,\n };\n try {\n let url = await getSignedRequest(data, file);\n url = encodeURI(url || '');\n\n if (typeof url !== 'undefined') {\n return url;\n }\n } catch (error: unknown) {\n handleError(error);\n }\n};\n\nconst getSignedRequest = async (value: GetSignedS3Params, file: File) => {\n try {\n const response = await getSignedS3Request(value);\n if (response) {\n const uploadedResponse = await uploadfile(response, file);\n return uploadedResponse;\n }\n } catch (error: unknown) {\n handleError(error);\n }\n};\n\nconst uploadfile = async ({ result }: GetSignedS3Response, file: File) => {\n return new Promise<string>((resolve, reject) => {\n const signedRequest = result.signedRequest;\n const formData = new FormData();\n formData.append('acl', 'public-read');\n Object.keys(signedRequest.fields).forEach(key => {\n formData.append(key, signedRequest.fields[key]);\n });\n\n formData.append('file', file);\n\n const xhr = new XMLHttpRequest();\n xhr.open('POST', signedRequest.url, true);\n\n xhr.send(formData);\n xhr.onload = function () {\n if (xhr.readyState === 4) {\n if (xhr.status === 200 || xhr.status === 204) {\n resolve(`${result.url}`);\n } else {\n reject('Could not upload file.');\n }\n }\n };\n });\n};\n\nexport const useResizeImage = (file: File, maxWidth: number = 500, maxHeight: number = 500): Promise<File> => {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n\n reader.onload = event => {\n const img = new Image();\n img.src = event.target?.result as string;\n\n img.onload = () => {\n const { width, height } = img;\n let newWidth = width;\n let newHeight = height;\n\n if (width > maxWidth) {\n newWidth = maxWidth;\n newHeight = (height / width) * maxWidth;\n }\n\n if (newHeight > maxHeight) {\n newHeight = maxHeight;\n newWidth = (width / height) * maxHeight;\n }\n\n const canvas = document.createElement('canvas');\n canvas.width = newWidth;\n canvas.height = newHeight;\n\n const ctx = canvas.getContext('2d');\n ctx?.drawImage(img, 0, 0, newWidth, newHeight);\n\n canvas.toBlob(blob => {\n if (blob) {\n const resizedFile = new File([blob], file.name, {\n type: file.type,\n lastModified: file.lastModified,\n });\n resolve(resizedFile);\n } else {\n reject(new Error('Failed to resize the image.'));\n }\n }, file.type);\n };\n };\n\n reader.onerror = event => {\n console.log('error', event);\n reject(new Error('Failed to read the image.'));\n };\n\n reader.readAsDataURL(file);\n });\n};\n","import { configStore } from '../store/store';\nimport { apiService } from '../utils/axios';\nimport { uploadFile } from '../utils/upload';\nimport * as Types from './type';\nimport type { QuickMessageTemplateButton, QuickMessageTemplateContent } from '../store/type';\n\nconst normalizeQuickMessageTemplateString = (value?: string | null): string | undefined => {\n if (value === undefined || value === null) {\n return undefined;\n }\n\n const trimmed = value.trim();\n return trimmed.length > 0 ? trimmed : undefined;\n};\n\nconst isHttpUrl = (value: string): boolean => {\n try {\n const url = new URL(value);\n return url.protocol === 'http:' || url.protocol === 'https:';\n } catch {\n return false;\n }\n};\n\nconst isDataUrl = (value: string): boolean => value.startsWith('data:');\n\nconst dataUrlToFile = (dataUrl: string): File | null => {\n const matches = dataUrl.match(/^data:(.*?);base64,(.*)$/);\n if (!matches) {\n return null;\n }\n\n const mime = matches[1] || 'application/octet-stream';\n const base64Data = matches[2];\n\n try {\n const binaryString = atob(base64Data);\n const len = binaryString.length;\n const bytes = new Uint8Array(len);\n for (let i = 0; i < len; i += 1) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n\n const extension = mime.split('/')[1] || 'bin';\n const fileName = `quick-message-${Date.now()}.${extension}`;\n return new File([bytes], fileName, { type: mime });\n } catch (error: unknown) {\n console.error('[quick-message-template] Failed to convert data URL to file', error);\n return null;\n }\n};\n\nconst resolveFileUrl = async (value?: string | null): Promise<string | undefined> => {\n const normalized = normalizeQuickMessageTemplateString(value);\n\n if (!normalized) {\n return undefined;\n }\n\n if (isHttpUrl(normalized)) {\n return normalized;\n }\n\n if (isDataUrl(normalized)) {\n const file = dataUrlToFile(normalized);\n if (!file) {\n return normalized;\n }\n\n try {\n const uploadedUrl = await uploadFile({\n file,\n filename: file.name.replaceAll(' ', '-'),\n folder: 'zignal/quick-message-template',\n });\n\n return normalizeQuickMessageTemplateString(uploadedUrl) ?? normalized;\n } catch (error: unknown) {\n console.error('[quick-message-template] Failed to upload file for template', error);\n return normalized;\n }\n }\n\n return normalized;\n};\n\ntype QuickMessageTemplateButtonPayload = {\n action_type: QuickMessageTemplateButton['action_type'];\n text: string;\n action?: string;\n};\n\ntype QuickMessageTemplateMenuListPayload = {\n file_url?: string;\n title?: string;\n description?: string;\n buttons?: QuickMessageTemplateButtonPayload[];\n};\n\ntype QuickMessageTemplateContentPayload = {\n type: QuickMessageTemplateContent['type'];\n text?: string;\n file_url?: string;\n buttons?: QuickMessageTemplateButtonPayload[];\n menu_list?: QuickMessageTemplateMenuListPayload[];\n};\n\ntype CreateQuickMessageTemplateRequestBody = {\n title: string;\n contents: QuickMessageTemplateContentPayload[];\n};\n\nconst buildQuickMessageTemplateRequestBody = async (template: Types.CreateQuickMessageTemplateParams): Promise<CreateQuickMessageTemplateRequestBody> => {\n const title = template.title?.trim() ?? '';\n\n const contents = await Promise.all(\n (template.contents ?? []).map(async content => {\n const text = normalizeQuickMessageTemplateString(content.text);\n const fileUrl = await resolveFileUrl(content.file_url);\n\n const buttons = (content.buttons ?? [])\n .map<QuickMessageTemplateButtonPayload | null>(button => {\n const buttonText = normalizeQuickMessageTemplateString(button.text);\n if (!buttonText) {\n return null;\n }\n\n const payload: QuickMessageTemplateButtonPayload = {\n action_type: button.action_type,\n text: buttonText,\n };\n\n const action = normalizeQuickMessageTemplateString(button.action);\n if (action) {\n payload.action = action;\n }\n\n return payload;\n })\n .filter((button): button is QuickMessageTemplateButtonPayload => Boolean(button));\n\n const menuListRaw = await Promise.all(\n (content.menu_list ?? []).map(async menu => {\n const fileUrlMenu = await resolveFileUrl(menu.file_url);\n const titleMenu = normalizeQuickMessageTemplateString(menu.title);\n const descriptionMenu = normalizeQuickMessageTemplateString(menu.description);\n\n const menuButtons = (menu.buttons ?? [])\n .map<QuickMessageTemplateButtonPayload | null>(button => {\n const buttonText = normalizeQuickMessageTemplateString(button.text);\n if (!buttonText) {\n return null;\n }\n\n const payload: QuickMessageTemplateButtonPayload = {\n action_type: button.action_type,\n text: buttonText,\n };\n\n const action = normalizeQuickMessageTemplateString(button.action);\n if (action) {\n payload.action = action;\n }\n\n return payload;\n })\n .filter((button): button is QuickMessageTemplateButtonPayload => Boolean(button));\n\n if (!fileUrlMenu && !titleMenu && !descriptionMenu && menuButtons.length === 0) {\n return null;\n }\n\n const payload: QuickMessageTemplateMenuListPayload = {};\n\n if (fileUrlMenu) {\n payload.file_url = fileUrlMenu;\n }\n if (titleMenu) {\n payload.title = titleMenu;\n }\n if (descriptionMenu) {\n payload.description = descriptionMenu;\n }\n if (menuButtons.length > 0) {\n payload.buttons = menuButtons;\n }\n\n return payload;\n }),\n );\n\n const menuList = menuListRaw.filter((menu): menu is QuickMessageTemplateMenuListPayload => Boolean(menu));\n\n if (!text && !fileUrl && buttons.length === 0 && menuList.length === 0) {\n return null;\n }\n\n const payload: QuickMessageTemplateContentPayload = {\n type: content.type,\n };\n\n if (text) {\n payload.text = text;\n }\n if (fileUrl) {\n payload.file_url = fileUrl;\n }\n if (buttons.length > 0) {\n payload.buttons = buttons;\n }\n if (menuList.length > 0) {\n payload.menu_list = menuList;\n }\n\n return payload;\n }),\n );\n\n const filteredContents = contents.filter((content): content is QuickMessageTemplateContentPayload => Boolean(content));\n\n return {\n title,\n contents: filteredContents,\n };\n};\n\nconst normalizeLibraryFilesResponse = (data: unknown): Types.CreateQuickMessageLibraryFileResponse => {\n if (Array.isArray(data)) {\n return data as Types.CreateQuickMessageLibraryFileResponse;\n }\n\n if (data && typeof data === 'object' && Array.isArray((data as { files?: unknown }).files)) {\n return (data as { files: Types.CreateQuickMessageLibraryFileResponse }).files;\n }\n\n return [];\n};\n\nexport const getQuickMessageTemplates = async (params: Types.GetQuickMessageTemplatesParams = {}) => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n\n if (!businessId || !shopId) {\n throw new Error('[quick-message] Missing businessId or shopId');\n }\n\n const { page = 1, limit = 20, search } = params;\n const requestParams: Record<string, string | number | undefined> = {\n page,\n limit,\n search: search?.trim() ? search.trim() : undefined,\n };\n\n const { data, status } = await apiService().get<Types.GetQuickMessageTemplatesResponse>(`api/${businessId}/${shopId}/quick-message-template`, {\n params: requestParams,\n });\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to getQuickMessageTemplates');\n};\n\nexport const createQuickMessageTemplate = async (template: Types.CreateQuickMessageTemplateParams) => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n\n if (!businessId || !shopId) {\n throw new Error('[quick-message] Missing businessId or shopId');\n }\n\n const payload = await buildQuickMessageTemplateRequestBody(template);\n\n const { data, status } = await apiService().post<Types.CreateQuickMessageTemplateResponse>(`api/${businessId}/${shopId}/quick-message-template`, payload);\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to createQuickMessageTemplate');\n};\n\nexport const updateQuickMessageTemplate = async (template: Types.CreateQuickMessageTemplateParams) => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n\n if (!businessId || !shopId) {\n throw new Error('[quick-message] Missing businessId or shopId');\n }\n\n if (!template.id) {\n throw new Error('[quick-message] Missing template id');\n }\n\n const payload = await buildQuickMessageTemplateRequestBody(template);\n\n const { data, status } = await apiService().patch<Types.CreateQuickMessageTemplateResponse>(`api/${businessId}/${shopId}/quick-message-template/${template.id}`, payload);\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to updateQuickMessageTemplate');\n};\n\nexport const deleteQuickMessageTemplate = async (templateId: string) => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n\n if (!businessId || !shopId) {\n throw new Error('[quick-message] Missing businessId or shopId');\n }\n\n if (!templateId) {\n throw new Error('[quick-message] Missing template id');\n }\n\n const { data, status } = await apiService().delete<Types.BaseResponse>(`api/${businessId}/${shopId}/quick-message-template/${templateId}`);\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to deleteQuickMessageTemplate');\n};\n\nexport const createQuickMessageLibraryFiles = async (params: Types.CreateQuickMessageLibraryFileParams) => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n\n if (!businessId || !shopId) {\n throw new Error('[quick-message] Missing businessId or shopId');\n }\n\n const files = params.files ?? [];\n\n if (files.length === 0) {\n return [];\n }\n\n const requestPayload = {\n files: files.map(file => ({\n file_type: file.file_type,\n name: file.name.trim(),\n url: file.url.trim(),\n size: file.size,\n })),\n };\n\n const { data, status } = await apiService().post<Types.CreateQuickMessageLibraryFileResponse | { files: Types.CreateQuickMessageLibraryFileResponse }>(\n `api/${businessId}/${shopId}/quick-message-library-file`,\n requestPayload,\n );\n\n if (status === 200) {\n return normalizeLibraryFilesResponse(data);\n }\n\n throw new Error('Failed to createQuickMessageLibraryFiles');\n};\n\nexport const deleteQuickMessageLibraryFile = async (params: Types.DeleteQuickMessageLibraryFileParams) => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n\n if (!businessId || !shopId) {\n throw new Error('[quick-message] Missing businessId or shopId');\n }\n\n const normalizedIds = Array.from(new Set((params.ids ?? []).map(id => (typeof id === 'string' ? id.trim() : '')).filter(id => id.length > 0)));\n\n if (normalizedIds.length === 0) {\n throw new Error('[quick-message] Missing file ids to delete');\n }\n\n const { data, status } = await apiService().delete<Types.DeleteQuickMessageLibraryFileResponse>(`api/${businessId}/${shopId}/quick-message-library-file`, {\n data: {\n file_ids: normalizedIds,\n },\n });\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to deleteQuickMessageLibraryFile');\n};\n\nexport const updateQuickMessageLibraryFileName = async (params: Types.UpdateQuickMessageLibraryFileNameParams) => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n\n if (!businessId || !shopId) {\n throw new Error('[quick-message] Missing businessId or shopId');\n }\n\n const trimmedId = params.id.trim();\n const trimmedName = params.name.trim();\n\n if (!trimmedId) {\n throw new Error('[quick-message] Missing file id to update');\n }\n\n if (!trimmedName) {\n throw new Error('[quick-message] Missing file name to update');\n }\n\n const { data, status } = await apiService().patch<Types.UpdateQuickMessageLibraryFileNameResponse>(`api/${businessId}/${shopId}/quick-message-library-file/${trimmedId}`, {\n name: trimmedName,\n });\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to updateQuickMessageLibraryFileName');\n};\n\nexport const getQuickMessageLibraryFiles = async (params: Types.GetQuickMessageLibraryFilesParams = {}) => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n\n if (!businessId || !shopId) {\n throw new Error('[quick-message] Missing businessId or shopId');\n }\n\n const { page = 1, limit = 20, search, fileType } = params;\n const requestParams: Record<string, string | number | undefined> = {\n page,\n limit,\n search: search?.trim() ? search.trim() : undefined,\n file_type: fileType,\n };\n\n const { data, status } = await apiService().get<Types.GetQuickMessageLibraryFilesResponse>(`api/${businessId}/${shopId}/quick-message-library-file`, {\n params: requestParams,\n });\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to getQuickMessageLibraryFiles');\n};\n"],"version":3}
|
|
1
|
+
{"file":"p-DRC94y7I.js","mappings":"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","names":[],"sources":["src/utils/upload.ts","src/api/quick-message.ts"],"sourcesContent":["import { GetSignedS3Params, GetSignedS3Response, IUploadFieldToS3 } from '../api/type';\nimport { handleError } from '../store/dialog';\nimport { configStore } from '../store/store';\nimport { getSignedS3Request } from './axios';\n\nexport const uploadFile = async ({ file, filename = 'untitled', folder }: IUploadFieldToS3) => {\n const businessId = configStore.get('businessId');\n const data: GetSignedS3Params = {\n 'file-name': `${businessId}_${Date.now()}_${filename.replaceAll(' ', '-')}.${file?.name?.split('.')?.pop() || ''}`,\n 'file-type': file.type ?? 'application/octet-stream',\n 'folder-name': folder,\n };\n try {\n let url = await getSignedRequest(data, file);\n url = encodeURI(url || '');\n\n if (typeof url !== 'undefined') {\n return url;\n }\n } catch (error: unknown) {\n handleError(error);\n }\n};\n\nconst getSignedRequest = async (value: GetSignedS3Params, file: File) => {\n try {\n const response = await getSignedS3Request(value);\n if (response) {\n const uploadedResponse = await uploadfile(response, file);\n return uploadedResponse;\n }\n } catch (error: unknown) {\n handleError(error);\n }\n};\n\nconst uploadfile = async ({ result }: GetSignedS3Response, file: File) => {\n return new Promise<string>((resolve, reject) => {\n const signedRequest = result.signedRequest;\n const formData = new FormData();\n formData.append('acl', 'public-read');\n Object.keys(signedRequest.fields).forEach(key => {\n formData.append(key, signedRequest.fields[key]);\n });\n\n formData.append('file', file);\n\n const xhr = new XMLHttpRequest();\n xhr.open('POST', signedRequest.url, true);\n\n xhr.send(formData);\n xhr.onload = function () {\n if (xhr.readyState === 4) {\n if (xhr.status === 200 || xhr.status === 204) {\n resolve(`${result.url}`);\n } else {\n reject('Could not upload file.');\n }\n }\n };\n });\n};\n\nexport const useResizeImage = (file: File, maxWidth: number = 500, maxHeight: number = 500): Promise<File> => {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n\n reader.onload = event => {\n const img = new Image();\n img.src = event.target?.result as string;\n\n img.onload = () => {\n const { width, height } = img;\n let newWidth = width;\n let newHeight = height;\n\n if (width > maxWidth) {\n newWidth = maxWidth;\n newHeight = (height / width) * maxWidth;\n }\n\n if (newHeight > maxHeight) {\n newHeight = maxHeight;\n newWidth = (width / height) * maxHeight;\n }\n\n const canvas = document.createElement('canvas');\n canvas.width = newWidth;\n canvas.height = newHeight;\n\n const ctx = canvas.getContext('2d');\n ctx?.drawImage(img, 0, 0, newWidth, newHeight);\n\n canvas.toBlob(blob => {\n if (blob) {\n const resizedFile = new File([blob], file.name, {\n type: file.type,\n lastModified: file.lastModified,\n });\n resolve(resizedFile);\n } else {\n reject(new Error('Failed to resize the image.'));\n }\n }, file.type);\n };\n };\n\n reader.onerror = event => {\n console.log('error', event);\n reject(new Error('Failed to read the image.'));\n };\n\n reader.readAsDataURL(file);\n });\n};\n","import { configStore } from '../store/store';\nimport { apiService } from '../utils/axios';\nimport { uploadFile } from '../utils/upload';\nimport * as Types from './type';\nimport type { QuickMessageTemplateButton, QuickMessageTemplateContent } from '../store/type';\n\nconst normalizeQuickMessageTemplateString = (value?: string | null): string | undefined => {\n if (value === undefined || value === null) {\n return undefined;\n }\n\n const trimmed = value.trim();\n return trimmed.length > 0 ? trimmed : undefined;\n};\n\nconst isHttpUrl = (value: string): boolean => {\n try {\n const url = new URL(value);\n return url.protocol === 'http:' || url.protocol === 'https:';\n } catch {\n return false;\n }\n};\n\nconst isDataUrl = (value: string): boolean => value.startsWith('data:');\n\nconst dataUrlToFile = (dataUrl: string): File | null => {\n const matches = dataUrl.match(/^data:(.*?);base64,(.*)$/);\n if (!matches) {\n return null;\n }\n\n const mime = matches[1] || 'application/octet-stream';\n const base64Data = matches[2];\n\n try {\n const binaryString = atob(base64Data);\n const len = binaryString.length;\n const bytes = new Uint8Array(len);\n for (let i = 0; i < len; i += 1) {\n bytes[i] = binaryString.charCodeAt(i);\n }\n\n const extension = mime.split('/')[1] || 'bin';\n const fileName = `quick-message-${Date.now()}.${extension}`;\n return new File([bytes], fileName, { type: mime });\n } catch (error: unknown) {\n console.error('[quick-message-template] Failed to convert data URL to file', error);\n return null;\n }\n};\n\nconst resolveFileUrl = async (value?: string | null): Promise<string | undefined> => {\n const normalized = normalizeQuickMessageTemplateString(value);\n\n if (!normalized) {\n return undefined;\n }\n\n if (isHttpUrl(normalized)) {\n return normalized;\n }\n\n if (isDataUrl(normalized)) {\n const file = dataUrlToFile(normalized);\n if (!file) {\n return normalized;\n }\n\n try {\n const uploadedUrl = await uploadFile({\n file,\n filename: file.name.replaceAll(' ', '-'),\n folder: 'zignal/quick-message-template',\n });\n\n return normalizeQuickMessageTemplateString(uploadedUrl) ?? normalized;\n } catch (error: unknown) {\n console.error('[quick-message-template] Failed to upload file for template', error);\n return normalized;\n }\n }\n\n return normalized;\n};\n\ntype QuickMessageTemplateButtonPayload = {\n action_type: QuickMessageTemplateButton['action_type'];\n text: string;\n action?: string;\n};\n\ntype QuickMessageTemplateMenuListPayload = {\n file_url?: string;\n title?: string;\n description?: string;\n buttons?: QuickMessageTemplateButtonPayload[];\n};\n\ntype QuickMessageTemplateContentPayload = {\n type: QuickMessageTemplateContent['type'];\n text?: string;\n file_url?: string;\n buttons?: QuickMessageTemplateButtonPayload[];\n menu_list?: QuickMessageTemplateMenuListPayload[];\n};\n\ntype CreateQuickMessageTemplateRequestBody = {\n title: string;\n contents: QuickMessageTemplateContentPayload[];\n};\n\nconst buildQuickMessageTemplateRequestBody = async (template: Types.CreateQuickMessageTemplateParams): Promise<CreateQuickMessageTemplateRequestBody> => {\n const title = template.title?.trim() ?? '';\n\n const contents = await Promise.all(\n (template.contents ?? []).map(async content => {\n const text = normalizeQuickMessageTemplateString(content.text);\n const fileUrl = await resolveFileUrl(content.file_url);\n\n const buttons = (content.buttons ?? [])\n .map<QuickMessageTemplateButtonPayload | null>(button => {\n const buttonText = normalizeQuickMessageTemplateString(button.text);\n if (!buttonText) {\n return null;\n }\n\n const payload: QuickMessageTemplateButtonPayload = {\n action_type: button.action_type,\n text: buttonText,\n };\n\n const action = normalizeQuickMessageTemplateString(button.action);\n if (action) {\n payload.action = action;\n }\n\n return payload;\n })\n .filter((button): button is QuickMessageTemplateButtonPayload => Boolean(button));\n\n const menuListRaw = await Promise.all(\n (content.menu_list ?? []).map(async menu => {\n const fileUrlMenu = await resolveFileUrl(menu.file_url);\n const titleMenu = normalizeQuickMessageTemplateString(menu.title);\n const descriptionMenu = normalizeQuickMessageTemplateString(menu.description);\n\n const menuButtons = (menu.buttons ?? [])\n .map<QuickMessageTemplateButtonPayload | null>(button => {\n const buttonText = normalizeQuickMessageTemplateString(button.text);\n if (!buttonText) {\n return null;\n }\n\n const payload: QuickMessageTemplateButtonPayload = {\n action_type: button.action_type,\n text: buttonText,\n };\n\n const action = normalizeQuickMessageTemplateString(button.action);\n if (action) {\n payload.action = action;\n }\n\n return payload;\n })\n .filter((button): button is QuickMessageTemplateButtonPayload => Boolean(button));\n\n if (!fileUrlMenu && !titleMenu && !descriptionMenu && menuButtons.length === 0) {\n return null;\n }\n\n const payload: QuickMessageTemplateMenuListPayload = {};\n\n if (fileUrlMenu) {\n payload.file_url = fileUrlMenu;\n }\n if (titleMenu) {\n payload.title = titleMenu;\n }\n if (descriptionMenu) {\n payload.description = descriptionMenu;\n }\n if (menuButtons.length > 0) {\n payload.buttons = menuButtons;\n }\n\n return payload;\n }),\n );\n\n const menuList = menuListRaw.filter((menu): menu is QuickMessageTemplateMenuListPayload => Boolean(menu));\n\n if (!text && !fileUrl && buttons.length === 0 && menuList.length === 0) {\n return null;\n }\n\n const payload: QuickMessageTemplateContentPayload = {\n type: content.type,\n };\n\n if (text) {\n payload.text = text;\n }\n if (fileUrl) {\n payload.file_url = fileUrl;\n }\n if (buttons.length > 0) {\n payload.buttons = buttons;\n }\n if (menuList.length > 0) {\n payload.menu_list = menuList;\n }\n\n return payload;\n }),\n );\n\n const filteredContents = contents.filter((content): content is QuickMessageTemplateContentPayload => Boolean(content));\n\n return {\n title,\n contents: filteredContents,\n };\n};\n\nconst normalizeLibraryFilesResponse = (data: unknown): Types.CreateQuickMessageLibraryFileResponse => {\n if (Array.isArray(data)) {\n return data as Types.CreateQuickMessageLibraryFileResponse;\n }\n\n if (data && typeof data === 'object' && Array.isArray((data as { files?: unknown }).files)) {\n return (data as { files: Types.CreateQuickMessageLibraryFileResponse }).files;\n }\n\n return [];\n};\n\nexport const getQuickMessageTemplates = async (params: Types.GetQuickMessageTemplatesParams = {}) => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n\n if (!businessId || !shopId) {\n throw new Error('[quick-message] Missing businessId or shopId');\n }\n\n const { page = 1, limit = 20, search } = params;\n const requestParams: Record<string, string | number | undefined> = {\n page,\n limit,\n search: search?.trim() ? search.trim() : undefined,\n };\n\n const { data, status } = await apiService().get<Types.GetQuickMessageTemplatesResponse>(`api/${businessId}/${shopId}/quick-message-template`, {\n params: requestParams,\n });\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to getQuickMessageTemplates');\n};\n\nexport const createQuickMessageTemplate = async (template: Types.CreateQuickMessageTemplateParams) => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n\n if (!businessId || !shopId) {\n throw new Error('[quick-message] Missing businessId or shopId');\n }\n\n const payload = await buildQuickMessageTemplateRequestBody(template);\n\n const { data, status } = await apiService().post<Types.CreateQuickMessageTemplateResponse>(`api/${businessId}/${shopId}/quick-message-template`, payload);\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to createQuickMessageTemplate');\n};\n\nexport const updateQuickMessageTemplate = async (template: Types.CreateQuickMessageTemplateParams) => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n\n if (!businessId || !shopId) {\n throw new Error('[quick-message] Missing businessId or shopId');\n }\n\n if (!template.id) {\n throw new Error('[quick-message] Missing template id');\n }\n\n const payload = await buildQuickMessageTemplateRequestBody(template);\n\n const { data, status } = await apiService().patch<Types.CreateQuickMessageTemplateResponse>(`api/${businessId}/${shopId}/quick-message-template/${template.id}`, payload);\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to updateQuickMessageTemplate');\n};\n\nexport const deleteQuickMessageTemplate = async (templateId: string) => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n\n if (!businessId || !shopId) {\n throw new Error('[quick-message] Missing businessId or shopId');\n }\n\n if (!templateId) {\n throw new Error('[quick-message] Missing template id');\n }\n\n const { data, status } = await apiService().delete<Types.BaseResponse>(`api/${businessId}/${shopId}/quick-message-template/${templateId}`);\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to deleteQuickMessageTemplate');\n};\n\nexport const createQuickMessageLibraryFiles = async (params: Types.CreateQuickMessageLibraryFileParams) => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n\n if (!businessId || !shopId) {\n throw new Error('[quick-message] Missing businessId or shopId');\n }\n\n const files = params.files ?? [];\n\n if (files.length === 0) {\n return [];\n }\n\n const requestPayload = {\n files: files.map(file => ({\n file_type: file.file_type,\n name: file.name.trim(),\n url: file.url.trim(),\n size: file.size,\n })),\n };\n\n const { data, status } = await apiService().post<Types.CreateQuickMessageLibraryFileResponse | { files: Types.CreateQuickMessageLibraryFileResponse }>(\n `api/${businessId}/${shopId}/quick-message-library-file`,\n requestPayload,\n );\n\n if (status === 200) {\n return normalizeLibraryFilesResponse(data);\n }\n\n throw new Error('Failed to createQuickMessageLibraryFiles');\n};\n\nexport const deleteQuickMessageLibraryFile = async (params: Types.DeleteQuickMessageLibraryFileParams) => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n\n if (!businessId || !shopId) {\n throw new Error('[quick-message] Missing businessId or shopId');\n }\n\n const normalizedIds = Array.from(new Set((params.ids ?? []).map(id => (typeof id === 'string' ? id.trim() : '')).filter(id => id.length > 0)));\n\n if (normalizedIds.length === 0) {\n throw new Error('[quick-message] Missing file ids to delete');\n }\n\n const { data, status } = await apiService().delete<Types.DeleteQuickMessageLibraryFileResponse>(`api/${businessId}/${shopId}/quick-message-library-file`, {\n data: {\n file_ids: normalizedIds,\n },\n });\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to deleteQuickMessageLibraryFile');\n};\n\nexport const updateQuickMessageLibraryFileName = async (params: Types.UpdateQuickMessageLibraryFileNameParams) => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n\n if (!businessId || !shopId) {\n throw new Error('[quick-message] Missing businessId or shopId');\n }\n\n const trimmedId = params.id.trim();\n const trimmedName = params.name.trim();\n\n if (!trimmedId) {\n throw new Error('[quick-message] Missing file id to update');\n }\n\n if (!trimmedName) {\n throw new Error('[quick-message] Missing file name to update');\n }\n\n const { data, status } = await apiService().patch<Types.UpdateQuickMessageLibraryFileNameResponse>(`api/${businessId}/${shopId}/quick-message-library-file/${trimmedId}`, {\n name: trimmedName,\n });\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to updateQuickMessageLibraryFileName');\n};\n\nexport const getQuickMessageLibraryFiles = async (params: Types.GetQuickMessageLibraryFilesParams = {}) => {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n\n if (!businessId || !shopId) {\n throw new Error('[quick-message] Missing businessId or shopId');\n }\n\n const { page = 1, limit = 20, search, fileType } = params;\n const requestParams: Record<string, string | number | undefined> = {\n page,\n limit,\n search: search?.trim() ? search.trim() : undefined,\n file_type: fileType,\n };\n\n const { data, status } = await apiService().get<Types.GetQuickMessageLibraryFilesResponse>(`api/${businessId}/${shopId}/quick-message-library-file`, {\n params: requestParams,\n });\n\n if (status === 200) {\n return data;\n }\n\n throw new Error('Failed to getQuickMessageLibraryFiles');\n};\n"],"version":3}
|