@reportportal/ui-kit 0.0.1-alpha.2 → 0.0.1-alpha.200

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 (310) hide show
  1. package/LICENSE +201 -201
  2. package/README.md +255 -3
  3. package/dist/actionMenu-e78f9615.js +155 -0
  4. package/dist/actionMenu.js +30 -0
  5. package/dist/adaptiveTagList.js +189 -0
  6. package/dist/attachedFile.js +9 -0
  7. package/dist/autocompletes.js +796 -0
  8. package/dist/baseIconButton-251479f7.js +25 -0
  9. package/dist/baseIconButton.js +7 -0
  10. package/dist/bind-06a7ff84.js +41 -0
  11. package/dist/breadcrumbs-80696f49.js +187 -0
  12. package/dist/breadcrumbs.js +14 -0
  13. package/dist/bubblesLoader-f3ffa240.js +28 -0
  14. package/dist/bubblesLoader.js +7 -0
  15. package/dist/bulkPanel.js +225 -0
  16. package/dist/button-7ab874f3.js +66 -0
  17. package/dist/button.js +2 -2
  18. package/dist/calendarArrow-44c7e60e.js +5 -0
  19. package/dist/checkbox-76aa8f97.js +73 -0
  20. package/dist/checkbox.js +3 -2
  21. package/dist/chevronDownDropdown-0260bb66.js +5 -0
  22. package/dist/chip.js +72 -0
  23. package/dist/clear-53660571.js +5 -0
  24. package/dist/close-4d480ef7.js +5 -0
  25. package/dist/common/constants/floatingUi.d.ts +8 -0
  26. package/dist/common/constants/keyCodes.d.ts +24 -0
  27. package/dist/common/constants/sortable.d.ts +2 -0
  28. package/dist/common/hooks/index.d.ts +6 -0
  29. package/dist/common/hooks/useEllipsisTitle.d.ts +6 -0
  30. package/dist/common/hooks/useOnClickOutside.d.ts +6 -0
  31. package/dist/common/hooks/useSortable.d.ts +3 -0
  32. package/dist/common/hooks/useTreeDropValidation.d.ts +5 -0
  33. package/dist/common/hooks/useTreeSortable.d.ts +3 -0
  34. package/dist/common/hooks/useWindowResize.d.ts +4 -0
  35. package/dist/common/hooks.js +69 -0
  36. package/dist/common/types/commonTypes.d.ts +4 -0
  37. package/dist/common/types/index.d.ts +2 -0
  38. package/dist/common/types/sortableTypes.d.ts +185 -0
  39. package/dist/common/utils/addMiddleEllipsis.d.ts +1 -0
  40. package/dist/common/utils/floatingUi.d.ts +3 -0
  41. package/dist/common/utils/getFileExtension.d.ts +1 -0
  42. package/dist/common/utils/htmlAttributes.d.ts +20 -0
  43. package/dist/common/utils/index.d.ts +5 -0
  44. package/dist/common/utils/isString.d.ts +1 -0
  45. package/dist/common/utils/testUtils.d.ts +3 -0
  46. package/dist/common.js +27 -0
  47. package/dist/components/actionMenu/actionMenu.d.ts +33 -0
  48. package/dist/components/actionMenu/constants.d.ts +3 -0
  49. package/dist/components/actionMenu/index.d.ts +18 -0
  50. package/dist/components/adaptiveTagList/adaptiveTagList.d.ts +11 -0
  51. package/dist/components/adaptiveTagList/constants.d.ts +6 -0
  52. package/dist/components/adaptiveTagList/index.d.ts +2 -0
  53. package/dist/components/attachedFile/attachedFile.d.ts +17 -0
  54. package/dist/components/attachedFile/index.d.ts +2 -0
  55. package/dist/components/autocompletes/common/autocompleteMenu/autocompleteMenu.d.ts +12 -0
  56. package/dist/components/autocompletes/common/autocompleteMenu/index.d.ts +1 -0
  57. package/dist/components/autocompletes/common/autocompleteOption/autocompleteOption.d.ts +13 -0
  58. package/dist/components/autocompletes/common/autocompleteOption/index.d.ts +1 -0
  59. package/dist/components/autocompletes/common/autocompleteOptions.d.ts +21 -0
  60. package/dist/components/autocompletes/common/autocompletePrompt/autocompletePrompt.d.ts +7 -0
  61. package/dist/components/autocompletes/common/autocompletePrompt/index.d.ts +1 -0
  62. package/dist/components/autocompletes/common/index.d.ts +19 -0
  63. package/dist/components/autocompletes/constants.d.ts +2 -0
  64. package/dist/components/autocompletes/index.d.ts +3 -0
  65. package/dist/components/autocompletes/multipleAutocomplete/index.d.ts +17 -0
  66. package/dist/components/autocompletes/multipleAutocomplete/multipleAutocomplete.d.ts +55 -0
  67. package/dist/components/autocompletes/multipleAutocomplete/multipleDownshift.d.ts +25 -0
  68. package/dist/components/autocompletes/multipleAutocomplete/selectedItems/index.d.ts +1 -0
  69. package/dist/components/autocompletes/multipleAutocomplete/selectedItems/selectedItems.d.ts +41 -0
  70. package/dist/components/autocompletes/singleAutocomplete/index.d.ts +1 -0
  71. package/dist/components/autocompletes/singleAutocomplete/singleAutocomplete.d.ts +45 -0
  72. package/dist/components/autocompletes/types.d.ts +8 -0
  73. package/dist/components/autocompletes/utils.d.ts +5 -0
  74. package/dist/components/baseIconButton/baseIconButton.d.ts +9 -0
  75. package/dist/components/baseIconButton/index.d.ts +5 -0
  76. package/dist/components/breadcrumbs/breadcrumb/breadcrumb.d.ts +10 -0
  77. package/dist/components/breadcrumbs/breadcrumb/index.d.ts +1 -0
  78. package/dist/components/breadcrumbs/breadcrumbs.d.ts +3 -0
  79. package/dist/components/breadcrumbs/breadcrumbsProvider/breadcrumbsProvider.d.ts +13 -0
  80. package/dist/components/breadcrumbs/breadcrumbsProvider/hooks.d.ts +3 -0
  81. package/dist/components/breadcrumbs/breadcrumbsProvider/index.d.ts +1 -0
  82. package/dist/components/breadcrumbs/hiddenBreadcrumbs/hiddenBreadcrumbs.d.ts +6 -0
  83. package/dist/components/breadcrumbs/hiddenBreadcrumbs/index.d.ts +2 -0
  84. package/dist/components/breadcrumbs/index.d.ts +5 -0
  85. package/dist/components/breadcrumbs/tree/index.d.ts +1 -0
  86. package/dist/components/breadcrumbs/tree/tree.d.ts +7 -0
  87. package/dist/components/breadcrumbs/types.d.ts +29 -0
  88. package/dist/components/bubblesLoader/bubblesLoader.d.ts +9 -0
  89. package/dist/components/bubblesLoader/index.d.ts +4 -0
  90. package/dist/components/bulkPanel/bulkPanel.d.ts +3 -0
  91. package/dist/components/bulkPanel/index.d.ts +2 -0
  92. package/dist/components/bulkPanel/types.d.ts +47 -0
  93. package/dist/components/button/button.d.ts +9 -9
  94. package/dist/components/button/index.d.ts +3 -1
  95. package/dist/components/checkbox/checkbox.d.ts +7 -8
  96. package/dist/components/checkbox/index.d.ts +1 -0
  97. package/dist/components/chip/chip.d.ts +15 -0
  98. package/dist/components/chip/index.d.ts +2 -0
  99. package/dist/components/datePicker/datePicker.d.ts +34 -0
  100. package/dist/components/datePicker/header/datePickerHeader.d.ts +16 -0
  101. package/dist/components/datePicker/header/index.d.ts +4 -0
  102. package/dist/components/datePicker/index.d.ts +5 -0
  103. package/dist/components/datePicker/utils.d.ts +4 -0
  104. package/dist/components/dropdown/constants.d.ts +11 -0
  105. package/dist/components/dropdown/dropdown.d.ts +55 -0
  106. package/dist/components/dropdown/dropdownOption/dropdownOption.d.ts +4 -0
  107. package/dist/components/dropdown/dropdownOption/index.d.ts +4 -0
  108. package/dist/components/dropdown/index.d.ts +5 -0
  109. package/dist/components/dropdown/types.d.ts +31 -0
  110. package/dist/components/dropdown/utils.d.ts +8 -0
  111. package/dist/components/fieldLabel/fieldLabel.d.ts +7 -0
  112. package/dist/components/fieldLabel/index.d.ts +1 -0
  113. package/dist/components/fieldNumber/constants.d.ts +5 -0
  114. package/dist/components/fieldNumber/fieldNumber.d.ts +18 -0
  115. package/dist/components/fieldNumber/index.d.ts +4 -0
  116. package/dist/components/fieldText/fieldText.d.ts +32 -0
  117. package/dist/components/fieldText/index.d.ts +5 -0
  118. package/dist/components/fieldTextFlex/fieldTextFlex.d.ts +17 -0
  119. package/dist/components/fieldTextFlex/index.d.ts +4 -0
  120. package/dist/components/fileDropArea/attachedFilesList/attachedFilesList.d.ts +21 -0
  121. package/dist/components/fileDropArea/attachedFilesList/index.d.ts +5 -0
  122. package/dist/components/fileDropArea/browseButton/browseButton.d.ts +9 -0
  123. package/dist/components/fileDropArea/browseButton/index.d.ts +4 -0
  124. package/dist/components/fileDropArea/constants.d.ts +2 -0
  125. package/dist/components/fileDropArea/dropZone/dropZone.d.ts +10 -0
  126. package/dist/components/fileDropArea/dropZone/index.d.ts +4 -0
  127. package/dist/components/fileDropArea/errorMessage/errorMessage.d.ts +5 -0
  128. package/dist/components/fileDropArea/errorMessage/index.d.ts +4 -0
  129. package/dist/components/fileDropArea/fileDropArea.d.ts +19 -0
  130. package/dist/components/fileDropArea/fileDropAreaProvider/fileDropAreaProvider.d.ts +17 -0
  131. package/dist/components/fileDropArea/fileDropAreaProvider/index.d.ts +1 -0
  132. package/dist/components/fileDropArea/fileDropAreaProvider/useFileDropAreaContext.d.ts +3 -0
  133. package/dist/components/fileDropArea/hooks/index.d.ts +1 -0
  134. package/dist/components/fileDropArea/hooks/useFileDropArea.d.ts +13 -0
  135. package/dist/components/fileDropArea/hooks/useFileProcessing.d.ts +13 -0
  136. package/dist/components/fileDropArea/hooks/useOverlayDropArea.d.ts +22 -0
  137. package/dist/components/fileDropArea/index.d.ts +6 -0
  138. package/dist/components/fileDropArea/types.d.ts +58 -0
  139. package/dist/components/fileDropArea/utils/getValidationErrorMessage.d.ts +3 -0
  140. package/dist/components/fileDropArea/utils/index.d.ts +2 -0
  141. package/dist/components/fileDropArea/utils/validateFile.d.ts +3 -0
  142. package/dist/components/filterItem/filterItem.d.ts +18 -0
  143. package/dist/components/filterItem/index.d.ts +17 -0
  144. package/dist/components/filtersButton/filtersButton.d.ts +14 -0
  145. package/dist/components/filtersButton/index.d.ts +2 -0
  146. package/dist/components/icons/index.d.ts +71 -0
  147. package/dist/components/index.d.ts +36 -0
  148. package/dist/components/issueList/constants.d.ts +5 -0
  149. package/dist/components/issueList/index.d.ts +2 -0
  150. package/dist/components/issueList/issueList.d.ts +18 -0
  151. package/dist/components/maxValueDisplay/index.d.ts +4 -0
  152. package/dist/components/maxValueDisplay/maxValueDisplay.d.ts +8 -0
  153. package/dist/components/maxValueDisplay/utils/index.d.ts +1 -0
  154. package/dist/components/maxValueDisplay/utils/isPositiveInteger.d.ts +1 -0
  155. package/dist/components/modal/index.d.ts +5 -0
  156. package/dist/components/modal/modal.d.ts +25 -0
  157. package/dist/components/modal/modalContent/index.d.ts +1 -0
  158. package/dist/components/modal/modalContent/modalContent.d.ts +7 -0
  159. package/dist/components/modal/modalFooter/index.d.ts +2 -0
  160. package/dist/components/modal/modalFooter/modalFooter.d.ts +14 -0
  161. package/dist/components/modal/modalHeader/index.d.ts +1 -0
  162. package/dist/components/modal/modalHeader/modalHeader.d.ts +9 -0
  163. package/dist/components/modal/types.d.ts +6 -0
  164. package/dist/components/pagination/index.d.ts +5 -0
  165. package/dist/components/pagination/itemsCounter/index.d.ts +1 -0
  166. package/dist/components/pagination/itemsCounter/itemCounter.d.ts +12 -0
  167. package/dist/components/pagination/pageControls/activePage/activePage.d.ts +13 -0
  168. package/dist/components/pagination/pageControls/activePage/index.d.ts +1 -0
  169. package/dist/components/pagination/pageControls/activePage/pageSelector/index.d.ts +1 -0
  170. package/dist/components/pagination/pageControls/activePage/pageSelector/pageSelector.d.ts +11 -0
  171. package/dist/components/pagination/pageControls/index.d.ts +1 -0
  172. package/dist/components/pagination/pageControls/pageControls.d.ts +17 -0
  173. package/dist/components/pagination/pageControls/pageNavigator/bar/bar.d.ts +12 -0
  174. package/dist/components/pagination/pageControls/pageNavigator/bar/index.d.ts +1 -0
  175. package/dist/components/pagination/pageControls/pageNavigator/index.d.ts +1 -0
  176. package/dist/components/pagination/pageControls/pageNavigator/pageNavigator.d.ts +12 -0
  177. package/dist/components/pagination/pageSizeControl/index.d.ts +1 -0
  178. package/dist/components/pagination/pageSizeControl/pageSizeControl.d.ts +11 -0
  179. package/dist/components/pagination/pageSizeControl/sizeSelector/index.d.ts +1 -0
  180. package/dist/components/pagination/pageSizeControl/sizeSelector/sizeSelector.d.ts +9 -0
  181. package/dist/components/pagination/pagination.d.ts +26 -0
  182. package/dist/components/pagination/types.d.ts +2 -0
  183. package/dist/components/popover/index.d.ts +4 -0
  184. package/dist/components/popover/popover.d.ts +19 -0
  185. package/dist/components/radio/index.d.ts +6 -0
  186. package/dist/components/radio/radio.d.ts +17 -0
  187. package/dist/components/radio/radioGroup.d.ts +8 -0
  188. package/dist/components/segmentedControl/index.d.ts +17 -0
  189. package/dist/components/segmentedControl/segmentedControl.d.ts +4 -0
  190. package/dist/components/segmentedControl/types.d.ts +18 -0
  191. package/dist/components/selection/index.d.ts +5 -0
  192. package/dist/components/selection/selection.d.ts +12 -0
  193. package/dist/components/selection/types.d.ts +1 -0
  194. package/dist/components/sidePanel/index.d.ts +2 -0
  195. package/dist/components/sidePanel/sidePanel.d.ts +22 -0
  196. package/dist/components/sortable/dragLayer/dragLayer.d.ts +3 -0
  197. package/dist/components/sortable/dragLayer/index.d.ts +1 -0
  198. package/dist/components/sortable/helpers.d.ts +12 -0
  199. package/dist/components/sortable/index.d.ts +5 -0
  200. package/dist/components/sortable/sortableItem/index.d.ts +1 -0
  201. package/dist/components/sortable/sortableItem/sortableItem.d.ts +3 -0
  202. package/dist/components/sortable/sortableList/index.d.ts +1 -0
  203. package/dist/components/sortable/sortableList/sortableList.d.ts +5 -0
  204. package/dist/components/sortable/treeSortableContainer/TreeSortableContext.d.ts +11 -0
  205. package/dist/components/sortable/treeSortableContainer/index.d.ts +2 -0
  206. package/dist/components/sortable/treeSortableContainer/treeSortableContainer.d.ts +3 -0
  207. package/dist/components/sortable/treeSortableItem/index.d.ts +1 -0
  208. package/dist/components/sortable/treeSortableItem/treeSortableItem.d.ts +3 -0
  209. package/dist/components/spinLoader/index.d.ts +4 -0
  210. package/dist/components/spinLoader/spinLoader.d.ts +8 -0
  211. package/dist/components/systemAlert/index.d.ts +1 -0
  212. package/dist/components/systemAlert/systemAlert.d.ts +4 -0
  213. package/dist/components/systemAlert/types.d.ts +22 -0
  214. package/dist/components/systemMessage/index.d.ts +1 -0
  215. package/dist/components/systemMessage/systemMessage.d.ts +1 -0
  216. package/dist/components/table/constants.d.ts +6 -0
  217. package/dist/components/table/gradientOverlay/gradientOverlay.d.ts +19 -0
  218. package/dist/components/table/gradientOverlay/index.d.ts +2 -0
  219. package/dist/components/table/hooks/index.d.ts +8 -0
  220. package/dist/components/table/hooks/useCheckboxRowSync.d.ts +10 -0
  221. package/dist/components/table/hooks/useColumnResize.d.ts +21 -0
  222. package/dist/components/table/hooks/useColumnWidths.d.ts +8 -0
  223. package/dist/components/table/hooks/useGradientPosition.d.ts +24 -0
  224. package/dist/components/table/hooks/useTableColumns.d.ts +13 -0
  225. package/dist/components/table/hooks/useTableExpansion.d.ts +15 -0
  226. package/dist/components/table/hooks/useTableHover.d.ts +10 -0
  227. package/dist/components/table/index.d.ts +5 -0
  228. package/dist/components/table/resizeHandle/index.d.ts +1 -0
  229. package/dist/components/table/resizeHandle/resizeHandle.d.ts +2 -0
  230. package/dist/components/table/table.d.ts +4 -0
  231. package/dist/components/table/types.d.ts +85 -0
  232. package/dist/components/table/utils.d.ts +12 -0
  233. package/dist/components/themeProvider/index.d.ts +1 -0
  234. package/dist/components/themeProvider/themeProvider.d.ts +3 -1
  235. package/dist/components/toggle/index.d.ts +4 -0
  236. package/dist/components/toggle/toggle.d.ts +12 -0
  237. package/dist/components/tooltip/index.d.ts +1 -0
  238. package/dist/components/tooltip/tooltip.d.ts +23 -0
  239. package/dist/datePicker-62184eed.js +222 -0
  240. package/dist/datePicker.js +35 -0
  241. package/dist/details-dbb1530b.js +5 -0
  242. package/dist/dropdown-0260bb66.js +5 -0
  243. package/dist/dropdown-3e13dca7.js +633 -0
  244. package/dist/dropdown.js +27 -0
  245. package/dist/fieldLabel.js +18 -0
  246. package/dist/fieldNumber-d1b5a7a1.js +140 -0
  247. package/dist/fieldNumber.js +13 -0
  248. package/dist/fieldText-1749da7a.js +167 -0
  249. package/dist/fieldText.js +14 -0
  250. package/dist/fieldTextFlex-2f51c173.js +80 -0
  251. package/dist/fieldTextFlex.js +10 -0
  252. package/dist/fileDropArea.js +325 -0
  253. package/dist/filterItem.js +89 -0
  254. package/dist/filterOutline-819b4b0d.js +6 -0
  255. package/dist/filtersButton.js +77 -0
  256. package/dist/floatingUi-41f8c7b5.js +29 -0
  257. package/dist/fonts/OpenSans/OpenSans-Bold.ttf +0 -0
  258. package/dist/fonts/OpenSans/OpenSans-Medium.ttf +0 -0
  259. package/dist/icons.js +91 -0
  260. package/dist/index-d6e02727.js +129 -0
  261. package/dist/index.js +196 -10
  262. package/dist/isEmpty-ccacb5ff.js +38 -0
  263. package/dist/issueList.js +125 -0
  264. package/dist/keyCodes-f63c0e11.js +4 -0
  265. package/dist/maxValueDisplay-9be01a75.js +13 -0
  266. package/dist/maxValueDisplay.js +6 -0
  267. package/dist/minus-2857540f.js +5 -0
  268. package/dist/modal.js +181 -0
  269. package/dist/openEye-950159cb.js +6 -0
  270. package/dist/pagination-60bd45c1.js +355 -0
  271. package/dist/pagination.js +22 -0
  272. package/dist/plus-199fb2a8.js +5 -0
  273. package/dist/popover.js +80 -0
  274. package/dist/prevPage-87faf576.js +6 -0
  275. package/dist/radio.js +11 -0
  276. package/dist/radioGroup-0c132c2e.js +77 -0
  277. package/dist/resizeColumn-46b5b30f.js +7 -0
  278. package/dist/segmentedControl.js +62 -0
  279. package/dist/selection-da1a3528.js +38 -0
  280. package/dist/selection.js +10 -0
  281. package/dist/sidePanel.js +133 -0
  282. package/dist/sortable.js +330 -0
  283. package/dist/spinLoader-c4a53718.js +11 -0
  284. package/dist/spinLoader.js +7 -0
  285. package/dist/style.css +15 -1
  286. package/dist/success-8fd8bd2c.js +7 -0
  287. package/dist/systemAlert.js +87 -0
  288. package/dist/systemMessage-924fdaa6.js +30 -0
  289. package/dist/systemMessage.js +2 -2
  290. package/dist/table-0ec68481.js +1116 -0
  291. package/dist/table.js +18 -0
  292. package/dist/themeProvider-46c2be7b.js +23 -0
  293. package/dist/themeProvider.js +4 -3
  294. package/dist/toggle-304107fa.js +59 -0
  295. package/dist/toggle.js +9 -0
  296. package/dist/tooltip.js +109 -0
  297. package/dist/tree-c3dd3d45.js +6 -0
  298. package/dist/useEllipsisTitle-462fa254.js +22 -0
  299. package/dist/useOnClickOutside-8f7d68a1.js +25 -0
  300. package/dist/useTreeSortable-bc631689.js +208 -0
  301. package/dist/useWindowResize-a7e1ac92.js +16 -0
  302. package/dist/warning-537ead32.js +5 -0
  303. package/dist/xls-995781cc.js +11 -0
  304. package/package.json +130 -64
  305. package/dist/bind-e1346f99.js +0 -44
  306. package/dist/button-a4d3df83.js +0 -1867
  307. package/dist/checkbox-3fd4bcc1.js +0 -74
  308. package/dist/constants/key-codes.d.ts +0 -4
  309. package/dist/systemMessage-55cf51f4.js +0 -30
  310. package/dist/themeProvider-5800417e.js +0 -19
