@lumx/react 3.20.1-alpha.15 → 3.20.1-alpha.17

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 (163) hide show
  1. package/_internal/{Button-f19e18df.js → Button-1f227024.js} +30 -28
  2. package/_internal/{Button-f19e18df.js.map → Button-1f227024.js.map} +1 -1
  3. package/_internal/{ButtonRoot-ab633b1d.js → ButtonRoot-823f3e9c.js} +18 -16
  4. package/_internal/{ButtonRoot-ab633b1d.js.map → ButtonRoot-823f3e9c.js.map} +1 -1
  5. package/_internal/{Chip-4c572eec.js → Chip-a34f6905.js} +31 -34
  6. package/_internal/{Chip-4c572eec.js.map → Chip-a34f6905.js.map} +1 -1
  7. package/_internal/{ClickAwayProvider-bcce6ceb.js → ClickAwayProvider-7093ba23.js} +6 -4
  8. package/_internal/{ClickAwayProvider-bcce6ceb.js.map → ClickAwayProvider-7093ba23.js.map} +1 -1
  9. package/_internal/{DisabledStateContext-077b7bef.js → DisabledStateContext-ea04260d.js} +6 -6
  10. package/_internal/{DisabledStateContext-077b7bef.js.map → DisabledStateContext-ea04260d.js.map} +1 -1
  11. package/_internal/{HeadingLevelProvider-e4817816.js → HeadingLevelProvider-ebdcb0c7.js} +6 -4
  12. package/_internal/{HeadingLevelProvider-e4817816.js.map → HeadingLevelProvider-ebdcb0c7.js.map} +1 -1
  13. package/_internal/{IconButton-10585058.js → IconButton-f4df224c.js} +29 -24
  14. package/_internal/{IconButton-10585058.js.map → IconButton-f4df224c.js.map} +1 -1
  15. package/_internal/ImageCaption-8134a3aa.js +75 -0
  16. package/_internal/{ImageCaption-4279b2b6.js.map → ImageCaption-8134a3aa.js.map} +1 -1
  17. package/_internal/{List-d5f5d465.js → List-54237e0e.js} +52 -50
  18. package/_internal/{List-d5f5d465.js.map → List-54237e0e.js.map} +1 -1
  19. package/_internal/{PopoverDialog-21e5c9dd.js → PopoverDialog-e0967e5f.js} +166 -158
  20. package/_internal/{PopoverDialog-21e5c9dd.js.map → PopoverDialog-e0967e5f.js.map} +1 -1
  21. package/_internal/{Portal-c43d098b.js → Portal-3f86608e.js} +5 -2
  22. package/_internal/{Portal-c43d098b.js.map → Portal-3f86608e.js.map} +1 -1
  23. package/_internal/{RawClickable-c76bbc4c.js → RawClickable-2c2b6a89.js} +9 -7
  24. package/_internal/{RawClickable-c76bbc4c.js.map → RawClickable-2c2b6a89.js.map} +1 -1
  25. package/_internal/{Slides-01f513ce.js → Slides-b7a67f32.js} +99 -96
  26. package/_internal/{Slides-01f513ce.js.map → Slides-b7a67f32.js.map} +1 -1
  27. package/_internal/{Thumbnail-30d2a781.js → Thumbnail-b5dea0af.js} +46 -45
  28. package/_internal/{Thumbnail-30d2a781.js.map → Thumbnail-b5dea0af.js.map} +1 -1
  29. package/_internal/components/{alert-dialog-8f1c163c.js → alert-dialog-b284b191.js} +50 -35
  30. package/_internal/components/{alert-dialog-8f1c163c.js.map → alert-dialog-b284b191.js.map} +1 -1
  31. package/_internal/components/{autocomplete-bfbdeb3c.js → autocomplete-8d3f37ea.js} +64 -67
  32. package/_internal/components/{autocomplete-bfbdeb3c.js.map → autocomplete-8d3f37ea.js.map} +1 -1
  33. package/_internal/components/{avatar-6990e3e9.js → avatar-5fc70e00.js} +28 -32
  34. package/_internal/components/{avatar-6990e3e9.js.map → avatar-5fc70e00.js.map} +1 -1
  35. package/_internal/components/{badge-81543bc7.js → badge-8390e590.js} +18 -18
  36. package/_internal/components/{badge-81543bc7.js.map → badge-8390e590.js.map} +1 -1
  37. package/_internal/components/{button-927abe71.js → button-e3c7f2eb.js} +11 -13
  38. package/_internal/components/{button-927abe71.js.map → button-e3c7f2eb.js.map} +1 -1
  39. package/_internal/components/{checkbox-dc4caec8.js → checkbox-d1ca9748.js} +53 -44
  40. package/_internal/components/{checkbox-dc4caec8.js.map → checkbox-d1ca9748.js.map} +1 -1
  41. package/_internal/components/{chip-fb3d0c76.js → chip-e40c5521.js} +10 -12
  42. package/_internal/components/{chip-fb3d0c76.js.map → chip-e40c5521.js.map} +1 -1
  43. package/_internal/components/comment-block-a3cf7b9b.js +138 -0
  44. package/_internal/components/{comment-block-b84c4694.js.map → comment-block-a3cf7b9b.js.map} +1 -1
  45. package/_internal/components/date-picker-6c1b14e4.js +2 -0
  46. package/_internal/components/date-picker-6c1b14e4.js.map +1 -0
  47. package/_internal/components/{dialog-7dbcb485.js → dialog-ebdb9500.js} +70 -58
  48. package/_internal/components/{dialog-7dbcb485.js.map → dialog-ebdb9500.js.map} +1 -1
  49. package/_internal/components/{divider-12e9b6a0.js → divider-116af6b9.js} +7 -10
  50. package/_internal/components/{divider-12e9b6a0.js.map → divider-116af6b9.js.map} +1 -1
  51. package/_internal/components/{drag-handle-a38ff757.js → drag-handle-5215cd21.js} +14 -16
  52. package/_internal/components/{drag-handle-a38ff757.js.map → drag-handle-5215cd21.js.map} +1 -1
  53. package/_internal/components/{dropdown-38b0b6a0.js → dropdown-0baed51b.js} +15 -16
  54. package/_internal/components/{dropdown-38b0b6a0.js.map → dropdown-0baed51b.js.map} +1 -1
  55. package/_internal/components/{expansion-panel-c4b93653.js → expansion-panel-5533a680.js} +48 -39
  56. package/_internal/components/{expansion-panel-c4b93653.js.map → expansion-panel-5533a680.js.map} +1 -1
  57. package/_internal/components/{flag-c5e2f5f0.js → flag-8d4a7e72.js} +20 -16
  58. package/_internal/components/{flag-c5e2f5f0.js.map → flag-8d4a7e72.js.map} +1 -1
  59. package/_internal/components/{flex-box-c8701a85.js → flex-box-55144e5f.js} +9 -11
  60. package/_internal/components/{flex-box-c8701a85.js.map → flex-box-55144e5f.js.map} +1 -1
  61. package/_internal/components/{generic-block-0d6ad5a6.js → generic-block-ff0509ee.js} +35 -26
  62. package/_internal/components/{generic-block-0d6ad5a6.js.map → generic-block-ff0509ee.js.map} +1 -1
  63. package/_internal/components/{grid-3b194fe8.js → grid-6f1b5a41.js} +15 -20
  64. package/_internal/components/{grid-3b194fe8.js.map → grid-6f1b5a41.js.map} +1 -1
  65. package/_internal/components/{grid-column-985b9327.js → grid-column-f01df853.js} +8 -9
  66. package/_internal/components/{grid-column-985b9327.js.map → grid-column-f01df853.js.map} +1 -1
  67. package/_internal/components/{heading-5e954dfc.js → heading-89239843.js} +11 -12
  68. package/_internal/components/{heading-5e954dfc.js.map → heading-89239843.js.map} +1 -1
  69. package/_internal/components/{icon-2e7345ad.js → icon-b708cca4.js} +24 -25
  70. package/_internal/components/{icon-2e7345ad.js.map → icon-b708cca4.js.map} +1 -1
  71. package/_internal/components/{image-block-8d21dd7e.js → image-block-7938422d.js} +35 -34
  72. package/_internal/components/{image-block-8d21dd7e.js.map → image-block-7938422d.js.map} +1 -1
  73. package/_internal/components/{image-lightbox-4a5ab962.js → image-lightbox-58331704.js} +113 -100
  74. package/_internal/components/{image-lightbox-4a5ab962.js.map → image-lightbox-58331704.js.map} +1 -1
  75. package/_internal/components/{inline-list-4884f004.js → inline-list-e6f19a98.js} +24 -24
  76. package/_internal/components/{inline-list-4884f004.js.map → inline-list-e6f19a98.js.map} +1 -1
  77. package/_internal/components/{input-helper-e644e05e.js → input-helper-64153099.js} +9 -11
  78. package/_internal/components/{input-helper-e644e05e.js.map → input-helper-64153099.js.map} +1 -1
  79. package/_internal/components/{input-label-5e509a1b.js → input-label-2feb0bb0.js} +9 -11
  80. package/_internal/components/{input-label-5e509a1b.js.map → input-label-2feb0bb0.js.map} +1 -1
  81. package/_internal/components/{lightbox-bec1b95f.js → lightbox-570ad9e5.js} +55 -49
  82. package/_internal/components/{lightbox-bec1b95f.js.map → lightbox-570ad9e5.js.map} +1 -1
  83. package/_internal/components/{link-9637b9e4.js → link-91f76477.js} +25 -23
  84. package/_internal/components/{link-9637b9e4.js.map → link-91f76477.js.map} +1 -1
  85. package/_internal/components/link-preview-fdd8d738.js +117 -0
  86. package/_internal/components/{link-preview-7a4a6e4b.js.map → link-preview-fdd8d738.js.map} +1 -1
  87. package/_internal/components/{list-5c8f7122.js → list-b08d8423.js} +14 -20
  88. package/_internal/components/{list-5c8f7122.js.map → list-b08d8423.js.map} +1 -1
  89. package/_internal/components/{message-a67067d9.js → message-29cb9181.js} +24 -24
  90. package/_internal/components/{message-a67067d9.js.map → message-29cb9181.js.map} +1 -1
  91. package/_internal/components/{mosaic-92b66c80.js → mosaic-cdb9f563.js} +36 -33
  92. package/_internal/components/{mosaic-92b66c80.js.map → mosaic-cdb9f563.js.map} +1 -1
  93. package/_internal/components/navigation-8b7d9bd8.js +225 -0
  94. package/_internal/components/{navigation-4fd3917d.js.map → navigation-8b7d9bd8.js.map} +1 -1
  95. package/_internal/components/{notification-9063c963.js → notification-a45fda96.js} +45 -40
  96. package/_internal/components/{notification-9063c963.js.map → notification-a45fda96.js.map} +1 -1
  97. package/_internal/components/popover-65bfbc57.js +3 -0
  98. package/_internal/components/popover-65bfbc57.js.map +1 -0
  99. package/_internal/components/post-block-52e58dd5.js +109 -0
  100. package/_internal/components/{post-block-0cfc2206.js.map → post-block-52e58dd5.js.map} +1 -1
  101. package/_internal/components/{progress-eaf5b33d.js → progress-f39c3fa2.js} +44 -50
  102. package/_internal/components/{progress-eaf5b33d.js.map → progress-f39c3fa2.js.map} +1 -1
  103. package/_internal/components/{progress-tracker-4a65718d.js → progress-tracker-512d7a08.js} +59 -63
  104. package/_internal/components/{progress-tracker-4a65718d.js.map → progress-tracker-512d7a08.js.map} +1 -1
  105. package/_internal/components/{radio-button-3ef8a325.js → radio-button-559a4863.js} +54 -53
  106. package/_internal/components/{radio-button-3ef8a325.js.map → radio-button-559a4863.js.map} +1 -1
  107. package/_internal/components/select-48d4fa8c.js +454 -0
  108. package/_internal/components/{select-d46cfe35.js.map → select-48d4fa8c.js.map} +1 -1
  109. package/_internal/components/{side-navigation-75b22f19.js → side-navigation-f9bc5b4e.js} +62 -56
  110. package/_internal/components/{side-navigation-75b22f19.js.map → side-navigation-f9bc5b4e.js.map} +1 -1
  111. package/_internal/components/{skeleton-361ce335.js → skeleton-c66516ee.js} +23 -31
  112. package/_internal/components/{skeleton-361ce335.js.map → skeleton-c66516ee.js.map} +1 -1
  113. package/_internal/components/{slider-8094cb5c.js → slider-efbfbc45.js} +62 -56
  114. package/_internal/components/{slider-8094cb5c.js.map → slider-efbfbc45.js.map} +1 -1
  115. package/_internal/components/{slideshow-2e8cd372.js → slideshow-dd312470.js} +39 -38
  116. package/_internal/components/{slideshow-2e8cd372.js.map → slideshow-dd312470.js.map} +1 -1
  117. package/_internal/components/{switch-5516949b.js → switch-769a2a04.js} +49 -45
  118. package/_internal/components/{switch-5516949b.js.map → switch-769a2a04.js.map} +1 -1
  119. package/_internal/components/{table-fa198ee6.js → table-8617b1ba.js} +68 -73
  120. package/_internal/components/{table-fa198ee6.js.map → table-8617b1ba.js.map} +1 -1
  121. package/_internal/components/{tabs-bb9bc2a5.js → tabs-884c57b6.js} +41 -41
  122. package/_internal/components/{tabs-bb9bc2a5.js.map → tabs-884c57b6.js.map} +1 -1
  123. package/_internal/components/text-c7b1e079.js +2 -0
  124. package/_internal/components/text-c7b1e079.js.map +1 -0
  125. package/_internal/components/{text-field-82733568.js → text-field-478acd86.js} +116 -103
  126. package/_internal/components/{text-field-82733568.js.map → text-field-478acd86.js.map} +1 -1
  127. package/_internal/components/{thumbnail-e3acff82.js → thumbnail-310a4c4b.js} +2 -2
  128. package/_internal/components/{thumbnail-e3acff82.js.map → thumbnail-310a4c4b.js.map} +1 -1
  129. package/_internal/components/{toolbar-155562be.js → toolbar-a43533a2.js} +18 -17
  130. package/_internal/components/{toolbar-155562be.js.map → toolbar-a43533a2.js.map} +1 -1
  131. package/_internal/components/{tooltip-84ffb4f9.js → tooltip-2885ab2e.js} +44 -35
  132. package/_internal/components/{tooltip-84ffb4f9.js.map → tooltip-2885ab2e.js.map} +1 -1
  133. package/_internal/components/{uploader-896a1d89.js → uploader-1e7f5bbb.js} +35 -32
  134. package/_internal/components/{uploader-896a1d89.js.map → uploader-1e7f5bbb.js.map} +1 -1
  135. package/_internal/components/{user-block-8fd15895.js → user-block-68a51ed0.js} +43 -41
  136. package/_internal/components/{user-block-8fd15895.js.map → user-block-68a51ed0.js.map} +1 -1
  137. package/_internal/{context-21aeb1c7.js → context-9d1336a1.js} +6 -6
  138. package/_internal/{context-21aeb1c7.js.map → context-9d1336a1.js.map} +1 -1
  139. package/_internal/{forwardRef-49d2bb84.js → forwardRef-15f62847.js} +2 -12
  140. package/_internal/{forwardRef-49d2bb84.js.map → forwardRef-15f62847.js.map} +1 -1
  141. package/_internal/{index-f415b08e.js → index-9df37c0d.js} +45 -39
  142. package/_internal/{index-f415b08e.js.map → index-9df37c0d.js.map} +1 -1
  143. package/_internal/{index-b4d256e7.js → index-a9c5cd69.js} +10 -11
  144. package/_internal/{index-b4d256e7.js.map → index-a9c5cd69.js.map} +1 -1
  145. package/_internal/{useDisableStateProps-fffc365f.js → useDisableStateProps-69e16b7c.js} +2 -2
  146. package/_internal/{useDisableStateProps-fffc365f.js.map → useDisableStateProps-69e16b7c.js.map} +1 -1
  147. package/_internal/{wrapChildrenIconWithSpaces-f86106ce.js → wrapChildrenIconWithSpaces-c1faaae4.js} +2 -2
  148. package/_internal/{wrapChildrenIconWithSpaces-f86106ce.js.map → wrapChildrenIconWithSpaces-c1faaae4.js.map} +1 -1
  149. package/index.js +61 -61
  150. package/package.json +4 -3
  151. package/utils/index.js +3 -3
  152. package/_internal/ImageCaption-4279b2b6.js +0 -65
  153. package/_internal/components/comment-block-b84c4694.js +0 -121
  154. package/_internal/components/date-picker-a425534c.js +0 -2
  155. package/_internal/components/date-picker-a425534c.js.map +0 -1
  156. package/_internal/components/link-preview-7a4a6e4b.js +0 -108
  157. package/_internal/components/navigation-4fd3917d.js +0 -210
  158. package/_internal/components/popover-3c4c54bd.js +0 -3
  159. package/_internal/components/popover-3c4c54bd.js.map +0 -1
  160. package/_internal/components/post-block-0cfc2206.js +0 -99
  161. package/_internal/components/select-d46cfe35.js +0 -404
  162. package/_internal/components/text-289c0526.js +0 -2
  163. package/_internal/components/text-289c0526.js.map +0 -1
