@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.
Files changed (225) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +165 -2
  3. package/custom-elements.json +8274 -0
  4. package/dist/chunks/badge-Dt6q8Cqa.js +11 -0
  5. package/dist/chunks/button-C7nCiu-t.js +123 -0
  6. package/dist/chunks/card-CvSQEug8.js +10 -0
  7. package/dist/chunks/checkbox-BRI_A1TP.js +99 -0
  8. package/dist/chunks/chip-BtnufSMG.js +48 -0
  9. package/dist/chunks/config-C-FYxOaJ.js +588 -0
  10. package/dist/chunks/define-BlQTa1g4.js +19 -0
  11. package/dist/chunks/description-BHfQ8meK.js +19 -0
  12. package/dist/chunks/disclosure-CET8-H6f.js +56 -0
  13. package/dist/chunks/divider-BfkO0c1j.js +27 -0
  14. package/dist/chunks/element-B4-_7TLZ.js +138 -0
  15. package/dist/chunks/input-Uun-ls2_.js +53 -0
  16. package/dist/chunks/link-8qHFEKQE.js +53 -0
  17. package/dist/chunks/link-D4NC86oc.js +24 -0
  18. package/dist/chunks/lookup-5icr_T6o.js +205 -0
  19. package/dist/chunks/lookup-list-Bw6OJoDS.js +19 -0
  20. package/dist/chunks/lookup-option-Mn3k8W2M.js +26 -0
  21. package/dist/chunks/popover-D3Ob6slA.js +92 -0
  22. package/dist/chunks/popup-Dbh2fchP.js +21 -0
  23. package/dist/chunks/quantity-h3wqn8tC.js +140 -0
  24. package/dist/chunks/radio-BhFDL3pO.js +192 -0
  25. package/dist/chunks/radio-option-hT29S8Zl.js +88 -0
  26. package/dist/chunks/select-DS1n_htj.js +331 -0
  27. package/dist/chunks/select-option-DoM9GAe0.js +66 -0
  28. package/dist/chunks/skeleton-DfPjhls9.js +13 -0
  29. package/dist/chunks/status-B23JZ5RQ.js +71 -0
  30. package/dist/chunks/tab-BpjFUbFO.js +107 -0
  31. package/dist/chunks/tabs-aWKq1Iaz.js +122 -0
  32. package/dist/chunks/text-ZWPy-iB3.js +26 -0
  33. package/dist/chunks/text-field-BB_MRt5h.js +158 -0
  34. package/dist/chunks/textarea-L6_OJ2IN.js +18 -0
  35. package/dist/chunks/thumbnail-CLe9AsFg.js +21 -0
  36. package/dist/chunks/toggle-C7-oPgWR.js +22 -0
  37. package/dist/chunks/ui-HcyMKwzs.js +11 -0
  38. package/dist/editors/vscode.css-custom-data.json +824 -0
  39. package/dist/editors/vscode.html-custom-data.json +1156 -0
  40. package/dist/editors/web-types.json +1706 -0
  41. package/dist/elements/badge.d.ts +1 -0
  42. package/dist/elements/badge.js +1 -0
  43. package/dist/elements/button.d.ts +1 -0
  44. package/dist/elements/button.js +1 -0
  45. package/dist/elements/card.d.ts +1 -0
  46. package/dist/elements/card.js +1 -0
  47. package/dist/elements/checkbox.d.ts +1 -0
  48. package/dist/elements/checkbox.js +1 -0
  49. package/dist/elements/chip.d.ts +1 -0
  50. package/dist/elements/chip.js +1 -0
  51. package/dist/elements/disclosure.d.ts +1 -0
  52. package/dist/elements/disclosure.js +1 -0
  53. package/dist/elements/divider.d.ts +1 -0
  54. package/dist/elements/divider.js +1 -0
  55. package/dist/elements/input.d.ts +1 -0
  56. package/dist/elements/input.js +1 -0
  57. package/dist/elements/link.d.ts +1 -0
  58. package/dist/elements/link.js +1 -0
  59. package/dist/elements/lookup-list.d.ts +1 -0
  60. package/dist/elements/lookup-list.js +1 -0
  61. package/dist/elements/lookup-option.d.ts +1 -0
  62. package/dist/elements/lookup-option.js +1 -0
  63. package/dist/elements/lookup.d.ts +1 -0
  64. package/dist/elements/lookup.js +1 -0
  65. package/dist/elements/popover.d.ts +1 -0
  66. package/dist/elements/popover.js +1 -0
  67. package/dist/elements/quantity.d.ts +1 -0
  68. package/dist/elements/quantity.js +1 -0
  69. package/dist/elements/radio-option.d.ts +1 -0
  70. package/dist/elements/radio-option.js +1 -0
  71. package/dist/elements/radio.d.ts +1 -0
  72. package/dist/elements/radio.js +1 -0
  73. package/dist/elements/select-option.d.ts +1 -0
  74. package/dist/elements/select-option.js +1 -0
  75. package/dist/elements/select.d.ts +1 -0
  76. package/dist/elements/select.js +1 -0
  77. package/dist/elements/skeleton.d.ts +1 -0
  78. package/dist/elements/skeleton.js +1 -0
  79. package/dist/elements/status.d.ts +1 -0
  80. package/dist/elements/status.js +1 -0
  81. package/dist/elements/tab.d.ts +1 -0
  82. package/dist/elements/tab.js +1 -0
  83. package/dist/elements/tabs.d.ts +1 -0
  84. package/dist/elements/tabs.js +1 -0
  85. package/dist/elements/text.d.ts +1 -0
  86. package/dist/elements/text.js +1 -0
  87. package/dist/elements/textarea.d.ts +1 -0
  88. package/dist/elements/textarea.js +1 -0
  89. package/dist/elements/thumbnail.d.ts +1 -0
  90. package/dist/elements/thumbnail.js +1 -0
  91. package/dist/elements/ui.d.ts +1 -0
  92. package/dist/elements/ui.js +1 -0
  93. package/dist/frameworks/jsx.d.ts +3589 -0
  94. package/dist/frameworks/preact.d.ts +9 -0
  95. package/dist/frameworks/solid.d.ts +7 -0
  96. package/dist/frameworks/svelte.d.ts +1676 -0
  97. package/dist/frameworks/vue.d.ts +827 -0
  98. package/dist/index.js +80 -0
  99. package/dist/react/badge.d.ts +12 -0
  100. package/dist/react/badge.js +4 -0
  101. package/dist/react/button.d.ts +16 -0
  102. package/dist/react/button.js +4 -0
  103. package/dist/react/card.d.ts +11 -0
  104. package/dist/react/card.js +4 -0
  105. package/dist/react/checkbox.d.ts +14 -0
  106. package/dist/react/checkbox.js +4 -0
  107. package/dist/react/chip.d.ts +12 -0
  108. package/dist/react/chip.js +4 -0
  109. package/dist/react/create.js +49 -0
  110. package/dist/react/disclosure.d.ts +11 -0
  111. package/dist/react/disclosure.js +4 -0
  112. package/dist/react/divider.d.ts +9 -0
  113. package/dist/react/divider.js +4 -0
  114. package/dist/react/index.d.ts +26 -0
  115. package/dist/react/index.js +26 -0
  116. package/dist/react/input.d.ts +28 -0
  117. package/dist/react/input.js +4 -0
  118. package/dist/react/link.d.ts +15 -0
  119. package/dist/react/link.js +4 -0
  120. package/dist/react/lookup-list.d.ts +9 -0
  121. package/dist/react/lookup-list.js +4 -0
  122. package/dist/react/lookup-option.d.ts +11 -0
  123. package/dist/react/lookup-option.js +4 -0
  124. package/dist/react/lookup.d.ts +28 -0
  125. package/dist/react/lookup.js +4 -0
  126. package/dist/react/popover.d.ts +11 -0
  127. package/dist/react/popover.js +4 -0
  128. package/dist/react/quantity.d.ts +15 -0
  129. package/dist/react/quantity.js +4 -0
  130. package/dist/react/radio-option.d.ts +11 -0
  131. package/dist/react/radio-option.js +4 -0
  132. package/dist/react/radio.d.ts +18 -0
  133. package/dist/react/radio.js +4 -0
  134. package/dist/react/select-option.d.ts +11 -0
  135. package/dist/react/select-option.js +4 -0
  136. package/dist/react/select.d.ts +20 -0
  137. package/dist/react/select.js +4 -0
  138. package/dist/react/skeleton.d.ts +11 -0
  139. package/dist/react/skeleton.js +4 -0
  140. package/dist/react/status.d.ts +12 -0
  141. package/dist/react/status.js +4 -0
  142. package/dist/react/tab.d.ts +10 -0
  143. package/dist/react/tab.js +4 -0
  144. package/dist/react/tabs.d.ts +17 -0
  145. package/dist/react/tabs.js +4 -0
  146. package/dist/react/text.d.ts +12 -0
  147. package/dist/react/text.js +4 -0
  148. package/dist/react/textarea.d.ts +23 -0
  149. package/dist/react/textarea.js +4 -0
  150. package/dist/react/thumbnail.d.ts +13 -0
  151. package/dist/react/thumbnail.js +4 -0
  152. package/dist/react/ui.d.ts +10 -0
  153. package/dist/react/ui.js +4 -0
  154. package/dist/types/components/core/badge/badge.d.ts +25 -0
  155. package/dist/types/components/core/button/button.d.ts +60 -0
  156. package/dist/types/components/core/card/card.d.ts +21 -0
  157. package/dist/types/components/core/checkbox/checkbox.d.ts +46 -0
  158. package/dist/types/components/core/chip/chip.d.ts +36 -0
  159. package/dist/types/components/core/disclosure/disclosure.d.ts +37 -0
  160. package/dist/types/components/core/divider/divider.d.ts +21 -0
  161. package/dist/types/components/core/index.d.ts +21 -0
  162. package/dist/types/components/core/input/input.d.ts +57 -0
  163. package/dist/types/components/core/link/link.d.ts +42 -0
  164. package/dist/types/components/core/lookup/lookup-list.d.ts +21 -0
  165. package/dist/types/components/core/lookup/lookup-option.d.ts +27 -0
  166. package/dist/types/components/core/lookup/lookup.d.ts +32 -0
  167. package/dist/types/components/core/popover/popover.d.ts +33 -0
  168. package/dist/types/components/core/quantity/quantity.d.ts +47 -0
  169. package/dist/types/components/core/radio/radio-option.d.ts +82 -0
  170. package/dist/types/components/core/radio/radio.d.ts +65 -0
  171. package/dist/types/components/core/select/select-option.d.ts +69 -0
  172. package/dist/types/components/core/select/select.d.ts +70 -0
  173. package/dist/types/components/core/skeleton/skeleton.d.ts +23 -0
  174. package/dist/types/components/core/status/status.d.ts +38 -0
  175. package/dist/types/components/core/tabs/tab.d.ts +76 -0
  176. package/dist/types/components/core/tabs/tabs.d.ts +46 -0
  177. package/dist/types/components/core/text/text.d.ts +23 -0
  178. package/dist/types/components/core/textarea/textarea.d.ts +45 -0
  179. package/dist/types/components/core/thumbnail/thumbnail.d.ts +27 -0
  180. package/dist/types/components/core/ui/ui.d.ts +16 -0
  181. package/dist/types/components/elements.d.ts +1 -0
  182. package/dist/types/react/create.d.ts +8 -0
  183. package/dist/types/runtime/config.d.ts +25 -0
  184. package/dist/types/runtime/css.d.ts +12 -0
  185. package/dist/types/runtime/define.d.ts +4 -0
  186. package/dist/types/runtime/description.d.ts +12 -0
  187. package/dist/types/runtime/element.d.ts +61 -0
  188. package/dist/types/runtime/focus.d.ts +5 -0
  189. package/dist/types/runtime/form.d.ts +5 -0
  190. package/dist/types/runtime/index.d.ts +2 -0
  191. package/dist/types/runtime/link.d.ts +17 -0
  192. package/dist/types/runtime/loader.d.ts +21 -0
  193. package/dist/types/runtime/popup.d.ts +8 -0
  194. package/dist/types/runtime/sheet.d.ts +31 -0
  195. package/dist/types/runtime/text-field.d.ts +47 -0
  196. package/dist/types/runtime/toggle.d.ts +8 -0
  197. package/dist/types/runtime/tokens.generated.d.ts +492 -0
  198. package/dist/types/runtime/values.d.ts +6 -0
  199. package/dist/types/runtime/variants.d.ts +4 -0
  200. package/package.json +136 -4
  201. package/resolver.json +111 -0
  202. package/src/components/core/badge/tokens.json +152 -0
  203. package/src/components/core/button/tokens.dark.json +16 -0
  204. package/src/components/core/button/tokens.json +232 -0
  205. package/src/components/core/card/tokens.json +35 -0
  206. package/src/components/core/checkbox/tokens.json +15 -0
  207. package/src/components/core/chip/tokens.json +144 -0
  208. package/src/components/core/link/tokens.json +24 -0
  209. package/src/components/core/radio/tokens.dark.json +17 -0
  210. package/src/components/core/radio/tokens.json +114 -0
  211. package/src/components/core/status/tokens.dark.json +71 -0
  212. package/src/components/core/status/tokens.json +135 -0
  213. package/src/components/core/tabs/tokens.json +80 -0
  214. package/src/components/core/text/tokens.json +222 -0
  215. package/src/components/core/thumbnail/tokens.json +46 -0
  216. package/tokens/border.json +38 -0
  217. package/tokens/color.dark.json +88 -0
  218. package/tokens/color.json +115 -0
  219. package/tokens/control.json +115 -0
  220. package/tokens/field.dark.json +65 -0
  221. package/tokens/field.json +158 -0
  222. package/tokens/focus.json +26 -0
  223. package/tokens/font.json +117 -0
  224. package/tokens/motion.json +49 -0
  225. 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 };