@vverchonov/web-components 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/button-DYrT530y.js +39 -0
- package/dist/button.js +2 -0
- package/dist/components/button/button-types.d.ts +2 -0
- package/dist/components/button/button.d.ts +14 -0
- package/dist/components/button/index.d.ts +2 -0
- package/dist/components/dropdown-button/dropdown-button-types.d.ts +13 -0
- package/dist/components/dropdown-button/dropdown-button.d.ts +34 -0
- package/dist/components/dropdown-button/index.d.ts +2 -0
- package/dist/components/input/index.d.ts +2 -0
- package/dist/components/input/input-types.d.ts +2 -0
- package/dist/components/input/input.d.ts +22 -0
- package/dist/components/layouts/form/form-layout-types.d.ts +3 -0
- package/dist/components/layouts/form/form-layout.d.ts +53 -0
- package/dist/components/layouts/form/index.d.ts +2 -0
- package/dist/components/layouts/index.d.ts +3 -0
- package/dist/components/layouts/page/index.d.ts +1 -0
- package/dist/components/layouts/page/layout.d.ts +20 -0
- package/dist/components/menu/index.d.ts +2 -0
- package/dist/components/menu/menu-types.d.ts +16 -0
- package/dist/components/menu/menu.d.ts +36 -0
- package/dist/components/modal/index.d.ts +2 -0
- package/dist/components/modal/modal-types.d.ts +2 -0
- package/dist/components/modal/modal.d.ts +103 -0
- package/dist/components/selector/index.d.ts +2 -0
- package/dist/components/selector/selector-types.d.ts +19 -0
- package/dist/components/selector/selector.d.ts +56 -0
- package/dist/components/table/index.d.ts +2 -0
- package/dist/components/table/table-types.d.ts +35 -0
- package/dist/components/table/table.d.ts +47 -0
- package/dist/components/tabs/index.d.ts +2 -0
- package/dist/components/tabs/tabs.d.ts +19 -0
- package/dist/components/toggle/index.d.ts +2 -0
- package/dist/components/toggle/toggle-types.d.ts +4 -0
- package/dist/components/toggle/toggle.d.ts +15 -0
- package/dist/dropdown-button-B6XNoy4L.js +172 -0
- package/dist/dropdown-button.js +2 -0
- package/dist/form-layout-DCX8X-8-.js +140 -0
- package/dist/index.d.ts +22 -0
- package/dist/input-BVlPYqTe.js +70 -0
- package/dist/input.js +2 -0
- package/dist/layout-CYvgu_WE.js +23 -0
- package/dist/layouts.js +3 -0
- package/dist/menu-DmAFaVi5.js +248 -0
- package/dist/menu.js +2 -0
- package/dist/mock/table-data.d.ts +16 -0
- package/dist/modal-v1GlqMF_.js +174 -0
- package/dist/modal.js +2 -0
- package/dist/react/button.d.ts +2 -0
- package/dist/react/button.js +9 -0
- package/dist/react/dropdown-button.d.ts +6 -0
- package/dist/react/dropdown-button.js +10 -0
- package/dist/react/form-layout.d.ts +8 -0
- package/dist/react/form-layout.js +14 -0
- package/dist/react/index.d.ts +21 -0
- package/dist/react/input.d.ts +2 -0
- package/dist/react/input.js +9 -0
- package/dist/react/layout.d.ts +2 -0
- package/dist/react/layout.js +9 -0
- package/dist/react/menu.d.ts +7 -0
- package/dist/react/menu.js +13 -0
- package/dist/react/modal.d.ts +7 -0
- package/dist/react/modal.js +14 -0
- package/dist/react/selector.d.ts +6 -0
- package/dist/react/selector.js +10 -0
- package/dist/react/table.d.ts +8 -0
- package/dist/react/table.js +14 -0
- package/dist/react/tabs.d.ts +5 -0
- package/dist/react/tabs.js +10 -0
- package/dist/react/toggle.d.ts +6 -0
- package/dist/react/toggle.js +10 -0
- package/dist/react.js +12 -0
- package/dist/selector-Bl7Nbkqo.js +300 -0
- package/dist/selector.js +2 -0
- package/dist/styles/tailwind-base.d.ts +1 -0
- package/dist/table--O5km0Wv.js +279 -0
- package/dist/table.js +2 -0
- package/dist/tabs-C2lP0uxY.js +94 -0
- package/dist/tabs.js +2 -0
- package/dist/toggle-D6UMZ8UZ.js +59 -0
- package/dist/toggle.js +2 -0
- package/dist/vite.svg +1 -0
- package/dist/web-components.js +24 -0
- package/package.json +153 -0
package/dist/table.js
ADDED
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { LitElement as e, html as t, nothing as n, unsafeCSS as r } from "lit";
|
|
2
|
+
import { customElement as i, property as a } from "lit/decorators.js";
|
|
3
|
+
var o = ":host{display:block}.tablist{gap:var(--tab-gap);border-bottom:1px solid var(--color-border);scrollbar-width:none;display:flex;overflow-x:auto}.tablist::-webkit-scrollbar{display:none}.tab{padding-block:var(--tab-padding-block);padding-inline:var(--tab-padding-inline);cursor:pointer;font-family:inherit;font-size:var(--tab-font-size);font-weight:var(--tab-font-weight);color:var(--color-text-muted);white-space:nowrap;user-select:none;min-height:2.75rem;transition:color var(--tab-transition-duration) var(--ease-emphasized), background-color var(--tab-transition-duration) var(--ease-emphasized);background:0 0;border:none;justify-content:center;align-items:center;line-height:1.25;display:inline-flex;position:relative}.tab:after{content:\"\";height:var(--tab-indicator-height);border-radius:var(--tab-indicator-height) var(--tab-indicator-height) 0 0;transition:background-color var(--tab-transition-duration) var(--ease-emphasized);background:0 0;position:absolute;bottom:0;left:0;right:0}.tab:hover:not(:disabled){color:var(--color-text);background:var(--color-surface-elevated)}.tab[aria-selected=true]{color:var(--color-primary);font-weight:600}.tab[aria-selected=true]:after{background:var(--color-primary)}.tab:disabled{cursor:not-allowed;opacity:.45}.tab:focus{outline:none}.tab:focus-visible{outline:2px solid var(--color-primary);outline-offset:-2px;border-radius:var(--radius-button)}.panel{padding-block-start:var(--tab-panel-padding-block)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}";
|
|
4
|
+
function s(e, t, n, r) {
|
|
5
|
+
var i = arguments.length, a = i < 3 ? t : r === null ? r = Object.getOwnPropertyDescriptor(t, n) : r, o;
|
|
6
|
+
if (typeof Reflect == "object" && typeof Reflect.decorate == "function") a = Reflect.decorate(e, t, n, r);
|
|
7
|
+
else for (var s = e.length - 1; s >= 0; s--) (o = e[s]) && (a = (i < 3 ? o(a) : i > 3 ? o(t, n, a) : o(t, n)) || a);
|
|
8
|
+
return i > 3 && a && Object.defineProperty(t, n, a), a;
|
|
9
|
+
}
|
|
10
|
+
var c = class extends e {
|
|
11
|
+
static {
|
|
12
|
+
this.styles = [r(o)];
|
|
13
|
+
}
|
|
14
|
+
_selectTab(e) {
|
|
15
|
+
if (e.disabled) return;
|
|
16
|
+
this.value = e.value;
|
|
17
|
+
let t = new CustomEvent("tab-change", {
|
|
18
|
+
detail: { value: e.value },
|
|
19
|
+
bubbles: !0,
|
|
20
|
+
composed: !0
|
|
21
|
+
});
|
|
22
|
+
this.dispatchEvent(t), this.onChange?.(t);
|
|
23
|
+
}
|
|
24
|
+
_handleKeydown(e) {
|
|
25
|
+
let t = this.tabs.filter((e) => !e.disabled), n = t.findIndex((e) => e.value === this.value);
|
|
26
|
+
if (n === -1) return;
|
|
27
|
+
let r = null;
|
|
28
|
+
switch (e.key) {
|
|
29
|
+
case "ArrowRight":
|
|
30
|
+
r = (n + 1) % t.length;
|
|
31
|
+
break;
|
|
32
|
+
case "ArrowLeft":
|
|
33
|
+
r = (n - 1 + t.length) % t.length;
|
|
34
|
+
break;
|
|
35
|
+
case "Home":
|
|
36
|
+
r = 0;
|
|
37
|
+
break;
|
|
38
|
+
case "End":
|
|
39
|
+
r = t.length - 1;
|
|
40
|
+
break;
|
|
41
|
+
default: return;
|
|
42
|
+
}
|
|
43
|
+
e.preventDefault();
|
|
44
|
+
let i = t[r];
|
|
45
|
+
this._selectTab(i), (this.shadowRoot?.querySelector(`[data-value="${i.value}"]`))?.focus();
|
|
46
|
+
}
|
|
47
|
+
_activeValue() {
|
|
48
|
+
return this.value && this.tabs.some((e) => e.value === this.value) ? this.value : this.tabs.find((e) => !e.disabled)?.value ?? "";
|
|
49
|
+
}
|
|
50
|
+
render() {
|
|
51
|
+
let e = this._activeValue();
|
|
52
|
+
return t`
|
|
53
|
+
<div
|
|
54
|
+
class="tablist"
|
|
55
|
+
role="tablist"
|
|
56
|
+
@keydown=${this._handleKeydown}
|
|
57
|
+
>
|
|
58
|
+
${this.tabs.map((n) => {
|
|
59
|
+
let r = n.value === e, i = `panel-${n.value}`;
|
|
60
|
+
return t`
|
|
61
|
+
<button
|
|
62
|
+
class="tab"
|
|
63
|
+
role="tab"
|
|
64
|
+
id=${`tab-${n.value}`}
|
|
65
|
+
data-value=${n.value}
|
|
66
|
+
aria-selected=${r}
|
|
67
|
+
aria-controls=${i}
|
|
68
|
+
tabindex=${r ? 0 : -1}
|
|
69
|
+
?disabled=${n.disabled}
|
|
70
|
+
@click=${() => this._selectTab(n)}
|
|
71
|
+
>${n.label}</button>
|
|
72
|
+
`;
|
|
73
|
+
})}
|
|
74
|
+
</div>
|
|
75
|
+
<div
|
|
76
|
+
class="panel"
|
|
77
|
+
role="tabpanel"
|
|
78
|
+
id=${`panel-${e}`}
|
|
79
|
+
aria-labelledby=${e ? `tab-${e}` : n}
|
|
80
|
+
tabindex="0"
|
|
81
|
+
>
|
|
82
|
+
<slot name=${e}></slot>
|
|
83
|
+
</div>
|
|
84
|
+
`;
|
|
85
|
+
}
|
|
86
|
+
constructor(...e) {
|
|
87
|
+
super(...e), this.tabs = [], this.value = "";
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
s([a({ attribute: !1 })], c.prototype, "tabs", void 0), s([a({
|
|
91
|
+
type: String,
|
|
92
|
+
reflect: !0
|
|
93
|
+
})], c.prototype, "value", void 0), s([a({ attribute: !1 })], c.prototype, "onChange", void 0), c = s([i("app-tabs")], c);
|
|
94
|
+
export { c as t };
|
package/dist/tabs.js
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { LitElement as e, html as t, nothing as n, unsafeCSS as r } from "lit";
|
|
2
|
+
import { customElement as i, property as a } from "lit/decorators.js";
|
|
3
|
+
var o = ":host{display:inline-block}button{align-items:center;gap:var(--toggle-label-gap);cursor:pointer;padding:0;background:0 0;border:none;min-height:2.75rem;padding-block:.625rem;display:inline-flex}button:focus{outline:none}button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-button)}button:disabled{cursor:not-allowed;opacity:.45}.label-area{align-items:center;gap:var(--toggle-icon-gap);color:var(--color-text);user-select:none;font-size:.875rem;font-weight:500;line-height:1.25;display:inline-flex}.label-area:not(:has(slot[name=icon] *)):not(:has(.label)){display:none}.label{display:var(--toggle-label-display,inline)}.icon-wrapper{color:var(--color-text-muted);flex-shrink:0;align-items:center;display:inline-flex}.icon-wrapper:not(:has(*)){display:none}.label-area.icon-start .icon-wrapper{order:0}.label-area.icon-start .label{order:1}.label-area.icon-end .label{order:0}.label-area.icon-end .icon-wrapper{order:1}.track{display:var(--toggle-track-display,inline-flex);width:var(--toggle-track-width);height:var(--toggle-track-height);border-radius:var(--radius-full);background:var(--color-border-strong);transition:background-color var(--toggle-transition-duration) var(--ease-emphasized);flex-shrink:0;align-items:center;position:relative}:host([checked]) .track{background:var(--color-primary)}button:hover:not(:disabled) .track{background:var(--color-border-strong);filter:brightness(.9)}:host([checked]) button:hover:not(:disabled) .track{background:var(--color-primary-hover);filter:none}.thumb{left:calc((var(--toggle-track-height) - var(--toggle-thumb-size)) / 2);width:var(--toggle-thumb-size);height:var(--toggle-thumb-size);border-radius:var(--radius-full);background:var(--color-text-inverse);transition:transform var(--toggle-transition-duration) var(--ease-emphasized);position:absolute;transform:translate(0);box-shadow:0 1px 3px oklch(0% 0 0/.2)}:host([checked]) .thumb{transform:translateX(var(--toggle-thumb-travel))}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}";
|
|
4
|
+
function s(e, t, n, r) {
|
|
5
|
+
var i = arguments.length, a = i < 3 ? t : r === null ? r = Object.getOwnPropertyDescriptor(t, n) : r, o;
|
|
6
|
+
if (typeof Reflect == "object" && typeof Reflect.decorate == "function") a = Reflect.decorate(e, t, n, r);
|
|
7
|
+
else for (var s = e.length - 1; s >= 0; s--) (o = e[s]) && (a = (i < 3 ? o(a) : i > 3 ? o(t, n, a) : o(t, n)) || a);
|
|
8
|
+
return i > 3 && a && Object.defineProperty(t, n, a), a;
|
|
9
|
+
}
|
|
10
|
+
var c = class extends e {
|
|
11
|
+
static {
|
|
12
|
+
this.styles = [r(o)];
|
|
13
|
+
}
|
|
14
|
+
_handleClick() {
|
|
15
|
+
if (this.disabled) return;
|
|
16
|
+
this.checked = !this.checked;
|
|
17
|
+
let e = new CustomEvent("toggle-change", {
|
|
18
|
+
detail: { checked: this.checked },
|
|
19
|
+
bubbles: !0,
|
|
20
|
+
composed: !0
|
|
21
|
+
});
|
|
22
|
+
this.dispatchEvent(e), this.onChange?.(e);
|
|
23
|
+
}
|
|
24
|
+
render() {
|
|
25
|
+
return t`
|
|
26
|
+
<button
|
|
27
|
+
role="switch"
|
|
28
|
+
aria-checked=${this.checked}
|
|
29
|
+
aria-label=${this.label ? n : "Toggle"}
|
|
30
|
+
?disabled=${this.disabled}
|
|
31
|
+
@click=${this._handleClick}
|
|
32
|
+
>
|
|
33
|
+
<span class="label-area icon-${this.iconPosition}">
|
|
34
|
+
<span class="icon-wrapper" aria-hidden="true">
|
|
35
|
+
<slot name="icon"></slot>
|
|
36
|
+
</span>
|
|
37
|
+
${this.label ? t`<span class="label">${this.label}</span>` : n}
|
|
38
|
+
</span>
|
|
39
|
+
<span class="track" aria-hidden="true">
|
|
40
|
+
<span class="thumb"></span>
|
|
41
|
+
</span>
|
|
42
|
+
</button>
|
|
43
|
+
`;
|
|
44
|
+
}
|
|
45
|
+
constructor(...e) {
|
|
46
|
+
super(...e), this.checked = !1, this.disabled = !1, this.label = "", this.iconPosition = "start";
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
s([a({
|
|
50
|
+
type: Boolean,
|
|
51
|
+
reflect: !0
|
|
52
|
+
})], c.prototype, "checked", void 0), s([a({
|
|
53
|
+
type: Boolean,
|
|
54
|
+
reflect: !0
|
|
55
|
+
})], c.prototype, "disabled", void 0), s([a({ type: String })], c.prototype, "label", void 0), s([a({
|
|
56
|
+
type: String,
|
|
57
|
+
attribute: "icon-position"
|
|
58
|
+
})], c.prototype, "iconPosition", void 0), s([a({ attribute: !1 })], c.prototype, "onChange", void 0), c = s([i("app-toggle")], c);
|
|
59
|
+
export { c as t };
|
package/dist/toggle.js
ADDED
package/dist/vite.svg
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { t as e } from "./button-DYrT530y.js";
|
|
2
|
+
import "./button.js";
|
|
3
|
+
import { t } from "./table--O5km0Wv.js";
|
|
4
|
+
import "./table.js";
|
|
5
|
+
import { t as n } from "./dropdown-button-B6XNoy4L.js";
|
|
6
|
+
import "./dropdown-button.js";
|
|
7
|
+
import { t as r } from "./menu-DmAFaVi5.js";
|
|
8
|
+
import "./menu.js";
|
|
9
|
+
import { t as i } from "./layout-CYvgu_WE.js";
|
|
10
|
+
import { t as a } from "./form-layout-DCX8X-8-.js";
|
|
11
|
+
import "./layouts.js";
|
|
12
|
+
import { t as o } from "./toggle-D6UMZ8UZ.js";
|
|
13
|
+
import "./toggle.js";
|
|
14
|
+
import { t as s } from "./input-BVlPYqTe.js";
|
|
15
|
+
import "./input.js";
|
|
16
|
+
import { t as c } from "./modal-v1GlqMF_.js";
|
|
17
|
+
import "./modal.js";
|
|
18
|
+
import { t as l } from "./tabs-C2lP0uxY.js";
|
|
19
|
+
import "./tabs.js";
|
|
20
|
+
import { t as u } from "./selector-Bl7Nbkqo.js";
|
|
21
|
+
import "./selector.js";
|
|
22
|
+
import { unsafeCSS as d } from "lit";
|
|
23
|
+
const f = d("/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */\n@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-outline-style:solid}}}@layer theme{:root,:host{--font-sans:ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\";--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;--spacing:.25rem;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4, 0, .2, 1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-primary:oklch(62.4% .214 264.38);--color-primary-hover:oklch(55.3% .222 265.64);--color-primary-muted:oklch(91% .04 264);--color-surface:oklch(100% 0 0);--color-surface-elevated:oklch(98.5% 0 0);--color-border:oklch(91% .01 264);--color-border-strong:oklch(75% .02 264);--color-text:oklch(21% .02 264);--color-text-muted:oklch(50% .02 264);--color-text-inverse:oklch(99% 0 0);--color-valid:oklch(60% .18 145);--color-invalid:oklch(55% .22 25);--color-invalid-muted:oklch(95% .05 25);--radius-button:.375rem;--radius-card:.5rem;--radius-input:.375rem;--radius-full:9999px;--button-font-size:1rem;--button-font-weight:500;--button-padding-block:.5rem;--button-padding-inline:1rem;--button-margin-block:0;--button-margin-inline:0;--button-transition-duration:.2s;--button-focus-ring-offset:2px;--button-focus-ring-width:2px;--button-icon-gap:.5rem;--table-cell-padding-block:.5rem;--table-cell-padding-inline:.75rem;--table-header-font-weight:600;--table-header-bg:var(--color-surface-elevated);--table-border-color:var(--color-border);--table-body-bg:var(--color-surface);--table-text-color:var(--color-text);--ease-emphasized:cubic-bezier(.2, 0, 0, 1);--ease-emphasized-in:cubic-bezier(.3, 0, 1, 1);--ease-emphasized-out:cubic-bezier(0, 0, .2, 1);--dropdown-padding:.375rem;--dropdown-item-padding-block:.375rem;--dropdown-item-padding-inline:.5rem;--dropdown-item-font-size:.875rem;--dropdown-item-icon-gap:.5rem;--toggle-track-width:2.75rem;--toggle-track-height:1.5rem;--toggle-thumb-size:1.125rem;--toggle-thumb-travel:1.25rem;--toggle-transition-duration:.2s;--toggle-icon-gap:.5rem;--toggle-label-gap:.625rem;--input-font-size:1rem;--input-padding-block:.5rem;--input-padding-inline:.75rem;--input-icon-size:1.125rem;--input-icon-gap:.5rem;--input-transition-duration:.2s;--menu-width:240px;--menu-collapsed-width:3.5rem;--menu-bg:var(--color-surface);--menu-item-padding-block:.5rem;--menu-item-padding-inline:.75rem;--menu-item-font-size:.875rem;--menu-item-icon-gap:.625rem;--menu-indent:1rem;--menu-logo-padding:1rem;--menu-search-padding:.75rem;--tab-padding-block:.625rem;--tab-padding-inline:1rem;--tab-font-size:.875rem;--tab-font-weight:500;--tab-gap:.25rem;--tab-indicator-height:2px;--tab-transition-duration:.2s;--tab-panel-padding-block:1rem;--modal-width:32rem;--modal-padding:1.5rem;--modal-border-radius:var(--radius-card);--modal-backdrop:oklch(0% 0 0/.45);--modal-transition-duration:.2s;--selector-min-height:2.5rem;--selector-chip-gap:.25rem;--selector-chip-padding-block:.125rem;--selector-chip-padding-inline:.5rem;--selector-chip-font-size:.8125rem;--selector-panel-max-height:16rem;--selector-transition-duration:.2s}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif, system-ui, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.fixed{position:fixed}.static{position:static}.sticky{position:sticky}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.container{width:100%}@media (width>=40rem){.container{max-width:40rem}}@media (width>=48rem){.container{max-width:48rem}}@media (width>=64rem){.container{max-width:64rem}}@media (width>=80rem){.container{max-width:80rem}}@media (width>=96rem){.container{max-width:96rem}}.block{display:block}.contents{display:contents}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-block{display:inline-block}.table{display:table}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.flex-wrap{flex-wrap:wrap}.border{border-style:var(--tw-border-style);border-width:1px}.shadow{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a), 0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--color-primary:oklch(70% .2 264);--color-primary-hover:oklch(78% .19 264);--color-primary-muted:oklch(24% .05 264);--color-surface:oklch(14% .01 264);--color-surface-elevated:oklch(19% .01 264);--color-border:oklch(28% .02 264);--color-border-strong:oklch(40% .03 264);--color-text:oklch(93% .01 264);--color-text-muted:oklch(62% .02 264);--color-text-inverse:oklch(14% .01 264);--color-valid:oklch(68% .18 145);--color-valid-muted:oklch(22% .05 145);--color-invalid:oklch(65% .22 25);--color-invalid-muted:oklch(22% .06 25)}}:root[data-theme=dark]{--color-primary:oklch(70% .2 264);--color-primary-hover:oklch(78% .19 264);--color-primary-muted:oklch(24% .05 264);--color-surface:oklch(14% .01 264);--color-surface-elevated:oklch(19% .01 264);--color-border:oklch(28% .02 264);--color-border-strong:oklch(40% .03 264);--color-text:oklch(93% .01 264);--color-text-muted:oklch(62% .02 264);--color-text-inverse:oklch(14% .01 264);--color-valid:oklch(68% .18 145);--color-valid-muted:oklch(22% .05 145);--color-invalid:oklch(65% .22 25);--color-invalid-muted:oklch(22% .06 25)}@property --tw-rotate-x{syntax:\"*\";inherits:false}@property --tw-rotate-y{syntax:\"*\";inherits:false}@property --tw-rotate-z{syntax:\"*\";inherits:false}@property --tw-skew-x{syntax:\"*\";inherits:false}@property --tw-skew-y{syntax:\"*\";inherits:false}@property --tw-border-style{syntax:\"*\";inherits:false;initial-value:solid}@property --tw-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:\"*\";inherits:false}@property --tw-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:\"*\";inherits:false}@property --tw-inset-shadow-alpha{syntax:\"<percentage>\";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:\"*\";inherits:false}@property --tw-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:\"*\";inherits:false}@property --tw-inset-ring-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:\"*\";inherits:false}@property --tw-ring-offset-width{syntax:\"<length>\";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:\"*\";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:\"*\";inherits:false;initial-value:0 0 #0000}@property --tw-outline-style{syntax:\"*\";inherits:false;initial-value:solid}");
|
|
24
|
+
export { e as Button, n as DropdownButton, a as FormLayout, s as Input, i as Layout, r as Menu, c as Modal, u as Selector, t as Table, l as Tabs, o as Toggle, f as tailwindBase };
|
package/package.json
ADDED
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@vverchonov/web-components",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"publishConfig": {
|
|
6
|
+
"access": "public"
|
|
7
|
+
},
|
|
8
|
+
"scripts": {
|
|
9
|
+
"dev": "vite",
|
|
10
|
+
"build": "vite build",
|
|
11
|
+
"preview": "vite preview"
|
|
12
|
+
},
|
|
13
|
+
"sideEffects": [
|
|
14
|
+
"./dist/web-components.js",
|
|
15
|
+
"./dist/button.js",
|
|
16
|
+
"./dist/table.js",
|
|
17
|
+
"./dist/dropdown-button.js",
|
|
18
|
+
"./dist/menu.js",
|
|
19
|
+
"./dist/layouts.js",
|
|
20
|
+
"./dist/toggle.js",
|
|
21
|
+
"./dist/input.js",
|
|
22
|
+
"./dist/modal.js",
|
|
23
|
+
"./dist/tabs.js",
|
|
24
|
+
"./dist/selector.js"
|
|
25
|
+
],
|
|
26
|
+
"files": [
|
|
27
|
+
"dist"
|
|
28
|
+
],
|
|
29
|
+
"main": "./dist/web-components.js",
|
|
30
|
+
"module": "./dist/web-components.js",
|
|
31
|
+
"types": "./dist/index.d.ts",
|
|
32
|
+
"exports": {
|
|
33
|
+
".": {
|
|
34
|
+
"types": "./dist/index.d.ts",
|
|
35
|
+
"import": "./dist/web-components.js"
|
|
36
|
+
},
|
|
37
|
+
"./button": {
|
|
38
|
+
"types": "./dist/components/button/index.d.ts",
|
|
39
|
+
"import": "./dist/button.js"
|
|
40
|
+
},
|
|
41
|
+
"./table": {
|
|
42
|
+
"types": "./dist/components/table/index.d.ts",
|
|
43
|
+
"import": "./dist/table.js"
|
|
44
|
+
},
|
|
45
|
+
"./dropdown-button": {
|
|
46
|
+
"types": "./dist/components/dropdown-button/index.d.ts",
|
|
47
|
+
"import": "./dist/dropdown-button.js"
|
|
48
|
+
},
|
|
49
|
+
"./menu": {
|
|
50
|
+
"types": "./dist/components/menu/index.d.ts",
|
|
51
|
+
"import": "./dist/menu.js"
|
|
52
|
+
},
|
|
53
|
+
"./layouts": {
|
|
54
|
+
"types": "./dist/components/layouts/index.d.ts",
|
|
55
|
+
"import": "./dist/layouts.js"
|
|
56
|
+
},
|
|
57
|
+
"./toggle": {
|
|
58
|
+
"types": "./dist/components/toggle/index.d.ts",
|
|
59
|
+
"import": "./dist/toggle.js"
|
|
60
|
+
},
|
|
61
|
+
"./input": {
|
|
62
|
+
"types": "./dist/components/input/index.d.ts",
|
|
63
|
+
"import": "./dist/input.js"
|
|
64
|
+
},
|
|
65
|
+
"./modal": {
|
|
66
|
+
"types": "./dist/components/modal/index.d.ts",
|
|
67
|
+
"import": "./dist/modal.js"
|
|
68
|
+
},
|
|
69
|
+
"./tabs": {
|
|
70
|
+
"types": "./dist/components/tabs/index.d.ts",
|
|
71
|
+
"import": "./dist/tabs.js"
|
|
72
|
+
},
|
|
73
|
+
"./selector": {
|
|
74
|
+
"types": "./dist/components/selector/index.d.ts",
|
|
75
|
+
"import": "./dist/selector.js"
|
|
76
|
+
},
|
|
77
|
+
"./react": {
|
|
78
|
+
"types": "./dist/react/index.d.ts",
|
|
79
|
+
"import": "./dist/react.js"
|
|
80
|
+
},
|
|
81
|
+
"./react/button": {
|
|
82
|
+
"types": "./dist/react/button.d.ts",
|
|
83
|
+
"import": "./dist/react/button.js"
|
|
84
|
+
},
|
|
85
|
+
"./react/dropdown-button": {
|
|
86
|
+
"types": "./dist/react/dropdown-button.d.ts",
|
|
87
|
+
"import": "./dist/react/dropdown-button.js"
|
|
88
|
+
},
|
|
89
|
+
"./react/input": {
|
|
90
|
+
"types": "./dist/react/input.d.ts",
|
|
91
|
+
"import": "./dist/react/input.js"
|
|
92
|
+
},
|
|
93
|
+
"./react/menu": {
|
|
94
|
+
"types": "./dist/react/menu.d.ts",
|
|
95
|
+
"import": "./dist/react/menu.js"
|
|
96
|
+
},
|
|
97
|
+
"./react/modal": {
|
|
98
|
+
"types": "./dist/react/modal.d.ts",
|
|
99
|
+
"import": "./dist/react/modal.js"
|
|
100
|
+
},
|
|
101
|
+
"./react/selector": {
|
|
102
|
+
"types": "./dist/react/selector.d.ts",
|
|
103
|
+
"import": "./dist/react/selector.js"
|
|
104
|
+
},
|
|
105
|
+
"./react/table": {
|
|
106
|
+
"types": "./dist/react/table.d.ts",
|
|
107
|
+
"import": "./dist/react/table.js"
|
|
108
|
+
},
|
|
109
|
+
"./react/tabs": {
|
|
110
|
+
"types": "./dist/react/tabs.d.ts",
|
|
111
|
+
"import": "./dist/react/tabs.js"
|
|
112
|
+
},
|
|
113
|
+
"./react/toggle": {
|
|
114
|
+
"types": "./dist/react/toggle.d.ts",
|
|
115
|
+
"import": "./dist/react/toggle.js"
|
|
116
|
+
},
|
|
117
|
+
"./react/layout": {
|
|
118
|
+
"types": "./dist/react/layout.d.ts",
|
|
119
|
+
"import": "./dist/react/layout.js"
|
|
120
|
+
},
|
|
121
|
+
"./react/form-layout": {
|
|
122
|
+
"types": "./dist/react/form-layout.d.ts",
|
|
123
|
+
"import": "./dist/react/form-layout.js"
|
|
124
|
+
}
|
|
125
|
+
},
|
|
126
|
+
"peerDependencies": {
|
|
127
|
+
"lit": "^3.0.0",
|
|
128
|
+
"react": "^18.0.0 || ^19.0.0"
|
|
129
|
+
},
|
|
130
|
+
"peerDependenciesMeta": {
|
|
131
|
+
"react": {
|
|
132
|
+
"optional": true
|
|
133
|
+
}
|
|
134
|
+
},
|
|
135
|
+
"dependencies": {
|
|
136
|
+
"@lit/react": "^1.0.8"
|
|
137
|
+
},
|
|
138
|
+
"devDependencies": {
|
|
139
|
+
"@tailwindcss/vite": "^4.2.1",
|
|
140
|
+
"lit": "^3.0.0",
|
|
141
|
+
"@types/react": "^19.2.14",
|
|
142
|
+
"esbuild": "^0.27.3",
|
|
143
|
+
"react": "^19.2.4",
|
|
144
|
+
"tailwindcss": "^4.2.1",
|
|
145
|
+
"typescript": "~5.9.3",
|
|
146
|
+
"vite": "^8.0.0-beta.13",
|
|
147
|
+
"vite-plugin-dts": "^4.5.4",
|
|
148
|
+
"vite-plugin-swc-transform": "^1.1.1"
|
|
149
|
+
},
|
|
150
|
+
"overrides": {
|
|
151
|
+
"vite": "^8.0.0-beta.13"
|
|
152
|
+
}
|
|
153
|
+
}
|