@integry/sdk 4.7.39 → 4.7.41

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 (267) hide show
  1. package/dist/esm/index.csm.js +1 -1
  2. package/dist/umd/index.umd.js +1 -1
  3. package/package.json +6 -1
  4. package/.eslintignore +0 -1
  5. package/.vscode/launch.json +0 -17
  6. package/CHANGELOG_INTERNAL.md +0 -134
  7. package/README_INTERNAL.md +0 -176
  8. package/THIRD_PARTY_LICENSES +0 -525
  9. package/generateTests.js +0 -80
  10. package/jest.config.cjs +0 -10
  11. package/src/components/AddTagButton/index.ts +0 -23
  12. package/src/components/BasicSelect/index.ts +0 -123
  13. package/src/components/BasicSelect/styles.module.scss +0 -44
  14. package/src/components/Button/index.ts +0 -97
  15. package/src/components/Button/styles.module.scss +0 -152
  16. package/src/components/CheckboxGroup/Checkbox.ts +0 -104
  17. package/src/components/CheckboxGroup/index.ts +0 -190
  18. package/src/components/CheckboxGroup/styles.module.scss +0 -63
  19. package/src/components/CollapsedMenu/index.ts +0 -104
  20. package/src/components/CollapsedMenu/styles.module.scss +0 -46
  21. package/src/components/ConfigureFieldWrapper/index.ts +0 -85
  22. package/src/components/ConfigureFieldWrapper/styles.module.scss +0 -57
  23. package/src/components/EditableText/index.ts +0 -121
  24. package/src/components/EditableText/styles.module.scss +0 -38
  25. package/src/components/EditableTextArea/index.ts +0 -143
  26. package/src/components/EditableTextArea/styles.module.scss +0 -91
  27. package/src/components/ErrorMessage/index.ts +0 -16
  28. package/src/components/ErrorMessage/styles.module.scss +0 -19
  29. package/src/components/ErrorPage/index.ts +0 -42
  30. package/src/components/ErrorPage/styles.module.scss +0 -26
  31. package/src/components/Footer/index.ts +0 -41
  32. package/src/components/Footer/styles.module.scss +0 -40
  33. package/src/components/HTMLContent/index.tsx +0 -205
  34. package/src/components/HTMLContent/styles.module.scss +0 -3
  35. package/src/components/InfoBox/index.ts +0 -48
  36. package/src/components/InfoBox/styles.module.scss +0 -21
  37. package/src/components/Input/BaseInput/index.ts +0 -170
  38. package/src/components/Input/BaseInput/styles.module.scss +0 -95
  39. package/src/components/Input/DateInput/index.ts +0 -103
  40. package/src/components/Input/DateInput/styles.module.scss +0 -50
  41. package/src/components/Input/Input/index.ts +0 -225
  42. package/src/components/Input/Input/styles.module.scss +0 -16
  43. package/src/components/Input/PasswordInput/index.ts +0 -164
  44. package/src/components/Input/PasswordInput/styles.module.scss +0 -37
  45. package/src/components/Input/index.ts +0 -7
  46. package/src/components/Label/index.ts +0 -61
  47. package/src/components/Label/styles.module.scss +0 -41
  48. package/src/components/LargeLoader/index.ts +0 -25
  49. package/src/components/LargeLoader/styles.module.scss +0 -16
  50. package/src/components/Listbox/ListBoxItem.ts +0 -57
  51. package/src/components/Listbox/index.ts +0 -488
  52. package/src/components/Listbox/styles.module.scss +0 -197
  53. package/src/components/Loader/index.ts +0 -25
  54. package/src/components/Loader/styles.module.scss +0 -16
  55. package/src/components/MediaGallery/MediaGalleryModal.ts +0 -82
  56. package/src/components/MediaGallery/MediaSlider.ts +0 -76
  57. package/src/components/MediaGallery/index.ts +0 -92
  58. package/src/components/MediaGallery/styles.module.scss +0 -156
  59. package/src/components/MediaUpload/index.ts +0 -233
  60. package/src/components/MediaUpload/styles.module.scss +0 -118
  61. package/src/components/Modal/index.ts +0 -87
  62. package/src/components/Modal/styles.module.scss +0 -441
  63. package/src/components/MultipurposeField/Dropdown/ListBoxItem.tsx +0 -59
  64. package/src/components/MultipurposeField/Dropdown/index.tsx +0 -1202
  65. package/src/components/MultipurposeField/Dropdown/styles.module.scss +0 -215
  66. package/src/components/MultipurposeField/TagMenu/index.ts +0 -536
  67. package/src/components/MultipurposeField/TagMenu/styles.module.scss +0 -175
  68. package/src/components/MultipurposeField/TagOptions/index.tsx +0 -83
  69. package/src/components/MultipurposeField/TagOptions/styles.module.scss +0 -95
  70. package/src/components/MultipurposeField/index.tsx +0 -944
  71. package/src/components/MultipurposeField/styles.module.scss +0 -77
  72. package/src/components/NewModal/index.ts +0 -69
  73. package/src/components/NewModal/styles.module.scss +0 -70
  74. package/src/components/OverflowTooltip/index.tsx +0 -59
  75. package/src/components/PopUp/ConfirmationPopUp/index.ts +0 -58
  76. package/src/components/PopUp/ConfirmationPopUp/styles.module.scss +0 -49
  77. package/src/components/PopUp/SuccessPopUp/index.ts +0 -62
  78. package/src/components/PopUp/SuccessPopUp/styles.module.scss +0 -38
  79. package/src/components/RadioGroup/Radio.ts +0 -128
  80. package/src/components/RadioGroup/index.ts +0 -169
  81. package/src/components/RadioGroup/styles.module.scss +0 -81
  82. package/src/components/Search/index.ts +0 -69
  83. package/src/components/Search/styles.module.scss +0 -149
  84. package/src/components/TabBar/Tab.ts +0 -33
  85. package/src/components/TabBar/index.ts +0 -64
  86. package/src/components/TabBar/styles.module.scss +0 -43
  87. package/src/components/Tag/index.ts +0 -29
  88. package/src/components/Tag/styles.module.scss +0 -57
  89. package/src/components/TagsMenu/index.ts +0 -1697
  90. package/src/components/TagsMenu/styles.module.scss +0 -350
  91. package/src/components/TestComponent/index.ts +0 -71
  92. package/src/components/TestComponent/styles.module.scss +0 -152
  93. package/src/components/TextArea/index.ts +0 -172
  94. package/src/components/TextArea/styles.module.scss +0 -72
  95. package/src/components/TextContent/index.tsx +0 -128
  96. package/src/components/TextContent/styles.module.scss +0 -6
  97. package/src/components/ThreeDotLoader/index.ts +0 -39
  98. package/src/components/ThreeDotLoader/styles.module.scss +0 -41
  99. package/src/components/TimeInput/index.ts +0 -129
  100. package/src/components/TimeInput/styles.module.scss +0 -16
  101. package/src/components/Toggle/index.ts +0 -34
  102. package/src/components/Toggle/styles.module.scss +0 -56
  103. package/src/components/Toggle-v2/index.ts +0 -40
  104. package/src/components/Toggle-v2/styles.module.scss +0 -86
  105. package/src/components/Tooltip/index.ts +0 -271
  106. package/src/components/Tooltip/styles.module.scss +0 -105
  107. package/src/components/form/FunctionField/index.ts +0 -816
  108. package/src/components/form/FunctionField/styles.module.scss +0 -478
  109. package/src/components/form/ObjectField/__snapshots__/index.ts.test.tsx.snap +0 -3
  110. package/src/components/form/ObjectField/index.ts +0 -593
  111. package/src/components/form/ObjectField/index.ts.test.tsx +0 -213
  112. package/src/components/form/ObjectField/styles.module.scss +0 -103
  113. package/src/components/form/index.ts +0 -4
  114. package/src/contexts/AppContext.ts +0 -12
  115. package/src/declaration.d.ts +0 -7
  116. package/src/extensions/HMAC.ts +0 -25
  117. package/src/extensions/IntegryAPIError.ts +0 -19
  118. package/src/features/common/AccountDropdown/index.ts +0 -291
  119. package/src/features/common/AccountDropdown/styles.module.scss +0 -19
  120. package/src/features/common/ActionForm/index.ts +0 -2602
  121. package/src/features/common/ActionForm/styles.module.scss +0 -35
  122. package/src/features/common/AppCard/index.ts +0 -207
  123. package/src/features/common/AppCard/styles.module.scss +0 -117
  124. package/src/features/common/AppCardCompact/index.ts +0 -189
  125. package/src/features/common/AppCardCompact/styles.module.scss +0 -141
  126. package/src/features/common/AuthSelector/index.ts +0 -537
  127. package/src/features/common/AuthSelector/styles.module.scss +0 -161
  128. package/src/features/common/AuthSelectorCompact/index.ts +0 -706
  129. package/src/features/common/AuthSelectorCompact/styles.module.scss +0 -219
  130. package/src/features/common/AuthSelectorDropdown/index.ts +0 -704
  131. package/src/features/common/AuthSelectorDropdown/styles.module.scss +0 -361
  132. package/src/features/common/AuthSelectorV2/index.ts +0 -336
  133. package/src/features/common/AuthSelectorV2/styles.module.scss +0 -235
  134. package/src/features/common/DynamicField/index.ts +0 -402
  135. package/src/features/common/DynamicField/styles.module.scss +0 -266
  136. package/src/features/common/DynamicTypedField/index.ts +0 -504
  137. package/src/features/common/DynamicTypedField/styles.module.scss +0 -135
  138. package/src/features/common/FunctionForm/index.ts +0 -1095
  139. package/src/features/common/FunctionForm/styles.module.scss +0 -225
  140. package/src/features/common/MappingUI/index.ts +0 -649
  141. package/src/features/common/MappingUI/styles.module.scss +0 -121
  142. package/src/features/common/MarketplaceAppCard/index.ts +0 -279
  143. package/src/features/common/MarketplaceAppCard/styles.module.scss +0 -231
  144. package/src/features/common/MarketplaceAppCardCompact/index.ts +0 -283
  145. package/src/features/common/MarketplaceAppCardCompact/styles.module.scss +0 -255
  146. package/src/features/common/NewMappingUI/index.ts +0 -515
  147. package/src/features/common/NewMappingUI/styles.module.scss +0 -113
  148. package/src/features/common/RequestAppWidget/RequestAppModal/index.ts +0 -67
  149. package/src/features/common/RequestAppWidget/RequestAppModal/styles.module.scss +0 -23
  150. package/src/features/common/RequestAppWidget/index.ts +0 -48
  151. package/src/features/common/RequestAppWidget/request-app-form.ts +0 -89
  152. package/src/features/common/RequestAppWidget/styles.module.scss +0 -43
  153. package/src/features/common/SectionField/index.ts +0 -272
  154. package/src/features/common/SectionField/styles.module.scss +0 -67
  155. package/src/features/common/Step/index.ts +0 -827
  156. package/src/features/common/Step/styles.module.scss +0 -12
  157. package/src/features/common/StepNavigation/CollapsedSteps.ts +0 -131
  158. package/src/features/common/StepNavigation/NavItem.ts +0 -111
  159. package/src/features/common/StepNavigation/index.ts +0 -261
  160. package/src/features/common/StepNavigation/styles.module.scss +0 -117
  161. package/src/features/common/Steps/index.ts +0 -1140
  162. package/src/features/common/Steps/styles.module.scss +0 -314
  163. package/src/features/containers/AppFlowContainer/AppFlowListing/compactStyles.module.scss +0 -404
  164. package/src/features/containers/AppFlowContainer/AppFlowListing/flow-instance.tsx +0 -367
  165. package/src/features/containers/AppFlowContainer/AppFlowListing/flowCard.test.tsx +0 -58
  166. package/src/features/containers/AppFlowContainer/AppFlowListing/flowCard.tsx +0 -208
  167. package/src/features/containers/AppFlowContainer/AppFlowListing/flowCardCompact.test.tsx +0 -49
  168. package/src/features/containers/AppFlowContainer/AppFlowListing/flowCardCompact.tsx +0 -421
  169. package/src/features/containers/AppFlowContainer/AppFlowListing/flowInstanceCompact.tsx +0 -577
  170. package/src/features/containers/AppFlowContainer/AppFlowListing/index.tsx +0 -83
  171. package/src/features/containers/AppFlowContainer/AppFlowListing/styles.module.scss +0 -233
  172. package/src/features/containers/AppFlowContainer/AppFlowWrap/app-page-loader.tsx +0 -45
  173. package/src/features/containers/AppFlowContainer/AppFlowWrap/index.tsx +0 -1085
  174. package/src/features/containers/AppFlowContainer/AppFlowWrap/styles.module.scss +0 -465
  175. package/src/features/containers/AppFlowContainer/Authentication/index.ts +0 -610
  176. package/src/features/containers/AppFlowContainer/Authentication/styles.module.scss +0 -468
  177. package/src/features/containers/AppFlowContainer/index.ts +0 -114
  178. package/src/features/containers/AppPageContainer/AppPage/index.tsx +0 -262
  179. package/src/features/containers/AppPageContainer/AppPage/styles.module.scss +0 -120
  180. package/src/features/containers/AppPageContainer/IntegrationCard/index.ts +0 -165
  181. package/src/features/containers/AppPageContainer/IntegrationCard/styles.module.scss +0 -81
  182. package/src/features/containers/AppPageContainer/index.tsx +0 -93
  183. package/src/features/containers/AppPageContainer/styles.module.scss +0 -0
  184. package/src/features/containers/AppsForFlows/index.ts +0 -161
  185. package/src/features/containers/AppsForFlows/styles.module.scss +0 -280
  186. package/src/features/containers/AppsForFlowsCompact/index.ts +0 -161
  187. package/src/features/containers/AppsForFlowsCompact/styles.module.scss +0 -279
  188. package/src/features/containers/AuthSetupContainer/AppSelection.ts +0 -73
  189. package/src/features/containers/AuthSetupContainer/AuthTypeSelection.ts +0 -67
  190. package/src/features/containers/AuthSetupContainer/Footer.ts +0 -32
  191. package/src/features/containers/AuthSetupContainer/Header.ts +0 -39
  192. package/src/features/containers/AuthSetupContainer/PostAdditionPopup.ts +0 -27
  193. package/src/features/containers/AuthSetupContainer/index.ts +0 -349
  194. package/src/features/containers/AuthSetupContainer/styles.module.scss +0 -229
  195. package/src/features/containers/FlowSetupContainer/index.ts +0 -391
  196. package/src/features/containers/FlowSetupContainer/styles.module.scss +0 -18
  197. package/src/features/containers/MarkeplaceApps/index.ts +0 -583
  198. package/src/features/containers/MarkeplaceApps/styles.module.scss +0 -558
  199. package/src/features/containers/MarketplaceAppsCompact/index.ts +0 -585
  200. package/src/features/containers/MarketplaceAppsCompact/styles.module.scss +0 -563
  201. package/src/features/containers/MarketplaceAppsContainer/index.ts +0 -91
  202. package/src/features/containers/MarketplaceContainer/AppCard/index.ts +0 -91
  203. package/src/features/containers/MarketplaceContainer/AppCard/styles.module.scss +0 -66
  204. package/src/features/containers/MarketplaceContainer/AppListing/index.ts +0 -34
  205. package/src/features/containers/MarketplaceContainer/AppListing/styles.module.scss +0 -10
  206. package/src/features/containers/MarketplaceContainer/MarketplaceContentWrap/index.ts +0 -132
  207. package/src/features/containers/MarketplaceContainer/MarketplaceContentWrap/styles.module.scss +0 -117
  208. package/src/features/containers/MarketplaceContainer/index.ts +0 -242
  209. package/src/features/containers/MarketplaceContainer/styles.module.scss +0 -84
  210. package/src/features/containers/SDKContainer/index.ts +0 -817
  211. package/src/features/containers/SDKContainer/styles.module.scss +0 -266
  212. package/src/features/containers/SDKDebugContainer/index.ts +0 -137
  213. package/src/features/containers/SDKDebugContainer/styles.module.scss +0 -37
  214. package/src/features/containers/SDKFailedContainer/index.ts +0 -117
  215. package/src/features/containers/SDKFailedContainer/styles.module.scss +0 -57
  216. package/src/features/integrations/IntegrationRow/Icons.ts +0 -77
  217. package/src/features/integrations/IntegrationRow/index.ts +0 -129
  218. package/src/features/integrations/IntegrationRow/styles.module.scss +0 -62
  219. package/src/features/integrations/IntegrationsHeader/index.ts +0 -34
  220. package/src/features/integrations/IntegrationsHeader/styles.module.scss +0 -47
  221. package/src/features/integrations/IntegrationsList/index.ts +0 -252
  222. package/src/features/integrations/IntegrationsList/styles.module.scss +0 -67
  223. package/src/features/templates/Template/index.ts +0 -295
  224. package/src/features/templates/Template/styles.module.scss +0 -226
  225. package/src/features/templates/TemplatesView/index.ts +0 -368
  226. package/src/features/templates/TemplatesView/styles.module.scss +0 -71
  227. package/src/features/templates/TemplatesViewCompact/index.ts +0 -364
  228. package/src/features/templates/TemplatesViewCompact/styles.module.scss +0 -141
  229. package/src/hooks/useAutosizeTextArea.ts +0 -22
  230. package/src/hooks/useCustomRef.ts +0 -13
  231. package/src/hooks/useDebounce.ts +0 -17
  232. package/src/hooks/useElementResize.ts +0 -40
  233. package/src/hooks/useEventListener.ts +0 -42
  234. package/src/hooks/useHover.ts +0 -40
  235. package/src/hooks/useOnClickOutside.ts +0 -32
  236. package/src/index.ts +0 -2244
  237. package/src/index.umd.ts +0 -13
  238. package/src/interfaces/index.ts +0 -938
  239. package/src/modules/api/index.ts +0 -1325
  240. package/src/modules/api/responseHandler.ts +0 -38
  241. package/src/modules/event-emitter/index.ts +0 -72
  242. package/src/modules/event-emitter/runners/abstract.ts +0 -21
  243. package/src/modules/event-emitter/runners/default.ts +0 -11
  244. package/src/modules/event-emitter/runners/ntimes.ts +0 -28
  245. package/src/modules/event-emitter/types.ts +0 -34
  246. package/src/store/actionFunctions.ts +0 -1578
  247. package/src/store/index.ts +0 -17
  248. package/src/store/initialState.ts +0 -58
  249. package/src/types/index.ts +0 -320
  250. package/src/types/preact-compat.d.ts +0 -4
  251. package/src/types/store.ts +0 -366
  252. package/src/types/utils.ts +0 -19
  253. package/src/utils/ActivityOutputUtils.ts +0 -176
  254. package/src/utils/common.ts +0 -20
  255. package/src/utils/copyToClipboard.ts +0 -24
  256. package/src/utils/datetime.ts +0 -101
  257. package/src/utils/getUrlParam.ts +0 -11
  258. package/src/utils/isAuthMessage.ts +0 -16
  259. package/src/utils/isBrowser.ts +0 -1
  260. package/src/utils/jsonEncodeDecode.ts +0 -15
  261. package/src/utils/objectUtils.ts +0 -117
  262. package/src/utils/popup.ts +0 -30
  263. package/src/utils/searchJson.ts +0 -51
  264. package/src/utils/stepUtils.ts +0 -45
  265. package/src/utils/truncate.ts +0 -6
  266. package/test/setup.ts +0 -1
  267. package/vitest.config.ts +0 -16
