@carbon/web-components 2.48.0 → 2.49.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 (226) hide show
  1. package/custom-elements.json +38 -13
  2. package/es/components/ai-label/ai-label.scss.js +1 -1
  3. package/es/components/breadcrumb/breadcrumb.scss.js +1 -1
  4. package/es/components/button/button-set.js +1 -1
  5. package/es/components/button/button-set.js.map +1 -1
  6. package/es/components/button/button.scss.js +1 -1
  7. package/es/components/checkbox/checkbox.js +1 -1
  8. package/es/components/checkbox/checkbox.js.map +1 -1
  9. package/es/components/code-snippet/code-snippet.scss.js +1 -1
  10. package/es/components/combo-box/combo-box-item.d.ts +3 -4
  11. package/es/components/combo-box/combo-box-item.js +0 -14
  12. package/es/components/combo-box/combo-box-item.js.map +1 -1
  13. package/es/components/combo-box/combo-box.d.ts +7 -0
  14. package/es/components/combo-box/combo-box.js +30 -8
  15. package/es/components/combo-box/combo-box.js.map +1 -1
  16. package/es/components/combo-box/combo-box.scss.js +1 -1
  17. package/es/components/combo-button/combo-button.scss.js +1 -1
  18. package/es/components/contained-list/contained-list.scss.js +1 -1
  19. package/es/components/content-switcher/content-switcher-item.d.ts +1 -1
  20. package/es/components/content-switcher/content-switcher-item.js +2 -2
  21. package/es/components/content-switcher/content-switcher-item.js.map +1 -1
  22. package/es/components/content-switcher/content-switcher.scss.js +1 -1
  23. package/es/components/copy-button/copy-button.scss.js +1 -1
  24. package/es/components/data-table/data-table.scss.js +1 -1
  25. package/es/components/data-table/table-skeleton.d.ts +1 -5
  26. package/es/components/data-table/table-skeleton.js +2 -10
  27. package/es/components/data-table/table-skeleton.js.map +1 -1
  28. package/es/components/dropdown/dropdown-item.d.ts +15 -0
  29. package/es/components/dropdown/dropdown-item.js +52 -0
  30. package/es/components/dropdown/dropdown-item.js.map +1 -1
  31. package/es/components/dropdown/dropdown.js +0 -1
  32. package/es/components/dropdown/dropdown.js.map +1 -1
  33. package/es/components/dropdown/dropdown.scss.js +1 -1
  34. package/es/components/file-uploader/file-uploader.scss.js +1 -1
  35. package/es/components/menu-button/menu-button.scss.js +1 -1
  36. package/es/components/modal/modal.scss.js +1 -1
  37. package/es/components/multi-select/multi-select.js +0 -3
  38. package/es/components/multi-select/multi-select.js.map +1 -1
  39. package/es/components/notification/actionable-notification.scss.js +1 -1
  40. package/es/components/notification/inline-notification.scss.js +1 -1
  41. package/es/components/notification/toast-notification.scss.js +1 -1
  42. package/es/components/overflow-menu/overflow-menu-item.d.ts +5 -1
  43. package/es/components/overflow-menu/overflow-menu-item.js +24 -1
  44. package/es/components/overflow-menu/overflow-menu-item.js.map +1 -1
  45. package/es/components/overflow-menu/overflow-menu.d.ts +1 -1
  46. package/es/components/overflow-menu/overflow-menu.js +3 -3
  47. package/es/components/overflow-menu/overflow-menu.js.map +1 -1
  48. package/es/components/overflow-menu/overflow-menu.scss.js +1 -1
  49. package/es/components/pagination/pagination.scss.js +1 -1
  50. package/es/components/pagination-nav/pagination-nav.scss.js +1 -1
  51. package/es/components/popover/popover.d.ts +12 -2
  52. package/es/components/popover/popover.js +56 -37
  53. package/es/components/popover/popover.js.map +1 -1
  54. package/es/components/popover/popover.scss.js +1 -1
  55. package/es/components/progress-indicator/progress-indicator.scss.js +1 -1
  56. package/es/components/progress-indicator/progress-step.d.ts +1 -1
  57. package/es/components/progress-indicator/progress-step.js +2 -2
  58. package/es/components/progress-indicator/progress-step.js.map +1 -1
  59. package/es/components/radio-button/radio-button.js +1 -1
  60. package/es/components/radio-button/radio-button.js.map +1 -1
  61. package/es/components/select/select.d.ts +1 -1
  62. package/es/components/select/select.js +3 -3
  63. package/es/components/select/select.js.map +1 -1
  64. package/es/components/skip-to-content/skip-to-content.scss.js +1 -1
  65. package/es/components/slug/slug.scss.js +1 -1
  66. package/es/components/tabs/tab.d.ts +1 -1
  67. package/es/components/tabs/tab.js +2 -2
  68. package/es/components/tabs/tab.js.map +1 -1
  69. package/es/components/tabs/tabs.scss.js +1 -1
  70. package/es/components/tag/tag.d.ts +1 -1
  71. package/es/components/tag/tag.js +2 -2
  72. package/es/components/tag/tag.js.map +1 -1
  73. package/es/components/tag/tag.scss.js +1 -1
  74. package/es/components/text-input/text-input.d.ts +2 -0
  75. package/es/components/text-input/text-input.js +26 -14
  76. package/es/components/text-input/text-input.js.map +1 -1
  77. package/es/components/tile/expandable-tile.d.ts +1 -1
  78. package/es/components/tile/expandable-tile.js +2 -2
  79. package/es/components/tile/expandable-tile.js.map +1 -1
  80. package/es/components/time-picker/time-picker-select.d.ts +1 -1
  81. package/es/components/time-picker/time-picker-select.js +2 -2
  82. package/es/components/time-picker/time-picker-select.js.map +1 -1
  83. package/es/components/toggle-tip/toggletip.d.ts +0 -1
  84. package/es/components/toggle-tip/toggletip.js +2 -13
  85. package/es/components/toggle-tip/toggletip.js.map +1 -1
  86. package/es/components/toggle-tip/toggletip.scss.js +1 -1
  87. package/es/components/tooltip/tooltip.scss.js +1 -1
  88. package/es/components/ui-shell/header-menu.d.ts +1 -1
  89. package/es/components/ui-shell/header-menu.js +2 -2
  90. package/es/components/ui-shell/header-menu.js.map +1 -1
  91. package/es/components/ui-shell/header.scss.js +1 -1
  92. package/es/components/ui-shell/side-nav-menu.d.ts +1 -1
  93. package/es/components/ui-shell/side-nav-menu.js +2 -2
  94. package/es/components/ui-shell/side-nav-menu.js.map +1 -1
  95. package/es/globals/controllers/floating-controller.js +6 -2
  96. package/es/globals/controllers/floating-controller.js.map +1 -1
  97. package/es/globals/internal/deep-shadow-contains.d.ts +15 -0
  98. package/es/globals/internal/deep-shadow-contains.js +36 -0
  99. package/es/globals/internal/deep-shadow-contains.js.map +1 -0
  100. package/es/polyfills/toggle-attribute.d.ts +1 -1
  101. package/es-custom/components/ai-label/ai-label.scss.js +1 -1
  102. package/es-custom/components/breadcrumb/breadcrumb.scss.js +1 -1
  103. package/es-custom/components/button/button-set.js +1 -1
  104. package/es-custom/components/button/button-set.js.map +1 -1
  105. package/es-custom/components/button/button.scss.js +1 -1
  106. package/es-custom/components/checkbox/checkbox.js +1 -1
  107. package/es-custom/components/checkbox/checkbox.js.map +1 -1
  108. package/es-custom/components/code-snippet/code-snippet.scss.js +1 -1
  109. package/es-custom/components/combo-box/combo-box-item.d.ts +3 -4
  110. package/es-custom/components/combo-box/combo-box-item.js +0 -14
  111. package/es-custom/components/combo-box/combo-box-item.js.map +1 -1
  112. package/es-custom/components/combo-box/combo-box.d.ts +7 -0
  113. package/es-custom/components/combo-box/combo-box.js +30 -8
  114. package/es-custom/components/combo-box/combo-box.js.map +1 -1
  115. package/es-custom/components/combo-box/combo-box.scss.js +1 -1
  116. package/es-custom/components/combo-button/combo-button.scss.js +1 -1
  117. package/es-custom/components/contained-list/contained-list.scss.js +1 -1
  118. package/es-custom/components/content-switcher/content-switcher-item.d.ts +1 -1
  119. package/es-custom/components/content-switcher/content-switcher-item.js +2 -2
  120. package/es-custom/components/content-switcher/content-switcher-item.js.map +1 -1
  121. package/es-custom/components/content-switcher/content-switcher.scss.js +1 -1
  122. package/es-custom/components/copy-button/copy-button.scss.js +1 -1
  123. package/es-custom/components/data-table/data-table.scss.js +1 -1
  124. package/es-custom/components/data-table/table-skeleton.d.ts +1 -5
  125. package/es-custom/components/data-table/table-skeleton.js +2 -10
  126. package/es-custom/components/data-table/table-skeleton.js.map +1 -1
  127. package/es-custom/components/dropdown/dropdown-item.d.ts +15 -0
  128. package/es-custom/components/dropdown/dropdown-item.js +52 -0
  129. package/es-custom/components/dropdown/dropdown-item.js.map +1 -1
  130. package/es-custom/components/dropdown/dropdown.js +0 -1
  131. package/es-custom/components/dropdown/dropdown.js.map +1 -1
  132. package/es-custom/components/dropdown/dropdown.scss.js +1 -1
  133. package/es-custom/components/file-uploader/file-uploader.scss.js +1 -1
  134. package/es-custom/components/menu-button/menu-button.scss.js +1 -1
  135. package/es-custom/components/modal/modal.scss.js +1 -1
  136. package/es-custom/components/multi-select/multi-select.js +0 -3
  137. package/es-custom/components/multi-select/multi-select.js.map +1 -1
  138. package/es-custom/components/notification/actionable-notification.scss.js +1 -1
  139. package/es-custom/components/notification/inline-notification.scss.js +1 -1
  140. package/es-custom/components/notification/toast-notification.scss.js +1 -1
  141. package/es-custom/components/overflow-menu/overflow-menu-item.d.ts +5 -1
  142. package/es-custom/components/overflow-menu/overflow-menu-item.js +24 -1
  143. package/es-custom/components/overflow-menu/overflow-menu-item.js.map +1 -1
  144. package/es-custom/components/overflow-menu/overflow-menu.d.ts +1 -1
  145. package/es-custom/components/overflow-menu/overflow-menu.js +3 -3
  146. package/es-custom/components/overflow-menu/overflow-menu.js.map +1 -1
  147. package/es-custom/components/overflow-menu/overflow-menu.scss.js +1 -1
  148. package/es-custom/components/pagination/pagination.scss.js +1 -1
  149. package/es-custom/components/pagination-nav/pagination-nav.scss.js +1 -1
  150. package/es-custom/components/popover/popover.d.ts +12 -2
  151. package/es-custom/components/popover/popover.js +56 -37
  152. package/es-custom/components/popover/popover.js.map +1 -1
  153. package/es-custom/components/popover/popover.scss.js +1 -1
  154. package/es-custom/components/progress-indicator/progress-indicator.scss.js +1 -1
  155. package/es-custom/components/progress-indicator/progress-step.d.ts +1 -1
  156. package/es-custom/components/progress-indicator/progress-step.js +2 -2
  157. package/es-custom/components/progress-indicator/progress-step.js.map +1 -1
  158. package/es-custom/components/radio-button/radio-button.js +1 -1
  159. package/es-custom/components/radio-button/radio-button.js.map +1 -1
  160. package/es-custom/components/select/select.d.ts +1 -1
  161. package/es-custom/components/select/select.js +3 -3
  162. package/es-custom/components/select/select.js.map +1 -1
  163. package/es-custom/components/skip-to-content/skip-to-content.scss.js +1 -1
  164. package/es-custom/components/slug/slug.scss.js +1 -1
  165. package/es-custom/components/tabs/tab.d.ts +1 -1
  166. package/es-custom/components/tabs/tab.js +2 -2
  167. package/es-custom/components/tabs/tab.js.map +1 -1
  168. package/es-custom/components/tabs/tabs.scss.js +1 -1
  169. package/es-custom/components/tag/tag.d.ts +1 -1
  170. package/es-custom/components/tag/tag.js +2 -2
  171. package/es-custom/components/tag/tag.js.map +1 -1
  172. package/es-custom/components/tag/tag.scss.js +1 -1
  173. package/es-custom/components/text-input/text-input.d.ts +2 -0
  174. package/es-custom/components/text-input/text-input.js +26 -14
  175. package/es-custom/components/text-input/text-input.js.map +1 -1
  176. package/es-custom/components/tile/expandable-tile.d.ts +1 -1
  177. package/es-custom/components/tile/expandable-tile.js +2 -2
  178. package/es-custom/components/tile/expandable-tile.js.map +1 -1
  179. package/es-custom/components/time-picker/time-picker-select.d.ts +1 -1
  180. package/es-custom/components/time-picker/time-picker-select.js +2 -2
  181. package/es-custom/components/time-picker/time-picker-select.js.map +1 -1
  182. package/es-custom/components/toggle-tip/toggletip.d.ts +0 -1
  183. package/es-custom/components/toggle-tip/toggletip.js +2 -13
  184. package/es-custom/components/toggle-tip/toggletip.js.map +1 -1
  185. package/es-custom/components/toggle-tip/toggletip.scss.js +1 -1
  186. package/es-custom/components/tooltip/tooltip.scss.js +1 -1
  187. package/es-custom/components/ui-shell/header-menu.d.ts +1 -1
  188. package/es-custom/components/ui-shell/header-menu.js +2 -2
  189. package/es-custom/components/ui-shell/header-menu.js.map +1 -1
  190. package/es-custom/components/ui-shell/header.scss.js +1 -1
  191. package/es-custom/components/ui-shell/side-nav-menu.d.ts +1 -1
  192. package/es-custom/components/ui-shell/side-nav-menu.js +2 -2
  193. package/es-custom/components/ui-shell/side-nav-menu.js.map +1 -1
  194. package/es-custom/globals/controllers/floating-controller.js +6 -2
  195. package/es-custom/globals/controllers/floating-controller.js.map +1 -1
  196. package/es-custom/globals/internal/deep-shadow-contains.d.ts +15 -0
  197. package/es-custom/globals/internal/deep-shadow-contains.js +36 -0
  198. package/es-custom/globals/internal/deep-shadow-contains.js.map +1 -0
  199. package/es-custom/polyfills/toggle-attribute.d.ts +1 -1
  200. package/lib/components/combo-box/combo-box-item.d.ts +3 -4
  201. package/lib/components/combo-box/combo-box.d.ts +7 -0
  202. package/lib/components/content-switcher/content-switcher-item.d.ts +1 -1
  203. package/lib/components/data-table/table-skeleton.d.ts +1 -5
  204. package/lib/components/dropdown/dropdown-item.d.ts +15 -0
  205. package/lib/components/overflow-menu/overflow-menu-item.d.ts +5 -1
  206. package/lib/components/overflow-menu/overflow-menu.d.ts +1 -1
  207. package/lib/components/popover/popover.d.ts +12 -2
  208. package/lib/components/progress-indicator/progress-step.d.ts +1 -1
  209. package/lib/components/select/select.d.ts +1 -1
  210. package/lib/components/tabs/tab.d.ts +1 -1
  211. package/lib/components/tag/tag.d.ts +1 -1
  212. package/lib/components/text-input/text-input.d.ts +2 -0
  213. package/lib/components/tile/expandable-tile.d.ts +1 -1
  214. package/lib/components/time-picker/time-picker-select.d.ts +1 -1
  215. package/lib/components/toggle-tip/toggletip.d.ts +0 -1
  216. package/lib/components/ui-shell/header-menu.d.ts +1 -1
  217. package/lib/components/ui-shell/side-nav-menu.d.ts +1 -1
  218. package/lib/globals/controllers/floating-controller.js +6 -2
  219. package/lib/globals/controllers/floating-controller.js.map +1 -1
  220. package/lib/globals/internal/deep-shadow-contains.d.ts +15 -0
  221. package/lib/polyfills/toggle-attribute.d.ts +1 -1
  222. package/package.json +6 -6
  223. package/scss/components/dropdown/dropdown.scss +5 -0
  224. package/scss/components/overflow-menu/overflow-menu.scss +4 -0
  225. package/scss/components/popover/popover.scss +160 -4
  226. package/telemetry.yml +2 -1
