solid-ui 3.1.3-10 → 3.1.3-12
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.
- package/README.md +2 -0
- package/dist/_virtual/~icons/svg-spinners/3-dots-fade.cjs.js +2 -0
- package/dist/_virtual/~icons/svg-spinners/3-dots-fade.cjs.js.map +1 -0
- package/dist/_virtual/~icons/svg-spinners/3-dots-fade.esm.js +11 -0
- package/dist/_virtual/~icons/svg-spinners/3-dots-fade.esm.js.map +1 -0
- package/dist/chunks/{DialogProvider-CrvbR_fd.js → DialogProvider-ge2aA77F.js} +3 -3
- package/dist/chunks/DialogProvider-ge2aA77F.js.map +1 -0
- package/dist/chunks/{account-Ma2Ipfjx.js → account-Bb818bGF.js} +21 -16
- package/dist/chunks/account-Bb818bGF.js.map +1 -0
- package/dist/chunks/{auth-BI22fz6P.js → auth-ClVI18ss.js} +93 -82
- package/dist/chunks/auth-ClVI18ss.js.map +1 -0
- package/dist/chunks/{avatar-DN7FzC2N.js → avatar-DGu_PX5y.js} +13 -5
- package/dist/chunks/avatar-DGu_PX5y.js.map +1 -0
- package/dist/chunks/{button-DHahwxqn.js → button-B9-nlEpz.js} +3 -3
- package/dist/chunks/{button-DHahwxqn.js.map → button-B9-nlEpz.js.map} +1 -1
- package/dist/chunks/combobox-DrT0Nb-A.js +734 -0
- package/dist/chunks/combobox-DrT0Nb-A.js.map +1 -0
- package/dist/chunks/{combobox-option-DB6KGb7o.js → combobox-option-DxJvAZ_Q.js} +2 -2
- package/dist/chunks/{combobox-option-DB6KGb7o.js.map → combobox-option-DxJvAZ_Q.js.map} +1 -1
- package/dist/chunks/{components-DH1slGZY.js → components-PQfnwrHI.js} +10 -10
- package/dist/chunks/components-PQfnwrHI.js.map +1 -0
- package/dist/chunks/{context-CA1Kq0FW.js → context-B_xwK-Y_.js} +2 -2
- package/dist/chunks/{context-CA1Kq0FW.js.map → context-B_xwK-Y_.js.map} +1 -1
- package/dist/chunks/{dialog-content-B3I3H7hj.js → dialog-content-CEITrC59.js} +2 -2
- package/dist/chunks/{dialog-content-B3I3H7hj.js.map → dialog-content-CEITrC59.js.map} +1 -1
- package/dist/chunks/{dialog-footer-BjcYeVhg.js → dialog-footer-DVLEK5bU.js} +2 -2
- package/dist/chunks/{dialog-footer-BjcYeVhg.js.map → dialog-footer-DVLEK5bU.js.map} +1 -1
- package/dist/chunks/{dialog-header-BynEzovK.js → dialog-header-kEWl21oD.js} +2 -2
- package/dist/chunks/{dialog-header-BynEzovK.js.map → dialog-header-kEWl21oD.js.map} +1 -1
- package/dist/chunks/{dialog-YaqTwAtR.js → dialog-kyHgc-uy.js} +5 -5
- package/dist/chunks/{dialog-YaqTwAtR.js.map → dialog-kyHgc-uy.js.map} +1 -1
- package/dist/chunks/{dialogs-root-B61LtZks.js → dialogs-root-dPGfuzSZ.js} +3 -3
- package/dist/chunks/{dialogs-root-B61LtZks.js.map → dialogs-root-dPGfuzSZ.js.map} +1 -1
- package/dist/chunks/{guard-YhbCPY-V.js → guard-DEqOFEs4.js} +79 -53
- package/dist/chunks/guard-DEqOFEs4.js.map +1 -0
- package/dist/chunks/{input-CVKu3XRI.js → input-BjCX2bFe.js} +8 -8
- package/dist/chunks/input-BjCX2bFe.js.map +1 -0
- package/dist/chunks/{login-button-76PlEs2Y.js → login-button-Czm-E9Na.js} +5 -5
- package/dist/chunks/{login-button-76PlEs2Y.js.map → login-button-Czm-E9Na.js.map} +1 -1
- package/dist/chunks/{logout-button-Dt3Utgj0.js → logout-button-BrR_jOhK.js} +5 -5
- package/dist/chunks/{logout-button-Dt3Utgj0.js.map → logout-button-BrR_jOhK.js.map} +1 -1
- package/dist/chunks/{menu-6ayNsxFG.js → menu-1PG19fCC.js} +4 -4
- package/dist/chunks/{menu-6ayNsxFG.js.map → menu-1PG19fCC.js.map} +1 -1
- package/dist/chunks/{menu-item-Ckl9f1rG.js → menu-item-C9uErV38.js} +72 -55
- package/dist/chunks/menu-item-C9uErV38.js.map +1 -0
- package/dist/chunks/{provider-BfO67dzy.js → provider-qd_4VaKB.js} +8 -5
- package/dist/chunks/provider-qd_4VaKB.js.map +1 -0
- package/dist/chunks/{select-DHFgELMJ.js → select-OM-SgY4K.js} +101 -66
- package/dist/chunks/select-OM-SgY4K.js.map +1 -0
- package/dist/chunks/{select-option-Duk4S4Sc.js → select-option-pVhYlXrt.js} +2 -2
- package/dist/chunks/{select-option-Duk4S4Sc.js.map → select-option-pVhYlXrt.js.map} +1 -1
- package/dist/chunks/{signup-button-B10K6b8A.js → signup-button-BnA5p-uJ.js} +5 -5
- package/dist/chunks/{signup-button-B10K6b8A.js.map → signup-button-BnA5p-uJ.js.map} +1 -1
- package/dist/chunks/{solid-emblem-DgBJk5Th.js → solid-emblem-D2clBuKZ.js} +2 -2
- package/dist/chunks/{solid-emblem-DgBJk5Th.js.map → solid-emblem-D2clBuKZ.js.map} +1 -1
- package/dist/chunks/{src-CdZhCYdF.js → src-DJOb1wMf.js} +3 -3
- package/dist/chunks/{src-CdZhCYdF.js.map → src-DJOb1wMf.js.map} +1 -1
- package/dist/components/account/Account.cjs.js +6 -4
- package/dist/components/account/Account.cjs.js.map +1 -1
- package/dist/components/account/Account.d.ts +2 -0
- package/dist/components/account/Account.d.ts.map +1 -1
- package/dist/components/account/Account.esm.js +10 -4
- package/dist/components/account/Account.esm.js.map +1 -1
- package/dist/components/account/Account.stories.d.ts +10 -2
- package/dist/components/account/Account.stories.d.ts.map +1 -1
- package/dist/components/account/Account.styles.cjs.js +1 -1
- package/dist/components/account/Account.styles.cjs.js.map +1 -1
- package/dist/components/account/Account.styles.esm.js +1 -1
- package/dist/components/account/Account.styles.esm.js.map +1 -1
- package/dist/components/account.js +1 -1
- package/dist/components/all.cjs.js +1 -0
- package/dist/components/all.d.ts +2 -0
- package/dist/components/all.d.ts.map +1 -0
- package/dist/components/all.esm.js +24 -0
- package/dist/components/avatar/Avatar.cjs.js +1 -1
- package/dist/components/avatar/Avatar.cjs.js.map +1 -1
- package/dist/components/avatar/Avatar.d.ts +3 -0
- package/dist/components/avatar/Avatar.d.ts.map +1 -1
- package/dist/components/avatar/Avatar.esm.js +9 -1
- package/dist/components/avatar/Avatar.esm.js.map +1 -1
- package/dist/components/avatar/Avatar.stories.d.ts +4 -4
- package/dist/components/avatar.js +1 -1
- package/dist/components/button/Button.styles.cjs.js +1 -1
- package/dist/components/button/Button.styles.cjs.js.map +1 -1
- package/dist/components/button/Button.styles.esm.js +1 -1
- package/dist/components/button/Button.styles.esm.js.map +1 -1
- package/dist/components/button.js +1 -1
- package/dist/components/combobox/Combobox.cjs.js +21 -21
- package/dist/components/combobox/Combobox.cjs.js.map +1 -1
- package/dist/components/combobox/Combobox.d.ts +30 -3
- package/dist/components/combobox/Combobox.d.ts.map +1 -1
- package/dist/components/combobox/Combobox.esm.js +268 -107
- package/dist/components/combobox/Combobox.esm.js.map +1 -1
- package/dist/components/combobox/Combobox.stories.d.ts +54 -0
- package/dist/components/combobox/Combobox.stories.d.ts.map +1 -1
- package/dist/components/combobox/Combobox.styles.cjs.js +1 -1
- package/dist/components/combobox/Combobox.styles.cjs.js.map +1 -1
- package/dist/components/combobox/Combobox.styles.esm.js +1 -1
- package/dist/components/combobox/Combobox.styles.esm.js.map +1 -1
- package/dist/components/combobox/index.cjs.js +1 -1
- package/dist/components/combobox/index.cjs.js.map +1 -1
- package/dist/components/combobox/index.d.ts +1 -0
- package/dist/components/combobox/index.d.ts.map +1 -1
- package/dist/components/combobox/index.esm.js +3 -3
- package/dist/components/combobox/index.esm.js.map +1 -1
- package/dist/components/combobox-option.js +1 -1
- package/dist/components/combobox.js +2 -2
- package/dist/components/dialog-content.js +1 -1
- package/dist/components/dialog-footer.js +1 -1
- package/dist/components/dialog-header.js +1 -1
- package/dist/components/dialog-provider/DialogProvider.cjs.js.map +1 -1
- package/dist/components/dialog-provider/DialogProvider.d.ts +2 -1
- package/dist/components/dialog-provider/DialogProvider.d.ts.map +1 -1
- package/dist/components/dialog-provider/DialogProvider.esm.js.map +1 -1
- package/dist/components/dialog-provider.js +1 -1
- package/dist/components/dialog.js +1 -1
- package/dist/components/dialogs-root.js +1 -1
- package/dist/components/guard/Guard.cjs.js +4 -2
- package/dist/components/guard/Guard.cjs.js.map +1 -1
- package/dist/components/guard/Guard.d.ts +7 -0
- package/dist/components/guard/Guard.d.ts.map +1 -1
- package/dist/components/guard/Guard.esm.js +74 -48
- package/dist/components/guard/Guard.esm.js.map +1 -1
- package/dist/components/guard/Guard.stories.d.ts +14 -3
- package/dist/components/guard/Guard.stories.d.ts.map +1 -1
- package/dist/components/guard.js +1 -1
- package/dist/components/index.cjs.js +1 -1
- package/dist/components/index.d.ts +0 -1
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.esm.js +1 -24
- package/dist/components/input/Input.cjs.js +5 -5
- package/dist/components/input/Input.cjs.js.map +1 -1
- package/dist/components/input/Input.d.ts +1 -1
- package/dist/components/input/Input.d.ts.map +1 -1
- package/dist/components/input/Input.esm.js +7 -7
- package/dist/components/input/Input.esm.js.map +1 -1
- package/dist/components/input.js +1 -1
- package/dist/components/login-button.js +1 -1
- package/dist/components/login-modal.js +1 -1
- package/dist/components/logout-button.js +1 -1
- package/dist/components/menu/Menu.cjs.js +1 -1
- package/dist/components/menu/Menu.cjs.js.map +1 -1
- package/dist/components/menu/Menu.esm.js +1 -1
- package/dist/components/menu/Menu.esm.js.map +1 -1
- package/dist/components/menu/Menu.stories.d.ts.map +1 -1
- package/dist/components/menu/Menu.styles.cjs.js +1 -1
- package/dist/components/menu/Menu.styles.cjs.js.map +1 -1
- package/dist/components/menu/Menu.styles.esm.js +1 -1
- package/dist/components/menu/Menu.styles.esm.js.map +1 -1
- package/dist/components/menu-item/MenuItem.cjs.js +4 -4
- package/dist/components/menu-item/MenuItem.cjs.js.map +1 -1
- package/dist/components/menu-item/MenuItem.d.ts +1 -0
- package/dist/components/menu-item/MenuItem.d.ts.map +1 -1
- package/dist/components/menu-item/MenuItem.esm.js +72 -55
- package/dist/components/menu-item/MenuItem.esm.js.map +1 -1
- package/dist/components/menu-item/MenuItem.styles.cjs.js +1 -1
- package/dist/components/menu-item/MenuItem.styles.cjs.js.map +1 -1
- package/dist/components/menu-item/MenuItem.styles.esm.js +1 -1
- package/dist/components/menu-item/MenuItem.styles.esm.js.map +1 -1
- package/dist/components/menu-item.js +1 -1
- package/dist/components/menu.js +1 -1
- package/dist/components/provider/Provider.cjs.js +1 -1
- package/dist/components/provider/Provider.cjs.js.map +1 -1
- package/dist/components/provider/Provider.d.ts +3 -1
- package/dist/components/provider/Provider.d.ts.map +1 -1
- package/dist/components/provider/Provider.esm.js +3 -0
- package/dist/components/provider/Provider.esm.js.map +1 -1
- package/dist/components/provider.js +1 -1
- package/dist/components/select/Select.cjs.js +7 -6
- package/dist/components/select/Select.cjs.js.map +1 -1
- package/dist/components/select/Select.d.ts +12 -2
- package/dist/components/select/Select.d.ts.map +1 -1
- package/dist/components/select/Select.esm.js +96 -65
- package/dist/components/select/Select.esm.js.map +1 -1
- package/dist/components/select/index.cjs.js.map +1 -1
- package/dist/components/select/index.d.ts +1 -0
- package/dist/components/select/index.d.ts.map +1 -1
- package/dist/components/select/index.esm.js.map +1 -1
- package/dist/components/select-option.js +1 -1
- package/dist/components/select.js +1 -1
- package/dist/components/signup-button.js +1 -1
- package/dist/components/solid-emblem.js +1 -1
- package/dist/components.js +22 -22
- package/dist/index.cjs.js +1 -1
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +2 -2
- package/dist/index.js +6 -6
- package/dist/lib/auth/NoopAuth.cjs.js +1 -1
- package/dist/lib/auth/NoopAuth.cjs.js.map +1 -1
- package/dist/lib/auth/NoopAuth.d.ts +2 -2
- package/dist/lib/auth/NoopAuth.d.ts.map +1 -1
- package/dist/lib/auth/NoopAuth.esm.js +2 -3
- package/dist/lib/auth/NoopAuth.esm.js.map +1 -1
- package/dist/lib/auth/SolidAuth.cjs.js +1 -1
- package/dist/lib/auth/SolidAuth.cjs.js.map +1 -1
- package/dist/lib/auth/SolidAuth.d.ts +6 -0
- package/dist/lib/auth/SolidAuth.d.ts.map +1 -1
- package/dist/lib/auth/SolidAuth.esm.js +28 -16
- package/dist/lib/auth/SolidAuth.esm.js.map +1 -1
- package/dist/lib/auth/context.cjs.js.map +1 -1
- package/dist/lib/auth/context.d.ts +2 -0
- package/dist/lib/auth/context.d.ts.map +1 -1
- package/dist/lib/auth/context.esm.js.map +1 -1
- package/dist/lib/components/index.cjs.js +1 -1
- package/dist/lib/components/index.esm.js +2 -2
- package/dist/lib/components/traits/FormControlTrait.cjs.js +2 -0
- package/dist/lib/components/traits/FormControlTrait.cjs.js.map +1 -0
- package/dist/lib/components/traits/{InputTrait.d.ts → FormControlTrait.d.ts} +10 -11
- package/dist/lib/components/traits/FormControlTrait.d.ts.map +1 -0
- package/dist/lib/components/traits/FormControlTrait.esm.js +45 -0
- package/dist/lib/components/traits/FormControlTrait.esm.js.map +1 -0
- package/dist/lib/components/traits/index.cjs.js +1 -1
- package/dist/lib/components/traits/index.d.ts +2 -2
- package/dist/lib/components/traits/index.d.ts.map +1 -1
- package/dist/lib/components/traits/index.esm.js +2 -2
- package/dist/lib/components/web-component/WebComponent.cjs.js.map +1 -1
- package/dist/lib/components/web-component/WebComponent.d.ts +2 -2
- package/dist/lib/components/web-component/WebComponent.d.ts.map +1 -1
- package/dist/lib/components/web-component/WebComponent.esm.js.map +1 -1
- package/dist/lib/timing.cjs.js +2 -0
- package/dist/lib/timing.cjs.js.map +1 -0
- package/dist/lib/timing.d.ts +6 -0
- package/dist/lib/timing.d.ts.map +1 -0
- package/dist/lib/timing.esm.js +13 -0
- package/dist/lib/timing.esm.js.map +1 -0
- package/dist/lib/values.cjs.js +2 -0
- package/dist/lib/values.cjs.js.map +1 -0
- package/dist/lib/values.d.ts +2 -0
- package/dist/lib/values.d.ts.map +1 -0
- package/dist/lib/values.esm.js +8 -0
- package/dist/lib/values.esm.js.map +1 -0
- package/dist/loader.js +6 -6
- package/dist/solid-ui.js +114 -109
- package/dist/solid-ui.min.js +114 -109
- package/dist/solid-ui.min.js.map +1 -1
- package/dist/storybook/auth/StorybookAuth.d.ts +1 -0
- package/dist/storybook/auth/StorybookAuth.d.ts.map +1 -1
- package/dist/storybook/components/StorybookProvider.d.ts +3 -1
- package/dist/storybook/components/StorybookProvider.d.ts.map +1 -1
- package/dist/storybook/helpers.d.ts.map +1 -1
- package/dist/storybook/stubs.d.ts +7 -3
- package/dist/storybook/stubs.d.ts.map +1 -1
- package/dist/theme.css +1 -1
- package/package.json +2 -1
- package/dist/chunks/DialogProvider-CrvbR_fd.js.map +0 -1
- package/dist/chunks/account-Ma2Ipfjx.js.map +0 -1
- package/dist/chunks/auth-BI22fz6P.js.map +0 -1
- package/dist/chunks/avatar-DN7FzC2N.js.map +0 -1
- package/dist/chunks/combobox-BWOPh9dj.js +0 -474
- package/dist/chunks/combobox-BWOPh9dj.js.map +0 -1
- package/dist/chunks/components-DH1slGZY.js.map +0 -1
- package/dist/chunks/guard-YhbCPY-V.js.map +0 -1
- package/dist/chunks/input-CVKu3XRI.js.map +0 -1
- package/dist/chunks/menu-item-Ckl9f1rG.js.map +0 -1
- package/dist/chunks/provider-BfO67dzy.js.map +0 -1
- package/dist/chunks/select-DHFgELMJ.js.map +0 -1
- package/dist/lib/components/traits/InputTrait.cjs.js +0 -2
- package/dist/lib/components/traits/InputTrait.cjs.js.map +0 -1
- package/dist/lib/components/traits/InputTrait.d.ts.map +0 -1
- package/dist/lib/components/traits/InputTrait.esm.js +0 -45
- package/dist/lib/components/traits/InputTrait.esm.js.map +0 -1
|
@@ -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":"guard-YhbCPY-V.js","names":["customElement","WebComponent","consume","html","authContext","DEFAULT_AUTH_CONTEXT","_classDecs","_Guard","_A","WeakMap","_ref","_authDecs","context","subscribe","Guard","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_auth","_classPrivateFieldGet","auth","v","_classPrivateFieldSet","render","account","_Guard2","e","c","_initClass","_applyDecs","default","Guard"],"sources":["../../src/components/guard/Guard.ts","../../src/components/guard/index.ts"],"sourcesContent":["import { customElement, WebComponent } from '@/lib/components'\nimport { consume } from '@lit/context'\nimport { html } from 'lit'\nimport { authContext, AuthContext, DEFAULT_AUTH_CONTEXT } from '@/lib/auth'\n\n@customElement('solid-guard')\nexport default class Guard extends WebComponent {\n @consume({ context: authContext, subscribe: true })\n private accessor auth: AuthContext = DEFAULT_AUTH_CONTEXT\n\n protected render () {\n if (!this.auth.account) {\n return html`\n <slot name=\"guest\"></slot>\n `\n }\n\n return html`\n <slot></slot>\n `\n }\n}\n","import Guard from './Guard'\n\nexport { Guard }\nexport default Guard\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAG2EM,IAAA,CAE1EN,EAAc,aAAa,CAAC;AAAA,IAAAO,GAAAC,kBAAA,IAAAC,QAAA;AAAAC,KAAAC,IAE1BT,EAAQ;CAAEU,SAASR;CAAaS,WAAW;AAAK,CAAC,GAAC,SAcpDa,IAAAZ,cAfkCb,EAAa;CAAAc,YAAA,GAAAC,GAAA;EAAAC,AAAA,MAAA,GAAAD,CAAA,GAAAC,EAAA,MAAAT,IAAAU,EAAA,IAAA,GAAAC,EAAA,MAETd,CAAoB,EAAA;CAAA;CAAA,KAAAK,KAAA;EAAA,OAAAU,EAAAZ,GAAA,IAAA;CAAA;CAAA,IAAxCa,KAAIC,GAAA;EAAAC,EAAAf,GAAA,MAAAc,CAAA;CAAA;CAEXE,SAAU;EAOlB,OANK,KAAKH,KAAKI,UAMRtB,CAAI;;QALFA,CAAI;;;CAQf;AACF,GAAC,CAAAwB,GAAA,CAAAR,GAAAD,IAAAU,GAAA,CAAArB,GAAAsB,MAAAC,EAAAJ,GAAA,CAAA;CAAAf;CAAA;CAAA;AAAA,CAAA,GAAAL,GAAA,GAAA,KAAA,GAfkCL,CAAY,GAAA4B,EAAA;;;ACH/C,IAAA,IAAeG"}
|
|
@@ -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":"menu-item-Ckl9f1rG.js","names":["customElement","WebComponent","property","query","html","styles","_classDecs","_MenuItem","_MenuItem2","_A","WeakMap","_B","_ref","_hrefDecs","type","String","reflect","_anchorDecs","_MenuItem3","MenuItem","constructor","args","_classPrivateFieldInitSpec","_initProto","_init_href","_init_anchor","_classPrivateFieldGet","href","v","_classPrivateFieldSet","anchor","render","click","e","c","_initClass","_applyDecs","_Class","_identity","_defineProperty","default","MenuItem"],"sources":["../../src/components/menu-item/MenuItem.styles.css","../../src/components/menu-item/MenuItem.ts","../../src/components/menu-item/index.ts"],"sourcesContent":[":host {\n & > a,\n & > div {\n width: 100%;\n display: flex;\n position: relative;\n justify-content: flex-start;\n align-items: center;\n gap: 5px;\n padding: 10px;\n border-radius: 5px;\n color: var(--solid-ui-color-gray-600);\n font-weight: 500;\n font-size: var(--solid-ui-font-size-md);\n }\n\n &:hover {\n background-color: var(--solid-ui-color-slate-200);\n }\n\n ::slotted([slot=\"left-icon\"]), ::slotted([slot=\"right-icon\"]) {\n width: var(--solid-ui-font-size-xl);\n height: var(--solid-ui-font-size-xl);\n }\n\n a::after {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n }\n}\n","import { customElement, WebComponent } from '@/lib/components'\nimport { property, query } from 'lit/decorators.js'\nimport { html } from 'lit'\n\nimport styles from './MenuItem.styles.css'\n\n@customElement('solid-ui-menu-item')\nexport default class MenuItem extends WebComponent {\n static styles = styles\n\n @property({ type: String, reflect: true })\n accessor href: string | undefined\n\n @query('a')\n private accessor anchor: HTMLAnchorElement | null = null\n\n render () {\n if (this.href) {\n return html`\n <a href=\"${this.href}\" target=\"_blank\" rel=\"noopener noreferrer\">\n <slot name=\"left-icon\"></slot>\n <slot></slot>\n <slot name=\"right-icon\"></slot>\n </a>\n `\n }\n\n return html`\n <div>\n <slot name=\"left-icon\"></slot>\n <slot></slot>\n <slot name=\"right-icon\"></slot>\n </div>\n `\n }\n\n click () {\n this.anchor?.click()\n }\n}\n","import MenuItem from './MenuItem'\n\nexport { MenuItem }\nexport default MenuItem\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACI0CM,IAAA,CAEzCN,EAAc,oBAAoB,CAAC;AAAA,IAAAO;AAAA,KAAAC,KAAAC,kBAAA,IAAAC,QAAA,GAAAC,kBAAA,IAAAD,QAAA,GAAAE,KAAAC,IAIjCX,EAAS;CAAEY,MAAMC;CAAQC,SAAS;AAAK,CAAC,GAACC,IAGzCd,EAAM,GAAG,GAAC,SAAAe,IAPb,cACsCjB,EAAa;CAAAmB,YAAA,GAAAC,GAAA;EAAAC,AAAA,MAAA,GAAAD,CAAA,GAAAC,EAAA,MAAAb,IAAAc,EAAA,IAAA,GAAAC,EAAA,IAAA,EAAA,GAAAF,EAAA,MAAAX,GAAAc,EAAA,MAOG,IAAI,CAAA;CAAA;CAAA,KAAAb,KAAA;EAAA,OAAAc,EAAAjB,GAAA,IAAA;CAAA;CAAA,IAH/CkB,KAAIC,GAAA;EAAAC,EAAApB,GAAA,MAAAmB,CAAA;CAAA;CAAA,IAGIE,SAAM;EAAA,OAAAJ,EAAAf,GAAA,IAAA;CAAA;CAAA,IAANmB,OAAMF,GAAA;EAAAC,EAAAlB,GAAA,MAAAiB,CAAA;CAAA;CAEvBG,SAAU;EAWR,OAVI,KAAKJ,OACAvB,CAAI;mBACE,KAAKuB,KAAI;;;;;UAQjBvB,CAAI;;;;;;;CAOb;CAEA4B,QAAS;EACP,KAAKF,QAAQE,MAAM;CACrB;AACF,GAAC,CAAAC,GAAA,CAAAT,GAAAC,GAAAF,IAAAW,GAAA,CAAA3B,GAAA4B,MAAAC,EAAAlB,GAAA,CAAA;CAAAL;CAAA;CAAA;AAAA,GAAA;CAAAI;CAAA;CAAA;AAAA,CAAA,GAAAX,GAAA,GAAA,KAAA,GAhCqCL,CAAY,GAAAiB,IAAAmB,IAAA,cAAAC,EAAA;CAAAlB,cAAA;EAAA,MAAAb,CAAA,GAAAgC,EAAA,MAAA,UAChClC,CAAM,GAAA8B,EAAA;CAAA;AAAA,GAAAI,EAAAF,GAAA7B,GAAA,KAAA,CAAA,GAAA6B,GAAA;;;ACLxB,IAAA,IAAeI"}
|
|
@@ -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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"select-DHFgELMJ.js","names":["customElement","WebComponent","html","property","query","InputTrait","styles","_classDecs","_Select","_Select2","_A","WeakMap","_B","_C","_D","_E","_ref","_labelDecs","type","String","reflect","_nameDecs","_valueDecs","_requiredDecs","Boolean","_inputElementDecs","_Select3","Select","_classPrivateFieldGet","label","v","_classPrivateFieldSet","name","value","required","inputElement","constructor","_classPrivateFieldInitSpec","_initProto","_init_label","_init_name","_init_value","_init_required","_init_inputElement","_defineProperty","inputTrait","addTrait","getInputElement","getInternals","render","renderLabel","inputId","onInput","getOptions","map","option","options","querySelectorAll","Array","from","textContent","e","c","_initClass","_applyDecs","_Class","_identity","default","Select"],"sources":["../../src/components/select/Select.styles.css","../../src/components/select/Select.ts","../../src/components/select/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 select {\n appearance: none;\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 background: white;\n color: var(--solid-ui-color-gray-700);\n font-size: inherit;\n cursor: pointer;\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","import { customElement, WebComponent } from '@/lib/components'\nimport { html } from 'lit'\nimport { property, query } from 'lit/decorators.js'\nimport InputTrait from '@/lib/components/traits/InputTrait'\nimport type SelectOption from '@/components/select-option/SelectOption'\n\nimport '~icons/lucide/chevron-down'\n\nimport styles from './Select.styles.css'\n\n@customElement('solid-ui-select')\nexport default class Select 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: Boolean, reflect: true })\n accessor required = false;\n\n @query('select')\n accessor inputElement: HTMLSelectElement | 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 <select\n id=\"${this.inputTrait.inputId}\"\n name=${this.name}\n ?required=${this.required}\n @change=${() => this.inputTrait.onInput()}\n >\n ${this.getOptions().map(\n (option) =>\n html`<option\n .value=${option.value}\n ?selected=${option.value === this.value}\n >\n ${option.label}\n </option>`\n )}\n </select>\n <icon-lucide-chevron-down></icon-lucide-chevron-down>\n </div>\n `\n }\n\n private getOptions (): { value: string; label: string }[] {\n const options = this.querySelectorAll<SelectOption>(\n 'solid-ui-select-option'\n )\n\n return Array.from(options).map((option) => ({\n value: option.value,\n label: option.textContent,\n }))\n }\n}\n","import Select from './Select'\n\nexport { Select }\nexport default Select\n"],"mappings":"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"}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const e=require("../ids.cjs.js");require("../index.cjs.js");let t=require("lit");var n=class{inputId;labelId;target;config;constructor(t,n){this.config=n,this.inputId=`input-${e.generateId()}`,this.labelId=`label-${this.inputId}`,this.target=t}firstUpdated(){this.config.getInternals().setFormValue(this.target.value),this.updateValidity()}updated(e){(e.has(`value`)||e.has(`required`))&&this.updateValidity()}formResetCallback(){this.target.value=``,this.config.getInternals().setFormValue(``),this.updateValidity(),this.config.onValueChanged?.(``)}renderLabel(){return this.target.label?t.html`<label id="${this.labelId}" for="${this.inputId}">${this.target.label}</label>`:t.nothing}onInput(){this.setValue(this.config.getInputElement()?.value??``)}onSubmit(){this.config.getInternals().form?.requestSubmit()}setValue(e){this.target.value=e,this.config.getInternals().setFormValue(this.target.value),this.target.dispatchEvent(new InputEvent(`input`,{bubbles:!0,composed:!0})),this.config.onValueChanged?.(this.target.value)}updateValidity(){let e=this.config.getInternals();this.target.required&&this.target.value===``?e.setValidity({valueMissing:!0},`Please fill out this field.`,this.config.getInputElement()??void 0):e.setValidity({})}};exports.default=n;
|
|
2
|
-
//# sourceMappingURL=InputTrait.cjs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"InputTrait.cjs.js","names":[],"sources":["../../../../src/lib/components/traits/InputTrait.ts"],"sourcesContent":["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":"iFAoBA,IAAqB,EAArB,KAA6D,CAC3D,QACA,QACA,OACA,OAEA,YAAa,EAA0B,EAA0B,CAC/D,KAAK,OAAS,EACd,KAAK,QAAU,SAAS,EAAA,WAAW,IACnC,KAAK,QAAU,SAAS,KAAK,UAC7B,KAAK,OAAS,CAChB,CAEA,cAAgB,CACd,KAAK,OAAO,aAAa,CAAC,CAAC,aAAa,KAAK,OAAO,KAAK,EACzD,KAAK,eAAe,CACtB,CAEA,QAAS,EAA8C,EACjD,EAAkB,IAAI,OAAO,GAAK,EAAkB,IAAI,UAAU,IACpE,KAAK,eAAe,CAExB,CAEA,mBAAqB,CACnB,KAAK,OAAO,MAAQ,GACpB,KAAK,OAAO,aAAa,CAAC,CAAC,aAAa,EAAE,EAC1C,KAAK,eAAe,EACpB,KAAK,OAAO,iBAAiB,EAAE,CACjC,CAEA,aAAe,CACb,OAAO,KAAK,OAAO,MACf,EAAA,IAAI,cAAc,KAAK,QAAQ,SAAS,KAAK,QAAQ,IAAI,KAAK,OAAO,MAAM,UAC3E,EAAA,OACN,CAEA,SAAW,CACT,KAAK,SAAS,KAAK,OAAO,gBAAgB,CAAC,EAAE,OAAS,EAAE,CAC1D,CAEA,UAAY,CACV,KAAK,OAAO,aAAa,CAAC,CAAC,MAAM,cAAc,CACjD,CAEA,SAAU,EAAe,CACvB,KAAK,OAAO,MAAQ,EAEpB,KAAK,OAAO,aAAa,CAAC,CAAC,aAAa,KAAK,OAAO,KAAK,EACzD,KAAK,OAAO,cAAc,IAAI,WAAW,QAAS,CAAE,QAAS,GAAM,SAAU,EAAK,CAAC,CAAC,EACpF,KAAK,OAAO,iBAAiB,KAAK,OAAO,KAAK,CAChD,CAEA,gBAA0B,CACxB,IAAM,EAAY,KAAK,OAAO,aAAa,EAEvC,KAAK,OAAO,UAAY,KAAK,OAAO,QAAU,GAChD,EAAU,YACR,CAAE,aAAc,EAAK,EACrB,8BACA,KAAK,OAAO,gBAAgB,GAAK,IAAA,EACnC,EAEA,EAAU,YAAY,CAAC,CAAC,CAE5B,CACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"InputTrait.d.ts","sourceRoot":"","sources":["../../../../src/lib/components/traits/InputTrait.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAQ,OAAO,EAAE,MAAM,KAAK,CAAA;AAInC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAE5D,MAAM,MAAM,gBAAgB,GAAG,YAAY,GAAG;IAC5C,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACf,CAAA;AAED,MAAM,WAAW,gBAAgB;IAC/B,eAAe,IAAI,gBAAgB,GAAG,iBAAiB,GAAG,IAAI,CAAA;IAC9D,YAAY,IAAI,gBAAgB,CAAA;IAChC,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CACzC;AAED,MAAM,CAAC,OAAO,OAAO,UAAW,YAAW,iBAAiB;IACnD,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,MAAM,EAAE,gBAAgB,CAAA;IAC/B,OAAO,CAAC,MAAM,CAAkB;gBAEnB,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,gBAAgB;IAO/D,YAAY;IAKZ,OAAO,CAAE,iBAAiB,EAAE,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC;IAMrD,iBAAiB;IAOjB,WAAW;IAMX,OAAO;IAIP,QAAQ;IAIR,QAAQ,CAAE,KAAK,EAAE,MAAM;IAQvB,OAAO,CAAC,cAAc;CAavB"}
|