polymorph-ui-components 0.8.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -11,6 +11,7 @@
11
11
  searchable = false,
12
12
  placeholder = '',
13
13
  disabled = false,
14
+ ariaLabel,
14
15
  testId,
15
16
  onchange,
16
17
  classes
@@ -240,6 +241,7 @@
240
241
  onclick={handleTriggerClick}
241
242
  onkeydown={handleKeydown}
242
243
  role="combobox"
244
+ aria-label={ariaLabel}
243
245
  aria-expanded={isOpen}
244
246
  aria-haspopup="listbox"
245
247
  aria-controls={listboxId}
@@ -265,6 +267,7 @@
265
267
  onfocus={handleSearchFocus}
266
268
  bind:this={searchInputEl}
267
269
  placeholder={value.length === 0 ? placeholder : ''}
270
+ aria-label={ariaLabel}
268
271
  {disabled}
269
272
  autocomplete="off"
270
273
  tabindex={disabled ? -1 : 0}
@@ -281,6 +284,7 @@
281
284
  onfocus={handleSearchFocus}
282
285
  bind:this={searchInputEl}
283
286
  placeholder={searchPlaceholder}
287
+ aria-label={ariaLabel}
284
288
  {disabled}
285
289
  autocomplete="off"
286
290
  tabindex={disabled ? -1 : 0}
@@ -295,7 +299,13 @@
295
299
  </div>
296
300
 
