@clickhouse/click-ui 0.6.2-rc3 → 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 (460) hide show
  1. package/dist/cjs/click-ui.css +3521 -236
  2. package/dist/cjs/components/Alert/index.cjs +2 -2
  3. package/dist/cjs/components/Alert/index.cjs.map +1 -1
  4. package/dist/cjs/components/Assets/Logos/Polaris.cjs +22 -0
  5. package/dist/cjs/components/Assets/Logos/Polaris.cjs.map +1 -0
  6. package/dist/cjs/components/Assets/Logos/system/LogosDark.cjs +2 -0
  7. package/dist/cjs/components/Assets/Logos/system/LogosDark.cjs.map +1 -1
  8. package/dist/cjs/components/Assets/Logos/system/LogosLight.cjs +2 -0
  9. package/dist/cjs/components/Assets/Logos/system/LogosLight.cjs.map +1 -1
  10. package/dist/cjs/components/AutoComplete/AutoComplete.css +97 -0
  11. package/dist/cjs/components/AutoComplete/AutoComplete.module.css.cjs +18 -0
  12. package/dist/cjs/components/AutoComplete/AutoComplete.module.css.cjs.map +1 -0
  13. package/dist/cjs/components/AutoComplete/index.cjs +14 -74
  14. package/dist/cjs/components/AutoComplete/index.cjs.map +1 -1
  15. package/dist/cjs/components/BigStat/BigStat.css +77 -0
  16. package/dist/cjs/components/BigStat/BigStat.module.css.cjs +22 -0
  17. package/dist/cjs/components/BigStat/BigStat.module.css.cjs.map +1 -0
  18. package/dist/cjs/components/BigStat/index.cjs +60 -52
  19. package/dist/cjs/components/BigStat/index.cjs.map +1 -1
  20. package/dist/cjs/components/Button/BaseButton.cjs +10 -31
  21. package/dist/cjs/components/Button/BaseButton.cjs.map +1 -1
  22. package/dist/cjs/components/Button/BaseButton.css +40 -0
  23. package/dist/cjs/components/Button/BaseButton.module.css.cjs +10 -0
  24. package/dist/cjs/components/Button/BaseButton.module.css.cjs.map +1 -0
  25. package/dist/cjs/components/ButtonGroup/index.cjs +1 -1
  26. package/dist/cjs/components/ButtonGroup/index.cjs.map +1 -1
  27. package/dist/cjs/components/CardPromotion/CardPromotion.css +52 -0
  28. package/dist/cjs/components/CardPromotion/CardPromotion.module.css.cjs +21 -0
  29. package/dist/cjs/components/CardPromotion/CardPromotion.module.css.cjs.map +1 -0
  30. package/dist/cjs/components/CardPromotion/index.cjs +8 -54
  31. package/dist/cjs/components/CardPromotion/index.cjs.map +1 -1
  32. package/dist/cjs/components/CardSecondary/CardSecondary.css +99 -0
  33. package/dist/cjs/components/CardSecondary/CardSecondary.module.css.cjs +39 -0
  34. package/dist/cjs/components/CardSecondary/CardSecondary.module.css.cjs.map +1 -0
  35. package/dist/cjs/components/CardSecondary/index.cjs +35 -84
  36. package/dist/cjs/components/CardSecondary/index.cjs.map +1 -1
  37. package/dist/cjs/components/CodeBlock/CodeBlock.css +48 -0
  38. package/dist/cjs/components/CodeBlock/CodeBlock.module.css.cjs +22 -0
  39. package/dist/cjs/components/CodeBlock/CodeBlock.module.css.cjs.map +1 -0
  40. package/dist/cjs/components/CodeBlock/InlineCodeBlock.cjs +7 -14
  41. package/dist/cjs/components/CodeBlock/InlineCodeBlock.cjs.map +1 -1
  42. package/dist/cjs/components/CodeBlock/InlineCodeBlock.css +10 -0
  43. package/dist/cjs/components/CodeBlock/InlineCodeBlock.module.css.cjs +12 -0
  44. package/dist/cjs/components/CodeBlock/InlineCodeBlock.module.css.cjs.map +1 -0
  45. package/dist/cjs/components/CodeBlock/index.cjs +18 -49
  46. package/dist/cjs/components/CodeBlock/index.cjs.map +1 -1
  47. package/dist/cjs/components/CodeBlock/useColorStyle.cjs +15 -0
  48. package/dist/cjs/components/CodeBlock/useColorStyle.cjs.map +1 -1
  49. package/dist/cjs/components/ConfirmationDialog/ConfirmationDialog.css +20 -0
  50. package/dist/cjs/components/ConfirmationDialog/ConfirmationDialog.module.css.cjs +15 -0
  51. package/dist/cjs/components/ConfirmationDialog/ConfirmationDialog.module.css.cjs.map +1 -0
  52. package/dist/cjs/components/ConfirmationDialog/index.cjs +6 -11
  53. package/dist/cjs/components/ConfirmationDialog/index.cjs.map +1 -1
  54. package/dist/cjs/components/ContextMenu/ContextMenu.css +40 -0
  55. package/dist/cjs/components/ContextMenu/ContextMenu.module.css.cjs +17 -0
  56. package/dist/cjs/components/ContextMenu/ContextMenu.module.css.cjs.map +1 -0
  57. package/dist/cjs/components/ContextMenu/index.cjs +33 -47
  58. package/dist/cjs/components/ContextMenu/index.cjs.map +1 -1
  59. package/dist/cjs/components/CrossButton/CrossButton.css +12 -0
  60. package/dist/cjs/components/CrossButton/CrossButton.module.css.cjs +10 -0
  61. package/dist/cjs/components/CrossButton/CrossButton.module.css.cjs.map +1 -0
  62. package/dist/cjs/components/CrossButton/index.cjs +11 -14
  63. package/dist/cjs/components/CrossButton/index.cjs.map +1 -1
  64. package/dist/cjs/components/DatePicker/Common.cjs +1 -1
  65. package/dist/cjs/components/DatePicker/Common.cjs.map +1 -1
  66. package/dist/cjs/components/DatePicker/DateTimeRangePicker.cjs +1 -1
  67. package/dist/cjs/components/DatePicker/DateTimeRangePicker.cjs.map +1 -1
  68. package/dist/cjs/components/Dropdown/Dropdown.css +36 -0
  69. package/dist/cjs/components/Dropdown/Dropdown.module.css.cjs +13 -0
  70. package/dist/cjs/components/Dropdown/Dropdown.module.css.cjs.map +1 -0
  71. package/dist/cjs/components/Dropdown/index.cjs +28 -33
  72. package/dist/cjs/components/Dropdown/index.cjs.map +1 -1
  73. package/dist/cjs/components/EllipsisContent/EllipsisContent.css +21 -0
  74. package/dist/cjs/components/EllipsisContent/EllipsisContent.module.css.cjs +10 -0
  75. package/dist/cjs/components/EllipsisContent/EllipsisContent.module.css.cjs.map +1 -0
  76. package/dist/cjs/components/EllipsisContent/index.cjs +7 -6
  77. package/dist/cjs/components/EllipsisContent/index.cjs.map +1 -1
  78. package/dist/cjs/components/EmptyButton/EmptyButton.css +21 -0
  79. package/dist/cjs/components/EmptyButton/EmptyButton.module.css.cjs +10 -0
  80. package/dist/cjs/components/EmptyButton/EmptyButton.module.css.cjs.map +1 -0
  81. package/dist/cjs/components/EmptyButton/index.cjs +10 -4
  82. package/dist/cjs/components/EmptyButton/index.cjs.map +1 -1
  83. package/dist/cjs/components/FileTabs/FileTabs.css +167 -0
  84. package/dist/cjs/components/FileTabs/FileTabs.module.css.cjs +38 -0
  85. package/dist/cjs/components/FileTabs/FileTabs.module.css.cjs.map +1 -0
  86. package/dist/cjs/components/FileTabs/index.cjs +51 -80
  87. package/dist/cjs/components/FileTabs/index.cjs.map +1 -1
  88. package/dist/cjs/components/FileUpload/FileMultiUpload.cjs +3 -9
  89. package/dist/cjs/components/FileUpload/FileMultiUpload.cjs.map +1 -1
  90. package/dist/cjs/components/FileUpload/FileMultiUpload.css +8 -0
  91. package/dist/cjs/components/FileUpload/FileMultiUpload.module.css.cjs +10 -0
  92. package/dist/cjs/components/FileUpload/FileMultiUpload.module.css.cjs.map +1 -0
  93. package/dist/cjs/components/FileUpload/FileUpload.stories-common.css +14 -0
  94. package/dist/cjs/components/FileUpload/FileUploadArea.cjs +87 -64
  95. package/dist/cjs/components/FileUpload/FileUploadArea.cjs.map +1 -1
  96. package/dist/cjs/components/FileUpload/FileUploadArea.css +130 -0
  97. package/dist/cjs/components/FileUpload/FileUploadArea.module.css.cjs +38 -0
  98. package/dist/cjs/components/FileUpload/FileUploadArea.module.css.cjs.map +1 -0
  99. package/dist/cjs/components/FileUpload/FileUploadItem.cjs +56 -64
  100. package/dist/cjs/components/FileUpload/FileUploadItem.cjs.map +1 -1
  101. package/dist/cjs/components/FileUpload/FileUploadItem.css +82 -0
  102. package/dist/cjs/components/FileUpload/FileUploadItem.module.css.cjs +27 -0
  103. package/dist/cjs/components/FileUpload/FileUploadItem.module.css.cjs.map +1 -0
  104. package/dist/cjs/components/Flyout/Flyout.css +231 -0
  105. package/dist/cjs/components/Flyout/Flyout.module.css.cjs +93 -0
  106. package/dist/cjs/components/Flyout/Flyout.module.css.cjs.map +1 -0
  107. package/dist/cjs/components/Flyout/index.cjs +148 -126
  108. package/dist/cjs/components/Flyout/index.cjs.map +1 -1
  109. package/dist/cjs/components/FormContainer/Error.cjs +8 -9
  110. package/dist/cjs/components/FormContainer/Error.cjs.map +1 -1
  111. package/dist/cjs/components/FormContainer/Error.css +4 -0
  112. package/dist/cjs/components/FormContainer/Error.module.css.cjs +12 -0
  113. package/dist/cjs/components/FormContainer/Error.module.css.cjs.map +1 -0
  114. package/dist/cjs/components/FormContainer/FormElementContainer.cjs +8 -6
  115. package/dist/cjs/components/FormContainer/FormElementContainer.cjs.map +1 -1
  116. package/dist/cjs/components/FormContainer/FormElementContainer.css +14 -0
  117. package/dist/cjs/components/FormContainer/FormElementContainer.module.css.cjs +10 -0
  118. package/dist/cjs/components/FormContainer/FormElementContainer.module.css.cjs.map +1 -0
  119. package/dist/cjs/components/FormContainer/FormRoot.cjs +32 -18
  120. package/dist/cjs/components/FormContainer/FormRoot.cjs.map +1 -1
  121. package/dist/cjs/components/FormContainer/FormRoot.css +33 -0
  122. package/dist/cjs/components/FormContainer/FormRoot.module.css.cjs +15 -0
  123. package/dist/cjs/components/FormContainer/FormRoot.module.css.cjs.map +1 -0
  124. package/dist/cjs/components/GenericMenu/GenericMenu.css +176 -0
  125. package/dist/cjs/components/GenericMenu/GenericMenu.module.css.cjs +23 -0
  126. package/dist/cjs/components/GenericMenu/GenericMenu.module.css.cjs.map +1 -0
  127. package/dist/cjs/components/GenericMenu/index.cjs +93 -99
  128. package/dist/cjs/components/GenericMenu/index.cjs.map +1 -1
  129. package/dist/cjs/components/GridCenter/GridCenter.css +6 -0
  130. package/dist/cjs/components/GridContainer/GridContainer.css +71 -0
  131. package/dist/cjs/components/GridContainer/GridContainer.module.css.cjs +12 -0
  132. package/dist/cjs/components/GridContainer/GridContainer.module.css.cjs.map +1 -0
  133. package/dist/cjs/components/GridContainer/index.cjs +64 -64
  134. package/dist/cjs/components/GridContainer/index.cjs.map +1 -1
  135. package/dist/cjs/components/HoverCard/index.cjs +1 -1
  136. package/dist/cjs/components/HoverCard/index.cjs.map +1 -1
  137. package/dist/cjs/components/IconButton/index.cjs +2 -1
  138. package/dist/cjs/components/IconButton/index.cjs.map +1 -1
  139. package/dist/cjs/components/InputWrapper/InputWrapper.css +221 -0
  140. package/dist/cjs/components/InputWrapper/InputWrapper.module.css.cjs +39 -0
  141. package/dist/cjs/components/InputWrapper/InputWrapper.module.css.cjs.map +1 -0
  142. package/dist/cjs/components/InputWrapper/index.cjs +84 -185
  143. package/dist/cjs/components/InputWrapper/index.cjs.map +1 -1
  144. package/dist/cjs/components/MiddleTruncator/MiddleTruncator.css +22 -0
  145. package/dist/cjs/components/MiddleTruncator/MiddleTruncator.module.css.cjs +18 -0
  146. package/dist/cjs/components/MiddleTruncator/MiddleTruncator.module.css.cjs.map +1 -0
  147. package/dist/cjs/components/MiddleTruncator/index.cjs +5 -17
  148. package/dist/cjs/components/MiddleTruncator/index.cjs.map +1 -1
  149. package/dist/cjs/components/Pagination/Pagination.css +7 -0
  150. package/dist/cjs/components/Pagination/Pagination.module.css.cjs +10 -0
  151. package/dist/cjs/components/Pagination/Pagination.module.css.cjs.map +1 -0
  152. package/dist/cjs/components/Pagination/index.cjs +3 -5
  153. package/dist/cjs/components/Pagination/index.cjs.map +1 -1
  154. package/dist/cjs/components/Panel/Panel.css +116 -0
  155. package/dist/cjs/components/Panel/Panel.module.css.cjs +87 -0
  156. package/dist/cjs/components/Panel/Panel.module.css.cjs.map +1 -0
  157. package/dist/cjs/components/Panel/index.cjs +85 -35
  158. package/dist/cjs/components/Panel/index.cjs.map +1 -1
  159. package/dist/cjs/components/Popover/Popover.css +32 -0
  160. package/dist/cjs/components/Popover/Popover.module.css.cjs +15 -0
  161. package/dist/cjs/components/Popover/Popover.module.css.cjs.map +1 -0
  162. package/dist/cjs/components/Popover/index.cjs +27 -36
  163. package/dist/cjs/components/Popover/index.cjs.map +1 -1
  164. package/dist/cjs/components/RadioGroup/RadioGroup.css +99 -0
  165. package/dist/cjs/components/RadioGroup/RadioGroup.module.css.cjs +18 -0
  166. package/dist/cjs/components/RadioGroup/RadioGroup.module.css.cjs.map +1 -0
  167. package/dist/cjs/components/RadioGroup/index.cjs +28 -77
  168. package/dist/cjs/components/RadioGroup/index.cjs.map +1 -1
  169. package/dist/cjs/components/Select/MultiSelectValue.cjs +4 -9
  170. package/dist/cjs/components/Select/MultiSelectValue.cjs.map +1 -1
  171. package/dist/cjs/components/Select/MultiSelectValue.css +19 -0
  172. package/dist/cjs/components/Select/MultiSelectValue.module.css.cjs +11 -0
  173. package/dist/cjs/components/Select/MultiSelectValue.module.css.cjs.map +1 -0
  174. package/dist/cjs/components/Select/SingleSelectValue.cjs +3 -5
  175. package/dist/cjs/components/Select/SingleSelectValue.cjs.map +1 -1
  176. package/dist/cjs/components/Select/SingleSelectValue.css +10 -0
  177. package/dist/cjs/components/Select/SingleSelectValue.module.css.cjs +10 -0
  178. package/dist/cjs/components/Select/SingleSelectValue.module.css.cjs.map +1 -0
  179. package/dist/cjs/components/Select/common/InternalSelect.cjs +18 -23
  180. package/dist/cjs/components/Select/common/InternalSelect.cjs.map +1 -1
  181. package/dist/cjs/components/Select/common/SelectComponents.cjs +110 -0
  182. package/dist/cjs/components/Select/common/SelectComponents.cjs.map +1 -0
  183. package/dist/cjs/components/Select/common/SelectComponents.css +296 -0
  184. package/dist/cjs/components/Select/common/SelectComponents.module.css.cjs +31 -0
  185. package/dist/cjs/components/Select/common/SelectComponents.module.css.cjs.map +1 -0
  186. package/dist/cjs/components/SplitButton/SplitButton.css +138 -0
  187. package/dist/cjs/components/SplitButton/SplitButton.module.css.cjs +19 -0
  188. package/dist/cjs/components/SplitButton/SplitButton.module.css.cjs.map +1 -0
  189. package/dist/cjs/components/SplitButton/index.cjs +43 -88
  190. package/dist/cjs/components/SplitButton/index.cjs.map +1 -1
  191. package/dist/cjs/components/Table/Table.css +375 -0
  192. package/dist/cjs/components/Table/Table.module.css.cjs +86 -0
  193. package/dist/cjs/components/Table/Table.module.css.cjs.map +1 -0
  194. package/dist/cjs/components/Table/index.cjs +132 -214
  195. package/dist/cjs/components/Table/index.cjs.map +1 -1
  196. package/dist/cjs/components/Toast/Toast.css +142 -0
  197. package/dist/cjs/components/Toast/Toast.module.css.cjs +38 -0
  198. package/dist/cjs/components/Toast/Toast.module.css.cjs.map +1 -0
  199. package/dist/cjs/components/Toast/index.cjs +43 -96
  200. package/dist/cjs/components/Toast/index.cjs.map +1 -1
  201. package/dist/cjs/components/Tooltip/Tooltip.css +17 -0
  202. package/dist/cjs/components/Tooltip/Tooltip.module.css.cjs +15 -0
  203. package/dist/cjs/components/Tooltip/Tooltip.module.css.cjs.map +1 -0
  204. package/dist/cjs/components/Tooltip/index.cjs +12 -24
  205. package/dist/cjs/components/Tooltip/index.cjs.map +1 -1
  206. package/dist/cjs/components/VerticalStepper/VerticalStepper.css +302 -0
  207. package/dist/cjs/components/VerticalStepper/VerticalStepper.module.css.cjs +84 -0
  208. package/dist/cjs/components/VerticalStepper/VerticalStepper.module.css.cjs.map +1 -0
  209. package/dist/cjs/components/VerticalStepper/index.cjs +85 -110
  210. package/dist/cjs/components/VerticalStepper/index.cjs.map +1 -1
  211. package/dist/esm/click-ui.css +3521 -236
  212. package/dist/esm/components/Alert/index.js +2 -2
  213. package/dist/esm/components/Alert/index.js.map +1 -1
  214. package/dist/esm/components/Assets/Logos/Polaris.js +18 -0
  215. package/dist/esm/components/Assets/Logos/Polaris.js.map +1 -0
  216. package/dist/esm/components/Assets/Logos/system/LogosDark.js +2 -0
  217. package/dist/esm/components/Assets/Logos/system/LogosDark.js.map +1 -1
  218. package/dist/esm/components/Assets/Logos/system/LogosLight.js +2 -0
  219. package/dist/esm/components/Assets/Logos/system/LogosLight.js.map +1 -1
  220. package/dist/esm/components/AutoComplete/AutoComplete.css +97 -0
  221. package/dist/esm/components/AutoComplete/AutoComplete.module.css.js +14 -0
  222. package/dist/esm/components/AutoComplete/AutoComplete.module.css.js.map +1 -0
  223. package/dist/esm/components/AutoComplete/index.js +15 -75
  224. package/dist/esm/components/AutoComplete/index.js.map +1 -1
  225. package/dist/esm/components/BigStat/BigStat.css +77 -0
  226. package/dist/esm/components/BigStat/BigStat.module.css.js +18 -0
  227. package/dist/esm/components/BigStat/BigStat.module.css.js.map +1 -0
  228. package/dist/esm/components/BigStat/index.js +60 -52
  229. package/dist/esm/components/BigStat/index.js.map +1 -1
  230. package/dist/esm/components/Button/BaseButton.css +40 -0
  231. package/dist/esm/components/Button/BaseButton.js +11 -32
  232. package/dist/esm/components/Button/BaseButton.js.map +1 -1
  233. package/dist/esm/components/Button/BaseButton.module.css.js +6 -0
  234. package/dist/esm/components/Button/BaseButton.module.css.js.map +1 -0
  235. package/dist/esm/components/ButtonGroup/index.js +1 -1
  236. package/dist/esm/components/ButtonGroup/index.js.map +1 -1
  237. package/dist/esm/components/CardPromotion/CardPromotion.css +52 -0
  238. package/dist/esm/components/CardPromotion/CardPromotion.module.css.js +13 -0
  239. package/dist/esm/components/CardPromotion/CardPromotion.module.css.js.map +1 -0
  240. package/dist/esm/components/CardPromotion/index.js +8 -54
  241. package/dist/esm/components/CardPromotion/index.js.map +1 -1
  242. package/dist/esm/components/CardSecondary/CardSecondary.css +99 -0
  243. package/dist/esm/components/CardSecondary/CardSecondary.module.css.js +25 -0
  244. package/dist/esm/components/CardSecondary/CardSecondary.module.css.js.map +1 -0
  245. package/dist/esm/components/CardSecondary/index.js +35 -84
  246. package/dist/esm/components/CardSecondary/index.js.map +1 -1
  247. package/dist/esm/components/CodeBlock/CodeBlock.css +48 -0
  248. package/dist/esm/components/CodeBlock/CodeBlock.module.css.js +14 -0
  249. package/dist/esm/components/CodeBlock/CodeBlock.module.css.js.map +1 -0
  250. package/dist/esm/components/CodeBlock/InlineCodeBlock.css +10 -0
  251. package/dist/esm/components/CodeBlock/InlineCodeBlock.js +7 -14
  252. package/dist/esm/components/CodeBlock/InlineCodeBlock.js.map +1 -1
  253. package/dist/esm/components/CodeBlock/InlineCodeBlock.module.css.js +7 -0
  254. package/dist/esm/components/CodeBlock/InlineCodeBlock.module.css.js.map +1 -0
  255. package/dist/esm/components/CodeBlock/index.js +20 -51
  256. package/dist/esm/components/CodeBlock/index.js.map +1 -1
  257. package/dist/esm/components/CodeBlock/useColorStyle.js +14 -1
  258. package/dist/esm/components/CodeBlock/useColorStyle.js.map +1 -1
  259. package/dist/esm/components/ConfirmationDialog/ConfirmationDialog.css +20 -0
  260. package/dist/esm/components/ConfirmationDialog/ConfirmationDialog.module.css.js +9 -0
  261. package/dist/esm/components/ConfirmationDialog/ConfirmationDialog.module.css.js.map +1 -0
  262. package/dist/esm/components/ConfirmationDialog/index.js +6 -11
  263. package/dist/esm/components/ConfirmationDialog/index.js.map +1 -1
  264. package/dist/esm/components/ContextMenu/ContextMenu.css +40 -0
  265. package/dist/esm/components/ContextMenu/ContextMenu.module.css.js +11 -0
  266. package/dist/esm/components/ContextMenu/ContextMenu.module.css.js.map +1 -0
  267. package/dist/esm/components/ContextMenu/index.js +34 -48
  268. package/dist/esm/components/ContextMenu/index.js.map +1 -1
  269. package/dist/esm/components/CrossButton/CrossButton.css +12 -0
  270. package/dist/esm/components/CrossButton/CrossButton.module.css.js +6 -0
  271. package/dist/esm/components/CrossButton/CrossButton.module.css.js.map +1 -0
  272. package/dist/esm/components/CrossButton/index.js +11 -14
  273. package/dist/esm/components/CrossButton/index.js.map +1 -1
  274. package/dist/esm/components/DatePicker/Common.js +1 -1
  275. package/dist/esm/components/DatePicker/Common.js.map +1 -1
  276. package/dist/esm/components/DatePicker/DateTimeRangePicker.js +1 -1
  277. package/dist/esm/components/DatePicker/DateTimeRangePicker.js.map +1 -1
  278. package/dist/esm/components/Dropdown/Dropdown.css +36 -0
  279. package/dist/esm/components/Dropdown/Dropdown.module.css.js +9 -0
  280. package/dist/esm/components/Dropdown/Dropdown.module.css.js.map +1 -0
  281. package/dist/esm/components/Dropdown/index.js +28 -33
  282. package/dist/esm/components/Dropdown/index.js.map +1 -1
  283. package/dist/esm/components/EllipsisContent/EllipsisContent.css +21 -0
  284. package/dist/esm/components/EllipsisContent/EllipsisContent.module.css.js +6 -0
  285. package/dist/esm/components/EllipsisContent/EllipsisContent.module.css.js.map +1 -0
  286. package/dist/esm/components/EllipsisContent/index.js +7 -6
  287. package/dist/esm/components/EllipsisContent/index.js.map +1 -1
  288. package/dist/esm/components/EmptyButton/EmptyButton.css +21 -0
  289. package/dist/esm/components/EmptyButton/EmptyButton.module.css.js +6 -0
  290. package/dist/esm/components/EmptyButton/EmptyButton.module.css.js.map +1 -0
  291. package/dist/esm/components/EmptyButton/index.js +10 -4
  292. package/dist/esm/components/EmptyButton/index.js.map +1 -1
  293. package/dist/esm/components/FileTabs/FileTabs.css +167 -0
  294. package/dist/esm/components/FileTabs/FileTabs.module.css.js +26 -0
  295. package/dist/esm/components/FileTabs/FileTabs.module.css.js.map +1 -0
  296. package/dist/esm/components/FileTabs/index.js +51 -80
  297. package/dist/esm/components/FileTabs/index.js.map +1 -1
  298. package/dist/esm/components/FileUpload/FileMultiUpload.css +8 -0
  299. package/dist/esm/components/FileUpload/FileMultiUpload.js +3 -9
  300. package/dist/esm/components/FileUpload/FileMultiUpload.js.map +1 -1
  301. package/dist/esm/components/FileUpload/FileMultiUpload.module.css.js +6 -0
  302. package/dist/esm/components/FileUpload/FileMultiUpload.module.css.js.map +1 -0
  303. package/dist/esm/components/FileUpload/FileUpload.stories-common.css +14 -0
  304. package/dist/esm/components/FileUpload/FileUploadArea.css +130 -0
  305. package/dist/esm/components/FileUpload/FileUploadArea.js +87 -64
  306. package/dist/esm/components/FileUpload/FileUploadArea.js.map +1 -1
  307. package/dist/esm/components/FileUpload/FileUploadArea.module.css.js +32 -0
  308. package/dist/esm/components/FileUpload/FileUploadArea.module.css.js.map +1 -0
  309. package/dist/esm/components/FileUpload/FileUploadItem.css +82 -0
  310. package/dist/esm/components/FileUpload/FileUploadItem.js +56 -64
  311. package/dist/esm/components/FileUpload/FileUploadItem.js.map +1 -1
  312. package/dist/esm/components/FileUpload/FileUploadItem.module.css.js +21 -0
  313. package/dist/esm/components/FileUpload/FileUploadItem.module.css.js.map +1 -0
  314. package/dist/esm/components/Flyout/Flyout.css +231 -0
  315. package/dist/esm/components/Flyout/Flyout.module.css.js +62 -0
  316. package/dist/esm/components/Flyout/Flyout.module.css.js.map +1 -0
  317. package/dist/esm/components/Flyout/index.js +149 -127
  318. package/dist/esm/components/Flyout/index.js.map +1 -1
  319. package/dist/esm/components/FormContainer/Error.css +4 -0
  320. package/dist/esm/components/FormContainer/Error.js +8 -9
  321. package/dist/esm/components/FormContainer/Error.js.map +1 -1
  322. package/dist/esm/components/FormContainer/Error.module.css.js +7 -0
  323. package/dist/esm/components/FormContainer/Error.module.css.js.map +1 -0
  324. package/dist/esm/components/FormContainer/FormElementContainer.css +14 -0
  325. package/dist/esm/components/FormContainer/FormElementContainer.js +8 -6
  326. package/dist/esm/components/FormContainer/FormElementContainer.js.map +1 -1
  327. package/dist/esm/components/FormContainer/FormElementContainer.module.css.js +6 -0
  328. package/dist/esm/components/FormContainer/FormElementContainer.module.css.js.map +1 -0
  329. package/dist/esm/components/FormContainer/FormRoot.css +33 -0
  330. package/dist/esm/components/FormContainer/FormRoot.js +32 -18
  331. package/dist/esm/components/FormContainer/FormRoot.js.map +1 -1
  332. package/dist/esm/components/FormContainer/FormRoot.module.css.js +11 -0
  333. package/dist/esm/components/FormContainer/FormRoot.module.css.js.map +1 -0
  334. package/dist/esm/components/GenericMenu/GenericMenu.css +176 -0
  335. package/dist/esm/components/GenericMenu/GenericMenu.module.css.js +18 -0
  336. package/dist/esm/components/GenericMenu/GenericMenu.module.css.js.map +1 -0
  337. package/dist/esm/components/GenericMenu/index.js +93 -99
  338. package/dist/esm/components/GenericMenu/index.js.map +1 -1
  339. package/dist/esm/components/GridCenter/GridCenter.css +6 -0
  340. package/dist/esm/components/GridContainer/GridContainer.css +71 -0
  341. package/dist/esm/components/GridContainer/GridContainer.module.css.js +8 -0
  342. package/dist/esm/components/GridContainer/GridContainer.module.css.js.map +1 -0
  343. package/dist/esm/components/GridContainer/index.js +65 -65
  344. package/dist/esm/components/GridContainer/index.js.map +1 -1
  345. package/dist/esm/components/HoverCard/index.js +1 -1
  346. package/dist/esm/components/HoverCard/index.js.map +1 -1
  347. package/dist/esm/components/IconButton/index.js +2 -1
  348. package/dist/esm/components/IconButton/index.js.map +1 -1
  349. package/dist/esm/components/InputWrapper/InputWrapper.css +221 -0
  350. package/dist/esm/components/InputWrapper/InputWrapper.module.css.js +27 -0
  351. package/dist/esm/components/InputWrapper/InputWrapper.module.css.js.map +1 -0
  352. package/dist/esm/components/InputWrapper/index.js +84 -185
  353. package/dist/esm/components/InputWrapper/index.js.map +1 -1
  354. package/dist/esm/components/MiddleTruncator/MiddleTruncator.css +22 -0
  355. package/dist/esm/components/MiddleTruncator/MiddleTruncator.module.css.js +11 -0
  356. package/dist/esm/components/MiddleTruncator/MiddleTruncator.module.css.js.map +1 -0
  357. package/dist/esm/components/MiddleTruncator/index.js +5 -17
  358. package/dist/esm/components/MiddleTruncator/index.js.map +1 -1
  359. package/dist/esm/components/Pagination/Pagination.css +7 -0
  360. package/dist/esm/components/Pagination/Pagination.module.css.js +6 -0
  361. package/dist/esm/components/Pagination/Pagination.module.css.js.map +1 -0
  362. package/dist/esm/components/Pagination/index.js +3 -5
  363. package/dist/esm/components/Pagination/index.js.map +1 -1
  364. package/dist/esm/components/Panel/Panel.css +116 -0
  365. package/dist/esm/components/Panel/Panel.module.css.js +58 -0
  366. package/dist/esm/components/Panel/Panel.module.css.js.map +1 -0
  367. package/dist/esm/components/Panel/index.js +85 -35
  368. package/dist/esm/components/Panel/index.js.map +1 -1
  369. package/dist/esm/components/Popover/Popover.css +32 -0
  370. package/dist/esm/components/Popover/Popover.module.css.js +10 -0
  371. package/dist/esm/components/Popover/Popover.module.css.js.map +1 -0
  372. package/dist/esm/components/Popover/index.js +27 -36
  373. package/dist/esm/components/Popover/index.js.map +1 -1
  374. package/dist/esm/components/RadioGroup/RadioGroup.css +99 -0
  375. package/dist/esm/components/RadioGroup/RadioGroup.module.css.js +13 -0
  376. package/dist/esm/components/RadioGroup/RadioGroup.module.css.js.map +1 -0
  377. package/dist/esm/components/RadioGroup/index.js +28 -77
  378. package/dist/esm/components/RadioGroup/index.js.map +1 -1
  379. package/dist/esm/components/Select/MultiSelectValue.css +19 -0
  380. package/dist/esm/components/Select/MultiSelectValue.js +4 -9
  381. package/dist/esm/components/Select/MultiSelectValue.js.map +1 -1
  382. package/dist/esm/components/Select/MultiSelectValue.module.css.js +7 -0
  383. package/dist/esm/components/Select/MultiSelectValue.module.css.js.map +1 -0
  384. package/dist/esm/components/Select/SingleSelectValue.css +10 -0
  385. package/dist/esm/components/Select/SingleSelectValue.js +3 -5
  386. package/dist/esm/components/Select/SingleSelectValue.js.map +1 -1
  387. package/dist/esm/components/Select/SingleSelectValue.module.css.js +6 -0
  388. package/dist/esm/components/Select/SingleSelectValue.module.css.js.map +1 -0
  389. package/dist/esm/components/Select/common/InternalSelect.js +4 -9
  390. package/dist/esm/components/Select/common/InternalSelect.js.map +1 -1
  391. package/dist/esm/components/Select/common/SelectComponents.css +296 -0
  392. package/dist/esm/components/Select/common/SelectComponents.js +92 -0
  393. package/dist/esm/components/Select/common/SelectComponents.js.map +1 -0
  394. package/dist/esm/components/Select/common/SelectComponents.module.css.js +27 -0
  395. package/dist/esm/components/Select/common/SelectComponents.module.css.js.map +1 -0
  396. package/dist/esm/components/SplitButton/SplitButton.css +138 -0
  397. package/dist/esm/components/SplitButton/SplitButton.module.css.js +15 -0
  398. package/dist/esm/components/SplitButton/SplitButton.module.css.js.map +1 -0
  399. package/dist/esm/components/SplitButton/index.js +44 -89
  400. package/dist/esm/components/SplitButton/index.js.map +1 -1
  401. package/dist/esm/components/Table/Table.css +375 -0
  402. package/dist/esm/components/Table/Table.module.css.js +63 -0
  403. package/dist/esm/components/Table/Table.module.css.js.map +1 -0
  404. package/dist/esm/components/Table/index.js +132 -214
  405. package/dist/esm/components/Table/index.js.map +1 -1
  406. package/dist/esm/components/Toast/Toast.css +142 -0
  407. package/dist/esm/components/Toast/Toast.module.css.js +26 -0
  408. package/dist/esm/components/Toast/Toast.module.css.js.map +1 -0
  409. package/dist/esm/components/Toast/index.js +43 -96
  410. package/dist/esm/components/Toast/index.js.map +1 -1
  411. package/dist/esm/components/Tooltip/Tooltip.css +17 -0
  412. package/dist/esm/components/Tooltip/Tooltip.module.css.js +9 -0
  413. package/dist/esm/components/Tooltip/Tooltip.module.css.js.map +1 -0
  414. package/dist/esm/components/Tooltip/index.js +12 -24
  415. package/dist/esm/components/Tooltip/index.js.map +1 -1
  416. package/dist/esm/components/VerticalStepper/VerticalStepper.css +302 -0
  417. package/dist/esm/components/VerticalStepper/VerticalStepper.module.css.js +55 -0
  418. package/dist/esm/components/VerticalStepper/VerticalStepper.module.css.js.map +1 -0
  419. package/dist/esm/components/VerticalStepper/index.js +85 -110
  420. package/dist/esm/components/VerticalStepper/index.js.map +1 -1
  421. package/dist/types/components/Assets/Logos/Polaris.d.ts +3 -0
  422. package/dist/types/components/Assets/Logos/system/types.d.ts +1 -1
  423. package/dist/types/components/AutoComplete/AutoComplete.d.ts +1 -1
  424. package/dist/types/components/BigStat/BigStat.d.ts +1 -1
  425. package/dist/types/components/Button/BaseButton.d.ts +2 -1
  426. package/dist/types/components/CardPromotion/CardPromotion.d.ts +1 -1
  427. package/dist/types/components/CardSecondary/CardSecondary.d.ts +1 -1
  428. package/dist/types/components/CodeBlock/CodeBlock.d.ts +1 -1
  429. package/dist/types/components/CodeBlock/InlineCodeBlock.d.ts +1 -1
  430. package/dist/types/components/CodeBlock/useColorStyle.d.ts +6 -112
  431. package/dist/types/components/ConfirmationDialog/ConfirmationDialog.d.ts +1 -1
  432. package/dist/types/components/ContextMenu/ContextMenu.d.ts +1 -1
  433. package/dist/types/components/CrossButton/CrossButton.d.ts +2 -3
  434. package/dist/types/components/Dropdown/Dropdown.d.ts +2 -2
  435. package/dist/types/components/EmptyButton/EmptyButton.d.ts +2 -1
  436. package/dist/types/components/FileTabs/FileTabs.d.ts +3 -3
  437. package/dist/types/components/FileUpload/FileUpload.stories-common.d.ts +4 -1
  438. package/dist/types/components/Flyout/Flyout.d.ts +8 -6
  439. package/dist/types/components/Flyout/Flyout.types.d.ts +3 -0
  440. package/dist/types/components/FormContainer/Error.d.ts +2 -1
  441. package/dist/types/components/FormContainer/FormElementContainer.d.ts +2 -1
  442. package/dist/types/components/FormContainer/FormRoot.d.ts +6 -4
  443. package/dist/types/components/GenericMenu/GenericMenu.d.ts +29 -12
  444. package/dist/types/components/GridCenter/GridCenter.d.ts +9 -1
  445. package/dist/types/components/IconButton/IconButton.types.d.ts +3 -0
  446. package/dist/types/components/InputWrapper/InputWrapper.d.ts +17 -13
  447. package/dist/types/components/Panel/Panel.d.ts +2 -39
  448. package/dist/types/components/RadioGroup/RadioGroup.d.ts +2 -2
  449. package/dist/types/components/Select/common/SelectComponents.d.ts +33 -0
  450. package/dist/types/components/SplitButton/SplitButton.d.ts +1 -1
  451. package/dist/types/components/SplitButton/SplitButton.types.d.ts +3 -0
  452. package/dist/types/components/Toast/Toast.d.ts +1 -1
  453. package/dist/types/components/Tooltip/Tooltip.d.ts +1 -1
  454. package/dist/types/components/VerticalStepper/VerticalStepper.d.ts +2 -2
  455. package/package.json +1 -1
  456. package/dist/cjs/components/Select/common/SelectStyled.cjs +0 -194
  457. package/dist/cjs/components/Select/common/SelectStyled.cjs.map +0 -1
  458. package/dist/esm/components/Select/common/SelectStyled.js +0 -176
  459. package/dist/esm/components/Select/common/SelectStyled.js.map +0 -1
  460. package/dist/types/components/Select/common/SelectStyled.d.ts +0 -34