package/README.md CHANGED
@@ -1,11 +1,263 @@
1
1
  # ReportPortal UI kit
2
2
 
3
- To be updated
3
+ This library is designed to reflect [ReportPortal Design System](https://www.figma.com/file/gjYQPbeyf4YsH3wZiVKoaj/RP-DS-6) components as React components.
4
+
5
+ **alpha versions available**
4
6
 
5
7
  ## Installation
6
8
 
7
- ## Development
9
+ Install the package into your project using your favourite package manager:
10
+
11
+ Using `npm`
12
+ ```console
13
+ npm install @reportportal/ui-kit
14
+ ```
8
15
 
9
- ## Build process
16
+ or using `yarn`
17
+ ```console
18
+ yarn add @reportportal/ui-kit
19
+ ```
20
+
21
+ or using `pnpm`
22
+ ```console
23
+ pnpm add @reportportal/ui-kit
24
+ ```
10
25
 
11
26
  ## Usage
27
+
28
+ 1. Import the library styles at the top-level of your application:
29
+
30
+ ```jsx
31
+ import '@reportportal/ui-kit/dist/style.css';
32
+ ```
33
+
34
+ 2. To use the components in your project, import them from the package:
35
+
36
+ ```jsx
37
+ import { Button } from '@reportportal/ui-kit';
38
+
39
+ const MyComponent = () => (
40
+ <Button>Button</Button>
41
+ );
42
+ ```
43
+
44
+ **Note:** In the future we plan to calibrate the build process to prebuild styles individually for each component and enable tree-shaking.
45
+
46
+ ### Theming
47
+
48
+ All components are provided with the `light` theme by default.
49
+ To use the `dark` theme, you need to wrap your application with the `ThemeProvider` component and pass the `dark` theme as a prop:
50
+
51
+ ```jsx
52
+ import { ThemeProvider, Button } from '@reportportal/ui-kit';
53
+
54
+ const MyComponent = () => (
55
+ <ThemeProvider theme="dark">
56
+ <Button>Dark theme button</Button>
57
+ </ThemeProvider>
58
+ );
59
+ ```
60
+
61
+ `ThemeProvider` can be nested to provide different themes for different parts of the application if needed.
62
+
63
+ ```jsx
64
+ import { ThemeProvider, Button } from '@reportportal/ui-kit';
65
+
66
+ const MyComponent = () => (
67
+ <ThemeProvider theme="light">
68
+ <Button>Light theme button</Button>
69
+ <ThemeProvider theme="dark">
70
+ <Button>Dark theme button override</Button>
71
+ </ThemeProvider>
72
+ </ThemeProvider>
73
+ );
74
+ ```
75
+
76
+ ### Custom themes
77
+
78
+ The `ThemeProvider` component provides the ability to pass custom themes to the application.
79
+
80
+ To use a custom theme, you need to pass an object with the custom theme name as a key and the custom theme class name as a value to the `customThemes` prop of the `ThemeProvider` component:
81
+
82
+ ```jsx
83
+ import { ThemeProvider, Button } from '@reportportal/ui-kit';
84
+
85
+ const MyComponent = () => (
86
+ <ThemeProvider customThemes={{ 'my-theme': 'my-custom-theme' }} theme="my-theme">
87
+ <Button>Custom theme button</Button>
88
+ <ThemeProvider theme="dark">
89
+ <Button>Dark theme button override</Button>
90
+ </ThemeProvider>
91
+ </ThemeProvider>
92
+ );
93
+ ```
94
+
95
+ Then just override the ui-kit CSS custom properties in your custom theme class:
96
+
97
+ ```scss
98
+ .my-custom-theme {
99
+ --rp-ui-base-font-family: OpenSans, Segoe UI, Tahoma, sans-serif;
100
+ --rp-ui-color-primary: green;
101
+ --rp-ui-color-primary-hover: #69e569;
102
+ --rp-ui-color-primary-focused: var(--rp-ui-color-primary-hover);
103
+ --rp-ui-color-primary-pressed: var(--rp-ui-color-primary-hover);
104
+ }
105
+ ```
106
+
107
+ CSS custom properties and their default values can be found in the [themes](./src/assets/styles/themes).
108
+
109
+ The number of custom themes is not limited and actual theme can be easily switched by changing the `theme` prop.
110
+
111
+ ## Components
112
+
113
+ To see a published showcase of the latest components released with its API and use cases, follow the [link](https://developers.reportportal.io/ui-kit/).
114
+
115
+ ### Icons
116
+
117
+ The library provides a set of SVG icons and the `BaseIconButton` component to apply basic styles for hover, disabled and other states to them.
118
+
119
+ The list of available icons can be found in the [icons](./src/components/icons/svg) folder.
120
+
121
+ The icons exported as React components:
122
+
123
+ ```jsx
124
+ import { PlusIcon } from '@reportportal/ui-kit';
125
+
126
+ const MyComponent = () => (
127
+ <PlusIcon />
128
+ );
129
+ ```
130
+
131
+ To use the `BaseIconButton` component, you need to pass the icon component as a child:
132
+
133
+ ```jsx
134
+ import { BaseIconButton, PlusIcon } from '@reportportal/ui-kit';
135
+
136
+ const MyComponent = () => {
137
+ const handleIconClick = () => {
138
+ console.log('Icon clicked');
139
+ };
140
+
141
+ return (
142
+ <BaseIconButton
143
+ className={cx('my-icon')}
144
+ disabled={false}
145
+ onClick={handleIconClick}
146
+ >
147
+ <PlusIcon />
148
+ </BaseIconButton>
149
+ );
150
+ }
151
+ ```
152
+
153
+ `BaseIconButton` supports all the props of the `button` HTML element.
154
+
155
+ **Note:** To support styling via `BaseIconButton`, it is recommended to use *path-based*, *single-color* SVG icons.
156
+
157
+ ## Development
158
+
159
+ The library is developed using [React](https://reactjs.org/) and [TypeScript](https://www.typescriptlang.org/).
160
+
161
+ The [Storybook](https://storybook.js.org/) used as a main development environment and a showcase for components.
162
+
163
+ To run it locally use
164
+ ```console
165
+ npm run start
166
+ ```
167
+
168
+ To create a ready-to-deploy version of the Storybook, run
169
+ ```console
170
+ npm run build:storybook
171
+ ```
172
+
173
+ ### Build process
174
+
175
+ We use [vite](https://vitejs.dev/) as a build tool.
176
+
177
+ To build the library run
178
+ ```console
179
+ npm run build
180
+ ```
181
+
182
+ ### Storybook showcase deploy
183
+
184
+ While the library is in alpha, the showcase hosted on [GitHub Pages](https://reportportal.io/ui-kit/) should be updated based on changes from the `develop` branch.
185
+
186
+ #### Deployment steps
187
+
188
+ 1. Navigate to the "Actions" page within the [repository](https://github.com/reportportal/ui-kit/actions).
189
+ 2. Choose the "Deploy dev storybook showcase" action from list of available workflows.
190
+ 3. Click "Run workflow" button on the right and select the `develop` branch.
191
+ 4. Wait for the deployment process to complete. The progress can be tracked on the "Actions" page.
192
+ 5. Once the deployment is finished, verify that the changes have been deployed correctly, visiting [GitHub Pages](https://reportportal.io/ui-kit/).
193
+
194
+ That's it! If you encounter any issues during the deployment process, please consult the documentation or reach out to the project maintainers for assistance.
195
+
196
+ ### Release
197
+
198
+ While the library is in alpha, the [NPM package](https://www.npmjs.com/package/@reportportal/ui-kit) should be built and published from the `develop` branch with `alpha` tag.
199
+
200
+ #### Release steps
201
+
202
+ 1. Navigate to the "Actions" page within the [repository](https://github.com/reportportal/ui-kit/actions).
203
+ 2. Choose the "Publish dev package version" action from list of available workflows.
204
+ 3. Click "Run workflow" button on the right and select the `develop` branch.
205
+ 4. Wait for the publishing process to complete. The progress can be tracked on the "Actions" page.
206
+ 5. Once the publishing is finished, verify that the changes have been published correctly, visiting [NPM registry](https://www.npmjs.com/package/@reportportal/ui-kit?activeTab=versions).
207
+
208
+ That's it! If you encounter any issues during the release process, please consult the documentation or reach out to the project maintainers for assistance.
209
+
210
+ ### Code style
211
+
212
+ We follow the [Airbnb JavaScript Style Guide](https://github.com/airbnb/javascript) and use [ESLint](https://eslint.org/) to enforce it.
213
+
214
+ ### CSS
215
+
216
+ We use [SCSS](https://sass-lang.com/) as a CSS preprocessor.
217
+
218
+ #### Theming
219
+
220
+ The project uses [CSS Custom Properties](https://developer.mozilla.org/en-US/docs/Web/CSS/--*) to provide colors/fonts/etc. values for different themes via theme-specific CSS classes.
221
+ All components get the appropriate theme values at runtime based on the cascading nature of CSS.
222
+
223
+ This approach was chosen because it is easy to implement and maintain, and CSS Custom Properties are part of [WEB standards](https://www.w3.org/TR/css-variables-1/) and supported by [all major browsers](https://developer.mozilla.org/en-US/docs/Web/CSS/--*#browser_compatibility).
224
+
225
+ The CSS custom properties that come from DS are prefixed with `rp-ui-base` to avoid conflicts with other CSS properties and can be found in the [base.scss](./src/assets/styles/themes/base.scss).
226
+
227
+ ### External libs
228
+
229
+ - [classnames](https://www.npmjs.com/package/classnames) - used for conditionally joining class names together.
230
+ - [downshift](https://www.npmjs.com/package/downshift) - used to build simple, flexible, WAI-ARIA compliant React autocomplete/dropdown/select/combobox components.
231
+ - [framer-motion](https://www.npmjs.com/package/framer-motion) - used for animations.
232
+ - [rc-scrollbars](https://www.npmjs.com/package/rc-scrollbars) - used for custom scrollbars.
233
+ - [@floating-ui/react-dom](https://www.npmjs.com/package/@floating-ui/react-dom) - used for positioning menus, dropdown elements, autocompletes, etc.
234
+
235
+ ### Testing
236
+
237
+ Each new component/hook/utility **must be** covered by unit/component tests.
238
+ All existing uncovered stuff will be tested gradually in the scope of tech-debt elimination activities.
239
+
240
+ #### Testing Tools
241
+
242
+ The project uses the following testing tools:
243
+ - **Vitest**: Fast testing framework, compatible with Vite
244
+ - **React Testing Library**: For testing React components with a focus on user interactions
245
+ - **@testing-library/user-event**: For simulating user events in tests
246
+ - **JSDOM**: For simulating a DOM environment in Node.js
247
+ - **@vitest/coverage-v8**: For code coverage reporting
248
+
249
+ #### Test Scripts
250
+
251
+ Available npm scripts for testing:
252
+ - `npm run test` - Run tests in watch mode
253
+ - `npm run test:coverage` - Run tests with coverage report
254
+ - `npm run test:ci` - Run tests once (for CI environments)
255
+ - `npm run test:ui` - Run tests with UI interface
256
+
257
+ #### Test Coverage
258
+
259
+ The project maintains a minimum of 80% test coverage threshold for:
260
+ - Statements
261
+ - Branches
262
+ - Functions
263
+ - Lines
@@ -0,0 +1,155 @@
1
+ import { jsx as i } from "react/jsx-runtime";
2
+ import { useState as P, useRef as w, useCallback as V, useEffect as C, isValidElement as F, Fragment as K } from "react";
3
+ import { S as R } from "./details-dbb1530b.js";
4
+ import { B as U } from "./baseIconButton-251479f7.js";
5
+ import { Popover as z } from "./popover.js";
6
+ import { c as G } from "./bind-06a7ff84.js";
7
+ const H = "_disabled_gfti4_69", J = "_divider_gfti4_76", m = {
8
+ "action-menu": "_action-menu_gfti4_16",
9
+ "actions-popover": "_actions-popover_gfti4_20",
10
+ "action-dropdown": "_action-dropdown_gfti4_24",
11
+ "action-menu-button": "_action-menu-button_gfti4_29",
12
+ "action-item": "_action-item_gfti4_42",
13
+ disabled: H,
14
+ divider: J
15
+ }, l = G.bind(m), ee = ({
16
+ className: p,
17
+ children: b,
18
+ ...h
19
+ }) => /* @__PURE__ */ i("div", { className: l("action-item", p), tabIndex: -1, ...h, children: b }), ne = ({
20
+ placement: p = "bottom-end",
21
+ items: b = [],
22
+ cleanupDividers: h = !0,
23
+ className: A,
24
+ contentClassName: N,
25
+ buttonClassName: g,
26
+ popoverClassName: E,
27
+ menuClassName: M,
28
+ ariaLabel: S,
29
+ trigger: v,
30
+ disabled: a = !1
31
+ }) => {
32
+ const [u, f] = P(!1), c = w(null), _ = w(/* @__PURE__ */ new Map()), O = V(
33
+ (e) => {
34
+ a || f(e);
35
+ },
36
+ [a]
37
+ );
38
+ C(() => {
39
+ u && c.current && requestAnimationFrame(() => {
40
+ requestAnimationFrame(() => {
41
+ var n;
42
+ const e = (n = c.current) == null ? void 0 : n.querySelector(
43
+ `button[role="menuitem"]:not([disabled]), .${m["action-item"]}`
44
+ );
45
+ e && e.focus();
46
+ });
47
+ });
48
+ }, [u]);
49
+ const s = (e) => !!(e && typeof e == "object" && "type" in e && e.type === "divider"), q = (e) => s(e) ? !0 : typeof e == "object" && e !== null && "hasPermission" in e ? e.hasPermission !== !1 : !0, $ = (e) => {
50
+ var r, I, d, k, x, D;
51
+ const n = Array.from(
52
+ ((r = c.current) == null ? void 0 : r.querySelectorAll(
53
+ `button[role="menuitem"]:not([disabled]), .${m["action-item"]}`
54
+ )) || []
55
+ ), t = n.indexOf(document.activeElement);
56
+ if (e.key === "ArrowDown") {
57
+ e.preventDefault();
58
+ const o = t === -1 ? 0 : (t + 1) % n.length;
59
+ (I = n[o]) == null || I.focus();
60
+ } else if (e.key === "ArrowUp") {
61
+ e.preventDefault();
62
+ const o = t === -1 ? n.length - 1 : (t - 1 + n.length) % n.length;
63
+ (d = n[o]) == null || d.focus();
64
+ } else if (e.key === "Tab")
65
+ if (e.preventDefault(), e.shiftKey) {
66
+ const o = t === -1 ? n.length - 1 : (t - 1 + n.length) % n.length;
67
+ (k = n[o]) == null || k.focus();
68
+ } else {
69
+ const o = t === -1 ? 0 : (t + 1) % n.length;
70
+ (x = n[o]) == null || x.focus();
71
+ }
72
+ else if (e.key === "Enter") {
73
+ e.preventDefault();
74
+ const o = document.activeElement;
75
+ o && ((D = c.current) != null && D.contains(o)) && (o.click(), f(!1));
76
+ } else
77
+ e.key === "Escape" && (e.preventDefault(), f(!1));
78
+ }, j = (e) => {
79
+ const n = e.target, t = n.closest(`[role="menuitem"], .${m["action-item"]}`);
80
+ if (t && !t.hasAttribute("disabled")) {
81
+ if (n === t) {
82
+ const r = t.querySelector(
83
+ 'a, button, [role="button"], [onclick]'
84
+ );
85
+ r && r.click();
86
+ }
87
+ f(!1);
88
+ }
89
+ }, B = (e, n) => s(e) ? /* @__PURE__ */ i("div", { className: l("divider") }, `divider-${n}`) : F(e) ? /* @__PURE__ */ i(K, { children: e }, n) : typeof e == "object" && e !== null && "label" in e ? e.hasPermission === !1 ? null : /* @__PURE__ */ i(
90
+ "button",
91
+ {
92
+ ref: (t) => {
93
+ t ? _.current.set(n, t) : _.current.delete(n);
94
+ },
95
+ type: "button",
96
+ role: "menuitem",
97
+ tabIndex: -1,
98
+ className: l("action-item", { disabled: e.disabled }, e.className),
99
+ disabled: e.disabled,
100
+ onClick: (t) => {
101
+ var r;
102
+ (r = e.onClick) == null || r.call(e, t);
103
+ },
104
+ children: e.label
105
+ },
106
+ e.id || `action-${n}`
107
+ ) : null, y = ((e) => {
108
+ if (!h)
109
+ return e;
110
+ let n = e.filter((t) => t != null);
111
+ if (n.length === 0)
112
+ return n;
113
+ for (; n.length > 0 && s(n[0]); )
114
+ n.shift();
115
+ for (; n.length > 0 && s(n[n.length - 1]); )
116
+ n.pop();
117
+ return n = n.filter((t, r) => !s(t) || r === 0 ? !0 : !s(n[r - 1])), n = n.filter((t, r) => s(t) ? n.slice(r + 1).some((d) => q(d)) : !0), n;
118
+ })(b).map(B).filter(Boolean);
119
+ return y.length === 0 ? null : /* @__PURE__ */ i("div", { className: l("action-menu", A), children: /* @__PURE__ */ i(
120
+ z,
121
+ {
122
+ placement: p,
123
+ isOpened: a ? !1 : u,
124
+ setIsOpened: O,
125
+ content: /* @__PURE__ */ i(
126
+ "div",
127
+ {
128
+ ref: c,
129
+ role: "menu",
130
+ tabIndex: -1,
131
+ onKeyDown: $,
132
+ onClick: j,
133
+ className: l("action-dropdown", M, N),
134
+ children: y
135
+ }
136
+ ),
137
+ className: l("actions-popover", E),
138
+ children: v ? /* @__PURE__ */ i("div", { className: g, children: v }) : /* @__PURE__ */ i(
139
+ U,
140
+ {
141
+ className: l("action-menu-button", g),
142
+ disabled: a,
143
+ "aria-label": S || "Actions menu",
144
+ "aria-expanded": u,
145
+ "aria-haspopup": "menu",
146
+ children: /* @__PURE__ */ i(R, {})
147
+ }
148
+ )
149
+ }
150
+ ) });
151
+ };
152
+ export {
153
+ ne as A,
154
+ ee as a
155
+ };
@@ -0,0 +1,30 @@
1
+ import { A as c, a as s } from "./actionMenu-e78f9615.js";
2
+ import "react/jsx-runtime";
3
+ import "react";
4
+ import "./details-dbb1530b.js";
5
+ import "./baseIconButton-251479f7.js";
6
+ import "./bind-06a7ff84.js";
7
+ import "./popover.js";
8
+ import "@floating-ui/react";
9
+ import "./floatingUi-41f8c7b5.js";
10
+ /*!
11
+ * Copyright 2026 EPAM Systems
12
+ *
13
+ * Licensed under the Apache License, Version 2.0 (the "License");
14
+ * you may not use this file except in compliance with the License.
15
+ * You may obtain a copy of the License at
16
+ *
17
+ * http://www.apache.org/licenses/LICENSE-2.0
18
+ *
19
+ * Unless required by applicable law or agreed to in writing, software
20
+ * distributed under the License is distributed on an "AS IS" BASIS,
21
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
22
+ * See the License for the specific language governing permissions and
23
+ * limitations under the License.
24
+ */
25
+ const A = { type: "divider" };
26
+ export {
27
+ A as ACTION_MENU_DIVIDER,
28
+ c as ActionMenu,
29
+ s as ActionMenuItem
30
+ };
@@ -0,0 +1,189 @@
1
+ import { jsx as l, jsxs as g, Fragment as W } from "react/jsx-runtime";
2
+ import { useRef as Z, useState as N, useCallback as m, useMemo as h, useEffect as S } from "react";
3
+ import { c as A } from "./bind-06a7ff84.js";
4
+ import { B as M } from "./button-7ab874f3.js";
5
+ import { S as V } from "./close-4d480ef7.js";
6
+ import { i as tt } from "./isEmpty-ccacb5ff.js";
7
+ const et = 3, st = 22, nt = 8, it = 0, at = 100, ot = 20, lt = {
8
+ "tag-list-wrapper": "_tag-list-wrapper_fcsvj_16",
9
+ "tag-list-wrapper--show-all-view": "_tag-list-wrapper--show-all-view_fcsvj_19",
10
+ "tag-list": "_tag-list_fcsvj_16",
11
+ "tag-list--full-width": "_tag-list--full-width_fcsvj_31",
12
+ "tag-list--show-all-view": "_tag-list--show-all-view_fcsvj_34",
13
+ "tag-list--expanded": "_tag-list--expanded_fcsvj_40",
14
+ "tag-list--no-tags": "_tag-list--no-tags_fcsvj_45",
15
+ "tag-list__item": "_tag-list__item_fcsvj_49",
16
+ "tag-list__item-title": "_tag-list__item-title_fcsvj_78",
17
+ "tag-list__item--is-editable": "_tag-list__item--is-editable_fcsvj_93",
18
+ "tag-list__item-remove": "_tag-list__item-remove_fcsvj_99",
19
+ "tag-list__item--count": "_tag-list__item--count_fcsvj_126",
20
+ "tag-list__item--button-show-all-view": "_tag-list__item--button-show-all-view_fcsvj_140",
21
+ "tag-list__item--button-wrapper": "_tag-list__item--button-wrapper_fcsvj_144",
22
+ "no-tags-message": "_no-tags-message_fcsvj_161"
23
+ }, a = A.bind(lt), ft = ({
24
+ tags: C,
25
+ isShowAllView: e = !1,
26
+ defaultVisibleLines: s = et,
27
+ onRemoveTag: r,
28
+ noTagsMessage: P = "No tags added",
29
+ showAllText: I = "Show all",
30
+ hideAllText: H = "Hide all",
31
+ showLessText: O = "Show less"
32
+ }) => {
33
+ const d = Z(null), [v, b] = N(0), [o, R] = N(!1), [$, w] = N(/* @__PURE__ */ new Set()), [B, Y] = N(!1), U = m(
34
+ (t, n) => {
35
+ t.stopPropagation(), r == null || r(n);
36
+ },
37
+ [r]
38
+ ), y = m(() => {
39
+ const t = d.current, n = /* @__PURE__ */ new Set();
40
+ if (!t)
41
+ return;
42
+ const i = [...t.children].filter(
43
+ (c) => !c.classList.contains("tag-list__item--button")
44
+ );
45
+ if (i.length === 0)
46
+ return;
47
+ const f = i[0].offsetTop, T = t.getBoundingClientRect().right;
48
+ let p = 0;
49
+ i.forEach((c, u) => {
50
+ const j = c.getBoundingClientRect(), Q = c.offsetTop !== f, X = j.right > T;
51
+ (Q || X) && (n.add(u), p += 1);
52
+ }), w(n), b(p);
53
+ }, []), k = m(() => {
54
+ const t = d.current, n = /* @__PURE__ */ new Set();
55
+ if (!t || !s)
56
+ return;
57
+ const i = [...t.children].filter(
58
+ (u) => !u.classList.contains("tag-list__item--button")
59
+ );
60
+ if (i.length === 0)
61
+ return;
62
+ const f = i[0].offsetTop, _ = i[0].offsetHeight, T = f + _ * (s - 1);
63
+ let p = 0, c = !1;
64
+ i.forEach((u, j) => {
65
+ u.offsetTop > T + ot && (n.add(j), p += 1, c = !0);
66
+ }), w(n), b(p), Y(c);
67
+ }, [s]), q = h(() => e && s && !o ? {
68
+ maxHeight: `${st * s + nt * (s - 1)}px`,
69
+ overflow: "hidden"
70
+ } : {}, [e, s, o]);
71
+ S(() => {
72
+ if (!d.current)
73
+ return;
74
+ const i = setTimeout(() => {
75
+ e && s ? k() : y();
76
+ }, e && s ? it : at);
77
+ return () => clearTimeout(i);
78
+ }, [
79
+ d,
80
+ e,
81
+ s,
82
+ y,
83
+ k,
84
+ v
85
+ ]);
86
+ const x = m(() => {
87
+ R((t) => !t);
88
+ }, []), z = (t) => {
89
+ t.stopPropagation(), x();
90
+ }, E = m(
91
+ (t) => {
92
+ t.stopPropagation(), x();
93
+ },
94
+ [x]
95
+ ), J = h(() => v > 0 && !o, [v, o]), D = h(
96
+ () => e && s && B && !o,
97
+ [e, s, B, o]
98
+ ), F = h(() => /* @__PURE__ */ l("div", { className: a("tag-list__item--button-wrapper"), children: /* @__PURE__ */ l(
99
+ M,
100
+ {
101
+ className: a("tag-list__item--button", "tag-list__item--button-show-all-view"),
102
+ onClick: E,
103
+ variant: "text",
104
+ children: I
105
+ }
106
+ ) }), [E, I]), G = h(() => /* @__PURE__ */ l("div", { className: a({ "tag-list__item--button-wrapper": e }), children: /* @__PURE__ */ l(
107
+ M,
108
+ {
109
+ className: a("tag-list__item--button", {
110
+ "tag-list__item--button-show-all-view": e && s
111
+ }),
112
+ onClick: E,
113
+ variant: "text",
114
+ children: e && s ? H : O
115
+ }
116
+ ) }), [E, e, s, H, O]), K = m((t, n) => {
117
+ t && (t.scrollWidth > t.clientWidth ? t.setAttribute("title", n) : t.removeAttribute("title"));
118
+ }, []);
119
+ return tt(C) ? /* @__PURE__ */ l("div", { className: a("tag-list-wrapper"), children: /* @__PURE__ */ l("div", { className: a("tag-list", "tag-list--no-tags", "tag-list--full-width"), children: /* @__PURE__ */ l("div", { className: a("no-tags-message"), children: P }) }) }) : /* @__PURE__ */ g("div", { className: a("tag-list-wrapper", { "tag-list-wrapper--show-all-view": e }), children: [
120
+ /* @__PURE__ */ g(
121
+ "div",
122
+ {
123
+ className: a("tag-list", "tag-list--full-width", {
124
+ "tag-list--expanded": o,
125
+ "tag-list--show-all-view": e && !o
126
+ }),
127
+ style: q,
128
+ ref: d,
129
+ children: [
130
+ C.map((t, n) => {
131
+ const i = !o && $.has(n), f = !e && i;
132
+ return /* @__PURE__ */ g(
133
+ "div",
134
+ {
135
+ className: a("tag-list__item", { "tag-list__item--is-editable": !!r }),
136
+ style: {
137
+ display: f ? "none" : "flex"
138
+ },
139
+ children: [
140
+ /* @__PURE__ */ l(
141
+ "div",
142
+ {
143
+ className: a("tag-list__item-title"),
144
+ ref: (_) => K(_, t),
145
+ children: t
146
+ }
147
+ ),
148
+ r && /* @__PURE__ */ l(
149
+ "button",
150
+ {
151
+ type: "button",
152
+ className: a("tag-list__item-remove"),
153
+ onClick: (_) => U(_, t),
154
+ children: /* @__PURE__ */ l(V, {})
155
+ }
156
+ )
157
+ ]
158
+ },
159
+ `${n}-${t}`
160
+ );
161
+ }),
162
+ !e && /* @__PURE__ */ g(W, { children: [
163
+ o && G,
164
+ D && F
165
+ ] })
166
+ ]
167
+ }
168
+ ),
169
+ e && /* @__PURE__ */ g(W, { children: [
170
+ o && G,
171
+ D && F
172
+ ] }),
173
+ J && !e ? /* @__PURE__ */ g(
174
+ "button",
175
+ {
176
+ type: "button",
177
+ className: a("tag-list__item", "tag-list__item--count"),
178
+ onClick: z,
179
+ children: [
180
+ "+",
181
+ v
182
+ ]
183
+ }
184
+ ) : null
185
+ ] });
186
+ };
187
+ export {
188
+ ft as AdaptiveTagList
189
+ };
@@ -0,0 +1,9 @@
1
+ import { A as a } from "./index-d6e02727.js";
2
+ import "react/jsx-runtime";
3
+ import "react";
4
+ import "./bind-06a7ff84.js";
5
+ import "./close-4d480ef7.js";
6
+ import "./xls-995781cc.js";
7
+ export {
8
+ a as AttachedFile
9
+ };