entasis 0.13.1 → 0.13.2
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/dist/components/ScrollArea/scrollArea.svelte.d.ts +130 -0
- package/dist/generated/componentContract.d.ts +1 -1
- package/dist/generated/componentContract.js +8 -1
- package/dist/i18n/I18n.svelte +37 -5
- package/dist/i18n/I18n.svelte.d.ts +8 -2
- package/dist/i18n/i18n.mcp.d.ts +1 -1
- package/dist/i18n/i18n.mcp.js +1 -1
- package/dist/i18n/index.d.ts +7 -0
- package/dist/i18n/index.js +7 -0
- package/dist/i18n/localeCatalogs.d.ts +6 -0
- package/dist/i18n/localeCatalogs.js +28 -0
- package/dist/i18n/locales.d.ts +5 -1
- package/dist/i18n/locales.js +6 -2
- package/package.json +2 -2
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
export interface ScrollAreaOptions {
|
|
2
|
+
delay: number;
|
|
3
|
+
type: 'auto' | 'always' | 'scroll' | 'hover';
|
|
4
|
+
scrollOnEdges: boolean;
|
|
5
|
+
/**
|
|
6
|
+
* Px of content that may stay hidden past an edge before that edge counts as overflowing.
|
|
7
|
+
* Defaults to 1.
|
|
8
|
+
*/
|
|
9
|
+
overflowEdgeThreshold?: number;
|
|
10
|
+
/**
|
|
11
|
+
* Writing direction of the viewport. In `rtl` the horizontal offset runs from 0 down to a
|
|
12
|
+
* negative number, so every horizontal read and write is mirrored. Defaults to `ltr`.
|
|
13
|
+
*/
|
|
14
|
+
direction?: () => 'ltr' | 'rtl';
|
|
15
|
+
}
|
|
16
|
+
declare const ScrollArea_base: new (props: ScrollAreaOptions) => {} & ScrollAreaOptions;
|
|
17
|
+
export declare class ScrollArea extends ScrollArea_base {
|
|
18
|
+
viewportElement: HTMLElement | undefined;
|
|
19
|
+
contentElement: HTMLElement | undefined;
|
|
20
|
+
scrollbarXElement: HTMLElement | undefined;
|
|
21
|
+
scrollbarYElement: HTMLElement | undefined;
|
|
22
|
+
scrollY: number;
|
|
23
|
+
scrollX: number;
|
|
24
|
+
dragOffset: number;
|
|
25
|
+
viewportDimensions: {
|
|
26
|
+
width: number;
|
|
27
|
+
height: number;
|
|
28
|
+
};
|
|
29
|
+
contentDimensions: {
|
|
30
|
+
width: number;
|
|
31
|
+
height: number;
|
|
32
|
+
};
|
|
33
|
+
measureVersion: number;
|
|
34
|
+
maxScrollY: number;
|
|
35
|
+
scrollbarYEnabled: boolean;
|
|
36
|
+
maxScrollX: number;
|
|
37
|
+
scrollbarXEnabled: boolean;
|
|
38
|
+
visible: boolean;
|
|
39
|
+
visibleX: boolean;
|
|
40
|
+
rtl: boolean;
|
|
41
|
+
trackYThickness: number;
|
|
42
|
+
trackXThickness: number;
|
|
43
|
+
private edgeThreshold;
|
|
44
|
+
overflowYStart: number;
|
|
45
|
+
overflowYEnd: number;
|
|
46
|
+
overflowXStart: number;
|
|
47
|
+
overflowXEnd: number;
|
|
48
|
+
hasOverflowYStart: boolean;
|
|
49
|
+
hasOverflowYEnd: boolean;
|
|
50
|
+
hasOverflowXStart: boolean;
|
|
51
|
+
hasOverflowXEnd: boolean;
|
|
52
|
+
canScrollUp: boolean;
|
|
53
|
+
canScrollDown: boolean;
|
|
54
|
+
thumbRect: {
|
|
55
|
+
readonly current: DOMRect;
|
|
56
|
+
reference: (ref: HTMLElement) => (() => void) | undefined;
|
|
57
|
+
};
|
|
58
|
+
trackRect: {
|
|
59
|
+
readonly current: DOMRect;
|
|
60
|
+
reference: (ref: HTMLElement) => (() => void) | undefined;
|
|
61
|
+
};
|
|
62
|
+
trackRectX: {
|
|
63
|
+
readonly current: DOMRect;
|
|
64
|
+
reference: (ref: HTMLElement) => (() => void) | undefined;
|
|
65
|
+
};
|
|
66
|
+
private trackYLength;
|
|
67
|
+
private trackXLength;
|
|
68
|
+
/** Thumb length the content ratio asks for, before any overscroll shrinks it. */
|
|
69
|
+
thumbYBaseSize: number;
|
|
70
|
+
thumbXBaseSize: number;
|
|
71
|
+
overscrollY: number;
|
|
72
|
+
overscrollX: number;
|
|
73
|
+
thumbYSize: number;
|
|
74
|
+
thumbXSize: number;
|
|
75
|
+
private savedScrollSnapType;
|
|
76
|
+
private pauseScrollSnap;
|
|
77
|
+
private restoreScrollSnap;
|
|
78
|
+
isDraggingY: boolean;
|
|
79
|
+
dragY: import("svelte/attachments").Attachment<HTMLElement>;
|
|
80
|
+
isDraggingX: boolean;
|
|
81
|
+
dragX: import("svelte/attachments").Attachment<HTMLElement>;
|
|
82
|
+
overflowing: boolean;
|
|
83
|
+
hoover: {
|
|
84
|
+
reference: (ref: HTMLElement) => () => void;
|
|
85
|
+
destroy: () => void;
|
|
86
|
+
cancel: () => void;
|
|
87
|
+
readonly isHovered: boolean;
|
|
88
|
+
};
|
|
89
|
+
thumbYPosition: number;
|
|
90
|
+
/** Distance from the track's inline start to the thumb's inline start edge. */
|
|
91
|
+
thumbXPosition: number;
|
|
92
|
+
/** The horizontal thumb's `translateX` in px: mirrored in RTL, where the track fills from the right. */
|
|
93
|
+
thumbXTranslate: number;
|
|
94
|
+
isScrolling: boolean;
|
|
95
|
+
private scrollingTimer;
|
|
96
|
+
private clearScrollingTimer;
|
|
97
|
+
/** Horizontal scroll offset as distance from the inline start, whatever the direction. */
|
|
98
|
+
private readScrollX;
|
|
99
|
+
/** Scrolls horizontally to a distance from the inline start. */
|
|
100
|
+
private writeScrollX;
|
|
101
|
+
/** Re-resolves the writing direction; true when it flipped. */
|
|
102
|
+
private syncDirection;
|
|
103
|
+
private readScrollOffsets;
|
|
104
|
+
private handleScroll;
|
|
105
|
+
handleTrackClick: (event: MouseEvent) => void;
|
|
106
|
+
handleTrackClickX: (event: MouseEvent) => void;
|
|
107
|
+
private measureFrame;
|
|
108
|
+
private lastExtentY;
|
|
109
|
+
private lastExtentX;
|
|
110
|
+
/**
|
|
111
|
+
* Read the live boxes and publish them. Idempotent: state is only written when a number
|
|
112
|
+
* actually moved, so a chatty MutationObserver cannot start a re-render loop.
|
|
113
|
+
*/
|
|
114
|
+
measure: () => void;
|
|
115
|
+
/** Coalesce bursts of observer callbacks into one post-layout measurement. */
|
|
116
|
+
private scheduleMeasure;
|
|
117
|
+
private cancelScheduledMeasure;
|
|
118
|
+
viewportAttachment: (element: HTMLElement) => () => void;
|
|
119
|
+
contentAttachment: (element: HTMLElement) => () => void;
|
|
120
|
+
private forwardWheelToViewport;
|
|
121
|
+
private keepFocusOnPress;
|
|
122
|
+
trackAttachment: (element: HTMLElement) => () => void;
|
|
123
|
+
trackAttachmentX: (element: HTMLElement) => () => void;
|
|
124
|
+
private scrollAnimationFrame;
|
|
125
|
+
private edgeScrollSpeed;
|
|
126
|
+
get scrollOnEdgesAttachment(): ((element: HTMLElement) => () => void) | null;
|
|
127
|
+
private startEdgeScroll;
|
|
128
|
+
private stopEdgeScroll;
|
|
129
|
+
}
|
|
130
|
+
export {};
|
|
@@ -1830,7 +1830,7 @@ export declare const componentInventory: readonly [{
|
|
|
1830
1830
|
readonly id: "i18n";
|
|
1831
1831
|
readonly subpath: "entasis/i18n";
|
|
1832
1832
|
readonly sourceIndex: "src/lib/i18n/index.ts";
|
|
1833
|
-
readonly exportedSymbols: readonly ["I18n", "I18nInput", "LocaleCode", "LocaleMeta", "Messages", "en", "localeList", "locales", "setI18n", "useI18n"];
|
|
1833
|
+
readonly exportedSymbols: readonly ["I18n", "I18nInput", "LocaleCode", "LocaleMeta", "Messages", "ar", "de", "en", "es", "fr", "ja", "localeList", "locales", "pt", "setI18n", "useI18n", "zh"];
|
|
1834
1834
|
readonly docs: readonly [];
|
|
1835
1835
|
readonly capabilities: readonly ["svelte", "localization"];
|
|
1836
1836
|
readonly relatedComponents: readonly ["theme"];
|
|
@@ -4467,11 +4467,18 @@ export const componentInventory = [
|
|
|
4467
4467
|
'LocaleCode',
|
|
4468
4468
|
'LocaleMeta',
|
|
4469
4469
|
'Messages',
|
|
4470
|
+
'ar',
|
|
4471
|
+
'de',
|
|
4470
4472
|
'en',
|
|
4473
|
+
'es',
|
|
4474
|
+
'fr',
|
|
4475
|
+
'ja',
|
|
4471
4476
|
'localeList',
|
|
4472
4477
|
'locales',
|
|
4478
|
+
'pt',
|
|
4473
4479
|
'setI18n',
|
|
4474
|
-
'useI18n'
|
|
4480
|
+
'useI18n',
|
|
4481
|
+
'zh'
|
|
4475
4482
|
],
|
|
4476
4483
|
docs: [],
|
|
4477
4484
|
capabilities: ['svelte', 'localization'],
|
package/dist/i18n/I18n.svelte
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
<script lang="ts">
|
|
2
2
|
import type { Snippet } from 'svelte';
|
|
3
|
+
import { BROWSER, DEV } from 'esm-env';
|
|
3
4
|
import { setI18n, setI18nDirection } from './context.svelte.js';
|
|
4
|
-
import {
|
|
5
|
-
import type {
|
|
5
|
+
import { loadLocaleMessages, localeDirection } from './localeCatalogs.js';
|
|
6
|
+
import type { LocaleCode } from './locales.js';
|
|
7
|
+
import { en, type Messages } from './en.js';
|
|
6
8
|
|
|
7
9
|
let {
|
|
8
10
|
locale = $bindable('en'),
|
|
11
|
+
catalogs,
|
|
9
12
|
messages,
|
|
10
13
|
dir,
|
|
11
14
|
manageDocument = true,
|
|
@@ -13,6 +16,12 @@
|
|
|
13
16
|
}: {
|
|
14
17
|
/** Active locale, bindable so a language picker can drive it. */
|
|
15
18
|
locale?: LocaleCode;
|
|
19
|
+
/**
|
|
20
|
+
* Catalogs available without loading, by locale: `catalogs={{ fr }}` with `fr` imported from
|
|
21
|
+
* `entasis/i18n`. A locale missing here loads its catalog on demand (English shows until it
|
|
22
|
+
* arrives, and server rendering stays English), so pass the locales an app renders first.
|
|
23
|
+
*/
|
|
24
|
+
catalogs?: Partial<Record<LocaleCode, Messages>>;
|
|
16
25
|
/** Extra per-key overrides merged on top of the locale's messages. */
|
|
17
26
|
messages?: Partial<Messages>;
|
|
18
27
|
/** Force a text direction; defaults to the active locale's direction (rtl for Arabic). */
|
|
@@ -23,9 +32,32 @@
|
|
|
23
32
|
children?: Snippet;
|
|
24
33
|
} = $props();
|
|
25
34
|
|
|
35
|
+
let loaded = $state<Partial<Record<LocaleCode, Messages>>>({});
|
|
36
|
+
// While a switched-to locale loads, keep showing the previous catalog rather than English.
|
|
37
|
+
let shown: Messages = en;
|
|
38
|
+
const catalog = $derived.by(() => {
|
|
39
|
+
const next = locale === 'en' ? en : (catalogs?.[locale] ?? loaded[locale]);
|
|
40
|
+
if (next) shown = next;
|
|
41
|
+
return next ?? shown;
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
if (DEV && !BROWSER && locale !== 'en' && !catalogs?.[locale]) {
|
|
45
|
+
console.warn(
|
|
46
|
+
`entasis: <I18n locale="${locale}"> has no catalog for "${locale}" and renders English on the server. Pass catalogs={{ ... }} with the catalog imported from 'entasis/i18n'.`
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
$effect(() => {
|
|
51
|
+
const code = locale;
|
|
52
|
+
if (code === 'en' || catalogs?.[code] || loaded[code]) return;
|
|
53
|
+
loadLocaleMessages(code)?.then((catalog) => {
|
|
54
|
+
loaded[code] = catalog;
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
|
|
26
58
|
// Provide the merged catalog to all descendants. The getter keeps them reactive to `locale`.
|
|
27
|
-
setI18n(() => ({ ...
|
|
28
|
-
setI18nDirection(() => dir ??
|
|
59
|
+
setI18n(() => ({ ...catalog, ...messages }));
|
|
60
|
+
setI18nDirection(() => dir ?? localeDirection(locale));
|
|
29
61
|
|
|
30
62
|
// Client-only: mirror direction + language onto the document element.
|
|
31
63
|
// Restore the prior values on unmount / when manageDocument turns off, so a page-scoped
|
|
@@ -35,7 +67,7 @@
|
|
|
35
67
|
const root = document.documentElement;
|
|
36
68
|
const prevDir = root.dir;
|
|
37
69
|
const prevLang = root.lang;
|
|
38
|
-
root.dir = dir ??
|
|
70
|
+
root.dir = dir ?? localeDirection(locale);
|
|
39
71
|
root.lang = locale;
|
|
40
72
|
return () => {
|
|
41
73
|
root.dir = prevDir;
|
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
import type { Snippet } from 'svelte';
|
|
2
|
-
import {
|
|
3
|
-
import type
|
|
2
|
+
import type { LocaleCode } from './locales.js';
|
|
3
|
+
import { type Messages } from './en.js';
|
|
4
4
|
type $$ComponentProps = {
|
|
5
5
|
/** Active locale, bindable so a language picker can drive it. */
|
|
6
6
|
locale?: LocaleCode;
|
|
7
|
+
/**
|
|
8
|
+
* Catalogs available without loading, by locale: `catalogs={{ fr }}` with `fr` imported from
|
|
9
|
+
* `entasis/i18n`. A locale missing here loads its catalog on demand (English shows until it
|
|
10
|
+
* arrives, and server rendering stays English), so pass the locales an app renders first.
|
|
11
|
+
*/
|
|
12
|
+
catalogs?: Partial<Record<LocaleCode, Messages>>;
|
|
7
13
|
/** Extra per-key overrides merged on top of the locale's messages. */
|
|
8
14
|
messages?: Partial<Messages>;
|
|
9
15
|
/** Force a text direction; defaults to the active locale's direction (rtl for Arabic). */
|
package/dist/i18n/i18n.mcp.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const i18nDescription = "\n# Internationalization\n\nImport from `entasis/i18n`.\n\nI18n provides locale messages to child components. setI18n and useI18n set and read the component context. en is the English message set; Messages and I18nInput describe translation inputs. locales and localeList expose the supported locale inventory with LocaleCode and LocaleMeta types.\n";
|
|
1
|
+
export declare const i18nDescription = "\n# Internationalization\n\nImport from `entasis/i18n`.\n\nI18n provides locale messages to child components. setI18n and useI18n set and read the component context. en is the English message set; Messages and I18nInput describe translation inputs. es, fr, de, ja, zh, pt and ar are the other catalogs, exported by name so an app bundles only the ones it imports: `<I18n locale=\"fr\" catalogs={{ fr }}>`. A locale missing from catalogs loads its catalog on demand and renders English until then, including on the server. locales and localeList expose the supported locale inventory with LocaleCode and LocaleMeta types; they import every catalog, so keep them for language pickers.\n";
|
package/dist/i18n/i18n.mcp.js
CHANGED
|
@@ -3,5 +3,5 @@ export const i18nDescription = `
|
|
|
3
3
|
|
|
4
4
|
Import from \`entasis/i18n\`.
|
|
5
5
|
|
|
6
|
-
I18n provides locale messages to child components. setI18n and useI18n set and read the component context. en is the English message set; Messages and I18nInput describe translation inputs. locales and localeList expose the supported locale inventory with LocaleCode and LocaleMeta types.
|
|
6
|
+
I18n provides locale messages to child components. setI18n and useI18n set and read the component context. en is the English message set; Messages and I18nInput describe translation inputs. es, fr, de, ja, zh, pt and ar are the other catalogs, exported by name so an app bundles only the ones it imports: \`<I18n locale="fr" catalogs={{ fr }}>\`. A locale missing from catalogs loads its catalog on demand and renders English until then, including on the server. locales and localeList expose the supported locale inventory with LocaleCode and LocaleMeta types; they import every catalog, so keep them for language pickers.
|
|
7
7
|
`;
|
package/dist/i18n/index.d.ts
CHANGED
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
export { default as I18n } from './I18n.svelte';
|
|
2
2
|
export { en, type Messages } from './en.js';
|
|
3
|
+
export { es } from './es.js';
|
|
4
|
+
export { fr } from './fr.js';
|
|
5
|
+
export { de } from './de.js';
|
|
6
|
+
export { ja } from './ja.js';
|
|
7
|
+
export { zh } from './zh.js';
|
|
8
|
+
export { pt } from './pt.js';
|
|
9
|
+
export { ar } from './ar.js';
|
|
3
10
|
export { setI18n, useI18n, type I18nInput } from './context.svelte.js';
|
|
4
11
|
export { locales, localeList, type LocaleCode, type LocaleMeta } from './locales.js';
|
package/dist/i18n/index.js
CHANGED
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
export { default as I18n } from './I18n.svelte';
|
|
2
2
|
export { en } from './en.js';
|
|
3
|
+
export { es } from './es.js';
|
|
4
|
+
export { fr } from './fr.js';
|
|
5
|
+
export { de } from './de.js';
|
|
6
|
+
export { ja } from './ja.js';
|
|
7
|
+
export { zh } from './zh.js';
|
|
8
|
+
export { pt } from './pt.js';
|
|
9
|
+
export { ar } from './ar.js';
|
|
3
10
|
export { setI18n, useI18n } from './context.svelte.js';
|
|
4
11
|
export { locales, localeList } from './locales.js';
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Messages } from './en.js';
|
|
2
|
+
import type { LocaleCode } from './locales.js';
|
|
3
|
+
/** Load a shipped locale's catalog on demand. Repeated calls share one request. */
|
|
4
|
+
export declare const loadLocaleMessages: (code: LocaleCode) => Promise<Messages> | undefined;
|
|
5
|
+
/** Text direction of a shipped locale, without importing its catalog. */
|
|
6
|
+
export declare const localeDirection: (code: LocaleCode) => "ltr" | "rtl";
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One dynamic import per locale, so a bundler emits each catalog as its own chunk and an app
|
|
3
|
+
* only downloads the locales it renders. English is the built-in default and never loads.
|
|
4
|
+
*/
|
|
5
|
+
const loaders = {
|
|
6
|
+
es: () => import('./es.js').then((m) => m.es),
|
|
7
|
+
fr: () => import('./fr.js').then((m) => m.fr),
|
|
8
|
+
de: () => import('./de.js').then((m) => m.de),
|
|
9
|
+
ja: () => import('./ja.js').then((m) => m.ja),
|
|
10
|
+
'zh-CN': () => import('./zh.js').then((m) => m.zh),
|
|
11
|
+
'pt-BR': () => import('./pt.js').then((m) => m.pt),
|
|
12
|
+
ar: () => import('./ar.js').then((m) => m.ar)
|
|
13
|
+
};
|
|
14
|
+
const pending = new Map();
|
|
15
|
+
/** Load a shipped locale's catalog on demand. Repeated calls share one request. */
|
|
16
|
+
export const loadLocaleMessages = (code) => {
|
|
17
|
+
if (code === 'en')
|
|
18
|
+
return undefined;
|
|
19
|
+
let request = pending.get(code);
|
|
20
|
+
if (!request) {
|
|
21
|
+
request = loaders[code]();
|
|
22
|
+
pending.set(code, request);
|
|
23
|
+
request.catch(() => pending.delete(code));
|
|
24
|
+
}
|
|
25
|
+
return request;
|
|
26
|
+
};
|
|
27
|
+
/** Text direction of a shipped locale, without importing its catalog. */
|
|
28
|
+
export const localeDirection = (code) => (code === 'ar' ? 'rtl' : 'ltr');
|
package/dist/i18n/locales.d.ts
CHANGED
|
@@ -8,7 +8,11 @@ export type LocaleMeta = {
|
|
|
8
8
|
/** The message catalog for this locale. */
|
|
9
9
|
messages: Messages;
|
|
10
10
|
};
|
|
11
|
-
/**
|
|
11
|
+
/**
|
|
12
|
+
* Every shipped locale with its catalog, for a language picker. Importing it bundles all eight
|
|
13
|
+
* catalogs: an app with a fixed locale imports that catalog by name instead (`import { fr } from
|
|
14
|
+
* 'entasis/i18n'`) and passes it to `<I18n catalogs={{ fr }}>` or `setI18n`.
|
|
15
|
+
*/
|
|
12
16
|
export declare const locales: Record<LocaleCode, LocaleMeta>;
|
|
13
17
|
export declare const localeList: {
|
|
14
18
|
/** Native language name, for a language picker. */
|
package/dist/i18n/locales.js
CHANGED
|
@@ -6,7 +6,11 @@ import { ja } from './ja.js';
|
|
|
6
6
|
import { zh } from './zh.js';
|
|
7
7
|
import { pt } from './pt.js';
|
|
8
8
|
import { ar } from './ar.js';
|
|
9
|
-
/**
|
|
9
|
+
/**
|
|
10
|
+
* Every shipped locale with its catalog, for a language picker. Importing it bundles all eight
|
|
11
|
+
* catalogs: an app with a fixed locale imports that catalog by name instead (`import { fr } from
|
|
12
|
+
* 'entasis/i18n'`) and passes it to `<I18n catalogs={{ fr }}>` or `setI18n`.
|
|
13
|
+
*/
|
|
10
14
|
export const locales = {
|
|
11
15
|
en: { name: 'English', dir: 'ltr', messages: en },
|
|
12
16
|
es: { name: 'Español', dir: 'ltr', messages: es },
|
|
@@ -17,7 +21,7 @@ export const locales = {
|
|
|
17
21
|
'pt-BR': { name: 'Português (Brasil)', dir: 'ltr', messages: pt },
|
|
18
22
|
ar: { name: 'العربية', dir: 'rtl', messages: ar }
|
|
19
23
|
};
|
|
20
|
-
export const localeList = Object.entries(locales).map(([code, meta]) => ({
|
|
24
|
+
export const localeList = /* @__PURE__ */ Object.entries(locales).map(([code, meta]) => ({
|
|
21
25
|
code: code,
|
|
22
26
|
...meta
|
|
23
27
|
}));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "entasis",
|
|
3
|
-
"version": "0.13.
|
|
3
|
+
"version": "0.13.2",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"dev": "vite dev",
|
|
@@ -150,7 +150,7 @@
|
|
|
150
150
|
"lightgallery": "^3.0.0",
|
|
151
151
|
"melt": "^0.44.0",
|
|
152
152
|
"runed": "^0.37.1",
|
|
153
|
-
"svelte-streamdown": "^
|
|
153
|
+
"svelte-streamdown": "^5.0.0",
|
|
154
154
|
"svelte-themes": "^2.0.10",
|
|
155
155
|
"valibot": "^1.5.0"
|
|
156
156
|
},
|