@sparrowengg/integrations-templates-frontend 2.1.0-beta.1 → 2.1.0-beta.2

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 (212) hide show
  1. package/dist/cjs/cascader-dropdown/cascader-dropdown-content.js +1 -1
  2. package/dist/cjs/cascader-dropdown/cascader-dropdown-content.js.map +1 -1
  3. package/dist/cjs/commons/components/NamingModal.js +34 -62
  4. package/dist/cjs/commons/components/NamingModal.js.map +1 -1
  5. package/dist/cjs/commons/components/confirmation-modal.js +12 -24
  6. package/dist/cjs/commons/components/confirmation-modal.js.map +1 -1
  7. package/dist/cjs/commons/components/custom-pill.js +12 -30
  8. package/dist/cjs/commons/components/custom-pill.js.map +1 -1
  9. package/dist/cjs/commons/components/draftModal.js +31 -45
  10. package/dist/cjs/commons/components/draftModal.js.map +1 -1
  11. package/dist/cjs/commons/components/edit-confirmation.js +17 -34
  12. package/dist/cjs/commons/components/edit-confirmation.js.map +1 -1
  13. package/dist/cjs/commons/components/import-modal.js +18 -49
  14. package/dist/cjs/commons/components/import-modal.js.map +1 -1
  15. package/dist/cjs/commons/components/spinner.js +2 -16
  16. package/dist/cjs/commons/components/spinner.js.map +1 -1
  17. package/dist/cjs/commons/components/theme-wrapper.js +12 -9
  18. package/dist/cjs/commons/components/theme-wrapper.js.map +1 -1
  19. package/dist/cjs/commons/constants/enhanced.js.map +1 -1
  20. package/dist/cjs/commons/helpers/index.js +52 -93
  21. package/dist/cjs/commons/helpers/index.js.map +1 -1
  22. package/dist/cjs/commons/icons/arrow.js +3 -38
  23. package/dist/cjs/commons/icons/arrow.js.map +1 -1
  24. package/dist/cjs/commons/icons/cursor.js +8 -21
  25. package/dist/cjs/commons/icons/cursor.js.map +1 -1
  26. package/dist/cjs/commons/icons/email-letter.js +12 -30
  27. package/dist/cjs/commons/icons/email-letter.js.map +1 -1
  28. package/dist/cjs/commons/icons/mapping.js +10 -23
  29. package/dist/cjs/commons/icons/mapping.js.map +1 -1
  30. package/dist/cjs/commons/icons/nested-add.js +14 -32
  31. package/dist/cjs/commons/icons/nested-add.js.map +1 -1
  32. package/dist/cjs/commons/icons/sms.js +18 -36
  33. package/dist/cjs/commons/icons/sms.js.map +1 -1
  34. package/dist/cjs/commons/icons/sync.js +3 -110
  35. package/dist/cjs/commons/icons/sync.js.map +1 -1
  36. package/dist/cjs/commons/icons/trash.js +15 -33
  37. package/dist/cjs/commons/icons/trash.js.map +1 -1
  38. package/dist/cjs/commons/icons/whatsapp.js +31 -49
  39. package/dist/cjs/commons/icons/whatsapp.js.map +1 -1
  40. package/dist/cjs/contact-import/components/ManageImport/Completed.js +41 -27
  41. package/dist/cjs/contact-import/components/ManageImport/Completed.js.map +1 -1
  42. package/dist/cjs/contact-import/components/ManageImport/Dashboard.js +43 -23
  43. package/dist/cjs/contact-import/components/ManageImport/Dashboard.js.map +1 -1
  44. package/dist/cjs/contact-import/components/ManageImport/NoDataState.js +6 -7
  45. package/dist/cjs/contact-import/components/ManageImport/NoDataState.js.map +1 -1
  46. package/dist/cjs/contact-import/components/ManageImport/Scheduled.js +46 -30
  47. package/dist/cjs/contact-import/components/ManageImport/Scheduled.js.map +1 -1
  48. package/dist/cjs/contact-import/components/ManageImport/icon.js +85 -0
  49. package/dist/cjs/contact-import/components/ManageImport/icon.js.map +1 -0
  50. package/dist/cjs/contact-import/components/Scheduling.js +27 -39
  51. package/dist/cjs/contact-import/components/Scheduling.js.map +1 -1
  52. package/dist/cjs/contact-import/components/TimePicker.js +102 -129
  53. package/dist/cjs/contact-import/components/TimePicker.js.map +1 -1
  54. package/dist/cjs/contact-import/components/conact-import-schedule.js +64 -0
  55. package/dist/cjs/contact-import/components/conact-import-schedule.js.map +1 -0
  56. package/dist/cjs/contact-import/components/contact-import-configure.js +75 -0
  57. package/dist/cjs/contact-import/components/contact-import-configure.js.map +1 -0
  58. package/dist/cjs/contact-import/components/contact-import-mapping.js +224 -0
  59. package/dist/cjs/contact-import/components/contact-import-mapping.js.map +1 -0
  60. package/dist/cjs/contact-import/constants.js +21 -0
  61. package/dist/cjs/contact-import/constants.js.map +1 -0
  62. package/dist/cjs/contact-import/index.js +242 -32
  63. package/dist/cjs/contact-import/index.js.map +1 -1
  64. package/dist/cjs/dynamic-mapping/components/Mapping.js +321 -203
  65. package/dist/cjs/dynamic-mapping/components/Mapping.js.map +1 -1
  66. package/dist/cjs/dynamic-mapping/index.js +972 -34
  67. package/dist/cjs/dynamic-mapping/index.js.map +1 -1
  68. package/dist/cjs/filter/filter-pill-value-selector.js +1 -1
  69. package/dist/cjs/filter/filter-pill-value-selector.js.map +1 -1
  70. package/dist/cjs/index.js +12 -159
  71. package/dist/cjs/index.js.map +1 -1
  72. package/dist/cjs/integration-template/components/dashboard.js +137 -130
  73. package/dist/cjs/integration-template/components/dashboard.js.map +1 -1
  74. package/dist/cjs/integration-template/index.js +343 -0
  75. package/dist/cjs/integration-template/index.js.map +1 -0
  76. package/dist/cjs/mapping/components/custom-menu.js +3 -4
  77. package/dist/cjs/mapping/components/custom-menu.js.map +1 -1
  78. package/dist/cjs/mapping/components/field.js +103 -121
  79. package/dist/cjs/mapping/components/field.js.map +1 -1
  80. package/dist/cjs/mapping/components/mapping.js +195 -106
  81. package/dist/cjs/mapping/components/mapping.js.map +1 -1
  82. package/dist/cjs/mapping/constants/index.js +2 -259
  83. package/dist/cjs/mapping/constants/index.js.map +1 -1
  84. package/dist/cjs/mapping/index.js +618 -38
  85. package/dist/cjs/mapping/index.js.map +1 -1
  86. package/dist/cjs/mapping/services/index.js +58 -96
  87. package/dist/cjs/mapping/services/index.js.map +1 -1
  88. package/dist/cjs/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-menu/dist/index.js +7 -7
  89. package/dist/cjs/single-mapping/components/mapping.js +490 -0
  90. package/dist/cjs/single-mapping/components/mapping.js.map +1 -0
  91. package/dist/cjs/single-mapping/index.js +987 -59
  92. package/dist/cjs/single-mapping/index.js.map +1 -1
  93. package/dist/cjs/triggers/components/subcomponents.js +1140 -0
  94. package/dist/cjs/triggers/components/subcomponents.js.map +1 -0
  95. package/dist/cjs/triggers/components/trigger.js +491 -0
  96. package/dist/cjs/triggers/components/trigger.js.map +1 -0
  97. package/dist/cjs/triggers/constants/index.js +0 -253
  98. package/dist/cjs/triggers/constants/index.js.map +1 -1
  99. package/dist/cjs/triggers/index.js +333 -0
  100. package/dist/cjs/triggers/index.js.map +1 -0
  101. package/dist/cjs/triggers/services/index.js +30 -0
  102. package/dist/cjs/triggers/services/index.js.map +1 -0
  103. package/dist/es/cascader-dropdown/cascader-dropdown-content.js +1 -1
  104. package/dist/es/cascader-dropdown/cascader-dropdown-content.js.map +1 -1
  105. package/dist/es/commons/components/NamingModal.js +35 -63
  106. package/dist/es/commons/components/NamingModal.js.map +1 -1
  107. package/dist/es/commons/components/confirmation-modal.js +13 -25
  108. package/dist/es/commons/components/confirmation-modal.js.map +1 -1
  109. package/dist/es/commons/components/custom-pill.js +13 -31
  110. package/dist/es/commons/components/custom-pill.js.map +1 -1
  111. package/dist/es/commons/components/draftModal.js +32 -46
  112. package/dist/es/commons/components/draftModal.js.map +1 -1
  113. package/dist/es/commons/components/edit-confirmation.js +18 -35
  114. package/dist/es/commons/components/edit-confirmation.js.map +1 -1
  115. package/dist/es/commons/components/import-modal.js +19 -50
  116. package/dist/es/commons/components/import-modal.js.map +1 -1
  117. package/dist/es/commons/components/spinner.js +2 -16
  118. package/dist/es/commons/components/spinner.js.map +1 -1
  119. package/dist/es/commons/components/theme-wrapper.js +12 -9
  120. package/dist/es/commons/components/theme-wrapper.js.map +1 -1
  121. package/dist/es/commons/constants/enhanced.js.map +1 -1
  122. package/dist/es/commons/helpers/index.js +52 -93
  123. package/dist/es/commons/helpers/index.js.map +1 -1
  124. package/dist/es/commons/icons/arrow.js +3 -38
  125. package/dist/es/commons/icons/arrow.js.map +1 -1
  126. package/dist/es/commons/icons/cursor.js +8 -21
  127. package/dist/es/commons/icons/cursor.js.map +1 -1
  128. package/dist/es/commons/icons/email-letter.js +12 -30
  129. package/dist/es/commons/icons/email-letter.js.map +1 -1
  130. package/dist/es/commons/icons/mapping.js +10 -23
  131. package/dist/es/commons/icons/mapping.js.map +1 -1
  132. package/dist/es/commons/icons/nested-add.js +14 -32
  133. package/dist/es/commons/icons/nested-add.js.map +1 -1
  134. package/dist/es/commons/icons/sms.js +18 -36
  135. package/dist/es/commons/icons/sms.js.map +1 -1
  136. package/dist/es/commons/icons/sync.js +3 -110
  137. package/dist/es/commons/icons/sync.js.map +1 -1
  138. package/dist/es/commons/icons/trash.js +15 -33
  139. package/dist/es/commons/icons/trash.js.map +1 -1
  140. package/dist/es/commons/icons/whatsapp.js +31 -49
  141. package/dist/es/commons/icons/whatsapp.js.map +1 -1
  142. package/dist/es/contact-import/components/ManageImport/Completed.js +41 -27
  143. package/dist/es/contact-import/components/ManageImport/Completed.js.map +1 -1
  144. package/dist/es/contact-import/components/ManageImport/Dashboard.js +45 -25
  145. package/dist/es/contact-import/components/ManageImport/Dashboard.js.map +1 -1
  146. package/dist/es/contact-import/components/ManageImport/NoDataState.js +4 -5
  147. package/dist/es/contact-import/components/ManageImport/NoDataState.js.map +1 -1
  148. package/dist/es/contact-import/components/ManageImport/Scheduled.js +46 -30
  149. package/dist/es/contact-import/components/ManageImport/Scheduled.js.map +1 -1
  150. package/dist/es/contact-import/components/ManageImport/icon.js +82 -0
  151. package/dist/es/contact-import/components/ManageImport/icon.js.map +1 -0
  152. package/dist/es/contact-import/components/Scheduling.js +27 -39
  153. package/dist/es/contact-import/components/Scheduling.js.map +1 -1
  154. package/dist/es/contact-import/components/TimePicker.js +103 -130
  155. package/dist/es/contact-import/components/TimePicker.js.map +1 -1
  156. package/dist/es/contact-import/components/conact-import-schedule.js +60 -0
  157. package/dist/es/contact-import/components/conact-import-schedule.js.map +1 -0
  158. package/dist/es/contact-import/components/contact-import-configure.js +71 -0
  159. package/dist/es/contact-import/components/contact-import-configure.js.map +1 -0
  160. package/dist/es/contact-import/components/contact-import-mapping.js +220 -0
  161. package/dist/es/contact-import/components/contact-import-mapping.js.map +1 -0
  162. package/dist/es/contact-import/constants.js +18 -0
  163. package/dist/es/contact-import/constants.js.map +1 -0
  164. package/dist/es/contact-import/index.js +240 -27
  165. package/dist/es/contact-import/index.js.map +1 -1
  166. package/dist/es/dynamic-mapping/components/Mapping.js +321 -203
  167. package/dist/es/dynamic-mapping/components/Mapping.js.map +1 -1
  168. package/dist/es/dynamic-mapping/index.js +972 -34
  169. package/dist/es/dynamic-mapping/index.js.map +1 -1
  170. package/dist/es/filter/filter-pill-value-selector.js +1 -1
  171. package/dist/es/filter/filter-pill-value-selector.js.map +1 -1
  172. package/dist/es/index.js +2 -23
  173. package/dist/es/index.js.map +1 -1
  174. package/dist/es/integration-template/components/dashboard.js +139 -132
  175. package/dist/es/integration-template/components/dashboard.js.map +1 -1
  176. package/dist/es/integration-template/index.js +341 -0
  177. package/dist/es/integration-template/index.js.map +1 -0
  178. package/dist/es/mapping/components/custom-menu.js +3 -4
  179. package/dist/es/mapping/components/custom-menu.js.map +1 -1
  180. package/dist/es/mapping/components/field.js +100 -118
  181. package/dist/es/mapping/components/field.js.map +1 -1
  182. package/dist/es/mapping/components/mapping.js +194 -105
  183. package/dist/es/mapping/components/mapping.js.map +1 -1
  184. package/dist/es/mapping/constants/index.js +3 -239
  185. package/dist/es/mapping/constants/index.js.map +1 -1
  186. package/dist/es/mapping/index.js +617 -12
  187. package/dist/es/mapping/index.js.map +1 -1
  188. package/dist/es/mapping/services/index.js +59 -96
  189. package/dist/es/mapping/services/index.js.map +1 -1
  190. package/dist/es/node_modules/@internationalized/date/dist/CalendarDate.js +3 -3
  191. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/dialog/dialog.js +1 -1
  192. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/dropdown/dropdown.js +2 -2
  193. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@radix-ui/react-dropdown-menu/dist/index.js +1 -1
  194. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@react-aria/calendar/dist/import.js +2 -2
  195. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@react-aria/utils/dist/import.js +1 -1
  196. package/dist/es/node_modules/@sparrowengg/twigs-react/dist/es/node_modules/@react-stately/calendar/dist/import.js +1 -1
  197. package/dist/es/single-mapping/components/mapping.js +486 -0
  198. package/dist/es/single-mapping/components/mapping.js.map +1 -0
  199. package/dist/es/single-mapping/index.js +988 -60
  200. package/dist/es/single-mapping/index.js.map +1 -1
  201. package/dist/es/triggers/components/subcomponents.js +1134 -0
  202. package/dist/es/triggers/components/subcomponents.js.map +1 -0
  203. package/dist/es/triggers/components/trigger.js +487 -0
  204. package/dist/es/triggers/components/trigger.js.map +1 -0
  205. package/dist/es/triggers/constants/index.js +1 -228
  206. package/dist/es/triggers/constants/index.js.map +1 -1
  207. package/dist/es/triggers/index.js +331 -0
  208. package/dist/es/triggers/index.js.map +1 -0
  209. package/dist/es/triggers/services/index.js +28 -0
  210. package/dist/es/triggers/services/index.js.map +1 -0
  211. package/dist/index.d.ts +448 -2161
  212. package/package.json +1 -1