@@ -1,14 +1,11 @@
1
- import { f as forwardRef, _ as _extends, c as classNames } from '../forwardRef-49d2bb84.js';
1
+ import { f as forwardRef, c as classNames } from '../forwardRef-15f62847.js';
2
2
  import { getRootClassName, handleBasicClasses } from '@lumx/core/js/utils/className';
3
3
  import { u as useTheme } from '../ThemeContext-3181f000.js';
4
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
4
5
  import { Theme, Size } from '@lumx/core/js/constants';
5
6
  import { mdiArrowUp, mdiArrowDown } from '@lumx/icons';
6
- import { Icon } from './icon-2e7345ad.js';
7
- import { u as useDisableStateProps } from '../useDisableStateProps-fffc365f.js';
8
-
9
- /**
10
- * Defines the props of the component.
11
- */
7
+ import { Icon } from './icon-b708cca4.js';
8
+ import { u as useDisableStateProps } from '../useDisableStateProps-69e16b7c.js';
12
9
 
13
10
  /**
14
11
  * Component display name.
@@ -42,25 +39,22 @@ const Table = forwardRef((props, ref) => {
42
39
  theme = defaultTheme,
43
40
  ...forwardedProps
44
41
  } = props;
45
- return /*#__PURE__*/React.createElement("table", _extends({
46
- ref: ref
47
- }, forwardedProps, {
42
+ return /*#__PURE__*/jsx("table", {
43
+ ref: ref,
44
+ ...forwardedProps,
48
45
  className: classNames(className, handleBasicClasses({
49
46
  prefix: CLASSNAME$4,
50
47
  hasBefore,
51
48
  hasDividers,
52
49
  theme
53
- }))
54
- }), children);
50
+ })),
51
+ children: children
52
+ });
55
53
  });
56
54
  Table.displayName = COMPONENT_NAME$4;
57
55
  Table.className = CLASSNAME$4;
58
56
  Table.defaultProps = DEFAULT_PROPS$3;
59
57
 
60
- /**
61
- * Defines the props of the component.
62
- */
63
-
64
58
  /**
65
59
  * Component display name.
66
60
  */
@@ -84,18 +78,16 @@ const TableBody = forwardRef((props, ref) => {
84
78
  className,
85
79
  ...forwardedProps
86
80
  } = props;
87
- return /*#__PURE__*/React.createElement("tbody", _extends({
88
- ref: ref
89
- }, forwardedProps, {
90
- className: classNames(className, CLASSNAME$3)
91
- }), children);
81
+ return /*#__PURE__*/jsx("tbody", {
82
+ ref: ref,
83
+ ...forwardedProps,
84
+ className: classNames(className, CLASSNAME$3),
85
+ children: children
86
+ });
92
87
  });
93
88
  TableBody.displayName = COMPONENT_NAME$3;
94
89
  TableBody.className = CLASSNAME$3;
95
90
 
96
- /**
97
- * Table head cell sort order.
98
- */
99
91
  const ThOrder = {
100
92
  asc: 'asc',
101
93
  desc: 'desc'
@@ -162,45 +154,50 @@ const TableCell = forwardRef((props, ref) => {
162
154
  if (sortOrder === ThOrder.asc) ariaSort = 'ascending';
163
155
  if (sortOrder === ThOrder.desc) ariaSort = 'descending';
164
156
  }
165
- return /*#__PURE__*/React.createElement(React.Fragment, null, variant === TableCellVariant.head && /*#__PURE__*/React.createElement("th", _extends({
166
- ref: ref
167
- }, forwardedProps, {
168
- className: classNames(handleBasicClasses({
169
- prefix: CLASSNAME$2,
170
- isSortable,
171
- isSorted: isSortable && !!sortOrder
172
- }), className, `${CLASSNAME$2}--head`),
173
- "aria-sort": ariaSort
174
- }), /*#__PURE__*/React.createElement(Wrapper, _extends({
175
- className: `${CLASSNAME$2}-wrapper`
176
- }, wrapperProps), icon && !isSortable && /*#__PURE__*/React.createElement(Icon, {
177
- className: `${CLASSNAME$2}-icon`,
178
- icon: icon,
179
- size: Size.xxs
180
- }), isSortable && sortOrder === ThOrder.asc && /*#__PURE__*/React.createElement(Icon, {
181
- className: `${CLASSNAME$2}-icon`,
182
- icon: mdiArrowUp,
183
- size: Size.xxs
184
- }), isSortable && sortOrder === ThOrder.desc && /*#__PURE__*/React.createElement(Icon, {
185
- className: `${CLASSNAME$2}-icon`,
186
- icon: mdiArrowDown,
187
- size: Size.xxs
188
- }), /*#__PURE__*/React.createElement("div", {
189
- className: `${CLASSNAME$2}-content`
190
- }, children))), variant === TableCellVariant.body && /*#__PURE__*/React.createElement("td", _extends({}, forwardedProps, {
191
- className: classNames(className, CLASSNAME$2, `${CLASSNAME$2}--body`)
192
- }), /*#__PURE__*/React.createElement("div", {
193
- className: `${CLASSNAME$2}-content`
194
- }, children)));
157
+ return /*#__PURE__*/jsxs(Fragment, {
158
+ children: [variant === TableCellVariant.head && /*#__PURE__*/jsx("th", {
159
+ ref: ref,
160
+ ...forwardedProps,
161
+ className: classNames(handleBasicClasses({
162
+ prefix: CLASSNAME$2,
163
+ isSortable,
164
+ isSorted: isSortable && !!sortOrder
165
+ }), className, `${CLASSNAME$2}--head`),
166
+ "aria-sort": ariaSort,
167
+ children: /*#__PURE__*/jsxs(Wrapper, {
168
+ className: `${CLASSNAME$2}-wrapper`,
169
+ ...wrapperProps,
170
+ children: [icon && !isSortable && /*#__PURE__*/jsx(Icon, {
171
+ className: `${CLASSNAME$2}-icon`,
172
+ icon: icon,
173
+ size: Size.xxs
174
+ }), isSortable && sortOrder === ThOrder.asc && /*#__PURE__*/jsx(Icon, {
175
+ className: `${CLASSNAME$2}-icon`,
176
+ icon: mdiArrowUp,
177
+ size: Size.xxs
178
+ }), isSortable && sortOrder === ThOrder.desc && /*#__PURE__*/jsx(Icon, {
179
+ className: `${CLASSNAME$2}-icon`,
180
+ icon: mdiArrowDown,
181
+ size: Size.xxs
182
+ }), /*#__PURE__*/jsx("div", {
183
+ className: `${CLASSNAME$2}-content`,
184
+ children: children
185
+ })]
186
+ })
187
+ }), variant === TableCellVariant.body && /*#__PURE__*/jsx("td", {
188
+ ...forwardedProps,
189
+ className: classNames(className, CLASSNAME$2, `${CLASSNAME$2}--body`),
190
+ children: /*#__PURE__*/jsx("div", {
191
+ className: `${CLASSNAME$2}-content`,
192
+ children: children
193
+ })
194
+ })]
195
+ });
195
196
  });
