@aizu-chat/react 0.0.7 → 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. package/dist/chunk-BRNQSZ2E.mjs +931 -0
  2. package/dist/components.d.mts +2 -12
  3. package/dist/components.d.ts +2 -12
  4. package/dist/components.js +423 -313
  5. package/dist/components.mjs +3 -5
  6. package/dist/index.d.mts +1 -2
  7. package/dist/index.d.ts +1 -2
  8. package/dist/index.js +423 -357
  9. package/dist/index.mjs +2 -10
  10. package/package.json +1 -1
  11. package/dist/chunk-27KHUFCW.mjs +0 -826
  12. package/dist/chunk-2E7KQQED.mjs +0 -816
  13. package/dist/chunk-2PRXGXTN.mjs +0 -826
  14. package/dist/chunk-2UZJYWLD.mjs +0 -49
  15. package/dist/chunk-2ZNJT52V.mjs +0 -814
  16. package/dist/chunk-34B6VEJC.mjs +0 -677
  17. package/dist/chunk-35JN2QFA.mjs +0 -784
  18. package/dist/chunk-3FHGECHR.mjs +0 -829
  19. package/dist/chunk-3IU2OVAG.mjs +0 -780
  20. package/dist/chunk-3QKHSOJ4.mjs +0 -728
  21. package/dist/chunk-3XKU4RH2.mjs +0 -814
  22. package/dist/chunk-432NOVMD.mjs +0 -822
  23. package/dist/chunk-4FW2X356.mjs +0 -653
  24. package/dist/chunk-4KUZUKKS.mjs +0 -776
  25. package/dist/chunk-4UO5EJ54.mjs +0 -826
  26. package/dist/chunk-66DXSMQL.mjs +0 -826
  27. package/dist/chunk-6IIUDDOD.mjs +0 -775
  28. package/dist/chunk-6LVL2AO4.mjs +0 -660
  29. package/dist/chunk-6OMCLP7J.mjs +0 -727
  30. package/dist/chunk-6SYZLU5L.mjs +0 -782
  31. package/dist/chunk-6XLUHLNW.mjs +0 -826
  32. package/dist/chunk-6Z4U3TJM.mjs +0 -728
  33. package/dist/chunk-6ZNP2727.mjs +0 -686
  34. package/dist/chunk-75Q3MZEF.mjs +0 -52
  35. package/dist/chunk-A4YWLH3K.mjs +0 -751
  36. package/dist/chunk-AT5CG6CS.mjs +0 -53
  37. package/dist/chunk-B4CPQFKO.mjs +0 -826
  38. package/dist/chunk-BH52V6JW.mjs +0 -776
  39. package/dist/chunk-BYPRKP6J.mjs +0 -782
  40. package/dist/chunk-BZVP32PP.mjs +0 -826
  41. package/dist/chunk-C6T755JT.mjs +0 -780
  42. package/dist/chunk-CCFEXIKG.mjs +0 -815
  43. package/dist/chunk-CTYW4VK4.mjs +0 -815
  44. package/dist/chunk-D2UMLUGP.mjs +0 -685
  45. package/dist/chunk-D4DQP4GI.mjs +0 -817
  46. package/dist/chunk-DIBJNQPT.mjs +0 -782
  47. package/dist/chunk-DJQK65LJ.mjs +0 -822
  48. package/dist/chunk-DLQEX6QS.mjs +0 -661
  49. package/dist/chunk-EADN4TWS.mjs +0 -819
  50. package/dist/chunk-EAW7EHJI.mjs +0 -826
  51. package/dist/chunk-EBU5NLRJ.mjs +0 -661
  52. package/dist/chunk-EDBTUKCC.mjs +0 -738
  53. package/dist/chunk-EHQQJPCV.mjs +0 -53
  54. package/dist/chunk-EKELJTME.mjs +0 -674
  55. package/dist/chunk-ELAN3AIY.mjs +0 -784
  56. package/dist/chunk-EWW3DF5X.mjs +0 -814
  57. package/dist/chunk-EXJ5M326.mjs +0 -826
  58. package/dist/chunk-F3DEI4YK.mjs +0 -682
  59. package/dist/chunk-FBJJFSCR.mjs +0 -778
  60. package/dist/chunk-G7M72PUZ.mjs +0 -776
  61. package/dist/chunk-GFVIBK25.mjs +0 -673
  62. package/dist/chunk-GYZ6ICY2.mjs +0 -685
  63. package/dist/chunk-H733EISO.mjs +0 -826
  64. package/dist/chunk-H7C7VETZ.mjs +0 -776
  65. package/dist/chunk-HD2IHWNW.mjs +0 -776
  66. package/dist/chunk-HKAXD2CX.mjs +0 -776
  67. package/dist/chunk-HLRWI4YU.mjs +0 -778
  68. package/dist/chunk-HNPNRGTG.mjs +0 -686
  69. package/dist/chunk-HQYDHSWS.mjs +0 -678
  70. package/dist/chunk-HVPJAO66.mjs +0 -654
  71. package/dist/chunk-I36Q4NZE.mjs +0 -675
  72. package/dist/chunk-ICOCFEPA.mjs +0 -776
  73. package/dist/chunk-IMM7TFAT.mjs +0 -685
  74. package/dist/chunk-J5OEYYWK.mjs +0 -728
  75. package/dist/chunk-JDR62NUF.mjs +0 -729
  76. package/dist/chunk-JEOWW4D7.mjs +0 -49
  77. package/dist/chunk-JIAD2PHZ.mjs +0 -779
  78. package/dist/chunk-JMHZ4OMV.mjs +0 -814
  79. package/dist/chunk-JUYVQ5F6.mjs +0 -673
  80. package/dist/chunk-K2EPLJ4A.mjs +0 -728
  81. package/dist/chunk-K2WK46MB.mjs +0 -776
  82. package/dist/chunk-KM4P2EHL.mjs +0 -729
  83. package/dist/chunk-KR4PTVQ4.mjs +0 -779
  84. package/dist/chunk-KUHNPG4Q.mjs +0 -796
  85. package/dist/chunk-KXFNNAMR.mjs +0 -814
  86. package/dist/chunk-LEZIDZXE.mjs +0 -831
  87. package/dist/chunk-LMFIKGQM.mjs +0 -782
  88. package/dist/chunk-LT43AVHN.mjs +0 -780
  89. package/dist/chunk-MBHPFGVB.mjs +0 -782
  90. package/dist/chunk-MDMZAAPV.mjs +0 -685
  91. package/dist/chunk-MFFRGYEX.mjs +0 -728
  92. package/dist/chunk-O3U6ONKJ.mjs +0 -677
  93. package/dist/chunk-OEPSB4XZ.mjs +0 -686
  94. package/dist/chunk-OJ5M55LN.mjs +0 -660
  95. package/dist/chunk-OSHAWBTV.mjs +0 -800
  96. package/dist/chunk-OVDFBN6H.mjs +0 -800
  97. package/dist/chunk-OWFM4DXQ.mjs +0 -686
  98. package/dist/chunk-P4FEBZ5I.mjs +0 -829
  99. package/dist/chunk-QBXYSNTR.mjs +0 -675
  100. package/dist/chunk-QDS6QW7Y.mjs +0 -738
  101. package/dist/chunk-QN5L3XNN.mjs +0 -830
  102. package/dist/chunk-QOK4APM5.mjs +0 -728
  103. package/dist/chunk-QR37WSLB.mjs +0 -826
  104. package/dist/chunk-QS7TKK6W.mjs +0 -685
  105. package/dist/chunk-QTL5KRV3.mjs +0 -686
  106. package/dist/chunk-QV2LQKNI.mjs +0 -686
  107. package/dist/chunk-QV74GE66.mjs +0 -778
  108. package/dist/chunk-R3NQ7SPU.mjs +0 -780
  109. package/dist/chunk-R3Z7JF73.mjs +0 -673
  110. package/dist/chunk-S63OOCED.mjs +0 -781
  111. package/dist/chunk-SJJDDFKI.mjs +0 -830
  112. package/dist/chunk-SLS4OSOJ.mjs +0 -826
  113. package/dist/chunk-SRFLVMCW.mjs +0 -685
  114. package/dist/chunk-SUOZPZBK.mjs +0 -826
  115. package/dist/chunk-TBBN7SM4.mjs +0 -660
  116. package/dist/chunk-TLJKLZBR.mjs +0 -734
  117. package/dist/chunk-U4ODVQIJ.mjs +0 -728
  118. package/dist/chunk-UA2YL34U.mjs +0 -782
  119. package/dist/chunk-UOQWXJXH.mjs +0 -779
  120. package/dist/chunk-UYBDUWOL.mjs +0 -776
  121. package/dist/chunk-UZD3IED4.mjs +0 -676
  122. package/dist/chunk-V2YCL6RC.mjs +0 -798
  123. package/dist/chunk-V5ROKX6T.mjs +0 -779
  124. package/dist/chunk-VBZLGI7W.mjs +0 -819
  125. package/dist/chunk-VEAZMIG4.mjs +0 -830
  126. package/dist/chunk-VMG4TRFB.mjs +0 -750
  127. package/dist/chunk-VOLA2PFJ.mjs +0 -676
  128. package/dist/chunk-VTBZU2XN.mjs +0 -826
  129. package/dist/chunk-WC37DM4U.mjs +0 -816
  130. package/dist/chunk-WDLA4JJY.mjs +0 -778
  131. package/dist/chunk-WQ6BKSTC.mjs +0 -815
  132. package/dist/chunk-WXSNIINA.mjs +0 -778
  133. package/dist/chunk-WYBPKSFQ.mjs +0 -816
  134. package/dist/chunk-XFRN7OPZ.mjs +0 -686
  135. package/dist/chunk-XLRF64SW.mjs +0 -53
  136. package/dist/chunk-YLNMIJBD.mjs +0 -728
  137. package/dist/chunk-YUGESFKI.mjs +0 -819
  138. package/dist/chunk-YVDMWPWQ.mjs +0 -776
  139. package/dist/chunk-Z6L7TEVJ.mjs +0 -828
  140. package/dist/chunk-Z72DRRM6.mjs +0 -829
  141. package/dist/chunk-ZXF3RMZZ.mjs +0 -685
  142. package/dist/sdk.d.mts +0 -39
  143. package/dist/sdk.d.ts +0 -39
  144. package/dist/sdk.js +0 -121
  145. package/dist/sdk.mjs +0 -10
@@ -73,8 +73,7 @@ __export(components_exports, {
73
73
  AizuChat: () => AizuChat,
74
74
  Button: () => Button,
75
75
  Loading: () => Loading,
76
- QuickMenus: () => QuickMenus,
77
- TestComponent: () => TestComponent
76
+ QuickMenus: () => QuickMenus
78
77
  });
79
78
  module.exports = __toCommonJS(components_exports);
80
79
 
@@ -101,10 +100,224 @@ function styleInject(css, { insertAt } = {}) {
101
100
  }
102
101
 
103
102
  // src/global.css
