@pqina/pintura 8.61.0 → 8.62.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 (71) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/locale/de_DE/trim/de_DE.js +16 -0
  3. package/locale/en_GB/trim/en_GB.js +10 -4
  4. package/locale/es_ES/trim/es_ES.js +10 -0
  5. package/locale/fr_FR/trim/fr_FR.js +10 -4
  6. package/locale/hi_IN/trim/hi_IN.js +9 -4
  7. package/locale/it_IT/trim/it_IT.js +10 -4
  8. package/locale/ja_JP/annotate/index.js +1 -0
  9. package/locale/ja_JP/annotate/ja_JP.js +5 -0
  10. package/locale/ja_JP/core/index.js +1 -0
  11. package/locale/ja_JP/core/ja_JP.js +209 -0
  12. package/locale/ja_JP/crop/index.js +1 -0
  13. package/locale/ja_JP/crop/ja_JP.js +55 -0
  14. package/locale/ja_JP/decorate/index.js +1 -0
  15. package/locale/ja_JP/decorate/ja_JP.js +5 -0
  16. package/locale/ja_JP/fill/index.js +1 -0
  17. package/locale/ja_JP/fill/ja_JP.js +12 -0
  18. package/locale/ja_JP/filter/index.js +1 -0
  19. package/locale/ja_JP/filter/ja_JP.js +19 -0
  20. package/locale/ja_JP/finetune/index.js +1 -0
  21. package/locale/ja_JP/finetune/ja_JP.js +14 -0
  22. package/locale/ja_JP/frame/index.js +1 -0
  23. package/locale/ja_JP/frame/ja_JP.js +17 -0
  24. package/locale/ja_JP/index.d.ts +15 -0
  25. package/locale/ja_JP/index.js +42 -0
  26. package/locale/ja_JP/redact/index.js +1 -0
  27. package/locale/ja_JP/redact/ja_JP.js +4 -0
  28. package/locale/ja_JP/resize/index.js +1 -0
  29. package/locale/ja_JP/resize/ja_JP.js +19 -0
  30. package/locale/ja_JP/sticker/index.js +1 -0
  31. package/locale/ja_JP/sticker/ja_JP.js +5 -0
  32. package/locale/ja_JP/trim/index.js +1 -0
  33. package/locale/ja_JP/trim/ja_JP.js +61 -0
  34. package/locale/nb_NO/trim/nb_NO.js +10 -4
  35. package/locale/nl_NL/trim/nl_NL.js +10 -4
  36. package/locale/pt_PT/annotate/index.js +1 -0
  37. package/locale/pt_PT/annotate/pt_PT.js +5 -0
  38. package/locale/pt_PT/core/index.js +1 -0
  39. package/locale/pt_PT/core/pt_PT.js +211 -0
  40. package/locale/pt_PT/crop/index.js +1 -0
  41. package/locale/pt_PT/crop/pt_PT.js +55 -0
  42. package/locale/pt_PT/decorate/index.js +1 -0
  43. package/locale/pt_PT/decorate/pt_PT.js +5 -0
  44. package/locale/pt_PT/fill/index.js +1 -0
  45. package/locale/pt_PT/fill/pt_PT.js +12 -0
  46. package/locale/pt_PT/filter/index.js +1 -0
  47. package/locale/pt_PT/filter/pt_PT.js +19 -0
  48. package/locale/pt_PT/finetune/index.js +1 -0
  49. package/locale/pt_PT/finetune/pt_PT.js +14 -0
  50. package/locale/pt_PT/frame/index.js +1 -0
  51. package/locale/pt_PT/frame/pt_PT.js +17 -0
  52. package/locale/pt_PT/index.d.ts +15 -0
  53. package/locale/pt_PT/index.js +42 -0
  54. package/locale/pt_PT/redact/index.js +1 -0
  55. package/locale/pt_PT/redact/pt_PT.js +4 -0
  56. package/locale/pt_PT/resize/index.js +1 -0
  57. package/locale/pt_PT/resize/pt_PT.js +19 -0
  58. package/locale/pt_PT/sticker/index.js +1 -0
  59. package/locale/pt_PT/sticker/pt_PT.js +5 -0
  60. package/locale/pt_PT/trim/index.js +1 -0
  61. package/locale/pt_PT/trim/pt_PT.js +60 -0
  62. package/locale/ru_RU/trim/ru_RU.js +10 -4
  63. package/locale/sv_SE/trim/sv_SE.js +10 -4
  64. package/locale/zh_CN/trim/zh_CN.js +9 -4
  65. package/package.json +1 -1
  66. package/pintura-iife.js +2 -2
  67. package/pintura-umd.js +2 -2
  68. package/pintura.css +2 -2
  69. package/pintura.d.ts +2 -0
  70. package/pintura.js +2 -2
  71. package/pintura.module.css +2 -2
