@xplor-education/core-stencil-components 2.0.0

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 (724) hide show
  1. package/LICENSE +21 -0
  2. package/components/index.d.ts +33 -0
  3. package/components/index.js +2324 -0
  4. package/components/index.js.map +1 -0
  5. package/components/p-B1W2qj2l.js +50 -0
  6. package/components/p-B1W2qj2l.js.map +1 -0
  7. package/components/p-BK_ATKuB.js +37 -0
  8. package/components/p-BK_ATKuB.js.map +1 -0
  9. package/components/p-CBSi5kQB.js +56 -0
  10. package/components/p-CBSi5kQB.js.map +1 -0
  11. package/components/p-CTD6SyTD.js +181 -0
  12. package/components/p-CTD6SyTD.js.map +1 -0
  13. package/components/p-Ddr35stE.js +117 -0
  14. package/components/p-Ddr35stE.js.map +1 -0
  15. package/components/p-x30CgLRv.js +184 -0
  16. package/components/p-x30CgLRv.js.map +1 -0
  17. package/components/xplor-alert-dialog.d.ts +11 -0
  18. package/components/xplor-alert-dialog.js +85 -0
  19. package/components/xplor-alert-dialog.js.map +1 -0
  20. package/components/xplor-alert-message.d.ts +11 -0
  21. package/components/xplor-alert-message.js +48 -0
  22. package/components/xplor-alert-message.js.map +1 -0
  23. package/components/xplor-assistant.d.ts +11 -0
  24. package/components/xplor-assistant.js +763 -0
  25. package/components/xplor-assistant.js.map +1 -0
  26. package/components/xplor-autocomplete.d.ts +11 -0
  27. package/components/xplor-autocomplete.js +268 -0
  28. package/components/xplor-autocomplete.js.map +1 -0
  29. package/components/xplor-avatar-and-name.d.ts +11 -0
  30. package/components/xplor-avatar-and-name.js +48 -0
  31. package/components/xplor-avatar-and-name.js.map +1 -0
  32. package/components/xplor-avatar.d.ts +11 -0
  33. package/components/xplor-avatar.js +9 -0
  34. package/components/xplor-avatar.js.map +1 -0
  35. package/components/xplor-badge-active.d.ts +11 -0
  36. package/components/xplor-badge-active.js +35 -0
  37. package/components/xplor-badge-active.js.map +1 -0
  38. package/components/xplor-badge-archived.d.ts +11 -0
  39. package/components/xplor-badge-archived.js +35 -0
  40. package/components/xplor-badge-archived.js.map +1 -0
  41. package/components/xplor-badge-deleted.d.ts +11 -0
  42. package/components/xplor-badge-deleted.js +35 -0
  43. package/components/xplor-badge-deleted.js.map +1 -0
  44. package/components/xplor-badge-expired.d.ts +11 -0
  45. package/components/xplor-badge-expired.js +35 -0
  46. package/components/xplor-badge-expired.js.map +1 -0
  47. package/components/xplor-badge-inactive.d.ts +11 -0
  48. package/components/xplor-badge-inactive.js +35 -0
  49. package/components/xplor-badge-inactive.js.map +1 -0
  50. package/components/xplor-badge-recalled.d.ts +11 -0
  51. package/components/xplor-badge-recalled.js +35 -0
  52. package/components/xplor-badge-recalled.js.map +1 -0
  53. package/components/xplor-badge-session-booking.d.ts +11 -0
  54. package/components/xplor-badge-session-booking.js +60 -0
  55. package/components/xplor-badge-session-booking.js.map +1 -0
  56. package/components/xplor-badge-upcoming.d.ts +11 -0
  57. package/components/xplor-badge-upcoming.js +35 -0
  58. package/components/xplor-badge-upcoming.js.map +1 -0
  59. package/components/xplor-badge-waitlist.d.ts +11 -0
  60. package/components/xplor-badge-waitlist.js +35 -0
  61. package/components/xplor-badge-waitlist.js.map +1 -0
  62. package/components/xplor-badge.d.ts +11 -0
  63. package/components/xplor-badge.js +151 -0
  64. package/components/xplor-badge.js.map +1 -0
  65. package/components/xplor-btn-back-to-parent.d.ts +11 -0
  66. package/components/xplor-btn-back-to-parent.js +72 -0
  67. package/components/xplor-btn-back-to-parent.js.map +1 -0
  68. package/components/xplor-btn-back.d.ts +11 -0
  69. package/components/xplor-btn-back.js +76 -0
  70. package/components/xplor-btn-back.js.map +1 -0
  71. package/components/xplor-btn-icon.d.ts +11 -0
  72. package/components/xplor-btn-icon.js +77 -0
  73. package/components/xplor-btn-icon.js.map +1 -0
  74. package/components/xplor-btn-menu.d.ts +11 -0
  75. package/components/xplor-btn-menu.js +105 -0
  76. package/components/xplor-btn-menu.js.map +1 -0
  77. package/components/xplor-btn-toggle-group.d.ts +11 -0
  78. package/components/xplor-btn-toggle-group.js +46 -0
  79. package/components/xplor-btn-toggle-group.js.map +1 -0
  80. package/components/xplor-btn-toggle-secondary.d.ts +11 -0
  81. package/components/xplor-btn-toggle-secondary.js +64 -0
  82. package/components/xplor-btn-toggle-secondary.js.map +1 -0
  83. package/components/xplor-btn-toggle.d.ts +11 -0
  84. package/components/xplor-btn-toggle.js +69 -0
  85. package/components/xplor-btn-toggle.js.map +1 -0
  86. package/components/xplor-btn-tooltip.d.ts +11 -0
  87. package/components/xplor-btn-tooltip.js +58 -0
  88. package/components/xplor-btn-tooltip.js.map +1 -0
  89. package/components/xplor-button.d.ts +11 -0
  90. package/components/xplor-button.js +9 -0
  91. package/components/xplor-button.js.map +1 -0
  92. package/components/xplor-chat-widget.d.ts +11 -0
  93. package/components/xplor-chat-widget.js +104 -0
  94. package/components/xplor-chat-widget.js.map +1 -0
  95. package/components/xplor-checkbox.d.ts +11 -0
  96. package/components/xplor-checkbox.js +124 -0
  97. package/components/xplor-checkbox.js.map +1 -0
  98. package/components/xplor-combobox.d.ts +11 -0
  99. package/components/xplor-combobox.js +278 -0
  100. package/components/xplor-combobox.js.map +1 -0
  101. package/components/xplor-datatable.d.ts +11 -0
  102. package/components/xplor-datatable.js +243 -0
  103. package/components/xplor-datatable.js.map +1 -0
  104. package/components/xplor-date-picker.d.ts +11 -0
  105. package/components/xplor-date-picker.js +268 -0
  106. package/components/xplor-date-picker.js.map +1 -0
  107. package/components/xplor-drag-and-drop-input.d.ts +11 -0
  108. package/components/xplor-drag-and-drop-input.js +137 -0
  109. package/components/xplor-drag-and-drop-input.js.map +1 -0
  110. package/components/xplor-dropdown.d.ts +11 -0
  111. package/components/xplor-dropdown.js +9 -0
  112. package/components/xplor-dropdown.js.map +1 -0
  113. package/components/xplor-expansion-panel.d.ts +11 -0
  114. package/components/xplor-expansion-panel.js +74 -0
  115. package/components/xplor-expansion-panel.js.map +1 -0
  116. package/components/xplor-expansion-panels.d.ts +11 -0
  117. package/components/xplor-expansion-panels.js +70 -0
  118. package/components/xplor-expansion-panels.js.map +1 -0
  119. package/components/xplor-file-upload.d.ts +11 -0
  120. package/components/xplor-file-upload.js +183 -0
  121. package/components/xplor-file-upload.js.map +1 -0
  122. package/components/xplor-inline-checkbox.d.ts +11 -0
  123. package/components/xplor-inline-checkbox.js +75 -0
  124. package/components/xplor-inline-checkbox.js.map +1 -0
  125. package/components/xplor-inline-date-picker.d.ts +11 -0
  126. package/components/xplor-inline-date-picker.js +9 -0
  127. package/components/xplor-inline-date-picker.js.map +1 -0
  128. package/components/xplor-inline-switch.d.ts +11 -0
  129. package/components/xplor-inline-switch.js +68 -0
  130. package/components/xplor-inline-switch.js.map +1 -0
  131. package/components/xplor-input-file.d.ts +11 -0
  132. package/components/xplor-input-file.js +121 -0
  133. package/components/xplor-input-file.js.map +1 -0
  134. package/components/xplor-input-search.d.ts +11 -0
  135. package/components/xplor-input-search.js +89 -0
  136. package/components/xplor-input-search.js.map +1 -0
  137. package/components/xplor-input-select.d.ts +11 -0
  138. package/components/xplor-input-select.js +168 -0
  139. package/components/xplor-input-select.js.map +1 -0
  140. package/components/xplor-input-send.d.ts +11 -0
  141. package/components/xplor-input-send.js +87 -0
  142. package/components/xplor-input-send.js.map +1 -0
  143. package/components/xplor-input-text-area.d.ts +11 -0
  144. package/components/xplor-input-text-area.js +131 -0
  145. package/components/xplor-input-text-area.js.map +1 -0
  146. package/components/xplor-input-text-secondary.d.ts +11 -0
  147. package/components/xplor-input-text-secondary.js +94 -0
  148. package/components/xplor-input-text-secondary.js.map +1 -0
  149. package/components/xplor-input-text.d.ts +11 -0
  150. package/components/xplor-input-text.js +129 -0
  151. package/components/xplor-input-text.js.map +1 -0
  152. package/components/xplor-input-title.d.ts +11 -0
  153. package/components/xplor-input-title.js +68 -0
  154. package/components/xplor-input-title.js.map +1 -0
  155. package/components/xplor-links.d.ts +11 -0
  156. package/components/xplor-links.js +38 -0
  157. package/components/xplor-links.js.map +1 -0
  158. package/components/xplor-modal-persistent.d.ts +11 -0
  159. package/components/xplor-modal-persistent.js +65 -0
  160. package/components/xplor-modal-persistent.js.map +1 -0
  161. package/components/xplor-modal.d.ts +11 -0
  162. package/components/xplor-modal.js +9 -0
  163. package/components/xplor-modal.js.map +1 -0
  164. package/components/xplor-nav-tabs.d.ts +11 -0
  165. package/components/xplor-nav-tabs.js +58 -0
  166. package/components/xplor-nav-tabs.js.map +1 -0
  167. package/components/xplor-section-card.d.ts +11 -0
  168. package/components/xplor-section-card.js +46 -0
  169. package/components/xplor-section-card.js.map +1 -0
  170. package/components/xplor-section-heading.d.ts +11 -0
  171. package/components/xplor-section-heading.js +43 -0
  172. package/components/xplor-section-heading.js.map +1 -0
  173. package/components/xplor-table.d.ts +11 -0
  174. package/components/xplor-table.js +275 -0
  175. package/components/xplor-table.js.map +1 -0
  176. package/components/xplor-text-bubble.d.ts +11 -0
  177. package/components/xplor-text-bubble.js +42 -0
  178. package/components/xplor-text-bubble.js.map +1 -0
  179. package/components/xplor-text-field.d.ts +11 -0
  180. package/components/xplor-text-field.js +190 -0
  181. package/components/xplor-text-field.js.map +1 -0
  182. package/components/xplor-time-picker.d.ts +11 -0
  183. package/components/xplor-time-picker.js +348 -0
  184. package/components/xplor-time-picker.js.map +1 -0
  185. package/components/xplor-tooltip.d.ts +11 -0
  186. package/components/xplor-tooltip.js +9 -0
  187. package/components/xplor-tooltip.js.map +1 -0
  188. package/dist/cjs/index-Bc5o_4vY.js +2594 -0
  189. package/dist/cjs/index-Bc5o_4vY.js.map +1 -0
  190. package/dist/cjs/index.cjs.js +5 -0
  191. package/dist/cjs/index.cjs.js.map +1 -0
  192. package/dist/cjs/loader.cjs.js +15 -0
  193. package/dist/cjs/loader.cjs.js.map +1 -0
  194. package/dist/cjs/xplor-alert-dialog_57.cjs.entry.js +4750 -0
  195. package/dist/cjs/xplor-alert-dialog_57.cjs.entry.js.map +1 -0
  196. package/dist/cjs/xplor-component-library.cjs.js +27 -0
  197. package/dist/cjs/xplor-component-library.cjs.js.map +1 -0
  198. package/dist/collection/collection-manifest.json +69 -0
  199. package/dist/collection/components/element-interface.js +2 -0
  200. package/dist/collection/components/element-interface.js.map +1 -0
  201. package/dist/collection/components/helpers.js +129 -0
  202. package/dist/collection/components/helpers.js.map +1 -0
  203. package/dist/collection/components/xplor-alert-dialog/xplor-alert-dialog.css +348 -0
  204. package/dist/collection/components/xplor-alert-dialog/xplor-alert-dialog.js +163 -0
  205. package/dist/collection/components/xplor-alert-dialog/xplor-alert-dialog.js.map +1 -0
  206. package/dist/collection/components/xplor-alert-message/xplor-alert-message.css +352 -0
  207. package/dist/collection/components/xplor-alert-message/xplor-alert-message.js +110 -0
  208. package/dist/collection/components/xplor-alert-message/xplor-alert-message.js.map +1 -0
  209. package/dist/collection/components/xplor-assistant/internal/AssistantInput.js +39 -0
  210. package/dist/collection/components/xplor-assistant/internal/AssistantInput.js.map +1 -0
  211. package/dist/collection/components/xplor-assistant/internal/AssistantMessage.js +35 -0
  212. package/dist/collection/components/xplor-assistant/internal/AssistantMessage.js.map +1 -0
  213. package/dist/collection/components/xplor-assistant/internal/QuickReplies.js +13 -0
  214. package/dist/collection/components/xplor-assistant/internal/QuickReplies.js.map +1 -0
  215. package/dist/collection/components/xplor-assistant/internal/TypingIndicator.js +9 -0
  216. package/dist/collection/components/xplor-assistant/internal/TypingIndicator.js.map +1 -0
  217. package/dist/collection/components/xplor-assistant/internal/types.js +2 -0
  218. package/dist/collection/components/xplor-assistant/internal/types.js.map +1 -0
  219. package/dist/collection/components/xplor-assistant/utils/api.js +138 -0
  220. package/dist/collection/components/xplor-assistant/utils/api.js.map +1 -0
  221. package/dist/collection/components/xplor-assistant/utils/icons.js +53 -0
  222. package/dist/collection/components/xplor-assistant/utils/icons.js.map +1 -0
  223. package/dist/collection/components/xplor-assistant/utils/speech.js +230 -0
  224. package/dist/collection/components/xplor-assistant/utils/speech.js.map +1 -0
  225. package/dist/collection/components/xplor-assistant/xplor-assistant.css +1384 -0
  226. package/dist/collection/components/xplor-assistant/xplor-assistant.js +675 -0
  227. package/dist/collection/components/xplor-assistant/xplor-assistant.js.map +1 -0
  228. package/dist/collection/components/xplor-autocomplete/xplor-autocomplete.css +458 -0
  229. package/dist/collection/components/xplor-autocomplete/xplor-autocomplete.js +613 -0
  230. package/dist/collection/components/xplor-autocomplete/xplor-autocomplete.js.map +1 -0
  231. package/dist/collection/components/xplor-avatar/avatar.stories.js +175 -0
  232. package/dist/collection/components/xplor-avatar/avatar.stories.js.map +1 -0
  233. package/dist/collection/components/xplor-avatar/xplor-avatar.css +271 -0
  234. package/dist/collection/components/xplor-avatar/xplor-avatar.js +186 -0
  235. package/dist/collection/components/xplor-avatar/xplor-avatar.js.map +1 -0
  236. package/dist/collection/components/xplor-avatar-and-name/xplor-avatar-and-name.css +284 -0
  237. package/dist/collection/components/xplor-avatar-and-name/xplor-avatar-and-name.js +122 -0
  238. package/dist/collection/components/xplor-avatar-and-name/xplor-avatar-and-name.js.map +1 -0
  239. package/dist/collection/components/xplor-badge/xplor-badge.css +1100 -0
  240. package/dist/collection/components/xplor-badge/xplor-badge.js +273 -0
  241. package/dist/collection/components/xplor-badge/xplor-badge.js.map +1 -0
  242. package/dist/collection/components/xplor-badge-active/xplor-badge-active.css +280 -0
  243. package/dist/collection/components/xplor-badge-active/xplor-badge-active.js +19 -0
  244. package/dist/collection/components/xplor-badge-active/xplor-badge-active.js.map +1 -0
  245. package/dist/collection/components/xplor-badge-archived/xplor-badge-archived.css +280 -0
  246. package/dist/collection/components/xplor-badge-archived/xplor-badge-archived.js +19 -0
  247. package/dist/collection/components/xplor-badge-archived/xplor-badge-archived.js.map +1 -0
  248. package/dist/collection/components/xplor-badge-deleted/xplor-badge-deleted.css +280 -0
  249. package/dist/collection/components/xplor-badge-deleted/xplor-badge-deleted.js +19 -0
  250. package/dist/collection/components/xplor-badge-deleted/xplor-badge-deleted.js.map +1 -0
  251. package/dist/collection/components/xplor-badge-expired/xplor-badge-expired.css +280 -0
  252. package/dist/collection/components/xplor-badge-expired/xplor-badge-expired.js +19 -0
  253. package/dist/collection/components/xplor-badge-expired/xplor-badge-expired.js.map +1 -0
  254. package/dist/collection/components/xplor-badge-inactive/xplor-badge-inactive.css +280 -0
  255. package/dist/collection/components/xplor-badge-inactive/xplor-badge-inactive.js +19 -0
  256. package/dist/collection/components/xplor-badge-inactive/xplor-badge-inactive.js.map +1 -0
  257. package/dist/collection/components/xplor-badge-recalled/xplor-badge-recalled.css +280 -0
  258. package/dist/collection/components/xplor-badge-recalled/xplor-badge-recalled.js +19 -0
  259. package/dist/collection/components/xplor-badge-recalled/xplor-badge-recalled.js.map +1 -0
  260. package/dist/collection/components/xplor-badge-session-booking/xplor-badge-session-booking.css +300 -0
  261. package/dist/collection/components/xplor-badge-session-booking/xplor-badge-session-booking.js +93 -0
  262. package/dist/collection/components/xplor-badge-session-booking/xplor-badge-session-booking.js.map +1 -0
  263. package/dist/collection/components/xplor-badge-upcoming/xplor-badge-upcoming.css +280 -0
  264. package/dist/collection/components/xplor-badge-upcoming/xplor-badge-upcoming.js +19 -0
  265. package/dist/collection/components/xplor-badge-upcoming/xplor-badge-upcoming.js.map +1 -0
  266. package/dist/collection/components/xplor-badge-waitlist/xplor-badge-waitlist.css +280 -0
  267. package/dist/collection/components/xplor-badge-waitlist/xplor-badge-waitlist.js +19 -0
  268. package/dist/collection/components/xplor-badge-waitlist/xplor-badge-waitlist.js.map +1 -0
  269. package/dist/collection/components/xplor-btn-back/xplor-btn-back.css +306 -0
  270. package/dist/collection/components/xplor-btn-back/xplor-btn-back.js +182 -0
  271. package/dist/collection/components/xplor-btn-back/xplor-btn-back.js.map +1 -0
  272. package/dist/collection/components/xplor-btn-back-to-parent/xplor-btn-back-to-parent.css +306 -0
  273. package/dist/collection/components/xplor-btn-back-to-parent/xplor-btn-back-to-parent.js +173 -0
  274. package/dist/collection/components/xplor-btn-back-to-parent/xplor-btn-back-to-parent.js.map +1 -0
  275. package/dist/collection/components/xplor-btn-icon/xplor-btn-icon.css +370 -0
  276. package/dist/collection/components/xplor-btn-icon/xplor-btn-icon.js +183 -0
  277. package/dist/collection/components/xplor-btn-icon/xplor-btn-icon.js.map +1 -0
  278. package/dist/collection/components/xplor-btn-menu/xplor-btn-menu.css +327 -0
  279. package/dist/collection/components/xplor-btn-menu/xplor-btn-menu.js +238 -0
  280. package/dist/collection/components/xplor-btn-menu/xplor-btn-menu.js.map +1 -0
  281. package/dist/collection/components/xplor-btn-toggle/xplor-btn-toggle.css +312 -0
  282. package/dist/collection/components/xplor-btn-toggle/xplor-btn-toggle.js +151 -0
  283. package/dist/collection/components/xplor-btn-toggle/xplor-btn-toggle.js.map +1 -0
  284. package/dist/collection/components/xplor-btn-toggle-group/xplor-btn-toggle-group.css +278 -0
  285. package/dist/collection/components/xplor-btn-toggle-group/xplor-btn-toggle-group.js +73 -0
  286. package/dist/collection/components/xplor-btn-toggle-group/xplor-btn-toggle-group.js.map +1 -0
  287. package/dist/collection/components/xplor-btn-toggle-secondary/xplor-btn-toggle-secondary.css +314 -0
  288. package/dist/collection/components/xplor-btn-toggle-secondary/xplor-btn-toggle-secondary.js +127 -0
  289. package/dist/collection/components/xplor-btn-toggle-secondary/xplor-btn-toggle-secondary.js.map +1 -0
  290. package/dist/collection/components/xplor-btn-tooltip/xplor-btn-tooltip.css +271 -0
  291. package/dist/collection/components/xplor-btn-tooltip/xplor-btn-tooltip.js +164 -0
  292. package/dist/collection/components/xplor-btn-tooltip/xplor-btn-tooltip.js.map +1 -0
  293. package/dist/collection/components/xplor-button/xplor-button.css +1253 -0
  294. package/dist/collection/components/xplor-button/xplor-button.js +212 -0
  295. package/dist/collection/components/xplor-button/xplor-button.js.map +1 -0
  296. package/dist/collection/components/xplor-button/xplor-buttons.stories.js +49 -0
  297. package/dist/collection/components/xplor-button/xplor-buttons.stories.js.map +1 -0
  298. package/dist/collection/components/xplor-chat-widget/xplor-chat-widget.css +276 -0
  299. package/dist/collection/components/xplor-chat-widget/xplor-chat-widget.js +139 -0
  300. package/dist/collection/components/xplor-chat-widget/xplor-chat-widget.js.map +1 -0
  301. package/dist/collection/components/xplor-chat-widget/xplor-chat.stories.js +31 -0
  302. package/dist/collection/components/xplor-chat-widget/xplor-chat.stories.js.map +1 -0
  303. package/dist/collection/components/xplor-checkbox/xplor-checkbox.css +453 -0
  304. package/dist/collection/components/xplor-checkbox/xplor-checkbox.js +230 -0
  305. package/dist/collection/components/xplor-checkbox/xplor-checkbox.js.map +1 -0
  306. package/dist/collection/components/xplor-combobox/xplor-combobox.css +473 -0
  307. package/dist/collection/components/xplor-combobox/xplor-combobox.js +553 -0
  308. package/dist/collection/components/xplor-combobox/xplor-combobox.js.map +1 -0
  309. package/dist/collection/components/xplor-datatable/xplor-datatable.css +580 -0
  310. package/dist/collection/components/xplor-datatable/xplor-datatable.js +536 -0
  311. package/dist/collection/components/xplor-datatable/xplor-datatable.js.map +1 -0
  312. package/dist/collection/components/xplor-datatable/xplor-datatable.stories.js +137 -0
  313. package/dist/collection/components/xplor-datatable/xplor-datatable.stories.js.map +1 -0
  314. package/dist/collection/components/xplor-date-picker/xplor-date-picker.css +415 -0
  315. package/dist/collection/components/xplor-date-picker/xplor-date-picker.js +694 -0
  316. package/dist/collection/components/xplor-date-picker/xplor-date-picker.js.map +1 -0
  317. package/dist/collection/components/xplor-drag-and-drop-input/xplor-drag-and-drop-input.css +1149 -0
  318. package/dist/collection/components/xplor-drag-and-drop-input/xplor-drag-and-drop-input.js +256 -0
  319. package/dist/collection/components/xplor-drag-and-drop-input/xplor-drag-and-drop-input.js.map +1 -0
  320. package/dist/collection/components/xplor-dropdown/xplor-dropdown.css +286 -0
  321. package/dist/collection/components/xplor-dropdown/xplor-dropdown.js +83 -0
  322. package/dist/collection/components/xplor-dropdown/xplor-dropdown.js.map +1 -0
  323. package/dist/collection/components/xplor-expansion-panel/xplor-expansion-panel.css +334 -0
  324. package/dist/collection/components/xplor-expansion-panel/xplor-expansion-panel.js +122 -0
  325. package/dist/collection/components/xplor-expansion-panel/xplor-expansion-panel.js.map +1 -0
  326. package/dist/collection/components/xplor-expansion-panels/xplor-expansion-panels.css +277 -0
  327. package/dist/collection/components/xplor-expansion-panels/xplor-expansion-panels.js +129 -0
  328. package/dist/collection/components/xplor-expansion-panels/xplor-expansion-panels.js.map +1 -0
  329. package/dist/collection/components/xplor-file-upload/xplor-file-upload.css +433 -0
  330. package/dist/collection/components/xplor-file-upload/xplor-file-upload.js +347 -0
  331. package/dist/collection/components/xplor-file-upload/xplor-file-upload.js.map +1 -0
  332. package/dist/collection/components/xplor-inline-checkbox/xplor-inline-checkbox.css +300 -0
  333. package/dist/collection/components/xplor-inline-checkbox/xplor-inline-checkbox.js +194 -0
  334. package/dist/collection/components/xplor-inline-checkbox/xplor-inline-checkbox.js.map +1 -0
  335. package/dist/collection/components/xplor-inline-date-picker/xplor-inline-date-picker.css +410 -0
  336. package/dist/collection/components/xplor-inline-date-picker/xplor-inline-date-picker.js +325 -0
  337. package/dist/collection/components/xplor-inline-date-picker/xplor-inline-date-picker.js.map +1 -0
  338. package/dist/collection/components/xplor-inline-switch/xplor-inline-switch.css +343 -0
  339. package/dist/collection/components/xplor-inline-switch/xplor-inline-switch.js +168 -0
  340. package/dist/collection/components/xplor-inline-switch/xplor-inline-switch.js.map +1 -0
  341. package/dist/collection/components/xplor-input-file/xplor-input-file.css +392 -0
  342. package/dist/collection/components/xplor-input-file/xplor-input-file.js +340 -0
  343. package/dist/collection/components/xplor-input-file/xplor-input-file.js.map +1 -0
  344. package/dist/collection/components/xplor-input-search/xplor-input-search.css +371 -0
  345. package/dist/collection/components/xplor-input-search/xplor-input-search.js +213 -0
  346. package/dist/collection/components/xplor-input-search/xplor-input-search.js.map +1 -0
  347. package/dist/collection/components/xplor-input-select/xplor-input-select.css +397 -0
  348. package/dist/collection/components/xplor-input-select/xplor-input-select.js +430 -0
  349. package/dist/collection/components/xplor-input-select/xplor-input-select.js.map +1 -0
  350. package/dist/collection/components/xplor-input-send/xplor-input-send.css +312 -0
  351. package/dist/collection/components/xplor-input-send/xplor-input-send.js +218 -0
  352. package/dist/collection/components/xplor-input-send/xplor-input-send.js.map +1 -0
  353. package/dist/collection/components/xplor-input-text/xplor-input-text.css +334 -0
  354. package/dist/collection/components/xplor-input-text/xplor-input-text.js +419 -0
  355. package/dist/collection/components/xplor-input-text/xplor-input-text.js.map +1 -0
  356. package/dist/collection/components/xplor-input-text-area/xplor-input-text-area.css +359 -0
  357. package/dist/collection/components/xplor-input-text-area/xplor-input-text-area.js +416 -0
  358. package/dist/collection/components/xplor-input-text-area/xplor-input-text-area.js.map +1 -0
  359. package/dist/collection/components/xplor-input-text-secondary/xplor-input-text-secondary.css +339 -0
  360. package/dist/collection/components/xplor-input-text-secondary/xplor-input-text-secondary.js +384 -0
  361. package/dist/collection/components/xplor-input-text-secondary/xplor-input-text-secondary.js.map +1 -0
  362. package/dist/collection/components/xplor-input-title/xplor-input-title.css +304 -0
  363. package/dist/collection/components/xplor-input-title/xplor-input-title.js +164 -0
  364. package/dist/collection/components/xplor-input-title/xplor-input-title.js.map +1 -0
  365. package/dist/collection/components/xplor-links/xplor-links.css +9 -0
  366. package/dist/collection/components/xplor-links/xplor-links.js +42 -0
  367. package/dist/collection/components/xplor-links/xplor-links.js.map +1 -0
  368. package/dist/collection/components/xplor-links/xplor-links.stories.js +18 -0
  369. package/dist/collection/components/xplor-links/xplor-links.stories.js.map +1 -0
  370. package/dist/collection/components/xplor-modal/xplor-modal.css +385 -0
  371. package/dist/collection/components/xplor-modal/xplor-modal.js +279 -0
  372. package/dist/collection/components/xplor-modal/xplor-modal.js.map +1 -0
  373. package/dist/collection/components/xplor-modal-persistent/xplor-modal-persistent.js +152 -0
  374. package/dist/collection/components/xplor-modal-persistent/xplor-modal-persistent.js.map +1 -0
  375. package/dist/collection/components/xplor-nav-tabs/xplor-nav-tabs.css +333 -0
  376. package/dist/collection/components/xplor-nav-tabs/xplor-nav-tabs.js +144 -0
  377. package/dist/collection/components/xplor-nav-tabs/xplor-nav-tabs.js.map +1 -0
  378. package/dist/collection/components/xplor-section-card/xplor-section-card.css +1076 -0
  379. package/dist/collection/components/xplor-section-card/xplor-section-card.js +92 -0
  380. package/dist/collection/components/xplor-section-card/xplor-section-card.js.map +1 -0
  381. package/dist/collection/components/xplor-section-heading/xplor-section-heading.css +285 -0
  382. package/dist/collection/components/xplor-section-heading/xplor-section-heading.js +69 -0
  383. package/dist/collection/components/xplor-section-heading/xplor-section-heading.js.map +1 -0
  384. package/dist/collection/components/xplor-table/xplor-table.js +695 -0
  385. package/dist/collection/components/xplor-table/xplor-table.js.map +1 -0
  386. package/dist/collection/components/xplor-table/xplor-table.stories.js +159 -0
  387. package/dist/collection/components/xplor-table/xplor-table.stories.js.map +1 -0
  388. package/dist/collection/components/xplor-text-bubble/xplor-text-bubble.css +285 -0
  389. package/dist/collection/components/xplor-text-bubble/xplor-text-bubble.js +50 -0
  390. package/dist/collection/components/xplor-text-bubble/xplor-text-bubble.js.map +1 -0
  391. package/dist/collection/components/xplor-text-field/xplor-text-field.css +1280 -0
  392. package/dist/collection/components/xplor-text-field/xplor-text-field.js +591 -0
  393. package/dist/collection/components/xplor-text-field/xplor-text-field.js.map +1 -0
  394. package/dist/collection/components/xplor-time-picker/xplor-time-picker.css +448 -0
  395. package/dist/collection/components/xplor-time-picker/xplor-time-picker.js +647 -0
  396. package/dist/collection/components/xplor-time-picker/xplor-time-picker.js.map +1 -0
  397. package/dist/collection/components/xplor-tooltip/xplor-tooltip.css +336 -0
  398. package/dist/collection/components/xplor-tooltip/xplor-tooltip.js +311 -0
  399. package/dist/collection/components/xplor-tooltip/xplor-tooltip.js.map +1 -0
  400. package/dist/collection/globals/globals.js +32 -0
  401. package/dist/collection/globals/globals.js.map +1 -0
  402. package/dist/collection/index.js +2 -0
  403. package/dist/collection/index.js.map +1 -0
  404. package/dist/collection/stories/Button.js +17 -0
  405. package/dist/collection/stories/Button.js.map +1 -0
  406. package/dist/collection/stories/Button.stories.js +50 -0
  407. package/dist/collection/stories/Button.stories.js.map +1 -0
  408. package/dist/collection/stories/Header.js +41 -0
  409. package/dist/collection/stories/Header.js.map +1 -0
  410. package/dist/collection/stories/Header.stories.js +28 -0
  411. package/dist/collection/stories/Header.stories.js.map +1 -0
  412. package/dist/collection/stories/Page.js +85 -0
  413. package/dist/collection/stories/Page.js.map +1 -0
  414. package/dist/collection/stories/Page.stories.js +25 -0
  415. package/dist/collection/stories/Page.stories.js.map +1 -0
  416. package/dist/collection/stories/assets/accessibility.svg +1 -0
  417. package/dist/collection/stories/assets/discord.svg +1 -0
  418. package/dist/collection/stories/assets/github.svg +1 -0
  419. package/dist/collection/stories/assets/tutorials.svg +1 -0
  420. package/dist/collection/stories/assets/youtube.svg +1 -0
  421. package/dist/collection/utils/helpers.js +25 -0
  422. package/dist/collection/utils/helpers.js.map +1 -0
  423. package/dist/components/index.d.ts +33 -0
  424. package/dist/components/index.js +2324 -0
  425. package/dist/components/index.js.map +1 -0
  426. package/dist/components/p-4l9DAhAo.js +182 -0
  427. package/dist/components/p-4l9DAhAo.js.map +1 -0
  428. package/dist/components/p-BHdeGt6k.js +51 -0
  429. package/dist/components/p-BHdeGt6k.js.map +1 -0
  430. package/dist/components/p-BIFlTsO8.js +185 -0
  431. package/dist/components/p-BIFlTsO8.js.map +1 -0
  432. package/dist/components/p-CJGP2_5k.js +38 -0
  433. package/dist/components/p-CJGP2_5k.js.map +1 -0
  434. package/dist/components/p-DIv_A5Gj.js +57 -0
  435. package/dist/components/p-DIv_A5Gj.js.map +1 -0
  436. package/dist/components/p-DKh6y3GY.js +118 -0
  437. package/dist/components/p-DKh6y3GY.js.map +1 -0
  438. package/dist/components/xplor-alert-dialog.d.ts +11 -0
  439. package/dist/components/xplor-alert-dialog.js +86 -0
  440. package/dist/components/xplor-alert-dialog.js.map +1 -0
  441. package/dist/components/xplor-alert-message.d.ts +11 -0
  442. package/dist/components/xplor-alert-message.js +49 -0
  443. package/dist/components/xplor-alert-message.js.map +1 -0
  444. package/dist/components/xplor-assistant.d.ts +11 -0
  445. package/dist/components/xplor-assistant.js +764 -0
  446. package/dist/components/xplor-assistant.js.map +1 -0
  447. package/dist/components/xplor-autocomplete.d.ts +11 -0
  448. package/dist/components/xplor-autocomplete.js +269 -0
  449. package/dist/components/xplor-autocomplete.js.map +1 -0
  450. package/dist/components/xplor-avatar-and-name.d.ts +11 -0
  451. package/dist/components/xplor-avatar-and-name.js +49 -0
  452. package/dist/components/xplor-avatar-and-name.js.map +1 -0
  453. package/dist/components/xplor-avatar.d.ts +11 -0
  454. package/dist/components/xplor-avatar.js +9 -0
  455. package/dist/components/xplor-avatar.js.map +1 -0
  456. package/dist/components/xplor-badge-active.d.ts +11 -0
  457. package/dist/components/xplor-badge-active.js +36 -0
  458. package/dist/components/xplor-badge-active.js.map +1 -0
  459. package/dist/components/xplor-badge-archived.d.ts +11 -0
  460. package/dist/components/xplor-badge-archived.js +36 -0
  461. package/dist/components/xplor-badge-archived.js.map +1 -0
  462. package/dist/components/xplor-badge-deleted.d.ts +11 -0
  463. package/dist/components/xplor-badge-deleted.js +36 -0
  464. package/dist/components/xplor-badge-deleted.js.map +1 -0
  465. package/dist/components/xplor-badge-expired.d.ts +11 -0
  466. package/dist/components/xplor-badge-expired.js +36 -0
  467. package/dist/components/xplor-badge-expired.js.map +1 -0
  468. package/dist/components/xplor-badge-inactive.d.ts +11 -0
  469. package/dist/components/xplor-badge-inactive.js +36 -0
  470. package/dist/components/xplor-badge-inactive.js.map +1 -0
  471. package/dist/components/xplor-badge-recalled.d.ts +11 -0
  472. package/dist/components/xplor-badge-recalled.js +36 -0
  473. package/dist/components/xplor-badge-recalled.js.map +1 -0
  474. package/dist/components/xplor-badge-session-booking.d.ts +11 -0
  475. package/dist/components/xplor-badge-session-booking.js +61 -0
  476. package/dist/components/xplor-badge-session-booking.js.map +1 -0
  477. package/dist/components/xplor-badge-upcoming.d.ts +11 -0
  478. package/dist/components/xplor-badge-upcoming.js +36 -0
  479. package/dist/components/xplor-badge-upcoming.js.map +1 -0
  480. package/dist/components/xplor-badge-waitlist.d.ts +11 -0
  481. package/dist/components/xplor-badge-waitlist.js +36 -0
  482. package/dist/components/xplor-badge-waitlist.js.map +1 -0
  483. package/dist/components/xplor-badge.d.ts +11 -0
  484. package/dist/components/xplor-badge.js +152 -0
  485. package/dist/components/xplor-badge.js.map +1 -0
  486. package/dist/components/xplor-btn-back-to-parent.d.ts +11 -0
  487. package/dist/components/xplor-btn-back-to-parent.js +73 -0
  488. package/dist/components/xplor-btn-back-to-parent.js.map +1 -0
  489. package/dist/components/xplor-btn-back.d.ts +11 -0
  490. package/dist/components/xplor-btn-back.js +77 -0
  491. package/dist/components/xplor-btn-back.js.map +1 -0
  492. package/dist/components/xplor-btn-icon.d.ts +11 -0
  493. package/dist/components/xplor-btn-icon.js +78 -0
  494. package/dist/components/xplor-btn-icon.js.map +1 -0
  495. package/dist/components/xplor-btn-menu.d.ts +11 -0
  496. package/dist/components/xplor-btn-menu.js +106 -0
  497. package/dist/components/xplor-btn-menu.js.map +1 -0
  498. package/dist/components/xplor-btn-toggle-group.d.ts +11 -0
  499. package/dist/components/xplor-btn-toggle-group.js +47 -0
  500. package/dist/components/xplor-btn-toggle-group.js.map +1 -0
  501. package/dist/components/xplor-btn-toggle-secondary.d.ts +11 -0
  502. package/dist/components/xplor-btn-toggle-secondary.js +65 -0
  503. package/dist/components/xplor-btn-toggle-secondary.js.map +1 -0
  504. package/dist/components/xplor-btn-toggle.d.ts +11 -0
  505. package/dist/components/xplor-btn-toggle.js +70 -0
  506. package/dist/components/xplor-btn-toggle.js.map +1 -0
  507. package/dist/components/xplor-btn-tooltip.d.ts +11 -0
  508. package/dist/components/xplor-btn-tooltip.js +59 -0
  509. package/dist/components/xplor-btn-tooltip.js.map +1 -0
  510. package/dist/components/xplor-button.d.ts +11 -0
  511. package/dist/components/xplor-button.js +9 -0
  512. package/dist/components/xplor-button.js.map +1 -0
  513. package/dist/components/xplor-chat-widget.d.ts +11 -0
  514. package/dist/components/xplor-chat-widget.js +105 -0
  515. package/dist/components/xplor-chat-widget.js.map +1 -0
  516. package/dist/components/xplor-checkbox.d.ts +11 -0
  517. package/dist/components/xplor-checkbox.js +125 -0
  518. package/dist/components/xplor-checkbox.js.map +1 -0
  519. package/dist/components/xplor-combobox.d.ts +11 -0
  520. package/dist/components/xplor-combobox.js +279 -0
  521. package/dist/components/xplor-combobox.js.map +1 -0
  522. package/dist/components/xplor-datatable.d.ts +11 -0
  523. package/dist/components/xplor-datatable.js +244 -0
  524. package/dist/components/xplor-datatable.js.map +1 -0
  525. package/dist/components/xplor-date-picker.d.ts +11 -0
  526. package/dist/components/xplor-date-picker.js +269 -0
  527. package/dist/components/xplor-date-picker.js.map +1 -0
  528. package/dist/components/xplor-drag-and-drop-input.d.ts +11 -0
  529. package/dist/components/xplor-drag-and-drop-input.js +138 -0
  530. package/dist/components/xplor-drag-and-drop-input.js.map +1 -0
  531. package/dist/components/xplor-dropdown.d.ts +11 -0
  532. package/dist/components/xplor-dropdown.js +9 -0
  533. package/dist/components/xplor-dropdown.js.map +1 -0
  534. package/dist/components/xplor-expansion-panel.d.ts +11 -0
  535. package/dist/components/xplor-expansion-panel.js +75 -0
  536. package/dist/components/xplor-expansion-panel.js.map +1 -0
  537. package/dist/components/xplor-expansion-panels.d.ts +11 -0
  538. package/dist/components/xplor-expansion-panels.js +71 -0
  539. package/dist/components/xplor-expansion-panels.js.map +1 -0
  540. package/dist/components/xplor-file-upload.d.ts +11 -0
  541. package/dist/components/xplor-file-upload.js +184 -0
  542. package/dist/components/xplor-file-upload.js.map +1 -0
  543. package/dist/components/xplor-inline-checkbox.d.ts +11 -0
  544. package/dist/components/xplor-inline-checkbox.js +76 -0
  545. package/dist/components/xplor-inline-checkbox.js.map +1 -0
  546. package/dist/components/xplor-inline-date-picker.d.ts +11 -0
  547. package/dist/components/xplor-inline-date-picker.js +9 -0
  548. package/dist/components/xplor-inline-date-picker.js.map +1 -0
  549. package/dist/components/xplor-inline-switch.d.ts +11 -0
  550. package/dist/components/xplor-inline-switch.js +69 -0
  551. package/dist/components/xplor-inline-switch.js.map +1 -0
  552. package/dist/components/xplor-input-file.d.ts +11 -0
  553. package/dist/components/xplor-input-file.js +122 -0
  554. package/dist/components/xplor-input-file.js.map +1 -0
  555. package/dist/components/xplor-input-search.d.ts +11 -0
  556. package/dist/components/xplor-input-search.js +90 -0
  557. package/dist/components/xplor-input-search.js.map +1 -0
  558. package/dist/components/xplor-input-select.d.ts +11 -0
  559. package/dist/components/xplor-input-select.js +169 -0
  560. package/dist/components/xplor-input-select.js.map +1 -0
  561. package/dist/components/xplor-input-send.d.ts +11 -0
  562. package/dist/components/xplor-input-send.js +88 -0
  563. package/dist/components/xplor-input-send.js.map +1 -0
  564. package/dist/components/xplor-input-text-area.d.ts +11 -0
  565. package/dist/components/xplor-input-text-area.js +132 -0
  566. package/dist/components/xplor-input-text-area.js.map +1 -0
  567. package/dist/components/xplor-input-text-secondary.d.ts +11 -0
  568. package/dist/components/xplor-input-text-secondary.js +95 -0
  569. package/dist/components/xplor-input-text-secondary.js.map +1 -0
  570. package/dist/components/xplor-input-text.d.ts +11 -0
  571. package/dist/components/xplor-input-text.js +130 -0
  572. package/dist/components/xplor-input-text.js.map +1 -0
  573. package/dist/components/xplor-input-title.d.ts +11 -0
  574. package/dist/components/xplor-input-title.js +69 -0
  575. package/dist/components/xplor-input-title.js.map +1 -0
  576. package/dist/components/xplor-links.d.ts +11 -0
  577. package/dist/components/xplor-links.js +39 -0
  578. package/dist/components/xplor-links.js.map +1 -0
  579. package/dist/components/xplor-modal-persistent.d.ts +11 -0
  580. package/dist/components/xplor-modal-persistent.js +66 -0
  581. package/dist/components/xplor-modal-persistent.js.map +1 -0
  582. package/dist/components/xplor-modal.d.ts +11 -0
  583. package/dist/components/xplor-modal.js +9 -0
  584. package/dist/components/xplor-modal.js.map +1 -0
  585. package/dist/components/xplor-nav-tabs.d.ts +11 -0
  586. package/dist/components/xplor-nav-tabs.js +59 -0
  587. package/dist/components/xplor-nav-tabs.js.map +1 -0
  588. package/dist/components/xplor-section-card.d.ts +11 -0
  589. package/dist/components/xplor-section-card.js +47 -0
  590. package/dist/components/xplor-section-card.js.map +1 -0
  591. package/dist/components/xplor-section-heading.d.ts +11 -0
  592. package/dist/components/xplor-section-heading.js +44 -0
  593. package/dist/components/xplor-section-heading.js.map +1 -0
  594. package/dist/components/xplor-table.d.ts +11 -0
  595. package/dist/components/xplor-table.js +276 -0
  596. package/dist/components/xplor-table.js.map +1 -0
  597. package/dist/components/xplor-text-bubble.d.ts +11 -0
  598. package/dist/components/xplor-text-bubble.js +43 -0
  599. package/dist/components/xplor-text-bubble.js.map +1 -0
  600. package/dist/components/xplor-text-field.d.ts +11 -0
  601. package/dist/components/xplor-text-field.js +191 -0
  602. package/dist/components/xplor-text-field.js.map +1 -0
  603. package/dist/components/xplor-time-picker.d.ts +11 -0
  604. package/dist/components/xplor-time-picker.js +349 -0
  605. package/dist/components/xplor-time-picker.js.map +1 -0
  606. package/dist/components/xplor-tooltip.d.ts +11 -0
  607. package/dist/components/xplor-tooltip.js +9 -0
  608. package/dist/components/xplor-tooltip.js.map +1 -0
  609. package/dist/esm/index-Zkk2NJif.js +2566 -0
  610. package/dist/esm/index-Zkk2NJif.js.map +1 -0
  611. package/dist/esm/index.js +4 -0
  612. package/dist/esm/index.js.map +1 -0
  613. package/dist/esm/loader.js +13 -0
  614. package/dist/esm/loader.js.map +1 -0
  615. package/dist/esm/xplor-alert-dialog_57.entry.js +4692 -0
  616. package/dist/esm/xplor-alert-dialog_57.entry.js.map +1 -0
  617. package/dist/esm/xplor-component-library.js +23 -0
  618. package/dist/esm/xplor-component-library.js.map +1 -0
  619. package/dist/hydrate/index.d.ts +273 -0
  620. package/dist/hydrate/index.js +25064 -0
  621. package/dist/hydrate/index.mjs +25056 -0
  622. package/dist/hydrate/package.json +12 -0
  623. package/dist/index.cjs.js +1 -0
  624. package/dist/index.js +1 -0
  625. package/dist/types/components/element-interface.d.ts +19 -0
  626. package/dist/types/components/helpers.d.ts +47 -0
  627. package/dist/types/components/xplor-alert-dialog/xplor-alert-dialog.d.ts +29 -0
  628. package/dist/types/components/xplor-alert-message/xplor-alert-message.d.ts +9 -0
  629. package/dist/types/components/xplor-assistant/internal/AssistantInput.d.ts +17 -0
  630. package/dist/types/components/xplor-assistant/internal/AssistantMessage.d.ts +6 -0
  631. package/dist/types/components/xplor-assistant/internal/QuickReplies.d.ts +6 -0
  632. package/dist/types/components/xplor-assistant/internal/TypingIndicator.d.ts +5 -0
  633. package/dist/types/components/xplor-assistant/internal/types.d.ts +106 -0
  634. package/dist/types/components/xplor-assistant/utils/api.d.ts +48 -0
  635. package/dist/types/components/xplor-assistant/utils/icons.d.ts +24 -0
  636. package/dist/types/components/xplor-assistant/utils/speech.d.ts +86 -0
  637. package/dist/types/components/xplor-assistant/xplor-assistant.d.ts +52 -0
  638. package/dist/types/components/xplor-autocomplete/xplor-autocomplete.d.ts +92 -0
  639. package/dist/types/components/xplor-avatar/avatar.stories.d.ts +75 -0
  640. package/dist/types/components/xplor-avatar/xplor-avatar.d.ts +21 -0
  641. package/dist/types/components/xplor-avatar-and-name/xplor-avatar-and-name.d.ts +8 -0
  642. package/dist/types/components/xplor-badge/xplor-badge.d.ts +52 -0
  643. package/dist/types/components/xplor-badge-active/xplor-badge-active.d.ts +3 -0
  644. package/dist/types/components/xplor-badge-archived/xplor-badge-archived.d.ts +3 -0
  645. package/dist/types/components/xplor-badge-deleted/xplor-badge-deleted.d.ts +3 -0
  646. package/dist/types/components/xplor-badge-expired/xplor-badge-expired.d.ts +3 -0
  647. package/dist/types/components/xplor-badge-inactive/xplor-badge-inactive.d.ts +3 -0
  648. package/dist/types/components/xplor-badge-recalled/xplor-badge-recalled.d.ts +3 -0
  649. package/dist/types/components/xplor-badge-session-booking/xplor-badge-session-booking.d.ts +20 -0
  650. package/dist/types/components/xplor-badge-upcoming/xplor-badge-upcoming.d.ts +3 -0
  651. package/dist/types/components/xplor-badge-waitlist/xplor-badge-waitlist.d.ts +3 -0
  652. package/dist/types/components/xplor-btn-back/xplor-btn-back.d.ts +29 -0
  653. package/dist/types/components/xplor-btn-back-to-parent/xplor-btn-back-to-parent.d.ts +29 -0
  654. package/dist/types/components/xplor-btn-icon/xplor-btn-icon.d.ts +29 -0
  655. package/dist/types/components/xplor-btn-menu/xplor-btn-menu.d.ts +49 -0
  656. package/dist/types/components/xplor-btn-toggle/xplor-btn-toggle.d.ts +25 -0
  657. package/dist/types/components/xplor-btn-toggle-group/xplor-btn-toggle-group.d.ts +11 -0
  658. package/dist/types/components/xplor-btn-toggle-secondary/xplor-btn-toggle-secondary.d.ts +21 -0
  659. package/dist/types/components/xplor-btn-tooltip/xplor-btn-tooltip.d.ts +10 -0
  660. package/dist/types/components/xplor-button/xplor-button.d.ts +19 -0
  661. package/dist/types/components/xplor-button/xplor-buttons.stories.d.ts +32 -0
  662. package/dist/types/components/xplor-chat-widget/xplor-chat-widget.d.ts +13 -0
  663. package/dist/types/components/xplor-chat-widget/xplor-chat.stories.d.ts +32 -0
  664. package/dist/types/components/xplor-checkbox/xplor-checkbox.d.ts +25 -0
  665. package/dist/types/components/xplor-combobox/xplor-combobox.d.ts +77 -0
  666. package/dist/types/components/xplor-datatable/xplor-datatable.d.ts +103 -0
  667. package/dist/types/components/xplor-datatable/xplor-datatable.stories.d.ts +18 -0
  668. package/dist/types/components/xplor-date-picker/xplor-date-picker.d.ts +53 -0
  669. package/dist/types/components/xplor-drag-and-drop-input/xplor-drag-and-drop-input.d.ts +42 -0
  670. package/dist/types/components/xplor-dropdown/xplor-dropdown.d.ts +6 -0
  671. package/dist/types/components/xplor-expansion-panel/xplor-expansion-panel.d.ts +18 -0
  672. package/dist/types/components/xplor-expansion-panels/xplor-expansion-panels.d.ts +12 -0
  673. package/dist/types/components/xplor-file-upload/xplor-file-upload.d.ts +51 -0
  674. package/dist/types/components/xplor-inline-checkbox/xplor-inline-checkbox.d.ts +33 -0
  675. package/dist/types/components/xplor-inline-date-picker/xplor-inline-date-picker.d.ts +57 -0
  676. package/dist/types/components/xplor-inline-switch/xplor-inline-switch.d.ts +29 -0
  677. package/dist/types/components/xplor-input-file/xplor-input-file.d.ts +60 -0
  678. package/dist/types/components/xplor-input-search/xplor-input-search.d.ts +36 -0
  679. package/dist/types/components/xplor-input-select/xplor-input-select.d.ts +76 -0
  680. package/dist/types/components/xplor-input-send/xplor-input-send.d.ts +18 -0
  681. package/dist/types/components/xplor-input-text/xplor-input-text.d.ts +73 -0
  682. package/dist/types/components/xplor-input-text-area/xplor-input-text-area.d.ts +72 -0
  683. package/dist/types/components/xplor-input-text-secondary/xplor-input-text-secondary.d.ts +25 -0
  684. package/dist/types/components/xplor-input-title/xplor-input-title.d.ts +30 -0
  685. package/dist/types/components/xplor-links/xplor-links.d.ts +4 -0
  686. package/dist/types/components/xplor-links/xplor-links.stories.d.ts +12 -0
  687. package/dist/types/components/xplor-modal/xplor-modal.d.ts +45 -0
  688. package/dist/types/components/xplor-modal-persistent/xplor-modal-persistent.d.ts +28 -0
  689. package/dist/types/components/xplor-nav-tabs/xplor-nav-tabs.d.ts +15 -0
  690. package/dist/types/components/xplor-section-card/xplor-section-card.d.ts +6 -0
  691. package/dist/types/components/xplor-section-heading/xplor-section-heading.d.ts +5 -0
  692. package/dist/types/components/xplor-table/xplor-table.d.ts +65 -0
  693. package/dist/types/components/xplor-table/xplor-table.stories.d.ts +77 -0
  694. package/dist/types/components/xplor-text-bubble/xplor-text-bubble.d.ts +4 -0
  695. package/dist/types/components/xplor-text-field/xplor-text-field.d.ts +111 -0
  696. package/dist/types/components/xplor-time-picker/xplor-time-picker.d.ts +55 -0
  697. package/dist/types/components/xplor-tooltip/xplor-tooltip.d.ts +28 -0
  698. package/dist/types/components.d.ts +4360 -0
  699. package/dist/types/globals/globals.d.ts +3 -0
  700. package/dist/types/index.d.ts +1 -0
  701. package/dist/types/interfaces.d.ts +104 -0
  702. package/dist/types/stencil-public-runtime.d.ts +1702 -0
  703. package/dist/types/stories/Button.d.ts +15 -0
  704. package/dist/types/stories/Header.d.ts +10 -0
  705. package/dist/types/stories/Page.d.ts +2 -0
  706. package/dist/types/stories/Page.stories.d.ts +11 -0
  707. package/dist/types/utils/helpers.d.ts +3 -0
  708. package/dist/xplor-component-library/index.esm.js +2 -0
  709. package/dist/xplor-component-library/index.esm.js.map +1 -0
  710. package/dist/xplor-component-library/loader.esm.js.map +1 -0
  711. package/dist/xplor-component-library/p-25fa8553.entry.js +2 -0
  712. package/dist/xplor-component-library/p-25fa8553.entry.js.map +1 -0
  713. package/dist/xplor-component-library/p-Zkk2NJif.js +3 -0
  714. package/dist/xplor-component-library/p-Zkk2NJif.js.map +1 -0
  715. package/dist/xplor-component-library/xplor-component-library.css +1 -0
  716. package/dist/xplor-component-library/xplor-component-library.esm.js +2 -0
  717. package/dist/xplor-component-library/xplor-component-library.esm.js.map +1 -0
  718. package/loader/cdn.js +1 -0
  719. package/loader/index.cjs.js +1 -0
  720. package/loader/index.d.ts +24 -0
  721. package/loader/index.es2017.js +1 -0
  722. package/loader/index.js +2 -0
  723. package/package.json +124 -0
  724. package/readme.md +315 -0
