@cal.macconnachie/web-components 1.1.2 → 1.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -352,6 +352,7 @@ export declare class BaseTabs extends BaseElement {
352
352
  ariaLabel: string;
353
353
  syncWithHash: boolean;
354
354
  variant: TabVariant;
355
+ forceExpanded: boolean;
355
356
  private tabs;
356
357
  private isExpanded;
357
358
  private isMobile;
package/dist/index.js CHANGED
@@ -249,7 +249,7 @@ let Ae = class extends HTMLElement {
249
249
  Ae.elementStyles = [], Ae.shadowRootOptions = { mode: "open" }, Ae[He("elementProperties")] = /* @__PURE__ */ new Map(), Ae[He("finalized")] = /* @__PURE__ */ new Map(), ho?.({ ReactiveElement: Ae }), (st.reactiveElementVersions ??= []).push("2.1.1");
250
250
  const _t = globalThis, ot = _t.trustedTypes, Gt = ot ? ot.createPolicy("lit-html", { createHTML: (e) => e }) : void 0, kr = "$lit$", de = `lit$${Math.random().toFixed(9).slice(2)}$`, Sr = "?" + de, po = `<${Sr}>`, $e = document, Le = () => $e.createComment(""), qe = (e) => e === null || typeof e != "object" && typeof e != "function", Ot = Array.isArray, uo = (e) => Ot(e) || typeof e?.[Symbol.iterator] == "function", bt = `[
251
251
  \f\r]`, Ne = /<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g, Qt = /-->/g, Xt = />/g, me = RegExp(`>|${bt}(?:([^\\s"'>=/]+)(${bt}*=${bt}*(?:[^
252
- \f\r"'\`<>=]|("|')|))|$)`, "g"), Zt = /'/g, er = /"/g, Ar = /^(?:script|style|textarea|title)$/i, fo = (e) => (t, ...r) => ({ _$litType$: e, strings: t, values: r }), f = fo(1), ae = Symbol.for("lit-noChange"), S = Symbol.for("lit-nothing"), tr = /* @__PURE__ */ new WeakMap(), ye = $e.createTreeWalker($e, 129);
252
+ \f\r"'\`<>=]|("|')|))|$)`, "g"), Zt = /'/g, er = /"/g, Ar = /^(?:script|style|textarea|title)$/i, fo = (e) => (t, ...r) => ({ _$litType$: e, strings: t, values: r }), f = fo(1), ne = Symbol.for("lit-noChange"), S = Symbol.for("lit-nothing"), tr = /* @__PURE__ */ new WeakMap(), ye = $e.createTreeWalker($e, 129);
253
253
  function Er(e, t) {
254
254
  if (!Ot(e) || !e.hasOwnProperty("raw")) throw Error("invalid template strings array");
255
255
  return Gt !== void 0 ? Gt.createHTML(t) : t;
@@ -304,7 +304,7 @@ class Fe {
304
304
  }
305
305
  }
306
306
  function Ee(e, t, r = e, o) {
307
- if (t === ae) return t;
307
+ if (t === ne) return t;
308
308
  let i = o !== void 0 ? r._$Co?.[o] : r._$Cl;
309
309
  const s = qe(t) ? void 0 : t._$litDirective$;
310
310
  return i?.constructor !== s && (i?._$AO?.(!1), s === void 0 ? i = void 0 : (i = new s(e), i._$AT(e, r, o)), o !== void 0 ? (r._$Co ??= [])[o] = i : r._$Cl = i), i !== void 0 && (t = Ee(e, i._$AS(e, t.values), i, o)), t;
@@ -356,7 +356,7 @@ class _e {
356
356
  return this._$AB;
357
357
  }
358
358
  _$AI(t, r = this) {
359
- t = Ee(this, t, r), qe(t) ? t === S || t == null || t === "" ? (this._$AH !== S && this._$AR(), this._$AH = S) : t !== this._$AH && t !== ae && this._(t) : t._$litType$ !== void 0 ? this.$(t) : t.nodeType !== void 0 ? this.T(t) : uo(t) ? this.k(t) : this._(t);
359
+ t = Ee(this, t, r), qe(t) ? t === S || t == null || t === "" ? (this._$AH !== S && this._$AR(), this._$AH = S) : t !== this._$AH && t !== ne && this._(t) : t._$litType$ !== void 0 ? this.$(t) : t.nodeType !== void 0 ? this.T(t) : uo(t) ? this.k(t) : this._(t);
360
360
  }
361
361
  O(t) {
362
362
  return this._$AA.parentNode.insertBefore(t, this._$AB);
@@ -409,11 +409,11 @@ class at {
409
409
  _$AI(t, r = this, o, i) {
410
410
  const s = this.strings;
411
411
  let a = !1;
412
- if (s === void 0) t = Ee(this, t, r, 0), a = !qe(t) || t !== this._$AH && t !== ae, a && (this._$AH = t);
412
+ if (s === void 0) t = Ee(this, t, r, 0), a = !qe(t) || t !== this._$AH && t !== ne, a && (this._$AH = t);
413
413
  else {
414
414
  const n = t;
415
415
  let l, d;
416
- for (t = s[0], l = 0; l < s.length - 1; l++) d = Ee(this, n[o + l], r, l), d === ae && (d = this._$AH[l]), a ||= !qe(d) || d !== this._$AH[l], d === S ? t = S : t !== S && (t += (d ?? "") + s[l + 1]), this._$AH[l] = d;
416
+ for (t = s[0], l = 0; l < s.length - 1; l++) d = Ee(this, n[o + l], r, l), d === ne && (d = this._$AH[l]), a ||= !qe(d) || d !== this._$AH[l], d === S ? t = S : t !== S && (t += (d ?? "") + s[l + 1]), this._$AH[l] = d;
417
417
  }
418
418
  a && !i && this.j(t);
419
419
  }
@@ -442,7 +442,7 @@ class yo extends at {
442
442
  super(t, r, o, i, s), this.type = 5;
443
443
  }
444
444
  _$AI(t, r = this) {
445
- if ((t = Ee(this, t, r, 0) ?? S) === ae) return;
445
+ if ((t = Ee(this, t, r, 0) ?? S) === ne) return;
446
446
  const o = this._$AH, i = t === S && o !== S || t.capture !== o.capture || t.once !== o.once || t.passive !== o.passive, s = t !== S && (o === S || i);
447
447
  i && this.element.removeEventListener(this.name, this, o), s && this.element.addEventListener(this.name, this, t), this._$AH = t;
448
448
  }
@@ -492,7 +492,7 @@ let Be = class extends Ae {
492
492
  super.disconnectedCallback(), this._$Do?.setConnected(!1);
493
493
  }
494
494
  render() {
495
- return ae;
495
+ return ne;
496
496
  }
497
497
  };
498
498
  Be._$litElement$ = !0, Be.finalized = !0, Dt.litElementHydrateSupport?.({ LitElement: Be });
@@ -630,7 +630,7 @@ const or = (e, t, r) => {
630
630
  const v = i[p++];
631
631
  v !== null && gt(v);
632
632
  }
633
- return this.ut = a, Oo(e, l), ae;
633
+ return this.ut = a, Oo(e, l), ne;
634
634
  }
635
635
  });
636
636
  var Po = Object.defineProperty, Tr = (e, t, r, o) => {
@@ -2454,7 +2454,7 @@ const $ = Rt(class extends zt {
2454
2454
  const i = !!t[o];
2455
2455
  i === this.st.has(o) || this.nt?.has(o) || (i ? (r.add(o), this.st.add(o)) : (r.remove(o), this.st.delete(o)));
2456
2456
  }
2457
- return ae;
2457
+ return ne;
2458
2458
  }
2459
2459
  });