196
197
  TableCell.displayName = COMPONENT_NAME$2;
197
198
  TableCell.className = CLASSNAME$2;
198
199
  TableCell.defaultProps = DEFAULT_PROPS$2;
199
200
 
200
- /**
201
- * Defines the props of the component.
202
- */
203
-
204
201
  /**
205
202
  * Component display name.
206
203
  */
@@ -229,20 +226,17 @@ const TableHeader = forwardRef((props, ref) => {
229
226
  className,
230
227
  ...forwardedProps
231
228
  } = props;
232
- return /*#__PURE__*/React.createElement("thead", _extends({
233
- ref: ref
234
- }, forwardedProps, {
235
- className: classNames(className, CLASSNAME$1)
236
- }), children);
229
+ return /*#__PURE__*/jsx("thead", {
230
+ ref: ref,
231
+ ...forwardedProps,
232
+ className: classNames(className, CLASSNAME$1),
233
+ children: children
234
+ });
237
235
  });
238
236
  TableHeader.displayName = COMPONENT_NAME$1;
239
237
  TableHeader.className = CLASSNAME$1;
240
238
  TableHeader.defaultProps = DEFAULT_PROPS$1;
241
239
 
242
- /**
243
- * Defines the props of the component.
244
- */
245
-
246
240
  /**
247
241
  * Component display name.
248
242
  */
@@ -278,22 +272,23 @@ const TableRow = forwardRef((props, ref) => {
278
272
  isSelected,
279
273
  ...forwardedProps
280
274
  } = otherProps;
281
- return /*#__PURE__*/React.createElement("tr", _extends({
275
+ return /*#__PURE__*/jsx("tr", {
282
276
  ref: ref,
283
- tabIndex: isClickable && !disabledStateProps.disabled ? 0 : -1
284
- }, forwardedProps, {
277
+ tabIndex: isClickable && !disabledStateProps.disabled ? 0 : -1,
278
+ ...forwardedProps,
285
279
  className: classNames(className, handleBasicClasses({
286
280
  isClickable: isClickable && !isAnyDisabled,
287
281
  isDisabled: isAnyDisabled,
288
282
  isSelected: isSelected && !isAnyDisabled,
289
283
  prefix: CLASSNAME
290
284
  })),
291
- "aria-disabled": isAnyDisabled
292
- }), children);
285
+ "aria-disabled": isAnyDisabled,
286
+ children: children
287
+ });
293
288
  });
294
289
  TableRow.displayName = COMPONENT_NAME;
295
290
  TableRow.className = CLASSNAME;
296
291
  TableRow.defaultProps = DEFAULT_PROPS;
297
292
 
298
293
  export { Table, TableBody, TableCell, TableCellVariant, TableHeader, TableRow, ThOrder };
