@jenesei-software/jenesei-kit-react 1.3.26 → 1.3.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (148) hide show
  1. package/build/area-preview.cjs.js +1 -1
  2. package/build/area-preview.es.js +1 -1
  3. package/build/area-skeleton.cjs.js +1 -1
  4. package/build/area-skeleton.es.js +1 -1
  5. package/build/build-info.txt +3 -3
  6. package/build/{component-BbZXNg5P.cjs → component-B97JZKUB.cjs} +2 -2
  7. package/build/{component-BbZXNg5P.cjs.map → component-B97JZKUB.cjs.map} +1 -1
  8. package/build/component-BABozkX6.cjs +2 -0
  9. package/build/component-BABozkX6.cjs.map +1 -0
  10. package/build/{component-DvkJKhCA.js → component-BHfH9Gw4.js} +5 -2
  11. package/build/component-BHfH9Gw4.js.map +1 -0
  12. package/build/{component-CGXjLqiU.js → component-BT3dejQO.js} +2 -2
  13. package/build/{component-CGXjLqiU.js.map → component-BT3dejQO.js.map} +1 -1
  14. package/build/{component-CUg8vGc0.js → component-BaGCJM5V.js} +2 -2
  15. package/build/{component-CUg8vGc0.js.map → component-BaGCJM5V.js.map} +1 -1
  16. package/build/{component-DXRFP4Ym.cjs → component-BgFRZSbi.cjs} +2 -2
  17. package/build/{component-DXRFP4Ym.cjs.map → component-BgFRZSbi.cjs.map} +1 -1
  18. package/build/{component-BCV2luzE.js → component-BpwTWRxp.js} +2 -2
  19. package/build/{component-BCV2luzE.js.map → component-BpwTWRxp.js.map} +1 -1
  20. package/build/{component-CL9kCwRv.js → component-Br2H7F-p.js} +2 -2
  21. package/build/{component-CL9kCwRv.js.map → component-Br2H7F-p.js.map} +1 -1
  22. package/build/{component-CsuyjLrN.js → component-BzFd5DyJ.js} +3 -3
  23. package/build/{component-CsuyjLrN.js.map → component-BzFd5DyJ.js.map} +1 -1
  24. package/build/{component-DTotEm4D.cjs → component-CjiOOMn9.cjs} +2 -2
  25. package/build/{component-DTotEm4D.cjs.map → component-CjiOOMn9.cjs.map} +1 -1
  26. package/build/{component-7NBd7NIb.cjs → component-ClQrDMsC.cjs} +2 -2
  27. package/build/{component-7NBd7NIb.cjs.map → component-ClQrDMsC.cjs.map} +1 -1
  28. package/build/{component-zim9WtKE.js → component-Cp433cAv.js} +3 -3
  29. package/build/{component-zim9WtKE.js.map → component-Cp433cAv.js.map} +1 -1
  30. package/build/{component-DYsviH75.cjs → component-CsIx8Dgr.cjs} +2 -2
  31. package/build/{component-DYsviH75.cjs.map → component-CsIx8Dgr.cjs.map} +1 -1
  32. package/build/{component-C0wHqqsE.js → component-D2Y1Ky9N.js} +4 -4
  33. package/build/{component-C0wHqqsE.js.map → component-D2Y1Ky9N.js.map} +1 -1
  34. package/build/{component-Ds4G9JaH.cjs → component-DFMjWiWi.cjs} +2 -2
  35. package/build/{component-Ds4G9JaH.cjs.map → component-DFMjWiWi.cjs.map} +1 -1
  36. package/build/{component-ChwxoVt7.js → component-DJcrW4KX.js} +2 -2
  37. package/build/{component-ChwxoVt7.js.map → component-DJcrW4KX.js.map} +1 -1
  38. package/build/{component-P6uOD564.js → component-DYX1oGKH.js} +2 -2
  39. package/build/{component-P6uOD564.js.map → component-DYX1oGKH.js.map} +1 -1
  40. package/build/{component-DC3s_be7.cjs → component-DcAF7Isg.cjs} +2 -2
  41. package/build/{component-DC3s_be7.cjs.map → component-DcAF7Isg.cjs.map} +1 -1
  42. package/build/{component-BzxsZZwo.cjs → component-Dwf2HFot.cjs} +2 -2
  43. package/build/{component-BzxsZZwo.cjs.map → component-Dwf2HFot.cjs.map} +1 -1
  44. package/build/{component-CC8gkK9W.cjs → component-OxaRuSX5.cjs} +2 -2
  45. package/build/{component-CC8gkK9W.cjs.map → component-OxaRuSX5.cjs.map} +1 -1
  46. package/build/{component-Ei1bxdq2.cjs → component-TMPesaZf.cjs} +2 -2
  47. package/build/{component-Ei1bxdq2.cjs.map → component-TMPesaZf.cjs.map} +1 -1
  48. package/build/component-accordion.cjs.js +1 -1
  49. package/build/component-accordion.es.js +2 -2
  50. package/build/component-button-group.cjs.js +1 -1
  51. package/build/component-button-group.es.js +2 -2
  52. package/build/component-button.cjs.js +1 -1
  53. package/build/component-button.es.js +1 -1
  54. package/build/component-checkbox-group.cjs.js +1 -1
  55. package/build/component-checkbox-group.es.js +2 -2
  56. package/build/component-checkbox.cjs.js +1 -1
  57. package/build/component-checkbox.es.js +2 -2
  58. package/build/component-date-picker.cjs.js +1 -1
  59. package/build/component-date-picker.d.ts +3 -0
  60. package/build/component-date-picker.es.js +2 -2
  61. package/build/component-icon.cjs.js +1 -1
  62. package/build/component-icon.es.js +1 -1
  63. package/build/component-image-button.cjs.js +1 -1
  64. package/build/component-image-button.es.js +1 -1
  65. package/build/component-image-select.cjs.js +1 -1
  66. package/build/component-image-select.es.js +2 -2
  67. package/build/component-image-slider.cjs.js +1 -1
  68. package/build/component-image-slider.es.js +2 -2
  69. package/build/component-image.cjs.js +1 -1
  70. package/build/component-image.es.js +2 -2
  71. package/build/component-input-otp.cjs.js +1 -1
  72. package/build/component-input-otp.d.ts +1 -0
  73. package/build/component-input-otp.es.js +2 -2
  74. package/build/component-input.cjs.js +1 -1
  75. package/build/component-input.d.ts +1 -0
  76. package/build/component-input.es.js +2 -2
  77. package/build/component-map.cjs.js +1 -1
  78. package/build/component-map.es.js +2 -2
  79. package/build/component-pagination.cjs.js +1 -1
  80. package/build/component-pagination.es.js +1 -1
  81. package/build/component-range.cjs.js +1 -1
  82. package/build/component-range.d.ts +1 -0
  83. package/build/component-range.es.js +2 -2
  84. package/build/component-select.cjs.js +1 -1
  85. package/build/component-select.es.js +1 -1
  86. package/build/component-textarea.cjs.js +1 -1
  87. package/build/component-textarea.d.ts +3 -1
  88. package/build/component-textarea.es.js +1 -1
  89. package/build/component-toggle.cjs.js +1 -1
  90. package/build/component-toggle.es.js +2 -2
  91. package/build/component-tooltip.cjs.js +1 -1
  92. package/build/component-tooltip.es.js +1 -1
  93. package/build/component-typography.cjs.js +1 -1
  94. package/build/component-typography.es.js +1 -1
  95. package/build/{component-BI5rC-2m.js → component-yTziSQZ7.js} +3 -3
  96. package/build/{component-BI5rC-2m.js.map → component-yTziSQZ7.js.map} +1 -1
  97. package/build/{component.components-DUGaqWm1.cjs → component.components-CsWG1Rwi.cjs} +2 -2
  98. package/build/{component.components-DUGaqWm1.cjs.map → component.components-CsWG1Rwi.cjs.map} +1 -1
  99. package/build/{component.components-DgG3v6IP.js → component.components-KcVM2DN2.js} +2 -2
  100. package/build/{component.components-DgG3v6IP.js.map → component.components-KcVM2DN2.js.map} +1 -1
  101. package/build/{component.constants-DuIk1IUA.cjs → component.constants-B-csc6ih.cjs} +2 -2
  102. package/build/{component.constants-DuIk1IUA.cjs.map → component.constants-B-csc6ih.cjs.map} +1 -1
  103. package/build/{component.constants-C_datTCs.js → component.constants-BkbucsSA.js} +3 -3
  104. package/build/{component.constants-C_datTCs.js.map → component.constants-BkbucsSA.js.map} +1 -1
  105. package/build/{component.constants-Bg4nPldh.js → component.constants-BmRV80H6.js} +2 -2
  106. package/build/{component.constants-Bg4nPldh.js.map → component.constants-BmRV80H6.js.map} +1 -1
  107. package/build/{component.constants-VFLYS55V.cjs → component.constants-ECVKYlcl.cjs} +2 -2
  108. package/build/{component.constants-VFLYS55V.cjs.map → component.constants-ECVKYlcl.cjs.map} +1 -1
  109. package/build/component.types-DRNn3P5n.cjs +2 -0
  110. package/build/component.types-DRNn3P5n.cjs.map +1 -0
  111. package/build/{component.types-DP9m5byW.js → component.types-SveBau90.js} +28 -3
  112. package/build/component.types-SveBau90.js.map +1 -0
  113. package/build/consts.cjs.js +1 -1
  114. package/build/consts.es.js +1 -1
  115. package/build/context-app.cjs.js +1 -1
  116. package/build/context-app.es.js +2 -2
  117. package/build/context-sonner.cjs.js +1 -1
  118. package/build/context-sonner.es.js +2 -2
  119. package/build/{context.constants-rTgzRM3c.js → context.constants-ByIVCRij.js} +2 -1
  120. package/build/{context.constants-rTgzRM3c.js.map → context.constants-ByIVCRij.js.map} +1 -1
  121. package/build/{context.constants-B9vCuOqK.cjs → context.constants-CHzb-q9a.cjs} +2 -2
  122. package/build/{context.constants-B9vCuOqK.cjs.map → context.constants-CHzb-q9a.cjs.map} +1 -1
  123. package/build/{context.hooks-BHFgUgBF.js → context.hooks-BDsIAUYd.js} +2 -2
  124. package/build/{context.hooks-BHFgUgBF.js.map → context.hooks-BDsIAUYd.js.map} +1 -1
  125. package/build/{context.hooks-D4-JZ2rN.js → context.hooks-BGRydtLx.js} +2 -2
  126. package/build/{context.hooks-D4-JZ2rN.js.map → context.hooks-BGRydtLx.js.map} +1 -1
  127. package/build/{context.hooks-C8qSZOb4.cjs → context.hooks-BHOQU6q9.cjs} +2 -2
  128. package/build/{context.hooks-C8qSZOb4.cjs.map → context.hooks-BHOQU6q9.cjs.map} +1 -1
  129. package/build/{context.hooks-6lCyn9Dp.cjs → context.hooks-Bjivw-Im.cjs} +2 -2
  130. package/build/{context.hooks-6lCyn9Dp.cjs.map → context.hooks-Bjivw-Im.cjs.map} +1 -1
  131. package/build/index.cjs.js +1 -1
  132. package/build/index.d.ts +5 -1
  133. package/build/index.es.js +18 -18
  134. package/build/style-error.cjs.js +1 -1
  135. package/build/style-error.es.js +1 -1
  136. package/build/style-theme.cjs.js +1 -1
  137. package/build/style-theme.es.js +1 -1
  138. package/build/{use-C3yxmiPP.cjs → use-2JigT9W0.cjs} +2 -2
  139. package/build/{use-C3yxmiPP.cjs.map → use-2JigT9W0.cjs.map} +1 -1
  140. package/build/{use-DP84XchN.js → use-DQXYSmcn.js} +3 -3
  141. package/build/{use-DP84XchN.js.map → use-DQXYSmcn.js.map} +1 -1
  142. package/package.json +1 -1
  143. package/build/component-DgZATMAS.cjs +0 -2
  144. package/build/component-DgZATMAS.cjs.map +0 -1
  145. package/build/component-DvkJKhCA.js.map +0 -1
  146. package/build/component.types-BMh5sB6v.cjs +0 -2
  147. package/build/component.types-BMh5sB6v.cjs.map +0 -1
  148. package/build/component.types-DP9m5byW.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"component-DYsviH75.cjs","sources":["../src/components/input-otp/component.tsx"],"sourcesContent":["import { ErrorMessage } from '@local/styles/error';\n\nimport { ClipboardEvent, FocusEvent, KeyboardEvent, useCallback, useRef, useState } from 'react';\n\nimport { Input } from '../input';\nimport { InputOTPProps, InputOTPWrapper } from '.';\n\nexport const InputOTP = (props: InputOTPProps) => {\n const [otp, setOtp] = useState<string[]>(new Array(props.length).fill(''));\n const inputsRef = useRef<(HTMLInputElement | null)[]>([]);\n const wrapperRef = useRef<HTMLDivElement | null>(null);\n\n const handlePaste = useCallback(\n (index: number, e: ClipboardEvent<HTMLInputElement>) => {\n e.preventDefault();\n\n const pasteData = e.clipboardData.getData('Text');\n const digits = pasteData.replace(/\\D/g, '').split('');\n\n if (!digits.length) return;\n\n setOtp((prevOtp) => {\n const newOtp = [...prevOtp];\n let currentIndex = index;\n\n for (let i = 0; i < digits.length && currentIndex < newOtp.length; i++) {\n newOtp[currentIndex] = digits[i];\n currentIndex++;\n }\n\n const joined = newOtp.join('');\n\n props.onChange?.(joined);\n\n if (newOtp.every((char) => char !== '')) {\n props.onComplete?.(joined);\n }\n\n setTimeout(() => {\n const firstEmpty = newOtp.findIndex((char) => char === '');\n if (firstEmpty !== -1) {\n inputsRef.current[firstEmpty]?.focus();\n } else if (currentIndex < newOtp.length) {\n inputsRef.current[currentIndex]?.focus();\n }\n }, 0);\n\n return newOtp;\n });\n },\n [props],\n );\n\n const handleChange = useCallback(\n (index: number, value: string) => {\n if (!/^\\d*$/.test(value)) return;\n\n setOtp((prevOtp) => {\n const newOtp = [...prevOtp];\n newOtp[index] = value.slice(-1);\n\n if (props.onChange) {\n props.onChange(newOtp.join(''));\n }\n\n if (newOtp.every((char) => char !== '')) {\n props.onComplete?.(newOtp.join(''));\n }\n\n if (value && index < prevOtp.length - 1) {\n setTimeout(() => {\n inputsRef.current[index + 1]?.focus();\n }, 0);\n }\n\n return newOtp;\n });\n },\n [props],\n );\n\n const handleKeyDown = (index: number, e: KeyboardEvent<HTMLInputElement>) => {\n const input = inputsRef.current[index];\n\n if (!input) return;\n\n if (e.key === 'ArrowRight') {\n const nextIndex = index < otp.length - 1 ? index + 1 : 0;\n const nextInput = inputsRef.current[nextIndex];\n\n if (nextInput) {\n nextInput.focus();\n setTimeout(() => nextInput.setSelectionRange(0, nextInput.value.length), 0);\n }\n }\n\n if (e.key === 'ArrowLeft') {\n const prevIndex = index > 0 ? index - 1 : otp.length - 1;\n const prevInput = inputsRef.current[prevIndex];\n\n if (prevInput) {\n prevInput.focus();\n setTimeout(() => prevInput.setSelectionRange(0, prevInput.value.length), 0);\n }\n }\n\n if (e.key === 'Backspace') {\n if (input.value) {\n setTimeout(() => input.setSelectionRange(0, input.value.length), 0);\n } else if (index > 0) {\n setTimeout(() => {\n const prevInput = inputsRef.current[index - 1];\n if (prevInput) {\n prevInput.focus();\n prevInput.setSelectionRange(0, prevInput.value.length);\n }\n }, 0);\n }\n }\n };\n\n const handleFocusInput = useCallback((e: FocusEvent<HTMLInputElement>) => {\n setTimeout(() => e.target.setSelectionRange(0, e.target.value.length), 0);\n }, []);\n return (\n <>\n <InputOTPWrapper\n $error={props.error}\n $size={props.size}\n id={props.id}\n ref={wrapperRef}\n onBlur={(e) => {\n setTimeout(() => {\n if (wrapperRef.current && !wrapperRef.current.contains(document.activeElement)) {\n props.onBlur?.(e);\n }\n }, 0);\n }}\n onFocus={(e) => {\n setTimeout(() => {\n if (wrapperRef.current?.contains(document.activeElement)) {\n props.onFocus?.(e);\n }\n }, 0);\n }}\n $sx={props.sx}\n >\n {otp.map((digit, index) => (\n <Input\n isWidthAsHeight\n key={index}\n tabIndex={index + 1}\n ref={(el) => {\n inputsRef.current[index] = el;\n }}\n variety='standard'\n type='text'\n inputMode='numeric'\n maxLength={1}\n value={digit}\n onFocus={handleFocusInput}\n onPaste={(e) => handlePaste(index, e)}\n onChange={(value) => handleChange(index, value)}\n onKeyDown={(e) => handleKeyDown(index, e)}\n genre={props.genre}\n size={props.size}\n font={props.font}\n />\n ))}\n </InputOTPWrapper>\n {props?.error ? (\n <ErrorMessage\n {...props.error}\n size={props?.error.size ?? props.size}\n font={{\n size: 12,\n weight: 400,\n family: props.font?.family,\n }}\n />\n ) : null}\n </>\n );\n};\n"],"names":["props","otp","setOtp","useState","Array","length","fill","inputsRef","useRef","wrapperRef","handlePaste","useCallback","index","e","preventDefault","digits","clipboardData","getData","replace","split","prevOtp","newOtp","currentIndex","i","joined","join","_a","onChange","call","every","char","_b","onComplete","setTimeout","firstEmpty","findIndex","current","focus","handleChange","value","test","slice","handleFocusInput","target","setSelectionRange","jsxs","Fragment","children","jsx","InputOTPWrapper","$error","error","$size","size","id","ref","onBlur","contains","document","activeElement","onFocus","$sx","sx","map","digit","Input","isWidthAsHeight","tabIndex","el","variety","type","inputMode","maxLength","onPaste","onKeyDown","input","key","nextIndex","nextInput","prevIndex","prevInput","handleKeyDown","genre","font","ErrorMessage","weight","family"],"mappings":"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"}
