@yogiswara/honcho-editor-ui 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (91) hide show
  1. package/dist/components/editor/HAccordionAspectRatio.d.ts +14 -0
  2. package/dist/components/editor/HAccordionAspectRatio.js +102 -0
  3. package/dist/components/editor/HAccordionColor.d.ts +12 -0
  4. package/dist/components/editor/HAccordionColor.js +234 -0
  5. package/dist/components/editor/HAccordionColorAdjustment.d.ts +31 -0
  6. package/dist/components/editor/HAccordionColorAdjustment.js +37 -0
  7. package/dist/components/editor/HAccordionDetails.d.ts +8 -0
  8. package/dist/components/editor/HAccordionDetails.js +133 -0
  9. package/dist/components/editor/HAccordionLight.d.ts +16 -0
  10. package/dist/components/editor/HAccordionLight.js +342 -0
  11. package/dist/components/editor/HAccordionPreset.d.ts +23 -0
  12. package/dist/components/editor/HAccordionPreset.js +59 -0
  13. package/dist/components/editor/HAlertBox.d.ts +7 -0
  14. package/dist/components/editor/HAlertBox.js +46 -0
  15. package/dist/components/editor/HAspectRatioMobile.d.ts +0 -0
  16. package/dist/components/editor/HAspectRatioMobile.js +1 -0
  17. package/dist/components/editor/HBulkAccordionColorAdjustment.d.ts +55 -0
  18. package/dist/components/editor/HBulkAccordionColorAdjustment.js +31 -0
  19. package/dist/components/editor/HBulkAccordionColorAdjustmentColors.d.ts +20 -0
  20. package/dist/components/editor/HBulkAccordionColorAdjustmentColors.js +121 -0
  21. package/dist/components/editor/HBulkAccordionColorAdjustmentDetails.d.ts +12 -0
  22. package/dist/components/editor/HBulkAccordionColorAdjustmentDetails.js +65 -0
  23. package/dist/components/editor/HBulkAccordionColorAdjustmentLight.d.ts +28 -0
  24. package/dist/components/editor/HBulkAccordionColorAdjustmentLight.js +177 -0
  25. package/dist/components/editor/HBulkColorAdjustmentMobile.d.ts +53 -0
  26. package/dist/components/editor/HBulkColorAdjustmentMobile.js +16 -0
  27. package/dist/components/editor/HBulkColorMobile.d.ts +20 -0
  28. package/dist/components/editor/HBulkColorMobile.js +121 -0
  29. package/dist/components/editor/HBulkDetailsMobile.d.ts +12 -0
  30. package/dist/components/editor/HBulkDetailsMobile.js +65 -0
  31. package/dist/components/editor/HBulkLightMobile.d.ts +28 -0
  32. package/dist/components/editor/HBulkLightMobile.js +192 -0
  33. package/dist/components/editor/HBulkPreset.d.ts +24 -0
  34. package/dist/components/editor/HBulkPreset.js +33 -0
  35. package/dist/components/editor/HBulkPresetMobile.d.ts +15 -0
  36. package/dist/components/editor/HBulkPresetMobile.js +26 -0
  37. package/dist/components/editor/HDialogBox.d.ts +18 -0
  38. package/dist/components/editor/HDialogBox.js +51 -0
  39. package/dist/components/editor/HDialogCopy.d.ts +40 -0
  40. package/dist/components/editor/HDialogCopy.js +80 -0
  41. package/dist/components/editor/HFooter.d.ts +12 -0
  42. package/dist/components/editor/HFooter.js +24 -0
  43. package/dist/components/editor/HHeaderEditor.d.ts +17 -0
  44. package/dist/components/editor/HHeaderEditor.js +27 -0
  45. package/dist/components/editor/HImageEditorBulkDekstop.d.ts +15 -0
  46. package/dist/components/editor/HImageEditorBulkDekstop.js +26 -0
  47. package/dist/components/editor/HImageEditorBulkMobile.d.ts +72 -0
  48. package/dist/components/editor/HImageEditorBulkMobile.js +81 -0
  49. package/dist/components/editor/HImageEditorDekstop.d.ts +15 -0
  50. package/dist/components/editor/HImageEditorDekstop.js +29 -0
  51. package/dist/components/editor/HImageEditorMobile.d.ts +47 -0
  52. package/dist/components/editor/HImageEditorMobile.js +91 -0
  53. package/dist/components/editor/HImageEditorMobileLayout.d.ts +14 -0
  54. package/dist/components/editor/HImageEditorMobileLayout.js +57 -0
  55. package/dist/components/editor/HImageEditorPage.d.ts +1 -0
  56. package/dist/components/editor/HImageEditorPage.js +187 -0
  57. package/dist/components/editor/HModalEditorDekstop.d.ts +13 -0
  58. package/dist/components/editor/HModalEditorDekstop.js +22 -0
  59. package/dist/components/editor/HModalMobile.d.ts +12 -0
  60. package/dist/components/editor/HModalMobile.js +7 -0
  61. package/dist/components/editor/HPresetOptionMenu.d.ts +11 -0
  62. package/dist/components/editor/HPresetOptionMenu.js +20 -0
  63. package/dist/components/editor/HSliderColorMobile.d.ts +12 -0
  64. package/dist/components/editor/HSliderColorMobile.js +222 -0
  65. package/dist/components/editor/HSliderDetailsMobile.d.ts +8 -0
  66. package/dist/components/editor/HSliderDetailsMobile.js +130 -0
  67. package/dist/components/editor/HSliderLightMobile.d.ts +16 -0
  68. package/dist/components/editor/HSliderLightMobile.js +342 -0
  69. package/dist/components/editor/HTabAspectRatioMobile.d.ts +0 -0
  70. package/dist/components/editor/HTabAspectRatioMobile.js +1 -0
  71. package/dist/components/editor/HTabColorAdjustmentMobile.d.ts +29 -0
  72. package/dist/components/editor/HTabColorAdjustmentMobile.js +16 -0
  73. package/dist/components/editor/HTabPresetMobile.d.ts +14 -0
  74. package/dist/components/editor/HTabPresetMobile.js +10 -0
  75. package/dist/components/editor/HTextField.d.ts +14 -0
  76. package/dist/components/editor/HTextField.js +51 -0
  77. package/dist/components/editor/HWatermarkView.d.ts +6 -0
  78. package/dist/components/editor/HWatermarkView.js +16 -0
  79. package/dist/hooks/editor/useHonchoEditor.d.ts +272 -0
  80. package/dist/hooks/editor/useHonchoEditor.js +1203 -0
  81. package/dist/index.d.ts +23 -0
  82. package/dist/index.js +23 -0
  83. package/dist/lib/editor/honcho-editor.d.ts +324 -0
  84. package/dist/lib/editor/honcho-editor.js +825 -0
  85. package/dist/themes/colors.d.ts +12 -0
  86. package/dist/themes/colors.js +12 -0
  87. package/dist/themes/honchoTheme.d.ts +25 -0
  88. package/dist/themes/honchoTheme.js +94 -0
  89. package/dist/utils/isMobile.d.ts +1 -0
  90. package/dist/utils/isMobile.js +5 -0
  91. package/package.json +41 -0
