zignal-stencil-library 1.1.196 → 1.1.197
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/autocomplete-address_45.cjs.entry.js +47 -47
- package/dist/cjs/create-master-data-dialog_2.cjs.entry.js +6 -6
- package/dist/cjs/{icon-svg-DrwTEcWs.js → icon-svg-BmTU9CPx.js} +4 -4
- package/dist/cjs/{icon-svg-DrwTEcWs.js.map → icon-svg-BmTU9CPx.js.map} +1 -1
- package/dist/cjs/{index-WaqydP_w.js → index-BuXc5iFV.js} +4 -4
- package/dist/cjs/{index-WaqydP_w.js.map → index-BuXc5iFV.js.map} +1 -1
- package/dist/cjs/{index-DPhBM48K.js → index-REEdj4HR.js} +49 -8
- package/dist/cjs/index-REEdj4HR.js.map +1 -0
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/master-status-app.cjs.entry.js +5 -5
- package/dist/cjs/master-tag-app.cjs.entry.js +5 -5
- 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/{store-dZyyLnWf.js → store-ugl6HU9h.js} +3 -3
- package/dist/cjs/{store-dZyyLnWf.js.map → store-ugl6HU9h.js.map} +1 -1
- package/dist/cjs/{z-input-C-0O3vNd.js → z-input-DqCc5nh2.js} +4 -4
- package/dist/cjs/{z-input-C-0O3vNd.js.map → z-input-DqCc5nh2.js.map} +1 -1
- package/dist/cjs/zignal-stencil-library.cjs.js +2 -2
- package/dist/collection/components/autocomplete-address/autocomplete-address.css +1 -1
- package/dist/collection/components/autocomplete-address/autocomplete-address.js +2 -2
- package/dist/collection/components/autocomplete-address/autocomplete-address.js.map +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-app/chat-app.js +1 -0
- package/dist/collection/components/chat-app/chat-app.js.map +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/create-master-data-dialog/create-master-data-dialog.css +1 -1
- package/dist/collection/components/dialog-bill-editor/dialog-bill-editor.css +1 -1
- package/dist/collection/components/dialog-custom-filter/dialog-custom-filter.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/master-data-item/master-data-item.css +1 -1
- package/dist/collection/components/master-status-app/master-status-app.css +1 -1
- package/dist/collection/components/master-tag-app/master-tag-app.css +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/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-media/message-media.css +1 -1
- package/dist/collection/components/profile-history/profile-history.css +1 -1
- package/dist/collection/components/profile-info/profile-info.css +1 -1
- package/dist/collection/components/profile-media/profile-media.css +1 -1
- package/dist/collection/components/profile-tabs/profile-tabs.css +1 -1
- package/dist/collection/components/quick-message-add-template/quick-message-add-template.css +1 -1
- package/dist/collection/components/quick-message-app/quick-message-app.css +1 -1
- package/dist/collection/components/quick-message-file/quick-message-file.css +1 -1
- package/dist/collection/components/quick-message-image/quick-message-image.css +1 -1
- package/dist/collection/components/quick-message-modal/quick-message-modal.css +1 -1
- package/dist/collection/components/quick-message-template/quick-message-template.css +1 -1
- package/dist/collection/components/search-box/search-box.css +1 -1
- package/dist/collection/components/status-badge/status-badge.css +1 -1
- package/dist/collection/components/tag-list/tag-list.css +1 -1
- package/dist/collection/components/tag-or-status-item/tag-or-status-item.css +1 -1
- package/dist/collection/components/tag-popper/tag-popper.css +1 -1
- package/dist/collection/components/typography-clamp/typography-clamp.css +1 -1
- package/dist/collection/components/z-avatar/z-avatar.css +1 -1
- package/dist/collection/components/z-dialog/z-dialog.css +1 -1
- package/dist/collection/components/z-tooltip/z-tooltip.css +1 -1
- package/dist/components/autocomplete-address2.js +3 -3
- package/dist/components/autocomplete-address2.js.map +1 -1
- package/dist/components/autocomplete-multiple-select2.js +1 -1
- package/dist/components/autocomplete-multiple-select2.js.map +1 -1
- package/dist/components/autocomplete-select2.js +1 -1
- package/dist/components/autocomplete-select2.js.map +1 -1
- package/dist/components/channel-box2.js +1 -1
- package/dist/components/channel-box2.js.map +1 -1
- package/dist/components/chat-app.js +3 -2
- package/dist/components/chat-app.js.map +1 -1
- package/dist/components/chat-header2.js +1 -1
- package/dist/components/chat-header2.js.map +1 -1
- package/dist/components/chat-input2.js +1 -1
- package/dist/components/chat-input2.js.map +1 -1
- package/dist/components/checkbox-list2.js +1 -1
- package/dist/components/checkbox-list2.js.map +1 -1
- package/dist/components/create-master-data-dialog2.js +1 -1
- package/dist/components/dialog-bill-editor2.js +1 -1
- package/dist/components/dialog-bill-editor2.js.map +1 -1
- package/dist/components/dialog-custom-filter2.js +1 -1
- package/dist/components/dialog-custom-filter2.js.map +1 -1
- package/dist/components/dialog-editor2.js +1 -1
- package/dist/components/dialog-editor2.js.map +1 -1
- package/dist/components/dialog-preview-media2.js +1 -1
- package/dist/components/dialog-preview-media2.js.map +1 -1
- package/dist/components/dialog-search2.js +1 -1
- package/dist/components/dialog-search2.js.map +1 -1
- package/dist/components/index2.js +48 -7
- package/dist/components/index2.js.map +1 -1
- package/dist/components/master-data-item2.js +1 -1
- package/dist/components/master-status-app.js +1 -1
- package/dist/components/master-tag-app.js +1 -1
- package/dist/components/menu-chat-channel2.js +1 -1
- package/dist/components/menu-chat-channel2.js.map +1 -1
- package/dist/components/menu-chat-type2.js +1 -1
- package/dist/components/menu-chat-type2.js.map +1 -1
- package/dist/components/menu-list2.js +1 -1
- package/dist/components/menu-list2.js.map +1 -1
- package/dist/components/message-box2.js +1 -1
- package/dist/components/message-box2.js.map +1 -1
- package/dist/components/message-content2.js +1 -1
- package/dist/components/message-content2.js.map +1 -1
- package/dist/components/message-item2.js +1 -1
- package/dist/components/message-item2.js.map +1 -1
- package/dist/components/message-media2.js +1 -1
- package/dist/components/message-media2.js.map +1 -1
- package/dist/components/profile-history2.js +1 -1
- package/dist/components/profile-history2.js.map +1 -1
- package/dist/components/profile-info2.js +1 -1
- package/dist/components/profile-info2.js.map +1 -1
- package/dist/components/profile-media2.js +1 -1
- package/dist/components/profile-media2.js.map +1 -1
- package/dist/components/profile-tabs2.js +1 -1
- package/dist/components/profile-tabs2.js.map +1 -1
- package/dist/components/quick-message-add-template2.js +1 -1
- package/dist/components/quick-message-add-template2.js.map +1 -1
- package/dist/components/quick-message-app.js +1 -1
- package/dist/components/quick-message-app.js.map +1 -1
- package/dist/components/quick-message-file2.js +1 -1
- package/dist/components/quick-message-file2.js.map +1 -1
- package/dist/components/quick-message-image2.js +1 -1
- package/dist/components/quick-message-image2.js.map +1 -1
- package/dist/components/quick-message-modal2.js +1 -1
- package/dist/components/quick-message-modal2.js.map +1 -1
- package/dist/components/quick-message-template2.js +1 -1
- package/dist/components/quick-message-template2.js.map +1 -1
- package/dist/components/search-box2.js +1 -1
- package/dist/components/search-box2.js.map +1 -1
- package/dist/components/status-badge2.js +1 -1
- package/dist/components/status-badge2.js.map +1 -1
- package/dist/components/summarize-message-section2.js +1 -1
- package/dist/components/summarize-message-section2.js.map +1 -1
- package/dist/components/tag-list2.js +1 -1
- package/dist/components/tag-list2.js.map +1 -1
- package/dist/components/tag-or-status-item2.js +1 -1
- package/dist/components/tag-or-status-item2.js.map +1 -1
- package/dist/components/tag-popper2.js +1 -1
- package/dist/components/tag-popper2.js.map +1 -1
- package/dist/components/typography-clamp2.js +1 -1
- package/dist/components/typography-clamp2.js.map +1 -1
- package/dist/components/user-info-section2.js +1 -1
- package/dist/components/user-info-section2.js.map +1 -1
- package/dist/components/z-avatar2.js +1 -1
- package/dist/components/z-avatar2.js.map +1 -1
- package/dist/components/z-dialog2.js +1 -1
- package/dist/components/z-dialog2.js.map +1 -1
- package/dist/components/z-tooltip2.js +1 -1
- package/dist/components/z-tooltip2.js.map +1 -1
- package/dist/esm/autocomplete-address_45.entry.js +47 -47
- package/dist/esm/create-master-data-dialog_2.entry.js +6 -6
- package/dist/{zignal-stencil-library/icon-svg-D46sQeCq.js → esm/icon-svg-B4mPSJrF.js} +4 -4
- package/dist/esm/{icon-svg-D46sQeCq.js.map → icon-svg-B4mPSJrF.js.map} +1 -1
- package/dist/esm/{index-CGxyaXAw.js → index-D5teAbfw.js} +4 -4
- package/dist/esm/{index-CGxyaXAw.js.map → index-D5teAbfw.js.map} +1 -1
- package/dist/esm/{index-NR-FjQmT.js → index-DrJU7-bz.js} +49 -8
- package/dist/esm/index-DrJU7-bz.js.map +1 -0
- package/dist/esm/loader.js +3 -3
- package/dist/esm/master-status-app.entry.js +5 -5
- package/dist/esm/master-tag-app.entry.js +5 -5
- package/dist/esm/quick-message-app.entry.js +3 -3
- package/dist/esm/quick-message-app.entry.js.map +1 -1
- package/dist/{zignal-stencil-library/store-yUM2Y3GN.js → esm/store-DmdXE1Wh.js} +3 -3
- package/dist/{zignal-stencil-library/store-yUM2Y3GN.js.map → esm/store-DmdXE1Wh.js.map} +1 -1
- package/dist/esm/{z-input-CpnrmPm8.js → z-input-Dzf4lnZC.js} +4 -4
- package/dist/{zignal-stencil-library/z-input-CpnrmPm8.js.map → esm/z-input-Dzf4lnZC.js.map} +1 -1
- package/dist/esm/zignal-stencil-library.js +3 -3
- package/dist/zignal-stencil-library/autocomplete-address_45.entry.js +47 -47
- package/dist/zignal-stencil-library/create-master-data-dialog_2.entry.js +6 -6
- package/dist/{esm/icon-svg-D46sQeCq.js → zignal-stencil-library/icon-svg-B4mPSJrF.js} +4 -4
- package/dist/zignal-stencil-library/{icon-svg-D46sQeCq.js.map → icon-svg-B4mPSJrF.js.map} +1 -1
- package/dist/zignal-stencil-library/{index-CGxyaXAw.js → index-D5teAbfw.js} +4 -4
- package/dist/zignal-stencil-library/{index-CGxyaXAw.js.map → index-D5teAbfw.js.map} +1 -1
- package/dist/zignal-stencil-library/{index-NR-FjQmT.js → index-DrJU7-bz.js} +49 -8
- package/dist/zignal-stencil-library/index-DrJU7-bz.js.map +1 -0
- package/dist/zignal-stencil-library/master-status-app.entry.js +5 -5
- package/dist/zignal-stencil-library/master-tag-app.entry.js +5 -5
- package/dist/zignal-stencil-library/quick-message-app.entry.esm.js.map +1 -1
- package/dist/zignal-stencil-library/quick-message-app.entry.js +3 -3
- package/dist/{esm/store-yUM2Y3GN.js → zignal-stencil-library/store-DmdXE1Wh.js} +3 -3
- package/dist/{esm/store-yUM2Y3GN.js.map → zignal-stencil-library/store-DmdXE1Wh.js.map} +1 -1
- package/dist/zignal-stencil-library/{z-input-CpnrmPm8.js → z-input-Dzf4lnZC.js} +4 -4
- package/dist/{esm/z-input-CpnrmPm8.js.map → zignal-stencil-library/z-input-Dzf4lnZC.js.map} +1 -1
- package/dist/zignal-stencil-library/zignal-stencil-library.esm.js +3 -3
- package/package.json +1 -1
- package/dist/cjs/index-DPhBM48K.js.map +0 -1
- package/dist/esm/index-NR-FjQmT.js.map +0 -1
- package/dist/zignal-stencil-library/index-NR-FjQmT.js.map +0 -1
|
@@ -13,7 +13,7 @@ import { d as defineCustomElement$3 } from './quick-message-menu-list-content2.j
|
|
|
13
13
|
import { d as defineCustomElement$2 } from './quick-message-text-content2.js';
|
|
14
14
|
import { d as defineCustomElement$1 } from './quick-message-video-content2.js';
|
|
15
15
|
|
|
16
|
-
const quickMessageTemplateCss = "@layer base{*,::backdrop,:after,:before{--tw-space-y-reverse:0;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-alpha:100%;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-offset-width:0;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-space-x-reverse:0;--tw-drop-shadow-alpha:100%;border:0 solid;box-sizing:border-box;margin:0;padding:0}}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-space-x-reverse:0;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-space-y-reverse:0;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0}}}@layer theme{:host,:root{--text-xl:1.25rem;--text-xl--line-height:1.4;--color-yellow-500:oklch(79.5% .184 86.047);--container-xl:36rem;--container-3xs:16rem;--container-sm:24rem;--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-gray-600:oklch(44.6% .03 256.802);--color-red-700:oklch(50.5% .213 27.518);--color-green-500:oklch(72.3% .219 149.579);--color-green-700:oklch(52.7% .154 150.069);--color-blue-500:oklch(62.3% .214 259.815);--color-pink-100:oklch(94.8% .028 342.258);--color-gray-400:oklch(70.7% .022 261.325);--font-weight-bold:700;--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace;--color-red-500:oklch(63.7% .237 25.331);--color-blue-600:oklch(54.6% .245 262.881);--color-slate-500:oklch(55.4% .046 257.417);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-500:oklch(55.1% .027 264.364);--color-black:#000;--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:1.33333;--text-sm:.875rem;--text-sm--line-height:1.42857;--text-base:1rem;--text-base--line-height:1.5;--text-lg:1.125rem;--text-lg--line-height:1.55556;--font-weight-medium:500;--font-weight-semibold:600;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:\"Kanit\",var(--default-font);--default-mono-font-family:var(--font-mono);--default-font:ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--color-primary:#e02848;--color-secondary:#023761;--color-background:#fff;--color-surface:#000;--color-paper:#f3f4f6;--color-divider:#e5e7eb;--color-theme-gray:#6b7280;--color-overlay:#0000004d;--color-selected:#fdeef1}}@layer base{::file-selector-button{appearance:button;background-color:#0000;border:0 solid;border-radius:0;box-sizing:border-box;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;margin:0;margin-inline-end:4px;opacity:1;padding:0}:host,html{-webkit-text-size-adjust:100%;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);tab-size:4;-webkit-tap-highlight-color:transparent;line-height:1.5}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-size:1em;font-variation-settings:var(--default-mono-font-variation-settings,normal)}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}button,input,optgroup,select,textarea{background-color:#0000;border-radius:0;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;opacity:1}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;min-height:1.5em;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0;padding-bottom:0;padding-top:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0;padding-bottom:0;padding-top:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0;padding-bottom:0;padding-top:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0;padding-bottom:0;padding-top:0}::-webkit-datetime-edit-meridiem-field{padding-block:0;padding-bottom:0;padding-top:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}[multiple],[type=date],[type=datetime-local],[type=email],[type=month],[type=number],[type=password],[type=search],[type=tel],[type=text],[type=time],[type=url],[type=week],input:where(:not([type])),select,textarea{appearance:none;--tw-shadow:0 0 #0000;background-color:#fff;border-color:oklch(55.1% .027 264.364);border-radius:0;border-width:1px;font-size:1rem;line-height:1.5rem;padding:.5rem .75rem}:is([type=text],input:where(:not([type])),[type=email],[type=url],[type=password],[type=number],[type=date],[type=datetime-local],[type=month],[type=search],[type=tel],[type=time],[type=week],[multiple],textarea,select):focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:oklch(54.6% .245 262.881);--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color);border-color:oklch(54.6% .245 262.881);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline:2px solid #0000}input::placeholder,textarea::placeholder{color:oklch(55.1% .027 264.364);opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}select{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='oklch(55.1%25 0.027 264.364)' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E\");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem;print-color-adjust:exact}[multiple],[size]:where(select:not([size=\"1\"])){background-image:none;background-position:0 0;background-repeat:unset;background-size:initial;padding-right:.75rem;print-color-adjust:unset}[type=checkbox],[type=radio]{appearance:none;color:oklch(54.6% .245 262.881);print-color-adjust:exact;-webkit-user-select:none;user-select:none;vertical-align:middle;--tw-shadow:0 0 #0000;background-color:#fff;background-origin:border-box;border-color:oklch(55.1% .027 264.364);border-width:1px;display:inline-block;flex-shrink:0;height:1rem;padding:0;width:1rem}[type=checkbox]{border-radius:0}[type=radio]{border-radius:100%}[type=checkbox]:focus,[type=radio]:focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:2px;--tw-ring-offset-color:#fff;--tw-ring-color:oklch(54.6% .245 262.881);--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline:2px solid #0000}[type=checkbox]:checked,[type=radio]:checked{background-color:currentColor;background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:#0000}[type=checkbox]:checked{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 16 16'%3E%3Cpath d='M12.207 4.793a1 1 0 0 1 0 1.414l-5 5a1 1 0 0 1-1.414 0l-2-2a1 1 0 0 1 1.414-1.414L6.5 9.086l4.293-4.293a1 1 0 0 1 1.414 0'/%3E%3C/svg%3E\")}[type=radio]:checked{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='3'/%3E%3C/svg%3E\")}[type=checkbox]:checked:focus,[type=checkbox]:checked:hover,[type=radio]:checked:focus,[type=radio]:checked:hover{background-color:currentColor;border-color:#0000}[type=checkbox]:indeterminate{background-color:currentColor;background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3E%3Cpath stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3E%3C/svg%3E\");background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:#0000}[type=checkbox]:indeterminate:focus,[type=checkbox]:indeterminate:hover{background-color:currentColor;border-color:#0000}[type=file]{background:unset;border-color:inherit;border-radius:0;border-width:0;font-size:unset;line-height:inherit;padding:0}[type=file]:focus{outline:1px solid buttontext;outline:1px auto -webkit-focus-ring-color}}@layer components{.dialog-backdrop{align-items:center;background-color:#0006;display:flex;inset:calc(var(--spacing)*0);justify-content:center;position:fixed;z-index:50}@supports (color:color-mix(in lab,red,red)){.dialog-backdrop{background-color:color-mix(in oklab,var(--color-black)40%,transparent);background-color:color-mix(in srgb,#00040%,transparent)}}.chat-item{border-radius:var(--radius-xl);cursor:pointer;margin-block:calc(var(--spacing)*1);margin-inline:calc(var(--spacing)*2);padding-block:calc(var(--spacing)*3);padding-inline:calc(var(--spacing)*4);--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);align-items:flex-start;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);display:flex;position:relative}:where(.chat-item>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-end:calc(var(--spacing)*4*(1 - var(--tw-space-x-reverse)));margin-inline-start:calc(var(--spacing)*4*var(--tw-space-x-reverse))}.chat-item .chat-item-pin{position:absolute;right:calc(var(--spacing)*-3);top:calc(var(--spacing)*1)}.chat-item .chat-item-pin-icon{fill:currentColor;height:calc(var(--spacing)*3);rotate:45deg;width:calc(var(--spacing)*3)}.chat-item .chat-item-content-container{display:flex;flex-direction:row;width:100%}:where(.chat-item .chat-item-content-container>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-end:calc(var(--spacing)*4*(1 - var(--tw-space-x-reverse)));margin-inline-start:calc(var(--spacing)*4*var(--tw-space-x-reverse))}.chat-item .chat-item-avatar-wrapper{align-self:center;flex-shrink:0;position:relative}.chat-item .chat-item-avatar-badge{bottom:calc(var(--spacing)*-.5);position:absolute;right:calc(var(--spacing)*-.5)}.chat-item .chat-item-content-wrapper{min-height:calc(var(--spacing)*18);width:100%}.chat-item .chat-item-content-main{align-items:center;display:flex}:where(.chat-item .chat-item-content-main>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-end:calc(var(--spacing)*1*(1 - var(--tw-space-x-reverse)));margin-inline-start:calc(var(--spacing)*1*var(--tw-space-x-reverse))}.chat-item .chat-item-content-main-image{border-radius:3.40282e+38px;height:calc(var(--spacing)*4);width:calc(var(--spacing)*4)}.chat-item .chat-item-content-main-name{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.chat-item .chat-item-content-main-name,.chat-item .chat-item-content-main-time{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.chat-item .chat-item-content-main-time{color:var(--color-gray-500);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));margin-left:auto}.chat-item .chat-item-content-secondary{align-items:flex-start;display:flex;flex-direction:row;width:100%}.chat-item .chat-item-content-secondary-nickname{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.chat-item .chat-item-content-secondary-message,.chat-item .chat-item-content-secondary-nickname{color:var(--color-surface);-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.chat-item .chat-item-content-secondary-message{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.chat-item .chat-item-content-unread{background-color:var(--color-primary);border-radius:3.40282e+38px;color:var(--color-white);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));margin-left:auto}.chat-item .chat-item-content-unread-mark{display:inline-block;height:calc(var(--spacing)*2.5);width:calc(var(--spacing)*2.5)}.chat-item .chat-item-content-unread-count{padding-block:calc(var(--spacing)*.5);padding-inline:calc(var(--spacing)*2)}.z-icon-button{cursor:pointer;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-medium);align-items:center;border-radius:3.40282e+38px;display:inline-flex;font-weight:var(--font-weight-medium);justify-content:center;transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.z-icon-button:focus{--tw-outline-style:none;outline-style:none}.z-icon-button-primary{background-color:var(--color-primary);color:var(--color-white)}.z-icon-button-outlined{border-color:var(--color-primary);border-style:var(--tw-border-style);border-width:1px}.z-icon-button-outlined,.z-icon-button-text{color:var(--color-primary)}.z-icon-button-disabled{cursor:not-allowed;opacity:.5}.z-button{cursor:pointer;--tw-font-weight:var(--font-weight-medium);align-items:center;border-radius:3.40282e+38px;display:inline-flex;font-weight:var(--font-weight-medium);justify-content:center;transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.z-button:focus{--tw-outline-style:none;outline-style:none}.z-button-small{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));padding-block:calc(var(--spacing)*1.5);padding-inline:calc(var(--spacing)*2)}.z-button-medium{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));padding-block:calc(var(--spacing)*2);padding-inline:calc(var(--spacing)*3)}.z-button-large{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height));padding-block:calc(var(--spacing)*3);padding-inline:calc(var(--spacing)*4)}.z-button-primary{background-color:var(--color-primary);color:var(--color-white)}.z-button-outlined{border-color:var(--color-primary);border-style:var(--tw-border-style);border-width:1px;color:var(--color-primary)}.z-button-disabled{cursor:not-allowed;opacity:.5}.z-button-text{margin-inline:calc(var(--spacing)*2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.z-input-area-label{margin-bottom:calc(var(--spacing)*1);--tw-font-weight:var(--font-weight-medium);display:block;font-weight:var(--font-weight-medium)}.z-input-area-input,.z-input-area-label{color:var(--color-surface);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.z-input-area-input{background-color:var(--color-paper);border-color:var(--color-surface);border-radius:var(--radius-lg);border-style:var(--tw-border-style);padding-block:calc(var(--spacing)*2);padding-inline:calc(var(--spacing)*4);--tw-ring-color:var(--color-primary);border-width:1px;width:100%}.z-input-area-input:focus{border-color:var(--color-primary);--tw-outline-style:none;outline-style:none}.z-input-area-error{color:var(--color-red-500);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));margin-top:calc(var(--spacing)*1)}.z-input-label{margin-bottom:calc(var(--spacing)*1);--tw-font-weight:var(--font-weight-medium);display:block;font-weight:var(--font-weight-medium)}.z-input,.z-input-label{color:var(--color-surface);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.z-input{background-color:var(--color-background);border-color:var(--color-divider);border-radius:var(--radius-md);border-style:var(--tw-border-style);padding-block:calc(var(--spacing)*2);padding-inline:calc(var(--spacing)*4);--tw-ring-color:var(--color-primary);border-width:1px;width:100%}.z-input:focus{border-color:var(--color-primary);--tw-outline-style:none;outline-style:none}.z-input-error{color:var(--color-red-500);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));margin-top:calc(var(--spacing)*1)}.z-select-input-label{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));margin-bottom:calc(var(--spacing)*1);--tw-font-weight:var(--font-weight-medium);display:block;font-weight:var(--font-weight-medium)}.z-tag-or-status-item{align-items:center;border-radius:var(--radius-2xl);gap:calc(var(--spacing)*2);padding-block:calc(var(--spacing)*1.5);padding-inline:calc(var(--spacing)*3);--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);display:inline-flex}.z-tag-or-status-item .z-tag-or-status-item-name{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));max-width:calc(var(--spacing)*20)}.z-tag-or-status-item .z-tag-or-status-item-icon{border-radius:3.40282e+38px;height:calc(var(--spacing)*4);width:calc(var(--spacing)*4)}.z-context-input{align-items:stretch;display:flex;flex-direction:row;margin-block:calc(var(--spacing)*1)}.z-context-input-key{background-color:var(--color-background);border-bottom-left-radius:var(--radius-3xl);border-color:var(--color-divider);border-style:var(--tw-border-style);border-top-left-radius:var(--radius-3xl);border-width:1px;color:var(--color-surface);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));max-height:6.4rem;min-height:2.4rem;padding-block:calc(var(--spacing)*2);padding-inline:calc(var(--spacing)*4);resize:none;width:100%;--tw-ring-color:var(--color-primary);flex:1}.z-context-input-key:focus{border-color:var(--color-primary);--tw-outline-style:none;outline-style:none}.z-context-input-value{background-color:var(--color-background);border-bottom-right-radius:var(--radius-3xl);border-color:var(--color-primary);border-style:var(--tw-border-style);border-top-right-radius:var(--radius-3xl);border-width:1px;color:var(--color-surface);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));max-height:6.4rem;min-height:2.4rem;padding-block:calc(var(--spacing)*2);padding-inline:calc(var(--spacing)*4);resize:none;width:100%;--tw-ring-color:var(--color-primary);flex:1}.z-context-input-value:focus{border-color:var(--color-primary);--tw-outline-style:none;outline-style:none}.z-text-with-link{color:var(--color-blue-600);text-decoration-line:underline}.z-button-group{display:inline-flex}.z-button-group-tab{border-radius:var(--radius-md);display:flex;gap:calc(var(--spacing)*1);padding:calc(var(--spacing)*.5)!important}.z-button-group-tab-overlay{background-color:var(--color-overlay)}.z-button-group-item{border-style:var(--tw-border-style);cursor:pointer;--tw-font-weight:var(--font-weight-medium);align-items:center;border-width:1px;display:inline-flex;font-weight:var(--font-weight-medium);justify-content:center;transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.z-button-group-item:focus{--tw-outline-style:none;outline-style:none}.z-button-group-item-tab{align-items:center;border-radius:var(--radius-sm);border-style:var(--tw-border-style)!important;border-width:0!important;display:flex;flex:1;flex-direction:column;gap:calc(var(--spacing)*2);justify-content:center;padding:calc(var(--spacing)*1)!important}.z-button-group-item-tab-selected{background-color:var(--color-white);--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.z-button-group-item-tab-selected,.z-button-group-item-tab-unselected{border-style:var(--tw-border-style)!important;border-width:0!important}.z-button-group-small{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));padding-block:calc(var(--spacing)*1.5);padding-inline:calc(var(--spacing)*2)}.z-button-group-medium{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));padding-block:calc(var(--spacing)*2);padding-inline:calc(var(--spacing)*3)}.z-button-group-large{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height));padding-block:calc(var(--spacing)*3);padding-inline:calc(var(--spacing)*4)}.z-button-group-item-first{border-bottom-left-radius:3.40282e+38px;border-top-left-radius:3.40282e+38px}.z-button-group-item-last{border-bottom-right-radius:3.40282e+38px;border-top-right-radius:3.40282e+38px}.z-button-group-item-middle{border-radius:0}.z-button-group-item-primary-selected{background-color:var(--color-primary);border-color:var(--color-primary);color:var(--color-white)}.z-button-group-item-primary-unselected{background-color:var(--color-white);border-color:var(--color-primary);color:var(--color-primary)}.z-button-group-item-outlined-selected{background-color:var(--color-primary);border-color:var(--color-primary);color:var(--color-white)}.z-button-group-item-outlined-unselected{background-color:#0000;border-color:var(--color-primary);color:var(--color-primary)}.z-button-group-item-disabled{cursor:not-allowed;opacity:.5}.z-button-group-item:not(:first-child){margin-left:-1px}.z-avatar-error{align-items:center;display:flex;justify-content:center}.z-avatar-2x-small{height:calc(var(--spacing)*3);min-height:calc(var(--spacing)*3);min-width:calc(var(--spacing)*3);width:calc(var(--spacing)*3)}.z-avatar-x-small{height:calc(var(--spacing)*4);min-height:calc(var(--spacing)*4);min-width:calc(var(--spacing)*4);width:calc(var(--spacing)*4)}.z-avatar-small{height:calc(var(--spacing)*8);min-height:calc(var(--spacing)*8);min-width:calc(var(--spacing)*8);width:calc(var(--spacing)*8)}.z-avatar-medium{height:calc(var(--spacing)*16);min-height:calc(var(--spacing)*16);min-width:calc(var(--spacing)*16);width:calc(var(--spacing)*16)}.z-avatar-large{height:calc(var(--spacing)*32);min-height:calc(var(--spacing)*32);min-width:calc(var(--spacing)*32);width:calc(var(--spacing)*32)}.z-avatar-full{height:100%;width:100%}.z-avatar-group{background-color:#023761;border-radius:3.40282e+38px}}@layer utilities{.hidden\\!{display:none!important}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}}[data-theme=light]{--color-primary:#e02848;--color-secondary:#023761;--color-background:#fff;--color-surface:#000;--color-paper:#f3f4f6;--color-divider:#e5e7eb;--color-theme-gray:#6b7280;--color-overlay:#0000004d;--color-selected:#fdeef1}[data-theme=dark]{--color-primary:#b50f30;--color-secondary:#fff;--color-background:#23292d;--color-surface:#fff;--color-paper:#374151;--color-divider:#4b5563;--color-theme-gray:#d1d5db;--color-overlay:#ffffff4d;--color-selected:#3a242e}.scroll-container::-webkit-scrollbar{background:#0000001a;height:8px;width:8px}.scroll-container:active::-webkit-scrollbar,.scroll-container:hover::-webkit-scrollbar{background:#0003}.scroll-container:active::-webkit-scrollbar-thumb,.scroll-container:hover::-webkit-scrollbar-thumb{background:#0006;border-radius:4px}.z-zwiz-max-height{height:100vh}.bg-time-badge{background-color:#0000004d}@supports (color:color-mix(in lab,red,red)){.bg-time-badge{background-color:color-mix(in srgb,var(--color-surface)30%,transparent);background-color:color-mix(in srgb,#00030%,transparent)}}.placeholder-surface::placeholder{color:var(--color-text-gray)}.z-width-100{width:100%}.z-width-90{width:90%}.z-width-75{width:75%}.z-width-50{width:50%}.z-width-25{width:25%}.z-width-0{width:0}.z-animate-width{transition-duration:.5s;transition-property:width;transition-timing-function:cubic-bezier(.4,0,.2,1)}.z-animate-grid-template-cols{transition:grid-template-rows .5s}[type=checkbox]{background-color:var(--color-gray-300);border-color:var(--color-gray-300);border-radius:4px;cursor:pointer}[type=checkbox]:checked,[type=checkbox]:indeterminate{background-color:var(--color-primary);border-color:var(--color-primary);border-radius:4px;cursor:pointer}[type=checkbox]:focus{offset:0;outline-offset:0;--tw-ring-color:var(--color-primary);outline:none}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.grid-cols-1{grid-template-columns:1fr}.grid-cols-1_3{grid-template-columns:1fr 3fr}.grid-cols-1_2_1{grid-template-columns:1fr 2fr 1fr}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{.container{width:100%}.cursor-pointer{cursor:pointer}.bg-background{background-color:var(--color-background)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-theme-gray{color:var(--color-theme-gray)}.visible{visibility:visible}.mx-auto{margin-inline:auto}.size-18{height:calc(var(--spacing)*18);width:calc(var(--spacing)*18)}.mb-2{margin-bottom:calc(var(--spacing)*2)}}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-end:calc(var(--spacing)*2*(1 - var(--tw-space-y-reverse)));margin-block-start:calc(var(--spacing)*2*var(--tw-space-y-reverse))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-surface{color:var(--color-surface)}.relative{position:relative}.size-5{height:calc(var(--spacing)*5);width:calc(var(--spacing)*5)}.rotate-45{rotate:45deg}.text-blue-500{color:var(--color-blue-500)}.text-green-500{color:var(--color-green-500)}.text-primary{color:var(--color-primary)}.mt-4{margin-top:calc(var(--spacing)*4)}.mr-2{margin-right:calc(var(--spacing)*2)}.flex{display:flex}.size-4{height:calc(var(--spacing)*4);width:calc(var(--spacing)*4)}.w-full{width:100%}.flex-1{flex:1}.animate-spin{animation:var(--animate-spin)}.items-center{align-items:center}.justify-center{justify-content:center}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-divider{border-color:var(--color-divider)}.bg-primary\\/10{background-color:#e028481a}}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{@supports (color:color-mix(in lab,red,red)){.bg-primary\\/10{background-color:color-mix(in srgb,#e0284810%,transparent);background-color:color-mix(in oklab,var(--color-primary)10%,transparent)}}.px-4{padding-inline:calc(var(--spacing)*4)}.py-2{padding-block:calc(var(--spacing)*2)}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.underline{text-decoration-line:underline}}@keyframes spin{to{transform:rotate(1turn)}}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{.mt-auto{margin-top:auto}.mb-2\\.5{margin-bottom:calc(var(--spacing)*2.5)}.mb-auto{margin-bottom:auto}.hidden{display:none}.px-1{padding-inline:calc(var(--spacing)*1)}.text-black{color:var(--color-black)}.col-span-2{grid-column:span 2/span 2}.my-2{margin-block:calc(var(--spacing)*2)}.w-xl{width:var(--container-xl)}.w-xs{width:var(--container-xs)}.size-2{height:calc(var(--spacing)*2);width:calc(var(--spacing)*2)}.bg-pink-100{background-color:var(--color-pink-100)}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.-top-12{top:calc(var(--spacing)*-12)}.-top-24{top:calc(var(--spacing)*-24)}.mt-10{margin-top:calc(var(--spacing)*10)}.mb-10{margin-bottom:calc(var(--spacing)*10)}.inline-block{display:inline-block}.p-4{padding:calc(var(--spacing)*4)}.pt-4{padding-top:calc(var(--spacing)*4)}.pb-8{padding-bottom:calc(var(--spacing)*8)}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.ml-1{margin-left:calc(var(--spacing)*1)}.inline-flex{display:inline-flex}.size-1\\.5{height:calc(var(--spacing)*1.5);width:calc(var(--spacing)*1.5)}.h-\\[40px\\]{height:40px}.w-1\\/4{width:25%}.rotate-0{rotate:none}.rotate-180{rotate:180deg}.flex-col{flex-direction:column}.gap-2{gap:calc(var(--spacing)*2)}.fill-current{fill:currentColor}.m-auto{margin:auto}.size-32{height:calc(var(--spacing)*32);width:calc(var(--spacing)*32)}.absolute{position:absolute}.-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-8{height:calc(var(--spacing)*8);width:calc(var(--spacing)*8)}.flex-wrap{flex-wrap:wrap}.justify-end{justify-content:flex-end}.gap-y-1{row-gap:calc(var(--spacing)*1)}.border-b-\\[0\\.5px\\]{border-bottom-style:var(--tw-border-style);border-bottom-width:.5px}.border-primary{border-color:var(--color-primary)}.pt-2{padding-top:calc(var(--spacing)*2)}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.whitespace-nowrap{white-space:nowrap}.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)}.max-w-3xs{max-width:var(--container-3xs)}.max-w-sm{max-width:var(--container-sm)}.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-paper{background-color:var(--color-paper)}.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)}.text-white{color:var(--color-white)}.right-full{right:100%}.-bottom-2{bottom:calc(var(--spacing)*-2)}.left-full{left:100%}.mb-0\\.5{margin-bottom:calc(var(--spacing)*.5)}.ml-2{margin-left:calc(var(--spacing)*2)}.size-6{height:calc(var(--spacing)*6);width:calc(var(--spacing)*6)}.flex-row{flex-direction:row}.justify-start{justify-content:flex-start}.rounded-full{border-radius:3.40282e+38px}.bg-yellow-300{background-color:var(--color-yellow-300)}.pl-10{padding-left:calc(var(--spacing)*10)}.text-left{text-align:left}.text-right{text-align:right}.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)}.py-1\\.5{padding-block:calc(var(--spacing)*1.5)}.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-6{margin-top:calc(var(--spacing)*6)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.contents{display:contents}.grid{display:grid}.aspect-square{aspect-ratio:1}.size-12{height:calc(var(--spacing)*12);width:calc(var(--spacing)*12)}.size-14{height:calc(var(--spacing)*14);width:calc(var(--spacing)*14)}.h-7{height:calc(var(--spacing)*7)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-\\[180px\\]{height:180px}.h-\\[220px\\]{height:220px}.h-\\[280px\\]{height:280px}.h-full{height:100%}.w-7{width:calc(var(--spacing)*7)}.w-8{width:calc(var(--spacing)*8)}.w-9{width:calc(var(--spacing)*9)}.w-\\[200px\\]{width:200px}.w-\\[250px\\]{width:250px}.max-w-full{max-width:100%}.max-w-md{max-width:var(--container-md)}.max-w-xs{max-width:var(--container-xs)}.flex-shrink-0,.shrink-0{flex-shrink:0}.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-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.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-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-primary{background-color:var(--color-primary)}.bg-slate-900\\/40{background-color:#0f172b66}}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities;/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{@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-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-12{padding-block:calc(var(--spacing)*12)}.pr-16{padding-right:calc(var(--spacing)*16)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pl-2{padding-left:calc(var(--spacing)*2)}.text-center{text-align:center}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-\\[13px\\]{font-size:13px}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.text-red-500{color:var(--color-red-500)}.text-slate-700{color:var(--color-slate-700)}.placeholder-surface::placeholder{color:var(--color-surface)}.opacity-0{opacity:0}.opacity-60{opacity:.6}.opacity-80{opacity:.8}.shadow,.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a)}.shadow,.shadow-sm,.shadow-xl{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a)}.ring-primary{--tw-ring-color:var(--color-primary)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.transition-all,.transition-colors{transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.transition-opacity{transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.focus\\:border-red-500:focus{border-color:var(--color-red-500)}.focus\\:ring-0:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor)}.focus\\:ring-0:focus,.focus\\:ring-2:focus{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor)}.focus\\:ring-red-200:focus{--tw-ring-color:var(--color-red-200)}.focus\\:ring-red-500:focus{--tw-ring-color:var(--color-red-500)}.focus\\:ring-slate-200:focus{--tw-ring-color:var(--color-slate-200)}.focus\\:outline-none:focus{--tw-outline-style:none;outline-style:none}.border-transparent{border-color:#0000}.top-1\\/2{top:50%}.right-2{right:calc(var(--spacing)*2)}.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)}.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)}.text-background{color:var(--color-background)}.inset-y-0{inset-block:calc(var(--spacing)*0)}.size-10{height:calc(var(--spacing)*10);width:calc(var(--spacing)*10)}.h-40{height:calc(var(--spacing)*40)}.h-\\[200px\\]{height:200px}.w-60{width:calc(var(--spacing)*60)}.shrink-0{flex-shrink:0}.gap-1\\.5{gap:calc(var(--spacing)*1.5)}.self-end{align-self:flex-end}.border-surface{border-color:var(--color-surface)}.py-1{padding-block:calc(var(--spacing)*1)}.py-10{padding-block:calc(var(--spacing)*10)}.pb-1{padding-bottom:calc(var(--spacing)*1)}.text-\\[10px\\]{font-size:10px}.text-\\[11px\\]{font-size:11px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.whitespace-pre-line{white-space:pre-line}.text-slate-500{color:var(--color-slate-500)}.opacity-70{opacity:.7}.shadow-\\[0_8px_24px_rgba\\(15\\,23\\,42\\,0\\.08\\)\\]{--tw-shadow:0 8px 24px var(--tw-shadow-color,#0f172a14)}.shadow-\\[0_8px_24px_rgba\\(15\\,23\\,42\\,0\\.08\\)\\],.shadow-sm{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a)}.size-16{height:calc(var(--spacing)*16);width:calc(var(--spacing)*16)}.size-\\[8px\\]{height:8px;width:8px}.size-\\[10px\\]{height:10px;width:10px}.text-yellow-500{color:var(--color-yellow-500)}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px 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)}.col-span-1{grid-column:span 1/span 1}.m-2{margin:calc(var(--spacing)*2)}.mx-4{margin-inline:calc(var(--spacing)*4)}.ml-0\\.5{margin-left:calc(var(--spacing)*.5)}.w-1\\/2{width:50%}.max-w-32{max-width:calc(var(--spacing)*32)}.translate-y-0{--tw-translate-y:calc(var(--spacing)*0)}.translate-y-0,.translate-y-full{translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-full{--tw-translate-y:100%}.bg-selected{background-color:var(--color-selected)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.text-green-700{color:var(--color-green-700)}.text-red-700{color:var(--color-red-700)}.capitalize{text-transform:capitalize}.opacity-100{opacity:1}}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer components{.chat-item .chat-item-content-main-name,.chat-item .chat-item-content-main-time{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.chat-item .chat-item-content-secondary-message,.chat-item .chat-item-content-secondary-nickname{color:var(--color-surface);-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.z-icon-button-outlined,.z-icon-button-text{color:var(--color-primary)}.z-input,.z-input-area-input,.z-input-area-label,.z-input-label{color:var(--color-surface);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.z-button-group-item-tab,.z-button-group-item-tab-selected{border-style:var(--tw-border-style)!important;border-width:0!important}}@layer utilities{.focus\\:ring-0:focus,.focus\\:ring-2:focus,.shadow,.shadow-\\[0_8px_24px_rgba\\(15\\,23\\,42\\,0\\.08\\)\\],.shadow-sm,.shadow-xl{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.translate-y-0,.translate-y-full{translate:var(--tw-translate-x)var(--tw-translate-y)}}@property --tw-space-y-reverse{syntax:\"*\";inherits:false;initial-value:0}@property --tw-translate-x{syntax:\"*\";inherits:false;initial-value:0}@property --tw-translate-y{syntax:\"*\";inherits:false;initial-value:0}@property --tw-translate-z{syntax:\"*\";inherits:false;initial-value:0}.quick-message-template__card{box-shadow:0 8px 24px #0f172a14}.quick-message-template__button-action{color:var(--quick-modal-primary)}.quick-message-template__toggle{border:1px solid #94a3b866}.quick-message-template__dialog-overlay{align-items:center;background:#0f172a59;display:flex;inset:0;justify-content:center;padding:16px;position:absolute;z-index:70}.quick-message-template__dialog{border:1px solid #94a3b840;border-radius:16px;box-shadow:0 20px 45px #11182738;display:flex;flex-direction:column;max-height:min(440px,100%);width:min(440px,100%)}.quick-message-template__dialog-header{align-items:center;border-bottom:1px solid #94a3b847;display:flex;justify-content:space-between;padding:18px 20px 12px}.quick-message-template__dialog-header h3{font-size:16px;font-weight:600;margin:0}.quick-message-template__dialog-close{align-items:center;background:0 0;border:none;border-radius:9999px;cursor:pointer;display:inline-flex;height:32px;justify-content:center;width:32px}.quick-message-template__dialog-body{display:flex;flex-direction:column;gap:16px;overflow-y:auto;padding:16px 20px}.quick-message-template__input,.quick-message-template__textarea{border-radius:12px;border-width:1px;font-size:14px;padding:10px 14px;resize:none}.quick-message-template__textarea{min-height:100px}.quick-message-template__dialog-footer{border-top:1px solid #94a3b82e;display:flex;gap:12px;justify-content:flex-end;padding:16px 20px 20px}.quick-message-template__dialog-button{border:none;border-radius:9999px;cursor:pointer;font-size:13px;font-weight:600;padding:10px 18px}.quick-message-template__dialog-button--ghost{background:0 0;color:#64748b}.quick-message-template__dialog-button--primary{background:var(--quick-modal-primary);box-shadow:0 10px 25px var(--quick-modal-primary-shadow);color:#fff}.quick-message-template__dialog-button--primary:disabled{box-shadow:none;cursor:not-allowed;opacity:.4}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-leading{syntax:\"*\";inherits:false}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:\"*\";inherits:false}@property --tw-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:\"*\";inherits:false}@property --tw-inset-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:\"*\";inherits:false}@property --tw-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:\"*\";inherits:false}@property --tw-inset-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:\"*\";inherits:false}@property --tw-ring-offset-width{syntax:\"<length>\";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:\"*\";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-space-x-reverse{syntax:\"*\";inherits:false;initial-value:0}@property --tw-blur{syntax:\"*\";inherits:false}@property --tw-brightness{syntax:\"*\";inherits:false}@property --tw-contrast{syntax:\"*\";inherits:false}@property --tw-grayscale{syntax:\"*\";inherits:false}@property --tw-hue-rotate{syntax:\"*\";inherits:false}@property --tw-invert{syntax:\"*\";inherits:false}@property --tw-opacity{syntax:\"*\";inherits:false}@property --tw-saturate{syntax:\"*\";inherits:false}@property --tw-sepia{syntax:\"*\";inherits:false}@property --tw-drop-shadow{syntax:\"*\";inherits:false}@property --tw-drop-shadow-color{syntax:\"*\";inherits:false}@property --tw-drop-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:\"*\";inherits:false}@media (forced-colors:active){[type=checkbox]:checked,[type=radio]:checked{appearance:auto}[type=checkbox]:indeterminate{appearance:auto}[type=checkbox]:checked,[type=checkbox]:indeterminate,[type=radio]:checked{appearance:auto}}@media (hover:hover){.z-button-outlined:hover,.z-button-primary:hover,.z-icon-button-outlined:hover,.z-icon-button-primary:hover,.z-icon-button-text:hover{--tw-brightness:brightness(110%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.z-button-group-item-tab:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.z-button-group-item-tab-unselected:hover{background-color:var(--color-white)}.z-button-group-item-primary-unselected:hover{--tw-brightness:brightness(95%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.z-button-group-item-outlined-unselected:hover{background-color:#e028481a}@supports (color:color-mix(in lab,red,red)){.z-button-group-item-outlined-unselected:hover{background-color:color-mix(in oklab,var(--color-primary)10%,transparent);background-color:color-mix(in srgb,#e0284810%,transparent)}}.hover\\:brightness-110:hover{--tw-brightness:brightness(110%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.hover\\:bg-primary\\/10:hover{background-color:#e028481a}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-primary\\/10:hover{background-color:color-mix(in srgb,#e0284810%,transparent);background-color:color-mix(in oklab,var(--color-primary)10%,transparent)}}.hover\\:text-primary:hover{color:var(--color-primary)}.group-hover\\:opacity-100:is(:where(.group):hover *){opacity:1}.hover\\:bg-background:hover{background-color:var(--color-background)}.hover\\:bg-red-50:hover{background-color:var(--color-red-50)}.hover\\:bg-slate-100:hover{background-color:var(--color-slate-100)}.hover\\:bg-white:hover{background-color:var(--color-white)}.hover\\:text-gray-600:hover{color:var(--color-gray-600)}.hover\\:opacity-100:hover{opacity:1}.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}}";
|
|
16
|
+
const quickMessageTemplateCss = "@layer base{*,::backdrop,:after,:before{--tw-space-y-reverse:0;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-alpha:100%;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-offset-width:0;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-space-x-reverse:0;--tw-drop-shadow-alpha:100%;border:0 solid;box-sizing:border-box;margin:0;padding:0}}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,::backdrop,:after,:before{--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-space-x-reverse:0;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-space-y-reverse:0;--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0}}}@layer theme{:host,:root{--container-3xs:16rem;--color-yellow-300:oklch(90.5% .182 98.111);--text-xl:1.25rem;--text-xl--line-height:1.4;--color-yellow-500:oklch(79.5% .184 86.047);--container-sm:24rem;--container-xl:36rem;--color-red-50:oklch(97.1% .013 17.38);--color-red-200:oklch(88.5% .062 18.334);--color-slate-100:oklch(96.8% .007 247.896);--color-slate-200:oklch(92.9% .013 255.508);--color-slate-700:oklch(37.2% .044 257.287);--color-slate-900:oklch(20.8% .042 265.755);--container-xs:20rem;--container-md:28rem;--text-2xl:1.5rem;--text-2xl--line-height:1.33333;--color-gray-600:oklch(44.6% .03 256.802);--color-red-700:oklch(50.5% .213 27.518);--color-green-500:oklch(72.3% .219 149.579);--color-green-700:oklch(52.7% .154 150.069);--color-blue-500:oklch(62.3% .214 259.815);--color-pink-100:oklch(94.8% .028 342.258);--color-gray-400:oklch(70.7% .022 261.325);--font-weight-bold:700;--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace;--color-red-500:oklch(63.7% .237 25.331);--color-blue-600:oklch(54.6% .245 262.881);--color-slate-500:oklch(55.4% .046 257.417);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-500:oklch(55.1% .027 264.364);--color-black:#000;--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:1.33333;--text-sm:.875rem;--text-sm--line-height:1.42857;--text-base:1rem;--text-base--line-height:1.5;--text-lg:1.125rem;--text-lg--line-height:1.55556;--font-weight-medium:500;--font-weight-semibold:600;--leading-tight:1.25;--leading-snug:1.375;--leading-relaxed:1.625;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--radius-xl:.75rem;--radius-2xl:1rem;--radius-3xl:1.5rem;--animate-spin:spin 1s linear infinite;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:\"Kanit\",var(--default-font);--default-mono-font-family:var(--font-mono);--default-font:ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\";--color-primary:#e02848;--color-secondary:#023761;--color-background:#fff;--color-surface:#000;--color-paper:#f3f4f6;--color-divider:#e5e7eb;--color-theme-gray:#6b7280;--color-overlay:#0000004d;--color-selected:#fdeef1}}@layer base{::file-selector-button{appearance:button;background-color:#0000;border:0 solid;border-radius:0;box-sizing:border-box;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;margin:0;margin-inline-end:4px;opacity:1;padding:0}:host,html{-webkit-text-size-adjust:100%;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);tab-size:4;-webkit-tap-highlight-color:transparent;line-height:1.5}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-size:1em;font-variation-settings:var(--default-mono-font-variation-settings,normal)}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}menu,ol,ul{list-style:none}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}button,input,optgroup,select,textarea{background-color:#0000;border-radius:0;color:inherit;font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;opacity:1}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;min-height:1.5em;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field{padding-block:0;padding-bottom:0;padding-top:0}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-month-field{padding-block:0;padding-bottom:0;padding-top:0}::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field{padding-block:0;padding-bottom:0;padding-top:0}::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-second-field{padding-block:0;padding-bottom:0;padding-top:0}::-webkit-datetime-edit-meridiem-field{padding-block:0;padding-bottom:0;padding-top:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}[multiple],[type=date],[type=datetime-local],[type=email],[type=month],[type=number],[type=password],[type=search],[type=tel],[type=text],[type=time],[type=url],[type=week],input:where(:not([type])),select,textarea{appearance:none;--tw-shadow:0 0 #0000;background-color:#fff;border-color:oklch(55.1% .027 264.364);border-radius:0;border-width:1px;font-size:1rem;line-height:1.5rem;padding:.5rem .75rem}:is([type=text],input:where(:not([type])),[type=email],[type=url],[type=password],[type=number],[type=date],[type=datetime-local],[type=month],[type=search],[type=tel],[type=time],[type=week],[multiple],textarea,select):focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:oklch(54.6% .245 262.881);--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(1px + var(--tw-ring-offset-width))var(--tw-ring-color);border-color:oklch(54.6% .245 262.881);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline:2px solid #0000}input::placeholder,textarea::placeholder{color:oklch(55.1% .027 264.364);opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}select{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='oklch(55.1%25 0.027 264.364)' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E\");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem;print-color-adjust:exact}[multiple],[size]:where(select:not([size=\"1\"])){background-image:none;background-position:0 0;background-repeat:unset;background-size:initial;padding-right:.75rem;print-color-adjust:unset}[type=checkbox],[type=radio]{appearance:none;color:oklch(54.6% .245 262.881);print-color-adjust:exact;-webkit-user-select:none;user-select:none;vertical-align:middle;--tw-shadow:0 0 #0000;background-color:#fff;background-origin:border-box;border-color:oklch(55.1% .027 264.364);border-width:1px;display:inline-block;flex-shrink:0;height:1rem;padding:0;width:1rem}[type=checkbox]{border-radius:0}[type=radio]{border-radius:100%}[type=checkbox]:focus,[type=radio]:focus{outline-offset:2px;--tw-ring-inset:var(--tw-empty, );--tw-ring-offset-width:2px;--tw-ring-offset-color:#fff;--tw-ring-color:oklch(54.6% .245 262.881);--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);outline:2px solid #0000}[type=checkbox]:checked,[type=radio]:checked{background-color:currentColor;background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:#0000}[type=checkbox]:checked{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 16 16'%3E%3Cpath d='M12.207 4.793a1 1 0 0 1 0 1.414l-5 5a1 1 0 0 1-1.414 0l-2-2a1 1 0 0 1 1.414-1.414L6.5 9.086l4.293-4.293a1 1 0 0 1 1.414 0'/%3E%3C/svg%3E\")}[type=radio]:checked{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='3'/%3E%3C/svg%3E\")}[type=checkbox]:checked:focus,[type=checkbox]:checked:hover,[type=radio]:checked:focus,[type=radio]:checked:hover{background-color:currentColor;border-color:#0000}[type=checkbox]:indeterminate{background-color:currentColor;background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3E%3Cpath stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3E%3C/svg%3E\");background-position:50%;background-repeat:no-repeat;background-size:100% 100%;border-color:#0000}[type=checkbox]:indeterminate:focus,[type=checkbox]:indeterminate:hover{background-color:currentColor;border-color:#0000}[type=file]{background:unset;border-color:inherit;border-radius:0;border-width:0;font-size:unset;line-height:inherit;padding:0}[type=file]:focus{outline:1px solid buttontext;outline:1px auto -webkit-focus-ring-color}}@layer components{.dialog-backdrop{align-items:center;background-color:#0006;display:flex;inset:calc(var(--spacing)*0);justify-content:center;position:fixed;z-index:50}@supports (color:color-mix(in lab,red,red)){.dialog-backdrop{background-color:color-mix(in oklab,var(--color-black)40%,transparent);background-color:color-mix(in srgb,#00040%,transparent)}}.chat-item{border-radius:var(--radius-xl);cursor:pointer;margin-block:calc(var(--spacing)*1);margin-inline:calc(var(--spacing)*2);padding-block:calc(var(--spacing)*3);padding-inline:calc(var(--spacing)*4);--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);align-items:flex-start;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);display:flex;position:relative}:where(.chat-item>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-end:calc(var(--spacing)*4*(1 - var(--tw-space-x-reverse)));margin-inline-start:calc(var(--spacing)*4*var(--tw-space-x-reverse))}.chat-item .chat-item-pin{position:absolute;right:calc(var(--spacing)*-3);top:calc(var(--spacing)*1)}.chat-item .chat-item-pin-icon{fill:currentColor;height:calc(var(--spacing)*3);rotate:45deg;width:calc(var(--spacing)*3)}.chat-item .chat-item-content-container{display:flex;flex-direction:row;width:100%}:where(.chat-item .chat-item-content-container>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-end:calc(var(--spacing)*4*(1 - var(--tw-space-x-reverse)));margin-inline-start:calc(var(--spacing)*4*var(--tw-space-x-reverse))}.chat-item .chat-item-avatar-wrapper{align-self:center;flex-shrink:0;position:relative}.chat-item .chat-item-avatar-badge{bottom:calc(var(--spacing)*-.5);position:absolute;right:calc(var(--spacing)*-.5)}.chat-item .chat-item-content-wrapper{min-height:calc(var(--spacing)*18);width:100%}.chat-item .chat-item-content-main{align-items:center;display:flex}:where(.chat-item .chat-item-content-main>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-end:calc(var(--spacing)*1*(1 - var(--tw-space-x-reverse)));margin-inline-start:calc(var(--spacing)*1*var(--tw-space-x-reverse))}.chat-item .chat-item-content-main-image{border-radius:3.40282e+38px;height:calc(var(--spacing)*4);width:calc(var(--spacing)*4)}.chat-item .chat-item-content-main-name{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.chat-item .chat-item-content-main-name,.chat-item .chat-item-content-main-time{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.chat-item .chat-item-content-main-time{color:var(--color-gray-500);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));margin-left:auto}.chat-item .chat-item-content-secondary{align-items:flex-start;display:flex;flex-direction:row;width:100%}.chat-item .chat-item-content-secondary-nickname{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.chat-item .chat-item-content-secondary-message,.chat-item .chat-item-content-secondary-nickname{color:var(--color-surface);-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.chat-item .chat-item-content-secondary-message{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.chat-item .chat-item-content-unread{background-color:var(--color-primary);border-radius:3.40282e+38px;color:var(--color-white);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));margin-left:auto}.chat-item .chat-item-content-unread-mark{display:inline-block;height:calc(var(--spacing)*2.5);width:calc(var(--spacing)*2.5)}.chat-item .chat-item-content-unread-count{padding-block:calc(var(--spacing)*.5);padding-inline:calc(var(--spacing)*2)}.z-icon-button{cursor:pointer;font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));--tw-font-weight:var(--font-weight-medium);align-items:center;border-radius:3.40282e+38px;display:inline-flex;font-weight:var(--font-weight-medium);justify-content:center;transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.z-icon-button:focus{--tw-outline-style:none;outline-style:none}.z-icon-button-primary{background-color:var(--color-primary);color:var(--color-white)}.z-icon-button-outlined{border-color:var(--color-primary);border-style:var(--tw-border-style);border-width:1px}.z-icon-button-outlined,.z-icon-button-text{color:var(--color-primary)}.z-icon-button-disabled{cursor:not-allowed;opacity:.5}.z-button{cursor:pointer;--tw-font-weight:var(--font-weight-medium);align-items:center;border-radius:3.40282e+38px;display:inline-flex;font-weight:var(--font-weight-medium);justify-content:center;transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.z-button:focus{--tw-outline-style:none;outline-style:none}.z-button-small{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));padding-block:calc(var(--spacing)*1.5);padding-inline:calc(var(--spacing)*2)}.z-button-medium{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));padding-block:calc(var(--spacing)*2);padding-inline:calc(var(--spacing)*3)}.z-button-large{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height));padding-block:calc(var(--spacing)*3);padding-inline:calc(var(--spacing)*4)}.z-button-primary{background-color:var(--color-primary);color:var(--color-white)}.z-button-outlined{border-color:var(--color-primary);border-style:var(--tw-border-style);border-width:1px;color:var(--color-primary)}.z-button-disabled{cursor:not-allowed;opacity:.5}.z-button-text{margin-inline:calc(var(--spacing)*2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.z-input-area-label{margin-bottom:calc(var(--spacing)*1);--tw-font-weight:var(--font-weight-medium);display:block;font-weight:var(--font-weight-medium)}.z-input-area-input,.z-input-area-label{color:var(--color-surface);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.z-input-area-input{background-color:var(--color-paper);border-color:var(--color-surface);border-radius:var(--radius-lg);border-style:var(--tw-border-style);padding-block:calc(var(--spacing)*2);padding-inline:calc(var(--spacing)*4);--tw-ring-color:var(--color-primary);border-width:1px;width:100%}.z-input-area-input:focus{border-color:var(--color-primary);--tw-outline-style:none;outline-style:none}.z-input-area-error{color:var(--color-red-500);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));margin-top:calc(var(--spacing)*1)}.z-input-label{margin-bottom:calc(var(--spacing)*1);--tw-font-weight:var(--font-weight-medium);display:block;font-weight:var(--font-weight-medium)}.z-input,.z-input-label{color:var(--color-surface);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.z-input{background-color:var(--color-background);border-color:var(--color-divider);border-radius:var(--radius-md);border-style:var(--tw-border-style);padding-block:calc(var(--spacing)*2);padding-inline:calc(var(--spacing)*4);--tw-ring-color:var(--color-primary);border-width:1px;width:100%}.z-input:focus{border-color:var(--color-primary);--tw-outline-style:none;outline-style:none}.z-input-error{color:var(--color-red-500);font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));margin-top:calc(var(--spacing)*1)}.z-select-input-label{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));margin-bottom:calc(var(--spacing)*1);--tw-font-weight:var(--font-weight-medium);display:block;font-weight:var(--font-weight-medium)}.z-tag-or-status-item{align-items:center;border-radius:var(--radius-2xl);gap:calc(var(--spacing)*2);padding-block:calc(var(--spacing)*1.5);padding-inline:calc(var(--spacing)*3);--tw-shadow:0 1px 2px 0 var(--tw-shadow-color,#0000000d);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);display:inline-flex}.z-tag-or-status-item .z-tag-or-status-item-name{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));max-width:calc(var(--spacing)*20)}.z-tag-or-status-item .z-tag-or-status-item-icon{border-radius:3.40282e+38px;height:calc(var(--spacing)*4);width:calc(var(--spacing)*4)}.z-context-input{align-items:stretch;display:flex;flex-direction:row;margin-block:calc(var(--spacing)*1)}.z-context-input-key{background-color:var(--color-background);border-bottom-left-radius:var(--radius-3xl);border-color:var(--color-divider);border-style:var(--tw-border-style);border-top-left-radius:var(--radius-3xl);border-width:1px;color:var(--color-surface);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));max-height:6.4rem;min-height:2.4rem;padding-block:calc(var(--spacing)*2);padding-inline:calc(var(--spacing)*4);resize:none;width:100%;--tw-ring-color:var(--color-primary);flex:1}.z-context-input-key:focus{border-color:var(--color-primary);--tw-outline-style:none;outline-style:none}.z-context-input-value{background-color:var(--color-background);border-bottom-right-radius:var(--radius-3xl);border-color:var(--color-primary);border-style:var(--tw-border-style);border-top-right-radius:var(--radius-3xl);border-width:1px;color:var(--color-surface);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));max-height:6.4rem;min-height:2.4rem;padding-block:calc(var(--spacing)*2);padding-inline:calc(var(--spacing)*4);resize:none;width:100%;--tw-ring-color:var(--color-primary);flex:1}.z-context-input-value:focus{border-color:var(--color-primary);--tw-outline-style:none;outline-style:none}.z-text-with-link{color:var(--color-blue-600);text-decoration-line:underline}.z-button-group{display:inline-flex}.z-button-group-tab{border-radius:var(--radius-md);display:flex;gap:calc(var(--spacing)*1);padding:calc(var(--spacing)*.5)!important}.z-button-group-tab-overlay{background-color:var(--color-overlay)}.z-button-group-item{border-style:var(--tw-border-style);cursor:pointer;--tw-font-weight:var(--font-weight-medium);align-items:center;border-width:1px;display:inline-flex;font-weight:var(--font-weight-medium);justify-content:center;transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.z-button-group-item:focus{--tw-outline-style:none;outline-style:none}.z-button-group-item-tab{align-items:center;border-radius:var(--radius-sm);border-style:var(--tw-border-style)!important;border-width:0!important;display:flex;flex:1;flex-direction:column;gap:calc(var(--spacing)*2);justify-content:center;padding:calc(var(--spacing)*1)!important}.z-button-group-item-tab-selected{background-color:var(--color-white);--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.z-button-group-item-tab-selected,.z-button-group-item-tab-unselected{border-style:var(--tw-border-style)!important;border-width:0!important}.z-button-group-small{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height));padding-block:calc(var(--spacing)*1.5);padding-inline:calc(var(--spacing)*2)}.z-button-group-medium{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height));padding-block:calc(var(--spacing)*2);padding-inline:calc(var(--spacing)*3)}.z-button-group-large{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height));padding-block:calc(var(--spacing)*3);padding-inline:calc(var(--spacing)*4)}.z-button-group-item-first{border-bottom-left-radius:3.40282e+38px;border-top-left-radius:3.40282e+38px}.z-button-group-item-last{border-bottom-right-radius:3.40282e+38px;border-top-right-radius:3.40282e+38px}.z-button-group-item-middle{border-radius:0}.z-button-group-item-primary-selected{background-color:var(--color-primary);border-color:var(--color-primary);color:var(--color-white)}.z-button-group-item-primary-unselected{background-color:var(--color-white);border-color:var(--color-primary);color:var(--color-primary)}.z-button-group-item-outlined-selected{background-color:var(--color-primary);border-color:var(--color-primary);color:var(--color-white)}.z-button-group-item-outlined-unselected{background-color:#0000;border-color:var(--color-primary);color:var(--color-primary)}.z-button-group-item-disabled{cursor:not-allowed;opacity:.5}.z-button-group-item:not(:first-child){margin-left:-1px}.z-avatar-error{align-items:center;display:flex;justify-content:center}.z-avatar-2x-small{height:calc(var(--spacing)*3);min-height:calc(var(--spacing)*3);min-width:calc(var(--spacing)*3);width:calc(var(--spacing)*3)}.z-avatar-x-small{height:calc(var(--spacing)*4);min-height:calc(var(--spacing)*4);min-width:calc(var(--spacing)*4);width:calc(var(--spacing)*4)}.z-avatar-small{height:calc(var(--spacing)*8);min-height:calc(var(--spacing)*8);min-width:calc(var(--spacing)*8);width:calc(var(--spacing)*8)}.z-avatar-medium{height:calc(var(--spacing)*16);min-height:calc(var(--spacing)*16);min-width:calc(var(--spacing)*16);width:calc(var(--spacing)*16)}.z-avatar-large{height:calc(var(--spacing)*32);min-height:calc(var(--spacing)*32);min-width:calc(var(--spacing)*32);width:calc(var(--spacing)*32)}.z-avatar-full{height:100%;width:100%}.z-avatar-group{background-color:#023761;border-radius:3.40282e+38px}}@layer utilities{.contents{display:contents}.bg-background{background-color:var(--color-background)}.px-4{padding-inline:calc(var(--spacing)*4)}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-surface{color:var(--color-surface)}}[data-theme=light]{--color-primary:#e02848;--color-secondary:#023761;--color-background:#fff;--color-surface:#000;--color-paper:#f3f4f6;--color-divider:#e5e7eb;--color-theme-gray:#6b7280;--color-overlay:#0000004d;--color-selected:#fdeef1}[data-theme=dark]{--color-primary:#b50f30;--color-secondary:#fff;--color-background:#23292d;--color-surface:#fff;--color-paper:#374151;--color-divider:#4b5563;--color-theme-gray:#d1d5db;--color-overlay:#ffffff4d;--color-selected:#3a242e}.scroll-container::-webkit-scrollbar{background:#0000001a;height:8px;width:8px}.scroll-container:active::-webkit-scrollbar,.scroll-container:hover::-webkit-scrollbar{background:#0003}.scroll-container:active::-webkit-scrollbar-thumb,.scroll-container:hover::-webkit-scrollbar-thumb{background:#0006;border-radius:4px}.z-zwiz-max-height{height:100vh}.bg-time-badge{background-color:#0000004d}@supports (color:color-mix(in lab,red,red)){.bg-time-badge{background-color:color-mix(in srgb,var(--color-surface)30%,transparent);background-color:color-mix(in srgb,#00030%,transparent)}}.placeholder-surface::placeholder{color:var(--color-text-gray)}.z-width-100{width:100%}.z-width-90{width:90%}.z-width-75{width:75%}.z-width-50{width:50%}.z-width-25{width:25%}.z-width-0{width:0}.z-animate-width{transition-duration:.5s;transition-property:width;transition-timing-function:cubic-bezier(.4,0,.2,1)}.z-animate-grid-template-cols{transition:grid-template-rows .5s}[type=checkbox]{background-color:var(--color-gray-300);border-color:var(--color-gray-300);border-radius:4px;cursor:pointer}[type=checkbox]:checked,[type=checkbox]:indeterminate{background-color:var(--color-primary);border-color:var(--color-primary);border-radius:4px;cursor:pointer}[type=checkbox]:focus{offset:0;outline-offset:0;--tw-ring-color:var(--color-primary);outline:none}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.grid-cols-1{grid-template-columns:1fr}.grid-cols-1_3{grid-template-columns:1fr 3fr}.grid-cols-1_2_1{grid-template-columns:1fr 2fr 1fr}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{.pointer-events-auto{pointer-events:auto}.pointer-events-none{pointer-events:none}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:calc(var(--spacing)*0)}.top-3{top:calc(var(--spacing)*3)}.right-3{right:calc(var(--spacing)*3)}.right-4{right:calc(var(--spacing)*4)}.bottom-3{bottom:calc(var(--spacing)*3)}.left-3{left:calc(var(--spacing)*3)}.z-10{z-index:10}.z-80{z-index:80}.mt-1{margin-top:calc(var(--spacing)*1)}.mt-2{margin-top:calc(var(--spacing)*2)}.mt-4{margin-top:calc(var(--spacing)*4)}.mt-6{margin-top:calc(var(--spacing)*6)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline-flex{display:inline-flex}.aspect-square{aspect-ratio:1}.size-4{height:calc(var(--spacing)*4);width:calc(var(--spacing)*4)}.size-6{height:calc(var(--spacing)*6);width:calc(var(--spacing)*6)}.size-8{height:calc(var(--spacing)*8);width:calc(var(--spacing)*8)}.size-12{height:calc(var(--spacing)*12);width:calc(var(--spacing)*12)}.size-14{height:calc(var(--spacing)*14);width:calc(var(--spacing)*14)}.h-7{height:calc(var(--spacing)*7)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-\\[180px\\]{height:180px}.h-\\[220px\\]{height:220px}.h-\\[280px\\]{height:280px}.h-full{height:100%}.w-7{width:calc(var(--spacing)*7)}.w-8{width:calc(var(--spacing)*8)}.w-9{width:calc(var(--spacing)*9)}.w-\\[200px\\]{width:200px}.w-\\[250px\\]{width:250px}.w-full{width:100%}.max-w-full{max-width:100%}.max-w-md{max-width:var(--container-md)}.max-w-xs{max-width:var(--container-xs)}.flex-1{flex:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.animate-spin{animation:var(--animate-spin)}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.resize-none{resize:none}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-1{gap:calc(var(--spacing)*1)}.gap-2{gap:calc(var(--spacing)*2)}.gap-3{gap:calc(var(--spacing)*3)}.gap-4{gap:calc(var(--spacing)*4)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-\\[18px\\]{border-radius:18px}.rounded-full{border-radius:3.40282e+38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-0{border-style:var(--tw-border-style);border-width:0}.border-\\[1\\.5px\\]{border-style:var(--tw-border-style);border-width:1.5px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-b-2{border-bottom-style:var(--tw-border-style);border-bottom-width:2px}.border-b-\\[1\\.5px\\]{border-bottom-style:var(--tw-border-style);border-bottom-width:1.5px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-dashed{--tw-border-style:dashed;border-style:dashed}.border-none{--tw-border-style:none;border-style:none}.border-current{border-color:currentColor}.border-primary{border-color:var(--color-primary)}.border-red-500{border-color:var(--color-red-500)}.bg-primary{background-color:var(--color-primary)}.bg-slate-900\\/40{background-color:#0f172b66}@supports (color:color-mix(in lab,red,red)){.bg-slate-900\\/40{background-color:color-mix(in oklab,var(--color-slate-900)40%,transparent)}}.bg-slate-900\\/60{background-color:#0f172b99}@supports (color:color-mix(in lab,red,red)){.bg-slate-900\\/60{background-color:color-mix(in oklab,var(--color-slate-900)60%,transparent)}}.bg-transparent{background-color:#0000}.bg-white\\/90{background-color:#ffffffe6}@supports (color:color-mix(in lab,red,red)){.bg-white\\/90{background-color:color-mix(in srgb,#fff90%,transparent);background-color:color-mix(in oklab,var(--color-white)90%,transparent)}}.object-cover{object-fit:cover}.p-1{padding:calc(var(--spacing)*1)}.p-3{padding:calc(var(--spacing)*3)}.p-4{padding:calc(var(--spacing)*4)}.p-5{padding:calc(var(--spacing)*5)}.p-6{padding:calc(var(--spacing)*6)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-6{padding-inline:calc(var(--spacing)*6)}.px-8{padding-inline:calc(var(--spacing)*8)}.py-1\\.5{padding-block:calc(var(--spacing)*1.5)}.py-2{padding-block:calc(var(--spacing)*2)}.py-3{padding-block:calc(var(--spacing)*3)}.py-4{padding-block:calc(var(--spacing)*4)}.py-12{padding-block:calc(var(--spacing)*12)}.pr-16{padding-right:calc(var(--spacing)*16)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pb-8{padding-bottom:calc(var(--spacing)*8)}.pl-2{padding-left:calc(var(--spacing)*2)}.text-center{text-align:center}.text-right{text-align:right}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.text-base{font-size:var(--text-base);line-height:var(--tw-leading,var(--text-base--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.text-\\[13px\\]{font-size:13px}.leading-snug{--tw-leading:var(--leading-snug);line-height:var(--leading-snug)}.leading-tight{--tw-leading:var(--leading-tight);line-height:var(--leading-tight)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.text-primary{color:var(--color-primary)}.text-red-500{color:var(--color-red-500)}.text-slate-700{color:var(--color-slate-700)}.text-theme-gray{color:var(--color-theme-gray)}.text-white{color:var(--color-white)}.placeholder-surface::placeholder{color:var(--color-surface)}.opacity-0{opacity:0}.opacity-60{opacity:.6}.opacity-80{opacity:.8}.shadow,.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a)}.shadow,.shadow-sm,.shadow-xl{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a),0 8px 10px -6px var(--tw-shadow-color,#0000001a)}.ring-primary{--tw-ring-color:var(--color-primary)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.transition-all,.transition-colors{transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.transition-opacity{transition-duration:var(--tw-duration,var(--default-transition-duration));transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function))}.focus\\:border-red-500:focus{border-color:var(--color-red-500)}.focus\\:ring-0:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor)}.focus\\:ring-0:focus,.focus\\:ring-2:focus{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor)}.focus\\:ring-red-200:focus{--tw-ring-color:var(--color-red-200)}.focus\\:ring-red-500:focus{--tw-ring-color:var(--color-red-500)}.focus\\:ring-slate-200:focus{--tw-ring-color:var(--color-slate-200)}.focus\\:outline-none:focus{--tw-outline-style:none;outline-style:none}}@keyframes spin{to{transform:rotate(1turn)}}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{.top-1\\/2{top:50%}.right-2{right:calc(var(--spacing)*2)}.col-span-full{grid-column:1/-1}.mt-auto{margin-top:auto}.ml-auto{margin-left:auto}.line-clamp-2{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.size-3{height:calc(var(--spacing)*3);width:calc(var(--spacing)*3)}.h-16{height:calc(var(--spacing)*16)}.min-h-0{min-height:calc(var(--spacing)*0)}.w-16{width:calc(var(--spacing)*16)}.min-w-0{min-width:calc(var(--spacing)*0)}.-translate-y-1\\/2{--tw-translate-y:-50%;translate:var(--tw-translate-x)var(--tw-translate-y)}.auto-rows-auto{grid-auto-rows:auto}.content-start{align-content:flex-start}.gap-2\\.5{gap:calc(var(--spacing)*2.5)}.overflow-y-auto{overflow-y:auto}.border-divider{border-color:var(--color-divider)}.border-transparent{border-color:#0000}.p-1\\.5{padding:calc(var(--spacing)*1.5)}.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)}.text-gray-400{color:var(--color-gray-400)}.focus\\:border-primary:focus{border-color:var(--color-primary)}.disabled\\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\\:opacity-40:disabled{opacity:.4}.h-10{height:calc(var(--spacing)*10)}.w-10{width:calc(var(--spacing)*10)}.break-words{overflow-wrap:break-word}.inset-y-0{inset-block:calc(var(--spacing)*0)}.container{width:100%}.mb-2{margin-bottom:calc(var(--spacing)*2)}.size-5{height:calc(var(--spacing)*5);width:calc(var(--spacing)*5)}.size-10{height:calc(var(--spacing)*10);width:calc(var(--spacing)*10)}.h-40{height:calc(var(--spacing)*40)}.h-\\[200px\\]{height:200px}.w-60{width:calc(var(--spacing)*60)}.shrink-0{flex-shrink:0}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.gap-1\\.5{gap:calc(var(--spacing)*1.5)}.self-end{align-self:flex-end}.border-surface{border-color:var(--color-surface)}.py-1{padding-block:calc(var(--spacing)*1)}.py-10{padding-block:calc(var(--spacing)*10)}.pb-1{padding-bottom:calc(var(--spacing)*1)}.text-\\[10px\\]{font-size:10px}.text-\\[11px\\]{font-size:11px}.leading-none{--tw-leading:1;line-height:1}.leading-relaxed{--tw-leading:var(--leading-relaxed);line-height:var(--leading-relaxed)}.whitespace-pre-line{white-space:pre-line}.text-slate-500{color:var(--color-slate-500)}.opacity-70{opacity:.7}.shadow-\\[0_8px_24px_rgba\\(15\\,23\\,42\\,0\\.08\\)\\]{--tw-shadow:0 8px 24px var(--tw-shadow-color,#0f172a14)}.shadow-\\[0_8px_24px_rgba\\(15\\,23\\,42\\,0\\.08\\)\\],.shadow-sm{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a)}.max-w-sm{max-width:var(--container-sm)}.text-green-500{color:var(--color-green-500)}.text-yellow-500{color:var(--color-yellow-500)}.hidden\\!{display:none!important}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px 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,)}.visible{visibility:visible}.mx-auto{margin-inline:auto}.size-18{height:calc(var(--spacing)*18);width:calc(var(--spacing)*18)}.rotate-45{rotate:45deg}.text-blue-500{color:var(--color-blue-500)}.mb-2\\.5{margin-bottom:calc(var(--spacing)*2.5)}.mb-auto{margin-bottom:auto}.px-1{padding-inline:calc(var(--spacing)*1)}.text-black{color:var(--color-black)}}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{:where(.space-y-2>:not(:last-child)){--tw-space-y-reverse:0;margin-block-end:calc(var(--spacing)*2*(1 - var(--tw-space-y-reverse)));margin-block-start:calc(var(--spacing)*2*var(--tw-space-y-reverse))}}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{.col-span-2{grid-column:span 2/span 2}.my-2{margin-block:calc(var(--spacing)*2)}.w-xl{width:var(--container-xl)}.w-xs{width:var(--container-xs)}.m-auto{margin:auto}.size-32{height:calc(var(--spacing)*32);width:calc(var(--spacing)*32)}.mr-2{margin-right:calc(var(--spacing)*2)}.bg-primary\\/10{background-color:#e028481a}}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{@supports (color:color-mix(in lab,red,red)){.bg-primary\\/10{background-color:color-mix(in srgb,#e0284810%,transparent);background-color:color-mix(in oklab,var(--color-primary)10%,transparent)}}.underline{text-decoration-line:underline}.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)}.bg-paper{background-color:var(--color-paper)}.mb-1{margin-bottom:calc(var(--spacing)*1)}.ml-1{margin-left:calc(var(--spacing)*1)}.size-1\\.5{height:calc(var(--spacing)*1.5);width:calc(var(--spacing)*1.5)}.h-\\[40px\\]{height:40px}.w-1\\/4{width:25%}.rotate-0{rotate:none}.rotate-180{rotate:180deg}.fill-current{fill:currentColor}.line-clamp-3{-webkit-line-clamp:3;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.max-w-3xs{max-width:var(--container-3xs)}.resize{resize:both}.rounded-br-\\[0\\]{border-bottom-right-radius:0}.rounded-bl-\\[0\\]{border-bottom-left-radius:0}.bg-black{background-color:var(--color-black)}.bg-white{background-color:var(--color-white)}.p-2{padding:calc(var(--spacing)*2)}.right-full{right:100%}.-bottom-2{bottom:calc(var(--spacing)*-2)}.left-full{left:100%}.mb-0\\.5{margin-bottom:calc(var(--spacing)*.5)}.ml-2{margin-left:calc(var(--spacing)*2)}.justify-start{justify-content:flex-start}.bg-yellow-300{background-color:var(--color-yellow-300)}.pl-10{padding-left:calc(var(--spacing)*10)}.text-left{text-align:left}.-right-0\\.5{right:calc(var(--spacing)*-.5)}.-bottom-0\\.5{bottom:calc(var(--spacing)*-.5)}.col-span-3{grid-column:span 3/span 3}.gap-y-1{row-gap:calc(var(--spacing)*1)}.border-b-\\[0\\.5px\\]{border-bottom-style:var(--tw-border-style);border-bottom-width:.5px}.whitespace-nowrap{white-space:nowrap}.-top-12{top:calc(var(--spacing)*-12)}.-top-24{top:calc(var(--spacing)*-24)}.mt-10{margin-top:calc(var(--spacing)*10)}.mb-10{margin-bottom:calc(var(--spacing)*10)}.inline-block{display:inline-block}.pt-4{padding-top:calc(var(--spacing)*4)}.size-2{height:calc(var(--spacing)*2);width:calc(var(--spacing)*2)}.bg-pink-100{background-color:var(--color-pink-100)}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-background{color:var(--color-background)}.size-16{height:calc(var(--spacing)*16);width:calc(var(--spacing)*16)}.size-\\[8px\\]{height:8px;width:8px}.size-\\[10px\\]{height:10px;width:10px}.col-span-1{grid-column:span 1/span 1}.m-2{margin:calc(var(--spacing)*2)}.mx-4{margin-inline:calc(var(--spacing)*4)}.ml-0\\.5{margin-left:calc(var(--spacing)*.5)}.w-1\\/2{width:50%}.max-w-32{max-width:calc(var(--spacing)*32)}.translate-y-0{--tw-translate-y:calc(var(--spacing)*0)}.translate-y-0,.translate-y-full{translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-full{--tw-translate-y:100%}.bg-selected{background-color:var(--color-selected)}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.text-green-700{color:var(--color-green-700)}.text-red-700{color:var(--color-red-700)}.capitalize{text-transform:capitalize}.opacity-100{opacity:1}}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities;/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer utilities{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */@layer properties{}@layer base{}@layer components{.chat-item .chat-item-content-main-name,.chat-item .chat-item-content-main-time{-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.chat-item .chat-item-content-secondary-message,.chat-item .chat-item-content-secondary-nickname{color:var(--color-surface);-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.z-icon-button-outlined,.z-icon-button-text{color:var(--color-primary)}.z-input,.z-input-area-input,.z-input-area-label,.z-input-label{color:var(--color-surface);font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.z-button-group-item-tab,.z-button-group-item-tab-selected{border-style:var(--tw-border-style)!important;border-width:0!important}}@layer utilities{.focus\\:ring-0:focus,.focus\\:ring-2:focus,.shadow,.shadow-\\[0_8px_24px_rgba\\(15\\,23\\,42\\,0\\.08\\)\\],.shadow-sm,.shadow-xl{box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.translate-y-0,.translate-y-full{translate:var(--tw-translate-x)var(--tw-translate-y)}}@property --tw-space-y-reverse{syntax:\"*\";inherits:false;initial-value:0}@property --tw-translate-x{syntax:\"*\";inherits:false;initial-value:0}@property --tw-translate-y{syntax:\"*\";inherits:false;initial-value:0}@property --tw-translate-z{syntax:\"*\";inherits:false;initial-value:0}.quick-message-template__card{box-shadow:0 8px 24px #0f172a14}.quick-message-template__button-action{color:var(--quick-modal-primary)}.quick-message-template__toggle{border:1px solid #94a3b866}.quick-message-template__dialog-overlay{align-items:center;background:#0f172a59;display:flex;inset:0;justify-content:center;padding:16px;position:absolute;z-index:70}.quick-message-template__dialog{border:1px solid #94a3b840;border-radius:16px;box-shadow:0 20px 45px #11182738;display:flex;flex-direction:column;max-height:min(440px,100%);width:min(440px,100%)}.quick-message-template__dialog-header{align-items:center;border-bottom:1px solid #94a3b847;display:flex;justify-content:space-between;padding:18px 20px 12px}.quick-message-template__dialog-header h3{font-size:16px;font-weight:600;margin:0}.quick-message-template__dialog-close{align-items:center;background:0 0;border:none;border-radius:9999px;cursor:pointer;display:inline-flex;height:32px;justify-content:center;width:32px}.quick-message-template__dialog-body{display:flex;flex-direction:column;gap:16px;overflow-y:auto;padding:16px 20px}.quick-message-template__input,.quick-message-template__textarea{border-radius:12px;border-width:1px;font-size:14px;padding:10px 14px;resize:none}.quick-message-template__textarea{min-height:100px}.quick-message-template__dialog-footer{border-top:1px solid #94a3b82e;display:flex;gap:12px;justify-content:flex-end;padding:16px 20px 20px}.quick-message-template__dialog-button{border:none;border-radius:9999px;cursor:pointer;font-size:13px;font-weight:600;padding:10px 18px}.quick-message-template__dialog-button--ghost{background:0 0;color:#64748b}.quick-message-template__dialog-button--primary{background:var(--quick-modal-primary);box-shadow:0 10px 25px var(--quick-modal-primary-shadow);color:#fff}.quick-message-template__dialog-button--primary:disabled{box-shadow:none;cursor:not-allowed;opacity:.4}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-leading{syntax:\"*\";inherits:false}@property --tw-font-weight{syntax:\"*\";inherits:false}@property --tw-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:\"*\";inherits:false}@property --tw-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:\"*\";inherits:false}@property --tw-inset-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:\"*\";inherits:false}@property --tw-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:\"*\";inherits:false}@property --tw-inset-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:\"*\";inherits:false}@property --tw-ring-offset-width{syntax:\"<length>\";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:\"*\";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-space-x-reverse{syntax:\"*\";inherits:false;initial-value:0}@property --tw-blur{syntax:\"*\";inherits:false}@property --tw-brightness{syntax:\"*\";inherits:false}@property --tw-contrast{syntax:\"*\";inherits:false}@property --tw-grayscale{syntax:\"*\";inherits:false}@property --tw-hue-rotate{syntax:\"*\";inherits:false}@property --tw-invert{syntax:\"*\";inherits:false}@property --tw-opacity{syntax:\"*\";inherits:false}@property --tw-saturate{syntax:\"*\";inherits:false}@property --tw-sepia{syntax:\"*\";inherits:false}@property --tw-drop-shadow{syntax:\"*\";inherits:false}@property --tw-drop-shadow-color{syntax:\"*\";inherits:false}@property --tw-drop-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:\"*\";inherits:false}@media (forced-colors:active){[type=checkbox]:checked,[type=radio]:checked{appearance:auto}[type=checkbox]:indeterminate{appearance:auto}[type=checkbox]:checked,[type=checkbox]:indeterminate,[type=radio]:checked{appearance:auto}}@media (hover:hover){.z-button-outlined:hover,.z-button-primary:hover,.z-icon-button-outlined:hover,.z-icon-button-primary:hover,.z-icon-button-text:hover{--tw-brightness:brightness(110%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.z-button-group-item-tab:hover{--tw-shadow:0 4px 6px -1px var(--tw-shadow-color,#0000001a),0 2px 4px -2px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.z-button-group-item-tab-unselected:hover{background-color:var(--color-white)}.z-button-group-item-primary-unselected:hover{--tw-brightness:brightness(95%);filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.z-button-group-item-outlined-unselected:hover{background-color:#e028481a}@supports (color:color-mix(in lab,red,red)){.z-button-group-item-outlined-unselected:hover{background-color:color-mix(in oklab,var(--color-primary)10%,transparent);background-color:color-mix(in srgb,#e0284810%,transparent)}}.group-hover\\:opacity-100:is(:where(.group):hover *){opacity:1}.hover\\:bg-background:hover{background-color:var(--color-background)}.hover\\:bg-red-50:hover{background-color:var(--color-red-50)}.hover\\:bg-slate-100:hover{background-color:var(--color-slate-100)}.hover\\:bg-white:hover{background-color:var(--color-white)}.hover\\:text-gray-600:hover{color:var(--color-gray-600)}.hover\\:opacity-100:hover{opacity:1}.hover\\:bg-primary\\/10:hover{background-color:#e028481a}@supports (color:color-mix(in lab,red,red)){.hover\\:bg-primary\\/10:hover{background-color:color-mix(in srgb,#e0284810%,transparent);background-color:color-mix(in oklab,var(--color-primary)10%,transparent)}}.hover\\:text-primary:hover{color:var(--color-primary)}.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 not all and (min-width:40rem){.max-sm\\:hidden{display:none}}@media (min-width:40rem){.sm\\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.container{max-width:40rem}.sm\\:min-w-0{min-width:calc(var(--spacing)*0)}.sm\\:flex-row{flex-direction:row}}@media (min-width:48rem){.md\\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.container{max-width:48rem}}@media (min-width:64rem){.lg\\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}";
|
|
17
17
|
|
|
18
18
|
const QuickMessageTemplateComponent = /*@__PURE__*/ proxyCustomElement(class QuickMessageTemplateComponent extends H {
|
|
19
19
|
constructor(registerHost) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"file":"quick-message-template2.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement","showErrorDialog"],"sources":["src/components/quick-message-template/quick-message-template.css?tag=quick-message-template","src/components/quick-message-template/quick-message-template.tsx"],"sourcesContent":[".quick-message-template__card {\n box-shadow: 0 8px 24px rgba(15, 23, 42, 0.08);\n}\n\n.quick-message-template__button-action {\n color: var(--quick-modal-primary);\n}\n\n.quick-message-template__toggle {\n border: 1px solid rgba(148, 163, 184, 0.4);\n}\n\n.quick-message-template__dialog-overlay {\n position: absolute;\n inset: 0;\n background: rgba(15, 23, 42, 0.35);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 70;\n padding: 16px;\n}\n\n.quick-message-template__dialog {\n width: min(440px, 100%);\n border-radius: 16px;\n box-shadow: 0 20px 45px rgba(17, 24, 39, 0.22);\n border: 1px solid rgba(148, 163, 184, 0.25);\n display: flex;\n flex-direction: column;\n max-height: min(440px, 100%);\n}\n\n.quick-message-template__dialog-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 18px 20px 12px;\n border-bottom: 1px solid rgba(148, 163, 184, 0.28);\n}\n\n.quick-message-template__dialog-header h3 {\n font-size: 16px;\n font-weight: 600;\n margin: 0;\n}\n\n.quick-message-template__dialog-close {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n border-radius: 9999px;\n border: none;\n background: transparent;\n cursor: pointer;\n}\n\n.quick-message-template__dialog-body {\n display: flex;\n flex-direction: column;\n gap: 16px;\n padding: 16px 20px;\n overflow-y: auto;\n}\n\n.quick-message-template__input,\n.quick-message-template__textarea {\n border-radius: 12px;\n border-width: 1px;\n padding: 10px 14px;\n font-size: 14px;\n resize: none;\n}\n\n.quick-message-template__textarea {\n min-height: 100px;\n}\n\n.quick-message-template__dialog-footer {\n display: flex;\n justify-content: flex-end;\n gap: 12px;\n padding: 16px 20px 20px;\n border-top: 1px solid rgba(148, 163, 184, 0.18);\n}\n\n.quick-message-template__dialog-button {\n border-radius: 9999px;\n font-weight: 600;\n font-size: 13px;\n padding: 10px 18px;\n border: none;\n cursor: pointer;\n}\n\n.quick-message-template__dialog-button--ghost {\n background: transparent;\n color: rgba(100, 116, 139, 1);\n}\n\n.quick-message-template__dialog-button--primary {\n background: var(--quick-modal-primary);\n color: #fff;\n box-shadow: 0 10px 25px var(--quick-modal-primary-shadow);\n}\n\n.quick-message-template__dialog-button--primary:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n box-shadow: none;\n}\n","import { Component, Event, EventEmitter, Host, Prop, State, Watch, h } from '@stencil/core';\nimport dayjs from 'dayjs';\nimport { createQuickMessageTemplate, deleteQuickMessageTemplate, getQuickMessageTemplates, updateQuickMessageTemplate } from '../../api/quick-message';\nimport { QuickMessageTemplate as QuickMessageTemplateModel, QuickMessageTemplateContent } from '../../store/type';\nimport { configStore, selectedChatStore } from '../../store/store';\nimport { useTranslation } from '../../utils/utils';\nimport { debounce } from '../../utils/helpers';\nimport { Icon } from '../internal-component/icon';\nimport type { TemplateSelectionMode } from '../quick-message-modal/template-selection';\nimport { DIALOG_TYPE, openDialog, handleError as showErrorDialog } from '../../store/dialog';\n\n@Component({\n tag: 'quick-message-template',\n styleUrl: 'quick-message-template.css',\n})\nexport class QuickMessageTemplateComponent {\n @Prop() handleClose?: () => void;\n @Prop() value?: string | QuickMessageTemplateModel[];\n @Prop() isMaster: boolean = false;\n @Prop() isZignal: boolean = true;\n\n @State() private searchTemplate = '';\n @State() private templates: QuickMessageTemplateModel[] = [];\n @State() private showAddTemplateDialog = false;\n @State() private editingTemplate?: QuickMessageTemplateModel;\n @State() private dialogMode: TemplateSelectionMode = 'create';\n @State() private isLoading = false;\n @State() private isLoadingMore = false;\n @State() private isSavingTemplate = false;\n @State() private deletingTemplateId?: string;\n @State() private templatePendingDelete?: QuickMessageTemplateModel;\n @State() private totalTemplates = 0;\n @State() private totalPages = 0;\n @State() private isSelectZignal = true;\n\n private page = 1;\n private readonly pageSize = 10;\n private readonly loadMoreThreshold = 160;\n private currentSearch = '';\n private scrollContainer?: HTMLDivElement;\n\n private debouncedSearch = debounce((value: string) => {\n void this.fetchTemplates({ search: value, reset: true });\n }, 500);\n\n @Event({ bubbles: true, composed: true }) templatesChange!: EventEmitter<QuickMessageTemplateModel[]>;\n @Event({ bubbles: true, composed: true }) sendTemplate!: EventEmitter<QuickMessageTemplateModel>;\n\n componentWillLoad() {\n this.syncTemplatesFromProp(this.value);\n }\n\n async componentDidLoad() {\n await this.fetchTemplates({ reset: true });\n }\n\n componentDidRender() {\n this.autoLoadMoreIfNeeded();\n }\n\n @Watch('value')\n protected handleValueChange(newValue?: string | QuickMessageTemplateModel[]) {\n this.syncTemplatesFromProp(newValue);\n }\n\n @Watch('isSelectZignal')\n protected handleTabChange() {\n void this.fetchTemplates({ reset: true });\n }\n\n private syncTemplatesFromProp(value?: string | QuickMessageTemplateModel[]) {\n if (value === undefined || value === null) {\n this.setTemplates([], false);\n return;\n }\n\n const parsed = this.parseTemplateValue(value);\n this.setTemplates(parsed, false);\n }\n\n private mergeWithExistingState(fetched: QuickMessageTemplateModel[]): QuickMessageTemplateModel[] {\n if (this.templates.length === 0) {\n return fetched;\n }\n\n const expandedMap = new Map(this.templates.map(template => [template.id, template.isExpanded || false]));\n\n return fetched.map(template => ({\n ...template,\n isExpanded: expandedMap.get(template.id) || template.isExpanded || false,\n }));\n }\n\n private appendTemplates(fetched: QuickMessageTemplateModel[]): QuickMessageTemplateModel[] {\n if (fetched.length === 0) {\n return [...this.templates];\n }\n\n const next = [...this.templates];\n const indexMap = new Map(next.map((template, index) => [template.id, index]));\n\n fetched.forEach(template => {\n const existingIndex = indexMap.get(template.id);\n if (existingIndex !== undefined) {\n next[existingIndex] = {\n ...template,\n isExpanded: next[existingIndex].isExpanded || false,\n };\n return;\n }\n\n next.push({ ...template, isExpanded: template.isExpanded || false });\n indexMap.set(template.id, next.length - 1);\n });\n\n return next;\n }\n\n private async fetchTemplates({ search, reset = true }: { search?: string; reset?: boolean } = {}) {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n const selectedChat = selectedChatStore.get('selectedChat');\n\n if (!businessId || !shopId) {\n return;\n }\n\n if (reset ? this.isLoading : this.isLoadingMore) {\n return;\n }\n\n const normalizedSearch = search !== undefined ? search : this.currentSearch;\n const trimmedSearch = normalizedSearch ? normalizedSearch.trim() : '';\n const nextPage = reset ? 1 : this.page + 1;\n\n if (search !== undefined) {\n this.searchTemplate = normalizedSearch || '';\n }\n\n if (reset) {\n this.isLoading = true;\n } else {\n this.isLoadingMore = true;\n }\n\n try {\n const response = await getQuickMessageTemplates({\n search: trimmedSearch ? trimmedSearch : undefined,\n page: nextPage,\n limit: this.pageSize,\n is_zwiz: !this.isSelectZignal,\n connection_id: selectedChat ? selectedChat.connection.id : undefined,\n });\n\n const normalized = this.cloneTemplates(response.templates || []);\n const nextTemplates = reset ? this.mergeWithExistingState(normalized) : this.appendTemplates(normalized);\n\n this.page = response.page > 0 ? response.page : nextPage;\n const resolvedTotalPages = response.total_pages > 0 ? response.total_pages : nextTemplates.length > 0 ? 1 : 0;\n this.totalPages = resolvedTotalPages;\n this.totalTemplates = response.total;\n this.currentSearch = trimmedSearch;\n\n this.setTemplates(nextTemplates);\n } catch (error: unknown) {\n showErrorDialog(error, '[quick-message-template] Failed to fetch templates');\n } finally {\n if (reset) {\n this.isLoading = false;\n } else {\n this.isLoadingMore = false;\n }\n }\n }\n\n private async loadMoreTemplates() {\n if (this.isLoading || this.isLoadingMore) {\n return;\n }\n\n if (this.totalTemplates > 0 && this.templates.length >= this.totalTemplates) {\n return;\n }\n\n if (this.totalPages === 0 || this.page >= this.totalPages) {\n return;\n }\n\n await this.fetchTemplates({ reset: false });\n }\n\n private handleScroll(event: Event) {\n const target = event.target as HTMLElement | null;\n if (!target) {\n return;\n }\n\n this.triggerLoadMoreIfNeeded(target);\n }\n\n private async handleSearchSubmit(event?: Event) {\n if (event) event.preventDefault();\n await this.fetchTemplates({ search: this.searchTemplate, reset: true });\n }\n\n private handleSearchInput(event: Event) {\n const value = (event.target as HTMLInputElement).value;\n this.searchTemplate = value;\n\n this.debouncedSearch(value);\n }\n\n private clearSearch() {\n if (!this.searchTemplate && !this.currentSearch) {\n return;\n }\n\n this.searchTemplate = '';\n\n if (!this.isLoading && !this.isLoadingMore) {\n void this.fetchTemplates({ search: '', reset: true });\n }\n }\n\n private parseTemplateValue(value: string | QuickMessageTemplateModel[]): QuickMessageTemplateModel[] {\n if (typeof value === 'string') {\n try {\n const deserialized = JSON.parse(value) as QuickMessageTemplateModel[];\n return this.cloneTemplates(deserialized);\n } catch (error: unknown) {\n console.warn('[quick-message-template] Failed to parse templates value', error);\n return [];\n }\n }\n\n return this.cloneTemplates(value);\n }\n\n private cloneTemplates(templates: QuickMessageTemplateModel[]): QuickMessageTemplateModel[] {\n return (templates || []).map(template => {\n const rawContents = template.contents || [];\n\n const normalizedContents = rawContents.map(content => {\n const rawMenuList = content.menu_list || [];\n const menuList = rawMenuList.map(menu => ({\n ...menu,\n buttons: (menu.buttons || []).map(button => ({ ...button })),\n }));\n\n return {\n ...content,\n buttons: (content.buttons || []).map(button => ({ ...button })),\n menu_list: menuList,\n };\n });\n\n return {\n ...template,\n contents: normalizedContents,\n };\n });\n }\n\n private setTemplates(next: QuickMessageTemplateModel[], shouldEmit = true) {\n this.templates = next;\n if (shouldEmit) {\n const payload = this.cloneTemplates(next);\n this.templatesChange.emit(payload);\n }\n }\n\n private canAttemptLoadMore(): boolean {\n if (this.isLoading || this.isLoadingMore) {\n return false;\n }\n\n if (this.totalTemplates > 0 && this.templates.length >= this.totalTemplates) {\n return false;\n }\n\n if (this.totalPages === 0 || this.page >= this.totalPages) {\n return false;\n }\n\n return true;\n }\n\n private triggerLoadMoreIfNeeded(container: HTMLElement) {\n if (!this.canAttemptLoadMore()) {\n return;\n }\n\n const remaining = container.scrollHeight - container.scrollTop - container.clientHeight;\n if (remaining < this.loadMoreThreshold) {\n void this.loadMoreTemplates();\n }\n }\n\n private autoLoadMoreIfNeeded() {\n if (!this.scrollContainer) {\n return;\n }\n\n this.triggerLoadMoreIfNeeded(this.scrollContainer);\n }\n\n private toggleTemplateExpansion(id: string) {\n this.setTemplates(this.templates.map(template => (template.id === id ? { ...template, isExpanded: !template.isExpanded } : template)));\n }\n\n private filterTemplates(): QuickMessageTemplateModel[] {\n const search = this.currentSearch.trim().toLowerCase();\n if (!search) return this.templates;\n return this.templates.filter(template => template.title.toLowerCase().includes(search));\n }\n\n private handleTemplateAction(template: QuickMessageTemplateModel, mode: TemplateSelectionMode) {\n if (mode === 'create' || mode === 'edit' || mode === 'edit-send') {\n this.openTemplateDialog(template, mode);\n return;\n }\n if (mode === 'send') {\n const clonedTemplate: QuickMessageTemplateModel = {\n ...template,\n contents: (template.contents || []).map(content => ({\n ...content,\n buttons: [...(content.buttons || [])],\n menu_list: (content.menu_list || []).map(menu => ({\n ...menu,\n buttons: [...(menu.buttons || [])],\n })),\n })),\n };\n\n const processedTemplate = this.processTemplate(clonedTemplate);\n\n this.closeTemplateDialog();\n if (this.handleClose) this.handleClose();\n this.sendTemplate.emit(processedTemplate);\n }\n }\n\n private renderTemplateContent(content: QuickMessageTemplateContent) {\n switch (content.type) {\n case 'text':\n return (\n <div class=\"flex flex-col gap-2\">\n <p class=\"text-surface whitespace-pre-line text-sm leading-relaxed\">{content.text}</p>\n </div>\n );\n case 'button':\n return (\n <div class=\"flex flex-col gap-2\">\n <p class=\"text-surface whitespace-pre-line text-sm leading-relaxed\">{content.text}</p>\n <div class=\"flex flex-col gap-1.5\">\n {content.buttons.length > 0 && (\n <div class=\"flex flex-col gap-2\">\n {content.buttons.map(button => (\n <div\n class=\"flex w-full flex-col items-center gap-1 rounded-xl px-3 py-2 text-sm font-medium text-white shadow-sm bg-primary truncate\"\n key={button.id}\n >\n <span class=\"w-full text-center leading-tight truncate\">{button.text || '-'}</span>\n <span class=\"w-full text-center text-xs leading-none opacity-80 truncate\">{button.action_type === 'text' ? '-' : button.action || '-'}</span>\n </div>\n ))}\n </div>\n )}\n </div>\n </div>\n );\n case 'image':\n return <div class=\"flex flex-wrap gap-3\">{content.file_url && this.renderImageMedia(content.file_url)}</div>;\n case 'menu_list':\n return (\n <div class=\"flex gap-3 overflow-x-auto pb-1\">\n {content.menu_list.map(menu => (\n <div class=\"flex w-60 shrink-0 flex-col overflow-hidden rounded-[18px] border-[1.5px] shadow-sm border-primary bg-background\" key={menu.id}>\n <div class=\"relative h-40 border-b-[1.5px] border-primary overflow-hidden\">\n {menu.file_url ? (\n <img src={menu.file_url} alt={menu.title} class=\"h-full w-full object-cover\" loading=\"lazy\" />\n ) : (\n <div class=\"flex h-full w-full items-center justify-center bg-background text-theme-gray opacity-60\">\n <Icon name=\"Image\" addClass=\"size-10\" />\n </div>\n )}\n </div>\n\n <div class=\"flex flex-col gap-2 px-4 py-4\">\n {menu.title && <div class=\"text-sm font-semibold leading-snug\">{menu.title}</div>}\n {menu.description && <div class=\"text-xs leading-snug text-theme-gray\">{menu.description}</div>}\n\n {menu.buttons.length > 0 && (\n <div class=\"flex flex-col gap-2\">\n {menu.buttons.map(button => (\n <div\n class=\"flex w-full flex-col items-center gap-1 rounded-xl px-3 py-2 text-sm font-medium text-white shadow-sm bg-primary\"\n key={button.id}\n >\n <span class=\"w-full text-center leading-tight truncate\">{button.text || '-'}</span>\n <span class=\"w-full text-center text-xs leading-none opacity-80 truncate\">{button.action_type === 'text' ? '-' : button.action || '-'}</span>\n </div>\n ))}\n </div>\n )}\n </div>\n </div>\n ))}\n </div>\n );\n case 'video':\n return (\n <video src={content.file_url} class=\"h-[220px] object-cover rounded-xl\" controls>\n <track kind=\"captions\" src=\"\" label=\"English\" />\n </video>\n );\n default:\n return null;\n }\n }\n\n private renderImageMedia(fileUrl: string) {\n return <img src={fileUrl} alt=\"\" class=\"h-[200px] w-[200px] rounded-xl border object-cover border-surface\" loading=\"lazy\" />;\n }\n\n private closeTemplateDialog() {\n this.showAddTemplateDialog = false;\n this.editingTemplate = undefined;\n this.dialogMode = 'edit';\n this.isSavingTemplate = false;\n }\n\n private openTemplateDialog(template?: QuickMessageTemplateModel, mode: TemplateSelectionMode = 'edit') {\n this.editingTemplate = template ? { ...template } : undefined;\n this.dialogMode = mode;\n this.showAddTemplateDialog = true;\n this.isSavingTemplate = false;\n }\n\n private processTemplate(template: QuickMessageTemplateModel) {\n // remove empty menuList\n template.contents = template.contents.map(content => {\n if (content.type === 'menu_list') {\n content.menu_list = content.menu_list.filter(menu => menu.buttons.length > 0 || menu.file_url || menu.title || menu.description);\n }\n return content;\n });\n\n // remove empty content\n template.contents = template.contents.filter(content => content.text || content.buttons.length > 0 || content.file_url || content.menu_list.length > 0);\n\n return template;\n }\n\n private upsertTemplate(template: QuickMessageTemplateModel, { closeDialog = true }: { closeDialog?: boolean } = {}) {\n const withMeta: QuickMessageTemplateModel = {\n ...template,\n isExpanded: (this.editingTemplate ? this.editingTemplate.id : undefined) === template.id ? this.editingTemplate.isExpanded : true,\n };\n\n const exists = this.templates.some(item => item.id === withMeta.id);\n const nextTemplates = exists ? this.templates.map(item => (item.id === withMeta.id ? withMeta : item)) : [...this.templates, withMeta];\n\n this.setTemplates(nextTemplates);\n\n if (closeDialog) {\n this.closeTemplateDialog();\n }\n }\n\n private async handleTemplateSave(template: QuickMessageTemplateModel) {\n if (this.isSavingTemplate) {\n return;\n }\n\n const cloned = this.cloneTemplates([template]);\n const workingTemplate = cloned[0];\n if (!workingTemplate) {\n return;\n }\n\n const processedTemplate = this.processTemplate(workingTemplate);\n const isNewTemplate = !processedTemplate.id || processedTemplate.id.startsWith('template-');\n\n if (!isNewTemplate) {\n try {\n this.isSavingTemplate = true;\n const updated = await updateQuickMessageTemplate(processedTemplate);\n const [normalized] = this.cloneTemplates([updated]);\n this.upsertTemplate(normalized);\n void this.fetchTemplates({ reset: true });\n } catch (error: unknown) {\n showErrorDialog(error, '[quick-message-template] Failed to update template');\n } finally {\n this.isSavingTemplate = false;\n }\n return;\n }\n\n try {\n this.isSavingTemplate = true;\n const created = await createQuickMessageTemplate(processedTemplate);\n const [normalized] = this.cloneTemplates([created]);\n this.upsertTemplate(normalized);\n void this.fetchTemplates({ reset: true });\n } catch (error: unknown) {\n showErrorDialog(error, '[quick-message-template] Failed to create template');\n } finally {\n this.isSavingTemplate = false;\n }\n }\n\n private requestDeleteTemplate(template: QuickMessageTemplateModel) {\n if (!(template && template.id) || this.deletingTemplateId) {\n return;\n }\n\n this.templatePendingDelete = template;\n const t = useTranslation();\n const title = t('quick_message.delete_template_title');\n\n openDialog({\n open: true,\n type: DIALOG_TYPE.WARNING,\n title,\n buttonName: t('confirm'),\n cancelButtonName: t('cancel'),\n onSubmitDialog: () => {\n this.confirmDeleteTemplate();\n },\n onCloseDialog: () => {\n this.templatePendingDelete = undefined;\n },\n });\n }\n\n private async confirmDeleteTemplate() {\n const template = this.templatePendingDelete;\n if (!(template && template.id) || this.deletingTemplateId) {\n this.templatePendingDelete = undefined;\n return;\n }\n\n this.deletingTemplateId = template.id;\n this.templatePendingDelete = undefined;\n\n try {\n await deleteQuickMessageTemplate(template.id);\n const remaining = this.templates.filter(item => item.id !== template.id);\n this.setTemplates(remaining);\n this.totalTemplates = Math.max(0, this.totalTemplates - 1);\n void this.fetchTemplates({ reset: true });\n } catch (error: unknown) {\n showErrorDialog(error, '[quick-message-template] Failed to delete template');\n } finally {\n this.deletingTemplateId = undefined;\n }\n }\n\n private renderSelectPlatformButton(name: string, onClick: () => void, isSelected: boolean) {\n return (\n <button class={`cursor-pointer inline-flex items-center rounded-full px-4 py-1 text-[10px] font-semibold ${isSelected ? 'text-white bg-primary' : 'text-primary border border-primary'}`} onClick={onClick}>{name}</button>\n )\n }\n\n render() {\n const theme = configStore.get('theme');\n const t = useTranslation();\n const filteredTemplates = this.filterTemplates();\n const showBottomSpinner = (this.isLoading && filteredTemplates.length > 0) || this.isLoadingMore;\n\n return (\n <Host class=\"relative flex min-h-0 flex-1 flex-col gap-2\" data-theme={theme}>\n {!this.isMaster && !this.isZignal && <div class=\"flex items-center gap-2\">\n {this.renderSelectPlatformButton('ZIGNAL', () => this.isSelectZignal = true, this.isSelectZignal)}\n {this.renderSelectPlatformButton('ZWIZ.AI', () => this.isSelectZignal = false, !this.isSelectZignal)}\n </div>}\n\n <div class=\"flex flex-col min-h-0 flex-1\">\n <form class=\"relative w-full mb-2\" onSubmit={event => this.handleSearchSubmit(event)}>\n <input\n type=\"text\"\n class=\"w-full border border-divider text-sm px-4 py-2 rounded-lg ring-primary focus:outline-none focus:border-primary bg-background text-surface\"\n placeholder={t('quick_message.search_template')}\n value={this.searchTemplate}\n onInput={event => this.handleSearchInput(event)}\n />\n {this.searchTemplate && (\n <button type=\"button\" class=\"absolute inset-y-0 right-3 flex items-center text-xs opacity-70 transition-opacity hover:opacity-100\" onClick={() => this.clearSearch()}>\n <Icon name=\"X\" addClass=\"size-4\" />\n </button>\n )}\n </form>\n\n <div\n class=\"flex flex-1 flex-col gap-3 overflow-y-auto min-h-0\"\n ref={el => {\n this.scrollContainer = el ? (el as HTMLDivElement) : undefined;\n }}\n onScroll={event => this.handleScroll(event)}\n >\n {this.isSelectZignal && (\n <button\n class=\"inline-flex items-center justify-center gap-2 rounded-xl border-[1.5px] border-dashed px-4 py-2 text-primary cursor-pointer\"\n type=\"button\"\n onClick={() => this.openTemplateDialog(undefined, 'create')}\n >\n <Icon name=\"Plus\" addClass=\"size-4\" />\n <span class=\"text-sm\">{t('quick_message.add_template')}</span>\n </button>\n )}\n\n {this.isLoading && filteredTemplates.length === 0 ? (\n <div class=\"flex flex-1 items-center justify-center py-10 text-sm text-slate-500\">\n <Icon name=\"Loader2\" addClass=\"size-6 animate-spin\" />\n </div>\n ) : (\n <div class=\"flex flex-col gap-3\">\n {filteredTemplates.length === 0 && <div class=\"py-10 text-center text-sm text-slate-500\">{t('quick_message.template_empty')}</div>}\n\n {filteredTemplates.map(template => {\n const lastUpdatedAt = template.last_updated_at || template.created_at || new Date();\n const formattedDate = dayjs(lastUpdatedAt).tz().format('DD/MM/YYYY HH:mm');\n const rawLastUpdatedBy = template.last_updated_by || template.created_by || '';\n const displayUpdatedBy = typeof rawLastUpdatedBy === 'string' && rawLastUpdatedBy.trim().length > 0 ? rawLastUpdatedBy : '-';\n\n return (\n <div\n class=\"quick-message-template__card border-primary rounded-2xl border-[1.5px] px-4 py-4 shadow-[0_8px_24px_rgba(15,23,42,0.08)]\"\n key={template.id}\n >\n <div class=\"flex flex-col sm:flex-row items-start gap-3 sm:min-w-0\">\n <div class=\"flex-1 flex flex-col gap-1.5 w-full overflow-hidden\">\n <div class=\"text-base font-semibold truncate\" title={template.title}>\n {template.title}\n </div>\n <div class=\"text-[11px] text-theme-gray\">{t('quick_message.updated_at').replace('{date}', formattedDate).replace('{by}', displayUpdatedBy)}</div>\n </div>\n <div class=\"flex gap-4 flex-row items-center self-end\">\n {this.isMaster && <button type=\"button\" onClick={() => this.handleTemplateAction(template, 'edit')} aria-label={t('edit')}>\n <Icon name=\"Pencil\" addClass=\"size-4 cursor-pointer text-primary\" />\n </button>}\n {this.isMaster && <button\n type=\"button\"\n aria-label={t('delete')}\n onClick={() => this.requestDeleteTemplate(template)}\n disabled={Boolean(this.deletingTemplateId)}\n class={`${this.deletingTemplateId ? 'opacity-60 cursor-not-allowed' : 'cursor-pointer'}`}\n >\n {this.deletingTemplateId === template.id ? (\n <Icon name=\"Loader2\" addClass=\"size-4 animate-spin text-primary\" />\n ) : (\n <Icon name=\"Trash2\" addClass=\"size-4 text-primary\" />\n )}\n </button>}\n {!this.isMaster && (\n <button\n type=\"button\"\n class=\"inline-flex items-center justify-center rounded-full border px-4 py-2 text-xs font-semibold cursor-pointer border-primary text-primary\"\n onClick={() => this.handleTemplateAction(template, 'edit-send')}\n >\n {t('quick_message.edit_before_send')}\n </button>\n )}\n {!this.isMaster && (\n <button\n type=\"button\"\n class=\"inline-flex items-center justify-center rounded-full px-4 py-2 text-xs font-semibold text-white cursor-pointer bg-primary\"\n onClick={() => this.handleTemplateAction(template, 'send')}\n >\n {t('quick_message.send_now')}\n </button>\n )}\n <button\n type=\"button\"\n class=\"quick-message-template__toggle inline-flex h-9 w-9 items-center justify-center rounded-full cursor-pointer\"\n onClick={() => this.toggleTemplateExpansion(template.id)}\n >\n <Icon name={template.isExpanded ? 'ChevronUp' : 'ChevronDown'} />\n </button>\n </div>\n </div>\n {template.isExpanded && (\n <div class=\"mt-4 flex flex-col gap-2\">\n {template.contents.map(content => (\n <div key={content.id} class=\"border border-surface rounded-xl p-4\">\n {this.renderTemplateContent(content)}\n </div>\n ))}\n </div>\n )}\n </div>\n );\n })}\n </div>\n )}\n {showBottomSpinner && (\n <div class=\"flex justify-center py-4 text-sm text-slate-500\">\n <Icon name=\"Loader2\" addClass=\"size-5 animate-spin\" />\n </div>\n )}\n </div>\n </div>\n\n {this.showAddTemplateDialog && (\n <quick-message-add-template\n handleClose={() => this.closeTemplateDialog()}\n handleSave={template => this.handleTemplateSave(template)}\n handleSend={template => this.handleTemplateAction(template, 'send')}\n initialTemplate={this.editingTemplate}\n mode={this.dialogMode}\n isSaving={this.isSavingTemplate}\n />\n )}\n </Host>\n );\n }\n}\n"],"version":3}
|
|
1
|
+
{"file":"quick-message-template2.js","mappings":"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","names":["__stencil_proxyCustomElement","HTMLElement","showErrorDialog"],"sources":["src/components/quick-message-template/quick-message-template.css?tag=quick-message-template","src/components/quick-message-template/quick-message-template.tsx"],"sourcesContent":[".quick-message-template__card {\n box-shadow: 0 8px 24px rgba(15, 23, 42, 0.08);\n}\n\n.quick-message-template__button-action {\n color: var(--quick-modal-primary);\n}\n\n.quick-message-template__toggle {\n border: 1px solid rgba(148, 163, 184, 0.4);\n}\n\n.quick-message-template__dialog-overlay {\n position: absolute;\n inset: 0;\n background: rgba(15, 23, 42, 0.35);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 70;\n padding: 16px;\n}\n\n.quick-message-template__dialog {\n width: min(440px, 100%);\n border-radius: 16px;\n box-shadow: 0 20px 45px rgba(17, 24, 39, 0.22);\n border: 1px solid rgba(148, 163, 184, 0.25);\n display: flex;\n flex-direction: column;\n max-height: min(440px, 100%);\n}\n\n.quick-message-template__dialog-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 18px 20px 12px;\n border-bottom: 1px solid rgba(148, 163, 184, 0.28);\n}\n\n.quick-message-template__dialog-header h3 {\n font-size: 16px;\n font-weight: 600;\n margin: 0;\n}\n\n.quick-message-template__dialog-close {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n border-radius: 9999px;\n border: none;\n background: transparent;\n cursor: pointer;\n}\n\n.quick-message-template__dialog-body {\n display: flex;\n flex-direction: column;\n gap: 16px;\n padding: 16px 20px;\n overflow-y: auto;\n}\n\n.quick-message-template__input,\n.quick-message-template__textarea {\n border-radius: 12px;\n border-width: 1px;\n padding: 10px 14px;\n font-size: 14px;\n resize: none;\n}\n\n.quick-message-template__textarea {\n min-height: 100px;\n}\n\n.quick-message-template__dialog-footer {\n display: flex;\n justify-content: flex-end;\n gap: 12px;\n padding: 16px 20px 20px;\n border-top: 1px solid rgba(148, 163, 184, 0.18);\n}\n\n.quick-message-template__dialog-button {\n border-radius: 9999px;\n font-weight: 600;\n font-size: 13px;\n padding: 10px 18px;\n border: none;\n cursor: pointer;\n}\n\n.quick-message-template__dialog-button--ghost {\n background: transparent;\n color: rgba(100, 116, 139, 1);\n}\n\n.quick-message-template__dialog-button--primary {\n background: var(--quick-modal-primary);\n color: #fff;\n box-shadow: 0 10px 25px var(--quick-modal-primary-shadow);\n}\n\n.quick-message-template__dialog-button--primary:disabled {\n opacity: 0.4;\n cursor: not-allowed;\n box-shadow: none;\n}\n","import { Component, Event, EventEmitter, Host, Prop, State, Watch, h } from '@stencil/core';\nimport dayjs from 'dayjs';\nimport { createQuickMessageTemplate, deleteQuickMessageTemplate, getQuickMessageTemplates, updateQuickMessageTemplate } from '../../api/quick-message';\nimport { QuickMessageTemplate as QuickMessageTemplateModel, QuickMessageTemplateContent } from '../../store/type';\nimport { configStore, selectedChatStore } from '../../store/store';\nimport { useTranslation } from '../../utils/utils';\nimport { debounce } from '../../utils/helpers';\nimport { Icon } from '../internal-component/icon';\nimport type { TemplateSelectionMode } from '../quick-message-modal/template-selection';\nimport { DIALOG_TYPE, openDialog, handleError as showErrorDialog } from '../../store/dialog';\n\n@Component({\n tag: 'quick-message-template',\n styleUrl: 'quick-message-template.css',\n})\nexport class QuickMessageTemplateComponent {\n @Prop() handleClose?: () => void;\n @Prop() value?: string | QuickMessageTemplateModel[];\n @Prop() isMaster: boolean = false;\n @Prop() isZignal: boolean = true;\n\n @State() private searchTemplate = '';\n @State() private templates: QuickMessageTemplateModel[] = [];\n @State() private showAddTemplateDialog = false;\n @State() private editingTemplate?: QuickMessageTemplateModel;\n @State() private dialogMode: TemplateSelectionMode = 'create';\n @State() private isLoading = false;\n @State() private isLoadingMore = false;\n @State() private isSavingTemplate = false;\n @State() private deletingTemplateId?: string;\n @State() private templatePendingDelete?: QuickMessageTemplateModel;\n @State() private totalTemplates = 0;\n @State() private totalPages = 0;\n @State() private isSelectZignal = true;\n\n private page = 1;\n private readonly pageSize = 10;\n private readonly loadMoreThreshold = 160;\n private currentSearch = '';\n private scrollContainer?: HTMLDivElement;\n\n private debouncedSearch = debounce((value: string) => {\n void this.fetchTemplates({ search: value, reset: true });\n }, 500);\n\n @Event({ bubbles: true, composed: true }) templatesChange!: EventEmitter<QuickMessageTemplateModel[]>;\n @Event({ bubbles: true, composed: true }) sendTemplate!: EventEmitter<QuickMessageTemplateModel>;\n\n componentWillLoad() {\n this.syncTemplatesFromProp(this.value);\n }\n\n async componentDidLoad() {\n await this.fetchTemplates({ reset: true });\n }\n\n componentDidRender() {\n this.autoLoadMoreIfNeeded();\n }\n\n @Watch('value')\n protected handleValueChange(newValue?: string | QuickMessageTemplateModel[]) {\n this.syncTemplatesFromProp(newValue);\n }\n\n @Watch('isSelectZignal')\n protected handleTabChange() {\n void this.fetchTemplates({ reset: true });\n }\n\n private syncTemplatesFromProp(value?: string | QuickMessageTemplateModel[]) {\n if (value === undefined || value === null) {\n this.setTemplates([], false);\n return;\n }\n\n const parsed = this.parseTemplateValue(value);\n this.setTemplates(parsed, false);\n }\n\n private mergeWithExistingState(fetched: QuickMessageTemplateModel[]): QuickMessageTemplateModel[] {\n if (this.templates.length === 0) {\n return fetched;\n }\n\n const expandedMap = new Map(this.templates.map(template => [template.id, template.isExpanded || false]));\n\n return fetched.map(template => ({\n ...template,\n isExpanded: expandedMap.get(template.id) || template.isExpanded || false,\n }));\n }\n\n private appendTemplates(fetched: QuickMessageTemplateModel[]): QuickMessageTemplateModel[] {\n if (fetched.length === 0) {\n return [...this.templates];\n }\n\n const next = [...this.templates];\n const indexMap = new Map(next.map((template, index) => [template.id, index]));\n\n fetched.forEach(template => {\n const existingIndex = indexMap.get(template.id);\n if (existingIndex !== undefined) {\n next[existingIndex] = {\n ...template,\n isExpanded: next[existingIndex].isExpanded || false,\n };\n return;\n }\n\n next.push({ ...template, isExpanded: template.isExpanded || false });\n indexMap.set(template.id, next.length - 1);\n });\n\n return next;\n }\n\n private async fetchTemplates({ search, reset = true }: { search?: string; reset?: boolean } = {}) {\n const businessId = configStore.get('businessId');\n const shopId = configStore.get('shopId');\n const selectedChat = selectedChatStore.get('selectedChat');\n\n if (!businessId || !shopId) {\n return;\n }\n\n if (reset ? this.isLoading : this.isLoadingMore) {\n return;\n }\n\n const normalizedSearch = search !== undefined ? search : this.currentSearch;\n const trimmedSearch = normalizedSearch ? normalizedSearch.trim() : '';\n const nextPage = reset ? 1 : this.page + 1;\n\n if (search !== undefined) {\n this.searchTemplate = normalizedSearch || '';\n }\n\n if (reset) {\n this.isLoading = true;\n } else {\n this.isLoadingMore = true;\n }\n\n try {\n const response = await getQuickMessageTemplates({\n search: trimmedSearch ? trimmedSearch : undefined,\n page: nextPage,\n limit: this.pageSize,\n is_zwiz: !this.isSelectZignal,\n connection_id: selectedChat ? selectedChat.connection.id : undefined,\n });\n\n const normalized = this.cloneTemplates(response.templates || []);\n const nextTemplates = reset ? this.mergeWithExistingState(normalized) : this.appendTemplates(normalized);\n\n this.page = response.page > 0 ? response.page : nextPage;\n const resolvedTotalPages = response.total_pages > 0 ? response.total_pages : nextTemplates.length > 0 ? 1 : 0;\n this.totalPages = resolvedTotalPages;\n this.totalTemplates = response.total;\n this.currentSearch = trimmedSearch;\n\n this.setTemplates(nextTemplates);\n } catch (error: unknown) {\n showErrorDialog(error, '[quick-message-template] Failed to fetch templates');\n } finally {\n if (reset) {\n this.isLoading = false;\n } else {\n this.isLoadingMore = false;\n }\n }\n }\n\n private async loadMoreTemplates() {\n if (this.isLoading || this.isLoadingMore) {\n return;\n }\n\n if (this.totalTemplates > 0 && this.templates.length >= this.totalTemplates) {\n return;\n }\n\n if (this.totalPages === 0 || this.page >= this.totalPages) {\n return;\n }\n\n await this.fetchTemplates({ reset: false });\n }\n\n private handleScroll(event: Event) {\n const target = event.target as HTMLElement | null;\n if (!target) {\n return;\n }\n\n this.triggerLoadMoreIfNeeded(target);\n }\n\n private async handleSearchSubmit(event?: Event) {\n if (event) event.preventDefault();\n await this.fetchTemplates({ search: this.searchTemplate, reset: true });\n }\n\n private handleSearchInput(event: Event) {\n const value = (event.target as HTMLInputElement).value;\n this.searchTemplate = value;\n\n this.debouncedSearch(value);\n }\n\n private clearSearch() {\n if (!this.searchTemplate && !this.currentSearch) {\n return;\n }\n\n this.searchTemplate = '';\n\n if (!this.isLoading && !this.isLoadingMore) {\n void this.fetchTemplates({ search: '', reset: true });\n }\n }\n\n private parseTemplateValue(value: string | QuickMessageTemplateModel[]): QuickMessageTemplateModel[] {\n if (typeof value === 'string') {\n try {\n const deserialized = JSON.parse(value) as QuickMessageTemplateModel[];\n return this.cloneTemplates(deserialized);\n } catch (error: unknown) {\n console.warn('[quick-message-template] Failed to parse templates value', error);\n return [];\n }\n }\n\n return this.cloneTemplates(value);\n }\n\n private cloneTemplates(templates: QuickMessageTemplateModel[]): QuickMessageTemplateModel[] {\n return (templates || []).map(template => {\n const rawContents = template.contents || [];\n\n const normalizedContents = rawContents.map(content => {\n const rawMenuList = content.menu_list || [];\n const menuList = rawMenuList.map(menu => ({\n ...menu,\n buttons: (menu.buttons || []).map(button => ({ ...button })),\n }));\n\n return {\n ...content,\n buttons: (content.buttons || []).map(button => ({ ...button })),\n menu_list: menuList,\n };\n });\n\n return {\n ...template,\n contents: normalizedContents,\n };\n });\n }\n\n private setTemplates(next: QuickMessageTemplateModel[], shouldEmit = true) {\n this.templates = next;\n if (shouldEmit) {\n const payload = this.cloneTemplates(next);\n this.templatesChange.emit(payload);\n }\n }\n\n private canAttemptLoadMore(): boolean {\n if (this.isLoading || this.isLoadingMore) {\n return false;\n }\n\n if (this.totalTemplates > 0 && this.templates.length >= this.totalTemplates) {\n return false;\n }\n\n if (this.totalPages === 0 || this.page >= this.totalPages) {\n return false;\n }\n\n return true;\n }\n\n private triggerLoadMoreIfNeeded(container: HTMLElement) {\n if (!this.canAttemptLoadMore()) {\n return;\n }\n\n const remaining = container.scrollHeight - container.scrollTop - container.clientHeight;\n if (remaining < this.loadMoreThreshold) {\n void this.loadMoreTemplates();\n }\n }\n\n private autoLoadMoreIfNeeded() {\n if (!this.scrollContainer) {\n return;\n }\n\n this.triggerLoadMoreIfNeeded(this.scrollContainer);\n }\n\n private toggleTemplateExpansion(id: string) {\n this.setTemplates(this.templates.map(template => (template.id === id ? { ...template, isExpanded: !template.isExpanded } : template)));\n }\n\n private filterTemplates(): QuickMessageTemplateModel[] {\n const search = this.currentSearch.trim().toLowerCase();\n if (!search) return this.templates;\n return this.templates.filter(template => template.title.toLowerCase().includes(search));\n }\n\n private handleTemplateAction(template: QuickMessageTemplateModel, mode: TemplateSelectionMode) {\n if (mode === 'create' || mode === 'edit' || mode === 'edit-send') {\n this.openTemplateDialog(template, mode);\n return;\n }\n if (mode === 'send') {\n const clonedTemplate: QuickMessageTemplateModel = {\n ...template,\n contents: (template.contents || []).map(content => ({\n ...content,\n buttons: [...(content.buttons || [])],\n menu_list: (content.menu_list || []).map(menu => ({\n ...menu,\n buttons: [...(menu.buttons || [])],\n })),\n })),\n };\n\n const processedTemplate = this.processTemplate(clonedTemplate);\n\n this.closeTemplateDialog();\n if (this.handleClose) this.handleClose();\n this.sendTemplate.emit(processedTemplate);\n }\n }\n\n private renderTemplateContent(content: QuickMessageTemplateContent) {\n switch (content.type) {\n case 'text':\n return (\n <div class=\"flex flex-col gap-2\">\n <p class=\"text-surface whitespace-pre-line text-sm leading-relaxed\">{content.text}</p>\n </div>\n );\n case 'button':\n return (\n <div class=\"flex flex-col gap-2\">\n <p class=\"text-surface whitespace-pre-line text-sm leading-relaxed\">{content.text}</p>\n <div class=\"flex flex-col gap-1.5\">\n {content.buttons.length > 0 && (\n <div class=\"flex flex-col gap-2\">\n {content.buttons.map(button => (\n <div\n class=\"flex w-full flex-col items-center gap-1 rounded-xl px-3 py-2 text-sm font-medium text-white shadow-sm bg-primary truncate\"\n key={button.id}\n >\n <span class=\"w-full text-center leading-tight truncate\">{button.text || '-'}</span>\n <span class=\"w-full text-center text-xs leading-none opacity-80 truncate\">{button.action_type === 'text' ? '-' : button.action || '-'}</span>\n </div>\n ))}\n </div>\n )}\n </div>\n </div>\n );\n case 'image':\n return <div class=\"flex flex-wrap gap-3\">{content.file_url && this.renderImageMedia(content.file_url)}</div>;\n case 'menu_list':\n return (\n <div class=\"flex gap-3 overflow-x-auto pb-1\">\n {content.menu_list.map(menu => (\n <div class=\"flex w-60 shrink-0 flex-col overflow-hidden rounded-[18px] border-[1.5px] shadow-sm border-primary bg-background\" key={menu.id}>\n <div class=\"relative h-40 border-b-[1.5px] border-primary overflow-hidden\">\n {menu.file_url ? (\n <img src={menu.file_url} alt={menu.title} class=\"h-full w-full object-cover\" loading=\"lazy\" />\n ) : (\n <div class=\"flex h-full w-full items-center justify-center bg-background text-theme-gray opacity-60\">\n <Icon name=\"Image\" addClass=\"size-10\" />\n </div>\n )}\n </div>\n\n <div class=\"flex flex-col gap-2 px-4 py-4\">\n {menu.title && <div class=\"text-sm font-semibold leading-snug\">{menu.title}</div>}\n {menu.description && <div class=\"text-xs leading-snug text-theme-gray\">{menu.description}</div>}\n\n {menu.buttons.length > 0 && (\n <div class=\"flex flex-col gap-2\">\n {menu.buttons.map(button => (\n <div\n class=\"flex w-full flex-col items-center gap-1 rounded-xl px-3 py-2 text-sm font-medium text-white shadow-sm bg-primary\"\n key={button.id}\n >\n <span class=\"w-full text-center leading-tight truncate\">{button.text || '-'}</span>\n <span class=\"w-full text-center text-xs leading-none opacity-80 truncate\">{button.action_type === 'text' ? '-' : button.action || '-'}</span>\n </div>\n ))}\n </div>\n )}\n </div>\n </div>\n ))}\n </div>\n );\n case 'video':\n return (\n <video src={content.file_url} class=\"h-[220px] object-cover rounded-xl\" controls>\n <track kind=\"captions\" src=\"\" label=\"English\" />\n </video>\n );\n default:\n return null;\n }\n }\n\n private renderImageMedia(fileUrl: string) {\n return <img src={fileUrl} alt=\"\" class=\"h-[200px] w-[200px] rounded-xl border object-cover border-surface\" loading=\"lazy\" />;\n }\n\n private closeTemplateDialog() {\n this.showAddTemplateDialog = false;\n this.editingTemplate = undefined;\n this.dialogMode = 'edit';\n this.isSavingTemplate = false;\n }\n\n private openTemplateDialog(template?: QuickMessageTemplateModel, mode: TemplateSelectionMode = 'edit') {\n this.editingTemplate = template ? { ...template } : undefined;\n this.dialogMode = mode;\n this.showAddTemplateDialog = true;\n this.isSavingTemplate = false;\n }\n\n private processTemplate(template: QuickMessageTemplateModel) {\n // remove empty menuList\n template.contents = template.contents.map(content => {\n if (content.type === 'menu_list') {\n content.menu_list = content.menu_list.filter(menu => menu.buttons.length > 0 || menu.file_url || menu.title || menu.description);\n }\n return content;\n });\n\n // remove empty content\n template.contents = template.contents.filter(content => content.text || content.buttons.length > 0 || content.file_url || content.menu_list.length > 0);\n\n return template;\n }\n\n private upsertTemplate(template: QuickMessageTemplateModel, { closeDialog = true }: { closeDialog?: boolean } = {}) {\n const withMeta: QuickMessageTemplateModel = {\n ...template,\n isExpanded: (this.editingTemplate ? this.editingTemplate.id : undefined) === template.id ? this.editingTemplate.isExpanded : true,\n };\n\n const exists = this.templates.some(item => item.id === withMeta.id);\n const nextTemplates = exists ? this.templates.map(item => (item.id === withMeta.id ? withMeta : item)) : [...this.templates, withMeta];\n\n this.setTemplates(nextTemplates);\n\n if (closeDialog) {\n this.closeTemplateDialog();\n }\n }\n\n private async handleTemplateSave(template: QuickMessageTemplateModel) {\n if (this.isSavingTemplate) {\n return;\n }\n\n const cloned = this.cloneTemplates([template]);\n const workingTemplate = cloned[0];\n if (!workingTemplate) {\n return;\n }\n\n const processedTemplate = this.processTemplate(workingTemplate);\n const isNewTemplate = !processedTemplate.id || processedTemplate.id.startsWith('template-');\n\n if (!isNewTemplate) {\n try {\n this.isSavingTemplate = true;\n const updated = await updateQuickMessageTemplate(processedTemplate);\n const [normalized] = this.cloneTemplates([updated]);\n this.upsertTemplate(normalized);\n void this.fetchTemplates({ reset: true });\n } catch (error: unknown) {\n showErrorDialog(error, '[quick-message-template] Failed to update template');\n } finally {\n this.isSavingTemplate = false;\n }\n return;\n }\n\n try {\n this.isSavingTemplate = true;\n const created = await createQuickMessageTemplate(processedTemplate);\n const [normalized] = this.cloneTemplates([created]);\n this.upsertTemplate(normalized);\n void this.fetchTemplates({ reset: true });\n } catch (error: unknown) {\n showErrorDialog(error, '[quick-message-template] Failed to create template');\n } finally {\n this.isSavingTemplate = false;\n }\n }\n\n private requestDeleteTemplate(template: QuickMessageTemplateModel) {\n if (!(template && template.id) || this.deletingTemplateId) {\n return;\n }\n\n this.templatePendingDelete = template;\n const t = useTranslation();\n const title = t('quick_message.delete_template_title');\n\n openDialog({\n open: true,\n type: DIALOG_TYPE.WARNING,\n title,\n buttonName: t('confirm'),\n cancelButtonName: t('cancel'),\n onSubmitDialog: () => {\n this.confirmDeleteTemplate();\n },\n onCloseDialog: () => {\n this.templatePendingDelete = undefined;\n },\n });\n }\n\n private async confirmDeleteTemplate() {\n const template = this.templatePendingDelete;\n if (!(template && template.id) || this.deletingTemplateId) {\n this.templatePendingDelete = undefined;\n return;\n }\n\n this.deletingTemplateId = template.id;\n this.templatePendingDelete = undefined;\n\n try {\n await deleteQuickMessageTemplate(template.id);\n const remaining = this.templates.filter(item => item.id !== template.id);\n this.setTemplates(remaining);\n this.totalTemplates = Math.max(0, this.totalTemplates - 1);\n void this.fetchTemplates({ reset: true });\n } catch (error: unknown) {\n showErrorDialog(error, '[quick-message-template] Failed to delete template');\n } finally {\n this.deletingTemplateId = undefined;\n }\n }\n\n private renderSelectPlatformButton(name: string, onClick: () => void, isSelected: boolean) {\n return (\n <button class={`cursor-pointer inline-flex items-center rounded-full px-4 py-1 text-[10px] font-semibold ${isSelected ? 'text-white bg-primary' : 'text-primary border border-primary'}`} onClick={onClick}>{name}</button>\n )\n }\n\n render() {\n const theme = configStore.get('theme');\n const t = useTranslation();\n const filteredTemplates = this.filterTemplates();\n const showBottomSpinner = (this.isLoading && filteredTemplates.length > 0) || this.isLoadingMore;\n\n return (\n <Host class=\"relative flex min-h-0 flex-1 flex-col gap-2\" data-theme={theme}>\n {!this.isMaster && !this.isZignal && <div class=\"flex items-center gap-2\">\n {this.renderSelectPlatformButton('ZIGNAL', () => this.isSelectZignal = true, this.isSelectZignal)}\n {this.renderSelectPlatformButton('ZWIZ.AI', () => this.isSelectZignal = false, !this.isSelectZignal)}\n </div>}\n\n <div class=\"flex flex-col min-h-0 flex-1\">\n <form class=\"relative w-full mb-2\" onSubmit={event => this.handleSearchSubmit(event)}>\n <input\n type=\"text\"\n class=\"w-full border border-divider text-sm px-4 py-2 rounded-lg ring-primary focus:outline-none focus:border-primary bg-background text-surface\"\n placeholder={t('quick_message.search_template')}\n value={this.searchTemplate}\n onInput={event => this.handleSearchInput(event)}\n />\n {this.searchTemplate && (\n <button type=\"button\" class=\"absolute inset-y-0 right-3 flex items-center text-xs opacity-70 transition-opacity hover:opacity-100\" onClick={() => this.clearSearch()}>\n <Icon name=\"X\" addClass=\"size-4\" />\n </button>\n )}\n </form>\n\n <div\n class=\"flex flex-1 flex-col gap-3 overflow-y-auto min-h-0\"\n ref={el => {\n this.scrollContainer = el ? (el as HTMLDivElement) : undefined;\n }}\n onScroll={event => this.handleScroll(event)}\n >\n {this.isSelectZignal && (\n <button\n class=\"inline-flex items-center justify-center gap-2 rounded-xl border-[1.5px] border-dashed px-4 py-2 text-primary cursor-pointer\"\n type=\"button\"\n onClick={() => this.openTemplateDialog(undefined, 'create')}\n >\n <Icon name=\"Plus\" addClass=\"size-4\" />\n <span class=\"text-sm\">{t('quick_message.add_template')}</span>\n </button>\n )}\n\n {this.isLoading && filteredTemplates.length === 0 ? (\n <div class=\"flex flex-1 items-center justify-center py-10 text-sm text-slate-500\">\n <Icon name=\"Loader2\" addClass=\"size-6 animate-spin\" />\n </div>\n ) : (\n <div class=\"flex flex-col gap-3\">\n {filteredTemplates.length === 0 && <div class=\"py-10 text-center text-sm text-slate-500\">{t('quick_message.template_empty')}</div>}\n\n {filteredTemplates.map(template => {\n const lastUpdatedAt = template.last_updated_at || template.created_at || new Date();\n const formattedDate = dayjs(lastUpdatedAt).tz().format('DD/MM/YYYY HH:mm');\n const rawLastUpdatedBy = template.last_updated_by || template.created_by || '';\n const displayUpdatedBy = typeof rawLastUpdatedBy === 'string' && rawLastUpdatedBy.trim().length > 0 ? rawLastUpdatedBy : '-';\n\n return (\n <div\n class=\"quick-message-template__card border-primary rounded-2xl border-[1.5px] px-4 py-4 shadow-[0_8px_24px_rgba(15,23,42,0.08)]\"\n key={template.id}\n >\n <div class=\"flex flex-col sm:flex-row items-start gap-3 sm:min-w-0\">\n <div class=\"flex-1 flex flex-col gap-1.5 w-full overflow-hidden\">\n <div class=\"text-base font-semibold truncate\" title={template.title}>\n {template.title}\n </div>\n <div class=\"text-[11px] text-theme-gray\">{t('quick_message.updated_at').replace('{date}', formattedDate).replace('{by}', displayUpdatedBy)}</div>\n </div>\n <div class=\"flex gap-4 flex-row items-center self-end\">\n {this.isMaster && <button type=\"button\" onClick={() => this.handleTemplateAction(template, 'edit')} aria-label={t('edit')}>\n <Icon name=\"Pencil\" addClass=\"size-4 cursor-pointer text-primary\" />\n </button>}\n {this.isMaster && <button\n type=\"button\"\n aria-label={t('delete')}\n onClick={() => this.requestDeleteTemplate(template)}\n disabled={Boolean(this.deletingTemplateId)}\n class={`${this.deletingTemplateId ? 'opacity-60 cursor-not-allowed' : 'cursor-pointer'}`}\n >\n {this.deletingTemplateId === template.id ? (\n <Icon name=\"Loader2\" addClass=\"size-4 animate-spin text-primary\" />\n ) : (\n <Icon name=\"Trash2\" addClass=\"size-4 text-primary\" />\n )}\n </button>}\n {!this.isMaster && (\n <button\n type=\"button\"\n class=\"inline-flex items-center justify-center rounded-full border px-4 py-2 text-xs font-semibold cursor-pointer border-primary text-primary\"\n onClick={() => this.handleTemplateAction(template, 'edit-send')}\n >\n {t('quick_message.edit_before_send')}\n </button>\n )}\n {!this.isMaster && (\n <button\n type=\"button\"\n class=\"inline-flex items-center justify-center rounded-full px-4 py-2 text-xs font-semibold text-white cursor-pointer bg-primary\"\n onClick={() => this.handleTemplateAction(template, 'send')}\n >\n {t('quick_message.send_now')}\n </button>\n )}\n <button\n type=\"button\"\n class=\"quick-message-template__toggle inline-flex h-9 w-9 items-center justify-center rounded-full cursor-pointer\"\n onClick={() => this.toggleTemplateExpansion(template.id)}\n >\n <Icon name={template.isExpanded ? 'ChevronUp' : 'ChevronDown'} />\n </button>\n </div>\n </div>\n {template.isExpanded && (\n <div class=\"mt-4 flex flex-col gap-2\">\n {template.contents.map(content => (\n <div key={content.id} class=\"border border-surface rounded-xl p-4\">\n {this.renderTemplateContent(content)}\n </div>\n ))}\n </div>\n )}\n </div>\n );\n })}\n </div>\n )}\n {showBottomSpinner && (\n <div class=\"flex justify-center py-4 text-sm text-slate-500\">\n <Icon name=\"Loader2\" addClass=\"size-5 animate-spin\" />\n </div>\n )}\n </div>\n </div>\n\n {this.showAddTemplateDialog && (\n <quick-message-add-template\n handleClose={() => this.closeTemplateDialog()}\n handleSave={template => this.handleTemplateSave(template)}\n handleSend={template => this.handleTemplateAction(template, 'send')}\n initialTemplate={this.editingTemplate}\n mode={this.dialogMode}\n isSaving={this.isSavingTemplate}\n />\n )}\n </Host>\n );\n }\n}\n"],"version":3}
|