@carbon/web-components 2.62.0-rc.0 → 2.62.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/es/components/accordion/accordion-item.d.ts +0 -4
  2. package/es/components/accordion/accordion-item.d.ts.map +1 -1
  3. package/es/components/accordion/accordion-item.js +2 -6
  4. package/es/components/accordion/accordion-item.js.map +1 -1
  5. package/es/components/action-set/action-set.scss.js +1 -1
  6. package/es/components/ai-label/ai-label.scss.js +1 -1
  7. package/es/components/breadcrumb/breadcrumb.scss.js +1 -1
  8. package/es/components/button/button.scss.js +1 -1
  9. package/es/components/code-snippet/code-snippet.scss.js +1 -1
  10. package/es/components/combo-box/combo-box.scss.js +1 -1
  11. package/es/components/combo-button/combo-button.scss.js +1 -1
  12. package/es/components/contained-list/contained-list.scss.js +1 -1
  13. package/es/components/content-switcher/content-switcher.scss.js +1 -1
  14. package/es/components/copy-button/copy-button.scss.js +1 -1
  15. package/es/components/data-table/data-table.scss.js +1 -1
  16. package/es/components/date-picker/date-picker.scss.js +1 -1
  17. package/es/components/date-picker/date-picker.scss.js.map +1 -1
  18. package/es/components/date-picker/next/components/date-picker.scss.js +1 -1
  19. package/es/components/dialog/dialog.scss.js +1 -1
  20. package/es/components/dropdown/dropdown.scss.js +1 -1
  21. package/es/components/file-uploader/file-uploader.scss.js +1 -1
  22. package/es/components/fluid-combo-box/fluid-combo-box.scss.js +1 -1
  23. package/es/components/fluid-date-picker/fluid-date-picker.scss.js +1 -1
  24. package/es/components/fluid-dropdown/fluid-dropdown.scss.js +1 -1
  25. package/es/components/fluid-multi-select/fluid-multi-select.scss.js +1 -1
  26. package/es/components/fluid-number-input/fluid-number-input.scss.js +1 -1
  27. package/es/components/fluid-password-input/fluid-password-input.scss.js +1 -1
  28. package/es/components/fluid-search/fluid-search.scss.js +1 -1
  29. package/es/components/fluid-text-input/fluid-text-input.scss.js +1 -1
  30. package/es/components/fluid-time-picker/fluid-time-picker.scss.js +1 -1
  31. package/es/components/inline-loading/inline-loading.scss.js +1 -1
  32. package/es/components/loading/loading.scss.js +1 -1
  33. package/es/components/menu-button/menu-button.scss.js +1 -1
  34. package/es/components/modal/modal.scss.js +1 -1
  35. package/es/components/multi-select/multi-select.scss.js +1 -1
  36. package/es/components/notification/actionable-notification.scss.js +1 -1
  37. package/es/components/notification/inline-notification.scss.js +1 -1
  38. package/es/components/notification/toast-notification.scss.js +1 -1
  39. package/es/components/overflow-menu/overflow-menu.scss.js +1 -1
  40. package/es/components/overflow-menu/overflow-menu.scss.js.map +1 -1
  41. package/es/components/pagination/pagination.scss.js +1 -1
  42. package/es/components/pagination-nav/pagination-nav.scss.js +1 -1
  43. package/es/components/password-input/password-input.scss.js +1 -1
  44. package/es/components/progress-indicator/progress-indicator.scss.js +1 -1
  45. package/es/components/search/search.scss.js +1 -1
  46. package/es/components/skip-to-content/skip-to-content.scss.js +1 -1
  47. package/es/components/slider/slider.scss.js +1 -1
  48. package/es/components/slug/slug.scss.js +1 -1
  49. package/es/components/structured-list/structured-list.scss.js +1 -1
  50. package/es/components/structured-list/structured-list.scss.js.map +1 -1
  51. package/es/components/tabs/tabs.scss.js +1 -1
  52. package/es/components/tag/tag.scss.js +1 -1
  53. package/es/components/tag/tag.scss.js.map +1 -1
  54. package/es/components/text-input/text-input.scss.js +1 -1
  55. package/es/components/time-picker/time-picker.scss.js +1 -1
  56. package/es/components/toggle-tip/toggletip.scss.js +1 -1
  57. package/es/components/tree-view/tree-view.scss.js +1 -1
  58. package/es/components/ui-shell/header.scss.js +1 -1
  59. package/es/components/ui-shell/side-nav.scss.js +1 -1
  60. package/es/components/ui-shell/side-nav.scss.js.map +1 -1
  61. package/es-custom/components/accordion/accordion-item.d.ts +0 -4
  62. package/es-custom/components/accordion/accordion-item.d.ts.map +1 -1
  63. package/es-custom/components/accordion/accordion-item.js +2 -6
  64. package/es-custom/components/accordion/accordion-item.js.map +1 -1
  65. package/es-custom/components/action-set/action-set.scss.js +1 -1
  66. package/es-custom/components/ai-label/ai-label.scss.js +1 -1
  67. package/es-custom/components/breadcrumb/breadcrumb.scss.js +1 -1
  68. package/es-custom/components/button/button.scss.js +1 -1
  69. package/es-custom/components/code-snippet/code-snippet.scss.js +1 -1
  70. package/es-custom/components/combo-box/combo-box.scss.js +1 -1
  71. package/es-custom/components/combo-button/combo-button.scss.js +1 -1
  72. package/es-custom/components/contained-list/contained-list.scss.js +1 -1
  73. package/es-custom/components/content-switcher/content-switcher.scss.js +1 -1
  74. package/es-custom/components/copy-button/copy-button.scss.js +1 -1
  75. package/es-custom/components/data-table/data-table.scss.js +1 -1
  76. package/es-custom/components/date-picker/date-picker.scss.js +1 -1
  77. package/es-custom/components/date-picker/date-picker.scss.js.map +1 -1
  78. package/es-custom/components/date-picker/next/components/date-picker.scss.js +1 -1
  79. package/es-custom/components/dialog/dialog.scss.js +1 -1
  80. package/es-custom/components/dropdown/dropdown.scss.js +1 -1
  81. package/es-custom/components/file-uploader/file-uploader.scss.js +1 -1
  82. package/es-custom/components/fluid-combo-box/fluid-combo-box.scss.js +1 -1
  83. package/es-custom/components/fluid-date-picker/fluid-date-picker.scss.js +1 -1
  84. package/es-custom/components/fluid-dropdown/fluid-dropdown.scss.js +1 -1
  85. package/es-custom/components/fluid-multi-select/fluid-multi-select.scss.js +1 -1
  86. package/es-custom/components/fluid-number-input/fluid-number-input.scss.js +1 -1
  87. package/es-custom/components/fluid-password-input/fluid-password-input.scss.js +1 -1
  88. package/es-custom/components/fluid-search/fluid-search.scss.js +1 -1
  89. package/es-custom/components/fluid-text-input/fluid-text-input.scss.js +1 -1
  90. package/es-custom/components/fluid-time-picker/fluid-time-picker.scss.js +1 -1
  91. package/es-custom/components/inline-loading/inline-loading.scss.js +1 -1
  92. package/es-custom/components/loading/loading.scss.js +1 -1
  93. package/es-custom/components/menu-button/menu-button.scss.js +1 -1
  94. package/es-custom/components/modal/modal.scss.js +1 -1
  95. package/es-custom/components/multi-select/multi-select.scss.js +1 -1
  96. package/es-custom/components/notification/actionable-notification.scss.js +1 -1
  97. package/es-custom/components/notification/inline-notification.scss.js +1 -1
  98. package/es-custom/components/notification/toast-notification.scss.js +1 -1
  99. package/es-custom/components/overflow-menu/overflow-menu.scss.js +1 -1
  100. package/es-custom/components/overflow-menu/overflow-menu.scss.js.map +1 -1
  101. package/es-custom/components/pagination/pagination.scss.js +1 -1
  102. package/es-custom/components/pagination-nav/pagination-nav.scss.js +1 -1
  103. package/es-custom/components/password-input/password-input.scss.js +1 -1
  104. package/es-custom/components/progress-indicator/progress-indicator.scss.js +1 -1
  105. package/es-custom/components/search/search.scss.js +1 -1
  106. package/es-custom/components/skip-to-content/skip-to-content.scss.js +1 -1
  107. package/es-custom/components/slider/slider.scss.js +1 -1
  108. package/es-custom/components/slug/slug.scss.js +1 -1
  109. package/es-custom/components/structured-list/structured-list.scss.js +1 -1
  110. package/es-custom/components/structured-list/structured-list.scss.js.map +1 -1
  111. package/es-custom/components/tabs/tabs.scss.js +1 -1
  112. package/es-custom/components/tag/tag.scss.js +1 -1
  113. package/es-custom/components/tag/tag.scss.js.map +1 -1
  114. package/es-custom/components/text-input/text-input.scss.js +1 -1
  115. package/es-custom/components/time-picker/time-picker.scss.js +1 -1
  116. package/es-custom/components/toggle-tip/toggletip.scss.js +1 -1
  117. package/es-custom/components/tree-view/tree-view.scss.js +1 -1
  118. package/es-custom/components/ui-shell/header.scss.js +1 -1
  119. package/es-custom/components/ui-shell/side-nav.scss.js +1 -1
  120. package/es-custom/components/ui-shell/side-nav.scss.js.map +1 -1
  121. package/lib/components/accordion/accordion-item.d.ts +0 -4
  122. package/lib/components/accordion/accordion-item.d.ts.map +1 -1
  123. package/package.json +7 -7
  124. package/scss/components/date-picker/date-picker.scss +10 -6
  125. package/scss/components/overflow-menu/overflow-menu.scss +31 -11
  126. package/scss/components/structured-list/structured-list.scss +10 -8
  127. package/scss/components/tag/tag.scss +11 -7
  128. package/scss/components/ui-shell/side-nav.scss +9 -7
