@dxc-technology/halstack-react 0.0.0-4e1277a → 0.0.0-4e2c35b

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 (382) hide show
  1. package/README.md +1 -2
  2. package/dist/index.d.mts +6708 -0
  3. package/dist/index.d.ts +6708 -0
  4. package/dist/index.js +1 -0
  5. package/dist/index.mjs +1 -0
  6. package/package.json +69 -66
  7. package/BackgroundColorContext.d.ts +0 -1
  8. package/BackgroundColorContext.js +0 -30
  9. package/HalstackContext.d.ts +0 -1249
  10. package/HalstackContext.js +0 -310
  11. package/accordion/Accordion.d.ts +0 -4
  12. package/accordion/Accordion.js +0 -182
  13. package/accordion/Accordion.stories.tsx +0 -283
  14. package/accordion/Accordion.test.js +0 -56
  15. package/accordion/types.d.ts +0 -57
  16. package/accordion/types.js +0 -5
  17. package/accordion-group/AccordionGroup.d.ts +0 -7
  18. package/accordion-group/AccordionGroup.js +0 -101
  19. package/accordion-group/AccordionGroup.stories.tsx +0 -252
  20. package/accordion-group/AccordionGroup.test.js +0 -98
  21. package/accordion-group/AccordionGroupAccordion.d.ts +0 -4
  22. package/accordion-group/AccordionGroupAccordion.js +0 -31
  23. package/accordion-group/AccordionGroupContext.d.ts +0 -3
  24. package/accordion-group/AccordionGroupContext.js +0 -8
  25. package/accordion-group/types.d.ts +0 -67
  26. package/accordion-group/types.js +0 -5
  27. package/action-icon/ActionIcon.d.ts +0 -4
  28. package/action-icon/ActionIcon.js +0 -47
  29. package/action-icon/ActionIcon.stories.tsx +0 -41
  30. package/action-icon/ActionIcon.test.js +0 -64
  31. package/action-icon/types.d.ts +0 -26
  32. package/action-icon/types.js +0 -5
  33. package/alert/Alert.d.ts +0 -4
  34. package/alert/Alert.js +0 -254
  35. package/alert/Alert.stories.tsx +0 -198
  36. package/alert/Alert.test.js +0 -75
  37. package/alert/types.d.ts +0 -49
  38. package/alert/types.js +0 -5
  39. package/badge/Badge.d.ts +0 -4
  40. package/badge/Badge.js +0 -159
  41. package/badge/Badge.stories.tsx +0 -210
  42. package/badge/Badge.test.js +0 -30
  43. package/badge/types.d.ts +0 -54
  44. package/badge/types.js +0 -5
  45. package/bleed/Bleed.d.ts +0 -3
  46. package/bleed/Bleed.js +0 -43
  47. package/bleed/Bleed.stories.tsx +0 -342
  48. package/bleed/types.d.ts +0 -37
  49. package/bleed/types.js +0 -5
  50. package/box/Box.d.ts +0 -4
  51. package/box/Box.js +0 -75
  52. package/box/Box.stories.tsx +0 -119
  53. package/box/Box.test.js +0 -13
  54. package/box/types.d.ts +0 -32
  55. package/box/types.js +0 -5
  56. package/bulleted-list/BulletedList.d.ts +0 -7
  57. package/bulleted-list/BulletedList.js +0 -89
  58. package/bulleted-list/BulletedList.stories.tsx +0 -115
  59. package/bulleted-list/types.d.ts +0 -38
  60. package/bulleted-list/types.js +0 -5
  61. package/button/Button.d.ts +0 -4
  62. package/button/Button.js +0 -121
  63. package/button/Button.stories.tsx +0 -326
  64. package/button/Button.test.js +0 -38
  65. package/button/types.d.ts +0 -57
  66. package/button/types.js +0 -5
  67. package/card/Card.d.ts +0 -4
  68. package/card/Card.js +0 -120
  69. package/card/Card.stories.tsx +0 -171
  70. package/card/Card.test.js +0 -39
  71. package/card/types.d.ts +0 -62
  72. package/card/types.js +0 -5
  73. package/checkbox/Checkbox.d.ts +0 -4
  74. package/checkbox/Checkbox.js +0 -215
  75. package/checkbox/Checkbox.stories.tsx +0 -222
  76. package/checkbox/Checkbox.test.js +0 -199
  77. package/checkbox/types.d.ts +0 -72
  78. package/checkbox/types.js +0 -5
  79. package/chip/Chip.d.ts +0 -4
  80. package/chip/Chip.js +0 -121
  81. package/chip/Chip.stories.tsx +0 -214
  82. package/chip/Chip.test.js +0 -41
  83. package/chip/types.d.ts +0 -45
  84. package/chip/types.js +0 -5
  85. package/common/coreTokens.d.ts +0 -237
  86. package/common/coreTokens.js +0 -184
  87. package/common/utils.d.ts +0 -1
  88. package/common/utils.js +0 -16
  89. package/common/variables.d.ts +0 -1395
  90. package/common/variables.js +0 -1267
  91. package/container/Container.d.ts +0 -4
  92. package/container/Container.js +0 -194
  93. package/container/Container.stories.tsx +0 -214
  94. package/container/types.d.ts +0 -74
  95. package/container/types.js +0 -5
  96. package/contextual-menu/ContextualMenu.d.ts +0 -7
  97. package/contextual-menu/ContextualMenu.js +0 -71
  98. package/contextual-menu/ContextualMenu.stories.tsx +0 -182
  99. package/contextual-menu/ContextualMenu.test.js +0 -71
  100. package/contextual-menu/MenuItemAction.d.ts +0 -4
  101. package/contextual-menu/MenuItemAction.js +0 -46
  102. package/contextual-menu/types.d.ts +0 -22
  103. package/contextual-menu/types.js +0 -5
  104. package/date-input/Calendar.d.ts +0 -4
  105. package/date-input/Calendar.js +0 -214
  106. package/date-input/DateInput.d.ts +0 -4
  107. package/date-input/DateInput.js +0 -223
  108. package/date-input/DateInput.stories.tsx +0 -285
  109. package/date-input/DateInput.test.js +0 -808
  110. package/date-input/DatePicker.d.ts +0 -4
  111. package/date-input/DatePicker.js +0 -115
  112. package/date-input/Icons.d.ts +0 -6
  113. package/date-input/Icons.js +0 -58
  114. package/date-input/YearPicker.d.ts +0 -4
  115. package/date-input/YearPicker.js +0 -100
  116. package/date-input/types.d.ts +0 -164
  117. package/date-input/types.js +0 -5
  118. package/dialog/Dialog.d.ts +0 -4
  119. package/dialog/Dialog.js +0 -104
  120. package/dialog/Dialog.stories.tsx +0 -365
  121. package/dialog/Dialog.test.js +0 -307
  122. package/dialog/types.d.ts +0 -36
  123. package/dialog/types.js +0 -5
  124. package/divider/Divider.d.ts +0 -4
  125. package/divider/Divider.js +0 -36
  126. package/divider/Divider.stories.tsx +0 -223
  127. package/divider/Divider.test.js +0 -38
  128. package/divider/types.d.ts +0 -21
  129. package/divider/types.js +0 -5
  130. package/dropdown/Dropdown.d.ts +0 -4
  131. package/dropdown/Dropdown.js +0 -336
  132. package/dropdown/Dropdown.stories.tsx +0 -438
  133. package/dropdown/Dropdown.test.js +0 -599
  134. package/dropdown/DropdownMenu.d.ts +0 -4
  135. package/dropdown/DropdownMenu.js +0 -63
  136. package/dropdown/DropdownMenuItem.d.ts +0 -4
  137. package/dropdown/DropdownMenuItem.js +0 -67
  138. package/dropdown/types.d.ts +0 -98
  139. package/dropdown/types.js +0 -5
  140. package/file-input/FileInput.d.ts +0 -4
  141. package/file-input/FileInput.js +0 -479
  142. package/file-input/FileInput.stories.tsx +0 -618
  143. package/file-input/FileInput.test.js +0 -459
  144. package/file-input/FileItem.d.ts +0 -4
  145. package/file-input/FileItem.js +0 -135
  146. package/file-input/types.d.ts +0 -129
  147. package/file-input/types.js +0 -5
  148. package/flex/Flex.d.ts +0 -4
  149. package/flex/Flex.js +0 -57
  150. package/flex/Flex.stories.tsx +0 -112
  151. package/flex/types.d.ts +0 -97
  152. package/flex/types.js +0 -5
  153. package/footer/Footer.d.ts +0 -4
  154. package/footer/Footer.js +0 -138
  155. package/footer/Footer.stories.tsx +0 -171
  156. package/footer/Footer.test.js +0 -85
  157. package/footer/Icons.d.ts +0 -3
  158. package/footer/Icons.js +0 -136
  159. package/footer/types.d.ts +0 -64
  160. package/footer/types.js +0 -5
  161. package/grid/Grid.d.ts +0 -7
  162. package/grid/Grid.js +0 -76
  163. package/grid/Grid.stories.tsx +0 -219
  164. package/grid/types.d.ts +0 -115
  165. package/grid/types.js +0 -5
  166. package/header/Header.d.ts +0 -8
  167. package/header/Header.js +0 -220
  168. package/header/Header.stories.tsx +0 -251
  169. package/header/Header.test.js +0 -66
  170. package/header/Icons.d.ts +0 -2
  171. package/header/Icons.js +0 -29
  172. package/header/types.d.ts +0 -33
  173. package/header/types.js +0 -5
  174. package/heading/Heading.d.ts +0 -4
  175. package/heading/Heading.js +0 -137
  176. package/heading/Heading.stories.tsx +0 -54
  177. package/heading/Heading.test.js +0 -169
  178. package/heading/types.d.ts +0 -33
  179. package/heading/types.js +0 -5
  180. package/icon/Icon.d.ts +0 -4
  181. package/icon/Icon.js +0 -33
  182. package/icon/Icon.stories.tsx +0 -26
  183. package/icon/types.d.ts +0 -4
  184. package/icon/types.js +0 -5
  185. package/image/Image.d.ts +0 -4
  186. package/image/Image.js +0 -70
  187. package/image/Image.stories.tsx +0 -129
  188. package/image/types.d.ts +0 -72
  189. package/image/types.js +0 -5
  190. package/inset/Inset.d.ts +0 -3
  191. package/inset/Inset.js +0 -43
  192. package/inset/Inset.stories.tsx +0 -230
  193. package/inset/types.d.ts +0 -37
  194. package/inset/types.js +0 -5
  195. package/layout/ApplicationLayout.d.ts +0 -20
  196. package/layout/ApplicationLayout.js +0 -134
  197. package/layout/ApplicationLayout.stories.tsx +0 -162
  198. package/layout/Icons.d.ts +0 -8
  199. package/layout/Icons.js +0 -58
  200. package/layout/types.d.ts +0 -41
  201. package/layout/types.js +0 -5
  202. package/link/Link.d.ts +0 -4
  203. package/link/Link.js +0 -115
  204. package/link/Link.stories.tsx +0 -253
  205. package/link/Link.test.js +0 -63
  206. package/link/types.d.ts +0 -54
  207. package/link/types.js +0 -5
  208. package/main.d.ts +0 -49
  209. package/main.js +0 -357
  210. package/nav-tabs/NavTabs.d.ts +0 -7
  211. package/nav-tabs/NavTabs.js +0 -93
  212. package/nav-tabs/NavTabs.stories.tsx +0 -276
  213. package/nav-tabs/NavTabs.test.js +0 -76
  214. package/nav-tabs/NavTabsContext.d.ts +0 -3
  215. package/nav-tabs/NavTabsContext.js +0 -8
  216. package/nav-tabs/Tab.d.ts +0 -4
  217. package/nav-tabs/Tab.js +0 -118
  218. package/nav-tabs/types.d.ts +0 -52
  219. package/nav-tabs/types.js +0 -5
  220. package/number-input/NumberInput.d.ts +0 -4
  221. package/number-input/NumberInput.js +0 -86
  222. package/number-input/NumberInput.stories.tsx +0 -131
  223. package/number-input/NumberInput.test.js +0 -989
  224. package/number-input/NumberInputContext.d.ts +0 -3
  225. package/number-input/NumberInputContext.js +0 -8
  226. package/number-input/types.d.ts +0 -136
  227. package/number-input/types.js +0 -5
  228. package/paginator/Icons.d.ts +0 -5
  229. package/paginator/Icons.js +0 -40
  230. package/paginator/Paginator.d.ts +0 -4
  231. package/paginator/Paginator.js +0 -135
  232. package/paginator/Paginator.stories.tsx +0 -87
  233. package/paginator/Paginator.test.js +0 -335
  234. package/paginator/types.d.ts +0 -38
  235. package/paginator/types.js +0 -5
  236. package/paragraph/Paragraph.d.ts +0 -5
  237. package/paragraph/Paragraph.js +0 -22
  238. package/paragraph/Paragraph.stories.tsx +0 -27
  239. package/password-input/Icons.d.ts +0 -6
  240. package/password-input/Icons.js +0 -35
  241. package/password-input/PasswordInput.d.ts +0 -4
  242. package/password-input/PasswordInput.js +0 -97
  243. package/password-input/PasswordInput.stories.tsx +0 -99
  244. package/password-input/PasswordInput.test.js +0 -198
  245. package/password-input/types.d.ts +0 -111
  246. package/password-input/types.js +0 -5
  247. package/progress-bar/ProgressBar.d.ts +0 -4
  248. package/progress-bar/ProgressBar.js +0 -144
  249. package/progress-bar/ProgressBar.stories.tsx +0 -93
  250. package/progress-bar/ProgressBar.test.js +0 -93
  251. package/progress-bar/types.d.ts +0 -37
  252. package/progress-bar/types.js +0 -5
  253. package/quick-nav/QuickNav.d.ts +0 -4
  254. package/quick-nav/QuickNav.js +0 -94
  255. package/quick-nav/QuickNav.stories.tsx +0 -356
  256. package/quick-nav/types.d.ts +0 -21
  257. package/quick-nav/types.js +0 -5
  258. package/radio-group/Radio.d.ts +0 -4
  259. package/radio-group/Radio.js +0 -124
  260. package/radio-group/RadioGroup.d.ts +0 -4
  261. package/radio-group/RadioGroup.js +0 -235
  262. package/radio-group/RadioGroup.stories.tsx +0 -214
  263. package/radio-group/RadioGroup.test.js +0 -756
  264. package/radio-group/types.d.ts +0 -114
  265. package/radio-group/types.js +0 -5
  266. package/resultset-table/Icons.d.ts +0 -7
  267. package/resultset-table/Icons.js +0 -47
  268. package/resultset-table/ResultsetTable.d.ts +0 -7
  269. package/resultset-table/ResultsetTable.js +0 -166
  270. package/resultset-table/ResultsetTable.stories.tsx +0 -397
  271. package/resultset-table/ResultsetTable.test.js +0 -371
  272. package/resultset-table/types.d.ts +0 -73
  273. package/resultset-table/types.js +0 -5
  274. package/select/Icons.d.ts +0 -10
  275. package/select/Icons.js +0 -89
  276. package/select/Listbox.d.ts +0 -4
  277. package/select/Listbox.js +0 -143
  278. package/select/Option.d.ts +0 -4
  279. package/select/Option.js +0 -87
  280. package/select/Select.d.ts +0 -4
  281. package/select/Select.js +0 -590
  282. package/select/Select.stories.tsx +0 -971
  283. package/select/Select.test.js +0 -2370
  284. package/select/types.d.ts +0 -209
  285. package/select/types.js +0 -5
  286. package/sidenav/Icons.d.ts +0 -7
  287. package/sidenav/Icons.js +0 -47
  288. package/sidenav/Sidenav.d.ts +0 -10
  289. package/sidenav/Sidenav.js +0 -197
  290. package/sidenav/Sidenav.stories.tsx +0 -282
  291. package/sidenav/Sidenav.test.js +0 -37
  292. package/sidenav/SidenavContext.d.ts +0 -5
  293. package/sidenav/SidenavContext.js +0 -13
  294. package/sidenav/types.d.ts +0 -76
  295. package/sidenav/types.js +0 -5
  296. package/slider/Slider.d.ts +0 -4
  297. package/slider/Slider.js +0 -285
  298. package/slider/Slider.test.js +0 -254
  299. package/slider/types.d.ts +0 -86
  300. package/slider/types.js +0 -5
  301. package/spinner/Spinner.d.ts +0 -4
  302. package/spinner/Spinner.js +0 -206
  303. package/spinner/Spinner.stories.tsx +0 -129
  304. package/spinner/Spinner.test.js +0 -55
  305. package/spinner/types.d.ts +0 -32
  306. package/spinner/types.js +0 -5
  307. package/status-light/StatusLight.d.ts +0 -4
  308. package/status-light/StatusLight.js +0 -51
  309. package/status-light/StatusLight.stories.tsx +0 -74
  310. package/status-light/StatusLight.test.js +0 -25
  311. package/status-light/types.d.ts +0 -17
  312. package/status-light/types.js +0 -5
  313. package/switch/Switch.d.ts +0 -4
  314. package/switch/Switch.js +0 -214
  315. package/switch/Switch.stories.tsx +0 -137
  316. package/switch/Switch.test.js +0 -180
  317. package/switch/types.d.ts +0 -66
  318. package/switch/types.js +0 -5
  319. package/table/DropdownTheme.js +0 -62
  320. package/table/Table.d.ts +0 -8
  321. package/table/Table.js +0 -170
  322. package/table/Table.stories.tsx +0 -658
  323. package/table/Table.test.js +0 -113
  324. package/table/types.d.ts +0 -63
  325. package/table/types.js +0 -5
  326. package/tabs/Tab.d.ts +0 -4
  327. package/tabs/Tab.js +0 -116
  328. package/tabs/Tabs.d.ts +0 -4
  329. package/tabs/Tabs.js +0 -384
  330. package/tabs/Tabs.stories.tsx +0 -226
  331. package/tabs/Tabs.test.js +0 -294
  332. package/tabs/types.d.ts +0 -92
  333. package/tabs/types.js +0 -5
  334. package/tag/Tag.d.ts +0 -4
  335. package/tag/Tag.js +0 -151
  336. package/tag/Tag.stories.tsx +0 -155
  337. package/tag/Tag.test.js +0 -49
  338. package/tag/types.d.ts +0 -69
  339. package/tag/types.js +0 -5
  340. package/text-input/Icons.d.ts +0 -8
  341. package/text-input/Icons.js +0 -56
  342. package/text-input/Suggestion.d.ts +0 -4
  343. package/text-input/Suggestion.js +0 -67
  344. package/text-input/Suggestions.d.ts +0 -4
  345. package/text-input/Suggestions.js +0 -84
  346. package/text-input/TextInput.d.ts +0 -4
  347. package/text-input/TextInput.js +0 -565
  348. package/text-input/TextInput.stories.tsx +0 -465
  349. package/text-input/TextInput.test.js +0 -1756
  350. package/text-input/types.d.ts +0 -205
  351. package/text-input/types.js +0 -5
  352. package/textarea/Textarea.d.ts +0 -4
  353. package/textarea/Textarea.js +0 -234
  354. package/textarea/Textarea.stories.tsx +0 -174
  355. package/textarea/Textarea.test.js +0 -406
  356. package/textarea/types.d.ts +0 -141
  357. package/textarea/types.js +0 -5
  358. package/toggle-group/ToggleGroup.d.ts +0 -4
  359. package/toggle-group/ToggleGroup.js +0 -201
  360. package/toggle-group/ToggleGroup.stories.tsx +0 -218
  361. package/toggle-group/ToggleGroup.test.js +0 -137
  362. package/toggle-group/types.d.ts +0 -114
  363. package/toggle-group/types.js +0 -5
  364. package/typography/Typography.d.ts +0 -4
  365. package/typography/Typography.js +0 -23
  366. package/typography/Typography.stories.tsx +0 -198
  367. package/typography/types.d.ts +0 -18
  368. package/typography/types.js +0 -5
  369. package/useTheme.d.ts +0 -1148
  370. package/useTheme.js +0 -15
  371. package/useTranslatedLabels.d.ts +0 -85
  372. package/useTranslatedLabels.js +0 -14
  373. package/utils/BaseTypography.d.ts +0 -21
  374. package/utils/BaseTypography.js +0 -94
  375. package/utils/FocusLock.d.ts +0 -13
  376. package/utils/FocusLock.js +0 -124
  377. package/wizard/Wizard.d.ts +0 -4
  378. package/wizard/Wizard.js +0 -250
  379. package/wizard/Wizard.stories.tsx +0 -253
  380. package/wizard/Wizard.test.js +0 -114
  381. package/wizard/types.d.ts +0 -64
  382. package/wizard/types.js +0 -5
