@yogiswara/honcho-editor-ui 2.7.12 → 2.7.14

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 (139) hide show
  1. package/package.json +1 -1
  2. package/dist/color.d.ts +0 -9
  3. package/dist/color.js +0 -9
  4. package/dist/components/editor/GalleryAlbum/AlbumImageGallery.d.ts +0 -8
  5. package/dist/components/editor/GalleryAlbum/AlbumImageGallery.js +0 -28
  6. package/dist/components/editor/GalleryAlbum/ImageItem.d.ts +0 -10
  7. package/dist/components/editor/GalleryAlbum/ImageItem.js +0 -81
  8. package/dist/components/editor/HAccordionAspectRatio.d.ts +0 -14
  9. package/dist/components/editor/HAccordionAspectRatio.js +0 -102
  10. package/dist/components/editor/HAccordionColor.d.ts +0 -16
  11. package/dist/components/editor/HAccordionColor.js +0 -282
  12. package/dist/components/editor/HAccordionColorAdjustment.d.ts +0 -35
  13. package/dist/components/editor/HAccordionColorAdjustment.js +0 -31
  14. package/dist/components/editor/HAccordionDetails.d.ts +0 -12
  15. package/dist/components/editor/HAccordionDetails.js +0 -157
  16. package/dist/components/editor/HAccordionLight.d.ts +0 -20
  17. package/dist/components/editor/HAccordionLight.js +0 -414
  18. package/dist/components/editor/HAccordionPreset.d.ts +0 -23
  19. package/dist/components/editor/HAccordionPreset.js +0 -50
  20. package/dist/components/editor/HAlertBox.d.ts +0 -8
  21. package/dist/components/editor/HAlertBox.js +0 -55
  22. package/dist/components/editor/HAspectRatioMobile.d.ts +0 -0
  23. package/dist/components/editor/HAspectRatioMobile.js +0 -1
  24. package/dist/components/editor/HBulkAccordionColorAdjustment.d.ts +0 -55
  25. package/dist/components/editor/HBulkAccordionColorAdjustment.js +0 -31
  26. package/dist/components/editor/HBulkAccordionColorAdjustmentColors.d.ts +0 -20
  27. package/dist/components/editor/HBulkAccordionColorAdjustmentColors.js +0 -121
  28. package/dist/components/editor/HBulkAccordionColorAdjustmentDetails.d.ts +0 -12
  29. package/dist/components/editor/HBulkAccordionColorAdjustmentDetails.js +0 -65
  30. package/dist/components/editor/HBulkAccordionColorAdjustmentLight.d.ts +0 -28
  31. package/dist/components/editor/HBulkAccordionColorAdjustmentLight.js +0 -177
  32. package/dist/components/editor/HBulkColorAdjustmentMobile.d.ts +0 -53
  33. package/dist/components/editor/HBulkColorAdjustmentMobile.js +0 -16
  34. package/dist/components/editor/HBulkColorMobile.d.ts +0 -20
  35. package/dist/components/editor/HBulkColorMobile.js +0 -121
  36. package/dist/components/editor/HBulkDetailsMobile.d.ts +0 -12
  37. package/dist/components/editor/HBulkDetailsMobile.js +0 -65
  38. package/dist/components/editor/HBulkLightMobile.d.ts +0 -28
  39. package/dist/components/editor/HBulkLightMobile.js +0 -192
  40. package/dist/components/editor/HBulkPreset.d.ts +0 -24
  41. package/dist/components/editor/HBulkPreset.js +0 -43
  42. package/dist/components/editor/HBulkPresetMobile.d.ts +0 -15
  43. package/dist/components/editor/HBulkPresetMobile.js +0 -26
  44. package/dist/components/editor/HDialogBox.d.ts +0 -18
  45. package/dist/components/editor/HDialogBox.js +0 -51
  46. package/dist/components/editor/HDialogCopy.d.ts +0 -40
  47. package/dist/components/editor/HDialogCopy.js +0 -80
  48. package/dist/components/editor/HFooter.d.ts +0 -12
  49. package/dist/components/editor/HFooter.js +0 -24
  50. package/dist/components/editor/HHeaderEditor.d.ts +0 -17
  51. package/dist/components/editor/HHeaderEditor.js +0 -36
  52. package/dist/components/editor/HImageEditorBulkDekstop.d.ts +0 -15
  53. package/dist/components/editor/HImageEditorBulkDekstop.js +0 -29
  54. package/dist/components/editor/HImageEditorBulkMobile.d.ts +0 -72
  55. package/dist/components/editor/HImageEditorBulkMobile.js +0 -81
  56. package/dist/components/editor/HImageEditorDekstop.d.ts +0 -15
  57. package/dist/components/editor/HImageEditorDekstop.js +0 -29
  58. package/dist/components/editor/HImageEditorMobile.d.ts +0 -51
  59. package/dist/components/editor/HImageEditorMobile.js +0 -92
  60. package/dist/components/editor/HImageEditorMobileLayout.d.ts +0 -14
  61. package/dist/components/editor/HImageEditorMobileLayout.js +0 -58
  62. package/dist/components/editor/HModalEditorDekstop.d.ts +0 -13
  63. package/dist/components/editor/HModalEditorDekstop.js +0 -22
  64. package/dist/components/editor/HModalMobile.d.ts +0 -13
  65. package/dist/components/editor/HModalMobile.js +0 -7
  66. package/dist/components/editor/HPresetDelete.d.ts +0 -7
  67. package/dist/components/editor/HPresetDelete.js +0 -7
  68. package/dist/components/editor/HPresetOptionMenu.d.ts +0 -9
  69. package/dist/components/editor/HPresetOptionMenu.js +0 -20
  70. package/dist/components/editor/HSliderColorMobile.d.ts +0 -16
  71. package/dist/components/editor/HSliderColorMobile.js +0 -270
  72. package/dist/components/editor/HSliderDetailsMobile.d.ts +0 -12
  73. package/dist/components/editor/HSliderDetailsMobile.js +0 -154
  74. package/dist/components/editor/HSliderLightMobile.d.ts +0 -20
  75. package/dist/components/editor/HSliderLightMobile.js +0 -420
  76. package/dist/components/editor/HTabAspectRatioMobile.d.ts +0 -0
  77. package/dist/components/editor/HTabAspectRatioMobile.js +0 -1
  78. package/dist/components/editor/HTabColorAdjustmentMobile.d.ts +0 -33
  79. package/dist/components/editor/HTabColorAdjustmentMobile.js +0 -16
  80. package/dist/components/editor/HTabPresetMobile.d.ts +0 -14
  81. package/dist/components/editor/HTabPresetMobile.js +0 -10
  82. package/dist/components/editor/HTextField.d.ts +0 -14
  83. package/dist/components/editor/HTextField.js +0 -51
  84. package/dist/components/editor/HWatermarkView.d.ts +0 -6
  85. package/dist/components/editor/HWatermarkView.js +0 -16
  86. package/dist/components/editor/svg/Tick.d.ts +0 -2
  87. package/dist/components/editor/svg/Tick.js +0 -6
  88. package/dist/components/modal/HModalDialog.d.ts +0 -12
  89. package/dist/components/modal/HModalDialog.js +0 -18
  90. package/dist/components/modal/HModalRename.d.ts +0 -14
  91. package/dist/components/modal/HModalRename.js +0 -35
  92. package/dist/hooks/demo/HonchoEditorBulkDemo.d.ts +0 -3
  93. package/dist/hooks/demo/HonchoEditorBulkDemo.js +0 -410
  94. package/dist/hooks/demo/HonchoEditorSingleCleanDemo.d.ts +0 -3
  95. package/dist/hooks/demo/HonchoEditorSingleCleanDemo.js +0 -354
  96. package/dist/hooks/demo/index.d.ts +0 -2
  97. package/dist/hooks/demo/index.js +0 -2
  98. package/dist/hooks/editor/type.d.ts +0 -174
  99. package/dist/hooks/editor/type.js +0 -1
  100. package/dist/hooks/editor/useHonchoEditorBulk.d.ts +0 -96
  101. package/dist/hooks/editor/useHonchoEditorBulk.js +0 -427
  102. package/dist/hooks/editor/useHonchoEditorSingle.d.ts +0 -44
  103. package/dist/hooks/editor/useHonchoEditorSingle.js +0 -162
  104. package/dist/hooks/useAdjustmentHistory.d.ts +0 -97
  105. package/dist/hooks/useAdjustmentHistory.js +0 -493
  106. package/dist/hooks/useAdjustmentHistoryBatch.d.ts +0 -177
  107. package/dist/hooks/useAdjustmentHistoryBatch.js +0 -1189
  108. package/dist/hooks/useGallerySwipe.d.ts +0 -36
  109. package/dist/hooks/useGallerySwipe.js +0 -344
  110. package/dist/hooks/usePaging.d.ts +0 -89
  111. package/dist/hooks/usePaging.js +0 -211
  112. package/dist/hooks/usePreset.d.ts +0 -82
  113. package/dist/hooks/usePreset.js +0 -344
  114. package/dist/index.d.ts +0 -41
  115. package/dist/index.js +0 -44
  116. package/dist/lib/context/EditorContext.d.ts +0 -28
  117. package/dist/lib/context/EditorContext.js +0 -60
  118. package/dist/lib/context/EditorProcessingService.d.ts +0 -36
  119. package/dist/lib/context/EditorProcessingService.js +0 -249
  120. package/dist/lib/editor/honcho-editor.d.ts +0 -324
  121. package/dist/lib/editor/honcho-editor.js +0 -825
  122. package/dist/lib/hooks/useEditor.d.ts +0 -22
  123. package/dist/lib/hooks/useEditor.js +0 -35
  124. package/dist/lib/hooks/useEditorHeadless.d.ts +0 -34
  125. package/dist/lib/hooks/useEditorHeadless.js +0 -207
  126. package/dist/lib/hooks/useImageProcessor.d.ts +0 -18
  127. package/dist/lib/hooks/useImageProcessor.js +0 -113
  128. package/dist/setupTests.d.ts +0 -1
  129. package/dist/setupTests.js +0 -1
  130. package/dist/themes/colors.d.ts +0 -12
  131. package/dist/themes/colors.js +0 -12
  132. package/dist/themes/honchoTheme.d.ts +0 -25
  133. package/dist/themes/honchoTheme.js +0 -94
  134. package/dist/utils/adjustment.d.ts +0 -6
  135. package/dist/utils/adjustment.js +0 -48
  136. package/dist/utils/imageLoader.d.ts +0 -11
  137. package/dist/utils/imageLoader.js +0 -48
  138. package/dist/utils/isMobile.d.ts +0 -1
  139. package/dist/utils/isMobile.js +0 -5
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yogiswara/honcho-editor-ui",
3
- "version": "2.7.12",
3
+ "version": "2.7.14",
4
4
  "description": "A complete UI component library for the Honcho photo editor.",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.mjs",