104
- styleInject('/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */\n@layer properties;\n@layer theme, base, components, utilities;\n@layer theme {\n :root,\n :host {\n --font-sans:\n ui-sans-serif,\n system-ui,\n sans-serif,\n "Apple Color Emoji",\n "Segoe UI Emoji",\n "Segoe UI Symbol",\n "Noto Color Emoji";\n --font-mono:\n ui-monospace,\n SFMono-Regular,\n Menlo,\n Monaco,\n Consolas,\n "Liberation Mono",\n "Courier New",\n monospace;\n --color-orange-200: oklch(90.1% 0.076 70.697);\n --color-orange-300: oklch(83.7% 0.128 66.29);\n --color-orange-400: oklch(75% 0.183 55.934);\n --color-orange-500: oklch(70.5% 0.213 47.604);\n --color-blue-500: oklch(62.3% 0.214 259.815);\n --color-blue-600: oklch(54.6% 0.245 262.881);\n --color-gray-100: oklch(96.7% 0.003 264.542);\n --color-gray-200: oklch(92.8% 0.006 264.531);\n --color-gray-400: oklch(70.7% 0.022 261.325);\n --color-gray-500: oklch(55.1% 0.027 264.364);\n --color-gray-600: oklch(44.6% 0.03 256.802);\n --color-black: #000;\n --color-white: #fff;\n --spacing: 0.25rem;\n --text-sm: 0.875rem;\n --text-sm--line-height: calc(1.25 / 0.875);\n --text-xl: 1.25rem;\n --text-xl--line-height: calc(1.75 / 1.25);\n --font-weight-bold: 700;\n --radius-3xl: 1.5rem;\n --radius-4xl: 2rem;\n --default-transition-duration: 150ms;\n --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --default-font-family: var(--font-sans);\n --default-mono-font-family: var(--font-mono);\n --font-sukhumvit:\n "Sukhumvit Set",\n ui-sans-serif,\n system-ui,\n sans-serif;\n --animate-wiggle: wiggle 1s ease-in-out infinite;\n }\n}\n@layer base {\n *,\n ::after,\n ::before,\n ::backdrop,\n ::file-selector-button {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n }\n html,\n :host {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n 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");\n font-feature-settings: var(--default-font-feature-settings, normal);\n font-variation-settings: var(--default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n }\n hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\n abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n a {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\n b,\n strong {\n font-weight: bolder;\n }\n code,\n kbd,\n samp,\n pre {\n font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);\n font-feature-settings: var(--default-mono-font-feature-settings, normal);\n font-variation-settings: var(--default-mono-font-variation-settings, normal);\n font-size: 1em;\n }\n small {\n font-size: 80%;\n }\n sub,\n sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n :-moz-focusring {\n outline: auto;\n }\n progress {\n vertical-align: baseline;\n }\n summary {\n display: list-item;\n }\n ol,\n ul,\n menu {\n list-style: none;\n }\n img,\n svg,\n video,\n canvas,\n audio,\n iframe,\n embed,\n object {\n display: block;\n vertical-align: middle;\n }\n img,\n video {\n max-width: 100%;\n height: auto;\n }\n button,\n input,\n select,\n optgroup,\n textarea,\n ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n }\n :where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n :where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n ::file-selector-button {\n margin-inline-end: 4px;\n }\n ::placeholder {\n opacity: 1;\n }\n @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {\n ::placeholder {\n color: currentcolor;\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n }\n textarea {\n resize: vertical;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n ::-webkit-datetime-edit {\n display: inline-flex;\n }\n ::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n ::-webkit-datetime-edit,\n ::-webkit-datetime-edit-year-field,\n ::-webkit-datetime-edit-month-field,\n ::-webkit-datetime-edit-day-field,\n ::-webkit-datetime-edit-hour-field,\n ::-webkit-datetime-edit-minute-field,\n ::-webkit-datetime-edit-second-field,\n ::-webkit-datetime-edit-millisecond-field,\n ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n ::-webkit-calendar-picker-indicator {\n line-height: 1;\n }\n :-moz-ui-invalid {\n box-shadow: none;\n }\n button,\n input:where([type=button], [type=reset], [type=submit]),\n ::file-selector-button {\n appearance: button;\n }\n ::-webkit-inner-spin-button,\n ::-webkit-outer-spin-button {\n height: auto;\n }\n [hidden]:where(:not([hidden=until-found])) {\n display: none !important;\n }\n}\n@layer utilities {\n .pointer-events-none {\n pointer-events: none;\n }\n .invisible {\n visibility: hidden;\n }\n .absolute {\n position: absolute;\n }\n .fixed {\n position: fixed;\n }\n .relative {\n position: relative;\n }\n .top-0 {\n top: calc(var(--spacing) * 0);\n }\n .top-1\\/2 {\n top: calc(1/2 * 100%);\n }\n .right-0 {\n right: calc(var(--spacing) * 0);\n }\n .right-2 {\n right: calc(var(--spacing) * 2);\n }\n .right-5 {\n right: calc(var(--spacing) * 5);\n }\n .bottom-0 {\n bottom: calc(var(--spacing) * 0);\n }\n .bottom-4 {\n bottom: calc(var(--spacing) * 4);\n }\n .bottom-5 {\n bottom: calc(var(--spacing) * 5);\n }\n .left-1\\/2 {\n left: calc(1/2 * 100%);\n }\n .z-10 {\n z-index: 10;\n }\n .z-9999 {\n z-index: 9999;\n }\n .mt-1 {\n margin-top: calc(var(--spacing) * 1);\n }\n .mr-auto {\n margin-right: auto;\n }\n .mb-4 {\n margin-bottom: calc(var(--spacing) * 4);\n }\n .ml-auto {\n margin-left: auto;\n }\n .block {\n display: block;\n }\n .flex {\n display: flex;\n }\n .aspect-square {\n aspect-ratio: 1 / 1;\n }\n .h-0\\.75 {\n height: calc(var(--spacing) * 0.75);\n }\n .h-1\\.25 {\n height: calc(var(--spacing) * 1.25);\n }\n .h-2 {\n height: calc(var(--spacing) * 2);\n }\n .h-8 {\n height: calc(var(--spacing) * 8);\n }\n .h-10 {\n height: calc(var(--spacing) * 10);\n }\n .h-16 {\n height: calc(var(--spacing) * 16);\n }\n .h-29\\.5 {\n height: calc(var(--spacing) * 29.5);\n }\n .h-42\\.5 {\n height: calc(var(--spacing) * 42.5);\n }\n .h-full {\n height: 100%;\n }\n .w-0\\.75 {\n width: calc(var(--spacing) * 0.75);\n }\n .w-1\\.25 {\n width: calc(var(--spacing) * 1.25);\n }\n .w-2 {\n width: calc(var(--spacing) * 2);\n }\n .w-8 {\n width: calc(var(--spacing) * 8);\n }\n .w-10 {\n width: calc(var(--spacing) * 10);\n }\n .w-75\\.5 {\n width: calc(var(--spacing) * 75.5);\n }\n .w-full {\n width: 100%;\n }\n .max-w-69\\.5 {\n max-width: calc(var(--spacing) * 69.5);\n }\n .max-w-75\\.5 {\n max-width: calc(var(--spacing) * 75.5);\n }\n .min-w-max {\n min-width: max-content;\n }\n .flex-1 {\n flex: 1;\n }\n .shrink-0 {\n flex-shrink: 0;\n }\n .-translate-x-1\\/2 {\n --tw-translate-x: calc(calc(1/2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .-translate-y-1\\/2 {\n --tw-translate-y: calc(calc(1/2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .animate-wiggle {\n animation: var(--animate-wiggle);\n }\n .cursor-pointer {\n cursor: pointer;\n }\n .flex-col {\n flex-direction: column;\n }\n .flex-wrap {\n flex-wrap: wrap;\n }\n .items-center {\n align-items: center;\n }\n .justify-between {\n justify-content: space-between;\n }\n .justify-center {\n justify-content: center;\n }\n .gap-2 {\n gap: calc(var(--spacing) * 2);\n }\n .gap-3 {\n gap: calc(var(--spacing) * 3);\n }\n .space-y-1 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .space-y-4 {\n :where(& > :not(:last-child)) {\n --tw-space-y-reverse: 0;\n margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));\n margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)));\n }\n }\n .gap-x-1 {\n column-gap: calc(var(--spacing) * 1);\n }\n .gap-x-2 {\n column-gap: calc(var(--spacing) * 2);\n }\n .gap-y-3 {\n row-gap: calc(var(--spacing) * 3);\n }\n .overflow-hidden {\n overflow: hidden;\n }\n .overflow-x-scroll {\n overflow-x: scroll;\n }\n .overflow-y-auto {\n overflow-y: auto;\n }\n .rounded {\n border-radius: 0.25rem;\n }\n .rounded-3xl {\n border-radius: var(--radius-3xl);\n }\n .rounded-full {\n border-radius: calc(infinity * 1px);\n }\n .border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n .border-2 {\n border-style: var(--tw-border-style);\n border-width: 2px;\n }\n .border-b {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n .border-none {\n --tw-border-style: none;\n border-style: none;\n }\n .border-black\\/50 {\n border-color: color-mix(in srgb, #000 50%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--color-black) 50%, transparent);\n }\n }\n .border-blue-500 {\n border-color: var(--color-blue-500);\n }\n .border-gray-200 {\n border-color: var(--color-gray-200);\n }\n .border-orange-300 {\n border-color: var(--color-orange-300);\n }\n .border-orange-400 {\n border-color: var(--color-orange-400);\n }\n .bg-\\[\\#F8F8FA\\] {\n background-color: #F8F8FA;\n }\n .bg-black\\/60 {\n background-color: color-mix(in srgb, #000 60%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 60%, transparent);\n }\n }\n .bg-blue-500 {\n background-color: var(--color-blue-500);\n }\n .bg-gray-100 {\n background-color: var(--color-gray-100);\n }\n .bg-orange-200 {\n background-color: var(--color-orange-200);\n }\n .bg-orange-400 {\n background-color: var(--color-orange-400);\n }\n .bg-white {\n background-color: var(--color-white);\n }\n .bg-linear-to-l {\n --tw-gradient-position: to left;\n @supports (background-image: linear-gradient(in lab, red, red)) {\n --tw-gradient-position: to left in oklab;\n }\n background-image: linear-gradient(var(--tw-gradient-stops));\n }\n .from-white {\n --tw-gradient-from: var(--color-white);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-transparent {\n --tw-gradient-to: transparent;\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .p-2 {\n padding: calc(var(--spacing) * 2);\n }\n .p-3 {\n padding: calc(var(--spacing) * 3);\n }\n .p-4 {\n padding: calc(var(--spacing) * 4);\n }\n .px-4 {\n padding-inline: calc(var(--spacing) * 4);\n }\n .py-2 {\n padding-block: calc(var(--spacing) * 2);\n }\n .py-3 {\n padding-block: calc(var(--spacing) * 3);\n }\n .pt-4 {\n padding-top: calc(var(--spacing) * 4);\n }\n .pr-12 {\n padding-right: calc(var(--spacing) * 12);\n }\n .pb-2 {\n padding-bottom: calc(var(--spacing) * 2);\n }\n .pl-4 {\n padding-left: calc(var(--spacing) * 4);\n }\n .text-center {\n text-align: center;\n }\n .text-sm {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n .text-xl {\n font-size: var(--text-xl);\n line-height: var(--tw-leading, var(--text-xl--line-height));\n }\n .text-\\[10px\\] {\n font-size: 10px;\n }\n .text-\\[12px\\] {\n font-size: 12px;\n }\n .font-bold {\n --tw-font-weight: var(--font-weight-bold);\n font-weight: var(--font-weight-bold);\n }\n .text-nowrap {\n text-wrap: nowrap;\n }\n .whitespace-pre-wrap {\n white-space: pre-wrap;\n }\n .text-black\\/85 {\n color: color-mix(in srgb, #000 85%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--color-black) 85%, transparent);\n }\n }\n .text-gray-500 {\n color: var(--color-gray-500);\n }\n .text-gray-600 {\n color: var(--color-gray-600);\n }\n .text-orange-500 {\n color: var(--color-orange-500);\n }\n .text-white {\n color: var(--color-white);\n }\n .shadow {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow:\n var(--tw-inset-shadow),\n var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow);\n }\n .shadow-2xl {\n --tw-shadow: 0 25px 50px -12px var(--tw-shadow-color, rgb(0 0 0 / 0.25));\n box-shadow:\n var(--tw-inset-shadow),\n var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow);\n }\n .shadow-orange-400 {\n --tw-shadow-color: oklch(75% 0.183 55.934);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-shadow-color: color-mix(in oklab, var(--color-orange-400) var(--tw-shadow-alpha), transparent);\n }\n }\n .transition-colors {\n transition-property:\n color,\n background-color,\n border-color,\n outline-color,\n text-decoration-color,\n fill,\n stroke,\n --tw-gradient-from,\n --tw-gradient-via,\n --tw-gradient-to;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .outline-none {\n --tw-outline-style: none;\n outline-style: none;\n }\n .hover\\:bg-blue-600 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-blue-600);\n }\n }\n }\n .hover\\:bg-gray-200 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-gray-200);\n }\n }\n }\n .focus\\:ring-2 {\n &:focus {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow:\n var(--tw-inset-shadow),\n var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow);\n }\n }\n .focus\\:ring-orange-300 {\n &:focus {\n --tw-ring-color: var(--color-orange-300);\n }\n }\n .disabled\\:bg-gray-400 {\n &:disabled {\n background-color: var(--color-gray-400);\n }\n }\n .lg\\:top-auto {\n @media (width >= 64rem) {\n top: auto;\n }\n }\n .lg\\:right-5 {\n @media (width >= 64rem) {\n right: calc(var(--spacing) * 5);\n }\n }\n .lg\\:bottom-20 {\n @media (width >= 64rem) {\n bottom: calc(var(--spacing) * 20);\n }\n }\n .lg\\:hidden {\n @media (width >= 64rem) {\n display: none;\n }\n }\n .lg\\:h-46 {\n @media (width >= 64rem) {\n height: calc(var(--spacing) * 46);\n }\n }\n .lg\\:max-h-201 {\n @media (width >= 64rem) {\n max-height: calc(var(--spacing) * 201);\n }\n }\n .lg\\:w-107\\.5 {\n @media (width >= 64rem) {\n width: calc(var(--spacing) * 107.5);\n }\n }\n .lg\\:max-w-80 {\n @media (width >= 64rem) {\n max-width: calc(var(--spacing) * 80);\n }\n }\n .lg\\:flex-wrap {\n @media (width >= 64rem) {\n flex-wrap: wrap;\n }\n }\n .lg\\:rounded-4xl {\n @media (width >= 64rem) {\n border-radius: var(--radius-4xl);\n }\n }\n}\n@layer base {\n * {\n font-family: var(--font-sukhumvit);\n }\n}\n@layer utilities {\n .scrollbar-hide::-webkit-scrollbar {\n display: none;\n }\n .scrollbar-hide {\n -ms-overflow-style: none;\n scrollbar-width: none;\n }\n}\n@property --tw-translate-x { syntax: "*"; inherits: false; initial-value: 0; }\n@property --tw-translate-y { syntax: "*"; inherits: false; initial-value: 0; }\n@property --tw-translate-z { syntax: "*"; inherits: false; initial-value: 0; }\n@property --tw-space-y-reverse { syntax: "*"; inherits: false; initial-value: 0; }\n@property --tw-border-style { syntax: "*"; inherits: false; initial-value: solid; }\n@property --tw-gradient-position { syntax: "*"; inherits: false; }\n@property --tw-gradient-from { syntax: "<color>"; inherits: false; initial-value: #0000; }\n@property --tw-gradient-via { syntax: "<color>"; inherits: false; initial-value: #0000; }\n@property --tw-gradient-to { syntax: "<color>"; inherits: false; initial-value: #0000; }\n@property --tw-gradient-stops { syntax: "*"; inherits: false; }\n@property --tw-gradient-via-stops { syntax: "*"; inherits: false; }\n@property --tw-gradient-from-position { syntax: "<length-percentage>"; inherits: false; initial-value: 0%; }\n@property --tw-gradient-via-position { syntax: "<length-percentage>"; inherits: false; initial-value: 50%; }\n@property --tw-gradient-to-position { syntax: "<length-percentage>"; inherits: false; initial-value: 100%; }\n@property --tw-font-weight { syntax: "*"; inherits: false; }\n@property --tw-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }\n@property --tw-shadow-color { syntax: "*"; inherits: false; }\n@property --tw-shadow-alpha { syntax: "<percentage>"; inherits: false; initial-value: 100%; }\n@property --tw-inset-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }\n@property --tw-inset-shadow-color { syntax: "*"; inherits: false; }\n@property --tw-inset-shadow-alpha { syntax: "<percentage>"; inherits: false; initial-value: 100%; }\n@property --tw-ring-color { syntax: "*"; inherits: false; }\n@property --tw-ring-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }\n@property --tw-inset-ring-color { syntax: "*"; inherits: false; }\n@property --tw-inset-ring-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }\n@property --tw-ring-inset { syntax: "*"; inherits: false; }\n@property --tw-ring-offset-width { syntax: "<length>"; inherits: false; initial-value: 0px; }\n@property --tw-ring-offset-color { syntax: "*"; inherits: false; initial-value: #fff; }\n@property --tw-ring-offset-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }\n@keyframes wiggle {\n 0%, 100% {\n transform: translateY(-50%);\n animation-timing-function: cubic-bezier(0.8, 0, 1, 1);\n }\n 50% {\n transform: none;\n animation-timing-function: cubic-bezier(0, 0, 0.2, 1);\n }\n}\n@layer properties {\n @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {\n *,\n ::before,\n ::after,\n ::backdrop {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-space-y-reverse: 0;\n --tw-border-style: solid;\n --tw-gradient-position: initial;\n --tw-gradient-from: #0000;\n --tw-gradient-via: #0000;\n --tw-gradient-to: #0000;\n --tw-gradient-stops: initial;\n --tw-gradient-via-stops: initial;\n --tw-gradient-from-position: 0%;\n --tw-gradient-via-position: 50%;\n --tw-gradient-to-position: 100%;\n --tw-font-weight: initial;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n }\n }\n}\n');
103
+ styleInject('/*! tailwindcss v4.1.18 | MIT License | https://tailwindcss.com */\n@layer properties;\n@layer theme, base, components, utilities;\n@layer theme {\n :root,\n :host {\n --font-sans:\n ui-sans-serif,\n system-ui,\n sans-serif,\n "Apple Color Emoji",\n "Segoe UI Emoji",\n "Segoe UI Symbol",\n "Noto Color Emoji";\n --font-mono:\n ui-monospace,\n SFMono-Regular,\n Menlo,\n Monaco,\n Consolas,\n "Liberation Mono",\n "Courier New",\n monospace;\n --color-orange-200: oklch(90.1% 0.076 70.697);\n --color-orange-300: oklch(83.7% 0.128 66.29);\n --color-orange-400: oklch(75% 0.183 55.934);\n --color-orange-500: oklch(70.5% 0.213 47.604);\n --color-gray-100: oklch(96.7% 0.003 264.542);\n --color-gray-200: oklch(92.8% 0.006 264.531);\n --color-gray-300: oklch(87.2% 0.01 258.338);\n --color-gray-500: oklch(55.1% 0.027 264.364);\n --color-black: #000;\n --color-white: #fff;\n --spacing: 0.25rem;\n --text-sm: 0.875rem;\n --text-sm--line-height: calc(1.25 / 0.875);\n --radius-3xl: 1.5rem;\n --radius-4xl: 2rem;\n --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);\n --default-transition-duration: 150ms;\n --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n --default-font-family: var(--font-sans);\n --default-mono-font-family: var(--font-mono);\n --font-sukhumvit:\n "Sukhumvit Set",\n ui-sans-serif,\n system-ui,\n sans-serif;\n --animate-circle-keys: circle-keys 2s ease-in-out infinite;\n }\n}\n@layer base {\n *,\n ::after,\n ::before,\n ::backdrop,\n ::file-selector-button {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n border: 0 solid;\n }\n html,\n :host {\n line-height: 1.5;\n -webkit-text-size-adjust: 100%;\n tab-size: 4;\n 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");\n font-feature-settings: var(--default-font-feature-settings, normal);\n font-variation-settings: var(--default-font-variation-settings, normal);\n -webkit-tap-highlight-color: transparent;\n }\n hr {\n height: 0;\n color: inherit;\n border-top-width: 1px;\n }\n abbr:where([title]) {\n -webkit-text-decoration: underline dotted;\n text-decoration: underline dotted;\n }\n h1,\n h2,\n h3,\n h4,\n h5,\n h6 {\n font-size: inherit;\n font-weight: inherit;\n }\n a {\n color: inherit;\n -webkit-text-decoration: inherit;\n text-decoration: inherit;\n }\n b,\n strong {\n font-weight: bolder;\n }\n code,\n kbd,\n samp,\n pre {\n font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);\n font-feature-settings: var(--default-mono-font-feature-settings, normal);\n font-variation-settings: var(--default-mono-font-variation-settings, normal);\n font-size: 1em;\n }\n small {\n font-size: 80%;\n }\n sub,\n sup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n }\n sub {\n bottom: -0.25em;\n }\n sup {\n top: -0.5em;\n }\n table {\n text-indent: 0;\n border-color: inherit;\n border-collapse: collapse;\n }\n :-moz-focusring {\n outline: auto;\n }\n progress {\n vertical-align: baseline;\n }\n summary {\n display: list-item;\n }\n ol,\n ul,\n menu {\n list-style: none;\n }\n img,\n svg,\n video,\n canvas,\n audio,\n iframe,\n embed,\n object {\n display: block;\n vertical-align: middle;\n }\n img,\n video {\n max-width: 100%;\n height: auto;\n }\n button,\n input,\n select,\n optgroup,\n textarea,\n ::file-selector-button {\n font: inherit;\n font-feature-settings: inherit;\n font-variation-settings: inherit;\n letter-spacing: inherit;\n color: inherit;\n border-radius: 0;\n background-color: transparent;\n opacity: 1;\n }\n :where(select:is([multiple], [size])) optgroup {\n font-weight: bolder;\n }\n :where(select:is([multiple], [size])) optgroup option {\n padding-inline-start: 20px;\n }\n ::file-selector-button {\n margin-inline-end: 4px;\n }\n ::placeholder {\n opacity: 1;\n }\n @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {\n ::placeholder {\n color: currentcolor;\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, currentcolor 50%, transparent);\n }\n }\n }\n textarea {\n resize: vertical;\n }\n ::-webkit-search-decoration {\n -webkit-appearance: none;\n }\n ::-webkit-date-and-time-value {\n min-height: 1lh;\n text-align: inherit;\n }\n ::-webkit-datetime-edit {\n display: inline-flex;\n }\n ::-webkit-datetime-edit-fields-wrapper {\n padding: 0;\n }\n ::-webkit-datetime-edit,\n ::-webkit-datetime-edit-year-field,\n ::-webkit-datetime-edit-month-field,\n ::-webkit-datetime-edit-day-field,\n ::-webkit-datetime-edit-hour-field,\n ::-webkit-datetime-edit-minute-field,\n ::-webkit-datetime-edit-second-field,\n ::-webkit-datetime-edit-millisecond-field,\n ::-webkit-datetime-edit-meridiem-field {\n padding-block: 0;\n }\n ::-webkit-calendar-picker-indicator {\n line-height: 1;\n }\n :-moz-ui-invalid {\n box-shadow: none;\n }\n button,\n input:where([type=button], [type=reset], [type=submit]),\n ::file-selector-button {\n appearance: button;\n }\n ::-webkit-inner-spin-button,\n ::-webkit-outer-spin-button {\n height: auto;\n }\n [hidden]:where(:not([hidden=until-found])) {\n display: none !important;\n }\n}\n@layer utilities {\n .pointer-events-auto {\n pointer-events: auto;\n }\n .pointer-events-none {\n pointer-events: none;\n }\n .invisible {\n visibility: hidden;\n }\n .absolute {\n position: absolute;\n }\n .fixed {\n position: fixed;\n }\n .relative {\n position: relative;\n }\n .inset-0 {\n inset: calc(var(--spacing) * 0);\n }\n .top-0 {\n top: calc(var(--spacing) * 0);\n }\n .top-1\\/2 {\n top: calc(1/2 * 100%);\n }\n .right-0 {\n right: calc(var(--spacing) * 0);\n }\n .right-2 {\n right: calc(var(--spacing) * 2);\n }\n .right-5 {\n right: calc(var(--spacing) * 5);\n }\n .bottom-0 {\n bottom: calc(var(--spacing) * 0);\n }\n .bottom-5 {\n bottom: calc(var(--spacing) * 5);\n }\n .z-10 {\n z-index: 10;\n }\n .z-9998 {\n z-index: 9998;\n }\n .z-9999 {\n z-index: 9999;\n }\n .mt-1 {\n margin-top: calc(var(--spacing) * 1);\n }\n .mt-auto {\n margin-top: auto;\n }\n .mr-3 {\n margin-right: calc(var(--spacing) * 3);\n }\n .mr-auto {\n margin-right: auto;\n }\n .mb-2 {\n margin-bottom: calc(var(--spacing) * 2);\n }\n .mb-4 {\n margin-bottom: calc(var(--spacing) * 4);\n }\n .ml-auto {\n margin-left: auto;\n }\n .block {\n display: block;\n }\n .flex {\n display: flex;\n }\n .aspect-square {\n aspect-ratio: 1 / 1;\n }\n .h-2 {\n height: calc(var(--spacing) * 2);\n }\n .h-8 {\n height: calc(var(--spacing) * 8);\n }\n .h-10 {\n height: calc(var(--spacing) * 10);\n }\n .h-16 {\n height: calc(var(--spacing) * 16);\n }\n .h-29\\.5 {\n height: calc(var(--spacing) * 29.5);\n }\n .h-42\\.5 {\n height: calc(var(--spacing) * 42.5);\n }\n .h-full {\n height: 100%;\n }\n .min-h-full {\n min-height: 100%;\n }\n .w-2 {\n width: calc(var(--spacing) * 2);\n }\n .w-8 {\n width: calc(var(--spacing) * 8);\n }\n .w-10 {\n width: calc(var(--spacing) * 10);\n }\n .w-16 {\n width: calc(var(--spacing) * 16);\n }\n .w-75\\.5 {\n width: calc(var(--spacing) * 75.5);\n }\n .w-full {\n width: 100%;\n }\n .max-w-69\\.5 {\n max-width: calc(var(--spacing) * 69.5);\n }\n .max-w-75\\.5 {\n max-width: calc(var(--spacing) * 75.5);\n }\n .min-w-max {\n min-width: max-content;\n }\n .flex-1 {\n flex: 1;\n }\n .shrink-0 {\n flex-shrink: 0;\n }\n .-translate-y-1\\/2 {\n --tw-translate-y: calc(calc(1/2 * 100%) * -1);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-y-0 {\n --tw-translate-y: calc(var(--spacing) * 0);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .translate-y-4 {\n --tw-translate-y: calc(var(--spacing) * 4);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n .animate-circle-keys {\n animation: var(--animate-circle-keys);\n }\n .cursor-pointer {\n cursor: pointer;\n }\n .flex-col {\n flex-direction: column;\n }\n .flex-wrap {\n flex-wrap: wrap;\n }\n .items-center {\n align-items: center;\n }\n .items-start {\n align-items: flex-start;\n }\n .justify-between {\n justify-content: space-between;\n }\n .justify-center {\n justify-content: center;\n }\n .justify-end {\n justify-content: flex-end;\n }\n .gap-2 {\n gap: calc(var(--spacing) * 2);\n }\n .gap-3 {\n gap: calc(var(--spacing) * 3);\n }\n .gap-x-1 {\n column-gap: calc(var(--spacing) * 1);\n }\n .gap-x-2 {\n column-gap: calc(var(--spacing) * 2);\n }\n .gap-y-3 {\n row-gap: calc(var(--spacing) * 3);\n }\n .overflow-hidden {\n overflow: hidden;\n }\n .overflow-x-scroll {\n overflow-x: scroll;\n }\n .overflow-y-auto {\n overflow-y: auto;\n }\n .rounded-3xl {\n border-radius: var(--radius-3xl);\n }\n .rounded-full {\n border-radius: calc(infinity * 1px);\n }\n .border {\n border-style: var(--tw-border-style);\n border-width: 1px;\n }\n .border-b {\n border-bottom-style: var(--tw-border-style);\n border-bottom-width: 1px;\n }\n .border-none {\n --tw-border-style: none;\n border-style: none;\n }\n .border-black\\/50 {\n border-color: color-mix(in srgb, #000 50%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n border-color: color-mix(in oklab, var(--color-black) 50%, transparent);\n }\n }\n .border-gray-200 {\n border-color: var(--color-gray-200);\n }\n .border-orange-300 {\n border-color: var(--color-orange-300);\n }\n .border-orange-400 {\n border-color: var(--color-orange-400);\n }\n .bg-\\[\\#3D3D3D\\] {\n background-color: #3D3D3D;\n }\n .bg-\\[\\#F8F8FA\\] {\n background-color: #F8F8FA;\n }\n .bg-black\\/50 {\n background-color: color-mix(in srgb, #000 50%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n background-color: color-mix(in oklab, var(--color-black) 50%, transparent);\n }\n }\n .bg-gray-100 {\n background-color: var(--color-gray-100);\n }\n .bg-orange-200 {\n background-color: var(--color-orange-200);\n }\n .bg-orange-400 {\n background-color: var(--color-orange-400);\n }\n .bg-white {\n background-color: var(--color-white);\n }\n .bg-linear-to-l {\n --tw-gradient-position: to left;\n @supports (background-image: linear-gradient(in lab, red, red)) {\n --tw-gradient-position: to left in oklab;\n }\n background-image: linear-gradient(var(--tw-gradient-stops));\n }\n .from-white {\n --tw-gradient-from: var(--color-white);\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .to-transparent {\n --tw-gradient-to: transparent;\n --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position));\n }\n .p-2 {\n padding: calc(var(--spacing) * 2);\n }\n .p-2\\.5 {\n padding: calc(var(--spacing) * 2.5);\n }\n .p-3 {\n padding: calc(var(--spacing) * 3);\n }\n .p-4 {\n padding: calc(var(--spacing) * 4);\n }\n .px-4 {\n padding-inline: calc(var(--spacing) * 4);\n }\n .py-2 {\n padding-block: calc(var(--spacing) * 2);\n }\n .py-3 {\n padding-block: calc(var(--spacing) * 3);\n }\n .pt-4 {\n padding-top: calc(var(--spacing) * 4);\n }\n .pr-12 {\n padding-right: calc(var(--spacing) * 12);\n }\n .pb-2 {\n padding-bottom: calc(var(--spacing) * 2);\n }\n .pl-4 {\n padding-left: calc(var(--spacing) * 4);\n }\n .text-center {\n text-align: center;\n }\n .text-left {\n text-align: left;\n }\n .text-sm {\n font-size: var(--text-sm);\n line-height: var(--tw-leading, var(--text-sm--line-height));\n }\n .text-\\[10px\\] {\n font-size: 10px;\n }\n .text-\\[12px\\] {\n font-size: 12px;\n }\n .text-nowrap {\n text-wrap: nowrap;\n }\n .text-\\[\\#3D3D3D\\] {\n color: #3D3D3D;\n }\n .text-\\[\\#7C7C7C\\] {\n color: #7C7C7C;\n }\n .text-\\[\\#FFF8EC\\] {\n color: #FFF8EC;\n }\n .text-black {\n color: var(--color-black);\n }\n .text-black\\/85 {\n color: color-mix(in srgb, #000 85%, transparent);\n @supports (color: color-mix(in lab, red, red)) {\n color: color-mix(in oklab, var(--color-black) 85%, transparent);\n }\n }\n .text-gray-500 {\n color: var(--color-gray-500);\n }\n .text-orange-500 {\n color: var(--color-orange-500);\n }\n .opacity-0 {\n opacity: 0%;\n }\n .opacity-100 {\n opacity: 100%;\n }\n .shadow {\n --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1));\n box-shadow:\n var(--tw-inset-shadow),\n var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow);\n }\n .shadow-orange-blur {\n --tw-shadow: 0 4px 20px 0 var(--tw-shadow-color, #a1440299);\n box-shadow:\n var(--tw-inset-shadow),\n var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow);\n }\n .shadow-orange-400 {\n --tw-shadow-color: oklch(75% 0.183 55.934);\n @supports (color: color-mix(in lab, red, red)) {\n --tw-shadow-color: color-mix(in oklab, var(--color-orange-400) var(--tw-shadow-alpha), transparent);\n }\n }\n .filter {\n 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,);\n }\n .transition-all {\n transition-property: all;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-colors {\n transition-property:\n color,\n background-color,\n border-color,\n outline-color,\n text-decoration-color,\n fill,\n stroke,\n --tw-gradient-from,\n --tw-gradient-via,\n --tw-gradient-to;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .transition-opacity {\n transition-property: opacity;\n transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));\n transition-duration: var(--tw-duration, var(--default-transition-duration));\n }\n .duration-300 {\n --tw-duration: 300ms;\n transition-duration: 300ms;\n }\n .ease-in-out {\n --tw-ease: var(--ease-in-out);\n transition-timing-function: var(--ease-in-out);\n }\n .outline-none {\n --tw-outline-style: none;\n outline-style: none;\n }\n .focus-within\\:ring-2 {\n &:focus-within {\n --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);\n box-shadow:\n var(--tw-inset-shadow),\n var(--tw-inset-ring-shadow),\n var(--tw-ring-offset-shadow),\n var(--tw-ring-shadow),\n var(--tw-shadow);\n }\n }\n .focus-within\\:ring-orange-300 {\n &:focus-within {\n --tw-ring-color: var(--color-orange-300);\n }\n }\n .hover\\:bg-gray-200 {\n &:hover {\n @media (hover: hover) {\n background-color: var(--color-gray-200);\n }\n }\n }\n .hover\\:opacity-70 {\n &:hover {\n @media (hover: hover) {\n opacity: 70%;\n }\n }\n }\n .disabled\\:cursor-not-allowed {\n &:disabled {\n cursor: not-allowed;\n }\n }\n .disabled\\:bg-gray-300 {\n &:disabled {\n background-color: var(--color-gray-300);\n }\n }\n .lg\\:invisible {\n @media (width >= 64rem) {\n visibility: hidden;\n }\n }\n .lg\\:visible {\n @media (width >= 64rem) {\n visibility: visible;\n }\n }\n .lg\\:top-auto {\n @media (width >= 64rem) {\n top: auto;\n }\n }\n .lg\\:right-1\\/2 {\n @media (width >= 64rem) {\n right: calc(1/2 * 100%);\n }\n }\n .lg\\:right-5 {\n @media (width >= 64rem) {\n right: calc(var(--spacing) * 5);\n }\n }\n .lg\\:bottom-25 {\n @media (width >= 64rem) {\n bottom: calc(var(--spacing) * 25);\n }\n }\n .lg\\:hidden {\n @media (width >= 64rem) {\n display: none;\n }\n }\n .lg\\:h-46 {\n @media (width >= 64rem) {\n height: calc(var(--spacing) * 46);\n }\n }\n .lg\\:h-\\[calc\\(100vh-100px\\)\\] {\n @media (width >= 64rem) {\n height: calc(100vh - 100px);\n }\n }\n .lg\\:max-h-201 {\n @media (width >= 64rem) {\n max-height: calc(var(--spacing) * 201);\n }\n }\n .lg\\:w-107\\.5 {\n @media (width >= 64rem) {\n width: calc(var(--spacing) * 107.5);\n }\n }\n .lg\\:w-\\[calc\\(100vw-100px\\)\\] {\n @media (width >= 64rem) {\n width: calc(100vw - 100px);\n }\n }\n .lg\\:max-w-80 {\n @media (width >= 64rem) {\n max-width: calc(var(--spacing) * 80);\n }\n }\n .lg\\:max-w-289 {\n @media (width >= 64rem) {\n max-width: calc(var(--spacing) * 289);\n }\n }\n .lg\\:translate-x-1\\/2 {\n @media (width >= 64rem) {\n --tw-translate-x: calc(1/2 * 100%);\n translate: var(--tw-translate-x) var(--tw-translate-y);\n }\n }\n .lg\\:flex-wrap {\n @media (width >= 64rem) {\n flex-wrap: wrap;\n }\n }\n .lg\\:rounded-4xl {\n @media (width >= 64rem) {\n border-radius: var(--radius-4xl);\n }\n }\n}\n@layer base {\n * {\n font-family: var(--font-sukhumvit);\n }\n}\n@layer utilities {\n .scrollbar-hide::-webkit-scrollbar {\n display: none;\n }\n .scrollbar-hide {\n -ms-overflow-style: none;\n scrollbar-width: none;\n }\n .animation-delay-0 {\n animation-delay: 0s;\n }\n .animation-delay-300 {\n animation-delay: 0.3s;\n }\n .animation-delay-600 {\n animation-delay: 0.6s;\n }\n .animation-delay-900 {\n animation-delay: 0.9s;\n }\n .animation-delay-1200 {\n animation-delay: 1.2s;\n }\n}\n@property --tw-translate-x { syntax: "*"; inherits: false; initial-value: 0; }\n@property --tw-translate-y { syntax: "*"; inherits: false; initial-value: 0; }\n@property --tw-translate-z { syntax: "*"; inherits: false; initial-value: 0; }\n@property --tw-border-style { syntax: "*"; inherits: false; initial-value: solid; }\n@property --tw-gradient-position { syntax: "*"; inherits: false; }\n@property --tw-gradient-from { syntax: "<color>"; inherits: false; initial-value: #0000; }\n@property --tw-gradient-via { syntax: "<color>"; inherits: false; initial-value: #0000; }\n@property --tw-gradient-to { syntax: "<color>"; inherits: false; initial-value: #0000; }\n@property --tw-gradient-stops { syntax: "*"; inherits: false; }\n@property --tw-gradient-via-stops { syntax: "*"; inherits: false; }\n@property --tw-gradient-from-position { syntax: "<length-percentage>"; inherits: false; initial-value: 0%; }\n@property --tw-gradient-via-position { syntax: "<length-percentage>"; inherits: false; initial-value: 50%; }\n@property --tw-gradient-to-position { syntax: "<length-percentage>"; inherits: false; initial-value: 100%; }\n@property --tw-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }\n@property --tw-shadow-color { syntax: "*"; inherits: false; }\n@property --tw-shadow-alpha { syntax: "<percentage>"; inherits: false; initial-value: 100%; }\n@property --tw-inset-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }\n@property --tw-inset-shadow-color { syntax: "*"; inherits: false; }\n@property --tw-inset-shadow-alpha { syntax: "<percentage>"; inherits: false; initial-value: 100%; }\n@property --tw-ring-color { syntax: "*"; inherits: false; }\n@property --tw-ring-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }\n@property --tw-inset-ring-color { syntax: "*"; inherits: false; }\n@property --tw-inset-ring-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }\n@property --tw-ring-inset { syntax: "*"; inherits: false; }\n@property --tw-ring-offset-width { syntax: "<length>"; inherits: false; initial-value: 0px; }\n@property --tw-ring-offset-color { syntax: "*"; inherits: false; initial-value: #fff; }\n@property --tw-ring-offset-shadow { syntax: "*"; inherits: false; initial-value: 0 0 #0000; }\n@property --tw-blur { syntax: "*"; inherits: false; }\n@property --tw-brightness { syntax: "*"; inherits: false; }\n@property --tw-contrast { syntax: "*"; inherits: false; }\n@property --tw-grayscale { syntax: "*"; inherits: false; }\n@property --tw-hue-rotate { syntax: "*"; inherits: false; }\n@property --tw-invert { syntax: "*"; inherits: false; }\n@property --tw-opacity { syntax: "*"; inherits: false; }\n@property --tw-saturate { syntax: "*"; inherits: false; }\n@property --tw-sepia { syntax: "*"; inherits: false; }\n@property --tw-drop-shadow { syntax: "*"; inherits: false; }\n@property --tw-drop-shadow-color { syntax: "*"; inherits: false; }\n@property --tw-drop-shadow-alpha { syntax: "<percentage>"; inherits: false; initial-value: 100%; }\n@property --tw-drop-shadow-size { syntax: "*"; inherits: false; }\n@property --tw-duration { syntax: "*"; inherits: false; }\n@property --tw-ease { syntax: "*"; inherits: false; }\n@keyframes circle-keys {\n 0% {\n transform: scale(1);\n opacity: 1;\n }\n 50% {\n transform: scale(0.7);\n opacity: 1;\n }\n 100% {\n transform: scale(1);\n opacity: 1;\n }\n}\n@layer properties {\n @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {\n *,\n ::before,\n ::after,\n ::backdrop {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-translate-z: 0;\n --tw-border-style: solid;\n --tw-gradient-position: initial;\n --tw-gradient-from: #0000;\n --tw-gradient-via: #0000;\n --tw-gradient-to: #0000;\n --tw-gradient-stops: initial;\n --tw-gradient-via-stops: initial;\n --tw-gradient-from-position: 0%;\n --tw-gradient-via-position: 50%;\n --tw-gradient-to-position: 100%;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-color: initial;\n --tw-shadow-alpha: 100%;\n --tw-inset-shadow: 0 0 #0000;\n --tw-inset-shadow-color: initial;\n --tw-inset-shadow-alpha: 100%;\n --tw-ring-color: initial;\n --tw-ring-shadow: 0 0 #0000;\n --tw-inset-ring-color: initial;\n --tw-inset-ring-shadow: 0 0 #0000;\n --tw-ring-inset: initial;\n --tw-ring-offset-width: 0px;\n --tw-ring-offset-color: #fff;\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-blur: initial;\n --tw-brightness: initial;\n --tw-contrast: initial;\n --tw-grayscale: initial;\n --tw-hue-rotate: initial;\n --tw-invert: initial;\n --tw-opacity: initial;\n --tw-saturate: initial;\n --tw-sepia: initial;\n --tw-drop-shadow: initial;\n --tw-drop-shadow-color: initial;\n --tw-drop-shadow-alpha: 100%;\n --tw-drop-shadow-size: initial;\n --tw-duration: initial;\n --tw-ease: initial;\n }\n }\n}\n');
104
+
105
+ // src/utils/cn.ts
106
+ var import_clsx = require("clsx");
107
+ var import_tailwind_merge = require("tailwind-merge");
108
+ function cn(...args) {
109
+ return (0, import_tailwind_merge.twMerge)((0, import_clsx.clsx)(args));
110
+ }
111
+
112
+ // src/assets/icons/ai/index.tsx
113
+ var import_jsx_runtime = require("react/jsx-runtime");
114
+ var IconAI = (_a) => {
115
+ var _b = _a, { className = "" } = _b, props = __objRest(_b, ["className"]);
116
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
117
+ "svg",
118
+ __spreadProps(__spreadValues({
119
+ width: "64",
120
+ height: "64",
121
+ viewBox: "0 0 64 64",
122
+ fill: "none",
123
+ xmlns: "http://www.w3.org/2000/svg",
124
+ className: cn("w-8 h-8", className)
125
+ }, props), {
126
+ children: [
127
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("title", { children: "Icon AI" }),
128
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("g", { filter: "url(#filter0_ii_48_32)", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("circle", { cx: "32.0001", cy: "32", r: "32", fill: "url(#paint0_linear_48_32)" }) }),
129
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M34.2288 17.7789C33.9922 16.7384 33.0671 16 32 16C30.9329 16 30.0078 16.7384 29.7712 17.7789L28.5065 23.3405C27.9216 25.9129 25.9129 27.9216 23.3405 28.5065L17.7789 29.7712C16.7384 30.0078 16 30.9329 16 32C16 33.0671 16.7384 33.9922 17.7789 34.2288L23.3405 35.4935C25.9129 36.0784 27.9216 38.0871 28.5065 40.6595L29.7712 46.2211C30.0078 47.2616 30.9329 48 32 48C33.0671 48 33.9922 47.2616 34.2288 46.2211L35.4935 40.6595C36.0784 38.0871 38.0871 36.0784 40.6595 35.4935L46.2211 34.2288C47.2616 33.9922 48 33.0671 48 32C48 30.9329 47.2616 30.0078 46.2211 29.7712L40.6595 28.5065C38.0871 27.9216 36.0784 25.9129 35.4935 23.3405L34.2288 17.7789Z", fill: "url(#paint1_linear_48_32)" }),
130
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("defs", { children: [
131
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("filter", { id: "filter0_ii_48_32", x: "0.00012207", y: "0", width: "63.9999", height: "64", filterUnits: "userSpaceOnUse", colorInterpolationFilters: "sRGB", children: [
132
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("feFlood", { floodOpacity: "0", result: "BackgroundImageFix" }),
133
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("feBlend", { mode: "normal", in: "SourceGraphic", in2: "BackgroundImageFix", result: "shape" }),
134
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("feColorMatrix", { in: "SourceAlpha", type: "matrix", values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0", result: "hardAlpha" }),
135
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("feMorphology", { radius: "4", operator: "erode", in: "SourceAlpha", result: "effect1_innerShadow_48_32" }),
136
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("feOffset", {}),
137
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("feGaussianBlur", { stdDeviation: "4" }),
138
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("feComposite", { in2: "hardAlpha", operator: "arithmetic", k2: "-1", k3: "1" }),
139
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("feColorMatrix", { type: "matrix", values: "0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.2 0" }),
140
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("feBlend", { mode: "normal", in2: "shape", result: "effect1_innerShadow_48_32" }),
141
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("feColorMatrix", { in: "SourceAlpha", type: "matrix", values: "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0", result: "hardAlpha" }),
142
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("feOffset", {}),
143
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("feGaussianBlur", { stdDeviation: "1" }),
144
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("feComposite", { in2: "hardAlpha", operator: "arithmetic", k2: "-1", k3: "1" }),
145
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("feColorMatrix", { type: "matrix", values: "0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0.3 0" }),
146
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("feBlend", { mode: "normal", in2: "effect1_innerShadow_48_32", result: "effect2_innerShadow_48_32" })
147
+ ] }),
148
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("linearGradient", { id: "paint0_linear_48_32", x1: "32.0001", y1: "-5.96047e-08", x2: "32.0001", y2: "64", gradientUnits: "userSpaceOnUse", children: [
149
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("stop", { stopColor: "#3D3D3D" }),
150
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("stop", { offset: "0.496312" }),
151
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("stop", { offset: "0.723156", stopColor: "#803500" }),
152
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("stop", { offset: "0.95", stopColor: "#FF6A00" })
153
+ ] }),
154
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("linearGradient", { id: "paint1_linear_48_32", x1: "32", y1: "16", x2: "32", y2: "48", gradientUnits: "userSpaceOnUse", children: [
155
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("stop", { stopColor: "white" }),
156
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("stop", { offset: "1", stopColor: "#EBEBEB" })
157
+ ] })
158
+ ] })
159
+ ]
160
+ })
161
+ );
162
+ };
163
+
164
+ // src/assets/icons/arrow-narrow-up/index.tsx
165
+ var import_jsx_runtime2 = require("react/jsx-runtime");
166
+ var IconArrowNarrowUp = (_a) => {
167
+ var _b = _a, { className = "" } = _b, props = __objRest(_b, ["className"]);
168
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
169
+ "svg",
170
+ __spreadProps(__spreadValues({
171
+ width: "20",
172
+ height: "20",
173
+ viewBox: "0 0 20 20",
174
+ fill: "none",
175
+ xmlns: "http://www.w3.org/2000/svg",
176
+ className
177
+ }, props), {
178
+ children: [
179
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("title", { children: "Arrow Narrow up" }),
180
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
181
+ "path",
182
+ {
183
+ d: "M10 16.6666V3.33331M10 3.33331L5 8.33331M10 3.33331L15 8.33331",
184
+ stroke: "currentColor",
185
+ strokeWidth: "2",
186
+ strokeLinecap: "round",
187
+ strokeLinejoin: "round"
188
+ }
189
+ )
190
+ ]
191
+ })
192
+ );
193
+ };
194
+
195
+ // src/assets/icons/chevron-left/index.tsx
196
+ var import_jsx_runtime3 = require("react/jsx-runtime");
197
+ var IconChevronLeft = (_a) => {
198
+ var _b = _a, { className = "" } = _b, props = __objRest(_b, ["className"]);
199
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
200
+ "svg",
201
+ __spreadProps(__spreadValues({
202
+ width: "20",
203
+ height: "20",
204
+ viewBox: "0 0 20 20",
205
+ fill: "none",
206
+ xmlns: "http://www.w3.org/2000/svg",
207
+ className
208
+ }, props), {
209
+ children: [
210
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("title", { children: "Chevron Left" }),
211
+ /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
212
+ "path",
213
+ {
214
+ d: "M12.5 15L7.5 10L12.5 5",
215
+ stroke: "currentColor",
216
+ strokeWidth: "1.5",
217
+ strokeLinecap: "round",
218
+ strokeLinejoin: "round"
219
+ }
220
+ )
221
+ ]
222
+ })
223
+ );
224
+ };
225
+
226
+ // src/assets/icons/expand/index.tsx
227
+ var import_jsx_runtime4 = require("react/jsx-runtime");
228
+ var IconExpand = (_a) => {
229
+ var _b = _a, { className = "" } = _b, props = __objRest(_b, ["className"]);
230
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
231
+ "svg",
232
+ __spreadProps(__spreadValues({
233
+ width: "20",
234
+ height: "20",
235
+ viewBox: "0 0 20 20",
236
+ fill: "none",
237
+ xmlns: "http://www.w3.org/2000/svg",
238
+ className: cn("text-[#3D3D3D]", className)
239
+ }, props), {
240
+ children: [
241
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("title", { children: "Icon Expand" }),
242
+ /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
243
+ "path",
244
+ {
245
+ d: "M11.6667 8.33333L17.5 2.5M17.5 2.5H12.5M17.5 2.5V7.5M8.33333 11.6667L2.5 17.5M2.5 17.5H7.5M2.5 17.5L2.5 12.5",
246
+ stroke: "currentColor",
247
+ strokeWidth: "1.5",
248
+ strokeLinecap: "round",
249
+ strokeLinejoin: "round"
250
+ }
251
+ )
252
+ ]
253
+ })
254
+ );
255
+ };
256
+
257
+ // src/assets/icons/image-plus/index.tsx
258
+ var import_jsx_runtime5 = require("react/jsx-runtime");
259
+ var IconImagePlus = (_a) => {
260
+ var _b = _a, { className = "text-[#FFF8EC]" } = _b, props = __objRest(_b, ["className"]);
261
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
262
+ "svg",
263
+ __spreadProps(__spreadValues({
264
+ width: "20",
265
+ height: "20",
266
+ viewBox: "0 0 20 20",
267
+ fill: "none",
268
+ xmlns: "http://www.w3.org/2000/svg",
269
+ className
270
+ }, props), {
271
+ children: [
272
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("title", { children: "Icon Image Plus" }),
273
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
274
+ "path",
275
+ {
276
+ d: "M10.4167 2.50002H6.5C5.09987 2.50002 4.3998 2.50002 3.86502 2.7725C3.39462 3.01219 3.01217 3.39464 2.77248 3.86504C2.5 4.39982 2.5 5.09989 2.5 6.50002V13.5C2.5 14.9002 2.5 15.6002 2.77248 16.135C3.01217 16.6054 3.39462 16.9879 3.86502 17.2275C4.3998 17.5 5.09987 17.5 6.5 17.5H14.1667C14.9416 17.5 15.3291 17.5 15.647 17.4148C16.5098 17.1837 17.1836 16.5098 17.4148 15.6471C17.5 15.3292 17.5 14.9417 17.5 14.1667M15.8333 6.66669V1.66669M13.3333 4.16669H18.3333M8.75 7.08335C8.75 8.00383 8.00381 8.75002 7.08333 8.75002C6.16286 8.75002 5.41667 8.00383 5.41667 7.08335C5.41667 6.16288 6.16286 5.41669 7.08333 5.41669C8.00381 5.41669 8.75 6.16288 8.75 7.08335ZM12.4917 9.93181L5.44262 16.3401C5.04614 16.7005 4.84789 16.8807 4.83036 17.0368C4.81516 17.1722 4.86704 17.3064 4.96932 17.3963C5.08732 17.5 5.35523 17.5 5.89107 17.5H13.7133C14.9126 17.5 15.5123 17.5 15.9833 17.2985C16.5745 17.0456 17.0456 16.5746 17.2985 15.9833C17.5 15.5123 17.5 14.9126 17.5 13.7133C17.5 13.3098 17.5 13.108 17.4559 12.9201C17.4004 12.684 17.2941 12.4628 17.1444 12.272C17.0252 12.1202 16.8677 11.9941 16.5526 11.7421L14.2215 9.87724C13.9062 9.62494 13.7485 9.4988 13.5748 9.45428C13.4218 9.41504 13.2607 9.42012 13.1104 9.46893C12.94 9.5243 12.7905 9.66014 12.4917 9.93181Z",
277
+ stroke: "currentColor",
278
+ strokeWidth: "1.5",
279
+ strokeLinecap: "round",
280
+ strokeLinejoin: "round"
281
+ }
282
+ )
283
+ ]
284
+ })
285
+ );
286
+ };
287
+
288
+ // src/assets/icons/x-close/index.tsx
289
+ var import_jsx_runtime6 = require("react/jsx-runtime");
290
+ var IconXClose = (_a) => {
291
+ var _b = _a, { className = "" } = _b, props = __objRest(_b, ["className"]);
292
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(
293
+ "svg",
294
+ __spreadProps(__spreadValues({
295
+ width: "20",
296
+ height: "20",
297
+ viewBox: "0 0 20 20",
298
+ fill: "none",
299
+ xmlns: "http://www.w3.org/2000/svg",
300
+ className: cn("text-[#3D3D3D]", className)
301
+ }, props), {
302
+ children: [
303
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("title", { children: "Icon XClose" }),
304
+ /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
305
+ "path",
306
+ {
307
+ d: "M15 5L5 15M5 5L15 15",
308
+ stroke: "currentColor",
309
+ strokeWidth: "1.5",
310
+ strokeLinecap: "round",
311
+ strokeLinejoin: "round"
312
+ }
313
+ )
314
+ ]
315
+ })
316
+ );
317
+ };
105
318
 
