@clickhouse/click-ui 0.7.0 → 0.9.0

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 (398) hide show
  1. package/dist/cjs/click-ui.css +1953 -119
  2. package/dist/cjs/components/Assets/Icons/Horizontal-Loading.cjs +13 -49
  3. package/dist/cjs/components/Assets/Icons/Horizontal-Loading.cjs.map +1 -1
  4. package/dist/cjs/components/Assets/Icons/Loaders.css +94 -0
  5. package/dist/cjs/components/Assets/Icons/Loaders.module.css.cjs +13 -0
  6. package/dist/cjs/components/Assets/Icons/Loaders.module.css.cjs.map +1 -0
  7. package/dist/cjs/components/Assets/Icons/Loading-Animated.cjs +8 -12
  8. package/dist/cjs/components/Assets/Icons/Loading-Animated.cjs.map +1 -1
  9. package/dist/cjs/components/Assets/Icons/Loading.cjs +13 -6
  10. package/dist/cjs/components/Assets/Icons/Loading.cjs.map +1 -1
  11. package/dist/cjs/components/AutoComplete/AutoComplete.css +97 -0
  12. package/dist/cjs/components/AutoComplete/AutoComplete.module.css.cjs +18 -0
  13. package/dist/cjs/components/AutoComplete/AutoComplete.module.css.cjs.map +1 -0
  14. package/dist/cjs/components/AutoComplete/index.cjs +14 -74
  15. package/dist/cjs/components/AutoComplete/index.cjs.map +1 -1
  16. package/dist/cjs/components/Button/BaseButton.cjs +10 -31
  17. package/dist/cjs/components/Button/BaseButton.cjs.map +1 -1
  18. package/dist/cjs/components/Button/BaseButton.css +40 -0
  19. package/dist/cjs/components/Button/BaseButton.module.css.cjs +10 -0
  20. package/dist/cjs/components/Button/BaseButton.module.css.cjs.map +1 -0
  21. package/dist/cjs/components/CardPromotion/CardPromotion.css +52 -0
  22. package/dist/cjs/components/CardPromotion/CardPromotion.module.css.cjs +21 -0
  23. package/dist/cjs/components/CardPromotion/CardPromotion.module.css.cjs.map +1 -0
  24. package/dist/cjs/components/CardPromotion/index.cjs +8 -54
  25. package/dist/cjs/components/CardPromotion/index.cjs.map +1 -1
  26. package/dist/cjs/components/CodeBlock/CodeBlock.css +48 -0
  27. package/dist/cjs/components/CodeBlock/CodeBlock.module.css.cjs +22 -0
  28. package/dist/cjs/components/CodeBlock/CodeBlock.module.css.cjs.map +1 -0
  29. package/dist/cjs/components/CodeBlock/InlineCodeBlock.cjs +7 -14
  30. package/dist/cjs/components/CodeBlock/InlineCodeBlock.cjs.map +1 -1
  31. package/dist/cjs/components/CodeBlock/InlineCodeBlock.css +10 -0
  32. package/dist/cjs/components/CodeBlock/InlineCodeBlock.module.css.cjs +12 -0
  33. package/dist/cjs/components/CodeBlock/InlineCodeBlock.module.css.cjs.map +1 -0
  34. package/dist/cjs/components/CodeBlock/index.cjs +18 -49
  35. package/dist/cjs/components/CodeBlock/index.cjs.map +1 -1
  36. package/dist/cjs/components/CodeBlock/useColorStyle.cjs +15 -0
  37. package/dist/cjs/components/CodeBlock/useColorStyle.cjs.map +1 -1
  38. package/dist/cjs/components/ContextMenu/ContextMenu.css +12 -0
  39. package/dist/cjs/components/ContextMenu/ContextMenu.module.css.cjs +8 -1
  40. package/dist/cjs/components/ContextMenu/ContextMenu.module.css.cjs.map +1 -1
  41. package/dist/cjs/components/ContextMenu/index.cjs +8 -20
  42. package/dist/cjs/components/ContextMenu/index.cjs.map +1 -1
  43. package/dist/cjs/components/CrossButton/CrossButton.css +12 -0
  44. package/dist/cjs/components/CrossButton/CrossButton.module.css.cjs +10 -0
  45. package/dist/cjs/components/CrossButton/CrossButton.module.css.cjs.map +1 -0
  46. package/dist/cjs/components/CrossButton/index.cjs +11 -18
  47. package/dist/cjs/components/CrossButton/index.cjs.map +1 -1
  48. package/dist/cjs/components/DatePicker/DateRangePicker.cjs +12 -2
  49. package/dist/cjs/components/DatePicker/DateRangePicker.cjs.map +1 -1
  50. package/dist/cjs/components/DatePicker/DateTimeRangePicker.cjs +1 -1
  51. package/dist/cjs/components/DatePicker/DateTimeRangePicker.cjs.map +1 -1
  52. package/dist/cjs/components/DatePicker/index.cjs +1 -3
  53. package/dist/cjs/components/DatePicker/index.cjs.map +1 -1
  54. package/dist/cjs/components/DatePicker/utils.cjs +3 -0
  55. package/dist/cjs/components/DatePicker/utils.cjs.map +1 -1
  56. package/dist/cjs/components/Dropdown/Dropdown.css +23 -0
  57. package/dist/cjs/components/Dropdown/Dropdown.module.css.cjs +3 -1
  58. package/dist/cjs/components/Dropdown/Dropdown.module.css.cjs.map +1 -1
  59. package/dist/cjs/components/Dropdown/index.cjs +12 -23
  60. package/dist/cjs/components/Dropdown/index.cjs.map +1 -1
  61. package/dist/cjs/components/EllipsisContent/EllipsisContent.css +21 -0
  62. package/dist/cjs/components/EllipsisContent/EllipsisContent.module.css.cjs +10 -0
  63. package/dist/cjs/components/EllipsisContent/EllipsisContent.module.css.cjs.map +1 -0
  64. package/dist/cjs/components/EllipsisContent/index.cjs +7 -6
  65. package/dist/cjs/components/EllipsisContent/index.cjs.map +1 -1
  66. package/dist/cjs/components/EmptyButton/EmptyButton.css +21 -0
  67. package/dist/cjs/components/EmptyButton/EmptyButton.module.css.cjs +10 -0
  68. package/dist/cjs/components/EmptyButton/EmptyButton.module.css.cjs.map +1 -0
  69. package/dist/cjs/components/EmptyButton/index.cjs +10 -4
  70. package/dist/cjs/components/EmptyButton/index.cjs.map +1 -1
  71. package/dist/cjs/components/FileTabs/FileTabs.css +167 -0
  72. package/dist/cjs/components/FileTabs/FileTabs.module.css.cjs +38 -0
  73. package/dist/cjs/components/FileTabs/FileTabs.module.css.cjs.map +1 -0
  74. package/dist/cjs/components/FileTabs/index.cjs +51 -80
  75. package/dist/cjs/components/FileTabs/index.cjs.map +1 -1
  76. package/dist/cjs/components/FileUpload/FileMultiUpload.cjs +3 -9
  77. package/dist/cjs/components/FileUpload/FileMultiUpload.cjs.map +1 -1
  78. package/dist/cjs/components/FileUpload/FileMultiUpload.css +8 -0
  79. package/dist/cjs/components/FileUpload/FileMultiUpload.module.css.cjs +10 -0
  80. package/dist/cjs/components/FileUpload/FileMultiUpload.module.css.cjs.map +1 -0
  81. package/dist/cjs/components/FileUpload/FileUpload.stories-common.css +14 -0
  82. package/dist/cjs/components/FileUpload/FileUploadArea.cjs +87 -64
  83. package/dist/cjs/components/FileUpload/FileUploadArea.cjs.map +1 -1
  84. package/dist/cjs/components/FileUpload/FileUploadArea.css +130 -0
  85. package/dist/cjs/components/FileUpload/FileUploadArea.module.css.cjs +38 -0
  86. package/dist/cjs/components/FileUpload/FileUploadArea.module.css.cjs.map +1 -0
  87. package/dist/cjs/components/FileUpload/FileUploadItem.cjs +56 -64
  88. package/dist/cjs/components/FileUpload/FileUploadItem.cjs.map +1 -1
  89. package/dist/cjs/components/FileUpload/FileUploadItem.css +82 -0
  90. package/dist/cjs/components/FileUpload/FileUploadItem.module.css.cjs +27 -0
  91. package/dist/cjs/components/FileUpload/FileUploadItem.module.css.cjs.map +1 -0
  92. package/dist/cjs/components/FormContainer/Error.cjs +8 -9
  93. package/dist/cjs/components/FormContainer/Error.cjs.map +1 -1
  94. package/dist/cjs/components/FormContainer/Error.css +4 -0
  95. package/dist/cjs/components/FormContainer/Error.module.css.cjs +12 -0
  96. package/dist/cjs/components/FormContainer/Error.module.css.cjs.map +1 -0
  97. package/dist/cjs/components/FormContainer/FormElementContainer.cjs +8 -6
  98. package/dist/cjs/components/FormContainer/FormElementContainer.cjs.map +1 -1
  99. package/dist/cjs/components/FormContainer/FormElementContainer.css +14 -0
  100. package/dist/cjs/components/FormContainer/FormElementContainer.module.css.cjs +10 -0
  101. package/dist/cjs/components/FormContainer/FormElementContainer.module.css.cjs.map +1 -0
  102. package/dist/cjs/components/FormContainer/FormRoot.cjs +32 -18
  103. package/dist/cjs/components/FormContainer/FormRoot.cjs.map +1 -1
  104. package/dist/cjs/components/FormContainer/FormRoot.css +33 -0
  105. package/dist/cjs/components/FormContainer/FormRoot.module.css.cjs +15 -0
  106. package/dist/cjs/components/FormContainer/FormRoot.module.css.cjs.map +1 -0
  107. package/dist/cjs/components/Grid/Cell.cjs +1 -3
  108. package/dist/cjs/components/Grid/Cell.cjs.map +1 -1
  109. package/dist/cjs/components/Grid/ColumnResizer.cjs +18 -15
  110. package/dist/cjs/components/Grid/ColumnResizer.cjs.map +1 -1
  111. package/dist/cjs/components/Grid/ColumnResizer.css +22 -0
  112. package/dist/cjs/components/Grid/ColumnResizer.module.css.cjs +11 -0
  113. package/dist/cjs/components/Grid/ColumnResizer.module.css.cjs.map +1 -0
  114. package/dist/cjs/components/Grid/Grid.css +34 -0
  115. package/dist/cjs/components/Grid/Grid.module.css.cjs +21 -0
  116. package/dist/cjs/components/Grid/Grid.module.css.cjs.map +1 -0
  117. package/dist/cjs/components/Grid/Header.cjs +22 -43
  118. package/dist/cjs/components/Grid/Header.cjs.map +1 -1
  119. package/dist/cjs/components/Grid/Header.css +44 -0
  120. package/dist/cjs/components/Grid/Header.module.css.cjs +19 -0
  121. package/dist/cjs/components/Grid/Header.module.css.cjs.map +1 -0
  122. package/dist/cjs/components/Grid/RowNumberColumn.cjs +12 -29
  123. package/dist/cjs/components/Grid/RowNumberColumn.cjs.map +1 -1
  124. package/dist/cjs/components/Grid/RowNumberColumn.css +22 -0
  125. package/dist/cjs/components/Grid/RowNumberColumn.module.css.cjs +12 -0
  126. package/dist/cjs/components/Grid/RowNumberColumn.module.css.cjs.map +1 -0
  127. package/dist/cjs/components/Grid/StyledCell.cjs +84 -56
  128. package/dist/cjs/components/Grid/StyledCell.cjs.map +1 -1
  129. package/dist/cjs/components/Grid/StyledCell.css +146 -0
  130. package/dist/cjs/components/Grid/StyledCell.module.css.cjs +47 -0
  131. package/dist/cjs/components/Grid/StyledCell.module.css.cjs.map +1 -0
  132. package/dist/cjs/components/Grid/index.cjs +30 -30
  133. package/dist/cjs/components/Grid/index.cjs.map +1 -1
  134. package/dist/cjs/components/GridCenter/GridCenter.css +6 -0
  135. package/dist/cjs/components/GridContainer/GridContainer.css +71 -0
  136. package/dist/cjs/components/GridContainer/GridContainer.module.css.cjs +12 -0
  137. package/dist/cjs/components/GridContainer/GridContainer.module.css.cjs.map +1 -0
  138. package/dist/cjs/components/GridContainer/index.cjs +64 -64
  139. package/dist/cjs/components/GridContainer/index.cjs.map +1 -1
  140. package/dist/cjs/components/MiddleTruncator/MiddleTruncator.css +22 -0
  141. package/dist/cjs/components/MiddleTruncator/MiddleTruncator.module.css.cjs +18 -0
  142. package/dist/cjs/components/MiddleTruncator/MiddleTruncator.module.css.cjs.map +1 -0
  143. package/dist/cjs/components/MiddleTruncator/index.cjs +5 -17
  144. package/dist/cjs/components/MiddleTruncator/index.cjs.map +1 -1
  145. package/dist/cjs/components/Pagination/Pagination.css +7 -0
  146. package/dist/cjs/components/Pagination/Pagination.module.css.cjs +10 -0
  147. package/dist/cjs/components/Pagination/Pagination.module.css.cjs.map +1 -0
  148. package/dist/cjs/components/Pagination/index.cjs +3 -5
  149. package/dist/cjs/components/Pagination/index.cjs.map +1 -1
  150. package/dist/cjs/components/Panel/Panel.css +116 -0
  151. package/dist/cjs/components/Panel/Panel.module.css.cjs +87 -0
  152. package/dist/cjs/components/Panel/Panel.module.css.cjs.map +1 -0
  153. package/dist/cjs/components/Panel/index.cjs +85 -35
  154. package/dist/cjs/components/Panel/index.cjs.map +1 -1
  155. package/dist/cjs/components/Popover/Popover.css +20 -0
  156. package/dist/cjs/components/Popover/Popover.module.css.cjs +5 -1
  157. package/dist/cjs/components/Popover/Popover.module.css.cjs.map +1 -1
  158. package/dist/cjs/components/Popover/index.cjs +2 -18
  159. package/dist/cjs/components/Popover/index.cjs.map +1 -1
  160. package/dist/cjs/components/Select/MultiSelectValue.cjs +4 -9
  161. package/dist/cjs/components/Select/MultiSelectValue.cjs.map +1 -1
  162. package/dist/cjs/components/Select/MultiSelectValue.css +19 -0
  163. package/dist/cjs/components/Select/MultiSelectValue.module.css.cjs +11 -0
  164. package/dist/cjs/components/Select/MultiSelectValue.module.css.cjs.map +1 -0
  165. package/dist/cjs/components/Select/SingleSelectValue.cjs +3 -5
  166. package/dist/cjs/components/Select/SingleSelectValue.cjs.map +1 -1
  167. package/dist/cjs/components/Select/SingleSelectValue.css +10 -0
  168. package/dist/cjs/components/Select/SingleSelectValue.module.css.cjs +10 -0
  169. package/dist/cjs/components/Select/SingleSelectValue.module.css.cjs.map +1 -0
  170. package/dist/cjs/components/Select/common/InternalSelect.cjs +18 -23
  171. package/dist/cjs/components/Select/common/InternalSelect.cjs.map +1 -1
  172. package/dist/cjs/components/Select/common/SelectComponents.cjs +110 -0
  173. package/dist/cjs/components/Select/common/SelectComponents.cjs.map +1 -0
  174. package/dist/cjs/components/Select/common/SelectComponents.css +296 -0
  175. package/dist/cjs/components/Select/common/SelectComponents.module.css.cjs +31 -0
  176. package/dist/cjs/components/Select/common/SelectComponents.module.css.cjs.map +1 -0
  177. package/dist/cjs/components/SplitButton/SplitButton.css +138 -0
  178. package/dist/cjs/components/SplitButton/SplitButton.module.css.cjs +19 -0
  179. package/dist/cjs/components/SplitButton/SplitButton.module.css.cjs.map +1 -0
  180. package/dist/cjs/components/SplitButton/index.cjs +42 -88
  181. package/dist/cjs/components/SplitButton/index.cjs.map +1 -1
  182. package/dist/cjs/components/Table/Table.css +0 -1
  183. package/dist/esm/click-ui.css +1953 -119
  184. package/dist/esm/components/Assets/Icons/Horizontal-Loading.js +13 -49
  185. package/dist/esm/components/Assets/Icons/Horizontal-Loading.js.map +1 -1
  186. package/dist/esm/components/Assets/Icons/Loaders.css +94 -0
  187. package/dist/esm/components/Assets/Icons/Loaders.module.css.js +8 -0
  188. package/dist/esm/components/Assets/Icons/Loaders.module.css.js.map +1 -0
  189. package/dist/esm/components/Assets/Icons/Loading-Animated.js +9 -13
  190. package/dist/esm/components/Assets/Icons/Loading-Animated.js.map +1 -1
  191. package/dist/esm/components/Assets/Icons/Loading.js +13 -6
  192. package/dist/esm/components/Assets/Icons/Loading.js.map +1 -1
  193. package/dist/esm/components/Assets/Icons/system/IconsLight.js +2 -2
  194. package/dist/esm/components/Assets/Icons/system/IconsLight.js.map +1 -1
  195. package/dist/esm/components/AutoComplete/AutoComplete.css +97 -0
  196. package/dist/esm/components/AutoComplete/AutoComplete.module.css.js +14 -0
  197. package/dist/esm/components/AutoComplete/AutoComplete.module.css.js.map +1 -0
  198. package/dist/esm/components/AutoComplete/index.js +15 -75
  199. package/dist/esm/components/AutoComplete/index.js.map +1 -1
  200. package/dist/esm/components/Button/BaseButton.css +40 -0
  201. package/dist/esm/components/Button/BaseButton.js +11 -32
  202. package/dist/esm/components/Button/BaseButton.js.map +1 -1
  203. package/dist/esm/components/Button/BaseButton.module.css.js +6 -0
  204. package/dist/esm/components/Button/BaseButton.module.css.js.map +1 -0
  205. package/dist/esm/components/CardPromotion/CardPromotion.css +52 -0
  206. package/dist/esm/components/CardPromotion/CardPromotion.module.css.js +13 -0
  207. package/dist/esm/components/CardPromotion/CardPromotion.module.css.js.map +1 -0
  208. package/dist/esm/components/CardPromotion/index.js +8 -54
  209. package/dist/esm/components/CardPromotion/index.js.map +1 -1
  210. package/dist/esm/components/CodeBlock/CodeBlock.css +48 -0
  211. package/dist/esm/components/CodeBlock/CodeBlock.module.css.js +14 -0
  212. package/dist/esm/components/CodeBlock/CodeBlock.module.css.js.map +1 -0
  213. package/dist/esm/components/CodeBlock/InlineCodeBlock.css +10 -0
  214. package/dist/esm/components/CodeBlock/InlineCodeBlock.js +7 -14
  215. package/dist/esm/components/CodeBlock/InlineCodeBlock.js.map +1 -1
  216. package/dist/esm/components/CodeBlock/InlineCodeBlock.module.css.js +7 -0
  217. package/dist/esm/components/CodeBlock/InlineCodeBlock.module.css.js.map +1 -0
  218. package/dist/esm/components/CodeBlock/index.js +20 -51
  219. package/dist/esm/components/CodeBlock/index.js.map +1 -1
  220. package/dist/esm/components/CodeBlock/useColorStyle.js +14 -1
  221. package/dist/esm/components/CodeBlock/useColorStyle.js.map +1 -1
  222. package/dist/esm/components/ContextMenu/ContextMenu.css +12 -0
  223. package/dist/esm/components/ContextMenu/ContextMenu.module.css.js +7 -2
  224. package/dist/esm/components/ContextMenu/ContextMenu.module.css.js.map +1 -1
  225. package/dist/esm/components/ContextMenu/index.js +8 -20
  226. package/dist/esm/components/ContextMenu/index.js.map +1 -1
  227. package/dist/esm/components/CrossButton/CrossButton.css +12 -0
  228. package/dist/esm/components/CrossButton/CrossButton.module.css.js +6 -0
  229. package/dist/esm/components/CrossButton/CrossButton.module.css.js.map +1 -0
  230. package/dist/esm/components/CrossButton/index.js +11 -18
  231. package/dist/esm/components/CrossButton/index.js.map +1 -1
  232. package/dist/esm/components/DatePicker/DateRangePicker.js +14 -4
  233. package/dist/esm/components/DatePicker/DateRangePicker.js.map +1 -1
  234. package/dist/esm/components/DatePicker/DateTimeRangePicker.js +1 -1
  235. package/dist/esm/components/DatePicker/DateTimeRangePicker.js.map +1 -1
  236. package/dist/esm/components/DatePicker/index.js +2 -4
  237. package/dist/esm/components/DatePicker/index.js.map +1 -1
  238. package/dist/esm/components/DatePicker/utils.js +3 -1
  239. package/dist/esm/components/DatePicker/utils.js.map +1 -1
  240. package/dist/esm/components/Dropdown/Dropdown.css +23 -0
  241. package/dist/esm/components/Dropdown/Dropdown.module.css.js +3 -1
  242. package/dist/esm/components/Dropdown/Dropdown.module.css.js.map +1 -1
  243. package/dist/esm/components/Dropdown/index.js +12 -23
  244. package/dist/esm/components/Dropdown/index.js.map +1 -1
  245. package/dist/esm/components/EllipsisContent/EllipsisContent.css +21 -0
  246. package/dist/esm/components/EllipsisContent/EllipsisContent.module.css.js +6 -0
  247. package/dist/esm/components/EllipsisContent/EllipsisContent.module.css.js.map +1 -0
  248. package/dist/esm/components/EllipsisContent/index.js +7 -6
  249. package/dist/esm/components/EllipsisContent/index.js.map +1 -1
  250. package/dist/esm/components/EmptyButton/EmptyButton.css +21 -0
  251. package/dist/esm/components/EmptyButton/EmptyButton.module.css.js +6 -0
  252. package/dist/esm/components/EmptyButton/EmptyButton.module.css.js.map +1 -0
  253. package/dist/esm/components/EmptyButton/index.js +10 -4
  254. package/dist/esm/components/EmptyButton/index.js.map +1 -1
  255. package/dist/esm/components/FileTabs/FileTabs.css +167 -0
  256. package/dist/esm/components/FileTabs/FileTabs.module.css.js +26 -0
  257. package/dist/esm/components/FileTabs/FileTabs.module.css.js.map +1 -0
  258. package/dist/esm/components/FileTabs/index.js +51 -80
  259. package/dist/esm/components/FileTabs/index.js.map +1 -1
  260. package/dist/esm/components/FileUpload/FileMultiUpload.css +8 -0
  261. package/dist/esm/components/FileUpload/FileMultiUpload.js +3 -9
  262. package/dist/esm/components/FileUpload/FileMultiUpload.js.map +1 -1
  263. package/dist/esm/components/FileUpload/FileMultiUpload.module.css.js +6 -0
  264. package/dist/esm/components/FileUpload/FileMultiUpload.module.css.js.map +1 -0
  265. package/dist/esm/components/FileUpload/FileUpload.stories-common.css +14 -0
  266. package/dist/esm/components/FileUpload/FileUploadArea.css +130 -0
  267. package/dist/esm/components/FileUpload/FileUploadArea.js +87 -64
  268. package/dist/esm/components/FileUpload/FileUploadArea.js.map +1 -1
  269. package/dist/esm/components/FileUpload/FileUploadArea.module.css.js +32 -0
  270. package/dist/esm/components/FileUpload/FileUploadArea.module.css.js.map +1 -0
  271. package/dist/esm/components/FileUpload/FileUploadItem.css +82 -0
  272. package/dist/esm/components/FileUpload/FileUploadItem.js +56 -64
  273. package/dist/esm/components/FileUpload/FileUploadItem.js.map +1 -1
  274. package/dist/esm/components/FileUpload/FileUploadItem.module.css.js +21 -0
  275. package/dist/esm/components/FileUpload/FileUploadItem.module.css.js.map +1 -0
  276. package/dist/esm/components/FormContainer/Error.css +4 -0
  277. package/dist/esm/components/FormContainer/Error.js +8 -9
  278. package/dist/esm/components/FormContainer/Error.js.map +1 -1
  279. package/dist/esm/components/FormContainer/Error.module.css.js +7 -0
  280. package/dist/esm/components/FormContainer/Error.module.css.js.map +1 -0
  281. package/dist/esm/components/FormContainer/FormElementContainer.css +14 -0
  282. package/dist/esm/components/FormContainer/FormElementContainer.js +8 -6
  283. package/dist/esm/components/FormContainer/FormElementContainer.js.map +1 -1
  284. package/dist/esm/components/FormContainer/FormElementContainer.module.css.js +6 -0
  285. package/dist/esm/components/FormContainer/FormElementContainer.module.css.js.map +1 -0
  286. package/dist/esm/components/FormContainer/FormRoot.css +33 -0
  287. package/dist/esm/components/FormContainer/FormRoot.js +32 -18
  288. package/dist/esm/components/FormContainer/FormRoot.js.map +1 -1
  289. package/dist/esm/components/FormContainer/FormRoot.module.css.js +11 -0
  290. package/dist/esm/components/FormContainer/FormRoot.module.css.js.map +1 -0
  291. package/dist/esm/components/Grid/Cell.js +1 -3
  292. package/dist/esm/components/Grid/Cell.js.map +1 -1
  293. package/dist/esm/components/Grid/ColumnResizer.css +22 -0
  294. package/dist/esm/components/Grid/ColumnResizer.js +18 -15
  295. package/dist/esm/components/Grid/ColumnResizer.js.map +1 -1
  296. package/dist/esm/components/Grid/ColumnResizer.module.css.js +7 -0
  297. package/dist/esm/components/Grid/ColumnResizer.module.css.js.map +1 -0
  298. package/dist/esm/components/Grid/Grid.css +34 -0
  299. package/dist/esm/components/Grid/Grid.module.css.js +13 -0
  300. package/dist/esm/components/Grid/Grid.module.css.js.map +1 -0
  301. package/dist/esm/components/Grid/Header.css +44 -0
  302. package/dist/esm/components/Grid/Header.js +22 -43
  303. package/dist/esm/components/Grid/Header.js.map +1 -1
  304. package/dist/esm/components/Grid/Header.module.css.js +13 -0
  305. package/dist/esm/components/Grid/Header.module.css.js.map +1 -0
  306. package/dist/esm/components/Grid/RowNumberColumn.css +22 -0
  307. package/dist/esm/components/Grid/RowNumberColumn.js +12 -29
  308. package/dist/esm/components/Grid/RowNumberColumn.js.map +1 -1
  309. package/dist/esm/components/Grid/RowNumberColumn.module.css.js +8 -0
  310. package/dist/esm/components/Grid/RowNumberColumn.module.css.js.map +1 -0
  311. package/dist/esm/components/Grid/StyledCell.css +146 -0
  312. package/dist/esm/components/Grid/StyledCell.js +84 -56
  313. package/dist/esm/components/Grid/StyledCell.js.map +1 -1
  314. package/dist/esm/components/Grid/StyledCell.module.css.js +32 -0
  315. package/dist/esm/components/Grid/StyledCell.module.css.js.map +1 -0
  316. package/dist/esm/components/Grid/index.js +30 -30
  317. package/dist/esm/components/Grid/index.js.map +1 -1
  318. package/dist/esm/components/GridCenter/GridCenter.css +6 -0
  319. package/dist/esm/components/GridContainer/GridContainer.css +71 -0
  320. package/dist/esm/components/GridContainer/GridContainer.module.css.js +8 -0
  321. package/dist/esm/components/GridContainer/GridContainer.module.css.js.map +1 -0
  322. package/dist/esm/components/GridContainer/index.js +65 -65
  323. package/dist/esm/components/GridContainer/index.js.map +1 -1
  324. package/dist/esm/components/MiddleTruncator/MiddleTruncator.css +22 -0
  325. package/dist/esm/components/MiddleTruncator/MiddleTruncator.module.css.js +11 -0
  326. package/dist/esm/components/MiddleTruncator/MiddleTruncator.module.css.js.map +1 -0
  327. package/dist/esm/components/MiddleTruncator/index.js +5 -17
  328. package/dist/esm/components/MiddleTruncator/index.js.map +1 -1
  329. package/dist/esm/components/Pagination/Pagination.css +7 -0
  330. package/dist/esm/components/Pagination/Pagination.module.css.js +6 -0
  331. package/dist/esm/components/Pagination/Pagination.module.css.js.map +1 -0
  332. package/dist/esm/components/Pagination/index.js +3 -5
  333. package/dist/esm/components/Pagination/index.js.map +1 -1
  334. package/dist/esm/components/Panel/Panel.css +116 -0
  335. package/dist/esm/components/Panel/Panel.module.css.js +58 -0
  336. package/dist/esm/components/Panel/Panel.module.css.js.map +1 -0
  337. package/dist/esm/components/Panel/index.js +85 -35
  338. package/dist/esm/components/Panel/index.js.map +1 -1
  339. package/dist/esm/components/Popover/Popover.css +20 -0
  340. package/dist/esm/components/Popover/Popover.module.css.js +5 -2
  341. package/dist/esm/components/Popover/Popover.module.css.js.map +1 -1
  342. package/dist/esm/components/Popover/index.js +2 -18
  343. package/dist/esm/components/Popover/index.js.map +1 -1
  344. package/dist/esm/components/Select/MultiSelectValue.css +19 -0
  345. package/dist/esm/components/Select/MultiSelectValue.js +4 -9
  346. package/dist/esm/components/Select/MultiSelectValue.js.map +1 -1
  347. package/dist/esm/components/Select/MultiSelectValue.module.css.js +7 -0
  348. package/dist/esm/components/Select/MultiSelectValue.module.css.js.map +1 -0
  349. package/dist/esm/components/Select/SingleSelectValue.css +10 -0
  350. package/dist/esm/components/Select/SingleSelectValue.js +3 -5
  351. package/dist/esm/components/Select/SingleSelectValue.js.map +1 -1
  352. package/dist/esm/components/Select/SingleSelectValue.module.css.js +6 -0
  353. package/dist/esm/components/Select/SingleSelectValue.module.css.js.map +1 -0
  354. package/dist/esm/components/Select/common/InternalSelect.js +4 -9
  355. package/dist/esm/components/Select/common/InternalSelect.js.map +1 -1
  356. package/dist/esm/components/Select/common/SelectComponents.css +296 -0
  357. package/dist/esm/components/Select/common/SelectComponents.js +92 -0
  358. package/dist/esm/components/Select/common/SelectComponents.js.map +1 -0
  359. package/dist/esm/components/Select/common/SelectComponents.module.css.js +27 -0
  360. package/dist/esm/components/Select/common/SelectComponents.module.css.js.map +1 -0
  361. package/dist/esm/components/SplitButton/SplitButton.css +138 -0
  362. package/dist/esm/components/SplitButton/SplitButton.module.css.js +15 -0
  363. package/dist/esm/components/SplitButton/SplitButton.module.css.js.map +1 -0
  364. package/dist/esm/components/SplitButton/index.js +43 -89
  365. package/dist/esm/components/SplitButton/index.js.map +1 -1
  366. package/dist/esm/components/Table/Table.css +0 -1
  367. package/dist/types/components/Assets/Icons/Horizontal-Loading.d.ts +2 -3
  368. package/dist/types/components/Assets/Icons/Loading-Animated.d.ts +2 -3
  369. package/dist/types/components/Assets/Icons/Loading.d.ts +2 -4
  370. package/dist/types/components/AutoComplete/AutoComplete.d.ts +1 -1
  371. package/dist/types/components/Button/BaseButton.d.ts +2 -1
  372. package/dist/types/components/CardPromotion/CardPromotion.d.ts +1 -1
  373. package/dist/types/components/CodeBlock/CodeBlock.d.ts +1 -1
  374. package/dist/types/components/CodeBlock/InlineCodeBlock.d.ts +1 -1
  375. package/dist/types/components/CodeBlock/useColorStyle.d.ts +6 -112
  376. package/dist/types/components/ContextMenu/ContextMenu.d.ts +1 -1
  377. package/dist/types/components/CrossButton/CrossButton.d.ts +2 -7
  378. package/dist/types/components/DatePicker/DateRangePicker.d.ts +2 -1
  379. package/dist/types/components/DatePicker/utils.d.ts +1 -0
  380. package/dist/types/components/Dropdown/Dropdown.d.ts +2 -2
  381. package/dist/types/components/EmptyButton/EmptyButton.d.ts +2 -1
  382. package/dist/types/components/FileTabs/FileTabs.d.ts +3 -3
  383. package/dist/types/components/FileUpload/FileUpload.stories-common.d.ts +4 -1
  384. package/dist/types/components/FormContainer/Error.d.ts +2 -1
  385. package/dist/types/components/FormContainer/FormElementContainer.d.ts +2 -1
  386. package/dist/types/components/FormContainer/FormRoot.d.ts +6 -4
  387. package/dist/types/components/Grid/RowNumberColumn.d.ts +1 -2
  388. package/dist/types/components/Grid/StyledCell.d.ts +10 -5
  389. package/dist/types/components/GridCenter/GridCenter.d.ts +9 -1
  390. package/dist/types/components/Panel/Panel.d.ts +2 -39
  391. package/dist/types/components/Select/common/SelectComponents.d.ts +33 -0
  392. package/dist/types/components/SplitButton/SplitButton.d.ts +1 -1
  393. package/package.json +1 -1
  394. package/dist/cjs/components/Select/common/SelectStyled.cjs +0 -194
  395. package/dist/cjs/components/Select/common/SelectStyled.cjs.map +0 -1
  396. package/dist/esm/components/Select/common/SelectStyled.js +0 -176
  397. package/dist/esm/components/Select/common/SelectStyled.js.map +0 -1
  398. package/dist/types/components/Select/common/SelectStyled.d.ts +0 -34