package/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## 8.62.0 | 2023-08-07
4
+
5
+ - Add `imageMinDuration` to limit the duration and clip lengths of loaded videos.
6
+ - Add prevent loading of videos shorter than `imageMinDuration`
7
+ - Add Portugese locale files.
8
+ - Add Japanese locale files.
9
+
3
10
  ## 8.61.0 | 2023-08-01
4
11
 
5
12
  - Add `createMarkupEditorOptionsControl` helper method to create custom option controls for the style control bar.
@@ -40,6 +40,22 @@ export default {
40
40
  return 'Vorschau wird erstellt…';
41
41
  },
42
42
 
43
+ statusLabelLoadImage: (state) => {
44
+ if (!state || !state.task) return 'Warten auf Medien';
45
+ if (state.error) {
46
+ if (state.error.code === 'IMAGE_TOO_SMALL') {
47
+ return 'Mindestgröße ist {minWidth} × {minHeight}';
48
+ } else if (state.error.code === 'VIDEO_TOO_SHORT') {
49
+ const unit = state.error.metadata.minDuration === 1 ? 'Sekunde' : 'Sekunden';
50
+ return `Die Mindestvideodauer beträgt {minDuration} ${unit}`;
51
+ } else {
52
+ return 'Fehler beim Laden des Mediums';
53
+ }
54
+ }
55
+ if (state.task === 'blob-to-bitmap') return 'Medien wird geladen…';
56
+ return 'Vorschau wird erstellt…';
57
+ },
58
+
43
59
  statusLabelProcessImage: (state) => {
44
60
  if (!state || !state.task) return undefined;
45
61
  if (state.task === 'store') {
@@ -32,10 +32,16 @@ export default {
32
32
  // overrides, replace image with media
33
33
  statusLabelLoadImage: (state) => {
34
34
  if (!state || !state.task) return 'Waiting for media';
35
- if (state.error)
36
- return state.error.code === 'IMAGE_TOO_SMALL'
37
- ? 'Minimum media size is {minWidth} × {minHeight}'
38
- : 'Error loading media';
35
+ if (state.error) {
36
+ if (state.error.code === 'IMAGE_TOO_SMALL') {
37
+ return 'Minimum media size is {minWidth} × {minHeight}';
38
+ } else if (state.error.code === 'VIDEO_TOO_SHORT') {
39
+ const unit = state.error.metadata.minDuration === 1 ? 'second' : 'seconds';
40
+ return `Minimum video duration is {minDuration} ${unit}`;
41
+ } else {
42
+ return 'Error loading media';
43
+ }
44
+ }
39
45
  if (state.task === 'blob-to-bitmap') return 'Preparing media…';
40
46
  return 'Loading media…';
41
47
  },
@@ -32,6 +32,16 @@ export default {
32
32
  // overrides, replace image with media
33
33
  statusLabelLoadImage: (state) => {
34
34
  if (!state || !state.task) return 'Esperando media';
35
+ if (state.error) {
36
+ if (state.error.code === 'IMAGE_TOO_SMALL') {
37
+ return 'Tamaño mínmo de {minWidth} × {minHeight}';
38
+ } else if (state.error.code === 'VIDEO_TOO_SHORT') {
39
+ const unit = state.error.metadata.minDuration === 1 ? 'segundo' : 'segundos';
40
+ return `La duración mínima del video es de {minDuration} ${unit}`;
41
+ } else {
42
+ return 'Error al cargar media';
43
+ }
44
+ }
35
45
  if (state.error)
36
46
  return state.error.code === 'IMAGE_TOO_SMALL'
37
47
  ? 'Tamaño mínmo de {minWidth} × {minHeight}'
@@ -32,10 +32,16 @@ export default {
32
32
  // overrides, replace image with media
33
33
  statusLabelLoadImage: (state) => {
34
34
  if (!state || !state.task) return `Attente de média`;
35
- if (state.error)
36
- return state.error.code === 'IMAGE_TOO_SMALL'
37
- ? 'La taille minimale est de {minWidth} × {minHeight}'
38
- : `Erreur de chargement du média`;
35
+ if (state.error) {
36
+ if (state.error.code === 'IMAGE_TOO_SMALL') {
37
+ return 'La taille minimale est de {minWidth} × {minHeight}';
38
+ } else if (state.error.code === 'VIDEO_TOO_SHORT') {
39
+ const unit = state.error.metadata.minDuration === 1 ? 'seconde' : 'secondes';
40
+ return `La durée minimale de la vidéo est de {minDuration} ${unit}`;
41
+ } else {
42
+ return 'Erreur de chargement du média';
43
+ }
44
+ }
39
45
  if (state.task === 'blob-to-bitmap') return `Préparer du média…`;
40
46
  return `Chargement de media…`;
41
47
  },
@@ -32,10 +32,15 @@ export default {
32
32
  // overrides, replace image with media
33
33
  statusLabelLoadImage: (state) => {
34
34
  if (!state || !state.task) return 'मीडिया की प्रतीक्षा की जा रही है';
35
- if (state.error)
36
- return state.error.code === 'IMAGE_TOO_SMALL'
37
- ? 'न्यूनतम मीडिया आकार है {minWidth} × {minHeight}'
38
- : 'मीडिया लोड करने में त्रुटि';
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
+ return `न्यूनतम वीडियो अवधि {minDuration} सेकंड है`;
40
+ } else {
41
+ return 'मीडिया लोड करने में त्रुटि';
42
+ }
43
+ }
39
44
  if (state.task === 'blob-to-bitmap') return 'मीडिया तैयार कर रहे हैं…';
40
45
  return 'मीडिया लोड हो रही है…';
41
46
  },
@@ -32,10 +32,16 @@ export default {
32
32
  // overrides, replace image with media
33
33
  statusLabelLoadImage: (state) => {
34
34
  if (!state || !state.task) return 'In attesa del media';
35
- if (state.error)
36
- return state.error.code === 'IMAGE_TOO_SMALL'
37
- ? 'Le dimensioni minime del media sono {minWidth} × {minHeight}'
38
- : 'Errore nel caricamento del media';
35
+ if (state.error) {
36
+ if (state.error.code === 'IMAGE_TOO_SMALL') {
37
+ return 'Le dimensioni minime del media sono {minWidth} × {minHeight}';
38
+ } else if (state.error.code === 'VIDEO_TOO_SHORT') {
39
+ const unit = state.error.metadata.minDuration === 1 ? 'secondo' : 'secondi';
40
+ return `La durata minima del video è di {minDuration} ${unit}`;
41
+ } else {
42
+ return 'Errore nel caricamento del media';
43
+ }
44
+ }
39
45
  if (state.task === 'blob-to-bitmap') return 'Preparazione del media in corso…';
40
46
  return 'Caricamento del media in corso…';
41
47
  },
@@ -0,0 +1 @@
1
+ export { default } from './ja_JP.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 './ja_JP.js';
@@ -0,0 +1,209 @@
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) =>
16
+ `${features.join(', ')} はこのブラウザではサポートされていません`,
17
+
18
+ // defaults
19
+ labelColor: '色',
20
+ labelWidth: '幅',
21
+ labelSize: 'サイズ',
22
+ labelOffset: 'オフセット',
23
+ labelAmount: '量',
24
+ labelInset: 'インセット',
25
+ labelRadius: '半径',
26
+
27
+ // controls
28
+ labelColorPalette: 'カラーパレット',
29
+
30
+ // sizes
31
+ labelSizeExtraSmall: '超小',
32
+ labelSizeSmall: '小',
33
+ labelSizeMediumSmall: '中小',
34
+ labelSizeMedium: '中',
35
+ labelSizeMediumLarge: '中大',
36
+ labelSizeLarge: '大',
37
+ labelSizeExtraLarge: '超大',
38
+
39
+ // default buttons
40
+ labelButtonCancel: 'キャンセル',
41
+ labelButtonUndo: '元に戻す',
42
+ labelButtonRedo: 'やり直し',
43
+ labelButtonRevert: '元に戻す',
44
+ labelButtonExport: '完了',
45
+
46
+ // zoom
47
+ labelZoomIn: 'ズームイン',
48
+ labelZoomOut: 'ズームアウト',
49
+ labelZoomFit: 'ビューに合わせる',
50
+ labelZoomActual: '実際のサイズ',
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: '閉じる',
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} &times; {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="2" y="2" width="20" height="20" rx="3"/></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
+
208
+ // deprecated
209
+ export const ShapeEditor = MarkupEditor;
@@ -0,0 +1 @@
1
+ export { default } from './ja_JP.js';
@@ -0,0 +1,55 @@
1
+ export default {
2
+ cropLabel: 'トリミング',
3
+
4
+ cropIcon:
5
+ '<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>',
6
+ 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"/>`,
7
+ cropIconButtonRotateLeft:
8
+ '<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>',
9
+ cropIconButtonRotateRight:
10
+ '<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>',
11
+ cropIconButtonFlipVertical:
12
+ '<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>',
13
+ cropIconButtonFlipHorizontal:
14
+ '<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>',
15
+
16
+ cropIconSelectPreset: (locale, aspectRatio) => {
17
+ const [a, b, c] = !aspectRatio
18
+ ? [0.2, 0.3, 0.4]
19
+ : [
20
+ aspectRatio < 1 ? 1 : 0.3,
21
+ aspectRatio === 1 ? 0.85 : 0.5,
22
+ aspectRatio > 1 ? 1 : 0.3,
23
+ ];
24
+ return `<g fill="currentColor">
25
+ <rect opacity="${a}" x="2" y="4" width="10" height="18" rx="1"/>
26
+ <rect opacity="${b}" x="4" y="8" width="14" height="14" rx="1"/>
27
+ <rect opacity="${c}" x="6" y="12" width="17" height="10" rx="1"/>
28
+ </g>`;
29
+ },
30
+
31
+ cropIconCropBoundary: (locale, isBoundToImage) => {
32
+ const [a, b, c, d] = isBoundToImage ? [0.3, 1, 0, 0] : [0, 0, 0.3, 1];
33
+ return `<g fill="currentColor">
34
+ <rect opacity="${a}" x="2" y="3" width="20" height="20" rx="1"/>
35
+ <rect opacity="${b}" x="7" y="8" width="10" height="10" rx="1"/>
36
+ <rect opacity="${c}" x="4" y="8" width="14" height="14" rx="1"/>
37
+ <rect opacity="${d}" x="12" y="4" width="10" height="10" rx="1"/>
38
+ </g>`;
39
+ },
40
+
41
+ cropLabelButtonRecenter: '再センタリング',
42
+ cropLabelButtonRotateLeft: '左に回転',
43
+ cropLabelButtonRotateRight: '右に回転',
44
+ cropLabelButtonFlipHorizontal: '水平反転',
45
+ cropLabelButtonFlipVertical: '垂直反転',
46
+
47
+ cropLabelSelectPreset: 'トリミングの形',
48
+
49
+ cropLabelCropBoundary: 'トリミングの境界',
50
+ cropLabelCropBoundaryEdge: '画像の端',
51
+ cropLabelCropBoundaryNone: 'なし',
52
+
53
+ cropLabelTabRotation: '回転',
54
+ cropLabelTabZoom: '拡大縮小',
55
+ };
@@ -0,0 +1 @@
1
+ export { default } from './ja_JP.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 './ja_JP.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 './ja_JP.js';
@@ -0,0 +1,19 @@
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
+
6
+ filterLabelChrome: 'クローム',
7
+ filterLabelFade: 'フェード',
8
+ filterLabelCold: '冷たい',
9
+ filterLabelWarm: '暖かい',
10
+ filterLabelPastel: 'パステル',
11
+ filterLabelMonoDefault: 'モノ',
12
+ filterLabelMonoNoir: 'ノワール',
13
+ filterLabelMonoWash: 'ウォッシュ',
14
+ filterLabelMonoStark: 'スターク',
15
+ filterLabelSepiaDefault: 'セピア',
16
+ filterLabelSepiaBlues: 'ブルース',
17
+ filterLabelSepiaRust: 'ラスト',
18
+ filterLabelSepiaColor: 'カラー',
19
+ };
@@ -0,0 +1 @@
1
+ export { default } from './ja_JP.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: '明るさ',
7
+ finetuneLabelContrast: 'コントラスト',
8
+ finetuneLabelSaturation: '彩度',
9
+ finetuneLabelExposure: '露出',
10
+ finetuneLabelTemperature: '色温度',
11
+ finetuneLabelGamma: 'ガンマ',
12
+ finetuneLabelClarity: 'クラリティ',
13
+ finetuneLabelVignette: 'ビネット',
14
+ };
@@ -0,0 +1 @@
1
+ export { default } from './ja_JP.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: 'マット',
9
+ frameLabelMatRound: 'ベベル',
10
+ frameLabelLineSingle: 'ライン',
11
+ frameLabelLineMultiple: 'ゼブラ',
12
+ frameLabelEdgeSeparate: 'インセット',
13
+ frameLabelEdgeOverlap: 'プラス',
14
+ frameLabelEdgeCross: 'ランバー',
15
+ frameLabelCornerHooks: 'フック',
16
+ frameLabelPolaroid: 'ポラロイド',
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 './ja_JP.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 './ja_JP.js';
@@ -0,0 +1,19 @@
1
+ export default {
2
+ resizeLabel: 'リサイズ',
3
+ resizeIcon:
4
+ '<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>',
5
+
6
+ resizeLabelFormCaption: '画像出力サイズ',
7
+
8
+ resizeLabelInputWidth: '幅',
9
+ resizeTitleInputWidth: '幅',
10
+ resizeLabelInputHeight: '高さ',
11
+ resizeTitleInputHeight: '高さ',
12
+
13
+ resizeTitleButtonMaintainAspectRatio: 'アスペクト比を維持',
14
+
15
+ resizeIconButtonMaintainAspectRatio: (active, activeFraction) =>
16
+ `<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 ${
17
+ (activeFraction - 1) * 3
18
+ })" 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>`,
19
+ };
@@ -0,0 +1 @@
1
+ export { default } from './ja_JP.js';