106
319
  // src/constant/default.ts
107
- var defaultQuickMenuMessage = "\u0E2A\u0E27\u0E31\u0E2A\u0E14\u0E35\u0E04\u0E23\u0E31\u0E1A Brooklyn! \u{1F44B} UTECH \u0E1E\u0E23\u0E49\u0E2D\u0E21\u0E0A\u0E48\u0E27\u0E22\u0E04\u0E38\u0E13\u0E2B\u0E32\u0E2D\u0E38\u0E1B\u0E01\u0E23\u0E13\u0E4C IT \u0E17\u0E35\u0E48\u0E15\u0E2D\u0E1A\u0E42\u0E08\u0E17\u0E22\u0E4C\u0E17\u0E35\u0E48\u0E2A\u0E38\u0E14 \u0E44\u0E21\u0E48\u0E27\u0E48\u0E32\u0E08\u0E30\u0E40\u0E1B\u0E47\u0E19\u0E04\u0E2D\u0E21\u0E1E\u0E34\u0E27\u0E40\u0E15\u0E2D\u0E23\u0E4C \u0E2D\u0E38\u0E1B\u0E01\u0E23\u0E13\u0E4C\u0E40\u0E2A\u0E23\u0E34\u0E21 \u0E2B\u0E23\u0E37\u0E2D\u0E2D\u0E30\u0E44\u0E23\u0E01\u0E47\u0E15\u0E32\u0E21 \u0E16\u0E32\u0E21\u0E44\u0E14\u0E49\u0E40\u0E25\u0E22\u0E04\u0E23\u0E31\u0E1A \u{1F60A}";
320
+ var defaultQuickMenuMessage = "\u0E2A\u0E27\u0E31\u0E2A\u0E14\u0E35\u0E04\u0E23\u0E31\u0E1A \u{1F44B} ZIMCRAFT \u0E1E\u0E23\u0E49\u0E2D\u0E21\u0E0A\u0E48\u0E27\u0E22\u0E04\u0E38\u0E13\u0E2B\u0E32\u0E2D\u0E38\u0E1B\u0E01\u0E23\u0E13\u0E4C IT \u0E17\u0E35\u0E48\u0E15\u0E2D\u0E1A\u0E42\u0E08\u0E17\u0E22\u0E4C\u0E17\u0E35\u0E48\u0E2A\u0E38\u0E14 \u0E44\u0E21\u0E48\u0E27\u0E48\u0E32\u0E08\u0E30\u0E40\u0E1B\u0E47\u0E19\u0E04\u0E2D\u0E21\u0E1E\u0E34\u0E27\u0E40\u0E15\u0E2D\u0E23\u0E4C \u0E2D\u0E38\u0E1B\u0E01\u0E23\u0E13\u0E4C\u0E40\u0E2A\u0E23\u0E34\u0E21 \u0E2B\u0E23\u0E37\u0E2D\u0E2D\u0E30\u0E44\u0E23\u0E01\u0E47\u0E15\u0E32\u0E21 \u0E16\u0E32\u0E21\u0E44\u0E14\u0E49\u0E40\u0E25\u0E22\u0E04\u0E23\u0E31\u0E1A \u{1F60A}";
108
321
  var defaultBanner = "https://utech-dev.zimpligital.com/_next/image?url=%2F_next%2Fstatic%2Fmedia%2Fcoupon-banner-th.edad52fd.webp&w=640&q=75";
