@dxc-technology/halstack-react 0.0.0-9b45027 → 0.0.0-9bd9511

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 (294) hide show
  1. package/BackgroundColorContext.d.ts +2 -2
  2. package/BackgroundColorContext.js +1 -11
  3. package/HalstackContext.d.ts +13 -0
  4. package/HalstackContext.js +318 -0
  5. package/accordion/Accordion.d.ts +1 -1
  6. package/accordion/Accordion.js +124 -179
  7. package/accordion/Accordion.stories.tsx +115 -27
  8. package/accordion/Accordion.test.js +56 -0
  9. package/accordion/types.d.ts +12 -11
  10. package/accordion-group/AccordionGroup.d.ts +1 -1
  11. package/accordion-group/AccordionGroup.js +28 -77
  12. package/accordion-group/AccordionGroup.stories.tsx +28 -2
  13. package/accordion-group/AccordionGroup.test.js +108 -0
  14. package/accordion-group/types.d.ts +19 -12
  15. package/alert/Alert.js +18 -46
  16. package/alert/Alert.stories.tsx +28 -0
  17. package/alert/Alert.test.js +75 -0
  18. package/alert/types.d.ts +3 -3
  19. package/badge/Badge.d.ts +4 -0
  20. package/badge/Badge.js +6 -16
  21. package/badge/types.d.ts +5 -0
  22. package/bleed/Bleed.d.ts +2 -2
  23. package/bleed/Bleed.js +14 -55
  24. package/bleed/Bleed.stories.tsx +94 -95
  25. package/bleed/types.d.ts +26 -2
  26. package/box/Box.js +34 -63
  27. package/box/Box.stories.tsx +15 -0
  28. package/box/Box.test.js +13 -0
  29. package/box/types.d.ts +5 -4
  30. package/bulleted-list/BulletedList.d.ts +7 -0
  31. package/bulleted-list/BulletedList.js +98 -0
  32. package/bulleted-list/BulletedList.stories.tsx +200 -0
  33. package/bulleted-list/types.d.ts +11 -0
  34. package/bulleted-list/types.js +5 -0
  35. package/button/Button.js +61 -100
  36. package/button/Button.stories.tsx +159 -8
  37. package/button/Button.test.js +26 -0
  38. package/button/types.d.ts +8 -8
  39. package/card/Card.js +44 -70
  40. package/card/Card.test.js +39 -0
  41. package/card/types.d.ts +4 -3
  42. package/checkbox/Checkbox.d.ts +2 -2
  43. package/checkbox/Checkbox.js +115 -162
  44. package/checkbox/Checkbox.stories.tsx +198 -130
  45. package/checkbox/Checkbox.test.js +128 -0
  46. package/checkbox/types.d.ts +14 -6
  47. package/chip/Chip.d.ts +1 -1
  48. package/chip/Chip.js +29 -91
  49. package/chip/Chip.stories.tsx +98 -13
  50. package/chip/Chip.test.js +42 -0
  51. package/chip/types.d.ts +8 -16
  52. package/common/utils.js +1 -6
  53. package/common/variables.d.ts +1431 -0
  54. package/common/variables.js +480 -554
  55. package/date-input/Calendar.d.ts +4 -0
  56. package/date-input/Calendar.js +215 -0
  57. package/date-input/DateInput.js +164 -300
  58. package/date-input/DateInput.stories.tsx +199 -33
  59. package/date-input/DateInput.test.js +648 -0
  60. package/date-input/DatePicker.d.ts +4 -0
  61. package/date-input/DatePicker.js +116 -0
  62. package/date-input/Icons.d.ts +6 -0
  63. package/date-input/Icons.js +63 -0
  64. package/date-input/YearPicker.d.ts +4 -0
  65. package/date-input/YearPicker.js +101 -0
  66. package/date-input/types.d.ts +71 -13
  67. package/dialog/Dialog.js +52 -84
  68. package/dialog/Dialog.stories.tsx +99 -22
  69. package/dialog/Dialog.test.js +56 -0
  70. package/dialog/types.d.ts +4 -3
  71. package/dropdown/Dropdown.d.ts +1 -1
  72. package/dropdown/Dropdown.js +240 -323
  73. package/dropdown/Dropdown.stories.tsx +255 -64
  74. package/dropdown/Dropdown.test.js +479 -0
  75. package/dropdown/DropdownMenu.d.ts +4 -0
  76. package/dropdown/DropdownMenu.js +60 -0
  77. package/dropdown/DropdownMenuItem.d.ts +4 -0
  78. package/dropdown/DropdownMenuItem.js +70 -0
  79. package/dropdown/types.d.ts +30 -19
  80. package/file-input/FileInput.d.ts +2 -2
  81. package/file-input/FileInput.js +224 -351
  82. package/file-input/FileInput.stories.tsx +122 -11
  83. package/file-input/FileInput.test.js +445 -0
  84. package/file-input/FileItem.d.ts +4 -14
  85. package/file-input/FileItem.js +48 -97
  86. package/file-input/types.d.ts +24 -7
  87. package/flex/Flex.d.ts +4 -0
  88. package/flex/Flex.js +57 -0
  89. package/flex/Flex.stories.tsx +103 -0
  90. package/flex/types.d.ts +32 -0
  91. package/flex/types.js +5 -0
  92. package/footer/Footer.js +36 -143
  93. package/footer/Footer.stories.tsx +99 -1
  94. package/footer/Footer.test.js +92 -0
  95. package/footer/Icons.js +1 -5
  96. package/footer/types.d.ts +7 -6
  97. package/header/Header.js +112 -177
  98. package/header/Header.stories.tsx +189 -36
  99. package/header/Header.test.js +66 -0
  100. package/header/Icons.js +2 -6
  101. package/header/types.d.ts +4 -3
  102. package/heading/Heading.js +8 -29
  103. package/heading/Heading.test.js +169 -0
  104. package/heading/types.d.ts +3 -3
  105. package/inset/Inset.js +14 -55
  106. package/inset/Inset.stories.tsx +36 -36
  107. package/inset/types.d.ts +26 -2
  108. package/layout/ApplicationLayout.d.ts +16 -6
  109. package/layout/ApplicationLayout.js +71 -164
  110. package/layout/ApplicationLayout.stories.tsx +84 -93
  111. package/layout/Icons.d.ts +5 -0
  112. package/layout/Icons.js +11 -10
  113. package/layout/SidenavContext.d.ts +5 -0
  114. package/layout/SidenavContext.js +15 -0
  115. package/layout/types.d.ts +18 -33
  116. package/link/Link.d.ts +3 -2
  117. package/link/Link.js +61 -106
  118. package/link/Link.stories.tsx +159 -52
  119. package/link/Link.test.js +65 -0
  120. package/link/types.d.ts +9 -29
  121. package/main.d.ts +11 -15
  122. package/main.js +48 -121
  123. package/nav-tabs/NavTabs.d.ts +8 -0
  124. package/nav-tabs/NavTabs.js +95 -0
  125. package/nav-tabs/NavTabs.stories.tsx +260 -0
  126. package/nav-tabs/NavTabs.test.js +75 -0
  127. package/nav-tabs/Tab.d.ts +4 -0
  128. package/nav-tabs/Tab.js +120 -0
  129. package/nav-tabs/types.d.ts +53 -0
  130. package/nav-tabs/types.js +5 -0
  131. package/number-input/NumberInput.js +21 -38
  132. package/number-input/NumberInput.stories.tsx +5 -5
  133. package/number-input/NumberInput.test.js +406 -0
  134. package/number-input/NumberInputContext.js +0 -5
  135. package/number-input/numberInputContextTypes.d.ts +1 -1
  136. package/number-input/types.d.ts +21 -14
  137. package/package.json +22 -25
  138. package/paginator/Icons.d.ts +5 -0
  139. package/paginator/Icons.js +16 -38
  140. package/paginator/Paginator.js +31 -82
  141. package/paginator/Paginator.stories.tsx +24 -0
  142. package/paginator/Paginator.test.js +266 -0
  143. package/paginator/types.d.ts +1 -1
  144. package/paragraph/Paragraph.d.ts +6 -0
  145. package/paragraph/Paragraph.js +28 -0
  146. package/paragraph/Paragraph.stories.tsx +44 -0
  147. package/password-input/PasswordInput.js +28 -54
  148. package/password-input/PasswordInput.test.js +138 -0
  149. package/password-input/types.d.ts +18 -15
  150. package/progress-bar/ProgressBar.d.ts +2 -2
  151. package/progress-bar/ProgressBar.js +65 -84
  152. package/progress-bar/ProgressBar.stories.jsx +47 -12
  153. package/progress-bar/ProgressBar.test.js +93 -0
  154. package/progress-bar/types.d.ts +3 -4
  155. package/quick-nav/QuickNav.d.ts +4 -0
  156. package/quick-nav/QuickNav.js +95 -0
  157. package/quick-nav/QuickNav.stories.tsx +356 -0
  158. package/quick-nav/types.d.ts +21 -0
  159. package/quick-nav/types.js +5 -0
  160. package/radio-group/Radio.d.ts +1 -1
  161. package/radio-group/Radio.js +61 -66
  162. package/radio-group/RadioGroup.js +99 -129
  163. package/radio-group/RadioGroup.stories.tsx +171 -36
  164. package/radio-group/RadioGroup.test.js +620 -0
  165. package/radio-group/types.d.ts +85 -7
  166. package/resultsetTable/Icons.d.ts +7 -0
  167. package/resultsetTable/Icons.js +48 -0
  168. package/resultsetTable/ResultsetTable.js +66 -157
  169. package/resultsetTable/ResultsetTable.stories.tsx +50 -25
  170. package/resultsetTable/ResultsetTable.test.js +292 -0
  171. package/resultsetTable/types.d.ts +5 -5
  172. package/select/Icons.d.ts +10 -0
  173. package/select/Icons.js +90 -0
  174. package/select/Listbox.d.ts +4 -0
  175. package/select/Listbox.js +144 -0
  176. package/select/Option.d.ts +4 -0
  177. package/select/Option.js +81 -0
  178. package/select/Select.js +201 -485
  179. package/select/Select.stories.tsx +600 -201
  180. package/select/Select.test.js +1845 -0
  181. package/select/types.d.ts +62 -22
  182. package/sidenav/Sidenav.d.ts +6 -5
  183. package/sidenav/Sidenav.js +164 -74
  184. package/sidenav/Sidenav.stories.tsx +249 -149
  185. package/sidenav/Sidenav.test.js +37 -0
  186. package/sidenav/types.d.ts +50 -27
  187. package/slider/Slider.d.ts +2 -2
  188. package/slider/Slider.js +143 -164
  189. package/slider/Slider.stories.tsx +72 -9
  190. package/slider/Slider.test.js +222 -0
  191. package/slider/types.d.ts +11 -3
  192. package/spinner/Spinner.js +12 -41
  193. package/spinner/Spinner.stories.jsx +27 -1
  194. package/spinner/Spinner.test.js +55 -0
  195. package/spinner/types.d.ts +3 -3
  196. package/switch/Switch.d.ts +2 -2
  197. package/switch/Switch.js +148 -107
  198. package/switch/Switch.stories.tsx +53 -42
  199. package/switch/Switch.test.js +180 -0
  200. package/switch/types.d.ts +13 -5
  201. package/table/Table.js +5 -23
  202. package/table/Table.stories.jsx +80 -1
  203. package/table/Table.test.js +21 -0
  204. package/table/types.d.ts +3 -3
  205. package/tabs/Tab.d.ts +4 -0
  206. package/tabs/Tab.js +115 -0
  207. package/tabs/Tabs.d.ts +1 -1
  208. package/tabs/Tabs.js +318 -139
  209. package/tabs/Tabs.stories.tsx +119 -13
  210. package/tabs/Tabs.test.js +295 -0
  211. package/tabs/types.d.ts +21 -7
  212. package/tag/Tag.d.ts +1 -1
  213. package/tag/Tag.js +36 -75
  214. package/tag/Tag.stories.tsx +37 -27
  215. package/tag/Tag.test.js +49 -0
  216. package/tag/types.d.ts +25 -16
  217. package/text-input/Icons.d.ts +8 -0
  218. package/text-input/Icons.js +57 -0
  219. package/text-input/Suggestion.d.ts +4 -0
  220. package/text-input/Suggestion.js +68 -0
  221. package/text-input/Suggestions.d.ts +4 -0
  222. package/text-input/Suggestions.js +109 -0
  223. package/text-input/TextInput.js +232 -438
  224. package/text-input/TextInput.stories.tsx +310 -197
  225. package/text-input/TextInput.test.js +1404 -0
  226. package/text-input/types.d.ts +55 -17
  227. package/textarea/Textarea.js +53 -96
  228. package/textarea/Textarea.stories.jsx +93 -13
  229. package/textarea/Textarea.test.js +360 -0
  230. package/textarea/types.d.ts +22 -15
  231. package/toggle-group/ToggleGroup.d.ts +1 -1
  232. package/toggle-group/ToggleGroup.js +23 -57
  233. package/toggle-group/ToggleGroup.stories.tsx +46 -4
  234. package/toggle-group/ToggleGroup.test.js +124 -0
  235. package/toggle-group/types.d.ts +19 -11
  236. package/translatedLabelsType.d.ts +82 -0
  237. package/translatedLabelsType.js +5 -0
  238. package/typography/Typography.d.ts +4 -0
  239. package/typography/Typography.js +119 -0
  240. package/typography/Typography.stories.tsx +198 -0
  241. package/typography/types.d.ts +18 -0
  242. package/typography/types.js +5 -0
  243. package/useTheme.d.ts +1 -1
  244. package/useTheme.js +3 -9
  245. package/useTranslatedLabels.d.ts +3 -0
  246. package/useTranslatedLabels.js +15 -0
  247. package/wizard/Wizard.d.ts +1 -1
  248. package/wizard/Wizard.js +68 -98
  249. package/wizard/Wizard.stories.tsx +48 -19
  250. package/wizard/Wizard.test.js +114 -0
  251. package/wizard/types.d.ts +12 -7
  252. package/ThemeContext.d.ts +0 -15
  253. package/ThemeContext.js +0 -243
  254. package/V3Select/V3Select.js +0 -455
  255. package/V3Select/index.d.ts +0 -27
  256. package/V3Textarea/V3Textarea.js +0 -260
  257. package/V3Textarea/index.d.ts +0 -27
  258. package/common/RequiredComponent.js +0 -32
  259. package/date/Date.js +0 -373
  260. package/date/index.d.ts +0 -27
  261. package/input-text/Icons.js +0 -22
  262. package/input-text/InputText.js +0 -611
  263. package/input-text/index.d.ts +0 -36
  264. package/list/List.d.ts +0 -8
  265. package/list/List.js +0 -47
  266. package/list/List.stories.tsx +0 -95
  267. package/radio/Radio.d.ts +0 -4
  268. package/radio/Radio.js +0 -174
  269. package/radio/Radio.stories.tsx +0 -192
  270. package/radio/types.d.ts +0 -54
  271. package/row/Row.d.ts +0 -11
  272. package/row/Row.js +0 -127
  273. package/row/Row.stories.tsx +0 -239
  274. package/stack/Stack.d.ts +0 -10
  275. package/stack/Stack.js +0 -97
  276. package/stack/Stack.stories.tsx +0 -166
  277. package/text/Text.d.ts +0 -7
  278. package/text/Text.js +0 -30
  279. package/text/Text.stories.tsx +0 -19
  280. package/toggle/Toggle.js +0 -186
  281. package/toggle/index.d.ts +0 -21
  282. package/upload/Upload.js +0 -201
  283. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  284. package/upload/buttons-upload/Icons.js +0 -40
  285. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  286. package/upload/dragAndDropArea/Icons.js +0 -39
  287. package/upload/file-upload/FileToUpload.js +0 -115
  288. package/upload/file-upload/Icons.js +0 -66
  289. package/upload/files-upload/FilesToUpload.js +0 -109
  290. package/upload/index.d.ts +0 -15
  291. package/upload/transaction/Icons.js +0 -160
  292. package/upload/transaction/Transaction.js +0 -104
  293. package/upload/transactions/Transactions.js +0 -94
  294. /package/{radio → badge}/types.js +0 -0
