@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.
Files changed (83) hide show
  1. package/dist/button-DYrT530y.js +39 -0
  2. package/dist/button.js +2 -0
  3. package/dist/components/button/button-types.d.ts +2 -0
  4. package/dist/components/button/button.d.ts +14 -0
  5. package/dist/components/button/index.d.ts +2 -0
  6. package/dist/components/dropdown-button/dropdown-button-types.d.ts +13 -0
  7. package/dist/components/dropdown-button/dropdown-button.d.ts +34 -0
  8. package/dist/components/dropdown-button/index.d.ts +2 -0
  9. package/dist/components/input/index.d.ts +2 -0
  10. package/dist/components/input/input-types.d.ts +2 -0
  11. package/dist/components/input/input.d.ts +22 -0
  12. package/dist/components/layouts/form/form-layout-types.d.ts +3 -0
  13. package/dist/components/layouts/form/form-layout.d.ts +53 -0
  14. package/dist/components/layouts/form/index.d.ts +2 -0
  15. package/dist/components/layouts/index.d.ts +3 -0
  16. package/dist/components/layouts/page/index.d.ts +1 -0
  17. package/dist/components/layouts/page/layout.d.ts +20 -0
  18. package/dist/components/menu/index.d.ts +2 -0
  19. package/dist/components/menu/menu-types.d.ts +16 -0
  20. package/dist/components/menu/menu.d.ts +36 -0
  21. package/dist/components/modal/index.d.ts +2 -0
  22. package/dist/components/modal/modal-types.d.ts +2 -0
  23. package/dist/components/modal/modal.d.ts +103 -0
  24. package/dist/components/selector/index.d.ts +2 -0
  25. package/dist/components/selector/selector-types.d.ts +19 -0
  26. package/dist/components/selector/selector.d.ts +56 -0
  27. package/dist/components/table/index.d.ts +2 -0
  28. package/dist/components/table/table-types.d.ts +35 -0
  29. package/dist/components/table/table.d.ts +47 -0
  30. package/dist/components/tabs/index.d.ts +2 -0
  31. package/dist/components/tabs/tabs.d.ts +19 -0
  32. package/dist/components/toggle/index.d.ts +2 -0
  33. package/dist/components/toggle/toggle-types.d.ts +4 -0
  34. package/dist/components/toggle/toggle.d.ts +15 -0
  35. package/dist/dropdown-button-B6XNoy4L.js +172 -0
  36. package/dist/dropdown-button.js +2 -0
  37. package/dist/form-layout-DCX8X-8-.js +140 -0
  38. package/dist/index.d.ts +22 -0
  39. package/dist/input-BVlPYqTe.js +70 -0
  40. package/dist/input.js +2 -0
  41. package/dist/layout-CYvgu_WE.js +23 -0
  42. package/dist/layouts.js +3 -0
  43. package/dist/menu-DmAFaVi5.js +248 -0
  44. package/dist/menu.js +2 -0
  45. package/dist/mock/table-data.d.ts +16 -0
  46. package/dist/modal-v1GlqMF_.js +174 -0
  47. package/dist/modal.js +2 -0
  48. package/dist/react/button.d.ts +2 -0
  49. package/dist/react/button.js +9 -0
  50. package/dist/react/dropdown-button.d.ts +6 -0
  51. package/dist/react/dropdown-button.js +10 -0
  52. package/dist/react/form-layout.d.ts +8 -0
  53. package/dist/react/form-layout.js +14 -0
  54. package/dist/react/index.d.ts +21 -0
  55. package/dist/react/input.d.ts +2 -0
  56. package/dist/react/input.js +9 -0
  57. package/dist/react/layout.d.ts +2 -0
  58. package/dist/react/layout.js +9 -0
  59. package/dist/react/menu.d.ts +7 -0
  60. package/dist/react/menu.js +13 -0
  61. package/dist/react/modal.d.ts +7 -0
  62. package/dist/react/modal.js +14 -0
  63. package/dist/react/selector.d.ts +6 -0
  64. package/dist/react/selector.js +10 -0
  65. package/dist/react/table.d.ts +8 -0
  66. package/dist/react/table.js +14 -0
  67. package/dist/react/tabs.d.ts +5 -0
  68. package/dist/react/tabs.js +10 -0
  69. package/dist/react/toggle.d.ts +6 -0
  70. package/dist/react/toggle.js +10 -0
  71. package/dist/react.js +12 -0
  72. package/dist/selector-Bl7Nbkqo.js +300 -0
  73. package/dist/selector.js +2 -0
  74. package/dist/styles/tailwind-base.d.ts +1 -0
  75. package/dist/table--O5km0Wv.js +279 -0
  76. package/dist/table.js +2 -0
  77. package/dist/tabs-C2lP0uxY.js +94 -0
  78. package/dist/tabs.js +2 -0
  79. package/dist/toggle-D6UMZ8UZ.js +59 -0
  80. package/dist/toggle.js +2 -0
  81. package/dist/vite.svg +1 -0
  82. package/dist/web-components.js +24 -0
  83. package/package.json +153 -0
package/dist/table.js ADDED
@@ -0,0 +1,2 @@
1
+ import { t as e } from "./table--O5km0Wv.js";
2
+ export { e as Table };
@@ -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,2 @@
1
+ import { t as e } from "./tabs-C2lP0uxY.js";
2
+ export { e as Tabs };
@@ -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
@@ -0,0 +1,2 @@
1
+ import { t as e } from "./toggle-D6UMZ8UZ.js";
2
+ export { e as Toggle };
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
+ }