@carbon/web-components 2.0.0-alpha.0 → 2.0.0-beta.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 (246) hide show
  1. package/README.md +19 -19
  2. package/custom-elements.json +474 -200
  3. package/es/components/accordion/accordion-item-skeleton.d.ts +20 -0
  4. package/es/components/accordion/accordion-item-skeleton.d.ts.map +1 -0
  5. package/es/components/accordion/accordion-item-skeleton.js +60 -0
  6. package/es/components/accordion/accordion-item-skeleton.js.map +1 -0
  7. package/es/components/accordion/accordion-item.d.ts +5 -4
  8. package/es/components/accordion/accordion-item.d.ts.map +1 -1
  9. package/es/components/accordion/accordion-item.js +24 -9
  10. package/es/components/accordion/accordion-item.js.map +1 -1
  11. package/es/components/accordion/accordion-skeleton.d.ts +40 -0
  12. package/es/components/accordion/accordion-skeleton.d.ts.map +1 -0
  13. package/es/components/accordion/accordion-skeleton.js +166 -0
  14. package/es/components/accordion/accordion-skeleton.js.map +1 -0
  15. package/es/components/accordion/accordion.css.js +1 -1
  16. package/es/components/accordion/accordion.d.ts +2 -2
  17. package/es/components/accordion/accordion.d.ts.map +1 -1
  18. package/es/components/accordion/accordion.js +5 -5
  19. package/es/components/accordion/accordion.js.map +1 -1
  20. package/es/components/accordion/accordion.rtl.css.js +1 -1
  21. package/es/components/accordion/index.d.ts +3 -1
  22. package/es/components/accordion/index.d.ts.map +1 -1
  23. package/es/components/accordion/index.js +3 -1
  24. package/es/components/accordion/index.js.map +1 -1
  25. package/es/components/breadcrumb/breadcrumb-item.d.ts +2 -2
  26. package/es/components/breadcrumb/breadcrumb-item.d.ts.map +1 -1
  27. package/es/components/breadcrumb/breadcrumb-item.js +5 -5
  28. package/es/components/breadcrumb/breadcrumb-item.js.map +1 -1
  29. package/es/components/breadcrumb/breadcrumb-link.d.ts +4 -3
  30. package/es/components/breadcrumb/breadcrumb-link.d.ts.map +1 -1
  31. package/es/components/breadcrumb/breadcrumb-link.js +20 -6
  32. package/es/components/breadcrumb/breadcrumb-link.js.map +1 -1
  33. package/es/components/breadcrumb/breadcrumb-overflow-menu.d.ts +3 -3
  34. package/es/components/breadcrumb/breadcrumb-overflow-menu.d.ts.map +1 -1
  35. package/es/components/breadcrumb/breadcrumb-overflow-menu.js +6 -6
  36. package/es/components/breadcrumb/breadcrumb-overflow-menu.js.map +1 -1
  37. package/es/components/breadcrumb/breadcrumb-skeleton.d.ts +19 -0
  38. package/es/components/breadcrumb/breadcrumb-skeleton.d.ts.map +1 -0
  39. package/es/components/breadcrumb/breadcrumb-skeleton.js +59 -0
  40. package/es/components/breadcrumb/breadcrumb-skeleton.js.map +1 -0
  41. package/es/components/breadcrumb/breadcrumb.css.js +1 -1
  42. package/es/components/breadcrumb/breadcrumb.d.ts +6 -2
  43. package/es/components/breadcrumb/breadcrumb.d.ts.map +1 -1
  44. package/es/components/breadcrumb/breadcrumb.js +30 -10
  45. package/es/components/breadcrumb/breadcrumb.js.map +1 -1
  46. package/es/components/breadcrumb/breadcrumb.rtl.css.js +1 -1
  47. package/es/components/breadcrumb/index.d.ts +2 -1
  48. package/es/components/breadcrumb/index.d.ts.map +1 -1
  49. package/es/components/breadcrumb/index.js +2 -1
  50. package/es/components/breadcrumb/index.js.map +1 -1
  51. package/es/components/button/button-set.d.ts +32 -0
  52. package/es/components/button/button-set.d.ts.map +1 -0
  53. package/es/components/button/button-set.js +92 -0
  54. package/es/components/button/button-set.js.map +1 -0
  55. package/es/components/button/button.css.js +1 -1
  56. package/es/components/button/button.d.ts +47 -8
  57. package/es/components/button/button.d.ts.map +1 -1
  58. package/es/components/button/button.js +187 -34
  59. package/es/components/button/button.js.map +1 -1
  60. package/es/components/button/button.rtl.css.js +1 -1
  61. package/es/components/button/defs.d.ts +60 -14
  62. package/es/components/button/defs.d.ts.map +1 -1
  63. package/es/components/button/defs.js +34 -11
  64. package/es/components/button/defs.js.map +1 -1
  65. package/es/components/button/index.d.ts +2 -1
  66. package/es/components/button/index.d.ts.map +1 -1
  67. package/es/components/button/index.js +2 -1
  68. package/es/components/button/index.js.map +1 -1
  69. package/es/components/checkbox/checkbox.css.js +1 -1
  70. package/es/components/checkbox/checkbox.rtl.css.js +1 -1
  71. package/es/components/code-snippet/code-snippet.css.js +1 -1
  72. package/es/components/code-snippet/code-snippet.rtl.css.js +1 -1
  73. package/es/components/combo-box/combo-box.css.js +1 -1
  74. package/es/components/combo-box/combo-box.rtl.css.js +1 -1
  75. package/es/components/data-table/data-table.css.js +1 -1
  76. package/es/components/data-table/data-table.rtl.css.js +1 -1
  77. package/es/components/date-picker/date-picker.css.js +1 -1
  78. package/es/components/date-picker/date-picker.rtl.css.js +1 -1
  79. package/es/components/dropdown/dropdown.css.js +1 -1
  80. package/es/components/dropdown/dropdown.rtl.css.js +1 -1
  81. package/es/components/file-uploader/file-uploader.css.js +1 -1
  82. package/es/components/file-uploader/file-uploader.rtl.css.js +1 -1
  83. package/es/components/form/form-item.css.js +1 -1
  84. package/es/components/form/form-item.rtl.css.js +1 -1
  85. package/es/components/input/input.css.js +1 -1
  86. package/es/components/input/input.rtl.css.js +1 -1
  87. package/es/components/layer/index.d.ts +11 -0
  88. package/es/components/layer/index.d.ts.map +1 -0
  89. package/es/components/layer/index.js +11 -0
  90. package/es/components/layer/index.js.map +1 -0
  91. package/es/components/layer/layer.css.js +12 -0
  92. package/es/components/layer/layer.d.ts +36 -0
  93. package/es/components/layer/layer.d.ts.map +1 -0
  94. package/es/components/layer/layer.js +117 -0
  95. package/es/components/layer/layer.js.map +1 -0
  96. package/es/components/layer/layer.rtl.css.js +12 -0
  97. package/es/components/link/link.d.ts +16 -8
  98. package/es/components/link/link.d.ts.map +1 -1
  99. package/es/components/link/link.js +41 -9
  100. package/es/components/link/link.js.map +1 -1
  101. package/es/components/multi-select/multi-select.css.js +1 -1
  102. package/es/components/multi-select/multi-select.rtl.css.js +1 -1
  103. package/es/components/number-input/number-input.css.js +1 -1
  104. package/es/components/number-input/number-input.rtl.css.js +1 -1
  105. package/es/components/pagination/pagination.css.js +1 -1
  106. package/es/components/pagination/pagination.rtl.css.js +1 -1
  107. package/es/components/radio-button/radio-button-group.d.ts +16 -4
  108. package/es/components/radio-button/radio-button-group.d.ts.map +1 -1
  109. package/es/components/radio-button/radio-button-group.js +55 -8
  110. package/es/components/radio-button/radio-button-group.js.map +1 -1
  111. package/es/components/radio-button/radio-button.css.js +1 -1
  112. package/es/components/radio-button/radio-button.d.ts +12 -4
  113. package/es/components/radio-button/radio-button.d.ts.map +1 -1
  114. package/es/components/radio-button/radio-button.js +44 -12
  115. package/es/components/radio-button/radio-button.js.map +1 -1
  116. package/es/components/radio-button/radio-button.rtl.css.js +1 -1
  117. package/es/components/search/search.css.js +1 -1
  118. package/es/components/search/search.rtl.css.js +1 -1
  119. package/es/components/select/select.css.js +1 -1
  120. package/es/components/select/select.rtl.css.js +1 -1
  121. package/es/components/slider/slider.css.js +1 -1
  122. package/es/components/slider/slider.rtl.css.js +1 -1
  123. package/es/components/tabs/tabs.css.js +1 -1
  124. package/es/components/tabs/tabs.rtl.css.js +1 -1
  125. package/es/components/tag/defs.d.ts +3 -3
  126. package/es/components/tag/defs.d.ts.map +1 -1
  127. package/es/components/tag/defs.js +2 -2
  128. package/es/components/tag/defs.js.map +1 -1
  129. package/es/components/tag/index.d.ts +1 -2
  130. package/es/components/tag/index.d.ts.map +1 -1
  131. package/es/components/tag/index.js +1 -2
  132. package/es/components/tag/index.js.map +1 -1
  133. package/es/components/tag/tag.css.js +1 -1
  134. package/es/components/tag/tag.d.ts +660 -3
  135. package/es/components/tag/tag.d.ts.map +1 -1
  136. package/es/components/tag/tag.js +160 -13
  137. package/es/components/tag/tag.js.map +1 -1
  138. package/es/components/tag/tag.rtl.css.js +1 -1
  139. package/es/components/textarea/textarea.css.js +1 -1
  140. package/es/components/textarea/textarea.rtl.css.js +1 -1
  141. package/es/components/tile/expandable-tile.d.ts +5 -5
  142. package/es/components/tile/expandable-tile.d.ts.map +1 -1
  143. package/es/components/tile/expandable-tile.js +50 -36
  144. package/es/components/tile/expandable-tile.js.map +1 -1
  145. package/es/components/tile/radio-tile.d.ts +6 -338
  146. package/es/components/tile/radio-tile.d.ts.map +1 -1
  147. package/es/components/tile/radio-tile.js +36 -127
  148. package/es/components/tile/radio-tile.js.map +1 -1
  149. package/es/components/tile/selectable-tile.d.ts +322 -1
  150. package/es/components/tile/selectable-tile.d.ts.map +1 -1
  151. package/es/components/tile/selectable-tile.js +26 -10
  152. package/es/components/tile/selectable-tile.js.map +1 -1
  153. package/es/components/tile/tile-group.d.ts +380 -3
  154. package/es/components/tile/tile-group.d.ts.map +1 -1
  155. package/es/components/tile/tile-group.js +336 -19
  156. package/es/components/tile/tile-group.js.map +1 -1
  157. package/es/components/tile/tile.css.js +1 -1
  158. package/es/components/tile/tile.rtl.css.js +1 -1
  159. package/es/components/toggle/toggle.css.js +1 -1
  160. package/es/components/toggle/toggle.d.ts +13 -5
  161. package/es/components/toggle/toggle.d.ts.map +1 -1
  162. package/es/components/toggle/toggle.js +46 -15
  163. package/es/components/toggle/toggle.js.map +1 -1
  164. package/es/components/toggle/toggle.rtl.css.js +1 -1
  165. package/es/components/toggle-tip/toggletip.css.js +1 -1
  166. package/es/components/toggle-tip/toggletip.d.ts +5 -1
  167. package/es/components/toggle-tip/toggletip.d.ts.map +1 -1
  168. package/es/components/toggle-tip/toggletip.js +12 -12
  169. package/es/components/toggle-tip/toggletip.js.map +1 -1
  170. package/es/components/toggle-tip/toggletip.rtl.css.js +1 -1
  171. package/es/components/tooltip/tooltip-body.d.ts.map +1 -1
  172. package/es/components/tooltip/tooltip-body.js +1 -5
  173. package/es/components/tooltip/tooltip-body.js.map +1 -1
  174. package/es/components/tooltip/tooltip.css.js +1 -1
  175. package/es/components/tooltip/tooltip.d.ts +1 -2
  176. package/es/components/tooltip/tooltip.d.ts.map +1 -1
  177. package/es/components/tooltip/tooltip.js +9 -3
  178. package/es/components/tooltip/tooltip.js.map +1 -1
  179. package/es/components/tooltip/tooltip.rtl.css.js +1 -1
  180. package/es/components-react/accordion/accordion-item-skeleton.d.ts +15 -0
  181. package/es/components-react/accordion/accordion-item-skeleton.js +21 -0
  182. package/es/components-react/accordion/accordion-item.d.ts +2 -2
  183. package/es/components-react/accordion/accordion-skeleton.d.ts +15 -0
  184. package/es/components-react/accordion/accordion-skeleton.js +21 -0
  185. package/es/components-react/accordion/accordion.d.ts +2 -2
  186. package/es/components-react/breadcrumb/breadcrumb-item.d.ts +2 -2
  187. package/es/components-react/breadcrumb/breadcrumb-link.d.ts +2 -2
  188. package/es/components-react/breadcrumb/breadcrumb-overflow-menu.d.ts +2 -2
  189. package/es/components-react/breadcrumb/breadcrumb-skeleton.d.ts +15 -0
  190. package/es/components-react/breadcrumb/breadcrumb-skeleton.js +21 -0
  191. package/es/components-react/breadcrumb/breadcrumb.d.ts +2 -2
  192. package/es/components-react/button/button-set.d.ts +15 -0
  193. package/es/components-react/button/button-set.js +21 -0
  194. package/es/components-react/button/button.js +7 -1
  195. package/es/components-react/layer/index.d.ts +14 -0
  196. package/es/components-react/layer/index.js +8 -0
  197. package/es/components-react/layer/layer.d.ts +19 -0
  198. package/es/components-react/{tag/filter-tag.js → layer/layer.js} +5 -10
  199. package/es/components-react/link/link.d.ts +2 -2
  200. package/es/components-react/radio-button/radio-button-group.d.ts +2 -2
  201. package/es/components-react/radio-button/radio-button.d.ts +2 -2
  202. package/es/components-react/tag/tag.d.ts +11 -2
  203. package/es/components-react/tag/tag.js +12 -2
  204. package/es/components-react/tile/radio-tile.d.ts +8 -3
  205. package/es/components-react/tile/radio-tile.js +8 -2
  206. package/es/components-react/tile/tile-group.d.ts +10 -2
  207. package/es/components-react/tile/tile-group.js +12 -2
  208. package/es/components-react/toggle/toggle.d.ts +2 -2
  209. package/es/globals/internal/radio-group-manager.d.ts +3 -2
  210. package/es/globals/internal/radio-group-manager.d.ts.map +1 -1
  211. package/es/globals/internal/radio-group-manager.js +5 -4
  212. package/es/globals/internal/radio-group-manager.js.map +1 -1
  213. package/es/index.d.ts +0 -1
  214. package/es/index.d.ts.map +1 -1
  215. package/es/index.js +0 -1
  216. package/es/index.js.map +1 -1
  217. package/lib/components/button/defs.js +36 -13
  218. package/lib/components/button/defs.js.map +1 -1
  219. package/lib/components/tag/defs.js +2 -2
  220. package/lib/components/tag/defs.js.map +1 -1
  221. package/lib/components-react-node/accordion/accordion-item-skeleton.js +36 -0
  222. package/lib/components-react-node/accordion/accordion-skeleton.js +36 -0
  223. package/lib/components-react-node/breadcrumb/breadcrumb-skeleton.js +36 -0
  224. package/lib/components-react-node/button/button-set.js +36 -0
  225. package/lib/components-react-node/button/button.js +18 -6
  226. package/lib/components-react-node/layer/index.js +9 -0
  227. package/lib/components-react-node/{tag/filter-tag.js → layer/layer.js} +4 -21
  228. package/lib/components-react-node/tag/tag.js +12 -2
  229. package/lib/components-react-node/tile/radio-tile.js +8 -2
  230. package/lib/components-react-node/tile/tile-group.js +12 -2
  231. package/package.json +6 -7
  232. package/scss/components/accordion/accordion.scss +24 -10
  233. package/scss/components/breadcrumb/breadcrumb.scss +6 -3
  234. package/scss/components/button/button.scss +16 -34
  235. package/scss/components/combo-box/combo-box.scss +0 -1
  236. package/scss/components/layer/layer.scss +29 -0
  237. package/scss/components/radio-button/radio-button.scss +6 -6
  238. package/scss/components/tag/tag.scss +69 -72
  239. package/scss/components/tile/tile.scss +38 -16
  240. package/scss/components/toggle/toggle.scss +4 -0
  241. package/CHANGELOG.md +0 -87
  242. package/es/components/tag/filter-tag.d.ts +0 -680
  243. package/es/components/tag/filter-tag.d.ts.map +0 -1
  244. package/es/components/tag/filter-tag.js +0 -194
  245. package/es/components/tag/filter-tag.js.map +0 -1
  246. package/es/components-react/tag/filter-tag.d.ts +0 -24