2460
2460
  var Bo = Object.defineProperty, Lo = Object.getOwnPropertyDescriptor, fe = (e, t, r, o) => {
@@ -3224,7 +3224,7 @@ Oe([
3224
3224
  he = Oe([
3225
3225
  W("base-card")
3226
3226
  ], he);
3227
- const ee = (e) => e ?? S;
3227
+ const te = (e) => e ?? S;
3228
3228
  var jo = Object.defineProperty, Yo = Object.getOwnPropertyDescriptor, M = (e, t, r, o) => {
3229
3229
  for (var i = o > 1 ? void 0 : o ? Yo(t, r) : t, s = e.length - 1, a; s >= 0; s--)
3230
3230
  (a = e[s]) && (i = (o ? a(t, r, i) : a(i)) || i);
@@ -3389,7 +3389,7 @@ let P = class extends B {
3389
3389
  role="button"
3390
3390
  aria-haspopup="dialog"
3391
3391
  aria-expanded=${this.isOpen}
3392
- aria-describedby=${ee(e ? `${this.inputId}-error` : void 0)}
3392
+ aria-describedby=${te(e ? `${this.inputId}-error` : void 0)}
3393
3393
  aria-invalid=${e}
3394
3394
  >
3395
3395
  ${this.displayValue || this.placeholder}
@@ -4268,7 +4268,7 @@ let T = class extends B {
4268
4268
  role="button"
4269
4269
  aria-haspopup="dialog"
4270
4270
  aria-expanded=${this.isOpen}
4271
- aria-describedby=${ee(e ? `${this.inputId}-error` : void 0)}
4271
+ aria-describedby=${te(e ? `${this.inputId}-error` : void 0)}
4272
4272
  aria-invalid=${e}
4273
4273
  >
4274
4274
  ${this.displayValue || this.placeholder}
@@ -5130,7 +5130,7 @@ O([
5130
5130
  T = O([
5131
5131
  W("base-datetime-picker")
5132
5132
  ], T);
5133
- var Wo = Object.defineProperty, Jo = Object.getOwnPropertyDescriptor, X = (e, t, r, o) => {
5133
+ var Wo = Object.defineProperty, Jo = Object.getOwnPropertyDescriptor, Z = (e, t, r, o) => {
5134
5134
  for (var i = o > 1 ? void 0 : o ? Jo(t, r) : t, s = e.length - 1, a; s >= 0; s--)
5135
5135
  (a = e[s]) && (i = (o ? a(t, r, i) : a(i)) || i);
5136
5136
  return o && i && Wo(t, r, i), i;
@@ -5270,43 +5270,43 @@ let V = class extends B {
5270
5270
  }
5271
5271
  };
5272
5272
  V.styles = Or();
5273
- X([
5273
+ Z([
5274
5274
  b({ type: Boolean, reflect: !0 })
5275
5275
  ], V.prototype, "open", 2);
5276
- X([
5276
+ Z([
5277
5277
  b({ type: String, attribute: "size" })
5278
5278
  ], V.prototype, "size", 2);
5279
- X([
5279
+ Z([
5280
5280
  w()
5281
5281
  ], V.prototype, "isClosing", 2);
5282
- X([
5282
+ Z([
5283
5283
  w()
5284
5284
  ], V.prototype, "isVisible", 2);
5285
- X([
5285
+ Z([
5286
5286
  w()
5287
5287
  ], V.prototype, "isDragging", 2);
5288
- X([
5288
+ Z([
5289
5289
  w()
5290
5290
  ], V.prototype, "dragStartY", 2);
5291
- X([
5291
+ Z([
5292
5292
  w()
5293
5293
  ], V.prototype, "dragCurrentY", 2);
5294
- X([
5294
+ Z([
5295
5295
  w()
5296
5296
  ], V.prototype, "dragStartTime", 2);
5297
- X([
5297
+ Z([
5298
5298
  w()
5299
5299
  ], V.prototype, "lastDragEndTime", 2);
5300
- X([
5300
+ Z([
5301
5301
  q(".modal-container")
5302
5302
  ], V.prototype, "modalContainer", 2);
5303
- X([
5303
+ Z([
5304
5304
  q(".modal-body")
5305
5305
  ], V.prototype, "modalBody", 2);
5306
- V = X([
5306
+ V = Z([
5307
5307
  W("base-drawer")
5308
5308
  ], V);
5309
- var Go = Object.defineProperty, Qo = Object.getOwnPropertyDescriptor, Z = (e, t, r, o) => {
5309
+ var Go = Object.defineProperty, Qo = Object.getOwnPropertyDescriptor, ee = (e, t, r, o) => {
5310
5310
  for (var i = o > 1 ? void 0 : o ? Qo(t, r) : t, s = e.length - 1, a; s >= 0; s--)
5311
5311
  (a = e[s]) && (i = (o ? a(t, r, i) : a(i)) || i);
5312
5312
  return o && i && Go(t, r, i), i;
@@ -5366,11 +5366,11 @@ let K = class extends B {
5366
5366
  id=${this.inputId}
5367
5367
  class=${$(t)}
5368
5368
  type=${this.type}
5369
- placeholder=${ee(this.placeholder)}
5369
+ placeholder=${te(this.placeholder)}
5370
5370
  ?disabled=${this.disabled}
5371
5371
  ?required=${this.required}
5372
- autocomplete=${ee(this.autocomplete)}
5373
- aria-describedby=${ee(e ? `${this.inputId}-error` : void 0)}
5372
+ autocomplete=${te(this.autocomplete)}
5373
+ aria-describedby=${te(e ? `${this.inputId}-error` : void 0)}
5374
5374
  aria-invalid=${e}
5375
5375
  .value=${this.value}
5376
5376
  @input=${this.handleInput}
@@ -5532,40 +5532,40 @@ K.styles = J`
5532
5532
  line-height: var(--line-height-tight);
5533
5533
  }
5534
5534
  `;
5535
- Z([
5535
+ ee([
5536
5536
  b({ type: String })
5537
5537
  ], K.prototype, "value", 2);
5538
- Z([
5538
+ ee([
5539
5539
  b({ type: String })
5540
5540
  ], K.prototype, "label", 2);
5541
- Z([
5541
+ ee([
5542
5542
  b({ type: String })
5543
5543
  ], K.prototype, "placeholder", 2);
5544
- Z([
5544
+ ee([
5545
5545
  b({ type: String })
5546
5546
  ], K.prototype, "type", 2);
5547
- Z([
5547
+ ee([
5548
5548
  b({ type: Boolean, reflect: !0 })
5549
5549
  ], K.prototype, "required", 2);
5550
- Z([
5550
+ ee([
5551
5551
  b({ type: Boolean, reflect: !0 })
5552
5552
  ], K.prototype, "disabled", 2);
5553
- Z([
5553
+ ee([
5554
5554
  b({ type: String })
5555
5555
  ], K.prototype, "error", 2);
5556
- Z([
5556
+ ee([
5557
5557
  b({ type: String })
5558
5558
  ], K.prototype, "hint", 2);
5559
- Z([
5559
+ ee([
5560
5560
  b({ type: String })
5561
5561
  ], K.prototype, "autocomplete", 2);
5562
- Z([
5562
+ ee([
5563
5563
  b({ type: String })
5564
5564
  ], K.prototype, "size", 2);
5565
- Z([
5565
+ ee([
5566
5566
  q("input")
5567
5567
  ], K.prototype, "inputElement", 2);
5568
- K = Z([
5568
+ K = ee([
5569
5569
  W("base-input")
5570
5570
  ], K);
5571
5571
  var Xo = Object.defineProperty, Zo = Object.getOwnPropertyDescriptor, I = (e, t, r, o) => {
@@ -5688,7 +5688,7 @@ let R = class extends B {
5688
5688
  .value=${this.searchQuery}
5689
5689
  @input=${this.handleSearchInput}
5690
5690
  @keydown=${this.handleKeydown}
5691
- aria-describedby=${ee(e ? `${this.selectId}-error` : void 0)}
5691
+ aria-describedby=${te(e ? `${this.selectId}-error` : void 0)}
5692
5692
  aria-invalid=${e}
5693
5693
  />
5694
5694
  ` : f`
@@ -5701,7 +5701,7 @@ let R = class extends B {
5701
5701
  role="combobox"
5702
5702
  aria-expanded=${this.isOpen}
5703
5703
  aria-haspopup="listbox"
5704
- aria-describedby=${ee(e ? `${this.selectId}-error` : void 0)}
5704
+ aria-describedby=${te(e ? `${this.selectId}-error` : void 0)}
5705
5705
  aria-invalid=${e}
5706
5706
  >
5707
5707
  ${this.displayValue}
@@ -6105,7 +6105,7 @@ class xt extends zt {
6105
6105
  }
6106
6106
  render(t) {
6107
6107
  if (t === S || t == null) return this._t = void 0, this.it = t;
6108
- if (t === ae) return t;
6108
+ if (t === ne) return t;
6109
6109
  if (typeof t != "string") throw Error(this.constructor.directiveName + "() called with a non-string value");
6110
6110
  if (t === this.it) return this._t;
6111
6111
  this.it = t;
@@ -6115,14 +6115,14 @@ class xt extends zt {
6115
6115
  }
6116
6116
  xt.directiveName = "unsafeHTML", xt.resultType = 1;
6117
6117
  const ri = Rt(xt);
6118
- var oi = Object.defineProperty, ii = Object.getOwnPropertyDescriptor, ne = (e, t, r, o) => {
6118
+ var oi = Object.defineProperty, ii = Object.getOwnPropertyDescriptor, ae = (e, t, r, o) => {
6119
6119
  for (var i = o > 1 ? void 0 : o ? ii(t, r) : t, s = e.length - 1, a; s >= 0; s--)
6120
6120
  (a = e[s]) && (i = (o ? a(t, r, i) : a(i)) || i);
6121
6121
  return o && i && oi(t, r, i), i;
6122
6122
  };
6123
- let te = class extends B {
6123
+ let X = class extends B {
6124
6124
  constructor() {
6125
- super(...arguments), this.activeTab = "", this.ariaLabel = "Dashboard navigation", this.syncWithHash = !0, this.variant = "sidebar", this.tabs = [], this.isExpanded = !1, this.isMobile = !1, this.boundHashChangeHandler = this.handleHashChange.bind(this), this.boundResizeHandler = this.handleResize.bind(this), this.hasInitialized = !1;
6125
+ super(...arguments), this.activeTab = "", this.ariaLabel = "Dashboard navigation", this.syncWithHash = !0, this.variant = "sidebar", this.forceExpanded = !1, this.tabs = [], this.isExpanded = !1, this.isMobile = !1, this.boundHashChangeHandler = this.handleHashChange.bind(this), this.boundResizeHandler = this.handleResize.bind(this), this.hasInitialized = !1;
6126
6126
  }
6127
6127
  connectedCallback() {
6128
6128
  super.connectedCallback(), window.addEventListener("hashchange", this.boundHashChangeHandler), window.addEventListener("resize", this.boundResizeHandler), this.handleResize(), this.addEventListener("tab-register", this.handleTabRegister), this.addEventListener("tab-badge-update", this.handleTabBadgeUpdate);
@@ -6222,7 +6222,7 @@ let te = class extends B {
6222
6222
  this.isExpanded = !this.isExpanded;
6223
6223
  }
6224
6224
  renderTabButton(e, t) {
6225
- const r = this.activeTab === e.id, o = {
6225
+ const r = this.activeTab === e.id, o = this.forceExpanded || this.isExpanded, i = {
6226
6226
  "tab-button": !0,
6227
6227
  "tab-button--active": r
6228
6228
  };
@@ -6233,13 +6233,13 @@ let te = class extends B {
6233
6233
  aria-controls="tabpanel-${e.id}"
6234
6234
  id="tab-${e.id}"
6235
6235
  tabindex=${r ? 0 : -1}
6236
- class=${$(o)}
6236
+ class=${$(i)}
6237
6237
  @click=${() => this.handleTabClick(e.id)}
6238
- @keydown=${(i) => this.handleKeyDown(i, t)}
6238
+ @keydown=${(s) => this.handleKeyDown(s, t)}
6239
6239
  >
6240
- ${e.icon && this.variant === "sidebar" ? f`<span class="tab-icon">${ri(e.icon)}</span>` : S}
6241
- ${this.isExpanded || this.variant !== "sidebar" || this.isMobile ? f`<span class="tab-label">${e.label}</span>` : S}
6242
- ${e.badge !== void 0 && e.badge > 0 && (this.isExpanded || this.variant !== "sidebar" || this.isMobile) ? f`<span class="tab-badge">${e.badge}</span>` : S}
6240
+ ${e.icon ? f`<span class="tab-icon">${ri(e.icon)}</span>` : S}
6241
+ ${o || this.variant !== "sidebar" || this.isMobile ? f`<span class="tab-label">${e.label}</span>` : S}
6242
+ ${e.badge !== void 0 && e.badge > 0 && (o || this.variant !== "sidebar" || this.isMobile) ? f`<span class="tab-badge">${e.badge}</span>` : S}
6243
6243
  </button>
6244
6244
  `;
6245
6245
  }
@@ -6247,14 +6247,17 @@ let te = class extends B {
6247
6247
  const e = {
6248
6248
  "base-tabs": !0,
6249
6249
  "base-tabs--vertical": this.variant === "sidebar"
6250
- }, t = {
6250
+ }, t = this.forceExpanded || this.isExpanded, r = {
6251
6251
  "tabs-sidebar": !0,
6252
- "tabs-sidebar--expanded": this.isExpanded
6252
+ "tabs-sidebar--expanded": t
6253
+ }, o = {
6254
+ "sidebar-toggle": !0,
6255
+ "sidebar-toggle--hidden": this.forceExpanded
6253
6256
  };
6254
6257
  return f`
6255
6258
  <div class=${$(e)} role="tablist" aria-label=${this.ariaLabel}>
6256
6259
  ${this.variant === "sidebar" ? f`
6257
- <div class=${$(t)}>
6260
+ <div class=${$(r)}>
6258
6261
  <!-- Sidebar Header -->
6259
6262
  <div class="sidebar-header">
6260
6263
  <slot name="sidebar-header"></slot>
@@ -6262,11 +6265,11 @@ let te = class extends B {
6262
6265
 
6263
6266
  <!-- Sidebar Toggle -->
6264
6267
  <button
6265
- class="sidebar-toggle"
6268
+ class=${$(o)}
6266
6269
  @click=${this.toggleSidebar}
6267
6270
  aria-label="Toggle sidebar"
6268
6271
  >
6269
- ${this.isExpanded ? f`<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
6272
+ ${t ? f`<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
6270
6273
  <path d="M11 19l-7-7 7-7" />
6271
6274
  </svg>` : f`<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
6272
6275
  <path d="M9 5l7 7-7 7" />
@@ -6275,7 +6278,7 @@ let te = class extends B {
6275
6278
 
6276
6279
  <!-- Tabs Navigation -->
6277
6280
  <nav class="tabs-nav">
6278
- ${this.tabs.map((r, o) => this.renderTabButton(r, o))}
6281
+ ${this.tabs.map((i, s) => this.renderTabButton(i, s))}
6279
6282
  </nav>
6280
6283
 
6281
6284
  <!-- Sidebar Footer -->
@@ -6285,7 +6288,7 @@ let te = class extends B {
6285
6288
  </div>
6286
6289
  ` : f`
6287
6290
  <div class="tabs-header">
6288
- ${this.tabs.map((r, o) => this.renderTabButton(r, o))}
6291
+ ${this.tabs.map((i, s) => this.renderTabButton(i, s))}
6289
6292
  </div>
6290
6293
  `}
6291
6294
 
@@ -6297,7 +6300,7 @@ let te = class extends B {
6297
6300
  `;
6298
6301
  }
6299
6302
  };
6300
- te.styles = J`
6303
+ X.styles = J`
6301
6304
  :host {
6302
6305
  display: block;
6303
6306
  min-width: 0;
@@ -6316,6 +6319,7 @@ te.styles = J`
6316
6319
  padding: var(--space-4, 1rem);
6317
6320
  min-width: 0;
6318
6321
  overflow-x: hidden;
6322
+ height: 100%;
6319
6323
  }
6320
6324
 
6321
6325
  /* Sidebar Layout */
@@ -6363,6 +6367,10 @@ te.styles = J`
6363
6367
  transition: all var(--transition-fast, 150ms);
6364
6368
  }
6365
6369
 
6370
+ .sidebar-toggle--hidden {
6371
+ display: none;
6372
+ }
6373
+
6366
6374
  .sidebar-toggle:hover {
6367
6375
  background: var(--color-bg-muted, #f8fafc);
6368
6376
  color: var(--color-text-primary, #0f172a);
@@ -6496,8 +6504,10 @@ te.styles = J`
6496
6504
  .tabs-header .tab-button {
6497
6505
  position: relative;
6498
6506
  display: flex;
6507
+ flex-direction: column;
6499
6508
  align-items: center;
6500
- gap: var(--space-2, 0.5rem);
6509
+ justify-content: center;
6510
+ gap: var(--space-1, 0.25rem);
6501
6511
  padding: var(--space-3, 0.75rem) var(--space-4, 1rem);
6502
6512
  background: none;
6503
6513
  border: none;
@@ -6527,8 +6537,28 @@ te.styles = J`
6527
6537
  border-bottom-color: var(--color-primary, #2563eb);
6528
6538
  }
6529
6539
 
6540
+ .tabs-header .tab-icon {
6541
+ flex-shrink: 0;
6542
+ width: 100%;
6543
+ height: 20px;
6544
+ display: flex;
6545
+ align-items: center;
6546
+ justify-content: center;
6547
+ margin-left: 0;
6548
+ }
6549
+
6550
+ .tabs-header .tab-icon svg {
6551
+ width: 20px;
6552
+ height: 20px;
6553
+ stroke: currentColor;
6554
+ display: block;
6555
+ margin: 0 auto;
6556
+ }
6557
+
6530
6558
  .tabs-header .tab-label {
6559
+ width: 100%;
6531
6560
  line-height: 1;
6561
+ text-align: center;
6532
6562
  }
6533
6563
 
6534
6564
  .tabs-header .tab-badge {
@@ -6554,11 +6584,16 @@ te.styles = J`
6554
6584
  flex: 1;
6555
6585
  min-width: 0;
6556
6586
  animation: fadeIn 0.2s ease-in;
6587
+ overflow-y: auto;
6588
+ overflow-x: hidden;
6557
6589
  }
6558
6590
 
6559
6591
  .base-tabs--vertical .tabs-content {
6560
6592
  flex: 1;
6561
6593
  min-width: 0;
6594
+ min-height: 0;
6595
+ overflow-y: auto;
6596
+ overflow-x: hidden;
6562
6597
  }
6563
6598
 
6564
6599
  @keyframes fadeIn {
@@ -6723,33 +6758,36 @@ te.styles = J`
6723
6758
  }
6724
6759
  }
6725
6760
  `;
6726
- ne([
6761
+ ae([
6727
6762
  b({ type: String, attribute: "active-tab" })
6728
- ], te.prototype, "activeTab", 2);
6729
- ne([
6763
+ ], X.prototype, "activeTab", 2);
6764
+ ae([
6730
6765
  b({ type: String, attribute: "aria-label" })
6731
- ], te.prototype, "ariaLabel", 2);
6732
- ne([
6766
+ ], X.prototype, "ariaLabel", 2);
6767
+ ae([
6733
6768
  b({ type: Boolean, attribute: "sync-with-hash" })
6734
- ], te.prototype, "syncWithHash", 2);
6735
- ne([
6769
+ ], X.prototype, "syncWithHash", 2);
6770
+ ae([
6736
6771
  b({ type: String })
6737
- ], te.prototype, "variant", 2);
6738
- ne([
6772
+ ], X.prototype, "variant", 2);
6773
+ ae([
6774
+ b({ type: Boolean, attribute: "force-expanded" })
6775
+ ], X.prototype, "forceExpanded", 2);
6776
+ ae([
6739
6777
  w()
6740
- ], te.prototype, "tabs", 2);
6741
- ne([
6778
+ ], X.prototype, "tabs", 2);
6779
+ ae([
6742
6780
  w()
6743
- ], te.prototype, "isExpanded", 2);
6744
- ne([
6781
+ ], X.prototype, "isExpanded", 2);
6782
+ ae([
6745
6783
  w()
6746
- ], te.prototype, "isMobile", 2);
6747
- ne([
6784
+ ], X.prototype, "isMobile", 2);
6785
+ ae([
6748
6786
  q(".tabs-nav")
6749
- ], te.prototype, "tabsNav", 2);
6750
- te = ne([
6787
+ ], X.prototype, "tabsNav", 2);
6788
+ X = ae([
6751
6789
  W("base-tabs")
6752
- ], te);
6790
+ ], X);
6753
6791
  var si = Object.defineProperty, ai = Object.getOwnPropertyDescriptor, G = (e, t, r, o) => {
6754
6792
  for (var i = o > 1 ? void 0 : o ? ai(t, r) : t, s = e.length - 1, a; s >= 0; s--)
6755
6793
  (a = e[s]) && (i = (o ? a(t, r, i) : a(i)) || i);
@@ -6813,12 +6851,12 @@ let L = class extends B {
6813
6851
  <textarea
6814
6852
  id=${this.textareaId}
6815
6853
  class=${$(s)}
6816
- placeholder=${ee(this.placeholder)}
6854
+ placeholder=${te(this.placeholder)}
6817
6855
  rows=${this.rows}
6818
- maxlength=${ee(this.maxlength)}
6856
+ maxlength=${te(this.maxlength)}
6819
6857
  ?disabled=${this.disabled}
6820
6858
  ?required=${this.required}
6821
- aria-describedby=${ee(e ? `${this.textareaId}-error` : void 0)}
6859
+ aria-describedby=${te(e ? `${this.textareaId}-error` : void 0)}
6822
6860
  aria-invalid=${e}
6823
6861
  .value=${this.value}
6824
6862
  @input=${this.handleInput}
@@ -7166,7 +7204,7 @@ let N = class extends B {
7166
7204
  role="button"
7167
7205
  aria-haspopup="dialog"
7168
7206
  aria-expanded=${this.isOpen}
7169
- aria-describedby=${ee(e ? `${this.inputId}-error` : void 0)}
7207
+ aria-describedby=${te(e ? `${this.inputId}-error` : void 0)}
7170
7208
  aria-invalid=${e}
7171
7209
  >
7172
7210
  ${this.displayValue || this.placeholder}
@@ -9867,7 +9905,7 @@ export {
9867
9905
  K as BaseInput,
9868
9906
  R as BaseSelect,
9869
9907
  pe as BaseTab,
9870
- te as BaseTabs,
9908
+ X as BaseTabs,
9871
9909
  L as BaseTextarea,
9872
9910
  N as BaseTimePicker,
9873
9911
  ue as QuantitySelect,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cal.macconnachie/web-components",
3
- "version": "1.1.2",
3
+ "version": "1.1.3",
4
4
  "description": "Web components hosted on a CDN",
5
5
  "keywords": [
6
6
  "web-components",