@widgetic/design-system 0.5.15 → 0.5.17
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 +167 -0
- package/dist/components/CopyableHeader.svelte +25 -11
- package/dist/components/CopyableHeader.svelte.d.ts +4 -0
- package/dist/components/EmptyState.svelte +1 -1
- package/dist/components/PasswordInput.svelte +2 -2
- package/dist/components/WScrollArea.svelte +2 -2
- package/dist/components/ic/browser/BrowserInputController.svelte +2 -2
- package/dist/components/index.d.ts +1 -0
- package/dist/components/modals/ActionModal.svelte +3 -0
- package/dist/components/modals/ActionModal.svelte.d.ts +1 -0
- package/dist/components/modals/BaseModal.svelte +4 -2
- package/dist/components/modals/BaseModal.svelte.d.ts +1 -0
- package/dist/components/modals/NewItemDialog.svelte +48 -30
- package/dist/components/modals/NewItemDialog.svelte.d.ts +3 -0
- package/dist/components/modals/Portal.svelte +9 -1
- package/dist/components/modals/README.md +34 -1
- package/dist/components/modals/RenameDialog.svelte +29 -9
- package/dist/components/modals/RenameDialog.svelte.d.ts +3 -0
- package/dist/components/modals/messages.d.ts +39 -0
- package/dist/components/modals/messages.js +10 -0
- package/dist/components/navigation/Breadcrumbs.svelte +30 -17
- package/dist/components/navigation/Breadcrumbs.svelte.d.ts +4 -0
- package/dist/components/navigation/types.d.ts +8 -0
- package/dist/components/pdf/PDFViewer.svelte +17 -8
- package/dist/components/pdf/PDFViewer.svelte.d.ts +5 -0
- package/dist/components/search-input/SearchInput.svelte +3 -3
- package/dist/components/shad-editor/colorpicker.svelte +4 -1
- package/dist/components/shad-editor/custom/Extentions/ImageExtention.d.ts +20 -1
- package/dist/components/shad-editor/custom/Extentions/ImageExtention.js +4 -1
- package/dist/components/shad-editor/custom/code-extended.svelte +4 -2
- package/dist/components/shad-editor/custom/image-extended-component.svelte +54 -32
- package/dist/components/shad-editor/editor.css +5 -5
- package/dist/components/shad-editor/i18n/context.d.ts +6 -0
- package/dist/components/shad-editor/i18n/context.js +11 -0
- package/dist/components/shad-editor/i18n/index.d.ts +8 -0
- package/dist/components/shad-editor/i18n/index.js +11 -0
- package/dist/components/shad-editor/i18n/messages.d.ts +109 -0
- package/dist/components/shad-editor/i18n/messages.js +116 -0
- package/dist/components/shad-editor/icons/block-quote.svelte +3 -1
- package/dist/components/shad-editor/icons/bold.svelte +3 -1
- package/dist/components/shad-editor/icons/buttle-list.svelte +3 -1
- package/dist/components/shad-editor/icons/code.svelte +3 -1
- package/dist/components/shad-editor/icons/highlighter.svelte +5 -3
- package/dist/components/shad-editor/icons/image.svelte +7 -5
- package/dist/components/shad-editor/icons/italic.svelte +3 -1
- package/dist/components/shad-editor/icons/link.svelte +8 -6
- package/dist/components/shad-editor/icons/ordered-list.svelte +3 -1
- package/dist/components/shad-editor/icons/quickcolor.svelte +24 -22
- package/dist/components/shad-editor/icons/redo.svelte +3 -1
- package/dist/components/shad-editor/icons/search-replace.svelte +16 -14
- package/dist/components/shad-editor/icons/strikethrough.svelte +3 -1
- package/dist/components/shad-editor/icons/subscript.svelte +3 -1
- package/dist/components/shad-editor/icons/superscript.svelte +3 -1
- package/dist/components/shad-editor/icons/table.svelte +21 -19
- package/dist/components/shad-editor/icons/task-list.svelte +3 -1
- package/dist/components/shad-editor/icons/text.svelte +13 -11
- package/dist/components/shad-editor/icons/textalign.svelte +11 -9
- package/dist/components/shad-editor/icons/textcolor.svelte +5 -3
- package/dist/components/shad-editor/icons/underline.svelte +3 -1
- package/dist/components/shad-editor/icons/undo.svelte +3 -1
- package/dist/components/shad-editor/index.d.ts +1 -0
- package/dist/components/shad-editor/index.js +2 -0
- package/dist/components/shad-editor/shad-editor.svelte +32 -3
- package/dist/components/shad-editor/shad-editor.svelte.d.ts +12 -0
- package/dist/components/textDirection.d.ts +91 -0
- package/dist/components/textDirection.js +99 -0
- package/dist/components/toast/ToasterModal.svelte +49 -14
- package/dist/components/toast/ToasterModal.svelte.d.ts +9 -2
- package/dist/components/toast/toasterRoots.d.ts +23 -0
- package/dist/components/toast/toasterRoots.js +36 -0
- package/dist/components/ui/alert/index.d.ts +2 -2
- package/dist/components/ui/alert/index.js +1 -1
- package/dist/components/ui/breadcrumb/breadcrumb-separator.svelte +1 -1
- package/dist/components/ui/calendar/calendar-next-button.svelte +21 -4
- package/dist/components/ui/calendar/calendar-next-button.svelte.d.ts +9 -2
- package/dist/components/ui/calendar/calendar-prev-button.svelte +21 -4
- package/dist/components/ui/calendar/calendar-prev-button.svelte.d.ts +9 -2
- package/dist/components/ui/calendar/calendar.svelte +18 -6
- package/dist/components/ui/calendar/calendar.svelte.d.ts +6 -1
- package/dist/components/ui/command/command-input.svelte +1 -1
- package/dist/components/ui/command/command-shortcut.svelte +1 -1
- package/dist/components/ui/dialog/dialog-content.svelte +5 -2
- package/dist/components/ui/dialog/dialog-content.svelte.d.ts +1 -0
- package/dist/components/ui/dialog/dialog-header.svelte +1 -1
- package/dist/components/ui/drawer/drawer-header.svelte +1 -1
- package/dist/components/ui/dropdown-menu/dropdown-menu-checkbox-item.svelte +2 -2
- package/dist/components/ui/dropdown-menu/dropdown-menu-content.svelte +6 -0
- package/dist/components/ui/dropdown-menu/dropdown-menu-group-heading.svelte +1 -1
- package/dist/components/ui/dropdown-menu/dropdown-menu-item.svelte +1 -1
- package/dist/components/ui/dropdown-menu/dropdown-menu-label.svelte +1 -1
- package/dist/components/ui/dropdown-menu/dropdown-menu-radio-item.svelte +2 -2
- package/dist/components/ui/dropdown-menu/dropdown-menu-shortcut.svelte +1 -1
- package/dist/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte +7 -1
- package/dist/components/ui/dropdown-menu/dropdown-menu-sub-trigger.svelte +2 -2
- package/dist/components/ui/hover-card/hover-card-content.svelte +6 -0
- package/dist/components/ui/input-otp/input-otp-slot.svelte +1 -1
- package/dist/components/ui/popover/popover-content.svelte +6 -0
- package/dist/components/ui/progress/progress.svelte +2 -2
- package/dist/components/ui/range-calendar/range-calendar-cell.svelte +1 -1
- package/dist/components/ui/range-calendar/range-calendar-next-button.svelte +21 -4
- package/dist/components/ui/range-calendar/range-calendar-next-button.svelte.d.ts +9 -2
- package/dist/components/ui/range-calendar/range-calendar-prev-button.svelte +21 -4
- package/dist/components/ui/range-calendar/range-calendar-prev-button.svelte.d.ts +9 -2
- package/dist/components/ui/range-calendar/range-calendar.svelte +18 -6
- package/dist/components/ui/range-calendar/range-calendar.svelte.d.ts +7 -2
- package/dist/components/ui/scroll-area/scroll-area-scrollbar.svelte +1 -1
- package/dist/components/ui/scroll-area/scroll-area.svelte +6 -1
- package/dist/components/ui/select/select-content.svelte +6 -0
- package/dist/components/ui/select/select-group-heading.svelte +1 -1
- package/dist/components/ui/select/select-item.svelte +2 -2
- package/dist/components/ui/slider/slider.svelte +6 -0
- package/dist/components/ui/switch/switch.svelte +1 -1
- package/dist/components/ui/table/table-cell.svelte +1 -1
- package/dist/components/ui/table/table-head.svelte +1 -1
- package/dist/components/ui/tooltip/tooltip-content.svelte +6 -0
- package/dist/i18n/audit/catalogUsage.d.ts +36 -0
- package/dist/i18n/audit/catalogUsage.js +58 -0
- package/dist/i18n/audit/designSystemWords.d.ts +47 -0
- package/dist/i18n/audit/designSystemWords.js +137 -0
- package/dist/i18n/audit/hardCodedText.d.ts +40 -0
- package/dist/i18n/audit/hardCodedText.js +27 -0
- package/dist/i18n/audit/index.d.ts +19 -0
- package/dist/i18n/audit/index.js +19 -0
- package/dist/i18n/audit/messageCalls.d.ts +34 -0
- package/dist/i18n/audit/messageCalls.js +89 -0
- package/dist/i18n/audit/syntaxTree.d.ts +33 -0
- package/dist/i18n/audit/syntaxTree.js +90 -0
- package/dist/i18n/audit/visibleText.d.ts +57 -0
- package/dist/i18n/audit/visibleText.js +252 -0
- package/dist/i18n/createI18n.d.ts +63 -0
- package/dist/i18n/createI18n.js +72 -0
- package/dist/i18n/direction.d.ts +27 -0
- package/dist/i18n/direction.js +89 -0
- package/dist/i18n/index.d.ts +17 -0
- package/dist/i18n/index.js +16 -0
- package/dist/i18n/localeDate.d.ts +34 -0
- package/dist/i18n/localeDate.js +104 -0
- package/dist/i18n/splitMessages.d.ts +21 -0
- package/dist/i18n/splitMessages.js +33 -0
- package/dist/i18n/translator.d.ts +61 -0
- package/dist/i18n/translator.js +337 -0
- package/dist/rtl/audit/auditPhysicalPlacement.d.ts +36 -0
- package/dist/rtl/audit/auditPhysicalPlacement.js +58 -0
- package/dist/rtl/audit/index.d.ts +14 -0
- package/dist/rtl/audit/index.js +14 -0
- package/dist/rtl/audit/physicalPlacement.d.ts +64 -0
- package/dist/rtl/audit/physicalPlacement.js +444 -0
- package/dist/shad-editor/index.d.ts +1 -1
- package/dist/shad-editor/index.js +1 -1
- package/dist/styles/global.css +4 -4
- package/dist/utils/fillMessage.d.ts +8 -0
- package/dist/utils/fillMessage.js +10 -0
- package/dist/utils/itemName.d.ts +17 -0
- package/dist/utils/itemName.js +41 -0
- package/package.json +18 -1
|
@@ -12,8 +12,10 @@
|
|
|
12
12
|
import { Button } from '../../ui/button/index.js';
|
|
13
13
|
import * as Popover from '../../ui/popover/index.js';
|
|
14
14
|
import { Input } from '../../ui/input/index.js';
|
|
15
|
+
import { useI18n } from '../i18n/context.js';
|
|
15
16
|
|
|
16
17
|
let { editor }: ImageProps = $props();
|
|
18
|
+
const { t } = useI18n();
|
|
17
19
|
</script>
|
|
18
20
|
|
|
19
21
|
<Tooltip.Provider>
|
|
@@ -28,14 +30,14 @@
|
|
|
28
30
|
</Popover.Trigger>
|
|
29
31
|
<Popover.Content class="bg-popover shadow-lg *:my-2">
|
|
30
32
|
<div class="flex items-center justify-between">
|
|
31
|
-
<h1 class="text-xl font-bold">
|
|
33
|
+
<h1 class="text-xl font-bold">{$t('shadEditor.image.title')}</h1>
|
|
32
34
|
<Popover.Close>
|
|
33
35
|
<X class="size-4 text-muted-foreground" />
|
|
34
36
|
</Popover.Close>
|
|
35
37
|
</div>
|
|
36
|
-
<p>
|
|
38
|
+
<p>{$t('shadEditor.image.urlHint')}</p>
|
|
37
39
|
<Input
|
|
38
|
-
placeholder=
|
|
40
|
+
placeholder={$t('shadEditor.image.urlPlaceholder')}
|
|
39
41
|
type="url"
|
|
40
42
|
onchange={(e) => {
|
|
41
43
|
if (e !== null && e.target !== null) {
|
|
@@ -45,7 +47,7 @@
|
|
|
45
47
|
}}
|
|
46
48
|
class="w-full"
|
|
47
49
|
/>
|
|
48
|
-
<p>
|
|
50
|
+
<p>{$t('shadEditor.image.orPick')}</p>
|
|
49
51
|
<Input
|
|
50
52
|
id="picture"
|
|
51
53
|
type="file"
|
|
@@ -72,7 +74,7 @@
|
|
|
72
74
|
</Popover.Root>
|
|
73
75
|
</Tooltip.Trigger>
|
|
74
76
|
<Tooltip.Content>
|
|
75
|
-
<p>
|
|
77
|
+
<p>{$t('shadEditor.image.tooltip')}</p>
|
|
76
78
|
</Tooltip.Content>
|
|
77
79
|
</Tooltip.Root>
|
|
78
80
|
</Tooltip.Provider>
|
|
@@ -9,8 +9,10 @@
|
|
|
9
9
|
import * as Tooltip from '../../ui/tooltip/index.js';
|
|
10
10
|
import { Button } from '../../ui/button/index.js';
|
|
11
11
|
import { cn } from '../../../utils.js';
|
|
12
|
+
import { useI18n } from '../i18n/context.js';
|
|
12
13
|
|
|
13
14
|
let { editor }: ItalicProps = $props();
|
|
15
|
+
const { t } = useI18n();
|
|
14
16
|
</script>
|
|
15
17
|
|
|
16
18
|
<Tooltip.Provider>
|
|
@@ -25,7 +27,7 @@
|
|
|
25
27
|
</Button>
|
|
26
28
|
</Tooltip.Trigger>
|
|
27
29
|
<Tooltip.Content>
|
|
28
|
-
<p>
|
|
30
|
+
<p>{$t('shadEditor.toolbar.italic')}</p>
|
|
29
31
|
</Tooltip.Content>
|
|
30
32
|
</Tooltip.Root>
|
|
31
33
|
</Tooltip.Provider>
|
|
@@ -13,8 +13,10 @@
|
|
|
13
13
|
import { cn } from '../../../utils.js';
|
|
14
14
|
import * as Popover from '../../ui/popover/index.js';
|
|
15
15
|
import { Input } from '../../ui/input/index.js';
|
|
16
|
+
import { useI18n } from '../i18n/context.js';
|
|
16
17
|
|
|
17
18
|
let { editor }: LinkProps = $props();
|
|
19
|
+
const { t } = useI18n();
|
|
18
20
|
|
|
19
21
|
function setLink(url: string) {
|
|
20
22
|
if (url.trim() === '') {
|
|
@@ -41,14 +43,14 @@
|
|
|
41
43
|
</Popover.Trigger>
|
|
42
44
|
<Popover.Content class="bg-popover shadow-lg *:my-2">
|
|
43
45
|
<div class="flex items-center justify-between">
|
|
44
|
-
<h1 class="text-xl font-bold">
|
|
46
|
+
<h1 class="text-xl font-bold">{$t('shadEditor.link.title')}</h1>
|
|
45
47
|
<Popover.Close>
|
|
46
48
|
<X class="size-4 text-muted-foreground" />
|
|
47
49
|
</Popover.Close>
|
|
48
50
|
</div>
|
|
49
|
-
<p>
|
|
51
|
+
<p>{$t('shadEditor.link.hint')}</p>
|
|
50
52
|
<Input
|
|
51
|
-
placeholder=
|
|
53
|
+
placeholder={$t('shadEditor.link.placeholder')}
|
|
52
54
|
value={editor?.getAttributes('link').href}
|
|
53
55
|
onchange={(e) => {
|
|
54
56
|
//@ts-ignore
|
|
@@ -58,20 +60,20 @@
|
|
|
58
60
|
/>
|
|
59
61
|
<div class="flex items-center justify-end gap-2">
|
|
60
62
|
<Button size="sm" onclick={() => {}}>
|
|
61
|
-
<Popover.Close>
|
|
63
|
+
<Popover.Close>{$t('shadEditor.link.insert')}</Popover.Close>
|
|
62
64
|
</Button>
|
|
63
65
|
<Button
|
|
64
66
|
variant="destructive"
|
|
65
67
|
onclick={() => {
|
|
66
68
|
editor.chain().focus().extendMarkRange('link').unsetLink().run();
|
|
67
|
-
}}>
|
|
69
|
+
}}>{$t('shadEditor.link.remove')}</Button
|
|
68
70
|
>
|
|
69
71
|
</div>
|
|
70
72
|
</Popover.Content>
|
|
71
73
|
</Popover.Root>
|
|
72
74
|
</Tooltip.Trigger>
|
|
73
75
|
<Tooltip.Content>
|
|
74
|
-
<p>
|
|
76
|
+
<p>{$t('shadEditor.link.tooltip')}</p>
|
|
75
77
|
</Tooltip.Content>
|
|
76
78
|
</Tooltip.Root>
|
|
77
79
|
</Tooltip.Provider>
|
|
@@ -9,8 +9,10 @@
|
|
|
9
9
|
import * as Tooltip from '../../ui/tooltip/index.js';
|
|
10
10
|
import { Button } from '../../ui/button/index.js';
|
|
11
11
|
import { cn } from '../../../utils.js';
|
|
12
|
+
import { useI18n } from '../i18n/context.js';
|
|
12
13
|
|
|
13
14
|
let { editor }: OrderedListProps = $props();
|
|
15
|
+
const { t } = useI18n();
|
|
14
16
|
</script>
|
|
15
17
|
|
|
16
18
|
<Tooltip.Provider>
|
|
@@ -25,7 +27,7 @@
|
|
|
25
27
|
</Button>
|
|
26
28
|
</Tooltip.Trigger>
|
|
27
29
|
<Tooltip.Content>
|
|
28
|
-
<p>
|
|
30
|
+
<p>{$t('shadEditor.toolbar.orderedList')}</p>
|
|
29
31
|
</Tooltip.Content>
|
|
30
32
|
</Tooltip.Root>
|
|
31
33
|
</Tooltip.Provider>
|
|
@@ -9,20 +9,24 @@
|
|
|
9
9
|
import * as Tooltip from '../../ui/tooltip/index.js';
|
|
10
10
|
import { type Editor } from '@tiptap/core';
|
|
11
11
|
import { Check, ChevronDown } from 'lucide-svelte';
|
|
12
|
+
import { useI18n } from '../i18n/context.js';
|
|
13
|
+
import type { ShadEditorMessageKey } from '../i18n/messages.js';
|
|
12
14
|
|
|
13
15
|
let { editor }: QuickcolorProps = $props();
|
|
16
|
+
const { t } = useI18n();
|
|
14
17
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
{
|
|
18
|
-
{
|
|
19
|
-
{
|
|
20
|
-
{
|
|
21
|
-
{
|
|
22
|
-
{
|
|
23
|
-
{
|
|
24
|
-
{
|
|
25
|
-
{
|
|
18
|
+
// The names of the colours are words: a message key each, and the colour itself is the value.
|
|
19
|
+
const colors: { messageKey: ShadEditorMessageKey; value: string }[] = [
|
|
20
|
+
{ messageKey: 'shadEditor.colorName.default', value: '' },
|
|
21
|
+
{ messageKey: 'shadEditor.colorName.blue', value: '#0000FF' },
|
|
22
|
+
{ messageKey: 'shadEditor.colorName.brown', value: '#A52A2A' },
|
|
23
|
+
{ messageKey: 'shadEditor.colorName.green', value: '#008000' },
|
|
24
|
+
{ messageKey: 'shadEditor.colorName.grey', value: '#808080' },
|
|
25
|
+
{ messageKey: 'shadEditor.colorName.orange', value: '#FFA500' },
|
|
26
|
+
{ messageKey: 'shadEditor.colorName.pink', value: '#FFC0CB' },
|
|
27
|
+
{ messageKey: 'shadEditor.colorName.purple', value: '#800080' },
|
|
28
|
+
{ messageKey: 'shadEditor.colorName.red', value: '#FF0000' },
|
|
29
|
+
{ messageKey: 'shadEditor.colorName.yellow', value: '#FFFF00' }
|
|
26
30
|
];
|
|
27
31
|
|
|
28
32
|
const currentColor = $derived(editor.getAttributes('textStyle').color);
|
|
@@ -40,13 +44,12 @@
|
|
|
40
44
|
</DropdownMenu.Trigger>
|
|
41
45
|
<DropdownMenu.Content class="max-h-[25rem] w-40 overflow-auto">
|
|
42
46
|
<DropdownMenu.Group>
|
|
43
|
-
<span class="text-[0.75rem] font-medium text-muted-foreground">
|
|
47
|
+
<span class="text-[0.75rem] font-medium text-muted-foreground">{$t('shadEditor.quickColor.textColor')}</span>
|
|
44
48
|
{#each colors as color}
|
|
45
49
|
<DropdownMenu.Item
|
|
46
50
|
class="flex items-center"
|
|
47
51
|
onclick={() => {
|
|
48
|
-
if (color.value === ''
|
|
49
|
-
editor.chain().focus().unsetColor().run();
|
|
52
|
+
if (color.value === '') editor.chain().focus().unsetColor().run();
|
|
50
53
|
else
|
|
51
54
|
editor
|
|
52
55
|
.chain()
|
|
@@ -59,22 +62,21 @@
|
|
|
59
62
|
<span class="rounded border px-1 py-px font-medium" style={`color: ${color.value}`}
|
|
60
63
|
>A</span
|
|
61
64
|
>
|
|
62
|
-
<span>{color.
|
|
65
|
+
<span>{$t(color.messageKey)}</span>
|
|
63
66
|
{#if editor.isActive('textStyle', { color: color.value })}
|
|
64
|
-
<Check class="absolute
|
|
67
|
+
<Check class="absolute end-2 !size-3 text-muted-foreground" />
|
|
65
68
|
{/if}
|
|
66
69
|
</DropdownMenu.Item>
|
|
67
70
|
{/each}
|
|
68
71
|
</DropdownMenu.Group>
|
|
69
72
|
<DropdownMenu.Separator />
|
|
70
73
|
<DropdownMenu.Group>
|
|
71
|
-
<span class="text-[0.75rem] font-medium text-muted-foreground">
|
|
74
|
+
<span class="text-[0.75rem] font-medium text-muted-foreground">{$t('shadEditor.quickColor.backgroundColors')}</span>
|
|
72
75
|
{#each colors as color}
|
|
73
76
|
<DropdownMenu.Item
|
|
74
77
|
class="flex items-center"
|
|
75
78
|
onclick={() => {
|
|
76
|
-
if (color.value === ''
|
|
77
|
-
editor.chain().focus().unsetHighlight().run();
|
|
79
|
+
if (color.value === '') editor.chain().focus().unsetHighlight().run();
|
|
78
80
|
else editor.chain().focus().toggleHighlight({ color: color.value }).run();
|
|
79
81
|
}}
|
|
80
82
|
closeOnSelect={false}
|
|
@@ -83,9 +85,9 @@
|
|
|
83
85
|
class="rounded px-1 py-px font-medium"
|
|
84
86
|
style={`background-color: ${color.value};`}>A</span
|
|
85
87
|
>
|
|
86
|
-
<span>{color.
|
|
88
|
+
<span>{$t(color.messageKey)}</span>
|
|
87
89
|
{#if editor.isActive('highlight', { color: color.value })}
|
|
88
|
-
<Check class="absolute
|
|
90
|
+
<Check class="absolute end-2 !size-3 text-muted-foreground" />
|
|
89
91
|
{/if}
|
|
90
92
|
</DropdownMenu.Item>
|
|
91
93
|
{/each}
|
|
@@ -94,7 +96,7 @@
|
|
|
94
96
|
</DropdownMenu.Root>
|
|
95
97
|
</Tooltip.Trigger>
|
|
96
98
|
<Tooltip.Content>
|
|
97
|
-
<p>
|
|
99
|
+
<p>{$t('shadEditor.quickColor.tooltip')}</p>
|
|
98
100
|
</Tooltip.Content>
|
|
99
101
|
</Tooltip.Root>
|
|
100
102
|
</Tooltip.Provider>
|
|
@@ -8,8 +8,10 @@
|
|
|
8
8
|
import { type Editor } from '@tiptap/core';
|
|
9
9
|
import * as Tooltip from '../../ui/tooltip/index.js';
|
|
10
10
|
import { Button } from '../../ui/button/index.js';
|
|
11
|
+
import { useI18n } from '../i18n/context.js';
|
|
11
12
|
|
|
12
13
|
let { editor }: RedoProps = $props();
|
|
14
|
+
const { t } = useI18n();
|
|
13
15
|
</script>
|
|
14
16
|
|
|
15
17
|
<Tooltip.Provider>
|
|
@@ -25,7 +27,7 @@
|
|
|
25
27
|
</Button>
|
|
26
28
|
</Tooltip.Trigger>
|
|
27
29
|
<Tooltip.Content>
|
|
28
|
-
<p>
|
|
30
|
+
<p>{$t('shadEditor.toolbar.redo')}</p>
|
|
29
31
|
</Tooltip.Content>
|
|
30
32
|
</Tooltip.Root>
|
|
31
33
|
</Tooltip.Provider>
|
|
@@ -18,8 +18,10 @@
|
|
|
18
18
|
ReplaceAll,
|
|
19
19
|
ChevronDown
|
|
20
20
|
} from 'lucide-svelte';
|
|
21
|
+
import { useI18n } from '../i18n/context.js';
|
|
21
22
|
|
|
22
23
|
let { editor }: SearchReplaceProps = $props();
|
|
24
|
+
const { t } = useI18n();
|
|
23
25
|
|
|
24
26
|
let searchText = $state('');
|
|
25
27
|
let replaceText = $state('');
|
|
@@ -90,7 +92,7 @@
|
|
|
90
92
|
</Popover.Trigger>
|
|
91
93
|
<Popover.Content class="bg-popover shadow-lg *:my-2">
|
|
92
94
|
<Popover.Close
|
|
93
|
-
class="absolute
|
|
95
|
+
class="absolute end-2 top-0 text-muted-foreground"
|
|
94
96
|
onclick={() => {
|
|
95
97
|
clear();
|
|
96
98
|
updateSearchTerm(true);
|
|
@@ -100,29 +102,29 @@
|
|
|
100
102
|
</Popover.Close>
|
|
101
103
|
<div class="flex items-center justify-between">
|
|
102
104
|
<Input
|
|
103
|
-
placeholder=
|
|
105
|
+
placeholder={$t('shadEditor.search.searchPlaceholder')}
|
|
104
106
|
bind:value={searchText}
|
|
105
107
|
oninput={() => updateSearchTerm()}
|
|
106
|
-
class="
|
|
108
|
+
class="me-1 "
|
|
107
109
|
/>
|
|
108
|
-
<Button variant="ghost" class="
|
|
109
|
-
<ArrowLeft />
|
|
110
|
+
<Button variant="ghost" class="ms-1 size-8" onclick={previous}>
|
|
111
|
+
<ArrowLeft class="rtl:-scale-x-100" />
|
|
110
112
|
</Button>
|
|
111
|
-
<Button variant="ghost" class="
|
|
112
|
-
<ArrowRight />
|
|
113
|
+
<Button variant="ghost" class="ms-1 size-8" onclick={next}>
|
|
114
|
+
<ArrowRight class="rtl:-scale-x-100" />
|
|
113
115
|
</Button>
|
|
114
116
|
</div>
|
|
115
117
|
<div class="flex items-center justify-between">
|
|
116
118
|
<Input
|
|
117
|
-
placeholder=
|
|
119
|
+
placeholder={$t('shadEditor.search.replacePlaceholder')}
|
|
118
120
|
bind:value={replaceText}
|
|
119
121
|
oninput={() => updateSearchTerm()}
|
|
120
|
-
class="
|
|
122
|
+
class="me-1 "
|
|
121
123
|
/>
|
|
122
|
-
<Button variant="ghost" class="
|
|
124
|
+
<Button variant="ghost" class="ms-1 size-8" onclick={replace}>
|
|
123
125
|
<Replace />
|
|
124
126
|
</Button>
|
|
125
|
-
<Button variant="ghost" class="
|
|
127
|
+
<Button variant="ghost" class="ms-1 size-8" onclick={replaceAll}>
|
|
126
128
|
<ReplaceAll />
|
|
127
129
|
</Button>
|
|
128
130
|
</div>
|
|
@@ -135,17 +137,17 @@
|
|
|
135
137
|
bind:checked={caseSensitive}
|
|
136
138
|
onchange={() => updateSearchTerm()}
|
|
137
139
|
/>
|
|
138
|
-
<p>
|
|
140
|
+
<p>{$t('shadEditor.search.caseSensitive')}</p>
|
|
139
141
|
</div>
|
|
140
142
|
<div class="flex items-center gap-2">
|
|
141
|
-
{searchCount > 0 ? searchIndex + 1 : 0
|
|
143
|
+
{$t('shadEditor.search.position', { index: searchCount > 0 ? searchIndex + 1 : 0, count: searchCount ?? 0 })}
|
|
142
144
|
</div>
|
|
143
145
|
</div>
|
|
144
146
|
</Popover.Content>
|
|
145
147
|
</Popover.Root>
|
|
146
148
|
</Tooltip.Trigger>
|
|
147
149
|
<Tooltip.Content>
|
|
148
|
-
<p>
|
|
150
|
+
<p>{$t('shadEditor.search.tooltip')}</p>
|
|
149
151
|
</Tooltip.Content>
|
|
150
152
|
</Tooltip.Root>
|
|
151
153
|
</Tooltip.Provider>
|
|
@@ -9,8 +9,10 @@
|
|
|
9
9
|
import * as Tooltip from '../../ui/tooltip/index.js';
|
|
10
10
|
import { Button } from '../../ui/button/index.js';
|
|
11
11
|
import { cn } from '../../../utils.js';
|
|
12
|
+
import { useI18n } from '../i18n/context.js';
|
|
12
13
|
|
|
13
14
|
let { editor }: StrikethroughProps = $props();
|
|
15
|
+
const { t } = useI18n();
|
|
14
16
|
</script>
|
|
15
17
|
|
|
16
18
|
<Tooltip.Provider>
|
|
@@ -25,7 +27,7 @@
|
|
|
25
27
|
</Button>
|
|
26
28
|
</Tooltip.Trigger>
|
|
27
29
|
<Tooltip.Content>
|
|
28
|
-
<p>
|
|
30
|
+
<p>{$t('shadEditor.toolbar.strikethrough')}</p>
|
|
29
31
|
</Tooltip.Content>
|
|
30
32
|
</Tooltip.Root>
|
|
31
33
|
</Tooltip.Provider>
|
|
@@ -9,8 +9,10 @@
|
|
|
9
9
|
import * as Tooltip from '../../ui/tooltip/index.js';
|
|
10
10
|
import { Button } from '../../ui/button/index.js';
|
|
11
11
|
import { cn } from '../../../utils.js';
|
|
12
|
+
import { useI18n } from '../i18n/context.js';
|
|
12
13
|
|
|
13
14
|
let { editor }: SubscriptProps = $props();
|
|
15
|
+
const { t } = useI18n();
|
|
14
16
|
</script>
|
|
15
17
|
|
|
16
18
|
<Tooltip.Provider>
|
|
@@ -25,7 +27,7 @@
|
|
|
25
27
|
</Button>
|
|
26
28
|
</Tooltip.Trigger>
|
|
27
29
|
<Tooltip.Content>
|
|
28
|
-
<p>
|
|
30
|
+
<p>{$t('shadEditor.toolbar.subscript')}</p>
|
|
29
31
|
</Tooltip.Content>
|
|
30
32
|
</Tooltip.Root>
|
|
31
33
|
</Tooltip.Provider>
|
|
@@ -9,8 +9,10 @@
|
|
|
9
9
|
import * as Tooltip from '../../ui/tooltip/index.js';
|
|
10
10
|
import { Button } from '../../ui/button/index.js';
|
|
11
11
|
import { cn } from '../../../utils.js';
|
|
12
|
+
import { useI18n } from '../i18n/context.js';
|
|
12
13
|
|
|
13
14
|
let { editor }: SuperscriptProps = $props();
|
|
15
|
+
const { t } = useI18n();
|
|
14
16
|
</script>
|
|
15
17
|
|
|
16
18
|
<Tooltip.Provider>
|
|
@@ -25,7 +27,7 @@
|
|
|
25
27
|
</Button>
|
|
26
28
|
</Tooltip.Trigger>
|
|
27
29
|
<Tooltip.Content>
|
|
28
|
-
<p>
|
|
30
|
+
<p>{$t('shadEditor.toolbar.superscript')}</p>
|
|
29
31
|
</Tooltip.Content>
|
|
30
32
|
</Tooltip.Root>
|
|
31
33
|
</Tooltip.Provider>
|
|
@@ -9,8 +9,10 @@
|
|
|
9
9
|
import * as Tooltip from '../../ui/tooltip/index.js';
|
|
10
10
|
import { type Editor } from '@tiptap/core';
|
|
11
11
|
import { Table, ChevronDown } from 'lucide-svelte';
|
|
12
|
+
import { useI18n } from '../i18n/context.js';
|
|
12
13
|
|
|
13
14
|
let { editor }: TableProps = $props();
|
|
15
|
+
const { t } = useI18n();
|
|
14
16
|
</script>
|
|
15
17
|
|
|
16
18
|
<Tooltip.Provider>
|
|
@@ -28,75 +30,75 @@
|
|
|
28
30
|
onclick={() =>
|
|
29
31
|
editor.chain().focus().insertTable({ rows: 3, cols: 3, withHeaderRow: true }).run()}
|
|
30
32
|
>
|
|
31
|
-
<span>
|
|
33
|
+
<span>{$t('shadEditor.table.insert')}</span>
|
|
32
34
|
</DropdownMenu.Item>
|
|
33
35
|
<DropdownMenu.Sub>
|
|
34
36
|
<DropdownMenu.SubTrigger>
|
|
35
|
-
<span>
|
|
37
|
+
<span>{$t('shadEditor.table.header')}</span>
|
|
36
38
|
</DropdownMenu.SubTrigger>
|
|
37
39
|
<DropdownMenu.SubContent>
|
|
38
40
|
<DropdownMenu.Item onclick={() => editor.chain().focus().toggleHeaderColumn().run()}>
|
|
39
|
-
<span>
|
|
41
|
+
<span>{$t('shadEditor.table.toggleColumn')}</span>
|
|
40
42
|
</DropdownMenu.Item>
|
|
41
43
|
<DropdownMenu.Item onclick={() => editor.chain().focus().toggleHeaderRow().run()}>
|
|
42
|
-
<span>
|
|
44
|
+
<span>{$t('shadEditor.table.toggleRow')}</span>
|
|
43
45
|
</DropdownMenu.Item>
|
|
44
46
|
<DropdownMenu.Item onclick={() => editor.chain().focus().toggleHeaderCell().run()}>
|
|
45
|
-
<span>
|
|
47
|
+
<span>{$t('shadEditor.table.toggleCell')}</span>
|
|
46
48
|
</DropdownMenu.Item>
|
|
47
49
|
</DropdownMenu.SubContent>
|
|
48
50
|
</DropdownMenu.Sub>
|
|
49
51
|
<DropdownMenu.Sub>
|
|
50
52
|
<DropdownMenu.SubTrigger>
|
|
51
|
-
<span>
|
|
53
|
+
<span>{$t('shadEditor.table.cells')}</span>
|
|
52
54
|
</DropdownMenu.SubTrigger>
|
|
53
55
|
<DropdownMenu.SubContent>
|
|
54
56
|
<DropdownMenu.Item onclick={() => editor.chain().focus().mergeCells().run()}>
|
|
55
|
-
<span>
|
|
57
|
+
<span>{$t('shadEditor.table.merge')}</span>
|
|
56
58
|
</DropdownMenu.Item>
|
|
57
59
|
<DropdownMenu.Item onclick={() => editor.chain().focus().splitCell().run()}>
|
|
58
|
-
<span>
|
|
60
|
+
<span>{$t('shadEditor.table.split')}</span>
|
|
59
61
|
</DropdownMenu.Item>
|
|
60
62
|
<DropdownMenu.Item onclick={() => editor.chain().focus().mergeOrSplit().run()}>
|
|
61
|
-
<span>
|
|
63
|
+
<span>{$t('shadEditor.table.mergeOrSplit')}</span>
|
|
62
64
|
</DropdownMenu.Item>
|
|
63
65
|
</DropdownMenu.SubContent>
|
|
64
66
|
</DropdownMenu.Sub>
|
|
65
67
|
<DropdownMenu.Sub>
|
|
66
68
|
<DropdownMenu.SubTrigger>
|
|
67
|
-
<span>
|
|
69
|
+
<span>{$t('shadEditor.table.row')}</span>
|
|
68
70
|
</DropdownMenu.SubTrigger>
|
|
69
71
|
<DropdownMenu.SubContent>
|
|
70
72
|
<DropdownMenu.Item onclick={() => editor.chain().focus().addRowBefore().run()}>
|
|
71
|
-
<span>
|
|
73
|
+
<span>{$t('shadEditor.table.insertAbove')}</span>
|
|
72
74
|
</DropdownMenu.Item>
|
|
73
75
|
<DropdownMenu.Item onclick={() => editor.chain().focus().addRowAfter().run()}>
|
|
74
|
-
<span>
|
|
76
|
+
<span>{$t('shadEditor.table.insertBelow')}</span>
|
|
75
77
|
</DropdownMenu.Item>
|
|
76
78
|
<DropdownMenu.Item
|
|
77
79
|
onclick={() => editor.chain().focus().deleteRow().run()}
|
|
78
80
|
class="text-destructive hover:text-foreground data-highlighted:bg-destructive"
|
|
79
81
|
>
|
|
80
|
-
<span>
|
|
82
|
+
<span>{$t('shadEditor.table.deleteRow')}</span>
|
|
81
83
|
</DropdownMenu.Item>
|
|
82
84
|
</DropdownMenu.SubContent>
|
|
83
85
|
</DropdownMenu.Sub>
|
|
84
86
|
<DropdownMenu.Sub>
|
|
85
87
|
<DropdownMenu.SubTrigger>
|
|
86
|
-
<span>
|
|
88
|
+
<span>{$t('shadEditor.table.column')}</span>
|
|
87
89
|
</DropdownMenu.SubTrigger>
|
|
88
90
|
<DropdownMenu.SubContent>
|
|
89
91
|
<DropdownMenu.Item onclick={() => editor.chain().focus().addColumnBefore().run()}>
|
|
90
|
-
<span>
|
|
92
|
+
<span>{$t('shadEditor.table.insertBefore')}</span>
|
|
91
93
|
</DropdownMenu.Item>
|
|
92
94
|
<DropdownMenu.Item onclick={() => editor.chain().focus().addColumnAfter().run()}>
|
|
93
|
-
<span>
|
|
95
|
+
<span>{$t('shadEditor.table.insertAfter')}</span>
|
|
94
96
|
</DropdownMenu.Item>
|
|
95
97
|
<DropdownMenu.Item
|
|
96
98
|
onclick={() => editor.chain().focus().deleteColumn().run()}
|
|
97
99
|
class="text-destructive hover:text-foreground data-highlighted:bg-destructive"
|
|
98
100
|
>
|
|
99
|
-
<span>
|
|
101
|
+
<span>{$t('shadEditor.table.deleteColumn')}</span>
|
|
100
102
|
</DropdownMenu.Item>
|
|
101
103
|
</DropdownMenu.SubContent>
|
|
102
104
|
</DropdownMenu.Sub>
|
|
@@ -104,13 +106,13 @@
|
|
|
104
106
|
onclick={() => editor.chain().focus().deleteTable().run()}
|
|
105
107
|
class="text-destructive hover:text-foreground data-highlighted:bg-destructive"
|
|
106
108
|
>
|
|
107
|
-
<span>
|
|
109
|
+
<span>{$t('shadEditor.table.deleteTable')}</span>
|
|
108
110
|
</DropdownMenu.Item>
|
|
109
111
|
</DropdownMenu.Content>
|
|
110
112
|
</DropdownMenu.Root>
|
|
111
113
|
</Tooltip.Trigger>
|
|
112
114
|
<Tooltip.Content>
|
|
113
|
-
<p>
|
|
115
|
+
<p>{$t('shadEditor.table.tooltip')}</p>
|
|
114
116
|
</Tooltip.Content>
|
|
115
117
|
</Tooltip.Root>
|
|
116
118
|
</Tooltip.Provider>
|
|
@@ -9,8 +9,10 @@
|
|
|
9
9
|
import * as Tooltip from '../../ui/tooltip/index.js';
|
|
10
10
|
import { Button } from '../../ui/button/index.js';
|
|
11
11
|
import { cn } from '../../../utils.js';
|
|
12
|
+
import { useI18n } from '../i18n/context.js';
|
|
12
13
|
|
|
13
14
|
let { editor }: TaskListProps = $props();
|
|
15
|
+
const { t } = useI18n();
|
|
14
16
|
</script>
|
|
15
17
|
|
|
16
18
|
<Tooltip.Provider>
|
|
@@ -25,7 +27,7 @@
|
|
|
25
27
|
</Button>
|
|
26
28
|
</Tooltip.Trigger>
|
|
27
29
|
<Tooltip.Content>
|
|
28
|
-
<p>
|
|
30
|
+
<p>{$t('shadEditor.toolbar.taskList')}</p>
|
|
29
31
|
</Tooltip.Content>
|
|
30
32
|
</Tooltip.Root>
|
|
31
33
|
</Tooltip.Provider>
|
|
@@ -18,8 +18,10 @@
|
|
|
18
18
|
import * as Tooltip from '../../ui/tooltip/index.js';
|
|
19
19
|
import * as DropdownMenu from '../../ui/dropdown-menu/index.js';
|
|
20
20
|
import Button from '../../ui/button/button.svelte';
|
|
21
|
+
import { useI18n } from '../i18n/context.js';
|
|
21
22
|
|
|
22
23
|
let { editor }: TextProps = $props();
|
|
24
|
+
const { t } = useI18n();
|
|
23
25
|
</script>
|
|
24
26
|
|
|
25
27
|
<Tooltip.Provider>
|
|
@@ -49,52 +51,52 @@
|
|
|
49
51
|
onclick={() => editor.chain().focus().toggleHeading({ level: 1 }).run()}
|
|
50
52
|
closeOnSelect={false}
|
|
51
53
|
>
|
|
52
|
-
<Heading1 />
|
|
54
|
+
<Heading1 /> {$t('shadEditor.text.heading1')}
|
|
53
55
|
{#if editor.isActive('heading', { level: 1 })}
|
|
54
|
-
<Check class="absolute
|
|
56
|
+
<Check class="absolute end-2 !size-3 text-muted-foreground" />
|
|
55
57
|
{/if}
|
|
56
58
|
</DropdownMenu.Item>
|
|
57
59
|
<DropdownMenu.Item
|
|
58
60
|
onclick={() => editor.chain().focus().toggleHeading({ level: 2 }).run()}
|
|
59
61
|
closeOnSelect={false}
|
|
60
62
|
>
|
|
61
|
-
<Heading2 />
|
|
63
|
+
<Heading2 /> {$t('shadEditor.text.heading2')}
|
|
62
64
|
{#if editor.isActive('heading', { level: 2 })}
|
|
63
|
-
<Check class="absolute
|
|
65
|
+
<Check class="absolute end-2 !size-3 text-muted-foreground" />
|
|
64
66
|
{/if}
|
|
65
67
|
</DropdownMenu.Item>
|
|
66
68
|
<DropdownMenu.Item
|
|
67
69
|
onclick={() => editor.chain().focus().toggleHeading({ level: 3 }).run()}
|
|
68
70
|
closeOnSelect={false}
|
|
69
71
|
>
|
|
70
|
-
<Heading3 />
|
|
72
|
+
<Heading3 /> {$t('shadEditor.text.heading3')}
|
|
71
73
|
{#if editor.isActive('heading', { level: 3 })}
|
|
72
|
-
<Check class="absolute
|
|
74
|
+
<Check class="absolute end-2 !size-3 text-muted-foreground" />
|
|
73
75
|
{/if}
|
|
74
76
|
</DropdownMenu.Item>
|
|
75
77
|
<DropdownMenu.Item
|
|
76
78
|
onclick={() => editor.chain().focus().setParagraph().run()}
|
|
77
79
|
closeOnSelect={false}
|
|
78
80
|
>
|
|
79
|
-
<Pilcrow />
|
|
81
|
+
<Pilcrow /> {$t('shadEditor.text.paragraph')}
|
|
80
82
|
{#if editor.isActive('paragraph')}
|
|
81
|
-
<Check class="absolute
|
|
83
|
+
<Check class="absolute end-2 size-3! text-muted-foreground" />
|
|
82
84
|
{/if}
|
|
83
85
|
</DropdownMenu.Item>
|
|
84
86
|
<DropdownMenu.Item
|
|
85
87
|
onclick={() => editor.chain().focus().toggleCodeBlock().run()}
|
|
86
88
|
closeOnSelect={false}
|
|
87
89
|
>
|
|
88
|
-
<FileJson />
|
|
90
|
+
<FileJson /> {$t('shadEditor.text.codeBlock')}
|
|
89
91
|
{#if editor.isActive('codeBlock')}
|
|
90
|
-
<Check class="absolute
|
|
92
|
+
<Check class="absolute end-2 !size-3 text-muted-foreground" />
|
|
91
93
|
{/if}
|
|
92
94
|
</DropdownMenu.Item>
|
|
93
95
|
</DropdownMenu.Content>
|
|
94
96
|
</DropdownMenu.Root>
|
|
95
97
|
</Tooltip.Trigger>
|
|
96
98
|
<Tooltip.Content>
|
|
97
|
-
<p>
|
|
99
|
+
<p>{$t('shadEditor.text.tooltip')}</p>
|
|
98
100
|
</Tooltip.Content>
|
|
99
101
|
</Tooltip.Root>
|
|
100
102
|
</Tooltip.Provider>
|