@qoretechnologies/reqore 0.68.0 → 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 (265) 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/esm/components/Accordion/index.js +142 -0
  6. package/dist/esm/components/Accordion/index.js.map +1 -0
  7. package/dist/esm/components/Breadcrumbs/index.js +122 -0
  8. package/dist/esm/components/Breadcrumbs/index.js.map +1 -0
  9. package/dist/esm/components/Breadcrumbs/item.js +14 -0
  10. package/dist/esm/components/Breadcrumbs/item.js.map +1 -0
  11. package/dist/esm/components/Button/index.js +315 -0
  12. package/dist/esm/components/Button/index.js.map +1 -0
  13. package/dist/esm/components/Callout/index.js +142 -0
  14. package/dist/esm/components/Callout/index.js.map +1 -0
  15. package/dist/esm/components/Checkbox/index.js +217 -0
  16. package/dist/esm/components/Checkbox/index.js.map +1 -0
  17. package/dist/esm/components/Collection/index.js +298 -0
  18. package/dist/esm/components/Collection/index.js.map +1 -0
  19. package/dist/esm/components/Collection/item.js +157 -0
  20. package/dist/esm/components/Collection/item.js.map +1 -0
  21. package/dist/esm/components/Columns/column.js +14 -0
  22. package/dist/esm/components/Columns/column.js.map +1 -0
  23. package/dist/esm/components/Columns/index.js +17 -0
  24. package/dist/esm/components/Columns/index.js.map +1 -0
  25. package/dist/esm/components/Comment/index.js +63 -0
  26. package/dist/esm/components/Comment/index.js.map +1 -0
  27. package/dist/esm/components/CommentFeed/index.js +17 -0
  28. package/dist/esm/components/CommentFeed/index.js.map +1 -0
  29. package/dist/esm/components/Content/index.js +16 -0
  30. package/dist/esm/components/Content/index.js.map +1 -0
  31. package/dist/esm/components/Content/wrapper.js +14 -0
  32. package/dist/esm/components/Content/wrapper.js.map +1 -0
  33. package/dist/esm/components/ControlGroup/index.js +351 -0
  34. package/dist/esm/components/ControlGroup/index.js.map +1 -0
  35. package/dist/esm/components/DatePicker/MonthYearDropdowns.js +30 -0
  36. package/dist/esm/components/DatePicker/MonthYearDropdowns.js.map +1 -0
  37. package/dist/esm/components/DatePicker/index.js +244 -0
  38. package/dist/esm/components/DatePicker/index.js.map +1 -0
  39. package/dist/esm/components/DescriptionList/index.js +132 -0
  40. package/dist/esm/components/DescriptionList/index.js.map +1 -0
  41. package/dist/esm/components/Drawer/backdrop.js +34 -0
  42. package/dist/esm/components/Drawer/backdrop.js.map +1 -0
  43. package/dist/esm/components/Drawer/index.js +286 -0
  44. package/dist/esm/components/Drawer/index.js.map +1 -0
  45. package/dist/esm/components/Dropdown/index.js +49 -0
  46. package/dist/esm/components/Dropdown/index.js.map +1 -0
  47. package/dist/esm/components/Dropdown/item.js +12 -0
  48. package/dist/esm/components/Dropdown/item.js.map +1 -0
  49. package/dist/esm/components/Dropdown/list.js +320 -0
  50. package/dist/esm/components/Dropdown/list.js.map +1 -0
  51. package/dist/esm/components/Effect/index.js +349 -0
  52. package/dist/esm/components/Effect/index.js.map +1 -0
  53. package/dist/esm/components/EmptyState/index.js +31 -0
  54. package/dist/esm/components/EmptyState/index.js.map +1 -0
  55. package/dist/esm/components/EntityRow/index.js +134 -0
  56. package/dist/esm/components/EntityRow/index.js.map +1 -0
  57. package/dist/esm/components/ErrorBoundary/index.js +57 -0
  58. package/dist/esm/components/ErrorBoundary/index.js.map +1 -0
  59. package/dist/esm/components/ExportModal/index.js +60 -0
  60. package/dist/esm/components/ExportModal/index.js.map +1 -0
  61. package/dist/esm/components/FeatureCard/index.js +139 -0
  62. package/dist/esm/components/FeatureCard/index.js.map +1 -0
  63. package/dist/esm/components/GlobalModalsWrapper/index.js +27 -0
  64. package/dist/esm/components/GlobalModalsWrapper/index.js.map +1 -0
  65. package/dist/esm/components/Header/index.js +55 -0
  66. package/dist/esm/components/Header/index.js.map +1 -0
  67. package/dist/esm/components/Icon/index.js +130 -0
  68. package/dist/esm/components/Icon/index.js.map +1 -0
  69. package/dist/esm/components/Input/index.js +136 -0
  70. package/dist/esm/components/Input/index.js.map +1 -0
  71. package/dist/esm/components/InputClearButton/index.js +32 -0
  72. package/dist/esm/components/InputClearButton/index.js.map +1 -0
  73. package/dist/esm/components/InternalPopover/index.js +244 -0
  74. package/dist/esm/components/InternalPopover/index.js.map +1 -0
  75. package/dist/esm/components/KeyValueTable/index.js +81 -0
  76. package/dist/esm/components/KeyValueTable/index.js.map +1 -0
  77. package/dist/esm/components/Label/index.js +7 -0
  78. package/dist/esm/components/Label/index.js.map +1 -0
  79. package/dist/esm/components/Layout/content.js +12 -0
  80. package/dist/esm/components/Layout/content.js.map +1 -0
  81. package/dist/esm/components/Layout/index.js +28 -0
  82. package/dist/esm/components/Layout/index.js.map +1 -0
  83. package/dist/esm/components/Menu/divider.js +41 -0
  84. package/dist/esm/components/Menu/divider.js.map +1 -0
  85. package/dist/esm/components/Menu/index.js +67 -0
  86. package/dist/esm/components/Menu/index.js.map +1 -0
  87. package/dist/esm/components/Menu/item.js +33 -0
  88. package/dist/esm/components/Menu/item.js.map +1 -0
  89. package/dist/esm/components/Menu/section.js +28 -0
  90. package/dist/esm/components/Menu/section.js.map +1 -0
  91. package/dist/esm/components/Message/index.js +52 -0
  92. package/dist/esm/components/Message/index.js.map +1 -0
  93. package/dist/esm/components/Modal/index.js +40 -0
  94. package/dist/esm/components/Modal/index.js.map +1 -0
  95. package/dist/esm/components/MultiSelect/index.js +146 -0
  96. package/dist/esm/components/MultiSelect/index.js.map +1 -0
  97. package/dist/esm/components/Navbar/divider.js +24 -0
  98. package/dist/esm/components/Navbar/divider.js.map +1 -0
  99. package/dist/esm/components/Navbar/group.js +27 -0
  100. package/dist/esm/components/Navbar/group.js.map +1 -0
  101. package/dist/esm/components/Navbar/index.js +39 -0
  102. package/dist/esm/components/Navbar/index.js.map +1 -0
  103. package/dist/esm/components/Navbar/item.js +51 -0
  104. package/dist/esm/components/Navbar/item.js.map +1 -0
  105. package/dist/esm/components/Notifications/index.js +28 -0
  106. package/dist/esm/components/Notifications/index.js.map +1 -0
  107. package/dist/esm/components/Notifications/notification.js +225 -0
  108. package/dist/esm/components/Notifications/notification.js.map +1 -0
  109. package/dist/esm/components/Paging/index.js +116 -0
  110. package/dist/esm/components/Paging/index.js.map +1 -0
  111. package/dist/esm/components/Panel/LabelEditor.js +33 -0
  112. package/dist/esm/components/Panel/LabelEditor.js.map +1 -0
  113. package/dist/esm/components/Panel/NonResponsiveActions.js +18 -0
  114. package/dist/esm/components/Panel/NonResponsiveActions.js.map +1 -0
  115. package/dist/esm/components/Panel/index.js +564 -0
  116. package/dist/esm/components/Panel/index.js.map +1 -0
  117. package/dist/esm/components/Panel/panel.screenshot.js +15 -0
  118. package/dist/esm/components/Panel/panel.screenshot.js.map +1 -0
  119. package/dist/esm/components/Paragraph/index.js +19 -0
  120. package/dist/esm/components/Paragraph/index.js.map +1 -0
  121. package/dist/esm/components/Popover/index.js +267 -0
  122. package/dist/esm/components/Popover/index.js.map +1 -0
  123. package/dist/esm/components/Progress/index.js +188 -0
  124. package/dist/esm/components/Progress/index.js.map +1 -0
  125. package/dist/esm/components/RadioGroup/index.js +9 -0
  126. package/dist/esm/components/RadioGroup/index.js.map +1 -0
  127. package/dist/esm/components/Rating/index.js +165 -0
  128. package/dist/esm/components/Rating/index.js.map +1 -0
  129. package/dist/esm/components/RichTextEditor/index.js +299 -0
  130. package/dist/esm/components/RichTextEditor/index.js.map +1 -0
  131. package/dist/esm/components/SegmentedControl/index.js +291 -0
  132. package/dist/esm/components/SegmentedControl/index.js.map +1 -0
  133. package/dist/esm/components/SeverityRow/index.js +106 -0
  134. package/dist/esm/components/SeverityRow/index.js.map +1 -0
  135. package/dist/esm/components/Skeleton/index.js +28 -0
  136. package/dist/esm/components/Skeleton/index.js.map +1 -0
  137. package/dist/esm/components/Slider/index.js +176 -0
  138. package/dist/esm/components/Slider/index.js.map +1 -0
  139. package/dist/esm/components/Spacer/index.js +96 -0
  140. package/dist/esm/components/Spacer/index.js.map +1 -0
  141. package/dist/esm/components/Span/index.js +18 -0
  142. package/dist/esm/components/Span/index.js.map +1 -0
  143. package/dist/esm/components/Spinner/index.js +14 -0
  144. package/dist/esm/components/Spinner/index.js.map +1 -0
  145. package/dist/esm/components/Statistic/index.js +166 -0
  146. package/dist/esm/components/Statistic/index.js.map +1 -0
  147. package/dist/esm/components/Table/body.js +72 -0
  148. package/dist/esm/components/Table/body.js.map +1 -0
  149. package/dist/esm/components/Table/cell.js +214 -0
  150. package/dist/esm/components/Table/cell.js.map +1 -0
  151. package/dist/esm/components/Table/header.js +158 -0
  152. package/dist/esm/components/Table/header.js.map +1 -0
  153. package/dist/esm/components/Table/headerCell.js +233 -0
  154. package/dist/esm/components/Table/headerCell.js.map +1 -0
  155. package/dist/esm/components/Table/helpers.js +285 -0
  156. package/dist/esm/components/Table/helpers.js.map +1 -0
  157. package/dist/esm/components/Table/index.js +472 -0
  158. package/dist/esm/components/Table/index.js.map +1 -0
  159. package/dist/esm/components/Table/row.js +176 -0
  160. package/dist/esm/components/Table/row.js.map +1 -0
  161. package/dist/esm/components/Table/value.js +19 -0
  162. package/dist/esm/components/Table/value.js.map +1 -0
  163. package/dist/esm/components/Tabs/content.js +23 -0
  164. package/dist/esm/components/Tabs/content.js.map +1 -0
  165. package/dist/esm/components/Tabs/index.js +44 -0
  166. package/dist/esm/components/Tabs/index.js.map +1 -0
  167. package/dist/esm/components/Tabs/item.js +122 -0
  168. package/dist/esm/components/Tabs/item.js.map +1 -0
  169. package/dist/esm/components/Tabs/list.js +208 -0
  170. package/dist/esm/components/Tabs/list.js.map +1 -0
  171. package/dist/esm/components/Tag/group.js +38 -0
  172. package/dist/esm/components/Tag/group.js.map +1 -0
  173. package/dist/esm/components/Tag/index.js +267 -0
  174. package/dist/esm/components/Tag/index.js.map +1 -0
  175. package/dist/esm/components/Testimonial/index.js +108 -0
  176. package/dist/esm/components/Testimonial/index.js.map +1 -0
  177. package/dist/esm/components/Textarea/index.js +135 -0
  178. package/dist/esm/components/Textarea/index.js.map +1 -0
  179. package/dist/esm/components/Tier/index.js +48 -0
  180. package/dist/esm/components/Tier/index.js.map +1 -0
  181. package/dist/esm/components/TimeAgo/index.js +19 -0
  182. package/dist/esm/components/TimeAgo/index.js.map +1 -0
  183. package/dist/esm/components/Timeline/index.js +271 -0
  184. package/dist/esm/components/Timeline/index.js.map +1 -0
  185. package/dist/esm/components/TooltipComponent/index.js +11 -0
  186. package/dist/esm/components/TooltipComponent/index.js.map +1 -0
  187. package/dist/esm/components/Tree/index.js +266 -0
  188. package/dist/esm/components/Tree/index.js.map +1 -0
  189. package/dist/esm/components/Tree/modal.js +30 -0
  190. package/dist/esm/components/Tree/modal.js.map +1 -0
  191. package/dist/esm/constants/animations.js +9 -0
  192. package/dist/esm/constants/animations.js.map +1 -0
  193. package/dist/esm/constants/colors.js +13 -0
  194. package/dist/esm/constants/colors.js.map +1 -0
  195. package/dist/esm/constants/paging.js +48 -0
  196. package/dist/esm/constants/paging.js.map +1 -0
  197. package/dist/esm/constants/sizes.js +363 -0
  198. package/dist/esm/constants/sizes.js.map +1 -0
  199. package/dist/esm/constants/theme.js +40 -0
  200. package/dist/esm/constants/theme.js.map +1 -0
  201. package/dist/esm/containers/Paging.js +29 -0
  202. package/dist/esm/containers/Paging.js.map +1 -0
  203. package/dist/esm/containers/ReqoreProvider.js +239 -0
  204. package/dist/esm/containers/ReqoreProvider.js.map +1 -0
  205. package/dist/esm/containers/ThemeProvider.js +11 -0
  206. package/dist/esm/containers/ThemeProvider.js.map +1 -0
  207. package/dist/esm/containers/UIProvider.js +53 -0
  208. package/dist/esm/containers/UIProvider.js.map +1 -0
  209. package/dist/esm/context/CustomThemeContext.js +4 -0
  210. package/dist/esm/context/CustomThemeContext.js.map +1 -0
  211. package/dist/esm/context/ReqoreContext.js +22 -0
  212. package/dist/esm/context/ReqoreContext.js.map +1 -0
  213. package/dist/esm/context/ThemeContext.js +4 -0
  214. package/dist/esm/context/ThemeContext.js.map +1 -0
  215. package/dist/esm/helpers/animations.js +13 -0
  216. package/dist/esm/helpers/animations.js.map +1 -0
  217. package/dist/esm/helpers/colors.js +240 -0
  218. package/dist/esm/helpers/colors.js.map +1 -0
  219. package/dist/esm/helpers/dates.js +52 -0
  220. package/dist/esm/helpers/dates.js.map +1 -0
  221. package/dist/esm/helpers/time.js +21 -0
  222. package/dist/esm/helpers/time.js.map +1 -0
  223. package/dist/esm/helpers/utils.js +174 -0
  224. package/dist/esm/helpers/utils.js.map +1 -0
  225. package/dist/esm/hooks/useAutoFocus.js +76 -0
  226. package/dist/esm/hooks/useAutoFocus.js.map +1 -0
  227. package/dist/esm/hooks/useCloneThroughFragments.js +26 -0
  228. package/dist/esm/hooks/useCloneThroughFragments.js.map +1 -0
  229. package/dist/esm/hooks/useCombinedRefs.js +25 -0
  230. package/dist/esm/hooks/useCombinedRefs.js.map +1 -0
  231. package/dist/esm/hooks/useComponentTooltip.js +28 -0
  232. package/dist/esm/hooks/useComponentTooltip.js.map +1 -0
  233. package/dist/esm/hooks/useFocusTrap.js +115 -0
  234. package/dist/esm/hooks/useFocusTrap.js.map +1 -0
  235. package/dist/esm/hooks/useLatestZIndex.js +10 -0
  236. package/dist/esm/hooks/useLatestZIndex.js.map +1 -0
  237. package/dist/esm/hooks/useOutsideClick.js +17 -0
  238. package/dist/esm/hooks/useOutsideClick.js.map +1 -0
  239. package/dist/esm/hooks/usePaging.js +92 -0
  240. package/dist/esm/hooks/usePaging.js.map +1 -0
  241. package/dist/esm/hooks/useQueryWithDelay.js +19 -0
  242. package/dist/esm/hooks/useQueryWithDelay.js.map +1 -0
  243. package/dist/esm/hooks/useReqore.js +10 -0
  244. package/dist/esm/hooks/useReqore.js.map +1 -0
  245. package/dist/esm/hooks/useReqoreContext.js +12 -0
  246. package/dist/esm/hooks/useReqoreContext.js.map +1 -0
  247. package/dist/esm/hooks/useReqoreEffect.js +21 -0
  248. package/dist/esm/hooks/useReqoreEffect.js.map +1 -0
  249. package/dist/esm/hooks/useTextareaAutoSize.js +16 -0
  250. package/dist/esm/hooks/useTextareaAutoSize.js.map +1 -0
  251. package/dist/esm/hooks/useTheme.js +39 -0
  252. package/dist/esm/hooks/useTheme.js.map +1 -0
  253. package/dist/esm/hooks/useWhyDidYouUpdate.js +32 -0
  254. package/dist/esm/hooks/useWhyDidYouUpdate.js.map +1 -0
  255. package/dist/esm/index.js +92 -0
  256. package/dist/esm/index.js.map +1 -0
  257. package/dist/esm/styles.js +122 -0
  258. package/dist/esm/styles.js.map +1 -0
  259. package/dist/esm/types/global.js +2 -0
  260. package/dist/esm/types/global.js.map +1 -0
  261. package/dist/esm/types/icons.js +2 -0
  262. package/dist/esm/types/icons.js.map +1 -0
  263. package/package.json +6 -2
  264. package/tests.json +1 -1
  265. package/tsconfig.esm.json +11 -0
