@pqina/pintura 8.67.0 → 8.67.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## 8.67.1 | 2023-10-19
4
+
5
+ - Fix issue where button icon for custom panel component could not be set.
6
+
3
7
  ## 8.67.0 | 2023-10-19
4
8
 
5
9
  - Add detection of `data-touch-scroll` attribute on custom child elements, set to `true` to enable touch scrolling on iOS.
@@ -0,0 +1 @@
1
+ export { default } from './ko_KR.js';
@@ -0,0 +1,5 @@
1
+ export default {
2
+ annotateLabel: '주석 달기',
3
+ annotateIcon:
4
+ '<g stroke-width=".125em" stroke="currentColor" fill="none"><path d="M17.086 2.914a2.828 2.828 0 1 1 4 4l-14.5 14.5-5.5 1.5 1.5-5.5 14.5-14.5z"/></g>',
5
+ };
@@ -0,0 +1 @@
1
+ export { default, MarkupEditor } from './ko_KR.js';
@@ -0,0 +1,229 @@
1
+ const IconCross =
2
+ '<g fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" stroke="currentColor" stroke-width=".125em"><path d="M18 6L6 18M6 6l12 12"></path></path></g>';
3
+
4
+ const CharacterA =
5
+ '<path fill="none" d="M9 15 L12 9 L15 15 M10 13.5 h3" stroke="currentColor" stroke-width=".125em"/>';
6
+
7
+ export default {
8
+ // generic
9
+ labelReset: '재설정',
10
+ labelDefault: '기본',
11
+ labelAuto: '자동',
12
+ labelNone: '없음',
13
+ labelEdit: '편집',
14
+ labelClose: '닫기',
15
+ labelSupportError: (features) => `${features.join(', ')} not supported on this browser`,
16
+
17
+ // defaults
18
+ labelColor: '색상',
19
+ labelWidth: '너비',
20
+ labelSize: '크기',
21
+ labelOffset: '오프셋',
22
+ labelAmount: '양',
23
+ labelInset: '삽입',
24
+ labelRadius: '반경',
25
+
26
+ // controls
27
+ labelColorPalette: '색상 팔레트',
28
+
29
+ // sizes
30
+ labelSizeExtraSmall: '매우 작은',
31
+ labelSizeSmall:'작은',
32
+ labelSizeMediumSmall: '중간 작은',
33
+ labelSizeMedium: '중간',
34
+ labelSizeMediumLarge: '중간 큰',
35
+ labelSizeLarge: '큰',
36
+ labelSizeExtraLarge: '매우 큰',
37
+
38
+ // default buttons
39
+
40
+ labelButtonCancel: '취소',
41
+ labelButtonUndo: '실행 취소',
42
+ labelButtonRedo: '다시 실행',
43
+ labelButtonRevert: '되돌리기',
44
+ labelButtonExport: '완료',
45
+
46
+ // zoom
47
+ labelZoomIn: '확대',
48
+ labelZoomOut: '축소',
49
+ labelZoomFit: '화면에 맞추기',
50
+ labelZoomActual: 'Actual size',
51
+ iconZoomIn: '<path stroke="currentColor" stroke-width=".125em" d="M8 12 h8 M12 8 v8" />',
52
+ iconZoomOut: '<path stroke="currentColor" stroke-width=".125em" d="M9 12 h6" />',
53
+
54
+ // icons
55
+ iconSupportError: `<g fill="none" stroke="currentColor" stroke-width="2"><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"/><g><line x1="12" y1="9" x2="12" y2="13"/><line x1="12" y1="17" x2="12.01" y2="17"/></g>`,
56
+ iconButtonClose: IconCross,
57
+ iconButtonRevert: `<g fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" stroke="currentColor" stroke-width=".125em"><path d="M7.388 18.538a8 8 0 10-2.992-9.03"/><path fill="currentColor" d="M2.794 11.696L2.37 6.714l5.088 3.18z"/><path d="M12 8v4M12 12l4 2"/></g>`,
58
+ iconButtonUndo: `<g fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" stroke="currentColor" stroke-width=".125em"><path d="M10 8h4c2.485 0 5 2 5 5s-2.515 5-5 5h-4"/><path fill="currentColor" d="M5 8l4-3v6z"/></g>`,
59
+ iconButtonRedo: `<g fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" stroke="currentColor" stroke-width=".125em"><path d="M14 8h-4c-2.485 0-5 2-5 5s2.515 5 5 5h4"/><path fill="currentColor" d="M19 8l-4-3v6z"/></g>`,
60
+ iconButtonExport: `<polyline points="20 6 9 17 4 12" fill="none" stroke="currentColor" stroke-width=".125em"></polyline>`,
61
+
62
+ // status
63
+ statusLabelButtonClose: 'Close',
64
+ statusIconButtonClose: IconCross,
65
+ statusLabelLoadImage: (state) => {
66
+ if (!state || !state.task) return '이미지 대기 중';
67
+ if (state.error)
68
+ return state.error.code === 'IMAGE_TOO_SMALL'
69
+ ? '최소 이미지 크기는 {minWidth} × {minHeight}'
70
+ : '이미지 로딩 오류';
71
+ if (state.task === 'blob-to-bitmap') return '이미지 준비 중&hellip;';
72
+ return '이미지 로딩 중&hellip;';
73
+ },
74
+
75
+ // processing status message
76
+ statusLabelProcessImage: (state) => {
77
+ if (!state || !state.task) return undefined;
78
+ if (state.task === 'store') {
79
+ if (state.error) return '이미지 업로드 오류';
80
+ return '이미지 업로드 중&hellip;';
81
+ }
82
+ if (state.error) return '이미지 처리 오류';
83
+ return '이미지 처리 중&hellip;';
84
+ },
85
+ };
86
+
87
+ export const MarkupEditor = {
88
+ shapeLabelButtonSelectSticker: '이미지 선택',
89
+ shapeIconButtonSelectSticker: `<g fill="none" stroke="currentColor" stroke-width="0.0625em"><path d="M8 21 L15 11 L19 15"/><path d="M15 2 v5 h5"/><path d="M8 2 h8 l4 4 v12 q0 4 -4 4 h-8 q-4 0 -4 -4 v-12 q0 -4 4 -4z"/></g><circle fill="currentColor" cx="10" cy="8" r="1.5"/>`,
90
+
91
+ shapeIconButtonFlipHorizontal: `<g stroke="currentColor" stroke-width=".125em"><path fill="none" d="M6 6.5h5v11H6z"/><path fill="currentColor" d="M15 6.5h3v11h-3z"/><path d="M11 4v16" fill="currentColor"/></g>`,
92
+ shapeIconButtonFlipVertical: `<g stroke="currentColor" stroke-width=".125em"><rect x="7" y="8" width="11" height="5" fill="none"/><rect x="7" y="17" width="11" height="2" fill="currentColor"/><line x1="5" y1="13" x2="20" y2="13"/></g>`,
93
+ shapeIconButtonRemove: `<g fill="none" fill-rule="evenodd"><path stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="M7.5 7h9z"/><path d="M7.916 9h8.168a1 1 0 01.99 1.14l-.972 6.862a2 2 0 01-1.473 1.653c-.877.23-1.753.345-2.629.345-.876 0-1.752-.115-2.628-.345a2 2 0 01-1.473-1.653l-.973-6.862A1 1 0 017.916 9z" fill="currentColor"/><rect fill="currentColor" x="10" y="5" width="4" height="3" rx="1"/></g>`,
94
+ shapeIconButtonDuplicate: `<g fill="none" fill-rule="evenodd"><path d="M15 13.994V16a2 2 0 01-2 2H8a2 2 0 01-2-2v-5a2 2 0 012-2h2.142" stroke="currentColor" stroke-width=".125em"/><path d="M15 9V8a1 1 0 00-2 0v1h-1a1 1 0 000 2h1v1a1 1 0 002 0v-1h1a1 1 0 000-2h-1zm-4-4h6a2 2 0 012 2v6a2 2 0 01-2 2h-6a2 2 0 01-2-2V7a2 2 0 012-2z" fill="currentColor"/></g>`,
95
+ shapeIconButtonMoveToFront: `<g fill="none" fill-rule="evenodd"><rect fill="currentColor" x="11" y="13" width="8" height="2" rx="1"/><rect fill="currentColor" x="9" y="17" width="10" height="2" rx="1"/><path d="M11.364 8H10a5 5 0 000 10M12 6.5L14.5 8 12 9.5z" stroke="currentColor" stroke-width=".125em" stroke-linecap="round"/></g>`,
96
+
97
+ shapeIconButtonTextLayoutAutoWidth: `${CharacterA}`,
98
+ shapeIconButtonTextLayoutAutoHeight: `<g fill="currentColor"><circle cx="4" cy="12" r="1.5"/><circle cx="20" cy="12" r="1.5"/></g>${CharacterA}`,
99
+ shapeIconButtonTextLayoutFixedSize: `<g fill="currentColor"><circle cx="5" cy="6" r="1.5"/><circle cx="19" cy="6" r="1.5"/><circle cx="19" cy="19" r="1.5"/><circle cx="5" cy="19" r="1.5"/></g>${CharacterA}`,
100
+
101
+ shapeTitleButtonTextLayoutAutoWidth: '자동 너비',
102
+ shapeTitleButtonTextLayoutAutoHeight: '자동 높이',
103
+ shapeTitleButtonTextLayoutFixedSize: '고정 크기',
104
+
105
+ shapeTitleButtonFlipHorizontal: '수평 뒤집기',
106
+ shapeTitleButtonFlipVertical: '수직 뒤집기',
107
+ shapeTitleButtonRemove: '제거',
108
+ shapeTitleButtonDuplicate: '복제',
109
+ shapeTitleButtonMoveToFront: '앞으로 이동',
110
+
111
+ shapeLabelInputText: '텍스트 편집',
112
+
113
+ shapeIconInputCancel: `<g fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" stroke="currentColor" stroke-width=".125em"><path d="M18 6L6 18M6 6l12 12"/></g>`,
114
+ shapeIconInputConfirm: `<g fill="none" fill-rule="evenodd" stroke-linecap="round" stroke-linejoin="round" stroke="currentColor" stroke-width=".125em"><polyline points="20 6 9 17 4 12"/></g>`,
115
+ shapeLabelInputCancel: '취소',
116
+ shapeLabelInputConfirm: '확인',
117
+
118
+ shapeLabelStrokeNone: '윤곽선 없음',
119
+
120
+ shapeLabelFontStyleNormal: '보통',
121
+ shapeLabelFontStyleBold: '굵게',
122
+ shapeLabelFontStyleItalic: '이탤릭',
123
+ shapeLabelFontStyleItalicBold: '굵은 이탤릭',
124
+
125
+ shapeTitleBackgroundColor: '채우기 색상',
126
+
127
+ shapeTitleCornerRadius: '모서리 반경',
128
+
129
+ shapeTitleFontFamily: '글꼴',
130
+ shapeTitleFontSize: '글꼴 크기',
131
+ shapeTitleFontStyle: '글꼴 스타일',
132
+ shapeTitleLineHeight: '줄 높이',
133
+
134
+ shapeTitleLineStart: '시작',
135
+ shapeTitleLineEnd: '끝',
136
+ shapeTitleStrokeWidth: '선 너비',
137
+ shapeTitleStrokeColor: '선 색상',
138
+
139
+ shapeTitleLineDecorationBar: '바',
140
+ shapeTitleLineDecorationCircle: '원',
141
+ shapeTitleLineDecorationSquare: '사각형',
142
+ shapeTitleLineDecorationArrow: '화살표',
143
+ shapeTitleLineDecorationCircleSolid: '실제 원',
144
+ shapeTitleLineDecorationSquareSolid: '실제 사각형',
145
+ shapeTitleLineDecorationArrowSolid: '실제 화살표',
146
+
147
+ shapeIconLineDecorationBar: `<g stroke="currentColor" stroke-linecap="round" stroke-width=".125em"><path d="M5,12 H16"/><path d="M16,8 V16"/></g>`,
148
+ shapeIconLineDecorationCircle: `<g stroke="currentColor" stroke-linecap="round"><path stroke-width=".125em" d="M5,12 H12"/><circle fill="none" stroke-width=".125em" cx="16" cy="12" r="4"/></g>`,
149
+ shapeIconLineDecorationSquare: `<g stroke="currentColor" stroke-linecap="round"><path stroke-width=".125em" d="M5,12 H12"/><rect fill="none" stroke-width=".125em" x="12" y="8" width="8" height="8"/></g>`,
150
+ shapeIconLineDecorationArrow: `<g stroke="currentColor" stroke-linecap="round" stroke-width=".125em"><path d="M5,12 H16 M13,7 l6,5 l-6,5" fill="none"/></g>`,
151
+ shapeIconLineDecorationCircleSolid: `<g stroke="currentColor" stroke-linecap="round"><path stroke-width=".125em" d="M5,12 H12"/><circle fill="currentColor" cx="16" cy="12" r="4"/></g>`,
152
+ shapeIconLineDecorationSquareSolid: `<g stroke="currentColor" stroke-linecap="round"><path stroke-width=".125em" d="M5,12 H12"/><rect fill="currentColor" x="12" y="8" width="8" height="8"/></g>`,
153
+ shapeIconLineDecorationArrowSolid: `<g stroke="currentColor" stroke-linecap="round" stroke-width=".125em"><path d="M5,12 H16"/><path d="M13,7 l6,5 l-6,5z" fill="currentColor"/></g>`,
154
+
155
+ shapeTitleColorTransparent: '투명',
156
+ shapeTitleColorWhite: '흰색',
157
+ shapeTitleColorSilver: '은색',
158
+ shapeTitleColorGray: '회색',
159
+ shapeTitleColorBlack: '검정색',
160
+ shapeTitleColorNavy: '해군색',
161
+ shapeTitleColorBlue: '파란색',
162
+ shapeTitleColorAqua: '아쿠아',
163
+ shapeTitleColorTeal: '청록색',
164
+ shapeTitleColorOlive: '올리브',
165
+ shapeTitleColorGreen: '녹색',
166
+ shapeTitleColorYellow: '노란색',
167
+ shapeTitleColorOrange: '주황색',
168
+ shapeTitleColorRed: '빨간색',
169
+ shapeTitleColorMaroon: '적갈색',
170
+ shapeTitleColorFuchsia: '자홍색',
171
+ shapeTitleColorPurple: '보라색',
172
+
173
+ shapeTitleTextColor: '글꼴 색상',
174
+ shapeTitleTextAlign: '텍스트 정렬',
175
+ shapeTitleTextAlignLeft: '왼쪽 정렬 텍스트',
176
+ shapeTitleTextAlignCenter: '중앙 정렬 텍스트',
177
+ shapeTitleTextAlignRight: '오른쪽 정렬 텍스트',
178
+
179
+ shapeIconTextAlignLeft: `<g stroke-width=".125em" stroke="currentColor"><line x1="5" y1="8" x2="15" y2="8"/><line x1="5" y1="12" x2="19" y2="12"/><line x1="5" y1="16" x2="14" y2="16"/></g>`,
180
+ shapeIconTextAlignCenter: `<g stroke-width=".125em" stroke="currentColor"><line x1="7" y1="8" x2="17" y2="8"/><line x1="5" y1="12" x2="19" y2="12"/><line x1="8" y1="16" x2="16" y2="16"/></g>`,
181
+ shapeIconTextAlignRight: `<g stroke-width=".125em" stroke="currentColor"><line x1="9" y1="8" x2="19" y2="8"/><line x1="5" y1="12" x2="19" y2="12"/><line x1="11" y1="16" x2="19" y2="16"/></g>`,
182
+
183
+ shapeLabelToolMove: '이동',
184
+ shapeLabelToolView: '보기',
185
+ shapeLabelToolSharpie: '샤피',
186
+ shapeLabelToolEraser: '지우개',
187
+ shapeLabelToolPath: '경로',
188
+ shapeLabelToolRectangle: '사각형',
189
+ shapeLabelToolEllipse: '타원',
190
+ shapeLabelToolArrow: '화살표',
191
+ shapeLabelToolLine: '선',
192
+ shapeLabelToolText: '텍스트',
193
+ shapeLabelToolPreset: '스티커',
194
+
195
+ shapeIconToolView: `<g stroke-width=".125em" stroke="currentColor" fill="none" stroke-linecap="round" stroke-linejoin="round"><path d="M10.98 9.703V2.567c0-1.19 1.19-1.785 1.784-1.785.595 0 1.784.595 1.784 1.785v3.568"/><path d="M14.548 9.703V4.35c0-1.19 1.19-1.784 1.784-1.784.595 0 1.784.594 1.784 1.784v2.973"/><path d="M18.116 10.244V7.271c0-1.19 1.19-1.784 1.784-1.784.595 0 1.785.595 1.785 1.784 0 1.19 0 8.92-1.19 12.488-1.19 3.569-10.704 4.758-13.678 0-2.973-4.757-2.973-4.757-4.163-6.541-1.189-1.784-1.153-2.974-.594-3.568.558-.595 1.784-1.19 2.973.594 1.277 1.916 2.07 2.907 2.379 2.974V5.487c0-1.19 1.19-1.784 1.784-1.784.595 0 1.784.595 1.784 1.784V8.46"/></g>`,
196
+ shapeIconToolMove: `<g stroke-width=".125em" stroke="currentColor" fill="none"><path d="M6 2 L6 19 L18 13 Z M13 18 L16 24" stroke="currentColor" stroke-width=".125em" fill="none" fill-rule="evenodd" stroke-linejoin="round"/></g>`,
197
+ shapeIconToolSharpie: `<g stroke-width=".125em" stroke="currentColor" fill="none"><path d="M2.025 5c5.616-2.732 8.833-3.857 9.65-3.374C12.903 2.351.518 12.666 2.026 14 3.534 15.334 16.536.566 17.73 2.566 18.924 4.566 3.98 17.187 4.831 18c.851.813 9.848-6 11.643-6 1.087 0-2.53 5.11-2.92 7-.086.41 3.323-1.498 4.773-1 .494.17.64 2.317 1.319 3 .439.443 1.332.776 2.679 1" stroke="currentColor" stroke-width=".125em" fill="none" fill-rule="evenodd" stroke-linejoin="round"/></g>`,
198
+ shapeIconToolEraser: `<g stroke-width=".125em" stroke="currentColor" stroke-linecap="round" fill="none"><g transform="translate(3, 15) rotate(-45)"><rect x="0" y="0" width="18" height="10" rx="3"/></g><line x1="11" y1="21" x2="18" y2="21"/><line x1="20" y1="21" x2="22" y2="21"/></g>`,
199
+ shapeIconToolPath: `<g stroke-width=".125em" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" fill="none"><circle cx="21" cy="3" r="2"/><circle cx="9" cy="9" r="2"/><circle cx="3" cy="21" r="2"/><path d="M19 4 11 8 M8 11 4 19"/></g>`,
200
+ shapeIconToolRectangle: `<g stroke-width=".125em" stroke="currentColor" fill="none"><rect x="1" y="1" width="22" height="22" rx="4"/></g>`,
201
+ shapeIconToolEllipse: `<g stroke-width=".125em" stroke="currentColor" fill="none"><circle cx="12" cy="12" r="11"/></g>`,
202
+ shapeIconToolArrow: `<g stroke-width=".125em" stroke="currentColor" fill="none"><line x1="20" y1="3" x2="6" y2="21"/><path d="m10 6 L21.5 1 L20 13.5" fill="currentColor" stroke="none"/></g>`,
203
+ shapeIconToolLine: `<g stroke-width=".125em" stroke="currentColor" fill="none"><line x1="20" y1="3" x2="6" y2="21"/></g>`,
204
+ shapeIconToolText: `<g stroke="none" fill="currentColor" transform="translate(6,0)"><path d="M8.14 20.085c.459 0 .901-.034 1.329-.102a8.597 8.597 0 001.015-.21v1.984c-.281.135-.695.247-1.242.336a9.328 9.328 0 01-1.477.133c-3.312 0-4.968-1.745-4.968-5.235V6.804H.344v-1.25l2.453-1.078L3.89.819h1.5v3.97h4.97v2.015H5.39v10.078c0 1.031.245 1.823.735 2.375s1.161.828 2.015.828z"/>`,
205
+ shapeIconToolPreset: `<g fill="none" stroke-linecap="round" stroke-linejoin="round" stroke="currentColor" stroke-width=".125em"><path d="M12 22c2.773 0 1.189-5.177 3-7 1.796-1.808 7-.25 7-3 0-5.523-4.477-10-10-10S2 6.477 2 12s4.477 10 10 10z"></path><path d="M20 17c-3 3-5 5-8 5"></path></g>`,
206
+
207
+ shapeTitleSelectionMode: '선택 모드',
208
+ shapeTitleBrushSize: '브러시 크기',
209
+
210
+ shapeLabelSelectionModeNew: '새로운',
211
+ shapeLabelSelectionModeAdd: '추가',
212
+ shapeLabelSelectionModeSubtract: '제거',
213
+
214
+ shapeLabelToolSelectionBrush: '브러시',
215
+ shapeLabelToolSelectionLassoo: 'Lassoo',
216
+ shapeLabelToolSelectionRectangle: 'Rectangle marquee',
217
+ shapeLabelToolSelectionEllipse: 'Ellipse marquee',
218
+
219
+ shapeIconSelectionModeNew: `<g fill="none" fill-rule="evenodd" stroke="currentColor" stroke-linecap="round" stroke-linejoin="round"><path d="M6.5 17H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v1.5"/><rect width="12" height="12" x="9" y="9" fill="currentColor" fill-opacity=".25" rx="2"/></g>`,
220
+ shapeIconSelectionModeAdd: `<g fill="none" fill-rule="evenodd" stroke="currentColor"><path fill="currentColor" fill-opacity=".25" stroke-linecap="round" stroke-linejoin="round" d="M15 3a2 2 0 0 1 2 2v4h2a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-8a2 2 0 0 1-2-2v-2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h10Z"/><path d="M13 15h4M15 13v4"/></g>`,
221
+ shapeIconSelectionModeSubtract: `<g fill="none" fill-rule="evenodd" stroke="currentColor"><path fill="currentColor" fill-opacity=".25" stroke-linecap="round" stroke-linejoin="round" d="M15 3a2 2 0 0 1 2 2v4h-6a2 2 0 0 0-1.995 1.85L9 11v6H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h10Z"/><rect width="12" height="12" x="9" y="9" stroke-linecap="round" stroke-linejoin="round" rx="2"/><path d="M13 15h4"/></g>`,
222
+ shapeIconToolSelectionBrush: `<g stroke-width=".125em" stroke="currentColor" fill="none"><path d="M2.025 5c5.616-2.732 8.833-3.857 9.65-3.374C12.903 2.351.518 12.666 2.026 14 3.534 15.334 16.536.566 17.73 2.566 18.924 4.566 3.98 17.187 4.831 18c.851.813 9.848-6 11.643-6 1.087 0-2.53 5.11-2.92 7-.086.41 3.323-1.498 4.773-1 .494.17.64 2.317 1.319 3 .439.443 1.332.776 2.679 1" stroke="currentColor" fill-rule="evenodd" stroke-linejoin="round"/></g>`,
223
+ shapeIconToolSelectionLassoo: `<g fill="none" fill-rule="evenodd" stroke-width=".125em" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M11.428 17.702a18.46 18.46 0 0 0 4.085-1.595c5.851-3.112 9.019-8.599 7.074-12.256-1.945-3.657-8.265-4.1-14.116-.988C2.619 5.974-.55 11.46 1.396 15.118c.63 1.186 1.72 2.033 3.105 2.532"/><ellipse cx="8" cy="18.5" rx="3.5" ry="2.833" transform="rotate(-15 8 18.5)"/><path stroke-linecap="round" d="M5 18c3.347 1.048 5.514 1.881 6.5 2.5.859.54 1.517.994 1.5 2.364"/></g>`,
224
+ shapeIconToolSelectionRectangle: `<g stroke-width=".125em" stroke="currentColor"><path d="M9 1 h6 m4 0 h4v4 m0 4 v6 m0 4 v4h-4 m-4 0 h-6 m-4 0 h-4v-4 m0 -4 v-6 m0 -4 v-4h4" fill="none" /></g>`,
225
+ shapeIconToolSelectionEllipse: `<path stroke-width=".125em" stroke="currentColor" d="M1.21 9.853a11.054 11.054 0 0 0 0 4.294m1.643 3.965a11.054 11.054 0 0 0 3.035 3.035m3.965 1.644a11.054 11.054 0 0 0 4.294 0m3.965-1.644a11.054 11.054 0 0 0 3.035-3.035m1.644-3.965a11.054 11.054 0 0 0 0-4.294m-1.644-3.965a11.054 11.054 0 0 0-3.035-3.035m-3.965-1.644a11.054 11.054 0 0 0-4.294 0M5.888 2.853a11.054 11.054 0 0 0-3.035 3.035"/>`,
226
+ };
227
+
228
+ // deprecated
229
+ export const ShapeEditor = MarkupEditor;
@@ -0,0 +1 @@
1
+ export { default } from './ko_KR.js';
@@ -0,0 +1,54 @@
1
+ export default {
2
+ cropLabel: '자르기',
3
+ cropIcon:
4
+ '<g stroke-width=".125em" stroke="currentColor" fill="none"><path d="M23 17H9a2 2 0 0 1-2-2v-5m0-3V1 M1 7h14a2 2 0 0 1 2 2v7m0 4v3"/></g>',
5
+ cropIconButtonRecenter: `<path stroke="currentColor" fill="none" stroke-width="2" stroke-linejoin="bevel" d="M1.5 7.5v-6h6M1.5 16.5v6h6M22.5 16.5v6h-6M22.5 7.5v-6h-6"/><circle cx="12" cy="12" r="3.5" fill="currentColor" stroke="none"/>`,
6
+ cropIconButtonRotateLeft:
7
+ '<g stroke="none" fill="currentColor"><path fill="none" d="M-1-1h582v402H-1z"/><rect x="3" rx="1" height="12" width="12" y="9"/><path d="M15 5h-1a5 5 0 015 5 1 1 0 002 0 7 7 0 00-7-7h-1.374l.747-.747A1 1 0 0011.958.84L9.603 3.194a1 1 0 000 1.415l2.355 2.355a1 1 0 001.415-1.414l-.55-.55H15z"/></g>',
8
+ cropIconButtonRotateRight:
9
+ '<g stroke="none" fill="currentColor"><path fill="none" d="M-1-1h582v402H-1z"/><path d="M11.177 5H10a5 5 0 00-5 5 1 1 0 01-2 0 7 7 0 017-7h1.374l-.747-.747A1 1 0 0112.042.84l2.355 2.355a1 1 0 010 1.415l-2.355 2.354a1 1 0 01-1.415-1.414l.55-.55z"/><rect rx="1" height="12" width="12" y="9" x="9"/></g>',
10
+ cropIconButtonFlipVertical:
11
+ '<g stroke="none" fill="currentColor"><path d="M19.993 12.143H7a1 1 0 0 1-1-1V5.994a1 1 0 0 1 1.368-.93l12.993 5.15a1 1 0 0 1-.368 1.93z"/><path d="M19.993 14a1 1 0 0 1 .368 1.93L7.368 21.078A1 1 0 0 1 6 20.148V15a1 1 0 0 1 1-1h12.993z" opacity=".6"/></g>',
12
+ cropIconButtonFlipHorizontal:
13
+ '<g stroke="none" fill="currentColor"><path d="M11.93 7.007V20a1 1 0 0 1-1 1H5.78a1 1 0 0 1-.93-1.368l5.15-12.993a1 1 0 0 1 1.929.368z"/><path d="M14 7.007V20a1 1 0 0 0 1 1h5.149a1 1 0 0 0 .93-1.368l-5.15-12.993A1 1 0 0 0 14 7.007z" opacity=".6"/></g>',
14
+
15
+ cropIconSelectPreset: (locale, aspectRatio) => {
16
+ const [a, b, c] = !aspectRatio
17
+ ? [0.2, 0.3, 0.4]
18
+ : [
19
+ aspectRatio < 1 ? 1 : 0.3,
20
+ aspectRatio === 1 ? 0.85 : 0.5,
21
+ aspectRatio > 1 ? 1 : 0.3,
22
+ ];
23
+ return `<g fill="currentColor">
24
+ <rect opacity="${a}" x="2" y="4" width="10" height="18" rx="1"/>
25
+ <rect opacity="${b}" x="4" y="8" width="14" height="14" rx="1"/>
26
+ <rect opacity="${c}" x="6" y="12" width="17" height="10" rx="1"/>
27
+ </g>`;
28
+ },
29
+
30
+ cropIconCropBoundary: (locale, isBoundToImage) => {
31
+ const [a, b, c, d] = isBoundToImage ? [0.3, 1, 0, 0] : [0, 0, 0.3, 1];
32
+ return `<g fill="currentColor">
33
+ <rect opacity="${a}" x="2" y="3" width="20" height="20" rx="1"/>
34
+ <rect opacity="${b}" x="7" y="8" width="10" height="10" rx="1"/>
35
+ <rect opacity="${c}" x="4" y="8" width="14" height="14" rx="1"/>
36
+ <rect opacity="${d}" x="12" y="4" width="10" height="10" rx="1"/>
37
+ </g>`;
38
+ },
39
+
40
+ cropLabelButtonRecenter: '재중심',
41
+ cropLabelButtonRotateLeft: '왼쪽으로 회전',
42
+ cropLabelButtonRotateRight: '오른쪽으로 회전',
43
+ cropLabelButtonFlipHorizontal: '수평 뒤집기',
44
+ cropLabelButtonFlipVertical: '수직 뒤집기',
45
+
46
+ cropLabelSelectPreset: '자르기 형태',
47
+
48
+ cropLabelCropBoundary: '자르기 경계',
49
+ cropLabelCropBoundaryEdge: '이미지의 가장자리',
50
+ cropLabelCropBoundaryNone: '없음',
51
+
52
+ cropLabelTabRotation: '회전',
53
+ cropLabelTabZoom: '스케일',
54
+ };
@@ -0,0 +1 @@
1
+ export { default } from './ko_KR.js';
@@ -0,0 +1,5 @@
1
+ export default {
2
+ decorateLabel: '장식하기',
3
+ decorateIcon:
4
+ '<g fill="none" fill-rule="evenodd"><path stroke="currentColor" stroke-width=".125em" stroke-linecap="round" stroke-linejoin="round" d="M12 18.5l-6.466 3.4 1.235-7.2-5.23-5.1 7.228-1.05L12 2l3.233 6.55 7.229 1.05-5.231 5.1 1.235 7.2z"/></g>',
5
+ };
@@ -0,0 +1 @@
1
+ export { default } from './ko_KR.js';
@@ -0,0 +1,12 @@
1
+ export default {
2
+ fillLabel: '채우기',
3
+ fillIcon: `
4
+ <g fill="none" stroke-linecap="round" stroke-linejoin="round" stroke="currentColor" stroke-width=".125em">
5
+ <g transform="rotate(60, 12, 12)">
6
+ <rect x="4" y="4" width="14" height="16" rx="3"/>
7
+ </g>
8
+ <path d="M21 13 L21 21"></path>
9
+ <path d="M4.5 12.5 L19 12.5"></path>
10
+ </g>
11
+ `,
12
+ };
@@ -0,0 +1 @@
1
+ export { default } from './ko_KR.js';
@@ -0,0 +1,18 @@
1
+ export default {
2
+ filterLabel: '필터',
3
+ filterIcon:
4
+ '<g stroke-width=".125em" stroke="currentColor" fill="none"><path d="M18.347 9.907a6.5 6.5 0 1 0-1.872 3.306M3.26 11.574a6.5 6.5 0 1 0 2.815-1.417 M10.15 17.897A6.503 6.503 0 0 0 16.5 23a6.5 6.5 0 1 0-6.183-8.51"/></g>',
5
+ filterLabelChrome: 'Chrome',
6
+ filterLabelFade: 'Fade',
7
+ filterLabelCold: 'Cold',
8
+ filterLabelWarm: 'Warm',
9
+ filterLabelPastel: 'Pastel',
10
+ filterLabelMonoDefault: 'Mono',
11
+ filterLabelMonoNoir: 'Noir',
12
+ filterLabelMonoWash: 'Wash',
13
+ filterLabelMonoStark: 'Stark',
14
+ filterLabelSepiaDefault: 'Sepia',
15
+ filterLabelSepiaBlues: 'Blues',
16
+ filterLabelSepiaRust: 'Rust',
17
+ filterLabelSepiaColor: 'Color',
18
+ };
@@ -0,0 +1 @@
1
+ export { default } from './ko_KR.js';
@@ -0,0 +1,14 @@
1
+ export default {
2
+ finetuneLabel: '미세 조정',
3
+ finetuneIcon:
4
+ '<g stroke-width=".125em" stroke="currentColor" fill="none"><path d="M4 1v5.5m0 3.503V23M12 1v10.5m0 3.5v8M20 1v15.5m0 3.5v3M2 7h4M10 12h4M18 17h4"/></g>',
5
+
6
+ finetuneLabelBrightness: 'Brightness',
7
+ finetuneLabelContrast: 'Contrast',
8
+ finetuneLabelSaturation: 'Saturation',
9
+ finetuneLabelExposure: 'Exposure',
10
+ finetuneLabelTemperature: 'Temperature',
11
+ finetuneLabelGamma: 'Gamma',
12
+ finetuneLabelClarity: 'Clarity',
13
+ finetuneLabelVignette: 'Vignette',
14
+ };
@@ -0,0 +1 @@
1
+ export { default } from './ko_KR.js';
@@ -0,0 +1,17 @@
1
+ export default {
2
+ frameLabel: '프레임',
3
+ frameIcon: `<g fill="none" stroke-linecap="round" stroke-linejoin="round" stroke="currentColor" stroke-width=".125em">
4
+ <rect x="2" y="2" width="20" height="20" rx="4"/>
5
+ <rect x="6" y="6" width="12" height="12" rx="1"/>
6
+ </g>`,
7
+
8
+ frameLabelMatSharp: 'Mat',
9
+ frameLabelMatRound: 'Bevel',
10
+ frameLabelLineSingle: 'Line',
11
+ frameLabelLineMultiple: 'Zebra',
12
+ frameLabelEdgeSeparate: 'Inset',
13
+ frameLabelEdgeOverlap: 'Plus',
14
+ frameLabelEdgeCross: 'Lumber',
15
+ frameLabelCornerHooks: 'Hook',
16
+ frameLabelPolaroid: 'Polaroid',
17
+ };
@@ -0,0 +1,15 @@
1
+ export const LocaleAnnotate: { [key: string]: any };
2
+ export const LocaleCore: { [key: string]: any };
3
+ export const LocaleCrop: { [key: string]: any };
4
+ export const LocaleDecorate: { [key: string]: any };
5
+ export const LocaleFilter: { [key: string]: any };
6
+ export const LocaleFinetune: { [key: string]: any };
7
+ export const LocaleFrame: { [key: string]: any };
8
+ export const LocaleResize: { [key: string]: any };
9
+ export const LocaleRedact: { [key: string]: any };
10
+ export const LocaleSticker: { [key: string]: any };
11
+ export const LocaleTrim: { [key: string]: any };
12
+ export const LocaleFill: { [key: string]: any };
13
+ export const LocaleMarkupEditor: { [key: string]: any };
14
+
15
+ export {};
@@ -0,0 +1,42 @@
1
+ import Annotate from './annotate/index.js';
2
+ import Core, { MarkupEditor } from './core/index.js';
3
+ import Crop from './crop/index.js';
4
+ import Decorate from './decorate/index.js';
5
+ import Filter from './filter/index.js';
6
+ import Finetune from './finetune/index.js';
7
+ import Frame from './frame/index.js';
8
+ import Resize from './resize/index.js';
9
+ import Redact from './redact/index.js';
10
+ import Sticker from './sticker/index.js';
11
+ import Trim from './trim/index.js';
12
+ import Fill from './fill/index.js';
13
+
14
+ export const LocaleAnnotate = Annotate;
15
+ export const LocaleCore = Core;
16
+ export const LocaleCrop = Crop;
17
+ export const LocaleDecorate = Decorate;
18
+ export const LocaleFilter = Filter;
19
+ export const LocaleFinetune = Finetune;
20
+ export const LocaleFrame = Frame;
21
+ export const LocaleResize = Resize;
22
+ export const LocaleRedact = Redact;
23
+ export const LocaleSticker = Sticker;
24
+ export const LocaleTrim = Trim;
25
+ export const LocaleFill = Fill;
26
+ export const LocaleMarkupEditor = MarkupEditor;
27
+
28
+ export default {
29
+ ...Core,
30
+ ...MarkupEditor,
31
+ ...Annotate,
32
+ ...Crop,
33
+ ...Decorate,
34
+ ...Filter,
35
+ ...Finetune,
36
+ ...Frame,
37
+ ...Resize,
38
+ ...Redact,
39
+ ...Sticker,
40
+ ...Fill,
41
+ ...Trim,
42
+ };
@@ -0,0 +1 @@
1
+ export { default } from './ko_KR.js';
@@ -0,0 +1,4 @@
1
+ export default {
2
+ redactLabel: '검열',
3
+ redactIcon: `<g fill="none" stroke-linecap="round" stroke-linejoin="round" stroke="currentColor" stroke-width=".125em"><path d="M 4 5 l 1 -1"/><path d="M 4 10 l 6 -6"/><path d="M 4 15 l 11 -11"/><path d="M 4 20 l 16 -16"/><path d="M 9 20 l 11 -11"/><path d="M 14 20 l 6 -6"/><path d="M 19 20 l 1 -1"/></g>`,
4
+ };
@@ -0,0 +1 @@
1
+ export { default } from './ko_KR.js';
@@ -0,0 +1,18 @@
1
+ export default {
2
+ resizeLabel: '크기 조정',
3
+ resizeIcon: '<g stroke-width=".125em" stroke="currentColor" fill="none"><rect x="2" y="12" width="10" height="10" rx="2"/><path d="M4 11.5V4a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-5.5"/><path d="M14 10l3.365-3.365M14 6h4v4"/></g>',
4
+
5
+ resizeLabelFormCaption: '이미지 출력 크기',
6
+
7
+ resizeLabelInputWidth: 'w',
8
+ resizeTitleInputWidth: '너비',
9
+ resizeLabelInputHeight: 'h',
10
+ resizeTitleInputHeight: '높이',
11
+
12
+ resizeTitleButtonMaintainAspectRatio: '종횡비 유지',
13
+
14
+ resizeIconButtonMaintainAspectRatio: (active, activeFraction) =>
15
+ `<defs><mask id="mask1" x="0" y="0" width="24" height="24" ><rect x="0" y="0" width="24" height="10" fill="#fff" stroke="none"/></mask></defs><g fill="none" fill-rule="evenodd"><g mask="url(#mask1)"><path transform="translate(0 ${
16
+ (activeFraction - 1) * 3
17
+ })" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" d="M9.401 10.205v-.804a2.599 2.599 0 0 1 5.198 0V17"/></g><rect fill="currentColor" x="7" y="10" width="10" height="7" rx="1.5"/></g>`,
18
+ };
@@ -0,0 +1 @@
1
+ export { default } from './ko_KR.js';
@@ -0,0 +1,6 @@
1
+ export default {
2
+ retouchLabel: '리터치',
3
+ retouchIcon: `
4
+ <g fill="none" fill-rule="evenodd"><path fill="currentColor" d="m17 6-2-1-2 1 1-2-1-2 2 1 2-1-1 2zM5.5 5.5 3 4 .5 5.5 2 3 .5.5 3 2 5.5.5 4 3zM9 21l-3-1.5L3 21l1.5-3L3 15l3 1.5L9 15l-1.5 3z"/><path stroke="currentColor" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5" d="m9.266 6.705 13.529 13.529c-.071.78-.34 1.371-.765 1.796-.425.425-1.015.694-1.796.765h0L6.705 9.266c.071-.78.34-1.371.765-1.796.425-.425 1.015-.694 1.796-.765h0Z"/><path stroke="currentColor" stroke-width="1.5" d="M12 9.5c-.657.323-1.157.657-1.5 1-.343.343-.677.843-1 1.5"/></g>
5
+ `,
6
+ };
@@ -0,0 +1 @@
1
+ export { default } from './ko_KR.js';
@@ -0,0 +1,5 @@
1
+ export default {
2
+ stickerLabel: '스티커',
3
+ stickerIcon:
4
+ '<g fill="none" stroke-linecap="round" stroke-linejoin="round" stroke="currentColor" stroke-width=".125em"><path d="M12 22c2.773 0 1.189-5.177 3-7 1.796-1.808 7-.25 7-3 0-5.523-4.477-10-10-10S2 6.477 2 12s4.477 10 10 10z"/><path d="M20 17c-3 3-5 5-8 5"/></g>',
5
+ };
@@ -0,0 +1 @@
1
+ export { default } from './ko_KR.js';
@@ -0,0 +1,60 @@
1
+ export default {
2
+ trimLabel: '자르기',
3
+ trimIcon: `<g stroke-width=".125em" stroke="currentColor" fill="none"><path d=" M1 3 v18 M5 3 v2 M9 3 v2 M5 18 v2 M9 18 v2 M1 3 h12 M1 6 h10 M1 18 h9 M1 21 h8 M14 0 l-4 24 M18 3 h5 M17.5 6 h6 M15.5 18 h7 M15 21 h8 M19 3 v2 M15 18 v2 M19 18 v2 M23 3 v18"/></g>`,
4
+
5
+ trimLabelPlay: '재생',
6
+ trimLabelPause: '일시 정지',
7
+
8
+ trimLabelMute: '음소거',
9
+ trimLabelUnmute: '음소거 해제',
10
+
11
+ trimLabelSplit: '분할',
12
+ trimLabelMerge: '병합',
13
+
14
+ trimIconButtonMute:
15
+ '<g stroke-width=".125em" stroke="currentColor"><polygon fill="currentColor" points="2 16 2 8 8 8 15 1 15 23 8 16"/><path d="M19.3781212,15.2166107 C20.3621122,14.4879168 21,13.3184517 21,12 C21,10.6815483 20.3621122,9.51208318 19.3781212,8.78338927"/></g>',
16
+ trimIconButtonUnmute:
17
+ '<g stroke-width=".125em" stroke="currentColor"><polygon fill="currentColor" points="2 16 2 8 3 8 15 20 15 23 8 16"/><polygon fill="currentColor" points="8 8 15 1 15 15"/><line x1="1" y1="1" x2="23" y2="23"/></g>',
18
+
19
+ trimIconButtonPlay: '<polygon fill="currentColor" points="7 3, 21 12, 7 21"/>',
20
+ trimIconButtonPause:
21
+ '<g fill="currentColor"><rect x="6" y="4" width="4" height="16"/><rect x="14" y="4" width="4" height="16"/></g>',
22
+
23
+ trimIconButtonSplit: `<g stroke="currentColor" stroke-width=".125em">
24
+ <path d="M12 4 V20"/>
25
+ <path fill="currentColor" d="M6 8 L6 16 L2 12 Z M18 8 L22 12 L18 16 Z"/>
26
+ </g>`,
27
+ trimIconButtonMerge: `<g stroke="currentColor" stroke-width=".125em">
28
+ <path d="M1 4 V20 M23 4 V20"/>
29
+ <path fill="currentColor" d="M6 8 L10 12 L6 16 Z M18 8 L14 12 L18 16 Z"/>
30
+ </g>`,
31
+
32
+ // overrides, replace image with media
33
+ statusLabelLoadImage: (state) => {
34
+ if (!state || !state.task) return '미디어 대기 중';
35
+ if (state.error) {
36
+ if (state.error.code === 'IMAGE_TOO_SMALL') {
37
+ return '최소 미디어 크기는 {minWidth} × {minHeight}';
38
+ } else if (state.error.code === 'VIDEO_TOO_SHORT') {
39
+ const unit = state.error.metadata.minDuration === 1 ? '초' : '초';
40
+ return `최소 비디오 길이는 {minDuration} ${unit}`;
41
+ } else {
42
+ return '미디어 로딩 오류';
43
+ }
44
+ }
45
+ if (state.task === 'blob-to-bitmap') return '미디어 준비 중&hellip;';
46
+ return '미디어 로딩 중&hellip;';
47
+ },
48
+
49
+ statusLabelProcessImage: (state) => {
50
+ if (!state || !state.task) return undefined;
51
+ if (state.task === 'store') {
52
+ if (state.error) return '미디어 업로드 오류';
53
+ return '미디어 업로드 중&hellip;';
54
+ }
55
+ if (state.error) return '미디어 처리 오류';
56
+ return '미디어 처리 중&hellip;';
57
+ },
58
+
59
+ cropLabelCropBoundaryEdge: '미디어 가장자리',
60
+ };
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "8.67.0",
2
+ "version": "8.67.1",
3
3
  "name": "@pqina/pintura",
4
4
  "description": "This package is for testing purposes only. Visit https://pqina.nl/pintura to purchase a valid license.",
5
5
  "browser": "pintura.js",