299
- //# sourceMappingURL=table-fa198ee6.js.map
294
+ //# sourceMappingURL=table-8617b1ba.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"table-fa198ee6.js","sources":["../../../src/components/table/Table.tsx","../../../src/components/table/TableBody.tsx","../../../src/components/table/TableCell.tsx","../../../src/components/table/TableHeader.tsx","../../../src/components/table/TableRow.tsx"],"sourcesContent":["import classNames from 'classnames';\n\nimport { Theme } from '@lumx/react';\nimport { GenericProps, HasTheme } from '@lumx/react/utils/type';\nimport { getRootClassName, handleBasicClasses } from '@lumx/core/js/utils/className';\nimport { useTheme } from '@lumx/react/utils/theme/ThemeContext';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\n/**\n * Defines the props of the component.\n */\nexport interface TableProps extends GenericProps, HasTheme {\n /** Whether the table has checkbox or thumbnail on first cell or not. */\n hasBefore?: boolean;\n /** Whether the table has dividers or not. */\n hasDividers?: boolean;\n /** Children */\n children?: React.ReactNode;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'Table';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<TableProps> = {};\n\n/**\n * Table component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const Table = forwardRef<TableProps, HTMLTableElement>((props, ref) => {\n const defaultTheme = useTheme() || Theme.light;\n const { children, className, hasBefore, hasDividers, theme = defaultTheme, ...forwardedProps } = props;\n\n return (\n <table\n ref={ref}\n {...forwardedProps}\n className={classNames(className, handleBasicClasses({ prefix: CLASSNAME, hasBefore, hasDividers, theme }))}\n >\n {children}\n </table>\n );\n});\nTable.displayName = COMPONENT_NAME;\nTable.className = CLASSNAME;\nTable.defaultProps = DEFAULT_PROPS;\n","import classNames from 'classnames';\n\nimport { GenericProps } from '@lumx/react/utils/type';\nimport { getRootClassName } from '@lumx/core/js/utils/className';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\n/**\n * Defines the props of the component.\n */\nexport interface TableBodyProps extends GenericProps {\n /** Children */\n children?: React.ReactNode;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'TableBody';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME, true);\n\n/**\n * TableBody component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const TableBody = forwardRef<TableBodyProps, HTMLTableSectionElement>((props, ref) => {\n const { children, className, ...forwardedProps } = props;\n\n return (\n <tbody ref={ref} {...forwardedProps} className={classNames(className, CLASSNAME)}>\n {children}\n </tbody>\n );\n});\nTableBody.displayName = COMPONENT_NAME;\nTableBody.className = CLASSNAME;\n","import classNames from 'classnames';\n\nimport { mdiArrowDown, mdiArrowUp } from '@lumx/icons';\nimport { Icon, Size } from '@lumx/react';\nimport { GenericProps, ValueOf } from '@lumx/react/utils/type';\nimport { getRootClassName, handleBasicClasses } from '@lumx/core/js/utils/className';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\n/**\n * Table head cell sort order.\n */\nexport const ThOrder = { asc: 'asc', desc: 'desc' } as const;\nexport type ThOrder = ValueOf<typeof ThOrder>;\n\n/**\n * Table cell variants.\n */\nexport const TableCellVariant = { body: 'body', head: 'head' } as const;\nexport type TableCellVariant = ValueOf<typeof TableCellVariant>;\n\n/**\n * Defines the props of the component.\n */\nexport interface TableCellProps extends GenericProps {\n /** Icon (SVG path).(thead only). */\n icon?: string;\n /** Whether the column is sortable or not (thead only). */\n isSortable?: boolean;\n /** Sort order displayed as icon (sortable thead only). */\n sortOrder?: ThOrder;\n /** Variant. */\n variant?: TableCellVariant;\n /** On header cell click callback. */\n onHeaderClick?(): void;\n /** Children */\n children?: React.ReactNode;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'TableCell';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME, true);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<TableCellProps> = {\n variant: TableCellVariant.body,\n};\n\n/**\n * TableCell component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const TableCell = forwardRef<TableCellProps, HTMLTableCellElement>((props, ref) => {\n const {\n children,\n className,\n icon,\n isSortable,\n onHeaderClick,\n sortOrder,\n variant = DEFAULT_PROPS.variant,\n ...forwardedProps\n } = props;\n\n // Use button if clickable\n const Wrapper = onHeaderClick ? 'button' : 'div';\n const wrapperProps = Wrapper === 'button' ? ({ type: 'button', onClick: onHeaderClick } as const) : undefined;\n\n // ARIA sort\n let ariaSort: 'ascending' | 'descending' | 'none' | undefined;\n if (isSortable) {\n ariaSort = 'none';\n if (sortOrder === ThOrder.asc) ariaSort = 'ascending';\n if (sortOrder === ThOrder.desc) ariaSort = 'descending';\n }\n\n return (\n <>\n {variant === TableCellVariant.head && (\n <th\n ref={ref}\n {...forwardedProps}\n className={classNames(\n handleBasicClasses({\n prefix: CLASSNAME,\n isSortable,\n isSorted: isSortable && !!sortOrder,\n }),\n className,\n `${CLASSNAME}--head`,\n )}\n aria-sort={ariaSort}\n >\n <Wrapper className={`${CLASSNAME}-wrapper`} {...wrapperProps}>\n {icon && !isSortable && <Icon className={`${CLASSNAME}-icon`} icon={icon} size={Size.xxs} />}\n\n {isSortable && sortOrder === ThOrder.asc && (\n <Icon className={`${CLASSNAME}-icon`} icon={mdiArrowUp} size={Size.xxs} />\n )}\n\n {isSortable && sortOrder === ThOrder.desc && (\n <Icon className={`${CLASSNAME}-icon`} icon={mdiArrowDown} size={Size.xxs} />\n )}\n\n <div className={`${CLASSNAME}-content`}>{children}</div>\n </Wrapper>\n </th>\n )}\n\n {variant === TableCellVariant.body && (\n <td {...forwardedProps} className={classNames(className, CLASSNAME, `${CLASSNAME}--body`)}>\n <div className={`${CLASSNAME}-content`}>{children}</div>\n </td>\n )}\n </>\n );\n});\nTableCell.displayName = COMPONENT_NAME;\nTableCell.className = CLASSNAME;\nTableCell.defaultProps = DEFAULT_PROPS;\n","import classNames from 'classnames';\n\nimport { GenericProps } from '@lumx/react/utils/type';\nimport { getRootClassName } from '@lumx/core/js/utils/className';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\n/**\n * Defines the props of the component.\n */\nexport interface TableHeaderProps extends GenericProps {\n /** Children */\n children?: React.ReactNode;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'TableHeader';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME, true);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<TableHeaderProps> = {};\n\n/**\n * TableHeader component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const TableHeader = forwardRef<TableHeaderProps, HTMLTableSectionElement>((props, ref) => {\n const { children, className, ...forwardedProps } = props;\n\n return (\n <thead ref={ref} {...forwardedProps} className={classNames(className, CLASSNAME)}>\n {children}\n </thead>\n );\n});\nTableHeader.displayName = COMPONENT_NAME;\nTableHeader.className = CLASSNAME;\nTableHeader.defaultProps = DEFAULT_PROPS;\n","import classNames from 'classnames';\n\nimport { GenericProps } from '@lumx/react/utils/type';\nimport { getRootClassName, handleBasicClasses } from '@lumx/core/js/utils/className';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\nimport { useDisableStateProps } from '@lumx/react/utils/disabled/useDisableStateProps';\n\n/**\n * Defines the props of the component.\n */\nexport interface TableRowProps extends GenericProps {\n /** Whether the component is clickable or not. */\n isClickable?: boolean;\n /** Whether the component is disabled or not. */\n isDisabled?: boolean;\n /** Whether the component is selected or not. */\n isSelected?: boolean;\n /** Children */\n children?: React.ReactNode;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'TableRow';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME, true);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<TableRowProps> = {};\n\n/**\n * TableRow component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const TableRow = forwardRef<TableRowProps, HTMLTableRowElement>((props, ref) => {\n const { isAnyDisabled, disabledStateProps, otherProps } = useDisableStateProps(props);\n const { children, className, isClickable, isSelected, ...forwardedProps } = otherProps;\n\n return (\n <tr\n ref={ref}\n tabIndex={isClickable && !disabledStateProps.disabled ? 0 : -1}\n {...forwardedProps}\n className={classNames(\n className,\n handleBasicClasses({\n isClickable: isClickable && !isAnyDisabled,\n isDisabled: isAnyDisabled,\n isSelected: isSelected && !isAnyDisabled,\n prefix: CLASSNAME,\n }),\n )}\n aria-disabled={isAnyDisabled}\n >\n {children}\n </tr>\n );\n});\n\nTableRow.displayName = COMPONENT_NAME;\nTableRow.className = CLASSNAME;\nTableRow.defaultProps = DEFAULT_PROPS;\n"],"names":["COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","Table","forwardRef","props","ref","defaultTheme","useTheme","Theme","light","children","className","hasBefore","hasDividers","theme","forwardedProps","React","createElement","_extends","classNames","handleBasicClasses","prefix","displayName","defaultProps","TableBody","ThOrder","asc","desc","TableCellVariant","body","head","variant","TableCell","icon","isSortable","onHeaderClick","sortOrder","Wrapper","wrapperProps","type","onClick","undefined","ariaSort","Fragment","isSorted","Icon","size","Size","xxs","mdiArrowUp","mdiArrowDown","TableHeader","TableRow","isAnyDisabled","disabledStateProps","otherProps","useDisableStateProps","isClickable","isSelected","tabIndex","disabled","isDisabled"],"mappings":"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"}
1
+ {"version":3,"file":"table-8617b1ba.js","sources":["../../../src/components/table/Table.tsx","../../../src/components/table/TableBody.tsx","../../../src/components/table/TableCell.tsx","../../../src/components/table/TableHeader.tsx","../../../src/components/table/TableRow.tsx"],"sourcesContent":["import classNames from 'classnames';\n\nimport { Theme } from '@lumx/react';\nimport { GenericProps, HasTheme } from '@lumx/react/utils/type';\nimport { getRootClassName, handleBasicClasses } from '@lumx/core/js/utils/className';\nimport { useTheme } from '@lumx/react/utils/theme/ThemeContext';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\n/**\n * Defines the props of the component.\n */\nexport interface TableProps extends GenericProps, HasTheme {\n /** Whether the table has checkbox or thumbnail on first cell or not. */\n hasBefore?: boolean;\n /** Whether the table has dividers or not. */\n hasDividers?: boolean;\n /** Children */\n children?: React.ReactNode;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'Table';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<TableProps> = {};\n\n/**\n * Table component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const Table = forwardRef<TableProps, HTMLTableElement>((props, ref) => {\n const defaultTheme = useTheme() || Theme.light;\n const { children, className, hasBefore, hasDividers, theme = defaultTheme, ...forwardedProps } = props;\n\n return (\n <table\n ref={ref}\n {...forwardedProps}\n className={classNames(className, handleBasicClasses({ prefix: CLASSNAME, hasBefore, hasDividers, theme }))}\n >\n {children}\n </table>\n );\n});\nTable.displayName = COMPONENT_NAME;\nTable.className = CLASSNAME;\nTable.defaultProps = DEFAULT_PROPS;\n","import classNames from 'classnames';\n\nimport { GenericProps } from '@lumx/react/utils/type';\nimport { getRootClassName } from '@lumx/core/js/utils/className';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\n/**\n * Defines the props of the component.\n */\nexport interface TableBodyProps extends GenericProps {\n /** Children */\n children?: React.ReactNode;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'TableBody';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME, true);\n\n/**\n * TableBody component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const TableBody = forwardRef<TableBodyProps, HTMLTableSectionElement>((props, ref) => {\n const { children, className, ...forwardedProps } = props;\n\n return (\n <tbody ref={ref} {...forwardedProps} className={classNames(className, CLASSNAME)}>\n {children}\n </tbody>\n );\n});\nTableBody.displayName = COMPONENT_NAME;\nTableBody.className = CLASSNAME;\n","import classNames from 'classnames';\n\nimport { mdiArrowDown, mdiArrowUp } from '@lumx/icons';\nimport { Icon, Size } from '@lumx/react';\nimport { GenericProps, ValueOf } from '@lumx/react/utils/type';\nimport { getRootClassName, handleBasicClasses } from '@lumx/core/js/utils/className';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\n/**\n * Table head cell sort order.\n */\nexport const ThOrder = { asc: 'asc', desc: 'desc' } as const;\nexport type ThOrder = ValueOf<typeof ThOrder>;\n\n/**\n * Table cell variants.\n */\nexport const TableCellVariant = { body: 'body', head: 'head' } as const;\nexport type TableCellVariant = ValueOf<typeof TableCellVariant>;\n\n/**\n * Defines the props of the component.\n */\nexport interface TableCellProps extends GenericProps {\n /** Icon (SVG path).(thead only). */\n icon?: string;\n /** Whether the column is sortable or not (thead only). */\n isSortable?: boolean;\n /** Sort order displayed as icon (sortable thead only). */\n sortOrder?: ThOrder;\n /** Variant. */\n variant?: TableCellVariant;\n /** On header cell click callback. */\n onHeaderClick?(): void;\n /** Children */\n children?: React.ReactNode;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'TableCell';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME, true);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<TableCellProps> = {\n variant: TableCellVariant.body,\n};\n\n/**\n * TableCell component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const TableCell = forwardRef<TableCellProps, HTMLTableCellElement>((props, ref) => {\n const {\n children,\n className,\n icon,\n isSortable,\n onHeaderClick,\n sortOrder,\n variant = DEFAULT_PROPS.variant,\n ...forwardedProps\n } = props;\n\n // Use button if clickable\n const Wrapper = onHeaderClick ? 'button' : 'div';\n const wrapperProps = Wrapper === 'button' ? ({ type: 'button', onClick: onHeaderClick } as const) : undefined;\n\n // ARIA sort\n let ariaSort: 'ascending' | 'descending' | 'none' | undefined;\n if (isSortable) {\n ariaSort = 'none';\n if (sortOrder === ThOrder.asc) ariaSort = 'ascending';\n if (sortOrder === ThOrder.desc) ariaSort = 'descending';\n }\n\n return (\n <>\n {variant === TableCellVariant.head && (\n <th\n ref={ref}\n {...forwardedProps}\n className={classNames(\n handleBasicClasses({\n prefix: CLASSNAME,\n isSortable,\n isSorted: isSortable && !!sortOrder,\n }),\n className,\n `${CLASSNAME}--head`,\n )}\n aria-sort={ariaSort}\n >\n <Wrapper className={`${CLASSNAME}-wrapper`} {...wrapperProps}>\n {icon && !isSortable && <Icon className={`${CLASSNAME}-icon`} icon={icon} size={Size.xxs} />}\n\n {isSortable && sortOrder === ThOrder.asc && (\n <Icon className={`${CLASSNAME}-icon`} icon={mdiArrowUp} size={Size.xxs} />\n )}\n\n {isSortable && sortOrder === ThOrder.desc && (\n <Icon className={`${CLASSNAME}-icon`} icon={mdiArrowDown} size={Size.xxs} />\n )}\n\n <div className={`${CLASSNAME}-content`}>{children}</div>\n </Wrapper>\n </th>\n )}\n\n {variant === TableCellVariant.body && (\n <td {...forwardedProps} className={classNames(className, CLASSNAME, `${CLASSNAME}--body`)}>\n <div className={`${CLASSNAME}-content`}>{children}</div>\n </td>\n )}\n </>\n );\n});\nTableCell.displayName = COMPONENT_NAME;\nTableCell.className = CLASSNAME;\nTableCell.defaultProps = DEFAULT_PROPS;\n","import classNames from 'classnames';\n\nimport { GenericProps } from '@lumx/react/utils/type';\nimport { getRootClassName } from '@lumx/core/js/utils/className';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\n/**\n * Defines the props of the component.\n */\nexport interface TableHeaderProps extends GenericProps {\n /** Children */\n children?: React.ReactNode;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'TableHeader';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME, true);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<TableHeaderProps> = {};\n\n/**\n * TableHeader component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const TableHeader = forwardRef<TableHeaderProps, HTMLTableSectionElement>((props, ref) => {\n const { children, className, ...forwardedProps } = props;\n\n return (\n <thead ref={ref} {...forwardedProps} className={classNames(className, CLASSNAME)}>\n {children}\n </thead>\n );\n});\nTableHeader.displayName = COMPONENT_NAME;\nTableHeader.className = CLASSNAME;\nTableHeader.defaultProps = DEFAULT_PROPS;\n","import classNames from 'classnames';\n\nimport { GenericProps } from '@lumx/react/utils/type';\nimport { getRootClassName, handleBasicClasses } from '@lumx/core/js/utils/className';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\nimport { useDisableStateProps } from '@lumx/react/utils/disabled/useDisableStateProps';\n\n/**\n * Defines the props of the component.\n */\nexport interface TableRowProps extends GenericProps {\n /** Whether the component is clickable or not. */\n isClickable?: boolean;\n /** Whether the component is disabled or not. */\n isDisabled?: boolean;\n /** Whether the component is selected or not. */\n isSelected?: boolean;\n /** Children */\n children?: React.ReactNode;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'TableRow';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = getRootClassName(COMPONENT_NAME, true);\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<TableRowProps> = {};\n\n/**\n * TableRow component.\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const TableRow = forwardRef<TableRowProps, HTMLTableRowElement>((props, ref) => {\n const { isAnyDisabled, disabledStateProps, otherProps } = useDisableStateProps(props);\n const { children, className, isClickable, isSelected, ...forwardedProps } = otherProps;\n\n return (\n <tr\n ref={ref}\n tabIndex={isClickable && !disabledStateProps.disabled ? 0 : -1}\n {...forwardedProps}\n className={classNames(\n className,\n handleBasicClasses({\n isClickable: isClickable && !isAnyDisabled,\n isDisabled: isAnyDisabled,\n isSelected: isSelected && !isAnyDisabled,\n prefix: CLASSNAME,\n }),\n )}\n aria-disabled={isAnyDisabled}\n >\n {children}\n </tr>\n );\n});\n\nTableRow.displayName = COMPONENT_NAME;\nTableRow.className = CLASSNAME;\nTableRow.defaultProps = DEFAULT_PROPS;\n"],"names":["COMPONENT_NAME","CLASSNAME","getRootClassName","DEFAULT_PROPS","Table","forwardRef","props","ref","defaultTheme","useTheme","Theme","light","children","className","hasBefore","hasDividers","theme","forwardedProps","_jsx","classNames","handleBasicClasses","prefix","displayName","defaultProps","TableBody","ThOrder","asc","desc","TableCellVariant","body","head","variant","TableCell","icon","isSortable","onHeaderClick","sortOrder","Wrapper","wrapperProps","type","onClick","undefined","ariaSort","_jsxs","_Fragment","isSorted","Icon","size","Size","xxs","mdiArrowUp","mdiArrowDown","TableHeader","TableRow","isAnyDisabled","disabledStateProps","otherProps","useDisableStateProps","isClickable","isSelected","tabIndex","disabled","isDisabled"],"mappings":";;;;;;;;;AAoBA;AACA;AACA;AACA,MAAMA,gBAAc,GAAG,OAAO,CAAA;;AAE9B;AACA;AACA;AACA,MAAMC,WAAS,GAAGC,gBAAgB,CAACF,gBAAc,CAAC,CAAA;;AAElD;AACA;AACA;AACA,MAAMG,eAAkC,GAAG,EAAE,CAAA;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,KAAK,GAAGC,UAAU,CAA+B,CAACC,KAAK,EAAEC,GAAG,KAAK;EAC1E,MAAMC,YAAY,GAAGC,QAAQ,EAAE,IAAIC,KAAK,CAACC,KAAK,CAAA;EAC9C,MAAM;IAAEC,QAAQ;IAAEC,SAAS;IAAEC,SAAS;IAAEC,WAAW;AAAEC,IAAAA,KAAK,GAAGR,YAAY;IAAE,GAAGS,cAAAA;AAAe,GAAC,GAAGX,KAAK,CAAA;AAEtG,EAAA,oBACIY,GAAA,CAAA,OAAA,EAAA;AACIX,IAAAA,GAAG,EAAEA,GAAI;AAAA,IAAA,GACLU,cAAc;AAClBJ,IAAAA,SAAS,EAAEM,UAAU,CAACN,SAAS,EAAEO,kBAAkB,CAAC;AAAEC,MAAAA,MAAM,EAAEpB,WAAS;MAAEa,SAAS;MAAEC,WAAW;AAAEC,MAAAA,KAAAA;AAAM,KAAC,CAAC,CAAE;AAAAJ,IAAAA,QAAA,EAE1GA,QAAAA;AAAQ,GACN,CAAC,CAAA;AAEhB,CAAC,EAAC;AACFR,KAAK,CAACkB,WAAW,GAAGtB,gBAAc,CAAA;AAClCI,KAAK,CAACS,SAAS,GAAGZ,WAAS,CAAA;AAC3BG,KAAK,CAACmB,YAAY,GAAGpB,eAAa;;AC5ClC;AACA;AACA;AACA,MAAMH,gBAAc,GAAG,WAAW,CAAA;;AAElC;AACA;AACA;AACA,MAAMC,WAAS,GAAGC,gBAAgB,CAACF,gBAAc,EAAE,IAAI,CAAC,CAAA;;AAExD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMwB,SAAS,GAAGnB,UAAU,CAA0C,CAACC,KAAK,EAAEC,GAAG,KAAK;EACzF,MAAM;IAAEK,QAAQ;IAAEC,SAAS;IAAE,GAAGI,cAAAA;AAAe,GAAC,GAAGX,KAAK,CAAA;AAExD,EAAA,oBACIY,GAAA,CAAA,OAAA,EAAA;AAAOX,IAAAA,GAAG,EAAEA,GAAI;AAAA,IAAA,GAAKU,cAAc;AAAEJ,IAAAA,SAAS,EAAEM,UAAU,CAACN,SAAS,EAAEZ,WAAS,CAAE;AAAAW,IAAAA,QAAA,EAC5EA,QAAAA;AAAQ,GACN,CAAC,CAAA;AAEhB,CAAC,EAAC;AACFY,SAAS,CAACF,WAAW,GAAGtB,gBAAc,CAAA;AACtCwB,SAAS,CAACX,SAAS,GAAGZ,WAAS;;AC9BxB,MAAMwB,OAAO,GAAG;AAAEC,EAAAA,GAAG,EAAE,KAAK;AAAEC,EAAAA,IAAI,EAAE,MAAA;AAAO,EAAU;AAG5D;AACA;AACA;AACO,MAAMC,gBAAgB,GAAG;AAAEC,EAAAA,IAAI,EAAE,MAAM;AAAEC,EAAAA,IAAI,EAAE,MAAA;AAAO,EAAU;;AAGvE;AACA;AACA;;AAgBA;AACA;AACA;AACA,MAAM9B,gBAAc,GAAG,WAAW,CAAA;;AAElC;AACA;AACA;AACA,MAAMC,WAAS,GAAGC,gBAAgB,CAACF,gBAAc,EAAE,IAAI,CAAC,CAAA;;AAExD;AACA;AACA;AACA,MAAMG,eAAsC,GAAG;EAC3C4B,OAAO,EAAEH,gBAAgB,CAACC,IAAAA;AAC9B,CAAC,CAAA;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMG,SAAS,GAAG3B,UAAU,CAAuC,CAACC,KAAK,EAAEC,GAAG,KAAK;EACtF,MAAM;IACFK,QAAQ;IACRC,SAAS;IACToB,IAAI;IACJC,UAAU;IACVC,aAAa;IACbC,SAAS;IACTL,OAAO,GAAG5B,eAAa,CAAC4B,OAAO;IAC/B,GAAGd,cAAAA;AACP,GAAC,GAAGX,KAAK,CAAA;;AAET;AACA,EAAA,MAAM+B,OAAO,GAAGF,aAAa,GAAG,QAAQ,GAAG,KAAK,CAAA;AAChD,EAAA,MAAMG,YAAY,GAAGD,OAAO,KAAK,QAAQ,GAAI;AAAEE,IAAAA,IAAI,EAAE,QAAQ;AAAEC,IAAAA,OAAO,EAAEL,aAAAA;AAAc,GAAC,GAAaM,SAAS,CAAA;;AAE7G;AACA,EAAA,IAAIC,QAAyD,CAAA;AAC7D,EAAA,IAAIR,UAAU,EAAE;AACZQ,IAAAA,QAAQ,GAAG,MAAM,CAAA;IACjB,IAAIN,SAAS,KAAKX,OAAO,CAACC,GAAG,EAAEgB,QAAQ,GAAG,WAAW,CAAA;IACrD,IAAIN,SAAS,KAAKX,OAAO,CAACE,IAAI,EAAEe,QAAQ,GAAG,YAAY,CAAA;AAC3D,GAAA;EAEA,oBACIC,IAAA,CAAAC,QAAA,EAAA;AAAAhC,IAAAA,QAAA,GACKmB,OAAO,KAAKH,gBAAgB,CAACE,IAAI,iBAC9BZ,GAAA,CAAA,IAAA,EAAA;AACIX,MAAAA,GAAG,EAAEA,GAAI;AAAA,MAAA,GACLU,cAAc;AAClBJ,MAAAA,SAAS,EAAEM,UAAU,CACjBC,kBAAkB,CAAC;AACfC,QAAAA,MAAM,EAAEpB,WAAS;QACjBiC,UAAU;AACVW,QAAAA,QAAQ,EAAEX,UAAU,IAAI,CAAC,CAACE,SAAAA;AAC9B,OAAC,CAAC,EACFvB,SAAS,EACT,CAAGZ,EAAAA,WAAS,QAChB,CAAE;AACF,MAAA,WAAA,EAAWyC,QAAS;MAAA9B,QAAA,eAEpB+B,IAAA,CAACN,OAAO,EAAA;QAACxB,SAAS,EAAE,CAAGZ,EAAAA,WAAS,CAAW,QAAA,CAAA;AAAA,QAAA,GAAKqC,YAAY;QAAA1B,QAAA,EAAA,CACvDqB,IAAI,IAAI,CAACC,UAAU,iBAAIhB,GAAA,CAAC4B,IAAI,EAAA;UAACjC,SAAS,EAAE,CAAGZ,EAAAA,WAAS,CAAQ,KAAA,CAAA;AAACgC,UAAAA,IAAI,EAAEA,IAAK;UAACc,IAAI,EAAEC,IAAI,CAACC,GAAAA;AAAI,SAAE,CAAC,EAE3Ff,UAAU,IAAIE,SAAS,KAAKX,OAAO,CAACC,GAAG,iBACpCR,GAAA,CAAC4B,IAAI,EAAA;UAACjC,SAAS,EAAE,CAAGZ,EAAAA,WAAS,CAAQ,KAAA,CAAA;AAACgC,UAAAA,IAAI,EAAEiB,UAAW;UAACH,IAAI,EAAEC,IAAI,CAACC,GAAAA;AAAI,SAAE,CAC5E,EAEAf,UAAU,IAAIE,SAAS,KAAKX,OAAO,CAACE,IAAI,iBACrCT,GAAA,CAAC4B,IAAI,EAAA;UAACjC,SAAS,EAAE,CAAGZ,EAAAA,WAAS,CAAQ,KAAA,CAAA;AAACgC,UAAAA,IAAI,EAAEkB,YAAa;UAACJ,IAAI,EAAEC,IAAI,CAACC,GAAAA;SAAM,CAC9E,eAED/B,GAAA,CAAA,KAAA,EAAA;UAAKL,SAAS,EAAE,CAAGZ,EAAAA,WAAS,CAAW,QAAA,CAAA;AAAAW,UAAAA,QAAA,EAAEA,QAAAA;AAAQ,SAAM,CAAC,CAAA;OACnD,CAAA;KACT,CACP,EAEAmB,OAAO,KAAKH,gBAAgB,CAACC,IAAI,iBAC9BX,GAAA,CAAA,IAAA,EAAA;AAAA,MAAA,GAAQD,cAAc;MAAEJ,SAAS,EAAEM,UAAU,CAACN,SAAS,EAAEZ,WAAS,EAAE,CAAA,EAAGA,WAAS,CAAA,MAAA,CAAQ,CAAE;AAAAW,MAAAA,QAAA,eACtFM,GAAA,CAAA,KAAA,EAAA;QAAKL,SAAS,EAAE,CAAGZ,EAAAA,WAAS,CAAW,QAAA,CAAA;AAAAW,QAAAA,QAAA,EAAEA,QAAAA;OAAc,CAAA;AAAC,KACxD,CACP,CAAA;AAAA,GACH,CAAC,CAAA;AAEX,CAAC,EAAC;AACFoB,SAAS,CAACV,WAAW,GAAGtB,gBAAc,CAAA;AACtCgC,SAAS,CAACnB,SAAS,GAAGZ,WAAS,CAAA;AAC/B+B,SAAS,CAACT,YAAY,GAAGpB,eAAa;;ACnHtC;AACA;AACA;AACA,MAAMH,gBAAc,GAAG,aAAa,CAAA;;AAEpC;AACA;AACA;AACA,MAAMC,WAAS,GAAGC,gBAAgB,CAACF,gBAAc,EAAE,IAAI,CAAC,CAAA;;AAExD;AACA;AACA;AACA,MAAMG,eAAwC,GAAG,EAAE,CAAA;;AAEnD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMiD,WAAW,GAAG/C,UAAU,CAA4C,CAACC,KAAK,EAAEC,GAAG,KAAK;EAC7F,MAAM;IAAEK,QAAQ;IAAEC,SAAS;IAAE,GAAGI,cAAAA;AAAe,GAAC,GAAGX,KAAK,CAAA;AAExD,EAAA,oBACIY,GAAA,CAAA,OAAA,EAAA;AAAOX,IAAAA,GAAG,EAAEA,GAAI;AAAA,IAAA,GAAKU,cAAc;AAAEJ,IAAAA,SAAS,EAAEM,UAAU,CAACN,SAAS,EAAEZ,WAAS,CAAE;AAAAW,IAAAA,QAAA,EAC5EA,QAAAA;AAAQ,GACN,CAAC,CAAA;AAEhB,CAAC,EAAC;AACFwC,WAAW,CAAC9B,WAAW,GAAGtB,gBAAc,CAAA;AACxCoD,WAAW,CAACvC,SAAS,GAAGZ,WAAS,CAAA;AACjCmD,WAAW,CAAC7B,YAAY,GAAGpB,eAAa;;AC1BxC;AACA;AACA;AACA,MAAMH,cAAc,GAAG,UAAU,CAAA;;AAEjC;AACA;AACA;AACA,MAAMC,SAAS,GAAGC,gBAAgB,CAACF,cAAc,EAAE,IAAI,CAAC,CAAA;;AAExD;AACA;AACA;AACA,MAAMG,aAAqC,GAAG,EAAE,CAAA;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMkD,QAAQ,GAAGhD,UAAU,CAAqC,CAACC,KAAK,EAAEC,GAAG,KAAK;EACnF,MAAM;IAAE+C,aAAa;IAAEC,kBAAkB;AAAEC,IAAAA,UAAAA;AAAW,GAAC,GAAGC,oBAAoB,CAACnD,KAAK,CAAC,CAAA;EACrF,MAAM;IAAEM,QAAQ;IAAEC,SAAS;IAAE6C,WAAW;IAAEC,UAAU;IAAE,GAAG1C,cAAAA;AAAe,GAAC,GAAGuC,UAAU,CAAA;AAEtF,EAAA,oBACItC,GAAA,CAAA,IAAA,EAAA;AACIX,IAAAA,GAAG,EAAEA,GAAI;IACTqD,QAAQ,EAAEF,WAAW,IAAI,CAACH,kBAAkB,CAACM,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAE;AAAA,IAAA,GAC3D5C,cAAc;AAClBJ,IAAAA,SAAS,EAAEM,UAAU,CACjBN,SAAS,EACTO,kBAAkB,CAAC;AACfsC,MAAAA,WAAW,EAAEA,WAAW,IAAI,CAACJ,aAAa;AAC1CQ,MAAAA,UAAU,EAAER,aAAa;AACzBK,MAAAA,UAAU,EAAEA,UAAU,IAAI,CAACL,aAAa;AACxCjC,MAAAA,MAAM,EAAEpB,SAAAA;AACZ,KAAC,CACL,CAAE;AACF,IAAA,eAAA,EAAeqD,aAAc;AAAA1C,IAAAA,QAAA,EAE5BA,QAAAA;AAAQ,GACT,CAAC,CAAA;AAEb,CAAC,EAAC;AAEFyC,QAAQ,CAAC/B,WAAW,GAAGtB,cAAc,CAAA;AACrCqD,QAAQ,CAACxC,SAAS,GAAGZ,SAAS,CAAA;AAC9BoD,QAAQ,CAAC9B,YAAY,GAAGpB,aAAa;;;;"}
@@ -1,16 +1,17 @@
1
1
  import ReactDOM from 'react-dom';
