svelora 3.0.0 → 3.0.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.
Files changed (109) hide show
  1. package/dist/Accordion/Accordion.svelte +66 -97
  2. package/dist/Alert/Alert.svelte +39 -64
  3. package/dist/Alert/Alert.svelte.d.ts +1 -1
  4. package/dist/Avatar/Avatar.svelte +35 -75
  5. package/dist/AvatarGroup/AvatarGroup.svelte +38 -55
  6. package/dist/Badge/Badge.svelte +28 -50
  7. package/dist/Banner/Banner.svelte +46 -41
  8. package/dist/Banner/Banner.svelte.d.ts +1 -1
  9. package/dist/Breadcrumb/Breadcrumb.svelte +32 -26
  10. package/dist/Button/Button.svelte +70 -138
  11. package/dist/Calendar/Calendar.svelte +94 -157
  12. package/dist/Calendar/Calendar.svelte.d.ts +1 -1
  13. package/dist/Card/Card.svelte +18 -31
  14. package/dist/Carousel/Carousel.svelte +118 -173
  15. package/dist/Checkbox/Checkbox.svelte +52 -97
  16. package/dist/CheckboxGroup/CheckboxGroup.svelte +62 -107
  17. package/dist/CheckboxGroup/CheckboxGroup.svelte.d.ts +1 -1
  18. package/dist/Chip/Chip.svelte +22 -34
  19. package/dist/CodeBlock/CodeBlock.svelte +42 -59
  20. package/dist/Collapsible/Collapsible.svelte +22 -38
  21. package/dist/Collapsible/Collapsible.svelte.d.ts +1 -1
  22. package/dist/Collapsible/CollapsibleTestWrapper.svelte +2 -5
  23. package/dist/Collapsible/CollapsibleTestWrapper.svelte.d.ts +1 -1
  24. package/dist/Command/Command.svelte +40 -77
  25. package/dist/Command/Command.svelte.d.ts +1 -1
  26. package/dist/Command/CommandTestWrapper.svelte +2 -10
  27. package/dist/Command/CommandTestWrapper.svelte.d.ts +1 -1
  28. package/dist/Container/Container.svelte +11 -14
  29. package/dist/ContextMenu/ContextMenu.svelte +51 -114
  30. package/dist/ContextMenu/ContextMenu.svelte.d.ts +1 -1
  31. package/dist/Drawer/Drawer.svelte +72 -110
  32. package/dist/Drawer/DrawerTriggerTestWrapper.svelte +1 -2
  33. package/dist/DropdownMenu/DropdownMenu.svelte +63 -124
  34. package/dist/DropdownMenu/DropdownMenu.svelte.d.ts +1 -1
  35. package/dist/DropdownMenu/DropdownMenuTriggerTestWrapper.svelte +2 -5
  36. package/dist/Editor/Editor.svelte +441 -576
  37. package/dist/Editor/Editor.svelte.d.ts +1 -1
  38. package/dist/Editor/EditorUrlPrompt.svelte +40 -53
  39. package/dist/Editor/SlashPopup.svelte +12 -24
  40. package/dist/Empty/Empty.svelte +32 -63
  41. package/dist/FieldGroup/FieldGroup.svelte +23 -38
  42. package/dist/FileUpload/FileUpload.svelte +242 -320
  43. package/dist/FileUpload/FileUpload.svelte.d.ts +1 -1
  44. package/dist/Fonts/Fonts.svelte +15 -37
  45. package/dist/Form/Form.svelte +112 -170
  46. package/dist/FormField/FormField.svelte +102 -135
  47. package/dist/Icon/Icon.svelte +7 -32
  48. package/dist/Input/Input.svelte +71 -141
  49. package/dist/Input/Input.svelte.d.ts +2 -2
  50. package/dist/Kbd/Kbd.svelte +18 -34
  51. package/dist/Link/Link.svelte +129 -196
  52. package/dist/LocaleButton/LocaleButton.svelte +165 -0
  53. package/dist/LocaleButton/LocaleButton.svelte.d.ts +5 -0
  54. package/dist/LocaleButton/index.d.ts +2 -0
  55. package/dist/LocaleButton/index.js +1 -0
  56. package/dist/LocaleButton/locale-button.types.d.ts +182 -0
  57. package/dist/LocaleButton/locale-button.types.js +1 -0
  58. package/dist/LocaleButton/locale-button.variants.d.ts +61 -0
  59. package/dist/LocaleButton/locale-button.variants.js +34 -0
  60. package/dist/Modal/Modal.svelte +52 -106
  61. package/dist/Modal/ModalTriggerTestWrapper.svelte +1 -2
  62. package/dist/Pagination/Pagination.svelte +48 -92
  63. package/dist/Pagination/pagination.variants.d.ts +1 -1
  64. package/dist/PinInput/PinInput.svelte +57 -111
  65. package/dist/PinInput/PinInput.svelte.d.ts +1 -1
  66. package/dist/Popover/Popover.svelte +28 -61
  67. package/dist/Popover/Popover.svelte.d.ts +1 -1
  68. package/dist/Progress/Progress.svelte +75 -94
  69. package/dist/RadioGroup/RadioGroup.svelte +54 -99
  70. package/dist/RadioGroup/RadioGroup.svelte.d.ts +1 -1
  71. package/dist/Select/Select.svelte +112 -269
  72. package/dist/Select/Select.svelte.d.ts +1 -1
  73. package/dist/SelectMenu/SelectMenu.svelte +211 -409
  74. package/dist/SelectMenu/SelectMenu.svelte.d.ts +1 -1
  75. package/dist/SelectMenu/SelectMenuFormFieldTestWrapper.svelte +3 -6
  76. package/dist/Separator/Separator.svelte +29 -44
  77. package/dist/Skeleton/Skeleton.svelte +11 -23
  78. package/dist/Slideover/Slideover.svelte +52 -106
  79. package/dist/Slideover/SlideoverTriggerTestWrapper.svelte +1 -2
  80. package/dist/Slider/Slider.svelte +48 -84
  81. package/dist/Slider/Slider.svelte.d.ts +1 -1
  82. package/dist/Stepper/Stepper.svelte +139 -132
  83. package/dist/Stepper/Stepper.svelte.d.ts +1 -1
  84. package/dist/Switch/Switch.svelte +62 -98
  85. package/dist/Table/Table.svelte +232 -283
  86. package/dist/Table/table.variants.d.ts +1 -1
  87. package/dist/Tabs/Tabs.svelte +96 -129
  88. package/dist/Tabs/Tabs.svelte.d.ts +1 -1
  89. package/dist/Textarea/Textarea.svelte +90 -173
  90. package/dist/Textarea/Textarea.svelte.d.ts +1 -1
  91. package/dist/ThemeModeButton/ThemeModeButton.svelte +16 -38
  92. package/dist/Timeline/Timeline.svelte +75 -54
  93. package/dist/Toast/Toaster.svelte +8 -25
  94. package/dist/Tooltip/Tooltip.svelte +34 -66
  95. package/dist/Tooltip/Tooltip.svelte.d.ts +1 -1
  96. package/dist/Tooltip/TooltipTestWrapper.svelte +2 -5
  97. package/dist/User/User.svelte +33 -49
  98. package/dist/docs/navigation.d.ts +1 -1
  99. package/dist/docs/navigation.js +8 -1
  100. package/dist/hooks/HookContextProbe.svelte +2 -4
  101. package/dist/hooks/HookContextProvider.svelte +8 -6
  102. package/dist/hooks/HookEmitProbe.svelte +8 -11
  103. package/dist/i18n.d.ts +2 -0
  104. package/dist/i18n.js +19 -0
  105. package/dist/index.d.ts +1 -0
  106. package/dist/index.js +1 -0
  107. package/dist/mcp/svelora-docs.data.json +4 -2
  108. package/dist/theme.css +1 -1
  109. package/package.json +16 -8