1
+ {"version":3,"file":"component-CsIx8Dgr.cjs","sources":["../src/components/input-otp/component.tsx"],"sourcesContent":["import { ErrorMessage } from '@local/styles/error';\n\nimport { ClipboardEvent, FocusEvent, KeyboardEvent, useCallback, useRef, useState } from 'react';\n\nimport { Input } from '../input';\nimport { InputOTPProps, InputOTPWrapper } from '.';\n\nexport const InputOTP = (props: InputOTPProps) => {\n const [otp, setOtp] = useState<string[]>(new Array(props.length).fill(''));\n const inputsRef = useRef<(HTMLInputElement | null)[]>([]);\n const wrapperRef = useRef<HTMLDivElement | null>(null);\n\n const handlePaste = useCallback(\n (index: number, e: ClipboardEvent<HTMLInputElement>) => {\n e.preventDefault();\n\n const pasteData = e.clipboardData.getData('Text');\n const digits = pasteData.replace(/\\D/g, '').split('');\n\n if (!digits.length) return;\n\n setOtp((prevOtp) => {\n const newOtp = [...prevOtp];\n let currentIndex = index;\n\n for (let i = 0; i < digits.length && currentIndex < newOtp.length; i++) {\n newOtp[currentIndex] = digits[i];\n currentIndex++;\n }\n\n const joined = newOtp.join('');\n\n props.onChange?.(joined);\n\n if (newOtp.every((char) => char !== '')) {\n props.onComplete?.(joined);\n }\n\n setTimeout(() => {\n const firstEmpty = newOtp.findIndex((char) => char === '');\n if (firstEmpty !== -1) {\n inputsRef.current[firstEmpty]?.focus();\n } else if (currentIndex < newOtp.length) {\n inputsRef.current[currentIndex]?.focus();\n }\n }, 0);\n\n return newOtp;\n });\n },\n [props],\n );\n\n const handleChange = useCallback(\n (index: number, value: string) => {\n if (!/^\\d*$/.test(value)) return;\n\n setOtp((prevOtp) => {\n const newOtp = [...prevOtp];\n newOtp[index] = value.slice(-1);\n\n if (props.onChange) {\n props.onChange(newOtp.join(''));\n }\n\n if (newOtp.every((char) => char !== '')) {\n props.onComplete?.(newOtp.join(''));\n }\n\n if (value && index < prevOtp.length - 1) {\n setTimeout(() => {\n inputsRef.current[index + 1]?.focus();\n }, 0);\n }\n\n return newOtp;\n });\n },\n [props],\n );\n\n const handleKeyDown = (index: number, e: KeyboardEvent<HTMLInputElement>) => {\n const input = inputsRef.current[index];\n\n if (!input) return;\n\n if (e.key === 'ArrowRight') {\n const nextIndex = index < otp.length - 1 ? index + 1 : 0;\n const nextInput = inputsRef.current[nextIndex];\n\n if (nextInput) {\n nextInput.focus();\n setTimeout(() => nextInput.setSelectionRange(0, nextInput.value.length), 0);\n }\n }\n\n if (e.key === 'ArrowLeft') {\n const prevIndex = index > 0 ? index - 1 : otp.length - 1;\n const prevInput = inputsRef.current[prevIndex];\n\n if (prevInput) {\n prevInput.focus();\n setTimeout(() => prevInput.setSelectionRange(0, prevInput.value.length), 0);\n }\n }\n\n if (e.key === 'Backspace') {\n if (input.value) {\n setTimeout(() => input.setSelectionRange(0, input.value.length), 0);\n } else if (index > 0) {\n setTimeout(() => {\n const prevInput = inputsRef.current[index - 1];\n if (prevInput) {\n prevInput.focus();\n prevInput.setSelectionRange(0, prevInput.value.length);\n }\n }, 0);\n }\n }\n };\n\n const handleFocusInput = useCallback((e: FocusEvent<HTMLInputElement>) => {\n setTimeout(() => e.target.setSelectionRange(0, e.target.value.length), 0);\n }, []);\n return (\n <>\n <InputOTPWrapper\n $error={props.error}\n $size={props.size}\n id={props.id}\n ref={wrapperRef}\n onBlur={(e) => {\n setTimeout(() => {\n if (wrapperRef.current && !wrapperRef.current.contains(document.activeElement)) {\n props.onBlur?.(e);\n }\n }, 0);\n }}\n onFocus={(e) => {\n setTimeout(() => {\n if (wrapperRef.current?.contains(document.activeElement)) {\n props.onFocus?.(e);\n }\n }, 0);\n }}\n $sx={props.sx}\n >\n {otp.map((digit, index) => (\n <Input\n isWidthAsHeight\n key={index}\n tabIndex={index + 1}\n ref={(el) => {\n inputsRef.current[index] = el;\n }}\n variety='standard'\n type='text'\n inputMode='numeric'\n maxLength={1}\n value={digit}\n onFocus={handleFocusInput}\n onPaste={(e) => handlePaste(index, e)}\n onChange={(value) => handleChange(index, value)}\n onKeyDown={(e) => handleKeyDown(index, e)}\n genre={props.genre}\n size={props.size}\n font={props.font}\n />\n ))}\n </InputOTPWrapper>\n {props?.error ? (\n <ErrorMessage\n {...props.error}\n size={props?.error.size ?? props.size}\n font={{\n size: 12,\n weight: 400,\n family: props.font?.family,\n }}\n />\n ) : null}\n </>\n );\n};\n"],"names":["props","otp","setOtp","useState","Array","length","fill","inputsRef","useRef","wrapperRef","handlePaste","useCallback","index","e","preventDefault","digits","clipboardData","getData","replace","split","prevOtp","newOtp","currentIndex","i","joined","join","_a","onChange","call","every","char","_b","onComplete","setTimeout","firstEmpty","findIndex","current","focus","handleChange","value","test","slice","handleFocusInput","target","setSelectionRange","jsxs","Fragment","children","jsx","InputOTPWrapper","$error","error","$size","size","id","ref","onBlur","contains","document","activeElement","onFocus","$sx","sx","map","digit","Input","isWidthAsHeight","tabIndex","el","variety","type","inputMode","maxLength","onPaste","onKeyDown","input","key","nextIndex","nextInput","prevIndex","prevInput","handleKeyDown","genre","font","ErrorMessage","weight","family"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import { j as jsxRuntimeExports } from "./jsx-runtime-BrDlu8eK.js";
2
2
  import { LIST_IMAGE_SUPPORTED_FORMAT_FOR_INPUT } from "./consts.es.js";
3
- import { u as useImageCrop } from "./use-DP84XchN.js";
4
- import { bt as KEY_SIZE_DATA, aR as Typography, B as Button, T as ImageSelectWrapper, U as ImageSelectListWrapper, bp as ErrorMessage } from "./context.constants-rTgzRM3c.js";
5
- import { I as Image } from "./component-BCV2luzE.js";
3
+ import { u as useImageCrop } from "./use-DQXYSmcn.js";
4
+ import { bt as KEY_SIZE_DATA, aR as Typography, B as Button, T as ImageSelectWrapper, U as ImageSelectListWrapper, bp as ErrorMessage } from "./context.constants-ByIVCRij.js";
5
+ import { I as Image } from "./component-BpwTWRxp.js";
6
6
  import { b as Stack } from "./component-DEZX8aBs.js";
7
7
  import { useTheme } from "styled-components";
8
8
  import "./context.constants-CZykW9B3.js";
@@ -429,4 +429,4 @@ const ImageSelect = (props) => {
429
429
  export {
430
430
  ImageSelect as I
431
431
  };
432
- //# sourceMappingURL=component-C0wHqqsE.js.map
432
+ //# sourceMappingURL=component-D2Y1Ky9N.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"component-C0wHqqsE.js","sources":["../src/hooks/use-image-view/use.tsx","../src/components/image-select/component.tsx"],"sourcesContent":["import { Button } from '@local/components/button';\nimport { Image } from '@local/components/image';\nimport { SliderImageProps } from '@local/components/image-slider';\nimport { Stack } from '@local/components/stack';\nimport { Typography } from '@local/components/typography';\nimport { useDialog } from '@local/contexts/context-dialog';\nimport { KEY_SIZE_DATA } from '@local/theme';\n\nimport { useCallback, useMemo } from 'react';\n\nimport { useImageViewProps } from '.';\n\nexport const useImageView = (props: useImageViewProps) => {\n const size = useMemo(() => KEY_SIZE_DATA[props.size], [props.size]);\n const br = useMemo(() => `${size.radius}px`, [size.radius]);\n\n const { add } = useDialog<{\n br?: string;\n }>({\n br: br,\n propsDialog: {\n borderRadius: br,\n padding: '0',\n background: 'whiteStandard',\n },\n });\n const handleAdd = useCallback(\n (image: SliderImageProps) => {\n add({\n content: (params, remove) => (\n <Stack\n sx={{\n default: {\n position: 'relative',\n overflow: 'hidden',\n aspectRatio: `${props.imageSettings.aspect * 2} / 2`,\n width: 'auto',\n maxWidth: '70dvw',\n height: '85dvh',\n borderRadius: params?.br,\n },\n tablet: {\n maxWidth: '95dvw',\n },\n }}\n >\n <Image\n sxStack={(theme) => ({\n default: {\n width: '100%',\n height: '100%',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: theme.palette.black10,\n position: 'absolute',\n pointerEvents: 'none',\n },\n })}\n isShowBeforeImage\n sxImage={{\n default: {\n objectFit: 'contain',\n },\n }}\n alt={image?.imageSrc}\n src={image?.imageSrc}\n componentFallback={\n <Typography\n sx={{\n default: {\n variant: 'h6',\n },\n }}\n >\n {props.locale.imageFallback}\n </Typography>\n }\n />\n <Button\n sx={{\n default: {\n position: 'absolute',\n bottom: 15,\n right: 15,\n },\n }}\n genre='realebail-white'\n size='small'\n icons={[\n {\n type: 'id',\n name: 'Arrow4',\n },\n ]}\n isWidthAsHeight\n isHiddenBorder\n isRadius\n onClick={() => remove?.()}\n />\n </Stack>\n ),\n });\n },\n [add, props.imageSettings.aspect, props.locale.imageFallback],\n );\n return { handleAdd };\n};\n","import { LIST_IMAGE_SUPPORTED_FORMAT_FOR_INPUT } from '@local/consts';\nimport { useImageCrop } from '@local/hooks/use-image-crop';\nimport { useImageView } from '@local/hooks/use-image-view';\nimport { ErrorMessage } from '@local/styles/error';\nimport { KEY_SIZE_DATA } from '@local/theme';\n\nimport { motion } from 'framer-motion';\nimport { DragEvent, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport { Button } from '../button';\nimport { Image } from '../image';\nimport { Stack } from '../stack';\nimport { Typography } from '../typography';\nimport { ImageSelectItemProps, ImageSelectListWrapper, ImageSelectProps, ImageSelectWrapper } from '.';\n\nexport const ImageSelect = (props: ImageSelectProps) => {\n const { onChange } = props;\n\n const size = useMemo(() => KEY_SIZE_DATA[props.size], [props.size]);\n\n const [images, setImages] = useState<ImageSelectItemProps[]>(props.images || []);\n\n const [isDraggingOver, setIsDraggingOver] = useState(false);\n\n const refInput = useRef<HTMLInputElement | null>(null);\n\n const theme = useTheme();\n\n const handleDrop = (e: DragEvent<HTMLDivElement>) => {\n e.preventDefault();\n if (e.dataTransfer.files?.length) {\n handleAddFilesCrop(e.dataTransfer.files);\n }\n };\n\n const handleDelete = (id: number) => {\n setImages((prev) => {\n const finalImages = prev.filter((img) => img.id !== id);\n onChange?.(finalImages);\n return finalImages;\n });\n };\n\n const handleOnSave = useCallback(\n (files: ImageSelectItemProps[] | null) => {\n if (files) {\n setImages((prev) => {\n const newImages = files.map((file, idx) => ({\n ...file,\n index: prev.length + idx,\n }));\n const finalImages = [...prev, ...newImages];\n onChange?.(finalImages);\n return finalImages;\n });\n }\n },\n [onChange],\n );\n\n const openFileDialog = () => {\n refInput.current?.click();\n };\n\n const resetImages = () => {\n setImages(props.defaultImages || []);\n onChange?.(props.defaultImages || []);\n };\n\n const { handleAddFiles: handleAddFilesCrop } = useImageCrop({\n onSave: handleOnSave,\n locale: props.locale,\n dialog: {\n button: {\n genre: props.propsButton.default.genre,\n size: props.propsButton.default.size,\n },\n buttonDelete: {\n genre: props.propsButton.delete.genre,\n size: props.propsButton.delete.size,\n },\n },\n imageSettings: {\n maxSize: props.imageSettings.maxSize,\n maxCount: props.imageSettings.maxCount - images.length,\n aspect: props.imageSettings.aspect,\n },\n refInput: refInput,\n });\n\n const { handleAdd } = useImageView({\n size: props.size,\n locale: props.locale,\n imageSettings: props.imageSettings,\n genre: props.genre,\n });\n\n useEffect(() => {\n setImages(props.images || []);\n }, [props.images]);\n\n return (\n <>\n <ImageSelectWrapper $genre={props.genre} $size={props.size} id={props.id} $sx={props.sx} $error={props.error}>\n <ImageSelectListWrapper\n onDrop={(e) => {\n handleDrop(e);\n setIsDraggingOver(false);\n }}\n onDragOver={(e) => e.preventDefault()}\n onDragEnter={() => setIsDraggingOver(true)}\n onDragLeave={() => setIsDraggingOver(false)}\n animate={{\n borderColor: isDraggingOver\n ? theme.colors.imageSelect[props.genre].border.hover\n : theme.colors.imageSelect[props.genre].border.rest,\n }}\n transition={{ duration: 0.3 }}\n $genre={props.genre}\n $size={props.size}\n >\n <motion.div\n transition={{\n layout: {\n duration: 0.3,\n ease: 'easeInOut',\n type: 'spring',\n },\n }}\n layout\n style={{ display: 'flex', flexWrap: 'wrap', gap: `${size.padding - 2}px` }}\n >\n {images.map(\n (img) =>\n img.url && (\n <motion.div\n key={img.id}\n style={{\n position: 'relative',\n width: `${props.imageSettings.width}px`,\n height: `${props.imageSettings.height}px`,\n userSelect: 'none',\n overflow: 'hidden',\n borderRadius: `${size.radius}px`,\n flexGrow: 1,\n }}\n layout\n transition={{\n layout: {\n duration: 0.3,\n ease: 'easeInOut',\n type: 'spring',\n },\n }}\n >\n <Image\n sxStack={(theme) => ({\n default: {\n width: '100%',\n height: '100%',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: theme.palette.black10,\n position: 'absolute',\n pointerEvents: 'none',\n },\n })}\n isShowBeforeImage={props.isContain}\n sxImage={{\n default: {\n objectFit: props.isContain ? 'contain' : 'cover',\n },\n }}\n alt={img.name || 'image'}\n src={img.url}\n componentFallback={\n <Typography\n sx={{\n default: {\n variant: 'h6',\n },\n }}\n >\n {props.locale.imageFallback}\n </Typography>\n }\n />\n <Button\n sx={{\n default: {\n position: 'absolute',\n top: 5,\n right: 5,\n },\n }}\n genre={props.genre}\n size='small'\n icons={[\n {\n type: 'id',\n name: 'Close',\n },\n ]}\n isWidthAsHeight\n isHiddenBorder\n isRadius\n onClick={() => handleDelete(img.id)}\n />\n <Button\n sx={{\n default: {\n position: 'absolute',\n bottom: 5,\n right: 5,\n },\n }}\n genre={props.genre}\n size='small'\n icons={[\n {\n type: 'id',\n name: 'Activity',\n },\n ]}\n isWidthAsHeight\n isHiddenBorder\n isRadius\n onClick={() => img.url && handleAdd({ id: img.id, imageSrc: img.url })}\n />\n </motion.div>\n ),\n )}\n {images.length === 0 ? (\n <div\n onClick={openFileDialog}\n key='empty'\n style={{\n position: 'relative',\n width: `${props.imageSettings.width}px`,\n height: `${props.imageSettings.height}px`,\n userSelect: 'none',\n overflow: 'hidden',\n borderRadius: `${size.radius}px`,\n flexGrow: 1,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n textAlign: 'center',\n cursor: 'pointer',\n }}\n >\n <Typography\n style={{\n color: theme.colors.imageSelect[props.genre].color.rest,\n }}\n sx={{\n default: {},\n }}\n >\n {props.locale.dragAndDrop}\n </Typography>\n </div>\n ) : null}\n </motion.div>\n\n <input\n ref={refInput}\n type='file'\n accept={LIST_IMAGE_SUPPORTED_FORMAT_FOR_INPUT}\n multiple\n style={{ display: 'none' }}\n onChange={(e) => {\n if (e.target.files) handleAddFilesCrop(e.target.files);\n }}\n />\n </ImageSelectListWrapper>\n <Stack sx={{ default: { flexGrow: 1, gap: `${size.padding - 2}px` } }}>\n <Button\n type='button'\n genre={props.genre}\n size={props.size}\n sx={{\n default: {\n flexGrow: 3,\n },\n }}\n isRadius\n onClick={openFileDialog}\n >\n {props.locale.buttonAdd}\n </Button>\n <Button\n isRadius\n type='button'\n sx={{\n default: {\n flexGrow: 1,\n },\n }}\n onClick={resetImages}\n genre={props.genre}\n size={props.size}\n >\n {props.locale.buttonReset}\n </Button>\n </Stack>\n </ImageSelectWrapper>\n {props?.error ? (\n <ErrorMessage\n {...props.error}\n size={props?.error.size ?? props.size}\n font={{\n size: 12,\n weight: 400,\n family: theme.font.family,\n }}\n />\n ) : null}\n </>\n );\n};\n"],"names":["jsxs","jsx","Fragment","theme"],"mappings":"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"}
1
+ {"version":3,"file":"component-D2Y1Ky9N.js","sources":["../src/hooks/use-image-view/use.tsx","../src/components/image-select/component.tsx"],"sourcesContent":["import { Button } from '@local/components/button';\nimport { Image } from '@local/components/image';\nimport { SliderImageProps } from '@local/components/image-slider';\nimport { Stack } from '@local/components/stack';\nimport { Typography } from '@local/components/typography';\nimport { useDialog } from '@local/contexts/context-dialog';\nimport { KEY_SIZE_DATA } from '@local/theme';\n\nimport { useCallback, useMemo } from 'react';\n\nimport { useImageViewProps } from '.';\n\nexport const useImageView = (props: useImageViewProps) => {\n const size = useMemo(() => KEY_SIZE_DATA[props.size], [props.size]);\n const br = useMemo(() => `${size.radius}px`, [size.radius]);\n\n const { add } = useDialog<{\n br?: string;\n }>({\n br: br,\n propsDialog: {\n borderRadius: br,\n padding: '0',\n background: 'whiteStandard',\n },\n });\n const handleAdd = useCallback(\n (image: SliderImageProps) => {\n add({\n content: (params, remove) => (\n <Stack\n sx={{\n default: {\n position: 'relative',\n overflow: 'hidden',\n aspectRatio: `${props.imageSettings.aspect * 2} / 2`,\n width: 'auto',\n maxWidth: '70dvw',\n height: '85dvh',\n borderRadius: params?.br,\n },\n tablet: {\n maxWidth: '95dvw',\n },\n }}\n >\n <Image\n sxStack={(theme) => ({\n default: {\n width: '100%',\n height: '100%',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: theme.palette.black10,\n position: 'absolute',\n pointerEvents: 'none',\n },\n })}\n isShowBeforeImage\n sxImage={{\n default: {\n objectFit: 'contain',\n },\n }}\n alt={image?.imageSrc}\n src={image?.imageSrc}\n componentFallback={\n <Typography\n sx={{\n default: {\n variant: 'h6',\n },\n }}\n >\n {props.locale.imageFallback}\n </Typography>\n }\n />\n <Button\n sx={{\n default: {\n position: 'absolute',\n bottom: 15,\n right: 15,\n },\n }}\n genre='realebail-white'\n size='small'\n icons={[\n {\n type: 'id',\n name: 'Arrow4',\n },\n ]}\n isWidthAsHeight\n isHiddenBorder\n isRadius\n onClick={() => remove?.()}\n />\n </Stack>\n ),\n });\n },\n [add, props.imageSettings.aspect, props.locale.imageFallback],\n );\n return { handleAdd };\n};\n","import { LIST_IMAGE_SUPPORTED_FORMAT_FOR_INPUT } from '@local/consts';\nimport { useImageCrop } from '@local/hooks/use-image-crop';\nimport { useImageView } from '@local/hooks/use-image-view';\nimport { ErrorMessage } from '@local/styles/error';\nimport { KEY_SIZE_DATA } from '@local/theme';\n\nimport { motion } from 'framer-motion';\nimport { DragEvent, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport { Button } from '../button';\nimport { Image } from '../image';\nimport { Stack } from '../stack';\nimport { Typography } from '../typography';\nimport { ImageSelectItemProps, ImageSelectListWrapper, ImageSelectProps, ImageSelectWrapper } from '.';\n\nexport const ImageSelect = (props: ImageSelectProps) => {\n const { onChange } = props;\n\n const size = useMemo(() => KEY_SIZE_DATA[props.size], [props.size]);\n\n const [images, setImages] = useState<ImageSelectItemProps[]>(props.images || []);\n\n const [isDraggingOver, setIsDraggingOver] = useState(false);\n\n const refInput = useRef<HTMLInputElement | null>(null);\n\n const theme = useTheme();\n\n const handleDrop = (e: DragEvent<HTMLDivElement>) => {\n e.preventDefault();\n if (e.dataTransfer.files?.length) {\n handleAddFilesCrop(e.dataTransfer.files);\n }\n };\n\n const handleDelete = (id: number) => {\n setImages((prev) => {\n const finalImages = prev.filter((img) => img.id !== id);\n onChange?.(finalImages);\n return finalImages;\n });\n };\n\n const handleOnSave = useCallback(\n (files: ImageSelectItemProps[] | null) => {\n if (files) {\n setImages((prev) => {\n const newImages = files.map((file, idx) => ({\n ...file,\n index: prev.length + idx,\n }));\n const finalImages = [...prev, ...newImages];\n onChange?.(finalImages);\n return finalImages;\n });\n }\n },\n [onChange],\n );\n\n const openFileDialog = () => {\n refInput.current?.click();\n };\n\n const resetImages = () => {\n setImages(props.defaultImages || []);\n onChange?.(props.defaultImages || []);\n };\n\n const { handleAddFiles: handleAddFilesCrop } = useImageCrop({\n onSave: handleOnSave,\n locale: props.locale,\n dialog: {\n button: {\n genre: props.propsButton.default.genre,\n size: props.propsButton.default.size,\n },\n buttonDelete: {\n genre: props.propsButton.delete.genre,\n size: props.propsButton.delete.size,\n },\n },\n imageSettings: {\n maxSize: props.imageSettings.maxSize,\n maxCount: props.imageSettings.maxCount - images.length,\n aspect: props.imageSettings.aspect,\n },\n refInput: refInput,\n });\n\n const { handleAdd } = useImageView({\n size: props.size,\n locale: props.locale,\n imageSettings: props.imageSettings,\n genre: props.genre,\n });\n\n useEffect(() => {\n setImages(props.images || []);\n }, [props.images]);\n\n return (\n <>\n <ImageSelectWrapper $genre={props.genre} $size={props.size} id={props.id} $sx={props.sx} $error={props.error}>\n <ImageSelectListWrapper\n onDrop={(e) => {\n handleDrop(e);\n setIsDraggingOver(false);\n }}\n onDragOver={(e) => e.preventDefault()}\n onDragEnter={() => setIsDraggingOver(true)}\n onDragLeave={() => setIsDraggingOver(false)}\n animate={{\n borderColor: isDraggingOver\n ? theme.colors.imageSelect[props.genre].border.hover\n : theme.colors.imageSelect[props.genre].border.rest,\n }}\n transition={{ duration: 0.3 }}\n $genre={props.genre}\n $size={props.size}\n >\n <motion.div\n transition={{\n layout: {\n duration: 0.3,\n ease: 'easeInOut',\n type: 'spring',\n },\n }}\n layout\n style={{ display: 'flex', flexWrap: 'wrap', gap: `${size.padding - 2}px` }}\n >\n {images.map(\n (img) =>\n img.url && (\n <motion.div\n key={img.id}\n style={{\n position: 'relative',\n width: `${props.imageSettings.width}px`,\n height: `${props.imageSettings.height}px`,\n userSelect: 'none',\n overflow: 'hidden',\n borderRadius: `${size.radius}px`,\n flexGrow: 1,\n }}\n layout\n transition={{\n layout: {\n duration: 0.3,\n ease: 'easeInOut',\n type: 'spring',\n },\n }}\n >\n <Image\n sxStack={(theme) => ({\n default: {\n width: '100%',\n height: '100%',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: theme.palette.black10,\n position: 'absolute',\n pointerEvents: 'none',\n },\n })}\n isShowBeforeImage={props.isContain}\n sxImage={{\n default: {\n objectFit: props.isContain ? 'contain' : 'cover',\n },\n }}\n alt={img.name || 'image'}\n src={img.url}\n componentFallback={\n <Typography\n sx={{\n default: {\n variant: 'h6',\n },\n }}\n >\n {props.locale.imageFallback}\n </Typography>\n }\n />\n <Button\n sx={{\n default: {\n position: 'absolute',\n top: 5,\n right: 5,\n },\n }}\n genre={props.genre}\n size='small'\n icons={[\n {\n type: 'id',\n name: 'Close',\n },\n ]}\n isWidthAsHeight\n isHiddenBorder\n isRadius\n onClick={() => handleDelete(img.id)}\n />\n <Button\n sx={{\n default: {\n position: 'absolute',\n bottom: 5,\n right: 5,\n },\n }}\n genre={props.genre}\n size='small'\n icons={[\n {\n type: 'id',\n name: 'Activity',\n },\n ]}\n isWidthAsHeight\n isHiddenBorder\n isRadius\n onClick={() => img.url && handleAdd({ id: img.id, imageSrc: img.url })}\n />\n </motion.div>\n ),\n )}\n {images.length === 0 ? (\n <div\n onClick={openFileDialog}\n key='empty'\n style={{\n position: 'relative',\n width: `${props.imageSettings.width}px`,\n height: `${props.imageSettings.height}px`,\n userSelect: 'none',\n overflow: 'hidden',\n borderRadius: `${size.radius}px`,\n flexGrow: 1,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n textAlign: 'center',\n cursor: 'pointer',\n }}\n >\n <Typography\n style={{\n color: theme.colors.imageSelect[props.genre].color.rest,\n }}\n sx={{\n default: {},\n }}\n >\n {props.locale.dragAndDrop}\n </Typography>\n </div>\n ) : null}\n </motion.div>\n\n <input\n ref={refInput}\n type='file'\n accept={LIST_IMAGE_SUPPORTED_FORMAT_FOR_INPUT}\n multiple\n style={{ display: 'none' }}\n onChange={(e) => {\n if (e.target.files) handleAddFilesCrop(e.target.files);\n }}\n />\n </ImageSelectListWrapper>\n <Stack sx={{ default: { flexGrow: 1, gap: `${size.padding - 2}px` } }}>\n <Button\n type='button'\n genre={props.genre}\n size={props.size}\n sx={{\n default: {\n flexGrow: 3,\n },\n }}\n isRadius\n onClick={openFileDialog}\n >\n {props.locale.buttonAdd}\n </Button>\n <Button\n isRadius\n type='button'\n sx={{\n default: {\n flexGrow: 1,\n },\n }}\n onClick={resetImages}\n genre={props.genre}\n size={props.size}\n >\n {props.locale.buttonReset}\n </Button>\n </Stack>\n </ImageSelectWrapper>\n {props?.error ? (\n <ErrorMessage\n {...props.error}\n size={props?.error.size ?? props.size}\n font={{\n size: 12,\n weight: 400,\n family: theme.font.family,\n }}\n />\n ) : null}\n </>\n );\n};\n"],"names":["jsxs","jsx","Fragment","theme"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";const o=require("./jsx-runtime-BcGej2Kr.cjs"),c=require("./component-5Utdcc2G.cjs"),n=require("react"),r=require("./context.constants-B9vCuOqK.cjs");exports.Accordion=e=>{const i=n.useCallback(()=>{e.onClickSummary&&e.onClickSummary()},[e]),s=n.useCallback(o=>{e.onClickIcon&&(o.stopPropagation(),e.onClickIcon())},[e]);return o.jsxRuntimeExports.jsx(c.Stack,{...e.wrapperProps,children:o.jsxRuntimeExports.jsxs(r.AccordionWrapper,{children:[o.jsxRuntimeExports.jsxs(r.AccordionSummary,{onClick:i,children:[o.jsxRuntimeExports.jsx(r.AccordionSummaryContent,{$isAccordionIcon:e.isAccordionIcon,children:e.accordionSummary}),e.isAccordionIcon&&o.jsxRuntimeExports.jsx(r.AccordionStyledIcon,{$expanded:e.expanded,onClick:s,name:"Arrow1",color:"black100",type:"id",size:"large"})]}),o.jsxRuntimeExports.jsx(r.AccordionDetails,{$expanded:e.expanded,children:e.accordionDetails})]})})};
2
- //# sourceMappingURL=component-Ds4G9JaH.cjs.map
1
+ "use strict";const o=require("./jsx-runtime-BcGej2Kr.cjs"),c=require("./component-5Utdcc2G.cjs"),n=require("react"),r=require("./context.constants-CHzb-q9a.cjs");exports.Accordion=e=>{const i=n.useCallback(()=>{e.onClickSummary&&e.onClickSummary()},[e]),s=n.useCallback(o=>{e.onClickIcon&&(o.stopPropagation(),e.onClickIcon())},[e]);return o.jsxRuntimeExports.jsx(c.Stack,{...e.wrapperProps,children:o.jsxRuntimeExports.jsxs(r.AccordionWrapper,{children:[o.jsxRuntimeExports.jsxs(r.AccordionSummary,{onClick:i,children:[o.jsxRuntimeExports.jsx(r.AccordionSummaryContent,{$isAccordionIcon:e.isAccordionIcon,children:e.accordionSummary}),e.isAccordionIcon&&o.jsxRuntimeExports.jsx(r.AccordionStyledIcon,{$expanded:e.expanded,onClick:s,name:"Arrow1",color:"black100",type:"id",size:"large"})]}),o.jsxRuntimeExports.jsx(r.AccordionDetails,{$expanded:e.expanded,children:e.accordionDetails})]})})};
2
+ //# sourceMappingURL=component-DFMjWiWi.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"component-Ds4G9JaH.cjs","sources":["../src/components/accordion/component.tsx"],"sourcesContent":["import { Stack } from '@local/components/stack';\n\nimport React, { FC, useCallback } from 'react';\n\nimport {\n AccordionDetails,\n AccordionProps,\n AccordionStyledIcon,\n AccordionSummary,\n AccordionSummaryContent,\n AccordionWrapper,\n} from '.';\n\nexport const Accordion: FC<AccordionProps> = (props) => {\n const onClickSummary = useCallback(() => {\n if (props.onClickSummary) props.onClickSummary();\n }, [props]);\n\n const onClickIcon = useCallback(\n (event: React.MouseEvent<SVGSVGElement>) => {\n if (props.onClickIcon) {\n event.stopPropagation();\n\n props.onClickIcon();\n }\n },\n [props],\n );\n\n return (\n <Stack {...props.wrapperProps}>\n <AccordionWrapper>\n <AccordionSummary onClick={onClickSummary}>\n <AccordionSummaryContent $isAccordionIcon={props.isAccordionIcon}>\n {props.accordionSummary}\n </AccordionSummaryContent>\n {props.isAccordionIcon && (\n <AccordionStyledIcon\n $expanded={props.expanded}\n onClick={onClickIcon}\n name='Arrow1'\n color='black100'\n type='id'\n size='large'\n />\n )}\n </AccordionSummary>\n <AccordionDetails $expanded={props.expanded}>{props.accordionDetails}</AccordionDetails>\n </AccordionWrapper>\n </Stack>\n );\n};\n"],"names":["props","onClickSummary","useCallback","onClickIcon","event","stopPropagation","Stack","wrapperProps","children","AccordionWrapper","jsxs","AccordionSummary","onClick","jsx","AccordionSummaryContent","$isAccordionIcon","isAccordionIcon","accordionSummary","AccordionStyledIcon","$expanded","expanded","name","color","type","size","AccordionDetails","accordionDetails"],"mappings":"oLAa8CA,IAC5C,MAAMC,EAAiBC,EAAAA,YAAY,KAC7BF,EAAMC,gBAAgBD,EAAMC,kBAC/B,CAACD,IAEEG,EAAcD,EAAAA,YACjBE,IACKJ,EAAMG,cACRC,EAAMC,kBAENL,EAAMG,gBAGV,CAACH,IAGH,+BACGM,QAAA,IAAUN,EAAMO,aACfC,kCAACC,mBAAA,CACCD,SAAA,CAAAE,EAAAA,kBAAAA,KAACC,EAAAA,iBAAA,CAAiBC,QAASX,EACzBO,SAAA,CAAAK,wBAACC,EAAAA,wBAAA,CAAwBC,iBAAkBf,EAAMgB,gBAC9CR,WAAMS,mBAERjB,EAAMgB,iBACLH,EAAAA,kBAAAA,IAACK,EAAAA,oBAAA,CACCC,UAAWnB,EAAMoB,SACjBR,QAAST,EACTkB,KAAK,SACLC,MAAM,WACNC,KAAK,KACLC,KAAK,qCAIVC,EAAAA,iBAAA,CAAiBN,UAAWnB,EAAMoB,SAAWZ,WAAMkB"}
1
+ {"version":3,"file":"component-DFMjWiWi.cjs","sources":["../src/components/accordion/component.tsx"],"sourcesContent":["import { Stack } from '@local/components/stack';\n\nimport React, { FC, useCallback } from 'react';\n\nimport {\n AccordionDetails,\n AccordionProps,\n AccordionStyledIcon,\n AccordionSummary,\n AccordionSummaryContent,\n AccordionWrapper,\n} from '.';\n\nexport const Accordion: FC<AccordionProps> = (props) => {\n const onClickSummary = useCallback(() => {\n if (props.onClickSummary) props.onClickSummary();\n }, [props]);\n\n const onClickIcon = useCallback(\n (event: React.MouseEvent<SVGSVGElement>) => {\n if (props.onClickIcon) {\n event.stopPropagation();\n\n props.onClickIcon();\n }\n },\n [props],\n );\n\n return (\n <Stack {...props.wrapperProps}>\n <AccordionWrapper>\n <AccordionSummary onClick={onClickSummary}>\n <AccordionSummaryContent $isAccordionIcon={props.isAccordionIcon}>\n {props.accordionSummary}\n </AccordionSummaryContent>\n {props.isAccordionIcon && (\n <AccordionStyledIcon\n $expanded={props.expanded}\n onClick={onClickIcon}\n name='Arrow1'\n color='black100'\n type='id'\n size='large'\n />\n )}\n </AccordionSummary>\n <AccordionDetails $expanded={props.expanded}>{props.accordionDetails}</AccordionDetails>\n </AccordionWrapper>\n </Stack>\n );\n};\n"],"names":["props","onClickSummary","useCallback","onClickIcon","event","stopPropagation","Stack","wrapperProps","children","AccordionWrapper","jsxs","AccordionSummary","onClick","jsx","AccordionSummaryContent","$isAccordionIcon","isAccordionIcon","accordionSummary","AccordionStyledIcon","$expanded","expanded","name","color","type","size","AccordionDetails","accordionDetails"],"mappings":"oLAa8CA,IAC5C,MAAMC,EAAiBC,EAAAA,YAAY,KAC7BF,EAAMC,gBAAgBD,EAAMC,kBAC/B,CAACD,IAEEG,EAAcD,EAAAA,YACjBE,IACKJ,EAAMG,cACRC,EAAMC,kBAENL,EAAMG,gBAGV,CAACH,IAGH,+BACGM,QAAA,IAAUN,EAAMO,aACfC,kCAACC,mBAAA,CACCD,SAAA,CAAAE,EAAAA,kBAAAA,KAACC,EAAAA,iBAAA,CAAiBC,QAASX,EACzBO,SAAA,CAAAK,wBAACC,EAAAA,wBAAA,CAAwBC,iBAAkBf,EAAMgB,gBAC9CR,WAAMS,mBAERjB,EAAMgB,iBACLH,EAAAA,kBAAAA,IAACK,EAAAA,oBAAA,CACCC,UAAWnB,EAAMoB,SACjBR,QAAST,EACTkB,KAAK,SACLC,MAAM,WACNC,KAAK,KACLC,KAAK,qCAIVC,EAAAA,iBAAA,CAAiBN,UAAWnB,EAAMoB,SAAWZ,WAAMkB"}
@@ -1,7 +1,7 @@
1
1
  import { j as jsxRuntimeExports } from "./jsx-runtime-BrDlu8eK.js";
2
2
  import { useCallback, useMemo } from "react";
3
3
  import { useTheme } from "styled-components";
4
- import { ah as RangeWrapper, aj as RangeThumb, ai as RangeTrack } from "./context.constants-rTgzRM3c.js";
4
+ import { ah as RangeWrapper, aj as RangeThumb, ai as RangeTrack } from "./context.constants-ByIVCRij.js";
5
5
  const Range = (props) => {
6
6
  const { onChange } = props;
7
7
  const handleChange = useCallback(
@@ -71,4 +71,4 @@ const Range = (props) => {
71
71
  export {
72
72
  Range as R
73
73
  };
74
- //# sourceMappingURL=component-ChwxoVt7.js.map
74
+ //# sourceMappingURL=component-DJcrW4KX.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"component-ChwxoVt7.js","sources":["../src/components/range/component.tsx"],"sourcesContent":["import { useCallback, useMemo } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport { RangeProps, RangeThumb, RangeTrack, RangeWrapper } from '.';\n\nexport const Range = (props: RangeProps) => {\n const { onChange } = props;\n const handleChange = useCallback(\n (index: number, newValue: number) => {\n const newValues = [...props.values];\n newValues[index] = Math.min(props.max, Math.max(props.min, newValue));\n onChange(newValues.sort((a, b) => a - b));\n },\n [onChange, props.max, props.min, props.values],\n );\n const getThumbPositionPercent = useCallback(\n (val: number) => ((val - props.min) / (props.max - props.min)) * 100,\n [props.max, props.min],\n );\n const positions = useMemo(\n () => props.values.map((val) => getThumbPositionPercent(val)),\n [getThumbPositionPercent, props.values],\n );\n const theme = useTheme();\n\n const colorTrackBackground = theme.colors.range[props.genre].track.background.rest;\n const colorTrackGradient = theme.colors.range[props.genre].track.gradient.rest;\n const colorThumbBorder = theme.colors.range[props.genre].thumb.border.rest;\n const colorThumbBackground = theme.colors.range[props.genre].thumb.background.rest;\n\n const trackGradient = useMemo(\n () =>\n positions\n .map((position, idx) => {\n const isFirst = idx === 0;\n const isLast = idx === positions.length - 1;\n\n if (isFirst)\n return `${colorTrackBackground} 0%, ${colorTrackBackground} ${position}%, ${colorTrackGradient} ${position}%`;\n if (isLast)\n return `${colorTrackGradient} ${position}%, ${colorTrackBackground} ${position}%, ${colorTrackBackground} 100%`;\n return `${colorTrackGradient} ${position}%`;\n })\n .join(', '),\n [colorTrackGradient, colorTrackBackground, positions],\n );\n const gradient = useMemo(() => `linear-gradient(to right, ${trackGradient})`, [trackGradient]);\n\n return (\n <RangeWrapper $size={props.size} $sx={props.sx} $error={props.error} onBlur={props.onBlur}>\n {props.values.map((val, idx) => (\n <RangeThumb\n key={idx}\n type='range'\n $size={props.size}\n $genre={props.genre}\n min={props.min}\n max={props.max}\n step={props.step}\n value={val}\n onChange={(e) => handleChange(idx, parseFloat(e.target.value))}\n style={{ zIndex: 100 + idx }}\n $colorBackground={colorThumbBackground}\n $colorBorder={colorThumbBorder}\n />\n ))}\n <RangeTrack\n $size={props.size}\n $genre={props.genre}\n style={{\n background: gradient,\n }}\n />\n </RangeWrapper>\n );\n};\n"],"names":["jsxs","jsx"],"mappings":";;;;AAKO,MAAM,QAAQ,CAAC,UAAsB;AAC1C,QAAM,EAAE,aAAa;AACrB,QAAM,eAAe;AAAA,IACnB,CAAC,OAAe,aAAqB;AACnC,YAAM,YAAY,CAAC,GAAG,MAAM,MAAM;AAClC,gBAAU,KAAK,IAAI,KAAK,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,QAAQ,CAAC;AACpE,eAAS,UAAU,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC;AAAA,IAAA;AAAA,IAE1C,CAAC,UAAU,MAAM,KAAK,MAAM,KAAK,MAAM,MAAM;AAAA,EAAA;AAE/C,QAAM,0BAA0B;AAAA,IAC9B,CAAC,SAAkB,MAAM,MAAM,QAAQ,MAAM,MAAM,MAAM,OAAQ;AAAA,IACjE,CAAC,MAAM,KAAK,MAAM,GAAG;AAAA,EAAA;AAEvB,QAAM,YAAY;AAAA,IAChB,MAAM,MAAM,OAAO,IAAI,CAAC,QAAQ,wBAAwB,GAAG,CAAC;AAAA,IAC5D,CAAC,yBAAyB,MAAM,MAAM;AAAA,EAAA;AAExC,QAAM,QAAQ,SAAA;AAEd,QAAM,uBAAuB,MAAM,OAAO,MAAM,MAAM,KAAK,EAAE,MAAM,WAAW;AAC9E,QAAM,qBAAqB,MAAM,OAAO,MAAM,MAAM,KAAK,EAAE,MAAM,SAAS;AAC1E,QAAM,mBAAmB,MAAM,OAAO,MAAM,MAAM,KAAK,EAAE,MAAM,OAAO;AACtE,QAAM,uBAAuB,MAAM,OAAO,MAAM,MAAM,KAAK,EAAE,MAAM,WAAW;AAE9E,QAAM,gBAAgB;AAAA,IACpB,MACE,UACG,IAAI,CAAC,UAAU,QAAQ;AACtB,YAAM,UAAU,QAAQ;AACxB,YAAM,SAAS,QAAQ,UAAU,SAAS;AAE1C,UAAI;AACF,eAAO,GAAG,oBAAoB,QAAQ,oBAAoB,IAAI,QAAQ,MAAM,kBAAkB,IAAI,QAAQ;AAC5G,UAAI;AACF,eAAO,GAAG,kBAAkB,IAAI,QAAQ,MAAM,oBAAoB,IAAI,QAAQ,MAAM,oBAAoB;AAC1G,aAAO,GAAG,kBAAkB,IAAI,QAAQ;AAAA,IAAA,CACzC,EACA,KAAK,IAAI;AAAA,IACd,CAAC,oBAAoB,sBAAsB,SAAS;AAAA,EAAA;AAEtD,QAAM,WAAW,QAAQ,MAAM,6BAA6B,aAAa,KAAK,CAAC,aAAa,CAAC;AAE7F,SACEA,kCAAAA,KAAC,cAAA,EAAa,OAAO,MAAM,MAAM,KAAK,MAAM,IAAI,QAAQ,MAAM,OAAO,QAAQ,MAAM,QAChF,UAAA;AAAA,IAAA,MAAM,OAAO,IAAI,CAAC,KAAK,QACtBC,kCAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QAEC,MAAK;AAAA,QACL,OAAO,MAAM;AAAA,QACb,QAAQ,MAAM;AAAA,QACd,KAAK,MAAM;AAAA,QACX,KAAK,MAAM;AAAA,QACX,MAAM,MAAM;AAAA,QACZ,OAAO;AAAA,QACP,UAAU,CAAC,MAAM,aAAa,KAAK,WAAW,EAAE,OAAO,KAAK,CAAC;AAAA,QAC7D,OAAO,EAAE,QAAQ,MAAM,IAAA;AAAA,QACvB,kBAAkB;AAAA,QAClB,cAAc;AAAA,MAAA;AAAA,MAXT;AAAA,IAAA,CAaR;AAAA,IACDA,kCAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAO,MAAM;AAAA,QACb,QAAQ,MAAM;AAAA,QACd,OAAO;AAAA,UACL,YAAY;AAAA,QAAA;AAAA,MACd;AAAA,IAAA;AAAA,EACF,GACF;AAEJ;"}
1
+ {"version":3,"file":"component-DJcrW4KX.js","sources":["../src/components/range/component.tsx"],"sourcesContent":["import { useCallback, useMemo } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport { RangeProps, RangeThumb, RangeTrack, RangeWrapper } from '.';\n\nexport const Range = (props: RangeProps) => {\n const { onChange } = props;\n const handleChange = useCallback(\n (index: number, newValue: number) => {\n const newValues = [...props.values];\n newValues[index] = Math.min(props.max, Math.max(props.min, newValue));\n onChange(newValues.sort((a, b) => a - b));\n },\n [onChange, props.max, props.min, props.values],\n );\n const getThumbPositionPercent = useCallback(\n (val: number) => ((val - props.min) / (props.max - props.min)) * 100,\n [props.max, props.min],\n );\n const positions = useMemo(\n () => props.values.map((val) => getThumbPositionPercent(val)),\n [getThumbPositionPercent, props.values],\n );\n const theme = useTheme();\n\n const colorTrackBackground = theme.colors.range[props.genre].track.background.rest;\n const colorTrackGradient = theme.colors.range[props.genre].track.gradient.rest;\n const colorThumbBorder = theme.colors.range[props.genre].thumb.border.rest;\n const colorThumbBackground = theme.colors.range[props.genre].thumb.background.rest;\n\n const trackGradient = useMemo(\n () =>\n positions\n .map((position, idx) => {\n const isFirst = idx === 0;\n const isLast = idx === positions.length - 1;\n\n if (isFirst)\n return `${colorTrackBackground} 0%, ${colorTrackBackground} ${position}%, ${colorTrackGradient} ${position}%`;\n if (isLast)\n return `${colorTrackGradient} ${position}%, ${colorTrackBackground} ${position}%, ${colorTrackBackground} 100%`;\n return `${colorTrackGradient} ${position}%`;\n })\n .join(', '),\n [colorTrackGradient, colorTrackBackground, positions],\n );\n const gradient = useMemo(() => `linear-gradient(to right, ${trackGradient})`, [trackGradient]);\n\n return (\n <RangeWrapper $size={props.size} $sx={props.sx} $error={props.error} onBlur={props.onBlur}>\n {props.values.map((val, idx) => (\n <RangeThumb\n key={idx}\n type='range'\n $size={props.size}\n $genre={props.genre}\n min={props.min}\n max={props.max}\n step={props.step}\n value={val}\n onChange={(e) => handleChange(idx, parseFloat(e.target.value))}\n style={{ zIndex: 100 + idx }}\n $colorBackground={colorThumbBackground}\n $colorBorder={colorThumbBorder}\n />\n ))}\n <RangeTrack\n $size={props.size}\n $genre={props.genre}\n style={{\n background: gradient,\n }}\n />\n </RangeWrapper>\n );\n};\n"],"names":["jsxs","jsx"],"mappings":";;;;AAKO,MAAM,QAAQ,CAAC,UAAsB;AAC1C,QAAM,EAAE,aAAa;AACrB,QAAM,eAAe;AAAA,IACnB,CAAC,OAAe,aAAqB;AACnC,YAAM,YAAY,CAAC,GAAG,MAAM,MAAM;AAClC,gBAAU,KAAK,IAAI,KAAK,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,QAAQ,CAAC;AACpE,eAAS,UAAU,KAAK,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC;AAAA,IAAA;AAAA,IAE1C,CAAC,UAAU,MAAM,KAAK,MAAM,KAAK,MAAM,MAAM;AAAA,EAAA;AAE/C,QAAM,0BAA0B;AAAA,IAC9B,CAAC,SAAkB,MAAM,MAAM,QAAQ,MAAM,MAAM,MAAM,OAAQ;AAAA,IACjE,CAAC,MAAM,KAAK,MAAM,GAAG;AAAA,EAAA;AAEvB,QAAM,YAAY;AAAA,IAChB,MAAM,MAAM,OAAO,IAAI,CAAC,QAAQ,wBAAwB,GAAG,CAAC;AAAA,IAC5D,CAAC,yBAAyB,MAAM,MAAM;AAAA,EAAA;AAExC,QAAM,QAAQ,SAAA;AAEd,QAAM,uBAAuB,MAAM,OAAO,MAAM,MAAM,KAAK,EAAE,MAAM,WAAW;AAC9E,QAAM,qBAAqB,MAAM,OAAO,MAAM,MAAM,KAAK,EAAE,MAAM,SAAS;AAC1E,QAAM,mBAAmB,MAAM,OAAO,MAAM,MAAM,KAAK,EAAE,MAAM,OAAO;AACtE,QAAM,uBAAuB,MAAM,OAAO,MAAM,MAAM,KAAK,EAAE,MAAM,WAAW;AAE9E,QAAM,gBAAgB;AAAA,IACpB,MACE,UACG,IAAI,CAAC,UAAU,QAAQ;AACtB,YAAM,UAAU,QAAQ;AACxB,YAAM,SAAS,QAAQ,UAAU,SAAS;AAE1C,UAAI;AACF,eAAO,GAAG,oBAAoB,QAAQ,oBAAoB,IAAI,QAAQ,MAAM,kBAAkB,IAAI,QAAQ;AAC5G,UAAI;AACF,eAAO,GAAG,kBAAkB,IAAI,QAAQ,MAAM,oBAAoB,IAAI,QAAQ,MAAM,oBAAoB;AAC1G,aAAO,GAAG,kBAAkB,IAAI,QAAQ;AAAA,IAAA,CACzC,EACA,KAAK,IAAI;AAAA,IACd,CAAC,oBAAoB,sBAAsB,SAAS;AAAA,EAAA;AAEtD,QAAM,WAAW,QAAQ,MAAM,6BAA6B,aAAa,KAAK,CAAC,aAAa,CAAC;AAE7F,SACEA,kCAAAA,KAAC,cAAA,EAAa,OAAO,MAAM,MAAM,KAAK,MAAM,IAAI,QAAQ,MAAM,OAAO,QAAQ,MAAM,QAChF,UAAA;AAAA,IAAA,MAAM,OAAO,IAAI,CAAC,KAAK,QACtBC,kCAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QAEC,MAAK;AAAA,QACL,OAAO,MAAM;AAAA,QACb,QAAQ,MAAM;AAAA,QACd,KAAK,MAAM;AAAA,QACX,KAAK,MAAM;AAAA,QACX,MAAM,MAAM;AAAA,QACZ,OAAO;AAAA,QACP,UAAU,CAAC,MAAM,aAAa,KAAK,WAAW,EAAE,OAAO,KAAK,CAAC;AAAA,QAC7D,OAAO,EAAE,QAAQ,MAAM,IAAA;AAAA,QACvB,kBAAkB;AAAA,QAClB,cAAc;AAAA,MAAA;AAAA,MAXT;AAAA,IAAA,CAaR;AAAA,IACDA,kCAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC,OAAO,MAAM;AAAA,QACb,QAAQ,MAAM;AAAA,QACd,OAAO;AAAA,UACL,YAAY;AAAA,QAAA;AAAA,MACd;AAAA,IAAA;AAAA,EACF,GACF;AAEJ;"}
@@ -1,5 +1,5 @@
1
1
  import { j as jsxRuntimeExports } from "./jsx-runtime-BrDlu8eK.js";
2
- import { bu as KEY_SIZE_DATA_TOGGLE, aF as ToggleWrapper, aG as ToggleCenter } from "./context.constants-rTgzRM3c.js";
2
+ import { bu as KEY_SIZE_DATA_TOGGLE, aF as ToggleWrapper, aG as ToggleCenter } from "./context.constants-ByIVCRij.js";
3
3
  import { useMemo } from "react";
4
4
  const Toggle = (props) => {
5
5
  const toggleVariants = useMemo(
@@ -61,4 +61,4 @@ const Toggle = (props) => {
61
61
  export {
62
62
  Toggle as T
63
63
  };
64
- //# sourceMappingURL=component-P6uOD564.js.map
64
+ //# sourceMappingURL=component-DYX1oGKH.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"component-P6uOD564.js","sources":["../src/components/toggle/component.tsx"],"sourcesContent":["import { KEY_SIZE_DATA_TOGGLE } from '@local/theme';\n\nimport { useMemo } from 'react';\n\nimport { ToggleCenter, ToggleProps, ToggleWrapper } from '.';\n\nexport const Toggle = (props: ToggleProps) => {\n const toggleVariants = useMemo(\n () => ({\n tap: {\n width: KEY_SIZE_DATA_TOGGLE[props.size].thumb + 4,\n translateX: props.value\n ? KEY_SIZE_DATA_TOGGLE[props.size].width -\n KEY_SIZE_DATA_TOGGLE[props.size].thumb -\n KEY_SIZE_DATA_TOGGLE[props.size].padding * 3 -\n 4\n : 0,\n transition: {\n duration: 0.05,\n },\n },\n checked: {\n translateX:\n KEY_SIZE_DATA_TOGGLE[props.size].width -\n KEY_SIZE_DATA_TOGGLE[props.size].thumb -\n KEY_SIZE_DATA_TOGGLE[props.size].padding * 3,\n transition: { ease: 'circInOut', duration: 0.05 },\n },\n unchecked: {\n translateX: 0,\n transition: { ease: 'circInOut', duration: 0.05 },\n },\n }),\n [props.size, props.value],\n );\n\n return (\n <ToggleWrapper\n $genre={props.genre}\n $isDisabled={props.isDisabled}\n $isDisabledOutline={props.isDisabled ?? props.isDisabledOutline}\n $isOutlineBoxShadow={props.isOutlineBoxShadow}\n $isReadOnly={props.isReadOnly}\n $value={props.value}\n $size={props.size}\n $error={props.error}\n tabIndex={0}\n onClick={() => props.onChange?.(!props.value)}\n whileTap='tap'\n animate={props.value ? 'checked' : 'unchecked'}\n onKeyDown={(e) => {\n if (e.key === 'Enter') props.onChange?.(!props.value);\n }}\n >\n <ToggleCenter\n variants={toggleVariants}\n $genre={props.genre}\n $isDisabled={props.isDisabled}\n $value={props.value}\n $size={props.size}\n $error={props.error}\n />\n </ToggleWrapper>\n );\n};\n"],"names":["jsx"],"mappings":";;;AAMO,MAAM,SAAS,CAAC,UAAuB;AAC5C,QAAM,iBAAiB;AAAA,IACrB,OAAO;AAAA,MACL,KAAK;AAAA,QACH,OAAO,qBAAqB,MAAM,IAAI,EAAE,QAAQ;AAAA,QAChD,YAAY,MAAM,QACd,qBAAqB,MAAM,IAAI,EAAE,QACjC,qBAAqB,MAAM,IAAI,EAAE,QACjC,qBAAqB,MAAM,IAAI,EAAE,UAAU,IAC3C,IACA;AAAA,QACJ,YAAY;AAAA,UACV,UAAU;AAAA,QAAA;AAAA,MACZ;AAAA,MAEF,SAAS;AAAA,QACP,YACE,qBAAqB,MAAM,IAAI,EAAE,QACjC,qBAAqB,MAAM,IAAI,EAAE,QACjC,qBAAqB,MAAM,IAAI,EAAE,UAAU;AAAA,QAC7C,YAAY,EAAE,MAAM,aAAa,UAAU,KAAA;AAAA,MAAK;AAAA,MAElD,WAAW;AAAA,QACT,YAAY;AAAA,QACZ,YAAY,EAAE,MAAM,aAAa,UAAU,KAAA;AAAA,MAAK;AAAA,IAClD;AAAA,IAEF,CAAC,MAAM,MAAM,MAAM,KAAK;AAAA,EAAA;AAG1B,SACEA,kCAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,QAAQ,MAAM;AAAA,MACd,aAAa,MAAM;AAAA,MACnB,oBAAoB,MAAM,cAAc,MAAM;AAAA,MAC9C,qBAAqB,MAAM;AAAA,MAC3B,aAAa,MAAM;AAAA,MACnB,QAAQ,MAAM;AAAA,MACd,OAAO,MAAM;AAAA,MACb,QAAQ,MAAM;AAAA,MACd,UAAU;AAAA,MACV,SAAS,MAAA;;AAAM,2BAAM,aAAN,+BAAiB,CAAC,MAAM;AAAA;AAAA,MACvC,UAAS;AAAA,MACT,SAAS,MAAM,QAAQ,YAAY;AAAA,MACnC,WAAW,CAAC,MAAM;;AAChB,YAAI,EAAE,QAAQ,qBAAe,4CAAW,CAAC,MAAM;AAAA,MAAK;AAAA,MAGtD,UAAAA,kCAAAA;AAAAA,QAAC;AAAA,QAAA;AAAA,UACC,UAAU;AAAA,UACV,QAAQ,MAAM;AAAA,UACd,aAAa,MAAM;AAAA,UACnB,QAAQ,MAAM;AAAA,UACd,OAAO,MAAM;AAAA,UACb,QAAQ,MAAM;AAAA,QAAA;AAAA,MAAA;AAAA,IAChB;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"component-DYX1oGKH.js","sources":["../src/components/toggle/component.tsx"],"sourcesContent":["import { KEY_SIZE_DATA_TOGGLE } from '@local/theme';\n\nimport { useMemo } from 'react';\n\nimport { ToggleCenter, ToggleProps, ToggleWrapper } from '.';\n\nexport const Toggle = (props: ToggleProps) => {\n const toggleVariants = useMemo(\n () => ({\n tap: {\n width: KEY_SIZE_DATA_TOGGLE[props.size].thumb + 4,\n translateX: props.value\n ? KEY_SIZE_DATA_TOGGLE[props.size].width -\n KEY_SIZE_DATA_TOGGLE[props.size].thumb -\n KEY_SIZE_DATA_TOGGLE[props.size].padding * 3 -\n 4\n : 0,\n transition: {\n duration: 0.05,\n },\n },\n checked: {\n translateX:\n KEY_SIZE_DATA_TOGGLE[props.size].width -\n KEY_SIZE_DATA_TOGGLE[props.size].thumb -\n KEY_SIZE_DATA_TOGGLE[props.size].padding * 3,\n transition: { ease: 'circInOut', duration: 0.05 },\n },\n unchecked: {\n translateX: 0,\n transition: { ease: 'circInOut', duration: 0.05 },\n },\n }),\n [props.size, props.value],\n );\n\n return (\n <ToggleWrapper\n $genre={props.genre}\n $isDisabled={props.isDisabled}\n $isDisabledOutline={props.isDisabled ?? props.isDisabledOutline}\n $isOutlineBoxShadow={props.isOutlineBoxShadow}\n $isReadOnly={props.isReadOnly}\n $value={props.value}\n $size={props.size}\n $error={props.error}\n tabIndex={0}\n onClick={() => props.onChange?.(!props.value)}\n whileTap='tap'\n animate={props.value ? 'checked' : 'unchecked'}\n onKeyDown={(e) => {\n if (e.key === 'Enter') props.onChange?.(!props.value);\n }}\n >\n <ToggleCenter\n variants={toggleVariants}\n $genre={props.genre}\n $isDisabled={props.isDisabled}\n $value={props.value}\n $size={props.size}\n $error={props.error}\n />\n </ToggleWrapper>\n );\n};\n"],"names":["jsx"],"mappings":";;;AAMO,MAAM,SAAS,CAAC,UAAuB;AAC5C,QAAM,iBAAiB;AAAA,IACrB,OAAO;AAAA,MACL,KAAK;AAAA,QACH,OAAO,qBAAqB,MAAM,IAAI,EAAE,QAAQ;AAAA,QAChD,YAAY,MAAM,QACd,qBAAqB,MAAM,IAAI,EAAE,QACjC,qBAAqB,MAAM,IAAI,EAAE,QACjC,qBAAqB,MAAM,IAAI,EAAE,UAAU,IAC3C,IACA;AAAA,QACJ,YAAY;AAAA,UACV,UAAU;AAAA,QAAA;AAAA,MACZ;AAAA,MAEF,SAAS;AAAA,QACP,YACE,qBAAqB,MAAM,IAAI,EAAE,QACjC,qBAAqB,MAAM,IAAI,EAAE,QACjC,qBAAqB,MAAM,IAAI,EAAE,UAAU;AAAA,QAC7C,YAAY,EAAE,MAAM,aAAa,UAAU,KAAA;AAAA,MAAK;AAAA,MAElD,WAAW;AAAA,QACT,YAAY;AAAA,QACZ,YAAY,EAAE,MAAM,aAAa,UAAU,KAAA;AAAA,MAAK;AAAA,IAClD;AAAA,IAEF,CAAC,MAAM,MAAM,MAAM,KAAK;AAAA,EAAA;AAG1B,SACEA,kCAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,QAAQ,MAAM;AAAA,MACd,aAAa,MAAM;AAAA,MACnB,oBAAoB,MAAM,cAAc,MAAM;AAAA,MAC9C,qBAAqB,MAAM;AAAA,MAC3B,aAAa,MAAM;AAAA,MACnB,QAAQ,MAAM;AAAA,MACd,OAAO,MAAM;AAAA,MACb,QAAQ,MAAM;AAAA,MACd,UAAU;AAAA,MACV,SAAS,MAAA;;AAAM,2BAAM,aAAN,+BAAiB,CAAC,MAAM;AAAA;AAAA,MACvC,UAAS;AAAA,MACT,SAAS,MAAM,QAAQ,YAAY;AAAA,MACnC,WAAW,CAAC,MAAM;;AAChB,YAAI,EAAE,QAAQ,qBAAe,4CAAW,CAAC,MAAM;AAAA,MAAK;AAAA,MAGtD,UAAAA,kCAAAA;AAAAA,QAAC;AAAA,QAAA;AAAA,UACC,UAAU;AAAA,UACV,QAAQ,MAAM;AAAA,UACd,aAAa,MAAM;AAAA,UACnB,QAAQ,MAAM;AAAA,UACd,OAAO,MAAM;AAAA,UACb,QAAQ,MAAM;AAAA,QAAA;AAAA,MAAA;AAAA,IAChB;AAAA,EAAA;AAGN;"}
@@ -1,2 +1,2 @@
1
- "use strict";const e=require("./jsx-runtime-BcGej2Kr.cjs"),t=require("./consts.cjs.js"),i=require("./use-C3yxmiPP.cjs"),s=require("./context.constants-B9vCuOqK.cjs"),n=require("./component-BzxsZZwo.cjs"),r=require("./component-5Utdcc2G.cjs"),o=require("styled-components");require("./context.constants-wztrdG5Q.cjs");const a=require("./context.hooks-DDtUqE34.cjs"),l=require("react"),u=require("framer-motion");exports.ImageSelect=d=>{const{onChange:c}=d,g=l.useMemo(()=>s.KEY_SIZE_DATA[d.size],[d.size]),[p,x]=l.useState(d.images||[]),[m,h]=l.useState(!1),j=l.useRef(null),f=o.useTheme(),S=l.useCallback(e=>{e&&x(t=>{const i=e.map((e,i)=>({...e,index:t.length+i})),s=[...t,...i];return null==c||c(s),s})},[c]),b=()=>{var e;null==(e=j.current)||e.click()},{handleAddFiles:v}=i.useImageCrop({onSave:S,locale:d.locale,dialog:{button:{genre:d.propsButton.default.genre,size:d.propsButton.default.size},buttonDelete:{genre:d.propsButton.delete.genre,size:d.propsButton.delete.size}},imageSettings:{maxSize:d.imageSettings.maxSize,maxCount:d.imageSettings.maxCount-p.length,aspect:d.imageSettings.aspect},refInput:j}),{handleAdd:R}=(t=>{const i=l.useMemo(()=>s.KEY_SIZE_DATA[t.size],[t.size]),o=l.useMemo(()=>`${i.radius}px`,[i.radius]),{add:u}=a.useDialog({br:o,propsDialog:{borderRadius:o,padding:"0",background:"whiteStandard"}});return{handleAdd:l.useCallback(i=>{u({content:(o,a)=>e.jsxRuntimeExports.jsxs(r.Stack,{sx:{default:{position:"relative",overflow:"hidden",aspectRatio:2*t.imageSettings.aspect+" / 2",width:"auto",maxWidth:"70dvw",height:"85dvh",borderRadius:null==o?void 0:o.br},tablet:{maxWidth:"95dvw"}},children:[e.jsxRuntimeExports.jsx(n.Image,{sxStack:e=>({default:{width:"100%",height:"100%",alignItems:"center",justifyContent:"center",backgroundColor:e.palette.black10,position:"absolute",pointerEvents:"none"}}),isShowBeforeImage:!0,sxImage:{default:{objectFit:"contain"}},alt:null==i?void 0:i.imageSrc,src:null==i?void 0:i.imageSrc,componentFallback:e.jsxRuntimeExports.jsx(s.Typography,{sx:{default:{variant:"h6"}},children:t.locale.imageFallback})}),e.jsxRuntimeExports.jsx(s.Button,{sx:{default:{position:"absolute",bottom:15,right:15}},genre:"realebail-white",size:"small",icons:[{type:"id",name:"Arrow4"}],isWidthAsHeight:!0,isHiddenBorder:!0,isRadius:!0,onClick:()=>null==a?void 0:a()})]})})},[u,t.imageSettings.aspect,t.locale.imageFallback])}})({size:d.size,locale:d.locale,imageSettings:d.imageSettings,genre:d.genre});return l.useEffect(()=>{x(d.images||[])},[d.images]),e.jsxRuntimeExports.jsxs(e.jsxRuntimeExports.Fragment,{children:[e.jsxRuntimeExports.jsxs(s.ImageSelectWrapper,{$genre:d.genre,$size:d.size,id:d.id,$sx:d.sx,$error:d.error,children:[e.jsxRuntimeExports.jsxs(s.ImageSelectListWrapper,{onDrop:e=>{(e=>{var t;e.preventDefault(),(null==(t=e.dataTransfer.files)?void 0:t.length)&&v(e.dataTransfer.files)})(e),h(!1)},onDragOver:e=>e.preventDefault(),onDragEnter:()=>h(!0),onDragLeave:()=>h(!1),animate:{borderColor:m?f.colors.imageSelect[d.genre].border.hover:f.colors.imageSelect[d.genre].border.rest},transition:{duration:.3},$genre:d.genre,$size:d.size,children:[e.jsxRuntimeExports.jsxs(u.motion.div,{transition:{layout:{duration:.3,ease:"easeInOut",type:"spring"}},layout:!0,style:{display:"flex",flexWrap:"wrap",gap:g.padding-2+"px"},children:[p.map(t=>t.url&&e.jsxRuntimeExports.jsxs(u.motion.div,{style:{position:"relative",width:`${d.imageSettings.width}px`,height:`${d.imageSettings.height}px`,userSelect:"none",overflow:"hidden",borderRadius:`${g.radius}px`,flexGrow:1},layout:!0,transition:{layout:{duration:.3,ease:"easeInOut",type:"spring"}},children:[e.jsxRuntimeExports.jsx(n.Image,{sxStack:e=>({default:{width:"100%",height:"100%",alignItems:"center",justifyContent:"center",backgroundColor:e.palette.black10,position:"absolute",pointerEvents:"none"}}),isShowBeforeImage:d.isContain,sxImage:{default:{objectFit:d.isContain?"contain":"cover"}},alt:t.name||"image",src:t.url,componentFallback:e.jsxRuntimeExports.jsx(s.Typography,{sx:{default:{variant:"h6"}},children:d.locale.imageFallback})}),e.jsxRuntimeExports.jsx(s.Button,{sx:{default:{position:"absolute",top:5,right:5}},genre:d.genre,size:"small",icons:[{type:"id",name:"Close"}],isWidthAsHeight:!0,isHiddenBorder:!0,isRadius:!0,onClick:()=>{return e=t.id,void x(t=>{const i=t.filter(t=>t.id!==e);return null==c||c(i),i});var e}}),e.jsxRuntimeExports.jsx(s.Button,{sx:{default:{position:"absolute",bottom:5,right:5}},genre:d.genre,size:"small",icons:[{type:"id",name:"Activity"}],isWidthAsHeight:!0,isHiddenBorder:!0,isRadius:!0,onClick:()=>t.url&&R({id:t.id,imageSrc:t.url})})]},t.id)),0===p.length?e.jsxRuntimeExports.jsx("div",{onClick:b,style:{position:"relative",width:`${d.imageSettings.width}px`,height:`${d.imageSettings.height}px`,userSelect:"none",overflow:"hidden",borderRadius:`${g.radius}px`,flexGrow:1,display:"flex",alignItems:"center",justifyContent:"center",textAlign:"center",cursor:"pointer"},children:e.jsxRuntimeExports.jsx(s.Typography,{style:{color:f.colors.imageSelect[d.genre].color.rest},sx:{default:{}},children:d.locale.dragAndDrop})},"empty"):null]}),e.jsxRuntimeExports.jsx("input",{ref:j,type:"file",accept:t.LIST_IMAGE_SUPPORTED_FORMAT_FOR_INPUT,multiple:!0,style:{display:"none"},onChange:e=>{e.target.files&&v(e.target.files)}})]}),e.jsxRuntimeExports.jsxs(r.Stack,{sx:{default:{flexGrow:1,gap:g.padding-2+"px"}},children:[e.jsxRuntimeExports.jsx(s.Button,{type:"button",genre:d.genre,size:d.size,sx:{default:{flexGrow:3}},isRadius:!0,onClick:b,children:d.locale.buttonAdd}),e.jsxRuntimeExports.jsx(s.Button,{isRadius:!0,type:"button",sx:{default:{flexGrow:1}},onClick:()=>{x(d.defaultImages||[]),null==c||c(d.defaultImages||[])},genre:d.genre,size:d.size,children:d.locale.buttonReset})]})]}),(null==d?void 0:d.error)?e.jsxRuntimeExports.jsx(s.ErrorMessage,{...d.error,size:(null==d?void 0:d.error.size)??d.size,font:{size:12,weight:400,family:f.font.family}}):null]})};
2
- //# sourceMappingURL=component-DC3s_be7.cjs.map
1
+ "use strict";const e=require("./jsx-runtime-BcGej2Kr.cjs"),t=require("./consts.cjs.js"),i=require("./use-2JigT9W0.cjs"),s=require("./context.constants-CHzb-q9a.cjs"),n=require("./component-Dwf2HFot.cjs"),r=require("./component-5Utdcc2G.cjs"),o=require("styled-components");require("./context.constants-wztrdG5Q.cjs");const a=require("./context.hooks-DDtUqE34.cjs"),l=require("react"),u=require("framer-motion");exports.ImageSelect=d=>{const{onChange:c}=d,g=l.useMemo(()=>s.KEY_SIZE_DATA[d.size],[d.size]),[p,x]=l.useState(d.images||[]),[m,h]=l.useState(!1),j=l.useRef(null),f=o.useTheme(),S=l.useCallback(e=>{e&&x(t=>{const i=e.map((e,i)=>({...e,index:t.length+i})),s=[...t,...i];return null==c||c(s),s})},[c]),b=()=>{var e;null==(e=j.current)||e.click()},{handleAddFiles:v}=i.useImageCrop({onSave:S,locale:d.locale,dialog:{button:{genre:d.propsButton.default.genre,size:d.propsButton.default.size},buttonDelete:{genre:d.propsButton.delete.genre,size:d.propsButton.delete.size}},imageSettings:{maxSize:d.imageSettings.maxSize,maxCount:d.imageSettings.maxCount-p.length,aspect:d.imageSettings.aspect},refInput:j}),{handleAdd:R}=(t=>{const i=l.useMemo(()=>s.KEY_SIZE_DATA[t.size],[t.size]),o=l.useMemo(()=>`${i.radius}px`,[i.radius]),{add:u}=a.useDialog({br:o,propsDialog:{borderRadius:o,padding:"0",background:"whiteStandard"}});return{handleAdd:l.useCallback(i=>{u({content:(o,a)=>e.jsxRuntimeExports.jsxs(r.Stack,{sx:{default:{position:"relative",overflow:"hidden",aspectRatio:2*t.imageSettings.aspect+" / 2",width:"auto",maxWidth:"70dvw",height:"85dvh",borderRadius:null==o?void 0:o.br},tablet:{maxWidth:"95dvw"}},children:[e.jsxRuntimeExports.jsx(n.Image,{sxStack:e=>({default:{width:"100%",height:"100%",alignItems:"center",justifyContent:"center",backgroundColor:e.palette.black10,position:"absolute",pointerEvents:"none"}}),isShowBeforeImage:!0,sxImage:{default:{objectFit:"contain"}},alt:null==i?void 0:i.imageSrc,src:null==i?void 0:i.imageSrc,componentFallback:e.jsxRuntimeExports.jsx(s.Typography,{sx:{default:{variant:"h6"}},children:t.locale.imageFallback})}),e.jsxRuntimeExports.jsx(s.Button,{sx:{default:{position:"absolute",bottom:15,right:15}},genre:"realebail-white",size:"small",icons:[{type:"id",name:"Arrow4"}],isWidthAsHeight:!0,isHiddenBorder:!0,isRadius:!0,onClick:()=>null==a?void 0:a()})]})})},[u,t.imageSettings.aspect,t.locale.imageFallback])}})({size:d.size,locale:d.locale,imageSettings:d.imageSettings,genre:d.genre});return l.useEffect(()=>{x(d.images||[])},[d.images]),e.jsxRuntimeExports.jsxs(e.jsxRuntimeExports.Fragment,{children:[e.jsxRuntimeExports.jsxs(s.ImageSelectWrapper,{$genre:d.genre,$size:d.size,id:d.id,$sx:d.sx,$error:d.error,children:[e.jsxRuntimeExports.jsxs(s.ImageSelectListWrapper,{onDrop:e=>{(e=>{var t;e.preventDefault(),(null==(t=e.dataTransfer.files)?void 0:t.length)&&v(e.dataTransfer.files)})(e),h(!1)},onDragOver:e=>e.preventDefault(),onDragEnter:()=>h(!0),onDragLeave:()=>h(!1),animate:{borderColor:m?f.colors.imageSelect[d.genre].border.hover:f.colors.imageSelect[d.genre].border.rest},transition:{duration:.3},$genre:d.genre,$size:d.size,children:[e.jsxRuntimeExports.jsxs(u.motion.div,{transition:{layout:{duration:.3,ease:"easeInOut",type:"spring"}},layout:!0,style:{display:"flex",flexWrap:"wrap",gap:g.padding-2+"px"},children:[p.map(t=>t.url&&e.jsxRuntimeExports.jsxs(u.motion.div,{style:{position:"relative",width:`${d.imageSettings.width}px`,height:`${d.imageSettings.height}px`,userSelect:"none",overflow:"hidden",borderRadius:`${g.radius}px`,flexGrow:1},layout:!0,transition:{layout:{duration:.3,ease:"easeInOut",type:"spring"}},children:[e.jsxRuntimeExports.jsx(n.Image,{sxStack:e=>({default:{width:"100%",height:"100%",alignItems:"center",justifyContent:"center",backgroundColor:e.palette.black10,position:"absolute",pointerEvents:"none"}}),isShowBeforeImage:d.isContain,sxImage:{default:{objectFit:d.isContain?"contain":"cover"}},alt:t.name||"image",src:t.url,componentFallback:e.jsxRuntimeExports.jsx(s.Typography,{sx:{default:{variant:"h6"}},children:d.locale.imageFallback})}),e.jsxRuntimeExports.jsx(s.Button,{sx:{default:{position:"absolute",top:5,right:5}},genre:d.genre,size:"small",icons:[{type:"id",name:"Close"}],isWidthAsHeight:!0,isHiddenBorder:!0,isRadius:!0,onClick:()=>{return e=t.id,void x(t=>{const i=t.filter(t=>t.id!==e);return null==c||c(i),i});var e}}),e.jsxRuntimeExports.jsx(s.Button,{sx:{default:{position:"absolute",bottom:5,right:5}},genre:d.genre,size:"small",icons:[{type:"id",name:"Activity"}],isWidthAsHeight:!0,isHiddenBorder:!0,isRadius:!0,onClick:()=>t.url&&R({id:t.id,imageSrc:t.url})})]},t.id)),0===p.length?e.jsxRuntimeExports.jsx("div",{onClick:b,style:{position:"relative",width:`${d.imageSettings.width}px`,height:`${d.imageSettings.height}px`,userSelect:"none",overflow:"hidden",borderRadius:`${g.radius}px`,flexGrow:1,display:"flex",alignItems:"center",justifyContent:"center",textAlign:"center",cursor:"pointer"},children:e.jsxRuntimeExports.jsx(s.Typography,{style:{color:f.colors.imageSelect[d.genre].color.rest},sx:{default:{}},children:d.locale.dragAndDrop})},"empty"):null]}),e.jsxRuntimeExports.jsx("input",{ref:j,type:"file",accept:t.LIST_IMAGE_SUPPORTED_FORMAT_FOR_INPUT,multiple:!0,style:{display:"none"},onChange:e=>{e.target.files&&v(e.target.files)}})]}),e.jsxRuntimeExports.jsxs(r.Stack,{sx:{default:{flexGrow:1,gap:g.padding-2+"px"}},children:[e.jsxRuntimeExports.jsx(s.Button,{type:"button",genre:d.genre,size:d.size,sx:{default:{flexGrow:3}},isRadius:!0,onClick:b,children:d.locale.buttonAdd}),e.jsxRuntimeExports.jsx(s.Button,{isRadius:!0,type:"button",sx:{default:{flexGrow:1}},onClick:()=>{x(d.defaultImages||[]),null==c||c(d.defaultImages||[])},genre:d.genre,size:d.size,children:d.locale.buttonReset})]})]}),(null==d?void 0:d.error)?e.jsxRuntimeExports.jsx(s.ErrorMessage,{...d.error,size:(null==d?void 0:d.error.size)??d.size,font:{size:12,weight:400,family:f.font.family}}):null]})};
2
+ //# sourceMappingURL=component-DcAF7Isg.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"component-DC3s_be7.cjs","sources":["../src/components/image-select/component.tsx","../src/hooks/use-image-view/use.tsx"],"sourcesContent":["import { LIST_IMAGE_SUPPORTED_FORMAT_FOR_INPUT } from '@local/consts';\nimport { useImageCrop } from '@local/hooks/use-image-crop';\nimport { useImageView } from '@local/hooks/use-image-view';\nimport { ErrorMessage } from '@local/styles/error';\nimport { KEY_SIZE_DATA } from '@local/theme';\n\nimport { motion } from 'framer-motion';\nimport { DragEvent, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport { Button } from '../button';\nimport { Image } from '../image';\nimport { Stack } from '../stack';\nimport { Typography } from '../typography';\nimport { ImageSelectItemProps, ImageSelectListWrapper, ImageSelectProps, ImageSelectWrapper } from '.';\n\nexport const ImageSelect = (props: ImageSelectProps) => {\n const { onChange } = props;\n\n const size = useMemo(() => KEY_SIZE_DATA[props.size], [props.size]);\n\n const [images, setImages] = useState<ImageSelectItemProps[]>(props.images || []);\n\n const [isDraggingOver, setIsDraggingOver] = useState(false);\n\n const refInput = useRef<HTMLInputElement | null>(null);\n\n const theme = useTheme();\n\n const handleDrop = (e: DragEvent<HTMLDivElement>) => {\n e.preventDefault();\n if (e.dataTransfer.files?.length) {\n handleAddFilesCrop(e.dataTransfer.files);\n }\n };\n\n const handleDelete = (id: number) => {\n setImages((prev) => {\n const finalImages = prev.filter((img) => img.id !== id);\n onChange?.(finalImages);\n return finalImages;\n });\n };\n\n const handleOnSave = useCallback(\n (files: ImageSelectItemProps[] | null) => {\n if (files) {\n setImages((prev) => {\n const newImages = files.map((file, idx) => ({\n ...file,\n index: prev.length + idx,\n }));\n const finalImages = [...prev, ...newImages];\n onChange?.(finalImages);\n return finalImages;\n });\n }\n },\n [onChange],\n );\n\n const openFileDialog = () => {\n refInput.current?.click();\n };\n\n const resetImages = () => {\n setImages(props.defaultImages || []);\n onChange?.(props.defaultImages || []);\n };\n\n const { handleAddFiles: handleAddFilesCrop } = useImageCrop({\n onSave: handleOnSave,\n locale: props.locale,\n dialog: {\n button: {\n genre: props.propsButton.default.genre,\n size: props.propsButton.default.size,\n },\n buttonDelete: {\n genre: props.propsButton.delete.genre,\n size: props.propsButton.delete.size,\n },\n },\n imageSettings: {\n maxSize: props.imageSettings.maxSize,\n maxCount: props.imageSettings.maxCount - images.length,\n aspect: props.imageSettings.aspect,\n },\n refInput: refInput,\n });\n\n const { handleAdd } = useImageView({\n size: props.size,\n locale: props.locale,\n imageSettings: props.imageSettings,\n genre: props.genre,\n });\n\n useEffect(() => {\n setImages(props.images || []);\n }, [props.images]);\n\n return (\n <>\n <ImageSelectWrapper $genre={props.genre} $size={props.size} id={props.id} $sx={props.sx} $error={props.error}>\n <ImageSelectListWrapper\n onDrop={(e) => {\n handleDrop(e);\n setIsDraggingOver(false);\n }}\n onDragOver={(e) => e.preventDefault()}\n onDragEnter={() => setIsDraggingOver(true)}\n onDragLeave={() => setIsDraggingOver(false)}\n animate={{\n borderColor: isDraggingOver\n ? theme.colors.imageSelect[props.genre].border.hover\n : theme.colors.imageSelect[props.genre].border.rest,\n }}\n transition={{ duration: 0.3 }}\n $genre={props.genre}\n $size={props.size}\n >\n <motion.div\n transition={{\n layout: {\n duration: 0.3,\n ease: 'easeInOut',\n type: 'spring',\n },\n }}\n layout\n style={{ display: 'flex', flexWrap: 'wrap', gap: `${size.padding - 2}px` }}\n >\n {images.map(\n (img) =>\n img.url && (\n <motion.div\n key={img.id}\n style={{\n position: 'relative',\n width: `${props.imageSettings.width}px`,\n height: `${props.imageSettings.height}px`,\n userSelect: 'none',\n overflow: 'hidden',\n borderRadius: `${size.radius}px`,\n flexGrow: 1,\n }}\n layout\n transition={{\n layout: {\n duration: 0.3,\n ease: 'easeInOut',\n type: 'spring',\n },\n }}\n >\n <Image\n sxStack={(theme) => ({\n default: {\n width: '100%',\n height: '100%',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: theme.palette.black10,\n position: 'absolute',\n pointerEvents: 'none',\n },\n })}\n isShowBeforeImage={props.isContain}\n sxImage={{\n default: {\n objectFit: props.isContain ? 'contain' : 'cover',\n },\n }}\n alt={img.name || 'image'}\n src={img.url}\n componentFallback={\n <Typography\n sx={{\n default: {\n variant: 'h6',\n },\n }}\n >\n {props.locale.imageFallback}\n </Typography>\n }\n />\n <Button\n sx={{\n default: {\n position: 'absolute',\n top: 5,\n right: 5,\n },\n }}\n genre={props.genre}\n size='small'\n icons={[\n {\n type: 'id',\n name: 'Close',\n },\n ]}\n isWidthAsHeight\n isHiddenBorder\n isRadius\n onClick={() => handleDelete(img.id)}\n />\n <Button\n sx={{\n default: {\n position: 'absolute',\n bottom: 5,\n right: 5,\n },\n }}\n genre={props.genre}\n size='small'\n icons={[\n {\n type: 'id',\n name: 'Activity',\n },\n ]}\n isWidthAsHeight\n isHiddenBorder\n isRadius\n onClick={() => img.url && handleAdd({ id: img.id, imageSrc: img.url })}\n />\n </motion.div>\n ),\n )}\n {images.length === 0 ? (\n <div\n onClick={openFileDialog}\n key='empty'\n style={{\n position: 'relative',\n width: `${props.imageSettings.width}px`,\n height: `${props.imageSettings.height}px`,\n userSelect: 'none',\n overflow: 'hidden',\n borderRadius: `${size.radius}px`,\n flexGrow: 1,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n textAlign: 'center',\n cursor: 'pointer',\n }}\n >\n <Typography\n style={{\n color: theme.colors.imageSelect[props.genre].color.rest,\n }}\n sx={{\n default: {},\n }}\n >\n {props.locale.dragAndDrop}\n </Typography>\n </div>\n ) : null}\n </motion.div>\n\n <input\n ref={refInput}\n type='file'\n accept={LIST_IMAGE_SUPPORTED_FORMAT_FOR_INPUT}\n multiple\n style={{ display: 'none' }}\n onChange={(e) => {\n if (e.target.files) handleAddFilesCrop(e.target.files);\n }}\n />\n </ImageSelectListWrapper>\n <Stack sx={{ default: { flexGrow: 1, gap: `${size.padding - 2}px` } }}>\n <Button\n type='button'\n genre={props.genre}\n size={props.size}\n sx={{\n default: {\n flexGrow: 3,\n },\n }}\n isRadius\n onClick={openFileDialog}\n >\n {props.locale.buttonAdd}\n </Button>\n <Button\n isRadius\n type='button'\n sx={{\n default: {\n flexGrow: 1,\n },\n }}\n onClick={resetImages}\n genre={props.genre}\n size={props.size}\n >\n {props.locale.buttonReset}\n </Button>\n </Stack>\n </ImageSelectWrapper>\n {props?.error ? (\n <ErrorMessage\n {...props.error}\n size={props?.error.size ?? props.size}\n font={{\n size: 12,\n weight: 400,\n family: theme.font.family,\n }}\n />\n ) : null}\n </>\n );\n};\n","import { Button } from '@local/components/button';\nimport { Image } from '@local/components/image';\nimport { SliderImageProps } from '@local/components/image-slider';\nimport { Stack } from '@local/components/stack';\nimport { Typography } from '@local/components/typography';\nimport { useDialog } from '@local/contexts/context-dialog';\nimport { KEY_SIZE_DATA } from '@local/theme';\n\nimport { useCallback, useMemo } from 'react';\n\nimport { useImageViewProps } from '.';\n\nexport const useImageView = (props: useImageViewProps) => {\n const size = useMemo(() => KEY_SIZE_DATA[props.size], [props.size]);\n const br = useMemo(() => `${size.radius}px`, [size.radius]);\n\n const { add } = useDialog<{\n br?: string;\n }>({\n br: br,\n propsDialog: {\n borderRadius: br,\n padding: '0',\n background: 'whiteStandard',\n },\n });\n const handleAdd = useCallback(\n (image: SliderImageProps) => {\n add({\n content: (params, remove) => (\n <Stack\n sx={{\n default: {\n position: 'relative',\n overflow: 'hidden',\n aspectRatio: `${props.imageSettings.aspect * 2} / 2`,\n width: 'auto',\n maxWidth: '70dvw',\n height: '85dvh',\n borderRadius: params?.br,\n },\n tablet: {\n maxWidth: '95dvw',\n },\n }}\n >\n <Image\n sxStack={(theme) => ({\n default: {\n width: '100%',\n height: '100%',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: theme.palette.black10,\n position: 'absolute',\n pointerEvents: 'none',\n },\n })}\n isShowBeforeImage\n sxImage={{\n default: {\n objectFit: 'contain',\n },\n }}\n alt={image?.imageSrc}\n src={image?.imageSrc}\n componentFallback={\n <Typography\n sx={{\n default: {\n variant: 'h6',\n },\n }}\n >\n {props.locale.imageFallback}\n </Typography>\n }\n />\n <Button\n sx={{\n default: {\n position: 'absolute',\n bottom: 15,\n right: 15,\n },\n }}\n genre='realebail-white'\n size='small'\n icons={[\n {\n type: 'id',\n name: 'Arrow4',\n },\n ]}\n isWidthAsHeight\n isHiddenBorder\n isRadius\n onClick={() => remove?.()}\n />\n </Stack>\n ),\n });\n },\n [add, props.imageSettings.aspect, props.locale.imageFallback],\n );\n return { handleAdd };\n};\n"],"names":["props","onChange","size","useMemo","KEY_SIZE_DATA","images","setImages","useState","isDraggingOver","setIsDraggingOver","refInput","useRef","theme","useTheme","handleOnSave","useCallback","files","prev","newImages","map","file","idx","index","length","finalImages","openFileDialog","_a","current","click","handleAddFiles","handleAddFilesCrop","useImageCrop","onSave","locale","dialog","button","genre","propsButton","default","buttonDelete","delete","imageSettings","maxSize","maxCount","aspect","handleAdd","br","radius","add","useDialog","propsDialog","borderRadius","padding","background","image","content","params","remove","jsxs","Stack","sx","position","overflow","aspectRatio","width","maxWidth","height","tablet","children","jsx","Image","sxStack","alignItems","justifyContent","backgroundColor","palette","black10","pointerEvents","isShowBeforeImage","sxImage","objectFit","alt","imageSrc","src","componentFallback","Typography","variant","imageFallback","Button","bottom","right","icons","type","name","isWidthAsHeight","isHiddenBorder","isRadius","onClick","useImageView","useEffect","Fragment","ImageSelectWrapper","$genre","$size","id","$sx","$error","error","ImageSelectListWrapper","onDrop","e","preventDefault","dataTransfer","handleDrop","onDragOver","onDragEnter","onDragLeave","animate","borderColor","colors","imageSelect","border","hover","rest","transition","duration","motion","div","layout","ease","style","display","flexWrap","gap","img","url","userSelect","flexGrow","isContain","top","handleDelete","filter","textAlign","cursor","color","dragAndDrop","ref","accept","LIST_IMAGE_SUPPORTED_FORMAT_FOR_INPUT","multiple","target","buttonAdd","defaultImages","buttonReset","ErrorMessage","font","weight","family"],"mappings":"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"}
1
+ {"version":3,"file":"component-DcAF7Isg.cjs","sources":["../src/components/image-select/component.tsx","../src/hooks/use-image-view/use.tsx"],"sourcesContent":["import { LIST_IMAGE_SUPPORTED_FORMAT_FOR_INPUT } from '@local/consts';\nimport { useImageCrop } from '@local/hooks/use-image-crop';\nimport { useImageView } from '@local/hooks/use-image-view';\nimport { ErrorMessage } from '@local/styles/error';\nimport { KEY_SIZE_DATA } from '@local/theme';\n\nimport { motion } from 'framer-motion';\nimport { DragEvent, useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport { Button } from '../button';\nimport { Image } from '../image';\nimport { Stack } from '../stack';\nimport { Typography } from '../typography';\nimport { ImageSelectItemProps, ImageSelectListWrapper, ImageSelectProps, ImageSelectWrapper } from '.';\n\nexport const ImageSelect = (props: ImageSelectProps) => {\n const { onChange } = props;\n\n const size = useMemo(() => KEY_SIZE_DATA[props.size], [props.size]);\n\n const [images, setImages] = useState<ImageSelectItemProps[]>(props.images || []);\n\n const [isDraggingOver, setIsDraggingOver] = useState(false);\n\n const refInput = useRef<HTMLInputElement | null>(null);\n\n const theme = useTheme();\n\n const handleDrop = (e: DragEvent<HTMLDivElement>) => {\n e.preventDefault();\n if (e.dataTransfer.files?.length) {\n handleAddFilesCrop(e.dataTransfer.files);\n }\n };\n\n const handleDelete = (id: number) => {\n setImages((prev) => {\n const finalImages = prev.filter((img) => img.id !== id);\n onChange?.(finalImages);\n return finalImages;\n });\n };\n\n const handleOnSave = useCallback(\n (files: ImageSelectItemProps[] | null) => {\n if (files) {\n setImages((prev) => {\n const newImages = files.map((file, idx) => ({\n ...file,\n index: prev.length + idx,\n }));\n const finalImages = [...prev, ...newImages];\n onChange?.(finalImages);\n return finalImages;\n });\n }\n },\n [onChange],\n );\n\n const openFileDialog = () => {\n refInput.current?.click();\n };\n\n const resetImages = () => {\n setImages(props.defaultImages || []);\n onChange?.(props.defaultImages || []);\n };\n\n const { handleAddFiles: handleAddFilesCrop } = useImageCrop({\n onSave: handleOnSave,\n locale: props.locale,\n dialog: {\n button: {\n genre: props.propsButton.default.genre,\n size: props.propsButton.default.size,\n },\n buttonDelete: {\n genre: props.propsButton.delete.genre,\n size: props.propsButton.delete.size,\n },\n },\n imageSettings: {\n maxSize: props.imageSettings.maxSize,\n maxCount: props.imageSettings.maxCount - images.length,\n aspect: props.imageSettings.aspect,\n },\n refInput: refInput,\n });\n\n const { handleAdd } = useImageView({\n size: props.size,\n locale: props.locale,\n imageSettings: props.imageSettings,\n genre: props.genre,\n });\n\n useEffect(() => {\n setImages(props.images || []);\n }, [props.images]);\n\n return (\n <>\n <ImageSelectWrapper $genre={props.genre} $size={props.size} id={props.id} $sx={props.sx} $error={props.error}>\n <ImageSelectListWrapper\n onDrop={(e) => {\n handleDrop(e);\n setIsDraggingOver(false);\n }}\n onDragOver={(e) => e.preventDefault()}\n onDragEnter={() => setIsDraggingOver(true)}\n onDragLeave={() => setIsDraggingOver(false)}\n animate={{\n borderColor: isDraggingOver\n ? theme.colors.imageSelect[props.genre].border.hover\n : theme.colors.imageSelect[props.genre].border.rest,\n }}\n transition={{ duration: 0.3 }}\n $genre={props.genre}\n $size={props.size}\n >\n <motion.div\n transition={{\n layout: {\n duration: 0.3,\n ease: 'easeInOut',\n type: 'spring',\n },\n }}\n layout\n style={{ display: 'flex', flexWrap: 'wrap', gap: `${size.padding - 2}px` }}\n >\n {images.map(\n (img) =>\n img.url && (\n <motion.div\n key={img.id}\n style={{\n position: 'relative',\n width: `${props.imageSettings.width}px`,\n height: `${props.imageSettings.height}px`,\n userSelect: 'none',\n overflow: 'hidden',\n borderRadius: `${size.radius}px`,\n flexGrow: 1,\n }}\n layout\n transition={{\n layout: {\n duration: 0.3,\n ease: 'easeInOut',\n type: 'spring',\n },\n }}\n >\n <Image\n sxStack={(theme) => ({\n default: {\n width: '100%',\n height: '100%',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: theme.palette.black10,\n position: 'absolute',\n pointerEvents: 'none',\n },\n })}\n isShowBeforeImage={props.isContain}\n sxImage={{\n default: {\n objectFit: props.isContain ? 'contain' : 'cover',\n },\n }}\n alt={img.name || 'image'}\n src={img.url}\n componentFallback={\n <Typography\n sx={{\n default: {\n variant: 'h6',\n },\n }}\n >\n {props.locale.imageFallback}\n </Typography>\n }\n />\n <Button\n sx={{\n default: {\n position: 'absolute',\n top: 5,\n right: 5,\n },\n }}\n genre={props.genre}\n size='small'\n icons={[\n {\n type: 'id',\n name: 'Close',\n },\n ]}\n isWidthAsHeight\n isHiddenBorder\n isRadius\n onClick={() => handleDelete(img.id)}\n />\n <Button\n sx={{\n default: {\n position: 'absolute',\n bottom: 5,\n right: 5,\n },\n }}\n genre={props.genre}\n size='small'\n icons={[\n {\n type: 'id',\n name: 'Activity',\n },\n ]}\n isWidthAsHeight\n isHiddenBorder\n isRadius\n onClick={() => img.url && handleAdd({ id: img.id, imageSrc: img.url })}\n />\n </motion.div>\n ),\n )}\n {images.length === 0 ? (\n <div\n onClick={openFileDialog}\n key='empty'\n style={{\n position: 'relative',\n width: `${props.imageSettings.width}px`,\n height: `${props.imageSettings.height}px`,\n userSelect: 'none',\n overflow: 'hidden',\n borderRadius: `${size.radius}px`,\n flexGrow: 1,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n textAlign: 'center',\n cursor: 'pointer',\n }}\n >\n <Typography\n style={{\n color: theme.colors.imageSelect[props.genre].color.rest,\n }}\n sx={{\n default: {},\n }}\n >\n {props.locale.dragAndDrop}\n </Typography>\n </div>\n ) : null}\n </motion.div>\n\n <input\n ref={refInput}\n type='file'\n accept={LIST_IMAGE_SUPPORTED_FORMAT_FOR_INPUT}\n multiple\n style={{ display: 'none' }}\n onChange={(e) => {\n if (e.target.files) handleAddFilesCrop(e.target.files);\n }}\n />\n </ImageSelectListWrapper>\n <Stack sx={{ default: { flexGrow: 1, gap: `${size.padding - 2}px` } }}>\n <Button\n type='button'\n genre={props.genre}\n size={props.size}\n sx={{\n default: {\n flexGrow: 3,\n },\n }}\n isRadius\n onClick={openFileDialog}\n >\n {props.locale.buttonAdd}\n </Button>\n <Button\n isRadius\n type='button'\n sx={{\n default: {\n flexGrow: 1,\n },\n }}\n onClick={resetImages}\n genre={props.genre}\n size={props.size}\n >\n {props.locale.buttonReset}\n </Button>\n </Stack>\n </ImageSelectWrapper>\n {props?.error ? (\n <ErrorMessage\n {...props.error}\n size={props?.error.size ?? props.size}\n font={{\n size: 12,\n weight: 400,\n family: theme.font.family,\n }}\n />\n ) : null}\n </>\n );\n};\n","import { Button } from '@local/components/button';\nimport { Image } from '@local/components/image';\nimport { SliderImageProps } from '@local/components/image-slider';\nimport { Stack } from '@local/components/stack';\nimport { Typography } from '@local/components/typography';\nimport { useDialog } from '@local/contexts/context-dialog';\nimport { KEY_SIZE_DATA } from '@local/theme';\n\nimport { useCallback, useMemo } from 'react';\n\nimport { useImageViewProps } from '.';\n\nexport const useImageView = (props: useImageViewProps) => {\n const size = useMemo(() => KEY_SIZE_DATA[props.size], [props.size]);\n const br = useMemo(() => `${size.radius}px`, [size.radius]);\n\n const { add } = useDialog<{\n br?: string;\n }>({\n br: br,\n propsDialog: {\n borderRadius: br,\n padding: '0',\n background: 'whiteStandard',\n },\n });\n const handleAdd = useCallback(\n (image: SliderImageProps) => {\n add({\n content: (params, remove) => (\n <Stack\n sx={{\n default: {\n position: 'relative',\n overflow: 'hidden',\n aspectRatio: `${props.imageSettings.aspect * 2} / 2`,\n width: 'auto',\n maxWidth: '70dvw',\n height: '85dvh',\n borderRadius: params?.br,\n },\n tablet: {\n maxWidth: '95dvw',\n },\n }}\n >\n <Image\n sxStack={(theme) => ({\n default: {\n width: '100%',\n height: '100%',\n alignItems: 'center',\n justifyContent: 'center',\n backgroundColor: theme.palette.black10,\n position: 'absolute',\n pointerEvents: 'none',\n },\n })}\n isShowBeforeImage\n sxImage={{\n default: {\n objectFit: 'contain',\n },\n }}\n alt={image?.imageSrc}\n src={image?.imageSrc}\n componentFallback={\n <Typography\n sx={{\n default: {\n variant: 'h6',\n },\n }}\n >\n {props.locale.imageFallback}\n </Typography>\n }\n />\n <Button\n sx={{\n default: {\n position: 'absolute',\n bottom: 15,\n right: 15,\n },\n }}\n genre='realebail-white'\n size='small'\n icons={[\n {\n type: 'id',\n name: 'Arrow4',\n },\n ]}\n isWidthAsHeight\n isHiddenBorder\n isRadius\n onClick={() => remove?.()}\n />\n </Stack>\n ),\n });\n },\n [add, props.imageSettings.aspect, props.locale.imageFallback],\n );\n return { handleAdd };\n};\n"],"names":["props","onChange","size","useMemo","KEY_SIZE_DATA","images","setImages","useState","isDraggingOver","setIsDraggingOver","refInput","useRef","theme","useTheme","handleOnSave","useCallback","files","prev","newImages","map","file","idx","index","length","finalImages","openFileDialog","_a","current","click","handleAddFiles","handleAddFilesCrop","useImageCrop","onSave","locale","dialog","button","genre","propsButton","default","buttonDelete","delete","imageSettings","maxSize","maxCount","aspect","handleAdd","br","radius","add","useDialog","propsDialog","borderRadius","padding","background","image","content","params","remove","jsxs","Stack","sx","position","overflow","aspectRatio","width","maxWidth","height","tablet","children","jsx","Image","sxStack","alignItems","justifyContent","backgroundColor","palette","black10","pointerEvents","isShowBeforeImage","sxImage","objectFit","alt","imageSrc","src","componentFallback","Typography","variant","imageFallback","Button","bottom","right","icons","type","name","isWidthAsHeight","isHiddenBorder","isRadius","onClick","useImageView","useEffect","Fragment","ImageSelectWrapper","$genre","$size","id","$sx","$error","error","ImageSelectListWrapper","onDrop","e","preventDefault","dataTransfer","handleDrop","onDragOver","onDragEnter","onDragLeave","animate","borderColor","colors","imageSelect","border","hover","rest","transition","duration","motion","div","layout","ease","style","display","flexWrap","gap","img","url","userSelect","flexGrow","isContain","top","handleDelete","filter","textAlign","cursor","color","dragAndDrop","ref","accept","LIST_IMAGE_SUPPORTED_FORMAT_FOR_INPUT","multiple","target","buttonAdd","defaultImages","buttonReset","ErrorMessage","font","weight","family"],"mappings":"+aAgB4BA,IAC1B,MAAMC,SAAEA,GAAaD,EAEfE,EAAOC,UAAQ,IAAMC,gBAAcJ,EAAME,MAAO,CAACF,EAAME,QAEtDG,EAAQC,GAAaC,EAAAA,SAAiCP,EAAMK,QAAU,KAEtEG,EAAgBC,GAAqBF,EAAAA,UAAS,GAE/CG,EAAWC,EAAAA,OAAgC,MAE3CC,EAAQC,EAAAA,WAiBRC,EAAeC,EAAAA,YAClBC,IACKA,GACFV,EAAWW,IACT,MAAMC,EAAYF,EAAMG,IAAI,CAACC,EAAMC,KAAA,IAC9BD,EACHE,MAAOL,EAAKM,OAASF,KAEjBG,EAAc,IAAIP,KAASC,GAEjC,OADA,MAAAjB,GAAAA,EAAWuB,GACJA,KAIb,CAACvB,IAGGwB,EAAiB,WACrB,OAAAC,EAAAhB,EAASiB,UAATD,EAAkBE,UAQZC,eAAgBC,GAAuBC,eAAa,CAC1DC,OAAQlB,EACRmB,OAAQjC,EAAMiC,OACdC,OAAQ,CACNC,OAAQ,CACNC,MAAOpC,EAAMqC,YAAYC,QAAQF,MACjClC,KAAMF,EAAMqC,YAAYC,QAAQpC,MAElCqC,aAAc,CACZH,MAAOpC,EAAMqC,YAAYG,OAAOJ,MAChClC,KAAMF,EAAMqC,YAAYG,OAAOtC,OAGnCuC,cAAe,CACbC,QAAS1C,EAAMyC,cAAcC,QAC7BC,SAAU3C,EAAMyC,cAAcE,SAAWtC,EAAOkB,OAChDqB,OAAQ5C,EAAMyC,cAAcG,QAE9BlC,cAGImC,UAAEA,GC/EkB,CAAC7C,IAC3B,MAAME,EAAOC,UAAQ,IAAMC,gBAAcJ,EAAME,MAAO,CAACF,EAAME,OACvD4C,EAAK3C,EAAAA,QAAQ,IAAM,GAAGD,EAAK6C,WAAY,CAAC7C,EAAK6C,UAE7CC,IAAEA,GAAQC,YAEb,CACDH,KACAI,YAAa,CACXC,aAAcL,EACdM,QAAS,IACTC,WAAY,mBAkFhB,MAAO,CAAER,UA/ES9B,EAAAA,YACfuC,IACCN,EAAI,CACFO,QAAS,CAACC,EAAQC,MAChBC,kBAAAA,KAACC,EAAAA,MAAA,CACCC,GAAI,CACFtB,QAAS,CACPuB,SAAU,WACVC,SAAU,SACVC,YAA6C,EAA7B/D,EAAMyC,cAAcG,OAAvB,OACboB,MAAO,OACPC,SAAU,QACVC,OAAQ,QACRf,aAAc,MAAAK,OAAA,EAAAA,EAAQV,IAExBqB,OAAQ,CACNF,SAAU,UAIdG,SAAA,GAAAC,kBAAAA,IAACC,EAAAA,MAAA,CACCC,QAAU3D,IAAA,CACR0B,QAAS,CACP0B,MAAO,OACPE,OAAQ,OACRM,WAAY,SACZC,eAAgB,SAChBC,gBAAiB9D,EAAM+D,QAAQC,QAC/Bf,SAAU,WACVgB,cAAe,UAGnBC,mBAAiB,EACjBC,QAAS,CACPzC,QAAS,CACP0C,UAAW,YAGfC,IAAK,MAAA3B,OAAA,EAAAA,EAAO4B,SACZC,IAAK,MAAA7B,OAAA,EAAAA,EAAO4B,SACZE,oBACEf,kBAAAA,IAACgB,EAAAA,WAAA,CACCzB,GAAI,CACFtB,QAAS,CACPgD,QAAS,OAIZlB,WAAMnC,OAAOsD,oBAIpBlB,kBAAAA,IAACmB,EAAAA,OAAA,CACC5B,GAAI,CACFtB,QAAS,CACPuB,SAAU,WACV4B,OAAQ,GACRC,MAAO,KAGXtD,MAAM,kBACNlC,KAAK,QACLyF,MAAO,CACL,CACEC,KAAM,KACNC,KAAM,WAGVC,iBAAe,EACfC,gBAAc,EACdC,UAAQ,EACRC,QAAS,IAAM,MAAAxC,OAAA,EAAAA,YAMzB,CAACT,EAAKhD,EAAMyC,cAAcG,OAAQ5C,EAAMiC,OAAOsD,kBDZ3BW,CAAa,CACjChG,KAAMF,EAAME,KACZ+B,OAAQjC,EAAMiC,OACdQ,cAAezC,EAAMyC,cACrBL,MAAOpC,EAAMoC,QAOf,OAJA+D,EAAAA,UAAU,KACR7F,EAAUN,EAAMK,QAAU,KACzB,CAACL,EAAMK,WAGRqD,kBAAAA,KAAA0C,6BAAA,CACEhC,SAAA,CAAAV,yBAAC2C,EAAAA,mBAAA,CAAmBC,OAAQtG,EAAMoC,MAAOmE,MAAOvG,EAAME,KAAMsG,GAAIxG,EAAMwG,GAAIC,IAAKzG,EAAM4D,GAAI8C,OAAQ1G,EAAM2G,MACrGvC,SAAA,GAAAV,kBAAAA,KAACkD,EAAAA,uBAAA,CACCC,OAASC,IA7EE,CAACA,UAClBA,EAAEC,kBACE,OAAArF,EAAAoF,EAAEE,aAAahG,YAAf,EAAAU,EAAsBH,SACxBO,EAAmBgF,EAAEE,aAAahG,QA2E5BiG,CAAWH,GACXrG,GAAkB,IAEpByG,WAAaJ,GAAMA,EAAEC,iBACrBI,YAAa,IAAM1G,GAAkB,GACrC2G,YAAa,IAAM3G,GAAkB,GACrC4G,QAAS,CACPC,YAAa9G,EACTI,EAAM2G,OAAOC,YAAYxH,EAAMoC,OAAOqF,OAAOC,MAC7C9G,EAAM2G,OAAOC,YAAYxH,EAAMoC,OAAOqF,OAAOE,MAEnDC,WAAY,CAAEC,SAAU,IACxBvB,OAAQtG,EAAMoC,MACdmE,MAAOvG,EAAME,KAEbkE,SAAA,GAAAV,kBAAAA,KAACoE,EAAAA,OAAOC,IAAP,CACCH,WAAY,CACVI,OAAQ,CACNH,SAAU,GACVI,KAAM,YACNrC,KAAM,WAGVoC,QAAM,EACNE,MAAO,CAAEC,QAAS,OAAQC,SAAU,OAAQC,IAAQnI,EAAKkD,QAAU,EAAlB,MAEhDgB,SAAA,CAAA/D,EAAOc,IACLmH,GACCA,EAAIC,OACF7E,kBAAAA,KAACoE,EAAAA,OAAOC,IAAP,CAECG,MAAO,CACLrE,SAAU,WACVG,MAAO,GAAGhE,EAAMyC,cAAcuB,UAC9BE,OAAQ,GAAGlE,EAAMyC,cAAcyB,WAC/BsE,WAAY,OACZ1E,SAAU,SACVX,aAAc,GAAGjD,EAAK6C,WACtB0F,SAAU,GAEZT,QAAM,EACNJ,WAAY,CACVI,OAAQ,CACNH,SAAU,GACVI,KAAM,YACNrC,KAAM,WAIVxB,SAAA,GAAAC,kBAAAA,IAACC,EAAAA,MAAA,CACCC,QAAU3D,IAAAA,CACR0B,QAAS,CACP0B,MAAO,OACPE,OAAQ,OACRM,WAAY,SACZC,eAAgB,SAChBC,gBAAiB9D,EAAM+D,QAAQC,QAC/Bf,SAAU,WACVgB,cAAe,UAGnBC,kBAAmB9E,EAAM0I,UACzB3D,QAAS,CACPzC,QAAS,CACP0C,UAAWhF,EAAM0I,UAAY,UAAY,UAG7CzD,IAAKqD,EAAIzC,MAAQ,QACjBV,IAAKmD,EAAIC,IACTnD,oBACEf,kBAAAA,IAACgB,EAAAA,WAAA,CACCzB,GAAI,CACFtB,QAAS,CACPgD,QAAS,OAIZlB,WAAMnC,OAAOsD,oBAIpBlB,kBAAAA,IAACmB,EAAAA,OAAA,CACC5B,GAAI,CACFtB,QAAS,CACPuB,SAAU,WACV8E,IAAK,EACLjD,MAAO,IAGXtD,MAAOpC,EAAMoC,MACblC,KAAK,QACLyF,MAAO,CACL,CACEC,KAAM,KACNC,KAAM,UAGVC,iBAAe,EACfC,gBAAc,EACdC,UAAQ,EACRC,QAAS,KAAM2C,OA3KbpC,EA2K0B8B,EAAI9B,QA1KlDlG,EAAWW,IACT,MAAMO,EAAcP,EAAK4H,OAAQP,GAAQA,EAAI9B,KAAOA,GAEpD,OADA,MAAAvG,GAAAA,EAAWuB,GACJA,IAJU,IAACgF,OA6KJnC,kBAAAA,IAACmB,EAAAA,OAAA,CACC5B,GAAI,CACFtB,QAAS,CACPuB,SAAU,WACV4B,OAAQ,EACRC,MAAO,IAGXtD,MAAOpC,EAAMoC,MACblC,KAAK,QACLyF,MAAO,CACL,CACEC,KAAM,KACNC,KAAM,aAGVC,iBAAe,EACfC,gBAAc,EACdC,UAAQ,EACRC,QAAS,IAAMqC,EAAIC,KAAO1F,EAAU,CAAE2D,GAAI8B,EAAI9B,GAAItB,SAAUoD,EAAIC,UA3F7DD,EAAI9B,KAgGE,IAAlBnG,EAAOkB,OACN8C,EAAAA,kBAAAA,IAAC,MAAA,CACC4B,QAASxE,EAETyG,MAAO,CACLrE,SAAU,WACVG,MAAO,GAAGhE,EAAMyC,cAAcuB,UAC9BE,OAAQ,GAAGlE,EAAMyC,cAAcyB,WAC/BsE,WAAY,OACZ1E,SAAU,SACVX,aAAc,GAAGjD,EAAK6C,WACtB0F,SAAU,EACVN,QAAS,OACT3D,WAAY,SACZC,eAAgB,SAChBqE,UAAW,SACXC,OAAQ,WAGV3E,WAAAC,kBAAAA,IAACgB,EAAAA,WAAA,CACC6C,MAAO,CACLc,MAAOpI,EAAM2G,OAAOC,YAAYxH,EAAMoC,OAAO4G,MAAMrB,MAErD/D,GAAI,CACFtB,QAAS,CAAA,GAGV8B,WAAMnC,OAAOgH,eAxBZ,SA2BJ,UAGN5E,kBAAAA,IAAC,QAAA,CACC6E,IAAKxI,EACLkF,KAAK,OACLuD,OAAQC,EAAAA,sCACRC,UAAQ,EACRnB,MAAO,CAAEC,QAAS,QAClBlI,SAAW6G,IACLA,EAAEwC,OAAOtI,OAAOc,EAAmBgF,EAAEwC,OAAOtI,aAItD0C,EAAAA,kBAAAA,KAACC,EAAAA,MAAA,CAAMC,GAAI,CAAEtB,QAAS,CAAEmG,SAAU,EAAGJ,IAAQnI,EAAKkD,QAAU,EAAlB,OACxCgB,SAAA,GAAAC,kBAAAA,IAACmB,EAAAA,OAAA,CACCI,KAAK,SACLxD,MAAOpC,EAAMoC,MACblC,KAAMF,EAAME,KACZ0D,GAAI,CACFtB,QAAS,CACPmG,SAAU,IAGdzC,UAAQ,EACRC,QAASxE,EAER2C,WAAMnC,OAAOsH,cAEhBlF,kBAAAA,IAACmB,EAAAA,OAAA,CACCQ,UAAQ,EACRJ,KAAK,SACLhC,GAAI,CACFtB,QAAS,CACPmG,SAAU,IAGdxC,QA3OU,KAClB3F,EAAUN,EAAMwJ,eAAiB,IACjC,MAAAvJ,GAAAA,EAAWD,EAAMwJ,eAAiB,KA0O1BpH,MAAOpC,EAAMoC,MACblC,KAAMF,EAAME,KAEXkE,WAAMnC,OAAOwH,qBAInB,MAAAzJ,OAAA,EAAAA,EAAO2G,OACNtC,EAAAA,kBAAAA,IAACqF,EAAAA,aAAA,IACK1J,EAAM2G,MACVzG,MAAM,MAAAF,OAAA,EAAAA,EAAO2G,MAAMzG,OAAQF,EAAME,KACjCyJ,KAAM,CACJzJ,KAAM,GACN0J,OAAQ,IACRC,OAAQjJ,EAAM+I,KAAKE,UAGrB"}
@@ -1,2 +1,2 @@
1
- "use strict";const e=require("./jsx-runtime-BcGej2Kr.cjs"),t=require("./context.constants-B9vCuOqK.cjs"),n=require("./component-5Utdcc2G.cjs"),o=require("react"),r=require("styled-components");exports.Image=s=>{const[c,a]=o.useState(!0),[i,l]=o.useState(!1);o.useEffect(()=>{if(!s.src)return;const e=new window.Image;return e.onload=()=>{a(!1),l(!1)},e.onerror=()=>{a(!1),l(!0)},e.src=s.src,e.complete&&(e.naturalWidth>0?(a(!1),l(!1)):(a(!1),l(!0))),()=>{e.onload=null,e.onerror=null,a(!0),l(!1)}},[s.src]);const u=r.useTheme(),{default:d,...x}=(null==s?void 0:s.sxStack)?"function"==typeof(null==s?void 0:s.sxStack)?s.sxStack(u):s.sxStack:{};return e.jsxRuntimeExports.jsxs(n.Stack,{sx:{default:{position:"relative",overflow:"hidden",...s.isShowBeforeImage?{"&::before":{width:"100%",height:"100%",content:'""',position:"absolute",inset:0,backgroundImage:`url(${s.src})`,backgroundRepeat:"no-repeat",backgroundSize:"cover",backgroundPosition:"center",filter:"blur(20px)",transform:"scale(1.1)",zIndex:0}}:{},...d},...x},children:[i?null:s.componentLoading||c?e.jsxRuntimeExports.jsx(t.Skeleton,{visible:!0,sx:{default:{width:"100%",height:"100%"}}}):null,!i&&e.jsxRuntimeExports.jsx(t.ImageIMG,{loading:"lazy",$isPending:c,src:s.src,alt:s.alt,$sx:s.sxImage}),i&&s.componentFallback||null]})};
2
- //# sourceMappingURL=component-BzxsZZwo.cjs.map
1
+ "use strict";const e=require("./jsx-runtime-BcGej2Kr.cjs"),t=require("./context.constants-CHzb-q9a.cjs"),n=require("./component-5Utdcc2G.cjs"),o=require("react"),r=require("styled-components");exports.Image=s=>{const[c,a]=o.useState(!0),[i,l]=o.useState(!1);o.useEffect(()=>{if(!s.src)return;const e=new window.Image;return e.onload=()=>{a(!1),l(!1)},e.onerror=()=>{a(!1),l(!0)},e.src=s.src,e.complete&&(e.naturalWidth>0?(a(!1),l(!1)):(a(!1),l(!0))),()=>{e.onload=null,e.onerror=null,a(!0),l(!1)}},[s.src]);const u=r.useTheme(),{default:d,...x}=(null==s?void 0:s.sxStack)?"function"==typeof(null==s?void 0:s.sxStack)?s.sxStack(u):s.sxStack:{};return e.jsxRuntimeExports.jsxs(n.Stack,{sx:{default:{position:"relative",overflow:"hidden",...s.isShowBeforeImage?{"&::before":{width:"100%",height:"100%",content:'""',position:"absolute",inset:0,backgroundImage:`url(${s.src})`,backgroundRepeat:"no-repeat",backgroundSize:"cover",backgroundPosition:"center",filter:"blur(20px)",transform:"scale(1.1)",zIndex:0}}:{},...d},...x},children:[i?null:s.componentLoading||c?e.jsxRuntimeExports.jsx(t.Skeleton,{visible:!0,sx:{default:{width:"100%",height:"100%"}}}):null,!i&&e.jsxRuntimeExports.jsx(t.ImageIMG,{loading:"lazy",$isPending:c,src:s.src,alt:s.alt,$sx:s.sxImage}),i&&s.componentFallback||null]})};
2
+ //# sourceMappingURL=component-Dwf2HFot.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"component-BzxsZZwo.cjs","sources":["../src/components/image/component.tsx"],"sourcesContent":["import { Skeleton } from '@local/areas/skeleton';\nimport { Stack } from '@local/components/stack';\n\nimport { FC, useEffect, useState } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport { ImageIMG, ImageProps } from '.';\n\nexport const Image: FC<ImageProps> = (props) => {\n const [isPending, setIsPending] = useState(true);\n const [isError, setIsError] = useState(false);\n\n useEffect(() => {\n if (!props.src) return;\n\n const img = new (window.Image as { new (width?: number, height?: number): HTMLImageElement })();\n\n img.onload = () => {\n setIsPending(false);\n setIsError(false);\n };\n\n img.onerror = () => {\n setIsPending(false);\n setIsError(true);\n };\n\n img.src = props.src;\n\n if (img.complete) {\n if (img.naturalWidth > 0) {\n setIsPending(false);\n setIsError(false);\n } else {\n setIsPending(false);\n setIsError(true);\n }\n }\n\n return () => {\n img.onload = null;\n img.onerror = null;\n setIsPending(true);\n setIsError(false);\n };\n }, [props.src]);\n const theme = useTheme();\n const { default: defaultSx, ...rest } = props?.sxStack\n ? typeof props?.sxStack === 'function'\n ? props.sxStack(theme)\n : props.sxStack\n : {};\n\n return (\n <Stack\n sx={{\n default: {\n position: 'relative',\n overflow: 'hidden',\n ...(props.isShowBeforeImage\n ? {\n '&::before': {\n width: '100%',\n height: '100%',\n content: '\"\"',\n position: 'absolute',\n inset: 0,\n backgroundImage: `url(${props.src})`,\n backgroundRepeat: 'no-repeat',\n backgroundSize: 'cover',\n backgroundPosition: 'center',\n filter: 'blur(20px)',\n transform: 'scale(1.1)',\n zIndex: 0,\n },\n }\n : {}),\n ...defaultSx,\n },\n ...rest,\n }}\n >\n {!isError ? (\n props.componentLoading || isPending ? (\n <Skeleton\n visible\n sx={{\n default: {\n width: '100%',\n height: '100%',\n },\n }}\n />\n ) : null\n ) : null}\n {!isError && (\n <ImageIMG loading='lazy' $isPending={isPending} src={props.src} alt={props.alt} $sx={props.sxImage} />\n )}\n {isError ? props.componentFallback || null : null}\n </Stack>\n );\n};\n"],"names":["props","isPending","setIsPending","useState","isError","setIsError","useEffect","src","img","window","Image","onload","onerror","complete","naturalWidth","theme","useTheme","default","defaultSx","rest","sxStack","jsxs","Stack","sx","position","overflow","isShowBeforeImage","width","height","content","inset","backgroundImage","backgroundRepeat","backgroundSize","backgroundPosition","filter","transform","zIndex","children","componentLoading","jsx","Skeleton","visible","ImageIMG","loading","$isPending","alt","$sx","sxImage","componentFallback"],"mappings":"+MAQsCA,IACpC,MAAOC,EAAWC,GAAgBC,EAAAA,UAAS,IACpCC,EAASC,GAAcF,EAAAA,UAAS,GAEvCG,EAAAA,UAAU,KACR,IAAKN,EAAMO,IAAK,OAEhB,MAAMC,EAAM,IAAKC,OAAOC,MAwBxB,OAtBAF,EAAIG,OAAS,KACXT,GAAa,GACbG,GAAW,IAGbG,EAAII,QAAU,KACZV,GAAa,GACbG,GAAW,IAGbG,EAAID,IAAMP,EAAMO,IAEZC,EAAIK,WACFL,EAAIM,aAAe,GACrBZ,GAAa,GACbG,GAAW,KAEXH,GAAa,GACbG,GAAW,KAIR,KACLG,EAAIG,OAAS,KACbH,EAAII,QAAU,KACdV,GAAa,GACbG,GAAW,KAEZ,CAACL,EAAMO,MACV,MAAMQ,EAAQC,EAAAA,YACNC,QAASC,KAAcC,UAASnB,WAAOoB,SACjB,mBAAnB,MAAApB,OAAA,EAAAA,EAAOoB,SACZpB,EAAMoB,QAAQL,GACdf,EAAMoB,QACR,CAAA,EAEJ,SACEC,kBAAAA,KAACC,EAAAA,MAAA,CACCC,GAAI,CACFN,QAAS,CACPO,SAAU,WACVC,SAAU,YACNzB,EAAM0B,kBACN,CACE,YAAa,CACXC,MAAO,OACPC,OAAQ,OACRC,QAAS,KACTL,SAAU,WACVM,MAAO,EACPC,gBAAiB,OAAO/B,EAAMO,OAC9ByB,iBAAkB,YAClBC,eAAgB,QAChBC,mBAAoB,SACpBC,OAAQ,aACRC,UAAW,aACXC,OAAQ,IAGZ,CAAA,KACDnB,MAEFC,GAGJmB,SAAA,CAAClC,EAYE,KAXFJ,EAAMuC,kBAAoBtC,IACxBuC,kBAAAA,IAACC,EAAAA,SAAA,CACCC,SAAO,EACPnB,GAAI,CACFN,QAAS,CACPU,MAAO,OACPC,OAAQ,WAIZ,MAEJxB,GACAoC,EAAAA,kBAAAA,IAACG,EAAAA,SAAA,CAASC,QAAQ,OAAOC,WAAY5C,EAAWM,IAAKP,EAAMO,IAAKuC,IAAK9C,EAAM8C,IAAKC,IAAK/C,EAAMgD,UAE5F5C,GAAUJ,EAAMiD,mBAA4B"}
1
+ {"version":3,"file":"component-Dwf2HFot.cjs","sources":["../src/components/image/component.tsx"],"sourcesContent":["import { Skeleton } from '@local/areas/skeleton';\nimport { Stack } from '@local/components/stack';\n\nimport { FC, useEffect, useState } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport { ImageIMG, ImageProps } from '.';\n\nexport const Image: FC<ImageProps> = (props) => {\n const [isPending, setIsPending] = useState(true);\n const [isError, setIsError] = useState(false);\n\n useEffect(() => {\n if (!props.src) return;\n\n const img = new (window.Image as { new (width?: number, height?: number): HTMLImageElement })();\n\n img.onload = () => {\n setIsPending(false);\n setIsError(false);\n };\n\n img.onerror = () => {\n setIsPending(false);\n setIsError(true);\n };\n\n img.src = props.src;\n\n if (img.complete) {\n if (img.naturalWidth > 0) {\n setIsPending(false);\n setIsError(false);\n } else {\n setIsPending(false);\n setIsError(true);\n }\n }\n\n return () => {\n img.onload = null;\n img.onerror = null;\n setIsPending(true);\n setIsError(false);\n };\n }, [props.src]);\n const theme = useTheme();\n const { default: defaultSx, ...rest } = props?.sxStack\n ? typeof props?.sxStack === 'function'\n ? props.sxStack(theme)\n : props.sxStack\n : {};\n\n return (\n <Stack\n sx={{\n default: {\n position: 'relative',\n overflow: 'hidden',\n ...(props.isShowBeforeImage\n ? {\n '&::before': {\n width: '100%',\n height: '100%',\n content: '\"\"',\n position: 'absolute',\n inset: 0,\n backgroundImage: `url(${props.src})`,\n backgroundRepeat: 'no-repeat',\n backgroundSize: 'cover',\n backgroundPosition: 'center',\n filter: 'blur(20px)',\n transform: 'scale(1.1)',\n zIndex: 0,\n },\n }\n : {}),\n ...defaultSx,\n },\n ...rest,\n }}\n >\n {!isError ? (\n props.componentLoading || isPending ? (\n <Skeleton\n visible\n sx={{\n default: {\n width: '100%',\n height: '100%',\n },\n }}\n />\n ) : null\n ) : null}\n {!isError && (\n <ImageIMG loading='lazy' $isPending={isPending} src={props.src} alt={props.alt} $sx={props.sxImage} />\n )}\n {isError ? props.componentFallback || null : null}\n </Stack>\n );\n};\n"],"names":["props","isPending","setIsPending","useState","isError","setIsError","useEffect","src","img","window","Image","onload","onerror","complete","naturalWidth","theme","useTheme","default","defaultSx","rest","sxStack","jsxs","Stack","sx","position","overflow","isShowBeforeImage","width","height","content","inset","backgroundImage","backgroundRepeat","backgroundSize","backgroundPosition","filter","transform","zIndex","children","componentLoading","jsx","Skeleton","visible","ImageIMG","loading","$isPending","alt","$sx","sxImage","componentFallback"],"mappings":"+MAQsCA,IACpC,MAAOC,EAAWC,GAAgBC,EAAAA,UAAS,IACpCC,EAASC,GAAcF,EAAAA,UAAS,GAEvCG,EAAAA,UAAU,KACR,IAAKN,EAAMO,IAAK,OAEhB,MAAMC,EAAM,IAAKC,OAAOC,MAwBxB,OAtBAF,EAAIG,OAAS,KACXT,GAAa,GACbG,GAAW,IAGbG,EAAII,QAAU,KACZV,GAAa,GACbG,GAAW,IAGbG,EAAID,IAAMP,EAAMO,IAEZC,EAAIK,WACFL,EAAIM,aAAe,GACrBZ,GAAa,GACbG,GAAW,KAEXH,GAAa,GACbG,GAAW,KAIR,KACLG,EAAIG,OAAS,KACbH,EAAII,QAAU,KACdV,GAAa,GACbG,GAAW,KAEZ,CAACL,EAAMO,MACV,MAAMQ,EAAQC,EAAAA,YACNC,QAASC,KAAcC,UAASnB,WAAOoB,SACjB,mBAAnB,MAAApB,OAAA,EAAAA,EAAOoB,SACZpB,EAAMoB,QAAQL,GACdf,EAAMoB,QACR,CAAA,EAEJ,SACEC,kBAAAA,KAACC,EAAAA,MAAA,CACCC,GAAI,CACFN,QAAS,CACPO,SAAU,WACVC,SAAU,YACNzB,EAAM0B,kBACN,CACE,YAAa,CACXC,MAAO,OACPC,OAAQ,OACRC,QAAS,KACTL,SAAU,WACVM,MAAO,EACPC,gBAAiB,OAAO/B,EAAMO,OAC9ByB,iBAAkB,YAClBC,eAAgB,QAChBC,mBAAoB,SACpBC,OAAQ,aACRC,UAAW,aACXC,OAAQ,IAGZ,CAAA,KACDnB,MAEFC,GAGJmB,SAAA,CAAClC,EAYE,KAXFJ,EAAMuC,kBAAoBtC,IACxBuC,kBAAAA,IAACC,EAAAA,SAAA,CACCC,SAAO,EACPnB,GAAI,CACFN,QAAS,CACPU,MAAO,OACPC,OAAQ,WAIZ,MAEJxB,GACAoC,EAAAA,kBAAAA,IAACG,EAAAA,SAAA,CAASC,QAAQ,OAAOC,WAAY5C,EAAWM,IAAKP,EAAMO,IAAKuC,IAAK9C,EAAM8C,IAAKC,IAAK/C,EAAMgD,UAE5F5C,GAAUJ,EAAMiD,mBAA4B"}
@@ -1,2 +1,2 @@
1
- "use strict";const e=require("./jsx-runtime-BcGej2Kr.cjs"),t=require("./consts.cjs.js"),n=require("./use-C3yxmiPP.cjs"),s=require("react"),l=require("./context.constants-B9vCuOqK.cjs");exports.ImageButton=r=>{const i=s.useRef(null),u=s.useCallback(()=>{var e;null==(e=i.current)||e.click()},[]),{handleAddFiles:o}=n.useImageCrop({onSave:r.onSave,locale:r.locale,dialog:r.dialog,imageSettings:r.imageSettings,refInput:i});return e.jsxRuntimeExports.jsxs(e.jsxRuntimeExports.Fragment,{children:[e.jsxRuntimeExports.jsx(l.Button,{...r.button,onClick:e=>{var t,n;null==(n=(t=r.button).onClick)||n.call(t,e),u()},children:r.button.children||r.locale.buttonAdd}),e.jsxRuntimeExports.jsx("input",{ref:i,type:"file",accept:t.LIST_IMAGE_SUPPORTED_FORMAT_FOR_INPUT,multiple:!0,style:{display:"none"},onChange:e=>{e.target.files&&o(e.target.files)}})]})};
2
- //# sourceMappingURL=component-CC8gkK9W.cjs.map
1
+ "use strict";const e=require("./jsx-runtime-BcGej2Kr.cjs"),t=require("./consts.cjs.js"),n=require("./use-2JigT9W0.cjs"),s=require("react"),l=require("./context.constants-CHzb-q9a.cjs");exports.ImageButton=r=>{const i=s.useRef(null),u=s.useCallback(()=>{var e;null==(e=i.current)||e.click()},[]),{handleAddFiles:o}=n.useImageCrop({onSave:r.onSave,locale:r.locale,dialog:r.dialog,imageSettings:r.imageSettings,refInput:i});return e.jsxRuntimeExports.jsxs(e.jsxRuntimeExports.Fragment,{children:[e.jsxRuntimeExports.jsx(l.Button,{...r.button,onClick:e=>{var t,n;null==(n=(t=r.button).onClick)||n.call(t,e),u()},children:r.button.children||r.locale.buttonAdd}),e.jsxRuntimeExports.jsx("input",{ref:i,type:"file",accept:t.LIST_IMAGE_SUPPORTED_FORMAT_FOR_INPUT,multiple:!0,style:{display:"none"},onChange:e=>{e.target.files&&o(e.target.files)}})]})};
2
+ //# sourceMappingURL=component-OxaRuSX5.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"component-CC8gkK9W.cjs","sources":["../src/components/image-button/component.tsx"],"sourcesContent":["import { LIST_IMAGE_SUPPORTED_FORMAT_FOR_INPUT } from '@local/consts';\nimport { useImageCrop } from '@local/hooks/use-image-crop';\n\nimport { FC, useCallback, useRef } from 'react';\n\nimport { Button } from '../button';\nimport { ImageButtonProps } from '.';\n\nexport const ImageButton: FC<ImageButtonProps> = (props) => {\n const refInput = useRef<HTMLInputElement | null>(null);\n\n const handleOpenFileDialog = useCallback(() => {\n refInput.current?.click();\n }, []);\n\n const { handleAddFiles } = useImageCrop({\n onSave: props.onSave,\n locale: props.locale,\n dialog: props.dialog,\n imageSettings: props.imageSettings,\n refInput: refInput,\n });\n\n return (\n <>\n <Button\n {...props.button}\n onClick={(e) => {\n props.button.onClick?.(e);\n handleOpenFileDialog();\n }}\n >\n {props.button.children || props.locale.buttonAdd}\n </Button>\n <input\n ref={refInput}\n type='file'\n accept={LIST_IMAGE_SUPPORTED_FORMAT_FOR_INPUT}\n multiple\n style={{ display: 'none' }}\n onChange={(e) => {\n if (e.target.files) handleAddFiles(e.target.files);\n }}\n />\n </>\n );\n};\n"],"names":["props","refInput","useRef","handleOpenFileDialog","useCallback","_a","current","click","handleAddFiles","useImageCrop","onSave","locale","dialog","imageSettings","jsxs","Fragment","children","jsx","Button","button","onClick","e","_b","call","buttonAdd","ref","type","accept","LIST_IMAGE_SUPPORTED_FORMAT_FOR_INPUT","multiple","style","display","onChange","target","files"],"mappings":"6MAQkDA,IAChD,MAAMC,EAAWC,EAAAA,OAAgC,MAE3CC,EAAuBC,EAAAA,YAAY,WACvC,OAAAC,EAAAJ,EAASK,UAATD,EAAkBE,SACjB,KAEGC,eAAEA,GAAmBC,eAAa,CACtCC,OAAQV,EAAMU,OACdC,OAAQX,EAAMW,OACdC,OAAQZ,EAAMY,OACdC,cAAeb,EAAMa,cACrBZ,aAGF,SACEa,kBAAAA,KAAAC,6BAAA,CACEC,SAAA,GAAAC,kBAAAA,IAACC,EAAAA,OAAA,IACKlB,EAAMmB,OACVC,QAAUC,YACR,OAAAC,GAAAjB,EAAAL,EAAMmB,QAAOC,UAAbE,EAAAC,KAAAlB,EAAuBgB,GACvBlB,KAGDa,SAAAhB,EAAMmB,OAAOH,UAAYhB,EAAMW,OAAOa,cAEzCP,kBAAAA,IAAC,QAAA,CACCQ,IAAKxB,EACLyB,KAAK,OACLC,OAAQC,EAAAA,sCACRC,UAAQ,EACRC,MAAO,CAAEC,QAAS,QAClBC,SAAWX,IACLA,EAAEY,OAAOC,OAAO1B,EAAea,EAAEY,OAAOC"}
1
+ {"version":3,"file":"component-OxaRuSX5.cjs","sources":["../src/components/image-button/component.tsx"],"sourcesContent":["import { LIST_IMAGE_SUPPORTED_FORMAT_FOR_INPUT } from '@local/consts';\nimport { useImageCrop } from '@local/hooks/use-image-crop';\n\nimport { FC, useCallback, useRef } from 'react';\n\nimport { Button } from '../button';\nimport { ImageButtonProps } from '.';\n\nexport const ImageButton: FC<ImageButtonProps> = (props) => {\n const refInput = useRef<HTMLInputElement | null>(null);\n\n const handleOpenFileDialog = useCallback(() => {\n refInput.current?.click();\n }, []);\n\n const { handleAddFiles } = useImageCrop({\n onSave: props.onSave,\n locale: props.locale,\n dialog: props.dialog,\n imageSettings: props.imageSettings,\n refInput: refInput,\n });\n\n return (\n <>\n <Button\n {...props.button}\n onClick={(e) => {\n props.button.onClick?.(e);\n handleOpenFileDialog();\n }}\n >\n {props.button.children || props.locale.buttonAdd}\n </Button>\n <input\n ref={refInput}\n type='file'\n accept={LIST_IMAGE_SUPPORTED_FORMAT_FOR_INPUT}\n multiple\n style={{ display: 'none' }}\n onChange={(e) => {\n if (e.target.files) handleAddFiles(e.target.files);\n }}\n />\n </>\n );\n};\n"],"names":["props","refInput","useRef","handleOpenFileDialog","useCallback","_a","current","click","handleAddFiles","useImageCrop","onSave","locale","dialog","imageSettings","jsxs","Fragment","children","jsx","Button","button","onClick","e","_b","call","buttonAdd","ref","type","accept","LIST_IMAGE_SUPPORTED_FORMAT_FOR_INPUT","multiple","style","display","onChange","target","files"],"mappings":"6MAQkDA,IAChD,MAAMC,EAAWC,EAAAA,OAAgC,MAE3CC,EAAuBC,EAAAA,YAAY,WACvC,OAAAC,EAAAJ,EAASK,UAATD,EAAkBE,SACjB,KAEGC,eAAEA,GAAmBC,eAAa,CACtCC,OAAQV,EAAMU,OACdC,OAAQX,EAAMW,OACdC,OAAQZ,EAAMY,OACdC,cAAeb,EAAMa,cACrBZ,aAGF,SACEa,kBAAAA,KAAAC,6BAAA,CACEC,SAAA,GAAAC,kBAAAA,IAACC,EAAAA,OAAA,IACKlB,EAAMmB,OACVC,QAAUC,YACR,OAAAC,GAAAjB,EAAAL,EAAMmB,QAAOC,UAAbE,EAAAC,KAAAlB,EAAuBgB,GACvBlB,KAGDa,SAAAhB,EAAMmB,OAAOH,UAAYhB,EAAMW,OAAOa,cAEzCP,kBAAAA,IAAC,QAAA,CACCQ,IAAKxB,EACLyB,KAAK,OACLC,OAAQC,EAAAA,sCACRC,UAAQ,EACRC,MAAO,CAAEC,QAAS,QAClBC,SAAWX,IACLA,EAAEY,OAAOC,OAAO1B,EAAea,EAAEY,OAAOC"}
@@ -1,2 +1,2 @@
1
- "use strict";const e=require("./jsx-runtime-BcGej2Kr.cjs"),r=require("react"),n=require("styled-components"),s=require("./context.constants-B9vCuOqK.cjs");exports.Range=a=>{const{onChange:t}=a,o=r.useCallback((e,r)=>{const n=[...a.values];n[e]=Math.min(a.max,Math.max(a.min,r)),t(n.sort((e,r)=>e-r))},[t,a.max,a.min,a.values]),u=r.useCallback(e=>(e-a.min)/(a.max-a.min)*100,[a.max,a.min]),m=r.useMemo(()=>a.values.map(e=>u(e)),[u,a.values]),i=n.useTheme(),g=i.colors.range[a.genre].track.background.rest,c=i.colors.range[a.genre].track.gradient.rest,l=i.colors.range[a.genre].thumb.border.rest,x=i.colors.range[a.genre].thumb.background.rest,$=r.useMemo(()=>m.map((e,r)=>{const n=0===r,s=r===m.length-1;return n?`${g} 0%, ${g} ${e}%, ${c} ${e}%`:s?`${c} ${e}%, ${g} ${e}%, ${g} 100%`:`${c} ${e}%`}).join(", "),[c,g,m]),p=r.useMemo(()=>`linear-gradient(to right, ${$})`,[$]);return e.jsxRuntimeExports.jsxs(s.RangeWrapper,{$size:a.size,$sx:a.sx,$error:a.error,onBlur:a.onBlur,children:[a.values.map((r,n)=>e.jsxRuntimeExports.jsx(s.RangeThumb,{type:"range",$size:a.size,$genre:a.genre,min:a.min,max:a.max,step:a.step,value:r,onChange:e=>o(n,parseFloat(e.target.value)),style:{zIndex:100+n},$colorBackground:x,$colorBorder:l},n)),e.jsxRuntimeExports.jsx(s.RangeTrack,{$size:a.size,$genre:a.genre,style:{background:p}})]})};
2
- //# sourceMappingURL=component-Ei1bxdq2.cjs.map
1
+ "use strict";const e=require("./jsx-runtime-BcGej2Kr.cjs"),r=require("react"),n=require("styled-components"),s=require("./context.constants-CHzb-q9a.cjs");exports.Range=a=>{const{onChange:t}=a,o=r.useCallback((e,r)=>{const n=[...a.values];n[e]=Math.min(a.max,Math.max(a.min,r)),t(n.sort((e,r)=>e-r))},[t,a.max,a.min,a.values]),u=r.useCallback(e=>(e-a.min)/(a.max-a.min)*100,[a.max,a.min]),m=r.useMemo(()=>a.values.map(e=>u(e)),[u,a.values]),i=n.useTheme(),g=i.colors.range[a.genre].track.background.rest,c=i.colors.range[a.genre].track.gradient.rest,l=i.colors.range[a.genre].thumb.border.rest,x=i.colors.range[a.genre].thumb.background.rest,$=r.useMemo(()=>m.map((e,r)=>{const n=0===r,s=r===m.length-1;return n?`${g} 0%, ${g} ${e}%, ${c} ${e}%`:s?`${c} ${e}%, ${g} ${e}%, ${g} 100%`:`${c} ${e}%`}).join(", "),[c,g,m]),p=r.useMemo(()=>`linear-gradient(to right, ${$})`,[$]);return e.jsxRuntimeExports.jsxs(s.RangeWrapper,{$size:a.size,$sx:a.sx,$error:a.error,onBlur:a.onBlur,children:[a.values.map((r,n)=>e.jsxRuntimeExports.jsx(s.RangeThumb,{type:"range",$size:a.size,$genre:a.genre,min:a.min,max:a.max,step:a.step,value:r,onChange:e=>o(n,parseFloat(e.target.value)),style:{zIndex:100+n},$colorBackground:x,$colorBorder:l},n)),e.jsxRuntimeExports.jsx(s.RangeTrack,{$size:a.size,$genre:a.genre,style:{background:p}})]})};
2
+ //# sourceMappingURL=component-TMPesaZf.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"component-Ei1bxdq2.cjs","sources":["../src/components/range/component.tsx"],"sourcesContent":["import { useCallback, useMemo } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport { RangeProps, RangeThumb, RangeTrack, RangeWrapper } from '.';\n\nexport const Range = (props: RangeProps) => {\n const { onChange } = props;\n const handleChange = useCallback(\n (index: number, newValue: number) => {\n const newValues = [...props.values];\n newValues[index] = Math.min(props.max, Math.max(props.min, newValue));\n onChange(newValues.sort((a, b) => a - b));\n },\n [onChange, props.max, props.min, props.values],\n );\n const getThumbPositionPercent = useCallback(\n (val: number) => ((val - props.min) / (props.max - props.min)) * 100,\n [props.max, props.min],\n );\n const positions = useMemo(\n () => props.values.map((val) => getThumbPositionPercent(val)),\n [getThumbPositionPercent, props.values],\n );\n const theme = useTheme();\n\n const colorTrackBackground = theme.colors.range[props.genre].track.background.rest;\n const colorTrackGradient = theme.colors.range[props.genre].track.gradient.rest;\n const colorThumbBorder = theme.colors.range[props.genre].thumb.border.rest;\n const colorThumbBackground = theme.colors.range[props.genre].thumb.background.rest;\n\n const trackGradient = useMemo(\n () =>\n positions\n .map((position, idx) => {\n const isFirst = idx === 0;\n const isLast = idx === positions.length - 1;\n\n if (isFirst)\n return `${colorTrackBackground} 0%, ${colorTrackBackground} ${position}%, ${colorTrackGradient} ${position}%`;\n if (isLast)\n return `${colorTrackGradient} ${position}%, ${colorTrackBackground} ${position}%, ${colorTrackBackground} 100%`;\n return `${colorTrackGradient} ${position}%`;\n })\n .join(', '),\n [colorTrackGradient, colorTrackBackground, positions],\n );\n const gradient = useMemo(() => `linear-gradient(to right, ${trackGradient})`, [trackGradient]);\n\n return (\n <RangeWrapper $size={props.size} $sx={props.sx} $error={props.error} onBlur={props.onBlur}>\n {props.values.map((val, idx) => (\n <RangeThumb\n key={idx}\n type='range'\n $size={props.size}\n $genre={props.genre}\n min={props.min}\n max={props.max}\n step={props.step}\n value={val}\n onChange={(e) => handleChange(idx, parseFloat(e.target.value))}\n style={{ zIndex: 100 + idx }}\n $colorBackground={colorThumbBackground}\n $colorBorder={colorThumbBorder}\n />\n ))}\n <RangeTrack\n $size={props.size}\n $genre={props.genre}\n style={{\n background: gradient,\n }}\n />\n </RangeWrapper>\n );\n};\n"],"names":["props","onChange","handleChange","useCallback","index","newValue","newValues","values","Math","min","max","sort","a","b","getThumbPositionPercent","val","positions","useMemo","map","theme","useTheme","colorTrackBackground","colors","range","genre","track","background","rest","colorTrackGradient","gradient","colorThumbBorder","thumb","border","colorThumbBackground","trackGradient","position","idx","isFirst","isLast","length","join","jsxs","RangeWrapper","$size","size","$sx","sx","$error","error","onBlur","children","jsx","RangeThumb","type","$genre","step","value","e","parseFloat","target","style","zIndex","$colorBackground","$colorBorder","RangeTrack"],"mappings":"yKAKsBA,IACpB,MAAMC,SAAEA,GAAaD,EACfE,EAAeC,EAAAA,YACnB,CAACC,EAAeC,KACd,MAAMC,EAAY,IAAIN,EAAMO,QAC5BD,EAAUF,GAASI,KAAKC,IAAIT,EAAMU,IAAKF,KAAKE,IAAIV,EAAMS,IAAKJ,IAC3DJ,EAASK,EAAUK,KAAK,CAACC,EAAGC,IAAMD,EAAIC,KAExC,CAACZ,EAAUD,EAAMU,IAAKV,EAAMS,IAAKT,EAAMO,SAEnCO,EAA0BX,EAAAA,YAC7BY,IAAkBA,EAAMf,EAAMS,MAAQT,EAAMU,IAAMV,EAAMS,KAAQ,IACjE,CAACT,EAAMU,IAAKV,EAAMS,MAEdO,EAAYC,EAAAA,QAChB,IAAMjB,EAAMO,OAAOW,IAAKH,GAAQD,EAAwBC,IACxD,CAACD,EAAyBd,EAAMO,SAE5BY,EAAQC,EAAAA,WAERC,EAAuBF,EAAMG,OAAOC,MAAMvB,EAAMwB,OAAOC,MAAMC,WAAWC,KACxEC,EAAqBT,EAAMG,OAAOC,MAAMvB,EAAMwB,OAAOC,MAAMI,SAASF,KACpEG,EAAmBX,EAAMG,OAAOC,MAAMvB,EAAMwB,OAAOO,MAAMC,OAAOL,KAChEM,EAAuBd,EAAMG,OAAOC,MAAMvB,EAAMwB,OAAOO,MAAML,WAAWC,KAExEO,EAAgBjB,EAAAA,QACpB,IACED,EACGE,IAAI,CAACiB,EAAUC,KACd,MAAMC,EAAkB,IAARD,EACVE,EAASF,IAAQpB,EAAUuB,OAAS,EAE1C,OAAIF,EACK,GAAGhB,SAA4BA,KAAwBc,OAAcP,KAAsBO,KAChGG,EACK,GAAGV,KAAsBO,OAAcd,KAAwBc,OAAcd,SAC/E,GAAGO,KAAsBO,OAEjCK,KAAK,MACV,CAACZ,EAAoBP,EAAsBL,IAEvCa,EAAWZ,EAAAA,QAAQ,IAAM,6BAA6BiB,KAAkB,CAACA,IAE/E,SACEO,kBAAAA,KAACC,EAAAA,aAAA,CAAaC,MAAO3C,EAAM4C,KAAMC,IAAK7C,EAAM8C,GAAIC,OAAQ/C,EAAMgD,MAAOC,OAAQjD,EAAMiD,OAChFC,SAAA,CAAAlD,EAAMO,OAAOW,IAAI,CAACH,EAAKqB,MACtBe,kBAAAA,IAACC,EAAAA,WAAA,CAECC,KAAK,QACLV,MAAO3C,EAAM4C,KACbU,OAAQtD,EAAMwB,MACdf,IAAKT,EAAMS,IACXC,IAAKV,EAAMU,IACX6C,KAAMvD,EAAMuD,KACZC,MAAOzC,EACPd,SAAWwD,GAAMvD,EAAakC,EAAKsB,WAAWD,EAAEE,OAAOH,QACvDI,MAAO,CAAEC,OAAQ,IAAMzB,GACvB0B,iBAAkB7B,EAClB8B,aAAcjC,GAXTM,MAcTe,kBAAAA,IAACa,EAAAA,WAAA,CACCrB,MAAO3C,EAAM4C,KACbU,OAAQtD,EAAMwB,MACdoC,MAAO,CACLlC,WAAYG"}
1
+ {"version":3,"file":"component-TMPesaZf.cjs","sources":["../src/components/range/component.tsx"],"sourcesContent":["import { useCallback, useMemo } from 'react';\nimport { useTheme } from 'styled-components';\n\nimport { RangeProps, RangeThumb, RangeTrack, RangeWrapper } from '.';\n\nexport const Range = (props: RangeProps) => {\n const { onChange } = props;\n const handleChange = useCallback(\n (index: number, newValue: number) => {\n const newValues = [...props.values];\n newValues[index] = Math.min(props.max, Math.max(props.min, newValue));\n onChange(newValues.sort((a, b) => a - b));\n },\n [onChange, props.max, props.min, props.values],\n );\n const getThumbPositionPercent = useCallback(\n (val: number) => ((val - props.min) / (props.max - props.min)) * 100,\n [props.max, props.min],\n );\n const positions = useMemo(\n () => props.values.map((val) => getThumbPositionPercent(val)),\n [getThumbPositionPercent, props.values],\n );\n const theme = useTheme();\n\n const colorTrackBackground = theme.colors.range[props.genre].track.background.rest;\n const colorTrackGradient = theme.colors.range[props.genre].track.gradient.rest;\n const colorThumbBorder = theme.colors.range[props.genre].thumb.border.rest;\n const colorThumbBackground = theme.colors.range[props.genre].thumb.background.rest;\n\n const trackGradient = useMemo(\n () =>\n positions\n .map((position, idx) => {\n const isFirst = idx === 0;\n const isLast = idx === positions.length - 1;\n\n if (isFirst)\n return `${colorTrackBackground} 0%, ${colorTrackBackground} ${position}%, ${colorTrackGradient} ${position}%`;\n if (isLast)\n return `${colorTrackGradient} ${position}%, ${colorTrackBackground} ${position}%, ${colorTrackBackground} 100%`;\n return `${colorTrackGradient} ${position}%`;\n })\n .join(', '),\n [colorTrackGradient, colorTrackBackground, positions],\n );\n const gradient = useMemo(() => `linear-gradient(to right, ${trackGradient})`, [trackGradient]);\n\n return (\n <RangeWrapper $size={props.size} $sx={props.sx} $error={props.error} onBlur={props.onBlur}>\n {props.values.map((val, idx) => (\n <RangeThumb\n key={idx}\n type='range'\n $size={props.size}\n $genre={props.genre}\n min={props.min}\n max={props.max}\n step={props.step}\n value={val}\n onChange={(e) => handleChange(idx, parseFloat(e.target.value))}\n style={{ zIndex: 100 + idx }}\n $colorBackground={colorThumbBackground}\n $colorBorder={colorThumbBorder}\n />\n ))}\n <RangeTrack\n $size={props.size}\n $genre={props.genre}\n style={{\n background: gradient,\n }}\n />\n </RangeWrapper>\n );\n};\n"],"names":["props","onChange","handleChange","useCallback","index","newValue","newValues","values","Math","min","max","sort","a","b","getThumbPositionPercent","val","positions","useMemo","map","theme","useTheme","colorTrackBackground","colors","range","genre","track","background","rest","colorTrackGradient","gradient","colorThumbBorder","thumb","border","colorThumbBackground","trackGradient","position","idx","isFirst","isLast","length","join","jsxs","RangeWrapper","$size","size","$sx","sx","$error","error","onBlur","children","jsx","RangeThumb","type","$genre","step","value","e","parseFloat","target","style","zIndex","$colorBackground","$colorBorder","RangeTrack"],"mappings":"yKAKsBA,IACpB,MAAMC,SAAEA,GAAaD,EACfE,EAAeC,EAAAA,YACnB,CAACC,EAAeC,KACd,MAAMC,EAAY,IAAIN,EAAMO,QAC5BD,EAAUF,GAASI,KAAKC,IAAIT,EAAMU,IAAKF,KAAKE,IAAIV,EAAMS,IAAKJ,IAC3DJ,EAASK,EAAUK,KAAK,CAACC,EAAGC,IAAMD,EAAIC,KAExC,CAACZ,EAAUD,EAAMU,IAAKV,EAAMS,IAAKT,EAAMO,SAEnCO,EAA0BX,EAAAA,YAC7BY,IAAkBA,EAAMf,EAAMS,MAAQT,EAAMU,IAAMV,EAAMS,KAAQ,IACjE,CAACT,EAAMU,IAAKV,EAAMS,MAEdO,EAAYC,EAAAA,QAChB,IAAMjB,EAAMO,OAAOW,IAAKH,GAAQD,EAAwBC,IACxD,CAACD,EAAyBd,EAAMO,SAE5BY,EAAQC,EAAAA,WAERC,EAAuBF,EAAMG,OAAOC,MAAMvB,EAAMwB,OAAOC,MAAMC,WAAWC,KACxEC,EAAqBT,EAAMG,OAAOC,MAAMvB,EAAMwB,OAAOC,MAAMI,SAASF,KACpEG,EAAmBX,EAAMG,OAAOC,MAAMvB,EAAMwB,OAAOO,MAAMC,OAAOL,KAChEM,EAAuBd,EAAMG,OAAOC,MAAMvB,EAAMwB,OAAOO,MAAML,WAAWC,KAExEO,EAAgBjB,EAAAA,QACpB,IACED,EACGE,IAAI,CAACiB,EAAUC,KACd,MAAMC,EAAkB,IAARD,EACVE,EAASF,IAAQpB,EAAUuB,OAAS,EAE1C,OAAIF,EACK,GAAGhB,SAA4BA,KAAwBc,OAAcP,KAAsBO,KAChGG,EACK,GAAGV,KAAsBO,OAAcd,KAAwBc,OAAcd,SAC/E,GAAGO,KAAsBO,OAEjCK,KAAK,MACV,CAACZ,EAAoBP,EAAsBL,IAEvCa,EAAWZ,EAAAA,QAAQ,IAAM,6BAA6BiB,KAAkB,CAACA,IAE/E,SACEO,kBAAAA,KAACC,EAAAA,aAAA,CAAaC,MAAO3C,EAAM4C,KAAMC,IAAK7C,EAAM8C,GAAIC,OAAQ/C,EAAMgD,MAAOC,OAAQjD,EAAMiD,OAChFC,SAAA,CAAAlD,EAAMO,OAAOW,IAAI,CAACH,EAAKqB,MACtBe,kBAAAA,IAACC,EAAAA,WAAA,CAECC,KAAK,QACLV,MAAO3C,EAAM4C,KACbU,OAAQtD,EAAMwB,MACdf,IAAKT,EAAMS,IACXC,IAAKV,EAAMU,IACX6C,KAAMvD,EAAMuD,KACZC,MAAOzC,EACPd,SAAWwD,GAAMvD,EAAakC,EAAKsB,WAAWD,EAAEE,OAAOH,QACvDI,MAAO,CAAEC,OAAQ,IAAMzB,GACvB0B,iBAAkB7B,EAClB8B,aAAcjC,GAXTM,MAcTe,kBAAAA,IAACa,EAAAA,WAAA,CACCrB,MAAO3C,EAAM4C,KACbU,OAAQtD,EAAMwB,MACdoC,MAAO,CACLlC,WAAYG"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./component-Ds4G9JaH.cjs"),r=require("./context.constants-B9vCuOqK.cjs");exports.Accordion=o.Accordion,exports.AccordionDetails=r.AccordionDetails,exports.AccordionStyledIcon=r.AccordionStyledIcon,exports.AccordionSummary=r.AccordionSummary,exports.AccordionSummaryContent=r.AccordionSummaryContent,exports.AccordionWrapper=r.AccordionWrapper;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./component-DFMjWiWi.cjs"),r=require("./context.constants-CHzb-q9a.cjs");exports.Accordion=o.Accordion,exports.AccordionDetails=r.AccordionDetails,exports.AccordionStyledIcon=r.AccordionStyledIcon,exports.AccordionSummary=r.AccordionSummary,exports.AccordionSummaryContent=r.AccordionSummaryContent,exports.AccordionWrapper=r.AccordionWrapper;
2
2
  //# sourceMappingURL=component-accordion.cjs.js.map
@@ -1,5 +1,5 @@
1
- import { A } from "./component-CGXjLqiU.js";
2
- import { d, e, b, c, A as A2 } from "./context.constants-rTgzRM3c.js";
1
+ import { A } from "./component-BT3dejQO.js";
2
+ import { d, e, b, c, A as A2 } from "./context.constants-ByIVCRij.js";
3
3
  export {
4
4
  A as Accordion,
5
5
  d as AccordionDetails,
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./context.constants-B9vCuOqK.cjs"),o=require("./component-7NBd7NIb.cjs");exports.ButtonGroupWrapper=t.ButtonGroupWrapper,exports.ButtonGroup=o.ButtonGroup;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./context.constants-CHzb-q9a.cjs"),o=require("./component-ClQrDMsC.cjs");exports.ButtonGroupWrapper=t.ButtonGroupWrapper,exports.ButtonGroup=o.ButtonGroup;
2
2
  //# sourceMappingURL=component-button-group.cjs.js.map
@@ -1,5 +1,5 @@
1
- import { h } from "./context.constants-rTgzRM3c.js";
2
- import { B } from "./component-CL9kCwRv.js";
1
+ import { h } from "./context.constants-ByIVCRij.js";
2
+ import { B } from "./component-Br2H7F-p.js";
3
3
  export {
4
4
  B as ButtonGroup,
5
5
  h as ButtonGroupWrapper
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./context.constants-B9vCuOqK.cjs");exports.Button=t.Button,exports.StyledButton=t.StyledButton,exports.StyledButtonIconsWrapper=t.StyledButtonIconsWrapper;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./context.constants-CHzb-q9a.cjs");exports.Button=t.Button,exports.StyledButton=t.StyledButton,exports.StyledButtonIconsWrapper=t.StyledButtonIconsWrapper;
2
2
  //# sourceMappingURL=component-button.cjs.js.map