@@ -0,0 +1,6 @@
1
+ const styles = {
2
+ "empty-button": "empty-button__1ynA8"
3
+ };
4
+
5
+ export { styles as default };
6
+ //# sourceMappingURL=EmptyButton.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmptyButton.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -1,8 +1,14 @@
1
- import { styled } from 'styled-components';
1
+ import "./EmptyButton.css";
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { forwardRef } from 'react';
4
+ import { cn } from '../../lib/cva.js';
5
+ import styles from './EmptyButton.module.css.js';
2
6
 
3
- const EmptyButton = styled.button.withConfig({
4
- componentId: "sc-1noms58-0"
5
- })(["background:transparent;border:none;cursor:pointer;outline:none;padding:0;border:0;color:inherit;font:inherit;&:disabled{cursor:not-allowed;}"]);
7
+ const EmptyButton = forwardRef(({
8
+ className,
9
+ ...props
10
+ }, ref) => /* @__PURE__ */ jsx("button", { ref, ...props, className: cn(styles["empty-button"], className) }));
11
+ EmptyButton.displayName = "EmptyButton";
6
12
 
7
13
  export { EmptyButton };
8
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/EmptyButton/EmptyButton.tsx"],"sourcesContent":["import { styled } from 'styled-components';\n\nexport const EmptyButton = styled.button`\n background: transparent;\n border: none;\n cursor: pointer;\n outline: none;\n padding: 0;\n border: 0;\n color: inherit;\n font: inherit;\n &:disabled {\n cursor: not-allowed;\n }\n`;\n"],"names":["EmptyButton","styled","button","withConfig","componentId"],"mappings":";;AAEO,MAAMA,WAAAA,GAAcC,MAAAA,CAAOC,MAAAA,CAAMC,UAAAA,CAAA;AAAA,EAAAC,WAAAA,EAAA;AAAA,CAAA,CAAA,CAAA,CAAA,8IAAA,CAAA;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/EmptyButton/EmptyButton.tsx"],"sourcesContent":["import { ButtonHTMLAttributes, forwardRef } from 'react';\nimport { cn } from '@/lib/cva';\nimport styles from './EmptyButton.module.css';\n\nexport const EmptyButton = forwardRef<\n HTMLButtonElement,\n ButtonHTMLAttributes<HTMLButtonElement>\n>(({ className, ...props }, ref) => (\n <button\n ref={ref}\n {...props}\n className={cn(styles['empty-button'], className)}\n />\n));\n\nEmptyButton.displayName = 'EmptyButton';\n"],"names":["EmptyButton","forwardRef","className","props","ref","cn","styles","displayName"],"mappings":";;;;;AAIO,MAAMA,WAAAA,GAAcC,WAGzB,CAAC;AAAA,EAAEC,SAAAA;AAAAA,EAAW,GAAGC;AAAM,CAAA,EAAGC,GAAAA,qBAC1B,GAAA,CAAC,QAAA,EAAA,EACC,GAAA,KACID,KAAAA,EACJ,SAAA,EAAWE,EAAAA,CAAGC,MAAAA,CAAO,cAAc,CAAA,EAAGJ,SAAS,IAElD;AAEDF,WAAAA,CAAYO,WAAAA,GAAc,aAAA;;;;"}
@@ -0,0 +1,167 @@
1
+ /* stylelint-disable custom-property-pattern -- design tokens use camelCase (e.g. fileTabs) */
2
+ .tabs__jY99b {
3
+ display: flex;
4
+ position: relative;
5
+ max-width: var(--file-tabs-count-width);
6
+ overflow: auto;
7
+ /* stylelint-disable plugin/no-unsupported-browser-features, declaration-property-value-no-unknown -- preserves the styled-components original verbatim; the invalid scrollbar-width value is ignored by browsers and the scrollbar is hidden via the ::-webkit-scrollbar rule below */
8
+ overscroll-behavior: none;
9
+ scrollbar-width: 0;
10
+ /* stylelint-enable plugin/no-unsupported-browser-features, declaration-property-value-no-unknown */
11
+ }
12
+
13
+ .tabs__jY99b::-webkit-scrollbar {
14
+ height: 0;
15
+ }
16
+
17
+ .tabs-sortable__7e-D1 {
18
+ display: flex;
19
+ }
20
+
21
+ .tabs-sortable__7e-D1 > div {
22
+ width: clamp(100px, 100%, 200px);
23
+ min-width: 100px;
24
+ height: 100%;
25
+ outline: none;
26
+ }
27
+
28
+ .tabs-sortable__7e-D1 > div.sortable-ghost__1JlRB {
29
+ opacity: 0;
30
+ }
31
+
32
+ .tab__Fud6d {
33
+ display: grid;
34
+ box-sizing: border-box;
35
+ max-width: 100%;
36
+ /* stylelint-disable plugin/no-unsupported-browser-features, declaration-property-value-no-unknown -- the original rule used this same width fallback chain (100% → -webkit-fill-available → fill-available → stretch) so the tab fills the available inline space */
37
+ max-width: -webkit-fill-available;
38
+ max-width: fill-available;
39
+ max-width: stretch;
40
+ /* stylelint-enable plugin/no-unsupported-browser-features, declaration-property-value-no-unknown */
41
+ height: 100%;
42
+ max-height: 100%;
43
+ padding: var(--click-tabs-fileTabs-space-y) var(--click-tabs-fileTabs-space-x);
44
+ justify-content: flex-start;
45
+ align-items: center;
46
+ gap: var(--click-tabs-fileTabs-space-gap);
47
+ grid-template-columns: 1fr;
48
+ border: none;
49
+ border-right: 1px solid var(--click-tabs-fileTabs-color-stroke-default);
50
+ border-radius: var(--click-tabs-fileTabs-radii-all);
51
+ background: var(--click-tabs-fileTabs-color-background-default);
52
+ color: var(--click-tabs-fileTabs-color-text-default);
53
+ font: var(--click-tabs-fileTabs-typography-label-default);
54
+ outline: none;
55
+ cursor: pointer;
56
+ }
57
+
58
+ .tab__Fud6d svg,
59
+ .tab__Fud6d [data-indicator] {
60
+ width: var(--click-tabs-fileTabs-icon-size-width);
61
+ height: var(--click-tabs-fileTabs-icon-size-height);
62
+ }
63
+
64
+ .tab__Fud6d [data-type='close'] {
65
+ display: none;
66
+ }
67
+
68
+ .tab__Fud6d [data-indicator] {
69
+ display: block;
70
+ }
71
+
72
+ .tab__Fud6d:hover [data-type='close'] {
73
+ display: block;
74
+ }
75
+
76
+ .tab__Fud6d:hover [data-indicator] {
77
+ display: none;
78
+ }
79
+
80
+ .tab_active__nqwS6 {
81
+ border-right: 1px solid var(--click-tabs-fileTabs-color-stroke-active);
82
+ background: var(--click-tabs-fileTabs-color-background-active);
83
+ color: var(--click-tabs-fileTabs-color-text-active);
84
+ font: var(--click-tabs-fileTabs-typography-label-active);
85
+ }
86
+
87
+ .tab_inactive__tflkU:hover {
88
+ border-right: 1px solid var(--click-tabs-fileTabs-color-stroke-hover);
89
+ background: var(--click-tabs-fileTabs-color-background-hover);
90
+ color: var(--click-tabs-fileTabs-color-text-hover);
91
+ font: var(--click-tabs-fileTabs-typography-label-hover);
92
+ }
93
+
94
+ .tab_full-width__sU4rf {
95
+ width: 100%;
96
+ }
97
+
98
+ .tab_fixed__S0Bwz {
99
+ width: auto;
100
+ }
101
+
102
+ .tab_preview__FR-Q6 {
103
+ font-style: italic;
104
+ }
105
+
106
+ .tab_dismissable__ud86m {
107
+ grid-template-columns: 1fr var(--click-tabs-fileTabs-icon-size-width);
108
+ }
109
+
110
+ .indicator__ZD0YM {
111
+ position: relative;
112
+ }
113
+
114
+ .indicator__ZD0YM::after {
115
+ content: '';
116
+ position: absolute;
117
+ top: 0.25rem;
118
+ left: 0.25rem;
119
+ width: 0.5rem;
120
+ height: 0.5rem;
121
+ border-radius: 50%;
122
+ background: transparent;
123
+ }
124
+
125
+ .indicator__ZD0YM[data-indicator='success']::after {
126
+ background: var(--click-alert-color-text-success);
127
+ }
128
+
129
+ .indicator__ZD0YM[data-indicator='neutral']::after {
130
+ background: var(--click-alert-color-text-neutral);
131
+ }
132
+
133
+ .indicator__ZD0YM[data-indicator='danger']::after {
134
+ background: var(--click-alert-color-text-danger);
135
+ }
136
+
137
+ .indicator__ZD0YM[data-indicator='warning']::after {
138
+ background: var(--click-alert-color-text-warning);
139
+ }
140
+
141
+ .indicator__ZD0YM[data-indicator='info']::after {
142
+ background: var(--click-alert-color-text-info);
143
+ }
144
+
145
+ .tab-content__JX6iV {
146
+ display: flex;
147
+ overflow: hidden;
148
+ flex-wrap: nowrap;
149
+ justify-content: flex-start;
150
+ align-items: center;
151
+ gap: var(--click-tabs-fileTabs-space-gap);
152
+ }
153
+
154
+ .tab-content-text__zXnlM {
155
+ display: inline-block;
156
+ overflow: hidden;
157
+ white-space: nowrap;
158
+ text-overflow: ellipsis;
159
+ }
160
+
161
+ .empty-button__czm-t {
162
+ padding: 0;
163
+ }
164
+
165
+ .empty-button__czm-t:hover {
166
+ background: var(--click-tabs-fileTabs-color-closeButton-background-hover);
167
+ }
@@ -0,0 +1,26 @@
1
+ const tabs = "tabs__jY99b";
2
+ const tab = "tab__Fud6d";
3
+ const tab_active = "tab_active__nqwS6";
4
+ const tab_inactive = "tab_inactive__tflkU";
5
+ const tab_fixed = "tab_fixed__S0Bwz";
6
+ const tab_preview = "tab_preview__FR-Q6";
7
+ const tab_dismissable = "tab_dismissable__ud86m";
8
+ const indicator = "indicator__ZD0YM";
9
+ const styles = {
10
+ tabs: tabs,
11
+ "tabs-sortable": "tabs-sortable__7e-D1",
12
+ tab: tab,
13
+ tab_active: tab_active,
14
+ tab_inactive: tab_inactive,
15
+ "tab_full-width": "tab_full-width__sU4rf",
16
+ tab_fixed: tab_fixed,
17
+ tab_preview: tab_preview,
18
+ tab_dismissable: tab_dismissable,
19
+ indicator: indicator,
20
+ "tab-content": "tab-content__JX6iV",
21
+ "tab-content-text": "tab-content-text__zXnlM",
22
+ "empty-button": "empty-button__czm-t"
23
+ };
24
+
25
+ export { styles as default, indicator, tab, tab_active, tab_dismissable, tab_fixed, tab_inactive, tab_preview, tabs };
26
+ //# sourceMappingURL=FileTabs.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileTabs.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,21 +1,16 @@
1
+ import "./FileTabs.css";
1
2
  import { jsx, jsxs } from 'react/jsx-runtime';