@@ -1 +1 @@
1
- {"version":3,"file":"radio-button.js","sources":["../../../src/components/radio-button/radio-button.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 { ifDefined } from 'lit/directives/if-defined.js';\nimport HostListener from '../../globals/decorators/host-listener';\nimport FocusMixin from '../../globals/mixins/focus';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport RadioGroupManager, {\n NAVIGATION_DIRECTION,\n ManagedRadioButtonDelegate,\n} from '../../globals/internal/radio-group-manager';\nimport { RADIO_BUTTON_LABEL_POSITION, RADIO_BUTTON_ORIENTATION } from './defs';\nimport styles from './radio-button.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport { RADIO_BUTTON_LABEL_POSITION };\n\n/**\n * Map of navigation direction by key for horizontal alignment.\n */\nconst navigationDirectionForKeyHorizontal = {\n ArrowLeft: NAVIGATION_DIRECTION.BACKWARD,\n Left: NAVIGATION_DIRECTION.BACKWARD, // IE\n ArrowRight: NAVIGATION_DIRECTION.FORWARD,\n Right: NAVIGATION_DIRECTION.FORWARD, // IE\n};\n\n/**\n * Map of navigation direction by key for vertical alignment.\n */\nconst navigationDirectionForKeyVertical = {\n ArrowUp: NAVIGATION_DIRECTION.BACKWARD,\n Up: NAVIGATION_DIRECTION.BACKWARD, // IE\n ArrowDown: NAVIGATION_DIRECTION.FORWARD,\n Down: NAVIGATION_DIRECTION.FORWARD, // IE\n};\n\n/**\n * The interface for `RadioGroupManager` for radio button.\n */\nclass RadioButtonDelegate implements ManagedRadioButtonDelegate {\n /**\n * The radio button to target.\n */\n private _radio: HTMLInputElement;\n\n constructor(radio: HTMLInputElement) {\n this._radio = radio;\n }\n\n get checked() {\n return this._radio.checked;\n }\n\n set checked(checked) {\n const { host } = this._radio.getRootNode() as ShadowRoot;\n const { eventChange } = host.constructor as typeof CDSRadioButton;\n (host as CDSRadioButton).checked = checked;\n this._radio.tabIndex = checked ? 0 : -1;\n host.dispatchEvent(\n new CustomEvent(eventChange, {\n bubbles: true,\n composed: true,\n detail: {\n checked,\n value: this._radio.value,\n name: this._radio.name,\n },\n })\n );\n }\n\n get tabIndex() {\n return this._radio.tabIndex;\n }\n\n set tabIndex(tabIndex) {\n this._radio.tabIndex = tabIndex;\n }\n\n get name() {\n return this._radio.name;\n }\n\n get disabled() {\n return this._radio.disabled;\n }\n\n compareDocumentPosition(other: RadioButtonDelegate) {\n return this._radio.compareDocumentPosition(other._radio);\n }\n\n focus() {\n this._radio.focus();\n }\n}\n\n/**\n * Radio button.\n *\n * @element cds-custom-radio-button\n * @fires cds-custom-radio-button-changed - The custom event fired after this radio button changes its checked state.\n */\n@customElement(`${prefix}-radio-button`)\nclass CDSRadioButton extends HostListenerMixin(FocusMixin(LitElement)) {\n /**\n * The radio group manager associated with the radio button.\n */\n private _manager: RadioGroupManager | null = null;\n\n /**\n * The interface for `RadioGroupManager` for radio button.\n */\n private _radioButtonDelegate!: RadioButtonDelegate;\n\n /**\n * The hidden radio button.\n */\n @query('input')\n private _inputNode!: HTMLInputElement;\n\n /**\n * Handles `click` event on this element.\n */\n @HostListener('click')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleClick = (event) => {\n if (\n !(event.target as HTMLElement).matches(\n (this.constructor as typeof CDSRadioButton)?.aiLabelItem\n ) &&\n !(event.target as HTMLElement).matches(\n (this.constructor as typeof CDSRadioButton)?.slugItem\n )\n ) {\n const {\n disabled,\n _radioButtonDelegate: radioButtonDelegate,\n readOnly,\n } = this;\n if (readOnly) {\n event.preventDefault();\n return;\n }\n if (radioButtonDelegate && !disabled && !this.disabledItem) {\n this.checked = true;\n if (this._manager) {\n this._manager.select(radioButtonDelegate, this.readOnly);\n }\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSRadioButton).eventChange,\n {\n bubbles: true,\n composed: true,\n detail: {\n checked: this.checked,\n value: this.value,\n name: this.name,\n event,\n },\n }\n )\n );\n }\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSRadioButton).eventChange,\n {\n bubbles: true,\n composed: true,\n detail: {\n checked: this.checked,\n value: this.value,\n name: this.name,\n event,\n },\n }\n )\n );\n }\n };\n\n /**\n * Handles `keydown` event on this element.\n */\n @HostListener('keydown')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleKeydown = (event: KeyboardEvent) => {\n if (\n !(event.target as HTMLElement).matches(\n (this.constructor as typeof CDSRadioButton)?.aiLabelItem\n ) &&\n !(event.target as HTMLElement).matches(\n (this.constructor as typeof CDSRadioButton)?.slugItem\n )\n ) {\n const {\n orientation,\n _radioButtonDelegate: radioButtonDelegate,\n disabled,\n disabledItem,\n readOnly,\n } = this;\n const manager = this._manager;\n if (readOnly) {\n event.preventDefault();\n return;\n }\n if (radioButtonDelegate && manager && !disabled && !disabledItem) {\n const navigationDirectionForKey =\n orientation === RADIO_BUTTON_ORIENTATION.HORIZONTAL\n ? navigationDirectionForKeyHorizontal\n : navigationDirectionForKeyVertical;\n const navigationDirection = navigationDirectionForKey[event.key];\n if (navigationDirection) {\n manager.select(\n manager.navigate(radioButtonDelegate, navigationDirection),\n this.readOnly\n );\n }\n if (event.key === ' ' || event.key === 'Enter') {\n manager.select(radioButtonDelegate, this.readOnly);\n }\n }\n }\n };\n\n /**\n * Handles `slotchange` event.\n */\n protected _handleSlotChange({ target }: Event) {\n const hasContent = (target as HTMLSlotElement)\n .assignedNodes()\n .filter((elem) =>\n (elem as HTMLElement).matches !== undefined\n ? (elem as HTMLElement).matches(\n (this.constructor as typeof CDSRadioButton).aiLabelItem\n ) ||\n // remove reference to slug in v12\n (elem as HTMLElement).matches(\n (this.constructor as typeof CDSRadioButton).slugItem\n )\n : false\n );\n\n this._hasAILabel = Boolean(hasContent);\n const type = (hasContent[0] as HTMLElement).getAttribute('kind');\n (hasContent[0] as HTMLElement).setAttribute(\n 'size',\n type === 'inline' ? 'md' : 'mini'\n );\n this.requestUpdate();\n }\n\n /**\n * `true` if there is an AI Label.\n */\n protected _hasAILabel = false;\n\n /**\n * `true` if this radio button should be checked.\n */\n @property({ type: Boolean, reflect: true })\n checked = false;\n\n /**\n * `true` if the radio button is used in a data table\n */\n @property({ type: Boolean, reflect: true, attribute: 'data-table' })\n dataTable = false;\n\n /**\n * Specify whether the `<radio-button>` should be checked by default\n */\n @property({ type: Boolean, attribute: 'default-checked' })\n defaultChecked = false;\n\n /**\n * `true` if the radio button item should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabledItem = false;\n\n /**\n * `true` if the radio button group should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * `true` if the label should be hidden.\n */\n @property({ type: Boolean, reflect: true, attribute: 'hide-label' })\n hideLabel = false;\n\n /**\n * Specify if the currently value is invalid.\n */\n @property({ type: Boolean, reflect: true })\n invalid = false;\n\n /**\n * Specify whether the control is currently in warning state\n */\n @property({ type: Boolean, reflect: true })\n warn = false;\n\n /**\n * Provide the text that is displayed when the control is in warning state\n */\n @property({ attribute: 'warn-text' })\n warnText = '';\n\n /**\n * The label position.\n */\n @property({ reflect: true, attribute: 'label-position' })\n labelPosition = RADIO_BUTTON_LABEL_POSITION.RIGHT;\n\n /**\n * The label text.\n */\n @property({ attribute: 'label-text' })\n labelText = '';\n\n /**\n * The `name` attribute for the `<input>` for selection.\n */\n @property()\n name!: string;\n\n /**\n * The orientation to lay out radio buttons.\n */\n @property({ reflect: true })\n orientation = RADIO_BUTTON_ORIENTATION.HORIZONTAL;\n\n /**\n * `true` if the radio button group should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n readOnly = false;\n\n /**\n * `true` if the radio button is required.\n */\n @property({ type: Boolean, reflect: true })\n required = false;\n\n /**\n * The `value` attribute for the `<input>` for selection.\n */\n @property()\n value!: string;\n\n disconnectedCallback() {\n if (this._manager) {\n this._manager.delete(this._radioButtonDelegate);\n }\n super.disconnectedCallback();\n }\n\n firstUpdated() {\n this._radioButtonDelegate = new RadioButtonDelegate(this._inputNode);\n\n // If user hasn’t explicitly set `checked`, respect `defaultChecked`\n if (this.defaultChecked && this.checked === false) {\n this.checked = true;\n }\n }\n\n updated(changedProperties) {\n const {\n _hasAILabel: hasAILabel,\n _inputNode: inputNode,\n _radioButtonDelegate: radioButtonDelegate,\n name,\n disabled,\n disabledItem,\n readOnly,\n invalid,\n warn,\n } = this;\n\n // Normalize input props similar to useNormalizedInputProps in React\n const normalizedProps = {\n disabled: !readOnly && (disabled || disabledItem),\n invalid: !readOnly && !disabled && !disabledItem && invalid,\n warn: !readOnly && !disabled && !disabledItem && !invalid && warn,\n };\n\n if (changedProperties.has('checked') || changedProperties.has('name')) {\n if (!this._manager) {\n this._manager = RadioGroupManager.get(\n this.getRootNode({ composed: true }) as Document\n );\n }\n const { _manager: manager } = this;\n if (changedProperties.has('name')) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n manager!.delete(radioButtonDelegate, changedProperties.get('name'));\n if (name) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n manager!.add(radioButtonDelegate);\n }\n }\n // Disabled items should have tabIndex -1.\n inputNode.setAttribute(\n 'tabindex',\n !name ||\n !manager ||\n this.disabled ||\n this.disabledItem ||\n !manager.shouldBeFocusable(radioButtonDelegate)\n ? '-1'\n : '0'\n );\n }\n // Handle validation states based on normalized props\n if (\n changedProperties.has('invalid') ||\n changedProperties.has('warn') ||\n changedProperties.has('disabled') ||\n changedProperties.has('disabledItem') ||\n changedProperties.has('readOnly')\n ) {\n // Apply normalized validation states\n if (normalizedProps.invalid) {\n this.setAttribute('invalid', '');\n this.removeAttribute('warn');\n } else if (normalizedProps.warn) {\n this.setAttribute('warn', '');\n this.removeAttribute('invalid');\n } else {\n this.removeAttribute('invalid');\n this.removeAttribute('warn');\n }\n }\n\n if (hasAILabel) {\n this.setAttribute('ai-label', '');\n } else {\n this.removeAttribute('ai-label');\n }\n }\n\n render() {\n const {\n checked,\n hideLabel,\n labelText,\n name,\n value,\n disabled,\n disabledItem,\n readOnly,\n invalid,\n warn,\n } = this;\n\n // Normalize input props similar to useNormalizedInputProps in React\n const normalizedProps = {\n disabled: !readOnly && (disabled || disabledItem),\n invalid: !readOnly && !disabled && !disabledItem && invalid,\n warn: !readOnly && !disabled && !disabledItem && !invalid && warn,\n };\n const innerLabelClasses = classMap({\n [`${prefix}--radio-button__label-text`]: true,\n [`${prefix}--visually-hidden`]: hideLabel,\n });\n return html`\n <input\n id=\"radio\"\n type=\"radio\"\n class=\"${prefix}--radio-button\"\n .checked=${checked}\n ?disabled=\"${disabledItem || disabled}\"\n ?required=${this.required}\n aria-readonly=\"${String(Boolean(readOnly))}\"\n name=${ifDefined(name)}\n value=${ifDefined(value)} />\n <label\n for=\"input\"\n class=\"${prefix}--radio-button__label ${normalizedProps.invalid\n ? `${prefix}--radio-button__label--invalid`\n : ''} ${normalizedProps.warn\n ? `${prefix}--radio-button__label--warn`\n : ''}\">\n <span class=\"${prefix}--radio-button__appearance\"></span>\n <span class=\"${innerLabelClasses}\">\n <slot> ${labelText} </slot>\n <slot name=\"ai-label\" @slotchange=\"${this._handleSlotChange}\"></slot>\n <slot name=\"slug\" @slotchange=\"${this._handleSlotChange}\"></slot\n ></span>\n </label>\n `;\n }\n\n /**\n * A selector that will return the slug item.\n *\n * remove in v12\n */\n static get slugItem() {\n return `${prefix}-slug`;\n }\n\n /**\n * A selector that will return the AI Label item.\n */\n static get aiLabelItem() {\n return `${prefix}-ai-label`;\n }\n\n /**\n * The name of the custom event fired after this radio button changes its checked state.\n */\n static get eventChange() {\n return `${prefix}-radio-button-changed`;\n }\n\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n static styles = styles;\n}\n\nexport default CDSRadioButton;\n"],"names":["customElement"],"mappings":"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"}
1
+ {"version":3,"file":"radio-button.js","sources":["../../../src/components/radio-button/radio-button.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 { ifDefined } from 'lit/directives/if-defined.js';\nimport HostListener from '../../globals/decorators/host-listener';\nimport FocusMixin from '../../globals/mixins/focus';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport RadioGroupManager, {\n NAVIGATION_DIRECTION,\n ManagedRadioButtonDelegate,\n} from '../../globals/internal/radio-group-manager';\nimport { RADIO_BUTTON_LABEL_POSITION, RADIO_BUTTON_ORIENTATION } from './defs';\nimport styles from './radio-button.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\nexport { RADIO_BUTTON_LABEL_POSITION };\n\n/**\n * Map of navigation direction by key for horizontal alignment.\n */\nconst navigationDirectionForKeyHorizontal = {\n ArrowLeft: NAVIGATION_DIRECTION.BACKWARD,\n Left: NAVIGATION_DIRECTION.BACKWARD, // IE\n ArrowRight: NAVIGATION_DIRECTION.FORWARD,\n Right: NAVIGATION_DIRECTION.FORWARD, // IE\n};\n\n/**\n * Map of navigation direction by key for vertical alignment.\n */\nconst navigationDirectionForKeyVertical = {\n ArrowUp: NAVIGATION_DIRECTION.BACKWARD,\n Up: NAVIGATION_DIRECTION.BACKWARD, // IE\n ArrowDown: NAVIGATION_DIRECTION.FORWARD,\n Down: NAVIGATION_DIRECTION.FORWARD, // IE\n};\n\n/**\n * The interface for `RadioGroupManager` for radio button.\n */\nclass RadioButtonDelegate implements ManagedRadioButtonDelegate {\n /**\n * The radio button to target.\n */\n private _radio: HTMLInputElement;\n\n constructor(radio: HTMLInputElement) {\n this._radio = radio;\n }\n\n get checked() {\n return this._radio.checked;\n }\n\n set checked(checked) {\n const { host } = this._radio.getRootNode() as ShadowRoot;\n const { eventChange } = host.constructor as typeof CDSRadioButton;\n (host as CDSRadioButton).checked = checked;\n this._radio.tabIndex = checked ? 0 : -1;\n host.dispatchEvent(\n new CustomEvent(eventChange, {\n bubbles: true,\n composed: true,\n detail: {\n checked,\n value: this._radio.value,\n name: this._radio.name,\n },\n })\n );\n }\n\n get tabIndex() {\n return this._radio.tabIndex;\n }\n\n set tabIndex(tabIndex) {\n this._radio.tabIndex = tabIndex;\n }\n\n get name() {\n return this._radio.name;\n }\n\n get disabled() {\n return this._radio.disabled;\n }\n\n compareDocumentPosition(other: RadioButtonDelegate) {\n return this._radio.compareDocumentPosition(other._radio);\n }\n\n focus() {\n this._radio.focus();\n }\n}\n\n/**\n * Radio button.\n *\n * @element cds-custom-radio-button\n * @fires cds-custom-radio-button-changed - The custom event fired after this radio button changes its checked state.\n */\n@customElement(`${prefix}-radio-button`)\nclass CDSRadioButton extends HostListenerMixin(FocusMixin(LitElement)) {\n /**\n * The radio group manager associated with the radio button.\n */\n private _manager: RadioGroupManager | null = null;\n\n /**\n * The interface for `RadioGroupManager` for radio button.\n */\n private _radioButtonDelegate!: RadioButtonDelegate;\n\n /**\n * The hidden radio button.\n */\n @query('input')\n private _inputNode!: HTMLInputElement;\n\n /**\n * Handles `click` event on this element.\n */\n @HostListener('click')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleClick = (event) => {\n if (\n !(event.target as HTMLElement).matches(\n (this.constructor as typeof CDSRadioButton)?.aiLabelItem\n ) &&\n !(event.target as HTMLElement).matches(\n (this.constructor as typeof CDSRadioButton)?.slugItem\n )\n ) {\n const {\n disabled,\n _radioButtonDelegate: radioButtonDelegate,\n readOnly,\n } = this;\n if (readOnly) {\n event.preventDefault();\n return;\n }\n if (radioButtonDelegate && !disabled && !this.disabledItem) {\n this.checked = true;\n if (this._manager) {\n this._manager.select(radioButtonDelegate, this.readOnly);\n }\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSRadioButton).eventChange,\n {\n bubbles: true,\n composed: true,\n detail: {\n checked: this.checked,\n value: this.value,\n name: this.name,\n event,\n },\n }\n )\n );\n }\n this.dispatchEvent(\n new CustomEvent(\n (this.constructor as typeof CDSRadioButton).eventChange,\n {\n bubbles: true,\n composed: true,\n detail: {\n checked: this.checked,\n value: this.value,\n name: this.name,\n event,\n },\n }\n )\n );\n }\n };\n\n /**\n * Handles `keydown` event on this element.\n */\n @HostListener('keydown')\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment -- https://github.com/carbon-design-system/carbon/issues/20452\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleKeydown = (event: KeyboardEvent) => {\n if (\n !(event.target as HTMLElement).matches(\n (this.constructor as typeof CDSRadioButton)?.aiLabelItem\n ) &&\n !(event.target as HTMLElement).matches(\n (this.constructor as typeof CDSRadioButton)?.slugItem\n )\n ) {\n const {\n orientation,\n _radioButtonDelegate: radioButtonDelegate,\n disabled,\n disabledItem,\n readOnly,\n } = this;\n const manager = this._manager;\n if (readOnly) {\n event.preventDefault();\n return;\n }\n if (radioButtonDelegate && manager && !disabled && !disabledItem) {\n const navigationDirectionForKey =\n orientation === RADIO_BUTTON_ORIENTATION.HORIZONTAL\n ? navigationDirectionForKeyHorizontal\n : navigationDirectionForKeyVertical;\n const navigationDirection = navigationDirectionForKey[event.key];\n if (navigationDirection) {\n manager.select(\n manager.navigate(radioButtonDelegate, navigationDirection),\n this.readOnly\n );\n }\n if (event.key === ' ' || event.key === 'Enter') {\n manager.select(radioButtonDelegate, this.readOnly);\n }\n }\n }\n };\n\n /**\n * Handles `slotchange` event.\n */\n protected _handleSlotChange({ target }: Event) {\n const hasContent = (target as HTMLSlotElement)\n .assignedNodes()\n .filter((elem) =>\n (elem as HTMLElement).matches !== undefined\n ? (elem as HTMLElement).matches(\n (this.constructor as typeof CDSRadioButton).aiLabelItem\n ) ||\n // remove reference to slug in v12\n (elem as HTMLElement).matches(\n (this.constructor as typeof CDSRadioButton).slugItem\n )\n : false\n );\n\n this._hasAILabel = Boolean(hasContent);\n const type = (hasContent[0] as HTMLElement).getAttribute('kind');\n (hasContent[0] as HTMLElement).setAttribute(\n 'size',\n type === 'inline' ? 'md' : 'mini'\n );\n this.requestUpdate();\n }\n\n /**\n * `true` if there is an AI Label.\n */\n protected _hasAILabel = false;\n\n /**\n * `true` if this radio button should be checked.\n */\n @property({ type: Boolean, reflect: true })\n checked = false;\n\n /**\n * `true` if the radio button is used in a data table\n */\n @property({ type: Boolean, reflect: true, attribute: 'data-table' })\n dataTable = false;\n\n /**\n * Specify whether the `<radio-button>` should be checked by default\n */\n @property({ type: Boolean, attribute: 'default-checked' })\n defaultChecked = false;\n\n /**\n * `true` if the radio button item should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabledItem = false;\n\n /**\n * `true` if the radio button group should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * `true` if the label should be hidden.\n */\n @property({ type: Boolean, reflect: true, attribute: 'hide-label' })\n hideLabel = false;\n\n /**\n * Specify if the currently value is invalid.\n */\n @property({ type: Boolean, reflect: true })\n invalid = false;\n\n /**\n * Specify whether the control is currently in warning state\n */\n @property({ type: Boolean, reflect: true })\n warn = false;\n\n /**\n * Provide the text that is displayed when the control is in warning state\n */\n @property({ attribute: 'warn-text' })\n warnText = '';\n\n /**\n * The label position.\n */\n @property({ reflect: true, attribute: 'label-position' })\n labelPosition = RADIO_BUTTON_LABEL_POSITION.RIGHT;\n\n /**\n * The label text.\n */\n @property({ attribute: 'label-text' })\n labelText = '';\n\n /**\n * The `name` attribute for the `<input>` for selection.\n */\n @property()\n name!: string;\n\n /**\n * The orientation to lay out radio buttons.\n */\n @property({ reflect: true })\n orientation = RADIO_BUTTON_ORIENTATION.HORIZONTAL;\n\n /**\n * `true` if the radio button group should be disabled.\n */\n @property({ type: Boolean, reflect: true })\n readOnly = false;\n\n /**\n * `true` if the radio button is required.\n */\n @property({ type: Boolean, reflect: true })\n required = false;\n\n /**\n * The `value` attribute for the `<input>` for selection.\n */\n @property()\n value!: string;\n\n disconnectedCallback() {\n if (this._manager) {\n this._manager.delete(this._radioButtonDelegate);\n }\n super.disconnectedCallback();\n }\n\n firstUpdated() {\n this._radioButtonDelegate = new RadioButtonDelegate(this._inputNode);\n\n // If user hasn’t explicitly set `checked`, respect `defaultChecked`\n if (this.defaultChecked && this.checked === false) {\n this.checked = true;\n }\n }\n\n updated(changedProperties) {\n const {\n _hasAILabel: hasAILabel,\n _inputNode: inputNode,\n _radioButtonDelegate: radioButtonDelegate,\n name,\n disabled,\n disabledItem,\n readOnly,\n invalid,\n warn,\n } = this;\n\n // Normalize input props similar to useNormalizedInputProps in React\n const normalizedProps = {\n disabled: !readOnly && (disabled || disabledItem),\n invalid: !readOnly && !disabled && !disabledItem && invalid,\n warn: !readOnly && !disabled && !disabledItem && !invalid && warn,\n };\n\n if (changedProperties.has('checked') || changedProperties.has('name')) {\n if (!this._manager) {\n this._manager = RadioGroupManager.get(\n this.getRootNode({ composed: true }) as Document\n );\n }\n const { _manager: manager } = this;\n if (changedProperties.has('name')) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n manager!.delete(radioButtonDelegate, changedProperties.get('name'));\n if (name) {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- https://github.com/carbon-design-system/carbon/issues/20452\n manager!.add(radioButtonDelegate);\n }\n }\n // Disabled items should have tabIndex -1.\n inputNode.setAttribute(\n 'tabindex',\n !name ||\n !manager ||\n this.disabled ||\n this.disabledItem ||\n !manager.shouldBeFocusable(radioButtonDelegate)\n ? '-1'\n : '0'\n );\n }\n // Handle validation states based on normalized props\n if (\n changedProperties.has('invalid') ||\n changedProperties.has('warn') ||\n changedProperties.has('disabled') ||\n changedProperties.has('disabledItem') ||\n changedProperties.has('readOnly')\n ) {\n // Apply normalized validation states\n if (normalizedProps.invalid) {\n this.setAttribute('invalid', '');\n this.removeAttribute('warn');\n } else if (normalizedProps.warn) {\n this.setAttribute('warn', '');\n this.removeAttribute('invalid');\n } else {\n this.removeAttribute('invalid');\n this.removeAttribute('warn');\n }\n }\n\n if (hasAILabel) {\n this.setAttribute('ai-label', '');\n } else {\n this.removeAttribute('ai-label');\n }\n }\n\n render() {\n const {\n checked,\n hideLabel,\n labelText,\n name,\n value,\n disabled,\n disabledItem,\n readOnly,\n invalid,\n warn,\n } = this;\n\n // Normalize input props similar to useNormalizedInputProps in React\n const normalizedProps = {\n disabled: !readOnly && (disabled || disabledItem),\n invalid: !readOnly && !disabled && !disabledItem && invalid,\n warn: !readOnly && !disabled && !disabledItem && !invalid && warn,\n };\n const innerLabelClasses = classMap({\n [`${prefix}--radio-button__label-text`]: true,\n [`${prefix}--visually-hidden`]: hideLabel,\n });\n return html`\n <input\n id=\"radio\"\n type=\"radio\"\n class=\"${prefix}--radio-button\"\n .checked=${checked}\n ?disabled=\"${disabledItem || disabled}\"\n ?required=${this.required}\n aria-readonly=\"${String(readOnly)}\"\n name=${ifDefined(name)}\n value=${ifDefined(value)} />\n <label\n for=\"input\"\n class=\"${prefix}--radio-button__label ${normalizedProps.invalid\n ? `${prefix}--radio-button__label--invalid`\n : ''} ${normalizedProps.warn\n ? `${prefix}--radio-button__label--warn`\n : ''}\">\n <span class=\"${prefix}--radio-button__appearance\"></span>\n <span class=\"${innerLabelClasses}\">\n <slot> ${labelText} </slot>\n <slot name=\"ai-label\" @slotchange=\"${this._handleSlotChange}\"></slot>\n <slot name=\"slug\" @slotchange=\"${this._handleSlotChange}\"></slot\n ></span>\n </label>\n `;\n }\n\n /**\n * A selector that will return the slug item.\n *\n * remove in v12\n */\n static get slugItem() {\n return `${prefix}-slug`;\n }\n\n /**\n * A selector that will return the AI Label item.\n */\n static get aiLabelItem() {\n return `${prefix}-ai-label`;\n }\n\n /**\n * The name of the custom event fired after this radio button changes its checked state.\n */\n static get eventChange() {\n return `${prefix}-radio-button-changed`;\n }\n\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n static styles = styles;\n}\n\nexport default CDSRadioButton;\n"],"names":["customElement"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright IBM Corp. 2020, 2025
2
+ * Copyright IBM Corp. 2020, 2026
3
3
  *
4
4
  * This source code is licensed under the Apache-2.0 license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -24,7 +24,7 @@ import { carbonElement } from '../../globals/decorators/carbon-element.js';
24
24
  import { INPUT_SIZE } from '../text-input/defs.js';
25
25
 
26
26
  /**
27
- * Copyright IBM Corp. 2020, 2025
27
+ * Copyright IBM Corp. 2020, 2026
28
28
  *
29
29
  * This source code is licensed under the Apache-2.0 license found in the
30
30
  * LICENSE file in the root directory of this source tree.
@@ -353,8 +353,8 @@ let CDSSelect = class CDSSelect extends FormMixin(LitElement) {
353
353
  class="${inputClasses}"
354
354
  ?disabled="${disabled}"
355
355
  title="${value}"
356
- aria-readonly="${String(Boolean(readonly))}"
357
- aria-invalid="${String(Boolean(normalizedProps.invalid))}"
356
+ aria-readonly="${String(readonly)}"
357
+ aria-invalid="${String(normalizedProps.invalid)}"
358
358
  aria-describedby="${ifDefined(describedBy)}"
359
359
  @input="${handleInput}">
360
360
  ${!placeholder || value
@@ -1 +1 @@
1
- {"version":3,"file":"select.js","sources":["../../../src/components/select/select.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2020, 2025\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 { LitElement, html } from 'lit';\nimport { property, query, queryAll } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { prefix } from '../../globals/settings';\nimport ChevronDown16 from '@carbon/icons/es/chevron--down/16.js';\nimport WarningFilled16 from '@carbon/icons/es/warning--filled/16.js';\nimport WarningAltFilled16 from '@carbon/icons/es/warning--alt--filled/16.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport FormMixin from '../../globals/mixins/form';\nimport { filter } from '../../globals/internal/collection-helpers';\nimport { INPUT_SIZE } from '../text-input/text-input';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport styles from './select.scss?lit';\nimport ifNonEmpty from '../../globals/directives/if-non-empty';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\n/**\n * Select box.\n *\n * @element cds-custom-select\n * @fires cds-custom-select-selected\n * The name of the custom event fired after an item is selected.\n * @slot helper-text - The helper text.\n * @slot label-text - The label text.\n * @slot validity-message - The validity message. If present and non-empty, this input shows the UI of its invalid state.\n */\n@customElement(`${prefix}-select`)\nclass CDSSelect extends FormMixin(LitElement) {\n /**\n * `true` if there is an AI Label.\n */\n protected _hasAILabel = false;\n\n /**\n * The mutation observer DOM mutation.\n */\n private _observerMutation: MutationObserver | null = null;\n\n /**\n * The `value` for placeholder `<option>`.\n */\n private _placeholderItemValue = `__${prefix}-select-placeholder_${Math.random()\n .toString(36)\n .slice(2)}`;\n\n /**\n * The select box.\n */\n @query('select')\n private _selectNode!: HTMLSelectElement;\n\n /**\n * Input node of `select` element\n */\n @query('#input')\n private _inputNode!: HTMLInputElement;\n\n /**\n * Select all <option> nodes with `selected` attribute\n */\n @queryAll(`.${prefix}--select-option[selected]`)\n private _selectedOptionNodes!: HTMLOptionElement[];\n\n /**\n * Specify whether the textarea is fluid or not\n */\n @property({ type: Boolean })\n isFluid = false;\n\n /**\n * Handles `oninput` event on the `<input>`.\n *\n * @param event The event.\n * @param event.target The event target.\n */\n private _handleInput({ target }: Event) {\n const { value } = target as HTMLSelectElement;\n this.value = value;\n const { eventSelect } = this.constructor as typeof CDSSelect;\n this.dispatchEvent(\n new CustomEvent(eventSelect, {\n bubbles: true,\n composed: true,\n detail: {\n value,\n },\n })\n );\n }\n\n /**\n * Handles DOM mutation of `<cds-custom-select-item>` or `<cds-custom-select-item-group>` put in `<cds-custom-select>`, or their changes.\n * In such event, `<cds-custom-select>` creates the corresponding `<option>` and `<optgroup>`, respectively, into shadow DOM,\n * with `._renderItems()`.\n * Doing so allows the shadow DOM style of `<cds-custom-select>` to control the style of the `<option>` and `<optgroup>`,\n * notably the disabled ones.\n */\n private _handleMutation = () => {\n this.requestUpdate();\n };\n\n /**\n * @param element The parent element containing pseudo `<optgroup>`/`<option>`.\n * @returns The template containing child `<optgroup>`/`<option>` that will be rendered to shadow DOM.\n */\n private _renderItems(element: CDSSelect | HTMLOptGroupElement) {\n const { selectorItem, selectorLeafItem } = this\n .constructor as typeof CDSSelect;\n // Harvests attributes from `<cds-custom-select-item>` and `<cds-custom-select-item-group>`.\n // Does not use properties to avoid delay in attribute to property mapping, which runs in custom element reaction cycle:\n // https://html.spec.whatwg.org/multipage/custom-elements.html#custom-element-reactions\n return html`\n ${filter(\n element.childNodes,\n (item) =>\n item.nodeType === Node.ELEMENT_NODE &&\n (item as Element).matches(selectorItem)\n ).map((item) => {\n const disabled = item.hasAttribute('disabled');\n const label = item.getAttribute('label');\n const selected = item.hasAttribute('selected');\n const value = item.getAttribute('value');\n const { textContent } = item;\n return item.matches(selectorLeafItem)\n ? html`\n <option\n class=\"${prefix}--select-option\"\n ?disabled=\"${disabled}\"\n label=\"${ifNonEmpty(label)}\"\n ?selected=\"${selected}\"\n value=\"${ifDefined(value)}\">\n ${textContent}\n </option>\n `\n : html`\n <optgroup\n class=\"${prefix}--select-optgroup\"\n ?disabled=\"${disabled}\"\n label=\"${ifDefined(label)}\">\n ${this._renderItems(item)}\n </optgroup>\n `;\n })}\n `;\n }\n\n _handleFormdata(event: FormDataEvent) {\n const { formData } = event;\n const { disabled, name, value } = this;\n if (!disabled) {\n formData.append(name, value);\n }\n }\n\n /**\n * Handles `slotchange` event.\n */\n protected _handleAILabelSlotChange({ target }: Event) {\n const hasContent = (target as HTMLSlotElement)\n .assignedNodes()\n .filter((elem) =>\n (elem as HTMLElement).matches !== undefined\n ? (elem as HTMLElement).matches(\n (this.constructor as typeof CDSSelect).aiLabelItem\n ) ||\n // remove reference to slug in v12\n (elem as HTMLElement).matches(\n (this.constructor as typeof CDSSelect).slugItem\n )\n : false\n );\n\n this._hasAILabel = Boolean(hasContent);\n this.setAttribute('slug', `${this._hasAILabel}`);\n (hasContent[0] as HTMLElement).setAttribute('size', 'mini');\n this.requestUpdate();\n }\n\n /**\n * The count of child `<option>`s.\n * If the placeholder is in effect, it includes the `<option>` for the placeholder.\n */\n get length() {\n return this._selectNode.length;\n }\n\n /**\n * The child `<option>`s.\n */\n get options() {\n return this._selectNode.options;\n }\n\n /**\n * This form control's type.\n */\n get type() {\n return this._selectNode.type;\n }\n\n /**\n * Sets the select to be focussed automatically on page load. Defaults to false\n */\n @property({ type: Boolean })\n autofocus = false;\n\n /**\n * Controls the disabled state of the select\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * The helper text.\n */\n @property({ attribute: 'helper-text' })\n helperText = '';\n\n /**\n * Specify whether the label should be hidden, or not\n */\n @property({ type: Boolean, attribute: 'hide-label' })\n hideLabel = false;\n\n /**\n * ID to link the `label` and `select`\n */\n @property()\n id = '';\n\n /**\n * Specify if the currently value is invalid.\n */\n @property({ type: Boolean, reflect: true })\n invalid = false;\n\n /**\n * Message which is displayed if the value is invalid.\n */\n @property({ attribute: 'invalid-text' })\n invalidText = '';\n\n /**\n * Specify if the currently value is warn.\n */\n @property({ type: Boolean, reflect: true })\n warn = false;\n\n /**\n * Message which is displayed if the value is warn.\n */\n @property({ attribute: 'warn-text' })\n warnText = '';\n\n /**\n * The label text.\n */\n @property({ attribute: 'label-text' })\n labelText = '';\n\n /**\n * Specify whether you want the inline version of this control\n */\n @property({ type: Boolean, reflect: true })\n inline = false;\n\n /**\n * `true` to enable multiple selection.\n */\n @property({ type: Boolean })\n get multiple() {\n return false;\n }\n\n /**\n * Name for the select in the `FormData`\n */\n @property()\n name = '';\n\n /**\n * Pattern to validate the select against for HTML validity checking\n */\n @property()\n pattern = '';\n\n /**\n * Value to display when the select has an empty `value`\n */\n @property({ reflect: true })\n placeholder = '';\n\n /**\n * Controls the readonly state of the select\n */\n @property({ type: Boolean, reflect: true })\n readonly = false;\n\n /**\n * Boolean property to set the required status\n */\n @property({ type: Boolean, reflect: true })\n required = false;\n\n /**\n * The special validity message for `required`.\n */\n @property({ attribute: 'required-validity-message' })\n requiredValidityMessage = 'Please fill out this field.';\n\n /**\n * The selected index.\n */\n @property({ type: Number })\n get selectedIndex() {\n return this._selectNode?.selectedIndex;\n }\n\n set selectedIndex(value) {\n this._selectNode.selectedIndex = value;\n this.value = this._selectNode.value;\n }\n\n /**\n * The input box size.\n */\n @property({ reflect: true })\n size = INPUT_SIZE.MEDIUM;\n\n /**\n * The value of the text area.\n */\n @property({ reflect: true })\n value = '';\n\n connectedCallback() {\n super.connectedCallback();\n this._observerMutation = new MutationObserver(this._handleMutation);\n this._observerMutation.observe(this, {\n attributes: true,\n childList: true,\n subtree: true,\n });\n }\n\n disconnectedCallback() {\n if (this._observerMutation) {\n this._observerMutation.disconnect();\n this._observerMutation = null;\n }\n super.disconnectedCallback();\n }\n\n updated(changedProperties) {\n if (changedProperties.has('value')) {\n const { value, _placeholderItemValue: placeholderItemValue } = this;\n // Ensures setting the `value` after rendering child `<option>`s/`<optgroup>`s when there is a change in `value`,\n // given reflecting `value` requires child `<option>`s/`<optgroup>`s being there beforehand\n\n const lastOption =\n this._selectedOptionNodes?.[this._selectedOptionNodes?.length - 1]?.[\n 'value'\n ];\n\n if (value) {\n this._selectNode.value = value;\n } else if (lastOption) {\n this._selectNode.value = lastOption;\n } else {\n this._selectNode.value = placeholderItemValue;\n }\n }\n\n const label = this.shadowRoot?.querySelector(\"slot[name='ai-label']\");\n\n if (label) {\n if ((label as HTMLSlotElement).assignedNodes()?.length) {\n this._inputNode?.classList.add(`${prefix}--select-input-has--ai-label`);\n }\n\n label?.classList.toggle(\n `${prefix}--slug--revert`,\n this.querySelector(`${prefix}-ai-label`)?.hasAttribute('revert-active')\n );\n } else {\n this.shadowRoot\n ?.querySelector(\"slot[name='slug']\")\n ?.classList.toggle(\n `${prefix}--slug--revert`,\n this.querySelector(`${prefix}-slug`)?.hasAttribute('revert-active')\n );\n }\n }\n\n render() {\n const {\n disabled,\n helperText,\n hideLabel,\n inline,\n invalid,\n invalidText,\n labelText,\n placeholder,\n readonly,\n size,\n warn,\n warnText,\n value,\n _placeholderItemValue: placeholderItemValue,\n _handleInput: handleInput,\n _handleAILabelSlotChange: handleAILabelSlotChange,\n } = this;\n\n const normalizedProps: {\n disabled: boolean;\n invalid: boolean;\n warn: boolean;\n } = {\n disabled: !readonly && disabled,\n invalid: !readonly && !disabled && invalid,\n warn: !readonly && !invalid && !disabled && warn,\n };\n\n const inputClasses = classMap({\n [`${prefix}--select-input`]: true,\n [`${prefix}--select-input--${size}`]: size,\n });\n\n const labelClasses = classMap({\n [`${prefix}--label`]: true,\n [`${prefix}--label--disabled`]: normalizedProps.disabled,\n [`${prefix}--visually-hidden`]: hideLabel,\n });\n\n const helperTextClasses = classMap({\n [`${prefix}--form__helper-text`]: true,\n [`${prefix}--form__helper-text--disabled`]: normalizedProps.disabled,\n });\n\n const supplementalText = helperText\n ? html`\n <div id=\"helper-text\" class=\"${helperTextClasses}\">\n <slot name=\"helper-text\"> ${helperText} </slot>\n </div>\n `\n : null;\n\n const errorText =\n normalizedProps.invalid || normalizedProps.warn\n ? html` <div id=\"error-text\" class=\"${prefix}--form-requirement\">\n ${normalizedProps.invalid ? invalidText : warnText}\n </div>`\n : null;\n\n let describedBy: string | undefined;\n if (normalizedProps.invalid || normalizedProps.warn) {\n describedBy = 'error-text';\n } else if (helperText) {\n describedBy = 'helper-text';\n }\n\n const input = html`\n <select\n id=\"input\"\n class=\"${inputClasses}\"\n ?disabled=\"${disabled}\"\n title=\"${value}\"\n aria-readonly=\"${String(Boolean(readonly))}\"\n aria-invalid=\"${String(Boolean(normalizedProps.invalid))}\"\n aria-describedby=\"${ifDefined(describedBy)}\"\n @input=\"${handleInput}\">\n ${!placeholder || value\n ? undefined\n : html`\n <option\n disabled\n hidden\n class=\"${prefix}--select-option\"\n value=\"${placeholderItemValue}\">\n ${placeholder}\n </option>\n `}\n ${this._renderItems(this)}\n </select>\n ${iconLoader(ChevronDown16, {\n class: `${prefix}--select__arrow`,\n 'aria-hidden': 'true',\n })}\n <slot\n name=\"ai-label\"\n style=\"--${prefix}-show-before: ${normalizedProps.warn ||\n normalizedProps.invalid\n ? 'block'\n : 'none'}\"\n @slotchange=${handleAILabelSlotChange}></slot>\n <slot name=\"slug\" @slotchange=${handleAILabelSlotChange}></slot>\n ${!normalizedProps.invalid\n ? undefined\n : iconLoader(WarningFilled16, {\n class: `${prefix}--select__invalid-icon`,\n })}\n ${!normalizedProps.invalid && normalizedProps.warn\n ? iconLoader(WarningAltFilled16, {\n class: `${prefix}--select__invalid-icon ${prefix}--select__invalid-icon--warning`,\n })\n : null}\n `;\n\n return html`\n <label class=\"${labelClasses}\" for=\"input\">\n <slot name=\"label-text\"> ${labelText} </slot>\n </label>\n\n ${inline\n ? html`<div\n class=\"${prefix}--select-input--inline__wrapper\"\n ?data-invalid=\"${normalizedProps.invalid}\">\n <div\n class=\"${prefix}--select-input__wrapper\"\n ?data-invalid=\"${normalizedProps.invalid}\">\n ${input}\n </div>\n </div>`\n : html`<div\n class=\"${prefix}--select-input__wrapper\"\n ?data-invalid=\"${normalizedProps.invalid}\">\n ${input}\n ${this.isFluid\n ? html`\n <hr class=\"${prefix}--select__divider\" />\n ${errorText ? errorText : null}\n `\n : null}\n </div> `}\n ${!this.isFluid && errorText ? errorText : supplementalText}\n `;\n }\n\n /**\n * A selector selecting child pseudo `<optgroup>`/`<option>`.\n */\n static get selectorItem() {\n return `${prefix}-select-item-group,${prefix}-select-item`;\n }\n\n /**\n * A selector selecting child pseudo `<option>`.\n */\n static get selectorLeafItem() {\n return `${prefix}-select-item`;\n }\n\n /**\n * A selector that will return the slug item.\n *\n * remove in v12\n */\n static get slugItem() {\n return `${prefix}-slug`;\n }\n\n /**\n * A selector that will return the AI Label item.\n */\n static get aiLabelItem() {\n return `${prefix}-ai-label`;\n }\n\n /**\n * The name of the custom event fired after item is selected.\n */\n static get eventSelect() {\n return `${prefix}-select-selected`;\n }\n\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n static styles = styles;\n}\n\nexport default CDSSelect;\n"],"names":["customElement"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;AAKG;AAkBH;;;;;;;;;AASG;AAEH,IAAM,SAAS,GAAf,MAAM,SAAU,SAAQ,SAAS,CAAC,UAAU,CAAC,CAAA;AAA7C,IAAA,WAAA,GAAA;;AACE;;AAEG;QACO,IAAA,CAAA,WAAW,GAAG,KAAK;AAE7B;;AAEG;QACK,IAAA,CAAA,iBAAiB,GAA4B,IAAI;AAEzD;;AAEG;AACK,QAAA,IAAA,CAAA,qBAAqB,GAAG,CAAA,EAAA,EAAK,MAAM,uBAAuB,IAAI,CAAC,MAAM;aAC1E,QAAQ,CAAC,EAAE;AACX,aAAA,KAAK,CAAC,CAAC,CAAC,CAAA,CAAE;AAoBb;;AAEG;QAEH,IAAA,CAAA,OAAO,GAAG,KAAK;AAuBf;;;;;;AAMG;QACK,IAAA,CAAA,eAAe,GAAG,MAAK;YAC7B,IAAI,CAAC,aAAa,EAAE;AACtB,QAAA,CAAC;AAqGD;;AAEG;QAEH,IAAA,CAAA,SAAS,GAAG,KAAK;AAEjB;;AAEG;QAEH,IAAA,CAAA,QAAQ,GAAG,KAAK;AAEhB;;AAEG;QAEH,IAAA,CAAA,UAAU,GAAG,EAAE;AAEf;;AAEG;QAEH,IAAA,CAAA,SAAS,GAAG,KAAK;AAEjB;;AAEG;QAEH,IAAA,CAAA,EAAE,GAAG,EAAE;AAEP;;AAEG;QAEH,IAAA,CAAA,OAAO,GAAG,KAAK;AAEf;;AAEG;QAEH,IAAA,CAAA,WAAW,GAAG,EAAE;AAEhB;;AAEG;QAEH,IAAA,CAAA,IAAI,GAAG,KAAK;AAEZ;;AAEG;QAEH,IAAA,CAAA,QAAQ,GAAG,EAAE;AAEb;;AAEG;QAEH,IAAA,CAAA,SAAS,GAAG,EAAE;AAEd;;AAEG;QAEH,IAAA,CAAA,MAAM,GAAG,KAAK;AAUd;;AAEG;QAEH,IAAA,CAAA,IAAI,GAAG,EAAE;AAET;;AAEG;QAEH,IAAA,CAAA,OAAO,GAAG,EAAE;AAEZ;;AAEG;QAEH,IAAA,CAAA,WAAW,GAAG,EAAE;AAEhB;;AAEG;QAEH,IAAA,CAAA,QAAQ,GAAG,KAAK;AAEhB;;AAEG;QAEH,IAAA,CAAA,QAAQ,GAAG,KAAK;AAEhB;;AAEG;QAEH,IAAA,CAAA,uBAAuB,GAAG,6BAA6B;AAevD;;AAEG;AAEH,QAAA,IAAA,CAAA,IAAI,GAAG,UAAU,CAAC,MAAM;AAExB;;AAEG;QAEH,IAAA,CAAA,KAAK,GAAG,EAAE;IAwPZ;AAhgBE;;;;;AAKG;IACK,YAAY,CAAC,EAAE,MAAM,EAAS,EAAA;AACpC,QAAA,MAAM,EAAE,KAAK,EAAE,GAAG,MAA2B;AAC7C,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,QAAA,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,WAA+B;AAC5D,QAAA,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,WAAW,EAAE;AAC3B,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,MAAM,EAAE;gBACN,KAAK;AACN,aAAA;AACF,SAAA,CAAC,CACH;IACH;AAaA;;;AAGG;AACK,IAAA,YAAY,CAAC,OAAwC,EAAA;AAC3D,QAAA,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,GAAG;AACxC,aAAA,WAA+B;;;;AAIlC,QAAA,OAAO,IAAI,CAAA;AACP,MAAA,EAAA,MAAM,CACN,OAAO,CAAC,UAAU,EAClB,CAAC,IAAI,KACH,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY;AAClC,YAAA,IAAgB,CAAC,OAAO,CAAC,YAAY,CAAC,CAC1C,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;YACb,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;YAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;YACxC,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC;YAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;AACxC,YAAA,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI;AAC5B,YAAA,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB;kBAChC,IAAI,CAAA;;yBAES,MAAM,CAAA;6BACF,QAAQ,CAAA;yBACZ,UAAU,CAAC,KAAK,CAAC,CAAA;6BACb,QAAQ,CAAA;yBACZ,SAAS,CAAC,KAAK,CAAC,CAAA;kBACvB,WAAW;;AAEhB,YAAA;kBACD,IAAI,CAAA;;yBAES,MAAM,CAAA;6BACF,QAAQ,CAAA;yBACZ,SAAS,CAAC,KAAK,CAAC,CAAA;AACvB,gBAAA,EAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;;aAE5B;AACP,QAAA,CAAC,CAAC;KACH;IACH;AAEA,IAAA,eAAe,CAAC,KAAoB,EAAA;AAClC,QAAA,MAAM,EAAE,QAAQ,EAAE,GAAG,KAAK;QAC1B,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI;QACtC,IAAI,CAAC,QAAQ,EAAE;AACb,YAAA,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC;QAC9B;IACF;AAEA;;AAEG;IACO,wBAAwB,CAAC,EAAE,MAAM,EAAS,EAAA;QAClD,MAAM,UAAU,GAAI;AACjB,aAAA,aAAa;aACb,MAAM,CAAC,CAAC,IAAI,KACV,IAAoB,CAAC,OAAO,KAAK;cAC7B,IAAoB,CAAC,OAAO,CAC1B,IAAI,CAAC,WAAgC,CAAC,WAAW,CACnD;;gBAEA,IAAoB,CAAC,OAAO,CAC1B,IAAI,CAAC,WAAgC,CAAC,QAAQ;cAEjD,KAAK,CACV;AAEH,QAAA,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;QACtC,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAA,EAAG,IAAI,CAAC,WAAW,CAAA,CAAE,CAAC;QAC/C,UAAU,CAAC,CAAC,CAAiB,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC;QAC3D,IAAI,CAAC,aAAa,EAAE;IACtB;AAEA;;;AAGG;AACH,IAAA,IAAI,MAAM,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM;IAChC;AAEA;;AAEG;AACH,IAAA,IAAI,OAAO,GAAA;AACT,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO;IACjC;AAEA;;AAEG;AACH,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI;IAC9B;AAoEA;;AAEG;AAEH,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,OAAO,KAAK;IACd;AAsCA;;AAEG;AAEH,IAAA,IAAI,aAAa,GAAA;;AACf,QAAA,OAAO,MAAA,IAAI,CAAC,WAAW,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,aAAa;IACxC;IAEA,IAAI,aAAa,CAAC,KAAK,EAAA;AACrB,QAAA,IAAI,CAAC,WAAW,CAAC,aAAa,GAAG,KAAK;QACtC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK;IACrC;IAcA,iBAAiB,GAAA;QACf,KAAK,CAAC,iBAAiB,EAAE;QACzB,IAAI,CAAC,iBAAiB,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC;AACnE,QAAA,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,EAAE;AACnC,YAAA,UAAU,EAAE,IAAI;AAChB,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,OAAO,EAAE,IAAI;AACd,SAAA,CAAC;IACJ;IAEA,oBAAoB,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAC1B,YAAA,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE;AACnC,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI;QAC/B;QACA,KAAK,CAAC,oBAAoB,EAAE;IAC9B;AAEA,IAAA,OAAO,CAAC,iBAAiB,EAAA;;AACvB,QAAA,IAAI,iBAAiB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;YAClC,MAAM,EAAE,KAAK,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,GAAG,IAAI;;;YAInE,MAAM,UAAU,GACd,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,oBAAoB,0CAAG,CAAA,CAAA,EAAA,GAAA,IAAI,CAAC,oBAAoB,0CAAE,MAAM,IAAG,CAAC,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAChE,OAAO,CACR;YAEH,IAAI,KAAK,EAAE;AACT,gBAAA,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,KAAK;YAChC;iBAAO,IAAI,UAAU,EAAE;AACrB,gBAAA,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,UAAU;YACrC;iBAAO;AACL,gBAAA,IAAI,CAAC,WAAW,CAAC,KAAK,GAAG,oBAAoB;YAC/C;QACF;QAEA,MAAM,KAAK,GAAG,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,aAAa,CAAC,uBAAuB,CAAC;QAErE,IAAI,KAAK,EAAE;YACT,IAAI,CAAA,EAAA,GAAC,KAAyB,CAAC,aAAa,EAAE,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,MAAM,EAAE;AACtD,gBAAA,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,SAAS,CAAC,GAAG,CAAC,CAAA,EAAG,MAAM,CAAA,4BAAA,CAA8B,CAAC;YACzE;AAEA,YAAA,KAAK,KAAA,IAAA,IAAL,KAAK,KAAA,MAAA,GAAA,MAAA,GAAL,KAAK,CAAE,SAAS,CAAC,MAAM,CACrB,CAAA,EAAG,MAAM,CAAA,cAAA,CAAgB,EACzB,CAAA,EAAA,GAAA,IAAI,CAAC,aAAa,CAAC,CAAA,EAAG,MAAM,CAAA,SAAA,CAAW,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAAE,YAAY,CAAC,eAAe,CAAC,CACxE;QACH;aAAO;AACL,YAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,UAAU,0CACX,aAAa,CAAC,mBAAmB,CAAC,MAAA,IAAA,IAAA,EAAA,KAAA,MAAA,GAAA,MAAA,GAAA,EAAA,CAClC,SAAS,CAAC,MAAM,CAChB,CAAA,EAAG,MAAM,CAAA,cAAA,CAAgB,EACzB,CAAA,EAAA,GAAA,IAAI,CAAC,aAAa,CAAC,CAAA,EAAG,MAAM,CAAA,KAAA,CAAO,CAAC,0CAAE,YAAY,CAAC,eAAe,CAAC,CACpE;QACL;IACF;IAEA,MAAM,GAAA;AACJ,QAAA,MAAM,EACJ,QAAQ,EACR,UAAU,EACV,SAAS,EACT,MAAM,EACN,OAAO,EACP,WAAW,EACX,SAAS,EACT,WAAW,EACX,QAAQ,EACR,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,qBAAqB,EAAE,oBAAoB,EAC3C,YAAY,EAAE,WAAW,EACzB,wBAAwB,EAAE,uBAAuB,GAClD,GAAG,IAAI;AAER,QAAA,MAAM,eAAe,GAIjB;AACF,YAAA,QAAQ,EAAE,CAAC,QAAQ,IAAI,QAAQ;AAC/B,YAAA,OAAO,EAAE,CAAC,QAAQ,IAAI,CAAC,QAAQ,IAAI,OAAO;YAC1C,IAAI,EAAE,CAAC,QAAQ,IAAI,CAAC,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI;SACjD;QAED,MAAM,YAAY,GAAG,QAAQ,CAAC;AAC5B,YAAA,CAAC,CAAA,EAAG,MAAM,CAAA,cAAA,CAAgB,GAAG,IAAI;AACjC,YAAA,CAAC,GAAG,MAAM,CAAA,gBAAA,EAAmB,IAAI,CAAA,CAAE,GAAG,IAAI;AAC3C,SAAA,CAAC;QAEF,MAAM,YAAY,GAAG,QAAQ,CAAC;AAC5B,YAAA,CAAC,CAAA,EAAG,MAAM,CAAA,OAAA,CAAS,GAAG,IAAI;AAC1B,YAAA,CAAC,GAAG,MAAM,CAAA,iBAAA,CAAmB,GAAG,eAAe,CAAC,QAAQ;AACxD,YAAA,CAAC,CAAA,EAAG,MAAM,CAAA,iBAAA,CAAmB,GAAG,SAAS;AAC1C,SAAA,CAAC;QAEF,MAAM,iBAAiB,GAAG,QAAQ,CAAC;AACjC,YAAA,CAAC,CAAA,EAAG,MAAM,CAAA,mBAAA,CAAqB,GAAG,IAAI;AACtC,YAAA,CAAC,GAAG,MAAM,CAAA,6BAAA,CAA+B,GAAG,eAAe,CAAC,QAAQ;AACrE,SAAA,CAAC;QAEF,MAAM,gBAAgB,GAAG;cACrB,IAAI,CAAA;yCAC6B,iBAAiB,CAAA;wCAClB,UAAU,CAAA;;AAEzC,QAAA;cACD,IAAI;QAER,MAAM,SAAS,GACb,eAAe,CAAC,OAAO,IAAI,eAAe,CAAC;AACzC,cAAE,IAAI,CAAA,CAAA,6BAAA,EAAgC,MAAM,CAAA;cACtC,eAAe,CAAC,OAAO,GAAG,WAAW,GAAG,QAAQ;AAC7C,gBAAA;cACP,IAAI;AAEV,QAAA,IAAI,WAA+B;QACnC,IAAI,eAAe,CAAC,OAAO,IAAI,eAAe,CAAC,IAAI,EAAE;YACnD,WAAW,GAAG,YAAY;QAC5B;aAAO,IAAI,UAAU,EAAE;YACrB,WAAW,GAAG,aAAa;QAC7B;QAEA,MAAM,KAAK,GAAG,IAAI,CAAA;;;iBAGL,YAAY,CAAA;qBACR,QAAQ,CAAA;iBACZ,KAAK,CAAA;AACG,uBAAA,EAAA,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAA;AAC1B,sBAAA,EAAA,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAA;4BACpC,SAAS,CAAC,WAAW,CAAC,CAAA;kBAChC,WAAW,CAAA;UACnB,CAAC,WAAW,IAAI;AAChB,cAAE;cACA,IAAI,CAAA;;;;yBAIS,MAAM,CAAA;yBACN,oBAAoB,CAAA;kBAC3B,WAAW;;AAEhB,YAAA,CAAA;AACH,QAAA,EAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;;QAEzB,UAAU,CAAC,aAAa,EAAE;YAC1B,KAAK,EAAE,CAAA,EAAG,MAAM,CAAA,eAAA,CAAiB;AACjC,YAAA,aAAa,EAAE,MAAM;SACtB,CAAC;;;mBAGW,MAAM,CAAA,cAAA,EAAiB,eAAe,CAAC,IAAI;AACtD,YAAA,eAAe,CAAC;AACd,cAAE;AACF,cAAE,MAAM,CAAA;sBACI,uBAAuB,CAAA;sCACP,uBAAuB,CAAA;QACrD,CAAC,eAAe,CAAC;AACjB,cAAE;AACF,cAAE,UAAU,CAAC,eAAe,EAAE;gBAC1B,KAAK,EAAE,CAAA,EAAG,MAAM,CAAA,sBAAA,CAAwB;aACzC,CAAC;AACJ,MAAA,EAAA,CAAC,eAAe,CAAC,OAAO,IAAI,eAAe,CAAC;AAC5C,cAAE,UAAU,CAAC,kBAAkB,EAAE;AAC7B,gBAAA,KAAK,EAAE,CAAA,EAAG,MAAM,CAAA,uBAAA,EAA0B,MAAM,CAAA,+BAAA,CAAiC;aAClF;AACH,cAAE,IAAI;KACT;AAED,QAAA,OAAO,IAAI,CAAA;sBACO,YAAY,CAAA;mCACC,SAAS,CAAA;;;QAGpC;cACE,IAAI,CAAA,CAAA;qBACO,MAAM,CAAA;AACE,2BAAA,EAAA,eAAe,CAAC,OAAO,CAAA;;uBAE7B,MAAM,CAAA;AACE,6BAAA,EAAA,eAAe,CAAC,OAAO,CAAA;gBACtC,KAAK;;AAEJ,gBAAA;cACP,IAAI,CAAA,CAAA;qBACO,MAAM,CAAA;AACE,2BAAA,EAAA,eAAe,CAAC,OAAO,CAAA;cACtC,KAAK;AACL,YAAA,EAAA,IAAI,CAAC;kBACH,IAAI,CAAA;+BACW,MAAM,CAAA;AACjB,kBAAA,EAAA,SAAS,GAAG,SAAS,GAAG,IAAI;AAC/B,gBAAA;AACH,kBAAE,IAAI;AACF,iBAAA,CAAA;AACV,MAAA,EAAA,CAAC,IAAI,CAAC,OAAO,IAAI,SAAS,GAAG,SAAS,GAAG,gBAAgB;KAC5D;IACH;AAEA;;AAEG;AACH,IAAA,WAAW,YAAY,GAAA;AACrB,QAAA,OAAO,CAAA,EAAG,MAAM,CAAA,mBAAA,EAAsB,MAAM,cAAc;IAC5D;AAEA;;AAEG;AACH,IAAA,WAAW,gBAAgB,GAAA;QACzB,OAAO,CAAA,EAAG,MAAM,CAAA,YAAA,CAAc;IAChC;AAEA;;;;AAIG;AACH,IAAA,WAAW,QAAQ,GAAA;QACjB,OAAO,CAAA,EAAG,MAAM,CAAA,KAAA,CAAO;IACzB;AAEA;;AAEG;AACH,IAAA,WAAW,WAAW,GAAA;QACpB,OAAO,CAAA,EAAG,MAAM,CAAA,SAAA,CAAW;IAC7B;AAEA;;AAEG;AACH,IAAA,WAAW,WAAW,GAAA;QACpB,OAAO,CAAA,EAAG,MAAM,CAAA,gBAAA,CAAkB;IACpC;;AAEO,SAAA,CAAA,iBAAiB,GAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EACnB,UAAU,CAAC,iBAAiB,KAC/B,cAAc,EAAE,IAAI,EAAA,CAFE;AAIjB,SAAA,CAAA,MAAM,GAAG,MAAH;AAnhBL,UAAA,CAAA;IADP,KAAK,CAAC,QAAQ;AACyB,CAAA,EAAA,SAAA,CAAA,SAAA,EAAA,aAAA,EAAA,MAAA,CAAA;AAMhC,UAAA,CAAA;IADP,KAAK,CAAC,QAAQ;AACuB,CAAA,EAAA,SAAA,CAAA,SAAA,EAAA,YAAA,EAAA,MAAA,CAAA;AAM9B,UAAA,CAAA;AADP,IAAA,QAAQ,CAAC,CAAA,CAAA,EAAI,MAAM,CAAA,yBAAA,CAA2B;AACI,CAAA,EAAA,SAAA,CAAA,SAAA,EAAA,sBAAA,EAAA,MAAA,CAAA;AAMnD,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;AACX,CAAA,EAAA,SAAA,CAAA,SAAA,EAAA,SAAA,EAAA,MAAA,CAAA;AAyIhB,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;AACT,CAAA,EAAA,SAAA,CAAA,SAAA,EAAA,WAAA,EAAA,MAAA,CAAA;AAMlB,UAAA,CAAA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;AACzB,CAAA,EAAA,SAAA,CAAA,SAAA,EAAA,UAAA,EAAA,MAAA,CAAA;AAMjB,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,SAAS,EAAE,aAAa,EAAE;AACtB,CAAA,EAAA,SAAA,CAAA,SAAA,EAAA,YAAA,EAAA,MAAA,CAAA;AAMhB,UAAA,CAAA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE;AAClC,CAAA,EAAA,SAAA,CAAA,SAAA,EAAA,WAAA,EAAA,MAAA,CAAA;AAMlB,UAAA,CAAA;AADC,IAAA,QAAQ;AACD,CAAA,EAAA,SAAA,CAAA,SAAA,EAAA,IAAA,EAAA,MAAA,CAAA;AAMR,UAAA,CAAA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;AAC1B,CAAA,EAAA,SAAA,CAAA,SAAA,EAAA,SAAA,EAAA,MAAA,CAAA;AAMhB,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE;AACtB,CAAA,EAAA,SAAA,CAAA,SAAA,EAAA,aAAA,EAAA,MAAA,CAAA;AAMjB,UAAA,CAAA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;AAC7B,CAAA,EAAA,SAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,CAAA;AAMb,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,SAAS,EAAE,WAAW,EAAE;AACtB,CAAA,EAAA,SAAA,CAAA,SAAA,EAAA,UAAA,EAAA,MAAA,CAAA;AAMd,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,SAAS,EAAE,YAAY,EAAE;AACtB,CAAA,EAAA,SAAA,CAAA,SAAA,EAAA,WAAA,EAAA,MAAA,CAAA;AAMf,UAAA,CAAA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;AAC3B,CAAA,EAAA,SAAA,CAAA,SAAA,EAAA,QAAA,EAAA,MAAA,CAAA;AAMf,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;AAG1B,CAAA,EAAA,SAAA,CAAA,SAAA,EAAA,UAAA,EAAA,IAAA,CAAA;AAMD,UAAA,CAAA;AADC,IAAA,QAAQ;AACC,CAAA,EAAA,SAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,CAAA;AAMV,UAAA,CAAA;AADC,IAAA,QAAQ;AACI,CAAA,EAAA,SAAA,CAAA,SAAA,EAAA,SAAA,EAAA,MAAA,CAAA;AAMb,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;AACV,CAAA,EAAA,SAAA,CAAA,SAAA,EAAA,aAAA,EAAA,MAAA,CAAA;AAMjB,UAAA,CAAA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;AACzB,CAAA,EAAA,SAAA,CAAA,SAAA,EAAA,UAAA,EAAA,MAAA,CAAA;AAMjB,UAAA,CAAA;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;AACzB,CAAA,EAAA,SAAA,CAAA,SAAA,EAAA,UAAA,EAAA,MAAA,CAAA;AAMjB,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,SAAS,EAAE,2BAA2B,EAAE;AACI,CAAA,EAAA,SAAA,CAAA,SAAA,EAAA,yBAAA,EAAA,MAAA,CAAA;AAMxD,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;AAGzB,CAAA,EAAA,SAAA,CAAA,SAAA,EAAA,eAAA,EAAA,IAAA,CAAA;AAWD,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;AACF,CAAA,EAAA,SAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,CAAA;AAMzB,UAAA,CAAA;AADC,IAAA,QAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;AAChB,CAAA,EAAA,SAAA,CAAA,SAAA,EAAA,OAAA,EAAA,MAAA,CAAA;AAlTP,SAAS,GAAA,UAAA,CAAA;AADd,IAAAA,aAAa,CAAC,CAAA,EAAG,MAAM,CAAA,OAAA,CAAS;AAC3B,CAAA,EAAA,SAAS,CA0iBd;AAED,kBAAe,SAAS;;;;"}
1
+ {"version":3,"file":"select.js","sources":["../../../src/components/select/select.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2020, 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 { LitElement, html } from 'lit';\nimport { property, query, queryAll } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { prefix } from '../../globals/settings';\nimport ChevronDown16 from '@carbon/icons/es/chevron--down/16.js';\nimport WarningFilled16 from '@carbon/icons/es/warning--filled/16.js';\nimport WarningAltFilled16 from '@carbon/icons/es/warning--alt--filled/16.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport FormMixin from '../../globals/mixins/form';\nimport { filter } from '../../globals/internal/collection-helpers';\nimport { INPUT_SIZE } from '../text-input/text-input';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport styles from './select.scss?lit';\nimport ifNonEmpty from '../../globals/directives/if-non-empty';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\n/**\n * Select box.\n *\n * @element cds-custom-select\n * @fires cds-custom-select-selected\n * The name of the custom event fired after an item is selected.\n * @slot helper-text - The helper text.\n * @slot label-text - The label text.\n * @slot validity-message - The validity message. If present and non-empty, this input shows the UI of its invalid state.\n */\n@customElement(`${prefix}-select`)\nclass CDSSelect extends FormMixin(LitElement) {\n /**\n * `true` if there is an AI Label.\n */\n protected _hasAILabel = false;\n\n /**\n * The mutation observer DOM mutation.\n */\n private _observerMutation: MutationObserver | null = null;\n\n /**\n * The `value` for placeholder `<option>`.\n */\n private _placeholderItemValue = `__${prefix}-select-placeholder_${Math.random()\n .toString(36)\n .slice(2)}`;\n\n /**\n * The select box.\n */\n @query('select')\n private _selectNode!: HTMLSelectElement;\n\n /**\n * Input node of `select` element\n */\n @query('#input')\n private _inputNode!: HTMLInputElement;\n\n /**\n * Select all <option> nodes with `selected` attribute\n */\n @queryAll(`.${prefix}--select-option[selected]`)\n private _selectedOptionNodes!: HTMLOptionElement[];\n\n /**\n * Specify whether the textarea is fluid or not\n */\n @property({ type: Boolean })\n isFluid = false;\n\n /**\n * Handles `oninput` event on the `<input>`.\n *\n * @param event The event.\n * @param event.target The event target.\n */\n private _handleInput({ target }: Event) {\n const { value } = target as HTMLSelectElement;\n this.value = value;\n const { eventSelect } = this.constructor as typeof CDSSelect;\n this.dispatchEvent(\n new CustomEvent(eventSelect, {\n bubbles: true,\n composed: true,\n detail: {\n value,\n },\n })\n );\n }\n\n /**\n * Handles DOM mutation of `<cds-custom-select-item>` or `<cds-custom-select-item-group>` put in `<cds-custom-select>`, or their changes.\n * In such event, `<cds-custom-select>` creates the corresponding `<option>` and `<optgroup>`, respectively, into shadow DOM,\n * with `._renderItems()`.\n * Doing so allows the shadow DOM style of `<cds-custom-select>` to control the style of the `<option>` and `<optgroup>`,\n * notably the disabled ones.\n */\n private _handleMutation = () => {\n this.requestUpdate();\n };\n\n /**\n * @param element The parent element containing pseudo `<optgroup>`/`<option>`.\n * @returns The template containing child `<optgroup>`/`<option>` that will be rendered to shadow DOM.\n */\n private _renderItems(element: CDSSelect | HTMLOptGroupElement) {\n const { selectorItem, selectorLeafItem } = this\n .constructor as typeof CDSSelect;\n // Harvests attributes from `<cds-custom-select-item>` and `<cds-custom-select-item-group>`.\n // Does not use properties to avoid delay in attribute to property mapping, which runs in custom element reaction cycle:\n // https://html.spec.whatwg.org/multipage/custom-elements.html#custom-element-reactions\n return html`\n ${filter(\n element.childNodes,\n (item) =>\n item.nodeType === Node.ELEMENT_NODE &&\n (item as Element).matches(selectorItem)\n ).map((item) => {\n const disabled = item.hasAttribute('disabled');\n const label = item.getAttribute('label');\n const selected = item.hasAttribute('selected');\n const value = item.getAttribute('value');\n const { textContent } = item;\n return item.matches(selectorLeafItem)\n ? html`\n <option\n class=\"${prefix}--select-option\"\n ?disabled=\"${disabled}\"\n label=\"${ifNonEmpty(label)}\"\n ?selected=\"${selected}\"\n value=\"${ifDefined(value)}\">\n ${textContent}\n </option>\n `\n : html`\n <optgroup\n class=\"${prefix}--select-optgroup\"\n ?disabled=\"${disabled}\"\n label=\"${ifDefined(label)}\">\n ${this._renderItems(item)}\n </optgroup>\n `;\n })}\n `;\n }\n\n _handleFormdata(event: FormDataEvent) {\n const { formData } = event;\n const { disabled, name, value } = this;\n if (!disabled) {\n formData.append(name, value);\n }\n }\n\n /**\n * Handles `slotchange` event.\n */\n protected _handleAILabelSlotChange({ target }: Event) {\n const hasContent = (target as HTMLSlotElement)\n .assignedNodes()\n .filter((elem) =>\n (elem as HTMLElement).matches !== undefined\n ? (elem as HTMLElement).matches(\n (this.constructor as typeof CDSSelect).aiLabelItem\n ) ||\n // remove reference to slug in v12\n (elem as HTMLElement).matches(\n (this.constructor as typeof CDSSelect).slugItem\n )\n : false\n );\n\n this._hasAILabel = Boolean(hasContent);\n this.setAttribute('slug', `${this._hasAILabel}`);\n (hasContent[0] as HTMLElement).setAttribute('size', 'mini');\n this.requestUpdate();\n }\n\n /**\n * The count of child `<option>`s.\n * If the placeholder is in effect, it includes the `<option>` for the placeholder.\n */\n get length() {\n return this._selectNode.length;\n }\n\n /**\n * The child `<option>`s.\n */\n get options() {\n return this._selectNode.options;\n }\n\n /**\n * This form control's type.\n */\n get type() {\n return this._selectNode.type;\n }\n\n /**\n * Sets the select to be focussed automatically on page load. Defaults to false\n */\n @property({ type: Boolean })\n autofocus = false;\n\n /**\n * Controls the disabled state of the select\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * The helper text.\n */\n @property({ attribute: 'helper-text' })\n helperText = '';\n\n /**\n * Specify whether the label should be hidden, or not\n */\n @property({ type: Boolean, attribute: 'hide-label' })\n hideLabel = false;\n\n /**\n * ID to link the `label` and `select`\n */\n @property()\n id = '';\n\n /**\n * Specify if the currently value is invalid.\n */\n @property({ type: Boolean, reflect: true })\n invalid = false;\n\n /**\n * Message which is displayed if the value is invalid.\n */\n @property({ attribute: 'invalid-text' })\n invalidText = '';\n\n /**\n * Specify if the currently value is warn.\n */\n @property({ type: Boolean, reflect: true })\n warn = false;\n\n /**\n * Message which is displayed if the value is warn.\n */\n @property({ attribute: 'warn-text' })\n warnText = '';\n\n /**\n * The label text.\n */\n @property({ attribute: 'label-text' })\n labelText = '';\n\n /**\n * Specify whether you want the inline version of this control\n */\n @property({ type: Boolean, reflect: true })\n inline = false;\n\n /**\n * `true` to enable multiple selection.\n */\n @property({ type: Boolean })\n get multiple() {\n return false;\n }\n\n /**\n * Name for the select in the `FormData`\n */\n @property()\n name = '';\n\n /**\n * Pattern to validate the select against for HTML validity checking\n */\n @property()\n pattern = '';\n\n /**\n * Value to display when the select has an empty `value`\n */\n @property({ reflect: true })\n placeholder = '';\n\n /**\n * Controls the readonly state of the select\n */\n @property({ type: Boolean, reflect: true })\n readonly = false;\n\n /**\n * Boolean property to set the required status\n */\n @property({ type: Boolean, reflect: true })\n required = false;\n\n /**\n * The special validity message for `required`.\n */\n @property({ attribute: 'required-validity-message' })\n requiredValidityMessage = 'Please fill out this field.';\n\n /**\n * The selected index.\n */\n @property({ type: Number })\n get selectedIndex() {\n return this._selectNode?.selectedIndex;\n }\n\n set selectedIndex(value) {\n this._selectNode.selectedIndex = value;\n this.value = this._selectNode.value;\n }\n\n /**\n * The input box size.\n */\n @property({ reflect: true })\n size = INPUT_SIZE.MEDIUM;\n\n /**\n * The value of the text area.\n */\n @property({ reflect: true })\n value = '';\n\n connectedCallback() {\n super.connectedCallback();\n this._observerMutation = new MutationObserver(this._handleMutation);\n this._observerMutation.observe(this, {\n attributes: true,\n childList: true,\n subtree: true,\n });\n }\n\n disconnectedCallback() {\n if (this._observerMutation) {\n this._observerMutation.disconnect();\n this._observerMutation = null;\n }\n super.disconnectedCallback();\n }\n\n updated(changedProperties) {\n if (changedProperties.has('value')) {\n const { value, _placeholderItemValue: placeholderItemValue } = this;\n // Ensures setting the `value` after rendering child `<option>`s/`<optgroup>`s when there is a change in `value`,\n // given reflecting `value` requires child `<option>`s/`<optgroup>`s being there beforehand\n\n const lastOption =\n this._selectedOptionNodes?.[this._selectedOptionNodes?.length - 1]?.[\n 'value'\n ];\n\n if (value) {\n this._selectNode.value = value;\n } else if (lastOption) {\n this._selectNode.value = lastOption;\n } else {\n this._selectNode.value = placeholderItemValue;\n }\n }\n\n const label = this.shadowRoot?.querySelector(\"slot[name='ai-label']\");\n\n if (label) {\n if ((label as HTMLSlotElement).assignedNodes()?.length) {\n this._inputNode?.classList.add(`${prefix}--select-input-has--ai-label`);\n }\n\n label?.classList.toggle(\n `${prefix}--slug--revert`,\n this.querySelector(`${prefix}-ai-label`)?.hasAttribute('revert-active')\n );\n } else {\n this.shadowRoot\n ?.querySelector(\"slot[name='slug']\")\n ?.classList.toggle(\n `${prefix}--slug--revert`,\n this.querySelector(`${prefix}-slug`)?.hasAttribute('revert-active')\n );\n }\n }\n\n render() {\n const {\n disabled,\n helperText,\n hideLabel,\n inline,\n invalid,\n invalidText,\n labelText,\n placeholder,\n readonly,\n size,\n warn,\n warnText,\n value,\n _placeholderItemValue: placeholderItemValue,\n _handleInput: handleInput,\n _handleAILabelSlotChange: handleAILabelSlotChange,\n } = this;\n\n const normalizedProps: {\n disabled: boolean;\n invalid: boolean;\n warn: boolean;\n } = {\n disabled: !readonly && disabled,\n invalid: !readonly && !disabled && invalid,\n warn: !readonly && !invalid && !disabled && warn,\n };\n\n const inputClasses = classMap({\n [`${prefix}--select-input`]: true,\n [`${prefix}--select-input--${size}`]: size,\n });\n\n const labelClasses = classMap({\n [`${prefix}--label`]: true,\n [`${prefix}--label--disabled`]: normalizedProps.disabled,\n [`${prefix}--visually-hidden`]: hideLabel,\n });\n\n const helperTextClasses = classMap({\n [`${prefix}--form__helper-text`]: true,\n [`${prefix}--form__helper-text--disabled`]: normalizedProps.disabled,\n });\n\n const supplementalText = helperText\n ? html`\n <div id=\"helper-text\" class=\"${helperTextClasses}\">\n <slot name=\"helper-text\"> ${helperText} </slot>\n </div>\n `\n : null;\n\n const errorText =\n normalizedProps.invalid || normalizedProps.warn\n ? html` <div id=\"error-text\" class=\"${prefix}--form-requirement\">\n ${normalizedProps.invalid ? invalidText : warnText}\n </div>`\n : null;\n\n let describedBy: string | undefined;\n if (normalizedProps.invalid || normalizedProps.warn) {\n describedBy = 'error-text';\n } else if (helperText) {\n describedBy = 'helper-text';\n }\n\n const input = html`\n <select\n id=\"input\"\n class=\"${inputClasses}\"\n ?disabled=\"${disabled}\"\n title=\"${value}\"\n aria-readonly=\"${String(readonly)}\"\n aria-invalid=\"${String(normalizedProps.invalid)}\"\n aria-describedby=\"${ifDefined(describedBy)}\"\n @input=\"${handleInput}\">\n ${!placeholder || value\n ? undefined\n : html`\n <option\n disabled\n hidden\n class=\"${prefix}--select-option\"\n value=\"${placeholderItemValue}\">\n ${placeholder}\n </option>\n `}\n ${this._renderItems(this)}\n </select>\n ${iconLoader(ChevronDown16, {\n class: `${prefix}--select__arrow`,\n 'aria-hidden': 'true',\n })}\n <slot\n name=\"ai-label\"\n style=\"--${prefix}-show-before: ${normalizedProps.warn ||\n normalizedProps.invalid\n ? 'block'\n : 'none'}\"\n @slotchange=${handleAILabelSlotChange}></slot>\n <slot name=\"slug\" @slotchange=${handleAILabelSlotChange}></slot>\n ${!normalizedProps.invalid\n ? undefined\n : iconLoader(WarningFilled16, {\n class: `${prefix}--select__invalid-icon`,\n })}\n ${!normalizedProps.invalid && normalizedProps.warn\n ? iconLoader(WarningAltFilled16, {\n class: `${prefix}--select__invalid-icon ${prefix}--select__invalid-icon--warning`,\n })\n : null}\n `;\n\n return html`\n <label class=\"${labelClasses}\" for=\"input\">\n <slot name=\"label-text\"> ${labelText} </slot>\n </label>\n\n ${inline\n ? html`<div\n class=\"${prefix}--select-input--inline__wrapper\"\n ?data-invalid=\"${normalizedProps.invalid}\">\n <div\n class=\"${prefix}--select-input__wrapper\"\n ?data-invalid=\"${normalizedProps.invalid}\">\n ${input}\n </div>\n </div>`\n : html`<div\n class=\"${prefix}--select-input__wrapper\"\n ?data-invalid=\"${normalizedProps.invalid}\">\n ${input}\n ${this.isFluid\n ? html`\n <hr class=\"${prefix}--select__divider\" />\n ${errorText ? errorText : null}\n `\n : null}\n </div> `}\n ${!this.isFluid && errorText ? errorText : supplementalText}\n `;\n }\n\n /**\n * A selector selecting child pseudo `<optgroup>`/`<option>`.\n */\n static get selectorItem() {\n return `${prefix}-select-item-group,${prefix}-select-item`;\n }\n\n /**\n * A selector selecting child pseudo `<option>`.\n */\n static get selectorLeafItem() {\n return `${prefix}-select-item`;\n }\n\n /**\n * A selector that will return the slug item.\n *\n * remove in v12\n */\n static get slugItem() {\n return `${prefix}-slug`;\n }\n\n /**\n * A selector that will return the AI Label item.\n */\n static get aiLabelItem() {\n return `${prefix}-ai-label`;\n }\n\n /**\n * The name of the custom event fired after item is selected.\n */\n static get eventSelect() {\n return `${prefix}-select-selected`;\n }\n\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n static styles = styles;\n}\n\nexport default CDSSelect;\n"],"names":["customElement"],"mappings":"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"}