solid-ui 3.1.3-10 → 3.1.3-11

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 (173) hide show
  1. package/dist/_virtual/~icons/svg-spinners/3-dots-fade.cjs.js +2 -0
  2. package/dist/_virtual/~icons/svg-spinners/3-dots-fade.cjs.js.map +1 -0
  3. package/dist/_virtual/~icons/svg-spinners/3-dots-fade.esm.js +11 -0
  4. package/dist/_virtual/~icons/svg-spinners/3-dots-fade.esm.js.map +1 -0
  5. package/dist/chunks/{DialogProvider-CrvbR_fd.js → DialogProvider-ge2aA77F.js} +3 -3
  6. package/dist/chunks/DialogProvider-ge2aA77F.js.map +1 -0
  7. package/dist/chunks/{account-Ma2Ipfjx.js → account-CdqIoTsl.js} +11 -11
  8. package/dist/chunks/{account-Ma2Ipfjx.js.map → account-CdqIoTsl.js.map} +1 -1
  9. package/dist/chunks/{auth-BI22fz6P.js → auth-D8B5yczR.js} +9 -9
  10. package/dist/chunks/{auth-BI22fz6P.js.map → auth-D8B5yczR.js.map} +1 -1
  11. package/dist/chunks/{avatar-DN7FzC2N.js → avatar-DNGFKkhm.js} +4 -4
  12. package/dist/chunks/{avatar-DN7FzC2N.js.map → avatar-DNGFKkhm.js.map} +1 -1
  13. package/dist/chunks/{button-DHahwxqn.js → button-oanBb_ha.js} +2 -2
  14. package/dist/chunks/{button-DHahwxqn.js.map → button-oanBb_ha.js.map} +1 -1
  15. package/dist/chunks/combobox-Dav1bNHS.js +734 -0
  16. package/dist/chunks/combobox-Dav1bNHS.js.map +1 -0
  17. package/dist/chunks/{combobox-option-DB6KGb7o.js → combobox-option-DxJvAZ_Q.js} +2 -2
  18. package/dist/chunks/{combobox-option-DB6KGb7o.js.map → combobox-option-DxJvAZ_Q.js.map} +1 -1
  19. package/dist/chunks/{components-DH1slGZY.js → components-PQfnwrHI.js} +10 -10
  20. package/dist/chunks/components-PQfnwrHI.js.map +1 -0
  21. package/dist/chunks/{context-CA1Kq0FW.js → context-B_xwK-Y_.js} +2 -2
  22. package/dist/chunks/{context-CA1Kq0FW.js.map → context-B_xwK-Y_.js.map} +1 -1
  23. package/dist/chunks/{dialog-YaqTwAtR.js → dialog-Ujvm11_B.js} +5 -5
  24. package/dist/chunks/{dialog-YaqTwAtR.js.map → dialog-Ujvm11_B.js.map} +1 -1
  25. package/dist/chunks/{dialog-content-B3I3H7hj.js → dialog-content-CEITrC59.js} +2 -2
  26. package/dist/chunks/{dialog-content-B3I3H7hj.js.map → dialog-content-CEITrC59.js.map} +1 -1
  27. package/dist/chunks/{dialog-footer-BjcYeVhg.js → dialog-footer-DVLEK5bU.js} +2 -2
  28. package/dist/chunks/{dialog-footer-BjcYeVhg.js.map → dialog-footer-DVLEK5bU.js.map} +1 -1
  29. package/dist/chunks/{dialog-header-BynEzovK.js → dialog-header-kEWl21oD.js} +2 -2
  30. package/dist/chunks/{dialog-header-BynEzovK.js.map → dialog-header-kEWl21oD.js.map} +1 -1
  31. package/dist/chunks/{dialogs-root-B61LtZks.js → dialogs-root-dPGfuzSZ.js} +3 -3
  32. package/dist/chunks/{dialogs-root-B61LtZks.js.map → dialogs-root-dPGfuzSZ.js.map} +1 -1
  33. package/dist/chunks/{guard-YhbCPY-V.js → guard-DZGvf4tS.js} +4 -4
  34. package/dist/chunks/{guard-YhbCPY-V.js.map → guard-DZGvf4tS.js.map} +1 -1
  35. package/dist/chunks/{input-CVKu3XRI.js → input-BjCX2bFe.js} +8 -8
  36. package/dist/chunks/input-BjCX2bFe.js.map +1 -0
  37. package/dist/chunks/{login-button-76PlEs2Y.js → login-button-Ta3tkpn4.js} +5 -5
  38. package/dist/chunks/{login-button-76PlEs2Y.js.map → login-button-Ta3tkpn4.js.map} +1 -1
  39. package/dist/chunks/{logout-button-Dt3Utgj0.js → logout-button-Db6VmUmJ.js} +5 -5
  40. package/dist/chunks/{logout-button-Dt3Utgj0.js.map → logout-button-Db6VmUmJ.js.map} +1 -1
  41. package/dist/chunks/{menu-6ayNsxFG.js → menu-CQEXqNO6.js} +2 -2
  42. package/dist/chunks/{menu-6ayNsxFG.js.map → menu-CQEXqNO6.js.map} +1 -1
  43. package/dist/chunks/{menu-item-Ckl9f1rG.js → menu-item-BHJ4xljI.js} +2 -2
  44. package/dist/chunks/{menu-item-Ckl9f1rG.js.map → menu-item-BHJ4xljI.js.map} +1 -1
  45. package/dist/chunks/{provider-BfO67dzy.js → provider-CoVkCkMs.js} +5 -5
  46. package/dist/chunks/provider-CoVkCkMs.js.map +1 -0
  47. package/dist/chunks/{select-DHFgELMJ.js → select-OM-SgY4K.js} +101 -66
  48. package/dist/chunks/select-OM-SgY4K.js.map +1 -0
  49. package/dist/chunks/{select-option-Duk4S4Sc.js → select-option-pVhYlXrt.js} +2 -2
  50. package/dist/chunks/{select-option-Duk4S4Sc.js.map → select-option-pVhYlXrt.js.map} +1 -1
  51. package/dist/chunks/{signup-button-B10K6b8A.js → signup-button-wO4uoqUi.js} +5 -5
  52. package/dist/chunks/{signup-button-B10K6b8A.js.map → signup-button-wO4uoqUi.js.map} +1 -1
  53. package/dist/chunks/{solid-emblem-DgBJk5Th.js → solid-emblem-D2clBuKZ.js} +2 -2
  54. package/dist/chunks/{solid-emblem-DgBJk5Th.js.map → solid-emblem-D2clBuKZ.js.map} +1 -1
  55. package/dist/chunks/{src-CdZhCYdF.js → src-B9CXYA44.js} +3 -3
  56. package/dist/chunks/{src-CdZhCYdF.js.map → src-B9CXYA44.js.map} +1 -1
  57. package/dist/components/account.js +1 -1
  58. package/dist/components/avatar.js +1 -1
  59. package/dist/components/button.js +1 -1
  60. package/dist/components/combobox/Combobox.cjs.js +21 -21
  61. package/dist/components/combobox/Combobox.cjs.js.map +1 -1
  62. package/dist/components/combobox/Combobox.d.ts +30 -3
  63. package/dist/components/combobox/Combobox.d.ts.map +1 -1
  64. package/dist/components/combobox/Combobox.esm.js +268 -107
  65. package/dist/components/combobox/Combobox.esm.js.map +1 -1
  66. package/dist/components/combobox/Combobox.stories.d.ts +54 -0
  67. package/dist/components/combobox/Combobox.stories.d.ts.map +1 -1
  68. package/dist/components/combobox/Combobox.styles.cjs.js +1 -1
  69. package/dist/components/combobox/Combobox.styles.cjs.js.map +1 -1
  70. package/dist/components/combobox/Combobox.styles.esm.js +1 -1
  71. package/dist/components/combobox/Combobox.styles.esm.js.map +1 -1
  72. package/dist/components/combobox/index.cjs.js +1 -1
  73. package/dist/components/combobox/index.cjs.js.map +1 -1
  74. package/dist/components/combobox/index.d.ts +1 -0
  75. package/dist/components/combobox/index.d.ts.map +1 -1
  76. package/dist/components/combobox/index.esm.js +3 -3
  77. package/dist/components/combobox/index.esm.js.map +1 -1
  78. package/dist/components/combobox-option.js +1 -1
  79. package/dist/components/combobox.js +2 -2
  80. package/dist/components/dialog-content.js +1 -1
  81. package/dist/components/dialog-footer.js +1 -1
  82. package/dist/components/dialog-header.js +1 -1
  83. package/dist/components/dialog-provider/DialogProvider.cjs.js.map +1 -1
  84. package/dist/components/dialog-provider/DialogProvider.d.ts +2 -1
  85. package/dist/components/dialog-provider/DialogProvider.d.ts.map +1 -1
  86. package/dist/components/dialog-provider/DialogProvider.esm.js.map +1 -1
  87. package/dist/components/dialog-provider.js +1 -1
  88. package/dist/components/dialog.js +1 -1
  89. package/dist/components/dialogs-root.js +1 -1
  90. package/dist/components/guard.js +1 -1
  91. package/dist/components/input/Input.cjs.js +5 -5
  92. package/dist/components/input/Input.cjs.js.map +1 -1
  93. package/dist/components/input/Input.d.ts +1 -1
  94. package/dist/components/input/Input.d.ts.map +1 -1
  95. package/dist/components/input/Input.esm.js +7 -7
  96. package/dist/components/input/Input.esm.js.map +1 -1
  97. package/dist/components/input.js +1 -1
  98. package/dist/components/login-button.js +1 -1
  99. package/dist/components/login-modal.js +1 -1
  100. package/dist/components/logout-button.js +1 -1
  101. package/dist/components/menu-item.js +1 -1
  102. package/dist/components/menu.js +1 -1
  103. package/dist/components/provider/Provider.cjs.js.map +1 -1
  104. package/dist/components/provider/Provider.d.ts +2 -1
  105. package/dist/components/provider/Provider.d.ts.map +1 -1
  106. package/dist/components/provider/Provider.esm.js.map +1 -1
  107. package/dist/components/provider.js +1 -1
  108. package/dist/components/select/Select.cjs.js +7 -6
  109. package/dist/components/select/Select.cjs.js.map +1 -1
  110. package/dist/components/select/Select.d.ts +12 -2
  111. package/dist/components/select/Select.d.ts.map +1 -1
  112. package/dist/components/select/Select.esm.js +96 -65
  113. package/dist/components/select/Select.esm.js.map +1 -1
  114. package/dist/components/select/index.cjs.js.map +1 -1
  115. package/dist/components/select/index.d.ts +1 -0
  116. package/dist/components/select/index.d.ts.map +1 -1
  117. package/dist/components/select/index.esm.js.map +1 -1
  118. package/dist/components/select-option.js +1 -1
  119. package/dist/components/select.js +1 -1
  120. package/dist/components/signup-button.js +1 -1
  121. package/dist/components/solid-emblem.js +1 -1
  122. package/dist/components.js +22 -22
  123. package/dist/index.cjs.js +1 -1
  124. package/dist/index.cjs.js.map +1 -1
  125. package/dist/index.esm.js +2 -2
  126. package/dist/index.js +6 -6
  127. package/dist/lib/components/index.cjs.js +1 -1
  128. package/dist/lib/components/index.esm.js +2 -2
  129. package/dist/lib/components/traits/FormControlTrait.cjs.js +2 -0
  130. package/dist/lib/components/traits/FormControlTrait.cjs.js.map +1 -0
  131. package/dist/lib/components/traits/{InputTrait.d.ts → FormControlTrait.d.ts} +10 -11
  132. package/dist/lib/components/traits/FormControlTrait.d.ts.map +1 -0
  133. package/dist/lib/components/traits/FormControlTrait.esm.js +45 -0
  134. package/dist/lib/components/traits/FormControlTrait.esm.js.map +1 -0
  135. package/dist/lib/components/traits/index.cjs.js +1 -1
  136. package/dist/lib/components/traits/index.d.ts +2 -2
  137. package/dist/lib/components/traits/index.d.ts.map +1 -1
  138. package/dist/lib/components/traits/index.esm.js +2 -2
  139. package/dist/lib/components/web-component/WebComponent.cjs.js.map +1 -1
  140. package/dist/lib/components/web-component/WebComponent.d.ts +2 -2
  141. package/dist/lib/components/web-component/WebComponent.d.ts.map +1 -1
  142. package/dist/lib/components/web-component/WebComponent.esm.js.map +1 -1
  143. package/dist/lib/timing.cjs.js +2 -0
  144. package/dist/lib/timing.cjs.js.map +1 -0
  145. package/dist/lib/timing.d.ts +6 -0
  146. package/dist/lib/timing.d.ts.map +1 -0
  147. package/dist/lib/timing.esm.js +13 -0
  148. package/dist/lib/timing.esm.js.map +1 -0
  149. package/dist/lib/values.cjs.js +2 -0
  150. package/dist/lib/values.cjs.js.map +1 -0
  151. package/dist/lib/values.d.ts +2 -0
  152. package/dist/lib/values.d.ts.map +1 -0
  153. package/dist/lib/values.esm.js +8 -0
  154. package/dist/lib/values.esm.js.map +1 -0
  155. package/dist/loader.js +6 -6
  156. package/dist/solid-ui.js +91 -90
  157. package/dist/solid-ui.min.js +91 -90
  158. package/dist/solid-ui.min.js.map +1 -1
  159. package/dist/storybook/components/StorybookProvider.d.ts +2 -1
  160. package/dist/storybook/components/StorybookProvider.d.ts.map +1 -1
  161. package/package.json +2 -1
  162. package/dist/chunks/DialogProvider-CrvbR_fd.js.map +0 -1
  163. package/dist/chunks/combobox-BWOPh9dj.js +0 -474
  164. package/dist/chunks/combobox-BWOPh9dj.js.map +0 -1
  165. package/dist/chunks/components-DH1slGZY.js.map +0 -1
  166. package/dist/chunks/input-CVKu3XRI.js.map +0 -1
  167. package/dist/chunks/provider-BfO67dzy.js.map +0 -1
  168. package/dist/chunks/select-DHFgELMJ.js.map +0 -1
  169. package/dist/lib/components/traits/InputTrait.cjs.js +0 -2
  170. package/dist/lib/components/traits/InputTrait.cjs.js.map +0 -1
  171. package/dist/lib/components/traits/InputTrait.d.ts.map +0 -1
  172. package/dist/lib/components/traits/InputTrait.esm.js +0 -45
  173. package/dist/lib/components/traits/InputTrait.esm.js.map +0 -1