109
322
  var defaultQuickMenus = [
110
323
  { id: "1", title: "\u0E2A\u0E31\u0E48\u0E07\u0E0B\u0E37\u0E49\u0E2D\u0E2A\u0E34\u0E19\u0E04\u0E49\u0E32 \u{1F6CD}\uFE0F", value: "\u0E2A\u0E31\u0E48\u0E07\u0E0B\u0E37\u0E49\u0E2D\u0E2A\u0E34\u0E19\u0E04\u0E49\u0E32", mockResponse: "QUICK_MENU_SHOP" /* QUICK_MENU_SHOP */ },
@@ -239,7 +452,7 @@ var mockResponse = {
239
452
  ["PROMOTION_INFO" /* PROMOTION_INFO */]: {
240
453
  id: "bot-promotion-info",
241
454
  type: "BOT_TEXT" /* BOT_TEXT */,
242
- text: "\u{1F389} \u0E42\u0E1B\u0E23\u0E42\u0E21\u0E0A\u0E31\u0E48\u0E19\u0E1E\u0E34\u0E40\u0E28\u0E29\u0E1B\u0E23\u0E30\u0E08\u0E33\u0E40\u0E14\u0E37\u0E2D\u0E19\n\n\u{1F525} \u0E25\u0E14\u0E2A\u0E39\u0E07\u0E2A\u0E38\u0E14 30% \u0E2A\u0E34\u0E19\u0E04\u0E49\u0E32\u0E17\u0E38\u0E01\u0E2B\u0E21\u0E27\u0E14\n\u{1F525} \u0E0B\u0E37\u0E49\u0E2D\u0E04\u0E23\u0E1A 5,000 \u0E1A\u0E32\u0E17 \u0E23\u0E31\u0E1A\u0E2A\u0E48\u0E27\u0E19\u0E25\u0E14 500 \u0E1A\u0E32\u0E17\n\u{1F525} \u0E1C\u0E48\u0E2D\u0E19 0% \u0E19\u0E32\u0E19 10 \u0E40\u0E14\u0E37\u0E2D\u0E19\n\u{1F525} \u0E02\u0E2D\u0E07\u0E41\u0E16\u0E21\u0E21\u0E39\u0E25\u0E04\u0E48\u0E32\u0E2A\u0E39\u0E07 \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A\u0E25\u0E39\u0E01\u0E04\u0E49\u0E32\u0E43\u0E2B\u0E21\u0E48\n\n\u0E43\u0E0A\u0E49\u0E42\u0E04\u0E49\u0E14: UTECH2024 \u0E23\u0E31\u0E1A\u0E2A\u0E48\u0E27\u0E19\u0E25\u0E14\u0E40\u0E1E\u0E34\u0E48\u0E21\u0E2D\u0E35\u0E01 5%!"
455
+ text: "\u{1F389} \u0E42\u0E1B\u0E23\u0E42\u0E21\u0E0A\u0E31\u0E48\u0E19\u0E1E\u0E34\u0E40\u0E28\u0E29\u0E1B\u0E23\u0E30\u0E08\u0E33\u0E40\u0E14\u0E37\u0E2D\u0E19\n\n\u{1F525} \u0E25\u0E14\u0E2A\u0E39\u0E07\u0E2A\u0E38\u0E14 30% \u0E2A\u0E34\u0E19\u0E04\u0E49\u0E32\u0E17\u0E38\u0E01\u0E2B\u0E21\u0E27\u0E14\n\u{1F525} \u0E0B\u0E37\u0E49\u0E2D\u0E04\u0E23\u0E1A 5,000 \u0E1A\u0E32\u0E17 \u0E23\u0E31\u0E1A\u0E2A\u0E48\u0E27\u0E19\u0E25\u0E14 500 \u0E1A\u0E32\u0E17\n\u{1F525} \u0E1C\u0E48\u0E2D\u0E19 0% \u0E19\u0E32\u0E19 10 \u0E40\u0E14\u0E37\u0E2D\u0E19\n\u{1F525} \u0E02\u0E2D\u0E07\u0E41\u0E16\u0E21\u0E21\u0E39\u0E25\u0E04\u0E48\u0E32\u0E2A\u0E39\u0E07 \u0E2A\u0E33\u0E2B\u0E23\u0E31\u0E1A\u0E25\u0E39\u0E01\u0E04\u0E49\u0E32\u0E43\u0E2B\u0E21\u0E48\n\n\u0E43\u0E0A\u0E49\u0E42\u0E04\u0E49\u0E14: ZIMCRAFT 2024 \u0E23\u0E31\u0E1A\u0E2A\u0E48\u0E27\u0E19\u0E25\u0E14\u0E40\u0E1E\u0E34\u0E48\u0E21\u0E2D\u0E35\u0E01 5%!"
243
456
  },
244
457
  ["STOCK_AVAILABLE" /* STOCK_AVAILABLE */]: {
245
458
  id: "bot-stock-available",
@@ -276,21 +489,25 @@ var mockMessages = [
276
489
  // src/hooks/use-openchat.tsx
277
490
  var import_react = require("react");
278
491
  var useOpenChat = () => {
279
- const [isOpen, setIsOpen] = (0, import_react.useState)(true);
492
+ const [isOpen, setIsOpen] = (0, import_react.useState)(false);
493
+ const [isExpanded, setIsExpanded] = (0, import_react.useState)(false);
280
494
  const openChat = (0, import_react.useCallback)(() => setIsOpen(true), []);
281
495
  const closeChat = (0, import_react.useCallback)(() => setIsOpen(false), []);
282
496
  const toggleChat = (0, import_react.useCallback)(() => setIsOpen((prev) => !prev), []);
497
+ const toggleExpand = (0, import_react.useCallback)(() => setIsExpanded((prev) => !prev), []);
283
498
  return {
284
499
  isOpen,
500
+ isExpanded,
285
501
  openChat,
286
502
  closeChat,
287
- toggleChat
503
+ toggleChat,
504
+ toggleExpand
288
505
  };
289
506
  };
290
507
 
291
508
  // src/contexts/chat-context.tsx
292
509
  var import_react2 = require("react");
293
- var import_jsx_runtime = require("react/jsx-runtime");
510
+ var import_jsx_runtime7 = require("react/jsx-runtime");
294
511
  var ChatContext = (0, import_react2.createContext)(void 0);
295
512
  var ChatProvider = ({ children }) => {
296
513
  const [messages, setMessages] = (0, import_react2.useState)([]);
@@ -329,7 +546,7 @@ var ChatProvider = ({ children }) => {
329
546
  }),
330
547
  [messages, latestMessage, isLoading, chatControls, addUserMessage, addBotMessage, clearMessages]
331
548
  );
332
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ChatContext.Provider, { value, children });
549
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(ChatContext.Provider, { value, children });
333
550
  };
334
551
  var useChatContext = () => {
335
552
  const context = (0, import_react2.useContext)(ChatContext);
@@ -339,13 +556,6 @@ var useChatContext = () => {
339
556
  return context;
340
557
  };
341
558
 
342
- // src/utils/cn.ts
343
- var import_clsx = require("clsx");
344
- var import_tailwind_merge = require("tailwind-merge");
345
- function cn(...args) {
346
- return (0, import_tailwind_merge.twMerge)((0, import_clsx.clsx)(args));
347
- }
348
-
349
559
  // src/utils/message.ts
350
560
  var getMockBotMessage = (menu) => {
351
561
  const newMessage = mockResponse[menu.mockResponse];
@@ -361,43 +571,38 @@ var getMockBotMessageByText = (text) => {
361
571
  };
362
572
 
363
573
  // src/components/aizu-chat.tsx
364
- var import_react4 = require("react");
574
+ var import_react3 = require("react");
365
575
 
366
576
  // src/components/input-bar/index.tsx
367
- var import_jsx_runtime2 = require("react/jsx-runtime");
577
+ var import_jsx_runtime8 = require("react/jsx-runtime");
368
578
  var ButtonSelectImage = (_a) => {
369
579
  var _b = _a, { onClick, className } = _b, props = __objRest(_b, ["onClick", "className"]);
370
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
580
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
371
581
  "button",
372
582
  __spreadProps(__spreadValues({
373
583
  type: "button",
374
584
  onClick,
375
585
  className: cn(
376
- "shrink-0 w-10 h-10 rounded-full bg-gray-100 flex items-center justify-center hover:bg-gray-200 transition-colors",
586
+ "shrink-0 w-8 h-8 rounded-full bg-[#3D3D3D] flex items-center justify-center hover:opacity-70 cursor-pointer transition-colors",
377
587
  className
378
588
  ),
379
589
  "aria-label": "Upload image"
380
590
  }, props), {
381
- children: /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [
382
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("title", { children: "Image Upload Icon" }),
383
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("rect", { x: "3", y: "3", width: "18", height: "18", rx: "2", ry: "2" }),
384
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("circle", { cx: "8.5", cy: "8.5", r: "1.5" }),
385
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("polyline", { points: "21 15 16 10 5 21" })
386
- ] })
591
+ children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(IconImagePlus, {})
387
592
  })
388
593
  );
389
594
  };
