@lumx/react 3.10.1-alpha.1 → 3.10.1-alpha.2

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 (237) hide show
  1. package/_internal/17c3ea1d.js +137 -0
  2. package/_internal/17c3ea1d.js.map +1 -0
  3. package/_internal/1da25128.js +411 -0
  4. package/_internal/1da25128.js.map +1 -0
  5. package/_internal/230173a8.js +13 -0
  6. package/_internal/230173a8.js.map +1 -0
  7. package/_internal/23bdba2d.js +71 -0
  8. package/_internal/23bdba2d.js.map +1 -0
  9. package/_internal/26926e5c.d.ts +36 -0
  10. package/_internal/2a3d237c.js +12 -0
  11. package/_internal/2a3d237c.js.map +1 -0
  12. package/_internal/2c5dbb03.js +26 -0
  13. package/_internal/2c5dbb03.js.map +1 -0
  14. package/_internal/2e2abe51.js +2154 -0
  15. package/_internal/2e2abe51.js.map +1 -0
  16. package/_internal/31490c59.d.ts +167 -0
  17. package/_internal/3181f000.js +14 -0
  18. package/_internal/3181f000.js.map +1 -0
  19. package/_internal/35f100be.d.ts +104 -0
  20. package/_internal/36bd7352.js +219 -0
  21. package/_internal/36bd7352.js.map +1 -0
  22. package/_internal/3a1facc0.js +18 -0
  23. package/_internal/3a1facc0.js.map +1 -0
  24. package/_internal/4c20d932.js +89 -0
  25. package/_internal/4c20d932.js.map +1 -0
  26. package/_internal/4c28d012.js +305 -0
  27. package/_internal/4c28d012.js.map +1 -0
  28. package/_internal/4cd0bf32.js +160 -0
  29. package/_internal/4cd0bf32.js.map +1 -0
  30. package/_internal/4daccdd5.js +25 -0
  31. package/_internal/4daccdd5.js.map +1 -0
  32. package/_internal/524b1d04.js +64 -0
  33. package/_internal/524b1d04.js.map +1 -0
  34. package/_internal/53c94227.js +123 -0
  35. package/_internal/53c94227.js.map +1 -0
  36. package/_internal/54d9ded5.js +418 -0
  37. package/_internal/54d9ded5.js.map +1 -0
  38. package/_internal/56aec41b.js +652 -0
  39. package/_internal/56aec41b.js.map +1 -0
  40. package/_internal/5720caf5.js +124 -0
  41. package/_internal/5720caf5.js.map +1 -0
  42. package/_internal/646f0db6.js +113 -0
  43. package/_internal/646f0db6.js.map +1 -0
  44. package/_internal/6cc8dca8.d.ts +22 -0
  45. package/_internal/7f022f8c.d.ts +34 -0
  46. package/_internal/{index.d.ts → 8d67e1e3.d.ts} +1 -1
  47. package/_internal/b8f2948d.js +691 -0
  48. package/_internal/b8f2948d.js.map +1 -0
  49. package/_internal/bc28d510.js +784 -0
  50. package/_internal/bc28d510.js.map +1 -0
  51. package/_internal/c68d24e4.js +145 -0
  52. package/_internal/c68d24e4.js.map +1 -0
  53. package/_internal/c6c99f76.js +105 -0
  54. package/_internal/c6c99f76.js.map +1 -0
  55. package/_internal/cae46566.js +65 -0
  56. package/_internal/cae46566.js.map +1 -0
  57. package/_internal/components/alert-dialog/index.ts-623b1ed3.d.ts +37 -0
  58. package/_internal/components/alert-dialog/index.ts-f83bd6ef.js +148 -0
  59. package/_internal/components/alert-dialog/index.ts-f83bd6ef.js.map +1 -0
  60. package/_internal/components/autocomplete/index.ts-3f8f125c.js +264 -0
  61. package/_internal/components/autocomplete/index.ts-3f8f125c.js.map +1 -0
  62. package/_internal/components/autocomplete/index.ts-8d6b123f.d.ts +201 -0
  63. package/_internal/components/avatar/index.ts-93ee0ea9.js +89 -0
  64. package/_internal/components/avatar/index.ts-93ee0ea9.js.map +1 -0
  65. package/_internal/components/avatar/index.ts-f92852b4.d.ts +43 -0
  66. package/_internal/components/badge/index.ts-2d7700ef.d.ts +30 -0
  67. package/_internal/components/badge/index.ts-6753d67f.js +88 -0
  68. package/_internal/components/badge/index.ts-6753d67f.js.map +1 -0
  69. package/_internal/components/button/index.ts-031307ce.js +51 -0
  70. package/_internal/components/button/index.ts-031307ce.js.map +1 -0
  71. package/_internal/components/button/index.ts-b29e26a4.d.ts +22 -0
  72. package/_internal/components/checkbox/index.ts-a33166d7.js +127 -0
  73. package/_internal/components/checkbox/index.ts-a33166d7.js.map +1 -0
  74. package/_internal/components/checkbox/index.ts-f82358ff.d.ts +38 -0
  75. package/_internal/components/chip/index.ts-4a91f1a7.d.ts +68 -0
  76. package/_internal/components/chip/index.ts-a2b5b771.js +110 -0
  77. package/_internal/components/chip/index.ts-a2b5b771.js.map +1 -0
  78. package/_internal/components/comment-block/index.ts-58fa051a.js +121 -0
  79. package/_internal/components/comment-block/index.ts-58fa051a.js.map +1 -0
  80. package/_internal/components/comment-block/index.ts-8cfa5af0.d.ts +67 -0
  81. package/_internal/components/date-picker/index.ts-145262d5.js +2 -0
  82. package/_internal/components/date-picker/index.ts-145262d5.js.map +1 -0
  83. package/_internal/components/date-picker/index.ts-70a34fa7.d.ts +95 -0
  84. package/_internal/components/dialog/index.ts-ea044db2.js +224 -0
  85. package/_internal/components/dialog/index.ts-ea044db2.js.map +1 -0
  86. package/_internal/components/dialog/index.ts-eca28654.d.ts +55 -0
  87. package/_internal/components/divider/index.ts-4a56db75.js +55 -0
  88. package/_internal/components/divider/index.ts-4a56db75.js.map +1 -0
  89. package/_internal/components/divider/index.ts-b011d8ca.d.ts +18 -0
  90. package/_internal/components/drag-handle/index.ts-0aebf92f.js +54 -0
  91. package/_internal/components/drag-handle/index.ts-0aebf92f.js.map +1 -0
  92. package/_internal/components/drag-handle/index.ts-3ab31dd1.d.ts +18 -0
  93. package/_internal/components/dropdown/index.ts-2a17db51.js +154 -0
  94. package/_internal/components/dropdown/index.ts-2a17db51.js.map +1 -0
  95. package/_internal/components/dropdown/index.ts-b648a15c.d.ts +87 -0
  96. package/_internal/components/expansion-panel/index.ts-69f09f5b.d.ts +38 -0
  97. package/_internal/components/expansion-panel/index.ts-fae3762e.js +143 -0
  98. package/_internal/components/expansion-panel/index.ts-fae3762e.js.map +1 -0
  99. package/_internal/components/flag/index.ts-8dcd685b.js +56 -0
  100. package/_internal/components/flag/index.ts-8dcd685b.js.map +1 -0
  101. package/_internal/components/flag/index.ts-fda89adb.d.ts +23 -0
  102. package/_internal/components/flex-box/index.ts-87f2b58d.d.ts +43 -0
  103. package/_internal/components/flex-box/index.ts-c216e957.js +60 -0
  104. package/_internal/components/flex-box/index.ts-c216e957.js.map +1 -0
  105. package/_internal/components/generic-block/index.ts-999a62a4.js +115 -0
  106. package/_internal/components/generic-block/index.ts-999a62a4.js.map +1 -0
  107. package/_internal/components/generic-block/index.ts-cd3b0e21.d.ts +106 -0
  108. package/_internal/components/grid/index.ts-67e0694f.d.ts +50 -0
  109. package/_internal/components/grid/index.ts-fdf1b306.js +113 -0
  110. package/_internal/components/grid/index.ts-fdf1b306.js.map +1 -0
  111. package/_internal/components/grid-column/index.ts-97c61cbe.js +64 -0
  112. package/_internal/components/grid-column/index.ts-97c61cbe.js.map +1 -0
  113. package/_internal/components/grid-column/index.ts-c89e1c18.d.ts +31 -0
  114. package/_internal/components/heading/index.ts-0179e9a9.js +112 -0
  115. package/_internal/components/heading/index.ts-0179e9a9.js.map +1 -0
  116. package/_internal/components/heading/index.ts-587579e8.d.ts +37 -0
  117. package/_internal/components/icon/index.ts-740ca1de.js +2 -0
  118. package/_internal/components/icon/index.ts-740ca1de.js.map +1 -0
  119. package/_internal/components/icon/index.ts-b3fa5e15.d.ts +34 -0
  120. package/_internal/components/image-block/index.ts-36b3828f.d.ts +49 -0
  121. package/_internal/components/image-block/index.ts-ef5e2e7d.js +111 -0
  122. package/_internal/components/image-block/index.ts-ef5e2e7d.js.map +1 -0
  123. package/_internal/components/image-lightbox/index.ts-137f85a8.js +765 -0
  124. package/_internal/components/image-lightbox/index.ts-137f85a8.js.map +1 -0
  125. package/_internal/components/image-lightbox/index.ts-2cb92d18.d.ts +75 -0
  126. package/_internal/components/inline-list/index.ts-033dd358.js +76 -0
  127. package/_internal/components/inline-list/index.ts-033dd358.js.map +1 -0
  128. package/_internal/components/inline-list/index.ts-e1c8a3ff.d.ts +34 -0
  129. package/_internal/components/input-helper/index.ts-32a9ca90.d.ts +22 -0
  130. package/_internal/components/input-helper/index.ts-ab3a1ef5.js +75 -0
  131. package/_internal/components/input-helper/index.ts-ab3a1ef5.js.map +1 -0
  132. package/_internal/components/input-label/index.ts-86f2ea41.d.ts +24 -0
  133. package/_internal/components/input-label/index.ts-d6ca5569.js +60 -0
  134. package/_internal/components/input-label/index.ts-d6ca5569.js.map +1 -0
  135. package/_internal/components/lightbox/index.ts-5370e8e6.d.ts +36 -0
  136. package/_internal/components/lightbox/index.ts-7a16cdc7.js +149 -0
  137. package/_internal/components/lightbox/index.ts-7a16cdc7.js.map +1 -0
  138. package/_internal/components/link/index.ts-26435006.d.ts +37 -0
  139. package/_internal/components/link/index.ts-d04f4e53.js +120 -0
  140. package/_internal/components/link/index.ts-d04f4e53.js.map +1 -0
  141. package/_internal/components/link-preview/index.ts-e560a274.d.ts +36 -0
  142. package/_internal/components/link-preview/index.ts-fee89f66.js +109 -0
  143. package/_internal/components/link-preview/index.ts-fee89f66.js.map +1 -0
  144. package/_internal/components/list/index.ts-ab57902e.d.ts +118 -0
  145. package/_internal/components/list/index.ts-f3101625.js +86 -0
  146. package/_internal/components/list/index.ts-f3101625.js.map +1 -0
  147. package/_internal/components/message/index.ts-041cf0cb.js +97 -0
  148. package/_internal/components/message/index.ts-041cf0cb.js.map +1 -0
  149. package/_internal/components/message/index.ts-2d38e0ea.d.ts +37 -0
  150. package/_internal/components/mosaic/index.ts-232d5aed.d.ts +23 -0
  151. package/_internal/components/mosaic/index.ts-d2128cd3.js +94 -0
  152. package/_internal/components/mosaic/index.ts-d2128cd3.js.map +1 -0
  153. package/_internal/components/navigation/index.ts-6d8bea53.d.ts +58 -0
  154. package/_internal/components/navigation/index.ts-e8dc0a7f.js +222 -0
  155. package/_internal/components/navigation/index.ts-e8dc0a7f.js.map +1 -0
  156. package/_internal/components/notification/index.ts-235fd340.js +140 -0
  157. package/_internal/components/notification/index.ts-235fd340.js.map +1 -0
  158. package/_internal/components/notification/index.ts-bb3f03f6.d.ts +34 -0
  159. package/_internal/components/popover/index.ts-2f17a9b6.js +3 -0
  160. package/_internal/components/popover/index.ts-2f17a9b6.js.map +1 -0
  161. package/_internal/components/popover/index.ts-e3b4ff19.d.ts +66 -0
  162. package/_internal/components/post-block/index.ts-0acb9bb4.js +101 -0
  163. package/_internal/components/post-block/index.ts-0acb9bb4.js.map +1 -0
  164. package/_internal/components/post-block/index.ts-9b8ff90b.d.ts +41 -0
  165. package/_internal/components/progress/index.ts-2a713859.js +189 -0
  166. package/_internal/components/progress/index.ts-2a713859.js.map +1 -0
  167. package/_internal/components/progress/index.ts-dfdfa5fb.d.ts +60 -0
  168. package/_internal/components/progress-tracker/index.ts-2649f756.js +312 -0
  169. package/_internal/components/progress-tracker/index.ts-2649f756.js.map +1 -0
  170. package/_internal/components/progress-tracker/index.ts-95320f32.d.ts +101 -0
  171. package/_internal/components/radio-button/index.ts-5eaab4cf.d.ts +54 -0
  172. package/_internal/components/radio-button/index.ts-b4dfb2a0.js +150 -0
  173. package/_internal/components/radio-button/index.ts-b4dfb2a0.js.map +1 -0
  174. package/_internal/components/select/index.ts-a65e3507.d.ts +91 -0
  175. package/_internal/components/select/index.ts-e8fad28b.js +257 -0
  176. package/_internal/components/select/index.ts-e8fad28b.js.map +1 -0
  177. package/_internal/components/side-navigation/index.ts-3f5f3785.d.ts +60 -0
  178. package/_internal/components/side-navigation/index.ts-c9a5fc3e.js +184 -0
  179. package/_internal/components/side-navigation/index.ts-c9a5fc3e.js.map +1 -0
  180. package/_internal/components/skeleton/index.ts-a7daefac.d.ts +75 -0
  181. package/_internal/components/skeleton/index.ts-ffc995af.js +179 -0
  182. package/_internal/components/skeleton/index.ts-ffc995af.js.map +1 -0
  183. package/_internal/components/slider/index.ts-24a0d598.d.ts +52 -0
  184. package/_internal/components/slider/index.ts-72aadf4c.js +308 -0
  185. package/_internal/components/slider/index.ts-72aadf4c.js.map +1 -0
  186. package/_internal/components/slideshow/index.ts-c99f2892.js +151 -0
  187. package/_internal/components/slideshow/index.ts-c99f2892.js.map +1 -0
  188. package/_internal/components/slideshow/index.ts-e49462c6.d.ts +25 -0
  189. package/_internal/components/switch/index.ts-207ba52b.d.ts +34 -0
  190. package/_internal/components/switch/index.ts-542e6eaf.js +115 -0
  191. package/_internal/components/switch/index.ts-542e6eaf.js.map +1 -0
  192. package/_internal/components/table/index.ts-905ce390.js +310 -0
  193. package/_internal/components/table/index.ts-905ce390.js.map +1 -0
  194. package/_internal/components/table/index.ts-c4f39b2d.d.ts +108 -0
  195. package/_internal/components/tabs/index.ts-713119f4.js +289 -0
  196. package/_internal/components/tabs/index.ts-713119f4.js.map +1 -0
  197. package/_internal/components/tabs/index.ts-dbfc48d9.d.ts +106 -0
  198. package/_internal/components/text/index.ts-6afbe8cd.js +2 -0
  199. package/_internal/components/text/index.ts-6afbe8cd.js.map +1 -0
  200. package/_internal/components/text/index.ts-8a812048.d.ts +53 -0
  201. package/_internal/components/text-field/index.ts-92e6b3b3.d.ts +77 -0
  202. package/_internal/components/text-field/index.ts-c3be8563.js +341 -0
  203. package/_internal/components/text-field/index.ts-c3be8563.js.map +1 -0
  204. package/_internal/components/thumbnail/index.ts-16d7b403.js +40 -0
  205. package/_internal/components/thumbnail/index.ts-16d7b403.js.map +1 -0
  206. package/_internal/components/thumbnail/index.ts-1b6c0b48.d.ts +8 -0
  207. package/_internal/components/toolbar/index.ts-813b902e.js +63 -0
  208. package/_internal/components/toolbar/index.ts-813b902e.js.map +1 -0
  209. package/_internal/components/toolbar/index.ts-9f5129d1.d.ts +24 -0
  210. package/_internal/components/tooltip/index.ts-905c847c.js +322 -0
  211. package/_internal/components/tooltip/index.ts-905c847c.js.map +1 -0
  212. package/_internal/components/tooltip/index.ts-c6931e9e.d.ts +35 -0
  213. package/_internal/components/uploader/index.ts-31f21c2a.js +132 -0
  214. package/_internal/components/uploader/index.ts-31f21c2a.js.map +1 -0
  215. package/_internal/components/uploader/index.ts-c3ccba98.d.ts +51 -0
  216. package/_internal/components/user-block/index.ts-18c58e19.d.ts +50 -0
  217. package/_internal/components/user-block/index.ts-d43e5f3c.js +136 -0
  218. package/_internal/components/user-block/index.ts-d43e5f3c.js.map +1 -0
  219. package/_internal/dc3e28c8.d.ts +38 -0
  220. package/_internal/f39a1ba4.js +73 -0
  221. package/_internal/f39a1ba4.js.map +1 -0
  222. package/_internal/f3e77e3e.js +22 -0
  223. package/_internal/f3e77e3e.js.map +1 -0
  224. package/_internal/f502ab30.js +78 -0
  225. package/_internal/f502ab30.js.map +1 -0
  226. package/_internal/f52adbae.js +36 -0
  227. package/_internal/f52adbae.js.map +1 -0
  228. package/_internal/f57e1239.js +205 -0
  229. package/_internal/f57e1239.js.map +1 -0
  230. package/_internal/f5ff1aa4.d.ts +47 -0
  231. package/_internal/fb975afe.js +52 -0
  232. package/_internal/fb975afe.js.map +1 -0
  233. package/index.d.ts +66 -3023
  234. package/index.js +64 -14536
  235. package/index.js.map +1 -1
  236. package/package.json +3 -3
  237. package/utils/index.d.ts +1 -1
