@carbon/react 1.16.0 → 1.17.0-rc.1

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 (71) hide show
  1. package/es/components/Checkbox/Checkbox.Skeleton.d.ts +18 -0
  2. package/es/components/Checkbox/Checkbox.Skeleton.js +1 -2
  3. package/es/components/Checkbox/Checkbox.d.ts +47 -0
  4. package/es/components/Checkbox/Checkbox.js +6 -7
  5. package/es/components/Checkbox/index.d.ts +10 -0
  6. package/es/components/Checkbox/index.js +10 -0
  7. package/es/components/ComposedModal/ComposedModal.js +4 -3
  8. package/es/components/DataTable/TableToolbarSearch.js +1 -1
  9. package/es/components/ExpandableSearch/ExpandableSearch.js +1 -1
  10. package/es/components/Grid/Grid.js +0 -5
  11. package/es/components/Modal/Modal.js +5 -4
  12. package/es/components/RadioButtonGroup/RadioButtonGroup.js +8 -2
  13. package/es/components/Search/Search.js +160 -184
  14. package/es/components/Search/index.js +2 -8
  15. package/es/components/Tab/index.js +1 -1
  16. package/es/components/Tabs/Tabs.Skeleton.js +6 -6
  17. package/es/components/Tabs/Tabs.js +582 -508
  18. package/es/components/Tabs/index.js +2 -12
  19. package/es/components/Tabs/{next/usePressable.js → usePressable.js} +1 -1
  20. package/es/components/Text/Text.d.ts +33 -0
  21. package/es/components/Text/Text.js +8 -5
  22. package/es/components/Text/TextDirection.d.ts +35 -0
  23. package/es/components/Text/TextDirectionContext.js +2 -0
  24. package/es/components/Text/createTextComponent.d.ts +18 -0
  25. package/es/components/Text/index.d.ts +18 -0
  26. package/es/components/Text/index.js +2 -0
  27. package/es/components/TextArea/TextArea.js +19 -2
  28. package/es/components/Tile/Tile.js +339 -502
  29. package/es/index.js +9 -9
  30. package/es/internal/usePrefix.d.ts +9 -0
  31. package/lib/components/Checkbox/Checkbox.Skeleton.d.ts +18 -0
  32. package/lib/components/Checkbox/Checkbox.Skeleton.js +1 -2
  33. package/lib/components/Checkbox/Checkbox.d.ts +47 -0
  34. package/lib/components/Checkbox/Checkbox.js +6 -7
  35. package/lib/components/Checkbox/index.d.ts +10 -0
  36. package/lib/components/Checkbox/index.js +18 -0
  37. package/lib/components/ComposedModal/ComposedModal.js +4 -3
  38. package/lib/components/DataTable/TableToolbarSearch.js +2 -2
  39. package/lib/components/ExpandableSearch/ExpandableSearch.js +3 -3
  40. package/lib/components/Grid/Grid.js +0 -5
  41. package/lib/components/Modal/Modal.js +5 -4
  42. package/lib/components/RadioButtonGroup/RadioButtonGroup.js +8 -2
  43. package/lib/components/Search/Search.js +159 -183
  44. package/lib/components/Search/index.js +2 -25
  45. package/lib/components/Tab/index.js +1 -1
  46. package/lib/components/Tabs/Tabs.Skeleton.js +6 -6
  47. package/lib/components/Tabs/Tabs.js +586 -507
  48. package/lib/components/Tabs/index.js +7 -33
  49. package/lib/components/Tabs/{next/usePressable.js → usePressable.js} +1 -1
  50. package/lib/components/Text/Text.d.ts +33 -0
  51. package/lib/components/Text/Text.js +8 -5
  52. package/lib/components/Text/TextDirection.d.ts +35 -0
  53. package/lib/components/Text/TextDirectionContext.js +2 -0
  54. package/lib/components/Text/createTextComponent.d.ts +18 -0
  55. package/lib/components/Text/index.d.ts +18 -0
  56. package/lib/components/Text/index.js +4 -0
  57. package/lib/components/TextArea/TextArea.js +18 -1
  58. package/lib/components/Tile/Tile.js +336 -499
  59. package/lib/index.js +76 -76
  60. package/lib/internal/usePrefix.d.ts +9 -0
  61. package/package.json +8 -4
  62. package/es/components/Search/next/Search.js +0 -265
  63. package/es/components/Tabs/next/Tabs.Skeleton.js +0 -53
  64. package/es/components/Tabs/next/Tabs.js +0 -692
  65. package/es/components/Tile/index.js +0 -19
  66. package/es/components/Tile/next/Tile.js +0 -604
  67. package/lib/components/Search/next/Search.js +0 -275
  68. package/lib/components/Tabs/next/Tabs.Skeleton.js +0 -63
  69. package/lib/components/Tabs/next/Tabs.js +0 -708
  70. package/lib/components/Tile/index.js +0 -48
  71. package/lib/components/Tile/next/Tile.js +0 -619