@@ -1,6 +1,6 @@
1
1
  import type { EditorProps } from './editor.types.js';
2
2
  export type Props = EditorProps;
3
3
  import { Editor } from '@tiptap/core';
4
- declare const Editor: import("svelte").Component<EditorProps, {}, "value" | "ref" | "api">;
4
+ declare const Editor: import("svelte").Component<EditorProps, {}, "ref" | "value" | "api">;
5
5
  type Editor = ReturnType<typeof Editor>;
6
6
  export default Editor;
@@ -1,62 +1,49 @@
1
- <script lang="ts">import { untrack } from 'svelte';
2
- import Button from '../Button/Button.svelte';
3
- import Form from '../Form/Form.svelte';
4
- import type { FormApi, FormError, FormSubmitEvent } from '../Form/form.types.js';
5
- import FormField from '../FormField/FormField.svelte';
6
- import Input from '../Input/Input.svelte';
7
- import Modal from '../Modal/Modal.svelte';
8
- import { httpUrlSchema, type UrlSchema } from './editor.schemas.js';
9
- interface Props {
10
- open: boolean;
11
- title?: string;
12
- description?: string;
13
- placeholder?: string;
14
- initialValue?: string;
15
- confirmLabel?: string;
16
- schema?: UrlSchema;
17
- onConfirm?: (value: string) => void;
18
- onCancel?: () => void;
19
- }
20
- let { open = $bindable(false), title = 'Enter URL', description, placeholder = 'https://', initialValue = '', confirmLabel = 'Insert', schema, onConfirm, onCancel }: Props = $props();
21
- type UrlFormState = {
22
- url: string;
23
- };
24
- let formApi = $state<FormApi<UrlFormState>>();
25
- let formState = $state<UrlFormState>({ url: '' });
26
- let inputRef: HTMLInputElement | null = $state(null);
1
+ <script lang="ts">import { untrack } from "svelte";
2
+ import Button from "../Button/Button.svelte";
3
+ import Form from "../Form/Form.svelte";
4
+ import FormField from "../FormField/FormField.svelte";
5
+ import Input from "../Input/Input.svelte";
6
+ import Modal from "../Modal/Modal.svelte";
7
+ import { httpUrlSchema } from "./editor.schemas.js";
8
+ let { open = $bindable(false), title = "Enter URL", description, placeholder = "https://", initialValue = "", confirmLabel = "Insert", schema, onConfirm, onCancel } = $props();
9
+ let formApi = $state();
10
+ let formState = $state({ url: "" });
11
+ let inputRef = $state(null);
27
12
  let settled = $state(false);