package/dist/color.d.ts DELETED
@@ -1,9 +0,0 @@
1
- export declare const neutral: {
2
- white: string;
3
- 10: string;
4
- 25: string;
5
- 50: string;
6
- 75: string;
7
- 100: string;
8
- 200: string;
9
- };
package/dist/color.js DELETED
@@ -1,9 +0,0 @@
1
- export const neutral = {
2
- white: "#FFFFFF",
3
- 10: "#F9F9F9",
4
- 25: "#DBDBDB",
5
- 50: "#8D8D8D",
6
- 75: "#575757",
7
- 100: "#0A0A1C",
8
- 200: "#000000",
9
- };
@@ -1,8 +0,0 @@
1
- import React from "react";
2
- import type { PhotoData } from "../../../hooks/editor/useHonchoEditorBulk";
3
- interface ImageGalleryProps {
4
- imageCollection: PhotoData[];
5
- onToggleSelect: (photo: PhotoData) => void;
6
- }
7
- export declare const AlbumImageGallery: React.FC<ImageGalleryProps>;
8
- export {};
@@ -1,28 +0,0 @@
1
- "use client";
2
- import { jsx as _jsx } from "react/jsx-runtime";
3
- import { Box, Stack } from "@mui/material";
4
- import Masonry, { ResponsiveMasonry } from "react-responsive-masonry";
5
- import GalleryImageItem from "./ImageItem";
6
- export const AlbumImageGallery = (props) => {
7
- const { imageCollection, onToggleSelect } = props;
8
- return (_jsx(Stack, { sx: { width: '100%', maxHeight: '100%', overflowY: 'auto' }, children: _jsx(ResponsiveMasonry, { columnsCountBreakPoints: { 750: 2, 900: 4 }, children: _jsx(Masonry, { children: imageCollection.map((photo, index) => {
9
- // This guard clause is still important for runtime safety.
10
- if (!photo.key || !photo.src) {
11
- console.warn("Skipping item without a key or src:", photo);
12
- return null;
13
- }
14
- // NEW: Create a new object that matches the 'PhotoProps' interface.
15
- // This explicitly tells TypeScript that all required fields are present.
16
- const imageItemPhotoProps = {
17
- key: photo.key,
18
- src: photo.src,
19
- width: photo.width,
20
- height: photo.height,
21
- alt: photo.alt,
22
- // We pass the original photo object in the generic 'photo' property
23
- // in case ImageItem needs it for other operations.
24
- photo: photo,
25
- };
26
- return (_jsx(Box, { sx: { m: 0.5 }, children: _jsx(GalleryImageItem, { margin: "0px", index: index, direction: "column", onToggleSelect: () => { onToggleSelect(photo); }, data: photo }) }, photo.key));
27
- }) }) }) }));
28
- };
@@ -1,10 +0,0 @@
1
- import { PhotoData } from "../../../hooks/editor/useHonchoEditorBulk";
2
- interface Props {
3
- margin?: any;
4
- index: number;
5
- data: PhotoData;
6
- direction: "row" | "column";
7
- onToggleSelect: () => void;
8
- }
9
- declare const GalleryImageItem: (props: Props) => import("react/jsx-runtime").JSX.Element;
10
- export default GalleryImageItem;
@@ -1,81 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { useMemo } from "react";
3
- import { Box, CardMedia, useTheme } from "@mui/material";
4
- import { neutral } from "../../../color";
5
- const initialAdjustments = {
6
- temperature: 0, tint: 0, saturation: 0, vibrance: 0, exposure: 0, contrast: 0,
7
- highlights: 0, shadows: 0, whites: 0, blacks: 0, clarity: 0, sharpness: 0,
8
- };
9
- const imgStyle = {
10
- transition: "transform .135s cubic-bezier(0.0,0.0,0.2,1),opacity linear .15s",
11
- width: "100%",
12
- // objectFit: "contain",
13
- //height: "100%",
14
- };
15
- const selectedImgStyle = {
16
- borderRadius: "8px",
17
- transform: "translateZ(0px) scale3d(1, 1, 1)",
18
- // transition: "transform .135s cubic-bezier(0.0,0.0,0.2,1),opacity linear .15s"
19
- };
20
- const GalleryImageItem = (props) => {
21
- const { margin, data } = props;
22
- const theme = useTheme();
23
- const imageData = data;
24
- const commonStyle = useMemo(() => {
25
- return {
26
- backgroundColor: neutral.white,
27
- overflow: "hidden",
28
- position: "relative",
29
- width: "100%",
30
- aspectRatio: `${imageData.width}/${imageData.height}`,
31
- };
32
- }, [props.direction, imageData]);
33
- const imageSx = useMemo(() => {
34
- const baseStyles = imageData.isSelected ? {
35
- ...imgStyle,
36
- ...selectedImgStyle,
37
- aspectRatio: `${imageData.width}/${imageData.height}`,
38
- } : {
39
- ...imgStyle,
40
- };
41
- return {
42
- ...baseStyles,
43
- opacity: 1, // Previously depended on isProcessingComplete
44
- transition: 'opacity 0.3s ease-in-out',
45
- };
46
- }, [props.data.isSelected, imageData.width, imageData.height]);
47
- const boxNotSelected = useMemo(() => ({
48
- margin,
49
- // height: photo.height,
50
- ...commonStyle,
51
- transition: ".3s",
52
- // "&:hover": { padding: "12px", backgroundColor: "primary.light1" },
53
- "&:-webkit-transition": { transition: ".3s" },
54
- "&:hover > .checkbox": { display: "block" },
55
- cursor: "pointer",
56
- backgroundColor: "transparent",
57
- }), [margin, commonStyle]);
58
- const boxSelected = useMemo(() => ({
59
- margin,
60
- // height: photo.height,
61
- ...commonStyle,
62
- cursor: "pointer",
63
- transition: ".3s",
64
- "&:-webkit-transition": { transition: ".3s" },
65
- padding: { xs: "13px 12px", sm: "21.31px 25.56px 21.32px 27.68px" },
66
- }), [
67
- margin,
68
- commonStyle,
69
- theme.palette.light,
70
- ]);
71
- const boxOuterSx = useMemo(() => {
72
- if (props.data.isSelected) {
73
- return { ...boxSelected };
74
- }
75
- else {
76
- return { ...boxNotSelected };
77
- }
78
- }, [imageData.height, imageData.width, commonStyle, boxSelected, boxNotSelected, margin]);
79
- return (_jsx(Box, { id: "Box_image", sx: boxOuterSx, className: "image", children: _jsx(CardMedia, { id: "card_media", component: "img", className: "image", loading: "lazy", alt: imageData.alt ?? "Image", sx: imageSx, src: imageData.src, width: "100%", onClick: props.onToggleSelect }) }, imageData.key));
80
- };
81
- export default GalleryImageItem;
@@ -1,14 +0,0 @@
1
- interface Props {
2
- activeRatio: string;
3
- activeSquareRatio: string;
4
- activeWideRatio: string;
5
- angelChange: number;
6
- widthPX: number;
7
- heightPX: number;
8
- onRatioSelect: (ratio: string) => void;
9
- onAngleChange: (angle: number) => void;
10
- onWidthChange: (value: number) => void;
11
- onHeightChange: (value: number) => void;
12
- }
13
- export default function HAccordionAspectRatio(props: Props): import("react/jsx-runtime").JSX.Element;
14
- export {};
@@ -1,102 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { useState } from "react";
3
- import { Accordion, AccordionDetails, AccordionSummary, Button, Stack, Slider, Typography, CardMedia, IconButton, TextField } from "@mui/material";
4
- import useHonchoTypography from "../../themes/honchoTheme";
5
- import useColors from '../../themes/colors';
6
- export default function HAccordionAspectRatio(props) {
7
- const typography = useHonchoTypography();
8
- const colors = useColors();
9
- const [isCustomExpanded, setIsCustomExpanded] = useState(false);
10
- const handleCustomAccordionChange = (event, isExpanded) => {
11
- setIsCustomExpanded(isExpanded);
12
- if (isExpanded) {
13
- props.onRatioSelect('original');
14
- }
15
- };
16
- const handleAngleSliderChange = (_event, newValue) => {
17
- props.onAngleChange(newValue);
18
- };
19
- const textFieldSx = {
20
- width: "80px",
21
- padding: "4px",
22
- borderRadius: "4px",
23
- alignItems: "center",
24
- border: `1px solid ${colors.outlineVariant}`,
25
- textAlign: "center",
26
- '& .MuiFilledInput-root': {
27
- backgroundColor: 'transparent',
28
- border: 'none',
29
- '&:before': {
30
- borderBottom: 'none',
31
- },
32
- '&:after': {
33
- borderBottom: 'none',
34
- },
35
- '&:hover:not(.Mui-disabled):before': {
36
- borderBottom: 'none',
37
- },
38
- '&.Mui-focused:after': {
39
- borderBottom: 'none',
40
- },
41
- },
42
- '& .MuiFilledInput-input': {
43
- textAlign: 'center',
44
- padding: 0,
45
- color: colors.surface,
46
- }
47
- };
48
- const customAccordionStyle = {
49
- backgroundColor: 'transparent',
50
- boxShadow: 'none',
51
- margin: '0px',
52
- '&.MuiAccordion-root:before': {
53
- display: 'none',
54
- },
55
- '& .MuiAccordionSummary-root': {
56
- minHeight: '22px',
57
- padding: '0px',
58
- '& .MuiAccordionSummary-content': {
59
- margin: '0px',
60
- justifyContent: 'flex-start',
61
- },
62
- },
63
- '& .MuiAccordionDetails-root': {
64
- padding: '8px 0px 0px 0px',
65
- },
66
- '&.MuiAccordion-root.Mui-expanded': {
67
- margin: '0px',
68
- },
69
- };
70
- return (_jsx(_Fragment, { children: _jsxs(Stack, { direction: "column", spacing: 2, sx: { p: 2, color: colors.surface }, children: [_jsxs(Stack, { direction: "row", spacing: 2, justifyContent: "start", alignItems: "center", children: [_jsx(IconButton, { "aria-label": "potrait", onClick: () => props.onRatioSelect('potrait'), children: _jsx(CardMedia, { component: "img", image: props.activeRatio === 'potrait' ? "/v1/svg/aspect-ratio-potrait-activate-editor.svg" : "/v1/svg/aspect-ratio-potrait-inactive-editor.svg", sx: { width: "14px", height: "20px" } }) }), _jsx(IconButton, { "aria-label": "wide", onClick: () => props.onRatioSelect('wide'), children: _jsx(CardMedia, { component: "img", image: props.activeRatio === 'wide' ? "/v1/svg/aspect-ratio-potrait-activate-editor.svg" : "/v1/svg/aspect-ratio-potrait-inactive-editor.svg", sx: { width: "14px", height: "20px", rotate: "-90deg" } }) })] }), _jsxs(Stack, { direction: "row", justifyContent: "space-between", alignItems: "center", children: [_jsx(IconButton, { onClick: () => props.onRatioSelect('original'), sx: { justifyContent: 'flex-start', color: props.activeSquareRatio === 'original' ? colors.surface : colors.onSurfaceVariant1, ...typography.bodyMedium }, children: "Original" }), _jsx(CardMedia, { component: "img", image: "v1/svg/check-ratio-editor.svg", sx: { width: "20px", height: "20px" } })] }), _jsx(Button, { onClick: () => props.onRatioSelect('freeform'), sx: { justifyContent: 'flex-start', color: props.activeSquareRatio === 'freeform' ? colors.surface : colors.onSurfaceVariant1, ...typography.bodyMedium }, children: "Freeform" }), _jsxs(Accordion, { expanded: isCustomExpanded, onChange: handleCustomAccordionChange, sx: customAccordionStyle, children: [_jsx(AccordionSummary, { children: _jsx(Typography, { sx: {
71
- ...typography.bodyMedium,
72
- color: props.activeSquareRatio === 'custom' ? colors.surface : colors.onSurfaceVariant1,
73
- width: '100%',
74
- cursor: 'pointer',
75
- paddingLeft: '8px'
76
- }, children: "Custom" }) }), _jsx(AccordionDetails, { children: _jsx(Stack, { direction: "row", spacing: 4, justifyContent: "center", alignItems: "center", sx: { paddingLeft: '16px' }, children: _jsxs(Stack, { direction: "row", spacing: 2, justifyContent: "center", alignItems: "center", children: [_jsx(Stack, { direction: "column", spacing: 0.5, children: _jsx(TextField, { hiddenLabel: true, placeholder: "Width", id: "width-px-input", value: props.widthPX === 0 ? '' : props.widthPX, variant: "filled", onChange: (e) => props.onWidthChange(Number(e.target.value)), sx: textFieldSx }) }), _jsx(Typography, { sx: { ...typography.bodyMedium, color: colors.surface }, children: " : " }), _jsx(Stack, { direction: "column", spacing: 0.5, children: _jsx(TextField, { hiddenLabel: true, placeholder: "Height", id: "height-px-input", value: props.heightPX === 0 ? '' : props.heightPX, variant: "filled", onChange: (e) => props.onHeightChange(Number(e.target.value)), sx: textFieldSx }) })] }) }) })] }), _jsx(Button, { onClick: () => props.onRatioSelect('1:1'), sx: { justifyContent: 'flex-start', color: props.activeWideRatio === '1:1' ? colors.surface : colors.onSurfaceVariant1, ...typography.bodyMedium }, children: "1:1" }), _jsx(Button, { onClick: () => props.onRatioSelect(props.activeRatio === 'wide' ? '3:2' : '2:3'), sx: { justifyContent: 'flex-start', color: props.activeWideRatio === (props.activeRatio === 'wide' ? '3:2' : '2:3') ? colors.surface : colors.onSurfaceVariant1, ...typography.bodyMedium }, children: props.activeRatio === 'wide' ? '3:2' : '2:3' }), _jsx(Button, { onClick: () => props.onRatioSelect(props.activeRatio === 'wide' ? '16:9' : '9:16'), sx: { justifyContent: 'flex-start', color: props.activeWideRatio === (props.activeRatio === 'wide' ? '16:9' : '9:16') ? colors.surface : colors.onSurfaceVariant1, ...typography.bodyMedium }, children: props.activeRatio === 'wide' ? '16:9' : '9:16' }), _jsxs(Stack, { direction: "row", justifyContent: "space-between", children: [_jsx(Typography, { sx: { ...typography.bodyMedium }, children: "Angel:" }), _jsx(TextField, { hiddenLabel: true, id: "filled-hidden-label-small", value: props.angelChange, variant: "filled", onChange: (e) => props.onAngleChange(Number(e.target.value)), sx: {
77
- width: "40px",
78
- alignItems: "center",
79
- textAlign: "center",
80
- '& .MuiFilledInput-root': {
81
- backgroundColor: 'transparent',
82
- border: 'none',
83
- '&:before': {
84
- borderBottom: 'none',
85
- },
86
- '&:after': {
87
- borderBottom: 'none',
88
- },
89
- '&:hover:not(.Mui-disabled):before': {
90
- borderBottom: 'none',
91
- },
92
- '&.Mui-focused:after': {
93
- borderBottom: 'none',
94
- },
95
- },
96
- '& .MuiFilledInput-input': {
97
- textAlign: 'center',
98
- padding: 0,
99
- color: colors.surface,
100
- }
101
- } })] }), _jsx(Slider, { sx: { width: "200px", color: colors.surface }, size: "small", value: props.angelChange, step: 1, min: -360, max: 360, onChange: handleAngleSliderChange })] }) }));
102
- }
@@ -1,16 +0,0 @@
1
- import { AdjustmentState } from '../../hooks/editor/type';
2
- interface Props {
3
- TempScore: number;
4
- TintScore: number;
5
- SaturationScore: number;
6
- VibranceScore: number;
7
- isBatchMode: boolean;
8
- onTempChange: (field: keyof AdjustmentState, value: number) => void;
9
- onTintChange: (field: keyof AdjustmentState, value: number) => void;
10
- onSaturationChange: (field: keyof AdjustmentState, value: number) => void;
11
- onVibranceChange: (field: keyof AdjustmentState, value: number) => void;
12
- onDragStart: () => void;
13
- onDragEnd: () => void;
14
- }
15
- export default function HAccordionColor(props: Props): import("react/jsx-runtime").JSX.Element;
16
- export {};
@@ -1,282 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
- import { Stack, Slider, Typography, TextField } from "@mui/material";
3
- import useHonchoTypography from "../../themes/honchoTheme";
4
- import useColors from '../../themes/colors';
5
- export default function HAccordionColor(props) {
6
- const typography = useHonchoTypography();
7
- const colors = useColors();
8
- const blueScale = '#292bc0'; // Blue color on left
9
- const yellowScale = '#dfdc28'; // Yellow color on right
10
- const greenScale = '#00ff04';
11
- const purpleScale = '#b700ff';
12
- // The gradient for the *entire* background of the slider bar
13
- const tempGradient = `linear-gradient(to right, ${blueScale} 35%, ${yellowScale} 75%)`;
14
- const tintGradient = `linear-gradient(to right, ${greenScale} 20%, ${purpleScale} 75%)`;
15
- const spectrumColorsSaturation = ['yellow', 'lime', 'deepskyblue', 'magenta', 'red'];
16
- const greyScaleStart = '#000000'; // Black at -100
17
- const greyScaleEnd = '#ffffff'; // White at 0 (or a very light grey)
18
- const colorStops = spectrumColorsSaturation.map((color, index) => {
19
- const position = 50 + (index / (spectrumColorsSaturation.length - 1)) * 50;
20
- return `${color} ${position}%`;
21
- }).join(', ');
22
- // The gradient for the *entire* background of the slider bar
23
- const fullTrackGradient = `linear-gradient(to right, ${greyScaleStart} 0%, ${greyScaleEnd} 50%, ${colorStops})`;
24
- const focusedInputStyle = {
25
- backgroundColor: "#1C1B1FB2",
26
- borderRadius: '5px 5px 0px 0px',
27
- borderBottom: 'none',
28
- pl: '2px',
29
- };
30
- const formatValue = (value) => {
31
- if (value > 0)
32
- return `+${value}`;
33
- return value.toString();
34
- };
35
- const handleInputChange = (event, min, max, onChange) => {
36
- const value = event.target.value;
37
- if (value === '+' || value === '-')
38
- return;
39
- let numericValue = parseInt(value, 10);
40
- if (isNaN(numericValue))
41
- numericValue = 0;
42
- const clampedValue = Math.max(min, Math.min(max, numericValue));
43
- onChange(clampedValue);
44
- };
45
- return (_jsx(_Fragment, { children: _jsxs(Stack, { children: [_jsxs(Stack, { direction: "column", gap: "4px", sx: { pt: '6px', pb: '2px', px: '0px', mx: '0px', '&:focus-within .MuiFilledInput-input': focusedInputStyle }, children: [_jsxs(Stack, { direction: "row", justifyContent: "space-between", children: [_jsx(Typography, { component: "label", htmlFor: "temperature-input", onDoubleClick: () => props.onTempChange("tempScore", 0), sx: { ...typography.bodyMedium, userSelect: 'none' }, children: "Temperature" }), _jsx(TextField, { hiddenLabel: true, id: "temperature-input", value: formatValue(props.TempScore), variant: "filled", onChange: (e) => handleInputChange(e, -100, 100, (val) => props.onTempChange("tempScore", val)), className: "control-label", sx: {
46
- width: "40px",
47
- height: "10px",
48
- alignItems: "center",
49
- textAlign: "right",
50
- display: "flex",
51
- '& .MuiFilledInput-root': {
52
- backgroundColor: 'transparent',
53
- borderRadius: "0px",
54
- border: 'none',
55
- '&:before': {
56
- borderBottom: 'none',
57
- },
58
- '&:after': {
59
- borderBottom: 'none',
60
- },
61
- '&:hover:not(.Mui-disabled):before': {
62
- borderBottom: 'none',
63
- },
64
- '&.Mui-focused:after': {
65
- borderBottom: 'none',
66
- },
67
- },
68
- '& .MuiFilledInput-input': {
69
- textAlign: 'right',
70
- padding: 0,
71
- pr: '4px',
72
- color: colors.surface,
73
- fontSize: "14px",
74
- },
75
- } })] }), _jsx(Slider, { sx: {
76
- width: "200px",
77
- color: colors.surface,
78
- '& .MuiSlider-rail': {
79
- background: tempGradient,
80
- opacity: 1,
81
- },
82
- '& .MuiSlider-track': {
83
- background: 'transparent',
84
- border: 'none',
85
- },
86
- '& .MuiSlider-thumb': {
87
- boxShadow: 'none',
88
- },
89
- '& .MuiSlider-thumb:hover': {
90
- boxShadow: 'none',
91
- },
92
- }, size: "small", value: props.TempScore, step: 1, min: -100, max: 100, onChange: (_event, newValue) => props.onTempChange("tempScore", newValue), onDoubleClick: () => props.onTempChange("tempScore", 0), onMouseDown: () => {
93
- if (!props.isBatchMode) {
94
- props.onDragStart();
95
- }
96
- }, onMouseUp: () => {
97
- props.onDragEnd();
98
- }, onTouchStart: () => {
99
- if (!props.isBatchMode) {
100
- props.onDragStart();
101
- }
102
- }, onTouchEnd: () => {
103
- props.onDragEnd();
104
- } })] }), _jsxs(Stack, { direction: "column", gap: "3px", sx: { pt: '10px', pb: '0px', px: '0px', mx: '0px', '&:focus-within .MuiFilledInput-input': focusedInputStyle }, children: [_jsxs(Stack, { direction: "row", justifyContent: "space-between", children: [_jsx(Typography, { component: "label", htmlFor: "tint-input", onDoubleClick: () => props.onTintChange("tintScore", 0), sx: { ...typography.bodyMedium, userSelect: 'none' }, children: "Tint" }), _jsx(TextField, { hiddenLabel: true, id: "tint-input", value: formatValue(props.TintScore), variant: "filled", onChange: (e) => handleInputChange(e, -100, 100, (val) => props.onTintChange("tintScore", val)), sx: {
105
- width: "40px",
106
- height: "10px",
107
- alignItems: "center",
108
- textAlign: "right",
109
- display: "flex",
110
- '& .MuiFilledInput-root': {
111
- backgroundColor: 'transparent',
112
- borderRadius: "0px",
113
- border: 'none',
114
- '&:before': {
115
- borderBottom: 'none',
116
- },
117
- '&:after': {
118
- borderBottom: 'none',
119
- },
120
- '&:hover:not(.Mui-disabled):before': {
121
- borderBottom: 'none',
122
- },
123
- '&.Mui-focused:after': {
124
- borderBottom: 'none',
125
- },
126
- },
127
- '& .MuiFilledInput-input': {
128
- textAlign: 'right',
129
- padding: 0,
130
- pr: '4px',
131
- color: colors.surface,
132
- fontSize: "14px",
133
- },
134
- } })] }), _jsx(Slider, { sx: {
135
- width: "200px",
136
- color: colors.surface,
137
- '& .MuiSlider-rail': {
138
- background: tintGradient,
139
- opacity: 1,
140
- },
141
- '& .MuiSlider-track': {
142
- background: 'transparent',
143
- border: 'none',
144
- },
145
- '& .MuiSlider-thumb': {
146
- boxShadow: 'none',
147
- },
148
- '& .MuiSlider-thumb:hover': {
149
- boxShadow: 'none',
150
- },
151
- }, size: "small", value: props.TintScore, step: 1, min: -100, max: 100, onChange: (_event, newValue) => props.onTintChange("tintScore", newValue), onDoubleClick: () => props.onTintChange("tintScore", 0), onMouseDown: () => {
152
- if (!props.isBatchMode) {
153
- props.onDragStart();
154
- }
155
- }, onMouseUp: () => {
156
- props.onDragEnd();
157
- }, onTouchStart: () => {
158
- if (!props.isBatchMode) {
159
- props.onDragStart();
160
- }
161
- }, onTouchEnd: () => {
162
- props.onDragEnd();
163
- } })] }), _jsxs(Stack, { direction: "column", gap: "3px", sx: { pt: '10px', pb: '0px', px: '0px', mx: '0px', '&:focus-within .MuiFilledInput-input': focusedInputStyle }, children: [_jsxs(Stack, { direction: "row", justifyContent: "space-between", children: [_jsx(Typography, { component: "label", htmlFor: "vibrance-input", onDoubleClick: () => props.onVibranceChange("vibranceScore", 0), sx: { ...typography.bodyMedium, userSelect: 'none' }, children: "Vibrance" }), _jsx(TextField, { hiddenLabel: true, id: "vibrance-input", value: formatValue(props.VibranceScore), variant: "filled", onChange: (e) => handleInputChange(e, -100, 100, (val) => props.onVibranceChange("vibranceScore", val)), sx: {
164
- width: "40px",
165
- height: "10px",
166
- alignItems: "center",
167
- textAlign: "right",
168
- display: "flex",
169
- '& .MuiFilledInput-root': {
170
- backgroundColor: 'transparent',
171
- borderRadius: "0px",
172
- border: 'none',
173
- '&:before': {
174
- borderBottom: 'none',
175
- },
176
- '&:after': {
177
- borderBottom: 'none',
178
- },
179
- '&:hover:not(.Mui-disabled):before': {
180
- borderBottom: 'none',
181
- },
182
- '&.Mui-focused:after': {
183
- borderBottom: 'none',
184
- },
185
- },
186
- '& .MuiFilledInput-input': {
187
- textAlign: 'right',
188
- padding: 0,
189
- pr: '4px',
190
- color: colors.surface,
191
- fontSize: "14px",
192
- },
193
- } })] }), _jsx(Slider, { sx: {
194
- width: "200px",
195
- color: colors.surface,
196
- '& .MuiSlider-rail': {
197
- background: fullTrackGradient,
198
- opacity: 1,
199
- },
200
- '& .MuiSlider-track': {
201
- background: 'transparent',
202
- border: 'none',
203
- },
204
- '& .MuiSlider-thumb': {
205
- boxShadow: 'none',
206
- },
207
- '& .MuiSlider-thumb:hover': {
208
- boxShadow: 'none',
209
- },
210
- }, size: "small", value: props.VibranceScore, step: 1, min: -100, max: 100, onChange: (_event, newValue) => props.onVibranceChange("vibranceScore", newValue), onDoubleClick: () => props.onVibranceChange("vibranceScore", 0), onMouseDown: () => {
211
- if (!props.isBatchMode) {
212
- props.onDragStart();
213
- }
214
- }, onMouseUp: () => {
215
- props.onDragEnd();
216
- }, onTouchStart: () => {
217
- if (!props.isBatchMode) {
218
- props.onDragStart();
219
- }
220
- }, onTouchEnd: () => {
221
- props.onDragEnd();
222
- } })] }), _jsxs(Stack, { direction: "column", gap: "3px", sx: { pt: '10px', pb: '0px', px: '0px', mx: '0px', '&:focus-within .MuiFilledInput-input': focusedInputStyle }, children: [_jsxs(Stack, { direction: "row", justifyContent: "space-between", children: [_jsx(Typography, { component: "label", htmlFor: "saturation-input", onDoubleClick: () => props.onSaturationChange("saturationScore", 0), sx: { ...typography.bodyMedium, userSelect: 'none' }, children: "Saturation" }), _jsx(TextField, { hiddenLabel: true, id: "saturation-input", value: formatValue(props.SaturationScore), variant: "filled", onChange: (e) => handleInputChange(e, -100, 100, (val) => props.onSaturationChange("saturationScore", val)), sx: {
223
- width: "40px",
224
- height: "10px",
225
- alignItems: "center",
226
- textAlign: "right",
227
- display: "flex",
228
- '& .MuiFilledInput-root': {
229
- backgroundColor: 'transparent',
230
- borderRadius: "0px",
231
- border: 'none',
232
- '&:before': {
233
- borderBottom: 'none',
234
- },
235
- '&:after': {
236
- borderBottom: 'none',
237
- },
238
- '&:hover:not(.Mui-disabled):before': {
239
- borderBottom: 'none',
240
- },
241
- '&.Mui-focused:after': {
242
- borderBottom: 'none',
243
- },
244
- },
245
- '& .MuiFilledInput-input': {
246
- textAlign: 'right',
247
- padding: 0,
248
- pr: '4px',
249
- color: colors.surface,
250
- fontSize: "14px",
251
- },
252
- } })] }), _jsx(Slider, { sx: {
253
- width: "200px",
254
- color: colors.surface,
255
- '& .MuiSlider-rail': {
256
- background: fullTrackGradient,
257
- opacity: 1,
258
- },
259
- '& .MuiSlider-track': {
260
- background: 'transparent',
261
- border: 'none',
262
- },
263
- '& .': {
264
- boxShadow: 'none',
265
- },
266
- '& .MuiSlider-thumb:hover': {
267
- boxShadow: 'none',
268
- },
269
- }, size: "small", value: props.SaturationScore, step: 1, min: -100, max: 100, onChange: (_event, newValue) => props.onSaturationChange("saturationScore", newValue), onDoubleClick: () => props.onSaturationChange("saturationScore", 0), onMouseDown: () => {
270
- if (!props.isBatchMode) {
271
- props.onDragStart();
272
- }
273
- }, onMouseUp: () => {
274
- props.onDragEnd();
275
- }, onTouchStart: () => {
276
- if (!props.isBatchMode) {
277
- props.onDragStart();
278
- }
279
- }, onTouchEnd: () => {
280
- props.onDragEnd();
281
- } })] })] }) }));
282
- }
@@ -1,35 +0,0 @@
1
- import React from "react";
2
- import { AdjustmentState } from '../../hooks/editor/type';
3
- interface Props {
4
- tempScore: number;
5
- tintScore: number;
6
- vibranceScore: number;
7
- saturationScore: number;
8
- exposureScore: number;
9
- HighlightsScore: number;
10
- shadowsScore: number;
11
- whitesScore: number;
12
- blacksScore: number;
13
- contrastScore: number;
14
- clarityScore: number;
15
- sharpnessScore: number;
16
- expandedPanels: string[];
17
- setTempScore: (field: keyof AdjustmentState, value: number) => void;
18
- setTintScore: (field: keyof AdjustmentState, value: number) => void;
19
- setExposureScore: (field: keyof AdjustmentState, value: number) => void;
20
- setVibranceScore: (field: keyof AdjustmentState, value: number) => void;
21
- setSaturationScore: (field: keyof AdjustmentState, value: number) => void;
22
- setHighlightsScore: (field: keyof AdjustmentState, value: number) => void;
23
- setShadowsScore: (field: keyof AdjustmentState, value: number) => void;
24
- setWhitesScore: (field: keyof AdjustmentState, value: number) => void;
25
- setBlacksScore: (field: keyof AdjustmentState, value: number) => void;
26
- setContrastScore: (field: keyof AdjustmentState, value: number) => void;
27
- setClarityScore: (field: keyof AdjustmentState, value: number) => void;
28
- setSharpnessScore: (field: keyof AdjustmentState, value: number) => void;
29
- onPanelChange: (panel: string) => (event: React.SyntheticEvent, isExpanded: boolean) => void;
30
- isBatchMode: boolean;
31
- onDragStart: () => void;
32
- onDragEnd: () => void;
33
- }
34
- export default function HAccordionColorAdjustment(props: Props): import("react/jsx-runtime").JSX.Element;
35
- export {};