@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
@@ -193,6 +193,9 @@ let CDSTextInput = class CDSTextInput extends ValidityMixin(FormMixin(LitElement
193
193
  formData.append(name, value);
194
194
  }
195
195
  }
196
+ _handleHelperTextSlotChange() {
197
+ this.requestUpdate();
198
+ }
196
199
  /**
197
200
  * The value of the input.
198
201
  */
@@ -226,6 +229,7 @@ let CDSTextInput = class CDSTextInput extends ValidityMixin(FormMixin(LitElement
226
229
  this.type === INPUT_TYPE.PASSWORD ? INPUT_TYPE.TEXT : INPUT_TYPE.PASSWORD;
227
230
  }
228
231
  render() {
232
+ var _a, _b;
229
233
  const { disabled, enableCounter, helperText, hideLabel, inline, isFluid, invalid, invalidText, label, maxCount, readonly, required, size, type, warn, warnText, value, _handleInput: handleInput, _hasAILabel: hasAILabel, _handleSlotChange: handleSlotChange, } = this;
230
234
  const invalidIcon = iconLoader(WarningFilled16, {
231
235
  class: `${prefix}--text-input__invalid-icon`,
@@ -269,7 +273,7 @@ let CDSTextInput = class CDSTextInput extends ValidityMixin(FormMixin(LitElement
269
273
  [`${prefix}--text-input--warning`]: normalizedProps.warn,
270
274
  [`${prefix}--text-input--${size}`]: size,
271
275
  [`${prefix}--layout--size-${size}`]: size,
272
- [`${prefix}--password-input`]: type === INPUT_TYPE.PASSWORD, //TODO deprecated, remove in v12
276
+ [`${prefix}--password-input`]: type === INPUT_TYPE.PASSWORD, // TODO: deprecated, remove in v12
273
277
  [`${prefix}--text-input__field-wrapper--decorator`]: hasAILabel,
274
278
  });
275
279
  const fieldOuterWrapperClasses = classMap({
@@ -289,12 +293,12 @@ let CDSTextInput = class CDSTextInput extends ValidityMixin(FormMixin(LitElement
289
293
  [`${prefix}--form__helper-text`]: true,
290
294
  [`${prefix}--form__helper-text--disabled`]: normalizedProps.disabled,
291
295
  });
292
- //TODO deprecated, remove in v12
296
+ // TODO: deprecated, remove in v12
293
297
  const passwordIsVisible = type !== INPUT_TYPE.PASSWORD;
294
298
  const passwordVisibilityIcon = passwordIsVisible
295
299
  ? iconLoader(ViewOff16, { class: `${prefix}--icon-visibility-off` })
296
300
  : iconLoader(View16, { class: `${prefix}--icon-visibility-on` });
297
- //TODO deprecated, remove in v12
301
+ // TODO: deprecated, remove in v12
298
302
  const passwordVisibilityToggleClasses = classMap({
299
303
  [`${prefix}--text-input--password__visibility__toggle`]: true,
300
304
  [`${prefix}--btn`]: true,
@@ -305,13 +309,13 @@ let CDSTextInput = class CDSTextInput extends ValidityMixin(FormMixin(LitElement
305
309
  [`${prefix}--tooltip--${this.tooltipDirection}`]: this.tooltipDirection,
306
310
  [`${prefix}--tooltip--align-${this.tooltipAlignment}`]: this.tooltipAlignment,
307
311
  });
308
- //TODO deprecated, remove in v12
312
+ // TODO: deprecated, remove in v12
309
313
  const passwordButtonLabel = html `
310
314
  <span class="${prefix}--assistive-text">
311
315
  ${passwordIsVisible ? this.hidePasswordLabel : this.showPasswordLabel}
312
316
  </span>
313
317
  `;
314
- //TODO deprecated, remove in v12
318
+ // TODO: deprecated, remove in v12
315
319
  const passwordVisibilityButton = () => html `
316
320
  <button
317
321
  type="button"
@@ -334,14 +338,19 @@ let CDSTextInput = class CDSTextInput extends ValidityMixin(FormMixin(LitElement
334
338
  </label>
335
339
  ${counter}
336
340
  </div>`;
337
- const helper = helperText
338
- ? html `<div
339
- class="${helperTextClasses}"
340
- id="helper-text"
341
- ?hidden="${normalizedProps.invalid || normalizedProps.warn}">
342
- <slot name="helper-text"> ${helperText} </slot>
343
- </div>`
344
- : null;
341
+ const hasHelperText = helperText || ((_b = (_a = this._slotHelperTextNode) === null || _a === void 0 ? void 0 : _a.assignedNodes().length) !== null && _b !== void 0 ? _b : 0) > 0;
342
+ const helper = html `<div
343
+ class="${helperTextClasses}"
344
+ id="helper-text"
345
+ ?hidden="${normalizedProps.invalid ||
346
+ normalizedProps.warn ||
347
+ !hasHelperText}">
348
+ <slot
349
+ name="helper-text"
350
+ @slotchange="${this._handleHelperTextSlotChange}">
351
+ ${helperText}
352
+ </slot>
353
+ </div>`;
345
354
  const validationMessage = normalizedProps.invalid || normalizedProps.warn
346
355
  ? html `<div
347
356
  class="${prefix}--form-requirement"
@@ -367,7 +376,7 @@ let CDSTextInput = class CDSTextInput extends ValidityMixin(FormMixin(LitElement
367
376
  class="${inputClasses}"
368
377
  ?data-invalid="${invalid}"
369
378
  ?disabled="${disabled}"
370
- aria-describedby="helper-text"
379
+ ?aria-describedby="${hasHelperText ? 'helper-text' : undefined}"
371
380
  id="input"
372
381
  name="${ifNonEmpty(this.name)}"
373
382
  pattern="${ifNonEmpty(this.pattern)}"
@@ -427,6 +436,9 @@ CDSTextInput.styles = styles;
427
436
  __decorate([
428
437
  query('input')
429
438
  ], CDSTextInput.prototype, "_input", void 0);
439
+ __decorate([
440
+ query('slot[name="helper-text"]')
441
+ ], CDSTextInput.prototype, "_slotHelperTextNode", void 0);
430
442
  __decorate([
431
443
  property()
432
444
  ], CDSTextInput.prototype, "autocomplete", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"text-input.js","sources":["../../../src/components/text-input/text-input.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 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 } from 'lit/decorators.js';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { prefix } from '../../globals/settings';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport ifNonEmpty from '../../globals/directives/if-non-empty';\nimport WarningFilled16 from '@carbon/icons/es/warning--filled/16.js';\nimport WarningAltFilled16 from '@carbon/icons/es/warning--alt--filled/16.js';\nimport View16 from '@carbon/icons/es/view/16.js';\nimport ViewOff16 from '@carbon/icons/es/view--off/16.js';\nimport FormMixin from '../../globals/mixins/form';\nimport ValidityMixin from '../../globals/mixins/validity';\nimport {\n INPUT_COLOR_SCHEME,\n INPUT_SIZE,\n INPUT_TOOLTIP_ALIGNMENT,\n INPUT_TOOLTIP_DIRECTION,\n INPUT_TYPE,\n} from './defs';\nimport styles from './text-input.scss?lit';\n\nexport {\n INPUT_COLOR_SCHEME,\n INPUT_SIZE,\n INPUT_TOOLTIP_ALIGNMENT,\n INPUT_TOOLTIP_DIRECTION,\n INPUT_TYPE,\n};\n\n/**\n * Text Input element. Supports all the usual attributes for textual input types\n *\n * @element cds-custom-text-input\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}-text-input`)\nclass CDSTextInput extends ValidityMixin(FormMixin(LitElement)) {\n /**\n * `true` if there is an AI Label.\n */\n protected _hasAILabel = false;\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 CDSTextInput).aiLabelItem\n ) ||\n // remove reference to slug in v12\n (elem as HTMLElement).matches(\n (this.constructor as typeof CDSTextInput).slugItem\n )\n : false\n );\n\n this._hasAILabel = Boolean(hasContent);\n (hasContent[0] as HTMLElement).setAttribute('size', 'mini');\n this.requestUpdate();\n }\n /**\n * The underlying input element\n */\n @query('input')\n protected _input!: HTMLInputElement;\n\n /**\n * The internal value.\n */\n protected _value = '';\n\n /**\n * Handles `oninput` event on the `input`.\n *\n * @param event The event.\n * @param event.target The event target.\n */\n protected _handleInput({ target }: Event) {\n this.value = (target as HTMLInputElement).value;\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 * May be any of the standard HTML autocomplete options\n */\n @property()\n autocomplete = '';\n\n /**\n * Sets the input 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 input\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * Specify whether to display the character counter\n */\n @property({ type: Boolean, attribute: 'enable-counter', reflect: true })\n enableCounter = false;\n\n /**\n * The helper text.\n */\n @property({ attribute: 'helper-text' })\n helperText = '';\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 * Max character count allowed for input. This is needed in order for enableCounter to display\n */\n @property({ type: Number, attribute: 'max-count', reflect: true })\n maxCount;\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 * Specify whether you want the underlying label to be visually hidden\n */\n @property({ attribute: 'hide-label', type: Boolean, reflect: true })\n hideLabel = false;\n\n /**\n * Generic label that will be used as the textual representation of what this field is for\n */\n @property({ attribute: 'label' })\n label = '';\n\n /**\n * Name for the input in the `FormData`\n */\n @property()\n name = '';\n\n /**\n * Pattern to validate the input against for HTML validity checking\n */\n @property()\n pattern = '';\n\n /**\n * Value to display when the input has an empty `value`\n */\n @property({ reflect: true })\n placeholder = '';\n\n /**\n * Specify if the component should be read-only\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 * \"Hide password\" tooltip text on password visibility toggle\n *\n * @deprecated will be removed in the next major version, use `cds-custom-password-input` instead\n */\n @property()\n hidePasswordLabel = 'Hide password';\n\n /**\n * \"Show password\" tooltip text on password visibility toggle\n *\n * @deprecated will be removed in the next major version, use `cds-custom-password-input` instead\n */\n @property()\n showPasswordLabel = 'Show password';\n\n /**\n * Boolean property to render password visibility toggle\n *\n * @deprecated will be removed in the next major version, use `cds-custom-password-input` instead\n */\n @property({\n type: Boolean,\n attribute: 'show-password-visibility-toggle',\n reflect: true,\n })\n showPasswordVisibilityToggle = false;\n\n /**\n * The input box size.\n */\n @property({ reflect: true })\n size = INPUT_SIZE.MEDIUM;\n\n @property({ type: Boolean })\n isFluid = false;\n\n /**\n * true to use the inline version.\n */\n @property({ type: Boolean, reflect: true })\n inline = false;\n\n /**\n * Specify the alignment of the tooltip to the icon-only button.\n * Can be one of: start, center, or end.\n */\n @property()\n tooltipAlignment = INPUT_TOOLTIP_ALIGNMENT.CENTER;\n\n /**\n * Specify the direction of the tooltip for icon-only buttons.\n * Can be either top, right, bottom, or left.\n */\n @property()\n tooltipDirection = INPUT_TOOLTIP_DIRECTION.BOTTOM;\n\n /**\n * The type of the input. Can be one of the types listed in the INPUT_TYPE enum\n */\n @property({ reflect: true })\n type = INPUT_TYPE.TEXT;\n\n /**\n * The validity message. If present and non-empty, this input shows the UI of its invalid state.\n */\n @property({ attribute: 'validity-message' })\n validityMessage = '';\n\n /**\n * The value of the input.\n */\n @property({ reflect: true })\n get value() {\n // FIXME: Figure out how to deal with TS2611\n // once we have the input we can directly query for the value\n if (this._input) {\n return this._input.value;\n }\n // but before then _value will work fine\n return this._value;\n }\n\n set value(value) {\n const oldValue = this._value;\n this._value = value;\n // make sure that lit-element updates the right properties\n this.requestUpdate('value', oldValue);\n // we set the value directly on the input (when available)\n // so that programatic manipulation updates the UI correctly\n if (this._input) {\n this._input.value = value;\n }\n }\n\n /**\n * Handles password visibility toggle button click\n *\n * @deprecated will be removed in the next major version, use `cds-custom-password-input` instead\n */\n private togglePasswordVisibility() {\n this.type =\n this.type === INPUT_TYPE.PASSWORD ? INPUT_TYPE.TEXT : INPUT_TYPE.PASSWORD;\n }\n\n render() {\n const {\n disabled,\n enableCounter,\n helperText,\n hideLabel,\n inline,\n isFluid,\n invalid,\n invalidText,\n label,\n maxCount,\n readonly,\n required,\n size,\n type,\n warn,\n warnText,\n value,\n _handleInput: handleInput,\n _hasAILabel: hasAILabel,\n _handleSlotChange: handleSlotChange,\n } = this;\n\n const invalidIcon = iconLoader(WarningFilled16, {\n class: `${prefix}--text-input__invalid-icon`,\n });\n\n const warnIcon = iconLoader(WarningAltFilled16, {\n class: `${prefix}--text-input__invalid-icon ${prefix}--text-input__invalid-icon--warning`,\n });\n\n const normalizedProps: {\n disabled: boolean;\n invalid: boolean;\n warn: boolean;\n 'slot-name': string;\n 'slot-text': string;\n icon: ReturnType<typeof iconLoader>;\n } = {\n disabled: !readonly && disabled,\n invalid: !readonly && invalid,\n warn: !readonly && !invalid && warn,\n 'slot-name': '',\n 'slot-text': '',\n icon: null,\n };\n\n if (normalizedProps.invalid) {\n normalizedProps.icon = invalidIcon;\n normalizedProps['slot-name'] = 'invalid-text';\n normalizedProps['slot-text'] = invalidText;\n } else if (normalizedProps.warn) {\n normalizedProps.icon = warnIcon;\n normalizedProps['slot-name'] = 'warn-text';\n normalizedProps['slot-text'] = warnText;\n }\n\n const counterClasses = classMap({\n [`${prefix}--label`]: true,\n [`${prefix}--text-input__label-counter`]: true,\n [`${prefix}--label--disabled`]: disabled,\n });\n\n const inputWrapperClasses = classMap({\n [`${prefix}--form-item`]: true,\n [`${prefix}--text-input-wrapper`]: true,\n [`${prefix}--text-input-wrapper--inline`]: inline,\n [`${prefix}--text-input-wrapper--readonly`]: readonly,\n [`${prefix}--text-input-wrapper--inline--invalid`]:\n inline && normalizedProps.invalid,\n });\n\n const inputClasses = classMap({\n [`${prefix}--text-input`]: true,\n [`${prefix}--text-input--invalid`]: normalizedProps.invalid,\n [`${prefix}--text-input--warning`]: normalizedProps.warn,\n [`${prefix}--text-input--${size}`]: size,\n [`${prefix}--layout--size-${size}`]: size,\n [`${prefix}--password-input`]: type === INPUT_TYPE.PASSWORD, //TODO deprecated, remove in v12\n [`${prefix}--text-input__field-wrapper--decorator`]: hasAILabel,\n });\n\n const fieldOuterWrapperClasses = classMap({\n [`${prefix}--text-input__field-outer-wrapper`]: true,\n [`${prefix}--text-input__field-outer-wrapper--inline`]: inline,\n });\n\n const fieldWrapperClasses = classMap({\n [`${prefix}--text-input__field-wrapper`]: true,\n [`${prefix}--text-input__field-wrapper--warning`]: normalizedProps.warn,\n });\n\n const labelClasses = classMap({\n [`${prefix}--label`]: true,\n [`${prefix}--visually-hidden`]: hideLabel,\n [`${prefix}--label--disabled`]: normalizedProps.disabled,\n });\n\n const helperTextClasses = classMap({\n [`${prefix}--form__helper-text`]: true,\n [`${prefix}--form__helper-text--disabled`]: normalizedProps.disabled,\n });\n\n //TODO deprecated, remove in v12\n const passwordIsVisible = type !== INPUT_TYPE.PASSWORD;\n const passwordVisibilityIcon = passwordIsVisible\n ? iconLoader(ViewOff16, { class: `${prefix}--icon-visibility-off` })\n : iconLoader(View16, { class: `${prefix}--icon-visibility-on` });\n\n //TODO deprecated, remove in v12\n const passwordVisibilityToggleClasses = classMap({\n [`${prefix}--text-input--password__visibility__toggle`]: true,\n [`${prefix}--btn`]: true,\n [`${prefix}--btn--icon-only`]: true,\n [`${prefix}--tooltip__trigger`]: true,\n [`${prefix}--tooltip--a11y`]: true,\n [`${prefix}--btn--disabled`]: normalizedProps.disabled,\n [`${prefix}--tooltip--${this.tooltipDirection}`]: this.tooltipDirection,\n [`${prefix}--tooltip--align-${this.tooltipAlignment}`]:\n this.tooltipAlignment,\n });\n\n //TODO deprecated, remove in v12\n const passwordButtonLabel = html`\n <span class=\"${prefix}--assistive-text\">\n ${passwordIsVisible ? this.hidePasswordLabel : this.showPasswordLabel}\n </span>\n `;\n\n //TODO deprecated, remove in v12\n const passwordVisibilityButton = () => html`\n <button\n type=\"button\"\n class=\"${passwordVisibilityToggleClasses}\"\n ?disabled=\"${normalizedProps.disabled}\"\n @click=\"${this.togglePasswordVisibility}\">\n ${!normalizedProps.disabled ? passwordButtonLabel : null}\n ${passwordVisibilityIcon}\n </button>\n `;\n\n const textCount = value?.length;\n\n const counter =\n enableCounter && maxCount\n ? html` <label class=\"${counterClasses}\">\n <slot name=\"label-text\">${textCount}/${maxCount}</slot>\n </label>`\n : null;\n\n const labelWrapper = html`<div class=\"${prefix}--text-input__label-wrapper\">\n <label class=\"${labelClasses}\">\n <slot name=\"label-text\">${label}</slot>\n </label>\n ${counter}\n </div>`;\n\n const helper = helperText\n ? html`<div\n class=\"${helperTextClasses}\"\n id=\"helper-text\"\n ?hidden=\"${normalizedProps.invalid || normalizedProps.warn}\">\n <slot name=\"helper-text\"> ${helperText} </slot>\n </div>`\n : null;\n\n const validationMessage =\n normalizedProps.invalid || normalizedProps.warn\n ? html`<div\n class=\"${prefix}--form-requirement\"\n ?hidden=\"${!normalizedProps.invalid && !normalizedProps.warn}\">\n <slot name=\"${normalizedProps['slot-name']}\">\n ${normalizedProps['slot-text']}\n </slot>\n </div>`\n : null;\n\n return html`\n <div class=\"${inputWrapperClasses}\">\n ${!inline\n ? labelWrapper\n : html`<div class=\"${prefix}--text-input__label-helper-wrapper\">\n ${labelWrapper} ${!isFluid ? validationMessage || helper : null}\n </div>`}\n <div class=\"${fieldOuterWrapperClasses}\">\n <div class=\"${fieldWrapperClasses}\" ?data-invalid=\"${invalid}\">\n ${normalizedProps.icon}\n <input\n autocomplete=\"${this.autocomplete}\"\n ?autofocus=\"${this.autofocus}\"\n class=\"${inputClasses}\"\n ?data-invalid=\"${invalid}\"\n ?disabled=\"${disabled}\"\n aria-describedby=\"helper-text\"\n id=\"input\"\n name=\"${ifNonEmpty(this.name)}\"\n pattern=\"${ifNonEmpty(this.pattern)}\"\n placeholder=\"${ifNonEmpty(this.placeholder)}\"\n ?readonly=\"${readonly}\"\n ?required=\"${required}\"\n type=\"${ifNonEmpty(type)}\"\n .value=\"${this._value}\"\n maxlength=\"${ifNonEmpty(maxCount)}\"\n @input=\"${handleInput}\" />\n <slot name=\"ai-label\" @slotchange=\"${handleSlotChange}\"></slot>\n <slot name=\"slug\" @slotchange=\"${handleSlotChange}\"></slot>\n ${this.showPasswordVisibilityToggle &&\n (type === INPUT_TYPE.PASSWORD || type === INPUT_TYPE.TEXT)\n ? passwordVisibilityButton()\n : null}\n ${isFluid\n ? html`<hr class=\"${prefix}--text-input__divider\" />`\n : null}\n ${isFluid && !inline ? validationMessage : null}\n </div>\n\n ${/* Non-fluid: validation and helper outside field wrapper */ ''}\n ${!isFluid && !inline ? validationMessage || helper : null}\n </div>\n </div>\n `;\n }\n\n updated() {\n this.toggleAttribute('ai-label', this._hasAILabel);\n const label = this.shadowRoot?.querySelector(\"slot[name='ai-label']\");\n\n if (label) {\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 /**\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 static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n static styles = styles;\n}\n\nexport default CDSTextInput;\n"],"names":["customElement"],"mappings":"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"}
1
+ {"version":3,"file":"text-input.js","sources":["../../../src/components/text-input/text-input.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 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 } from 'lit/decorators.js';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { prefix } from '../../globals/settings';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport ifNonEmpty from '../../globals/directives/if-non-empty';\nimport WarningFilled16 from '@carbon/icons/es/warning--filled/16.js';\nimport WarningAltFilled16 from '@carbon/icons/es/warning--alt--filled/16.js';\nimport View16 from '@carbon/icons/es/view/16.js';\nimport ViewOff16 from '@carbon/icons/es/view--off/16.js';\nimport FormMixin from '../../globals/mixins/form';\nimport ValidityMixin from '../../globals/mixins/validity';\nimport {\n INPUT_COLOR_SCHEME,\n INPUT_SIZE,\n INPUT_TOOLTIP_ALIGNMENT,\n INPUT_TOOLTIP_DIRECTION,\n INPUT_TYPE,\n} from './defs';\nimport styles from './text-input.scss?lit';\n\nexport {\n INPUT_COLOR_SCHEME,\n INPUT_SIZE,\n INPUT_TOOLTIP_ALIGNMENT,\n INPUT_TOOLTIP_DIRECTION,\n INPUT_TYPE,\n};\n\n/**\n * Text Input element. Supports all the usual attributes for textual input types\n *\n * @element cds-custom-text-input\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}-text-input`)\nclass CDSTextInput extends ValidityMixin(FormMixin(LitElement)) {\n /**\n * `true` if there is an AI Label.\n */\n protected _hasAILabel = false;\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 CDSTextInput).aiLabelItem\n ) ||\n // remove reference to slug in v12\n (elem as HTMLElement).matches(\n (this.constructor as typeof CDSTextInput).slugItem\n )\n : false\n );\n\n this._hasAILabel = Boolean(hasContent);\n (hasContent[0] as HTMLElement).setAttribute('size', 'mini');\n this.requestUpdate();\n }\n /**\n * The underlying input element\n */\n @query('input')\n protected _input!: HTMLInputElement;\n\n @query('slot[name=\"helper-text\"]')\n protected _slotHelperTextNode!: HTMLSlotElement;\n\n /**\n * The internal value.\n */\n protected _value = '';\n\n /**\n * Handles `oninput` event on the `input`.\n *\n * @param event The event.\n * @param event.target The event target.\n */\n protected _handleInput({ target }: Event) {\n this.value = (target as HTMLInputElement).value;\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 protected _handleHelperTextSlotChange() {\n this.requestUpdate();\n }\n\n /**\n * May be any of the standard HTML autocomplete options\n */\n @property()\n autocomplete = '';\n\n /**\n * Sets the input 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 input\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * Specify whether to display the character counter\n */\n @property({ type: Boolean, attribute: 'enable-counter', reflect: true })\n enableCounter = false;\n\n /**\n * The helper text.\n */\n @property({ attribute: 'helper-text' })\n helperText = '';\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 * Max character count allowed for input. This is needed in order for enableCounter to display\n */\n @property({ type: Number, attribute: 'max-count', reflect: true })\n maxCount;\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 * Specify whether you want the underlying label to be visually hidden\n */\n @property({ attribute: 'hide-label', type: Boolean, reflect: true })\n hideLabel = false;\n\n /**\n * Generic label that will be used as the textual representation of what this field is for\n */\n @property({ attribute: 'label' })\n label = '';\n\n /**\n * Name for the input in the `FormData`\n */\n @property()\n name = '';\n\n /**\n * Pattern to validate the input against for HTML validity checking\n */\n @property()\n pattern = '';\n\n /**\n * Value to display when the input has an empty `value`\n */\n @property({ reflect: true })\n placeholder = '';\n\n /**\n * Specify if the component should be read-only\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 * \"Hide password\" tooltip text on password visibility toggle\n *\n * @deprecated will be removed in the next major version, use `cds-custom-password-input` instead\n */\n @property()\n hidePasswordLabel = 'Hide password';\n\n /**\n * \"Show password\" tooltip text on password visibility toggle\n *\n * @deprecated will be removed in the next major version, use `cds-custom-password-input` instead\n */\n @property()\n showPasswordLabel = 'Show password';\n\n /**\n * Boolean property to render password visibility toggle\n *\n * @deprecated will be removed in the next major version, use `cds-custom-password-input` instead\n */\n @property({\n type: Boolean,\n attribute: 'show-password-visibility-toggle',\n reflect: true,\n })\n showPasswordVisibilityToggle = false;\n\n /**\n * The input box size.\n */\n @property({ reflect: true })\n size = INPUT_SIZE.MEDIUM;\n\n @property({ type: Boolean })\n isFluid = false;\n\n /**\n * true to use the inline version.\n */\n @property({ type: Boolean, reflect: true })\n inline = false;\n\n /**\n * Specify the alignment of the tooltip to the icon-only button.\n * Can be one of: start, center, or end.\n */\n @property()\n tooltipAlignment = INPUT_TOOLTIP_ALIGNMENT.CENTER;\n\n /**\n * Specify the direction of the tooltip for icon-only buttons.\n * Can be either top, right, bottom, or left.\n */\n @property()\n tooltipDirection = INPUT_TOOLTIP_DIRECTION.BOTTOM;\n\n /**\n * The type of the input. Can be one of the types listed in the INPUT_TYPE enum\n */\n @property({ reflect: true })\n type = INPUT_TYPE.TEXT;\n\n /**\n * The validity message. If present and non-empty, this input shows the UI of its invalid state.\n */\n @property({ attribute: 'validity-message' })\n validityMessage = '';\n\n /**\n * The value of the input.\n */\n @property({ reflect: true })\n get value() {\n // FIXME: Figure out how to deal with TS2611\n // once we have the input we can directly query for the value\n if (this._input) {\n return this._input.value;\n }\n // but before then _value will work fine\n return this._value;\n }\n\n set value(value) {\n const oldValue = this._value;\n this._value = value;\n // make sure that lit-element updates the right properties\n this.requestUpdate('value', oldValue);\n // we set the value directly on the input (when available)\n // so that programatic manipulation updates the UI correctly\n if (this._input) {\n this._input.value = value;\n }\n }\n\n /**\n * Handles password visibility toggle button click\n *\n * @deprecated will be removed in the next major version, use `cds-custom-password-input` instead\n */\n private togglePasswordVisibility() {\n this.type =\n this.type === INPUT_TYPE.PASSWORD ? INPUT_TYPE.TEXT : INPUT_TYPE.PASSWORD;\n }\n\n render() {\n const {\n disabled,\n enableCounter,\n helperText,\n hideLabel,\n inline,\n isFluid,\n invalid,\n invalidText,\n label,\n maxCount,\n readonly,\n required,\n size,\n type,\n warn,\n warnText,\n value,\n _handleInput: handleInput,\n _hasAILabel: hasAILabel,\n _handleSlotChange: handleSlotChange,\n } = this;\n\n const invalidIcon = iconLoader(WarningFilled16, {\n class: `${prefix}--text-input__invalid-icon`,\n });\n\n const warnIcon = iconLoader(WarningAltFilled16, {\n class: `${prefix}--text-input__invalid-icon ${prefix}--text-input__invalid-icon--warning`,\n });\n\n const normalizedProps: {\n disabled: boolean;\n invalid: boolean;\n warn: boolean;\n 'slot-name': string;\n 'slot-text': string;\n icon: ReturnType<typeof iconLoader>;\n } = {\n disabled: !readonly && disabled,\n invalid: !readonly && invalid,\n warn: !readonly && !invalid && warn,\n 'slot-name': '',\n 'slot-text': '',\n icon: null,\n };\n\n if (normalizedProps.invalid) {\n normalizedProps.icon = invalidIcon;\n normalizedProps['slot-name'] = 'invalid-text';\n normalizedProps['slot-text'] = invalidText;\n } else if (normalizedProps.warn) {\n normalizedProps.icon = warnIcon;\n normalizedProps['slot-name'] = 'warn-text';\n normalizedProps['slot-text'] = warnText;\n }\n\n const counterClasses = classMap({\n [`${prefix}--label`]: true,\n [`${prefix}--text-input__label-counter`]: true,\n [`${prefix}--label--disabled`]: disabled,\n });\n\n const inputWrapperClasses = classMap({\n [`${prefix}--form-item`]: true,\n [`${prefix}--text-input-wrapper`]: true,\n [`${prefix}--text-input-wrapper--inline`]: inline,\n [`${prefix}--text-input-wrapper--readonly`]: readonly,\n [`${prefix}--text-input-wrapper--inline--invalid`]:\n inline && normalizedProps.invalid,\n });\n\n const inputClasses = classMap({\n [`${prefix}--text-input`]: true,\n [`${prefix}--text-input--invalid`]: normalizedProps.invalid,\n [`${prefix}--text-input--warning`]: normalizedProps.warn,\n [`${prefix}--text-input--${size}`]: size,\n [`${prefix}--layout--size-${size}`]: size,\n [`${prefix}--password-input`]: type === INPUT_TYPE.PASSWORD, // TODO: deprecated, remove in v12\n [`${prefix}--text-input__field-wrapper--decorator`]: hasAILabel,\n });\n\n const fieldOuterWrapperClasses = classMap({\n [`${prefix}--text-input__field-outer-wrapper`]: true,\n [`${prefix}--text-input__field-outer-wrapper--inline`]: inline,\n });\n\n const fieldWrapperClasses = classMap({\n [`${prefix}--text-input__field-wrapper`]: true,\n [`${prefix}--text-input__field-wrapper--warning`]: normalizedProps.warn,\n });\n\n const labelClasses = classMap({\n [`${prefix}--label`]: true,\n [`${prefix}--visually-hidden`]: hideLabel,\n [`${prefix}--label--disabled`]: normalizedProps.disabled,\n });\n\n const helperTextClasses = classMap({\n [`${prefix}--form__helper-text`]: true,\n [`${prefix}--form__helper-text--disabled`]: normalizedProps.disabled,\n });\n\n // TODO: deprecated, remove in v12\n const passwordIsVisible = type !== INPUT_TYPE.PASSWORD;\n const passwordVisibilityIcon = passwordIsVisible\n ? iconLoader(ViewOff16, { class: `${prefix}--icon-visibility-off` })\n : iconLoader(View16, { class: `${prefix}--icon-visibility-on` });\n\n // TODO: deprecated, remove in v12\n const passwordVisibilityToggleClasses = classMap({\n [`${prefix}--text-input--password__visibility__toggle`]: true,\n [`${prefix}--btn`]: true,\n [`${prefix}--btn--icon-only`]: true,\n [`${prefix}--tooltip__trigger`]: true,\n [`${prefix}--tooltip--a11y`]: true,\n [`${prefix}--btn--disabled`]: normalizedProps.disabled,\n [`${prefix}--tooltip--${this.tooltipDirection}`]: this.tooltipDirection,\n [`${prefix}--tooltip--align-${this.tooltipAlignment}`]:\n this.tooltipAlignment,\n });\n\n // TODO: deprecated, remove in v12\n const passwordButtonLabel = html`\n <span class=\"${prefix}--assistive-text\">\n ${passwordIsVisible ? this.hidePasswordLabel : this.showPasswordLabel}\n </span>\n `;\n\n // TODO: deprecated, remove in v12\n const passwordVisibilityButton = () => html`\n <button\n type=\"button\"\n class=\"${passwordVisibilityToggleClasses}\"\n ?disabled=\"${normalizedProps.disabled}\"\n @click=\"${this.togglePasswordVisibility}\">\n ${!normalizedProps.disabled ? passwordButtonLabel : null}\n ${passwordVisibilityIcon}\n </button>\n `;\n\n const textCount = value?.length;\n\n const counter =\n enableCounter && maxCount\n ? html` <label class=\"${counterClasses}\">\n <slot name=\"label-text\">${textCount}/${maxCount}</slot>\n </label>`\n : null;\n\n const labelWrapper = html`<div class=\"${prefix}--text-input__label-wrapper\">\n <label class=\"${labelClasses}\">\n <slot name=\"label-text\">${label}</slot>\n </label>\n ${counter}\n </div>`;\n\n const hasHelperText =\n helperText || (this._slotHelperTextNode?.assignedNodes().length ?? 0) > 0;\n\n const helper = html`<div\n class=\"${helperTextClasses}\"\n id=\"helper-text\"\n ?hidden=\"${normalizedProps.invalid ||\n normalizedProps.warn ||\n !hasHelperText}\">\n <slot\n name=\"helper-text\"\n @slotchange=\"${this._handleHelperTextSlotChange}\">\n ${helperText}\n </slot>\n </div>`;\n\n const validationMessage =\n normalizedProps.invalid || normalizedProps.warn\n ? html`<div\n class=\"${prefix}--form-requirement\"\n ?hidden=\"${!normalizedProps.invalid && !normalizedProps.warn}\">\n <slot name=\"${normalizedProps['slot-name']}\">\n ${normalizedProps['slot-text']}\n </slot>\n </div>`\n : null;\n\n return html`\n <div class=\"${inputWrapperClasses}\">\n ${!inline\n ? labelWrapper\n : html`<div class=\"${prefix}--text-input__label-helper-wrapper\">\n ${labelWrapper} ${!isFluid ? validationMessage || helper : null}\n </div>`}\n <div class=\"${fieldOuterWrapperClasses}\">\n <div class=\"${fieldWrapperClasses}\" ?data-invalid=\"${invalid}\">\n ${normalizedProps.icon}\n <input\n autocomplete=\"${this.autocomplete}\"\n ?autofocus=\"${this.autofocus}\"\n class=\"${inputClasses}\"\n ?data-invalid=\"${invalid}\"\n ?disabled=\"${disabled}\"\n ?aria-describedby=\"${hasHelperText ? 'helper-text' : undefined}\"\n id=\"input\"\n name=\"${ifNonEmpty(this.name)}\"\n pattern=\"${ifNonEmpty(this.pattern)}\"\n placeholder=\"${ifNonEmpty(this.placeholder)}\"\n ?readonly=\"${readonly}\"\n ?required=\"${required}\"\n type=\"${ifNonEmpty(type)}\"\n .value=\"${this._value}\"\n maxlength=\"${ifNonEmpty(maxCount)}\"\n @input=\"${handleInput}\" />\n <slot name=\"ai-label\" @slotchange=\"${handleSlotChange}\"></slot>\n <slot name=\"slug\" @slotchange=\"${handleSlotChange}\"></slot>\n ${this.showPasswordVisibilityToggle &&\n (type === INPUT_TYPE.PASSWORD || type === INPUT_TYPE.TEXT)\n ? passwordVisibilityButton()\n : null}\n ${isFluid\n ? html`<hr class=\"${prefix}--text-input__divider\" />`\n : null}\n ${isFluid && !inline ? validationMessage : null}\n </div>\n\n ${/* Non-fluid: validation and helper outside field wrapper */ ''}\n ${!isFluid && !inline ? validationMessage || helper : null}\n </div>\n </div>\n `;\n }\n\n updated() {\n this.toggleAttribute('ai-label', this._hasAILabel);\n const label = this.shadowRoot?.querySelector(\"slot[name='ai-label']\");\n\n if (label) {\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 /**\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 static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n static styles = styles;\n}\n\nexport default CDSTextInput;\n"],"names":["customElement"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright IBM Corp. 2019, 2023
2
+ * Copyright IBM Corp. 2019, 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.
@@ -21,7 +21,7 @@ import { classMap } from 'lit/directives/class-map.js';
21
21
  import { carbonElement } from '../../globals/decorators/carbon-element.js';
22
22
 
23
23
  /**
24
- * Copyright IBM Corp. 2019, 2023
24
+ * Copyright IBM Corp. 2019, 2026
25
25
  *
26
26
  * This source code is licensed under the Apache-2.0 license found in the
27
27
  * LICENSE file in the root directory of this source tree.
@@ -145,7 +145,7 @@ let CDSExpandableTile = class CDSExpandableTile extends HostListenerMixin(FocusM
145
145
  aria-controls="below-the-fold-content"
146
146
  tabindex="0"
147
147
  @click="${withInteractive ? this._handleExpand : ''}"
148
- aria-expanded="${String(Boolean(expanded))}">
148
+ aria-expanded="${String(expanded)}">
149
149
  ${iconLoader(ChevronDown16, { id: 'icon' })}
150
150
  </button>
151
151
  <slot name="ai-label" @slotchange="${this._handleSlotChange}"></slot>
@@ -1 +1 @@
1
- {"version":3,"file":"expandable-tile.js","sources":["../../../src/components/tile/expandable-tile.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2019, 2023\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 } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport ChevronDown16 from '@carbon/icons/es/chevron--down/16.js';\nimport { prefix } from '../../globals/settings';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport HostListener from '../../globals/decorators/host-listener';\nimport FocusMixin from '../../globals/mixins/focus';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport { TILE_COLOR_SCHEME } from './defs';\nimport styles from './tile.scss?lit';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\n/**\n * Expandable tile.\n *\n * @element cds-custom-expandable-tile\n * @fires cds-custom-expandable-tile-beingtoggled\n * The custom event fired before the expanded state is changed upon a user gesture.\n * Cancellation of this event stops changing the user-initiated change in expanded state.\n * @fires cds-custom-expandable-tile-toggled - The custom event fired after a the expanded state is changed upon a user gesture.\n */\n@customElement(`${prefix}-expandable-tile`)\nclass CDSExpandableTile extends HostListenerMixin(FocusMixin(LitElement)) {\n /**\n * The computed height of the below-the-fold content.\n */\n private _belowTheContentHeight = 0;\n\n /**\n * `true` if there is an AI Label.\n */\n protected _hasAILabel = false;\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 CDSExpandableTile)?.aiLabelItem\n ) ||\n // remove reference of slug in v12\n (elem as HTMLElement).matches(\n (this.constructor as typeof CDSExpandableTile)?.slugItem\n )\n : false\n );\n\n if (hasContent.length > 0) {\n this._hasAILabel = Boolean(hasContent);\n (hasContent[0] as HTMLElement).setAttribute('size', 'xs');\n }\n this.requestUpdate();\n }\n\n /**\n * Handles `slotchange` event on the below-the-fold content.\n *\n * @param event The event.\n */\n private _handleSlotChangeBelowTheFoldContent(event: Event) {\n this._belowTheContentHeight = (event.target as HTMLSlotElement)\n .assignedNodes()\n .reduce(\n (acc, item) => acc + ((item as HTMLElement).offsetHeight ?? 0),\n 0\n );\n\n if (!this._belowTheContentHeight) {\n const element = getComputedStyle(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20452\n this.querySelector('cds-custom-tile-below-the-fold-content') as any\n );\n this._belowTheContentHeight = parseInt(element.height, 10);\n }\n this.requestUpdate();\n }\n\n private _handleExpand() {\n const expanded = !this.expanded;\n this.focus();\n const init = {\n bubbles: true,\n composed: true,\n detail: {\n expanded,\n },\n };\n const constructor = this.constructor as typeof CDSExpandableTile;\n const beforeChangeEvent = new CustomEvent(constructor.eventBeforeToggle, {\n ...init,\n cancelable: true,\n });\n if (this.dispatchEvent(beforeChangeEvent)) {\n this.expanded = expanded;\n const afterChangeEvent = new CustomEvent(constructor.eventToggle, init);\n this.dispatchEvent(afterChangeEvent);\n }\n }\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 = () => {\n if (!this.withInteractive) {\n this._handleExpand();\n }\n };\n\n /**\n * The color scheme.\n */\n @property({ attribute: 'color-scheme', reflect: true })\n colorScheme = TILE_COLOR_SCHEME.REGULAR;\n\n /**\n * `true` to expand this expandable tile.\n */\n @property({ type: Boolean, reflect: true })\n expanded = false;\n\n /**\n * Specify if the `ExpandableTile` component should be rendered with rounded corners.\n * Only valid when `ai-label` prop is present\n */\n @property({ type: Boolean, attribute: 'has-rounded-corners' })\n hasRoundedCorners = false;\n\n /**\n * `true` to expand this expandable tile.\n */\n @property({ type: Boolean, reflect: true, attribute: 'with-interactive' })\n withInteractive = false;\n\n updated() {\n if (this._hasAILabel) {\n this.setAttribute('ai-label', '');\n } else {\n this.removeAttribute('ai-label');\n }\n }\n\n render() {\n const {\n expanded,\n withInteractive,\n _belowTheContentHeight: belowTheContentHeight,\n _handleSlotChangeBelowTheFoldContent: handleSlotChangeBelowTheFoldContent,\n } = this;\n\n const classes = classMap({\n [`${prefix}--tile__chevron`]: true,\n [`${prefix}--tile__chevron--interactive`]: withInteractive,\n });\n return html`\n <button\n class=\"${classes}\"\n aria-labelledby=\"above-the-fold-content\"\n aria-controls=\"below-the-fold-content\"\n tabindex=\"0\"\n @click=\"${withInteractive ? this._handleExpand : ''}\"\n aria-expanded=\"${String(Boolean(expanded))}\">\n ${iconLoader(ChevronDown16, { id: 'icon' })}\n </button>\n <slot name=\"ai-label\" @slotchange=\"${this._handleSlotChange}\"></slot>\n <slot name=\"slug\" @slotchange=\"${this._handleSlotChange}\"></slot>\n <slot name=\"decorator\"></slot>\n <div id=\"content\" class=\"${prefix}--tile-content\">\n <div><slot name=\"above-the-fold-content\"></slot></div>\n <div\n class=\"${prefix}-ce--expandable-tile--below-the-fold-content\"\n style=\"${ifDefined(\n !expanded ? undefined : `max-height: ${belowTheContentHeight}px`\n )}\">\n <slot @slotchange=\"${handleSlotChangeBelowTheFoldContent}\"></slot>\n </div>\n </div>\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 before the expanded state is changed upon a user gesture.\n * Cancellation of this event stops changing the user-initiated change in expanded state.\n */\n static get eventBeforeToggle() {\n return `${prefix}-expandable-tile-beingtoggled`;\n }\n\n /**\n * The name of the custom event fired after a the expanded state is changed upon a user gesture.\n */\n static get eventToggle() {\n return `${prefix}-expandable-tile-toggled`;\n }\n\n static styles = styles;\n}\n\nexport default CDSExpandableTile;\n"],"names":["TILE_COLOR_SCHEME","customElement"],"mappings":"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"}
1
+ {"version":3,"file":"expandable-tile.js","sources":["../../../src/components/tile/expandable-tile.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 { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport ChevronDown16 from '@carbon/icons/es/chevron--down/16.js';\nimport { prefix } from '../../globals/settings';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport HostListener from '../../globals/decorators/host-listener';\nimport FocusMixin from '../../globals/mixins/focus';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport { TILE_COLOR_SCHEME } from './defs';\nimport styles from './tile.scss?lit';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\n\n/**\n * Expandable tile.\n *\n * @element cds-custom-expandable-tile\n * @fires cds-custom-expandable-tile-beingtoggled\n * The custom event fired before the expanded state is changed upon a user gesture.\n * Cancellation of this event stops changing the user-initiated change in expanded state.\n * @fires cds-custom-expandable-tile-toggled - The custom event fired after a the expanded state is changed upon a user gesture.\n */\n@customElement(`${prefix}-expandable-tile`)\nclass CDSExpandableTile extends HostListenerMixin(FocusMixin(LitElement)) {\n /**\n * The computed height of the below-the-fold content.\n */\n private _belowTheContentHeight = 0;\n\n /**\n * `true` if there is an AI Label.\n */\n protected _hasAILabel = false;\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 CDSExpandableTile)?.aiLabelItem\n ) ||\n // remove reference of slug in v12\n (elem as HTMLElement).matches(\n (this.constructor as typeof CDSExpandableTile)?.slugItem\n )\n : false\n );\n\n if (hasContent.length > 0) {\n this._hasAILabel = Boolean(hasContent);\n (hasContent[0] as HTMLElement).setAttribute('size', 'xs');\n }\n this.requestUpdate();\n }\n\n /**\n * Handles `slotchange` event on the below-the-fold content.\n *\n * @param event The event.\n */\n private _handleSlotChangeBelowTheFoldContent(event: Event) {\n this._belowTheContentHeight = (event.target as HTMLSlotElement)\n .assignedNodes()\n .reduce(\n (acc, item) => acc + ((item as HTMLElement).offsetHeight ?? 0),\n 0\n );\n\n if (!this._belowTheContentHeight) {\n const element = getComputedStyle(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20452\n this.querySelector('cds-custom-tile-below-the-fold-content') as any\n );\n this._belowTheContentHeight = parseInt(element.height, 10);\n }\n this.requestUpdate();\n }\n\n private _handleExpand() {\n const expanded = !this.expanded;\n this.focus();\n const init = {\n bubbles: true,\n composed: true,\n detail: {\n expanded,\n },\n };\n const constructor = this.constructor as typeof CDSExpandableTile;\n const beforeChangeEvent = new CustomEvent(constructor.eventBeforeToggle, {\n ...init,\n cancelable: true,\n });\n if (this.dispatchEvent(beforeChangeEvent)) {\n this.expanded = expanded;\n const afterChangeEvent = new CustomEvent(constructor.eventToggle, init);\n this.dispatchEvent(afterChangeEvent);\n }\n }\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 = () => {\n if (!this.withInteractive) {\n this._handleExpand();\n }\n };\n\n /**\n * The color scheme.\n */\n @property({ attribute: 'color-scheme', reflect: true })\n colorScheme = TILE_COLOR_SCHEME.REGULAR;\n\n /**\n * `true` to expand this expandable tile.\n */\n @property({ type: Boolean, reflect: true })\n expanded = false;\n\n /**\n * Specify if the `ExpandableTile` component should be rendered with rounded corners.\n * Only valid when `ai-label` prop is present\n */\n @property({ type: Boolean, attribute: 'has-rounded-corners' })\n hasRoundedCorners = false;\n\n /**\n * `true` to expand this expandable tile.\n */\n @property({ type: Boolean, reflect: true, attribute: 'with-interactive' })\n withInteractive = false;\n\n updated() {\n if (this._hasAILabel) {\n this.setAttribute('ai-label', '');\n } else {\n this.removeAttribute('ai-label');\n }\n }\n\n render() {\n const {\n expanded,\n withInteractive,\n _belowTheContentHeight: belowTheContentHeight,\n _handleSlotChangeBelowTheFoldContent: handleSlotChangeBelowTheFoldContent,\n } = this;\n\n const classes = classMap({\n [`${prefix}--tile__chevron`]: true,\n [`${prefix}--tile__chevron--interactive`]: withInteractive,\n });\n return html`\n <button\n class=\"${classes}\"\n aria-labelledby=\"above-the-fold-content\"\n aria-controls=\"below-the-fold-content\"\n tabindex=\"0\"\n @click=\"${withInteractive ? this._handleExpand : ''}\"\n aria-expanded=\"${String(expanded)}\">\n ${iconLoader(ChevronDown16, { id: 'icon' })}\n </button>\n <slot name=\"ai-label\" @slotchange=\"${this._handleSlotChange}\"></slot>\n <slot name=\"slug\" @slotchange=\"${this._handleSlotChange}\"></slot>\n <slot name=\"decorator\"></slot>\n <div id=\"content\" class=\"${prefix}--tile-content\">\n <div><slot name=\"above-the-fold-content\"></slot></div>\n <div\n class=\"${prefix}-ce--expandable-tile--below-the-fold-content\"\n style=\"${ifDefined(\n !expanded ? undefined : `max-height: ${belowTheContentHeight}px`\n )}\">\n <slot @slotchange=\"${handleSlotChangeBelowTheFoldContent}\"></slot>\n </div>\n </div>\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 before the expanded state is changed upon a user gesture.\n * Cancellation of this event stops changing the user-initiated change in expanded state.\n */\n static get eventBeforeToggle() {\n return `${prefix}-expandable-tile-beingtoggled`;\n }\n\n /**\n * The name of the custom event fired after a the expanded state is changed upon a user gesture.\n */\n static get eventToggle() {\n return `${prefix}-expandable-tile-toggled`;\n }\n\n static styles = styles;\n}\n\nexport default CDSExpandableTile;\n"],"names":["TILE_COLOR_SCHEME","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.
@@ -20,7 +20,7 @@ import { TIME_PICKER_SIZE } from './defs.js';
20
20
  import FormMixin from '../../globals/mixins/form.js';
21
21
 
22
22
  /**
23
- * Copyright IBM Corp. 2020, 2025
23
+ * Copyright IBM Corp. 2020, 2026
24
24
  *
25
25
  * This source code is licensed under the Apache-2.0 license found in the
26
26
  * LICENSE file in the root directory of this source tree.
@@ -163,7 +163,7 @@ let CDSTimePickerSelect = class CDSTimePickerSelect extends FormMixin(LitElement
163
163
  <select
164
164
  id="${ifDefined(id)}"
165
165
  class="${inputClasses}"
166
- aria-readonly="${String(Boolean(readOnly))}"
166
+ aria-readonly="${String(readOnly)}"
167
167
  ?disabled="${disabled}"
168
168
  aria-label="${ifDefined(ariaLabel)}"
169
169
  .value="${ifDefined(value)}"
@@ -1 +1 @@
1
- {"version":3,"file":"time-picker-select.js","sources":["../../../src/components/time-picker/time-picker-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 { html, LitElement } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { prefix } from '../../globals/settings';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport ChevronDown16 from '@carbon/icons/es/chevron--down/16.js';\nimport { filter } from '../../globals/internal/collection-helpers';\nimport styles from './time-picker.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { TIME_PICKER_SIZE } from './defs';\nimport FormMixin from '../../globals/mixins/form';\n\n/**\n * Time picker select dropdown.\n *\n * @element cds-custom-time-picker-select\n */\n@customElement(`${prefix}-time-picker-select`)\nclass CDSTimePickerSelect extends FormMixin(LitElement) {\n /**\n * The mutation observer for DOM mutation.\n */\n private _observerMutation: MutationObserver | null = null;\n\n /**\n * The select element.\n */\n @query('select')\n private _selectNode!: HTMLSelectElement;\n\n /**\n * The ARIA label for the UI control.\n */\n @property({ attribute: 'aria-label' })\n ariaLabel = 'open list of options';\n\n /**\n * Optionally provide the default value of the select\n */\n @property({ attribute: 'default-value' })\n defaultValue = '';\n\n /**\n * Controls the readOnly state of the select\n */\n @property({ type: Boolean, reflect: true })\n readOnly = false;\n\n /**\n * Specify whether the control is disabled\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * Specify a custom id for the select box\n */\n @property({ reflect: true })\n id = '';\n\n /**\n * Name for the select in the `FormData`\n */\n @property()\n name = '';\n\n /**\n * The value of the select.\n */\n @property({ reflect: true })\n value = '';\n\n /**\n * Size of the time picker select\n */\n @property({ reflect: true })\n size = TIME_PICKER_SIZE.MEDIUM;\n\n /**\n * Handles `oninput` event on the `<select>`.\n *\n * @param event The event.\n * @param event.target The event target.\n */\n private _handleInput(event: Event) {\n const { value } = event.target as HTMLSelectElement;\n this.value = value;\n const { eventSelect } = this.constructor as typeof CDSTimePickerSelect;\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 select items\n */\n private _handleMutation = () => {\n this.requestUpdate();\n };\n\n /**\n * @returns The template containing child `<option>` elements from select items.\n */\n private _renderItems() {\n const selectorItem = `${prefix}-select-item`;\n\n return filter(\n this.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\n return html`\n <option\n ?disabled=\"${disabled}\"\n label=\"${ifDefined(label)}\"\n ?selected=\"${selected}\"\n value=\"${ifDefined(value)}\">\n ${textContent}\n </option>\n `;\n });\n }\n\n _handleFormdata(event: Event) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20452\n const { formData } = event as any; // TODO: Wait for `FormDataEvent` being available in `lib.dom.d.ts`\n const { disabled, name, value } = this;\n if (!disabled) {\n formData.append(name, value);\n }\n }\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 (\n changedProperties.has('defaultValue') &&\n this.defaultValue &&\n !this.value\n ) {\n this.value = this.defaultValue;\n }\n\n if (changedProperties.has('value')) {\n if (this._selectNode) {\n this._selectNode.value = this.value;\n }\n }\n }\n\n render() {\n const {\n ariaLabel,\n disabled,\n size,\n id,\n value,\n readOnly,\n _handleInput: handleInput,\n } = this;\n\n const inputClasses = classMap({\n [`${prefix}--select-input`]: true,\n [`${prefix}--select-input--${size}`]: size,\n });\n\n return html`\n <select\n id=\"${ifDefined(id)}\"\n class=\"${inputClasses}\"\n aria-readonly=\"${String(Boolean(readOnly))}\"\n ?disabled=\"${disabled}\"\n aria-label=\"${ifDefined(ariaLabel)}\"\n .value=\"${ifDefined(value)}\"\n @input=\"${handleInput}\">\n ${this._renderItems()}\n </select>\n ${iconLoader(ChevronDown16, {\n class: `${prefix}--select__arrow`,\n 'aria-hidden': 'true',\n })}\n `;\n }\n static get eventSelect() {\n return `${prefix}-select-selected`;\n }\n\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n static styles = styles;\n}\n\nexport default CDSTimePickerSelect;\n"],"names":["customElement"],"mappings":"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"}
1
+ {"version":3,"file":"time-picker-select.js","sources":["../../../src/components/time-picker/time-picker-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 { html, LitElement } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { prefix } from '../../globals/settings';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport ChevronDown16 from '@carbon/icons/es/chevron--down/16.js';\nimport { filter } from '../../globals/internal/collection-helpers';\nimport styles from './time-picker.scss?lit';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { TIME_PICKER_SIZE } from './defs';\nimport FormMixin from '../../globals/mixins/form';\n\n/**\n * Time picker select dropdown.\n *\n * @element cds-custom-time-picker-select\n */\n@customElement(`${prefix}-time-picker-select`)\nclass CDSTimePickerSelect extends FormMixin(LitElement) {\n /**\n * The mutation observer for DOM mutation.\n */\n private _observerMutation: MutationObserver | null = null;\n\n /**\n * The select element.\n */\n @query('select')\n private _selectNode!: HTMLSelectElement;\n\n /**\n * The ARIA label for the UI control.\n */\n @property({ attribute: 'aria-label' })\n ariaLabel = 'open list of options';\n\n /**\n * Optionally provide the default value of the select\n */\n @property({ attribute: 'default-value' })\n defaultValue = '';\n\n /**\n * Controls the readOnly state of the select\n */\n @property({ type: Boolean, reflect: true })\n readOnly = false;\n\n /**\n * Specify whether the control is disabled\n */\n @property({ type: Boolean, reflect: true })\n disabled = false;\n\n /**\n * Specify a custom id for the select box\n */\n @property({ reflect: true })\n id = '';\n\n /**\n * Name for the select in the `FormData`\n */\n @property()\n name = '';\n\n /**\n * The value of the select.\n */\n @property({ reflect: true })\n value = '';\n\n /**\n * Size of the time picker select\n */\n @property({ reflect: true })\n size = TIME_PICKER_SIZE.MEDIUM;\n\n /**\n * Handles `oninput` event on the `<select>`.\n *\n * @param event The event.\n * @param event.target The event target.\n */\n private _handleInput(event: Event) {\n const { value } = event.target as HTMLSelectElement;\n this.value = value;\n const { eventSelect } = this.constructor as typeof CDSTimePickerSelect;\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 select items\n */\n private _handleMutation = () => {\n this.requestUpdate();\n };\n\n /**\n * @returns The template containing child `<option>` elements from select items.\n */\n private _renderItems() {\n const selectorItem = `${prefix}-select-item`;\n\n return filter(\n this.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\n return html`\n <option\n ?disabled=\"${disabled}\"\n label=\"${ifDefined(label)}\"\n ?selected=\"${selected}\"\n value=\"${ifDefined(value)}\">\n ${textContent}\n </option>\n `;\n });\n }\n\n _handleFormdata(event: Event) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any -- https://github.com/carbon-design-system/carbon/issues/20452\n const { formData } = event as any; // TODO: Wait for `FormDataEvent` being available in `lib.dom.d.ts`\n const { disabled, name, value } = this;\n if (!disabled) {\n formData.append(name, value);\n }\n }\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 (\n changedProperties.has('defaultValue') &&\n this.defaultValue &&\n !this.value\n ) {\n this.value = this.defaultValue;\n }\n\n if (changedProperties.has('value')) {\n if (this._selectNode) {\n this._selectNode.value = this.value;\n }\n }\n }\n\n render() {\n const {\n ariaLabel,\n disabled,\n size,\n id,\n value,\n readOnly,\n _handleInput: handleInput,\n } = this;\n\n const inputClasses = classMap({\n [`${prefix}--select-input`]: true,\n [`${prefix}--select-input--${size}`]: size,\n });\n\n return html`\n <select\n id=\"${ifDefined(id)}\"\n class=\"${inputClasses}\"\n aria-readonly=\"${String(readOnly)}\"\n ?disabled=\"${disabled}\"\n aria-label=\"${ifDefined(ariaLabel)}\"\n .value=\"${ifDefined(value)}\"\n @input=\"${handleInput}\">\n ${this._renderItems()}\n </select>\n ${iconLoader(ChevronDown16, {\n class: `${prefix}--select__arrow`,\n 'aria-hidden': 'true',\n })}\n `;\n }\n static get eventSelect() {\n return `${prefix}-select-selected`;\n }\n\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n static styles = styles;\n}\n\nexport default CDSTimePickerSelect;\n"],"names":["customElement"],"mappings":"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"}
@@ -773,7 +773,6 @@ declare class CDSToggletip extends CDSToggletip_base {
773
773
  * @param event The event.
774
774
  */
775
775
  protected _handleFocusOut(event: FocusEvent): void;
776
- private _deepShadowContains;
777
776
  protected _renderToggleTipLabel: () => import("lit-html").TemplateResult<1>;
778
777
  protected _renderTooltipButton: () => import("lit-html").TemplateResult<1>;
779
778
  protected _renderTooltipContent: () => import("lit-html").TemplateResult<1>;
@@ -20,6 +20,7 @@ import FloatingController from '../../globals/controllers/floating-controller.js
20
20
  import toggletipStyles from './toggletip.scss.js';
21
21
  import popoverStyles from '../popover/popover.scss.js';
22
22
  import { iconLoader } from '../../globals/internal/icon-loader.js';
23
+ import { deepShadowContains } from '../../globals/internal/deep-shadow-contains.js';
23
24
 
24
25
  /**
25
26
  * Copyright IBM Corp. 2019, 2026
@@ -160,23 +161,11 @@ let CDSToggletip = CDSToggletip_1 = class CDSToggletip extends HostListenerMixin
160
161
  if (this.contains(event.relatedTarget)) {
161
162
  return;
162
163
  }
163
- if (this._deepShadowContains(this, event.relatedTarget)) {
164
+ if (deepShadowContains(this, event.relatedTarget)) {
164
165
  return;
165
166
  }
166
167
  this.open = false;
167
168
  }
168
- _deepShadowContains(root, el) {
169
- if (!(el instanceof Node)) {
170
- return false;
171
- }
172
- if (el === root) {
173
- return true;
174
- }
175
- return this._deepShadowContains(root, el.assignedSlot ||
176
- el.parentNode ||
177
- el.getRootNode().host ||
178
- null);
179
- }
180
169
  updated() {
181
170
  var _a, _b, _c, _d;
182
171
  if (this.autoalign) {
@@ -1 +1 @@
1
- {"version":3,"file":"toggletip.js","sources":["../../../src/components/toggle-tip/toggletip.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 { adoptStyles, html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { prefix } from '../../globals/settings';\nimport Information16 from '@carbon/icons/es/information/16.js';\nimport HostListener from '../../globals/decorators/host-listener';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport FocusMixin from '../../globals/mixins/focus';\nimport { POPOVER_ALIGNMENT } from '../popover/defs';\nimport FloatingUIController from '../../globals/controllers/floating-controller';\nimport styles from './toggletip.scss?lit';\nimport popoverStyles from '../popover/popover.scss?lit';\nimport { iconLoader } from '../../globals/internal/icon-loader';\n\n/**\n * Definition tooltip.\n *\n * @element cds-custom-toggletip\n */\n@customElement(`${prefix}-toggletip`)\nclass CDSToggletip extends HostListenerMixin(FocusMixin(LitElement)) {\n /**\n * Create popover controller instance\n */\n private popoverController = new FloatingUIController(this);\n\n /**\n * How the tooltip is aligned to the trigger button.\n */\n @property({ reflect: true })\n alignment = POPOVER_ALIGNMENT.TOP;\n\n /**\n * **Experimental:** Provide an offset value for alignment axis. Only takes effect when `autoalign` is enabled.\n */\n @property({ type: Number, attribute: 'alignment-axis-offset' })\n alignmentAxisOffset = 0;\n\n /**\n * Specify whether a auto align functionality should be applied\n */\n @property({ type: Boolean, reflect: true })\n autoalign = false;\n\n /**\n * The label for the toggle button\n */\n @property({ attribute: 'button-label' })\n buttonLabel = 'Show information';\n\n /**\n * Set whether toggletip is open\n */\n @property({ type: Boolean, reflect: true })\n open = false;\n\n /**\n * Set whether toggletip is open by default.\n */\n @property({ type: Boolean, attribute: 'default-open' })\n defaultOpen = false;\n\n connectedCallback() {\n super.connectedCallback();\n if (this.defaultOpen && !this.hasAttribute('open')) {\n this.open = true;\n }\n\n adoptStyles(this.renderRoot as ShadowRoot, [popoverStyles, styles]);\n }\n\n /**\n * Handles `slotchange` event.\n */\n private _handleActionsSlotChange({ target }: Event) {\n const hasContent = (target as HTMLSlotElement).assignedNodes();\n if (hasContent) {\n this.setAttribute('has-actions', '');\n } else {\n this.removeAttribute('has-actions');\n }\n }\n\n protected _handleClick() {\n this.open = !this.open;\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 protected _handleKeydown = async (event) => {\n if (event.key === 'Escape') {\n this.open = false;\n }\n };\n\n /**\n * Handles `blur` event handler on the document this element is in.\n *\n * @param event The event.\n */\n @HostListener('focusout')\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 protected _handleFocusOut(event: FocusEvent) {\n if (this.contains(event.relatedTarget as Node)) {\n return;\n }\n\n if (this._deepShadowContains(this, event.relatedTarget)) {\n return;\n }\n this.open = false;\n }\n\n private _deepShadowContains(root: Node, el: EventTarget | null): boolean {\n if (!(el instanceof Node)) {\n return false;\n }\n if (el === root) {\n return true;\n }\n\n return this._deepShadowContains(\n root,\n (el as HTMLElement).assignedSlot ||\n el.parentNode ||\n (el.getRootNode() as ShadowRoot).host ||\n null\n );\n }\n\n protected _renderToggleTipLabel = () => {\n return html`\n <span class=\"${prefix}--toggletip-label\">\n <slot></slot>\n </span>\n `;\n };\n\n protected _renderTooltipButton = () => {\n return html`\n <button\n aria-controls=\"${this.id}\"\n aria-label=\"${this.buttonLabel}\"\n class=\"${prefix}--toggletip-button\"\n @click=${this._handleClick}>\n <slot name=\"trigger\"\n >${iconLoader(Information16, { id: 'trigger' })}\n </slot>\n </button>\n `;\n };\n\n protected _renderTooltipContent = () => {\n return this.autoalign\n ? html`\n <span class=\"${prefix}--popover-content\">\n <div class=\"${prefix}--toggletip-content\">\n <slot name=\"body-text\"></slot>\n <div class=\"${prefix}--toggletip-actions\">\n <slot\n name=\"actions\"\n @slotchange=\"${this._handleActionsSlotChange}\"></slot>\n </div>\n </div>\n <span class=\"${prefix}--popover-caret\"></span>\n </span>\n `\n : html`\n <span class=\"${prefix}--popover\">\n <span class=\"${prefix}--popover-content\">\n <div class=\"${prefix}--toggletip-content\">\n <slot name=\"body-text\"></slot>\n <div class=\"${prefix}--toggletip-actions\">\n <slot\n name=\"actions\"\n @slotchange=\"${this._handleActionsSlotChange}\"></slot>\n </div>\n </div>\n </span>\n <span class=\"${prefix}--popover-caret\"></span>\n </span>\n `;\n };\n\n protected _renderInnerContent = () => {\n return html`\n ${this._renderTooltipButton()} ${this._renderTooltipContent()}\n `;\n };\n\n updated() {\n if (this.autoalign) {\n // auto align functionality with @floating-ui/dom library\n const button = this.shadowRoot?.querySelector(\n CDSToggletip.selectorToggletipButton\n );\n\n const tooltip = this.shadowRoot?.querySelector(\n CDSToggletip.selectorToggletipContent\n );\n const arrowElement = this.shadowRoot?.querySelector(\n CDSToggletip.selectorToggletipCaret\n );\n\n if (button && tooltip) {\n // Ensure toggletip is visible when rendered in a large scrollable container (storybook parity)\n button.scrollIntoView({ block: 'center', inline: 'center' });\n\n this.popoverController?.setPlacement({\n trigger: button as HTMLElement,\n target: tooltip as HTMLElement,\n arrowElement: arrowElement as HTMLElement,\n caret: true,\n flipArguments: { fallbackAxisSideDirection: 'start' },\n alignment: this.alignment,\n open: this.open,\n alignmentAxisOffset: this.alignmentAxisOffset,\n });\n }\n }\n }\n\n render() {\n const { alignment, open } = this;\n const classes = classMap({\n [`${prefix}--popover-container`]: true,\n [`${prefix}--popover--caret`]: true,\n [`${prefix}--popover--high-contrast`]: true,\n [`${prefix}--popover--open`]: open,\n [`${prefix}--popover--${alignment}`]: alignment,\n [`${prefix}--toggletip`]: true,\n [`${prefix}--toggletip--open`]: open,\n });\n return html`\n ${this._renderToggleTipLabel()}\n <span class=\"${classes}\"> ${this._renderInnerContent()} </span>\n `;\n }\n\n /**\n * A selector that will return the toggletip content.\n */\n static get selectorToggletipContent() {\n return `.${prefix}--popover-content`;\n }\n\n /**\n * A selector that will return the toggletip caret.\n */\n static get selectorToggletipCaret() {\n return `.${prefix}--popover-caret`;\n }\n\n /**\n * A selector that will return the trigger element.\n */\n static get selectorToggletipButton() {\n return `.${prefix}--toggletip-button`;\n }\n\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n}\n\nexport default CDSToggletip;\n"],"names":["FloatingUIController","styles","customElement"],"mappings":"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"}
1
+ {"version":3,"file":"toggletip.js","sources":["../../../src/components/toggle-tip/toggletip.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 { adoptStyles, html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { prefix } from '../../globals/settings';\nimport Information16 from '@carbon/icons/es/information/16.js';\nimport HostListener from '../../globals/decorators/host-listener';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport FocusMixin from '../../globals/mixins/focus';\nimport { POPOVER_ALIGNMENT } from '../popover/defs';\nimport FloatingUIController from '../../globals/controllers/floating-controller';\nimport styles from './toggletip.scss?lit';\nimport popoverStyles from '../popover/popover.scss?lit';\nimport { iconLoader } from '../../globals/internal/icon-loader';\nimport { deepShadowContains } from '../../globals/internal/deep-shadow-contains';\n\n/**\n * Definition tooltip.\n *\n * @element cds-custom-toggletip\n */\n@customElement(`${prefix}-toggletip`)\nclass CDSToggletip extends HostListenerMixin(FocusMixin(LitElement)) {\n /**\n * Create popover controller instance\n */\n private popoverController = new FloatingUIController(this);\n\n /**\n * How the tooltip is aligned to the trigger button.\n */\n @property({ reflect: true })\n alignment = POPOVER_ALIGNMENT.TOP;\n\n /**\n * **Experimental:** Provide an offset value for alignment axis. Only takes effect when `autoalign` is enabled.\n */\n @property({ type: Number, attribute: 'alignment-axis-offset' })\n alignmentAxisOffset = 0;\n\n /**\n * Specify whether a auto align functionality should be applied\n */\n @property({ type: Boolean, reflect: true })\n autoalign = false;\n\n /**\n * The label for the toggle button\n */\n @property({ attribute: 'button-label' })\n buttonLabel = 'Show information';\n\n /**\n * Set whether toggletip is open\n */\n @property({ type: Boolean, reflect: true })\n open = false;\n\n /**\n * Set whether toggletip is open by default.\n */\n @property({ type: Boolean, attribute: 'default-open' })\n defaultOpen = false;\n\n connectedCallback() {\n super.connectedCallback();\n if (this.defaultOpen && !this.hasAttribute('open')) {\n this.open = true;\n }\n\n adoptStyles(this.renderRoot as ShadowRoot, [popoverStyles, styles]);\n }\n\n /**\n * Handles `slotchange` event.\n */\n private _handleActionsSlotChange({ target }: Event) {\n const hasContent = (target as HTMLSlotElement).assignedNodes();\n if (hasContent) {\n this.setAttribute('has-actions', '');\n } else {\n this.removeAttribute('has-actions');\n }\n }\n\n protected _handleClick() {\n this.open = !this.open;\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 protected _handleKeydown = async (event) => {\n if (event.key === 'Escape') {\n this.open = false;\n }\n };\n\n /**\n * Handles `blur` event handler on the document this element is in.\n *\n * @param event The event.\n */\n @HostListener('focusout')\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 protected _handleFocusOut(event: FocusEvent) {\n if (this.contains(event.relatedTarget as Node)) {\n return;\n }\n\n if (deepShadowContains(this, event.relatedTarget)) {\n return;\n }\n this.open = false;\n }\n\n protected _renderToggleTipLabel = () => {\n return html`\n <span class=\"${prefix}--toggletip-label\">\n <slot></slot>\n </span>\n `;\n };\n\n protected _renderTooltipButton = () => {\n return html`\n <button\n aria-controls=\"${this.id}\"\n aria-label=\"${this.buttonLabel}\"\n class=\"${prefix}--toggletip-button\"\n @click=${this._handleClick}>\n <slot name=\"trigger\"\n >${iconLoader(Information16, { id: 'trigger' })}\n </slot>\n </button>\n `;\n };\n\n protected _renderTooltipContent = () => {\n return this.autoalign\n ? html`\n <span class=\"${prefix}--popover-content\">\n <div class=\"${prefix}--toggletip-content\">\n <slot name=\"body-text\"></slot>\n <div class=\"${prefix}--toggletip-actions\">\n <slot\n name=\"actions\"\n @slotchange=\"${this._handleActionsSlotChange}\"></slot>\n </div>\n </div>\n <span class=\"${prefix}--popover-caret\"></span>\n </span>\n `\n : html`\n <span class=\"${prefix}--popover\">\n <span class=\"${prefix}--popover-content\">\n <div class=\"${prefix}--toggletip-content\">\n <slot name=\"body-text\"></slot>\n <div class=\"${prefix}--toggletip-actions\">\n <slot\n name=\"actions\"\n @slotchange=\"${this._handleActionsSlotChange}\"></slot>\n </div>\n </div>\n </span>\n <span class=\"${prefix}--popover-caret\"></span>\n </span>\n `;\n };\n\n protected _renderInnerContent = () => {\n return html`\n ${this._renderTooltipButton()} ${this._renderTooltipContent()}\n `;\n };\n\n updated() {\n if (this.autoalign) {\n // auto align functionality with @floating-ui/dom library\n const button = this.shadowRoot?.querySelector(\n CDSToggletip.selectorToggletipButton\n );\n\n const tooltip = this.shadowRoot?.querySelector(\n CDSToggletip.selectorToggletipContent\n );\n const arrowElement = this.shadowRoot?.querySelector(\n CDSToggletip.selectorToggletipCaret\n );\n\n if (button && tooltip) {\n // Ensure toggletip is visible when rendered in a large scrollable container (storybook parity)\n button.scrollIntoView({ block: 'center', inline: 'center' });\n\n this.popoverController?.setPlacement({\n trigger: button as HTMLElement,\n target: tooltip as HTMLElement,\n arrowElement: arrowElement as HTMLElement,\n caret: true,\n flipArguments: { fallbackAxisSideDirection: 'start' },\n alignment: this.alignment,\n open: this.open,\n alignmentAxisOffset: this.alignmentAxisOffset,\n });\n }\n }\n }\n\n render() {\n const { alignment, open } = this;\n const classes = classMap({\n [`${prefix}--popover-container`]: true,\n [`${prefix}--popover--caret`]: true,\n [`${prefix}--popover--high-contrast`]: true,\n [`${prefix}--popover--open`]: open,\n [`${prefix}--popover--${alignment}`]: alignment,\n [`${prefix}--toggletip`]: true,\n [`${prefix}--toggletip--open`]: open,\n });\n return html`\n ${this._renderToggleTipLabel()}\n <span class=\"${classes}\"> ${this._renderInnerContent()} </span>\n `;\n }\n\n /**\n * A selector that will return the toggletip content.\n */\n static get selectorToggletipContent() {\n return `.${prefix}--popover-content`;\n }\n\n /**\n * A selector that will return the toggletip caret.\n */\n static get selectorToggletipCaret() {\n return `.${prefix}--popover-caret`;\n }\n\n /**\n * A selector that will return the trigger element.\n */\n static get selectorToggletipButton() {\n return `.${prefix}--toggletip-button`;\n }\n\n static shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n}\n\nexport default CDSToggletip;\n"],"names":["FloatingUIController","styles","customElement"],"mappings":"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"}