@cumulus-ui/components 0.5.9 → 0.5.11

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.js CHANGED
@@ -6587,8 +6587,8 @@ var containRe = /paint|layout|strict|content/;
6587
6587
  var isNotNone = (value) => !!value && value !== "none";
6588
6588
  var isWebKitValue;
6589
6589
  function isContainingBlock(elementOrCss) {
6590
- const css182 = isElement(elementOrCss) ? getComputedStyle2(elementOrCss) : elementOrCss;
6591
- return isNotNone(css182.transform) || isNotNone(css182.translate) || isNotNone(css182.scale) || isNotNone(css182.rotate) || isNotNone(css182.perspective) || !isWebKit() && (isNotNone(css182.backdropFilter) || isNotNone(css182.filter)) || willChangeRe.test(css182.willChange || "") || containRe.test(css182.contain || "");
6590
+ const css183 = isElement(elementOrCss) ? getComputedStyle2(elementOrCss) : elementOrCss;
6591
+ return isNotNone(css183.transform) || isNotNone(css183.translate) || isNotNone(css183.scale) || isNotNone(css183.rotate) || isNotNone(css183.perspective) || !isWebKit() && (isNotNone(css183.backdropFilter) || isNotNone(css183.filter)) || willChangeRe.test(css183.willChange || "") || containRe.test(css183.contain || "");
6592
6592
  }
6593
6593
  function getContainingBlock(element) {
6594
6594
  let currentNode = getParentNode(element);
@@ -6673,9 +6673,9 @@ function getFrameElement(win) {
6673
6673
 
6674
6674
  // node_modules/@floating-ui/dom/dist/floating-ui.dom.mjs
6675
6675
  function getCssDimensions(element) {
6676
- const css182 = getComputedStyle2(element);
6677
- let width = parseFloat(css182.width) || 0;
6678
- let height = parseFloat(css182.height) || 0;
6676
+ const css183 = getComputedStyle2(element);
6677
+ let width = parseFloat(css183.width) || 0;
6678
+ let height = parseFloat(css183.height) || 0;
6679
6679
  const hasOffset = isHTMLElement(element);
6680
6680
  const offsetWidth = hasOffset ? element.offsetWidth : width;
6681
6681
  const offsetHeight = hasOffset ? element.offsetHeight : height;
@@ -6769,9 +6769,9 @@ function getBoundingClientRect(element, includeScale, isFixedStrategy, offsetPar
6769
6769
  while (currentIFrame && offsetParent && offsetWin !== currentWin) {
6770
6770
  const iframeScale = getScale(currentIFrame);
6771
6771
  const iframeRect = currentIFrame.getBoundingClientRect();
6772
- const css182 = getComputedStyle2(currentIFrame);
6773
- const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css182.paddingLeft)) * iframeScale.x;
6774
- const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css182.paddingTop)) * iframeScale.y;
6772
+ const css183 = getComputedStyle2(currentIFrame);
6773
+ const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css183.paddingLeft)) * iframeScale.x;
6774
+ const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css183.paddingTop)) * iframeScale.y;
6775
6775
  x *= iframeScale.x;
6776
6776
  y *= iframeScale.y;
6777
6777
  width *= iframeScale.x;
@@ -6848,15 +6848,15 @@ function getClientRects(element) {
6848
6848
  return Array.from(element.getClientRects());
6849
6849
  }