@@ -1,9 +1,10 @@
1
1
  import { WebComponent } from '../../lib/components';
2
+ import { PropertyValues } from 'lit';
2
3
  export declare class StorybookProvider extends WebComponent {
3
4
  accessor webId: string | undefined;
4
5
  accessor avatarUrl: string | undefined;
5
6
  private accessor auth;
6
- willUpdate(changedProperties: Map<string, any>): void;
7
+ willUpdate(changedProperties: PropertyValues<this>): void;
7
8
  protected render(): import('lit-html').TemplateResult<1>;
8
9
  }
9
10
  //# sourceMappingURL=StorybookProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StorybookProvider.d.ts","sourceRoot":"","sources":["../../../src/storybook/components/StorybookProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAO9D,OAAO,2BAA2B,CAAA;AAElC,qBACa,iBAAkB,SAAQ,YAAY;IAEjD,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;IAGlC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IAGtC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAsB;IAE3C,UAAU,CAAE,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC;IAY/C,SAAS,CAAC,MAAM;CAMjB"}
1
+ {"version":3,"file":"StorybookProvider.d.ts","sourceRoot":"","sources":["../../../src/storybook/components/StorybookProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAE9D,OAAO,EAAQ,KAAK,cAAc,EAAE,MAAM,KAAK,CAAA;AAK/C,OAAO,2BAA2B,CAAA;AAElC,qBACa,iBAAkB,SAAQ,YAAY;IAEjD,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAA;IAGlC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAA;IAGtC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAsB;IAE3C,UAAU,CAAE,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC;IAYnD,SAAS,CAAC,MAAM;CAMjB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "solid-ui",
3
- "version": "3.1.3-10",
3
+ "version": "3.1.3-11",
4
4
  "description": "UI library for Solid applications",
5
5
  "main": "dist/index.cjs.js",
6
6
  "types": "dist/index.d.ts",
@@ -93,6 +93,7 @@
93
93
  "dependencies": {
94
94
  "@awesome.me/webawesome": "^3.9.0",
95
95
  "@lit/context": "^1.1.6",
96
+ "@lit/task": "^1.0.3",
96
97
  "@noble/curves": "^2.2.0",
97
98
  "@noble/hashes": "^2.2.0",
98
99
  "escape-html": "^1.0.3",
@@ -1 +0,0 @@
1
- {"version":3,"file":"DialogProvider-CrvbR_fd.js","names":["e","t","i","t","customElement","WebComponent","provide","property","dialogContext","_classDecs","_DialogProvider","_A","WeakMap","_B","_ref","_dialogIdDecs","type","String","reflect","_dialogDecs","context","DialogProvider","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_dialogId","_init_dialog","id","_classPrivateFieldGet","dialogId","v","_classPrivateFieldSet","dialog","willUpdate","changedProperties","has","firstUpdated","slot","shadowRoot","querySelector","dispatchEvent","CustomEvent","bubbles","composed","detail","assignedElements","_DialogProvider2","e","c","_initClass","_applyDecs","default"],"sources":["../../node_modules/@lit/context/lib/value-notifier.js","../../node_modules/@lit/context/lib/controllers/context-provider.js","../../node_modules/@lit/context/lib/decorators/provide.js","../../src/components/dialog-provider/DialogProvider.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nclass s{get value(){return this.o}set value(s){this.setValue(s)}setValue(s,t=!1){const i=t||!Object.is(s,this.o);this.o=s,i&&this.updateObservers()}constructor(s){this.subscriptions=new Map,this.updateObservers=()=>{for(const[s,{disposer:t}]of this.subscriptions)s(this.o,t)},void 0!==s&&(this.value=s)}addCallback(s,t,i){if(!i)return void s(this.value);this.subscriptions.has(s)||this.subscriptions.set(s,{disposer:()=>{this.subscriptions.delete(s)},consumerHost:t});const{disposer:h}=this.subscriptions.get(s);s(this.value,h)}clearCallbacks(){this.subscriptions.clear()}}export{s as ValueNotifier};\n//# sourceMappingURL=value-notifier.js.map\n","import{ContextRequestEvent as t}from\"../context-request-event.js\";import{ValueNotifier as s}from\"../value-notifier.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class e extends Event{constructor(t,s){super(\"context-provider\",{bubbles:!0,composed:!0}),this.context=t,this.contextTarget=s}}class i extends s{constructor(s,e,i){super(void 0!==e.context?e.initialValue:i),this.onContextRequest=t=>{if(t.context!==this.context)return;const s=t.contextTarget??t.composedPath()[0];s!==this.host&&(t.stopPropagation(),this.addCallback(t.callback,s,t.subscribe))},this.onProviderRequest=s=>{if(s.context!==this.context)return;if((s.contextTarget??s.composedPath()[0])===this.host)return;const e=new Set;for(const[s,{consumerHost:i}]of this.subscriptions)e.has(s)||(e.add(s),i.dispatchEvent(new t(this.context,i,s,!0)));s.stopPropagation()},this.host=s,void 0!==e.context?this.context=e.context:this.context=e,this.attachListeners(),this.host.addController?.(this)}attachListeners(){this.host.addEventListener(\"context-request\",this.onContextRequest),this.host.addEventListener(\"context-provider\",this.onProviderRequest)}hostConnected(){this.host.dispatchEvent(new e(this.context,this.host))}}export{i as ContextProvider,e as ContextProviderEvent};\n//# sourceMappingURL=context-provider.js.map\n","import{ContextProvider as t}from\"../controllers/context-provider.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function e({context:e}){return(n,i)=>{const r=new WeakMap;if(\"object\"==typeof i)return{get(){return n.get.call(this)},set(t){return r.get(this).setValue(t),n.set.call(this,t)},init(n){return r.set(this,new t(this,{context:e,initialValue:n})),n}};{n.constructor.addInitializer((n=>{r.set(n,new t(n,{context:e}))}));const o=Object.getOwnPropertyDescriptor(n,i);let s;if(void 0===o){const t=new WeakMap;s={get(){return t.get(this)},set(e){r.get(this).setValue(e),t.set(this,e)},configurable:!0,enumerable:!0}}else{const t=o.set;s={...o,set(e){r.get(this).setValue(e),t?.call(this,e)}}}return void Object.defineProperty(n,i,s)}}}export{e as provide};\n//# sourceMappingURL=provide.js.map\n","import { customElement, WebComponent } from '@/lib/components'\nimport { provide } from '@lit/context'\nimport { property } from 'lit/decorators.js'\nimport { DialogContext, dialogContext } from '@/lib/dialogs/context'\n\n@customElement('solid-ui-dialog-provider')\nexport default class DialogProvider extends WebComponent {\n @property({ type: String, reflect: true })\n accessor dialogId: string | undefined\n\n @provide({ context: dialogContext })\n private accessor dialog: DialogContext = { id: '' }\n\n protected willUpdate (changedProperties: Map<string, any>) {\n super.willUpdate(changedProperties)\n\n if (changedProperties.has('dialogId') && this.dialogId) {\n this.dialog = { id: this.dialogId }\n }\n }\n\n protected firstUpdated () {\n const slot = this.shadowRoot?.querySelector('slot') as HTMLSlotElement | undefined\n\n this.dispatchEvent(new CustomEvent('mounted', { bubbles: true, composed: true, detail: slot?.assignedElements()[0] }))\n }\n}\n"],"x_google_ignoreList":[0,1,2],"mappings":"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"}
@@ -1,474 +0,0 @@
1
- import { n as e, r as t, t as n } from "./components-DH1slGZY.js";
2
- import { c as r, i, n as a } from "./lit-C4H1jI4q.js";
3
- import "./chunk.7MPIABXH-CEYdxYyt.js";
4
- import { n as o, t as s } from "./decorators-BqWyWiL9.js";
5
- import { t as c } from "./query-BYu9q8lA.js";
6
- import "./chevron-down-ujxRg3MD.js";
7
- //#region src/components/combobox/Combobox.styles.css
8
- var l = r`:host{flex-direction:column;align-items:flex-start;gap:5px;display:inline-flex;& label{color:var(--solid-ui-color-gray-600);font-size:var(--solid-ui-font-size-sm);font-weight:400}& wa-popup{width:100%;display:block}& wa-popup::part(popup){border:1px solid var(--solid-ui-color-gray-100);background:#fff;border-radius:5px;overflow:hidden;box-shadow:0 4px 16px #00000059}& .input-wrapper{width:100%;position:relative;& input{border:1px solid var(--solid-ui-color-gray-400);border-radius:5px;width:100%;padding:10px 40px 10px 10px}& icon-lucide-chevron-down{color:var(--solid-ui-color-gray-500);width:var(--solid-ui-font-size-lg);height:var(--solid-ui-font-size-lg);pointer-events:none;position:absolute;top:50%;right:15px;transform:translateY(-50%)}}& .listbox{max-height:inherit;flex-direction:column;display:flex;overflow:auto;& [role=option]{color:var(--solid-ui-color-gray-700);border-bottom:1px solid var(--solid-ui-color-gray-100);cursor:pointer;padding:12px 8px;&:hover,&[data-active]{background:#0000000d}}}}`, u, d, f, p, m, h, g, _, v, y, b, x, S, C, w, T, E, D, O, k, A, j, M, N, P, F, I, L, R, z, B, V, H, U;
9
- function W(e, t, n) {
10
- G(e, t), t.set(e, n);
11
- }
12
- function G(e, t) {
13
- if (t.has(e)) throw TypeError("Cannot initialize the same private elements twice on an object");
14
- }
15
- function K(e, t, n) {
16
- return e.set(J(e, t), n), n;
17
- }
18
- function q(e, t) {
19
- return e.get(J(e, t));
20
- }
21
- function J(e, t, n) {
22
- if (typeof e == "function" ? e === t : e.has(t)) return arguments.length < 3 ? t : n;
23
- throw TypeError("Private element is not present on this object");
24
- }
25
- function Y(e, t, n) {
26
- return (t = Z(t)) in e ? Object.defineProperty(e, t, {
27
- value: n,
28
- enumerable: !0,
29
- configurable: !0,
30
- writable: !0
31
- }) : e[t] = n, e;
32
- }
33
- function X(e, t, n, r, i, a) {
34
- function o(e, t, n) {
35
- return function(r, i) {
36
- return n && n(r), e[t].call(r, i);
37
- };
38
- }
39
- function s(e, t) {
40
- for (var n = 0; n < e.length; n++) e[n].call(t);
41
- return t;
42
- }
43
- function c(e, t, n, r) {
44
- if (typeof e != "function" && (r || e !== void 0)) throw TypeError(t + " must " + (n || "be") + " a function" + (r ? "" : " or undefined"));
45
- return e;
46
- }
47
- function l(e, t, n, r, i, a, s, l, u, d, f, p, m) {
48
- function h(e) {
49
- if (!m(e)) throw TypeError("Attempted to access private element on non-instance");
50
- }
51
- var g, _ = t[0], v = t[3], y = !l;
52
- if (!y) {
53
- n || Array.isArray(_) || (_ = [_]);
54
- var b = {}, x = [], S = i === 3 ? "get" : i === 4 || p ? "set" : "value";
55
- d ? (f || p ? b = {
56
- get: Q(function() {
57
- return v(this);
58
- }, r, "get"),
59
- set: function(e) {
60
- t[4](this, e);
61
- }
62
- } : b[S] = v, f || Q(b[S], r, i === 2 ? "" : S)) : f || (b = Object.getOwnPropertyDescriptor(e, r));
63
- }
64
- for (var C = e, w = _.length - 1; w >= 0; w -= n ? 2 : 1) {
65
- var T = _[w], E = n ? _[w - 1] : void 0, D = {}, O = {
66
- kind: [
67
- "field",
68
- "accessor",
69
- "method",
70
- "getter",
71
- "setter",
72
- "class"
73
- ][i],
74
- name: r,
75
- metadata: a,
76
- addInitializer: function(e, t) {
77
- if (e.v) throw Error("attempted to call addInitializer after decoration was finished");
78
- c(t, "An initializer", "be", !0), s.push(t);
79
- }.bind(null, D)
80
- };
81
- try {
82
- if (y) (g = c(T.call(E, C, O), "class decorators", "return")) && (C = g);
83
- else {
84
- var k, A;
85
- O.static = u, O.private = d, d ? i === 2 ? k = function(e) {
86
- return h(e), b.value;
87
- } : (i < 4 && (k = o(b, "get", h)), i !== 3 && (A = o(b, "set", h))) : (k = function(e) {
88
- return e[r];
89
- }, (i < 2 || i === 4) && (A = function(e, t) {
90
- e[r] = t;
91
- }));
92
- var j = O.access = { has: d ? m.bind() : function(e) {
93
- return r in e;
94
- } };
95
- if (k && (j.get = k), A && (j.set = A), C = T.call(E, p ? {
96
- get: b.get,
97
- set: b.set
98
- } : b[S], O), p) {
99
- if (typeof C == "object" && C) (g = c(C.get, "accessor.get")) && (b.get = g), (g = c(C.set, "accessor.set")) && (b.set = g), (g = c(C.init, "accessor.init")) && x.push(g);
100
- else if (C !== void 0) throw TypeError("accessor decorators must return an object with get, set, or init properties or void 0");
101
- } else c(C, (f ? "field" : "method") + " decorators", "return") && (f ? x.push(C) : b[S] = C);
102
- }
103
- } finally {
104
- D.v = !0;
105
- }
106
- }
107
- return (f || p) && l.push(function(e, t) {
108
- for (var n = x.length - 1; n >= 0; n--) t = x[n].call(e, t);
109
- return t;
110
- }), f || y || (d ? p ? l.push(o(b, "get"), o(b, "set")) : l.push(i === 2 ? b[S] : o.call.bind(b[S])) : Object.defineProperty(e, r, b)), C;
111
- }
112
- function u(e, t) {
113
- return Object.defineProperty(e, Symbol.metadata || Symbol.for("Symbol.metadata"), {
114
- configurable: !0,
115
- enumerable: !0,
116
- value: t
117
- });
118
- }
119
- if (arguments.length >= 6) var d = a[Symbol.metadata || Symbol.for("Symbol.metadata")];
120
- var f = Object.create(d ?? null), p = function(e, t, n, r) {
121
- var i, a, o = [], c = function(t) {
122
- return te(t) === e;
123
- }, u = /* @__PURE__ */ new Map();
124
- function d(e) {
125
- e && o.push(s.bind(null, e));
126
- }
127
- for (var f = 0; f < t.length; f++) {
128
- var p = t[f];
129
- if (Array.isArray(p)) {
130
- var m = p[1], h = p[2], g = p.length > 3, _ = 16 & m, v = !!(8 & m), y = (m &= 7) == 0, b = h + "/" + v;
131
- if (!y && !g) {
132
- var x = u.get(b);
133
- if (!0 === x || x === 3 && m !== 4 || x === 4 && m !== 3) throw Error("Attempted to decorate a public method/accessor that has the same name as a previously decorated public method/accessor. This is not currently supported by the decorators plugin. Property name was: " + h);
134
- u.set(b, !(m > 2) || m);
135
- }
136
- l(v ? e : e.prototype, p, _, g ? "#" + h : Z(h), m, r, v ? a ||= [] : i ||= [], o, v, g, y, m === 1, v && g ? c : n);
137
- }
138
- }
139
- return d(i), d(a), o;
140
- }(e, t, i, f);
141
- return n.length || u(e, f), {
142
- e: p,
143
- get c() {
144
- var t = [];
145
- return n.length && [u(l(e, [n], r, e.name, 5, f, t), f), s.bind(null, t, e)];
146
- }
147
- };
148
- }
149
- function Z(e) {
150
- var t = ee(e, "string");
151
- return typeof t == "symbol" ? t : t + "";
152
- }
153
- function ee(e, t) {
154
- if (typeof e != "object" || !e) return e;
155
- var n = e[Symbol.toPrimitive];
156
- if (n !== void 0) {
157
- var r = n.call(e, t || "default");
158
- if (typeof r != "object") return r;
159
- throw TypeError("@@toPrimitive must return a primitive value.");
160
- }
161
- return (t === "string" ? String : Number)(e);
162
- }
163
- function Q(e, t, n) {
164
- typeof t == "symbol" && (t = (t = t.description) ? "[" + t + "]" : "");
165
- try {
166
- Object.defineProperty(e, "name", {
167
- configurable: !0,
168
- value: n ? n + " " + t : t
169
- });
170
- } catch {}
171
- return e;
172
- }
173
- function te(e) {
174
- if (Object(e) !== e) throw TypeError("right-hand side of 'in' should be an object, got " + (e === null ? "null" : typeof e));
175
- return e;
176
- }
177
- function ne(e) {
178
- return e;
179
- }
180
- C = [t("solid-ui-combobox")];
181
- var $;
182
- new (H = (f = /*#__PURE__*/ new WeakMap(), p = /*#__PURE__*/ new WeakMap(), m = /*#__PURE__*/ new WeakMap(), h = /*#__PURE__*/ new WeakMap(), g = /*#__PURE__*/ new WeakMap(), _ = /*#__PURE__*/ new WeakMap(), v = /*#__PURE__*/ new WeakMap(), y = /*#__PURE__*/ new WeakMap(), b = /*#__PURE__*/ new WeakMap(), U = (w = o({
183
- type: String,
184
- reflect: !0
185
- }), E = o({
186
- type: String,
187
- reflect: !0
188
- }), O = o({ type: String }), A = o({
189
- type: String,
190
- reflect: !0
191
- }), M = o({
192
- type: Boolean,
193
- reflect: !0
194
- }), P = c("input"), I = s(), R = s(), B = s(), "label"), d = class extends e {
195
- get [U]() {
196
- return q(f, this);
197
- }
198
- set label(e) {
199
- K(f, this, e);
200
- }
201
- get name() {
202
- return q(p, this);
203
- }
204
- set name(e) {
205
- K(p, this, e);
206
- }
207
- get value() {
208
- return q(m, this);
209
- }
210
- set value(e) {
211
- K(m, this, e);
212
- }
213
- get placeholder() {
214
- return q(h, this);
215
- }
216
- set placeholder(e) {
217
- K(h, this, e);
218
- }
219
- get required() {
220
- return q(g, this);
221
- }
222
- set required(e) {
223
- K(g, this, e);
224
- }
225
- get inputElement() {
226
- return q(_, this);
227
- }
228
- set inputElement(e) {
229
- K(_, this, e);
230
- }
231
- get filter() {
232
- return q(v, this);
233
- }
234
- set filter(e) {
235
- K(v, this, e);
236
- }
237
- get open() {
238
- return q(y, this);
239
- }
240
- set open(e) {
241
- K(y, this, e);
242
- }
243
- get activeIndex() {
244
- return q(b, this);
245
- }
246
- set activeIndex(e) {
247
- K(b, this, e);
248
- }
249
- constructor() {
250
- super(), W(this, f, (x(this), T(this, ""))), W(this, p, D(this, "")), W(this, m, k(this, "")), W(this, h, j(this, "")), W(this, g, N(this, !1)), W(this, _, F(this, null)), W(this, v, L(this, "")), W(this, y, z(this, !1)), W(this, b, V(this, -1)), Y(this, "inputTrait", void 0), Y(this, "openListenersAttached", !1), Y(this, "listboxId", void 0), Y(this, "handleDocumentFocusIn", (e) => {
251
- e.composedPath().includes(this) || this.hide();
252
- }), Y(this, "handleDocumentMouseDown", (e) => {
253
- e.composedPath().includes(this) || this.hide();
254
- }), this.inputTrait = this.addTrait(new n(this, {
255
- getInputElement: () => this.inputElement,
256
- getInternals: () => this.getInternals(),
257
- onValueChanged: (e) => {
258
- this.filter = e.toLowerCase();
259
- let t = this.getFilteredOptions();
260
- if (t.length === 0) {
261
- this.hide();
262
- return;
263
- }
264
- this.open && (this.activeIndex = this.getInitialActiveIndex(t));
265
- }
266
- })), this.listboxId = `listbox-${this.inputTrait.inputId}`;
267
- }
268
- disconnectedCallback() {
269
- super.disconnectedCallback(), this.removeOpenListeners();
270
- }
271
- render() {
272
- let e = this.getFilteredOptions(), t = (this.open && this.activeIndex >= 0 ? e[this.activeIndex] : void 0) === void 0 ? void 0 : this.getOptionId(this.activeIndex), n = this.placeholder || "Combobox";
273
- return i`
274
- ${this.inputTrait.renderLabel()}
275
- <wa-popup
276
- placement="bottom"
277
- flip
278
- shift
279
- sync="width"
280
- auto-size="vertical"
281
- auto-size-padding="10"
282
- ?active=${this.open}
283
- >
284
- <div class="input-wrapper" slot="anchor" @mousedown=${this.onAnchorMouseDown}>
285
- <input
286
- id="${this.inputTrait.inputId}"
287
- type="text"
288
- name=${this.name}
289
- placeholder=${this.placeholder}
290
- role="combobox"
291
- aria-autocomplete="list"
292
- aria-haspopup="listbox"
293
- aria-expanded=${this.open ? "true" : "false"}
294
- aria-controls=${this.listboxId}
295
- aria-activedescendant=${t ?? a}
296
- aria-labelledby=${this.label ? this.inputTrait.labelId : a}
297
- aria-label=${this.label ? a : n}
298
- aria-required=${this.required ? "true" : a}
299
- autocomplete="off"
300
- spellcheck="false"
301
- ?required=${this.required}
302
- .value=${this.value}
303
- @keydown=${this.onInputKeyDown}
304
- @focus=${this.onInputFocus}
305
- @input=${() => this.inputTrait.onInput()}
306
- />
307
- <icon-lucide-chevron-down></icon-lucide-chevron-down>
308
- </div>
309
- <div
310
- id=${this.listboxId}
311
- class="listbox"
312
- role="listbox"
313
- aria-orientation="vertical"
314
- aria-labelledby=${this.label ? this.inputTrait.labelId : a}
315
- aria-label=${this.label ? a : n}
316
- ?hidden=${!this.open}
317
- @mousedown=${this.onListboxMouseDown}
318
- >
319
- ${e.map((e, t) => i`<div
320
- id=${this.getOptionId(t)}
321
- role="option"
322
- aria-selected=${this.open && t === this.activeIndex ? "true" : "false"}
323
- data-active=${t === this.activeIndex || a}
324
- @mousemove=${() => this.setActiveIndex(t)}
325
- >
326
- ${e.label}
327
- </div>`)}
328
- </div>
329
- </wa-popup>
330
- `;
331
- }
332
- getFilteredOptions() {
333
- return this.getOptions().filter((e) => e.label.toLowerCase().includes(this.filter));
334
- }
335
- getOptions() {
336
- let e = this.querySelectorAll("solid-ui-combobox-option");
337
- return Array.from(e).map((e) => ({
338
- value: e.value,
339
- label: e.textContent ?? ""
340
- }));
341
- }
342
- getOptionId(e) {
343
- return `${this.listboxId}-option-${e}`;
344
- }
345
- getInitialActiveIndex(e) {
346
- let t = e.findIndex((e) => e.value === this.value);
347
- return t >= 0 ? t : e.length > 0 ? 0 : -1;
348
- }
349
- getNextIndex(e, t, n) {
350
- return t.length === 0 ? -1 : (e + n + t.length) % t.length;
351
- }
352
- setActiveIndex(e) {
353
- this.activeIndex = e;
354
- }
355
- show(e) {
356
- if (this.open) return;
357
- let t = this.getFilteredOptions();
358
- t.length !== 0 && (this.open = !0, this.activeIndex = e?.focusLast ? t.length - 1 : this.getInitialActiveIndex(t), this.addOpenListeners(), requestAnimationFrame(() => this.scrollActiveOptionIntoView()));
359
- }
360
- hide() {
361
- this.open && (this.filter = "", this.open = !1, this.activeIndex = -1, this.removeOpenListeners());
362
- }
363
- selectOption(e) {
364
- this.inputTrait.setValue(e), this.hide(), this.inputElement?.focus({ preventScroll: !0 });
365
- }
366
- scrollActiveOptionIntoView() {
367
- this.activeIndex < 0 || this.shadowRoot?.querySelector(`#${this.getOptionId(this.activeIndex)}`)?.scrollIntoView({ block: "nearest" });
368
- }
369
- addOpenListeners() {
370
- if (this.openListenersAttached) return;
371
- document.addEventListener("focusin", this.handleDocumentFocusIn), document.addEventListener("mousedown", this.handleDocumentMouseDown);
372
- let e = this.getRootNode();
373
- e !== document && e.addEventListener("focusin", this.handleDocumentFocusIn), this.openListenersAttached = !0;
374
- }
375
- removeOpenListeners() {
376
- if (!this.openListenersAttached) return;
377
- document.removeEventListener("focusin", this.handleDocumentFocusIn), document.removeEventListener("mousedown", this.handleDocumentMouseDown);
378
- let e = this.getRootNode();
379
- e !== document && e.removeEventListener("focusin", this.handleDocumentFocusIn), this.openListenersAttached = !1;
380
- }
381
- onAnchorMouseDown(e) {
382
- e.preventDefault(), this.inputElement?.focus({ preventScroll: !0 });
383
- }
384
- onInputFocus() {
385
- this.show();
386
- }
387
- openPopupFromKey(e) {
388
- this.open || this.show({ focusLast: e });
389
- }
390
- onInputKeyDown(e) {
391
- let t = this.getFilteredOptions();
392
- switch (e.key) {
393
- case "ArrowDown":
394
- e.preventDefault(), this.open ? (this.activeIndex = this.getNextIndex(this.activeIndex, t, 1), this.scrollActiveOptionIntoView()) : this.openPopupFromKey(!1);
395
- break;
396
- case "ArrowUp":
397
- e.preventDefault(), this.open ? (this.activeIndex = this.getNextIndex(this.activeIndex, t, -1), this.scrollActiveOptionIntoView()) : this.openPopupFromKey(!0);
398
- break;
399
- case "Enter":
400
- this.open && this.activeIndex >= 0 && t[this.activeIndex] ? (e.preventDefault(), this.selectOption(t[this.activeIndex].value)) : this.open || (e.preventDefault(), this.inputTrait.onSubmit());
401
- break;
402
- case "Escape":
403
- this.open && (e.preventDefault(), e.stopPropagation(), this.hide(), this.inputElement?.focus({ preventScroll: !0 }));
404
- break;
405
- case "Tab":
406
- this.hide();
407
- break;
408
- }
409
- }
410
- onListboxMouseDown(e) {
411
- if (e.preventDefault(), !(e.target instanceof HTMLElement)) return;
412
- let t = e.target.closest("[role=\"option\"]");
413
- if (!t) return;
414
- let n = t.id, r = Number.parseInt(n.replace(`${this.listboxId}-option-`, ""), 10), i = this.getFilteredOptions()[r];
415
- i && this.selectOption(i.value);
416
- }
417
- }, {e: [T, D, k, j, N, F, L, z, V, x], c: [$, S]} = X(d, [
418
- [
419
- w,
420
- 1,
421
- "label"
422
- ],
423
- [
424
- E,
425
- 1,
426
- "name"
427
- ],
428
- [
429
- O,
430
- 1,
431
- "value"
432
- ],
433
- [
434
- A,
435
- 1,
436
- "placeholder"
437
- ],
438
- [
439
- M,
440
- 1,
441
- "required"
442
- ],
443
- [
444
- P,
445
- 1,
446
- "inputElement"
447
- ],
448
- [
449
- I,
450
- 1,
451
- "filter"
452
- ],
453
- [
454
- R,
455
- 1,
456
- "open"
457
- ],
458
- [
459
- B,
460
- 1,
461
- "activeIndex"
462
- ]
463
- ], C, 0, void 0, e), d), u = class extends ne {
464
- constructor() {
465
- super($), Y(this, "styles", l), Y(this, "formAssociated", !0), S();
466
- }
467
- }, Y(u, H, void 0), u)();
468
- //#endregion
469
- //#region src/components/combobox/index.ts
470
- var re = $;
471
- //#endregion
472
- export { $ as n, re as t };
473
-
474
- //# sourceMappingURL=combobox-BWOPh9dj.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"combobox-BWOPh9dj.js","names":["customElement","WebComponent","html","nothing","property","query","state","InputTrait","styles","_classDecs","_Combobox","_Combobox2","_A","WeakMap","_B","_C","_D","_E","_F","_G","_H","_I","_ref","_labelDecs","type","String","reflect","_nameDecs","_valueDecs","_placeholderDecs","_requiredDecs","Boolean","_inputElementDecs","_filterDecs","_openDecs","_activeIndexDecs","_Combobox3","Combobox","_classPrivateFieldGet","label","v","_classPrivateFieldSet","name","value","placeholder","required","inputElement","filter","open","activeIndex","constructor","_classPrivateFieldInitSpec","_initProto","_init_label","_init_name","_init_value","_init_placeholder","_init_required","_init_inputElement","_init_filter","_init_open","_init_activeIndex","_defineProperty","event","path","composedPath","includes","hide","inputTrait","addTrait","getInputElement","getInternals","onValueChanged","toLowerCase","options","getFilteredOptions","length","getInitialActiveIndex","listboxId","inputId","disconnectedCallback","removeOpenListeners","render","activeOption","undefined","activeDescendant","getOptionId","accessibleName","renderLabel","onAnchorMouseDown","labelId","onInputKeyDown","onInputFocus","onInput","onListboxMouseDown","map","option","index","setActiveIndex","getOptions","querySelectorAll","Array","from","textContent","selectedIndex","findIndex","getNextIndex","currentIndex","direction","show","filteredOptions","focusLast","addOpenListeners","requestAnimationFrame","scrollActiveOptionIntoView","selectOption","setValue","focus","preventScroll","shadowRoot","querySelector","scrollIntoView","block","openListenersAttached","document","addEventListener","handleDocumentFocusIn","handleDocumentMouseDown","root","getRootNode","removeEventListener","preventDefault","openPopupFromKey","key","onSubmit","stopPropagation","target","HTMLElement","optionElement","closest","optionId","id","Number","parseInt","replace","e","c","_initClass","_applyDecs","_Class","_identity","default","Combobox"],"sources":["../../src/components/combobox/Combobox.styles.css","../../src/components/combobox/Combobox.ts","../../src/components/combobox/index.ts"],"sourcesContent":[":host {\n display: inline-flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 5px;\n\n label {\n color: var(--solid-ui-color-gray-600);\n font-size: var(--solid-ui-font-size-sm);\n font-weight: 400;\n }\n\n wa-popup {\n display: block;\n width: 100%;\n }\n\n wa-popup::part(popup) {\n background: white;\n border: 1px solid var(--solid-ui-color-gray-100);\n border-radius: 5px;\n box-shadow: 0px 4px 16px 0px rgba(0, 0, 0, 0.35);\n overflow: hidden;\n }\n\n .input-wrapper {\n position: relative;\n width: 100%;\n\n input {\n border: 1px solid var(--solid-ui-color-gray-400);\n border-radius: 5px;\n padding: 10px;\n padding-right: 40px;\n width: 100%;\n }\n\n icon-lucide-chevron-down {\n position: absolute;\n right: 15px;\n top: 50%;\n transform: translateY(-50%);\n color: var(--solid-ui-color-gray-500);\n width: var(--solid-ui-font-size-lg);\n height: var(--solid-ui-font-size-lg);\n pointer-events: none;\n }\n }\n\n .listbox {\n display: flex;\n flex-direction: column;\n max-height: inherit;\n overflow: auto;\n\n [role=\"option\"] {\n padding: 12px 8px;\n color: var(--solid-ui-color-gray-700);\n border-bottom: 1px solid var(--solid-ui-color-gray-100);\n cursor: pointer;\n\n &:hover,\n &[data-active] {\n background: rgba(0, 0, 0, 0.05);\n }\n }\n }\n}\n","import { customElement, WebComponent } from '@/lib/components'\nimport { html, nothing } from 'lit'\nimport { property, query, state } from 'lit/decorators.js'\nimport InputTrait from '@/lib/components/traits/InputTrait'\nimport type ComboboxOption from '@/components/combobox-option/ComboboxOption'\n\nimport '~icons/lucide/chevron-down'\nimport '@awesome.me/webawesome/dist/components/popup/popup.js'\n\nimport styles from './Combobox.styles.css'\n\ntype ComboboxOptionData = { value: string; label: string }\n\n@customElement('solid-ui-combobox')\nexport default class Combobox extends WebComponent {\n static styles = styles\n static formAssociated = true\n\n @property({ type: String, reflect: true })\n accessor label = ''\n\n @property({ type: String, reflect: true })\n accessor name = ''\n\n @property({ type: String })\n accessor value = ''\n\n @property({ type: String, reflect: true })\n accessor placeholder = ''\n\n @property({ type: Boolean, reflect: true })\n accessor required = false\n\n @query('input')\n private accessor inputElement: HTMLInputElement | null = null\n\n @state()\n private accessor filter = ''\n\n @state()\n private accessor open = false\n\n @state()\n private accessor activeIndex = -1\n\n private inputTrait: InputTrait\n private openListenersAttached = false\n private readonly listboxId: string\n\n constructor () {\n super()\n\n this.inputTrait = this.addTrait(\n new InputTrait(this, {\n getInputElement: () => this.inputElement,\n getInternals: () => this.getInternals(),\n onValueChanged: (value) => {\n this.filter = value.toLowerCase()\n\n const options = this.getFilteredOptions()\n\n if (options.length === 0) {\n this.hide()\n return\n }\n\n if (this.open) {\n this.activeIndex = this.getInitialActiveIndex(options)\n }\n },\n })\n )\n\n this.listboxId = `listbox-${this.inputTrait.inputId}`\n }\n\n disconnectedCallback () {\n super.disconnectedCallback()\n\n this.removeOpenListeners()\n }\n\n protected render () {\n const options = this.getFilteredOptions()\n const activeOption =\n this.open && this.activeIndex >= 0 ? options[this.activeIndex] : undefined\n const activeDescendant =\n activeOption !== undefined ? this.getOptionId(this.activeIndex) : undefined\n const accessibleName = this.placeholder || 'Combobox'\n\n return html`\n ${this.inputTrait.renderLabel()}\n <wa-popup\n placement=\"bottom\"\n flip\n shift\n sync=\"width\"\n auto-size=\"vertical\"\n auto-size-padding=\"10\"\n ?active=${this.open}\n >\n <div class=\"input-wrapper\" slot=\"anchor\" @mousedown=${this.onAnchorMouseDown}>\n <input\n id=\"${this.inputTrait.inputId}\"\n type=\"text\"\n name=${this.name}\n placeholder=${this.placeholder}\n role=\"combobox\"\n aria-autocomplete=\"list\"\n aria-haspopup=\"listbox\"\n aria-expanded=${this.open ? 'true' : 'false'}\n aria-controls=${this.listboxId}\n aria-activedescendant=${activeDescendant ?? nothing}\n aria-labelledby=${this.label ? this.inputTrait.labelId : nothing}\n aria-label=${this.label ? nothing : accessibleName}\n aria-required=${this.required ? 'true' : nothing}\n autocomplete=\"off\"\n spellcheck=\"false\"\n ?required=${this.required}\n .value=${this.value}\n @keydown=${this.onInputKeyDown}\n @focus=${this.onInputFocus}\n @input=${() => this.inputTrait.onInput()}\n />\n <icon-lucide-chevron-down></icon-lucide-chevron-down>\n </div>\n <div\n id=${this.listboxId}\n class=\"listbox\"\n role=\"listbox\"\n aria-orientation=\"vertical\"\n aria-labelledby=${this.label ? this.inputTrait.labelId : nothing}\n aria-label=${this.label ? nothing : accessibleName}\n ?hidden=${!this.open}\n @mousedown=${this.onListboxMouseDown}\n >\n ${options.map(\n (option, index) =>\n html`<div\n id=${this.getOptionId(index)}\n role=\"option\"\n aria-selected=${this.open && index === this.activeIndex\n ? 'true'\n : 'false'}\n data-active=${index === this.activeIndex || nothing}\n @mousemove=${() => this.setActiveIndex(index)}\n >\n ${option.label}\n </div>`\n )}\n </div>\n </wa-popup>\n `\n }\n\n private getFilteredOptions (): ComboboxOptionData[] {\n return this.getOptions().filter((option) =>\n option.label.toLowerCase().includes(this.filter)\n )\n }\n\n private getOptions (): ComboboxOptionData[] {\n const options = this.querySelectorAll<ComboboxOption>(\n 'solid-ui-combobox-option'\n )\n\n return Array.from(options).map((option) => ({\n value: option.value,\n label: option.textContent ?? '',\n }))\n }\n\n private getOptionId (index: number): string {\n return `${this.listboxId}-option-${index}`\n }\n\n private getInitialActiveIndex (options: ComboboxOptionData[]): number {\n const selectedIndex = options.findIndex((option) => option.value === this.value)\n\n if (selectedIndex >= 0) {\n return selectedIndex\n }\n\n return options.length > 0 ? 0 : -1\n }\n\n private getNextIndex (\n currentIndex: number,\n options: ComboboxOptionData[],\n direction: 1 | -1\n ): number {\n if (options.length === 0) {\n return -1\n }\n\n return (currentIndex + direction + options.length) % options.length\n }\n\n private setActiveIndex (index: number) {\n this.activeIndex = index\n }\n\n private show (options?: { focusLast?: boolean }) {\n if (this.open) {\n return\n }\n\n const filteredOptions = this.getFilteredOptions()\n\n if (filteredOptions.length === 0) {\n return\n }\n\n this.open = true\n this.activeIndex = options?.focusLast\n ? filteredOptions.length - 1\n : this.getInitialActiveIndex(filteredOptions)\n this.addOpenListeners()\n\n requestAnimationFrame(() => this.scrollActiveOptionIntoView())\n }\n\n private hide () {\n if (!this.open) {\n return\n }\n\n this.filter = ''\n this.open = false\n this.activeIndex = -1\n this.removeOpenListeners()\n }\n\n private selectOption (value: string) {\n this.inputTrait.setValue(value)\n this.hide()\n this.inputElement?.focus({ preventScroll: true })\n }\n\n private scrollActiveOptionIntoView () {\n if (this.activeIndex < 0) {\n return\n }\n\n this.shadowRoot\n ?.querySelector(`#${this.getOptionId(this.activeIndex)}`)\n ?.scrollIntoView({ block: 'nearest' })\n }\n\n private addOpenListeners () {\n if (this.openListenersAttached) {\n return\n }\n\n document.addEventListener('focusin', this.handleDocumentFocusIn)\n document.addEventListener('mousedown', this.handleDocumentMouseDown)\n\n const root = this.getRootNode()\n\n if (root !== document) {\n root.addEventListener('focusin', this.handleDocumentFocusIn)\n }\n\n this.openListenersAttached = true\n }\n\n private removeOpenListeners () {\n if (!this.openListenersAttached) {\n return\n }\n\n document.removeEventListener('focusin', this.handleDocumentFocusIn)\n document.removeEventListener('mousedown', this.handleDocumentMouseDown)\n\n const root = this.getRootNode()\n\n if (root !== document) {\n root.removeEventListener('focusin', this.handleDocumentFocusIn)\n }\n\n this.openListenersAttached = false\n }\n\n private handleDocumentFocusIn = (event: Event) => {\n const path = event.composedPath()\n\n if (!path.includes(this)) {\n this.hide()\n }\n }\n\n private handleDocumentMouseDown = (event: MouseEvent) => {\n const path = event.composedPath()\n\n if (!path.includes(this)) {\n this.hide()\n }\n }\n\n private onAnchorMouseDown (event: MouseEvent) {\n event.preventDefault()\n this.inputElement?.focus({ preventScroll: true })\n }\n\n private onInputFocus () {\n this.show()\n }\n\n private openPopupFromKey (focusLast: boolean) {\n if (!this.open) {\n this.show({ focusLast })\n }\n }\n\n private onInputKeyDown (event: KeyboardEvent) {\n const options = this.getFilteredOptions()\n\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault()\n\n if (!this.open) {\n this.openPopupFromKey(false)\n } else {\n this.activeIndex = this.getNextIndex(this.activeIndex, options, 1)\n this.scrollActiveOptionIntoView()\n }\n break\n case 'ArrowUp':\n event.preventDefault()\n\n if (!this.open) {\n this.openPopupFromKey(true)\n } else {\n this.activeIndex = this.getNextIndex(this.activeIndex, options, -1)\n this.scrollActiveOptionIntoView()\n }\n break\n case 'Enter':\n if (this.open && this.activeIndex >= 0 && options[this.activeIndex]) {\n event.preventDefault()\n this.selectOption(options[this.activeIndex].value)\n } else if (!this.open) {\n event.preventDefault()\n this.inputTrait.onSubmit()\n }\n break\n case 'Escape':\n if (this.open) {\n event.preventDefault()\n event.stopPropagation()\n this.hide()\n this.inputElement?.focus({ preventScroll: true })\n }\n break\n case 'Tab':\n this.hide()\n break\n }\n }\n\n private onListboxMouseDown (event: MouseEvent) {\n event.preventDefault()\n\n if (!(event.target instanceof HTMLElement)) {\n return\n }\n\n const optionElement = event.target.closest('[role=\"option\"]')\n\n if (!optionElement) {\n return\n }\n\n const optionId = optionElement.id\n const index = Number.parseInt(optionId.replace(`${this.listboxId}-option-`, ''), 10)\n const option = this.getFilteredOptions()[index]\n\n if (option) {\n this.selectOption(option.value)\n }\n }\n}\n","import Combobox from './Combobox'\n\nexport { Combobox }\nexport default Combobox\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"components-DH1slGZY.js","names":["generateId","Math","random","toString","substring","defineCustomElement","tagName","elementClass","customElements","get","define","customElement","context","addInitializer","html","LitElement","styles","WebComponent","states","finalizeStyles","componentStyles","elementStyles","internals","globalListeners","traits","disconnectedCallback","type","listener","window","removeEventListener","addTrait","trait","push","firstUpdated","forwardMethodCall","updated","changedProperties","formResetCallback","willUpdate","static","state","condition","Object","entries","toggleAttribute","addGlobalEventListener","addEventListener","render","getInternals","attachInternals","constructor","method","args","html","nothing","generateId","InputTrait","inputId","labelId","target","config","constructor","firstUpdated","getInternals","setFormValue","value","updateValidity","updated","changedProperties","has","formResetCallback","onValueChanged","renderLabel","label","onInput","setValue","getInputElement","onSubmit","form","requestSubmit","dispatchEvent","InputEvent","bubbles","composed","internals","required","setValidity","valueMissing","undefined"],"sources":["../../src/lib/components/ids.ts","../../src/lib/components/decorators.ts","../../src/lib/components/web-component/WebComponent.ts","../../src/lib/components/traits/InputTrait.ts"],"sourcesContent":["export function generateId () {\n return Math.random().toString(36).substring(2, 15)\n}\n","/**\n * We need to use a custom element decorator because Lit's built-in doesn't safely skip duplicate registrations.\n * This shouldn't be necessary, but our current build process and usage in other libraries is not optimal\n * and some components get bundled twice.\n *\n * This should be removed once that problem is fixed.\n *\n * See https://github.com/SolidOS/solidos/issues/300\n */\n\nfunction defineCustomElement (tagName: string, elementClass: CustomElementConstructor): void {\n if (customElements.get(tagName)) {\n return\n }\n\n customElements.define(tagName, elementClass)\n}\n\nexport function customElement (tagName: string) {\n return (elementClass: CustomElementConstructor, context?: ClassDecoratorContext) => {\n if (context) {\n context.addInitializer(() => defineCustomElement(tagName, elementClass))\n\n return\n }\n\n defineCustomElement(tagName, elementClass)\n }\n}\n","import { html, LitElement, type CSSResultGroup } from 'lit'\nimport type { WebComponentTrait, WebComponentTraitMethodKey } from '@/lib/components/traits/WebComponentTrait'\n\nimport styles from './WebComponent.styles.css'\n\nexport default abstract class WebComponent extends LitElement {\n static states?: Record<string, Function>\n\n protected static finalizeStyles (componentStyles?: CSSResultGroup) {\n const elementStyles = super.finalizeStyles(componentStyles)\n\n return [styles, ...elementStyles]\n }\n\n protected internals?: ElementInternals\n protected globalListeners: [type: string, listener: EventListener][] = []\n protected traits: WebComponentTrait[] = []\n\n disconnectedCallback (): void {\n super.disconnectedCallback()\n\n for (const [type, listener] of this.globalListeners) {\n window.removeEventListener(type, listener)\n }\n\n this.globalListeners = []\n }\n\n protected addTrait<T extends WebComponentTrait>(trait: T): T {\n this.traits.push(trait)\n\n return trait\n }\n\n protected firstUpdated () {\n this.forwardMethodCall('firstUpdated')\n }\n\n protected updated (changedProperties: Map<PropertyKey, unknown>) {\n this.forwardMethodCall('updated', changedProperties)\n }\n\n protected formResetCallback () {\n this.forwardMethodCall('formResetCallback')\n }\n\n protected willUpdate (changedProperties: Map<string, any>) {\n super.willUpdate(changedProperties)\n\n const states = this.static().states\n\n if (!states) {\n return\n }\n\n for (const [state, condition] of Object.entries(states)) {\n // FIXME when browser support is good enough, use the internals API instead with :state() selectors\n this.toggleAttribute(`data-state-${state}`, !!condition(this))\n }\n }\n\n protected addGlobalEventListener <T extends keyof WindowEventMap>(type: T, listener: (this: Window, ev: WindowEventMap[T]) => any) {\n this.globalListeners.push([type, listener as EventListener])\n\n window.addEventListener(type, listener)\n }\n\n protected render () {\n return html`<slot></slot>`\n }\n\n protected getInternals (): ElementInternals {\n this.internals ??= this.attachInternals()\n\n return this.internals\n }\n\n private static (): typeof WebComponent {\n return this.constructor as typeof WebComponent\n }\n\n private forwardMethodCall<T extends WebComponentTraitMethodKey>(method: T, ...args: Parameters<Required<WebComponentTrait>[T]>) {\n for (const trait of this.traits) {\n (trait[method] as Function | undefined)?.(...args)\n }\n }\n}\n","import { WebComponent } from '@/lib/components'\nimport { html, nothing } from 'lit'\n\nimport { generateId } from '@/lib/components'\n\nimport type { WebComponentTrait } from './WebComponentTrait'\n\nexport type InputTraitTarget = WebComponent & {\n name: string;\n label: string;\n required: boolean;\n value: string;\n}\n\nexport interface InputTraitConfig {\n getInputElement(): HTMLInputElement | HTMLSelectElement | null\n getInternals(): ElementInternals\n onValueChanged?: (value: string) => void\n}\n\nexport default class InputTrait implements WebComponentTrait {\n public inputId: string\n public labelId: string\n public target: InputTraitTarget\n private config: InputTraitConfig\n\n constructor (target: InputTraitTarget, config: InputTraitConfig) {\n this.config = config\n this.inputId = `input-${generateId()}`\n this.labelId = `label-${this.inputId}`\n this.target = target\n }\n\n firstUpdated () {\n this.config.getInternals().setFormValue(this.target.value)\n this.updateValidity()\n }\n\n updated (changedProperties: Map<PropertyKey, unknown>) {\n if (changedProperties.has('value') || changedProperties.has('required')) {\n this.updateValidity()\n }\n }\n\n formResetCallback () {\n this.target.value = ''\n this.config.getInternals().setFormValue('')\n this.updateValidity()\n this.config.onValueChanged?.('')\n }\n\n renderLabel () {\n return this.target.label\n ? html`<label id=\"${this.labelId}\" for=\"${this.inputId}\">${this.target.label}</label>`\n : nothing\n }\n\n onInput () {\n this.setValue(this.config.getInputElement()?.value ?? '')\n }\n\n onSubmit () {\n this.config.getInternals().form?.requestSubmit()\n }\n\n setValue (value: string) {\n this.target.value = value\n\n this.config.getInternals().setFormValue(this.target.value)\n this.target.dispatchEvent(new InputEvent('input', { bubbles: true, composed: true }))\n this.config.onValueChanged?.(this.target.value)\n }\n\n private updateValidity () {\n const internals = this.config.getInternals()\n\n if (this.target.required && this.target.value === '') {\n internals.setValidity(\n { valueMissing: true },\n 'Please fill out this field.',\n this.config.getInputElement() ?? undefined\n )\n } else {\n internals.setValidity({})\n }\n }\n}\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"input-CVKu3XRI.js","names":["customElement","WebComponent","html","property","query","InputTrait","styles","_classDecs","_Input","_Input2","_A","WeakMap","_B","_C","_D","_E","_F","_G","_ref","_labelDecs","type","String","reflect","_nameDecs","_valueDecs","_typeDecs","_placeholderDecs","_requiredDecs","Boolean","_inputElementDecs","_Input3","Input","_classPrivateFieldGet","label","v","_classPrivateFieldSet","name","value","placeholder","required","inputElement","constructor","_classPrivateFieldInitSpec","_initProto","_init_label","_init_name","_init_value","_init_type","_init_placeholder","_init_required","_init_inputElement","_defineProperty","inputTrait","addTrait","getInputElement","getInternals","render","renderLabel","inputId","onInput","onKeyDown","e","key","preventDefault","onSubmit","c","_initClass","_applyDecs","_Class","_identity","default","Input"],"sources":["../../src/components/input/Input.styles.css","../../src/components/input/Input.ts","../../src/components/input/index.ts"],"sourcesContent":[":host {\n display: inline-flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 5px;\n\n label {\n color: var(--solid-ui-color-gray-600);\n font-size: var(--solid-ui-font-size-sm);\n font-weight: 400;\n }\n\n .input-wrapper {\n position: relative;\n width: 100%;\n\n input {\n border: 1px solid var(--solid-ui-color-gray-400);\n border-radius: 5px;\n padding: 10px;\n width: 100%;\n background: white;\n color: var(--solid-ui-color-gray-700);\n font-size: inherit;\n }\n }\n}\n","import { customElement, WebComponent } from '@/lib/components'\nimport { html } from 'lit'\nimport { property, query } from 'lit/decorators.js'\nimport InputTrait from '@/lib/components/traits/InputTrait'\n\nimport styles from './Input.styles.css'\n\n@customElement('solid-ui-input')\nexport default class Input extends WebComponent {\n static styles = styles\n static formAssociated = true\n\n @property({ type: String, reflect: true })\n accessor label = '';\n\n @property({ type: String, reflect: true })\n accessor name = '';\n\n @property({ type: String })\n accessor value = '';\n\n @property({ type: String, reflect: true })\n accessor type = 'text';\n\n @property({ type: String, reflect: true })\n accessor placeholder = '';\n\n @property({ type: Boolean, reflect: true })\n accessor required = false;\n\n @query('input')\n private accessor inputElement: HTMLInputElement | null = null;\n\n private inputTrait: InputTrait\n\n constructor () {\n super()\n\n this.inputTrait = this.addTrait(new InputTrait(this, {\n getInputElement: () => this.inputElement,\n getInternals: () => this.getInternals(),\n }))\n }\n\n protected render () {\n return html`\n ${this.inputTrait.renderLabel()}\n\n <div class=\"input-wrapper\">\n <input\n id=${this.inputTrait.inputId}\n type=${this.type}\n name=${this.name}\n placeholder=${this.placeholder}\n ?required=${this.required}\n .value=${this.value}\n @input=${() => this.inputTrait.onInput()}\n @keydown=${this.onKeyDown}\n />\n </div>\n `\n }\n\n private onKeyDown (e: KeyboardEvent) {\n if (e.key === 'Enter') {\n e.preventDefault()\n\n this.inputTrait.onSubmit()\n }\n }\n}\n","import Input from './Input'\n\nexport { Input }\nexport default Input\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"provider-BfO67dzy.js","names":["customElement","WebComponent","provide","html","property","authContext","SolidAuth","DEFAULT_SIGNUP_URL","_classDecs","_Provider","_A","WeakMap","_B","_ref","_signupUrlDecs","type","String","reflect","_authDecs","context","Provider","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_signupUrl","_init_auth","_classPrivateFieldGet","signupUrl","v","_classPrivateFieldSet","auth","willUpdate","changedProperties","has","render","_Provider2","e","c","_initClass","_applyDecs","default","Provider"],"sources":["../../src/components/provider/Provider.ts","../../src/components/provider/index.ts"],"sourcesContent":["import { customElement, WebComponent } from '@/lib/components'\nimport { provide } from '@lit/context'\nimport { html } from 'lit'\nimport { property } from 'lit/decorators.js'\nimport { authContext } from '@/lib/auth'\nimport { SolidAuth, DEFAULT_SIGNUP_URL } from '@/lib/auth'\n\nimport '@/components/dialogs-root'\n\n@customElement('solid-ui-provider')\nexport default class Provider extends WebComponent {\n @property({ type: String, reflect: true })\n accessor signupUrl: string | undefined\n\n @provide({ context: authContext })\n private accessor auth = new SolidAuth()\n\n protected willUpdate (changedProperties: Map<string, any>) {\n super.willUpdate(changedProperties)\n\n if (changedProperties.has('signupUrl')) {\n this.auth.signupUrl = this.signupUrl ?? DEFAULT_SIGNUP_URL\n }\n }\n\n protected render () {\n return html`\n <slot></slot>\n <solid-ui-dialogs-root></solid-ui-dialogs-root>\n `\n }\n}\n","import Provider from './Provider'\n\nexport { Provider }\nexport default Provider\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOkCQ,IAAA,CAEjCR,EAAc,mBAAmB,CAAC;AAAA,IAAAS,GAAAC,kBAAA,IAAAC,QAAA,GAAAC,kBAAA,IAAAD,QAAA;AAAAE,KAAAC,IAEhCV,EAAS;CAAEW,MAAMC;CAAQC,SAAS;AAAK,CAAC,GAACC,IAGzChB,EAAQ,EAAEiB,SAASd,EAAY,CAAC,GAAC,cAiBnC+B,IAAAhB,cArBqCnB,EAAa;CAAAoB,YAAA,GAAAC,GAAA;EAAAC,AAAA,MAAA,GAAAD,CAAA,GAAAC,EAAA,MAAAb,IAAAc,EAAA,IAAA,GAAAC,EAAA,IAAA,EAAA,GAAAF,EAAA,MAAAX,GAAAc,EAAA,MAKzB,IAAIpB,EAAU,CAAC,CAAA;CAAA;CAAA,KAAAO,KAAA;EAAA,OAAAc,EAAAjB,GAAA,IAAA;CAAA;CAAA,IAH9BkB,UAASC,GAAA;EAAAC,EAAApB,GAAA,MAAAmB,CAAA;CAAA;CAAA,IAGDE,OAAI;EAAA,OAAAJ,EAAAf,GAAA,IAAA;CAAA;CAAA,IAAJmB,KAAIF,GAAA;EAAAC,EAAAlB,GAAA,MAAAiB,CAAA;CAAA;CAEXG,WAAYC,GAAqC;EAGzD,AAFA,MAAMD,WAAWC,CAAiB,GAE9BA,EAAkBC,IAAI,WAAW,MACnC,KAAKH,KAAKH,YAAY,KAAKA,aAAAA;CAE/B;CAEUO,SAAU;EAClB,OAAOhC,CAAI;;;;CAIb;AACF,GAAC,CAAAkC,GAAA,CAAAZ,GAAAC,GAAAF,IAAAc,GAAA,CAAA7B,GAAA8B,MAAAC,EAAAJ,GAAA,CAAA;CAAAtB;CAAA;CAAA;AAAA,GAAA;CAAAI;CAAA;CAAA;AAAA,CAAA,GAAAV,GAAA,GAAA,KAAA,GArBqCP,CAAY,GAAAsC,EAAA;;;ACPlD,IAAA,IAAeG"}