@@ -0,0 +1,289 @@
1
+ import { j as _objectWithoutProperties, A as Alignment, i as forwardRef, T as Theme, _ as _extends, g as classNames, l as CSS_PREFIX, S as Size } from '../../1da25128.js';
2
+ import React__default, { useReducer, useEffect, useCallback } from 'react';
3
+ import { I as INIT_STATE, r as reducer, T as TabProviderContext, a as useTabProviderContext } from '../../5720caf5.js';
4
+ import 'lodash/kebabCase';
5
+ import { h as handleBasicClasses } from '../../f57e1239.js';
6
+ import { m as mergeRefs } from '../../f52adbae.js';
7
+ import { u as useTheme } from '../../3181f000.js';
8
+ import { u as useRovingTabIndex } from '../../f502ab30.js';
9
+ import { I as Icon } from '../../c6c99f76.js';
10
+ import { T as Text } from '../../53c94227.js';
11
+
12
+ const _excluded$3 = ["children", "onChange"];
13
+ const DEFAULT_PROPS$3 = {
14
+ isLazy: INIT_STATE.isLazy,
15
+ shouldActivateOnFocus: INIT_STATE.shouldActivateOnFocus
16
+ };
17
+
18
+ /**
19
+ * This component provides a context in which tabs can be defined and linked to their tab panel.
20
+ *
21
+ * It does not produce any markup so you can wrap it around any React elements and then split the TabList and TabPanel
22
+ * components in the react tree.
23
+ *
24
+ * @param props React component props.
25
+ * @return React element.
26
+ */
27
+ const TabProvider = props => {
28
+ const {
29
+ children,
30
+ onChange
31
+ } = props,
32
+ propState = _objectWithoutProperties(props, _excluded$3);
33
+ const [state, dispatch] = useReducer(reducer, INIT_STATE);
34
+
35
+ // On prop state change => dispatch update.
36
+ useEffect(() => {
37
+ dispatch({
38
+ type: 'update',
39
+ payload: propState
40
+ });
41
+ },
42
+ // eslint-disable-next-line react-hooks/exhaustive-deps
43
+ [dispatch, ...Object.values(propState)]);
44
+
45
+ // On active tab index state change => send update to the onChange.
46
+ useEffect(() => {
47
+ if (state === INIT_STATE || !onChange || propState.activeTabIndex === state.activeTabIndex) {
48
+ return;
49
+ }
50
+ onChange(state.activeTabIndex);
51
+ },
52
+ // eslint-disable-next-line react-hooks/exhaustive-deps
53
+ [onChange, state.activeTabIndex]);
54
+ return /*#__PURE__*/React__default.createElement(TabProviderContext.Provider, {
55
+ value: [state, dispatch]
56
+ }, children);
57
+ };
58
+ TabProvider.defaultProps = DEFAULT_PROPS$3;
59
+
60
+ const _excluded$2 = ["aria-label", "children", "className", "layout", "position", "theme"];
61
+ let TabListLayout = /*#__PURE__*/function (TabListLayout) {
62
+ TabListLayout["clustered"] = "clustered";
63
+ TabListLayout["fixed"] = "fixed";
64
+ return TabListLayout;
65
+ }({});
66
+
67
+ /**
68
+ * Defines the props of the component.
69
+ */
70
+
71
+ /**
72
+ * Component display name.
73
+ */
74
+ const COMPONENT_NAME$2 = 'TabList';
75
+
76
+ /**
77
+ * Component default class name and class prefix.
78
+ */
79
+ const CLASSNAME$2 = `${CSS_PREFIX}-tabs`;
80
+
81
+ /**
82
+ * Component default props.
83
+ */
84
+ const DEFAULT_PROPS$2 = {
85
+ layout: TabListLayout.fixed,
86
+ position: Alignment.left
87
+ };
88
+
89
+ /**
90
+ * TabList component.
91
+ *
92
+ * Implements WAI-ARIA `tablist` role {@see https://www.w3.org/TR/wai-aria-practices-1.1/examples/tabs/tabs-1/tabs.html#rps_label}
93
+ *
94
+ * @param props Component props.
95
+ * @param ref Component ref.
96
+ * @return React element.
97
+ */
98
+ const TabList = forwardRef((props, ref) => {
99
+ const defaultTheme = useTheme() || Theme.light;
100
+ const {
101
+ 'aria-label': ariaLabel,
102
+ children,
103
+ className,
104
+ layout,
105
+ position,
106
+ theme = defaultTheme
107
+ } = props,
108
+ forwardedProps = _objectWithoutProperties(props, _excluded$2);
109
+ const tabListRef = React__default.useRef(null);
110
+ useRovingTabIndex({
111
+ parentRef: tabListRef,
112
+ elementSelector: '[role="tab"]',
113
+ keepTabIndex: false,
114
+ extraDependencies: [children]
115
+ });
116
+ return /*#__PURE__*/React__default.createElement("div", _extends({
117
+ ref: mergeRefs(ref, tabListRef)
118
+ }, forwardedProps, {
119
+ className: classNames(className, handleBasicClasses({
120
+ prefix: CLASSNAME$2,
121
+ layout,
122
+ position,
123
+ theme
124
+ }))
125
+ }), /*#__PURE__*/React__default.createElement("div", {
126
+ className: `${CLASSNAME$2}__links`,
127
+ role: "tablist",
128
+ "aria-label": ariaLabel
129
+ }, children));
130
+ });
131
+ TabList.displayName = COMPONENT_NAME$2;
132
+ TabList.className = CLASSNAME$2;
133
+ TabList.defaultProps = DEFAULT_PROPS$2;
134
+
135
+ const _excluded$1 = ["className", "disabled", "icon", "iconProps", "id", "isActive", "isDisabled", "label", "onFocus", "onKeyPress", "tabIndex"];
136
+
137
+ /**
138
+ * Defines the props of the component.
139
+ */
140
+
141
+ /**
142
+ * Component display name.
143
+ */
144
+ const COMPONENT_NAME$1 = 'Tab';
145
+
146
+ /**
147
+ * Component default class name and class prefix.
148
+ */
149
+ const CLASSNAME$1 = `${CSS_PREFIX}-tabs__link`;
150
+
151
+ /**
152
+ * Component default props.
153
+ */
154
+ const DEFAULT_PROPS$1 = {};
155
+
156
+ /**
157
+ * Tab component.
158
+ *
159
+ * Implements WAI-ARIA `tab` role {@see https://www.w3.org/TR/wai-aria-practices-1.1/examples/tabs/tabs-1/tabs.html#rps_label}
160
+ *
161
+ * @param props Component props.
162
+ * @param ref Component ref.
163
+ * @return React element.
164
+ */
165
+ const Tab = forwardRef((props, ref) => {
166
+ const {
167
+ className,
168
+ disabled,
169
+ icon,
170
+ iconProps = {},
171
+ id,
172
+ isActive: propIsActive,
173
+ isDisabled = disabled,
174
+ label,
175
+ onFocus,
176
+ onKeyPress,
177
+ tabIndex = -1
178
+ } = props,
179
+ forwardedProps = _objectWithoutProperties(props, _excluded$1);
180
+ const state = useTabProviderContext('tab', id);
181
+ const isActive = propIsActive || (state === null || state === void 0 ? void 0 : state.isActive);
182
+ const changeToCurrentTab = useCallback(() => {
183
+ if (isDisabled) {
184
+ return;
185
+ }
186
+ state === null || state === void 0 ? void 0 : state.changeToTab();
187
+ }, [isDisabled, state]);
188
+ const handleFocus = useCallback(event => {
189
+ onFocus === null || onFocus === void 0 ? void 0 : onFocus(event);
190
+ if (state !== null && state !== void 0 && state.shouldActivateOnFocus) {
191
+ changeToCurrentTab();
192
+ }
193
+ }, [changeToCurrentTab, onFocus, state === null || state === void 0 ? void 0 : state.shouldActivateOnFocus]);
194
+ const handleKeyPress = useCallback(event => {
195
+ onKeyPress === null || onKeyPress === void 0 ? void 0 : onKeyPress(event);
196
+ if (event.key !== 'Enter') {
197
+ return;
198
+ }
199
+ changeToCurrentTab();
200
+ }, [changeToCurrentTab, onKeyPress]);
201
+ return /*#__PURE__*/React__default.createElement("button", _extends({
202
+ ref: ref
203
+ }, forwardedProps, {
204
+ type: "button",
205
+ id: state === null || state === void 0 ? void 0 : state.tabId,
206
+ className: classNames(className, handleBasicClasses({
207
+ prefix: CLASSNAME$1,
208
+ isActive,
209
+ isDisabled
210
+ })),
211
+ onClick: changeToCurrentTab,
212
+ onKeyPress: handleKeyPress,
213
+ onFocus: handleFocus,
214
+ role: "tab",
215
+ tabIndex: isActive ? 0 : tabIndex,
216
+ "aria-disabled": isDisabled,
217
+ "aria-selected": isActive,
218
+ "aria-controls": state === null || state === void 0 ? void 0 : state.tabPanelId
219
+ }), icon && /*#__PURE__*/React__default.createElement(Icon, _extends({
220
+ icon: icon,
221
+ size: Size.xs
222
+ }, iconProps)), label && /*#__PURE__*/React__default.createElement(Text, {
223
+ as: "span",
224
+ truncate: true
225
+ }, label));
226
+ });
227
+ Tab.displayName = COMPONENT_NAME$1;
228
+ Tab.className = CLASSNAME$1;
229
+ Tab.defaultProps = DEFAULT_PROPS$1;
230
+
231
+ const _excluded = ["children", "id", "className", "isActive"];
232
+
233
+ /**
234
+ * Defines the props of the component.
235
+ */
236
+
237
+ /**
238
+ * Component display name.
239
+ */
240
+ const COMPONENT_NAME = 'TabPanel';
241
+
242
+ /**
243
+ * Component default class name and class prefix.
244
+ */
245
+ const CLASSNAME = `${CSS_PREFIX}-tab-panel`;
246
+
247
+ /**
248
+ * Component default props.
249
+ */
250
+ const DEFAULT_PROPS = {};
251
+
252
+ /**
253
+ * TabPanel component.
254
+ *
255
+ * Implements WAI-ARIA `tabpanel` role {@see https://www.w3.org/TR/wai-aria-practices-1.1/examples/tabs/tabs-1/tabs.html#rps_label}
256
+ *
257
+ * @param props Component props.
258
+ * @param ref Component ref.
259
+ * @return React element.
260
+ */
261
+ const TabPanel = forwardRef((props, ref) => {
262
+ const {
263
+ children,
264
+ id,
265
+ className,
266
+ isActive: propIsActive
267
+ } = props,
268
+ forwardedProps = _objectWithoutProperties(props, _excluded);
269
+ const state = useTabProviderContext('tabPanel', id);
270
+ const isActive = propIsActive || (state === null || state === void 0 ? void 0 : state.isActive);
271
+ return /*#__PURE__*/React__default.createElement("div", _extends({
272
+ ref: ref
273
+ }, forwardedProps, {
274
+ id: state === null || state === void 0 ? void 0 : state.tabPanelId,
275
+ className: classNames(className, handleBasicClasses({
276
+ prefix: CLASSNAME,
277
+ isActive
278
+ })),
279
+ role: "tabpanel",
280
+ tabIndex: isActive ? 0 : -1,
281
+ "aria-labelledby": state === null || state === void 0 ? void 0 : state.tabId
282
+ }), (!(state !== null && state !== void 0 && state.isLazy) || isActive) && children);
283
+ });
284
+ TabPanel.displayName = COMPONENT_NAME;
285
+ TabPanel.className = CLASSNAME;
286
+ TabPanel.defaultProps = DEFAULT_PROPS;
287
+
288
+ export { Tab, TabList, TabListLayout, TabPanel, TabProvider };
289
+ //# sourceMappingURL=index.ts-713119f4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.ts-713119f4.js","sources":["../../../../src/components/tabs/TabProvider.tsx","../../../../src/components/tabs/TabList.tsx","../../../../src/components/tabs/Tab.tsx","../../../../src/components/tabs/TabPanel.tsx"],"sourcesContent":["import React, { 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: 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 onChange(state.activeTabIndex);\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/react/utils/className';\nimport { mergeRefs } from '@lumx/react/utils/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,\n 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 React, { 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/react/utils/className';\nimport { forwardRef } from '@lumx/react/utils/react/forwardRef';\n\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 {\n className,\n disabled,\n icon,\n iconProps = {},\n id,\n isActive: propIsActive,\n isDisabled = disabled,\n label,\n onFocus,\n onKeyPress,\n tabIndex = -1,\n ...forwardedProps\n } = props;\n const state = useTabProviderContext('tab', id);\n const isActive = propIsActive || state?.isActive;\n\n const changeToCurrentTab = useCallback(() => {\n if (isDisabled) {\n return;\n }\n state?.changeToTab();\n }, [isDisabled, 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') {\n return;\n }\n changeToCurrentTab();\n },\n [changeToCurrentTab, onKeyPress],\n );\n\n return (\n <button\n ref={ref}\n {...forwardedProps}\n type=\"button\"\n id={state?.tabId}\n className={classNames(className, handleBasicClasses({ prefix: CLASSNAME, isActive, isDisabled }))}\n onClick={changeToCurrentTab}\n onKeyPress={handleKeyPress}\n onFocus={handleFocus}\n role=\"tab\"\n tabIndex={isActive ? 0 : tabIndex}\n aria-disabled={isDisabled}\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 React from 'react';\n\nimport 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/react/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}\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","_objectWithoutProperties","_excluded","state","dispatch","useReducer","reducer","useEffect","type","payload","Object","values","activeTabIndex","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","disabled","icon","iconProps","id","isActive","propIsActive","isDisabled","label","onFocus","onKeyPress","tabIndex","useTabProviderContext","changeToCurrentTab","useCallback","changeToTab","handleFocus","event","handleKeyPress","key","tabId","onClick","tabPanelId","Icon","size","Size","xs","Text","as","truncate","TabPanel"],"mappings":";;;;;;;;;;;;AAiBA,MAAMA,eAAwC,GAAG;EAC7CC,MAAM,EAAEC,UAAU,CAACD,MAAM;EACzBE,qBAAqB,EAAED,UAAU,CAACC,qBAAAA;AACtC,CAAC,CAAA;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACaC,MAAAA,WAAuC,GAAIC,KAAK,IAAK;EAC9D,MAAM;MAAEC,QAAQ;AAAEC,MAAAA,QAAAA;AAAuB,KAAC,GAAGF,KAAK;AAAnBG,IAAAA,SAAS,GAAAC,wBAAA,CAAKJ,KAAK,EAAAK,WAAA,CAAA,CAAA;EAClD,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGC,UAAU,CAACC,OAAO,EAAEZ,UAAU,CAAC,CAAA;;AAEzD;AACAa,EAAAA,SAAS,CACL,MAAM;AACFH,IAAAA,QAAQ,CAAC;AAAEI,MAAAA,IAAI,EAAE,QAAQ;AAAEC,MAAAA,OAAO,EAAET,SAAAA;AAAU,KAAC,CAAC,CAAA;GACnD;AACD;EACA,CAACI,QAAQ,EAAE,GAAGM,MAAM,CAACC,MAAM,CAACX,SAAS,CAAC,CAC1C,CAAC,CAAA;;AAED;AACAO,EAAAA,SAAS,CACL,MAAM;AACF,IAAA,IAAIJ,KAAK,KAAKT,UAAU,IAAI,CAACK,QAAQ,IAAIC,SAAS,CAACY,cAAc,KAAKT,KAAK,CAACS,cAAc,EAAE;AACxF,MAAA,OAAA;AACJ,KAAA;AACAb,IAAAA,QAAQ,CAACI,KAAK,CAACS,cAAc,CAAC,CAAA;GACjC;AACD;AACA,EAAA,CAACb,QAAQ,EAAEI,KAAK,CAACS,cAAc,CACnC,CAAC,CAAA;AAED,EAAA,oBAAOC,cAAA,CAAAC,aAAA,CAACC,kBAAkB,CAACC,QAAQ,EAAA;AAACC,IAAAA,KAAK,EAAE,CAACd,KAAK,EAAEC,QAAQ,CAAA;AAAE,GAAA,EAAEN,QAAsC,CAAC,CAAA;AAC1G,EAAC;AACDF,WAAW,CAACsB,YAAY,GAAG1B,eAAa;;;AC5C5B2B,IAAAA,aAAa,0BAAbA,aAAa,EAAA;EAAbA,aAAa,CAAA,WAAA,CAAA,GAAA,WAAA,CAAA;EAAbA,aAAa,CAAA,OAAA,CAAA,GAAA,OAAA,CAAA;AAAA,EAAA,OAAbA,aAAa,CAAA;AAAA,CAAA,CAAA,EAAA,EAAA;;AAKzB;AACA;AACA;;AAYA;AACA;AACA;AACA,MAAMC,gBAAc,GAAG,SAAS,CAAA;;AAEhC;AACA;AACA;AACA,MAAMC,WAAS,GAAI,CAAEC,EAAAA,UAAW,CAAM,KAAA,CAAA,CAAA;;AAEtC;AACA;AACA;AACA,MAAM9B,eAAoC,GAAG;EACzC+B,MAAM,EAAEJ,aAAa,CAACK,KAAK;EAC3BC,QAAQ,EAAEC,SAAS,CAACC,IAAAA;AACxB,CAAC,CAAA;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,OAAO,GAAGC,UAAU,CAA+B,CAAChC,KAAK,EAAEiC,GAAG,KAAK;EAC5E,MAAMC,YAAY,GAAGC,QAAQ,EAAE,IAAIC,KAAK,CAACC,KAAK,CAAA;EAC9C,MAAM;AACF,MAAA,YAAY,EAAEC,SAAS;MACvBrC,QAAQ;MACRsC,SAAS;MACTb,MAAM;MACNE,QAAQ;AACRY,MAAAA,KAAK,GAAGN,YAAAA;AAEZ,KAAC,GAAGlC,KAAK;AADFyC,IAAAA,cAAc,GAAArC,wBAAA,CACjBJ,KAAK,EAAAK,WAAA,CAAA,CAAA;AACT,EAAA,MAAMqC,UAAU,GAAG1B,cAAK,CAAC2B,MAAM,CAAC,IAAI,CAAC,CAAA;AACrCC,EAAAA,iBAAiB,CAAC;AACdC,IAAAA,SAAS,EAAEH,UAAU;AACrBI,IAAAA,eAAe,EAAE,cAAc;AAC/BC,IAAAA,YAAY,EAAE,KAAK;IACnBC,iBAAiB,EAAE,CAAC/C,QAAQ,CAAA;AAChC,GAAC,CAAC,CAAA;AAEF,EAAA,oBACIe,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAAgC,QAAA,CAAA;AACIhB,IAAAA,GAAG,EAAEiB,SAAS,CAACjB,GAAG,EAAES,UAAU,CAAA;AAAE,GAAA,EAC5BD,cAAc,EAAA;AAClBF,IAAAA,SAAS,EAAEY,UAAU,CAACZ,SAAS,EAAEa,kBAAkB,CAAC;AAAEC,MAAAA,MAAM,EAAE7B,WAAS;MAAEE,MAAM;MAAEE,QAAQ;AAAEY,MAAAA,KAAAA;AAAM,KAAC,CAAC,CAAA;GAEnGxB,CAAAA,eAAAA,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAA;IAAKsB,SAAS,EAAG,CAAEf,EAAAA,WAAU,CAAS,OAAA,CAAA;AAAC8B,IAAAA,IAAI,EAAC,SAAS;IAAC,YAAYhB,EAAAA,SAAAA;GAC7DrC,EAAAA,QACA,CACJ,CAAC,CAAA;AAEd,CAAC,EAAC;AACF8B,OAAO,CAACwB,WAAW,GAAGhC,gBAAc,CAAA;AACpCQ,OAAO,CAACQ,SAAS,GAAGf,WAAS,CAAA;AAC7BO,OAAO,CAACV,YAAY,GAAG1B,eAAa;;;;ACjFpC;AACA;AACA;;AAkBA;AACA;AACA;AACA,MAAM4B,gBAAc,GAAG,KAAK,CAAA;;AAE5B;AACA;AACA;AACA,MAAMC,WAAS,GAAI,CAAEC,EAAAA,UAAW,CAAY,WAAA,CAAA,CAAA;;AAE5C;AACA;AACA;AACA,MAAM9B,eAAgC,GAAG,EAAE,CAAA;;AAE3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM6D,GAAG,GAAGxB,UAAU,CAA8B,CAAChC,KAAK,EAAEiC,GAAG,KAAK;EACvE,MAAM;MACFM,SAAS;MACTkB,QAAQ;MACRC,IAAI;MACJC,SAAS,GAAG,EAAE;MACdC,EAAE;AACFC,MAAAA,QAAQ,EAAEC,YAAY;AACtBC,MAAAA,UAAU,GAAGN,QAAQ;MACrBO,KAAK;MACLC,OAAO;MACPC,UAAU;AACVC,MAAAA,QAAQ,GAAG,CAAC,CAAA;AAEhB,KAAC,GAAGnE,KAAK;AADFyC,IAAAA,cAAc,GAAArC,wBAAA,CACjBJ,KAAK,EAAAK,WAAA,CAAA,CAAA;AACT,EAAA,MAAMC,KAAK,GAAG8D,qBAAqB,CAAC,KAAK,EAAER,EAAE,CAAC,CAAA;EAC9C,MAAMC,QAAQ,GAAGC,YAAY,KAAIxD,KAAK,aAALA,KAAK,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAALA,KAAK,CAAEuD,QAAQ,CAAA,CAAA;AAEhD,EAAA,MAAMQ,kBAAkB,GAAGC,WAAW,CAAC,MAAM;AACzC,IAAA,IAAIP,UAAU,EAAE;AACZ,MAAA,OAAA;AACJ,KAAA;AACAzD,IAAAA,KAAK,aAALA,KAAK,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAALA,KAAK,CAAEiE,WAAW,EAAE,CAAA;AACxB,GAAC,EAAE,CAACR,UAAU,EAAEzD,KAAK,CAAC,CAAC,CAAA;AAEvB,EAAA,MAAMkE,WAA8B,GAAGF,WAAW,CAC7CG,KAAK,IAAK;AACPR,IAAAA,OAAO,aAAPA,OAAO,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAPA,OAAO,CAAGQ,KAAK,CAAC,CAAA;AAChB,IAAA,IAAInE,KAAK,KAALA,IAAAA,IAAAA,KAAK,eAALA,KAAK,CAAER,qBAAqB,EAAE;AAC9BuE,MAAAA,kBAAkB,EAAE,CAAA;AACxB,KAAA;AACJ,GAAC,EACD,CAACA,kBAAkB,EAAEJ,OAAO,EAAE3D,KAAK,KAALA,IAAAA,IAAAA,KAAK,KAALA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CAAER,qBAAqB,CAC9D,CAAC,CAAA;AAED,EAAA,MAAM4E,cAAoC,GAAGJ,WAAW,CACnDG,KAAK,IAAK;AACPP,IAAAA,UAAU,aAAVA,UAAU,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAVA,UAAU,CAAGO,KAAK,CAAC,CAAA;AACnB,IAAA,IAAIA,KAAK,CAACE,GAAG,KAAK,OAAO,EAAE;AACvB,MAAA,OAAA;AACJ,KAAA;AACAN,IAAAA,kBAAkB,EAAE,CAAA;AACxB,GAAC,EACD,CAACA,kBAAkB,EAAEH,UAAU,CACnC,CAAC,CAAA;AAED,EAAA,oBACIlD,cAAA,CAAAC,aAAA,CAAA,QAAA,EAAAgC,QAAA,CAAA;AACIhB,IAAAA,GAAG,EAAEA,GAAAA;AAAI,GAAA,EACLQ,cAAc,EAAA;AAClB9B,IAAAA,IAAI,EAAC,QAAQ;AACbiD,IAAAA,EAAE,EAAEtD,KAAK,KAAA,IAAA,IAALA,KAAK,KAALA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CAAEsE,KAAM;AACjBrC,IAAAA,SAAS,EAAEY,UAAU,CAACZ,SAAS,EAAEa,kBAAkB,CAAC;AAAEC,MAAAA,MAAM,EAAE7B,WAAS;MAAEqC,QAAQ;AAAEE,MAAAA,UAAAA;AAAW,KAAC,CAAC,CAAE;AAClGc,IAAAA,OAAO,EAAER,kBAAmB;AAC5BH,IAAAA,UAAU,EAAEQ,cAAe;AAC3BT,IAAAA,OAAO,EAAEO,WAAY;AACrBlB,IAAAA,IAAI,EAAC,KAAK;AACVa,IAAAA,QAAQ,EAAEN,QAAQ,GAAG,CAAC,GAAGM,QAAS;AAClC,IAAA,eAAA,EAAeJ,UAAW;AAC1B,IAAA,eAAA,EAAeF,QAAS;AACxB,IAAA,eAAA,EAAevD,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAALA,KAAK,CAAEwE,UAAAA;GAErBpB,CAAAA,EAAAA,IAAI,iBAAI1C,cAAA,CAAAC,aAAA,CAAC8D,IAAI,EAAA9B,QAAA,CAAA;AAACS,IAAAA,IAAI,EAAEA,IAAK;IAACsB,IAAI,EAAEC,IAAI,CAACC,EAAAA;GAAQvB,EAAAA,SAAS,CAAG,CAAC,EAC1DK,KAAK,iBACFhD,cAAA,CAAAC,aAAA,CAACkE,IAAI,EAAA;AAACC,IAAAA,EAAE,EAAC,MAAM;IAACC,QAAQ,EAAA,IAAA;GACnBrB,EAAAA,KACC,CAEN,CAAC,CAAA;AAEjB,CAAC,EAAC;AACFR,GAAG,CAACD,WAAW,GAAGhC,gBAAc,CAAA;AAChCiC,GAAG,CAACjB,SAAS,GAAGf,WAAS,CAAA;AACzBgC,GAAG,CAACnC,YAAY,GAAG1B,eAAa;;;;ACvHhC;AACA;AACA;;AAQA;AACA;AACA;AACA,MAAM4B,cAAc,GAAG,UAAU,CAAA;;AAEjC;AACA;AACA;AACA,MAAMC,SAAS,GAAI,CAAEC,EAAAA,UAAW,CAAW,UAAA,CAAA,CAAA;;AAE3C;AACA;AACA;AACA,MAAM9B,aAAqC,GAAG,EAAE,CAAA;;AAEhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM2F,QAAQ,GAAGtD,UAAU,CAAgC,CAAChC,KAAK,EAAEiC,GAAG,KAAK;EAC9E,MAAM;MAAEhC,QAAQ;MAAE2D,EAAE;MAAErB,SAAS;AAAEsB,MAAAA,QAAQ,EAAEC,YAAAA;AAAgC,KAAC,GAAG9D,KAAK;AAAxByC,IAAAA,cAAc,GAAArC,wBAAA,CAAKJ,KAAK,EAAAK,SAAA,CAAA,CAAA;AAEpF,EAAA,MAAMC,KAAK,GAAG8D,qBAAqB,CAAC,UAAU,EAAER,EAAE,CAAC,CAAA;EACnD,MAAMC,QAAQ,GAAGC,YAAY,KAAIxD,KAAK,aAALA,KAAK,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAALA,KAAK,CAAEuD,QAAQ,CAAA,CAAA;AAEhD,EAAA,oBACI7C,cAAA,CAAAC,aAAA,CAAA,KAAA,EAAAgC,QAAA,CAAA;AACIhB,IAAAA,GAAG,EAAEA,GAAAA;AAAI,GAAA,EACLQ,cAAc,EAAA;AAClBmB,IAAAA,EAAE,EAAEtD,KAAK,KAAA,IAAA,IAALA,KAAK,KAALA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,KAAK,CAAEwE,UAAW;AACtBvC,IAAAA,SAAS,EAAEY,UAAU,CAACZ,SAAS,EAAEa,kBAAkB,CAAC;AAAEC,MAAAA,MAAM,EAAE7B,SAAS;AAAEqC,MAAAA,QAAAA;AAAS,KAAC,CAAC,CAAE;AACtFP,IAAAA,IAAI,EAAC,UAAU;AACfa,IAAAA,QAAQ,EAAEN,QAAQ,GAAG,CAAC,GAAG,CAAC,CAAE;AAC5B,IAAA,iBAAA,EAAiBvD,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAALA,KAAK,CAAEsE,KAAAA;AAAM,GAAA,CAAA,EAE7B,CAAC,EAACtE,KAAK,KAAA,IAAA,IAALA,KAAK,KAAA,KAAA,CAAA,IAALA,KAAK,CAAEV,MAAM,CAAA,IAAIiE,QAAQ,KAAK5D,QAChC,CAAC,CAAA;AAEd,CAAC,EAAC;AACFqF,QAAQ,CAAC/B,WAAW,GAAGhC,cAAc,CAAA;AACrC+D,QAAQ,CAAC/C,SAAS,GAAGf,SAAS,CAAA;AAC9B8D,QAAQ,CAACjE,YAAY,GAAG1B,aAAa;;;;"}
@@ -0,0 +1,106 @@
1
+ import React, { ReactNode } from 'react';
2
+ import { G as GenericProps, H as HasTheme, A as Alignment, C as Comp } from '../../8d67e1e3.js';
3
+ import { IconProps } from '../icon/index.ts-b3fa5e15.js';
4
+
5
+ interface TabProviderProps {
6
+ /** Active tab index. */
7
+ activeTabIndex?: number;
8
+ /** Tab provider children. */
9
+ children: ReactNode;
10
+ /** Tab panel children should not render if the tab panel is hidden. */
11
+ isLazy?: boolean;
12
+ /** Activate tabs on focus. */
13
+ shouldActivateOnFocus?: boolean;
14
+ /** Tab change callback. */
15
+ onChange?(index: number): void;
16
+ }
17
+ /**
18
+ * This component provides a context in which tabs can be defined and linked to their tab panel.
19
+ *
20
+ * It does not produce any markup so you can wrap it around any React elements and then split the TabList and TabPanel
21
+ * components in the react tree.
22
+ *
23
+ * @param props React component props.
24
+ * @return React element.
25
+ */
26
+ declare const TabProvider: React.FC<TabProviderProps>;
27
+
28
+ declare enum TabListLayout {
29
+ clustered = "clustered",
30
+ fixed = "fixed"
31
+ }
32
+ /**
33
+ * Defines the props of the component.
34
+ */
35
+ interface TabListProps extends GenericProps, HasTheme {
36
+ /** ARIA label (purpose of the set of tabs). */
37
+ ['aria-label']: string;
38
+ /** Tab list. */
39
+ children: ReactNode;
40
+ /** Layout of the tabs in the list. */
41
+ layout?: TabListLayout;
42
+ /** Position of the tabs in the list (requires 'clustered' layout). */
43
+ position?: Alignment;
44
+ }
45
+ /**
46
+ * TabList component.
47
+ *
48
+ * Implements WAI-ARIA `tablist` role {@see https://www.w3.org/TR/wai-aria-practices-1.1/examples/tabs/tabs-1/tabs.html#rps_label}
49
+ *
50
+ * @param props Component props.
51
+ * @param ref Component ref.
52
+ * @return React element.
53
+ */
54
+ declare const TabList: Comp<TabListProps, HTMLDivElement>;
55
+
56
+ /**
57
+ * Defines the props of the component.
58
+ */
59
+ interface TabProps extends GenericProps {
60
+ /** Children are not supported. */
61
+ children?: never;
62
+ /** Icon (SVG path). */
63
+ icon?: IconProps['icon'];
64
+ /** Icon component properties. */
65
+ iconProps?: Omit<IconProps, 'icon'>;
66
+ /** Native id property. */
67
+ id?: string;
68
+ /** Whether the tab is active or not. */
69
+ isActive?: boolean;
70
+ /** Whether the component is disabled or not. */
71
+ isDisabled?: boolean;
72
+ /** Label content. */
73
+ label: string | ReactNode;
74
+ }
75
+ /**
76
+ * Tab component.
77
+ *
78
+ * Implements WAI-ARIA `tab` role {@see https://www.w3.org/TR/wai-aria-practices-1.1/examples/tabs/tabs-1/tabs.html#rps_label}
79
+ *
80
+ * @param props Component props.
81
+ * @param ref Component ref.
82
+ * @return React element.
83
+ */
84
+ declare const Tab: Comp<TabProps, HTMLButtonElement>;
85
+
86
+ /**
87
+ * Defines the props of the component.
88
+ */
89
+ interface TabPanelProps extends GenericProps {
90
+ /** Native id property */
91
+ id?: string;
92
+ /** Whether the tab is active or not. */
93
+ isActive?: boolean;
94
+ }
95
+ /**
96
+ * TabPanel component.
97
+ *
98
+ * Implements WAI-ARIA `tabpanel` role {@see https://www.w3.org/TR/wai-aria-practices-1.1/examples/tabs/tabs-1/tabs.html#rps_label}
99
+ *
100
+ * @param props Component props.
101
+ * @param ref Component ref.
102
+ * @return React element.
103
+ */
104
+ declare const TabPanel: Comp<TabPanelProps, HTMLDivElement>;
105
+
106
+ export { Tab, TabList, TabListLayout, type TabListProps, TabPanel, type TabPanelProps, type TabProps, TabProvider, type TabProviderProps };
@@ -0,0 +1,2 @@
1
+ export { T as Text } from '../../53c94227.js';
2
+ //# sourceMappingURL=index.ts-6afbe8cd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.ts-6afbe8cd.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -0,0 +1,53 @@
1
+ import { G as GenericProps, a as ColorPalette, f as ColorVariant, k as Typography, n as TextElement, W as WhiteSpace, C as Comp } from '../../8d67e1e3.js';
2
+ import 'react';
3
+
4
+ /**
5
+ * Defines the props of the component.
6
+ */
7
+ interface TextProps extends GenericProps {
8
+ /**
9
+ * Color variant.
10
+ */
11
+ color?: ColorPalette;
12
+ /**
13
+ * Lightened or darkened variant of the selected color.
14
+ */
15
+ colorVariant?: ColorVariant;
16
+ /**
17
+ * Typography variant.
18
+ */
19
+ typography?: Typography;
20
+ /**
21
+ * Custom component to render the text.
22
+ */
23
+ as: TextElement;
24
+ /**
25
+ * Control whether the text should truncate or not.
26
+ * Setting as `true` will make the text truncate on a single line.
27
+ * Setting as `{ lines: number }` will make the text truncate on a multiple lines.
28
+ */
29
+ truncate?: boolean | {
30
+ lines: number;
31
+ };
32
+ /**
33
+ * Prevents text to wrap on multiple lines
34
+ * (automatically activated when single line text truncate is activated).
35
+ */
36
+ noWrap?: boolean;
37
+ /**
38
+ * WhiteSpace variant
39
+ * Ignored when `noWrap` is set to true
40
+ * Ignored when `truncate` is set to true or lines: 1
41
+ * */
42
+ whiteSpace?: WhiteSpace;
43
+ }
44
+ /**
45
+ * Text component.
46
+ *
47
+ * @param props Component props.
48
+ * @param ref Component ref.
49
+ * @return React element.
50
+ */
51
+ declare const Text: Comp<TextProps, HTMLElement>;
52
+
53
+ export { Text, type TextProps };
@@ -0,0 +1,77 @@
1
+ import { G as GenericProps, H as HasTheme, C as Comp } from '../../8d67e1e3.js';
2
+ import React, { ReactNode, Ref, SyntheticEvent } from 'react';
3
+ import { I as IconButtonProps } from '../../dc3e28c8.js';
4
+ import { InputLabelProps } from '../input-label/index.ts-86f2ea41.js';
5
+ import '../../7f022f8c.js';
6
+ import '../tooltip/index.ts-c6931e9e.js';
7
+ import '../../f5ff1aa4.js';
8
+
9
+ /**
10
+ * Defines the props of the component.
11
+ */
12
+ interface TextFieldProps extends GenericProps, HasTheme {
13
+ /** Chip Group to be rendered before the main text input. */
14
+ chips?: HTMLElement | ReactNode;
15
+ /** Props to pass to the clear button (minus those already set by the TextField props). If not specified, the button won't be displayed. */
16
+ clearButtonProps?: Pick<IconButtonProps, 'label'> & Omit<IconButtonProps, 'label' | 'onClick' | 'icon' | 'emphasis'>;
17
+ /** Error message. */
18
+ error?: string | ReactNode;
19
+ /** Whether we force the focus style or not. */
20
+ forceFocusStyle?: boolean;
21
+ /** Whether the text field is displayed with error style or not. */
22
+ hasError?: boolean;
23
+ /** Additional element to put at the end of the text field. */
24
+ afterElement?: ReactNode;
25
+ /** Helper text. */
26
+ helper?: string | ReactNode;
27
+ /** Icon (SVG path). */
28
+ icon?: string;
29
+ /** Native input id property (generated if not provided to link the label element). */
30
+ id?: string;
31
+ /** Reference to the <input> or <textarea> element. */
32
+ inputRef?: Ref<HTMLInputElement | HTMLTextAreaElement>;
33
+ /** Whether the component is disabled or not. */
34
+ isDisabled?: boolean;
35
+ /** Whether the component is required or not. */
36
+ isRequired?: boolean;
37
+ /** Whether the text field is displayed with valid style or not. */
38
+ isValid?: boolean;
39
+ /** Label text. */
40
+ label?: string;
41
+ /** Additional label props. */
42
+ labelProps?: InputLabelProps;
43
+ /** Max string length the input accepts (constrains the input and displays a character counter). */
44
+ maxLength?: number;
45
+ /** Minimum number of rows displayed in multiline mode (requires `multiline` to be enabled). */
46
+ minimumRows?: number;
47
+ /** Whether the text field is a textarea or an input. */
48
+ multiline?: boolean;
49
+ /** Native input name property. */
50
+ name?: string;
51
+ /** Placeholder text. */
52
+ placeholder?: string;
53
+ /** Reference to the wrapper. */
54
+ textFieldRef?: Ref<HTMLDivElement>;
55
+ /** Native input type (only when `multiline` is disabled). */
56
+ type?: React.ComponentProps<'input'>['type'];
57
+ /** Value. */
58
+ value?: string;
59
+ /** On blur callback. */
60
+ onBlur?(event: React.FocusEvent): void;
61
+ /** On change callback. */
62
+ onChange(value: string, name?: string, event?: SyntheticEvent): void;
63
+ /** On clear callback. */
64
+ onClear?(event?: SyntheticEvent): void;
65
+ /** On focus callback. */
66
+ onFocus?(event: React.FocusEvent): void;
67
+ }
68
+ /**
69
+ * TextField component.
70
+ *
71
+ * @param props Component props.
72
+ * @param ref Component ref.
73
+ * @return React element.
74
+ */
75
+ declare const TextField: Comp<TextFieldProps, HTMLDivElement>;
76
+
77
+ export { TextField, type TextFieldProps };