2
2
  import React__default, { useReducer, useEffect, useCallback } from 'react';
3
3
  import { I as INIT_STATE, r as reducer, T as TabProviderContext, a as useTabProviderContext } from '../state-db358714.js';
4
- import { f as forwardRef, _ as _extends, c as classNames } from '../forwardRef-49d2bb84.js';
4
+ import { jsx, jsxs } from 'react/jsx-runtime';
5
+ import { f as forwardRef, c as classNames } from '../forwardRef-15f62847.js';
5
6
  import '../constants-d0e3f49e.js';
6
7
  import { handleBasicClasses } from '@lumx/core/js/utils/className';
7
8
  import { m as mergeRefs } from '../mergeRefs-f0d7d6ea.js';
8
9
  import { u as useTheme } from '../ThemeContext-3181f000.js';
9
10
  import { u as useRovingTabIndex } from '../useRovingTabIndex-7daf0f24.js';
10
11
  import { Alignment, Theme, CSS_PREFIX, Size } from '@lumx/core/js/constants';
11
- import { u as useDisableStateProps } from '../useDisableStateProps-fffc365f.js';
12
- import { Icon } from './icon-2e7345ad.js';
13
- import { T as Text } from '../index-b4d256e7.js';
12
+ import { u as useDisableStateProps } from '../useDisableStateProps-69e16b7c.js';
13
+ import { Icon } from './icon-b708cca4.js';
14
+ import { T as Text } from '../index-a9c5cd69.js';
14
15
 
