solid-ui 3.0.6 → 3.1.1-test.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 (243) hide show
  1. package/README.md +146 -2
  2. package/dist/acl/access-groups.js +1 -1
  3. package/dist/components/button/index.d.ts +1 -0
  4. package/dist/components/button/index.esm.js +546 -0
  5. package/dist/components/button/index.esm.js.map +1 -0
  6. package/dist/components/button/index.esm.min.js +268 -0
  7. package/dist/components/button/index.esm.min.js.map +1 -0
  8. package/dist/components/button/index.js +428 -0
  9. package/dist/components/button/index.js.map +1 -0
  10. package/dist/components/button/index.min.js +257 -0
  11. package/dist/components/button/index.min.js.map +1 -0
  12. package/dist/components/combobox/index.d.ts +1 -0
  13. package/dist/components/combobox/index.esm.js +953 -0
  14. package/dist/components/combobox/index.esm.js.map +1 -0
  15. package/dist/components/combobox/index.esm.min.js +339 -0
  16. package/dist/components/combobox/index.esm.min.js.map +1 -0
  17. package/dist/components/combobox/index.js +782 -0
  18. package/dist/components/combobox/index.js.map +1 -0
  19. package/dist/components/combobox/index.min.js +328 -0
  20. package/dist/components/combobox/index.min.js.map +1 -0
  21. package/dist/components/footer/index.d.ts +1 -0
  22. package/dist/components/footer/index.esm.js +24406 -0
  23. package/dist/components/footer/index.esm.js.map +1 -0
  24. package/dist/components/footer/index.esm.min.js +137 -0
  25. package/dist/components/footer/index.esm.min.js.map +1 -0
  26. package/dist/components/footer/index.js +23303 -0
  27. package/dist/components/footer/index.js.map +1 -0
  28. package/dist/components/footer/index.min.js +125 -0
  29. package/dist/components/footer/index.min.js.map +1 -0
  30. package/dist/components/header/index.d.ts +1 -0
  31. package/dist/components/header/index.esm.js +1936 -0
  32. package/dist/components/header/index.esm.js.map +1 -0
  33. package/dist/components/header/index.esm.min.js +1125 -0
  34. package/dist/components/header/index.esm.min.js.map +1 -0
  35. package/dist/components/header/index.js +1897 -0
  36. package/dist/components/header/index.js.map +1 -0
  37. package/dist/components/header/index.min.js +1126 -0
  38. package/dist/components/header/index.min.js.map +1 -0
  39. package/dist/components/loginButton/index.d.ts +1 -0
  40. package/dist/components/loginButton/index.esm.js +761 -0
  41. package/dist/components/loginButton/index.esm.js.map +1 -0
  42. package/dist/components/loginButton/index.esm.min.js +444 -0
  43. package/dist/components/loginButton/index.esm.min.js.map +1 -0
  44. package/dist/components/loginButton/index.js +743 -0
  45. package/dist/components/loginButton/index.js.map +1 -0
  46. package/dist/components/loginButton/index.min.js +444 -0
  47. package/dist/components/loginButton/index.min.js.map +1 -0
  48. package/dist/components/photoCapture/index.d.ts +1 -0
  49. package/dist/components/photoCapture/index.esm.js +966 -0
  50. package/dist/components/photoCapture/index.esm.js.map +1 -0
  51. package/dist/components/photoCapture/index.esm.min.js +304 -0
  52. package/dist/components/photoCapture/index.esm.min.js.map +1 -0
  53. package/dist/components/photoCapture/index.js +848 -0
  54. package/dist/components/photoCapture/index.js.map +1 -0
  55. package/dist/components/photoCapture/index.min.js +293 -0
  56. package/dist/components/photoCapture/index.min.js.map +1 -0
  57. package/dist/components/select/index.d.ts +1 -0
  58. package/dist/components/select/index.esm.js +939 -0
  59. package/dist/components/select/index.esm.js.map +1 -0
  60. package/dist/components/select/index.esm.min.js +370 -0
  61. package/dist/components/select/index.esm.min.js.map +1 -0
  62. package/dist/components/select/index.js +771 -0
  63. package/dist/components/select/index.js.map +1 -0
  64. package/dist/components/select/index.min.js +359 -0
  65. package/dist/components/select/index.min.js.map +1 -0
  66. package/dist/components/signupButton/index.d.ts +1 -0
  67. package/dist/components/signupButton/index.esm.js +270 -0
  68. package/dist/components/signupButton/index.esm.js.map +1 -0
  69. package/dist/components/signupButton/index.esm.min.js +82 -0
  70. package/dist/components/signupButton/index.esm.min.js.map +1 -0
  71. package/dist/components/signupButton/index.js +264 -0
  72. package/dist/components/signupButton/index.js.map +1 -0
  73. package/dist/components/signupButton/index.min.js +82 -0
  74. package/dist/components/signupButton/index.min.js.map +1 -0
  75. package/dist/footer/index.d.ts.map +1 -1
  76. package/dist/footer/index.js +8 -4
  77. package/dist/footer/index.js.map +1 -1
  78. package/dist/icons/v2/icons-svg/contactIcons.d.ts +3 -0
  79. package/dist/icons/v2/icons-svg/contactIcons.d.ts.map +1 -0
  80. package/dist/icons/v2/icons-svg/contactIcons.js +27 -0
  81. package/dist/icons/v2/icons-svg/contactIcons.js.map +1 -0
  82. package/dist/icons/v2/icons-svg/headerIcons.d.ts +18 -0
  83. package/dist/icons/v2/icons-svg/headerIcons.d.ts.map +1 -0
  84. package/dist/icons/v2/icons-svg/headerIcons.js +245 -0
  85. package/dist/icons/v2/icons-svg/headerIcons.js.map +1 -0
  86. package/dist/icons/v2/icons-svg/pngIcons.d.ts +3 -0
  87. package/dist/icons/v2/icons-svg/pngIcons.d.ts.map +1 -0
  88. package/dist/icons/v2/icons-svg/pngIcons.js +4 -0
  89. package/dist/icons/v2/icons-svg/pngIcons.js.map +1 -0
  90. package/dist/icons/v2/icons-svg/profileIcons.d.ts +23 -0
  91. package/dist/icons/v2/icons-svg/profileIcons.d.ts.map +1 -0
  92. package/dist/icons/v2/icons-svg/profileIcons.js +317 -0
  93. package/dist/icons/v2/icons-svg/profileIcons.js.map +1 -0
  94. package/dist/login/login.d.ts.map +1 -1
  95. package/dist/login/login.js +12 -2
  96. package/dist/login/login.js.map +1 -1
  97. package/dist/matrix/matrix.js.map +1 -1
  98. package/dist/pad.d.ts.map +1 -1
  99. package/dist/pad.js +13 -13
  100. package/dist/pad.js.map +1 -1
  101. package/dist/solid-ui.esm.js +9627 -12206
  102. package/dist/solid-ui.esm.js.map +1 -1
  103. package/dist/solid-ui.esm.min.js +15 -14
  104. package/dist/solid-ui.esm.min.js.map +1 -1
  105. package/dist/solid-ui.js +12621 -14833
  106. package/dist/solid-ui.js.map +1 -1
  107. package/dist/solid-ui.min.js +23 -22
  108. package/dist/solid-ui.min.js.map +1 -1
  109. package/dist/tabs.js +2 -2
  110. package/dist/tabs.js.map +1 -1
  111. package/dist/utils/headerFooterHelpers.d.ts.map +1 -1
  112. package/dist/utils/headerFooterHelpers.js +11 -2
  113. package/dist/utils/headerFooterHelpers.js.map +1 -1
  114. package/dist/v2/components/actions/button/Button.d.ts +97 -0
  115. package/dist/v2/components/actions/button/Button.d.ts.map +1 -0
  116. package/dist/v2/components/actions/button/Button.js +325 -0
  117. package/dist/v2/components/actions/button/Button.js.map +1 -0
  118. package/dist/v2/components/actions/button/Button.test.d.ts +2 -0
  119. package/dist/v2/components/actions/button/Button.test.d.ts.map +1 -0
  120. package/dist/v2/components/actions/button/Button.test.js +117 -0
  121. package/dist/v2/components/actions/button/Button.test.js.map +1 -0
  122. package/dist/v2/components/actions/button/index.d.ts +8 -0
  123. package/dist/v2/components/actions/button/index.d.ts.map +1 -0
  124. package/dist/v2/components/actions/button/index.js +7 -0
  125. package/dist/v2/components/actions/button/index.js.map +1 -0
  126. package/dist/v2/components/auth/loginButton/LoginButton.d.ts +62 -0
  127. package/dist/v2/components/auth/loginButton/LoginButton.d.ts.map +1 -0
  128. package/dist/v2/components/auth/loginButton/LoginButton.js +539 -0
  129. package/dist/v2/components/auth/loginButton/LoginButton.js.map +1 -0
  130. package/dist/v2/components/auth/loginButton/LoginButton.test.d.ts +2 -0
  131. package/dist/v2/components/auth/loginButton/LoginButton.test.d.ts.map +1 -0
  132. package/dist/v2/components/auth/loginButton/LoginButton.test.js +53 -0
  133. package/dist/v2/components/auth/loginButton/LoginButton.test.js.map +1 -0
  134. package/dist/v2/components/auth/loginButton/downArrow.d.ts +2 -0
  135. package/dist/v2/components/auth/loginButton/downArrow.d.ts.map +1 -0
  136. package/dist/v2/components/auth/loginButton/downArrow.js +10 -0
  137. package/dist/v2/components/auth/loginButton/downArrow.js.map +1 -0
  138. package/dist/v2/components/auth/loginButton/index.d.ts +3 -0
  139. package/dist/v2/components/auth/loginButton/index.d.ts.map +1 -0
  140. package/dist/v2/components/auth/loginButton/index.js +7 -0
  141. package/dist/v2/components/auth/loginButton/index.js.map +1 -0
  142. package/dist/v2/components/auth/signupButton/SignupButton.d.ts +36 -0
  143. package/dist/v2/components/auth/signupButton/SignupButton.d.ts.map +1 -0
  144. package/dist/v2/components/auth/signupButton/SignupButton.js +84 -0
  145. package/dist/v2/components/auth/signupButton/SignupButton.js.map +1 -0
  146. package/dist/v2/components/auth/signupButton/SignupButton.test.d.ts +2 -0
  147. package/dist/v2/components/auth/signupButton/SignupButton.test.d.ts.map +1 -0
  148. package/dist/v2/components/auth/signupButton/SignupButton.test.js +49 -0
  149. package/dist/v2/components/auth/signupButton/SignupButton.test.js.map +1 -0
  150. package/dist/v2/components/auth/signupButton/index.d.ts +3 -0
  151. package/dist/v2/components/auth/signupButton/index.d.ts.map +1 -0
  152. package/dist/v2/components/auth/signupButton/index.js +7 -0
  153. package/dist/v2/components/auth/signupButton/index.js.map +1 -0
  154. package/dist/v2/components/forms/combobox/Combobox.d.ts +82 -0
  155. package/dist/v2/components/forms/combobox/Combobox.d.ts.map +1 -0
  156. package/dist/v2/components/forms/combobox/Combobox.js +506 -0
  157. package/dist/v2/components/forms/combobox/Combobox.js.map +1 -0
  158. package/dist/v2/components/forms/combobox/Combobox.test.d.ts +2 -0
  159. package/dist/v2/components/forms/combobox/Combobox.test.d.ts.map +1 -0
  160. package/dist/v2/components/forms/combobox/Combobox.test.js +201 -0
  161. package/dist/v2/components/forms/combobox/Combobox.test.js.map +1 -0
  162. package/dist/v2/components/forms/combobox/comboboxTypes.d.ts +6 -0
  163. package/dist/v2/components/forms/combobox/comboboxTypes.d.ts.map +1 -0
  164. package/dist/v2/components/forms/combobox/comboboxTypes.js +2 -0
  165. package/dist/v2/components/forms/combobox/comboboxTypes.js.map +1 -0
  166. package/dist/v2/components/forms/combobox/index.d.ts +3 -0
  167. package/dist/v2/components/forms/combobox/index.d.ts.map +1 -0
  168. package/dist/v2/components/forms/combobox/index.js +7 -0
  169. package/dist/v2/components/forms/combobox/index.js.map +1 -0
  170. package/dist/v2/components/forms/select/Select.d.ts +68 -0
  171. package/dist/v2/components/forms/select/Select.d.ts.map +1 -0
  172. package/dist/v2/components/forms/select/Select.js +499 -0
  173. package/dist/v2/components/forms/select/Select.js.map +1 -0
  174. package/dist/v2/components/forms/select/Select.test.d.ts +2 -0
  175. package/dist/v2/components/forms/select/Select.test.d.ts.map +1 -0
  176. package/dist/v2/components/forms/select/Select.test.js +168 -0
  177. package/dist/v2/components/forms/select/Select.test.js.map +1 -0
  178. package/dist/v2/components/forms/select/index.d.ts +3 -0
  179. package/dist/v2/components/forms/select/index.d.ts.map +1 -0
  180. package/dist/v2/components/forms/select/index.js +7 -0
  181. package/dist/v2/components/forms/select/index.js.map +1 -0
  182. package/dist/v2/components/forms/shared/downArrow.d.ts +2 -0
  183. package/dist/v2/components/forms/shared/downArrow.d.ts.map +1 -0
  184. package/dist/v2/components/forms/shared/downArrow.js +10 -0
  185. package/dist/v2/components/forms/shared/downArrow.js.map +1 -0
  186. package/dist/v2/components/forms/shared/keyboard.d.ts +7 -0
  187. package/dist/v2/components/forms/shared/keyboard.d.ts.map +1 -0
  188. package/dist/v2/components/forms/shared/keyboard.js +56 -0
  189. package/dist/v2/components/forms/shared/keyboard.js.map +1 -0
  190. package/dist/v2/components/forms/shared/listboxStyles.d.ts +2 -0
  191. package/dist/v2/components/forms/shared/listboxStyles.d.ts.map +1 -0
  192. package/dist/v2/components/forms/shared/listboxStyles.js +96 -0
  193. package/dist/v2/components/forms/shared/listboxStyles.js.map +1 -0
  194. package/dist/v2/components/forms/shared/listboxTemplate.d.ts +11 -0
  195. package/dist/v2/components/forms/shared/listboxTemplate.d.ts.map +1 -0
  196. package/dist/v2/components/forms/shared/listboxTemplate.js +37 -0
  197. package/dist/v2/components/forms/shared/listboxTemplate.js.map +1 -0
  198. package/dist/v2/components/forms/shared/optionTypes.d.ts +6 -0
  199. package/dist/v2/components/forms/shared/optionTypes.d.ts.map +1 -0
  200. package/dist/v2/components/forms/shared/optionTypes.js +2 -0
  201. package/dist/v2/components/forms/shared/optionTypes.js.map +1 -0
  202. package/dist/v2/components/layout/footer/Footer.d.ts +60 -0
  203. package/dist/v2/components/layout/footer/Footer.d.ts.map +1 -0
  204. package/dist/v2/components/layout/footer/Footer.js +148 -0
  205. package/dist/v2/components/layout/footer/Footer.js.map +1 -0
  206. package/dist/v2/components/layout/footer/Footer.test.d.ts +2 -0
  207. package/dist/v2/components/layout/footer/Footer.test.d.ts.map +1 -0
  208. package/dist/v2/components/layout/footer/Footer.test.js +53 -0
  209. package/dist/v2/components/layout/footer/Footer.test.js.map +1 -0
  210. package/dist/v2/components/layout/footer/index.d.ts +3 -0
  211. package/dist/v2/components/layout/footer/index.d.ts.map +1 -0
  212. package/dist/v2/components/layout/footer/index.js +7 -0
  213. package/dist/v2/components/layout/footer/index.js.map +1 -0
  214. package/dist/v2/components/layout/header/Header.d.ts +155 -0
  215. package/dist/v2/components/layout/header/Header.d.ts.map +1 -0
  216. package/dist/v2/components/layout/header/Header.js +845 -0
  217. package/dist/v2/components/layout/header/Header.js.map +1 -0
  218. package/dist/v2/components/layout/header/header.test.d.ts +2 -0
  219. package/dist/v2/components/layout/header/header.test.d.ts.map +1 -0
  220. package/dist/v2/components/layout/header/header.test.js +242 -0
  221. package/dist/v2/components/layout/header/header.test.js.map +1 -0
  222. package/dist/v2/components/layout/header/index.d.ts +4 -0
  223. package/dist/v2/components/layout/header/index.d.ts.map +1 -0
  224. package/dist/v2/components/layout/header/index.js +7 -0
  225. package/dist/v2/components/layout/header/index.js.map +1 -0
  226. package/dist/v2/components/media/photoCapture/PhotoCapture.d.ts +200 -0
  227. package/dist/v2/components/media/photoCapture/PhotoCapture.d.ts.map +1 -0
  228. package/dist/v2/components/media/photoCapture/PhotoCapture.js +723 -0
  229. package/dist/v2/components/media/photoCapture/PhotoCapture.js.map +1 -0
  230. package/dist/v2/components/media/photoCapture/PhotoCapture.test.d.ts +2 -0
  231. package/dist/v2/components/media/photoCapture/PhotoCapture.test.d.ts.map +1 -0
  232. package/dist/v2/components/media/photoCapture/PhotoCapture.test.js +157 -0
  233. package/dist/v2/components/media/photoCapture/PhotoCapture.test.js.map +1 -0
  234. package/dist/v2/components/media/photoCapture/index.d.ts +3 -0
  235. package/dist/v2/components/media/photoCapture/index.d.ts.map +1 -0
  236. package/dist/v2/components/media/photoCapture/index.js +7 -0
  237. package/dist/v2/components/media/photoCapture/index.js.map +1 -0
  238. package/dist/versionInfo.js +15 -15
  239. package/dist/widgets/buttons.d.ts +10 -3
  240. package/dist/widgets/buttons.d.ts.map +1 -1
  241. package/dist/widgets/buttons.js +81 -7
  242. package/dist/widgets/buttons.js.map +1 -1
  243. package/package.json +139 -46
