@clickhouse/click-ui 0.7.0 → 0.8.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 (305) hide show
  1. package/dist/cjs/click-ui.css +1543 -71
  2. package/dist/cjs/components/AutoComplete/AutoComplete.css +97 -0
  3. package/dist/cjs/components/AutoComplete/AutoComplete.module.css.cjs +18 -0
  4. package/dist/cjs/components/AutoComplete/AutoComplete.module.css.cjs.map +1 -0
  5. package/dist/cjs/components/AutoComplete/index.cjs +14 -74
  6. package/dist/cjs/components/AutoComplete/index.cjs.map +1 -1
  7. package/dist/cjs/components/Button/BaseButton.cjs +10 -31
  8. package/dist/cjs/components/Button/BaseButton.cjs.map +1 -1
  9. package/dist/cjs/components/Button/BaseButton.css +40 -0
  10. package/dist/cjs/components/Button/BaseButton.module.css.cjs +10 -0
  11. package/dist/cjs/components/Button/BaseButton.module.css.cjs.map +1 -0
  12. package/dist/cjs/components/CardPromotion/CardPromotion.css +52 -0
  13. package/dist/cjs/components/CardPromotion/CardPromotion.module.css.cjs +21 -0
  14. package/dist/cjs/components/CardPromotion/CardPromotion.module.css.cjs.map +1 -0
  15. package/dist/cjs/components/CardPromotion/index.cjs +8 -54
  16. package/dist/cjs/components/CardPromotion/index.cjs.map +1 -1
  17. package/dist/cjs/components/CodeBlock/CodeBlock.css +48 -0
  18. package/dist/cjs/components/CodeBlock/CodeBlock.module.css.cjs +22 -0
  19. package/dist/cjs/components/CodeBlock/CodeBlock.module.css.cjs.map +1 -0
  20. package/dist/cjs/components/CodeBlock/InlineCodeBlock.cjs +7 -14
  21. package/dist/cjs/components/CodeBlock/InlineCodeBlock.cjs.map +1 -1
  22. package/dist/cjs/components/CodeBlock/InlineCodeBlock.css +10 -0
  23. package/dist/cjs/components/CodeBlock/InlineCodeBlock.module.css.cjs +12 -0
  24. package/dist/cjs/components/CodeBlock/InlineCodeBlock.module.css.cjs.map +1 -0
  25. package/dist/cjs/components/CodeBlock/index.cjs +18 -49
  26. package/dist/cjs/components/CodeBlock/index.cjs.map +1 -1
  27. package/dist/cjs/components/CodeBlock/useColorStyle.cjs +15 -0
  28. package/dist/cjs/components/CodeBlock/useColorStyle.cjs.map +1 -1
  29. package/dist/cjs/components/ContextMenu/ContextMenu.css +12 -0
  30. package/dist/cjs/components/ContextMenu/ContextMenu.module.css.cjs +8 -1
  31. package/dist/cjs/components/ContextMenu/ContextMenu.module.css.cjs.map +1 -1
  32. package/dist/cjs/components/ContextMenu/index.cjs +8 -20
  33. package/dist/cjs/components/ContextMenu/index.cjs.map +1 -1
  34. package/dist/cjs/components/CrossButton/CrossButton.css +12 -0
  35. package/dist/cjs/components/CrossButton/CrossButton.module.css.cjs +10 -0
  36. package/dist/cjs/components/CrossButton/CrossButton.module.css.cjs.map +1 -0
  37. package/dist/cjs/components/CrossButton/index.cjs +11 -18
  38. package/dist/cjs/components/CrossButton/index.cjs.map +1 -1
  39. package/dist/cjs/components/DatePicker/DateTimeRangePicker.cjs +1 -1
  40. package/dist/cjs/components/DatePicker/DateTimeRangePicker.cjs.map +1 -1
  41. package/dist/cjs/components/Dropdown/Dropdown.css +23 -0
  42. package/dist/cjs/components/Dropdown/Dropdown.module.css.cjs +3 -1
  43. package/dist/cjs/components/Dropdown/Dropdown.module.css.cjs.map +1 -1
  44. package/dist/cjs/components/Dropdown/index.cjs +12 -23
  45. package/dist/cjs/components/Dropdown/index.cjs.map +1 -1
  46. package/dist/cjs/components/EllipsisContent/EllipsisContent.css +21 -0
  47. package/dist/cjs/components/EllipsisContent/EllipsisContent.module.css.cjs +10 -0
  48. package/dist/cjs/components/EllipsisContent/EllipsisContent.module.css.cjs.map +1 -0
  49. package/dist/cjs/components/EllipsisContent/index.cjs +7 -6
  50. package/dist/cjs/components/EllipsisContent/index.cjs.map +1 -1
  51. package/dist/cjs/components/EmptyButton/EmptyButton.css +21 -0
  52. package/dist/cjs/components/EmptyButton/EmptyButton.module.css.cjs +10 -0
  53. package/dist/cjs/components/EmptyButton/EmptyButton.module.css.cjs.map +1 -0
  54. package/dist/cjs/components/EmptyButton/index.cjs +10 -4
  55. package/dist/cjs/components/EmptyButton/index.cjs.map +1 -1
  56. package/dist/cjs/components/FileTabs/FileTabs.css +167 -0
  57. package/dist/cjs/components/FileTabs/FileTabs.module.css.cjs +38 -0
  58. package/dist/cjs/components/FileTabs/FileTabs.module.css.cjs.map +1 -0
  59. package/dist/cjs/components/FileTabs/index.cjs +51 -80
  60. package/dist/cjs/components/FileTabs/index.cjs.map +1 -1
  61. package/dist/cjs/components/FileUpload/FileMultiUpload.cjs +3 -9
  62. package/dist/cjs/components/FileUpload/FileMultiUpload.cjs.map +1 -1
  63. package/dist/cjs/components/FileUpload/FileMultiUpload.css +8 -0
  64. package/dist/cjs/components/FileUpload/FileMultiUpload.module.css.cjs +10 -0
  65. package/dist/cjs/components/FileUpload/FileMultiUpload.module.css.cjs.map +1 -0
  66. package/dist/cjs/components/FileUpload/FileUpload.stories-common.css +14 -0
  67. package/dist/cjs/components/FileUpload/FileUploadArea.cjs +87 -64
  68. package/dist/cjs/components/FileUpload/FileUploadArea.cjs.map +1 -1
  69. package/dist/cjs/components/FileUpload/FileUploadArea.css +130 -0
  70. package/dist/cjs/components/FileUpload/FileUploadArea.module.css.cjs +38 -0
  71. package/dist/cjs/components/FileUpload/FileUploadArea.module.css.cjs.map +1 -0
  72. package/dist/cjs/components/FileUpload/FileUploadItem.cjs +56 -64
  73. package/dist/cjs/components/FileUpload/FileUploadItem.cjs.map +1 -1
  74. package/dist/cjs/components/FileUpload/FileUploadItem.css +82 -0
  75. package/dist/cjs/components/FileUpload/FileUploadItem.module.css.cjs +27 -0
  76. package/dist/cjs/components/FileUpload/FileUploadItem.module.css.cjs.map +1 -0
  77. package/dist/cjs/components/FormContainer/Error.cjs +8 -9
  78. package/dist/cjs/components/FormContainer/Error.cjs.map +1 -1
  79. package/dist/cjs/components/FormContainer/Error.css +4 -0
  80. package/dist/cjs/components/FormContainer/Error.module.css.cjs +12 -0
  81. package/dist/cjs/components/FormContainer/Error.module.css.cjs.map +1 -0
  82. package/dist/cjs/components/FormContainer/FormElementContainer.cjs +8 -6
  83. package/dist/cjs/components/FormContainer/FormElementContainer.cjs.map +1 -1
  84. package/dist/cjs/components/FormContainer/FormElementContainer.css +14 -0
  85. package/dist/cjs/components/FormContainer/FormElementContainer.module.css.cjs +10 -0
  86. package/dist/cjs/components/FormContainer/FormElementContainer.module.css.cjs.map +1 -0
  87. package/dist/cjs/components/FormContainer/FormRoot.cjs +32 -18
  88. package/dist/cjs/components/FormContainer/FormRoot.cjs.map +1 -1
  89. package/dist/cjs/components/FormContainer/FormRoot.css +33 -0
  90. package/dist/cjs/components/FormContainer/FormRoot.module.css.cjs +15 -0
  91. package/dist/cjs/components/FormContainer/FormRoot.module.css.cjs.map +1 -0
  92. package/dist/cjs/components/GridCenter/GridCenter.css +6 -0
  93. package/dist/cjs/components/GridContainer/GridContainer.css +71 -0
  94. package/dist/cjs/components/GridContainer/GridContainer.module.css.cjs +12 -0
  95. package/dist/cjs/components/GridContainer/GridContainer.module.css.cjs.map +1 -0
  96. package/dist/cjs/components/GridContainer/index.cjs +64 -64
  97. package/dist/cjs/components/GridContainer/index.cjs.map +1 -1
  98. package/dist/cjs/components/MiddleTruncator/MiddleTruncator.css +22 -0
  99. package/dist/cjs/components/MiddleTruncator/MiddleTruncator.module.css.cjs +18 -0
  100. package/dist/cjs/components/MiddleTruncator/MiddleTruncator.module.css.cjs.map +1 -0
  101. package/dist/cjs/components/MiddleTruncator/index.cjs +5 -17
  102. package/dist/cjs/components/MiddleTruncator/index.cjs.map +1 -1
  103. package/dist/cjs/components/Pagination/Pagination.css +7 -0
  104. package/dist/cjs/components/Pagination/Pagination.module.css.cjs +10 -0
  105. package/dist/cjs/components/Pagination/Pagination.module.css.cjs.map +1 -0
  106. package/dist/cjs/components/Pagination/index.cjs +3 -5
  107. package/dist/cjs/components/Pagination/index.cjs.map +1 -1
  108. package/dist/cjs/components/Panel/Panel.css +116 -0
  109. package/dist/cjs/components/Panel/Panel.module.css.cjs +87 -0
  110. package/dist/cjs/components/Panel/Panel.module.css.cjs.map +1 -0
  111. package/dist/cjs/components/Panel/index.cjs +85 -35
  112. package/dist/cjs/components/Panel/index.cjs.map +1 -1
  113. package/dist/cjs/components/Popover/Popover.css +20 -0
  114. package/dist/cjs/components/Popover/Popover.module.css.cjs +5 -1
  115. package/dist/cjs/components/Popover/Popover.module.css.cjs.map +1 -1
  116. package/dist/cjs/components/Popover/index.cjs +2 -18
  117. package/dist/cjs/components/Popover/index.cjs.map +1 -1
  118. package/dist/cjs/components/Select/MultiSelectValue.cjs +4 -9
  119. package/dist/cjs/components/Select/MultiSelectValue.cjs.map +1 -1
  120. package/dist/cjs/components/Select/MultiSelectValue.css +19 -0
  121. package/dist/cjs/components/Select/MultiSelectValue.module.css.cjs +11 -0
  122. package/dist/cjs/components/Select/MultiSelectValue.module.css.cjs.map +1 -0
  123. package/dist/cjs/components/Select/SingleSelectValue.cjs +3 -5
  124. package/dist/cjs/components/Select/SingleSelectValue.cjs.map +1 -1
  125. package/dist/cjs/components/Select/SingleSelectValue.css +10 -0
  126. package/dist/cjs/components/Select/SingleSelectValue.module.css.cjs +10 -0
  127. package/dist/cjs/components/Select/SingleSelectValue.module.css.cjs.map +1 -0
  128. package/dist/cjs/components/Select/common/InternalSelect.cjs +18 -23
  129. package/dist/cjs/components/Select/common/InternalSelect.cjs.map +1 -1
  130. package/dist/cjs/components/Select/common/SelectComponents.cjs +110 -0
  131. package/dist/cjs/components/Select/common/SelectComponents.cjs.map +1 -0
  132. package/dist/cjs/components/Select/common/SelectComponents.css +296 -0
  133. package/dist/cjs/components/Select/common/SelectComponents.module.css.cjs +31 -0
  134. package/dist/cjs/components/Select/common/SelectComponents.module.css.cjs.map +1 -0
  135. package/dist/cjs/components/SplitButton/SplitButton.css +138 -0
  136. package/dist/cjs/components/SplitButton/SplitButton.module.css.cjs +19 -0
  137. package/dist/cjs/components/SplitButton/SplitButton.module.css.cjs.map +1 -0
  138. package/dist/cjs/components/SplitButton/index.cjs +42 -88
  139. package/dist/cjs/components/SplitButton/index.cjs.map +1 -1
  140. package/dist/cjs/components/Table/Table.css +0 -1
  141. package/dist/esm/click-ui.css +1543 -71
  142. package/dist/esm/components/AutoComplete/AutoComplete.css +97 -0
  143. package/dist/esm/components/AutoComplete/AutoComplete.module.css.js +14 -0
  144. package/dist/esm/components/AutoComplete/AutoComplete.module.css.js.map +1 -0
  145. package/dist/esm/components/AutoComplete/index.js +15 -75
  146. package/dist/esm/components/AutoComplete/index.js.map +1 -1
  147. package/dist/esm/components/Button/BaseButton.css +40 -0
  148. package/dist/esm/components/Button/BaseButton.js +11 -32
  149. package/dist/esm/components/Button/BaseButton.js.map +1 -1
  150. package/dist/esm/components/Button/BaseButton.module.css.js +6 -0
  151. package/dist/esm/components/Button/BaseButton.module.css.js.map +1 -0
  152. package/dist/esm/components/CardPromotion/CardPromotion.css +52 -0
  153. package/dist/esm/components/CardPromotion/CardPromotion.module.css.js +13 -0
  154. package/dist/esm/components/CardPromotion/CardPromotion.module.css.js.map +1 -0
  155. package/dist/esm/components/CardPromotion/index.js +8 -54
  156. package/dist/esm/components/CardPromotion/index.js.map +1 -1
  157. package/dist/esm/components/CodeBlock/CodeBlock.css +48 -0
  158. package/dist/esm/components/CodeBlock/CodeBlock.module.css.js +14 -0
  159. package/dist/esm/components/CodeBlock/CodeBlock.module.css.js.map +1 -0
  160. package/dist/esm/components/CodeBlock/InlineCodeBlock.css +10 -0
  161. package/dist/esm/components/CodeBlock/InlineCodeBlock.js +7 -14
  162. package/dist/esm/components/CodeBlock/InlineCodeBlock.js.map +1 -1
  163. package/dist/esm/components/CodeBlock/InlineCodeBlock.module.css.js +7 -0
  164. package/dist/esm/components/CodeBlock/InlineCodeBlock.module.css.js.map +1 -0
  165. package/dist/esm/components/CodeBlock/index.js +20 -51
  166. package/dist/esm/components/CodeBlock/index.js.map +1 -1
  167. package/dist/esm/components/CodeBlock/useColorStyle.js +14 -1
  168. package/dist/esm/components/CodeBlock/useColorStyle.js.map +1 -1
  169. package/dist/esm/components/ContextMenu/ContextMenu.css +12 -0
  170. package/dist/esm/components/ContextMenu/ContextMenu.module.css.js +7 -2
  171. package/dist/esm/components/ContextMenu/ContextMenu.module.css.js.map +1 -1
  172. package/dist/esm/components/ContextMenu/index.js +8 -20
  173. package/dist/esm/components/ContextMenu/index.js.map +1 -1
  174. package/dist/esm/components/CrossButton/CrossButton.css +12 -0
  175. package/dist/esm/components/CrossButton/CrossButton.module.css.js +6 -0
  176. package/dist/esm/components/CrossButton/CrossButton.module.css.js.map +1 -0
  177. package/dist/esm/components/CrossButton/index.js +11 -18
  178. package/dist/esm/components/CrossButton/index.js.map +1 -1
  179. package/dist/esm/components/DatePicker/DateTimeRangePicker.js +1 -1
  180. package/dist/esm/components/DatePicker/DateTimeRangePicker.js.map +1 -1
  181. package/dist/esm/components/Dropdown/Dropdown.css +23 -0
  182. package/dist/esm/components/Dropdown/Dropdown.module.css.js +3 -1
  183. package/dist/esm/components/Dropdown/Dropdown.module.css.js.map +1 -1
  184. package/dist/esm/components/Dropdown/index.js +12 -23
  185. package/dist/esm/components/Dropdown/index.js.map +1 -1
  186. package/dist/esm/components/EllipsisContent/EllipsisContent.css +21 -0
  187. package/dist/esm/components/EllipsisContent/EllipsisContent.module.css.js +6 -0
  188. package/dist/esm/components/EllipsisContent/EllipsisContent.module.css.js.map +1 -0
  189. package/dist/esm/components/EllipsisContent/index.js +7 -6
  190. package/dist/esm/components/EllipsisContent/index.js.map +1 -1
  191. package/dist/esm/components/EmptyButton/EmptyButton.css +21 -0
  192. package/dist/esm/components/EmptyButton/EmptyButton.module.css.js +6 -0
  193. package/dist/esm/components/EmptyButton/EmptyButton.module.css.js.map +1 -0
  194. package/dist/esm/components/EmptyButton/index.js +10 -4
  195. package/dist/esm/components/EmptyButton/index.js.map +1 -1
  196. package/dist/esm/components/FileTabs/FileTabs.css +167 -0
  197. package/dist/esm/components/FileTabs/FileTabs.module.css.js +26 -0
  198. package/dist/esm/components/FileTabs/FileTabs.module.css.js.map +1 -0
  199. package/dist/esm/components/FileTabs/index.js +51 -80
  200. package/dist/esm/components/FileTabs/index.js.map +1 -1
  201. package/dist/esm/components/FileUpload/FileMultiUpload.css +8 -0
  202. package/dist/esm/components/FileUpload/FileMultiUpload.js +3 -9
  203. package/dist/esm/components/FileUpload/FileMultiUpload.js.map +1 -1
  204. package/dist/esm/components/FileUpload/FileMultiUpload.module.css.js +6 -0
  205. package/dist/esm/components/FileUpload/FileMultiUpload.module.css.js.map +1 -0
  206. package/dist/esm/components/FileUpload/FileUpload.stories-common.css +14 -0
  207. package/dist/esm/components/FileUpload/FileUploadArea.css +130 -0
  208. package/dist/esm/components/FileUpload/FileUploadArea.js +87 -64
  209. package/dist/esm/components/FileUpload/FileUploadArea.js.map +1 -1
  210. package/dist/esm/components/FileUpload/FileUploadArea.module.css.js +32 -0
  211. package/dist/esm/components/FileUpload/FileUploadArea.module.css.js.map +1 -0
  212. package/dist/esm/components/FileUpload/FileUploadItem.css +82 -0
  213. package/dist/esm/components/FileUpload/FileUploadItem.js +56 -64
  214. package/dist/esm/components/FileUpload/FileUploadItem.js.map +1 -1
  215. package/dist/esm/components/FileUpload/FileUploadItem.module.css.js +21 -0
  216. package/dist/esm/components/FileUpload/FileUploadItem.module.css.js.map +1 -0
  217. package/dist/esm/components/FormContainer/Error.css +4 -0
  218. package/dist/esm/components/FormContainer/Error.js +8 -9
  219. package/dist/esm/components/FormContainer/Error.js.map +1 -1
  220. package/dist/esm/components/FormContainer/Error.module.css.js +7 -0
  221. package/dist/esm/components/FormContainer/Error.module.css.js.map +1 -0
  222. package/dist/esm/components/FormContainer/FormElementContainer.css +14 -0
  223. package/dist/esm/components/FormContainer/FormElementContainer.js +8 -6
  224. package/dist/esm/components/FormContainer/FormElementContainer.js.map +1 -1
  225. package/dist/esm/components/FormContainer/FormElementContainer.module.css.js +6 -0
  226. package/dist/esm/components/FormContainer/FormElementContainer.module.css.js.map +1 -0
  227. package/dist/esm/components/FormContainer/FormRoot.css +33 -0
  228. package/dist/esm/components/FormContainer/FormRoot.js +32 -18
  229. package/dist/esm/components/FormContainer/FormRoot.js.map +1 -1
  230. package/dist/esm/components/FormContainer/FormRoot.module.css.js +11 -0
  231. package/dist/esm/components/FormContainer/FormRoot.module.css.js.map +1 -0
  232. package/dist/esm/components/GridCenter/GridCenter.css +6 -0
  233. package/dist/esm/components/GridContainer/GridContainer.css +71 -0
  234. package/dist/esm/components/GridContainer/GridContainer.module.css.js +8 -0
  235. package/dist/esm/components/GridContainer/GridContainer.module.css.js.map +1 -0
  236. package/dist/esm/components/GridContainer/index.js +65 -65
  237. package/dist/esm/components/GridContainer/index.js.map +1 -1
  238. package/dist/esm/components/MiddleTruncator/MiddleTruncator.css +22 -0
  239. package/dist/esm/components/MiddleTruncator/MiddleTruncator.module.css.js +11 -0
  240. package/dist/esm/components/MiddleTruncator/MiddleTruncator.module.css.js.map +1 -0
  241. package/dist/esm/components/MiddleTruncator/index.js +5 -17
  242. package/dist/esm/components/MiddleTruncator/index.js.map +1 -1
  243. package/dist/esm/components/Pagination/Pagination.css +7 -0
  244. package/dist/esm/components/Pagination/Pagination.module.css.js +6 -0
  245. package/dist/esm/components/Pagination/Pagination.module.css.js.map +1 -0
  246. package/dist/esm/components/Pagination/index.js +3 -5
  247. package/dist/esm/components/Pagination/index.js.map +1 -1
  248. package/dist/esm/components/Panel/Panel.css +116 -0
  249. package/dist/esm/components/Panel/Panel.module.css.js +58 -0
  250. package/dist/esm/components/Panel/Panel.module.css.js.map +1 -0
  251. package/dist/esm/components/Panel/index.js +85 -35
  252. package/dist/esm/components/Panel/index.js.map +1 -1
  253. package/dist/esm/components/Popover/Popover.css +20 -0
  254. package/dist/esm/components/Popover/Popover.module.css.js +5 -2
  255. package/dist/esm/components/Popover/Popover.module.css.js.map +1 -1
  256. package/dist/esm/components/Popover/index.js +2 -18
  257. package/dist/esm/components/Popover/index.js.map +1 -1
  258. package/dist/esm/components/Select/MultiSelectValue.css +19 -0
  259. package/dist/esm/components/Select/MultiSelectValue.js +4 -9
  260. package/dist/esm/components/Select/MultiSelectValue.js.map +1 -1
  261. package/dist/esm/components/Select/MultiSelectValue.module.css.js +7 -0
  262. package/dist/esm/components/Select/MultiSelectValue.module.css.js.map +1 -0
  263. package/dist/esm/components/Select/SingleSelectValue.css +10 -0
  264. package/dist/esm/components/Select/SingleSelectValue.js +3 -5
  265. package/dist/esm/components/Select/SingleSelectValue.js.map +1 -1
  266. package/dist/esm/components/Select/SingleSelectValue.module.css.js +6 -0
  267. package/dist/esm/components/Select/SingleSelectValue.module.css.js.map +1 -0
  268. package/dist/esm/components/Select/common/InternalSelect.js +4 -9
  269. package/dist/esm/components/Select/common/InternalSelect.js.map +1 -1
  270. package/dist/esm/components/Select/common/SelectComponents.css +296 -0
  271. package/dist/esm/components/Select/common/SelectComponents.js +92 -0
  272. package/dist/esm/components/Select/common/SelectComponents.js.map +1 -0
  273. package/dist/esm/components/Select/common/SelectComponents.module.css.js +27 -0
  274. package/dist/esm/components/Select/common/SelectComponents.module.css.js.map +1 -0
  275. package/dist/esm/components/SplitButton/SplitButton.css +138 -0
  276. package/dist/esm/components/SplitButton/SplitButton.module.css.js +15 -0
  277. package/dist/esm/components/SplitButton/SplitButton.module.css.js.map +1 -0
  278. package/dist/esm/components/SplitButton/index.js +43 -89
  279. package/dist/esm/components/SplitButton/index.js.map +1 -1
  280. package/dist/esm/components/Table/Table.css +0 -1
  281. package/dist/types/components/AutoComplete/AutoComplete.d.ts +1 -1
  282. package/dist/types/components/Button/BaseButton.d.ts +2 -1
  283. package/dist/types/components/CardPromotion/CardPromotion.d.ts +1 -1
  284. package/dist/types/components/CodeBlock/CodeBlock.d.ts +1 -1
  285. package/dist/types/components/CodeBlock/InlineCodeBlock.d.ts +1 -1
  286. package/dist/types/components/CodeBlock/useColorStyle.d.ts +6 -112
  287. package/dist/types/components/ContextMenu/ContextMenu.d.ts +1 -1
  288. package/dist/types/components/CrossButton/CrossButton.d.ts +2 -7
  289. package/dist/types/components/Dropdown/Dropdown.d.ts +2 -2
  290. package/dist/types/components/EmptyButton/EmptyButton.d.ts +2 -1
  291. package/dist/types/components/FileTabs/FileTabs.d.ts +3 -3
  292. package/dist/types/components/FileUpload/FileUpload.stories-common.d.ts +4 -1
  293. package/dist/types/components/FormContainer/Error.d.ts +2 -1
  294. package/dist/types/components/FormContainer/FormElementContainer.d.ts +2 -1
  295. package/dist/types/components/FormContainer/FormRoot.d.ts +6 -4
  296. package/dist/types/components/GridCenter/GridCenter.d.ts +9 -1
  297. package/dist/types/components/Panel/Panel.d.ts +2 -39
  298. package/dist/types/components/Select/common/SelectComponents.d.ts +33 -0
  299. package/dist/types/components/SplitButton/SplitButton.d.ts +1 -1
  300. package/package.json +1 -1
  301. package/dist/cjs/components/Select/common/SelectStyled.cjs +0 -194
  302. package/dist/cjs/components/Select/common/SelectStyled.cjs.map +0 -1
  303. package/dist/esm/components/Select/common/SelectStyled.js +0 -176
  304. package/dist/esm/components/Select/common/SelectStyled.js.map +0 -1
  305. package/dist/types/components/Select/common/SelectStyled.d.ts +0 -34