390
595
  var InputText = (_a) => {
391
596
  var _b = _a, { onMagicClick, placeholder, className } = _b, props = __objRest(_b, ["onMagicClick", "placeholder", "className"]);
392
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: "flex-1 relative", children: [
393
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
597
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: "flex-1 relative", children: [
598
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
394
599
  "input",
395
600
  __spreadValues({
396
601
  type: "text",
397
602
  name: "message",
398
603
  placeholder,
399
604
  className: cn(
400
- "w-full px-4 py-2 pr-12 rounded-full bg-gray-100 border-none outline-none focus:ring-2 focus:ring-orange-300 text-sm",
605
+ "w-full pr-12 bg-gray-100 outline-none ",
401
606
  className
402
607
  ),
403
608
  onKeyDown: (e) => {
@@ -409,49 +614,52 @@ var InputText = (_a) => {
409
614
  }
410
615
  }, props)
411
616
  ),
412
- onMagicClick && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
617
+ onMagicClick && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
413
618
  "button",
414
619
  {
415
620
  type: "button",
416
621
  onClick: onMagicClick,
417
622
  className: "absolute right-2 top-1/2 -translate-y-1/2 w-8 h-8 flex items-center justify-center hover:bg-gray-200 rounded-full transition-colors",
418
623
  "aria-label": "AI assist",
419
- children: /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("svg", { width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [
420
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("title", { children: "Magic/AI Icon" }),
421
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("path", { d: "M12 2L15 8.5L22 9.27L17 14.14L18.18 21.02L12 17.77L5.82 21.02L7 14.14L2 9.27L9 8.5L12 2Z" })
624
+ children: /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("svg", { width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [
625
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("title", { children: "Magic/AI Icon" }),
626
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("path", { d: "M12 2L15 8.5L22 9.27L17 14.14L18.18 21.02L12 17.77L5.82 21.02L7 14.14L2 9.27L9 8.5L12 2Z" })
422
627
  ] })
423
628
  }
424
629
  )
425
630
  ] });
426
631
  };
427
632
  var ButtonConfirm = (_a) => {
428
- var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
429
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
633
+ var _b = _a, { className, disabled } = _b, props = __objRest(_b, ["className", "disabled"]);
634
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
430
635
  "button",
431
636
  __spreadProps(__spreadValues({
432
637
  type: "submit",
433
638
  className: cn(
434
- "shrink-0 w-10 h-10 rounded-full bg-gray-100 flex items-center justify-center hover:bg-gray-200 transition-colors",
639
+ "shrink-0 w-10 h-10 rounded-full ",
640
+ "bg-gray-100 hover:bg-gray-200 transition-colors",
641
+ "flex items-center justify-center",
642
+ "cursor-pointer",
643
+ "disabled:bg-gray-300 disabled:cursor-not-allowed",
435
644
  className
436
645
  ),
437
- "aria-label": "Send message"
646
+ "aria-label": "Send message",
647
+ disabled
438
648
  }, props), {
439
- children: /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", children: [
440
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("title", { children: "Send Icon" }),
441
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("line", { x1: "12", y1: "19", x2: "12", y2: "5" }),
442
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("polyline", { points: "5 12 12 5 19 12" })
443
- ] })
649
+ children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(IconArrowNarrowUp, { className: "text-black" })
444
650
  })
