@widgetic/editor 4.0.10 → 4.1.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.
- package/README.md +242 -0
- package/dist/components/WidgetPreview.svelte +123 -86
- package/dist/components/WidgetPreview.svelte.d.ts +8 -0
- package/dist/components/color-select/ColorSelect.svelte +4 -4
- package/dist/components/editors/CompositionEditorApp.svelte +562 -0
- package/dist/components/editors/CompositionEditorApp.svelte.d.ts +95 -0
- package/dist/components/editors/EmbedEditor.svelte +33 -22
- package/dist/components/editors/EmbedEditor.svelte.d.ts +1 -1
- package/dist/components/editors/PropsEditor.svelte +267 -850
- package/dist/components/editors/PropsEditor.svelte.d.ts +10 -3
- package/dist/components/ic/AngleInputController.svelte +1 -1
- package/dist/components/ic/BrowserInputController.svelte +58 -31
- package/dist/components/ic/ColorPickerInputController.svelte +55 -21
- package/dist/components/ic/DateFieldInputController.svelte +34 -14
- package/dist/components/ic/DatePickerInputController.svelte +37 -21
- package/dist/components/ic/DropdownInputController.svelte +21 -9
- package/dist/components/ic/DropdownInputController.svelte.d.ts +1 -1
- package/dist/components/ic/FixedPositionInputController.svelte +12 -6
- package/dist/components/ic/FontInputController.svelte +100 -76
- package/dist/components/ic/InputControllerHeader.svelte +16 -9
- package/dist/components/ic/NumberControls.svelte +4 -4
- package/dist/components/ic/NumberInputController.svelte +6 -4
- package/dist/components/ic/PositionInputController.svelte +23 -15
- package/dist/components/ic/RangeCalendarInputController.svelte +36 -20
- package/dist/components/ic/RoundedCornersInputController.svelte +39 -26
- package/dist/components/ic/SliderInputController.svelte +7 -2
- package/dist/components/ic/SwitchInputController.svelte +12 -3
- package/dist/components/ic/TagsInputController.svelte +19 -4
- package/dist/components/ic/TextAreaInputController.svelte +79 -51
- package/dist/components/ic/TextAreaPreviewInputController.svelte +27 -72
- package/dist/components/ic/TextInputController.svelte +17 -1
- package/dist/components/ic/TimeInputController.svelte +11 -4
- package/dist/components/ic/VectorInputController.svelte +101 -70
- package/dist/components/ic/shared/ItemGrid.svelte +12 -4
- package/dist/components/ic/shared/RecentItemsSection.svelte +16 -11
- package/dist/components/ic/shared/RecentItemsSection.svelte.d.ts +1 -1
- package/dist/composition/compositionApi.d.ts +95 -0
- package/dist/composition/compositionApi.js +289 -0
- package/dist/composition/compositionEditorController.d.ts +263 -0
- package/dist/composition/compositionEditorController.js +746 -0
- package/dist/composition/compositionHelpers.d.ts +74 -0
- package/dist/composition/compositionHelpers.js +405 -0
- package/dist/i18n/index.d.ts +4 -0
- package/dist/i18n/index.js +4 -0
- package/dist/i18n/labels.d.ts +15 -0
- package/dist/i18n/labels.js +57 -0
- package/dist/i18n/language.d.ts +228 -0
- package/dist/i18n/language.js +34 -0
- package/dist/i18n/languageKit.d.ts +54 -0
- package/dist/i18n/languageKit.js +102 -0
- package/dist/i18n/messages.d.ts +241 -0
- package/dist/i18n/messages.js +253 -0
- package/dist/i18n/translate.d.ts +6 -0
- package/dist/i18n/translate.js +8 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +8 -0
- package/dist/mediaLibraryContext.d.ts +10 -0
- package/dist/mediaLibraryContext.js +30 -0
- package/dist/utils/FontManager.d.ts +21 -5
- package/dist/utils/FontManager.js +62 -67
- package/dist/utils/VectorManager.d.ts +0 -1
- package/dist/utils/VectorManager.js +10 -12
- package/dist/utils/dockPlacement.d.ts +12 -0
- package/dist/utils/dockPlacement.js +13 -0
- package/dist/utils/editorStorage.d.ts +23 -0
- package/dist/utils/editorStorage.js +95 -0
- package/dist/utils/fieldDirection.d.ts +13 -0
- package/dist/utils/fieldDirection.js +25 -0
- package/dist/utils/fontUtils.js +5 -3
- package/dist/utils/htmlSafety.d.ts +21 -0
- package/dist/utils/htmlSafety.js +38 -0
- package/dist/utils/itemReorder.d.ts +90 -0
- package/dist/utils/itemReorder.js +354 -0
- package/dist/utils/recentColors.js +4 -2
- package/dist/utils/richTextPreview.d.ts +38 -0
- package/dist/utils/richTextPreview.js +207 -0
- package/dist/utils/scrollActivity.d.ts +14 -0
- package/dist/utils/scrollActivity.js +63 -0
- package/dist/utils/shadowDom.d.ts +67 -0
- package/dist/utils/shadowDom.js +211 -0
- package/dist/utils/vectorUtils.js +5 -3
- package/dist/utils/visibilityCondition.d.ts +40 -0
- package/dist/utils/visibilityCondition.js +535 -0
- package/package.json +7 -6
|
@@ -13,12 +13,14 @@ import { onMount } from 'svelte';
|
|
|
13
13
|
import { toast, CopyableHeader } from '@widgetic/design-system/components';
|
|
14
14
|
import OK from '../icons/ok.svelte';
|
|
15
15
|
import PropsEditor from './PropsEditor.svelte';
|
|
16
|
+
import { useEditorLanguage } from '../../i18n/language';
|
|
16
17
|
|
|
17
18
|
/** Component configuration — existing public props and methods are preserved. */
|
|
18
19
|
let className = '';
|
|
19
20
|
export { className as class };
|
|
20
21
|
export let style = '';
|
|
21
|
-
|
|
22
|
+
/** The title of the code box. Without one, the editor's own word in the language of the page. */
|
|
23
|
+
export let embedHeaderText: string | undefined = undefined;
|
|
22
24
|
export let embedCode = '';
|
|
23
25
|
export let height = 720;
|
|
24
26
|
export let embedSchema: any;
|
|
@@ -33,6 +35,9 @@ export let saveDirty = false;
|
|
|
33
35
|
/** True while a save request is in flight. */
|
|
34
36
|
export let saveSaving = false;
|
|
35
37
|
|
|
38
|
+
// The words of the editor in the language of the page: the editor above this one chose it (see `provideEditorLanguage`).
|
|
39
|
+
const { t } = useEditorLanguage();
|
|
40
|
+
|
|
36
41
|
// Loading is currently local initialization; preserve the loading/error presentation.
|
|
37
42
|
let loading = true;
|
|
38
43
|
let wrapperElement = null;
|
|
@@ -52,9 +57,11 @@ function showToast(type: 'success' | 'error', message: string, options = {}) {
|
|
|
52
57
|
...options,
|
|
53
58
|
duration: 5000,
|
|
54
59
|
unstyled: true,
|
|
60
|
+
// The toast puts itself in place with its own classes below (fixed, at the end of the line), so the corner that the
|
|
61
|
+
// toaster knows is only a name it needs.
|
|
55
62
|
position: 'bottom-right',
|
|
56
63
|
classes: {
|
|
57
|
-
toast: 'embed-editor-toast flex items-center gap-3 fixed bottom-5
|
|
64
|
+
toast: 'embed-editor-toast flex items-center gap-3 fixed bottom-5 end-5',
|
|
58
65
|
title: 'embed-editor-toast-title',
|
|
59
66
|
description: 'embed-editor-toast-description',
|
|
60
67
|
closeButton: 'embed-editor-toast-close-button'
|
|
@@ -99,7 +106,7 @@ export function getPosition() {
|
|
|
99
106
|
{showSaveButton}
|
|
100
107
|
{saveDirty}
|
|
101
108
|
{saveSaving}
|
|
102
|
-
title=
|
|
109
|
+
title={$t('editor.embed.title')}
|
|
103
110
|
dragHandleClass="text-forest-green"
|
|
104
111
|
headerClass={!loading && embedCode ? 'bg-grey2' : ''}
|
|
105
112
|
showSchemaError={false}
|
|
@@ -108,28 +115,32 @@ export function getPosition() {
|
|
|
108
115
|
>
|
|
109
116
|
{#snippet headerContent()}
|
|
110
117
|
{#if loading}
|
|
111
|
-
<div class="embed-editor-loading subtext text-grey5 flex items-center justify-center h-full">
|
|
118
|
+
<div class="embed-editor-loading subtext text-grey5 flex items-center justify-center h-full">{$t('editor.embed.loading')}</div>
|
|
112
119
|
{:else if !embedCode}
|
|
113
120
|
<div class="embed-editor-error flex flex-col items-center justify-center h-full">
|
|
114
|
-
<div class="embed-editor-error-title text-error text-lg font-medium">
|
|
115
|
-
<div class="embed-editor-error-code text-grey5 subtext mt-1">
|
|
121
|
+
<div class="embed-editor-error-title text-error text-lg font-medium">{$t('editor.embed.noCode')}</div>
|
|
122
|
+
<div class="embed-editor-error-code text-grey5 subtext mt-1">{$t('editor.failure.errorCode', { code: 'EMBED_CODE_NOT_FOUND' })}</div>
|
|
116
123
|
</div>
|
|
117
124
|
{:else}
|
|
118
125
|
<!-- The only additional panel: code display, help link and clipboard control. -->
|
|
119
|
-
<section class="embed-editor-code-header header-hover-area relative shrink-0 bg-grey2" aria-label=
|
|
126
|
+
<section class="embed-editor-code-header header-hover-area relative shrink-0 bg-grey2" aria-label={$t('editor.embed.headerArea')}>
|
|
120
127
|
<CopyableHeader
|
|
121
|
-
headerText={embedHeaderText}
|
|
128
|
+
headerText={embedHeaderText ?? $t('editor.embed.codeHeader')}
|
|
122
129
|
content={embedCode}
|
|
123
|
-
helpText=
|
|
130
|
+
helpText={$t('editor.embed.readMore')}
|
|
124
131
|
helpUrl="/embed"
|
|
125
132
|
showStandaloneCopyButton={true}
|
|
126
|
-
standaloneCopyButtonText=
|
|
133
|
+
standaloneCopyButtonText={$t('editor.embed.copy')}
|
|
134
|
+
copiedTitle={$t('editor.embed.copied')}
|
|
135
|
+
copiedDescription={$t('editor.embed.copiedDone')}
|
|
136
|
+
copyFailedTitle={$t('editor.embed.copyFailed')}
|
|
137
|
+
copyFailedDescription={$t('editor.embed.copyFailedHint')}
|
|
127
138
|
showButtonText={false}
|
|
128
139
|
buttonClass="bg-grey2 text-grey7 hover:bg-white rounded-small focus:outline-none focus-visible:outline-none focus:shadow-none focus-visible:shadow-none"
|
|
129
|
-
style="border-
|
|
140
|
+
style="border-start-start-radius: var(--radius-large); border-start-end-radius: var(--radius-large);"
|
|
130
141
|
on:copy={() => {
|
|
131
|
-
showToast('success', '
|
|
132
|
-
description: '
|
|
142
|
+
showToast('success', $t('editor.embed.copied'), {
|
|
143
|
+
description: $t('editor.embed.copiedHint'),
|
|
133
144
|
icon: OK
|
|
134
145
|
});
|
|
135
146
|
}}
|
|
@@ -161,16 +172,16 @@ export function getPosition() {
|
|
|
161
172
|
border-radius: var(--radius-medium) !important;
|
|
162
173
|
}
|
|
163
174
|
:global(.embed-editor-container .accordion-item[data-position="first"]) {
|
|
164
|
-
border-
|
|
165
|
-
border-
|
|
166
|
-
border-
|
|
167
|
-
border-
|
|
175
|
+
border-start-start-radius: var(--radius-medium) !important;
|
|
176
|
+
border-start-end-radius: var(--radius-medium) !important;
|
|
177
|
+
border-end-start-radius: 0 !important;
|
|
178
|
+
border-end-end-radius: 0 !important;
|
|
168
179
|
}
|
|
169
180
|
:global(.embed-editor-container .accordion-item[data-position="last"]) {
|
|
170
|
-
border-
|
|
171
|
-
border-
|
|
172
|
-
border-
|
|
173
|
-
border-
|
|
181
|
+
border-start-start-radius: 0 !important;
|
|
182
|
+
border-start-end-radius: 0 !important;
|
|
183
|
+
border-end-start-radius: var(--radius-medium) !important;
|
|
184
|
+
border-end-end-radius: var(--radius-medium) !important;
|
|
174
185
|
margin-bottom: 0 !important;
|
|
175
186
|
}
|
|
176
187
|
:global(.embed-editor-container .accordion-trigger) {
|
|
@@ -224,7 +235,7 @@ export function getPosition() {
|
|
|
224
235
|
:global(.embed-editor-toast) {
|
|
225
236
|
position: fixed !important;
|
|
226
237
|
bottom: 20px !important;
|
|
227
|
-
|
|
238
|
+
inset-inline-end: 20px !important;
|
|
228
239
|
top: auto !important;
|
|
229
240
|
display: flex !important;
|
|
230
241
|
align-items: center !important;
|
|
@@ -14,7 +14,7 @@ interface $$__sveltets_2_IsomorphicComponent<Props extends Record<string, any> =
|
|
|
14
14
|
declare const EmbedEditor: $$__sveltets_2_IsomorphicComponent<{
|
|
15
15
|
/** Component configuration — existing public props and methods are preserved. */ class?: string;
|
|
16
16
|
style?: string;
|
|
17
|
-
embedHeaderText?: string;
|
|
17
|
+
/** The title of the code box. Without one, the editor's own word in the language of the page. */ embedHeaderText?: string | undefined;
|
|
18
18
|
embedCode?: string;
|
|
19
19
|
height?: number;
|
|
20
20
|
embedSchema: any;
|