@@ -0,0 +1,342 @@
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 "@/honchoTheme";
4
+ import useColors from "@/colors";
5
+ export default function HSliderLightMobile(props) {
6
+ const typography = useHonchoTypography();
7
+ const colors = useColors();
8
+ const formatValue = (value) => {
9
+ if (value > 0)
10
+ return `+${value}`;
11
+ return value.toString();
12
+ };
13
+ const handleInputChange = (event, min, max, onChange) => {
14
+ const value = event.target.value;
15
+ if (value === '+' || value === '-')
16
+ return;
17
+ let numericValue = parseInt(value, 10);
18
+ if (isNaN(numericValue))
19
+ numericValue = 0;
20
+ const clampedValue = Math.max(min, Math.min(max, numericValue));
21
+ onChange(clampedValue);
22
+ };
23
+ return (_jsx(_Fragment, { children: _jsxs(Stack, { spacing: 0, direction: "column", sx: { width: '100%', paddingX: 1 }, children: [_jsxs(Stack, { direction: "row", justifyContent: "space-between", alignItems: "center", sx: { pt: '10px', pb: '0px' }, children: [_jsx(Typography, { sx: { ...typography.bodyMedium, color: colors.surface }, children: "Exposure" }), _jsx(TextField, { hiddenLabel: true, id: "filled-hidden-label-small", value: formatValue(props.exposureScore), variant: "filled", onChange: (e) => handleInputChange(e, -100, 100, props.onExposureChange), sx: {
24
+ width: "40px",
25
+ alignItems: "center",
26
+ textAlign: "right",
27
+ pr: "4px",
28
+ display: "flex",
29
+ '& .MuiFilledInput-root': {
30
+ backgroundColor: 'transparent',
31
+ borderRadius: "0px",
32
+ border: 'none',
33
+ '&:before': {
34
+ borderBottom: 'none',
35
+ },
36
+ '&:after': {
37
+ borderBottom: 'none',
38
+ },
39
+ '&:hover:not(.Mui-disabled):before': {
40
+ borderBottom: 'none',
41
+ },
42
+ '&.Mui-focused:after': {
43
+ borderBottom: 'none',
44
+ },
45
+ },
46
+ '& .MuiFilledInput-input': {
47
+ textAlign: 'right',
48
+ padding: 0,
49
+ pr: '4px',
50
+ color: colors.surface,
51
+ fontSize: "14px",
52
+ },
53
+ '& .Mui-focused': {
54
+ '& .MuiFilledInput-input': {
55
+ backgroundColor: "#1C1B1FB2",
56
+ textAlign: 'right',
57
+ borderRadius: '5px 5px 0px 0px',
58
+ borderBottom: 'none',
59
+ pl: '2px',
60
+ }
61
+ }
62
+ } })] }), _jsx(Slider, { sx: {
63
+ width: "100%",
64
+ color: colors.onSurfaceVariant,
65
+ '& .MuiSlider-rail': {
66
+ background: colors.onSurfaceVariant,
67
+ opacity: 1,
68
+ },
69
+ '& .MuiSlider-thumb': {
70
+ background: colors.surface,
71
+ opacity: 1,
72
+ },
73
+ '& .MuiSlider-thumb:hover': {
74
+ boxShadow: 'none',
75
+ }
76
+ }, size: "small", value: props.exposureScore, step: 0.1, min: -5, max: 5, onChange: (_event, newValue) => props.onExposureChange(newValue) }), _jsxs(Stack, { direction: "row", justifyContent: "space-between", alignItems: "center", sx: { pt: '10px', pb: '0px' }, children: [_jsx(Typography, { sx: { ...typography.bodyMedium, color: colors.surface }, children: "Contrast" }), _jsx(TextField, { hiddenLabel: true, id: "filled-hidden-label-small", value: formatValue(props.contrastScore), variant: "filled", onChange: (e) => handleInputChange(e, -5, 5, props.onContrastChange), sx: {
77
+ width: "40px",
78
+ alignItems: "center",
79
+ textAlign: "right",
80
+ pr: "4px",
81
+ display: "flex",
82
+ '& .MuiFilledInput-root': {
83
+ backgroundColor: 'transparent',
84
+ borderRadius: "0px",
85
+ border: 'none',
86
+ '&:before': {
87
+ borderBottom: 'none',
88
+ },
89
+ '&:after': {
90
+ borderBottom: 'none',
91
+ },
92
+ '&:hover:not(.Mui-disabled):before': {
93
+ borderBottom: 'none',
94
+ },
95
+ '&.Mui-focused:after': {
96
+ borderBottom: 'none',
97
+ },
98
+ },
99
+ '& .MuiFilledInput-input': {
100
+ textAlign: 'right',
101
+ padding: 0,
102
+ pr: '4px',
103
+ color: colors.surface,
104
+ fontSize: "14px",
105
+ },
106
+ '& .Mui-focused': {
107
+ '& .MuiFilledInput-input': {
108
+ backgroundColor: "#1C1B1FB2",
109
+ textAlign: 'right',
110
+ borderRadius: '5px 5px 0px 0px',
111
+ borderBottom: 'none',
112
+ pl: '2px',
113
+ }
114
+ }
115
+ } })] }), _jsx(Slider, { sx: {
116
+ width: "100%",
117
+ color: colors.onSurfaceVariant,
118
+ '& .MuiSlider-rail': {
119
+ background: colors.onSurfaceVariant,
120
+ opacity: 1,
121
+ },
122
+ '& .MuiSlider-thumb': {
123
+ background: colors.surface,
124
+ opacity: 1,
125
+ },
126
+ '& .MuiSlider-thumb:hover': {
127
+ boxShadow: 'none',
128
+ }
129
+ }, size: "small", value: props.contrastScore, step: 1, min: -100, max: 100, onChange: (_event, newValue) => props.onContrastChange(newValue) }), _jsxs(Stack, { direction: "row", justifyContent: "space-between", alignItems: "center", sx: { pt: '10px', pb: '0px' }, children: [_jsx(Typography, { sx: { ...typography.bodyMedium, color: colors.surface }, children: "Highlights" }), _jsx(TextField, { hiddenLabel: true, id: "filled-hidden-label-small", value: formatValue(props.highlightsScore), variant: "filled", onChange: (e) => handleInputChange(e, -100, 100, props.onHighlightsChange), sx: {
130
+ width: "40px",
131
+ alignItems: "center",
132
+ textAlign: "right",
133
+ pr: "4px",
134
+ display: "flex",
135
+ '& .MuiFilledInput-root': {
136
+ backgroundColor: 'transparent',
137
+ borderRadius: "0px",
138
+ border: 'none',
139
+ '&:before': {
140
+ borderBottom: 'none',
141
+ },
142
+ '&:after': {
143
+ borderBottom: 'none',
144
+ },
145
+ '&:hover:not(.Mui-disabled):before': {
146
+ borderBottom: 'none',
147
+ },
148
+ '&.Mui-focused:after': {
149
+ borderBottom: 'none',
150
+ },
151
+ },
152
+ '& .MuiFilledInput-input': {
153
+ textAlign: 'right',
154
+ padding: 0,
155
+ pr: '4px',
156
+ color: colors.surface,
157
+ fontSize: "14px",
158
+ },
159
+ '& .Mui-focused': {
160
+ '& .MuiFilledInput-input': {
161
+ backgroundColor: "#1C1B1FB2",
162
+ textAlign: 'right',
163
+ borderRadius: '5px 5px 0px 0px',
164
+ borderBottom: 'none',
165
+ pl: '2px',
166
+ }
167
+ }
168
+ } })] }), _jsx(Slider, { sx: {
169
+ width: "100%",
170
+ color: colors.onSurfaceVariant,
171
+ '& .MuiSlider-rail': {
172
+ background: colors.onSurfaceVariant,
173
+ opacity: 1,
174
+ },
175
+ '& .MuiSlider-thumb': {
176
+ background: colors.surface,
177
+ opacity: 1,
178
+ },
179
+ '& .MuiSlider-thumb:hover': {
180
+ boxShadow: 'none',
181
+ }
182
+ }, size: "small", value: props.highlightsScore, step: 1, min: -100, max: 100, onChange: (_event, newValue) => props.onHighlightsChange(newValue) }), _jsxs(Stack, { direction: "row", justifyContent: "space-between", alignItems: "center", sx: { pt: '10px', pb: '0px' }, children: [_jsx(Typography, { sx: { ...typography.bodyMedium, color: colors.surface }, children: "Shadows" }), _jsx(TextField, { hiddenLabel: true, id: "filled-hidden-label-small", value: formatValue(props.shadowScore), variant: "filled", onChange: (e) => handleInputChange(e, -100, 100, props.onShadowsChange), sx: {
183
+ width: "40px",
184
+ alignItems: "center",
185
+ textAlign: "right",
186
+ pr: "4px",
187
+ display: "flex",
188
+ '& .MuiFilledInput-root': {
189
+ backgroundColor: 'transparent',
190
+ borderRadius: "0px",
191
+ border: 'none',
192
+ '&:before': {
193
+ borderBottom: 'none',
194
+ },
195
+ '&:after': {
196
+ borderBottom: 'none',
197
+ },
198
+ '&:hover:not(.Mui-disabled):before': {
199
+ borderBottom: 'none',
200
+ },
201
+ '&.Mui-focused:after': {
202
+ borderBottom: 'none',
203
+ },
204
+ },
205
+ '& .MuiFilledInput-input': {
206
+ textAlign: 'right',
207
+ padding: 0,
208
+ pr: '4px',
209
+ color: colors.surface,
210
+ fontSize: "14px",
211
+ },
212
+ '& .Mui-focused': {
213
+ '& .MuiFilledInput-input': {
214
+ backgroundColor: "#1C1B1FB2",
215
+ textAlign: 'right',
216
+ borderRadius: '5px 5px 0px 0px',
217
+ borderBottom: 'none',
218
+ pl: '2px',
219
+ }
220
+ }
221
+ } })] }), _jsx(Slider, { sx: {
222
+ width: "100%",
223
+ color: colors.onSurfaceVariant,
224
+ '& .MuiSlider-rail': {
225
+ background: colors.onSurfaceVariant,
226
+ opacity: 1,
227
+ },
228
+ '& .MuiSlider-thumb': {
229
+ background: colors.surface,
230
+ opacity: 1,
231
+ },
232
+ '& .MuiSlider-thumb:hover': {
233
+ boxShadow: 'none',
234
+ }
235
+ }, size: "small", value: props.shadowScore, step: 1, min: -100, max: 100, onChange: (_event, newValue) => props.onShadowsChange(newValue) }), _jsxs(Stack, { direction: "row", justifyContent: "space-between", alignItems: "center", sx: { pt: '10px', pb: '0px' }, children: [_jsx(Typography, { sx: { ...typography.bodyMedium, color: colors.surface }, children: "Whites" }), _jsx(TextField, { hiddenLabel: true, id: "filled-hidden-label-small", value: formatValue(props.whiteScore), variant: "filled", onChange: (e) => handleInputChange(e, -100, 100, props.onWhitesChange), sx: {
236
+ width: "40px",
237
+ alignItems: "center",
238
+ textAlign: "right",
239
+ pr: "4px",
240
+ display: "flex",
241
+ '& .MuiFilledInput-root': {
242
+ backgroundColor: 'transparent',
243
+ borderRadius: "0px",
244
+ border: 'none',
245
+ '&:before': {
246
+ borderBottom: 'none',
247
+ },
248
+ '&:after': {
249
+ borderBottom: 'none',
250
+ },
251
+ '&:hover:not(.Mui-disabled):before': {
252
+ borderBottom: 'none',
253
+ },
254
+ '&.Mui-focused:after': {
255
+ borderBottom: 'none',
256
+ },
257
+ },
258
+ '& .MuiFilledInput-input': {
259
+ textAlign: 'right',
260
+ padding: 0,
261
+ pr: '4px',
262
+ color: colors.surface,
263
+ fontSize: "14px",
264
+ },
265
+ '& .Mui-focused': {
266
+ '& .MuiFilledInput-input': {
267
+ backgroundColor: "#1C1B1FB2",
268
+ textAlign: 'right',
269
+ borderRadius: '5px 5px 0px 0px',
270
+ borderBottom: 'none',
271
+ pl: '2px',
272
+ }
273
+ }
274
+ } })] }), _jsx(Slider, { sx: {
275
+ width: "100%",
276
+ color: colors.onSurfaceVariant,
277
+ '& .MuiSlider-rail': {
278
+ background: colors.onSurfaceVariant,
279
+ opacity: 1,
280
+ },
281
+ '& .MuiSlider-thumb': {
282
+ background: colors.surface,
283
+ opacity: 1,
284
+ },
285
+ '& .MuiSlider-thumb:hover': {
286
+ boxShadow: 'none',
287
+ }
288
+ }, size: "small", value: props.whiteScore, step: 1, min: -100, max: 100, onChange: (_event, newValue) => props.onWhitesChange(newValue) }), _jsxs(Stack, { direction: "row", justifyContent: "space-between", alignItems: "center", sx: { pt: '10px', pb: '0px' }, children: [_jsx(Typography, { sx: { ...typography.bodyMedium, color: colors.surface }, children: "Blacks" }), _jsx(TextField, { hiddenLabel: true, id: "filled-hidden-label-small", value: formatValue(props.blackScore), variant: "filled", onChange: (e) => handleInputChange(e, -100, 100, props.onBlacksChange), sx: {
289
+ width: "40px",
290
+ alignItems: "center",
291
+ textAlign: "right",
292
+ pr: "4px",
293
+ display: "flex",
294
+ '& .MuiFilledInput-root': {
295
+ backgroundColor: 'transparent',
296
+ borderRadius: "0px",
297
+ border: 'none',
298
+ '&:before': {
299
+ borderBottom: 'none',
300
+ },
301
+ '&:after': {
302
+ borderBottom: 'none',
303
+ },
304
+ '&:hover:not(.Mui-disabled):before': {
305
+ borderBottom: 'none',
306
+ },
307
+ '&.Mui-focused:after': {
308
+ borderBottom: 'none',
309
+ },
310
+ },
311
+ '& .MuiFilledInput-input': {
312
+ textAlign: 'right',
313
+ padding: 0,
314
+ pr: '4px',
315
+ color: colors.surface,
316
+ fontSize: "14px",
317
+ },
318
+ '& .Mui-focused': {
319
+ '& .MuiFilledInput-input': {
320
+ backgroundColor: "#1C1B1FB2",
321
+ textAlign: 'right',
322
+ borderRadius: '5px 5px 0px 0px',
323
+ borderBottom: 'none',
324
+ pl: '2px',
325
+ }
326
+ },
327
+ } })] }), _jsx(Slider, { sx: {
328
+ width: "100%",
329
+ color: colors.onSurfaceVariant,
330
+ '& .MuiSlider-rail': {
331
+ background: colors.onSurfaceVariant,
332
+ opacity: 1,
333
+ },
334
+ '& .MuiSlider-thumb': {
335
+ background: colors.surface,
336
+ opacity: 1,
337
+ },
338
+ '& .MuiSlider-thumb:hover': {
339
+ boxShadow: 'none',
340
+ }
341
+ }, size: "small", value: props.blackScore, step: 1, min: -100, max: 100, onChange: (_event, newValue) => props.onBlacksChange(newValue) })] }) }));
342
+ }
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1,29 @@
1
+ interface Props {
2
+ activeSubPanel: string;
3
+ tempScore: number;
4
+ tintScore: number;
5
+ vibranceScore: number;
6
+ saturationScore: number;
7
+ exposureScore: number;
8
+ highlightsScore: number;
9
+ shadowScore: number;
10
+ whiteScore: number;
11
+ blackScore: number;
12
+ contrastScore: number;
13
+ clarityScore: number;
14
+ sharpnessScore: number;
15
+ onTempChange: (value: number) => void;
16
+ onTintChange: (value: number) => void;
17
+ onVibranceChange: (value: number) => void;
18
+ onSaturationChange: (value: number) => void;
19
+ onExposureChange: (value: number) => void;
20
+ onHighlightsChange: (value: number) => void;
21
+ onShadowsChange: (value: number) => void;
22
+ onWhitesChange: (value: number) => void;
23
+ onBlacksChange: (value: number) => void;
24
+ onContrastChange: (value: number) => void;
25
+ onClarityChange: (value: number) => void;
26
+ onSharpnessChange: (value: number) => void;
27
+ }
28
+ export default function HTabColorAdjustmentMobile(props: Props): import("react/jsx-runtime").JSX.Element | null;
29
+ export {};
@@ -0,0 +1,16 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import HSliderColorMobile from "./HSliderColorMobile";
3
+ import HSliderLightMobile from "./HSliderLightMobile";
4
+ import HSliderDetailsMobile from "./HSliderDetailsMobile";
5
+ export default function HTabColorAdjustmentMobile(props) {
6
+ switch (props.activeSubPanel) {
7
+ case 'color':
8
+ return (_jsx(HSliderColorMobile, { tempScore: props.tempScore, tintScore: props.tintScore, onTempChange: props.onTempChange, onTintChange: props.onTintChange, vibranceScore: props.vibranceScore, onVibranceChange: props.onVibranceChange, saturationScore: props.saturationScore, onSaturationChange: props.onSaturationChange }));
9
+ case 'light':
10
+ return (_jsx(HSliderLightMobile, { contrastScore: props.contrastScore, exposureScore: props.exposureScore, highlightsScore: props.highlightsScore, shadowScore: props.shadowScore, whiteScore: props.whiteScore, blackScore: props.blackScore, onExposureChange: props.onExposureChange, onContrastChange: props.onContrastChange, onHighlightsChange: props.onHighlightsChange, onShadowsChange: props.onShadowsChange, onWhitesChange: props.onWhitesChange, onBlacksChange: props.onBlacksChange }));
11
+ case 'details':
12
+ return (_jsx(HSliderDetailsMobile, { clarityScore: props.clarityScore, sharpnessScore: props.sharpnessScore, onClarityChange: props.onClarityChange, onSharpnessChange: props.onSharpnessChange }));
13
+ default:
14
+ return null;
15
+ }
16
+ }
@@ -0,0 +1,14 @@
1
+ import React from "react";
2
+ type Preset = {
3
+ id: string;
4
+ name: string;
5
+ };
6
+ interface Props {
7
+ presets: Preset[];
8
+ selectedPreset: string | null;
9
+ presetOptionModal: (event: React.MouseEvent<HTMLElement>, presetId: string) => void;
10
+ onOpenPresetModal: () => void;
11
+ onSelectPreset: (id: string) => void;
12
+ }
13
+ export default function HTabPresetMobile(props: Props): import("react/jsx-runtime").JSX.Element;
14
+ export {};
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { Stack, IconButton, CardMedia, Button } from "@mui/material";
3
+ import useColors from "@/colors";
4
+ import useHonchoTypography from "@/honchoTheme";
5
+ // Static `presets` array has been removed.
6
+ export default function HTabPresetMobile(props) {
7
+ const typography = useHonchoTypography();
8
+ const colors = useColors();
9
+ return (_jsx(_Fragment, { children: _jsxs(Stack, { direction: "column", spacing: 0, sx: { px: "0px", mx: "0px" }, children: [props.presets.map((preset) => (_jsxs(Stack, { direction: "row", alignItems: "center", justifyContent: "space-between", children: [_jsx(Button, { sx: { ...typography.bodyMedium, color: colors.surface, justifyContent: 'flex-start', flexGrow: 1, textTransform: 'none' }, onClick: () => props.onSelectPreset(preset.id), children: preset.name }), _jsxs(Stack, { direction: "row", alignItems: "center", spacing: 1, children: [props.selectedPreset === preset.id && (_jsx(CardMedia, { component: "img", image: "v1/svg/check-ratio-editor.svg", sx: { width: "20px", height: "20px", px: "2px" } })), _jsx(IconButton, { "aria-label": preset.name, sx: { px: "8px" }, onClick: (event) => props.presetOptionModal(event, preset.id), children: _jsx(CardMedia, { component: "img", image: "/v1/svg/dots-editor.svg", alt: "Options" }) })] })] }, preset.id))), _jsx(Button, { variant: "text", sx: { color: colors.surface, border: "1px solid", borderColor: colors.surface, borderRadius: "40px", mt: "12px", textTransform: 'none' }, onClick: props.onOpenPresetModal, children: "Create Preset" })] }) }));
10
+ }
@@ -0,0 +1,14 @@
1
+ import React from "react";
2
+ interface Props {
3
+ valueName: string;
4
+ setName: (event: React.ChangeEvent<HTMLInputElement>) => void;
5
+ }
6
+ export declare function HTextField(props: Props): import("react/jsx-runtime").JSX.Element;
7
+ interface PropsRename {
8
+ valueName: string;
9
+ setName: (event: React.ChangeEvent<HTMLInputElement>) => void;
10
+ onSaveRenamePreset: () => void;
11
+ onCancel: () => void;
12
+ }
13
+ export declare function HTextFieldRename(props: PropsRename): import("react/jsx-runtime").JSX.Element;
14
+ export {};
@@ -0,0 +1,51 @@
1
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { TextField, Stack, Button } from "@mui/material";
3
+ import useHonchoTypography from "@/honchoTheme";
4
+ import useColors from "@/colors";
5
+ export function HTextField(props) {
6
+ const colors = useColors();
7
+ const typography = useHonchoTypography();
8
+ return (_jsx(_Fragment, { children: _jsx(TextField, { autoFocus: true, margin: "dense", id: "name", label: "Preset Name", type: "text", fullWidth: true, variant: "standard", defaultValue: props.valueName, onChange: props.setName, sx: {
9
+ backgroundColor: "#F6F6F6",
10
+ p: "7px",
11
+ borderRadius: "6px",
12
+ '& .MuiInputLabel-root': {
13
+ color: colors.onSurfaceVariant, // A slightly dimmer color for the placeholder
14
+ pt: '10px',
15
+ pl: '10px',
16
+ },
17
+ '& .MuiInput-input': {
18
+ color: colors.onSurface,
19
+ },
20
+ '& .MuiInputLabel-root.Mui-focused': {
21
+ color: colors.onSurfaceVariant, // Or a different color if you prefer
22
+ },
23
+ } }) }));
24
+ }
25
+ export function HTextFieldRename(props) {
26
+ const colors = useColors();
27
+ const typography = useHonchoTypography();
28
+ return (_jsx(_Fragment, { children: _jsxs(Stack, { direction: "column", spacing: 2, children: [_jsx(TextField, { autoFocus: true, type: "text", fullWidth: true, variant: "standard", defaultValue: props.valueName, onChange: props.setName, sx: {
29
+ backgroundColor: "#F6F6F6",
30
+ p: "7px",
31
+ borderRadius: "6px",
32
+ '& .MuiInputLabel-root': {
33
+ pt: '10px',
34
+ pl: '10px',
35
+ },
36
+ } }), _jsxs(Stack, { direction: "row", justifyContent: "end", alignItems: "center", children: [_jsx(Button, { color: "primary", onClick: props.onCancel, sx: {
37
+ backgroundColor: colors.surface,
38
+ color: colors.onSurface,
39
+ '&:hover': {
40
+ backgroundColor: colors.onSurfaceVariant1,
41
+ },
42
+ ...typography.titleMedium,
43
+ }, children: "Cancel" }), _jsx(Button, { color: "primary", onClick: props.onSaveRenamePreset, sx: {
44
+ backgroundColor: colors.surface,
45
+ color: colors.onSurface,
46
+ '&:hover': {
47
+ backgroundColor: colors.onSurfaceVariant1,
48
+ },
49
+ ...typography.titleMedium,
50
+ }, children: "Save" })] })] }) }));
51
+ }
@@ -0,0 +1,6 @@
1
+ interface Props {
2
+ onSaveWatermark: () => void;
3
+ onCancelWatermark: () => void;
4
+ }
5
+ export default function HWatermarkView(props: Props): import("react/jsx-runtime").JSX.Element;
6
+ export {};
@@ -0,0 +1,16 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { TextField, Button, Stack } from "@mui/material";
3
+ import useColors from "@/colors";
4
+ import useHonchoTypography from "@/honchoTheme";
5
+ export default function HWatermarkView(props) {
6
+ const colors = useColors();
7
+ const typography = useHonchoTypography();
8
+ return (_jsx(_Fragment, { children: _jsxs(Stack, { direction: "column", alignItems: "center", spacing: 5, sx: { pt: "20px", color: colors.surface }, children: [_jsx(TextField, { id: "watermark-name", label: "watermark name", variant: "standard", sx: {
9
+ '& .MuiInput-underline:before': {
10
+ borderBottomColor: colors.surface
11
+ },
12
+ '& .MuiInputBase-input': {
13
+ color: colors.surface
14
+ }
15
+ } }), _jsxs(Stack, { direction: "row", spacing: 0.5, children: [_jsx(Button, { variant: "text", sx: { color: colors.surface }, children: "Landscape" }), _jsx(Button, { variant: "text", sx: { color: colors.surface }, children: "Portrait" }), _jsx(Button, { variant: "text", sx: { color: colors.surface }, children: "Square" })] })] }) }));
16
+ }