445
651
  );
446
652
  };
447
653
  var InputBar = (_a) => {
448
654
  var _b = _a, {
655
+ isLoading,
449
656
  onSend,
450
657
  onImageClick,
451
658
  onMagicClick,
452
659
  placeholder = "\u0E16\u0E32\u0E21\u0E04\u0E33\u0E16\u0E32\u0E21\u0E44\u0E14\u0E49\u0E40\u0E25\u0E22...",
453
660
  className
454
661
  } = _b, props = __objRest(_b, [
662
+ "isLoading",
455
663
  "onSend",
456
664
  "onImageClick",
457
665
  "onMagicClick",
@@ -467,10 +675,19 @@ var InputBar = (_a) => {
467
675
  e.currentTarget.reset();
468
676
  }
469
677
  };
470
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("section", __spreadProps(__spreadValues({ className: cn("bg-white p-4", className) }, props), { children: /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("form", { onSubmit: handleSubmit, className: "flex items-center gap-3", children: [
471
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(ButtonSelectImage, { onClick: onImageClick }),
472
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(InputText, { placeholder, onMagicClick }),
473
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(ButtonConfirm, {})
678
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("section", __spreadProps(__spreadValues({ className: cn("bg-white p-4", className) }, props), { children: /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("form", { onSubmit: handleSubmit, className: "flex items-center gap-3", children: [
679
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)(
680
+ "label",
681
+ {
682
+ htmlFor: "chat-input-text",
683
+ className: "flex items-center rounded-full bg-gray-100 flex-1 p-2 focus-within:ring-2 focus-within:ring-orange-300",
684
+ children: [
685
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(ButtonSelectImage, { onClick: onImageClick, className: "mr-3" }),
686
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(InputText, { id: "chat-input-text", placeholder, onMagicClick })
687
+ ]
688
+ }
689
+ ),
690
+ /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(ButtonConfirm, { disabled: isLoading })
474
691
  ] }) }));
475
692
  };
476
693
  InputBar.ButtonSelectImage = ButtonSelectImage;
@@ -478,23 +695,23 @@ InputBar.InputText = InputText;
478
695
  InputBar.ButtonConfirm = ButtonConfirm;
479
696
 
480
697
  // src/components/loading.tsx
481
- var import_jsx_runtime3 = require("react/jsx-runtime");
698
+ var import_jsx_runtime9 = require("react/jsx-runtime");
482
699
  var Loading = ({ message }) => {
483
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("section", { className: cn("flex flex-col justify-center items-center border border-orange-400 shadow shadow-orange-400 h-10 max-w-69.5 rounded-3xl", { "h-16": !!message }), children: [
484
- /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: "flex justify-center items-center gap-x-1 ", children: [
485
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: "w-2 h-2 rounded-full bg-orange-400 animate-wiggle" }),
486
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: "w-1.25 h-1.25 rounded-full bg-orange-400 animate-wiggle" }),
487
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: "w-0.75 h-0.75 rounded-full bg-orange-400 animate-wiggle" })
700
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("section", { className: cn("flex flex-col justify-center items-center border border-orange-400 shadow shadow-orange-400 h-10 max-w-69.5 rounded-3xl", { "h-16": !!message }), children: [
701
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("div", { className: "flex justify-center items-center gap-x-1 ", children: [
702
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "w-2 h-2 rounded-full bg-orange-400 animate-circle-keys animation-delay-300" }),
703
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "w-2 h-2 rounded-full bg-orange-400 animate-circle-keys animation-delay-600" }),
704
+ /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "w-2 h-2 rounded-full bg-orange-400 animate-circle-keys animation-delay-900" })
488
705
  ] }),
489
- message && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { className: "text-center text-[12px] text-gray-500 mt-1", children: message })
706
+ message && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("p", { className: "text-center text-[12px] text-gray-500 mt-1", children: message })
490
707
  ] });
