@qoretechnologies/reqore 0.67.6 → 0.68.1

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 (280) hide show
  1. package/dist/components/DatePicker/index.d.ts +13 -1
  2. package/dist/components/DatePicker/index.d.ts.map +1 -1
  3. package/dist/components/DatePicker/index.js +79 -39
  4. package/dist/components/DatePicker/index.js.map +1 -1
  5. package/dist/components/DescriptionList/index.d.ts +119 -0
  6. package/dist/components/DescriptionList/index.d.ts.map +1 -0
  7. package/dist/components/DescriptionList/index.js +161 -0
  8. package/dist/components/DescriptionList/index.js.map +1 -0
  9. package/dist/components/Panel/index.d.ts.map +1 -1
  10. package/dist/components/Panel/index.js +1 -1
  11. package/dist/components/Panel/index.js.map +1 -1
  12. package/dist/constants/sizes.d.ts +9 -0
  13. package/dist/constants/sizes.d.ts.map +1 -1
  14. package/dist/constants/sizes.js +10 -1
  15. package/dist/constants/sizes.js.map +1 -1
  16. package/dist/esm/components/Accordion/index.js +142 -0
  17. package/dist/esm/components/Accordion/index.js.map +1 -0
  18. package/dist/esm/components/Breadcrumbs/index.js +122 -0
  19. package/dist/esm/components/Breadcrumbs/index.js.map +1 -0
  20. package/dist/esm/components/Breadcrumbs/item.js +14 -0
  21. package/dist/esm/components/Breadcrumbs/item.js.map +1 -0
  22. package/dist/esm/components/Button/index.js +315 -0
  23. package/dist/esm/components/Button/index.js.map +1 -0
  24. package/dist/esm/components/Callout/index.js +142 -0
  25. package/dist/esm/components/Callout/index.js.map +1 -0
  26. package/dist/esm/components/Checkbox/index.js +217 -0
  27. package/dist/esm/components/Checkbox/index.js.map +1 -0
  28. package/dist/esm/components/Collection/index.js +298 -0
  29. package/dist/esm/components/Collection/index.js.map +1 -0
  30. package/dist/esm/components/Collection/item.js +157 -0
  31. package/dist/esm/components/Collection/item.js.map +1 -0
  32. package/dist/esm/components/Columns/column.js +14 -0
  33. package/dist/esm/components/Columns/column.js.map +1 -0
  34. package/dist/esm/components/Columns/index.js +17 -0
  35. package/dist/esm/components/Columns/index.js.map +1 -0
  36. package/dist/esm/components/Comment/index.js +63 -0
  37. package/dist/esm/components/Comment/index.js.map +1 -0
  38. package/dist/esm/components/CommentFeed/index.js +17 -0
  39. package/dist/esm/components/CommentFeed/index.js.map +1 -0
  40. package/dist/esm/components/Content/index.js +16 -0
  41. package/dist/esm/components/Content/index.js.map +1 -0
  42. package/dist/esm/components/Content/wrapper.js +14 -0
  43. package/dist/esm/components/Content/wrapper.js.map +1 -0
  44. package/dist/esm/components/ControlGroup/index.js +351 -0
  45. package/dist/esm/components/ControlGroup/index.js.map +1 -0
  46. package/dist/esm/components/DatePicker/MonthYearDropdowns.js +30 -0
  47. package/dist/esm/components/DatePicker/MonthYearDropdowns.js.map +1 -0
  48. package/dist/esm/components/DatePicker/index.js +244 -0
  49. package/dist/esm/components/DatePicker/index.js.map +1 -0
  50. package/dist/esm/components/DescriptionList/index.js +132 -0
  51. package/dist/esm/components/DescriptionList/index.js.map +1 -0
  52. package/dist/esm/components/Drawer/backdrop.js +34 -0
  53. package/dist/esm/components/Drawer/backdrop.js.map +1 -0
  54. package/dist/esm/components/Drawer/index.js +286 -0
  55. package/dist/esm/components/Drawer/index.js.map +1 -0
  56. package/dist/esm/components/Dropdown/index.js +49 -0
  57. package/dist/esm/components/Dropdown/index.js.map +1 -0
  58. package/dist/esm/components/Dropdown/item.js +12 -0
  59. package/dist/esm/components/Dropdown/item.js.map +1 -0
  60. package/dist/esm/components/Dropdown/list.js +320 -0
  61. package/dist/esm/components/Dropdown/list.js.map +1 -0
  62. package/dist/esm/components/Effect/index.js +349 -0
  63. package/dist/esm/components/Effect/index.js.map +1 -0
  64. package/dist/esm/components/EmptyState/index.js +31 -0
  65. package/dist/esm/components/EmptyState/index.js.map +1 -0
  66. package/dist/esm/components/EntityRow/index.js +134 -0
  67. package/dist/esm/components/EntityRow/index.js.map +1 -0
  68. package/dist/esm/components/ErrorBoundary/index.js +57 -0
  69. package/dist/esm/components/ErrorBoundary/index.js.map +1 -0
  70. package/dist/esm/components/ExportModal/index.js +60 -0
  71. package/dist/esm/components/ExportModal/index.js.map +1 -0
  72. package/dist/esm/components/FeatureCard/index.js +139 -0
  73. package/dist/esm/components/FeatureCard/index.js.map +1 -0
  74. package/dist/esm/components/GlobalModalsWrapper/index.js +27 -0
  75. package/dist/esm/components/GlobalModalsWrapper/index.js.map +1 -0
  76. package/dist/esm/components/Header/index.js +55 -0
  77. package/dist/esm/components/Header/index.js.map +1 -0
  78. package/dist/esm/components/Icon/index.js +130 -0
  79. package/dist/esm/components/Icon/index.js.map +1 -0
  80. package/dist/esm/components/Input/index.js +136 -0
  81. package/dist/esm/components/Input/index.js.map +1 -0
  82. package/dist/esm/components/InputClearButton/index.js +32 -0
  83. package/dist/esm/components/InputClearButton/index.js.map +1 -0
  84. package/dist/esm/components/InternalPopover/index.js +244 -0
  85. package/dist/esm/components/InternalPopover/index.js.map +1 -0
  86. package/dist/esm/components/KeyValueTable/index.js +81 -0
  87. package/dist/esm/components/KeyValueTable/index.js.map +1 -0
  88. package/dist/esm/components/Label/index.js +7 -0
  89. package/dist/esm/components/Label/index.js.map +1 -0
  90. package/dist/esm/components/Layout/content.js +12 -0
  91. package/dist/esm/components/Layout/content.js.map +1 -0
  92. package/dist/esm/components/Layout/index.js +28 -0
  93. package/dist/esm/components/Layout/index.js.map +1 -0
  94. package/dist/esm/components/Menu/divider.js +41 -0
  95. package/dist/esm/components/Menu/divider.js.map +1 -0
  96. package/dist/esm/components/Menu/index.js +67 -0
  97. package/dist/esm/components/Menu/index.js.map +1 -0
  98. package/dist/esm/components/Menu/item.js +33 -0
  99. package/dist/esm/components/Menu/item.js.map +1 -0
  100. package/dist/esm/components/Menu/section.js +28 -0
  101. package/dist/esm/components/Menu/section.js.map +1 -0
  102. package/dist/esm/components/Message/index.js +52 -0
  103. package/dist/esm/components/Message/index.js.map +1 -0
  104. package/dist/esm/components/Modal/index.js +40 -0
  105. package/dist/esm/components/Modal/index.js.map +1 -0
  106. package/dist/esm/components/MultiSelect/index.js +146 -0
  107. package/dist/esm/components/MultiSelect/index.js.map +1 -0
  108. package/dist/esm/components/Navbar/divider.js +24 -0
  109. package/dist/esm/components/Navbar/divider.js.map +1 -0
  110. package/dist/esm/components/Navbar/group.js +27 -0
  111. package/dist/esm/components/Navbar/group.js.map +1 -0
  112. package/dist/esm/components/Navbar/index.js +39 -0
  113. package/dist/esm/components/Navbar/index.js.map +1 -0
  114. package/dist/esm/components/Navbar/item.js +51 -0
  115. package/dist/esm/components/Navbar/item.js.map +1 -0
  116. package/dist/esm/components/Notifications/index.js +28 -0
  117. package/dist/esm/components/Notifications/index.js.map +1 -0
  118. package/dist/esm/components/Notifications/notification.js +225 -0
  119. package/dist/esm/components/Notifications/notification.js.map +1 -0
  120. package/dist/esm/components/Paging/index.js +116 -0
  121. package/dist/esm/components/Paging/index.js.map +1 -0
  122. package/dist/esm/components/Panel/LabelEditor.js +33 -0
  123. package/dist/esm/components/Panel/LabelEditor.js.map +1 -0
  124. package/dist/esm/components/Panel/NonResponsiveActions.js +18 -0
  125. package/dist/esm/components/Panel/NonResponsiveActions.js.map +1 -0
  126. package/dist/esm/components/Panel/index.js +564 -0
  127. package/dist/esm/components/Panel/index.js.map +1 -0
  128. package/dist/esm/components/Panel/panel.screenshot.js +15 -0
  129. package/dist/esm/components/Panel/panel.screenshot.js.map +1 -0
  130. package/dist/esm/components/Paragraph/index.js +19 -0
  131. package/dist/esm/components/Paragraph/index.js.map +1 -0
  132. package/dist/esm/components/Popover/index.js +267 -0
  133. package/dist/esm/components/Popover/index.js.map +1 -0
  134. package/dist/esm/components/Progress/index.js +188 -0
  135. package/dist/esm/components/Progress/index.js.map +1 -0
  136. package/dist/esm/components/RadioGroup/index.js +9 -0
  137. package/dist/esm/components/RadioGroup/index.js.map +1 -0
  138. package/dist/esm/components/Rating/index.js +165 -0
  139. package/dist/esm/components/Rating/index.js.map +1 -0
  140. package/dist/esm/components/RichTextEditor/index.js +299 -0
  141. package/dist/esm/components/RichTextEditor/index.js.map +1 -0
  142. package/dist/esm/components/SegmentedControl/index.js +291 -0
  143. package/dist/esm/components/SegmentedControl/index.js.map +1 -0
  144. package/dist/esm/components/SeverityRow/index.js +106 -0
  145. package/dist/esm/components/SeverityRow/index.js.map +1 -0
  146. package/dist/esm/components/Skeleton/index.js +28 -0
  147. package/dist/esm/components/Skeleton/index.js.map +1 -0
  148. package/dist/esm/components/Slider/index.js +176 -0
  149. package/dist/esm/components/Slider/index.js.map +1 -0
  150. package/dist/esm/components/Spacer/index.js +96 -0
  151. package/dist/esm/components/Spacer/index.js.map +1 -0
  152. package/dist/esm/components/Span/index.js +18 -0
  153. package/dist/esm/components/Span/index.js.map +1 -0
  154. package/dist/esm/components/Spinner/index.js +14 -0
  155. package/dist/esm/components/Spinner/index.js.map +1 -0
  156. package/dist/esm/components/Statistic/index.js +166 -0
  157. package/dist/esm/components/Statistic/index.js.map +1 -0
  158. package/dist/esm/components/Table/body.js +72 -0
  159. package/dist/esm/components/Table/body.js.map +1 -0
  160. package/dist/esm/components/Table/cell.js +214 -0
  161. package/dist/esm/components/Table/cell.js.map +1 -0
  162. package/dist/esm/components/Table/header.js +158 -0
  163. package/dist/esm/components/Table/header.js.map +1 -0
  164. package/dist/esm/components/Table/headerCell.js +233 -0
  165. package/dist/esm/components/Table/headerCell.js.map +1 -0
  166. package/dist/esm/components/Table/helpers.js +285 -0
  167. package/dist/esm/components/Table/helpers.js.map +1 -0
  168. package/dist/esm/components/Table/index.js +472 -0
  169. package/dist/esm/components/Table/index.js.map +1 -0
  170. package/dist/esm/components/Table/row.js +176 -0
  171. package/dist/esm/components/Table/row.js.map +1 -0
  172. package/dist/esm/components/Table/value.js +19 -0
  173. package/dist/esm/components/Table/value.js.map +1 -0
  174. package/dist/esm/components/Tabs/content.js +23 -0
  175. package/dist/esm/components/Tabs/content.js.map +1 -0
  176. package/dist/esm/components/Tabs/index.js +44 -0
  177. package/dist/esm/components/Tabs/index.js.map +1 -0
  178. package/dist/esm/components/Tabs/item.js +122 -0
  179. package/dist/esm/components/Tabs/item.js.map +1 -0
  180. package/dist/esm/components/Tabs/list.js +208 -0
  181. package/dist/esm/components/Tabs/list.js.map +1 -0
  182. package/dist/esm/components/Tag/group.js +38 -0
  183. package/dist/esm/components/Tag/group.js.map +1 -0
  184. package/dist/esm/components/Tag/index.js +267 -0
  185. package/dist/esm/components/Tag/index.js.map +1 -0
  186. package/dist/esm/components/Testimonial/index.js +108 -0
  187. package/dist/esm/components/Testimonial/index.js.map +1 -0
  188. package/dist/esm/components/Textarea/index.js +135 -0
  189. package/dist/esm/components/Textarea/index.js.map +1 -0
  190. package/dist/esm/components/Tier/index.js +48 -0
  191. package/dist/esm/components/Tier/index.js.map +1 -0
  192. package/dist/esm/components/TimeAgo/index.js +19 -0
  193. package/dist/esm/components/TimeAgo/index.js.map +1 -0
  194. package/dist/esm/components/Timeline/index.js +271 -0
  195. package/dist/esm/components/Timeline/index.js.map +1 -0
  196. package/dist/esm/components/TooltipComponent/index.js +11 -0
  197. package/dist/esm/components/TooltipComponent/index.js.map +1 -0
  198. package/dist/esm/components/Tree/index.js +266 -0
  199. package/dist/esm/components/Tree/index.js.map +1 -0
  200. package/dist/esm/components/Tree/modal.js +30 -0
  201. package/dist/esm/components/Tree/modal.js.map +1 -0
  202. package/dist/esm/constants/animations.js +9 -0
  203. package/dist/esm/constants/animations.js.map +1 -0
  204. package/dist/esm/constants/colors.js +13 -0
  205. package/dist/esm/constants/colors.js.map +1 -0
  206. package/dist/esm/constants/paging.js +48 -0
  207. package/dist/esm/constants/paging.js.map +1 -0
  208. package/dist/esm/constants/sizes.js +363 -0
  209. package/dist/esm/constants/sizes.js.map +1 -0
  210. package/dist/esm/constants/theme.js +40 -0
  211. package/dist/esm/constants/theme.js.map +1 -0
  212. package/dist/esm/containers/Paging.js +29 -0
  213. package/dist/esm/containers/Paging.js.map +1 -0
  214. package/dist/esm/containers/ReqoreProvider.js +239 -0
  215. package/dist/esm/containers/ReqoreProvider.js.map +1 -0
  216. package/dist/esm/containers/ThemeProvider.js +11 -0
  217. package/dist/esm/containers/ThemeProvider.js.map +1 -0
  218. package/dist/esm/containers/UIProvider.js +53 -0
  219. package/dist/esm/containers/UIProvider.js.map +1 -0
  220. package/dist/esm/context/CustomThemeContext.js +4 -0
  221. package/dist/esm/context/CustomThemeContext.js.map +1 -0
  222. package/dist/esm/context/ReqoreContext.js +22 -0
  223. package/dist/esm/context/ReqoreContext.js.map +1 -0
  224. package/dist/esm/context/ThemeContext.js +4 -0
  225. package/dist/esm/context/ThemeContext.js.map +1 -0
  226. package/dist/esm/helpers/animations.js +13 -0
  227. package/dist/esm/helpers/animations.js.map +1 -0
  228. package/dist/esm/helpers/colors.js +240 -0
  229. package/dist/esm/helpers/colors.js.map +1 -0
  230. package/dist/esm/helpers/dates.js +52 -0
  231. package/dist/esm/helpers/dates.js.map +1 -0
  232. package/dist/esm/helpers/time.js +21 -0
  233. package/dist/esm/helpers/time.js.map +1 -0
  234. package/dist/esm/helpers/utils.js +174 -0
  235. package/dist/esm/helpers/utils.js.map +1 -0
  236. package/dist/esm/hooks/useAutoFocus.js +76 -0
  237. package/dist/esm/hooks/useAutoFocus.js.map +1 -0
  238. package/dist/esm/hooks/useCloneThroughFragments.js +26 -0
  239. package/dist/esm/hooks/useCloneThroughFragments.js.map +1 -0
  240. package/dist/esm/hooks/useCombinedRefs.js +25 -0
  241. package/dist/esm/hooks/useCombinedRefs.js.map +1 -0
  242. package/dist/esm/hooks/useComponentTooltip.js +28 -0
  243. package/dist/esm/hooks/useComponentTooltip.js.map +1 -0
  244. package/dist/esm/hooks/useFocusTrap.js +115 -0
  245. package/dist/esm/hooks/useFocusTrap.js.map +1 -0
  246. package/dist/esm/hooks/useLatestZIndex.js +10 -0
  247. package/dist/esm/hooks/useLatestZIndex.js.map +1 -0
  248. package/dist/esm/hooks/useOutsideClick.js +17 -0
  249. package/dist/esm/hooks/useOutsideClick.js.map +1 -0
  250. package/dist/esm/hooks/usePaging.js +92 -0
  251. package/dist/esm/hooks/usePaging.js.map +1 -0
  252. package/dist/esm/hooks/useQueryWithDelay.js +19 -0
  253. package/dist/esm/hooks/useQueryWithDelay.js.map +1 -0
  254. package/dist/esm/hooks/useReqore.js +10 -0
  255. package/dist/esm/hooks/useReqore.js.map +1 -0
  256. package/dist/esm/hooks/useReqoreContext.js +12 -0
  257. package/dist/esm/hooks/useReqoreContext.js.map +1 -0
  258. package/dist/esm/hooks/useReqoreEffect.js +21 -0
  259. package/dist/esm/hooks/useReqoreEffect.js.map +1 -0
  260. package/dist/esm/hooks/useTextareaAutoSize.js +16 -0
  261. package/dist/esm/hooks/useTextareaAutoSize.js.map +1 -0
  262. package/dist/esm/hooks/useTheme.js +39 -0
  263. package/dist/esm/hooks/useTheme.js.map +1 -0
  264. package/dist/esm/hooks/useWhyDidYouUpdate.js +32 -0
  265. package/dist/esm/hooks/useWhyDidYouUpdate.js.map +1 -0
  266. package/dist/esm/index.js +92 -0
  267. package/dist/esm/index.js.map +1 -0
  268. package/dist/esm/styles.js +122 -0
  269. package/dist/esm/styles.js.map +1 -0
  270. package/dist/esm/types/global.js +2 -0
  271. package/dist/esm/types/global.js.map +1 -0
  272. package/dist/esm/types/icons.js +2 -0
  273. package/dist/esm/types/icons.js.map +1 -0
  274. package/dist/index.d.ts +1 -0
  275. package/dist/index.d.ts.map +1 -1
  276. package/dist/index.js +5 -3
  277. package/dist/index.js.map +1 -1
  278. package/package.json +6 -2
  279. package/tests.json +1 -1
  280. package/tsconfig.esm.json +11 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/Slider/index.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC/D,OAAO,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,sBAAsB,EAAE,cAAc,EAAU,MAAM,uBAAuB,CAAC;AAEvF,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAGtD,OAAO,kBAAgD,MAAM,iBAAiB,CAAC;AAC/E,OAAO,EAAyC,YAAY,EAAsB,MAAM,WAAW,CAAC;AACpG,OAAO,UAAgC,MAAM,SAAS,CAAC;AACvD,OAAO,EAAyB,OAAO,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,SAA8B,MAAM,QAAQ,CAAC;AACpD,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAqC7D,MAAM,yBAAyB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAA;;;;;;;;;;;;CAY3D,CAAC;AAEF,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;sBAClB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU;;;CAGhD,CAAC;AACF,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;;sBAElB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU;;CAEhD,CAAC;AACF,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAA;;sBAElB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU;;;;;4BAKrB,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU;;;CAGtD,CAAC;AACF,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;;;;;;;;;;;;;IAalC,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,GAAG,CAAA;MAC5B,WAAW;eACF,cAAc,CAAC,IAAI,CAAC;gBACnB,cAAc,CAAC,IAAI,CAAC;mBACjB,cAAc,CAAC,IAAI,CAAC;;GAEpC;;;;;MAKG,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,GAAG,CAAA;gBACpB,cAAc,CAAC,IAAI,CAAC;;QAE5B,WAAW;kBACD,sBAAsB,CAAC,IAAI,CAAC;;KAEzC;;MAEC,WAAW;;;MAGX,WAAW;;;;;;;;;;MAUX,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,GAAG,CAAA;eACrB,cAAc,CAAC,IAAI,CAAC;;QAE3B,WAAW;iBACF,sBAAsB,CAAC,IAAI,CAAC;;KAExC;;MAEC,WAAW;;;MAGX,WAAW;;;;CAIhB,CAAC;AAEF,MAAM,kBAAkB,GAAG,MAAM,CAAC,SAAS,CAAC,CAAA;;IAExC,CAAC,EAAE,QAAQ,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,EAAE,EAAE,CACrD,GAAG,CAAA;QACC,QAAQ,KAAK,gBAAgB,IAAI,gBAAgB,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;QACpE,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM;mBACjD,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,OAAO;IACtD,CAAC,CAAC,kBAAkB;IACpB,CAAC,CAAC,kBAAkB;KACvB;CACJ,CAAC;AAEF,MAAM,iBAAiB,GAAG,MAAM,CAAC,kBAAkB,CAAC,CAAA;;;;CAInD,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAC9B,UAAU,CACR,CACE,EACE,KAAK,EACL,QAAQ,EACR,IAAI,GAAG,GAAG,EACV,WAAW,GAAG,YAAY,EAC1B,KAAK,GAAG,IAAI,EACZ,UAAU,EACV,IAAI,EACJ,SAAS,EACT,SAAS,EACT,SAAS,EACT,cAAc,EACd,cAAc,EACd,WAAW,EACX,MAAM,EACN,MAAM,EACN,UAAU,EACV,UAAU,EACV,UAAU,EACV,aAAa,EACb,aAAa,EACb,IAAI,GAAG,QAAQ,EACf,YAAY,EACZ,cAAc,GAAG,KAAK,EACtB,OAAO,EACP,oBAAoB,EACpB,oBAAoB,EACpB,4BAA4B,EAC5B,GAAG,KAAK,EACK,EACf,GAAG,EACH,EAAE;IACF,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;IAE1D,MAAM,UAAU,GAAG,MAAM;QACvB,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC;QAClC,CAAC,CAAC,gBAAgB,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;IACxD,MAAM,eAAe,GAAG,MAAM;QAC5B,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC;QACnC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAErC,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE;QACpC,IAAI,CAAC,UAAU,EAAE;YACf,OAAO,IAAI,CAAC;SACb;QAED,OAAO,CACL,MAAC,kBAAkB,IAAC,KAAK,QAAC,YAAY,QAAC,QAAQ,EAAE,WAAW,KAAK,UAAU,EAAE,IAAI,mBAC/E,MAAC,kBAAkB,IACjB,KAAK,QACL,QAAQ,EAAE,WAAW,KAAK,UAAU,EACpC,eAAe,EAAC,QAAQ,aAEvB,IAAI,IAAI,CACP,KAAC,UAAU,IACT,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,SAAS,EAChB,MAAM,EAAE,MAAM,KACV,SAAS,GACb,CACH,EACA,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAC9B,KAAC,OAAO,IAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAM,aAAa,YACnE,KAAK,CAAC,GAAG,GACF,CACX,CAAC,CAAC,CAAC,IAAI,IACW,EACrB,MAAC,kBAAkB,IACjB,KAAK,QACL,QAAQ,EAAE,WAAW,KAAK,UAAU,EACpC,eAAe,EAAC,QAAQ,aAEvB,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAC9B,KAAC,OAAO,IAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAM,aAAa,YACnE,KAAK,CAAC,GAAG,GACF,CACX,CAAC,CAAC,CAAC,IAAI,EACP,SAAS,IAAI,CACZ,KAAC,UAAU,IACT,IAAI,EAAE,SAAS,EACf,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,cAAc,EACrB,MAAM,EAAE,MAAM,KACV,cAAc,GAClB,CACH,IACkB,IACF,CACtB,CAAC;IACJ,CAAC,EAAE;QACD,IAAI;QACJ,SAAS;QACT,SAAS;QACT,cAAc;QACd,aAAa;QACb,aAAa;QACb,IAAI;QACJ,MAAM;QACN,KAAK,CAAC,GAAG;QACT,KAAK,CAAC,GAAG;QACT,UAAU;QACV,WAAW;QACX,MAAM;KACP,CAAC,CAAC;IAEH,MAAM,oBAAoB,GAAG,OAAO,CAAC,GAAG,EAAE;QACxC,OAAO,WAAW,KAAK,YAAY;YACjC,CAAC,CAAC,cAAc,KAAK,KAAK;gBACxB,CAAC,CAAC,KAAK;gBACP,CAAC,CAAC,QAAQ;YACZ,CAAC,CAAC,cAAc,KAAK,KAAK;gBAC1B,CAAC,CAAC,MAAM;gBACR,CAAC,CAAC,OAAO,CAAC;IACd,CAAC,EAAE,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC,CAAC;IAElC,MAAM,wBAAwB,GAAG,OAAO,CAAC,GAAG,EAAE;QAC5C,MAAM,MAAM,GAAW,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAElD,OAAO,MAAM,GAAG,KAAK,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC;IACvC,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAEvB,MAAM,wBAAwB,GAAG,OAAO,CAAC,GAAG,EAAE;QAC5C,IAAI,CAAC,OAAO;YAAE,OAAO,KAAK,CAAC;QAE3B,MAAM,MAAM,GAAW,KAAK,CAAC,CAAC,CAAC,CAAC;QAEhC,OAAO,MAAM,GAAG,KAAK,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,CAAC;IACvC,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAEvB,OAAO,CACL,MAAC,sBAAsB,wBACH,WAAW,0BACP,cAAc,gBACxB,KAAK,EACjB,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,WAAW,KAAK,YAAY,EACtC,IAAI,QACJ,OAAO,EAAE,WAAW,KAAK,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,KACpD,YAAY,EAChB,SAAS,EAAE,yBAAyB,EACpC,GAAG,EAAE,GAAG,EACR,OAAO,EAAE,OAAO,aAEf,cAAc,KAAK,KAAK,IAAI,YAAY,EAAE,EAC3C,KAAC,iBAAiB,IAAC,QAAQ,EAAE,WAAW,KAAK,UAAU,YACrD,MAAC,UAAU,iBACE,IAAI,EACf,WAAW,EAAE,WAAW,EACxB,qBAAqB,EAAE,IAAI,EAC3B,QAAQ,EAAE,WAAW,KAAK,UAAU,EACpC,IAAI,EAAE,IAAI,KACN,KAAK,EACT,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAChC,aAAa,EAAE,CAAC,MAAM,EAAE,EAAE;wBACxB,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;oBACzC,CAAC,aAED,KAAC,WAAW,IAAC,UAAU,EAAE,eAAe,EAAE,OAAO,kBAC/C,KAAC,YAAY,IAAC,MAAM,EAAE,MAAM,KAAM,UAAU,YAC1C,KAAC,WAAW,IAAC,UAAU,EAAE,UAAU,EAAE,OAAO,kBAC1C,KAAC,YAAY,IAAC,MAAM,EAAE,MAAM,KAAM,UAAU,GAAI,GACpC,GACD,GACH,EAEd,KAAC,WAAW,IAAC,UAAU,EAAE,UAAU,EAAE,OAAO,kBAC1C,KAAC,YAAY,IAAC,MAAM,EAAE,MAAM,KAAM,UAAU,YACzC,UAAU,IAAI,CACb,KAAC,kBAAkB,IACjB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,oBAAoB,EAC9B,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EACjC,gBAAgB,EAAE,4BAA4B,IAAI,wBAAwB,KACtE,oBAAoB,GACxB,CACH,GACY,GACH,EACb,OAAO,IAAI,CACV,KAAC,WAAW,IAAC,UAAU,EAAE,UAAU,EAAE,OAAO,kBAC1C,KAAC,YAAY,IAAC,MAAM,EAAE,MAAM,KAAM,UAAU,YACzC,UAAU,IAAI,CACb,KAAC,kBAAkB,IACjB,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,oBAAoB,EAC9B,gBAAgB,EAAE,4BAA4B,IAAI,wBAAwB,EAC1E,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,KACX,oBAAoB,GACxB,CACH,GACY,GACH,CACf,IACU,GACK,EACnB,cAAc,KAAK,QAAQ,IAAI,YAAY,EAAE,IACvB,CAC1B,CAAC;AACJ,CAAC,CACF,CACF,CAAC"}