2
3
  import { useRef, useState, Children, useEffect, createContext, useContext } from 'react';
3
- import { styled } from 'styled-components';
4
+ import { cn } from '../../lib/cva.js';
5
+ import styles from './FileTabs.module.css.js';
4
6
  import ReactSortableModule from 'react-sortablejs/dist/index.js';
5
7
  import { Icon as SvgImage } from '../Icon/index.js';
6
8
  import { IconButton } from '../IconButton/index.js';
9
+ import { cva } from 'class-variance-authority';
7
10
 
8
11
  const {
9
12
  ReactSortable
10
13
  } = ReactSortableModule;
11
- const TabsContainer = styled.div.withConfig({
12
- componentId: "sc-137ymle-0"
13
- })(["display:flex;position:relative;overflow:auto;overscroll-behavior:none;scrollbar-width:0;max-width:", ";&::-webkit-scrollbar{height:0;}"], ({
14
- $count
15
- }) => `${$count * 200}px`);
16
- const TabsSortableContainer = styled(ReactSortable).withConfig({
17
- componentId: "sc-137ymle-1"
18
- })(["display:flex;& > div{height:100%;outline:none;min-width:100px;width:clamp(100px,100%,200px);&.sortable-ghost{opacity:0;}}"]);
19
14
  const TabContext = createContext({
20
15
  selectedIndex: void 0,
21
16
  onClose: () => null
@@ -38,6 +33,7 @@ const FileTabs = ({
38
33
  onEnd,
39
34
  direction,
40
35
  group,
36
+ className,
41
37
  ...props
42
38
  }) => {
43
39
  const ref = useRef(null);
@@ -68,10 +64,12 @@ const FileTabs = ({
68
64
  ref.current.scrollLeft += evt.deltaY;
69
65
  }
70
66
  };
71
- return /* @__PURE__ */ jsx(TabContext.Provider, { value, children: /* @__PURE__ */ jsx(TabsContainer, { ref, onWheel, role: "tablist", onScroll: (e) => {
67
+ return /* @__PURE__ */ jsx(TabContext.Provider, { value, children: /* @__PURE__ */ jsx("div", { ref, onWheel, role: "tablist", onScroll: (e) => {
72
68
  e.preventDefault();
73
69
  e.stopPropagation();
74
- }, $count: (listProp ?? list).length, children: /* @__PURE__ */ jsx(TabsSortableContainer, { direction: direction ?? "horizontal", group: group ?? "tabbar", list: listProp ?? list, setList: setListProp ?? setList, onEnd: (evt, sortable, store) => {
70
+ }, className: styles.tabs, style: {
71
+ "--file-tabs-count-width": `${(listProp ?? list).length * 200}px`
72
+ }, children: /* @__PURE__ */ jsx(ReactSortable, { direction: direction ?? "horizontal", group: group ?? "tabbar", list: listProp ?? list, setList: setListProp ?? setList, onEnd: (evt, sortable, store) => {
75
73
  const {
76
74
  newDraggableIndex,
77
75
  oldDraggableIndex
@@ -82,70 +80,33 @@ const FileTabs = ({
82
80
  if (typeof onEnd === "function") {
83
81
  onEnd(evt, sortable, store);
84
82
  }
85
- }, revertOnSpill: true, ...props, children: Children.map(children, (child, index) => /* @__PURE__ */ jsx("div", { tabIndex: index + 1, role: "tab", onClick: onSelect(index), children: child }, `tab-element-${index}`)) }) }) });
83
+ }, revertOnSpill: true, ...props, className: cn(styles["tabs-sortable"], className), children: Children.map(children, (child, index) => /* @__PURE__ */ jsx("div", { tabIndex: index + 1, role: "tab", onClick: onSelect(index), children: child }, `tab-element-${index}`)) }) }) });
86
84
  };
87
- const TabElement = styled.div.withConfig({
88
- componentId: "sc-137ymle-2"
89
- })(["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;}}`], ({
90
- theme,
91
- $active,
92
- $preview,
93
- $dismissable,
94
- $fixedTabElement
95
- }) => `
96
- width:${$fixedTabElement ? "auto" : "100%"};
97
- grid-template-columns: 1fr ${$dismissable ? theme.click.tabs.fileTabs.icon.size.width : ""};
98
- padding: ${theme.click.tabs.fileTabs.space.y} ${theme.click.tabs.fileTabs.space.x};
99
- gap: ${theme.click.tabs.fileTabs.space.gap};
100
- border-radius: ${theme.click.tabs.fileTabs.radii.all};
101
- border-right: 1px solid ${theme.click.tabs.fileTabs.color.stroke.default};
102
- background: ${theme.click.tabs.fileTabs.color.background.default};
103
- color: ${theme.click.tabs.fileTabs.color.text.default};
104
- font: ${theme.click.tabs.fileTabs.typography.label.default};
105
- svg,
106
- [data-indicator] {
107
- height: ${theme.click.tabs.fileTabs.icon.size.height};
108
- width: ${theme.click.tabs.fileTabs.icon.size.width};
85
+ const tabVariants = cva(styles.tab, {
86
+ variants: {
87
+ active: {
88
+ true: styles.tab_active,
89
+ false: styles.tab_inactive
90
+ },
91
+ fixed: {
92
+ true: styles.tab_fixed,
93
+ false: styles["tab_full-width"]
94
+ },
95
+ preview: {
96
+ true: styles.tab_preview,
97
+ false: ""
98
+ },
99
+ dismissable: {
100
+ true: styles.tab_dismissable,
101
+ false: ""
109
102
  }
110
- ${$active ? `
111
- background: ${theme.click.tabs.fileTabs.color.background.active};
112
- color: ${theme.click.tabs.fileTabs.color.text.active};
113
- font: ${theme.click.tabs.fileTabs.typography.label.active};
114
- border-right: 1px solid ${theme.click.tabs.fileTabs.color.stroke.active};
115
- ` : `
116
- &:hover {
117
- background: ${theme.click.tabs.fileTabs.color.background.hover};
118
- color: ${theme.click.tabs.fileTabs.color.text.hover};
119
- font: ${theme.click.tabs.fileTabs.typography.label.hover};
120
- border-right: 1px solid ${theme.click.tabs.fileTabs.color.stroke.hover};
121
- }
122
- `}
123
- ${$preview === true ? "font-style: italic;" : ""}
124
- `);
125
- const Indicator = styled.div.withConfig({
126
- componentId: "sc-137ymle-3"
127
- })(["position:relative;&::after{position:absolute;left:0.25rem;top:0.25rem;content:'';width:0.5rem;height:0.5rem;", "}"], ({
128
- theme,
129
- $status
130
- }) => `
131
- background: ${$status === "default" ? "transparent" : theme.click.alert.color.text[$status]};
132
- border-radius: 50%;
133
- `);
134
- const TabContent = styled.div.withConfig({
135
- componentId: "sc-137ymle-4"
136
- })(["display:flex;justify-content:flex-start;align-items:center;flex-wrap:nowrap;overflow:hidden;gap:", ";"], ({
137
- theme
138
- }) => theme.click.tabs.fileTabs.space.gap);
139
- const TabContentText = styled.span.withConfig({
140
- componentId: "sc-137ymle-5"
141
- })(["display:inline-block;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;"]);
142
- const EmptyButton = styled.button.withConfig({
143
- componentId: "sc-137ymle-6"
144
- })(["padding:0;", ";&:hover{background:", ";}"], ({
145
- theme
146
- }) => theme.click.tabs.fileTabs.color.closeButton.background.default, ({
147
- theme
148
- }) => theme.click.tabs.fileTabs.color.closeButton.background.hover);
103
+ },
104
+ defaultVariants: {
105
+ fixed: false,
106
+ preview: false,
107
+ dismissable: false
108
+ }
109
+ });
149
110
  const Tab = ({
150
111
  text,
151
112
  index,
@@ -154,6 +115,7 @@ const Tab = ({
154
115
  status = "default",
155
116
  testId,
156
117
  preview,
118
+ className,
157
119
  ...props
158
120
  }) => {
159
121
  const {
@@ -175,13 +137,17 @@ const Tab = ({
175
137
  e.stopPropagation();
176
138
  onCloseProp(index);
177
139
  };
178
- return /* @__PURE__ */ jsxs(TabElement, { $active: selectedIndex === index, onMouseDown, "data-testid": testId ? `${testId}-${index}` : void 0, $preview: preview, $dismissable: true, ...props, children: [
179
- /* @__PURE__ */ jsxs(TabContent, { children: [
140
+ return /* @__PURE__ */ jsxs("div", { onMouseDown, "data-testid": testId ? `${testId}-${index}` : void 0, ...props, className: cn(tabVariants({
141
+ active: selectedIndex === index,
142
+ preview,
143
+ dismissable: true
144
+ }), className), children: [
145
+ /* @__PURE__ */ jsxs("div", { className: styles["tab-content"], children: [
180
146
  typeof icon === "string" ? /* @__PURE__ */ jsx(SvgImage, { name: icon }) : icon,
181
- /* @__PURE__ */ jsx(TabContentText, { children: text })
147
+ /* @__PURE__ */ jsx("span", { className: styles["tab-content-text"], children: text })
182
148
  ] }),
183
- /* @__PURE__ */ jsx(EmptyButton, { as: IconButton, icon: "cross", onClick: onClose, "data-type": "close", "data-testid": testId ? `${testId}-${index}-close` : void 0 }),
184
- /* @__PURE__ */ jsx(Indicator, { $status: status, "data-indicator": status, "data-testid": testId ? `${testId}-${index}-status` : void 0 })
149
+ /* @__PURE__ */ jsx(IconButton, { className: styles["empty-button"], htmlType: "button", icon: "cross", onClick: onClose, "data-type": "close", "data-testid": testId ? `${testId}-${index}-close` : void 0 }),
150
+ /* @__PURE__ */ jsx("div", { className: styles.indicator, "data-indicator": status, "data-testid": testId ? `${testId}-${index}-status` : void 0 })
185
151
  ] });
186
152
  };
187
153
  Tab.displayName = "FileTab";
@@ -191,11 +157,16 @@ const FileTabElement = ({
191
157
  children,
192
158
  active = false,
193
159
  preview,
160
+ className,
194
161
  ...props
195
162
  }) => {
196
- return /* @__PURE__ */ jsxs(TabElement, { $active: active, $preview: preview, $dismissable: false, $fixedTabElement: true, ...props, children: [
163
+ return /* @__PURE__ */ jsxs("div", { ...props, className: cn(tabVariants({
164
+ active,
165
+ preview,
166
+ fixed: true
167
+ }), className), children: [
197
168
  typeof icon === "string" ? /* @__PURE__ */ jsx(SvgImage, { name: icon }) : icon,
198
- children && /* @__PURE__ */ jsx(TabContentText, { children })
169
+ children && /* @__PURE__ */ jsx("span", { className: styles["tab-content-text"], children })
199
170
  ] });
200
171
  };
201
172
 
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","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 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","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","Icon","IconButton","displayName","FileTabElement"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","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","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","Icon","indicator","displayName","FileTabElement"],"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
+ }
@@ -1,17 +1,11 @@
1
+ import "./FileMultiUpload.css";
1
2
  import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
3
  import { useCallback } from 'react';
3
- import { styled } from 'styled-components';
4
4
  import { FileUploadArea } from './FileUploadArea.js';
5
5
  import { FileUploadItem } from './FileUploadItem.js';
6
6
  import { useDragAndDrop } from './useDragAndDrop.js';
7
+ import styles from './FileMultiUpload.module.css.js';
7
8
 
8
- const FilesList = styled.div.withConfig({
9
- componentId: "sc-1w9rsfj-0"
10
- })(["display:flex;flex-direction:column;gap:", ";width:100%;margin-top:", ";"], ({
11
- theme
12
- }) => theme.click.fileUpload.sm.space.gap, ({
13
- theme
14
- }) => theme.click.fileUpload.md.space.gap);
15
9
  const FileMultiUpload = ({
16
10
  title,
17
11
  supportedFileTypes = [".txt", ".sql"],
@@ -57,7 +51,7 @@ const FileMultiUpload = ({
57
51
  const acceptedFileTypes = supportedFileTypes.join(",");
58
52
  return /* @__PURE__ */ jsxs(Fragment, { children: [
59
53
  /* @__PURE__ */ jsx(FileUploadArea, { title, supportedFileTypes, size: "md", isDragging, isNotSupported, hasFile: false, multiple: true, onDragEnter: handleDragEnter, onDragLeave: handleDragLeave, onDragOver: handleDragOver, onDrop: handleDrop, onClick: handleBrowseClick }),
60
- files.length > 0 && /* @__PURE__ */ jsx(FilesList, { children: files.map((file) => /* @__PURE__ */ jsx(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)) }),
54
+ files.length > 0 && /* @__PURE__ */ jsx("div", { className: styles["files-list"], children: files.map((file) => /* @__PURE__ */ jsx(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)) }),
61
55
  /* @__PURE__ */ jsx("input", { type: "file", ref: fileInputRef, accept: acceptedFileTypes, onChange: handleFileSelect, multiple: true, style: {
62
56
  display: "none"
63
57
  } })
@@ -1 +1 @@
1
- {"version":3,"file":"FileMultiUpload.js","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","length","map","name","size","progress","status","errorMessage","id","display"],"mappings":"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"}
1
+ {"version":3,"file":"FileMultiUpload.js","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","length","styles","map","name","size","progress","status","errorMessage","id","display"],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ const styles = {
2
+ "files-list": "files-list__Of0Ps"
3
+ };
4
+
5
+ export { styles as default };
6
+ //# sourceMappingURL=FileMultiUpload.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileMultiUpload.module.css.js","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
+ }