@@ -1,5 +1,4 @@
1
- import React__default, { useCallback } from 'react';
2
- import { VARIANTS, COLORS, SIZE_VALUES, ARIA_LABELS, COMPONENT_DISPLAY_NAMES, MODAL_TITLES, FORM_LABELS, BUTTON_TEXT } from '../constants/strings.js';
1
+ import React__default from 'react';
3
2
  import { Dialog, DialogContent } from '../../node_modules/@sparrowengg/twigs-react/dist/es/dialog/dialog.js';
4
3
  import { Flex } from '../../node_modules/@sparrowengg/twigs-react/dist/es/flex/flex.js';
5
4
  import { Heading } from '../../node_modules/@sparrowengg/twigs-react/dist/es/heading/heading.js';
@@ -9,29 +8,11 @@ import { Box } from '../../node_modules/@sparrowengg/twigs-react/dist/es/box/box
9
8
  import { FormInput } from '../../node_modules/@sparrowengg/twigs-react/dist/es/input/form-input.js';
10
9
  import { Button } from '../../node_modules/@sparrowengg/twigs-react/dist/es/button/button.js';
11
10
 
12
- const DEFAULT_CONFIG = {
13
- title: MODAL_TITLES.NEW_CUSTOM_PROPERTY,
14
- inputLabel: FORM_LABELS.PROPERTY_NAME,
15
- saveButtonText: BUTTON_TEXT.SAVE,
16
- cancelButtonText: BUTTON_TEXT.CANCEL,
17
- iconColor: COLORS.ICON_GRAY_DARK
18
- };
19
11
  const ImportModal = ({
20
- onClose,
21
- onInputChange,
22
- onSave,
23
- value = "",
24
- title = DEFAULT_CONFIG.title,
25
- inputLabel = DEFAULT_CONFIG.inputLabel,
26
- placeholder,
27
- isSaveDisabled = false
12
+ onCloseHandler,
13
+ onInputHandler,
14
+ onSaveHandler
28
15
  }) => {
29
- const handleInputChange = useCallback(
30
- (event) => {
31
- onInputChange(event.currentTarget.value);
32
- },
33
- [onInputChange]
34
- );
35
16
  return /* @__PURE__ */ React__default.createElement(Dialog, { open: true }, /* @__PURE__ */ React__default.createElement(
36
17
  DialogContent,
37
18
  {
@@ -50,21 +31,20 @@ const ImportModal = ({
50
31
  borderBottom: "$borderWidths$xs solid $neutral200"
51
32
  }
52
33
  },
53
- /* @__PURE__ */ React__default.createElement(Heading, { size: "h6", css: { color: "$neutral900" } }, title),
34
+ /* @__PURE__ */ React__default.createElement(Heading, { size: "h6", css: { color: "$neutral900" } }, "New Custom Property"),
54
35
  /* @__PURE__ */ React__default.createElement(
55
36
  IconButton,
56
37
  {
57
- variant: VARIANTS.GHOST,
58
- color: COLORS.DEFAULT,
38
+ variant: "ghost",
39
+ color: "default",
59
40
  icon: /* @__PURE__ */ React__default.createElement(CloseIcon, null),
60
- size: SIZE_VALUES.LARGE,
41
+ size: "lg",
61
42
  css: {
62
43
  "& svg": {
63
- color: `${DEFAULT_CONFIG.iconColor} !important`
44
+ color: "#64748B !important"
64
45
  }
65
46
  },
66
- onClick: onClose,
67
- "aria-label": ARIA_LABELS.CLOSE_MODAL
47
+ onClick: onCloseHandler
68
48
  }
69
49
  )
70
50
  ),
@@ -78,12 +58,10 @@ const ImportModal = ({
78
58
  /* @__PURE__ */ React__default.createElement(
79
59
  FormInput,
80
60
  {
81
- label: inputLabel,
82
- value,
61
+ label: "Property Name",
83
62
  requiredIndicator: true,
84
- onChange: handleInputChange,
85
- size: SIZE_VALUES.LARGE,
86
- placeholder
63
+ onChange: (event) => onInputHandler(event.currentTarget.value),
64
+ size: "lg"
87
65
  }
88
66
  )
89
67
  ),
@@ -99,26 +77,17 @@ const ImportModal = ({
99
77
  /* @__PURE__ */ React__default.createElement(
100
78
  Button,
101
79
  {
102
- size: SIZE_VALUES.LARGE,
103
- variant: VARIANTS.GHOST,
104
- color: COLORS.DEFAULT,
105
- onClick: onClose
80
+ size: "lg",
81
+ variant: "ghost",
82
+ color: "default",
83
+ onClick: onCloseHandler
106
84
  },
107
- DEFAULT_CONFIG.cancelButtonText
85
+ "Cancel"
108
86
  ),
109
- /* @__PURE__ */ React__default.createElement(
110
- Button,
111
- {
112
- size: SIZE_VALUES.LARGE,
113
- onClick: onSave,
114
- disabled: isSaveDisabled
115
- },
116
- DEFAULT_CONFIG.saveButtonText
117
- )
87
+ /* @__PURE__ */ React__default.createElement(Button, { size: "lg", onClick: onSaveHandler }, "Save")
118
88
  )
119
89
  ));
120
90
  };
121
- ImportModal.displayName = COMPONENT_DISPLAY_NAMES.IMPORT_MODAL;
122
91
 
123
92
  export { ImportModal as default };
124
93
  //# sourceMappingURL=import-modal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"import-modal.js","sources":["../../../../src/commons/components/import-modal.tsx"],"sourcesContent":["import React, { useCallback, ChangeEvent } from 'react';\nimport {\n Box,\n Button,\n Dialog,\n DialogContent,\n Flex,\n FormInput,\n Heading,\n IconButton,\n} from '@sparrowengg/twigs-react';\nimport { CloseIcon } from '@sparrowengg/twigs-react-icons';\nimport {\n MODAL_TITLES,\n FORM_LABELS,\n BUTTON_TEXT,\n COLORS,\n SIZE_VALUES,\n VARIANTS,\n ARIA_LABELS,\n COMPONENT_DISPLAY_NAMES,\n} from '../constants/strings';\n\n/**\n * Props for the ImportModal component\n */\nexport interface ImportModalProps {\n /** Callback invoked when the modal is closed */\n onClose: () => void;\n /** Callback invoked when the input value changes */\n onInputChange: (value: string) => void;\n /** Callback invoked when the save button is clicked */\n onSave: () => void;\n /** Optional: Current input value for controlled component */\n value?: string;\n /** Optional: Custom modal title (defaults to \"New Custom Property\") */\n title?: string;\n /** Optional: Custom input label (defaults to \"Property Name\") */\n inputLabel?: string;\n /** Optional: Custom input placeholder */\n placeholder?: string;\n /** Optional: Whether the save button is disabled */\n isSaveDisabled?: boolean;\n}\n\n/**\n * Default configuration for the import modal\n */\nconst DEFAULT_CONFIG = {\n title: MODAL_TITLES.NEW_CUSTOM_PROPERTY,\n inputLabel: FORM_LABELS.PROPERTY_NAME,\n saveButtonText: BUTTON_TEXT.SAVE,\n cancelButtonText: BUTTON_TEXT.CANCEL,\n iconColor: COLORS.ICON_GRAY_DARK,\n} as const;\n\n/**\n * ImportModal Component\n * \n * A modal dialog for creating a new custom property with form input.\n * Provides a clean interface for property name entry with validation support.\n * \n * @example\n * ```tsx\n * <ImportModal\n * onClose={handleClose}\n * onInputChange={handleInputChange}\n * onSave={handleSave}\n * value={propertyName}\n * />\n * ```\n */\nconst ImportModal: React.FC<ImportModalProps> = ({\n onClose,\n onInputChange,\n onSave,\n value = '',\n title = DEFAULT_CONFIG.title,\n inputLabel = DEFAULT_CONFIG.inputLabel,\n placeholder,\n isSaveDisabled = false,\n}) => {\n const handleInputChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n onInputChange(event.currentTarget.value);\n },\n [onInputChange]\n );\n\n return (\n <Dialog open>\n <DialogContent\n css={{\n padding: 0,\n borderRadius: '$3xl',\n }}\n >\n <Flex\n alignItems=\"center\"\n justifyContent=\"space-between\"\n css={{\n padding: '$8 $12',\n borderBottom: '$borderWidths$xs solid $neutral200',\n }}\n >\n <Heading size=\"h6\" css={{ color: '$neutral900' }}>\n {title}\n </Heading>\n <IconButton\n variant={VARIANTS.GHOST}\n color={COLORS.DEFAULT}\n icon={<CloseIcon />}\n size={SIZE_VALUES.LARGE}\n css={{\n '& svg': {\n color: `${DEFAULT_CONFIG.iconColor} !important`,\n },\n }}\n onClick={onClose}\n aria-label={ARIA_LABELS.CLOSE_MODAL}\n />\n </Flex>\n\n <Box\n css={{\n padding: '$12',\n }}\n >\n <FormInput\n label={inputLabel}\n value={value}\n requiredIndicator\n onChange={handleInputChange}\n size={SIZE_VALUES.LARGE}\n placeholder={placeholder}\n />\n </Box>\n\n <Flex\n gap=\"$4\"\n css={{\n justifyContent: 'flex-end',\n padding: '$8 $12',\n }}\n >\n <Button\n size={SIZE_VALUES.LARGE}\n variant={VARIANTS.GHOST}\n color={COLORS.DEFAULT}\n onClick={onClose}\n >\n {DEFAULT_CONFIG.cancelButtonText}\n </Button>\n <Button\n size={SIZE_VALUES.LARGE}\n onClick={onSave}\n disabled={isSaveDisabled}\n >\n {DEFAULT_CONFIG.saveButtonText}\n </Button>\n </Flex>\n </DialogContent>\n </Dialog>\n );\n};\n\nImportModal.displayName = COMPONENT_DISPLAY_NAMES.IMPORT_MODAL;\n\nexport default ImportModal;"],"names":["React"],"mappings":"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"}
1
+ {"version":3,"file":"import-modal.js","sources":["../../../../src/commons/components/import-modal.tsx"],"sourcesContent":["import {\n Box,\n Button,\n Dialog,\n DialogContent,\n Flex,\n FormInput,\n Heading,\n IconButton,\n} from \"@sparrowengg/twigs-react\";\nimport { CloseIcon } from \"@sparrowengg/twigs-react-icons\";\nimport React from \"react\";\n\ntype ImportModalProps = {\n onCloseHandler: () => void;\n onInputHandler: (value: string) => void;\n onSaveHandler: () => void;\n};\n\nconst ImportModal: React.FC<ImportModalProps> = ({\n onCloseHandler,\n onInputHandler,\n onSaveHandler,\n}) => {\n return (\n <Dialog open>\n <DialogContent\n css={{\n padding: 0,\n borderRadius: \"$3xl\",\n }}\n >\n <Flex\n alignItems=\"center\"\n justifyContent=\"space-between\"\n css={{\n padding: \"$8 $12\",\n borderBottom: \"$borderWidths$xs solid $neutral200\",\n }}\n >\n <Heading size=\"h6\" css={{ color: \"$neutral900\" }}>\n New Custom Property\n </Heading>\n <IconButton\n variant=\"ghost\"\n color=\"default\"\n icon={<CloseIcon />}\n size=\"lg\"\n css={{\n \"& svg\": {\n color: \"#64748B !important\",\n },\n }}\n onClick={onCloseHandler}\n />\n </Flex>\n <Box\n css={{\n padding: \"$12\",\n }}\n >\n <FormInput\n label={\"Property Name\"}\n requiredIndicator\n onChange={(event) => onInputHandler(event.currentTarget.value)}\n size=\"lg\"\n />\n </Box>\n <Flex\n gap=\"$4\"\n css={{\n justifyContent: \"flex-end\",\n padding: \"$8 $12\",\n }}\n >\n <Button\n size=\"lg\"\n variant=\"ghost\"\n color=\"default\"\n onClick={onCloseHandler}\n >\n Cancel\n </Button>\n <Button size=\"lg\" onClick={onSaveHandler}>\n Save\n </Button>\n </Flex>\n </DialogContent>\n </Dialog>\n );\n};\n\nexport default ImportModal;"],"names":["React"],"mappings":";;;;;;;;;;AAmBA,MAAM,cAA0C,CAAC;AAAA,EAC/C,cAAA;AAAA,EACA,cAAA;AAAA,EACA,aAAA;AACF,CAAM,KAAA;AACJ,EACE,uBAAAA,cAAA,CAAA,aAAA,CAAC,MAAO,EAAA,EAAA,IAAA,EAAI,IACV,EAAA,kBAAAA,cAAA,CAAA,aAAA;AAAA,IAAC,aAAA;AAAA,IAAA;AAAA,MACC,GAAK,EAAA;AAAA,QACH,OAAS,EAAA,CAAA;AAAA,QACT,YAAc,EAAA,MAAA;AAAA,OAChB;AAAA,KAAA;AAAA,oBAEAA,cAAA,CAAA,aAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,UAAW,EAAA,QAAA;AAAA,QACX,cAAe,EAAA,eAAA;AAAA,QACf,GAAK,EAAA;AAAA,UACH,OAAS,EAAA,QAAA;AAAA,UACT,YAAc,EAAA,oCAAA;AAAA,SAChB;AAAA,OAAA;AAAA,sBAEAA,cAAA,CAAA,aAAA,CAAC,WAAQ,IAAK,EAAA,IAAA,EAAK,KAAK,EAAE,KAAA,EAAO,aAAc,EAAA,EAAA,EAAG,qBAElD,CAAA;AAAA,sBACAA,cAAA,CAAA,aAAA;AAAA,QAAC,UAAA;AAAA,QAAA;AAAA,UACC,OAAQ,EAAA,OAAA;AAAA,UACR,KAAM,EAAA,SAAA;AAAA,UACN,IAAA,+CAAO,SAAU,EAAA,IAAA,CAAA;AAAA,UACjB,IAAK,EAAA,IAAA;AAAA,UACL,GAAK,EAAA;AAAA,YACH,OAAS,EAAA;AAAA,cACP,KAAO,EAAA,oBAAA;AAAA,aACT;AAAA,WACF;AAAA,UACA,OAAS,EAAA,cAAA;AAAA,SAAA;AAAA,OACX;AAAA,KACF;AAAA,oBACAA,cAAA,CAAA,aAAA;AAAA,MAAC,GAAA;AAAA,MAAA;AAAA,QACC,GAAK,EAAA;AAAA,UACH,OAAS,EAAA,KAAA;AAAA,SACX;AAAA,OAAA;AAAA,sBAEAA,cAAA,CAAA,aAAA;AAAA,QAAC,SAAA;AAAA,QAAA;AAAA,UACC,KAAO,EAAA,eAAA;AAAA,UACP,iBAAiB,EAAA,IAAA;AAAA,UACjB,UAAU,CAAC,KAAA,KAAU,cAAe,CAAA,KAAA,CAAM,cAAc,KAAK,CAAA;AAAA,UAC7D,IAAK,EAAA,IAAA;AAAA,SAAA;AAAA,OACP;AAAA,KACF;AAAA,oBACAA,cAAA,CAAA,aAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,GAAI,EAAA,IAAA;AAAA,QACJ,GAAK,EAAA;AAAA,UACH,cAAgB,EAAA,UAAA;AAAA,UAChB,OAAS,EAAA,QAAA;AAAA,SACX;AAAA,OAAA;AAAA,sBAEAA,cAAA,CAAA,aAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,IAAK,EAAA,IAAA;AAAA,UACL,OAAQ,EAAA,OAAA;AAAA,UACR,KAAM,EAAA,SAAA;AAAA,UACN,OAAS,EAAA,cAAA;AAAA,SAAA;AAAA,QACV,QAAA;AAAA,OAED;AAAA,mDACC,MAAO,EAAA,EAAA,IAAA,EAAK,IAAK,EAAA,OAAA,EAAS,iBAAe,MAE1C,CAAA;AAAA,KACF;AAAA,GAEJ,CAAA,CAAA;AAEJ;;;;"}
@@ -1,5 +1,4 @@
1
1
  import React__default from 'react';
2
- import { ATTRIBUTES, SIZE_VALUES, ARIA_LABELS, COMPONENT_DISPLAY_NAMES } from '../constants/strings.js';
3
2
  import { keyframes, styled } from '../../node_modules/@sparrowengg/twigs-react/dist/es/stitches.config.js';
4
3
  import { Box } from '../../node_modules/@sparrowengg/twigs-react/dist/es/box/box.js';
5
4
 
@@ -38,22 +37,9 @@ const StyledBox = styled(Box, {
38
37
  size: "md"
39
38
  }
40
39
  });
41
- const Spinner = ({
42
- size = SIZE_VALUES.MEDIUM,
43
- className,
44
- ariaLabel = ARIA_LABELS.LOADING
45
- }) => {
46
- return /* @__PURE__ */ React__default.createElement(
47
- StyledBox,
48
- {
49
- size,
50
- className,
51
- role: ATTRIBUTES.STATUS,
52
- "aria-label": ariaLabel
53
- }
54
- );
40
+ const Spinner = ({ size = "md" }) => {
41
+ return /* @__PURE__ */ React__default.createElement(StyledBox, { size });
55
42
  };
56
- Spinner.displayName = COMPONENT_DISPLAY_NAMES.SPINNER;
57
43
 
58
44
  export { Spinner as default };
59
45
  //# sourceMappingURL=spinner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"spinner.js","sources":["../../../../src/commons/components/spinner.tsx"],"sourcesContent":["import React from 'react';\nimport { keyframes, Box, styled } from '@sparrowengg/twigs-react';\nimport { SIZE_VALUES, ARIA_LABELS, ATTRIBUTES, COMPONENT_DISPLAY_NAMES } from '../constants/strings';\n\n/**\n * Available spinner sizes\n */\nexport type SpinnerSize = 'sm' | 'md';\n\n/**\n * Props for the Spinner component\n */\nexport interface SpinnerProps {\n /** Size variant of the spinner */\n size?: SpinnerSize;\n /** Optional: Additional CSS class name */\n className?: string;\n /** Optional: ARIA label for accessibility */\n ariaLabel?: string;\n}\n\n/**\n * Keyframe animation for spinner rotation\n */\nconst spin = keyframes({\n '0%': { transform: 'rotate(0deg)' },\n '100%': { transform: 'rotate(360deg)' },\n});\n\n/**\n * Styled spinner component with size variants\n */\nconst StyledBox = styled(Box, {\n borderRadius: '50%',\n width: '$7',\n height: '$7',\n borderStyle: 'solid',\n borderWidth: '$md',\n borderBottomColor: '$neutral400',\n borderRightColor: '$neutral400',\n borderTopColor: '$black900',\n borderLeftColor: '$black900',\n animationDuration: '800ms',\n animationTimingFunction: 'linear',\n animationIterationCount: 'infinite',\n willChange: 'transform',\n animationName: `${spin}`,\n variants: {\n size: {\n sm: {\n width: '$5',\n height: '$5',\n },\n md: {\n width: '$7',\n height: '$7',\n },\n },\n },\n defaultVariants: {\n size: 'md',\n },\n});\n\n/**\n * Spinner Component\n * \n * A loading spinner with customizable size.\n * Provides visual feedback during async operations.\n * \n * @example\n * ```tsx\n * <Spinner size=\"md\" ariaLabel=\"Loading content\" />\n * ```\n */\nconst Spinner: React.FC<SpinnerProps> = ({\n size = SIZE_VALUES.MEDIUM,\n className,\n ariaLabel = ARIA_LABELS.LOADING,\n}) => {\n return (\n <StyledBox\n size={size}\n className={className}\n role={ATTRIBUTES.STATUS}\n aria-label={ariaLabel}\n />\n );\n};\n\nSpinner.displayName = COMPONENT_DISPLAY_NAMES.SPINNER;\n\nexport default Spinner;"],"names":["React"],"mappings":";;;;;AAwBA,MAAM,OAAO,SAAU,CAAA;AAAA,EACrB,IAAA,EAAM,EAAE,SAAA,EAAW,cAAe,EAAA;AAAA,EAClC,MAAA,EAAQ,EAAE,SAAA,EAAW,gBAAiB,EAAA;AACxC,CAAC,CAAA,CAAA;AAKD,MAAM,SAAA,GAAY,OAAO,GAAK,EAAA;AAAA,EAC5B,YAAc,EAAA,KAAA;AAAA,EACd,KAAO,EAAA,IAAA;AAAA,EACP,MAAQ,EAAA,IAAA;AAAA,EACR,WAAa,EAAA,OAAA;AAAA,EACb,WAAa,EAAA,KAAA;AAAA,EACb,iBAAmB,EAAA,aAAA;AAAA,EACnB,gBAAkB,EAAA,aAAA;AAAA,EAClB,cAAgB,EAAA,WAAA;AAAA,EAChB,eAAiB,EAAA,WAAA;AAAA,EACjB,iBAAmB,EAAA,OAAA;AAAA,EACnB,uBAAyB,EAAA,QAAA;AAAA,EACzB,uBAAyB,EAAA,UAAA;AAAA,EACzB,UAAY,EAAA,WAAA;AAAA,EACZ,aAAA,EAAe,GAAG,IAAI,CAAA,CAAA;AAAA,EACtB,QAAU,EAAA;AAAA,IACR,IAAM,EAAA;AAAA,MACJ,EAAI,EAAA;AAAA,QACF,KAAO,EAAA,IAAA;AAAA,QACP,MAAQ,EAAA,IAAA;AAAA,OACV;AAAA,MACA,EAAI,EAAA;AAAA,QACF,KAAO,EAAA,IAAA;AAAA,QACP,MAAQ,EAAA,IAAA;AAAA,OACV;AAAA,KACF;AAAA,GACF;AAAA,EACA,eAAiB,EAAA;AAAA,IACf,IAAM,EAAA,IAAA;AAAA,GACR;AACF,CAAC,CAAA,CAAA;AAaD,MAAM,UAAkC,CAAC;AAAA,EACvC,OAAO,WAAY,CAAA,MAAA;AAAA,EACnB,SAAA;AAAA,EACA,YAAY,WAAY,CAAA,OAAA;AAC1B,CAAM,KAAA;AACJ,EACE,uBAAAA,cAAA,CAAA,aAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,IAAA;AAAA,MACA,SAAA;AAAA,MACA,MAAM,UAAW,CAAA,MAAA;AAAA,MACjB,YAAY,EAAA,SAAA;AAAA,KAAA;AAAA,GACd,CAAA;AAEJ,EAAA;AAEA,OAAA,CAAQ,cAAc,uBAAwB,CAAA,OAAA;;;;"}
1
+ {"version":3,"file":"spinner.js","sources":["../../../../src/commons/components/spinner.tsx"],"sourcesContent":["import React from \"react\";\nimport { keyframes, Box, styled } from \"@sparrowengg/twigs-react\";\n\nconst spin = keyframes({\n \"0%\": { transform: \"rotate(0deg)\" },\n \"100%\": { transform: \"rotate(360deg)\" },\n});\n\nconst StyledBox = styled(Box, {\n borderRadius: \"50%\",\n width: \"$7\",\n height: \"$7\",\n borderStyle: \"solid\",\n borderWidth: \"$md\",\n borderBottomColor: \"$neutral400\",\n borderRightColor: \"$neutral400\",\n borderTopColor: \"$black900\",\n borderLeftColor: \"$black900\",\n animationDuration: \"800ms\",\n animationTimingFunction: \"linear\",\n animationIterationCount: \"infinite\",\n willChange: \"transform\",\n animationName: `${spin}`,\n variants: {\n size: {\n sm: {\n width: \"$5\",\n height: \"$5\",\n },\n md: {\n width: \"$7\",\n height: \"$7\",\n },\n },\n },\n defaultVariants: {\n size: \"md\",\n },\n});\n\ntype SpinnerProps = {\n size?: \"md\" | \"sm\";\n};\n\nconst Spinner: React.FC<SpinnerProps> = ({ size = \"md\" }) => {\n return <StyledBox size={size} />;\n};\n\nexport default Spinner;"],"names":["React"],"mappings":";;;;AAGA,MAAM,OAAO,SAAU,CAAA;AAAA,EACrB,IAAA,EAAM,EAAE,SAAA,EAAW,cAAe,EAAA;AAAA,EAClC,MAAA,EAAQ,EAAE,SAAA,EAAW,gBAAiB,EAAA;AACxC,CAAC,CAAA,CAAA;AAED,MAAM,SAAA,GAAY,OAAO,GAAK,EAAA;AAAA,EAC5B,YAAc,EAAA,KAAA;AAAA,EACd,KAAO,EAAA,IAAA;AAAA,EACP,MAAQ,EAAA,IAAA;AAAA,EACR,WAAa,EAAA,OAAA;AAAA,EACb,WAAa,EAAA,KAAA;AAAA,EACb,iBAAmB,EAAA,aAAA;AAAA,EACnB,gBAAkB,EAAA,aAAA;AAAA,EAClB,cAAgB,EAAA,WAAA;AAAA,EAChB,eAAiB,EAAA,WAAA;AAAA,EACjB,iBAAmB,EAAA,OAAA;AAAA,EACnB,uBAAyB,EAAA,QAAA;AAAA,EACzB,uBAAyB,EAAA,UAAA;AAAA,EACzB,UAAY,EAAA,WAAA;AAAA,EACZ,aAAA,EAAe,GAAG,IAAI,CAAA,CAAA;AAAA,EACtB,QAAU,EAAA;AAAA,IACR,IAAM,EAAA;AAAA,MACJ,EAAI,EAAA;AAAA,QACF,KAAO,EAAA,IAAA;AAAA,QACP,MAAQ,EAAA,IAAA;AAAA,OACV;AAAA,MACA,EAAI,EAAA;AAAA,QACF,KAAO,EAAA,IAAA;AAAA,QACP,MAAQ,EAAA,IAAA;AAAA,OACV;AAAA,KACF;AAAA,GACF;AAAA,EACA,eAAiB,EAAA;AAAA,IACf,IAAM,EAAA,IAAA;AAAA,GACR;AACF,CAAC,CAAA,CAAA;AAMD,MAAM,OAAkC,GAAA,CAAC,EAAE,IAAA,GAAO,MAAW,KAAA;AAC3D,EAAO,uBAAAA,cAAA,CAAA,aAAA,CAAC,aAAU,IAAY,EAAA,CAAA,CAAA;AAChC;;;;"}
@@ -1,17 +1,20 @@
1
1
  import React__default from 'react';
2
- import { COMPONENT_DISPLAY_NAMES, FONT_FAMILIES } from '../constants/strings.js';
3
2
  import { ThemeProvider } from '../../node_modules/@sparrowengg/twigs-react/dist/es/theme-provider/theme-provider.js';
4
3
 
5
- const THEME_CONFIG = {
6
- fonts: {
7
- body: FONT_FAMILIES.DM_SANS_ROBOTO_MONO_SANS_SERIF,
8
- heading: FONT_FAMILIES.DM_SANS_ROBOTO_MONO_SANS_SERIF
9
- }
10
- };
11
4
  const ThemeWrapper = ({ children }) => {
12
- return /* @__PURE__ */ React__default.createElement(ThemeProvider, { theme: THEME_CONFIG }, children);
5
+ return /* @__PURE__ */ React__default.createElement(
6
+ ThemeProvider,
7
+ {
8
+ theme: {
9
+ fonts: {
10
+ body: "DM Sans, Roboto Mono, sans-serif",
11
+ heading: "DM Sans, Roboto Mono, sans-serif"
12
+ }
13
+ }
14
+ },
15
+ children
16
+ );
13
17
  };
14
- ThemeWrapper.displayName = COMPONENT_DISPLAY_NAMES.THEME_WRAPPER;
15
18
 
16
19
  export { ThemeWrapper as default };
17
20
  //# sourceMappingURL=theme-wrapper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"theme-wrapper.js","sources":["../../../../src/commons/components/theme-wrapper.tsx"],"sourcesContent":["import React, { ReactNode } from 'react';\nimport { ThemeProvider } from '@sparrowengg/twigs-react';\nimport { FONT_FAMILIES, COMPONENT_DISPLAY_NAMES } from '../constants/strings';\n\n/**\n * Props for the ThemeWrapper component\n */\nexport interface ThemeWrapperProps {\n /** Child components to be wrapped with the theme provider */\n children: ReactNode;\n}\n\n/**\n * Theme configuration for the application\n */\nconst THEME_CONFIG = {\n fonts: {\n body: FONT_FAMILIES.DM_SANS_ROBOTO_MONO_SANS_SERIF,\n heading: FONT_FAMILIES.DM_SANS_ROBOTO_MONO_SANS_SERIF,\n },\n} as const;\n\n/**\n * ThemeWrapper Component\n * \n * A wrapper component that provides consistent theme configuration\n * to all child components using the Twigs theme system.\n * \n * @example\n * ```tsx\n * <ThemeWrapper>\n * <App />\n * </ThemeWrapper>\n * ```\n */\nconst ThemeWrapper: React.FC<ThemeWrapperProps> = ({ children }) => {\n return <ThemeProvider theme={THEME_CONFIG}>{children}</ThemeProvider>;\n};\n\nThemeWrapper.displayName = COMPONENT_DISPLAY_NAMES.THEME_WRAPPER;\n\nexport default ThemeWrapper;\n"],"names":["React"],"mappings":";;;;AAeA,MAAM,YAAe,GAAA;AAAA,EACnB,KAAO,EAAA;AAAA,IACL,MAAM,aAAc,CAAA,8BAAA;AAAA,IACpB,SAAS,aAAc,CAAA,8BAAA;AAAA,GACzB;AACF,CAAA,CAAA;AAeA,MAAM,YAA4C,GAAA,CAAC,EAAE,QAAA,EAAe,KAAA;AAClE,EAAA,uBAAQA,cAAA,CAAA,aAAA,CAAA,aAAA,EAAA,EAAc,KAAO,EAAA,YAAA,EAAA,EAAe,QAAS,CAAA,CAAA;AACvD,EAAA;AAEA,YAAA,CAAa,cAAc,uBAAwB,CAAA,aAAA;;;;"}
1
+ {"version":3,"file":"theme-wrapper.js","sources":["../../../../src/commons/components/theme-wrapper.tsx"],"sourcesContent":["import { ThemeProvider, Flex } from \"@sparrowengg/twigs-react\";\nimport React, { ReactNode } from \"react\";\n\nconst ThemeWrapper = ({ children }: { children: ReactNode }) => {\n return (\n <ThemeProvider\n theme={{\n fonts: {\n body: \"DM Sans, Roboto Mono, sans-serif\",\n heading: \"DM Sans, Roboto Mono, sans-serif\"\n }\n }}\n >\n {children}\n </ThemeProvider>\n );\n};\n\nexport default ThemeWrapper;\n"],"names":["React"],"mappings":";;;AAGA,MAAM,YAAe,GAAA,CAAC,EAAE,QAAA,EAAwC,KAAA;AAC9D,EACE,uBAAAA,cAAA,CAAA,aAAA;AAAA,IAAC,aAAA;AAAA,IAAA;AAAA,MACC,KAAO,EAAA;AAAA,QACL,KAAO,EAAA;AAAA,UACL,IAAM,EAAA,kCAAA;AAAA,UACN,OAAS,EAAA,kCAAA;AAAA,SACX;AAAA,OACF;AAAA,KAAA;AAAA,IAEC,QAAA;AAAA,GACH,CAAA;AAEJ;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"enhanced.js","sources":["../../../../src/commons/constants/enhanced.ts"],"sourcesContent":["import { SelectOption, DateOption, FilterCondition } from '../types/enhanced';\n\n// API Constants\nexport const API_ENDPOINTS = {\n SURVEY_SPARROW: 'https://api.surveysparrow.com',\n SURVEY_QUESTIONS: '/surveys/:surveyId/questions',\n SURVEY_VARIABLES: '/surveys/:surveyId/variables',\n SURVEY_EXPRESSIONS: '/surveys/:surveyId/expressions',\n CONTACT_PROPERTIES: '/contact-properties',\n SURVEY_CHANNELS: '/surveys/:surveyId/channels',\n} as const;\n\n// UI Constants\nexport const UI_CONSTANTS = {\n FORM_WIDTH: 488,\n MODAL_MAX_WIDTH: 600,\n INPUT_MAX_LENGTH: 30,\n TABLE_PAGE_SIZE: 10,\n MAX_FILTER_CONDITIONS: 5,\n DEBOUNCE_DELAY: 300,\n} as const;\n\n// CSS Spacing (Stitches Design Tokens)\nexport const SPACING = {\n xs: '$2',\n sm: '$4',\n md: '$8',\n lg: '$12',\n xl: '$16',\n '2xl': '$24',\n '3xl': '$32',\n '4xl': '$40',\n} as const;\n\n// Field Types\nexport const FIELD_TYPES = {\n TEXT: 'text',\n EMAIL: 'email',\n PASSWORD: 'password',\n NUMBER: 'number',\n DATE: 'date',\n SELECT: 'select',\n CHECKBOX: 'checkbox',\n RADIO: 'radio',\n TEXTAREA: 'textarea',\n} as const;\n\n// Integration Field Types\nexport const INTEGRATION_FIELD_TYPES = {\n STRING: 'STRING',\n NUMBER: 'NUMBER',\n BOOLEAN: 'BOOLEAN',\n DATE_TIME: 'DATE_TIME',\n EMAIL: 'EMAIL',\n PHONE: 'PHONE',\n URL: 'URL',\n} as const;\n\n// Survey Types\nexport const SURVEY_TYPES = {\n CLASSIC: 'classic',\n NPS: 'nps',\n CHAT: 'chat',\n KIOSK: 'kiosk',\n} as const;\n\n// Mapping Types\nexport const MAPPING_TYPES: SelectOption[] = [\n { label: 'Question', value: 'QUESTION' },\n { label: 'Contact', value: 'CONTACT' },\n { label: 'Variable', value: 'VARIABLE' },\n { label: 'Expression', value: 'EXPRESSION' },\n { label: 'Submission Property', value: 'SUBMISSION_PROPERTY' },\n];\n\n// Data Type Options for Integration Fields\nexport const DATA_TYPE_OPTIONS: SelectOption[] = [\n {\n label: 'String',\n value: 'STRING',\n },\n {\n label: 'Number',\n value: 'NUMBER',\n },\n {\n label: 'Boolean',\n value: 'BOOLEAN',\n },\n {\n label: 'Date/Time',\n value: 'DATE_TIME',\n },\n];\n\n// Filter Operators\nexport const FILTER_OPERATORS: SelectOption[] = [\n { label: 'is equals to', value: 'IS' },\n { label: 'is not equals to', value: 'IS_NOT' },\n { label: 'contains', value: 'CONTAINS' },\n { label: 'not contains', value: 'CONTAINS_NOT' },\n { label: 'has no value', value: 'NO_VALUE' },\n { label: 'has any value', value: 'ANY_VALUE' },\n { label: 'before', value: 'BEFORE' },\n { label: 'after', value: 'AFTER' },\n { label: 'on', value: 'ON' },\n];\n\n// Boolean Options\nexport const BOOLEAN_OPTIONS: SelectOption[] = [\n { label: 'True', value: 'true' },\n { label: 'False', value: 'false' },\n];\n\n// Date Options\nexport const DATE_OPTIONS: DateOption[] = [\n {\n label: 'Today',\n value: 'today',\n type: 'dynamic',\n },\n {\n label: 'Yesterday',\n value: 'yesterday',\n type: 'dynamic',\n },\n {\n label: 'Last 7 days',\n value: 'last_7_days',\n type: 'dynamic',\n },\n {\n label: 'Last 30 days',\n value: 'last_30_days',\n type: 'dynamic',\n },\n {\n label: 'Last 3 months',\n value: 'last_3_months',\n type: 'dynamic',\n },\n {\n label: 'Custom Date',\n value: 'custom',\n type: 'static',\n },\n];\n\n// Submission Properties for Classic Surveys\nexport const CLASSIC_SUBMISSION_PROPERTIES: SelectOption[] = [\n { label: 'Submitted at', value: 'completed_time', type: 'STRING' },\n { label: 'Device type', value: 'device_type', type: 'STRING' },\n { label: 'Language', value: 'language', type: 'STRING' },\n { label: 'Start time', value: 'start_time', type: 'STRING' },\n { label: 'Survey ID', value: 'survey_id', type: 'STRING' },\n { label: 'Time taken', value: 'time_taken', type: 'STRING' },\n { label: 'Submission state', value: 'state', type: 'STRING' },\n { label: 'Submission ID', value: 'id', type: 'STRING' },\n { label: 'Location', value: 'location', type: 'STRING' },\n { label: 'OS', value: 'os', type: 'STRING' },\n { label: 'Browser', value: 'browser', type: 'STRING' },\n { label: 'IP', value: 'ip', type: 'STRING' },\n { label: 'Channel Type', value: 'channel_type', type: 'STRING' },\n];\n\n// Submission Properties for NPS Surveys\nexport const NPS_SUBMISSION_PROPERTIES: SelectOption[] = [\n { label: 'Submission Start time', value: 'start_time', type: 'STRING' },\n { label: 'Device type', value: 'device_type', type: 'STRING' },\n { label: 'IP', value: 'ip', type: 'STRING' },\n { label: 'Language', value: 'language', type: 'STRING' },\n { label: 'Survey ID', value: 'survey_id', type: 'STRING' },\n { label: 'Submission state', value: 'state', type: 'STRING' },\n { label: 'Submission ID', value: 'id', type: 'STRING' },\n { label: 'Time taken', value: 'time_taken', type: 'STRING' },\n { label: 'Submitted at', value: 'completed_time', type: 'STRING' },\n { label: 'Location', value: 'location', type: 'STRING' },\n { label: 'OS', value: 'os', type: 'STRING' },\n { label: 'Browser', value: 'browser', type: 'STRING' },\n];\n\n// Contact Import Frequencies\nexport const IMPORT_FREQUENCIES: SelectOption[] = [\n { label: 'One Time', value: 'oneTime' },\n { label: 'Daily', value: 'daily' },\n { label: 'Weekly', value: 'weekly' },\n { label: 'Monthly', value: 'monthly' },\n];\n\n// Time Zones (Common ones)\nexport const TIME_ZONES: SelectOption[] = [\n { label: 'UTC', value: 'UTC' },\n { label: 'America/New_York', value: 'America/New_York' },\n { label: 'America/Los_Angeles', value: 'America/Los_Angeles' },\n { label: 'Europe/London', value: 'Europe/London' },\n { label: 'Asia/Kolkata', value: 'Asia/Kolkata' },\n { label: 'Asia/Tokyo', value: 'Asia/Tokyo' },\n];\n\n// Notification Channels\nexport const NOTIFICATION_CHANNELS: SelectOption[] = [\n { label: 'Email', value: 'email' },\n { label: 'SMS', value: 'sms' },\n { label: 'WhatsApp', value: 'whatsapp' },\n { label: 'Slack', value: 'slack' },\n { label: 'Webhook', value: 'webhook' },\n];\n\n// Status Options\nexport const STATUS_OPTIONS = {\n PENDING: 'pending',\n IN_PROGRESS: 'in_progress',\n COMPLETED: 'completed',\n FAILED: 'failed',\n CANCELLED: 'cancelled',\n} as const;\n\n// Error Messages\nexport const ERROR_MESSAGES = {\n REQUIRED_FIELD: 'This field is required',\n INVALID_EMAIL: 'Please enter a valid email address',\n INVALID_PHONE: 'Please enter a valid phone number',\n INVALID_URL: 'Please enter a valid URL',\n MIN_LENGTH: (min: number) => `Minimum ${min} characters required`,\n MAX_LENGTH: (max: number) => `Maximum ${max} characters allowed`,\n NETWORK_ERROR: 'Network error. Please try again.',\n GENERIC_ERROR: 'Something went wrong. Please try again.',\n} as const;\n\n// Success Messages\nexport const SUCCESS_MESSAGES = {\n SAVED: 'Saved successfully',\n UPDATED: 'Updated successfully',\n DELETED: 'Deleted successfully',\n IMPORTED: 'Import completed successfully',\n EXPORTED: 'Export completed successfully',\n} as const;\n\n// Loading Messages\nexport const LOADING_MESSAGES = {\n SAVING: 'Saving...',\n LOADING: 'Loading...',\n PROCESSING: 'Processing...',\n IMPORTING: 'Importing...',\n EXPORTING: 'Exporting...',\n} as const;\n\n// Default Values\nexport const DEFAULT_VALUES = {\n PAGE_SIZE: 10,\n DEBOUNCE_DELAY: 300,\n TOAST_DURATION: 3000,\n MAX_FILE_SIZE: 5 * 1024 * 1024, // 5MB\n SUPPORTED_FILE_TYPES: ['.csv', '.xlsx', '.json'],\n} as const;\n\n// Validation Rules\nexport const VALIDATION_RULES = {\n EMAIL_REGEX: /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/,\n PHONE_REGEX: /^\\+?[\\d\\s\\-\\(\\)]+$/,\n URL_REGEX: /^https?:\\/\\/.+/,\n MIN_PASSWORD_LENGTH: 8,\n MAX_TEXT_LENGTH: 255,\n MAX_TEXTAREA_LENGTH: 1000,\n} as const;\n\n// Re-export string constants\nexport * from './strings';\n"],"names":[],"mappings":"AAmEO,MAAM,aAAgC,GAAA;AAAA,EAC3C,EAAE,KAAA,EAAO,UAAY,EAAA,KAAA,EAAO,UAAW,EAAA;AAAA,EACvC,EAAE,KAAA,EAAO,SAAW,EAAA,KAAA,EAAO,SAAU,EAAA;AAAA,EACrC,EAAE,KAAA,EAAO,UAAY,EAAA,KAAA,EAAO,UAAW,EAAA;AAAA,EACvC,EAAE,KAAA,EAAO,YAAc,EAAA,KAAA,EAAO,YAAa,EAAA;AAAA,EAC3C,EAAE,KAAA,EAAO,qBAAuB,EAAA,KAAA,EAAO,qBAAsB,EAAA;AAC/D;;;;"}
1
+ {"version":3,"file":"enhanced.js","sources":["../../../../src/commons/constants/enhanced.ts"],"sourcesContent":["import { SelectOption, DateOption, FilterCondition } from '../types/enhanced';\n\n// API Constants\nexport const API_ENDPOINTS = {\n SURVEY_SPARROW: 'https://api.surveysparrow.com',\n SURVEY_QUESTIONS: '/surveys/:surveyId/questions',\n SURVEY_VARIABLES: '/surveys/:surveyId/variables',\n SURVEY_EXPRESSIONS: '/surveys/:surveyId/expressions',\n CONTACT_PROPERTIES: '/contact-properties',\n SURVEY_CHANNELS: '/surveys/:surveyId/channels',\n} as const;\n\n// UI Constants\nexport const UI_CONSTANTS = {\n FORM_WIDTH: 488,\n MODAL_MAX_WIDTH: 600,\n INPUT_MAX_LENGTH: 30,\n TABLE_PAGE_SIZE: 10,\n MAX_FILTER_CONDITIONS: 5,\n DEBOUNCE_DELAY: 300,\n} as const;\n\n// CSS Spacing (Stitches Design Tokens)\nexport const SPACING = {\n xs: '$2',\n sm: '$4',\n md: '$8',\n lg: '$12',\n xl: '$16',\n '2xl': '$24',\n '3xl': '$32',\n '4xl': '$40',\n} as const;\n\n// Field Types\nexport const FIELD_TYPES = {\n TEXT: 'text',\n EMAIL: 'email',\n PASSWORD: 'password',\n NUMBER: 'number',\n DATE: 'date',\n SELECT: 'select',\n CHECKBOX: 'checkbox',\n RADIO: 'radio',\n TEXTAREA: 'textarea',\n} as const;\n\n// Integration Field Types\nexport const INTEGRATION_FIELD_TYPES = {\n STRING: 'STRING',\n NUMBER: 'NUMBER',\n BOOLEAN: 'BOOLEAN',\n DATE_TIME: 'DATE_TIME',\n EMAIL: 'EMAIL',\n PHONE: 'PHONE',\n URL: 'URL',\n} as const;\n\n// Survey Types\nexport const SURVEY_TYPES = {\n CLASSIC: 'classic',\n NPS: 'nps',\n CHAT: 'chat',\n KIOSK: 'kiosk',\n} as const;\n\n// Mapping Types\nexport const MAPPING_TYPES: SelectOption[] = [\n { label: 'Question', value: 'QUESTION' },\n { label: 'Contact', value: 'CONTACT' },\n { label: 'Variable', value: 'VARIABLE' },\n { label: 'Expression', value: 'EXPRESSION' },\n { label: 'Submission Property', value: 'SUBMISSION_PROPERTY' },\n];\n\n// Data Type Options for Integration Fields\nexport const DATA_TYPE_OPTIONS: SelectOption[] = [\n {\n label: 'String',\n value: 'STRING',\n },\n {\n label: 'Number',\n value: 'NUMBER',\n },\n {\n label: 'Boolean',\n value: 'BOOLEAN',\n },\n {\n label: 'Date/Time',\n value: 'DATE_TIME',\n },\n];\n\n// Filter Operators\nexport const FILTER_OPERATORS: SelectOption[] = [\n { label: 'is equals to', value: 'IS' },\n { label: 'is not equals to', value: 'IS_NOT' },\n { label: 'contains', value: 'CONTAINS' },\n { label: 'not contains', value: 'CONTAINS_NOT' },\n { label: 'has no value', value: 'NO_VALUE' },\n { label: 'has any value', value: 'ANY_VALUE' },\n { label: 'before', value: 'BEFORE' },\n { label: 'after', value: 'AFTER' },\n { label: 'on', value: 'ON' },\n];\n\n// Boolean Options\nexport const BOOLEAN_OPTIONS: SelectOption[] = [\n { label: 'True', value: 'true' },\n { label: 'False', value: 'false' },\n];\n\n// Date Options\nexport const DATE_OPTIONS: DateOption[] = [\n {\n label: 'Today',\n value: 'today',\n type: 'dynamic',\n },\n {\n label: 'Yesterday',\n value: 'yesterday',\n type: 'dynamic',\n },\n {\n label: 'Last 7 days',\n value: 'last_7_days',\n type: 'dynamic',\n },\n {\n label: 'Last 30 days',\n value: 'last_30_days',\n type: 'dynamic',\n },\n {\n label: 'Last 3 months',\n value: 'last_3_months',\n type: 'dynamic',\n },\n {\n label: 'Custom Date',\n value: 'custom',\n type: 'static',\n },\n];\n\n// Submission Properties for Classic Surveys\nexport const CLASSIC_SUBMISSION_PROPERTIES: SelectOption[] = [\n { label: 'Submitted at', value: 'completed_time', type: 'STRING' },\n { label: 'Device type', value: 'device_type', type: 'STRING' },\n { label: 'Language', value: 'language', type: 'STRING' },\n { label: 'Start time', value: 'start_time', type: 'STRING' },\n { label: 'Survey ID', value: 'survey_id', type: 'STRING' },\n { label: 'Time taken', value: 'time_taken', type: 'STRING' },\n { label: 'Submission state', value: 'state', type: 'STRING' },\n { label: 'Submission ID', value: 'id', type: 'STRING' },\n { label: 'Location', value: 'location', type: 'STRING' },\n { label: 'OS', value: 'os', type: 'STRING' },\n { label: 'Browser', value: 'browser', type: 'STRING' },\n { label: 'IP', value: 'ip', type: 'STRING' },\n { label: 'Channel Type', value: 'channel_type', type: 'STRING' },\n];\n\n// Submission Properties for NPS Surveys\nexport const NPS_SUBMISSION_PROPERTIES: SelectOption[] = [\n { label: 'Submission Start time', value: 'start_time', type: 'STRING' },\n { label: 'Device type', value: 'device_type', type: 'STRING' },\n { label: 'IP', value: 'ip', type: 'STRING' },\n { label: 'Language', value: 'language', type: 'STRING' },\n { label: 'Survey ID', value: 'survey_id', type: 'STRING' },\n { label: 'Submission state', value: 'state', type: 'STRING' },\n { label: 'Submission ID', value: 'id', type: 'STRING' },\n { label: 'Time taken', value: 'time_taken', type: 'STRING' },\n { label: 'Submitted at', value: 'completed_time', type: 'STRING' },\n { label: 'Location', value: 'location', type: 'STRING' },\n { label: 'OS', value: 'os', type: 'STRING' },\n { label: 'Browser', value: 'browser', type: 'STRING' },\n];\n\n// Contact Import Frequencies\nexport const IMPORT_FREQUENCIES: SelectOption[] = [\n { label: 'One Time', value: 'oneTime' },\n { label: 'Daily', value: 'daily' },\n { label: 'Weekly', value: 'weekly' },\n { label: 'Monthly', value: 'monthly' },\n];\n\n// Time Zones (Common ones)\nexport const TIME_ZONES: SelectOption[] = [\n { label: 'UTC', value: 'UTC' },\n { label: 'America/New_York', value: 'America/New_York' },\n { label: 'America/Los_Angeles', value: 'America/Los_Angeles' },\n { label: 'Europe/London', value: 'Europe/London' },\n { label: 'Asia/Kolkata', value: 'Asia/Kolkata' },\n { label: 'Asia/Tokyo', value: 'Asia/Tokyo' },\n];\n\n// Notification Channels\nexport const NOTIFICATION_CHANNELS: SelectOption[] = [\n { label: 'Email', value: 'email' },\n { label: 'SMS', value: 'sms' },\n { label: 'WhatsApp', value: 'whatsapp' },\n { label: 'Slack', value: 'slack' },\n { label: 'Webhook', value: 'webhook' },\n];\n\n// Status Options\nexport const STATUS_OPTIONS = {\n PENDING: 'pending',\n IN_PROGRESS: 'in_progress',\n COMPLETED: 'completed',\n FAILED: 'failed',\n CANCELLED: 'cancelled',\n} as const;\n\n// Error Messages\nexport const ERROR_MESSAGES = {\n REQUIRED_FIELD: 'This field is required',\n INVALID_EMAIL: 'Please enter a valid email address',\n INVALID_PHONE: 'Please enter a valid phone number',\n INVALID_URL: 'Please enter a valid URL',\n MIN_LENGTH: (min: number) => `Minimum ${min} characters required`,\n MAX_LENGTH: (max: number) => `Maximum ${max} characters allowed`,\n NETWORK_ERROR: 'Network error. Please try again.',\n GENERIC_ERROR: 'Something went wrong. Please try again.',\n} as const;\n\n// Success Messages\nexport const SUCCESS_MESSAGES = {\n SAVED: 'Saved successfully',\n UPDATED: 'Updated successfully',\n DELETED: 'Deleted successfully',\n IMPORTED: 'Import completed successfully',\n EXPORTED: 'Export completed successfully',\n} as const;\n\n// Loading Messages\nexport const LOADING_MESSAGES = {\n SAVING: 'Saving...',\n LOADING: 'Loading...',\n PROCESSING: 'Processing...',\n IMPORTING: 'Importing...',\n EXPORTING: 'Exporting...',\n} as const;\n\n// Default Values\nexport const DEFAULT_VALUES = {\n PAGE_SIZE: 10,\n DEBOUNCE_DELAY: 300,\n TOAST_DURATION: 3000,\n MAX_FILE_SIZE: 5 * 1024 * 1024, // 5MB\n SUPPORTED_FILE_TYPES: ['.csv', '.xlsx', '.json'],\n} as const;\n\n// Validation Rules\nexport const VALIDATION_RULES = {\n EMAIL_REGEX: /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/,\n PHONE_REGEX: /^\\+?[\\d\\s\\-\\(\\)]+$/,\n URL_REGEX: /^https?:\\/\\/.+/,\n MIN_PASSWORD_LENGTH: 8,\n MAX_TEXT_LENGTH: 255,\n MAX_TEXTAREA_LENGTH: 1000,\n} as const;\n"],"names":[],"mappings":"AAmEO,MAAM,aAAgC,GAAA;AAAA,EAC3C,EAAE,KAAA,EAAO,UAAY,EAAA,KAAA,EAAO,UAAW,EAAA;AAAA,EACvC,EAAE,KAAA,EAAO,SAAW,EAAA,KAAA,EAAO,SAAU,EAAA;AAAA,EACrC,EAAE,KAAA,EAAO,UAAY,EAAA,KAAA,EAAO,UAAW,EAAA;AAAA,EACvC,EAAE,KAAA,EAAO,YAAc,EAAA,KAAA,EAAO,YAAa,EAAA;AAAA,EAC3C,EAAE,KAAA,EAAO,qBAAuB,EAAA,KAAA,EAAO,qBAAsB,EAAA;AAC/D;;;;"}
@@ -1,5 +1,3 @@
1
- import { HELPER_STRINGS, PLACEHOLDERS } from '../constants/strings.js';
2
-
3
1
  var __defProp = Object.defineProperty;
4
2
  var __defProps = Object.defineProperties;
5
3
  var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
@@ -19,84 +17,50 @@ var __spreadValues = (a, b) => {
19
17
  return a;
20
18
  };
21
19
  var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
22
- const MAPPING_TYPES = {
23
- QUESTION: HELPER_STRINGS.MAPPING_TYPES.QUESTION,
24
- CONTACT: HELPER_STRINGS.MAPPING_TYPES.CONTACT,
25
- VARIABLE: HELPER_STRINGS.MAPPING_TYPES.VARIABLE,
26
- EXPRESSION: HELPER_STRINGS.MAPPING_TYPES.EXPRESSION,
27
- SUBMISSION_PROPERTY: HELPER_STRINGS.MAPPING_TYPES.SUBMISSION_PROPERTY
28
- };
29
- const SURVEY_TYPES = {
30
- CLASSIC_FORM: HELPER_STRINGS.SURVEY_TYPES.CLASSIC_FORM
31
- };
32
- const EXCLUDED_QUESTION_TYPES = HELPER_STRINGS.EXCLUDED_QUESTION_TYPES;
33
- const EXCLUDED_CONTACT_PROPERTIES = HELPER_STRINGS.EXCLUDED_CONTACT_PROPERTIES;
34
20
  const handleMappingOptions = (mappingType, surveyQuestions, contactProperties, surveyVariables, expressions, integrationsNpsSubmissionProperties, integrationsClassicSubmissionProperties, surveyType) => {
21
+ let currentOption;
35
22
  switch (mappingType) {
36
- case MAPPING_TYPES.QUESTION:
37
- return handleQuestionOptions(filterQuestions(surveyQuestions));
38
- case MAPPING_TYPES.CONTACT:
39
- return filterContactProperties(contactProperties);
40
- case MAPPING_TYPES.VARIABLE:
41
- return mapVariables(surveyVariables);
42
- case MAPPING_TYPES.EXPRESSION:
43
- return mapExpressions(expressions);
44
- case MAPPING_TYPES.SUBMISSION_PROPERTY:
45
- return selectSubmissionProperties(
46
- surveyType,
47
- integrationsNpsSubmissionProperties,
48
- integrationsClassicSubmissionProperties
49
- );
23
+ case "QUESTION":
24
+ const filteredQuestions = surveyQuestions.filter((question) => (question == null ? void 0 : question.type) !== "Message" && (question == null ? void 0 : question.type) !== "PaymentQuestion");
25
+ currentOption = handleQuestionOptions(filteredQuestions);
26
+ break;
27
+ case "CONTACT":
28
+ const filteredContactProperties = contactProperties.filter((contact) => (contact == null ? void 0 : contact.name) !== "team_internal" && (contact == null ? void 0 : contact.name) !== "department_internal");
29
+ currentOption = filteredContactProperties.map((contact) => ({
30
+ label: contact.label,
31
+ value: contact.name
32
+ }));
33
+ break;
34
+ case "VARIABLE":
35
+ currentOption = surveyVariables.map((varibles) => ({
36
+ name: varibles.name,
37
+ label: varibles.label,
38
+ value: varibles.id
39
+ }));
40
+ break;
41
+ case "EXPRESSION":
42
+ currentOption = expressions.map((expression) => ({
43
+ label: expression.name,
44
+ value: expression.id
45
+ }));
46
+ break;
47
+ case "SUBMISSION_PROPERTY":
48
+ currentOption = (surveyType == null ? void 0 : surveyType.toLocaleLowerCase()) === "classicform" ? integrationsClassicSubmissionProperties : integrationsNpsSubmissionProperties;
49
+ break;
50
50
  default:
51
- console.warn(HELPER_STRINGS.CONSOLE_MESSAGES.UNKNOWN_MAPPING_TYPE(mappingType));
52
- return [];
51
+ currentOption = [];
53
52
  }
54
- };
55
- const filterQuestions = (questions) => {
56
- return questions.filter(
57
- (question) => (question == null ? void 0 : question.type) && !EXCLUDED_QUESTION_TYPES.includes(question.type)
58
- );
59
- };
60
- const filterContactProperties = (contactProperties) => {
61
- return contactProperties.filter(
62
- (contact) => (contact == null ? void 0 : contact.name) && !EXCLUDED_CONTACT_PROPERTIES.includes(contact.name)
63
- ).map((contact) => ({
64
- label: contact.label,
65
- value: contact.name
66
- }));
67
- };
68
- const mapVariables = (variables) => {
69
- return variables.map((variable) => ({
70
- name: variable.name,
71
- label: variable.label,
72
- value: variable.id
73
- }));
74
- };
75
- const mapExpressions = (expressions) => {
76
- return expressions.map((expression) => ({
77
- label: expression.name,
78
- value: expression.id
79
- }));
80
- };
81
- const selectSubmissionProperties = (surveyType, npsProperties, classicProperties) => {
82
- return (surveyType == null ? void 0 : surveyType.toLowerCase()) === SURVEY_TYPES.CLASSIC_FORM ? classicProperties : npsProperties;
53
+ return currentOption;
83
54
  };
84
55
  const handleQuestionOptions = (surveyQuestions) => {
85
- const data = surveyQuestions.map((val) => __spreadValues({}, val));
86
- const groupedData = groupQuestionsByLabel(data);
87
- const ungroupedQuestions = extractUngroupedQuestions(data, groupedData);
88
- const filteredData = formatUngroupedQuestions(ungroupedQuestions);
89
- const formattedGroupedData = formatGroupedQuestions(groupedData);
90
- return [...filteredData, ...formattedGroupedData];
91
- };
92
- const groupQuestionsByLabel = (questions) => {
93
- return questions.reduce((result, item) => {
94
- if (!item.label)
95
- return result;
56
+ const data = surveyQuestions.map((val) => {
57
+ return __spreadValues({}, val);
58
+ });
59
+ const groupedData = data.reduce((result, item) => {
96
60
  const existingGroup = result.find((group) => group.label === item.label);
97
61
  if (existingGroup) {
98
62
  existingGroup.options.push(...item.options || []);
99
- } else {
63
+ } else if (item.label) {
100
64
  result.push({
101
65
  label: item.label,
102
66
  options: item.options || []
@@ -104,36 +68,31 @@ const groupQuestionsByLabel = (questions) => {
104
68
  }
105
69
  return result;
106
70
  }, []);
107
- };
108
- const extractUngroupedQuestions = (questions, groupedData) => {
109
- return questions.filter(
110
- (question) => !groupedData.some((group) => group.label === question.rtxt)
111
- );
112
- };
113
- const formatUngroupedQuestions = (questions) => {
114
- return questions.filter((item) => !item.label).map((question) => {
71
+ const updatedData = data == null ? void 0 : data.filter((question) => {
72
+ if (!groupedData.some((data2) => data2.label === question.rtxt)) {
73
+ return question;
74
+ }
75
+ });
76
+ const filteredData = updatedData == null ? void 0 : updatedData.filter((item) => !item.label).map((question) => {
115
77
  var _a;
116
78
  return {
117
- label: ((_a = question.rtxt) == null ? void 0 : _a.length) ? question.rtxt : PLACEHOLDERS.PLEASE_ENTER_YOUR_QUESTION,
79
+ label: !!((_a = question.rtxt) == null ? void 0 : _a.length) ? question.rtxt : "Please enter your question",
118
80
  value: question.id,
119
81
  questionType: question.type
120
82
  };
121
83
  });
122
- };
123
- const formatGroupedQuestions = (groupedData) => {
124
- return groupedData.map((data) => __spreadProps(__spreadValues({}, data), {
125
- label: data.label,
126
- options: data.options.map((option) => __spreadProps(__spreadValues({}, option), {
127
- label: `${HELPER_STRINGS.LABEL_PREFIX}${option.label}`
128
- })),
129
- value: data.label
130
- // Add value field for consistency
131
- }));
84
+ const formattedData = [
85
+ ...filteredData,
86
+ ...groupedData.map((data2) => __spreadProps(__spreadValues({}, data2), {
87
+ options: data2.options.map((option) => __spreadProps(__spreadValues({}, option), {
88
+ label: `- ${option.label}`
89
+ }))
90
+ }))
91
+ ];
92
+ return formattedData;
132
93
  };
133
94
  const generateUniqueId = () => {
134
- const timestamp = Date.now();
135
- const randomStr = Math.random().toString(36).substring(2, 11);
136
- return `${HELPER_STRINGS.ID_PREFIX}${timestamp}-${randomStr}`;
95
+ return `id-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
137
96
  };
138
97
 
139
98
  export { generateUniqueId, handleMappingOptions };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/commons/helpers/index.ts"],"sourcesContent":["import { ResultGroupDataOptionsType, ResultGroupDataType } from '../../mapping/types';\nimport { HELPER_STRINGS, PLACEHOLDERS } from '../constants/strings';\n\n/**\n * Mapping type constants\n */\nconst MAPPING_TYPES = {\n QUESTION: HELPER_STRINGS.MAPPING_TYPES.QUESTION,\n CONTACT: HELPER_STRINGS.MAPPING_TYPES.CONTACT,\n VARIABLE: HELPER_STRINGS.MAPPING_TYPES.VARIABLE,\n EXPRESSION: HELPER_STRINGS.MAPPING_TYPES.EXPRESSION,\n SUBMISSION_PROPERTY: HELPER_STRINGS.MAPPING_TYPES.SUBMISSION_PROPERTY,\n} as const;\n\n/**\n * Survey type constants\n */\nconst SURVEY_TYPES = {\n CLASSIC_FORM: HELPER_STRINGS.SURVEY_TYPES.CLASSIC_FORM,\n} as const;\n\n/**\n * Question types to exclude from mapping options\n */\nconst EXCLUDED_QUESTION_TYPES = HELPER_STRINGS.EXCLUDED_QUESTION_TYPES;\n\n/**\n * Contact properties to exclude from mapping options\n */\nconst EXCLUDED_CONTACT_PROPERTIES = HELPER_STRINGS.EXCLUDED_CONTACT_PROPERTIES;\n\n/**\n * Survey question interface\n */\ninterface SurveyQuestion {\n id: string | number;\n type: string;\n label?: string;\n rtxt?: string;\n options?: unknown[];\n [key: string]: unknown;\n}\n\n/**\n * Contact property interface\n */\ninterface ContactProperty {\n name: string;\n label: string;\n [key: string]: unknown;\n}\n\n/**\n * Survey variable interface\n */\ninterface SurveyVariable {\n id: string | number;\n name: string;\n label: string;\n [key: string]: unknown;\n}\n\n/**\n * Expression interface\n */\ninterface Expression {\n id: string | number;\n name: string;\n [key: string]: unknown;\n}\n\n/**\n * Mapped option interface\n */\ninterface MappedOption {\n label: string;\n value: string | number;\n name?: string;\n questionType?: string;\n options?: unknown[];\n}\n\n/**\n * Handle mapping options based on mapping type\n * \n * @param mappingType - Type of mapping (QUESTION, CONTACT, VARIABLE, etc.)\n * @param surveyQuestions - Array of survey questions\n * @param contactProperties - Array of contact properties\n * @param surveyVariables - Array of survey variables\n * @param expressions - Array of expressions\n * @param integrationsNpsSubmissionProperties - NPS submission properties\n * @param integrationsClassicSubmissionProperties - Classic form submission properties\n * @param surveyType - Type of survey\n * @returns Array of mapped options\n */\nexport const handleMappingOptions = (\n mappingType: string,\n surveyQuestions: SurveyQuestion[],\n contactProperties: ContactProperty[],\n surveyVariables: SurveyVariable[],\n expressions: Expression[],\n integrationsNpsSubmissionProperties: unknown[],\n integrationsClassicSubmissionProperties: unknown[],\n surveyType: string\n): MappedOption[] => {\n switch (mappingType) {\n case MAPPING_TYPES.QUESTION:\n return handleQuestionOptions(filterQuestions(surveyQuestions));\n\n case MAPPING_TYPES.CONTACT:\n return filterContactProperties(contactProperties);\n\n case MAPPING_TYPES.VARIABLE:\n return mapVariables(surveyVariables);\n\n case MAPPING_TYPES.EXPRESSION:\n return mapExpressions(expressions);\n\n case MAPPING_TYPES.SUBMISSION_PROPERTY:\n return selectSubmissionProperties(\n surveyType,\n integrationsNpsSubmissionProperties,\n integrationsClassicSubmissionProperties\n );\n\n default:\n console.warn(HELPER_STRINGS.CONSOLE_MESSAGES.UNKNOWN_MAPPING_TYPE(mappingType));\n return [];\n }\n};\n\n/**\n * Filter out excluded question types\n */\nconst filterQuestions = (questions: SurveyQuestion[]): SurveyQuestion[] => {\n return questions.filter(\n (question) =>\n question?.type &&\n !EXCLUDED_QUESTION_TYPES.includes(question.type as typeof EXCLUDED_QUESTION_TYPES[number])\n );\n};\n\n/**\n * Filter and map contact properties\n */\nconst filterContactProperties = (contactProperties: ContactProperty[]): MappedOption[] => {\n return contactProperties\n .filter(\n (contact) =>\n contact?.name &&\n !EXCLUDED_CONTACT_PROPERTIES.includes(contact.name as typeof EXCLUDED_CONTACT_PROPERTIES[number])\n )\n .map((contact) => ({\n label: contact.label,\n value: contact.name,\n }));\n};\n\n/**\n * Map survey variables to options\n */\nconst mapVariables = (variables: SurveyVariable[]): MappedOption[] => {\n return variables.map((variable) => ({\n name: variable.name,\n label: variable.label,\n value: variable.id,\n }));\n};\n\n/**\n * Map expressions to options\n */\nconst mapExpressions = (expressions: Expression[]): MappedOption[] => {\n return expressions.map((expression) => ({\n label: expression.name,\n value: expression.id,\n }));\n};\n\n/**\n * Select appropriate submission properties based on survey type\n */\nconst selectSubmissionProperties = (\n surveyType: string,\n npsProperties: unknown[],\n classicProperties: unknown[]\n): unknown[] => {\n return surveyType?.toLowerCase() === SURVEY_TYPES.CLASSIC_FORM\n ? classicProperties\n : npsProperties;\n};\n\n/**\n * Handle question options with grouping logic\n */\nconst handleQuestionOptions = (surveyQuestions: SurveyQuestion[]): MappedOption[] => {\n // Create a deep copy to avoid mutations\n const data = surveyQuestions.map((val) => ({ ...val }));\n\n // Group questions by label\n const groupedData = groupQuestionsByLabel(data);\n\n // Extract ungrouped questions\n const ungroupedQuestions = extractUngroupedQuestions(data, groupedData);\n\n // Format ungrouped questions\n const filteredData = formatUngroupedQuestions(ungroupedQuestions);\n\n // Format grouped data with nested options\n const formattedGroupedData = formatGroupedQuestions(groupedData);\n\n return [...filteredData, ...formattedGroupedData];\n};\n\n/**\n * Group questions by their label\n */\nconst groupQuestionsByLabel = (questions: SurveyQuestion[]): ResultGroupDataType[] => {\n return questions.reduce((result: ResultGroupDataType[], item) => {\n if (!item.label) return result;\n\n const existingGroup = result.find((group) => group.label === item.label);\n\n if (existingGroup) {\n existingGroup.options.push(...(item.options || []));\n } else {\n result.push({\n label: item.label,\n options: (item.options || []) as ResultGroupDataOptionsType[],\n });\n }\n\n return result;\n }, []);\n};\n\n/**\n * Extract questions that are not in any group\n */\nconst extractUngroupedQuestions = (\n questions: SurveyQuestion[],\n groupedData: ResultGroupDataType[]\n): SurveyQuestion[] => {\n return questions.filter(\n (question) => !groupedData.some((group) => group.label === question.rtxt)\n );\n};\n\n/**\n * Format ungrouped questions into mapped options\n */\nconst formatUngroupedQuestions = (questions: SurveyQuestion[]): MappedOption[] => {\n return questions\n .filter((item) => !item.label)\n .map((question) => ({\n label: question.rtxt?.length ? question.rtxt : PLACEHOLDERS.PLEASE_ENTER_YOUR_QUESTION,\n value: question.id,\n questionType: question.type,\n }));\n};\n\n/**\n * Format grouped questions with prefixed option labels\n */\nconst formatGroupedQuestions = (groupedData: ResultGroupDataType[]): MappedOption[] => {\n return groupedData.map((data) => ({\n ...data,\n label: data.label,\n options: data.options.map((option) => ({\n ...option,\n label: `${HELPER_STRINGS.LABEL_PREFIX}${option.label}`,\n })),\n value: data.label, // Add value field for consistency\n }));\n};\n\n/**\n * Generate a unique identifier\n * \n * @returns A unique string ID based on timestamp and random characters\n */\nexport const generateUniqueId = (): string => {\n const timestamp = Date.now();\n const randomStr = Math.random().toString(36).substring(2, 11);\n return `${HELPER_STRINGS.ID_PREFIX}${timestamp}-${randomStr}`;\n};"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/commons/helpers/index.ts"],"sourcesContent":["import { ResultGroupDataOptionsType, ResultGroupDataType } from \"../../mapping/types\";\n\nexport const handleMappingOptions = (\n mappingType: string,\n surveyQuestions: Array<any>,\n contactProperties: Array<any>,\n surveyVariables: Array<any>,\n expressions: Array<any>,\n integrationsNpsSubmissionProperties: Array<any>,\n integrationsClassicSubmissionProperties: Array<any>,\n surveyType: string\n) => {\n let currentOption;\n switch (mappingType) {\n case \"QUESTION\":\n const filteredQuestions = surveyQuestions.filter((question) => question?.type !== \"Message\" && question?.type !== \"PaymentQuestion\");\n currentOption = handleQuestionOptions(filteredQuestions);\n break;\n case \"CONTACT\":\n const filteredContactProperties = contactProperties.filter((contact) => contact?.name !== \"team_internal\" && contact?.name !== \"department_internal\");\n currentOption = filteredContactProperties.map((contact) => ({\n label: contact.label,\n value: contact.name\n }));\n break;\n case \"VARIABLE\":\n currentOption = surveyVariables.map((varibles) => ({\n name: varibles.name,\n label: varibles.label,\n value: varibles.id\n }));\n break;\n case \"EXPRESSION\":\n currentOption = expressions.map((expression) => ({\n label: expression.name,\n value: expression.id\n }));\n break;\n case \"SUBMISSION_PROPERTY\":\n currentOption = surveyType?.toLocaleLowerCase() === \"classicform\" ? integrationsClassicSubmissionProperties : integrationsNpsSubmissionProperties;\n break;\n default:\n currentOption = [];\n }\n\n return currentOption;\n};\n\nconst handleQuestionOptions = (surveyQuestions: Array<any>) => {\n const data = surveyQuestions.map((val) => {\n return { ...val };\n });\n const groupedData = data.reduce((result, item) => {\n const existingGroup = result.find((group: ResultGroupDataType) => group.label === item.label);\n\n if (existingGroup) {\n existingGroup.options.push(...(item.options || []));\n } else if (item.label) {\n result.push({\n label: item.label,\n options: item.options || []\n });\n }\n return result;\n }, []);\n\n // Extract other data\n const updatedData = data?.filter((question) => {\n if (!groupedData.some((data: ResultGroupDataType) => data.label === question.rtxt)) {\n return question;\n }\n });\n\n const filteredData = updatedData\n ?.filter((item) => !item.label)\n .map((question) => ({\n label: !!question.rtxt?.length ? question.rtxt :'Please enter your question',\n value: question.id,\n questionType: question.type\n }));\n\n const formattedData = [\n ...filteredData,\n ...groupedData.map((data: ResultGroupDataType) => ({\n ...data,\n options: data.options\n .map((option: ResultGroupDataOptionsType) => ({\n ...option,\n label: `- ${option.label}`\n }))\n }))\n ];\n return formattedData;\n};\n\n\nexport const generateUniqueId = (): string => {\n return `id-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;\n};"],"names":["data"],"mappings":"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"}
@@ -1,43 +1,8 @@
1
1
  import React__default from 'react';
2
- import { ATTRIBUTES, ARIA_LABELS, COMPONENT_DISPLAY_NAMES, COLORS } from '../constants/strings.js';
3
2
 
4
- const DEFAULT_CONFIG = {
5
- width: 26,
6
- height: 12,
7
- color: COLORS.BLACK,
8
- opacity: 0.2
3
+ const Arrow = () => {
4
+ return /* @__PURE__ */ React__default.createElement("svg", { width: "26", height: "12", viewBox: "0 0 26 12", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, /* @__PURE__ */ React__default.createElement("path", { d: "M1 5.25C0.585786 5.25 0.25 5.58579 0.25 6C0.25 6.41421 0.585786 6.75 1 6.75V5.25ZM25.5303 6.53033C25.8232 6.23744 25.8232 5.76256 25.5303 5.46967L20.7574 0.696699C20.4645 0.403806 19.9896 0.403806 19.6967 0.696699C19.4038 0.989593 19.4038 1.46447 19.6967 1.75736L23.9393 6L19.6967 10.2426C19.4038 10.5355 19.4038 11.0104 19.6967 11.3033C19.9896 11.5962 20.4645 11.5962 20.7574 11.3033L25.5303 6.53033ZM1 6.75H25V5.25H1V6.75Z", fill: "black", "fill-opacity": "0.2" }));
9
5
  };
10
- const ArrowIcon = ({
11
- width = DEFAULT_CONFIG.width,
12
- height = DEFAULT_CONFIG.height,
13
- color = DEFAULT_CONFIG.color,
14
- opacity = DEFAULT_CONFIG.opacity,
15
- className,
16
- ariaLabel = ARIA_LABELS.ARROW
17
- }) => {
18
- return /* @__PURE__ */ React__default.createElement(
19
- "svg",
20
- {
21
- width,
22
- height,
23
- viewBox: "0 0 26 12",
24
- fill: "none",
25
- xmlns: "http://www.w3.org/2000/svg",
26
- className,
27
- "aria-label": ariaLabel,
28
- role: ATTRIBUTES.IMG
29
- },
30
- /* @__PURE__ */ React__default.createElement(
31
- "path",
32
- {
33
- d: "M1 5.25C0.585786 5.25 0.25 5.58579 0.25 6C0.25 6.41421 0.585786 6.75 1 6.75V5.25ZM25.5303 6.53033C25.8232 6.23744 25.8232 5.76256 25.5303 5.46967L20.7574 0.696699C20.4645 0.403806 19.9896 0.403806 19.6967 0.696699C19.4038 0.989593 19.4038 1.46447 19.6967 1.75736L23.9393 6L19.6967 10.2426C19.4038 10.5355 19.4038 11.0104 19.6967 11.3033C19.9896 11.5962 20.4645 11.5962 20.7574 11.3033L25.5303 6.53033ZM1 6.75H25V5.25H1V6.75Z",
34
- fill: color,
35
- fillOpacity: opacity
36
- }
37
- )
38
- );
39
- };
40
- ArrowIcon.displayName = COMPONENT_DISPLAY_NAMES.ARROW_ICON;
41
6
 
42
- export { ArrowIcon as default };
7
+ export { Arrow as default };
43
8
  //# sourceMappingURL=arrow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"arrow.js","sources":["../../../../src/commons/icons/arrow.tsx"],"sourcesContent":["import React from 'react';\nimport { COLORS, ARIA_LABELS, ATTRIBUTES, COMPONENT_DISPLAY_NAMES } from '../constants/strings';\n\n/**\n * Props for the ArrowIcon component\n */\nexport interface ArrowIconProps {\n /** Width of the icon */\n width?: number | string;\n /** Height of the icon */\n height?: number | string;\n /** Fill color of the icon */\n color?: string;\n /** Fill opacity */\n opacity?: number;\n /** Optional: Additional CSS class name */\n className?: string;\n /** Optional: ARIA label for accessibility */\n ariaLabel?: string;\n}\n\n/**\n * Default configuration for the arrow icon\n */\nconst DEFAULT_CONFIG = {\n width: 26,\n height: 12,\n color: COLORS.BLACK,\n opacity: 0.2,\n} as const;\n\n/**\n * ArrowIcon Component\n * \n * A customizable right-pointing arrow icon.\n * \n * @example\n * ```tsx\n * <ArrowIcon width={32} height={16} color=\"blue\" />\n * ```\n */\nconst ArrowIcon: React.FC<ArrowIconProps> = ({\n width = DEFAULT_CONFIG.width,\n height = DEFAULT_CONFIG.height,\n color = DEFAULT_CONFIG.color,\n opacity = DEFAULT_CONFIG.opacity,\n className,\n ariaLabel = ARIA_LABELS.ARROW,\n}) => {\n return (\n <svg\n width={width}\n height={height}\n viewBox=\"0 0 26 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n className={className}\n aria-label={ariaLabel}\n role={ATTRIBUTES.IMG}\n >\n <path\n d=\"M1 5.25C0.585786 5.25 0.25 5.58579 0.25 6C0.25 6.41421 0.585786 6.75 1 6.75V5.25ZM25.5303 6.53033C25.8232 6.23744 25.8232 5.76256 25.5303 5.46967L20.7574 0.696699C20.4645 0.403806 19.9896 0.403806 19.6967 0.696699C19.4038 0.989593 19.4038 1.46447 19.6967 1.75736L23.9393 6L19.6967 10.2426C19.4038 10.5355 19.4038 11.0104 19.6967 11.3033C19.9896 11.5962 20.4645 11.5962 20.7574 11.3033L25.5303 6.53033ZM1 6.75H25V5.25H1V6.75Z\"\n fill={color}\n fillOpacity={opacity}\n />\n </svg>\n );\n};\n\nArrowIcon.displayName = COMPONENT_DISPLAY_NAMES.ARROW_ICON;\n\nexport default ArrowIcon;"],"names":["React"],"mappings":";;;AAwBA,MAAM,cAAiB,GAAA;AAAA,EACrB,KAAO,EAAA,EAAA;AAAA,EACP,MAAQ,EAAA,EAAA;AAAA,EACR,OAAO,MAAO,CAAA,KAAA;AAAA,EACd,OAAS,EAAA,GAAA;AACX,CAAA,CAAA;AAYA,MAAM,YAAsC,CAAC;AAAA,EAC3C,QAAQ,cAAe,CAAA,KAAA;AAAA,EACvB,SAAS,cAAe,CAAA,MAAA;AAAA,EACxB,QAAQ,cAAe,CAAA,KAAA;AAAA,EACvB,UAAU,cAAe,CAAA,OAAA;AAAA,EACzB,SAAA;AAAA,EACA,YAAY,WAAY,CAAA,KAAA;AAC1B,CAAM,KAAA;AACJ,EACE,uBAAAA,cAAA,CAAA,aAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,KAAA;AAAA,MACA,MAAA;AAAA,MACA,OAAQ,EAAA,WAAA;AAAA,MACR,IAAK,EAAA,MAAA;AAAA,MACL,KAAM,EAAA,4BAAA;AAAA,MACN,SAAA;AAAA,MACA,YAAY,EAAA,SAAA;AAAA,MACZ,MAAM,UAAW,CAAA,GAAA;AAAA,KAAA;AAAA,oBAEjBA,cAAA,CAAA,aAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,CAAE,EAAA,0aAAA;AAAA,QACF,IAAM,EAAA,KAAA;AAAA,QACN,WAAa,EAAA,OAAA;AAAA,OAAA;AAAA,KACf;AAAA,GACF,CAAA;AAEJ,EAAA;AAEA,SAAA,CAAU,cAAc,uBAAwB,CAAA,UAAA;;;;"}
1
+ {"version":3,"file":"arrow.js","sources":["../../../../src/commons/icons/arrow.tsx"],"sourcesContent":["import React from \"react\";\n\nconst Arrow = () => {\n return (\n <svg width=\"26\" height=\"12\" viewBox=\"0 0 26 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M1 5.25C0.585786 5.25 0.25 5.58579 0.25 6C0.25 6.41421 0.585786 6.75 1 6.75V5.25ZM25.5303 6.53033C25.8232 6.23744 25.8232 5.76256 25.5303 5.46967L20.7574 0.696699C20.4645 0.403806 19.9896 0.403806 19.6967 0.696699C19.4038 0.989593 19.4038 1.46447 19.6967 1.75736L23.9393 6L19.6967 10.2426C19.4038 10.5355 19.4038 11.0104 19.6967 11.3033C19.9896 11.5962 20.4645 11.5962 20.7574 11.3033L25.5303 6.53033ZM1 6.75H25V5.25H1V6.75Z\" fill=\"black\" fill-opacity=\"0.2\"/>\n </svg> \n );\n};\n\nexport default Arrow;"],"names":["React"],"mappings":";;AAEA,MAAM,QAAQ,MAAM;AAClB,EACE,uBAAAA,cAAA,CAAA,aAAA,CAAC,SAAI,KAAM,EAAA,IAAA,EAAK,QAAO,IAAK,EAAA,OAAA,EAAQ,aAAY,IAAK,EAAA,MAAA,EAAO,OAAM,4BAClE,EAAA,kBAAAA,cAAA,CAAA,aAAA,CAAC,UAAK,CAAE,EAAA,0aAAA,EAA2a,MAAK,OAAQ,EAAA,cAAA,EAAa,OAAK,CACld,CAAA,CAAA;AAEJ;;;;"}