491
708
  };
492
709
 
493
710
  // src/components/button.tsx
494
- var import_jsx_runtime4 = require("react/jsx-runtime");
711
+ var import_jsx_runtime10 = require("react/jsx-runtime");
495
712
  var Button = (_a) => {
496
713
  var _b = _a, { children, className, onClick, ref } = _b, props = __objRest(_b, ["children", "className", "onClick", "ref"]);
497
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
714
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
498
715
  "button",
499
716
  __spreadProps(__spreadValues({
500
717
  ref,
@@ -514,38 +731,32 @@ var Button = (_a) => {
514
731
  };
515
732
 
516
733
  // src/components/container.tsx
517
- var import_jsx_runtime5 = require("react/jsx-runtime");
734
+ var import_jsx_runtime11 = require("react/jsx-runtime");
518
735
  var Container = (_a) => {
519
736
  var _b = _a, { className, children } = _b, props = __objRest(_b, ["className", "children"]);
520
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: cn("p-3 rounded-3xl border border-orange-300", className), children });
737
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: cn("p-3 rounded-3xl border border-orange-300", className), children });
521
738
  };
522
739
 
523
740
  // src/components/message/index.tsx
524
- var import_jsx_runtime6 = require("react/jsx-runtime");
741
+ var import_jsx_runtime12 = require("react/jsx-runtime");
525
742
  var MessageBubble = ({ message, handleClick }) => {
526
743
  if (message.type === "USER_TEXT" /* USER_TEXT */) {
527
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Container, { className: "ml-auto bg-orange-200 border-none text-sm", children: message.text });
744
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Container, { className: "ml-auto bg-orange-200 border-none text-sm", children: message.text });
528
745
  }
529
746
  if (message.type === "BOT_TEXT" /* BOT_TEXT */) {
530
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(Container, { className: "mr-auto max-w-75.5 text-sm", children: message.text });
747
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(BotMessageWrapper, { children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Container, { className: "mr-auto max-w-75.5 text-sm", children: message.text }) });
531
748
  }
532
- if (message.type === "BOT_TEXT_WITH_MENUS" /* BOT_TEXT_WITH_MENUS */) {
533
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(MessageWithMenus, { type: message.type, message: message.text || "", menus: message.menus || [], handleClick });
749
+ if (message.type === "BOT_TEXT_WITH_MENUS" /* BOT_TEXT_WITH_MENUS */ || message.type === "BOT_QUICK_MENUS" /* BOT_QUICK_MENUS */ || message.type === "BOT_ERROR_WITH_MENUS" /* BOT_ERROR_WITH_MENUS */) {
750
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(BotMessageWrapper, { children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(MessageWithMenus, { type: message.type, message: message.text || "", menus: message.menus || [], handleClick }) });
534
751
  }
535
- if (message.type === "BOT_QUICK_MENUS" /* BOT_QUICK_MENUS */) {
536
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(MessageWithMenus, { type: message.type, message: message.text || "", menus: message.menus || [], handleClick });
537
- }
538
- if (message.type === "BOT_ERROR_WITH_MENUS" /* BOT_ERROR_WITH_MENUS */) {
539
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(MessageWithMenus, { type: message.type, message: message.text || "", menus: message.menus || [], handleClick });
540
- }
541
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(MenusImage, { menus: message.menus || [] });
752
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(MenusImage, { menus: message.menus || [] });
542
753
  };