@@ -0,0 +1,96 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { memo, useMemo } from 'react';
3
+ import styled, { css } from 'styled-components';
4
+ import { LINE_SIZE_TO_NUMBER, TEXT_FROM_SIZE } from '../../constants/sizes';
5
+ import { changeLightness } from '../../helpers/colors';
6
+ import { useReqoreTheme } from '../../hooks/useTheme';
7
+ import { StyledEffect } from '../Effect';
8
+ export const StyledSpacer = styled.div `
9
+ display: ${({ horizontal }) => (horizontal ? 'inline-flex' : 'flex')};
10
+ vertical-align: middle;
11
+ align-items: ${({ align }) => {
12
+ if (align === 'start')
13
+ return 'flex-start';
14
+ if (align === 'center')
15
+ return 'center';
16
+ if (align === 'end')
17
+ return 'flex-end';
18
+ return 'center';
19
+ }};
20
+
21
+ ${({ horizontal, vertical }) => {
22
+ if (horizontal) {
23
+ return css `
24
+ flex-flow: row;
25
+ `;
26
+ }
27
+ if (vertical) {
28
+ return css `
29
+ flex-flow: column;
30
+ `;
31
+ }
32
+ }}
33
+
34
+ flex-shrink: 0;
35
+ `;
36
+ export const StyledSpace = styled.div `
37
+ display: inline-block;
38
+ flex: 0 0 auto;
39
+
40
+ ${({ horizontal, vertical, width, height, lineSize }) => {
41
+ if (horizontal) {
42
+ return css `
43
+ width: ${width / 2 - lineSize / 2}px;
44
+ height: ${height ? height : `${TEXT_FROM_SIZE.normal}px`};
45
+ `;
46
+ }
47
+ if (vertical) {
48
+ return css `
49
+ width: ${width ? width : '100%'};
50
+ height: ${height / 2 - lineSize / 2}px;
51
+ `;
52
+ }
53
+ }}
54
+ `;
55
+ export const StyledLine = styled(StyledEffect) `
56
+ flex-shrink: 0;
57
+ background-color: ${({ theme, lineSize }) => lineSize === 'none' ? 'transparent' : changeLightness(theme.main, 0.2)};
58
+
59
+ ${({ horizontal, vertical, width, height, lineSize }) => {
60
+ if (horizontal) {
61
+ return css `
62
+ width: ${lineSize}px;
63
+ height: ${height ? height : `${TEXT_FROM_SIZE.normal}px`};
64
+ `;
65
+ }
66
+ if (vertical) {
67
+ return css `
68
+ width: ${width ? width : '100%'};
69
+ height: ${lineSize}px;
70
+ `;
71
+ }
72
+ }}
73
+ `;
74
+ export const ReqoreSpacer = memo(({ customTheme, inheritCustomTheme, intent, lineSize = 'none', align, ...rest }) => {
75
+ const theme = useReqoreTheme('main', customTheme, intent, undefined, inheritCustomTheme);
76
+ let { horizontal, vertical } = rest;
77
+ // The user is using old version of the component
78
+ // We will assume that the user wants a spacer based on the width or height
79
+ if (!horizontal && !vertical) {
80
+ if (rest.width) {
81
+ horizontal = true;
82
+ }
83
+ if (rest.height) {
84
+ vertical = true;
85
+ }
86
+ }
87
+ const _lineSize = useMemo(() => (lineSize === 'none' ? 0 : LINE_SIZE_TO_NUMBER[lineSize]), [lineSize]);
88
+ return (_jsxs(StyledSpacer, { as: 'div', ...rest, horizontal: horizontal, vertical: vertical, align: align, className: 'reqore-spacer', children: [_jsx(StyledSpace, { ...rest, horizontal: horizontal, vertical: vertical, lineSize: _lineSize }), _jsx(StyledLine, { ...rest, horizontal: horizontal, vertical: vertical, theme: theme, lineSize: _lineSize }), _jsx(StyledSpace, { ...rest, horizontal: horizontal, vertical: vertical, lineSize: _lineSize })] }));
89
+ });
90
+ export const ReqoreHorizontalSpacer = memo(({ width = 1, lineSize = 'none', ...rest }) => {
91
+ return _jsx(ReqoreSpacer, { width: width, lineSize: lineSize, horizontal: true, ...rest });
92
+ });
93
+ export const ReqoreVerticalSpacer = memo(({ height = 1, lineSize = 'none', ...rest }) => {
94
+ return _jsx(ReqoreSpacer, { height: height, lineSize: lineSize, vertical: true, ...rest });
95
+ });
96
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/Spacer/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { forwardRef, memo } from 'react';
3
+ import styled from 'styled-components';
4
+ import { TEXT_FROM_SIZE } from '../../constants/sizes';
5
+ import { isStringSize } from '../../helpers/utils';
6
+ import { useReqoreTheme } from '../../hooks/useTheme';
7
+ import { StyledTextEffect } from '../Effect';
8
+ import { ReqoreTooltipComponent } from '../TooltipComponent';
9
+ export const StyledSpan = styled(StyledTextEffect) `
10
+ color: ${({ theme, intent }) => intent ? theme.intents[intent] : theme.text?.color || 'inherit'};
11
+ font-size: ${({ _size }) => (isStringSize(_size) ? `${TEXT_FROM_SIZE[_size]}px` : _size)};
12
+ vertical-align: ${({ inline }) => (inline ? 'middle' : undefined)};
13
+ `;
14
+ export const ReqoreSpan = memo(forwardRef(({ size, children, customTheme, inheritCustomTheme, intent, className, inline = false, tooltip, ...props }, ref) => {
15
+ const theme = useReqoreTheme('main', customTheme, intent, undefined, inheritCustomTheme);
16
+ return (_jsx(ReqoreTooltipComponent, { ref: ref, as: 'span', theme: theme, color: theme.text.color, intent: intent, inline: inline, ...props, Component: StyledSpan, tooltip: tooltip, _size: size, className: `${className || ''} reqore-span`, children: children }));
17
+ }));
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/Span/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAAE,cAAc,EAAU,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAOtD,OAAO,EAA0B,gBAAgB,EAAE,MAAM,WAAW,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAY7D,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAA;WACvC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,CAC7B,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,IAAI,SAAS;eACpD,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;oBACtE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;CAClE,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,IAAI,CAC5B,UAAU,CACR,CACE,EACE,IAAI,EACJ,QAAQ,EACR,WAAW,EACX,kBAAkB,EAClB,MAAM,EACN,SAAS,EACT,MAAM,GAAG,KAAK,EACd,OAAO,EACP,GAAG,KAAK,EACS,EACnB,GAAG,EACH,EAAE;IACF,MAAM,KAAK,GAAG,cAAc,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,kBAAkB,CAAC,CAAC;IAEzF,OAAO,CACL,KAAC,sBAAsB,IACrB,GAAG,EAAE,GAAG,EACR,EAAE,EAAC,MAAM,EACT,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,EACvB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,KACV,KAAK,EACT,SAAS,EAAE,UAAU,EACrB,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,IAAI,EACX,SAAS,EAAE,GAAG,SAAS,IAAI,EAAE,cAAc,YAE1C,QAAQ,GACc,CAC1B,CAAC;AACJ,CAAC,CACF,CACF,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useCallback } from 'react';
3
+ import { ReqoreIcon, ReqoreP } from '../..';
4
+ import ReqoreControlGroup from '../ControlGroup';
5
+ export const ReqoreSpinner = ({ size, intent, children, type, iconColor, labelEffect, effect, iconMargin, centered, iconProps, ...rest }) => {
6
+ const renderContent = useCallback(() => {
7
+ return (_jsx(ReqoreIcon, { icon: !type ? 'LoaderLine' : `Loader${type}Line`, color: iconColor || intent, size: size, effect: effect, animation: 'spin', className: 'reqore-spinner', margin: iconMargin || (children && !centered ? 'right' : undefined), ...iconProps }));
8
+ }, [size, intent, type, children, iconColor, centered]);
9
+ if (children) {
10
+ return (_jsxs(ReqoreControlGroup, { ...rest, vertical: centered, horizontalAlign: centered ? 'center' : undefined, verticalAlign: 'center', children: [renderContent(), _jsx(ReqoreP, { size: size, intent: intent, effect: labelEffect, className: 'reqore-spinner-wrapper', children: children })] }));
11
+ }
12
+ return _jsx(_Fragment, { children: renderContent() });
13
+ };
14
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/Spinner/index.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAI5C,OAAO,kBAAgD,MAAM,iBAAiB,CAAC;AAkB/E,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,EAC5B,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,SAAS,EACT,WAAW,EACX,MAAM,EACN,UAAU,EACV,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACa,EAAE,EAAE;IACxB,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,EAAE;QACrC,OAAO,CACL,KAAC,UAAU,IACT,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,IAAI,MAAM,EAChD,KAAK,EAAE,SAAS,IAAI,MAAM,EAC1B,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,SAAS,EAAC,MAAM,EAChB,SAAS,EAAC,gBAAgB,EAC1B,MAAM,EAAE,UAAU,IAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,KAC/D,SAAS,GACb,CACH,CAAC;IACJ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;IAExD,IAAI,QAAQ,EAAE;QACZ,OAAO,CACL,MAAC,kBAAkB,OACb,IAAI,EACR,QAAQ,EAAE,QAAQ,EAClB,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EAChD,aAAa,EAAC,QAAQ,aAErB,aAAa,EAAE,EAChB,KAAC,OAAO,IACN,IAAI,EAAE,IAAI,EACV,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,WAAW,EACnB,SAAS,EAAC,wBAAwB,YAEjC,QAAQ,GACD,IACS,CACtB,CAAC;KACH;IAED,OAAO,4BAAG,aAAa,EAAE,GAAI,CAAC;AAChC,CAAC,CAAC"}
@@ -0,0 +1,166 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { rgba } from 'polished';
3
+ import { forwardRef, memo, useMemo } from 'react';
4
+ import styled, { css } from 'styled-components';
5
+ import { resolveRadius } from '../../constants/sizes';
6
+ import { changeDarkness, changeLightness, getMainBackgroundColor, getReadableColor, } from '../../helpers/colors';
7
+ import { alignToFlexAlign, getOneHigherSize, getOneLessSize, resolvePadding, } from '../../helpers/utils';
8
+ import { useReqoreTheme } from '../../hooks/useTheme';
9
+ import { DisabledElement, InactiveIconScale, RaisedElement, ScaleIconOnHover } from '../../styles';
10
+ import ReqoreControlGroup from '../ControlGroup';
11
+ import { patchPrimaryGradient, StyledEffect } from '../Effect';
12
+ import { ReqoreHeading } from '../Header';
13
+ import ReqoreIcon from '../Icon';
14
+ import { ReqoreSpan } from '../Span';
15
+ import { ReqoreTooltipComponent } from '../TooltipComponent';
16
+ const TREND_ICONS = {
17
+ up: 'ArrowUpSLine',
18
+ down: 'ArrowDownSLine',
19
+ neutral: 'SubtractLine',
20
+ };
21
+ const TREND_DEFAULT_INTENTS = {
22
+ up: 'success',
23
+ down: 'danger',
24
+ neutral: 'muted',
25
+ };
26
+ const StyledStatisticWrapper = styled(StyledEffect) `
27
+ /* ---- Layout --------------------------------------------------------
28
+ The Statistic is rendered as a real div (see the as=div on the JSX)
29
+ rather than the default StyledEffect span. A span containing block
30
+ children (the value row and the trend group are both divs) is the
31
+ wrong content model and produced a box that did not establish a
32
+ proper containment context, so overflow + min-width did not hold
33
+ the inner text inside the tile. With a div root the wrapper can be
34
+ a proper flex column container. */
35
+ display: flex;
36
+ flex-direction: column;
37
+ align-items: ${({ $align }) => $align === 'center'
38
+ ? 'center'
39
+ : $align === 'flex-end'
40
+ ? 'flex-end'
41
+ : 'flex-start'};
42
+ justify-content: ${({ $align }) => $align};
43
+ width: ${({ $fluid }) => ($fluid ? '100%' : undefined)};
44
+ /* ---- Overflow safety ----------------------------------------------
45
+ Statistic tiles are commonly laid out inside flex or grid parents
46
+ (KPI strips, dashboards). Without bounding the tile intrinsic
47
+ width to its column, the widest unbreakable token in the value,
48
+ trend or label can push past the column edge and bleed into the
49
+ neighbouring tile. min-width 0 lets flex-shrink do its job,
50
+ max-width 100% caps the box at the column it lives in, and
51
+ overflow hidden clips any child that refuses to honour the cap.
52
+ With a div root these all behave as documented. */
53
+ min-width: 0;
54
+ max-width: 100%;
55
+ overflow: hidden;
56
+ & .reqore-statistic-label,
57
+ & .reqore-statistic-value-row,
58
+ & .reqore-statistic-trend {
59
+ max-width: 100%;
60
+ min-width: 0;
61
+ }
62
+ /* The trend slot is a ReqoreControlGroup which defaults to
63
+ "flex: 0 0 auto" (ControlGroup/index.tsx). That kills flex-shrink
64
+ so the group keeps its intrinsic content width and would push the
65
+ tile past its grid track when the trend copy is long. Forcing the
66
+ group to shrink lets the text-leaf wrap rules below take effect. */
67
+ & .reqore-statistic-trend {
68
+ flex: 0 1 auto;
69
+ flex-wrap: wrap;
70
+ }
71
+ /* Wrap rather than ellipsis — KPI tiles benefit from the operator
72
+ seeing the whole sub-line rather than a clipped fragment.
73
+ overflow-wrap anywhere covers identifiers, URLs and long codes
74
+ with no natural break point. */
75
+ & .reqore-statistic-label,
76
+ & .reqore-statistic-value,
77
+ & .reqore-statistic-prefix,
78
+ & .reqore-statistic-suffix {
79
+ white-space: normal;
80
+ overflow-wrap: anywhere;
81
+ word-break: break-word;
82
+ max-width: 100%;
83
+ }
84
+ & .reqore-statistic-trend > span {
85
+ white-space: normal;
86
+ overflow-wrap: anywhere;
87
+ word-break: break-word;
88
+ min-width: 0;
89
+ max-width: 100%;
90
+ }
91
+
92
+ ${({ $hasBackground, theme, size, rounded, radiusSize, flat, intent, opacity = 1, $padded, $paddingSize, }) => $hasBackground &&
93
+ css `
94
+ background-color: ${rgba(changeDarkness(getMainBackgroundColor(theme), 0.03), opacity)};
95
+ border-radius: ${rounded ? resolveRadius(size, radiusSize) : 0}px;
96
+ border: ${flat
97
+ ? undefined
98
+ : `1px solid ${changeLightness(intent ? theme.intents[intent] : getMainBackgroundColor(theme), 0.08)}`};
99
+ color: ${getReadableColor(theme, undefined, undefined, true)};
100
+ padding: ${resolvePadding({
101
+ padded: $padded,
102
+ paddingSize: $paddingSize,
103
+ verticalMultiplier: 3,
104
+ horizontalMultiplier: 5,
105
+ })};
106
+ `}
107
+
108
+ ${({ $raised, $hasBackground, flat }) => $raised && $hasBackground && flat !== false && RaisedElement}
109
+
110
+ ${({ $interactive, disabled }) => $interactive && !disabled
111
+ ? css `
112
+ ${InactiveIconScale};
113
+ ${ScaleIconOnHover};
114
+ cursor: pointer;
115
+ transition: all 0.2s ease-out;
116
+
117
+ &:active {
118
+ transform: scale(0.98);
119
+ }
120
+ `
121
+ : undefined}
122
+
123
+ ${({ disabled }) => disabled &&
124
+ css `
125
+ ${DisabledElement};
126
+ `}
127
+ `;
128
+ const StyledStatisticValueRow = styled.div `
129
+ display: flex;
130
+ align-items: baseline;
131
+ gap: 4px;
132
+ flex-wrap: nowrap;
133
+ `;
134
+ const ReqoreStatistic = memo(forwardRef(({ value, label, icon, iconColor, iconProps, prefix, suffix, trend, valueEffect, labelEffect, effect, align = 'center', size = 'normal', customTheme, inheritCustomTheme, intent, fluid, flat, disabled, tooltip, rounded, radiusSize, transparent, opacity, raised, padded = true, paddingSize, className, ...rest }, ref) => {
135
+ const theme = useReqoreTheme('main', customTheme, intent, undefined, inheritCustomTheme);
136
+ const secondarySize = useMemo(() => getOneLessSize(size), [size]);
137
+ const flexAlign = useMemo(() => alignToFlexAlign(align), [align]);
138
+ const interactive = useMemo(() => !!(rest.onClick || rest.onDoubleClick || rest.onContextMenu), [rest.onClick, rest.onDoubleClick, rest.onContextMenu]);
139
+ const hasBackground = useMemo(() => !!(effect || rounded || flat !== undefined || transparent || opacity !== undefined || raised), [effect, rounded, flat, transparent, opacity, raised]);
140
+ const trendIntent = useMemo(() => (trend ? trend.intent || TREND_DEFAULT_INTENTS[trend.direction] : undefined), [trend]);
141
+ const trendIcon = useMemo(() => (trend ? trend.icon || TREND_ICONS[trend.direction] : undefined), [trend]);
142
+ const transformedEffect = useMemo(() => {
143
+ if (!effect)
144
+ return undefined;
145
+ const newEffect = { ...effect };
146
+ if (newEffect.gradient && intent) {
147
+ newEffect.gradient = patchPrimaryGradient(newEffect.gradient, {
148
+ borderColor: theme.intents[intent],
149
+ });
150
+ }
151
+ return newEffect;
152
+ }, [effect, intent, theme]);
153
+ return (_jsx(ReqoreTooltipComponent, { ...rest,
154
+ // Render as a real block-level `<div>`. The base styled
155
+ // element (`StyledEffect`) is a `<span>`, which is wrong
156
+ // here — Statistic's children are block-level (the value
157
+ // row is a `<div>`, the trend group is a `<div>`), and an
158
+ // inline-flex `<span>` containing block children breaks
159
+ // HTML's content model. Browsers tolerate it but the
160
+ // resulting box doesn't establish containment cleanly,
161
+ // which is why `overflow: hidden` + `min-width: 0` didn't
162
+ // hold their text inside the tile.
163
+ as: 'div', Component: StyledStatisticWrapper, tooltip: tooltip, ref: ref, theme: theme, size: size, "$fluid": fluid, disabled: disabled, "$hasBackground": hasBackground, "$interactive": interactive, "$align": flexAlign, rounded: rounded, radiusSize: radiusSize, flat: flat, intent: intent, opacity: transparent ? 0 : opacity, "$raised": raised, "$padded": padded, "$paddingSize": paddingSize ?? size, effect: transformedEffect, className: `${className || ''} reqore-statistic`, children: _jsxs(ReqoreControlGroup, { vertical: true, horizontalAlign: flexAlign, className: 'reqore-statistic-content', children: [icon && (_jsx(ReqoreIcon, { ...iconProps, icon: icon, size: size, color: iconColor, intent: iconColor ? undefined : intent, className: 'reqore-statistic-icon' })), label && (_jsx(ReqoreSpan, { size: secondarySize, className: 'reqore-statistic-label', effect: { opacity: 0.7, uppercase: true, spaced: 1, ...labelEffect }, children: label })), _jsxs(StyledStatisticValueRow, { className: 'reqore-statistic-value-row', children: [prefix && (_jsx(ReqoreHeading, { size: getOneHigherSize(size), className: 'reqore-statistic-prefix', effect: { opacity: 0.6 }, children: prefix })), _jsx(ReqoreHeading, { size: getOneHigherSize(size), className: 'reqore-statistic-value', effect: valueEffect, children: value }), suffix && (_jsx(ReqoreHeading, { size: getOneHigherSize(size), className: 'reqore-statistic-suffix', effect: { opacity: 0.6 }, children: suffix }))] }), trend && (_jsxs(ReqoreControlGroup, { gapSize: 'micro', verticalAlign: 'center', className: 'reqore-statistic-trend', children: [_jsx(ReqoreIcon, { icon: trendIcon, size: secondarySize, intent: trendIntent }), trend.value !== undefined && (_jsx(ReqoreSpan, { size: secondarySize, intent: trendIntent, children: trend.value }))] }))] }) }));
164
+ }));
165
+ export default ReqoreStatistic;
166
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/Statistic/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import count from 'lodash/size';
3
+ import { forwardRef, memo, useCallback, useEffect, useMemo } from 'react';
4
+ import { FixedSizeList as List } from 'react-window';
5
+ import styled, { css } from 'styled-components';
6
+ import { TABLE_SIZE_TO_PX } from '../../constants/sizes';
7
+ import { useCombinedRefs } from '../../hooks/useCombinedRefs';
8
+ import { getTotalColumnsWidth } from './helpers';
9
+ import ReqoreTableRow from './row';
10
+ const StyledList = styled(List) ``;
11
+ const StyledNonVirtualizedBody = styled.div `
12
+ ${({ height, minWidth }) => css `
13
+ overflow: auto;
14
+ ${height || height === 0
15
+ ? css `
16
+ height: ${height}px;
17
+ `
18
+ : ''}
19
+ > * {
20
+ min-width: ${minWidth}px;
21
+ }
22
+ `}
23
+ `;
24
+ const ReqoreTableBody = forwardRef(({ data, height, size = 'normal', headerRef, virtualized = true, onScrollChange, rowHeight: rowHeightOverride, ...rest }, ref) => {
25
+ const { targetRef } = useCombinedRefs(ref);
26
+ const rowHeight = useMemo(() => {
27
+ if (typeof rowHeightOverride === 'number' && rowHeightOverride > 0) {
28
+ return rowHeightOverride;
29
+ }
30
+ return rest.flat ? TABLE_SIZE_TO_PX[size] : TABLE_SIZE_TO_PX[size] + 1;
31
+ }, [rowHeightOverride, size, rest.flat]);
32
+ const itemCount = useMemo(() => count(data), [data]);
33
+ const totalColumnsWidth = useMemo(() => getTotalColumnsWidth(rest.columns), [rest.columns]);
34
+ const itemData = useMemo(() => {
35
+ return {
36
+ data,
37
+ size,
38
+ ...rest,
39
+ };
40
+ }, [data, size, rest]);
41
+ // Sync body horizontal scroll to the header and notify vertical scroll state
42
+ useEffect(() => {
43
+ const el = targetRef.current;
44
+ if (!el) {
45
+ return undefined;
46
+ }
47
+ const handleScroll = () => {
48
+ if (headerRef.current) {
49
+ headerRef.current.scrollLeft = el.scrollLeft;
50
+ }
51
+ onScrollChange?.(el.scrollTop > 0);
52
+ };
53
+ el.addEventListener('scroll', handleScroll, { passive: true });
54
+ return () => el.removeEventListener('scroll', handleScroll);
55
+ }, [headerRef, onScrollChange, targetRef]);
56
+ const measuredHeight = useMemo(() => {
57
+ if ((!height && height !== 0) || height > itemCount * rowHeight) {
58
+ return itemCount * rowHeight;
59
+ }
60
+ return height;
61
+ }, [height, itemCount, rowHeight]);
62
+ const renderNonVirtualizedRow = useCallback((_item, index) => (_jsx(ReqoreTableRow, { data: itemData, index: index }, index)), [itemData]);
63
+ if (!virtualized) {
64
+ // Non-virtualized rows can wrap and exceed the fixed `rowHeight`, so pinning a pixel
65
+ // height would force a vertical scrollbar. Only set a height when the caller explicitly
66
+ // requested one — otherwise let the body grow to fit its content.
67
+ return (_jsx(StyledNonVirtualizedBody, { className: 'reqore-table-body', ref: targetRef, height: height || height === 0 ? measuredHeight : undefined, minWidth: totalColumnsWidth, children: data.map(renderNonVirtualizedRow) }));
68
+ }
69
+ return (_jsx(StyledList, { outerRef: targetRef, itemCount: itemCount, height: measuredHeight, className: 'reqore-table-body', itemSize: rowHeight, itemData: itemData, width: '100%', children: ReqoreTableRow }));
70
+ });
71
+ export default memo(ReqoreTableBody);
72
+ //# sourceMappingURL=body.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"body.js","sourceRoot":"","sources":["../../../../src/components/Table/body.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,214 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { lighten, rgba } from 'polished';
3
+ import { forwardRef, memo, useCallback, useLayoutEffect, useRef, useState } from 'react';
4
+ import styled, { css } from 'styled-components';
5
+ import { TEXT_FROM_SIZE } from '../../constants/sizes';
6
+ import { changeLightness, getReadableColorFrom } from '../../helpers/colors';
7
+ import { alignToFlexAlign } from '../../helpers/utils';
8
+ import ReqoreButton from '../Button';
9
+ import { ReqoreTooltipComponent } from '../TooltipComponent';
10
+ export const StyledTableCell = styled.div `
11
+ ${({ width, minWidth, maxWidth, grow }) => css `
12
+ width: ${width}px;
13
+ min-width: ${minWidth}px;
14
+ max-width: ${maxWidth}px;
15
+
16
+ flex-grow: ${grow || (width ? undefined : 1)};
17
+ `}
18
+
19
+ ${({ theme, align, interactive, interactiveCell, intent, size, flat, striped, even, selected, selectedIntent, disabled, hovered, padded, wrap, pin, pinOffset, pinEdge, maxHeight, }) => {
20
+ const getOriginalBackgroundColor = () => {
21
+ let color = theme.main;
22
+ // Is there any intent
23
+ if (intent || (selected && selectedIntent)) {
24
+ color = theme.intents[intent || selectedIntent];
25
+ }
26
+ return color;
27
+ };
28
+ const getBackgroundColor = () => {
29
+ const color = getOriginalBackgroundColor();
30
+ let opacity = 0;
31
+ // Is there any intent
32
+ if (intent || (selected && selectedIntent)) {
33
+ opacity += 0.02;
34
+ }
35
+ // Is the table striped and this row odd
36
+ if (striped && !even) {
37
+ opacity += 0.05;
38
+ }
39
+ // Is this row selected
40
+ if (selected) {
41
+ opacity += 0.02;
42
+ }
43
+ // Is this row hovered
44
+ if (hovered) {
45
+ opacity += 0.08;
46
+ }
47
+ // Pinned cells must paint opaque — otherwise non-pinned cells scrolling underneath show through
48
+ if (opacity === 0) {
49
+ return pin ? theme.main : 'transparent';
50
+ }
51
+ return changeLightness(color, opacity);
52
+ };
53
+ const backgroundColor = getBackgroundColor();
54
+ const displayedBackgroundColor = backgroundColor === 'transparent'
55
+ ? theme.main
56
+ : rgba(backgroundColor, 0.3);
57
+ // Pinned cells need an opaque paint so non-pinned cells scrolling underneath don't show
58
+ // through. We layer the semi-transparent displayed color over a solid theme.main base.
59
+ const pinnedBackground = pin
60
+ ? `linear-gradient(${displayedBackgroundColor}, ${displayedBackgroundColor}), ${theme.main}`
61
+ : undefined;
62
+ return css `
63
+ display: flex;
64
+ align-items: ${maxHeight ? 'flex-start' : 'center'};
65
+ justify-content: ${align ? alignToFlexAlign(align) : 'flex-start'};
66
+ flex-shrink: 0;
67
+ align-self: stretch;
68
+ border-bottom: ${!flat ? '1px solid ' : undefined};
69
+
70
+ ${maxHeight &&
71
+ css `
72
+ position: relative;
73
+ max-height: ${maxHeight}px;
74
+ overflow: hidden;
75
+ `}
76
+
77
+ padding: ${!padded || padded === 'both' || padded === 'vertical' ? (wrap ? '6px' : 0) : undefined}
78
+ ${!padded || padded === 'both' || padded === 'horizontal' ? '10px' : undefined};
79
+ font-size: ${TEXT_FROM_SIZE[size]}px;
80
+ background: ${pinnedBackground ??
81
+ (backgroundColor === 'transparent' ? 'transparent' : displayedBackgroundColor)};
82
+ color: ${getReadableColorFrom(getOriginalBackgroundColor(), !hovered)};
83
+ border-color: ${changeLightness(displayedBackgroundColor, 0.1)};
84
+ transition: background-color 0.2s ease-out;
85
+ opacity: ${disabled ? 0.2 : 1};
86
+ pointer-events: ${disabled ? 'none' : undefined};
87
+ cursor: ${interactive || interactiveCell ? 'pointer' : 'default'};
88
+
89
+ ${pin &&
90
+ css `
91
+ position: sticky;
92
+ ${pin === 'left' ? `left: ${pinOffset || 0}px;` : `right: ${pinOffset || 0}px;`}
93
+ z-index: 2;
94
+ ${pinEdge &&
95
+ css `
96
+ /* Use a pseudo-element instead of box-shadow so the shadow is strictly bounded to
97
+ the cell's height — a blurred box-shadow bleeds vertically and stacks across
98
+ neighboring pinned cells, producing dark bands between rows. */
99
+ &::after {
100
+ content: '';
101
+ position: absolute;
102
+ top: 0;
103
+ bottom: 0;
104
+ width: 12px;
105
+ pointer-events: none;
106
+ ${pin === 'left' ? 'right: -12px;' : 'left: -12px;'}
107
+ background: linear-gradient(
108
+ to ${pin === 'left' ? 'right' : 'left'},
109
+ rgba(0, 0, 0, 0.35),
110
+ rgba(0, 0, 0, 0)
111
+ );
112
+ }
113
+ `}
114
+ `}
115
+
116
+ ${interactiveCell &&
117
+ css `
118
+ &:hover {
119
+ /* Pinned cells rely on the layered background shorthand for their opaque base —
120
+ overriding just background-color would lose theme.main and let the non-pinned
121
+ cells scrolling underneath show through on hover. */
122
+ ${pin
123
+ ? css `
124
+ background: linear-gradient(
125
+ ${lighten(0.1, displayedBackgroundColor)},
126
+ ${lighten(0.1, displayedBackgroundColor)}
127
+ ),
128
+ ${theme.main};
129
+ `
130
+ : css `
131
+ background-color: ${lighten(0.1, displayedBackgroundColor)};
132
+ `}
133
+ }
134
+ `}
135
+
136
+ p.reqore-table-text {
137
+ ${wrap
138
+ ? css `
139
+ white-space: normal;
140
+ word-break: break-word;
141
+ overflow-wrap: anywhere;
142
+ `
143
+ : css `
144
+ overflow: hidden;
145
+ white-space: nowrap;
146
+ text-overflow: ellipsis;
147
+ `}
148
+ margin: 0;
149
+ padding: 0;
150
+ }
151
+ `;
152
+ }}
153
+ `;
154
+ const StyledCellExpandOverlay = styled.div `
155
+ position: absolute;
156
+ left: 0;
157
+ right: 0;
158
+ bottom: 0;
159
+ display: flex;
160
+ align-items: flex-end;
161
+ justify-content: center;
162
+ padding: 4px 6px;
163
+ pointer-events: none;
164
+ z-index: 1;
165
+ height: 36px;
166
+ background: ${({ theme }) => `linear-gradient(to bottom, ${rgba(theme.main, 0)} 0%, ${theme.main} 80%)`};
167
+
168
+ > * {
169
+ pointer-events: auto;
170
+ }
171
+ `;
172
+ export const ReqoreTableBodyCell = memo(forwardRef((props, ref) => {
173
+ const { expandHeightButtonProps, ...cellStyleProps } = props;
174
+ const { maxHeight, children, size } = cellStyleProps;
175
+ const [expanded, setExpanded] = useState(false);
176
+ const [isOverflowing, setIsOverflowing] = useState(false);
177
+ const localRef = useRef(null);
178
+ const setRefs = useCallback((el) => {
179
+ localRef.current = el;
180
+ if (typeof ref === 'function') {
181
+ ref(el);
182
+ }
183
+ else if (ref) {
184
+ ref.current = el;
185
+ }
186
+ }, [ref]);
187
+ // Expansion is a one-way action, so once expanded the overlay hides and the cell grows
188
+ // naturally — no need to keep measuring.
189
+ useLayoutEffect(() => {
190
+ if (!maxHeight || expanded) {
191
+ setIsOverflowing(false);
192
+ return undefined;
193
+ }
194
+ const el = localRef.current;
195
+ if (!el) {
196
+ return undefined;
197
+ }
198
+ const check = () => {
199
+ setIsOverflowing(el.scrollHeight > el.clientHeight + 1);
200
+ };
201
+ check();
202
+ const observer = new ResizeObserver(check);
203
+ observer.observe(el);
204
+ return () => observer.disconnect();
205
+ }, [maxHeight, expanded, children]);
206
+ const effectiveMaxHeight = expanded ? undefined : maxHeight;
207
+ const showOverlay = !!maxHeight && !expanded && isOverflowing;
208
+ return (_jsxs(ReqoreTooltipComponent, { Component: StyledTableCell, ...cellStyleProps, maxHeight: effectiveMaxHeight, ref: setRefs, children: [children, showOverlay && (_jsx(StyledCellExpandOverlay, { className: 'reqore-table-cell-expand', onClick: (e) => e.stopPropagation(), children: _jsx(ReqoreButton, { compact: true, size: size === 'micro' || size === 'tiny' ? 'tiny' : 'small', rightIcon: 'ArrowDownSLine', ...expandHeightButtonProps, onClick: (e) => {
209
+ e.stopPropagation();
210
+ expandHeightButtonProps?.onClick?.(e);
211
+ setExpanded(true);
212
+ }, children: expandHeightButtonProps?.children ?? 'Show more' }) }))] }));
213
+ }));
214
+ //# sourceMappingURL=cell.js.map