@@ -0,0 +1,292 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
5
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
6
+ var _react = _interopRequireDefault(require("react"));
7
+ var _react2 = require("@testing-library/react");
8
+ var _userEvent = _interopRequireDefault(require("@testing-library/user-event"));
9
+ var _ResultsetTable = _interopRequireDefault(require("./ResultsetTable"));
10
+ // Mocking DOMRect for Radix Primitive Popover
11
+ global.globalThis = global;
12
+ global.DOMRect = {
13
+ fromRect: function fromRect() {
14
+ return {
15
+ top: 0,
16
+ left: 0,
17
+ bottom: 0,
18
+ right: 0,
19
+ width: 0,
20
+ height: 0
21
+ };
22
+ }
23
+ };
24
+ global.ResizeObserver = /*#__PURE__*/function () {
25
+ function ResizeObserver() {
26
+ (0, _classCallCheck2["default"])(this, ResizeObserver);
27
+ }
28
+ (0, _createClass2["default"])(ResizeObserver, [{
29
+ key: "observe",
30
+ value: function observe() {}
31
+ }, {
32
+ key: "unobserve",
33
+ value: function unobserve() {}
34
+ }, {
35
+ key: "disconnect",
36
+ value: function disconnect() {}
37
+ }]);
38
+ return ResizeObserver;
39
+ }();
40
+ var columns = [{
41
+ displayValue: "Id",
42
+ isSortable: false
43
+ }, {
44
+ displayValue: "Name",
45
+ isSortable: true
46
+ }, {
47
+ displayValue: "City",
48
+ isSortable: false
49
+ }];
50
+ var rows = [[{
51
+ displayValue: "001",
52
+ sortValue: "001"
53
+ }, {
54
+ displayValue: "Peter",
55
+ sortValue: "Peter"
56
+ }, {
57
+ displayValue: "Oviedo",
58
+ sortValue: "Oviedo"
59
+ }], [{
60
+ displayValue: "002",
61
+ sortValue: "002"
62
+ }, {
63
+ displayValue: "Louis",
64
+ sortValue: "Louis"
65
+ }, {
66
+ displayValue: "Oviedo",
67
+ sortValue: "Oviedo"
68
+ }], [{
69
+ displayValue: "003",
70
+ sortValue: "003"
71
+ }, {
72
+ displayValue: "Lana",
73
+ sortValue: "Lana"
74
+ }, {
75
+ displayValue: "Albacete",
76
+ sortValue: "Albacete"
77
+ }], [{
78
+ displayValue: "004",
79
+ sortValue: "004"
80
+ }, {
81
+ displayValue: "Rick",
82
+ sortValue: "Rick"
83
+ }, {
84
+ displayValue: "Albacete",
85
+ sortValue: "Albacete"
86
+ }], [{
87
+ displayValue: "005",
88
+ sortValue: "005"
89
+ }, {
90
+ displayValue: "Mark",
91
+ sortValue: "Mark"
92
+ }, {
93
+ displayValue: "Madrid",
94
+ sortValue: "Madrid"
95
+ }], [{
96
+ displayValue: "006",
97
+ sortValue: "006"
98
+ }, {
99
+ displayValue: "Cris",
100
+ sortValue: "Cris"
101
+ }, {
102
+ displayValue: "Barcelona",
103
+ sortValue: "Barcelona"
104
+ }], [{
105
+ displayValue: "007",
106
+ sortValue: "007"
107
+ }, {
108
+ displayValue: "Susan",
109
+ sortValue: "Susan"
110
+ }, {
111
+ displayValue: "Madrid",
112
+ sortValue: "Madrid"
113
+ }], [{
114
+ displayValue: "008",
115
+ sortValue: "008"
116
+ }, {
117
+ displayValue: "Tina",
118
+ sortValue: "Tina"
119
+ }, {
120
+ displayValue: "Barcelona",
121
+ sortValue: "Barcelona"
122
+ }], [{
123
+ displayValue: "009",
124
+ sortValue: "009"
125
+ }, {
126
+ displayValue: "Kevin",
127
+ sortValue: "Kevin"
128
+ }, {
129
+ displayValue: "Oviedo",
130
+ sortValue: "Oviedo"
131
+ }], [{
132
+ displayValue: "010",
133
+ sortValue: "010"
134
+ }, {
135
+ displayValue: "Cosmin",
136
+ sortValue: "Cosmin"
137
+ }, {
138
+ displayValue: "Barcelona",
139
+ sortValue: "Barcelona"
140
+ }]];
141
+ var rows2 = [[{
142
+ displayValue: "546",
143
+ sortValue: "465"
144
+ }, {
145
+ displayValue: "OtherValue",
146
+ sortValue: "OtherValue"
147
+ }, {
148
+ displayValue: "OtherValue",
149
+ sortValue: "OtherValue"
150
+ }], [{
151
+ displayValue: "978",
152
+ sortValue: "465"
153
+ }, {
154
+ displayValue: "OtherValue",
155
+ sortValue: "OtherValue"
156
+ }, {
157
+ displayValue: "OtherValue",
158
+ sortValue: "OtherValue"
159
+ }, {
160
+ displayValue: ""
161
+ }], [{
162
+ displayValue: "678",
163
+ sortValue: "344"
164
+ }, {
165
+ displayValue: "OtherValue",
166
+ sortValue: "OtherValue"
167
+ }, {
168
+ displayValue: "OtherValue",
169
+ sortValue: "OtherValue"
170
+ }]];
171
+ describe("Resultset table component tests", function () {
172
+ test("Resultset table rendered correctly", function () {
173
+ var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
174
+ columns: columns,
175
+ rows: rows,
176
+ itemsPerPage: 3
177
+ })),
178
+ getByText = _render.getByText;
179
+ expect(getByText("Peter")).toBeTruthy();
180
+ });
181
+ test("Resultset table shows as many rows as itemsPerPage", function () {
182
+ var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
183
+ columns: columns,
184
+ rows: rows,
185
+ itemsPerPage: 3
186
+ })),
187
+ getAllByRole = _render2.getAllByRole;
188
+ expect(getAllByRole("row").length - 1).toEqual(3);
189
+ });
190
+ test("Resultset table shows rows on second page", function () {
191
+ var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
192
+ columns: columns,
193
+ rows: rows,
194
+ itemsPerPage: 3
195
+ })),
196
+ getByText = _render3.getByText,
197
+ getAllByRole = _render3.getAllByRole;
198
+ expect(getByText("Peter")).toBeTruthy();
199
+ expect(getByText("Louis")).toBeTruthy();
200
+ expect(getByText("Lana")).toBeTruthy();
201
+ expect(getAllByRole("row").length - 1).toEqual(3);
202
+ var nextButton = getAllByRole("button")[3];
203
+ _react2.fireEvent.click(nextButton);
204
+ expect(getByText("4 to 6 of 10")).toBeTruthy();
205
+ expect(getByText("Rick")).toBeTruthy();
206
+ expect(getByText("Mark")).toBeTruthy();
207
+ expect(getByText("Cris")).toBeTruthy();
208
+ expect(getAllByRole("row").length - 1).toEqual(3);
209
+ });
210
+ test("Resultset table goToPage works as expected", function () {
211
+ window.HTMLElement.prototype.scrollIntoView = function () {};
212
+ window.HTMLElement.prototype.scrollTo = function () {};
213
+ var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
214
+ columns: columns,
215
+ showGoToPage: true,
216
+ rows: rows,
217
+ itemsPerPage: 3
218
+ })),
219
+ getByText = _render4.getByText,
220
+ getAllByRole = _render4.getAllByRole;
221
+ expect(getByText("Peter")).toBeTruthy();
222
+ expect(getByText("Louis")).toBeTruthy();
223
+ expect(getByText("Lana")).toBeTruthy();
224
+ expect(getAllByRole("row").length - 1).toEqual(3);
225
+ var goToPageSelect = getAllByRole("button")[3];
226
+ _userEvent["default"].click(goToPageSelect);
227
+ var goToPageOption = getByText("2");
228
+ _userEvent["default"].click(goToPageOption);
229
+ expect(getByText("4 to 6 of 10")).toBeTruthy();
230
+ expect(getByText("Rick")).toBeTruthy();
231
+ expect(getByText("Mark")).toBeTruthy();
232
+ expect(getByText("Cris")).toBeTruthy();
233
+ expect(getAllByRole("row").length - 1).toEqual(3);
234
+ });
235
+ test("Resultset table going to the last page shows only one row", function () {
236
+ var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
237
+ columns: columns,
238
+ rows: rows,
239
+ itemsPerPage: 3
240
+ })),
241
+ getByText = _render5.getByText,
242
+ getAllByRole = _render5.getAllByRole;
243
+ var lastButton = getAllByRole("button")[4];
244
+ _react2.fireEvent.click(lastButton);
245
+ expect(getByText("10 to 10 of 10")).toBeTruthy();
246
+ expect(getAllByRole("row")).toHaveLength(2);
247
+ expect(getByText("Cosmin")).toBeTruthy();
248
+ });
249
+ test("Resultset table sort rows by column", function () {
250
+ var component = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
251
+ columns: columns,
252
+ rows: rows,
253
+ itemsPerPage: 3
254
+ }));
255
+ expect(component.queryByText("Peter")).toBeTruthy();
256
+ _react2.fireEvent.click(component.queryByText("Name"));
257
+ expect(component.queryByText("Tina")).not.toBeTruthy();
258
+ expect(component.queryByText("Cosmin")).toBeTruthy();
259
+ _react2.fireEvent.click(component.queryByText("Name"));
260
+ expect(component.queryByText("Tina")).toBeTruthy();
261
+ expect(component.queryByText("Cosmin")).not.toBeTruthy();
262
+ });
263
+ test("Resultset table change rows should go to first page", function () {
264
+ var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
265
+ columns: columns,
266
+ rows: rows,
267
+ itemsPerPage: 3
268
+ })),
269
+ queryByText = _render6.queryByText,
270
+ rerender = _render6.rerender;
271
+ expect(queryByText("Peter")).toBeTruthy();
272
+ rerender( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
273
+ columns: columns,
274
+ rows: rows2,
275
+ itemsPerPage: 3
276
+ }));
277
+ expect(queryByText("1 to 3 of 3")).toBeTruthy();
278
+ });
279
+ test("Resultset table change itemsPerPage should go to first page", function () {
280
+ var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_ResultsetTable["default"], {
281
+ columns: columns,
282
+ rows: rows,
283
+ itemsPerPage: 3,
284
+ itemsPerPageOptions: [2, 3]
285
+ })),
286
+ getAllByRole = _render7.getAllByRole;
287
+ var lastButton = getAllByRole("button")[4];
288
+ expect(getAllByRole("row").length - 1).toEqual(3);
289
+ _react2.fireEvent.click(lastButton);
290
+ expect(getAllByRole("row").length - 1).toEqual(1);
291
+ });
292
+ });
@@ -1,12 +1,12 @@
1
1
  /// <reference types="react" />