28
13
  const resolvedSchema = $derived(schema ?? httpUrlSchema);
29
14
  $effect(() => {
30
- if (open) {
31
- const initial = untrack(() => initialValue);
32
- formState = { url: initial };
33
- settled = false;
34
- untrack(() => formApi?.reset());
35
- requestAnimationFrame(() => inputRef?.focus());
36
- }
37
- else if (!settled) {
38
- settled = true;
39
- onCancel?.();
40
- }
15
+ if (open) {
16
+ const initial = untrack(() => initialValue);
17
+ formState = { url: initial };
18
+ settled = false;
19
+ untrack(() => formApi?.reset());
20
+ requestAnimationFrame(() => inputRef?.focus());
21
+ } else if (!settled) {
22
+ settled = true;
23
+ onCancel?.();
24
+ }
41
25
  });
42
- async function validate(state: object): Promise<FormError[]> {
43
- const url = (state as Partial<UrlFormState>).url ?? '';
44
- const result = await resolvedSchema['~standard'].validate(url);
45
- if (result.issues) {
46
- return [{ name: 'url', message: result.issues[0]?.message ?? 'Invalid value' }];
47
- }
48
- return [];
26
+ async function validate(state) {
27
+ const url = state.url ?? "";
28
+ const result = await resolvedSchema["~standard"].validate(url);
29
+ if (result.issues) {
30
+ return [{
31
+ name: "url",
32
+ message: result.issues[0]?.message ?? "Invalid value"
33
+ }];
34
+ }
35
+ return [];
49
36
  }
50
- function handleSubmit(event: FormSubmitEvent<unknown>): void {
51
- const data = event.data as UrlFormState;
52
- settled = true;
53
- onConfirm?.(data.url.trim());
54
- open = false;
37
+ function handleSubmit(event) {
38
+ const data = event.data;
39
+ settled = true;
40
+ onConfirm?.(data.url.trim());
41
+ open = false;
55
42
  }
56
- function cancel(): void {
57
- settled = true;
58
- onCancel?.();
59
- open = false;
43
+ function cancel() {
44
+ settled = true;
45
+ onCancel?.();
46
+ open = false;
60
47
  }
61
48
  </script>
62
49
 
@@ -1,27 +1,15 @@
1
- <script lang="ts">
2
- import Icon from '../Icon/Icon.svelte'
3
- import type { SlashCommand } from './editor.types.js'
4
-
5
- interface Props {
6
- items: SlashCommand[]
7
- selectedIndex: number
8
- onPick: (index: number) => void
9
- listboxId: string
10
- optionIdPrefix: string
11
- }
12
-
13
- let { items, selectedIndex, onPick, listboxId, optionIdPrefix }: Props = $props()
14
-
15
- let listEl: HTMLDivElement | null = $state(null)
16
-
17
- $effect(() => {
18
- if (!listEl) return
19
- const active = listEl.querySelector(`[data-index="${selectedIndex}"]`)
20
- if (!active) return
21
- requestAnimationFrame(() => {
22
- ;(active as HTMLElement).scrollIntoView({ block: 'nearest' })
23
- })
24
- })
1
+ <script lang="ts">import Icon from "../Icon/Icon.svelte";
2
+ let { items, selectedIndex, onPick, listboxId, optionIdPrefix } = $props();
3
+ let listEl = $state(null);
4
+ $effect(() => {
5
+ if (!listEl) return;
6
+ const active = listEl.querySelector(`[data-index="${selectedIndex}"]`);
7
+ if (!active) return;
8
+ requestAnimationFrame(() => {
9
+ ;
10
+ active.scrollIntoView({ block: "nearest" });
11
+ });
12
+ });
25
13
  </script>
26
14
 
27
15
  <div
@@ -1,68 +1,37 @@
1
- <script lang="ts" module>
2
- import type { EmptyProps } from './empty.types.js'
3
-
4
- export type Props = EmptyProps
1
+ <script lang="ts" module>export {};
5
2
  </script>
6
3
 
7
- <script lang="ts">
8
- import Avatar from '../Avatar/Avatar.svelte'
9
- import Button from '../Button/Button.svelte'
10
- import { getComponentConfig } from '../config.js'
11
- import Icon from '../Icon/Icon.svelte'
12
- import { emptyDefaults, emptyVariants } from './empty.variants.js'
13
-
14
- const config = getComponentConfig('empty', emptyDefaults)
15
-
16
- let {
17
- ref = $bindable(null),
18
- as = 'div',
19
- ui,
20
- icon,
21
- avatar,
22
- title,
23
- description,
24
- actions,
25
- variant = config.defaultVariants.variant,
26
- size = config.defaultVariants.size,
27
- class: className,
28
- leading,
29
- titleSlot,
30
- descriptionSlot,
31
- actionsSlot,
32
- header,
33
- body,
34
- footer,
35
- children,
36
- ...restProps
37
- }: Props = $props()
38
-
39
- const classes = $derived.by(() => {
40
- const slots = emptyVariants({ variant, size })
41
- const c = config.slots
42
- return {
43
- root: slots.root({ class: [c.root, className, ui?.root] }),
44
- header: slots.header({ class: [c.header, ui?.header] }),
45
- avatar: slots.avatar({ class: [c.avatar, ui?.avatar] }),
46
- title: slots.title({ class: [c.title, ui?.title] }),
47
- description: slots.description({ class: [c.description, ui?.description] }),
48
- body: slots.body({ class: [c.body, ui?.body] }),
49
- actions: slots.actions({ class: [c.actions, ui?.actions] }),
50
- footer: slots.footer({ class: [c.footer, ui?.footer] })
51
- }
52
- })
53
-
54
- const hasHeader = $derived(
55
- !!icon ||
56
- !!avatar ||
57
- !!title ||
58
- !!description ||
59
- !!leading ||
60
- !!titleSlot ||
61
- !!descriptionSlot ||
62
- !!header
63
- )
64
- const hasActions = $derived(actions && actions.length > 0)
65
- const hasBody = $derived(!!hasActions || !!actionsSlot || !!body || !!children)
4
+ <script lang="ts">import Avatar from "../Avatar/Avatar.svelte";
5
+ import Button from "../Button/Button.svelte";
6
+ import { getComponentConfig } from "../config.js";
7
+ import Icon from "../Icon/Icon.svelte";
8
+ import { emptyDefaults, emptyVariants } from "./empty.variants.js";
9
+ const config = getComponentConfig("empty", emptyDefaults);
10
+ let { ref = $bindable(null), as = "div", ui, icon, avatar, title, description, actions, variant = config.defaultVariants.variant, size = config.defaultVariants.size, class: className, leading, titleSlot, descriptionSlot, actionsSlot, header, body, footer, children, ...restProps } = $props();
11
+ const classes = $derived.by(() => {
12
+ const slots = emptyVariants({
13
+ variant,
14
+ size
15
+ });
16
+ const c = config.slots;
17
+ return {
18
+ root: slots.root({ class: [
19
+ c.root,
20
+ className,
21
+ ui?.root
22
+ ] }),
23
+ header: slots.header({ class: [c.header, ui?.header] }),
24
+ avatar: slots.avatar({ class: [c.avatar, ui?.avatar] }),
25
+ title: slots.title({ class: [c.title, ui?.title] }),
26
+ description: slots.description({ class: [c.description, ui?.description] }),
27
+ body: slots.body({ class: [c.body, ui?.body] }),
28
+ actions: slots.actions({ class: [c.actions, ui?.actions] }),
29
+ footer: slots.footer({ class: [c.footer, ui?.footer] })
30
+ };
31
+ });
32
+ const hasHeader = $derived(!!icon || !!avatar || !!title || !!description || !!leading || !!titleSlot || !!descriptionSlot || !!header);
33
+ const hasActions = $derived(actions && actions.length > 0);
34
+ const hasBody = $derived(!!hasActions || !!actionsSlot || !!body || !!children);
66
35
  </script>
67
36
 
68
37
  <svelte:element this={as} bind:this={ref} class={classes.root} {...restProps}>
@@ -1,43 +1,28 @@
1
- <script lang="ts" module>
2
- import type { FieldGroupProps } from './field-group.types.js'
3
-
4
- export type Props = FieldGroupProps
1
+ <script lang="ts" module>export {};
5
2
  </script>
6
3
 
7
- <script lang="ts">
8
- import { setContext } from 'svelte'
9
- import { getComponentConfig } from '../config.js'
10
- import { fieldGroupDefaults, fieldGroupVariants } from './field-group.variants.js'
11
-
12
- const config = getComponentConfig('fieldGroup', fieldGroupDefaults)
13
-
14
- let {
15
- ref = $bindable(null),
16
- as = 'div',
17
- ui,
18
- size = config.defaultVariants.size ?? 'md',
19
- orientation = config.defaultVariants.orientation ?? 'horizontal',
20
- class: className,
21
- children,
22
- ...restProps
23
- }: Props = $props()
24
-
25
- const variantSlots = $derived(fieldGroupVariants({ size, orientation }))
26
- const classes = $derived({
27
- root: variantSlots.root({ class: [config.slots.root, className, ui?.root] })
28
- })
29
-
30
- setContext<{
31
- orientation: NonNullable<Props['orientation']>
32
- size: NonNullable<Props['size']>
33
- }>('fieldGroup', {
34
- get orientation() {
35
- return orientation
36
- },
37
- get size() {
38
- return size
39
- }
40
- })
4
+ <script lang="ts">import { setContext } from "svelte";
5
+ import { getComponentConfig } from "../config.js";
6
+ import { fieldGroupDefaults, fieldGroupVariants } from "./field-group.variants.js";
7
+ const config = getComponentConfig("fieldGroup", fieldGroupDefaults);
8
+ let { ref = $bindable(null), as = "div", ui, size = config.defaultVariants.size ?? "md", orientation = config.defaultVariants.orientation ?? "horizontal", class: className, children, ...restProps } = $props();
9
+ const variantSlots = $derived(fieldGroupVariants({
10
+ size,
11
+ orientation
12
+ }));
13
+ const classes = $derived({ root: variantSlots.root({ class: [
14
+ config.slots.root,
15
+ className,
16
+ ui?.root
17
+ ] }) });
18
+ setContext("fieldGroup", {
19
+ get orientation() {
20
+ return orientation;
21
+ },
22
+ get size() {
23
+ return size;
24
+ }
25
+ });
41
26
  </script>
42
27
 
43
28
  <svelte:element