@@ -1,48 +0,0 @@
1
- /**
2
- * Copyright IBM Corp. 2016, 2022
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
- 'use strict';
9
-
10
- Object.defineProperty(exports, '__esModule', { value: true });
11
-
12
- var FeatureFlags = require('@carbon/feature-flags');
13
- var Tile$1 = require('./next/Tile.js');
14
- var Tile$2 = require('./Tile.js');
15
-
16
- function _interopNamespace(e) {
17
- if (e && e.__esModule) return e;
18
- var n = Object.create(null);
19
- if (e) {
20
- Object.keys(e).forEach(function (k) {
21
- if (k !== 'default') {
22
- var d = Object.getOwnPropertyDescriptor(e, k);
23
- Object.defineProperty(n, k, d.get ? d : {
24
- enumerable: true,
25
- get: function () { return e[k]; }
26
- });
27
- }
28
- });
29
- }
30
- n["default"] = e;
31
- return Object.freeze(n);
32
- }
33
-
34
- var FeatureFlags__namespace = /*#__PURE__*/_interopNamespace(FeatureFlags);
35
-
36
- var Tile = FeatureFlags__namespace.enabled('enable-v11-release') ? Tile$1.Tile : Tile$2.Tile;
37
- var ClickableTile = FeatureFlags__namespace.enabled('enable-v11-release') ? Tile$1.ClickableTile : Tile$2.ClickableTile;
38
- var SelectableTile = FeatureFlags__namespace.enabled('enable-v11-release') ? Tile$1.SelectableTile : Tile$2.SelectableTile;
39
- var ExpandableTile = FeatureFlags__namespace.enabled('enable-v11-release') ? Tile$1.ExpandableTile : Tile$2.ExpandableTile;
40
- var TileAboveTheFoldContent = FeatureFlags__namespace.enabled('enable-v11-release') ? Tile$1.TileAboveTheFoldContent : Tile$2.TileAboveTheFoldContent;
41
- var TileBelowTheFoldContent = FeatureFlags__namespace.enabled('enable-v11-release') ? Tile$1.TileBelowTheFoldContent : Tile$2.TileBelowTheFoldContent;
42
-
43
- exports.ClickableTile = ClickableTile;
44
- exports.ExpandableTile = ExpandableTile;
45
- exports.SelectableTile = SelectableTile;
46
- exports.Tile = Tile;
47
- exports.TileAboveTheFoldContent = TileAboveTheFoldContent;
48
- exports.TileBelowTheFoldContent = TileBelowTheFoldContent;
@@ -1,619 +0,0 @@
1
- /**
2
- * Copyright IBM Corp. 2016, 2022
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
- 'use strict';
9
-
10
- Object.defineProperty(exports, '__esModule', { value: true });
11
-
12
- var _rollupPluginBabelHelpers = require('../../../_virtual/_rollupPluginBabelHelpers.js');
13
- var React = require('react');
14
- var PropTypes = require('prop-types');
15
- var cx = require('classnames');
16
- var iconsReact = require('@carbon/icons-react');
17
- var Link = require('../../Link/Link.js');
18
- var deprecate = require('../../../prop-types/deprecate.js');
19
- var events = require('../../../tools/events.js');
20
- var usePrefix = require('../../../internal/usePrefix.js');
21
- var useIsomorphicEffect = require('../../../internal/useIsomorphicEffect.js');
22
- var useNoInteractiveChildren = require('../../../internal/useNoInteractiveChildren.js');
23
- var match = require('../../../internal/keyboard/match.js');
24
- var keys = require('../../../internal/keyboard/keys.js');
25
-
26
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
27
-
28
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
29
- var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
30
- var cx__default = /*#__PURE__*/_interopDefaultLegacy(cx);
31
-
32
- var _CheckboxCheckedFille, _Checkbox, _ChevronDown, _ChevronDown2;
33
-
34
- var _excluded = ["children", "className", "light"],
35
- _excluded2 = ["children", "className", "clicked", "href", "light", "onClick", "onKeyDown"],
36
- _excluded3 = ["children", "className", "disabled", "id", "light", "name", "onClick", "onChange", "onKeyDown", "selected", "tabIndex", "title", "value"],
37
- _excluded4 = ["tabIndex", "className", "children", "expanded", "tileMaxHeight", "tilePadding", "onClick", "onKeyUp", "tileCollapsedIconText", "tileExpandedIconText", "tileCollapsedLabel", "tileExpandedLabel", "light"];
38
- var Tile = /*#__PURE__*/React__default["default"].forwardRef(function Tile(_ref, ref) {
39
- var children = _ref.children,
40
- className = _ref.className,
41
- _ref$light = _ref.light,
42
- light = _ref$light === void 0 ? false : _ref$light,
43
- rest = _rollupPluginBabelHelpers.objectWithoutProperties(_ref, _excluded);
44
-
45
- var prefix = usePrefix.usePrefix();
46
- var tileClasses = cx__default["default"]("".concat(prefix, "--tile"), _rollupPluginBabelHelpers.defineProperty({}, "".concat(prefix, "--tile--light"), light), className);
47
- return /*#__PURE__*/React__default["default"].createElement("div", _rollupPluginBabelHelpers["extends"]({
48
- className: tileClasses,
49
- ref: ref
50
- }, rest), children);
51
- });
52
- Tile.displayName = 'Tile';
53
- Tile.propTypes = {
54
- /**
55
- * The child nodes.
56
- */
57
- children: PropTypes__default["default"].node,
58
-
59
- /**
60
- * The CSS class names.
61
- */
62
- className: PropTypes__default["default"].string,
63
-
64
- /**
65
- * `true` to use the light version. For use on $ui-01 backgrounds only.
66
- * Don't use this to make tile background color same as container background color.
67
- */
68
- light: deprecate["default"](PropTypes__default["default"].bool, 'The `light` prop for `Tile` is no longer needed and has been deprecated. It will be removed in the next major release. Use the Layer component instead.')
69
- };
70
- var ClickableTile = /*#__PURE__*/React__default["default"].forwardRef(function ClickableTile(_ref2, ref) {
71
- var _cx2;
72
-
73
- var children = _ref2.children,
74
- className = _ref2.className,
75
- _ref2$clicked = _ref2.clicked,
76
- clicked = _ref2$clicked === void 0 ? false : _ref2$clicked,
77
- href = _ref2.href,
78
- light = _ref2.light,
79
- _ref2$onClick = _ref2.onClick,
80
- onClick = _ref2$onClick === void 0 ? function () {} : _ref2$onClick,
81
- _ref2$onKeyDown = _ref2.onKeyDown,
82
- onKeyDown = _ref2$onKeyDown === void 0 ? function () {} : _ref2$onKeyDown,
83
- rest = _rollupPluginBabelHelpers.objectWithoutProperties(_ref2, _excluded2);
84
-
85
- var prefix = usePrefix.usePrefix();
86
- var classes = cx__default["default"]("".concat(prefix, "--tile"), "".concat(prefix, "--tile--clickable"), (_cx2 = {}, _rollupPluginBabelHelpers.defineProperty(_cx2, "".concat(prefix, "--tile--is-clicked"), clicked), _rollupPluginBabelHelpers.defineProperty(_cx2, "".concat(prefix, "--tile--light"), light), _cx2), className);
87
-
88
- var _useState = React.useState(clicked),
89
- _useState2 = _rollupPluginBabelHelpers.slicedToArray(_useState, 2),
90
- isSelected = _useState2[0],
91
- setIsSelected = _useState2[1];
92
-
93
- function handleOnClick(evt) {
94
- evt.persist();
95
- setIsSelected(!isSelected);
96
- onClick(evt);
97
- }
98
-
99
- function handleOnKeyDown(evt) {
100
- evt.persist();
101
-
102
- if (match.matches(evt, [keys.Enter, keys.Space])) {
103
- evt.preventDefault();
104
- setIsSelected(!isSelected);
105
- onKeyDown(evt);
106
- }
107
-
108
- onKeyDown(evt);
109
- }
110
-
111
- return /*#__PURE__*/React__default["default"].createElement(Link["default"], _rollupPluginBabelHelpers["extends"]({
112
- className: classes,
113
- href: href,
114
- onClick: handleOnClick,
115
- onKeyDown: handleOnKeyDown,
116
- ref: ref
117
- }, rest), children);
118
- });
119
- ClickableTile.displayName = 'ClickableTile';
120
- ClickableTile.propTypes = {
121
- /**
122
- * The child nodes.
123
- */
124
- children: PropTypes__default["default"].node,
125
-
126
- /**
127
- * The CSS class names.
128
- */
129
- className: PropTypes__default["default"].string,
130
-
131
- /**
132
- * Boolean for whether a tile has been clicked.
133
- */
134
- clicked: PropTypes__default["default"].bool,
135
-
136
- /**
137
- * The href for the link.
138
- */
139
- href: PropTypes__default["default"].string,
140
-
141
- /**
142
- * `true` to use the light version. For use on $ui-01 backgrounds only.
143
- * Don't use this to make tile background color same as container background color.
144
- */
145
- light: deprecate["default"](PropTypes__default["default"].bool, 'The `light` prop for `ClickableTile` is no longer needed and has been deprecated. It will be removed in the next major release. Use the Layer component instead.'),
146
-
147
- /**
148
- * Specify the function to run when the ClickableTile is clicked
149
- */
150
- onClick: PropTypes__default["default"].func,
151
-
152
- /**
153
- * Specify the function to run when the ClickableTile is interacted with via a keyboard
154
- */
155
- onKeyDown: PropTypes__default["default"].func,
156
-
157
- /**
158
- * The rel property for the link.
159
- */
160
- rel: PropTypes__default["default"].string
161
- };
162
- var SelectableTile = /*#__PURE__*/React__default["default"].forwardRef(function SelectableTile(_ref3, ref) {
163
- var _cx3;
164
-
165
- var children = _ref3.children,
166
- className = _ref3.className,
167
- disabled = _ref3.disabled,
168
- id = _ref3.id,
169
- light = _ref3.light,
170
- name = _ref3.name,
171
- _ref3$onClick = _ref3.onClick,
172
- onClick = _ref3$onClick === void 0 ? function () {} : _ref3$onClick,
173
- _ref3$onChange = _ref3.onChange,
174
- onChange = _ref3$onChange === void 0 ? function () {} : _ref3$onChange,
175
- _ref3$onKeyDown = _ref3.onKeyDown,
176
- onKeyDown = _ref3$onKeyDown === void 0 ? function () {} : _ref3$onKeyDown,
177
- _ref3$selected = _ref3.selected,
178
- selected = _ref3$selected === void 0 ? false : _ref3$selected,
179
- _ref3$tabIndex = _ref3.tabIndex,
180
- tabIndex = _ref3$tabIndex === void 0 ? 0 : _ref3$tabIndex,
181
- _ref3$title = _ref3.title,
182
- title = _ref3$title === void 0 ? 'title' : _ref3$title,
183
- _ref3$value = _ref3.value,
184
- value = _ref3$value === void 0 ? 'value' : _ref3$value,
185
- rest = _rollupPluginBabelHelpers.objectWithoutProperties(_ref3, _excluded3);
186
-
187
- var prefix = usePrefix.usePrefix();
188
- var clickHandler = onClick;
189
- var keyDownHandler = onKeyDown;
190
-
191
- var _useState3 = React.useState(selected),
192
- _useState4 = _rollupPluginBabelHelpers.slicedToArray(_useState3, 2),
193
- isSelected = _useState4[0],
194
- setIsSelected = _useState4[1];
195
-
196
- var _useState5 = React.useState(selected),
197
- _useState6 = _rollupPluginBabelHelpers.slicedToArray(_useState5, 2),
198
- prevSelected = _useState6[0],
199
- setPrevSelected = _useState6[1];
200
-
201
- var classes = cx__default["default"]("".concat(prefix, "--tile"), "".concat(prefix, "--tile--selectable"), (_cx3 = {}, _rollupPluginBabelHelpers.defineProperty(_cx3, "".concat(prefix, "--tile--is-selected"), isSelected), _rollupPluginBabelHelpers.defineProperty(_cx3, "".concat(prefix, "--tile--light"), light), _rollupPluginBabelHelpers.defineProperty(_cx3, "".concat(prefix, "--tile--disabled"), disabled), _cx3), className); // TODO: rename to handleClick when handleClick prop is deprecated
202
-
203
- function handleOnClick(evt) {
204
- evt.preventDefault();
205
- evt.persist();
206
- setIsSelected(!isSelected);
207
- clickHandler(evt);
208
- onChange(evt);
209
- } // TODO: rename to handleKeyDown when handleKeyDown prop is deprecated
210
-
211
-
212
- function handleOnKeyDown(evt) {
213
- evt.persist();
214
-
215
- if (match.matches(evt, [keys.Enter, keys.Space])) {
216
- evt.preventDefault();
217
- setIsSelected(!isSelected);
218
- onChange(evt);
219
- }
220
-
221
- keyDownHandler(evt);
222
- }
223
-
224
- function handleChange(event) {
225
- setIsSelected(event.target.checked);
226
- onChange(event);
227
- }
228
-
229
- if (selected !== prevSelected) {
230
- setIsSelected(selected);
231
- setPrevSelected(selected);
232
- }
233
-
234
- return /*#__PURE__*/React__default["default"].createElement("div", _rollupPluginBabelHelpers["extends"]({
235
- className: classes,
236
- onClick: !disabled ? handleOnClick : null,
237
- role: "checkbox",
238
- "aria-checked": isSelected,
239
- disabled: disabled,
240
- onKeyDown: !disabled ? handleOnKeyDown : null // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex
241
- ,
242
- tabIndex: !disabled ? tabIndex : null,
243
- value: value,
244
- name: name,
245
- ref: ref,
246
- id: id,
247
- onChange: !disabled ? handleChange : null,
248
- title: title
249
- }, rest), /*#__PURE__*/React__default["default"].createElement("span", {
250
- className: "".concat(prefix, "--tile__checkmark ").concat(prefix, "--tile__checkmark--persistent")
251
- }, isSelected ? _CheckboxCheckedFille || (_CheckboxCheckedFille = /*#__PURE__*/React__default["default"].createElement(iconsReact.CheckboxCheckedFilled, null)) : _Checkbox || (_Checkbox = /*#__PURE__*/React__default["default"].createElement(iconsReact.Checkbox, null))), /*#__PURE__*/React__default["default"].createElement("label", {
252
- htmlFor: id,
253
- className: "".concat(prefix, "--tile-content")
254
- }, children));
255
- });
256
- SelectableTile.displayName = 'SelectableTile';
257
- SelectableTile.propTypes = {
258
- /**
259
- * The child nodes.
260
- */
261
- children: PropTypes__default["default"].node,
262
-
263
- /**
264
- * The CSS class names.
265
- */
266
- className: PropTypes__default["default"].string,
267
-
268
- /**
269
- * Specify whether the SelectableTile should be disabled
270
- */
271
- disabled: PropTypes__default["default"].bool,
272
-
273
- /**
274
- * The ID of the `<input>`.
275
- */
276
- id: PropTypes__default["default"].string,
277
-
278
- /**
279
- * `true` to use the light version. For use on $ui-01 backgrounds only.
280
- * Don't use this to make tile background color same as container background color.
281
- */
282
- light: deprecate["default"](PropTypes__default["default"].bool, 'The `light` prop for `SelectableTile` is no longer needed and has been deprecated. It will be removed in the next major release. Use the Layer component instead.'),
283
-
284
- /**
285
- * The `name` of the `<input>`.
286
- */
287
- name: PropTypes__default["default"].string,
288
-
289
- /**
290
- * The empty handler of the `<input>`.
291
- */
292
- onChange: PropTypes__default["default"].func,
293
-
294
- /**
295
- * Specify the function to run when the SelectableTile is clicked
296
- */
297
- onClick: PropTypes__default["default"].func,
298
-
299
- /**
300
- * Specify the function to run when the SelectableTile is interacted with via a keyboard
301
- */
302
- onKeyDown: PropTypes__default["default"].func,
303
-
304
- /**
305
- * `true` to select this tile.
306
- */
307
- selected: PropTypes__default["default"].bool,
308
-
309
- /**
310
- * Specify the tab index of the wrapper element
311
- */
312
- tabIndex: PropTypes__default["default"].number,
313
-
314
- /**
315
- * The `title` of the `<input>`.
316
- */
317
- title: PropTypes__default["default"].string,
318
-
319
- /**
320
- * The value of the `<input>`.
321
- */
322
- value: PropTypes__default["default"].oneOfType([PropTypes__default["default"].string, PropTypes__default["default"].number]).isRequired
323
- };
324
- function ExpandableTile(_ref4) {
325
- var _cx4, _cx5;
326
-
327
- var tabIndex = _ref4.tabIndex,
328
- className = _ref4.className,
329
- children = _ref4.children,
330
- expanded = _ref4.expanded,
331
- tileMaxHeight = _ref4.tileMaxHeight,
332
- tilePadding = _ref4.tilePadding,
333
- onClick = _ref4.onClick,
334
- onKeyUp = _ref4.onKeyUp,
335
- tileCollapsedIconText = _ref4.tileCollapsedIconText,
336
- tileExpandedIconText = _ref4.tileExpandedIconText,
337
- tileCollapsedLabel = _ref4.tileCollapsedLabel,
338
- tileExpandedLabel = _ref4.tileExpandedLabel,
339
- light = _ref4.light,
340
- rest = _rollupPluginBabelHelpers.objectWithoutProperties(_ref4, _excluded4);
341
-
342
- var _useState7 = React.useState(tileMaxHeight),
343
- _useState8 = _rollupPluginBabelHelpers.slicedToArray(_useState7, 2),
344
- isTileMaxHeight = _useState8[0],
345
- setIsTileMaxHeight = _useState8[1];
346
-
347
- var _useState9 = React.useState(tilePadding),
348
- _useState10 = _rollupPluginBabelHelpers.slicedToArray(_useState9, 2),
349
- isTilePadding = _useState10[0],
350
- setIsTilePadding = _useState10[1];
351
-
352
- var _useState11 = React.useState(expanded),
353
- _useState12 = _rollupPluginBabelHelpers.slicedToArray(_useState11, 2),
354
- prevExpanded = _useState12[0],
355
- setPrevExpanded = _useState12[1];
356
-
357
- var _useState13 = React.useState(tileMaxHeight),
358
- _useState14 = _rollupPluginBabelHelpers.slicedToArray(_useState13, 2),
359
- prevTileMaxHeight = _useState14[0],
360
- setPrevTileMaxHeight = _useState14[1];
361
-
362
- var _useState15 = React.useState(tilePadding),
363
- _useState16 = _rollupPluginBabelHelpers.slicedToArray(_useState15, 2),
364
- prevTilePadding = _useState16[0],
365
- setPrevTilePadding = _useState16[1];
366
-
367
- var _useState17 = React.useState(expanded),
368
- _useState18 = _rollupPluginBabelHelpers.slicedToArray(_useState17, 2),
369
- isExpanded = _useState18[0],
370
- setIsExpanded = _useState18[1];
371
-
372
- var _useState19 = React.useState(false),
373
- _useState20 = _rollupPluginBabelHelpers.slicedToArray(_useState19, 2),
374
- interactive = _useState20[0],
375
- setInteractive = _useState20[1];
376
-
377
- var aboveTheFold = React.useRef(null);
378
- var belowTheFold = React.useRef(null);
379
- var tileContent = React.useRef(null);
380
- var tile = React.useRef(null);
381
- var prefix = usePrefix.usePrefix();
382
-
383
- if (expanded !== prevExpanded) {
384
- setIsExpanded(expanded);
385
- setPrevExpanded(expanded);
386
- setMaxHeight();
387
- }
388
-
389
- if (tileMaxHeight !== prevTileMaxHeight) {
390
- setIsTileMaxHeight(tileMaxHeight);
391
- setPrevTileMaxHeight(tileMaxHeight);
392
- }
393
-
394
- if (tilePadding !== prevTilePadding) {
395
- setIsTilePadding(tilePadding);
396
- setPrevTilePadding(tilePadding);
397
- }
398
-
399
- function setMaxHeight() {
400
- if (isExpanded) {
401
- setIsTileMaxHeight(tileContent.current.getBoundingClientRect().height);
402
- }
403
-
404
- setIsTileMaxHeight(aboveTheFold.current.getBoundingClientRect().height);
405
- }
406
-
407
- function handleClick(evt) {
408
- evt.persist();
409
- setIsExpanded(!isExpanded);
410
- setMaxHeight();
411
-
412
- if (onClick) {
413
- onClick(evt);
414
- }
415
- }
416
-
417
- function handleKeyUp(evt) {
418
- if (evt.target !== tile.current) {
419
- if (match.matches(evt, [keys.Enter, keys.Space])) {
420
- evt.preventDefault();
421
- }
422
- }
423
- }
424
-
425
- function getChildren() {
426
- return React__default["default"].Children.toArray(children);
427
- }
428
-
429
- var classNames = cx__default["default"]("".concat(prefix, "--tile"), "".concat(prefix, "--tile--expandable"), (_cx4 = {}, _rollupPluginBabelHelpers.defineProperty(_cx4, "".concat(prefix, "--tile--is-expanded"), isExpanded), _rollupPluginBabelHelpers.defineProperty(_cx4, "".concat(prefix, "--tile--light"), light), _cx4), className);
430
- var interactiveClassNames = cx__default["default"]("".concat(prefix, "--tile"), "".concat(prefix, "--tile--expandable"), "".concat(prefix, "--tile--expandable--interactive"), (_cx5 = {}, _rollupPluginBabelHelpers.defineProperty(_cx5, "".concat(prefix, "--tile--is-expanded"), isExpanded), _rollupPluginBabelHelpers.defineProperty(_cx5, "".concat(prefix, "--tile--light"), light), _cx5), className);
431
- var chevronInteractiveClassNames = cx__default["default"]("".concat(prefix, "--tile__chevron"), "".concat(prefix, "--tile__chevron--interactive"));
432
- var tileStyle = {
433
- maxHeight: isExpanded ? null : isTileMaxHeight + isTilePadding
434
- };
435
- var childrenAsArray = getChildren();
436
- useIsomorphicEffect["default"](function () {
437
- var getStyle = window.getComputedStyle(tile.current, null);
438
- var node = aboveTheFold.current;
439
-
440
- var _node$getBoundingClie = node.getBoundingClientRect(),
441
- height = _node$getBoundingClie.height;
442
-
443
- var paddingTop = parseInt(getStyle.getPropertyValue('padding-top'), 10);
444
- var paddingBottom = parseInt(getStyle.getPropertyValue('padding-bottom'), 10);
445
- setIsTileMaxHeight(height);
446
- setIsTilePadding(paddingTop + paddingBottom);
447
- }, []);
448
- useIsomorphicEffect["default"](function () {
449
- if (useNoInteractiveChildren.getInteractiveContent(belowTheFold.current)) {
450
- setInteractive(true);
451
- return;
452
- } else if (useNoInteractiveChildren.getInteractiveContent(aboveTheFold.current)) {
453
- setInteractive(true);
454
- }
455
- }, []);
456
- React.useEffect(function () {
457
- var resizeObserver = new ResizeObserver(function (entries) {
458
- var _entries = _rollupPluginBabelHelpers.slicedToArray(entries, 1),
459
- aboveTheFold = _entries[0];
460
-
461
- setIsTileMaxHeight(aboveTheFold.contentRect.height);
462
- });
463
- resizeObserver.observe(aboveTheFold.current);
464
- return function () {
465
- return resizeObserver.disconnect();
466
- };
467
- }, []);
468
- return interactive ? /*#__PURE__*/React__default["default"].createElement("div", _rollupPluginBabelHelpers["extends"]({
469
- ref: tile,
470
- style: tileStyle,
471
- className: interactiveClassNames,
472
- "aria-expanded": isExpanded
473
- }, rest), /*#__PURE__*/React__default["default"].createElement("div", {
474
- ref: tileContent
475
- }, /*#__PURE__*/React__default["default"].createElement("div", {
476
- ref: aboveTheFold,
477
- className: "".concat(prefix, "--tile-content")
478
- }, childrenAsArray[0]), /*#__PURE__*/React__default["default"].createElement("button", {
479
- type: "button",
480
- "aria-expanded": isExpanded,
481
- onKeyUp: events.composeEventHandlers([onKeyUp, handleKeyUp]),
482
- onClick: events.composeEventHandlers([onClick, handleClick]),
483
- "aria-label": isExpanded ? tileExpandedIconText : tileCollapsedIconText,
484
- className: chevronInteractiveClassNames
485
- }, _ChevronDown || (_ChevronDown = /*#__PURE__*/React__default["default"].createElement(iconsReact.ChevronDown, null))), /*#__PURE__*/React__default["default"].createElement("div", {
486
- ref: belowTheFold,
487
- className: "".concat(prefix, "--tile-content")
488
- }, childrenAsArray[1]))) : /*#__PURE__*/React__default["default"].createElement("button", _rollupPluginBabelHelpers["extends"]({
489
- type: "button",
490
- ref: tile,
491
- style: tileStyle,
492
- className: classNames,
493
- "aria-expanded": isExpanded,
494
- title: isExpanded ? tileExpandedIconText : tileCollapsedIconText
495
- }, rest, {
496
- onKeyUp: events.composeEventHandlers([onKeyUp, handleKeyUp]),
497
- onClick: events.composeEventHandlers([onClick, handleClick]),
498
- tabIndex: tabIndex
499
- }), /*#__PURE__*/React__default["default"].createElement("div", {
500
- ref: tileContent
501
- }, /*#__PURE__*/React__default["default"].createElement("div", {
502
- ref: aboveTheFold,
503
- className: "".concat(prefix, "--tile-content")
504
- }, childrenAsArray[0]), /*#__PURE__*/React__default["default"].createElement("div", {
505
- className: "".concat(prefix, "--tile__chevron")
506
- }, /*#__PURE__*/React__default["default"].createElement("span", null, isExpanded ? tileExpandedLabel : tileCollapsedLabel), _ChevronDown2 || (_ChevronDown2 = /*#__PURE__*/React__default["default"].createElement(iconsReact.ChevronDown, null))), /*#__PURE__*/React__default["default"].createElement("div", {
507
- ref: belowTheFold,
508
- className: "".concat(prefix, "--tile-content")
509
- }, childrenAsArray[1])));
510
- }
511
- ExpandableTile.propTypes = {
512
- /**
513
- * The child nodes.
514
- */
515
- children: PropTypes__default["default"].node,
516
-
517
- /**
518
- * The CSS class names.
519
- */
520
- className: PropTypes__default["default"].string,
521
-
522
- /**
523
- * `true` if the tile is expanded.
524
- */
525
- expanded: PropTypes__default["default"].bool,
526
-
527
- /**
528
- * An ID that can be provided to aria-labelledby
529
- */
530
- id: PropTypes__default["default"].string,
531
-
532
- /**
533
- * `true` to use the light version. For use on $ui-01 backgrounds only.
534
- * Don't use this to make tile background color same as container background color.
535
- */
536
- light: deprecate["default"](PropTypes__default["default"].bool, 'The `light` prop for `ExpandableTile` is no longer needed and has been deprecated. It will be removed in the next major release. Use the Layer component instead.'),
537
-
538
- /**
539
- * Specify the function to run when the ExpandableTile is clicked
540
- */
541
- onClick: PropTypes__default["default"].func,
542
-
543
- /**
544
- * optional handler to trigger a function when a key is pressed
545
- */
546
- onKeyUp: PropTypes__default["default"].func,
547
-
548
- /**
549
- * The `tabindex` attribute.
550
- */
551
- tabIndex: PropTypes__default["default"].number,
552
-
553
- /**
554
- * The description of the "collapsed" icon that can be read by screen readers.
555
- */
556
- tileCollapsedIconText: PropTypes__default["default"].string,
557
-
558
- /**
559
- * When "collapsed", a label to appear next to the chevron (e.g., "View more").
560
- */
561
- tileCollapsedLabel: PropTypes__default["default"].string,
562
-
563
- /**
564
- * The description of the "expanded" icon that can be read by screen readers.
565
- */
566
- tileExpandedIconText: PropTypes__default["default"].string,
567
-
568
- /**
569
- * When "expanded", a label to appear next to the chevron (e.g., "View less").
570
- */
571
- tileExpandedLabel: PropTypes__default["default"].string
572
- };
573
- ExpandableTile.defaultProps = {
574
- tabIndex: 0,
575
- expanded: false,
576
- tileMaxHeight: 0,
577
- tilePadding: 0,
578
- onClick: function onClick() {},
579
- tileCollapsedIconText: 'Interact to expand Tile',
580
- tileExpandedIconText: 'Interact to collapse Tile'
581
- };
582
- ExpandableTile.displayName = 'ExpandableTile';
583
- var TileAboveTheFoldContent = /*#__PURE__*/React__default["default"].forwardRef(function TilAboveTheFoldContent(_ref5, ref) {
584
- var children = _ref5.children;
585
- var prefix = usePrefix.usePrefix();
586
- return /*#__PURE__*/React__default["default"].createElement("span", {
587
- ref: ref,
588
- className: "".concat(prefix, "--tile-content__above-the-fold")
589
- }, children);
590
- });
591
- TileAboveTheFoldContent.propTypes = {
592
- /**
593
- * The child nodes.
594
- */
595
- children: PropTypes__default["default"].node
596
- };
597
- TileAboveTheFoldContent.displayName = 'TileAboveTheFoldContent';
598
- var TileBelowTheFoldContent = /*#__PURE__*/React__default["default"].forwardRef(function TileBelowTheFoldContent(_ref6, ref) {
599
- var children = _ref6.children;
600
- var prefix = usePrefix.usePrefix();
601
- return /*#__PURE__*/React__default["default"].createElement("span", {
602
- ref: ref,
603
- className: "".concat(prefix, "--tile-content__below-the-fold")
604
- }, children);
605
- });
606
- TileBelowTheFoldContent.propTypes = {
607
- /**
608
- * The child nodes.
609
- */
610
- children: PropTypes__default["default"].node
611
- };
612
- TileBelowTheFoldContent.displayName = 'TileBelowTheFoldContent';
613
-
614
- exports.ClickableTile = ClickableTile;
615
- exports.ExpandableTile = ExpandableTile;
616
- exports.SelectableTile = SelectableTile;
617
- exports.Tile = Tile;
618
- exports.TileAboveTheFoldContent = TileAboveTheFoldContent;
619
- exports.TileBelowTheFoldContent = TileBelowTheFoldContent;