@@ -1,21 +0,0 @@
1
- type Props = {
2
- /**
3
- * The divider can be shown in horizontal or vertical.
4
- */
5
- orientation?: "horizontal" | "vertical";
6
- /**
7
- * Modifies the thickness of the divider.
8
- */
9
- weight?: "regular" | "strong";
10
- /**
11
- * Modifies the color of the divider.
12
- */
13
- color?: "lightGrey" | "mediumGrey" | "darkGrey";
14
- /**
15
- * Specifies whether the divider serves a purely decorative purpose
16
- * or functions as a semantic separator for content. Additionally, it
17
- * determines whether the divider is accessible to screen readers.
18
- */
19
- decorative?: boolean;
20
- };
21
- export default Props;
package/divider/types.js DELETED
@@ -1,5 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
@@ -1,4 +0,0 @@
1
- /// <reference types="react" />
2
- import DropdownPropsType from "./types";
3
- declare const DxcDropdown: ({ options, optionsIconPosition, icon, iconPosition, label, caretHidden, disabled, expandOnHover, onSelectOption, margin, size, tabIndex, }: DropdownPropsType) => JSX.Element;
4
- export default DxcDropdown;
@@ -1,336 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _typeof3 = require("@babel/runtime/helpers/typeof");
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports["default"] = void 0;
9
- var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
10
- var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
12
- var _react = _interopRequireWildcard(require("react"));
13
- var _styledComponents = _interopRequireWildcard(require("styled-components"));
14
- var _variables = require("../common/variables");
15
- var _utils = require("../common/utils");
16
- var _useTheme = _interopRequireDefault(require("../useTheme"));
17
- var _uuid = require("uuid");
18
- var Popover = _interopRequireWildcard(require("@radix-ui/react-popover"));
19
- var _DropdownMenu = _interopRequireDefault(require("./DropdownMenu"));
20
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
21
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
22
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
23
- var upArrowIcon = /*#__PURE__*/_react["default"].createElement("svg", {
24
- xmlns: "http://www.w3.org/2000/svg",
25
- width: "24",
26
- height: "24",
27
- viewBox: "0 0 24 24",
28
- fill: "currentColor"
29
- }, /*#__PURE__*/_react["default"].createElement("path", {
30
- d: "M7 14l5-5 5 5z"
31
- }), /*#__PURE__*/_react["default"].createElement("path", {
32
- d: "M0 0h24v24H0z",
33
- fill: "none"
34
- }));
35
- var downArrowIcon = /*#__PURE__*/_react["default"].createElement("svg", {
36
- xmlns: "http://www.w3.org/2000/svg",
37
- width: "24",
38
- height: "24",
39
- viewBox: "0 0 24 24",
40
- fill: "currentColor"
41
- }, /*#__PURE__*/_react["default"].createElement("path", {
42
- d: "M7 10l5 5 5-5z"
43
- }), /*#__PURE__*/_react["default"].createElement("path", {
44
- d: "M0 0h24v24H0z",
45
- fill: "none"
46
- }));
47
- var useWidth = function useWidth(target) {
48
- var _useState = (0, _react.useState)(0),
49
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
50
- width = _useState2[0],
51
- setWidth = _useState2[1];
52
- (0, _react.useEffect)(function () {
53
- if (target != null) {
54
- setWidth(target.getBoundingClientRect().width);
55
- var triggerObserver = new ResizeObserver(function (entries) {
56
- var rect = entries[0].target.getBoundingClientRect();
57
- setWidth(rect === null || rect === void 0 ? void 0 : rect.width);
58
- });
59
- triggerObserver.observe(target);
60
- return function () {
61
- triggerObserver.unobserve(target);
62
- };
63
- }
64
- }, [target]);
65
- return width;
66
- };
67
- var DxcDropdown = function DxcDropdown(_ref) {
68
- var options = _ref.options,
69
- _ref$optionsIconPosit = _ref.optionsIconPosition,
70
- optionsIconPosition = _ref$optionsIconPosit === void 0 ? "before" : _ref$optionsIconPosit,
71
- icon = _ref.icon,
72
- _ref$iconPosition = _ref.iconPosition,
73
- iconPosition = _ref$iconPosition === void 0 ? "before" : _ref$iconPosition,
74
- _ref$label = _ref.label,
75
- label = _ref$label === void 0 ? "" : _ref$label,
76
- _ref$caretHidden = _ref.caretHidden,
77
- caretHidden = _ref$caretHidden === void 0 ? false : _ref$caretHidden,
78
- _ref$disabled = _ref.disabled,
79
- disabled = _ref$disabled === void 0 ? false : _ref$disabled,
80
- _ref$expandOnHover = _ref.expandOnHover,
81
- expandOnHover = _ref$expandOnHover === void 0 ? false : _ref$expandOnHover,
82
- onSelectOption = _ref.onSelectOption,
83
- margin = _ref.margin,
84
- _ref$size = _ref.size,
85
- size = _ref$size === void 0 ? "fitContent" : _ref$size,
86
- _ref$tabIndex = _ref.tabIndex,
87
- tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
88
- var _useState3 = (0, _react.useState)("trigger-".concat((0, _uuid.v4)())),
89
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 1),
90
- triggerId = _useState4[0];
91
- var menuId = "menu-".concat(triggerId);
92
- var _useState5 = (0, _react.useState)(false),
93
- _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
94
- isOpen = _useState6[0],
95
- changeIsOpen = _useState6[1];
96
- var _useState7 = (0, _react.useState)(0),
97
- _useState8 = (0, _slicedToArray2["default"])(_useState7, 2),
98
- visualFocusIndex = _useState8[0],
99
- setVisualFocusIndex = _useState8[1];
100
- var colorsTheme = (0, _useTheme["default"])();
101
- var triggerRef = (0, _react.useRef)(null);
102
- var menuRef = (0, _react.useRef)(null);
103
- var width = useWidth(triggerRef.current);
104
- var handleOnOpenMenu = function handleOnOpenMenu() {
105
- changeIsOpen(true);
106
- };
107
- var handleOnCloseMenu = function handleOnCloseMenu() {
108
- changeIsOpen(false);
109
- setVisualFocusIndex(0);
110
- };
111
- var handleMenuItemOnClick = (0, _react.useCallback)(function (value) {
112
- var _triggerRef$current;
113
- onSelectOption(value);
114
- handleOnCloseMenu();
115
- (_triggerRef$current = triggerRef.current) === null || _triggerRef$current === void 0 ? void 0 : _triggerRef$current.focus();
116
- }, [onSelectOption]);
117
- var handleOnBlur = function handleOnBlur(event) {
118
- !event.currentTarget.contains(event.relatedTarget) && handleOnCloseMenu();
119
- };
120
- var handleTriggerOnClick = function handleTriggerOnClick() {
121
- changeIsOpen(function (isOpen) {
122
- return !isOpen;
123
- });
124
- };
125
- var handleTriggerOnKeyDown = function handleTriggerOnKeyDown(event) {
126
- switch (event.key) {
127
- case "Up":
128
- case "ArrowUp":
129
- event.preventDefault();
130
- setVisualFocusIndex(options.length - 1);
131
- handleOnOpenMenu();
132
- break;
133
- case " ":
134
- case "Down":
135
- case "ArrowDown":
136
- case "Enter":
137
- event.preventDefault();
138
- handleOnOpenMenu();
139
- break;
140
- }
141
- };
142
- var setPreviousIndexFocus = function setPreviousIndexFocus() {
143
- setVisualFocusIndex(function (currentFocusIndex) {
144
- var index = currentFocusIndex === 0 ? options.length - 1 : currentFocusIndex - 1;
145
- return index;
146
- });
147
- };
148
- var setNextIndexFocus = function setNextIndexFocus() {
149
- setVisualFocusIndex(function (currentFocusIndex) {
150
- var index = currentFocusIndex === options.length - 1 ? 0 : currentFocusIndex + 1;
151
- return index;
152
- });
153
- };
154
- var handleMenuOnKeyDown = (0, _react.useCallback)(function (event) {
155
- var _triggerRef$current2, _triggerRef$current3;
156
- switch (event.key) {
157
- case "Up":
158
- case "ArrowUp":
159
- event.preventDefault();
160
- setPreviousIndexFocus();
161
- break;
162
- case "Down":
163
- case "ArrowDown":
164
- event.preventDefault();
165
- setNextIndexFocus();
166
- break;
167
- case " ":
168
- case "Enter":
169
- event.preventDefault();
170
- handleMenuItemOnClick(options[visualFocusIndex].value);
171
- break;
172
- case "Esc":
173
- case "Escape":
174
- event.preventDefault();
175
- handleOnCloseMenu();
176
- (_triggerRef$current2 = triggerRef.current) === null || _triggerRef$current2 === void 0 ? void 0 : _triggerRef$current2.focus();
177
- break;
178
- case "Home":
179
- case "PageUp":
180
- event.preventDefault();
181
- setVisualFocusIndex(0);
182
- break;
183
- case "End":
184
- case "PageDown":
185
- event.preventDefault();
186
- setVisualFocusIndex(options.length - 1);
187
- break;
188
- case "Tab":
189
- handleOnCloseMenu();
190
- (_triggerRef$current3 = triggerRef.current) === null || _triggerRef$current3 === void 0 ? void 0 : _triggerRef$current3.focus();
191
- break;
192
- }
193
- }, [onSelectOption, visualFocusIndex, options]);
194
- (0, _react.useLayoutEffect)(function () {
195
- var _menuRef$current, _visualFocusedMenuIte;
196
- var visualFocusedMenuItem = menuRef === null || menuRef === void 0 ? void 0 : (_menuRef$current = menuRef.current) === null || _menuRef$current === void 0 ? void 0 : _menuRef$current.querySelectorAll("[role='menuitem']")[visualFocusIndex];
197
- visualFocusedMenuItem === null || visualFocusedMenuItem === void 0 ? void 0 : (_visualFocusedMenuIte = visualFocusedMenuItem.scrollIntoView) === null || _visualFocusedMenuIte === void 0 ? void 0 : _visualFocusedMenuIte.call(visualFocusedMenuItem, {
198
- block: "nearest",
199
- inline: "start"
200
- });
201
- }, [visualFocusIndex]);
202
- return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
203
- theme: colorsTheme.dropdown
204
- }, /*#__PURE__*/_react["default"].createElement(DropdownContainer, {
205
- onMouseEnter: !disabled && expandOnHover ? handleOnOpenMenu : undefined,
206
- onMouseLeave: !disabled && expandOnHover ? handleOnCloseMenu : undefined,
207
- onBlur: !disabled ? handleOnBlur : undefined,
208
- margin: margin,
209
- size: size
210
- }, /*#__PURE__*/_react["default"].createElement(Popover.Root, {
211
- open: isOpen
212
- }, /*#__PURE__*/_react["default"].createElement(Popover.Trigger, {
213
- asChild: true,
214
- type: undefined
215
- }, /*#__PURE__*/_react["default"].createElement(DropdownTrigger, {
216
- onClick: handleTriggerOnClick,
217
- onKeyDown: handleTriggerOnKeyDown,
218
- onBlur: function onBlur(event) {
219
- event.stopPropagation();
220
- },
221
- disabled: disabled,
222
- label: label,
223
- margin: margin,
224
- size: size,
225
- id: triggerId,
226
- "aria-haspopup": "true",
227
- "aria-controls": menuId,
228
- "aria-expanded": isOpen ? true : undefined,
229
- tabIndex: tabIndex,
230
- ref: triggerRef
231
- }, /*#__PURE__*/_react["default"].createElement(DropdownTriggerContent, null, label && iconPosition === "after" && /*#__PURE__*/_react["default"].createElement(DropdownTriggerLabel, null, label), icon && /*#__PURE__*/_react["default"].createElement(DropdownTriggerIcon, {
232
- disabled: disabled,
233
- role: typeof icon === "string" ? undefined : "img"
234
- }, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
235
- src: icon
236
- }) : icon), label && iconPosition === "before" && /*#__PURE__*/_react["default"].createElement(DropdownTriggerLabel, null, label)), !caretHidden && /*#__PURE__*/_react["default"].createElement(CaretIcon, {
237
- disabled: disabled
238
- }, isOpen ? upArrowIcon : downArrowIcon))), /*#__PURE__*/_react["default"].createElement(Popover.Portal, null, /*#__PURE__*/_react["default"].createElement(Popover.Content, {
239
- asChild: true,
240
- sideOffset: 1
241
- }, /*#__PURE__*/_react["default"].createElement(_DropdownMenu["default"], {
242
- id: menuId,
243
- dropdownTriggerId: triggerId,
244
- options: options,
245
- iconsPosition: optionsIconPosition,
246
- visualFocusIndex: visualFocusIndex,
247
- menuItemOnClick: handleMenuItemOnClick,
248
- onKeyDown: handleMenuOnKeyDown,
249
- styles: {
250
- width: width,
251
- zIndex: "2147483647"
252
- },
253
- ref: menuRef
254
- }))))));
255
- };
256
- var sizes = {
257
- small: "60px",
258
- medium: "240px",
259
- large: "480px",
260
- fillParent: "100%",
261
- fitContent: "fit-content"
262
- };
263
- var calculateWidth = function calculateWidth(margin, size) {
264
- return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
265
- };
266
- var DropdownContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n width: ", ";\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"])), function (props) {
267
- return calculateWidth(props.margin, props.size);
268
- }, function (props) {
269
- return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
270
- }, function (props) {
271
- return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
272
- }, function (props) {
273
- return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.right ? _variables.spaces[props.margin.right] : "";
274
- }, function (props) {
275
- return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.bottom ? _variables.spaces[props.margin.bottom] : "";
276
- }, function (props) {
277
- return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
278
- });
279
- var DropdownTrigger = _styledComponents["default"].button(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: ", ";\n width: 100%;\n height: ", ";\n min-width: ", ";\n border-radius: ", ";\n border-width: ", ";\n border-style: ", ";\n border-color: ", ";\n padding-top: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n padding-right: ", ";\n background-color: ", ";\n color: ", ";\n cursor: ", ";\n\n ", ";\n"])), function (props) {
280
- return props.theme.caretIconSpacing;
281
- }, function (props) {
282
- return props.theme.buttonHeight;
283
- }, function (props) {
284
- return props.label === "" ? "0px" : calculateWidth(props.margin, props.size);
285
- }, function (props) {
286
- return props.theme.buttonBorderRadius;
287
- }, function (props) {
288
- return props.theme.buttonBorderThickness;
289
- }, function (props) {
290
- return props.theme.buttonBorderStyle;
291
- }, function (props) {
292
- return props.disabled ? props.theme.disabledButtonBorderColor : props.theme.buttonBorderColor;
293
- }, function (props) {
294
- return props.theme.buttonPaddingTop;
295
- }, function (props) {
296
- return props.theme.buttonPaddingBottom;
297
- }, function (props) {
298
- return props.theme.buttonPaddingLeft;
299
- }, function (props) {
300
- return props.theme.buttonPaddingRight;
301
- }, function (props) {
302
- return props.disabled ? props.theme.disabledButtonBackgroundColor : props.theme.buttonBackgroundColor;
303
- }, function (props) {
304
- return props.disabled ? props.theme.disabledColor : props.theme.buttonFontColor;
305
- }, function (props) {
306
- return props.disabled ? "not-allowed" : "pointer";
307
- }, function (props) {
308
- return !props.disabled && "\n &:focus {\n outline: 2px solid ".concat(props.theme.focusColor, ";\n }\n &:hover {\n background-color: ").concat(props.theme.hoverButtonBackgroundColor, ";\n }\n &:active {\n background-color: ").concat(props.theme.activeButtonBackgroundColor, ";\n }\n ");
309
- });
310
- var DropdownTriggerContent = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n gap: ", ";\n margin-left: 0px;\n margin-right: 0px;\n width: 100%;\n overflow: hidden;\n white-space: nowrap;\n"])), function (props) {
311
- return props.theme.buttonIconSpacing;
312
- });
313
- var DropdownTriggerLabel = _styledComponents["default"].span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n text-overflow: ellipsis;\n overflow: hidden;\n"])), function (props) {
314
- return props.theme.buttonFontFamily;
315
- }, function (props) {
316
- return props.theme.buttonFontSize;
317
- }, function (props) {
318
- return props.theme.buttonFontStyle;
319
- }, function (props) {
320
- return props.theme.buttonFontWeight;
321
- });
322
- var DropdownTriggerIcon = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n color: ", ";\n\n img,\n svg {\n width: ", ";\n height: ", ";\n }\n"])), function (props) {
323
- return props.disabled ? props.theme.disabledColor : props.theme.buttonIconColor;
324
- }, function (props) {
325
- return props.theme.buttonIconSize;
326
- }, function (props) {
327
- return props.theme.buttonIconSize;
328
- });
329
- var CaretIcon = _styledComponents["default"].span(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n color: ", ";\n\n svg {\n width: ", ";\n height: ", ";\n }\n"])), function (props) {
330
- return props.disabled ? props.theme.disabledColor : props.theme.caretIconColor;
331
- }, function (props) {
332
- return props.theme.caretIconSize;
333
- }, function (props) {
334
- return props.theme.caretIconSize;
335
- });
336
- var _default = exports["default"] = DxcDropdown;