@majoo-ui/react 2.0.0 → 2.1.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (203) hide show
  1. package/charts.esm.js +3 -1453
  2. package/colors/Colors.esm.js +93 -0
  3. package/components/accordion/Accordion.esm.js +109 -0
  4. package/components/alertDialog/AlertDialog.esm.js +440 -0
  5. package/components/avatar/Avatar.esm.js +83 -0
  6. package/components/badge/Badge.esm.js +255 -0
  7. package/components/banner/Banner.esm.js +341 -0
  8. package/components/barChart/BarChart.esm.js +212 -0
  9. package/components/breadcrumb/Breadcrumb.esm.js +65 -0
  10. package/components/breadcrumb/index.esm.js +19 -0
  11. package/components/button/Button.esm.js +331 -0
  12. package/components/buttonGroup/ButtonGroup.esm.js +350 -0
  13. package/components/card/Card.esm.js +236 -0
  14. package/components/chart/assets/data_kosong.png.esm.js +3 -0
  15. package/components/chart/lineChart/LineChart.esm.js +358 -0
  16. package/components/chart/lineChart/components/Comparator.esm.js +82 -0
  17. package/components/chart/lineChart/components/ComparatorController.esm.js +112 -0
  18. package/components/chart/lineChart/components/ComparatorItem.esm.js +104 -0
  19. package/components/chart/lineChart/components/ProductList.esm.js +78 -0
  20. package/components/chart/lineChart/components/TitleLegend.esm.js +107 -0
  21. package/components/chart/lineChart/components/Tooltip.esm.js +90 -0
  22. package/components/chart/utils/index.esm.js +109 -0
  23. package/components/checkboxTable/CheckboxTable.esm.js +287 -0
  24. package/components/colorPicker/ColorPicker.esm.js +342 -0
  25. package/components/colorPicker/InputColorPicker.esm.js +120 -0
  26. package/components/colorPicker/assets/img_colormap.gif.esm.js +3 -0
  27. package/components/colorPicker/components/ColorFields.esm.js +144 -0
  28. package/components/colorPicker/components/ColorMap.esm.js +1188 -0
  29. package/components/contentEditor/ContentEditor.esm.js +251 -0
  30. package/components/contentEditor/assets/Inline-code-outline.svg.esm.js +3 -0
  31. package/components/contentEditor/assets/Link-outline.svg.esm.js +3 -0
  32. package/components/contentEditor/assets/List-bulleted-outline.svg.esm.js +3 -0
  33. package/components/contentEditor/assets/List-numbered-outline.svg.esm.js +3 -0
  34. package/components/contentEditor/assets/Redo-outline.svg.esm.js +3 -0
  35. package/components/contentEditor/assets/Text-bold-filled.svg.esm.js +3 -0
  36. package/components/contentEditor/assets/Text-clear-format-outline.svg.esm.js +3 -0
  37. package/components/contentEditor/assets/Text-italic-outline.svg.esm.js +3 -0
  38. package/components/contentEditor/assets/Text-strikethrough-outline.svg.esm.js +3 -0
  39. package/components/contentEditor/assets/Text-underline-outline.svg.esm.js +3 -0
  40. package/components/contentEditor/assets/Undo-outline.svg.esm.js +3 -0
  41. package/components/contextMenu/ContextMenu.esm.js +298 -0
  42. package/components/datePicker/AdvancedOption.esm.js +37 -0
  43. package/components/datePicker/CustomDatePicker.esm.js +121 -0
  44. package/components/datePicker/DatePicker.esm.js +244 -0
  45. package/components/datePicker/DatePickerMulti.esm.js +70 -0
  46. package/components/datePicker/InputDatePicker.esm.js +290 -0
  47. package/components/datePicker/InputDateRangePicker.esm.js +174 -0
  48. package/components/datePicker/components/Calendar.esm.js +654 -0
  49. package/components/datePicker/components/CalendarMulti.esm.js +407 -0
  50. package/components/datePicker/components/CalendarTimePicker.esm.js +104 -0
  51. package/components/datePicker/components/DateNumber.esm.js +89 -0
  52. package/components/datePicker/components/MobileCalendar.esm.js +522 -0
  53. package/components/datePicker/state/reducer.esm.js +286 -0
  54. package/components/datePicker/timePicker/InputTimePicker.esm.js +205 -0
  55. package/components/datePicker/timePicker/TimePicker.esm.js +481 -0
  56. package/components/devicePreview/DevicePreview.esm.js +631 -0
  57. package/components/devicePreview/deviceFrame/android-transparant.png.esm.js +3 -0
  58. package/components/devicePreview/deviceFrame/android-wide-transparant.png.esm.js +3 -0
  59. package/components/devicePreview/deviceFrame/bg-email.png.esm.js +3 -0
  60. package/components/devicePreview/deviceFrame/bg-notification.png.esm.js +3 -0
  61. package/components/devicePreview/deviceFrame/bg-sms.png.esm.js +3 -0
  62. package/components/devicePreview/deviceFrame/bg-whatsapp.png.esm.js +3 -0
  63. package/components/devicePreview/deviceFrame/desktop-transparant.png.esm.js +3 -0
  64. package/components/devicePreview/deviceFrame/ic-majoo-profpic.png.esm.js +3 -0
  65. package/components/devicePreview/deviceFrame/iphone-transparant.png.esm.js +3 -0
  66. package/components/dialog/Dialog.esm.js +106 -0
  67. package/components/drawer/Drawer.esm.js +294 -0
  68. package/components/dropdownMenu/DropdownMenu.esm.js +281 -0
  69. package/components/editableTable/EditableMobile.esm.js +361 -0
  70. package/components/editableTable/EditableTable.esm.js +618 -0
  71. package/components/editableTable/transition.esm.js +37 -0
  72. package/components/form/components/FormGroup/FormGroup.esm.js +142 -0
  73. package/components/form/components/FormHelper/Helper.esm.js +50 -0
  74. package/components/form/components/FormLabel/Label.esm.js +90 -0
  75. package/components/form/components/InputAddon/InputAddon.esm.js +105 -0
  76. package/components/form/components/InputCheckbox/CheckboxGroup.esm.js +60 -0
  77. package/components/form/components/InputCheckbox/InputCheckbox.esm.js +129 -0
  78. package/components/form/components/InputCheckbox/icon/CheckOutline.esm.js +33 -0
  79. package/components/form/components/InputCheckbox/icon/MinusOutline.esm.js +33 -0
  80. package/components/form/components/InputCombobox/InputCombobox.esm.js +169 -0
  81. package/components/form/components/InputCounter/InputCounter.esm.js +226 -0
  82. package/components/form/components/InputCreatable/InputCreatable.esm.js +229 -0
  83. package/components/form/components/InputDateRange/InputDateRange.esm.js +46 -0
  84. package/components/form/components/InputElement/InputElement.esm.js +35 -0
  85. package/components/form/components/InputGroup/InputGroup.esm.js +188 -0
  86. package/components/form/components/InputLetter/InputLetter.esm.js +68 -0
  87. package/components/form/components/InputNumber/InputNumber.esm.js +248 -0
  88. package/components/form/components/InputNumber/NumberFormat.esm.js +1263 -0
  89. package/components/form/components/InputOTP/InputOTP.esm.js +70 -0
  90. package/components/form/components/InputRadio/InputRadio.esm.js +273 -0
  91. package/components/form/components/InputRadio/InputRadioGroup.esm.js +35 -0
  92. package/components/form/components/InputRadio/context.esm.js +5 -0
  93. package/components/form/components/InputResourceList/InputResourceList.esm.js +429 -0
  94. package/components/form/components/InputSearchbox/CloseFilled.esm.js +34 -0
  95. package/components/form/components/InputSearchbox/InputSearchbox.esm.js +90 -0
  96. package/components/form/components/InputSearchbox/SearchOutline.esm.js +26 -0
  97. package/components/form/components/InputSelect/InputSelect.esm.js +964 -0
  98. package/components/form/components/InputSelectCheck/InputSelectCheck.esm.js +1388 -0
  99. package/components/form/components/InputSelectCheck/OptionGroupItem.esm.js +39 -0
  100. package/components/form/components/InputSelectCheck/icon/CheckOutline.esm.js +33 -0
  101. package/components/form/components/InputSelectTag/InputSelectTag.esm.js +62 -0
  102. package/components/form/components/InputSignature/InputSignature.esm.js +122 -0
  103. package/components/form/components/InputSignature/SignatureModal.esm.js +67 -0
  104. package/components/form/components/InputSwitch/InputSwitch.esm.js +96 -0
  105. package/components/form/components/InputSwitch/InputSwitchWithImage.esm.js +136 -0
  106. package/components/form/components/InputTags/InputTags.esm.js +268 -0
  107. package/components/form/components/InputText/InputText.esm.js +197 -0
  108. package/components/form/components/InputTextArea/InputTextArea.esm.js +77 -0
  109. package/components/heading/Heading.esm.js +64 -0
  110. package/components/iconButton/IconButton.esm.js +71 -0
  111. package/components/image/Image.esm.js +141 -0
  112. package/components/link/Link.esm.js +59 -0
  113. package/components/loadingBar/LoadingBar.esm.js +113 -0
  114. package/components/mapPicker/InputMapPicker.esm.js +160 -0
  115. package/components/mapPicker/MapPicker.esm.js +122 -0
  116. package/components/mapPicker/MapPicker.styles.esm.js +70 -0
  117. package/components/mapPicker/assets/images/Mapsicle.png.esm.js +3 -0
  118. package/components/mapPicker/components/AddressCard.esm.js +25 -0
  119. package/components/mapPicker/components/ButtonSelect.esm.js +46 -0
  120. package/components/mapPicker/components/ChangeView.esm.js +20 -0
  121. package/components/mapPicker/components/InputSearch.esm.js +74 -0
  122. package/components/mapPicker/components/MarkerIcon.esm.js +22 -0
  123. package/components/mapPicker/components/MarkerSvg.esm.js +62 -0
  124. package/components/mapPicker/components/ZoomControls.esm.js +36 -0
  125. package/components/mapPicker/hooks/useMapSearch.esm.js +161 -0
  126. package/components/modalDialog/ModalDialog.esm.js +247 -0
  127. package/components/notificationBadge/NotificationBadge.esm.js +149 -0
  128. package/components/pageDialog/PageDialog.esm.js +291 -0
  129. package/components/pageDialog/logo.svg.esm.js +3 -0
  130. package/components/pagination/Pagination.esm.js +94 -0
  131. package/components/pagination/PaginationButton.esm.js +346 -0
  132. package/components/pagination/PaginationInfo.esm.js +146 -0
  133. package/components/paper/Paper.esm.js +76 -0
  134. package/components/paragraph/Paragraph.esm.js +52 -0
  135. package/components/pieChart/PieChart.esm.js +287 -0
  136. package/components/popover/Popover.esm.js +142 -0
  137. package/components/progress/Progress.esm.js +170 -0
  138. package/components/progressIndicator/ProgressIndicator.esm.js +287 -0
  139. package/components/scrollSync/ScrollSync.esm.js +172 -0
  140. package/components/scrollSync/ScrollSyncNode.esm.js +87 -0
  141. package/components/scrollSync/utils.esm.js +9 -0
  142. package/components/separator/Separator.esm.js +43 -0
  143. package/components/skeleton/Skeleton.esm.js +131 -0
  144. package/components/slider/Slider.esm.js +345 -0
  145. package/components/stepWizard/StepWizard.esm.js +451 -0
  146. package/components/stepWizard/index.esm.js +14 -0
  147. package/components/table/MobileTable.esm.js +415 -0
  148. package/components/table/Table.esm.js +1472 -0
  149. package/components/table/components/columns/DateColumn.esm.js +26 -0
  150. package/components/table/components/columns/DecimalColumn.esm.js +36 -0
  151. package/components/table/components/columns/PriceColumn.esm.js +57 -0
  152. package/components/table/components/columns/RowDraggableColumn.esm.js +24 -0
  153. package/components/table/components/columns/RowExpanderColumn.esm.js +32 -0
  154. package/components/table/components/columns/RowExpanderMultipleColumn.esm.js +24 -0
  155. package/components/table/components/columns/RowMenuColumn.esm.js +101 -0
  156. package/components/table/components/columns/RowSelectionCallbackColumn.esm.js +38 -0
  157. package/components/table/components/columns/RowSelectionColumn.esm.js +34 -0
  158. package/components/table/images/img-emptydata.webp.esm.js +3 -0
  159. package/components/table/images/img-emptysearchdata.webp.esm.js +3 -0
  160. package/components/tableOfContent/TableOfContent.esm.js +267 -0
  161. package/components/tableOfContent/index.esm.js +18 -0
  162. package/components/tableOfContent/transition.esm.js +38 -0
  163. package/components/tabs/Tabs.esm.js +282 -0
  164. package/components/tag/Tag.esm.js +161 -0
  165. package/components/tagList/TagList.esm.js +90 -0
  166. package/components/tagStatus/TagStatus.esm.js +134 -0
  167. package/components/text/Text.esm.js +140 -0
  168. package/components/toast/Toast.esm.js +297 -0
  169. package/components/toast/ToastContainer.esm.js +73 -0
  170. package/components/toast/context/ToastContext.esm.js +5 -0
  171. package/components/toast/context/ToastProvider.esm.js +96 -0
  172. package/components/tooltip/Tooltip.esm.js +175 -0
  173. package/components/upload/Upload.esm.js +1103 -0
  174. package/components/upload/utils/canvasPreview.esm.js +39 -0
  175. package/components/upload/utils/imgPreview.esm.js +21 -0
  176. package/config/stitches.config.esm.js +216 -0
  177. package/editor.esm.js +1 -264
  178. package/hooks/useListOption/useListOption.esm.js +56 -0
  179. package/hooks/useToggle/useToggle.esm.js +8 -0
  180. package/index.esm.js +106 -42293
  181. package/layout/box/Box.esm.js +24 -0
  182. package/layout/flex/Flex.esm.js +135 -0
  183. package/layout/grid/Grid.esm.js +270 -0
  184. package/layout/pageContainer/PageContainer.esm.js +60 -0
  185. package/majoo-provider/MajooProvider.esm.js +42 -0
  186. package/majoo-provider/ThemeProvider.esm.js +41 -0
  187. package/majoo-provider/globalStyles.esm.js +242 -0
  188. package/majoo-provider/styles/modern-normalize.esm.js +95 -0
  189. package/map.esm.js +2 -734
  190. package/package.json +16 -5
  191. package/utils/calendar.esm.js +26 -0
  192. package/utils/element.esm.js +21 -0
  193. package/utils/object.esm.js +12 -0
  194. package/utils/request.esm.js +74 -0
  195. package/utils/strings.esm.js +6 -0
  196. package/{useMediaQuery.esm.js → utils/useMediaQuery.esm.js} +1 -1
  197. package/utils/useNavigatorOnline.esm.js +19 -0
  198. package/utils/variant.esm.js +12 -0
  199. package/wrapper/ConditionalWrapper.esm.js +9 -0
  200. package/ModalDialog.esm.js +0 -2669
  201. package/Separator.esm.js +0 -3002
  202. package/stitches.config.esm.js +0 -2284
  203. package/{index.esm.css → charts.esm.css} +4 -4