@@ -1,123 +0,0 @@
1
- import { html } from 'htm/preact';
2
- import { useEffect } from 'preact/hooks';
3
- import { Hint } from '@/components/Tooltip';
4
- import { createNewSortInstance } from 'fast-sort';
5
- import { ErrorMessage } from '../ErrorMessage';
6
-
7
- import styles from './styles.module.scss';
8
-
9
- interface SelectProps {
10
- ariaLabel: string;
11
- options: { label: string; key: string }[];
12
- placeholder: string;
13
- value?: string;
14
- showUnselectedValue?: boolean;
15
- unselectedText?: string;
16
- loading?: boolean;
17
- isRequired?: boolean;
18
- showStepValidation?: boolean;
19
- onChange?: (index: number) => void;
20
- isReadOnly?: boolean;
21
- }
22
-
23
- /**
24
- * Input component
25
- *
26
- */
27
- const Select = (props: SelectProps) => {
28
- const {
29
- placeholder,
30
- ariaLabel,
31
- value,
32
- options = [],
33
- showUnselectedValue = false,
34
- unselectedText = 'Select a value',
35
- isRequired = false,
36
- showStepValidation = false,
37
- onChange = () => null,
38
- isReadOnly = false,
39
- } = props;
40
-
41
- const handleInputChange = (e: MouseEvent) => {
42
- if (!isReadOnly && e.currentTarget instanceof HTMLSelectElement) {
43
- const { value: newValue } = e.currentTarget;
44
- const val = options.findIndex((el) => `${el.key}` === `${newValue}`);
45
- onChange(val);
46
- }
47
- };
48
-
49
- // if value cannot be found in options, unset the value
50
- useEffect(() => {
51
- if (options.findIndex((el) => el.key === value) === -1) {
52
- onChange(-1);
53
- }
54
- }, []);
55
-
56
- const getSortedOptions = (): { label: string; key: string }[] => {
57
- if (options.length > 0) {
58
- const naturalSort = createNewSortInstance({
59
- comparer: new Intl.Collator(undefined, {
60
- numeric: true,
61
- sensitivity: 'base',
62
- }).compare,
63
- });
64
- const sorted = naturalSort(options).asc((option) => option.label);
65
- return sorted;
66
- }
67
- return [];
68
- };
69
-
70
- return html`
71
- <div class=${styles.selectWrapper}>
72
- <${Hint} dismissOnClick=${false} position="top" deltaY=${0}>
73
- ${isReadOnly &&
74
- html`<span
75
- class=${styles.readonlyHint}
76
- data-hint=${isReadOnly ? `` : ''}
77
- ></span>`}
78
- <select
79
- aria-label=${ariaLabel}
80
- onchange=${handleInputChange}
81
- class=${`${value && styles.selectedVal} ${
82
- isReadOnly ? styles.readonly : ''
83
- }`}
84
- disabled=${isReadOnly}
85
- >
86
- ${showUnselectedValue &&
87
- html` <option value="">${unselectedText}</option> `}
88
- ${value === undefined &&
89
- html`
90
- <option value="" disabled selected hidden>${placeholder}</option>
91
- `}
92
- ${getSortedOptions().map(
93
- (el) => html`
94
- <option value=${el.key} selected=${value === el.key}>
95
- ${el.label}
96
- </option>
97
- `,
98
- )}
99
- </select>
100
- <svg
101
- width="12"
102
- height="8"
103
- viewBox="0 0 12 8"
104
- fill="none"
105
- xmlns="http://www.w3.org/2000/svg"
106
- >
107
- <path
108
- d="M11 1.5L6 6.5L1 1.5"
109
- stroke="#999999"
110
- stroke-width="2"
111
- stroke-linecap="round"
112
- />
113
- </svg>
114
- <//>
115
- </div>
116
- ${isRequired &&
117
- !value &&
118
- showStepValidation &&
119
- html`<${ErrorMessage}>Please map this required field<//>`}
120
- `;
121
- };
122
-
123
- export { Select, SelectProps };
@@ -1,44 +0,0 @@
1
- .selectWrapper {
2
- position: relative;
3
- width: 100%;
4
- fieldset {
5
- padding: 0;
6
- margin: 0;
7
- border: none;
8
- }
9
- select {
10
- width: 100%;
11
- color: #999999;
12
- position: relative;
13
- font-size: 14px;
14
- appearance: none;
15
- padding: 8.5px 14px;
16
- padding-right: 28px;
17
- border-radius: 4px;
18
- border: 1px solid #e2e0db;
19
- outline: none;
20
- overflow: hidden;
21
- white-space: nowrap;
22
- text-overflow: ellipsis;
23
- &:focus {
24
- outline: none;
25
- }
26
- &.selectedVal {
27
- color: #333;
28
- }
29
- &.readonly {
30
- opacity: 1;
31
- }
32
- }
33
- svg {
34
- position: absolute;
35
- right: 10px;
36
- top: 13px;
37
- }
38
- .readonlyHint {
39
- width: 100%;
40
- height: 100%;
41
- z-index: 99;
42
- position: absolute;
43
- }
44
- }
@@ -1,97 +0,0 @@
1
- import { html } from 'htm/preact';
2
- import cx from 'classnames';
3
-
4
- import { Hint } from '@/components/Tooltip';
5
- import { ThreeDotLoader } from '@/components/ThreeDotLoader';
6
-
7
- import styles from './styles.module.scss';
8
-
9
- export enum ButtonTypes {
10
- PRIMARY = 'primary',
11
- SECONDARY = 'secondary',
12
- LINK = 'link',
13
- }
14
-
15
- export interface ButtonProps {
16
- label: string;
17
- type?: ButtonTypes;
18
- color?: string;
19
- width?: string;
20
- height?: string;
21
- dismissOnClick?: boolean;
22
- position?: 'top' | 'bottom';
23
- tooltip?: string;
24
- isLoading?: boolean;
25
- disabled?: boolean;
26
- hasError?: boolean;
27
- backgroundColor: string;
28
- onClick: (e: MouseEvent) => void;
29
- className?: string;
30
- id?: string;
31
- }
32
-
33
- /**
34
- * Button component
35
- *
36
- */
37
- export const Button = (props: ButtonProps) => {
38
- const {
39
- label,
40
- type = ButtonTypes.PRIMARY,
41
- color = null,
42
- backgroundColor = null,
43
- disabled = false,
44
- hasError = false,
45
- tooltip,
46
- width,
47
- height,
48
- dismissOnClick = true,
49
- isLoading = false,
50
- position = 'bottom',
51
- onClick = undefined,
52
- className = '',
53
- id = '',
54
- ...restOfProps
55
- } = props;
56
-
57
- return html`
58
- <${Hint} dismissOnClick=${dismissOnClick} position=${position}>
59
- <button
60
- type="button"
61
- onclick=${onClick}
62
- data-hint=${tooltip || null}
63
- ...${id ? { id } : {}}
64
- class=${`${cx(
65
- styles.button,
66
- {
67
- [styles.btnPrimary]: type === ButtonTypes.PRIMARY,
68
- [styles.btnSecondary]: type === ButtonTypes.SECONDARY,
69
- [styles.buttonLink]: type === ButtonTypes.LINK,
70
- [styles.disabled]: disabled || hasError,
71
- },
72
- {
73
- 'integry-container__button--primary': type === ButtonTypes.PRIMARY,
74
- 'integry-container__button--secondary':
75
- type === ButtonTypes.SECONDARY,
76
- 'integry-container__button--link': type === ButtonTypes.LINK,
77
- 'integry-container__button--disabled': hasError || disabled,
78
- },
79
- )} ${styles[className || '']}`}
80
- disabled=${disabled}
81
- style=${{
82
- backgroundColor:
83
- type === ButtonTypes.PRIMARY ? backgroundColor : null,
84
- borderColor: type === ButtonTypes.PRIMARY ? backgroundColor : color,
85
- color,
86
- width,
87
- height,
88
- }}
89
- ${{ ...restOfProps }}
90
- >
91
- ${isLoading
92
- ? html`<${ThreeDotLoader} className="${className}" />`
93
- : label}
94
- </button>
95
- <//>
96
- `;
97
- };
@@ -1,152 +0,0 @@
1
- .button {
2
- outline: none;
3
- cursor: pointer;
4
- appearance: none;
5
- font-size: 12px;
6
- padding: 0px 15px;
7
- height: 30px;
8
- &.btnPrimary {
9
- border: 1px solid #4250f0;
10
- background: #4250f0;
11
- border-radius: 4px;
12
- font-size: 12px;
13
- color: #ffffff;
14
- &:not(.disabled):hover {
15
- background: var(--theme-accent-blue-2, #3a46d5);
16
- border: 1px solid var(--theme-accent-blue-2, #3a46d5);
17
- }
18
- }
19
- &.btnSecondary {
20
- border: 1px solid #4250f0;
21
- background: transparent;
22
- text-align: center;
23
- font-size: 12px;
24
- color: #4250f0;
25
- border-radius: 4px;
26
- &:not(.disabled):hover {
27
- background: #4250f0;
28
- color: white;
29
- }
30
- }
31
- &.buttonLink {
32
- border: none;
33
- color: #4250f0;
34
- font-weight: 500;
35
- font-size: 12px;
36
- background: transparent;
37
- padding: 0;
38
- margin: 0;
39
- &:not(.disabled):hover {
40
- color: #473a64;
41
- }
42
- }
43
-
44
- &.tell-us-more-btn {
45
- width: 113px;
46
- height: 36px;
47
- background: #ffffff;
48
- border: 1px solid #4250f0;
49
- // box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.08), inset 0px -1px 0px rgba(0, 0, 0, 0.2);
50
- border-radius: 5px;
51
- font-family: inherit;
52
- font-style: normal;
53
- font-weight: 500;
54
- font-size: 14px;
55
- line-height: 20px;
56
- color: #4250f0;
57
- &:not(.disabled):hover {
58
- background: #ffffff;
59
- color: #4250f0;
60
- }
61
- padding: 0px;
62
- }
63
-
64
- &.integry-primary-btn {
65
- width: auto;
66
- height: auto;
67
- background: #4250f0;
68
- border: 1px solid #4250f0;
69
- box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.08),
70
- inset 0px -1px 0px rgba(0, 0, 0, 0.2);
71
- border-radius: 5px;
72
- font-family: inherit;
73
- font-style: normal;
74
- font-weight: 500;
75
- font-size: 14px;
76
- line-height: 20px;
77
- text-align: center;
78
- color: #ffffff;
79
- &:not(.disabled):hover {
80
- background: #2c36ad;
81
- color: #ffffff;
82
- }
83
- padding: 0px;
84
- }
85
-
86
- &.integry-btn-grey {
87
- width: auto;
88
- height: auto;
89
- background: #f3f3f3;
90
- border: 1px solid #f3f3f3;
91
- box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.08),
92
- inset 0px -1px 0px rgba(0, 0, 0, 0.2);
93
- border-radius: 5px;
94
- font-family: inherit;
95
- font-style: normal;
96
- font-weight: 500;
97
- font-size: 14px;
98
- line-height: 20px;
99
- text-align: center;
100
- color: #333333;
101
- &:not(.disabled):hover {
102
- background: #e6e6e6;
103
- color: #333333;
104
- }
105
- padding: 0px;
106
- }
107
-
108
- &.integry-secondary-btn {
109
- width: auto;
110
- height: auto;
111
- background: #ffffff;
112
- border: 1px solid #4250f0;
113
- // box-shadow: 0px 1px 0px rgba(0, 0, 0, 0.08), inset 0px -1px 0px rgba(0, 0, 0, 0.2);
114
- border-radius: 5px;
115
- font-family: inherit;
116
- font-style: normal;
117
- font-weight: 500;
118
- font-size: 14px;
119
- line-height: 20px;
120
- color: #4250f0;
121
- &:not(.disabled):hover {
122
- background: #4250f0;
123
- color: #ffffff;
124
- }
125
- padding: 0px;
126
- }
127
-
128
- &.disabled {
129
- opacity: 0.5;
130
- cursor: not-allowed;
131
- }
132
-
133
- &.flowWrapButton {
134
- border-radius: 5px;
135
- border: 1px solid var(--theme-accent-blue-1, #4250f0);
136
- background: var(--theme-accent-blue-1, #4250f0);
137
- color: #fff;
138
- font-family: Inter;
139
- font-size: 13px;
140
- font-style: normal;
141
- font-weight: 400;
142
- line-height: normal;
143
- padding: 4.5px 10px;
144
- cursor: pointer;
145
- height: auto;
146
-
147
- &:hover {
148
- background: var(--theme-accent-blue-2, #3a46d5) !important;
149
- border: 1px solid var(--theme-accent-blue-2, #3a46d5) !important;
150
- }
151
- }
152
- }
@@ -1,104 +0,0 @@
1
- import { html } from 'htm/preact';
2
- import { Hint } from '@/components/Tooltip';
3
-
4
- import styles from './styles.module.scss';
5
-
6
- export interface CheckboxProps extends Partial<HTMLInputElement> {
7
- fieldId: string;
8
- id: string;
9
- value: string;
10
- description?: string;
11
- isChecked?: boolean;
12
- handleChange?: (id: string, value: boolean) => void;
13
- isReadOnly?: boolean;
14
- title?: string;
15
- }
16
-
17
- /**
18
- * Checkbox component
19
- *
20
- */
21
- export const Checkbox = (props: CheckboxProps) => {
22
- const {
23
- fieldId,
24
- id,
25
- description = null,
26
- value,
27
- isChecked = false,
28
- handleChange = () => null,
29
- isReadOnly = false,
30
- title = '',
31
- } = props;
32
-
33
- const handleCheckboxChange = (e: MouseEvent) => {
34
- if (!isReadOnly && e.target instanceof HTMLInputElement) {
35
- const { name, checked } = e.target;
36
- handleChange(name, checked);
37
- }
38
- };
39
-
40
- return html`
41
- <${Hint} dismissOnClick=${false} position="top" deltaY=${0}>
42
- <div class=${styles.checkboxWrap}>
43
- ${isReadOnly &&
44
- html`<span
45
- class=${styles.readonlyHint}
46
- data-hint=${isReadOnly ? `Cannot modify user selection` : ''}
47
- ></span>`}
48
- <div class=${styles.checkbox}>
49
- <label for=${fieldId + id}>
50
- <input
51
- id=${fieldId + id}
52
- type="checkbox"
53
- name=${id}
54
- value=${value}
55
- checked=${isChecked}
56
- onclick=${handleCheckboxChange}
57
- readonly=${isReadOnly}
58
- />
59
- <div class=${styles.button}>
60
- ${isChecked
61
- ? html`
62
- <svg
63
- width="20"
64
- height="20"
65
- viewBox="0 0 20 20"
66
- fill="none"
67
- xmlns="http://www.w3.org/2000/svg"
68
- >
69
- <path
70
- d="M7.86364 15.5L10 13.4923L17.5 6.49357L15.3485 4.5L7.86364 11.4987L4.63636 8.50129L2.5 10.4949L5.71212 13.4923L7.86364 15.5Z"
71
- fill="#4250f0"
72
- />
73
- <path
74
- d="M0 0V-2H-2V0H0ZM20 0H22V-2H20V0ZM20 20V22H22V20H20ZM0 20H-2V22H0V20ZM0 2H20V-2H0V2ZM18 0V20H22V0H18ZM20 18H0V22H20V18ZM2 20V0H-2V20H2Z"
75
- fill="#4250f0"
76
- />
77
- </svg>
78
- `
79
- : html`
80
- <svg
81
- width="20"
82
- height="20"
83
- viewBox="0 0 20 20"
84
- fill="none"
85
- xmlns="http://www.w3.org/2000/svg"
86
- >
87
- <path
88
- d="M0 0V-2H-2V0H0ZM20 0H22V-2H20V0ZM20 20V22H22V20H20ZM0 20H-2V22H0V20ZM0 2H20V-2H0V2ZM18 0V20H22V0H18ZM20 18H0V22H20V18ZM2 20V0H-2V20H2Z"
89
- fill="#4250f0"
90
- />
91
- </svg>
92
- `}
93
- </div>
94
- <div>
95
- <div class=${styles.text}>${title || value}</div>
96
- ${description &&
97
- html`<div class=${styles.description}>${description}</div>`}
98
- </div>
99
- </label>
100
- </div>
101
- </div>
102
- <//>
103
- `;
104
- };
@@ -1,190 +0,0 @@
1
- import { html } from 'htm/preact';
2
- import { useContext, useEffect, useRef, useState } from 'preact/hooks';
3
-
4
- import AppContext from '@/contexts/AppContext';
5
- import { Checkbox } from './Checkbox';
6
- import { Label } from '../Label';
7
-
8
- import styles from './styles.module.scss';
9
- import { ErrorMessage } from '../ErrorMessage';
10
- import { ThreeDotLoader } from '../ThreeDotLoader';
11
-
12
- interface CheckboxItem {
13
- id: string;
14
- value: string;
15
- }
16
-
17
- export interface CheckboxGroupProps {
18
- fieldId: string;
19
- title: string;
20
- description: string;
21
- isDynamic: boolean;
22
- dataSrcEndpoint?: string;
23
- ariaLabel: string;
24
- value: string;
25
- initialOptions?: CheckboxItem[];
26
- selectedItems?: string[];
27
- endpointData: string;
28
- isRequired?: boolean;
29
- showStepValidation?: boolean;
30
- onChange?: (data: string) => void;
31
- isReadOnly?: boolean;
32
- isChanged?: boolean;
33
- }
34
-
35
- /**
36
- * RadioGroup component
37
- *
38
- */
39
- export const CheckboxGroup = (props: CheckboxGroupProps) => {
40
- const {
41
- fieldId,
42
- title,
43
- description,
44
- value,
45
- ariaLabel,
46
- selectedItems = [],
47
- isDynamic,
48
- endpointData,
49
- initialOptions = [],
50
- dataSrcEndpoint,
51
- isRequired = false,
52
- showStepValidation = false,
53
- onChange = () => null,
54
- isReadOnly = false,
55
- isChanged = false,
56
- } = props;
57
-
58
- const indicesRef = useRef(selectedItems);
59
-
60
- const [loading, setLoading] = useState(isDynamic);
61
- const [selectedItemIds, setSelectedItemIds] = useState<string[]>(
62
- selectedItems,
63
- );
64
-
65
- const [error, setError] = useState<string | null>(null);
66
-
67
- const [parsedOptions, setParsedOptions] = useState<CheckboxItem[]>(
68
- Array.isArray(initialOptions) ? initialOptions : [],
69
- );
70
-
71
- const context = useContext(AppContext);
72
-
73
- useEffect(() => {
74
- if (value) {
75
- if (value === '0' && parsedOptions.length === 1) return;
76
- if (value === '1' && parsedOptions.length === 1) {
77
- setSelectedItemIds([parsedOptions[0].id]);
78
- } else {
79
- setSelectedItemIds(value.split(',').map((el) => el.trim()));
80
- }
81
- }
82
- }, []);
83
-
84
- useEffect(() => {
85
- if (indicesRef.current !== selectedItemIds) {
86
- if (parsedOptions.length < 2) {
87
- onChange(selectedItemIds.length === 1 ? '1' : '0');
88
- } else {
89
- onChange(selectedItemIds.join(','));
90
- }
91
- }
92
- }, [selectedItemIds, parsedOptions]);
93
-
94
- useEffect(() => {
95
- if (isDynamic) {
96
- if (dataSrcEndpoint) {
97
- // eslint-disable-next-line no-use-before-define
98
- fetchDynamicData();
99
- } else {
100
- setParsedOptions(initialOptions);
101
- setLoading(false);
102
- }
103
- } else {
104
- setParsedOptions(initialOptions);
105
- }
106
- }, []);
107
-
108
- const handleChange = (itemId: string) => {
109
- if (selectedItemIds.indexOf(itemId) > -1) {
110
- setSelectedItemIds((prev) => prev.filter((el) => el !== itemId));
111
- } else {
112
- setSelectedItemIds([...selectedItemIds, itemId]);
113
- }
114
- };
115
-
116
- const fetchDynamicData = (): void => {
117
- if (dataSrcEndpoint) {
118
- setLoading(true);
119
- let data;
120
- try {
121
- data = JSON.parse(endpointData);
122
- } catch (parseErr) {
123
- data = '';
124
- }
125
- // call dynamic endpoint
126
- context?.apiHandler
127
- .callDynamicDataEndpoint<CheckboxItem[]>(new URL(dataSrcEndpoint), data)
128
- .then((res) => {
129
- if (res) setParsedOptions(res);
130
- else setError(`Error loading options`);
131
- })
132
- .catch((err) => {
133
- console.error(err);
134
- setError('Error loading options');
135
- })
136
- .finally(() => setLoading(false));
137
- }
138
- };
139
-
140
- const handleRefreshClick = (): void => {
141
- fetchDynamicData();
142
- setSelectedItemIds([]);
143
- };
144
-
145
- return html`
146
- <div class="${styles.checkboxGroup}">
147
- <fieldset>
148
- <${Label} isRequired=${isRequired}
149
- labelTag=${isReadOnly && isChanged ? 'Changed' : ''}
150
- allowRefresh=${isDynamic && dataSrcEndpoint}
151
- handleRefreshClick=${handleRefreshClick} //>
152
- <div
153
- class=${styles.checkboxGroupWrap}
154
- role="group"
155
- aria-labelledby=${ariaLabel}
156
- >
157
- ${loading
158
- ? html`<div style="margin: 20px 0;">
159
- <${ThreeDotLoader} color="#999" />
160
- </div>`
161
- : html`
162
- ${error
163
- ? html`<div style="margin: 20px 0;">
164
- <${ErrorMessage}>${error}<//>
165
- </div>`
166
- : html`
167
- ${parsedOptions?.map(
168
- (el) => html`
169
- <${Checkbox}
170
- fieldId=${fieldId}
171
- id=${el.id}
172
- value=${el.value}
173
- isChecked=${selectedItemIds.indexOf(el.id) > -1}
174
- handleChange=${handleChange}
175
- isReadOnly=${isReadOnly}
176
- title=${title}
177
- ><//>
178
- `,
179
- )}
180
- `}
181
- `}
182
- </div>
183
- </fieldset>
184
- ${showStepValidation &&
185
- selectedItemIds.length < 1 &&
186
- isRequired &&
187
- html` <${ErrorMessage}>Please select an option</${ErrorMessage}>`}
188
- </div>
189
- `;
190
- };