solid-ui 3.1.0 → 3.1.1

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 (242) hide show
  1. package/README.md +22 -4
  2. package/dist/components/button/index.d.ts +1 -0
  3. package/dist/components/button/index.esm.js +546 -0
  4. package/dist/components/button/index.esm.js.map +1 -0
  5. package/dist/components/button/index.esm.min.js +268 -0
  6. package/dist/components/button/index.esm.min.js.map +1 -0
  7. package/dist/components/button/index.js +428 -0
  8. package/dist/components/button/index.js.map +1 -0
  9. package/dist/components/button/index.min.js +257 -0
  10. package/dist/components/button/index.min.js.map +1 -0
  11. package/dist/components/combobox/index.d.ts +1 -0
  12. package/dist/components/combobox/index.esm.js +953 -0
  13. package/dist/components/combobox/index.esm.js.map +1 -0
  14. package/dist/components/combobox/index.esm.min.js +339 -0
  15. package/dist/components/combobox/index.esm.min.js.map +1 -0
  16. package/dist/components/combobox/index.js +782 -0
  17. package/dist/components/combobox/index.js.map +1 -0
  18. package/dist/components/combobox/index.min.js +328 -0
  19. package/dist/components/combobox/index.min.js.map +1 -0
  20. package/dist/components/footer/index.d.ts +1 -1
  21. package/dist/components/footer/index.esm.js +105 -63
  22. package/dist/components/footer/index.esm.js.map +1 -1
  23. package/dist/components/footer/index.esm.min.js +4 -4
  24. package/dist/components/footer/index.esm.min.js.map +1 -1
  25. package/dist/components/footer/index.js +103 -52
  26. package/dist/components/footer/index.js.map +1 -1
  27. package/dist/components/footer/index.min.js +8 -8
  28. package/dist/components/footer/index.min.js.map +1 -1
  29. package/dist/components/header/index.d.ts +1 -1
  30. package/dist/components/header/index.esm.js +1405 -1363
  31. package/dist/components/header/index.esm.js.map +1 -1
  32. package/dist/components/header/index.esm.min.js +857 -815
  33. package/dist/components/header/index.esm.min.js.map +1 -1
  34. package/dist/components/header/index.js +61 -19
  35. package/dist/components/header/index.js.map +1 -1
  36. package/dist/components/header/index.min.js +53 -11
  37. package/dist/components/header/index.min.js.map +1 -1
  38. package/dist/components/loginButton/index.d.ts +1 -1
  39. package/dist/components/loginButton/index.esm.js +50 -8
  40. package/dist/components/loginButton/index.esm.js.map +1 -1
  41. package/dist/components/loginButton/index.esm.min.js +60 -18
  42. package/dist/components/loginButton/index.esm.min.js.map +1 -1
  43. package/dist/components/loginButton/index.js +49 -7
  44. package/dist/components/loginButton/index.js.map +1 -1
  45. package/dist/components/loginButton/index.min.js +58 -16
  46. package/dist/components/loginButton/index.min.js.map +1 -1
  47. package/dist/components/photoCapture/index.d.ts +1 -0
  48. package/dist/components/photoCapture/index.esm.js +966 -0
  49. package/dist/components/photoCapture/index.esm.js.map +1 -0
  50. package/dist/components/photoCapture/index.esm.min.js +304 -0
  51. package/dist/components/photoCapture/index.esm.min.js.map +1 -0
  52. package/dist/components/photoCapture/index.js +848 -0
  53. package/dist/components/photoCapture/index.js.map +1 -0
  54. package/dist/components/photoCapture/index.min.js +293 -0
  55. package/dist/components/photoCapture/index.min.js.map +1 -0
  56. package/dist/components/select/index.d.ts +1 -0
  57. package/dist/components/select/index.esm.js +939 -0
  58. package/dist/components/select/index.esm.js.map +1 -0
  59. package/dist/components/select/index.esm.min.js +370 -0
  60. package/dist/components/select/index.esm.min.js.map +1 -0
  61. package/dist/components/select/index.js +771 -0
  62. package/dist/components/select/index.js.map +1 -0
  63. package/dist/components/select/index.min.js +359 -0
  64. package/dist/components/select/index.min.js.map +1 -0
  65. package/dist/components/signupButton/index.d.ts +1 -1
  66. package/dist/components/signupButton/index.esm.js +2 -2
  67. package/dist/components/signupButton/index.esm.js.map +1 -1
  68. package/dist/components/signupButton/index.esm.min.js +2 -2
  69. package/dist/components/signupButton/index.esm.min.js.map +1 -1
  70. package/dist/components/signupButton/index.js +2 -2
  71. package/dist/components/signupButton/index.js.map +1 -1
  72. package/dist/components/signupButton/index.min.js.map +1 -1
  73. package/dist/login/login.d.ts.map +1 -1
  74. package/dist/login/login.js +12 -2
  75. package/dist/login/login.js.map +1 -1
  76. package/dist/matrix/matrix.js.map +1 -1
  77. package/dist/solid-ui.esm.js +103 -61
  78. package/dist/solid-ui.esm.js.map +1 -1
  79. package/dist/solid-ui.esm.min.js +6 -6
  80. package/dist/solid-ui.esm.min.js.map +1 -1
  81. package/dist/solid-ui.js +102 -51
  82. package/dist/solid-ui.js.map +1 -1
  83. package/dist/solid-ui.min.js +9 -9
  84. package/dist/solid-ui.min.js.map +1 -1
  85. package/dist/tabs.js +2 -2
  86. package/dist/tabs.js.map +1 -1
  87. package/dist/v2/components/actions/button/Button.d.ts +97 -0
  88. package/dist/v2/components/actions/button/Button.d.ts.map +1 -0
  89. package/dist/v2/components/actions/button/Button.js +325 -0
  90. package/dist/v2/components/actions/button/Button.js.map +1 -0
  91. package/dist/v2/components/actions/button/Button.test.d.ts +2 -0
  92. package/dist/v2/components/actions/button/Button.test.d.ts.map +1 -0
  93. package/dist/v2/components/actions/button/Button.test.js +117 -0
  94. package/dist/v2/components/actions/button/Button.test.js.map +1 -0
  95. package/dist/v2/components/actions/button/index.d.ts +8 -0
  96. package/dist/v2/components/actions/button/index.d.ts.map +1 -0
  97. package/dist/v2/components/actions/button/index.js +7 -0
  98. package/dist/v2/components/actions/button/index.js.map +1 -0
  99. package/dist/v2/components/auth/loginButton/LoginButton.d.ts.map +1 -0
  100. package/dist/v2/components/{loginButton → auth/loginButton}/LoginButton.js +46 -4
  101. package/dist/v2/components/auth/loginButton/LoginButton.js.map +1 -0
  102. package/dist/v2/components/auth/loginButton/LoginButton.test.d.ts.map +1 -0
  103. package/dist/v2/components/auth/loginButton/LoginButton.test.js.map +1 -0
  104. package/dist/v2/components/auth/loginButton/downArrow.d.ts.map +1 -0
  105. package/dist/v2/components/auth/loginButton/downArrow.js.map +1 -0
  106. package/dist/v2/components/auth/loginButton/index.d.ts.map +1 -0
  107. package/dist/v2/components/auth/loginButton/index.js.map +1 -0
  108. package/dist/v2/components/auth/signupButton/SignupButton.d.ts.map +1 -0
  109. package/dist/v2/components/auth/signupButton/SignupButton.js.map +1 -0
  110. package/dist/v2/components/auth/signupButton/SignupButton.test.d.ts.map +1 -0
  111. package/dist/v2/components/auth/signupButton/SignupButton.test.js.map +1 -0
  112. package/dist/v2/components/auth/signupButton/index.d.ts.map +1 -0
  113. package/dist/v2/components/auth/signupButton/index.js.map +1 -0
  114. package/dist/v2/components/forms/combobox/Combobox.d.ts +82 -0
  115. package/dist/v2/components/forms/combobox/Combobox.d.ts.map +1 -0
  116. package/dist/v2/components/forms/combobox/Combobox.js +506 -0
  117. package/dist/v2/components/forms/combobox/Combobox.js.map +1 -0
  118. package/dist/v2/components/forms/combobox/Combobox.test.d.ts +2 -0
  119. package/dist/v2/components/forms/combobox/Combobox.test.d.ts.map +1 -0
  120. package/dist/v2/components/forms/combobox/Combobox.test.js +201 -0
  121. package/dist/v2/components/forms/combobox/Combobox.test.js.map +1 -0
  122. package/dist/v2/components/forms/combobox/comboboxTypes.d.ts +6 -0
  123. package/dist/v2/components/forms/combobox/comboboxTypes.d.ts.map +1 -0
  124. package/dist/v2/components/forms/combobox/comboboxTypes.js +2 -0
  125. package/dist/v2/components/forms/combobox/comboboxTypes.js.map +1 -0
  126. package/dist/v2/components/forms/combobox/index.d.ts +3 -0
  127. package/dist/v2/components/forms/combobox/index.d.ts.map +1 -0
  128. package/dist/v2/components/forms/combobox/index.js +7 -0
  129. package/dist/v2/components/forms/combobox/index.js.map +1 -0
  130. package/dist/v2/components/forms/select/Select.d.ts +68 -0
  131. package/dist/v2/components/forms/select/Select.d.ts.map +1 -0
  132. package/dist/v2/components/forms/select/Select.js +499 -0
  133. package/dist/v2/components/forms/select/Select.js.map +1 -0
  134. package/dist/v2/components/forms/select/Select.test.d.ts +2 -0
  135. package/dist/v2/components/forms/select/Select.test.d.ts.map +1 -0
  136. package/dist/v2/components/forms/select/Select.test.js +168 -0
  137. package/dist/v2/components/forms/select/Select.test.js.map +1 -0
  138. package/dist/v2/components/forms/select/index.d.ts +3 -0
  139. package/dist/v2/components/forms/select/index.d.ts.map +1 -0
  140. package/dist/v2/components/forms/select/index.js +7 -0
  141. package/dist/v2/components/forms/select/index.js.map +1 -0
  142. package/dist/v2/components/forms/shared/downArrow.d.ts +2 -0
  143. package/dist/v2/components/forms/shared/downArrow.d.ts.map +1 -0
  144. package/dist/v2/components/forms/shared/downArrow.js +10 -0
  145. package/dist/v2/components/forms/shared/downArrow.js.map +1 -0
  146. package/dist/v2/components/forms/shared/keyboard.d.ts +7 -0
  147. package/dist/v2/components/forms/shared/keyboard.d.ts.map +1 -0
  148. package/dist/v2/components/forms/shared/keyboard.js +56 -0
  149. package/dist/v2/components/forms/shared/keyboard.js.map +1 -0
  150. package/dist/v2/components/forms/shared/listboxStyles.d.ts +2 -0
  151. package/dist/v2/components/forms/shared/listboxStyles.d.ts.map +1 -0
  152. package/dist/v2/components/forms/shared/listboxStyles.js +96 -0
  153. package/dist/v2/components/forms/shared/listboxStyles.js.map +1 -0
  154. package/dist/v2/components/forms/shared/listboxTemplate.d.ts +11 -0
  155. package/dist/v2/components/forms/shared/listboxTemplate.d.ts.map +1 -0
  156. package/dist/v2/components/forms/shared/listboxTemplate.js +37 -0
  157. package/dist/v2/components/forms/shared/listboxTemplate.js.map +1 -0
  158. package/dist/v2/components/forms/shared/optionTypes.d.ts +6 -0
  159. package/dist/v2/components/forms/shared/optionTypes.d.ts.map +1 -0
  160. package/dist/v2/components/forms/shared/optionTypes.js +2 -0
  161. package/dist/v2/components/forms/shared/optionTypes.js.map +1 -0
  162. package/dist/v2/components/layout/footer/Footer.d.ts.map +1 -0
  163. package/dist/v2/components/{footer → layout/footer}/Footer.js +1 -1
  164. package/dist/v2/components/layout/footer/Footer.js.map +1 -0
  165. package/dist/v2/components/layout/footer/Footer.test.d.ts.map +1 -0
  166. package/dist/v2/components/layout/footer/Footer.test.js.map +1 -0
  167. package/dist/v2/components/layout/footer/index.d.ts.map +1 -0
  168. package/dist/v2/components/layout/footer/index.js.map +1 -0
  169. package/dist/v2/components/{header → layout/header}/Header.d.ts +2 -2
  170. package/dist/v2/components/layout/header/Header.d.ts.map +1 -0
  171. package/dist/v2/components/{header → layout/header}/Header.js +5 -5
  172. package/dist/v2/components/layout/header/Header.js.map +1 -0
  173. package/dist/v2/components/layout/header/header.test.d.ts.map +1 -0
  174. package/dist/v2/components/layout/header/header.test.js.map +1 -0
  175. package/dist/v2/components/layout/header/index.d.ts.map +1 -0
  176. package/dist/v2/components/layout/header/index.js.map +1 -0
  177. package/dist/v2/components/media/photoCapture/PhotoCapture.d.ts +200 -0
  178. package/dist/v2/components/media/photoCapture/PhotoCapture.d.ts.map +1 -0
  179. package/dist/v2/components/media/photoCapture/PhotoCapture.js +723 -0
  180. package/dist/v2/components/media/photoCapture/PhotoCapture.js.map +1 -0
  181. package/dist/v2/components/media/photoCapture/PhotoCapture.test.d.ts +2 -0
  182. package/dist/v2/components/media/photoCapture/PhotoCapture.test.d.ts.map +1 -0
  183. package/dist/v2/components/media/photoCapture/PhotoCapture.test.js +157 -0
  184. package/dist/v2/components/media/photoCapture/PhotoCapture.test.js.map +1 -0
  185. package/dist/v2/components/media/photoCapture/index.d.ts +3 -0
  186. package/dist/v2/components/media/photoCapture/index.d.ts.map +1 -0
  187. package/dist/v2/components/media/photoCapture/index.js +7 -0
  188. package/dist/v2/components/media/photoCapture/index.js.map +1 -0
  189. package/dist/versionInfo.js +14 -14
  190. package/dist/widgets/buttons.d.ts +1 -0
  191. package/dist/widgets/buttons.d.ts.map +1 -1
  192. package/dist/widgets/buttons.js +15 -2
  193. package/dist/widgets/buttons.js.map +1 -1
  194. package/package.json +223 -157
  195. package/dist/v2/components/footer/Footer.d.ts.map +0 -1
  196. package/dist/v2/components/footer/Footer.js.map +0 -1
  197. package/dist/v2/components/footer/Footer.test.d.ts.map +0 -1
  198. package/dist/v2/components/footer/Footer.test.js.map +0 -1
  199. package/dist/v2/components/footer/index.d.ts.map +0 -1
  200. package/dist/v2/components/footer/index.js.map +0 -1
  201. package/dist/v2/components/header/Header.d.ts.map +0 -1
  202. package/dist/v2/components/header/Header.js.map +0 -1
  203. package/dist/v2/components/header/header.test.d.ts.map +0 -1
  204. package/dist/v2/components/header/header.test.js.map +0 -1
  205. package/dist/v2/components/header/index.d.ts.map +0 -1
  206. package/dist/v2/components/header/index.js.map +0 -1
  207. package/dist/v2/components/loginButton/LoginButton.d.ts.map +0 -1
  208. package/dist/v2/components/loginButton/LoginButton.js.map +0 -1
  209. package/dist/v2/components/loginButton/LoginButton.test.d.ts.map +0 -1
  210. package/dist/v2/components/loginButton/LoginButton.test.js.map +0 -1
  211. package/dist/v2/components/loginButton/downArrow.d.ts.map +0 -1
  212. package/dist/v2/components/loginButton/downArrow.js.map +0 -1
  213. package/dist/v2/components/loginButton/index.d.ts.map +0 -1
  214. package/dist/v2/components/loginButton/index.js.map +0 -1
  215. package/dist/v2/components/signupButton/SignupButton.d.ts.map +0 -1
  216. package/dist/v2/components/signupButton/SignupButton.js.map +0 -1
  217. package/dist/v2/components/signupButton/SignupButton.test.d.ts.map +0 -1
  218. package/dist/v2/components/signupButton/SignupButton.test.js.map +0 -1
  219. package/dist/v2/components/signupButton/index.d.ts.map +0 -1
  220. package/dist/v2/components/signupButton/index.js.map +0 -1
  221. /package/dist/v2/components/{loginButton → auth/loginButton}/LoginButton.d.ts +0 -0
  222. /package/dist/v2/components/{loginButton → auth/loginButton}/LoginButton.test.d.ts +0 -0
  223. /package/dist/v2/components/{loginButton → auth/loginButton}/LoginButton.test.js +0 -0
  224. /package/dist/v2/components/{loginButton → auth/loginButton}/downArrow.d.ts +0 -0
  225. /package/dist/v2/components/{loginButton → auth/loginButton}/downArrow.js +0 -0
  226. /package/dist/v2/components/{loginButton → auth/loginButton}/index.d.ts +0 -0
  227. /package/dist/v2/components/{loginButton → auth/loginButton}/index.js +0 -0
  228. /package/dist/v2/components/{signupButton → auth/signupButton}/SignupButton.d.ts +0 -0
  229. /package/dist/v2/components/{signupButton → auth/signupButton}/SignupButton.js +0 -0
  230. /package/dist/v2/components/{signupButton → auth/signupButton}/SignupButton.test.d.ts +0 -0
  231. /package/dist/v2/components/{signupButton → auth/signupButton}/SignupButton.test.js +0 -0
  232. /package/dist/v2/components/{signupButton → auth/signupButton}/index.d.ts +0 -0
  233. /package/dist/v2/components/{signupButton → auth/signupButton}/index.js +0 -0
  234. /package/dist/v2/components/{footer → layout/footer}/Footer.d.ts +0 -0
  235. /package/dist/v2/components/{footer → layout/footer}/Footer.test.d.ts +0 -0
  236. /package/dist/v2/components/{footer → layout/footer}/Footer.test.js +0 -0
  237. /package/dist/v2/components/{footer → layout/footer}/index.d.ts +0 -0
  238. /package/dist/v2/components/{footer → layout/footer}/index.js +0 -0
  239. /package/dist/v2/components/{header → layout/header}/header.test.d.ts +0 -0
  240. /package/dist/v2/components/{header → layout/header}/header.test.js +0 -0
  241. /package/dist/v2/components/{header → layout/header}/index.d.ts +0 -0
  242. /package/dist/v2/components/{header → layout/header}/index.js +0 -0