@@ -21,6 +21,7 @@ import FocusMixin from '../../globals/mixins/focus';
21
21
  import HostListenerMixin from '../../globals/mixins/host-listener';
22
22
  import { TILE_COLOR_SCHEME } from './defs';
23
23
  import styles from "././tile.css.js";
24
+ import { classMap } from 'lit/directives/class-map';
24
25
 
25
26
  /**
26
27
  * Expandable tile.
@@ -30,15 +31,7 @@ import styles from "././tile.css.js";
30
31
  * The custom event fired before the expanded state is changed upon a user gesture.
31
32
  * Cancellation of this event stops changing the user-initiated change in expanded state.
32
33
  * @fires cds-expandable-tile-toggled - The custom event fired after a the expanded state is changed upon a user gesture.
33
- */ /**
34
- * Expandable tile.
35
- *
36
- * @element cds-expandable-tile
37
- * @fires cds-expandable-tile-beingtoggled
38
- * The custom event fired before the expanded state is changed upon a user gesture.
39
- * Cancellation of this event stops changing the user-initiated change in expanded state.
40
- * @fires cds-expandable-tile-toggled - The custom event fired after a the expanded state is changed upon a user gesture.
41
- */
34
+ */
42
35
  let BXExpandableTile = _decorate([customElement(`${prefix}-expandable-tile`)], function (_initialize, _HostListenerMixin) {
43
36
  class BXExpandableTile extends _HostListenerMixin {
44
37
  constructor(...args) {
@@ -74,28 +67,37 @@ let BXExpandableTile = _decorate([customElement(`${prefix}-expandable-tile`)], f
74
67
  }, 0);
75
68
  this.requestUpdate();
76
69
  }
70
+ }, {
71
+ kind: "method",
72
+ key: "_handleExpand",
73
+ value: function _handleExpand() {
74
+ const expanded = !this.expanded;
75
+ this.focus();
76
+ const init = {
77
+ bubbles: true,
78
+ composed: true,
79
+ detail: {
80
+ expanded
81
+ }
82
+ };
83
+ const constructor = this.constructor;
84
+ const beforeChangeEvent = new CustomEvent(constructor.eventBeforeToggle, _objectSpread(_objectSpread({}, init), {}, {
85
+ cancelable: true
86
+ }));
87
+ if (this.dispatchEvent(beforeChangeEvent)) {
88
+ this.expanded = expanded;
89
+ const afterChangeEvent = new CustomEvent(constructor.eventToggle, init);
90
+ this.dispatchEvent(afterChangeEvent);
91
+ }
92
+ }
77
93
  }, {
78
94
  kind: "field",
79
95
  decorators: [HostListener('click')],
80
96
  key: "_handleClick",
81
97
  value() {
82
98
  return () => {
83
- const expanded = !this.expanded;
84
- const init = {
85
- bubbles: true,
86
- composed: true,
87
- detail: {
88
- expanded
89
- }
90
- };
91
- const constructor = this.constructor;
92
- const beforeChangeEvent = new CustomEvent(constructor.eventBeforeToggle, _objectSpread(_objectSpread({}, init), {}, {
93
- cancelable: true
94
- }));
95
- if (this.dispatchEvent(beforeChangeEvent)) {
96
- this.expanded = expanded;
97
- const afterChangeEvent = new CustomEvent(constructor.eventToggle, init);
98
- this.dispatchEvent(afterChangeEvent);
99
+ if (!this.withInteractive) {
100
+ this._handleExpand();
99
101
  }
100
102
  };
101
103
  }
@@ -119,6 +121,17 @@ let BXExpandableTile = _decorate([customElement(`${prefix}-expandable-tile`)], f
119
121
  value() {
120
122
  return false;
121
123
  }
124
+ }, {
125
+ kind: "field",
126
+ decorators: [property({
127
+ type: Boolean,
128
+ reflect: true,
129
+ attribute: 'with-interactive'
130
+ })],
131
+ key: "withInteractive",
132
+ value() {
133
+ return false;
134
+ }
122
135
  }, {
123
136
  kind: "method",
124
137
  key: "render",
@@ -129,17 +142,27 @@ let BXExpandableTile = _decorate([customElement(`${prefix}-expandable-tile`)], f
129
142
  /**
130
143
  * `true` to expand this expandable tile.
131
144
  */
145
+ /**
146
+ * `true` to expand this expandable tile.
147
+ */
132
148
  function render() {
133
149
  const {
134
150
  expanded,
151
+ withInteractive,
135
152
  _belowTheContentHeight: belowTheContentHeight,
136
153
  _handleSlotChangeBelowTheFoldContent: handleSlotChangeBelowTheFoldContent
137
154
  } = this;
155
+ const classes = classMap({
156
+ [`${prefix}--tile__chevron`]: true,
157
+ [`${prefix}--tile__chevron--interactive`]: withInteractive
158
+ });
138
159
  return html(_t || (_t = _`
139
160
  <button
140
- class="${0}--tile__chevron"
161
+ class="${0}"
141
162
  aria-labelledby="above-the-fold-content"
142
163
  aria-controls="below-the-fold-content"
164
+ tabindex="0"
165
+ @click="${0}"
143
166
  aria-expanded="${0}">
144
167
  ${0}
145
168
  </button>
@@ -151,7 +174,7 @@ let BXExpandableTile = _decorate([customElement(`${prefix}-expandable-tile`)], f
151
174
  <slot @slotchange="${0}"></slot>
152
175
  </div>
153
176
  </div>
154
- `), prefix, String(Boolean(expanded)), ChevronDown16({
177
+ `), classes, withInteractive ? this._handleExpand : '', String(Boolean(expanded)), ChevronDown16({
155
178
  id: 'icon'
156
179
  }), prefix, prefix, ifDefined(!expanded ? undefined : `max-height: ${belowTheContentHeight}px`), handleSlotChangeBelowTheFoldContent);
157
180
  }
@@ -178,15 +201,6 @@ let BXExpandableTile = _decorate([customElement(`${prefix}-expandable-tile`)], f
178
201
  value: function eventToggle() {
179
202
  return `${prefix}-expandable-tile-toggled`;
180
203
  }
181
- }, {
182
- kind: "field",
183
- static: true,
184
- key: "shadowRootOptions",
185
- value() {
186
- return _objectSpread(_objectSpread({}, LitElement.shadowRootOptions), {}, {
187
- delegatesFocus: true
188
- });
189
- }
190
204
  }, {
191
205
  kind: "field",
192
206
  static: true,
@@ -1 +1 @@
1
- {"version":3,"file":"expandable-tile.js","names":["LitElement","html","property","customElement","ifDefined","ChevronDown16","prefix","HostListener","FocusMixin","HostListenerMixin","TILE_COLOR_SCHEME","styles","BXExpandableTile","_decorate","_initialize","_HostListenerMixin","constructor","args","F","d","kind","key","value","_handleSlotChangeBelowTheFoldContent","event","_belowTheContentHeight","target","assignedNodes","reduce","acc","item","_offsetHeight","offsetHeight","requestUpdate","decorators","expanded","init","bubbles","composed","detail","beforeChangeEvent","CustomEvent","eventBeforeToggle","_objectSpread","cancelable","dispatchEvent","afterChangeEvent","eventToggle","attribute","reflect","REGULAR","type","Boolean","render","belowTheContentHeight","handleSlotChangeBelowTheFoldContent","_t","_","String","id","undefined","static","shadowRootOptions","delegatesFocus"],"sources":["components/tile/expandable-tile.ts"],"sourcesContent":["/**\n * @license\n *\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, customElement } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport ChevronDown16 from '@carbon/icons/lib/chevron--down/16';\nimport { prefix } from '../../globals/settings';\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';\n\n/**\n * Expandable tile.\n *\n * @element cds-expandable-tile\n * @fires cds-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-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 BXExpandableTile extends HostListenerMixin(FocusMixin(LitElement)) {\n /**\n * The computed height of the below-the-fold content.\n */\n private _belowTheContentHeight = 0;\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 this.requestUpdate();\n }\n\n @HostListener('click')\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleClick = () => {\n const expanded = !this.expanded;\n const init = {\n bubbles: true,\n composed: true,\n detail: {\n expanded,\n },\n };\n const constructor = this.constructor as typeof BXExpandableTile;\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 /**\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 render() {\n const {\n expanded,\n _belowTheContentHeight: belowTheContentHeight,\n _handleSlotChangeBelowTheFoldContent: handleSlotChangeBelowTheFoldContent,\n } = this;\n return html`\n <button\n class=\"${prefix}--tile__chevron\"\n aria-labelledby=\"above-the-fold-content\"\n aria-controls=\"below-the-fold-content\"\n aria-expanded=\"${String(Boolean(expanded))}\">\n ${ChevronDown16({\n id: 'icon',\n })}\n </button>\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 * 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 shadowRootOptions = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n static styles = styles; // `styles` here is a `CSSResult` generated by custom WebPack loader\n}\n\nexport default BXExpandableTile;\n"],"mappings":"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"}
1
+ {"version":3,"file":"expandable-tile.js","names":["LitElement","html","property","customElement","ifDefined","ChevronDown16","prefix","HostListener","FocusMixin","HostListenerMixin","TILE_COLOR_SCHEME","styles","classMap","BXExpandableTile","_decorate","_initialize","_HostListenerMixin","constructor","args","F","d","kind","key","value","_handleSlotChangeBelowTheFoldContent","event","_belowTheContentHeight","target","assignedNodes","reduce","acc","item","_offsetHeight","offsetHeight","requestUpdate","_handleExpand","expanded","focus","init","bubbles","composed","detail","beforeChangeEvent","CustomEvent","eventBeforeToggle","_objectSpread","cancelable","dispatchEvent","afterChangeEvent","eventToggle","decorators","withInteractive","attribute","reflect","REGULAR","type","Boolean","render","belowTheContentHeight","handleSlotChangeBelowTheFoldContent","classes","_t","_","String","id","undefined","static"],"sources":["components/tile/expandable-tile.ts"],"sourcesContent":["/**\n * @license\n *\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, customElement } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport ChevronDown16 from '@carbon/icons/lib/chevron--down/16';\nimport { prefix } from '../../globals/settings';\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';\nimport { classMap } from 'lit/directives/class-map';\n\n/**\n * Expandable tile.\n *\n * @element cds-expandable-tile\n * @fires cds-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-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 BXExpandableTile extends HostListenerMixin(FocusMixin(LitElement)) {\n /**\n * The computed height of the below-the-fold content.\n */\n private _belowTheContentHeight = 0;\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 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 BXExpandableTile;\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 // @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 * `true` to expand this expandable tile.\n */\n @property({ type: Boolean, reflect: true, attribute: 'with-interactive' })\n withInteractive = false;\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 ${ChevronDown16({\n id: 'icon',\n })}\n </button>\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 * 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; // `styles` here is a `CSSResult` generated by custom WebPack loader\n}\n\nexport default BXExpandableTile;\n"],"mappings":"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"}
@@ -7,358 +7,26 @@
7
7
  * LICENSE file in the root directory of this source tree.
8
8
  */
9
9
  import SelectableTile from './selectable-tile';
10
- declare const BXRadioTile_base: {
11
- new (...args: any[]): {
12
- _handles: Set<import("../../globals/internal/handle").default>;
13
- connectedCallback(): void;
14
- disconnectedCallback(): void;
15
- accessKey: string;
16
- readonly accessKeyLabel: string;
17
- autocapitalize: string;
18
- dir: string;
19
- draggable: boolean;
20
- hidden: boolean;
21
- inert: boolean;
22
- innerText: string;
23
- lang: string;
24
- readonly offsetHeight: number;
25
- readonly offsetLeft: number;
26
- readonly offsetParent: Element | null;
27
- readonly offsetTop: number;
28
- readonly offsetWidth: number;
29
- outerText: string;
30
- spellcheck: boolean;
31
- title: string;
32
- translate: boolean;
33
- attachInternals(): ElementInternals;
34
- click(): void;
35
- addEventListener<K extends keyof HTMLElementEventMap>(type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => any, options?: boolean | AddEventListenerOptions | undefined): void;
36
- addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions | undefined): void;
37
- removeEventListener<K_1 extends keyof HTMLElementEventMap>(type: K_1, listener: (this: HTMLElement, ev: HTMLElementEventMap[K_1]) => any, options?: boolean | EventListenerOptions | undefined): void;
38
- removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions | undefined): void;
39
- readonly attributes: NamedNodeMap;
40
- readonly classList: DOMTokenList;
41
- className: string;
42
- readonly clientHeight: number;
43
- readonly clientLeft: number;
44
- readonly clientTop: number;
45
- readonly clientWidth: number;
46
- id: string;
47
- readonly localName: string;
48
- readonly namespaceURI: string | null;
49
- onfullscreenchange: ((this: Element, ev: Event) => any) | null;
50
- onfullscreenerror: ((this: Element, ev: Event) => any) | null;
51
- outerHTML: string;
52
- readonly ownerDocument: Document;
53
- readonly part: DOMTokenList;
54
- readonly prefix: string | null;
55
- readonly scrollHeight: number;
56
- scrollLeft: number;
57
- scrollTop: number;
58
- readonly scrollWidth: number;
59
- readonly shadowRoot: ShadowRoot | null;
60
- slot: string;
61
- readonly tagName: string;
62
- attachShadow(init: ShadowRootInit): ShadowRoot;
63
- closest<K_2 extends keyof HTMLElementTagNameMap>(selector: K_2): HTMLElementTagNameMap[K_2] | null;
64
- closest<K_3 extends keyof SVGElementTagNameMap>(selector: K_3): SVGElementTagNameMap[K_3] | null;
65
- closest<E extends Element = Element>(selectors: string): E | null;
66
- getAttribute(qualifiedName: string): string | null;
67
- getAttributeNS(namespace: string | null, localName: string): string | null;
68
- getAttributeNames(): string[];
69
- getAttributeNode(qualifiedName: string): Attr | null;
70
- getAttributeNodeNS(namespace: string | null, localName: string): Attr | null;
71
- getBoundingClientRect(): DOMRect;
72
- getClientRects(): DOMRectList;
73
- getElementsByClassName(classNames: string): HTMLCollectionOf<Element>;
74
- getElementsByTagName<K_4 extends keyof HTMLElementTagNameMap>(qualifiedName: K_4): HTMLCollectionOf<HTMLElementTagNameMap[K_4]>;
75
- getElementsByTagName<K_5 extends keyof SVGElementTagNameMap>(qualifiedName: K_5): HTMLCollectionOf<SVGElementTagNameMap[K_5]>;
76
- getElementsByTagName(qualifiedName: string): HTMLCollectionOf<Element>;
77
- getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1999/xhtml", localName: string): HTMLCollectionOf<HTMLElement>;
78
- getElementsByTagNameNS(namespaceURI: "http://www.w3.org/2000/svg", localName: string): HTMLCollectionOf<SVGElement>;
79
- getElementsByTagNameNS(namespace: string | null, localName: string): HTMLCollectionOf<Element>;
80
- hasAttribute(qualifiedName: string): boolean;
81
- hasAttributeNS(namespace: string | null, localName: string): boolean;
82
- hasAttributes(): boolean;
83
- hasPointerCapture(pointerId: number): boolean;
84
- insertAdjacentElement(where: InsertPosition, element: Element): Element | null;
85
- insertAdjacentHTML(position: InsertPosition, text: string): void;
86
- insertAdjacentText(where: InsertPosition, data: string): void;
87
- matches(selectors: string): boolean;
88
- releasePointerCapture(pointerId: number): void;
89
- removeAttribute(qualifiedName: string): void;
90
- removeAttributeNS(namespace: string | null, localName: string): void;
91
- removeAttributeNode(attr: Attr): Attr;
92
- requestFullscreen(options?: FullscreenOptions | undefined): Promise<void>;
93
- requestPointerLock(): void;
94
- scroll(options?: ScrollToOptions | undefined): void;
95
- scroll(x: number, y: number): void;
96
- scrollBy(options?: ScrollToOptions | undefined): void;
97
- scrollBy(x: number, y: number): void;
98
- scrollIntoView(arg?: boolean | ScrollIntoViewOptions | undefined): void;
99
- scrollTo(options?: ScrollToOptions | undefined): void;
100
- scrollTo(x: number, y: number): void;
101
- setAttribute(qualifiedName: string, value: string): void;
102
- setAttributeNS(namespace: string | null, qualifiedName: string, value: string): void;
103
- setAttributeNode(attr: Attr): Attr | null;
104
- setAttributeNodeNS(attr: Attr): Attr | null;
105
- setPointerCapture(pointerId: number): void;
106
- toggleAttribute(qualifiedName: string, force?: boolean | undefined): boolean;
107
- webkitMatchesSelector(selectors: string): boolean;
108
- readonly baseURI: string;
109
- readonly childNodes: NodeListOf<ChildNode>;
110
- readonly firstChild: ChildNode | null;
111
- readonly isConnected: boolean;
112
- readonly lastChild: ChildNode | null;
113
- readonly nextSibling: ChildNode | null;
114
- readonly nodeName: string;
115
- readonly nodeType: number;
116
- nodeValue: string | null;
117
- readonly parentElement: HTMLElement | null;
118
- readonly parentNode: ParentNode | null;
119
- readonly previousSibling: ChildNode | null;
120
- textContent: string | null;
121
- appendChild<T extends Node>(node: T): T;
122
- cloneNode(deep?: boolean | undefined): Node;
123
- compareDocumentPosition(other: Node): number;
124
- contains(other: Node | null): boolean;
125
- getRootNode(options?: GetRootNodeOptions | undefined): Node;
126
- hasChildNodes(): boolean;
127
- insertBefore<T_1 extends Node>(node: T_1, child: Node | null): T_1;
128
- isDefaultNamespace(namespace: string | null): boolean;
129
- isEqualNode(otherNode: Node | null): boolean;
130
- isSameNode(otherNode: Node | null): boolean;
131
- lookupNamespaceURI(prefix: string | null): string | null;
132
- lookupPrefix(namespace: string | null): string | null;
133
- normalize(): void;
134
- removeChild<T_2 extends Node>(child: T_2): T_2;
135
- replaceChild<T_3 extends Node>(node: Node, child: T_3): T_3;
136
- readonly ATTRIBUTE_NODE: number;
137
- readonly CDATA_SECTION_NODE: number;
138
- readonly COMMENT_NODE: number;
139
- readonly DOCUMENT_FRAGMENT_NODE: number;
140
- readonly DOCUMENT_NODE: number;
141
- readonly DOCUMENT_POSITION_CONTAINED_BY: number;
142
- readonly DOCUMENT_POSITION_CONTAINS: number;
143
- readonly DOCUMENT_POSITION_DISCONNECTED: number;
144
- readonly DOCUMENT_POSITION_FOLLOWING: number;
145
- readonly DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: number;
146
- readonly DOCUMENT_POSITION_PRECEDING: number;
147
- readonly DOCUMENT_TYPE_NODE: number;
148
- readonly ELEMENT_NODE: number;
149
- readonly ENTITY_NODE: number;
150
- readonly ENTITY_REFERENCE_NODE: number;
151
- readonly NOTATION_NODE: number;
152
- readonly PROCESSING_INSTRUCTION_NODE: number;
153
- readonly TEXT_NODE: number;
154
- dispatchEvent(event: Event): boolean;
155
- ariaAtomic: string | null;
156
- ariaAutoComplete: string | null;
157
- ariaBusy: string | null;
158
- ariaChecked: string | null;
159
- ariaColCount: string | null;
160
- ariaColIndex: string | null;
161
- ariaColSpan: string | null;
162
- ariaCurrent: string | null;
163
- ariaDisabled: string | null;
164
- ariaExpanded: string | null;
165
- ariaHasPopup: string | null;
166
- ariaHidden: string | null;
167
- ariaKeyShortcuts: string | null;
168
- ariaLabel: string | null;
169
- ariaLevel: string | null;
170
- ariaLive: string | null;
171
- ariaModal: string | null;
172
- ariaMultiLine: string | null;
173
- ariaMultiSelectable: string | null;
174
- ariaOrientation: string | null;
175
- ariaPlaceholder: string | null;
176
- ariaPosInSet: string | null;
177
- ariaPressed: string | null;
178
- ariaReadOnly: string | null;
179
- ariaRequired: string | null;
180
- ariaRoleDescription: string | null;
181
- ariaRowCount: string | null;
182
- ariaRowIndex: string | null;
183
- ariaRowSpan: string | null;
184
- ariaSelected: string | null;
185
- ariaSetSize: string | null;
186
- ariaSort: string | null;
187
- ariaValueMax: string | null;
188
- ariaValueMin: string | null;
189
- ariaValueNow: string | null;
190
- ariaValueText: string | null;
191
- animate(keyframes: Keyframe[] | PropertyIndexedKeyframes | null, options?: number | KeyframeAnimationOptions | undefined): Animation;
192
- getAnimations(options?: GetAnimationsOptions | undefined): Animation[];
193
- after(...nodes: (string | Node)[]): void;
194
- before(...nodes: (string | Node)[]): void;
195
- remove(): void;
196
- replaceWith(...nodes: (string | Node)[]): void;
197
- innerHTML: string;
198
- readonly nextElementSibling: Element | null;
199
- readonly previousElementSibling: Element | null;
200
- readonly childElementCount: number;
201
- readonly children: HTMLCollection;
202
- readonly firstElementChild: Element | null;
203
- readonly lastElementChild: Element | null;
204
- append(...nodes: (string | Node)[]): void;
205
- prepend(...nodes: (string | Node)[]): void;
206
- querySelector<K_6 extends keyof HTMLElementTagNameMap>(selectors: K_6): HTMLElementTagNameMap[K_6] | null;
207
- querySelector<K_7 extends keyof SVGElementTagNameMap>(selectors: K_7): SVGElementTagNameMap[K_7] | null;
208
- querySelector<E_1 extends Element = Element>(selectors: string): E_1 | null;
209
- querySelectorAll<K_8 extends keyof HTMLElementTagNameMap>(selectors: K_8): NodeListOf<HTMLElementTagNameMap[K_8]>;
210
- querySelectorAll<K_9 extends keyof SVGElementTagNameMap>(selectors: K_9): NodeListOf<SVGElementTagNameMap[K_9]>;
211
- querySelectorAll<E_2 extends Element = Element>(selectors: string): NodeListOf<E_2>;
212
- replaceChildren(...nodes: (string | Node)[]): void;
213
- readonly assignedSlot: HTMLSlotElement | null;
214
- oncopy: ((this: DocumentAndElementEventHandlers, ev: ClipboardEvent) => any) | null;
215
- oncut: ((this: DocumentAndElementEventHandlers, ev: ClipboardEvent) => any) | null;
216
- onpaste: ((this: DocumentAndElementEventHandlers, ev: ClipboardEvent) => any) | null;
217
- readonly style: CSSStyleDeclaration;
218
- contentEditable: string;
219
- enterKeyHint: string;
220
- inputMode: string;
221
- readonly isContentEditable: boolean;
222
- onabort: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null;
223
- onanimationcancel: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
224
- onanimationend: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
225
- onanimationiteration: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
226
- onanimationstart: ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null;
227
- onauxclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
228
- onblur: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null;
229
- oncanplay: ((this: GlobalEventHandlers, ev: Event) => any) | null;
230
- oncanplaythrough: ((this: GlobalEventHandlers, ev: Event) => any) | null;
231
- onchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
232
- onclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
233
- onclose: ((this: GlobalEventHandlers, ev: Event) => any) | null;
234
- oncontextmenu: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
235
- oncuechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
236
- ondblclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
237
- ondrag: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
238
- ondragend: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
239
- ondragenter: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
240
- ondragleave: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
241
- ondragover: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
242
- ondragstart: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
243
- ondrop: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null;
244
- ondurationchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
245
- onemptied: ((this: GlobalEventHandlers, ev: Event) => any) | null;
246
- onended: ((this: GlobalEventHandlers, ev: Event) => any) | null;
247
- onerror: OnErrorEventHandler;
248
- onfocus: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null;
249
- onformdata: ((this: GlobalEventHandlers, ev: FormDataEvent) => any) | null;
250
- ongotpointercapture: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
251
- oninput: ((this: GlobalEventHandlers, ev: Event) => any) | null;
252
- oninvalid: ((this: GlobalEventHandlers, ev: Event) => any) | null;
253
- onkeydown: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;
254
- onkeypress: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;
255
- onkeyup: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null;
256
- onload: ((this: GlobalEventHandlers, ev: Event) => any) | null;
257
- onloadeddata: ((this: GlobalEventHandlers, ev: Event) => any) | null;
258
- onloadedmetadata: ((this: GlobalEventHandlers, ev: Event) => any) | null;
259
- onloadstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;
260
- onlostpointercapture: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
261
- onmousedown: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
262
- onmouseenter: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
263
- onmouseleave: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
264
- onmousemove: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
265
- onmouseout: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
266
- onmouseover: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
267
- onmouseup: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null;
268
- onpause: ((this: GlobalEventHandlers, ev: Event) => any) | null;
269
- onplay: ((this: GlobalEventHandlers, ev: Event) => any) | null;
270
- onplaying: ((this: GlobalEventHandlers, ev: Event) => any) | null;
271
- onpointercancel: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
272
- onpointerdown: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
273
- onpointerenter: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
274
- onpointerleave: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
275
- onpointermove: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
276
- onpointerout: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
277
- onpointerover: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
278
- onpointerup: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null;
279
- onprogress: ((this: GlobalEventHandlers, ev: ProgressEvent<EventTarget>) => any) | null;
280
- onratechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
281
- onreset: ((this: GlobalEventHandlers, ev: Event) => any) | null;
282
- onresize: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null;
283
- onscroll: ((this: GlobalEventHandlers, ev: Event) => any) | null;
284
- onsecuritypolicyviolation: ((this: GlobalEventHandlers, ev: SecurityPolicyViolationEvent) => any) | null;
285
- onseeked: ((this: GlobalEventHandlers, ev: Event) => any) | null;
286
- onseeking: ((this: GlobalEventHandlers, ev: Event) => any) | null;
287
- onselect: ((this: GlobalEventHandlers, ev: Event) => any) | null;
288
- onselectionchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
289
- onselectstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;
290
- onslotchange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
291
- onstalled: ((this: GlobalEventHandlers, ev: Event) => any) | null;
292
- onsubmit: ((this: GlobalEventHandlers, ev: SubmitEvent) => any) | null;
293
- onsuspend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
294
- ontimeupdate: ((this: GlobalEventHandlers, ev: Event) => any) | null;
295
- ontoggle: ((this: GlobalEventHandlers, ev: Event) => any) | null;
296
- ontouchcancel?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
297
- ontouchend?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
298
- ontouchmove?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
299
- ontouchstart?: ((this: GlobalEventHandlers, ev: TouchEvent) => any) | null | undefined;
300
- ontransitioncancel: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
301
- ontransitionend: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
302
- ontransitionrun: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
303
- ontransitionstart: ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null;
304
- onvolumechange: ((this: GlobalEventHandlers, ev: Event) => any) | null;
305
- onwaiting: ((this: GlobalEventHandlers, ev: Event) => any) | null;
306
- onwebkitanimationend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
307
- onwebkitanimationiteration: ((this: GlobalEventHandlers, ev: Event) => any) | null;
308
- onwebkitanimationstart: ((this: GlobalEventHandlers, ev: Event) => any) | null;
309
- onwebkittransitionend: ((this: GlobalEventHandlers, ev: Event) => any) | null;
310
- onwheel: ((this: GlobalEventHandlers, ev: WheelEvent) => any) | null;
311
- autofocus: boolean;
312
- readonly dataset: DOMStringMap;
313
- nonce?: string | undefined;
314
- tabIndex: number;
315
- blur(): void;
316
- focus(options?: FocusOptions | undefined): void;
317
- };
318
- _hostListeners: {
319
- [listenerName: string]: {
320
- [type: string]: {
321
- options?: boolean | AddEventListenerOptions | undefined;
322
- };
323
- };
324
- };
325
- } & typeof SelectableTile;
326
10
  /**
327
11
  * Single-selectable tile.
328
12
  *
329
13
  * @element cds-radio-tile
330
14
  */
331
- declare class BXRadioTile extends BXRadioTile_base {
332
- /**
333
- * The radio group manager associated with the radio button.
334
- */
335
- private _manager;
15
+ declare class CDSRadioTile extends SelectableTile {
336
16
  /**
337
17
  * The `type` attribute of the `<input>`.
338
18
  */
339
19
  protected _inputType: string;
340
- /**
341
- * Attaches the radio button to the radio group manager.
342
- */
343
- private _attachManager;
344
- /**
345
- * Detaches the radio button to the radio group manager.
346
- */
347
- private _detachManager;
348
- /**
349
- * Handles `keydown` event on this element.
350
- */
351
- private _handleKeydown;
352
20
  /**
353
21
  * Handles `change` event on the `<input>` in the shadow DOM.
354
22
  */
355
23
  protected _handleChange(): void;
356
- connectedCallback(): void;
357
- disconnectedCallback(): void;
358
- shouldUpdate(changedProperties: any): boolean;
359
- updated(changedProperties: any): void;
360
24
  render(): import("lit-html").TemplateResult<1>;
25
+ /**
26
+ * The name of the custom event fired after this selectable tile changes its selected state.
27
+ */
28
+ static get eventRadioChange(): string;
361
29
  }
362
- export default BXRadioTile;
30
+ export default CDSRadioTile;
363
31
 
364
32
  //# sourceMappingURL=radio-tile.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"sources":["components/tile/radio-tile.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAYH,OAAO,cAAc,MAAM,mBAAmB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAa/C;;;;GAIG;AACH,cACM,WAAY,SAAQ,gBAAiC;IACzD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAqB;IAErC;;OAEG;IACH,SAAS,CAAC,UAAU,SAAW;IAE/B;;OAEG;IACH,OAAO,CAAC,cAAc;IAYtB;;OAEG;IACH,OAAO,CAAC,cAAc;IAOtB;;OAEG;IAGH,OAAO,CAAC,cAAc,CAapB;IAEF;;OAEG;IACH,SAAS,CAAC,aAAa;IAOvB,iBAAiB;IAKjB,oBAAoB;IAKpB,YAAY,CAAC,iBAAiB,KAAA;IAO9B,OAAO,CAAC,iBAAiB,KAAA;IAMzB,MAAM;CAsCP;AAED,eAAe,WAAW,CAAC","file":"radio-tile.d.ts","sourcesContent":["/**\n * @license\n *\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 { html, svg } from 'lit';\nimport { classMap } from 'lit-html/directives/class-map';\nimport { ifDefined } from 'lit/directives/if-defined';\nimport { customElement } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport HostListener from '../../globals/decorators/host-listener';\nimport HostListenerMixin from '../../globals/mixins/host-listener';\nimport RadioGroupManager, {\n NAVIGATION_DIRECTION,\n} from '../../globals/internal/radio-group-manager';\nimport SelectableTile from './selectable-tile';\nimport CheckmarkFilled16 from '@carbon/icons/lib/checkmark--filled/16';\n\n/**\n * Map of navigation direction by key.\n */\nconst navigationDirectionForKey = {\n ArrowUp: NAVIGATION_DIRECTION.BACKWARD,\n Up: NAVIGATION_DIRECTION.BACKWARD, // IE\n ArrowDown: NAVIGATION_DIRECTION.FORWARD,\n Down: NAVIGATION_DIRECTION.FORWARD, // IE\n};\n\n/**\n * Single-selectable tile.\n *\n * @element cds-radio-tile\n */\n@customElement(`${prefix}-radio-tile`)\nclass BXRadioTile extends HostListenerMixin(SelectableTile) {\n /**\n * The radio group manager associated with the radio button.\n */\n private _manager!: RadioGroupManager;\n\n /**\n * The `type` attribute of the `<input>`.\n */\n protected _inputType = 'radio';\n\n /**\n * Attaches the radio button to the radio group manager.\n */\n private _attachManager() {\n if (!this._manager) {\n this._manager = RadioGroupManager.get(\n this.getRootNode({ composed: true }) as Document\n );\n }\n const { name, _inputNode: inputNode, _manager: manager } = this;\n if (inputNode && name) {\n manager!.add(inputNode);\n }\n }\n\n /**\n * Detaches the radio button to the radio group manager.\n */\n private _detachManager() {\n const { _inputNode: inputNode, _manager: manager } = this;\n if (inputNode && manager) {\n manager.delete(inputNode);\n }\n }\n\n /**\n * Handles `keydown` event on this element.\n */\n @HostListener('keydown')\n // @ts-ignore: The decorator refers to this method but TS thinks this method is not referred to\n private _handleKeydown = (event: KeyboardEvent) => {\n const { _inputNode: inputNode } = this;\n const manager = this._manager;\n if (inputNode && manager) {\n const navigationDirection = navigationDirectionForKey[event.key];\n if (navigationDirection) {\n manager.select(manager.navigate(inputNode, navigationDirection));\n event.preventDefault(); // Prevent default (scrolling) behavior\n }\n if (event.key === ' ' || event.key === 'Enter') {\n manager.select(inputNode);\n }\n }\n };\n\n /**\n * Handles `change` event on the `<input>` in the shadow DOM.\n */\n protected _handleChange() {\n super._handleChange();\n if (this._manager) {\n this._manager.select(this._inputNode);\n }\n }\n\n connectedCallback() {\n super.connectedCallback();\n this._attachManager();\n }\n\n disconnectedCallback() {\n this._detachManager();\n super.disconnectedCallback();\n }\n\n shouldUpdate(changedProperties) {\n if (changedProperties.has('name')) {\n this._detachManager();\n }\n return true;\n }\n\n updated(changedProperties) {\n if (changedProperties.has('name')) {\n this._attachManager();\n }\n }\n\n render() {\n const {\n colorScheme,\n checkmarkLabel,\n name,\n selected,\n value,\n _inputType: inputType,\n _handleChange: handleChange,\n } = this;\n const classes = classMap({\n [`${prefix}--tile`]: true,\n [`${prefix}--tile--selectable`]: true,\n [`${prefix}--tile--is-selected`]: selected,\n [`${prefix}--tile--${colorScheme}`]: colorScheme,\n });\n return html`\n <input\n type=\"${inputType}\"\n id=\"input\"\n class=\"${prefix}--tile-input\"\n tabindex=\"-1\"\n name=\"${ifDefined(name)}\"\n value=\"${ifDefined(value)}\"\n .checked=${selected}\n @change=${handleChange} />\n <label for=\"input\" class=\"${classes}\" tabindex=\"0\">\n <div class=\"${prefix}--tile__checkmark\">\n ${CheckmarkFilled16({\n children: !checkmarkLabel\n ? undefined\n : svg`<title>${checkmarkLabel}</title>`,\n })}\n </div>\n <div class=\"${prefix}--tile-content\"><slot></slot></div>\n </label>\n `;\n }\n}\n\nexport default BXRadioTile;\n"]}
1
+ {"version":3,"sources":["components/tile/radio-tile.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,OAAO,cAAc,MAAM,mBAAmB,CAAC;AAG/C;;;;GAIG;AACH,cACM,YAAa,SAAQ,cAAc;IACvC;;OAEG;IACH,SAAS,CAAC,UAAU,SAAW;IAE/B;;OAEG;IACH,SAAS,CAAC,aAAa;IAgBvB,MAAM;IAuCN;;OAEG;IACH,MAAM,KAAK,gBAAgB,WAE1B;CACF;AAED,eAAe,YAAY,CAAC","file":"radio-tile.d.ts","sourcesContent":["/**\n * @license\n *\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 { html, svg } from 'lit';\nimport { classMap } from 'lit-html/directives/class-map';\nimport { ifDefined } from 'lit/directives/if-defined';\nimport { customElement } from 'lit/decorators.js';\nimport { prefix } from '../../globals/settings';\nimport SelectableTile from './selectable-tile';\nimport CheckmarkFilled16 from '@carbon/icons/lib/checkmark--filled/16';\n\n/**\n * Single-selectable tile.\n *\n * @element cds-radio-tile\n */\n@customElement(`${prefix}-radio-tile`)\nclass CDSRadioTile extends SelectableTile {\n /**\n * The `type` attribute of the `<input>`.\n */\n protected _inputType = 'radio';\n\n /**\n * Handles `change` event on the `<input>` in the shadow DOM.\n */\n protected _handleChange() {\n this.selected = true;\n const { selected, name } = this;\n const { eventRadioChange } = this.constructor as typeof CDSRadioTile;\n this.dispatchEvent(\n new CustomEvent(eventRadioChange, {\n bubbles: true,\n composed: true,\n detail: {\n selected,\n name,\n },\n })\n );\n }\n\n render() {\n const {\n colorScheme,\n checkmarkLabel,\n name,\n selected,\n value,\n _inputType: inputType,\n _handleChange: handleChange,\n } = this;\n const classes = classMap({\n [`${prefix}--tile`]: true,\n [`${prefix}--tile--selectable`]: true,\n [`${prefix}--tile--is-selected`]: selected,\n [`${prefix}--tile--${colorScheme}`]: colorScheme,\n });\n return html`\n <input\n type=\"${inputType}\"\n id=\"input\"\n class=\"${prefix}--tile-input\"\n tabindex=\"-1\"\n name=\"${ifDefined(name)}\"\n value=\"${ifDefined(value)}\"\n .checked=${selected}\n @change=${handleChange} />\n <label for=\"input\" class=\"${classes}\" tabindex=\"0\">\n <div class=\"${prefix}--tile__checkmark\">\n ${CheckmarkFilled16({\n children: !checkmarkLabel\n ? undefined\n : svg`<title>${checkmarkLabel}</title>`,\n })}\n </div>\n <div class=\"${prefix}--tile-content\"><slot></slot></div>\n </label>\n `;\n }\n\n /**\n * The name of the custom event fired after this selectable tile changes its selected state.\n */\n static get eventRadioChange() {\n return `${prefix}-radio-tile-selected`;\n }\n}\n\nexport default CDSRadioTile;\n"]}