@@ -0,0 +1,782 @@
1
+ /******/ (() => { // webpackBootstrap
2
+ /******/ "use strict";
3
+
4
+ // UNUSED EXPORTS: Combobox
5
+
6
+ ;// ./node_modules/@lit/reactive-element/css-tag.js
7
+ /**
8
+ * @license
9
+ * Copyright 2019 Google LLC
10
+ * SPDX-License-Identifier: BSD-3-Clause
11
+ */
12
+ const t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&"adoptedStyleSheets"in Document.prototype&&"replace"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)throw Error("CSSResult is not constructable. Use `unsafeCSS` or `css` instead.");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n("string"==typeof t?t:t+"",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce((e,s,o)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if("number"==typeof t)return t;throw Error("Value passed to 'css' function must be a 'css' function result: "+t+". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.")})(s)+t[o+1],t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map(t=>t instanceof CSSStyleSheet?t:t.styleSheet);else for(const e of o){const o=document.createElement("style"),n=t.litNonce;void 0!==n&&o.setAttribute("nonce",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e="";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;
13
+ //# sourceMappingURL=css-tag.js.map
14
+
15
+ ;// ./node_modules/@lit/reactive-element/reactive-element.js
16
+
17
+ /**
18
+ * @license
19
+ * Copyright 2017 Google LLC
20
+ * SPDX-License-Identifier: BSD-3-Clause
21
+ */const{is:reactive_element_i,defineProperty:reactive_element_e,getOwnPropertyDescriptor:h,getOwnPropertyNames:reactive_element_r,getOwnPropertySymbols:reactive_element_o,getPrototypeOf:reactive_element_n}=Object,a=globalThis,reactive_element_c=a.trustedTypes,l=reactive_element_c?reactive_element_c.emptyScript:"",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},f=(t,s)=>!reactive_element_i(t,s),b={attribute:!0,type:String,converter:u,reflect:!1,useDefault:!1,hasChanged:f};Symbol.metadata??=Symbol("metadata"),a.litPropertyMetadata??=new WeakMap;class y extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=b){if(s.state&&(s.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((s=Object.create(s)).wrapped=!0),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),h=this.getPropertyDescriptor(t,i,s);void 0!==h&&reactive_element_e(this.prototype,t,h)}}static getPropertyDescriptor(t,s,i){const{get:e,set:r}=h(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get:e,set(s){const h=e?.call(this);r?.call(this,s),this.requestUpdate(t,h,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??b}static _$Ei(){if(this.hasOwnProperty(d("elementProperties")))return;const t=reactive_element_n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d("finalized")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d("properties"))){const t=this.properties,s=[...reactive_element_r(t),...reactive_element_o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(c(s))}else void 0!==s&&i.push(c(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:"string"==typeof i?i:"string"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise(t=>this.enableUpdating=t),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach(t=>t(this))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return S(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach(t=>t.hostConnected?.())}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach(t=>t.hostDisconnected?.())}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$ET(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const h=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==h?this.removeAttribute(e):this.setAttribute(e,h),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),h="function"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e;const r=h.fromAttribute(s,t.type);this[e]=r??this._$Ej?.get(e)??r,this._$Em=null}}requestUpdate(t,s,i,e=!1,h){if(void 0!==t){const r=this.constructor;if(!1===e&&(h=this[t]),i??=r.getPropertyOptions(t),!((i.hasChanged??f)(h,s)||i.useDefault&&i.reflect&&h===this._$Ej?.get(t)&&!this.hasAttribute(r._$Eu(t,i))))return;this.C(t,s,i)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(t,s,{useDefault:i,reflect:e,wrapped:h},r){i&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,r??s??this[t]),!0!==h||void 0!==r)||(this._$AL.has(t)||(this.hasUpdated||i||(s=void 0),this._$AL.set(t,s)),!0===e&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t){const{wrapped:t}=i,e=this[s];!0!==t||this._$AL.has(s)||void 0===e||this.C(s,void 0,i,e)}}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach(t=>t.hostUpdate?.()),this.update(s)):this._$EM()}catch(s){throw t=!1,this._$EM(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$EO?.forEach(t=>t.hostUpdated?.()),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach(t=>this._$ET(t,this[t])),this._$EM()}updated(t){}firstUpdated(t){}}y.elementStyles=[],y.shadowRootOptions={mode:"open"},y[d("elementProperties")]=new Map,y[d("finalized")]=new Map,p?.({ReactiveElement:y}),(a.reactiveElementVersions??=[]).push("2.1.2");
22
+ //# sourceMappingURL=reactive-element.js.map
23
+
24
+ ;// ./node_modules/lit-html/lit-html.js
25
+ /**
26
+ * @license
27
+ * Copyright 2017 Google LLC
28
+ * SPDX-License-Identifier: BSD-3-Clause
29
+ */
30
+ const lit_html_t=globalThis,lit_html_i=t=>t,lit_html_s=lit_html_t.trustedTypes,lit_html_e=lit_html_s?lit_html_s.createPolicy("lit-html",{createHTML:t=>t}):void 0,lit_html_h="$lit$",lit_html_o=`lit$${Math.random().toFixed(9).slice(2)}$`,lit_html_n="?"+lit_html_o,lit_html_r=`<${lit_html_n}>`,lit_html_l=document,lit_html_c=()=>lit_html_l.createComment(""),lit_html_a=t=>null===t||"object"!=typeof t&&"function"!=typeof t,lit_html_u=Array.isArray,lit_html_d=t=>lit_html_u(t)||"function"==typeof t?.[Symbol.iterator],lit_html_f="[ \t\n\f\r]",v=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,_=/-->/g,m=/>/g,lit_html_p=RegExp(`>|${lit_html_f}(?:([^\\s"'>=/]+)(${lit_html_f}*=${lit_html_f}*(?:[^ \t\n\f\r"'\`<>=]|("|')|))|$)`,"g"),g=/'/g,$=/"/g,lit_html_y=/^(?:script|style|textarea|title)$/i,x=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),lit_html_b=x(1),w=x(2),T=x(3),E=Symbol.for("lit-noChange"),A=Symbol.for("lit-nothing"),C=new WeakMap,P=lit_html_l.createTreeWalker(lit_html_l,129);function V(t,i){if(!lit_html_u(t)||!t.hasOwnProperty("raw"))throw Error("invalid template strings array");return void 0!==lit_html_e?lit_html_e.createHTML(i):i}const N=(t,i)=>{const s=t.length-1,e=[];let n,l=2===i?"<svg>":3===i?"<math>":"",c=v;for(let i=0;i<s;i++){const s=t[i];let a,u,d=-1,f=0;for(;f<s.length&&(c.lastIndex=f,u=c.exec(s),null!==u);)f=c.lastIndex,c===v?"!--"===u[1]?c=_:void 0!==u[1]?c=m:void 0!==u[2]?(lit_html_y.test(u[2])&&(n=RegExp("</"+u[2],"g")),c=lit_html_p):void 0!==u[3]&&(c=lit_html_p):c===lit_html_p?">"===u[0]?(c=n??v,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?lit_html_p:'"'===u[3]?$:g):c===$||c===g?c=lit_html_p:c===_||c===m?c=v:(c=lit_html_p,n=void 0);const x=c===lit_html_p&&t[i+1].startsWith("/>")?" ":"";l+=c===v?s+lit_html_r:d>=0?(e.push(a),s.slice(0,d)+lit_html_h+s.slice(d)+lit_html_o+x):s+lit_html_o+(-2===d?i:x)}return[V(t,l+(t[s]||"<?>")+(2===i?"</svg>":3===i?"</math>":"")),e]};class lit_html_S{constructor({strings:t,_$litType$:i},e){let r;this.parts=[];let l=0,a=0;const u=t.length-1,d=this.parts,[f,v]=N(t,i);if(this.el=lit_html_S.createElement(f,e),P.currentNode=this.el.content,2===i||3===i){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=P.nextNode())&&d.length<u;){if(1===r.nodeType){if(r.hasAttributes())for(const t of r.getAttributeNames())if(t.endsWith(lit_html_h)){const i=v[a++],s=r.getAttribute(t).split(lit_html_o),e=/([.?@])?(.*)/.exec(i);d.push({type:1,index:l,name:e[2],strings:s,ctor:"."===e[1]?I:"?"===e[1]?L:"@"===e[1]?z:H}),r.removeAttribute(t)}else t.startsWith(lit_html_o)&&(d.push({type:6,index:l}),r.removeAttribute(t));if(lit_html_y.test(r.tagName)){const t=r.textContent.split(lit_html_o),i=t.length-1;if(i>0){r.textContent=lit_html_s?lit_html_s.emptyScript:"";for(let s=0;s<i;s++)r.append(t[s],lit_html_c()),P.nextNode(),d.push({type:2,index:++l});r.append(t[i],lit_html_c())}}}else if(8===r.nodeType)if(r.data===lit_html_n)d.push({type:2,index:l});else{let t=-1;for(;-1!==(t=r.data.indexOf(lit_html_o,t+1));)d.push({type:7,index:l}),t+=lit_html_o.length-1}l++}}static createElement(t,i){const s=lit_html_l.createElement("template");return s.innerHTML=t,s}}function M(t,i,s=t,e){if(i===E)return i;let h=void 0!==e?s._$Co?.[e]:s._$Cl;const o=lit_html_a(i)?void 0:i._$litDirective$;return h?.constructor!==o&&(h?._$AO?.(!1),void 0===o?h=void 0:(h=new o(t),h._$AT(t,s,e)),void 0!==e?(s._$Co??=[])[e]=h:s._$Cl=h),void 0!==h&&(i=M(t,h._$AS(t,i.values),h,e)),i}class R{constructor(t,i){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=i}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:i},parts:s}=this._$AD,e=(t?.creationScope??lit_html_l).importNode(i,!0);P.currentNode=e;let h=P.nextNode(),o=0,n=0,r=s[0];for(;void 0!==r;){if(o===r.index){let i;2===r.type?i=new k(h,h.nextSibling,this,t):1===r.type?i=new r.ctor(h,r.name,r.strings,this,t):6===r.type&&(i=new Z(h,this,t)),this._$AV.push(i),r=s[++n]}o!==r?.index&&(h=P.nextNode(),o++)}return P.currentNode=lit_html_l,e}p(t){let i=0;for(const s of this._$AV)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,i),i+=s.strings.length-2):s._$AI(t[i])),i++}}class k{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,i,s,e){this.type=2,this._$AH=A,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this._$Cv=e?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode;const i=this._$AM;return void 0!==i&&11===t?.nodeType&&(t=i.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,i=this){t=M(this,t,i),lit_html_a(t)?t===A||null==t||""===t?(this._$AH!==A&&this._$AR(),this._$AH=A):t!==this._$AH&&t!==E&&this._(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):lit_html_d(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==A&&lit_html_a(this._$AH)?this._$AA.nextSibling.data=t:this.T(lit_html_l.createTextNode(t)),this._$AH=t}$(t){const{values:i,_$litType$:s}=t,e="number"==typeof s?this._$AC(t):(void 0===s.el&&(s.el=lit_html_S.createElement(V(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===e)this._$AH.p(i);else{const t=new R(e,this),s=t.u(this.options);t.p(i),this.T(s),this._$AH=t}}_$AC(t){let i=C.get(t.strings);return void 0===i&&C.set(t.strings,i=new lit_html_S(t)),i}k(t){lit_html_u(this._$AH)||(this._$AH=[],this._$AR());const i=this._$AH;let s,e=0;for(const h of t)e===i.length?i.push(s=new k(this.O(lit_html_c()),this.O(lit_html_c()),this,this.options)):s=i[e],s._$AI(h),e++;e<i.length&&(this._$AR(s&&s._$AB.nextSibling,e),i.length=e)}_$AR(t=this._$AA.nextSibling,s){for(this._$AP?.(!1,!0,s);t!==this._$AB;){const s=lit_html_i(t).nextSibling;lit_html_i(t).remove(),t=s}}setConnected(t){void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t))}}class H{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,i,s,e,h){this.type=1,this._$AH=A,this._$AN=void 0,this.element=t,this.name=i,this._$AM=e,this.options=h,s.length>2||""!==s[0]||""!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=A}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=M(this,t,i,0),o=!lit_html_a(t)||t!==this._$AH&&t!==E,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n<h.length-1;n++)r=M(this,e[s+n],i,n),r===E&&(r=this._$AH[n]),o||=!lit_html_a(r)||r!==this._$AH[n],r===A?t=A:t!==A&&(t+=(r??"")+h[n+1]),this._$AH[n]=r}o&&!e&&this.j(t)}j(t){t===A?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??"")}}class I extends H{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===A?void 0:t}}class L extends H{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==A)}}class z extends H{constructor(t,i,s,e,h){super(t,i,s,e,h),this.type=5}_$AI(t,i=this){if((t=M(this,t,i,0)??A)===E)return;const s=this._$AH,e=t===A&&s!==A||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,h=t!==A&&(s===A||e);e&&this.element.removeEventListener(this.name,this,s),h&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){"function"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}}class Z{constructor(t,i,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=i,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){M(this,t)}}const j={M:lit_html_h,P:lit_html_o,A:lit_html_n,C:1,L:N,R,D:lit_html_d,V:M,I:k,H,N:L,U:z,B:I,F:Z},B=lit_html_t.litHtmlPolyfillSupport;B?.(lit_html_S,k),(lit_html_t.litHtmlVersions??=[]).push("3.3.2");const D=(t,i,s)=>{const e=s?.renderBefore??i;let h=e._$litPart$;if(void 0===h){const t=s?.renderBefore??null;e._$litPart$=h=new k(i.insertBefore(lit_html_c(),t),t,void 0,s??{})}return h._$AI(t),h};
31
+ //# sourceMappingURL=lit-html.js.map
32
+
33
+ ;// ./node_modules/lit-element/lit-element.js
34
+
35
+ /**
36
+ * @license
37
+ * Copyright 2017 Google LLC
38
+ * SPDX-License-Identifier: BSD-3-Clause
39
+ */const lit_element_s=globalThis;class lit_element_i extends y{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const r=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=D(r,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return E}}lit_element_i._$litElement$=!0,lit_element_i["finalized"]=!0,lit_element_s.litElementHydrateSupport?.({LitElement:lit_element_i});const lit_element_o=lit_element_s.litElementPolyfillSupport;lit_element_o?.({LitElement:lit_element_i});const lit_element_n={_$AK:(t,e,r)=>{t._$AK(e,r)},_$AL:t=>t._$AL};(lit_element_s.litElementVersions??=[]).push("4.2.2");
40
+ //# sourceMappingURL=lit-element.js.map
41
+
42
+ ;// ./node_modules/lit/index.js
43
+
44
+ //# sourceMappingURL=index.js.map
45
+
46
+ ;// ./node_modules/lit/html.js
47
+
48
+ //# sourceMappingURL=html.js.map
49
+
50
+ ;// ./src/v2/components/forms/shared/downArrow.ts
51
+
52
+ const downArrowIcon = lit_html_b`
53
+ <svg xmlns="http://www.w3.org/2000/svg"
54
+ viewBox="0 0 12 7"
55
+ fill="none"
56
+ >
57
+ <path d="M0.679688 0.678955L5.50729 5.50656L10.3349 0.678955" stroke="#6A7282" stroke-width="1.35776" stroke-linecap="round" stroke-linejoin="round"/>
58
+ </svg>
59
+ `;
60
+ ;// ./src/v2/components/forms/shared/listboxStyles.ts
61
+
62
+ const listboxStyles = i`
63
+ :host { /* default theme */
64
+ --input-background: var(--color-background, #F8F9FB);
65
+ --item-text: var(--color-text-heading, #000000);
66
+ --item-selected-text: var(--color-primary, #7c4dff);
67
+ --item-hover-background: var(--color-header-menu-item-hover, #e6dcff);
68
+ --item-selected-background: var(--color-header-menu-item-selected, #cbb9ff);
69
+ --listbox-z-index: 1;
70
+ }
71
+
72
+ :host([theme='dark']) {
73
+ --input-background: var(--color-background, #1A1A1A);
74
+ --item-text: var(--color-text-heading, #F8F9FB);
75
+ --item-selected-text: var(--color-primary, #7c4dff);
76
+ --item-hover-background: var(--color-header-menu-item-hover, #e6dcff);
77
+ --item-selected-background: var(--color-header-menu-item-selected, #cbb9ff);
78
+ --listbox-z-index: 1;
79
+ }
80
+
81
+ .listbox {
82
+ position: relative;
83
+ top: 0;
84
+ left: 0;
85
+ right: 0;
86
+ display: flex;
87
+ flex-direction: column;
88
+ gap: 0.0625rem;
89
+ margin: 0;
90
+ padding: 0;
91
+ list-style: none;
92
+ border: none;
93
+ border-radius: inherit;
94
+ background: var(--input-background);
95
+ background-color: var(--input-background);
96
+ opacity: 1;
97
+ overflow: hidden;
98
+ padding: 0.25rem;
99
+ z-index: var(--listbox-z-index);
100
+ box-shadow: 0 4px 12px rgba(124, 77, 255, 0.12);
101
+ }
102
+
103
+ .listbox-item {
104
+ display: flex;
105
+ align-items: center;
106
+ gap: var(--spacing-2xs, 0.625rem);
107
+ width: 100%;
108
+ min-height: calc(var(--font-size-sm, 0.875rem) + 1rem);
109
+ padding: 0.5rem var(--spacing-xs, 0.75rem);
110
+ border: none;
111
+ border-radius: var(--border-radius-sm, 0.2rem);
112
+ background: transparent;
113
+ color: var(--item-text);
114
+ cursor: pointer;
115
+ font: inherit;
116
+ font-size: var(--font-size-sm, 0.875rem);
117
+ font-weight: var(--font-weight-normal, 400);
118
+ line-height: normal;
119
+ text-align: left;
120
+ text-decoration: none;
121
+ box-sizing: border-box;
122
+ }
123
+
124
+ .listbox-item:hover {
125
+ background: var(--item-hover-background);
126
+ border-radius: var(--border-radius-sm, 0.2rem);
127
+ }
128
+
129
+ .listbox-item:focus {
130
+ background: var(--item-hover-background);
131
+ border-radius: var(--border-radius-sm, 0.2rem);
132
+ }
133
+
134
+ .listbox-item-active {
135
+ background: var(--item-selected-background);
136
+ color: var(--item-selected-text);
137
+ border-radius: var(--border-radius-sm, 0.2rem);
138
+ outline: none;
139
+ }
140
+
141
+ .listbox-item-active:hover,
142
+ .listbox-item-active:focus {
143
+ color: var(--item-text);
144
+ }
145
+
146
+ .listbox-item-disabled {
147
+ opacity: 0.55;
148
+ cursor: not-allowed;
149
+ }
150
+
151
+ .listbox-item-disabled:hover {
152
+ background: transparent;
153
+ border-radius: 0;
154
+ }
155
+ `;
156
+ ;// ./src/v2/components/forms/shared/keyboard.ts
157
+ /* Move up or down, skip disabled options */
158
+ function getNextEnabledIndex(currentIndex, options, direction) {
159
+ if (!options.length) {
160
+ return -1;
161
+ }
162
+ if (options.every(option => option.disabled)) {
163
+ return -1;
164
+ }
165
+ const optionsCount = options.length;
166
+ let nextIndex = currentIndex;
167
+ do {
168
+ nextIndex = (nextIndex + direction + optionsCount) % optionsCount;
169
+ } while (options[nextIndex].disabled);
170
+ return nextIndex;
171
+ }
172
+
173
+ /* Handle 'Home' and 'End' keys and initial highlight */
174
+ function getFirstEnabledIndex(options) {
175
+ if (!options.length) {
176
+ return -1;
177
+ }
178
+ return getNextEnabledIndex(-1, options, 1);
179
+ }
180
+ function getLastEnabledIndex(options) {
181
+ if (!options.length) {
182
+ return -1;
183
+ }
184
+ return getNextEnabledIndex(options.length, options, -1);
185
+ }
186
+
187
+ /* Sync current value to active index */
188
+ function findOptionIndexByValue(options, value) {
189
+ if (value === undefined) {
190
+ return -1;
191
+ }
192
+ return options.findIndex(option => option.value === value);
193
+ }
194
+
195
+ /* Map keyboard events to actions */
196
+ function getListboxActionFromKey(key) {
197
+ switch (key) {
198
+ case 'ArrowDown':
199
+ return 'next';
200
+ case 'ArrowUp':
201
+ return 'previous';
202
+ case 'Home':
203
+ return 'first';
204
+ case 'End':
205
+ return 'last';
206
+ case 'Enter':
207
+ case ' ':
208
+ return 'select';
209
+ case 'Escape':
210
+ return 'close';
211
+ default:
212
+ return 'none';
213
+ }
214
+ }
215
+ ;// ./src/v2/components/forms/shared/listboxTemplate.ts
216
+
217
+ function renderListbox(args) {
218
+ const {
219
+ options,
220
+ selectedOption,
221
+ activeOption,
222
+ listboxId,
223
+ getOptionId,
224
+ onOptionSelect
225
+ } = args;
226
+ return lit_html_b`
227
+ <ul
228
+ class="listbox"
229
+ id="${listboxId ?? ''}"
230
+ part="listbox"
231
+ role="listbox"
232
+ aria-orientation="vertical"
233
+ >
234
+ ${options.map((option, index) => {
235
+ const isSelected = option.value === selectedOption?.value;
236
+ const isActive = option.value === activeOption?.value;
237
+ const optionId = getOptionId?.(option, index);
238
+ return lit_html_b`
239
+ <li
240
+ id="${optionId ?? ''}"
241
+ class="listbox-item${isSelected ? ' listbox-item-selected' : ''}${isActive ? ' listbox-item-active' : ''}${option.disabled ? ' listbox-item-disabled' : ''}"
242
+ part="option${isSelected ? ' selected-option' : ''}${isActive ? ' active-option' : ''}${option.disabled ? ' disabled-option' : ''}"
243
+ role="option"
244
+ aria-selected="${isSelected}"
245
+ aria-disabled="${option.disabled ? 'true' : 'false'}"
246
+ @click="${() => {
247
+ if (!option.disabled) {
248
+ onOptionSelect(option);
249
+ }
250
+ }}"
251
+ >
252
+ ${option.label}
253
+ </li>
254
+ `;
255
+ })}
256
+ </ul>
257
+ `;
258
+ }
259
+ ;// ./src/v2/components/forms/combobox/Combobox.ts
260
+
261
+
262
+
263
+
264
+
265
+
266
+ class Combobox extends lit_element_i {
267
+ static _nextId = 0;
268
+ _popupPortalHost = null;
269
+ _popupPortalRoot = null;
270
+ _popupPortalContainer = null;
271
+ _handleDocumentPointerDown = event => {
272
+ const eventTarget = event.target;
273
+ if (!this._popupOpen || !(eventTarget instanceof Node)) {
274
+ return;
275
+ }
276
+ const eventPath = 'composedPath' in event ? event.composedPath() : [];
277
+ if (eventPath.includes(this)) {
278
+ return;
279
+ }
280
+ if (this._popupPortalHost && eventPath.includes(this._popupPortalHost) || this._popupPortalRoot && eventPath.includes(this._popupPortalRoot)) {
281
+ return;
282
+ }
283
+ if (!this.contains(eventTarget)) {
284
+ this._closePopup();
285
+ }
286
+ };
287
+ _handleViewportChange = () => {
288
+ if (!this._popupOpen) return;
289
+ this._updatePopupPosition();
290
+ };
291
+ suggestionProvider;
292
+ static properties = {
293
+ label: {
294
+ type: String,
295
+ reflect: true
296
+ },
297
+ placeholder: {
298
+ type: String,
299
+ reflect: true
300
+ },
301
+ theme: {
302
+ type: String,
303
+ reflect: true
304
+ },
305
+ layout: {
306
+ type: String,
307
+ reflect: true
308
+ },
309
+ value: {
310
+ type: String,
311
+ reflect: true
312
+ },
313
+ inputValue: {
314
+ type: String
315
+ },
316
+ options: {
317
+ type: Array,
318
+ attribute: false
319
+ },
320
+ _popupOpen: {
321
+ state: true
322
+ },
323
+ _activeIndex: {
324
+ state: true
325
+ }
326
+ };
327
+ static styles = [listboxStyles, i`
328
+ :host {
329
+ /* default theme */
330
+ display: block;
331
+ width: 100%;
332
+ min-width: 0;
333
+ max-width: 100%;
334
+ position: relative;
335
+ box-sizing: border-box;
336
+ --popup-background: var(--color-background, #F8F9FB);
337
+ --popup-text: var(--color-text, #1A1A1A);
338
+ --popup-border: var(--color-border, #E5E7EB);
339
+ --popup-shadow: var(--box-shadow-sm, 0 1px 4px rgba(124,77,255,0.12));
340
+ --input-background: var(--color-background, #F8F9FB);
341
+ --input-text: var(--color-text, #1A1A1A);
342
+ --input-border: var(--color-border-button-hover, var(--gray-400, #99A1AF));
343
+ --label-color: var(--grey-purple-700, #1A1A1A);
344
+ --placeholder-color: var(--grey-purple-700, #5e546d);
345
+ --combobox-input-height: var(--select-trigger-height, var(--min-touch-target, 44px));
346
+ --combobox-input-inline-padding: var(--select-trigger-inline-padding, var(--spacing-2xs, 0.625rem));
347
+ --combobox-input-block-padding: var(--spacing-xxs, 0.3125rem);
348
+ }
349
+
350
+ :host([theme='dark']) {
351
+ display: block;
352
+ width: 100%;
353
+ min-width: 0;
354
+ max-width: 100%;
355
+ position: relative;
356
+ box-sizing: border-box;
357
+ --popup-background: var(--color-background, #F8F9FB);
358
+ --popup-text: var(--color-text, #1A1A1A);
359
+ --popup-border: var(--color-border, #E5E7EB);
360
+ --popup-shadow: var(--box-shadow-sm, 0 1px 4px rgba(124,77,255,0.12));
361
+ --input-background: var(--color-background, #F8F9FB);
362
+ --input-text: var(--color-text, #1A1A1A);
363
+ --input-border: var(--color-border-button-hover, var(--gray-400, #99A1AF));
364
+ --label-color: var(--grey-purple-700, #1A1A1A);
365
+ --placeholder-color: var(--grey-purple-700, #5e546d);
366
+ --combobox-input-height: var(--select-trigger-height, var(--min-touch-target, 44px));
367
+ --combobox-input-inline-padding: var(--select-trigger-inline-padding, var(--spacing-2xs, 0.625rem));
368
+ --combobox-input-block-padding: var(--spacing-xxs, 0.3125rem);
369
+ }
370
+
371
+ .popup-box {
372
+ position: absolute;
373
+ top: 0;
374
+ left: 0;
375
+ width: 100%;
376
+ background: var(--popup-background);
377
+ color: var(--popup-text);
378
+ box-shadow: var(--popup-shadow);
379
+ border: 1px solid var(--popup-border);
380
+ border-radius: var(--border-radius-md, 0.5rem);
381
+ min-width: 100%;
382
+ overflow: hidden;
383
+ box-sizing: border-box;
384
+ isolation: isolate;
385
+ }
386
+
387
+ .select-options-section {
388
+ position: relative;
389
+ background: var(--popup-background);
390
+ border-radius: inherit;
391
+ isolation: isolate;
392
+ }
393
+
394
+ .combobox-root {
395
+ display: flex;
396
+ flex-direction: column;
397
+ gap: 6px;
398
+ }
399
+
400
+ .text-label {
401
+ color: var(--label-color);
402
+ margin-bottom: 6px;
403
+ }
404
+
405
+ .input-field-row {
406
+ display: flex;
407
+ flex-direction: row;
408
+ position: relative;
409
+ width: 100%;
410
+ min-width: 0;
411
+ }
412
+
413
+ .text-input {
414
+ display: block;
415
+ flex: 1;
416
+ width: 100%;
417
+ min-width: 0;
418
+ min-height: var(--combobox-input-height);
419
+ height: var(--combobox-input-height);
420
+ padding: var(--combobox-input-block-padding) calc(26px + (var(--combobox-input-inline-padding) * 2) + 6px) var(--combobox-input-block-padding) var(--combobox-input-inline-padding);
421
+ border: 1px solid var(--input-border);
422
+ border-radius: var(--border-radius-base, 0.3125rem);
423
+ background: var(--input-background);
424
+ color: var(--input-text);
425
+ font: inherit;
426
+ font-size: var(--font-size-sm, 0.875rem);
427
+ font-weight: var(--font-weight-md, 500);
428
+ line-height: normal;
429
+ appearance: none;
430
+ -webkit-appearance: none;
431
+ box-sizing: border-box;
432
+ }
433
+
434
+ .text-input::placeholder {
435
+ color: var(--placeholder-color);
436
+ }
437
+
438
+ .text-input:focus-visible {
439
+ outline: 2px solid var(--color-focus-ring, var(--color-primary, #7C4DFF));
440
+ outline-offset: 2px;
441
+ }
442
+
443
+ .dropdown-toggle {
444
+ position: absolute;
445
+ right: 6px;
446
+ top: 50%;
447
+ transform: translateY(-50%);
448
+ width: 26px;
449
+ height: 26px;
450
+ padding: 0;
451
+ border: none;
452
+ background: transparent;
453
+ cursor: pointer;
454
+ display: flex;
455
+ align-items: center;
456
+ justify-content: center;
457
+ flex-shrink: 0;
458
+ border-radius: var(--border-radius-base, 0.3125rem);
459
+ }
460
+
461
+ .dropdown-toggle:hover {
462
+ background: var(--color-header-menu-item-hover, #e6dcff);
463
+ }
464
+
465
+ .input-field-row:focus-within .dropdown-toggle {
466
+ background: var(--color-header-menu-item-hover, #e6dcff);
467
+ }
468
+
469
+ .dropdown-toggle:focus-visible {
470
+ outline: 2px solid var(--color-focus-ring, var(--color-primary, #7C4DFF));
471
+ outline-offset: 2px;
472
+ background: var(--color-header-menu-item-hover, #e6dcff);
473
+ }
474
+
475
+ .dropdown-toggle svg {
476
+ width: 14px;
477
+ height: 14px;
478
+ display: block;
479
+ }
480
+ }
481
+ `];
482
+ _inputId = `solid-ui-combobox-input-${Combobox._nextId++}`;
483
+ _listboxId = `solid-ui-combobox-listbox-${Combobox._nextId++}`;
484
+ _suggestionRequestId = 0;
485
+ constructor() {
486
+ super();
487
+ this.label = 'Select an option';
488
+ this.placeholder = 'Type to search';
489
+ this.theme = 'light';
490
+ this.layout = 'desktop';
491
+ this.options = [];
492
+ this.value = '';
493
+ this.inputValue = '';
494
+ this._popupOpen = false;
495
+ this._activeIndex = -1;
496
+ }
497
+ connectedCallback() {
498
+ super.connectedCallback();
499
+ document.addEventListener('pointerdown', this._handleDocumentPointerDown);
500
+ window.addEventListener('resize', this._handleViewportChange);
501
+ window.addEventListener('scroll', this._handleViewportChange, true);
502
+ }
503
+ disconnectedCallback() {
504
+ this._detachPopupPortal();
505
+ document.removeEventListener('pointerdown', this._handleDocumentPointerDown);
506
+ window.removeEventListener('resize', this._handleViewportChange);
507
+ window.removeEventListener('scroll', this._handleViewportChange, true);
508
+ super.disconnectedCallback();
509
+ }
510
+ _getPopupPortalContainer() {
511
+ return this.closest('dialog[open]') || document.body;
512
+ }
513
+ _ensurePopupPortal() {
514
+ const nextContainer = this._getPopupPortalContainer();
515
+ if (this._popupPortalHost && this._popupPortalRoot && this._popupPortalContainer === nextContainer) {
516
+ return;
517
+ }
518
+ this._detachPopupPortal();
519
+ this._popupPortalHost = document.createElement('div');
520
+ this._popupPortalHost.setAttribute('data-solid-ui-combobox-portal', '');
521
+ this._popupPortalHost.style.position = 'fixed';
522
+ this._popupPortalHost.style.inset = '0 auto auto 0';
523
+ this._popupPortalHost.style.zIndex = '2147483647';
524
+ this._popupPortalHost.style.pointerEvents = 'none';
525
+ this._popupPortalHost.style.boxSizing = 'border-box';
526
+ this._popupPortalRoot = this._popupPortalHost.attachShadow({
527
+ mode: 'open'
528
+ });
529
+ const styleSheets = (Array.isArray(Combobox.styles) ? Combobox.styles : [Combobox.styles]).map(style => style?.styleSheet).filter(styleSheet => Boolean(styleSheet));
530
+ if (styleSheets.length > 0) {
531
+ this._popupPortalRoot.adoptedStyleSheets = styleSheets;
532
+ }
533
+ nextContainer.appendChild(this._popupPortalHost);
534
+ this._popupPortalContainer = nextContainer;
535
+ }
536
+ _detachPopupPortal() {
537
+ if (this._popupPortalRoot) {
538
+ D(null, this._popupPortalRoot);
539
+ }
540
+ if (this._popupPortalHost?.parentNode) {
541
+ this._popupPortalHost.parentNode.removeChild(this._popupPortalHost);
542
+ }
543
+ this._popupPortalHost = null;
544
+ this._popupPortalRoot = null;
545
+ this._popupPortalContainer = null;
546
+ }
547
+ _updatePopupPosition() {
548
+ this._ensurePopupPortal();
549
+ const rect = this.getBoundingClientRect();
550
+ const maxHeight = Math.min(288, Math.max(120, window.innerHeight - rect.bottom - 12));
551
+ if (this._popupPortalHost) {
552
+ this._popupPortalHost.style.top = `${Math.round(rect.bottom + 2)}px`;
553
+ this._popupPortalHost.style.left = `${Math.round(rect.left)}px`;
554
+ this._popupPortalHost.style.width = `${Math.round(rect.width)}px`;
555
+ this._popupPortalHost.style.maxHeight = `${Math.round(maxHeight)}px`;
556
+ this._popupPortalHost.style.height = '0px';
557
+ }
558
+ }
559
+ _openPopup() {
560
+ const popupOptions = this._getDisplayedOptions();
561
+ this._popupOpen = true;
562
+ this._updatePopupPosition();
563
+ this._activeIndex = findOptionIndexByValue(popupOptions, this.value);
564
+ if (this._activeIndex < 0) {
565
+ this._activeIndex = getFirstEnabledIndex(popupOptions);
566
+ }
567
+ }
568
+ _closePopup() {
569
+ this._popupOpen = false;
570
+ if (this._popupPortalRoot) {
571
+ D(null, this._popupPortalRoot);
572
+ }
573
+ }
574
+ updated(changedProperties) {
575
+ if (this._popupOpen) {
576
+ this._updatePopupPosition();
577
+ if (this._popupPortalRoot) {
578
+ D(this._renderPopup(), this._popupPortalRoot);
579
+ }
580
+ } else if (this._popupPortalRoot) {
581
+ D(null, this._popupPortalRoot);
582
+ }
583
+ if ((changedProperties.has('value') || changedProperties.has('options')) && this.value) {
584
+ const selectedOption = this.options.find(option => option.value === this.value);
585
+ if (selectedOption && this.inputValue !== selectedOption.label) {
586
+ this.inputValue = selectedOption.label;
587
+ }
588
+ }
589
+ }
590
+ _getSelectedIndex() {
591
+ return findOptionIndexByValue(this.options, this.value);
592
+ }
593
+ _getSelectedOption() {
594
+ const selectedIndex = this._getSelectedIndex();
595
+ if (selectedIndex >= 0) {
596
+ return this.options[selectedIndex];
597
+ }
598
+ return this.options[0];
599
+ }
600
+ _getDisplayedOptions() {
601
+ const selectedOption = this._getSelectedOption();
602
+ if (!selectedOption) {
603
+ return this.options;
604
+ }
605
+ return [selectedOption, ...this.options.filter(option => option.value !== selectedOption.value)];
606
+ }
607
+ _getActiveOption() {
608
+ const popupOptions = this._getDisplayedOptions();
609
+ if (this._activeIndex < 0) {
610
+ return undefined;
611
+ }
612
+ return popupOptions[this._activeIndex];
613
+ }
614
+ async _loadSuggestions(query) {
615
+ if (!this.suggestionProvider) {
616
+ this._openPopup();
617
+ return;
618
+ }
619
+ const requestId = ++this._suggestionRequestId;
620
+ const suggestions = await this.suggestionProvider(query);
621
+ if (requestId !== this._suggestionRequestId) {
622
+ return;
623
+ }
624
+ this.options = suggestions;
625
+ this._openPopup();
626
+ }
627
+ async _handleInputChange(e) {
628
+ const query = e.target.value;
629
+ this.inputValue = query;
630
+ this.value = '';
631
+ this.dispatchEvent(new CustomEvent('input', {
632
+ detail: {
633
+ value: query
634
+ },
635
+ bubbles: true,
636
+ composed: true
637
+ }));
638
+ await this._loadSuggestions(query);
639
+ }
640
+ _handleInputKeydown(e) {
641
+ if (e.key === ' ' || e.key === 'Spacebar') {
642
+ return;
643
+ }
644
+ const popupOptions = this._getDisplayedOptions();
645
+ const action = getListboxActionFromKey(e.key);
646
+ if (action === 'none') {
647
+ return;
648
+ }
649
+ e.preventDefault();
650
+ switch (action) {
651
+ case 'close':
652
+ this._closePopup();
653
+ break;
654
+ case 'first':
655
+ if (!this._popupOpen) {
656
+ this._openPopup();
657
+ }
658
+ this._activeIndex = getFirstEnabledIndex(popupOptions);
659
+ break;
660
+ case 'last':
661
+ if (!this._popupOpen) {
662
+ this._openPopup();
663
+ }
664
+ this._activeIndex = getLastEnabledIndex(popupOptions);
665
+ break;
666
+ case 'next':
667
+ if (!this._popupOpen) {
668
+ this._openPopup();
669
+ break;
670
+ }
671
+ this._activeIndex = getNextEnabledIndex(this._activeIndex, popupOptions, 1);
672
+ break;
673
+ case 'previous':
674
+ if (!this._popupOpen) {
675
+ this._openPopup();
676
+ break;
677
+ }
678
+ this._activeIndex = getNextEnabledIndex(this._activeIndex, popupOptions, -1);
679
+ break;
680
+ case 'select':
681
+ if (!this._popupOpen) {
682
+ this._openPopup();
683
+ break;
684
+ }
685
+ this._selectActiveOption();
686
+ break;
687
+ default:
688
+ break;
689
+ }
690
+ }
691
+ _getOptionId(option, index) {
692
+ return `${this._listboxId}-option-${index}-${option.value}`;
693
+ }
694
+ _selectValueFromDropdown(value) {
695
+ const selectedOption = this.options.find(option => option.value === value);
696
+ this.value = value;
697
+ this.inputValue = selectedOption?.label ?? value;
698
+ this.dispatchEvent(new CustomEvent('change', {
699
+ detail: {
700
+ value,
701
+ label: this.inputValue,
702
+ option: selectedOption
703
+ },
704
+ bubbles: true,
705
+ composed: true
706
+ }));
707
+ this._closePopup();
708
+ }
709
+ _selectActiveOption() {
710
+ const activeOption = this._getActiveOption();
711
+ if (activeOption && !activeOption.disabled) {
712
+ this._selectValueFromDropdown(activeOption.value);
713
+ }
714
+ }
715
+ _renderPopup() {
716
+ const popupOptions = this._getDisplayedOptions();
717
+ const selectedOption = this._getSelectedOption();
718
+ const activeOption = this._activeIndex >= 0 ? popupOptions[this._activeIndex] : undefined;
719
+ return lit_html_b`
720
+ <div class="popup-box" style="pointer-events: auto; max-height: inherit; overflow: auto;">
721
+ <div class="select-options-section">
722
+ ${renderListbox({
723
+ selectedOption,
724
+ activeOption,
725
+ options: popupOptions,
726
+ listboxId: this._listboxId,
727
+ getOptionId: (option, index) => this._getOptionId(option, index),
728
+ onOptionSelect: option => this._selectValueFromDropdown(option.value)
729
+ })}
730
+ </div>
731
+ </div>
732
+ `;
733
+ }
734
+ render() {
735
+ const activeOption = this._getActiveOption();
736
+ const activeDescendant = this._popupOpen && activeOption ? this._getOptionId(activeOption, this._activeIndex) : undefined;
737
+ const ariaLabel = this.label ? A : this.getAttribute('aria-label') || this.placeholder || 'Combobox';
738
+ return lit_html_b`
739
+ <div class="combobox-root">
740
+ ${this.label ? lit_html_b`<label class="text-label" for="${this._inputId}">${this.label}</label>` : null}
741
+ <div class="input-field-row">
742
+ <input
743
+ id="${this._inputId}"
744
+ class="text-input"
745
+ part="input"
746
+ type="text"
747
+ role="combobox"
748
+ aria-autocomplete="list"
749
+ aria-label="${ariaLabel}"
750
+ aria-expanded="${this._popupOpen}"
751
+ aria-controls="${this._listboxId}"
752
+ aria-activedescendant="${activeDescendant ?? ''}"
753
+ placeholder="${this.placeholder}"
754
+ .value="${this.inputValue}"
755
+ @focus="${() => this._openPopup()}"
756
+ @input="${this._handleInputChange}"
757
+ @keydown="${this._handleInputKeydown}"
758
+ />
759
+ <button
760
+ class="dropdown-toggle"
761
+ type="button"
762
+ aria-label="Show options"
763
+ aria-expanded="${this._popupOpen}"
764
+ @click="${() => this._popupOpen ? this._closePopup() : this._openPopup()}"
765
+ >
766
+ ${downArrowIcon}
767
+ </button>
768
+ </div>
769
+ </div>
770
+ `;
771
+ }
772
+ }
773
+ ;// ./src/v2/components/forms/combobox/index.ts
774
+
775
+
776
+ const COMBOBOX_TAG_NAME = 'solid-ui-combobox';
777
+ if (!customElements.get(COMBOBOX_TAG_NAME)) {
778
+ customElements.define(COMBOBOX_TAG_NAME, Combobox);
779
+ }
780
+ /******/ })()
781
+ ;
782
+ //# sourceMappingURL=index.js.map