@@ -0,0 +1,60 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { useCallback, useMemo, useState } from 'react';
3
+ import { stringify } from 'yaml';
4
+ import { ReqoreTextarea, useReqoreProperty } from '../..';
5
+ import { convertToCSV } from '../../helpers/utils';
6
+ import { ReqoreModal } from '../Modal';
7
+ import ReqoreTabs from '../Tabs';
8
+ import ReqoreTabsContent from '../Tabs/content';
9
+ export const ReqoreExportModal = ({ data, sendNotificationOnCopy = true, tabsOptions = {}, ...rest }) => {
10
+ const addNotification = useReqoreProperty('addNotification');
11
+ const isArray = Array.isArray(data);
12
+ const [tab, setTab] = useState(isArray ? 'csv' : 'json');
13
+ const tabs = [
14
+ { label: 'CSV', id: 'csv', disabled: !isArray },
15
+ { label: 'JSON', id: 'json' },
16
+ { label: 'YAML', id: 'yaml' },
17
+ ];
18
+ const dataToExport = useMemo(() => {
19
+ switch (tab) {
20
+ case 'csv':
21
+ return convertToCSV(data);
22
+ case 'json':
23
+ return JSON.stringify(data, null, 2);
24
+ case 'yaml':
25
+ return stringify(data, null, 2);
26
+ default:
27
+ return '';
28
+ }
29
+ }, [data, tab, isArray]);
30
+ const handleCopyClick = useCallback(() => {
31
+ navigator.clipboard.writeText(dataToExport);
32
+ if (sendNotificationOnCopy) {
33
+ addNotification({
34
+ content: 'Data copied to clipboard',
35
+ intent: 'success',
36
+ duration: 3000,
37
+ });
38
+ }
39
+ }, [sendNotificationOnCopy, dataToExport]);
40
+ return (_jsx(ReqoreModal, { label: 'Export data', icon: 'DownloadLine', ...rest, isOpen: true, bottomActions: [
41
+ {
42
+ position: 'right',
43
+ label: 'Copy',
44
+ icon: 'ClipboardLine',
45
+ onClick: () => {
46
+ handleCopyClick();
47
+ },
48
+ },
49
+ {
50
+ position: 'right',
51
+ label: 'Copy and close',
52
+ icon: 'ClipboardFill',
53
+ onClick: () => {
54
+ handleCopyClick();
55
+ rest.onClose?.();
56
+ },
57
+ },
58
+ ], children: _jsx(ReqoreTabs, { fillParent: true, activeTabIntent: 'info', activeTab: isArray ? 'csv' : 'json', padded: false, flat: false, ...tabsOptions, onTabChange: (tabId) => setTab(tabId.toString()), tabs: tabs, children: tabs.map((tab) => (_jsx(ReqoreTabsContent, { tabId: tab.id, padded: 'none', children: _jsx(ReqoreTextarea, { readOnly: true, value: dataToExport, scaleWithContent: true, minimal: true }) }, tab.id))) }) }));
59
+ };
60
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/ExportModal/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,139 @@
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 { HEADER_SIZE_TO_NUMBER, PADDING_FROM_SIZE, RADIUS_FROM_SIZE, resolveRadius, TEXT_FROM_SIZE, } from '../../constants/sizes';
6
+ import { changeDarkness, changeLightness, getMainBackgroundColor, getReadableColor, } from '../../helpers/colors';
7
+ import { getOneLessSize, resolvePadding } from '../../helpers/utils';
8
+ import { useReqoreTheme } from '../../hooks/useTheme';
9
+ import { DisabledElement, RaisedElement } from '../../styles';
10
+ import { ButtonBadge } from '../Button';
11
+ import { StyledEffect } from '../Effect';
12
+ import { ReqoreHeading } from '../Header';
13
+ import ReqoreIcon from '../Icon';
14
+ import { ReqoreP } from '../Paragraph';
15
+ import { ReqoreTooltipComponent } from '../TooltipComponent';
16
+ const StyledFeatureCard = styled(StyledEffect) `
17
+ display: flex;
18
+ flex-flow: column;
19
+ gap: ${({ size = 'normal' }) => PADDING_FROM_SIZE[size]}px;
20
+ width: ${({ fluid, fixed }) => (fluid && !fixed ? '100%' : undefined)};
21
+ max-width: 100%;
22
+ padding: ${({ $padded, $paddingSize }) => resolvePadding({
23
+ padded: $padded,
24
+ paddingSize: $paddingSize,
25
+ verticalMultiplier: 3,
26
+ horizontalMultiplier: 3,
27
+ })};
28
+ background-color: ${({ theme, $transparent }) => $transparent ? 'transparent' : changeDarkness(getMainBackgroundColor(theme), 0.03)};
29
+ border: ${({ theme, intent, flat }) => flat
30
+ ? 0
31
+ : `1px solid ${changeLightness(intent ? theme.intents[intent] : getMainBackgroundColor(theme), 0.08)}`};
32
+ border-radius: ${({ rounded, size = 'normal', radiusSize }) => rounded === false ? 0 : `${resolveRadius(size, radiusSize)}px`};
33
+ color: ${({ theme }) => getReadableColor(theme, undefined, undefined, true)};
34
+ overflow: hidden;
35
+ position: relative;
36
+ flex: ${({ fluid }) => (fluid ? '1 auto' : '0 0 auto')};
37
+ transition: border-color 0.16s ease, background-color 0.16s ease, transform 0.16s ease;
38
+
39
+ ${({ $raised, flat }) => $raised && flat !== false && RaisedElement}
40
+
41
+ ${({ disabled }) => disabled && DisabledElement}
42
+
43
+ ${({ interactive, theme, intent }) => interactive
44
+ ? css `
45
+ cursor: pointer;
46
+
47
+ &:hover {
48
+ transform: translateY(-1px);
49
+ border-color: ${changeLightness(intent ? theme.intents[intent] : getMainBackgroundColor(theme), 0.18)};
50
+ }
51
+ `
52
+ : undefined}
53
+ `;
54
+ const StyledFeatureCardMarker = styled.div `
55
+ display: flex;
56
+ align-items: flex-start;
57
+ color: ${({ theme, intent }) => intent ? theme.intents[intent] : changeLightness(getMainBackgroundColor(theme), 0.22)};
58
+ font-size: ${({ size }) => TEXT_FROM_SIZE[size] * 1.4}px;
59
+ font-weight: 900;
60
+ line-height: 0.9;
61
+
62
+ ${({ marker, theme, intent }) => marker === 'line'
63
+ ? css `
64
+ &::before {
65
+ content: '';
66
+ width: 32px;
67
+ height: 6px;
68
+ background-color: ${intent
69
+ ? theme.intents[intent]
70
+ : changeLightness(getMainBackgroundColor(theme), 0.22)};
71
+ box-shadow: 0 0 22px
72
+ ${rgba(intent
73
+ ? theme.intents[intent]
74
+ : changeLightness(getMainBackgroundColor(theme), 0.22), 0.8)};
75
+ }
76
+ `
77
+ : undefined}
78
+
79
+ ${({ marker, size, theme, intent }) => marker === 'icon'
80
+ ? css `
81
+ align-items: center;
82
+ justify-content: center;
83
+ width: ${TEXT_FROM_SIZE[size] * 2.2}px;
84
+ height: ${TEXT_FROM_SIZE[size] * 2.2}px;
85
+ border-radius: ${RADIUS_FROM_SIZE[size]}px;
86
+ background: ${rgba(intent
87
+ ? theme.intents[intent]
88
+ : changeLightness(getMainBackgroundColor(theme), 0.18), 0.18)};
89
+ color: ${intent
90
+ ? theme.intents[intent]
91
+ : changeLightness(getMainBackgroundColor(theme), 0.6)};
92
+ box-shadow: inset 0 0 0 1px
93
+ ${rgba(intent
94
+ ? theme.intents[intent]
95
+ : changeLightness(getMainBackgroundColor(theme), 0.22), 0.35)};
96
+ `
97
+ : undefined}
98
+ `;
99
+ const StyledFeatureCardContent = styled.div `
100
+ display: flex;
101
+ flex-flow: column;
102
+ gap: 12px;
103
+ `;
104
+ const StyledLabelRow = styled.div `
105
+ display: flex;
106
+ align-items: center;
107
+ gap: 8px;
108
+ flex-wrap: wrap;
109
+ min-width: 0;
110
+ `;
111
+ // Cascade ellipsis CSS into the inner ReqoreP — `text-overflow: ellipsis`
112
+ // only takes effect on the actual text-bearing element.
113
+ const StyledTextSlot = styled.div `
114
+ min-width: 0;
115
+ ${({ $wrap }) => !$wrap &&
116
+ css `
117
+ flex: 1 1 auto;
118
+ overflow: hidden;
119
+
120
+ & > * {
121
+ overflow: hidden;
122
+ text-overflow: ellipsis;
123
+ white-space: nowrap;
124
+ display: block;
125
+ max-width: 100%;
126
+ }
127
+ `}
128
+ `;
129
+ export const ReqoreFeatureCard = memo(forwardRef(({ label, labelEffect, description, descriptionEffect, marker: markerProp, markerLabel, markerEffect, icon, iconColor, iconProps, badge, size = 'normal', customTheme, inheritCustomTheme, intent, className, flat, fluid, fixed, disabled, tooltip, rounded = true, transparent = false, raised, wrap = true, effect, interactive, onClick, padded = true, paddingSize, ...rest }, ref) => {
130
+ const theme = useReqoreTheme('main', customTheme, undefined, undefined, inheritCustomTheme);
131
+ const labelSize = useMemo(() => HEADER_SIZE_TO_NUMBER[size], [size]);
132
+ const descriptionSize = useMemo(() => getOneLessSize(size), [size]);
133
+ const isInteractive = interactive || !!onClick;
134
+ const hasBadge = badge !== undefined && badge !== null;
135
+ const marker = markerProp ?? (icon ? 'icon' : 'line');
136
+ return (_jsxs(ReqoreTooltipComponent, { ...rest, ref: ref, Component: StyledFeatureCard, theme: theme, customTheme: customTheme, inheritCustomTheme: inheritCustomTheme, intent: intent, flat: flat, fluid: fluid, fixed: fixed, disabled: disabled, tooltip: tooltip, rounded: rounded, "$transparent": transparent, "$raised": raised, "$padded": padded, "$paddingSize": paddingSize ?? size, effect: { interactive: isInteractive, ...effect }, interactive: isInteractive, onClick: onClick, size: size, className: `${className || ''} reqore-feature-card`, children: [marker !== 'none' && (_jsxs(StyledFeatureCardMarker, { marker: marker, size: size, theme: theme, intent: intent, className: 'reqore-feature-card-marker', children: [marker === 'number' && (_jsx(StyledEffect, { effect: markerEffect, children: markerLabel })), marker === 'icon' && icon && (_jsx(ReqoreIcon, { icon: icon, size: size, color: iconColor, ...iconProps }))] })), _jsxs(StyledFeatureCardContent, { className: 'reqore-feature-card-content', children: [_jsxs(StyledLabelRow, { className: 'reqore-feature-card-label-row', children: [_jsx(StyledTextSlot, { "$wrap": wrap, children: _jsx(ReqoreHeading, { size: labelSize, customTheme: theme, effect: labelEffect, className: 'reqore-feature-card-label', children: label }) }), hasBadge && _jsx(ButtonBadge, { size: size, content: badge, margin: 'none' })] }), description && (_jsx(StyledTextSlot, { "$wrap": wrap, children: _jsx(ReqoreP, { size: descriptionSize, customTheme: theme, effect: { opacity: 0.72, ...descriptionEffect }, className: 'reqore-feature-card-description', children: description }) }))] })] }));
137
+ }));
138
+ export default ReqoreFeatureCard;
139
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/FeatureCard/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { createElement as _createElement } from "react";
3
+ import { map } from 'lodash';
4
+ import { cloneElement, isValidElement, memo } from 'react';
5
+ import { createPortal } from 'react-dom';
6
+ import { ReqoreErrorBoundary, ReqoreModal, useReqoreProperty } from '../..';
7
+ import { modalStore } from '../../containers/ReqoreProvider';
8
+ export const ReqoreModalsWrapper = memo(() => {
9
+ const { modals, removeModal } = modalStore();
10
+ const customPortalId = useReqoreProperty('customPortalId');
11
+ return (_jsx(ReqoreErrorBoundary, { children: map(modals, ({ modal, options: modalOptions }, key) => isValidElement(modal) ? (createPortal(cloneElement(modal, {
12
+ key,
13
+ isOpen: true,
14
+ onClose: modalOptions?.closable
15
+ ? () => {
16
+ removeModal(key);
17
+ modal.props.onClose?.();
18
+ }
19
+ : undefined,
20
+ }), document.querySelector(customPortalId || '#reqore-portal'))) : (_createElement(ReqoreModal, { ...modal, key: key, isOpen: true, onClose: modalOptions?.closable
21
+ ? () => {
22
+ removeModal(key);
23
+ modal.onClose?.();
24
+ }
25
+ : undefined }))) }));
26
+ });
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/GlobalModalsWrapper/index.tsx"],"names":[],"mappings":";;AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAC7B,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC,GAAG,EAAE;IAC3C,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,UAAU,EAAE,CAAC;IAC7C,MAAM,cAAc,GAAG,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IAE3D,OAAO,CACL,KAAC,mBAAmB,cACjB,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,GAAG,EAAE,EAAE,CACrD,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CACtB,YAAY,CACV,YAAY,CAAC,KAAK,EAAE;YAClB,GAAG;YACH,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE,YAAY,EAAE,QAAQ;gBAC7B,CAAC,CAAC,GAAG,EAAE;oBACH,WAAW,CAAC,GAAG,CAAC,CAAC;oBACjB,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;gBAC1B,CAAC;gBACH,CAAC,CAAC,SAAS;SACd,CAAC,EACF,QAAQ,CAAC,aAAa,CAAC,cAAc,IAAI,gBAAgB,CAAE,CAC5D,CACF,CAAC,CAAC,CAAC,CACF,eAAC,WAAW,OACN,KAAK,EACT,GAAG,EAAE,GAAG,EACR,MAAM,QACN,OAAO,EACL,YAAY,EAAE,QAAQ;gBACpB,CAAC,CAAC,GAAG,EAAE;oBACH,WAAW,CAAC,GAAG,CAAC,CAAC;oBACjB,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC;gBACpB,CAAC;gBACH,CAAC,CAAC,SAAS,GAEf,CACH,CACF,GACmB,CACvB,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -0,0 +1,55 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { forwardRef, memo, useMemo } from 'react';
3
+ import styled from 'styled-components';
4
+ import { HEADER_SIZE_TO_NUMBER } 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 StyledHeader = styled(StyledTextEffect) `
10
+ margin: 0;
11
+ padding: 0;
12
+ color: ${({ theme, intent }) => (intent ? theme.intents[intent] : 'inherit')};
13
+
14
+ font-size: ${({ _size }) => {
15
+ switch (_size) {
16
+ case 1:
17
+ return '30px';
18
+ case 2:
19
+ return '24px';
20
+ case 3:
21
+ return '19px';
22
+ case 4:
23
+ return '14px';
24
+ case 5:
25
+ return '11px';
26
+ case 6:
27
+ return '8px';
28
+ default:
29
+ return 'inherit';
30
+ }
31
+ }};
32
+ `;
33
+ export const ReqoreHeading = memo(forwardRef(({ size, children, customTheme, intent, className, tooltip, ...rest }, ref) => {
34
+ const theme = useReqoreTheme('main', customTheme, intent);
35
+ const _size = isStringSize(size) ? HEADER_SIZE_TO_NUMBER[size] : size;
36
+ const HTMLheaderElement = useMemo(() => {
37
+ return `h${_size}`;
38
+ }, [_size]);
39
+ return (_jsx(ReqoreTooltipComponent, { Component: StyledHeader, ref: ref, ...{
40
+ tooltip,
41
+ as: HTMLheaderElement,
42
+ theme,
43
+ intent,
44
+ ...rest,
45
+ _size,
46
+ className: `${className || ''} reqore-heading`,
47
+ }, children: children }));
48
+ }));
49
+ export const ReqoreH1 = (props) => _jsx(ReqoreHeading, { size: 1, ...props });
50
+ export const ReqoreH2 = (props) => _jsx(ReqoreHeading, { size: 2, ...props });
51
+ export const ReqoreH3 = (props) => _jsx(ReqoreHeading, { size: 3, ...props });
52
+ export const ReqoreH4 = (props) => _jsx(ReqoreHeading, { size: 4, ...props });
53
+ export const ReqoreH5 = (props) => _jsx(ReqoreHeading, { size: 5, ...props });
54
+ export const ReqoreH6 = (props) => _jsx(ReqoreHeading, { size: 6, ...props });
55
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/Header/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,130 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { rgba } from 'polished';
3
+ import { forwardRef, memo, useMemo } from 'react';
4
+ import { IconContext } from 'react-icons';
5
+ import * as RemixIcons from 'react-icons/ri';
6
+ import styled, { css, keyframes } from 'styled-components';
7
+ import { useReqoreTheme } from '../..';
8
+ import { ICON_FROM_SIZE, PADDING_FROM_SIZE } from '../../constants/sizes';
9
+ import { getColorFromMaybeString, getReadableColor } from '../../helpers/colors';
10
+ import { isStringSize } from '../../helpers/utils';
11
+ import { useReqoreProperty } from '../../hooks/useReqoreContext';
12
+ import { StyledEffect } from '../Effect';
13
+ import { ReqoreTooltipComponent } from '../TooltipComponent';
14
+ const SpinKeyframes = keyframes `
15
+ 0% {
16
+ rotate: 0deg;
17
+ }
18
+ 100% {
19
+ rotate: 360deg;
20
+ }
21
+ `;
22
+ export const StyledIconWrapper = styled(StyledEffect) `
23
+ display: inline-flex;
24
+ flex: 0 0 auto;
25
+ justify-content: center;
26
+ align-items: center;
27
+ vertical-align: text-bottom;
28
+ transition: all 0.2s ease-out;
29
+ overflow: hidden;
30
+
31
+ border-radius: ${({ rounded }) => (rounded ? '50%' : undefined)};
32
+ rotate: ${({ rotation }) => (rotation ? `${rotation}deg` : undefined)};
33
+ cursor: ${({ interactive }) => (interactive ? 'pointer' : undefined)};
34
+
35
+ ${({ margin, marginSize, size, compact }) => margin &&
36
+ css `
37
+ margin-left: ${margin === 'left' || margin === 'both'
38
+ ? marginSize
39
+ ? `${marginSize}px`
40
+ : isStringSize(size)
41
+ ? `${PADDING_FROM_SIZE[size] / (compact ? 2 : 1)}px`
42
+ : compact
43
+ ? '3px'
44
+ : '6px'
45
+ : undefined};
46
+ margin-right: ${margin === 'right' || margin === 'both'
47
+ ? marginSize
48
+ ? `${marginSize}px`
49
+ : isStringSize(size)
50
+ ? `${PADDING_FROM_SIZE[size] / (compact ? 2 : 1)}px`
51
+ : compact
52
+ ? '3px'
53
+ : '6px'
54
+ : undefined};
55
+ `}
56
+
57
+ img {
58
+ width: 100%;
59
+ }
60
+
61
+ ${({ animation }) => animation === 'spin' &&
62
+ css `
63
+ animation: ${SpinKeyframes} 1s linear infinite;
64
+ `}
65
+ `;
66
+ const ReqoreIcon = memo(forwardRef(({ icon, size = 'normal', wrapperSize, wrapperElement, className, color, margin, marginSize, style = {}, iconProps, intent, image, glow, ...rest }, ref) => {
67
+ const theme = useReqoreTheme();
68
+ const glowingIconsDefault = useReqoreProperty('glowingIcons');
69
+ const Icon = RemixIcons[`Ri${icon}`];
70
+ const finalColor = useMemo(() => (intent ? theme.intents[intent] : getColorFromMaybeString(theme, color)), [intent, theme, color]);
71
+ const finalSize = isStringSize(size) ? ICON_FROM_SIZE[size] : size;
72
+ const finalWrapperSize = wrapperSize
73
+ ? isStringSize(wrapperSize)
74
+ ? ICON_FROM_SIZE[wrapperSize]
75
+ : wrapperSize
76
+ : finalSize;
77
+ const finalMarginSize = isStringSize(marginSize)
78
+ ? PADDING_FROM_SIZE[marginSize]
79
+ : marginSize;
80
+ // Resolve the glow shorthand into a `filter: drop-shadow(...)` value so
81
+ // the glow follows the SVG outline rather than the wrapper's bounding box.
82
+ // When the local `glow` prop is undefined, fall back to the global
83
+ // `glowingIcons` UI option so a single switch can turn glows on app-wide.
84
+ // Pass `glow={false}` explicitly to opt a single icon out.
85
+ const effectiveGlow = glow === undefined ? glowingIconsDefault : glow;
86
+ const glowFilter = useMemo(() => {
87
+ if (!effectiveGlow)
88
+ return undefined;
89
+ const config = typeof effectiveGlow === 'boolean'
90
+ ? {}
91
+ : typeof effectiveGlow === 'string'
92
+ ? { color: effectiveGlow }
93
+ : effectiveGlow;
94
+ // Resolution order: explicit glow.color → icon's intent/color prop.
95
+ // When the prop was set explicitly (not via the global `glowingIcons`
96
+ // option), fall back to a theme-readable colour so a plain icon still
97
+ // glows. The global flag intentionally does NOT force-glow uncoloured
98
+ // icons — it only enhances icons that already have an intent/colour.
99
+ const explicit = glow !== undefined;
100
+ const resolved = (config.color ? getColorFromMaybeString(theme, config.color) : undefined) ??
101
+ finalColor ??
102
+ (explicit ? getReadableColor(theme, undefined, undefined, true) : undefined);
103
+ if (!resolved)
104
+ return undefined;
105
+ const blur = config.blur ?? 5;
106
+ const opacity = config.opacity ?? 0.8;
107
+ return `drop-shadow(0 0 ${blur}px ${rgba(resolved, opacity)})`;
108
+ }, [effectiveGlow, glow, finalColor, theme]);
109
+ const finalStyle = useMemo(() => ({
110
+ width: finalWrapperSize,
111
+ height: finalWrapperSize,
112
+ ...(glowFilter ? { filter: glowFilter } : {}),
113
+ ...style,
114
+ }), [finalWrapperSize, glowFilter, style]);
115
+ if (image) {
116
+ return (_jsx(ReqoreTooltipComponent, { ...rest, Component: StyledIconWrapper, as: wrapperElement, ref: ref, size: size, margin: margin, marginSize: finalMarginSize, className: `${className || ''} reqore-icon`, style: finalStyle, children: _jsx("img", { src: image, alt: '' }) }));
117
+ }
118
+ if (!Icon) {
119
+ return (_jsx(ReqoreTooltipComponent, { ...rest, Component: StyledIconWrapper, as: wrapperElement, ref: ref, size: size, margin: margin, marginSize: finalMarginSize, className: `${className || ''} reqore-icon`, style: finalStyle }));
120
+ }
121
+ return (_jsx(ReqoreTooltipComponent, { ...rest, Component: StyledIconWrapper, as: wrapperElement, ref: ref, margin: margin, size: size, marginSize: finalMarginSize, style: finalStyle, className: `${className || ''} reqore-icon`, children: _jsx(IconContext.Provider, { value: {
122
+ color: finalColor || 'inherit',
123
+ size: finalSize,
124
+ style: {
125
+ verticalAlign: 'super',
126
+ },
127
+ }, children: _jsx(Icon, { ...iconProps }) }) }));
128
+ }));
129
+ export default ReqoreIcon;
130
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/Icon/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,136 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { omit } from 'lodash';
3
+ import { rgba } from 'polished';
4
+ import { forwardRef, useState } from 'react';
5
+ import styled, { css } from 'styled-components';
6
+ import { CONTROL_ICON_OPACITY } from '../../constants/colors';
7
+ import { CONTROL_TEXT_FROM_SIZE, PADDING_FROM_SIZE, PILL_RADIUS_MODIFIER, resolveRadius, SIZE_TO_PX, } from '../../constants/sizes';
8
+ import { changeLightness, getReadableColor } from '../../helpers/colors';
9
+ import { useAutoFocus } from '../../hooks/useAutoFocus';
10
+ import { useCombinedRefs } from '../../hooks/useCombinedRefs';
11
+ import { useReqoreTheme } from '../../hooks/useTheme';
12
+ import { ActiveIconScale, DisabledElement, InactiveIconScale, ReadOnlyElement } from '../../styles';
13
+ import { StyledEffect } from '../Effect';
14
+ import ReqoreIcon from '../Icon';
15
+ import ReqoreInputClearButton from '../InputClearButton';
16
+ import { ReqoreTooltipComponent } from '../TooltipComponent';
17
+ export const StyledInputWrapper = styled.div `
18
+ height: ${({ _size }) => SIZE_TO_PX[_size]}px;
19
+ width: ${({ width }) => (width ? `${width}px` : 'auto')};
20
+ max-width: ${({ fluid, fixed }) => (fluid && !fixed ? '100%' : undefined)};
21
+ min-width: 60px;
22
+ flex: ${({ fluid, fixed }) => (fixed ? '0 auto' : fluid ? '1 auto' : '0 1 auto')};
23
+ align-self: ${({ fixed, fluid }) => (fixed ? 'flex-start' : fluid ? 'stretch' : undefined)};
24
+ font-size: ${({ _size }) => CONTROL_TEXT_FROM_SIZE[_size]}px;
25
+ position: relative;
26
+ overflow: hidden;
27
+ border-radius: ${({ minimal, rounded, _size, radiusSize, pill }) => minimal || rounded === false
28
+ ? 0
29
+ : resolveRadius(_size, radiusSize) * (pill ? PILL_RADIUS_MODIFIER : 1)}px;
30
+
31
+ ${InactiveIconScale}
32
+
33
+ &:focus-within {
34
+ .reqore-clear-input-button {
35
+ display: flex;
36
+ }
37
+
38
+ outline: 2px solid ${({ theme }) => changeLightness(theme.main, 0.25)};
39
+ outline-offset: -2px;
40
+
41
+ ${ActiveIconScale}
42
+ }
43
+ `;
44
+ const StyledIconWrapper = styled.div `
45
+ position: absolute;
46
+ height: ${({ _size }) => SIZE_TO_PX[_size]}px;
47
+ width: ${({ _size }) => SIZE_TO_PX[_size]}px;
48
+ right: ${({ position }) => (position === 'right' ? 0 : undefined)};
49
+ top: 0;
50
+ display: flex;
51
+ justify-content: center;
52
+ align-items: center;
53
+ `;
54
+ export const StyledInput = styled(StyledEffect) `
55
+ height: 100%;
56
+ width: 100%;
57
+ flex: 1;
58
+ margin: 0;
59
+ padding: ${({ _size }) => PADDING_FROM_SIZE[_size] / 2}px 7px;
60
+ padding-right: ${({ clearable, hasRightIcon, _size }) => {
61
+ let padding = 7;
62
+ if (clearable || hasRightIcon) {
63
+ padding = 0;
64
+ padding += clearable ? SIZE_TO_PX[_size] : 0;
65
+ padding += hasRightIcon ? SIZE_TO_PX[_size] : 0;
66
+ }
67
+ return padding;
68
+ }}px;
69
+
70
+ padding-left: ${({ hasIcon, _size }) => (hasIcon ? SIZE_TO_PX[_size] : 7)}px;
71
+ font-size: ${({ _size }) => CONTROL_TEXT_FROM_SIZE[_size]}px;
72
+ transition: all 0.2s ease-out;
73
+ border-radius: inherit;
74
+
75
+ border: ${({ minimal, theme, flat }) => !minimal && !flat ? `1px solid ${changeLightness(theme.main, 0.13)}` : 0};
76
+ border-bottom: ${({ minimal, theme, flat }) => minimal && !flat ? `0.5px solid ${changeLightness(theme.main, 0.13)}` : undefined};
77
+
78
+ ${({ disabled, readOnly }) => !disabled && !readOnly
79
+ ? css `
80
+ &:active,
81
+ &:focus,
82
+ &:hover {
83
+ border-color: ${({ theme }) => changeLightness(theme.main, 0.35)};
84
+ }
85
+ `
86
+ : undefined}
87
+
88
+ background-color: ${({ theme, minimal, transparent }) => minimal || transparent ? 'transparent' : rgba(theme.main, 0.1)};
89
+ color: ${({ theme }) => getReadableColor(theme, undefined, undefined, true, theme.originalMain)};
90
+
91
+ transition: all 0.2s ease-out;
92
+
93
+ &:active,
94
+ &:focus {
95
+ outline: none;
96
+ background-color: ${({ theme, minimal, transparent }) => minimal || transparent ? 'transparent' : rgba(theme.main, 0.15)};
97
+ }
98
+
99
+ &::placeholder {
100
+ transition: all 0.2s ease-out;
101
+ color: ${({ theme }) => rgba(getReadableColor(theme, undefined, undefined, true, theme.originalMain), 0.3)};
102
+ }
103
+
104
+ &:focus {
105
+ &::placeholder {
106
+ color: ${({ theme }) => rgba(getReadableColor(theme, undefined, undefined, true, theme.originalMain), 0.5)};
107
+ }
108
+ }
109
+
110
+ ${({ readOnly }) => readOnly && ReadOnlyElement};
111
+
112
+ &:disabled {
113
+ ${DisabledElement};
114
+ }
115
+ `;
116
+ const ReqoreInput = forwardRef(({ width, size = 'normal', fluid, fixed, className, onClearClick, icon, rightIcon, iconColor, rightIconColor, flat, rounded, radiusSize, minimal, readOnly, customTheme, inheritCustomTheme, intent, wrapperStyle, focusRules, leftIconProps = {}, rightIconProps = {}, pill, loading, loadingIconType, ...rest }, ref) => {
117
+ const { targetRef } = useCombinedRefs(ref);
118
+ const [inputRef, setInputRef] = useState(null);
119
+ const theme = useReqoreTheme('main', customTheme, intent, undefined, inheritCustomTheme);
120
+ useAutoFocus(inputRef, readOnly || rest.disabled ? undefined : focusRules, rest.onChange);
121
+ const hasLeftIcon = icon || leftIconProps?.image;
122
+ const hasRightIcon = rightIcon || rightIconProps?.image;
123
+ const leftIcon = loading
124
+ ? `Loader${loadingIconType || ''}Line`
125
+ : icon || leftIconProps?.icon;
126
+ return (_jsxs(ReqoreTooltipComponent, { Component: StyledInputWrapper, className: 'reqore-control-wrapper', fluid: fluid, fixed: fixed, width: width, flat: flat, theme: theme, rounded: rounded, radiusSize: radiusSize, minimal: minimal, _size: size, ref: targetRef, readOnly: readOnly || loading, disabled: rest.disabled, style: wrapperStyle, pill: pill, tooltip: rest.tooltip, children: [hasLeftIcon && (_jsx(StyledIconWrapper, { _size: size, children: _jsx(ReqoreIcon, { size: size, color: iconColor, effect: { opacity: CONTROL_ICON_OPACITY }, ...leftIconProps, icon: leftIcon, animation: loading ? 'spin' : leftIconProps?.animation }) })), _jsx(StyledInput, { as: 'input', ...omit(rest, ['children']), effect: {
127
+ interactive: !rest?.disabled && !readOnly,
128
+ ...rest?.effect,
129
+ }, onChange: !readOnly && !rest?.disabled ? rest?.onChange : undefined, ref: (ref) => setInputRef(ref), theme: theme, _size: size, minimal: minimal, flat: flat, rounded: rounded, hasIcon: !!icon, hasRightIcon: !!rightIcon, clearable: !rest?.disabled &&
130
+ !readOnly &&
131
+ !!(onClearClick && (rest.as || rest.children || rest?.onChange)), className: `${className || ''} reqore-control reqore-input`, readOnly: readOnly || loading, pill: pill, children: rest?.children }), _jsx(ReqoreInputClearButton, { enabled: !readOnly &&
132
+ !rest?.disabled &&
133
+ !!(onClearClick && (rest.as || rest.children || rest?.onChange)), onClick: onClearClick, hasRightIcon: !!rightIcon, size: size, show: rest?.value && rest.value !== '' ? true : false }), hasRightIcon && (_jsx(StyledIconWrapper, { _size: size, position: 'right', children: _jsx(ReqoreIcon, { size: size, icon: rightIcon, color: rightIconColor, effect: { opacity: CONTROL_ICON_OPACITY }, ...rightIconProps }) }))] }));
134
+ });
135
+ export default ReqoreInput;
136
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/components/Input/index.tsx"],"names":[],"mappings":"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"}