@@ -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
  ] })
@@ -1 +1 @@
1
- {"version":3,"file":"FileUploadArea.cjs","sources":["../../../../src/components/FileUpload/FileUploadArea.tsx"],"sourcesContent":["import type { DragEvent, FC, ReactNode } from 'react';\nimport { styled, css } from 'styled-components';\nimport { Text } from '@/components/Text';\nimport { Title } from '@/components/Title';\nimport { Icon } from '@/components/Icon';\nimport { Button } from '@/components/Button';\n\nconst UploadArea = styled.div<{\n $isDragging: boolean;\n $size: 'sm' | 'md';\n $hasFile: boolean;\n $isError?: boolean;\n}>`\n container-type: inline-size;\n container-name: uploadArea;\n box-sizing: border-box;\n width: 100%;\n background-color: ${({ theme }) => theme.click.fileUpload.color.background.default};\n border: ${({ theme }) => `1px solid ${theme.click.fileUpload.color.stroke.default}`};\n border-radius: ${({ theme, $hasFile }) =>\n $hasFile\n ? `${theme.click.fileUpload.sm.radii.all}`\n : `${theme.click.fileUpload.md.radii.all}`};\n padding: ${({ theme, $hasFile, $size }) =>\n $hasFile || $size === 'sm'\n ? `${theme.click.fileUpload.sm.space.y} ${theme.click.fileUpload.sm.space.x}`\n : `${theme.click.fileUpload.md.space.y} ${theme.click.fileUpload.md.space.x}`};\n min-height: ${({ theme, $size }) =>\n $size === 'sm'\n ? `calc(${theme.click.fileUpload.sm.space.y} * 2 + ${theme.sizes[8]})`\n : 'auto'};\n display: flex;\n flex-direction: ${props =>\n props.$hasFile ? 'row' : props.$size === 'sm' ? 'row' : 'column'};\n align-items: center;\n justify-content: ${props =>\n props.$hasFile ? 'space-between' : props.$size === 'sm' ? 'space-between' : 'center'};\n gap: ${({ theme, $size }) =>\n $size === 'sm'\n ? theme.click.fileUpload.sm.space.gap\n : theme.click.fileUpload.md.space.gap};\n cursor: ${props => (props.$hasFile ? 'default' : 'pointer')};\n transition: ${({ theme }) => theme.click.fileUpload.transitions.all};\n\n ${props =>\n !props.$hasFile &&\n css`\n border-style: dashed;\n border-color: ${({ theme }) => theme.click.fileUpload.color.stroke.default};\n\n ${props.$isDragging &&\n css`\n background-color: ${({ theme }) =>\n theme.click.fileUpload.color.background.active};\n border-color: ${({ theme }) => theme.click.fileUpload.color.stroke.active};\n `}\n `}\n\n ${props =>\n props.$isError &&\n css`\n background-color: ${({ theme }) => theme.click.fileUpload.color.background.error};\n border-color: transparent;\n `}\n`;\n\nconst FileUploadTitle = styled(Title)<{ $isNotSupported: boolean }>`\n font: ${({ theme }) => theme.click.fileUpload.typography.title.default};\n color: ${({ theme, $isNotSupported }) =>\n $isNotSupported\n ? theme.click.fileUpload.color.title.error\n : theme.click.fileUpload.color.title.default};\n`;\n\nconst FileUploadDescription = styled(Text)`\n font: ${({ theme }) => theme.click.fileUpload.typography.description.default};\n color: ${({ theme }) => theme.click.fileUpload.color.description.default};\n`;\n\nconst UploadIcon = styled(Icon)`\n svg {\n width: ${({ theme }) => theme.click.fileUpload.md.icon.size.width};\n height: ${({ theme }) => theme.click.fileUpload.md.icon.size.height};\n color: ${({ theme }) => theme.click.fileUpload.md.color.icon.default};\n }\n`;\n\nconst UploadText = styled.div<{ $size: 'sm' | 'md'; $hasFile: boolean }>`\n text-align: ${props => (props.$hasFile || props.$size === 'sm' ? 'left' : 'center')};\n ${props =>\n (props.$hasFile || props.$size === 'sm') &&\n css`\n flex: 1;\n `}\n\n ${props =>\n !props.$hasFile &&\n props.$size === 'md' &&\n css`\n display: flex;\n flex-direction: column;\n align-items: center;\n width: 100%;\n `}\n`;\n\nexport interface FileUploadAreaProps {\n title: string;\n supportedFileTypes: string[];\n size?: 'sm' | 'md';\n isDragging: boolean;\n isNotSupported: boolean;\n hasFile?: boolean;\n isError?: boolean;\n multiple?: boolean;\n onDragEnter: (e: DragEvent<HTMLDivElement>) => void;\n onDragLeave: (e: DragEvent<HTMLDivElement>) => void;\n onDragOver: (e: DragEvent<HTMLDivElement>) => void;\n onDrop: (e: DragEvent<HTMLDivElement>) => void;\n onClick?: () => void;\n children?: ReactNode;\n}\n\nexport const FileUploadArea: FC<FileUploadAreaProps> = ({\n title,\n supportedFileTypes,\n size = 'sm',\n isDragging,\n isNotSupported,\n hasFile = false,\n isError = false,\n multiple = false,\n onDragEnter,\n onDragLeave,\n onDragOver,\n onDrop,\n onClick,\n children,\n}) => {\n return (\n <UploadArea\n $isDragging={isDragging}\n $size={size}\n $hasFile={hasFile}\n $isError={isError}\n onDragEnter={onDragEnter}\n onDragLeave={onDragLeave}\n onDragOver={onDragOver}\n onDrop={onDrop}\n onClick={!hasFile ? onClick : undefined}\n >\n {!hasFile ? (\n <>\n <UploadIcon name=\"upload\" />\n <UploadText\n $size={size}\n $hasFile={false}\n >\n {isNotSupported ? (\n <FileUploadTitle\n $isNotSupported\n type=\"h1\"\n >\n Unsupported file type\n </FileUploadTitle>\n ) : (\n <FileUploadTitle\n $isNotSupported={isNotSupported}\n type=\"h1\"\n >\n {title}\n </FileUploadTitle>\n )}\n <FileUploadDescription>\n Files supported: {supportedFileTypes.join(', ')}\n </FileUploadDescription>\n </UploadText>\n <Button\n type={'secondary'}\n onClick={e => {\n e.stopPropagation();\n onClick?.();\n }}\n >\n {multiple ? 'Browse files' : 'Browse file'}\n </Button>\n </>\n ) : (\n children\n )}\n </UploadArea>\n );\n};\n"],"names":["UploadArea","styled","div","withConfig","componentId","theme","click","fileUpload","color","background","default","stroke","$hasFile","sm","radii","all","md","$size","space","y","x","sizes","props","gap","transitions","css","$isDragging","active","$isError","error","FileUploadTitle","Title","typography","title","$isNotSupported","FileUploadDescription","Text","description","UploadIcon","Icon","icon","size","width","height","UploadText","FileUploadArea","supportedFileTypes","isDragging","isNotSupported","hasFile","isError","multiple","onDragEnter","onDragLeave","onDragOver","onDrop","onClick","children","jsx","undefined","jsxs","Fragment","join","Button","e","stopPropagation"],"mappings":"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"}
1
+ {"version":3,"file":"FileUploadArea.cjs","sources":["../../../../src/components/FileUpload/FileUploadArea.tsx"],"sourcesContent":["import type { DragEvent, FC, ReactNode } from 'react';\nimport { cn, cva } from '@/lib/cva';\nimport { Text } from '@/components/Text';\nimport { Title } from '@/components/Title';\nimport { Icon } from '@/components/Icon';\nimport { Button } from '@/components/Button';\nimport styles from './FileUploadArea.module.css';\n\nconst uploadAreaVariants = cva(styles['upload-area'], {\n variants: {\n radius: {\n sm: styles['upload-area_radius_sm'],\n md: styles['upload-area_radius_md'],\n },\n padding: {\n sm: styles['upload-area_padding_sm'],\n md: styles['upload-area_padding_md'],\n },\n minHeight: {\n sm: styles['upload-area_min-height_sm'],\n md: styles['upload-area_min-height_md'],\n },\n direction: {\n row: styles['upload-area_direction_row'],\n column: styles['upload-area_direction_column'],\n },\n justify: {\n 'space-between': styles['upload-area_justify_space-between'],\n center: styles['upload-area_justify_center'],\n },\n gap: {\n sm: styles['upload-area_gap_sm'],\n md: styles['upload-area_gap_md'],\n },\n cursor: {\n default: styles['upload-area_cursor_default'],\n pointer: styles['upload-area_cursor_pointer'],\n },\n dashed: {\n true: styles['upload-area_dashed_true'],\n },\n dragging: {\n true: styles['upload-area_dragging_true'],\n },\n error: {\n true: styles['upload-area_error_true'],\n },\n },\n});\n\nconst titleVariants = cva(styles.title, {\n variants: {\n notSupported: {\n true: styles['title_not-supported_true'],\n },\n },\n});\n\nconst uploadTextVariants = cva(styles['upload-text'], {\n variants: {\n centered: {\n true: styles['upload-text_centered_true'],\n },\n grow: {\n true: styles['upload-text_grow_true'],\n },\n },\n});\n\nexport interface FileUploadAreaProps {\n title: string;\n supportedFileTypes: string[];\n size?: 'sm' | 'md';\n isDragging: boolean;\n isNotSupported: boolean;\n hasFile?: boolean;\n isError?: boolean;\n multiple?: boolean;\n onDragEnter: (e: DragEvent<HTMLDivElement>) => void;\n onDragLeave: (e: DragEvent<HTMLDivElement>) => void;\n onDragOver: (e: DragEvent<HTMLDivElement>) => void;\n onDrop: (e: DragEvent<HTMLDivElement>) => void;\n onClick?: () => void;\n children?: ReactNode;\n}\n\nexport const FileUploadArea: FC<FileUploadAreaProps> = ({\n title,\n supportedFileTypes,\n size = 'sm',\n isDragging,\n isNotSupported,\n hasFile = false,\n isError = false,\n multiple = false,\n onDragEnter,\n onDragLeave,\n onDragOver,\n onDrop,\n onClick,\n children,\n}) => {\n const isCompact = hasFile || size === 'sm';\n\n return (\n <div\n className={cn(\n uploadAreaVariants({\n radius: hasFile ? 'sm' : 'md',\n padding: isCompact ? 'sm' : 'md',\n minHeight: size === 'sm' ? 'sm' : 'md',\n direction: hasFile || size === 'sm' ? 'row' : 'column',\n justify: hasFile || size === 'sm' ? 'space-between' : 'center',\n gap: size === 'sm' ? 'sm' : 'md',\n cursor: hasFile ? 'default' : 'pointer',\n dashed: !hasFile,\n dragging: !hasFile && isDragging,\n error: isError,\n })\n )}\n onDragEnter={onDragEnter}\n onDragLeave={onDragLeave}\n onDragOver={onDragOver}\n onDrop={onDrop}\n onClick={!hasFile ? onClick : undefined}\n >\n {!hasFile ? (\n <>\n <Icon\n name=\"upload\"\n className={styles['upload-icon']}\n />\n <div\n className={cn(\n uploadTextVariants({\n centered: !hasFile && size === 'md',\n grow: hasFile || size === 'sm',\n })\n )}\n >\n {isNotSupported ? (\n <Title\n type=\"h1\"\n className={cn(titleVariants({ notSupported: true }))}\n >\n Unsupported file type\n </Title>\n ) : (\n <Title\n type=\"h1\"\n className={cn(titleVariants({ notSupported: isNotSupported }))}\n >\n {title}\n </Title>\n )}\n <Text className={styles.description}>\n Files supported: {supportedFileTypes.join(', ')}\n </Text>\n </div>\n <Button\n type={'secondary'}\n onClick={e => {\n e.stopPropagation();\n onClick?.();\n }}\n >\n {multiple ? 'Browse files' : 'Browse file'}\n </Button>\n </>\n ) : (\n children\n )}\n </div>\n );\n};\n"],"names":["uploadAreaVariants","cva","styles","variants","radius","sm","md","padding","minHeight","direction","row","column","justify","center","gap","cursor","default","pointer","dashed","true","dragging","error","titleVariants","title","notSupported","uploadTextVariants","centered","grow","FileUploadArea","supportedFileTypes","size","isDragging","isNotSupported","hasFile","isError","multiple","onDragEnter","onDragLeave","onDragOver","onDrop","onClick","children","isCompact","jsx","cn","undefined","jsxs","Fragment","Icon","Title","Text","description","join","Button","e","stopPropagation"],"mappings":"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"}
@@ -0,0 +1,130 @@
1
+ /* stylelint-disable custom-property-pattern -- design tokens use camelCase (e.g. fileUpload) */
2
+ .upload-area__3SxAA {
3
+ display: flex;
4
+ box-sizing: border-box;
5
+ width: 100%;
6
+ align-items: center;
7
+ border: 1px solid var(--click-fileUpload-color-stroke-default);
8
+ background-color: var(--click-fileUpload-color-background-default);
9
+ transition: var(--click-fileUpload-transitions-all);
10
+ /* stylelint-disable-next-line container-name-pattern, value-keyword-case -- preserve original container-name from styled-components */
11
+ container-name: uploadArea;
12
+ container-type: inline-size;
13
+ }
14
+
15
+ /* border-radius: hasFile ? sm : md */
16
+ .upload-area_radius_sm__DW4eQ {
17
+ border-radius: var(--click-fileUpload-sm-radii-all);
18
+ }
19
+
20
+ .upload-area_radius_md__k9cZA {
21
+ border-radius: var(--click-fileUpload-md-radii-all);
22
+ }
23
+
24
+ /* padding: hasFile || size === 'sm' ? sm : md */
25
+ .upload-area_padding_sm__ci1xq {
26
+ padding: var(--click-fileUpload-sm-space-y) var(--click-fileUpload-sm-space-x);
27
+ }
28
+
29
+ .upload-area_padding_md__SflJQ {
30
+ padding: var(--click-fileUpload-md-space-y) var(--click-fileUpload-md-space-x);
31
+ }
32
+
33
+ /* min-height: size === 'sm' ? calc : auto */
34
+ .upload-area_min-height_sm__JmKFU {
35
+ min-height: calc(var(--click-fileUpload-sm-space-y) * 2 + var(--sizes-8));
36
+ }
37
+
38
+ .upload-area_min-height_md__7BUe3 {
39
+ min-height: auto;
40
+ }
41
+
42
+ /* flex-direction: hasFile ? row : size === 'sm' ? row : column */
43
+ .upload-area_direction_row__dPIPY {
44
+ flex-direction: row;
45
+ }
46
+
47
+ .upload-area_direction_column__Yd-Y9 {
48
+ flex-direction: column;
49
+ }
50
+
51
+ /* justify-content: hasFile ? space-between : size === 'sm' ? space-between : center */
52
+ .upload-area_justify_space-between__8kSQQ {
53
+ justify-content: space-between;
54
+ }
55
+
56
+ .upload-area_justify_center__vW-59 {
57
+ justify-content: center;
58
+ }
59
+
60
+ /* gap: size === 'sm' ? sm : md */
61
+ .upload-area_gap_sm__fRrTo {
62
+ gap: var(--click-fileUpload-sm-space-gap);
63
+ }
64
+
65
+ .upload-area_gap_md__gndXo {
66
+ gap: var(--click-fileUpload-md-space-gap);
67
+ }
68
+
69
+ /* cursor: hasFile ? default : pointer */
70
+ .upload-area_cursor_default__Yrr8K {
71
+ cursor: default;
72
+ }
73
+
74
+ .upload-area_cursor_pointer__nnHd9 {
75
+ cursor: pointer;
76
+ }
77
+
78
+ /* !hasFile: dashed border */
79
+ .upload-area_dashed_true__-dB8w {
80
+ border-style: dashed;
81
+ border-color: var(--click-fileUpload-color-stroke-default);
82
+ }
83
+
84
+ /* !hasFile && isDragging */
85
+ .upload-area_dragging_true__wzFjV {
86
+ border-color: var(--click-fileUpload-color-stroke-active);
87
+ background-color: var(--click-fileUpload-color-background-active);
88
+ }
89
+
90
+ /* isError */
91
+ .upload-area_error_true__gIe8y {
92
+ border-color: transparent;
93
+ background-color: var(--click-fileUpload-color-background-error);
94
+ }
95
+
96
+ .title__1rLes {
97
+ color: var(--click-fileUpload-color-title-default);
98
+ font: var(--click-fileUpload-typography-title-default);
99
+ }
100
+
101
+ .title_not-supported_true__o7ZXZ {
102
+ color: var(--click-fileUpload-color-title-error);
103
+ }
104
+
105
+ .description__QyVSQ {
106
+ color: var(--click-fileUpload-color-description-default);
107
+ font: var(--click-fileUpload-typography-description-default);
108
+ }
109
+
110
+ .upload-icon__CeL3E svg {
111
+ width: var(--click-fileUpload-md-icon-size-width);
112
+ height: var(--click-fileUpload-md-icon-size-height);
113
+ color: var(--click-fileUpload-md-color-icon-default);
114
+ }
115
+
116
+ .upload-text__4oGA- {
117
+ text-align: left;
118
+ }
119
+
120
+ .upload-text_centered_true__brhHN {
121
+ display: flex;
122
+ width: 100%;
123
+ flex-direction: column;
124
+ align-items: center;
125
+ text-align: center;
126
+ }
127
+
128
+ .upload-text_grow_true__9MNMX {
129
+ flex: 1;
130
+ }
@@ -0,0 +1,38 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
4
+
5
+ const title = "title__1rLes";
6
+ const description = "description__QyVSQ";
7
+ const styles = {
8
+ "upload-area": "upload-area__3SxAA",
9
+ "upload-area_radius_sm": "upload-area_radius_sm__DW4eQ",
10
+ "upload-area_radius_md": "upload-area_radius_md__k9cZA",
11
+ "upload-area_padding_sm": "upload-area_padding_sm__ci1xq",
12
+ "upload-area_padding_md": "upload-area_padding_md__SflJQ",
13
+ "upload-area_min-height_sm": "upload-area_min-height_sm__JmKFU",
14
+ "upload-area_min-height_md": "upload-area_min-height_md__7BUe3",
15
+ "upload-area_direction_row": "upload-area_direction_row__dPIPY",
16
+ "upload-area_direction_column": "upload-area_direction_column__Yd-Y9",
17
+ "upload-area_justify_space-between": "upload-area_justify_space-between__8kSQQ",
18
+ "upload-area_justify_center": "upload-area_justify_center__vW-59",
19
+ "upload-area_gap_sm": "upload-area_gap_sm__fRrTo",
20
+ "upload-area_gap_md": "upload-area_gap_md__gndXo",
21
+ "upload-area_cursor_default": "upload-area_cursor_default__Yrr8K",
22
+ "upload-area_cursor_pointer": "upload-area_cursor_pointer__nnHd9",
23
+ "upload-area_dashed_true": "upload-area_dashed_true__-dB8w",
24
+ "upload-area_dragging_true": "upload-area_dragging_true__wzFjV",
25
+ "upload-area_error_true": "upload-area_error_true__gIe8y",
26
+ title: title,
27
+ "title_not-supported_true": "title_not-supported_true__o7ZXZ",
28
+ description: description,
29
+ "upload-icon": "upload-icon__CeL3E",
30
+ "upload-text": "upload-text__4oGA-",
31
+ "upload-text_centered_true": "upload-text_centered_true__brhHN",
32
+ "upload-text_grow_true": "upload-text_grow_true__9MNMX"
33
+ };
34
+
35
+ exports.default = styles;
36
+ exports.description = description;
37
+ exports.title = title;
38
+ //# sourceMappingURL=FileUploadArea.module.css.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileUploadArea.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}