2
- declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
- declare type Margin = {
2
+ export type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
+ export type Margin = {
4
4
  top?: Space;
5
5
  bottom?: Space;
6
6
  left?: Space;
7
7
  right?: Space;
8
8
  };
9
- declare type Column = {
9
+ type Column = {
10
10
  /**
11
11
  * Column display value.
12
12
  */
@@ -16,7 +16,7 @@ declare type Column = {
16
16
  */
17
17
  isSortable?: boolean;
18
18
  };
19
- declare type Row = {
19
+ type Row = {
20
20
  /**
21
21
  * Value to be displayed in the cell.
22
22
  */
@@ -27,7 +27,7 @@ declare type Row = {
27
27
  */
28
28
  sortValue?: string;
29
29
  };
30
- declare type Props = {
30
+ type Props = {
31
31
  /**
32
32
  * An array of objects representing the columns of the table.
33
33
  */
@@ -0,0 +1,10 @@
1
+ /// <reference types="react" />
2
+ declare const selectIcons: {
3
+ error: JSX.Element;
4
+ arrowUp: JSX.Element;
5
+ arrowDown: JSX.Element;
6
+ clear: JSX.Element;
7
+ selected: JSX.Element;
8
+ searchOff: JSX.Element;
9
+ };
10
+ export default selectIcons;
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var selectIcons = {
10
+ error: /*#__PURE__*/_react["default"].createElement("svg", {
11
+ role: "img",
12
+ xmlns: "http://www.w3.org/2000/svg",
13
+ height: "24px",
14
+ viewBox: "0 0 24 24",
15
+ width: "24px",
16
+ fill: "currentColor"
17
+ }, /*#__PURE__*/_react["default"].createElement("path", {
18
+ d: "M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"
19
+ })),
20
+ arrowUp: /*#__PURE__*/_react["default"].createElement("svg", {
21
+ role: "img",
22
+ xmlns: "http://www.w3.org/2000/svg",
23
+ height: "24px",
24
+ viewBox: "0 0 24 24",
25
+ width: "24px",
26
+ fill: "currentColor"
27
+ }, /*#__PURE__*/_react["default"].createElement("path", {
28
+ d: "M0 0h24v24H0V0z",
29
+ fill: "none"
30
+ }), /*#__PURE__*/_react["default"].createElement("path", {
31
+ d: "M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6-6 6 1.41 1.41z"
32
+ })),
33
+ arrowDown: /*#__PURE__*/_react["default"].createElement("svg", {
34
+ role: "img",
35
+ xmlns: "http://www.w3.org/2000/svg",
36
+ height: "24px",
37
+ viewBox: "0 0 24 24",
38
+ width: "24px",
39
+ fill: "currentColor"
40
+ }, /*#__PURE__*/_react["default"].createElement("path", {
41
+ d: "M0 0h24v24H0V0z",
42
+ fill: "none"
43
+ }), /*#__PURE__*/_react["default"].createElement("path", {
44
+ d: "M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z"
45
+ })),
46
+ clear: /*#__PURE__*/_react["default"].createElement("svg", {
47
+ role: "img",
48
+ xmlns: "http://www.w3.org/2000/svg",
49
+ width: "24",
50
+ height: "24",
51
+ viewBox: "0 0 24 24",
52
+ fill: "currentColor"
53
+ }, /*#__PURE__*/_react["default"].createElement("path", {
54
+ d: "M0 0h24v24H0V0z",
55
+ fill: "none"
56
+ }), /*#__PURE__*/_react["default"].createElement("path", {
57
+ d: "M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"
58
+ })),
59
+ selected: /*#__PURE__*/_react["default"].createElement("svg", {
60
+ role: "img",
61
+ xmlns: "http://www.w3.org/2000/svg",
62
+ height: "24px",
63
+ viewBox: "0 0 24 24",
64
+ width: "24px",
65
+ fill: "currentColor"
66
+ }, /*#__PURE__*/_react["default"].createElement("path", {
67
+ d: "M0 0h24v24H0z",
68
+ fill: "none"
69
+ }), /*#__PURE__*/_react["default"].createElement("path", {
70
+ d: "M9 16.2L4.8 12l-1.4 1.4L9 19 21 7l-1.4-1.4L9 16.2z"
71
+ })),
72
+ searchOff: /*#__PURE__*/_react["default"].createElement("svg", {
73
+ role: "img",
74
+ xmlns: "http://www.w3.org/2000/svg",
75
+ height: "24px",
76
+ viewBox: "0 0 24 24",
77
+ width: "24px",
78
+ fill: "currentColor"
79
+ }, /*#__PURE__*/_react["default"].createElement("g", null, /*#__PURE__*/_react["default"].createElement("rect", {
80
+ fill: "none",
81
+ height: "24",
82
+ width: "24"
83
+ })), /*#__PURE__*/_react["default"].createElement("g", null, /*#__PURE__*/_react["default"].createElement("g", null, /*#__PURE__*/_react["default"].createElement("path", {
84
+ d: "M15.5,14h-0.79l-0.28-0.27C15.41,12.59,16,11.11,16,9.5C16,5.91,13.09,3,9.5,3C6.08,3,3.28,5.64,3.03,9h2.02 C5.3,6.75,7.18,5,9.5,5C11.99,5,14,7.01,14,9.5S11.99,14,9.5,14c-0.17,0-0.33-0.03-0.5-0.05v2.02C9.17,15.99,9.33,16,9.5,16 c1.61,0,3.09-0.59,4.23-1.57L14,14.71v0.79l5,4.99L20.49,19L15.5,14z"
85
+ }), /*#__PURE__*/_react["default"].createElement("polygon", {
86
+ points: "6.47,10.82 4,13.29 1.53,10.82 0.82,11.53 3.29,14 0.82,16.47 1.53,17.18 4,14.71 6.47,17.18 7.18,16.47 4.71,14 7.18,11.53"
87
+ }))))
88
+ };
89
+ var _default = selectIcons;
90
+ exports["default"] = _default;
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import { ListboxProps } from "./types";
3
+ declare const _default: React.MemoExoticComponent<({ id, currentValue, options, visualFocusIndex, lastOptionIndex, multiple, optional, optionalItem, searchable, handleOptionOnClick, styles, }: ListboxProps) => JSX.Element>;
4
+ export default _default;
@@ -0,0 +1,144 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
12
+ var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
13
+ var _Option = _interopRequireDefault(require("./Option"));
14
+ var _Icons = _interopRequireDefault(require("./Icons"));
15
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
16
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
17
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
18
+ var groupsHaveOptions = function groupsHaveOptions(options) {
19
+ return options !== null && options !== void 0 && options[0].options ? options.some(function (groupOption) {
20
+ var _groupOption$options;
21
+ return ((_groupOption$options = groupOption.options) === null || _groupOption$options === void 0 ? void 0 : _groupOption$options.length) > 0;
22
+ }) : true;
23
+ };
24
+ var Listbox = function Listbox(_ref) {
25
+ var id = _ref.id,
26
+ currentValue = _ref.currentValue,
27
+ options = _ref.options,
28
+ visualFocusIndex = _ref.visualFocusIndex,
29
+ lastOptionIndex = _ref.lastOptionIndex,
30
+ multiple = _ref.multiple,
31
+ optional = _ref.optional,
32
+ optionalItem = _ref.optionalItem,
33
+ searchable = _ref.searchable,
34
+ handleOptionOnClick = _ref.handleOptionOnClick,
35
+ styles = _ref.styles;
36
+ var translatedLabels = (0, _useTranslatedLabels["default"])();
37
+ var listboxRef = (0, _react.useRef)(null);
38
+ var globalIndex = optional && !multiple ? 0 : -1;
39
+ var mapOptionFunc = function mapOptionFunc(option, mapIndex) {
40
+ if (option.options) {
41
+ var groupId = "group-".concat(mapIndex);
42
+ return option.options.length > 0 && /*#__PURE__*/_react["default"].createElement("li", {
43
+ key: "group-".concat(mapIndex)
44
+ }, /*#__PURE__*/_react["default"].createElement(GroupList, {
45
+ role: "group",
46
+ "aria-labelledby": groupId
47
+ }, /*#__PURE__*/_react["default"].createElement(GroupLabel, {
48
+ role: "presentation",
49
+ id: groupId
50
+ }, option.label), option.options.map(function (singleOption) {
51
+ globalIndex++;
52
+ return /*#__PURE__*/_react["default"].createElement(_Option["default"], {
53
+ key: "option-".concat(singleOption.value),
54
+ id: "option-".concat(globalIndex),
55
+ option: singleOption,
56
+ onClick: handleOptionOnClick,
57
+ multiple: multiple,
58
+ visualFocused: visualFocusIndex === globalIndex,
59
+ isGroupedOption: true,
60
+ isLastOption: lastOptionIndex === globalIndex,
61
+ isSelected: multiple ? currentValue.includes(singleOption.value) : currentValue === singleOption.value
62
+ });
63
+ })));
64
+ } else {
65
+ globalIndex++;
66
+ return /*#__PURE__*/_react["default"].createElement(_Option["default"], {
67
+ key: "option-".concat(option.value),
68
+ id: "option-".concat(globalIndex),
69
+ option: option,
70
+ onClick: handleOptionOnClick,
71
+ multiple: multiple,
72
+ visualFocused: visualFocusIndex === globalIndex,
73
+ isLastOption: lastOptionIndex === globalIndex,
74
+ isSelected: multiple ? currentValue.includes(option.value) : currentValue === option.value
75
+ });
76
+ }
77
+ };
78
+ (0, _react.useLayoutEffect)(function () {
79
+ if (currentValue && !multiple) {
80
+ var _listEl$scrollTo;
81
+ var listEl = listboxRef === null || listboxRef === void 0 ? void 0 : listboxRef.current;
82
+ var selectedListOptionEl = listEl === null || listEl === void 0 ? void 0 : listEl.querySelector("[aria-selected='true']");
83
+ listEl === null || listEl === void 0 ? void 0 : (_listEl$scrollTo = listEl.scrollTo) === null || _listEl$scrollTo === void 0 ? void 0 : _listEl$scrollTo.call(listEl, {
84
+ top: (selectedListOptionEl === null || selectedListOptionEl === void 0 ? void 0 : selectedListOptionEl.offsetTop) - (listEl === null || listEl === void 0 ? void 0 : listEl.clientHeight) / 2
85
+ });
86
+ }
87
+ }, [currentValue, multiple]);
88
+ (0, _react.useLayoutEffect)(function () {
89
+ var _listboxRef$current, _visualFocusedOptionE;
90
+ var visualFocusedOptionEl = listboxRef === null || listboxRef === void 0 ? void 0 : (_listboxRef$current = listboxRef.current) === null || _listboxRef$current === void 0 ? void 0 : _listboxRef$current.querySelectorAll("[role='option']")[visualFocusIndex];
91
+ visualFocusedOptionEl === null || visualFocusedOptionEl === void 0 ? void 0 : (_visualFocusedOptionE = visualFocusedOptionEl.scrollIntoView) === null || _visualFocusedOptionE === void 0 ? void 0 : _visualFocusedOptionE.call(visualFocusedOptionEl, {
92
+ block: "nearest",
93
+ inline: "start"
94
+ });
95
+ }, [visualFocusIndex]);
96
+ return /*#__PURE__*/_react["default"].createElement(ListboxContainer, {
97
+ id: id,
98
+ onClick: function onClick(event) {
99
+ event.stopPropagation();
100
+ },
101
+ onMouseDown: function onMouseDown(event) {
102
+ event.preventDefault();
103
+ },
104
+ ref: listboxRef,
105
+ role: "listbox",
106
+ "aria-multiselectable": multiple,
107
+ style: styles
108
+ }, searchable && (options.length === 0 || !groupsHaveOptions(options)) ? /*#__PURE__*/_react["default"].createElement(OptionsSystemMessage, null, /*#__PURE__*/_react["default"].createElement(NoMatchesFoundIcon, null, _Icons["default"].searchOff), translatedLabels.select.noMatchesErrorMessage) : optional && !multiple && /*#__PURE__*/_react["default"].createElement(_Option["default"], {
109
+ key: "option-".concat(optionalItem.value),
110
+ id: "option-".concat(0),
111
+ option: optionalItem,
112
+ onClick: handleOptionOnClick,
113
+ multiple: multiple,
114
+ visualFocused: visualFocusIndex === 0,
115
+ isGroupedOption: false,
116
+ isLastOption: lastOptionIndex === 0,
117
+ isSelected: multiple ? currentValue.includes(optionalItem.value) : currentValue === optionalItem.value
118
+ }), options.map(mapOptionFunc));
119
+ };
120
+ var ListboxContainer = _styledComponents["default"].ul(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n max-height: 304px;\n overflow-y: auto;\n margin: 0;\n padding: 0.25rem 0;\n background-color: ", ";\n border: 1px solid ", ";\n border-radius: 0.25rem;\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1);\n cursor: default;\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n"])), function (props) {
121
+ return props.theme.listDialogBackgroundColor;
122
+ }, function (props) {
123
+ return props.theme.listDialogBorderColor;
124
+ }, function (props) {
125
+ return props.theme.listOptionFontColor;
126
+ }, function (props) {
127
+ return props.theme.fontFamily;
128
+ }, function (props) {
129
+ return props.theme.listOptionFontSize;
130
+ }, function (props) {
131
+ return props.theme.listOptionFontStyle;
132
+ }, function (props) {
133
+ return props.theme.listOptionFontWeight;
134
+ });
135
+ var OptionsSystemMessage = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n padding: 4px 16px;\n color: ", ";\n font-size: 0.875rem;\n line-height: 1.715em;\n"])), function (props) {
136
+ return props.theme.systemMessageFontColor;
137
+ });
138
+ var NoMatchesFoundIcon = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n height: 16px;\n width: 16px;\n padding: 4px;\n margin-right: 0.25rem;\n"])));
139
+ var GroupList = _styledComponents["default"].ul(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n padding: 0;\n"])));
140
+ var GroupLabel = _styledComponents["default"].li(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n padding: 4px 16px;\n font-weight: ", ";\n line-height: 1.715em;\n"])), function (props) {
141
+ return props.theme.listGroupLabelFontWeight;
142
+ });
143
+ var _default = /*#__PURE__*/_react["default"].memo(Listbox);
144
+ exports["default"] = _default;
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import { OptionProps } from "../select/types";
3
+ declare const _default: React.MemoExoticComponent<({ id, option, onClick, multiple, visualFocused, isGroupedOption, isLastOption, isSelected, }: OptionProps) => JSX.Element>;
4
+ export default _default;
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports["default"] = void 0;
8
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _styledComponents = _interopRequireDefault(require("styled-components"));
11
+ var _Checkbox = _interopRequireDefault(require("../checkbox/Checkbox"));
12
+ var _Icons = _interopRequireDefault(require("./Icons"));
13
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
14
+ var Option = function Option(_ref) {
15
+ var id = _ref.id,
16
+ option = _ref.option,
17
+ _onClick = _ref.onClick,
18
+ multiple = _ref.multiple,
19
+ visualFocused = _ref.visualFocused,
20
+ _ref$isGroupedOption = _ref.isGroupedOption,
21
+ isGroupedOption = _ref$isGroupedOption === void 0 ? false : _ref$isGroupedOption,
22
+ isLastOption = _ref.isLastOption,
23
+ isSelected = _ref.isSelected;
24
+ return /*#__PURE__*/_react["default"].createElement(OptionItem, {
25
+ id: id,
26
+ onClick: function onClick() {
27
+ _onClick(option);
28
+ },
29
+ visualFocused: visualFocused,
30
+ selected: isSelected,
31
+ role: "option",
32
+ "aria-selected": isSelected
33
+ }, /*#__PURE__*/_react["default"].createElement(StyledOption, {
34
+ visualFocused: visualFocused,
35
+ selected: isSelected,
36
+ last: isLastOption,
37
+ grouped: isGroupedOption,
38
+ multiple: multiple
39
+ }, multiple && /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
40
+ checked: isSelected,
41
+ tabIndex: -1
42
+ }), option.icon && /*#__PURE__*/_react["default"].createElement(OptionIcon, {
43
+ grouped: isGroupedOption,
44
+ multiple: multiple,
45
+ role: !(typeof option.icon === "string") ? "img" : undefined
46
+ }, typeof option.icon === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
47
+ src: option.icon
48
+ }) : option.icon), /*#__PURE__*/_react["default"].createElement(OptionContent, {
49
+ grouped: isGroupedOption,
50
+ hasIcon: option.icon ? true : false,
51
+ multiple: multiple
52
+ }, /*#__PURE__*/_react["default"].createElement(OptionLabel, null, option.label), !multiple && isSelected && /*#__PURE__*/_react["default"].createElement(OptionSelectedIndicator, null, _Icons["default"].selected))));
53
+ };
54
+ var OptionItem = _styledComponents["default"].li(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n padding: 0 0.5rem;\n box-shadow: inset 0 0 0 2px transparent;\n ", "\n ", ";\n line-height: 1.715em;\n cursor: pointer;\n\n &:hover {\n ", ";\n }\n &:active {\n ", ";\n }\n"])), function (props) {
55
+ return props.visualFocused && "box-shadow: inset 0 0 0 2px ".concat(props.theme.focusListOptionBorderColor, ";");
56
+ }, function (props) {
57
+ return props.selected && "background-color: ".concat(props.theme.selectedListOptionBackgroundColor);
58
+ }, function (props) {
59
+ return props.selected ? "background-color: ".concat(props.theme.selectedHoverListOptionBackgroundColor, ";") : "background-color: ".concat(props.theme.unselectedHoverListOptionBackgroundColor, ";");
60
+ }, function (props) {
61
+ return props.selected ? "background-color: ".concat(props.theme.selectedActiveListOptionBackgroundColor, ";") : "background-color: ".concat(props.theme.unselectedActiveListOptionBackgroundColor, ";");
62
+ });
63
+ var StyledOption = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n padding: 0.25rem 0.5rem 0.188rem 0;\n min-height: 24px;\n ", "\n ", ";\n"])), function (props) {
64
+ return props.grouped && props.multiple && "padding-left: 16px;";
65
+ }, function (props) {
66
+ return props.last || props.visualFocused || props.selected ? "border-bottom: 1px solid transparent" : "border-bottom: 1px solid ".concat(props.theme.listOptionDividerColor);
67
+ });
68
+ var OptionIcon = _styledComponents["default"].span(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n padding: 0.125rem;\n margin-left: ", ";\n color: ", ";\n\n svg,\n img {\n height: 20px;\n width: 20px;\n }\n"])), function (props) {
69
+ return props.grouped && !props.multiple ? "16px" : "8px";
70
+ }, function (props) {
71
+ return props.theme.listOptionIconColor;
72
+ });
73
+ var OptionContent = _styledComponents["default"].span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-between;\n gap: 0.25rem;\n width: 100%;\n overflow: hidden;\n margin-left: ", ";\n"])), function (props) {
74
+ return props.grouped && !props.multiple && !props.hasIcon ? "16px" : "8px";
75
+ });
76
+ var OptionLabel = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n"])));
77
+ var OptionSelectedIndicator = _styledComponents["default"].span(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n color: ", ";\n\n svg {\n width: 16px;\n height: 16px;\n }\n"])), function (props) {
78
+ return props.theme.selectedListOptionIconColor;
79
+ });
80
+ var _default = /*#__PURE__*/_react["default"].memo(Option);
81
+ exports["default"] = _default;