@fluentui/web-components 3.0.0-beta.120 → 3.0.0-beta.122

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.
@@ -10396,6 +10396,19 @@ var __decorateClass$j = (decorators, target, key, kind) => {
10396
10396
  if (kind && result) __defProp$j(target, key, result);
10397
10397
  return result;
10398
10398
  };
10399
+ const SUPPORTS_ATTR_TYPE = CSS.supports("width: attr(value type(<number>))");
10400
+ const CUSTOM_PROPERTY_NAME = {
10401
+ max: "--_attr-max",
10402
+ value: "--_attr-value",
10403
+ maskImageFilled: "--_mask-image-filled",
10404
+ maskImageOutlined: "--_mask-image-outlined"
10405
+ };
10406
+ function svgToDataURI(svg) {
10407
+ if (!svg) {
10408
+ return "";
10409
+ }
10410
+ return ["data:image/svg+xml", encodeURIComponent(svg.replace(/\n/g, "").replace(/\s+/g, " "))].join(",");
10411
+ }
10399
10412
  class BaseRatingDisplay extends FASTElement {
10400
10413
  constructor() {
10401
10414
  super();
@@ -10405,16 +10418,20 @@ class BaseRatingDisplay extends FASTElement {
10405
10418
  * @internal
10406
10419
  */
10407
10420
  this.elementInternals = this.attachInternals();
10408
- this.intlNumberFormatter = new Intl.NumberFormat();
10421
+ this.defaultCustomIconViewBox = "0 0 20 20";
10409
10422
  this.elementInternals.role = "img";
10423
+ this.numberFormatter = new Intl.NumberFormat();
10410
10424
  }
10411
- /**
10412
- * @internal
10413
- */
10414
- slottedIconChanged() {
10415
- if (this.$fastController.isConnected) {
10416
- this.customIcon = this.slottedIcon[0]?.outerHTML;
10417
- }
10425
+ maxChanged() {
10426
+ this.setCustomPropertyValue("max");
10427
+ }
10428
+ valueChanged() {
10429
+ this.setCustomPropertyValue("value");
10430
+ }
10431
+ connectedCallback() {
10432
+ super.connectedCallback();
10433
+ this.setCustomPropertyValue("value");
10434
+ this.setCustomPropertyValue("max");
10418
10435
  }
10419
10436
  /**
10420
10437
  * Returns "count" as string, formatted according to the locale.
@@ -10422,41 +10439,47 @@ class BaseRatingDisplay extends FASTElement {
10422
10439
  * @internal
10423
10440
  */
10424
10441
  get formattedCount() {
10425
- return this.count ? this.intlNumberFormatter.format(this.count) : "";
10442
+ return this.count ? this.numberFormatter.format(this.count) : "";
10426
10443
  }
10427
- /**
10428
- * Gets the selected value
10429
- *
10430
- * @protected
10431
- */
10432
- getSelectedValue() {
10433
- return Math.round((this.value ?? 0) * 2) / 2;
10434
- }
10435
- /**
10436
- * Gets the maximum icons to render
10437
- *
10438
- * @protected
10439
- */
10440
- getMaxIcons() {
10441
- return (this.max ?? 5) * 2;
10442
- }
10443
- /**
10444
- * Generates the icon SVG elements based on the "max" attribute.
10445
- *
10446
- * @internal
10447
- */
10448
- generateIcons() {
10449
- let htmlString = "";
10450
- let customIcon;
10451
- if (this.customIcon) {
10452
- customIcon = /<svg[^>]*>([\s\S]*?)<\/svg>/.exec(this.customIcon)?.[1] ?? "";
10444
+ /** @internal */
10445
+ handleSlotChange() {
10446
+ const icon = this.iconSlot.assignedElements()?.find(el => el.nodeName.toLowerCase() === "svg");
10447
+ this.renderSlottedIcon(icon ?? null);
10448
+ }
10449
+ renderSlottedIcon(svg) {
10450
+ if (!svg) {
10451
+ this.display.style.removeProperty(CUSTOM_PROPERTY_NAME.maskImageFilled);
10452
+ this.display.style.removeProperty(CUSTOM_PROPERTY_NAME.maskImageOutlined);
10453
+ return;
10453
10454
  }
10454
- const selectedValue = this.getSelectedValue();
10455
- for (let i = 0; i < this.getMaxIcons(); i++) {
10456
- const iconValue = (i + 1) / 2;
10457
- htmlString += `<svg aria-hidden="true" viewBox="${this.iconViewBox ?? "0 0 20 20"}" ${iconValue === selectedValue ? "selected" : ""}>${customIcon ?? '<use href="#star"></use>'}</svg>`;
10455
+ const innerSvg = svg.innerHTML;
10456
+ const viewBox = svg.getAttribute("viewBox") ?? this.iconViewBox ?? this.defaultCustomIconViewBox;
10457
+ const customSvgFilled = `
10458
+ <svg
10459
+ viewBox="${viewBox}"
10460
+ xmlns="http://www.w3.org/2000/svg"
10461
+ >${innerSvg}</svg>`;
10462
+ const customSvgOutlined = `
10463
+ <svg
10464
+ viewBox="${viewBox}"
10465
+ xmlns="http://www.w3.org/2000/svg"
10466
+ fill="none"
10467
+ stroke="black"
10468
+ stroke-width="2"
10469
+ >${innerSvg}</svg>`;
10470
+ this.display.style.setProperty(CUSTOM_PROPERTY_NAME.maskImageFilled, `url(${svgToDataURI(customSvgFilled)})`);
10471
+ this.display.style.setProperty(CUSTOM_PROPERTY_NAME.maskImageOutlined, `url(${svgToDataURI(customSvgOutlined)})`);
10472
+ }
10473
+ setCustomPropertyValue(propertyName) {
10474
+ if (!this.display || SUPPORTS_ATTR_TYPE) {
10475
+ return;
10476
+ }
10477
+ const propertyValue = this[propertyName];
10478
+ if (typeof propertyValue !== "number" || Number.isNaN(propertyValue)) {
10479
+ this.display.style.removeProperty(CUSTOM_PROPERTY_NAME[propertyName]);
10480
+ } else {
10481
+ this.display.style.setProperty(CUSTOM_PROPERTY_NAME[propertyName], `${propertyValue}`);
10458
10482
  }
10459
- return htmlString;
10460
10483
  }
10461
10484
  }
10462
10485
  __decorateClass$j([attr({
@@ -10471,8 +10494,6 @@ __decorateClass$j([attr({
10471
10494
  __decorateClass$j([attr({
10472
10495
  converter: nullableNumberConverter
10473
10496
  })], BaseRatingDisplay.prototype, "value", 2);
10474
- __decorateClass$j([observable], BaseRatingDisplay.prototype, "slottedIcon", 2);
10475
- __decorateClass$j([observable], BaseRatingDisplay.prototype, "customIcon", 2);
10476
10497
 
10477
10498
  var __defProp$i = Object.defineProperty;
10478
10499
  var __getOwnPropDesc$i = Object.getOwnPropertyDescriptor;
@@ -10487,22 +10508,6 @@ class RatingDisplay extends BaseRatingDisplay {
10487
10508
  super(...arguments);
10488
10509
  this.compact = false;
10489
10510
  }
10490
- /**
10491
- * Overrides the selected value and returns 1 if compact is true.
10492
- *
10493
- * @override
10494
- */
10495
- getSelectedValue() {
10496
- return Math.round((this.compact ? 1 : this.value ?? 0) * 2) / 2;
10497
- }
10498
- /**
10499
- * Overrides the maximum icons and returns a max of 1 if compact is true.
10500
- *
10501
- * @override
10502
- */
10503
- getMaxIcons() {
10504
- return (this.compact ? 1 : this.max ?? 5) * 2;
10505
- }
10506
10511
  }
10507
10512
  __decorateClass$i([attr], RatingDisplay.prototype, "color", 2);
10508
10513
  __decorateClass$i([attr], RatingDisplay.prototype, "size", 2);
@@ -10510,21 +10515,30 @@ __decorateClass$i([attr({
10510
10515
  mode: "boolean"
10511
10516
  })], RatingDisplay.prototype, "compact", 2);
10512
10517
 
10513
- const styles$e = css`
10514
- ${display("inline-flex")}
10515
-
10516
- :host{--icon-size:16px;--icon-color-filled:${colorPaletteMarigoldBorderActive};--icon-color-empty:${colorPaletteMarigoldBackground2};align-items:center;color:${colorNeutralForeground1};font-family:${fontFamilyBase};font-size:${fontSizeBase200};line-height:${lineHeightBase200};contain:layout style;user-select:none}:host([size='small']){--icon-size:12px}:host([size='large']){--icon-size:20px;font-size:${fontSizeBase300};line-height:${lineHeightBase300}}::slotted([slot='icon']){display:none}svg{width:var(--icon-size);height:var(--icon-size);fill:var(--icon-color-filled);margin-inline-end:${spacingHorizontalXXS}}svg:nth-child(odd){clip-path:inset(0 50% 0 0);margin-inline-end:calc(0px - var(--icon-size))}:host([color='neutral']) svg{--icon-color-filled:${colorNeutralForeground1}}:host([color='brand']) svg{--icon-color-filled:${colorBrandForeground1}}:host(:is([value^='-'],[value='0'])) svg,:host(:not([value])) svg,svg[selected] ~ svg{fill:var(--icon-color-empty)}:host([color='neutral']:is([value^='-'],[value='0'],:not([value]))) svg,:host([color='neutral']) svg[selected] ~ svg{--icon-color-empty:${colorNeutralBackground6}}:host([color='brand']:is([value^='-'],[value='0'],:not([value]))) svg,:host([color='brand']) svg[selected] ~ svg{--icon-color-empty:${colorBrandBackground2}}.value-label,::slotted([slot='value']){display:block;margin-inline-start:${spacingHorizontalXS};font-weight:${fontWeightSemibold}}:host([size='small']) .value-label,:host([size='small']) ::slotted([slot='value']){margin-inline-start:${spacingHorizontalXXS}}:host([size='large']) .value-label,:host([size='large']) ::slotted([slot='value']){margin-inline-start:${spacingHorizontalSNudge}}:host(:not([count])) .count-label{display:none}.count-label::before,::slotted([slot='count'])::before{content:'·';margin-inline:${spacingHorizontalXS}}:host([size='small']) .count-label::before,:host([size='small']) ::slotted([slot='count'])::before{margin-inline:${spacingHorizontalXXS}}:host([size='large']) .count-label::before,:host([size='large']) ::slotted([slot='count'])::before{margin-inline:${spacingHorizontalSNudge}}`.withBehaviors(forcedColorsStylesheetBehavior(css`
10517
- :host([color]) svg{fill:CanvasText}:host([color]:is([value^='-'],[value='0'])) svg,:host(:not([value])) svg,:host([color]) svg[selected] ~ svg{fill:Canvas;stroke:CanvasText}`));
10518
-
10519
- const star = html`<svg xmlns="http://www.w3.org/2000/svg" style="display: none"><symbol id="star"><path d="M9.10433 2.89874C9.47114 2.15549 10.531 2.1555 10.8978 2.89874L12.8282 6.81024L17.1448 7.43748C17.9651 7.55666 18.2926 8.56464 17.699 9.14317L14.5755 12.1878L15.3129 16.487C15.453 17.3039 14.5956 17.9269 13.8619 17.5412L10.0011 15.5114L6.14018 17.5412C5.40655 17.9269 4.54913 17.3039 4.68924 16.487L5.4266 12.1878L2.30308 9.14317C1.70956 8.56463 2.03708 7.55666 2.8573 7.43748L7.17389 6.81024L9.10433 2.89874Z" /></symbol></svg>`;
10518
+ const defaultIconPath = `<path d="M5.28347 1.54605C5.57692 0.951448 6.42479 0.951449 6.71825 1.54605L7.82997 3.79866L10.3159 4.15988C10.9721 4.25523 11.2341 5.0616 10.7592 5.52443L8.96043 7.27785L9.38507 9.7537C9.49716 10.4072 8.81122 10.9056 8.22431 10.597L6.00086 9.4281L3.7774 10.597C3.19049 10.9056 2.50455 10.4072 2.61664 9.7537L3.04128 7.27784L1.24246 5.52443C0.767651 5.0616 1.02966 4.25523 1.68584 4.15988L4.17174 3.79865L5.28347 1.54605Z" />`;
10519
+ const defaultIconFilled = `
10520
+ <svg viewBox="0 0 12 12" xmlns="http://www.w3.org/2000/svg">${defaultIconPath}</svg>
10521
+ `;
10522
+ const defaultIconOutlined = `
10523
+ <svg viewBox="0 0 12 12" xmlns="http://www.w3.org/2000/svg"
10524
+ fill="none" stroke="black" stroke-width="2"
10525
+ >${defaultIconPath}</svg>
10526
+ `;
10520
10527
  function ratingDisplayTemplate() {
10521
- return html` ${x => html`${staticallyCompose(x.generateIcons())}`}<slot name="icon" ${slotted({
10522
- property: "slottedIcon",
10523
- filter: elements("svg")
10524
- })}>${star}</slot><slot name="value"><span class="value-label" aria-hidden="true">${x => x.value}</span></slot><slot name="count"><span class="count-label" aria-hidden="true">${x => x.formattedCount}</span></slot>`;
10528
+ return html`<div ${ref("display")} class="display" aria-hidden="true"></div><slot name="icon" ${ref("iconSlot")} @slotchange="${x => x.handleSlotChange()}"></slot><slot name="value"><span class="value-label" aria-hidden="true">${x => x.value}</span></slot><slot name="count"><span class="count-label" aria-hidden="true">${x => x.formattedCount}</span></slot>`;
10525
10529
  }
10526
10530
  const template$e = ratingDisplayTemplate();
10527
10531
 
10532
+ const styles$e = css`
10533
+ ${display("inline-flex")}
10534
+
10535
+ :host{--_icon-size:16px;--_icon-gradient-degree:90deg;--_icon-color-value:${colorPaletteMarigoldBorderActive};--_icon-color-empty:${colorPaletteMarigoldBackground2};--_default-value:0;--_default-max:5;--_mask-image-filled:url(${svgToDataURI(defaultIconFilled)});--_mask-image-outlined:url(${svgToDataURI(defaultIconOutlined)});--_mask-position-x:left;align-items:center;color:${colorNeutralForeground1};font-family:${fontFamilyBase};font-size:${fontSizeBase200};line-height:${lineHeightBase200};contain:layout style;user-select:none}:host(:dir(rtl)){--_icon-gradient-degree:-90deg;--_mask-position-x:right}:host([size='small']){--_icon-size:12px}:host([size='large']){--_icon-size:20px;font-size:${fontSizeBase300};line-height:${lineHeightBase300}}::slotted([slot='icon']){display:none}:host([color='neutral']){--_icon-color-value:${colorNeutralForeground1};--_icon-color-empty:${colorNeutralBackground6}}:host([color='brand']){--_icon-color-value:${colorBrandForeground1};--_icon-color-empty:${colorBrandBackground2}}@supports (width:attr(value type(<number>))){:host{--_attr-value:attr(value type(<number>));--_attr-max:attr(max type(<number>))}}:host([compact]) .display{--_max:1}.display{--_value:max(0,round(var(--_attr-value,var(--_default-value)) * 2) / 2);--_max:max(1,var(--_attr-max,var(--_default-max)));--_mask-inline-size:calc(var(--_icon-size) + ${spacingHorizontalXXS});--_icon-gradient-stop-visual-adjustment:0px;--_icon-gradient-stop:calc(
10536
+ var(--_mask-inline-size) * var(--_value) - var(--_icon-gradient-stop-visual-adjustment)
10537
+ );background-image:linear-gradient(
10538
+ var(--_icon-gradient-degree),var(--_icon-color-value) var(--_icon-gradient-stop),var(--_icon-color-empty) calc(var(--_icon-gradient-stop) + 0.5px)
10539
+ );block-size:var(--_icon-size);display:grid;inline-size:calc(var(--_max) * var(--_mask-inline-size) - ${spacingHorizontalXXS} / 2);mask-image:var(--_mask-image-filled);mask-repeat:repeat no-repeat;mask-size:var(--_mask-inline-size) var(--_icon-size);mask-position:var(--_mask-position-x) center}.value-label,::slotted([slot='value']){display:block;margin-inline-start:${spacingHorizontalXS};font-weight:${fontWeightSemibold}}:host([size='small']) .value-label,:host([size='small']) ::slotted([slot='value']){margin-inline-start:${spacingHorizontalXXS}}:host([size='large']) .value-label,:host([size='large']) ::slotted([slot='value']){margin-inline-start:${spacingHorizontalSNudge}}:host(:not([count])) .count-label{display:none}.count-label::before,::slotted([slot='count'])::before{content:'·';margin-inline:${spacingHorizontalXS}}:host([size='small']) .count-label::before,:host([size='small']) ::slotted([slot='count'])::before{margin-inline:${spacingHorizontalXXS}}:host([size='large']) .count-label::before,:host([size='large']) ::slotted([slot='count'])::before{margin-inline:${spacingHorizontalSNudge}}`.withBehaviors(forcedColorsStylesheetBehavior(css`
10540
+ .display{--_icon-color-value:CanvasText;--_icon-color-empty:Canvas;--_icon-gradient-stop-visual-adjustment:0.5px;forced-color-adjust:none}.display::before{background-color:var(--_icon-color-value);content:'';grid-area:1 / 1 / -1 / -1;mask:inherit;mask-image:var(--_mask-image-outlined)}`));
10541
+
10528
10542
  const definition$e = RatingDisplay.compose({
10529
10543
  name: `${FluentDesignSystem.prefix}-rating-display`,
10530
10544
  template: template$e,
@@ -13463,6 +13477,7 @@ class BaseTree extends FASTElement {
13463
13477
  this.childTreeItems = [];
13464
13478
  this.elementInternals.role = "tree";
13465
13479
  }
13480
+ /** @internal */
13466
13481
  childTreeItemsChanged() {
13467
13482
  this.updateCurrentSelected();
13468
13483
  }
@@ -13649,6 +13664,10 @@ class BaseTree extends FASTElement {
13649
13664
  focusItem.focus();
13650
13665
  }
13651
13666
  }
13667
+ /** @internal */
13668
+ handleDefaultSlotChange() {
13669
+ this.childTreeItems = this.defaultSlot.assignedElements().filter(el => isTreeItem(el));
13670
+ }
13652
13671
  }
13653
13672
  __decorateClass$3([observable], BaseTree.prototype, "currentSelected", 2);
13654
13673
  __decorateClass$3([observable], BaseTree.prototype, "childTreeItems", 2);
@@ -13703,10 +13722,7 @@ const styles$1 = css`
13703
13722
 
13704
13723
  :host{outline:none}`;
13705
13724
 
13706
- const template$1 = html`<template tabindex="0" @click="${(x, c) => x.clickHandler(c.event)}" @focusin="${(x, c) => x.focusHandler(c.event)}" @focusout="${(x, c) => x.blurHandler(c.event)}" @keydown="${(x, c) => x.keydownHandler(c.event)}" @change="${(x, c) => x.changeHandler(c.event)}"><slot ${slotted({
13707
- property: "childTreeItems",
13708
- filter: elements(`${FluentDesignSystem.prefix}-tree-item`)
13709
- })}></slot></template>`;
13725
+ const template$1 = html`<template tabindex="0" @click="${(x, c) => x.clickHandler(c.event)}" @focusin="${(x, c) => x.focusHandler(c.event)}" @focusout="${(x, c) => x.blurHandler(c.event)}" @keydown="${(x, c) => x.keydownHandler(c.event)}" @change="${(x, c) => x.changeHandler(c.event)}"><slot ${ref("defaultSlot")} @slotchange="${x => x.handleDefaultSlotChange()}"></slot></template>`;
13710
13726
 
13711
13727
  const definition$1 = Tree.compose({
13712
13728
  name: `${FluentDesignSystem.prefix}-tree`,
@@ -13835,7 +13851,12 @@ class BaseTreeItem extends FASTElement {
13835
13851
  this.tabIndex = this.selected ? 0 : -1;
13836
13852
  }
13837
13853
  }
13854
+ /** @internal */
13855
+ handleItemSlotChange() {
13856
+ this.childTreeItems = this.itemSlot.assignedElements().filter(el => isTreeItem(el));
13857
+ }
13838
13858
  }
13859
+ __decorateClass$1([observable], BaseTreeItem.prototype, "itemSlot", 2);
13839
13860
  __decorateClass$1([attr({
13840
13861
  mode: "boolean"
13841
13862
  })], BaseTreeItem.prototype, "expanded", 2);
@@ -13914,10 +13935,7 @@ const styles = css`
13914
13935
  ${colorStrokeFocus2} inset}.positioning-region{display:flex;align-items:center;justify-content:space-between;cursor:pointer;height:${spacingVerticalXXXL};padding-inline-start:calc(var(--indent) * ${spacingHorizontalXXL});padding-inline-end:${spacingVerticalS};border-radius:${borderRadiusMedium};background-color:${colorSubtleBackground};color:${colorNeutralForeground2};gap:${spacingHorizontalXS}}@media (prefers-contrast:more){:host(:focus-visible) .positioning-region{outline:1px solid ${colorStrokeFocus2}}}.content{display:flex;align-items:center;gap:${spacingHorizontalXS}}.chevron{display:flex;align-items:center;flex-shrink:0;justify-content:center;width:${spacingHorizontalXXL};height:${spacingVerticalXXL};transition:transform ${durationFaster} ${curveEasyEaseMax};transform:rotate(0deg)}.chevron:dir(rtl){transform:rotate(180deg)}.chevron svg{inline-size:12px;block-size:12px}.aside{display:flex;align-items:center}.positioning-region:hover{background-color:${colorSubtleBackgroundHover};color:${colorNeutralForeground2Hover}}.positioning-region:active{background-color:${colorSubtleBackgroundPressed};color:${colorNeutralForeground2Pressed}}::slotted([slot='start']),::slotted([slot='end']),::slotted(:not([slot])){display:flex;align-items:center;min-width:0}::slotted([slot='start']){flex-shrink:0}::slotted(:not([slot])){padding-inline:${spacingHorizontalXXS}}.items{display:none}:host([expanded]) .items{display:block}:host([empty]) .chevron,:host([empty]) .items{visibility:hidden}:host([selected]) .positioning-region{background-color:${colorSubtleBackgroundSelected};color:${colorNeutralForeground2Selected}}:host([selected]) .content,:host([selected]) .chevron{color:${colorNeutralForeground3Selected}}:host([size='small']) .positioning-region{height:${spacingVerticalXXL};padding-inline-start:calc(var(--indent) * ${spacingHorizontalM})}:host([appearance='subtle-alpha']) .positioning-region:hover{background-color:${colorSubtleBackgroundLightAlphaHover}}:host([appearance='subtle-alpha']) .positioning-region:active{background-color:${colorSubtleBackgroundLightAlphaPressed}}:host([appearance='subtle-alpha'][selected]) .positioning-region{background-color:${colorSubtleBackgroundLightAlphaSelected};color:${colorNeutralForeground2Selected}}:host([appearance='transparent']) .positioning-region{background-color:${colorTransparentBackground}}:host([appearance='transparent']) .positioning-region:hover{background-color:${colorTransparentBackgroundHover}}:host([appearance='transparent']) .positioning-region:active{background-color:${colorTransparentBackgroundPressed}}:host([appearance='transparent'][selected]) .positioning-region{background-color:${colorTransparentBackgroundSelected};color:${colorNeutralForeground2Selected}}:host([expanded]) .chevron{transform:rotate(90deg)}`;
13915
13936
 
13916
13937
  const chevronIcon = html`<svg viewBox="0 0 12 12" fill="currentColor"><path d="M4.65 2.15a.5.5 0 000 .7L7.79 6 4.65 9.15a.5.5 0 10.7.7l3.5-3.5a.5.5 0 000-.7l-3.5-3.5a.5.5 0 00-.7 0z"></path></svg>`;
13917
- const template = html`<template slot="${x => x.isNestedItem ? "item" : void 0}"><div class="positioning-region" part="positioning-region"><div class="content" part="content"><span class="chevron" part="chevron" aria-hidden="true"><slot name="chevron">${chevronIcon}</slot></span><slot name="start"></slot><slot></slot><slot name="end"></slot></div><div class="aside" part="aside"><slot name="aside"></slot></div></div><div role="group" class="items" part="items"><slot name="item" ${slotted({
13918
- property: "childTreeItems",
13919
- filter: elements(`${FluentDesignSystem.prefix}-tree-item`)
13920
- })}></slot></div></template>`;
13938
+ const template = html`<template slot="${x => x.isNestedItem ? "item" : void 0}"><div class="positioning-region" part="positioning-region"><div class="content" part="content"><span class="chevron" part="chevron" aria-hidden="true"><slot name="chevron">${chevronIcon}</slot></span><slot name="start"></slot><slot></slot><slot name="end"></slot></div><div class="aside" part="aside"><slot name="aside"></slot></div></div><div role="group" class="items" part="items"><slot name="item" ${ref("itemSlot")} @slotchange="${x => x.handleItemSlotChange()}"></slot></div></template>`;
13921
13939
 
13922
13940
  const definition = TreeItem.compose({
13923
13941
  name: `${FluentDesignSystem.prefix}-tree-item`,