6850
6850
  function getDocumentRect(element) {
6851
- const html83 = getDocumentElement(element);
6851
+ const html84 = getDocumentElement(element);
6852
6852
  const scroll = getNodeScroll(element);
6853
6853
  const body = element.ownerDocument.body;
6854
- const width = max(html83.scrollWidth, html83.clientWidth, body.scrollWidth, body.clientWidth);
6855
- const height = max(html83.scrollHeight, html83.clientHeight, body.scrollHeight, body.clientHeight);
6854
+ const width = max(html84.scrollWidth, html84.clientWidth, body.scrollWidth, body.clientWidth);
6855
+ const height = max(html84.scrollHeight, html84.clientHeight, body.scrollHeight, body.clientHeight);
6856
6856
  let x = -scroll.scrollLeft + getWindowScrollBarX(element);
6857
6857
  const y = -scroll.scrollTop;
6858
6858
  if (getComputedStyle2(body).direction === "rtl") {
6859
- x += max(html83.clientWidth, body.clientWidth) - width;
6859
+ x += max(html84.clientWidth, body.clientWidth) - width;
6860
6860
  }
6861
6861
  return {
6862
6862
  width,
@@ -6868,10 +6868,10 @@ function getDocumentRect(element) {
6868
6868
  var SCROLLBAR_MAX = 25;
6869
6869
  function getViewportRect(element, strategy) {
6870
6870
  const win = getWindow(element);
6871
- const html83 = getDocumentElement(element);
6871
+ const html84 = getDocumentElement(element);
6872
6872
  const visualViewport = win.visualViewport;
6873
- let width = html83.clientWidth;
6874
- let height = html83.clientHeight;
6873
+ let width = html84.clientWidth;
6874
+ let height = html84.clientHeight;
6875
6875
  let x = 0;
6876
6876
  let y = 0;
6877
6877
  if (visualViewport) {
@@ -6883,13 +6883,13 @@ function getViewportRect(element, strategy) {
6883
6883
  y = visualViewport.offsetTop;
6884
6884
  }
6885
6885
  }
6886
- const windowScrollbarX = getWindowScrollBarX(html83);
6886
+ const windowScrollbarX = getWindowScrollBarX(html84);
6887
6887
  if (windowScrollbarX <= 0) {
6888
- const doc = html83.ownerDocument;
6888
+ const doc = html84.ownerDocument;
6889
6889
  const body = doc.body;
6890
6890
  const bodyStyles = getComputedStyle(body);
6891
6891
  const bodyMarginInline = doc.compatMode === "CSS1Compat" ? parseFloat(bodyStyles.marginLeft) + parseFloat(bodyStyles.marginRight) || 0 : 0;
6892
- const clippingStableScrollbarWidth = Math.abs(html83.clientWidth - body.clientWidth - bodyMarginInline);
6892
+ const clippingStableScrollbarWidth = Math.abs(html84.clientWidth - body.clientWidth - bodyMarginInline);
6893
6893
  if (clippingStableScrollbarWidth <= SCROLLBAR_MAX) {
6894
6894
  width -= clippingStableScrollbarWidth;
6895
6895
  }
@@ -9515,6 +9515,9 @@ var CsContentLayoutInternal = class extends CsBaseElement {
9515
9515
  this.headerVariant = "default";
9516
9516
  this.defaultPadding = false;
9517
9517
  this._hasHeader = false;
9518
+ this._hasNotifications = false;
9519
+ this._hasBreadcrumbs = false;
9520
+ this._hasSecondaryHeader = false;
9518
9521
  }
9519
9522
  static {
9520
9523
  this.styles = [sharedStyles, componentStyles24, hostStyles26];
@@ -9524,6 +9527,21 @@ var CsContentLayoutInternal = class extends CsBaseElement {
9524
9527
  this._hasHeader = slot.assignedNodes({ flatten: true }).length > 0;
9525
9528
  this.requestUpdate();
9526
9529
  }
9530
+ _onNotificationsSlotChange(e) {
9531
+ const slot = e.target;
9532
+ this._hasNotifications = slot.assignedNodes({ flatten: true }).length > 0;
9533
+ this.requestUpdate();
9534
+ }
9535
+ _onBreadcrumbsSlotChange(e) {
9536
+ const slot = e.target;
9537
+ this._hasBreadcrumbs = slot.assignedNodes({ flatten: true }).length > 0;
9538
+ this.requestUpdate();
9539
+ }
9540
+ _onSecondaryHeaderSlotChange(e) {
9541
+ const slot = e.target;
9542
+ this._hasSecondaryHeader = slot.assignedNodes({ flatten: true }).length > 0;
9543
+ this.requestUpdate();
9544
+ }
9527
9545
  render() {
9528
9546
  const layoutClasses = {
9529
9547
  "layout": true,
@@ -9546,8 +9564,11 @@ var CsContentLayoutInternal = class extends CsBaseElement {
9546
9564
  <div class=${classMap23(backgroundClasses)}>
9547
9565
  ${this.headerBackgroundStyle ? html27`<div class="header-background" style="background: ${this.headerBackgroundStyle}"></div>` : nothing10}
9548
9566
  </div>
9567
+ ${this._hasNotifications ? html27`<div class="notifications"><slot name="notifications" @slotchange=${this._onNotificationsSlotChange}></slot></div>` : html27`<slot name="notifications" @slotchange=${this._onNotificationsSlotChange} style="display:none"></slot>`}
9568
+ ${this._hasBreadcrumbs ? html27`<div class="breadcrumbs"><slot name="breadcrumbs" @slotchange=${this._onBreadcrumbsSlotChange}></slot></div>` : html27`<slot name="breadcrumbs" @slotchange=${this._onBreadcrumbsSlotChange} style="display:none"></slot>`}
9549
9569
  <div class=${classMap23(headerClasses)}>
9550
9570
  <slot name="header" @slotchange=${this._onHeaderSlotChange}></slot>
9571
+ ${this._hasSecondaryHeader ? html27`<div class="secondary-header"><slot name="secondary-header" @slotchange=${this._onSecondaryHeaderSlotChange}></slot></div>` : html27`<slot name="secondary-header" @slotchange=${this._onSecondaryHeaderSlotChange} style="display:none"></slot>`}
9551
9572
  </div>
9552
9573
  <div class="content">
9553
9574
  <slot></slot>
@@ -10149,6 +10170,7 @@ var CsTokenInternal = class extends CsBaseElement {
10149
10170
  this.description = "";
10150
10171
  this.disabled = false;
10151
10172
  this.readOnly = false;
10173
+ this.dismissible = false;
10152
10174
  this.dismissLabel = "Remove";
10153
10175
  this.variant = "normal";
10154
10176
  this._onDismiss = () => {
@@ -10161,7 +10183,7 @@ var CsTokenInternal = class extends CsBaseElement {
10161
10183
  }
10162
10184
  render() {
10163
10185
  const isInline = this.variant === "inline";
10164
- const showDismiss = !this.disabled && !this.readOnly;
10186
+ const showDismiss = this.dismissible && !this.disabled && !this.readOnly;
10165
10187
  const boxClasses = {
10166
10188
  "token-box": !isInline,
10167
10189
  "token-box-inline": isInline,
@@ -10247,6 +10269,9 @@ __decorateClass([
10247
10269
  __decorateClass([
10248
10270
  property28({ type: Boolean, reflect: true })
10249
10271
  ], CsTokenInternal.prototype, "readOnly", 2);
10272
+ __decorateClass([
10273
+ property28({ type: Boolean, reflect: true })
10274
+ ], CsTokenInternal.prototype, "dismissible", 2);
10250
10275
  __decorateClass([
10251
10276
  property28({ type: String })
10252
10277
  ], CsTokenInternal.prototype, "dismissLabel", 2);
@@ -12179,7 +12204,7 @@ var CsToggleButton = class extends CsToggleButtonInternal {
12179
12204
  customElements.define("cs-toggle-button", CsToggleButton);
12180
12205
 
12181
12206
  // src/slider/internal.ts
12182
- import { css as css76, html as html35 } from "lit";
12207
+ import { css as css76, html as html35, nothing as nothing16 } from "lit";
12183
12208
  import { property as property34 } from "lit/decorators.js";
12184
12209
  import { classMap as classMap31 } from "lit/directives/class-map.js";
12185
12210
  import { ifDefined as ifDefined17 } from "lit/directives/if-defined.js";
@@ -12592,6 +12617,8 @@ var CsSliderInternal = class extends CsBaseElement {
12592
12617
  this.max = 100;
12593
12618
  this.step = 1;
12594
12619
  this.disabled = false;
12620
+ this.hideFillLine = false;
12621
+ this.tickMarks = [];
12595
12622
  this.ariaLabel = null;
12596
12623
  this.ariaDescription = null;
12597
12624
  this._onInput = (e) => {
@@ -12631,10 +12658,14 @@ var CsSliderInternal = class extends CsBaseElement {
12631
12658
  <div class="root">
12632
12659
  <div class="slider">
12633
12660
  <div class=${classMap31(trackClasses)}></div>
12634
- <div
12635
- class=${classMap31(rangeClasses)}
12636
- style="--awsui-slider-range-inline-size-6b9ypa: ${percent}%"
12637
- ></div>
12661
+ ${this.hideFillLine ? nothing16 : html35`<div
12662
+ class=${classMap31(rangeClasses)}
12663
+ style="--awsui-slider-range-inline-size-6b9ypa: ${percent}%"
12664
+ ></div>`}
12665
+ ${this.tickMarks.length > 0 ? html35`<div class="tick-marks">${this.tickMarks.map((tick) => {
12666
+ const tickPercent = this.max === this.min ? 0 : (tick - this.min) / (this.max - this.min) * 100;
12667
+ return html35`<div class="tick-mark" style="inset-inline-start: ${tickPercent}%"></div>`;
12668
+ })}</div>` : nothing16}
12638
12669
  <input
12639
12670
  type="range"
12640
12671
  class=${classMap31(thumbClasses)}
@@ -12674,6 +12705,12 @@ __decorateClass([
12674
12705
  __decorateClass([
12675
12706
  property34({ type: Boolean, reflect: true })
12676
12707
  ], CsSliderInternal.prototype, "disabled", 2);
12708
+ __decorateClass([
12709
+ property34({ type: Boolean, reflect: true })
12710
+ ], CsSliderInternal.prototype, "hideFillLine", 2);
12711
+ __decorateClass([
12712
+ property34({ attribute: false })
12713
+ ], CsSliderInternal.prototype, "tickMarks", 2);
12677
12714
  __decorateClass([
12678
12715
  property34({ type: String })
12679
12716
  ], CsSliderInternal.prototype, "ariaLabel", 2);
@@ -12953,6 +12990,18 @@ var CsPromptInputInternal = class extends CsBaseElement {
12953
12990
  this.actionButtonIconName = "send";
12954
12991
  this.disableActionButton = false;
12955
12992
  this.ariaLabel = null;
12993
+ this._hasSecondaryContent = false;
12994
+ this._hasSecondaryActions = false;
12995
+ this._onSecondaryContentSlotChange = (e) => {
12996
+ const slot = e.target;
12997
+ this._hasSecondaryContent = slot.assignedNodes({ flatten: true }).length > 0;
12998
+ this.requestUpdate();
12999
+ };
13000
+ this._onSecondaryActionsSlotChange = (e) => {
13001
+ const slot = e.target;
13002
+ this._hasSecondaryActions = slot.assignedNodes({ flatten: true }).length > 0;
13003
+ this.requestUpdate();
13004
+ };
12956
13005
  this._onTextareaInput = (e) => {
12957
13006
  const textarea = e.target;
12958
13007
  this.value = textarea.value;
@@ -12995,6 +13044,7 @@ var CsPromptInputInternal = class extends CsBaseElement {
12995
13044
  };
12996
13045
  return html36`
12997
13046
  <div class=${classMap32(rootClasses)}>
13047
+ ${this._hasSecondaryContent ? html36`<div class="secondary-content"><slot name="secondary-content" @slotchange=${this._onSecondaryContentSlotChange}></slot></div>` : html36`<slot name="secondary-content" @slotchange=${this._onSecondaryContentSlotChange} style="display:none"></slot>`}
12998
13048
  <div class="textarea-wrapper">
12999
13049
  <textarea
13000
13050
  class=${classMap32(textareaClasses)}
@@ -13007,6 +13057,7 @@ var CsPromptInputInternal = class extends CsBaseElement {
13007
13057
  @input=${this._onTextareaInput}
13008
13058
  @keydown=${this._onTextareaKeyDown}
13009
13059
  ></textarea>
13060
+ ${this._hasSecondaryActions ? html36`<span class="secondary-actions"><slot name="secondary-actions" @slotchange=${this._onSecondaryActionsSlotChange}></slot></span>` : html36`<slot name="secondary-actions" @slotchange=${this._onSecondaryActionsSlotChange} style="display:none"></slot>`}
13010
13061
  <span class="primary-action">
13011
13062
  <cs-button
13012
13063
  class="action-button"
@@ -13354,7 +13405,7 @@ var CsFileInput = class extends CsFileInputInternal {
13354
13405
  customElements.define("cs-file-input", CsFileInput);
13355
13406
 
13356
13407
  // src/tabs/internal.ts
13357
- import { css as css84, html as html39, nothing as nothing16 } from "lit";
13408
+ import { css as css84, html as html39, nothing as nothing17 } from "lit";
13358
13409
  import { property as property38, state as state9 } from "lit/decorators.js";
13359
13410
  import { classMap as classMap34 } from "lit/directives/class-map.js";
13360
13411
  import { ifDefined as ifDefined20 } from "lit/directives/if-defined.js";
@@ -13823,7 +13874,7 @@ var CsTabsInternal = class extends CsBaseElement {
13823
13874
  tabindex=${tab.id === activeId ? 0 : -1}
13824
13875
  >
13825
13876
  <slot name=${tab.id}></slot>
13826
- ${tab.content != null && tab.id === activeId ? html39`<span>${tab.content}</span>` : nothing16}
13877
+ ${tab.content != null && tab.id === activeId ? html39`<span>${tab.content}</span>` : nothing17}
13827
13878
  </div>
13828
13879
  `)}
13829
13880
  </div>` : this.tabs.map((tab) => html39`
@@ -13838,7 +13889,7 @@ var CsTabsInternal = class extends CsBaseElement {
13838
13889
  tabindex=${tab.id === activeId ? 0 : -1}
13839
13890
  >
13840
13891
  <slot name=${tab.id}></slot>
13841
- ${tab.content != null && tab.id === activeId ? html39`<span>${tab.content}</span>` : nothing16}
13892
+ ${tab.content != null && tab.id === activeId ? html39`<span>${tab.content}</span>` : nothing17}
13842
13893
  </div>
13843
13894
  `)}
13844
13895
  </div>
@@ -13877,7 +13928,7 @@ var CsTabs = class extends CsTabsInternal {
13877
13928
  customElements.define("cs-tabs", CsTabs);
13878
13929
 
13879
13930
  // src/expandable-section/internal.ts
13880
- import { css as css86, html as html40, nothing as nothing17 } from "lit";
13931
+ import { css as css86, html as html40, nothing as nothing18 } from "lit";
13881
13932
  import { property as property39, state as state10 } from "lit/decorators.js";
13882
13933
  import { classMap as classMap35 } from "lit/directives/class-map.js";
13883
13934
 
@@ -14231,7 +14282,7 @@ var CsExpandableSectionInternal = class extends CsBaseElement {
14231
14282
  _renderHeadingContent() {
14232
14283
  const headerTextContent = html40`
14233
14284
  <span class="header-text">${this.headerText}</span>
14234
- ${this.headerCounter ? html40`<span class="header-counter">&nbsp;${this.headerCounter}</span>` : nothing17}
14285
+ ${this.headerCounter ? html40`<span class="header-counter">&nbsp;${this.headerCounter}</span>` : nothing18}
14235
14286
  `;
14236
14287
  return headerTextContent;
14237
14288
  }
@@ -14314,7 +14365,7 @@ var CsExpandableSectionInternal = class extends CsBaseElement {
14314
14365
  </div>
14315
14366
  <div class=${isContainer ? "header-container" : "header-text-wrapper"}>
14316
14367
  ${this._renderHeading()}
14317
- ${this.headerDescription ? html40`<span class="header-description">${this.headerDescription}</span>` : nothing17}
14368
+ ${this.headerDescription ? html40`<span class="header-description">${this.headerDescription}</span>` : nothing18}
14318
14369
  </div>
14319
14370
  </div>
14320
14371
  <slot name="headerActions"></slot>
@@ -14363,7 +14414,7 @@ var CsExpandableSection = class extends CsExpandableSectionInternal {
14363
14414
  customElements.define("cs-expandable-section", CsExpandableSection);
14364
14415
 
14365
14416
  // src/button-dropdown/internal.ts
14366
- import { css as css89, html as html41, nothing as nothing18 } from "lit";
14417
+ import { css as css89, html as html41, nothing as nothing19 } from "lit";
14367
14418
  import { property as property40, state as state11, query as query2 } from "lit/decorators.js";
14368
14419
  import { classMap as classMap36 } from "lit/directives/class-map.js";
14369
14420
  import { ifDefined as ifDefined21 } from "lit/directives/if-defined.js";
@@ -14887,7 +14938,7 @@ var CsButtonDropdownInternal = class extends CsBaseElement {
14887
14938
  tabindex=${tabIndex}
14888
14939
  @click=${this._onTriggerClick}
14889
14940
  >
14890
- ${this.loading ? html41`<span class="icon icon-left"><cs-icon name="status-in-progress"></cs-icon></span>` : nothing18}
14941
+ ${this.loading ? html41`<span class="icon icon-left"><cs-icon name="status-in-progress"></cs-icon></span>` : nothing19}
14891
14942
  <slot></slot>
14892
14943
  <span class=${classMap36(caretClasses)}>
14893
14944
  <cs-icon name="caret-down-filled"></cs-icon>
@@ -14896,7 +14947,7 @@ var CsButtonDropdownInternal = class extends CsBaseElement {
14896
14947
  `;
14897
14948
  }
14898
14949
  _renderItems() {
14899
- if (!this._open) return nothing18;
14950
+ if (!this._open) return nothing19;
14900
14951
  const flatItems = this._flatItems();
14901
14952
  return html41`
14902
14953
  <div class="dropdown" role="menu">
@@ -14930,12 +14981,12 @@ var CsButtonDropdownInternal = class extends CsBaseElement {
14930
14981
  if (item.disabled) e.preventDefault();
14931
14982
  }}
14932
14983
  >
14933
- ${item.iconName ? html41`<span class="button-dropdown-item-element--icon"><cs-icon name=${item.iconName}></cs-icon></span>` : nothing18}
14984
+ ${item.iconName ? html41`<span class="button-dropdown-item-element--icon"><cs-icon name=${item.iconName}></cs-icon></span>` : nothing19}
14934
14985
  <span>${item.text}</span>
14935
14986
  </a>
14936
14987
  ` : html41`
14937
14988
  <span class=${classMap36(menuItemClasses)} tabindex="-1">
14938
- ${item.iconName ? html41`<span class="button-dropdown-item-element--icon"><cs-icon name=${item.iconName}></cs-icon></span>` : nothing18}
14989
+ ${item.iconName ? html41`<span class="button-dropdown-item-element--icon"><cs-icon name=${item.iconName}></cs-icon></span>` : nothing19}
14939
14990
  <span>${item.text}</span>
14940
14991
  </span>
14941
14992
  `}
@@ -15478,7 +15529,7 @@ var CsBreadcrumbGroup = class extends CsBreadcrumbGroupInternal {
15478
15529
  customElements.define("cs-breadcrumb-group", CsBreadcrumbGroup);
15479
15530
 
15480
15531
  // src/select/internal.ts
15481
- import { css as css97, html as html44, nothing as nothing19 } from "lit";
15532
+ import { css as css97, html as html44, nothing as nothing20 } from "lit";
15482
15533
  import { property as property43, state as state12, query as query3 } from "lit/decorators.js";
15483
15534
  import { classMap as classMap38 } from "lit/directives/class-map.js";
15484
15535
  import { ifDefined as ifDefined24 } from "lit/directives/if-defined.js";
@@ -16025,12 +16076,12 @@ var CsSelectInternal = class extends Base6 {
16025
16076
  <div class="option-content">
16026
16077
  <div class="option-label">
16027
16078
  ${opt.label || opt.value || ""}
16028
- ${opt.labelTag ? html44`<span class="option-label-tag">${opt.labelTag}</span>` : nothing19}
16079
+ ${opt.labelTag ? html44`<span class="option-label-tag">${opt.labelTag}</span>` : nothing20}
16029
16080
  </div>
16030
- ${opt.description ? html44`<div class="option-description">${opt.description}</div>` : nothing19}
16031
- ${opt.tags && opt.tags.length > 0 ? html44`<div class="option-tags">${opt.tags.join(", ")}</div>` : nothing19}
16081
+ ${opt.description ? html44`<div class="option-description">${opt.description}</div>` : nothing20}
16082
+ ${opt.tags && opt.tags.length > 0 ? html44`<div class="option-tags">${opt.tags.join(", ")}</div>` : nothing20}
16032
16083
  </div>
16033
- ${isSelected ? html44`<span class="selected-icon"><cs-icon name="check"></cs-icon></span>` : nothing19}
16084
+ ${isSelected ? html44`<span class="selected-icon"><cs-icon name="check"></cs-icon></span>` : nothing20}
16034
16085
  </li>
16035
16086
  `;
16036
16087
  }
@@ -16062,7 +16113,7 @@ var CsSelectInternal = class extends Base6 {
16062
16113
  @click=${(e) => e.stopPropagation()}
16063
16114
  />
16064
16115
  </div>
16065
- ` : nothing19}
16116
+ ` : nothing20}
16066
16117
  <ul class="option-list" role="listbox" aria-label=${ifDefined24(this.ariaLabel || void 0)}>
16067
16118
  ${items}
16068
16119
  </ul>
@@ -16102,7 +16153,7 @@ var CsSelectInternal = class extends Base6 {
16102
16153
  <div class="dropdown" @click=${(e) => e.stopPropagation()}>
16103
16154
  ${this._renderDropdownContent()}
16104
16155
  </div>
16105
- ` : nothing19}
16156
+ ` : nothing20}
16106
16157
  </div>
16107
16158
  `;
16108
16159
  }
@@ -16159,7 +16210,7 @@ var CsSelect = class extends CsSelectInternal {
16159
16210
  customElements.define("cs-select", CsSelect);
16160
16211
 
16161
16212
  // src/multiselect/internal.ts
16162
- import { css as css99, html as html45, nothing as nothing20 } from "lit";
16213
+ import { css as css99, html as html45, nothing as nothing21 } from "lit";
16163
16214
  import { property as property44, state as state13, query as query4 } from "lit/decorators.js";
16164
16215
  import { classMap as classMap39 } from "lit/directives/class-map.js";
16165
16216
  import { ifDefined as ifDefined25 } from "lit/directives/if-defined.js";
@@ -16649,9 +16700,9 @@ var CsMultiselectInternal = class extends Base7 {
16649
16700
  <div class="option-content">
16650
16701
  <div class="option-label">
16651
16702
  ${opt.label || opt.value || ""}
16652
- ${opt.labelTag ? html45`<span class="option-label-tag">${opt.labelTag}</span>` : nothing20}
16703
+ ${opt.labelTag ? html45`<span class="option-label-tag">${opt.labelTag}</span>` : nothing21}
16653
16704
  </div>
16654
- ${opt.description ? html45`<div class="option-description">${opt.description}</div>` : nothing20}
16705
+ ${opt.description ? html45`<div class="option-description">${opt.description}</div>` : nothing21}
16655
16706
  </div>
16656
16707
  </li>
16657
16708
  `;
@@ -16684,14 +16735,14 @@ var CsMultiselectInternal = class extends Base7 {
16684
16735
  @click=${(e) => e.stopPropagation()}
16685
16736
  />
16686
16737
  </div>
16687
- ` : nothing20}
16738
+ ` : nothing21}
16688
16739
  <ul class="option-list" role="listbox" aria-multiselectable="true" aria-label=${ifDefined25(this.ariaLabel || void 0)}>
16689
16740
  ${items}
16690
16741
  </ul>
16691
16742
  `;
16692
16743
  }
16693
16744
  _renderTokens() {
16694
- if (this.hideTokens || this.selectedOptions.length === 0) return nothing20;
16745
+ if (this.hideTokens || this.selectedOptions.length === 0) return nothing21;
16695
16746
  const tokenItems = this.selectedOptions.map((opt) => ({
16696
16747
  label: opt.label || opt.value || "",
16697
16748
  description: opt.description,
@@ -16741,7 +16792,7 @@ var CsMultiselectInternal = class extends Base7 {
16741
16792
  <div class="dropdown" @click=${(e) => e.stopPropagation()}>
16742
16793
  ${this._renderDropdownContent()}
16743
16794
  </div>
16744
- ` : nothing20}
16795
+ ` : nothing21}
16745
16796
  ${this._renderTokens()}
16746
16797
  </div>
16747
16798
  `;
@@ -16802,7 +16853,7 @@ var CsMultiselect = class extends CsMultiselectInternal {
16802
16853
  customElements.define("cs-multiselect", CsMultiselect);
16803
16854
 
16804
16855
  // src/autosuggest/internal.ts
16805
- import { css as css102, html as html46, nothing as nothing21 } from "lit";
16856
+ import { css as css102, html as html46, nothing as nothing22 } from "lit";
16806
16857
  import { property as property45, state as state14, query as query5 } from "lit/decorators.js";
16807
16858
  import { classMap as classMap40 } from "lit/directives/class-map.js";
16808
16859
  import { ifDefined as ifDefined26 } from "lit/directives/if-defined.js";
@@ -17233,7 +17284,7 @@ var CsAutosuggestInternal = class extends Base8 {
17233
17284
  >
17234
17285
  ${filtered.map((opt, i) => this._renderOption(opt, i))}
17235
17286
  </div>
17236
- ` : nothing21}
17287
+ ` : nothing22}
17237
17288
  </div>
17238
17289
  </div>
17239
17290
  `;
@@ -17633,7 +17684,7 @@ var CsSegmentedControl = class extends CsSegmentedControlInternal {
17633
17684
  customElements.define("cs-segmented-control", CsSegmentedControl);
17634
17685
 
17635
17686
  // src/cards/internal.ts
17636
- import { css as css106, html as html48, nothing as nothing22 } from "lit";
17687
+ import { css as css106, html as html48, nothing as nothing23 } from "lit";
17637
17688
  import { property as property47, state as state15 } from "lit/decorators.js";
17638
17689
  import { classMap as classMap42 } from "lit/directives/class-map.js";
17639
17690
 
@@ -17896,14 +17947,14 @@ var CsCardsInternal = class extends CsBaseElement {
17896
17947
  }
17897
17948
  _renderCardSections(item) {
17898
17949
  const sections = this.cardDefinition.sections;
17899
- if (!sections?.length) return nothing22;
17950
+ if (!sections?.length) return nothing23;
17900
17951
  const visible = this.visibleSections;
17901
17952
  return html48`${sections.filter((section) => !visible || !section.id || visible.includes(section.id)).map((section) => {
17902
17953
  const width = section.width ?? 100;
17903
17954
  return html48`
17904
17955
  <div class="section" style="inline-size: ${width}%">
17905
- ${section.header ? html48`<div class="section-header">${section.header}</div>` : nothing22}
17906
- ${section.content ? html48`<div class="section-content">${section.content(item)}</div>` : nothing22}
17956
+ ${section.header ? html48`<div class="section-header">${section.header}</div>` : nothing23}
17957
+ ${section.content ? html48`<div class="section-content">${section.content(item)}</div>` : nothing23}
17907
17958
  </div>
17908
17959
  `;
17909
17960
  })}`;
@@ -17927,7 +17978,7 @@ var CsCardsInternal = class extends CsBaseElement {
17927
17978
  <cs-container variant="default">
17928
17979
  <div slot="header" style="position: relative;">
17929
17980
  <div class=${classMap42(cardHeaderClasses)}>
17930
- ${headerContent ?? nothing22}
17981
+ ${headerContent ?? nothing23}
17931
17982
  </div>
17932
17983
  ${isSelectable ? html48`
17933
17984
  <div class="selection-control">
@@ -17938,7 +17989,7 @@ var CsCardsInternal = class extends CsBaseElement {
17938
17989
  @change=${() => this._onSelectionChange(item)}
17939
17990
  ></cs-checkbox>
17940
17991
  </div>
17941
- ` : nothing22}
17992
+ ` : nothing23}
17942
17993
  </div>
17943
17994
  ${this._renderCardSections(item)}
17944
17995
  </cs-container>
@@ -17968,7 +18019,7 @@ var CsCardsInternal = class extends CsBaseElement {
17968
18019
  ${showLoading ? html48`
17969
18020
  <div class="loading" role="status">
17970
18021
  <cs-spinner size="large"></cs-spinner>
17971
- ${this.loadingText ? html48`<span>${this.loadingText}</span>` : nothing22}
18022
+ ${this.loadingText ? html48`<span>${this.loadingText}</span>` : nothing23}
17972
18023
  </div>
17973
18024
  ` : showEmpty ? html48`
17974
18025
  <div class="empty">
@@ -18030,7 +18081,7 @@ var CsCards = class extends CsCardsInternal {
18030
18081
  customElements.define("cs-cards", CsCards);
18031
18082
 
18032
18083
  // src/collection-preferences/internal.ts
18033
- import { css as css108, html as html49, nothing as nothing23 } from "lit";
18084
+ import { css as css108, html as html49, nothing as nothing24 } from "lit";
18034
18085
  import { property as property48, state as state16 } from "lit/decorators.js";
18035
18086
 
18036
18087
  // src/collection-preferences/styles.ts
@@ -18279,11 +18330,11 @@ var CsCollectionPreferencesInternal = class extends CsBaseElement {
18279
18330
  this._draft = { ...this._draft, visibleContent: current };
18280
18331
  }
18281
18332
  _renderPageSizePreference() {
18282
- if (!this.pageSizePreference) return nothing23;
18333
+ if (!this.pageSizePreference) return nothing24;
18283
18334
  const pref = this.pageSizePreference;
18284
18335
  return html49`
18285
18336
  <div class="panel-section">
18286
- ${pref.title ? html49`<div class="panel-section-title">${pref.title}</div>` : nothing23}
18337
+ ${pref.title ? html49`<div class="panel-section-title">${pref.title}</div>` : nothing24}
18287
18338
  <div class="page-size-options" role="radiogroup" aria-label=${pref.title ?? "Page size"}>
18288
18339
  ${pref.options.map((opt) => html49`
18289
18340
  <label class="page-size-option">
@@ -18298,7 +18349,7 @@ var CsCollectionPreferencesInternal = class extends CsBaseElement {
18298
18349
  `;
18299
18350
  }
18300
18351
  _renderWrapLinesPreference() {
18301
- if (!this.wrapLinesPreference) return nothing23;
18352
+ if (!this.wrapLinesPreference) return nothing24;
18302
18353
  const pref = this.wrapLinesPreference;
18303
18354
  return html49`
18304
18355
  <div class="panel-section">
@@ -18306,12 +18357,12 @@ var CsCollectionPreferencesInternal = class extends CsBaseElement {
18306
18357
  .checked=${this._draft.wrapLines ?? false}
18307
18358
  @change=${(e) => this._onWrapLinesChange(e.detail.checked)}
18308
18359
  >${pref.label ?? "Wrap lines"}</cs-checkbox>
18309
- ${pref.description ? html49`<div class="content-display-description">${pref.description}</div>` : nothing23}
18360
+ ${pref.description ? html49`<div class="content-display-description">${pref.description}</div>` : nothing24}
18310
18361
  </div>
18311
18362
  `;
18312
18363
  }
18313
18364
  _renderStripedRowsPreference() {
18314
- if (!this.stripedRowsPreference) return nothing23;
18365
+ if (!this.stripedRowsPreference) return nothing24;
18315
18366
  const pref = this.stripedRowsPreference;
18316
18367
  return html49`
18317
18368
  <div class="panel-section">
@@ -18319,12 +18370,12 @@ var CsCollectionPreferencesInternal = class extends CsBaseElement {
18319
18370
  .checked=${this._draft.stripedRows ?? false}
18320
18371
  @change=${(e) => this._onStripedRowsChange(e.detail.checked)}
18321
18372
  >${pref.label ?? "Striped rows"}</cs-checkbox>
18322
- ${pref.description ? html49`<div class="content-display-description">${pref.description}</div>` : nothing23}
18373
+ ${pref.description ? html49`<div class="content-display-description">${pref.description}</div>` : nothing24}
18323
18374
  </div>
18324
18375
  `;
18325
18376
  }
18326
18377
  _renderContentDensityPreference() {
18327
- if (!this.contentDensityPreference) return nothing23;
18378
+ if (!this.contentDensityPreference) return nothing24;
18328
18379
  const pref = this.contentDensityPreference;
18329
18380
  return html49`
18330
18381
  <div class="panel-section">
@@ -18332,17 +18383,17 @@ var CsCollectionPreferencesInternal = class extends CsBaseElement {
18332
18383
  .checked=${this._draft.contentDensity === "compact"}
18333
18384
  @change=${(e) => this._onContentDensityChange(e.detail.checked)}
18334
18385
  >${pref.label ?? "Compact mode"}</cs-checkbox>
18335
- ${pref.description ? html49`<div class="content-display-description">${pref.description}</div>` : nothing23}
18386
+ ${pref.description ? html49`<div class="content-display-description">${pref.description}</div>` : nothing24}
18336
18387
  </div>
18337
18388
  `;
18338
18389
  }
18339
18390
  _renderVisibleContentPreference() {
18340
- if (!this.visibleContentPreference) return nothing23;
18391
+ if (!this.visibleContentPreference) return nothing24;
18341
18392
  const pref = this.visibleContentPreference;
18342
18393
  const visibleIds = this._draft.visibleContent ?? [];
18343
18394
  return html49`
18344
18395
  <div class="panel-section">
18345
- ${pref.title ? html49`<div class="panel-section-title">${pref.title}</div>` : nothing23}
18396
+ ${pref.title ? html49`<div class="panel-section-title">${pref.title}</div>` : nothing24}
18346
18397
  ${pref.options.map((group) => html49`
18347
18398
  <div class="visible-content-group">
18348
18399
  <div class="visible-content-group-label">${group.label}</div>
@@ -18386,7 +18437,7 @@ var CsCollectionPreferencesInternal = class extends CsBaseElement {
18386
18437
  <cs-button variant="primary" @click=${this._confirm}>${this.confirmLabel}</cs-button>
18387
18438
  </div>
18388
18439
  </div>
18389
- ` : nothing23}
18440
+ ` : nothing24}
18390
18441
  </div>
18391
18442
  `;
18392
18443
  }
@@ -18434,7 +18485,7 @@ var CsCollectionPreferences = class extends CsCollectionPreferencesInternal {
18434
18485
  customElements.define("cs-collection-preferences", CsCollectionPreferences);
18435
18486
 
18436
18487
  // src/progress-bar/internal.ts
18437
- import { css as css110, html as html50, nothing as nothing24 } from "lit";
18488
+ import { css as css110, html as html50, nothing as nothing25 } from "lit";
18438
18489
  import { property as property49 } from "lit/decorators.js";
18439
18490
  import { classMap as classMap43 } from "lit/directives/class-map.js";
18440
18491
 
@@ -18687,7 +18738,7 @@ var CsProgressBarInternal = class extends CsBaseElement {
18687
18738
  @click=${this._onResultButtonClick}
18688
18739
  >${this.resultButtonText}</button>
18689
18740
  </span>
18690
- ` : nothing24}
18741
+ ` : nothing25}
18691
18742
  </div>
18692
18743
  `}
18693
18744
 
@@ -18726,7 +18777,7 @@ var CsProgressBar = class extends CsProgressBarInternal {
18726
18777
  customElements.define("cs-progress-bar", CsProgressBar);
18727
18778
 
18728
18779
  // src/steps/internal.ts
18729
- import { css as css112, html as html51, nothing as nothing25 } from "lit";
18780
+ import { css as css112, html as html51, nothing as nothing26 } from "lit";
18730
18781
  import { property as property50 } from "lit/decorators.js";
18731
18782
  import { classMap as classMap44 } from "lit/directives/class-map.js";
18732
18783
 
@@ -18882,10 +18933,10 @@ var CsStepsInternal = class extends CsBaseElement {
18882
18933
  </span>
18883
18934
  <span class="title">${step.header}</span>
18884
18935
  </div>
18885
- ${!isLast ? html51`<hr class="connector" aria-hidden="true" />` : nothing25}
18936
+ ${!isLast ? html51`<hr class="connector" aria-hidden="true" />` : nothing26}
18886
18937
  ${step.details ? html51`
18887
18938
  <div class="details">${step.details}</div>
18888
- ` : nothing25}
18939
+ ` : nothing26}
18889
18940
  </li>
18890
18941
  `;
18891
18942
  }
@@ -18901,14 +18952,14 @@ var CsStepsInternal = class extends CsBaseElement {
18901
18952
  >
18902
18953
  ${this._renderIcon(step)}
18903
18954
  </span>
18904
- ${!isLast ? html51`<hr class="connector" aria-hidden="true" />` : nothing25}
18955
+ ${!isLast ? html51`<hr class="connector" aria-hidden="true" />` : nothing26}
18905
18956
  </div>
18906
18957
  <div class="horizontal-header">
18907
18958
  <span class="title">${step.header}</span>
18908
18959
  </div>
18909
18960
  ${step.details ? html51`
18910
18961
  <div class="details">${step.details}</div>
18911
- ` : nothing25}
18962
+ ` : nothing26}
18912
18963
  </li>
18913
18964
  `;
18914
18965
  }
@@ -18956,7 +19007,7 @@ var CsSteps = class extends CsStepsInternal {
18956
19007
  customElements.define("cs-steps", CsSteps);
18957
19008
 
18958
19009
  // src/key-value-pairs/internal.ts
18959
- import { css as css114, html as html52, nothing as nothing26 } from "lit";
19010
+ import { css as css114, html as html52, nothing as nothing27 } from "lit";
18960
19011
  import { property as property51 } from "lit/decorators.js";
18961
19012
 
18962
19013
  // src/key-value-pairs/styles.ts
@@ -19052,7 +19103,7 @@ var CsKeyValuePairsInternal = class extends CsBaseElement {
19052
19103
  <div class="pair">
19053
19104
  <dt class="term">
19054
19105
  <span class="key-label">${pair.label}</span>
19055
- ${pair.info ? html52`<span class="info">${pair.info}</span>` : nothing26}
19106
+ ${pair.info ? html52`<span class="info">${pair.info}</span>` : nothing27}
19056
19107
  </dt>
19057
19108
  <dd class="detail">${pair.value}</dd>
19058
19109
  </div>
@@ -19061,7 +19112,7 @@ var CsKeyValuePairsInternal = class extends CsBaseElement {
19061
19112
  _renderGroup(group) {
19062
19113
  return html52`
19063
19114
  <div class="group">
19064
- ${group.title ? html52`<div class="group-title"><strong>${group.title}</strong></div>` : nothing26}
19115
+ ${group.title ? html52`<div class="group-title"><strong>${group.title}</strong></div>` : nothing27}
19065
19116
  <dl class="group-list">
19066
19117
  ${group.items.map((pair) => this._renderPair(pair))}
19067
19118
  </dl>
@@ -19117,7 +19168,7 @@ var CsKeyValuePairs = class extends CsKeyValuePairsInternal {
19117
19168
  customElements.define("cs-key-value-pairs", CsKeyValuePairs);
19118
19169
 
19119
19170
  // src/property-filter/internal.ts
19120
- import { css as css116, html as html53, nothing as nothing27 } from "lit";
19171
+ import { css as css116, html as html53, nothing as nothing28 } from "lit";
19121
19172
  import { property as property52, state as state17 } from "lit/decorators.js";
19122
19173
  import { createRef as createRef6, ref as ref6 } from "lit/directives/ref.js";
19123
19174
 
@@ -19386,7 +19437,14 @@ var CsPropertyFilterInternal = class extends CsBaseElement {
19386
19437
  this.filteringOptions = [];
19387
19438
  this.disabled = false;
19388
19439
  this.filteringPlaceholder = "Filter by text";
19440
+ this.filteringConstraintText = "";
19389
19441
  this._inputValue = "";
19442
+ this._hasCustomControl = false;
19443
+ this._onCustomControlSlotChange = (e) => {
19444
+ const slot = e.target;
19445
+ this._hasCustomControl = slot.assignedNodes({ flatten: true }).length > 0;
19446
+ this.requestUpdate();
19447
+ };
19390
19448
  this._inputRef = createRef6();
19391
19449
  }
19392
19450
  static {
@@ -19444,6 +19502,7 @@ var CsPropertyFilterInternal = class extends CsBaseElement {
19444
19502
  return html53`
19445
19503
  <div class="root">
19446
19504
  <div class="search-field">
19505
+ ${this._hasCustomControl ? html53`<div class="custom-control"><slot name="custom-control" @slotchange=${this._onCustomControlSlotChange}></slot></div>` : html53`<slot name="custom-control" @slotchange=${this._onCustomControlSlotChange} style="display:none"></slot>`}
19447
19506
  <div class="input-wrapper">
19448
19507
  <input
19449
19508
  ${ref6(this._inputRef)}
@@ -19459,20 +19518,24 @@ var CsPropertyFilterInternal = class extends CsBaseElement {
19459
19518
  </div>
19460
19519
  </div>
19461
19520
 
19521
+ ${this.filteringConstraintText ? html53`
19522
+ <div class="filtering-constraint-text">${this.filteringConstraintText}</div>
19523
+ ` : nothing28}
19524
+
19462
19525
  ${hasTokens ? html53`
19463
19526
  <div class="tokens">
19464
19527
  <ul class="token-list" role="list">
19465
19528
  ${this.query.tokens.map((token, i) => html53`
19466
- ${i > 0 ? html53`<li class="operation-label" aria-hidden="true">${operationLabel}</li>` : nothing27}
19529
+ ${i > 0 ? html53`<li class="operation-label" aria-hidden="true">${operationLabel}</li>` : nothing28}
19467
19530
  ${this._renderToken(token, i)}
19468
19531
  `)}
19469
19532
  </ul>
19470
19533
  </div>
19471
- ` : nothing27}
19534
+ ` : nothing28}
19472
19535
 
19473
19536
  ${this.countText && hasTokens ? html53`
19474
19537
  <div class="results">${this.countText}</div>
19475
- ` : nothing27}
19538
+ ` : nothing28}
19476
19539
  </div>
19477
19540
  `;
19478
19541
  }
@@ -19495,6 +19558,9 @@ __decorateClass([
19495
19558
  __decorateClass([
19496
19559
  property52({ type: String })
19497
19560
  ], CsPropertyFilterInternal.prototype, "countText", 2);
19561
+ __decorateClass([
19562
+ property52({ type: String })
19563
+ ], CsPropertyFilterInternal.prototype, "filteringConstraintText", 2);
19498
19564
  __decorateClass([
19499
19565
  state17()
19500
19566
  ], CsPropertyFilterInternal.prototype, "_inputValue", 2);
@@ -19505,7 +19571,7 @@ var CsPropertyFilter = class extends CsPropertyFilterInternal {
19505
19571
  customElements.define("cs-property-filter", CsPropertyFilter);
19506
19572
 
19507
19573
  // src/table/internal.ts
19508
- import { css as css118, html as html54, nothing as nothing28 } from "lit";
19574
+ import { css as css118, html as html54, nothing as nothing29 } from "lit";
19509
19575
  import { property as property53 } from "lit/decorators.js";
19510
19576
  import { classMap as classMap45 } from "lit/directives/class-map.js";
19511
19577
 
@@ -19853,9 +19919,11 @@ var CsTableInternal = class extends CsBaseElement {
19853
19919
  this.wrapLines = false;
19854
19920
  this.stickyHeader = false;
19855
19921
  this.contentDensity = "comfortable";
19922
+ this.resizableColumns = false;
19856
19923
  this._hasHeader = false;
19857
19924
  this._hasFilter = false;
19858
19925
  this._hasPagination = false;
19926
+ this._hasFooter = false;
19859
19927
  this._onHeaderSlotChange = (e) => {
19860
19928
  const slot = e.target;
19861
19929
  this._hasHeader = slot.assignedNodes({ flatten: true }).length > 0;
@@ -19871,6 +19939,11 @@ var CsTableInternal = class extends CsBaseElement {
19871
19939
  this._hasPagination = slot.assignedNodes({ flatten: true }).length > 0;
19872
19940
  this.requestUpdate();
19873
19941
  };
19942
+ this._onFooterSlotChange = (e) => {
19943
+ const slot = e.target;
19944
+ this._hasFooter = slot.assignedNodes({ flatten: true }).length > 0;
19945
+ this.requestUpdate();
19946
+ };
19874
19947
  /** Stops selection-cell clicks from triggering the row click handler. */
19875
19948
  this._onSelectionCellClick = (e) => {
19876
19949
  e.stopPropagation();
@@ -19915,7 +19988,7 @@ var CsTableInternal = class extends CsBaseElement {
19915
19988
  }
19916
19989
  _getAriaSort(col) {
19917
19990
  const isSortable = !!(col.sortingField || col.sortingComparator);
19918
- if (!isSortable) return nothing28;
19991
+ if (!isSortable) return nothing29;
19919
19992
  if (!this.sortingColumn) return "none";
19920
19993
  if (!this._isSameColumn(col, this.sortingColumn)) return "none";
19921
19994
  return this.sortingDescending ? "descending" : "ascending";
@@ -19967,7 +20040,7 @@ var CsTableInternal = class extends CsBaseElement {
19967
20040
  };
19968
20041
  return html54`
19969
20042
  <div class=${classMap45(rootClasses)}>
19970
- <div class=${classMap45(headerSecondaryClasses)} style=${this._hasHeader || this._hasTools ? nothing28 : "display:none"}>
20043
+ <div class=${classMap45(headerSecondaryClasses)} style=${this._hasHeader || this._hasTools ? nothing29 : "display:none"}>
19971
20044
  <div class=${classMap45(headerControlsClasses)}>
19972
20045
  <slot name="header" @slotchange=${this._onHeaderSlotChange}></slot>
19973
20046
  ${this._hasTools ? html54`
@@ -19988,6 +20061,7 @@ var CsTableInternal = class extends CsBaseElement {
19988
20061
  </div>
19989
20062
  </div>
19990
20063
  ${this.loading ? this._renderLoading() : this.items.length === 0 ? this._renderEmpty() : this._renderTable()}
20064
+ ${this._hasFooter ? html54`<div class="footer"><slot name="footer" @slotchange=${this._onFooterSlotChange}></slot></div>` : html54`<slot name="footer" @slotchange=${this._onFooterSlotChange} style="display:none"></slot>`}
19991
20065
  </div>
19992
20066
  `;
19993
20067
  }
@@ -19995,7 +20069,7 @@ var CsTableInternal = class extends CsBaseElement {
19995
20069
  return html54`
19996
20070
  <div class="table-loading" role="status">
19997
20071
  <cs-spinner size="normal"></cs-spinner>
19998
- ${this.loadingText ? html54`<span>${this.loadingText}</span>` : nothing28}
20072
+ ${this.loadingText ? html54`<span>${this.loadingText}</span>` : nothing29}
19999
20073
  </div>
20000
20074
  `;
20001
20075
  }
@@ -20016,7 +20090,7 @@ var CsTableInternal = class extends CsBaseElement {
20016
20090
  <table class="table" role="table">
20017
20091
  <thead>
20018
20092
  <tr>
20019
- ${this._hasSelection ? this._renderSelectionHeader() : nothing28}
20093
+ ${this._hasSelection ? this._renderSelectionHeader() : nothing29}
20020
20094
  ${this.columnDefinitions.map((col) => this._renderHeaderCell(col))}
20021
20095
  </tr>
20022
20096
  </thead>
@@ -20062,11 +20136,11 @@ var CsTableInternal = class extends CsBaseElement {
20062
20136
  <th
20063
20137
  class=${classMap45(cellClasses)}
20064
20138
  aria-sort=${ariaSort}
20065
- style=${widthStyle ?? nothing28}
20139
+ style=${widthStyle ?? nothing29}
20066
20140
  @click=${() => this._onSort(col)}
20067
20141
  >
20068
20142
  <span class="header-cell-text">${col.header}</span>
20069
- ${isSortable ? html54`<span class=${classMap45(iconClasses)}><cs-icon name="caret-down-filled" size="small"></cs-icon></span>` : nothing28}
20143
+ ${isSortable ? html54`<span class=${classMap45(iconClasses)}><cs-icon name="caret-down-filled" size="small"></cs-icon></span>` : nothing29}
20070
20144
  </th>
20071
20145
  `;
20072
20146
  }
@@ -20079,7 +20153,7 @@ var CsTableInternal = class extends CsBaseElement {
20079
20153
  };
20080
20154
  return html54`
20081
20155
  <tr class=${classMap45(rowClasses)} @click=${() => this._onRowClick(item, index)}>
20082
- ${this._hasSelection ? this._renderSelectionCell(item) : nothing28}
20156
+ ${this._hasSelection ? this._renderSelectionCell(item) : nothing29}
20083
20157
  ${this.columnDefinitions.map((col) => this._renderBodyCell(item, col, index))}
20084
20158
  </tr>
20085
20159
  `;
@@ -20116,7 +20190,7 @@ var CsTableInternal = class extends CsBaseElement {
20116
20190
  };
20117
20191
  const widthStyle = col.width ? `width: ${typeof col.width === "number" ? `${col.width}px` : col.width}` : void 0;
20118
20192
  return html54`
20119
- <td class=${classMap45(cellClasses)} style=${widthStyle ?? nothing28}>
20193
+ <td class=${classMap45(cellClasses)} style=${widthStyle ?? nothing29}>
20120
20194
  <span class="body-cell-content">${col.cell(item)}</span>
20121
20195
  </td>
20122
20196
  `;
@@ -20167,6 +20241,9 @@ __decorateClass([
20167
20241
  __decorateClass([
20168
20242
  property53({ type: String })
20169
20243
  ], CsTableInternal.prototype, "contentDensity", 2);
20244
+ __decorateClass([
20245
+ property53({ type: Boolean, reflect: true })
20246
+ ], CsTableInternal.prototype, "resizableColumns", 2);
20170
20247
  __decorateClass([
20171
20248
  property53({ attribute: false })
20172
20249
  ], CsTableInternal.prototype, "ariaLabels", 2);
@@ -20177,7 +20254,7 @@ var CsTable = class extends CsTableInternal {
20177
20254
  customElements.define("cs-table", CsTable);
20178
20255
 
20179
20256
  // src/form/internal.ts
20180
- import { css as css120, html as html55, nothing as nothing29 } from "lit";
20257
+ import { css as css120, html as html55, nothing as nothing30 } from "lit";
20181
20258
  import { property as property54 } from "lit/decorators.js";
20182
20259
 
20183
20260
  // src/form/styles.ts
@@ -20261,7 +20338,7 @@ var CsFormInternal = class extends CsBaseElement {
20261
20338
  type="error"
20262
20339
  status-icon-aria-label=${this.errorIconAriaLabel || "Error"}
20263
20340
  >${this.errorText}</cs-alert>
20264
- ` : nothing29}
20341
+ ` : nothing30}
20265
20342
  <slot></slot>
20266
20343
  </div>
20267
20344
 
@@ -20703,7 +20780,7 @@ var CsModal = class extends CsModalInternal {
20703
20780
  customElements.define("cs-modal", CsModal);
20704
20781
 
20705
20782
  // src/file-upload/internal.ts
20706
- import { css as css124, html as html57, nothing as nothing30 } from "lit";
20783
+ import { css as css124, html as html57, nothing as nothing31 } from "lit";
20707
20784
  import { property as property56 } from "lit/decorators.js";
20708
20785
  import { classMap as classMap47 } from "lit/directives/class-map.js";
20709
20786
  import { ifDefined as ifDefined29 } from "lit/directives/if-defined.js";
@@ -20901,15 +20978,15 @@ var CsFileUploadInternal = class extends CsBaseElement {
20901
20978
  };
20902
20979
  return html57`
20903
20980
  <li class=${classMap47(itemClasses)}>
20904
- ${this.showFileThumbnail && isImage ? html57`<img class="file-thumbnail" src=${this._getThumbnailUrl(file)} alt="" />` : nothing30}
20981
+ ${this.showFileThumbnail && isImage ? html57`<img class="file-thumbnail" src=${this._getThumbnailUrl(file)} alt="" />` : nothing31}
20905
20982
  <div class="file-info">
20906
20983
  <div class="file-name">${file.name}</div>
20907
20984
  <div class="file-metadata">
20908
- ${this.showFileSize ? html57`<span>${this._formatFileSize(file.size)}</span>` : nothing30}
20909
- ${this.showFileSize && this.showFileLastModified ? html57`<span> · </span>` : nothing30}
20910
- ${this.showFileLastModified ? html57`<span>${this._formatLastModified(new Date(file.lastModified))}</span>` : nothing30}
20985
+ ${this.showFileSize ? html57`<span>${this._formatFileSize(file.size)}</span>` : nothing31}
20986
+ ${this.showFileSize && this.showFileLastModified ? html57`<span> · </span>` : nothing31}
20987
+ ${this.showFileLastModified ? html57`<span>${this._formatLastModified(new Date(file.lastModified))}</span>` : nothing31}
20911
20988
  </div>
20912
- ${error ? html57`<div class="file-error">${error}</div>` : nothing30}
20989
+ ${error ? html57`<div class="file-error">${error}</div>` : nothing31}
20913
20990
  </div>
20914
20991
  <button
20915
20992
  class="dismiss-button"
@@ -20931,7 +21008,7 @@ var CsFileUploadInternal = class extends CsBaseElement {
20931
21008
  };
20932
21009
  return html57`
20933
21010
  <div class="file-upload-root">
20934
- ${this.label ? html57`<label class="label">${this.label}</label>` : nothing30}
21011
+ ${this.label ? html57`<label class="label">${this.label}</label>` : nothing31}
20935
21012
 
20936
21013
  <cs-file-input
20937
21014
  variant="button"
@@ -20943,15 +21020,15 @@ var CsFileUploadInternal = class extends CsBaseElement {
20943
21020
  @change=${this._onFileInputChange}
20944
21021
  >${uploadButtonText}</cs-file-input>
20945
21022
 
20946
- ${this.constraintText ? html57`<div class="constraint-text hints">${this.constraintText}</div>` : nothing30}
21023
+ ${this.constraintText ? html57`<div class="constraint-text hints">${this.constraintText}</div>` : nothing31}
20947
21024
 
20948
- ${this.errorText ? html57`<div class="error-text">${this.errorText}</div>` : nothing30}
21025
+ ${this.errorText ? html57`<div class="error-text">${this.errorText}</div>` : nothing31}
20949
21026
 
20950
21027
  ${hasFiles ? html57`
20951
21028
  <ul class=${classMap47(listClasses)} role="list">
20952
21029
  ${this.value.map((file, i) => this._renderFileItem(file, i))}
20953
21030
  </ul>
20954
- ` : nothing30}
21031
+ ` : nothing31}
20955
21032
  </div>
20956
21033
  `;
20957
21034
  }
@@ -21008,7 +21085,7 @@ var CsFileUpload = class extends CsFileUploadInternal {
21008
21085
  customElements.define("cs-file-upload", CsFileUpload);
21009
21086
 
21010
21087
  // src/calendar/internal.ts
21011
- import { css as css126, html as html58, nothing as nothing31 } from "lit";
21088
+ import { css as css126, html as html58, nothing as nothing32 } from "lit";
21012
21089
  import { property as property57, state as state18 } from "lit/decorators.js";
21013
21090
  import { classMap as classMap48 } from "lit/directives/class-map.js";
21014
21091
  import { ifDefined as ifDefined30 } from "lit/directives/if-defined.js";
@@ -21504,7 +21581,7 @@ var CsCalendarInternal = class extends CsBaseElement {
21504
21581
  role="gridcell"
21505
21582
  tabindex=${this._getTabIndex(day)}
21506
21583
  aria-selected=${isSelected ? "true" : "false"}
21507
- aria-disabled=${!isEnabled ? "true" : nothing31}
21584
+ aria-disabled=${!isEnabled ? "true" : nothing32}
21508
21585
  data-date=${day.date}
21509
21586
  @click=${() => this._onDateClick(day.date)}
21510
21587
  >
@@ -21708,7 +21785,7 @@ var CsDateInput = class extends CsDateInputInternal {
21708
21785
  customElements.define("cs-date-input", CsDateInput);
21709
21786
 
21710
21787
  // src/date-picker/internal.ts
21711
- import { css as css130, html as html60, nothing as nothing32 } from "lit";
21788
+ import { css as css130, html as html60, nothing as nothing33 } from "lit";
21712
21789
  import { property as property59, state as state19, query as query6 } from "lit/decorators.js";
21713
21790
  import { ifDefined as ifDefined32 } from "lit/directives/if-defined.js";
21714
21791
  import { consume as consume3 } from "@lit/context";
@@ -21947,7 +22024,7 @@ var CsDatePickerInternal = class extends Base10 {
21947
22024
  ></cs-calendar>
21948
22025
  </div>
21949
22026
  </div>
21950
- ` : nothing32}
22027
+ ` : nothing33}
21951
22028
  </div>
21952
22029
  </div>
21953
22030
  `;
@@ -22014,7 +22091,7 @@ var CsDatePicker = class extends CsDatePickerInternal {
22014
22091
  customElements.define("cs-date-picker", CsDatePicker);
22015
22092
 
22016
22093
  // src/date-range-picker/internal.ts
22017
- import { css as css133, html as html61, nothing as nothing33 } from "lit";
22094
+ import { css as css133, html as html61, nothing as nothing34 } from "lit";
22018
22095
  import { property as property60, state as state20, query as query7 } from "lit/decorators.js";
22019
22096
  import { classMap as classMap50 } from "lit/directives/class-map.js";
22020
22097
  import { ifDefined as ifDefined33 } from "lit/directives/if-defined.js";
@@ -22627,7 +22704,7 @@ var CsDateRangePickerInternal = class extends Base11 {
22627
22704
  }
22628
22705
  // ── Render ──────────────────────────────────────────────────────────
22629
22706
  _renderModeSwitch() {
22630
- if (!this._showModeSwitch) return nothing33;
22707
+ if (!this._showModeSwitch) return nothing34;
22631
22708
  const absLabel = this.i18nStrings?.absoluteModeTitle ?? "Absolute";
22632
22709
  const relLabel = this.i18nStrings?.relativeModeTitle ?? "Relative";
22633
22710
  return html61`
@@ -22715,7 +22792,7 @@ var CsDateRangePickerInternal = class extends Base11 {
22715
22792
  <cs-icon name="status-negative" size="small"></cs-icon>
22716
22793
  <span>${this._errorMessage}</span>
22717
22794
  </div>
22718
- ` : nothing33}
22795
+ ` : nothing34}
22719
22796
  <div class="footer-button-wrapper">
22720
22797
  <cs-button variant="link" @click=${this._onCancel}>${cancelLabel}</cs-button>
22721
22798
  </div>
@@ -22775,7 +22852,7 @@ var CsDateRangePickerInternal = class extends Base11 {
22775
22852
  </div>
22776
22853
  ${this._renderFooter()}
22777
22854
  </div>
22778
- ` : nothing33}
22855
+ ` : nothing34}
22779
22856
  </div>
22780
22857
  `;
22781
22858
  }
@@ -22856,7 +22933,7 @@ var CsDateRangePicker = class extends CsDateRangePickerInternal {
22856
22933
  customElements.define("cs-date-range-picker", CsDateRangePicker);
22857
22934
 
22858
22935
  // src/attribute-editor/internal.ts
22859
- import { css as css136, html as html63, nothing as nothing35 } from "lit";
22936
+ import { css as css136, html as html63, nothing as nothing36 } from "lit";
22860
22937
  import { property as property62 } from "lit/decorators.js";
22861
22938
 
22862
22939
  // src/attribute-editor/styles.ts
@@ -22984,7 +23061,7 @@ var componentStyles60 = css134`
22984
23061
  `;
22985
23062
 
22986
23063
  // src/input/internal.ts
22987
- import { css as css135, html as html62, nothing as nothing34 } from "lit";
23064
+ import { css as css135, html as html62, nothing as nothing35 } from "lit";
22988
23065
  import { property as property61 } from "lit/decorators.js";
22989
23066
  import { classMap as classMap51 } from "lit/directives/class-map.js";
22990
23067
  import { ifDefined as ifDefined34 } from "lit/directives/if-defined.js";
@@ -23131,7 +23208,7 @@ var CsInputInternal = class extends Base12 {
23131
23208
  <cs-icon name="close" size="small"></cs-icon>
23132
23209
  </button>
23133
23210
  </span>
23134
- ` : nothing34}
23211
+ ` : nothing35}
23135
23212
  </div>
23136
23213
  </div>
23137
23214
  `;
@@ -23246,7 +23323,7 @@ var CsAttributeEditorInternal = class extends CsBaseElement {
23246
23323
  @click=${this._handleRemoveClick(itemIndex)}
23247
23324
  >${this.removeButtonText}</cs-button>
23248
23325
  </div>
23249
- ` : nothing35}
23326
+ ` : nothing36}
23250
23327
  </div>
23251
23328
  `;
23252
23329
  }
@@ -23256,9 +23333,9 @@ var CsAttributeEditorInternal = class extends CsBaseElement {
23256
23333
  const gridCols = cols > 0 ? `repeat(${cols}, 1fr) auto` : "1fr";
23257
23334
  return html63`
23258
23335
  <div class="root" style="grid-template-columns: ${gridCols}">
23259
- ${!hasItems && this.empty ? html63`<div class="empty empty-appear">${this.empty}</div>` : nothing35}
23336
+ ${!hasItems && this.empty ? html63`<div class="empty empty-appear">${this.empty}</div>` : nothing36}
23260
23337
  ${this.items.map((item, idx) => html63`
23261
- ${idx > 0 ? html63`<div class="divider"></div>` : nothing35}
23338
+ ${idx > 0 ? html63`<div class="divider"></div>` : nothing36}
23262
23339
  ${this._renderRow(item, idx)}
23263
23340
  `)}
23264
23341
  <div class="add-row">
@@ -23301,7 +23378,7 @@ var CsAttributeEditor = class extends CsAttributeEditorInternal {
23301
23378
  customElements.define("cs-attribute-editor", CsAttributeEditor);
23302
23379
 
23303
23380
  // src/tag-editor/internal.ts
23304
- import { css as css138, html as html64, nothing as nothing36 } from "lit";
23381
+ import { css as css138, html as html64, nothing as nothing37 } from "lit";
23305
23382
  import { property as property63 } from "lit/decorators.js";
23306
23383
  import { classMap as classMap52 } from "lit/directives/class-map.js";
23307
23384
 
@@ -23504,9 +23581,9 @@ var CsTagEditorInternal = class extends CsBaseElement {
23504
23581
  const limitReached = this.tagLimit != null && this.tags.length >= this.tagLimit;
23505
23582
  return html64`
23506
23583
  <div class="root">
23507
- ${this.loading ? html64`<div class="loading">Loading...</div>` : nothing36}
23584
+ ${this.loading ? html64`<div class="loading">Loading...</div>` : nothing37}
23508
23585
  <div class="tag-list">
23509
- ${this.tags.length === 0 && !this.loading ? html64`<div>${this.i18nStrings?.emptyTags ?? "No tags"}</div>` : nothing36}
23586
+ ${this.tags.length === 0 && !this.loading ? html64`<div>${this.i18nStrings?.emptyTags ?? "No tags"}</div>` : nothing37}
23510
23587
  ${this.tags.map((tag, idx) => this._renderTagRow(tag, idx))}
23511
23588
  </div>
23512
23589
  <div class="add-section">
@@ -23564,7 +23641,7 @@ var CsTagEditor = class extends CsTagEditorInternal {
23564
23641
  customElements.define("cs-tag-editor", CsTagEditor);
23565
23642
 
23566
23643
  // src/wizard/internal.ts
23567
- import { css as css140, html as html65, nothing as nothing37 } from "lit";
23644
+ import { css as css140, html as html65, nothing as nothing38 } from "lit";
23568
23645
  import { property as property64 } from "lit/decorators.js";
23569
23646
  import { classMap as classMap53 } from "lit/directives/class-map.js";
23570
23647
 
@@ -23941,15 +24018,15 @@ var CsWizardInternal = class extends CsBaseElement {
23941
24018
  class="navigation-link"
23942
24019
  role=${isEnabled ? "button" : "text"}
23943
24020
  tabindex=${isEnabled ? "0" : "-1"}
23944
- aria-current=${isActive ? "step" : nothing37}
23945
- aria-disabled=${isDisabled ? "true" : nothing37}
23946
- @click=${isEnabled ? () => this._onStepClick(i) : nothing37}
24021
+ aria-current=${isActive ? "step" : nothing38}
24022
+ aria-disabled=${isDisabled ? "true" : nothing38}
24023
+ @click=${isEnabled ? () => this._onStepClick(i) : nothing38}
23947
24024
  @keydown=${isEnabled ? (e) => {
23948
24025
  if (e.key === "Enter" || e.key === " ") {
23949
24026
  e.preventDefault();
23950
24027
  this._onStepClick(i);
23951
24028
  }
23952
- } : nothing37}
24029
+ } : nothing38}
23953
24030
  >
23954
24031
  <span class="circle"></span>
23955
24032
  <span class="title">${step.title}${optionalLabel}</span>
@@ -23972,7 +24049,7 @@ var CsWizardInternal = class extends CsBaseElement {
23972
24049
  ${this._stepNumberLabel(this._clampedIndex + 1)}
23973
24050
  <span>${step.title}${optionalLabel}</span>
23974
24051
  </h2>
23975
- ${step.description ? html65`<p>${step.description}</p>` : nothing37}
24052
+ ${step.description ? html65`<p>${step.description}</p>` : nothing38}
23976
24053
  </div>
23977
24054
  </div>
23978
24055
  `;
@@ -23986,7 +24063,7 @@ var CsWizardInternal = class extends CsBaseElement {
23986
24063
  <cs-alert type="error" aria-label=${this.i18nStrings?.errorIconAriaLabel ?? "Error"}>
23987
24064
  ${step.errorText}
23988
24065
  </cs-alert>
23989
- ` : nothing37}
24066
+ ` : nothing38}
23990
24067
  <div class="step-content">${step.content}</div>
23991
24068
  </div>
23992
24069
  `;
@@ -24007,7 +24084,7 @@ var CsWizardInternal = class extends CsBaseElement {
24007
24084
  variant="normal"
24008
24085
  @click=${() => this._onPrevious()}
24009
24086
  >${this._previousText}</cs-button>
24010
- ` : nothing37}
24087
+ ` : nothing38}
24011
24088
  <cs-button
24012
24089
  variant="primary"
24013
24090
  ?loading=${this.isLoadingNextStep}
@@ -24882,7 +24959,7 @@ var CsCodeEditor = class extends CsCodeEditorInternal {
24882
24959
  customElements.define("cs-code-editor", CsCodeEditor);
24883
24960
 
24884
24961
  // src/top-navigation/internal.ts
24885
- import { css as css144, html as html67, nothing as nothing38 } from "lit";
24962
+ import { css as css144, html as html67, nothing as nothing39 } from "lit";
24886
24963
  import { property as property66 } from "lit/decorators.js";
24887
24964
  import { classMap as classMap55 } from "lit/directives/class-map.js";
24888
24965
  import { ifDefined as ifDefined35 } from "lit/directives/if-defined.js";
@@ -25283,7 +25360,7 @@ var CsTopNavigationInternal = class extends CsBaseElement {
25283
25360
  });
25284
25361
  }
25285
25362
  _renderIdentity() {
25286
- if (!this.identity) return nothing38;
25363
+ if (!this.identity) return nothing39;
25287
25364
  const hasLogo = !!this.identity.logo;
25288
25365
  const identityClasses = {
25289
25366
  "identity": true,
@@ -25296,8 +25373,8 @@ var CsTopNavigationInternal = class extends CsBaseElement {
25296
25373
  href=${ifDefined35(this.identity.href)}
25297
25374
  @click=${(e) => this._onIdentityClick(e)}
25298
25375
  >
25299
- ${hasLogo ? html67`<img class="logo" src=${this.identity.logo.src} alt=${ifDefined35(this.identity.logo.alt)} />` : nothing38}
25300
- ${this.identity.title ? html67`<span class="title">${this.identity.title}</span>` : nothing38}
25376
+ ${hasLogo ? html67`<img class="logo" src=${this.identity.logo.src} alt=${ifDefined35(this.identity.logo.alt)} />` : nothing39}
25377
+ ${this.identity.title ? html67`<span class="title">${this.identity.title}</span>` : nothing39}
25301
25378
  </a>
25302
25379
  </div>
25303
25380
  `;
@@ -25320,9 +25397,9 @@ var CsTopNavigationInternal = class extends CsBaseElement {
25320
25397
  aria-label=${ifDefined35(utility.ariaLabel)}
25321
25398
  @click=${(e) => this._onUtilityButtonClick(utility, e)}
25322
25399
  >
25323
- ${utility.iconName ? html67`<span class="utility-link-icon"><cs-icon name=${utility.iconName}></cs-icon></span>` : nothing38}
25324
- ${utility.text ? html67`<span>${utility.text}</span>` : nothing38}
25325
- ${utility.external ? html67`<span class="utility-button-external-icon"><cs-icon name="external" size="inherit"></cs-icon></span>` : nothing38}
25400
+ ${utility.iconName ? html67`<span class="utility-link-icon"><cs-icon name=${utility.iconName}></cs-icon></span>` : nothing39}
25401
+ ${utility.text ? html67`<span>${utility.text}</span>` : nothing39}
25402
+ ${utility.external ? html67`<span class="utility-button-external-icon"><cs-icon name="external" size="inherit"></cs-icon></span>` : nothing39}
25326
25403
  </a>
25327
25404
  </div>
25328
25405
  `;
@@ -25335,8 +25412,8 @@ var CsTopNavigationInternal = class extends CsBaseElement {
25335
25412
  aria-label=${ifDefined35(utility.ariaLabel)}
25336
25413
  @click=${(e) => this._onUtilityButtonClick(utility, e)}
25337
25414
  >
25338
- ${utility.iconName ? html67`<span class="utility-link-icon"><cs-icon name=${utility.iconName}></cs-icon></span>` : nothing38}
25339
- ${utility.text ? html67`<span>${utility.text}</span>` : nothing38}
25415
+ ${utility.iconName ? html67`<span class="utility-link-icon"><cs-icon name=${utility.iconName}></cs-icon></span>` : nothing39}
25416
+ ${utility.text ? html67`<span>${utility.text}</span>` : nothing39}
25340
25417
  </button>
25341
25418
  </div>
25342
25419
  `;
@@ -25353,7 +25430,7 @@ var CsTopNavigationInternal = class extends CsBaseElement {
25353
25430
  variant="normal"
25354
25431
  aria-label=${ifDefined35(utility.ariaLabel)}
25355
25432
  >
25356
- ${utility.iconName ? html67`<cs-icon name=${utility.iconName}></cs-icon>` : nothing38}
25433
+ ${utility.iconName ? html67`<cs-icon name=${utility.iconName}></cs-icon>` : nothing39}
25357
25434
  ${utility.text ?? ""}
25358
25435
  </cs-button-dropdown>
25359
25436
  </div>
@@ -25399,7 +25476,7 @@ var CsTopNavigation = class extends CsTopNavigationInternal {
25399
25476
  customElements.define("cs-top-navigation", CsTopNavigation);
25400
25477
 
25401
25478
  // src/side-navigation/internal.ts
25402
- import { css as css146, html as html68, nothing as nothing39 } from "lit";
25479
+ import { css as css146, html as html68, nothing as nothing40 } from "lit";
25403
25480
  import { property as property67, state as state21 } from "lit/decorators.js";
25404
25481
  import { classMap as classMap56 } from "lit/directives/class-map.js";
25405
25482
  import { ifDefined as ifDefined36 } from "lit/directives/if-defined.js";
@@ -25715,7 +25792,7 @@ var CsSideNavigationInternal = class extends CsBaseElement {
25715
25792
  });
25716
25793
  }
25717
25794
  _renderHeader() {
25718
- if (!this.header) return nothing39;
25795
+ if (!this.header) return nothing40;
25719
25796
  const hasLogo = !!this.header.logo;
25720
25797
  const headerLinkClasses = {
25721
25798
  "header-link": true,
@@ -25731,8 +25808,8 @@ var CsSideNavigationInternal = class extends CsBaseElement {
25731
25808
  e
25732
25809
  )}
25733
25810
  >
25734
- ${hasLogo ? html68`<img class="header-logo" src=${this.header.logo.src} alt=${ifDefined36(this.header.logo.alt)} />` : nothing39}
25735
- ${this.header.text ? html68`<span class="header-link-text">${this.header.text}</span>` : nothing39}
25811
+ ${hasLogo ? html68`<img class="header-logo" src=${this.header.logo.src} alt=${ifDefined36(this.header.logo.alt)} />` : nothing40}
25812
+ ${this.header.text ? html68`<span class="header-link-text">${this.header.text}</span>` : nothing40}
25736
25813
  </a>
25737
25814
  </div>
25738
25815
  <hr class="divider divider-header" />
@@ -25749,13 +25826,13 @@ var CsSideNavigationInternal = class extends CsBaseElement {
25749
25826
  <a
25750
25827
  class=${classMap56(linkClasses)}
25751
25828
  href=${item.href}
25752
- aria-current=${isActive ? "page" : nothing39}
25753
- target=${item.external ? "_blank" : nothing39}
25754
- rel=${item.external ? "noopener" : nothing39}
25829
+ aria-current=${isActive ? "page" : nothing40}
25830
+ target=${item.external ? "_blank" : nothing40}
25831
+ rel=${item.external ? "noopener" : nothing40}
25755
25832
  @click=${(e) => this._onLinkClick(item, e)}
25756
25833
  >
25757
25834
  ${item.text}
25758
- ${item.external ? html68`<span class="external-icon"><cs-icon name="external" size="inherit"></cs-icon></span>` : nothing39}
25835
+ ${item.external ? html68`<span class="external-icon"><cs-icon name="external" size="inherit"></cs-icon></span>` : nothing40}
25759
25836
  </a>
25760
25837
  </li>
25761
25838
  `;
@@ -25781,7 +25858,7 @@ var CsSideNavigationInternal = class extends CsBaseElement {
25781
25858
  </span>
25782
25859
  </button>
25783
25860
  </div>
25784
- ${expanded ? html68`<ul class="list">${item.items.map((child) => this._renderItem(child))}</ul>` : nothing39}
25861
+ ${expanded ? html68`<ul class="list">${item.items.map((child) => this._renderItem(child))}</ul>` : nothing40}
25785
25862
  </div>
25786
25863
  </li>
25787
25864
  `;
@@ -25812,13 +25889,13 @@ var CsSideNavigationInternal = class extends CsBaseElement {
25812
25889
  <a
25813
25890
  class=${classMap56(linkClasses)}
25814
25891
  href=${item.href}
25815
- aria-current=${isActive ? "page" : nothing39}
25892
+ aria-current=${isActive ? "page" : nothing40}
25816
25893
  @click=${(e) => this._onLinkClick(item, e)}
25817
25894
  >
25818
25895
  ${item.text}
25819
25896
  </a>
25820
25897
  </div>
25821
- ${expanded ? html68`<ul class="list list-variant-expandable-link-group">${item.items.map((child) => this._renderItem(child))}</ul>` : nothing39}
25898
+ ${expanded ? html68`<ul class="list list-variant-expandable-link-group">${item.items.map((child) => this._renderItem(child))}</ul>` : nothing40}
25822
25899
  </div>
25823
25900
  </li>
25824
25901
  `;
@@ -25834,12 +25911,12 @@ var CsSideNavigationInternal = class extends CsBaseElement {
25834
25911
  <a
25835
25912
  class=${classMap56(linkClasses)}
25836
25913
  href=${item.href}
25837
- aria-current=${isActive ? "page" : nothing39}
25914
+ aria-current=${isActive ? "page" : nothing40}
25838
25915
  @click=${(e) => this._onLinkClick(item, e)}
25839
25916
  >
25840
25917
  ${item.text}
25841
25918
  </a>
25842
- ${item.items.length ? html68`<ul class="list">${item.items.map((child) => this._renderItem(child))}</ul>` : nothing39}
25919
+ ${item.items.length ? html68`<ul class="list">${item.items.map((child) => this._renderItem(child))}</ul>` : nothing40}
25843
25920
  </li>
25844
25921
  `;
25845
25922
  }
@@ -26446,7 +26523,7 @@ var CsDrawer = class extends CsDrawerInternal {
26446
26523
  customElements.define("cs-drawer", CsDrawer);
26447
26524
 
26448
26525
  // src/split-panel/internal.ts
26449
- import { css as css152, html as html71, nothing as nothing40 } from "lit";
26526
+ import { css as css152, html as html71, nothing as nothing41 } from "lit";
26450
26527
  import { property as property70, state as state22 } from "lit/decorators.js";
26451
26528
  import { classMap as classMap58 } from "lit/directives/class-map.js";
26452
26529
 
@@ -26867,7 +26944,7 @@ var CsSplitPanelInternal = class extends CsBaseElement {
26867
26944
  @click=${this._onPreferencesClick}
26868
26945
  ></cs-button>
26869
26946
  <div class="divider"></div>
26870
- ` : nothing40}
26947
+ ` : nothing41}
26871
26948
  <cs-button
26872
26949
  variant="icon"
26873
26950
  icon-name="angle-down"
@@ -26900,7 +26977,7 @@ var CsSplitPanelInternal = class extends CsBaseElement {
26900
26977
  @click=${this._onPreferencesClick}
26901
26978
  ></cs-button>
26902
26979
  <div class="divider"></div>
26903
- ` : nothing40}
26980
+ ` : nothing41}
26904
26981
  <cs-button
26905
26982
  variant="icon"
26906
26983
  icon-name="close"
@@ -27265,7 +27342,7 @@ var CsTextarea = class extends CsTextareaInternal {
27265
27342
  customElements.define("cs-textarea", CsTextarea);
27266
27343
 
27267
27344
  // src/text-filter/internal.ts
27268
- import { css as css156, html as html74, nothing as nothing41 } from "lit";
27345
+ import { css as css156, html as html74, nothing as nothing42 } from "lit";
27269
27346
  import { property as property73 } from "lit/decorators.js";
27270
27347
 
27271
27348
  // src/text-filter/styles.ts
@@ -27356,7 +27433,7 @@ var CsTextFilterInternal = class extends CsBaseElement {
27356
27433
  @change=${this._onInputChange}
27357
27434
  ></cs-input>
27358
27435
  </div>
27359
- ${showResults ? html74`<span class="results">${this.countText}</span>` : nothing41}
27436
+ ${showResults ? html74`<span class="results">${this.countText}</span>` : nothing42}
27360
27437
  </div>
27361
27438
  `;
27362
27439
  }
@@ -27519,7 +27596,7 @@ var CsTimeInput = class extends CsTimeInputInternal {
27519
27596
  customElements.define("cs-time-input", CsTimeInput);
27520
27597
 
27521
27598
  // src/hotspot/internal.ts
27522
- import { css as css160, html as html76, nothing as nothing42 } from "lit";
27599
+ import { css as css160, html as html76, nothing as nothing43 } from "lit";
27523
27600
  import { property as property75, state as state23 } from "lit/decorators.js";
27524
27601
  import { classMap as classMap61 } from "lit/directives/class-map.js";
27525
27602
  import { consume as consume7 } from "@lit/context";
@@ -27635,7 +27712,7 @@ var CsHotspotInternal = class extends CsBaseElement {
27635
27712
  @click=${this._onHotspotClick}
27636
27713
  ></cs-button>
27637
27714
  </div>
27638
- ` : nothing42;
27715
+ ` : nothing43;
27639
27716
  const currentStep = this._currentStep;
27640
27717
  const popoverContent = this._popoverOpen && isActive && currentStep && ctx ? html76`
27641
27718
  <div class="annotation-popover" role="dialog" aria-label="Annotation">
@@ -27656,7 +27733,7 @@ var CsHotspotInternal = class extends CsBaseElement {
27656
27733
  <cs-button variant="link" @click=${this._onPrevious}>
27657
27734
  ${ctx.i18nStrings.previousButtonText}
27658
27735
  </cs-button>
27659
- ` : nothing42}
27736
+ ` : nothing43}
27660
27737
  ${currentStep.globalIndex < ctx.totalSteps - 1 ? html76`
27661
27738
  <cs-button variant="primary" @click=${this._onNext}>
27662
27739
  ${ctx.i18nStrings.nextButtonText}
@@ -27668,7 +27745,7 @@ var CsHotspotInternal = class extends CsBaseElement {
27668
27745
  `}
27669
27746
  </div>
27670
27747
  </div>
27671
- ` : nothing42;
27748
+ ` : nothing43;
27672
27749
  return html76`
27673
27750
  <div class="wrapper">
27674
27751
  <div class="elementWrapper">
@@ -27702,7 +27779,7 @@ var CsHotspot = class extends CsHotspotInternal {
27702
27779
  customElements.define("cs-hotspot", CsHotspot);
27703
27780
 
27704
27781
  // src/tutorial-panel/internal.ts
27705
- import { css as css162, html as html77, nothing as nothing43 } from "lit";
27782
+ import { css as css162, html as html77, nothing as nothing44 } from "lit";
27706
27783
  import { property as property76, state as state24 } from "lit/decorators.js";
27707
27784
  import { classMap as classMap62 } from "lit/directives/class-map.js";
27708
27785
 
@@ -27803,7 +27880,7 @@ var CsTutorialPanelInternal = class extends CsBaseElement {
27803
27880
  ${this.i18nStrings.tutorialListDownloadLinkText}
27804
27881
  </cs-link>
27805
27882
  </div>
27806
- ` : nothing43}
27883
+ ` : nothing44}
27807
27884
 
27808
27885
  <ul class="tutorial-list" role="list">
27809
27886
  ${this.tutorials.map((tutorial) => this._renderTutorialItem(tutorial))}
@@ -27824,11 +27901,11 @@ var CsTutorialPanelInternal = class extends CsBaseElement {
27824
27901
  <cs-status-indicator type="success">
27825
27902
  ${this.i18nStrings.tutorialCompletedText}
27826
27903
  </cs-status-indicator>
27827
- ` : nothing43}
27904
+ ` : nothing44}
27828
27905
 
27829
27906
  ${isDisabled && tutorial.prerequisitesAlert ? html77`
27830
27907
  <div class="prerequisites-alert">${tutorial.prerequisitesAlert}</div>
27831
- ` : nothing43}
27908
+ ` : nothing44}
27832
27909
 
27833
27910
  <div class="tutorial-description">${tutorial.description}</div>
27834
27911
 
@@ -27839,7 +27916,7 @@ var CsTutorialPanelInternal = class extends CsBaseElement {
27839
27916
  aria-label=${this.i18nStrings.labelLearnMoreLink ?? this.i18nStrings.learnMoreLinkText}>
27840
27917
  ${this.i18nStrings.learnMoreLinkText}
27841
27918
  </cs-link>
27842
- ` : nothing43}
27919
+ ` : nothing44}
27843
27920
  </div>
27844
27921
 
27845
27922
  <cs-button
@@ -27901,7 +27978,7 @@ var CsTutorialPanelInternal = class extends CsBaseElement {
27901
27978
  <div class="completed-screen">
27902
27979
  <cs-icon name="status-positive" size="big"></cs-icon>
27903
27980
  <h2>${this.i18nStrings.completionScreenTitle}</h2>
27904
- ${tutorial ? html77`<p>${tutorial.completedScreenDescription}</p>` : nothing43}
27981
+ ${tutorial ? html77`<p>${tutorial.completedScreenDescription}</p>` : nothing44}
27905
27982
  <div class="completed-actions">
27906
27983
  <cs-button variant="primary" @click=${this._onBackToList}>
27907
27984
  ${this.i18nStrings.dismissTutorialButtonText}
@@ -27910,7 +27987,7 @@ var CsTutorialPanelInternal = class extends CsBaseElement {
27910
27987
  <cs-button variant="link" @click=${() => fireNonCancelableEvent(this, "feedbackClick", { tutorial })}>
27911
27988
  ${this.i18nStrings.feedbackLinkText}
27912
27989
  </cs-button>
27913
- ` : nothing43}
27990
+ ` : nothing44}
27914
27991
  </div>
27915
27992
  </div>
27916
27993
  </div>
@@ -27955,7 +28032,7 @@ var CsTutorialPanel = class extends CsTutorialPanelInternal {
27955
28032
  customElements.define("cs-tutorial-panel", CsTutorialPanel);
27956
28033
 
27957
28034
  // src/app-layout/internal.ts
27958
- import { css as css173, html as html78, nothing as nothing44 } from "lit";
28035
+ import { css as css173, html as html78, nothing as nothing45 } from "lit";
27959
28036
  import { property as property77 } from "lit/decorators.js";
27960
28037
  import { classMap as classMap63 } from "lit/directives/class-map.js";
27961
28038
 
@@ -29498,7 +29575,7 @@ var CsAppLayoutInternal = class extends CsBaseElement {
29498
29575
  >
29499
29576
  <slot name="navigation"></slot>
29500
29577
  </div>
29501
- ` : nothing44}
29578
+ ` : nothing45}
29502
29579
 
29503
29580
  <div
29504
29581
  class=${classMap63(layoutMainClasses)}
@@ -29528,7 +29605,7 @@ var CsAppLayoutInternal = class extends CsBaseElement {
29528
29605
  >
29529
29606
  <slot name="tools"></slot>
29530
29607
  </div>
29531
- ` : nothing44}
29608
+ ` : nothing45}
29532
29609
  </div>
29533
29610
 
29534
29611
  ${!this.navigationHide && !this.navigationOpen ? html78`
@@ -29540,7 +29617,7 @@ var CsAppLayoutInternal = class extends CsBaseElement {
29540
29617
  >
29541
29618
  <cs-icon name="menu"></cs-icon>
29542
29619
  </button>
29543
- ` : nothing44}
29620
+ ` : nothing45}
29544
29621
 
29545
29622
  ${!this.navigationHide && this.navigationOpen ? html78`
29546
29623
  <button
@@ -29551,7 +29628,7 @@ var CsAppLayoutInternal = class extends CsBaseElement {
29551
29628
  >
29552
29629
  <cs-icon name="close"></cs-icon>
29553
29630
  </button>
29554
- ` : nothing44}
29631
+ ` : nothing45}
29555
29632
 
29556
29633
  ${!this.toolsHide && !this.toolsOpen ? html78`
29557
29634
  <button
@@ -29562,7 +29639,7 @@ var CsAppLayoutInternal = class extends CsBaseElement {
29562
29639
  >
29563
29640
  <cs-icon name="status-info"></cs-icon>
29564
29641
  </button>
29565
- ` : nothing44}
29642
+ ` : nothing45}
29566
29643
 
29567
29644
  ${!this.toolsHide && this.toolsOpen ? html78`
29568
29645
  <button
@@ -29573,7 +29650,7 @@ var CsAppLayoutInternal = class extends CsBaseElement {
29573
29650
  >
29574
29651
  <cs-icon name="close"></cs-icon>
29575
29652
  </button>
29576
- ` : nothing44}
29653
+ ` : nothing45}
29577
29654
 
29578
29655
  <slot name="drawers" style="display:none"></slot>
29579
29656
  </div>
@@ -29623,7 +29700,7 @@ var CsAppLayout = class extends CsAppLayoutInternal {
29623
29700
  customElements.define("cs-app-layout", CsAppLayout);
29624
29701
 
29625
29702
  // src/file-token-group/internal.ts
29626
- import { css as css175, html as html79, nothing as nothing45 } from "lit";
29703
+ import { css as css175, html as html79, nothing as nothing46 } from "lit";
29627
29704
  import { property as property78, state as state25 } from "lit/decorators.js";
29628
29705
  import { classMap as classMap64 } from "lit/directives/class-map.js";
29629
29706
 
@@ -29912,7 +29989,7 @@ var CsFileTokenGroupInternal = class extends CsBaseElement {
29912
29989
  return file.type.startsWith("image/");
29913
29990
  }
29914
29991
  _renderThumbnail(file) {
29915
- if (!this.showFileThumbnail || !this._isImageFile(file)) return nothing45;
29992
+ if (!this.showFileThumbnail || !this._isImageFile(file)) return nothing46;
29916
29993
  const url = URL.createObjectURL(file);
29917
29994
  return html79`
29918
29995
  <div class="file-option-thumbnail">
@@ -29961,12 +30038,12 @@ var CsFileTokenGroupInternal = class extends CsBaseElement {
29961
30038
  <div class=${classMap64(metadataClasses)}>
29962
30039
  <div class="file-name-container" tabindex="0">
29963
30040
  <div class="file-option-name">${file.name}</div>
29964
- ${this.showFileSize && file.size != null ? html79`<div class="file-option-size">${this._formatSize(file.size)}</div>` : nothing45}
29965
- ${this.showFileLastModified && file.lastModified ? html79`<div class="file-option-last-modified">${this._formatLastModified(new Date(file.lastModified))}</div>` : nothing45}
30041
+ ${this.showFileSize && file.size != null ? html79`<div class="file-option-size">${this._formatSize(file.size)}</div>` : nothing46}
30042
+ ${this.showFileLastModified && file.lastModified ? html79`<div class="file-option-last-modified">${this._formatLastModified(new Date(file.lastModified))}</div>` : nothing46}
29966
30043
  </div>
29967
30044
  </div>
29968
30045
  </div>
29969
- ${loading ? html79`<div class="file-loading-overlay${!hasThumbnail ? " file-loading-overlay-single-row" : ""}"><cs-spinner size="normal"></cs-spinner></div>` : nothing45}
30046
+ ${loading ? html79`<div class="file-loading-overlay${!hasThumbnail ? " file-loading-overlay-single-row" : ""}"><cs-spinner size="normal"></cs-spinner></div>` : nothing46}
29970
30047
  ${showDismiss ? html79`
29971
30048
  <button
29972
30049
  class="dismiss-button"
@@ -29976,16 +30053,16 @@ var CsFileTokenGroupInternal = class extends CsBaseElement {
29976
30053
  >
29977
30054
  <cs-icon name="close" size="small"></cs-icon>
29978
30055
  </button>
29979
- ` : nothing45}
30056
+ ` : nothing46}
29980
30057
  </div>
29981
30058
  ${errorText ? html79`<div class="file-error-text">
29982
30059
  <cs-icon name="status-negative" size="small"></cs-icon>
29983
30060
  <span>${errorText}</span>
29984
- </div>` : nothing45}
30061
+ </div>` : nothing46}
29985
30062
  ${!errorText && warningText ? html79`<div class="file-warning-text">
29986
30063
  <cs-icon name="status-warning" size="small"></cs-icon>
29987
30064
  <span>${warningText}</span>
29988
- </div>` : nothing45}
30065
+ </div>` : nothing46}
29989
30066
  </li>
29990
30067
  `;
29991
30068
  }
@@ -30018,7 +30095,7 @@ var CsFileTokenGroupInternal = class extends CsBaseElement {
30018
30095
  >
30019
30096
  ${this._expanded ? showFewerLabel : showMoreLabel}
30020
30097
  </button>
30021
- ` : nothing45}
30098
+ ` : nothing46}
30022
30099
  </div>
30023
30100
  `;
30024
30101
  }
@@ -30275,6 +30352,7 @@ var CsItemCardInternal = class extends CsBaseElement {
30275
30352
  this._hasFooter = false;
30276
30353
  this._hasActions = false;
30277
30354
  this._hasDescription = false;
30355
+ this._hasIcon = false;
30278
30356
  this._onHeaderSlotChange = (e) => {
30279
30357
  const slot = e.target;
30280
30358
  this._hasHeader = slot.assignedNodes({ flatten: true }).length > 0;
@@ -30295,6 +30373,11 @@ var CsItemCardInternal = class extends CsBaseElement {
30295
30373
  this._hasDescription = slot.assignedNodes({ flatten: true }).length > 0;
30296
30374
  this.requestUpdate();
30297
30375
  };
30376
+ this._onIconSlotChange = (e) => {
30377
+ const slot = e.target;
30378
+ this._hasIcon = slot.assignedNodes({ flatten: true }).length > 0;
30379
+ this.requestUpdate();
30380
+ };
30298
30381
  }
30299
30382
  static {
30300
30383
  this.styles = [sharedStyles, componentStyles76, hostStyles78];
@@ -30334,8 +30417,9 @@ var CsItemCardInternal = class extends CsBaseElement {
30334
30417
  return html80`
30335
30418
  <div class=${classMap65(rootClasses)} style=${styleMap(rootStyleOverrides)}>
30336
30419
  <div class="inner-card">
30337
- ${this._hasHeader || this._hasActions || this._hasDescription ? html80`
30420
+ ${this._hasHeader || this._hasActions || this._hasDescription || this._hasIcon ? html80`
30338
30421
  <div class=${classMap65(headerClasses)}>
30422
+ ${this._hasIcon ? html80`<div class="icon"><slot name="icon" @slotchange=${this._onIconSlotChange}></slot></div>` : html80`<slot name="icon" @slotchange=${this._onIconSlotChange} style="display:none"></slot>`}
30339
30423
  <div class="header-inner">
30340
30424
  <slot name="header" @slotchange=${this._onHeaderSlotChange}></slot>
30341
30425
  </div>
@@ -30343,6 +30427,7 @@ var CsItemCardInternal = class extends CsBaseElement {
30343
30427
  ${this._hasActions ? html80`<div class="actions"><slot name="actions" @slotchange=${this._onActionsSlotChange}></slot></div>` : html80`<slot name="actions" @slotchange=${this._onActionsSlotChange} style="display:none"></slot>`}
30344
30428
  </div>
30345
30429
  ` : html80`
30430
+ <slot name="icon" @slotchange=${this._onIconSlotChange} style="display:none"></slot>
30346
30431
  <slot name="header" @slotchange=${this._onHeaderSlotChange} style="display:none"></slot>
30347
30432
  <slot name="description" @slotchange=${this._onDescriptionSlotChange} style="display:none"></slot>
30348
30433
  <slot name="actions" @slotchange=${this._onActionsSlotChange} style="display:none"></slot>
@@ -30387,7 +30472,7 @@ var CsItemCard = class extends CsItemCardInternal {
30387
30472
  customElements.define("cs-item-card", CsItemCard);
30388
30473
 
30389
30474
  // src/panel-layout/internal.ts
30390
- import { css as css179, html as html81, nothing as nothing46 } from "lit";
30475
+ import { css as css179, html as html81, nothing as nothing47 } from "lit";
30391
30476
  import { property as property80, state as state26 } from "lit/decorators.js";
30392
30477
  import { classMap as classMap66 } from "lit/directives/class-map.js";
30393
30478
  import { styleMap as styleMap2 } from "lit/directives/style-map.js";
@@ -30567,7 +30652,7 @@ var CsPanelLayoutInternal = class extends CsBaseElement {
30567
30652
  handle?.focus();
30568
30653
  }
30569
30654
  _renderHandle() {
30570
- if (!this.resizable || this.display !== "all") return nothing46;
30655
+ if (!this.resizable || this.display !== "all") return nothing47;
30571
30656
  const ariaLabel = this.i18nStrings?.resizeHandleAriaLabel ?? "Resize panel";
30572
30657
  const tooltip = this.i18nStrings?.resizeHandleTooltipText;
30573
30658
  return html81`
@@ -30579,7 +30664,7 @@ var CsPanelLayoutInternal = class extends CsBaseElement {
30579
30664
  aria-valuemin=${this.minPanelSize ?? MIN_DEFAULT}
30580
30665
  aria-valuemax=${this.maxPanelSize ?? this.clientWidth}
30581
30666
  aria-label=${ariaLabel}
30582
- title=${tooltip ?? nothing46}
30667
+ title=${tooltip ?? nothing47}
30583
30668
  tabindex="0"
30584
30669
  @pointerdown=${this._onPointerDown}
30585
30670
  @pointermove=${this._onPointerMove}
@@ -30614,24 +30699,24 @@ var CsPanelLayoutInternal = class extends CsBaseElement {
30614
30699
  const panelFirst = this.panelPosition === "side-start";
30615
30700
  const panelSection = html81`
30616
30701
  <div class="panel" style=${styleMap2(panelStyle)}>
30617
- ${!panelFirst ? html81`<div class="handle">${this._renderHandle()}</div>` : nothing46}
30702
+ ${!panelFirst ? html81`<div class="handle">${this._renderHandle()}</div>` : nothing47}
30618
30703
  <div
30619
30704
  class="panel-content"
30620
- tabindex=${this.panelFocusable ? "0" : nothing46}
30621
- aria-label=${this.panelFocusable?.ariaLabel ?? nothing46}
30622
- aria-labelledby=${this.panelFocusable?.ariaLabelledby ?? nothing46}
30705
+ tabindex=${this.panelFocusable ? "0" : nothing47}
30706
+ aria-label=${this.panelFocusable?.ariaLabel ?? nothing47}
30707
+ aria-labelledby=${this.panelFocusable?.ariaLabelledby ?? nothing47}
30623
30708
  >
30624
30709
  <slot name="panel"></slot>
30625
30710
  </div>
30626
- ${panelFirst ? html81`<div class="handle">${this._renderHandle()}</div>` : nothing46}
30711
+ ${panelFirst ? html81`<div class="handle">${this._renderHandle()}</div>` : nothing47}
30627
30712
  </div>
30628
30713
  `;
30629
30714
  const mainSection = html81`
30630
30715
  <div
30631
30716
  class="content"
30632
- tabindex=${this.mainFocusable ? "0" : nothing46}
30633
- aria-label=${this.mainFocusable?.ariaLabel ?? nothing46}
30634
- aria-labelledby=${this.mainFocusable?.ariaLabelledby ?? nothing46}
30717
+ tabindex=${this.mainFocusable ? "0" : nothing47}
30718
+ aria-label=${this.mainFocusable?.ariaLabel ?? nothing47}
30719
+ aria-labelledby=${this.mainFocusable?.ariaLabelledby ?? nothing47}
30635
30720
  >
30636
30721
  <slot name="main"></slot>
30637
30722
  </div>
@@ -30687,7 +30772,7 @@ var CsPanelLayout = class extends CsPanelLayoutInternal {
30687
30772
  customElements.define("cs-panel-layout", CsPanelLayout);
30688
30773
 
30689
30774
  // src/s3-resource-selector/internal.ts
30690
- import { css as css181, html as html82, nothing as nothing47 } from "lit";
30775
+ import { css as css181, html as html82, nothing as nothing48 } from "lit";
30691
30776
  import { property as property81, state as state27 } from "lit/decorators.js";
30692
30777
 
30693
30778
  // src/s3-resource-selector/styles.ts
@@ -30947,12 +31032,12 @@ var CsS3ResourceSelectorInternal = class extends CsBaseElement {
30947
31032
  .value=${this._uri}
30948
31033
  placeholder=${placeholder}
30949
31034
  ?invalid=${this.invalid}
30950
- aria-describedby=${this.inputAriaDescribedby ?? nothing47}
31035
+ aria-describedby=${this.inputAriaDescribedby ?? nothing48}
30951
31036
  @change=${this._onUriChange}
30952
31037
  style="flex:1"
30953
31038
  ></cs-input>
30954
31039
  <cs-button @click=${this._openModal}>${browseLabel}</cs-button>
30955
- ${this.viewHref ? html82`<cs-button variant="normal" href=${this.viewHref}>${strings?.inContextViewButton ?? "View"}</cs-button>` : nothing47}
31040
+ ${this.viewHref ? html82`<cs-button variant="normal" href=${this.viewHref}>${strings?.inContextViewButton ?? "View"}</cs-button>` : nothing48}
30956
31041
  </div>
30957
31042
 
30958
31043
  <slot name="alert"></slot>
@@ -31071,11 +31156,264 @@ __decorateClass([
31071
31156
  var CsS3ResourceSelector = class extends CsS3ResourceSelectorInternal {
31072
31157
  };
31073
31158
  customElements.define("cs-s3-resource-selector", CsS3ResourceSelector);
31159
+
31160
+ // src/app-layout-toolbar/internal.ts
31161
+ import { css as css182, html as html83, nothing as nothing49 } from "lit";
31162
+ import { property as property82 } from "lit/decorators.js";
31163
+ import { classMap as classMap67 } from "lit/directives/class-map.js";
31164
+ var toolbarStyles = css182`
31165
+ .toolbar {
31166
+ display: flex;
31167
+ align-items: center;
31168
+ gap: 4px;
31169
+ height: 48px;
31170
+ padding: 0 12px;
31171
+ background: var(--color-background-container-content-ljv8l6, #ffffff);
31172
+ border-bottom: 1px solid var(--color-border-divider-default-cx07f2, #e9ebed);
31173
+ box-sizing: border-box;
31174
+ }
31175
+
31176
+ .toolbar__nav-trigger,
31177
+ .toolbar__tools-trigger,
31178
+ .toolbar__drawer-trigger {
31179
+ display: inline-flex;
31180
+ align-items: center;
31181
+ justify-content: center;
31182
+ width: 36px;
31183
+ height: 36px;
31184
+ padding: 0;
31185
+ border: none;
31186
+ border-radius: 8px;
31187
+ background: transparent;
31188
+ color: var(--color-text-interactive-default-waj0dj, #414d5c);
31189
+ cursor: pointer;
31190
+ position: relative;
31191
+ }
31192
+
31193
+ .toolbar__nav-trigger:hover,
31194
+ .toolbar__tools-trigger:hover,
31195
+ .toolbar__drawer-trigger:hover {
31196
+ background: var(--color-background-button-normal-hover-7jklbd, #f2f3f3);
31197
+ }
31198
+
31199
+ .toolbar__nav-trigger:focus-visible,
31200
+ .toolbar__tools-trigger:focus-visible,
31201
+ .toolbar__drawer-trigger:focus-visible {
31202
+ outline: 2px solid var(--color-border-item-focused-nv6mhz, #0972d3);
31203
+ outline-offset: 2px;
31204
+ }
31205
+
31206
+ .toolbar__drawer-trigger--active {
31207
+ background: var(--color-background-button-normal-active-clrtfe, #e9ebed);
31208
+ color: var(--color-text-interactive-active-vol84d, #0972d3);
31209
+ }
31210
+
31211
+ .toolbar__breadcrumbs {
31212
+ flex: 1;
31213
+ min-width: 0;
31214
+ padding: 0 8px;
31215
+ }
31216
+
31217
+ .toolbar__separator {
31218
+ width: 1px;
31219
+ height: 24px;
31220
+ background: var(--color-border-divider-default-cx07f2, #e9ebed);
31221
+ margin: 0 4px;
31222
+ flex-shrink: 0;
31223
+ }
31224
+
31225
+ .toolbar__badge {
31226
+ position: absolute;
31227
+ top: 4px;
31228
+ right: 4px;
31229
+ width: 8px;
31230
+ height: 8px;
31231
+ border-radius: 50%;
31232
+ background: var(--color-background-notification-badge-3847ch, #d91515);
31233
+ }
31234
+
31235
+ .toolbar__drawer-panel {
31236
+ border-left: 1px solid var(--color-border-divider-default-cx07f2, #e9ebed);
31237
+ }
31238
+ `;
31239
+ var CsAppLayoutToolbarInternal = class extends CsAppLayoutInternal {
31240
+ constructor() {
31241
+ super(...arguments);
31242
+ this.navigationTriggerHide = false;
31243
+ this.activeDrawerId = null;
31244
+ this.toolbarDrawers = [];
31245
+ }
31246
+ static {
31247
+ this.styles = [
31248
+ ...CsAppLayoutInternal.styles,
31249
+ toolbarStyles
31250
+ ];
31251
+ }
31252
+ _handleToggleDrawer(id) {
31253
+ const newId = this.activeDrawerId === id ? null : id;
31254
+ this.activeDrawerId = newId;
31255
+ fireNonCancelableEvent(this, "drawerChange", {
31256
+ activeDrawerId: newId
31257
+ });
31258
+ }
31259
+ _handleNavToggle(open) {
31260
+ this.navigationOpen = open;
31261
+ fireNonCancelableEvent(this, "navigationChange", { open });
31262
+ }
31263
+ _handleToolsToggle(open) {
31264
+ this.toolsOpen = open;
31265
+ fireNonCancelableEvent(this, "toolsChange", { open });
31266
+ }
31267
+ focusNavigation() {
31268
+ const navTrigger = this.shadowRoot?.querySelector(".toolbar__nav-trigger");
31269
+ navTrigger?.focus();
31270
+ }
31271
+ render() {
31272
+ const effectiveNavWidth = !this.navigationHide && this.navigationOpen ? this.navigationWidth : 0;
31273
+ const activeDrawer = this.toolbarDrawers.find((d) => d.id === this.activeDrawerId);
31274
+ const activeDrawerWidth = activeDrawer?.defaultSize ?? 290;
31275
+ const effectiveToolsWidth = !this.toolsHide && this.toolsOpen ? this.toolsWidth : 0;
31276
+ const effectiveRightWidth = effectiveToolsWidth || (activeDrawer ? activeDrawerWidth : 0);
31277
+ const layoutMainClasses = {
31278
+ "layout-main": true,
31279
+ "layout-main-scrollable": true
31280
+ };
31281
+ const contentWrapperClasses = {
31282
+ "content-wrapper": true,
31283
+ "app-layout-content-wrapper--content-wrapper": !this.disableContentPaddings
31284
+ };
31285
+ const navigationClasses = {
31286
+ "app-layout-drawer--drawer": true
31287
+ };
31288
+ const toolsClasses = {
31289
+ "app-layout-drawer--drawer": true
31290
+ };
31291
+ return html83`
31292
+ <div class="root">
31293
+ <div class="toolbar" role="toolbar" aria-label="Application toolbar">
31294
+ ${!this.navigationHide && !this.navigationTriggerHide ? html83`
31295
+ <button
31296
+ type="button"
31297
+ class="toolbar__nav-trigger"
31298
+ aria-label="${this.navigationOpen ? "Close navigation" : "Open navigation"}"
31299
+ aria-expanded="${this.navigationOpen}"
31300
+ @click=${() => this._handleNavToggle(!this.navigationOpen)}
31301
+ >
31302
+ <cs-icon name="menu"></cs-icon>
31303
+ </button>
31304
+ <div class="toolbar__separator"></div>
31305
+ ` : nothing49}
31306
+
31307
+ <div class="toolbar__breadcrumbs">
31308
+ <slot name="breadcrumbs"></slot>
31309
+ </div>
31310
+
31311
+ ${this.toolbarDrawers.length > 0 ? html83`
31312
+ <div class="toolbar__separator"></div>
31313
+ ${this.toolbarDrawers.map((drawer) => html83`
31314
+ <button
31315
+ type="button"
31316
+ class="toolbar__drawer-trigger ${this.activeDrawerId === drawer.id ? "toolbar__drawer-trigger--active" : ""}"
31317
+ aria-label="${drawer.ariaLabels?.triggerButton ?? drawer.ariaLabels?.drawerName ?? drawer.id}"
31318
+ aria-expanded="${this.activeDrawerId === drawer.id}"
31319
+ @click=${() => this._handleToggleDrawer(drawer.id)}
31320
+ >
31321
+ <cs-icon name="${drawer.trigger?.iconName ?? "status-info"}"></cs-icon>
31322
+ ${drawer.badge ? html83`<span class="toolbar__badge"></span>` : nothing49}
31323
+ </button>
31324
+ `)}
31325
+ ` : nothing49}
31326
+
31327
+ ${!this.toolsHide ? html83`
31328
+ <div class="toolbar__separator"></div>
31329
+ <button
31330
+ type="button"
31331
+ class="toolbar__tools-trigger"
31332
+ aria-label="${this.toolsOpen ? "Close tools" : "Open tools"}"
31333
+ aria-expanded="${this.toolsOpen}"
31334
+ @click=${() => this._handleToolsToggle(!this.toolsOpen)}
31335
+ >
31336
+ <cs-icon name="status-info"></cs-icon>
31337
+ </button>
31338
+ ` : nothing49}
31339
+ </div>
31340
+
31341
+ <div class="layout">
31342
+ ${!this.navigationHide ? html83`
31343
+ <div
31344
+ class=${classMap67(navigationClasses)}
31345
+ style="width: ${this.navigationWidth}px; ${!this.navigationOpen ? "display: none" : ""}"
31346
+ role="navigation"
31347
+ aria-label="Navigation drawer"
31348
+ >
31349
+ <slot name="navigation"></slot>
31350
+ </div>
31351
+ ` : nothing49}
31352
+
31353
+ <div
31354
+ class=${classMap67(layoutMainClasses)}
31355
+ style="margin-left: ${effectiveNavWidth}px; margin-right: ${effectiveRightWidth}px"
31356
+ >
31357
+ <div class="app-layout-notifications--notifications">
31358
+ <slot name="notifications"></slot>
31359
+ </div>
31360
+ <main
31361
+ class=${classMap67(contentWrapperClasses)}
31362
+ style="${this.maxContentWidth ? `max-width: ${this.maxContentWidth}px` : ""};
31363
+ ${this.minContentWidth ? `min-width: ${this.minContentWidth}px` : ""}"
31364
+ >
31365
+ <slot></slot>
31366
+ </main>
31367
+ </div>
31368
+
31369
+ ${!this.toolsHide && this.toolsOpen ? html83`
31370
+ <div
31371
+ class=${classMap67(toolsClasses)}
31372
+ style="width: ${this.toolsWidth}px"
31373
+ role="complementary"
31374
+ aria-label="Tools drawer"
31375
+ >
31376
+ <slot name="tools"></slot>
31377
+ </div>
31378
+ ` : nothing49}
31379
+
31380
+ ${activeDrawer ? html83`
31381
+ <div
31382
+ class="app-layout-drawer--drawer toolbar__drawer-panel"
31383
+ style="width: ${activeDrawerWidth}px"
31384
+ role="complementary"
31385
+ aria-label="${activeDrawer.ariaLabels?.drawerName ?? activeDrawer.id}"
31386
+ >
31387
+ <slot name="drawer-${activeDrawer.id}"></slot>
31388
+ </div>
31389
+ ` : nothing49}
31390
+ </div>
31391
+
31392
+ <slot name="drawers" style="display:none"></slot>
31393
+ </div>
31394
+ `;
31395
+ }
31396
+ };
31397
+ __decorateClass([
31398
+ property82({ type: Boolean, reflect: true })
31399
+ ], CsAppLayoutToolbarInternal.prototype, "navigationTriggerHide", 2);
31400
+ __decorateClass([
31401
+ property82({ type: String, reflect: true })
31402
+ ], CsAppLayoutToolbarInternal.prototype, "activeDrawerId", 2);
31403
+ __decorateClass([
31404
+ property82({ type: Array })
31405
+ ], CsAppLayoutToolbarInternal.prototype, "toolbarDrawers", 2);
31406
+
31407
+ // src/app-layout-toolbar/index.ts
31408
+ var CsAppLayoutToolbar = class extends CsAppLayoutToolbarInternal {
31409
+ };
31410
+ customElements.define("cs-app-layout-toolbar", CsAppLayoutToolbar);
31074
31411
  export {
31075
31412
  CsAlert,
31076
31413
  CsAnchorNavigation,
31077
31414
  CsAnnotationContext,
31078
31415
  CsAppLayout,
31416
+ CsAppLayoutToolbar,
31079
31417
  CsAttributeEditor,
31080
31418
  CsAutosuggest,
31081
31419
  CsBadge,