@swell/swell-ui 0.0.0-stage → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +22 -0
- package/README.md +165 -2
- package/custom-elements.json +8274 -0
- package/dist/chunks/badge-Dt6q8Cqa.js +11 -0
- package/dist/chunks/button-C7nCiu-t.js +123 -0
- package/dist/chunks/card-CvSQEug8.js +10 -0
- package/dist/chunks/checkbox-BRI_A1TP.js +99 -0
- package/dist/chunks/chip-BtnufSMG.js +48 -0
- package/dist/chunks/config-C-FYxOaJ.js +588 -0
- package/dist/chunks/define-BlQTa1g4.js +19 -0
- package/dist/chunks/description-BHfQ8meK.js +19 -0
- package/dist/chunks/disclosure-CET8-H6f.js +56 -0
- package/dist/chunks/divider-BfkO0c1j.js +27 -0
- package/dist/chunks/element-B4-_7TLZ.js +138 -0
- package/dist/chunks/input-Uun-ls2_.js +53 -0
- package/dist/chunks/link-8qHFEKQE.js +53 -0
- package/dist/chunks/link-D4NC86oc.js +24 -0
- package/dist/chunks/lookup-5icr_T6o.js +205 -0
- package/dist/chunks/lookup-list-Bw6OJoDS.js +19 -0
- package/dist/chunks/lookup-option-Mn3k8W2M.js +26 -0
- package/dist/chunks/popover-D3Ob6slA.js +92 -0
- package/dist/chunks/popup-Dbh2fchP.js +21 -0
- package/dist/chunks/quantity-h3wqn8tC.js +140 -0
- package/dist/chunks/radio-BhFDL3pO.js +192 -0
- package/dist/chunks/radio-option-hT29S8Zl.js +88 -0
- package/dist/chunks/select-DS1n_htj.js +331 -0
- package/dist/chunks/select-option-DoM9GAe0.js +66 -0
- package/dist/chunks/skeleton-DfPjhls9.js +13 -0
- package/dist/chunks/status-B23JZ5RQ.js +71 -0
- package/dist/chunks/tab-BpjFUbFO.js +107 -0
- package/dist/chunks/tabs-aWKq1Iaz.js +122 -0
- package/dist/chunks/text-ZWPy-iB3.js +26 -0
- package/dist/chunks/text-field-BB_MRt5h.js +158 -0
- package/dist/chunks/textarea-L6_OJ2IN.js +18 -0
- package/dist/chunks/thumbnail-CLe9AsFg.js +21 -0
- package/dist/chunks/toggle-C7-oPgWR.js +22 -0
- package/dist/chunks/ui-HcyMKwzs.js +11 -0
- package/dist/editors/vscode.css-custom-data.json +824 -0
- package/dist/editors/vscode.html-custom-data.json +1156 -0
- package/dist/editors/web-types.json +1706 -0
- package/dist/elements/badge.d.ts +1 -0
- package/dist/elements/badge.js +1 -0
- package/dist/elements/button.d.ts +1 -0
- package/dist/elements/button.js +1 -0
- package/dist/elements/card.d.ts +1 -0
- package/dist/elements/card.js +1 -0
- package/dist/elements/checkbox.d.ts +1 -0
- package/dist/elements/checkbox.js +1 -0
- package/dist/elements/chip.d.ts +1 -0
- package/dist/elements/chip.js +1 -0
- package/dist/elements/disclosure.d.ts +1 -0
- package/dist/elements/disclosure.js +1 -0
- package/dist/elements/divider.d.ts +1 -0
- package/dist/elements/divider.js +1 -0
- package/dist/elements/input.d.ts +1 -0
- package/dist/elements/input.js +1 -0
- package/dist/elements/link.d.ts +1 -0
- package/dist/elements/link.js +1 -0
- package/dist/elements/lookup-list.d.ts +1 -0
- package/dist/elements/lookup-list.js +1 -0
- package/dist/elements/lookup-option.d.ts +1 -0
- package/dist/elements/lookup-option.js +1 -0
- package/dist/elements/lookup.d.ts +1 -0
- package/dist/elements/lookup.js +1 -0
- package/dist/elements/popover.d.ts +1 -0
- package/dist/elements/popover.js +1 -0
- package/dist/elements/quantity.d.ts +1 -0
- package/dist/elements/quantity.js +1 -0
- package/dist/elements/radio-option.d.ts +1 -0
- package/dist/elements/radio-option.js +1 -0
- package/dist/elements/radio.d.ts +1 -0
- package/dist/elements/radio.js +1 -0
- package/dist/elements/select-option.d.ts +1 -0
- package/dist/elements/select-option.js +1 -0
- package/dist/elements/select.d.ts +1 -0
- package/dist/elements/select.js +1 -0
- package/dist/elements/skeleton.d.ts +1 -0
- package/dist/elements/skeleton.js +1 -0
- package/dist/elements/status.d.ts +1 -0
- package/dist/elements/status.js +1 -0
- package/dist/elements/tab.d.ts +1 -0
- package/dist/elements/tab.js +1 -0
- package/dist/elements/tabs.d.ts +1 -0
- package/dist/elements/tabs.js +1 -0
- package/dist/elements/text.d.ts +1 -0
- package/dist/elements/text.js +1 -0
- package/dist/elements/textarea.d.ts +1 -0
- package/dist/elements/textarea.js +1 -0
- package/dist/elements/thumbnail.d.ts +1 -0
- package/dist/elements/thumbnail.js +1 -0
- package/dist/elements/ui.d.ts +1 -0
- package/dist/elements/ui.js +1 -0
- package/dist/frameworks/jsx.d.ts +3589 -0
- package/dist/frameworks/preact.d.ts +9 -0
- package/dist/frameworks/solid.d.ts +7 -0
- package/dist/frameworks/svelte.d.ts +1676 -0
- package/dist/frameworks/vue.d.ts +827 -0
- package/dist/index.js +80 -0
- package/dist/react/badge.d.ts +12 -0
- package/dist/react/badge.js +4 -0
- package/dist/react/button.d.ts +16 -0
- package/dist/react/button.js +4 -0
- package/dist/react/card.d.ts +11 -0
- package/dist/react/card.js +4 -0
- package/dist/react/checkbox.d.ts +14 -0
- package/dist/react/checkbox.js +4 -0
- package/dist/react/chip.d.ts +12 -0
- package/dist/react/chip.js +4 -0
- package/dist/react/create.js +49 -0
- package/dist/react/disclosure.d.ts +11 -0
- package/dist/react/disclosure.js +4 -0
- package/dist/react/divider.d.ts +9 -0
- package/dist/react/divider.js +4 -0
- package/dist/react/index.d.ts +26 -0
- package/dist/react/index.js +26 -0
- package/dist/react/input.d.ts +28 -0
- package/dist/react/input.js +4 -0
- package/dist/react/link.d.ts +15 -0
- package/dist/react/link.js +4 -0
- package/dist/react/lookup-list.d.ts +9 -0
- package/dist/react/lookup-list.js +4 -0
- package/dist/react/lookup-option.d.ts +11 -0
- package/dist/react/lookup-option.js +4 -0
- package/dist/react/lookup.d.ts +28 -0
- package/dist/react/lookup.js +4 -0
- package/dist/react/popover.d.ts +11 -0
- package/dist/react/popover.js +4 -0
- package/dist/react/quantity.d.ts +15 -0
- package/dist/react/quantity.js +4 -0
- package/dist/react/radio-option.d.ts +11 -0
- package/dist/react/radio-option.js +4 -0
- package/dist/react/radio.d.ts +18 -0
- package/dist/react/radio.js +4 -0
- package/dist/react/select-option.d.ts +11 -0
- package/dist/react/select-option.js +4 -0
- package/dist/react/select.d.ts +20 -0
- package/dist/react/select.js +4 -0
- package/dist/react/skeleton.d.ts +11 -0
- package/dist/react/skeleton.js +4 -0
- package/dist/react/status.d.ts +12 -0
- package/dist/react/status.js +4 -0
- package/dist/react/tab.d.ts +10 -0
- package/dist/react/tab.js +4 -0
- package/dist/react/tabs.d.ts +17 -0
- package/dist/react/tabs.js +4 -0
- package/dist/react/text.d.ts +12 -0
- package/dist/react/text.js +4 -0
- package/dist/react/textarea.d.ts +23 -0
- package/dist/react/textarea.js +4 -0
- package/dist/react/thumbnail.d.ts +13 -0
- package/dist/react/thumbnail.js +4 -0
- package/dist/react/ui.d.ts +10 -0
- package/dist/react/ui.js +4 -0
- package/dist/types/components/core/badge/badge.d.ts +25 -0
- package/dist/types/components/core/button/button.d.ts +60 -0
- package/dist/types/components/core/card/card.d.ts +21 -0
- package/dist/types/components/core/checkbox/checkbox.d.ts +46 -0
- package/dist/types/components/core/chip/chip.d.ts +36 -0
- package/dist/types/components/core/disclosure/disclosure.d.ts +37 -0
- package/dist/types/components/core/divider/divider.d.ts +21 -0
- package/dist/types/components/core/index.d.ts +21 -0
- package/dist/types/components/core/input/input.d.ts +57 -0
- package/dist/types/components/core/link/link.d.ts +42 -0
- package/dist/types/components/core/lookup/lookup-list.d.ts +21 -0
- package/dist/types/components/core/lookup/lookup-option.d.ts +27 -0
- package/dist/types/components/core/lookup/lookup.d.ts +32 -0
- package/dist/types/components/core/popover/popover.d.ts +33 -0
- package/dist/types/components/core/quantity/quantity.d.ts +47 -0
- package/dist/types/components/core/radio/radio-option.d.ts +82 -0
- package/dist/types/components/core/radio/radio.d.ts +65 -0
- package/dist/types/components/core/select/select-option.d.ts +69 -0
- package/dist/types/components/core/select/select.d.ts +70 -0
- package/dist/types/components/core/skeleton/skeleton.d.ts +23 -0
- package/dist/types/components/core/status/status.d.ts +38 -0
- package/dist/types/components/core/tabs/tab.d.ts +76 -0
- package/dist/types/components/core/tabs/tabs.d.ts +46 -0
- package/dist/types/components/core/text/text.d.ts +23 -0
- package/dist/types/components/core/textarea/textarea.d.ts +45 -0
- package/dist/types/components/core/thumbnail/thumbnail.d.ts +27 -0
- package/dist/types/components/core/ui/ui.d.ts +16 -0
- package/dist/types/components/elements.d.ts +1 -0
- package/dist/types/react/create.d.ts +8 -0
- package/dist/types/runtime/config.d.ts +25 -0
- package/dist/types/runtime/css.d.ts +12 -0
- package/dist/types/runtime/define.d.ts +4 -0
- package/dist/types/runtime/description.d.ts +12 -0
- package/dist/types/runtime/element.d.ts +61 -0
- package/dist/types/runtime/focus.d.ts +5 -0
- package/dist/types/runtime/form.d.ts +5 -0
- package/dist/types/runtime/index.d.ts +2 -0
- package/dist/types/runtime/link.d.ts +17 -0
- package/dist/types/runtime/loader.d.ts +21 -0
- package/dist/types/runtime/popup.d.ts +8 -0
- package/dist/types/runtime/sheet.d.ts +31 -0
- package/dist/types/runtime/text-field.d.ts +47 -0
- package/dist/types/runtime/toggle.d.ts +8 -0
- package/dist/types/runtime/tokens.generated.d.ts +492 -0
- package/dist/types/runtime/values.d.ts +6 -0
- package/dist/types/runtime/variants.d.ts +4 -0
- package/package.json +136 -4
- package/resolver.json +111 -0
- package/src/components/core/badge/tokens.json +152 -0
- package/src/components/core/button/tokens.dark.json +16 -0
- package/src/components/core/button/tokens.json +232 -0
- package/src/components/core/card/tokens.json +35 -0
- package/src/components/core/checkbox/tokens.json +15 -0
- package/src/components/core/chip/tokens.json +144 -0
- package/src/components/core/link/tokens.json +24 -0
- package/src/components/core/radio/tokens.dark.json +17 -0
- package/src/components/core/radio/tokens.json +114 -0
- package/src/components/core/status/tokens.dark.json +71 -0
- package/src/components/core/status/tokens.json +135 -0
- package/src/components/core/tabs/tokens.json +80 -0
- package/src/components/core/text/tokens.json +222 -0
- package/src/components/core/thumbnail/tokens.json +46 -0
- package/tokens/border.json +38 -0
- package/tokens/color.dark.json +88 -0
- package/tokens/color.json +115 -0
- package/tokens/control.json +115 -0
- package/tokens/field.dark.json +65 -0
- package/tokens/field.json +158 -0
- package/tokens/focus.json +26 -0
- package/tokens/font.json +117 -0
- package/tokens/motion.json +49 -0
- package/tokens/overlay.json +81 -0
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { n as e, r as t, t as n } from "./define-BlQTa1g4.js";
|
|
2
|
+
import { n as r } from "./element-B4-_7TLZ.js";
|
|
3
|
+
import { n as i, r as a, t as o } from "./tab-BpjFUbFO.js";
|
|
4
|
+
// src/components/core/tabs/tabs.css?inline
|
|
5
|
+
var s = ":host{--_swell-control-font-size:var(--swell-control-font-size);--_swell-tabs-font-weight:var(--swell-tabs-font-weight,var(--swell-font-strong-weight));--_swell-control-height:var(--swell-control-height);--_swell-tabs-indicator-width:var(--swell-tabs-indicator-width,2px);--_swell-tabs-border-radius:var(--swell-tabs-border-radius,var(--swell-border-radius));--_swell-tabs-color-background:var(--swell-tabs-color-background,var(--swell-color-background));--_swell-tabs-shadow:var(--swell-tabs-shadow,0px 1px 3px 0px);--_swell-tabs-color-shadow:var(--swell-tabs-color-shadow,#0000001a)}:host([size=xsmall]){--_swell-control-font-size:var(--swell-control-xsmall-font-size);--_swell-control-height:var(--swell-control-xsmall-height)}:host([size=small]){--_swell-control-font-size:var(--swell-control-small-font-size);--_swell-control-height:var(--swell-control-small-height)}:host([size=large]){--_swell-control-font-size:var(--swell-control-large-font-size);--_swell-control-height:var(--swell-control-large-height)}:host([size=xlarge]){--_swell-control-font-size:var(--swell-control-xlarge-font-size);--_swell-control-height:var(--swell-control-xlarge-height)}:host{gap:calc(var(--_swell-control-font-size) + 2px);flex-direction:column;display:flex}:host .list{display:flex;position:relative}:host :is(.marker,.line,.node){display:none}:host .tab{justify-content:center;align-items:center;gap:calc(var(--_swell-control-font-size) - 6px);min-width:0;font:var(--_swell-tabs-font-weight) var(--_swell-control-font-size) / 1 var(--swell-font-family);letter-spacing:var(--swell-font-tracking);white-space:nowrap;color:var(--swell-color-secondary-foreground);cursor:pointer;transition:color var(--swell-motion-duration-base) var(--swell-motion-easing);background:0 0;border:0;border-radius:2px;margin:0;padding:0;display:inline-flex}:host .tab:focus-visible{outline:var(--swell-focus-width) solid var(--swell-focus-color);outline-offset:var(--swell-focus-offset)}:host .label{text-overflow:ellipsis;overflow:hidden}:host(:state(underline)) .list{gap:calc(var(--_swell-control-font-size) + 10px);border-bottom:var(--swell-border-width) solid var(--swell-color-border)}:host(:state(underline)) .tab{height:var(--_swell-control-height);position:relative}:host(:state(underline)) .tab[aria-selected=true]:after{content:\"\";inset-inline:0;bottom:calc(-1 * var(--swell-border-width));height:var(--_swell-tabs-indicator-width);border-radius:calc(var(--_swell-tabs-indicator-width) / 2);background:var(--swell-color-accent);position:absolute}:host(:state(segmented)) .list{box-sizing:border-box;height:var(--_swell-control-height);border-radius:calc(var(--_swell-tabs-border-radius) + 4px);background:var(--swell-color-secondary-background);grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;padding:4px;display:grid}:host(:state(segmented)) .tab{height:100%;padding-inline:calc(var(--_swell-control-font-size) - 2px);border-radius:var(--_swell-tabs-border-radius);position:relative}:host(:state(segmented)) .marker{box-sizing:border-box;width:calc((100% - 8px) / var(--marker-count));border-radius:var(--_swell-tabs-border-radius);background:var(--_swell-tabs-color-background);box-shadow:var(--_swell-tabs-shadow) var(--_swell-tabs-color-shadow), 0 0 0 var(--swell-border-width) var(--swell-field-color-border);transition:left var(--swell-motion-duration-slow) var(--swell-motion-easing), right var(--swell-motion-duration-slow) var(--swell-motion-easing);display:block;position:absolute;inset-block:4px;inset-inline-start:calc(4px + var(--marker-index) * (100% - 8px) / var(--marker-count))}:host(:state(steps)) .list{align-items:center;gap:calc(var(--_swell-control-font-size) - 4px)}:host(:state(steps)) .tab{gap:calc(var(--_swell-control-font-size) - 6px);min-height:24px;font-size:max(12px, calc(var(--_swell-control-font-size) - 1px))}:host(:state(steps)) .node{box-sizing:border-box;width:calc(var(--_swell-control-font-size) + 10px);height:calc(var(--_swell-control-font-size) + 10px);border:var(--swell-border-strong-width) solid var(--swell-field-color-border);font:var(--swell-font-bold-weight) max(11px, calc(var(--_swell-control-font-size) - 2px)) / 1 var(--swell-font-family);background:var(--swell-color-background);color:var(--swell-color-secondary-foreground);transition:background-color var(--swell-motion-duration-base) var(--swell-motion-easing), border-color var(--swell-motion-duration-base) var(--swell-motion-easing), color var(--swell-motion-duration-base) var(--swell-motion-easing);border-radius:999px;flex:none;place-items:center;display:grid}:host(:state(steps)) .tab[aria-selected=true] .node{border-color:var(--swell-color-accent);color:var(--swell-color-accent);box-shadow:0 0 0 var(--swell-field-ring-width) var(--swell-field-focus-color-ring)}:host(:state(steps)) .tab[data-done] .node{border-color:var(--swell-color-accent);background:var(--swell-color-accent);color:var(--swell-color-background)}:host .done-label{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}:host .node>*{grid-area:1/1}:host .check{width:calc(var(--_swell-control-font-size) - 2px);height:calc(var(--_swell-control-font-size) - 2px);display:none}:host(:state(steps)) .tab[data-done] .check{display:block}:host(:state(steps)) .line{min-width:12px;height:var(--_swell-tabs-indicator-width);border-radius:calc(var(--_swell-tabs-indicator-width) / 2);background:var(--swell-color-border);transition:background-color var(--swell-motion-duration-slow) var(--swell-motion-easing);flex:1;display:block}:host(:state(steps)) .line[data-done]{background:var(--swell-color-accent)}:host(:state(vertical)){gap:calc(var(--_swell-control-font-size) * 2)}:host(:state(vertical)) .list{display:none}:host .tab:is([aria-selected=true],[data-done]){color:var(--swell-color-foreground)}:host .tab[aria-disabled=true]{cursor:not-allowed;opacity:var(--swell-control-disabled-opacity)}:host .tab:not([aria-disabled]):hover{color:var(--swell-color-foreground)}:host(:state(segmented)) .tab:focus-visible{outline-offset:calc(var(--swell-focus-width) * -1)}@media (forced-colors:active){:host(:state(underline)) .tab[aria-selected=true]:after,:host(:state(segmented)) .marker{background:highlight}:host(:state(steps)) .node{border-color:canvastext}:host(:state(segmented)) .tab[aria-selected=true]{forced-color-adjust:none;color:highlighttext;outline-color:highlighttext}:host(:state(segmented)) :is(.marker,.tab){transition:none}}", c = /* @__PURE__ */ t({ SwellTabs: () => l }), l = class extends r {
|
|
6
|
+
static group = "tabs";
|
|
7
|
+
static appearance = "tabs";
|
|
8
|
+
static appearances = ["steps"];
|
|
9
|
+
static styles = s;
|
|
10
|
+
static template = "<div class=\"list\" role=\"tablist\"><span class=\"marker\" aria-hidden=\"true\"></span></div><slot></slot>";
|
|
11
|
+
static observedAttributes = [
|
|
12
|
+
...r.observedAttributes,
|
|
13
|
+
"value",
|
|
14
|
+
"aria-label",
|
|
15
|
+
"orientation",
|
|
16
|
+
"level",
|
|
17
|
+
"done-label"
|
|
18
|
+
];
|
|
19
|
+
#e;
|
|
20
|
+
#t;
|
|
21
|
+
#n;
|
|
22
|
+
constructor() {
|
|
23
|
+
super();
|
|
24
|
+
let e = this.shadowRoot;
|
|
25
|
+
this.#e = e.querySelector(".list"), this.#t = e.querySelector("slot"), this.#t.addEventListener("slotchange", () => this.#s()), a.link(this, {
|
|
26
|
+
refresh: () => this.#s(),
|
|
27
|
+
choose: (e) => this.#c(e)
|
|
28
|
+
}), this.#e.addEventListener("click", this.#l), this.#e.addEventListener("keydown", this.#u);
|
|
29
|
+
}
|
|
30
|
+
get value() {
|
|
31
|
+
return this.#a(this.#i())?.value ?? "";
|
|
32
|
+
}
|
|
33
|
+
set value(e) {
|
|
34
|
+
this.#n = String(e), this.#s();
|
|
35
|
+
}
|
|
36
|
+
connectedCallback() {
|
|
37
|
+
e(this, "value"), super.connectedCallback(), this.#s();
|
|
38
|
+
}
|
|
39
|
+
update(e) {
|
|
40
|
+
e === "value" && (this.#n = void 0), e === "orientation" ? this.updateStates() : this.#s();
|
|
41
|
+
}
|
|
42
|
+
updateStates() {
|
|
43
|
+
super.updateStates(), this.#s();
|
|
44
|
+
}
|
|
45
|
+
extraStates() {
|
|
46
|
+
return this.#r ? ["vertical"] : [];
|
|
47
|
+
}
|
|
48
|
+
get #r() {
|
|
49
|
+
return this.getAttribute("orientation") === "vertical" && this.getAttribute("appearance") === "steps";
|
|
50
|
+
}
|
|
51
|
+
#i() {
|
|
52
|
+
return this.#t.assignedElements().filter((e) => e instanceof i && !e.hidden);
|
|
53
|
+
}
|
|
54
|
+
#a(e) {
|
|
55
|
+
let t = this.#n ?? this.getAttribute("value");
|
|
56
|
+
return e.find((e) => t !== null && e.value === t) ?? e.find((e) => !e.disabled);
|
|
57
|
+
}
|
|
58
|
+
#o() {
|
|
59
|
+
return [...this.#e.querySelectorAll(".tab")];
|
|
60
|
+
}
|
|
61
|
+
#s() {
|
|
62
|
+
let e = this.#i(), t = this.#a(e), n = this.#o();
|
|
63
|
+
for (; n.length > e.length;) {
|
|
64
|
+
let e = n.pop(), t = e.previousElementSibling;
|
|
65
|
+
t?.classList.contains("line") && t.remove(), e.remove();
|
|
66
|
+
}
|
|
67
|
+
for (; n.length < e.length;) {
|
|
68
|
+
if (n.length) {
|
|
69
|
+
let e = document.createElement("span");
|
|
70
|
+
e.className = "line", e.setAttribute("aria-hidden", "true"), this.#e.append(e);
|
|
71
|
+
}
|
|
72
|
+
let e = document.createElement("button");
|
|
73
|
+
e.type = "button", e.className = "tab", e.setAttribute("role", "tab"), e.innerHTML = `<span class="node" aria-hidden="true"><span class="number"></span>${o}</span><span class="label"></span><span class="done-label"></span>`, this.#e.append(e), n.push(e);
|
|
74
|
+
}
|
|
75
|
+
let r = this.getAttribute("done-label") ?? "", i = t && !t.disabled ? t : e.find((e) => !e.disabled);
|
|
76
|
+
e.forEach((o, s) => {
|
|
77
|
+
let c = n[s];
|
|
78
|
+
c.querySelector(".label").textContent = o.label, c.querySelector(".number").textContent = o.done ? "" : String(s + 1), c.toggleAttribute("data-done", o.done), c.querySelector(".done-label").textContent = o.done ? ` ${r}` : "", c.setAttribute("aria-selected", String(o === t)), c.tabIndex = o === i ? 0 : -1, o.disabled ? c.setAttribute("aria-disabled", "true") : c.removeAttribute("aria-disabled");
|
|
79
|
+
let l = c.nextElementSibling;
|
|
80
|
+
l?.classList.contains("line") && l.toggleAttribute("data-done", o.done), "ariaControlsElements" in c && (c.ariaControlsElements = [o]), a.sync(o, {
|
|
81
|
+
selected: o === t,
|
|
82
|
+
vertical: this.#r,
|
|
83
|
+
position: s + 1,
|
|
84
|
+
last: s === e.length - 1,
|
|
85
|
+
level: Math.min(Math.max(Number(this.getAttribute("level")) || 2, 1), 6),
|
|
86
|
+
doneLabel: r
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
let s = this.getAttribute("aria-label");
|
|
90
|
+
s ? this.#e.setAttribute("aria-label", s) : this.#e.removeAttribute("aria-label");
|
|
91
|
+
let c = this.#e.querySelector(".marker");
|
|
92
|
+
c.style.setProperty("--marker-index", String(Math.max(t ? e.indexOf(t) : 0, 0))), c.style.setProperty("--marker-count", String(Math.max(e.length, 1)));
|
|
93
|
+
}
|
|
94
|
+
#c(e) {
|
|
95
|
+
if (!e || e === this.#a(this.#i())) return;
|
|
96
|
+
let t = new CustomEvent("request", {
|
|
97
|
+
bubbles: !0,
|
|
98
|
+
cancelable: !0,
|
|
99
|
+
detail: { value: e.value }
|
|
100
|
+
});
|
|
101
|
+
this.dispatchEvent(t) && !e.disabled && (this.#n = e.value, this.#s(), this.dispatchEvent(new Event("change", { bubbles: !0 })));
|
|
102
|
+
}
|
|
103
|
+
#l = (e) => {
|
|
104
|
+
let t = e.target.closest(".tab"), n = this.#i()[this.#o().indexOf(t)];
|
|
105
|
+
setTimeout(() => {
|
|
106
|
+
!e.defaultPrevented && this.isConnected && this.#c(n);
|
|
107
|
+
});
|
|
108
|
+
};
|
|
109
|
+
#u = (e) => {
|
|
110
|
+
if (e.altKey || e.ctrlKey || e.metaKey) return;
|
|
111
|
+
let t = this.#o(), n = this.#i(), r = t.filter((e, t) => !n[t]?.disabled), i = t.indexOf(e.target), a = getComputedStyle(this).direction === "rtl" ? -1 : 1, o = e.key === "ArrowRight" ? a : e.key === "ArrowLeft" ? -a : 0, s;
|
|
112
|
+
if (e.key === "Home") s = r[0];
|
|
113
|
+
else if (e.key === "End") s = r.at(-1);
|
|
114
|
+
else if (o && i >= 0) for (let e = 1; e <= t.length && !s; e++) {
|
|
115
|
+
let n = t[((i + o * e) % t.length + t.length) % t.length];
|
|
116
|
+
n && r.includes(n) && (s = n);
|
|
117
|
+
}
|
|
118
|
+
s && (e.preventDefault(), s.focus(), this.matches(":state(steps)") || this.#c(n[t.indexOf(s)]));
|
|
119
|
+
};
|
|
120
|
+
};
|
|
121
|
+
n("swell-tabs", l);
|
|
122
|
+
export { c as n, l as t };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { r as e, t } from "./define-BlQTa1g4.js";
|
|
2
|
+
import { n } from "./element-B4-_7TLZ.js";
|
|
3
|
+
// src/components/core/text/text.css?inline
|
|
4
|
+
var r = ":host{--_swell-text-font-weight:var(--swell-text-font-weight,var(--swell-font-weight));--_swell-text-font-size:var(--swell-text-font-size,var(--swell-font-size));--_swell-text-font-leading:var(--swell-text-font-leading,var(--swell-font-leading));--_swell-text-font-family:var(--swell-text-font-family,var(--swell-font-family));--_swell-text-font-tracking:var(--swell-text-font-tracking,var(--swell-font-tracking));--_swell-text-color-accent:var(--swell-text-color-accent,var(--swell-color-foreground))}:host([type=title]){--_swell-text-font-weight:var(--swell-text-title-font-weight,var(--swell-font-heading-weight));--_swell-text-font-size:var(--swell-text-title-font-size,32px);--_swell-text-font-leading:var(--swell-text-title-font-leading,1.1);--_swell-text-font-family:var(--swell-text-title-font-family,var(--swell-font-heading-family));--_swell-text-font-tracking:var(--swell-text-title-font-tracking,-.025em)}:host([type=heading]){--_swell-text-font-weight:var(--swell-text-heading-font-weight,var(--swell-font-heading-weight));--_swell-text-font-size:var(--swell-text-heading-font-size,20px);--_swell-text-font-leading:var(--swell-text-heading-font-leading,1.4);--_swell-text-font-family:var(--swell-text-heading-font-family,var(--swell-font-heading-family));--_swell-text-font-tracking:var(--swell-text-heading-font-tracking,var(--swell-font-heading-tracking))}:host([type=subheading]){--_swell-text-font-weight:var(--swell-text-subheading-font-weight,var(--swell-font-heading-weight));--_swell-text-font-size:var(--swell-text-subheading-font-size,16px);--_swell-text-font-leading:var(--swell-text-subheading-font-leading,var(--swell-font-leading));--_swell-text-font-family:var(--swell-text-subheading-font-family,var(--swell-font-heading-family));--_swell-text-font-tracking:var(--swell-text-subheading-font-tracking,-.01em)}:host([type=strong]){--_swell-text-font-weight:var(--swell-text-strong-font-weight,var(--swell-font-strong-weight))}:host([type=eyebrow]){--_swell-text-font-weight:var(--swell-text-eyebrow-font-weight,var(--swell-font-bold-weight));--_swell-text-font-size:var(--swell-text-eyebrow-font-size,var(--swell-font-footnote-size));--_swell-text-font-tracking:var(--swell-text-eyebrow-font-tracking,.08em)}:host([type=caption]){--_swell-text-font-size:var(--swell-text-caption-font-size,var(--swell-font-caption-size))}:host([type=footnote]){--_swell-text-font-size:var(--swell-text-footnote-font-size,var(--swell-font-footnote-size))}:host{font:var(--_swell-text-font-weight) var(--_swell-text-font-size) / var(--_swell-text-font-leading) var(--_swell-text-font-family);letter-spacing:var(--_swell-text-font-tracking);text-transform:none;color:var(--_swell-text-color-accent);display:block}:host([type=eyebrow]){text-transform:uppercase}", i = /* @__PURE__ */ e({ SwellText: () => o }), a = {
|
|
5
|
+
title: 1,
|
|
6
|
+
heading: 2,
|
|
7
|
+
subheading: 3
|
|
8
|
+
}, o = class extends n {
|
|
9
|
+
static group = "text";
|
|
10
|
+
static styles = r;
|
|
11
|
+
static observedAttributes = [...n.observedAttributes, "level"];
|
|
12
|
+
#e = !1;
|
|
13
|
+
connectedCallback() {
|
|
14
|
+
this.#t(), super.connectedCallback();
|
|
15
|
+
}
|
|
16
|
+
update(e) {
|
|
17
|
+
(e === "type" || e === "level") && this.#t();
|
|
18
|
+
}
|
|
19
|
+
#t() {
|
|
20
|
+
this.#e && this.getAttribute("role") !== "heading" && (this.#e = !1);
|
|
21
|
+
let e = this.getAttribute("type") ?? "", t = Number(this.getAttribute("level")), n = Number.isInteger(t) && t >= 1 && t <= 6 ? t : Object.hasOwn(a, e) ? a[e] : void 0;
|
|
22
|
+
n === void 0 ? this.#e &&= (this.removeAttribute("role"), this.removeAttribute("aria-level"), !1) : (!this.hasAttribute("role") || this.#e) && (this.setAttribute("role", "heading"), this.setAttribute("aria-level", String(n)), this.#e = !0);
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
t("swell-text", o);
|
|
26
|
+
export { i as n, o as t };
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { n as e } from "./define-BlQTa1g4.js";
|
|
2
|
+
import { n as t, t as n } from "./description-BHfQ8meK.js";
|
|
3
|
+
import { i as r, t as i } from "./element-B4-_7TLZ.js";
|
|
4
|
+
// src/runtime/text-field.ts
|
|
5
|
+
var a = [
|
|
6
|
+
"label",
|
|
7
|
+
"optional",
|
|
8
|
+
"hint",
|
|
9
|
+
"error",
|
|
10
|
+
"invalid",
|
|
11
|
+
"value",
|
|
12
|
+
"placeholder"
|
|
13
|
+
], o = [
|
|
14
|
+
"disabled",
|
|
15
|
+
"readonly",
|
|
16
|
+
"required"
|
|
17
|
+
], s = /* @__PURE__ */ new Map(), c = "a[href], button, input, select, textarea, label, [tabindex], [contenteditable]", l = class extends i {
|
|
18
|
+
static appearance = "field";
|
|
19
|
+
static template = "<slot name=\"label\"></slot><div part=\"frame\"><slot name=\"control\"></slot></div><slot name=\"hint\"></slot><slot name=\"description\"></slot>";
|
|
20
|
+
static control = "input";
|
|
21
|
+
static prefix = "";
|
|
22
|
+
static passed = [];
|
|
23
|
+
static own = [];
|
|
24
|
+
static attributesOf(e, t = []) {
|
|
25
|
+
return [
|
|
26
|
+
...i.observedAttributes,
|
|
27
|
+
...a,
|
|
28
|
+
...t,
|
|
29
|
+
...e,
|
|
30
|
+
...o
|
|
31
|
+
];
|
|
32
|
+
}
|
|
33
|
+
#e;
|
|
34
|
+
#t;
|
|
35
|
+
#n;
|
|
36
|
+
#r;
|
|
37
|
+
constructor() {
|
|
38
|
+
super();
|
|
39
|
+
let e = this.attachShadow({ mode: "open" });
|
|
40
|
+
e.append(r(this.#i)), e.querySelector("[part=\"frame\"]")?.addEventListener("mousedown", (e) => {
|
|
41
|
+
if (!this.disabled) {
|
|
42
|
+
for (let t of e.composedPath()) {
|
|
43
|
+
if (t === this) break;
|
|
44
|
+
if (t instanceof Element && t.matches(c)) return;
|
|
45
|
+
}
|
|
46
|
+
e.preventDefault(), this.#e?.focus();
|
|
47
|
+
}
|
|
48
|
+
}), e.querySelector("slot[name=\"hint\"]")?.addEventListener("slotchange", () => this.#s()), new MutationObserver((e) => {
|
|
49
|
+
e.some((e) => e.target.slot === "hint") && this.#s();
|
|
50
|
+
}).observe(this, {
|
|
51
|
+
attributeFilter: ["hidden"],
|
|
52
|
+
subtree: !0
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
get #i() {
|
|
56
|
+
return this.definition;
|
|
57
|
+
}
|
|
58
|
+
get value() {
|
|
59
|
+
return this.#e ? this.#e.value : this.#r ?? this.getAttribute("value") ?? "";
|
|
60
|
+
}
|
|
61
|
+
set value(e) {
|
|
62
|
+
this.#e ? this.#e.value = String(e) : this.#r = String(e);
|
|
63
|
+
}
|
|
64
|
+
get disabled() {
|
|
65
|
+
return this.hasAttribute("disabled");
|
|
66
|
+
}
|
|
67
|
+
set disabled(e) {
|
|
68
|
+
this.toggleAttribute("disabled", !!e);
|
|
69
|
+
}
|
|
70
|
+
get required() {
|
|
71
|
+
return this.hasAttribute("required");
|
|
72
|
+
}
|
|
73
|
+
set required(e) {
|
|
74
|
+
this.toggleAttribute("required", !!e);
|
|
75
|
+
}
|
|
76
|
+
get readOnly() {
|
|
77
|
+
return this.hasAttribute("readonly");
|
|
78
|
+
}
|
|
79
|
+
set readOnly(e) {
|
|
80
|
+
this.toggleAttribute("readonly", !!e);
|
|
81
|
+
}
|
|
82
|
+
get invalid() {
|
|
83
|
+
return this.hasAttribute("invalid");
|
|
84
|
+
}
|
|
85
|
+
set invalid(e) {
|
|
86
|
+
this.toggleAttribute("invalid", !!e);
|
|
87
|
+
}
|
|
88
|
+
get name() {
|
|
89
|
+
return this.getAttribute("name") ?? "";
|
|
90
|
+
}
|
|
91
|
+
set name(e) {
|
|
92
|
+
this.setAttribute("name", e);
|
|
93
|
+
}
|
|
94
|
+
focus(e) {
|
|
95
|
+
this.#e?.focus(e);
|
|
96
|
+
}
|
|
97
|
+
connectedCallback() {
|
|
98
|
+
for (let t of [
|
|
99
|
+
"value",
|
|
100
|
+
"disabled",
|
|
101
|
+
"required",
|
|
102
|
+
"readOnly",
|
|
103
|
+
"invalid",
|
|
104
|
+
"name"
|
|
105
|
+
]) e(this, t);
|
|
106
|
+
super.connectedCallback();
|
|
107
|
+
}
|
|
108
|
+
setUpControl(e) {}
|
|
109
|
+
syncControl(e, t) {}
|
|
110
|
+
render() {
|
|
111
|
+
let { control: e, prefix: t } = this.#i, r = this.querySelector(`.${t}-control`);
|
|
112
|
+
r && r.value !== r.defaultValue && (this.#r ??= r.value);
|
|
113
|
+
let i = (s.get(t) ?? 0) + 1;
|
|
114
|
+
s.set(t, i);
|
|
115
|
+
let a = `${t}-${i}`;
|
|
116
|
+
this.#t = document.createElement("label"), this.#t.className = `${t}-label`, this.#t.htmlFor = a, this.#e = document.createElement(e), this.#e.className = `${t}-control`, this.#e.id = a, this.#e.slot = "control", this.setUpControl(this.#e), this.#n = n(t, a), this.#n.hint.slot = "description", this.#n.error.slot = "description";
|
|
117
|
+
for (let e of [
|
|
118
|
+
"label",
|
|
119
|
+
"control",
|
|
120
|
+
"hint",
|
|
121
|
+
"error"
|
|
122
|
+
]) this.querySelector(`:scope > .${t}-${e}`)?.remove();
|
|
123
|
+
this.prepend(this.#t, this.#e), this.append(this.#n.hint, this.#n.error);
|
|
124
|
+
for (let e of this.#a()) this.#o(e);
|
|
125
|
+
this.#r !== void 0 && (this.#e.value = this.#r, this.#r = void 0);
|
|
126
|
+
}
|
|
127
|
+
updateStates() {
|
|
128
|
+
super.updateStates(), this.#t && (this.#t.slot = this.internals.states.has("floating") ? "control" : "label");
|
|
129
|
+
}
|
|
130
|
+
update(e) {
|
|
131
|
+
this.#e && this.#a().includes(e) && this.#o(e);
|
|
132
|
+
}
|
|
133
|
+
#a() {
|
|
134
|
+
return [
|
|
135
|
+
...a,
|
|
136
|
+
...this.#i.own,
|
|
137
|
+
...this.#i.passed,
|
|
138
|
+
...o
|
|
139
|
+
];
|
|
140
|
+
}
|
|
141
|
+
#o(e) {
|
|
142
|
+
let t = this.#e, n = this.getAttribute(e);
|
|
143
|
+
o.includes(e) ? t.toggleAttribute(e, n !== null) : this.#i.passed.includes(e) ? n === null ? t.removeAttribute(e) : t.setAttribute(e, n) : this.#i.own.includes(e) ? this.syncControl(e, t) : e === "value" ? t.defaultValue = n ?? "" : e === "placeholder" ? t.placeholder = n ?? " " : e === "label" || e === "optional" ? this.#c() : this.#s();
|
|
144
|
+
}
|
|
145
|
+
#s() {
|
|
146
|
+
let e = this.#e;
|
|
147
|
+
if (!e) return;
|
|
148
|
+
let n = this.querySelector(":scope > [slot=\"hint\"]:not([hidden])") ?? void 0;
|
|
149
|
+
n && !n.id && (n.id = `${e.id}-hint-content`), t(this, e, this.#n, n);
|
|
150
|
+
}
|
|
151
|
+
#c() {
|
|
152
|
+
let e = this.#t, t = this.getAttribute("label") ?? "", n = this.getAttribute("optional");
|
|
153
|
+
if (e.textContent = t, e.hidden = !t, !t || !n) return;
|
|
154
|
+
let r = document.createElement("span");
|
|
155
|
+
r.className = `${this.#i.prefix}-optional`, r.textContent = ` ${n}`, e.append(r);
|
|
156
|
+
}
|
|
157
|
+
};
|
|
158
|
+
export { l as t };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { r as e, t } from "./define-BlQTa1g4.js";
|
|
2
|
+
import { t as n } from "./text-field-BB_MRt5h.js";
|
|
3
|
+
// src/components/core/textarea/textarea.css?inline
|
|
4
|
+
var r = "swell-textarea{--_swell-control-font-size:var(--swell-control-font-size);--_swell-control-height:var(--swell-control-height)}swell-textarea[size=xsmall]{--_swell-control-font-size:var(--swell-control-xsmall-font-size);--_swell-control-height:var(--swell-control-xsmall-height)}swell-textarea[size=small]{--_swell-control-font-size:var(--swell-control-small-font-size);--_swell-control-height:var(--swell-control-small-height)}swell-textarea[size=large]{--_swell-control-font-size:var(--swell-control-large-font-size);--_swell-control-height:var(--swell-control-large-height)}swell-textarea[size=xlarge]{--_swell-control-font-size:var(--swell-control-xlarge-font-size);--_swell-control-height:var(--swell-control-xlarge-height)}swell-textarea{--_swell-textarea-small-text:max(12px, calc(var(--_swell-control-font-size) - 1px));--_swell-textarea-raised:clamp(11px, calc(var(--_swell-control-font-size) - 2px), 13px);--_swell-textarea-raised-line:round(up, calc(var(--_swell-textarea-raised) * 4 / 3), 2px);--_swell-textarea-rise:min(calc(.6 * var(--_swell-control-font-size) + 1.6px), calc(var(--_swell-control-height) / 2 - var(--_swell-textarea-raised-line) / 2 - 2px));--_swell-textarea-top:calc(var(--_swell-control-height) / 2 - var(--_swell-textarea-rise) + var(--_swell-textarea-raised-line) / 2 + 2px);gap:var(--swell-field-gap);display:grid}swell-textarea[hidden]{display:none!important}swell-textarea [hidden]{display:none}swell-textarea .swell-textarea-label{font:var(--swell-field-label-font-weight) var(--_swell-textarea-small-text) / var(--swell-font-leading) var(--swell-field-label-font-family);letter-spacing:var(--swell-field-label-font-tracking);color:var(--swell-field-label-color-foreground)}swell-textarea::part(frame){box-sizing:border-box;border:var(--swell-border-width) solid var(--swell-field-color-border);border-radius:var(--swell-border-radius);transition:border-color var(--swell-motion-duration-fast) var(--swell-motion-easing), box-shadow var(--swell-motion-duration-base) var(--swell-motion-easing);background:0 0;grid-template-columns:minmax(0,1fr);display:grid;overflow:clip}swell-textarea .swell-textarea-control{box-sizing:border-box;width:100%;padding:calc(var(--_swell-control-font-size) - 2px) var(--_swell-control-font-size);font:var(--swell-font-weight) var(--_swell-control-font-size) / var(--swell-font-leading) var(--swell-font-family);letter-spacing:var(--swell-font-tracking);color:var(--swell-field-color-foreground);resize:vertical;background:0 0;border:0;border-radius:0;outline:none;grid-area:1/1;margin:0;display:block}swell-textarea .swell-textarea-control:disabled{cursor:not-allowed}swell-textarea::part(frame):hover{border-color:var(--swell-field-hover-color-border)}swell-textarea .swell-textarea-control::placeholder{color:var(--swell-color-secondary-foreground);opacity:1}swell-textarea:state(outline)::part(frame){background:var(--swell-field-outline-color-background)}swell-textarea:state(filled)::part(frame){border-width:0 0 var(--swell-border-width);border-radius:var(--swell-border-radius) var(--swell-border-radius) 0 0;background:var(--swell-field-color-background)}swell-textarea:state(underline)::part(frame){border-width:0 0 var(--swell-border-width);border-radius:0}swell-textarea:has(.swell-textarea-control:disabled)::part(frame){opacity:var(--swell-control-disabled-opacity)}swell-textarea:state(underline) .swell-textarea-control{padding-inline:0}swell-textarea[invalid]::part(frame){border-color:var(--swell-color-danger);animation:swell-textarea-shake var(--swell-motion-duration-slow) var(--swell-motion-easing)}swell-textarea:has(.swell-textarea-control:focus)::part(frame){border-color:var(--swell-focus-color)}swell-textarea:state(outline)[invalid]::part(frame){box-shadow:0 0 0 var(--swell-field-ring-width) var(--swell-field-invalid-color-ring)}swell-textarea:state(outline):has(.swell-textarea-control:focus)::part(frame){box-shadow:0 0 0 var(--swell-field-ring-width) var(--swell-field-focus-color-ring)}swell-textarea:is(:state(filled),:state(underline)):has(.swell-textarea-control:focus)::part(frame){box-shadow:inset 0 calc(-1 * var(--swell-border-width)) 0 var(--swell-focus-color)}swell-textarea[invalid]:has(.swell-textarea-control:focus)::part(frame){border-color:var(--swell-color-danger)}swell-textarea:state(outline)[invalid]:has(.swell-textarea-control:focus)::part(frame){box-shadow:0 0 0 var(--swell-field-ring-width) var(--swell-field-invalid-color-ring), inset 0 0 0 var(--swell-border-width) var(--swell-color-danger)}swell-textarea:is(:state(filled),:state(underline))[invalid]:has(.swell-textarea-control:focus)::part(frame){box-shadow:inset 0 calc(-1 * var(--swell-border-width)) 0 var(--swell-color-danger)}@keyframes swell-textarea-shake{10%,90%{transform:translate(-1px)}20%,80%{transform:translate(2px)}30%,50%,70%{transform:translate(-5px)}40%,60%{transform:translate(5px)}}swell-textarea .swell-textarea-hint,swell-textarea>[slot=hint],swell-textarea .swell-textarea-error{font:var(--swell-font-weight) var(--_swell-textarea-small-text) / var(--swell-font-leading) var(--swell-font-family);letter-spacing:var(--swell-font-tracking);color:var(--swell-color-secondary-foreground)}swell-textarea .swell-textarea-error:not([hidden]){font-weight:var(--swell-font-strong-weight);color:var(--swell-color-danger);animation:swell-textarea-enter var(--swell-motion-duration-base) var(--swell-motion-easing)}@keyframes swell-textarea-enter{0%{opacity:0;transform:translateY(-6px)}}swell-textarea .swell-textarea-optional{font-weight:var(--swell-font-weight);color:var(--swell-color-secondary-foreground)}swell-textarea:state(floating) .swell-textarea-optional{font-weight:inherit}swell-textarea:state(floating) .swell-textarea-label{z-index:1;contain:inline-size;box-sizing:border-box;max-width:100%;padding-inline:var(--_swell-control-font-size);white-space:nowrap;text-overflow:ellipsis;font-size:var(--_swell-control-font-size);font-weight:var(--swell-font-weight);line-height:round(up, calc(var(--_swell-control-font-size) * 4 / 3), 2px);color:var(--swell-color-secondary-foreground);pointer-events:none;transition:transform var(--swell-motion-duration-base) var(--swell-motion-easing), font-size var(--swell-motion-duration-base) var(--swell-motion-easing), line-height var(--swell-motion-duration-base) var(--swell-motion-easing);grid-area:1/1;align-self:start;margin-block-start:calc(var(--_swell-control-height) / 2 - var(--_swell-textarea-top) - var(--swell-border-width));overflow:hidden;transform:translateY(-50%)}swell-textarea:state(underline):state(floating) .swell-textarea-label{padding-inline:0}swell-textarea:state(floating):has(.swell-textarea-label:not([hidden]))::part(frame){padding-top:var(--_swell-textarea-top)}swell-textarea:is(:state(filled),:state(underline)):state(floating):has(.swell-textarea-label:not([hidden]))::part(frame){padding-top:calc(var(--_swell-textarea-top) + var(--swell-border-width))}swell-textarea:state(floating):has(.swell-textarea-label:not([hidden])) .swell-textarea-control{padding-top:0}swell-textarea:state(floating):has(.swell-textarea-label:not([hidden])) .swell-textarea-control:not(:focus)::placeholder{opacity:0}swell-textarea:state(floating):has(.swell-textarea-control:focus,.swell-textarea-control:not(:placeholder-shown)) .swell-textarea-label{font-size:var(--_swell-textarea-raised);font-weight:var(--swell-font-medium-weight);line-height:var(--_swell-textarea-raised-line);transform:translateY(calc(-50% - var(--_swell-textarea-rise)))}@media (pointer:coarse){swell-textarea .swell-textarea-control{font-size:max(16px, var(--_swell-control-font-size))}}@media (forced-colors:active){swell-textarea::part(frame){box-shadow:none;border-color:fieldtext}swell-textarea:has(.swell-textarea-control:focus)::part(frame){outline:2px solid highlight}}", i = /* @__PURE__ */ e({ SwellTextarea: () => o }), a = [
|
|
5
|
+
"name",
|
|
6
|
+
"autocomplete",
|
|
7
|
+
"minlength",
|
|
8
|
+
"maxlength",
|
|
9
|
+
"rows"
|
|
10
|
+
], o = class extends n {
|
|
11
|
+
static styles = r;
|
|
12
|
+
static control = "textarea";
|
|
13
|
+
static prefix = "swell-textarea";
|
|
14
|
+
static passed = a;
|
|
15
|
+
static observedAttributes = n.attributesOf(a);
|
|
16
|
+
};
|
|
17
|
+
t("swell-textarea", o);
|
|
18
|
+
export { i as n, o as t };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { r as e, t } from "./define-BlQTa1g4.js";
|
|
2
|
+
import { n } from "./element-B4-_7TLZ.js";
|
|
3
|
+
// src/components/core/thumbnail/thumbnail.css?inline
|
|
4
|
+
var r = ":host{--_swell-control-height:var(--swell-control-height);--_swell-thumbnail-font-weight:var(--swell-thumbnail-font-weight,650);--_swell-thumbnail-color-foreground:var(--swell-thumbnail-color-foreground,var(--swell-color-background));--_swell-thumbnail-border-radius:var(--swell-thumbnail-border-radius,var(--swell-border-radius));--_swell-thumbnail-color-background:var(--swell-thumbnail-color-background,var(--swell-color-accent));--_swell-thumbnail-color-border:var(--swell-thumbnail-color-border,#0000)}:host([size=xsmall]){--_swell-control-height:var(--swell-control-xsmall-height)}:host([size=small]){--_swell-control-height:var(--swell-control-small-height)}:host([size=large]){--_swell-control-height:var(--swell-control-large-height)}:host([size=xlarge]){--_swell-control-height:var(--swell-control-xlarge-height)}:host{width:var(--_swell-control-height);height:var(--_swell-control-height);font:var(--_swell-thumbnail-font-weight) calc(var(--_swell-control-height) * .36) / 1 var(--swell-font-family);letter-spacing:var(--swell-font-tracking);text-transform:uppercase;vertical-align:middle;color:var(--_swell-thumbnail-color-foreground);flex:none;display:inline-block;position:relative}:host .box{border-radius:var(--_swell-thumbnail-border-radius);background:var(--_swell-thumbnail-color-background);place-items:center;width:100%;height:100%;display:grid;position:relative;overflow:clip}:host .box:after{content:\"\";border:var(--swell-border-width) solid var(--_swell-thumbnail-color-border);border-radius:inherit;pointer-events:none;position:absolute;inset:0}:host([shape=circle]) .box{border-radius:999px}:host slot:not([name])::slotted(img){object-fit:cover;width:100%;height:100%;display:block}:host slot:not([name])::slotted(svg){width:calc(var(--_swell-control-height) / 2 - 4px);height:calc(var(--_swell-control-height) / 2 - 4px)}:host slot[name=badge]::slotted(*){position:absolute;inset-block-start:calc(var(--_swell-control-height) / -8);inset-inline-end:calc(var(--_swell-control-height) / -8)}@media (forced-colors:active){:host .box:after{border-color:canvastext}}", i = /* @__PURE__ */ e({ SwellThumbnail: () => a }), a = class extends n {
|
|
5
|
+
static group = "thumbnail";
|
|
6
|
+
static styles = r;
|
|
7
|
+
static template = "<div class=\"box\"><slot></slot></div><slot name=\"badge\"></slot>";
|
|
8
|
+
static observedAttributes = [...n.observedAttributes, "aria-label"];
|
|
9
|
+
connectedCallback() {
|
|
10
|
+
this.#e(), super.connectedCallback();
|
|
11
|
+
}
|
|
12
|
+
update(e) {
|
|
13
|
+
e === "aria-label" && this.#e();
|
|
14
|
+
}
|
|
15
|
+
#e() {
|
|
16
|
+
let e = this.hasAttribute("aria-label");
|
|
17
|
+
e && !this.hasAttribute("role") ? this.setAttribute("role", "img") : !e && this.getAttribute("role") === "img" && this.removeAttribute("role"), !e && !this.hasAttribute("aria-hidden") ? this.setAttribute("aria-hidden", "true") : e && this.getAttribute("aria-hidden") === "true" && this.removeAttribute("aria-hidden");
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
t("swell-thumbnail", a);
|
|
21
|
+
export { i as n, a as t };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
// src/runtime/focus.ts
|
|
2
|
+
var e = "input:not([type=\"hidden\"]), select, textarea, button, a[href], [tabindex]:not([tabindex=\"-1\"]), swell-select, swell-link, swell-chip, swell-radio";
|
|
3
|
+
function t(t, n) {
|
|
4
|
+
let r = t.querySelectorAll(`:scope > :not([slot="trigger"]):is(${e}), :scope > :not([slot="trigger"]) :is(${e})`);
|
|
5
|
+
for (let e of r) if (e.focus(), e.matches(":focus-within")) return;
|
|
6
|
+
n.hasAttribute("tabindex") || (n.tabIndex = -1, n.addEventListener("blur", () => n.removeAttribute("tabindex"), { once: !0 })), n.focus();
|
|
7
|
+
}
|
|
8
|
+
// src/runtime/toggle.ts
|
|
9
|
+
function n(e) {
|
|
10
|
+
let t = !1, n = !1;
|
|
11
|
+
return () => {
|
|
12
|
+
n || (n = !0, queueMicrotask(() => {
|
|
13
|
+
n = !1;
|
|
14
|
+
let r = e.open;
|
|
15
|
+
r !== t && (t = r, e.dispatchEvent(new ToggleEvent("toggle", {
|
|
16
|
+
oldState: r ? "closed" : "open",
|
|
17
|
+
newState: r ? "open" : "closed"
|
|
18
|
+
})));
|
|
19
|
+
}));
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
export { t as n, n as t };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { t as e } from "./config-C-FYxOaJ.js";
|
|
2
|
+
import { r as t, t as n } from "./define-BlQTa1g4.js";
|
|
3
|
+
// src/components/core/ui/ui.ts
|
|
4
|
+
var r = /* @__PURE__ */ t({ SwellUi: () => i }), i = class extends HTMLElement {
|
|
5
|
+
connectedCallback() {
|
|
6
|
+
let t = this.getRootNode();
|
|
7
|
+
t instanceof ShadowRoot && !t.adoptedStyleSheets.includes(e) && (t.adoptedStyleSheets = [...t.adoptedStyleSheets, e]);
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
n("swell-ui", i);
|
|
11
|
+
export { r as n, i as t };
|