@carbon/web-components 2.61.0 → 2.62.0-rc.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 (241) hide show
  1. package/custom-elements.json +455 -13
  2. package/es/components/action-set/action-set.d.ts +107 -0
  3. package/es/components/action-set/action-set.d.ts.map +1 -0
  4. package/es/components/action-set/action-set.js +269 -0
  5. package/es/components/action-set/action-set.js.map +1 -0
  6. package/es/components/action-set/action-set.scss.js +14 -0
  7. package/es/components/action-set/action-set.scss.js.map +1 -0
  8. package/es/components/action-set/index.d.ts +9 -0
  9. package/es/components/action-set/index.d.ts.map +1 -0
  10. package/es/components/action-set/index.js +8 -0
  11. package/es/components/button/button.d.ts.map +1 -1
  12. package/es/components/button/button.js +7 -2
  13. package/es/components/button/button.js.map +1 -1
  14. package/es/components/data-table/data-table.scss.js +1 -1
  15. package/es/components/date-picker/next/components/date-picker.scss.js +1 -1
  16. package/es/components/file-uploader/file-uploader.scss.js +1 -1
  17. package/es/components/fluid-date-picker/fluid-date-picker.scss.js +1 -1
  18. package/es/components/resizer/defs.d.ts +73 -0
  19. package/es/components/resizer/defs.d.ts.map +1 -0
  20. package/es/components/resizer/defs.js +97 -0
  21. package/es/components/resizer/defs.js.map +1 -0
  22. package/es/components/resizer/index.d.ts +11 -0
  23. package/es/components/resizer/index.d.ts.map +1 -0
  24. package/es/components/resizer/index.js +11 -0
  25. package/es/components/resizer/resizer-grid.d.ts +22 -0
  26. package/es/components/resizer/resizer-grid.d.ts.map +1 -0
  27. package/es/components/resizer/resizer-grid.js +44 -0
  28. package/es/components/resizer/resizer-grid.js.map +1 -0
  29. package/es/components/resizer/resizer-grid.scss.js +14 -0
  30. package/es/components/resizer/resizer-grid.scss.js.map +1 -0
  31. package/es/components/resizer/resizer-handle-pivot.d.ts +31 -0
  32. package/es/components/resizer/resizer-handle-pivot.d.ts.map +1 -0
  33. package/es/components/resizer/resizer-handle-pivot.js +93 -0
  34. package/es/components/resizer/resizer-handle-pivot.js.map +1 -0
  35. package/es/components/resizer/resizer-handle-pivot.scss.js +14 -0
  36. package/es/components/resizer/resizer-handle-pivot.scss.js.map +1 -0
  37. package/es/components/resizer/resizer-handle.d.ts +64 -0
  38. package/es/components/resizer/resizer-handle.d.ts.map +1 -0
  39. package/es/components/resizer/resizer-handle.js +350 -0
  40. package/es/components/resizer/resizer-handle.js.map +1 -0
  41. package/es/components/resizer/resizer-handle.scss.js +14 -0
  42. package/es/components/resizer/resizer-handle.scss.js.map +1 -0
  43. package/es/components/resizer/resizer-panel.d.ts +22 -0
  44. package/es/components/resizer/resizer-panel.d.ts.map +1 -0
  45. package/es/components/resizer/resizer-panel.js +37 -0
  46. package/es/components/resizer/resizer-panel.js.map +1 -0
  47. package/es/components/resizer/resizer-panel.scss.js +14 -0
  48. package/es/components/resizer/resizer-panel.scss.js.map +1 -0
  49. package/es/components/side-panel/_story-assets/index.d.ts +9 -0
  50. package/es/components/side-panel/_story-assets/index.d.ts.map +1 -0
  51. package/es/components/side-panel/_story-assets/index.js +246 -0
  52. package/es/components/side-panel/_story-assets/index.js.map +1 -0
  53. package/es/components/side-panel/defs.d.ts +7 -1
  54. package/es/components/side-panel/defs.d.ts.map +1 -1
  55. package/es/components/side-panel/defs.js +7 -1
  56. package/es/components/side-panel/defs.js.map +1 -1
  57. package/es/components/side-panel/index.d.ts +3 -1
  58. package/es/components/side-panel/index.d.ts.map +1 -1
  59. package/es/components/side-panel/index.js +12 -0
  60. package/es/components/side-panel/index.js.map +1 -0
  61. package/es/components/side-panel/side-panel.d.ts +60 -22
  62. package/es/components/side-panel/side-panel.d.ts.map +1 -1
  63. package/es/components/side-panel/side-panel.js +268 -126
  64. package/es/components/side-panel/side-panel.js.map +1 -1
  65. package/es/components/side-panel/side-panel.scss.js +14 -0
  66. package/es/components/side-panel/side-panel.scss.js.map +1 -0
  67. package/es/components/side-panel/story-styles.scss.js +14 -0
  68. package/es/components/side-panel/story-styles.scss.js.map +1 -0
  69. package/es/components/slider/slider.d.ts +14 -0
  70. package/es/components/slider/slider.d.ts.map +1 -1
  71. package/es/components/slider/slider.js +40 -5
  72. package/es/components/slider/slider.js.map +1 -1
  73. package/es/components/slider/slider.scss.js +1 -1
  74. package/es/components/tabs/tab.d.ts.map +1 -1
  75. package/es/components/tabs/tab.js +4 -1
  76. package/es/components/tabs/tab.js.map +1 -1
  77. package/es/components/tabs/tabs.scss.js +1 -1
  78. package/es/components/tabs/tabs.scss.js.map +1 -1
  79. package/es/components/textarea/textarea.scss.js +1 -1
  80. package/es/components/textarea/textarea.scss.js.map +1 -1
  81. package/es/components/truncated-text/index.d.ts +8 -0
  82. package/es/components/truncated-text/index.d.ts.map +1 -0
  83. package/es/components/truncated-text/index.js +8 -0
  84. package/es/components/truncated-text/truncated-text.d.ts +77 -0
  85. package/es/components/truncated-text/truncated-text.d.ts.map +1 -0
  86. package/es/components/truncated-text/truncated-text.js +216 -0
  87. package/es/components/truncated-text/truncated-text.js.map +1 -0
  88. package/es/components/truncated-text/truncated-text.scss.js +14 -0
  89. package/es/components/truncated-text/truncated-text.scss.js.map +1 -0
  90. package/es/globals/internal/icon-loader-utils.d.ts +2 -2
  91. package/es/globals/internal/icon-loader-utils.d.ts.map +1 -1
  92. package/es/globals/internal/icon-loader-utils.js +1 -1
  93. package/es/globals/internal/icon-loader-utils.js.map +1 -1
  94. package/es/index.d.ts.map +1 -1
  95. package/es-custom/components/action-set/action-set.d.ts +107 -0
  96. package/es-custom/components/action-set/action-set.d.ts.map +1 -0
  97. package/es-custom/components/action-set/action-set.js +269 -0
  98. package/es-custom/components/action-set/action-set.js.map +1 -0
  99. package/es-custom/components/action-set/action-set.scss.js +14 -0
  100. package/es-custom/components/action-set/action-set.scss.js.map +1 -0
  101. package/es-custom/components/action-set/index.d.ts +9 -0
  102. package/es-custom/components/action-set/index.d.ts.map +1 -0
  103. package/es-custom/components/action-set/index.js +8 -0
  104. package/es-custom/components/button/button.d.ts.map +1 -1
  105. package/es-custom/components/button/button.js +7 -2
  106. package/es-custom/components/button/button.js.map +1 -1
  107. package/es-custom/components/data-table/data-table.scss.js +1 -1
  108. package/es-custom/components/date-picker/next/components/date-picker.scss.js +1 -1
  109. package/es-custom/components/file-uploader/file-uploader.scss.js +1 -1
  110. package/es-custom/components/fluid-date-picker/fluid-date-picker.scss.js +1 -1
  111. package/es-custom/components/resizer/defs.d.ts +73 -0
  112. package/es-custom/components/resizer/defs.d.ts.map +1 -0
  113. package/es-custom/components/resizer/defs.js +97 -0
  114. package/es-custom/components/resizer/defs.js.map +1 -0
  115. package/es-custom/components/resizer/index.d.ts +11 -0
  116. package/es-custom/components/resizer/index.d.ts.map +1 -0
  117. package/es-custom/components/resizer/index.js +11 -0
  118. package/es-custom/components/resizer/resizer-grid.d.ts +22 -0
  119. package/es-custom/components/resizer/resizer-grid.d.ts.map +1 -0
  120. package/es-custom/components/resizer/resizer-grid.js +44 -0
  121. package/es-custom/components/resizer/resizer-grid.js.map +1 -0
  122. package/es-custom/components/resizer/resizer-grid.scss.js +14 -0
  123. package/es-custom/components/resizer/resizer-grid.scss.js.map +1 -0
  124. package/es-custom/components/resizer/resizer-handle-pivot.d.ts +31 -0
  125. package/es-custom/components/resizer/resizer-handle-pivot.d.ts.map +1 -0
  126. package/es-custom/components/resizer/resizer-handle-pivot.js +93 -0
  127. package/es-custom/components/resizer/resizer-handle-pivot.js.map +1 -0
  128. package/es-custom/components/resizer/resizer-handle-pivot.scss.js +14 -0
  129. package/es-custom/components/resizer/resizer-handle-pivot.scss.js.map +1 -0
  130. package/es-custom/components/resizer/resizer-handle.d.ts +64 -0
  131. package/es-custom/components/resizer/resizer-handle.d.ts.map +1 -0
  132. package/es-custom/components/resizer/resizer-handle.js +350 -0
  133. package/es-custom/components/resizer/resizer-handle.js.map +1 -0
  134. package/es-custom/components/resizer/resizer-handle.scss.js +14 -0
  135. package/es-custom/components/resizer/resizer-handle.scss.js.map +1 -0
  136. package/es-custom/components/resizer/resizer-panel.d.ts +22 -0
  137. package/es-custom/components/resizer/resizer-panel.d.ts.map +1 -0
  138. package/es-custom/components/resizer/resizer-panel.js +37 -0
  139. package/es-custom/components/resizer/resizer-panel.js.map +1 -0
  140. package/es-custom/components/resizer/resizer-panel.scss.js +14 -0
  141. package/es-custom/components/resizer/resizer-panel.scss.js.map +1 -0
  142. package/es-custom/components/side-panel/_story-assets/index.d.ts +9 -0
  143. package/es-custom/components/side-panel/_story-assets/index.d.ts.map +1 -0
  144. package/es-custom/components/side-panel/_story-assets/index.js +246 -0
  145. package/es-custom/components/side-panel/_story-assets/index.js.map +1 -0
  146. package/es-custom/components/side-panel/defs.d.ts +7 -1
  147. package/es-custom/components/side-panel/defs.d.ts.map +1 -1
  148. package/es-custom/components/side-panel/defs.js +7 -1
  149. package/es-custom/components/side-panel/defs.js.map +1 -1
  150. package/es-custom/components/side-panel/index.d.ts +3 -1
  151. package/es-custom/components/side-panel/index.d.ts.map +1 -1
  152. package/es-custom/components/side-panel/index.js +12 -0
  153. package/es-custom/components/side-panel/index.js.map +1 -0
  154. package/es-custom/components/side-panel/side-panel.d.ts +60 -22
  155. package/es-custom/components/side-panel/side-panel.d.ts.map +1 -1
  156. package/es-custom/components/side-panel/side-panel.js +268 -126
  157. package/es-custom/components/side-panel/side-panel.js.map +1 -1
  158. package/es-custom/components/side-panel/side-panel.scss.js +14 -0
  159. package/es-custom/components/side-panel/side-panel.scss.js.map +1 -0
  160. package/es-custom/components/side-panel/story-styles.scss.js +14 -0
  161. package/es-custom/components/side-panel/story-styles.scss.js.map +1 -0
  162. package/es-custom/components/slider/slider.d.ts +14 -0
  163. package/es-custom/components/slider/slider.d.ts.map +1 -1
  164. package/es-custom/components/slider/slider.js +40 -5
  165. package/es-custom/components/slider/slider.js.map +1 -1
  166. package/es-custom/components/slider/slider.scss.js +1 -1
  167. package/es-custom/components/tabs/tab.d.ts.map +1 -1
  168. package/es-custom/components/tabs/tab.js +4 -1
  169. package/es-custom/components/tabs/tab.js.map +1 -1
  170. package/es-custom/components/tabs/tabs.scss.js +1 -1
  171. package/es-custom/components/tabs/tabs.scss.js.map +1 -1
  172. package/es-custom/components/textarea/textarea.scss.js +1 -1
  173. package/es-custom/components/textarea/textarea.scss.js.map +1 -1
  174. package/es-custom/components/truncated-text/index.d.ts +8 -0
  175. package/es-custom/components/truncated-text/index.d.ts.map +1 -0
  176. package/es-custom/components/truncated-text/index.js +8 -0
  177. package/es-custom/components/truncated-text/truncated-text.d.ts +77 -0
  178. package/es-custom/components/truncated-text/truncated-text.d.ts.map +1 -0
  179. package/es-custom/components/truncated-text/truncated-text.js +216 -0
  180. package/es-custom/components/truncated-text/truncated-text.js.map +1 -0
  181. package/es-custom/components/truncated-text/truncated-text.scss.js +14 -0
  182. package/es-custom/components/truncated-text/truncated-text.scss.js.map +1 -0
  183. package/es-custom/globals/internal/icon-loader-utils.d.ts +2 -2
  184. package/es-custom/globals/internal/icon-loader-utils.d.ts.map +1 -1
  185. package/es-custom/globals/internal/icon-loader-utils.js +1 -1
  186. package/es-custom/globals/internal/icon-loader-utils.js.map +1 -1
  187. package/es-custom/index.d.ts.map +1 -1
  188. package/lib/components/action-set/action-set.d.ts +107 -0
  189. package/lib/components/action-set/action-set.d.ts.map +1 -0
  190. package/lib/components/action-set/index.d.ts +9 -0
  191. package/lib/components/action-set/index.d.ts.map +1 -0
  192. package/lib/components/button/button.d.ts.map +1 -1
  193. package/lib/components/resizer/defs.d.ts +73 -0
  194. package/lib/components/resizer/defs.d.ts.map +1 -0
  195. package/lib/components/resizer/defs.js +112 -0
  196. package/lib/components/resizer/defs.js.map +1 -0
  197. package/lib/components/resizer/index.d.ts +11 -0
  198. package/lib/components/resizer/index.d.ts.map +1 -0
  199. package/lib/components/resizer/resizer-grid.d.ts +22 -0
  200. package/lib/components/resizer/resizer-grid.d.ts.map +1 -0
  201. package/lib/components/resizer/resizer-handle-pivot.d.ts +31 -0
  202. package/lib/components/resizer/resizer-handle-pivot.d.ts.map +1 -0
  203. package/lib/components/resizer/resizer-handle.d.ts +64 -0
  204. package/lib/components/resizer/resizer-handle.d.ts.map +1 -0
  205. package/lib/components/resizer/resizer-panel.d.ts +22 -0
  206. package/lib/components/resizer/resizer-panel.d.ts.map +1 -0
  207. package/lib/components/side-panel/_story-assets/index.d.ts +9 -0
  208. package/lib/components/side-panel/_story-assets/index.d.ts.map +1 -0
  209. package/lib/components/side-panel/defs.d.ts +7 -1
  210. package/lib/components/side-panel/defs.d.ts.map +1 -1
  211. package/lib/components/side-panel/defs.js +7 -1
  212. package/lib/components/side-panel/defs.js.map +1 -1
  213. package/lib/components/side-panel/index.d.ts +3 -1
  214. package/lib/components/side-panel/index.d.ts.map +1 -1
  215. package/lib/components/side-panel/side-panel.d.ts +60 -22
  216. package/lib/components/side-panel/side-panel.d.ts.map +1 -1
  217. package/lib/components/slider/slider.d.ts +14 -0
  218. package/lib/components/slider/slider.d.ts.map +1 -1
  219. package/lib/components/tabs/tab.d.ts.map +1 -1
  220. package/lib/components/truncated-text/index.d.ts +8 -0
  221. package/lib/components/truncated-text/index.d.ts.map +1 -0
  222. package/lib/components/truncated-text/truncated-text.d.ts +77 -0
  223. package/lib/components/truncated-text/truncated-text.d.ts.map +1 -0
  224. package/lib/globals/internal/icon-loader-utils.d.ts +2 -2
  225. package/lib/globals/internal/icon-loader-utils.d.ts.map +1 -1
  226. package/lib/index.d.ts.map +1 -1
  227. package/package.json +7 -7
  228. package/scss/components/action-set/action-set.scss +93 -0
  229. package/scss/components/data-table/_table-core.scss +73 -20
  230. package/scss/components/data-table/_table-selection.scss +31 -14
  231. package/scss/components/resizer/resizer-grid.scss +34 -0
  232. package/scss/components/resizer/resizer-handle-pivot.scss +39 -0
  233. package/scss/components/resizer/resizer-handle.scss +127 -0
  234. package/scss/components/resizer/resizer-panel.scss +10 -0
  235. package/scss/components/side-panel/side-panel.scss +363 -0
  236. package/scss/components/side-panel/story-styles.scss +51 -0
  237. package/scss/components/tabs/tabs.scss +4 -0
  238. package/scss/components/textarea/textarea.scss +6 -0
  239. package/scss/components/truncated-text/truncated-text-story.scss +14 -0
  240. package/scss/components/truncated-text/truncated-text.scss +122 -0
  241. package/telemetry.yml +26 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resizer-handle.js","names":["styles","customElement"],"sources":["../../../src/components/resizer/resizer-handle.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2026, 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, state } from 'lit/decorators.js';\nimport { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { prefix } from '../../globals/settings';\nimport styles from './resizer-handle.scss?lit';\nimport type { ResizerAxis, Position } from './defs';\nimport {\n DOUBLE_TAP,\n KEYBOARD,\n ARIA,\n SELECTORS,\n SLOTS,\n EVENTS,\n determineAxis,\n calculateFlexRatio,\n formatSplitRatio,\n isWithinDistance,\n triggerHapticFeedback,\n createCustomEvent,\n getOrientationFromAxis,\n safeClosest,\n safeQuerySelectorAll,\n} from './defs';\n\n/**\n * Resizer handle component for resizing panels.\n * @element cds-resizer-handle\n * @fires resize-start - Fired when dragging starts\n * @fires resize-drag - Fired during dragging (detail: { axis, delta, position })\n * @fires resize-end - Fired when dragging ends (detail: { axis, delta, position })\n * @fires resize-reset - Fired on double-tap / double-click\n */\n@customElement(`${prefix}-resizer-handle`)\nclass CDSResizerHandle extends LitElement {\n static styles = styles;\n\n /** Resize axis — determined automatically from slot, or set explicitly. */\n @property({ type: String, reflect: true })\n axis: ResizerAxis = 'y';\n\n @state()\n private _isDragging = false;\n\n private _startNode?: HTMLElement;\n private _endNode?: HTMLElement;\n private _grid?: HTMLElement;\n private _startSize = 0;\n private _endSize = 0;\n private _lastTapTime = 0;\n private _lastTapPosition: Position = { x: 0, y: 0 };\n\n private _boundStartDrag?: (e: PointerEvent) => void;\n private _boundHandleKeyDown?: (e: KeyboardEvent) => void;\n private _boundMove?: (e: PointerEvent) => void;\n private _boundStop?: (e: PointerEvent) => void;\n\n // ─── Public API (used by resizer-handle-pivot) ──────────────────────────────\n\n setSyntheticHoverState(isHovered: boolean): void {\n this.toggleAttribute('data-synthetic-hover', isHovered);\n this.requestUpdate();\n }\n\n setSyntheticActiveState(isActive: boolean): void {\n this.toggleAttribute('data-synthetic-active', isActive);\n this.requestUpdate();\n }\n\n /** Start dragging (called by pivot component). */\n startDrag = (e: PointerEvent): void => {\n this._handlePointerDown(e);\n };\n\n /** Reset panel sizes to default (called by pivot component or double-click). */\n resetSizes = (e: MouseEvent): void => {\n e.preventDefault();\n this.dispatchEvent(createCustomEvent(EVENTS.RESIZE_RESET));\n\n if (this._grid) {\n this._grid.style.removeProperty('--start-element-size');\n this._grid.style.removeProperty('--end-element-size');\n const handleTransitionEnd = () => {\n this._updateAriaAttributes();\n this._grid?.removeEventListener('transitionend', handleTransitionEnd);\n };\n this._grid.addEventListener('transitionend', handleTransitionEnd, {\n once: true,\n });\n }\n };\n\n get pivot(): 'start' | 'end' | undefined {\n return this._pivot;\n }\n\n // ─── Lifecycle ──────────────────────────────────────────────────────────────\n\n connectedCallback() {\n super.connectedCallback();\n this._initializeComponent();\n this._setupEventListeners();\n }\n\n firstUpdated(): void {\n if (this._grid && this._startNode && this._endNode) {\n requestAnimationFrame(() => {\n this._updateAriaAttributes();\n });\n }\n }\n\n disconnectedCallback() {\n this._cleanup();\n super.disconnectedCallback();\n }\n\n // ─── Internals ──────────────────────────────────────────────────────────────\n\n private _initializeComponent(): void {\n this._grid = safeClosest(this, SELECTORS.GRID) || undefined;\n\n const slot = this.getAttribute('slot');\n const cursor = getComputedStyle(this).cursor;\n this.axis = determineAxis(slot, cursor);\n\n if (this._grid) {\n const panels = safeQuerySelectorAll<HTMLElement>(\n this._grid,\n SELECTORS.PANEL\n );\n if (this.axis === 'x') {\n this._startNode = panels.find((p) => p.slot === SLOTS.LEFT);\n this._endNode = panels.find((p) => p.slot === SLOTS.RIGHT);\n } else {\n this._startNode = panels.find((p) => p.slot === SLOTS.TOP);\n this._endNode = panels.find((p) => p.slot === SLOTS.BOTTOM);\n }\n }\n\n this._setupAccessibility();\n }\n\n private _setupAccessibility(): void {\n this.setAttribute('role', ARIA.ROLE_SEPARATOR);\n this.setAttribute('tabindex', '0');\n this.setAttribute('aria-orientation', getOrientationFromAxis(this.axis));\n this.setAttribute('aria-live', ARIA.LIVE_ASSERTIVE);\n if (this._grid && this._startNode && this._endNode) {\n this.setAttribute('aria-valuenow', ARIA.VALUE_DEFAULT);\n this.setAttribute('aria-valuemin', ARIA.VALUE_MIN);\n this.setAttribute('aria-valuemax', ARIA.VALUE_MAX);\n this.setAttribute('aria-valuetext', formatSplitRatio(50));\n }\n }\n\n private _setupEventListeners(): void {\n this._boundStartDrag = this._handlePointerDown.bind(this);\n this._boundHandleKeyDown = this._handleKeyDown.bind(this);\n this.addEventListener('pointerdown', this._boundStartDrag);\n this.addEventListener('keydown', this._boundHandleKeyDown);\n }\n\n private _cleanup(): void {\n if (this._boundStartDrag) {\n this.removeEventListener('pointerdown', this._boundStartDrag);\n this._boundStartDrag = undefined;\n }\n if (this._boundHandleKeyDown) {\n this.removeEventListener('keydown', this._boundHandleKeyDown);\n this._boundHandleKeyDown = undefined;\n }\n if (this._boundMove) {\n window.removeEventListener('pointermove', this._boundMove);\n this._boundMove = undefined;\n }\n if (this._boundStop) {\n window.removeEventListener('pointerup', this._boundStop);\n this._boundStop = undefined;\n }\n this.removeAttribute('data-synthetic-hover');\n this.removeAttribute('data-synthetic-active');\n this._isDragging = false;\n }\n\n private get _pivot(): 'start' | 'end' | undefined {\n const panel = safeClosest(this, SELECTORS.PANEL);\n if (!panel) return undefined;\n const slot = panel.getAttribute('slot');\n if (slot === SLOTS.LEFT) return 'end';\n if (slot === SLOTS.RIGHT) return 'start';\n return undefined;\n }\n\n private _updateAriaAttributes(): void {\n if (!this._grid || !this._startNode || !this._endNode) return;\n const rectStart = this._startNode.getBoundingClientRect();\n const rectEnd = this._endNode.getBoundingClientRect();\n const isHorizontal = this.axis === 'x';\n const startSize = isHorizontal ? rectStart.width : rectStart.height;\n const endSize = isHorizontal ? rectEnd.width : rectEnd.height;\n const totalSize = startSize + endSize;\n if (totalSize > 0) {\n const percentage = Math.round((startSize / totalSize) * 100);\n this.setAttribute('aria-valuenow', percentage.toString());\n this.setAttribute('aria-valuemin', ARIA.VALUE_MIN);\n this.setAttribute('aria-valuemax', ARIA.VALUE_MAX);\n this.setAttribute('aria-valuetext', formatSplitRatio(percentage));\n }\n }\n\n private _detectDoubleTap(e: PointerEvent): boolean {\n const now = Date.now();\n const dt = now - this._lastTapTime;\n const currentPos: Position = { x: e.clientX, y: e.clientY };\n if (\n dt < DOUBLE_TAP.MAX_TIME_MS &&\n isWithinDistance(\n currentPos,\n this._lastTapPosition,\n DOUBLE_TAP.MAX_DISTANCE_PX\n )\n ) {\n triggerHapticFeedback(DOUBLE_TAP.VIBRATION_MS);\n this.resetSizes(e as MouseEvent);\n this._lastTapTime = 0;\n return true;\n }\n this._lastTapTime = now;\n this._lastTapPosition = currentPos;\n return false;\n }\n\n private _handlePointerDown = (e: PointerEvent): void => {\n if (this._detectDoubleTap(e)) return;\n e.preventDefault();\n this._isDragging = true;\n this.setSyntheticActiveState(true);\n\n const startPosition: Position = { x: e.clientX, y: e.clientY };\n const startValue = this.axis === 'x' ? e.clientX : e.clientY;\n\n this.dispatchEvent(\n createCustomEvent(EVENTS.RESIZE_START, { axis: this.axis, startPosition })\n );\n\n if (this._grid && this._startNode && this._endNode) {\n const rectStart = this._startNode.getBoundingClientRect();\n const rectEnd = this._endNode.getBoundingClientRect();\n this._startSize = this.axis === 'x' ? rectStart.width : rectStart.height;\n this._endSize = this.axis === 'x' ? rectEnd.width : rectEnd.height;\n }\n\n this._boundMove = this._createMoveHandler(startValue);\n this._boundStop = this._createStopHandler(startValue);\n window.addEventListener('pointermove', this._boundMove);\n window.addEventListener('pointerup', this._boundStop);\n };\n\n private _createMoveHandler(startValue: number): (e: PointerEvent) => void {\n return (e: PointerEvent) => {\n if (!this._isDragging) return;\n const currentValue = this.axis === 'x' ? e.clientX : e.clientY;\n const delta = currentValue - startValue;\n const position: Position = { x: e.clientX, y: e.clientY };\n this.dispatchEvent(\n createCustomEvent(EVENTS.RESIZE_DRAG, {\n axis: this.axis,\n delta,\n position,\n })\n );\n if (this._grid && this._startNode && this._endNode) {\n this._updateGridSizes(delta);\n }\n };\n }\n\n private _createStopHandler(startValue: number): (e: PointerEvent) => void {\n return (e: PointerEvent) => {\n const currentValue = this.axis === 'x' ? e.clientX : e.clientY;\n const delta = currentValue - startValue;\n const position: Position = { x: e.clientX, y: e.clientY };\n this.dispatchEvent(\n createCustomEvent(EVENTS.RESIZE_END, {\n axis: this.axis,\n delta,\n position,\n })\n );\n if (this._boundMove) {\n window.removeEventListener('pointermove', this._boundMove);\n this._boundMove = undefined;\n }\n if (this._boundStop) {\n window.removeEventListener('pointerup', this._boundStop);\n this._boundStop = undefined;\n }\n if (this._grid) this._grid.style.removeProperty('transition');\n this._isDragging = false;\n this.setSyntheticActiveState(false);\n };\n }\n\n private _updateGridSizes(delta: number): void {\n if (!this._grid) return;\n this._grid.style.transition = 'none';\n const start = this._startSize + delta;\n const end = this._endSize - delta;\n const total = start + end || 1;\n this._grid.style.setProperty(\n '--start-element-size',\n `${calculateFlexRatio(start, total)}fr`\n );\n this._grid.style.setProperty(\n '--end-element-size',\n `${calculateFlexRatio(end, total)}fr`\n );\n this._updateAriaAttributes();\n }\n\n private _handleKeyDown = (e: KeyboardEvent): void => {\n const navKeys = [\n 'ArrowUp',\n 'ArrowDown',\n 'ArrowLeft',\n 'ArrowRight',\n 'Home',\n 'End',\n 'PageUp',\n 'PageDown',\n ];\n if (!navKeys.includes(e.key)) return;\n e.preventDefault();\n e.stopPropagation();\n\n const step = e.shiftKey ? KEYBOARD.LARGE_STEP_PX : KEYBOARD.DEFAULT_STEP_PX;\n const isHorizontal = this.axis === 'x';\n let delta = 0;\n\n if (e.key === 'ArrowUp' && !isHorizontal) delta = -step;\n else if (e.key === 'ArrowDown' && !isHorizontal) delta = step;\n else if (e.key === 'ArrowLeft' && isHorizontal) delta = -step;\n else if (e.key === 'ArrowRight' && isHorizontal) delta = step;\n else if (e.key === 'Home' && this._grid && this._startNode) {\n const rect = this._startNode.getBoundingClientRect();\n delta = isHorizontal ? -rect.width : -rect.height;\n } else if (e.key === 'End' && this._grid && this._endNode) {\n const rect = this._endNode.getBoundingClientRect();\n delta = isHorizontal ? rect.width : rect.height;\n }\n\n if (delta !== 0) this._handleKeyboardResize(delta);\n };\n\n private _handleKeyboardResize(delta: number): void {\n const position: Position = { x: 0, y: 0 };\n this.dispatchEvent(\n createCustomEvent(EVENTS.RESIZE_START, {\n axis: this.axis,\n startPosition: position,\n })\n );\n if (this._grid && this._startNode && this._endNode) {\n const rectStart = this._startNode.getBoundingClientRect();\n const rectEnd = this._endNode.getBoundingClientRect();\n const isHorizontal = this.axis === 'x';\n this._startSize = isHorizontal ? rectStart.width : rectStart.height;\n this._endSize = isHorizontal ? rectEnd.width : rectEnd.height;\n const start = this._startSize + delta;\n const end = this._endSize - delta;\n const total = start + end || 1;\n this._grid.style.setProperty(\n '--start-element-size',\n `${calculateFlexRatio(start, total)}fr`\n );\n this._grid.style.setProperty(\n '--end-element-size',\n `${calculateFlexRatio(end, total)}fr`\n );\n this._updateAriaAttributes();\n }\n this.dispatchEvent(\n createCustomEvent(EVENTS.RESIZE_DRAG, {\n axis: this.axis,\n delta,\n position,\n })\n );\n this.dispatchEvent(\n createCustomEvent(EVENTS.RESIZE_END, { axis: this.axis, delta, position })\n );\n }\n\n render() {\n return html`\n <div class=\"handle-content\">\n <span class=\"sr-only\">\n Use arrow keys to resize, hold Shift for larger steps. Double-click to\n reset.\n </span>\n <div>\n ${this._pivot === 'start'\n ? html`<slot name=\"${SLOTS.PIVOT}\"></slot>`\n : ''}\n </div>\n <div class=\"icon-container\" part=\"icon-container\">\n <slot name=\"${SLOTS.ICON}\"></slot>\n </div>\n <div>\n ${this._pivot === 'end'\n ? html`<slot name=\"${SLOTS.PIVOT}\"></slot>`\n : ''}\n </div>\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cds-resizer-handle': CDSResizerHandle;\n }\n}\n\nexport default CDSResizerHandle;\n"],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Copyright IBM Corp. 2026
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ import { css } from "lit";
9
+ //#region src/components/resizer/resizer-handle.scss?lit
10
+ var resizer_handle_default = css([".handle-content{display:flex;block-size:100%;inline-size:100%}.icon-container{display:flex;flex-grow:1;align-items:center;justify-content:center;block-size:100%}:host{display:grid;background:var(--cds-border-subtle);cursor:ns-resize;min-block-size:max(1px,var(--resizer-thickness));min-inline-size:max(1px,var(--resizer-thickness));touch-action:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}:host .icon-container{position:relative}:host .icon-container:before{position:absolute;background-color:var(--resizer-grab-color);block-size:calc(max(1px, var(--resizer-thickness)) + max(0px, var(--resizer-grab-thickness)));content:\"\";inline-size:100%;inset-inline-start:0}@media (prefers-reduced-motion:no-preference){:host(:hover),:host([data-synthetic-hover]){background-color:var(--cds-border-interactive);transition:background-color var(--cds-duration-moderate-01)}}:host(:focus){background-color:var(--cds-border-interactive);outline:none}:host(:active),:host([data-synthetic-active]){background-color:var(--cds-border-interactive)}:host(:focus:not(:focus-visible)){box-shadow:none;outline:none}:host([orientation=horizontal]),:host([slot=handle-horizontal]){cursor:ew-resize}:host([orientation=horizontal]) .icon-container,:host([slot=handle-horizontal]) .icon-container{position:relative}:host([orientation=horizontal]) .icon-container:before,:host([slot=handle-horizontal]) .icon-container:before{position:absolute;background-color:var(--resizer-grab-color);block-size:100%;content:\"\";inline-size:calc(max(1px, var(--resizer-thickness)) + max(0px, var(--resizer-grab-thickness)));inset-block-start:0;inset-inline-start:auto}:host([orientation=vertical]),:host([slot=handle-vertical]){cursor:ns-resize;min-inline-size:0}:host([orientation=vertical]) .icon-container,:host([slot=handle-vertical]) .icon-container{position:relative}:host([orientation=vertical]) .icon-container:before,:host([slot=handle-vertical]) .icon-container:before{position:absolute;background-color:var(--resizer-grab-color);block-size:calc(max(1px, var(--resizer-thickness)) + max(0px, var(--resizer-grab-thickness)));content:\"\";inline-size:100%;inset-inline-start:0}.sr-only{position:absolute;overflow:hidden;padding:0;border:0;margin:-1px;block-size:1px;clip:rect(0,0,0,0);inline-size:1px;white-space:nowrap}"]);
11
+ //#endregion
12
+ export { resizer_handle_default as default };
13
+
14
+ //# sourceMappingURL=resizer-handle.scss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resizer-handle.scss.js","names":[],"sources":["../../../src/components/resizer/resizer-handle.scss?lit"],"sourcesContent":["/**\n * Copyright IBM Corp. 2026, 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\n.handle-content {\n display: flex;\n block-size: 100%;\n inline-size: 100%;\n}\n\n.icon-container {\n display: flex;\n flex-grow: 1;\n align-items: center;\n justify-content: center;\n block-size: 100%;\n}\n\n:host {\n display: grid;\n background: var(--cds-border-subtle);\n cursor: ns-resize;\n min-block-size: max(1px, var(--resizer-thickness));\n min-inline-size: max(1px, var(--resizer-thickness));\n touch-action: none;\n -webkit-user-select: none;\n -ms-user-select: none;\n user-select: none;\n\n .icon-container {\n position: relative;\n\n &::before {\n position: absolute;\n background-color: var(--resizer-grab-color);\n block-size: calc(\n max(1px, var(--resizer-thickness)) +\n max(0px, var(--resizer-grab-thickness))\n );\n content: '';\n inline-size: 100%;\n inset-inline-start: 0;\n }\n }\n}\n\n:host(:hover),\n:host([data-synthetic-hover]) {\n @media (prefers-reduced-motion: no-preference) {\n background-color: var(--cds-border-interactive);\n transition: background-color var(--cds-duration-moderate-01);\n }\n}\n\n:host(:focus) {\n background-color: var(--cds-border-interactive);\n outline: none;\n}\n\n:host(:active),\n:host([data-synthetic-active]) {\n background-color: var(--cds-border-interactive);\n}\n\n:host(:focus:not(:focus-visible)) {\n box-shadow: none;\n outline: none;\n}\n\n:host([slot='handle-horizontal']),\n:host([orientation='horizontal']) {\n cursor: ew-resize;\n\n .icon-container {\n position: relative;\n\n &::before {\n position: absolute;\n background-color: var(--resizer-grab-color);\n block-size: 100%;\n content: '';\n inline-size: calc(\n max(1px, var(--resizer-thickness)) +\n max(0px, var(--resizer-grab-thickness))\n );\n inset-block-start: 0;\n inset-inline-start: auto;\n }\n }\n}\n\n:host([slot='handle-vertical']),\n:host([orientation='vertical']) {\n cursor: ns-resize;\n min-inline-size: 0;\n\n .icon-container {\n position: relative;\n\n &::before {\n position: absolute;\n background-color: var(--resizer-grab-color);\n block-size: calc(\n max(1px, var(--resizer-thickness)) +\n max(0px, var(--resizer-grab-thickness))\n );\n content: '';\n inline-size: 100%;\n inset-inline-start: 0;\n }\n }\n}\n\n.sr-only {\n position: absolute;\n overflow: hidden;\n padding: 0;\n border: 0;\n margin: -1px;\n block-size: 1px;\n clip: rect(0, 0, 0, 0);\n inline-size: 1px;\n white-space: nowrap;\n}\n"],"mappings":""}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Copyright IBM Corp. 2026, 2026
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+ import { LitElement } from 'lit';
8
+ /**
9
+ * Resizer panel component for resizable content areas.
10
+ * @element cds-resizer-panel
11
+ */
12
+ declare class CDSResizerPanel extends LitElement {
13
+ static styles: any;
14
+ render(): import("lit-html").TemplateResult<1>;
15
+ }
16
+ declare global {
17
+ interface HTMLElementTagNameMap {
18
+ 'cds-resizer-panel': CDSResizerPanel;
19
+ }
20
+ }
21
+ export default CDSResizerPanel;
22
+ //# sourceMappingURL=resizer-panel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resizer-panel.d.ts","sourceRoot":"","sources":["../../../src/components/resizer/resizer-panel.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,UAAU,EAAQ,MAAM,KAAK,CAAC;AAKvC;;;GAGG;AACH,cACM,eAAgB,SAAQ,UAAU;IACtC,MAAM,CAAC,MAAM,MAAU;IAEvB,MAAM;CAGP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,mBAAmB,EAAE,eAAe,CAAC;KACtC;CACF;AAED,eAAe,eAAe,CAAC"}
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Copyright IBM Corp. 2026
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ import "../../globals/settings.js";
9
+ import { carbonElement } from "../../globals/decorators/carbon-element.js";
10
+ import __decorate from "../../_virtual/_@oxc-project_runtime@0.139.0/helpers/esm/decorate.js";
11
+ import resizer_panel_default$1 from "./resizer-panel.scss.js";
12
+ import { LitElement, html } from "lit";
13
+ //#region src/components/resizer/resizer-panel.ts
14
+ /**
15
+ * Copyright IBM Corp. 2026, 2026
16
+ *
17
+ * This source code is licensed under the Apache-2.0 license found in the
18
+ * LICENSE file in the root directory of this source tree.
19
+ */
20
+ /**
21
+ * Resizer panel component for resizable content areas.
22
+ * @element cds-resizer-panel
23
+ */
24
+ let CDSResizerPanel = class CDSResizerPanel extends LitElement {
25
+ static {
26
+ this.styles = resizer_panel_default$1;
27
+ }
28
+ render() {
29
+ return html`<slot></slot>`;
30
+ }
31
+ };
32
+ CDSResizerPanel = __decorate([carbonElement(`cds-resizer-panel`)], CDSResizerPanel);
33
+ var resizer_panel_default = CDSResizerPanel;
34
+ //#endregion
35
+ export { resizer_panel_default as default };
36
+
37
+ //# sourceMappingURL=resizer-panel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resizer-panel.js","names":["styles","customElement"],"sources":["../../../src/components/resizer/resizer-panel.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2026, 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 { carbonElement as customElement } from '../../globals/decorators/carbon-element';\nimport { prefix } from '../../globals/settings';\nimport styles from './resizer-panel.scss?lit';\n\n/**\n * Resizer panel component for resizable content areas.\n * @element cds-resizer-panel\n */\n@customElement(`${prefix}-resizer-panel`)\nclass CDSResizerPanel extends LitElement {\n static styles = styles;\n\n render() {\n return html`<slot></slot>`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cds-resizer-panel': CDSResizerPanel;\n }\n}\n\nexport default CDSResizerPanel;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAgBA,IAAA,kBAAA,MACM,wBAAwB,WAAW;;gBACvBA;;CAEhB,SAAS;EACP,OAAO,IAAI;CACb;AACF;8BAPCC,cAAc,mBAAyB,CAAA,GAAA,eAAA;AAexC,IAAA,wBAAe"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Copyright IBM Corp. 2026
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ import { css } from "lit";
9
+ //#region src/components/resizer/resizer-panel.scss?lit
10
+ var resizer_panel_default = css([":host{overflow:hidden}"]);
11
+ //#endregion
12
+ export { resizer_panel_default as default };
13
+
14
+ //# sourceMappingURL=resizer-panel.scss.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resizer-panel.scss.js","names":[],"sources":["../../../src/components/resizer/resizer-panel.scss?lit"],"sourcesContent":["/**\n * Copyright IBM Corp. 2026, 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\n:host {\n overflow: hidden;\n}\n"],"mappings":""}
@@ -0,0 +1,9 @@
1
+ import '../../breadcrumb/index';
2
+ import '../../notification/index';
3
+ export declare const getContent: (index: any) => import("lit-html").TemplateResult<1> | null;
4
+ export declare const getSubTitle: (index: any) => import("lit-html").TemplateResult<1> | null;
5
+ export declare const getActionToolbarItems: (index: any) => import("lit-html").TemplateResult<1> | null;
6
+ export declare const getActionItems: (index: any) => import("lit-html").TemplateResult<1> | null;
7
+ export declare const getSlug: (index: any) => import("lit-html").TemplateResult<1> | null;
8
+ export declare const getCustomHeaderComponents: (index: any) => import("lit-html").TemplateResult<1> | null;
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/side-panel/_story-assets/index.ts"],"names":[],"mappings":"AAYA,OAAO,wBAAwB,CAAC;AAChC,OAAO,0BAA0B,CAAC;AAIlC,eAAO,MAAM,UAAU,GAAI,UAAK,gDAuD/B,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,UAAK,gDAYhC,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,UAAK,gDA2B1C,CAAC;AAGF,eAAO,MAAM,cAAc,GAAI,UAAK,gDAsEnC,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,UAAK,gDAsB5B,CAAC;AAEF,eAAO,MAAM,yBAAyB,GAAI,UAAK,gDAoD9C,CAAC"}
@@ -0,0 +1,246 @@
1
+ /**
2
+ * Copyright IBM Corp. 2026
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ import iconLoader from "../../../globals/internal/icon-loader.js";
9
+ import "../../button/defs.js";
10
+ import "../../breadcrumb/index.js";
11
+ import "../../notification/index.js";
12
+ import story_styles_default from "../story-styles.scss.js";
13
+ import { html } from "lit";
14
+ import TrashCan16 from "@carbon/icons/es/trash-can/16";
15
+ import Settings16 from "@carbon/icons/es/settings/16";
16
+ //#region src/components/side-panel/_story-assets/index.ts
17
+ /**
18
+ * Copyright IBM Corp. 2024, 2026
19
+ *
20
+ * This source code is licensed under the Apache-2.0 license found in the
21
+ * LICENSE file in the root directory of this source tree.
22
+ */
23
+ const storyPrefix = "side-panel-stories__";
24
+ const getContent = (index) => {
25
+ switch (index) {
26
+ case 1: return html`
27
+ <style>
28
+ ${story_styles_default}
29
+ </style>
30
+ <h5>Section</h5>
31
+ <cds-text-input
32
+ label="Input A"
33
+ id="side-panel-story-text-input-a"
34
+ class="${storyPrefix}text-input"></cds-text-input>
35
+ <cds-text-input
36
+ label="Input B"
37
+ id="side-panel-story-text-input-b"
38
+ class="${storyPrefix}text-input"></cds-text-input>
39
+ `;
40
+ case 2: return html`
41
+ <style>
42
+ ${story_styles_default}
43
+ </style>
44
+ <h5>Section</h5>
45
+ <div class="${storyPrefix}text-inputs">
46
+ <cds-text-input
47
+ label="Input A"
48
+ id="side-panel-story-text-input-a"></cds-text-input>
49
+ <cds-text-input
50
+ label="Input B"
51
+ id="side-panel-story-text-input-b"></cds-text-input>
52
+ </div>
53
+ <div class="${storyPrefix}text-inputs">
54
+ <cds-text-input
55
+ label="Input C"
56
+ id="side-panel-story-text-input-c"></cds-text-input>
57
+ <cds-text-input
58
+ label="Input D"
59
+ id="side-panel-story-text-input-d"></cds-text-input>
60
+ </div>
61
+ <div class="${storyPrefix}textarea-container">
62
+ <cds-textarea
63
+ label="Notes"
64
+ value="This is a text area"></cds-textarea>
65
+ <cds-textarea
66
+ label="Notes"
67
+ value="This is a text area"></cds-textarea>
68
+ <cds-textarea
69
+ label="Notes"
70
+ value="This is a text area"></cds-textarea>
71
+ </div>
72
+ `;
73
+ default: return null;
74
+ }
75
+ };
76
+ const getSubTitle = (index) => {
77
+ switch (index) {
78
+ case 1: return html`<div slot="subtitle">This is your subtitle slot.</div>`;
79
+ case 2: return html`<div slot="subtitle">
80
+ I am your subtitle slot for <strong>adding detail</strong> that can be
81
+ one or two lines.
82
+ </div>`;
83
+ default: return null;
84
+ }
85
+ };
86
+ const getActionToolbarItems = (index) => {
87
+ switch (index) {
88
+ case 1: return html`
89
+ <cds-button slot="action-toolbar">Copy</cds-button>
90
+ <cds-button
91
+ slot="action-toolbar"
92
+ aria-label="Settings"
93
+ has-icon-only="true"
94
+ kind=${"ghost"}
95
+ size="sm"
96
+ tooltip-text="Settings">
97
+ ${iconLoader(Settings16, { slot: "icon" })}
98
+ </cds-button>
99
+ <cds-button
100
+ slot="action-toolbar"
101
+ aria-label="Delete"
102
+ has-icon-only="true"
103
+ kind=${"ghost"}
104
+ size="sm"
105
+ tooltip-text="Delete">
106
+ ${iconLoader(TrashCan16, { slot: "icon" })}
107
+ </cds-button>
108
+ `;
109
+ default: return null;
110
+ }
111
+ };
112
+ const getActionItems = (index) => {
113
+ switch (index) {
114
+ case 1: return html`<cds-button slot="actions" kind=${"primary"}
115
+ >Primary</cds-button
116
+ >`;
117
+ case 2: return html`<cds-button slot="actions" kind=${"ghost"}
118
+ >Ghost</cds-button
119
+ >`;
120
+ case 3: return html`<cds-button slot="actions" kind=${"danger"}
121
+ >Danger</cds-button
122
+ >`;
123
+ case 4: return html`
124
+ <cds-button slot="actions" kind=${"secondary"}
125
+ >Secondary</cds-button
126
+ >
127
+ <cds-button slot="actions" kind=${"primary"}
128
+ >Primary</cds-button
129
+ >
130
+ `;
131
+ case 5: return html`
132
+ <cds-button slot="actions" kind=${"ghost"}>Ghost</cds-button>
133
+ <cds-button slot="actions" kind=${"primary"}
134
+ >Primary</cds-button
135
+ >
136
+ `;
137
+ case 6: return html`<cds-button slot="actions" kind=${"danger"}
138
+ >Danger</cds-button
139
+ >
140
+ <cds-button slot="actions" kind=${"primary"}
141
+ >Primary</cds-button
142
+ >`;
143
+ case 7: return html`<cds-button slot="actions" kind=${"ghost"}
144
+ >Ghost</cds-button
145
+ >
146
+ <cds-button slot="actions" kind=${"secondary"}
147
+ >Secondary</cds-button
148
+ >
149
+ <cds-button slot="actions" kind=${"primary"}
150
+ >Primary</cds-button
151
+ >`;
152
+ case 8: return html`<cds-button slot="actions" kind=${"danger"}
153
+ >Danger</cds-button
154
+ >
155
+ <cds-button slot="actions" kind=${"secondary"}
156
+ >Secondary</cds-button
157
+ >
158
+ <cds-button slot="actions" kind=${"primary"}
159
+ >Primary</cds-button
160
+ >`;
161
+ case 9: return html`<cds-button slot="actions" kind=${"secondary"}
162
+ >Secondary</cds-button
163
+ >
164
+ <cds-button slot="actions" kind=${"secondary"}
165
+ >Secondary</cds-button
166
+ >
167
+ <cds-button slot="actions" kind=${"primary"}
168
+ >Primary</cds-button
169
+ >`;
170
+ default: return null;
171
+ }
172
+ };
173
+ const getSlug = (index) => {
174
+ switch (index) {
175
+ case 1: return html`<cds-slug size="xs" alignment="bottom-right">
176
+ <div slot="body-text">
177
+ <p class="secondary">AI Explained</p>
178
+ <h1>84%</h1>
179
+ <p class="secondary bold">Confidence score</p>
180
+ <!-- //cspell: disable -->
181
+ <p class="secondary">
182
+ Lorem ipsum dolor sit amet, di os consectetur adipiscing elit, sed
183
+ do eiusmod tempor incididunt ut fsil labore et dolore magna aliqua.
184
+ </p>
185
+ <!-- //cspell: enable -->
186
+ <hr />
187
+ <p class="secondary">Model type</p>
188
+ <p class="bold">Foundation model</p>
189
+ </div>
190
+ </cds-slug>`;
191
+ default: return null;
192
+ }
193
+ };
194
+ const getCustomHeaderComponents = (index) => {
195
+ switch (index) {
196
+ case 1: return html` <style>
197
+ ${story_styles_default}
198
+ </style>
199
+ <div slot="above-title" class="${storyPrefix}custom-header-content">
200
+ <cds-breadcrumb aria-label="">
201
+ <cds-breadcrumb-item>
202
+ <cds-breadcrumb-link href="#">Breadcrumb 1</cds-breadcrumb-link>
203
+ </cds-breadcrumb-item>
204
+ <cds-breadcrumb-item>
205
+ <cds-breadcrumb-link href="#">Breadcrumb 2</cds-breadcrumb-link>
206
+ </cds-breadcrumb-item>
207
+ </cds-breadcrumb>
208
+ </div>`;
209
+ case 2: return html` <style>
210
+ ${story_styles_default}
211
+ </style>
212
+ <div slot="below-title" class="${storyPrefix}custom-header-content">
213
+ <cds-inline-notification
214
+ title="Notification title"
215
+ subtitle="Subtitle text goes here"
216
+ kind="error">
217
+ </cds-inline-notification>
218
+ </div>`;
219
+ case 3: return html` <style>
220
+ ${story_styles_default}
221
+ </style>
222
+ <div slot="above-title" class="${storyPrefix}custom-header-content">
223
+ <cds-breadcrumb aria-label="">
224
+ <cds-breadcrumb-item>
225
+ <cds-breadcrumb-link href="#">Breadcrumb 1</cds-breadcrumb-link>
226
+ </cds-breadcrumb-item>
227
+ <cds-breadcrumb-item>
228
+ <cds-breadcrumb-link href="#">Breadcrumb 2</cds-breadcrumb-link>
229
+ </cds-breadcrumb-item>
230
+ </cds-breadcrumb>
231
+ </div>
232
+
233
+ <div slot="below-title" class="${storyPrefix}custom-header-content">
234
+ <cds-inline-notification
235
+ title="Notification title"
236
+ subtitle="Subtitle text goes here"
237
+ kind="error">
238
+ </cds-inline-notification>
239
+ </div>`;
240
+ default: return null;
241
+ }
242
+ };
243
+ //#endregion
244
+ export { getActionItems, getActionToolbarItems, getContent, getCustomHeaderComponents, getSlug, getSubTitle };
245
+
246
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["styles"],"sources":["../../../../src/components/side-panel/_story-assets/index.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2024, 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 */\nimport { html } from 'lit';\nimport styles from '../story-styles.scss?lit';\nimport { BUTTON_KIND } from '../../button/defs';\nimport TrashCan16 from '@carbon/icons/es/trash-can/16';\nimport Settings16 from '@carbon/icons/es/settings/16';\nimport { iconLoader } from '../../../globals/internal/icon-loader';\nimport '../../breadcrumb/index';\nimport '../../notification/index';\n\nconst storyPrefix = 'side-panel-stories__';\n\nexport const getContent = (index) => {\n switch (index) {\n case 1:\n return html`\n <style>\n ${styles}\n </style>\n <h5>Section</h5>\n <cds-text-input\n label=\"Input A\"\n id=\"side-panel-story-text-input-a\"\n class=\"${storyPrefix}text-input\"></cds-text-input>\n <cds-text-input\n label=\"Input B\"\n id=\"side-panel-story-text-input-b\"\n class=\"${storyPrefix}text-input\"></cds-text-input>\n `;\n case 2:\n return html`\n <style>\n ${styles}\n </style>\n <h5>Section</h5>\n <div class=\"${storyPrefix}text-inputs\">\n <cds-text-input\n label=\"Input A\"\n id=\"side-panel-story-text-input-a\"></cds-text-input>\n <cds-text-input\n label=\"Input B\"\n id=\"side-panel-story-text-input-b\"></cds-text-input>\n </div>\n <div class=\"${storyPrefix}text-inputs\">\n <cds-text-input\n label=\"Input C\"\n id=\"side-panel-story-text-input-c\"></cds-text-input>\n <cds-text-input\n label=\"Input D\"\n id=\"side-panel-story-text-input-d\"></cds-text-input>\n </div>\n <div class=\"${storyPrefix}textarea-container\">\n <cds-textarea\n label=\"Notes\"\n value=\"This is a text area\"></cds-textarea>\n <cds-textarea\n label=\"Notes\"\n value=\"This is a text area\"></cds-textarea>\n <cds-textarea\n label=\"Notes\"\n value=\"This is a text area\"></cds-textarea>\n </div>\n `;\n\n default:\n return null;\n }\n};\n\nexport const getSubTitle = (index) => {\n switch (index) {\n case 1:\n return html`<div slot=\"subtitle\">This is your subtitle slot.</div>`;\n case 2:\n return html`<div slot=\"subtitle\">\n I am your subtitle slot for <strong>adding detail</strong> that can be\n one or two lines.\n </div>`;\n default:\n return null;\n }\n};\n\nexport const getActionToolbarItems = (index) => {\n switch (index) {\n case 1:\n return html`\n <cds-button slot=\"action-toolbar\">Copy</cds-button>\n <cds-button\n slot=\"action-toolbar\"\n aria-label=\"Settings\"\n has-icon-only=\"true\"\n kind=${BUTTON_KIND.GHOST}\n size=\"sm\"\n tooltip-text=\"Settings\">\n ${iconLoader(Settings16, { slot: 'icon' })}\n </cds-button>\n <cds-button\n slot=\"action-toolbar\"\n aria-label=\"Delete\"\n has-icon-only=\"true\"\n kind=${BUTTON_KIND.GHOST}\n size=\"sm\"\n tooltip-text=\"Delete\">\n ${iconLoader(TrashCan16, { slot: 'icon' })}\n </cds-button>\n `;\n default:\n return null;\n }\n};\n\n// TODO: There are problems switching this\nexport const getActionItems = (index) => {\n switch (index) {\n case 1: // One button\n return html`<cds-button slot=\"actions\" kind=${BUTTON_KIND.PRIMARY}\n >Primary</cds-button\n >`;\n case 2: // One button (ghost)\n return html`<cds-button slot=\"actions\" kind=${BUTTON_KIND.GHOST}\n >Ghost</cds-button\n >`;\n case 3: // One button (danger)\n return html`<cds-button slot=\"actions\" kind=${BUTTON_KIND.DANGER}\n >Danger</cds-button\n >`;\n case 4: // Two buttons\n return html`\n <cds-button slot=\"actions\" kind=${BUTTON_KIND.SECONDARY}\n >Secondary</cds-button\n >\n <cds-button slot=\"actions\" kind=${BUTTON_KIND.PRIMARY}\n >Primary</cds-button\n >\n `;\n case 5: // Two buttons with ghost\n return html`\n <cds-button slot=\"actions\" kind=${BUTTON_KIND.GHOST}>Ghost</cds-button>\n <cds-button slot=\"actions\" kind=${BUTTON_KIND.PRIMARY}\n >Primary</cds-button\n >\n `;\n case 6: // Two buttons with danger\n return html`<cds-button slot=\"actions\" kind=${BUTTON_KIND.DANGER}\n >Danger</cds-button\n >\n <cds-button slot=\"actions\" kind=${BUTTON_KIND.PRIMARY}\n >Primary</cds-button\n >`;\n case 7: // Three buttons with ghost\n return html`<cds-button slot=\"actions\" kind=${BUTTON_KIND.GHOST}\n >Ghost</cds-button\n >\n <cds-button slot=\"actions\" kind=${BUTTON_KIND.SECONDARY}\n >Secondary</cds-button\n >\n <cds-button slot=\"actions\" kind=${BUTTON_KIND.PRIMARY}\n >Primary</cds-button\n >`;\n case 8: // Three buttons with danger\n return html`<cds-button slot=\"actions\" kind=${BUTTON_KIND.DANGER}\n >Danger</cds-button\n >\n <cds-button slot=\"actions\" kind=${BUTTON_KIND.SECONDARY}\n >Secondary</cds-button\n >\n <cds-button slot=\"actions\" kind=${BUTTON_KIND.PRIMARY}\n >Primary</cds-button\n >`;\n case 9: // Three buttons\n return html`<cds-button slot=\"actions\" kind=${BUTTON_KIND.SECONDARY}\n >Secondary</cds-button\n >\n <cds-button slot=\"actions\" kind=${BUTTON_KIND.SECONDARY}\n >Secondary</cds-button\n >\n <cds-button slot=\"actions\" kind=${BUTTON_KIND.PRIMARY}\n >Primary</cds-button\n >`;\n default:\n return null;\n }\n};\n\nexport const getSlug = (index) => {\n switch (index) {\n case 1:\n return html`<cds-slug size=\"xs\" alignment=\"bottom-right\">\n <div slot=\"body-text\">\n <p class=\"secondary\">AI Explained</p>\n <h1>84%</h1>\n <p class=\"secondary bold\">Confidence score</p>\n <!-- //cspell: disable -->\n <p class=\"secondary\">\n Lorem ipsum dolor sit amet, di os consectetur adipiscing elit, sed\n do eiusmod tempor incididunt ut fsil labore et dolore magna aliqua.\n </p>\n <!-- //cspell: enable -->\n <hr />\n <p class=\"secondary\">Model type</p>\n <p class=\"bold\">Foundation model</p>\n </div>\n </cds-slug>`;\n default:\n return null;\n }\n};\n\nexport const getCustomHeaderComponents = (index) => {\n switch (index) {\n case 1:\n return html` <style>\n ${styles}\n </style>\n <div slot=\"above-title\" class=\"${storyPrefix}custom-header-content\">\n <cds-breadcrumb aria-label=\"\">\n <cds-breadcrumb-item>\n <cds-breadcrumb-link href=\"#\">Breadcrumb 1</cds-breadcrumb-link>\n </cds-breadcrumb-item>\n <cds-breadcrumb-item>\n <cds-breadcrumb-link href=\"#\">Breadcrumb 2</cds-breadcrumb-link>\n </cds-breadcrumb-item>\n </cds-breadcrumb>\n </div>`;\n case 2:\n return html` <style>\n ${styles}\n </style>\n <div slot=\"below-title\" class=\"${storyPrefix}custom-header-content\">\n <cds-inline-notification\n title=\"Notification title\"\n subtitle=\"Subtitle text goes here\"\n kind=\"error\">\n </cds-inline-notification>\n </div>`;\n case 3:\n return html` <style>\n ${styles}\n </style>\n <div slot=\"above-title\" class=\"${storyPrefix}custom-header-content\">\n <cds-breadcrumb aria-label=\"\">\n <cds-breadcrumb-item>\n <cds-breadcrumb-link href=\"#\">Breadcrumb 1</cds-breadcrumb-link>\n </cds-breadcrumb-item>\n <cds-breadcrumb-item>\n <cds-breadcrumb-link href=\"#\">Breadcrumb 2</cds-breadcrumb-link>\n </cds-breadcrumb-item>\n </cds-breadcrumb>\n </div>\n\n <div slot=\"below-title\" class=\"${storyPrefix}custom-header-content\">\n <cds-inline-notification\n title=\"Notification title\"\n subtitle=\"Subtitle text goes here\"\n kind=\"error\">\n </cds-inline-notification>\n </div>`;\n default:\n return null;\n }\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAeA,MAAM,cAAc;AAEpB,MAAa,cAAc,UAAU;CACnC,QAAQ,OAAR;EACE,KAAK,GACH,OAAO,IAAI;;YAELA,qBAAO;;;;;;mBAMA,YAAY;;;;mBAIZ,YAAY;;EAE3B,KAAK,GACH,OAAO,IAAI;;YAELA,qBAAO;;;sBAGG,YAAY;;;;;;;;sBAQZ,YAAY;;;;;;;;sBAQZ,YAAY;;;;;;;;;;;;EAa9B,SACE,OAAO;CACX;AACF;AAEA,MAAa,eAAe,UAAU;CACpC,QAAQ,OAAR;EACE,KAAK,GACH,OAAO,IAAI;EACb,KAAK,GACH,OAAO,IAAI;;;;EAIb,SACE,OAAO;CACX;AACF;AAEA,MAAa,yBAAyB,UAAU;CAC9C,QAAQ,OAAR;EACE,KAAK,GACH,OAAO,IAAI;;;;;;yBAMkB;;;YAGvB,WAAW,YAAY,EAAE,MAAM,OAAO,CAAC,EAAE;;;;;;yBAMlB;;;YAGvB,WAAW,YAAY,EAAE,MAAM,OAAO,CAAC,EAAE;;;EAGjD,SACE,OAAO;CACX;AACF;AAGA,MAAa,kBAAkB,UAAU;CACvC,QAAQ,OAAR;EACE,KAAK,GACH,OAAO,IAAI,mCAAA,UAAuD;;;EAGpE,KAAK,GACH,OAAO,IAAI,mCAAA,QAAqD;;;EAGlE,KAAK,GACH,OAAO,IAAI,mCAAA,SAAsD;;;EAGnE,KAAK,GACH,OAAO,IAAI;sDAC+C;;;oDAGF;;;;EAI1D,KAAK,GACH,OAAO,IAAI;kDAC2C;oDACE;;;;EAI1D,KAAK,GACH,OAAO,IAAI,mCAAA,SAAsD;;;oDAGT;;;EAG1D,KAAK,GACH,OAAO,IAAI,mCAAA,QAAqD;;;sDAGN;;;oDAGF;;;EAG1D,KAAK,GACH,OAAO,IAAI,mCAAA,SAAsD;;;sDAGP;;;oDAGF;;;EAG1D,KAAK,GACH,OAAO,IAAI,mCAAA,YAAyD;;;sDAGV;;;oDAGF;;;EAG1D,SACE,OAAO;CACX;AACF;AAEA,MAAa,WAAW,UAAU;CAChC,QAAQ,OAAR;EACE,KAAK,GACH,OAAO,IAAI;;;;;;;;;;;;;;;;EAgBb,SACE,OAAO;CACX;AACF;AAEA,MAAa,6BAA6B,UAAU;CAClD,QAAQ,OAAR;EACE,KAAK,GACH,OAAO,IAAI;YACLA,qBAAO;;yCAEsB,YAAY;;;;;;;;;;EAUjD,KAAK,GACH,OAAO,IAAI;YACLA,qBAAO;;yCAEsB,YAAY;;;;;;;EAOjD,KAAK,GACH,OAAO,IAAI;YACLA,qBAAO;;yCAEsB,YAAY;;;;;;;;;;;yCAWZ,YAAY;;;;;;;EAOjD,SACE,OAAO;CACX;AACF"}
@@ -1,5 +1,7 @@
1
1
  /**
2
- * Copyright IBM Corp. 2023, 2024
2
+ * @license
3
+ *
4
+ * Copyright IBM Corp. 2023, 2026
3
5
  *
4
6
  * This source code is licensed under the Apache-2.0 license found in the
5
7
  * LICENSE file in the root directory of this source tree.
@@ -24,6 +26,10 @@ export declare enum SIDE_PANEL_SIZE {
24
26
  * Large size.
25
27
  */
26
28
  LARGE = "lg",
29
+ /**
30
+ * Extra Large size.
31
+ */
32
+ EXTRA_LARGE = "xl",
27
33
  /**
28
34
  * 2X-Large size.
29
35
  */
@@ -1 +1 @@
1
- {"version":3,"file":"defs.d.ts","sourceRoot":"","sources":["../../../src/components/side-panel/defs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;GAEG;AACH,oBAAY,eAAe;IACzB;;OAEG;IACH,WAAW,OAAO;IAElB;;OAEG;IACH,KAAK,OAAO;IAEZ;;OAEG;IACH,MAAM,OAAO;IAEb;;OAEG;IACH,KAAK,OAAO;IAEZ;;OAEG;IACH,iBAAiB,QAAQ;CAC1B;AAED,oBAAY,oBAAoB;IAC9B,sBAAsB;IACtB,KAAK,UAAU;IAEf,YAAY;IACZ,IAAI,SAAS;CACd"}
1
+ {"version":3,"file":"defs.d.ts","sourceRoot":"","sources":["../../../src/components/side-panel/defs.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;GAEG;AACH,oBAAY,eAAe;IACzB;;OAEG;IACH,WAAW,OAAO;IAElB;;OAEG;IACH,KAAK,OAAO;IAEZ;;OAEG;IACH,MAAM,OAAO;IAEb;;OAEG;IACH,KAAK,OAAO;IAEZ;;OAEG;IACH,WAAW,OAAO;IAElB;;OAEG;IACH,iBAAiB,QAAQ;CAC1B;AAED,oBAAY,oBAAoB;IAC9B,sBAAsB;IACtB,KAAK,UAAU;IAEf,YAAY;IACZ,IAAI,SAAS;CACd"}
@@ -7,7 +7,9 @@
7
7
 
8
8
  //#region src/components/side-panel/defs.ts
9
9
  /**
10
- * Copyright IBM Corp. 2023, 2024
10
+ * @license
11
+ *
12
+ * Copyright IBM Corp. 2023, 2026
11
13
  *
12
14
  * This source code is licensed under the Apache-2.0 license found in the
13
15
  * LICENSE file in the root directory of this source tree.
@@ -33,6 +35,10 @@ let SIDE_PANEL_SIZE = /* @__PURE__ */ function(SIDE_PANEL_SIZE) {
33
35
  */
34
36
  SIDE_PANEL_SIZE["LARGE"] = "lg";
35
37
  /**
38
+ * Extra Large size.
39
+ */
40
+ SIDE_PANEL_SIZE["EXTRA_LARGE"] = "xl";
41
+ /**
36
42
  * 2X-Large size.
37
43
  */
38
44
  SIDE_PANEL_SIZE["EXTRA_EXTRA_LARGE"] = "2xl";
@@ -1 +1 @@
1
- {"version":3,"file":"defs.js","names":[],"sources":["../../../src/components/side-panel/defs.ts"],"sourcesContent":["/**\n * Copyright IBM Corp. 2023, 2024\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\n/**\n * Modal size.\n */\nexport enum SIDE_PANEL_SIZE {\n /**\n * Extra small size.\n */\n EXTRA_SMALL = 'xs',\n\n /**\n * Small size.\n */\n SMALL = 'sm',\n\n /**\n * Medium size.\n */\n MEDIUM = 'md',\n\n /**\n * Large size.\n */\n LARGE = 'lg',\n\n /**\n * 2X-Large size.\n */\n EXTRA_EXTRA_LARGE = '2xl',\n}\n\nexport enum SIDE_PANEL_PLACEMENT {\n /** right / default */\n RIGHT = 'right',\n\n /** left */\n LEFT = 'left',\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAUA,IAAY,kBAAL,yBAAA,iBAAA;;;;CAIL,gBAAA,iBAAA;;;;CAKA,gBAAA,WAAA;;;;CAKA,gBAAA,YAAA;;;;CAKA,gBAAA,WAAA;;;;CAKA,gBAAA,uBAAA;;AACF,EAAA,CAAA,CAAA;AAEA,IAAY,uBAAL,yBAAA,sBAAA;;CAEL,qBAAA,WAAA;;CAGA,qBAAA,UAAA;;AACF,EAAA,CAAA,CAAA"}
1
+ {"version":3,"file":"defs.js","names":[],"sources":["../../../src/components/side-panel/defs.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2023, 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\n/**\n * Modal size.\n */\nexport enum SIDE_PANEL_SIZE {\n /**\n * Extra small size.\n */\n EXTRA_SMALL = 'xs',\n\n /**\n * Small size.\n */\n SMALL = 'sm',\n\n /**\n * Medium size.\n */\n MEDIUM = 'md',\n\n /**\n * Large size.\n */\n LARGE = 'lg',\n\n /**\n * Extra Large size.\n */\n EXTRA_LARGE = 'xl',\n\n /**\n * 2X-Large size.\n */\n EXTRA_EXTRA_LARGE = '2xl',\n}\n\nexport enum SIDE_PANEL_PLACEMENT {\n /** right / default */\n RIGHT = 'right',\n\n /** left */\n LEFT = 'left',\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;AAYA,IAAY,kBAAL,yBAAA,iBAAA;;;;CAIL,gBAAA,iBAAA;;;;CAKA,gBAAA,WAAA;;;;CAKA,gBAAA,YAAA;;;;CAKA,gBAAA,WAAA;;;;CAKA,gBAAA,iBAAA;;;;CAKA,gBAAA,uBAAA;;AACF,EAAA,CAAA,CAAA;AAEA,IAAY,uBAAL,yBAAA,sBAAA;;CAEL,qBAAA,WAAA;;CAGA,qBAAA,UAAA;;AACF,EAAA,CAAA,CAAA"}
@@ -1,5 +1,7 @@
1
1
  /**
2
- * Copyright IBM Corp. 2023, 2024
2
+ * @license
3
+ *
4
+ * Copyright IBM Corp. 2023, 2026
3
5
  *
4
6
  * This source code is licensed under the Apache-2.0 license found in the
5
7
  * LICENSE file in the root directory of this source tree.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/side-panel/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/side-panel/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,cAAc,CAAC"}
@@ -6,3 +6,15 @@
6
6
  */
7
7
 
8
8
  import "./side-panel.js";
9
+ //#region src/components/side-panel/index.ts
10
+ /**
11
+ * @license
12
+ *
13
+ * Copyright IBM Corp. 2023, 2026
14
+ *
15
+ * This source code is licensed under the Apache-2.0 license found in the
16
+ * LICENSE file in the root directory of this source tree.
17
+ */
18
+ //#endregion
19
+
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/components/side-panel/index.ts"],"sourcesContent":["/**\n * @license\n *\n * Copyright IBM Corp. 2023, 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 './side-panel';\n"],"mappings":""}