@@ -0,0 +1,451 @@
1
+ import 'core-js/modules/es.array.push.js';
2
+ import 'core-js/modules/es.iterator.constructor.js';
3
+ import 'core-js/modules/es.iterator.filter.js';
4
+ import React__default, { useEffect } from 'react';
5
+ import StepWizard from 'react-step-wizard';
6
+ import { styled, css, colors, keyframes } from '../../config/stitches.config.esm.js';
7
+ import { CheckFilled, CircleInfoOutline } from '@majoo-ui/icons';
8
+ import Box from '../../layout/box/Box.esm.js';
9
+ import Flex from '../../layout/flex/Flex.esm.js';
10
+ import { Card } from '../card/Card.esm.js';
11
+ import { ConditionalWrapper } from '../../wrapper/ConditionalWrapper.esm.js';
12
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
13
+ import Tooltip from '../tooltip/Tooltip.esm.js';
14
+ import { Tag } from '../tag/Tag.esm.js';
15
+
16
+ const StepWizardContext = /*#__PURE__*/React__default.createContext({});
17
+ const Stepper = StepWizard;
18
+ Stepper.displayName = 'Stepper';
19
+ const StepperList = styled(Flex, {
20
+ minWidth: 264,
21
+ margin: 24
22
+ });
23
+ const StepperItem = styled(Flex, {
24
+ userSelect: 'none',
25
+ height: '$spacing-06',
26
+ fontWeight: 600
27
+ });
28
+ const Span = styled('span', {
29
+ margin: '0 16px 0 -4px',
30
+ width: 4,
31
+ height: 24,
32
+ borderRadius: 2
33
+ });
34
+ const StyledCircleInfoOutline = styled(CircleInfoOutline, {});
35
+ const WrapperDiv = styled('div', {
36
+ '& .stepperInstance': {
37
+ display: 'flex',
38
+ gap: 25,
39
+ '& .rsw_2Y': {
40
+ width: '100%',
41
+ maxWidth: 982,
42
+ '& .rsw_2f': {
43
+ display: 'none'
44
+ },
45
+ '& .rsw_3G': {
46
+ display: 'block !important',
47
+ zIndex: 'unset'
48
+ }
49
+ }
50
+ }
51
+ });
52
+ const MobileContainer = styled(Flex, {
53
+ position: 'absolute',
54
+ margin: '0px -$spacing-06',
55
+ padding: '$spacing-08 $spacing-05 10px',
56
+ left: 0,
57
+ right: 0,
58
+ top: -40,
59
+ backgroundColor: '$bgWhite'
60
+ });
61
+ const Line = styled('span', {
62
+ width: '100%',
63
+ height: 2,
64
+ alignSelf: 'center',
65
+ variants: {
66
+ active: {
67
+ true: {
68
+ backgroundColor: '$bgBrand'
69
+ },
70
+ false: {
71
+ backgroundColor: '$gray150'
72
+ }
73
+ }
74
+ }
75
+ });
76
+ const animated = css({
77
+ animationDuration: '.552s',
78
+ animationFillMode: 'both',
79
+ transformStyle: 'preserve-3d'
80
+ });
81
+ const enter = keyframes({
82
+ '0%': {
83
+ opacity: 0
84
+ },
85
+ '50%': {
86
+ opacity: 0.5
87
+ },
88
+ '100%': {
89
+ opacity: 1
90
+ }
91
+ });
92
+ const intro = keyframes({
93
+ from: {
94
+ opacity: 0
95
+ },
96
+ to: {
97
+ opacity: 1
98
+ }
99
+ });
100
+ const animationIntro = css({
101
+ animation: `${intro} .6s ease-out`
102
+ });
103
+ const animationEnter = css({
104
+ animationName: enter
105
+ });
106
+ const transitions = {
107
+ enterRight: `${animated} ${animationEnter}`,
108
+ enterLeft: `${animated} ${animationEnter}`,
109
+ intro: `${animated} ${animationIntro}`
110
+ };
111
+ const Navigation = props => {
112
+ const {
113
+ isMobile,
114
+ data,
115
+ cssNav,
116
+ isHide,
117
+ forbidClickNav,
118
+ hideCheckedIcon
119
+ } = React__default.useContext(StepWizardContext);
120
+ const mobileHidden = isMobile && isHide && {
121
+ height: 'unset',
122
+ margin: 'unset'
123
+ };
124
+ const stepItems = [];
125
+ const totalNavItems = data.filter(i => !i.hidden).length;
126
+ const navMobileItems = data.filter(i => !i.hidden && !i.disabled);
127
+ const height = totalNavItems * 24 + (totalNavItems - 1) * 16;
128
+ for (let i = 1; i <= totalNavItems; i += 1) {
129
+ const isActive = props.currentStep === i;
130
+ const isComplete = props.isComplete[i - 1];
131
+ const isAdditional = data[i - 1]?.additional;
132
+ const lastItem = navMobileItems.indexOf(data[i - 1]) + 1 === navMobileItems.length;
133
+ // eslint-disable-next-line no-lone-blocks
134
+ {
135
+ !isMobile ? stepItems.push(/*#__PURE__*/jsxs(StepperItem, {
136
+ css: {
137
+ opacity: data[i - 1].hidden ? 0 : undefined,
138
+ color: isActive ? '$textBrand' : isComplete ? '$gray900' : isAdditional ? '$textPrimary' : '$textDisable',
139
+ cursor: props.totalSteps !== props.currentStep ? 'pointer' : 'auto'
140
+ },
141
+ align: "center",
142
+ onClick: () => {
143
+ if (props.onNavClicked && !data[i - 1]?.disabled || isAdditional) props.onNavClicked(i);
144
+ if (!forbidClickNav && isComplete && !isHide || isAdditional) {
145
+ props.goToStep(i);
146
+ }
147
+ },
148
+ children: [/*#__PURE__*/jsx(Span, {
149
+ css: {
150
+ backgroundColor: isActive ? '$bgBrand' : '$bgBorder'
151
+ }
152
+ }), isComplete && !hideCheckedIcon && /*#__PURE__*/jsx(Box, {
153
+ css: {
154
+ margin: '$spacing-01 $spacing-03 0 0'
155
+ },
156
+ children: /*#__PURE__*/jsx(CheckFilled, {
157
+ color: colors.iconBrand
158
+ })
159
+ }), typeof data[i - 1].title === 'string' ? data[i - 1].title : data[i - 1].title?.(), data[i - 1]?.withTolltip && /*#__PURE__*/jsx(Tooltip, {
160
+ align: "center",
161
+ label: data[i - 1]?.tooltipsContents,
162
+ children: /*#__PURE__*/jsx(StyledCircleInfoOutline, {
163
+ css: {
164
+ margin: '0 9px'
165
+ },
166
+ size: "20",
167
+ color: colors.iconSecondary
168
+ })
169
+ }), data[i - 1]?.comingSoon && /*#__PURE__*/jsx(Flex, {
170
+ css: {
171
+ marginLeft: data[i - 1]?.withTolltip ? 0 : '$spacing-03'
172
+ },
173
+ align: "center",
174
+ children: /*#__PURE__*/jsx(Tag, {
175
+ size: "lg",
176
+ type: "error",
177
+ children: "Coming Soon"
178
+ })
179
+ })]
180
+ }, `step-${i}`)) : stepItems.push(/*#__PURE__*/jsxs(Fragment, {
181
+ children: [isActive && /*#__PURE__*/jsx(Box, {
182
+ css: {
183
+ position: 'absolute',
184
+ top: 40,
185
+ left: 16
186
+ },
187
+ children: /*#__PURE__*/jsxs(Flex, {
188
+ align: "center",
189
+ gap: 2,
190
+ children: [/*#__PURE__*/jsx(Box, {
191
+ css: {
192
+ width: 'max-content',
193
+ color: '$textBrand',
194
+ fontWeight: 600
195
+ },
196
+ children: typeof data[i - 1].title === 'string' ? data[i - 1].title : data[i - 1].title?.()
197
+ }), data[i - 1]?.withTolltip && /*#__PURE__*/jsx(Tooltip, {
198
+ align: "center",
199
+ withClick: true,
200
+ label: data[i - 1]?.tooltipsContents,
201
+ children: /*#__PURE__*/jsx(StyledCircleInfoOutline, {
202
+ size: "20",
203
+ color: colors.iconPrimary
204
+ })
205
+ }), data[i - 1]?.comingSoon && /*#__PURE__*/jsx(Flex, {
206
+ align: "center",
207
+ justify: "center",
208
+ css: {
209
+ marginTop: data[i - 1]?.withTolltip ? 0 : '$spacing-03'
210
+ },
211
+ children: /*#__PURE__*/jsx(Tag, {
212
+ size: "lg",
213
+ type: "error",
214
+ children: "Coming Soon"
215
+ })
216
+ })]
217
+ })
218
+ }), /*#__PURE__*/jsxs(Flex, {
219
+ align: "center",
220
+ css: {
221
+ position: 'relative',
222
+ userSelect: 'none',
223
+ fontSize: '12px',
224
+ textAlign: '-webkit-center',
225
+ display: data[i - 1]?.disabled && 'none',
226
+ marginTop: '$spacing-07',
227
+ flex: 1,
228
+ maxWidth: lastItem && 26
229
+ },
230
+ onClick: () => {
231
+ if (props.onNavClicked) props.onNavClicked(i);
232
+ if (!forbidClickNav && isComplete && !isHide) {
233
+ props.goToStep(i);
234
+ }
235
+ },
236
+ children: [isComplete && !hideCheckedIcon && /*#__PURE__*/jsxs(Flex, {
237
+ css: {
238
+ flex: 1
239
+ },
240
+ children: [/*#__PURE__*/jsx(Flex, {
241
+ css: {
242
+ flex: 1
243
+ },
244
+ children: /*#__PURE__*/jsx(CheckFilled, {
245
+ size: 32,
246
+ color: colors.iconBrand
247
+ })
248
+ }), !lastItem && /*#__PURE__*/jsx(Line, {
249
+ active: true
250
+ })]
251
+ }), (!isComplete || hideCheckedIcon) && /*#__PURE__*/jsxs(Flex, {
252
+ css: {
253
+ flex: 1
254
+ },
255
+ children: [/*#__PURE__*/jsx(Flex, {
256
+ css: {
257
+ flex: 1
258
+ },
259
+ children: /*#__PURE__*/jsx(Flex, {
260
+ justify: "center",
261
+ align: "center",
262
+ css: {
263
+ width: 24,
264
+ height: 24,
265
+ borderRadius: '$round',
266
+ border: `4px solid ${isActive ? '$bgBrand' : '$bgInactive'}`,
267
+ backgroundColor: data[i - 1]?.disabled ? '$gray200' : '$white'
268
+ }
269
+ })
270
+ }), isActive && !lastItem && /*#__PURE__*/jsx(Line, {
271
+ active: false
272
+ })]
273
+ }), !lastItem && !isActive && /*#__PURE__*/jsx(Line, {
274
+ active: isComplete && !hideCheckedIcon
275
+ })]
276
+ })]
277
+ }));
278
+ }
279
+ }
280
+ return /*#__PURE__*/jsx(ConditionalWrapper, {
281
+ condition: !isMobile,
282
+ wrapper: child => /*#__PURE__*/jsx(Box, {
283
+ css: {
284
+ opacity: isHide ? 0 : undefined,
285
+ maxWidth: 311
286
+ },
287
+ children: /*#__PURE__*/jsxs(Flex, {
288
+ css: {
289
+ position: !isMobile && 'sticky',
290
+ top: !isMobile ? 44 : 40
291
+ },
292
+ direction: "column",
293
+ gap: 7,
294
+ children: [/*#__PURE__*/jsx(Card, {
295
+ css: {
296
+ height: 'fit-content',
297
+ padding: 0
298
+ },
299
+ showBottomLine: false,
300
+ children: child
301
+ }), /*#__PURE__*/jsx(Box, {
302
+ children: typeof props?.appendContent === 'function' ? props?.appendContent?.() : props?.appendContent
303
+ })]
304
+ })
305
+ }),
306
+ children: /*#__PURE__*/jsx(StepperList, {
307
+ css: {
308
+ borderLeft: !isMobile ? '4px solid $bgBorder' : undefined,
309
+ marginBottom: isMobile ? 60 : undefined,
310
+ height: !isMobile ? height : undefined,
311
+ opacity: isHide ? 0 : undefined,
312
+ position: 'sticky',
313
+ top: !isMobile ? 44 : 40,
314
+ zIndex: 10,
315
+ ...cssNav,
316
+ ...mobileHidden
317
+ },
318
+ gap: 5,
319
+ justify: isMobile ? 'center' : undefined,
320
+ direction: isMobile ? 'row' : 'column',
321
+ children: isMobile ? /*#__PURE__*/jsx(Box, {
322
+ css: {
323
+ position: 'relative',
324
+ width: '100vw',
325
+ backgroundColor: '$bgBorder'
326
+ },
327
+ children: /*#__PURE__*/jsx(MobileContainer, {
328
+ direction: "row",
329
+ justify: "between",
330
+ children: stepItems
331
+ })
332
+ }) : stepItems
333
+ })
334
+ });
335
+ };
336
+ const Default = props => {
337
+ const [state, updateState] = React__default.useState({
338
+ isComplete: [],
339
+ hide: props.hide || false,
340
+ ...props.state
341
+ });
342
+ useEffect(() => {
343
+ updateState(current => ({
344
+ ...current,
345
+ isComplete: props.completedSteps || []
346
+ }));
347
+ }, [props.completedSteps]);
348
+ useEffect(() => {
349
+ updateState(prev => ({
350
+ ...prev,
351
+ hide: props.hide
352
+ }));
353
+ }, [props.hide]);
354
+ useEffect(() => {
355
+ props?.onChangeVisibility?.(state.hide);
356
+ }, [state.hide]);
357
+ const toogleVisibility = value => {
358
+ updateState(prev => ({
359
+ ...prev,
360
+ hide: !prev.hide
361
+ }));
362
+ };
363
+ const getIsComplete = currentStep => {
364
+ return state?.isComplete?.[currentStep - 1];
365
+ };
366
+ const getTitleStep = currentStep => {
367
+ return props?.navContents?.[currentStep - 1]?.title;
368
+ };
369
+ const setState = value => {
370
+ updateState({
371
+ ...state,
372
+ ...value
373
+ });
374
+ };
375
+ const setComplete = (value, index) => {
376
+ const {
377
+ isComplete
378
+ } = state;
379
+ let arrIsComplete = [...isComplete];
380
+ arrIsComplete[index - 1] = value;
381
+ updateState({
382
+ ...state,
383
+ isComplete: arrIsComplete
384
+ });
385
+ };
386
+ const setInstance = SW => {
387
+ let completeArr = [];
388
+ for (let i = 0; i < SW.totalSteps; i++) {
389
+ completeArr.push(false);
390
+ }
391
+ if (props.setSw) props.setSw(SW);
392
+ updateState({
393
+ ...state,
394
+ isComplete: completeArr,
395
+ SW
396
+ });
397
+ };
398
+ const handleStepChange = e => {
399
+ const target = window.document.getElementById('container');
400
+ props.scrollTop && target.scrollIntoView({
401
+ behavior: 'smooth',
402
+ block: 'start'
403
+ });
404
+ props.onStepChange && props.onStepChange(e);
405
+ if (props?.navContents?.[e?.activeStep - 1]?.disabled) {
406
+ if (e?.activeStep > e?.previousStep) {
407
+ state?.SW?.nextStep();
408
+ } else {
409
+ state?.SW?.previousStep();
410
+ }
411
+ }
412
+ };
413
+ return /*#__PURE__*/jsx(WrapperDiv, {
414
+ id: "container",
415
+ children: /*#__PURE__*/jsx(StepWizardContext.Provider, {
416
+ value: {
417
+ toogleVisibility,
418
+ isHide: state?.hide,
419
+ setComplete,
420
+ setState,
421
+ state,
422
+ SW: state?.SW,
423
+ forbidClickNav: props.forbidClickNav,
424
+ titles: props.titles,
425
+ isMobile: props.isMobile,
426
+ data: props.navContents,
427
+ cssNav: props.cssNav,
428
+ getIsComplete,
429
+ getTitleStep,
430
+ hideCheckedIcon: props.hideCheckedIcon
431
+ },
432
+ children: /*#__PURE__*/jsx(Stepper, {
433
+ ...props,
434
+ transitions: transitions,
435
+ className: !props.isMobile && 'stepperInstance',
436
+ instance: setInstance,
437
+ nav: /*#__PURE__*/jsx(Navigation, {
438
+ onNavClicked: props.onNavClicked,
439
+ isComplete: state.isComplete,
440
+ appendContent: props?.appendContent
441
+ }),
442
+ initialStep: props.initialStep,
443
+ onStepChange: handleStepChange,
444
+ isLazyMount: props?.isLazyMount,
445
+ children: props.children
446
+ })
447
+ })
448
+ });
449
+ };
450
+
451
+ export { Default, Navigation, StepWizardContext };
@@ -0,0 +1,14 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { Default } from './StepWizard.esm.js';
3
+ export { StepWizardContext } from './StepWizard.esm.js';
4
+
5
+ const StepWizard = props => {
6
+ return jsx(Default, Object.assign({}, props, {
7
+ children: props.children
8
+ }));
9
+ };
10
+ StepWizard.defaultProps = {
11
+ isLazyMount: true
12
+ };
13
+
14
+ export { StepWizard };