spotlibs-components 0.1.22 → 0.1.23
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.
- package/dist/index.d.mts +43 -1
- package/dist/index.mjs +137 -98
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/legacy/atoms/icons/biometric-scan.jsx","../src/components/legacy/atoms/icons/capslock-on.jsx","../src/components/legacy/atoms/icons/document-add.jsx","../src/components/legacy/atoms/icons/download.jsx","../src/components/legacy/atoms/icons/edit.jsx","../src/components/legacy/atoms/icons/file.jsx","../src/components/legacy/atoms/icons/grading-rounded.jsx","../src/components/legacy/atoms/icons/list-document.jsx","../src/components/legacy/atoms/icons/money-icon.jsx","../src/components/legacy/atoms/icons/money.jsx","../src/components/legacy/atoms/icons/progress.jsx","../src/components/legacy/atoms/icons/reset.jsx","../src/components/legacy/atoms/icons/save-outlined.jsx","../src/components/legacy/atoms/icons/save.jsx","../src/components/legacy/atoms/icons/send-white-full.jsx","../src/components/legacy/atoms/icons/send-white.jsx","../src/components/legacy/atoms/icons/upload.jsx","../src/components/legacy/atoms/icons/user-scan.jsx","../src/components/legacy/atoms/icons/users-icon.jsx","../src/components/legacy/atoms/icons/verification.jsx","../src/components/atoms/radius/radius/radius.jsx","../src/components/atoms/typography/typography/typography.jsx","../src/components/atoms/alerts/alert/alert.jsx","../src/components/atoms/shadow/shadow/shadow.jsx","../src/components/atoms/buttons/button/button.jsx","../src/components/atoms/skeleton/skeleton/skeleton.jsx","../src/components/atoms/switch/switch/switch.jsx","../src/components/atoms/chips/chip/chip.jsx","../node_modules/.pnpm/@hirohe+react-watermark@0.5.0_react-dom@19.2.5_react@19.2.5/node_modules/@hirohe/react-watermark/node_modules/tslib/tslib.es6.js","../node_modules/.pnpm/@hirohe+react-watermark@0.5.0_react-dom@19.2.5_react@19.2.5/node_modules/@hirohe/react-watermark/src/Watermark.tsx","../src/components/molecules/cards/card/card.jsx","../src/components/molecules/snackbar/snackbar/snackbar.jsx","../src/components/molecules/checkbox/checkbox/checkbox.jsx","../src/components/molecules/datatable/serverside-pagination-actions/serverside-pagination-actions.jsx","../src/components/molecules/datatable/pagination/pagination.jsx","../src/components/molecules/datatable/pagination/numbered-pagination.jsx","../src/components/molecules/datatable/base-datatable/base-datatable.jsx","../src/components/molecules/datepicker/datepicker/datepicker.jsx","../src/components/molecules/dropdown/dropdown/dropdown.jsx","../src/components/molecules/dropzone/dropzone/dropzone.jsx","../src/components/molecules/radio/radio/radio.jsx","../src/components/molecules/stepper/stepper/stepper.jsx","../src/components/molecules/textfields/textfield/textfield.jsx","../src/components/molecules/textfields/textfield-upload/textfield-upload.jsx","../src/components/molecules/textfields/textfield-area/imports.jsx","../src/components/molecules/textfields/textfield-area/textfield-area.jsx","../src/components/organisms/modals/modal-alert/modal-alert.jsx","../src/components/legacy/atoms/icons/loading-dots.jsx","../src/components/organisms/modals/modal-loading/modal-loading.jsx","../src/components/organisms/modals/modal-popup/modal-popup.jsx","../src/components/organisms/modals/modal-stepper/modal-stepper.jsx","../src/components/organisms/modals/modal-otp/modal-otp.jsx","../src/components/organisms/forms/form-builder/form-builder.jsx"],"names":["jsxs","jsx","_a","_b","Box","BoxRaw","IconCircleCheck","__assign","show","useState","useEffect","React","Alert","AlertRaw","IconButton","IconButtonRaw","useMemo","isValidElement","createElement","Fragment","Select","SelectRaw","MenuItem","MenuItemRaw","getVisiblePages","IconChevronLeft","IconChevronRight","CheckboxRaw","id","IconSquare","IconSquareCheckFilled","_c","_d","_e","PropTypes","TypographyRaw","DatePickerRaw","DateTimePickerRaw","TimePickerRaw","useController","CloseIcon","Chip","ChipRaw","Typography","IconUpload","IconAlertTriangle","FormControlLabel","FormControlLabelRaw","CheckIconRaw","styled","steps","InputAdornment","InputAdornmentRaw","TextField","TextFieldRaw","useRef","useCallback","allowedKeys","e","pastedData","selectionStart","selectionEnd","IconAlertCircleFilled","Button","ButtonRaw","IconInfoCircle","IconAlertCircle","IconX","Dialog","DialogRaw","DialogContent","DialogContentRaw","_modalRef","setModalRef","hide","DialogActions","DialogActionsRaw","HEADER_COLORS","CheckIcon","FailedIconRaw","Stepper","StepperRaw","Step","StepRaw","StepLabel","StepLabelRaw","Tooltip","TooltipRaw","CircularProgress","CircularProgressRaw","HtmlTooltip","tooltipClasses","CustomCheckIcon","ColorlibStepIcon","props","CloseIconRaw","DialogTitle","DialogTitleRaw"],"mappings":"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","file":"index.mjs","sourcesContent":["export const IconBiometricScan = ({color}) => {\r\n return (\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"64\" height=\"64\" viewBox=\"0 0 64 64\" fill=\"none\">\r\n <path d=\"M8 17V14C8 12.4087 8.63214 10.8826 9.75736 9.75736C10.8826 8.63214 12.4087 8 14 8H20M8 47V50C8 51.5913 8.63214 53.1174 9.75736 54.2426C10.8826 55.3679 12.4087 56 14 56H20M44 8H50C51.5913 8 53.1174 8.63214 54.2426 9.75736C55.3679 10.8826 56 12.4087 56 14V17M44 56H50C51.5913 56 53.1174 55.3679 54.2426 54.2426C55.3679 53.1174 56 51.5913 56 50V47\" stroke=\"#00529C\" strokeWidth=\"1.8\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\r\n <path d=\"M28 29.3333H28.0133M36 29.3333H36.0133M28.6667 36C29.1012 36.4435 29.6198 36.7958 30.1922 37.0363C30.7645 37.2768 31.3791 37.4007 32 37.4007C32.6209 37.4007 33.2355 37.2768 33.8078 37.0363C34.3802 36.7958 34.8988 36.4435 35.3333 36M20 32C20 33.5759 20.3104 35.1363 20.9134 36.5922C21.5165 38.0481 22.4004 39.371 23.5147 40.4853C24.629 41.5996 25.9519 42.4835 27.4078 43.0866C28.8637 43.6896 30.4241 44 32 44C33.5759 44 35.1363 43.6896 36.5922 43.0866C38.0481 42.4835 39.371 41.5996 40.4853 40.4853C41.5996 39.371 42.4835 38.0481 43.0866 36.5922C43.6896 35.1363 44 33.5759 44 32C44 30.4241 43.6896 28.8637 43.0866 27.4078C42.4835 25.9519 41.5996 24.629 40.4853 23.5147C39.371 22.4004 38.0481 21.5165 36.5922 20.9134C35.1363 20.3104 33.5759 20 32 20C30.4241 20 28.8637 20.3104 27.4078 20.9134C25.9519 21.5165 24.629 22.4004 23.5147 23.5147C22.4004 24.629 21.5165 25.9519 20.9134 27.4078C20.3104 28.8637 20 30.4241 20 32Z\" stroke={color ?? \"none\"} strokeWidth=\"1.8\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\r\n </svg>\r\n );\r\n };","export const CapsLockOn = ({ color }) => {\r\n return (\r\n <svg\r\n width=\"18\"\r\n height=\"18\"\r\n viewBox=\"0 0 18 18\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <rect width=\"18\" height=\"18\" rx=\"3\" fill=\"#A0A0A0\" />\r\n <path\r\n d=\"M4.38533 9.0119H6.20667V11.1484C6.20667 11.3498 6.27432 11.5194 6.40965 11.6574C6.54497 11.7954 6.70772 11.8643 6.89789 11.8643H11.1111C11.3013 11.8643 11.4659 11.7954 11.6048 11.6574C11.7438 11.5194 11.8133 11.3498 11.8133 11.1484V9.0119H13.6127C13.7005 9.0119 13.7736 8.96342 13.8321 8.86648C13.8907 8.76953 13.9163 8.65394 13.9089 8.51971C13.9016 8.38548 13.8541 8.27361 13.7663 8.18413L9.49823 3.48597C9.36657 3.34428 9.20199 3.27344 9.0045 3.27344C8.807 3.27344 8.63877 3.34428 8.49979 3.48597L4.24269 8.18413C4.15492 8.27361 4.10555 8.38548 4.09457 8.51971C4.0836 8.65394 4.10738 8.76953 4.16589 8.86648C4.22441 8.96342 4.29755 9.0119 4.38533 9.0119ZM11.1111 12.5691H6.89789C6.70772 12.5691 6.54497 12.6399 6.40965 12.7816C6.27432 12.9233 6.20667 13.0911 6.20667 13.285V14.0121C6.20667 14.206 6.27432 14.3738 6.40965 14.5154C6.54497 14.6571 6.70772 14.728 6.89789 14.728H11.1111C11.3013 14.728 11.4659 14.659 11.6048 14.521C11.7438 14.3831 11.8133 14.2134 11.8133 14.0121V13.285C11.8133 13.0911 11.7438 12.9233 11.6048 12.7816C11.4659 12.6399 11.3013 12.5691 11.1111 12.5691Z\"\r\n fill={color ? color : \"white\"}\r\n />\r\n </svg>\r\n );\r\n};\r\n","export const IconDocumentAdd = ({color}) => {\r\n return (\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"25\" viewBox=\"0 0 24 25\" fill=\"none\">\r\n <path d=\"M19.001 7.501H15.001L15 3.5L19.001 7.501Z\" fill={color ?? \"#00529C\"}/>\r\n <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M12.117 2.507L12 2.5H7L6.824 2.505C6.06011 2.54989 5.34224 2.88499 4.81728 3.44174C4.29233 3.99849 3.99996 4.73479 4 5.5V19.5L4.005 19.676C4.04989 20.4399 4.38499 21.1578 4.94174 21.6827C5.49849 22.2077 6.23479 22.5 7 22.5H17L17.176 22.495C17.9399 22.4501 18.6578 22.115 19.1827 21.5583C19.7077 21.0015 20 20.2652 20 19.5V10.5L19.993 10.383C19.9667 10.1598 19.8659 9.95194 19.707 9.79301C19.5481 9.63408 19.3402 9.53332 19.117 9.507L19 9.5H15L14.843 9.494C14.3669 9.45666 13.92 9.25023 13.5829 8.91203C13.2458 8.57383 13.0408 8.12617 13.005 7.65L13 7.5V3.5L12.993 3.383C12.9667 3.15978 12.8659 2.95194 12.707 2.79301C12.5481 2.63408 12.3402 2.53332 12.117 2.507ZM12.0016 11.1016C12.4986 11.1016 12.9016 11.5045 12.9016 12.0016V14.1016H15.0016C15.4986 14.1016 15.9016 14.5045 15.9016 15.0016C15.9016 15.4986 15.4986 15.9016 15.0016 15.9016H12.9016V18.0016C12.9016 18.4986 12.4986 18.9016 12.0016 18.9016C11.5045 18.9016 11.1016 18.4986 11.1016 18.0016V15.9016H9.00156C8.50451 15.9016 8.10156 15.4986 8.10156 15.0016C8.10156 14.5045 8.50451 14.1016 9.00156 14.1016H11.1016V12.0016C11.1016 11.5045 11.5045 11.1016 12.0016 11.1016Z\" fill={color ?? \"#00529C\"}/>\r\n <path d=\"M19.001 7.501H15.001L15 3.5L19.001 7.501Z\" stroke={color ?? \"#00529C\"}/>\r\n <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M12.117 2.507L12 2.5H7L6.824 2.505C6.06011 2.54989 5.34224 2.88499 4.81728 3.44174C4.29233 3.99849 3.99996 4.73479 4 5.5V19.5L4.005 19.676C4.04989 20.4399 4.38499 21.1578 4.94174 21.6827C5.49849 22.2077 6.23479 22.5 7 22.5H17L17.176 22.495C17.9399 22.4501 18.6578 22.115 19.1827 21.5583C19.7077 21.0015 20 20.2652 20 19.5V10.5L19.993 10.383C19.9667 10.1598 19.8659 9.95194 19.707 9.79301C19.5481 9.63408 19.3402 9.53332 19.117 9.507L19 9.5H15L14.843 9.494C14.3669 9.45666 13.92 9.25023 13.5829 8.91203C13.2458 8.57383 13.0408 8.12617 13.005 7.65L13 7.5V3.5L12.993 3.383C12.9667 3.15978 12.8659 2.95194 12.707 2.79301C12.5481 2.63408 12.3402 2.53332 12.117 2.507ZM12.0016 11.1016C12.4986 11.1016 12.9016 11.5045 12.9016 12.0016V14.1016H15.0016C15.4986 14.1016 15.9016 14.5045 15.9016 15.0016C15.9016 15.4986 15.4986 15.9016 15.0016 15.9016H12.9016V18.0016C12.9016 18.4986 12.4986 18.9016 12.0016 18.9016C11.5045 18.9016 11.1016 18.4986 11.1016 18.0016V15.9016H9.00156C8.50451 15.9016 8.10156 15.4986 8.10156 15.0016C8.10156 14.5045 8.50451 14.1016 9.00156 14.1016H11.1016V12.0016C11.1016 11.5045 11.5045 11.1016 12.0016 11.1016Z\" stroke={color ?? \"#00529C\"}/>\r\n </svg>\r\n );\r\n};","export const DownloadIconLarge = ({\r\n color = \"#00529C\",\r\n width = \"21\",\r\n height = \"21\",\r\n}) => {\r\n return (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox=\"0 0 21 22\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M21 20.1875C21 20.9124 20.4124 21.5 19.6875 21.5H1.3125C0.587631 21.5 0 20.9124 0 20.1875C0 19.4626 0.587631 18.875 1.3125 18.875H19.6875C20.4124 18.875 21 19.4626 21 20.1875ZM9.57194 16.0297C9.82825 16.286 10.1641 16.4141 10.5 16.4141C10.8358 16.4141 11.1718 16.2859 11.4281 16.0297L16.0783 11.3794C16.5909 10.8669 16.5909 10.0358 16.0783 9.52327C15.5658 9.0107 14.7347 9.0107 14.2222 9.52327L11.8125 11.9329V1.8125C11.8125 1.08763 11.2249 0.5 10.5 0.5C9.77513 0.5 9.1875 1.08763 9.1875 1.8125V11.9329L6.77783 9.52327C6.26526 9.0107 5.43424 9.0107 4.92167 9.52327C4.4091 10.0358 4.4091 10.8669 4.92167 11.3794L9.57194 16.0297Z\"\r\n fill={color}\r\n />\r\n </svg>\r\n );\r\n};\r\n","export const IconEdit = ({ color, isSmall }) => {\r\n return (\r\n <svg\r\n width={isSmall ? \"16px\" : \"20px\"}\r\n height={isSmall ? \"20px\" : \"24px\"}\r\n viewBox=\"0 0 20 24\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n fillRule=\"evenodd\"\r\n clipRule=\"evenodd\"\r\n d=\"M2.02018 21.5197H18.3535C18.6629 21.5197 18.9597 21.6426 19.1785 21.8614C19.3973 22.0802 19.5202 22.3769 19.5202 22.6863C19.5202 22.9958 19.3973 23.2925 19.1785 23.5113C18.9597 23.7301 18.6629 23.853 18.3535 23.853H2.02018C1.71076 23.853 1.41402 23.7301 1.19522 23.5113C0.976432 23.2925 0.853516 22.9958 0.853516 22.6863C0.853516 22.3769 0.976432 22.0802 1.19522 21.8614C1.41402 21.6426 1.71076 21.5197 2.02018 21.5197ZM0.853516 15.6863L12.5202 4.01968L16.0202 7.51968L4.35352 19.1863H0.853516V15.6863ZM13.6868 2.85302L16.0202 0.519684L19.5202 4.01968L17.1857 6.35418L13.6868 2.85302Z\"\r\n fill={color ? color : \"white\"}\r\n />\r\n </svg>\r\n );\r\n};\r\n","export const IconFile = ({ color }) => {\r\n return (\r\n <svg\r\n width='36'\r\n height='36'\r\n viewBox='0 0 36 36'\r\n fill='none'\r\n xmlns='http://www.w3.org/2000/svg'\r\n >\r\n <path\r\n d='M13.5718 2.91919C14.968 2.90484 16.2712 3.53241 17.126 4.59781L18.4457 6.30538C18.8656 6.81619 19.4954 7.12268 20.1703 7.12268H24.7742C30.3079 7.12268 33.0073 9.99781 32.9924 15.894V23.0016C32.9924 28.6351 29.4231 32.1086 23.6195 32.1086H12.3571C6.58344 32.1086 2.99927 28.6351 2.99927 22.987V12.0265C2.99927 5.9843 5.75863 2.91919 11.2024 2.91919H13.5718ZM24.9392 20.1265H11.0524C10.4225 20.1265 9.92766 20.6081 9.92766 21.2211C9.92766 21.8194 10.4225 22.3156 11.0524 22.3156H24.9392C25.554 22.3156 26.0489 21.8194 26.0489 21.2211C26.0489 20.6081 25.554 20.1265 24.9392 20.1265Z'\r\n fill={color ? color :'#084F8C'}\r\n />\r\n </svg>\r\n )\r\n}\r\n","export const IconGradingRounded = ({color, width, height}) => {\r\n return (\r\n <svg \r\n width={width ?? \"24\"} \r\n height={height ?? \"24\"} \r\n viewBox=\"0 0 24 24\" \r\n fill=\"none\" \r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path \r\n d=\"M19.8684 18.3838L17.7283 20.5239L16.7388 19.5352C16.4458 19.2422 15.9712 19.2422 15.6782 19.5352C15.3853 19.8281 15.3853 20.3027 15.6782 20.5957L17.198 22.1147C17.3445 22.2612 17.5364 22.3345 17.7283 22.3345C17.9202 22.3345 18.1121 22.2612 18.2585 22.1147L20.929 19.4443C21.2219 19.1514 21.2219 18.6768 20.929 18.3838C20.636 18.0908 20.1614 18.0908 19.8684 18.3838Z\" \r\n fill={color ?? \"#00529C\"}\r\n />\r\n <path \r\n d=\"M17.1016 1.5H6.60156C4.53156 1.5 2.85156 3.17999 2.85156 5.25V18.75C2.85156 20.82 4.53156 22.5 6.60156 22.5H15.4591L14.6191 21.66C13.7416 20.7825 13.7416 19.3575 14.6191 18.4725C15.4741 17.6175 16.8465 17.595 17.7241 18.405L18.8116 17.325C19.3666 16.77 20.1391 16.5675 20.8516 16.7175V5.25C20.8516 3.17999 19.1716 1.5 17.1016 1.5ZM16.3516 16.5H7.35156C6.93907 16.5 6.60156 16.1625 6.60156 15.75C6.60156 15.3375 6.93907 15 7.35156 15H16.3516C16.7641 15 17.1016 15.3375 17.1016 15.75C17.1016 16.1625 16.7641 16.5 16.3516 16.5ZM16.3516 12.75H7.35156C6.93907 12.75 6.60156 12.4125 6.60156 12C6.60156 11.5875 6.93907 11.25 7.35156 11.25H16.3516C16.7641 11.25 17.1016 11.5875 17.1016 12C17.1016 12.4125 16.7641 12.75 16.3516 12.75ZM16.3516 9H7.35156C6.93907 9 6.60156 8.66249 6.60156 8.25C6.60156 7.83751 6.93907 7.5 7.35156 7.5H16.3516C16.7641 7.5 17.1016 7.83751 17.1016 8.25C17.1016 8.66249 16.7641 9 16.3516 9Z\" \r\n fill={color ?? \"#00529C\"}\r\n />\r\n </svg>\r\n );\r\n };","export const IconListDocument = ({ color }) => {\r\n return (\r\n <svg\r\n width=\"21\"\r\n height=\"22\"\r\n viewBox=\"0 0 21 22\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M0 3.93103C0 3.13538 0.31607 2.37232 0.87868 1.80971C1.44129 1.2471 2.20435 0.93103 3 0.93103H13.5C14.2956 0.93103 15.0587 1.2471 15.6213 1.80971C16.1839 2.37232 16.5 3.13538 16.5 3.93103V14.431H21V17.431C21 18.6245 20.5259 19.7691 19.682 20.613C18.8381 21.4569 17.6935 21.931 16.5 21.931H4.5C3.30653 21.931 2.16193 21.4569 1.31802 20.613C0.474106 19.7691 0 18.6245 0 17.431V3.93103ZM16.5 20.431C17.2956 20.431 18.0587 20.115 18.6213 19.5523C19.1839 18.9897 19.5 18.2267 19.5 17.431V15.931H16.5V20.431ZM5.25 5.43103C5.05109 5.43103 4.86032 5.51005 4.71967 5.6507C4.57902 5.79135 4.5 5.98212 4.5 6.18103C4.5 6.37994 4.57902 6.57071 4.71967 6.71136C4.86032 6.85201 5.05109 6.93103 5.25 6.93103H11.25C11.4489 6.93103 11.6397 6.85201 11.7803 6.71136C11.921 6.57071 12 6.37994 12 6.18103C12 5.98212 11.921 5.79135 11.7803 5.6507C11.6397 5.51005 11.4489 5.43103 11.25 5.43103H5.25ZM5.25 9.93103C5.05109 9.93103 4.86032 10.01 4.71967 10.1507C4.57902 10.2914 4.5 10.4821 4.5 10.681C4.5 10.8799 4.57902 11.0707 4.71967 11.2114C4.86032 11.352 5.05109 11.431 5.25 11.431H11.25C11.4489 11.431 11.6397 11.352 11.7803 11.2114C11.921 11.0707 12 10.8799 12 10.681C12 10.4821 11.921 10.2914 11.7803 10.1507C11.6397 10.01 11.4489 9.93103 11.25 9.93103H5.25ZM5.25 14.431C5.05109 14.431 4.86032 14.51 4.71967 14.6507C4.57902 14.7914 4.5 14.9821 4.5 15.181C4.5 15.3799 4.57902 15.5707 4.71967 15.7114C4.86032 15.852 5.05109 15.931 5.25 15.931H8.25C8.44891 15.931 8.63968 15.852 8.78033 15.7114C8.92098 15.5707 9 15.3799 9 15.181C9 14.9821 8.92098 14.7914 8.78033 14.6507C8.63968 14.51 8.44891 14.431 8.25 14.431H5.25Z\"\r\n fill={color ? color : \"white\"}\r\n />\r\n </svg>\r\n );\r\n};\r\n","export const MoneyIcon = ({ color, width, height }) => {\r\n return (\r\n <svg\r\n width={width ? width : \"25\"}\r\n height={height ? height : \"24\"}\r\n viewBox=\"0 0 25 24\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M2.5 5.75C2.5 4.784 3.284 4 4.25 4H17.75C18.716 4 19.5 4.784 19.5 5.75V14.25C19.5 14.7141 19.3156 15.1592 18.9874 15.4874C18.6592 15.8156 18.2141 16 17.75 16H4.25C3.78587 16 3.34075 15.8156 3.01256 15.4874C2.68437 15.1592 2.5 14.7141 2.5 14.25V5.75ZM5.5 5.25V6.25C5.5 6.44891 5.42098 6.63968 5.28033 6.78033C5.13968 6.92098 4.94891 7 4.75 7H3.75V8.5H4.75C5.04547 8.5 5.33806 8.4418 5.61104 8.32873C5.88402 8.21566 6.13206 8.04992 6.34099 7.84099C6.54992 7.63206 6.71566 7.38402 6.82873 7.11104C6.9418 6.83805 7 6.54547 7 6.25V5.25H5.5ZM11 12.5C11.5967 12.5 12.169 12.2629 12.591 11.841C13.0129 11.419 13.25 10.8467 13.25 10.25C13.25 9.65326 13.0129 9.08097 12.591 8.65901C12.169 8.23705 11.5967 8 11 8C10.4033 8 9.83097 8.23705 9.40901 8.65901C8.98705 9.08097 8.75 9.65326 8.75 10.25C8.75 10.8467 8.98705 11.419 9.40901 11.841C9.83097 12.2629 10.4033 12.5 11 12.5ZM3.75 13H4.75C4.94891 13 5.13968 13.079 5.28033 13.2197C5.42098 13.3603 5.5 13.5511 5.5 13.75V14.75H7V13.75C7 13.1533 6.76295 12.581 6.34099 12.159C5.91903 11.7371 5.34674 11.5 4.75 11.5H3.75V13ZM16.5 13.75C16.5 13.5511 16.579 13.3603 16.7197 13.2197C16.8603 13.079 17.0511 13 17.25 13H18.25V11.5H17.25C16.6533 11.5 16.081 11.7371 15.659 12.159C15.2371 12.581 15 13.1533 15 13.75V14.75H16.5V13.75ZM16.5 6.25V5.25H15V6.25C15 6.54547 15.0582 6.83805 15.1713 7.11104C15.2843 7.38402 15.4501 7.63206 15.659 7.84099C16.081 8.26295 16.6533 8.5 17.25 8.5H18.25V7H17.25C17.0511 7 16.8603 6.92098 16.7197 6.78033C16.579 6.63968 16.5 6.44891 16.5 6.25Z\"\r\n fill={color ? color : \"#00529C\"}\r\n />\r\n <path\r\n d=\"M4.90137 17.4999C5.16467 17.9561 5.54351 18.335 5.99977 18.5983C6.45602 18.8616 6.97358 19.0001 7.50037 18.9999H17.7504C18.3741 18.9999 18.9918 18.877 19.5681 18.6383C20.1444 18.3996 20.668 18.0497 21.1091 17.6086C21.5502 17.1676 21.9001 16.6439 22.1388 16.0676C22.3775 15.4913 22.5004 14.8737 22.5004 14.2499V8.99988C22.5004 7.88988 21.8974 6.91988 21.0004 6.40088V14.2499C21.0004 15.1118 20.658 15.9385 20.0485 16.548C19.439 17.1575 18.6123 17.4999 17.7504 17.4999H4.90137Z\"\r\n fill={color ? color : \"#00529C\"}\r\n />\r\n </svg>\r\n );\r\n};\r\n","export const IconMoney = ({color, width, height}) => {\r\n return (\r\n <svg \r\n width={width ? width :\"32\"} \r\n height={height ? height : \"33\"} \r\n viewBox=\"0 0 32 33\" \r\n fill=\"none\" \r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path \r\n d=\"M2.66602 8.16683C2.66602 6.87883 3.71135 5.8335 4.99935 5.8335H22.9993C24.2873 5.8335 25.3327 6.87883 25.3327 8.16683V19.5002C25.3327 20.119 25.0868 20.7125 24.6493 21.1501C24.2117 21.5877 23.6182 21.8335 22.9993 21.8335H4.99935C4.38051 21.8335 3.78702 21.5877 3.34943 21.1501C2.91185 20.7125 2.66602 20.119 2.66602 19.5002V8.16683ZM6.66602 7.50016V8.8335C6.66602 9.09871 6.56066 9.35307 6.37312 9.5406C6.18559 9.72814 5.93123 9.8335 5.66602 9.8335H4.33268V11.8335H5.66602C6.05998 11.8335 6.45009 11.7559 6.81407 11.6051C7.17804 11.4544 7.50876 11.2334 7.78734 10.9548C8.06591 10.6762 8.28689 10.3455 8.43765 9.98155C8.58842 9.61757 8.66602 9.22746 8.66602 8.8335V7.50016H6.66602ZM13.9993 17.1668C14.795 17.1668 15.5581 16.8508 16.1207 16.2881C16.6833 15.7255 16.9993 14.9625 16.9993 14.1668C16.9993 13.3712 16.6833 12.6081 16.1207 12.0455C15.5581 11.4829 14.795 11.1668 13.9993 11.1668C13.2037 11.1668 12.4406 11.4829 11.878 12.0455C11.3154 12.6081 10.9993 13.3712 10.9993 14.1668C10.9993 14.9625 11.3154 15.7255 11.878 16.2881C12.4406 16.8508 13.2037 17.1668 13.9993 17.1668ZM4.33268 17.8335H5.66602C5.93123 17.8335 6.18559 17.9389 6.37312 18.1264C6.56066 18.3139 6.66602 18.5683 6.66602 18.8335V20.1668H8.66602V18.8335C8.66602 18.0378 8.34995 17.2748 7.78734 16.7122C7.22473 16.1496 6.46167 15.8335 5.66602 15.8335H4.33268V17.8335ZM21.3327 18.8335C21.3327 18.5683 21.438 18.3139 21.6256 18.1264C21.8131 17.9389 22.0675 17.8335 22.3327 17.8335H23.666V15.8335H22.3327C21.537 15.8335 20.774 16.1496 20.2114 16.7122C19.6488 17.2748 19.3327 18.0378 19.3327 18.8335V20.1668H21.3327V18.8335ZM21.3327 8.8335V7.50016H19.3327V8.8335C19.3327 9.22746 19.4103 9.61757 19.561 9.98155C19.7118 10.3455 19.9328 10.6762 20.2114 10.9548C20.774 11.5174 21.537 11.8335 22.3327 11.8335H23.666V9.8335H22.3327C22.0675 9.8335 21.8131 9.72814 21.6256 9.5406C21.438 9.35307 21.3327 9.09871 21.3327 8.8335Z\" \r\n fill=\"#ED6E12\"\r\n />\r\n <path \r\n d=\"M5.86719 23.8333C6.21826 24.4417 6.72338 24.9468 7.33172 25.2979C7.94005 25.649 8.63014 25.8337 9.33252 25.8333H22.9992C23.8309 25.8333 24.6545 25.6695 25.4229 25.3512C26.1912 25.033 26.8894 24.5665 27.4775 23.9783C28.0656 23.3902 28.5321 22.6921 28.8504 21.9237C29.1687 21.1553 29.3325 20.3317 29.3325 19.5V12.5C29.3325 11.02 28.5285 9.72667 27.3325 9.03467V19.5C27.3325 20.6493 26.876 21.7515 26.0633 22.5641C25.2507 23.3768 24.1485 23.8333 22.9992 23.8333H5.86719Z\" \r\n fill={color ? color : \"white\"}\r\n />\r\n </svg>\r\n );\r\n};","export const IconProgress = ({width, height, color}) => {\r\n return (\r\n <svg \r\n width={width ? width : \"34\"} \r\n height={height ? height : \"34\"} \r\n viewBox=\"0 0 34 34\" \r\n fill=\"none\" \r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <rect \r\n width={width ? width : \"34\"} \r\n height={height ? height : \"34\"} \r\n rx=\"17\" \r\n fill={color ? color : \"#E0FAEC\"}\r\n />\r\n <path \r\n d=\"M17 17C15.9391 17 14.9217 17.4214 14.1716 18.1716C13.4214 18.9217 13 19.9391 13 21V22.3333C13 22.5101 13.0702 22.6797 13.1953 22.8047C13.3203 22.9298 13.4899 23 13.6667 23H20.3333C20.5101 23 20.6797 22.9298 20.8047 22.8047C20.9298 22.6797 21 22.5101 21 22.3333V21C21 19.9391 20.5786 18.9217 19.8284 18.1716C19.0783 17.4214 18.0609 17 17 17ZM17 17C15.9391 17 14.9217 16.5786 14.1716 15.8284C13.4214 15.0783 13 14.0609 13 13V11.6667C13 11.4899 13.0702 11.3203 13.1953 11.1953C13.3203 11.0702 13.4899 11 13.6667 11H20.3333C20.5101 11 20.6797 11.0702 20.8047 11.1953C20.9298 11.3203 21 11.4899 21 11.6667V13C21 14.0609 20.5786 15.0783 19.8284 15.8284C19.0783 16.5786 18.0609 17 17 17Z\" \r\n stroke=\"#27AE60\" \r\n strokeWidth=\"1.8\" \r\n strokeLinecap=\"round\" \r\n strokeLinejoin=\"round\"\r\n />\r\n </svg>\r\n );\r\n};\r\n","export const IconReset = ({ color }) => {\r\n return (\r\n <svg\r\n width=\"18\"\r\n height=\"16\"\r\n viewBox=\"0 0 28 26\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M15.035 0.0343246C9.92115 0.0343246 5.40812 2.98511 3.30659 7.45833L1.84471 4.42288L0 5.31142L3.03597 11.6134L9.33792 8.57723L8.44921 6.73286L5.16626 8.31408C6.93971 4.5577 10.735 2.08185 15.035 2.08185C21.0553 2.08185 25.9529 6.97973 25.9529 13C25.9529 19.0202 21.0553 23.9182 15.035 23.9182C11.4901 23.9182 8.15224 22.1864 6.10662 19.2858L4.43308 20.4661C6.86269 23.9097 10.8258 25.9656 15.035 25.9656C22.1837 25.9656 27.9999 20.1493 27.9999 13C27.9999 5.85065 22.1837 0.0343246 15.035 0.0343246Z\"\r\n fill={color ? color : \"white\"}\r\n />\r\n </svg>\r\n );\r\n};\r\n","export const IconSaveOutlined = ({ color }) => {\r\n return (\r\n <svg\r\n width=\"20\"\r\n height=\"20\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M0 3.05556C0 2.24517 0.321924 1.46798 0.894952 0.894952C1.46798 0.321924 2.24517 1.11011e-07 3.05556 1.11011e-07H14.1267C14.6011 -0.000117513 15.0708 0.0932395 15.5091 0.274737C15.9474 0.456235 16.3457 0.722316 16.6811 1.05778L18.9422 3.31889C19.62 3.99667 20 4.91556 20 5.87333V16.9444C20 17.7548 19.6781 18.532 19.105 19.105C18.532 19.6781 17.7548 20 16.9444 20H3.05556C2.24517 20 1.46798 19.6781 0.894952 19.105C0.321924 18.532 0 17.7548 0 16.9444V3.05556ZM3.05556 1.66667C2.28889 1.66667 1.66667 2.28889 1.66667 3.05556V16.9444C1.66667 17.7111 2.28889 18.3333 3.05556 18.3333H3.33333V12.5C3.33333 11.837 3.59673 11.2011 4.06557 10.7322C4.53441 10.2634 5.17029 10 5.83333 10H14.1667C14.8297 10 15.4656 10.2634 15.9344 10.7322C16.4033 11.2011 16.6667 11.837 16.6667 12.5V18.3333H16.9444C17.7111 18.3333 18.3333 17.7111 18.3333 16.9444V5.87333C18.3333 5.35667 18.1289 4.86222 17.7633 4.49778L15.5022 2.23667C15.2152 1.94913 14.8453 1.75873 14.4444 1.69222V4.72222C14.4444 5.05053 14.3798 5.37562 14.2541 5.67893C14.1285 5.98224 13.9444 6.25784 13.7122 6.48999C13.4801 6.72214 13.2045 6.90628 12.9012 7.03192C12.5978 7.15756 12.2727 7.22222 11.9444 7.22222H6.94444C6.2814 7.22222 5.64552 6.95883 5.17668 6.48999C4.70784 6.02115 4.44444 5.38526 4.44444 4.72222V1.66667H3.05556ZM15 18.3333V12.5C15 12.279 14.9122 12.067 14.7559 11.9107C14.5996 11.7545 14.3877 11.6667 14.1667 11.6667H5.83333C5.61232 11.6667 5.40036 11.7545 5.24408 11.9107C5.0878 12.067 5 12.279 5 12.5V18.3333H15ZM6.11111 1.66667V4.72222C6.11111 5.18222 6.48444 5.55556 6.94444 5.55556H11.9444C12.1655 5.55556 12.3774 5.46776 12.5337 5.31148C12.69 5.1552 12.7778 4.94324 12.7778 4.72222V1.66667H6.11111Z\"\r\n fill={color ?? \"#ED6E12\"}\r\n />\r\n </svg>\r\n );\r\n};\r\n","export const IconSave = ({color, width = \"21\", height = \"21\" }) => {\r\n return (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox=\"0 0 21 21\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M0.5 2.9487C0.5 2.19093 0.801019 1.46421 1.33684 0.92839C1.87266 0.392572 2.59938 0.0915527 3.35714 0.0915527H4.78571V5.09155C4.78571 5.65987 5.01148 6.20492 5.41334 6.60678C5.81521 7.00865 6.36025 7.23441 6.92857 7.23441H12.6429C13.2112 7.23441 13.7562 7.00865 14.1581 6.60678C14.5599 6.20492 14.7857 5.65987 14.7857 5.09155V0.0915527H15.3271C16.0848 0.0917146 16.8115 0.39284 17.3471 0.928696L19.6629 3.24441C20.1987 3.7801 20.4998 4.50671 20.5 5.26441V17.2344C20.5 17.9922 20.199 18.7189 19.6632 19.2547C19.1273 19.7905 18.4006 20.0916 17.6429 20.0916V12.2344C17.6429 11.6661 17.4171 11.121 17.0152 10.7192C16.6134 10.3173 16.0683 10.0916 15.5 10.0916H5.5C4.93168 10.0916 4.38663 10.3173 3.98477 10.7192C3.58291 11.121 3.35714 11.6661 3.35714 12.2344V20.0916C2.59938 20.0916 1.87266 19.7905 1.33684 19.2547C0.801019 18.7189 0.5 17.9922 0.5 17.2344V2.9487Z\"\r\n fill={color ? color : \"white\"}\r\n />\r\n <path\r\n d=\"M13.3572 0.0915527H6.21436V5.09155C6.21436 5.28099 6.28961 5.46267 6.42357 5.59663C6.55752 5.73058 6.7392 5.80584 6.92864 5.80584H12.6429C12.8324 5.80584 13.0141 5.73058 13.148 5.59663C13.282 5.46267 13.3572 5.28099 13.3572 5.09155V0.0915527Z\"\r\n fill={color ? color : \"white\"}\r\n />\r\n <path\r\n d=\"M16.2142 12.2345V20.0917H4.78564V12.2345C4.78564 12.0451 4.8609 11.8634 4.99485 11.7295C5.12881 11.5955 5.31049 11.5203 5.49993 11.5203H15.4999C15.6894 11.5203 15.871 11.5955 16.005 11.7295C16.139 11.8634 16.2142 12.0451 16.2142 12.2345Z\"\r\n fill={color ? color : \"white\"}\r\n />\r\n </svg>\r\n );\r\n};\r\n","export const IconSendWhiteFull = (color) => {\r\n return (\r\n <svg\r\n width=\"21\"\r\n height=\"21\"\r\n viewBox=\"0 0 21 21\"\r\n fill={color ? color : 'white'} \r\n\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M20.7334 0.25483C20.6153 0.137294 20.4662 0.0559167 20.3034 0.0202658C20.1406 -0.0153851 19.9711 -0.00382733 19.8147 0.0535802L0.564683 7.05358C0.398668 7.11655 0.255738 7.22854 0.154878 7.37467C0.0540177 7.52079 0 7.69415 0 7.87171C0 8.04926 0.0540177 8.22262 0.154878 8.36875C0.255738 8.51487 0.398668 8.62686 0.564683 8.68983L8.08093 11.6911L13.6284 6.12608L14.8622 7.35983L9.28843 12.9336L12.2984 20.4498C12.3633 20.6126 12.4755 20.7522 12.6206 20.8505C12.7657 20.9488 12.9369 21.0013 13.1122 21.0011C13.289 20.9975 13.4606 20.9403 13.6043 20.8372C13.748 20.7341 13.8571 20.5899 13.9172 20.4236L20.9172 1.17358C20.9768 1.01877 20.9912 0.850207 20.9586 0.687538C20.9261 0.52487 20.848 0.374802 20.7334 0.25483Z\"\r\n />\r\n </svg>\r\n );\r\n};","export const IconSendWhite = (color) => {\r\n return (\r\n <svg\r\n width=\"21\"\r\n height=\"22\"\r\n viewBox=\"0 0 21 22\"\r\n fill={color ? color : 'white'} \r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M20.746 0.753732C20.6279 0.636196 20.4787 0.554818 20.316 0.519167C20.1532 0.483516 19.9837 0.495074 19.8273 0.552482L0.577257 7.55248C0.411241 7.61545 0.268311 7.72744 0.167451 7.87357C0.0665909 8.0197 0.0125732 8.19305 0.0125732 8.37061C0.0125732 8.54816 0.0665909 8.72152 0.167451 8.86765C0.268311 9.01377 0.411241 9.12576 0.577257 9.18873L8.97726 12.5487L12.3373 20.9487C12.4004 21.1075 12.5086 21.2442 12.6485 21.3422C12.7885 21.4401 12.954 21.495 13.1248 21.5C13.3016 21.4964 13.4732 21.4392 13.6169 21.3361C13.7606 21.233 13.8697 21.0888 13.9298 20.9225L20.9298 1.67248C20.9894 1.51767 21.0037 1.34911 20.9712 1.18644C20.9387 1.02377 20.8606 0.873703 20.746 0.753732ZM13.1248 18.175L10.6835 12.05L14.8748 7.85873L13.641 6.62498L9.41476 10.8512L3.32476 8.37498L18.6635 2.83623L13.1248 18.175Z\"\r\n />\r\n </svg>\r\n );\r\n};\r\n","export const IconUpload = ({ color }) => {\r\n return (\r\n <svg\r\n width=\"34\"\r\n height=\"28\"\r\n viewBox=\"0 0 34 28\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M22.7368 19.9472L16.9998 14.2103L11.2628 19.9472\"\r\n stroke={color ? color : \"#00529C\"}\r\n strokeWidth=\"1.6549\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n />\r\n <path\r\n d=\"M16.9996 14.2103V27.1185\"\r\n stroke={color ? color : \"#00529C\"}\r\n strokeWidth=\"1.6549\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n />\r\n <path\r\n d=\"M29.0332 23.3745C30.4321 22.6119 31.5372 21.4051 32.174 19.9447C32.8109 18.4842 32.9433 16.8533 32.5503 15.3093C32.1573 13.7653 31.2613 12.3961 30.0037 11.4178C28.7462 10.4396 27.1986 9.90799 25.6054 9.90694H23.7982C23.3641 8.22778 22.555 6.66889 21.4317 5.34746C20.3083 4.02603 18.9001 2.97645 17.3127 2.27763C15.7254 1.5788 14.0003 1.24892 12.2671 1.31277C10.5339 1.37663 8.83772 1.83257 7.30611 2.64631C5.77449 3.46005 4.44728 4.61042 3.42425 6.01093C2.40121 7.41144 1.70899 9.02564 1.39961 10.7322C1.09022 12.4387 1.17174 14.1932 1.63803 15.8637C2.10431 17.5342 2.94323 19.0773 4.09171 20.3769\"\r\n stroke={color ? color : \"#00529C\"}\r\n strokeWidth=\"1.6549\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n />\r\n <path\r\n d=\"M22.7368 19.9472L16.9998 14.2103L11.2628 19.9472\"\r\n stroke={color ? color : \"#00529C\"}\r\n strokeWidth=\"1.6549\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n />\r\n </svg>\r\n );\r\n};\r\n","export const IconUserScan = ({color}) => {\r\n return (\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"25\" viewBox=\"0 0 24 25\" fill=\"none\">\r\n <path d=\"M8 16.5C8 15.9696 8.21071 15.4609 8.58579 15.0858C8.96086 14.7107 9.46957 14.5 10 14.5H14C14.5304 14.5 15.0391 14.7107 15.4142 15.0858C15.7893 15.4609 16 15.9696 16 16.5H8Z\" fill={color ?? \"none\"}/>\r\n <path d=\"M10 9.5C10 10.0304 10.2107 10.5391 10.5858 10.9142C10.9609 11.2893 11.4696 11.5 12 11.5C12.5304 11.5 13.0391 11.2893 13.4142 10.9142C13.7893 10.5391 14 10.0304 14 9.5C14 8.96957 13.7893 8.46086 13.4142 8.08579C13.0391 7.71071 12.5304 7.5 12 7.5C11.4696 7.5 10.9609 7.71071 10.5858 8.08579C10.2107 8.46086 10 8.96957 10 9.5Z\" fill={color ?? \"none\"}/>\r\n <path d=\"M4 8.5V6.5C4 5.96957 4.21071 5.46086 4.58579 5.08579C4.96086 4.71071 5.46957 4.5 6 4.5H8M4 16.5V18.5C4 19.0304 4.21071 19.5391 4.58579 19.9142C4.96086 20.2893 5.46957 20.5 6 20.5H8M16 4.5H18C18.5304 4.5 19.0391 4.71071 19.4142 5.08579C19.7893 5.46086 20 5.96957 20 6.5V8.5M16 20.5H18C18.5304 20.5 19.0391 20.2893 19.4142 19.9142C19.7893 19.5391 20 19.0304 20 18.5V16.5M10 9.5C10 10.0304 10.2107 10.5391 10.5858 10.9142C10.9609 11.2893 11.4696 11.5 12 11.5C12.5304 11.5 13.0391 11.2893 13.4142 10.9142C13.7893 10.5391 14 10.0304 14 9.5C14 8.96957 13.7893 8.46086 13.4142 8.08579C13.0391 7.71071 12.5304 7.5 12 7.5C11.4696 7.5 10.9609 7.71071 10.5858 8.08579C10.2107 8.46086 10 8.96957 10 9.5ZM8 16.5C8 15.9696 8.21071 15.4609 8.58579 15.0858C8.96086 14.7107 9.46957 14.5 10 14.5H14C14.5304 14.5 15.0391 14.7107 15.4142 15.0858C15.7893 15.4609 16 15.9696 16 16.5H8Z\" stroke={color ?? \"none\"} strokeWidth=\"1.8\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\r\n </svg>\r\n );\r\n };","export const UsersIcon = () => {\r\n return (\r\n <svg\r\n width=\"25\"\r\n height=\"24\"\r\n viewBox=\"0 0 25 24\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M12.5 9.79688C14.3769 9.79688 15.8984 8.27535 15.8984 6.39844C15.8984 4.52153 14.3769 3 12.5 3C10.6231 3 9.10156 4.52153 9.10156 6.39844C9.10156 8.27535 10.6231 9.79688 12.5 9.79688Z\"\r\n fill=\"#00529C\"\r\n />\r\n <path\r\n d=\"M19.375 9.79688C20.5615 9.79688 21.5234 8.83499 21.5234 7.64844C21.5234 6.46189 20.5615 5.5 19.375 5.5C18.1885 5.5 17.2266 6.46189 17.2266 7.64844C17.2266 8.83499 18.1885 9.79688 19.375 9.79688Z\"\r\n fill=\"#00529C\"\r\n />\r\n <path\r\n d=\"M5.625 9.79688C6.81155 9.79688 7.77344 8.83499 7.77344 7.64844C7.77344 6.46189 6.81155 5.5 5.625 5.5C4.43845 5.5 3.47656 6.46189 3.47656 7.64844C3.47656 8.83499 4.43845 9.79688 5.625 9.79688Z\"\r\n fill=\"#00529C\"\r\n />\r\n <path\r\n d=\"M7.7418 11.7263C6.89609 11.0334 6.1302 11.1251 5.15234 11.1251C3.68984 11.1251 2.5 12.3079 2.5 13.7614V18.0274C2.5 18.6587 3.01523 19.172 3.64883 19.172C6.38422 19.172 6.05469 19.2215 6.05469 19.054C6.05469 16.0311 5.69664 13.8143 7.7418 11.7263Z\"\r\n fill=\"#00529C\"\r\n />\r\n <path\r\n d=\"M13.4307 11.1408C11.7227 10.9984 10.2381 11.1425 8.95763 12.1994C6.81478 13.9158 7.22717 16.2269 7.22717 19.0541C7.22717 19.8021 7.83576 20.4221 8.59513 20.4221C16.8405 20.4221 17.1687 20.688 17.6576 19.6053C17.818 19.2391 17.774 19.3555 17.774 15.8525C17.774 13.0703 15.3649 11.1408 13.4307 11.1408Z\"\r\n fill=\"#00529C\"\r\n />\r\n <path\r\n d=\"M19.8473 11.125C18.8641 11.125 18.1024 11.0342 17.2578 11.7262C19.2877 13.7987 18.9449 15.8643 18.9449 19.0539C18.9449 19.2224 18.6714 19.1719 21.3098 19.1719C21.966 19.1719 22.4996 18.6402 22.4996 17.9867V13.7613C22.4996 12.3078 21.3098 11.125 19.8473 11.125Z\"\r\n fill=\"#00529C\"\r\n />\r\n </svg>\r\n );\r\n};\r\n","export const IconVerification = ({ color }) => {\r\n return (\r\n <svg\r\n width=\"18\"\r\n height=\"18\"\r\n viewBox=\"0 0 18 18\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M16.5 16.5L11.5 11.5M4.83333 7.33333L6.5 9L9.83333 5.66667M1.5 7.33333C1.5 8.09938 1.65088 8.85792 1.94404 9.56565C2.23719 10.2734 2.66687 10.9164 3.20854 11.4581C3.75022 11.9998 4.39328 12.4295 5.10101 12.7226C5.80875 13.0158 6.56729 13.1667 7.33333 13.1667C8.09938 13.1667 8.85792 13.0158 9.56565 12.7226C10.2734 12.4295 10.9164 11.9998 11.4581 11.4581C11.9998 10.9164 12.4295 10.2734 12.7226 9.56565C13.0158 8.85792 13.1667 8.09938 13.1667 7.33333C13.1667 6.56729 13.0158 5.80875 12.7226 5.10101C12.4295 4.39328 11.9998 3.75022 11.4581 3.20854C10.9164 2.66687 10.2734 2.23719 9.56565 1.94404C8.85792 1.65088 8.09938 1.5 7.33333 1.5C6.56729 1.5 5.80875 1.65088 5.10101 1.94404C4.39328 2.23719 3.75022 2.66687 3.20854 3.20854C2.66687 3.75022 2.23719 4.39328 1.94404 5.10101C1.65088 5.80875 1.5 6.56729 1.5 7.33333Z\"\r\n stroke={color ? color : \"white\"}\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n />\r\n </svg>\r\n );\r\n};\r\n","import BoxRaw from \"@mui/material/Box\";\r\n\r\nconst Box = BoxRaw?.default ?? BoxRaw;\r\n\r\nexport const Radius = {\r\n radius_0: \"0px\",\r\n radius_1: \"4px\",\r\n radius_2: \"8px\",\r\n radius_3: \"12px\",\r\n radius_4: \"16px\",\r\n radius_x: \"999px\",\r\n};\r\n\r\nexport const RadiusToken = ({\r\n radius = \"radius_0\",\r\n children,\r\n sx = {},\r\n ...rest\r\n}) => {\r\n const borderRadius = Radius[radius] ?? Radius.radius_0;\r\n\r\n return (\r\n <Box\r\n sx={{\r\n borderRadius,\r\n backgroundColor: \"#f5f5f5\",\r\n padding: \"16px\",\r\n display: \"inline-flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n ...sx,\r\n }}\r\n {...rest}\r\n >\r\n {children}\r\n </Box>\r\n );\r\n};\r\n\r\nexport default RadiusToken;\r\n","import MuiTypographyRaw from \"@mui/material/Typography\";\r\nimport { PrimitiveColor } from \"@/components/atoms/colors/primitive\";\r\nimport { DerivedColor } from \"@/components/atoms/colors/derived\";\r\n\r\nconst MuiTypography = MuiTypographyRaw?.default ?? MuiTypographyRaw;\r\n\r\nconst BASE_LINE_HEIGHT = 1.4;\r\nconst LETTER_SPACING = \"0px\";\r\n\r\nexport const TYPOGRAPHY_COLORS = {\r\n default: {\r\n value: DerivedColor.color_text_default,\r\n token: \"color_text_default\",\r\n alias: \"color_neutral_900\",\r\n },\r\n subtle: {\r\n value: DerivedColor.color_text_subtle,\r\n token: \"color_text_subtle\",\r\n alias: \"color_neutral_700\",\r\n },\r\n disabled: {\r\n value: DerivedColor.color_text_disabled,\r\n token: \"color_text_disabled\",\r\n alias: \"color_neutral_600\",\r\n },\r\n placeholder: {\r\n value: DerivedColor.color_text_placeholder,\r\n token: \"color_text_placeholder\",\r\n alias: \"color_neutral_400\",\r\n },\r\n inverse: {\r\n value: DerivedColor.color_text_inverse,\r\n token: \"color_text_inverse\",\r\n alias: \"color_neutral_50\",\r\n },\r\n primary: {\r\n value: DerivedColor.color_text_brand_primary,\r\n token: \"color_text_brand_primary\",\r\n alias: \"color_blue_cakrawala_500\",\r\n },\r\n secondary: {\r\n value: DerivedColor.color_text_brand_secondary,\r\n token: \"color_text_brand_secondary\",\r\n alias: \"color_blue_mentari_500\",\r\n },\r\n success: {\r\n value: DerivedColor.color_text_success,\r\n token: \"color_text_success\",\r\n alias: \"color_green_500\",\r\n },\r\n danger: {\r\n value: DerivedColor.color_text_danger,\r\n token: \"color_text_danger\",\r\n alias: \"color_red_500\",\r\n },\r\n warning: {\r\n value: DerivedColor.color_text_warning,\r\n token: \"color_text_warning\",\r\n alias: \"color_yellow_600\",\r\n },\r\n};\r\n\r\nexport const VariantStyles = {\r\n /* ================= HEADING (MUI standard) ================= */\r\n h1: {\r\n fontSize: \"96px\",\r\n fontWeight: 300,\r\n },\r\n h2: {\r\n fontSize: \"60px\",\r\n fontWeight: 300,\r\n },\r\n h3: {\r\n fontSize: \"48px\",\r\n fontWeight: 400,\r\n },\r\n h4: {\r\n fontSize: \"34px\",\r\n fontWeight: 400,\r\n },\r\n h5: {\r\n fontSize: \"24px\",\r\n fontWeight: 400,\r\n },\r\n h6: {\r\n fontSize: \"20px\",\r\n fontWeight: 500,\r\n },\r\n\r\n /* ================= HEADER 1 ================= */\r\n header1_regular: {\r\n fontSize: \"18px\",\r\n fontWeight: 400,\r\n },\r\n header1_semibold: {\r\n fontSize: \"18px\",\r\n fontWeight: 600,\r\n },\r\n header1_bold: {\r\n fontSize: \"18px\",\r\n fontWeight: 700,\r\n },\r\n\r\n /* ================= HEADER 2 ================= */\r\n header2_regular: {\r\n fontSize: \"20px\",\r\n fontWeight: 400,\r\n },\r\n header2_semibold: {\r\n fontSize: \"20px\",\r\n fontWeight: 600,\r\n },\r\n header2_bold: {\r\n fontSize: \"20px\",\r\n fontWeight: 700,\r\n },\r\n\r\n /* ================= BODY ================= */\r\n body1_regular: {\r\n fontSize: \"14px\",\r\n fontWeight: 400,\r\n },\r\n body1_semibold: {\r\n fontSize: \"14px\",\r\n fontWeight: 600,\r\n },\r\n body2_regular: {\r\n fontSize: \"16px\",\r\n fontWeight: 400,\r\n },\r\n body2_semibold: {\r\n fontSize: \"16px\",\r\n fontWeight: 600,\r\n },\r\n\r\n /* ================= CAPTION ================= */\r\n caption_regular: {\r\n fontSize: \"12px\",\r\n fontWeight: 400,\r\n },\r\n};\r\n\r\n\r\nexport const BaseTypography = ({\r\n variant = \"body1_regular.default\",\r\n children,\r\n sx,\r\n ...props\r\n}) => {\r\n let actualVariant = variant;\r\n let actualColor = \"default\";\r\n\r\n if (typeof variant === \"string\" && variant.includes(\".\")) {\r\n const [v, c] = variant.split(\".\");\r\n actualVariant = v;\r\n actualColor = c;\r\n }\r\n\r\n const variantStyle = VariantStyles[actualVariant];\r\n const colorStyle = TYPOGRAPHY_COLORS[actualColor];\r\n\r\n if (!variantStyle) {\r\n console.warn(`Unknown typography variant: ${actualVariant}`);\r\n return null;\r\n }\r\n if (!colorStyle) {\r\n console.warn(`Unknown typography color: ${actualColor}`);\r\n return null;\r\n }\r\n\r\n return (\r\n <MuiTypography\r\n {...props}\r\n sx={{\r\n fontFamily: \"inherit\",\r\n lineHeight: BASE_LINE_HEIGHT,\r\n letterSpacing: LETTER_SPACING,\r\n color: colorStyle.value,\r\n ...variantStyle,\r\n ...sx,\r\n }}\r\n >\r\n {children}\r\n </MuiTypography>\r\n );\r\n};\r\n\r\n","import { createElement, isValidElement, useMemo } from \"react\";\r\nimport AlertRaw from \"@mui/material/Alert\";\r\nimport AlertTitleRaw from \"@mui/material/AlertTitle\";\r\nimport BoxRaw from \"@mui/material/Box\";\r\nimport { DerivedColor } from \"@/components/atoms/colors/derived\";\r\nimport { PrimitiveColor } from \"@/components/atoms/colors/primitive\";\r\nimport { Radius } from \"@/components/atoms/radius/radius\";\r\nimport { VariantStyles } from \"@/components/atoms/typography/typography\";\r\nimport { SpacingToken } from \"@/components/atoms/spacing_layout/spacing\";\r\n\r\nimport { IconAlertCircle, IconCircleCheck, IconInfoCircle, IconAlertTriangle } from \"@tabler/icons-react\";\r\n\r\nconst Alert = AlertRaw?.default ?? AlertRaw;\r\nconst AlertTitle = AlertTitleRaw?.default ?? AlertTitleRaw;\r\nconst Box = BoxRaw?.default ?? BoxRaw;\r\n\r\nconst ALERT_CONFIG = {\r\n default: {\r\n bg: PrimitiveColor.color_neutral_200,\r\n iconColor: DerivedColor.color_icon_strong,\r\n defaultIcon: IconAlertCircle,\r\n },\r\n error: {\r\n bg: PrimitiveColor.color_red_100,\r\n iconColor: DerivedColor.color_icon_danger,\r\n defaultIcon: IconAlertCircle,\r\n },\r\n info: {\r\n bg: DerivedColor.color_bg_brand_primary_subtle,\r\n iconColor: DerivedColor.color_icon_brand_primary,\r\n defaultIcon: IconInfoCircle,\r\n },\r\n success: {\r\n bg: PrimitiveColor.color_green_100,\r\n iconColor: DerivedColor.color_icon_success,\r\n defaultIcon: IconCircleCheck,\r\n },\r\n warning: {\r\n bg: PrimitiveColor.color_yellow_100,\r\n iconColor: DerivedColor.color_icon_warning,\r\n defaultIcon: IconAlertTriangle,\r\n },\r\n};\r\n\r\nexport const BaseAlert = ({\r\n variant = \"default\",\r\n type = \"standard\",\r\n title,\r\n children,\r\n icon,\r\n color,\r\n sx = {},\r\n onClose,\r\n childrenSx = {},\r\n ...props\r\n}) => {\r\n const config = ALERT_CONFIG[variant] ?? ALERT_CONFIG.default;\r\n const hasChildrenSx = Object.keys(childrenSx).length > 0;\r\n\r\n const renderIcon = useMemo(() => {\r\n if (!icon) return false; // no icon prop = hide icon entirely\r\n if (isValidElement(icon)) return icon;\r\n if (typeof icon === \"function\")\r\n return createElement(icon, {\r\n size: 20,\r\n color: config.iconColor,\r\n });\r\n return false;\r\n }, [icon, config]);\r\n\r\n return (\r\n <Alert\r\n severity={variant === \"default\" ? undefined : variant}\r\n variant={type}\r\n icon={renderIcon}\r\n onClose={onClose}\r\n sx={{\r\n backgroundColor: color ?? config.bg,\r\n borderRadius: Radius.radius_2,\r\n \".MuiAlert-message\": { width: \"100%\" },\r\n ...sx,\r\n }}\r\n {...props}\r\n >\r\n {title && (\r\n <AlertTitle\r\n sx={{\r\n ...VariantStyles.body2_regular,\r\n marginBottom: SpacingToken.spacing2,\r\n fontWeight: 600,\r\n }}\r\n >\r\n {title}\r\n </AlertTitle>\r\n )}\r\n {hasChildrenSx ? (\r\n <Box component=\"span\" sx={childrenSx}>\r\n {children}\r\n </Box>\r\n ) : (\r\n children\r\n )}\r\n </Alert>\r\n );\r\n};\r\n","import BoxRaw from \"@mui/material/Box\";\r\n\r\nconst Box = BoxRaw?.default ?? BoxRaw;\r\n\r\nexport const Shadow = {\r\n elevation_0: {\r\n shadow: \"none\",\r\n surface: \"#FFFFFF\",\r\n },\r\n elevation_1: {\r\n shadow: \"0px 1px 2px rgba(0, 0, 0, 0.06)\",\r\n surface: \"#FFFFFF\",\r\n },\r\n elevation_2: {\r\n shadow: \"0px 2px 6px rgba(0, 0, 0, 0.08)\",\r\n surface: \"#FFFFFF\",\r\n },\r\n elevation_3: {\r\n shadow: \"0px 2px 6px rgba(0, 0, 0, 0.08)\",\r\n surface: \"#FFFFFF\",\r\n },\r\n elevation_4: {\r\n shadow: \"0px 6px 20px rgba(0, 0, 0, 0.16)\",\r\n surface: \"#FFFFFF\",\r\n },\r\n};\r\n\r\nexport const ShadowToken = ({\r\n level = \"elevation_0\",\r\n children,\r\n sx = {},\r\n ...rest\r\n}) => {\r\n const token = Shadow[level] || Shadow.elevation_0;\r\n\r\n return (\r\n <Box\r\n sx={{\r\n backgroundColor: token.surface,\r\n boxShadow: token.shadow,\r\n ...sx,\r\n }}\r\n {...rest}\r\n >\r\n {children}\r\n </Box>\r\n );\r\n};\r\n\r\nexport default ShadowToken;\r\n","import ButtonBaseRaw from \"@mui/material/ButtonBase\";\r\nimport BoxRaw from \"@mui/material/Box\";\r\nimport { DerivedColor } from \"@/components/atoms/colors/derived\";\r\nimport { PrimitiveColor } from \"@/components/atoms/colors/primitive\";\r\nimport { Radius } from \"@/components/atoms/radius/radius\";\r\nimport { VariantStyles } from \"@/components/atoms/typography/typography\";\r\nimport { SpacingToken } from \"@/components/atoms/spacing_layout/spacing\";\r\n\r\nconst ButtonBase = ButtonBaseRaw?.default ?? ButtonBaseRaw;\r\nconst Box = BoxRaw?.default ?? BoxRaw;\r\n\r\nconst WHITE = DerivedColor.color_text_inverse;\r\n\r\nconst SIZE_TYPOGRAPHY = {\r\n large: \"body2_regular\",\r\n small: \"body1_regular\",\r\n};\r\n\r\nconst DISABLED_BG = DerivedColor.color_bg_disabled;\r\nconst DISABLED_TEXT = DerivedColor.color_text_disabled;\r\n\r\n// ============================================================\r\n// COLOR MAPPING (color prop → DerivedColor tokens)\r\n// ============================================================\r\n\r\nconst FILL_COLORS = {\r\n primary: {\r\n bg: DerivedColor.color_bg_brand_primary,\r\n hover: DerivedColor.color_bg_brand_primary_strong,\r\n },\r\n secondary: {\r\n bg: DerivedColor.color_bg_brand_secondary,\r\n hover: DerivedColor.color_bg_brand_secondary_strong,\r\n },\r\n success: {\r\n bg: DerivedColor.color_bg_success,\r\n hover: DerivedColor.color_bg_success_strong,\r\n },\r\n warning: {\r\n bg: DerivedColor.color_bg_warning,\r\n hover: DerivedColor.color_bg_warning_strong,\r\n },\r\n danger: {\r\n bg: DerivedColor.color_bg_danger,\r\n hover: DerivedColor.color_bg_danger_strong,\r\n },\r\n};\r\n\r\nconst OUTLINE_COLORS = {\r\n primary: {\r\n border: DerivedColor.color_border_brand_primary,\r\n text: DerivedColor.color_text_brand_primary,\r\n hoverBg: DerivedColor.color_bg_brand_primary_subtle,\r\n },\r\n secondary: {\r\n border: DerivedColor.color_border_brand_secondary,\r\n text: DerivedColor.color_text_brand_secondary,\r\n hoverBg: DerivedColor.color_bg_brand_secondary_subtle,\r\n },\r\n success: {\r\n border: DerivedColor.color_border_success,\r\n text: DerivedColor.color_text_success,\r\n hoverBg: DerivedColor.color_bg_success_subtle,\r\n },\r\n warning: {\r\n border: DerivedColor.color_border_warning,\r\n text: DerivedColor.color_text_warning,\r\n hoverBg: DerivedColor.color_bg_warning_subtle,\r\n },\r\n danger: {\r\n border: DerivedColor.color_border_danger,\r\n text: DerivedColor.color_text_danger,\r\n hoverBg: DerivedColor.color_bg_danger_subtle,\r\n },\r\n};\r\n\r\n// ============================================================\r\n// CUSTOM COLOR HOVER UTILITY\r\n// Naik 1 tingkat dari PrimitiveColor scale (500 → 600, 300 → 400, dll)\r\n// ============================================================\r\n\r\nconst SCALE_ORDER = [100, 200, 300, 400, 500, 600, 700, 800, 900];\r\n\r\nfunction getHoverColor(primitiveKey) {\r\n if (!primitiveKey || !PrimitiveColor[primitiveKey]) return null;\r\n\r\n // Parse: \"color_blue_cakrawala_500\" → prefix=\"color_blue_cakrawala\", level=500\r\n const parts = primitiveKey.split(\"_\");\r\n const level = parseInt(parts[parts.length - 1], 10);\r\n\r\n if (isNaN(level)) return null;\r\n\r\n const prefix = parts.slice(0, -1).join(\"_\");\r\n const currentIndex = SCALE_ORDER.indexOf(level);\r\n\r\n if (currentIndex === -1) return null;\r\n\r\n // Naik 1 tingkat (index + 1 = darker)\r\n const nextLevel = SCALE_ORDER[Math.min(currentIndex + 1, SCALE_ORDER.length - 1)];\r\n const hoverKey = `${prefix}_${nextLevel}`;\r\n\r\n return PrimitiveColor[hoverKey] || PrimitiveColor[primitiveKey];\r\n}\r\n\r\n// ============================================================\r\n// COMPONENT\r\n// ============================================================\r\n\r\nexport const BaseButton = ({\r\n onClick = () => {},\r\n children = null,\r\n variant = \"fill\",\r\n color = \"primary\",\r\n customColor = null,\r\n size = \"large\",\r\n disabled = false,\r\n startIcon = null,\r\n endIcon = null,\r\n width = \"100%\",\r\n sx = {},\r\n ...rest\r\n}) => {\r\n const isFill = variant.includes(\"fill\") || variant === \"fab\";\r\n const isOutline = variant.includes(\"outline\");\r\n const isText = variant === \"text\";\r\n\r\n // Jika customColor dipakai, color prop diabaikan\r\n const useCustom = !!customColor;\r\n const customColorValue = useCustom ? PrimitiveColor[customColor] : null;\r\n const customHoverValue = useCustom ? getHoverColor(customColor) : null;\r\n\r\n // Resolve warna berdasarkan variant + color/customColor\r\n const getBackgroundColor = () => {\r\n if (disabled) return isFill ? DISABLED_BG : \"transparent\";\r\n if (useCustom) return isFill ? customColorValue : \"transparent\";\r\n if (isFill) return FILL_COLORS[color]?.bg || FILL_COLORS.primary.bg;\r\n return \"transparent\";\r\n };\r\n\r\n const getTextColor = () => {\r\n if (disabled) return DISABLED_TEXT;\r\n if (isFill) return WHITE;\r\n if (useCustom) return customColorValue;\r\n if (isOutline) return OUTLINE_COLORS[color]?.text || OUTLINE_COLORS.primary.text;\r\n if (isText) return OUTLINE_COLORS[color]?.text || OUTLINE_COLORS.primary.text;\r\n return DerivedColor.color_text_default;\r\n };\r\n\r\n const getBorderColor = () => {\r\n if (!isOutline) return \"none\";\r\n if (disabled) return `1.5px solid ${DISABLED_BG}`;\r\n if (useCustom) return `1.5px solid ${customColorValue}`;\r\n return `1.5px solid ${OUTLINE_COLORS[color]?.border || OUTLINE_COLORS.primary.border}`;\r\n };\r\n\r\n const getHoverBg = () => {\r\n if (disabled) return undefined;\r\n if (useCustom) {\r\n return isFill ? customHoverValue : customColorValue + \"1A\"; // 10% opacity for outline\r\n }\r\n if (isFill) return FILL_COLORS[color]?.hover || FILL_COLORS.primary.hover;\r\n if (isOutline) return OUTLINE_COLORS[color]?.hoverBg || OUTLINE_COLORS.primary.hoverBg;\r\n return undefined;\r\n };\r\n\r\n const getRadius = () => {\r\n switch (variant) {\r\n case \"text\":\r\n return Radius.radius_0;\r\n case \"fill\":\r\n case \"outline\":\r\n return Radius.radius_2;\r\n case \"fab\":\r\n case \"ellipse-fill\":\r\n case \"ellipse-outline\":\r\n return Radius.radius_x;\r\n default:\r\n return Radius.radius_2;\r\n }\r\n };\r\n\r\n const typographyStyle = VariantStyles[SIZE_TYPOGRAPHY[size]];\r\n\r\n return (\r\n <ButtonBase\r\n disabled={disabled}\r\n onClick={onClick}\r\n sx={{\r\n width,\r\n height: \"40px\",\r\n padding: `${SpacingToken.spacing0} ${SpacingToken.spacing4}`,\r\n borderRadius: getRadius(),\r\n display: \"inline-flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n ...typographyStyle,\r\n\r\n backgroundColor: getBackgroundColor(),\r\n color: getTextColor(),\r\n border: getBorderColor(),\r\n\r\n cursor: disabled ? \"not-allowed\" : \"pointer\",\r\n opacity: 1,\r\n userSelect: \"none\",\r\n transition: \"all 0.15s ease-in-out\",\r\n\r\n \"&:hover\": {\r\n boxShadow: !disabled ? \"0 2px 4px rgba(0,0,0,0.1)\" : \"none\",\r\n backgroundColor: getHoverBg(),\r\n },\r\n\r\n \"&:active\": {\r\n transform: !disabled ? \"scale(0.97)\" : \"none\",\r\n },\r\n\r\n ...sx,\r\n }}\r\n {...rest}\r\n >\r\n {startIcon && (\r\n <Box\r\n component=\"span\"\r\n sx={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n lineHeight: 0,\r\n mr: children ? \"4px\" : 0,\r\n }}\r\n >\r\n {startIcon}\r\n </Box>\r\n )}\r\n\r\n {children}\r\n\r\n {endIcon && (\r\n <Box\r\n component=\"span\"\r\n sx={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n lineHeight: 0,\r\n ml: children ? \"4px\" : 0,\r\n }}\r\n >\r\n {endIcon}\r\n </Box>\r\n )}\r\n </ButtonBase>\r\n );\r\n};\r\n","import SkeletonRaw from \"@mui/material/Skeleton\";\r\nimport BoxRaw from \"@mui/material/Box\";\r\nimport { Radius } from \"@/components/atoms/radius/radius\";\r\nimport { SpacingToken } from \"@/components/atoms/spacing_layout/spacing\";\r\n\r\nconst Skeleton = SkeletonRaw?.default ?? SkeletonRaw;\r\nconst Box = BoxRaw?.default ?? BoxRaw;\r\n\r\n// ============================================================\r\n// COMPONENT\r\n// ============================================================\r\n\r\nexport const BaseSkeleton = ({\r\n variant = \"rectangular\",\r\n animation = \"pulse\",\r\n width,\r\n height,\r\n count = 1,\r\n gap = SpacingToken.spacing2,\r\n sx = {},\r\n ...rest\r\n}) => {\r\n const getRadius = () => {\r\n switch (variant) {\r\n case \"circular\":\r\n return \"50%\";\r\n case \"rounded\":\r\n return Radius.radius_2;\r\n case \"text\":\r\n case \"rectangular\":\r\n default:\r\n return Radius.radius_0;\r\n }\r\n };\r\n\r\n const getDefaultHeight = () => {\r\n switch (variant) {\r\n case \"text\":\r\n return \"1.2em\";\r\n case \"circular\":\r\n return width || 40;\r\n case \"rectangular\":\r\n case \"rounded\":\r\n return height || 60;\r\n default:\r\n return height;\r\n }\r\n };\r\n\r\n const getDefaultWidth = () => {\r\n switch (variant) {\r\n case \"circular\":\r\n return height || 40;\r\n case \"text\":\r\n return \"100%\";\r\n case \"rectangular\":\r\n case \"rounded\":\r\n return width || \"100%\";\r\n default:\r\n return width;\r\n }\r\n };\r\n\r\n const skeletonProps = {\r\n variant: variant === \"rounded\" ? \"rectangular\" : variant,\r\n animation: animation === \"none\" ? false : animation,\r\n width: getDefaultWidth(),\r\n height: getDefaultHeight(),\r\n sx: {\r\n borderRadius: getRadius(),\r\n ...sx,\r\n },\r\n ...rest,\r\n };\r\n\r\n if (count <= 1) {\r\n return <Skeleton {...skeletonProps} />;\r\n }\r\n\r\n return (\r\n <Box sx={{ display: \"flex\", flexDirection: \"column\", gap }}>\r\n {Array.from({ length: count }).map((_, index) => (\r\n <Skeleton key={index} {...skeletonProps} />\r\n ))}\r\n </Box>\r\n );\r\n};\r\n","'use client';\r\nimport SwitchRaw from \"@mui/material/Switch\";\r\nimport { styled } from \"@mui/material/styles\";\r\nimport { useEffect, useState } from \"react\";\r\n\r\nimport { DerivedColor } from \"@/components/atoms/colors/derived\";\r\nimport { Radius } from \"@/components/atoms/radius/radius\";\r\nimport { SpacingToken } from \"@/components/atoms/spacing_layout/spacing\";\r\nimport { VariantStyles } from \"@/components/atoms/typography/typography\";\r\n\r\nconst Switch = SwitchRaw?.default ?? SwitchRaw;\r\n\r\nconst AntSwitch = styled(Switch)(({ theme }) => ({\r\n width: \"34px\",\r\n height: \"18px\",\r\n padding: 0,\r\n display: \"flex\",\r\n\r\n \"&:active\": {\r\n \"& .MuiSwitch-thumb\": { width: 15 },\r\n \"& .MuiSwitch-switchBase.Mui-checked\": {\r\n transform: \"translateX(9px)\",\r\n },\r\n },\r\n\r\n \"& .MuiSwitch-switchBase\": {\r\n padding: SpacingToken.spacing1,\r\n\r\n \"&.Mui-checked\": {\r\n transform: \"translateX(16px)\",\r\n color: DerivedColor.color_bg_surface,\r\n\r\n \"& + .MuiSwitch-track\": {\r\n opacity: 1,\r\n backgroundColor: DerivedColor.color_bg_brand_primary,\r\n },\r\n },\r\n },\r\n\r\n \"& .MuiSwitch-thumb\": {\r\n boxShadow: \"0 2px 4px 0 rgb(0 35 11 / 20%)\",\r\n width: \"10px\",\r\n height: \"10px\",\r\n borderRadius: Radius.radius_x,\r\n transition: theme.transitions.create([\"width\"], { duration: 200 }),\r\n backgroundColor: DerivedColor.color_bg_surface,\r\n },\r\n\r\n \"& .MuiSwitch-track\": {\r\n borderRadius: Radius.radius_x,\r\n opacity: 1,\r\n backgroundColor:\r\n theme.palette.mode === \"dark\"\r\n ? DerivedColor.color_text_disabled\r\n : DerivedColor.color_text_placeholder,\r\n boxSizing: \"border-box\",\r\n },\r\n}));\r\n\r\nexport const BaseSwitch = ({\r\n status = false,\r\n label,\r\n labelPlacement = \"end\", // start | end | top | bottom\r\n isDisabled = false,\r\n onChange,\r\n}) => {\r\n const [checked, setChecked] = useState(status);\r\n\r\n useEffect(() => {\r\n setChecked(status);\r\n }, [status]);\r\n\r\n const handleChange = (event) => {\r\n setChecked(event.target.checked);\r\n onChange?.(event);\r\n };\r\n\r\n const layoutMap = {\r\n start: {\r\n gridAutoFlow: \"column dense\",\r\n direction: \"rtl\",\r\n },\r\n end: {\r\n gridAutoFlow: \"column\",\r\n direction: \"ltr\",\r\n },\r\n top: {\r\n gridAutoFlow: \"row\",\r\n direction: \"ltr\",\r\n },\r\n bottom: {\r\n gridAutoFlow: \"row dense\",\r\n direction: \"rtl\",\r\n },\r\n };\r\n\r\n const layout = layoutMap[labelPlacement] || layoutMap.end;\r\n\r\n return (\r\n <div\r\n style={{\r\n display: \"grid\",\r\n gap: SpacingToken.spacing2,\r\n alignItems: \"center\",\r\n justifyItems: \"start\",\r\n gridAutoFlow: layout.gridAutoFlow,\r\n direction: layout.direction,\r\n }}\r\n >\r\n <AntSwitch\r\n checked={checked}\r\n onChange={handleChange}\r\n disabled={isDisabled}\r\n inputProps={{ \"aria-label\": \"controlled\" }}\r\n />\r\n\r\n {label ? (\r\n <p\r\n style={{\r\n ...VariantStyles.body1_regular,\r\n color: isDisabled\r\n ? DerivedColor.color_text_placeholder\r\n : DerivedColor.color_text_default,\r\n margin: 0,\r\n }}\r\n >\r\n {label}\r\n </p>\r\n ) : null}\r\n </div>\r\n );\r\n};\r\n","import ChipRaw from \"@mui/material/Chip\";\r\nimport BoxRaw from \"@mui/material/Box\";\r\nimport { IconCircleCheck, IconCircleX } from \"@tabler/icons-react\";\r\nimport { DerivedColor } from \"@/components/atoms/colors/derived\";\r\nimport { PrimitiveColor } from \"@/components/atoms/colors/primitive\";\r\nimport { Radius } from \"@/components/atoms/radius/radius\";\r\n\r\nconst Chip = ChipRaw?.default ?? ChipRaw;\r\nconst Box = BoxRaw?.default ?? BoxRaw;\r\n\r\nconst TYPE_STYLES = {\r\n success: {\r\n color: PrimitiveColor.color_green_500,\r\n backgroundColor: PrimitiveColor.color_green_100,\r\n icon: <IconCircleCheck size={18} color={PrimitiveColor.color_green_500} />,\r\n },\r\n danger: {\r\n color: PrimitiveColor.color_red_500,\r\n backgroundColor: PrimitiveColor.color_red_100,\r\n icon: <IconCircleX size={18} color={PrimitiveColor.color_red_500} />,\r\n },\r\n warning: {\r\n color: PrimitiveColor.color_yellow_600,\r\n backgroundColor: PrimitiveColor.color_yellow_100,\r\n icon: null,\r\n },\r\n info: {\r\n color: PrimitiveColor.color_blue_cakrawala_500,\r\n backgroundColor: PrimitiveColor.color_blue_cakrawala_100,\r\n icon: null,\r\n },\r\n default: {\r\n color: DerivedColor.color_text_default,\r\n backgroundColor: PrimitiveColor.color_neutral_200,\r\n icon: null,\r\n },\r\n};\r\n\r\nexport const BaseChip = ({\r\n label = \"\",\r\n type = \"default\",\r\n variant = \"filled\",\r\n startIcon = null,\r\n onDelete,\r\n onClick,\r\n disabled = false,\r\n fullWidth = false,\r\n showIcon = true,\r\n sx = {},\r\n ...rest\r\n}) => {\r\n const typeStyle = TYPE_STYLES[type] || TYPE_STYLES.default;\r\n\r\n const resolvedIcon = showIcon ? (startIcon || typeStyle.icon) : null;\r\n\r\n return (\r\n <Chip\r\n label={label}\r\n variant={variant === \"outlined\" ? \"outlined\" : \"filled\"}\r\n icon={resolvedIcon || undefined}\r\n onDelete={onDelete}\r\n onClick={onClick}\r\n disabled={disabled}\r\n sx={{\r\n fontWeight: 600,\r\n fontSize: 14,\r\n borderRadius: Radius.radius_2,\r\n color: variant === \"outlined\" ? typeStyle.color : typeStyle.color,\r\n backgroundColor: variant === \"outlined\" ? \"transparent\" : typeStyle.backgroundColor,\r\n borderColor: variant === \"outlined\" ? typeStyle.color : \"transparent\",\r\n width: fullWidth ? \"100%\" : \"auto\",\r\n px: \"8px\",\r\n \".MuiChip-label\": {\r\n px: \"8px\",\r\n },\r\n \".MuiChip-icon\": {\r\n margin: 0,\r\n },\r\n cursor: onClick ? \"pointer\" : \"default\",\r\n ...sx,\r\n }}\r\n {...rest}\r\n />\r\n );\r\n};\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import React, { CSSProperties, useEffect, useState } from 'react';\n\n/**\n * props for Watermark component\n */\nexport interface WatermarkProps {\n /**\n * show watermark or not\n */\n show?: boolean;\n /**\n * text content of watermark\n */\n text: string;\n /**\n * text color of watermark, apply to svg fill attribute\n */\n textColor?: string;\n /**\n * text size of watermark, apply to svg font-size attribute\n */\n textSize?: number;\n /**\n * font family of watermark, apply to svg font-family attribute\n */\n fontFamily?: string;\n /**\n * line height of watermark, it will be applied to svg tspan dy attribute\n * only works when multiline is true\n */\n lineHeight?: string;\n /**\n * whether watermark is multiline or not\n * text will be split by '\\n', and wrapped by svg tspan\n * default is false\n */\n multiline?: boolean;\n /**\n * opacity of watermark, apply to svg opacity attribute\n */\n opacity?: number;\n /**\n * rotate degree of watermark, apply to svg transform attribute\n */\n rotate?: number;\n /**\n * gutter between text\n */\n gutter?: number;\n /**\n * style of wrapper element\n */\n wrapperStyle?: CSSProperties;\n /**\n * element of wrapper, default is div\n */\n wrapperElement?: React.ElementType;\n /**\n * overlapping level of watermark element\n */\n zIndex?: number;\n /**\n * in react18, FC needs a definition of children\n */\n children?: React.ReactNode;\n}\n\n/**\n * generate svg string for watermark\n */\nfunction generateSvg(options: Required<Omit<WatermarkProps, 'wrapperStyle' | 'wrapperElement' | 'show' | 'zIndex' | 'children'>>) {\n const { text, textColor, textSize, fontFamily, lineHeight, multiline, opacity, gutter, rotate } = options;\n const rect = calcTextRenderedRect(text, textSize, lineHeight, fontFamily);\n const size = Math.sqrt(rect.width * rect.width + rect.height * rect.height) + gutter * 2;\n const center = size / 2;\n\n let textContent = text;\n if (multiline) {\n const texts = text.split('\\n').map((textByLine, index) => {\n return `<tspan x='50%' dy='${index === 0 ? '0' : lineHeight}'>${textByLine}</tspan>`;\n });\n textContent = texts.join('');\n }\n\n const textEl = `<text fill='${textColor}' x='50%' y='50%' font-size='${textSize}' text-anchor='middle' font-family='${fontFamily}' transform='rotate(${rotate} ${center} ${center})' opacity='${opacity}'>${textContent}</text>`;\n\n return `<svg width='${size}' height='${size / 1.5}' xmlns='http://www.w3.org/2000/svg'>${textEl}</svg>`;\n}\n\nfunction calcTextRenderedRect(text: string, fontSize: number, lineHeight: string, fontFamily: string): DOMRect {\n const span = document.createElement('span');\n span.innerText = text;\n span.style.fontSize = fontSize + 'px';\n span.style.fontFamily = fontFamily;\n span.style.visibility = 'hidden';\n document.body.appendChild(span);\n const rect = span.getBoundingClientRect();\n document.body.removeChild(span);\n return rect;\n}\n\nconst watermarkWrapperStyle: CSSProperties = {\n position: 'relative'\n};\n\nconst Watermark: React.FC<WatermarkProps> = ({\n show = true,\n text,\n textColor = '#cccccc',\n textSize = 24,\n fontFamily = 'Arial, Helvetica, sans-serif',\n opacity = 0.2,\n lineHeight = '1.2rem',\n multiline = false,\n wrapperStyle,\n wrapperElement = 'div',\n gutter = 0,\n rotate = -45,\n zIndex = 1,\n children\n}) => {\n const [backgroundImage, setBackgroundImage] = useState<string>('');\n\n useEffect(() => {\n const svg = generateSvg({ text, textColor, textSize, fontFamily, opacity, gutter, rotate, multiline, lineHeight });\n const convertedSvg = encodeURIComponent(svg)\n .replace(/'/g, '%27')\n .replace(/\"/g, '%22');\n setBackgroundImage(`url(\"data:image/svg+xml,${convertedSvg}\")`);\n }, [show, text, textColor, textSize, opacity, gutter, rotate]);\n\n const watermarkStyle: CSSProperties = {\n pointerEvents: 'none',\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n content: '',\n backgroundRepeat: 'repeat',\n zIndex,\n backgroundImage\n };\n\n const Wrapper = wrapperElement;\n\n return (\n <Wrapper style={{ ...watermarkWrapperStyle, ...wrapperStyle }}>\n {show && <div style={watermarkStyle} />}\n {children}\n </Wrapper>\n );\n};\n\nexport default Watermark;\n","import { useState } from \"react\";\r\nimport MuiCardRaw from \"@mui/material/Card\";\r\nimport BoxRaw from \"@mui/material/Box\";\r\nimport CollapseRaw from \"@mui/material/Collapse\";\r\nimport IconButtonRaw from \"@mui/material/IconButton\";\r\nimport KeyboardArrowDownIconRaw from \"@mui/icons-material/KeyboardArrowDown\";\r\nimport KeyboardArrowUpIconRaw from \"@mui/icons-material/KeyboardArrowUp\";\r\nimport { Watermark } from \"@hirohe/react-watermark\";\r\nimport { DerivedColor } from \"@/components/atoms/colors/derived\";\r\nimport { Radius } from \"@/components/atoms/radius/radius\";\r\nimport { SpacingToken } from \"@/components/atoms/spacing_layout/spacing\";\r\nimport { BaseTypography } from \"@/components/atoms/typography\";\r\n\r\nconst MuiCard = MuiCardRaw?.default ?? MuiCardRaw;\r\nconst Box = BoxRaw?.default ?? BoxRaw;\r\nconst Collapse = CollapseRaw?.default ?? CollapseRaw;\r\nconst IconButton = IconButtonRaw?.default ?? IconButtonRaw;\r\nconst KeyboardArrowDownIcon =\r\n KeyboardArrowDownIconRaw?.default ?? KeyboardArrowDownIconRaw;\r\nconst KeyboardArrowUpIcon =\r\n KeyboardArrowUpIconRaw?.default ?? KeyboardArrowUpIconRaw;\r\n\r\n// ============================================================\r\n// COLOR MAPPING\r\n// ============================================================\r\n\r\n\r\nconst HEADER_COLORS = {\r\n primary: DerivedColor.color_bg_brand_primary,\r\n secondary: DerivedColor.color_bg_brand_secondary,\r\n success: DerivedColor.color_bg_success,\r\n warning: DerivedColor.color_bg_warning,\r\n danger: DerivedColor.color_bg_danger,\r\n clean: DerivedColor.color_bg_surface,\r\n};\r\n\r\nconst HEADER_TEXT_COLORS = {\r\n primary: DerivedColor.color_bg_surface,\r\n secondary: DerivedColor.color_bg_surface,\r\n success: DerivedColor.color_bg_surface,\r\n warning: DerivedColor.color_bg_surface,\r\n danger: DerivedColor.color_bg_surface,\r\n clean: DerivedColor.color_text_brand_primary,\r\n};\r\n\r\nconst HEADER_ICON_COLORS = {\r\n primary: DerivedColor.color_bg_surface,\r\n secondary: DerivedColor.color_bg_surface,\r\n success: DerivedColor.color_bg_surface,\r\n warning: DerivedColor.color_bg_surface,\r\n danger: DerivedColor.color_bg_surface,\r\n clean: DerivedColor.color_text_subtle,\r\n};\r\n\r\n// ============================================================\r\n// COMPONENT\r\n// ============================================================\r\n\r\nexport const BaseCard = ({\r\n variant = \"default\",\r\n children = null,\r\n color = \"primary\",\r\n title = \"\",\r\n subtitle = \"\",\r\n subtitleVariant,\r\n boldTitle = false,\r\n boldSubtitle = false,\r\n showSubtitle = false,\r\n isCollapsible = true,\r\n startIcon = null,\r\n endIcon = null,\r\n showStartIcon = false,\r\n showEndIcon = false,\r\n footer = null,\r\n isWatermark = false,\r\n watermarkText = \"\",\r\n sx = {},\r\n ...rest\r\n}) => {\r\n const [open, setOpen] = useState(true);\r\n\r\n // Parse variant: \"with-header.header1_bold\" → baseVariant=\"with-header\", titleTypography=\"header1_bold\"\r\n // Default titleTypography: \"header1_semibold\"\r\n let baseVariant = variant;\r\n let titleTypography = \"header1_semibold\";\r\n\r\n if (variant && variant.includes(\".\")) {\r\n const [v, t] = variant.split(\".\");\r\n baseVariant = v;\r\n titleTypography = t;\r\n }\r\n\r\n const headerBg = HEADER_COLORS[color] || HEADER_COLORS.primary;\r\n const headerTextColor = HEADER_TEXT_COLORS[color] || HEADER_TEXT_COLORS.primary;\r\n const headerIconColor = HEADER_ICON_COLORS[color] || HEADER_ICON_COLORS.primary;\r\n const cardBg = DerivedColor.color_bg_surface;\r\n const borderColor = DerivedColor.color_border_default;\r\n\r\n // ====================== HEADER RENDERER ======================\r\n const renderHeaderContent = () => (\r\n <Box\r\n onClick={() => isCollapsible && setOpen(!open)}\r\n sx={{\r\n backgroundColor: headerBg,\r\n padding: SpacingToken.spacing4,\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n cursor: isCollapsible ? \"pointer\" : \"default\",\r\n borderTopLeftRadius: Radius.radius_2,\r\n borderTopRightRadius: Radius.radius_2,\r\n }}\r\n >\r\n <Box sx={{ display: \"flex\", alignItems: \"center\", gap: \"8px\" }}>\r\n {showStartIcon && startIcon && (\r\n <Box sx={{ display: \"flex\", alignItems: \"center\", lineHeight: 0 }}>\r\n {startIcon}\r\n </Box>\r\n )}\r\n\r\n <Box>\r\n <BaseTypography variant={`${titleTypography}.default`} sx={{ color: headerTextColor }}>\r\n {title}\r\n </BaseTypography>\r\n\r\n {showSubtitle && subtitle && (\r\n subtitleVariant ? (\r\n <BaseTypography variant={subtitleVariant} sx={{ color: headerTextColor, mt: \"2px\" }}>\r\n {subtitle}\r\n </BaseTypography>\r\n ) : (\r\n <Box\r\n component=\"span\"\r\n sx={{\r\n color: headerTextColor,\r\n fontWeight: boldSubtitle ? 700 : 400,\r\n fontSize: \"13px\",\r\n display: \"block\",\r\n mt: \"2px\",\r\n }}\r\n >\r\n {subtitle}\r\n </Box>\r\n )\r\n )}\r\n </Box>\r\n </Box>\r\n\r\n <Box sx={{ display: \"flex\", alignItems: \"center\", gap: \"8px\" }}>\r\n {showEndIcon && endIcon && (\r\n <Box sx={{ display: \"flex\", alignItems: \"center\", lineHeight: 0 }}>\r\n {endIcon}\r\n </Box>\r\n )}\r\n\r\n {isCollapsible && (\r\n <IconButton\r\n size=\"small\"\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n setOpen(!open);\r\n }}\r\n sx={{ color: headerIconColor }}\r\n >\r\n {open ? <KeyboardArrowUpIcon /> : <KeyboardArrowDownIcon />}\r\n </IconButton>\r\n )}\r\n </Box>\r\n </Box>\r\n );\r\n\r\n // ====================== CONTENT RENDERER ======================\r\n const renderContent = () => (\r\n <Collapse in={!isCollapsible || open} timeout={300}>\r\n <Box\r\n sx={{\r\n padding: SpacingToken.spacing4,\r\n backgroundColor: cardBg,\r\n }}\r\n >\r\n {isWatermark && watermarkText ? (\r\n <Watermark\r\n text={watermarkText}\r\n textColor=\"#000000\"\r\n textSize={14}\r\n opacity={0.15}\r\n gutter={20}\r\n rotate={-30}\r\n wrapperStyle={{ minHeight: \"100px\", position: \"relative\" }}\r\n >\r\n {children}\r\n </Watermark>\r\n ) : (\r\n children\r\n )}\r\n </Box>\r\n </Collapse>\r\n );\r\n\r\n // ====================== DEFAULT ======================\r\n if (baseVariant === \"default\") {\r\n return (\r\n <MuiCard\r\n sx={{\r\n borderRadius: Radius.radius_2,\r\n backgroundColor: cardBg,\r\n border: `1px solid ${borderColor}`,\r\n overflow: isWatermark ? \"hidden\" : \"visible\",\r\n boxShadow: \"none\",\r\n padding: SpacingToken.spacing4,\r\n position: \"relative\",\r\n ...sx,\r\n }}\r\n {...rest}\r\n >\r\n {isWatermark && watermarkText ? (\r\n <Watermark\r\n text={watermarkText}\r\n textColor=\"#000000\"\r\n textSize={14}\r\n opacity={0.15}\r\n gutter={20}\r\n rotate={-30}\r\n wrapperStyle={{ minHeight: \"100px\", position: \"relative\" }}\r\n >\r\n {children}\r\n </Watermark>\r\n ) : (\r\n children\r\n )}\r\n </MuiCard>\r\n );\r\n }\r\n\r\n // ====================== WITH-HEADER ======================\r\n if (baseVariant === \"with-header\") {\r\n return (\r\n <MuiCard\r\n sx={{\r\n borderRadius: Radius.radius_2,\r\n border: `1px solid ${borderColor}`,\r\n overflow: isWatermark ? \"hidden\" : \"visible\",\r\n boxShadow: \"none\",\r\n ...sx,\r\n }}\r\n {...rest}\r\n >\r\n {renderHeaderContent()}\r\n {renderContent()}\r\n </MuiCard>\r\n );\r\n }\r\n\r\n // ====================== WITH-HEADER-FOOTER ======================\r\n if (baseVariant === \"with-header-footer\") {\r\n return (\r\n <MuiCard\r\n sx={{\r\n borderRadius: Radius.radius_2,\r\n border: `1px solid ${borderColor}`,\r\n overflow: isWatermark ? \"hidden\" : \"visible\",\r\n boxShadow: \"none\",\r\n ...sx,\r\n }}\r\n {...rest}\r\n >\r\n {renderHeaderContent()}\r\n {renderContent()}\r\n\r\n {/* Footer */}\r\n {footer && (\r\n <Box\r\n sx={{\r\n padding: SpacingToken.spacing4,\r\n borderTop: `1px solid ${borderColor}`,\r\n backgroundColor: cardBg,\r\n }}\r\n >\r\n {footer}\r\n </Box>\r\n )}\r\n </MuiCard>\r\n );\r\n }\r\n\r\n // Fallback\r\n return (\r\n <MuiCard\r\n sx={{\r\n borderRadius: Radius.radius_2,\r\n backgroundColor: cardBg,\r\n border: `1px solid ${borderColor}`,\r\n overflow: \"visible\",\r\n boxShadow: \"none\",\r\n padding: SpacingToken.spacing4,\r\n ...sx,\r\n }}\r\n {...rest}\r\n >\r\n {children}\r\n </MuiCard>\r\n );\r\n};\r\n","import { isValidElement, createElement, useMemo } from \"react\";\r\nimport SnackbarRaw from \"@mui/material/Snackbar\";\r\nimport AlertRaw from \"@mui/material/Alert\";\r\nimport IconButtonRaw from \"@mui/material/IconButton\";\r\nimport { IconX } from \"@tabler/icons-react\";\r\nimport { DerivedColor } from \"@/components/atoms/colors/derived\";\r\nimport { PrimitiveColor } from \"@/components/atoms/colors/primitive\";\r\nimport { Radius } from \"@/components/atoms/radius/radius\";\r\n\r\nconst Snackbar = SnackbarRaw?.default ?? SnackbarRaw;\r\nconst Alert = AlertRaw?.default ?? AlertRaw;\r\nconst IconButton = IconButtonRaw?.default ?? IconButtonRaw;\r\n\r\nconst VARIANT_CONFIG = {\r\n success: {\r\n bg: PrimitiveColor.color_green_100,\r\n text: PrimitiveColor.color_green_700,\r\n },\r\n error: {\r\n bg: PrimitiveColor.color_red_100,\r\n text: PrimitiveColor.color_red_700,\r\n },\r\n info: {\r\n bg: PrimitiveColor.color_blue_cakrawala_100,\r\n text: PrimitiveColor.color_blue_cakrawala_700,\r\n },\r\n warning: {\r\n bg: PrimitiveColor.color_yellow_100,\r\n text: PrimitiveColor.color_yellow_700,\r\n },\r\n default: {\r\n bg: PrimitiveColor.color_neutral_200,\r\n text: PrimitiveColor.color_neutral_900,\r\n },\r\n};\r\n\r\nexport const BaseSnackbar = ({\r\n open = false,\r\n onClose,\r\n message,\r\n variant = \"info\",\r\n duration = 3000,\r\n position = { vertical: \"top\", horizontal: \"center\" },\r\n icon,\r\n sx = {},\r\n ...props\r\n}) => {\r\n const config = VARIANT_CONFIG[variant] ?? VARIANT_CONFIG.info;\r\n\r\n const renderIcon = useMemo(() => {\r\n if (!icon) return false;\r\n if (isValidElement(icon)) return icon;\r\n if (typeof icon === \"function\")\r\n return createElement(icon, { size: 20, color: config.text });\r\n return false;\r\n }, [icon, config]);\r\n\r\n return (\r\n <Snackbar\r\n open={open}\r\n autoHideDuration={duration}\r\n onClose={onClose}\r\n anchorOrigin={position}\r\n {...props}\r\n >\r\n <Alert\r\n severity={variant === \"default\" ? undefined : variant}\r\n variant=\"filled\"\r\n icon={renderIcon}\r\n action={\r\n onClose ? (\r\n <IconButton\r\n aria-label=\"close\"\r\n onClick={onClose}\r\n sx={{\r\n color: config.text,\r\n p: 0.5,\r\n }}\r\n >\r\n <IconX size={18} />\r\n </IconButton>\r\n ) : null\r\n }\r\n sx={{\r\n backgroundColor: config.bg,\r\n color: config.text,\r\n borderRadius: Radius.radius_2,\r\n boxShadow: \"0px 4px 12px rgba(0, 0, 0, 0.15)\",\r\n alignItems: \"center\",\r\n \"& .MuiAlert-icon\": {\r\n color: config.text,\r\n },\r\n \"& .MuiAlert-message\": {\r\n color: config.text,\r\n fontWeight: 500,\r\n },\r\n \"& .MuiAlert-action\": {\r\n pt: 0,\r\n },\r\n ...sx,\r\n }}\r\n >\r\n {message}\r\n </Alert>\r\n </Snackbar>\r\n );\r\n};\r\n","import MuiCheckboxRaw from \"@mui/material/Checkbox\";\r\nimport FormControlLabelRaw from \"@mui/material/FormControlLabel\";\r\nimport FormGroupRaw from \"@mui/material/FormGroup\";\r\nimport BoxRaw from \"@mui/material/Box\";\r\nimport { IconSquare, IconSquareCheckFilled } from \"@tabler/icons-react\";\r\nimport { useController } from \"react-hook-form\";\r\nimport { BaseTypography } from \"@/components/atoms/typography\";\r\nimport { DerivedColor } from \"@/components/atoms/colors/derived\";\r\n\r\nconst MuiCheckbox = MuiCheckboxRaw?.default ?? MuiCheckboxRaw;\r\nconst FormControlLabel = FormControlLabelRaw?.default ?? FormControlLabelRaw;\r\nconst FormGroup = FormGroupRaw?.default ?? FormGroupRaw;\r\nconst Box = BoxRaw?.default ?? BoxRaw;\r\n\r\nexport const BaseCheckbox = ({\r\n name = \"\",\r\n control = null,\r\n defaultValue,\r\n title,\r\n options,\r\n label,\r\n disabled = false,\r\n labelPlacement = \"end\",\r\n isHorizontal = false,\r\n sx,\r\n ...restProps\r\n}) => {\r\n // Use react-hook-form if control is provided\r\n const hookForm = control\r\n ? useController({ control, name, defaultValue: defaultValue ?? [] })\r\n : null;\r\n\r\n const field = hookForm?.field;\r\n const formState = hookForm?.formState;\r\n const hasError = !!formState?.errors?.[name];\r\n\r\n // Resolve checked value\r\n const checkedValue = field ? field.value : restProps.checked;\r\n const handleChange = field\r\n ? (newVal) => field.onChange(newVal)\r\n : restProps.onChange;\r\n\r\n const isGroup = Array.isArray(options);\r\n\r\n const handleGroupChange = (optionValue, nextChecked) => {\r\n let newChecked = checkedValue ? [...checkedValue] : [];\r\n if (nextChecked) {\r\n if (!newChecked.includes(optionValue)) newChecked.push(optionValue);\r\n } else {\r\n newChecked = newChecked.filter((v) => v !== optionValue);\r\n }\r\n handleChange?.(newChecked);\r\n };\r\n\r\n const handleSingleChange = (e) => {\r\n if (field) {\r\n field.onChange(e.target.checked);\r\n } else {\r\n restProps.onChange?.(e.target.checked, e);\r\n }\r\n };\r\n\r\n // Error message\r\n const errorMessage = formState?.errors?.[name]?.message;\r\n\r\n // Icon color based on error\r\n const iconColor = hasError\r\n ? DerivedColor.color_text_danger\r\n : DerivedColor.color_border_default;\r\n const checkedIconColor = hasError\r\n ? DerivedColor.color_text_danger\r\n : DerivedColor.color_bg_brand_primary;\r\n\r\n if (isGroup) {\r\n return (\r\n <Box>\r\n {/* TITLE */}\r\n {title && (\r\n <BaseTypography\r\n variant=\"body1_regular.default\"\r\n sx={{\r\n fontWeight: 600,\r\n color: hasError\r\n ? DerivedColor.color_text_danger\r\n : DerivedColor.color_text_default,\r\n mb: \"4px\",\r\n }}\r\n >\r\n {title}\r\n </BaseTypography>\r\n )}\r\n\r\n <FormGroup row={isHorizontal} sx={{ gap: isHorizontal ? 2 : 0 }}>\r\n {options.map((option) => (\r\n <FormControlLabel\r\n key={option.value}\r\n label={option.label}\r\n labelPlacement={labelPlacement}\r\n sx={{\r\n \"& .MuiFormControlLabel-label\": { fontSize: \"14px\" },\r\n }}\r\n control={\r\n <MuiCheckbox\r\n checked={(checkedValue || []).includes(option.value)}\r\n onChange={(e) => handleGroupChange(option.value, e.target.checked)}\r\n icon={<IconSquare size={22} color={iconColor} />}\r\n checkedIcon={<IconSquareCheckFilled size={22} color={(option.disabled ?? disabled) ? DerivedColor.color_bg_disabled : checkedIconColor} />}\r\n disabled={option.disabled ?? disabled}\r\n sx={{\r\n \":hover\": { backgroundColor: \"#C0DBF1\" },\r\n }}\r\n {...(field ? {} : restProps)}\r\n />\r\n }\r\n />\r\n ))}\r\n </FormGroup>\r\n\r\n {/* ERROR */}\r\n {errorMessage && (\r\n <BaseTypography variant=\"body1_regular.danger\" sx={{ mt: \"4px\" }}>\r\n {errorMessage}\r\n </BaseTypography>\r\n )}\r\n </Box>\r\n );\r\n }\r\n\r\n return (\r\n <Box>\r\n {/* TITLE */}\r\n {title && (\r\n <BaseTypography\r\n variant=\"body1_regular.default\"\r\n sx={{\r\n fontWeight: 600,\r\n color: hasError\r\n ? DerivedColor.color_text_danger\r\n : DerivedColor.color_text_default,\r\n mb: \"4px\",\r\n }}\r\n >\r\n {title}\r\n </BaseTypography>\r\n )}\r\n\r\n <FormControlLabel\r\n label={label}\r\n labelPlacement={labelPlacement}\r\n sx={{\r\n \"& .MuiFormControlLabel-label\": { fontSize: \"14px\" },\r\n }}\r\n control={\r\n <MuiCheckbox\r\n checked={!!checkedValue}\r\n onChange={handleSingleChange}\r\n icon={<IconSquare size={22} color={iconColor} />}\r\n checkedIcon={<IconSquareCheckFilled size={22} color={disabled ? DerivedColor.color_bg_disabled : checkedIconColor} />}\r\n disabled={disabled}\r\n sx={{\r\n \":hover\": { backgroundColor: \"#C0DBF1\" },\r\n ...sx,\r\n }}\r\n {...(field ? {} : restProps)}\r\n />\r\n }\r\n />\r\n\r\n {/* ERROR */}\r\n {errorMessage && (\r\n <BaseTypography variant=\"body1_regular.danger\" sx={{ mt: \"4px\" }}>\r\n {errorMessage}\r\n </BaseTypography>\r\n )}\r\n </Box>\r\n );\r\n};\r\n","import KeyboardArrowRightRaw from \"@mui/icons-material/KeyboardArrowRight\";\r\nimport KeyboardArrowLeftRaw from \"@mui/icons-material/KeyboardArrowLeft\";\r\nimport IconButtonRaw from \"@mui/material/IconButton\";\r\n\r\nconst KeyboardArrowRight =\r\n KeyboardArrowRightRaw?.default ?? KeyboardArrowRightRaw;\r\nconst KeyboardArrowLeft =\r\n KeyboardArrowLeftRaw?.default ?? KeyboardArrowLeftRaw;\r\nconst IconButton = IconButtonRaw?.default ?? IconButtonRaw;\r\n\r\nexport const ServerSidePaginationActions = (props) => {\r\n const { page, onPageChange, rowsPerPage, currentPageData } = props;\r\n\r\n const handleBackButtonClick = () => {\r\n onPageChange(null, page - 1);\r\n };\r\n\r\n const handleNextButtonClick = () => {\r\n onPageChange(null, page + 1);\r\n };\r\n\r\n return (\r\n <>\r\n <IconButton onClick={handleBackButtonClick} disabled={page === 0}>\r\n <KeyboardArrowLeft />\r\n </IconButton>\r\n <IconButton\r\n onClick={handleNextButtonClick}\r\n disabled={\r\n !currentPageData?.length || currentPageData?.length < rowsPerPage\r\n }\r\n >\r\n <KeyboardArrowRight />\r\n </IconButton>\r\n </>\r\n );\r\n};\r\n","import { useMemo } from \"react\";\r\nimport BoxRaw from \"@mui/material/Box\";\r\nimport SelectRaw from \"@mui/material/Select\";\r\nimport MenuItemRaw from \"@mui/material/MenuItem\";\r\nimport IconButtonRaw from \"@mui/material/IconButton\";\r\nimport TablePaginationRaw from \"@mui/material/TablePagination\";\r\nimport { IconChevronLeft, IconChevronRight } from \"@tabler/icons-react\";\r\nimport { BaseTypography } from \"@/components/atoms/typography\";\r\nimport { DerivedColor } from \"@/components/atoms/colors/derived\";\r\nimport { PrimitiveColor } from \"@/components/atoms/colors/primitive\";\r\nimport { ServerSidePaginationActions } from \"@/components/molecules/datatable/serverside-pagination-actions\";\r\n\r\nconst Box = BoxRaw?.default ?? BoxRaw;\r\nconst Select = SelectRaw?.default ?? SelectRaw;\r\nconst MenuItem = MenuItemRaw?.default ?? MenuItemRaw;\r\nconst IconButton = IconButtonRaw?.default ?? IconButtonRaw;\r\nconst TablePagination = TablePaginationRaw?.default ?? TablePaginationRaw;\r\n\r\n// ============================================================\r\n// PAGINATION VARIANTS\r\n// ============================================================\r\n//\r\n// \"default\" → MUI TablePagination style:\r\n// \"Rows per page: 10 ▼ 1-10 of 26 < >\"\r\n//\r\n// \"numbered\" → Custom numbered page buttons (dari Figma):\r\n// \"Menampilkan 1-10 dari 100 data Baris per halaman: 10 ▼ < 1 2 3 >\"\r\n//\r\n// Props:\r\n// - variant: \"default\" | \"numbered\" (default: \"default\")\r\n// - showTotalCount: boolean (default: false)\r\n// Khusus variant \"numbered\":\r\n// Jika true → \"Menampilkan 1-10 dari 100 data\"\r\n// Jika false → \"Menampilkan 1-10\"\r\n// - serverSide: boolean\r\n// - page: number (0-indexed)\r\n// - rowsPerPage: number\r\n// - count: total items (-1 jika unknown)\r\n// - onPageChange: (event, newPage) => void\r\n// - onRowsPerPageChange: (event, newRowsPerPage) => void\r\n// - rowsPerPageOptions: number[]\r\n// - labelRowsPerPage: string\r\n// - currentPageDataLength: number (untuk serverSide tanpa count)\r\n// ============================================================\r\n\r\n/**\r\n * Generate visible page numbers.\r\n * Returns array of page numbers (0-indexed).\r\n *\r\n * Behavior:\r\n * - Tampilkan window berisi `maxVisible` angka\r\n * - Active page selalu di tengah (kecuali di awal/akhir)\r\n *\r\n * Contoh (totalPages=100, maxVisible=3):\r\n * Page 0: [1] 2 3 (awal — aktif di kiri)\r\n * Page 1: 1 [2] 3 (aktif di tengah)\r\n * Page 2: 2 [3] 4 (aktif di tengah)\r\n * Page 98: 98 [99] 100 (aktif di tengah)\r\n * Page 99: 98 99 [100] (akhir — aktif di kanan)\r\n */\r\nfunction getVisiblePages(currentPage, totalPages, maxVisible = 3) {\r\n if (totalPages <= maxVisible) {\r\n return Array.from({ length: totalPages }, (_, i) => i);\r\n }\r\n\r\n const half = Math.floor(maxVisible / 2);\r\n\r\n let start = currentPage - half;\r\n let end = currentPage + (maxVisible - 1 - half);\r\n\r\n // Clamp to start\r\n if (start < 0) {\r\n start = 0;\r\n end = maxVisible - 1;\r\n }\r\n\r\n // Clamp to end\r\n if (end >= totalPages) {\r\n end = totalPages - 1;\r\n start = totalPages - maxVisible;\r\n }\r\n\r\n const pages = [];\r\n for (let i = start; i <= end; i++) {\r\n pages.push(i);\r\n }\r\n\r\n return pages;\r\n}\r\n\r\n// ============================================================\r\n// NUMBERED PAGE BUTTONS (< 1 2 3 >)\r\n// ============================================================\r\n\r\nconst NumberedPageButtons = ({ page, onPageChange, totalPages }) => {\r\n const visiblePages = useMemo(\r\n () => getVisiblePages(page, totalPages),\r\n [page, totalPages],\r\n );\r\n\r\n return (\r\n <Box sx={{ display: \"flex\", alignItems: \"center\", gap: 0.5 }}>\r\n <IconButton\r\n size=\"small\"\r\n disabled={page === 0}\r\n onClick={(e) => onPageChange(e, page - 1)}\r\n sx={{ color: DerivedColor.color_text_default, width: 32, height: 32 }}\r\n >\r\n <IconChevronLeft size={18} />\r\n </IconButton>\r\n\r\n {visiblePages.map((item, idx) => (\r\n <Box\r\n key={item}\r\n onClick={(e) => onPageChange(e, item)}\r\n sx={{\r\n width: 32,\r\n height: 32,\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n borderRadius: 1,\r\n fontSize: 13,\r\n fontWeight: item === page ? 600 : 400,\r\n cursor: \"pointer\",\r\n userSelect: \"none\",\r\n border: item === page\r\n ? `1.5px solid ${PrimitiveColor.color_blue_cakrawala_500}`\r\n : \"1px solid transparent\",\r\n color: item === page\r\n ? PrimitiveColor.color_blue_cakrawala_500\r\n : DerivedColor.color_text_default,\r\n backgroundColor: \"transparent\",\r\n \"&:hover\": {\r\n backgroundColor: PrimitiveColor.color_neutral_200,\r\n },\r\n }}\r\n >\r\n {item + 1}\r\n </Box>\r\n ))}\r\n\r\n <IconButton\r\n size=\"small\"\r\n disabled={page >= totalPages - 1}\r\n onClick={(e) => onPageChange(e, page + 1)}\r\n sx={{ color: DerivedColor.color_text_default, width: 32, height: 32 }}\r\n >\r\n <IconChevronRight size={18} />\r\n </IconButton>\r\n </Box>\r\n );\r\n};\r\n\r\n// ============================================================\r\n// VARIANT: \"numbered\" (Figma design)\r\n// Layout: [Menampilkan 1-10 (dari 100 data)] [Baris per halaman: 10▼] [< 1 2 3 >]\r\n// ============================================================\r\n\r\nconst NumberedVariant = ({\r\n showTotalCount,\r\n page,\r\n rowsPerPage,\r\n count,\r\n onPageChange,\r\n onRowsPerPageChange,\r\n rowsPerPageOptions,\r\n labelRowsPerPage,\r\n currentPageDataLength,\r\n}) => {\r\n const totalPages = count >= 0 ? Math.ceil(count / rowsPerPage) : 0;\r\n const startItem = page * rowsPerPage + 1;\r\n const endItem = count >= 0\r\n ? Math.min((page + 1) * rowsPerPage, count)\r\n : page * rowsPerPage + currentPageDataLength;\r\n\r\n return (\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n px: 2,\r\n py: 1.5,\r\n borderTop: `1px solid ${DerivedColor.color_border_default}`,\r\n minHeight: 52,\r\n }}\r\n >\r\n {/* Left: \"Menampilkan 1-10\" + optional \"dari 100 data\" */}\r\n <Box sx={{ display: \"flex\", alignItems: \"center\" }}>\r\n <BaseTypography variant=\"body2_regular.subtle\" component=\"div\">\r\n Menampilkan{\" \"}\r\n <span style={{ fontWeight: 700, color: DerivedColor.color_text_default }}>\r\n {startItem}-{endItem}\r\n </span>\r\n {showTotalCount && count >= 0 && (\r\n <>\r\n {\" \"}dari{\" \"}\r\n <span style={{ fontWeight: 700, color: DerivedColor.color_text_default }}>\r\n {count}\r\n </span>{\" \"}\r\n data\r\n </>\r\n )}\r\n </BaseTypography>\r\n </Box>\r\n\r\n {/* Right: Rows per page + Numbered page buttons */}\r\n <Box sx={{ display: \"flex\", alignItems: \"center\", gap: 2 }}>\r\n <Box sx={{ display: \"flex\", alignItems: \"center\", gap: 1 }}>\r\n <BaseTypography variant=\"body2_regular.subtle\">\r\n {labelRowsPerPage}\r\n </BaseTypography>\r\n <Select\r\n value={rowsPerPage}\r\n onChange={(e) => {\r\n const syntheticEvent = { target: { value: e.target.value } };\r\n onRowsPerPageChange?.(syntheticEvent, Number(e.target.value));\r\n }}\r\n size=\"small\"\r\n variant=\"outlined\"\r\n sx={{\r\n minWidth: 60,\r\n height: 32,\r\n fontSize: 13,\r\n \"& .MuiSelect-select\": { py: 0.5, px: 1 },\r\n }}\r\n >\r\n {rowsPerPageOptions.map((option) => (\r\n <MenuItem key={option} value={option} sx={{ fontSize: 13 }}>\r\n {option}\r\n </MenuItem>\r\n ))}\r\n </Select>\r\n </Box>\r\n\r\n <NumberedPageButtons\r\n page={page}\r\n onPageChange={onPageChange}\r\n totalPages={totalPages}\r\n />\r\n </Box>\r\n </Box>\r\n );\r\n};\r\n\r\n// ============================================================\r\n// VARIANT: \"default\" (MUI TablePagination — serverside style)\r\n// Layout: [Rows per page: 10▼] [1-10 of 26] [< >]\r\n// ============================================================\r\n\r\nconst DefaultVariant = ({\r\n page,\r\n rowsPerPage,\r\n count,\r\n onPageChange,\r\n onRowsPerPageChange,\r\n rowsPerPageOptions,\r\n labelRowsPerPage,\r\n serverSide,\r\n currentPageDataLength,\r\n}) => {\r\n return (\r\n <TablePagination\r\n component=\"div\"\r\n count={count >= 0 ? count : -1}\r\n page={page}\r\n rowsPerPage={rowsPerPage}\r\n onPageChange={onPageChange}\r\n onRowsPerPageChange={(e) => {\r\n onRowsPerPageChange?.(e, Number(e.target.value));\r\n }}\r\n rowsPerPageOptions={rowsPerPageOptions}\r\n labelRowsPerPage={labelRowsPerPage}\r\n ActionsComponent={\r\n serverSide\r\n ? (actionProps) => (\r\n <ServerSidePaginationActions\r\n {...actionProps}\r\n currentPageData={{ length: currentPageDataLength }}\r\n />\r\n )\r\n : undefined\r\n }\r\n />\r\n );\r\n};\r\n\r\n// ============================================================\r\n// MAIN EXPORT: DatatablePagination\r\n// ============================================================\r\n\r\nexport const DatatablePagination = ({\r\n variant = \"default\",\r\n showTotalCount = false,\r\n page = 0,\r\n rowsPerPage = 10,\r\n count = -1,\r\n onPageChange,\r\n onRowsPerPageChange,\r\n rowsPerPageOptions = [5, 10, 25],\r\n labelRowsPerPage,\r\n serverSide = false,\r\n currentPageDataLength = 0,\r\n}) => {\r\n const resolvedLabel = labelRowsPerPage ?? (variant === \"numbered\" ? \"Baris per halaman:\" : \"Rows per page:\");\r\n\r\n if (variant === \"numbered\") {\r\n return (\r\n <NumberedVariant\r\n showTotalCount={showTotalCount}\r\n page={page}\r\n rowsPerPage={rowsPerPage}\r\n count={count}\r\n onPageChange={onPageChange}\r\n onRowsPerPageChange={onRowsPerPageChange}\r\n rowsPerPageOptions={rowsPerPageOptions}\r\n labelRowsPerPage={resolvedLabel}\r\n currentPageDataLength={currentPageDataLength}\r\n />\r\n );\r\n }\r\n\r\n // variant === \"default\"\r\n return (\r\n <DefaultVariant\r\n page={page}\r\n rowsPerPage={rowsPerPage}\r\n count={count}\r\n onPageChange={onPageChange}\r\n onRowsPerPageChange={onRowsPerPageChange}\r\n rowsPerPageOptions={rowsPerPageOptions}\r\n labelRowsPerPage={resolvedLabel}\r\n serverSide={serverSide}\r\n currentPageDataLength={currentPageDataLength}\r\n />\r\n );\r\n};\r\n","import { useMemo } from \"react\";\r\nimport BoxRaw from \"@mui/material/Box\";\r\nimport SelectRaw from \"@mui/material/Select\";\r\nimport MenuItemRaw from \"@mui/material/MenuItem\";\r\nimport IconButtonRaw from \"@mui/material/IconButton\";\r\nimport { IconChevronLeft, IconChevronRight } from \"@tabler/icons-react\";\r\nimport { BaseTypography } from \"@/components/atoms/typography\";\r\nimport { DerivedColor } from \"@/components/atoms/colors/derived\";\r\nimport { PrimitiveColor } from \"@/components/atoms/colors/primitive\";\r\n\r\nconst Box = BoxRaw?.default ?? BoxRaw;\r\nconst Select = SelectRaw?.default ?? SelectRaw;\r\nconst MenuItem = MenuItemRaw?.default ?? MenuItemRaw;\r\nconst IconButton = IconButtonRaw?.default ?? IconButtonRaw;\r\n\r\n/**\r\n * Standalone Numbered Pagination\r\n *\r\n * Bisa dipakai terpisah dari BaseDatatable — untuk list, card grid, atau custom layout.\r\n *\r\n * @example\r\n * import { NumberedPagination } from 'spotlibs-components';\r\n *\r\n * <NumberedPagination\r\n * page={page}\r\n * rowsPerPage={10}\r\n * count={100}\r\n * showTotalCount\r\n * onPageChange={(_, p) => setPage(p)}\r\n * onRowsPerPageChange={(_, rpp) => { setRowsPerPage(rpp); setPage(0); }}\r\n * />\r\n */\r\n\r\nfunction getVisiblePages(currentPage, totalPages, maxVisible = 3) {\r\n if (totalPages <= maxVisible) {\r\n return Array.from({ length: totalPages }, (_, i) => i);\r\n }\r\n\r\n const half = Math.floor(maxVisible / 2);\r\n\r\n let start = currentPage - half;\r\n let end = currentPage + (maxVisible - 1 - half);\r\n\r\n if (start < 0) {\r\n start = 0;\r\n end = maxVisible - 1;\r\n }\r\n\r\n if (end >= totalPages) {\r\n end = totalPages - 1;\r\n start = totalPages - maxVisible;\r\n }\r\n\r\n const pages = [];\r\n for (let i = start; i <= end; i++) {\r\n pages.push(i);\r\n }\r\n\r\n return pages;\r\n}\r\n\r\nexport const NumberedPagination = ({\r\n page = 0,\r\n rowsPerPage = 10,\r\n count = 0,\r\n showTotalCount = false,\r\n onPageChange,\r\n onRowsPerPageChange,\r\n rowsPerPageOptions = [5, 10, 25],\r\n labelRowsPerPage = \"Baris per halaman:\",\r\n}) => {\r\n const totalPages = count > 0 ? Math.ceil(count / rowsPerPage) : 0;\r\n const startItem = page * rowsPerPage + 1;\r\n const endItem = Math.min((page + 1) * rowsPerPage, count);\r\n\r\n const visiblePages = useMemo(\r\n () => getVisiblePages(page, totalPages),\r\n [page, totalPages],\r\n );\r\n\r\n return (\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n px: 2,\r\n py: 1.5,\r\n minHeight: 52,\r\n }}\r\n >\r\n {/* Left: \"Menampilkan 1-10\" + optional \"dari 100 data\" */}\r\n <Box sx={{ display: \"flex\", alignItems: \"center\" }}>\r\n <BaseTypography variant=\"body2_regular.subtle\" component=\"div\">\r\n Menampilkan{\" \"}\r\n <span style={{ fontWeight: 700, color: DerivedColor.color_text_default }}>\r\n {startItem}-{endItem}\r\n </span>\r\n {showTotalCount && count > 0 && (\r\n <>\r\n {\" \"}dari{\" \"}\r\n <span style={{ fontWeight: 700, color: DerivedColor.color_text_default }}>\r\n {count}\r\n </span>{\" \"}\r\n data\r\n </>\r\n )}\r\n </BaseTypography>\r\n </Box>\r\n\r\n {/* Right: Rows per page + Page buttons */}\r\n <Box sx={{ display: \"flex\", alignItems: \"center\", gap: 2 }}>\r\n <Box sx={{ display: \"flex\", alignItems: \"center\", gap: 1 }}>\r\n <BaseTypography variant=\"body2_regular.subtle\">\r\n {labelRowsPerPage}\r\n </BaseTypography>\r\n <Select\r\n value={rowsPerPage}\r\n onChange={(e) => {\r\n onRowsPerPageChange?.(e, Number(e.target.value));\r\n }}\r\n size=\"small\"\r\n variant=\"outlined\"\r\n sx={{\r\n minWidth: 60,\r\n height: 32,\r\n fontSize: 13,\r\n \"& .MuiSelect-select\": { py: 0.5, px: 1 },\r\n }}\r\n >\r\n {rowsPerPageOptions.map((option) => (\r\n <MenuItem key={option} value={option} sx={{ fontSize: 13 }}>\r\n {option}\r\n </MenuItem>\r\n ))}\r\n </Select>\r\n </Box>\r\n\r\n {/* Page Buttons */}\r\n <Box sx={{ display: \"flex\", alignItems: \"center\", gap: 0.5 }}>\r\n <IconButton\r\n size=\"small\"\r\n disabled={page === 0}\r\n onClick={(e) => onPageChange?.(e, page - 1)}\r\n sx={{ color: DerivedColor.color_text_default, width: 32, height: 32 }}\r\n >\r\n <IconChevronLeft size={18} />\r\n </IconButton>\r\n\r\n {visiblePages.map((item) => (\r\n <Box\r\n key={item}\r\n onClick={(e) => onPageChange?.(e, item)}\r\n sx={{\r\n width: 32,\r\n height: 32,\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n borderRadius: 1,\r\n fontSize: 13,\r\n fontWeight: item === page ? 600 : 400,\r\n cursor: \"pointer\",\r\n userSelect: \"none\",\r\n border: item === page\r\n ? `1.5px solid ${PrimitiveColor.color_blue_cakrawala_500}`\r\n : \"1px solid transparent\",\r\n color: item === page\r\n ? PrimitiveColor.color_blue_cakrawala_500\r\n : DerivedColor.color_text_default,\r\n backgroundColor: \"transparent\",\r\n \"&:hover\": {\r\n backgroundColor: PrimitiveColor.color_neutral_200,\r\n },\r\n }}\r\n >\r\n {item + 1}\r\n </Box>\r\n ))}\r\n\r\n <IconButton\r\n size=\"small\"\r\n disabled={page >= totalPages - 1}\r\n onClick={(e) => onPageChange?.(e, page + 1)}\r\n sx={{ color: DerivedColor.color_text_default, width: 32, height: 32 }}\r\n >\r\n <IconChevronRight size={18} />\r\n </IconButton>\r\n </Box>\r\n </Box>\r\n </Box>\r\n );\r\n};\r\n","import React, { useCallback, useMemo, useState } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport BoxRaw from \"@mui/material/Box\";\r\nimport CheckboxRaw from \"@mui/material/Checkbox\";\r\nimport CircularProgressRaw from \"@mui/material/CircularProgress\";\r\nimport PaperRaw from \"@mui/material/Paper\";\r\nimport TableRaw from \"@mui/material/Table\";\r\nimport TableBodyRaw from \"@mui/material/TableBody\";\r\nimport TableCellRaw from \"@mui/material/TableCell\";\r\nimport TableContainerRaw from \"@mui/material/TableContainer\";\r\nimport TableHeadRaw from \"@mui/material/TableHead\";\r\nimport TableRowRaw from \"@mui/material/TableRow\";\r\n\r\nimport {\r\n IconArrowsUpDown,\r\n IconArrowUp,\r\n IconArrowDown,\r\n IconSquare,\r\n IconSquareCheckFilled,\r\n IconSquareMinusFilled,\r\n} from \"@tabler/icons-react\";\r\nimport { DerivedColor } from \"@/components/atoms/colors/derived\";\r\nimport { PrimitiveColor } from \"@/components/atoms/colors/primitive\";\r\nimport { ServerSidePaginationActions } from \"@/components/molecules/datatable/serverside-pagination-actions\";\r\nimport { DatatablePagination } from \"@/components/molecules/datatable/pagination\";\r\n\r\nconst Box = BoxRaw?.default ?? BoxRaw;\r\nconst Checkbox = CheckboxRaw?.default ?? CheckboxRaw;\r\nconst CircularProgress = CircularProgressRaw?.default ?? CircularProgressRaw;\r\nconst Paper = PaperRaw?.default ?? PaperRaw;\r\nconst Table = TableRaw?.default ?? TableRaw;\r\nconst TableBody = TableBodyRaw?.default ?? TableBodyRaw;\r\nconst TableCell = TableCellRaw?.default ?? TableCellRaw;\r\nconst TableContainer = TableContainerRaw?.default ?? TableContainerRaw;\r\nconst TableHead = TableHeadRaw?.default ?? TableHeadRaw;\r\nconst TableRow = TableRowRaw?.default ?? TableRowRaw;\r\n\r\nconst DEFAULT_COLUMN_WIDTH = 160;\r\nconst HEADER_ROW_HEIGHT = 48;\r\nconst SELECTION_COLUMN_WIDTH = 56;\r\nconst EMPTY_ARRAY = [];\r\nconst EMPTY_OBJECT = {};\r\n\r\nconst COLORS = {\r\n headerBg: DerivedColor.color_bg_brand_primary,\r\n headerText: DerivedColor.color_text_inverse,\r\n headerBorder: DerivedColor.color_border_default,\r\n headerHoverBg: DerivedColor.color_bg_brand_primary_strong,\r\n headerHoverText: DerivedColor.color_text_inverse,\r\n bodyBg: DerivedColor.color_bg_surface,\r\n bodyText: DerivedColor.color_text_default,\r\n bodyBorder: DerivedColor.color_border_default,\r\n rowHoverBg: PrimitiveColor.color_neutral_200,\r\n stickyShadow: \"rgba(19, 19, 19, 0.08)\",\r\n};\r\n\r\nconst getValueByPath = (obj, path) =>\r\n String(path)\r\n .split(\".\")\r\n .reduce((acc, key) => acc?.[key], obj);\r\n\r\nconst getLastPathSegment = (value = \"\") => String(value).trim().split(\".\").pop();\r\n\r\nconst formatHeader = (value = \"\") =>\r\n getLastPathSegment(value)\r\n .replace(/[_-]+/g, \" \")\r\n .replace(/([a-z0-9])([A-Z])/g, \"$1 $2\")\r\n .replace(/\\b\\w/g, (char) => char.toUpperCase());\r\n\r\nconst compareValue = (a, b) => {\r\n if (a == null && b == null) return 0;\r\n if (a == null) return -1;\r\n if (b == null) return 1;\r\n\r\n if (typeof a === \"number\" && typeof b === \"number\") {\r\n return a - b;\r\n }\r\n\r\n return String(a).localeCompare(String(b), \"id\", {\r\n numeric: true,\r\n sensitivity: \"base\",\r\n });\r\n};\r\n\r\nconst getColumnWidth = (column) =>\r\n Number(column.width ?? column.minWidth ?? DEFAULT_COLUMN_WIDTH);\r\n\r\nconst getStickyLeft = (widths, index) =>\r\n widths.slice(0, index).reduce((sum, width) => sum + width, 0);\r\n\r\nconst getStickyRight = (widths, index) =>\r\n widths.slice(index + 1).reduce((sum, width) => sum + width, 0);\r\n\r\nconst normalizeColumn = (column, index, sortingEnabled) => {\r\n if (typeof column === \"string\") {\r\n return {\r\n id: getLastPathSegment(column) || `column-${index}`,\r\n key: column,\r\n accessorKey: column,\r\n header: formatHeader(column),\r\n width: DEFAULT_COLUMN_WIDTH,\r\n sortable: sortingEnabled,\r\n align: \"left\",\r\n headerAlign: \"center\",\r\n };\r\n }\r\n\r\n const accessorKey = column.accessorKey ?? column.key ?? column.field ?? column.id;\r\n const id = column.id ?? getLastPathSegment(accessorKey) ?? `column-${index}`;\r\n\r\n return {\r\n width: DEFAULT_COLUMN_WIDTH,\r\n align: \"left\",\r\n ...column,\r\n id,\r\n key: accessorKey,\r\n accessorKey,\r\n header: column.header ?? column.label ?? formatHeader(accessorKey ?? id),\r\n headerAlign: column.headerAlign ?? column.align ?? \"center\",\r\n sortable: column.sortable ?? sortingEnabled,\r\n };\r\n};\r\n\r\nconst normalizeHeaderRows = (header, columns) => {\r\n if (Array.isArray(header) && header.length > 0) {\r\n return header;\r\n }\r\n\r\n return [\r\n columns.map((column) => ({\r\n id: column.id,\r\n key: column.id,\r\n label: column.header,\r\n align: column.headerAlign ?? column.align ?? \"center\",\r\n rowSpan: 1,\r\n })),\r\n ];\r\n};\r\n\r\nconst buildHeaderLayout = (headerRows) => {\r\n const occupied = [];\r\n\r\n return headerRows.map((row, rowIndex) => {\r\n occupied[rowIndex] ??= [];\r\n let pointer = 0;\r\n\r\n return row.map((cell, cellIndex) => {\r\n while (occupied[rowIndex][pointer]) pointer += 1;\r\n\r\n const colSpan = cell.colSpan ?? cell.colspan ?? 1;\r\n const rowSpan = cell.rowSpan ?? cell.rowspan ?? 1;\r\n const start = pointer;\r\n\r\n for (let r = rowIndex; r < rowIndex + rowSpan; r += 1) {\r\n occupied[r] ??= [];\r\n for (let c = start; c < start + colSpan; c += 1) {\r\n occupied[r][c] = true;\r\n }\r\n }\r\n\r\n pointer = start + colSpan;\r\n\r\n return {\r\n ...cell,\r\n id: cell.id ?? cell.key ?? `${rowIndex}-${cellIndex}`,\r\n colSpan,\r\n rowSpan,\r\n start,\r\n end: start + colSpan - 1,\r\n };\r\n });\r\n });\r\n};\r\n\r\nconst getCellValue = (row, column) => {\r\n if (typeof column.accessorFn === \"function\") return column.accessorFn(row);\r\n if (column.accessorKey) return getValueByPath(row, column.accessorKey);\r\n if (column.key) return getValueByPath(row, column.key);\r\n return row?.[column.id];\r\n};\r\n\r\nconst getHeaderCellWidth = (columns, cell) =>\r\n columns\r\n .slice(cell.start, cell.end + 1)\r\n .reduce((sum, column) => sum + getColumnWidth(column), 0);\r\n\r\nconst renderSortIcon = (sortKey, sortState) => {\r\n const idleColor = DerivedColor.color_text_inverse;\r\n const activeColor = DerivedColor.color_text_inverse;\r\n\r\n if (!sortState || sortState.key !== sortKey) {\r\n return <IconArrowsUpDown size={16} color={idleColor} />;\r\n }\r\n\r\n return sortState.direction === \"asc\" ? (\r\n <IconArrowUp size={16} color={activeColor} />\r\n ) : (\r\n <IconArrowDown size={16} color={activeColor} />\r\n );\r\n};\r\n\r\nconst getSortField = (column) =>\r\n column.sortField ?? column.accessorKey ?? column.key ?? column.id;\r\n\r\nexport const BaseDatatable = ({\r\n columns = EMPTY_ARRAY,\r\n data = EMPTY_ARRAY,\r\n header,\r\n features = EMPTY_OBJECT,\r\n layout = EMPTY_OBJECT,\r\n selection = EMPTY_OBJECT,\r\n pagination = EMPTY_OBJECT,\r\n renderRow,\r\n onRowClick,\r\n getRowId,\r\n emptyState = \"Tidak ada data\",\r\n loading = false,\r\n loadingText = \"Memuat data...\",\r\n rowHover = true,\r\n activeRowId = null,\r\n containerSx = EMPTY_OBJECT,\r\n tableSx = EMPTY_OBJECT,\r\n}) => {\r\n const featureConfig = useMemo(\r\n () => ({\r\n sorting: false,\r\n sortingMode: \"client\",\r\n defaultSort: null,\r\n sortState: undefined,\r\n resetPageOnSort: true,\r\n onSortChange: undefined,\r\n headerInteractive: undefined,\r\n ...features,\r\n }),\r\n [features],\r\n );\r\n\r\n const layoutConfig = useMemo(\r\n () => ({\r\n stickyHeader: true,\r\n stickyOffset: 0,\r\n freezeLeft: 0,\r\n freezeRight: 0,\r\n maxHeight: 600,\r\n ...layout,\r\n }),\r\n [layout],\r\n );\r\n\r\n const selectionConfig = useMemo(\r\n () => ({\r\n enabled: false,\r\n position: \"left\",\r\n selectRowOnClick: true,\r\n defaultSelectedRowIds: EMPTY_ARRAY,\r\n ...selection,\r\n }),\r\n [selection],\r\n );\r\n\r\n const paginationConfig = useMemo(\r\n () => ({\r\n enabled: false,\r\n serverSide: false,\r\n variant: \"default\",\r\n showTotalCount: false,\r\n rowsPerPage: 5,\r\n rowsPerPageOptions: [5, 10, 25],\r\n labelRowsPerPage: undefined,\r\n ...pagination,\r\n }),\r\n [pagination],\r\n );\r\n\r\n const [internalSortState, setInternalSortState] = useState(\r\n featureConfig.defaultSort,\r\n );\r\n const [internalSelectedIds, setInternalSelectedIds] = useState(\r\n selectionConfig.defaultSelectedRowIds,\r\n );\r\n const [internalPage, setInternalPage] = useState(paginationConfig.page ?? 0);\r\n const [internalRowsPerPage, setInternalRowsPerPage] = useState(\r\n paginationConfig.rowsPerPage,\r\n );\r\n\r\n const controlledSelectedIds = selectionConfig.selectedRowIds;\r\n const onSelectionChange = selectionConfig.onChange;\r\n const isRowSelectable = selectionConfig.isRowSelectable;\r\n const selectionPosition = selectionConfig.position;\r\n const selectedIds = controlledSelectedIds ?? internalSelectedIds;\r\n const sortState = featureConfig.sortState ?? internalSortState;\r\n const currentPage = pagination.page ?? internalPage;\r\n const currentRowsPerPage = pagination.rowsPerPage ?? internalRowsPerPage;\r\n const isHeaderInteractive =\r\n typeof featureConfig.headerInteractive === \"boolean\"\r\n ? featureConfig.headerInteractive\r\n : featureConfig.sorting;\r\n\r\n const normalizedColumns = useMemo(\r\n () =>\r\n columns.map((column, index) =>\r\n normalizeColumn(column, index, featureConfig.sorting),\r\n ),\r\n [columns, featureConfig.sorting],\r\n );\r\n\r\n const selectionColumn = useMemo(\r\n () => ({\r\n id: \"__selection__\",\r\n key: \"__selection__\",\r\n header: \"\",\r\n width: SELECTION_COLUMN_WIDTH,\r\n minWidth: SELECTION_COLUMN_WIDTH,\r\n align: \"center\",\r\n headerAlign: \"center\",\r\n sortable: false,\r\n isSelection: true,\r\n sticky: selectionPosition === \"left\" ? \"left\" : \"right\",\r\n }),\r\n [selectionPosition],\r\n );\r\n\r\n const stickyLeftCount =\r\n layoutConfig.freezeLeft + (selectionConfig.enabled && selectionPosition === \"left\" ? 1 : 0);\r\n const stickyRightCount =\r\n layoutConfig.freezeRight +\r\n (selectionConfig.enabled && selectionPosition === \"right\" ? 1 : 0);\r\n\r\n const visibleColumns = useMemo(() => {\r\n if (!selectionConfig.enabled) return normalizedColumns;\r\n\r\n return selectionPosition === \"right\"\r\n ? [...normalizedColumns, selectionColumn]\r\n : [selectionColumn, ...normalizedColumns];\r\n }, [normalizedColumns, selectionColumn, selectionConfig.enabled, selectionPosition]);\r\n\r\n const columnWidths = useMemo(\r\n () => visibleColumns.map((column) => getColumnWidth(column)),\r\n [visibleColumns],\r\n );\r\n\r\n const resolveRowId = useCallback(\r\n (row, rowIndex) => getRowId?.(row, rowIndex) ?? row?.id ?? rowIndex,\r\n [getRowId],\r\n );\r\n\r\n const selectableRowIds = useMemo(() => {\r\n if (!selectionConfig.enabled) return EMPTY_ARRAY;\r\n\r\n return data.reduce((acc, row, rowIndex) => {\r\n const isSelectable = isRowSelectable ? isRowSelectable(row, rowIndex) : true;\r\n\r\n if (isSelectable) {\r\n acc.push(resolveRowId(row, rowIndex));\r\n }\r\n\r\n return acc;\r\n }, []);\r\n }, [data, isRowSelectable, resolveRowId, selectionConfig.enabled]);\r\n\r\n const allSelected =\r\n selectableRowIds.length > 0 &&\r\n selectableRowIds.every((rowId) => selectedIds.includes(rowId));\r\n\r\n const isIndeterminate =\r\n selectableRowIds.some((rowId) => selectedIds.includes(rowId)) && !allSelected;\r\n\r\n const updateSelection = useCallback(\r\n (nextSelectedIds) => {\r\n if (controlledSelectedIds === undefined) {\r\n setInternalSelectedIds(nextSelectedIds);\r\n }\r\n\r\n onSelectionChange?.(nextSelectedIds);\r\n },\r\n [controlledSelectedIds, onSelectionChange],\r\n );\r\n\r\n const toggleAllRows = useCallback(() => {\r\n updateSelection(allSelected ? [] : selectableRowIds);\r\n }, [allSelected, selectableRowIds, updateSelection]);\r\n\r\n const toggleRow = useCallback(\r\n (rowId) => {\r\n const nextSelectedIds = selectedIds.includes(rowId)\r\n ? selectedIds.filter((id) => id !== rowId)\r\n : [...selectedIds, rowId];\r\n\r\n updateSelection(nextSelectedIds);\r\n },\r\n [selectedIds, updateSelection],\r\n );\r\n\r\n const headerRows = useMemo(\r\n () => normalizeHeaderRows(header, normalizedColumns),\r\n [header, normalizedColumns],\r\n );\r\n\r\n const headerLayout = useMemo(() => buildHeaderLayout(headerRows), [headerRows]);\r\n const headerDepth = headerLayout.length;\r\n\r\n const rowsForHeader = useMemo(() => {\r\n if (!selectionConfig.enabled) return headerLayout;\r\n\r\n const selectionIndex = selectionPosition === \"right\" ? visibleColumns.length - 1 : 0;\r\n\r\n const selectionHeaderCell = {\r\n id: selectionColumn.id,\r\n key: selectionColumn.key,\r\n label: (\r\n <Checkbox\r\n checked={allSelected}\r\n indeterminate={isIndeterminate}\r\n onChange={toggleAllRows}\r\n onClick={(event) => event.stopPropagation()}\r\n icon={<IconSquare size={22} color={DerivedColor.color_text_inverse} />}\r\n checkedIcon={<IconSquareCheckFilled size={22} color={DerivedColor.color_text_inverse} />}\r\n indeterminateIcon={<IconSquareMinusFilled size={22} color={DerivedColor.color_text_inverse} />}\r\n sx={{ color: DerivedColor.color_text_inverse }}\r\n />\r\n ),\r\n align: \"center\",\r\n rowSpan: headerDepth,\r\n colSpan: 1,\r\n start: selectionIndex,\r\n end: selectionIndex,\r\n sticky: selectionPosition,\r\n width: selectionColumn.width,\r\n minWidth: selectionColumn.minWidth,\r\n isSelection: true,\r\n };\r\n\r\n return headerLayout.map((row, rowIndex) => {\r\n const shiftedRow = row.map((cell) => ({\r\n ...cell,\r\n start: selectionPosition === \"left\" ? cell.start + 1 : cell.start,\r\n end: selectionPosition === \"left\" ? cell.end + 1 : cell.end,\r\n }));\r\n\r\n if (rowIndex !== 0) return shiftedRow;\r\n\r\n return selectionPosition === \"right\"\r\n ? [...shiftedRow, selectionHeaderCell]\r\n : [selectionHeaderCell, ...shiftedRow];\r\n });\r\n }, [\r\n allSelected,\r\n headerDepth,\r\n headerLayout,\r\n isIndeterminate,\r\n selectionColumn,\r\n selectionConfig.enabled,\r\n selectionPosition,\r\n toggleAllRows,\r\n visibleColumns.length,\r\n ]);\r\n\r\n const sortedData = useMemo(() => {\r\n if (!featureConfig.sorting || !sortState?.key) return data;\r\n if (featureConfig.sortingMode === \"server\") return data;\r\n\r\n const targetColumn = normalizedColumns.find((column) => column.id === sortState.key);\r\n if (!targetColumn) return data;\r\n\r\n return [...data].sort((rowA, rowB) => {\r\n const result = compareValue(\r\n getCellValue(rowA, targetColumn),\r\n getCellValue(rowB, targetColumn),\r\n );\r\n\r\n return sortState.direction === \"asc\" ? result : result * -1;\r\n });\r\n }, [\r\n data,\r\n featureConfig.sorting,\r\n featureConfig.sortingMode,\r\n normalizedColumns,\r\n sortState,\r\n ]);\r\n\r\n const totalRowCount = paginationConfig.serverSide\r\n ? paginationConfig.count ?? data.length\r\n : sortedData.length;\r\n\r\n const displayedData = useMemo(() => {\r\n if (!paginationConfig.enabled) return sortedData;\r\n if (paginationConfig.serverSide) return sortedData;\r\n\r\n const startIndex = currentPage * currentRowsPerPage;\r\n return sortedData.slice(startIndex, startIndex + currentRowsPerPage);\r\n }, [\r\n currentPage,\r\n currentRowsPerPage,\r\n paginationConfig.enabled,\r\n paginationConfig.serverSide,\r\n sortedData,\r\n ]);\r\n\r\n const handlePaginationPageChange = useCallback(\r\n (event, nextPage) => {\r\n if (pagination.page === undefined) {\r\n setInternalPage(nextPage);\r\n }\r\n\r\n paginationConfig.onPageChange?.(event, nextPage);\r\n },\r\n [pagination.page, paginationConfig],\r\n );\r\n\r\n const handleRowsPerPageChange = useCallback(\r\n (event) => {\r\n const nextRowsPerPage = Number(event.target.value);\r\n\r\n if (pagination.rowsPerPage === undefined) {\r\n setInternalRowsPerPage(nextRowsPerPage);\r\n }\r\n\r\n if (pagination.page === undefined) {\r\n setInternalPage(0);\r\n }\r\n\r\n paginationConfig.onRowsPerPageChange?.(event, nextRowsPerPage);\r\n },\r\n [pagination.page, pagination.rowsPerPage, paginationConfig],\r\n );\r\n\r\n const handleSort = useCallback(\r\n (cell) => {\r\n if (!featureConfig.sorting) return;\r\n if ((cell.colSpan ?? 1) > 1 || (cell.rowSpan ?? 1) > 1) return;\r\n\r\n const sortKey = cell.sortKey ?? cell.key ?? cell.id;\r\n const targetColumn = normalizedColumns.find((column) => column.id === sortKey);\r\n\r\n if (!targetColumn?.sortable) return;\r\n\r\n const nextSort =\r\n sortState?.key === targetColumn.id\r\n ? {\r\n key: targetColumn.id,\r\n direction: sortState.direction === \"asc\" ? \"desc\" : \"asc\",\r\n }\r\n : {\r\n key: targetColumn.id,\r\n direction: \"asc\",\r\n };\r\n\r\n const nextPage =\r\n paginationConfig.enabled && featureConfig.resetPageOnSort ? 0 : currentPage;\r\n\r\n if (featureConfig.sortState === undefined) {\r\n setInternalSortState(nextSort);\r\n }\r\n\r\n if (paginationConfig.enabled && featureConfig.resetPageOnSort) {\r\n if (pagination.page === undefined) {\r\n setInternalPage(0);\r\n }\r\n\r\n if (currentPage !== 0) {\r\n paginationConfig.onPageChange?.(null, 0);\r\n }\r\n }\r\n\r\n featureConfig.onSortChange?.(\r\n {\r\n orderBy: getSortField(targetColumn),\r\n order: nextSort.direction,\r\n page: nextPage,\r\n rowsPerPage: currentRowsPerPage,\r\n },\r\n targetColumn,\r\n cell,\r\n );\r\n },\r\n [\r\n currentPage,\r\n currentRowsPerPage,\r\n featureConfig,\r\n normalizedColumns,\r\n pagination.page,\r\n paginationConfig,\r\n sortState,\r\n ],\r\n );\r\n\r\n const renderBodyCell = useCallback(\r\n (\r\n column,\r\n row,\r\n rowIndex,\r\n columnIndex,\r\n rowId,\r\n rowActive,\r\n cellOverrides = EMPTY_OBJECT,\r\n ) => {\r\n const resolvedColumn =\r\n column.isSelection || column.id === selectionColumn.id\r\n ? selectionColumn\r\n : visibleColumns.find((item) => item.id === column.id) ?? column;\r\n\r\n if (resolvedColumn.isSelection) {\r\n const isSelectable = isRowSelectable ? isRowSelectable(row, rowIndex) : true;\r\n\r\n return (\r\n <TableCell\r\n key={`${rowId}-${resolvedColumn.id}-${columnIndex}`}\r\n align=\"center\"\r\n rowSpan={cellOverrides.rowSpan}\r\n colSpan={cellOverrides.colSpan}\r\n sx={{\r\n minWidth: resolvedColumn.width,\r\n width: resolvedColumn.width,\r\n maxWidth: resolvedColumn.width,\r\n backgroundColor: rowActive ? COLORS.rowHoverBg : COLORS.bodyBg,\r\n borderBottom: `1px solid ${COLORS.bodyBorder}`,\r\n borderRight: `1px solid ${COLORS.bodyBorder}`,\r\n position: \"sticky\",\r\n left:\r\n selectionPosition === \"left\"\r\n ? getStickyLeft(columnWidths, columnIndex)\r\n : \"auto\",\r\n right:\r\n selectionPosition === \"right\"\r\n ? getStickyRight(columnWidths, columnIndex)\r\n : \"auto\",\r\n zIndex: 3,\r\n boxShadow:\r\n selectionPosition === \"left\" &&\r\n columnIndex === stickyLeftCount - 1\r\n ? `2px 0 6px ${COLORS.stickyShadow}`\r\n : selectionPosition === \"right\" &&\r\n columnIndex === visibleColumns.length - stickyRightCount\r\n ? `-2px 0 6px ${COLORS.stickyShadow}`\r\n : \"none\",\r\n ...cellOverrides.sx,\r\n }}\r\n >\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n width: \"100%\",\r\n height: \"100%\",\r\n }}\r\n onClick={(event) => event.stopPropagation()}\r\n >\r\n <Checkbox\r\n checked={selectedIds.includes(rowId)}\r\n disabled={!isSelectable}\r\n onChange={() => toggleRow(rowId)}\r\n onClick={(event) => event.stopPropagation()}\r\n icon={<IconSquare size={22} color={DerivedColor.color_border_default} />}\r\n checkedIcon={<IconSquareCheckFilled size={22} color={DerivedColor.color_bg_brand_primary} />}\r\n />\r\n </Box>\r\n </TableCell>\r\n );\r\n }\r\n\r\n const value = getCellValue(row, resolvedColumn);\r\n const shouldStickLeft =\r\n resolvedColumn.sticky === \"left\" || columnIndex < stickyLeftCount;\r\n const shouldStickRight =\r\n resolvedColumn.sticky === \"right\" ||\r\n columnIndex >= visibleColumns.length - stickyRightCount;\r\n\r\n return (\r\n <TableCell\r\n key={`${rowId}-${resolvedColumn.id}-${columnIndex}`}\r\n align={resolvedColumn.align ?? \"left\"}\r\n rowSpan={cellOverrides.rowSpan}\r\n colSpan={cellOverrides.colSpan}\r\n sx={{\r\n minWidth: getColumnWidth(resolvedColumn),\r\n width: getColumnWidth(resolvedColumn),\r\n maxWidth: getColumnWidth(resolvedColumn),\r\n backgroundColor:\r\n resolvedColumn.cellBg ?? (rowActive ? COLORS.rowHoverBg : COLORS.bodyBg),\r\n color: resolvedColumn.cellText ?? COLORS.bodyText,\r\n borderBottom: `1px solid ${COLORS.bodyBorder}`,\r\n borderRight: `1px solid ${COLORS.bodyBorder}`,\r\n whiteSpace: resolvedColumn.noWrap ? \"nowrap\" : \"normal\",\r\n boxSizing: \"border-box\",\r\n position: shouldStickLeft || shouldStickRight ? \"sticky\" : \"static\",\r\n left: shouldStickLeft ? getStickyLeft(columnWidths, columnIndex) : \"auto\",\r\n right: shouldStickRight ? getStickyRight(columnWidths, columnIndex) : \"auto\",\r\n zIndex: shouldStickLeft || shouldStickRight ? 2 : 1,\r\n boxShadow:\r\n shouldStickLeft && columnIndex === stickyLeftCount - 1\r\n ? `2px 0 6px ${COLORS.stickyShadow}`\r\n : shouldStickRight &&\r\n columnIndex === visibleColumns.length - stickyRightCount\r\n ? `-2px 0 6px ${COLORS.stickyShadow}`\r\n : \"none\",\r\n ...resolvedColumn.cellSx,\r\n ...cellOverrides.sx,\r\n }}\r\n >\r\n {cellOverrides.content ??\r\n (typeof resolvedColumn.renderCell === \"function\"\r\n ? resolvedColumn.renderCell({\r\n value,\r\n row,\r\n rowIndex,\r\n column: resolvedColumn,\r\n columnIndex,\r\n checked: selectedIds.includes(rowId),\r\n })\r\n : (value ?? \"-\"))}\r\n </TableCell>\r\n );\r\n },\r\n [\r\n columnWidths,\r\n isRowSelectable,\r\n selectedIds,\r\n selectionColumn,\r\n selectionPosition,\r\n stickyLeftCount,\r\n stickyRightCount,\r\n toggleRow,\r\n visibleColumns,\r\n ],\r\n );\r\n\r\n return (\r\n <Paper\r\n sx={{\r\n width: \"100%\",\r\n border: `1px solid ${COLORS.bodyBorder}`,\r\n borderRadius: 2,\r\n boxShadow: \"none\",\r\n }}\r\n >\r\n <TableContainer\r\n sx={{\r\n width: \"100%\",\r\n maxHeight: layoutConfig.maxHeight,\r\n overflow: \"auto\",\r\n ...containerSx,\r\n }}\r\n >\r\n <Table\r\n stickyHeader={false}\r\n sx={{\r\n width: \"100%\",\r\n borderCollapse: \"separate\",\r\n borderSpacing: 0,\r\n tableLayout: \"fixed\",\r\n minWidth: \"max-content\",\r\n ...tableSx,\r\n }}\r\n >\r\n <TableHead>\r\n {rowsForHeader.map((row, rowIndex) => (\r\n <TableRow key={`header-${rowIndex}`}>\r\n {row.map((cell) => {\r\n const sortKey = cell.sortKey ?? cell.key ?? cell.id;\r\n const targetColumn = normalizedColumns.find((column) => column.id === sortKey);\r\n const isSortable =\r\n featureConfig.sorting &&\r\n (cell.colSpan ?? 1) === 1 &&\r\n (cell.rowSpan ?? 1) === 1 &&\r\n targetColumn?.sortable;\r\n const shouldStickLeft =\r\n cell.sticky === \"left\" || cell.end < stickyLeftCount;\r\n const shouldStickRight =\r\n cell.sticky === \"right\" ||\r\n cell.start >= visibleColumns.length - stickyRightCount;\r\n const headerCellWidth = getHeaderCellWidth(visibleColumns, cell);\r\n\r\n return (\r\n <TableCell\r\n key={`${cell.id}-${rowIndex}-${cell.start}`}\r\n align={cell.align ?? \"center\"}\r\n rowSpan={cell.rowSpan}\r\n colSpan={cell.colSpan}\r\n onClick={() => {\r\n if (cell.isSelection) return;\r\n handleSort(cell);\r\n }}\r\n sx={{\r\n minWidth: cell.minWidth ?? headerCellWidth,\r\n width: cell.width ?? headerCellWidth,\r\n maxWidth: cell.width ?? headerCellWidth,\r\n height: HEADER_ROW_HEIGHT * (cell.rowSpan ?? 1),\r\n boxSizing: \"border-box\",\r\n backgroundColor: COLORS.headerBg,\r\n color: COLORS.headerText,\r\n fontWeight: 600,\r\n borderBottom: `1px solid ${COLORS.headerBorder}`,\r\n borderRight: `1px solid ${COLORS.headerBorder}`,\r\n position:\r\n layoutConfig.stickyHeader || shouldStickLeft || shouldStickRight\r\n ? \"sticky\"\r\n : \"static\",\r\n top: layoutConfig.stickyHeader\r\n ? layoutConfig.stickyOffset + rowIndex * HEADER_ROW_HEIGHT\r\n : \"auto\",\r\n left: shouldStickLeft ? getStickyLeft(columnWidths, cell.start) : \"auto\",\r\n right: shouldStickRight ? getStickyRight(columnWidths, cell.end) : \"auto\",\r\n zIndex:\r\n layoutConfig.stickyHeader && (shouldStickLeft || shouldStickRight)\r\n ? 40 - rowIndex\r\n : layoutConfig.stickyHeader\r\n ? 20 - rowIndex\r\n : shouldStickLeft || shouldStickRight\r\n ? 4\r\n : 1,\r\n cursor: isHeaderInteractive && isSortable ? \"pointer\" : \"default\",\r\n boxShadow:\r\n shouldStickLeft && cell.end === stickyLeftCount - 1\r\n ? `2px 0 6px ${COLORS.stickyShadow}`\r\n : shouldStickRight &&\r\n cell.start === visibleColumns.length - stickyRightCount\r\n ? `-2px 0 6px ${COLORS.stickyShadow}`\r\n : \"none\",\r\n // Border radius for first row corners\r\n ...(rowIndex === 0 && cell.start === 0 && { borderTopLeftRadius: 8 }),\r\n ...(rowIndex === 0 && cell.end === visibleColumns.length - 1 && { borderTopRightRadius: 8 }),\r\n \"&:hover\":\r\n isHeaderInteractive && isSortable\r\n ? {\r\n backgroundColor: COLORS.headerHoverBg,\r\n color: COLORS.headerHoverText,\r\n }\r\n : undefined,\r\n }}\r\n >\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent:\r\n cell.align === \"left\"\r\n ? \"flex-start\"\r\n : cell.align === \"right\"\r\n ? \"flex-end\"\r\n : \"center\",\r\n gap: \"6px\",\r\n }}\r\n >\r\n {cell.label}\r\n {isSortable && renderSortIcon(sortKey, sortState)}\r\n </Box>\r\n </TableCell>\r\n );\r\n })}\r\n </TableRow>\r\n ))}\r\n </TableHead>\r\n\r\n <TableBody>\r\n {loading ? (\r\n <TableRow>\r\n <TableCell align=\"center\" colSpan={visibleColumns.length}>\r\n <Box\r\n sx={{\r\n minHeight: 120,\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n gap: 1.5,\r\n color: COLORS.bodyText,\r\n }}\r\n >\r\n <CircularProgress size={20} />\r\n <span>{loadingText}</span>\r\n </Box>\r\n </TableCell>\r\n </TableRow>\r\n ) : displayedData.length === 0 ? (\r\n <TableRow>\r\n <TableCell align=\"center\" colSpan={visibleColumns.length}>\r\n {emptyState}\r\n </TableCell>\r\n </TableRow>\r\n ) : (\r\n displayedData.map((row, rowIndex) => {\r\n const rowId = resolveRowId(row, rowIndex);\r\n const rowActive = rowId === activeRowId;\r\n\r\n if (typeof renderRow === \"function\") {\r\n return renderRow({\r\n row,\r\n rowIndex,\r\n rowId,\r\n rowActive,\r\n columns: visibleColumns,\r\n dataColumns: normalizedColumns,\r\n selectedRowIds: selectedIds,\r\n renderCell: renderBodyCell,\r\n });\r\n }\r\n\r\n return (\r\n <TableRow\r\n key={rowId}\r\n hover={rowHover}\r\n onClick={(event) => {\r\n // Skip selection if click originated from interactive element (button, a, input, etc.)\r\n const target = event.target;\r\n const interactive = target.closest(\"button, a, input, [role='button'], .MuiCheckbox-root, .MuiIconButton-root\");\r\n if (interactive) return;\r\n\r\n if (selectionConfig.enabled && selectionConfig.selectRowOnClick) {\r\n const isSelectable = selectionConfig.isRowSelectable\r\n ? selectionConfig.isRowSelectable(row, rowIndex)\r\n : true;\r\n\r\n if (isSelectable) {\r\n toggleRow(rowId);\r\n }\r\n }\r\n\r\n onRowClick?.(row, rowIndex);\r\n }}\r\n sx={{\r\n cursor:\r\n onRowClick ||\r\n (selectionConfig.enabled && selectionConfig.selectRowOnClick)\r\n ? \"pointer\"\r\n : \"default\",\r\n \"&:hover td\": rowHover\r\n ? {\r\n backgroundColor: `${COLORS.rowHoverBg} !important`,\r\n }\r\n : undefined,\r\n }}\r\n >\r\n {visibleColumns.map((column, columnIndex) =>\r\n renderBodyCell(\r\n column,\r\n row,\r\n rowIndex,\r\n columnIndex,\r\n rowId,\r\n rowActive,\r\n ),\r\n )}\r\n </TableRow>\r\n );\r\n })\r\n )}\r\n </TableBody>\r\n </Table>\r\n </TableContainer>\r\n {paginationConfig.enabled && (\r\n <DatatablePagination\r\n variant={paginationConfig.variant}\r\n showTotalCount={paginationConfig.showTotalCount}\r\n page={currentPage}\r\n rowsPerPage={currentRowsPerPage}\r\n count={totalRowCount}\r\n onPageChange={handlePaginationPageChange}\r\n onRowsPerPageChange={handleRowsPerPageChange}\r\n rowsPerPageOptions={paginationConfig.rowsPerPageOptions}\r\n labelRowsPerPage={paginationConfig.labelRowsPerPage}\r\n serverSide={paginationConfig.serverSide}\r\n currentPageDataLength={displayedData.length}\r\n />\r\n )}\r\n </Paper>\r\n );\r\n};\r\n\r\nBaseDatatable.propTypes = {\r\n columns: PropTypes.array,\r\n data: PropTypes.array,\r\n header: PropTypes.array,\r\n features: PropTypes.object,\r\n layout: PropTypes.object,\r\n pagination: PropTypes.object,\r\n selection: PropTypes.object,\r\n renderRow: PropTypes.func,\r\n onRowClick: PropTypes.func,\r\n getRowId: PropTypes.func,\r\n emptyState: PropTypes.node,\r\n loading: PropTypes.bool,\r\n loadingText: PropTypes.node,\r\n rowHover: PropTypes.bool,\r\n activeRowId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n containerSx: PropTypes.object,\r\n tableSx: PropTypes.object,\r\n};\r\n\r\nexport default React.memo(BaseDatatable);\r\n","\"use client\";\r\nimport { useState, useRef, useMemo, useEffect } from \"react\";\r\nimport { useController } from \"react-hook-form\";\r\nimport dayjs from \"dayjs\";\r\nimport TextFieldRaw from \"@mui/material/TextField\";\r\nimport BoxRaw from \"@mui/material/Box\";\r\nimport PopoverRaw from \"@mui/material/Popover\";\r\nimport InputAdornmentRaw from \"@mui/material/InputAdornment\";\r\nimport IconButtonRaw from \"@mui/material/IconButton\";\r\nimport TypographyRaw from \"@mui/material/Typography\";\r\nimport { DatePicker as DatePickerRaw } from \"@mui/x-date-pickers/DatePicker\";\r\nimport { DateTimePicker as DateTimePickerRaw } from \"@mui/x-date-pickers/DateTimePicker\";\r\nimport { TimePicker as TimePickerRaw } from \"@mui/x-date-pickers/TimePicker\";\r\nimport { DateRange } from \"react-date-range\";\r\nimport CloseIcon from \"@mui/icons-material/Close\";\r\nimport { IconCalendarWeekFilled, IconAlertCircleFilled } from \"@tabler/icons-react\";\r\nimport { id } from \"date-fns/locale\";\r\nimport \"react-date-range/dist/styles.css\";\r\nimport \"react-date-range/dist/theme/default.css\";\r\nimport { DerivedColor } from \"@/components/atoms/colors/derived\";\r\nimport { PrimitiveColor } from \"@/components/atoms/colors/primitive\";\r\nimport { Radius } from \"@/components/atoms/radius/radius\";\r\nimport { SpacingToken } from \"@/components/atoms/spacing_layout/spacing\";\r\n\r\nconst TextField = TextFieldRaw?.default ?? TextFieldRaw;\r\nconst Box = BoxRaw?.default ?? BoxRaw;\r\nconst Popover = PopoverRaw?.default ?? PopoverRaw;\r\nconst InputAdornment = InputAdornmentRaw?.default ?? InputAdornmentRaw;\r\nconst IconButton = IconButtonRaw?.default ?? IconButtonRaw;\r\nconst Typography = TypographyRaw?.default ?? TypographyRaw;\r\nconst DatePicker = DatePickerRaw?.default ?? DatePickerRaw;\r\nconst DateTimePicker = DateTimePickerRaw?.default ?? DateTimePickerRaw;\r\nconst TimePicker = TimePickerRaw?.default ?? TimePickerRaw;\r\n\r\nexport const BaseDatePicker = ({\r\n type = \"single\",\r\n name,\r\n control,\r\n defaultValue,\r\n title,\r\n subtitle,\r\n placeholder,\r\n minDate,\r\n maxDate,\r\n isDisabled = false,\r\n clearable = false,\r\n editableDateInputs = false,\r\n format = \"DD/MM/YYYY\",\r\n openBy = \"field\",\r\n sx = {},\r\n onChange: onChangeCustom = () => {},\r\n ...props\r\n}) => {\r\n const { field, formState } = useController({\r\n name,\r\n control,\r\n defaultValue,\r\n });\r\n\r\n const errorMessage = formState.errors?.[name]?.message?.toString();\r\n const [open, setOpen] = useState(false);\r\n const inputRef = useRef(null);\r\n\r\n /* ================= RANGE ================= */\r\n const [rangeValue, setRangeValue] = useState(\r\n field.value ?? { startDate: null, endDate: null },\r\n );\r\n\r\n useEffect(() => {\r\n if (type === \"range\" && field.value) {\r\n setRangeValue(field.value);\r\n }\r\n }, [field.value, type]);\r\n\r\n const handleClear = (e) => {\r\n e?.stopPropagation();\r\n\r\n if (type === \"range\") {\r\n const empty = { startDate: null, endDate: null };\r\n setRangeValue(empty);\r\n field.onChange(empty);\r\n onChangeCustom(empty);\r\n } else {\r\n field.onChange(null);\r\n onChangeCustom(null);\r\n }\r\n };\r\n\r\n /* ================= PICKER CONFIG ================= */\r\n const pickerConfig = useMemo(() => {\r\n switch (type) {\r\n case \"day\":\r\n return {\r\n views: [\"day\"],\r\n openTo: \"day\",\r\n inputFormat: \"DD\",\r\n };\r\n\r\n case \"month\":\r\n return {\r\n views: [\"month\"],\r\n openTo: \"month\",\r\n inputFormat: \"MMMM\",\r\n };\r\n\r\n case \"year\":\r\n return {\r\n views: [\"year\"],\r\n openTo: \"year\",\r\n inputFormat: \"YYYY\",\r\n };\r\n\r\n case \"datetime\":\r\n return {\r\n component: DateTimePicker,\r\n views: [\"year\", \"month\", \"day\", \"hours\", \"minutes\"],\r\n openTo: \"day\",\r\n inputFormat: \"DD/MM/YYYY HH:mm\",\r\n };\r\n\r\n case \"time\":\r\n return {\r\n component: TimePicker,\r\n views: [\"hours\", \"minutes\", \"seconds\"],\r\n openTo: \"hours\",\r\n inputFormat: \"HH:mm:ss\",\r\n };\r\n\r\n default:\r\n return {\r\n views: [\"year\", \"month\", \"day\"],\r\n openTo: \"day\",\r\n inputFormat: format,\r\n };\r\n }\r\n }, [type, format]);\r\n\r\n /* ================= LABEL SECTION ================= */\r\n const LabelSection = () => {\r\n if (!title && !subtitle) return null;\r\n return (\r\n <Box sx={{ display: \"flex\", gap: SpacingToken.spacing2, mb: \"4px\" }}>\r\n {title && (\r\n <Typography variant=\"body2\" sx={{ fontWeight: 600, color: !!formState.errors?.[name] ? DerivedColor.color_text_danger : DerivedColor.color_text_default }}>\r\n {title}\r\n </Typography>\r\n )}\r\n {subtitle && (\r\n <Typography variant=\"body2\" sx={{ color: DerivedColor.color_text_subtle }}>\r\n {subtitle}\r\n </Typography>\r\n )}\r\n </Box>\r\n );\r\n };\r\n\r\n /* ================= RANGE RENDER ================= */\r\n if (type === \"range\") {\r\n return (\r\n <Box sx={sx}>\r\n <LabelSection />\r\n\r\n <TextField\r\n inputRef={inputRef}\r\n fullWidth\r\n size=\"small\"\r\n placeholder={placeholder || \"DD/MM/YYYY - DD/MM/YYYY\"}\r\n error={!!errorMessage}\r\n helperText={errorMessage}\r\n value={\r\n rangeValue.startDate && rangeValue.endDate\r\n ? `${dayjs(rangeValue.startDate).format(format)} - ${dayjs(\r\n rangeValue.endDate,\r\n ).format(format)}`\r\n : \"\"\r\n }\r\n onClick={() => !isDisabled && (openBy === \"field\" || openBy === \"both\") && setOpen(true)}\r\n disabled={isDisabled}\r\n sx={{\r\n \"& .MuiOutlinedInput-root\": {\r\n borderRadius: Radius.radius_2,\r\n fontSize: 14,\r\n backgroundColor: isDisabled\r\n ? PrimitiveColor.color_neutral_200\r\n : DerivedColor.color_bg_surface,\r\n borderColor: isDisabled\r\n ? PrimitiveColor.color_neutral_200\r\n : DerivedColor.color_border_default,\r\n cursor: (openBy === \"field\" || openBy === \"both\") ? \"pointer\" : \"default\",\r\n\r\n \"& fieldset\": {\r\n borderColor: errorMessage\r\n ? DerivedColor.color_border_danger\r\n : DerivedColor.color_border_default,\r\n },\r\n\r\n \"&:hover fieldset\": {\r\n borderColor: errorMessage\r\n ? DerivedColor.color_border_danger\r\n : DerivedColor.color_border_brand_primary,\r\n },\r\n\r\n \"&.Mui-focused fieldset\": {\r\n borderColor: errorMessage\r\n ? DerivedColor.color_border_danger\r\n : DerivedColor.color_border_brand_primary,\r\n borderWidth: 2,\r\n },\r\n },\r\n \"& .MuiInputBase-input\": {\r\n fontSize: 14,\r\n \"&::placeholder\": {\r\n fontSize: 14,\r\n },\r\n },\r\n \"& .MuiFormHelperText-root\": {\r\n marginLeft: 0,\r\n fontSize: 14,\r\n letterSpacing: 0,\r\n },\r\n }}\r\n InputProps={{\r\n readOnly: true,\r\n endAdornment: (\r\n <InputAdornment position=\"end\">\r\n {!!errorMessage && (\r\n <IconAlertCircleFilled size={18} color={PrimitiveColor.color_red_500} />\r\n )}\r\n <IconButton\r\n size=\"small\"\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n if (!isDisabled && (openBy === \"icon\" || openBy === \"both\")) setOpen(true);\r\n }}\r\n disabled={isDisabled}\r\n sx={{ p: \"4px\" }}\r\n >\r\n <IconCalendarWeekFilled size={20} color={DerivedColor.color_icon_brand_primary} />\r\n </IconButton>\r\n </InputAdornment>\r\n ),\r\n }}\r\n />\r\n\r\n <Popover\r\n open={open}\r\n anchorEl={inputRef.current}\r\n onClose={() => setOpen(false)}\r\n >\r\n <DateRange\r\n locale={id}\r\n editableDateInputs={editableDateInputs}\r\n ranges={[\r\n {\r\n ...rangeValue,\r\n key: \"selection\",\r\n },\r\n ]}\r\n onChange={(item) => {\r\n setRangeValue(item.selection);\r\n field.onChange(item.selection);\r\n onChangeCustom(item.selection);\r\n }}\r\n minDate={minDate}\r\n maxDate={maxDate}\r\n {...props}\r\n />\r\n </Popover>\r\n </Box>\r\n );\r\n }\r\n\r\n /* ================= NORMAL PICKERS ================= */\r\n const PickerComponent = pickerConfig.component ?? DatePicker;\r\n\r\n return (\r\n <Box sx={sx}>\r\n <LabelSection />\r\n\r\n <PickerComponent\r\n {...field}\r\n value={field.value ?? null}\r\n open={open}\r\n onOpen={() => {\r\n if (!isDisabled && (openBy === \"icon\" || openBy === \"both\")) setOpen(true);\r\n }}\r\n onClose={() => setOpen(false)}\r\n views={pickerConfig.views}\r\n openTo={pickerConfig.openTo}\r\n inputFormat={pickerConfig.inputFormat}\r\n disableMaskedInput\r\n minDate={minDate ? dayjs(minDate) : undefined}\r\n maxDate={maxDate ? dayjs(maxDate) : undefined}\r\n disabled={isDisabled}\r\n disableOpenPicker={openBy === \"field\"}\r\n components={{\r\n OpenPickerIcon: () => (\r\n <IconCalendarWeekFilled size={20} color={DerivedColor.color_icon_brand_primary} />\r\n ),\r\n }}\r\n onChange={(newValue) => {\r\n field.onChange(newValue);\r\n onChangeCustom(newValue);\r\n }}\r\n renderInput={(params) => (\r\n <TextField\r\n {...params}\r\n size=\"small\"\r\n fullWidth\r\n placeholder={placeholder}\r\n error={!!errorMessage}\r\n helperText={errorMessage}\r\n onClick={() => {\r\n if (!isDisabled && (openBy === \"field\" || openBy === \"both\")) setOpen(true);\r\n }}\r\n sx={{\r\n \"& .MuiOutlinedInput-root\": {\r\n borderRadius: Radius.radius_2,\r\n fontSize: 14,\r\n backgroundColor: isDisabled\r\n ? PrimitiveColor.color_neutral_200\r\n : DerivedColor.color_bg_surface,\r\n cursor: (openBy === \"field\" || openBy === \"both\") ? \"pointer\" : \"default\",\r\n\r\n \"& fieldset\": {\r\n borderColor: errorMessage\r\n ? DerivedColor.color_border_danger\r\n : DerivedColor.color_border_default,\r\n },\r\n\r\n \"&:hover fieldset\": {\r\n borderColor: errorMessage\r\n ? DerivedColor.color_border_danger\r\n : DerivedColor.color_border_brand_primary,\r\n },\r\n\r\n \"&.Mui-focused fieldset\": {\r\n borderColor: errorMessage\r\n ? DerivedColor.color_border_danger\r\n : DerivedColor.color_border_brand_primary,\r\n borderWidth: 2,\r\n },\r\n },\r\n\r\n \"& .MuiInputBase-input\": {\r\n padding: `${SpacingToken.spacing2} ${SpacingToken.spacing3}`,\r\n fontSize: 14,\r\n \"&::placeholder\": {\r\n fontSize: 14,\r\n },\r\n },\r\n\r\n \"& .MuiFormHelperText-root\": {\r\n marginLeft: 0,\r\n fontSize: 14,\r\n letterSpacing: 0,\r\n },\r\n }}\r\n InputProps={{\r\n ...params.InputProps,\r\n endAdornment: (\r\n <>\r\n {!!errorMessage && (\r\n <InputAdornment position=\"end\">\r\n <IconAlertCircleFilled size={18} color={DerivedColor.color_icon_danger} />\r\n </InputAdornment>\r\n )}\r\n {clearable && field.value && (\r\n <InputAdornment position=\"end\">\r\n <IconButton\r\n size=\"small\"\r\n onClick={handleClear}\r\n sx={{ color: DerivedColor.color_icon_subtle }}\r\n >\r\n <CloseIcon fontSize=\"small\" />\r\n </IconButton>\r\n </InputAdornment>\r\n )}\r\n {params.InputProps?.endAdornment}\r\n </>\r\n ),\r\n }}\r\n />\r\n )}\r\n />\r\n </Box>\r\n );\r\n};\r\n","\"use client\";\r\nimport Select, { components } from \"react-select\";\r\nimport AsyncSelect from \"react-select/async\";\r\nimport { useController } from \"react-hook-form\";\r\nimport { ErrorMessage } from \"@hookform/error-message\";\r\nimport BoxRaw from \"@mui/material/Box\";\r\nimport ChipRaw from \"@mui/material/Chip\";\r\nimport TypographyRaw from \"@mui/material/Typography\";\r\n\r\nimport { PrimitiveColor } from \"@/components/atoms/colors/primitive\";\r\nimport { DerivedColor } from \"@/components/atoms/colors/derived\";\r\nimport { Radius } from \"@/components/atoms/radius/radius\";\r\nimport { SpacingToken } from \"@/components/atoms/spacing_layout/spacing\";\r\nimport { BaseCheckbox } from \"@/components/molecules/checkbox/checkbox\";\r\n\r\nconst Box = BoxRaw?.default ?? BoxRaw;\r\nconst Chip = ChipRaw?.default ?? ChipRaw;\r\nconst Typography = TypographyRaw?.default ?? TypographyRaw;\r\n\r\n/* ================= CHECKBOX OPTION ================= */\r\nconst CheckboxOption = (props) => {\r\n const { isSelected, label, selectOption, data } = props;\r\n\r\n const handleChange = () => {\r\n selectOption(data);\r\n };\r\n\r\n return (\r\n <components.Option {...props}>\r\n <BaseCheckbox\r\n checked={isSelected}\r\n onChange={handleChange}\r\n label={label}\r\n disabled={data?.disabled}\r\n />\r\n </components.Option>\r\n );\r\n};\r\n\r\nexport const BaseDropdown = ({\r\n name = \"\",\r\n control,\r\n options = [],\r\n loadOptions,\r\n isMulti = false,\r\n isSearchable = true,\r\n showChip = false,\r\n showSelectAll = false,\r\n title,\r\n subtitle,\r\n defaultValue,\r\n isDisabled,\r\n isClearable = true,\r\n preventOverflow = false,\r\n optionColors = [\r\n PrimitiveColor.color_blue_cakrawala_100,\r\n PrimitiveColor.color_yellow_100,\r\n PrimitiveColor.color_green_100,\r\n PrimitiveColor.color_red_100,\r\n PrimitiveColor.color_blue_mentari_100,\r\n ],\r\n variant = \"select\",\r\n sx = {},\r\n ...props\r\n}) => {\r\n const { field, formState } = useController({\r\n name,\r\n control,\r\n defaultValue:\r\n defaultValue ?? (variant === \"checkbox\" || isMulti ? [] : null),\r\n });\r\n\r\n const SelectComponent = loadOptions ? AsyncSelect : Select;\r\n const hasError = !!formState.errors?.[name];\r\n\r\n const selectedValues = Array.isArray(field.value)\r\n ? field.value\r\n : field.value\r\n ? [field.value]\r\n : [];\r\n\r\n const isCheckboxMode = variant === \"checkbox\";\r\n\r\n /* ================= SELECT ALL ================= */\r\n const selectAllChecked =\r\n showSelectAll &&\r\n selectedValues.length === options.length &&\r\n options.length > 0;\r\n\r\n const selectAllIndeterminate =\r\n showSelectAll &&\r\n selectedValues.length > 0 &&\r\n selectedValues.length < options.length;\r\n\r\n const handleSelectAll = (checked) => {\r\n field.onChange(checked ? options : []);\r\n };\r\n\r\n /* ================= CHANGE ================= */\r\n const handleChange = (val) => {\r\n field.onChange(val);\r\n props.onChange?.(val);\r\n };\r\n\r\n /* ================= STYLES ================= */\r\n const customStyles = {\r\n control: (base, state) => ({\r\n ...base,\r\n borderRadius: Radius.radius_2,\r\n fontSize: 14,\r\n backgroundColor: isDisabled\r\n ? PrimitiveColor.color_neutral_200\r\n : PrimitiveColor.color_neutral_50,\r\n border: hasError\r\n ? `1px solid ${DerivedColor.color_border_danger}`\r\n : state.isFocused\r\n ? `2px solid ${DerivedColor.color_border_brand_primary}`\r\n : `1px solid ${DerivedColor.color_border_default}`,\r\n boxShadow: \"none\",\r\n \"&:hover\": {\r\n borderColor: hasError\r\n ? DerivedColor.color_border_danger\r\n : DerivedColor.color_border_brand_primary,\r\n },\r\n ...(preventOverflow && { maxHeight: 120, overflowY: \"auto\" }),\r\n }),\r\n\r\n option: (base, state) => ({\r\n ...base,\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n fontSize: 14,\r\n\r\n backgroundColor: isCheckboxMode\r\n ? state.isFocused\r\n ? PrimitiveColor.color_blue_cakrawala_100\r\n : \"transparent\"\r\n : state.isSelected\r\n ? PrimitiveColor.color_blue_cakrawala_500\r\n : state.isFocused\r\n ? PrimitiveColor.color_blue_cakrawala_100\r\n : \"transparent\",\r\n\r\n color: isCheckboxMode\r\n ? PrimitiveColor.color_neutral_900\r\n : state.isSelected\r\n ? PrimitiveColor.color_neutral_50\r\n : PrimitiveColor.color_neutral_900,\r\n\r\n \":active\": {\r\n backgroundColor: isCheckboxMode\r\n ? PrimitiveColor.color_blue_cakrawala_100\r\n : PrimitiveColor.color_blue_cakrawala_500,\r\n color: isCheckboxMode\r\n ? PrimitiveColor.color_neutral_900\r\n : PrimitiveColor.color_neutral_50,\r\n },\r\n }),\r\n\r\n multiValue: (base, { index }) => ({\r\n ...base,\r\n borderRadius: Radius.radius_2,\r\n backgroundColor: optionColors[index % optionColors.length],\r\n }),\r\n };\r\n\r\n return (\r\n <Box\r\n sx={{\r\n width: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: SpacingToken.spacing2,\r\n ...sx,\r\n }}\r\n >\r\n {(title || subtitle || showSelectAll) && (\r\n <Box sx={{ display: \"flex\", justifyContent: \"space-between\", alignItems: \"center\" }}>\r\n <Box sx={{ display: \"flex\", alignItems: \"center\", gap: SpacingToken.spacing2 }}>\r\n {title && (\r\n <Typography variant=\"body2\" sx={{ fontWeight: 600, fontSize: 14, color: hasError ? DerivedColor.color_text_danger : DerivedColor.color_text_default }}>\r\n {title}\r\n </Typography>\r\n )}\r\n {subtitle && (\r\n <Typography variant=\"body2\" sx={{ fontSize: 14, color: DerivedColor.color_text_subtle }}>\r\n {subtitle}\r\n </Typography>\r\n )}\r\n </Box>\r\n\r\n {showSelectAll && (\r\n <BaseCheckbox\r\n checked={selectAllChecked}\r\n onChange={handleSelectAll}\r\n label=\"Select All\"\r\n indeterminate={selectAllIndeterminate}\r\n />\r\n )}\r\n </Box>\r\n )}\r\n\r\n <SelectComponent\r\n {...props}\r\n name={field.name}\r\n inputRef={field.ref}\r\n onBlur={field.onBlur}\r\n isMulti={isCheckboxMode ? true : isMulti}\r\n isSearchable={isSearchable}\r\n isDisabled={isDisabled}\r\n isClearable={isClearable}\r\n styles={customStyles}\r\n options={options}\r\n loadOptions={loadOptions}\r\n value={field.value}\r\n onChange={handleChange}\r\n closeMenuOnSelect={isCheckboxMode ? false : true}\r\n hideSelectedOptions={isCheckboxMode ? false : isMulti ? true : false}\r\n components={\r\n isCheckboxMode\r\n ? {\r\n Option: CheckboxOption,\r\n IndicatorSeparator: null,\r\n }\r\n : {\r\n IndicatorSeparator: null,\r\n }\r\n }\r\n />\r\n\r\n {showChip && isMulti && !isCheckboxMode && (\r\n <Box sx={{ display: \"flex\", flexWrap: \"wrap\", gap: 1, mt: 1 }}>\r\n {selectedValues.map((option) => (\r\n <Chip\r\n key={option.value}\r\n label={option.label}\r\n size=\"small\"\r\n onDelete={() =>\r\n field.onChange(\r\n selectedValues.filter((v) => v.value !== option.value),\r\n )\r\n }\r\n />\r\n ))}\r\n </Box>\r\n )}\r\n\r\n <ErrorMessage\r\n errors={formState.errors}\r\n name={name}\r\n render={({ message }) => (\r\n <Typography\r\n variant=\"caption\"\r\n sx={{ color: DerivedColor.color_text_danger, fontSize: 14 }}\r\n >\r\n {message}\r\n </Typography>\r\n )}\r\n />\r\n </Box>\r\n );\r\n};\r\n","\"use client\";\r\n\r\nimport { useEffect, useState } from \"react\";\r\nimport Dropzone from \"react-dropzone\";\r\nimport BoxRaw from \"@mui/material/Box\";\r\n\r\nimport { BaseButton } from \"@/components/atoms/buttons/button\";\r\nimport { PrimitiveColor } from \"@/components/atoms/colors/primitive\";\r\nimport { DerivedColor } from \"@/components/atoms/colors/derived\";\r\nimport { Radius } from \"@/components/atoms/radius/radius\";\r\nimport { VariantStyles } from \"@/components/atoms/typography/typography\";\r\nimport { SpacingToken } from \"@/components/atoms/spacing_layout/spacing\";\r\n\r\nimport { IconUpload, IconXboxXFilled, IconAlertTriangle, IconTrash } from \"@tabler/icons-react\";\r\nimport { FileJPGHero } from \"@/components/legacy/atoms/icons/file-jpg-hero\";\r\nimport { FilePDFHero } from \"@/components/legacy/atoms/icons/file-pdf-hero\";\r\nimport { FileCSVHero } from \"@/components/legacy/atoms/icons/file-csv-hero\";\r\n\r\nconst Box = BoxRaw?.default ?? BoxRaw;\r\n\r\nexport const BaseDropzone = ({\r\n autoUpload = false,\r\n settings = {\r\n allowedExtensions: {},\r\n maxSize: 5,\r\n maxFiles: 1,\r\n isImagePreview: true,\r\n previewType: \"grid\",\r\n },\r\n labels = {\r\n title: \"\",\r\n dropzoneTitle: \"Drag & Drop File\",\r\n titleButton: \"Pilih File\",\r\n allowedFileLabel: \"\",\r\n },\r\n callbacks = {\r\n uploadFile: null,\r\n removeFile: null,\r\n customError: null,\r\n },\r\n}) => {\r\n const [files, setFiles] = useState([]);\r\n const [errorMessage, setErrorMessage] = useState(\"\");\r\n\r\n const isError = Boolean(errorMessage);\r\n const isSingle = settings.maxFiles === 1;\r\n\r\n /* ================================\r\n FILE READER (NO PROMISE)\r\n ================================= */\r\n const readFile = (file, callback) => {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n\r\n reader.onload = function () {\r\n callback({\r\n source: reader.result,\r\n originName: file.name,\r\n type: file.type,\r\n size: file.size,\r\n });\r\n };\r\n\r\n reader.onerror = function () {\r\n console.error(\"File reading failed\");\r\n };\r\n };\r\n\r\n /* ================================\r\n DROP HANDLER (NO ASYNC)\r\n ================================= */\r\n const handleDrop = (acceptedFiles) => {\r\n setErrorMessage(\"\");\r\n let tempFiles = [];\r\n let processedCount = 0;\r\n if (!acceptedFiles || acceptedFiles.length === 0) return;\r\n\r\n acceptedFiles.forEach((file) => {\r\n readFile(file, (fileData) => {\r\n tempFiles.push(fileData);\r\n processedCount++;\r\n\r\n if (processedCount === acceptedFiles.length) {\r\n setFiles((prevFiles) => {\r\n let updated;\r\n\r\n if (settings.maxFiles === 1) {\r\n updated = tempFiles.slice(0, 1);\r\n } else {\r\n updated = [...prevFiles, ...tempFiles].slice(\r\n 0,\r\n settings.maxFiles,\r\n );\r\n }\r\n\r\n if (autoUpload) {\r\n callbacks?.uploadFile?.(updated);\r\n }\r\n\r\n return updated;\r\n });\r\n }\r\n });\r\n });\r\n };\r\n\r\n /* ================================\r\n ERROR HANDLER\r\n ================================= */\r\n const handleRejected = (rejections) => {\r\n const error = rejections?.[0]?.errors?.[0]?.code;\r\n\r\n if (error === \"file-too-large\") {\r\n setErrorMessage(\r\n \"Ukuran file terlalu besar. Maksimal \" + settings.maxSize + \"MB.\",\r\n );\r\n }\r\n\r\n if (error === \"file-invalid-type\") {\r\n setErrorMessage(\"Format file tidak sesuai.\");\r\n }\r\n\r\n if (error === \"too-many-files\") {\r\n setErrorMessage(\"Maksimal upload \" + settings.maxFiles + \" file.\");\r\n }\r\n };\r\n\r\n const removeFile = (index) => {\r\n const removedFile = files[index];\r\n const updated = files.filter((_, i) => i !== index);\r\n\r\n setFiles(updated);\r\n callbacks?.removeFile?.(removedFile?.originName);\r\n callbacks?.uploadFile?.(updated);\r\n };\r\n\r\n useEffect(() => {\r\n if (callbacks?.customError) {\r\n setErrorMessage(callbacks.customError);\r\n }\r\n }, [callbacks?.customError]);\r\n\r\n const renderFileIcon = (file) => {\r\n if (file.type?.includes(\"pdf\")) return <FilePDFHero />;\r\n if (file.type?.includes(\"csv\")) return <FileCSVHero />;\r\n if (file.type?.includes(\"image\")) return <FileJPGHero />;\r\n return <FileJPGHero />;\r\n };\r\n\r\n /* ================================\r\n PREVIEW GRID\r\n ================================= */\r\n const PreviewGrid = () => (\r\n <Box\r\n sx={{ width: \"100%\", display: \"flex\", gap: 2, mt: 3, flexWrap: \"wrap\" }}\r\n >\r\n {files.map((file, index) => (\r\n <Box key={index} sx={{ position: \"relative\", width: 75 }}>\r\n <Box\r\n sx={{\r\n position: \"absolute\",\r\n right: -6,\r\n top: -6,\r\n cursor: \"pointer\",\r\n }}\r\n onClick={() => removeFile(index)}\r\n >\r\n <IconXboxXFilled size={16} color={DerivedColor.color_icon_danger} />\r\n </Box>\r\n\r\n {renderFileIcon(file)}\r\n\r\n <Box\r\n sx={{\r\n ...VariantStyles.caption_regular,\r\n mt: 1,\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n whiteSpace: \"nowrap\",\r\n }}\r\n >\r\n {file.originName}\r\n </Box>\r\n </Box>\r\n ))}\r\n </Box>\r\n );\r\n\r\n /* ================================\r\n PREVIEW LIST\r\n ================================= */\r\n const PreviewList = () => (\r\n <Box sx={{ mt: 3 }}>\r\n {files.map((file, index) => (\r\n <Box\r\n key={index}\r\n sx={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n padding: SpacingToken.spacing3,\r\n border: `1px solid ${PrimitiveColor.color_neutral_300}`,\r\n borderRadius: Radius.radius_2,\r\n mb: 2,\r\n }}\r\n >\r\n <Box sx={{ display: \"flex\", alignItems: \"center\", gap: 2 }}>\r\n {renderFileIcon(file)}\r\n <Box\r\n sx={{\r\n ...VariantStyles.body2_regular,\r\n maxWidth: 260,\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n whiteSpace: \"nowrap\",\r\n }}\r\n >\r\n {file.originName}\r\n </Box>\r\n </Box>\r\n\r\n <Box sx={{ cursor: \"pointer\" }} onClick={() => removeFile(index)}>\r\n <IconTrash size={20} color={PrimitiveColor.color_red_500} />\r\n </Box>\r\n </Box>\r\n ))}\r\n </Box>\r\n );\r\n\r\n return (\r\n <Box>\r\n {labels.title && (\r\n <Box\r\n sx={{\r\n ...VariantStyles.body1_regular,\r\n fontSize: 14,\r\n fontWeight: 600,\r\n mb: 2,\r\n width: \"100%\",\r\n color: isError\r\n ? DerivedColor.color_text_danger\r\n : DerivedColor.color_text_default,\r\n }}\r\n >\r\n {labels.title}\r\n </Box>\r\n )}\r\n\r\n <Box\r\n sx={{\r\n border: `2px ${files.length ? \"solid\" : \"dashed\"} ${\r\n isError\r\n ? DerivedColor.color_border_danger\r\n : files.length\r\n ? DerivedColor.color_border_brand_primary\r\n : DerivedColor.color_border_default\r\n }`,\r\n borderRadius: Radius.radius_2,\r\n padding: SpacingToken.spacing6,\r\n textAlign: \"center\",\r\n transition: \"border-color 0.2s\",\r\n \"&:hover\": {\r\n borderColor: isError\r\n ? DerivedColor.color_border_danger\r\n : DerivedColor.color_border_brand_primary,\r\n },\r\n }}\r\n >\r\n <Dropzone\r\n onDrop={handleDrop}\r\n onDropRejected={handleRejected}\r\n maxFiles={settings.maxFiles}\r\n maxSize={settings.maxSize * 1024 * 1024}\r\n accept={settings.allowedExtensions}\r\n multiple={!isSingle}\r\n >\r\n {({ getRootProps, getInputProps }) => (\r\n <Box\r\n {...getRootProps()}\r\n sx={{\r\n cursor: \"pointer\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n textAlign: \"center\",\r\n width: \"100%\",\r\n }}\r\n >\r\n <input {...getInputProps()} />\r\n\r\n <IconUpload size={32} color={DerivedColor.color_icon_brand_primary} />\r\n\r\n <Box sx={{ ...VariantStyles.header1_semibold, mt: 1 }}>\r\n {labels.dropzoneTitle}\r\n </Box>\r\n\r\n <Box\r\n sx={{\r\n ...VariantStyles.body1_regular,\r\n color: PrimitiveColor.color_neutral_600,\r\n my: 1,\r\n }}\r\n >\r\n atau\r\n </Box>\r\n\r\n <BaseButton\r\n variant=\"fill\"\r\n color=\"primary\"\r\n disabled={files.length >= settings.maxFiles}\r\n >\r\n {labels.titleButton}\r\n </BaseButton>\r\n\r\n {labels.allowedFileLabel && (\r\n <Box\r\n sx={{\r\n ...VariantStyles.caption_regular,\r\n color: PrimitiveColor.color_neutral_600,\r\n mt: 2,\r\n width: \"100%\",\r\n textAlign: \"center\",\r\n }}\r\n >\r\n {labels.allowedFileLabel}\r\n </Box>\r\n )}\r\n </Box>\r\n )}\r\n </Dropzone>\r\n </Box>\r\n\r\n {files.length > 0 &&\r\n (settings.previewType === \"list\" ? <PreviewList /> : <PreviewGrid />)}\r\n\r\n {isError && (\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: 1,\r\n mt: 2,\r\n color: DerivedColor.color_text_danger,\r\n ...VariantStyles.caption_regular,\r\n fontSize: 14,\r\n }}\r\n >\r\n <IconAlertTriangle size={16} />\r\n {errorMessage}\r\n </Box>\r\n )}\r\n </Box>\r\n );\r\n};\r\n","import RadioRaw from \"@mui/material/Radio\";\r\nimport RadioGroupRaw from \"@mui/material/RadioGroup\";\r\nimport FormControlLabelRaw from \"@mui/material/FormControlLabel\";\r\nimport FormControlRaw from \"@mui/material/FormControl\";\r\nimport BoxRaw from \"@mui/material/Box\";\r\nimport { useController } from \"react-hook-form\";\r\n\r\nimport { BaseTypography } from \"@/components/atoms/typography\";\r\nimport { PrimitiveColor } from \"@/components/atoms/colors/primitive\";\r\nimport { DerivedColor } from \"@/components/atoms/colors/derived\";\r\nimport { Radius } from \"@/components/atoms/radius/radius\";\r\nimport { SpacingToken } from \"@/components/atoms/spacing_layout/spacing\";\r\n\r\nimport { errorState } from \"@/utils/json\";\r\n\r\nconst Radio = RadioRaw?.default ?? RadioRaw;\r\nconst RadioGroup = RadioGroupRaw?.default ?? RadioGroupRaw;\r\nconst FormControlLabel = FormControlLabelRaw?.default ?? FormControlLabelRaw;\r\nconst FormControl = FormControlRaw?.default ?? FormControlRaw;\r\nconst Box = BoxRaw?.default ?? BoxRaw;\r\n\r\nexport const BaseRadioButton = ({\r\n name = \"\",\r\n control = null,\r\n defaultValue,\r\n title,\r\n options = [],\r\n\r\n /* ================= TYPOGRAPHY ================= */\r\n errorVariant = \"body1_regular.danger\",\r\n\r\n /* ================= LAYOUT ================= */\r\n orientation = \"vertical\",\r\n\r\n /* ================= COLOR TOKEN ================= */\r\n\r\n /* ================= STATE ================= */\r\n isDisabled,\r\n\r\n /* ================= ERROR ================= */\r\n useErrorStateHelper = false,\r\n\r\n /* ================= SX ================= */\r\n sx = {},\r\n\r\n ...restProps\r\n}) => {\r\n const { field, formState } = useController({ control, name, defaultValue });\r\n\r\n /* ================= ERROR ================= */\r\n const errorObject = useErrorStateHelper\r\n ? errorState(name, formState.errors)\r\n : null;\r\n\r\n const errorMessage =\r\n errorObject?.message?.toString() || formState.errors?.[name]?.message;\r\n\r\n /* ================= TOKEN RESOLVE ================= */\r\n const radioColor = PrimitiveColor.color_blue_cakrawala_500;\r\n\r\n const gapValue = SpacingToken?.spacing0;\r\n const isHorizontal = orientation === \"horizontal\";\r\n\r\n /* ================= Figma Item Style ================= */\r\n const radioItemSx = {\r\n minHeight: \"36px\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: SpacingToken.spacing0,\r\n px: SpacingToken.spacing0,\r\n py: SpacingToken.spacing0,\r\n borderRadius: Radius.radius_2,\r\n };\r\n\r\n /* ================= RENDER ================= */\r\n return (\r\n <Box sx={sx}>\r\n {/* TITLE */}\r\n {title && (\r\n <BaseTypography\r\n variant=\"body1_regular.default\"\r\n sx={{\r\n fontWeight: 600,\r\n color: !!formState.errors?.[name]\r\n ? DerivedColor.color_text_danger\r\n : DerivedColor.color_text_default,\r\n mb: \"4px\",\r\n }}\r\n >\r\n {title}\r\n </BaseTypography>\r\n )}\r\n\r\n <FormControl error={!!formState.errors?.[name]}>\r\n {/* GROUP */}\r\n <RadioGroup\r\n value={field.value}\r\n onChange={field.onChange}\r\n row={isHorizontal}\r\n sx={{ gap: gapValue }}\r\n {...restProps}\r\n >\r\n {options.length > 0\r\n ? options.map((item, index) => {\r\n const { isDisabled: itemDisabled, disabled: itemNativeDisabled, value, label, ...itemRest } = item;\r\n const optionDisabled = isDisabled ?? itemDisabled ?? itemNativeDisabled ?? false;\r\n return (\r\n <FormControlLabel\r\n key={`radio-item-${index}`}\r\n value={value}\r\n label={label}\r\n disabled={optionDisabled}\r\n sx={{\r\n ...radioItemSx,\r\n \"& .MuiFormControlLabel-label\": {\r\n fontSize: \"14px\",\r\n },\r\n }}\r\n control={\r\n <Radio\r\n sx={{\r\n \"&.Mui-checked\": {\r\n color: !!formState.errors?.[name]\r\n ? DerivedColor.color_text_danger\r\n : radioColor,\r\n },\r\n color: !!formState.errors?.[name]\r\n ? DerivedColor.color_text_danger\r\n : undefined,\r\n \"&.Mui-disabled\": {\r\n color: PrimitiveColor.color_neutral_400,\r\n },\r\n \"&.Mui-checked.Mui-disabled\": {\r\n color: PrimitiveColor.color_neutral_400,\r\n },\r\n }}\r\n />\r\n }\r\n {...itemRest}\r\n />\r\n );\r\n })\r\n : \"You must provide options props\"}\r\n </RadioGroup>\r\n\r\n {/* ERROR */}\r\n {errorMessage && (\r\n <BaseTypography variant={errorVariant} sx={{ mt: gapValue }}>\r\n {errorMessage}\r\n </BaseTypography>\r\n )}\r\n </FormControl>\r\n </Box>\r\n );\r\n};\r\n","import { Fragment } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport StepLabelRaw, { stepLabelClasses } from \"@mui/material/StepLabel\";\r\nimport StepConnectorRaw from \"@mui/material/StepConnector\";\r\nimport StepRaw from \"@mui/material/Step\";\r\nimport StepperRaw from \"@mui/material/Stepper\";\r\nimport StackRaw from \"@mui/material/Stack\";\r\nimport BoxRaw from \"@mui/material/Box\";\r\nimport { stepConnectorClasses } from \"@mui/material/StepConnector\";\r\nimport { styled } from \"@mui/material/styles\";\r\nimport TypographyRaw from \"@mui/material/Typography\";\r\nimport ButtonRaw from \"@mui/material/Button\";\r\nimport TooltipRaw, { tooltipClasses } from \"@mui/material/Tooltip\";\r\n\r\nimport { PrimitiveColor } from \"@/components/atoms/colors/primitive\";\r\nimport { SpacingToken } from \"@/components/atoms/spacing_layout/spacing\";\r\nimport CheckRaw from \"@mui/icons-material/Check\";\r\nimport CheckIconRaw from \"@mui/icons-material/Check\";\r\n\r\nconst Check = CheckRaw?.default ?? CheckRaw;\r\nconst CheckIcon = CheckIconRaw?.default ?? CheckIconRaw;\r\nconst StepLabel = StepLabelRaw?.default ?? StepLabelRaw;\r\nconst StepConnector = StepConnectorRaw?.default ?? StepConnectorRaw;\r\nconst Step = StepRaw?.default ?? StepRaw;\r\nconst Stepper = StepperRaw?.default ?? StepperRaw;\r\nconst Stack = StackRaw?.default ?? StackRaw;\r\nconst Box = BoxRaw?.default ?? BoxRaw;\r\nconst Typography = TypographyRaw?.default ?? TypographyRaw;\r\nconst Button = ButtonRaw?.default ?? ButtonRaw;\r\nconst Tooltip = TooltipRaw?.default ?? TooltipRaw;\r\n\r\n/* ================= SIMPLE STEP LABEL ================= */\r\nconst CustomStepLabel = styled(StepLabel)(({ orientation }) => ({\r\n ...(orientation === \"vertical\" && {\r\n alignItems: \"flex-start\",\r\n \"& .MuiStepLabel-labelContainer\": {\r\n marginLeft: 12,\r\n textAlign: \"left\",\r\n },\r\n }),\r\n \"& .MuiStepIcon-root\": {\r\n fontSize: \"28px\",\r\n },\r\n ...(orientation !== \"vertical\" && {\r\n [`&.${stepLabelClasses.alternativeLabel}`]: {\r\n textAlign: \"center\",\r\n },\r\n }),\r\n}));\r\n\r\n/* ================= SIMPLE CONNECTOR ================= */\r\nconst CustomConnector = styled(StepConnector)(({ orientation }) => ({\r\n ...(orientation === \"horizontal\" && {\r\n [`&.${stepConnectorClasses.alternativeLabel}`]: {\r\n top: 12,\r\n left: \"calc(-50% + 12px)\",\r\n right: \"calc(50% + 12px)\",\r\n },\r\n [`& .${stepConnectorClasses.line}`]: {\r\n borderColor: PrimitiveColor.color_neutral_300,\r\n borderTopWidth: 2,\r\n borderRadius: 1,\r\n },\r\n }),\r\n ...(orientation === \"vertical\" && {\r\n [`&.${stepConnectorClasses.vertical}`]: {\r\n marginLeft: 20,\r\n },\r\n [`& .${stepConnectorClasses.line}`]: {\r\n borderLeftWidth: 3,\r\n borderLeftStyle: \"solid\",\r\n borderLeftColor: PrimitiveColor.color_neutral_300,\r\n minHeight: 24,\r\n borderRadius: 1,\r\n },\r\n [`&.${stepConnectorClasses.active} .${stepConnectorClasses.line}`]: {\r\n borderLeftColor: PrimitiveColor.color_green_500,\r\n },\r\n [`&.${stepConnectorClasses.completed} .${stepConnectorClasses.line}`]: {\r\n borderLeftColor: PrimitiveColor.color_green_500,\r\n },\r\n }),\r\n}));\r\n\r\n/* ================= DASHBOARD CONNECTOR ================= */\r\nconst ColorlibConnector = styled(StepConnector)(({ orientation }) => {\r\n const isVertical = orientation === \"vertical\";\r\n\r\n return {\r\n ...(!isVertical && {\r\n [`&.${stepConnectorClasses.alternativeLabel}`]: { top: 22 },\r\n [`&.${stepConnectorClasses.active} .${stepConnectorClasses.line}`]: {\r\n backgroundColor: PrimitiveColor.color_green_500,\r\n },\r\n [`&.${stepConnectorClasses.completed} .${stepConnectorClasses.line}`]: {\r\n backgroundColor: PrimitiveColor.color_green_500,\r\n },\r\n [`& .${stepConnectorClasses.line}`]: {\r\n height: 3,\r\n border: 0,\r\n backgroundColor: PrimitiveColor.color_neutral_300,\r\n borderRadius: 1,\r\n },\r\n }),\r\n ...(isVertical && {\r\n [`&.${stepConnectorClasses.vertical}`]: {\r\n marginLeft: 25,\r\n minHeight: 50,\r\n },\r\n [`&.${stepConnectorClasses.vertical} .${stepConnectorClasses.line}`]: {\r\n borderLeftWidth: 3,\r\n borderLeftStyle: \"solid\",\r\n borderLeftColor: PrimitiveColor.color_neutral_300,\r\n minHeight: 50,\r\n borderRadius: 1,\r\n },\r\n [`&.${stepConnectorClasses.vertical}.${stepConnectorClasses.active} .${stepConnectorClasses.line}`]:\r\n {\r\n borderLeftColor: PrimitiveColor.color_green_500,\r\n },\r\n [`&.${stepConnectorClasses.vertical}.${stepConnectorClasses.completed} .${stepConnectorClasses.line}`]:\r\n {\r\n borderLeftColor: PrimitiveColor.color_green_500,\r\n },\r\n }),\r\n };\r\n});\r\n\r\n/* ================= DASHBOARD STEP ICON ================= */\r\nconst ColorlibStepIconRoot = styled(\"div\")(({ ownerState }) => ({\r\n backgroundColor: ownerState.completed\r\n ? PrimitiveColor.color_green_500\r\n : ownerState.active\r\n ? PrimitiveColor.color_blue_cakrawala_500\r\n : PrimitiveColor.color_neutral_600,\r\n zIndex: 1,\r\n color: PrimitiveColor.color_neutral_50,\r\n width: 50,\r\n height: 50,\r\n display: \"flex\",\r\n borderRadius: \"50%\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n}));\r\n\r\nfunction ColorlibStepIcon({ active, completed, index }) {\r\n return (\r\n <ColorlibStepIconRoot ownerState={{ active, completed }}>\r\n {completed ? (\r\n <Check />\r\n ) : (\r\n <Typography variant=\"h6\">{index + 1}</Typography>\r\n )}\r\n </ColorlibStepIconRoot>\r\n );\r\n}\r\n\r\nconst CustomCheckIcon = styled(CheckIcon)({\r\n backgroundColor: PrimitiveColor.color_green_500,\r\n zIndex: 1,\r\n color: PrimitiveColor.color_neutral_50,\r\n width: 20,\r\n height: 20,\r\n padding: 1,\r\n display: \"flex\",\r\n borderRadius: \"50%\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n});\r\n\r\nconst CustomProcessIcon = styled(CheckIcon)({\r\n backgroundColor: PrimitiveColor.color_neutral_300,\r\n zIndex: 1,\r\n color: PrimitiveColor.color_neutral_50,\r\n width: 20,\r\n height: 20,\r\n padding: 1,\r\n display: \"flex\",\r\n borderRadius: \"50%\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n});\r\n\r\n/* ================= TOOLTIP ================= */\r\nconst HtmlTooltip = styled(({ className, ...props }) => (\r\n <Tooltip {...props} classes={{ popper: className }} />\r\n))(() => ({\r\n [`& .${tooltipClasses.tooltip}`]: {\r\n backgroundColor: PrimitiveColor.color_neutral_200,\r\n color: PrimitiveColor.color_neutral_900,\r\n maxWidth: 400,\r\n fontSize: 12,\r\n border: `1px solid ${PrimitiveColor.color_neutral_600}`,\r\n },\r\n}));\r\n\r\n/* ================= BASE STEPPER ================= */\r\nexport const BaseStepper = ({\r\n steps = [],\r\n activeStep = 0,\r\n orientation = \"horizontal\",\r\n variant = \"simple\",\r\n sx = {},\r\n}) => {\r\n if (variant === \"dashboard\") {\r\n const countCompletedSteps = (steps) =>\r\n steps?.filter((s) => s?.is_done === 1).length || 0;\r\n\r\n return (\r\n <Stack sx={{ width: \"100%\", ...sx }} spacing={4}>\r\n <Stepper\r\n alternativeLabel={orientation === \"horizontal\"}\r\n activeStep={countCompletedSteps(steps)}\r\n connector={<ColorlibConnector orientation={orientation} />}\r\n orientation={orientation}\r\n >\r\n {steps?.map((step, index) => (\r\n <Step key={index}>\r\n <StepLabel\r\n StepIconComponent={(props) => (\r\n <ColorlibStepIcon {...props} index={index} />\r\n )}\r\n >\r\n <HtmlTooltip\r\n title={\r\n <Fragment>\r\n <Typography color=\"inherit\">{step?.title}</Typography>\r\n {step?.sublist?.map((list, subIndex) => (\r\n <Box key={subIndex} sx={{ display: \"grid\", gap: 1, mt: 0.5 }}>\r\n <Box sx={{ display: \"flex\", gap: 1, alignItems: \"center\" }}>\r\n {list?.is_done === 1 ? (\r\n <Box sx={{ display: \"flex\", alignItems: \"center\" }}>\r\n <CustomCheckIcon />\r\n </Box>\r\n ) : (\r\n <Box sx={{ display: \"flex\", alignItems: \"center\" }}>\r\n <CustomProcessIcon />\r\n </Box>\r\n )}\r\n <Box>{list?.sublist_title}</Box>\r\n </Box>\r\n </Box>\r\n ))}\r\n </Fragment>\r\n }\r\n >\r\n <Button\r\n sx={{\r\n color: PrimitiveColor.color_neutral_900,\r\n border: \"none\",\r\n cursor: \"pointer\",\r\n textTransform: \"none\",\r\n }}\r\n >\r\n {step?.title}\r\n </Button>\r\n </HtmlTooltip>\r\n </StepLabel>\r\n </Step>\r\n ))}\r\n </Stepper>\r\n </Stack>\r\n );\r\n }\r\n\r\n // Simple variant\r\n return (\r\n <Box sx={{ width: \"100%\", ...sx }}>\r\n <Stepper\r\n activeStep={activeStep}\r\n alternativeLabel={orientation === \"horizontal\"}\r\n connector={<CustomConnector />}\r\n orientation={orientation}\r\n >\r\n {steps.map((step, index) => {\r\n const isActive = index === activeStep;\r\n const isCompleted = index < activeStep;\r\n let statusColor = PrimitiveColor.color_neutral_600;\r\n if (isActive) statusColor = PrimitiveColor.color_blue_cakrawala_500;\r\n if (isCompleted) statusColor = PrimitiveColor.color_green_500;\r\n\r\n return (\r\n <Step key={index}>\r\n <CustomStepLabel orientation={orientation}>\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: orientation === \"vertical\" ? \"flex-start\" : \"center\",\r\n gap: SpacingToken.spacing4,\r\n }}\r\n >\r\n <Typography\r\n sx={{ fontSize: 14, fontWeight: 400, color: statusColor }}\r\n >\r\n {step.status}\r\n </Typography>\r\n\r\n <Typography\r\n sx={{ fontSize: 12, fontWeight: 400, color: PrimitiveColor.color_neutral_700 }}\r\n >\r\n {step.label}\r\n </Typography>\r\n </Box>\r\n </CustomStepLabel>\r\n </Step>\r\n );\r\n })}\r\n </Stepper>\r\n </Box>\r\n );\r\n};\r\n\r\nBaseStepper.propTypes = {\r\n steps: PropTypes.array,\r\n activeStep: PropTypes.number,\r\n orientation: PropTypes.oneOf([\"horizontal\", \"vertical\"]),\r\n variant: PropTypes.oneOf([\"simple\", \"dashboard\"]),\r\n sx: PropTypes.object,\r\n};\r\n","\"use client\";\r\nimport InputAdornmentRaw from \"@mui/material/InputAdornment\";\r\nimport TextFieldRaw from \"@mui/material/TextField\";\r\nimport BoxRaw from \"@mui/material/Box\";\r\nimport TypographyRaw from \"@mui/material/Typography\";\r\nimport { useController } from \"react-hook-form\";\r\nimport { IconAlertCircleFilled } from \"@tabler/icons-react\";\r\nimport { useEffect, useMemo, useRef, useState, useCallback } from \"react\";\r\nimport { PrimitiveColor } from \"@/components/atoms/colors/primitive\";\r\nimport { DerivedColor } from \"@/components/atoms/colors/derived\";\r\nimport { Radius } from \"@/components/atoms/radius/radius\";\r\nimport { SpacingToken } from \"@/components/atoms/spacing_layout/spacing\";\r\nimport { VariantStyles } from \"@/components/atoms/typography/typography\";\r\n\r\nconst InputAdornment = InputAdornmentRaw?.default ?? InputAdornmentRaw;\r\nconst TextField = TextFieldRaw?.default ?? TextFieldRaw;\r\nconst Box = BoxRaw?.default ?? BoxRaw;\r\nconst Typography = TypographyRaw?.default ?? TypographyRaw;\r\n\r\nexport const BaseTextField = ({\r\n name = \"\",\r\n control = null,\r\n defaultValue,\r\n maxLength,\r\n showLength,\r\n isNumericOnly,\r\n isAlphaNumericOnly,\r\n isAlphaOnly,\r\n allowedSpecialCharacters = \"\",\r\n dontAllowedSpecialCharacters = \"\",\r\n isDisabled,\r\n isCantPaste,\r\n result,\r\n resultColor,\r\n noSpaceAllowed,\r\n showCountHelper = false,\r\n textMask = \"\",\r\n InputProps: externalInputProps,\r\n inputProps: externalInputPropsLower,\r\n sx = {},\r\n ...props\r\n}) => {\r\n const { field, formState } = useController({ control, name, defaultValue });\r\n\r\n const inputRef = useRef(null);\r\n const hasMask = !!textMask;\r\n const maskSlots = useMemo(\r\n () => (hasMask ? (textMask.match(/x/gi) || []).length : 0),\r\n [textMask, hasMask],\r\n );\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n const sanitizeRaw = useCallback((s) => {\r\n const str = s || \"\";\r\n return isNumericOnly\r\n ? str.replace(/[^0-9]/g, \"\")\r\n : str.replace(/[^a-zA-Z0-9]/g, \"\");\r\n });\r\n\r\n const applyMask = (raw, mask) => {\r\n if (!mask) return raw || \"\";\r\n const chars = (raw || \"\").split(\"\");\r\n let i = 0;\r\n let out = \"\";\r\n for (let m = 0; m < mask.length; m++) {\r\n const ch = mask[m];\r\n if (ch.toLowerCase() === \"x\") {\r\n if (i < chars.length) {\r\n out += chars[i++];\r\n } else {\r\n break;\r\n }\r\n } else {\r\n if (i < chars.length) {\r\n out += ch;\r\n } else {\r\n break;\r\n }\r\n }\r\n }\r\n return out;\r\n };\r\n\r\n const extractRawFromDisplay = (display, mask) => {\r\n if (!mask) return display || \"\";\r\n const onlyAlphaNum = (display || \"\").replace(/[^a-zA-Z0-9]/g, \"\");\r\n return onlyAlphaNum.slice(0, maskSlots);\r\n };\r\n\r\n const computeCaretFromRawLen = (rawLen, mask) => {\r\n if (!mask) return rawLen;\r\n let needed = rawLen;\r\n let pos = 0;\r\n for (let i = 0; i < mask.length; i++) {\r\n const ch = mask[i];\r\n if (ch.toLowerCase() === \"x\") {\r\n if (needed > 0) {\r\n needed--;\r\n pos = i + 1;\r\n } else {\r\n break;\r\n }\r\n } else {\r\n if (needed > 0) {\r\n pos = i + 1;\r\n } else {\r\n break;\r\n }\r\n }\r\n }\r\n return pos;\r\n };\r\n\r\n const [displayValue, setDisplayValue] = useState(() =>\r\n hasMask ? applyMask(sanitizeRaw(field.value), textMask) : field.value || \"\",\r\n );\r\n\r\n useEffect(() => {\r\n if (hasMask) {\r\n const raw = sanitizeRaw(field.value);\r\n setDisplayValue(applyMask(raw.slice(0, maskSlots), textMask));\r\n }\r\n }, [field.value, hasMask, textMask, maskSlots, sanitizeRaw]);\r\n\r\n const getAllowedPattern = () => {\r\n let allowedPattern = \"a-zA-Z0-9\";\r\n\r\n if (allowedSpecialCharacters) {\r\n allowedPattern += allowedSpecialCharacters.replace(\r\n /[-/\\\\^$*+?.()|%[\\]{}]/g,\r\n \"\\\\$&\",\r\n );\r\n }\r\n\r\n if (dontAllowedSpecialCharacters) {\r\n const disallowedChars = dontAllowedSpecialCharacters.replace(\r\n /[-/\\\\^$*+?.()|%[\\]{}]/g,\r\n \"\\\\$&\",\r\n );\r\n allowedPattern = allowedPattern.replace(\r\n new RegExp(`[${disallowedChars}\\\\s]`, \"g\"),\r\n \"\",\r\n );\r\n }\r\n\r\n return new RegExp(`^[${allowedPattern}\\\\s]+$`);\r\n };\r\n\r\n const handleKeyDown = (e) => {\r\n if (hasMask) {\r\n const input = e.target;\r\n const value = input.value || \"\";\r\n const selectionStart = input.selectionStart ?? value.length;\r\n const selectionEnd = input.selectionEnd ?? value.length;\r\n\r\n const allowedKeys = [\r\n \"Tab\",\r\n \"Backspace\",\r\n \"Delete\",\r\n \"ArrowLeft\",\r\n \"ArrowRight\",\r\n \"Home\",\r\n \"End\",\r\n ];\r\n if (\r\n (e.ctrlKey || e.metaKey) &&\r\n [\"a\", \"c\", \"v\", \"x\"].includes(e.key.toLowerCase())\r\n ) {\r\n return;\r\n }\r\n if (allowedKeys.includes(e.key)) {\r\n const isBackspace = e.key === \"Backspace\";\r\n const isDelete = e.key === \"Delete\";\r\n if (selectionStart !== selectionEnd) {\r\n return;\r\n }\r\n const raw = sanitizeRaw(field.value).slice(0, maskSlots);\r\n let rawArr = raw.split(\"\");\r\n if (isBackspace && selectionStart > 0) {\r\n let pos = selectionStart - 1;\r\n while (pos > 0 && textMask[pos].toLowerCase() !== \"x\") pos--;\r\n if (rawArr.length > 0) rawArr = rawArr.slice(0, rawArr.length - 1);\r\n const newRaw = rawArr.join(\"\");\r\n const newDisplay = applyMask(newRaw, textMask);\r\n e.preventDefault();\r\n setDisplayValue(newDisplay);\r\n field.onChange(newRaw);\r\n requestAnimationFrame(() => {\r\n try {\r\n const caret = computeCaretFromRawLen(newRaw.length, textMask);\r\n input.setSelectionRange(caret, caret);\r\n } catch {\r\n // Do nothing\r\n }\r\n });\r\n return;\r\n }\r\n\r\n if (isDelete && selectionStart < value.length) {\r\n let pos = selectionStart;\r\n while (pos < textMask.length && textMask[pos].toLowerCase() !== \"x\")\r\n pos++;\r\n if (rawArr.length > 0 && pos < textMask.length) {\r\n const xBefore = (textMask.slice(0, pos).match(/x/gi) || []).length;\r\n if (xBefore < rawArr.length) {\r\n rawArr.splice(xBefore, 1);\r\n } else {\r\n rawArr = rawArr.slice(0, rawArr.length - 1);\r\n }\r\n const newRaw = rawArr.join(\"\");\r\n const newDisplay = applyMask(newRaw, textMask);\r\n e.preventDefault();\r\n setDisplayValue(newDisplay);\r\n field.onChange(newRaw);\r\n requestAnimationFrame(() => {\r\n try {\r\n const caret = computeCaretFromRawLen(newRaw.length, textMask);\r\n input.setSelectionRange(caret, caret);\r\n } catch {\r\n // Do nothing\r\n }\r\n });\r\n return;\r\n }\r\n }\r\n return;\r\n }\r\n\r\n const isChar = e.key.length === 1;\r\n if (isChar) {\r\n const allow = isNumericOnly ? /[0-9]/ : /[a-zA-Z0-9]/;\r\n if (!allow.test(e.key)) {\r\n e.preventDefault();\r\n return;\r\n }\r\n const currentRaw = sanitizeRaw(field.value).slice(0, maskSlots);\r\n let rawArr = currentRaw.split(\"\");\r\n const xBeforeCaret = (\r\n textMask.slice(0, selectionStart).match(/x/gi) || []\r\n ).length;\r\n const xBeforeEnd = (\r\n textMask\r\n .slice(0, e.target.selectionEnd ?? selectionStart)\r\n .match(/x/gi) || []\r\n ).length;\r\n\r\n const startIdx = xBeforeCaret;\r\n const endIdx = Math.min(xBeforeEnd, rawArr.length);\r\n rawArr.splice(startIdx, endIdx - startIdx, e.key);\r\n\r\n const newRaw = rawArr.join(\"\").slice(0, maskSlots);\r\n const newDisplay = applyMask(newRaw, textMask);\r\n\r\n e.preventDefault();\r\n setDisplayValue(newDisplay);\r\n field.onChange(newRaw);\r\n\r\n requestAnimationFrame(() => {\r\n try {\r\n const caret = computeCaretFromRawLen(startIdx + 1, textMask);\r\n input.setSelectionRange(caret, caret);\r\n } catch {\r\n // Do nothing\r\n }\r\n });\r\n }\r\n return;\r\n }\r\n let allowedPattern;\r\n const allowedKeys = [\r\n \"Tab\",\r\n \"Backspace\",\r\n \"Delete\",\r\n \"ArrowLeft\",\r\n \"ArrowRight\",\r\n ];\r\n const alphanumericWithUnderscorePattern = /^[a-zA-Z0-9_]+$/;\r\n\r\n if ((e.ctrlKey || e.metaKey) && e.key === \"v\") {\r\n return;\r\n }\r\n\r\n if (noSpaceAllowed && e.code === \"Space\") {\r\n e.preventDefault();\r\n }\r\n if (isNumericOnly) {\r\n allowedPattern = /^[0-9]+$/;\r\n if (!allowedKeys.includes(e.key) && !allowedPattern.test(e.key)) {\r\n e.preventDefault();\r\n }\r\n }\r\n if (isAlphaNumericOnly) {\r\n allowedPattern = /^[a-zA-Z0-9]+$/;\r\n if (!allowedKeys.includes(e.key) && !allowedPattern.test(e.key)) {\r\n e.preventDefault();\r\n }\r\n }\r\n if (isAlphaOnly) {\r\n allowedPattern = /^[a-zA-Z\\s]+$/;\r\n if (!allowedKeys.includes(e.key) && !allowedPattern.test(e.key)) {\r\n e.preventDefault();\r\n }\r\n }\r\n if (allowedSpecialCharacters) {\r\n allowedPattern = getAllowedPattern();\r\n if (!allowedKeys.includes(e.key) && !allowedPattern.test(e.key)) {\r\n e.preventDefault();\r\n }\r\n }\r\n if (dontAllowedSpecialCharacters) {\r\n const disallowedChars = dontAllowedSpecialCharacters.replace(\r\n /[-/\\\\^$*+?.()|%[\\]{}]/g,\r\n \"\\\\$&\",\r\n );\r\n const pattern = new RegExp(`[${disallowedChars}\\\\s]`, \"g\");\r\n if (!allowedKeys.includes(e.key) && pattern.test(e.key)) {\r\n e.preventDefault();\r\n }\r\n }\r\n };\r\n\r\n const handlePaste = (e) => {\r\n if (hasMask) {\r\n if (isCantPaste) {\r\n e.preventDefault();\r\n return;\r\n }\r\n const pastedData = e.clipboardData.getData(\"Text\") || \"\";\r\n const cleaned = sanitizeRaw(pastedData);\r\n const input = e.target;\r\n const selectionStart = input.selectionStart ?? 0;\r\n const selectionEnd = input.selectionEnd ?? 0;\r\n\r\n const currentRaw = sanitizeRaw(field.value).slice(0, maskSlots);\r\n let rawArr = currentRaw.split(\"\");\r\n\r\n const xStart = (textMask.slice(0, selectionStart).match(/x/gi) || [])\r\n .length;\r\n const xEnd = (textMask.slice(0, selectionEnd).match(/x/gi) || []).length;\r\n\r\n rawArr.splice(xStart, Math.max(0, xEnd - xStart), ...cleaned.split(\"\"));\r\n\r\n const newRaw = rawArr.join(\"\").slice(0, maskSlots);\r\n const newDisplay = applyMask(newRaw, textMask);\r\n\r\n e.preventDefault();\r\n setDisplayValue(newDisplay);\r\n field.onChange(newRaw);\r\n\r\n requestAnimationFrame(() => {\r\n try {\r\n const caret = computeCaretFromRawLen(\r\n xStart + cleaned.length,\r\n textMask,\r\n );\r\n input.setSelectionRange(caret, caret);\r\n } catch {\r\n // Do nothing\r\n }\r\n });\r\n return;\r\n }\r\n\r\n const pastedData = e.clipboardData.getData(\"Text\");\r\n let sanitizedData = pastedData;\r\n\r\n if (isCantPaste) {\r\n e.preventDefault();\r\n return;\r\n }\r\n\r\n if (noSpaceAllowed) {\r\n sanitizedData = sanitizedData.replace(/\\s+/g, \"\");\r\n }\r\n\r\n if (allowedSpecialCharacters) {\r\n const specialChars = allowedSpecialCharacters\r\n ? allowedSpecialCharacters.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\")\r\n : \"\";\r\n const pattern = new RegExp(`[^a-zA-Z0-9${specialChars}\\\\s]`, \"g\");\r\n sanitizedData = pastedData.replace(pattern, \"\");\r\n }\r\n\r\n if (dontAllowedSpecialCharacters) {\r\n const dontAllowedChars = dontAllowedSpecialCharacters\r\n ? dontAllowedSpecialCharacters.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\")\r\n : \"\";\r\n const pattern = new RegExp(`[^a-zA-Z0-9${dontAllowedChars}\\\\s]`, \"g\");\r\n sanitizedData = pastedData.replace(pattern, \"\");\r\n }\r\n\r\n if (isNumericOnly) {\r\n sanitizedData = sanitizedData.replace(/[^0-9]/g, \"\");\r\n }\r\n\r\n if (isAlphaOnly) {\r\n sanitizedData = sanitizedData.replace(/[^a-zA-Z\\s]/g, \"\");\r\n }\r\n\r\n const { selectionStart, selectionEnd } = e.target;\r\n const value = e.target.value;\r\n\r\n // Check maxLength before creating newValue\r\n if (\r\n maxLength &&\r\n value.length - (selectionEnd - selectionStart) + sanitizedData.length >\r\n maxLength\r\n ) {\r\n sanitizedData = sanitizedData.substring(\r\n 0,\r\n maxLength - (value.length - (selectionEnd - selectionStart)),\r\n );\r\n }\r\n\r\n const newValue =\r\n value.substring(0, selectionStart) +\r\n sanitizedData +\r\n value.substring(selectionEnd);\r\n\r\n e.target.value = newValue;\r\n\r\n const newPosition = selectionStart + sanitizedData.length;\r\n e.target.setSelectionRange(newPosition, newPosition);\r\n\r\n field.onChange(e);\r\n e.preventDefault();\r\n };\r\n\r\n const handleChangeMasked = (e) => {\r\n const nextDisplay = e.target.value || \"\";\r\n const raw = extractRawFromDisplay(nextDisplay, textMask).slice(\r\n 0,\r\n maskSlots,\r\n );\r\n const newDisplay = applyMask(raw, textMask);\r\n setDisplayValue(newDisplay);\r\n field.onChange(raw);\r\n\r\n requestAnimationFrame(() => {\r\n try {\r\n const caret = computeCaretFromRawLen(raw.length, textMask);\r\n inputRef.current?.setSelectionRange(caret, caret);\r\n } catch {\r\n // Do nothing\r\n }\r\n });\r\n };\r\n\r\n return (\r\n <Box sx={sx}>\r\n {props.title && (\r\n <Typography\r\n variant=\"body2\"\r\n sx={{\r\n fontWeight: 600,\r\n color: !!formState.errors?.[name]\r\n ? DerivedColor.color_text_danger\r\n : DerivedColor.color_text_default,\r\n mb: \"4px\",\r\n }}\r\n >\r\n {props.title}\r\n </Typography>\r\n )}\r\n <TextField\r\n id={props.id || `field-${name}`}\r\n variant=\"outlined\"\r\n fullWidth\r\n error={!!formState.errors?.[name]}\r\n helperText={\r\n <>\r\n <Box component=\"span\">\r\n {formState.errors?.[name]?.message ||\r\n (maxLength && showLength\r\n ? `Maksimal ${maxLength} Karakter`\r\n : \"\")}\r\n </Box>\r\n {maxLength && showCountHelper && (\r\n <Box component=\"span\" sx={{ ml: \"auto\" }}>\r\n {field.value?.length || 0}/{maxLength}\r\n </Box>\r\n )}\r\n </>\r\n }\r\n FormHelperTextProps={{\r\n sx: {\r\n fontSize: 14,\r\n ml: 0,\r\n letterSpacing: 0,\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n },\r\n }}\r\n size=\"small\"\r\n disabled={isDisabled}\r\n onKeyDown={\r\n hasMask\r\n ? handleKeyDown\r\n : noSpaceAllowed ||\r\n isAlphaOnly ||\r\n isNumericOnly ||\r\n isAlphaNumericOnly ||\r\n allowedSpecialCharacters ||\r\n dontAllowedSpecialCharacters\r\n ? handleKeyDown\r\n : null\r\n }\r\n onPaste={\r\n hasMask\r\n ? handlePaste\r\n : noSpaceAllowed ||\r\n isAlphaOnly ||\r\n isNumericOnly ||\r\n isCantPaste ||\r\n allowedSpecialCharacters ||\r\n dontAllowedSpecialCharacters\r\n ? handlePaste\r\n : null\r\n }\r\n inputRef={inputRef}\r\n inputProps={{\r\n maxLength: hasMask ? textMask.length : maxLength,\r\n ...externalInputPropsLower,\r\n }}\r\n sx={{\r\n \"& .MuiOutlinedInput-root\": {\r\n \"& fieldset\": {\r\n borderColor: !!formState.errors?.[name]\r\n ? DerivedColor.color_border_danger\r\n : DerivedColor.color_border_default,\r\n },\r\n \"&:hover fieldset\": {\r\n borderColor: !!formState.errors?.[name]\r\n ? DerivedColor.color_border_danger\r\n : DerivedColor.color_border_brand_primary,\r\n },\r\n \"&.Mui-focused fieldset\": {\r\n borderColor: !!formState.errors?.[name]\r\n ? DerivedColor.color_border_danger\r\n : DerivedColor.color_border_brand_primary,\r\n borderWidth: 2,\r\n },\r\n },\r\n }}\r\n InputProps={{\r\n ...externalInputProps,\r\n sx: {\r\n borderRadius: Radius.radius_2,\r\n fontSize: 14,\r\n backgroundColor: isDisabled\r\n ? PrimitiveColor.color_neutral_200\r\n : PrimitiveColor.color_neutral_50,\r\n color: isDisabled\r\n ? PrimitiveColor.color_neutral_600\r\n : PrimitiveColor.color_neutral_900,\r\n \"& input::placeholder\": {\r\n fontSize: 14,\r\n },\r\n ...externalInputProps?.sx,\r\n },\r\n startAdornment: externalInputProps?.startAdornment,\r\n endAdornment: (\r\n <>\r\n {!!formState.errors?.[name] && (\r\n <InputAdornment position=\"end\">\r\n <IconAlertCircleFilled size={18} color={DerivedColor.color_icon_danger} />\r\n </InputAdornment>\r\n )}\r\n {externalInputProps?.endAdornment}\r\n </>\r\n ),\r\n }}\r\n value={hasMask ? (displayValue ?? \"\") : (field.value ?? \"\")}\r\n onChange={hasMask ? handleChangeMasked : field.onChange}\r\n {...props}\r\n {...(hasMask ? {} : field)}\r\n />\r\n {result && (\r\n <Typography\r\n sx={{\r\n ...VariantStyles.body1_regular,\r\n color: resultColor,\r\n mt: SpacingToken.spacing1,\r\n }}\r\n >\r\n {result}\r\n </Typography>\r\n )}\r\n </Box>\r\n );\r\n};\r\n","\"use client\";\r\n\r\nimport { useRef, useState } from \"react\";\r\nimport BoxRaw from \"@mui/material/Box\";\r\nimport ButtonRaw from \"@mui/material/Button\";\r\nimport InputRaw from \"@mui/material/Input\";\r\nimport TextFieldRaw from \"@mui/material/TextField\";\r\nimport TypographyRaw from \"@mui/material/Typography\";\r\nimport { useController, useForm } from \"react-hook-form\";\r\n\r\nimport { PrimitiveColor } from \"@/components/atoms/colors/primitive\";\r\nimport { DerivedColor } from \"@/components/atoms/colors/derived\";\r\nimport { Radius } from \"@/components/atoms/radius/radius\";\r\nimport { SpacingToken } from \"@/components/atoms/spacing_layout/spacing\";\r\nimport { BaseTypography, VariantStyles } from \"@/components/atoms/typography/typography\";\r\nimport { IconInfoCircle } from \"@tabler/icons-react\";\r\nimport UploadFileRaw from \"@mui/icons-material/UploadFile\";\r\n\r\nconst Box = BoxRaw?.default ?? BoxRaw;\r\nconst Button = ButtonRaw?.default ?? ButtonRaw;\r\nconst Input = InputRaw?.default ?? InputRaw;\r\nconst TextField = TextFieldRaw?.default ?? TextFieldRaw;\r\nconst Typography = TypographyRaw?.default ?? TypographyRaw;\r\nconst UploadFile = UploadFileRaw?.default ?? UploadFileRaw;\r\n\r\nexport const TextFieldUpload = ({\r\n name = \"upload\",\r\n control,\r\n defaultValue = \"\",\r\n title,\r\n accept = \"\",\r\n maxSize = 5,\r\n isDisabled = false,\r\n buttonLabel = \"Upload\",\r\n buttonPosition = \"end\",\r\n uploadFile,\r\n iconPosition = \"start\",\r\n}) => {\r\n const fallbackForm = useForm({\r\n defaultValues: { [name]: defaultValue },\r\n });\r\n const inputRef = useRef(null);\r\n\r\n const { field, fieldState } = useController({\r\n name,\r\n control: control || fallbackForm.control,\r\n defaultValue,\r\n });\r\n\r\n const [fileSizeError, setFileSizeError] = useState(false);\r\n const [unsupportedFile, setUnsupportedFile] = useState(false);\r\n\r\n const handleFileChange = (event) => {\r\n const file = event.target.files?.[0];\r\n\r\n if (!file) {\r\n field.onChange(\"\");\r\n uploadFile?.(\"\", null);\r\n return;\r\n }\r\n\r\n const extension = file.name.split(\".\").pop()?.toLowerCase();\r\n const acceptedExtensions = accept\r\n ? accept.split(\",\").map((ext) => ext.trim().toLowerCase())\r\n : [];\r\n\r\n if (\r\n acceptedExtensions.length > 0 &&\r\n !acceptedExtensions.includes(`.${extension}`)\r\n ) {\r\n setUnsupportedFile(true);\r\n setFileSizeError(false);\r\n field.onChange(\"\");\r\n return;\r\n }\r\n\r\n if (file.size > maxSize * 1024 * 1024) {\r\n setFileSizeError(true);\r\n setUnsupportedFile(false);\r\n field.onChange(\"\");\r\n return;\r\n }\r\n\r\n setFileSizeError(false);\r\n setUnsupportedFile(false);\r\n field.onChange(file.name);\r\n uploadFile?.(file.name, file);\r\n };\r\n\r\n const isError = !!fieldState.error || fileSizeError || unsupportedFile;\r\n const isSuccess = !!field.value && !isError;\r\n const borderColor = isError\r\n ? PrimitiveColor.color_red_500\r\n : isSuccess\r\n ? PrimitiveColor.color_blue_cakrawala_500\r\n : PrimitiveColor.color_neutral_300;\r\n\r\n const helperText = fileSizeError\r\n ? `Ukuran file melebihi ${maxSize} MB`\r\n : unsupportedFile\r\n ? \"Format file tidak didukung\"\r\n : `Format ${accept || \"-\"} ukuran maks. ${maxSize} MB`;\r\n\r\n const handleButtonClick = () => {\r\n inputRef.current?.click();\r\n };\r\n\r\n const uploadButton = (\r\n <Button\r\n onClick={handleButtonClick}\r\n disabled={isDisabled}\r\n variant=\"contained\"\r\n startIcon={iconPosition === \"start\" ? <UploadFile /> : undefined}\r\n endIcon={iconPosition === \"end\" ? <UploadFile /> : undefined}\r\n sx={{\r\n transition: \"none\",\r\n px: SpacingToken.spacing4,\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: SpacingToken.spacing2,\r\n boxShadows: 0,\r\n borderRadius:\r\n buttonPosition === \"start\"\r\n ? `${Radius.radius_2} 0 0 ${Radius.radius_2}`\r\n : `0 ${Radius.radius_2} ${Radius.radius_2} 0`,\r\n backgroundColor: isError\r\n ? PrimitiveColor.color_red_500\r\n : PrimitiveColor.color_blue_cakrawala_500,\r\n \"&:hover\": {\r\n boxShadows: 0,\r\n backgroundColor: isError\r\n ? PrimitiveColor.color_red_600\r\n : PrimitiveColor.color_blue_cakrawala_600,\r\n },\r\n textTransform: \"none\",\r\n \"& .MuiButton-startIcon, & .MuiButton-endIcon\": {\r\n margin: 0,\r\n },\r\n }}\r\n >\r\n <BaseTypography\r\n variant=\"body1_regular.inverse\"\r\n sx={{ fontWeight: 600 }}\r\n >\r\n {buttonLabel}\r\n </BaseTypography>\r\n </Button>\r\n );\r\n\r\n return (\r\n <Box width=\"100%\">\r\n {title && (\r\n <Typography\r\n sx={{\r\n ...VariantStyles.body2_regular,\r\n fontSize: 14,\r\n fontWeight: 600,\r\n mb: SpacingToken.spacing2,\r\n color: isError\r\n ? DerivedColor.color_text_danger\r\n : DerivedColor.color_text_default,\r\n }}\r\n >\r\n {title}\r\n </Typography>\r\n )}\r\n\r\n <Box width=\"100%\">\r\n <Box display=\"flex\" width=\"100%\">\r\n {buttonPosition === \"start\" && uploadButton}\r\n\r\n <TextField\r\n value={field.value || \"\"}\r\n error={isError}\r\n fullWidth\r\n size=\"small\"\r\n disabled={isDisabled}\r\n InputProps={{\r\n readOnly: true,\r\n }}\r\n sx={{\r\n \"& .MuiOutlinedInput-root\": {\r\n borderTopLeftRadius:\r\n buttonPosition === \"start\" ? 0 : Radius.radius_2,\r\n borderBottomLeftRadius:\r\n buttonPosition === \"start\" ? 0 : Radius.radius_2,\r\n borderTopRightRadius:\r\n buttonPosition === \"end\" ? 0 : Radius.radius_2,\r\n borderBottomRightRadius:\r\n buttonPosition === \"end\" ? 0 : Radius.radius_2,\r\n ...(isDisabled && {\r\n backgroundColor: PrimitiveColor.color_neutral_200,\r\n }),\r\n \"& fieldset\": {\r\n borderColor: isError\r\n ? DerivedColor.color_border_danger\r\n : DerivedColor.color_border_default,\r\n },\r\n \"&:hover fieldset\": {\r\n borderColor: isError\r\n ? DerivedColor.color_border_danger\r\n : DerivedColor.color_border_brand_primary,\r\n },\r\n \"&.Mui-focused fieldset\": {\r\n borderColor: isError\r\n ? DerivedColor.color_border_danger\r\n : DerivedColor.color_border_brand_primary,\r\n borderWidth: 2,\r\n },\r\n },\r\n \"& .MuiInputBase-input\": {\r\n fontSize: 14,\r\n \"&::placeholder\": {\r\n fontSize: 14,\r\n },\r\n },\r\n }}\r\n />\r\n\r\n {buttonPosition === \"end\" && uploadButton}\r\n </Box>\r\n\r\n <Box\r\n display=\"flex\"\r\n alignItems=\"center\"\r\n mt={SpacingToken.spacing2}\r\n gap={SpacingToken.spacing1}\r\n >\r\n {isError && (\r\n <IconInfoCircle color={PrimitiveColor.color_red_500} size={14} />\r\n )}\r\n\r\n <Typography\r\n sx={{\r\n ...VariantStyles.caption_regular,\r\n color: isError\r\n ? PrimitiveColor.color_red_500\r\n : PrimitiveColor.color_neutral_600,\r\n }}\r\n >\r\n {helperText}\r\n </Typography>\r\n </Box>\r\n </Box>\r\n\r\n <Input\r\n inputRef={inputRef}\r\n type=\"file\"\r\n inputProps={{ accept }}\r\n sx={{ display: \"none\" }}\r\n onChange={handleFileChange}\r\n disabled={isDisabled}\r\n />\r\n </Box>\r\n );\r\n};\r\n","'use client';\r\n\r\nimport { useState, useEffect } from \"react\";\r\n\r\n/**\r\n * Wrapper component yang load TinyMCE Editor secara lazy di client-side.\r\n * Jalan di Next.js maupun Storybook tanpa next/dynamic.\r\n *\r\n * PENTING — Kenapa pakai pendekatan ini:\r\n * File JS bawaan TinyMCE untuk skin/content (misal tinymce/skins/ui/oxide/skin)\r\n * memanggil `tinymce.Resource.add(...)` di top-level saat module di-evaluate.\r\n * Vite/Rollup bisa pre-load chunk-chunk tersebut sebelum core TinyMCE selesai\r\n * register ke `window.tinymce`, menyebabkan \"ReferenceError: tinymce is not defined\".\r\n *\r\n * Solusi: kita set `skin: false` dan `content_css: false` di TinyMCE init config,\r\n * lalu inject CSS yang dibutuhkan via `content_style`. Dengan begitu kita tidak\r\n * perlu import file JS wrapper yang bermasalah.\r\n */\r\n\r\nfunction Editor(props) {\r\n const [TinyEditor, setTinyEditor] = useState(null);\r\n const [error, setError] = useState(null);\r\n\r\n useEffect(() => {\r\n let cancelled = false;\r\n\r\n async function load() {\r\n const alreadyLoaded =\r\n typeof window !== \"undefined\" && window.tinymce;\r\n\r\n if (!alreadyLoaded) {\r\n // 1. Load TinyMCE core — MUST complete first\r\n try {\r\n const tinymceModule = await import(\"tinymce/tinymce\");\r\n\r\n if (typeof window !== \"undefined\" && !window.tinymce) {\r\n const core = tinymceModule.default ?? tinymceModule;\r\n if (core && typeof core === \"object\" && core.tinymce) {\r\n window.tinymce = core.tinymce;\r\n } else {\r\n window.tinymce = core;\r\n }\r\n }\r\n } catch {\r\n throw new Error(\r\n \"Package 'tinymce' tidak ditemukan. \" +\r\n \"Install dengan: npm install tinymce @tinymce/tinymce-react\"\r\n );\r\n }\r\n\r\n // Tunggu sampai global benar-benar ready\r\n await new Promise((resolve, reject) => {\r\n if (window.tinymce) return resolve();\r\n const start = Date.now();\r\n const iv = setInterval(() => {\r\n if (window.tinymce) { clearInterval(iv); resolve(); }\r\n else if (Date.now() - start > 5000) {\r\n clearInterval(iv);\r\n reject(new Error(\r\n \"TinyMCE core gagal register ke window.tinymce. \" +\r\n \"Pastikan package 'tinymce' sudah ter-install.\"\r\n ));\r\n }\r\n }, 50);\r\n });\r\n\r\n // 2. Load model, theme, icons — these also reference window.tinymce\r\n // but since core is now loaded, sequential import is safe.\r\n await import(\"tinymce/models/dom/model\");\r\n await import(\"tinymce/themes/silver\");\r\n await import(\"tinymce/icons/default\");\r\n\r\n // 3. Load plugins\r\n await Promise.all([\r\n import(\"tinymce/plugins/advlist\"),\r\n import(\"tinymce/plugins/anchor\"),\r\n import(\"tinymce/plugins/autolink\"),\r\n import(\"tinymce/plugins/code\"),\r\n import(\"tinymce/plugins/charmap\"),\r\n import(\"tinymce/plugins/emoticons\"),\r\n import(\"tinymce/plugins/image\"),\r\n import(\"tinymce/plugins/insertdatetime\"),\r\n import(\"tinymce/plugins/link\"),\r\n import(\"tinymce/plugins/lists\"),\r\n import(\"tinymce/plugins/media\"),\r\n import(\"tinymce/plugins/table\"),\r\n import(\"tinymce/plugins/wordcount\"),\r\n ]);\r\n\r\n // 4. Skin & content CSS — kita SKIP import JS wrapper-nya\r\n // (tinymce/skins/ui/oxide/skin, tinymce/skins/content/default/content)\r\n // karena Vite bisa pre-load chunk sebelum core ready.\r\n // Sebagai gantinya, kita inject CSS langsung via <style> tag\r\n // dan set skin:false + content_css:false di init config.\r\n try {\r\n const [skinMod, contentMod, oxideContentMod] = await Promise.all([\r\n import(\"tinymce/skins/ui/oxide/skin.min.css\"),\r\n import(\"tinymce/skins/content/default/content.min.css\"),\r\n import(\"tinymce/skins/ui/oxide/content.min.css\"),\r\n ]);\r\n\r\n // Vite returns CSS modules with .default as the CSS string\r\n // or auto-injects them. Either way, we're good.\r\n const skinCss = skinMod?.default ?? \"\";\r\n const contentCss = contentMod?.default ?? \"\";\r\n const oxideContentCss = oxideContentMod?.default ?? \"\";\r\n\r\n // Inject skin CSS into document head if not already there\r\n const combinedCss = [skinCss, contentCss, oxideContentCss]\r\n .filter(Boolean)\r\n .join(\"\\n\");\r\n\r\n if (combinedCss && !document.getElementById(\"tinymce-skin-css\")) {\r\n const style = document.createElement(\"style\");\r\n style.id = \"tinymce-skin-css\";\r\n style.textContent = combinedCss;\r\n document.head.appendChild(style);\r\n }\r\n } catch {\r\n // CSS imports gagal — TinyMCE akan fallback ke content_style\r\n }\r\n }\r\n\r\n // 5. Load the React wrapper\r\n const mod = await import(\"@tinymce/tinymce-react\");\r\n const Comp = mod.Editor ?? mod.default?.Editor ?? mod.default;\r\n\r\n if (!cancelled) {\r\n setTinyEditor(() => Comp);\r\n }\r\n }\r\n\r\n load().catch((err) => {\r\n if (!cancelled) {\r\n console.error(\"[Editor] Failed to load TinyMCE:\", err);\r\n setError(err);\r\n }\r\n });\r\n\r\n return () => {\r\n cancelled = true;\r\n };\r\n }, []);\r\n\r\n if (error) {\r\n return (\r\n <div style={{ color: \"red\", padding: 12, border: \"1px solid red\", borderRadius: 4 }}>\r\n Gagal memuat editor: {error.message}\r\n </div>\r\n );\r\n }\r\n\r\n if (!TinyEditor) {\r\n return null;\r\n }\r\n\r\n return <TinyEditor {...props} />;\r\n}\r\n\r\nexport { Editor };\r\n","\"use client\";\r\n\r\nimport InputAdornmentRaw from \"@mui/material/InputAdornment\";\r\nimport TextFieldRaw from \"@mui/material/TextField\";\r\nimport BoxRaw from \"@mui/material/Box\";\r\nimport TypographyRaw from \"@mui/material/Typography\";\r\nimport { useController } from \"react-hook-form\";\r\nimport { useId } from \"react\";\r\nimport { IconAlertCircleFilled } from \"@tabler/icons-react\";\r\n\r\nimport { PrimitiveColor } from \"@/components/atoms/colors/primitive\";\r\nimport { DerivedColor } from \"@/components/atoms/colors/derived\";\r\nimport { Radius } from \"@/components/atoms/radius/radius\";\r\nimport { SpacingToken } from \"@/components/atoms/spacing_layout/spacing\";\r\nimport { VariantStyles } from \"@/components/atoms/typography/typography\";\r\nimport { Editor } from \"./imports\";\r\n\r\nconst InputAdornment = InputAdornmentRaw?.default ?? InputAdornmentRaw;\r\nconst TextField = TextFieldRaw?.default ?? TextFieldRaw;\r\nconst Box = BoxRaw?.default ?? BoxRaw;\r\nconst Typography = TypographyRaw?.default ?? TypographyRaw;\r\n\r\nexport const BaseTextArea = ({\r\n name = \"\",\r\n control = null,\r\n defaultValue = \"\",\r\n helperText,\r\n rules,\r\n exactLength,\r\n maxLength,\r\n title,\r\n isDisabled = false,\r\n useRichText = false,\r\n init,\r\n handleImageUpload,\r\n sx = {},\r\n ...props\r\n}) => {\r\n const computedMaxLength = exactLength ?? maxLength ?? rules?.maxLength?.value;\r\n\r\n const { field, fieldState } = useController({\r\n control,\r\n name,\r\n defaultValue,\r\n rules: exactLength\r\n ? {\r\n minLength: {\r\n value: exactLength,\r\n message: `Harus tepat ${exactLength} karakter`,\r\n },\r\n maxLength: {\r\n value: exactLength,\r\n message: `Tidak boleh lebih dari ${exactLength} karakter`,\r\n },\r\n ...rules,\r\n }\r\n : rules,\r\n });\r\n\r\n const hasError = !!fieldState.error;\r\n const errorMessage = fieldState.error?.message;\r\n\r\n const rawValue = field?.value ?? \"\";\r\n const plainText =\r\n useRichText && typeof rawValue === \"string\"\r\n ? rawValue.replace(/<[^>]*>/g, \"\")\r\n : rawValue;\r\n const currentLength = plainText.length || 0;\r\n const remaining =\r\n computedMaxLength !== undefined ? computedMaxLength - currentLength : null;\r\n\r\n let dynamicHelper = helperText;\r\n\r\n if (!hasError && computedMaxLength) {\r\n dynamicHelper =\r\n remaining >= 0\r\n ? `${currentLength}/${computedMaxLength} karakter`\r\n : helperText;\r\n }\r\n\r\n const handleKeyDown = (event) => {\r\n if (event.key !== \"Tab\") return;\r\n\r\n event.preventDefault();\r\n const nextValue = field.value ? `${field.value} - ` : \"- \";\r\n\r\n if (computedMaxLength && nextValue.length > computedMaxLength) {\r\n return;\r\n }\r\n\r\n field.onChange(nextValue);\r\n };\r\n\r\n const baseSx = {\r\n \"& .MuiOutlinedInput-root\": {\r\n borderRadius: Radius.radius_3,\r\n fontSize: 14,\r\n backgroundColor: isDisabled\r\n ? PrimitiveColor.color_neutral_200\r\n : PrimitiveColor.color_neutral_50,\r\n \"& fieldset\": {\r\n borderColor: hasError\r\n ? DerivedColor.color_border_danger\r\n : DerivedColor.color_border_default,\r\n },\r\n \"&:hover fieldset\": {\r\n borderColor: hasError\r\n ? DerivedColor.color_border_danger\r\n : DerivedColor.color_border_brand_primary,\r\n },\r\n \"&.Mui-focused fieldset\": {\r\n borderColor: hasError\r\n ? DerivedColor.color_border_danger\r\n : DerivedColor.color_border_brand_primary,\r\n borderWidth: 2,\r\n },\r\n },\r\n \"& .MuiInputBase-input, & .MuiInputBase-inputMultiline\": {\r\n fontSize: 14,\r\n \"&::placeholder\": {\r\n fontSize: 14,\r\n },\r\n },\r\n \"& .MuiFormHelperText-root\": {\r\n ...VariantStyles.caption_regular,\r\n fontSize: 14,\r\n color: hasError\r\n ? DerivedColor.color_text_danger\r\n : PrimitiveColor.color_neutral_600,\r\n marginLeft: 0,\r\n marginTop: SpacingToken.spacing1,\r\n },\r\n };\r\n\r\n const reactId = useId();\r\n const uniqueSuffix = reactId.replace(/:/g, \"\");\r\n const editorId = props.id ?? `textarea-${name}-${uniqueSuffix}`;\r\n const wrapperId = `editor-wrap-${uniqueSuffix}`;\r\n\r\n // ─── Rich Text Mode ───\r\n if (useRichText) {\r\n return (\r\n <Box id={wrapperId} sx={sx}>\r\n {title && (\r\n <Typography\r\n variant=\"body2\"\r\n sx={{\r\n fontWeight: 600,\r\n fontSize: 14,\r\n color: hasError\r\n ? DerivedColor.color_text_danger\r\n : DerivedColor.color_text_default,\r\n mb: \"4px\",\r\n }}\r\n >\r\n {title}\r\n </Typography>\r\n )}\r\n\r\n <style>{`\r\n .tox-notifications-container {\r\n z-index: 9999 !important;\r\n position: fixed !important;\r\n top: 10px !important;\r\n }\r\n #${wrapperId} .tox .tox-editor-header {\r\n z-index: 0 !important;\r\n }\r\n ${\r\n isDisabled\r\n ? `\r\n #${wrapperId} .tox-tinymce .tox-edit-area__iframe {\r\n background-color: #f5f5f5 !important;\r\n user-select: none !important;\r\n }\r\n #${wrapperId} .tox-tinymce .tox-editor-container {\r\n background-color: #f5f5f5 !important;\r\n }\r\n #${wrapperId} .mce-content-body {\r\n background-color: #f5f5f5 !important;\r\n color: #666 !important;\r\n pointer-events: none !important;\r\n user-select: none !important;\r\n }\r\n #${wrapperId} .tox-toolbar,\r\n #${wrapperId} .tox-editor-header {\r\n pointer-events: none !important;\r\n opacity: 0.5 !important;\r\n }`\r\n : \"\"\r\n }\r\n `}</style>\r\n\r\n <Editor\r\n onInit={props.onInit}\r\n id={editorId}\r\n initialValue={defaultValue}\r\n onDrop={props.onDrop}\r\n disabled={isDisabled}\r\n init={{\r\n ...init,\r\n placeholder: init?.placeholder ?? \"\",\r\n license_key: \"gpl\",\r\n menubar: false,\r\n branding: false,\r\n promotion: false,\r\n elementpath: false,\r\n statusbar: false,\r\n skin: false,\r\n content_css: false,\r\n min_height: 200,\r\n plugins: [\r\n \"code\",\r\n \"lists\",\r\n \"advlist\",\r\n \"anchor\",\r\n \"autolink\",\r\n \"image\",\r\n \"link\",\r\n \"table\",\r\n \"wordcount\",\r\n \"emoticons\",\r\n \"charmap\",\r\n ],\r\n toolbar:\r\n \"code | cut copy paste | \" +\r\n \"bold italic underline strikethrough | \" +\r\n \"alignleft aligncenter alignright alignjustify | \" +\r\n \"blocks fontsize | \" +\r\n \"numlist bullist | \" +\r\n \"table image emoticons charmap\",\r\n image_title: true,\r\n images_replace_blob_uris: true,\r\n images_upload_base_path: \"/\",\r\n image_prepend_url: init?.prefixUrl ?? \"\",\r\n file_picker_types: \"image\",\r\n paste_data_images: true,\r\n automatic_uploads: true,\r\n content_style:\r\n \"body { font-family: 'BRI Digital Text', Inter, sans-serif; font-size: 14px; margin: 12px; }\",\r\n file_picker_callback: handleImageUpload,\r\n }}\r\n onEditorChange={(content) => {\r\n field.onChange(content);\r\n }}\r\n scriptLoading={{ async: true }}\r\n />\r\n\r\n {!hasError && dynamicHelper && (\r\n <Typography\r\n sx={{\r\n ...VariantStyles.caption_regular,\r\n color: PrimitiveColor.color_neutral_600,\r\n mt: SpacingToken.spacing1,\r\n display: \"block\",\r\n }}\r\n >\r\n {dynamicHelper}\r\n </Typography>\r\n )}\r\n </Box>\r\n );\r\n }\r\n\r\n // ─── Plain Mode (MUI TextField) ───\r\n return (\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: SpacingToken.spacing2,\r\n ...sx,\r\n }}\r\n >\r\n {title && (\r\n <Typography\r\n variant=\"body2\"\r\n sx={{\r\n fontWeight: 600,\r\n fontSize: 14,\r\n color: hasError\r\n ? DerivedColor.color_text_danger\r\n : DerivedColor.color_text_default,\r\n }}\r\n >\r\n {title}\r\n </Typography>\r\n )}\r\n\r\n <TextField\r\n id={name}\r\n multiline\r\n minRows={4}\r\n fullWidth\r\n disabled={isDisabled}\r\n onKeyDown={handleKeyDown}\r\n error={hasError}\r\n helperText={errorMessage ?? dynamicHelper}\r\n sx={baseSx}\r\n inputProps={{\r\n maxLength: computedMaxLength,\r\n }}\r\n InputProps={{\r\n endAdornment: hasError && (\r\n <InputAdornment position=\"end\">\r\n <IconAlertCircleFilled size={18} color={PrimitiveColor.color_red_500} />\r\n </InputAdornment>\r\n ),\r\n }}\r\n {...props}\r\n {...field}\r\n />\r\n </Box>\r\n );\r\n};\r\n","import { useState, useCallback, useRef } from \"react\";\r\nimport DialogRaw from \"@mui/material/Dialog\";\r\nimport DialogContentRaw from \"@mui/material/DialogContent\";\r\nimport DialogActionsRaw from \"@mui/material/DialogActions\";\r\nimport IconButtonRaw from \"@mui/material/IconButton\";\r\nimport BoxRaw from \"@mui/material/Box\";\r\nimport { IconX, IconCircleCheck, IconAlertCircle, IconInfoCircle, IconAlertTriangle, IconHelpCircle } from \"@tabler/icons-react\";\r\nimport { SuccessHero } from \"@/components/legacy/atoms/icons/success-hero\";\r\nimport { ErrorHero } from \"@/components/legacy/atoms/icons/error-hero\";\r\nimport { WarningHero } from \"@/components/legacy/atoms/icons/warning-hero\";\r\nimport { BaseButton } from \"@/components/atoms/buttons/button/button\";\r\nimport { BaseTypography } from \"@/components/atoms/typography\";\r\nimport { DerivedColor } from \"@/components/atoms/colors/derived\";\r\nimport { PrimitiveColor } from \"@/components/atoms/colors/primitive\";\r\nimport { Radius } from \"@/components/atoms/radius/radius\";\r\nimport { SpacingToken } from \"@/components/atoms/spacing_layout/spacing\";\r\n\r\nconst Dialog = DialogRaw?.default ?? DialogRaw;\r\nconst DialogContent = DialogContentRaw?.default ?? DialogContentRaw;\r\nconst DialogActions = DialogActionsRaw?.default ?? DialogActionsRaw;\r\nconst IconButton = IconButtonRaw?.default ?? IconButtonRaw;\r\nconst Box = BoxRaw?.default ?? BoxRaw;\r\n\r\n// ============================================================\r\n// ICON MAPPING\r\n// Default: Legacy Hero SVG icons (SuccessHero, ErrorHero, WarningHero)\r\n// Fallback: Tabler icons (IconCircleCheck, IconAlertCircle, etc.)\r\n// ============================================================\r\n\r\nconst ICON_MAP = {\r\n success: {\r\n Hero: SuccessHero,\r\n FallbackIcon: IconCircleCheck,\r\n color: PrimitiveColor.color_green_500,\r\n },\r\n error: {\r\n Hero: ErrorHero,\r\n FallbackIcon: IconAlertCircle,\r\n color: PrimitiveColor.color_red_500,\r\n },\r\n info: {\r\n Hero: null,\r\n FallbackIcon: IconInfoCircle,\r\n color: PrimitiveColor.color_blue_cakrawala_500,\r\n },\r\n warning: {\r\n Hero: WarningHero,\r\n FallbackIcon: IconAlertTriangle,\r\n color: PrimitiveColor.color_yellow_500,\r\n },\r\n confirm: {\r\n Hero: WarningHero,\r\n FallbackIcon: IconAlertTriangle,\r\n color: PrimitiveColor.color_yellow_500,\r\n },\r\n};\r\n\r\n// ============================================================\r\n// DEFAULT TITLES\r\n// ============================================================\r\n\r\nconst DEFAULT_TITLES = {\r\n success: \"Success !\",\r\n error: \"Oops !\",\r\n warning: \"Oops !\",\r\n info: \"Information !\",\r\n confirm: \"Confirmation !\",\r\n};\r\n\r\n// ============================================================\r\n// MODAL ALERT COMPONENT (Controlled)\r\n// ============================================================\r\n\r\nconst ModalAlertDialog = ({\r\n open = false,\r\n onClose,\r\n icon = \"info\",\r\n title = \"\",\r\n description = \"\",\r\n cancelBtnText = \"Batal\",\r\n confirmBtnText = \"Ya\",\r\n cancelBtnProps,\r\n confirmBtnProps,\r\n showCancelBtn = true,\r\n showConfirmBtn = true,\r\n}) => {\r\n // Resolve title: use provided title or default based on icon\r\n const resolvedTitle = title || (typeof icon === \"string\" && DEFAULT_TITLES[icon.toLowerCase()]) || \"\";\r\n // Resolve icon\r\n const renderIcon = () => {\r\n // Preset icon key (success, error, info, warning, confirm)\r\n if (typeof icon === \"string\" && ICON_MAP[icon.toLowerCase()]) {\r\n const { Hero, FallbackIcon, color } = ICON_MAP[icon.toLowerCase()];\r\n // Use Hero SVG if available, otherwise Tabler icon\r\n if (Hero) {\r\n return (\r\n <Box sx={{ width: 160, height: 130, display: \"flex\", alignItems: \"center\", justifyContent: \"center\", \"& svg\": { width: \"100%\", height: \"100%\" } }}>\r\n <Hero />\r\n </Box>\r\n );\r\n }\r\n return <FallbackIcon size={64} color={color} stroke={1.5} />;\r\n }\r\n // Custom icon path (image URL like /images/thumb-dialog-warning.svg)\r\n if (typeof icon === \"string\" && (icon.startsWith(\"/\") || icon.startsWith(\"http\"))) {\r\n return (\r\n <Box\r\n component=\"img\"\r\n src={icon}\r\n alt=\"modal-icon\"\r\n sx={{ width: 120, height: 100, objectFit: \"contain\" }}\r\n />\r\n );\r\n }\r\n // Default fallback\r\n return <IconInfoCircle size={64} color={PrimitiveColor.color_blue_cakrawala_500} stroke={1.5} />;\r\n };\r\n\r\n // Resolve cancel action\r\n const handleCancel = () => {\r\n if (cancelBtnProps && typeof cancelBtnProps === \"function\") {\r\n cancelBtnProps();\r\n } else {\r\n onClose?.();\r\n }\r\n };\r\n\r\n // Resolve confirm action\r\n const handleConfirm = () => {\r\n if (confirmBtnProps && typeof confirmBtnProps === \"function\") {\r\n confirmBtnProps();\r\n }\r\n onClose?.();\r\n };\r\n\r\n return (\r\n <Dialog\r\n open={open}\r\n onClose={onClose}\r\n sx={{\r\n \"& .MuiDialog-container\": {\r\n \"& .MuiPaper-root\": {\r\n width: \"100%\",\r\n maxWidth: \"350px\",\r\n },\r\n \"& .MuiDialog-paper\": {\r\n borderRadius: Radius.radius_3,\r\n },\r\n },\r\n }}\r\n >\r\n {/* Close Button */}\r\n <Box sx={{ position: \"absolute\", right: 8, top: 8 }}>\r\n <IconButton onClick={onClose} sx={{ color: DerivedColor.color_text_subtle }}>\r\n <IconX size={20} />\r\n </IconButton>\r\n </Box>\r\n\r\n {/* Content */}\r\n <DialogContent\r\n sx={{\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n textAlign: \"center\",\r\n pt: SpacingToken.spacing6,\r\n px: SpacingToken.spacing5,\r\n pb: SpacingToken.spacing3,\r\n gap: SpacingToken.spacing3,\r\n }}\r\n >\r\n {/* Icon */}\r\n <Box sx={{ display: \"flex\", justifyContent: \"center\", py: 1 }}>\r\n {renderIcon()}\r\n </Box>\r\n\r\n {/* Title */}\r\n {resolvedTitle && (\r\n <BaseTypography variant=\"header1_bold.default\" sx={{ fontSize: \"18px\" }}>\r\n {resolvedTitle}\r\n </BaseTypography>\r\n )}\r\n\r\n {/* Description */}\r\n {description && (\r\n <BaseTypography variant=\"body2_regular.default\" sx={{ textAlign: \"center\" }}>\r\n {description}\r\n </BaseTypography>\r\n )}\r\n </DialogContent>\r\n\r\n {/* Actions */}\r\n {(showCancelBtn || showConfirmBtn) && (\r\n <DialogActions\r\n sx={{\r\n justifyContent: \"center\",\r\n gap: SpacingToken.spacing2,\r\n px: SpacingToken.spacing5,\r\n pb: SpacingToken.spacing5,\r\n pt: 0,\r\n }}\r\n >\r\n {showCancelBtn && (\r\n <BaseButton\r\n variant=\"outline\"\r\n color=\"primary\"\r\n onClick={handleCancel}\r\n width=\"auto\"\r\n sx={{ minWidth: \"120px\", flex: 1 }}\r\n >\r\n {cancelBtnText}\r\n </BaseButton>\r\n )}\r\n {showConfirmBtn && (\r\n <BaseButton\r\n variant=\"fill\"\r\n color=\"primary\"\r\n onClick={handleConfirm}\r\n width=\"auto\"\r\n sx={{ minWidth: \"120px\", flex: 1 }}\r\n >\r\n {confirmBtnText}\r\n </BaseButton>\r\n )}\r\n </DialogActions>\r\n )}\r\n </Dialog>\r\n );\r\n};\r\n\r\n// ============================================================\r\n// IMPERATIVE API: BaseModalAlert.show() / BaseModalAlert.hide()\r\n// ============================================================\r\n\r\nlet _modalRef = null;\r\n\r\nconst setModalRef = (ref) => {\r\n _modalRef = ref;\r\n};\r\n\r\nconst show = (options = {}) => {\r\n if (_modalRef?.current?.show) {\r\n _modalRef.current.show(options);\r\n }\r\n};\r\n\r\nconst hide = () => {\r\n if (_modalRef?.current?.hide) {\r\n _modalRef.current.hide();\r\n }\r\n};\r\n\r\n// Static API object\r\nexport const BaseModalAlert = {\r\n show,\r\n hide,\r\n setModalRef,\r\n};\r\n\r\n// ============================================================\r\n// PROVIDER COMPONENT (mount once at app root)\r\n// ============================================================\r\n\r\nexport const BaseModalAlertProvider = () => {\r\n const [state, setState] = useState({ open: false });\r\n const ref = useRef();\r\n\r\n const handleShow = useCallback((options) => {\r\n setState({ open: true, ...options });\r\n }, []);\r\n\r\n const handleHide = useCallback(() => {\r\n setState((prev) => ({ ...prev, open: false }));\r\n }, []);\r\n\r\n // Register ref\r\n ref.current = { show: handleShow, hide: handleHide };\r\n\r\n // Set ref on mount\r\n useState(() => {\r\n BaseModalAlert.setModalRef(ref);\r\n });\r\n\r\n return (\r\n <BaseModalAlertDialog\r\n open={state.open}\r\n onClose={handleHide}\r\n icon={state.icon}\r\n title={state.title}\r\n description={state.description}\r\n cancelBtnText={state.cancelBtnText}\r\n confirmBtnText={state.confirmBtnText}\r\n cancelBtnProps={state.cancelBtnProps}\r\n confirmBtnProps={state.confirmBtnProps}\r\n showCancelBtn={state.showCancelBtn !== undefined ? state.showCancelBtn : true}\r\n showConfirmBtn={state.showConfirmBtn !== undefined ? state.showConfirmBtn : true}\r\n />\r\n );\r\n};\r\n\r\n// Export controlled component\r\nexport const BaseModalAlertDialog = ModalAlertDialog;\r\n","export const LoadingDots = () => (\r\n <svg\r\n width=\"90\"\r\n height=\"28\"\r\n viewBox=\"0 0 90 28\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <circle cx=\"14\" cy=\"14\" r=\"6\" fill=\"#F39C12\">\r\n <animateTransform\r\n attributeName=\"transform\"\r\n type=\"translate\"\r\n values=\"0 0;0 -8;0 0\"\r\n dur=\"0.8s\"\r\n begin=\"0s\"\r\n repeatCount=\"indefinite\"\r\n />\r\n </circle>\r\n\r\n <circle cx=\"32\" cy=\"14\" r=\"6\" fill=\"#E67E22\">\r\n <animateTransform\r\n attributeName=\"transform\"\r\n type=\"translate\"\r\n values=\"0 0;0 -8;0 0\"\r\n dur=\"0.8s\"\r\n begin=\"0.15s\"\r\n repeatCount=\"indefinite\"\r\n />\r\n </circle>\r\n\r\n <circle cx=\"50\" cy=\"14\" r=\"6\" fill=\"#3498DB\">\r\n <animateTransform\r\n attributeName=\"transform\"\r\n type=\"translate\"\r\n values=\"0 0;0 -8;0 0\"\r\n dur=\"0.8s\"\r\n begin=\"0.30s\"\r\n repeatCount=\"indefinite\"\r\n />\r\n </circle>\r\n\r\n <circle cx=\"68\" cy=\"14\" r=\"6\" fill=\"#2E86DE\">\r\n <animateTransform\r\n attributeName=\"transform\"\r\n type=\"translate\"\r\n values=\"0 0;0 -8;0 0\"\r\n dur=\"0.8s\"\r\n begin=\"0.45s\"\r\n repeatCount=\"indefinite\"\r\n />\r\n </circle>\r\n </svg>\r\n);\r\n","import { useState, useCallback, useRef } from \"react\";\r\nimport DialogRaw from \"@mui/material/Dialog\";\r\nimport DialogContentRaw from \"@mui/material/DialogContent\";\r\nimport BoxRaw from \"@mui/material/Box\";\r\nimport { LoadingDots } from \"@/components/legacy/atoms/icons/loading-dots\";\r\nimport { BaseTypography } from \"@/components/atoms/typography\";\r\nimport { Radius } from \"@/components/atoms/radius/radius\";\r\nimport { SpacingToken } from \"@/components/atoms/spacing_layout/spacing\";\r\n\r\nconst Dialog = DialogRaw?.default ?? DialogRaw;\r\nconst DialogContent = DialogContentRaw?.default ?? DialogContentRaw;\r\nconst Box = BoxRaw?.default ?? BoxRaw;\r\n\r\n// ============================================================\r\n// MODAL LOADING COMPONENT\r\n// ============================================================\r\n\r\nconst ModalLoadingDialog = ({ open = false }) => {\r\n return (\r\n <Dialog\r\n open={open}\r\n disableEscapeKeyDown\r\n sx={{\r\n \"& .MuiDialog-container\": {\r\n \"& .MuiPaper-root\": {\r\n width: \"auto\",\r\n minWidth: \"150px\",\r\n },\r\n \"& .MuiDialog-paper\": {\r\n borderRadius: Radius.radius_3,\r\n },\r\n },\r\n \"& .MuiBackdrop-root\": {\r\n backgroundColor: \"rgba(0, 0, 0, 0.5)\",\r\n },\r\n }}\r\n >\r\n <DialogContent\r\n sx={{\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n textAlign: \"center\",\r\n py: SpacingToken.spacing6,\r\n px: SpacingToken.spacing5,\r\n gap: SpacingToken.spacing3,\r\n }}\r\n >\r\n <LoadingDots />\r\n <BaseTypography variant=\"body2_regular.subtle\" sx={{fontWeight: \"bold\"}}>\r\n Loading...\r\n </BaseTypography>\r\n </DialogContent>\r\n </Dialog>\r\n );\r\n};\r\n\r\n// ============================================================\r\n// IMPERATIVE API: BaseModalLoading.show() / BaseModalLoading.hide()\r\n// ============================================================\r\n\r\nlet _modalRef = null;\r\n\r\nconst setModalRef = (ref) => {\r\n _modalRef = ref;\r\n};\r\n\r\nconst show = () => {\r\n if (_modalRef?.current?.show) {\r\n _modalRef.current.show();\r\n }\r\n};\r\n\r\nconst hide = () => {\r\n if (_modalRef?.current?.hide) {\r\n _modalRef.current.hide();\r\n }\r\n};\r\n\r\n// Static API object\r\nexport const BaseModalLoading = {\r\n show,\r\n hide,\r\n setModalRef,\r\n};\r\n\r\n// ============================================================\r\n// PROVIDER COMPONENT (mount once at app root)\r\n// ============================================================\r\n\r\nexport const BaseModalLoadingProvider = () => {\r\n const [open, setOpen] = useState(false);\r\n const ref = useRef();\r\n\r\n const handleShow = useCallback(() => {\r\n setOpen(true);\r\n }, []);\r\n\r\n const handleHide = useCallback(() => {\r\n setOpen(false);\r\n }, []);\r\n\r\n // Register ref\r\n ref.current = { show: handleShow, hide: handleHide };\r\n\r\n // Set ref on mount\r\n useState(() => {\r\n BaseModalLoading.setModalRef(ref);\r\n });\r\n\r\n return <ModalLoadingDialog open={open} />;\r\n};\r\n\r\n// Export controlled component\r\nexport const BaseModalLoadingDialog = ModalLoadingDialog;\r\n","import DialogRaw from \"@mui/material/Dialog\";\r\nimport DialogContentRaw from \"@mui/material/DialogContent\";\r\nimport DialogActionsRaw from \"@mui/material/DialogActions\";\r\nimport IconButtonRaw from \"@mui/material/IconButton\";\r\nimport BoxRaw from \"@mui/material/Box\";\r\nimport { IconX } from \"@tabler/icons-react\";\r\nimport { Watermark } from \"@hirohe/react-watermark\";\r\nimport { BaseButton } from \"@/components/atoms/buttons/button/button\";\r\nimport { DerivedColor } from \"@/components/atoms/colors/derived\";\r\nimport { Radius } from \"@/components/atoms/radius/radius\";\r\nimport { SpacingToken } from \"@/components/atoms/spacing_layout/spacing\";\r\n\r\nconst Dialog = DialogRaw?.default ?? DialogRaw;\r\nconst DialogContent = DialogContentRaw?.default ?? DialogContentRaw;\r\nconst DialogActions = DialogActionsRaw?.default ?? DialogActionsRaw;\r\nconst IconButton = IconButtonRaw?.default ?? IconButtonRaw;\r\nconst Box = BoxRaw?.default ?? BoxRaw;\r\n\r\n// ============================================================\r\n// HEADER COLOR MAPPING\r\n// ============================================================\r\n\r\nconst HEADER_COLORS = {\r\n primary: DerivedColor.color_bg_brand_primary,\r\n secondary: DerivedColor.color_bg_brand_secondary,\r\n success: DerivedColor.color_bg_success,\r\n warning: DerivedColor.color_bg_warning,\r\n danger: DerivedColor.color_bg_danger,\r\n};\r\n\r\n// ============================================================\r\n// COMPONENT\r\n// ============================================================\r\n\r\nexport const BaseModalPopup = ({\r\n open = false,\r\n onClose,\r\n variant = \"default\",\r\n color = \"primary\",\r\n title = \"\",\r\n subtitle = \"\",\r\n startIcon = null,\r\n children = null,\r\n footer = null,\r\n maxWidth = \"sm\",\r\n fullWidth = true,\r\n isWatermark = false,\r\n watermarkText = \"\",\r\n sx = {},\r\n ...rest\r\n}) => {\r\n const headerBg = HEADER_COLORS[color] || HEADER_COLORS.primary;\r\n const headerTextColor = DerivedColor.color_text_inverse;\r\n const contentBg = DerivedColor.color_bg_surface;\r\n const borderColor = DerivedColor.color_border_default;\r\n\r\n const hasHeader = variant === \"with-header\" || variant === \"with-header-footer\";\r\n const hasFooter = variant === \"with-header-footer\";\r\n\r\n // Wrap children with watermark if enabled\r\n const renderContent = () => {\r\n if (isWatermark && watermarkText) {\r\n return (\r\n <Watermark\r\n text={watermarkText}\r\n textColor=\"#000000\"\r\n textSize={14}\r\n opacity={0.15}\r\n gutter={20}\r\n rotate={-30}\r\n wrapperStyle={{ minHeight: \"100px\" }}\r\n >\r\n {children}\r\n </Watermark>\r\n );\r\n }\r\n return children;\r\n };\r\n\r\n return (\r\n <Dialog\r\n open={open}\r\n onClose={onClose}\r\n maxWidth={maxWidth}\r\n fullWidth={fullWidth}\r\n sx={{\r\n \"& .MuiDialog-paper\": {\r\n borderRadius: Radius.radius_3,\r\n overflow: \"hidden\",\r\n },\r\n ...sx,\r\n }}\r\n {...rest}\r\n >\r\n {/* ====================== HEADER ====================== */}\r\n {hasHeader ? (\r\n <Box\r\n sx={{\r\n backgroundColor: headerBg,\r\n padding: SpacingToken.spacing4,\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n }}\r\n >\r\n <Box sx={{ display: \"flex\", alignItems: \"center\", gap: \"8px\" }}>\r\n {startIcon && (\r\n <Box sx={{ display: \"flex\", alignItems: \"center\", lineHeight: 0, color: headerTextColor }}>\r\n {startIcon}\r\n </Box>\r\n )}\r\n <Box>\r\n <Box\r\n component=\"span\"\r\n sx={{\r\n color: headerTextColor,\r\n fontWeight: 700,\r\n fontSize: \"16px\",\r\n display: \"block\",\r\n }}\r\n >\r\n {title}\r\n </Box>\r\n {subtitle && (\r\n <Box\r\n component=\"span\"\r\n sx={{\r\n color: headerTextColor,\r\n fontWeight: 400,\r\n fontSize: \"13px\",\r\n display: \"block\",\r\n mt: \"2px\",\r\n opacity: 0.85,\r\n }}\r\n >\r\n {subtitle}\r\n </Box>\r\n )}\r\n </Box>\r\n </Box>\r\n\r\n <IconButton onClick={onClose} sx={{ color: headerTextColor }}>\r\n <IconX size={20} />\r\n </IconButton>\r\n </Box>\r\n ) : (\r\n /* Default variant: close button top-right only */\r\n <Box sx={{ position: \"absolute\", right: 8, top: 8, zIndex: 1 }}>\r\n <IconButton onClick={onClose} sx={{ color: DerivedColor.color_text_subtle }}>\r\n <IconX size={20} />\r\n </IconButton>\r\n </Box>\r\n )}\r\n\r\n {/* ====================== CONTENT ====================== */}\r\n <DialogContent\r\n sx={{\r\n backgroundColor: contentBg,\r\n padding: SpacingToken.spacing5,\r\n pt: hasHeader ? SpacingToken.spacing5 : SpacingToken.spacing6,\r\n }}\r\n >\r\n {renderContent()}\r\n </DialogContent>\r\n\r\n {/* ====================== FOOTER ====================== */}\r\n {hasFooter && footer && (\r\n <DialogActions\r\n sx={{\r\n backgroundColor: contentBg,\r\n borderTop: `1px solid ${borderColor}`,\r\n padding: SpacingToken.spacing4,\r\n gap: SpacingToken.spacing2,\r\n }}\r\n >\r\n {footer}\r\n </DialogActions>\r\n )}\r\n </Dialog>\r\n );\r\n};\r\n","\"use client\";\r\nimport { Fragment, useEffect, useState } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport DialogRaw from \"@mui/material/Dialog\";\r\nimport DialogTitleRaw from \"@mui/material/DialogTitle\";\r\nimport DialogContentRaw from \"@mui/material/DialogContent\";\r\nimport DialogActionsRaw from \"@mui/material/DialogActions\";\r\nimport IconButtonRaw from \"@mui/material/IconButton\";\r\nimport TypographyRaw from \"@mui/material/Typography\";\r\nimport BoxRaw from \"@mui/material/Box\";\r\nimport StepperRaw from \"@mui/material/Stepper\";\r\nimport StepRaw from \"@mui/material/Step\";\r\nimport StepLabelRaw from \"@mui/material/StepLabel\";\r\nimport StepContentRaw from \"@mui/material/StepContent\";\r\nimport TooltipRaw, { tooltipClasses } from \"@mui/material/Tooltip\";\r\nimport CloseIconRaw from \"@mui/icons-material/Close\";\r\nimport CheckIconRaw from \"@mui/icons-material/Check\";\r\nimport FailedIconRaw from \"@mui/icons-material/Close\";\r\nimport InfoIconRaw from \"@mui/icons-material/Info\";\r\n// import Image from \"next/image\";\r\nimport Link from \"next/link\";\r\nimport { styled } from \"@mui/material/styles\";\r\n\r\n// import { callAsset } from \"@/utils/asset\";\r\nimport { BaseButton } from \"@/components/atoms/buttons/button\";\r\nimport { PrimitiveColor } from \"@/components/atoms/colors/primitive\";\r\nimport { Radius } from \"@/components/atoms/radius/radius\";\r\n// import { SpacingToken } from \"@/components/atoms/spacing_layout/spacing\";\r\nimport { VariantStyles } from \"@/components/atoms/typography/typography\";\r\n\r\nconst CloseIcon = CloseIconRaw?.default ?? CloseIconRaw;\r\nconst CheckIcon = CheckIconRaw?.default ?? CheckIconRaw;\r\nconst FailedIcon = FailedIconRaw?.default ?? FailedIconRaw;\r\nconst InfoIcon = InfoIconRaw?.default ?? InfoIconRaw;\r\nimport CircularProgressRaw from \"@mui/material/CircularProgress\";\r\nconst Dialog = DialogRaw?.default ?? DialogRaw;\r\nconst DialogTitle = DialogTitleRaw?.default ?? DialogTitleRaw;\r\nconst DialogContent = DialogContentRaw?.default ?? DialogContentRaw;\r\nconst DialogActions = DialogActionsRaw?.default ?? DialogActionsRaw;\r\nconst IconButton = IconButtonRaw?.default ?? IconButtonRaw;\r\nconst Typography = TypographyRaw?.default ?? TypographyRaw;\r\nconst Box = BoxRaw?.default ?? BoxRaw;\r\nconst Stepper = StepperRaw?.default ?? StepperRaw;\r\nconst Step = StepRaw?.default ?? StepRaw;\r\nconst StepLabel = StepLabelRaw?.default ?? StepLabelRaw;\r\nconst StepContent = StepContentRaw?.default ?? StepContentRaw;\r\nconst Tooltip = TooltipRaw?.default ?? TooltipRaw;\r\nconst CircularProgress = CircularProgressRaw?.default ?? CircularProgressRaw;\r\n/* =========================\r\n TOOLTIP STYLE\r\n========================= */\r\n\r\nconst HtmlTooltip = styled(({ className, ...props }) => (\r\n <Tooltip {...props} classes={{ popper: className }} />\r\n))(({ theme }) => ({\r\n [`& .${tooltipClasses.tooltip}`]: {\r\n backgroundColor: PrimitiveColor.color_palette_neutral_10,\r\n color: \"rgba(0,0,0,0.87)\",\r\n maxWidth: 220,\r\n fontSize: theme.typography.pxToRem(12),\r\n border: \"1px solid #dadde9\",\r\n },\r\n}));\r\n\r\n/* =========================\r\n ICON STYLE\r\n========================= */\r\n\r\nconst ICON_SIZE = 24;\r\n\r\nconst CustomCheckIcon = styled(CheckIcon)({\r\n backgroundColor: PrimitiveColor.color_palette_dark_green,\r\n color: PrimitiveColor.color_palette_neutral_10,\r\n width: ICON_SIZE,\r\n height: ICON_SIZE,\r\n borderRadius: \"50%\",\r\n padding: 4,\r\n});\r\n\r\nconst CustomFailedIcon = styled(FailedIcon)({\r\n backgroundColor: PrimitiveColor.color_palette_red,\r\n color: PrimitiveColor.color_palette_neutral_10,\r\n width: ICON_SIZE,\r\n height: ICON_SIZE,\r\n borderRadius: \"50%\",\r\n padding: 4,\r\n});\r\n\r\nconst CustomInfoIcon = styled(InfoIcon)({\r\n backgroundColor: PrimitiveColor.color_palette_blue,\r\n marginRight: \"5px\",\r\n zIndex: 1,\r\n color: PrimitiveColor.color_palette_neutral_10,\r\n width: 22,\r\n height: 22,\r\n display: \"flex\",\r\n borderRadius: \"50%\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n cursor: \"pointer\",\r\n});\r\n\r\nconst StepIconWrapper = styled(\"div\")(({ ownerState }) => ({\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n minHeight: ICON_SIZE,\r\n ...(ownerState.active && { backgroundColor: \"transparent\" }),\r\n}));\r\n\r\n/* =========================\r\n COMPONENT\r\n========================= */\r\n\r\nexport const BaseModalStepper = ({\r\n open,\r\n onClose,\r\n title = \"\",\r\n stepper = [],\r\n navState = null,\r\n lengthUpload = 0,\r\n id_pengajuan = null,\r\n showFooter = true,\r\n children,\r\n modalWidth = \"max-w-md\",\r\n ...props\r\n}) => {\r\n const [activeStep, setActiveStep] = useState(0);\r\n\r\n /* =========================\r\n STEP ICON COMPONENT\r\n ========================= */\r\n const ColorlibStepIcon = (props) => {\r\n const { active, completed, icon, className } = props;\r\n\r\n const [hovered, setHovered] = useState(false);\r\n\r\n const iconStyles = {\r\n color: hovered\r\n ? PrimitiveColor.color_palette_blue\r\n : PrimitiveColor.color_palette_neutral_10,\r\n backgroundColor: hovered\r\n ? PrimitiveColor.color_palette_neutral_10\r\n : PrimitiveColor.color_palette_blue,\r\n transition: \"all 0.3s ease\",\r\n };\r\n\r\n const handleMouseEnter = () => setHovered(true);\r\n const handleMouseLeave = () => setHovered(false);\r\n\r\n /* =========================\r\n LOADING ICON\r\n ========================= */\r\n\r\n const icons = stepper.reduce((acc, _, index) => {\r\n acc[index + 1] = <CircularProgress size={20} />;\r\n return acc;\r\n }, {});\r\n\r\n /* =========================\r\n CHECKLIST ICON\r\n ========================= */\r\n\r\n const checklist = stepper.reduce((acc, item, index) => {\r\n const isSuccess = item.responseCode === \"00\";\r\n\r\n acc[index + 1] = (\r\n <>\r\n <HtmlTooltip\r\n title={\r\n <Fragment>\r\n <Typography fontSize={12}>\r\n {item.responseDesc || \"Tidak ada deskripsi\"}\r\n </Typography>\r\n </Fragment>\r\n }\r\n arrow\r\n >\r\n <CustomInfoIcon\r\n style={iconStyles}\r\n onMouseEnter={handleMouseEnter}\r\n onMouseLeave={handleMouseLeave}\r\n />\r\n </HtmlTooltip>\r\n\r\n {isSuccess ? <CustomCheckIcon /> : <CustomFailedIcon />}\r\n </>\r\n );\r\n\r\n return acc;\r\n }, {});\r\n\r\n return (\r\n <StepIconWrapper\r\n ownerState={{ active, completed }}\r\n className={className}\r\n sx={{ display: \"flex\", alignItems: \"center\", gap: 1 }}\r\n >\r\n {completed\r\n ? checklist[String(icon)]\r\n : active\r\n ? icons[String(icon)]\r\n : \"\"}\r\n </StepIconWrapper>\r\n );\r\n };\r\n\r\n ColorlibStepIcon.propTypes = {\r\n active: PropTypes.bool,\r\n completed: PropTypes.bool,\r\n icon: PropTypes.node,\r\n };\r\n\r\n /* =========================\r\n AUTO INCREMENT STEP\r\n ========================= */\r\n\r\n useEffect(() => {\r\n if (!open) {\r\n setActiveStep(0);\r\n return;\r\n }\r\n\r\n if (stepper.length === 0) return;\r\n\r\n const incrementStep = () =>\r\n setActiveStep((prev) => (prev < stepper.length ? prev + 1 : prev));\r\n\r\n const delay =\r\n activeStep > 0 ? stepper[activeStep - 1]?.responseTime || 800 : 800;\r\n\r\n const timer = setTimeout(incrementStep, delay);\r\n\r\n return () => clearTimeout(timer);\r\n }, [activeStep, stepper, open]);\r\n\r\n const handleClose = (event, reason) => {\r\n if (reason !== \"backdropClick\" && reason !== \"escapeKeyDown\") {\r\n onClose(event, reason);\r\n }\r\n };\r\n\r\n /* =========================\r\n FOOTER BUTTON\r\n ========================= */\r\n\r\n const renderFooterButton = () => {\r\n if (!showFooter) return null;\r\n\r\n const hrefMap = {\r\n 2: \"/pipeline/pipeline-international\",\r\n 3: id_pengajuan\r\n ? `/prakarsa/prakarsa-international/dashboard/${id_pengajuan}`\r\n : `/prakarsa/prakarsa-international/`,\r\n 4: id_pengajuan\r\n ? `/monitoring/monitoring-korporasi/internasional/dashboard/${id_pengajuan}`\r\n : `/monitoring/monitoring-korporasi/`,\r\n 5: id_pengajuan\r\n ? `/approval/approval-korporasi/internasional/dashboard/${id_pengajuan}`\r\n : `/approval/approval-korporasi/`,\r\n };\r\n\r\n const href = hrefMap[navState] || null;\r\n\r\n const button = (\r\n <BaseButton\r\n sx={{ padding: \"8px 24px\" }}\r\n variant=\"fill\"\r\n color=\"primary\"\r\n onClick={() => onClose()}\r\n disabled={lengthUpload !== 0}\r\n width=\"fit-content\"\r\n >\r\n Oke\r\n </BaseButton>\r\n );\r\n\r\n return href ? <Link href={href}>{button}</Link> : button;\r\n };\r\n\r\n /* =========================\r\n RENDER\r\n ========================= */\r\n\r\n return (\r\n <Dialog\r\n open={open}\r\n onClose={handleClose}\r\n PaperProps={{\r\n className: modalWidth,\r\n sx: {\r\n width: \"100%\",\r\n maxWidth: modalWidth === \"w-full\" ? \"100%\" : 550,\r\n borderRadius: Radius.radius_l,\r\n },\r\n }}\r\n {...props}\r\n >\r\n <DialogTitle sx={{ textAlign: \"center\", pt: 4 }}>\r\n {title && (\r\n <Typography style={VariantStyles.header1_bold}>{title}</Typography>\r\n )}\r\n\r\n <IconButton\r\n aria-label=\"close\"\r\n onClick={onClose}\r\n sx={{\r\n position: \"absolute\",\r\n right: 12,\r\n top: 12,\r\n color: PrimitiveColor.color_palette_neutral_60,\r\n }}\r\n >\r\n <CloseIcon />\r\n </IconButton>\r\n </DialogTitle>\r\n\r\n <DialogContent sx={{ px: 4, pb: 3 }}>\r\n {children ? (\r\n children\r\n ) : (\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: 1.5,\r\n backgroundColor: \"#EAF3FA\",\r\n padding: 2,\r\n borderRadius: Radius.radius_m,\r\n mb: 3,\r\n }}\r\n >\r\n <InfoIcon\r\n sx={{\r\n color: PrimitiveColor.color_palette_blue,\r\n fontSize: 22,\r\n }}\r\n />\r\n <Typography sx={{ fontSize: 14 }}>\r\n Harap tunggu dan jangan menutup layar hingga proses selesai.\r\n </Typography>\r\n </Box>\r\n )}\r\n\r\n <Box sx={{ width: \"100%\", maxWidth: 500 }}>\r\n <Stepper activeStep={activeStep} orientation=\"vertical\">\r\n {stepper.map((step) => (\r\n <Step key={step.label}>\r\n <StepLabel StepIconComponent={ColorlibStepIcon}>\r\n {step.label}\r\n </StepLabel>\r\n <StepContent>\r\n <Typography sx={{ fontSize: 14 }}>\r\n {step.description}\r\n </Typography>\r\n </StepContent>\r\n </Step>\r\n ))}\r\n </Stepper>\r\n </Box>\r\n </DialogContent>\r\n\r\n <DialogActions\r\n sx={{\r\n justifyContent: \"center\",\r\n pb: 4,\r\n }}\r\n >\r\n {renderFooterButton()}\r\n </DialogActions>\r\n </Dialog>\r\n );\r\n};\r\n\r\nBaseModalStepper.propTypes = {\r\n open: PropTypes.bool.isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n title: PropTypes.string,\r\n stepper: PropTypes.arrayOf(\r\n PropTypes.shape({\r\n label: PropTypes.string,\r\n description: PropTypes.string,\r\n responseCode: PropTypes.string,\r\n responseDesc: PropTypes.string,\r\n responseTime: PropTypes.number,\r\n }),\r\n ),\r\n navState: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n lengthUpload: PropTypes.number,\r\n id_pengajuan: PropTypes.number,\r\n showFooter: PropTypes.bool,\r\n children: PropTypes.node,\r\n};\r\n","\"use client\";\r\nimport { useState, useRef, useEffect, useCallback } from \"react\";\r\nimport DialogRaw from \"@mui/material/Dialog\";\r\nimport DialogContentRaw from \"@mui/material/DialogContent\";\r\nimport DialogTitleRaw from \"@mui/material/DialogTitle\";\r\nimport IconButtonRaw from \"@mui/material/IconButton\";\r\nimport BoxRaw from \"@mui/material/Box\";\r\nimport TypographyRaw from \"@mui/material/Typography\";\r\nimport CloseIconRaw from \"@mui/icons-material/Close\";\r\nimport dynamic from \"next/dynamic\";\r\n\r\nimport { BaseButton } from \"@/components/atoms/buttons/button\";\r\nimport { PrimitiveColor } from \"@/components/atoms/colors/primitive\";\r\nimport { Radius } from \"@/components/atoms/radius/radius\";\r\nimport { SpacingToken } from \"@/components/atoms/spacing_layout/spacing\";\r\nimport { VariantStyles } from \"@/components/atoms/typography/typography\";\r\n\r\nimport { LockHero } from \"@/components/legacy/atoms/icons/lock-hero\";\r\n\r\nconst Countdown = dynamic(\r\n () => import(\"react-countdown\").then((mod) => mod.default ?? mod),\r\n { ssr: false },\r\n);\r\n\r\nconst CloseIcon = CloseIconRaw?.default ?? CloseIconRaw;\r\nconst Dialog = DialogRaw?.default ?? DialogRaw;\r\nconst DialogContent = DialogContentRaw?.default ?? DialogContentRaw;\r\nconst DialogTitle = DialogTitleRaw?.default ?? DialogTitleRaw;\r\nconst IconButton = IconButtonRaw?.default ?? IconButtonRaw;\r\nconst Box = BoxRaw?.default ?? BoxRaw;\r\nconst Typography = TypographyRaw?.default ?? TypographyRaw;\r\n\r\n/** Inline styles for OTP input — no external CSS dependency */\r\nconst otpInputBase = {\r\n height: 40,\r\n width: 30,\r\n border: \"none\",\r\n borderRadius: 0,\r\n marginLeft: 6,\r\n marginRight: 6,\r\n fontSize: 20,\r\n fontWeight: 700,\r\n color: \"#1078ca\",\r\n textAlign: \"center\",\r\n outline: \"none\",\r\n background: \"transparent\",\r\n};\r\n\r\nconst otpInputNormal = {\r\n ...otpInputBase,\r\n borderBottom: \"3px solid #e0e0e0\",\r\n};\r\n\r\nconst otpInputError = {\r\n ...otpInputBase,\r\n borderBottom: \"3px solid #e84040\",\r\n color: \"#e84040\",\r\n};\r\n\r\nconst otpInputFocused = {\r\n borderBottom: \"3px solid #1078ca\",\r\n};\r\n\r\n/**\r\n * Native OTP input component — replaces react-otp-input for React 19 compatibility.\r\n */\r\nconst NativeOTPInput = ({ value, onChange, numInputs, hasError }) => {\r\n const inputRefs = useRef([]);\r\n const [focusedIndex, setFocusedIndex] = useState(-1);\r\n const digits = value.split(\"\");\r\n\r\n const handleChange = useCallback(\r\n (index, e) => {\r\n const val = e.target.value;\r\n if (!/^\\d*$/.test(val)) return;\r\n\r\n const newDigits = [...digits];\r\n // Pad array to numInputs length\r\n while (newDigits.length < numInputs) newDigits.push(\"\");\r\n\r\n newDigits[index] = val.slice(-1);\r\n const newValue = newDigits.join(\"\");\r\n onChange(newValue.slice(0, numInputs));\r\n\r\n if (val && index < numInputs - 1) {\r\n inputRefs.current[index + 1]?.focus();\r\n }\r\n },\r\n [digits, numInputs, onChange],\r\n );\r\n\r\n const handleKeyDown = useCallback(\r\n (index, e) => {\r\n if (e.key === \"Backspace\" && !digits[index] && index > 0) {\r\n inputRefs.current[index - 1]?.focus();\r\n }\r\n if (e.key === \"ArrowLeft\" && index > 0) {\r\n e.preventDefault();\r\n inputRefs.current[index - 1]?.focus();\r\n }\r\n if (e.key === \"ArrowRight\" && index < numInputs - 1) {\r\n e.preventDefault();\r\n inputRefs.current[index + 1]?.focus();\r\n }\r\n },\r\n [digits, numInputs],\r\n );\r\n\r\n const handlePaste = useCallback(\r\n (e) => {\r\n e.preventDefault();\r\n const pasted = e.clipboardData\r\n .getData(\"text\")\r\n .replace(/\\D/g, \"\")\r\n .slice(0, numInputs);\r\n if (!pasted) return;\r\n onChange(pasted);\r\n const nextIdx = Math.min(pasted.length, numInputs - 1);\r\n inputRefs.current[nextIdx]?.focus();\r\n },\r\n [numInputs, onChange],\r\n );\r\n\r\n // Auto-focus first input on mount\r\n useEffect(() => {\r\n const timer = setTimeout(() => inputRefs.current[0]?.focus(), 100);\r\n return () => clearTimeout(timer);\r\n }, []);\r\n\r\n return (\r\n <div\r\n style={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n }}\r\n onPaste={handlePaste}\r\n >\r\n {Array.from({ length: numInputs }).map((_, index) => {\r\n const isFocused = focusedIndex === index;\r\n const baseStyle = hasError ? otpInputError : otpInputNormal;\r\n const style = isFocused\r\n ? { ...baseStyle, ...otpInputFocused }\r\n : baseStyle;\r\n\r\n return (\r\n <input\r\n key={index}\r\n ref={(el) => {\r\n inputRefs.current[index] = el;\r\n }}\r\n type=\"tel\"\r\n inputMode=\"numeric\"\r\n maxLength={1}\r\n autoComplete=\"off\"\r\n value={digits[index] || \"\"}\r\n onChange={(e) => handleChange(index, e)}\r\n onKeyDown={(e) => handleKeyDown(index, e)}\r\n onFocus={(e) => {\r\n setFocusedIndex(index);\r\n e.target.select();\r\n }}\r\n onBlur={() => setFocusedIndex(-1)}\r\n style={style}\r\n aria-label={`${index === 0 ? \"Please enter verification code. \" : \"\"}Digit ${index + 1}`}\r\n />\r\n );\r\n })}\r\n </div>\r\n );\r\n};\r\n\r\nexport const BaseModalOTP = ({\r\n isOpen,\r\n phone,\r\n setIsOpen,\r\n otpLength = 6,\r\n onValidateOtp = () => null,\r\n onRequestOtp = () => null,\r\n}) => {\r\n const [countOn, setCountOn] = useState(\"on\");\r\n const [date, setDate] = useState(Date.now() + 120000);\r\n const [otp, setOtp] = useState(\"\");\r\n const [errorMessage, setErrorMessage] = useState(\"\");\r\n\r\n const handleClose = () => setIsOpen(false);\r\n\r\n const handleChange = (value) => {\r\n setErrorMessage(\"\");\r\n setOtp(value);\r\n\r\n if (value.length === otpLength) {\r\n onValidateOtp(value);\r\n }\r\n };\r\n\r\n const setTime = () => {\r\n setCountOn(\"on\");\r\n setDate(Date.now() + 120000);\r\n setOtp(\"\");\r\n onRequestOtp();\r\n };\r\n\r\n const setOff = () => setCountOn(\"off\");\r\n\r\n return (\r\n <Dialog\r\n open={isOpen}\r\n onClose={handleClose}\r\n maxWidth=\"xs\"\r\n fullWidth\r\n sx={{\r\n \"& .MuiPaper-root\": {\r\n borderRadius: Radius.radius_4,\r\n padding: SpacingToken.spacing4,\r\n maxWidth: 350,\r\n },\r\n }}\r\n >\r\n <DialogTitle sx={{ p: 0 }}>\r\n <IconButton\r\n onClick={handleClose}\r\n sx={{\r\n position: \"absolute\",\r\n right: SpacingToken.spacing2,\r\n top: SpacingToken.spacing2,\r\n }}\r\n >\r\n <CloseIcon />\r\n </IconButton>\r\n </DialogTitle>\r\n\r\n <DialogContent sx={{ p: 0 }}>\r\n <Box\r\n display=\"flex\"\r\n flexDirection=\"column\"\r\n alignItems=\"center\"\r\n textAlign=\"center\"\r\n gap={SpacingToken.spacing4}\r\n >\r\n <LockHero />\r\n\r\n <Typography\r\n sx={{\r\n ...VariantStyles.header1_semibold,\r\n color: PrimitiveColor.color_palette_neutral_100,\r\n }}\r\n >\r\n Verifikasi OTP\r\n </Typography>\r\n\r\n <Typography\r\n sx={{\r\n ...VariantStyles.body1_regular,\r\n color: PrimitiveColor.color_palette_neutral_70,\r\n maxWidth: 280,\r\n }}\r\n >\r\n Masukkan kode OTP yang telah dikirim ke nomor {phone}\r\n </Typography>\r\n\r\n {/* OTP INPUT */}\r\n <Box width=\"100%\" display=\"flex\" justifyContent=\"center\">\r\n <form\r\n autoComplete=\"off\"\r\n style={{\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n }}\r\n >\r\n <input type=\"hidden\" name=\"otp\" value={otp} />\r\n <NativeOTPInput\r\n value={otp}\r\n onChange={handleChange}\r\n numInputs={otpLength}\r\n hasError={!!errorMessage}\r\n />\r\n </form>\r\n </Box>\r\n\r\n {errorMessage && (\r\n <Typography\r\n sx={{\r\n ...VariantStyles.caption_regular,\r\n color: PrimitiveColor.color_palette_red,\r\n }}\r\n >\r\n {errorMessage}\r\n </Typography>\r\n )}\r\n\r\n {/* COUNTDOWN */}\r\n {countOn === \"on\" && (\r\n <Countdown\r\n date={date}\r\n onComplete={setOff}\r\n renderer={({ minutes, seconds }) => (\r\n <Typography\r\n sx={{\r\n ...VariantStyles.body1_regular,\r\n color: PrimitiveColor.color_palette_neutral_60,\r\n }}\r\n >\r\n Waktu tersisa {minutes < 10 ? `0${minutes}` : minutes}:\r\n {seconds < 10 ? `0${seconds}` : seconds}\r\n </Typography>\r\n )}\r\n />\r\n )}\r\n\r\n {countOn === \"off\" && (\r\n <Typography\r\n sx={{\r\n ...VariantStyles.body1_regular,\r\n color: PrimitiveColor.color_palette_neutral_60,\r\n }}\r\n >\r\n Waktu habis\r\n </Typography>\r\n )}\r\n\r\n {/* BUTTON */}\r\n {countOn === \"on\" ? (\r\n <BaseButton\r\n variant=\"text\"\r\n color=\"color_palette_blue\"\r\n onClick={handleClose}\r\n >\r\n Batalkan\r\n </BaseButton>\r\n ) : (\r\n <BaseButton\r\n variant=\"fill\"\r\n color=\"color_palette_blue\"\r\n onClick={setTime}\r\n >\r\n Kirim Ulang\r\n </BaseButton>\r\n )}\r\n </Box>\r\n </DialogContent>\r\n </Dialog>\r\n );\r\n};\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport BoxRaw from \"@mui/material/Box\";\r\nimport { BaseTextField } from \"@/components/molecules/textfields/textfield\";\r\nimport { BaseTextArea } from \"@/components/molecules/textfields/textfield-area\";\r\nimport { TextFieldUpload } from \"@/components/molecules/textfields/textfield-upload\";\r\nimport { BaseDatePicker } from \"@/components/molecules/datepicker/datepicker\";\r\nimport { BaseDropdown } from \"@/components/molecules/dropdown/dropdown\";\r\nimport { BaseCheckbox } from \"@/components/molecules/checkbox/checkbox\";\r\nimport { BaseRadioButton } from \"@/components/molecules/radio/radio\";\r\nimport { BaseTypography } from \"@/components/atoms/typography\";\r\nimport { DerivedColor } from \"@/components/atoms/colors/derived\";\r\n\r\nconst Box = BoxRaw?.default ?? BoxRaw;\r\n\r\nexport const FORM_TYPE = {\r\n TEXT_FIELD: \"text-field\",\r\n TEXT_AREA: \"text-area\",\r\n TEXT_FIELD_UPLOAD: \"text-field-upload\",\r\n DATE_PICKER: \"date-picker\",\r\n DATETIME_PICKER: \"datetime-picker\",\r\n TIME_PICKER: \"time-picker\",\r\n YEAR_PICKER: \"year-picker\",\r\n MONTH_PICKER: \"month-picker\",\r\n DAY_PICKER: \"day-picker\",\r\n DATE_RANGE: \"date-range\",\r\n DROPDOWN: \"dropdown\",\r\n DROPDOWN_ASYNC: \"dropdown-async\",\r\n CHECKBOX: \"checkbox\",\r\n RADIO: \"radio\",\r\n CUSTOM: \"custom\",\r\n};\r\n\r\nconst FormContent = ({ type, ...restProps }) => {\r\n // Remove layout-specific props before passing to actual component\r\n const { layout: _layout, labelWidth: _labelWidth, divider: _divider, ...componentProps } = restProps;\r\n\r\n switch (type) {\r\n case FORM_TYPE.TEXT_FIELD:\r\n return <BaseTextField {...componentProps} />;\r\n\r\n case FORM_TYPE.TEXT_AREA:\r\n return <BaseTextArea {...componentProps} />;\r\n\r\n case FORM_TYPE.TEXT_FIELD_UPLOAD:\r\n return <TextFieldUpload {...componentProps} />;\r\n\r\n case FORM_TYPE.DATE_PICKER:\r\n return <BaseDatePicker type=\"single\" {...componentProps} />;\r\n\r\n case FORM_TYPE.DATETIME_PICKER:\r\n return <BaseDatePicker type=\"datetime\" {...componentProps} />;\r\n\r\n case FORM_TYPE.TIME_PICKER:\r\n return <BaseDatePicker type=\"time\" {...componentProps} />;\r\n\r\n case FORM_TYPE.YEAR_PICKER:\r\n return <BaseDatePicker type=\"year\" {...componentProps} />;\r\n\r\n case FORM_TYPE.MONTH_PICKER:\r\n return <BaseDatePicker type=\"month\" {...componentProps} />;\r\n\r\n case FORM_TYPE.DAY_PICKER:\r\n return <BaseDatePicker type=\"day\" {...componentProps} />;\r\n\r\n case FORM_TYPE.DATE_RANGE:\r\n return <BaseDatePicker type=\"range\" {...componentProps} />;\r\n\r\n case FORM_TYPE.DROPDOWN:\r\n return <BaseDropdown {...componentProps} />;\r\n\r\n case FORM_TYPE.DROPDOWN_ASYNC:\r\n return <BaseDropdown {...componentProps} />;\r\n\r\n case FORM_TYPE.CHECKBOX:\r\n return <BaseCheckbox {...componentProps} />;\r\n\r\n case FORM_TYPE.RADIO:\r\n return <BaseRadioButton {...componentProps} />;\r\n\r\n case FORM_TYPE.CUSTOM:\r\n return componentProps.component ?? null;\r\n\r\n default:\r\n return null;\r\n }\r\n};\r\n\r\n/**\r\n * Renders a single field item with the resolved layout (horizontal or vertical).\r\n */\r\nconst FormField = ({ item, index, control, resolvedLayout, resolvedLabelWidth, resolvedDivider }) => {\r\n // Determine layout for this specific field\r\n const fieldLayout = item.layout || resolvedLayout;\r\n const fieldLabelWidth = item.labelWidth || resolvedLabelWidth;\r\n const fieldDivider = item.divider !== undefined ? item.divider : resolvedDivider;\r\n\r\n if (fieldLayout === \"horizontal\") {\r\n return (\r\n <Box\r\n key={item.name || `form-item-${index}`}\r\n sx={{\r\n display: \"grid\",\r\n gridTemplateColumns: `${fieldLabelWidth} 1fr`,\r\n alignItems: \"center\",\r\n py: \"12px\",\r\n ...(fieldDivider && {\r\n borderBottom: `1px solid ${DerivedColor.color_border_default}`,\r\n }),\r\n }}\r\n >\r\n {/* Label */}\r\n <Box sx={{ display: \"flex\", justifyContent: \"space-between\", pr: 2 }}>\r\n <BaseTypography variant=\"body1_regular.default\">\r\n {item.title || item.name}\r\n </BaseTypography>\r\n <BaseTypography variant=\"body1_regular.default\">:</BaseTypography>\r\n </Box>\r\n\r\n {/* Input */}\r\n <Box>\r\n <FormContent\r\n control={control}\r\n {...item}\r\n title={undefined}\r\n />\r\n </Box>\r\n </Box>\r\n );\r\n }\r\n\r\n // Default: vertical layout (title handled by component itself)\r\n return (\r\n <FormContent\r\n key={item.name || `form-item-${index}`}\r\n control={control}\r\n {...item}\r\n />\r\n );\r\n};\r\n\r\nconst Form = ({ children, sx = {}, methods, onSubmit }) => {\r\n return (\r\n <Box component=\"form\" sx={sx} onSubmit={methods?.handleSubmit(onSubmit)}>\r\n {React.Children.map(children, (child) => {\r\n if (!child) return null;\r\n return child.props?.name\r\n ? React.createElement(child.type, {\r\n ...child.props,\r\n control: methods?.control,\r\n key: child.props.name,\r\n })\r\n : child;\r\n })}\r\n </Box>\r\n );\r\n};\r\n\r\nconst SubForm = ({ children, sx = {}, methods }) => {\r\n return (\r\n <Box sx={sx}>\r\n {React.Children.map(children, (child) => {\r\n if (!child) return null;\r\n return child.props?.name\r\n ? React.createElement(child.type, {\r\n ...child.props,\r\n control: methods?.control,\r\n key: child.props.name,\r\n })\r\n : child;\r\n })}\r\n </Box>\r\n );\r\n};\r\n\r\nexport const FormBuilder = ({\r\n sx = {},\r\n fields = [],\r\n methods,\r\n onSubmit,\r\n gap = 16,\r\n columns = 1,\r\n layout = \"vertical\",\r\n labelWidth = \"30%\",\r\n divider = false,\r\n ...restProps\r\n}) => {\r\n // When layout is horizontal, default gap to 0 (rows separated by borders)\r\n const resolvedGap = layout === \"horizontal\" && gap === 16 ? 0 : gap;\r\n\r\n const layoutSx =\r\n columns > 1\r\n ? { display: \"grid\", gridTemplateColumns: `repeat(${columns}, 1fr)`, gap: `${resolvedGap}px` }\r\n : { display: \"flex\", flexDirection: \"column\", gap: `${resolvedGap}px` };\r\n\r\n return (\r\n <Form sx={sx} methods={methods} onSubmit={onSubmit} {...restProps}>\r\n <Box sx={layoutSx}>\r\n {fields.map((item, index) => (\r\n <FormField\r\n key={item.name || `form-item-${index}`}\r\n item={item}\r\n index={index}\r\n control={methods?.control}\r\n resolvedLayout={layout}\r\n resolvedLabelWidth={labelWidth}\r\n resolvedDivider={divider}\r\n />\r\n ))}\r\n </Box>\r\n </Form>\r\n );\r\n};\r\n\r\nexport const SubFormBuilder = ({\r\n sx = {},\r\n fields = [],\r\n methods,\r\n gap = 16,\r\n columns = 1,\r\n layout = \"vertical\",\r\n labelWidth = \"30%\",\r\n divider = false,\r\n}) => {\r\n const resolvedGap = layout === \"horizontal\" && gap === 16 ? 0 : gap;\r\n\r\n const layoutSx =\r\n columns > 1\r\n ? { display: \"grid\", gridTemplateColumns: `repeat(${columns}, 1fr)`, gap: `${resolvedGap}px` }\r\n : { display: \"flex\", flexDirection: \"column\", gap: `${resolvedGap}px` };\r\n\r\n return (\r\n <SubForm sx={sx} methods={methods}>\r\n <Box sx={layoutSx}>\r\n {fields.map((item, index) => (\r\n <FormField\r\n key={item.name || `subform-item-${index}`}\r\n item={item}\r\n index={index}\r\n control={methods?.control}\r\n resolvedLayout={layout}\r\n resolvedLabelWidth={labelWidth}\r\n resolvedDivider={divider}\r\n />\r\n ))}\r\n </Box>\r\n </SubForm>\r\n );\r\n};\r\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/legacy/atoms/icons/biometric-scan.jsx","../src/components/legacy/atoms/icons/capslock-on.jsx","../src/components/legacy/atoms/icons/document-add.jsx","../src/components/legacy/atoms/icons/download.jsx","../src/components/legacy/atoms/icons/edit.jsx","../src/components/legacy/atoms/icons/file.jsx","../src/components/legacy/atoms/icons/grading-rounded.jsx","../src/components/legacy/atoms/icons/list-document.jsx","../src/components/legacy/atoms/icons/money-icon.jsx","../src/components/legacy/atoms/icons/money.jsx","../src/components/legacy/atoms/icons/progress.jsx","../src/components/legacy/atoms/icons/reset.jsx","../src/components/legacy/atoms/icons/save-outlined.jsx","../src/components/legacy/atoms/icons/save.jsx","../src/components/legacy/atoms/icons/send-white-full.jsx","../src/components/legacy/atoms/icons/send-white.jsx","../src/components/legacy/atoms/icons/upload.jsx","../src/components/legacy/atoms/icons/user-scan.jsx","../src/components/legacy/atoms/icons/users-icon.jsx","../src/components/legacy/atoms/icons/verification.jsx","../src/components/atoms/radius/radius/radius.jsx","../src/components/atoms/typography/typography/typography.jsx","../src/components/atoms/alerts/alert/alert.jsx","../src/components/atoms/shadow/shadow/shadow.jsx","../src/components/atoms/buttons/button/button.jsx","../src/components/atoms/skeleton/skeleton/skeleton.jsx","../src/components/atoms/switch/switch/switch.jsx","../src/components/atoms/chips/chip/chip.jsx","../src/components/atoms/watermark/watermark.jsx","../src/components/molecules/cards/card/card.jsx","../src/components/molecules/snackbar/snackbar/snackbar.jsx","../src/components/molecules/checkbox/checkbox/checkbox.jsx","../src/components/molecules/datatable/serverside-pagination-actions/serverside-pagination-actions.jsx","../src/components/molecules/datatable/pagination/pagination.jsx","../src/components/molecules/datatable/pagination/numbered-pagination.jsx","../src/components/molecules/datatable/base-datatable/base-datatable.jsx","../src/components/molecules/datepicker/datepicker/datepicker.jsx","../src/components/molecules/dropdown/dropdown/dropdown.jsx","../src/components/molecules/dropzone/dropzone/dropzone.jsx","../src/components/molecules/radio/radio/radio.jsx","../src/components/molecules/stepper/stepper/stepper.jsx","../src/components/molecules/textfields/textfield/textfield.jsx","../src/components/molecules/textfields/textfield-upload/textfield-upload.jsx","../src/components/molecules/textfields/textfield-area/imports.jsx","../src/components/molecules/textfields/textfield-area/textfield-area.jsx","../src/components/organisms/modals/modal-alert/modal-alert.jsx","../src/components/legacy/atoms/icons/loading-dots.jsx","../src/components/organisms/modals/modal-loading/modal-loading.jsx","../src/components/organisms/modals/modal-popup/modal-popup.jsx","../src/components/organisms/modals/modal-stepper/modal-stepper.jsx","../src/components/organisms/modals/modal-otp/modal-otp.jsx","../src/components/organisms/forms/form-builder/form-builder.jsx"],"names":["jsxs","jsx","_a","_b","Box","BoxRaw","IconCircleCheck","show","useState","useEffect","Alert","AlertRaw","IconButton","IconButtonRaw","useMemo","isValidElement","createElement","Fragment","Select","SelectRaw","MenuItem","MenuItemRaw","getVisiblePages","IconChevronLeft","IconChevronRight","CheckboxRaw","id","IconSquare","IconSquareCheckFilled","_c","_d","_e","PropTypes","React","TypographyRaw","DatePickerRaw","DateTimePickerRaw","TimePickerRaw","useController","CloseIcon","Chip","ChipRaw","Typography","IconUpload","IconAlertTriangle","FormControlLabel","FormControlLabelRaw","CheckIconRaw","styled","steps","InputAdornment","InputAdornmentRaw","TextField","TextFieldRaw","useRef","useCallback","allowedKeys","e","pastedData","selectionStart","selectionEnd","IconAlertCircleFilled","Button","ButtonRaw","IconInfoCircle","IconAlertCircle","IconX","Dialog","DialogRaw","DialogContent","DialogContentRaw","_modalRef","setModalRef","hide","DialogActions","DialogActionsRaw","HEADER_COLORS","CheckIcon","FailedIconRaw","Stepper","StepperRaw","Step","StepRaw","StepLabel","StepLabelRaw","Tooltip","TooltipRaw","CircularProgress","CircularProgressRaw","HtmlTooltip","tooltipClasses","CustomCheckIcon","ColorlibStepIcon","props","CloseIconRaw","DialogTitle","DialogTitleRaw"],"mappings":"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","file":"index.mjs","sourcesContent":["export const IconBiometricScan = ({color}) => {\r\n return (\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"64\" height=\"64\" viewBox=\"0 0 64 64\" fill=\"none\">\r\n <path d=\"M8 17V14C8 12.4087 8.63214 10.8826 9.75736 9.75736C10.8826 8.63214 12.4087 8 14 8H20M8 47V50C8 51.5913 8.63214 53.1174 9.75736 54.2426C10.8826 55.3679 12.4087 56 14 56H20M44 8H50C51.5913 8 53.1174 8.63214 54.2426 9.75736C55.3679 10.8826 56 12.4087 56 14V17M44 56H50C51.5913 56 53.1174 55.3679 54.2426 54.2426C55.3679 53.1174 56 51.5913 56 50V47\" stroke=\"#00529C\" strokeWidth=\"1.8\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\r\n <path d=\"M28 29.3333H28.0133M36 29.3333H36.0133M28.6667 36C29.1012 36.4435 29.6198 36.7958 30.1922 37.0363C30.7645 37.2768 31.3791 37.4007 32 37.4007C32.6209 37.4007 33.2355 37.2768 33.8078 37.0363C34.3802 36.7958 34.8988 36.4435 35.3333 36M20 32C20 33.5759 20.3104 35.1363 20.9134 36.5922C21.5165 38.0481 22.4004 39.371 23.5147 40.4853C24.629 41.5996 25.9519 42.4835 27.4078 43.0866C28.8637 43.6896 30.4241 44 32 44C33.5759 44 35.1363 43.6896 36.5922 43.0866C38.0481 42.4835 39.371 41.5996 40.4853 40.4853C41.5996 39.371 42.4835 38.0481 43.0866 36.5922C43.6896 35.1363 44 33.5759 44 32C44 30.4241 43.6896 28.8637 43.0866 27.4078C42.4835 25.9519 41.5996 24.629 40.4853 23.5147C39.371 22.4004 38.0481 21.5165 36.5922 20.9134C35.1363 20.3104 33.5759 20 32 20C30.4241 20 28.8637 20.3104 27.4078 20.9134C25.9519 21.5165 24.629 22.4004 23.5147 23.5147C22.4004 24.629 21.5165 25.9519 20.9134 27.4078C20.3104 28.8637 20 30.4241 20 32Z\" stroke={color ?? \"none\"} strokeWidth=\"1.8\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\r\n </svg>\r\n );\r\n };","export const CapsLockOn = ({ color }) => {\r\n return (\r\n <svg\r\n width=\"18\"\r\n height=\"18\"\r\n viewBox=\"0 0 18 18\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <rect width=\"18\" height=\"18\" rx=\"3\" fill=\"#A0A0A0\" />\r\n <path\r\n d=\"M4.38533 9.0119H6.20667V11.1484C6.20667 11.3498 6.27432 11.5194 6.40965 11.6574C6.54497 11.7954 6.70772 11.8643 6.89789 11.8643H11.1111C11.3013 11.8643 11.4659 11.7954 11.6048 11.6574C11.7438 11.5194 11.8133 11.3498 11.8133 11.1484V9.0119H13.6127C13.7005 9.0119 13.7736 8.96342 13.8321 8.86648C13.8907 8.76953 13.9163 8.65394 13.9089 8.51971C13.9016 8.38548 13.8541 8.27361 13.7663 8.18413L9.49823 3.48597C9.36657 3.34428 9.20199 3.27344 9.0045 3.27344C8.807 3.27344 8.63877 3.34428 8.49979 3.48597L4.24269 8.18413C4.15492 8.27361 4.10555 8.38548 4.09457 8.51971C4.0836 8.65394 4.10738 8.76953 4.16589 8.86648C4.22441 8.96342 4.29755 9.0119 4.38533 9.0119ZM11.1111 12.5691H6.89789C6.70772 12.5691 6.54497 12.6399 6.40965 12.7816C6.27432 12.9233 6.20667 13.0911 6.20667 13.285V14.0121C6.20667 14.206 6.27432 14.3738 6.40965 14.5154C6.54497 14.6571 6.70772 14.728 6.89789 14.728H11.1111C11.3013 14.728 11.4659 14.659 11.6048 14.521C11.7438 14.3831 11.8133 14.2134 11.8133 14.0121V13.285C11.8133 13.0911 11.7438 12.9233 11.6048 12.7816C11.4659 12.6399 11.3013 12.5691 11.1111 12.5691Z\"\r\n fill={color ? color : \"white\"}\r\n />\r\n </svg>\r\n );\r\n};\r\n","export const IconDocumentAdd = ({color}) => {\r\n return (\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"25\" viewBox=\"0 0 24 25\" fill=\"none\">\r\n <path d=\"M19.001 7.501H15.001L15 3.5L19.001 7.501Z\" fill={color ?? \"#00529C\"}/>\r\n <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M12.117 2.507L12 2.5H7L6.824 2.505C6.06011 2.54989 5.34224 2.88499 4.81728 3.44174C4.29233 3.99849 3.99996 4.73479 4 5.5V19.5L4.005 19.676C4.04989 20.4399 4.38499 21.1578 4.94174 21.6827C5.49849 22.2077 6.23479 22.5 7 22.5H17L17.176 22.495C17.9399 22.4501 18.6578 22.115 19.1827 21.5583C19.7077 21.0015 20 20.2652 20 19.5V10.5L19.993 10.383C19.9667 10.1598 19.8659 9.95194 19.707 9.79301C19.5481 9.63408 19.3402 9.53332 19.117 9.507L19 9.5H15L14.843 9.494C14.3669 9.45666 13.92 9.25023 13.5829 8.91203C13.2458 8.57383 13.0408 8.12617 13.005 7.65L13 7.5V3.5L12.993 3.383C12.9667 3.15978 12.8659 2.95194 12.707 2.79301C12.5481 2.63408 12.3402 2.53332 12.117 2.507ZM12.0016 11.1016C12.4986 11.1016 12.9016 11.5045 12.9016 12.0016V14.1016H15.0016C15.4986 14.1016 15.9016 14.5045 15.9016 15.0016C15.9016 15.4986 15.4986 15.9016 15.0016 15.9016H12.9016V18.0016C12.9016 18.4986 12.4986 18.9016 12.0016 18.9016C11.5045 18.9016 11.1016 18.4986 11.1016 18.0016V15.9016H9.00156C8.50451 15.9016 8.10156 15.4986 8.10156 15.0016C8.10156 14.5045 8.50451 14.1016 9.00156 14.1016H11.1016V12.0016C11.1016 11.5045 11.5045 11.1016 12.0016 11.1016Z\" fill={color ?? \"#00529C\"}/>\r\n <path d=\"M19.001 7.501H15.001L15 3.5L19.001 7.501Z\" stroke={color ?? \"#00529C\"}/>\r\n <path fillRule=\"evenodd\" clipRule=\"evenodd\" d=\"M12.117 2.507L12 2.5H7L6.824 2.505C6.06011 2.54989 5.34224 2.88499 4.81728 3.44174C4.29233 3.99849 3.99996 4.73479 4 5.5V19.5L4.005 19.676C4.04989 20.4399 4.38499 21.1578 4.94174 21.6827C5.49849 22.2077 6.23479 22.5 7 22.5H17L17.176 22.495C17.9399 22.4501 18.6578 22.115 19.1827 21.5583C19.7077 21.0015 20 20.2652 20 19.5V10.5L19.993 10.383C19.9667 10.1598 19.8659 9.95194 19.707 9.79301C19.5481 9.63408 19.3402 9.53332 19.117 9.507L19 9.5H15L14.843 9.494C14.3669 9.45666 13.92 9.25023 13.5829 8.91203C13.2458 8.57383 13.0408 8.12617 13.005 7.65L13 7.5V3.5L12.993 3.383C12.9667 3.15978 12.8659 2.95194 12.707 2.79301C12.5481 2.63408 12.3402 2.53332 12.117 2.507ZM12.0016 11.1016C12.4986 11.1016 12.9016 11.5045 12.9016 12.0016V14.1016H15.0016C15.4986 14.1016 15.9016 14.5045 15.9016 15.0016C15.9016 15.4986 15.4986 15.9016 15.0016 15.9016H12.9016V18.0016C12.9016 18.4986 12.4986 18.9016 12.0016 18.9016C11.5045 18.9016 11.1016 18.4986 11.1016 18.0016V15.9016H9.00156C8.50451 15.9016 8.10156 15.4986 8.10156 15.0016C8.10156 14.5045 8.50451 14.1016 9.00156 14.1016H11.1016V12.0016C11.1016 11.5045 11.5045 11.1016 12.0016 11.1016Z\" stroke={color ?? \"#00529C\"}/>\r\n </svg>\r\n );\r\n};","export const DownloadIconLarge = ({\r\n color = \"#00529C\",\r\n width = \"21\",\r\n height = \"21\",\r\n}) => {\r\n return (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox=\"0 0 21 22\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M21 20.1875C21 20.9124 20.4124 21.5 19.6875 21.5H1.3125C0.587631 21.5 0 20.9124 0 20.1875C0 19.4626 0.587631 18.875 1.3125 18.875H19.6875C20.4124 18.875 21 19.4626 21 20.1875ZM9.57194 16.0297C9.82825 16.286 10.1641 16.4141 10.5 16.4141C10.8358 16.4141 11.1718 16.2859 11.4281 16.0297L16.0783 11.3794C16.5909 10.8669 16.5909 10.0358 16.0783 9.52327C15.5658 9.0107 14.7347 9.0107 14.2222 9.52327L11.8125 11.9329V1.8125C11.8125 1.08763 11.2249 0.5 10.5 0.5C9.77513 0.5 9.1875 1.08763 9.1875 1.8125V11.9329L6.77783 9.52327C6.26526 9.0107 5.43424 9.0107 4.92167 9.52327C4.4091 10.0358 4.4091 10.8669 4.92167 11.3794L9.57194 16.0297Z\"\r\n fill={color}\r\n />\r\n </svg>\r\n );\r\n};\r\n","export const IconEdit = ({ color, isSmall }) => {\r\n return (\r\n <svg\r\n width={isSmall ? \"16px\" : \"20px\"}\r\n height={isSmall ? \"20px\" : \"24px\"}\r\n viewBox=\"0 0 20 24\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n fillRule=\"evenodd\"\r\n clipRule=\"evenodd\"\r\n d=\"M2.02018 21.5197H18.3535C18.6629 21.5197 18.9597 21.6426 19.1785 21.8614C19.3973 22.0802 19.5202 22.3769 19.5202 22.6863C19.5202 22.9958 19.3973 23.2925 19.1785 23.5113C18.9597 23.7301 18.6629 23.853 18.3535 23.853H2.02018C1.71076 23.853 1.41402 23.7301 1.19522 23.5113C0.976432 23.2925 0.853516 22.9958 0.853516 22.6863C0.853516 22.3769 0.976432 22.0802 1.19522 21.8614C1.41402 21.6426 1.71076 21.5197 2.02018 21.5197ZM0.853516 15.6863L12.5202 4.01968L16.0202 7.51968L4.35352 19.1863H0.853516V15.6863ZM13.6868 2.85302L16.0202 0.519684L19.5202 4.01968L17.1857 6.35418L13.6868 2.85302Z\"\r\n fill={color ? color : \"white\"}\r\n />\r\n </svg>\r\n );\r\n};\r\n","export const IconFile = ({ color }) => {\r\n return (\r\n <svg\r\n width='36'\r\n height='36'\r\n viewBox='0 0 36 36'\r\n fill='none'\r\n xmlns='http://www.w3.org/2000/svg'\r\n >\r\n <path\r\n d='M13.5718 2.91919C14.968 2.90484 16.2712 3.53241 17.126 4.59781L18.4457 6.30538C18.8656 6.81619 19.4954 7.12268 20.1703 7.12268H24.7742C30.3079 7.12268 33.0073 9.99781 32.9924 15.894V23.0016C32.9924 28.6351 29.4231 32.1086 23.6195 32.1086H12.3571C6.58344 32.1086 2.99927 28.6351 2.99927 22.987V12.0265C2.99927 5.9843 5.75863 2.91919 11.2024 2.91919H13.5718ZM24.9392 20.1265H11.0524C10.4225 20.1265 9.92766 20.6081 9.92766 21.2211C9.92766 21.8194 10.4225 22.3156 11.0524 22.3156H24.9392C25.554 22.3156 26.0489 21.8194 26.0489 21.2211C26.0489 20.6081 25.554 20.1265 24.9392 20.1265Z'\r\n fill={color ? color :'#084F8C'}\r\n />\r\n </svg>\r\n )\r\n}\r\n","export const IconGradingRounded = ({color, width, height}) => {\r\n return (\r\n <svg \r\n width={width ?? \"24\"} \r\n height={height ?? \"24\"} \r\n viewBox=\"0 0 24 24\" \r\n fill=\"none\" \r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path \r\n d=\"M19.8684 18.3838L17.7283 20.5239L16.7388 19.5352C16.4458 19.2422 15.9712 19.2422 15.6782 19.5352C15.3853 19.8281 15.3853 20.3027 15.6782 20.5957L17.198 22.1147C17.3445 22.2612 17.5364 22.3345 17.7283 22.3345C17.9202 22.3345 18.1121 22.2612 18.2585 22.1147L20.929 19.4443C21.2219 19.1514 21.2219 18.6768 20.929 18.3838C20.636 18.0908 20.1614 18.0908 19.8684 18.3838Z\" \r\n fill={color ?? \"#00529C\"}\r\n />\r\n <path \r\n d=\"M17.1016 1.5H6.60156C4.53156 1.5 2.85156 3.17999 2.85156 5.25V18.75C2.85156 20.82 4.53156 22.5 6.60156 22.5H15.4591L14.6191 21.66C13.7416 20.7825 13.7416 19.3575 14.6191 18.4725C15.4741 17.6175 16.8465 17.595 17.7241 18.405L18.8116 17.325C19.3666 16.77 20.1391 16.5675 20.8516 16.7175V5.25C20.8516 3.17999 19.1716 1.5 17.1016 1.5ZM16.3516 16.5H7.35156C6.93907 16.5 6.60156 16.1625 6.60156 15.75C6.60156 15.3375 6.93907 15 7.35156 15H16.3516C16.7641 15 17.1016 15.3375 17.1016 15.75C17.1016 16.1625 16.7641 16.5 16.3516 16.5ZM16.3516 12.75H7.35156C6.93907 12.75 6.60156 12.4125 6.60156 12C6.60156 11.5875 6.93907 11.25 7.35156 11.25H16.3516C16.7641 11.25 17.1016 11.5875 17.1016 12C17.1016 12.4125 16.7641 12.75 16.3516 12.75ZM16.3516 9H7.35156C6.93907 9 6.60156 8.66249 6.60156 8.25C6.60156 7.83751 6.93907 7.5 7.35156 7.5H16.3516C16.7641 7.5 17.1016 7.83751 17.1016 8.25C17.1016 8.66249 16.7641 9 16.3516 9Z\" \r\n fill={color ?? \"#00529C\"}\r\n />\r\n </svg>\r\n );\r\n };","export const IconListDocument = ({ color }) => {\r\n return (\r\n <svg\r\n width=\"21\"\r\n height=\"22\"\r\n viewBox=\"0 0 21 22\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M0 3.93103C0 3.13538 0.31607 2.37232 0.87868 1.80971C1.44129 1.2471 2.20435 0.93103 3 0.93103H13.5C14.2956 0.93103 15.0587 1.2471 15.6213 1.80971C16.1839 2.37232 16.5 3.13538 16.5 3.93103V14.431H21V17.431C21 18.6245 20.5259 19.7691 19.682 20.613C18.8381 21.4569 17.6935 21.931 16.5 21.931H4.5C3.30653 21.931 2.16193 21.4569 1.31802 20.613C0.474106 19.7691 0 18.6245 0 17.431V3.93103ZM16.5 20.431C17.2956 20.431 18.0587 20.115 18.6213 19.5523C19.1839 18.9897 19.5 18.2267 19.5 17.431V15.931H16.5V20.431ZM5.25 5.43103C5.05109 5.43103 4.86032 5.51005 4.71967 5.6507C4.57902 5.79135 4.5 5.98212 4.5 6.18103C4.5 6.37994 4.57902 6.57071 4.71967 6.71136C4.86032 6.85201 5.05109 6.93103 5.25 6.93103H11.25C11.4489 6.93103 11.6397 6.85201 11.7803 6.71136C11.921 6.57071 12 6.37994 12 6.18103C12 5.98212 11.921 5.79135 11.7803 5.6507C11.6397 5.51005 11.4489 5.43103 11.25 5.43103H5.25ZM5.25 9.93103C5.05109 9.93103 4.86032 10.01 4.71967 10.1507C4.57902 10.2914 4.5 10.4821 4.5 10.681C4.5 10.8799 4.57902 11.0707 4.71967 11.2114C4.86032 11.352 5.05109 11.431 5.25 11.431H11.25C11.4489 11.431 11.6397 11.352 11.7803 11.2114C11.921 11.0707 12 10.8799 12 10.681C12 10.4821 11.921 10.2914 11.7803 10.1507C11.6397 10.01 11.4489 9.93103 11.25 9.93103H5.25ZM5.25 14.431C5.05109 14.431 4.86032 14.51 4.71967 14.6507C4.57902 14.7914 4.5 14.9821 4.5 15.181C4.5 15.3799 4.57902 15.5707 4.71967 15.7114C4.86032 15.852 5.05109 15.931 5.25 15.931H8.25C8.44891 15.931 8.63968 15.852 8.78033 15.7114C8.92098 15.5707 9 15.3799 9 15.181C9 14.9821 8.92098 14.7914 8.78033 14.6507C8.63968 14.51 8.44891 14.431 8.25 14.431H5.25Z\"\r\n fill={color ? color : \"white\"}\r\n />\r\n </svg>\r\n );\r\n};\r\n","export const MoneyIcon = ({ color, width, height }) => {\r\n return (\r\n <svg\r\n width={width ? width : \"25\"}\r\n height={height ? height : \"24\"}\r\n viewBox=\"0 0 25 24\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M2.5 5.75C2.5 4.784 3.284 4 4.25 4H17.75C18.716 4 19.5 4.784 19.5 5.75V14.25C19.5 14.7141 19.3156 15.1592 18.9874 15.4874C18.6592 15.8156 18.2141 16 17.75 16H4.25C3.78587 16 3.34075 15.8156 3.01256 15.4874C2.68437 15.1592 2.5 14.7141 2.5 14.25V5.75ZM5.5 5.25V6.25C5.5 6.44891 5.42098 6.63968 5.28033 6.78033C5.13968 6.92098 4.94891 7 4.75 7H3.75V8.5H4.75C5.04547 8.5 5.33806 8.4418 5.61104 8.32873C5.88402 8.21566 6.13206 8.04992 6.34099 7.84099C6.54992 7.63206 6.71566 7.38402 6.82873 7.11104C6.9418 6.83805 7 6.54547 7 6.25V5.25H5.5ZM11 12.5C11.5967 12.5 12.169 12.2629 12.591 11.841C13.0129 11.419 13.25 10.8467 13.25 10.25C13.25 9.65326 13.0129 9.08097 12.591 8.65901C12.169 8.23705 11.5967 8 11 8C10.4033 8 9.83097 8.23705 9.40901 8.65901C8.98705 9.08097 8.75 9.65326 8.75 10.25C8.75 10.8467 8.98705 11.419 9.40901 11.841C9.83097 12.2629 10.4033 12.5 11 12.5ZM3.75 13H4.75C4.94891 13 5.13968 13.079 5.28033 13.2197C5.42098 13.3603 5.5 13.5511 5.5 13.75V14.75H7V13.75C7 13.1533 6.76295 12.581 6.34099 12.159C5.91903 11.7371 5.34674 11.5 4.75 11.5H3.75V13ZM16.5 13.75C16.5 13.5511 16.579 13.3603 16.7197 13.2197C16.8603 13.079 17.0511 13 17.25 13H18.25V11.5H17.25C16.6533 11.5 16.081 11.7371 15.659 12.159C15.2371 12.581 15 13.1533 15 13.75V14.75H16.5V13.75ZM16.5 6.25V5.25H15V6.25C15 6.54547 15.0582 6.83805 15.1713 7.11104C15.2843 7.38402 15.4501 7.63206 15.659 7.84099C16.081 8.26295 16.6533 8.5 17.25 8.5H18.25V7H17.25C17.0511 7 16.8603 6.92098 16.7197 6.78033C16.579 6.63968 16.5 6.44891 16.5 6.25Z\"\r\n fill={color ? color : \"#00529C\"}\r\n />\r\n <path\r\n d=\"M4.90137 17.4999C5.16467 17.9561 5.54351 18.335 5.99977 18.5983C6.45602 18.8616 6.97358 19.0001 7.50037 18.9999H17.7504C18.3741 18.9999 18.9918 18.877 19.5681 18.6383C20.1444 18.3996 20.668 18.0497 21.1091 17.6086C21.5502 17.1676 21.9001 16.6439 22.1388 16.0676C22.3775 15.4913 22.5004 14.8737 22.5004 14.2499V8.99988C22.5004 7.88988 21.8974 6.91988 21.0004 6.40088V14.2499C21.0004 15.1118 20.658 15.9385 20.0485 16.548C19.439 17.1575 18.6123 17.4999 17.7504 17.4999H4.90137Z\"\r\n fill={color ? color : \"#00529C\"}\r\n />\r\n </svg>\r\n );\r\n};\r\n","export const IconMoney = ({color, width, height}) => {\r\n return (\r\n <svg \r\n width={width ? width :\"32\"} \r\n height={height ? height : \"33\"} \r\n viewBox=\"0 0 32 33\" \r\n fill=\"none\" \r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path \r\n d=\"M2.66602 8.16683C2.66602 6.87883 3.71135 5.8335 4.99935 5.8335H22.9993C24.2873 5.8335 25.3327 6.87883 25.3327 8.16683V19.5002C25.3327 20.119 25.0868 20.7125 24.6493 21.1501C24.2117 21.5877 23.6182 21.8335 22.9993 21.8335H4.99935C4.38051 21.8335 3.78702 21.5877 3.34943 21.1501C2.91185 20.7125 2.66602 20.119 2.66602 19.5002V8.16683ZM6.66602 7.50016V8.8335C6.66602 9.09871 6.56066 9.35307 6.37312 9.5406C6.18559 9.72814 5.93123 9.8335 5.66602 9.8335H4.33268V11.8335H5.66602C6.05998 11.8335 6.45009 11.7559 6.81407 11.6051C7.17804 11.4544 7.50876 11.2334 7.78734 10.9548C8.06591 10.6762 8.28689 10.3455 8.43765 9.98155C8.58842 9.61757 8.66602 9.22746 8.66602 8.8335V7.50016H6.66602ZM13.9993 17.1668C14.795 17.1668 15.5581 16.8508 16.1207 16.2881C16.6833 15.7255 16.9993 14.9625 16.9993 14.1668C16.9993 13.3712 16.6833 12.6081 16.1207 12.0455C15.5581 11.4829 14.795 11.1668 13.9993 11.1668C13.2037 11.1668 12.4406 11.4829 11.878 12.0455C11.3154 12.6081 10.9993 13.3712 10.9993 14.1668C10.9993 14.9625 11.3154 15.7255 11.878 16.2881C12.4406 16.8508 13.2037 17.1668 13.9993 17.1668ZM4.33268 17.8335H5.66602C5.93123 17.8335 6.18559 17.9389 6.37312 18.1264C6.56066 18.3139 6.66602 18.5683 6.66602 18.8335V20.1668H8.66602V18.8335C8.66602 18.0378 8.34995 17.2748 7.78734 16.7122C7.22473 16.1496 6.46167 15.8335 5.66602 15.8335H4.33268V17.8335ZM21.3327 18.8335C21.3327 18.5683 21.438 18.3139 21.6256 18.1264C21.8131 17.9389 22.0675 17.8335 22.3327 17.8335H23.666V15.8335H22.3327C21.537 15.8335 20.774 16.1496 20.2114 16.7122C19.6488 17.2748 19.3327 18.0378 19.3327 18.8335V20.1668H21.3327V18.8335ZM21.3327 8.8335V7.50016H19.3327V8.8335C19.3327 9.22746 19.4103 9.61757 19.561 9.98155C19.7118 10.3455 19.9328 10.6762 20.2114 10.9548C20.774 11.5174 21.537 11.8335 22.3327 11.8335H23.666V9.8335H22.3327C22.0675 9.8335 21.8131 9.72814 21.6256 9.5406C21.438 9.35307 21.3327 9.09871 21.3327 8.8335Z\" \r\n fill=\"#ED6E12\"\r\n />\r\n <path \r\n d=\"M5.86719 23.8333C6.21826 24.4417 6.72338 24.9468 7.33172 25.2979C7.94005 25.649 8.63014 25.8337 9.33252 25.8333H22.9992C23.8309 25.8333 24.6545 25.6695 25.4229 25.3512C26.1912 25.033 26.8894 24.5665 27.4775 23.9783C28.0656 23.3902 28.5321 22.6921 28.8504 21.9237C29.1687 21.1553 29.3325 20.3317 29.3325 19.5V12.5C29.3325 11.02 28.5285 9.72667 27.3325 9.03467V19.5C27.3325 20.6493 26.876 21.7515 26.0633 22.5641C25.2507 23.3768 24.1485 23.8333 22.9992 23.8333H5.86719Z\" \r\n fill={color ? color : \"white\"}\r\n />\r\n </svg>\r\n );\r\n};","export const IconProgress = ({width, height, color}) => {\r\n return (\r\n <svg \r\n width={width ? width : \"34\"} \r\n height={height ? height : \"34\"} \r\n viewBox=\"0 0 34 34\" \r\n fill=\"none\" \r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <rect \r\n width={width ? width : \"34\"} \r\n height={height ? height : \"34\"} \r\n rx=\"17\" \r\n fill={color ? color : \"#E0FAEC\"}\r\n />\r\n <path \r\n d=\"M17 17C15.9391 17 14.9217 17.4214 14.1716 18.1716C13.4214 18.9217 13 19.9391 13 21V22.3333C13 22.5101 13.0702 22.6797 13.1953 22.8047C13.3203 22.9298 13.4899 23 13.6667 23H20.3333C20.5101 23 20.6797 22.9298 20.8047 22.8047C20.9298 22.6797 21 22.5101 21 22.3333V21C21 19.9391 20.5786 18.9217 19.8284 18.1716C19.0783 17.4214 18.0609 17 17 17ZM17 17C15.9391 17 14.9217 16.5786 14.1716 15.8284C13.4214 15.0783 13 14.0609 13 13V11.6667C13 11.4899 13.0702 11.3203 13.1953 11.1953C13.3203 11.0702 13.4899 11 13.6667 11H20.3333C20.5101 11 20.6797 11.0702 20.8047 11.1953C20.9298 11.3203 21 11.4899 21 11.6667V13C21 14.0609 20.5786 15.0783 19.8284 15.8284C19.0783 16.5786 18.0609 17 17 17Z\" \r\n stroke=\"#27AE60\" \r\n strokeWidth=\"1.8\" \r\n strokeLinecap=\"round\" \r\n strokeLinejoin=\"round\"\r\n />\r\n </svg>\r\n );\r\n};\r\n","export const IconReset = ({ color }) => {\r\n return (\r\n <svg\r\n width=\"18\"\r\n height=\"16\"\r\n viewBox=\"0 0 28 26\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M15.035 0.0343246C9.92115 0.0343246 5.40812 2.98511 3.30659 7.45833L1.84471 4.42288L0 5.31142L3.03597 11.6134L9.33792 8.57723L8.44921 6.73286L5.16626 8.31408C6.93971 4.5577 10.735 2.08185 15.035 2.08185C21.0553 2.08185 25.9529 6.97973 25.9529 13C25.9529 19.0202 21.0553 23.9182 15.035 23.9182C11.4901 23.9182 8.15224 22.1864 6.10662 19.2858L4.43308 20.4661C6.86269 23.9097 10.8258 25.9656 15.035 25.9656C22.1837 25.9656 27.9999 20.1493 27.9999 13C27.9999 5.85065 22.1837 0.0343246 15.035 0.0343246Z\"\r\n fill={color ? color : \"white\"}\r\n />\r\n </svg>\r\n );\r\n};\r\n","export const IconSaveOutlined = ({ color }) => {\r\n return (\r\n <svg\r\n width=\"20\"\r\n height=\"20\"\r\n viewBox=\"0 0 20 20\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M0 3.05556C0 2.24517 0.321924 1.46798 0.894952 0.894952C1.46798 0.321924 2.24517 1.11011e-07 3.05556 1.11011e-07H14.1267C14.6011 -0.000117513 15.0708 0.0932395 15.5091 0.274737C15.9474 0.456235 16.3457 0.722316 16.6811 1.05778L18.9422 3.31889C19.62 3.99667 20 4.91556 20 5.87333V16.9444C20 17.7548 19.6781 18.532 19.105 19.105C18.532 19.6781 17.7548 20 16.9444 20H3.05556C2.24517 20 1.46798 19.6781 0.894952 19.105C0.321924 18.532 0 17.7548 0 16.9444V3.05556ZM3.05556 1.66667C2.28889 1.66667 1.66667 2.28889 1.66667 3.05556V16.9444C1.66667 17.7111 2.28889 18.3333 3.05556 18.3333H3.33333V12.5C3.33333 11.837 3.59673 11.2011 4.06557 10.7322C4.53441 10.2634 5.17029 10 5.83333 10H14.1667C14.8297 10 15.4656 10.2634 15.9344 10.7322C16.4033 11.2011 16.6667 11.837 16.6667 12.5V18.3333H16.9444C17.7111 18.3333 18.3333 17.7111 18.3333 16.9444V5.87333C18.3333 5.35667 18.1289 4.86222 17.7633 4.49778L15.5022 2.23667C15.2152 1.94913 14.8453 1.75873 14.4444 1.69222V4.72222C14.4444 5.05053 14.3798 5.37562 14.2541 5.67893C14.1285 5.98224 13.9444 6.25784 13.7122 6.48999C13.4801 6.72214 13.2045 6.90628 12.9012 7.03192C12.5978 7.15756 12.2727 7.22222 11.9444 7.22222H6.94444C6.2814 7.22222 5.64552 6.95883 5.17668 6.48999C4.70784 6.02115 4.44444 5.38526 4.44444 4.72222V1.66667H3.05556ZM15 18.3333V12.5C15 12.279 14.9122 12.067 14.7559 11.9107C14.5996 11.7545 14.3877 11.6667 14.1667 11.6667H5.83333C5.61232 11.6667 5.40036 11.7545 5.24408 11.9107C5.0878 12.067 5 12.279 5 12.5V18.3333H15ZM6.11111 1.66667V4.72222C6.11111 5.18222 6.48444 5.55556 6.94444 5.55556H11.9444C12.1655 5.55556 12.3774 5.46776 12.5337 5.31148C12.69 5.1552 12.7778 4.94324 12.7778 4.72222V1.66667H6.11111Z\"\r\n fill={color ?? \"#ED6E12\"}\r\n />\r\n </svg>\r\n );\r\n};\r\n","export const IconSave = ({color, width = \"21\", height = \"21\" }) => {\r\n return (\r\n <svg\r\n width={width}\r\n height={height}\r\n viewBox=\"0 0 21 21\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M0.5 2.9487C0.5 2.19093 0.801019 1.46421 1.33684 0.92839C1.87266 0.392572 2.59938 0.0915527 3.35714 0.0915527H4.78571V5.09155C4.78571 5.65987 5.01148 6.20492 5.41334 6.60678C5.81521 7.00865 6.36025 7.23441 6.92857 7.23441H12.6429C13.2112 7.23441 13.7562 7.00865 14.1581 6.60678C14.5599 6.20492 14.7857 5.65987 14.7857 5.09155V0.0915527H15.3271C16.0848 0.0917146 16.8115 0.39284 17.3471 0.928696L19.6629 3.24441C20.1987 3.7801 20.4998 4.50671 20.5 5.26441V17.2344C20.5 17.9922 20.199 18.7189 19.6632 19.2547C19.1273 19.7905 18.4006 20.0916 17.6429 20.0916V12.2344C17.6429 11.6661 17.4171 11.121 17.0152 10.7192C16.6134 10.3173 16.0683 10.0916 15.5 10.0916H5.5C4.93168 10.0916 4.38663 10.3173 3.98477 10.7192C3.58291 11.121 3.35714 11.6661 3.35714 12.2344V20.0916C2.59938 20.0916 1.87266 19.7905 1.33684 19.2547C0.801019 18.7189 0.5 17.9922 0.5 17.2344V2.9487Z\"\r\n fill={color ? color : \"white\"}\r\n />\r\n <path\r\n d=\"M13.3572 0.0915527H6.21436V5.09155C6.21436 5.28099 6.28961 5.46267 6.42357 5.59663C6.55752 5.73058 6.7392 5.80584 6.92864 5.80584H12.6429C12.8324 5.80584 13.0141 5.73058 13.148 5.59663C13.282 5.46267 13.3572 5.28099 13.3572 5.09155V0.0915527Z\"\r\n fill={color ? color : \"white\"}\r\n />\r\n <path\r\n d=\"M16.2142 12.2345V20.0917H4.78564V12.2345C4.78564 12.0451 4.8609 11.8634 4.99485 11.7295C5.12881 11.5955 5.31049 11.5203 5.49993 11.5203H15.4999C15.6894 11.5203 15.871 11.5955 16.005 11.7295C16.139 11.8634 16.2142 12.0451 16.2142 12.2345Z\"\r\n fill={color ? color : \"white\"}\r\n />\r\n </svg>\r\n );\r\n};\r\n","export const IconSendWhiteFull = (color) => {\r\n return (\r\n <svg\r\n width=\"21\"\r\n height=\"21\"\r\n viewBox=\"0 0 21 21\"\r\n fill={color ? color : 'white'} \r\n\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M20.7334 0.25483C20.6153 0.137294 20.4662 0.0559167 20.3034 0.0202658C20.1406 -0.0153851 19.9711 -0.00382733 19.8147 0.0535802L0.564683 7.05358C0.398668 7.11655 0.255738 7.22854 0.154878 7.37467C0.0540177 7.52079 0 7.69415 0 7.87171C0 8.04926 0.0540177 8.22262 0.154878 8.36875C0.255738 8.51487 0.398668 8.62686 0.564683 8.68983L8.08093 11.6911L13.6284 6.12608L14.8622 7.35983L9.28843 12.9336L12.2984 20.4498C12.3633 20.6126 12.4755 20.7522 12.6206 20.8505C12.7657 20.9488 12.9369 21.0013 13.1122 21.0011C13.289 20.9975 13.4606 20.9403 13.6043 20.8372C13.748 20.7341 13.8571 20.5899 13.9172 20.4236L20.9172 1.17358C20.9768 1.01877 20.9912 0.850207 20.9586 0.687538C20.9261 0.52487 20.848 0.374802 20.7334 0.25483Z\"\r\n />\r\n </svg>\r\n );\r\n};","export const IconSendWhite = (color) => {\r\n return (\r\n <svg\r\n width=\"21\"\r\n height=\"22\"\r\n viewBox=\"0 0 21 22\"\r\n fill={color ? color : 'white'} \r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M20.746 0.753732C20.6279 0.636196 20.4787 0.554818 20.316 0.519167C20.1532 0.483516 19.9837 0.495074 19.8273 0.552482L0.577257 7.55248C0.411241 7.61545 0.268311 7.72744 0.167451 7.87357C0.0665909 8.0197 0.0125732 8.19305 0.0125732 8.37061C0.0125732 8.54816 0.0665909 8.72152 0.167451 8.86765C0.268311 9.01377 0.411241 9.12576 0.577257 9.18873L8.97726 12.5487L12.3373 20.9487C12.4004 21.1075 12.5086 21.2442 12.6485 21.3422C12.7885 21.4401 12.954 21.495 13.1248 21.5C13.3016 21.4964 13.4732 21.4392 13.6169 21.3361C13.7606 21.233 13.8697 21.0888 13.9298 20.9225L20.9298 1.67248C20.9894 1.51767 21.0037 1.34911 20.9712 1.18644C20.9387 1.02377 20.8606 0.873703 20.746 0.753732ZM13.1248 18.175L10.6835 12.05L14.8748 7.85873L13.641 6.62498L9.41476 10.8512L3.32476 8.37498L18.6635 2.83623L13.1248 18.175Z\"\r\n />\r\n </svg>\r\n );\r\n};\r\n","export const IconUpload = ({ color }) => {\r\n return (\r\n <svg\r\n width=\"34\"\r\n height=\"28\"\r\n viewBox=\"0 0 34 28\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M22.7368 19.9472L16.9998 14.2103L11.2628 19.9472\"\r\n stroke={color ? color : \"#00529C\"}\r\n strokeWidth=\"1.6549\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n />\r\n <path\r\n d=\"M16.9996 14.2103V27.1185\"\r\n stroke={color ? color : \"#00529C\"}\r\n strokeWidth=\"1.6549\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n />\r\n <path\r\n d=\"M29.0332 23.3745C30.4321 22.6119 31.5372 21.4051 32.174 19.9447C32.8109 18.4842 32.9433 16.8533 32.5503 15.3093C32.1573 13.7653 31.2613 12.3961 30.0037 11.4178C28.7462 10.4396 27.1986 9.90799 25.6054 9.90694H23.7982C23.3641 8.22778 22.555 6.66889 21.4317 5.34746C20.3083 4.02603 18.9001 2.97645 17.3127 2.27763C15.7254 1.5788 14.0003 1.24892 12.2671 1.31277C10.5339 1.37663 8.83772 1.83257 7.30611 2.64631C5.77449 3.46005 4.44728 4.61042 3.42425 6.01093C2.40121 7.41144 1.70899 9.02564 1.39961 10.7322C1.09022 12.4387 1.17174 14.1932 1.63803 15.8637C2.10431 17.5342 2.94323 19.0773 4.09171 20.3769\"\r\n stroke={color ? color : \"#00529C\"}\r\n strokeWidth=\"1.6549\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n />\r\n <path\r\n d=\"M22.7368 19.9472L16.9998 14.2103L11.2628 19.9472\"\r\n stroke={color ? color : \"#00529C\"}\r\n strokeWidth=\"1.6549\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n />\r\n </svg>\r\n );\r\n};\r\n","export const IconUserScan = ({color}) => {\r\n return (\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"25\" viewBox=\"0 0 24 25\" fill=\"none\">\r\n <path d=\"M8 16.5C8 15.9696 8.21071 15.4609 8.58579 15.0858C8.96086 14.7107 9.46957 14.5 10 14.5H14C14.5304 14.5 15.0391 14.7107 15.4142 15.0858C15.7893 15.4609 16 15.9696 16 16.5H8Z\" fill={color ?? \"none\"}/>\r\n <path d=\"M10 9.5C10 10.0304 10.2107 10.5391 10.5858 10.9142C10.9609 11.2893 11.4696 11.5 12 11.5C12.5304 11.5 13.0391 11.2893 13.4142 10.9142C13.7893 10.5391 14 10.0304 14 9.5C14 8.96957 13.7893 8.46086 13.4142 8.08579C13.0391 7.71071 12.5304 7.5 12 7.5C11.4696 7.5 10.9609 7.71071 10.5858 8.08579C10.2107 8.46086 10 8.96957 10 9.5Z\" fill={color ?? \"none\"}/>\r\n <path d=\"M4 8.5V6.5C4 5.96957 4.21071 5.46086 4.58579 5.08579C4.96086 4.71071 5.46957 4.5 6 4.5H8M4 16.5V18.5C4 19.0304 4.21071 19.5391 4.58579 19.9142C4.96086 20.2893 5.46957 20.5 6 20.5H8M16 4.5H18C18.5304 4.5 19.0391 4.71071 19.4142 5.08579C19.7893 5.46086 20 5.96957 20 6.5V8.5M16 20.5H18C18.5304 20.5 19.0391 20.2893 19.4142 19.9142C19.7893 19.5391 20 19.0304 20 18.5V16.5M10 9.5C10 10.0304 10.2107 10.5391 10.5858 10.9142C10.9609 11.2893 11.4696 11.5 12 11.5C12.5304 11.5 13.0391 11.2893 13.4142 10.9142C13.7893 10.5391 14 10.0304 14 9.5C14 8.96957 13.7893 8.46086 13.4142 8.08579C13.0391 7.71071 12.5304 7.5 12 7.5C11.4696 7.5 10.9609 7.71071 10.5858 8.08579C10.2107 8.46086 10 8.96957 10 9.5ZM8 16.5C8 15.9696 8.21071 15.4609 8.58579 15.0858C8.96086 14.7107 9.46957 14.5 10 14.5H14C14.5304 14.5 15.0391 14.7107 15.4142 15.0858C15.7893 15.4609 16 15.9696 16 16.5H8Z\" stroke={color ?? \"none\"} strokeWidth=\"1.8\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\r\n </svg>\r\n );\r\n };","export const UsersIcon = () => {\r\n return (\r\n <svg\r\n width=\"25\"\r\n height=\"24\"\r\n viewBox=\"0 0 25 24\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M12.5 9.79688C14.3769 9.79688 15.8984 8.27535 15.8984 6.39844C15.8984 4.52153 14.3769 3 12.5 3C10.6231 3 9.10156 4.52153 9.10156 6.39844C9.10156 8.27535 10.6231 9.79688 12.5 9.79688Z\"\r\n fill=\"#00529C\"\r\n />\r\n <path\r\n d=\"M19.375 9.79688C20.5615 9.79688 21.5234 8.83499 21.5234 7.64844C21.5234 6.46189 20.5615 5.5 19.375 5.5C18.1885 5.5 17.2266 6.46189 17.2266 7.64844C17.2266 8.83499 18.1885 9.79688 19.375 9.79688Z\"\r\n fill=\"#00529C\"\r\n />\r\n <path\r\n d=\"M5.625 9.79688C6.81155 9.79688 7.77344 8.83499 7.77344 7.64844C7.77344 6.46189 6.81155 5.5 5.625 5.5C4.43845 5.5 3.47656 6.46189 3.47656 7.64844C3.47656 8.83499 4.43845 9.79688 5.625 9.79688Z\"\r\n fill=\"#00529C\"\r\n />\r\n <path\r\n d=\"M7.7418 11.7263C6.89609 11.0334 6.1302 11.1251 5.15234 11.1251C3.68984 11.1251 2.5 12.3079 2.5 13.7614V18.0274C2.5 18.6587 3.01523 19.172 3.64883 19.172C6.38422 19.172 6.05469 19.2215 6.05469 19.054C6.05469 16.0311 5.69664 13.8143 7.7418 11.7263Z\"\r\n fill=\"#00529C\"\r\n />\r\n <path\r\n d=\"M13.4307 11.1408C11.7227 10.9984 10.2381 11.1425 8.95763 12.1994C6.81478 13.9158 7.22717 16.2269 7.22717 19.0541C7.22717 19.8021 7.83576 20.4221 8.59513 20.4221C16.8405 20.4221 17.1687 20.688 17.6576 19.6053C17.818 19.2391 17.774 19.3555 17.774 15.8525C17.774 13.0703 15.3649 11.1408 13.4307 11.1408Z\"\r\n fill=\"#00529C\"\r\n />\r\n <path\r\n d=\"M19.8473 11.125C18.8641 11.125 18.1024 11.0342 17.2578 11.7262C19.2877 13.7987 18.9449 15.8643 18.9449 19.0539C18.9449 19.2224 18.6714 19.1719 21.3098 19.1719C21.966 19.1719 22.4996 18.6402 22.4996 17.9867V13.7613C22.4996 12.3078 21.3098 11.125 19.8473 11.125Z\"\r\n fill=\"#00529C\"\r\n />\r\n </svg>\r\n );\r\n};\r\n","export const IconVerification = ({ color }) => {\r\n return (\r\n <svg\r\n width=\"18\"\r\n height=\"18\"\r\n viewBox=\"0 0 18 18\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M16.5 16.5L11.5 11.5M4.83333 7.33333L6.5 9L9.83333 5.66667M1.5 7.33333C1.5 8.09938 1.65088 8.85792 1.94404 9.56565C2.23719 10.2734 2.66687 10.9164 3.20854 11.4581C3.75022 11.9998 4.39328 12.4295 5.10101 12.7226C5.80875 13.0158 6.56729 13.1667 7.33333 13.1667C8.09938 13.1667 8.85792 13.0158 9.56565 12.7226C10.2734 12.4295 10.9164 11.9998 11.4581 11.4581C11.9998 10.9164 12.4295 10.2734 12.7226 9.56565C13.0158 8.85792 13.1667 8.09938 13.1667 7.33333C13.1667 6.56729 13.0158 5.80875 12.7226 5.10101C12.4295 4.39328 11.9998 3.75022 11.4581 3.20854C10.9164 2.66687 10.2734 2.23719 9.56565 1.94404C8.85792 1.65088 8.09938 1.5 7.33333 1.5C6.56729 1.5 5.80875 1.65088 5.10101 1.94404C4.39328 2.23719 3.75022 2.66687 3.20854 3.20854C2.66687 3.75022 2.23719 4.39328 1.94404 5.10101C1.65088 5.80875 1.5 6.56729 1.5 7.33333Z\"\r\n stroke={color ? color : \"white\"}\r\n strokeWidth=\"1.5\"\r\n strokeLinecap=\"round\"\r\n strokeLinejoin=\"round\"\r\n />\r\n </svg>\r\n );\r\n};\r\n","import BoxRaw from \"@mui/material/Box\";\r\n\r\nconst Box = BoxRaw?.default ?? BoxRaw;\r\n\r\nexport const Radius = {\r\n radius_0: \"0px\",\r\n radius_1: \"4px\",\r\n radius_2: \"8px\",\r\n radius_3: \"12px\",\r\n radius_4: \"16px\",\r\n radius_x: \"999px\",\r\n};\r\n\r\nexport const RadiusToken = ({\r\n radius = \"radius_0\",\r\n children,\r\n sx = {},\r\n ...rest\r\n}) => {\r\n const borderRadius = Radius[radius] ?? Radius.radius_0;\r\n\r\n return (\r\n <Box\r\n sx={{\r\n borderRadius,\r\n backgroundColor: \"#f5f5f5\",\r\n padding: \"16px\",\r\n display: \"inline-flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n ...sx,\r\n }}\r\n {...rest}\r\n >\r\n {children}\r\n </Box>\r\n );\r\n};\r\n\r\nexport default RadiusToken;\r\n","import MuiTypographyRaw from \"@mui/material/Typography\";\r\nimport { PrimitiveColor } from \"@/components/atoms/colors/primitive\";\r\nimport { DerivedColor } from \"@/components/atoms/colors/derived\";\r\n\r\nconst MuiTypography = MuiTypographyRaw?.default ?? MuiTypographyRaw;\r\n\r\nconst BASE_LINE_HEIGHT = 1.4;\r\nconst LETTER_SPACING = \"0px\";\r\n\r\nexport const TYPOGRAPHY_COLORS = {\r\n default: {\r\n value: DerivedColor.color_text_default,\r\n token: \"color_text_default\",\r\n alias: \"color_neutral_900\",\r\n },\r\n subtle: {\r\n value: DerivedColor.color_text_subtle,\r\n token: \"color_text_subtle\",\r\n alias: \"color_neutral_700\",\r\n },\r\n disabled: {\r\n value: DerivedColor.color_text_disabled,\r\n token: \"color_text_disabled\",\r\n alias: \"color_neutral_600\",\r\n },\r\n placeholder: {\r\n value: DerivedColor.color_text_placeholder,\r\n token: \"color_text_placeholder\",\r\n alias: \"color_neutral_400\",\r\n },\r\n inverse: {\r\n value: DerivedColor.color_text_inverse,\r\n token: \"color_text_inverse\",\r\n alias: \"color_neutral_50\",\r\n },\r\n primary: {\r\n value: DerivedColor.color_text_brand_primary,\r\n token: \"color_text_brand_primary\",\r\n alias: \"color_blue_cakrawala_500\",\r\n },\r\n secondary: {\r\n value: DerivedColor.color_text_brand_secondary,\r\n token: \"color_text_brand_secondary\",\r\n alias: \"color_blue_mentari_500\",\r\n },\r\n success: {\r\n value: DerivedColor.color_text_success,\r\n token: \"color_text_success\",\r\n alias: \"color_green_500\",\r\n },\r\n danger: {\r\n value: DerivedColor.color_text_danger,\r\n token: \"color_text_danger\",\r\n alias: \"color_red_500\",\r\n },\r\n warning: {\r\n value: DerivedColor.color_text_warning,\r\n token: \"color_text_warning\",\r\n alias: \"color_yellow_600\",\r\n },\r\n};\r\n\r\nexport const VariantStyles = {\r\n /* ================= HEADING (MUI standard) ================= */\r\n h1: {\r\n fontSize: \"96px\",\r\n fontWeight: 300,\r\n },\r\n h2: {\r\n fontSize: \"60px\",\r\n fontWeight: 300,\r\n },\r\n h3: {\r\n fontSize: \"48px\",\r\n fontWeight: 400,\r\n },\r\n h4: {\r\n fontSize: \"34px\",\r\n fontWeight: 400,\r\n },\r\n h5: {\r\n fontSize: \"24px\",\r\n fontWeight: 400,\r\n },\r\n h6: {\r\n fontSize: \"20px\",\r\n fontWeight: 500,\r\n },\r\n\r\n /* ================= HEADER 1 ================= */\r\n header1_regular: {\r\n fontSize: \"18px\",\r\n fontWeight: 400,\r\n },\r\n header1_semibold: {\r\n fontSize: \"18px\",\r\n fontWeight: 600,\r\n },\r\n header1_bold: {\r\n fontSize: \"18px\",\r\n fontWeight: 700,\r\n },\r\n\r\n /* ================= HEADER 2 ================= */\r\n header2_regular: {\r\n fontSize: \"20px\",\r\n fontWeight: 400,\r\n },\r\n header2_semibold: {\r\n fontSize: \"20px\",\r\n fontWeight: 600,\r\n },\r\n header2_bold: {\r\n fontSize: \"20px\",\r\n fontWeight: 700,\r\n },\r\n\r\n /* ================= BODY ================= */\r\n body1_regular: {\r\n fontSize: \"14px\",\r\n fontWeight: 400,\r\n },\r\n body1_semibold: {\r\n fontSize: \"14px\",\r\n fontWeight: 600,\r\n },\r\n body2_regular: {\r\n fontSize: \"16px\",\r\n fontWeight: 400,\r\n },\r\n body2_semibold: {\r\n fontSize: \"16px\",\r\n fontWeight: 600,\r\n },\r\n\r\n /* ================= CAPTION ================= */\r\n caption_regular: {\r\n fontSize: \"12px\",\r\n fontWeight: 400,\r\n },\r\n};\r\n\r\n\r\nexport const BaseTypography = ({\r\n variant = \"body1_regular.default\",\r\n children,\r\n sx,\r\n ...props\r\n}) => {\r\n let actualVariant = variant;\r\n let actualColor = \"default\";\r\n\r\n if (typeof variant === \"string\" && variant.includes(\".\")) {\r\n const [v, c] = variant.split(\".\");\r\n actualVariant = v;\r\n actualColor = c;\r\n }\r\n\r\n const variantStyle = VariantStyles[actualVariant];\r\n const colorStyle = TYPOGRAPHY_COLORS[actualColor];\r\n\r\n if (!variantStyle) {\r\n console.warn(`Unknown typography variant: ${actualVariant}`);\r\n return null;\r\n }\r\n if (!colorStyle) {\r\n console.warn(`Unknown typography color: ${actualColor}`);\r\n return null;\r\n }\r\n\r\n return (\r\n <MuiTypography\r\n {...props}\r\n sx={{\r\n fontFamily: \"inherit\",\r\n lineHeight: BASE_LINE_HEIGHT,\r\n letterSpacing: LETTER_SPACING,\r\n color: colorStyle.value,\r\n ...variantStyle,\r\n ...sx,\r\n }}\r\n >\r\n {children}\r\n </MuiTypography>\r\n );\r\n};\r\n\r\n","import { createElement, isValidElement, useMemo } from \"react\";\r\nimport AlertRaw from \"@mui/material/Alert\";\r\nimport AlertTitleRaw from \"@mui/material/AlertTitle\";\r\nimport BoxRaw from \"@mui/material/Box\";\r\nimport { DerivedColor } from \"@/components/atoms/colors/derived\";\r\nimport { PrimitiveColor } from \"@/components/atoms/colors/primitive\";\r\nimport { Radius } from \"@/components/atoms/radius/radius\";\r\nimport { VariantStyles } from \"@/components/atoms/typography/typography\";\r\nimport { SpacingToken } from \"@/components/atoms/spacing_layout/spacing\";\r\n\r\nimport { IconAlertCircle, IconCircleCheck, IconInfoCircle, IconAlertTriangle } from \"@tabler/icons-react\";\r\n\r\nconst Alert = AlertRaw?.default ?? AlertRaw;\r\nconst AlertTitle = AlertTitleRaw?.default ?? AlertTitleRaw;\r\nconst Box = BoxRaw?.default ?? BoxRaw;\r\n\r\nconst ALERT_CONFIG = {\r\n default: {\r\n bg: PrimitiveColor.color_neutral_200,\r\n iconColor: DerivedColor.color_icon_strong,\r\n defaultIcon: IconAlertCircle,\r\n },\r\n error: {\r\n bg: PrimitiveColor.color_red_100,\r\n iconColor: DerivedColor.color_icon_danger,\r\n defaultIcon: IconAlertCircle,\r\n },\r\n info: {\r\n bg: DerivedColor.color_bg_brand_primary_subtle,\r\n iconColor: DerivedColor.color_icon_brand_primary,\r\n defaultIcon: IconInfoCircle,\r\n },\r\n success: {\r\n bg: PrimitiveColor.color_green_100,\r\n iconColor: DerivedColor.color_icon_success,\r\n defaultIcon: IconCircleCheck,\r\n },\r\n warning: {\r\n bg: PrimitiveColor.color_yellow_100,\r\n iconColor: DerivedColor.color_icon_warning,\r\n defaultIcon: IconAlertTriangle,\r\n },\r\n};\r\n\r\nexport const BaseAlert = ({\r\n variant = \"default\",\r\n type = \"standard\",\r\n title,\r\n children,\r\n icon,\r\n color,\r\n sx = {},\r\n onClose,\r\n childrenSx = {},\r\n ...props\r\n}) => {\r\n const config = ALERT_CONFIG[variant] ?? ALERT_CONFIG.default;\r\n const hasChildrenSx = Object.keys(childrenSx).length > 0;\r\n\r\n const renderIcon = useMemo(() => {\r\n if (!icon) return false; // no icon prop = hide icon entirely\r\n if (isValidElement(icon)) return icon;\r\n if (typeof icon === \"function\")\r\n return createElement(icon, {\r\n size: 20,\r\n color: config.iconColor,\r\n });\r\n return false;\r\n }, [icon, config]);\r\n\r\n return (\r\n <Alert\r\n severity={variant === \"default\" ? undefined : variant}\r\n variant={type}\r\n icon={renderIcon}\r\n onClose={onClose}\r\n sx={{\r\n backgroundColor: color ?? config.bg,\r\n borderRadius: Radius.radius_2,\r\n \".MuiAlert-message\": { width: \"100%\" },\r\n ...sx,\r\n }}\r\n {...props}\r\n >\r\n {title && (\r\n <AlertTitle\r\n sx={{\r\n ...VariantStyles.body2_regular,\r\n marginBottom: SpacingToken.spacing2,\r\n fontWeight: 600,\r\n }}\r\n >\r\n {title}\r\n </AlertTitle>\r\n )}\r\n {hasChildrenSx ? (\r\n <Box component=\"span\" sx={childrenSx}>\r\n {children}\r\n </Box>\r\n ) : (\r\n children\r\n )}\r\n </Alert>\r\n );\r\n};\r\n","import BoxRaw from \"@mui/material/Box\";\r\n\r\nconst Box = BoxRaw?.default ?? BoxRaw;\r\n\r\nexport const Shadow = {\r\n elevation_0: {\r\n shadow: \"none\",\r\n surface: \"#FFFFFF\",\r\n },\r\n elevation_1: {\r\n shadow: \"0px 1px 2px rgba(0, 0, 0, 0.06)\",\r\n surface: \"#FFFFFF\",\r\n },\r\n elevation_2: {\r\n shadow: \"0px 2px 6px rgba(0, 0, 0, 0.08)\",\r\n surface: \"#FFFFFF\",\r\n },\r\n elevation_3: {\r\n shadow: \"0px 2px 6px rgba(0, 0, 0, 0.08)\",\r\n surface: \"#FFFFFF\",\r\n },\r\n elevation_4: {\r\n shadow: \"0px 6px 20px rgba(0, 0, 0, 0.16)\",\r\n surface: \"#FFFFFF\",\r\n },\r\n};\r\n\r\nexport const ShadowToken = ({\r\n level = \"elevation_0\",\r\n children,\r\n sx = {},\r\n ...rest\r\n}) => {\r\n const token = Shadow[level] || Shadow.elevation_0;\r\n\r\n return (\r\n <Box\r\n sx={{\r\n backgroundColor: token.surface,\r\n boxShadow: token.shadow,\r\n ...sx,\r\n }}\r\n {...rest}\r\n >\r\n {children}\r\n </Box>\r\n );\r\n};\r\n\r\nexport default ShadowToken;\r\n","import ButtonBaseRaw from \"@mui/material/ButtonBase\";\r\nimport BoxRaw from \"@mui/material/Box\";\r\nimport { DerivedColor } from \"@/components/atoms/colors/derived\";\r\nimport { PrimitiveColor } from \"@/components/atoms/colors/primitive\";\r\nimport { Radius } from \"@/components/atoms/radius/radius\";\r\nimport { VariantStyles } from \"@/components/atoms/typography/typography\";\r\nimport { SpacingToken } from \"@/components/atoms/spacing_layout/spacing\";\r\n\r\nconst ButtonBase = ButtonBaseRaw?.default ?? ButtonBaseRaw;\r\nconst Box = BoxRaw?.default ?? BoxRaw;\r\n\r\nconst WHITE = DerivedColor.color_text_inverse;\r\n\r\nconst SIZE_TYPOGRAPHY = {\r\n large: \"body2_regular\",\r\n small: \"body1_regular\",\r\n};\r\n\r\nconst DISABLED_BG = DerivedColor.color_bg_disabled;\r\nconst DISABLED_TEXT = DerivedColor.color_text_disabled;\r\n\r\n// ============================================================\r\n// COLOR MAPPING (color prop → DerivedColor tokens)\r\n// ============================================================\r\n\r\nconst FILL_COLORS = {\r\n primary: {\r\n bg: DerivedColor.color_bg_brand_primary,\r\n hover: DerivedColor.color_bg_brand_primary_strong,\r\n },\r\n secondary: {\r\n bg: DerivedColor.color_bg_brand_secondary,\r\n hover: DerivedColor.color_bg_brand_secondary_strong,\r\n },\r\n success: {\r\n bg: DerivedColor.color_bg_success,\r\n hover: DerivedColor.color_bg_success_strong,\r\n },\r\n warning: {\r\n bg: DerivedColor.color_bg_warning,\r\n hover: DerivedColor.color_bg_warning_strong,\r\n },\r\n danger: {\r\n bg: DerivedColor.color_bg_danger,\r\n hover: DerivedColor.color_bg_danger_strong,\r\n },\r\n};\r\n\r\nconst OUTLINE_COLORS = {\r\n primary: {\r\n border: DerivedColor.color_border_brand_primary,\r\n text: DerivedColor.color_text_brand_primary,\r\n hoverBg: DerivedColor.color_bg_brand_primary_subtle,\r\n },\r\n secondary: {\r\n border: DerivedColor.color_border_brand_secondary,\r\n text: DerivedColor.color_text_brand_secondary,\r\n hoverBg: DerivedColor.color_bg_brand_secondary_subtle,\r\n },\r\n success: {\r\n border: DerivedColor.color_border_success,\r\n text: DerivedColor.color_text_success,\r\n hoverBg: DerivedColor.color_bg_success_subtle,\r\n },\r\n warning: {\r\n border: DerivedColor.color_border_warning,\r\n text: DerivedColor.color_text_warning,\r\n hoverBg: DerivedColor.color_bg_warning_subtle,\r\n },\r\n danger: {\r\n border: DerivedColor.color_border_danger,\r\n text: DerivedColor.color_text_danger,\r\n hoverBg: DerivedColor.color_bg_danger_subtle,\r\n },\r\n};\r\n\r\n// ============================================================\r\n// CUSTOM COLOR HOVER UTILITY\r\n// Naik 1 tingkat dari PrimitiveColor scale (500 → 600, 300 → 400, dll)\r\n// ============================================================\r\n\r\nconst SCALE_ORDER = [100, 200, 300, 400, 500, 600, 700, 800, 900];\r\n\r\nfunction getHoverColor(primitiveKey) {\r\n if (!primitiveKey || !PrimitiveColor[primitiveKey]) return null;\r\n\r\n // Parse: \"color_blue_cakrawala_500\" → prefix=\"color_blue_cakrawala\", level=500\r\n const parts = primitiveKey.split(\"_\");\r\n const level = parseInt(parts[parts.length - 1], 10);\r\n\r\n if (isNaN(level)) return null;\r\n\r\n const prefix = parts.slice(0, -1).join(\"_\");\r\n const currentIndex = SCALE_ORDER.indexOf(level);\r\n\r\n if (currentIndex === -1) return null;\r\n\r\n // Naik 1 tingkat (index + 1 = darker)\r\n const nextLevel = SCALE_ORDER[Math.min(currentIndex + 1, SCALE_ORDER.length - 1)];\r\n const hoverKey = `${prefix}_${nextLevel}`;\r\n\r\n return PrimitiveColor[hoverKey] || PrimitiveColor[primitiveKey];\r\n}\r\n\r\n// ============================================================\r\n// COMPONENT\r\n// ============================================================\r\n\r\nexport const BaseButton = ({\r\n onClick = () => {},\r\n children = null,\r\n variant = \"fill\",\r\n color = \"primary\",\r\n customColor = null,\r\n size = \"large\",\r\n disabled = false,\r\n startIcon = null,\r\n endIcon = null,\r\n width = \"100%\",\r\n sx = {},\r\n ...rest\r\n}) => {\r\n const isFill = variant.includes(\"fill\") || variant === \"fab\";\r\n const isOutline = variant.includes(\"outline\");\r\n const isText = variant === \"text\";\r\n\r\n // Jika customColor dipakai, color prop diabaikan\r\n const useCustom = !!customColor;\r\n const customColorValue = useCustom ? PrimitiveColor[customColor] : null;\r\n const customHoverValue = useCustom ? getHoverColor(customColor) : null;\r\n\r\n // Resolve warna berdasarkan variant + color/customColor\r\n const getBackgroundColor = () => {\r\n if (disabled) return isFill ? DISABLED_BG : \"transparent\";\r\n if (useCustom) return isFill ? customColorValue : \"transparent\";\r\n if (isFill) return FILL_COLORS[color]?.bg || FILL_COLORS.primary.bg;\r\n return \"transparent\";\r\n };\r\n\r\n const getTextColor = () => {\r\n if (disabled) return DISABLED_TEXT;\r\n if (isFill) return WHITE;\r\n if (useCustom) return customColorValue;\r\n if (isOutline) return OUTLINE_COLORS[color]?.text || OUTLINE_COLORS.primary.text;\r\n if (isText) return OUTLINE_COLORS[color]?.text || OUTLINE_COLORS.primary.text;\r\n return DerivedColor.color_text_default;\r\n };\r\n\r\n const getBorderColor = () => {\r\n if (!isOutline) return \"none\";\r\n if (disabled) return `1.5px solid ${DISABLED_BG}`;\r\n if (useCustom) return `1.5px solid ${customColorValue}`;\r\n return `1.5px solid ${OUTLINE_COLORS[color]?.border || OUTLINE_COLORS.primary.border}`;\r\n };\r\n\r\n const getHoverBg = () => {\r\n if (disabled) return undefined;\r\n if (useCustom) {\r\n return isFill ? customHoverValue : customColorValue + \"1A\"; // 10% opacity for outline\r\n }\r\n if (isFill) return FILL_COLORS[color]?.hover || FILL_COLORS.primary.hover;\r\n if (isOutline) return OUTLINE_COLORS[color]?.hoverBg || OUTLINE_COLORS.primary.hoverBg;\r\n return undefined;\r\n };\r\n\r\n const getRadius = () => {\r\n switch (variant) {\r\n case \"text\":\r\n return Radius.radius_0;\r\n case \"fill\":\r\n case \"outline\":\r\n return Radius.radius_2;\r\n case \"fab\":\r\n case \"ellipse-fill\":\r\n case \"ellipse-outline\":\r\n return Radius.radius_x;\r\n default:\r\n return Radius.radius_2;\r\n }\r\n };\r\n\r\n const typographyStyle = VariantStyles[SIZE_TYPOGRAPHY[size]];\r\n\r\n return (\r\n <ButtonBase\r\n disabled={disabled}\r\n onClick={onClick}\r\n sx={{\r\n width,\r\n height: \"40px\",\r\n padding: `${SpacingToken.spacing0} ${SpacingToken.spacing4}`,\r\n borderRadius: getRadius(),\r\n display: \"inline-flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n ...typographyStyle,\r\n\r\n backgroundColor: getBackgroundColor(),\r\n color: getTextColor(),\r\n border: getBorderColor(),\r\n\r\n cursor: disabled ? \"not-allowed\" : \"pointer\",\r\n opacity: 1,\r\n userSelect: \"none\",\r\n transition: \"all 0.15s ease-in-out\",\r\n\r\n \"&:hover\": {\r\n boxShadow: !disabled ? \"0 2px 4px rgba(0,0,0,0.1)\" : \"none\",\r\n backgroundColor: getHoverBg(),\r\n },\r\n\r\n \"&:active\": {\r\n transform: !disabled ? \"scale(0.97)\" : \"none\",\r\n },\r\n\r\n ...sx,\r\n }}\r\n {...rest}\r\n >\r\n {startIcon && (\r\n <Box\r\n component=\"span\"\r\n sx={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n lineHeight: 0,\r\n mr: children ? \"4px\" : 0,\r\n }}\r\n >\r\n {startIcon}\r\n </Box>\r\n )}\r\n\r\n {children}\r\n\r\n {endIcon && (\r\n <Box\r\n component=\"span\"\r\n sx={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n lineHeight: 0,\r\n ml: children ? \"4px\" : 0,\r\n }}\r\n >\r\n {endIcon}\r\n </Box>\r\n )}\r\n </ButtonBase>\r\n );\r\n};\r\n","import SkeletonRaw from \"@mui/material/Skeleton\";\r\nimport BoxRaw from \"@mui/material/Box\";\r\nimport { Radius } from \"@/components/atoms/radius/radius\";\r\nimport { SpacingToken } from \"@/components/atoms/spacing_layout/spacing\";\r\n\r\nconst Skeleton = SkeletonRaw?.default ?? SkeletonRaw;\r\nconst Box = BoxRaw?.default ?? BoxRaw;\r\n\r\n// ============================================================\r\n// COMPONENT\r\n// ============================================================\r\n\r\nexport const BaseSkeleton = ({\r\n variant = \"rectangular\",\r\n animation = \"pulse\",\r\n width,\r\n height,\r\n count = 1,\r\n gap = SpacingToken.spacing2,\r\n sx = {},\r\n ...rest\r\n}) => {\r\n const getRadius = () => {\r\n switch (variant) {\r\n case \"circular\":\r\n return \"50%\";\r\n case \"rounded\":\r\n return Radius.radius_2;\r\n case \"text\":\r\n case \"rectangular\":\r\n default:\r\n return Radius.radius_0;\r\n }\r\n };\r\n\r\n const getDefaultHeight = () => {\r\n switch (variant) {\r\n case \"text\":\r\n return \"1.2em\";\r\n case \"circular\":\r\n return width || 40;\r\n case \"rectangular\":\r\n case \"rounded\":\r\n return height || 60;\r\n default:\r\n return height;\r\n }\r\n };\r\n\r\n const getDefaultWidth = () => {\r\n switch (variant) {\r\n case \"circular\":\r\n return height || 40;\r\n case \"text\":\r\n return \"100%\";\r\n case \"rectangular\":\r\n case \"rounded\":\r\n return width || \"100%\";\r\n default:\r\n return width;\r\n }\r\n };\r\n\r\n const skeletonProps = {\r\n variant: variant === \"rounded\" ? \"rectangular\" : variant,\r\n animation: animation === \"none\" ? false : animation,\r\n width: getDefaultWidth(),\r\n height: getDefaultHeight(),\r\n sx: {\r\n borderRadius: getRadius(),\r\n ...sx,\r\n },\r\n ...rest,\r\n };\r\n\r\n if (count <= 1) {\r\n return <Skeleton {...skeletonProps} />;\r\n }\r\n\r\n return (\r\n <Box sx={{ display: \"flex\", flexDirection: \"column\", gap }}>\r\n {Array.from({ length: count }).map((_, index) => (\r\n <Skeleton key={index} {...skeletonProps} />\r\n ))}\r\n </Box>\r\n );\r\n};\r\n","'use client';\r\nimport SwitchRaw from \"@mui/material/Switch\";\r\nimport { styled } from \"@mui/material/styles\";\r\nimport { useEffect, useState } from \"react\";\r\n\r\nimport { DerivedColor } from \"@/components/atoms/colors/derived\";\r\nimport { Radius } from \"@/components/atoms/radius/radius\";\r\nimport { SpacingToken } from \"@/components/atoms/spacing_layout/spacing\";\r\nimport { VariantStyles } from \"@/components/atoms/typography/typography\";\r\n\r\nconst Switch = SwitchRaw?.default ?? SwitchRaw;\r\n\r\nconst AntSwitch = styled(Switch)(({ theme }) => ({\r\n width: \"34px\",\r\n height: \"18px\",\r\n padding: 0,\r\n display: \"flex\",\r\n\r\n \"&:active\": {\r\n \"& .MuiSwitch-thumb\": { width: 15 },\r\n \"& .MuiSwitch-switchBase.Mui-checked\": {\r\n transform: \"translateX(9px)\",\r\n },\r\n },\r\n\r\n \"& .MuiSwitch-switchBase\": {\r\n padding: SpacingToken.spacing1,\r\n\r\n \"&.Mui-checked\": {\r\n transform: \"translateX(16px)\",\r\n color: DerivedColor.color_bg_surface,\r\n\r\n \"& + .MuiSwitch-track\": {\r\n opacity: 1,\r\n backgroundColor: DerivedColor.color_bg_brand_primary,\r\n },\r\n },\r\n },\r\n\r\n \"& .MuiSwitch-thumb\": {\r\n boxShadow: \"0 2px 4px 0 rgb(0 35 11 / 20%)\",\r\n width: \"10px\",\r\n height: \"10px\",\r\n borderRadius: Radius.radius_x,\r\n transition: theme.transitions.create([\"width\"], { duration: 200 }),\r\n backgroundColor: DerivedColor.color_bg_surface,\r\n },\r\n\r\n \"& .MuiSwitch-track\": {\r\n borderRadius: Radius.radius_x,\r\n opacity: 1,\r\n backgroundColor:\r\n theme.palette.mode === \"dark\"\r\n ? DerivedColor.color_text_disabled\r\n : DerivedColor.color_text_placeholder,\r\n boxSizing: \"border-box\",\r\n },\r\n}));\r\n\r\nexport const BaseSwitch = ({\r\n status = false,\r\n label,\r\n labelPlacement = \"end\", // start | end | top | bottom\r\n isDisabled = false,\r\n onChange,\r\n}) => {\r\n const [checked, setChecked] = useState(status);\r\n\r\n useEffect(() => {\r\n setChecked(status);\r\n }, [status]);\r\n\r\n const handleChange = (event) => {\r\n setChecked(event.target.checked);\r\n onChange?.(event);\r\n };\r\n\r\n const layoutMap = {\r\n start: {\r\n gridAutoFlow: \"column dense\",\r\n direction: \"rtl\",\r\n },\r\n end: {\r\n gridAutoFlow: \"column\",\r\n direction: \"ltr\",\r\n },\r\n top: {\r\n gridAutoFlow: \"row\",\r\n direction: \"ltr\",\r\n },\r\n bottom: {\r\n gridAutoFlow: \"row dense\",\r\n direction: \"rtl\",\r\n },\r\n };\r\n\r\n const layout = layoutMap[labelPlacement] || layoutMap.end;\r\n\r\n return (\r\n <div\r\n style={{\r\n display: \"grid\",\r\n gap: SpacingToken.spacing2,\r\n alignItems: \"center\",\r\n justifyItems: \"start\",\r\n gridAutoFlow: layout.gridAutoFlow,\r\n direction: layout.direction,\r\n }}\r\n >\r\n <AntSwitch\r\n checked={checked}\r\n onChange={handleChange}\r\n disabled={isDisabled}\r\n inputProps={{ \"aria-label\": \"controlled\" }}\r\n />\r\n\r\n {label ? (\r\n <p\r\n style={{\r\n ...VariantStyles.body1_regular,\r\n color: isDisabled\r\n ? DerivedColor.color_text_placeholder\r\n : DerivedColor.color_text_default,\r\n margin: 0,\r\n }}\r\n >\r\n {label}\r\n </p>\r\n ) : null}\r\n </div>\r\n );\r\n};\r\n","import ChipRaw from \"@mui/material/Chip\";\r\nimport BoxRaw from \"@mui/material/Box\";\r\nimport { IconCircleCheck, IconCircleX } from \"@tabler/icons-react\";\r\nimport { DerivedColor } from \"@/components/atoms/colors/derived\";\r\nimport { PrimitiveColor } from \"@/components/atoms/colors/primitive\";\r\nimport { Radius } from \"@/components/atoms/radius/radius\";\r\n\r\nconst Chip = ChipRaw?.default ?? ChipRaw;\r\nconst Box = BoxRaw?.default ?? BoxRaw;\r\n\r\nconst TYPE_STYLES = {\r\n success: {\r\n color: PrimitiveColor.color_green_500,\r\n backgroundColor: PrimitiveColor.color_green_100,\r\n icon: <IconCircleCheck size={18} color={PrimitiveColor.color_green_500} />,\r\n },\r\n danger: {\r\n color: PrimitiveColor.color_red_500,\r\n backgroundColor: PrimitiveColor.color_red_100,\r\n icon: <IconCircleX size={18} color={PrimitiveColor.color_red_500} />,\r\n },\r\n warning: {\r\n color: PrimitiveColor.color_yellow_600,\r\n backgroundColor: PrimitiveColor.color_yellow_100,\r\n icon: null,\r\n },\r\n info: {\r\n color: PrimitiveColor.color_blue_cakrawala_500,\r\n backgroundColor: PrimitiveColor.color_blue_cakrawala_100,\r\n icon: null,\r\n },\r\n default: {\r\n color: DerivedColor.color_text_default,\r\n backgroundColor: PrimitiveColor.color_neutral_200,\r\n icon: null,\r\n },\r\n};\r\n\r\nexport const BaseChip = ({\r\n label = \"\",\r\n type = \"default\",\r\n variant = \"filled\",\r\n startIcon = null,\r\n onDelete,\r\n onClick,\r\n disabled = false,\r\n fullWidth = false,\r\n showIcon = true,\r\n sx = {},\r\n ...rest\r\n}) => {\r\n const typeStyle = TYPE_STYLES[type] || TYPE_STYLES.default;\r\n\r\n const resolvedIcon = showIcon ? (startIcon || typeStyle.icon) : null;\r\n\r\n return (\r\n <Chip\r\n label={label}\r\n variant={variant === \"outlined\" ? \"outlined\" : \"filled\"}\r\n icon={resolvedIcon || undefined}\r\n onDelete={onDelete}\r\n onClick={onClick}\r\n disabled={disabled}\r\n sx={{\r\n fontWeight: 600,\r\n fontSize: 14,\r\n borderRadius: Radius.radius_2,\r\n color: variant === \"outlined\" ? typeStyle.color : typeStyle.color,\r\n backgroundColor: variant === \"outlined\" ? \"transparent\" : typeStyle.backgroundColor,\r\n borderColor: variant === \"outlined\" ? typeStyle.color : \"transparent\",\r\n width: fullWidth ? \"100%\" : \"auto\",\r\n px: \"8px\",\r\n \".MuiChip-label\": {\r\n px: \"8px\",\r\n },\r\n \".MuiChip-icon\": {\r\n margin: 0,\r\n },\r\n cursor: onClick ? \"pointer\" : \"default\",\r\n ...sx,\r\n }}\r\n {...rest}\r\n />\r\n );\r\n};\r\n","\"use client\";\r\n\r\nimport { useState, useEffect } from \"react\";\r\nimport { DerivedColor } from \"@/components/atoms/colors/derived\";\r\nimport { VariantStyles } from \"@/components/atoms/typography\";\r\nimport { SpacingToken } from \"@/components/atoms/spacing_layout/spacing\";\r\nimport { Radius } from \"@/components/atoms/radius/radius\";\r\n\r\n// ============================================================\r\n// CONSTANTS (from design tokens)\r\n// ============================================================\r\n\r\nconst WATERMARK_DEFAULTS = {\r\n /** Typography variant for watermark text */\r\n textVariant: \"body1_regular\",\r\n /** Text color from DerivedColor */\r\n textColor: DerivedColor.color_text_default,\r\n /** Font family — BRIDigitalText brand font */\r\n fontFamily: \"BRIDigitalText, sans-serif\",\r\n /** Opacity — subtle enough to not distract */\r\n opacity: 0.35,\r\n /** Spacing between watermark repetitions (from SpacingToken) */\r\n gutter: parseInt(SpacingToken.spacing5, 10) || 20,\r\n /** Rotation angle */\r\n rotate: -30,\r\n /** Z-index for overlay */\r\n zIndex: 10,\r\n /** Max characters before truncation */\r\n maxChars: 40,\r\n /** Offset ratio for staggered pattern (0.33 = 1/3 shift per row) */\r\n staggerOffset: 0.33,\r\n /** Border radius from design token */\r\n borderRadius: Radius.radius_2,\r\n};\r\n\r\n// ============================================================\r\n// HELPERS\r\n// ============================================================\r\n\r\n/**\r\n * Get fontSize and fontWeight from VariantStyles.\r\n */\r\nfunction getTypographyStyle(variant) {\r\n const style = VariantStyles[variant] || VariantStyles[WATERMARK_DEFAULTS.textVariant];\r\n return {\r\n fontSize: parseInt(style.fontSize, 10) || 14,\r\n fontWeight: style.fontWeight || 400,\r\n };\r\n}\r\n\r\n/**\r\n * Truncate text to maxChars with ellipsis.\r\n */\r\nfunction truncateText(text, maxChars) {\r\n if (!text) return \"\";\r\n return text.length > maxChars ? text.slice(0, maxChars) + \"...\" : text;\r\n}\r\n\r\n/**\r\n * Calculate rotated bounding box dimensions.\r\n */\r\nfunction getRotatedBounds(width, height, angleDeg) {\r\n const radians = Math.abs(angleDeg * Math.PI / 180);\r\n return {\r\n width: width * Math.cos(radians) + height * Math.sin(radians),\r\n height: width * Math.sin(radians) + height * Math.cos(radians),\r\n };\r\n}\r\n\r\n/**\r\n * Generate watermark canvas as base64 data URL.\r\n * Draws 2 rows (staggered) so the repeat pattern doesn't align in columns.\r\n */\r\nfunction generateWatermarkImage({ displayText, fontSize, fontWeight, fontFamily, textColor, opacity, rotate, gutter, staggerOffset }) {\r\n const canvas = document.createElement(\"canvas\");\r\n const ctx = canvas.getContext(\"2d\");\r\n if (!ctx) return null;\r\n\r\n // Measure\r\n const font = `${fontWeight} ${fontSize}px ${fontFamily}`;\r\n ctx.font = font;\r\n const textWidth = ctx.measureText(displayText).width;\r\n const textHeight = fontSize * 1.2;\r\n\r\n // Rotated cell size\r\n const bounds = getRotatedBounds(textWidth, textHeight, rotate);\r\n const cellWidth = Math.ceil(bounds.width + gutter * 2);\r\n const cellHeight = Math.ceil(bounds.height + gutter * 2);\r\n\r\n // Canvas = 2 rows for staggered pattern\r\n canvas.width = cellWidth;\r\n canvas.height = cellHeight * 2;\r\n\r\n // Draw row 1 — centered in cell\r\n drawText(ctx, { displayText, font, textColor, opacity, rotate, x: cellWidth / 2, y: cellHeight / 2 });\r\n\r\n // Draw row 2 — offset horizontally\r\n const offsetX = (cellWidth / 2 + cellWidth * staggerOffset) % cellWidth;\r\n drawText(ctx, { displayText, font, textColor, opacity, rotate, x: offsetX, y: cellHeight + cellHeight / 2 });\r\n\r\n return canvas.toDataURL(\"image/png\");\r\n}\r\n\r\n/**\r\n * Draw rotated text on canvas context.\r\n */\r\nfunction drawText(ctx, { displayText, font, textColor, opacity, rotate, x, y }) {\r\n ctx.save();\r\n ctx.translate(x, y);\r\n ctx.rotate((rotate * Math.PI) / 180);\r\n ctx.font = font;\r\n ctx.fillStyle = textColor;\r\n ctx.globalAlpha = opacity;\r\n ctx.textAlign = \"center\";\r\n ctx.textBaseline = \"middle\";\r\n ctx.fillText(displayText, 0, 0);\r\n ctx.restore();\r\n}\r\n\r\n// ============================================================\r\n// COMPONENT\r\n// ============================================================\r\n\r\n/**\r\n * BaseWatermark\r\n *\r\n * Watermark overlay component. Semua styling dari design tokens spotlibs.\r\n * Render watermark text sebagai repeating staggered background pattern via canvas.\r\n *\r\n * @example\r\n * import { BaseWatermark } from 'spotlibs-components';\r\n *\r\n * <BaseWatermark text=\"12345678 / Brispot Web\">\r\n * <div>Konten yang butuh watermark</div>\r\n * </BaseWatermark>\r\n *\r\n * @example\r\n * import { BaseWatermark, DerivedColor } from 'spotlibs-components';\r\n *\r\n * <BaseWatermark\r\n * text=\"CONFIDENTIAL\"\r\n * textVariant=\"header1_bold\"\r\n * textColor={DerivedColor.color_text_danger}\r\n * >\r\n * <div>Dokumen rahasia</div>\r\n * </BaseWatermark>\r\n */\r\nexport const BaseWatermark = ({\r\n text = \"\",\r\n show = true,\r\n textColor = WATERMARK_DEFAULTS.textColor,\r\n textVariant = WATERMARK_DEFAULTS.textVariant,\r\n fontFamily = WATERMARK_DEFAULTS.fontFamily,\r\n opacity = WATERMARK_DEFAULTS.opacity,\r\n gutter = WATERMARK_DEFAULTS.gutter,\r\n rotate = WATERMARK_DEFAULTS.rotate,\r\n zIndex = WATERMARK_DEFAULTS.zIndex,\r\n maxChars = WATERMARK_DEFAULTS.maxChars,\r\n wrapperStyle,\r\n wrapperElement: WrapperElement = \"div\",\r\n children,\r\n}) => {\r\n const [bgUrl, setBgUrl] = useState(null);\r\n\r\n useEffect(() => {\r\n if (typeof window === \"undefined\" || !text || !show) {\r\n setBgUrl(null);\r\n return;\r\n }\r\n\r\n const { fontSize, fontWeight } = getTypographyStyle(textVariant);\r\n const displayText = truncateText(text, maxChars);\r\n\r\n const url = generateWatermarkImage({\r\n displayText,\r\n fontSize,\r\n fontWeight,\r\n fontFamily,\r\n textColor,\r\n opacity,\r\n rotate,\r\n gutter,\r\n staggerOffset: WATERMARK_DEFAULTS.staggerOffset,\r\n });\r\n\r\n setBgUrl(url);\r\n }, [text, show, textColor, textVariant, fontFamily, opacity, gutter, rotate, maxChars]);\r\n\r\n return (\r\n <WrapperElement\r\n style={{\r\n position: \"relative\",\r\n overflow: \"hidden\",\r\n ...wrapperStyle,\r\n }}\r\n >\r\n {children}\r\n {show && bgUrl && (\r\n <div\r\n aria-hidden=\"true\"\r\n style={{\r\n position: \"absolute\",\r\n inset: 0,\r\n backgroundImage: `url(${bgUrl})`,\r\n backgroundRepeat: \"repeat\",\r\n pointerEvents: \"none\",\r\n zIndex,\r\n }}\r\n />\r\n )}\r\n </WrapperElement>\r\n );\r\n};\r\n","import { useState } from \"react\";\r\nimport MuiCardRaw from \"@mui/material/Card\";\r\nimport BoxRaw from \"@mui/material/Box\";\r\nimport CollapseRaw from \"@mui/material/Collapse\";\r\nimport IconButtonRaw from \"@mui/material/IconButton\";\r\nimport KeyboardArrowDownIconRaw from \"@mui/icons-material/KeyboardArrowDown\";\r\nimport KeyboardArrowUpIconRaw from \"@mui/icons-material/KeyboardArrowUp\";\r\nimport { BaseWatermark as Watermark } from \"@/components/atoms/watermark/watermark\";\r\nimport { DerivedColor } from \"@/components/atoms/colors/derived\";\r\nimport { Radius } from \"@/components/atoms/radius/radius\";\r\nimport { SpacingToken } from \"@/components/atoms/spacing_layout/spacing\";\r\nimport { BaseTypography } from \"@/components/atoms/typography\";\r\n\r\nconst MuiCard = MuiCardRaw?.default ?? MuiCardRaw;\r\nconst Box = BoxRaw?.default ?? BoxRaw;\r\nconst Collapse = CollapseRaw?.default ?? CollapseRaw;\r\nconst IconButton = IconButtonRaw?.default ?? IconButtonRaw;\r\nconst KeyboardArrowDownIcon =\r\n KeyboardArrowDownIconRaw?.default ?? KeyboardArrowDownIconRaw;\r\nconst KeyboardArrowUpIcon =\r\n KeyboardArrowUpIconRaw?.default ?? KeyboardArrowUpIconRaw;\r\n\r\n// ============================================================\r\n// COLOR MAPPING\r\n// ============================================================\r\n\r\n\r\nconst HEADER_COLORS = {\r\n primary: DerivedColor.color_bg_brand_primary,\r\n secondary: DerivedColor.color_bg_brand_secondary,\r\n success: DerivedColor.color_bg_success,\r\n warning: DerivedColor.color_bg_warning,\r\n danger: DerivedColor.color_bg_danger,\r\n clean: DerivedColor.color_bg_surface,\r\n};\r\n\r\nconst HEADER_TEXT_COLORS = {\r\n primary: DerivedColor.color_bg_surface,\r\n secondary: DerivedColor.color_bg_surface,\r\n success: DerivedColor.color_bg_surface,\r\n warning: DerivedColor.color_bg_surface,\r\n danger: DerivedColor.color_bg_surface,\r\n clean: DerivedColor.color_text_brand_primary,\r\n};\r\n\r\nconst HEADER_ICON_COLORS = {\r\n primary: DerivedColor.color_bg_surface,\r\n secondary: DerivedColor.color_bg_surface,\r\n success: DerivedColor.color_bg_surface,\r\n warning: DerivedColor.color_bg_surface,\r\n danger: DerivedColor.color_bg_surface,\r\n clean: DerivedColor.color_text_subtle,\r\n};\r\n\r\n// ============================================================\r\n// COMPONENT\r\n// ============================================================\r\n\r\nexport const BaseCard = ({\r\n variant = \"default\",\r\n children = null,\r\n color = \"primary\",\r\n title = \"\",\r\n subtitle = \"\",\r\n subtitleVariant,\r\n boldTitle = false,\r\n boldSubtitle = false,\r\n showSubtitle = false,\r\n isCollapsible = true,\r\n startIcon = null,\r\n endIcon = null,\r\n showStartIcon = false,\r\n showEndIcon = false,\r\n footer = null,\r\n isWatermark = false,\r\n watermarkText = \"\",\r\n sx = {},\r\n ...rest\r\n}) => {\r\n const [open, setOpen] = useState(true);\r\n\r\n // Parse variant: \"with-header.header1_bold\" → baseVariant=\"with-header\", titleTypography=\"header1_bold\"\r\n // Default titleTypography: \"header1_semibold\"\r\n let baseVariant = variant;\r\n let titleTypography = \"header1_semibold\";\r\n\r\n if (variant && variant.includes(\".\")) {\r\n const [v, t] = variant.split(\".\");\r\n baseVariant = v;\r\n titleTypography = t;\r\n }\r\n\r\n const headerBg = HEADER_COLORS[color] || HEADER_COLORS.primary;\r\n const headerTextColor = HEADER_TEXT_COLORS[color] || HEADER_TEXT_COLORS.primary;\r\n const headerIconColor = HEADER_ICON_COLORS[color] || HEADER_ICON_COLORS.primary;\r\n const cardBg = DerivedColor.color_bg_surface;\r\n const borderColor = DerivedColor.color_border_default;\r\n\r\n // ====================== HEADER RENDERER ======================\r\n const renderHeaderContent = () => (\r\n <Box\r\n onClick={() => isCollapsible && setOpen(!open)}\r\n sx={{\r\n backgroundColor: headerBg,\r\n padding: SpacingToken.spacing4,\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n cursor: isCollapsible ? \"pointer\" : \"default\",\r\n borderTopLeftRadius: Radius.radius_2,\r\n borderTopRightRadius: Radius.radius_2,\r\n }}\r\n >\r\n <Box sx={{ display: \"flex\", alignItems: \"center\", gap: \"8px\" }}>\r\n {showStartIcon && startIcon && (\r\n <Box sx={{ display: \"flex\", alignItems: \"center\", lineHeight: 0 }}>\r\n {startIcon}\r\n </Box>\r\n )}\r\n\r\n <Box>\r\n <BaseTypography variant={`${titleTypography}.default`} sx={{ color: headerTextColor }}>\r\n {title}\r\n </BaseTypography>\r\n\r\n {showSubtitle && subtitle && (\r\n subtitleVariant ? (\r\n <BaseTypography variant={subtitleVariant} sx={{ color: headerTextColor, mt: \"2px\" }}>\r\n {subtitle}\r\n </BaseTypography>\r\n ) : (\r\n <Box\r\n component=\"span\"\r\n sx={{\r\n color: headerTextColor,\r\n fontWeight: boldSubtitle ? 700 : 400,\r\n fontSize: \"13px\",\r\n display: \"block\",\r\n mt: \"2px\",\r\n }}\r\n >\r\n {subtitle}\r\n </Box>\r\n )\r\n )}\r\n </Box>\r\n </Box>\r\n\r\n <Box sx={{ display: \"flex\", alignItems: \"center\", gap: \"8px\" }}>\r\n {showEndIcon && endIcon && (\r\n <Box sx={{ display: \"flex\", alignItems: \"center\", lineHeight: 0 }}>\r\n {endIcon}\r\n </Box>\r\n )}\r\n\r\n {isCollapsible && (\r\n <IconButton\r\n size=\"small\"\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n setOpen(!open);\r\n }}\r\n sx={{ color: headerIconColor }}\r\n >\r\n {open ? <KeyboardArrowUpIcon /> : <KeyboardArrowDownIcon />}\r\n </IconButton>\r\n )}\r\n </Box>\r\n </Box>\r\n );\r\n\r\n // ====================== CONTENT RENDERER ======================\r\n const renderContent = () => (\r\n <Collapse in={!isCollapsible || open} timeout={300}>\r\n <Box\r\n sx={{\r\n padding: SpacingToken.spacing4,\r\n backgroundColor: cardBg,\r\n }}\r\n >\r\n {isWatermark && watermarkText ? (\r\n <Watermark\r\n text={watermarkText}\r\n wrapperStyle={{ minHeight: \"100px\", position: \"relative\" }}\r\n >\r\n {children}\r\n </Watermark>\r\n ) : (\r\n children\r\n )}\r\n </Box>\r\n </Collapse>\r\n );\r\n\r\n // ====================== DEFAULT ======================\r\n if (baseVariant === \"default\") {\r\n return (\r\n <MuiCard\r\n sx={{\r\n borderRadius: Radius.radius_2,\r\n backgroundColor: cardBg,\r\n border: `1px solid ${borderColor}`,\r\n overflow: isWatermark ? \"hidden\" : \"visible\",\r\n boxShadow: \"none\",\r\n padding: SpacingToken.spacing4,\r\n position: \"relative\",\r\n ...sx,\r\n }}\r\n {...rest}\r\n >\r\n {isWatermark && watermarkText ? (\r\n <Watermark\r\n text={watermarkText}\r\n wrapperStyle={{ minHeight: \"100px\", position: \"relative\" }}\r\n >\r\n {children}\r\n </Watermark>\r\n ) : (\r\n children\r\n )}\r\n </MuiCard>\r\n );\r\n }\r\n\r\n // ====================== WITH-HEADER ======================\r\n if (baseVariant === \"with-header\") {\r\n return (\r\n <MuiCard\r\n sx={{\r\n borderRadius: Radius.radius_2,\r\n border: `1px solid ${borderColor}`,\r\n overflow: isWatermark ? \"hidden\" : \"visible\",\r\n boxShadow: \"none\",\r\n ...sx,\r\n }}\r\n {...rest}\r\n >\r\n {renderHeaderContent()}\r\n {renderContent()}\r\n </MuiCard>\r\n );\r\n }\r\n\r\n // ====================== WITH-HEADER-FOOTER ======================\r\n if (baseVariant === \"with-header-footer\") {\r\n return (\r\n <MuiCard\r\n sx={{\r\n borderRadius: Radius.radius_2,\r\n border: `1px solid ${borderColor}`,\r\n overflow: isWatermark ? \"hidden\" : \"visible\",\r\n boxShadow: \"none\",\r\n ...sx,\r\n }}\r\n {...rest}\r\n >\r\n {renderHeaderContent()}\r\n {renderContent()}\r\n\r\n {/* Footer */}\r\n {footer && (\r\n <Box\r\n sx={{\r\n padding: SpacingToken.spacing4,\r\n borderTop: `1px solid ${borderColor}`,\r\n backgroundColor: cardBg,\r\n }}\r\n >\r\n {footer}\r\n </Box>\r\n )}\r\n </MuiCard>\r\n );\r\n }\r\n\r\n // Fallback\r\n return (\r\n <MuiCard\r\n sx={{\r\n borderRadius: Radius.radius_2,\r\n backgroundColor: cardBg,\r\n border: `1px solid ${borderColor}`,\r\n overflow: \"visible\",\r\n boxShadow: \"none\",\r\n padding: SpacingToken.spacing4,\r\n ...sx,\r\n }}\r\n {...rest}\r\n >\r\n {children}\r\n </MuiCard>\r\n );\r\n};\r\n","import { isValidElement, createElement, useMemo } from \"react\";\r\nimport SnackbarRaw from \"@mui/material/Snackbar\";\r\nimport AlertRaw from \"@mui/material/Alert\";\r\nimport IconButtonRaw from \"@mui/material/IconButton\";\r\nimport { IconX } from \"@tabler/icons-react\";\r\nimport { DerivedColor } from \"@/components/atoms/colors/derived\";\r\nimport { PrimitiveColor } from \"@/components/atoms/colors/primitive\";\r\nimport { Radius } from \"@/components/atoms/radius/radius\";\r\n\r\nconst Snackbar = SnackbarRaw?.default ?? SnackbarRaw;\r\nconst Alert = AlertRaw?.default ?? AlertRaw;\r\nconst IconButton = IconButtonRaw?.default ?? IconButtonRaw;\r\n\r\nconst VARIANT_CONFIG = {\r\n success: {\r\n bg: PrimitiveColor.color_green_100,\r\n text: PrimitiveColor.color_green_700,\r\n },\r\n error: {\r\n bg: PrimitiveColor.color_red_100,\r\n text: PrimitiveColor.color_red_700,\r\n },\r\n info: {\r\n bg: PrimitiveColor.color_blue_cakrawala_100,\r\n text: PrimitiveColor.color_blue_cakrawala_700,\r\n },\r\n warning: {\r\n bg: PrimitiveColor.color_yellow_100,\r\n text: PrimitiveColor.color_yellow_700,\r\n },\r\n default: {\r\n bg: PrimitiveColor.color_neutral_200,\r\n text: PrimitiveColor.color_neutral_900,\r\n },\r\n};\r\n\r\nexport const BaseSnackbar = ({\r\n open = false,\r\n onClose,\r\n message,\r\n variant = \"info\",\r\n duration = 3000,\r\n position = { vertical: \"top\", horizontal: \"center\" },\r\n icon,\r\n sx = {},\r\n ...props\r\n}) => {\r\n const config = VARIANT_CONFIG[variant] ?? VARIANT_CONFIG.info;\r\n\r\n const renderIcon = useMemo(() => {\r\n if (!icon) return false;\r\n if (isValidElement(icon)) return icon;\r\n if (typeof icon === \"function\")\r\n return createElement(icon, { size: 20, color: config.text });\r\n return false;\r\n }, [icon, config]);\r\n\r\n return (\r\n <Snackbar\r\n open={open}\r\n autoHideDuration={duration}\r\n onClose={onClose}\r\n anchorOrigin={position}\r\n {...props}\r\n >\r\n <Alert\r\n severity={variant === \"default\" ? undefined : variant}\r\n variant=\"filled\"\r\n icon={renderIcon}\r\n action={\r\n onClose ? (\r\n <IconButton\r\n aria-label=\"close\"\r\n onClick={onClose}\r\n sx={{\r\n color: config.text,\r\n p: 0.5,\r\n }}\r\n >\r\n <IconX size={18} />\r\n </IconButton>\r\n ) : null\r\n }\r\n sx={{\r\n backgroundColor: config.bg,\r\n color: config.text,\r\n borderRadius: Radius.radius_2,\r\n boxShadow: \"0px 4px 12px rgba(0, 0, 0, 0.15)\",\r\n alignItems: \"center\",\r\n \"& .MuiAlert-icon\": {\r\n color: config.text,\r\n },\r\n \"& .MuiAlert-message\": {\r\n color: config.text,\r\n fontWeight: 500,\r\n },\r\n \"& .MuiAlert-action\": {\r\n pt: 0,\r\n },\r\n ...sx,\r\n }}\r\n >\r\n {message}\r\n </Alert>\r\n </Snackbar>\r\n );\r\n};\r\n","import MuiCheckboxRaw from \"@mui/material/Checkbox\";\r\nimport FormControlLabelRaw from \"@mui/material/FormControlLabel\";\r\nimport FormGroupRaw from \"@mui/material/FormGroup\";\r\nimport BoxRaw from \"@mui/material/Box\";\r\nimport { IconSquare, IconSquareCheckFilled } from \"@tabler/icons-react\";\r\nimport { useController } from \"react-hook-form\";\r\nimport { BaseTypography } from \"@/components/atoms/typography\";\r\nimport { DerivedColor } from \"@/components/atoms/colors/derived\";\r\n\r\nconst MuiCheckbox = MuiCheckboxRaw?.default ?? MuiCheckboxRaw;\r\nconst FormControlLabel = FormControlLabelRaw?.default ?? FormControlLabelRaw;\r\nconst FormGroup = FormGroupRaw?.default ?? FormGroupRaw;\r\nconst Box = BoxRaw?.default ?? BoxRaw;\r\n\r\nexport const BaseCheckbox = ({\r\n name = \"\",\r\n control = null,\r\n defaultValue,\r\n title,\r\n options,\r\n label,\r\n disabled = false,\r\n labelPlacement = \"end\",\r\n isHorizontal = false,\r\n sx,\r\n ...restProps\r\n}) => {\r\n // Use react-hook-form if control is provided\r\n const hookForm = control\r\n ? useController({ control, name, defaultValue: defaultValue ?? [] })\r\n : null;\r\n\r\n const field = hookForm?.field;\r\n const formState = hookForm?.formState;\r\n const hasError = !!formState?.errors?.[name];\r\n\r\n // Resolve checked value\r\n const checkedValue = field ? field.value : restProps.checked;\r\n const handleChange = field\r\n ? (newVal) => field.onChange(newVal)\r\n : restProps.onChange;\r\n\r\n const isGroup = Array.isArray(options);\r\n\r\n const handleGroupChange = (optionValue, nextChecked) => {\r\n let newChecked = checkedValue ? [...checkedValue] : [];\r\n if (nextChecked) {\r\n if (!newChecked.includes(optionValue)) newChecked.push(optionValue);\r\n } else {\r\n newChecked = newChecked.filter((v) => v !== optionValue);\r\n }\r\n handleChange?.(newChecked);\r\n };\r\n\r\n const handleSingleChange = (e) => {\r\n if (field) {\r\n field.onChange(e.target.checked);\r\n } else {\r\n restProps.onChange?.(e.target.checked, e);\r\n }\r\n };\r\n\r\n // Error message\r\n const errorMessage = formState?.errors?.[name]?.message;\r\n\r\n // Icon color based on error\r\n const iconColor = hasError\r\n ? DerivedColor.color_text_danger\r\n : DerivedColor.color_border_default;\r\n const checkedIconColor = hasError\r\n ? DerivedColor.color_text_danger\r\n : DerivedColor.color_bg_brand_primary;\r\n\r\n if (isGroup) {\r\n return (\r\n <Box>\r\n {/* TITLE */}\r\n {title && (\r\n <BaseTypography\r\n variant=\"body1_regular.default\"\r\n sx={{\r\n fontWeight: 600,\r\n color: hasError\r\n ? DerivedColor.color_text_danger\r\n : DerivedColor.color_text_default,\r\n mb: \"4px\",\r\n }}\r\n >\r\n {title}\r\n </BaseTypography>\r\n )}\r\n\r\n <FormGroup row={isHorizontal} sx={{ gap: isHorizontal ? 2 : 0 }}>\r\n {options.map((option) => (\r\n <FormControlLabel\r\n key={option.value}\r\n label={option.label}\r\n labelPlacement={labelPlacement}\r\n sx={{\r\n \"& .MuiFormControlLabel-label\": { fontSize: \"14px\" },\r\n }}\r\n control={\r\n <MuiCheckbox\r\n checked={(checkedValue || []).includes(option.value)}\r\n onChange={(e) => handleGroupChange(option.value, e.target.checked)}\r\n icon={<IconSquare size={22} color={iconColor} />}\r\n checkedIcon={<IconSquareCheckFilled size={22} color={(option.disabled ?? disabled) ? DerivedColor.color_bg_disabled : checkedIconColor} />}\r\n disabled={option.disabled ?? disabled}\r\n sx={{\r\n \":hover\": { backgroundColor: \"#C0DBF1\" },\r\n }}\r\n {...(field ? {} : restProps)}\r\n />\r\n }\r\n />\r\n ))}\r\n </FormGroup>\r\n\r\n {/* ERROR */}\r\n {errorMessage && (\r\n <BaseTypography variant=\"body1_regular.danger\" sx={{ mt: \"4px\" }}>\r\n {errorMessage}\r\n </BaseTypography>\r\n )}\r\n </Box>\r\n );\r\n }\r\n\r\n return (\r\n <Box>\r\n {/* TITLE */}\r\n {title && (\r\n <BaseTypography\r\n variant=\"body1_regular.default\"\r\n sx={{\r\n fontWeight: 600,\r\n color: hasError\r\n ? DerivedColor.color_text_danger\r\n : DerivedColor.color_text_default,\r\n mb: \"4px\",\r\n }}\r\n >\r\n {title}\r\n </BaseTypography>\r\n )}\r\n\r\n <FormControlLabel\r\n label={label}\r\n labelPlacement={labelPlacement}\r\n sx={{\r\n \"& .MuiFormControlLabel-label\": { fontSize: \"14px\" },\r\n }}\r\n control={\r\n <MuiCheckbox\r\n checked={!!checkedValue}\r\n onChange={handleSingleChange}\r\n icon={<IconSquare size={22} color={iconColor} />}\r\n checkedIcon={<IconSquareCheckFilled size={22} color={disabled ? DerivedColor.color_bg_disabled : checkedIconColor} />}\r\n disabled={disabled}\r\n sx={{\r\n \":hover\": { backgroundColor: \"#C0DBF1\" },\r\n ...sx,\r\n }}\r\n {...(field ? {} : restProps)}\r\n />\r\n }\r\n />\r\n\r\n {/* ERROR */}\r\n {errorMessage && (\r\n <BaseTypography variant=\"body1_regular.danger\" sx={{ mt: \"4px\" }}>\r\n {errorMessage}\r\n </BaseTypography>\r\n )}\r\n </Box>\r\n );\r\n};\r\n","import KeyboardArrowRightRaw from \"@mui/icons-material/KeyboardArrowRight\";\r\nimport KeyboardArrowLeftRaw from \"@mui/icons-material/KeyboardArrowLeft\";\r\nimport IconButtonRaw from \"@mui/material/IconButton\";\r\n\r\nconst KeyboardArrowRight =\r\n KeyboardArrowRightRaw?.default ?? KeyboardArrowRightRaw;\r\nconst KeyboardArrowLeft =\r\n KeyboardArrowLeftRaw?.default ?? KeyboardArrowLeftRaw;\r\nconst IconButton = IconButtonRaw?.default ?? IconButtonRaw;\r\n\r\nexport const ServerSidePaginationActions = (props) => {\r\n const { page, onPageChange, rowsPerPage, currentPageData } = props;\r\n\r\n const handleBackButtonClick = () => {\r\n onPageChange(null, page - 1);\r\n };\r\n\r\n const handleNextButtonClick = () => {\r\n onPageChange(null, page + 1);\r\n };\r\n\r\n return (\r\n <>\r\n <IconButton onClick={handleBackButtonClick} disabled={page === 0}>\r\n <KeyboardArrowLeft />\r\n </IconButton>\r\n <IconButton\r\n onClick={handleNextButtonClick}\r\n disabled={\r\n !currentPageData?.length || currentPageData?.length < rowsPerPage\r\n }\r\n >\r\n <KeyboardArrowRight />\r\n </IconButton>\r\n </>\r\n );\r\n};\r\n","import { useMemo } from \"react\";\r\nimport BoxRaw from \"@mui/material/Box\";\r\nimport SelectRaw from \"@mui/material/Select\";\r\nimport MenuItemRaw from \"@mui/material/MenuItem\";\r\nimport IconButtonRaw from \"@mui/material/IconButton\";\r\nimport TablePaginationRaw from \"@mui/material/TablePagination\";\r\nimport { IconChevronLeft, IconChevronRight } from \"@tabler/icons-react\";\r\nimport { BaseTypography } from \"@/components/atoms/typography\";\r\nimport { DerivedColor } from \"@/components/atoms/colors/derived\";\r\nimport { PrimitiveColor } from \"@/components/atoms/colors/primitive\";\r\nimport { ServerSidePaginationActions } from \"@/components/molecules/datatable/serverside-pagination-actions\";\r\n\r\nconst Box = BoxRaw?.default ?? BoxRaw;\r\nconst Select = SelectRaw?.default ?? SelectRaw;\r\nconst MenuItem = MenuItemRaw?.default ?? MenuItemRaw;\r\nconst IconButton = IconButtonRaw?.default ?? IconButtonRaw;\r\nconst TablePagination = TablePaginationRaw?.default ?? TablePaginationRaw;\r\n\r\n// ============================================================\r\n// PAGINATION VARIANTS\r\n// ============================================================\r\n//\r\n// \"default\" → MUI TablePagination style:\r\n// \"Rows per page: 10 ▼ 1-10 of 26 < >\"\r\n//\r\n// \"numbered\" → Custom numbered page buttons (dari Figma):\r\n// \"Menampilkan 1-10 dari 100 data Baris per halaman: 10 ▼ < 1 2 3 >\"\r\n//\r\n// Props:\r\n// - variant: \"default\" | \"numbered\" (default: \"default\")\r\n// - showTotalCount: boolean (default: false)\r\n// Khusus variant \"numbered\":\r\n// Jika true → \"Menampilkan 1-10 dari 100 data\"\r\n// Jika false → \"Menampilkan 1-10\"\r\n// - serverSide: boolean\r\n// - page: number (0-indexed)\r\n// - rowsPerPage: number\r\n// - count: total items (-1 jika unknown)\r\n// - onPageChange: (event, newPage) => void\r\n// - onRowsPerPageChange: (event, newRowsPerPage) => void\r\n// - rowsPerPageOptions: number[]\r\n// - labelRowsPerPage: string\r\n// - currentPageDataLength: number (untuk serverSide tanpa count)\r\n// ============================================================\r\n\r\n/**\r\n * Generate visible page numbers.\r\n * Returns array of page numbers (0-indexed).\r\n *\r\n * Behavior:\r\n * - Tampilkan window berisi `maxVisible` angka\r\n * - Active page selalu di tengah (kecuali di awal/akhir)\r\n *\r\n * Contoh (totalPages=100, maxVisible=3):\r\n * Page 0: [1] 2 3 (awal — aktif di kiri)\r\n * Page 1: 1 [2] 3 (aktif di tengah)\r\n * Page 2: 2 [3] 4 (aktif di tengah)\r\n * Page 98: 98 [99] 100 (aktif di tengah)\r\n * Page 99: 98 99 [100] (akhir — aktif di kanan)\r\n */\r\nfunction getVisiblePages(currentPage, totalPages, maxVisible = 3) {\r\n if (totalPages <= maxVisible) {\r\n return Array.from({ length: totalPages }, (_, i) => i);\r\n }\r\n\r\n const half = Math.floor(maxVisible / 2);\r\n\r\n let start = currentPage - half;\r\n let end = currentPage + (maxVisible - 1 - half);\r\n\r\n // Clamp to start\r\n if (start < 0) {\r\n start = 0;\r\n end = maxVisible - 1;\r\n }\r\n\r\n // Clamp to end\r\n if (end >= totalPages) {\r\n end = totalPages - 1;\r\n start = totalPages - maxVisible;\r\n }\r\n\r\n const pages = [];\r\n for (let i = start; i <= end; i++) {\r\n pages.push(i);\r\n }\r\n\r\n return pages;\r\n}\r\n\r\n// ============================================================\r\n// NUMBERED PAGE BUTTONS (< 1 2 3 >)\r\n// ============================================================\r\n\r\nconst NumberedPageButtons = ({ page, onPageChange, totalPages }) => {\r\n const visiblePages = useMemo(\r\n () => getVisiblePages(page, totalPages),\r\n [page, totalPages],\r\n );\r\n\r\n return (\r\n <Box sx={{ display: \"flex\", alignItems: \"center\", gap: 0.5 }}>\r\n <IconButton\r\n size=\"small\"\r\n disabled={page === 0}\r\n onClick={(e) => onPageChange(e, page - 1)}\r\n sx={{ color: DerivedColor.color_text_default, width: 32, height: 32 }}\r\n >\r\n <IconChevronLeft size={18} />\r\n </IconButton>\r\n\r\n {visiblePages.map((item, idx) => (\r\n <Box\r\n key={item}\r\n onClick={(e) => onPageChange(e, item)}\r\n sx={{\r\n width: 32,\r\n height: 32,\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n borderRadius: 1,\r\n fontSize: 13,\r\n fontWeight: item === page ? 600 : 400,\r\n cursor: \"pointer\",\r\n userSelect: \"none\",\r\n border: item === page\r\n ? `1.5px solid ${PrimitiveColor.color_blue_cakrawala_500}`\r\n : \"1px solid transparent\",\r\n color: item === page\r\n ? PrimitiveColor.color_blue_cakrawala_500\r\n : DerivedColor.color_text_default,\r\n backgroundColor: \"transparent\",\r\n \"&:hover\": {\r\n backgroundColor: PrimitiveColor.color_neutral_200,\r\n },\r\n }}\r\n >\r\n {item + 1}\r\n </Box>\r\n ))}\r\n\r\n <IconButton\r\n size=\"small\"\r\n disabled={page >= totalPages - 1}\r\n onClick={(e) => onPageChange(e, page + 1)}\r\n sx={{ color: DerivedColor.color_text_default, width: 32, height: 32 }}\r\n >\r\n <IconChevronRight size={18} />\r\n </IconButton>\r\n </Box>\r\n );\r\n};\r\n\r\n// ============================================================\r\n// VARIANT: \"numbered\" (Figma design)\r\n// Layout: [Menampilkan 1-10 (dari 100 data)] [Baris per halaman: 10▼] [< 1 2 3 >]\r\n// ============================================================\r\n\r\nconst NumberedVariant = ({\r\n showTotalCount,\r\n page,\r\n rowsPerPage,\r\n count,\r\n onPageChange,\r\n onRowsPerPageChange,\r\n rowsPerPageOptions,\r\n labelRowsPerPage,\r\n currentPageDataLength,\r\n}) => {\r\n const totalPages = count >= 0 ? Math.ceil(count / rowsPerPage) : 0;\r\n const startItem = page * rowsPerPage + 1;\r\n const endItem = count >= 0\r\n ? Math.min((page + 1) * rowsPerPage, count)\r\n : page * rowsPerPage + currentPageDataLength;\r\n\r\n return (\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n px: 2,\r\n py: 1.5,\r\n borderTop: `1px solid ${DerivedColor.color_border_default}`,\r\n minHeight: 52,\r\n }}\r\n >\r\n {/* Left: \"Menampilkan 1-10\" + optional \"dari 100 data\" */}\r\n <Box sx={{ display: \"flex\", alignItems: \"center\" }}>\r\n <BaseTypography variant=\"body2_regular.subtle\" component=\"div\">\r\n Menampilkan{\" \"}\r\n <span style={{ fontWeight: 700, color: DerivedColor.color_text_default }}>\r\n {startItem}-{endItem}\r\n </span>\r\n {showTotalCount && count >= 0 && (\r\n <>\r\n {\" \"}dari{\" \"}\r\n <span style={{ fontWeight: 700, color: DerivedColor.color_text_default }}>\r\n {count}\r\n </span>{\" \"}\r\n data\r\n </>\r\n )}\r\n </BaseTypography>\r\n </Box>\r\n\r\n {/* Right: Rows per page + Numbered page buttons */}\r\n <Box sx={{ display: \"flex\", alignItems: \"center\", gap: 2 }}>\r\n <Box sx={{ display: \"flex\", alignItems: \"center\", gap: 1 }}>\r\n <BaseTypography variant=\"body2_regular.subtle\">\r\n {labelRowsPerPage}\r\n </BaseTypography>\r\n <Select\r\n value={rowsPerPage}\r\n onChange={(e) => {\r\n const syntheticEvent = { target: { value: e.target.value } };\r\n onRowsPerPageChange?.(syntheticEvent, Number(e.target.value));\r\n }}\r\n size=\"small\"\r\n variant=\"outlined\"\r\n sx={{\r\n minWidth: 60,\r\n height: 32,\r\n fontSize: 13,\r\n \"& .MuiSelect-select\": { py: 0.5, px: 1 },\r\n }}\r\n >\r\n {rowsPerPageOptions.map((option) => (\r\n <MenuItem key={option} value={option} sx={{ fontSize: 13 }}>\r\n {option}\r\n </MenuItem>\r\n ))}\r\n </Select>\r\n </Box>\r\n\r\n <NumberedPageButtons\r\n page={page}\r\n onPageChange={onPageChange}\r\n totalPages={totalPages}\r\n />\r\n </Box>\r\n </Box>\r\n );\r\n};\r\n\r\n// ============================================================\r\n// VARIANT: \"default\" (MUI TablePagination — serverside style)\r\n// Layout: [Rows per page: 10▼] [1-10 of 26] [< >]\r\n// ============================================================\r\n\r\nconst DefaultVariant = ({\r\n page,\r\n rowsPerPage,\r\n count,\r\n onPageChange,\r\n onRowsPerPageChange,\r\n rowsPerPageOptions,\r\n labelRowsPerPage,\r\n serverSide,\r\n currentPageDataLength,\r\n}) => {\r\n return (\r\n <TablePagination\r\n component=\"div\"\r\n count={count >= 0 ? count : -1}\r\n page={page}\r\n rowsPerPage={rowsPerPage}\r\n onPageChange={onPageChange}\r\n onRowsPerPageChange={(e) => {\r\n onRowsPerPageChange?.(e, Number(e.target.value));\r\n }}\r\n rowsPerPageOptions={rowsPerPageOptions}\r\n labelRowsPerPage={labelRowsPerPage}\r\n ActionsComponent={\r\n serverSide\r\n ? (actionProps) => (\r\n <ServerSidePaginationActions\r\n {...actionProps}\r\n currentPageData={{ length: currentPageDataLength }}\r\n />\r\n )\r\n : undefined\r\n }\r\n />\r\n );\r\n};\r\n\r\n// ============================================================\r\n// MAIN EXPORT: DatatablePagination\r\n// ============================================================\r\n\r\nexport const DatatablePagination = ({\r\n variant = \"default\",\r\n showTotalCount = false,\r\n page = 0,\r\n rowsPerPage = 10,\r\n count = -1,\r\n onPageChange,\r\n onRowsPerPageChange,\r\n rowsPerPageOptions = [5, 10, 25],\r\n labelRowsPerPage,\r\n serverSide = false,\r\n currentPageDataLength = 0,\r\n}) => {\r\n const resolvedLabel = labelRowsPerPage ?? (variant === \"numbered\" ? \"Baris per halaman:\" : \"Rows per page:\");\r\n\r\n if (variant === \"numbered\") {\r\n return (\r\n <NumberedVariant\r\n showTotalCount={showTotalCount}\r\n page={page}\r\n rowsPerPage={rowsPerPage}\r\n count={count}\r\n onPageChange={onPageChange}\r\n onRowsPerPageChange={onRowsPerPageChange}\r\n rowsPerPageOptions={rowsPerPageOptions}\r\n labelRowsPerPage={resolvedLabel}\r\n currentPageDataLength={currentPageDataLength}\r\n />\r\n );\r\n }\r\n\r\n // variant === \"default\"\r\n return (\r\n <DefaultVariant\r\n page={page}\r\n rowsPerPage={rowsPerPage}\r\n count={count}\r\n onPageChange={onPageChange}\r\n onRowsPerPageChange={onRowsPerPageChange}\r\n rowsPerPageOptions={rowsPerPageOptions}\r\n labelRowsPerPage={resolvedLabel}\r\n serverSide={serverSide}\r\n currentPageDataLength={currentPageDataLength}\r\n />\r\n );\r\n};\r\n","import { useMemo } from \"react\";\r\nimport BoxRaw from \"@mui/material/Box\";\r\nimport SelectRaw from \"@mui/material/Select\";\r\nimport MenuItemRaw from \"@mui/material/MenuItem\";\r\nimport IconButtonRaw from \"@mui/material/IconButton\";\r\nimport { IconChevronLeft, IconChevronRight } from \"@tabler/icons-react\";\r\nimport { BaseTypography } from \"@/components/atoms/typography\";\r\nimport { DerivedColor } from \"@/components/atoms/colors/derived\";\r\nimport { PrimitiveColor } from \"@/components/atoms/colors/primitive\";\r\n\r\nconst Box = BoxRaw?.default ?? BoxRaw;\r\nconst Select = SelectRaw?.default ?? SelectRaw;\r\nconst MenuItem = MenuItemRaw?.default ?? MenuItemRaw;\r\nconst IconButton = IconButtonRaw?.default ?? IconButtonRaw;\r\n\r\n/**\r\n * Standalone Numbered Pagination\r\n *\r\n * Bisa dipakai terpisah dari BaseDatatable — untuk list, card grid, atau custom layout.\r\n *\r\n * @example\r\n * import { NumberedPagination } from 'spotlibs-components';\r\n *\r\n * <NumberedPagination\r\n * page={page}\r\n * rowsPerPage={10}\r\n * count={100}\r\n * showTotalCount\r\n * onPageChange={(_, p) => setPage(p)}\r\n * onRowsPerPageChange={(_, rpp) => { setRowsPerPage(rpp); setPage(0); }}\r\n * />\r\n */\r\n\r\nfunction getVisiblePages(currentPage, totalPages, maxVisible = 3) {\r\n if (totalPages <= maxVisible) {\r\n return Array.from({ length: totalPages }, (_, i) => i);\r\n }\r\n\r\n const half = Math.floor(maxVisible / 2);\r\n\r\n let start = currentPage - half;\r\n let end = currentPage + (maxVisible - 1 - half);\r\n\r\n if (start < 0) {\r\n start = 0;\r\n end = maxVisible - 1;\r\n }\r\n\r\n if (end >= totalPages) {\r\n end = totalPages - 1;\r\n start = totalPages - maxVisible;\r\n }\r\n\r\n const pages = [];\r\n for (let i = start; i <= end; i++) {\r\n pages.push(i);\r\n }\r\n\r\n return pages;\r\n}\r\n\r\nexport const NumberedPagination = ({\r\n page = 0,\r\n rowsPerPage = 10,\r\n count = 0,\r\n showTotalCount = false,\r\n onPageChange,\r\n onRowsPerPageChange,\r\n rowsPerPageOptions = [5, 10, 25],\r\n labelRowsPerPage = \"Baris per halaman:\",\r\n}) => {\r\n const totalPages = count > 0 ? Math.ceil(count / rowsPerPage) : 0;\r\n const startItem = page * rowsPerPage + 1;\r\n const endItem = Math.min((page + 1) * rowsPerPage, count);\r\n\r\n const visiblePages = useMemo(\r\n () => getVisiblePages(page, totalPages),\r\n [page, totalPages],\r\n );\r\n\r\n return (\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n px: 2,\r\n py: 1.5,\r\n minHeight: 52,\r\n }}\r\n >\r\n {/* Left: \"Menampilkan 1-10\" + optional \"dari 100 data\" */}\r\n <Box sx={{ display: \"flex\", alignItems: \"center\" }}>\r\n <BaseTypography variant=\"body2_regular.subtle\" component=\"div\">\r\n Menampilkan{\" \"}\r\n <span style={{ fontWeight: 700, color: DerivedColor.color_text_default }}>\r\n {startItem}-{endItem}\r\n </span>\r\n {showTotalCount && count > 0 && (\r\n <>\r\n {\" \"}dari{\" \"}\r\n <span style={{ fontWeight: 700, color: DerivedColor.color_text_default }}>\r\n {count}\r\n </span>{\" \"}\r\n data\r\n </>\r\n )}\r\n </BaseTypography>\r\n </Box>\r\n\r\n {/* Right: Rows per page + Page buttons */}\r\n <Box sx={{ display: \"flex\", alignItems: \"center\", gap: 2 }}>\r\n <Box sx={{ display: \"flex\", alignItems: \"center\", gap: 1 }}>\r\n <BaseTypography variant=\"body2_regular.subtle\">\r\n {labelRowsPerPage}\r\n </BaseTypography>\r\n <Select\r\n value={rowsPerPage}\r\n onChange={(e) => {\r\n onRowsPerPageChange?.(e, Number(e.target.value));\r\n }}\r\n size=\"small\"\r\n variant=\"outlined\"\r\n sx={{\r\n minWidth: 60,\r\n height: 32,\r\n fontSize: 13,\r\n \"& .MuiSelect-select\": { py: 0.5, px: 1 },\r\n }}\r\n >\r\n {rowsPerPageOptions.map((option) => (\r\n <MenuItem key={option} value={option} sx={{ fontSize: 13 }}>\r\n {option}\r\n </MenuItem>\r\n ))}\r\n </Select>\r\n </Box>\r\n\r\n {/* Page Buttons */}\r\n <Box sx={{ display: \"flex\", alignItems: \"center\", gap: 0.5 }}>\r\n <IconButton\r\n size=\"small\"\r\n disabled={page === 0}\r\n onClick={(e) => onPageChange?.(e, page - 1)}\r\n sx={{ color: DerivedColor.color_text_default, width: 32, height: 32 }}\r\n >\r\n <IconChevronLeft size={18} />\r\n </IconButton>\r\n\r\n {visiblePages.map((item) => (\r\n <Box\r\n key={item}\r\n onClick={(e) => onPageChange?.(e, item)}\r\n sx={{\r\n width: 32,\r\n height: 32,\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n borderRadius: 1,\r\n fontSize: 13,\r\n fontWeight: item === page ? 600 : 400,\r\n cursor: \"pointer\",\r\n userSelect: \"none\",\r\n border: item === page\r\n ? `1.5px solid ${PrimitiveColor.color_blue_cakrawala_500}`\r\n : \"1px solid transparent\",\r\n color: item === page\r\n ? PrimitiveColor.color_blue_cakrawala_500\r\n : DerivedColor.color_text_default,\r\n backgroundColor: \"transparent\",\r\n \"&:hover\": {\r\n backgroundColor: PrimitiveColor.color_neutral_200,\r\n },\r\n }}\r\n >\r\n {item + 1}\r\n </Box>\r\n ))}\r\n\r\n <IconButton\r\n size=\"small\"\r\n disabled={page >= totalPages - 1}\r\n onClick={(e) => onPageChange?.(e, page + 1)}\r\n sx={{ color: DerivedColor.color_text_default, width: 32, height: 32 }}\r\n >\r\n <IconChevronRight size={18} />\r\n </IconButton>\r\n </Box>\r\n </Box>\r\n </Box>\r\n );\r\n};\r\n","import React, { useCallback, useMemo, useState } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport BoxRaw from \"@mui/material/Box\";\r\nimport CheckboxRaw from \"@mui/material/Checkbox\";\r\nimport CircularProgressRaw from \"@mui/material/CircularProgress\";\r\nimport PaperRaw from \"@mui/material/Paper\";\r\nimport TableRaw from \"@mui/material/Table\";\r\nimport TableBodyRaw from \"@mui/material/TableBody\";\r\nimport TableCellRaw from \"@mui/material/TableCell\";\r\nimport TableContainerRaw from \"@mui/material/TableContainer\";\r\nimport TableHeadRaw from \"@mui/material/TableHead\";\r\nimport TableRowRaw from \"@mui/material/TableRow\";\r\n\r\nimport {\r\n IconArrowsUpDown,\r\n IconArrowUp,\r\n IconArrowDown,\r\n IconSquare,\r\n IconSquareCheckFilled,\r\n IconSquareMinusFilled,\r\n} from \"@tabler/icons-react\";\r\nimport { DerivedColor } from \"@/components/atoms/colors/derived\";\r\nimport { PrimitiveColor } from \"@/components/atoms/colors/primitive\";\r\nimport { ServerSidePaginationActions } from \"@/components/molecules/datatable/serverside-pagination-actions\";\r\nimport { DatatablePagination } from \"@/components/molecules/datatable/pagination\";\r\n\r\nconst Box = BoxRaw?.default ?? BoxRaw;\r\nconst Checkbox = CheckboxRaw?.default ?? CheckboxRaw;\r\nconst CircularProgress = CircularProgressRaw?.default ?? CircularProgressRaw;\r\nconst Paper = PaperRaw?.default ?? PaperRaw;\r\nconst Table = TableRaw?.default ?? TableRaw;\r\nconst TableBody = TableBodyRaw?.default ?? TableBodyRaw;\r\nconst TableCell = TableCellRaw?.default ?? TableCellRaw;\r\nconst TableContainer = TableContainerRaw?.default ?? TableContainerRaw;\r\nconst TableHead = TableHeadRaw?.default ?? TableHeadRaw;\r\nconst TableRow = TableRowRaw?.default ?? TableRowRaw;\r\n\r\nconst DEFAULT_COLUMN_WIDTH = 160;\r\nconst HEADER_ROW_HEIGHT = 48;\r\nconst SELECTION_COLUMN_WIDTH = 56;\r\nconst EMPTY_ARRAY = [];\r\nconst EMPTY_OBJECT = {};\r\n\r\nconst COLORS = {\r\n headerBg: DerivedColor.color_bg_brand_primary,\r\n headerText: DerivedColor.color_text_inverse,\r\n headerBorder: DerivedColor.color_border_default,\r\n headerHoverBg: DerivedColor.color_bg_brand_primary_strong,\r\n headerHoverText: DerivedColor.color_text_inverse,\r\n bodyBg: DerivedColor.color_bg_surface,\r\n bodyText: DerivedColor.color_text_default,\r\n bodyBorder: DerivedColor.color_border_default,\r\n rowHoverBg: PrimitiveColor.color_neutral_200,\r\n stickyShadow: \"rgba(19, 19, 19, 0.08)\",\r\n};\r\n\r\nconst getValueByPath = (obj, path) =>\r\n String(path)\r\n .split(\".\")\r\n .reduce((acc, key) => acc?.[key], obj);\r\n\r\nconst getLastPathSegment = (value = \"\") => String(value).trim().split(\".\").pop();\r\n\r\nconst formatHeader = (value = \"\") =>\r\n getLastPathSegment(value)\r\n .replace(/[_-]+/g, \" \")\r\n .replace(/([a-z0-9])([A-Z])/g, \"$1 $2\")\r\n .replace(/\\b\\w/g, (char) => char.toUpperCase());\r\n\r\nconst compareValue = (a, b) => {\r\n if (a == null && b == null) return 0;\r\n if (a == null) return -1;\r\n if (b == null) return 1;\r\n\r\n if (typeof a === \"number\" && typeof b === \"number\") {\r\n return a - b;\r\n }\r\n\r\n return String(a).localeCompare(String(b), \"id\", {\r\n numeric: true,\r\n sensitivity: \"base\",\r\n });\r\n};\r\n\r\nconst getColumnWidth = (column) =>\r\n Number(column.width ?? column.minWidth ?? DEFAULT_COLUMN_WIDTH);\r\n\r\nconst getStickyLeft = (widths, index) =>\r\n widths.slice(0, index).reduce((sum, width) => sum + width, 0);\r\n\r\nconst getStickyRight = (widths, index) =>\r\n widths.slice(index + 1).reduce((sum, width) => sum + width, 0);\r\n\r\nconst normalizeColumn = (column, index, sortingEnabled) => {\r\n if (typeof column === \"string\") {\r\n return {\r\n id: getLastPathSegment(column) || `column-${index}`,\r\n key: column,\r\n accessorKey: column,\r\n header: formatHeader(column),\r\n width: DEFAULT_COLUMN_WIDTH,\r\n sortable: sortingEnabled,\r\n align: \"left\",\r\n headerAlign: \"center\",\r\n };\r\n }\r\n\r\n const accessorKey = column.accessorKey ?? column.key ?? column.field ?? column.id;\r\n const id = column.id ?? getLastPathSegment(accessorKey) ?? `column-${index}`;\r\n\r\n return {\r\n width: DEFAULT_COLUMN_WIDTH,\r\n align: \"left\",\r\n ...column,\r\n id,\r\n key: accessorKey,\r\n accessorKey,\r\n header: column.header ?? column.label ?? formatHeader(accessorKey ?? id),\r\n headerAlign: column.headerAlign ?? column.align ?? \"center\",\r\n sortable: column.sortable ?? sortingEnabled,\r\n };\r\n};\r\n\r\nconst normalizeHeaderRows = (header, columns) => {\r\n if (Array.isArray(header) && header.length > 0) {\r\n return header;\r\n }\r\n\r\n return [\r\n columns.map((column) => ({\r\n id: column.id,\r\n key: column.id,\r\n label: column.header,\r\n align: column.headerAlign ?? column.align ?? \"center\",\r\n rowSpan: 1,\r\n })),\r\n ];\r\n};\r\n\r\nconst buildHeaderLayout = (headerRows) => {\r\n const occupied = [];\r\n\r\n return headerRows.map((row, rowIndex) => {\r\n occupied[rowIndex] ??= [];\r\n let pointer = 0;\r\n\r\n return row.map((cell, cellIndex) => {\r\n while (occupied[rowIndex][pointer]) pointer += 1;\r\n\r\n const colSpan = cell.colSpan ?? cell.colspan ?? 1;\r\n const rowSpan = cell.rowSpan ?? cell.rowspan ?? 1;\r\n const start = pointer;\r\n\r\n for (let r = rowIndex; r < rowIndex + rowSpan; r += 1) {\r\n occupied[r] ??= [];\r\n for (let c = start; c < start + colSpan; c += 1) {\r\n occupied[r][c] = true;\r\n }\r\n }\r\n\r\n pointer = start + colSpan;\r\n\r\n return {\r\n ...cell,\r\n id: cell.id ?? cell.key ?? `${rowIndex}-${cellIndex}`,\r\n colSpan,\r\n rowSpan,\r\n start,\r\n end: start + colSpan - 1,\r\n };\r\n });\r\n });\r\n};\r\n\r\nconst getCellValue = (row, column) => {\r\n if (typeof column.accessorFn === \"function\") return column.accessorFn(row);\r\n if (column.accessorKey) return getValueByPath(row, column.accessorKey);\r\n if (column.key) return getValueByPath(row, column.key);\r\n return row?.[column.id];\r\n};\r\n\r\nconst getHeaderCellWidth = (columns, cell) =>\r\n columns\r\n .slice(cell.start, cell.end + 1)\r\n .reduce((sum, column) => sum + getColumnWidth(column), 0);\r\n\r\nconst renderSortIcon = (sortKey, sortState) => {\r\n const idleColor = DerivedColor.color_text_inverse;\r\n const activeColor = DerivedColor.color_text_inverse;\r\n\r\n if (!sortState || sortState.key !== sortKey) {\r\n return <IconArrowsUpDown size={16} color={idleColor} />;\r\n }\r\n\r\n return sortState.direction === \"asc\" ? (\r\n <IconArrowUp size={16} color={activeColor} />\r\n ) : (\r\n <IconArrowDown size={16} color={activeColor} />\r\n );\r\n};\r\n\r\nconst getSortField = (column) =>\r\n column.sortField ?? column.accessorKey ?? column.key ?? column.id;\r\n\r\nexport const BaseDatatable = ({\r\n columns = EMPTY_ARRAY,\r\n data = EMPTY_ARRAY,\r\n header,\r\n features = EMPTY_OBJECT,\r\n layout = EMPTY_OBJECT,\r\n selection = EMPTY_OBJECT,\r\n pagination = EMPTY_OBJECT,\r\n renderRow,\r\n onRowClick,\r\n getRowId,\r\n emptyState = \"Tidak ada data\",\r\n loading = false,\r\n loadingText = \"Memuat data...\",\r\n rowHover = true,\r\n activeRowId = null,\r\n containerSx = EMPTY_OBJECT,\r\n tableSx = EMPTY_OBJECT,\r\n}) => {\r\n const featureConfig = useMemo(\r\n () => ({\r\n sorting: false,\r\n sortingMode: \"client\",\r\n defaultSort: null,\r\n sortState: undefined,\r\n resetPageOnSort: true,\r\n onSortChange: undefined,\r\n headerInteractive: undefined,\r\n ...features,\r\n }),\r\n [features],\r\n );\r\n\r\n const layoutConfig = useMemo(\r\n () => ({\r\n stickyHeader: true,\r\n stickyOffset: 0,\r\n freezeLeft: 0,\r\n freezeRight: 0,\r\n maxHeight: 600,\r\n ...layout,\r\n }),\r\n [layout],\r\n );\r\n\r\n const selectionConfig = useMemo(\r\n () => ({\r\n enabled: false,\r\n position: \"left\",\r\n selectRowOnClick: true,\r\n defaultSelectedRowIds: EMPTY_ARRAY,\r\n ...selection,\r\n }),\r\n [selection],\r\n );\r\n\r\n const paginationConfig = useMemo(\r\n () => ({\r\n enabled: false,\r\n serverSide: false,\r\n variant: \"default\",\r\n showTotalCount: false,\r\n rowsPerPage: 5,\r\n rowsPerPageOptions: [5, 10, 25],\r\n labelRowsPerPage: undefined,\r\n ...pagination,\r\n }),\r\n [pagination],\r\n );\r\n\r\n const [internalSortState, setInternalSortState] = useState(\r\n featureConfig.defaultSort,\r\n );\r\n const [internalSelectedIds, setInternalSelectedIds] = useState(\r\n selectionConfig.defaultSelectedRowIds,\r\n );\r\n const [internalPage, setInternalPage] = useState(paginationConfig.page ?? 0);\r\n const [internalRowsPerPage, setInternalRowsPerPage] = useState(\r\n paginationConfig.rowsPerPage,\r\n );\r\n\r\n const controlledSelectedIds = selectionConfig.selectedRowIds;\r\n const onSelectionChange = selectionConfig.onChange;\r\n const isRowSelectable = selectionConfig.isRowSelectable;\r\n const selectionPosition = selectionConfig.position;\r\n const selectedIds = controlledSelectedIds ?? internalSelectedIds;\r\n const sortState = featureConfig.sortState ?? internalSortState;\r\n const currentPage = pagination.page ?? internalPage;\r\n const currentRowsPerPage = pagination.rowsPerPage ?? internalRowsPerPage;\r\n const isHeaderInteractive =\r\n typeof featureConfig.headerInteractive === \"boolean\"\r\n ? featureConfig.headerInteractive\r\n : featureConfig.sorting;\r\n\r\n const normalizedColumns = useMemo(\r\n () =>\r\n columns.map((column, index) =>\r\n normalizeColumn(column, index, featureConfig.sorting),\r\n ),\r\n [columns, featureConfig.sorting],\r\n );\r\n\r\n const selectionColumn = useMemo(\r\n () => ({\r\n id: \"__selection__\",\r\n key: \"__selection__\",\r\n header: \"\",\r\n width: SELECTION_COLUMN_WIDTH,\r\n minWidth: SELECTION_COLUMN_WIDTH,\r\n align: \"center\",\r\n headerAlign: \"center\",\r\n sortable: false,\r\n isSelection: true,\r\n sticky: selectionPosition === \"left\" ? \"left\" : \"right\",\r\n }),\r\n [selectionPosition],\r\n );\r\n\r\n const stickyLeftCount =\r\n layoutConfig.freezeLeft + (selectionConfig.enabled && selectionPosition === \"left\" ? 1 : 0);\r\n const stickyRightCount =\r\n layoutConfig.freezeRight +\r\n (selectionConfig.enabled && selectionPosition === \"right\" ? 1 : 0);\r\n\r\n const visibleColumns = useMemo(() => {\r\n if (!selectionConfig.enabled) return normalizedColumns;\r\n\r\n return selectionPosition === \"right\"\r\n ? [...normalizedColumns, selectionColumn]\r\n : [selectionColumn, ...normalizedColumns];\r\n }, [normalizedColumns, selectionColumn, selectionConfig.enabled, selectionPosition]);\r\n\r\n const columnWidths = useMemo(\r\n () => visibleColumns.map((column) => getColumnWidth(column)),\r\n [visibleColumns],\r\n );\r\n\r\n const resolveRowId = useCallback(\r\n (row, rowIndex) => getRowId?.(row, rowIndex) ?? row?.id ?? rowIndex,\r\n [getRowId],\r\n );\r\n\r\n const selectableRowIds = useMemo(() => {\r\n if (!selectionConfig.enabled) return EMPTY_ARRAY;\r\n\r\n return data.reduce((acc, row, rowIndex) => {\r\n const isSelectable = isRowSelectable ? isRowSelectable(row, rowIndex) : true;\r\n\r\n if (isSelectable) {\r\n acc.push(resolveRowId(row, rowIndex));\r\n }\r\n\r\n return acc;\r\n }, []);\r\n }, [data, isRowSelectable, resolveRowId, selectionConfig.enabled]);\r\n\r\n const allSelected =\r\n selectableRowIds.length > 0 &&\r\n selectableRowIds.every((rowId) => selectedIds.includes(rowId));\r\n\r\n const isIndeterminate =\r\n selectableRowIds.some((rowId) => selectedIds.includes(rowId)) && !allSelected;\r\n\r\n const updateSelection = useCallback(\r\n (nextSelectedIds) => {\r\n if (controlledSelectedIds === undefined) {\r\n setInternalSelectedIds(nextSelectedIds);\r\n }\r\n\r\n onSelectionChange?.(nextSelectedIds);\r\n },\r\n [controlledSelectedIds, onSelectionChange],\r\n );\r\n\r\n const toggleAllRows = useCallback(() => {\r\n updateSelection(allSelected ? [] : selectableRowIds);\r\n }, [allSelected, selectableRowIds, updateSelection]);\r\n\r\n const toggleRow = useCallback(\r\n (rowId) => {\r\n const nextSelectedIds = selectedIds.includes(rowId)\r\n ? selectedIds.filter((id) => id !== rowId)\r\n : [...selectedIds, rowId];\r\n\r\n updateSelection(nextSelectedIds);\r\n },\r\n [selectedIds, updateSelection],\r\n );\r\n\r\n const headerRows = useMemo(\r\n () => normalizeHeaderRows(header, normalizedColumns),\r\n [header, normalizedColumns],\r\n );\r\n\r\n const headerLayout = useMemo(() => buildHeaderLayout(headerRows), [headerRows]);\r\n const headerDepth = headerLayout.length;\r\n\r\n const rowsForHeader = useMemo(() => {\r\n if (!selectionConfig.enabled) return headerLayout;\r\n\r\n const selectionIndex = selectionPosition === \"right\" ? visibleColumns.length - 1 : 0;\r\n\r\n const selectionHeaderCell = {\r\n id: selectionColumn.id,\r\n key: selectionColumn.key,\r\n label: (\r\n <Checkbox\r\n checked={allSelected}\r\n indeterminate={isIndeterminate}\r\n onChange={toggleAllRows}\r\n onClick={(event) => event.stopPropagation()}\r\n icon={<IconSquare size={22} color={DerivedColor.color_text_inverse} />}\r\n checkedIcon={<IconSquareCheckFilled size={22} color={DerivedColor.color_text_inverse} />}\r\n indeterminateIcon={<IconSquareMinusFilled size={22} color={DerivedColor.color_text_inverse} />}\r\n sx={{ color: DerivedColor.color_text_inverse }}\r\n />\r\n ),\r\n align: \"center\",\r\n rowSpan: headerDepth,\r\n colSpan: 1,\r\n start: selectionIndex,\r\n end: selectionIndex,\r\n sticky: selectionPosition,\r\n width: selectionColumn.width,\r\n minWidth: selectionColumn.minWidth,\r\n isSelection: true,\r\n };\r\n\r\n return headerLayout.map((row, rowIndex) => {\r\n const shiftedRow = row.map((cell) => ({\r\n ...cell,\r\n start: selectionPosition === \"left\" ? cell.start + 1 : cell.start,\r\n end: selectionPosition === \"left\" ? cell.end + 1 : cell.end,\r\n }));\r\n\r\n if (rowIndex !== 0) return shiftedRow;\r\n\r\n return selectionPosition === \"right\"\r\n ? [...shiftedRow, selectionHeaderCell]\r\n : [selectionHeaderCell, ...shiftedRow];\r\n });\r\n }, [\r\n allSelected,\r\n headerDepth,\r\n headerLayout,\r\n isIndeterminate,\r\n selectionColumn,\r\n selectionConfig.enabled,\r\n selectionPosition,\r\n toggleAllRows,\r\n visibleColumns.length,\r\n ]);\r\n\r\n const sortedData = useMemo(() => {\r\n if (!featureConfig.sorting || !sortState?.key) return data;\r\n if (featureConfig.sortingMode === \"server\") return data;\r\n\r\n const targetColumn = normalizedColumns.find((column) => column.id === sortState.key);\r\n if (!targetColumn) return data;\r\n\r\n return [...data].sort((rowA, rowB) => {\r\n const result = compareValue(\r\n getCellValue(rowA, targetColumn),\r\n getCellValue(rowB, targetColumn),\r\n );\r\n\r\n return sortState.direction === \"asc\" ? result : result * -1;\r\n });\r\n }, [\r\n data,\r\n featureConfig.sorting,\r\n featureConfig.sortingMode,\r\n normalizedColumns,\r\n sortState,\r\n ]);\r\n\r\n const totalRowCount = paginationConfig.serverSide\r\n ? paginationConfig.count ?? data.length\r\n : sortedData.length;\r\n\r\n const displayedData = useMemo(() => {\r\n if (!paginationConfig.enabled) return sortedData;\r\n if (paginationConfig.serverSide) return sortedData;\r\n\r\n const startIndex = currentPage * currentRowsPerPage;\r\n return sortedData.slice(startIndex, startIndex + currentRowsPerPage);\r\n }, [\r\n currentPage,\r\n currentRowsPerPage,\r\n paginationConfig.enabled,\r\n paginationConfig.serverSide,\r\n sortedData,\r\n ]);\r\n\r\n const handlePaginationPageChange = useCallback(\r\n (event, nextPage) => {\r\n if (pagination.page === undefined) {\r\n setInternalPage(nextPage);\r\n }\r\n\r\n paginationConfig.onPageChange?.(event, nextPage);\r\n },\r\n [pagination.page, paginationConfig],\r\n );\r\n\r\n const handleRowsPerPageChange = useCallback(\r\n (event) => {\r\n const nextRowsPerPage = Number(event.target.value);\r\n\r\n if (pagination.rowsPerPage === undefined) {\r\n setInternalRowsPerPage(nextRowsPerPage);\r\n }\r\n\r\n if (pagination.page === undefined) {\r\n setInternalPage(0);\r\n }\r\n\r\n paginationConfig.onRowsPerPageChange?.(event, nextRowsPerPage);\r\n },\r\n [pagination.page, pagination.rowsPerPage, paginationConfig],\r\n );\r\n\r\n const handleSort = useCallback(\r\n (cell) => {\r\n if (!featureConfig.sorting) return;\r\n if ((cell.colSpan ?? 1) > 1 || (cell.rowSpan ?? 1) > 1) return;\r\n\r\n const sortKey = cell.sortKey ?? cell.key ?? cell.id;\r\n const targetColumn = normalizedColumns.find((column) => column.id === sortKey);\r\n\r\n if (!targetColumn?.sortable) return;\r\n\r\n const nextSort =\r\n sortState?.key === targetColumn.id\r\n ? {\r\n key: targetColumn.id,\r\n direction: sortState.direction === \"asc\" ? \"desc\" : \"asc\",\r\n }\r\n : {\r\n key: targetColumn.id,\r\n direction: \"asc\",\r\n };\r\n\r\n const nextPage =\r\n paginationConfig.enabled && featureConfig.resetPageOnSort ? 0 : currentPage;\r\n\r\n if (featureConfig.sortState === undefined) {\r\n setInternalSortState(nextSort);\r\n }\r\n\r\n if (paginationConfig.enabled && featureConfig.resetPageOnSort) {\r\n if (pagination.page === undefined) {\r\n setInternalPage(0);\r\n }\r\n\r\n if (currentPage !== 0) {\r\n paginationConfig.onPageChange?.(null, 0);\r\n }\r\n }\r\n\r\n featureConfig.onSortChange?.(\r\n {\r\n orderBy: getSortField(targetColumn),\r\n order: nextSort.direction,\r\n page: nextPage,\r\n rowsPerPage: currentRowsPerPage,\r\n },\r\n targetColumn,\r\n cell,\r\n );\r\n },\r\n [\r\n currentPage,\r\n currentRowsPerPage,\r\n featureConfig,\r\n normalizedColumns,\r\n pagination.page,\r\n paginationConfig,\r\n sortState,\r\n ],\r\n );\r\n\r\n const renderBodyCell = useCallback(\r\n (\r\n column,\r\n row,\r\n rowIndex,\r\n columnIndex,\r\n rowId,\r\n rowActive,\r\n cellOverrides = EMPTY_OBJECT,\r\n ) => {\r\n const resolvedColumn =\r\n column.isSelection || column.id === selectionColumn.id\r\n ? selectionColumn\r\n : visibleColumns.find((item) => item.id === column.id) ?? column;\r\n\r\n if (resolvedColumn.isSelection) {\r\n const isSelectable = isRowSelectable ? isRowSelectable(row, rowIndex) : true;\r\n\r\n return (\r\n <TableCell\r\n key={`${rowId}-${resolvedColumn.id}-${columnIndex}`}\r\n align=\"center\"\r\n rowSpan={cellOverrides.rowSpan}\r\n colSpan={cellOverrides.colSpan}\r\n sx={{\r\n minWidth: resolvedColumn.width,\r\n width: resolvedColumn.width,\r\n maxWidth: resolvedColumn.width,\r\n backgroundColor: rowActive ? COLORS.rowHoverBg : COLORS.bodyBg,\r\n borderBottom: `1px solid ${COLORS.bodyBorder}`,\r\n borderRight: `1px solid ${COLORS.bodyBorder}`,\r\n position: \"sticky\",\r\n left:\r\n selectionPosition === \"left\"\r\n ? getStickyLeft(columnWidths, columnIndex)\r\n : \"auto\",\r\n right:\r\n selectionPosition === \"right\"\r\n ? getStickyRight(columnWidths, columnIndex)\r\n : \"auto\",\r\n zIndex: 3,\r\n boxShadow:\r\n selectionPosition === \"left\" &&\r\n columnIndex === stickyLeftCount - 1\r\n ? `2px 0 6px ${COLORS.stickyShadow}`\r\n : selectionPosition === \"right\" &&\r\n columnIndex === visibleColumns.length - stickyRightCount\r\n ? `-2px 0 6px ${COLORS.stickyShadow}`\r\n : \"none\",\r\n ...cellOverrides.sx,\r\n }}\r\n >\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n width: \"100%\",\r\n height: \"100%\",\r\n }}\r\n onClick={(event) => event.stopPropagation()}\r\n >\r\n <Checkbox\r\n checked={selectedIds.includes(rowId)}\r\n disabled={!isSelectable}\r\n onChange={() => toggleRow(rowId)}\r\n onClick={(event) => event.stopPropagation()}\r\n icon={<IconSquare size={22} color={DerivedColor.color_border_default} />}\r\n checkedIcon={<IconSquareCheckFilled size={22} color={DerivedColor.color_bg_brand_primary} />}\r\n />\r\n </Box>\r\n </TableCell>\r\n );\r\n }\r\n\r\n const value = getCellValue(row, resolvedColumn);\r\n const shouldStickLeft =\r\n resolvedColumn.sticky === \"left\" || columnIndex < stickyLeftCount;\r\n const shouldStickRight =\r\n resolvedColumn.sticky === \"right\" ||\r\n columnIndex >= visibleColumns.length - stickyRightCount;\r\n\r\n return (\r\n <TableCell\r\n key={`${rowId}-${resolvedColumn.id}-${columnIndex}`}\r\n align={resolvedColumn.align ?? \"left\"}\r\n rowSpan={cellOverrides.rowSpan}\r\n colSpan={cellOverrides.colSpan}\r\n sx={{\r\n minWidth: getColumnWidth(resolvedColumn),\r\n width: getColumnWidth(resolvedColumn),\r\n maxWidth: getColumnWidth(resolvedColumn),\r\n backgroundColor:\r\n resolvedColumn.cellBg ?? (rowActive ? COLORS.rowHoverBg : COLORS.bodyBg),\r\n color: resolvedColumn.cellText ?? COLORS.bodyText,\r\n borderBottom: `1px solid ${COLORS.bodyBorder}`,\r\n borderRight: `1px solid ${COLORS.bodyBorder}`,\r\n whiteSpace: resolvedColumn.noWrap ? \"nowrap\" : \"normal\",\r\n boxSizing: \"border-box\",\r\n position: shouldStickLeft || shouldStickRight ? \"sticky\" : \"static\",\r\n left: shouldStickLeft ? getStickyLeft(columnWidths, columnIndex) : \"auto\",\r\n right: shouldStickRight ? getStickyRight(columnWidths, columnIndex) : \"auto\",\r\n zIndex: shouldStickLeft || shouldStickRight ? 2 : 1,\r\n boxShadow:\r\n shouldStickLeft && columnIndex === stickyLeftCount - 1\r\n ? `2px 0 6px ${COLORS.stickyShadow}`\r\n : shouldStickRight &&\r\n columnIndex === visibleColumns.length - stickyRightCount\r\n ? `-2px 0 6px ${COLORS.stickyShadow}`\r\n : \"none\",\r\n ...resolvedColumn.cellSx,\r\n ...cellOverrides.sx,\r\n }}\r\n >\r\n {cellOverrides.content ??\r\n (typeof resolvedColumn.renderCell === \"function\"\r\n ? resolvedColumn.renderCell({\r\n value,\r\n row,\r\n rowIndex,\r\n column: resolvedColumn,\r\n columnIndex,\r\n checked: selectedIds.includes(rowId),\r\n })\r\n : (value ?? \"-\"))}\r\n </TableCell>\r\n );\r\n },\r\n [\r\n columnWidths,\r\n isRowSelectable,\r\n selectedIds,\r\n selectionColumn,\r\n selectionPosition,\r\n stickyLeftCount,\r\n stickyRightCount,\r\n toggleRow,\r\n visibleColumns,\r\n ],\r\n );\r\n\r\n return (\r\n <Paper\r\n sx={{\r\n width: \"100%\",\r\n border: `1px solid ${COLORS.bodyBorder}`,\r\n borderRadius: 2,\r\n boxShadow: \"none\",\r\n }}\r\n >\r\n <TableContainer\r\n sx={{\r\n width: \"100%\",\r\n maxHeight: layoutConfig.maxHeight,\r\n overflow: \"auto\",\r\n ...containerSx,\r\n }}\r\n >\r\n <Table\r\n stickyHeader={false}\r\n sx={{\r\n width: \"100%\",\r\n borderCollapse: \"separate\",\r\n borderSpacing: 0,\r\n tableLayout: \"fixed\",\r\n minWidth: \"max-content\",\r\n ...tableSx,\r\n }}\r\n >\r\n <TableHead>\r\n {rowsForHeader.map((row, rowIndex) => (\r\n <TableRow key={`header-${rowIndex}`}>\r\n {row.map((cell) => {\r\n const sortKey = cell.sortKey ?? cell.key ?? cell.id;\r\n const targetColumn = normalizedColumns.find((column) => column.id === sortKey);\r\n const isSortable =\r\n featureConfig.sorting &&\r\n (cell.colSpan ?? 1) === 1 &&\r\n (cell.rowSpan ?? 1) === 1 &&\r\n targetColumn?.sortable;\r\n const shouldStickLeft =\r\n cell.sticky === \"left\" || cell.end < stickyLeftCount;\r\n const shouldStickRight =\r\n cell.sticky === \"right\" ||\r\n cell.start >= visibleColumns.length - stickyRightCount;\r\n const headerCellWidth = getHeaderCellWidth(visibleColumns, cell);\r\n\r\n return (\r\n <TableCell\r\n key={`${cell.id}-${rowIndex}-${cell.start}`}\r\n align={cell.align ?? \"center\"}\r\n rowSpan={cell.rowSpan}\r\n colSpan={cell.colSpan}\r\n onClick={() => {\r\n if (cell.isSelection) return;\r\n handleSort(cell);\r\n }}\r\n sx={{\r\n minWidth: cell.minWidth ?? headerCellWidth,\r\n width: cell.width ?? headerCellWidth,\r\n maxWidth: cell.width ?? headerCellWidth,\r\n height: HEADER_ROW_HEIGHT * (cell.rowSpan ?? 1),\r\n boxSizing: \"border-box\",\r\n backgroundColor: COLORS.headerBg,\r\n color: COLORS.headerText,\r\n fontWeight: 600,\r\n borderBottom: `1px solid ${COLORS.headerBorder}`,\r\n borderRight: `1px solid ${COLORS.headerBorder}`,\r\n position:\r\n layoutConfig.stickyHeader || shouldStickLeft || shouldStickRight\r\n ? \"sticky\"\r\n : \"static\",\r\n top: layoutConfig.stickyHeader\r\n ? layoutConfig.stickyOffset + rowIndex * HEADER_ROW_HEIGHT\r\n : \"auto\",\r\n left: shouldStickLeft ? getStickyLeft(columnWidths, cell.start) : \"auto\",\r\n right: shouldStickRight ? getStickyRight(columnWidths, cell.end) : \"auto\",\r\n zIndex:\r\n layoutConfig.stickyHeader && (shouldStickLeft || shouldStickRight)\r\n ? 40 - rowIndex\r\n : layoutConfig.stickyHeader\r\n ? 20 - rowIndex\r\n : shouldStickLeft || shouldStickRight\r\n ? 4\r\n : 1,\r\n cursor: isHeaderInteractive && isSortable ? \"pointer\" : \"default\",\r\n boxShadow:\r\n shouldStickLeft && cell.end === stickyLeftCount - 1\r\n ? `2px 0 6px ${COLORS.stickyShadow}`\r\n : shouldStickRight &&\r\n cell.start === visibleColumns.length - stickyRightCount\r\n ? `-2px 0 6px ${COLORS.stickyShadow}`\r\n : \"none\",\r\n // Border radius for first row corners\r\n ...(rowIndex === 0 && cell.start === 0 && { borderTopLeftRadius: 8 }),\r\n ...(rowIndex === 0 && cell.end === visibleColumns.length - 1 && { borderTopRightRadius: 8 }),\r\n \"&:hover\":\r\n isHeaderInteractive && isSortable\r\n ? {\r\n backgroundColor: COLORS.headerHoverBg,\r\n color: COLORS.headerHoverText,\r\n }\r\n : undefined,\r\n }}\r\n >\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent:\r\n cell.align === \"left\"\r\n ? \"flex-start\"\r\n : cell.align === \"right\"\r\n ? \"flex-end\"\r\n : \"center\",\r\n gap: \"6px\",\r\n }}\r\n >\r\n {cell.label}\r\n {isSortable && renderSortIcon(sortKey, sortState)}\r\n </Box>\r\n </TableCell>\r\n );\r\n })}\r\n </TableRow>\r\n ))}\r\n </TableHead>\r\n\r\n <TableBody>\r\n {loading ? (\r\n <TableRow>\r\n <TableCell align=\"center\" colSpan={visibleColumns.length}>\r\n <Box\r\n sx={{\r\n minHeight: 120,\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n gap: 1.5,\r\n color: COLORS.bodyText,\r\n }}\r\n >\r\n <CircularProgress size={20} />\r\n <span>{loadingText}</span>\r\n </Box>\r\n </TableCell>\r\n </TableRow>\r\n ) : displayedData.length === 0 ? (\r\n <TableRow>\r\n <TableCell align=\"center\" colSpan={visibleColumns.length}>\r\n {emptyState}\r\n </TableCell>\r\n </TableRow>\r\n ) : (\r\n displayedData.map((row, rowIndex) => {\r\n const rowId = resolveRowId(row, rowIndex);\r\n const rowActive = rowId === activeRowId;\r\n\r\n if (typeof renderRow === \"function\") {\r\n return renderRow({\r\n row,\r\n rowIndex,\r\n rowId,\r\n rowActive,\r\n columns: visibleColumns,\r\n dataColumns: normalizedColumns,\r\n selectedRowIds: selectedIds,\r\n renderCell: renderBodyCell,\r\n });\r\n }\r\n\r\n return (\r\n <TableRow\r\n key={rowId}\r\n hover={rowHover}\r\n onClick={(event) => {\r\n // Skip selection if click originated from interactive element (button, a, input, etc.)\r\n const target = event.target;\r\n const interactive = target.closest(\"button, a, input, [role='button'], .MuiCheckbox-root, .MuiIconButton-root\");\r\n if (interactive) return;\r\n\r\n if (selectionConfig.enabled && selectionConfig.selectRowOnClick) {\r\n const isSelectable = selectionConfig.isRowSelectable\r\n ? selectionConfig.isRowSelectable(row, rowIndex)\r\n : true;\r\n\r\n if (isSelectable) {\r\n toggleRow(rowId);\r\n }\r\n }\r\n\r\n onRowClick?.(row, rowIndex);\r\n }}\r\n sx={{\r\n cursor:\r\n onRowClick ||\r\n (selectionConfig.enabled && selectionConfig.selectRowOnClick)\r\n ? \"pointer\"\r\n : \"default\",\r\n \"&:hover td\": rowHover\r\n ? {\r\n backgroundColor: `${COLORS.rowHoverBg} !important`,\r\n }\r\n : undefined,\r\n }}\r\n >\r\n {visibleColumns.map((column, columnIndex) =>\r\n renderBodyCell(\r\n column,\r\n row,\r\n rowIndex,\r\n columnIndex,\r\n rowId,\r\n rowActive,\r\n ),\r\n )}\r\n </TableRow>\r\n );\r\n })\r\n )}\r\n </TableBody>\r\n </Table>\r\n </TableContainer>\r\n {paginationConfig.enabled && (\r\n <DatatablePagination\r\n variant={paginationConfig.variant}\r\n showTotalCount={paginationConfig.showTotalCount}\r\n page={currentPage}\r\n rowsPerPage={currentRowsPerPage}\r\n count={totalRowCount}\r\n onPageChange={handlePaginationPageChange}\r\n onRowsPerPageChange={handleRowsPerPageChange}\r\n rowsPerPageOptions={paginationConfig.rowsPerPageOptions}\r\n labelRowsPerPage={paginationConfig.labelRowsPerPage}\r\n serverSide={paginationConfig.serverSide}\r\n currentPageDataLength={displayedData.length}\r\n />\r\n )}\r\n </Paper>\r\n );\r\n};\r\n\r\nBaseDatatable.propTypes = {\r\n columns: PropTypes.array,\r\n data: PropTypes.array,\r\n header: PropTypes.array,\r\n features: PropTypes.object,\r\n layout: PropTypes.object,\r\n pagination: PropTypes.object,\r\n selection: PropTypes.object,\r\n renderRow: PropTypes.func,\r\n onRowClick: PropTypes.func,\r\n getRowId: PropTypes.func,\r\n emptyState: PropTypes.node,\r\n loading: PropTypes.bool,\r\n loadingText: PropTypes.node,\r\n rowHover: PropTypes.bool,\r\n activeRowId: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n containerSx: PropTypes.object,\r\n tableSx: PropTypes.object,\r\n};\r\n\r\nexport default React.memo(BaseDatatable);\r\n","\"use client\";\r\nimport { useState, useRef, useMemo, useEffect } from \"react\";\r\nimport { useController } from \"react-hook-form\";\r\nimport dayjs from \"dayjs\";\r\nimport TextFieldRaw from \"@mui/material/TextField\";\r\nimport BoxRaw from \"@mui/material/Box\";\r\nimport PopoverRaw from \"@mui/material/Popover\";\r\nimport InputAdornmentRaw from \"@mui/material/InputAdornment\";\r\nimport IconButtonRaw from \"@mui/material/IconButton\";\r\nimport TypographyRaw from \"@mui/material/Typography\";\r\nimport { DatePicker as DatePickerRaw } from \"@mui/x-date-pickers/DatePicker\";\r\nimport { DateTimePicker as DateTimePickerRaw } from \"@mui/x-date-pickers/DateTimePicker\";\r\nimport { TimePicker as TimePickerRaw } from \"@mui/x-date-pickers/TimePicker\";\r\nimport { DateRange } from \"react-date-range\";\r\nimport CloseIcon from \"@mui/icons-material/Close\";\r\nimport { IconCalendarWeekFilled, IconAlertCircleFilled } from \"@tabler/icons-react\";\r\nimport { id } from \"date-fns/locale\";\r\nimport \"react-date-range/dist/styles.css\";\r\nimport \"react-date-range/dist/theme/default.css\";\r\nimport { DerivedColor } from \"@/components/atoms/colors/derived\";\r\nimport { PrimitiveColor } from \"@/components/atoms/colors/primitive\";\r\nimport { Radius } from \"@/components/atoms/radius/radius\";\r\nimport { SpacingToken } from \"@/components/atoms/spacing_layout/spacing\";\r\n\r\nconst TextField = TextFieldRaw?.default ?? TextFieldRaw;\r\nconst Box = BoxRaw?.default ?? BoxRaw;\r\nconst Popover = PopoverRaw?.default ?? PopoverRaw;\r\nconst InputAdornment = InputAdornmentRaw?.default ?? InputAdornmentRaw;\r\nconst IconButton = IconButtonRaw?.default ?? IconButtonRaw;\r\nconst Typography = TypographyRaw?.default ?? TypographyRaw;\r\nconst DatePicker = DatePickerRaw?.default ?? DatePickerRaw;\r\nconst DateTimePicker = DateTimePickerRaw?.default ?? DateTimePickerRaw;\r\nconst TimePicker = TimePickerRaw?.default ?? TimePickerRaw;\r\n\r\nexport const BaseDatePicker = ({\r\n type = \"single\",\r\n name,\r\n control,\r\n defaultValue,\r\n title,\r\n subtitle,\r\n placeholder,\r\n minDate,\r\n maxDate,\r\n isDisabled = false,\r\n clearable = false,\r\n editableDateInputs = false,\r\n format = \"DD/MM/YYYY\",\r\n openBy = \"field\",\r\n sx = {},\r\n onChange: onChangeCustom = () => {},\r\n ...props\r\n}) => {\r\n const { field, formState } = useController({\r\n name,\r\n control,\r\n defaultValue,\r\n });\r\n\r\n const errorMessage = formState.errors?.[name]?.message?.toString();\r\n const [open, setOpen] = useState(false);\r\n const inputRef = useRef(null);\r\n\r\n /* ================= RANGE ================= */\r\n const [rangeValue, setRangeValue] = useState(\r\n field.value ?? { startDate: null, endDate: null },\r\n );\r\n\r\n useEffect(() => {\r\n if (type === \"range\" && field.value) {\r\n setRangeValue(field.value);\r\n }\r\n }, [field.value, type]);\r\n\r\n const handleClear = (e) => {\r\n e?.stopPropagation();\r\n\r\n if (type === \"range\") {\r\n const empty = { startDate: null, endDate: null };\r\n setRangeValue(empty);\r\n field.onChange(empty);\r\n onChangeCustom(empty);\r\n } else {\r\n field.onChange(null);\r\n onChangeCustom(null);\r\n }\r\n };\r\n\r\n /* ================= PICKER CONFIG ================= */\r\n const pickerConfig = useMemo(() => {\r\n switch (type) {\r\n case \"day\":\r\n return {\r\n views: [\"day\"],\r\n openTo: \"day\",\r\n inputFormat: \"DD\",\r\n };\r\n\r\n case \"month\":\r\n return {\r\n views: [\"month\"],\r\n openTo: \"month\",\r\n inputFormat: \"MMMM\",\r\n };\r\n\r\n case \"year\":\r\n return {\r\n views: [\"year\"],\r\n openTo: \"year\",\r\n inputFormat: \"YYYY\",\r\n };\r\n\r\n case \"datetime\":\r\n return {\r\n component: DateTimePicker,\r\n views: [\"year\", \"month\", \"day\", \"hours\", \"minutes\"],\r\n openTo: \"day\",\r\n inputFormat: \"DD/MM/YYYY HH:mm\",\r\n };\r\n\r\n case \"time\":\r\n return {\r\n component: TimePicker,\r\n views: [\"hours\", \"minutes\", \"seconds\"],\r\n openTo: \"hours\",\r\n inputFormat: \"HH:mm:ss\",\r\n };\r\n\r\n default:\r\n return {\r\n views: [\"year\", \"month\", \"day\"],\r\n openTo: \"day\",\r\n inputFormat: format,\r\n };\r\n }\r\n }, [type, format]);\r\n\r\n /* ================= LABEL SECTION ================= */\r\n const LabelSection = () => {\r\n if (!title && !subtitle) return null;\r\n return (\r\n <Box sx={{ display: \"flex\", gap: SpacingToken.spacing2, mb: \"4px\" }}>\r\n {title && (\r\n <Typography variant=\"body2\" sx={{ fontWeight: 600, color: !!formState.errors?.[name] ? DerivedColor.color_text_danger : DerivedColor.color_text_default }}>\r\n {title}\r\n </Typography>\r\n )}\r\n {subtitle && (\r\n <Typography variant=\"body2\" sx={{ color: DerivedColor.color_text_subtle }}>\r\n {subtitle}\r\n </Typography>\r\n )}\r\n </Box>\r\n );\r\n };\r\n\r\n /* ================= RANGE RENDER ================= */\r\n if (type === \"range\") {\r\n return (\r\n <Box sx={sx}>\r\n <LabelSection />\r\n\r\n <TextField\r\n inputRef={inputRef}\r\n fullWidth\r\n size=\"small\"\r\n placeholder={placeholder || \"DD/MM/YYYY - DD/MM/YYYY\"}\r\n error={!!errorMessage}\r\n helperText={errorMessage}\r\n value={\r\n rangeValue.startDate && rangeValue.endDate\r\n ? `${dayjs(rangeValue.startDate).format(format)} - ${dayjs(\r\n rangeValue.endDate,\r\n ).format(format)}`\r\n : \"\"\r\n }\r\n onClick={() => !isDisabled && (openBy === \"field\" || openBy === \"both\") && setOpen(true)}\r\n disabled={isDisabled}\r\n sx={{\r\n \"& .MuiOutlinedInput-root\": {\r\n borderRadius: Radius.radius_2,\r\n fontSize: 14,\r\n backgroundColor: isDisabled\r\n ? PrimitiveColor.color_neutral_200\r\n : DerivedColor.color_bg_surface,\r\n borderColor: isDisabled\r\n ? PrimitiveColor.color_neutral_200\r\n : DerivedColor.color_border_default,\r\n cursor: (openBy === \"field\" || openBy === \"both\") ? \"pointer\" : \"default\",\r\n\r\n \"& fieldset\": {\r\n borderColor: errorMessage\r\n ? DerivedColor.color_border_danger\r\n : DerivedColor.color_border_default,\r\n },\r\n\r\n \"&:hover fieldset\": {\r\n borderColor: errorMessage\r\n ? DerivedColor.color_border_danger\r\n : DerivedColor.color_border_brand_primary,\r\n },\r\n\r\n \"&.Mui-focused fieldset\": {\r\n borderColor: errorMessage\r\n ? DerivedColor.color_border_danger\r\n : DerivedColor.color_border_brand_primary,\r\n borderWidth: 2,\r\n },\r\n },\r\n \"& .MuiInputBase-input\": {\r\n fontSize: 14,\r\n \"&::placeholder\": {\r\n fontSize: 14,\r\n },\r\n },\r\n \"& .MuiFormHelperText-root\": {\r\n marginLeft: 0,\r\n fontSize: 14,\r\n letterSpacing: 0,\r\n },\r\n }}\r\n InputProps={{\r\n readOnly: true,\r\n endAdornment: (\r\n <InputAdornment position=\"end\">\r\n {!!errorMessage && (\r\n <IconAlertCircleFilled size={18} color={PrimitiveColor.color_red_500} />\r\n )}\r\n <IconButton\r\n size=\"small\"\r\n onClick={(e) => {\r\n e.stopPropagation();\r\n if (!isDisabled && (openBy === \"icon\" || openBy === \"both\")) setOpen(true);\r\n }}\r\n disabled={isDisabled}\r\n sx={{ p: \"4px\" }}\r\n >\r\n <IconCalendarWeekFilled size={20} color={DerivedColor.color_icon_brand_primary} />\r\n </IconButton>\r\n </InputAdornment>\r\n ),\r\n }}\r\n />\r\n\r\n <Popover\r\n open={open}\r\n anchorEl={inputRef.current}\r\n onClose={() => setOpen(false)}\r\n >\r\n <DateRange\r\n locale={id}\r\n editableDateInputs={editableDateInputs}\r\n ranges={[\r\n {\r\n ...rangeValue,\r\n key: \"selection\",\r\n },\r\n ]}\r\n onChange={(item) => {\r\n setRangeValue(item.selection);\r\n field.onChange(item.selection);\r\n onChangeCustom(item.selection);\r\n }}\r\n minDate={minDate}\r\n maxDate={maxDate}\r\n {...props}\r\n />\r\n </Popover>\r\n </Box>\r\n );\r\n }\r\n\r\n /* ================= NORMAL PICKERS ================= */\r\n const PickerComponent = pickerConfig.component ?? DatePicker;\r\n\r\n return (\r\n <Box sx={sx}>\r\n <LabelSection />\r\n\r\n <PickerComponent\r\n {...field}\r\n value={field.value ?? null}\r\n open={open}\r\n onOpen={() => {\r\n if (!isDisabled && (openBy === \"icon\" || openBy === \"both\")) setOpen(true);\r\n }}\r\n onClose={() => setOpen(false)}\r\n views={pickerConfig.views}\r\n openTo={pickerConfig.openTo}\r\n inputFormat={pickerConfig.inputFormat}\r\n disableMaskedInput\r\n minDate={minDate ? dayjs(minDate) : undefined}\r\n maxDate={maxDate ? dayjs(maxDate) : undefined}\r\n disabled={isDisabled}\r\n disableOpenPicker={openBy === \"field\"}\r\n components={{\r\n OpenPickerIcon: () => (\r\n <IconCalendarWeekFilled size={20} color={DerivedColor.color_icon_brand_primary} />\r\n ),\r\n }}\r\n onChange={(newValue) => {\r\n field.onChange(newValue);\r\n onChangeCustom(newValue);\r\n }}\r\n renderInput={(params) => (\r\n <TextField\r\n {...params}\r\n size=\"small\"\r\n fullWidth\r\n placeholder={placeholder}\r\n error={!!errorMessage}\r\n helperText={errorMessage}\r\n onClick={() => {\r\n if (!isDisabled && (openBy === \"field\" || openBy === \"both\")) setOpen(true);\r\n }}\r\n sx={{\r\n \"& .MuiOutlinedInput-root\": {\r\n borderRadius: Radius.radius_2,\r\n fontSize: 14,\r\n backgroundColor: isDisabled\r\n ? PrimitiveColor.color_neutral_200\r\n : DerivedColor.color_bg_surface,\r\n cursor: (openBy === \"field\" || openBy === \"both\") ? \"pointer\" : \"default\",\r\n\r\n \"& fieldset\": {\r\n borderColor: errorMessage\r\n ? DerivedColor.color_border_danger\r\n : DerivedColor.color_border_default,\r\n },\r\n\r\n \"&:hover fieldset\": {\r\n borderColor: errorMessage\r\n ? DerivedColor.color_border_danger\r\n : DerivedColor.color_border_brand_primary,\r\n },\r\n\r\n \"&.Mui-focused fieldset\": {\r\n borderColor: errorMessage\r\n ? DerivedColor.color_border_danger\r\n : DerivedColor.color_border_brand_primary,\r\n borderWidth: 2,\r\n },\r\n },\r\n\r\n \"& .MuiInputBase-input\": {\r\n padding: `${SpacingToken.spacing2} ${SpacingToken.spacing3}`,\r\n fontSize: 14,\r\n \"&::placeholder\": {\r\n fontSize: 14,\r\n },\r\n },\r\n\r\n \"& .MuiFormHelperText-root\": {\r\n marginLeft: 0,\r\n fontSize: 14,\r\n letterSpacing: 0,\r\n },\r\n }}\r\n InputProps={{\r\n ...params.InputProps,\r\n endAdornment: (\r\n <>\r\n {!!errorMessage && (\r\n <InputAdornment position=\"end\">\r\n <IconAlertCircleFilled size={18} color={DerivedColor.color_icon_danger} />\r\n </InputAdornment>\r\n )}\r\n {clearable && field.value && (\r\n <InputAdornment position=\"end\">\r\n <IconButton\r\n size=\"small\"\r\n onClick={handleClear}\r\n sx={{ color: DerivedColor.color_icon_subtle }}\r\n >\r\n <CloseIcon fontSize=\"small\" />\r\n </IconButton>\r\n </InputAdornment>\r\n )}\r\n {params.InputProps?.endAdornment}\r\n </>\r\n ),\r\n }}\r\n />\r\n )}\r\n />\r\n </Box>\r\n );\r\n};\r\n","\"use client\";\r\nimport Select, { components } from \"react-select\";\r\nimport AsyncSelect from \"react-select/async\";\r\nimport { useController } from \"react-hook-form\";\r\nimport { ErrorMessage } from \"@hookform/error-message\";\r\nimport BoxRaw from \"@mui/material/Box\";\r\nimport ChipRaw from \"@mui/material/Chip\";\r\nimport TypographyRaw from \"@mui/material/Typography\";\r\n\r\nimport { PrimitiveColor } from \"@/components/atoms/colors/primitive\";\r\nimport { DerivedColor } from \"@/components/atoms/colors/derived\";\r\nimport { Radius } from \"@/components/atoms/radius/radius\";\r\nimport { SpacingToken } from \"@/components/atoms/spacing_layout/spacing\";\r\nimport { BaseCheckbox } from \"@/components/molecules/checkbox/checkbox\";\r\n\r\nconst Box = BoxRaw?.default ?? BoxRaw;\r\nconst Chip = ChipRaw?.default ?? ChipRaw;\r\nconst Typography = TypographyRaw?.default ?? TypographyRaw;\r\n\r\n/* ================= CHECKBOX OPTION ================= */\r\nconst CheckboxOption = (props) => {\r\n const { isSelected, label, selectOption, data } = props;\r\n\r\n const handleChange = () => {\r\n selectOption(data);\r\n };\r\n\r\n return (\r\n <components.Option {...props}>\r\n <BaseCheckbox\r\n checked={isSelected}\r\n onChange={handleChange}\r\n label={label}\r\n disabled={data?.disabled}\r\n />\r\n </components.Option>\r\n );\r\n};\r\n\r\nexport const BaseDropdown = ({\r\n name = \"\",\r\n control,\r\n options = [],\r\n loadOptions,\r\n isMulti = false,\r\n isSearchable = true,\r\n showChip = false,\r\n showSelectAll = false,\r\n title,\r\n subtitle,\r\n defaultValue,\r\n isDisabled,\r\n isClearable = true,\r\n preventOverflow = false,\r\n optionColors = [\r\n PrimitiveColor.color_blue_cakrawala_100,\r\n PrimitiveColor.color_yellow_100,\r\n PrimitiveColor.color_green_100,\r\n PrimitiveColor.color_red_100,\r\n PrimitiveColor.color_blue_mentari_100,\r\n ],\r\n variant = \"select\",\r\n sx = {},\r\n ...props\r\n}) => {\r\n const { field, formState } = useController({\r\n name,\r\n control,\r\n defaultValue:\r\n defaultValue ?? (variant === \"checkbox\" || isMulti ? [] : null),\r\n });\r\n\r\n const SelectComponent = loadOptions ? AsyncSelect : Select;\r\n const hasError = !!formState.errors?.[name];\r\n\r\n const selectedValues = Array.isArray(field.value)\r\n ? field.value\r\n : field.value\r\n ? [field.value]\r\n : [];\r\n\r\n const isCheckboxMode = variant === \"checkbox\";\r\n\r\n /* ================= SELECT ALL ================= */\r\n const selectAllChecked =\r\n showSelectAll &&\r\n selectedValues.length === options.length &&\r\n options.length > 0;\r\n\r\n const selectAllIndeterminate =\r\n showSelectAll &&\r\n selectedValues.length > 0 &&\r\n selectedValues.length < options.length;\r\n\r\n const handleSelectAll = (checked) => {\r\n field.onChange(checked ? options : []);\r\n };\r\n\r\n /* ================= CHANGE ================= */\r\n const handleChange = (val) => {\r\n field.onChange(val);\r\n props.onChange?.(val);\r\n };\r\n\r\n /* ================= STYLES ================= */\r\n const customStyles = {\r\n control: (base, state) => ({\r\n ...base,\r\n borderRadius: Radius.radius_2,\r\n fontSize: 14,\r\n backgroundColor: isDisabled\r\n ? PrimitiveColor.color_neutral_200\r\n : PrimitiveColor.color_neutral_50,\r\n border: hasError\r\n ? `1px solid ${DerivedColor.color_border_danger}`\r\n : state.isFocused\r\n ? `2px solid ${DerivedColor.color_border_brand_primary}`\r\n : `1px solid ${DerivedColor.color_border_default}`,\r\n boxShadow: \"none\",\r\n \"&:hover\": {\r\n borderColor: hasError\r\n ? DerivedColor.color_border_danger\r\n : DerivedColor.color_border_brand_primary,\r\n },\r\n ...(preventOverflow && { maxHeight: 120, overflowY: \"auto\" }),\r\n }),\r\n\r\n option: (base, state) => ({\r\n ...base,\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n fontSize: 14,\r\n\r\n backgroundColor: isCheckboxMode\r\n ? state.isFocused\r\n ? PrimitiveColor.color_blue_cakrawala_100\r\n : \"transparent\"\r\n : state.isSelected\r\n ? PrimitiveColor.color_blue_cakrawala_500\r\n : state.isFocused\r\n ? PrimitiveColor.color_blue_cakrawala_100\r\n : \"transparent\",\r\n\r\n color: isCheckboxMode\r\n ? PrimitiveColor.color_neutral_900\r\n : state.isSelected\r\n ? PrimitiveColor.color_neutral_50\r\n : PrimitiveColor.color_neutral_900,\r\n\r\n \":active\": {\r\n backgroundColor: isCheckboxMode\r\n ? PrimitiveColor.color_blue_cakrawala_100\r\n : PrimitiveColor.color_blue_cakrawala_500,\r\n color: isCheckboxMode\r\n ? PrimitiveColor.color_neutral_900\r\n : PrimitiveColor.color_neutral_50,\r\n },\r\n }),\r\n\r\n multiValue: (base, { index }) => ({\r\n ...base,\r\n borderRadius: Radius.radius_2,\r\n backgroundColor: optionColors[index % optionColors.length],\r\n }),\r\n };\r\n\r\n return (\r\n <Box\r\n sx={{\r\n width: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: SpacingToken.spacing2,\r\n ...sx,\r\n }}\r\n >\r\n {(title || subtitle || showSelectAll) && (\r\n <Box sx={{ display: \"flex\", justifyContent: \"space-between\", alignItems: \"center\" }}>\r\n <Box sx={{ display: \"flex\", alignItems: \"center\", gap: SpacingToken.spacing2 }}>\r\n {title && (\r\n <Typography variant=\"body2\" sx={{ fontWeight: 600, fontSize: 14, color: hasError ? DerivedColor.color_text_danger : DerivedColor.color_text_default }}>\r\n {title}\r\n </Typography>\r\n )}\r\n {subtitle && (\r\n <Typography variant=\"body2\" sx={{ fontSize: 14, color: DerivedColor.color_text_subtle }}>\r\n {subtitle}\r\n </Typography>\r\n )}\r\n </Box>\r\n\r\n {showSelectAll && (\r\n <BaseCheckbox\r\n checked={selectAllChecked}\r\n onChange={handleSelectAll}\r\n label=\"Select All\"\r\n indeterminate={selectAllIndeterminate}\r\n />\r\n )}\r\n </Box>\r\n )}\r\n\r\n <SelectComponent\r\n {...props}\r\n name={field.name}\r\n inputRef={field.ref}\r\n onBlur={field.onBlur}\r\n isMulti={isCheckboxMode ? true : isMulti}\r\n isSearchable={isSearchable}\r\n isDisabled={isDisabled}\r\n isClearable={isClearable}\r\n styles={customStyles}\r\n options={options}\r\n loadOptions={loadOptions}\r\n value={field.value}\r\n onChange={handleChange}\r\n closeMenuOnSelect={isCheckboxMode ? false : true}\r\n hideSelectedOptions={isCheckboxMode ? false : isMulti ? true : false}\r\n components={\r\n isCheckboxMode\r\n ? {\r\n Option: CheckboxOption,\r\n IndicatorSeparator: null,\r\n }\r\n : {\r\n IndicatorSeparator: null,\r\n }\r\n }\r\n />\r\n\r\n {showChip && isMulti && !isCheckboxMode && (\r\n <Box sx={{ display: \"flex\", flexWrap: \"wrap\", gap: 1, mt: 1 }}>\r\n {selectedValues.map((option) => (\r\n <Chip\r\n key={option.value}\r\n label={option.label}\r\n size=\"small\"\r\n onDelete={() =>\r\n field.onChange(\r\n selectedValues.filter((v) => v.value !== option.value),\r\n )\r\n }\r\n />\r\n ))}\r\n </Box>\r\n )}\r\n\r\n <ErrorMessage\r\n errors={formState.errors}\r\n name={name}\r\n render={({ message }) => (\r\n <Typography\r\n variant=\"caption\"\r\n sx={{ color: DerivedColor.color_text_danger, fontSize: 14 }}\r\n >\r\n {message}\r\n </Typography>\r\n )}\r\n />\r\n </Box>\r\n );\r\n};\r\n","\"use client\";\r\n\r\nimport { useEffect, useState } from \"react\";\r\nimport Dropzone from \"react-dropzone\";\r\nimport BoxRaw from \"@mui/material/Box\";\r\n\r\nimport { BaseButton } from \"@/components/atoms/buttons/button\";\r\nimport { PrimitiveColor } from \"@/components/atoms/colors/primitive\";\r\nimport { DerivedColor } from \"@/components/atoms/colors/derived\";\r\nimport { Radius } from \"@/components/atoms/radius/radius\";\r\nimport { VariantStyles } from \"@/components/atoms/typography/typography\";\r\nimport { SpacingToken } from \"@/components/atoms/spacing_layout/spacing\";\r\n\r\nimport { IconUpload, IconXboxXFilled, IconAlertTriangle, IconTrash } from \"@tabler/icons-react\";\r\nimport { FileJPGHero } from \"@/components/legacy/atoms/icons/file-jpg-hero\";\r\nimport { FilePDFHero } from \"@/components/legacy/atoms/icons/file-pdf-hero\";\r\nimport { FileCSVHero } from \"@/components/legacy/atoms/icons/file-csv-hero\";\r\n\r\nconst Box = BoxRaw?.default ?? BoxRaw;\r\n\r\nexport const BaseDropzone = ({\r\n autoUpload = false,\r\n settings = {\r\n allowedExtensions: {},\r\n maxSize: 5,\r\n maxFiles: 1,\r\n isImagePreview: true,\r\n previewType: \"grid\",\r\n },\r\n labels = {\r\n title: \"\",\r\n dropzoneTitle: \"Drag & Drop File\",\r\n titleButton: \"Pilih File\",\r\n allowedFileLabel: \"\",\r\n },\r\n callbacks = {\r\n uploadFile: null,\r\n removeFile: null,\r\n customError: null,\r\n },\r\n}) => {\r\n const [files, setFiles] = useState([]);\r\n const [errorMessage, setErrorMessage] = useState(\"\");\r\n\r\n const isError = Boolean(errorMessage);\r\n const isSingle = settings.maxFiles === 1;\r\n\r\n /* ================================\r\n FILE READER (NO PROMISE)\r\n ================================= */\r\n const readFile = (file, callback) => {\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n\r\n reader.onload = function () {\r\n callback({\r\n source: reader.result,\r\n originName: file.name,\r\n type: file.type,\r\n size: file.size,\r\n });\r\n };\r\n\r\n reader.onerror = function () {\r\n console.error(\"File reading failed\");\r\n };\r\n };\r\n\r\n /* ================================\r\n DROP HANDLER (NO ASYNC)\r\n ================================= */\r\n const handleDrop = (acceptedFiles) => {\r\n setErrorMessage(\"\");\r\n let tempFiles = [];\r\n let processedCount = 0;\r\n if (!acceptedFiles || acceptedFiles.length === 0) return;\r\n\r\n acceptedFiles.forEach((file) => {\r\n readFile(file, (fileData) => {\r\n tempFiles.push(fileData);\r\n processedCount++;\r\n\r\n if (processedCount === acceptedFiles.length) {\r\n setFiles((prevFiles) => {\r\n let updated;\r\n\r\n if (settings.maxFiles === 1) {\r\n updated = tempFiles.slice(0, 1);\r\n } else {\r\n updated = [...prevFiles, ...tempFiles].slice(\r\n 0,\r\n settings.maxFiles,\r\n );\r\n }\r\n\r\n if (autoUpload) {\r\n callbacks?.uploadFile?.(updated);\r\n }\r\n\r\n return updated;\r\n });\r\n }\r\n });\r\n });\r\n };\r\n\r\n /* ================================\r\n ERROR HANDLER\r\n ================================= */\r\n const handleRejected = (rejections) => {\r\n const error = rejections?.[0]?.errors?.[0]?.code;\r\n\r\n if (error === \"file-too-large\") {\r\n setErrorMessage(\r\n \"Ukuran file terlalu besar. Maksimal \" + settings.maxSize + \"MB.\",\r\n );\r\n }\r\n\r\n if (error === \"file-invalid-type\") {\r\n setErrorMessage(\"Format file tidak sesuai.\");\r\n }\r\n\r\n if (error === \"too-many-files\") {\r\n setErrorMessage(\"Maksimal upload \" + settings.maxFiles + \" file.\");\r\n }\r\n };\r\n\r\n const removeFile = (index) => {\r\n const removedFile = files[index];\r\n const updated = files.filter((_, i) => i !== index);\r\n\r\n setFiles(updated);\r\n callbacks?.removeFile?.(removedFile?.originName);\r\n callbacks?.uploadFile?.(updated);\r\n };\r\n\r\n useEffect(() => {\r\n if (callbacks?.customError) {\r\n setErrorMessage(callbacks.customError);\r\n }\r\n }, [callbacks?.customError]);\r\n\r\n const renderFileIcon = (file) => {\r\n if (file.type?.includes(\"pdf\")) return <FilePDFHero />;\r\n if (file.type?.includes(\"csv\")) return <FileCSVHero />;\r\n if (file.type?.includes(\"image\")) return <FileJPGHero />;\r\n return <FileJPGHero />;\r\n };\r\n\r\n /* ================================\r\n PREVIEW GRID\r\n ================================= */\r\n const PreviewGrid = () => (\r\n <Box\r\n sx={{ width: \"100%\", display: \"flex\", gap: 2, mt: 3, flexWrap: \"wrap\" }}\r\n >\r\n {files.map((file, index) => (\r\n <Box key={index} sx={{ position: \"relative\", width: 75 }}>\r\n <Box\r\n sx={{\r\n position: \"absolute\",\r\n right: -6,\r\n top: -6,\r\n cursor: \"pointer\",\r\n }}\r\n onClick={() => removeFile(index)}\r\n >\r\n <IconXboxXFilled size={16} color={DerivedColor.color_icon_danger} />\r\n </Box>\r\n\r\n {renderFileIcon(file)}\r\n\r\n <Box\r\n sx={{\r\n ...VariantStyles.caption_regular,\r\n mt: 1,\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n whiteSpace: \"nowrap\",\r\n }}\r\n >\r\n {file.originName}\r\n </Box>\r\n </Box>\r\n ))}\r\n </Box>\r\n );\r\n\r\n /* ================================\r\n PREVIEW LIST\r\n ================================= */\r\n const PreviewList = () => (\r\n <Box sx={{ mt: 3 }}>\r\n {files.map((file, index) => (\r\n <Box\r\n key={index}\r\n sx={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n padding: SpacingToken.spacing3,\r\n border: `1px solid ${PrimitiveColor.color_neutral_300}`,\r\n borderRadius: Radius.radius_2,\r\n mb: 2,\r\n }}\r\n >\r\n <Box sx={{ display: \"flex\", alignItems: \"center\", gap: 2 }}>\r\n {renderFileIcon(file)}\r\n <Box\r\n sx={{\r\n ...VariantStyles.body2_regular,\r\n maxWidth: 260,\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n whiteSpace: \"nowrap\",\r\n }}\r\n >\r\n {file.originName}\r\n </Box>\r\n </Box>\r\n\r\n <Box sx={{ cursor: \"pointer\" }} onClick={() => removeFile(index)}>\r\n <IconTrash size={20} color={PrimitiveColor.color_red_500} />\r\n </Box>\r\n </Box>\r\n ))}\r\n </Box>\r\n );\r\n\r\n return (\r\n <Box>\r\n {labels.title && (\r\n <Box\r\n sx={{\r\n ...VariantStyles.body1_regular,\r\n fontSize: 14,\r\n fontWeight: 600,\r\n mb: 2,\r\n width: \"100%\",\r\n color: isError\r\n ? DerivedColor.color_text_danger\r\n : DerivedColor.color_text_default,\r\n }}\r\n >\r\n {labels.title}\r\n </Box>\r\n )}\r\n\r\n <Box\r\n sx={{\r\n border: `2px ${files.length ? \"solid\" : \"dashed\"} ${\r\n isError\r\n ? DerivedColor.color_border_danger\r\n : files.length\r\n ? DerivedColor.color_border_brand_primary\r\n : DerivedColor.color_border_default\r\n }`,\r\n borderRadius: Radius.radius_2,\r\n padding: SpacingToken.spacing6,\r\n textAlign: \"center\",\r\n transition: \"border-color 0.2s\",\r\n \"&:hover\": {\r\n borderColor: isError\r\n ? DerivedColor.color_border_danger\r\n : DerivedColor.color_border_brand_primary,\r\n },\r\n }}\r\n >\r\n <Dropzone\r\n onDrop={handleDrop}\r\n onDropRejected={handleRejected}\r\n maxFiles={settings.maxFiles}\r\n maxSize={settings.maxSize * 1024 * 1024}\r\n accept={settings.allowedExtensions}\r\n multiple={!isSingle}\r\n >\r\n {({ getRootProps, getInputProps }) => (\r\n <Box\r\n {...getRootProps()}\r\n sx={{\r\n cursor: \"pointer\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n textAlign: \"center\",\r\n width: \"100%\",\r\n }}\r\n >\r\n <input {...getInputProps()} />\r\n\r\n <IconUpload size={32} color={DerivedColor.color_icon_brand_primary} />\r\n\r\n <Box sx={{ ...VariantStyles.header1_semibold, mt: 1 }}>\r\n {labels.dropzoneTitle}\r\n </Box>\r\n\r\n <Box\r\n sx={{\r\n ...VariantStyles.body1_regular,\r\n color: PrimitiveColor.color_neutral_600,\r\n my: 1,\r\n }}\r\n >\r\n atau\r\n </Box>\r\n\r\n <BaseButton\r\n variant=\"fill\"\r\n color=\"primary\"\r\n disabled={files.length >= settings.maxFiles}\r\n >\r\n {labels.titleButton}\r\n </BaseButton>\r\n\r\n {labels.allowedFileLabel && (\r\n <Box\r\n sx={{\r\n ...VariantStyles.caption_regular,\r\n color: PrimitiveColor.color_neutral_600,\r\n mt: 2,\r\n width: \"100%\",\r\n textAlign: \"center\",\r\n }}\r\n >\r\n {labels.allowedFileLabel}\r\n </Box>\r\n )}\r\n </Box>\r\n )}\r\n </Dropzone>\r\n </Box>\r\n\r\n {files.length > 0 &&\r\n (settings.previewType === \"list\" ? <PreviewList /> : <PreviewGrid />)}\r\n\r\n {isError && (\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: 1,\r\n mt: 2,\r\n color: DerivedColor.color_text_danger,\r\n ...VariantStyles.caption_regular,\r\n fontSize: 14,\r\n }}\r\n >\r\n <IconAlertTriangle size={16} />\r\n {errorMessage}\r\n </Box>\r\n )}\r\n </Box>\r\n );\r\n};\r\n","import RadioRaw from \"@mui/material/Radio\";\r\nimport RadioGroupRaw from \"@mui/material/RadioGroup\";\r\nimport FormControlLabelRaw from \"@mui/material/FormControlLabel\";\r\nimport FormControlRaw from \"@mui/material/FormControl\";\r\nimport BoxRaw from \"@mui/material/Box\";\r\nimport { useController } from \"react-hook-form\";\r\n\r\nimport { BaseTypography } from \"@/components/atoms/typography\";\r\nimport { PrimitiveColor } from \"@/components/atoms/colors/primitive\";\r\nimport { DerivedColor } from \"@/components/atoms/colors/derived\";\r\nimport { Radius } from \"@/components/atoms/radius/radius\";\r\nimport { SpacingToken } from \"@/components/atoms/spacing_layout/spacing\";\r\n\r\nimport { errorState } from \"@/utils/json\";\r\n\r\nconst Radio = RadioRaw?.default ?? RadioRaw;\r\nconst RadioGroup = RadioGroupRaw?.default ?? RadioGroupRaw;\r\nconst FormControlLabel = FormControlLabelRaw?.default ?? FormControlLabelRaw;\r\nconst FormControl = FormControlRaw?.default ?? FormControlRaw;\r\nconst Box = BoxRaw?.default ?? BoxRaw;\r\n\r\nexport const BaseRadioButton = ({\r\n name = \"\",\r\n control = null,\r\n defaultValue,\r\n title,\r\n options = [],\r\n\r\n /* ================= TYPOGRAPHY ================= */\r\n errorVariant = \"body1_regular.danger\",\r\n\r\n /* ================= LAYOUT ================= */\r\n orientation = \"vertical\",\r\n\r\n /* ================= COLOR TOKEN ================= */\r\n\r\n /* ================= STATE ================= */\r\n isDisabled,\r\n\r\n /* ================= ERROR ================= */\r\n useErrorStateHelper = false,\r\n\r\n /* ================= SX ================= */\r\n sx = {},\r\n\r\n ...restProps\r\n}) => {\r\n const { field, formState } = useController({ control, name, defaultValue });\r\n\r\n /* ================= ERROR ================= */\r\n const errorObject = useErrorStateHelper\r\n ? errorState(name, formState.errors)\r\n : null;\r\n\r\n const errorMessage =\r\n errorObject?.message?.toString() || formState.errors?.[name]?.message;\r\n\r\n /* ================= TOKEN RESOLVE ================= */\r\n const radioColor = PrimitiveColor.color_blue_cakrawala_500;\r\n\r\n const gapValue = SpacingToken?.spacing0;\r\n const isHorizontal = orientation === \"horizontal\";\r\n\r\n /* ================= Figma Item Style ================= */\r\n const radioItemSx = {\r\n minHeight: \"36px\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: SpacingToken.spacing0,\r\n px: SpacingToken.spacing0,\r\n py: SpacingToken.spacing0,\r\n borderRadius: Radius.radius_2,\r\n };\r\n\r\n /* ================= RENDER ================= */\r\n return (\r\n <Box sx={sx}>\r\n {/* TITLE */}\r\n {title && (\r\n <BaseTypography\r\n variant=\"body1_regular.default\"\r\n sx={{\r\n fontWeight: 600,\r\n color: !!formState.errors?.[name]\r\n ? DerivedColor.color_text_danger\r\n : DerivedColor.color_text_default,\r\n mb: \"4px\",\r\n }}\r\n >\r\n {title}\r\n </BaseTypography>\r\n )}\r\n\r\n <FormControl error={!!formState.errors?.[name]}>\r\n {/* GROUP */}\r\n <RadioGroup\r\n value={field.value}\r\n onChange={field.onChange}\r\n row={isHorizontal}\r\n sx={{ gap: gapValue }}\r\n {...restProps}\r\n >\r\n {options.length > 0\r\n ? options.map((item, index) => {\r\n const { isDisabled: itemDisabled, disabled: itemNativeDisabled, value, label, ...itemRest } = item;\r\n const optionDisabled = isDisabled ?? itemDisabled ?? itemNativeDisabled ?? false;\r\n return (\r\n <FormControlLabel\r\n key={`radio-item-${index}`}\r\n value={value}\r\n label={label}\r\n disabled={optionDisabled}\r\n sx={{\r\n ...radioItemSx,\r\n \"& .MuiFormControlLabel-label\": {\r\n fontSize: \"14px\",\r\n },\r\n }}\r\n control={\r\n <Radio\r\n sx={{\r\n \"&.Mui-checked\": {\r\n color: !!formState.errors?.[name]\r\n ? DerivedColor.color_text_danger\r\n : radioColor,\r\n },\r\n color: !!formState.errors?.[name]\r\n ? DerivedColor.color_text_danger\r\n : undefined,\r\n \"&.Mui-disabled\": {\r\n color: PrimitiveColor.color_neutral_400,\r\n },\r\n \"&.Mui-checked.Mui-disabled\": {\r\n color: PrimitiveColor.color_neutral_400,\r\n },\r\n }}\r\n />\r\n }\r\n {...itemRest}\r\n />\r\n );\r\n })\r\n : \"You must provide options props\"}\r\n </RadioGroup>\r\n\r\n {/* ERROR */}\r\n {errorMessage && (\r\n <BaseTypography variant={errorVariant} sx={{ mt: gapValue }}>\r\n {errorMessage}\r\n </BaseTypography>\r\n )}\r\n </FormControl>\r\n </Box>\r\n );\r\n};\r\n","import { Fragment } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport StepLabelRaw, { stepLabelClasses } from \"@mui/material/StepLabel\";\r\nimport StepConnectorRaw from \"@mui/material/StepConnector\";\r\nimport StepRaw from \"@mui/material/Step\";\r\nimport StepperRaw from \"@mui/material/Stepper\";\r\nimport StackRaw from \"@mui/material/Stack\";\r\nimport BoxRaw from \"@mui/material/Box\";\r\nimport { stepConnectorClasses } from \"@mui/material/StepConnector\";\r\nimport { styled } from \"@mui/material/styles\";\r\nimport TypographyRaw from \"@mui/material/Typography\";\r\nimport ButtonRaw from \"@mui/material/Button\";\r\nimport TooltipRaw, { tooltipClasses } from \"@mui/material/Tooltip\";\r\n\r\nimport { PrimitiveColor } from \"@/components/atoms/colors/primitive\";\r\nimport { SpacingToken } from \"@/components/atoms/spacing_layout/spacing\";\r\nimport CheckRaw from \"@mui/icons-material/Check\";\r\nimport CheckIconRaw from \"@mui/icons-material/Check\";\r\n\r\nconst Check = CheckRaw?.default ?? CheckRaw;\r\nconst CheckIcon = CheckIconRaw?.default ?? CheckIconRaw;\r\nconst StepLabel = StepLabelRaw?.default ?? StepLabelRaw;\r\nconst StepConnector = StepConnectorRaw?.default ?? StepConnectorRaw;\r\nconst Step = StepRaw?.default ?? StepRaw;\r\nconst Stepper = StepperRaw?.default ?? StepperRaw;\r\nconst Stack = StackRaw?.default ?? StackRaw;\r\nconst Box = BoxRaw?.default ?? BoxRaw;\r\nconst Typography = TypographyRaw?.default ?? TypographyRaw;\r\nconst Button = ButtonRaw?.default ?? ButtonRaw;\r\nconst Tooltip = TooltipRaw?.default ?? TooltipRaw;\r\n\r\n/* ================= SIMPLE STEP LABEL ================= */\r\nconst CustomStepLabel = styled(StepLabel)(({ orientation }) => ({\r\n ...(orientation === \"vertical\" && {\r\n alignItems: \"flex-start\",\r\n \"& .MuiStepLabel-labelContainer\": {\r\n marginLeft: 12,\r\n textAlign: \"left\",\r\n },\r\n }),\r\n \"& .MuiStepIcon-root\": {\r\n fontSize: \"28px\",\r\n },\r\n ...(orientation !== \"vertical\" && {\r\n [`&.${stepLabelClasses.alternativeLabel}`]: {\r\n textAlign: \"center\",\r\n },\r\n }),\r\n}));\r\n\r\n/* ================= SIMPLE CONNECTOR ================= */\r\nconst CustomConnector = styled(StepConnector)(({ orientation }) => ({\r\n ...(orientation === \"horizontal\" && {\r\n [`&.${stepConnectorClasses.alternativeLabel}`]: {\r\n top: 12,\r\n left: \"calc(-50% + 12px)\",\r\n right: \"calc(50% + 12px)\",\r\n },\r\n [`& .${stepConnectorClasses.line}`]: {\r\n borderColor: PrimitiveColor.color_neutral_300,\r\n borderTopWidth: 2,\r\n borderRadius: 1,\r\n },\r\n }),\r\n ...(orientation === \"vertical\" && {\r\n [`&.${stepConnectorClasses.vertical}`]: {\r\n marginLeft: 20,\r\n },\r\n [`& .${stepConnectorClasses.line}`]: {\r\n borderLeftWidth: 3,\r\n borderLeftStyle: \"solid\",\r\n borderLeftColor: PrimitiveColor.color_neutral_300,\r\n minHeight: 24,\r\n borderRadius: 1,\r\n },\r\n [`&.${stepConnectorClasses.active} .${stepConnectorClasses.line}`]: {\r\n borderLeftColor: PrimitiveColor.color_green_500,\r\n },\r\n [`&.${stepConnectorClasses.completed} .${stepConnectorClasses.line}`]: {\r\n borderLeftColor: PrimitiveColor.color_green_500,\r\n },\r\n }),\r\n}));\r\n\r\n/* ================= DASHBOARD CONNECTOR ================= */\r\nconst ColorlibConnector = styled(StepConnector)(({ orientation }) => {\r\n const isVertical = orientation === \"vertical\";\r\n\r\n return {\r\n ...(!isVertical && {\r\n [`&.${stepConnectorClasses.alternativeLabel}`]: { top: 22 },\r\n [`&.${stepConnectorClasses.active} .${stepConnectorClasses.line}`]: {\r\n backgroundColor: PrimitiveColor.color_green_500,\r\n },\r\n [`&.${stepConnectorClasses.completed} .${stepConnectorClasses.line}`]: {\r\n backgroundColor: PrimitiveColor.color_green_500,\r\n },\r\n [`& .${stepConnectorClasses.line}`]: {\r\n height: 3,\r\n border: 0,\r\n backgroundColor: PrimitiveColor.color_neutral_300,\r\n borderRadius: 1,\r\n },\r\n }),\r\n ...(isVertical && {\r\n [`&.${stepConnectorClasses.vertical}`]: {\r\n marginLeft: 25,\r\n minHeight: 50,\r\n },\r\n [`&.${stepConnectorClasses.vertical} .${stepConnectorClasses.line}`]: {\r\n borderLeftWidth: 3,\r\n borderLeftStyle: \"solid\",\r\n borderLeftColor: PrimitiveColor.color_neutral_300,\r\n minHeight: 50,\r\n borderRadius: 1,\r\n },\r\n [`&.${stepConnectorClasses.vertical}.${stepConnectorClasses.active} .${stepConnectorClasses.line}`]:\r\n {\r\n borderLeftColor: PrimitiveColor.color_green_500,\r\n },\r\n [`&.${stepConnectorClasses.vertical}.${stepConnectorClasses.completed} .${stepConnectorClasses.line}`]:\r\n {\r\n borderLeftColor: PrimitiveColor.color_green_500,\r\n },\r\n }),\r\n };\r\n});\r\n\r\n/* ================= DASHBOARD STEP ICON ================= */\r\nconst ColorlibStepIconRoot = styled(\"div\")(({ ownerState }) => ({\r\n backgroundColor: ownerState.completed\r\n ? PrimitiveColor.color_green_500\r\n : ownerState.active\r\n ? PrimitiveColor.color_blue_cakrawala_500\r\n : PrimitiveColor.color_neutral_600,\r\n zIndex: 1,\r\n color: PrimitiveColor.color_neutral_50,\r\n width: 50,\r\n height: 50,\r\n display: \"flex\",\r\n borderRadius: \"50%\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n}));\r\n\r\nfunction ColorlibStepIcon({ active, completed, index }) {\r\n return (\r\n <ColorlibStepIconRoot ownerState={{ active, completed }}>\r\n {completed ? (\r\n <Check />\r\n ) : (\r\n <Typography variant=\"h6\">{index + 1}</Typography>\r\n )}\r\n </ColorlibStepIconRoot>\r\n );\r\n}\r\n\r\nconst CustomCheckIcon = styled(CheckIcon)({\r\n backgroundColor: PrimitiveColor.color_green_500,\r\n zIndex: 1,\r\n color: PrimitiveColor.color_neutral_50,\r\n width: 20,\r\n height: 20,\r\n padding: 1,\r\n display: \"flex\",\r\n borderRadius: \"50%\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n});\r\n\r\nconst CustomProcessIcon = styled(CheckIcon)({\r\n backgroundColor: PrimitiveColor.color_neutral_300,\r\n zIndex: 1,\r\n color: PrimitiveColor.color_neutral_50,\r\n width: 20,\r\n height: 20,\r\n padding: 1,\r\n display: \"flex\",\r\n borderRadius: \"50%\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n});\r\n\r\n/* ================= TOOLTIP ================= */\r\nconst HtmlTooltip = styled(({ className, ...props }) => (\r\n <Tooltip {...props} classes={{ popper: className }} />\r\n))(() => ({\r\n [`& .${tooltipClasses.tooltip}`]: {\r\n backgroundColor: PrimitiveColor.color_neutral_200,\r\n color: PrimitiveColor.color_neutral_900,\r\n maxWidth: 400,\r\n fontSize: 12,\r\n border: `1px solid ${PrimitiveColor.color_neutral_600}`,\r\n },\r\n}));\r\n\r\n/* ================= BASE STEPPER ================= */\r\nexport const BaseStepper = ({\r\n steps = [],\r\n activeStep = 0,\r\n orientation = \"horizontal\",\r\n variant = \"simple\",\r\n sx = {},\r\n}) => {\r\n if (variant === \"dashboard\") {\r\n const countCompletedSteps = (steps) =>\r\n steps?.filter((s) => s?.is_done === 1).length || 0;\r\n\r\n return (\r\n <Stack sx={{ width: \"100%\", ...sx }} spacing={4}>\r\n <Stepper\r\n alternativeLabel={orientation === \"horizontal\"}\r\n activeStep={countCompletedSteps(steps)}\r\n connector={<ColorlibConnector orientation={orientation} />}\r\n orientation={orientation}\r\n >\r\n {steps?.map((step, index) => (\r\n <Step key={index}>\r\n <StepLabel\r\n StepIconComponent={(props) => (\r\n <ColorlibStepIcon {...props} index={index} />\r\n )}\r\n >\r\n <HtmlTooltip\r\n title={\r\n <Fragment>\r\n <Typography color=\"inherit\">{step?.title}</Typography>\r\n {step?.sublist?.map((list, subIndex) => (\r\n <Box key={subIndex} sx={{ display: \"grid\", gap: 1, mt: 0.5 }}>\r\n <Box sx={{ display: \"flex\", gap: 1, alignItems: \"center\" }}>\r\n {list?.is_done === 1 ? (\r\n <Box sx={{ display: \"flex\", alignItems: \"center\" }}>\r\n <CustomCheckIcon />\r\n </Box>\r\n ) : (\r\n <Box sx={{ display: \"flex\", alignItems: \"center\" }}>\r\n <CustomProcessIcon />\r\n </Box>\r\n )}\r\n <Box>{list?.sublist_title}</Box>\r\n </Box>\r\n </Box>\r\n ))}\r\n </Fragment>\r\n }\r\n >\r\n <Button\r\n sx={{\r\n color: PrimitiveColor.color_neutral_900,\r\n border: \"none\",\r\n cursor: \"pointer\",\r\n textTransform: \"none\",\r\n }}\r\n >\r\n {step?.title}\r\n </Button>\r\n </HtmlTooltip>\r\n </StepLabel>\r\n </Step>\r\n ))}\r\n </Stepper>\r\n </Stack>\r\n );\r\n }\r\n\r\n // Simple variant\r\n return (\r\n <Box sx={{ width: \"100%\", ...sx }}>\r\n <Stepper\r\n activeStep={activeStep}\r\n alternativeLabel={orientation === \"horizontal\"}\r\n connector={<CustomConnector />}\r\n orientation={orientation}\r\n >\r\n {steps.map((step, index) => {\r\n const isActive = index === activeStep;\r\n const isCompleted = index < activeStep;\r\n let statusColor = PrimitiveColor.color_neutral_600;\r\n if (isActive) statusColor = PrimitiveColor.color_blue_cakrawala_500;\r\n if (isCompleted) statusColor = PrimitiveColor.color_green_500;\r\n\r\n return (\r\n <Step key={index}>\r\n <CustomStepLabel orientation={orientation}>\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: orientation === \"vertical\" ? \"flex-start\" : \"center\",\r\n gap: SpacingToken.spacing4,\r\n }}\r\n >\r\n <Typography\r\n sx={{ fontSize: 14, fontWeight: 400, color: statusColor }}\r\n >\r\n {step.status}\r\n </Typography>\r\n\r\n <Typography\r\n sx={{ fontSize: 12, fontWeight: 400, color: PrimitiveColor.color_neutral_700 }}\r\n >\r\n {step.label}\r\n </Typography>\r\n </Box>\r\n </CustomStepLabel>\r\n </Step>\r\n );\r\n })}\r\n </Stepper>\r\n </Box>\r\n );\r\n};\r\n\r\nBaseStepper.propTypes = {\r\n steps: PropTypes.array,\r\n activeStep: PropTypes.number,\r\n orientation: PropTypes.oneOf([\"horizontal\", \"vertical\"]),\r\n variant: PropTypes.oneOf([\"simple\", \"dashboard\"]),\r\n sx: PropTypes.object,\r\n};\r\n","\"use client\";\r\nimport InputAdornmentRaw from \"@mui/material/InputAdornment\";\r\nimport TextFieldRaw from \"@mui/material/TextField\";\r\nimport BoxRaw from \"@mui/material/Box\";\r\nimport TypographyRaw from \"@mui/material/Typography\";\r\nimport { useController } from \"react-hook-form\";\r\nimport { IconAlertCircleFilled } from \"@tabler/icons-react\";\r\nimport { useEffect, useMemo, useRef, useState, useCallback } from \"react\";\r\nimport { PrimitiveColor } from \"@/components/atoms/colors/primitive\";\r\nimport { DerivedColor } from \"@/components/atoms/colors/derived\";\r\nimport { Radius } from \"@/components/atoms/radius/radius\";\r\nimport { SpacingToken } from \"@/components/atoms/spacing_layout/spacing\";\r\nimport { VariantStyles } from \"@/components/atoms/typography/typography\";\r\n\r\nconst InputAdornment = InputAdornmentRaw?.default ?? InputAdornmentRaw;\r\nconst TextField = TextFieldRaw?.default ?? TextFieldRaw;\r\nconst Box = BoxRaw?.default ?? BoxRaw;\r\nconst Typography = TypographyRaw?.default ?? TypographyRaw;\r\n\r\nexport const BaseTextField = ({\r\n name = \"\",\r\n control = null,\r\n defaultValue,\r\n maxLength,\r\n showLength,\r\n isNumericOnly,\r\n isAlphaNumericOnly,\r\n isAlphaOnly,\r\n allowedSpecialCharacters = \"\",\r\n dontAllowedSpecialCharacters = \"\",\r\n isDisabled,\r\n isCantPaste,\r\n result,\r\n resultColor,\r\n noSpaceAllowed,\r\n showCountHelper = false,\r\n textMask = \"\",\r\n InputProps: externalInputProps,\r\n inputProps: externalInputPropsLower,\r\n sx = {},\r\n ...props\r\n}) => {\r\n const { field, formState } = useController({ control, name, defaultValue });\r\n\r\n const inputRef = useRef(null);\r\n const hasMask = !!textMask;\r\n const maskSlots = useMemo(\r\n () => (hasMask ? (textMask.match(/x/gi) || []).length : 0),\r\n [textMask, hasMask],\r\n );\r\n\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n const sanitizeRaw = useCallback((s) => {\r\n const str = s || \"\";\r\n return isNumericOnly\r\n ? str.replace(/[^0-9]/g, \"\")\r\n : str.replace(/[^a-zA-Z0-9]/g, \"\");\r\n });\r\n\r\n const applyMask = (raw, mask) => {\r\n if (!mask) return raw || \"\";\r\n const chars = (raw || \"\").split(\"\");\r\n let i = 0;\r\n let out = \"\";\r\n for (let m = 0; m < mask.length; m++) {\r\n const ch = mask[m];\r\n if (ch.toLowerCase() === \"x\") {\r\n if (i < chars.length) {\r\n out += chars[i++];\r\n } else {\r\n break;\r\n }\r\n } else {\r\n if (i < chars.length) {\r\n out += ch;\r\n } else {\r\n break;\r\n }\r\n }\r\n }\r\n return out;\r\n };\r\n\r\n const extractRawFromDisplay = (display, mask) => {\r\n if (!mask) return display || \"\";\r\n const onlyAlphaNum = (display || \"\").replace(/[^a-zA-Z0-9]/g, \"\");\r\n return onlyAlphaNum.slice(0, maskSlots);\r\n };\r\n\r\n const computeCaretFromRawLen = (rawLen, mask) => {\r\n if (!mask) return rawLen;\r\n let needed = rawLen;\r\n let pos = 0;\r\n for (let i = 0; i < mask.length; i++) {\r\n const ch = mask[i];\r\n if (ch.toLowerCase() === \"x\") {\r\n if (needed > 0) {\r\n needed--;\r\n pos = i + 1;\r\n } else {\r\n break;\r\n }\r\n } else {\r\n if (needed > 0) {\r\n pos = i + 1;\r\n } else {\r\n break;\r\n }\r\n }\r\n }\r\n return pos;\r\n };\r\n\r\n const [displayValue, setDisplayValue] = useState(() =>\r\n hasMask ? applyMask(sanitizeRaw(field.value), textMask) : field.value || \"\",\r\n );\r\n\r\n useEffect(() => {\r\n if (hasMask) {\r\n const raw = sanitizeRaw(field.value);\r\n setDisplayValue(applyMask(raw.slice(0, maskSlots), textMask));\r\n }\r\n }, [field.value, hasMask, textMask, maskSlots, sanitizeRaw]);\r\n\r\n const getAllowedPattern = () => {\r\n let allowedPattern = \"a-zA-Z0-9\";\r\n\r\n if (allowedSpecialCharacters) {\r\n allowedPattern += allowedSpecialCharacters.replace(\r\n /[-/\\\\^$*+?.()|%[\\]{}]/g,\r\n \"\\\\$&\",\r\n );\r\n }\r\n\r\n if (dontAllowedSpecialCharacters) {\r\n const disallowedChars = dontAllowedSpecialCharacters.replace(\r\n /[-/\\\\^$*+?.()|%[\\]{}]/g,\r\n \"\\\\$&\",\r\n );\r\n allowedPattern = allowedPattern.replace(\r\n new RegExp(`[${disallowedChars}\\\\s]`, \"g\"),\r\n \"\",\r\n );\r\n }\r\n\r\n return new RegExp(`^[${allowedPattern}\\\\s]+$`);\r\n };\r\n\r\n const handleKeyDown = (e) => {\r\n if (hasMask) {\r\n const input = e.target;\r\n const value = input.value || \"\";\r\n const selectionStart = input.selectionStart ?? value.length;\r\n const selectionEnd = input.selectionEnd ?? value.length;\r\n\r\n const allowedKeys = [\r\n \"Tab\",\r\n \"Backspace\",\r\n \"Delete\",\r\n \"ArrowLeft\",\r\n \"ArrowRight\",\r\n \"Home\",\r\n \"End\",\r\n ];\r\n if (\r\n (e.ctrlKey || e.metaKey) &&\r\n [\"a\", \"c\", \"v\", \"x\"].includes(e.key.toLowerCase())\r\n ) {\r\n return;\r\n }\r\n if (allowedKeys.includes(e.key)) {\r\n const isBackspace = e.key === \"Backspace\";\r\n const isDelete = e.key === \"Delete\";\r\n if (selectionStart !== selectionEnd) {\r\n return;\r\n }\r\n const raw = sanitizeRaw(field.value).slice(0, maskSlots);\r\n let rawArr = raw.split(\"\");\r\n if (isBackspace && selectionStart > 0) {\r\n let pos = selectionStart - 1;\r\n while (pos > 0 && textMask[pos].toLowerCase() !== \"x\") pos--;\r\n if (rawArr.length > 0) rawArr = rawArr.slice(0, rawArr.length - 1);\r\n const newRaw = rawArr.join(\"\");\r\n const newDisplay = applyMask(newRaw, textMask);\r\n e.preventDefault();\r\n setDisplayValue(newDisplay);\r\n field.onChange(newRaw);\r\n requestAnimationFrame(() => {\r\n try {\r\n const caret = computeCaretFromRawLen(newRaw.length, textMask);\r\n input.setSelectionRange(caret, caret);\r\n } catch {\r\n // Do nothing\r\n }\r\n });\r\n return;\r\n }\r\n\r\n if (isDelete && selectionStart < value.length) {\r\n let pos = selectionStart;\r\n while (pos < textMask.length && textMask[pos].toLowerCase() !== \"x\")\r\n pos++;\r\n if (rawArr.length > 0 && pos < textMask.length) {\r\n const xBefore = (textMask.slice(0, pos).match(/x/gi) || []).length;\r\n if (xBefore < rawArr.length) {\r\n rawArr.splice(xBefore, 1);\r\n } else {\r\n rawArr = rawArr.slice(0, rawArr.length - 1);\r\n }\r\n const newRaw = rawArr.join(\"\");\r\n const newDisplay = applyMask(newRaw, textMask);\r\n e.preventDefault();\r\n setDisplayValue(newDisplay);\r\n field.onChange(newRaw);\r\n requestAnimationFrame(() => {\r\n try {\r\n const caret = computeCaretFromRawLen(newRaw.length, textMask);\r\n input.setSelectionRange(caret, caret);\r\n } catch {\r\n // Do nothing\r\n }\r\n });\r\n return;\r\n }\r\n }\r\n return;\r\n }\r\n\r\n const isChar = e.key.length === 1;\r\n if (isChar) {\r\n const allow = isNumericOnly ? /[0-9]/ : /[a-zA-Z0-9]/;\r\n if (!allow.test(e.key)) {\r\n e.preventDefault();\r\n return;\r\n }\r\n const currentRaw = sanitizeRaw(field.value).slice(0, maskSlots);\r\n let rawArr = currentRaw.split(\"\");\r\n const xBeforeCaret = (\r\n textMask.slice(0, selectionStart).match(/x/gi) || []\r\n ).length;\r\n const xBeforeEnd = (\r\n textMask\r\n .slice(0, e.target.selectionEnd ?? selectionStart)\r\n .match(/x/gi) || []\r\n ).length;\r\n\r\n const startIdx = xBeforeCaret;\r\n const endIdx = Math.min(xBeforeEnd, rawArr.length);\r\n rawArr.splice(startIdx, endIdx - startIdx, e.key);\r\n\r\n const newRaw = rawArr.join(\"\").slice(0, maskSlots);\r\n const newDisplay = applyMask(newRaw, textMask);\r\n\r\n e.preventDefault();\r\n setDisplayValue(newDisplay);\r\n field.onChange(newRaw);\r\n\r\n requestAnimationFrame(() => {\r\n try {\r\n const caret = computeCaretFromRawLen(startIdx + 1, textMask);\r\n input.setSelectionRange(caret, caret);\r\n } catch {\r\n // Do nothing\r\n }\r\n });\r\n }\r\n return;\r\n }\r\n let allowedPattern;\r\n const allowedKeys = [\r\n \"Tab\",\r\n \"Backspace\",\r\n \"Delete\",\r\n \"ArrowLeft\",\r\n \"ArrowRight\",\r\n ];\r\n const alphanumericWithUnderscorePattern = /^[a-zA-Z0-9_]+$/;\r\n\r\n if ((e.ctrlKey || e.metaKey) && e.key === \"v\") {\r\n return;\r\n }\r\n\r\n if (noSpaceAllowed && e.code === \"Space\") {\r\n e.preventDefault();\r\n }\r\n if (isNumericOnly) {\r\n allowedPattern = /^[0-9]+$/;\r\n if (!allowedKeys.includes(e.key) && !allowedPattern.test(e.key)) {\r\n e.preventDefault();\r\n }\r\n }\r\n if (isAlphaNumericOnly) {\r\n allowedPattern = /^[a-zA-Z0-9]+$/;\r\n if (!allowedKeys.includes(e.key) && !allowedPattern.test(e.key)) {\r\n e.preventDefault();\r\n }\r\n }\r\n if (isAlphaOnly) {\r\n allowedPattern = /^[a-zA-Z\\s]+$/;\r\n if (!allowedKeys.includes(e.key) && !allowedPattern.test(e.key)) {\r\n e.preventDefault();\r\n }\r\n }\r\n if (allowedSpecialCharacters) {\r\n allowedPattern = getAllowedPattern();\r\n if (!allowedKeys.includes(e.key) && !allowedPattern.test(e.key)) {\r\n e.preventDefault();\r\n }\r\n }\r\n if (dontAllowedSpecialCharacters) {\r\n const disallowedChars = dontAllowedSpecialCharacters.replace(\r\n /[-/\\\\^$*+?.()|%[\\]{}]/g,\r\n \"\\\\$&\",\r\n );\r\n const pattern = new RegExp(`[${disallowedChars}\\\\s]`, \"g\");\r\n if (!allowedKeys.includes(e.key) && pattern.test(e.key)) {\r\n e.preventDefault();\r\n }\r\n }\r\n };\r\n\r\n const handlePaste = (e) => {\r\n if (hasMask) {\r\n if (isCantPaste) {\r\n e.preventDefault();\r\n return;\r\n }\r\n const pastedData = e.clipboardData.getData(\"Text\") || \"\";\r\n const cleaned = sanitizeRaw(pastedData);\r\n const input = e.target;\r\n const selectionStart = input.selectionStart ?? 0;\r\n const selectionEnd = input.selectionEnd ?? 0;\r\n\r\n const currentRaw = sanitizeRaw(field.value).slice(0, maskSlots);\r\n let rawArr = currentRaw.split(\"\");\r\n\r\n const xStart = (textMask.slice(0, selectionStart).match(/x/gi) || [])\r\n .length;\r\n const xEnd = (textMask.slice(0, selectionEnd).match(/x/gi) || []).length;\r\n\r\n rawArr.splice(xStart, Math.max(0, xEnd - xStart), ...cleaned.split(\"\"));\r\n\r\n const newRaw = rawArr.join(\"\").slice(0, maskSlots);\r\n const newDisplay = applyMask(newRaw, textMask);\r\n\r\n e.preventDefault();\r\n setDisplayValue(newDisplay);\r\n field.onChange(newRaw);\r\n\r\n requestAnimationFrame(() => {\r\n try {\r\n const caret = computeCaretFromRawLen(\r\n xStart + cleaned.length,\r\n textMask,\r\n );\r\n input.setSelectionRange(caret, caret);\r\n } catch {\r\n // Do nothing\r\n }\r\n });\r\n return;\r\n }\r\n\r\n const pastedData = e.clipboardData.getData(\"Text\");\r\n let sanitizedData = pastedData;\r\n\r\n if (isCantPaste) {\r\n e.preventDefault();\r\n return;\r\n }\r\n\r\n if (noSpaceAllowed) {\r\n sanitizedData = sanitizedData.replace(/\\s+/g, \"\");\r\n }\r\n\r\n if (allowedSpecialCharacters) {\r\n const specialChars = allowedSpecialCharacters\r\n ? allowedSpecialCharacters.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\")\r\n : \"\";\r\n const pattern = new RegExp(`[^a-zA-Z0-9${specialChars}\\\\s]`, \"g\");\r\n sanitizedData = pastedData.replace(pattern, \"\");\r\n }\r\n\r\n if (dontAllowedSpecialCharacters) {\r\n const dontAllowedChars = dontAllowedSpecialCharacters\r\n ? dontAllowedSpecialCharacters.replace(/[-/\\\\^$*+?.()|[\\]{}]/g, \"\\\\$&\")\r\n : \"\";\r\n const pattern = new RegExp(`[^a-zA-Z0-9${dontAllowedChars}\\\\s]`, \"g\");\r\n sanitizedData = pastedData.replace(pattern, \"\");\r\n }\r\n\r\n if (isNumericOnly) {\r\n sanitizedData = sanitizedData.replace(/[^0-9]/g, \"\");\r\n }\r\n\r\n if (isAlphaOnly) {\r\n sanitizedData = sanitizedData.replace(/[^a-zA-Z\\s]/g, \"\");\r\n }\r\n\r\n const { selectionStart, selectionEnd } = e.target;\r\n const value = e.target.value;\r\n\r\n // Check maxLength before creating newValue\r\n if (\r\n maxLength &&\r\n value.length - (selectionEnd - selectionStart) + sanitizedData.length >\r\n maxLength\r\n ) {\r\n sanitizedData = sanitizedData.substring(\r\n 0,\r\n maxLength - (value.length - (selectionEnd - selectionStart)),\r\n );\r\n }\r\n\r\n const newValue =\r\n value.substring(0, selectionStart) +\r\n sanitizedData +\r\n value.substring(selectionEnd);\r\n\r\n e.target.value = newValue;\r\n\r\n const newPosition = selectionStart + sanitizedData.length;\r\n e.target.setSelectionRange(newPosition, newPosition);\r\n\r\n field.onChange(e);\r\n e.preventDefault();\r\n };\r\n\r\n const handleChangeMasked = (e) => {\r\n const nextDisplay = e.target.value || \"\";\r\n const raw = extractRawFromDisplay(nextDisplay, textMask).slice(\r\n 0,\r\n maskSlots,\r\n );\r\n const newDisplay = applyMask(raw, textMask);\r\n setDisplayValue(newDisplay);\r\n field.onChange(raw);\r\n\r\n requestAnimationFrame(() => {\r\n try {\r\n const caret = computeCaretFromRawLen(raw.length, textMask);\r\n inputRef.current?.setSelectionRange(caret, caret);\r\n } catch {\r\n // Do nothing\r\n }\r\n });\r\n };\r\n\r\n return (\r\n <Box sx={sx}>\r\n {props.title && (\r\n <Typography\r\n variant=\"body2\"\r\n sx={{\r\n fontWeight: 600,\r\n color: !!formState.errors?.[name]\r\n ? DerivedColor.color_text_danger\r\n : DerivedColor.color_text_default,\r\n mb: \"4px\",\r\n }}\r\n >\r\n {props.title}\r\n </Typography>\r\n )}\r\n <TextField\r\n id={props.id || `field-${name}`}\r\n variant=\"outlined\"\r\n fullWidth\r\n error={!!formState.errors?.[name]}\r\n helperText={\r\n <>\r\n <Box component=\"span\">\r\n {formState.errors?.[name]?.message ||\r\n (maxLength && showLength\r\n ? `Maksimal ${maxLength} Karakter`\r\n : \"\")}\r\n </Box>\r\n {maxLength && showCountHelper && (\r\n <Box component=\"span\" sx={{ ml: \"auto\" }}>\r\n {field.value?.length || 0}/{maxLength}\r\n </Box>\r\n )}\r\n </>\r\n }\r\n FormHelperTextProps={{\r\n sx: {\r\n fontSize: 14,\r\n ml: 0,\r\n letterSpacing: 0,\r\n display: \"flex\",\r\n justifyContent: \"space-between\",\r\n },\r\n }}\r\n size=\"small\"\r\n disabled={isDisabled}\r\n onKeyDown={\r\n hasMask\r\n ? handleKeyDown\r\n : noSpaceAllowed ||\r\n isAlphaOnly ||\r\n isNumericOnly ||\r\n isAlphaNumericOnly ||\r\n allowedSpecialCharacters ||\r\n dontAllowedSpecialCharacters\r\n ? handleKeyDown\r\n : null\r\n }\r\n onPaste={\r\n hasMask\r\n ? handlePaste\r\n : noSpaceAllowed ||\r\n isAlphaOnly ||\r\n isNumericOnly ||\r\n isCantPaste ||\r\n allowedSpecialCharacters ||\r\n dontAllowedSpecialCharacters\r\n ? handlePaste\r\n : null\r\n }\r\n inputRef={inputRef}\r\n inputProps={{\r\n maxLength: hasMask ? textMask.length : maxLength,\r\n ...externalInputPropsLower,\r\n }}\r\n sx={{\r\n \"& .MuiOutlinedInput-root\": {\r\n \"& fieldset\": {\r\n borderColor: !!formState.errors?.[name]\r\n ? DerivedColor.color_border_danger\r\n : DerivedColor.color_border_default,\r\n },\r\n \"&:hover fieldset\": {\r\n borderColor: !!formState.errors?.[name]\r\n ? DerivedColor.color_border_danger\r\n : DerivedColor.color_border_brand_primary,\r\n },\r\n \"&.Mui-focused fieldset\": {\r\n borderColor: !!formState.errors?.[name]\r\n ? DerivedColor.color_border_danger\r\n : DerivedColor.color_border_brand_primary,\r\n borderWidth: 2,\r\n },\r\n },\r\n }}\r\n InputProps={{\r\n ...externalInputProps,\r\n sx: {\r\n borderRadius: Radius.radius_2,\r\n fontSize: 14,\r\n backgroundColor: isDisabled\r\n ? PrimitiveColor.color_neutral_200\r\n : PrimitiveColor.color_neutral_50,\r\n color: isDisabled\r\n ? PrimitiveColor.color_neutral_600\r\n : PrimitiveColor.color_neutral_900,\r\n \"& input::placeholder\": {\r\n fontSize: 14,\r\n },\r\n ...externalInputProps?.sx,\r\n },\r\n startAdornment: externalInputProps?.startAdornment,\r\n endAdornment: (\r\n <>\r\n {!!formState.errors?.[name] && (\r\n <InputAdornment position=\"end\">\r\n <IconAlertCircleFilled size={18} color={DerivedColor.color_icon_danger} />\r\n </InputAdornment>\r\n )}\r\n {externalInputProps?.endAdornment}\r\n </>\r\n ),\r\n }}\r\n value={hasMask ? (displayValue ?? \"\") : (field.value ?? \"\")}\r\n onChange={hasMask ? handleChangeMasked : field.onChange}\r\n {...props}\r\n {...(hasMask ? {} : field)}\r\n />\r\n {result && (\r\n <Typography\r\n sx={{\r\n ...VariantStyles.body1_regular,\r\n color: resultColor,\r\n mt: SpacingToken.spacing1,\r\n }}\r\n >\r\n {result}\r\n </Typography>\r\n )}\r\n </Box>\r\n );\r\n};\r\n","\"use client\";\r\n\r\nimport { useRef, useState } from \"react\";\r\nimport BoxRaw from \"@mui/material/Box\";\r\nimport ButtonRaw from \"@mui/material/Button\";\r\nimport InputRaw from \"@mui/material/Input\";\r\nimport TextFieldRaw from \"@mui/material/TextField\";\r\nimport TypographyRaw from \"@mui/material/Typography\";\r\nimport { useController, useForm } from \"react-hook-form\";\r\n\r\nimport { PrimitiveColor } from \"@/components/atoms/colors/primitive\";\r\nimport { DerivedColor } from \"@/components/atoms/colors/derived\";\r\nimport { Radius } from \"@/components/atoms/radius/radius\";\r\nimport { SpacingToken } from \"@/components/atoms/spacing_layout/spacing\";\r\nimport { BaseTypography, VariantStyles } from \"@/components/atoms/typography/typography\";\r\nimport { IconInfoCircle } from \"@tabler/icons-react\";\r\nimport UploadFileRaw from \"@mui/icons-material/UploadFile\";\r\n\r\nconst Box = BoxRaw?.default ?? BoxRaw;\r\nconst Button = ButtonRaw?.default ?? ButtonRaw;\r\nconst Input = InputRaw?.default ?? InputRaw;\r\nconst TextField = TextFieldRaw?.default ?? TextFieldRaw;\r\nconst Typography = TypographyRaw?.default ?? TypographyRaw;\r\nconst UploadFile = UploadFileRaw?.default ?? UploadFileRaw;\r\n\r\nexport const TextFieldUpload = ({\r\n name = \"upload\",\r\n control,\r\n defaultValue = \"\",\r\n title,\r\n accept = \"\",\r\n maxSize = 5,\r\n isDisabled = false,\r\n buttonLabel = \"Upload\",\r\n buttonPosition = \"end\",\r\n uploadFile,\r\n iconPosition = \"start\",\r\n}) => {\r\n const fallbackForm = useForm({\r\n defaultValues: { [name]: defaultValue },\r\n });\r\n const inputRef = useRef(null);\r\n\r\n const { field, fieldState } = useController({\r\n name,\r\n control: control || fallbackForm.control,\r\n defaultValue,\r\n });\r\n\r\n const [fileSizeError, setFileSizeError] = useState(false);\r\n const [unsupportedFile, setUnsupportedFile] = useState(false);\r\n\r\n const handleFileChange = (event) => {\r\n const file = event.target.files?.[0];\r\n\r\n if (!file) {\r\n field.onChange(\"\");\r\n uploadFile?.(\"\", null);\r\n return;\r\n }\r\n\r\n const extension = file.name.split(\".\").pop()?.toLowerCase();\r\n const acceptedExtensions = accept\r\n ? accept.split(\",\").map((ext) => ext.trim().toLowerCase())\r\n : [];\r\n\r\n if (\r\n acceptedExtensions.length > 0 &&\r\n !acceptedExtensions.includes(`.${extension}`)\r\n ) {\r\n setUnsupportedFile(true);\r\n setFileSizeError(false);\r\n field.onChange(\"\");\r\n return;\r\n }\r\n\r\n if (file.size > maxSize * 1024 * 1024) {\r\n setFileSizeError(true);\r\n setUnsupportedFile(false);\r\n field.onChange(\"\");\r\n return;\r\n }\r\n\r\n setFileSizeError(false);\r\n setUnsupportedFile(false);\r\n field.onChange(file.name);\r\n uploadFile?.(file.name, file);\r\n };\r\n\r\n const isError = !!fieldState.error || fileSizeError || unsupportedFile;\r\n const isSuccess = !!field.value && !isError;\r\n const borderColor = isError\r\n ? PrimitiveColor.color_red_500\r\n : isSuccess\r\n ? PrimitiveColor.color_blue_cakrawala_500\r\n : PrimitiveColor.color_neutral_300;\r\n\r\n const helperText = fileSizeError\r\n ? `Ukuran file melebihi ${maxSize} MB`\r\n : unsupportedFile\r\n ? \"Format file tidak didukung\"\r\n : `Format ${accept || \"-\"} ukuran maks. ${maxSize} MB`;\r\n\r\n const handleButtonClick = () => {\r\n inputRef.current?.click();\r\n };\r\n\r\n const uploadButton = (\r\n <Button\r\n onClick={handleButtonClick}\r\n disabled={isDisabled}\r\n variant=\"contained\"\r\n startIcon={iconPosition === \"start\" ? <UploadFile /> : undefined}\r\n endIcon={iconPosition === \"end\" ? <UploadFile /> : undefined}\r\n sx={{\r\n transition: \"none\",\r\n px: SpacingToken.spacing4,\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: SpacingToken.spacing2,\r\n boxShadows: 0,\r\n borderRadius:\r\n buttonPosition === \"start\"\r\n ? `${Radius.radius_2} 0 0 ${Radius.radius_2}`\r\n : `0 ${Radius.radius_2} ${Radius.radius_2} 0`,\r\n backgroundColor: isError\r\n ? PrimitiveColor.color_red_500\r\n : PrimitiveColor.color_blue_cakrawala_500,\r\n \"&:hover\": {\r\n boxShadows: 0,\r\n backgroundColor: isError\r\n ? PrimitiveColor.color_red_600\r\n : PrimitiveColor.color_blue_cakrawala_600,\r\n },\r\n textTransform: \"none\",\r\n \"& .MuiButton-startIcon, & .MuiButton-endIcon\": {\r\n margin: 0,\r\n },\r\n }}\r\n >\r\n <BaseTypography\r\n variant=\"body1_regular.inverse\"\r\n sx={{ fontWeight: 600 }}\r\n >\r\n {buttonLabel}\r\n </BaseTypography>\r\n </Button>\r\n );\r\n\r\n return (\r\n <Box width=\"100%\">\r\n {title && (\r\n <Typography\r\n sx={{\r\n ...VariantStyles.body2_regular,\r\n fontSize: 14,\r\n fontWeight: 600,\r\n mb: SpacingToken.spacing2,\r\n color: isError\r\n ? DerivedColor.color_text_danger\r\n : DerivedColor.color_text_default,\r\n }}\r\n >\r\n {title}\r\n </Typography>\r\n )}\r\n\r\n <Box width=\"100%\">\r\n <Box display=\"flex\" width=\"100%\">\r\n {buttonPosition === \"start\" && uploadButton}\r\n\r\n <TextField\r\n value={field.value || \"\"}\r\n error={isError}\r\n fullWidth\r\n size=\"small\"\r\n disabled={isDisabled}\r\n InputProps={{\r\n readOnly: true,\r\n }}\r\n sx={{\r\n \"& .MuiOutlinedInput-root\": {\r\n borderTopLeftRadius:\r\n buttonPosition === \"start\" ? 0 : Radius.radius_2,\r\n borderBottomLeftRadius:\r\n buttonPosition === \"start\" ? 0 : Radius.radius_2,\r\n borderTopRightRadius:\r\n buttonPosition === \"end\" ? 0 : Radius.radius_2,\r\n borderBottomRightRadius:\r\n buttonPosition === \"end\" ? 0 : Radius.radius_2,\r\n ...(isDisabled && {\r\n backgroundColor: PrimitiveColor.color_neutral_200,\r\n }),\r\n \"& fieldset\": {\r\n borderColor: isError\r\n ? DerivedColor.color_border_danger\r\n : DerivedColor.color_border_default,\r\n },\r\n \"&:hover fieldset\": {\r\n borderColor: isError\r\n ? DerivedColor.color_border_danger\r\n : DerivedColor.color_border_brand_primary,\r\n },\r\n \"&.Mui-focused fieldset\": {\r\n borderColor: isError\r\n ? DerivedColor.color_border_danger\r\n : DerivedColor.color_border_brand_primary,\r\n borderWidth: 2,\r\n },\r\n },\r\n \"& .MuiInputBase-input\": {\r\n fontSize: 14,\r\n \"&::placeholder\": {\r\n fontSize: 14,\r\n },\r\n },\r\n }}\r\n />\r\n\r\n {buttonPosition === \"end\" && uploadButton}\r\n </Box>\r\n\r\n <Box\r\n display=\"flex\"\r\n alignItems=\"center\"\r\n mt={SpacingToken.spacing2}\r\n gap={SpacingToken.spacing1}\r\n >\r\n {isError && (\r\n <IconInfoCircle color={PrimitiveColor.color_red_500} size={14} />\r\n )}\r\n\r\n <Typography\r\n sx={{\r\n ...VariantStyles.caption_regular,\r\n color: isError\r\n ? PrimitiveColor.color_red_500\r\n : PrimitiveColor.color_neutral_600,\r\n }}\r\n >\r\n {helperText}\r\n </Typography>\r\n </Box>\r\n </Box>\r\n\r\n <Input\r\n inputRef={inputRef}\r\n type=\"file\"\r\n inputProps={{ accept }}\r\n sx={{ display: \"none\" }}\r\n onChange={handleFileChange}\r\n disabled={isDisabled}\r\n />\r\n </Box>\r\n );\r\n};\r\n","'use client';\r\n\r\nimport { useState, useEffect } from \"react\";\r\n\r\n/**\r\n * Wrapper component yang load TinyMCE Editor secara lazy di client-side.\r\n * Jalan di Next.js maupun Storybook tanpa next/dynamic.\r\n *\r\n * PENTING — Kenapa pakai pendekatan ini:\r\n * File JS bawaan TinyMCE untuk skin/content (misal tinymce/skins/ui/oxide/skin)\r\n * memanggil `tinymce.Resource.add(...)` di top-level saat module di-evaluate.\r\n * Vite/Rollup bisa pre-load chunk-chunk tersebut sebelum core TinyMCE selesai\r\n * register ke `window.tinymce`, menyebabkan \"ReferenceError: tinymce is not defined\".\r\n *\r\n * Solusi: kita set `skin: false` dan `content_css: false` di TinyMCE init config,\r\n * lalu inject CSS yang dibutuhkan via `content_style`. Dengan begitu kita tidak\r\n * perlu import file JS wrapper yang bermasalah.\r\n */\r\n\r\nfunction Editor(props) {\r\n const [TinyEditor, setTinyEditor] = useState(null);\r\n const [error, setError] = useState(null);\r\n\r\n useEffect(() => {\r\n let cancelled = false;\r\n\r\n async function load() {\r\n const alreadyLoaded =\r\n typeof window !== \"undefined\" && window.tinymce;\r\n\r\n if (!alreadyLoaded) {\r\n // 1. Load TinyMCE core — MUST complete first\r\n try {\r\n const tinymceModule = await import(\"tinymce/tinymce\");\r\n\r\n if (typeof window !== \"undefined\" && !window.tinymce) {\r\n const core = tinymceModule.default ?? tinymceModule;\r\n if (core && typeof core === \"object\" && core.tinymce) {\r\n window.tinymce = core.tinymce;\r\n } else {\r\n window.tinymce = core;\r\n }\r\n }\r\n } catch {\r\n throw new Error(\r\n \"Package 'tinymce' tidak ditemukan. \" +\r\n \"Install dengan: npm install tinymce @tinymce/tinymce-react\"\r\n );\r\n }\r\n\r\n // Tunggu sampai global benar-benar ready\r\n await new Promise((resolve, reject) => {\r\n if (window.tinymce) return resolve();\r\n const start = Date.now();\r\n const iv = setInterval(() => {\r\n if (window.tinymce) { clearInterval(iv); resolve(); }\r\n else if (Date.now() - start > 5000) {\r\n clearInterval(iv);\r\n reject(new Error(\r\n \"TinyMCE core gagal register ke window.tinymce. \" +\r\n \"Pastikan package 'tinymce' sudah ter-install.\"\r\n ));\r\n }\r\n }, 50);\r\n });\r\n\r\n // 2. Load model, theme, icons — these also reference window.tinymce\r\n // but since core is now loaded, sequential import is safe.\r\n await import(\"tinymce/models/dom/model\");\r\n await import(\"tinymce/themes/silver\");\r\n await import(\"tinymce/icons/default\");\r\n\r\n // 3. Load plugins\r\n await Promise.all([\r\n import(\"tinymce/plugins/advlist\"),\r\n import(\"tinymce/plugins/anchor\"),\r\n import(\"tinymce/plugins/autolink\"),\r\n import(\"tinymce/plugins/code\"),\r\n import(\"tinymce/plugins/charmap\"),\r\n import(\"tinymce/plugins/emoticons\"),\r\n import(\"tinymce/plugins/image\"),\r\n import(\"tinymce/plugins/insertdatetime\"),\r\n import(\"tinymce/plugins/link\"),\r\n import(\"tinymce/plugins/lists\"),\r\n import(\"tinymce/plugins/media\"),\r\n import(\"tinymce/plugins/table\"),\r\n import(\"tinymce/plugins/wordcount\"),\r\n ]);\r\n\r\n // 4. Skin & content CSS — kita SKIP import JS wrapper-nya\r\n // (tinymce/skins/ui/oxide/skin, tinymce/skins/content/default/content)\r\n // karena Vite bisa pre-load chunk sebelum core ready.\r\n // Sebagai gantinya, kita inject CSS langsung via <style> tag\r\n // dan set skin:false + content_css:false di init config.\r\n try {\r\n const [skinMod, contentMod, oxideContentMod] = await Promise.all([\r\n import(\"tinymce/skins/ui/oxide/skin.min.css\"),\r\n import(\"tinymce/skins/content/default/content.min.css\"),\r\n import(\"tinymce/skins/ui/oxide/content.min.css\"),\r\n ]);\r\n\r\n // Vite returns CSS modules with .default as the CSS string\r\n // or auto-injects them. Either way, we're good.\r\n const skinCss = skinMod?.default ?? \"\";\r\n const contentCss = contentMod?.default ?? \"\";\r\n const oxideContentCss = oxideContentMod?.default ?? \"\";\r\n\r\n // Inject skin CSS into document head if not already there\r\n const combinedCss = [skinCss, contentCss, oxideContentCss]\r\n .filter(Boolean)\r\n .join(\"\\n\");\r\n\r\n if (combinedCss && !document.getElementById(\"tinymce-skin-css\")) {\r\n const style = document.createElement(\"style\");\r\n style.id = \"tinymce-skin-css\";\r\n style.textContent = combinedCss;\r\n document.head.appendChild(style);\r\n }\r\n } catch {\r\n // CSS imports gagal — TinyMCE akan fallback ke content_style\r\n }\r\n }\r\n\r\n // 5. Load the React wrapper\r\n const mod = await import(\"@tinymce/tinymce-react\");\r\n const Comp = mod.Editor ?? mod.default?.Editor ?? mod.default;\r\n\r\n if (!cancelled) {\r\n setTinyEditor(() => Comp);\r\n }\r\n }\r\n\r\n load().catch((err) => {\r\n if (!cancelled) {\r\n console.error(\"[Editor] Failed to load TinyMCE:\", err);\r\n setError(err);\r\n }\r\n });\r\n\r\n return () => {\r\n cancelled = true;\r\n };\r\n }, []);\r\n\r\n if (error) {\r\n return (\r\n <div style={{ color: \"red\", padding: 12, border: \"1px solid red\", borderRadius: 4 }}>\r\n Gagal memuat editor: {error.message}\r\n </div>\r\n );\r\n }\r\n\r\n if (!TinyEditor) {\r\n return null;\r\n }\r\n\r\n return <TinyEditor {...props} />;\r\n}\r\n\r\nexport { Editor };\r\n","\"use client\";\r\n\r\nimport InputAdornmentRaw from \"@mui/material/InputAdornment\";\r\nimport TextFieldRaw from \"@mui/material/TextField\";\r\nimport BoxRaw from \"@mui/material/Box\";\r\nimport TypographyRaw from \"@mui/material/Typography\";\r\nimport { useController } from \"react-hook-form\";\r\nimport { useId } from \"react\";\r\nimport { IconAlertCircleFilled } from \"@tabler/icons-react\";\r\n\r\nimport { PrimitiveColor } from \"@/components/atoms/colors/primitive\";\r\nimport { DerivedColor } from \"@/components/atoms/colors/derived\";\r\nimport { Radius } from \"@/components/atoms/radius/radius\";\r\nimport { SpacingToken } from \"@/components/atoms/spacing_layout/spacing\";\r\nimport { VariantStyles } from \"@/components/atoms/typography/typography\";\r\nimport { Editor } from \"./imports\";\r\n\r\nconst InputAdornment = InputAdornmentRaw?.default ?? InputAdornmentRaw;\r\nconst TextField = TextFieldRaw?.default ?? TextFieldRaw;\r\nconst Box = BoxRaw?.default ?? BoxRaw;\r\nconst Typography = TypographyRaw?.default ?? TypographyRaw;\r\n\r\nexport const BaseTextArea = ({\r\n name = \"\",\r\n control = null,\r\n defaultValue = \"\",\r\n helperText,\r\n rules,\r\n exactLength,\r\n maxLength,\r\n title,\r\n isDisabled = false,\r\n useRichText = false,\r\n init,\r\n handleImageUpload,\r\n sx = {},\r\n ...props\r\n}) => {\r\n const computedMaxLength = exactLength ?? maxLength ?? rules?.maxLength?.value;\r\n\r\n const { field, fieldState } = useController({\r\n control,\r\n name,\r\n defaultValue,\r\n rules: exactLength\r\n ? {\r\n minLength: {\r\n value: exactLength,\r\n message: `Harus tepat ${exactLength} karakter`,\r\n },\r\n maxLength: {\r\n value: exactLength,\r\n message: `Tidak boleh lebih dari ${exactLength} karakter`,\r\n },\r\n ...rules,\r\n }\r\n : rules,\r\n });\r\n\r\n const hasError = !!fieldState.error;\r\n const errorMessage = fieldState.error?.message;\r\n\r\n const rawValue = field?.value ?? \"\";\r\n const plainText =\r\n useRichText && typeof rawValue === \"string\"\r\n ? rawValue.replace(/<[^>]*>/g, \"\")\r\n : rawValue;\r\n const currentLength = plainText.length || 0;\r\n const remaining =\r\n computedMaxLength !== undefined ? computedMaxLength - currentLength : null;\r\n\r\n let dynamicHelper = helperText;\r\n\r\n if (!hasError && computedMaxLength) {\r\n dynamicHelper =\r\n remaining >= 0\r\n ? `${currentLength}/${computedMaxLength} karakter`\r\n : helperText;\r\n }\r\n\r\n const handleKeyDown = (event) => {\r\n if (event.key !== \"Tab\") return;\r\n\r\n event.preventDefault();\r\n const nextValue = field.value ? `${field.value} - ` : \"- \";\r\n\r\n if (computedMaxLength && nextValue.length > computedMaxLength) {\r\n return;\r\n }\r\n\r\n field.onChange(nextValue);\r\n };\r\n\r\n const baseSx = {\r\n \"& .MuiOutlinedInput-root\": {\r\n borderRadius: Radius.radius_3,\r\n fontSize: 14,\r\n backgroundColor: isDisabled\r\n ? PrimitiveColor.color_neutral_200\r\n : PrimitiveColor.color_neutral_50,\r\n \"& fieldset\": {\r\n borderColor: hasError\r\n ? DerivedColor.color_border_danger\r\n : DerivedColor.color_border_default,\r\n },\r\n \"&:hover fieldset\": {\r\n borderColor: hasError\r\n ? DerivedColor.color_border_danger\r\n : DerivedColor.color_border_brand_primary,\r\n },\r\n \"&.Mui-focused fieldset\": {\r\n borderColor: hasError\r\n ? DerivedColor.color_border_danger\r\n : DerivedColor.color_border_brand_primary,\r\n borderWidth: 2,\r\n },\r\n },\r\n \"& .MuiInputBase-input, & .MuiInputBase-inputMultiline\": {\r\n fontSize: 14,\r\n \"&::placeholder\": {\r\n fontSize: 14,\r\n },\r\n },\r\n \"& .MuiFormHelperText-root\": {\r\n ...VariantStyles.caption_regular,\r\n fontSize: 14,\r\n color: hasError\r\n ? DerivedColor.color_text_danger\r\n : PrimitiveColor.color_neutral_600,\r\n marginLeft: 0,\r\n marginTop: SpacingToken.spacing1,\r\n },\r\n };\r\n\r\n const reactId = useId();\r\n const uniqueSuffix = reactId.replace(/:/g, \"\");\r\n const editorId = props.id ?? `textarea-${name}-${uniqueSuffix}`;\r\n const wrapperId = `editor-wrap-${uniqueSuffix}`;\r\n\r\n // ─── Rich Text Mode ───\r\n if (useRichText) {\r\n return (\r\n <Box id={wrapperId} sx={sx}>\r\n {title && (\r\n <Typography\r\n variant=\"body2\"\r\n sx={{\r\n fontWeight: 600,\r\n fontSize: 14,\r\n color: hasError\r\n ? DerivedColor.color_text_danger\r\n : DerivedColor.color_text_default,\r\n mb: \"4px\",\r\n }}\r\n >\r\n {title}\r\n </Typography>\r\n )}\r\n\r\n <style>{`\r\n .tox-notifications-container {\r\n z-index: 9999 !important;\r\n position: fixed !important;\r\n top: 10px !important;\r\n }\r\n #${wrapperId} .tox .tox-editor-header {\r\n z-index: 0 !important;\r\n }\r\n ${\r\n isDisabled\r\n ? `\r\n #${wrapperId} .tox-tinymce .tox-edit-area__iframe {\r\n background-color: #f5f5f5 !important;\r\n user-select: none !important;\r\n }\r\n #${wrapperId} .tox-tinymce .tox-editor-container {\r\n background-color: #f5f5f5 !important;\r\n }\r\n #${wrapperId} .mce-content-body {\r\n background-color: #f5f5f5 !important;\r\n color: #666 !important;\r\n pointer-events: none !important;\r\n user-select: none !important;\r\n }\r\n #${wrapperId} .tox-toolbar,\r\n #${wrapperId} .tox-editor-header {\r\n pointer-events: none !important;\r\n opacity: 0.5 !important;\r\n }`\r\n : \"\"\r\n }\r\n `}</style>\r\n\r\n <Editor\r\n onInit={props.onInit}\r\n id={editorId}\r\n initialValue={defaultValue}\r\n onDrop={props.onDrop}\r\n disabled={isDisabled}\r\n init={{\r\n ...init,\r\n placeholder: init?.placeholder ?? \"\",\r\n license_key: \"gpl\",\r\n menubar: false,\r\n branding: false,\r\n promotion: false,\r\n elementpath: false,\r\n statusbar: false,\r\n skin: false,\r\n content_css: false,\r\n min_height: 200,\r\n plugins: [\r\n \"code\",\r\n \"lists\",\r\n \"advlist\",\r\n \"anchor\",\r\n \"autolink\",\r\n \"image\",\r\n \"link\",\r\n \"table\",\r\n \"wordcount\",\r\n \"emoticons\",\r\n \"charmap\",\r\n ],\r\n toolbar:\r\n \"code | cut copy paste | \" +\r\n \"bold italic underline strikethrough | \" +\r\n \"alignleft aligncenter alignright alignjustify | \" +\r\n \"blocks fontsize | \" +\r\n \"numlist bullist | \" +\r\n \"table image emoticons charmap\",\r\n image_title: true,\r\n images_replace_blob_uris: true,\r\n images_upload_base_path: \"/\",\r\n image_prepend_url: init?.prefixUrl ?? \"\",\r\n file_picker_types: \"image\",\r\n paste_data_images: true,\r\n automatic_uploads: true,\r\n content_style:\r\n \"body { font-family: 'BRI Digital Text', Inter, sans-serif; font-size: 14px; margin: 12px; }\",\r\n file_picker_callback: handleImageUpload,\r\n }}\r\n onEditorChange={(content) => {\r\n field.onChange(content);\r\n }}\r\n scriptLoading={{ async: true }}\r\n />\r\n\r\n {!hasError && dynamicHelper && (\r\n <Typography\r\n sx={{\r\n ...VariantStyles.caption_regular,\r\n color: PrimitiveColor.color_neutral_600,\r\n mt: SpacingToken.spacing1,\r\n display: \"block\",\r\n }}\r\n >\r\n {dynamicHelper}\r\n </Typography>\r\n )}\r\n </Box>\r\n );\r\n }\r\n\r\n // ─── Plain Mode (MUI TextField) ───\r\n return (\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n gap: SpacingToken.spacing2,\r\n ...sx,\r\n }}\r\n >\r\n {title && (\r\n <Typography\r\n variant=\"body2\"\r\n sx={{\r\n fontWeight: 600,\r\n fontSize: 14,\r\n color: hasError\r\n ? DerivedColor.color_text_danger\r\n : DerivedColor.color_text_default,\r\n }}\r\n >\r\n {title}\r\n </Typography>\r\n )}\r\n\r\n <TextField\r\n id={name}\r\n multiline\r\n minRows={4}\r\n fullWidth\r\n disabled={isDisabled}\r\n onKeyDown={handleKeyDown}\r\n error={hasError}\r\n helperText={errorMessage ?? dynamicHelper}\r\n sx={baseSx}\r\n inputProps={{\r\n maxLength: computedMaxLength,\r\n }}\r\n InputProps={{\r\n endAdornment: hasError && (\r\n <InputAdornment position=\"end\">\r\n <IconAlertCircleFilled size={18} color={PrimitiveColor.color_red_500} />\r\n </InputAdornment>\r\n ),\r\n }}\r\n {...props}\r\n {...field}\r\n />\r\n </Box>\r\n );\r\n};\r\n","import { useState, useCallback, useRef } from \"react\";\r\nimport DialogRaw from \"@mui/material/Dialog\";\r\nimport DialogContentRaw from \"@mui/material/DialogContent\";\r\nimport DialogActionsRaw from \"@mui/material/DialogActions\";\r\nimport IconButtonRaw from \"@mui/material/IconButton\";\r\nimport BoxRaw from \"@mui/material/Box\";\r\nimport { IconX, IconCircleCheck, IconAlertCircle, IconInfoCircle, IconAlertTriangle, IconHelpCircle } from \"@tabler/icons-react\";\r\nimport { SuccessHero } from \"@/components/legacy/atoms/icons/success-hero\";\r\nimport { ErrorHero } from \"@/components/legacy/atoms/icons/error-hero\";\r\nimport { WarningHero } from \"@/components/legacy/atoms/icons/warning-hero\";\r\nimport { BaseButton } from \"@/components/atoms/buttons/button/button\";\r\nimport { BaseTypography } from \"@/components/atoms/typography\";\r\nimport { DerivedColor } from \"@/components/atoms/colors/derived\";\r\nimport { PrimitiveColor } from \"@/components/atoms/colors/primitive\";\r\nimport { Radius } from \"@/components/atoms/radius/radius\";\r\nimport { SpacingToken } from \"@/components/atoms/spacing_layout/spacing\";\r\n\r\nconst Dialog = DialogRaw?.default ?? DialogRaw;\r\nconst DialogContent = DialogContentRaw?.default ?? DialogContentRaw;\r\nconst DialogActions = DialogActionsRaw?.default ?? DialogActionsRaw;\r\nconst IconButton = IconButtonRaw?.default ?? IconButtonRaw;\r\nconst Box = BoxRaw?.default ?? BoxRaw;\r\n\r\n// ============================================================\r\n// ICON MAPPING\r\n// Default: Legacy Hero SVG icons (SuccessHero, ErrorHero, WarningHero)\r\n// Fallback: Tabler icons (IconCircleCheck, IconAlertCircle, etc.)\r\n// ============================================================\r\n\r\nconst ICON_MAP = {\r\n success: {\r\n Hero: SuccessHero,\r\n FallbackIcon: IconCircleCheck,\r\n color: PrimitiveColor.color_green_500,\r\n },\r\n error: {\r\n Hero: ErrorHero,\r\n FallbackIcon: IconAlertCircle,\r\n color: PrimitiveColor.color_red_500,\r\n },\r\n info: {\r\n Hero: null,\r\n FallbackIcon: IconInfoCircle,\r\n color: PrimitiveColor.color_blue_cakrawala_500,\r\n },\r\n warning: {\r\n Hero: WarningHero,\r\n FallbackIcon: IconAlertTriangle,\r\n color: PrimitiveColor.color_yellow_500,\r\n },\r\n confirm: {\r\n Hero: WarningHero,\r\n FallbackIcon: IconAlertTriangle,\r\n color: PrimitiveColor.color_yellow_500,\r\n },\r\n};\r\n\r\n// ============================================================\r\n// DEFAULT TITLES\r\n// ============================================================\r\n\r\nconst DEFAULT_TITLES = {\r\n success: \"Success !\",\r\n error: \"Oops !\",\r\n warning: \"Oops !\",\r\n info: \"Information !\",\r\n confirm: \"Confirmation !\",\r\n};\r\n\r\n// ============================================================\r\n// MODAL ALERT COMPONENT (Controlled)\r\n// ============================================================\r\n\r\nconst ModalAlertDialog = ({\r\n open = false,\r\n onClose,\r\n icon = \"info\",\r\n title = \"\",\r\n description = \"\",\r\n cancelBtnText = \"Batal\",\r\n confirmBtnText = \"Ya\",\r\n cancelBtnProps,\r\n confirmBtnProps,\r\n showCancelBtn = true,\r\n showConfirmBtn = true,\r\n}) => {\r\n // Resolve title: use provided title or default based on icon\r\n const resolvedTitle = title || (typeof icon === \"string\" && DEFAULT_TITLES[icon.toLowerCase()]) || \"\";\r\n // Resolve icon\r\n const renderIcon = () => {\r\n // Preset icon key (success, error, info, warning, confirm)\r\n if (typeof icon === \"string\" && ICON_MAP[icon.toLowerCase()]) {\r\n const { Hero, FallbackIcon, color } = ICON_MAP[icon.toLowerCase()];\r\n // Use Hero SVG if available, otherwise Tabler icon\r\n if (Hero) {\r\n return (\r\n <Box sx={{ width: 160, height: 130, display: \"flex\", alignItems: \"center\", justifyContent: \"center\", \"& svg\": { width: \"100%\", height: \"100%\" } }}>\r\n <Hero />\r\n </Box>\r\n );\r\n }\r\n return <FallbackIcon size={64} color={color} stroke={1.5} />;\r\n }\r\n // Custom icon path (image URL like /images/thumb-dialog-warning.svg)\r\n if (typeof icon === \"string\" && (icon.startsWith(\"/\") || icon.startsWith(\"http\"))) {\r\n return (\r\n <Box\r\n component=\"img\"\r\n src={icon}\r\n alt=\"modal-icon\"\r\n sx={{ width: 120, height: 100, objectFit: \"contain\" }}\r\n />\r\n );\r\n }\r\n // Default fallback\r\n return <IconInfoCircle size={64} color={PrimitiveColor.color_blue_cakrawala_500} stroke={1.5} />;\r\n };\r\n\r\n // Resolve cancel action\r\n const handleCancel = () => {\r\n if (cancelBtnProps && typeof cancelBtnProps === \"function\") {\r\n cancelBtnProps();\r\n } else {\r\n onClose?.();\r\n }\r\n };\r\n\r\n // Resolve confirm action\r\n const handleConfirm = () => {\r\n if (confirmBtnProps && typeof confirmBtnProps === \"function\") {\r\n confirmBtnProps();\r\n }\r\n onClose?.();\r\n };\r\n\r\n return (\r\n <Dialog\r\n open={open}\r\n onClose={onClose}\r\n sx={{\r\n \"& .MuiDialog-container\": {\r\n \"& .MuiPaper-root\": {\r\n width: \"100%\",\r\n maxWidth: \"350px\",\r\n },\r\n \"& .MuiDialog-paper\": {\r\n borderRadius: Radius.radius_3,\r\n },\r\n },\r\n }}\r\n >\r\n {/* Close Button */}\r\n <Box sx={{ position: \"absolute\", right: 8, top: 8 }}>\r\n <IconButton onClick={onClose} sx={{ color: DerivedColor.color_text_subtle }}>\r\n <IconX size={20} />\r\n </IconButton>\r\n </Box>\r\n\r\n {/* Content */}\r\n <DialogContent\r\n sx={{\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n textAlign: \"center\",\r\n pt: SpacingToken.spacing6,\r\n px: SpacingToken.spacing5,\r\n pb: SpacingToken.spacing3,\r\n gap: SpacingToken.spacing3,\r\n }}\r\n >\r\n {/* Icon */}\r\n <Box sx={{ display: \"flex\", justifyContent: \"center\", py: 1 }}>\r\n {renderIcon()}\r\n </Box>\r\n\r\n {/* Title */}\r\n {resolvedTitle && (\r\n <BaseTypography variant=\"header1_bold.default\" sx={{ fontSize: \"18px\" }}>\r\n {resolvedTitle}\r\n </BaseTypography>\r\n )}\r\n\r\n {/* Description */}\r\n {description && (\r\n <BaseTypography variant=\"body2_regular.default\" sx={{ textAlign: \"center\" }}>\r\n {description}\r\n </BaseTypography>\r\n )}\r\n </DialogContent>\r\n\r\n {/* Actions */}\r\n {(showCancelBtn || showConfirmBtn) && (\r\n <DialogActions\r\n sx={{\r\n justifyContent: \"center\",\r\n gap: SpacingToken.spacing2,\r\n px: SpacingToken.spacing5,\r\n pb: SpacingToken.spacing5,\r\n pt: 0,\r\n }}\r\n >\r\n {showCancelBtn && (\r\n <BaseButton\r\n variant=\"outline\"\r\n color=\"primary\"\r\n onClick={handleCancel}\r\n width=\"auto\"\r\n sx={{ minWidth: \"120px\", flex: 1 }}\r\n >\r\n {cancelBtnText}\r\n </BaseButton>\r\n )}\r\n {showConfirmBtn && (\r\n <BaseButton\r\n variant=\"fill\"\r\n color=\"primary\"\r\n onClick={handleConfirm}\r\n width=\"auto\"\r\n sx={{ minWidth: \"120px\", flex: 1 }}\r\n >\r\n {confirmBtnText}\r\n </BaseButton>\r\n )}\r\n </DialogActions>\r\n )}\r\n </Dialog>\r\n );\r\n};\r\n\r\n// ============================================================\r\n// IMPERATIVE API: BaseModalAlert.show() / BaseModalAlert.hide()\r\n// ============================================================\r\n\r\nlet _modalRef = null;\r\n\r\nconst setModalRef = (ref) => {\r\n _modalRef = ref;\r\n};\r\n\r\nconst show = (options = {}) => {\r\n if (_modalRef?.current?.show) {\r\n _modalRef.current.show(options);\r\n }\r\n};\r\n\r\nconst hide = () => {\r\n if (_modalRef?.current?.hide) {\r\n _modalRef.current.hide();\r\n }\r\n};\r\n\r\n// Static API object\r\nexport const BaseModalAlert = {\r\n show,\r\n hide,\r\n setModalRef,\r\n};\r\n\r\n// ============================================================\r\n// PROVIDER COMPONENT (mount once at app root)\r\n// ============================================================\r\n\r\nexport const BaseModalAlertProvider = () => {\r\n const [state, setState] = useState({ open: false });\r\n const ref = useRef();\r\n\r\n const handleShow = useCallback((options) => {\r\n setState({ open: true, ...options });\r\n }, []);\r\n\r\n const handleHide = useCallback(() => {\r\n setState((prev) => ({ ...prev, open: false }));\r\n }, []);\r\n\r\n // Register ref\r\n ref.current = { show: handleShow, hide: handleHide };\r\n\r\n // Set ref on mount\r\n useState(() => {\r\n BaseModalAlert.setModalRef(ref);\r\n });\r\n\r\n return (\r\n <BaseModalAlertDialog\r\n open={state.open}\r\n onClose={handleHide}\r\n icon={state.icon}\r\n title={state.title}\r\n description={state.description}\r\n cancelBtnText={state.cancelBtnText}\r\n confirmBtnText={state.confirmBtnText}\r\n cancelBtnProps={state.cancelBtnProps}\r\n confirmBtnProps={state.confirmBtnProps}\r\n showCancelBtn={state.showCancelBtn !== undefined ? state.showCancelBtn : true}\r\n showConfirmBtn={state.showConfirmBtn !== undefined ? state.showConfirmBtn : true}\r\n />\r\n );\r\n};\r\n\r\n// Export controlled component\r\nexport const BaseModalAlertDialog = ModalAlertDialog;\r\n","export const LoadingDots = () => (\r\n <svg\r\n width=\"90\"\r\n height=\"28\"\r\n viewBox=\"0 0 90 28\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <circle cx=\"14\" cy=\"14\" r=\"6\" fill=\"#F39C12\">\r\n <animateTransform\r\n attributeName=\"transform\"\r\n type=\"translate\"\r\n values=\"0 0;0 -8;0 0\"\r\n dur=\"0.8s\"\r\n begin=\"0s\"\r\n repeatCount=\"indefinite\"\r\n />\r\n </circle>\r\n\r\n <circle cx=\"32\" cy=\"14\" r=\"6\" fill=\"#E67E22\">\r\n <animateTransform\r\n attributeName=\"transform\"\r\n type=\"translate\"\r\n values=\"0 0;0 -8;0 0\"\r\n dur=\"0.8s\"\r\n begin=\"0.15s\"\r\n repeatCount=\"indefinite\"\r\n />\r\n </circle>\r\n\r\n <circle cx=\"50\" cy=\"14\" r=\"6\" fill=\"#3498DB\">\r\n <animateTransform\r\n attributeName=\"transform\"\r\n type=\"translate\"\r\n values=\"0 0;0 -8;0 0\"\r\n dur=\"0.8s\"\r\n begin=\"0.30s\"\r\n repeatCount=\"indefinite\"\r\n />\r\n </circle>\r\n\r\n <circle cx=\"68\" cy=\"14\" r=\"6\" fill=\"#2E86DE\">\r\n <animateTransform\r\n attributeName=\"transform\"\r\n type=\"translate\"\r\n values=\"0 0;0 -8;0 0\"\r\n dur=\"0.8s\"\r\n begin=\"0.45s\"\r\n repeatCount=\"indefinite\"\r\n />\r\n </circle>\r\n </svg>\r\n);\r\n","import { useState, useCallback, useRef } from \"react\";\r\nimport DialogRaw from \"@mui/material/Dialog\";\r\nimport DialogContentRaw from \"@mui/material/DialogContent\";\r\nimport BoxRaw from \"@mui/material/Box\";\r\nimport { LoadingDots } from \"@/components/legacy/atoms/icons/loading-dots\";\r\nimport { BaseTypography } from \"@/components/atoms/typography\";\r\nimport { Radius } from \"@/components/atoms/radius/radius\";\r\nimport { SpacingToken } from \"@/components/atoms/spacing_layout/spacing\";\r\n\r\nconst Dialog = DialogRaw?.default ?? DialogRaw;\r\nconst DialogContent = DialogContentRaw?.default ?? DialogContentRaw;\r\nconst Box = BoxRaw?.default ?? BoxRaw;\r\n\r\n// ============================================================\r\n// MODAL LOADING COMPONENT\r\n// ============================================================\r\n\r\nconst ModalLoadingDialog = ({ open = false }) => {\r\n return (\r\n <Dialog\r\n open={open}\r\n disableEscapeKeyDown\r\n sx={{\r\n \"& .MuiDialog-container\": {\r\n \"& .MuiPaper-root\": {\r\n width: \"auto\",\r\n minWidth: \"150px\",\r\n },\r\n \"& .MuiDialog-paper\": {\r\n borderRadius: Radius.radius_3,\r\n },\r\n },\r\n \"& .MuiBackdrop-root\": {\r\n backgroundColor: \"rgba(0, 0, 0, 0.5)\",\r\n },\r\n }}\r\n >\r\n <DialogContent\r\n sx={{\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n textAlign: \"center\",\r\n py: SpacingToken.spacing6,\r\n px: SpacingToken.spacing5,\r\n gap: SpacingToken.spacing3,\r\n }}\r\n >\r\n <LoadingDots />\r\n <BaseTypography variant=\"body2_regular.subtle\" sx={{fontWeight: \"bold\"}}>\r\n Loading...\r\n </BaseTypography>\r\n </DialogContent>\r\n </Dialog>\r\n );\r\n};\r\n\r\n// ============================================================\r\n// IMPERATIVE API: BaseModalLoading.show() / BaseModalLoading.hide()\r\n// ============================================================\r\n\r\nlet _modalRef = null;\r\n\r\nconst setModalRef = (ref) => {\r\n _modalRef = ref;\r\n};\r\n\r\nconst show = () => {\r\n if (_modalRef?.current?.show) {\r\n _modalRef.current.show();\r\n }\r\n};\r\n\r\nconst hide = () => {\r\n if (_modalRef?.current?.hide) {\r\n _modalRef.current.hide();\r\n }\r\n};\r\n\r\n// Static API object\r\nexport const BaseModalLoading = {\r\n show,\r\n hide,\r\n setModalRef,\r\n};\r\n\r\n// ============================================================\r\n// PROVIDER COMPONENT (mount once at app root)\r\n// ============================================================\r\n\r\nexport const BaseModalLoadingProvider = () => {\r\n const [open, setOpen] = useState(false);\r\n const ref = useRef();\r\n\r\n const handleShow = useCallback(() => {\r\n setOpen(true);\r\n }, []);\r\n\r\n const handleHide = useCallback(() => {\r\n setOpen(false);\r\n }, []);\r\n\r\n // Register ref\r\n ref.current = { show: handleShow, hide: handleHide };\r\n\r\n // Set ref on mount\r\n useState(() => {\r\n BaseModalLoading.setModalRef(ref);\r\n });\r\n\r\n return <ModalLoadingDialog open={open} />;\r\n};\r\n\r\n// Export controlled component\r\nexport const BaseModalLoadingDialog = ModalLoadingDialog;\r\n","import DialogRaw from \"@mui/material/Dialog\";\r\nimport DialogContentRaw from \"@mui/material/DialogContent\";\r\nimport DialogActionsRaw from \"@mui/material/DialogActions\";\r\nimport IconButtonRaw from \"@mui/material/IconButton\";\r\nimport BoxRaw from \"@mui/material/Box\";\r\nimport { IconX } from \"@tabler/icons-react\";\r\nimport { Watermark } from \"@hirohe/react-watermark\";\r\nimport { BaseButton } from \"@/components/atoms/buttons/button/button\";\r\nimport { DerivedColor } from \"@/components/atoms/colors/derived\";\r\nimport { Radius } from \"@/components/atoms/radius/radius\";\r\nimport { SpacingToken } from \"@/components/atoms/spacing_layout/spacing\";\r\n\r\nconst Dialog = DialogRaw?.default ?? DialogRaw;\r\nconst DialogContent = DialogContentRaw?.default ?? DialogContentRaw;\r\nconst DialogActions = DialogActionsRaw?.default ?? DialogActionsRaw;\r\nconst IconButton = IconButtonRaw?.default ?? IconButtonRaw;\r\nconst Box = BoxRaw?.default ?? BoxRaw;\r\n\r\n// ============================================================\r\n// HEADER COLOR MAPPING\r\n// ============================================================\r\n\r\nconst HEADER_COLORS = {\r\n primary: DerivedColor.color_bg_brand_primary,\r\n secondary: DerivedColor.color_bg_brand_secondary,\r\n success: DerivedColor.color_bg_success,\r\n warning: DerivedColor.color_bg_warning,\r\n danger: DerivedColor.color_bg_danger,\r\n};\r\n\r\n// ============================================================\r\n// COMPONENT\r\n// ============================================================\r\n\r\nexport const BaseModalPopup = ({\r\n open = false,\r\n onClose,\r\n variant = \"default\",\r\n color = \"primary\",\r\n title = \"\",\r\n subtitle = \"\",\r\n startIcon = null,\r\n children = null,\r\n footer = null,\r\n maxWidth = \"sm\",\r\n fullWidth = true,\r\n isWatermark = false,\r\n watermarkText = \"\",\r\n sx = {},\r\n ...rest\r\n}) => {\r\n const headerBg = HEADER_COLORS[color] || HEADER_COLORS.primary;\r\n const headerTextColor = DerivedColor.color_text_inverse;\r\n const contentBg = DerivedColor.color_bg_surface;\r\n const borderColor = DerivedColor.color_border_default;\r\n\r\n const hasHeader = variant === \"with-header\" || variant === \"with-header-footer\";\r\n const hasFooter = variant === \"with-header-footer\";\r\n\r\n // Wrap children with watermark if enabled\r\n const renderContent = () => {\r\n if (isWatermark && watermarkText) {\r\n return (\r\n <Watermark\r\n text={watermarkText}\r\n textColor=\"#000000\"\r\n textSize={14}\r\n opacity={0.15}\r\n gutter={20}\r\n rotate={-30}\r\n wrapperStyle={{ minHeight: \"100px\" }}\r\n >\r\n {children}\r\n </Watermark>\r\n );\r\n }\r\n return children;\r\n };\r\n\r\n return (\r\n <Dialog\r\n open={open}\r\n onClose={onClose}\r\n maxWidth={maxWidth}\r\n fullWidth={fullWidth}\r\n sx={{\r\n \"& .MuiDialog-paper\": {\r\n borderRadius: Radius.radius_3,\r\n overflow: \"hidden\",\r\n },\r\n ...sx,\r\n }}\r\n {...rest}\r\n >\r\n {/* ====================== HEADER ====================== */}\r\n {hasHeader ? (\r\n <Box\r\n sx={{\r\n backgroundColor: headerBg,\r\n padding: SpacingToken.spacing4,\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"space-between\",\r\n }}\r\n >\r\n <Box sx={{ display: \"flex\", alignItems: \"center\", gap: \"8px\" }}>\r\n {startIcon && (\r\n <Box sx={{ display: \"flex\", alignItems: \"center\", lineHeight: 0, color: headerTextColor }}>\r\n {startIcon}\r\n </Box>\r\n )}\r\n <Box>\r\n <Box\r\n component=\"span\"\r\n sx={{\r\n color: headerTextColor,\r\n fontWeight: 700,\r\n fontSize: \"16px\",\r\n display: \"block\",\r\n }}\r\n >\r\n {title}\r\n </Box>\r\n {subtitle && (\r\n <Box\r\n component=\"span\"\r\n sx={{\r\n color: headerTextColor,\r\n fontWeight: 400,\r\n fontSize: \"13px\",\r\n display: \"block\",\r\n mt: \"2px\",\r\n opacity: 0.85,\r\n }}\r\n >\r\n {subtitle}\r\n </Box>\r\n )}\r\n </Box>\r\n </Box>\r\n\r\n <IconButton onClick={onClose} sx={{ color: headerTextColor }}>\r\n <IconX size={20} />\r\n </IconButton>\r\n </Box>\r\n ) : (\r\n /* Default variant: close button top-right only */\r\n <Box sx={{ position: \"absolute\", right: 8, top: 8, zIndex: 1 }}>\r\n <IconButton onClick={onClose} sx={{ color: DerivedColor.color_text_subtle }}>\r\n <IconX size={20} />\r\n </IconButton>\r\n </Box>\r\n )}\r\n\r\n {/* ====================== CONTENT ====================== */}\r\n <DialogContent\r\n sx={{\r\n backgroundColor: contentBg,\r\n padding: SpacingToken.spacing5,\r\n pt: hasHeader ? SpacingToken.spacing5 : SpacingToken.spacing6,\r\n }}\r\n >\r\n {renderContent()}\r\n </DialogContent>\r\n\r\n {/* ====================== FOOTER ====================== */}\r\n {hasFooter && footer && (\r\n <DialogActions\r\n sx={{\r\n backgroundColor: contentBg,\r\n borderTop: `1px solid ${borderColor}`,\r\n padding: SpacingToken.spacing4,\r\n gap: SpacingToken.spacing2,\r\n }}\r\n >\r\n {footer}\r\n </DialogActions>\r\n )}\r\n </Dialog>\r\n );\r\n};\r\n","\"use client\";\r\nimport { Fragment, useEffect, useState } from \"react\";\r\nimport PropTypes from \"prop-types\";\r\nimport DialogRaw from \"@mui/material/Dialog\";\r\nimport DialogTitleRaw from \"@mui/material/DialogTitle\";\r\nimport DialogContentRaw from \"@mui/material/DialogContent\";\r\nimport DialogActionsRaw from \"@mui/material/DialogActions\";\r\nimport IconButtonRaw from \"@mui/material/IconButton\";\r\nimport TypographyRaw from \"@mui/material/Typography\";\r\nimport BoxRaw from \"@mui/material/Box\";\r\nimport StepperRaw from \"@mui/material/Stepper\";\r\nimport StepRaw from \"@mui/material/Step\";\r\nimport StepLabelRaw from \"@mui/material/StepLabel\";\r\nimport StepContentRaw from \"@mui/material/StepContent\";\r\nimport TooltipRaw, { tooltipClasses } from \"@mui/material/Tooltip\";\r\nimport CloseIconRaw from \"@mui/icons-material/Close\";\r\nimport CheckIconRaw from \"@mui/icons-material/Check\";\r\nimport FailedIconRaw from \"@mui/icons-material/Close\";\r\nimport InfoIconRaw from \"@mui/icons-material/Info\";\r\n// import Image from \"next/image\";\r\nimport Link from \"next/link\";\r\nimport { styled } from \"@mui/material/styles\";\r\n\r\n// import { callAsset } from \"@/utils/asset\";\r\nimport { BaseButton } from \"@/components/atoms/buttons/button\";\r\nimport { PrimitiveColor } from \"@/components/atoms/colors/primitive\";\r\nimport { Radius } from \"@/components/atoms/radius/radius\";\r\n// import { SpacingToken } from \"@/components/atoms/spacing_layout/spacing\";\r\nimport { VariantStyles } from \"@/components/atoms/typography/typography\";\r\n\r\nconst CloseIcon = CloseIconRaw?.default ?? CloseIconRaw;\r\nconst CheckIcon = CheckIconRaw?.default ?? CheckIconRaw;\r\nconst FailedIcon = FailedIconRaw?.default ?? FailedIconRaw;\r\nconst InfoIcon = InfoIconRaw?.default ?? InfoIconRaw;\r\nimport CircularProgressRaw from \"@mui/material/CircularProgress\";\r\nconst Dialog = DialogRaw?.default ?? DialogRaw;\r\nconst DialogTitle = DialogTitleRaw?.default ?? DialogTitleRaw;\r\nconst DialogContent = DialogContentRaw?.default ?? DialogContentRaw;\r\nconst DialogActions = DialogActionsRaw?.default ?? DialogActionsRaw;\r\nconst IconButton = IconButtonRaw?.default ?? IconButtonRaw;\r\nconst Typography = TypographyRaw?.default ?? TypographyRaw;\r\nconst Box = BoxRaw?.default ?? BoxRaw;\r\nconst Stepper = StepperRaw?.default ?? StepperRaw;\r\nconst Step = StepRaw?.default ?? StepRaw;\r\nconst StepLabel = StepLabelRaw?.default ?? StepLabelRaw;\r\nconst StepContent = StepContentRaw?.default ?? StepContentRaw;\r\nconst Tooltip = TooltipRaw?.default ?? TooltipRaw;\r\nconst CircularProgress = CircularProgressRaw?.default ?? CircularProgressRaw;\r\n/* =========================\r\n TOOLTIP STYLE\r\n========================= */\r\n\r\nconst HtmlTooltip = styled(({ className, ...props }) => (\r\n <Tooltip {...props} classes={{ popper: className }} />\r\n))(({ theme }) => ({\r\n [`& .${tooltipClasses.tooltip}`]: {\r\n backgroundColor: PrimitiveColor.color_palette_neutral_10,\r\n color: \"rgba(0,0,0,0.87)\",\r\n maxWidth: 220,\r\n fontSize: theme.typography.pxToRem(12),\r\n border: \"1px solid #dadde9\",\r\n },\r\n}));\r\n\r\n/* =========================\r\n ICON STYLE\r\n========================= */\r\n\r\nconst ICON_SIZE = 24;\r\n\r\nconst CustomCheckIcon = styled(CheckIcon)({\r\n backgroundColor: PrimitiveColor.color_palette_dark_green,\r\n color: PrimitiveColor.color_palette_neutral_10,\r\n width: ICON_SIZE,\r\n height: ICON_SIZE,\r\n borderRadius: \"50%\",\r\n padding: 4,\r\n});\r\n\r\nconst CustomFailedIcon = styled(FailedIcon)({\r\n backgroundColor: PrimitiveColor.color_palette_red,\r\n color: PrimitiveColor.color_palette_neutral_10,\r\n width: ICON_SIZE,\r\n height: ICON_SIZE,\r\n borderRadius: \"50%\",\r\n padding: 4,\r\n});\r\n\r\nconst CustomInfoIcon = styled(InfoIcon)({\r\n backgroundColor: PrimitiveColor.color_palette_blue,\r\n marginRight: \"5px\",\r\n zIndex: 1,\r\n color: PrimitiveColor.color_palette_neutral_10,\r\n width: 22,\r\n height: 22,\r\n display: \"flex\",\r\n borderRadius: \"50%\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n cursor: \"pointer\",\r\n});\r\n\r\nconst StepIconWrapper = styled(\"div\")(({ ownerState }) => ({\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n minHeight: ICON_SIZE,\r\n ...(ownerState.active && { backgroundColor: \"transparent\" }),\r\n}));\r\n\r\n/* =========================\r\n COMPONENT\r\n========================= */\r\n\r\nexport const BaseModalStepper = ({\r\n open,\r\n onClose,\r\n title = \"\",\r\n stepper = [],\r\n navState = null,\r\n lengthUpload = 0,\r\n id_pengajuan = null,\r\n showFooter = true,\r\n children,\r\n modalWidth = \"max-w-md\",\r\n ...props\r\n}) => {\r\n const [activeStep, setActiveStep] = useState(0);\r\n\r\n /* =========================\r\n STEP ICON COMPONENT\r\n ========================= */\r\n const ColorlibStepIcon = (props) => {\r\n const { active, completed, icon, className } = props;\r\n\r\n const [hovered, setHovered] = useState(false);\r\n\r\n const iconStyles = {\r\n color: hovered\r\n ? PrimitiveColor.color_palette_blue\r\n : PrimitiveColor.color_palette_neutral_10,\r\n backgroundColor: hovered\r\n ? PrimitiveColor.color_palette_neutral_10\r\n : PrimitiveColor.color_palette_blue,\r\n transition: \"all 0.3s ease\",\r\n };\r\n\r\n const handleMouseEnter = () => setHovered(true);\r\n const handleMouseLeave = () => setHovered(false);\r\n\r\n /* =========================\r\n LOADING ICON\r\n ========================= */\r\n\r\n const icons = stepper.reduce((acc, _, index) => {\r\n acc[index + 1] = <CircularProgress size={20} />;\r\n return acc;\r\n }, {});\r\n\r\n /* =========================\r\n CHECKLIST ICON\r\n ========================= */\r\n\r\n const checklist = stepper.reduce((acc, item, index) => {\r\n const isSuccess = item.responseCode === \"00\";\r\n\r\n acc[index + 1] = (\r\n <>\r\n <HtmlTooltip\r\n title={\r\n <Fragment>\r\n <Typography fontSize={12}>\r\n {item.responseDesc || \"Tidak ada deskripsi\"}\r\n </Typography>\r\n </Fragment>\r\n }\r\n arrow\r\n >\r\n <CustomInfoIcon\r\n style={iconStyles}\r\n onMouseEnter={handleMouseEnter}\r\n onMouseLeave={handleMouseLeave}\r\n />\r\n </HtmlTooltip>\r\n\r\n {isSuccess ? <CustomCheckIcon /> : <CustomFailedIcon />}\r\n </>\r\n );\r\n\r\n return acc;\r\n }, {});\r\n\r\n return (\r\n <StepIconWrapper\r\n ownerState={{ active, completed }}\r\n className={className}\r\n sx={{ display: \"flex\", alignItems: \"center\", gap: 1 }}\r\n >\r\n {completed\r\n ? checklist[String(icon)]\r\n : active\r\n ? icons[String(icon)]\r\n : \"\"}\r\n </StepIconWrapper>\r\n );\r\n };\r\n\r\n ColorlibStepIcon.propTypes = {\r\n active: PropTypes.bool,\r\n completed: PropTypes.bool,\r\n icon: PropTypes.node,\r\n };\r\n\r\n /* =========================\r\n AUTO INCREMENT STEP\r\n ========================= */\r\n\r\n useEffect(() => {\r\n if (!open) {\r\n setActiveStep(0);\r\n return;\r\n }\r\n\r\n if (stepper.length === 0) return;\r\n\r\n const incrementStep = () =>\r\n setActiveStep((prev) => (prev < stepper.length ? prev + 1 : prev));\r\n\r\n const delay =\r\n activeStep > 0 ? stepper[activeStep - 1]?.responseTime || 800 : 800;\r\n\r\n const timer = setTimeout(incrementStep, delay);\r\n\r\n return () => clearTimeout(timer);\r\n }, [activeStep, stepper, open]);\r\n\r\n const handleClose = (event, reason) => {\r\n if (reason !== \"backdropClick\" && reason !== \"escapeKeyDown\") {\r\n onClose(event, reason);\r\n }\r\n };\r\n\r\n /* =========================\r\n FOOTER BUTTON\r\n ========================= */\r\n\r\n const renderFooterButton = () => {\r\n if (!showFooter) return null;\r\n\r\n const hrefMap = {\r\n 2: \"/pipeline/pipeline-international\",\r\n 3: id_pengajuan\r\n ? `/prakarsa/prakarsa-international/dashboard/${id_pengajuan}`\r\n : `/prakarsa/prakarsa-international/`,\r\n 4: id_pengajuan\r\n ? `/monitoring/monitoring-korporasi/internasional/dashboard/${id_pengajuan}`\r\n : `/monitoring/monitoring-korporasi/`,\r\n 5: id_pengajuan\r\n ? `/approval/approval-korporasi/internasional/dashboard/${id_pengajuan}`\r\n : `/approval/approval-korporasi/`,\r\n };\r\n\r\n const href = hrefMap[navState] || null;\r\n\r\n const button = (\r\n <BaseButton\r\n sx={{ padding: \"8px 24px\" }}\r\n variant=\"fill\"\r\n color=\"primary\"\r\n onClick={() => onClose()}\r\n disabled={lengthUpload !== 0}\r\n width=\"fit-content\"\r\n >\r\n Oke\r\n </BaseButton>\r\n );\r\n\r\n return href ? <Link href={href}>{button}</Link> : button;\r\n };\r\n\r\n /* =========================\r\n RENDER\r\n ========================= */\r\n\r\n return (\r\n <Dialog\r\n open={open}\r\n onClose={handleClose}\r\n PaperProps={{\r\n className: modalWidth,\r\n sx: {\r\n width: \"100%\",\r\n maxWidth: modalWidth === \"w-full\" ? \"100%\" : 550,\r\n borderRadius: Radius.radius_l,\r\n },\r\n }}\r\n {...props}\r\n >\r\n <DialogTitle sx={{ textAlign: \"center\", pt: 4 }}>\r\n {title && (\r\n <Typography style={VariantStyles.header1_bold}>{title}</Typography>\r\n )}\r\n\r\n <IconButton\r\n aria-label=\"close\"\r\n onClick={onClose}\r\n sx={{\r\n position: \"absolute\",\r\n right: 12,\r\n top: 12,\r\n color: PrimitiveColor.color_palette_neutral_60,\r\n }}\r\n >\r\n <CloseIcon />\r\n </IconButton>\r\n </DialogTitle>\r\n\r\n <DialogContent sx={{ px: 4, pb: 3 }}>\r\n {children ? (\r\n children\r\n ) : (\r\n <Box\r\n sx={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n gap: 1.5,\r\n backgroundColor: \"#EAF3FA\",\r\n padding: 2,\r\n borderRadius: Radius.radius_m,\r\n mb: 3,\r\n }}\r\n >\r\n <InfoIcon\r\n sx={{\r\n color: PrimitiveColor.color_palette_blue,\r\n fontSize: 22,\r\n }}\r\n />\r\n <Typography sx={{ fontSize: 14 }}>\r\n Harap tunggu dan jangan menutup layar hingga proses selesai.\r\n </Typography>\r\n </Box>\r\n )}\r\n\r\n <Box sx={{ width: \"100%\", maxWidth: 500 }}>\r\n <Stepper activeStep={activeStep} orientation=\"vertical\">\r\n {stepper.map((step) => (\r\n <Step key={step.label}>\r\n <StepLabel StepIconComponent={ColorlibStepIcon}>\r\n {step.label}\r\n </StepLabel>\r\n <StepContent>\r\n <Typography sx={{ fontSize: 14 }}>\r\n {step.description}\r\n </Typography>\r\n </StepContent>\r\n </Step>\r\n ))}\r\n </Stepper>\r\n </Box>\r\n </DialogContent>\r\n\r\n <DialogActions\r\n sx={{\r\n justifyContent: \"center\",\r\n pb: 4,\r\n }}\r\n >\r\n {renderFooterButton()}\r\n </DialogActions>\r\n </Dialog>\r\n );\r\n};\r\n\r\nBaseModalStepper.propTypes = {\r\n open: PropTypes.bool.isRequired,\r\n onClose: PropTypes.func.isRequired,\r\n title: PropTypes.string,\r\n stepper: PropTypes.arrayOf(\r\n PropTypes.shape({\r\n label: PropTypes.string,\r\n description: PropTypes.string,\r\n responseCode: PropTypes.string,\r\n responseDesc: PropTypes.string,\r\n responseTime: PropTypes.number,\r\n }),\r\n ),\r\n navState: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\r\n lengthUpload: PropTypes.number,\r\n id_pengajuan: PropTypes.number,\r\n showFooter: PropTypes.bool,\r\n children: PropTypes.node,\r\n};\r\n","\"use client\";\r\nimport { useState, useRef, useEffect, useCallback } from \"react\";\r\nimport DialogRaw from \"@mui/material/Dialog\";\r\nimport DialogContentRaw from \"@mui/material/DialogContent\";\r\nimport DialogTitleRaw from \"@mui/material/DialogTitle\";\r\nimport IconButtonRaw from \"@mui/material/IconButton\";\r\nimport BoxRaw from \"@mui/material/Box\";\r\nimport TypographyRaw from \"@mui/material/Typography\";\r\nimport CloseIconRaw from \"@mui/icons-material/Close\";\r\nimport dynamic from \"next/dynamic\";\r\n\r\nimport { BaseButton } from \"@/components/atoms/buttons/button\";\r\nimport { PrimitiveColor } from \"@/components/atoms/colors/primitive\";\r\nimport { Radius } from \"@/components/atoms/radius/radius\";\r\nimport { SpacingToken } from \"@/components/atoms/spacing_layout/spacing\";\r\nimport { VariantStyles } from \"@/components/atoms/typography/typography\";\r\n\r\nimport { LockHero } from \"@/components/legacy/atoms/icons/lock-hero\";\r\n\r\nconst Countdown = dynamic(\r\n () => import(\"react-countdown\").then((mod) => mod.default ?? mod),\r\n { ssr: false },\r\n);\r\n\r\nconst CloseIcon = CloseIconRaw?.default ?? CloseIconRaw;\r\nconst Dialog = DialogRaw?.default ?? DialogRaw;\r\nconst DialogContent = DialogContentRaw?.default ?? DialogContentRaw;\r\nconst DialogTitle = DialogTitleRaw?.default ?? DialogTitleRaw;\r\nconst IconButton = IconButtonRaw?.default ?? IconButtonRaw;\r\nconst Box = BoxRaw?.default ?? BoxRaw;\r\nconst Typography = TypographyRaw?.default ?? TypographyRaw;\r\n\r\n/** Inline styles for OTP input — no external CSS dependency */\r\nconst otpInputBase = {\r\n height: 40,\r\n width: 30,\r\n border: \"none\",\r\n borderRadius: 0,\r\n marginLeft: 6,\r\n marginRight: 6,\r\n fontSize: 20,\r\n fontWeight: 700,\r\n color: \"#1078ca\",\r\n textAlign: \"center\",\r\n outline: \"none\",\r\n background: \"transparent\",\r\n};\r\n\r\nconst otpInputNormal = {\r\n ...otpInputBase,\r\n borderBottom: \"3px solid #e0e0e0\",\r\n};\r\n\r\nconst otpInputError = {\r\n ...otpInputBase,\r\n borderBottom: \"3px solid #e84040\",\r\n color: \"#e84040\",\r\n};\r\n\r\nconst otpInputFocused = {\r\n borderBottom: \"3px solid #1078ca\",\r\n};\r\n\r\n/**\r\n * Native OTP input component — replaces react-otp-input for React 19 compatibility.\r\n */\r\nconst NativeOTPInput = ({ value, onChange, numInputs, hasError }) => {\r\n const inputRefs = useRef([]);\r\n const [focusedIndex, setFocusedIndex] = useState(-1);\r\n const digits = value.split(\"\");\r\n\r\n const handleChange = useCallback(\r\n (index, e) => {\r\n const val = e.target.value;\r\n if (!/^\\d*$/.test(val)) return;\r\n\r\n const newDigits = [...digits];\r\n // Pad array to numInputs length\r\n while (newDigits.length < numInputs) newDigits.push(\"\");\r\n\r\n newDigits[index] = val.slice(-1);\r\n const newValue = newDigits.join(\"\");\r\n onChange(newValue.slice(0, numInputs));\r\n\r\n if (val && index < numInputs - 1) {\r\n inputRefs.current[index + 1]?.focus();\r\n }\r\n },\r\n [digits, numInputs, onChange],\r\n );\r\n\r\n const handleKeyDown = useCallback(\r\n (index, e) => {\r\n if (e.key === \"Backspace\" && !digits[index] && index > 0) {\r\n inputRefs.current[index - 1]?.focus();\r\n }\r\n if (e.key === \"ArrowLeft\" && index > 0) {\r\n e.preventDefault();\r\n inputRefs.current[index - 1]?.focus();\r\n }\r\n if (e.key === \"ArrowRight\" && index < numInputs - 1) {\r\n e.preventDefault();\r\n inputRefs.current[index + 1]?.focus();\r\n }\r\n },\r\n [digits, numInputs],\r\n );\r\n\r\n const handlePaste = useCallback(\r\n (e) => {\r\n e.preventDefault();\r\n const pasted = e.clipboardData\r\n .getData(\"text\")\r\n .replace(/\\D/g, \"\")\r\n .slice(0, numInputs);\r\n if (!pasted) return;\r\n onChange(pasted);\r\n const nextIdx = Math.min(pasted.length, numInputs - 1);\r\n inputRefs.current[nextIdx]?.focus();\r\n },\r\n [numInputs, onChange],\r\n );\r\n\r\n // Auto-focus first input on mount\r\n useEffect(() => {\r\n const timer = setTimeout(() => inputRefs.current[0]?.focus(), 100);\r\n return () => clearTimeout(timer);\r\n }, []);\r\n\r\n return (\r\n <div\r\n style={{\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n }}\r\n onPaste={handlePaste}\r\n >\r\n {Array.from({ length: numInputs }).map((_, index) => {\r\n const isFocused = focusedIndex === index;\r\n const baseStyle = hasError ? otpInputError : otpInputNormal;\r\n const style = isFocused\r\n ? { ...baseStyle, ...otpInputFocused }\r\n : baseStyle;\r\n\r\n return (\r\n <input\r\n key={index}\r\n ref={(el) => {\r\n inputRefs.current[index] = el;\r\n }}\r\n type=\"tel\"\r\n inputMode=\"numeric\"\r\n maxLength={1}\r\n autoComplete=\"off\"\r\n value={digits[index] || \"\"}\r\n onChange={(e) => handleChange(index, e)}\r\n onKeyDown={(e) => handleKeyDown(index, e)}\r\n onFocus={(e) => {\r\n setFocusedIndex(index);\r\n e.target.select();\r\n }}\r\n onBlur={() => setFocusedIndex(-1)}\r\n style={style}\r\n aria-label={`${index === 0 ? \"Please enter verification code. \" : \"\"}Digit ${index + 1}`}\r\n />\r\n );\r\n })}\r\n </div>\r\n );\r\n};\r\n\r\nexport const BaseModalOTP = ({\r\n isOpen,\r\n phone,\r\n setIsOpen,\r\n otpLength = 6,\r\n onValidateOtp = () => null,\r\n onRequestOtp = () => null,\r\n}) => {\r\n const [countOn, setCountOn] = useState(\"on\");\r\n const [date, setDate] = useState(Date.now() + 120000);\r\n const [otp, setOtp] = useState(\"\");\r\n const [errorMessage, setErrorMessage] = useState(\"\");\r\n\r\n const handleClose = () => setIsOpen(false);\r\n\r\n const handleChange = (value) => {\r\n setErrorMessage(\"\");\r\n setOtp(value);\r\n\r\n if (value.length === otpLength) {\r\n onValidateOtp(value);\r\n }\r\n };\r\n\r\n const setTime = () => {\r\n setCountOn(\"on\");\r\n setDate(Date.now() + 120000);\r\n setOtp(\"\");\r\n onRequestOtp();\r\n };\r\n\r\n const setOff = () => setCountOn(\"off\");\r\n\r\n return (\r\n <Dialog\r\n open={isOpen}\r\n onClose={handleClose}\r\n maxWidth=\"xs\"\r\n fullWidth\r\n sx={{\r\n \"& .MuiPaper-root\": {\r\n borderRadius: Radius.radius_4,\r\n padding: SpacingToken.spacing4,\r\n maxWidth: 350,\r\n },\r\n }}\r\n >\r\n <DialogTitle sx={{ p: 0 }}>\r\n <IconButton\r\n onClick={handleClose}\r\n sx={{\r\n position: \"absolute\",\r\n right: SpacingToken.spacing2,\r\n top: SpacingToken.spacing2,\r\n }}\r\n >\r\n <CloseIcon />\r\n </IconButton>\r\n </DialogTitle>\r\n\r\n <DialogContent sx={{ p: 0 }}>\r\n <Box\r\n display=\"flex\"\r\n flexDirection=\"column\"\r\n alignItems=\"center\"\r\n textAlign=\"center\"\r\n gap={SpacingToken.spacing4}\r\n >\r\n <LockHero />\r\n\r\n <Typography\r\n sx={{\r\n ...VariantStyles.header1_semibold,\r\n color: PrimitiveColor.color_palette_neutral_100,\r\n }}\r\n >\r\n Verifikasi OTP\r\n </Typography>\r\n\r\n <Typography\r\n sx={{\r\n ...VariantStyles.body1_regular,\r\n color: PrimitiveColor.color_palette_neutral_70,\r\n maxWidth: 280,\r\n }}\r\n >\r\n Masukkan kode OTP yang telah dikirim ke nomor {phone}\r\n </Typography>\r\n\r\n {/* OTP INPUT */}\r\n <Box width=\"100%\" display=\"flex\" justifyContent=\"center\">\r\n <form\r\n autoComplete=\"off\"\r\n style={{\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\",\r\n }}\r\n >\r\n <input type=\"hidden\" name=\"otp\" value={otp} />\r\n <NativeOTPInput\r\n value={otp}\r\n onChange={handleChange}\r\n numInputs={otpLength}\r\n hasError={!!errorMessage}\r\n />\r\n </form>\r\n </Box>\r\n\r\n {errorMessage && (\r\n <Typography\r\n sx={{\r\n ...VariantStyles.caption_regular,\r\n color: PrimitiveColor.color_palette_red,\r\n }}\r\n >\r\n {errorMessage}\r\n </Typography>\r\n )}\r\n\r\n {/* COUNTDOWN */}\r\n {countOn === \"on\" && (\r\n <Countdown\r\n date={date}\r\n onComplete={setOff}\r\n renderer={({ minutes, seconds }) => (\r\n <Typography\r\n sx={{\r\n ...VariantStyles.body1_regular,\r\n color: PrimitiveColor.color_palette_neutral_60,\r\n }}\r\n >\r\n Waktu tersisa {minutes < 10 ? `0${minutes}` : minutes}:\r\n {seconds < 10 ? `0${seconds}` : seconds}\r\n </Typography>\r\n )}\r\n />\r\n )}\r\n\r\n {countOn === \"off\" && (\r\n <Typography\r\n sx={{\r\n ...VariantStyles.body1_regular,\r\n color: PrimitiveColor.color_palette_neutral_60,\r\n }}\r\n >\r\n Waktu habis\r\n </Typography>\r\n )}\r\n\r\n {/* BUTTON */}\r\n {countOn === \"on\" ? (\r\n <BaseButton\r\n variant=\"text\"\r\n color=\"color_palette_blue\"\r\n onClick={handleClose}\r\n >\r\n Batalkan\r\n </BaseButton>\r\n ) : (\r\n <BaseButton\r\n variant=\"fill\"\r\n color=\"color_palette_blue\"\r\n onClick={setTime}\r\n >\r\n Kirim Ulang\r\n </BaseButton>\r\n )}\r\n </Box>\r\n </DialogContent>\r\n </Dialog>\r\n );\r\n};\r\n","\"use client\";\r\n\r\nimport React from \"react\";\r\nimport BoxRaw from \"@mui/material/Box\";\r\nimport { BaseTextField } from \"@/components/molecules/textfields/textfield\";\r\nimport { BaseTextArea } from \"@/components/molecules/textfields/textfield-area\";\r\nimport { TextFieldUpload } from \"@/components/molecules/textfields/textfield-upload\";\r\nimport { BaseDatePicker } from \"@/components/molecules/datepicker/datepicker\";\r\nimport { BaseDropdown } from \"@/components/molecules/dropdown/dropdown\";\r\nimport { BaseCheckbox } from \"@/components/molecules/checkbox/checkbox\";\r\nimport { BaseRadioButton } from \"@/components/molecules/radio/radio\";\r\nimport { BaseTypography } from \"@/components/atoms/typography\";\r\nimport { DerivedColor } from \"@/components/atoms/colors/derived\";\r\n\r\nconst Box = BoxRaw?.default ?? BoxRaw;\r\n\r\nexport const FORM_TYPE = {\r\n TEXT_FIELD: \"text-field\",\r\n TEXT_AREA: \"text-area\",\r\n TEXT_FIELD_UPLOAD: \"text-field-upload\",\r\n DATE_PICKER: \"date-picker\",\r\n DATETIME_PICKER: \"datetime-picker\",\r\n TIME_PICKER: \"time-picker\",\r\n YEAR_PICKER: \"year-picker\",\r\n MONTH_PICKER: \"month-picker\",\r\n DAY_PICKER: \"day-picker\",\r\n DATE_RANGE: \"date-range\",\r\n DROPDOWN: \"dropdown\",\r\n DROPDOWN_ASYNC: \"dropdown-async\",\r\n CHECKBOX: \"checkbox\",\r\n RADIO: \"radio\",\r\n CUSTOM: \"custom\",\r\n};\r\n\r\nconst FormContent = ({ type, ...restProps }) => {\r\n // Remove layout-specific props before passing to actual component\r\n const { layout: _layout, labelWidth: _labelWidth, divider: _divider, ...componentProps } = restProps;\r\n\r\n switch (type) {\r\n case FORM_TYPE.TEXT_FIELD:\r\n return <BaseTextField {...componentProps} />;\r\n\r\n case FORM_TYPE.TEXT_AREA:\r\n return <BaseTextArea {...componentProps} />;\r\n\r\n case FORM_TYPE.TEXT_FIELD_UPLOAD:\r\n return <TextFieldUpload {...componentProps} />;\r\n\r\n case FORM_TYPE.DATE_PICKER:\r\n return <BaseDatePicker type=\"single\" {...componentProps} />;\r\n\r\n case FORM_TYPE.DATETIME_PICKER:\r\n return <BaseDatePicker type=\"datetime\" {...componentProps} />;\r\n\r\n case FORM_TYPE.TIME_PICKER:\r\n return <BaseDatePicker type=\"time\" {...componentProps} />;\r\n\r\n case FORM_TYPE.YEAR_PICKER:\r\n return <BaseDatePicker type=\"year\" {...componentProps} />;\r\n\r\n case FORM_TYPE.MONTH_PICKER:\r\n return <BaseDatePicker type=\"month\" {...componentProps} />;\r\n\r\n case FORM_TYPE.DAY_PICKER:\r\n return <BaseDatePicker type=\"day\" {...componentProps} />;\r\n\r\n case FORM_TYPE.DATE_RANGE:\r\n return <BaseDatePicker type=\"range\" {...componentProps} />;\r\n\r\n case FORM_TYPE.DROPDOWN:\r\n return <BaseDropdown {...componentProps} />;\r\n\r\n case FORM_TYPE.DROPDOWN_ASYNC:\r\n return <BaseDropdown {...componentProps} />;\r\n\r\n case FORM_TYPE.CHECKBOX:\r\n return <BaseCheckbox {...componentProps} />;\r\n\r\n case FORM_TYPE.RADIO:\r\n return <BaseRadioButton {...componentProps} />;\r\n\r\n case FORM_TYPE.CUSTOM:\r\n return componentProps.component ?? null;\r\n\r\n default:\r\n return null;\r\n }\r\n};\r\n\r\n/**\r\n * Renders a single field item with the resolved layout (horizontal or vertical).\r\n */\r\nconst FormField = ({ item, index, control, resolvedLayout, resolvedLabelWidth, resolvedDivider }) => {\r\n // Determine layout for this specific field\r\n const fieldLayout = item.layout || resolvedLayout;\r\n const fieldLabelWidth = item.labelWidth || resolvedLabelWidth;\r\n const fieldDivider = item.divider !== undefined ? item.divider : resolvedDivider;\r\n\r\n if (fieldLayout === \"horizontal\") {\r\n return (\r\n <Box\r\n key={item.name || `form-item-${index}`}\r\n sx={{\r\n display: \"grid\",\r\n gridTemplateColumns: `${fieldLabelWidth} 1fr`,\r\n alignItems: \"center\",\r\n py: \"12px\",\r\n ...(fieldDivider && {\r\n borderBottom: `1px solid ${DerivedColor.color_border_default}`,\r\n }),\r\n }}\r\n >\r\n {/* Label */}\r\n <Box sx={{ display: \"flex\", justifyContent: \"space-between\", pr: 2 }}>\r\n <BaseTypography variant=\"body1_regular.default\">\r\n {item.title || item.name}\r\n </BaseTypography>\r\n <BaseTypography variant=\"body1_regular.default\">:</BaseTypography>\r\n </Box>\r\n\r\n {/* Input */}\r\n <Box>\r\n <FormContent\r\n control={control}\r\n {...item}\r\n title={undefined}\r\n />\r\n </Box>\r\n </Box>\r\n );\r\n }\r\n\r\n // Default: vertical layout (title handled by component itself)\r\n return (\r\n <FormContent\r\n key={item.name || `form-item-${index}`}\r\n control={control}\r\n {...item}\r\n />\r\n );\r\n};\r\n\r\nconst Form = ({ children, sx = {}, methods, onSubmit }) => {\r\n return (\r\n <Box component=\"form\" sx={sx} onSubmit={methods?.handleSubmit(onSubmit)}>\r\n {React.Children.map(children, (child) => {\r\n if (!child) return null;\r\n return child.props?.name\r\n ? React.createElement(child.type, {\r\n ...child.props,\r\n control: methods?.control,\r\n key: child.props.name,\r\n })\r\n : child;\r\n })}\r\n </Box>\r\n );\r\n};\r\n\r\nconst SubForm = ({ children, sx = {}, methods }) => {\r\n return (\r\n <Box sx={sx}>\r\n {React.Children.map(children, (child) => {\r\n if (!child) return null;\r\n return child.props?.name\r\n ? React.createElement(child.type, {\r\n ...child.props,\r\n control: methods?.control,\r\n key: child.props.name,\r\n })\r\n : child;\r\n })}\r\n </Box>\r\n );\r\n};\r\n\r\nexport const FormBuilder = ({\r\n sx = {},\r\n fields = [],\r\n methods,\r\n onSubmit,\r\n gap = 16,\r\n columns = 1,\r\n layout = \"vertical\",\r\n labelWidth = \"30%\",\r\n divider = false,\r\n ...restProps\r\n}) => {\r\n // When layout is horizontal, default gap to 0 (rows separated by borders)\r\n const resolvedGap = layout === \"horizontal\" && gap === 16 ? 0 : gap;\r\n\r\n const layoutSx =\r\n columns > 1\r\n ? { display: \"grid\", gridTemplateColumns: `repeat(${columns}, 1fr)`, gap: `${resolvedGap}px` }\r\n : { display: \"flex\", flexDirection: \"column\", gap: `${resolvedGap}px` };\r\n\r\n return (\r\n <Form sx={sx} methods={methods} onSubmit={onSubmit} {...restProps}>\r\n <Box sx={layoutSx}>\r\n {fields.map((item, index) => (\r\n <FormField\r\n key={item.name || `form-item-${index}`}\r\n item={item}\r\n index={index}\r\n control={methods?.control}\r\n resolvedLayout={layout}\r\n resolvedLabelWidth={labelWidth}\r\n resolvedDivider={divider}\r\n />\r\n ))}\r\n </Box>\r\n </Form>\r\n );\r\n};\r\n\r\nexport const SubFormBuilder = ({\r\n sx = {},\r\n fields = [],\r\n methods,\r\n gap = 16,\r\n columns = 1,\r\n layout = \"vertical\",\r\n labelWidth = \"30%\",\r\n divider = false,\r\n}) => {\r\n const resolvedGap = layout === \"horizontal\" && gap === 16 ? 0 : gap;\r\n\r\n const layoutSx =\r\n columns > 1\r\n ? { display: \"grid\", gridTemplateColumns: `repeat(${columns}, 1fr)`, gap: `${resolvedGap}px` }\r\n : { display: \"flex\", flexDirection: \"column\", gap: `${resolvedGap}px` };\r\n\r\n return (\r\n <SubForm sx={sx} methods={methods}>\r\n <Box sx={layoutSx}>\r\n {fields.map((item, index) => (\r\n <FormField\r\n key={item.name || `subform-item-${index}`}\r\n item={item}\r\n index={index}\r\n control={methods?.control}\r\n resolvedLayout={layout}\r\n resolvedLabelWidth={labelWidth}\r\n resolvedDivider={divider}\r\n />\r\n ))}\r\n </Box>\r\n </SubForm>\r\n );\r\n};\r\n"]}
|