@@ -44,10 +44,6 @@ declare class CDSAccordionItem extends CDSAccordionItem_base {
44
44
  * Handler for the `click` event on the expando button.
45
45
  */
46
46
  private _handleClickExpando;
47
- /**
48
- * Handler for the `keydown` event on the expando button.
49
- */
50
- private _handleKeydownExpando;
51
47
  /**
52
48
  * The `ResizeObserver` instance for observing element resizes for re-positioning floating menu position.
53
49
  */
@@ -1 +1 @@
1
- {"version":3,"file":"accordion-item.d.ts","sourceRoot":"","sources":["../../../src/components/accordion/accordion-item.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAOvC,OAAO,EAAE,yBAAyB,EAAE,MAAM,QAAQ,CAAC;AAInD,OAAO,EAAE,yBAAyB,EAAE,CAAC;;;;AAqBrC;;;;;;;;;;GAUG;AACH,cACM,gBAAiB,SAAQ,qBAAsB;IACnD;;OAEG;IAEH,OAAO,CAAC,iBAAiB,CAAkB;IAE3C;;OAEG;IACH,OAAO,CAAC,kBAAkB,CAAC,CAA4B;IAEvD;;OAEG;IACH,OAAO,CAAC,eAAe,CAAuB;IAE9C;;;;OAIG;IACH,OAAO,CAAC,0BAA0B;IAqClC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAI3B;;OAEG;IACH,OAAO,CAAC,qBAAqB,CAI3B;IAEF;;OAEG;IAIH,OAAO,CAAC,eAAe,CAYrB;IAEF;;OAEG;IAEH,QAAQ,UAAS;IAEjB;;OAEG;IAEH,IAAI,UAAS;IAEb;;OAEG;IAEH,KAAK,SAAM;IAEX,iBAAiB;IAWjB,oBAAoB;IAMpB,MAAM;IA2CN;;;;OAIG;IACH,MAAM,KAAK,mBAAmB;;;MAK7B;IAED;;;;OAIG;IACH,MAAM,KAAK,iBAAiB;;;MAK3B;IAED;;;OAGG;IACH,MAAM,KAAK,iBAAiB,WAE3B;IAED;;OAEG;IACH,MAAM,KAAK,WAAW,WAErB;IAED,MAAM,CAAC,MAAM,MAAU;CACxB;AAED,eAAe,gBAAgB,CAAC"}
1
+ {"version":3,"file":"accordion-item.d.ts","sourceRoot":"","sources":["../../../src/components/accordion/accordion-item.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAOvC,OAAO,EAAE,yBAAyB,EAAE,MAAM,QAAQ,CAAC;AAInD,OAAO,EAAE,yBAAyB,EAAE,CAAC;;;;AAqBrC;;;;;;;;;;GAUG;AACH,cACM,gBAAiB,SAAQ,qBAAsB;IACnD;;OAEG;IAEH,OAAO,CAAC,iBAAiB,CAAkB;IAE3C;;OAEG;IACH,OAAO,CAAC,kBAAkB,CAAC,CAA4B;IAEvD;;OAEG;IACH,OAAO,CAAC,eAAe,CAAuB;IAE9C;;;;OAIG;IACH,OAAO,CAAC,0BAA0B;IAqClC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAI3B;;OAEG;IAIH,OAAO,CAAC,eAAe,CAYrB;IAEF;;OAEG;IAEH,QAAQ,UAAS;IAEjB;;OAEG;IAEH,IAAI,UAAS;IAEb;;OAEG;IAEH,KAAK,SAAM;IAEX,iBAAiB;IAWjB,oBAAoB;IAMpB,MAAM;IAyCN;;;;OAIG;IACH,MAAM,KAAK,mBAAmB;;;MAK7B;IAED;;;;OAIG;IACH,MAAM,KAAK,iBAAiB;;;MAK3B;IAED;;;OAGG;IACH,MAAM,KAAK,iBAAiB,WAE3B;IAED;;OAEG;IACH,MAAM,KAAK,WAAW,WAErB;IAED,MAAM,CAAC,MAAM,MAAU;CACxB;AAED,eAAe,gBAAgB,CAAC"}
@@ -52,9 +52,6 @@ let CDSAccordionItem = class CDSAccordionItem extends FocusMixin(LitElement) {
52
52
  constructor(..._args) {
53
53
  super(..._args);
54
54
  this._hObserveResize = null;
55
- this._handleKeydownExpando = ({ key }) => {
56
- if (this.open && (key === "Esc" || key === "Escape")) this._handleUserInitiatedToggle(false);
57
- };
58
55
  this._resizeObserver = new ResizeObserver((records) => {
59
56
  const { width } = records[records.length - 1].contentRect;
60
57
  const { _sizesBreakpoints: sizesBreakpoints } = this.constructor;
@@ -104,7 +101,7 @@ let CDSAccordionItem = class CDSAccordionItem extends FocusMixin(LitElement) {
104
101
  if (this._hObserveResize) this._hObserveResize = this._hObserveResize.release();
105
102
  }
106
103
  render() {
107
- const { disabled, title, open, _currentBreakpoint: currentBreakpoint, _handleClickExpando: handleClickExpando, _handleKeydownExpando: handleKeydownExpando } = this;
104
+ const { disabled, title, open, _currentBreakpoint: currentBreakpoint, _handleClickExpando: handleClickExpando } = this;
108
105
  const { _classesBreakpoints: classesBreakpoints } = this.constructor;
109
106
  const { [currentBreakpoint]: classBreakpoint } = classesBreakpoints;
110
107
  const contentClasses = classMap({
@@ -119,8 +116,7 @@ let CDSAccordionItem = class CDSAccordionItem extends FocusMixin(LitElement) {
119
116
  class="${"cds"}--accordion__heading"
120
117
  aria-controls="content"
121
118
  aria-expanded="${open}"
122
- @click="${handleClickExpando}"
123
- @keydown="${handleKeydownExpando}">
119
+ @click="${handleClickExpando}">
124
120
  ${iconLoader(ChevronRight16, {
125
121
  part: "expando-icon",
126
122
  class: `cds--accordion__arrow`
@@ -1 +1 @@
1
- {"version":3,"file":"accordion-item.js","names":["styles","customElement"],"sources":["../../../src/components/accordion/accordion-item.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2026\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { classMap } from 'lit/directives/class-map.js';\nimport { LitElement, html } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport ChevronRight16 from '@carbon/icons/es/chevron--right/16.js';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport FocusMixin from '../../globals/mixins/focus';\nimport Handle from '../../globals/internal/handle';\nimport { ACCORDION_ITEM_BREAKPOINT } from './defs';\nimport styles from './accordion.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport { ACCORDION_ITEM_BREAKPOINT };\n\n/**\n * Observes resize of the given element with the given resize observer.\n *\n * @param observer The resize observer.\n * @param elem The element to observe the resize.\n */\nconst observeResize = (observer: ResizeObserver, elem: Element) => {\n if (!elem) {\n return null;\n }\n observer.observe(elem);\n return {\n release() {\n observer.unobserve(elem);\n return null;\n },\n } as Handle;\n};\n\n/**\n * Accordion item.\n *\n * @element cds-accordion-item\n * @fires cds-accordion-item-beingtoggled\n * The custom event fired before this accordion item is being toggled upon a user gesture.\n * Cancellation of this event stops the user-initiated action of toggling this accordion item.\n * @fires cds-accordion-item-toggled - The custom event fired after this accordion item is toggled upon a user gesture.\n * @csspart title The title.\n * @csspart content The content.\n */\n@customElement(`${prefix}-accordion-item`)\nclass CDSAccordionItem extends FocusMixin(LitElement) {\n /**\n * The accordion content container.\n */\n @query(`.${prefix}--accordion__content`)\n private _accordionContent!: HTMLDivElement;\n\n /**\n * The current breakpoint.\n */\n private _currentBreakpoint?: ACCORDION_ITEM_BREAKPOINT;\n\n /**\n * The handle for observing resize of the parent element of this element.\n */\n private _hObserveResize: Handle | null = null;\n\n /**\n * Handles user-initiated toggle request of this accordion item.\n *\n * @param open The new open state.\n */\n private _handleUserInitiatedToggle(open = !this.open) {\n const init = {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: {\n open,\n },\n };\n if (\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSAccordionItem).eventBeforeToggle,\n init\n )\n )\n ) {\n if (!this.open) {\n this.setAttribute('expanding', '');\n } else {\n this.setAttribute('collapsing', '');\n }\n this._accordionContent?.addEventListener('animationend', () => {\n this.removeAttribute('expanding');\n this.removeAttribute('collapsing');\n });\n\n this.open = open;\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSAccordionItem).eventToggle,\n init\n )\n );\n }\n }\n\n /**\n * Handler for the `click` event on the expando button.\n */\n private _handleClickExpando() {\n this._handleUserInitiatedToggle();\n }\n\n /**\n * Handler for the `keydown` event on the expando button.\n */\n private _handleKeydownExpando = ({ key }: KeyboardEvent) => {\n if (this.open && (key === 'Esc' || key === 'Escape')) {\n this._handleUserInitiatedToggle(false);\n }\n };\n\n /**\n * The `ResizeObserver` instance for observing element resizes for re-positioning floating menu position.\n */\n // TODO: Wait for `.d.ts` update to support `ResizeObserver`\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore\n private _resizeObserver = new ResizeObserver(\n (records: ResizeObserverEntry[]) => {\n const { width } = records[records.length - 1].contentRect;\n const { _sizesBreakpoints: sizesBreakpoints } = this\n .constructor as typeof CDSAccordionItem;\n this._currentBreakpoint = Object.keys(sizesBreakpoints)\n .sort((lhs, rhs) => sizesBreakpoints[rhs] - sizesBreakpoints[lhs])\n .find(\n (size) => width >= sizesBreakpoints[size]\n ) as ACCORDION_ITEM_BREAKPOINT;\n this.requestUpdate();\n }\n );\n\n /**\n * `true` if the accordion item should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * `true` if the accordion item should be open.\n */\n @property({ type: Boolean, reflect: true })\n open = false;\n\n /**\n * The title text.\n */\n @property({ attribute: 'title' })\n title = '';\n\n connectedCallback() {\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'listitem');\n }\n super.connectedCallback();\n if (this._hObserveResize) {\n this._hObserveResize = this._hObserveResize.release();\n }\n this._hObserveResize = observeResize(this._resizeObserver, this);\n }\n\n disconnectedCallback() {\n if (this._hObserveResize) {\n this._hObserveResize = this._hObserveResize.release();\n }\n }\n\n render() {\n const {\n disabled,\n title,\n open,\n _currentBreakpoint: currentBreakpoint,\n _handleClickExpando: handleClickExpando,\n _handleKeydownExpando: handleKeydownExpando,\n } = this;\n const { _classesBreakpoints: classesBreakpoints } = this\n .constructor as typeof CDSAccordionItem;\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n const { [currentBreakpoint!]: classBreakpoint } = classesBreakpoints;\n const contentClasses = classMap({\n [classBreakpoint]: classBreakpoint,\n [`${prefix}--accordion__content`]: true,\n });\n return html`\n <button\n ?disabled=\"${disabled}\"\n type=\"button\"\n part=\"expando\"\n class=\"${prefix}--accordion__heading\"\n aria-controls=\"content\"\n aria-expanded=\"${open}\"\n @click=\"${handleClickExpando}\"\n @keydown=\"${handleKeydownExpando}\">\n ${iconLoader(ChevronRight16, {\n part: 'expando-icon',\n class: `${prefix}--accordion__arrow`,\n })}\n <div part=\"title\" class=\"${prefix}--accordion__title\">\n <slot name=\"title\">${title}</slot>\n </div>\n </button>\n <div class=\"${prefix}--accordion__wrapper\" part=\"wrapper\">\n <div id=\"content\" part=\"content\" class=\"${contentClasses}\">\n <slot></slot>\n </div>\n </div>\n `;\n }\n\n /**\n * The CSS classes for breakpoints.\n *\n * @private\n */\n static get _classesBreakpoints() {\n return {\n [ACCORDION_ITEM_BREAKPOINT.SMALL]: `${prefix}-ce--accordion__content--${ACCORDION_ITEM_BREAKPOINT.SMALL}`,\n [ACCORDION_ITEM_BREAKPOINT.MEDIUM]: `${prefix}-ce--accordion__content--${ACCORDION_ITEM_BREAKPOINT.MEDIUM}`,\n };\n }\n\n /**\n * The breakpoints.\n *\n * @private\n */\n static get _sizesBreakpoints() {\n return {\n [ACCORDION_ITEM_BREAKPOINT.SMALL]: 480,\n [ACCORDION_ITEM_BREAKPOINT.MEDIUM]: 640,\n };\n }\n\n /**\n * The name of the custom event fired before this accordion item is being toggled upon a user gesture.\n * Cancellation of this event stops the user-initiated action of toggling this accordion item.\n */\n static get eventBeforeToggle() {\n return `${prefix}-accordion-item-beingtoggled`;\n }\n\n /**\n * The name of the custom event fired after this accordion item is toggled upon a user gesture.\n */\n static get eventToggle() {\n return `${prefix}-accordion-item-toggled`;\n }\n\n static styles = styles;\n}\n\nexport default CDSAccordionItem;\n"],"mappings":"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"}
1
+ {"version":3,"file":"accordion-item.js","names":["styles","customElement"],"sources":["../../../src/components/accordion/accordion-item.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2026\n *\n * This source code is licensed under the Apache-2.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { classMap } from 'lit/directives/class-map.js';\nimport { LitElement, html } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport ChevronRight16 from '@carbon/icons/es/chevron--right/16.js';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport FocusMixin from '../../globals/mixins/focus';\nimport Handle from '../../globals/internal/handle';\nimport { ACCORDION_ITEM_BREAKPOINT } from './defs';\nimport styles from './accordion.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport { ACCORDION_ITEM_BREAKPOINT };\n\n/**\n * Observes resize of the given element with the given resize observer.\n *\n * @param observer The resize observer.\n * @param elem The element to observe the resize.\n */\nconst observeResize = (observer: ResizeObserver, elem: Element) => {\n if (!elem) {\n return null;\n }\n observer.observe(elem);\n return {\n release() {\n observer.unobserve(elem);\n return null;\n },\n } as Handle;\n};\n\n/**\n * Accordion item.\n *\n * @element cds-accordion-item\n * @fires cds-accordion-item-beingtoggled\n * The custom event fired before this accordion item is being toggled upon a user gesture.\n * Cancellation of this event stops the user-initiated action of toggling this accordion item.\n * @fires cds-accordion-item-toggled - The custom event fired after this accordion item is toggled upon a user gesture.\n * @csspart title The title.\n * @csspart content The content.\n */\n@customElement(`${prefix}-accordion-item`)\nclass CDSAccordionItem extends FocusMixin(LitElement) {\n /**\n * The accordion content container.\n */\n @query(`.${prefix}--accordion__content`)\n private _accordionContent!: HTMLDivElement;\n\n /**\n * The current breakpoint.\n */\n private _currentBreakpoint?: ACCORDION_ITEM_BREAKPOINT;\n\n /**\n * The handle for observing resize of the parent element of this element.\n */\n private _hObserveResize: Handle | null = null;\n\n /**\n * Handles user-initiated toggle request of this accordion item.\n *\n * @param open The new open state.\n */\n private _handleUserInitiatedToggle(open = !this.open) {\n const init = {\n bubbles: true,\n cancelable: true,\n composed: true,\n detail: {\n open,\n },\n };\n if (\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSAccordionItem).eventBeforeToggle,\n init\n )\n )\n ) {\n if (!this.open) {\n this.setAttribute('expanding', '');\n } else {\n this.setAttribute('collapsing', '');\n }\n this._accordionContent?.addEventListener('animationend', () => {\n this.removeAttribute('expanding');\n this.removeAttribute('collapsing');\n });\n\n this.open = open;\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSAccordionItem).eventToggle,\n init\n )\n );\n }\n }\n\n /**\n * Handler for the `click` event on the expando button.\n */\n private _handleClickExpando() {\n this._handleUserInitiatedToggle();\n }\n\n /**\n * The `ResizeObserver` instance for observing element resizes for re-positioning floating menu position.\n */\n // TODO: Wait for `.d.ts` update to support `ResizeObserver`\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore\n private _resizeObserver = new ResizeObserver(\n (records: ResizeObserverEntry[]) => {\n const { width } = records[records.length - 1].contentRect;\n const { _sizesBreakpoints: sizesBreakpoints } = this\n .constructor as typeof CDSAccordionItem;\n this._currentBreakpoint = Object.keys(sizesBreakpoints)\n .sort((lhs, rhs) => sizesBreakpoints[rhs] - sizesBreakpoints[lhs])\n .find(\n (size) => width >= sizesBreakpoints[size]\n ) as ACCORDION_ITEM_BREAKPOINT;\n this.requestUpdate();\n }\n );\n\n /**\n * `true` if the accordion item should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * `true` if the accordion item should be open.\n */\n @property({ type: Boolean, reflect: true })\n open = false;\n\n /**\n * The title text.\n */\n @property({ attribute: 'title' })\n title = '';\n\n connectedCallback() {\n if (!this.hasAttribute('role')) {\n this.setAttribute('role', 'listitem');\n }\n super.connectedCallback();\n if (this._hObserveResize) {\n this._hObserveResize = this._hObserveResize.release();\n }\n this._hObserveResize = observeResize(this._resizeObserver, this);\n }\n\n disconnectedCallback() {\n if (this._hObserveResize) {\n this._hObserveResize = this._hObserveResize.release();\n }\n }\n\n render() {\n const {\n disabled,\n title,\n open,\n _currentBreakpoint: currentBreakpoint,\n _handleClickExpando: handleClickExpando,\n } = this;\n const { _classesBreakpoints: classesBreakpoints } = this\n .constructor as typeof CDSAccordionItem;\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n const { [currentBreakpoint!]: classBreakpoint } = classesBreakpoints;\n const contentClasses = classMap({\n [classBreakpoint]: classBreakpoint,\n [`${prefix}--accordion__content`]: true,\n });\n return html`\n <button\n ?disabled=\"${disabled}\"\n type=\"button\"\n part=\"expando\"\n class=\"${prefix}--accordion__heading\"\n aria-controls=\"content\"\n aria-expanded=\"${open}\"\n @click=\"${handleClickExpando}\">\n ${iconLoader(ChevronRight16, {\n part: 'expando-icon',\n class: `${prefix}--accordion__arrow`,\n })}\n <div part=\"title\" class=\"${prefix}--accordion__title\">\n <slot name=\"title\">${title}</slot>\n </div>\n </button>\n <div class=\"${prefix}--accordion__wrapper\" part=\"wrapper\">\n <div id=\"content\" part=\"content\" class=\"${contentClasses}\">\n <slot></slot>\n </div>\n </div>\n `;\n }\n\n /**\n * The CSS classes for breakpoints.\n *\n * @private\n */\n static get _classesBreakpoints() {\n return {\n [ACCORDION_ITEM_BREAKPOINT.SMALL]: `${prefix}-ce--accordion__content--${ACCORDION_ITEM_BREAKPOINT.SMALL}`,\n [ACCORDION_ITEM_BREAKPOINT.MEDIUM]: `${prefix}-ce--accordion__content--${ACCORDION_ITEM_BREAKPOINT.MEDIUM}`,\n };\n }\n\n /**\n * The breakpoints.\n *\n * @private\n */\n static get _sizesBreakpoints() {\n return {\n [ACCORDION_ITEM_BREAKPOINT.SMALL]: 480,\n [ACCORDION_ITEM_BREAKPOINT.MEDIUM]: 640,\n };\n }\n\n /**\n * The name of the custom event fired before this accordion item is being toggled upon a user gesture.\n * Cancellation of this event stops the user-initiated action of toggling this accordion item.\n */\n static get eventBeforeToggle() {\n return `${prefix}-accordion-item-beingtoggled`;\n }\n\n /**\n * The name of the custom event fired after this accordion item is toggled upon a user gesture.\n */\n static get eventToggle() {\n return `${prefix}-accordion-item-toggled`;\n }\n\n static styles = styles;\n}\n\nexport default CDSAccordionItem;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2BA,MAAM,iBAAiB,UAA0B,SAAkB;CACjE,IAAI,CAAC,MACH,OAAO;CAET,SAAS,QAAQ,IAAI;CACrB,OAAO,EACL,UAAU;EACR,SAAS,UAAU,IAAI;EACvB,OAAO;CACT,EACF;AACF;;;;;;;;;;;;AAaA,IAAA,mBAAA,MACM,yBAAyB,WAAW,UAAU,CAAC,CAAC;;;yBAeX;yBAyDf,IAAI,gBAC3B,YAAmC;GAClC,MAAM,EAAE,UAAU,QAAQ,QAAQ,SAAS,EAAE,CAAC;GAC9C,MAAM,EAAE,mBAAmB,qBAAqB,KAC7C;GACH,KAAK,qBAAqB,OAAO,KAAK,gBAAgB,CAAC,CACpD,MAAM,KAAK,QAAQ,iBAAiB,OAAO,iBAAiB,IAAI,CAAC,CACjE,MACE,SAAS,SAAS,iBAAiB,KACtC;GACF,KAAK,cAAc;EACrB,CACF;kBAMW;cAMJ;eAMC;;;;;;;CAhFR,2BAAmC,OAAO,CAAC,KAAK,MAAM;EACpD,MAAM,OAAO;GACX,SAAS;GACT,YAAY;GACZ,UAAU;GACV,QAAQ,EACN,KACF;EACF;EACA,IACE,KAAK,cACH,IAAI,YACD,KAAK,YAAwC,mBAC9C,IACF,CACF,GACA;GACA,IAAI,CAAC,KAAK,MACR,KAAK,aAAa,aAAa,EAAE;QAEjC,KAAK,aAAa,cAAc,EAAE;GAEpC,KAAK,mBAAmB,iBAAiB,sBAAsB;IAC7D,KAAK,gBAAgB,WAAW;IAChC,KAAK,gBAAgB,YAAY;GACnC,CAAC;GAED,KAAK,OAAO;GACZ,KAAK,cACH,IAAI,YACD,KAAK,YAAwC,aAC9C,IACF,CACF;EACF;CACF;;;;CAKA,sBAA8B;EAC5B,KAAK,2BAA2B;CAClC;CAwCA,oBAAoB;EAClB,IAAI,CAAC,KAAK,aAAa,MAAM,GAC3B,KAAK,aAAa,QAAQ,UAAU;EAEtC,MAAM,kBAAkB;EACxB,IAAI,KAAK,iBACP,KAAK,kBAAkB,KAAK,gBAAgB,QAAQ;EAEtD,KAAK,kBAAkB,cAAc,KAAK,iBAAiB,IAAI;CACjE;CAEA,uBAAuB;EACrB,IAAI,KAAK,iBACP,KAAK,kBAAkB,KAAK,gBAAgB,QAAQ;CAExD;CAEA,SAAS;EACP,MAAM,EACJ,UACA,OACA,MACA,oBAAoB,mBACpB,qBAAqB,uBACnB;EACJ,MAAM,EAAE,qBAAqB,uBAAuB,KACjD;EAEH,MAAM,GAAG,oBAAqB,oBAAoB;EAClD,MAAM,iBAAiB,SAAS;IAC7B,kBAAkB;IAClB,4BAAkC;EACrC,CAAC;EACD,OAAO,IAAI;;qBAEM,SAAS;;;uBAGN;;yBAEC,KAAK;kBACZ,mBAAmB;UAC3B,WAAW,gBAAgB;GAC3B,MAAM;GACN,OAAO;EACT,CAAC,EAAE;yCAC+B;+BACX,MAAM;;;0BAGV;kDACuB,eAAe;;;;;CAK/D;;;;;;CAOA,WAAW,sBAAsB;EAC/B,OAAO;WAC8B;WACC;EACtC;CACF;;;;;;CAOA,WAAW,oBAAoB;EAC7B,OAAO;WAC8B;WACC;EACtC;CACF;;;;;CAMA,WAAW,oBAAoB;EAC7B,OAAO;CACT;;;;CAKA,WAAW,cAAc;EACvB,OAAO;CACT;;gBAEgBA;;AAClB;YAtMG,MAAM,0BAAgC,CAAA,GAAA,iBAAA,WAAA,qBAAA,KAAA,CAAA;YAqFtC,SAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,iBAAA,WAAA,YAAA,KAAA,CAAA;YAMzC,SAAS;CAAE,MAAM;CAAS,SAAS;AAAK,CAAC,CAAA,GAAA,iBAAA,WAAA,QAAA,KAAA,CAAA;YAMzC,SAAS,EAAE,WAAW,QAAQ,CAAC,CAAA,GAAA,iBAAA,WAAA,SAAA,KAAA,CAAA;+BAtGjCC,cAAc,oBAA0B,CAAA,GAAA,gBAAA;AA6MzC,IAAA,yBAAe"}