@@ -1,13 +1,16 @@
1
+ require("./FileTabs.css");
1
2
  'use strict';
2
3
 
3
4
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
5
 
5
6
  const jsxRuntime = require('react/jsx-runtime');
6
7
  const react = require('react');
7
- const styledComponents = require('styled-components');
8
+ const cva = require('../../lib/cva.cjs');
9
+ const FileTabs_module = require('./FileTabs.module.css.cjs');
8
10
  const ReactSortableModule = require('react-sortablejs/dist/index.js');
9
11
  const Icon = require('../Icon/index.cjs');
10
12
  const IconButton = require('../IconButton/index.cjs');
13
+ const classVarianceAuthority = require('class-variance-authority');
11
14
 
12
15
  const _interopDefault = e => e && e.__esModule ? e : { default: e };
13
16
 
@@ -16,14 +19,6 @@ const ReactSortableModule__default = /*#__PURE__*/_interopDefault(ReactSortableM
16
19
  const {
17
20
  ReactSortable
18
21
  } = ReactSortableModule__default.default;
19
- const TabsContainer = styledComponents.styled.div.withConfig({
20
- componentId: "sc-137ymle-0"
21
- })(["display:flex;position:relative;overflow:auto;overscroll-behavior:none;scrollbar-width:0;max-width:", ";&::-webkit-scrollbar{height:0;}"], ({
22
- $count
23
- }) => `${$count * 200}px`);
24
- const TabsSortableContainer = styledComponents.styled(ReactSortable).withConfig({
25
- componentId: "sc-137ymle-1"
26
- })(["display:flex;& > div{height:100%;outline:none;min-width:100px;width:clamp(100px,100%,200px);&.sortable-ghost{opacity:0;}}"]);
27
22
  const TabContext = react.createContext({
28
23
  selectedIndex: void 0,
29
24
  onClose: () => null
@@ -46,6 +41,7 @@ const FileTabs = ({
46
41
  onEnd,
47
42
  direction,
48
43
  group,
44
+ className,
49
45
  ...props
50
46
  }) => {
51
47
  const ref = react.useRef(null);
@@ -76,10 +72,12 @@ const FileTabs = ({
76
72
  ref.current.scrollLeft += evt.deltaY;
77
73
  }
78
74
  };
79
- return /* @__PURE__ */ jsxRuntime.jsx(TabContext.Provider, { value, children: /* @__PURE__ */ jsxRuntime.jsx(TabsContainer, { ref, onWheel, role: "tablist", onScroll: (e) => {
75
+ return /* @__PURE__ */ jsxRuntime.jsx(TabContext.Provider, { value, children: /* @__PURE__ */ jsxRuntime.jsx("div", { ref, onWheel, role: "tablist", onScroll: (e) => {
80
76
  e.preventDefault();
81
77
  e.stopPropagation();
82
- }, $count: (listProp ?? list).length, children: /* @__PURE__ */ jsxRuntime.jsx(TabsSortableContainer, { direction: direction ?? "horizontal", group: group ?? "tabbar", list: listProp ?? list, setList: setListProp ?? setList, onEnd: (evt, sortable, store) => {
78
+ }, className: FileTabs_module.default.tabs, style: {
79
+ "--file-tabs-count-width": `${(listProp ?? list).length * 200}px`
80
+ }, children: /* @__PURE__ */ jsxRuntime.jsx(ReactSortable, { direction: direction ?? "horizontal", group: group ?? "tabbar", list: listProp ?? list, setList: setListProp ?? setList, onEnd: (evt, sortable, store) => {
83
81
  const {
84
82
  newDraggableIndex,
85
83
  oldDraggableIndex
@@ -90,70 +88,33 @@ const FileTabs = ({
90
88
  if (typeof onEnd === "function") {
91
89
  onEnd(evt, sortable, store);
92
90
  }
93
- }, revertOnSpill: true, ...props, children: react.Children.map(children, (child, index) => /* @__PURE__ */ jsxRuntime.jsx("div", { tabIndex: index + 1, role: "tab", onClick: onSelect(index), children: child }, `tab-element-${index}`)) }) }) });
91
+ }, revertOnSpill: true, ...props, className: cva.cn(FileTabs_module.default["tabs-sortable"], className), children: react.Children.map(children, (child, index) => /* @__PURE__ */ jsxRuntime.jsx("div", { tabIndex: index + 1, role: "tab", onClick: onSelect(index), children: child }, `tab-element-${index}`)) }) }) });
94
92
  };
95
- const TabElement = styledComponents.styled.div.withConfig({
96
- componentId: "sc-137ymle-2"
97
- })(["display:grid;justify-content:flex-start;align-items:center;outline:none;max-width:100%;max-width:-webkit-fill-available;max-width:fill-available;max-width:stretch;border:none;cursor:pointer;height:100%;max-height:100%;box-sizing:border-box;", ` [data-type="close"]{display:none;}[data-indicator]{display:block;}&:hover{[data-type='close']{display:block;}[data-indicator]{display:none;}}`], ({
98
- theme,
99
- $active,
100
- $preview,
101
- $dismissable,
102
- $fixedTabElement
103
- }) => `
104
- width:${$fixedTabElement ? "auto" : "100%"};
105
- grid-template-columns: 1fr ${$dismissable ? theme.click.tabs.fileTabs.icon.size.width : ""};
106
- padding: ${theme.click.tabs.fileTabs.space.y} ${theme.click.tabs.fileTabs.space.x};
107
- gap: ${theme.click.tabs.fileTabs.space.gap};
108
- border-radius: ${theme.click.tabs.fileTabs.radii.all};
109
- border-right: 1px solid ${theme.click.tabs.fileTabs.color.stroke.default};
110
- background: ${theme.click.tabs.fileTabs.color.background.default};
111
- color: ${theme.click.tabs.fileTabs.color.text.default};
112
- font: ${theme.click.tabs.fileTabs.typography.label.default};
113
- svg,
114
- [data-indicator] {
115
- height: ${theme.click.tabs.fileTabs.icon.size.height};
116
- width: ${theme.click.tabs.fileTabs.icon.size.width};
93
+ const tabVariants = classVarianceAuthority.cva(FileTabs_module.default.tab, {
94
+ variants: {
95
+ active: {
96
+ true: FileTabs_module.default.tab_active,
97
+ false: FileTabs_module.default.tab_inactive
98
+ },
99
+ fixed: {
100
+ true: FileTabs_module.default.tab_fixed,
101
+ false: FileTabs_module.default["tab_full-width"]
102
+ },
103
+ preview: {
104
+ true: FileTabs_module.default.tab_preview,
105
+ false: ""
106
+ },
107
+ dismissable: {
108
+ true: FileTabs_module.default.tab_dismissable,
109
+ false: ""
117
110
  }
118
- ${$active ? `
119
- background: ${theme.click.tabs.fileTabs.color.background.active};
120
- color: ${theme.click.tabs.fileTabs.color.text.active};
121
- font: ${theme.click.tabs.fileTabs.typography.label.active};
122
- border-right: 1px solid ${theme.click.tabs.fileTabs.color.stroke.active};
123
- ` : `
124
- &:hover {
125
- background: ${theme.click.tabs.fileTabs.color.background.hover};
126
- color: ${theme.click.tabs.fileTabs.color.text.hover};
127
- font: ${theme.click.tabs.fileTabs.typography.label.hover};
128
- border-right: 1px solid ${theme.click.tabs.fileTabs.color.stroke.hover};
129
- }
130
- `}
131
- ${$preview === true ? "font-style: italic;" : ""}
132
- `);
133
- const Indicator = styledComponents.styled.div.withConfig({
134
- componentId: "sc-137ymle-3"
135
- })(["position:relative;&::after{position:absolute;left:0.25rem;top:0.25rem;content:'';width:0.5rem;height:0.5rem;", "}"], ({
136
- theme,
137
- $status
138
- }) => `
139
- background: ${$status === "default" ? "transparent" : theme.click.alert.color.text[$status]};
140
- border-radius: 50%;
141
- `);
142
- const TabContent = styledComponents.styled.div.withConfig({
143
- componentId: "sc-137ymle-4"
144
- })(["display:flex;justify-content:flex-start;align-items:center;flex-wrap:nowrap;overflow:hidden;gap:", ";"], ({
145
- theme
146
- }) => theme.click.tabs.fileTabs.space.gap);
147
- const TabContentText = styledComponents.styled.span.withConfig({
148
- componentId: "sc-137ymle-5"
149
- })(["display:inline-block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;"]);
150
- const EmptyButton = styledComponents.styled.button.withConfig({
151
- componentId: "sc-137ymle-6"
152
- })(["padding:0;", ";&:hover{background:", ";}"], ({
153
- theme
154
- }) => theme.click.tabs.fileTabs.color.closeButton.background.default, ({
155
- theme
156
- }) => theme.click.tabs.fileTabs.color.closeButton.background.hover);
111
+ },
112
+ defaultVariants: {
113
+ fixed: false,
114
+ preview: false,
115
+ dismissable: false
116
+ }
117
+ });
157
118
  const Tab = ({
158
119
  text,
159
120
  index,
@@ -162,6 +123,7 @@ const Tab = ({
162
123
  status = "default",
163
124
  testId,
164
125
  preview,
126
+ className,
165
127
  ...props
166
128
  }) => {
167
129
  const {
@@ -183,13 +145,17 @@ const Tab = ({
183
145
  e.stopPropagation();
184
146
  onCloseProp(index);
185
147
  };
186
- return /* @__PURE__ */ jsxRuntime.jsxs(TabElement, { $active: selectedIndex === index, onMouseDown, "data-testid": testId ? `${testId}-${index}` : void 0, $preview: preview, $dismissable: true, ...props, children: [
187
- /* @__PURE__ */ jsxRuntime.jsxs(TabContent, { children: [
148
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { onMouseDown, "data-testid": testId ? `${testId}-${index}` : void 0, ...props, className: cva.cn(tabVariants({
149
+ active: selectedIndex === index,
150
+ preview,
151
+ dismissable: true
152
+ }), className), children: [
153
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: FileTabs_module.default["tab-content"], children: [
188
154
  typeof icon === "string" ? /* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { name: icon }) : icon,
189
- /* @__PURE__ */ jsxRuntime.jsx(TabContentText, { children: text })
155
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: FileTabs_module.default["tab-content-text"], children: text })
190
156
  ] }),
191
- /* @__PURE__ */ jsxRuntime.jsx(EmptyButton, { as: IconButton.IconButton, htmlType: "button", icon: "cross", onClick: onClose, "data-type": "close", "data-testid": testId ? `${testId}-${index}-close` : void 0 }),
192
- /* @__PURE__ */ jsxRuntime.jsx(Indicator, { $status: status, "data-indicator": status, "data-testid": testId ? `${testId}-${index}-status` : void 0 })
157
+ /* @__PURE__ */ jsxRuntime.jsx(IconButton.IconButton, { className: FileTabs_module.default["empty-button"], htmlType: "button", icon: "cross", onClick: onClose, "data-type": "close", "data-testid": testId ? `${testId}-${index}-close` : void 0 }),
158
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: FileTabs_module.default.indicator, "data-indicator": status, "data-testid": testId ? `${testId}-${index}-status` : void 0 })
193
159
  ] });
194
160
  };
195
161
  Tab.displayName = "FileTab";
@@ -199,11 +165,16 @@ const FileTabElement = ({
199
165
  children,
200
166
  active = false,
201
167
  preview,
168
+ className,
202
169
  ...props
203
170
  }) => {
204
- return /* @__PURE__ */ jsxRuntime.jsxs(TabElement, { $active: active, $preview: preview, $dismissable: false, $fixedTabElement: true, ...props, children: [
171
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { ...props, className: cva.cn(tabVariants({
172
+ active,
173
+ preview,
174
+ fixed: true
175
+ }), className), children: [
205
176
  typeof icon === "string" ? /* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { name: icon }) : icon,
206
- children && /* @__PURE__ */ jsxRuntime.jsx(TabContentText, { children })
177
+ children && /* @__PURE__ */ jsxRuntime.jsx("span", { className: FileTabs_module.default["tab-content-text"], children })
207
178
  ] });
208
179
  };
209
180
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../../src/components/FileTabs/FileTabs.tsx"],"sourcesContent":["import {\n HTMLAttributes,\n createContext,\n useContext,\n ReactElement,\n Children,\n useState,\n MouseEvent,\n useEffect,\n ReactNode,\n WheelEvent,\n useRef,\n} from 'react';\nimport { styled } from 'styled-components';\nimport { Icon } from '@/components/Icon';\nimport { IconButton } from '@/components/IconButton';\nimport type { IconName } from '@/components/Icon/Icon.types';\n\n// TODO: Check if react-sortablejs has ESM version\nimport ReactSortableModule from 'react-sortablejs/dist/index.js';\nimport type {\n ItemInterface,\n Sortable,\n Store,\n ReactSortableProps,\n} from 'react-sortablejs';\nconst { ReactSortable } = ReactSortableModule;\n\nexport type FileTabStatusType =\n | 'default'\n | 'success'\n | 'neutral'\n | 'danger'\n | 'warning'\n | 'info';\n\nconst TabsContainer = styled.div<{ $count: number }>`\n display: flex;\n position: relative;\n overflow: auto;\n overscroll-behavior: none;\n scrollbar-width: 0;\n max-width: ${({ $count }) => `${$count * 200}px`};\n &::-webkit-scrollbar {\n height: 0;\n }\n`;\n\nconst TabsSortableContainer = styled(ReactSortable)`\n display: flex;\n & > div {\n height: 100%;\n outline: none;\n min-width: 100px;\n width: clamp(100px, 100%, 200px);\n &.sortable-ghost {\n opacity: 0;\n }\n }\n`;\n\ninterface ContextProps {\n selectedIndex?: number;\n onClose: (index: number) => void;\n}\n\nexport const TabContext = createContext<ContextProps>({\n selectedIndex: undefined,\n onClose: () => null,\n});\n\nexport interface FileTabProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {\n /** Callback when the tab is closed */\n onClose?: () => void;\n /** Index of the tab in the list */\n index: number;\n /** Status indicator for the tab */\n status?: FileTabStatusType;\n /** Icon to display in the tab */\n icon?: IconName | ReactNode;\n /** Text to display in the tab */\n text: string;\n /** Test ID for testing */\n testId?: string;\n /** Whether the tab is in preview mode (italic text) */\n preview?: boolean;\n}\nexport interface FileTabsProps extends Omit<\n ReactSortableProps<ItemInterface>,\n 'onSelect' | 'list' | 'setList'\n> {\n /** Index of the currently selected tab */\n selectedIndex?: number;\n /** The tab elements to render */\n children: ReactElement<FileTabProps> | ReactElement<FileTabProps>[];\n /** Callback when a tab is reordered via drag and drop */\n onReorderTab: (sourcePosition: number, destinationPosition: number) => void;\n /** Callback when a tab is closed */\n onClose: (index: number) => void;\n /** Callback when a tab is selected */\n onSelect: (index: number) => void;\n /** List of items for sortable functionality */\n list?: ItemInterface[];\n /** Setter for the sortable list */\n setList?: (newState: ItemInterface[], sortable: Sortable | null, store: Store) => void;\n}\n\nconst useSelect = () => {\n const result = useContext(TabContext);\n if (!result) {\n throw new Error('Context used outside of its Provider!');\n }\n return result;\n};\n\nexport const FileTabs = ({\n selectedIndex,\n children,\n onReorderTab,\n onClose: onCloseProp,\n onSelect: onSelectProp,\n list: listProp,\n setList: setListProp,\n onEnd,\n direction,\n group,\n ...props\n}: FileTabsProps) => {\n const ref = useRef<HTMLDivElement>(null);\n const [list, setList] = useState<ItemInterface[]>(\n Children.map(children, (_, index) => ({\n id: `tab-element-${index}`,\n }))\n );\n useEffect(() => {\n setList(\n Children.map(children, (_, index) => ({\n id: `tab-element-${index}`,\n }))\n );\n }, [children]);\n\n const onClose = (index: number) => {\n onCloseProp(index);\n setList(list => {\n list.splice(index, 1);\n return [...list];\n });\n };\n\n const onSelect = (index: number) => () => {\n onSelectProp(index);\n };\n\n const value = {\n selectedIndex,\n onClose,\n };\n\n const onWheel = (evt: WheelEvent<HTMLDivElement>) => {\n if (ref.current) {\n ref.current.scrollLeft += evt.deltaY;\n }\n };\n return (\n <TabContext.Provider value={value}>\n <TabsContainer\n ref={ref}\n onWheel={onWheel}\n role=\"tablist\"\n onScroll={e => {\n e.preventDefault();\n e.stopPropagation();\n }}\n $count={(listProp ?? list).length}\n >\n <TabsSortableContainer\n direction={direction ?? 'horizontal'}\n group={group ?? 'tabbar'}\n list={listProp ?? list}\n setList={setListProp ?? setList}\n onEnd={(evt, sortable, store) => {\n const { newDraggableIndex, oldDraggableIndex } = evt;\n if (\n typeof newDraggableIndex === 'number' &&\n typeof oldDraggableIndex === 'number' &&\n oldDraggableIndex !== newDraggableIndex\n ) {\n onReorderTab(oldDraggableIndex, newDraggableIndex);\n }\n if (typeof onEnd === 'function') {\n onEnd(evt, sortable, store);\n }\n }}\n revertOnSpill\n {...props}\n >\n {Children.map(children, (child, index) => (\n <div\n tabIndex={index + 1}\n role=\"tab\"\n onClick={onSelect(index)}\n key={`tab-element-${index}`}\n >\n {child}\n </div>\n ))}\n </TabsSortableContainer>\n </TabsContainer>\n </TabContext.Provider>\n );\n};\n\nconst TabElement = styled.div<{\n $active: boolean;\n $preview?: boolean;\n $dismissable: boolean;\n $fixedTabElement?: boolean;\n}>`\n display: grid;\n justify-content: flex-start;\n align-items: center;\n outline: none;\n max-width: 100%;\n max-width: -webkit-fill-available;\n max-width: fill-available;\n max-width: stretch;\n border: none;\n cursor: pointer;\n height: 100%;\n max-height: 100%;\n box-sizing: border-box;\n ${({ theme, $active, $preview, $dismissable, $fixedTabElement }) => `\n width:${$fixedTabElement ? 'auto' : '100%'};\n grid-template-columns: 1fr ${\n $dismissable ? theme.click.tabs.fileTabs.icon.size.width : ''\n };\n padding: ${theme.click.tabs.fileTabs.space.y} ${theme.click.tabs.fileTabs.space.x};\n gap: ${theme.click.tabs.fileTabs.space.gap};\n border-radius: ${theme.click.tabs.fileTabs.radii.all};\n border-right: 1px solid ${theme.click.tabs.fileTabs.color.stroke.default};\n background: ${theme.click.tabs.fileTabs.color.background.default};\n color: ${theme.click.tabs.fileTabs.color.text.default};\n font: ${theme.click.tabs.fileTabs.typography.label.default};\n svg,\n [data-indicator] {\n height: ${theme.click.tabs.fileTabs.icon.size.height};\n width: ${theme.click.tabs.fileTabs.icon.size.width};\n }\n ${\n $active\n ? `\n background: ${theme.click.tabs.fileTabs.color.background.active};\n color: ${theme.click.tabs.fileTabs.color.text.active};\n font: ${theme.click.tabs.fileTabs.typography.label.active};\n border-right: 1px solid ${theme.click.tabs.fileTabs.color.stroke.active};\n `\n : `\n &:hover {\n background: ${theme.click.tabs.fileTabs.color.background.hover};\n color: ${theme.click.tabs.fileTabs.color.text.hover};\n font: ${theme.click.tabs.fileTabs.typography.label.hover};\n border-right: 1px solid ${theme.click.tabs.fileTabs.color.stroke.hover};\n }\n `\n }\n ${$preview === true ? 'font-style: italic;' : ''}\n `}\n [data-type=\"close\"] {\n display: none;\n }\n [data-indicator] {\n display: block;\n }\n &:hover {\n [data-type='close'] {\n display: block;\n }\n [data-indicator] {\n display: none;\n }\n }\n`;\n\nconst Indicator = styled.div<{ $status: FileTabStatusType }>`\n position: relative;\n &::after {\n position: absolute;\n left: 0.25rem;\n top: 0.25rem;\n content: '';\n width: 0.5rem;\n height: 0.5rem;\n ${({ theme, $status }) => `\n background: ${\n $status === 'default' ? 'transparent' : theme.click.alert.color.text[$status]\n };\n border-radius: 50%;\n `}\n }\n`;\n\nconst TabContent = styled.div`\n display: flex;\n justify-content: flex-start;\n align-items: center;\n flex-wrap: nowrap;\n overflow: hidden;\n gap: ${({ theme }) => theme.click.tabs.fileTabs.space.gap};\n`;\n\nconst TabContentText = styled.span`\n display: inline-block;\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n`;\n\nconst EmptyButton = styled.button`\n padding: 0;\n ${({ theme }) => theme.click.tabs.fileTabs.color.closeButton.background.default};\n &:hover {\n background: ${({ theme }) =>\n theme.click.tabs.fileTabs.color.closeButton.background.hover};\n }\n`;\n\nconst Tab = ({\n text,\n index,\n icon,\n onMouseDown: onMouseDownProp,\n status = 'default',\n testId,\n preview,\n ...props\n}: FileTabProps) => {\n const { selectedIndex, onClose: onCloseProp } = useSelect();\n const onMouseDown = (e: MouseEvent<HTMLDivElement>) => {\n e.currentTarget.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n inline: 'center',\n });\n if (typeof onMouseDownProp === 'function') {\n onMouseDownProp(e);\n }\n };\n\n const onClose = (e: MouseEvent<HTMLButtonElement>): void => {\n e.preventDefault();\n e.stopPropagation();\n onCloseProp(index);\n };\n\n return (\n <TabElement\n $active={selectedIndex === index}\n onMouseDown={onMouseDown}\n data-testid={testId ? `${testId}-${index}` : undefined}\n $preview={preview}\n $dismissable\n {...props}\n >\n <TabContent>\n {typeof icon === 'string' ? <Icon name={icon as IconName} /> : icon}\n <TabContentText>{text}</TabContentText>\n </TabContent>\n <EmptyButton\n as={IconButton}\n htmlType=\"button\"\n icon=\"cross\"\n onClick={onClose}\n data-type=\"close\"\n data-testid={testId ? `${testId}-${index}-close` : undefined}\n />\n <Indicator\n $status={status}\n data-indicator={status}\n data-testid={testId ? `${testId}-${index}-status` : undefined}\n />\n </TabElement>\n );\n};\n\nTab.displayName = 'FileTab';\n\nFileTabs.Tab = Tab;\n\ninterface FileTabElementProps extends HTMLAttributes<HTMLDivElement> {\n icon?: IconName | ReactNode;\n active?: boolean;\n preview?: boolean;\n}\nexport const FileTabElement = ({\n icon,\n children,\n active = false,\n preview,\n ...props\n}: FileTabElementProps) => {\n return (\n <TabElement\n $active={active}\n $preview={preview}\n $dismissable={false}\n $fixedTabElement\n {...props}\n >\n {typeof icon === 'string' ? <Icon name={icon as IconName} /> : icon}\n {children && <TabContentText>{children}</TabContentText>}\n </TabElement>\n );\n};\n"],"names":["ReactSortable","ReactSortableModule","TabsContainer","styled","div","withConfig","componentId","$count","TabsSortableContainer","TabContext","createContext","selectedIndex","undefined","onClose","useSelect","result","useContext","Error","FileTabs","children","onReorderTab","onCloseProp","onSelect","onSelectProp","list","listProp","setList","setListProp","onEnd","direction","group","props","ref","useRef","useState","Children","map","_","index","id","useEffect","splice","value","onWheel","evt","current","scrollLeft","deltaY","jsx","e","preventDefault","stopPropagation","length","sortable","store","newDraggableIndex","oldDraggableIndex","child","TabElement","theme","$active","$preview","$dismissable","$fixedTabElement","click","tabs","fileTabs","icon","size","width","space","y","x","gap","radii","all","color","stroke","default","background","text","typography","label","height","active","hover","Indicator","$status","alert","TabContent","TabContentText","span","EmptyButton","button","closeButton","Tab","onMouseDown","onMouseDownProp","status","testId","preview","currentTarget","scrollIntoView","behavior","block","inline","jsxs","Icon","IconButton","displayName","FileTabElement"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../../src/components/FileTabs/FileTabs.tsx"],"sourcesContent":["import {\n HTMLAttributes,\n createContext,\n useContext,\n ReactElement,\n Children,\n useState,\n MouseEvent,\n useEffect,\n ReactNode,\n WheelEvent,\n useRef,\n CSSProperties,\n} from 'react';\nimport { cn, cva } from '@/lib/cva';\nimport { Icon } from '@/components/Icon';\nimport { IconButton } from '@/components/IconButton';\nimport type { IconName } from '@/components/Icon/Icon.types';\nimport styles from './FileTabs.module.css';\n\n// TODO: Check if react-sortablejs has ESM version\nimport ReactSortableModule from 'react-sortablejs/dist/index.js';\nimport type {\n ItemInterface,\n Sortable,\n Store,\n ReactSortableProps,\n} from 'react-sortablejs';\nconst { ReactSortable } = ReactSortableModule;\n\nexport type FileTabStatusType =\n | 'default'\n | 'success'\n | 'neutral'\n | 'danger'\n | 'warning'\n | 'info';\n\ninterface ContextProps {\n selectedIndex?: number;\n onClose: (index: number) => void;\n}\n\nexport const TabContext = createContext<ContextProps>({\n selectedIndex: undefined,\n onClose: () => null,\n});\n\nexport interface FileTabProps extends Omit<HTMLAttributes<HTMLDivElement>, 'children'> {\n /** Callback when the tab is closed */\n onClose?: () => void;\n /** Index of the tab in the list */\n index: number;\n /** Status indicator for the tab */\n status?: FileTabStatusType;\n /** Icon to display in the tab */\n icon?: IconName | ReactNode;\n /** Text to display in the tab */\n text: string;\n /** Test ID for testing */\n testId?: string;\n /** Whether the tab is in preview mode (italic text) */\n preview?: boolean;\n}\nexport interface FileTabsProps extends Omit<\n ReactSortableProps<ItemInterface>,\n 'onSelect' | 'list' | 'setList'\n> {\n /** Index of the currently selected tab */\n selectedIndex?: number;\n /** The tab elements to render */\n children: ReactElement<FileTabProps> | ReactElement<FileTabProps>[];\n /** Callback when a tab is reordered via drag and drop */\n onReorderTab: (sourcePosition: number, destinationPosition: number) => void;\n /** Callback when a tab is closed */\n onClose: (index: number) => void;\n /** Callback when a tab is selected */\n onSelect: (index: number) => void;\n /** List of items for sortable functionality */\n list?: ItemInterface[];\n /** Setter for the sortable list */\n setList?: (newState: ItemInterface[], sortable: Sortable | null, store: Store) => void;\n}\n\nconst useSelect = () => {\n const result = useContext(TabContext);\n if (!result) {\n throw new Error('Context used outside of its Provider!');\n }\n return result;\n};\n\nexport const FileTabs = ({\n selectedIndex,\n children,\n onReorderTab,\n onClose: onCloseProp,\n onSelect: onSelectProp,\n list: listProp,\n setList: setListProp,\n onEnd,\n direction,\n group,\n className,\n ...props\n}: FileTabsProps) => {\n const ref = useRef<HTMLDivElement>(null);\n const [list, setList] = useState<ItemInterface[]>(\n Children.map(children, (_, index) => ({\n id: `tab-element-${index}`,\n }))\n );\n useEffect(() => {\n setList(\n Children.map(children, (_, index) => ({\n id: `tab-element-${index}`,\n }))\n );\n }, [children]);\n\n const onClose = (index: number) => {\n onCloseProp(index);\n setList(list => {\n list.splice(index, 1);\n return [...list];\n });\n };\n\n const onSelect = (index: number) => () => {\n onSelectProp(index);\n };\n\n const value = {\n selectedIndex,\n onClose,\n };\n\n const onWheel = (evt: WheelEvent<HTMLDivElement>) => {\n if (ref.current) {\n ref.current.scrollLeft += evt.deltaY;\n }\n };\n return (\n <TabContext.Provider value={value}>\n <div\n ref={ref}\n onWheel={onWheel}\n role=\"tablist\"\n onScroll={e => {\n e.preventDefault();\n e.stopPropagation();\n }}\n className={styles.tabs}\n style={\n {\n '--file-tabs-count-width': `${(listProp ?? list).length * 200}px`,\n } as CSSProperties\n }\n >\n <ReactSortable\n direction={direction ?? 'horizontal'}\n group={group ?? 'tabbar'}\n list={listProp ?? list}\n setList={setListProp ?? setList}\n onEnd={(evt, sortable, store) => {\n const { newDraggableIndex, oldDraggableIndex } = evt;\n if (\n typeof newDraggableIndex === 'number' &&\n typeof oldDraggableIndex === 'number' &&\n oldDraggableIndex !== newDraggableIndex\n ) {\n onReorderTab(oldDraggableIndex, newDraggableIndex);\n }\n if (typeof onEnd === 'function') {\n onEnd(evt, sortable, store);\n }\n }}\n revertOnSpill\n {...props}\n className={cn(styles['tabs-sortable'], className)}\n >\n {Children.map(children, (child, index) => (\n <div\n tabIndex={index + 1}\n role=\"tab\"\n onClick={onSelect(index)}\n key={`tab-element-${index}`}\n >\n {child}\n </div>\n ))}\n </ReactSortable>\n </div>\n </TabContext.Provider>\n );\n};\n\nconst tabVariants = cva(styles.tab, {\n variants: {\n active: {\n true: styles.tab_active,\n false: styles.tab_inactive,\n },\n fixed: {\n true: styles.tab_fixed,\n false: styles['tab_full-width'],\n },\n preview: {\n true: styles.tab_preview,\n false: '',\n },\n dismissable: {\n true: styles.tab_dismissable,\n false: '',\n },\n },\n defaultVariants: {\n fixed: false,\n preview: false,\n dismissable: false,\n },\n});\n\nconst Tab = ({\n text,\n index,\n icon,\n onMouseDown: onMouseDownProp,\n status = 'default',\n testId,\n preview,\n className,\n ...props\n}: FileTabProps) => {\n const { selectedIndex, onClose: onCloseProp } = useSelect();\n const onMouseDown = (e: MouseEvent<HTMLDivElement>) => {\n e.currentTarget.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest',\n inline: 'center',\n });\n if (typeof onMouseDownProp === 'function') {\n onMouseDownProp(e);\n }\n };\n\n const onClose = (e: MouseEvent<HTMLButtonElement>): void => {\n e.preventDefault();\n e.stopPropagation();\n onCloseProp(index);\n };\n\n return (\n <div\n onMouseDown={onMouseDown}\n data-testid={testId ? `${testId}-${index}` : undefined}\n {...props}\n className={cn(\n tabVariants({\n active: selectedIndex === index,\n preview,\n dismissable: true,\n }),\n className\n )}\n >\n <div className={styles['tab-content']}>\n {typeof icon === 'string' ? <Icon name={icon as IconName} /> : icon}\n <span className={styles['tab-content-text']}>{text}</span>\n </div>\n <IconButton\n className={styles['empty-button']}\n htmlType=\"button\"\n icon=\"cross\"\n onClick={onClose}\n data-type=\"close\"\n data-testid={testId ? `${testId}-${index}-close` : undefined}\n />\n <div\n className={styles.indicator}\n data-indicator={status}\n data-testid={testId ? `${testId}-${index}-status` : undefined}\n />\n </div>\n );\n};\n\nTab.displayName = 'FileTab';\n\nFileTabs.Tab = Tab;\n\ninterface FileTabElementProps extends HTMLAttributes<HTMLDivElement> {\n icon?: IconName | ReactNode;\n active?: boolean;\n preview?: boolean;\n}\nexport const FileTabElement = ({\n icon,\n children,\n active = false,\n preview,\n className,\n ...props\n}: FileTabElementProps) => {\n return (\n <div\n {...props}\n className={cn(tabVariants({ active, preview, fixed: true }), className)}\n >\n {typeof icon === 'string' ? <Icon name={icon as IconName} /> : icon}\n {children && <span className={styles['tab-content-text']}>{children}</span>}\n </div>\n );\n};\n"],"names":["ReactSortable","ReactSortableModule","TabContext","createContext","selectedIndex","undefined","onClose","useSelect","result","useContext","Error","FileTabs","children","onReorderTab","onCloseProp","onSelect","onSelectProp","list","listProp","setList","setListProp","onEnd","direction","group","className","props","ref","useRef","useState","Children","map","_","index","id","useEffect","splice","value","onWheel","evt","current","scrollLeft","deltaY","jsx","e","preventDefault","stopPropagation","styles","tabs","length","sortable","store","newDraggableIndex","oldDraggableIndex","cn","child","tabVariants","cva","tab","variants","active","true","tab_active","false","tab_inactive","fixed","tab_fixed","preview","tab_preview","dismissable","tab_dismissable","defaultVariants","Tab","text","icon","onMouseDown","onMouseDownProp","status","testId","currentTarget","scrollIntoView","behavior","block","inline","jsxs","Icon","IconButton","indicator","displayName","FileTabElement"],"mappings":"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"}
@@ -1,21 +1,15 @@
1
+ require("./FileMultiUpload.css");
1
2
  'use strict';
2
3
 
3
4
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
5
 
5
6
  const jsxRuntime = require('react/jsx-runtime');
6
7
  const react = require('react');
7
- const styledComponents = require('styled-components');
8
8
  const FileUploadArea = require('./FileUploadArea.cjs');
9
9
  const FileUploadItem = require('./FileUploadItem.cjs');
10
10
  const useDragAndDrop = require('./useDragAndDrop.cjs');
11
+ const FileMultiUpload_module = require('./FileMultiUpload.module.css.cjs');
11
12
 
12
- const FilesList = styledComponents.styled.div.withConfig({
13
- componentId: "sc-1w9rsfj-0"
14
- })(["display:flex;flex-direction:column;gap:", ";width:100%;margin-top:", ";"], ({
15
- theme
16
- }) => theme.click.fileUpload.sm.space.gap, ({
17
- theme
18
- }) => theme.click.fileUpload.md.space.gap);
19
13
  const FileMultiUpload = ({
20
14
  title,
21
15
  supportedFileTypes = [".txt", ".sql"],
@@ -61,7 +55,7 @@ const FileMultiUpload = ({
61
55
  const acceptedFileTypes = supportedFileTypes.join(",");
62
56
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
63
57
  /* @__PURE__ */ jsxRuntime.jsx(FileUploadArea.FileUploadArea, { title, supportedFileTypes, size: "md", isDragging, isNotSupported, hasFile: false, multiple: true, onDragEnter: handleDragEnter, onDragLeave: handleDragLeave, onDragOver: handleDragOver, onDrop: handleDrop, onClick: handleBrowseClick }),
64
- files.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(FilesList, { children: files.map((file) => /* @__PURE__ */ jsxRuntime.jsx(FileUploadItem.FileUploadItem, { fileName: file.name, fileSize: file.size, progress: file.progress, showSuccess: file.status === "success", showProgress: file.status === "uploading", failureMessage: file.errorMessage || "Upload failed", onRetry: () => handleRetryUpload(file.id), onRemove: () => handleRemoveFile(file.id), size: "sm", inline: false }, file.id)) }),
58
+ files.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: FileMultiUpload_module.default["files-list"], children: files.map((file) => /* @__PURE__ */ jsxRuntime.jsx(FileUploadItem.FileUploadItem, { fileName: file.name, fileSize: file.size, progress: file.progress, showSuccess: file.status === "success", showProgress: file.status === "uploading", failureMessage: file.errorMessage || "Upload failed", onRetry: () => handleRetryUpload(file.id), onRemove: () => handleRemoveFile(file.id), size: "sm", inline: false }, file.id)) }),
65
59
  /* @__PURE__ */ jsxRuntime.jsx("input", { type: "file", ref: fileInputRef, accept: acceptedFileTypes, onChange: handleFileSelect, multiple: true, style: {
66
60
  display: "none"
67
61
  } })
@@ -1 +1 @@
1
- {"version":3,"file":"FileMultiUpload.cjs","sources":["../../../../src/components/FileUpload/FileMultiUpload.tsx"],"sourcesContent":["import { useCallback } from 'react';\nimport { styled } from 'styled-components';\nimport { FileUploadArea } from './FileUploadArea';\nimport { FileUploadItem } from './FileUploadItem';\nimport { useDragAndDrop } from './useDragAndDrop';\n\nexport interface FileUploadItem {\n id: string;\n name: string;\n size: number;\n status: 'uploading' | 'success' | 'error';\n progress: number;\n errorMessage?: string;\n}\n\nexport interface FileMultiUploadProps {\n title: string;\n supportedFileTypes?: string[];\n files: FileUploadItem[];\n onFileSelect?: (file: File) => void;\n onFileRetry?: (fileId: string) => void;\n onFileRemove?: (fileId: string) => void;\n onFileFailure?: () => void;\n}\n\nconst FilesList = styled.div`\n display: flex;\n flex-direction: column;\n gap: ${({ theme }) => theme.click.fileUpload.sm.space.gap};\n width: 100%;\n margin-top: ${({ theme }) => theme.click.fileUpload.md.space.gap};\n`;\n\nexport const FileMultiUpload = ({\n title,\n supportedFileTypes = ['.txt', '.sql'],\n files,\n onFileSelect,\n onFileRetry,\n onFileRemove,\n onFileFailure,\n}: FileMultiUploadProps) => {\n const handleFilesProcessed = useCallback(\n (processedFiles: File[]) => {\n processedFiles.forEach(file => {\n if (onFileSelect) {\n onFileSelect(file);\n }\n });\n },\n [onFileSelect]\n );\n\n const {\n isDragging,\n isNotSupported,\n fileInputRef,\n handleDragEnter,\n handleDragLeave,\n handleDragOver,\n handleDrop,\n handleFileSelect,\n handleBrowseClick,\n } = useDragAndDrop({\n onFilesProcessed: handleFilesProcessed,\n supportedFileTypes,\n onFileFailure,\n multiple: true,\n });\n\n const handleRemoveFile = useCallback(\n (fileId: string) => {\n if (onFileRemove) {\n onFileRemove(fileId);\n }\n },\n [onFileRemove]\n );\n\n const handleRetryUpload = useCallback(\n (fileId: string) => {\n if (onFileRetry) {\n onFileRetry(fileId);\n }\n },\n [onFileRetry]\n );\n\n const acceptedFileTypes = supportedFileTypes.join(',');\n\n return (\n <>\n <FileUploadArea\n title={title}\n supportedFileTypes={supportedFileTypes}\n size=\"md\"\n isDragging={isDragging}\n isNotSupported={isNotSupported}\n hasFile={false}\n multiple={true}\n onDragEnter={handleDragEnter}\n onDragLeave={handleDragLeave}\n onDragOver={handleDragOver}\n onDrop={handleDrop}\n onClick={handleBrowseClick}\n />\n\n {files.length > 0 && (\n <FilesList>\n {files.map(file => (\n <FileUploadItem\n key={file.id}\n fileName={file.name}\n fileSize={file.size}\n progress={file.progress}\n showSuccess={file.status === 'success'}\n showProgress={file.status === 'uploading'}\n failureMessage={file.errorMessage || 'Upload failed'}\n onRetry={() => handleRetryUpload(file.id)}\n onRemove={() => handleRemoveFile(file.id)}\n size=\"sm\"\n inline={false}\n />\n ))}\n </FilesList>\n )}\n\n <input\n type=\"file\"\n ref={fileInputRef}\n accept={acceptedFileTypes}\n onChange={handleFileSelect}\n multiple\n style={{ display: 'none' }}\n />\n </>\n );\n};\n"],"names":["FilesList","styled","div","withConfig","componentId","theme","click","fileUpload","sm","space","gap","md","FileMultiUpload","title","supportedFileTypes","files","onFileSelect","onFileRetry","onFileRemove","onFileFailure","handleFilesProcessed","useCallback","processedFiles","forEach","file","isDragging","isNotSupported","fileInputRef","handleDragEnter","handleDragLeave","handleDragOver","handleDrop","handleFileSelect","handleBrowseClick","useDragAndDrop","onFilesProcessed","multiple","handleRemoveFile","fileId","handleRetryUpload","acceptedFileTypes","join","jsxs","Fragment","jsx","FileUploadArea","length","map","FileUploadItem","name","size","progress","status","errorMessage","id","display"],"mappings":"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"}
1
+ {"version":3,"file":"FileMultiUpload.cjs","sources":["../../../../src/components/FileUpload/FileMultiUpload.tsx"],"sourcesContent":["import { useCallback } from 'react';\nimport { FileUploadArea } from './FileUploadArea';\nimport { FileUploadItem } from './FileUploadItem';\nimport { useDragAndDrop } from './useDragAndDrop';\nimport styles from './FileMultiUpload.module.css';\n\nexport interface FileUploadItem {\n id: string;\n name: string;\n size: number;\n status: 'uploading' | 'success' | 'error';\n progress: number;\n errorMessage?: string;\n}\n\nexport interface FileMultiUploadProps {\n title: string;\n supportedFileTypes?: string[];\n files: FileUploadItem[];\n onFileSelect?: (file: File) => void;\n onFileRetry?: (fileId: string) => void;\n onFileRemove?: (fileId: string) => void;\n onFileFailure?: () => void;\n}\n\nexport const FileMultiUpload = ({\n title,\n supportedFileTypes = ['.txt', '.sql'],\n files,\n onFileSelect,\n onFileRetry,\n onFileRemove,\n onFileFailure,\n}: FileMultiUploadProps) => {\n const handleFilesProcessed = useCallback(\n (processedFiles: File[]) => {\n processedFiles.forEach(file => {\n if (onFileSelect) {\n onFileSelect(file);\n }\n });\n },\n [onFileSelect]\n );\n\n const {\n isDragging,\n isNotSupported,\n fileInputRef,\n handleDragEnter,\n handleDragLeave,\n handleDragOver,\n handleDrop,\n handleFileSelect,\n handleBrowseClick,\n } = useDragAndDrop({\n onFilesProcessed: handleFilesProcessed,\n supportedFileTypes,\n onFileFailure,\n multiple: true,\n });\n\n const handleRemoveFile = useCallback(\n (fileId: string) => {\n if (onFileRemove) {\n onFileRemove(fileId);\n }\n },\n [onFileRemove]\n );\n\n const handleRetryUpload = useCallback(\n (fileId: string) => {\n if (onFileRetry) {\n onFileRetry(fileId);\n }\n },\n [onFileRetry]\n );\n\n const acceptedFileTypes = supportedFileTypes.join(',');\n\n return (\n <>\n <FileUploadArea\n title={title}\n supportedFileTypes={supportedFileTypes}\n size=\"md\"\n isDragging={isDragging}\n isNotSupported={isNotSupported}\n hasFile={false}\n multiple={true}\n onDragEnter={handleDragEnter}\n onDragLeave={handleDragLeave}\n onDragOver={handleDragOver}\n onDrop={handleDrop}\n onClick={handleBrowseClick}\n />\n\n {files.length > 0 && (\n <div className={styles['files-list']}>\n {files.map(file => (\n <FileUploadItem\n key={file.id}\n fileName={file.name}\n fileSize={file.size}\n progress={file.progress}\n showSuccess={file.status === 'success'}\n showProgress={file.status === 'uploading'}\n failureMessage={file.errorMessage || 'Upload failed'}\n onRetry={() => handleRetryUpload(file.id)}\n onRemove={() => handleRemoveFile(file.id)}\n size=\"sm\"\n inline={false}\n />\n ))}\n </div>\n )}\n\n <input\n type=\"file\"\n ref={fileInputRef}\n accept={acceptedFileTypes}\n onChange={handleFileSelect}\n multiple\n style={{ display: 'none' }}\n />\n </>\n );\n};\n"],"names":["FileMultiUpload","title","supportedFileTypes","files","onFileSelect","onFileRetry","onFileRemove","onFileFailure","handleFilesProcessed","useCallback","processedFiles","forEach","file","isDragging","isNotSupported","fileInputRef","handleDragEnter","handleDragLeave","handleDragOver","handleDrop","handleFileSelect","handleBrowseClick","useDragAndDrop","onFilesProcessed","multiple","handleRemoveFile","fileId","handleRetryUpload","acceptedFileTypes","join","jsxs","Fragment","jsx","FileUploadArea","length","styles","map","FileUploadItem","name","size","progress","status","errorMessage","id","display"],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /* stylelint-disable custom-property-pattern -- design tokens use camelCase (e.g. fileUpload) */
2
+ .files-list__Of0Ps {
3
+ display: flex;
4
+ width: 100%;
5
+ margin-top: var(--click-fileUpload-md-space-gap);
6
+ flex-direction: column;
7
+ gap: var(--click-fileUpload-sm-space-gap);
8
+ }
@@ -0,0 +1,10 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
4
+
5
+ const styles = {
6
+ "files-list": "files-list__Of0Ps"
7
+ };
8
+
9
+ exports.default = styles;
10
+ //# sourceMappingURL=FileMultiUpload.module.css.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileMultiUpload.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
@@ -0,0 +1,14 @@
1
+ .wrapper__LM6zP {
2
+ width: 100%;
3
+ }
4
+
5
+ /* 768px == --breakpoint-sizes-md (media queries can't consume a CSS var). */
6
+ /* stylelint-disable-next-line media-feature-range-notation -- prefix notation
7
+ required for browser compatibility per .browserslistrc */
8
+ @media (min-width: 768px) {
9
+ .wrapper__LM6zP {
10
+ width: 100%;
11
+ max-width: 1024px; /* --breakpoint-sizes-lg */
12
+ margin: 0 auto;
13
+ }
14
+ }
@@ -1,71 +1,75 @@
1
+ require("./FileUploadArea.css");
1
2
  'use strict';
2
3
 
3
4
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
5
 
5
6
  const jsxRuntime = require('react/jsx-runtime');
6
- const styledComponents = require('styled-components');
7
- const Button = require('../Button/index.cjs');
7
+ const cva = require('../../lib/cva.cjs');
8
+ const FileUploadArea_module = require('./FileUploadArea.module.css.cjs');
8
9
  const Icon = require('../Icon/index.cjs');
9
10
  const Title = require('../Title/index.cjs');
10
11
  const Text = require('../Text/index.cjs');
12
+ const Button = require('../Button/index.cjs');
13
+ const classVarianceAuthority = require('class-variance-authority');
11
14
 
12
- const UploadArea = styledComponents.styled.div.withConfig({
13
- componentId: "sc-14xz07d-0"
14
- })(["container-type:inline-size;container-name:uploadArea;box-sizing:border-box;width:100%;background-color:", ";border:", ";border-radius:", ";padding:", ";min-height:", ";display:flex;flex-direction:", ";align-items:center;justify-content:", ";gap:", ";cursor:", ";transition:", ";", " ", ""], ({
15
- theme
16
- }) => theme.click.fileUpload.color.background.default, ({
17
- theme
18
- }) => `1px solid ${theme.click.fileUpload.color.stroke.default}`, ({
19
- theme,
20
- $hasFile
21
- }) => $hasFile ? `${theme.click.fileUpload.sm.radii.all}` : `${theme.click.fileUpload.md.radii.all}`, ({
22
- theme,
23
- $hasFile,
24
- $size
25
- }) => $hasFile || $size === "sm" ? `${theme.click.fileUpload.sm.space.y} ${theme.click.fileUpload.sm.space.x}` : `${theme.click.fileUpload.md.space.y} ${theme.click.fileUpload.md.space.x}`, ({
26
- theme,
27
- $size
28
- }) => $size === "sm" ? `calc(${theme.click.fileUpload.sm.space.y} * 2 + ${theme.sizes[8]})` : "auto", (props) => props.$hasFile ? "row" : props.$size === "sm" ? "row" : "column", (props) => props.$hasFile ? "space-between" : props.$size === "sm" ? "space-between" : "center", ({
29
- theme,
30
- $size
31
- }) => $size === "sm" ? theme.click.fileUpload.sm.space.gap : theme.click.fileUpload.md.space.gap, (props) => props.$hasFile ? "default" : "pointer", ({
32
- theme
33
- }) => theme.click.fileUpload.transitions.all, (props) => !props.$hasFile && styledComponents.css(["border-style:dashed;border-color:", ";", ""], ({
34
- theme
35
- }) => theme.click.fileUpload.color.stroke.default, props.$isDragging && styledComponents.css(["background-color:", ";border-color:", ";"], ({
36
- theme
37
- }) => theme.click.fileUpload.color.background.active, ({
38
- theme
39
- }) => theme.click.fileUpload.color.stroke.active)), (props) => props.$isError && styledComponents.css(["background-color:", ";border-color:transparent;"], ({
40
- theme
41
- }) => theme.click.fileUpload.color.background.error));
42
- const FileUploadTitle = styledComponents.styled(Title.Title).withConfig({
43
- componentId: "sc-14xz07d-1"
44
- })(["font:", ";color:", ";"], ({
45
- theme
46
- }) => theme.click.fileUpload.typography.title.default, ({
47
- theme,
48
- $isNotSupported
49
- }) => $isNotSupported ? theme.click.fileUpload.color.title.error : theme.click.fileUpload.color.title.default);
50
- const FileUploadDescription = styledComponents.styled(Text.Text).withConfig({
51
- componentId: "sc-14xz07d-2"
52
- })(["font:", ";color:", ";"], ({
53
- theme
54
- }) => theme.click.fileUpload.typography.description.default, ({
55
- theme
56
- }) => theme.click.fileUpload.color.description.default);
57
- const UploadIcon = styledComponents.styled(Icon.Icon).withConfig({
58
- componentId: "sc-14xz07d-3"
59
- })(["svg{width:", ";height:", ";color:", ";}"], ({
60
- theme
61
- }) => theme.click.fileUpload.md.icon.size.width, ({
62
- theme
63
- }) => theme.click.fileUpload.md.icon.size.height, ({
64
- theme
65
- }) => theme.click.fileUpload.md.color.icon.default);
66
- const UploadText = styledComponents.styled.div.withConfig({
67
- componentId: "sc-14xz07d-4"
68
- })(["text-align:", ";", " ", ""], (props) => props.$hasFile || props.$size === "sm" ? "left" : "center", (props) => (props.$hasFile || props.$size === "sm") && styledComponents.css(["flex:1;"]), (props) => !props.$hasFile && props.$size === "md" && styledComponents.css(["display:flex;flex-direction:column;align-items:center;width:100%;"]));
15
+ const uploadAreaVariants = classVarianceAuthority.cva(FileUploadArea_module.default["upload-area"], {
16
+ variants: {
17
+ radius: {
18
+ sm: FileUploadArea_module.default["upload-area_radius_sm"],
19
+ md: FileUploadArea_module.default["upload-area_radius_md"]
20
+ },
21
+ padding: {
22
+ sm: FileUploadArea_module.default["upload-area_padding_sm"],
23
+ md: FileUploadArea_module.default["upload-area_padding_md"]
24
+ },
25
+ minHeight: {
26
+ sm: FileUploadArea_module.default["upload-area_min-height_sm"],
27
+ md: FileUploadArea_module.default["upload-area_min-height_md"]
28
+ },
29
+ direction: {
30
+ row: FileUploadArea_module.default["upload-area_direction_row"],
31
+ column: FileUploadArea_module.default["upload-area_direction_column"]
32
+ },
33
+ justify: {
34
+ "space-between": FileUploadArea_module.default["upload-area_justify_space-between"],
35
+ center: FileUploadArea_module.default["upload-area_justify_center"]
36
+ },
37
+ gap: {
38
+ sm: FileUploadArea_module.default["upload-area_gap_sm"],
39
+ md: FileUploadArea_module.default["upload-area_gap_md"]
40
+ },
41
+ cursor: {
42
+ default: FileUploadArea_module.default["upload-area_cursor_default"],
43
+ pointer: FileUploadArea_module.default["upload-area_cursor_pointer"]
44
+ },
45
+ dashed: {
46
+ true: FileUploadArea_module.default["upload-area_dashed_true"]
47
+ },
48
+ dragging: {
49
+ true: FileUploadArea_module.default["upload-area_dragging_true"]
50
+ },
51
+ error: {
52
+ true: FileUploadArea_module.default["upload-area_error_true"]
53
+ }
54
+ }
55
+ });
56
+ const titleVariants = classVarianceAuthority.cva(FileUploadArea_module.default.title, {
57
+ variants: {
58
+ notSupported: {
59
+ true: FileUploadArea_module.default["title_not-supported_true"]
60
+ }
61
+ }
62
+ });
63
+ const uploadTextVariants = classVarianceAuthority.cva(FileUploadArea_module.default["upload-text"], {
64
+ variants: {
65
+ centered: {
66
+ true: FileUploadArea_module.default["upload-text_centered_true"]
67
+ },
68
+ grow: {
69
+ true: FileUploadArea_module.default["upload-text_grow_true"]
70
+ }
71
+ }
72
+ });
69
73
  const FileUploadArea = ({
70
74
  title,
71
75
  supportedFileTypes,
@@ -82,11 +86,30 @@ const FileUploadArea = ({
82
86
  onClick,
83
87
  children
84
88
  }) => {
85
- return /* @__PURE__ */ jsxRuntime.jsx(UploadArea, { $isDragging: isDragging, $size: size, $hasFile: hasFile, $isError: isError, onDragEnter, onDragLeave, onDragOver, onDrop, onClick: !hasFile ? onClick : void 0, children: !hasFile ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
86
- /* @__PURE__ */ jsxRuntime.jsx(UploadIcon, { name: "upload" }),
87
- /* @__PURE__ */ jsxRuntime.jsxs(UploadText, { $size: size, $hasFile: false, children: [
88
- isNotSupported ? /* @__PURE__ */ jsxRuntime.jsx(FileUploadTitle, { $isNotSupported: true, type: "h1", children: "Unsupported file type" }) : /* @__PURE__ */ jsxRuntime.jsx(FileUploadTitle, { $isNotSupported: isNotSupported, type: "h1", children: title }),
89
- /* @__PURE__ */ jsxRuntime.jsxs(FileUploadDescription, { children: [
89
+ const isCompact = hasFile || size === "sm";
90
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cva.cn(uploadAreaVariants({
91
+ radius: hasFile ? "sm" : "md",
92
+ padding: isCompact ? "sm" : "md",
93
+ minHeight: size === "sm" ? "sm" : "md",
94
+ direction: hasFile || size === "sm" ? "row" : "column",
95
+ justify: hasFile || size === "sm" ? "space-between" : "center",
96
+ gap: size === "sm" ? "sm" : "md",
97
+ cursor: hasFile ? "default" : "pointer",
98
+ dashed: !hasFile,
99
+ dragging: !hasFile && isDragging,
100
+ error: isError
101
+ })), onDragEnter, onDragLeave, onDragOver, onDrop, onClick: !hasFile ? onClick : void 0, children: !hasFile ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
102
+ /* @__PURE__ */ jsxRuntime.jsx(Icon.Icon, { name: "upload", className: FileUploadArea_module.default["upload-icon"] }),
103
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cva.cn(uploadTextVariants({
104
+ centered: !hasFile && size === "md",
105
+ grow: hasFile || size === "sm"
106
+ })), children: [
107
+ isNotSupported ? /* @__PURE__ */ jsxRuntime.jsx(Title.Title, { type: "h1", className: cva.cn(titleVariants({
108
+ notSupported: true
109
+ })), children: "Unsupported file type" }) : /* @__PURE__ */ jsxRuntime.jsx(Title.Title, { type: "h1", className: cva.cn(titleVariants({
110
+ notSupported: isNotSupported
111
+ })), children: title }),
112
+ /* @__PURE__ */ jsxRuntime.jsxs(Text.Text, { className: FileUploadArea_module.default.description, children: [
90
113
  "Files supported: ",
91
114
  supportedFileTypes.join(", ")
92
115
  ] })