@@ -0,0 +1,771 @@
1
+ /******/ (() => { // webpackBootstrap
2
+ /******/ "use strict";
3
+
4
+ // UNUSED EXPORTS: Select
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/listboxTemplate.ts
61
+
62
+ function renderListbox(args) {
63
+ const {
64
+ options,
65
+ selectedOption,
66
+ activeOption,
67
+ listboxId,
68
+ getOptionId,
69
+ onOptionSelect
70
+ } = args;
71
+ return lit_html_b`
72
+ <ul
73
+ class="listbox"
74
+ id="${listboxId ?? ''}"
75
+ part="listbox"
76
+ role="listbox"
77
+ aria-orientation="vertical"
78
+ >
79
+ ${options.map((option, index) => {
80
+ const isSelected = option.value === selectedOption?.value;
81
+ const isActive = option.value === activeOption?.value;
82
+ const optionId = getOptionId?.(option, index);
83
+ return lit_html_b`
84
+ <li
85
+ id="${optionId ?? ''}"
86
+ class="listbox-item${isSelected ? ' listbox-item-selected' : ''}${isActive ? ' listbox-item-active' : ''}${option.disabled ? ' listbox-item-disabled' : ''}"
87
+ part="option${isSelected ? ' selected-option' : ''}${isActive ? ' active-option' : ''}${option.disabled ? ' disabled-option' : ''}"
88
+ role="option"
89
+ aria-selected="${isSelected}"
90
+ aria-disabled="${option.disabled ? 'true' : 'false'}"
91
+ @click="${() => {
92
+ if (!option.disabled) {
93
+ onOptionSelect(option);
94
+ }
95
+ }}"
96
+ >
97
+ ${option.label}
98
+ </li>
99
+ `;
100
+ })}
101
+ </ul>
102
+ `;
103
+ }
104
+ ;// ./src/v2/components/forms/shared/listboxStyles.ts
105
+
106
+ const listboxStyles = i`
107
+ :host { /* default theme */
108
+ --input-background: var(--color-background, #F8F9FB);
109
+ --item-text: var(--color-text-heading, #000000);
110
+ --item-selected-text: var(--color-primary, #7c4dff);
111
+ --item-hover-background: var(--color-header-menu-item-hover, #e6dcff);
112
+ --item-selected-background: var(--color-header-menu-item-selected, #cbb9ff);
113
+ --listbox-z-index: 1;
114
+ }
115
+
116
+ :host([theme='dark']) {
117
+ --input-background: var(--color-background, #1A1A1A);
118
+ --item-text: var(--color-text-heading, #F8F9FB);
119
+ --item-selected-text: var(--color-primary, #7c4dff);
120
+ --item-hover-background: var(--color-header-menu-item-hover, #e6dcff);
121
+ --item-selected-background: var(--color-header-menu-item-selected, #cbb9ff);
122
+ --listbox-z-index: 1;
123
+ }
124
+
125
+ .listbox {
126
+ position: relative;
127
+ top: 0;
128
+ left: 0;
129
+ right: 0;
130
+ display: flex;
131
+ flex-direction: column;
132
+ gap: 0.0625rem;
133
+ margin: 0;
134
+ padding: 0;
135
+ list-style: none;
136
+ border: none;
137
+ border-radius: inherit;
138
+ background: var(--input-background);
139
+ background-color: var(--input-background);
140
+ opacity: 1;
141
+ overflow: hidden;
142
+ padding: 0.25rem;
143
+ z-index: var(--listbox-z-index);
144
+ box-shadow: 0 4px 12px rgba(124, 77, 255, 0.12);
145
+ }
146
+
147
+ .listbox-item {
148
+ display: flex;
149
+ align-items: center;
150
+ gap: var(--spacing-2xs, 0.625rem);
151
+ width: 100%;
152
+ min-height: calc(var(--font-size-sm, 0.875rem) + 1rem);
153
+ padding: 0.5rem var(--spacing-xs, 0.75rem);
154
+ border: none;
155
+ border-radius: var(--border-radius-sm, 0.2rem);
156
+ background: transparent;
157
+ color: var(--item-text);
158
+ cursor: pointer;
159
+ font: inherit;
160
+ font-size: var(--font-size-sm, 0.875rem);
161
+ font-weight: var(--font-weight-normal, 400);
162
+ line-height: normal;
163
+ text-align: left;
164
+ text-decoration: none;
165
+ box-sizing: border-box;
166
+ }
167
+
168
+ .listbox-item:hover {
169
+ background: var(--item-hover-background);
170
+ border-radius: var(--border-radius-sm, 0.2rem);
171
+ }
172
+
173
+ .listbox-item:focus {
174
+ background: var(--item-hover-background);
175
+ border-radius: var(--border-radius-sm, 0.2rem);
176
+ }
177
+
178
+ .listbox-item-active {
179
+ background: var(--item-selected-background);
180
+ color: var(--item-selected-text);
181
+ border-radius: var(--border-radius-sm, 0.2rem);
182
+ outline: none;
183
+ }
184
+
185
+ .listbox-item-active:hover,
186
+ .listbox-item-active:focus {
187
+ color: var(--item-text);
188
+ }
189
+
190
+ .listbox-item-disabled {
191
+ opacity: 0.55;
192
+ cursor: not-allowed;
193
+ }
194
+
195
+ .listbox-item-disabled:hover {
196
+ background: transparent;
197
+ border-radius: 0;
198
+ }
199
+ `;
200
+ ;// ./src/v2/components/forms/shared/keyboard.ts
201
+ /* Move up or down, skip disabled options */
202
+ function getNextEnabledIndex(currentIndex, options, direction) {
203
+ if (!options.length) {
204
+ return -1;
205
+ }
206
+ if (options.every(option => option.disabled)) {
207
+ return -1;
208
+ }
209
+ const optionsCount = options.length;
210
+ let nextIndex = currentIndex;
211
+ do {
212
+ nextIndex = (nextIndex + direction + optionsCount) % optionsCount;
213
+ } while (options[nextIndex].disabled);
214
+ return nextIndex;
215
+ }
216
+
217
+ /* Handle 'Home' and 'End' keys and initial highlight */
218
+ function getFirstEnabledIndex(options) {
219
+ if (!options.length) {
220
+ return -1;
221
+ }
222
+ return getNextEnabledIndex(-1, options, 1);
223
+ }
224
+ function getLastEnabledIndex(options) {
225
+ if (!options.length) {
226
+ return -1;
227
+ }
228
+ return getNextEnabledIndex(options.length, options, -1);
229
+ }
230
+
231
+ /* Sync current value to active index */
232
+ function findOptionIndexByValue(options, value) {
233
+ if (value === undefined) {
234
+ return -1;
235
+ }
236
+ return options.findIndex(option => option.value === value);
237
+ }
238
+
239
+ /* Map keyboard events to actions */
240
+ function getListboxActionFromKey(key) {
241
+ switch (key) {
242
+ case 'ArrowDown':
243
+ return 'next';
244
+ case 'ArrowUp':
245
+ return 'previous';
246
+ case 'Home':
247
+ return 'first';
248
+ case 'End':
249
+ return 'last';
250
+ case 'Enter':
251
+ case ' ':
252
+ return 'select';
253
+ case 'Escape':
254
+ return 'close';
255
+ default:
256
+ return 'none';
257
+ }
258
+ }
259
+ ;// ./src/v2/components/forms/select/Select.ts
260
+
261
+
262
+
263
+
264
+
265
+
266
+
267
+ /* The following keyboard navigation and ARIA support for Select
268
+ were generated by AI Model: GPT-5.4 */
269
+ /* Prompt: can you wire up the keyboard interactions and aria attributes for Select */
270
+ class Select extends lit_element_i {
271
+ static _nextId = 0;
272
+ _popupPortalHost = null;
273
+ _popupPortalRoot = null;
274
+ _popupPortalContainer = null;
275
+ _handleDocumentPointerDown = event => {
276
+ const eventTarget = event.target;
277
+ if (!this._popupOpen || !(eventTarget instanceof Node)) {
278
+ return;
279
+ }
280
+ const eventPath = 'composedPath' in event ? event.composedPath() : [];
281
+ if (eventPath.includes(this)) {
282
+ return;
283
+ }
284
+ if (this._popupPortalHost && eventPath.includes(this._popupPortalHost) || this._popupPortalRoot && eventPath.includes(this._popupPortalRoot)) {
285
+ return;
286
+ }
287
+ if (!this.contains(eventTarget)) {
288
+ this._closePopup();
289
+ }
290
+ };
291
+ _handleViewportChange = () => {
292
+ if (!this._popupOpen) return;
293
+ this._updatePopupPosition();
294
+ };
295
+ static properties = {
296
+ label: {
297
+ type: String,
298
+ reflect: true
299
+ },
300
+ theme: {
301
+ type: String,
302
+ reflect: true
303
+ },
304
+ options: {
305
+ type: Array,
306
+ attribute: false
307
+ },
308
+ layout: {
309
+ type: String,
310
+ reflect: true
311
+ },
312
+ value: {
313
+ type: String,
314
+ reflect: true
315
+ },
316
+ _popupOpen: {
317
+ state: true
318
+ },
319
+ _activeIndex: {
320
+ state: true
321
+ }
322
+ };
323
+ static styles = [listboxStyles, i`
324
+ :host {
325
+ /* default theme */
326
+ display: block;
327
+ width: 100%;
328
+ min-width: 0;
329
+ max-width: 100%;
330
+ position: relative;
331
+ z-index: var(--select-z-index, 400);
332
+ box-sizing: border-box;
333
+ --select-open-z-index: 1000;
334
+ --select-popup-z-index: 1001;
335
+ --select-popup-background: var(--color-background, #f8f9fb);
336
+ --select-trigger-background: var(--color-background, #f8f9fb);
337
+ --select-trigger-toggle-hover-background: var(
338
+ --color-header-menu-item-hover,
339
+ #e6dcff
340
+ );
341
+ --input-background: var(--color-background, #f8f9fb);
342
+ --input-text: var(--color-text, #1a1a1a);
343
+ --input-border: var(--color-border-button-hover, var(--gray-400, #99A1AF));
344
+ --label-color: var(--grey-purple-700, #1a1a1a);
345
+ --placeholder-color: var(--grey-purple-700, #5e546d);
346
+ --select-trigger-text: var(--input-text);
347
+ --popup-background: var(--select-popup-background);
348
+ --popup-text: var(--color-text, #1a1a1a);
349
+ --popup-border: var(--color-border, #e5e7eb);
350
+ --popup-shadow: var(
351
+ --box-shadow-sm,
352
+ 0 1px 4px rgba(124, 77, 255, 0.12)
353
+ );
354
+ }
355
+
356
+ :host([theme='dark']) {
357
+ display: block;
358
+ width: 100%;
359
+ min-width: 0;
360
+ max-width: 100%;
361
+ position: relative;
362
+ z-index: var(--select-z-index, 900);
363
+ box-sizing: border-box;
364
+ --select-open-z-index: 1000;
365
+ --select-popup-z-index: 1001;
366
+ --select-popup-background: var(--color-background, #1a1a1a);
367
+ --select-trigger-background: var(--color-background, #1a1a1a);
368
+ --select-trigger-toggle-hover-background: var(
369
+ --color-header-menu-item-hover,
370
+ #e6dcff
371
+ );
372
+ --input-background: var(--color-background, #1a1a1a);
373
+ --input-text: var(--color-text, #f8f9fb);
374
+ --input-border: var(--color-border-button-hover, var(--gray-400, #99A1AF));
375
+ --label-color: var(--grey-purple-700, #f8f9fb);
376
+ --placeholder-color: var(--grey-purple-700, #c7bfd3);
377
+ --select-trigger-text: var(--input-text);
378
+ --popup-background: var(--select-popup-background);
379
+ --popup-text: var(--color-text, #f8f9fb);
380
+ --popup-border: var(--color-border, #e5e7eb);
381
+ --popup-shadow: var(
382
+ --box-shadow-sm,
383
+ 0 1px 4px rgba(124, 77, 255, 0.12)
384
+ );
385
+ }
386
+
387
+ :host([popup-open]) {
388
+ z-index: var(--select-open-z-index);
389
+ }
390
+
391
+ .select-field-row {
392
+ display: flex;
393
+ flex-direction: row;
394
+ position: relative;
395
+ width: 100%;
396
+ min-width: 0;
397
+ }
398
+
399
+ .select-trigger {
400
+ display: block;
401
+ position: relative;
402
+ width: 100%;
403
+ min-width: 0;
404
+ min-height: var(--select-trigger-height, var(--min-touch-target, 44px));
405
+ height: var(--select-trigger-height, var(--min-touch-target, 44px));
406
+ padding: var(--spacing-xxs, 0.3125rem)
407
+ calc(26px + (var(--select-trigger-inline-padding, var(--spacing-2xs, 0.625rem)) * 2) + 6px)
408
+ var(--spacing-xxs, 0.3125rem)
409
+ var(--select-trigger-inline-padding, var(--spacing-2xs, 0.625rem));
410
+ border-radius: var(--border-radius-base, 0.3125rem);
411
+ background: var(--select-trigger-background);
412
+ border: 1px solid var(--input-border);
413
+ color: var(--select-trigger-text);
414
+ cursor: pointer;
415
+ appearance: none;
416
+ -webkit-appearance: none;
417
+ font-family: inherit;
418
+ font-size: var(--font-size-sm, 0.875rem);
419
+ font-weight: var(--font-weight-md, 500);
420
+ line-height: normal;
421
+ text-align: left;
422
+ white-space: nowrap;
423
+ text-decoration: none;
424
+ box-sizing: border-box;
425
+ }
426
+
427
+ .select-trigger:focus-visible {
428
+ outline: 2px solid var(--color-focus-ring, var(--color-primary, #7C4DFF));
429
+ outline-offset: 2px;
430
+ }
431
+
432
+ .select-trigger-label {
433
+ display: block;
434
+ text-align: left;
435
+ overflow: hidden;
436
+ text-overflow: ellipsis;
437
+ }
438
+
439
+ .select-trigger-toggle {
440
+ position: absolute;
441
+ right: 6px;
442
+ top: 50%;
443
+ transform: translateY(-50%);
444
+ display: flex;
445
+ align-items: center;
446
+ justify-content: center;
447
+ width: 26px;
448
+ height: 26px;
449
+ padding: 0;
450
+ border: none;
451
+ background: transparent;
452
+ cursor: pointer;
453
+ border-radius: var(--border-radius-base, 0.3125rem);
454
+ flex-shrink: 0;
455
+ }
456
+
457
+ .select-trigger-toggle:hover {
458
+ background: var(
459
+ --select-trigger-toggle-hover-background,
460
+ var(--color-header-menu-item-hover, #e6dcff)
461
+ );
462
+ }
463
+
464
+ .select-field-row:focus-within .select-trigger-toggle {
465
+ background: var(
466
+ --select-trigger-toggle-hover-background,
467
+ var(--color-header-menu-item-hover, #e6dcff)
468
+ );
469
+ }
470
+
471
+ .select-trigger-icon {
472
+ display: inline-flex;
473
+ flex: 0 0 auto;
474
+ align-items: center;
475
+ justify-content: center;
476
+ width: 0.75rem;
477
+ height: 0.4375rem;
478
+ pointer-events: none;
479
+ }
480
+
481
+ .select-trigger-icon svg {
482
+ width: 100%;
483
+ height: 100%;
484
+ display: block;
485
+ }
486
+
487
+ .select-options-section {
488
+ position: relative;
489
+ background: var(--popup-background);
490
+ border-radius: inherit;
491
+ isolation: isolate;
492
+ }
493
+
494
+ .popup-box {
495
+ position: absolute;
496
+ top: 0;
497
+ left: 0;
498
+ width: 100%;
499
+ min-width: 100%;
500
+ background: var(--popup-background);
501
+ opacity: 1;
502
+ overflow: hidden;
503
+ color: var(--popup-text);
504
+ box-shadow: var(--popup-shadow);
505
+ border: 1px solid var(--popup-border);
506
+ border-radius: var(--border-radius-md, 0.5rem);
507
+ box-sizing: border-box;
508
+ isolation: isolate;
509
+ z-index: var(--select-popup-z-index);
510
+ }
511
+ `];
512
+ _listboxId = `solid-ui-select-listbox-${Select._nextId++}`;
513
+ constructor() {
514
+ super();
515
+ this.label = 'Select an option';
516
+ this.theme = 'light';
517
+ this.options = [];
518
+ this.layout = 'desktop';
519
+ this.value = '';
520
+ this._popupOpen = false;
521
+ this._activeIndex = -1;
522
+ }
523
+ connectedCallback() {
524
+ super.connectedCallback();
525
+ document.addEventListener('pointerdown', this._handleDocumentPointerDown);
526
+ window.addEventListener('resize', this._handleViewportChange);
527
+ window.addEventListener('scroll', this._handleViewportChange, true);
528
+ }
529
+ disconnectedCallback() {
530
+ this._detachPopupPortal();
531
+ document.removeEventListener('pointerdown', this._handleDocumentPointerDown);
532
+ window.removeEventListener('resize', this._handleViewportChange);
533
+ window.removeEventListener('scroll', this._handleViewportChange, true);
534
+ super.disconnectedCallback();
535
+ }
536
+ updated() {
537
+ this.toggleAttribute('popup-open', this._popupOpen);
538
+ if (this._popupOpen) {
539
+ this._updatePopupPosition();
540
+ if (this._popupPortalRoot) {
541
+ D(this._renderPopup(), this._popupPortalRoot);
542
+ }
543
+ } else if (this._popupPortalRoot) {
544
+ D(null, this._popupPortalRoot);
545
+ }
546
+ }
547
+ _getPopupPortalContainer() {
548
+ return this.closest('dialog[open]') || document.body;
549
+ }
550
+ _ensurePopupPortal() {
551
+ const nextContainer = this._getPopupPortalContainer();
552
+ if (this._popupPortalHost && this._popupPortalRoot && this._popupPortalContainer === nextContainer) {
553
+ return;
554
+ }
555
+ this._detachPopupPortal();
556
+ this._popupPortalHost = document.createElement('div');
557
+ this._popupPortalHost.setAttribute('data-solid-ui-select-portal', '');
558
+ this._popupPortalHost.style.position = 'fixed';
559
+ this._popupPortalHost.style.inset = '0 auto auto 0';
560
+ this._popupPortalHost.style.zIndex = '2147483647';
561
+ this._popupPortalHost.style.pointerEvents = 'none';
562
+ this._popupPortalHost.style.boxSizing = 'border-box';
563
+ this._popupPortalRoot = this._popupPortalHost.attachShadow({
564
+ mode: 'open'
565
+ });
566
+ const styleSheets = (Array.isArray(Select.styles) ? Select.styles : [Select.styles]).map(style => style?.styleSheet).filter(styleSheet => Boolean(styleSheet));
567
+ if (styleSheets.length > 0) {
568
+ this._popupPortalRoot.adoptedStyleSheets = styleSheets;
569
+ }
570
+ nextContainer.appendChild(this._popupPortalHost);
571
+ this._popupPortalContainer = nextContainer;
572
+ }
573
+ _detachPopupPortal() {
574
+ if (this._popupPortalRoot) {
575
+ D(null, this._popupPortalRoot);
576
+ }
577
+ if (this._popupPortalHost?.parentNode) {
578
+ this._popupPortalHost.parentNode.removeChild(this._popupPortalHost);
579
+ }
580
+ this._popupPortalHost = null;
581
+ this._popupPortalRoot = null;
582
+ this._popupPortalContainer = null;
583
+ }
584
+ _updatePopupPosition() {
585
+ this._ensurePopupPortal();
586
+ const rect = this.getBoundingClientRect();
587
+ const maxHeight = Math.min(288, Math.max(120, window.innerHeight - rect.bottom - 12));
588
+ if (this._popupPortalHost) {
589
+ this._popupPortalHost.style.top = `${Math.round(rect.bottom + 2)}px`;
590
+ this._popupPortalHost.style.left = `${Math.round(rect.left)}px`;
591
+ this._popupPortalHost.style.width = `${Math.round(rect.width)}px`;
592
+ this._popupPortalHost.style.maxHeight = `${Math.round(maxHeight)}px`;
593
+ this._popupPortalHost.style.height = '0px';
594
+ }
595
+ }
596
+ _closePopup() {
597
+ this._popupOpen = false;
598
+ this._activeIndex = -1;
599
+ if (this._popupPortalRoot) {
600
+ D(null, this._popupPortalRoot);
601
+ }
602
+ }
603
+ _getSelectedIndex() {
604
+ return findOptionIndexByValue(this.options, this.value);
605
+ }
606
+ _getSelectedOption() {
607
+ const selectedIndex = this._getSelectedIndex();
608
+ if (selectedIndex >= 0) {
609
+ return this.options[selectedIndex];
610
+ }
611
+ return this.options[0];
612
+ }
613
+ _getDisplayedOptions() {
614
+ const selectedOption = this._getSelectedOption();
615
+ if (!selectedOption) {
616
+ return this.options;
617
+ }
618
+ return [selectedOption, ...this.options.filter(option => option.value !== selectedOption.value)];
619
+ }
620
+ _getActiveOption() {
621
+ const popupOptions = this._getDisplayedOptions();
622
+ if (this._activeIndex < 0) {
623
+ return undefined;
624
+ }
625
+ return popupOptions[this._activeIndex];
626
+ }
627
+ _selectValueFromDropdown(uri) {
628
+ this.value = uri;
629
+ this.dispatchEvent(new CustomEvent('change', {
630
+ detail: {
631
+ value: uri
632
+ },
633
+ bubbles: true,
634
+ composed: true
635
+ }));
636
+ this._closePopup();
637
+ }
638
+ _selectActiveOption() {
639
+ const activeOption = this._getActiveOption();
640
+ if (activeOption && !activeOption.disabled) {
641
+ this._selectValueFromDropdown(activeOption.value);
642
+ }
643
+ }
644
+ _openPopup() {
645
+ const popupOptions = this._getDisplayedOptions();
646
+ this._popupOpen = true;
647
+ this._updatePopupPosition();
648
+ this._activeIndex = findOptionIndexByValue(popupOptions, this.value);
649
+ if (this._activeIndex < 0) {
650
+ this._activeIndex = getFirstEnabledIndex(popupOptions);
651
+ }
652
+ }
653
+ _handleTriggerKeydown(event) {
654
+ const popupOptions = this._getDisplayedOptions();
655
+ const action = getListboxActionFromKey(event.key);
656
+ if (action === 'none') {
657
+ return;
658
+ }
659
+ event.preventDefault();
660
+ switch (action) {
661
+ case 'close':
662
+ this._closePopup();
663
+ break;
664
+ case 'first':
665
+ if (!this._popupOpen) {
666
+ this._openPopup();
667
+ }
668
+ this._activeIndex = getFirstEnabledIndex(popupOptions);
669
+ break;
670
+ case 'last':
671
+ if (!this._popupOpen) {
672
+ this._openPopup();
673
+ }
674
+ this._activeIndex = getLastEnabledIndex(popupOptions);
675
+ break;
676
+ case 'next':
677
+ if (!this._popupOpen) {
678
+ this._openPopup();
679
+ break;
680
+ }
681
+ this._activeIndex = getNextEnabledIndex(this._activeIndex, popupOptions, 1);
682
+ break;
683
+ case 'previous':
684
+ if (!this._popupOpen) {
685
+ this._openPopup();
686
+ break;
687
+ }
688
+ this._activeIndex = getNextEnabledIndex(this._activeIndex, popupOptions, -1);
689
+ break;
690
+ case 'select':
691
+ if (!this._popupOpen) {
692
+ this._openPopup();
693
+ break;
694
+ }
695
+ this._selectActiveOption();
696
+ break;
697
+ default:
698
+ break;
699
+ }
700
+ }
701
+ _getOptionId(option, index) {
702
+ return `${this._listboxId}-option-${index}-${option.value}`;
703
+ }
704
+ _renderPopup() {
705
+ const popupOptions = this._getDisplayedOptions();
706
+ const selectedOption = this._getSelectedOption();
707
+ const activeOption = this._getActiveOption();
708
+ return lit_html_b`
709
+ <div class="popup-box" part="popup-box" style="pointer-events: auto; max-height: inherit; overflow: auto;">
710
+ <div class="select-options-section">
711
+ ${renderListbox({
712
+ selectedOption,
713
+ activeOption,
714
+ options: popupOptions,
715
+ listboxId: this._listboxId,
716
+ getOptionId: (option, index) => this._getOptionId(option, index),
717
+ onOptionSelect: option => this._selectValueFromDropdown(option.value)
718
+ })}
719
+ </div>
720
+ </div>
721
+ `;
722
+ }
723
+ render() {
724
+ const selectedOption = this._getSelectedOption();
725
+ const activeOption = this._getActiveOption();
726
+ const triggerLabel = selectedOption?.label ?? this.label;
727
+ const activeDescendant = this._popupOpen && activeOption ? this._getOptionId(activeOption, this._activeIndex) : undefined;
728
+ return lit_html_b`
729
+ <div class="select-field-row">
730
+ <button
731
+ class="select-trigger"
732
+ type="button"
733
+ aria-haspopup="listbox"
734
+ aria-expanded="${this._popupOpen}"
735
+ aria-controls="${this._listboxId}"
736
+ aria-activedescendant="${activeDescendant ?? ''}"
737
+ part="select-trigger"
738
+ @click="${() => this._popupOpen ? this._closePopup() : this._openPopup()}"
739
+ @keydown="${this._handleTriggerKeydown}"
740
+ >
741
+ <span class="select-trigger-label" part="trigger-label"
742
+ >${triggerLabel}</span
743
+ >
744
+ <span class="select-trigger-toggle" part="trigger-toggle">
745
+ <span class="select-trigger-icon" part="trigger-icon" aria-hidden="true"
746
+ >${downArrowIcon}</span
747
+ >
748
+ </span>
749
+ </button>
750
+ </div>
751
+
752
+ <div
753
+ class="select-root"
754
+ aria-label="Select a value"
755
+ @click="${e => {
756
+ if (e.target === e.currentTarget) this._closePopup();
757
+ }}"
758
+ ></div>
759
+ `;
760
+ }
761
+ }
762
+ ;// ./src/v2/components/forms/select/index.ts
763
+
764
+
765
+ const SELECT_TAG_NAME = 'solid-ui-select';
766
+ if (!customElements.get(SELECT_TAG_NAME)) {
767
+ customElements.define(SELECT_TAG_NAME, Select);
768
+ }
769
+ /******/ })()
770
+ ;
771
+ //# sourceMappingURL=index.js.map