@@ -0,0 +1 @@
1
+ {"file":"xplor-assistant.js","mappings":"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","names":["XplorAssistant","__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/xplor-assistant/utils/api.ts","src/components/xplor-assistant/utils/speech.ts","src/components/xplor-assistant/utils/icons.ts","src/components/xplor-assistant/internal/AssistantMessage.tsx","src/components/xplor-assistant/internal/AssistantInput.tsx","src/components/xplor-assistant/internal/QuickReplies.tsx","src/components/xplor-assistant/internal/TypingIndicator.tsx","src/components/xplor-assistant/xplor-assistant.scss?tag=xplor-assistant&encapsulation=scoped","src/components/xplor-assistant/xplor-assistant.tsx"],"sourcesContent":["/**\n * API integration utilities for the xplor-assistant component\n */\n\nimport { AssistantAPIRequest, AssistantAPIResponse } from '../internal/types';\n\n/**\n * Generates a unique session ID\n * Format: session_${timestamp}_${random}\n */\nexport function generateSessionId(): string {\n const timestamp = Date.now();\n const random = Math.random().toString(36).substring(2, 11);\n return `session_${timestamp}_${random}`;\n}\n\n/**\n * Formats the current date as YYYY-MM-DD\n */\nexport function getCurrentDate(): string {\n const now = new Date();\n const year = now.getFullYear();\n const month = String(now.getMonth() + 1).padStart(2, '0');\n const day = String(now.getDate()).padStart(2, '0');\n return `${year}-${month}-${day}`;\n}\n\n/**\n * Formats the current time as HH:MM:SS\n */\nexport function getCurrentTime(): string {\n const now = new Date();\n const hours = String(now.getHours()).padStart(2, '0');\n const minutes = String(now.getMinutes()).padStart(2, '0');\n const seconds = String(now.getSeconds()).padStart(2, '0');\n return `${hours}:${minutes}:${seconds}`;\n}\n\n/**\n * Sends a message to the assistant API\n *\n * @param endpoint - The API endpoint URL\n * @param message - The user's message\n * @param sessionId - The current session ID\n * @param userId - The user's ID\n * @param userEmail - The user's email\n * @param userName - The user's name\n * @returns Promise with the API response\n * @throws Error if the API call fails\n */\nexport async function sendMessageToAPI(\n endpoint: string,\n message: string,\n sessionId: string,\n userId: string,\n userEmail: string,\n userName: string\n): Promise<AssistantAPIResponse> {\n if (!endpoint) {\n throw new Error('API endpoint is required');\n }\n\n if (!message || !message.trim()) {\n throw new Error('Message cannot be empty');\n }\n\n const payload: AssistantAPIRequest = {\n message: message.trim(),\n sessionId,\n userId,\n userEmail,\n userName,\n currentDate: getCurrentDate(),\n currentTime: getCurrentTime(),\n };\n\n try {\n const response = await fetch(endpoint, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(payload),\n });\n\n if (!response.ok) {\n const errorText = await response.text().catch(() => response.statusText);\n throw new Error(`API error: ${response.status} - ${errorText}`);\n }\n\n const data: AssistantAPIResponse = await response.json();\n\n // Validate response structure\n if (!data.message || !data.sessionId) {\n throw new Error('Invalid API response: missing required fields');\n }\n\n return data;\n } catch (error) {\n if (error instanceof Error) {\n // Re-throw with more context if it's a fetch error\n if (error.name === 'TypeError' && error.message.includes('fetch')) {\n throw new Error('Network error: Unable to reach the API. Please check your connection.');\n }\n throw error;\n }\n throw new Error('Unknown error occurred while calling the API');\n }\n}\n\n/**\n * Creates an AbortController for cancelling requests\n * Useful for cleanup when component unmounts\n */\nexport function createRequestController(): AbortController {\n return new AbortController();\n}\n\n/**\n * Sends a message to the API with abort support\n *\n * @param endpoint - The API endpoint URL\n * @param message - The user's message\n * @param sessionId - The current session ID\n * @param userId - The user's ID\n * @param userEmail - The user's email\n * @param userName - The user's name\n * @param signal - AbortSignal for cancelling the request\n * @returns Promise with the API response\n */\nexport async function sendMessageWithAbort(\n endpoint: string,\n message: string,\n sessionId: string,\n userId: string,\n userEmail: string,\n userName: string,\n signal?: AbortSignal\n): Promise<AssistantAPIResponse> {\n const payload: AssistantAPIRequest = {\n message: message.trim(),\n sessionId,\n userId,\n userEmail,\n userName,\n currentDate: getCurrentDate(),\n currentTime: getCurrentTime(),\n };\n\n const response = await fetch(endpoint, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(payload),\n signal,\n });\n\n if (!response.ok) {\n const errorText = await response.text().catch(() => response.statusText);\n throw new Error(`API error: ${response.status} - ${errorText}`);\n }\n\n const data: AssistantAPIResponse = await response.json();\n\n if (!data.message || !data.sessionId) {\n throw new Error('Invalid API response: missing required fields');\n }\n\n return data;\n}\n","/**\n * Web Speech API helpers for the xplor-assistant component\n * Handles both Speech Recognition (voice input) and Speech Synthesis (text-to-speech)\n */\n\nimport { BrowserCapabilities } from '../internal/types';\n\n/**\n * Detects browser capabilities for speech features\n */\nexport function detectBrowserCapabilities(): BrowserCapabilities {\n if (typeof window === 'undefined') {\n return {\n voiceInput: false,\n textToSpeech: false,\n };\n }\n\n const hasVoiceInput =\n 'SpeechRecognition' in window ||\n 'webkitSpeechRecognition' in window;\n\n const hasTTS = 'speechSynthesis' in window;\n\n return {\n voiceInput: hasVoiceInput,\n textToSpeech: hasTTS,\n };\n}\n\n/**\n * Speech Recognition Manager\n * Handles voice-to-text functionality\n */\nexport class SpeechRecognitionManager {\n private recognition: any = null;\n private onResultCallback: ((transcript: string) => void) | null = null;\n private onErrorCallback: ((error: string) => void) | null = null;\n private onStartCallback: (() => void) | null = null;\n private onEndCallback: (() => void) | null = null;\n\n constructor() {\n if (typeof window === 'undefined') return;\n\n const SpeechRecognition =\n (window as any).SpeechRecognition ||\n (window as any).webkitSpeechRecognition;\n\n if (SpeechRecognition) {\n this.recognition = new SpeechRecognition();\n this.recognition.continuous = false;\n this.recognition.interimResults = false;\n this.recognition.lang = 'en-US';\n this.recognition.maxAlternatives = 1;\n\n this.recognition.onstart = () => {\n if (this.onStartCallback) {\n this.onStartCallback();\n }\n };\n\n this.recognition.onresult = (event: any) => {\n const transcript = event.results[0][0].transcript;\n if (this.onResultCallback) {\n this.onResultCallback(transcript);\n }\n };\n\n this.recognition.onerror = (event: any) => {\n const errorMessage = this.getErrorMessage(event.error);\n if (this.onErrorCallback) {\n this.onErrorCallback(errorMessage);\n }\n };\n\n this.recognition.onend = () => {\n if (this.onEndCallback) {\n this.onEndCallback();\n }\n };\n }\n }\n\n /**\n * Converts speech recognition error codes to user-friendly messages\n */\n private getErrorMessage(error: string): string {\n switch (error) {\n case 'no-speech':\n return 'No speech detected. Please try again.';\n case 'audio-capture':\n return 'No microphone found. Please ensure a microphone is connected.';\n case 'not-allowed':\n return 'Microphone permission denied. Please allow microphone access.';\n case 'network':\n return 'Network error. Please check your connection.';\n default:\n return `Speech recognition error: ${error}`;\n }\n }\n\n /**\n * Starts listening for voice input\n */\n start(): void {\n if (!this.recognition) {\n console.error('Speech recognition not supported');\n return;\n }\n\n try {\n this.recognition.start();\n } catch (error) {\n console.error('Failed to start speech recognition:', error);\n if (this.onErrorCallback) {\n this.onErrorCallback('Failed to start voice recognition');\n }\n }\n }\n\n /**\n * Stops listening for voice input\n */\n stop(): void {\n if (this.recognition) {\n this.recognition.stop();\n }\n }\n\n /**\n * Sets the callback for when a result is received\n */\n onResult(callback: (transcript: string) => void): void {\n this.onResultCallback = callback;\n }\n\n /**\n * Sets the callback for when an error occurs\n */\n onError(callback: (error: string) => void): void {\n this.onErrorCallback = callback;\n }\n\n /**\n * Sets the callback for when recognition starts\n */\n onStart(callback: () => void): void {\n this.onStartCallback = callback;\n }\n\n /**\n * Sets the callback for when recognition ends\n */\n onEnd(callback: () => void): void {\n this.onEndCallback = callback;\n }\n\n /**\n * Checks if speech recognition is available\n */\n isAvailable(): boolean {\n return this.recognition !== null;\n }\n}\n\n/**\n * Speech Synthesis Manager\n * Handles text-to-speech functionality\n */\nexport class SpeechSynthesisManager {\n private currentUtterance: SpeechSynthesisUtterance | null = null;\n private onStartCallback: (() => void) | null = null;\n private onEndCallback: (() => void) | null = null;\n\n /**\n * Speaks the given text\n */\n speak(text: string): void {\n if (typeof window === 'undefined' || !('speechSynthesis' in window)) {\n console.error('Speech synthesis not supported');\n return;\n }\n\n // Stop any ongoing speech first\n this.stop();\n\n this.currentUtterance = new SpeechSynthesisUtterance(text);\n this.currentUtterance.lang = 'en-US';\n this.currentUtterance.rate = 1.0;\n this.currentUtterance.pitch = 1.0;\n this.currentUtterance.volume = 1.0;\n\n this.currentUtterance.onstart = () => {\n if (this.onStartCallback) {\n this.onStartCallback();\n }\n };\n\n this.currentUtterance.onend = () => {\n if (this.onEndCallback) {\n this.onEndCallback();\n }\n this.currentUtterance = null;\n };\n\n this.currentUtterance.onerror = (event) => {\n console.error('Speech synthesis error:', event);\n if (this.onEndCallback) {\n this.onEndCallback();\n }\n this.currentUtterance = null;\n };\n\n window.speechSynthesis.speak(this.currentUtterance);\n }\n\n /**\n * Stops any ongoing speech\n */\n stop(): void {\n if (typeof window === 'undefined' || !('speechSynthesis' in window)) {\n return;\n }\n\n if (window.speechSynthesis.speaking) {\n window.speechSynthesis.cancel();\n if (this.onEndCallback) {\n this.onEndCallback();\n }\n }\n this.currentUtterance = null;\n }\n\n /**\n * Checks if currently speaking\n */\n isSpeaking(): boolean {\n if (typeof window === 'undefined' || !('speechSynthesis' in window)) {\n return false;\n }\n return window.speechSynthesis.speaking;\n }\n\n /**\n * Sets the callback for when speech starts\n */\n onStart(callback: () => void): void {\n this.onStartCallback = callback;\n }\n\n /**\n * Sets the callback for when speech ends\n */\n onEnd(callback: () => void): void {\n this.onEndCallback = callback;\n }\n\n /**\n * Checks if speech synthesis is available\n */\n isAvailable(): boolean {\n return typeof window !== 'undefined' && 'speechSynthesis' in window;\n }\n}\n","/**\n * SVG icon definitions for the xplor-assistant component\n * Following the pattern used in xplor-button component\n */\n\n/**\n * Microphone icon for voice input button\n */\nexport const microphoneIcon = `\n<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <path d=\"M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z\"></path>\n <path d=\"M19 10v2a7 7 0 0 1-14 0v-2\"></path>\n <line x1=\"12\" y1=\"19\" x2=\"12\" y2=\"23\"></line>\n <line x1=\"8\" y1=\"23\" x2=\"16\" y2=\"23\"></line>\n</svg>\n`;\n\n/**\n * Send arrow icon for send message button\n */\nexport const sendIcon = `\n<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <line x1=\"22\" y1=\"2\" x2=\"11\" y2=\"13\"></line>\n <polygon points=\"22 2 15 22 11 13 2 9 22 2\"></polygon>\n</svg>\n`;\n\n/**\n * Speaker icon for text-to-speech button\n */\nexport const speakerIcon = `\n<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <polygon points=\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"></polygon>\n <path d=\"M15.54 8.46a5 5 0 0 1 0 7.07\"></path>\n <path d=\"M19.07 4.93a10 10 0 0 1 0 14.14\"></path>\n</svg>\n`;\n\n/**\n * Stop square icon for stopping speech\n */\nexport const stopIcon = `\n<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"currentColor\" stroke=\"none\">\n <rect x=\"6\" y=\"6\" width=\"12\" height=\"12\" rx=\"2\"></rect>\n</svg>\n`;\n\n/**\n * Muted speaker icon for when TTS is disabled\n */\nexport const speakerMutedIcon = `\n<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n <polygon points=\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"></polygon>\n <line x1=\"23\" y1=\"9\" x2=\"17\" y2=\"15\"></line>\n <line x1=\"17\" y1=\"9\" x2=\"23\" y2=\"15\"></line>\n</svg>\n`;\n","/**\n * AssistantMessage - Internal component\n * Renders a single message bubble with optional text-to-speech functionality\n */\n\nimport { h } from '@stencil/core';\nimport { AssistantMessageProps } from './types';\nimport { speakerIcon, stopIcon } from '../utils/icons';\n\nexport const AssistantMessage = (props: AssistantMessageProps) => {\n const { message, enableTextToSpeech, isSpeaking, onSpeak, onStopSpeaking } = props;\n\n const messageClasses = {\n 'xplor-assistant__message': true,\n 'xplor-assistant__message--user': message.role === 'user',\n 'xplor-assistant__message--assistant': message.role === 'assistant',\n };\n\n const handleSpeakClick = () => {\n if (isSpeaking) {\n onStopSpeaking?.();\n } else {\n onSpeak?.(message.content);\n }\n };\n\n const formatTime = (timestamp: Date) => {\n const hours = timestamp.getHours();\n const minutes = timestamp.getMinutes();\n const ampm = hours >= 12 ? 'PM' : 'AM';\n const displayHours = hours % 12 || 12;\n const displayMinutes = minutes < 10 ? `0${minutes}` : minutes;\n return `${displayHours}:${displayMinutes} ${ampm}`;\n };\n\n return (\n <div class={messageClasses}>\n <div class=\"xplor-assistant__message-content\">\n {message.content}\n </div>\n <div class=\"xplor-assistant__message-footer\">\n <span class=\"xplor-assistant__message-timestamp\">\n {formatTime(message.timestamp)}\n </span>\n {message.role === 'assistant' && enableTextToSpeech && (\n <button\n class={{\n 'xplor-assistant__speak-button': true,\n 'xplor-assistant__speak-button--active': isSpeaking,\n }}\n onClick={handleSpeakClick}\n title={isSpeaking ? 'Stop speaking' : 'Listen to message'}\n type=\"button\"\n >\n <span\n class=\"xplor-assistant__speak-icon\"\n innerHTML={isSpeaking ? stopIcon : speakerIcon}\n ></span>\n </button>\n )}\n </div>\n </div>\n );\n};\n","/**\n * AssistantInput - Internal component\n * Renders the input field with voice and send buttons\n */\n\nimport { h } from '@stencil/core';\nimport { microphoneIcon, sendIcon } from '../utils/icons';\n\nexport interface AssistantInputInternalProps {\n placeholder: string;\n disabled: boolean;\n isLoading: boolean;\n enableVoiceInput: boolean;\n isListening: boolean;\n inputValue: string;\n onSendMessage: (message: string) => void;\n onStartListening: () => void;\n onStopListening: () => void;\n setInputValue: (value: string) => void;\n}\n\nexport const AssistantInput = (props: AssistantInputInternalProps) => {\n const {\n placeholder,\n disabled,\n isLoading,\n enableVoiceInput,\n isListening,\n inputValue,\n onSendMessage,\n onStartListening,\n onStopListening,\n setInputValue,\n } = props;\n\n const handleSubmit = (e: Event) => {\n e.preventDefault();\n console.log('[AssistantInput] Submit triggered, inputValue:', inputValue);\n if (inputValue.trim() && !disabled && !isLoading) {\n console.log('[AssistantInput] Calling onSendMessage with:', inputValue);\n onSendMessage(inputValue);\n setInputValue('');\n } else {\n console.log('[AssistantInput] Submit blocked - disabled:', disabled, 'isLoading:', isLoading, 'hasValue:', !!inputValue.trim());\n }\n };\n\n const handleInputChange = (e: Event) => {\n const target = e.target as HTMLInputElement;\n setInputValue(target.value);\n };\n\n const handleVoiceClick = () => {\n if (isListening) {\n onStopListening();\n } else {\n onStartListening();\n }\n };\n\n const isSendDisabled = !inputValue.trim() || disabled || isLoading;\n\n return (\n <div class=\"xplor-assistant__input-container\">\n <form onSubmit={handleSubmit} class=\"xplor-assistant__input-form\">\n {enableVoiceInput && (\n <button\n type=\"button\"\n class={{\n 'xplor-assistant__voice-button': true,\n 'xplor-assistant__voice-button--listening': isListening,\n }}\n onClick={handleVoiceClick}\n disabled={disabled || isLoading}\n title={isListening ? 'Stop listening' : 'Start voice input'}\n >\n <span class=\"xplor-assistant__voice-icon\" innerHTML={microphoneIcon}></span>\n </button>\n )}\n\n <input\n type=\"text\"\n class=\"xplor-assistant__input\"\n placeholder={placeholder}\n value={inputValue}\n onInput={handleInputChange}\n disabled={disabled || isLoading}\n />\n\n <button\n type=\"submit\"\n class=\"xplor-assistant__send-button\"\n disabled={isSendDisabled}\n title=\"Send message\"\n >\n <span class=\"xplor-assistant__send-icon\" innerHTML={sendIcon}></span>\n </button>\n </form>\n </div>\n );\n};\n","/**\n * QuickReplies - Internal component\n * Renders quick reply suggestion buttons\n */\n\nimport { h } from '@stencil/core';\nimport { QuickRepliesProps } from './types';\n\nexport const QuickReplies = (props: QuickRepliesProps) => {\n const { replies, disabled, onReplyClick } = props;\n\n if (!replies || replies.length === 0) {\n return null;\n }\n\n return (\n <div class=\"xplor-assistant__quick-replies\">\n {replies.map((reply) => (\n <button\n class=\"xplor-assistant__quick-reply\"\n onClick={() => onReplyClick(reply)}\n disabled={disabled}\n type=\"button\"\n >\n {reply}\n </button>\n ))}\n </div>\n );\n};\n","/**\n * TypingIndicator - Internal component\n * Displays animated dots to indicate the assistant is processing/typing\n */\n\nimport { h } from '@stencil/core';\n\nexport const TypingIndicator = () => {\n return (\n <div class=\"xplor-assistant__typing-indicator\">\n <span class=\"xplor-assistant__typing-dot\"></span>\n <span class=\"xplor-assistant__typing-dot\"></span>\n <span class=\"xplor-assistant__typing-dot\"></span>\n </div>\n );\n};\n","@use '../../styles/colours.scss' as colours;\n@use '../../styles/spacing.scss' as spacing;\n@use '../../styles/mixins.scss' as mixins;\n\n:host {\n display: block;\n\n // CSS custom properties for theming\n --assistant-bot-bg: #{colours.$secondary}; // Purple for bot messages\n --assistant-user-bg: #{colours.$gray-200}; // Light gray for user messages\n --assistant-accent: #{colours.$warning}; // Orange accents\n --assistant-border: #{colours.$gray-300};\n --assistant-text: #{colours.$gray-900};\n --assistant-text-light: #{colours.$gray-600};\n}\n\n.xplor-assistant {\n display: flex;\n flex-direction: column;\n width: 100%;\n height: 100%;\n background-color: colours.$white;\n border-radius: 0.75rem;\n border: 1px solid var(--assistant-border);\n overflow: hidden;\n\n &--disabled {\n opacity: 0.6;\n pointer-events: none;\n }\n\n &--error {\n display: flex;\n align-items: center;\n justify-content: center;\n padding: spacing.$spacing-24;\n }\n}\n\n// Messages Area\n.xplor-assistant__messages {\n flex: 1;\n overflow-y: auto;\n padding: spacing.$spacing-16;\n display: flex;\n flex-direction: column;\n gap: spacing.$spacing-12;\n scroll-behavior: smooth;\n\n // Scrollbar styling\n &::-webkit-scrollbar {\n width: 6px;\n }\n\n &::-webkit-scrollbar-track {\n background: colours.$gray-100;\n border-radius: 3px;\n }\n\n &::-webkit-scrollbar-thumb {\n background: colours.$gray-400;\n border-radius: 3px;\n\n &:hover {\n background: colours.$gray-500;\n }\n }\n}\n\n// Individual Message\n.xplor-assistant__message {\n display: flex;\n flex-direction: column;\n max-width: 80%;\n animation: slideIn 0.3s ease-out;\n\n &--bot {\n align-self: flex-start;\n\n .xplor-assistant__message-content {\n background-color: var(--assistant-bot-bg);\n color: colours.$white;\n border-radius: 1rem 1rem 1rem 0.25rem;\n }\n }\n\n &--user {\n align-self: flex-end;\n\n .xplor-assistant__message-content {\n background-color: var(--assistant-user-bg);\n color: var(--assistant-text);\n border-radius: 1rem 1rem 0.25rem 1rem;\n }\n }\n}\n\n.xplor-assistant__message-content {\n padding: spacing.$spacing-12 spacing.$spacing-16;\n font-size: 0.9375rem;\n line-height: 1.5;\n word-wrap: break-word;\n overflow-wrap: break-word;\n}\n\n.xplor-assistant__message-footer {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-top: spacing.$spacing-4;\n padding: 0 spacing.$spacing-8;\n}\n\n.xplor-assistant__message-timestamp {\n font-size: 0.75rem;\n color: var(--assistant-text-light);\n}\n\n.xplor-assistant__speak-button {\n background: transparent;\n border: none;\n cursor: pointer;\n padding: spacing.$spacing-4;\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 50%;\n transition: background-color 0.2s;\n\n &:hover {\n background-color: colours.$gray-200;\n }\n\n &--active {\n background-color: colours.$gray-300;\n }\n}\n\n.xplor-assistant__speak-icon {\n width: 16px;\n height: 16px;\n display: flex;\n align-items: center;\n justify-content: center;\n\n svg {\n width: 16px;\n height: 16px;\n stroke: var(--assistant-text-light);\n }\n}\n\n// Typing Indicator\n.xplor-assistant__typing-indicator {\n display: flex;\n gap: spacing.$spacing-4;\n padding: spacing.$spacing-12 spacing.$spacing-16;\n}\n\n.xplor-assistant__typing-dot {\n width: 8px;\n height: 8px;\n border-radius: 50%;\n background-color: colours.$gray-400;\n animation: typingBounce 1.4s infinite ease-in-out;\n\n &:nth-child(1) {\n animation-delay: 0s;\n }\n\n &:nth-child(2) {\n animation-delay: 0.2s;\n }\n\n &:nth-child(3) {\n animation-delay: 0.4s;\n }\n}\n\n// Error Banner\n.xplor-assistant__error-banner {\n background-color: colours.$error-50;\n color: colours.$error-700;\n padding: spacing.$spacing-12 spacing.$spacing-16;\n border-radius: 0.5rem;\n font-size: 0.875rem;\n margin: spacing.$spacing-8 0;\n}\n\n.xplor-assistant__error-message {\n color: colours.$error-700;\n font-size: 0.9375rem;\n text-align: center;\n}\n\n// Quick Replies\n.xplor-assistant__quick-replies {\n display: flex;\n flex-wrap: wrap;\n gap: spacing.$spacing-8;\n padding: spacing.$spacing-12 spacing.$spacing-16;\n border-top: 1px solid var(--assistant-border);\n background-color: colours.$gray-50;\n}\n\n.xplor-assistant__quick-reply {\n padding: spacing.$spacing-8 spacing.$spacing-16;\n background-color: colours.$white;\n border: 2px solid var(--assistant-accent);\n color: var(--assistant-accent);\n border-radius: 1rem;\n font-size: 0.875rem;\n font-weight: 500;\n cursor: pointer;\n transition: all 0.2s;\n white-space: nowrap;\n\n &:hover:not(:disabled) {\n background-color: var(--assistant-accent);\n color: colours.$white;\n transform: translateY(-1px);\n }\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n}\n\n// Input Container\n.xplor-assistant__input-container {\n border-top: 1px solid var(--assistant-border);\n padding: spacing.$spacing-12;\n background-color: colours.$white;\n}\n\n.xplor-assistant__input-form {\n display: flex;\n gap: spacing.$spacing-8;\n align-items: center;\n}\n\n.xplor-assistant__input {\n flex: 1;\n padding: spacing.$spacing-12 spacing.$spacing-16;\n border: 1px solid var(--assistant-border);\n border-radius: 1.5rem;\n font-size: 0.9375rem;\n outline: none;\n transition: border-color 0.2s;\n\n &:focus {\n border-color: var(--assistant-bot-bg);\n }\n\n &:disabled {\n background-color: colours.$gray-100;\n cursor: not-allowed;\n }\n\n &::placeholder {\n color: colours.$gray-500;\n }\n}\n\n.xplor-assistant__voice-button {\n width: 40px;\n height: 40px;\n border-radius: 50%;\n border: none;\n background-color: colours.$gray-200;\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s;\n flex-shrink: 0;\n\n &:hover:not(:disabled) {\n background-color: colours.$gray-300;\n transform: scale(1.05);\n }\n\n &--listening {\n background-color: colours.$error;\n animation: pulse 1.5s ease-in-out infinite;\n\n .xplor-assistant__voice-icon svg {\n stroke: colours.$white;\n }\n }\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n}\n\n.xplor-assistant__voice-icon {\n width: 20px;\n height: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n\n svg {\n width: 20px;\n height: 20px;\n stroke: var(--assistant-text);\n }\n}\n\n.xplor-assistant__send-button {\n width: 40px;\n height: 40px;\n border-radius: 50%;\n border: none;\n background-color: var(--assistant-bot-bg);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n transition: all 0.2s;\n flex-shrink: 0;\n\n &:hover:not(:disabled) {\n background-color: colours.$secondary-700;\n transform: scale(1.05);\n }\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n}\n\n.xplor-assistant__send-icon {\n width: 20px;\n height: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n\n svg {\n width: 20px;\n height: 20px;\n stroke: colours.$white;\n }\n}\n\n// Animations\n@keyframes slideIn {\n from {\n opacity: 0;\n transform: translateY(10px);\n }\n to {\n opacity: 1;\n transform: translateY(0);\n }\n}\n\n@keyframes typingBounce {\n 0%, 60%, 100% {\n transform: translateY(0);\n }\n 30% {\n transform: translateY(-8px);\n }\n}\n\n@keyframes pulse {\n 0%, 100% {\n transform: scale(1);\n opacity: 1;\n }\n 50% {\n transform: scale(1.05);\n opacity: 0.9;\n }\n}\n","import { Component, Host, h, Prop, State, Event, EventEmitter, Method, Element, Watch } from '@stencil/core';\nimport {\n AssistantMessage as MessageType,\n AssistantMessageSentEvent,\n AssistantMessageReceivedEvent,\n AssistantErrorEvent,\n AssistantSessionEvent,\n} from './internal/types';\nimport { sendMessageToAPI, generateSessionId } from './utils/api';\nimport { SpeechRecognitionManager, SpeechSynthesisManager, detectBrowserCapabilities } from './utils/speech';\nimport { AssistantMessage } from './internal/AssistantMessage';\nimport { AssistantInput } from './internal/AssistantInput';\nimport { QuickReplies } from './internal/QuickReplies';\nimport { TypingIndicator } from './internal/TypingIndicator';\n\n@Component({\n tag: 'xplor-assistant',\n styleUrl: 'xplor-assistant.scss',\n scoped: true,\n})\nexport class XplorAssistant {\n @Element() el: HTMLElement;\n\n // Required Props\n @Prop() apiEndpoint!: string;\n @Prop() userId!: string;\n @Prop() userEmail!: string;\n @Prop() userName!: string;\n\n // Optional Props\n @Prop() sessionId?: string;\n @Prop() quickReplies?: string[];\n @Prop() placeholder: string = 'Type your message...';\n @Prop() enableVoiceInput: boolean = true;\n @Prop() enableTextToSpeech: boolean = true;\n @Prop() autoSpeak: boolean = false;\n @Prop() maxHeight: string = '600px';\n @Prop() disabled: boolean = false;\n\n // State\n @State() messages: MessageType[] = [];\n @State() internalSessionId: string = '';\n @State() isLoading: boolean = false;\n @State() isListening: boolean = false;\n @State() isSpeaking: boolean = false;\n @State() error: string = '';\n @State() inputValue: string = '';\n @State() hasVoiceSupport: boolean = false;\n @State() hasTTSSupport: boolean = false;\n\n // Events\n @Event() assistantMessageSent: EventEmitter<AssistantMessageSentEvent>;\n @Event() assistantMessageReceived: EventEmitter<AssistantMessageReceivedEvent>;\n @Event() assistantError: EventEmitter<AssistantErrorEvent>;\n @Event() assistantSessionCreated: EventEmitter<AssistantSessionEvent>;\n\n // Private members\n private speechRecognition: SpeechRecognitionManager;\n private speechSynthesis: SpeechSynthesisManager;\n private messagesContainerRef: HTMLDivElement;\n\n componentWillLoad() {\n // Validate required props\n if (!this.apiEndpoint) {\n console.error('xplor-assistant: apiEndpoint prop is required');\n this.error = 'Configuration error: API endpoint not provided';\n return;\n }\n\n if (!this.userId || !this.userEmail || !this.userName) {\n console.error('xplor-assistant: userId, userEmail, and userName props are required');\n this.error = 'Configuration error: User information not provided';\n return;\n }\n\n // Initialize session\n if (this.sessionId) {\n this.internalSessionId = this.sessionId;\n } else {\n this.internalSessionId = generateSessionId();\n this.assistantSessionCreated.emit({\n sessionId: this.internalSessionId,\n timestamp: new Date(),\n });\n }\n\n // Detect browser capabilities\n const capabilities = detectBrowserCapabilities();\n this.hasVoiceSupport = capabilities.voiceInput;\n this.hasTTSSupport = capabilities.textToSpeech;\n\n // Disable features if not supported\n if (!this.hasVoiceSupport) {\n this.enableVoiceInput = false;\n }\n if (!this.hasTTSSupport) {\n this.enableTextToSpeech = false;\n }\n\n // Initialize speech managers\n this.speechRecognition = new SpeechRecognitionManager();\n this.speechSynthesis = new SpeechSynthesisManager();\n\n // Setup speech recognition callbacks\n this.speechRecognition.onStart(() => {\n this.isListening = true;\n });\n\n this.speechRecognition.onEnd(() => {\n this.isListening = false;\n });\n\n this.speechRecognition.onResult((transcript) => {\n this.handleVoiceInput(transcript);\n });\n\n this.speechRecognition.onError((error) => {\n this.isListening = false;\n this.handleError(error, 'voice');\n });\n\n // Setup speech synthesis callbacks\n this.speechSynthesis.onStart(() => {\n this.isSpeaking = true;\n });\n\n this.speechSynthesis.onEnd(() => {\n this.isSpeaking = false;\n });\n }\n\n @Watch('sessionId')\n handleSessionIdChange(newSessionId: string) {\n if (newSessionId && newSessionId !== this.internalSessionId) {\n this.internalSessionId = newSessionId;\n }\n }\n\n componentDidUpdate() {\n // Auto-scroll to bottom when new messages arrive\n this.scrollToBottom();\n }\n\n disconnectedCallback() {\n // Cleanup speech synthesis\n if (this.speechSynthesis) {\n this.speechSynthesis.stop();\n }\n }\n\n // Public Methods\n\n @Method()\n async sendMessage(message: string): Promise<void> {\n if (!message || !message.trim()) {\n return;\n }\n await this.handleSendMessage(message);\n }\n\n @Method()\n async clearHistory(): Promise<void> {\n this.messages = [];\n this.error = '';\n }\n\n @Method()\n async speak(text: string): Promise<void> {\n if (this.enableTextToSpeech && this.speechSynthesis) {\n this.speechSynthesis.speak(text);\n }\n }\n\n @Method()\n async stopSpeaking(): Promise<void> {\n if (this.speechSynthesis) {\n this.speechSynthesis.stop();\n }\n }\n\n // Private Methods\n\n private scrollToBottom() {\n if (this.messagesContainerRef) {\n setTimeout(() => {\n this.messagesContainerRef.scrollTop = this.messagesContainerRef.scrollHeight;\n }, 100);\n }\n }\n\n private handleSendMessage = async (messageText: string) => {\n console.log('[XplorAssistant] handleSendMessage called with:', messageText);\n\n if (this.disabled || this.isLoading || !messageText.trim()) {\n console.log('[XplorAssistant] Message blocked - disabled:', this.disabled, 'isLoading:', this.isLoading, 'hasValue:', !!messageText.trim());\n return;\n }\n\n // Clear the input immediately\n this.inputValue = '';\n console.log('[XplorAssistant] Input cleared, proceeding with message');\n\n const userMessage: MessageType = {\n id: `user-${Date.now()}`,\n role: 'user',\n content: messageText.trim(),\n timestamp: new Date(),\n };\n\n // Add user message to the conversation\n this.messages = [...this.messages, userMessage];\n this.error = '';\n this.isLoading = true;\n\n // Emit message sent event\n this.assistantMessageSent.emit({\n message: userMessage.content,\n sessionId: this.internalSessionId,\n timestamp: userMessage.timestamp,\n });\n\n try {\n // Call the API\n const response = await sendMessageToAPI(\n this.apiEndpoint,\n userMessage.content,\n this.internalSessionId,\n this.userId,\n this.userEmail,\n this.userName\n );\n\n // Update session ID if changed\n if (response.sessionId && response.sessionId !== this.internalSessionId) {\n this.internalSessionId = response.sessionId;\n }\n\n // Add assistant response to conversation\n const assistantMessage: MessageType = {\n id: `assistant-${Date.now()}`,\n role: 'assistant',\n content: response.message,\n timestamp: new Date(),\n };\n\n this.messages = [...this.messages, assistantMessage];\n\n // Emit message received event\n this.assistantMessageReceived.emit({\n message: assistantMessage.content,\n sessionId: this.internalSessionId,\n timestamp: assistantMessage.timestamp,\n });\n\n // Auto-speak if enabled\n if (this.autoSpeak && this.enableTextToSpeech) {\n this.speechSynthesis.speak(assistantMessage.content);\n }\n } catch (error) {\n const errorMessage = error instanceof Error ? error.message : 'Failed to send message';\n this.handleError(errorMessage, 'api');\n } finally {\n this.isLoading = false;\n }\n };\n\n private handleVoiceInput = (transcript: string) => {\n if (transcript && transcript.trim()) {\n this.handleSendMessage(transcript);\n }\n };\n\n private handleError = (error: string, type: 'api' | 'voice' | 'tts' | 'network' | 'validation') => {\n this.error = error;\n this.assistantError.emit({\n error,\n type,\n timestamp: new Date(),\n });\n };\n\n private handleStartListening = () => {\n if (this.speechRecognition && this.enableVoiceInput && !this.disabled && !this.isLoading) {\n this.speechRecognition.start();\n }\n };\n\n private handleStopListening = () => {\n if (this.speechRecognition) {\n this.speechRecognition.stop();\n }\n };\n\n private handleSpeak = (text: string) => {\n if (this.speechSynthesis && this.enableTextToSpeech) {\n this.speechSynthesis.speak(text);\n }\n };\n\n private handleStopSpeaking = () => {\n if (this.speechSynthesis) {\n this.speechSynthesis.stop();\n }\n };\n\n private handleQuickReply = (reply: string) => {\n this.handleSendMessage(reply);\n };\n\n private setInputValue = (value: string) => {\n this.inputValue = value;\n };\n\n render() {\n // Show error state if critical error\n if (this.error && !this.apiEndpoint) {\n return (\n <Host>\n <div class=\"xplor-assistant xplor-assistant--error\">\n <div class=\"xplor-assistant__error-message\">\n {this.error}\n </div>\n </div>\n </Host>\n );\n }\n\n return (\n <Host>\n <div\n class={{\n 'xplor-assistant': true,\n 'xplor-assistant--disabled': this.disabled,\n }}\n style={{ maxHeight: this.maxHeight }}\n >\n {/* Messages Area */}\n <div\n class=\"xplor-assistant__messages\"\n ref={(el) => (this.messagesContainerRef = el)}\n >\n {this.messages.map((message) => (\n <AssistantMessage\n message={message}\n enableTextToSpeech={this.enableTextToSpeech}\n autoSpeak={false}\n isSpeaking={this.isSpeaking}\n onSpeak={this.handleSpeak}\n onStopSpeaking={this.handleStopSpeaking}\n />\n ))}\n\n {/* Loading Indicator */}\n {this.isLoading && (\n <div class=\"xplor-assistant__message xplor-assistant__message--assistant\">\n <TypingIndicator />\n </div>\n )}\n\n {/* Error Message */}\n {this.error && this.apiEndpoint && (\n <div class=\"xplor-assistant__error-banner\">\n {this.error}\n </div>\n )}\n </div>\n\n {/* Quick Replies */}\n {this.quickReplies && this.quickReplies.length > 0 && (\n <QuickReplies\n replies={this.quickReplies}\n disabled={this.disabled || this.isLoading}\n onReplyClick={this.handleQuickReply}\n />\n )}\n\n {/* Input Area */}\n <AssistantInput\n placeholder={this.placeholder}\n disabled={this.disabled}\n isLoading={this.isLoading}\n enableVoiceInput={this.enableVoiceInput && this.hasVoiceSupport}\n isListening={this.isListening}\n onSendMessage={this.handleSendMessage}\n onStartListening={this.handleStartListening}\n onStopListening={this.handleStopListening}\n inputValue={this.inputValue}\n setInputValue={this.setInputValue}\n />\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface XplorAutocomplete extends Components.XplorAutocomplete, HTMLElement {}
4
+ export const XplorAutocomplete: {
5
+ prototype: XplorAutocomplete;
6
+ new (): XplorAutocomplete;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,269 @@
1
+ import { p as proxyCustomElement, H, c as createEvent, h, a as Host } from './index.js';
2
+
3
+ const xplorAutocompleteCss = "@tailwind base;\n@tailwind components;\n@tailwind utilities;\n@layer base {\n \n :root {\n --color-primary: #db3b03;\n --color-primary-50: rgba(255, 152, 0, 1);\n --color-secondary: rgb(0, 119, 107);\n --color-secondary-50: rgba(1, 163, 157, 1);\n --color-tertiary: rgb(128, 104, 186);\n --color-tertiary: rgb(223, 242, 241);\n --color-white: white;\n --color-emphasis: rgb(8, 8, 9);\n --color-supergiant: rgb(213, 66, 99);\n --color-orange: rgb(250, 200, 127);\n --color-buttons: #fbbc05;\n --color-typography: #ea4335;\n --background: 20 66% 99%;\n --foreground: 20 51% 4%;\n --muted: 20 25% 86%;\n --muted-foreground: 20 7% 25%;\n --popover: 20 66% 98%;\n --popover-foreground: 20 51% 3%;\n --card: 20 66% 98%;\n --card-foreground: 20 51% 3%;\n --border: 20 15% 94%;\n --input: 20 15% 94%;\n --primary: 20 48% 72%;\n --primary-foreground: 20 48% 12%;\n --secondary: 20 12% 92%;\n --secondary-foreground: 20 12% 32%;\n --accent: 20 12% 92%;\n --accent-foreground: 20 12% 32%;\n --destructive: 11 80% 22%;\n --destructive-foreground: 11 80% 82%;\n --ring: 20 48% 72%;\n --radius: 0.5rem;\n --chart-1: 12 76% 61%;\n --chart-2: 173 58% 39%;\n --chart-3: 197 37% 24%;\n --chart-4: 43 74% 66%;\n --chart-5: 27 87% 67%;\n }\n .dark {\n --background: 253 43% 3%;\n --foreground: 253 31% 98%;\n --muted: 253 7% 13%;\n --muted-foreground: 253 13% 63%;\n --popover: 253 43% 3%;\n --popover-foreground: 253 31% 98%;\n --card: 253 43% 4%;\n --card-foreground: 253 31% 99%;\n --border: 215 27.9% 16.9%;\n --input: 215 27.9% 16.9%;\n --primary: 253 91% 58%;\n --primary-foreground: 253 91% 98%;\n --secondary: 253 7% 9%;\n --secondary-foreground: 253 7% 69%;\n --accent: 253 13% 14%;\n --accent-foreground: 253 13% 74%;\n --destructive: 339.2 90.36% 51.18%;\n --destructive-foreground: 0 0% 100%;\n --ring: 253 91% 58%;\n --chart-1: 220 70% 50%;\n --chart-2: 160 60% 45%;\n --chart-3: 30 80% 55%;\n --chart-4: 280 65% 60%;\n --chart-5: 340 75% 55%;\n }\n}\n@layer base {\n * {\n @apply border-border;\n }\n body {\n @apply box-border bg-background text-foreground;\n }\n}\n@layer utilities {\n .min-h-screen {\n min-height: 100vh;\n \n min-height: 100dvh;\n }\n .h-screen {\n height: 100vh;\n \n height: 100dvh;\n }\n}\n@tailwind base;\n@tailwind components;\n@tailwind utilities;\n@layer components {\n .glass {\n border: none;\n backdrop-filter: blur(var(--glass-blur, 40px));\n background-color: transparent;\n background-image: linear-gradient(135deg, rgb(255, 255, 255, var(--glass-opacity, 30%)), transparent), linear-gradient(var(--glass-reflex-degree, 100deg), rgb(255, 255, 255, var(--glass-reflex-opacity, 10%)) 25%, transparent 0);\n box-shadow: 0 0 0 1px rgb(255, 255, 255, var(--glass-border-opacity, 10%)) inset, 0 0 0 2px rgba(0, 0, 0, 0.05);\n text-shadow: 0 1px rgb(0, 0, 0, var(--glass-text-shadow-opacity, 5%));\n }\n}\n.tox.tox-tinymce.sc-xplor-autocomplete {\n width: 50% !important;\n height: 400px !important;\n display: inline-flex;\n}\n\n\n@media only screen and (min-width: 600px) {\n .tox.tox-tinymce.sc-xplor-autocomplete {\n width: 600px !important;\n }\n}\nh1.sc-xplor-autocomplete {\n color: var(--color-primary);\n \n font-family: Inter;\n font-size: 48px;\n font-style: normal;\n font-weight: 400;\n line-height: 56px; \n}\n\nh2.sc-xplor-autocomplete {\n color: var(--grey-1100252525, #252525);\n \n font-family: Inter;\n font-size: 32px;\n font-style: normal;\n font-weight: 600;\n line-height: 38px; \n letter-spacing: 0.25px;\n}\n\nh3.sc-xplor-autocomplete {\n color: var(--grey-1100252525, #252525);\n \n font-family: Inter;\n font-size: 24px;\n font-style: normal;\n font-weight: 400;\n line-height: 32px; \n}\n\n.overline.sc-xplor-autocomplete {\n color: var(--grey-1100252525, #252525);\n \n font-family: Inter;\n font-size: 12px;\n font-style: normal;\n font-weight: 500;\n line-height: 16px; \n letter-spacing: 3.2px;\n text-transform: uppercase;\n}\n\nol.sc-xplor-autocomplete, ul.sc-xplor-autocomplete {\n list-style: none;\n margin: 1rem;\n padding: 0;\n}\nol.sc-xplor-autocomplete li.sc-xplor-autocomplete, ul.sc-xplor-autocomplete li.sc-xplor-autocomplete {\n margin: 1rem;\n padding: 0;\n}\nol.mdc-list.sc-xplor-autocomplete, ul.mdc-list.sc-xplor-autocomplete {\n list-style-type: none;\n list-style: none;\n}\nol.mdc-list.sc-xplor-autocomplete li.mdc-list-item.sc-xplor-autocomplete, ul.mdc-list.sc-xplor-autocomplete li.mdc-list-item.sc-xplor-autocomplete {\n list-style-type: none;\n list-style: none !important;\n}\n\n.orange-label.sc-xplor-autocomplete {\n color: var(--Orange-900-Primary, #db3b03);\n \n font-family: Inter;\n font-size: 12px;\n font-style: normal;\n font-weight: 400;\n line-height: 16px; \n letter-spacing: 0.4px;\n margin: 0px 0 -9px 16px;\n z-index: 1 !important;\n position: relative;\n width: fit-content;\n}\n.orange-label.grey-bg.sc-xplor-autocomplete {\n background-color: #fefcfb;\n}\n\n#spinnerLoader.sc-xplor-autocomplete {\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background-color: #fff;\n padding: 20px;\n border-radius: 5px;\n box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 100;\n pointer-events: none;\n}\n\n#textfield-Title-label.sc-xplor-autocomplete {\n background-color: white;\n}\n\n.mdc-ripple-upgraded.sc-xplor-autocomplete .mdc-text-field--outlined.sc-xplor-autocomplete .mdc-notched-outline__notch.sc-xplor-autocomplete {\n border: 0px solid transparent !important;\n border-bottom: 1px solid #db3b03 !important;\n padding: 0;\n height: 0;\n}\n\n.mdc-text-field--focused.sc-xplor-autocomplete .mdc-notched-outline__notch.sc-xplor-autocomplete {\n border: 0px solid transparent !important;\n border-bottom: 2px solid #db3b03 !important;\n}\n\n.mdc-text-field--outlined.sc-xplor-autocomplete .mdc-notched-outline.sc-xplor-autocomplete .mdc-notched-outline__notch.sc-xplor-autocomplete {\n max-width: calc(100% - max(12px, var(--mdc-shape-small, 4px)) * 2);\n border-top: transparent;\n}\n\n.generate-btn.sc-xplor-autocomplete {\n display: flex;\n height: 48px;\n padding: 12px 24px;\n justify-content: center;\n align-items: center;\n gap: 10px;\n border-radius: 16px;\n}\n.generate-btn.link.sc-xplor-autocomplete:hover {\n background-color: var(--Cyan-700-Secondary, #e27046);\n color: var(--Cyan-700-Secondary-Text, #fff);\n}\n\n.bg-green.sc-xplor-autocomplete {\n background: var(--Cyan-700-Secondary, #00776b);\n}\n\n.sc-xplor-autocomplete-h {\n display: block;\n width: 100%;\n}\n\n.autocomplete.sc-xplor-autocomplete {\n position: relative;\n width: 100%;\n}\n.autocomplete--disabled.sc-xplor-autocomplete {\n opacity: 0.6;\n cursor: not-allowed;\n}\n.autocomplete--readonly.sc-xplor-autocomplete .autocomplete__input.sc-xplor-autocomplete {\n background-color: #f5f5f5;\n}\n\n.autocomplete__label.sc-xplor-autocomplete {\n display: block;\n font-size: 0.875rem;\n font-weight: 500;\n color: #424242;\n margin-bottom: 0.5rem;\n}\n\n.autocomplete__input-wrapper.sc-xplor-autocomplete {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 0.5rem;\n border: 1px solid #bdbdbd;\n border-radius: 4px;\n padding: 0.5rem;\n background-color: #fff;\n transition: border-color 0.2s, box-shadow 0.2s;\n}\n.autocomplete__input-wrapper.sc-xplor-autocomplete:focus-within {\n border-color: #1976d2;\n box-shadow: 0 0 0 3px rgba(25, 118, 210, 0.1);\n}\n\n.autocomplete__chips.sc-xplor-autocomplete {\n display: flex;\n flex-wrap: wrap;\n gap: 0.5rem;\n}\n\n.autocomplete__chip.sc-xplor-autocomplete {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.5rem;\n background-color: #e3f2fd;\n border-radius: 16px;\n font-size: 0.875rem;\n color: #1976d2;\n}\n\n.autocomplete__chip-label.sc-xplor-autocomplete {\n line-height: 1;\n}\n\n.autocomplete__chip-remove.sc-xplor-autocomplete {\n background: none;\n border: none;\n font-size: 1.25rem;\n line-height: 1;\n cursor: pointer;\n padding: 0;\n width: 1rem;\n height: 1rem;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #1976d2;\n border-radius: 50%;\n transition: background-color 0.2s;\n}\n.autocomplete__chip-remove.sc-xplor-autocomplete:hover:not(:disabled) {\n background-color: rgba(25, 118, 210, 0.1);\n}\n.autocomplete__chip-remove.sc-xplor-autocomplete:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.autocomplete__input.sc-xplor-autocomplete {\n flex: 1;\n min-width: 120px;\n border: none;\n outline: none;\n font-family: inherit;\n font-size: 1rem;\n padding: 0.25rem;\n background: transparent;\n color: #212121;\n}\n.autocomplete__input.sc-xplor-autocomplete::placeholder {\n color: #9e9e9e;\n}\n.autocomplete__input.sc-xplor-autocomplete:disabled {\n cursor: not-allowed;\n}\n.autocomplete__input[readonly].sc-xplor-autocomplete {\n cursor: default;\n}\n\n.autocomplete__actions.sc-xplor-autocomplete {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n flex-shrink: 0;\n}\n\n.autocomplete__clear.sc-xplor-autocomplete {\n background: none;\n border: none;\n font-size: 1.25rem;\n line-height: 1;\n cursor: pointer;\n padding: 0;\n width: 1.5rem;\n height: 1.5rem;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #757575;\n border-radius: 50%;\n transition: background-color 0.2s;\n}\n.autocomplete__clear.sc-xplor-autocomplete:hover {\n background-color: #f5f5f5;\n color: #212121;\n}\n\n.autocomplete__icon.sc-xplor-autocomplete {\n font-size: 0.75rem;\n color: #757575;\n pointer-events: none;\n transition: transform 0.2s;\n}\n.autocomplete--open.sc-xplor-autocomplete .autocomplete__icon.sc-xplor-autocomplete {\n transform: rotate(180deg);\n}\n\n.autocomplete__dropdown.sc-xplor-autocomplete {\n position: absolute;\n top: calc(100% + 4px);\n left: 0;\n right: 0;\n max-height: 300px;\n overflow-y: auto;\n background-color: #fff;\n border: 1px solid #e0e0e0;\n border-radius: 4px;\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);\n z-index: 1000;\n}\n\n.autocomplete__item.sc-xplor-autocomplete {\n padding: 0.75rem 1rem;\n cursor: pointer;\n transition: background-color 0.2s;\n color: #212121;\n}\n.autocomplete__item.sc-xplor-autocomplete:hover:not(.autocomplete__item--disabled) {\n background-color: #f5f5f5;\n}\n.autocomplete__item--highlighted.sc-xplor-autocomplete {\n background-color: #e3f2fd;\n}\n.autocomplete__item--selected.sc-xplor-autocomplete {\n background-color: #1976d2;\n color: #fff;\n}\n.autocomplete__item--selected.sc-xplor-autocomplete:hover {\n background-color: #1565c0;\n}\n.autocomplete__item--disabled.sc-xplor-autocomplete {\n opacity: 0.5;\n cursor: not-allowed;\n}\n\n.autocomplete__no-results.sc-xplor-autocomplete {\n padding: 1rem;\n text-align: center;\n color: #757575;\n font-size: 0.875rem;\n}";
4
+
5
+ const XplorAutocomplete$1 = /*@__PURE__*/ proxyCustomElement(class XplorAutocomplete extends H {
6
+ constructor() {
7
+ super();
8
+ this.__registerHost();
9
+ this.xplorChange = createEvent(this, "xplorChange");
10
+ this.xplorSelect = createEvent(this, "xplorSelect");
11
+ this.xplorClear = createEvent(this, "xplorClear");
12
+ this.xplorSearch = createEvent(this, "xplorSearch");
13
+ /**
14
+ * Array of items to display in the dropdown
15
+ */
16
+ this.items = [];
17
+ /**
18
+ * Selected value
19
+ */
20
+ this.value = null;
21
+ /**
22
+ * Placeholder text
23
+ */
24
+ this.placeholder = 'Search...';
25
+ /**
26
+ * Disable the autocomplete
27
+ */
28
+ this.disabled = false;
29
+ /**
30
+ * Make the autocomplete readonly
31
+ */
32
+ this.readonly = false;
33
+ /**
34
+ * Clear button
35
+ */
36
+ this.clearable = false;
37
+ /**
38
+ * Allow multiple selection
39
+ */
40
+ this.multiple = false;
41
+ /**
42
+ * Minimum characters to trigger search
43
+ */
44
+ this.minSearchLength = 0;
45
+ /**
46
+ * Key to extract value from item objects
47
+ */
48
+ this.itemValue = 'value';
49
+ /**
50
+ * Key to extract display text from item objects
51
+ */
52
+ this.itemText = 'label';
53
+ /**
54
+ * Max width of the dropdown menu
55
+ */
56
+ this.menuMaxWidth = '100%';
57
+ this.isOpen = false;
58
+ this.searchQuery = '';
59
+ this.filteredItems = [];
60
+ this.selectedItems = [];
61
+ this.highlightedIndex = -1;
62
+ this.handleInputFocus = () => {
63
+ if (this.disabled || this.readonly)
64
+ return;
65
+ this.isOpen = true;
66
+ this.highlightedIndex = -1;
67
+ };
68
+ this.handleInputChange = (event) => {
69
+ const input = event.target;
70
+ this.searchQuery = input.value;
71
+ this.filterItems();
72
+ this.isOpen = true;
73
+ this.highlightedIndex = -1;
74
+ this.xplorSearch.emit(this.searchQuery);
75
+ if (!this.multiple && this.searchQuery === '') {
76
+ this.value = null;
77
+ this.xplorChange.emit(null);
78
+ }
79
+ };
80
+ this.handleInputKeyDown = (event) => {
81
+ var _a;
82
+ if (this.disabled || this.readonly)
83
+ return;
84
+ switch (event.key) {
85
+ case 'ArrowDown':
86
+ event.preventDefault();
87
+ this.isOpen = true;
88
+ this.highlightedIndex = Math.min(this.highlightedIndex + 1, this.filteredItems.length - 1);
89
+ this.scrollToHighlighted();
90
+ break;
91
+ case 'ArrowUp':
92
+ event.preventDefault();
93
+ this.highlightedIndex = Math.max(this.highlightedIndex - 1, -1);
94
+ this.scrollToHighlighted();
95
+ break;
96
+ case 'Enter':
97
+ event.preventDefault();
98
+ if (this.highlightedIndex >= 0 && this.highlightedIndex < this.filteredItems.length) {
99
+ this.selectItem(this.filteredItems[this.highlightedIndex]);
100
+ }
101
+ break;
102
+ case 'Escape':
103
+ event.preventDefault();
104
+ this.isOpen = false;
105
+ (_a = this.inputEl) === null || _a === void 0 ? void 0 : _a.blur();
106
+ break;
107
+ case 'Backspace':
108
+ if (this.multiple && this.searchQuery === '' && this.selectedItems.length > 0) {
109
+ event.preventDefault();
110
+ this.removeItem(this.selectedItems[this.selectedItems.length - 1]);
111
+ }
112
+ break;
113
+ }
114
+ };
115
+ this.handleClear = () => {
116
+ var _a;
117
+ this.value = this.multiple ? [] : null;
118
+ this.selectedItems = [];
119
+ this.searchQuery = '';
120
+ this.filterItems();
121
+ this.xplorChange.emit(this.value);
122
+ this.xplorClear.emit();
123
+ (_a = this.inputEl) === null || _a === void 0 ? void 0 : _a.focus();
124
+ };
125
+ }
126
+ getItemValue(item) {
127
+ return item[this.itemValue] !== undefined ? item[this.itemValue] : item.value;
128
+ }
129
+ getItemText(item) {
130
+ return item[this.itemText] !== undefined ? String(item[this.itemText]) : String(item.label);
131
+ }
132
+ componentWillLoad() {
133
+ this.filterItems();
134
+ if (this.value !== null) {
135
+ if (this.multiple && Array.isArray(this.value)) {
136
+ this.selectedItems = this.value;
137
+ }
138
+ else if (!this.multiple) {
139
+ const selectedItem = this.items.find(item => this.getItemValue(item) === this.value);
140
+ if (selectedItem) {
141
+ this.searchQuery = this.getItemText(selectedItem);
142
+ }
143
+ }
144
+ }
145
+ }
146
+ handleDocumentClick(event) {
147
+ const target = event.target;
148
+ if (!this.el.contains(target)) {
149
+ this.isOpen = false;
150
+ }
151
+ }
152
+ filterItems() {
153
+ if (this.searchQuery.length < this.minSearchLength) {
154
+ this.filteredItems = this.items;
155
+ return;
156
+ }
157
+ const query = this.searchQuery.toLowerCase();
158
+ this.filteredItems = this.items.filter(item => this.getItemText(item).toLowerCase().includes(query));
159
+ }
160
+ scrollToHighlighted() {
161
+ if (this.dropdownEl && this.highlightedIndex >= 0) {
162
+ const highlightedEl = this.dropdownEl.querySelector(`[data-index="${this.highlightedIndex}"]`);
163
+ if (highlightedEl) {
164
+ highlightedEl.scrollIntoView({ block: 'nearest' });
165
+ }
166
+ }
167
+ }
168
+ selectItem(item) {
169
+ var _a;
170
+ if (item.disabled)
171
+ return;
172
+ const itemVal = this.getItemValue(item);
173
+ if (this.multiple) {
174
+ if (!this.selectedItems.includes(itemVal)) {
175
+ this.selectedItems = [...this.selectedItems, itemVal];
176
+ this.value = this.selectedItems;
177
+ this.xplorChange.emit(this.value);
178
+ }
179
+ this.searchQuery = '';
180
+ this.filterItems();
181
+ }
182
+ else {
183
+ this.value = itemVal;
184
+ this.searchQuery = this.getItemText(item);
185
+ this.isOpen = false;
186
+ this.xplorChange.emit(this.value);
187
+ }
188
+ this.xplorSelect.emit(item);
189
+ (_a = this.inputEl) === null || _a === void 0 ? void 0 : _a.focus();
190
+ }
191
+ removeItem(value) {
192
+ this.selectedItems = this.selectedItems.filter(v => v !== value);
193
+ this.value = this.selectedItems;
194
+ this.xplorChange.emit(this.value);
195
+ }
196
+ getSelectedItemLabel(value) {
197
+ const item = this.items.find(i => this.getItemValue(i) === value);
198
+ return item ? this.getItemText(item) : value;
199
+ }
200
+ findItemByValue(value) {
201
+ return this.items.find(i => this.getItemValue(i) === value);
202
+ }
203
+ render() {
204
+ const hasValue = this.multiple ? this.selectedItems.length > 0 : this.value !== null && this.searchQuery !== '';
205
+ return (h(Host, { key: '3f88b352e99fbaf327995f2392b22a589a838c72' }, h("div", { key: '358c6a0fbae370f7225c17f9b859edc0d5a1cfc5', class: {
206
+ 'autocomplete': true,
207
+ 'autocomplete--disabled': this.disabled,
208
+ 'autocomplete--readonly': this.readonly,
209
+ 'autocomplete--open': this.isOpen,
210
+ } }, this.label && (h("label", { key: 'e07d2fc33354bef628b7361eeb924cf00eafb989', class: "autocomplete__label" }, this.label)), h("div", { key: '455efa54f13e4aa22d62df4f30dbfb42540d4baf', class: "autocomplete__input-wrapper" }, this.multiple && this.selectedItems.length > 0 && (h("div", { key: 'e1f68cc007e84feb11f01bfcde8294a3b3a52122', class: "autocomplete__chips" }, this.selectedItems.map(value => {
211
+ const item = this.findItemByValue(value);
212
+ return (h("div", { class: "autocomplete__chip" }, h("span", { class: "autocomplete__chip-label" }, this.renderSelection && item ? this.renderSelection(item) : this.getSelectedItemLabel(value)), h("button", { type: "button", class: "autocomplete__chip-remove", onClick: () => this.removeItem(value), disabled: this.disabled || this.readonly }, "\u00D7")));
213
+ }))), h("input", { key: 'bfe3af918668f6003e11b3e331d7875773c31848', ref: (el) => (this.inputEl = el), type: "text", class: "autocomplete__input", placeholder: this.placeholder, value: this.searchQuery, onFocus: this.handleInputFocus, onInput: this.handleInputChange, onKeyDown: this.handleInputKeyDown, disabled: this.disabled, readonly: this.readonly, autocomplete: "off" }), h("div", { key: '6198fb2b029bd365c9929bdfe0b82815b3dd6bf2', class: "autocomplete__actions" }, this.clearable && hasValue && !this.disabled && !this.readonly && (h("button", { key: 'e997555b393f60ae3f4affd803a92ba39e95b48b', type: "button", class: "autocomplete__clear", onClick: this.handleClear, "aria-label": "Clear" }, "\u00D7")), h("span", { key: '0eab80a3ce9e55e403758ba0a53e89e7c3d3a36e', class: "autocomplete__icon" }, "\u25BC"))), this.isOpen && this.filteredItems.length > 0 && (h("div", { key: '37a77dc04d78b8c8cdc4decedf65f0adda67f626', class: "autocomplete__dropdown", ref: (el) => (this.dropdownEl = el), style: { maxWidth: this.menuMaxWidth } }, this.filteredItems.map((item, index) => {
214
+ const itemVal = this.getItemValue(item);
215
+ return (h("div", { key: itemVal, "data-index": index, class: {
216
+ 'autocomplete__item': true,
217
+ 'autocomplete__item--highlighted': index === this.highlightedIndex,
218
+ 'autocomplete__item--selected': this.multiple
219
+ ? this.selectedItems.includes(itemVal)
220
+ : this.value === itemVal,
221
+ 'autocomplete__item--disabled': item.disabled,
222
+ }, onClick: () => this.selectItem(item) }, this.renderItem ? this.renderItem(item) : this.getItemText(item)));
223
+ }))), this.isOpen && this.filteredItems.length === 0 && (h("div", { key: '0f27440009a83374a615acf39b400181f4c7189f', class: "autocomplete__dropdown", style: { maxWidth: this.menuMaxWidth } }, h("div", { key: '634fb46e7f539c1cddfa11f2a30f80e34a684913', class: "autocomplete__no-results" }, "No results found"))))));
224
+ }
225
+ get el() { return this; }
226
+ static get style() { return xplorAutocompleteCss; }
227
+ }, [2, "xplor-autocomplete", {
228
+ "items": [16],
229
+ "value": [1032],
230
+ "placeholder": [1],
231
+ "label": [1],
232
+ "disabled": [4],
233
+ "readonly": [4],
234
+ "clearable": [4],
235
+ "multiple": [4],
236
+ "minSearchLength": [2, "min-search-length"],
237
+ "itemValue": [1, "item-value"],
238
+ "itemText": [1, "item-text"],
239
+ "menuMaxWidth": [1, "menu-max-width"],
240
+ "renderItem": [16, "render-item"],
241
+ "renderSelection": [16, "render-selection"],
242
+ "isOpen": [32],
243
+ "searchQuery": [32],
244
+ "filteredItems": [32],
245
+ "selectedItems": [32],
246
+ "highlightedIndex": [32]
247
+ }, [[4, "click", "handleDocumentClick"]]]);
248
+ function defineCustomElement$1() {
249
+ if (typeof customElements === "undefined") {
250
+ return;
251
+ }
252
+ const components = ["xplor-autocomplete"];
253
+ components.forEach(tagName => { switch (tagName) {
254
+ case "xplor-autocomplete":
255
+ if (!customElements.get(tagName)) {
256
+ customElements.define(tagName, XplorAutocomplete$1);
257
+ }
258
+ break;
259
+ } });
260
+ }
261
+ defineCustomElement$1();
262
+
263
+ const XplorAutocomplete = XplorAutocomplete$1;
264
+ const defineCustomElement = defineCustomElement$1;
265
+
266
+ export { XplorAutocomplete, defineCustomElement };
267
+ //# sourceMappingURL=xplor-autocomplete.js.map
268
+
269
+ //# sourceMappingURL=xplor-autocomplete.js.map
@@ -0,0 +1 @@
1
+ {"file":"xplor-autocomplete.js","mappings":"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","names":["XplorAutocomplete","__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/xplor-autocomplete/xplor-autocomplete.scss?tag=xplor-autocomplete&encapsulation=scoped","src/components/xplor-autocomplete/xplor-autocomplete.tsx"],"sourcesContent":[":host {\n display: block;\n width: 100%;\n}\n\n.autocomplete {\n position: relative;\n width: 100%;\n\n &--disabled {\n opacity: 0.6;\n cursor: not-allowed;\n }\n\n &--readonly {\n .autocomplete__input {\n background-color: #f5f5f5;\n }\n }\n}\n\n.autocomplete__label {\n display: block;\n font-size: 0.875rem;\n font-weight: 500;\n color: #424242;\n margin-bottom: 0.5rem;\n}\n\n.autocomplete__input-wrapper {\n position: relative;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n gap: 0.5rem;\n border: 1px solid #bdbdbd;\n border-radius: 4px;\n padding: 0.5rem;\n background-color: #fff;\n transition: border-color 0.2s, box-shadow 0.2s;\n\n &:focus-within {\n border-color: #1976d2;\n box-shadow: 0 0 0 3px rgba(25, 118, 210, 0.1);\n }\n}\n\n.autocomplete__chips {\n display: flex;\n flex-wrap: wrap;\n gap: 0.5rem;\n}\n\n.autocomplete__chip {\n display: inline-flex;\n align-items: center;\n gap: 0.25rem;\n padding: 0.25rem 0.5rem;\n background-color: #e3f2fd;\n border-radius: 16px;\n font-size: 0.875rem;\n color: #1976d2;\n}\n\n.autocomplete__chip-label {\n line-height: 1;\n}\n\n.autocomplete__chip-remove {\n background: none;\n border: none;\n font-size: 1.25rem;\n line-height: 1;\n cursor: pointer;\n padding: 0;\n width: 1rem;\n height: 1rem;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #1976d2;\n border-radius: 50%;\n transition: background-color 0.2s;\n\n &:hover:not(:disabled) {\n background-color: rgba(25, 118, 210, 0.1);\n }\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n}\n\n.autocomplete__input {\n flex: 1;\n min-width: 120px;\n border: none;\n outline: none;\n font-family: inherit;\n font-size: 1rem;\n padding: 0.25rem;\n background: transparent;\n color: #212121;\n\n &::placeholder {\n color: #9e9e9e;\n }\n\n &:disabled {\n cursor: not-allowed;\n }\n\n &[readonly] {\n cursor: default;\n }\n}\n\n.autocomplete__actions {\n display: flex;\n align-items: center;\n gap: 0.25rem;\n flex-shrink: 0;\n}\n\n.autocomplete__clear {\n background: none;\n border: none;\n font-size: 1.25rem;\n line-height: 1;\n cursor: pointer;\n padding: 0;\n width: 1.5rem;\n height: 1.5rem;\n display: flex;\n align-items: center;\n justify-content: center;\n color: #757575;\n border-radius: 50%;\n transition: background-color 0.2s;\n\n &:hover {\n background-color: #f5f5f5;\n color: #212121;\n }\n}\n\n.autocomplete__icon {\n font-size: 0.75rem;\n color: #757575;\n pointer-events: none;\n transition: transform 0.2s;\n\n .autocomplete--open & {\n transform: rotate(180deg);\n }\n}\n\n.autocomplete__dropdown {\n position: absolute;\n top: calc(100% + 4px);\n left: 0;\n right: 0;\n max-height: 300px;\n overflow-y: auto;\n background-color: #fff;\n border: 1px solid #e0e0e0;\n border-radius: 4px;\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);\n z-index: 1000;\n}\n\n.autocomplete__item {\n padding: 0.75rem 1rem;\n cursor: pointer;\n transition: background-color 0.2s;\n color: #212121;\n\n &:hover:not(&--disabled) {\n background-color: #f5f5f5;\n }\n\n &--highlighted {\n background-color: #e3f2fd;\n }\n\n &--selected {\n background-color: #1976d2;\n color: #fff;\n\n &:hover {\n background-color: #1565c0;\n }\n }\n\n &--disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n}\n\n.autocomplete__no-results {\n padding: 1rem;\n text-align: center;\n color: #757575;\n font-size: 0.875rem;\n}","import { Component, Host, h, Prop, State, Event, EventEmitter, Element, Listen } from '@stencil/core';\n\nexport interface AutocompleteItem {\n label: string;\n value: any;\n disabled?: boolean;\n [key: string]: any;\n}\n\n@Component({\n tag: 'xplor-autocomplete',\n styleUrl: 'xplor-autocomplete.scss',\n scoped: true,\n})\nexport class XplorAutocomplete {\n @Element() el: HTMLElement;\n\n /**\n * Array of items to display in the dropdown\n */\n @Prop() items: AutocompleteItem[] = [];\n\n /**\n * Selected value\n */\n @Prop({ mutable: true }) value: any = null;\n\n /**\n * Placeholder text\n */\n @Prop() placeholder: string = 'Search...';\n\n /**\n * Label for the input\n */\n @Prop() label: string;\n\n /**\n * Disable the autocomplete\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Make the autocomplete readonly\n */\n @Prop() readonly: boolean = false;\n\n /**\n * Clear button\n */\n @Prop() clearable: boolean = false;\n\n /**\n * Allow multiple selection\n */\n @Prop() multiple: boolean = false;\n\n /**\n * Minimum characters to trigger search\n */\n @Prop() minSearchLength: number = 0;\n\n /**\n * Key to extract value from item objects\n */\n @Prop() itemValue: string = 'value';\n\n /**\n * Key to extract display text from item objects\n */\n @Prop() itemText: string = 'label';\n\n /**\n * Max width of the dropdown menu\n */\n @Prop() menuMaxWidth: string = '100%';\n\n /**\n * Custom render function for dropdown items\n */\n @Prop() renderItem: (item: AutocompleteItem) => any;\n\n /**\n * Custom render function for selected items (chips)\n */\n @Prop() renderSelection: (item: AutocompleteItem) => any;\n\n @State() isOpen: boolean = false;\n @State() searchQuery: string = '';\n @State() filteredItems: AutocompleteItem[] = [];\n @State() selectedItems: any[] = [];\n @State() highlightedIndex: number = -1;\n\n @Event() xplorChange: EventEmitter<any>;\n @Event() xplorSelect: EventEmitter<AutocompleteItem>;\n @Event() xplorClear: EventEmitter<void>;\n @Event() xplorSearch: EventEmitter<string>;\n\n private inputEl: HTMLInputElement;\n private dropdownEl: HTMLDivElement;\n\n private getItemValue(item: AutocompleteItem): any {\n return item[this.itemValue] !== undefined ? item[this.itemValue] : item.value;\n }\n\n private getItemText(item: AutocompleteItem): string {\n return item[this.itemText] !== undefined ? String(item[this.itemText]) : String(item.label);\n }\n\n componentWillLoad() {\n this.filterItems();\n if (this.value !== null) {\n if (this.multiple && Array.isArray(this.value)) {\n this.selectedItems = this.value;\n } else if (!this.multiple) {\n const selectedItem = this.items.find(item => this.getItemValue(item) === this.value);\n if (selectedItem) {\n this.searchQuery = this.getItemText(selectedItem);\n }\n }\n }\n }\n\n @Listen('click', { target: 'document' })\n handleDocumentClick(event: MouseEvent) {\n const target = event.target as Node;\n if (!this.el.contains(target)) {\n this.isOpen = false;\n }\n }\n\n private filterItems() {\n if (this.searchQuery.length < this.minSearchLength) {\n this.filteredItems = this.items;\n return;\n }\n\n const query = this.searchQuery.toLowerCase();\n this.filteredItems = this.items.filter(item =>\n this.getItemText(item).toLowerCase().includes(query)\n );\n }\n\n private handleInputFocus = () => {\n if (this.disabled || this.readonly) return;\n this.isOpen = true;\n this.highlightedIndex = -1;\n };\n\n private handleInputChange = (event: Event) => {\n const input = event.target as HTMLInputElement;\n this.searchQuery = input.value;\n this.filterItems();\n this.isOpen = true;\n this.highlightedIndex = -1;\n this.xplorSearch.emit(this.searchQuery);\n\n if (!this.multiple && this.searchQuery === '') {\n this.value = null;\n this.xplorChange.emit(null);\n }\n };\n\n private handleInputKeyDown = (event: KeyboardEvent) => {\n if (this.disabled || this.readonly) return;\n\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n this.isOpen = true;\n this.highlightedIndex = Math.min(this.highlightedIndex + 1, this.filteredItems.length - 1);\n this.scrollToHighlighted();\n break;\n\n case 'ArrowUp':\n event.preventDefault();\n this.highlightedIndex = Math.max(this.highlightedIndex - 1, -1);\n this.scrollToHighlighted();\n break;\n\n case 'Enter':\n event.preventDefault();\n if (this.highlightedIndex >= 0 && this.highlightedIndex < this.filteredItems.length) {\n this.selectItem(this.filteredItems[this.highlightedIndex]);\n }\n break;\n\n case 'Escape':\n event.preventDefault();\n this.isOpen = false;\n this.inputEl?.blur();\n break;\n\n case 'Backspace':\n if (this.multiple && this.searchQuery === '' && this.selectedItems.length > 0) {\n event.preventDefault();\n this.removeItem(this.selectedItems[this.selectedItems.length - 1]);\n }\n break;\n }\n };\n\n private scrollToHighlighted() {\n if (this.dropdownEl && this.highlightedIndex >= 0) {\n const highlightedEl = this.dropdownEl.querySelector(`[data-index=\"${this.highlightedIndex}\"]`) as HTMLElement;\n if (highlightedEl) {\n highlightedEl.scrollIntoView({ block: 'nearest' });\n }\n }\n }\n\n private selectItem(item: AutocompleteItem) {\n if (item.disabled) return;\n\n const itemVal = this.getItemValue(item);\n\n if (this.multiple) {\n if (!this.selectedItems.includes(itemVal)) {\n this.selectedItems = [...this.selectedItems, itemVal];\n this.value = this.selectedItems;\n this.xplorChange.emit(this.value);\n }\n this.searchQuery = '';\n this.filterItems();\n } else {\n this.value = itemVal;\n this.searchQuery = this.getItemText(item);\n this.isOpen = false;\n this.xplorChange.emit(this.value);\n }\n\n this.xplorSelect.emit(item);\n this.inputEl?.focus();\n }\n\n private removeItem(value: any) {\n this.selectedItems = this.selectedItems.filter(v => v !== value);\n this.value = this.selectedItems;\n this.xplorChange.emit(this.value);\n }\n\n private handleClear = () => {\n this.value = this.multiple ? [] : null;\n this.selectedItems = [];\n this.searchQuery = '';\n this.filterItems();\n this.xplorChange.emit(this.value);\n this.xplorClear.emit();\n this.inputEl?.focus();\n };\n\n private getSelectedItemLabel(value: any): string {\n const item = this.items.find(i => this.getItemValue(i) === value);\n return item ? this.getItemText(item) : value;\n }\n\n private findItemByValue(value: any): AutocompleteItem | undefined {\n return this.items.find(i => this.getItemValue(i) === value);\n }\n\n render() {\n const hasValue = this.multiple ? this.selectedItems.length > 0 : this.value !== null && this.searchQuery !== '';\n\n return (\n <Host>\n <div\n class={{\n 'autocomplete': true,\n 'autocomplete--disabled': this.disabled,\n 'autocomplete--readonly': this.readonly,\n 'autocomplete--open': this.isOpen,\n }}\n >\n {this.label && (\n <label class=\"autocomplete__label\">{this.label}</label>\n )}\n\n <div class=\"autocomplete__input-wrapper\">\n {this.multiple && this.selectedItems.length > 0 && (\n <div class=\"autocomplete__chips\">\n {this.selectedItems.map(value => {\n const item = this.findItemByValue(value);\n return (\n <div class=\"autocomplete__chip\">\n <span class=\"autocomplete__chip-label\">\n {this.renderSelection && item ? this.renderSelection(item) : this.getSelectedItemLabel(value)}\n </span>\n <button\n type=\"button\"\n class=\"autocomplete__chip-remove\"\n onClick={() => this.removeItem(value)}\n disabled={this.disabled || this.readonly}\n >\n ×\n </button>\n </div>\n );\n })}\n </div>\n )}\n\n <input\n ref={(el) => (this.inputEl = el)}\n type=\"text\"\n class=\"autocomplete__input\"\n placeholder={this.placeholder}\n value={this.searchQuery}\n onFocus={this.handleInputFocus}\n onInput={this.handleInputChange}\n onKeyDown={this.handleInputKeyDown}\n disabled={this.disabled}\n readonly={this.readonly}\n autocomplete=\"off\"\n />\n\n <div class=\"autocomplete__actions\">\n {this.clearable && hasValue && !this.disabled && !this.readonly && (\n <button\n type=\"button\"\n class=\"autocomplete__clear\"\n onClick={this.handleClear}\n aria-label=\"Clear\"\n >\n ×\n </button>\n )}\n <span class=\"autocomplete__icon\">▼</span>\n </div>\n </div>\n\n {this.isOpen && this.filteredItems.length > 0 && (\n <div class=\"autocomplete__dropdown\" ref={(el) => (this.dropdownEl = el)} style={{ maxWidth: this.menuMaxWidth }}>\n {this.filteredItems.map((item, index) => {\n const itemVal = this.getItemValue(item);\n return (\n <div\n key={itemVal}\n data-index={index}\n class={{\n 'autocomplete__item': true,\n 'autocomplete__item--highlighted': index === this.highlightedIndex,\n 'autocomplete__item--selected': this.multiple\n ? this.selectedItems.includes(itemVal)\n : this.value === itemVal,\n 'autocomplete__item--disabled': item.disabled,\n }}\n onClick={() => this.selectItem(item)}\n >\n {this.renderItem ? this.renderItem(item) : this.getItemText(item)}\n </div>\n );\n })}\n </div>\n )}\n\n {this.isOpen && this.filteredItems.length === 0 && (\n <div class=\"autocomplete__dropdown\" style={{ maxWidth: this.menuMaxWidth }}>\n <div class=\"autocomplete__no-results\">No results found</div>\n </div>\n )}\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface XplorAvatarAndName extends Components.XplorAvatarAndName, HTMLElement {}
4
+ export const XplorAvatarAndName: {
5
+ prototype: XplorAvatarAndName;
6
+ new (): XplorAvatarAndName;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,49 @@
1
+ import { p as proxyCustomElement, H, h, a as Host } from './index.js';
2
+ import { d as defineCustomElement$2 } from './p-BHdeGt6k.js';
3
+
4
+ const xplorAvatarAndNameCss = "@tailwind base;\n@tailwind components;\n@tailwind utilities;\n@layer base {\n \n :root {\n --color-primary: #db3b03;\n --color-primary-50: rgba(255, 152, 0, 1);\n --color-secondary: rgb(0, 119, 107);\n --color-secondary-50: rgba(1, 163, 157, 1);\n --color-tertiary: rgb(128, 104, 186);\n --color-tertiary: rgb(223, 242, 241);\n --color-white: white;\n --color-emphasis: rgb(8, 8, 9);\n --color-supergiant: rgb(213, 66, 99);\n --color-orange: rgb(250, 200, 127);\n --color-buttons: #fbbc05;\n --color-typography: #ea4335;\n --background: 20 66% 99%;\n --foreground: 20 51% 4%;\n --muted: 20 25% 86%;\n --muted-foreground: 20 7% 25%;\n --popover: 20 66% 98%;\n --popover-foreground: 20 51% 3%;\n --card: 20 66% 98%;\n --card-foreground: 20 51% 3%;\n --border: 20 15% 94%;\n --input: 20 15% 94%;\n --primary: 20 48% 72%;\n --primary-foreground: 20 48% 12%;\n --secondary: 20 12% 92%;\n --secondary-foreground: 20 12% 32%;\n --accent: 20 12% 92%;\n --accent-foreground: 20 12% 32%;\n --destructive: 11 80% 22%;\n --destructive-foreground: 11 80% 82%;\n --ring: 20 48% 72%;\n --radius: 0.5rem;\n --chart-1: 12 76% 61%;\n --chart-2: 173 58% 39%;\n --chart-3: 197 37% 24%;\n --chart-4: 43 74% 66%;\n --chart-5: 27 87% 67%;\n }\n .dark {\n --background: 253 43% 3%;\n --foreground: 253 31% 98%;\n --muted: 253 7% 13%;\n --muted-foreground: 253 13% 63%;\n --popover: 253 43% 3%;\n --popover-foreground: 253 31% 98%;\n --card: 253 43% 4%;\n --card-foreground: 253 31% 99%;\n --border: 215 27.9% 16.9%;\n --input: 215 27.9% 16.9%;\n --primary: 253 91% 58%;\n --primary-foreground: 253 91% 98%;\n --secondary: 253 7% 9%;\n --secondary-foreground: 253 7% 69%;\n --accent: 253 13% 14%;\n --accent-foreground: 253 13% 74%;\n --destructive: 339.2 90.36% 51.18%;\n --destructive-foreground: 0 0% 100%;\n --ring: 253 91% 58%;\n --chart-1: 220 70% 50%;\n --chart-2: 160 60% 45%;\n --chart-3: 30 80% 55%;\n --chart-4: 280 65% 60%;\n --chart-5: 340 75% 55%;\n }\n}\n@layer base {\n * {\n @apply border-border;\n }\n body {\n @apply box-border bg-background text-foreground;\n }\n}\n@layer utilities {\n .min-h-screen {\n min-height: 100vh;\n \n min-height: 100dvh;\n }\n .h-screen {\n height: 100vh;\n \n height: 100dvh;\n }\n}\n@tailwind base;\n@tailwind components;\n@tailwind utilities;\n@layer components {\n .glass {\n border: none;\n backdrop-filter: blur(var(--glass-blur, 40px));\n background-color: transparent;\n background-image: linear-gradient(135deg, rgb(255, 255, 255, var(--glass-opacity, 30%)), transparent), linear-gradient(var(--glass-reflex-degree, 100deg), rgb(255, 255, 255, var(--glass-reflex-opacity, 10%)) 25%, transparent 0);\n box-shadow: 0 0 0 1px rgb(255, 255, 255, var(--glass-border-opacity, 10%)) inset, 0 0 0 2px rgba(0, 0, 0, 0.05);\n text-shadow: 0 1px rgb(0, 0, 0, var(--glass-text-shadow-opacity, 5%));\n }\n}\n.tox.tox-tinymce.sc-xplor-avatar-and-name {\n width: 50% !important;\n height: 400px !important;\n display: inline-flex;\n}\n\n\n@media only screen and (min-width: 600px) {\n .tox.tox-tinymce.sc-xplor-avatar-and-name {\n width: 600px !important;\n }\n}\nh1.sc-xplor-avatar-and-name {\n color: var(--color-primary);\n \n font-family: Inter;\n font-size: 48px;\n font-style: normal;\n font-weight: 400;\n line-height: 56px; \n}\n\nh2.sc-xplor-avatar-and-name {\n color: var(--grey-1100252525, #252525);\n \n font-family: Inter;\n font-size: 32px;\n font-style: normal;\n font-weight: 600;\n line-height: 38px; \n letter-spacing: 0.25px;\n}\n\nh3.sc-xplor-avatar-and-name {\n color: var(--grey-1100252525, #252525);\n \n font-family: Inter;\n font-size: 24px;\n font-style: normal;\n font-weight: 400;\n line-height: 32px; \n}\n\n.overline.sc-xplor-avatar-and-name {\n color: var(--grey-1100252525, #252525);\n \n font-family: Inter;\n font-size: 12px;\n font-style: normal;\n font-weight: 500;\n line-height: 16px; \n letter-spacing: 3.2px;\n text-transform: uppercase;\n}\n\nol.sc-xplor-avatar-and-name, ul.sc-xplor-avatar-and-name {\n list-style: none;\n margin: 1rem;\n padding: 0;\n}\nol.sc-xplor-avatar-and-name li.sc-xplor-avatar-and-name, ul.sc-xplor-avatar-and-name li.sc-xplor-avatar-and-name {\n margin: 1rem;\n padding: 0;\n}\nol.mdc-list.sc-xplor-avatar-and-name, ul.mdc-list.sc-xplor-avatar-and-name {\n list-style-type: none;\n list-style: none;\n}\nol.mdc-list.sc-xplor-avatar-and-name li.mdc-list-item.sc-xplor-avatar-and-name, ul.mdc-list.sc-xplor-avatar-and-name li.mdc-list-item.sc-xplor-avatar-and-name {\n list-style-type: none;\n list-style: none !important;\n}\n\n.orange-label.sc-xplor-avatar-and-name {\n color: var(--Orange-900-Primary, #db3b03);\n \n font-family: Inter;\n font-size: 12px;\n font-style: normal;\n font-weight: 400;\n line-height: 16px; \n letter-spacing: 0.4px;\n margin: 0px 0 -9px 16px;\n z-index: 1 !important;\n position: relative;\n width: fit-content;\n}\n.orange-label.grey-bg.sc-xplor-avatar-and-name {\n background-color: #fefcfb;\n}\n\n#spinnerLoader.sc-xplor-avatar-and-name {\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n background-color: #fff;\n padding: 20px;\n border-radius: 5px;\n box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.2);\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 100;\n pointer-events: none;\n}\n\n#textfield-Title-label.sc-xplor-avatar-and-name {\n background-color: white;\n}\n\n.mdc-ripple-upgraded.sc-xplor-avatar-and-name .mdc-text-field--outlined.sc-xplor-avatar-and-name .mdc-notched-outline__notch.sc-xplor-avatar-and-name {\n border: 0px solid transparent !important;\n border-bottom: 1px solid #db3b03 !important;\n padding: 0;\n height: 0;\n}\n\n.mdc-text-field--focused.sc-xplor-avatar-and-name .mdc-notched-outline__notch.sc-xplor-avatar-and-name {\n border: 0px solid transparent !important;\n border-bottom: 2px solid #db3b03 !important;\n}\n\n.mdc-text-field--outlined.sc-xplor-avatar-and-name .mdc-notched-outline.sc-xplor-avatar-and-name .mdc-notched-outline__notch.sc-xplor-avatar-and-name {\n max-width: calc(100% - max(12px, var(--mdc-shape-small, 4px)) * 2);\n border-top: transparent;\n}\n\n.generate-btn.sc-xplor-avatar-and-name {\n display: flex;\n height: 48px;\n padding: 12px 24px;\n justify-content: center;\n align-items: center;\n gap: 10px;\n border-radius: 16px;\n}\n.generate-btn.link.sc-xplor-avatar-and-name:hover {\n background-color: var(--Cyan-700-Secondary, #e27046);\n color: var(--Cyan-700-Secondary-Text, #fff);\n}\n\n.bg-green.sc-xplor-avatar-and-name {\n background: var(--Cyan-700-Secondary, #00776b);\n}\n\n.sc-xplor-avatar-and-name-h {\n display: inline-block;\n}\n\n.avatar-and-name.sc-xplor-avatar-and-name {\n display: inline-flex;\n align-items: center;\n gap: 0.75rem;\n}\n\n.avatar-and-name__text.sc-xplor-avatar-and-name {\n font-size: 0.875rem;\n font-weight: 500;\n color: #212121;\n line-height: 1.5;\n}";
5
+
6
+ const XplorAvatarAndName$1 = /*@__PURE__*/ proxyCustomElement(class XplorAvatarAndName extends H {
7
+ constructor() {
8
+ super();
9
+ this.__registerHost();
10
+ this.size = 'md';
11
+ }
12
+ render() {
13
+ return (h(Host, { key: 'adf60fff779f4cc4bf31c20468c6372c6cef675b' }, h("div", { key: '1c94683794ed122c7c1456e4abf7ae60f6458dd0', class: "avatar-and-name" }, h("xplor-avatar", { key: 'f37593d3b66ea539fefebadc9ff8e1657bd4a645', name: this.name, src: this.src, size: this.size, color: this.color, status: this.status }, !this.src && this.name && this.name.charAt(0).toUpperCase()), h("span", { key: '663d209d1a1fd4cf70198f1b4a08d71263b201d5', class: "avatar-and-name__text" }, h("slot", { key: '611eb31cc972f67f1a9d184eb844b4c2134f0f9f' }, this.name)))));
14
+ }
15
+ static get style() { return xplorAvatarAndNameCss; }
16
+ }, [6, "xplor-avatar-and-name", {
17
+ "name": [1],
18
+ "src": [1],
19
+ "size": [1],
20
+ "color": [1],
21
+ "status": [1]
22
+ }]);
23
+ function defineCustomElement$1() {
24
+ if (typeof customElements === "undefined") {
25
+ return;
26
+ }
27
+ const components = ["xplor-avatar-and-name", "xplor-avatar"];
28
+ components.forEach(tagName => { switch (tagName) {
29
+ case "xplor-avatar-and-name":
30
+ if (!customElements.get(tagName)) {
31
+ customElements.define(tagName, XplorAvatarAndName$1);
32
+ }
33
+ break;
34
+ case "xplor-avatar":
35
+ if (!customElements.get(tagName)) {
36
+ defineCustomElement$2();
37
+ }
38
+ break;
39
+ } });
40
+ }
41
+ defineCustomElement$1();
42
+
43
+ const XplorAvatarAndName = XplorAvatarAndName$1;
44
+ const defineCustomElement = defineCustomElement$1;
45
+
46
+ export { XplorAvatarAndName, defineCustomElement };
47
+ //# sourceMappingURL=xplor-avatar-and-name.js.map
48
+
49
+ //# sourceMappingURL=xplor-avatar-and-name.js.map
@@ -0,0 +1 @@
1
+ {"file":"xplor-avatar-and-name.js","mappings":";;;AAAA,MAAM,qBAAqB,GAAG,ggOAAggO;;MCOjhOA,oBAAkB,iBAAAC,kBAAA,CAAA,MAAA,kBAAA,SAAAC,CAAA,CAAA;AAL/B,IAAA,WAAA,GAAA;;;AAQY,QAAA,IAAI,CAAA,IAAA,GAAgB,IAAI;AAwBnC;IApBG,MAAM,GAAA;QACF,QACI,EAAC,IAAI,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EACD,CAAK,CAAA,KAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,iBAAiB,EAAA,EACxB,CACI,CAAA,cAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,GAAG,EAAE,IAAI,CAAC,GAAG,EACb,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,MAAM,EAAE,IAAI,CAAC,MAAM,EAElB,EAAA,CAAC,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CACjD,EACf,CAAM,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,KAAK,EAAC,uBAAuB,EAAA,EAC/B,CAAO,CAAA,MAAA,EAAA,EAAA,GAAA,EAAA,0CAAA,EAAA,EAAA,IAAI,CAAC,IAAI,CAAQ,CACrB,CACL,CACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","names":["XplorAvatarAndName","__stencil_proxyCustomElement","HTMLElement"],"sources":["src/components/xplor-avatar-and-name/xplor-avatar-and-name.scss?tag=xplor-avatar-and-name&encapsulation=scoped","src/components/xplor-avatar-and-name/xplor-avatar-and-name.tsx"],"sourcesContent":[":host {\n display: inline-block;\n}\n\n.avatar-and-name {\n display: inline-flex;\n align-items: center;\n gap: 0.75rem;\n}\n\n.avatar-and-name__text {\n font-size: 0.875rem;\n font-weight: 500;\n color: #212121;\n line-height: 1.5;\n}","import { Component, Host, h, Prop } from '@stencil/core';\n\n@Component({\n tag: 'xplor-avatar-and-name',\n styleUrl: 'xplor-avatar-and-name.scss',\n scoped: true,\n})\nexport class XplorAvatarAndName {\n @Prop() name: string;\n @Prop() src: string;\n @Prop() size: 'sm' | 'md' = 'md';\n @Prop() color?: 'green' | 'yellow' | 'pink' | 'primary' | 'secondary';\n @Prop() status?: 'active' | 'warning' | 'inactive';\n\n render() {\n return (\n <Host>\n <div class=\"avatar-and-name\">\n <xplor-avatar\n name={this.name}\n src={this.src}\n size={this.size}\n color={this.color}\n status={this.status}\n >\n {!this.src && this.name && this.name.charAt(0).toUpperCase()}\n </xplor-avatar>\n <span class=\"avatar-and-name__text\">\n <slot>{this.name}</slot>\n </span>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
@@ -0,0 +1,11 @@
1
+ import type { Components, JSX } from "../types/components";
2
+
3
+ interface XplorAvatar extends Components.XplorAvatar, HTMLElement {}
4
+ export const XplorAvatar: {
5
+ prototype: XplorAvatar;
6
+ new (): XplorAvatar;
7
+ };
8
+ /**
9
+ * Used to define this component and all nested components recursively.
10
+ */
11
+ export const defineCustomElement: () => void;
@@ -0,0 +1,9 @@
1
+ import { X as XplorAvatar$1, d as defineCustomElement$1 } from './p-BHdeGt6k.js';
2
+
3
+ const XplorAvatar = XplorAvatar$1;
4
+ const defineCustomElement = defineCustomElement$1;
5
+
6
+ export { XplorAvatar, defineCustomElement };
7
+ //# sourceMappingURL=xplor-avatar.js.map
8
+
9
+ //# sourceMappingURL=xplor-avatar.js.map