543
754
  var MessageWithMenus = ({ type, message, menus, className, handleClick }) => {
544
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)(Container, { className: cn("mr-auto max-w-75.5 lg:max-w-80", className), children: [
545
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("p", { className: "text-sm mb-4", children: message }),
546
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("ul", { className: cn("flex flex-wrap gap-x-1 gap-y-3", { "flex-col": type === "BOT_ERROR_WITH_MENUS" /* BOT_ERROR_WITH_MENUS */ }), children: menus == null ? void 0 : menus.map((menu) => {
755
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(Container, { className: cn("mr-auto max-w-75.5 lg:max-w-80", className), children: [
756
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("p", { className: "text-sm mb-4", children: message }),
757
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("ul", { className: cn("flex flex-wrap gap-x-1 gap-y-3", { "flex-col": type === "BOT_ERROR_WITH_MENUS" /* BOT_ERROR_WITH_MENUS */ }), children: menus == null ? void 0 : menus.map((menu) => {
547
758
  if (menu == null ? void 0 : menu.phoneNumber) {
548
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("li", { className: "w-full ", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
759
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("li", { className: "w-full ", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
549
760
  "a",
550
761
  {
551
762
  href: `tel:+${menu == null ? void 0 : menu.phoneNumber}`,
@@ -554,7 +765,7 @@ var MessageWithMenus = ({ type, message, menus, className, handleClick }) => {
554
765
  }
555
766
  ) }, menu.id);
556
767
  }
557
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("li", { className: "min-w-max ", children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
768
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("li", { className: "min-w-max ", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
558
769
  Button,
559
770
  {
560
771
  className: cn({ "w-full": type === "BOT_ERROR_WITH_MENUS" /* BOT_ERROR_WITH_MENUS */ }),
@@ -568,17 +779,21 @@ var MessageWithMenus = ({ type, message, menus, className, handleClick }) => {
568
779
  ] });
569
780
  };
570
781
  var MenusImage = ({ menus }) => {
571
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("ul", { className: "flex gap-x-2", children: menus == null ? void 0 : menus.map((menu) => /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("img", { src: menu == null ? void 0 : menu.imageUrl, alt: "menu-image" }) }, menu.id)) });
782
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("ul", { className: "flex gap-x-2", children: menus == null ? void 0 : menus.map((menu) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("img", { src: menu == null ? void 0 : menu.imageUrl, alt: "menu-image" }) }, menu.id)) });
572
783
  };
784
+ var BotMessageWrapper = ({ children }) => /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "flex flex-col items-start", children: [
785
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(IconAI, { className: "mb-2" }),
786
+ children
787
+ ] });
573
788
 
574
789
  // src/components/quick-menus.tsx
575
- var import_jsx_runtime7 = require("react/jsx-runtime");
790
+ var import_jsx_runtime13 = require("react/jsx-runtime");
576
791
  var QuickMenus = ({ bannerSrc, message = "welcome message", menus, handleClick }) => {
577
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("section", { className: "w-75.5 bg-white shadow rounded-3xl overflow-hidden", children: [
578
- bannerSrc ? /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("img", { src: bannerSrc, alt: "banner" }) : /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: "w-75.5 h-29.5 border-b border-gray-200" }),
579
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: "p-3 flex flex-col gap-y-3", children: [
580
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("p", { className: "text-sm", children: message }),
581
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("ul", { className: "flex gap-3 flex-wrap", children: menus == null ? void 0 : menus.map((menu) => /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(Button, { onClick: () => {
792
+ return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("section", { className: "w-75.5 bg-white shadow rounded-3xl overflow-hidden", children: [
793
+ bannerSrc ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("img", { src: bannerSrc, alt: "banner" }) : /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: "w-75.5 h-29.5 border-b border-gray-200" }),
794
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: "p-3 flex flex-col gap-y-3", children: [
795
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("p", { className: "text-sm", children: message }),
796
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("ul", { className: "flex gap-3 flex-wrap", children: menus == null ? void 0 : menus.map((menu) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(Button, { onClick: () => {
582
797
  handleClick(menu);
583
798
  }, children: menu.title }) }, menu.id)) })
584
799
  ] })
@@ -586,11 +801,11 @@ var QuickMenus = ({ bannerSrc, message = "welcome message", menus, handleClick }
586
801
  };
587
802
 
588
803
  // src/components/quick-menus-chip.tsx
589
- var import_jsx_runtime8 = require("react/jsx-runtime");
804
+ var import_jsx_runtime14 = require("react/jsx-runtime");
590
805
  var QuickMenuChips = ({ menus, handleClick, className }) => {
591
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: "relative", children: [
592
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("div", { className: "absolute lg:hidden right-0 top-0 bottom-0 w-8 bg-linear-to-l from-white to-transparent pointer-events-none z-10" }),
593
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("ul", { className: cn("flex lg:flex-wrap gap-3 overflow-x-scroll scrollbar-hide", className), children: menus == null ? void 0 : menus.map((menu) => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
806
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "relative", children: [
807
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "absolute lg:hidden right-0 top-0 bottom-0 w-8 bg-linear-to-l from-white to-transparent pointer-events-none z-10" }),
808
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("ul", { className: cn("flex lg:flex-wrap gap-3 overflow-x-scroll scrollbar-hide", className), children: menus == null ? void 0 : menus.map((menu) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
594
809
  Button,
595
810
  {
596
811
  onClick: () => {
@@ -604,137 +819,123 @@ var QuickMenuChips = ({ menus, handleClick, className }) => {
604
819
  };
605
820
  var quick_menus_chip_default = QuickMenuChips;
606
821
 
607
- // src/contexts/aizu-client-context.tsx
608
- var import_react3 = require("react");
609
- var import_jsx_runtime9 = require("react/jsx-runtime");
610
- var AizuClientContext = (0, import_react3.createContext)(
611
- void 0
612
- );
613
- var AizuClientProvider = ({
614
- children,
615
- client,
616
- initialThreadId,
617
- initialResourceId
618
- }) => {
619
- const [threadId, setThreadId] = (0, import_react3.useState)(initialThreadId);
620
- const [resourceId, setResourceId] = (0, import_react3.useState)(
621
- initialResourceId
622
- );
623
- const sendMessage = (0, import_react3.useCallback)(
624
- (query) => __async(null, null, function* () {
625
- console.log("\u{1F4E4} Sending message:", query);
626
- console.log("\u{1F517} Current threadId:", threadId);
627
- console.log("\u{1F4E6} Current resourceId:", resourceId);
628
- const params = __spreadValues(__spreadValues({
629
- query
630
- }, threadId && { thread_id: threadId }), resourceId && { resource_id: resourceId });
631
- const response = yield client.chat(params);
632
- console.log("\u{1F4E5} Response received:", {
633
- thread_id: response.thread_id,
634
- resource_id: response.resource_id
635
- });
636
- if (response.thread_id && response.thread_id !== threadId) {
637
- console.log("\u2705 Update threadId:", response.thread_id);
638
- setThreadId(response.thread_id);
639
- }
640
- if (response.resource_id && response.resource_id !== resourceId) {
641
- console.log("\u2705 Update resourceId:", response.resource_id);
642
- setResourceId(response.resource_id);
643
- }
644
- return response;
645
- }),
646
- [client, threadId, resourceId]
647
- );
648
- return /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
649
- AizuClientContext.Provider,
650
- {
651
- value: { aizuClient: client, threadId, resourceId, sendMessage },
652
- children
653
- }
654
- );
655
- };
656
- var useAizuClient = () => {
657
- const context = (0, import_react3.useContext)(AizuClientContext);
658
- if (!context) {
659
- throw new Error("useAizuClient must be used within AizuClientProvider");
660
- }
661
- return context;
662
- };
663
-
664
822
  // src/components/aizu-chat.tsx
665
- var import_jsx_runtime10 = require("react/jsx-runtime");
666
- var AizuChat = ({ aizuClient }) => {
667
- console.log("\u{1F680} ~ AizuChat ~ aizuClient:", aizuClient);
668
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(AizuClientProvider, { client: aizuClient, children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(ChatProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { children: [
669
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(FloatingButton, {}),
670
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(ChatWindow, { children: [
671
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(ChatHeader, {}),
672
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(ChatBody, {}),
673
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(ChatFooter, {})
823
+ var import_jsx_runtime15 = require("react/jsx-runtime");
824
+ var AizuChat = () => {
825
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ChatProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { children: [
826
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(FloatingButton, {}),
827
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(ChatWindow, { children: [
828
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ChatHeader, {}),
829
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ChatBody, {}),
830
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ChatFooter, {})
674
831
  ] })
675
- ] }) }) });
832
+ ] }) });
676
833
  };
677
834
  var FloatingButton = () => {
678
835
  const { chatControls } = useChatContext();
679
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
836
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
680
837
  "button",
681
838
  {
682
839
  type: "button",
683
840
  onClick: chatControls.toggleChat,
684
- className: "rounded-full p-2 aspect-square w-10 bg-black/60 cursor-pointer fixed right-5 bottom-5",
685
- children: "AI"
841
+ className: "rounded-full aspect-square w-16 cursor-pointer fixed right-5 bottom-5 shadow-orange-blur",
842
+ "aria-label": "Toggle chat",
843
+ children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(IconAI, { className: "w-full h-full" })
686
844
  }
687
845
  );
688
846
  };
689
847
  var ChatWindow = ({ children }) => {
690
848
  const { chatControls } = useChatContext();
691
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
692
- "div",
693
- {
694
- className: cn(
695
- "w-full lg:w-107.5 h-full lg:max-h-201",
696
- "z-9999 fixed top-0 right-0 lg:right-5 lg:bottom-20 lg:top-auto bg-[#F8F8FA]",
697
- "lg:rounded-4xl shadow-2xl overflow-hidden",
698
- "flex flex-col",
699
- { invisible: !chatControls.isOpen }
700
- ),
701
- children
702
- }
703
- );
849
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_jsx_runtime15.Fragment, { children: [
850
+ chatControls.isExpanded && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
851
+ "div",
852
+ {
853
+ className: "fixed inset-0 bg-black/50 z-9998 transition-opacity duration-300",
854
+ onClick: chatControls.toggleExpand,
855
+ onKeyDown: void 0,
856
+ "aria-hidden": "true",
857
+ "aria-label": "Close expanded chat"
858
+ }
859
+ ),
860
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: cn(
861
+ "w-full lg:w-107.5 h-full lg:h-[calc(100vh-100px)] lg:max-h-201",
862
+ "z-9999 fixed top-0 right-0 lg:right-5 lg:bottom-25 lg:top-auto bg-[#F8F8FA]",
863
+ "lg:rounded-4xl shadow-orange-blur overflow-hidden",
864
+ "flex flex-col",
865
+ "transition-all duration-300 ease-in-out",
866
+ {
867
+ "opacity-0 pointer-events-none translate-y-4": !chatControls.isOpen,
868
+ "opacity-100 pointer-events-auto translate-y-0": chatControls.isOpen
869
+ },
870
+ {
871
+ "lg:right-1/2 lg:translate-x-1/2 lg:w-[calc(100vw-100px)] lg:max-w-289 ": chatControls.isExpanded
872
+ }
873
+ ), children })
874
+ ] });
704
875
  };
705
876
  var ChatHeader = () => {
706
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("section", { className: "flex justify-between items-center bg-white py-3 px-4", children: [
707
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("button", { type: "button", children: " Back" }),
708
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: "flex flex-col items-center", children: [
709
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { children: "Shop Logo" }),
710
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: "text-[10px]", children: "Powered by Zimpligital" })
877
+ const { chatControls } = useChatContext();
878
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("section", { className: "flex justify-between items-center bg-white py-3 px-4", children: [
879
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
880
+ "button",
881
+ {
882
+ type: "button",
883
+ onClick: chatControls.closeChat,
884
+ className: "text-sm text-left cursor-pointer flex flex-1 lg:invisible",
885
+ children: [
886
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(IconChevronLeft, {}),
887
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { children: "\u0E22\u0E49\u0E2D\u0E19\u0E01\u0E25\u0E31\u0E1A" })
888
+ ]
889
+ }
890
+ ),
891
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "flex flex-col items-center flex-1 ", children: [
892
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "text-nowrap", children: "ZIMCRAFT STORE" }),
893
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "text-[10px] text-[#7C7C7C]", children: "Powered by Zimpligital" })
711
894
  ] }),
712
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", {})
895
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "flex-1 flex items-center justify-end gap-2 invisible lg:visible", children: [
896
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
897
+ "button",
898
+ {
899
+ type: "button",
900
+ "aria-label": "Expand chat",
901
+ onClick: chatControls.toggleExpand,
902
+ className: "text-sm p-2.5 cursor-pointer",
903
+ children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(IconExpand, {})
904
+ }
905
+ ),
906
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
907
+ "button",
908
+ {
909
+ type: "button",
910
+ "aria-label": "Close chat",
911
+ onClick: chatControls.closeChat,
912
+ className: "text-sm p-2.5 cursor-pointer",
913
+ children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(IconXClose, {})
914
+ }
915
+ )
916
+ ] })
713
917
  ] });
714
918
  };
715
919
  var ChatBody = () => {
716
920
  const { isLoading, addUserMessage, addBotMessage, messages, latestMessage } = useChatContext();
717
- const [showWaitMessage, setShowWaitMessage] = (0, import_react4.useState)(false);
718
- const messagesEndRef = (0, import_react4.useRef)(null);
921
+ const [showWaitMessage, setShowWaitMessage] = (0, import_react3.useState)(false);
922
+ const messagesEndRef = (0, import_react3.useRef)(null);
719
923
  const loadingMessage = showWaitMessage ? "Wait a minute..." : void 0;
720
924
  const messagesDisplay = messages || [];
721
925
  const displayWelcomeMessage = messagesDisplay.length === 0 && !isLoading;
722
- const handleClick = (0, import_react4.useCallback)(
723
- (menu) => __async(null, null, function* () {
724
- if (menu.title.includes(tryAgain) && !!(latestMessage == null ? void 0 : latestMessage.text)) {
725
- return addUserMessage(latestMessage == null ? void 0 : latestMessage.text);
726
- }
727
- addUserMessage(menu.title);
728
- const mockResponse2 = getMockBotMessage(menu);
729
- addBotMessage(mockResponse2);
730
- }),
731
- [addUserMessage, addBotMessage, latestMessage]
732
- );
733
- (0, import_react4.useEffect)(() => {
926
+ const handleClick = (0, import_react3.useCallback)((menu) => __async(null, null, function* () {
927
+ if (menu.title.includes(tryAgain) && !!(latestMessage == null ? void 0 : latestMessage.text)) {
928
+ return addUserMessage(latestMessage == null ? void 0 : latestMessage.text);
929
+ }
930
+ addUserMessage(menu.title);
931
+ const mockResponse2 = getMockBotMessage(menu);
932
+ addBotMessage(mockResponse2);
933
+ }), [addUserMessage, addBotMessage, latestMessage]);
934
+ (0, import_react3.useEffect)(() => {
734
935
  var _a;
735
936
  (_a = messagesEndRef.current) == null ? void 0 : _a.scrollIntoView({ behavior: "smooth" });
736
937
  }, [isLoading, messagesDisplay.length]);
737
- (0, import_react4.useEffect)(() => {
938
+ (0, import_react3.useEffect)(() => {
738
939
  let timer;
739
940
  if (isLoading) {
740
941
  timer = setTimeout(() => {
@@ -747,63 +948,44 @@ var ChatBody = () => {
747
948
  if (timer) clearTimeout(timer);
748
949
  };
749
950
  }, [isLoading]);
750
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("section", { className: "flex-1 overflow-y-auto relative", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("section", { className: " p-4 flex flex-col gap-y-3 overflow-y-auto", children: [
751
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
752
- QuickMenus,
753
- {
754
- bannerSrc: defaultBanner,
755
- menus: defaultQuickMenus,
756
- message: defaultQuickMenuMessage,
757
- handleClick
758
- }
759
- ),
760
- messagesDisplay == null ? void 0 : messagesDisplay.map((message) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
761
- MessageBubble,
762
- {
763
- message,
764
- handleClick
765
- },
766
- message.id
767
- )),
768
- isLoading && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(Loading, { message: loadingMessage }),
769
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { ref: messagesEndRef }),
770
- displayWelcomeMessage && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: "absolute bottom-4 left-1/2 -translate-x-1/2 text-center text-sm text-gray-500", children: "\u0E04\u0E38\u0E13\u0E01\u0E33\u0E25\u0E31\u0E07\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19\u0E2A\u0E19\u0E17\u0E19\u0E32\u0E01\u0E31\u0E1A UTECH AI" })
951
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("section", { className: "flex-1 overflow-y-auto relative", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("section", { className: " p-4 flex flex-col gap-y-3 overflow-y-auto min-h-full", children: [
952
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { children: [
953
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(IconAI, { className: "mb-2" }),
954
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(QuickMenus, { bannerSrc: defaultBanner, menus: defaultQuickMenus, message: defaultQuickMenuMessage, handleClick })
955
+ ] }),
956
+ messagesDisplay == null ? void 0 : messagesDisplay.map((message) => {
957
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "w-full flex flex-col items-start", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(MessageBubble, { message, handleClick }) }, message.id);
958
+ }),
959
+ isLoading && /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { children: [
960
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(IconAI, { className: "mb-2" }),
961
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Loading, { message: loadingMessage })
962
+ ] }),
963
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { ref: messagesEndRef }),
964
+ displayWelcomeMessage && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "mt-auto text-center text-sm text-gray-500", children: "\u0E04\u0E38\u0E13\u0E01\u0E33\u0E25\u0E31\u0E07\u0E40\u0E23\u0E34\u0E48\u0E21\u0E15\u0E49\u0E19\u0E2A\u0E19\u0E17\u0E19\u0E32\u0E01\u0E31\u0E1A ZIMCRAFT AI" })
771
965
  ] }) });
772
966
  };
773
967
  var ChatFooter = () => {
774
- const { addUserMessage, addBotMessage, latestMessage } = useChatContext();
775
- const handleClick = (0, import_react4.useCallback)(
776
- (menu) => __async(null, null, function* () {
777
- if (menu.title.includes(tryAgain) && !!(latestMessage == null ? void 0 : latestMessage.text)) {
778
- return addUserMessage(latestMessage == null ? void 0 : latestMessage.text);
779
- }
780
- addUserMessage(menu.title);
781
- const mockResponse2 = getMockBotMessage(menu);
782
- addBotMessage(mockResponse2);
783
- }),
784
- [addUserMessage, addBotMessage, latestMessage]
785
- );
786
- const handleSend = (0, import_react4.useCallback)(
787
- (message) => {
788
- addUserMessage(message);
789
- const mockResponse2 = getMockBotMessageByText(message);
790
- addBotMessage(mockResponse2);
791
- },
792
- [addUserMessage, addBotMessage]
793
- );
794
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("section", { className: "bg-white h-42.5 lg:h-46", children: [
795
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
796
- quick_menus_chip_default,
797
- {
798
- handleClick,
799
- menus: defaultQuickMenuChips,
800
- className: "pl-4 pt-4 pb-2"
801
- }
802
- ),
803
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
968
+ const { addUserMessage, addBotMessage, latestMessage, isLoading } = useChatContext();
969
+ const handleClick = (0, import_react3.useCallback)((menu) => __async(null, null, function* () {
970
+ if (menu.title.includes(tryAgain) && !!(latestMessage == null ? void 0 : latestMessage.text)) {
971
+ return addUserMessage(latestMessage == null ? void 0 : latestMessage.text);
972
+ }
973
+ addUserMessage(menu.title);
974
+ const mockResponse2 = getMockBotMessage(menu);
975
+ addBotMessage(mockResponse2);
976
+ }), [addUserMessage, addBotMessage, latestMessage]);
977
+ const handleSend = (0, import_react3.useCallback)((message) => {
978
+ addUserMessage(message);
979
+ const mockResponse2 = getMockBotMessageByText(message);
980
+ addBotMessage(mockResponse2);
981
+ }, [addUserMessage, addBotMessage]);
982
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("section", { className: "bg-white h-42.5 lg:h-46", children: [
983
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(quick_menus_chip_default, { handleClick, menus: defaultQuickMenuChips, className: "pl-4 pt-4 pb-2" }),
984
+ /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
804
985
  InputBar,
805
986
  {
806
987
  placeholder: "\u0E16\u0E32\u0E21\u0E04\u0E33\u0E16\u0E32\u0E21\u0E44\u0E14\u0E49\u0E40\u0E25\u0E22...",
988
+ isLoading,
807
989
  onSend: handleSend,
808
990
  onImageClick: () => console.log("Image upload"),
809
991
  onMagicClick: () => console.log("AI assist")
@@ -811,82 +993,10 @@ var ChatFooter = () => {
811
993
  )
812
994
  ] });
813
995
  };
814
-
815
- // src/components/test-component.tsx
816
- var import_react5 = require("react");
817
- var import_jsx_runtime11 = require("react/jsx-runtime");
818
- var TestComponent = ({ client }) => {
819
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(AizuClientProvider, { client, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(TestComponentContent, {}) });
820
- };
821
- var TestComponentContent = () => {
822
- const { sendMessage, resourceId, threadId } = useAizuClient();
823
- const [query, setQuery] = (0, import_react5.useState)("");
824
- const [response, setResponse] = (0, import_react5.useState)("");
825
- const [loading, setLoading] = (0, import_react5.useState)(false);
826
- const handleSend = () => __async(null, null, function* () {
827
- if (!query.trim()) return;
828
- try {
829
- setLoading(true);
830
- setResponse("");
831
- console.log("\u{1F4E4} Sending query:", query);
832
- const result = yield sendMessage(query);
833
- console.log("\u2705 Got response:", result);
834
- setResponse(result.response);
835
- setQuery("");
836
- } catch (error) {
837
- console.error("\u274C Error:", error);
838
- setResponse(`\u274C Error: ${error.message}`);
839
- } finally {
840
- setLoading(false);
841
- }
842
- });
843
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "border-2 border-blue-500 p-4 rounded space-y-4", children: [
844
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("h2", { className: "font-bold text-xl", children: "Test API Call" }),
845
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "text-sm text-gray-600 space-y-1", children: [
846
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("p", { children: [
847
- "\u{1F517} Thread ID: ",
848
- threadId || "(none yet)"
849
- ] }),
850
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("p", { children: [
851
- "\u{1F4E6} Resource ID: ",
852
- resourceId || "(none yet)"
853
- ] })
854
- ] }),
855
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "flex gap-2", children: [
856
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
857
- "input",
858
- {
859
- type: "text",
860
- value: query,
861
- onChange: (e) => setQuery(e.target.value),
862
- onKeyDown: (e) => e.key === "Enter" && handleSend(),
863
- placeholder: "Type your question...",
864
- className: "flex-1 border p-2 rounded",
865
- disabled: loading
866
- }
867
- ),
868
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
869
- "button",
870
- {
871
- type: "button",
872
- onClick: handleSend,
873
- disabled: loading || !query.trim(),
874
- className: "bg-blue-500 text-white px-4 py-2 rounded hover:bg-blue-600 disabled:bg-gray-400",
875
- children: loading ? "Sending..." : "Send"
876
- }
877
- )
878
- ] }),
879
- response && /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "p-3 bg-gray-100 rounded", children: [
880
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("strong", { children: "Response:" }),
881
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("p", { className: "mt-1 whitespace-pre-wrap", children: response })
882
- ] })
883
- ] });
884
- };
885
996
  // Annotate the CommonJS export names for ESM import in node:
886
997
  0 && (module.exports = {
887
998
  AizuChat,
888
999
  Button,
889
1000
  Loading,
890
- QuickMenus,
891
- TestComponent
1001
+ QuickMenus
892
1002
  });