15
16
  const DEFAULT_PROPS$3 = {
16
17
  isLazy: INIT_STATE.isLazy,
@@ -63,9 +64,10 @@ const TabProvider = props => {
63
64
  },
64
65
  // eslint-disable-next-line react-hooks/exhaustive-deps
65
66
  [onChange, state.activeTabIndex]);
66
- return /*#__PURE__*/React.createElement(TabProviderContext.Provider, {
67
- value: [state, dispatch]
68
- }, children);
67
+ return /*#__PURE__*/jsx(TabProviderContext.Provider, {
68
+ value: [state, dispatch],
69
+ children: children
70
+ });
69
71
  };
70
72
  TabProvider.defaultProps = DEFAULT_PROPS$3;
71
73
 
@@ -124,29 +126,27 @@ const TabList = forwardRef((props, ref) => {
124
126
  keepTabIndex: false,
125
127
  extraDependencies: [children]
126
128
  });
127
- return /*#__PURE__*/React__default.createElement("div", _extends({
128
- ref: mergeRefs(ref, tabListRef)
129
- }, forwardedProps, {
129
+ return /*#__PURE__*/jsx("div", {
130
+ ref: mergeRefs(ref, tabListRef),
131
+ ...forwardedProps,
130
132
  className: classNames(className, handleBasicClasses({
131
133
  prefix: CLASSNAME$2,
132
134
  layout,
133
135
  position,
134
136
  theme
135
- }))
136
- }), /*#__PURE__*/React__default.createElement("div", {
137
- className: `${CLASSNAME$2}__links`,
138
- role: "tablist",
139
- "aria-label": ariaLabel
140
- }, children));
137
+ })),
138
+ children: /*#__PURE__*/jsx("div", {
139
+ className: `${CLASSNAME$2}__links`,
140
+ role: "tablist",
141
+ "aria-label": ariaLabel,
142
+ children: children
143
+ })
144
+ });
141
145
  });
142
146
  TabList.displayName = COMPONENT_NAME$2;
143
147
  TabList.className = CLASSNAME$2;
144
148
  TabList.defaultProps = DEFAULT_PROPS$2;
145
149
 
146
- /**
147
- * Defines the props of the component.
148
- */
149
-
150
150
  /**
151
151
  * Component display name.
152
152
  */
@@ -209,9 +209,9 @@ const Tab = forwardRef((props, ref) => {
209
209
  }
210
210
  changeToCurrentTab();
211
211
  }, [changeToCurrentTab, isAnyDisabled, onKeyPress]);