297
301
  {#if isOpen && !disabled}
298
- <div class="select-dropdown" role="listbox" id={listboxId} aria-multiselectable={multiple}>
302
+ <div
303
+ class="select-dropdown"
304
+ role="listbox"
305
+ id={listboxId}
306
+ aria-label={ariaLabel}
307
+ aria-multiselectable={multiple}
308
+ >
299
309
  {#if filteredItems.length === 0}
300
310
  <div class="select-empty">No results</div>
301
311
  {:else}
@@ -12,6 +12,7 @@ export type OptionalSelectProperties = {
12
12
  searchable?: boolean;
13
13
  placeholder?: string;
14
14
  disabled?: boolean;
15
+ ariaLabel?: string;
15
16
  testId?: string;
16
17
  classes?: string;
17
18
  };
package/dist-wc/index.js CHANGED
@@ -12486,87 +12486,87 @@ var gp = /* @__PURE__ */ U("<input class=\"select-search svelte-52lifo\" type=\"
12486
12486
  };
12487
12487
  function Tp(e, t) {
12488
12488
  Je(t, !0), Ii(e, wp);
12489
- let n = Q(t, "items", 7), r = Q(t, "value", 31, () => on([])), i = Q(t, "multiple", 7, !1), a = Q(t, "searchable", 7, !1), o = Q(t, "placeholder", 7, ""), s = Q(t, "disabled", 7, !1), c = Q(t, "testId", 7), l = Q(t, "onchange", 7), u = Q(t, "classes", 7), d = /* @__PURE__ */ F(!1), f = /* @__PURE__ */ F(""), p = /* @__PURE__ */ F(-1), m = /* @__PURE__ */ F(null), h = /* @__PURE__ */ F(null), g = /* @__PURE__ */ F(null), _ = `select-listbox-${Math.random().toString(36).slice(2, 9)}`;
12490
- function v(e) {
12489
+ let n = Q(t, "items", 7), r = Q(t, "value", 31, () => on([])), i = Q(t, "multiple", 7, !1), a = Q(t, "searchable", 7, !1), o = Q(t, "placeholder", 7, ""), s = Q(t, "disabled", 7, !1), c = Q(t, "ariaLabel", 7), l = Q(t, "testId", 7), u = Q(t, "onchange", 7), d = Q(t, "classes", 7), f = /* @__PURE__ */ F(!1), p = /* @__PURE__ */ F(""), m = /* @__PURE__ */ F(-1), h = /* @__PURE__ */ F(null), g = /* @__PURE__ */ F(null), _ = /* @__PURE__ */ F(null), v = `select-listbox-${Math.random().toString(36).slice(2, 9)}`;
12490
+ function y(e) {
12491
12491
  let t = n().find((t) => t.id === e);
12492
12492
  return typeof t == "object" ? t.label : e;
12493
12493
  }
12494
- let y = /* @__PURE__ */ N(() => a() && V(f).length > 0 ? n().filter((e) => e.label.toLowerCase().includes(V(f).toLowerCase())) : n()), b = /* @__PURE__ */ N(() => {
12494
+ let b = /* @__PURE__ */ N(() => a() && V(p).length > 0 ? n().filter((e) => e.label.toLowerCase().includes(V(p).toLowerCase())) : n()), x = /* @__PURE__ */ N(() => {
12495
12495
  let e = r().at(0);
12496
- return typeof e == "string" ? v(e) : "";
12497
- }), x = /* @__PURE__ */ N(() => V(p) >= 0 ? `${_}-option-${V(p)}` : null), S = /* @__PURE__ */ N(() => V(d) && V(b).length > 0 ? V(b) : o());
12498
- async function C() {
12499
- s() || V(d) || (I(d, !0), I(p, -1), I(f, ""), a() && (await Er(), V(h) !== null && V(h).focus()));
12500
- }
12501
- function w() {
12502
- I(d, !1), I(f, ""), I(p, -1);
12496
+ return typeof e == "string" ? y(e) : "";
12497
+ }), S = /* @__PURE__ */ N(() => V(m) >= 0 ? `${v}-option-${V(m)}` : null), C = /* @__PURE__ */ N(() => V(f) && V(x).length > 0 ? V(x) : o());
12498
+ async function w() {
12499
+ s() || V(f) || (I(f, !0), I(m, -1), I(p, ""), a() && (await Er(), V(g) !== null && V(g).focus()));
12503
12500
  }
12504
- function T(e) {
12505
- s() || (i() ? r(r().includes(e) ? r().filter((t) => t !== e) : [...r(), e]) : (r([e]), w()), l()?.(r()));
12501
+ function T() {
12502
+ I(f, !1), I(p, ""), I(m, -1);
12506
12503
  }
12507
12504
  function E(e) {
12508
- s() || (r(r().filter((t) => t !== e)), l()?.(r()));
12505
+ s() || (i() ? r(r().includes(e) ? r().filter((t) => t !== e) : [...r(), e]) : (r([e]), T()), u()?.(r()));
12509
12506
  }
12510
- function D() {
12511
- if (V(p) < 0 || V(p) >= V(y).length) return;
12512
- let e = V(y).at(V(p));
12513
- typeof e == "object" && e && T(e.id);
12514
- }
12515
- async function O(e) {
12516
- let t = V(p) + e;
12517
- if (!(t < 0 || t >= V(y).length) && (I(p, t), await Er(), V(m) !== null)) {
12518
- let e = V(m).querySelector(".select-option.highlighted");
12507
+ function D(e) {
12508
+ s() || (r(r().filter((t) => t !== e)), u()?.(r()));
12509
+ }
12510
+ function O() {
12511
+ if (V(m) < 0 || V(m) >= V(b).length) return;
12512
+ let e = V(b).at(V(m));
12513
+ typeof e == "object" && e && E(e.id);
12514
+ }
12515
+ async function k(e) {
12516
+ let t = V(m) + e;
12517
+ if (!(t < 0 || t >= V(b).length) && (I(m, t), await Er(), V(h) !== null)) {
12518
+ let e = V(h).querySelector(".select-option.highlighted");
12519
12519
  e instanceof HTMLElement && e.scrollIntoView({ block: "nearest" });
12520
12520
  }
12521
12521
  }
12522
- function k(e) {
12522
+ function A(e) {
12523
12523
  if (e.target instanceof HTMLInputElement) {
12524
- V(d) || C();
12524
+ V(f) || w();
12525
12525
  return;
12526
12526
  }
12527
- i() && a() ? C() : V(d) ? w() : C();
12527
+ i() && a() ? w() : V(f) ? T() : w();
12528
12528
  }
12529
- function A(e) {
12529
+ function j(e) {
12530
12530
  if (!s()) switch (e.key) {
12531
12531
  case "Enter":
12532
- e.preventDefault(), V(d) ? D() : C();
12532
+ e.preventDefault(), V(f) ? O() : w();
12533
12533
  break;
12534
12534
  case " ":
12535
- e.target instanceof HTMLInputElement || (e.preventDefault(), V(d) ? D() : C());
12535
+ e.target instanceof HTMLInputElement || (e.preventDefault(), V(f) ? O() : w());
12536
12536
  break;
12537
12537
  case "ArrowDown":
12538
- e.preventDefault(), V(d) ? O(1) : C();
12538
+ e.preventDefault(), V(f) ? k(1) : w();
12539
12539
  break;
12540
12540
  case "ArrowUp":
12541
- e.preventDefault(), O(-1);
12541
+ e.preventDefault(), k(-1);
12542
12542
  break;
12543
12543
  case "Escape":
12544
- V(d) && (w(), !a() && V(g) !== null && V(g).focus());
12544
+ V(f) && (T(), !a() && V(_) !== null && V(_).focus());
12545
12545
  break;
12546
12546
  case "Backspace":
12547
- if (i() && V(f) === "" && r().length > 0) {
12547
+ if (i() && V(p) === "" && r().length > 0) {
12548
12548
  let e = r().at(-1);
12549
- typeof e == "string" && E(e);
12549
+ typeof e == "string" && D(e);
12550
12550
  }
12551
12551
  break;
12552
12552
  case "Tab":
12553
- V(d) && w();
12553
+ V(f) && T();
12554
12554
  break;
12555
12555
  }
12556
12556
  }
12557
- function j(e) {
12558
- e.target instanceof HTMLInputElement && (I(f, e.target.value, !0), V(d) || I(d, !0), I(p, -1));
12557
+ function ee(e) {
12558
+ e.target instanceof HTMLInputElement && (I(p, e.target.value, !0), V(f) || I(f, !0), I(m, -1));
12559
12559
  }
12560
- function ee() {
12561
- V(d) || C();
12560
+ function te() {
12561
+ V(f) || w();
12562
12562
  }
12563
- function te(e) {
12564
- e.target instanceof Node && V(m) !== null && !V(m).contains(e.target) && w();
12563
+ function ne(e) {
12564
+ e.target instanceof Node && V(h) !== null && !V(h).contains(e.target) && T();
12565
12565
  }
12566
- ui(() => (document.addEventListener("click", te), () => {
12567
- document.removeEventListener("click", te);
12566
+ ui(() => (document.addEventListener("click", ne), () => {
12567
+ document.removeEventListener("click", ne);
12568
12568
  }));
12569
- var ne = {
12569
+ var re = {
12570
12570
  get items() {
12571
12571
  return n();
12572
12572
  },
@@ -12603,50 +12603,57 @@ function Tp(e, t) {
12603
12603
  set disabled(e = !1) {
12604
12604
  s(e), P();
12605
12605
  },
12606
- get testId() {
12606
+ get ariaLabel() {
12607
12607
  return c();
12608
12608
  },
12609
- set testId(e) {
12609
+ set ariaLabel(e) {
12610
12610
  c(e), P();
12611
12611
  },
12612
- get onchange() {
12612
+ get testId() {
12613
12613
  return l();
12614
12614
  },
12615
- set onchange(e) {
12615
+ set testId(e) {
12616
12616
  l(e), P();
12617
12617
  },
12618
- get classes() {
12618
+ get onchange() {
12619
12619
  return u();
12620
12620
  },
12621
- set classes(e) {
12621
+ set onchange(e) {
12622
12622
  u(e), P();
12623
+ },
12624
+ get classes() {
12625
+ return d();
12626
+ },
12627
+ set classes(e) {
12628
+ d(e), P();
12623
12629
  }
12624
- }, re = Cp();
12625
- fa(re, () => ({
12626
- class: `select ${u() ?? "" ?? ""}`,
12627
- ...typeof c() == "string" ? { "data-pw": c() } : {},
12630
+ }, ie = Cp();
12631
+ fa(ie, () => ({
12632
+ class: `select ${d() ?? "" ?? ""}`,
12633
+ ...typeof l() == "string" ? { "data-pw": l() } : {},
12628
12634
  [Qi]: {
12629
- open: V(d),
12635
+ open: V(f),
12630
12636
  disabled: s()
12631
12637
  }
12632
12638
  }), void 0, void 0, void 0, "svelte-52lifo");
12633
- var ie = L(re);
12634
- fa(ie, () => ({
12639
+ var ae = L(ie);
12640
+ fa(ae, () => ({
12635
12641
  class: "select-trigger",
12636
- onclick: k,
12637
- onkeydown: A,
12642
+ onclick: A,
12643
+ onkeydown: j,
12638
12644
  role: "combobox",
12639
- "aria-expanded": V(d),
12645
+ "aria-label": c(),
12646
+ "aria-expanded": V(f),
12640
12647
  "aria-haspopup": "listbox",
12641
- "aria-controls": _,
12642
- ...V(x) === null ? {} : { "aria-activedescendant": V(x) },
12648
+ "aria-controls": v,
12649
+ ...V(S) === null ? {} : { "aria-activedescendant": V(S) },
12643
12650
  tabindex: s() || a() ? -1 : 0
12644
12651
  }), void 0, void 0, void 0, "svelte-52lifo");
12645
- var ae = L(ie), oe = (e) => {
12652
+ var oe = L(ae), se = (e) => {
12646
12653
  var t = vp(), n = R(t);
12647
12654
  _i(n, 16, r, (e) => e, (e, t) => {
12648
12655
  {
12649
- let n = /* @__PURE__ */ N(() => v(t));
12656
+ let n = /* @__PURE__ */ N(() => y(t));
12650
12657
  Zc(e, Z({
12651
12658
  get text() {
12652
12659
  return V(n);
@@ -12655,64 +12662,64 @@ function Tp(e, t) {
12655
12662
  get disabled() {
12656
12663
  return s();
12657
12664
  },
12658
- ondismiss: () => E(t)
12659
- }, () => typeof c() == "string" ? { testId: `${c()}-pill-${t}` } : {}));
12665
+ ondismiss: () => D(t)
12666
+ }, () => typeof l() == "string" ? { testId: `${l()}-pill-${t}` } : {}));
12660
12667
  }
12661
12668
  });
12662
- var i = z(n, 2), l = (e) => {
12669
+ var i = z(n, 2), u = (e) => {
12663
12670
  var t = gp();
12664
- sa(t), xa(t, (e) => I(h, e), () => V(h)), B(() => {
12665
- ca(t, V(f)), X(t, "placeholder", r().length === 0 ? o() : ""), t.disabled = s(), X(t, "tabindex", s() ? -1 : 0);
12666
- }), H("input", t, j), Rr("focus", t, ee), G(e, t);
12667
- }, u = (e) => {
12671
+ sa(t), xa(t, (e) => I(g, e), () => V(g)), B(() => {
12672
+ ca(t, V(p)), X(t, "placeholder", r().length === 0 ? o() : ""), X(t, "aria-label", c()), t.disabled = s(), X(t, "tabindex", s() ? -1 : 0);
12673
+ }), H("input", t, ee), Rr("focus", t, te), G(e, t);
12674
+ }, d = (e) => {
12668
12675
  var t = _p(), n = L(t, !0);
12669
12676
  M(t), B(() => K(n, o())), G(e, t);
12670
12677
  };
12671
12678
  J(i, (e) => {
12672
- a() ? e(l) : r().length === 0 && e(u, 1);
12679
+ a() ? e(u) : r().length === 0 && e(d, 1);
12673
12680
  }), G(e, t);
12674
- }, se = (e) => {
12675
- var t = gp();
12676
- sa(t), xa(t, (e) => I(h, e), () => V(h)), B(() => {
12677
- ca(t, V(d) ? V(f) : V(b)), X(t, "placeholder", V(S)), t.disabled = s(), X(t, "tabindex", s() ? -1 : 0);
12678
- }), H("input", t, j), Rr("focus", t, ee), G(e, t);
12679
12681
  }, ce = (e) => {
12682
+ var t = gp();
12683
+ sa(t), xa(t, (e) => I(g, e), () => V(g)), B(() => {
12684
+ ca(t, V(f) ? V(p) : V(x)), X(t, "placeholder", V(C)), X(t, "aria-label", c()), t.disabled = s(), X(t, "tabindex", s() ? -1 : 0);
12685
+ }), H("input", t, ee), Rr("focus", t, te), G(e, t);
12686
+ }, le = (e) => {
12680
12687
  var t = yp(), n = L(t, !0);
12681
12688
  M(t), B(() => {
12682
- Y(t, 1, Vi(V(b).length > 0 ? "select-value" : "select-placeholder"), "svelte-52lifo"), K(n, V(b).length > 0 ? V(b) : o());
12689
+ Y(t, 1, Vi(V(x).length > 0 ? "select-value" : "select-placeholder"), "svelte-52lifo"), K(n, V(x).length > 0 ? V(x) : o());
12683
12690
  }), G(e, t);
12684
12691
  };
12685
- J(ae, (e) => {
12686
- i() ? e(oe) : a() ? e(se, 1) : e(ce, -1);
12692
+ J(oe, (e) => {
12693
+ i() ? e(se) : a() ? e(ce, 1) : e(le, -1);
12687
12694
  });
12688
- var le = z(ae, 2);
12689
- Ci(le, () => ap, !0), M(le), M(ie), xa(ie, (e) => I(g, e), () => V(g));
12690
- var ue = z(ie, 2), de = (e) => {
12695
+ var ue = z(oe, 2);
12696
+ Ci(ue, () => ap, !0), M(ue), M(ae), xa(ae, (e) => I(_, e), () => V(_));
12697
+ var de = z(ae, 2), fe = (e) => {
12691
12698
  var t = Sp(), n = L(t), a = (e) => {
12692
12699
  G(e, bp());
12693
12700
  }, o = (e) => {
12694
12701
  var t = W();
12695
- _i(R(t), 19, () => V(y), (e) => e.id, (e, t, n) => {
12702
+ _i(R(t), 19, () => V(b), (e) => e.id, (e, t, n) => {
12696
12703
  var i = xp();
12697
12704
  let a;
12698
12705
  var o = L(i, !0);
12699
12706
  M(i), B((e, r) => {
12700
- a = Y(i, 1, "select-option svelte-52lifo", null, a, e), X(i, "id", `${_}-option-${V(n)}`), X(i, "aria-selected", r), K(o, V(t).label);
12707
+ a = Y(i, 1, "select-option svelte-52lifo", null, a, e), X(i, "id", `${v}-option-${V(n)}`), X(i, "aria-selected", r), K(o, V(t).label);
12701
12708
  }, [() => ({
12702
12709
  selected: r().includes(V(t).id),
12703
- highlighted: V(n) === V(p)
12704
- }), () => r().includes(V(t).id)]), H("click", i, () => T(V(t).id)), Rr("mouseenter", i, () => I(p, V(n), !0)), G(e, i);
12710
+ highlighted: V(n) === V(m)
12711
+ }), () => r().includes(V(t).id)]), H("click", i, () => E(V(t).id)), Rr("mouseenter", i, () => I(m, V(n), !0)), G(e, i);
12705
12712
  }), G(e, t);
12706
12713
  };
12707
12714
  J(n, (e) => {
12708
- V(y).length === 0 ? e(a) : e(o, -1);
12715
+ V(b).length === 0 ? e(a) : e(o, -1);
12709
12716
  }), M(t), B(() => {
12710
- X(t, "id", _), X(t, "aria-multiselectable", i());
12717
+ X(t, "id", v), X(t, "aria-label", c()), X(t, "aria-multiselectable", i());
12711
12718
  }), G(e, t);
12712
12719
  };
12713
- return J(ue, (e) => {
12714
- V(d) && !s() && e(de);
12715
- }), M(re), xa(re, (e) => I(m, e), () => V(m)), G(e, re), Ye(ne);
12720
+ return J(de, (e) => {
12721
+ V(f) && !s() && e(fe);
12722
+ }), M(ie), xa(ie, (e) => I(h, e), () => V(h)), G(e, ie), Ye(re);
12716
12723
  }
12717
12724
  zr(["input", "click"]), $(Tp, {
12718
12725
  items: {},
@@ -12721,6 +12728,7 @@ zr(["input", "click"]), $(Tp, {
12721
12728
  searchable: {},
12722
12729
  placeholder: {},
12723
12730
  disabled: {},
12731
+ ariaLabel: {},
12724
12732
  testId: {},
12725
12733
  onchange: {},
12726
12734
  classes: {}
@@ -12756,6 +12764,10 @@ customElements.define("pui-select", $(Dp, {
12756
12764
  reflect: !0,
12757
12765
  type: "Boolean"
12758
12766
  },
12767
+ ariaLabel: {
12768
+ attribute: "aria-label",
12769
+ type: "String"
12770
+ },
12759
12771
  testId: {
12760
12772
  attribute: "test-id",
12761
12773
  type: "String"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "polymorph-ui-components",
3
- "version": "0.8.0",
3
+ "version": "0.9.0",
4
4
  "description": "A themeable Svelte 5 UI component library with CSS custom property driven styling",
5
5
  "keywords": [
6
6
  "svelte",