212
- return /*#__PURE__*/React.createElement("button", _extends({
213
- ref: ref
214
- }, forwardedProps, {
212
+ return /*#__PURE__*/jsxs("button", {
213
+ ref: ref,
214
+ ...forwardedProps,
215
215
  type: "button",
216
216
  id: state?.tabId,
217
217
  className: classNames(className, handleBasicClasses({
@@ -226,23 +226,22 @@ const Tab = forwardRef((props, ref) => {
226
226
  tabIndex: isActive ? 0 : tabIndex,
227
227
  "aria-disabled": isAnyDisabled,
228
228
  "aria-selected": isActive,
229
- "aria-controls": state?.tabPanelId
230
- }), icon && /*#__PURE__*/React.createElement(Icon, _extends({
231
- icon: icon,
232
- size: Size.xs
233
- }, iconProps)), label && /*#__PURE__*/React.createElement(Text, {
234
- as: "span",
235
- truncate: true
236
- }, label));
229
+ "aria-controls": state?.tabPanelId,
230
+ children: [icon && /*#__PURE__*/jsx(Icon, {
231
+ icon: icon,
232
+ size: Size.xs,
233
+ ...iconProps
234
+ }), label && /*#__PURE__*/jsx(Text, {
235
+ as: "span",
236
+ truncate: true,
237
+ children: label
238
+ })]
239
+ });
237
240
  });
238
241
  Tab.displayName = COMPONENT_NAME$1;
239
242
  Tab.className = CLASSNAME$1;
240
243
  Tab.defaultProps = DEFAULT_PROPS$1;
241
244
 
242
- /**
243
- * Defines the props of the component.
244
- */
245
-
246
245
  /**
247
246
  * Component display name.
248
247
  */
@@ -277,9 +276,9 @@ const TabPanel = forwardRef((props, ref) => {
277
276
  } = props;
278
277
  const state = useTabProviderContext('tabPanel', id);
279
278
  const isActive = propIsActive || state?.isActive;
280
- return /*#__PURE__*/React.createElement("div", _extends({
281
- ref: ref
282
- }, forwardedProps, {
279
+ return /*#__PURE__*/jsx("div", {
280
+ ref: ref,
281
+ ...forwardedProps,
283
282
  id: state?.tabPanelId,
284
283
  className: classNames(className, handleBasicClasses({
285
284
  prefix: CLASSNAME,
@@ -287,12 +286,13 @@ const TabPanel = forwardRef((props, ref) => {
287
286
  })),
288
287
  role: "tabpanel",
289
288
  tabIndex: isActive ? 0 : -1,
290
- "aria-labelledby": state?.tabId
291
- }), (!state?.isLazy || isActive) && children);
289
+ "aria-labelledby": state?.tabId,
290
+ children: (!state?.isLazy || isActive) && children
291
+ });
292
292
  });
293
293
  TabPanel.displayName = COMPONENT_NAME;
294
294
  TabPanel.className = CLASSNAME;
295
295
  TabPanel.defaultProps = DEFAULT_PROPS;
296
296
 
297
297
  export { Tab, TabList, TabListLayout, TabPanel, TabProvider };
298
- //# sourceMappingURL=tabs-bb9bc2a5.js.map
298
+ //# sourceMappingURL=tabs-884c57b6.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tabs-bb9bc2a5.js","sources":["../../../src/components/tabs/TabProvider.tsx","../../../src/components/tabs/TabList.tsx","../../../src/components/tabs/Tab.tsx","../../../src/components/tabs/TabPanel.tsx"],"sourcesContent":["import ReactDOM from 'react-dom';\nimport { ReactNode, useEffect, useReducer } from 'react';\nimport { INIT_STATE, TabProviderContext, reducer } from './state';\n\nexport interface TabProviderProps {\n /** Active tab index. */\n activeTabIndex?: number;\n /** Tab provider children. */\n children: ReactNode;\n /** Tab panel children should not render if the tab panel is hidden. */\n isLazy?: boolean;\n /** Activate tabs on focus. */\n shouldActivateOnFocus?: boolean;\n\n /** Tab change callback. */\n onChange?(index: number): void;\n}\n\nconst DEFAULT_PROPS: Partial<TabProviderProps> = {\n isLazy: INIT_STATE.isLazy,\n shouldActivateOnFocus: INIT_STATE.shouldActivateOnFocus,\n};\n\n/**\n * This component provides a context in which tabs can be defined and linked to their tab panel.\n *\n * It does not produce any markup so you can wrap it around any React elements and then split the TabList and TabPanel\n * components in the react tree.\n *\n * @param props React component props.\n * @return React element.\n */\nexport const TabProvider: React.FC<TabProviderProps> = (props) => {\n const { children, onChange, ...propState } = props;\n const [state, dispatch] = useReducer(reducer, INIT_STATE);\n\n // On prop state change => dispatch update.\n useEffect(\n () => {\n dispatch({ type: 'update', payload: { ...DEFAULT_PROPS, ...propState } });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [dispatch, ...Object.values(propState)],\n );\n\n // On active tab index state change => send update to the onChange.\n useEffect(\n () => {\n if (state === INIT_STATE || !onChange || propState.activeTabIndex === state.activeTabIndex) {\n return;\n }\n\n // Escape rendering/useEffect context\n queueMicrotask(() => {\n // Wait for React to commit last state changes (avoid looping state update)\n ReactDOM.flushSync(() => {\n onChange(state.activeTabIndex);\n });\n });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [onChange, state.activeTabIndex],\n );\n\n return <TabProviderContext.Provider value={[state, dispatch]}>{children}</TabProviderContext.Provider>;\n};\nTabProvider.defaultProps = DEFAULT_PROPS;\n","import React, { ReactNode } from 'react';\n\nimport classNames from 'classnames';\n\nimport { Alignment, Theme } from '@lumx/react';\nimport { CSS_PREFIX } from '@lumx/react/constants';\nimport { GenericProps, HasTheme } from '@lumx/react/utils/type';\nimport { handleBasicClasses } from '@lumx/core/js/utils/className';\nimport { mergeRefs } from '@lumx/react/utils/react/mergeRefs';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\nimport { useTheme } from '@lumx/react/utils/theme/ThemeContext';\n\nimport { useRovingTabIndex } from '../../hooks/useRovingTabIndex';\n\nexport enum TabListLayout {\n clustered = 'clustered',\n fixed = 'fixed',\n}\n\n/**\n * Defines the props of the component.\n */\nexport interface TabListProps extends GenericProps, HasTheme {\n /** ARIA label (purpose of the set of tabs). */\n ['aria-label']: string;\n /** Tab list. */\n children: ReactNode;\n /** Layout of the tabs in the list. */\n layout?: TabListLayout;\n /** Position of the tabs in the list (requires 'clustered' layout). */\n position?: Alignment;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'TabList';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = `${CSS_PREFIX}-tabs`;\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<TabListProps> = {\n layout: TabListLayout.fixed,\n position: Alignment.left,\n};\n\n/**\n * TabList component.\n *\n * Implements WAI-ARIA `tablist` role {@see https://www.w3.org/TR/wai-aria-practices-1.1/examples/tabs/tabs-1/tabs.html#rps_label}\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const TabList = forwardRef<TabListProps, HTMLDivElement>((props, ref) => {\n const defaultTheme = useTheme() || Theme.light;\n const {\n 'aria-label': ariaLabel,\n children,\n className,\n layout = DEFAULT_PROPS.layout,\n position = DEFAULT_PROPS.position,\n theme = defaultTheme,\n ...forwardedProps\n } = props;\n const tabListRef = React.useRef(null);\n useRovingTabIndex({\n parentRef: tabListRef,\n elementSelector: '[role=\"tab\"]',\n keepTabIndex: false,\n extraDependencies: [children],\n });\n\n return (\n <div\n ref={mergeRefs(ref, tabListRef)}\n {...forwardedProps}\n className={classNames(className, handleBasicClasses({ prefix: CLASSNAME, layout, position, theme }))}\n >\n <div className={`${CLASSNAME}__links`} role=\"tablist\" aria-label={ariaLabel}>\n {children}\n </div>\n </div>\n );\n});\nTabList.displayName = COMPONENT_NAME;\nTabList.className = CLASSNAME;\nTabList.defaultProps = DEFAULT_PROPS;\n","import { FocusEventHandler, KeyboardEventHandler, ReactNode, useCallback } from 'react';\n\nimport classNames from 'classnames';\n\nimport { Icon, IconProps, Size, Text } from '@lumx/react';\nimport { CSS_PREFIX } from '@lumx/react/constants';\nimport { GenericProps } from '@lumx/react/utils/type';\nimport { handleBasicClasses } from '@lumx/core/js/utils/className';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\nimport { useDisableStateProps } from '@lumx/react/utils/disabled/useDisableStateProps';\nimport { useTabProviderContext } from './state';\n\n/**\n * Defines the props of the component.\n */\nexport interface TabProps extends GenericProps {\n /** Children are not supported. */\n children?: never;\n /** Icon (SVG path). */\n icon?: IconProps['icon'];\n /** Icon component properties. */\n iconProps?: Omit<IconProps, 'icon'>;\n /** Native id property. */\n id?: string;\n /** Whether the tab is active or not. */\n isActive?: boolean;\n /** Whether the component is disabled or not. */\n isDisabled?: boolean;\n /** Label content. */\n label: string | ReactNode;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'Tab';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = `${CSS_PREFIX}-tabs__link`;\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<TabProps> = {};\n\n/**\n * Tab component.\n *\n * Implements WAI-ARIA `tab` role {@see https://www.w3.org/TR/wai-aria-practices-1.1/examples/tabs/tabs-1/tabs.html#rps_label}\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const Tab = forwardRef<TabProps, HTMLButtonElement>((props, ref) => {\n const { isAnyDisabled, otherProps } = useDisableStateProps(props);\n const {\n className,\n icon,\n iconProps = {},\n id,\n isActive: propIsActive,\n label,\n onFocus,\n onKeyPress,\n tabIndex = -1,\n ...forwardedProps\n } = otherProps;\n const state = useTabProviderContext('tab', id);\n const isActive = propIsActive || state?.isActive;\n\n const changeToCurrentTab = useCallback(() => {\n if (isAnyDisabled) {\n return;\n }\n state?.changeToTab();\n }, [isAnyDisabled, state]);\n\n const handleFocus: FocusEventHandler = useCallback(\n (event) => {\n onFocus?.(event);\n if (state?.shouldActivateOnFocus) {\n changeToCurrentTab();\n }\n },\n [changeToCurrentTab, onFocus, state?.shouldActivateOnFocus],\n );\n\n const handleKeyPress: KeyboardEventHandler = useCallback(\n (event) => {\n onKeyPress?.(event);\n if (event.key !== 'Enter' || isAnyDisabled) {\n return;\n }\n changeToCurrentTab();\n },\n [changeToCurrentTab, isAnyDisabled, onKeyPress],\n );\n\n return (\n <button\n ref={ref}\n {...forwardedProps}\n type=\"button\"\n id={state?.tabId}\n className={classNames(\n className,\n handleBasicClasses({ prefix: CLASSNAME, isActive, isDisabled: isAnyDisabled }),\n )}\n onClick={changeToCurrentTab}\n onKeyPress={handleKeyPress}\n onFocus={handleFocus}\n role=\"tab\"\n tabIndex={isActive ? 0 : tabIndex}\n aria-disabled={isAnyDisabled}\n aria-selected={isActive}\n aria-controls={state?.tabPanelId}\n >\n {icon && <Icon icon={icon} size={Size.xs} {...iconProps} />}\n {label && (\n <Text as=\"span\" truncate>\n {label}\n </Text>\n )}\n </button>\n );\n});\nTab.displayName = COMPONENT_NAME;\nTab.className = CLASSNAME;\nTab.defaultProps = DEFAULT_PROPS;\n","import classNames from 'classnames';\n\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\nimport { useTabProviderContext } from '@lumx/react/components/tabs/state';\nimport { CSS_PREFIX } from '@lumx/react/constants';\nimport { GenericProps } from '@lumx/react/utils/type';\nimport { handleBasicClasses } from '@lumx/core/js/utils/className';\n\n/**\n * Defines the props of the component.\n */\nexport interface TabPanelProps extends GenericProps {\n /** Native id property */\n id?: string;\n /** Whether the tab is active or not. */\n isActive?: boolean;\n /** Children */\n children?: React.ReactNode;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'TabPanel';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = `${CSS_PREFIX}-tab-panel`;\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<TabPanelProps> = {};\n\n/**\n * TabPanel component.\n *\n * Implements WAI-ARIA `tabpanel` role {@see https://www.w3.org/TR/wai-aria-practices-1.1/examples/tabs/tabs-1/tabs.html#rps_label}\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const TabPanel = forwardRef<TabPanelProps, HTMLDivElement>((props, ref) => {\n const { children, id, className, isActive: propIsActive, ...forwardedProps } = props;\n\n const state = useTabProviderContext('tabPanel', id);\n const isActive = propIsActive || state?.isActive;\n\n return (\n <div\n ref={ref}\n {...forwardedProps}\n id={state?.tabPanelId}\n className={classNames(className, handleBasicClasses({ prefix: CLASSNAME, isActive }))}\n role=\"tabpanel\"\n tabIndex={isActive ? 0 : -1}\n aria-labelledby={state?.tabId}\n >\n {(!state?.isLazy || isActive) && children}\n </div>\n );\n});\nTabPanel.displayName = COMPONENT_NAME;\nTabPanel.className = CLASSNAME;\nTabPanel.defaultProps = DEFAULT_PROPS;\n"],"names":["DEFAULT_PROPS","isLazy","INIT_STATE","shouldActivateOnFocus","TabProvider","props","children","onChange","propState","state","dispatch","useReducer","reducer","useEffect","type","payload","Object","values","activeTabIndex","queueMicrotask","ReactDOM","flushSync","React","createElement","TabProviderContext","Provider","value","defaultProps","TabListLayout","COMPONENT_NAME","CLASSNAME","CSS_PREFIX","layout","fixed","position","Alignment","left","TabList","forwardRef","ref","defaultTheme","useTheme","Theme","light","ariaLabel","className","theme","forwardedProps","tabListRef","useRef","useRovingTabIndex","parentRef","elementSelector","keepTabIndex","extraDependencies","_extends","mergeRefs","classNames","handleBasicClasses","prefix","role","displayName","Tab","isAnyDisabled","otherProps","useDisableStateProps","icon","iconProps","id","isActive","propIsActive","label","onFocus","onKeyPress","tabIndex","useTabProviderContext","changeToCurrentTab","useCallback","changeToTab","handleFocus","event","handleKeyPress","key","tabId","isDisabled","onClick","tabPanelId","Icon","size","Size","xs","Text","as","truncate","TabPanel"],"mappings":"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"}
1
+ {"version":3,"file":"tabs-884c57b6.js","sources":["../../../src/components/tabs/TabProvider.tsx","../../../src/components/tabs/TabList.tsx","../../../src/components/tabs/Tab.tsx","../../../src/components/tabs/TabPanel.tsx"],"sourcesContent":["import ReactDOM from 'react-dom';\nimport { ReactNode, useEffect, useReducer } from 'react';\nimport { INIT_STATE, TabProviderContext, reducer } from './state';\n\nexport interface TabProviderProps {\n /** Active tab index. */\n activeTabIndex?: number;\n /** Tab provider children. */\n children: ReactNode;\n /** Tab panel children should not render if the tab panel is hidden. */\n isLazy?: boolean;\n /** Activate tabs on focus. */\n shouldActivateOnFocus?: boolean;\n\n /** Tab change callback. */\n onChange?(index: number): void;\n}\n\nconst DEFAULT_PROPS: Partial<TabProviderProps> = {\n isLazy: INIT_STATE.isLazy,\n shouldActivateOnFocus: INIT_STATE.shouldActivateOnFocus,\n};\n\n/**\n * This component provides a context in which tabs can be defined and linked to their tab panel.\n *\n * It does not produce any markup so you can wrap it around any React elements and then split the TabList and TabPanel\n * components in the react tree.\n *\n * @param props React component props.\n * @return React element.\n */\nexport const TabProvider: React.FC<TabProviderProps> = (props) => {\n const { children, onChange, ...propState } = props;\n const [state, dispatch] = useReducer(reducer, INIT_STATE);\n\n // On prop state change => dispatch update.\n useEffect(\n () => {\n dispatch({ type: 'update', payload: { ...DEFAULT_PROPS, ...propState } });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [dispatch, ...Object.values(propState)],\n );\n\n // On active tab index state change => send update to the onChange.\n useEffect(\n () => {\n if (state === INIT_STATE || !onChange || propState.activeTabIndex === state.activeTabIndex) {\n return;\n }\n\n // Escape rendering/useEffect context\n queueMicrotask(() => {\n // Wait for React to commit last state changes (avoid looping state update)\n ReactDOM.flushSync(() => {\n onChange(state.activeTabIndex);\n });\n });\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [onChange, state.activeTabIndex],\n );\n\n return <TabProviderContext.Provider value={[state, dispatch]}>{children}</TabProviderContext.Provider>;\n};\nTabProvider.defaultProps = DEFAULT_PROPS;\n","import React, { ReactNode } from 'react';\n\nimport classNames from 'classnames';\n\nimport { Alignment, Theme } from '@lumx/react';\nimport { CSS_PREFIX } from '@lumx/react/constants';\nimport { GenericProps, HasTheme } from '@lumx/react/utils/type';\nimport { handleBasicClasses } from '@lumx/core/js/utils/className';\nimport { mergeRefs } from '@lumx/react/utils/react/mergeRefs';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\nimport { useTheme } from '@lumx/react/utils/theme/ThemeContext';\n\nimport { useRovingTabIndex } from '../../hooks/useRovingTabIndex';\n\nexport enum TabListLayout {\n clustered = 'clustered',\n fixed = 'fixed',\n}\n\n/**\n * Defines the props of the component.\n */\nexport interface TabListProps extends GenericProps, HasTheme {\n /** ARIA label (purpose of the set of tabs). */\n ['aria-label']: string;\n /** Tab list. */\n children: ReactNode;\n /** Layout of the tabs in the list. */\n layout?: TabListLayout;\n /** Position of the tabs in the list (requires 'clustered' layout). */\n position?: Alignment;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'TabList';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = `${CSS_PREFIX}-tabs`;\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<TabListProps> = {\n layout: TabListLayout.fixed,\n position: Alignment.left,\n};\n\n/**\n * TabList component.\n *\n * Implements WAI-ARIA `tablist` role {@see https://www.w3.org/TR/wai-aria-practices-1.1/examples/tabs/tabs-1/tabs.html#rps_label}\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const TabList = forwardRef<TabListProps, HTMLDivElement>((props, ref) => {\n const defaultTheme = useTheme() || Theme.light;\n const {\n 'aria-label': ariaLabel,\n children,\n className,\n layout = DEFAULT_PROPS.layout,\n position = DEFAULT_PROPS.position,\n theme = defaultTheme,\n ...forwardedProps\n } = props;\n const tabListRef = React.useRef(null);\n useRovingTabIndex({\n parentRef: tabListRef,\n elementSelector: '[role=\"tab\"]',\n keepTabIndex: false,\n extraDependencies: [children],\n });\n\n return (\n <div\n ref={mergeRefs(ref, tabListRef)}\n {...forwardedProps}\n className={classNames(className, handleBasicClasses({ prefix: CLASSNAME, layout, position, theme }))}\n >\n <div className={`${CLASSNAME}__links`} role=\"tablist\" aria-label={ariaLabel}>\n {children}\n </div>\n </div>\n );\n});\nTabList.displayName = COMPONENT_NAME;\nTabList.className = CLASSNAME;\nTabList.defaultProps = DEFAULT_PROPS;\n","import { FocusEventHandler, KeyboardEventHandler, ReactNode, useCallback } from 'react';\n\nimport classNames from 'classnames';\n\nimport { Icon, IconProps, Size, Text } from '@lumx/react';\nimport { CSS_PREFIX } from '@lumx/react/constants';\nimport { GenericProps } from '@lumx/react/utils/type';\nimport { handleBasicClasses } from '@lumx/core/js/utils/className';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\nimport { useDisableStateProps } from '@lumx/react/utils/disabled/useDisableStateProps';\nimport { useTabProviderContext } from './state';\n\n/**\n * Defines the props of the component.\n */\nexport interface TabProps extends GenericProps {\n /** Children are not supported. */\n children?: never;\n /** Icon (SVG path). */\n icon?: IconProps['icon'];\n /** Icon component properties. */\n iconProps?: Omit<IconProps, 'icon'>;\n /** Native id property. */\n id?: string;\n /** Whether the tab is active or not. */\n isActive?: boolean;\n /** Whether the component is disabled or not. */\n isDisabled?: boolean;\n /** Label content. */\n label: string | ReactNode;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'Tab';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = `${CSS_PREFIX}-tabs__link`;\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<TabProps> = {};\n\n/**\n * Tab component.\n *\n * Implements WAI-ARIA `tab` role {@see https://www.w3.org/TR/wai-aria-practices-1.1/examples/tabs/tabs-1/tabs.html#rps_label}\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const Tab = forwardRef<TabProps, HTMLButtonElement>((props, ref) => {\n const { isAnyDisabled, otherProps } = useDisableStateProps(props);\n const {\n className,\n icon,\n iconProps = {},\n id,\n isActive: propIsActive,\n label,\n onFocus,\n onKeyPress,\n tabIndex = -1,\n ...forwardedProps\n } = otherProps;\n const state = useTabProviderContext('tab', id);\n const isActive = propIsActive || state?.isActive;\n\n const changeToCurrentTab = useCallback(() => {\n if (isAnyDisabled) {\n return;\n }\n state?.changeToTab();\n }, [isAnyDisabled, state]);\n\n const handleFocus: FocusEventHandler = useCallback(\n (event) => {\n onFocus?.(event);\n if (state?.shouldActivateOnFocus) {\n changeToCurrentTab();\n }\n },\n [changeToCurrentTab, onFocus, state?.shouldActivateOnFocus],\n );\n\n const handleKeyPress: KeyboardEventHandler = useCallback(\n (event) => {\n onKeyPress?.(event);\n if (event.key !== 'Enter' || isAnyDisabled) {\n return;\n }\n changeToCurrentTab();\n },\n [changeToCurrentTab, isAnyDisabled, onKeyPress],\n );\n\n return (\n <button\n ref={ref}\n {...forwardedProps}\n type=\"button\"\n id={state?.tabId}\n className={classNames(\n className,\n handleBasicClasses({ prefix: CLASSNAME, isActive, isDisabled: isAnyDisabled }),\n )}\n onClick={changeToCurrentTab}\n onKeyPress={handleKeyPress}\n onFocus={handleFocus}\n role=\"tab\"\n tabIndex={isActive ? 0 : tabIndex}\n aria-disabled={isAnyDisabled}\n aria-selected={isActive}\n aria-controls={state?.tabPanelId}\n >\n {icon && <Icon icon={icon} size={Size.xs} {...iconProps} />}\n {label && (\n <Text as=\"span\" truncate>\n {label}\n </Text>\n )}\n </button>\n );\n});\nTab.displayName = COMPONENT_NAME;\nTab.className = CLASSNAME;\nTab.defaultProps = DEFAULT_PROPS;\n","import classNames from 'classnames';\n\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\nimport { useTabProviderContext } from '@lumx/react/components/tabs/state';\nimport { CSS_PREFIX } from '@lumx/react/constants';\nimport { GenericProps } from '@lumx/react/utils/type';\nimport { handleBasicClasses } from '@lumx/core/js/utils/className';\n\n/**\n * Defines the props of the component.\n */\nexport interface TabPanelProps extends GenericProps {\n /** Native id property */\n id?: string;\n /** Whether the tab is active or not. */\n isActive?: boolean;\n /** Children */\n children?: React.ReactNode;\n}\n\n/**\n * Component display name.\n */\nconst COMPONENT_NAME = 'TabPanel';\n\n/**\n * Component default class name and class prefix.\n */\nconst CLASSNAME = `${CSS_PREFIX}-tab-panel`;\n\n/**\n * Component default props.\n */\nconst DEFAULT_PROPS: Partial<TabPanelProps> = {};\n\n/**\n * TabPanel component.\n *\n * Implements WAI-ARIA `tabpanel` role {@see https://www.w3.org/TR/wai-aria-practices-1.1/examples/tabs/tabs-1/tabs.html#rps_label}\n *\n * @param props Component props.\n * @param ref Component ref.\n * @return React element.\n */\nexport const TabPanel = forwardRef<TabPanelProps, HTMLDivElement>((props, ref) => {\n const { children, id, className, isActive: propIsActive, ...forwardedProps } = props;\n\n const state = useTabProviderContext('tabPanel', id);\n const isActive = propIsActive || state?.isActive;\n\n return (\n <div\n ref={ref}\n {...forwardedProps}\n id={state?.tabPanelId}\n className={classNames(className, handleBasicClasses({ prefix: CLASSNAME, isActive }))}\n role=\"tabpanel\"\n tabIndex={isActive ? 0 : -1}\n aria-labelledby={state?.tabId}\n >\n {(!state?.isLazy || isActive) && children}\n </div>\n );\n});\nTabPanel.displayName = COMPONENT_NAME;\nTabPanel.className = CLASSNAME;\nTabPanel.defaultProps = DEFAULT_PROPS;\n"],"names":["DEFAULT_PROPS","isLazy","INIT_STATE","shouldActivateOnFocus","TabProvider","props","children","onChange","propState","state","dispatch","useReducer","reducer","useEffect","type","payload","Object","values","activeTabIndex","queueMicrotask","ReactDOM","flushSync","_jsx","TabProviderContext","Provider","value","defaultProps","TabListLayout","COMPONENT_NAME","CLASSNAME","CSS_PREFIX","layout","fixed","position","Alignment","left","TabList","forwardRef","ref","defaultTheme","useTheme","Theme","light","ariaLabel","className","theme","forwardedProps","tabListRef","React","useRef","useRovingTabIndex","parentRef","elementSelector","keepTabIndex","extraDependencies","mergeRefs","classNames","handleBasicClasses","prefix","role","displayName","Tab","isAnyDisabled","otherProps","useDisableStateProps","icon","iconProps","id","isActive","propIsActive","label","onFocus","onKeyPress","tabIndex","useTabProviderContext","changeToCurrentTab","useCallback","changeToTab","handleFocus","event","handleKeyPress","key","_jsxs","tabId","isDisabled","onClick","tabPanelId","Icon","size","Size","xs","Text","as","truncate","TabPanel"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { T as Text } from '../index-a9c5cd69.js';
2
+ //# sourceMappingURL=text-c7b1e079.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-c7b1e079.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}