@webamoki/web-svelte 0.8.0 → 1.0.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 (120) hide show
  1. package/README.md +83 -3
  2. package/dist/components/form/Button.svelte +24 -23
  3. package/dist/components/form/Button.svelte.d.ts +2 -2
  4. package/dist/components/form/Errors.svelte +13 -13
  5. package/dist/components/form/FieldWrapper.svelte +57 -55
  6. package/dist/components/form/FieldWrapper.svelte.d.ts +4 -4
  7. package/dist/components/form/Form.svelte +18 -14
  8. package/dist/components/form/Form.svelte.d.ts +31 -22
  9. package/dist/components/form/IconInputWrapper.svelte +30 -29
  10. package/dist/components/form/IconInputWrapper.svelte.d.ts +7 -7
  11. package/dist/components/form/fields/ChoiceField.svelte +45 -43
  12. package/dist/components/form/fields/ChoiceField.svelte.d.ts +28 -23
  13. package/dist/components/form/fields/ChoiceMultiField.svelte +44 -42
  14. package/dist/components/form/fields/ChoiceMultiField.svelte.d.ts +28 -23
  15. package/dist/components/form/fields/DateField.svelte +42 -40
  16. package/dist/components/form/fields/DateField.svelte.d.ts +29 -22
  17. package/dist/components/form/fields/HexColorField.svelte +21 -19
  18. package/dist/components/form/fields/HexColorField.svelte.d.ts +24 -19
  19. package/dist/components/form/fields/MessageField.svelte +39 -60
  20. package/dist/components/form/fields/MessageField.svelte.d.ts +33 -24
  21. package/dist/components/form/fields/NumberField.svelte +38 -36
  22. package/dist/components/form/fields/NumberField.svelte.d.ts +32 -23
  23. package/dist/components/form/fields/PasswordField.svelte +45 -39
  24. package/dist/components/form/fields/PasswordField.svelte.d.ts +28 -21
  25. package/dist/components/form/fields/SelectField.svelte +84 -79
  26. package/dist/components/form/fields/SelectField.svelte.d.ts +39 -26
  27. package/dist/components/form/fields/SelectMultiField.svelte +90 -85
  28. package/dist/components/form/fields/SelectMultiField.svelte.d.ts +38 -25
  29. package/dist/components/form/fields/TextField.svelte +31 -29
  30. package/dist/components/form/fields/TextField.svelte.d.ts +32 -23
  31. package/dist/components/form/fields/TextFieldNullable.svelte +49 -47
  32. package/dist/components/form/fields/TextFieldNullable.svelte.d.ts +32 -23
  33. package/dist/components/form/fields/TimeField.svelte +66 -64
  34. package/dist/components/form/fields/TimeField.svelte.d.ts +33 -24
  35. package/dist/components/form/fields/WeekdayChoiceField.svelte +37 -35
  36. package/dist/components/form/fields/WeekdayChoiceField.svelte.d.ts +27 -22
  37. package/dist/components/form/fields/WeekdayChoiceMultiField.svelte +37 -35
  38. package/dist/components/form/fields/WeekdayChoiceMultiField.svelte.d.ts +27 -22
  39. package/dist/components/showcase/CodeBlock.svelte +41 -41
  40. package/dist/components/showcase/Container.svelte +7 -7
  41. package/dist/components/showcase/Preview.svelte +4 -4
  42. package/dist/components/showcase/Sidebar.svelte +4 -4
  43. package/dist/components/showcase/SidebarLink.svelte +3 -3
  44. package/dist/components/ui/choice/Choice.svelte +25 -25
  45. package/dist/components/ui/choice/Choice.svelte.d.ts +7 -7
  46. package/dist/components/ui/choice/ChoiceInternal.svelte +73 -72
  47. package/dist/components/ui/choice/ChoiceInternal.svelte.d.ts +9 -9
  48. package/dist/components/ui/choice/ChoiceMulti.svelte +59 -56
  49. package/dist/components/ui/choice/ChoiceMulti.svelte.d.ts +7 -7
  50. package/dist/components/ui/choice/WeekdayChoice.svelte +22 -21
  51. package/dist/components/ui/choice/WeekdayChoice.svelte.d.ts +6 -6
  52. package/dist/components/ui/choice/WeekdayChoiceMulti.svelte +24 -22
  53. package/dist/components/ui/choice/WeekdayChoiceMulti.svelte.d.ts +6 -6
  54. package/dist/components/ui/context-menu/ContextMenu.svelte +51 -50
  55. package/dist/components/ui/context-menu/ContextMenu.svelte.d.ts +1 -1
  56. package/dist/components/ui/context-menu/ContextMenuContent.svelte +92 -91
  57. package/dist/components/ui/context-menu/ContextMenuItem.svelte +26 -25
  58. package/dist/components/ui/context-menu/ContextMenuItem.svelte.d.ts +1 -1
  59. package/dist/components/ui/context-menu/ContextMenuTrigger.svelte +16 -15
  60. package/dist/components/ui/context-menu/context-menu-state.svelte.d.ts +3 -3
  61. package/dist/components/ui/context-menu/context-menu-state.svelte.js +15 -15
  62. package/dist/components/ui/drag-drop/Draggable.svelte +73 -72
  63. package/dist/components/ui/drag-drop/Draggable.svelte.d.ts +2 -2
  64. package/dist/components/ui/drag-drop/Dropzone.svelte +56 -54
  65. package/dist/components/ui/drag-drop/Dropzone.svelte.d.ts +3 -3
  66. package/dist/components/ui/drag-drop/drag-manager.d.ts +2 -2
  67. package/dist/components/ui/drag-drop/drag-manager.js +9 -9
  68. package/dist/components/ui/index.d.ts +2 -2
  69. package/dist/components/ui/index.js +5 -5
  70. package/dist/components/ui/search/SearchBar.svelte +18 -18
  71. package/dist/components/ui/search/SearchBar.svelte.d.ts +2 -2
  72. package/dist/highlight.js +2 -2
  73. package/dist/server/form-handler.d.ts +12 -12
  74. package/dist/server/form-handler.js +17 -17
  75. package/dist/server/form-processor.d.ts +1 -1
  76. package/dist/server/form-processor.js +0 -1
  77. package/dist/shadcn/components/ui/button/button.svelte +72 -71
  78. package/dist/shadcn/components/ui/button/button.svelte.d.ts +23 -23
  79. package/dist/shadcn/components/ui/button/index.d.ts +1 -1
  80. package/dist/shadcn/components/ui/button/index.js +2 -2
  81. package/dist/shadcn/components/ui/input/index.d.ts +1 -1
  82. package/dist/shadcn/components/ui/input/index.js +2 -2
  83. package/dist/shadcn/components/ui/input/input.svelte +35 -32
  84. package/dist/shadcn/components/ui/input/input.svelte.d.ts +2 -2
  85. package/dist/shadcn/components/ui/select/index.d.ts +6 -6
  86. package/dist/shadcn/components/ui/select/index.js +7 -7
  87. package/dist/shadcn/components/ui/select/select-content.svelte +35 -34
  88. package/dist/shadcn/components/ui/select/select-content.svelte.d.ts +1 -1
  89. package/dist/shadcn/components/ui/select/select-group-heading.svelte +15 -14
  90. package/dist/shadcn/components/ui/select/select-group.svelte +2 -2
  91. package/dist/shadcn/components/ui/select/select-item.svelte +31 -31
  92. package/dist/shadcn/components/ui/select/select-label.svelte +14 -13
  93. package/dist/shadcn/components/ui/select/select-label.svelte.d.ts +1 -1
  94. package/dist/shadcn/components/ui/select/select-scroll-down-button.svelte +13 -13
  95. package/dist/shadcn/components/ui/select/select-scroll-up-button.svelte +13 -13
  96. package/dist/shadcn/components/ui/select/select-separator.svelte +13 -12
  97. package/dist/shadcn/components/ui/select/select-trigger.svelte +26 -26
  98. package/dist/shadcn/components/ui/select/select-trigger.svelte.d.ts +2 -2
  99. package/dist/shadcn/components/ui/separator/separator.svelte +14 -14
  100. package/dist/shadcn/components/ui/textarea/textarea.svelte +22 -21
  101. package/dist/shadcn/components/ui/textarea/textarea.svelte.d.ts +1 -1
  102. package/dist/shadcn/utils.d.ts +4 -4
  103. package/dist/utils/datetime/index.d.ts +66 -66
  104. package/dist/utils/datetime/index.js +124 -124
  105. package/dist/utils/email/README.md +60 -60
  106. package/dist/utils/email/aws-signer.d.ts +1 -1
  107. package/dist/utils/email/aws-signer.js +39 -39
  108. package/dist/utils/email/ses.d.ts +8 -8
  109. package/dist/utils/email/ses.js +9 -9
  110. package/dist/utils/form/index.d.ts +11 -11
  111. package/dist/utils/form/index.js +23 -24
  112. package/dist/utils/form/virtual-form.d.ts +5 -5
  113. package/dist/utils/form/virtual-form.js +58 -58
  114. package/dist/utils/search.d.ts +1 -1
  115. package/dist/utils/search.js +22 -22
  116. package/dist/utils/types/arktype.d.ts +2 -2
  117. package/dist/utils/types/arktype.js +3 -3
  118. package/dist/utils/types/db.d.ts +2 -1
  119. package/dist/utils/types/db.js +7 -7
  120. package/package.json +46 -31
@@ -1,29 +1,34 @@
1
- import { type ChoiceProps } from '../../ui/choice/Choice.svelte';
2
- import type { FormPath } from 'sveltekit-superforms';
3
- import { type FieldWrapperProps } from '../FieldWrapper.svelte';
4
- declare function $$render<V, I, K extends string | number | symbol, T extends Record<string, unknown>, U extends FormPath<T>, M>(): {
5
- props: {
1
+ export default ChoiceField;
2
+ type ChoiceField<V, I, K extends number | string | symbol, T extends Record<string, unknown>, U extends FormPath<T>, M> = SvelteComponent<Props, {}, {}> & {
3
+ $$bindings?: "value" | undefined;
4
+ } & {};
5
+ declare const ChoiceField: $$IsomorphicComponent;
6
+ import { FormPath } from 'sveltekit-superforms';
7
+ type Props = ChoiceProps<V, I, K> & FieldWrapperProps<T, U, M> & {
8
+ class?: string | undefined;
9
+ };
10
+ interface $$IsomorphicComponent {
11
+ new <V, I, K extends number | string | symbol, T extends Record<string, unknown>, U extends FormPath<T>, M>(options: import("svelte").ComponentConstructorOptions<ReturnType<__sveltets_Render<V, I, K, T, U, M>["props"]>>): import("svelte").SvelteComponent<ReturnType<__sveltets_Render<V, I, K, T, U, M>["props"]>, ReturnType<__sveltets_Render<V, I, K, T, U, M>["events"]>, ReturnType<__sveltets_Render<V, I, K, T, U, M>["slots"]>> & {
12
+ $$bindings?: ReturnType<__sveltets_Render<V, I, K, T, U, M>["bindings"]>;
13
+ } & ReturnType<__sveltets_Render<V, I, K, T, U, M>["exports"]>;
14
+ <V, I, K extends number | string | symbol, T extends Record<string, unknown>, U extends FormPath<T>, M>(internal: unknown, props: ReturnType<__sveltets_Render<V, I, K, T, U, M>["props"]> & {}): ReturnType<__sveltets_Render<V, I, K, T, U, M>["exports"]>;
15
+ z_$$bindings?: ReturnType<__sveltets_Render<any, any, any, any, any, any>["bindings"]>;
16
+ }
17
+ declare class __sveltets_Render<V, I, K extends number | string | symbol, T extends Record<string, unknown>, U extends FormPath<T>, M> {
18
+ props(): ReturnType<typeof $$render<V, I, K, T, U, M>>["props"];
19
+ events(): ReturnType<typeof $$render<V, I, K, T, U, M>>["events"];
20
+ slots(): ReturnType<typeof $$render<V, I, K, T, U, M>>["slots"];
21
+ bindings(): "value";
22
+ exports(): {};
23
+ }
24
+ declare function $$render<V, I, K extends number | string | symbol, T extends Record<string, unknown>, U extends FormPath<T>, M>(): {
25
+ props: ChoiceProps<V, I, K> & FieldWrapperProps<T, U, M> & {
6
26
  class?: string;
7
- } & FieldWrapperProps<T, U, M> & ChoiceProps<V, I, K>;
27
+ };
8
28
  exports: {};
9
29
  bindings: "value";
10
30
  slots: {};
11
31
  events: {};
12
32
  };
13
- declare class __sveltets_Render<V, I, K extends string | number | symbol, T extends Record<string, unknown>, U extends FormPath<T>, M> {
14
- props(): ReturnType<typeof $$render<V, I, K, T, U, M>>['props'];
15
- events(): ReturnType<typeof $$render<V, I, K, T, U, M>>['events'];
16
- slots(): ReturnType<typeof $$render<V, I, K, T, U, M>>['slots'];
17
- bindings(): "value";
18
- exports(): {};
19
- }
20
- interface $$IsomorphicComponent {
21
- new <V, I, K extends string | number | symbol, T extends Record<string, unknown>, U extends FormPath<T>, M>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<V, I, K, T, U, M>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<V, I, K, T, U, M>['props']>, ReturnType<__sveltets_Render<V, I, K, T, U, M>['events']>, ReturnType<__sveltets_Render<V, I, K, T, U, M>['slots']>> & {
22
- $$bindings?: ReturnType<__sveltets_Render<V, I, K, T, U, M>['bindings']>;
23
- } & ReturnType<__sveltets_Render<V, I, K, T, U, M>['exports']>;
24
- <V, I, K extends string | number | symbol, T extends Record<string, unknown>, U extends FormPath<T>, M>(internal: unknown, props: ReturnType<__sveltets_Render<V, I, K, T, U, M>['props']> & {}): ReturnType<__sveltets_Render<V, I, K, T, U, M>['exports']>;
25
- z_$$bindings?: ReturnType<__sveltets_Render<any, any, any, any, any, any>['bindings']>;
26
- }
27
- declare const ChoiceField: $$IsomorphicComponent;
28
- type ChoiceField<V, I, K extends string | number | symbol, T extends Record<string, unknown>, U extends FormPath<T>, M> = InstanceType<typeof ChoiceField<V, I, K, T, U, M>>;
29
- export default ChoiceField;
33
+ import { ChoiceProps } from '../../ui/choice/Choice.svelte';
34
+ import { FieldWrapperProps } from '../FieldWrapper.svelte';
@@ -1,49 +1,51 @@
1
1
  <script
2
- lang="ts"
3
- generics="V,I, K extends string | number | symbol,T extends Record<string, unknown>, U extends FormPath<T>, M"
2
+ generics="V,I, K extends number | string | symbol,T extends Record<string, unknown>, U extends FormPath<T>, M"
3
+ lang="ts"
4
4
  >
5
- import ChoiceMulti, { type ChoiceMultiProps } from '../../ui/choice/ChoiceMulti.svelte';
6
- import type { FormPath } from 'sveltekit-superforms';
7
- import FieldWrapper, { type FieldWrapperProps } from '../FieldWrapper.svelte';
5
+ import type { FormPath } from 'sveltekit-superforms';
8
6
 
9
- type Props = { class?: string } & FieldWrapperProps<T, U, M> & ChoiceMultiProps<V, I, K>;
10
- let {
11
- items,
12
- getKey,
13
- getLabel,
14
- getValue,
15
- onAdd,
16
- onRemove,
17
- vertical,
18
- value = $bindable([]),
7
+ import ChoiceMulti, { type ChoiceMultiProps } from '../../ui/choice/ChoiceMulti.svelte';
19
8
 
20
- form,
21
- name,
22
- label,
23
- description,
24
- disabled,
25
- readonly,
26
- buttonContent,
27
- class: className
28
- }: Props = $props();
9
+ import FieldWrapper, { type FieldWrapperProps } from '../FieldWrapper.svelte';
10
+
11
+ type Props = ChoiceMultiProps<V, I, K> & FieldWrapperProps<T, U, M> & { class?: string };
12
+ let {
13
+ buttonContent,
14
+ class: className,
15
+ description,
16
+ disabled,
17
+ form,
18
+ getKey,
19
+ getLabel,
20
+ getValue,
21
+
22
+ items,
23
+ label,
24
+ name,
25
+ onAdd,
26
+ onRemove,
27
+ readonly,
28
+ value = $bindable([]),
29
+ vertical
30
+ }: Props = $props();
29
31
  </script>
30
32
 
31
- <FieldWrapper {form} {name} {label} {description} class={className}>
32
- {#snippet formElem(props)}
33
- <ChoiceMulti
34
- {items}
35
- {getKey}
36
- {getLabel}
37
- {getValue}
38
- {onAdd}
39
- {onRemove}
40
- {buttonContent}
41
- {disabled}
42
- {readonly}
43
- {vertical}
44
- {...props}
45
- bind:value
46
- class="w-full"
47
- />
48
- {/snippet}
33
+ <FieldWrapper {name} class={className} {description} {form} {label}>
34
+ {#snippet formElem(props)}
35
+ <ChoiceMulti
36
+ {buttonContent}
37
+ {disabled}
38
+ {getKey}
39
+ {getLabel}
40
+ {getValue}
41
+ {items}
42
+ {onAdd}
43
+ {onRemove}
44
+ {readonly}
45
+ {vertical}
46
+ {...props}
47
+ class="w-full"
48
+ bind:value
49
+ />
50
+ {/snippet}
49
51
  </FieldWrapper>
@@ -1,29 +1,34 @@
1
- import { type ChoiceMultiProps } from '../../ui/choice/ChoiceMulti.svelte';
2
- import type { FormPath } from 'sveltekit-superforms';
3
- import { type FieldWrapperProps } from '../FieldWrapper.svelte';
4
- declare function $$render<V, I, K extends string | number | symbol, T extends Record<string, unknown>, U extends FormPath<T>, M>(): {
5
- props: {
1
+ export default ChoiceMultiField;
2
+ type ChoiceMultiField<V, I, K extends number | string | symbol, T extends Record<string, unknown>, U extends FormPath<T>, M> = SvelteComponent<Props, {}, {}> & {
3
+ $$bindings?: "value" | undefined;
4
+ } & {};
5
+ declare const ChoiceMultiField: $$IsomorphicComponent;
6
+ import { FormPath } from 'sveltekit-superforms';
7
+ type Props = ChoiceMultiProps<V, I, K> & FieldWrapperProps<T, U, M> & {
8
+ class?: string | undefined;
9
+ };
10
+ interface $$IsomorphicComponent {
11
+ new <V, I, K extends number | string | symbol, T extends Record<string, unknown>, U extends FormPath<T>, M>(options: import("svelte").ComponentConstructorOptions<ReturnType<__sveltets_Render<V, I, K, T, U, M>["props"]>>): import("svelte").SvelteComponent<ReturnType<__sveltets_Render<V, I, K, T, U, M>["props"]>, ReturnType<__sveltets_Render<V, I, K, T, U, M>["events"]>, ReturnType<__sveltets_Render<V, I, K, T, U, M>["slots"]>> & {
12
+ $$bindings?: ReturnType<__sveltets_Render<V, I, K, T, U, M>["bindings"]>;
13
+ } & ReturnType<__sveltets_Render<V, I, K, T, U, M>["exports"]>;
14
+ <V, I, K extends number | string | symbol, T extends Record<string, unknown>, U extends FormPath<T>, M>(internal: unknown, props: ReturnType<__sveltets_Render<V, I, K, T, U, M>["props"]> & {}): ReturnType<__sveltets_Render<V, I, K, T, U, M>["exports"]>;
15
+ z_$$bindings?: ReturnType<__sveltets_Render<any, any, any, any, any, any>["bindings"]>;
16
+ }
17
+ declare class __sveltets_Render<V, I, K extends number | string | symbol, T extends Record<string, unknown>, U extends FormPath<T>, M> {
18
+ props(): ReturnType<typeof $$render<V, I, K, T, U, M>>["props"];
19
+ events(): ReturnType<typeof $$render<V, I, K, T, U, M>>["events"];
20
+ slots(): ReturnType<typeof $$render<V, I, K, T, U, M>>["slots"];
21
+ bindings(): "value";
22
+ exports(): {};
23
+ }
24
+ declare function $$render<V, I, K extends number | string | symbol, T extends Record<string, unknown>, U extends FormPath<T>, M>(): {
25
+ props: ChoiceMultiProps<V, I, K> & FieldWrapperProps<T, U, M> & {
6
26
  class?: string;
7
- } & FieldWrapperProps<T, U, M> & ChoiceMultiProps<V, I, K>;
27
+ };
8
28
  exports: {};
9
29
  bindings: "value";
10
30
  slots: {};
11
31
  events: {};
12
32
  };
13
- declare class __sveltets_Render<V, I, K extends string | number | symbol, T extends Record<string, unknown>, U extends FormPath<T>, M> {
14
- props(): ReturnType<typeof $$render<V, I, K, T, U, M>>['props'];
15
- events(): ReturnType<typeof $$render<V, I, K, T, U, M>>['events'];
16
- slots(): ReturnType<typeof $$render<V, I, K, T, U, M>>['slots'];
17
- bindings(): "value";
18
- exports(): {};
19
- }
20
- interface $$IsomorphicComponent {
21
- new <V, I, K extends string | number | symbol, T extends Record<string, unknown>, U extends FormPath<T>, M>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<V, I, K, T, U, M>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<V, I, K, T, U, M>['props']>, ReturnType<__sveltets_Render<V, I, K, T, U, M>['events']>, ReturnType<__sveltets_Render<V, I, K, T, U, M>['slots']>> & {
22
- $$bindings?: ReturnType<__sveltets_Render<V, I, K, T, U, M>['bindings']>;
23
- } & ReturnType<__sveltets_Render<V, I, K, T, U, M>['exports']>;
24
- <V, I, K extends string | number | symbol, T extends Record<string, unknown>, U extends FormPath<T>, M>(internal: unknown, props: ReturnType<__sveltets_Render<V, I, K, T, U, M>['props']> & {}): ReturnType<__sveltets_Render<V, I, K, T, U, M>['exports']>;
25
- z_$$bindings?: ReturnType<__sveltets_Render<any, any, any, any, any, any>['bindings']>;
26
- }
27
- declare const ChoiceMultiField: $$IsomorphicComponent;
28
- type ChoiceMultiField<V, I, K extends string | number | symbol, T extends Record<string, unknown>, U extends FormPath<T>, M> = InstanceType<typeof ChoiceMultiField<V, I, K, T, U, M>>;
29
- export default ChoiceMultiField;
33
+ import { ChoiceMultiProps } from '../../ui/choice/ChoiceMulti.svelte';
34
+ import { FieldWrapperProps } from '../FieldWrapper.svelte';
@@ -1,47 +1,49 @@
1
- <script lang="ts" generics="T extends Record<string, unknown>, U extends FormPath<T>, M">
2
- import IconInputWrapper from '../IconInputWrapper.svelte';
3
- import { Input } from '../../../shadcn/components/ui/input/index.js';
4
- import { cn } from '../../../shadcn/utils.js';
5
- import { CalendarDate } from '@internationalized/date';
6
- import type { Component } from 'svelte';
7
- import type { FormPath } from 'sveltekit-superforms';
8
- import FieldWrapper, { type FieldWrapperProps } from '../FieldWrapper.svelte';
1
+ <script generics="T extends Record<string, unknown>, U extends FormPath<T>, M" lang="ts">
2
+ import type { Component } from 'svelte';
3
+ import type { FormPath } from 'sveltekit-superforms';
9
4
 
10
- interface Props extends FieldWrapperProps<T, U, M> {
11
- value?: CalendarDate;
12
- class?: string;
13
- icon?: Component;
14
- }
15
- let { value = $bindable(), class: className, icon, ...fieldProps }: Props = $props();
5
+ import IconInputWrapper from '../IconInputWrapper.svelte';
6
+ import { Input } from '../../../shadcn/components/ui/input/index.js';
7
+ import { cn } from '../../../shadcn/utils.js';
8
+ import { CalendarDate } from '@internationalized/date';
16
9
 
17
- // Getter: format CalendarDate string (YYYY-MM-DD)
18
- function get(): string {
19
- if (!value) return '';
20
- const yyyy = String(value.year).padStart(4, '0');
21
- const mm = String(value.month).padStart(2, '0');
22
- const dd = String(value.day).padStart(2, '0');
23
- return `${yyyy}-${mm}-${dd}`;
24
- }
10
+ import FieldWrapper, { type FieldWrapperProps } from '../FieldWrapper.svelte';
25
11
 
26
- // Setter: parse string CalendarDate
27
- function set(raw: string) {
28
- if (!raw) {
29
- value = undefined;
30
- return;
31
- }
32
- const [yyyy, mm, dd] = raw.split('-').map(Number);
33
- if (yyyy && mm && dd) {
34
- value = new CalendarDate(yyyy, mm, dd);
35
- }
36
- }
12
+ interface Props extends FieldWrapperProps<T, U, M> {
13
+ class?: string;
14
+ icon?: Component;
15
+ value?: CalendarDate;
16
+ }
17
+ let { class: className, icon, value = $bindable(), ...fieldProps }: Props = $props();
18
+
19
+ // Getter: format CalendarDate string (YYYY-MM-DD)
20
+ function get(): string {
21
+ if (!value) return '';
22
+ const yyyy = String(value.year).padStart(4, '0');
23
+ const mm = String(value.month).padStart(2, '0');
24
+ const dd = String(value.day).padStart(2, '0');
25
+ return `${yyyy}-${mm}-${dd}`;
26
+ }
27
+
28
+ // Setter: parse string → CalendarDate
29
+ function set(raw: string) {
30
+ if (!raw) {
31
+ value = undefined;
32
+ return;
33
+ }
34
+ const [yyyy, mm, dd] = raw.split('-').map(Number);
35
+ if (yyyy && mm && dd) {
36
+ value = new CalendarDate(yyyy, mm, dd);
37
+ }
38
+ }
37
39
  </script>
38
40
 
39
41
  <FieldWrapper {...fieldProps}>
40
- {#snippet formElem(props)}
41
- <IconInputWrapper {icon}>
42
- {#snippet children({ class: iconClass })}
43
- <Input type="date" bind:value={get, set} class={cn(iconClass, className)} {...props} />
44
- {/snippet}
45
- </IconInputWrapper>
46
- {/snippet}
42
+ {#snippet formElem(props)}
43
+ <IconInputWrapper {icon}>
44
+ {#snippet children({ class: iconClass })}
45
+ <Input class={cn(iconClass, className)} type="date" bind:value={get, set} {...props} />
46
+ {/snippet}
47
+ </IconInputWrapper>
48
+ {/snippet}
47
49
  </FieldWrapper>
@@ -1,32 +1,39 @@
1
- import { CalendarDate } from '@internationalized/date';
2
- import type { Component } from 'svelte';
3
- import type { FormPath } from 'sveltekit-superforms';
4
- import { type FieldWrapperProps } from '../FieldWrapper.svelte';
1
+ export default DateField;
2
+ type DateField<T extends Record<string, unknown>, U extends FormPath<T>, M> = SvelteComponent<Props, {}, {}> & {
3
+ $$bindings?: "value" | undefined;
4
+ } & {};
5
+ declare const DateField: $$IsomorphicComponent;
6
+ import { FormPath } from 'sveltekit-superforms';
7
+ type Props = FieldWrapperProps<T, U, M> & {
8
+ class?: string | undefined;
9
+ icon?: Component<any, any, string> | undefined;
10
+ value?: CalendarDate | undefined;
11
+ };
12
+ interface $$IsomorphicComponent {
13
+ new <T extends Record<string, unknown>, U extends FormPath<T>, M>(options: import("svelte").ComponentConstructorOptions<ReturnType<__sveltets_Render<T, U, M>["props"]>>): import("svelte").SvelteComponent<ReturnType<__sveltets_Render<T, U, M>["props"]>, ReturnType<__sveltets_Render<T, U, M>["events"]>, ReturnType<__sveltets_Render<T, U, M>["slots"]>> & {
14
+ $$bindings?: ReturnType<__sveltets_Render<T, U, M>["bindings"]>;
15
+ } & ReturnType<__sveltets_Render<T, U, M>["exports"]>;
16
+ <T extends Record<string, unknown>, U extends FormPath<T>, M>(internal: unknown, props: ReturnType<__sveltets_Render<T, U, M>["props"]> & {}): ReturnType<__sveltets_Render<T, U, M>["exports"]>;
17
+ z_$$bindings?: ReturnType<__sveltets_Render<any, any, any>["bindings"]>;
18
+ }
19
+ declare class __sveltets_Render<T extends Record<string, unknown>, U extends FormPath<T>, M> {
20
+ props(): ReturnType<typeof $$render<T, U, M>>["props"];
21
+ events(): ReturnType<typeof $$render<T, U, M>>["events"];
22
+ slots(): ReturnType<typeof $$render<T, U, M>>["slots"];
23
+ bindings(): "value";
24
+ exports(): {};
25
+ }
5
26
  declare function $$render<T extends Record<string, unknown>, U extends FormPath<T>, M>(): {
6
27
  props: FieldWrapperProps<T, U, M> & {
7
- value?: CalendarDate;
8
28
  class?: string;
9
29
  icon?: Component;
30
+ value?: CalendarDate;
10
31
  };
11
32
  exports: {};
12
33
  bindings: "value";
13
34
  slots: {};
14
35
  events: {};
15
36
  };
16
- declare class __sveltets_Render<T extends Record<string, unknown>, U extends FormPath<T>, M> {
17
- props(): ReturnType<typeof $$render<T, U, M>>['props'];
18
- events(): ReturnType<typeof $$render<T, U, M>>['events'];
19
- slots(): ReturnType<typeof $$render<T, U, M>>['slots'];
20
- bindings(): "value";
21
- exports(): {};
22
- }
23
- interface $$IsomorphicComponent {
24
- new <T extends Record<string, unknown>, U extends FormPath<T>, M>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<T, U, M>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<T, U, M>['props']>, ReturnType<__sveltets_Render<T, U, M>['events']>, ReturnType<__sveltets_Render<T, U, M>['slots']>> & {
25
- $$bindings?: ReturnType<__sveltets_Render<T, U, M>['bindings']>;
26
- } & ReturnType<__sveltets_Render<T, U, M>['exports']>;
27
- <T extends Record<string, unknown>, U extends FormPath<T>, M>(internal: unknown, props: ReturnType<__sveltets_Render<T, U, M>['props']> & {}): ReturnType<__sveltets_Render<T, U, M>['exports']>;
28
- z_$$bindings?: ReturnType<__sveltets_Render<any, any, any>['bindings']>;
29
- }
30
- declare const DateField: $$IsomorphicComponent;
31
- type DateField<T extends Record<string, unknown>, U extends FormPath<T>, M> = InstanceType<typeof DateField<T, U, M>>;
32
- export default DateField;
37
+ import { FieldWrapperProps } from '../FieldWrapper.svelte';
38
+ import { Component } from 'svelte';
39
+ import { CalendarDate } from '@internationalized/date';
@@ -1,24 +1,26 @@
1
- <script lang="ts" generics="T extends Record<string, unknown>, U extends FormPath<T>, M">
2
- import type { FormPath } from 'sveltekit-superforms';
3
- import FieldWrapper, { type FieldWrapperProps } from '../FieldWrapper.svelte';
4
- import ColorPicker from 'svelte-awesome-color-picker';
5
- interface Props extends FieldWrapperProps<T, U, M> {
6
- value?: string;
7
- }
8
- let { value = $bindable(), ...fieldProps }: Props = $props();
1
+ <script generics="T extends Record<string, unknown>, U extends FormPath<T>, M" lang="ts">
2
+ import type { FormPath } from 'sveltekit-superforms';
9
3
 
10
- function get() {
11
- if (value) return `#${value}`;
12
- return '';
13
- }
14
- function set(raw: string | undefined) {
15
- if (raw === undefined) return undefined;
16
- value = raw.slice(1); // remove #
17
- }
4
+ import ColorPicker from 'svelte-awesome-color-picker';
5
+
6
+ import FieldWrapper, { type FieldWrapperProps } from '../FieldWrapper.svelte';
7
+ interface Props extends FieldWrapperProps<T, U, M> {
8
+ value?: string;
9
+ }
10
+ let { value = $bindable(), ...fieldProps }: Props = $props();
11
+
12
+ function get() {
13
+ if (value) return `#${value}`;
14
+ return '';
15
+ }
16
+ function set(raw: string | undefined) {
17
+ if (raw === undefined) return undefined;
18
+ value = raw.slice(1); // remove #
19
+ }
18
20
  </script>
19
21
 
20
22
  <FieldWrapper {...fieldProps}>
21
- {#snippet formElem()}
22
- <ColorPicker bind:hex={get, set} label={value} isAlpha={false} position="responsive" />
23
- {/snippet}
23
+ {#snippet formElem()}
24
+ <ColorPicker isAlpha={false} label={value} position="responsive" bind:hex={get, set} />
25
+ {/snippet}
24
26
  </FieldWrapper>
@@ -1,5 +1,26 @@
1
- import type { FormPath } from 'sveltekit-superforms';
2
- import { type FieldWrapperProps } from '../FieldWrapper.svelte';
1
+ export default HexColorField;
2
+ type HexColorField<T extends Record<string, unknown>, U extends FormPath<T>, M> = SvelteComponent<Props, {}, {}> & {
3
+ $$bindings?: "value" | undefined;
4
+ } & {};
5
+ declare const HexColorField: $$IsomorphicComponent;
6
+ import { FormPath } from 'sveltekit-superforms';
7
+ type Props = FieldWrapperProps<T, U, M> & {
8
+ value?: string | undefined;
9
+ };
10
+ interface $$IsomorphicComponent {
11
+ new <T extends Record<string, unknown>, U extends FormPath<T>, M>(options: import("svelte").ComponentConstructorOptions<ReturnType<__sveltets_Render<T, U, M>["props"]>>): import("svelte").SvelteComponent<ReturnType<__sveltets_Render<T, U, M>["props"]>, ReturnType<__sveltets_Render<T, U, M>["events"]>, ReturnType<__sveltets_Render<T, U, M>["slots"]>> & {
12
+ $$bindings?: ReturnType<__sveltets_Render<T, U, M>["bindings"]>;
13
+ } & ReturnType<__sveltets_Render<T, U, M>["exports"]>;
14
+ <T extends Record<string, unknown>, U extends FormPath<T>, M>(internal: unknown, props: ReturnType<__sveltets_Render<T, U, M>["props"]> & {}): ReturnType<__sveltets_Render<T, U, M>["exports"]>;
15
+ z_$$bindings?: ReturnType<__sveltets_Render<any, any, any>["bindings"]>;
16
+ }
17
+ declare class __sveltets_Render<T extends Record<string, unknown>, U extends FormPath<T>, M> {
18
+ props(): ReturnType<typeof $$render<T, U, M>>["props"];
19
+ events(): ReturnType<typeof $$render<T, U, M>>["events"];
20
+ slots(): ReturnType<typeof $$render<T, U, M>>["slots"];
21
+ bindings(): "value";
22
+ exports(): {};
23
+ }
3
24
  declare function $$render<T extends Record<string, unknown>, U extends FormPath<T>, M>(): {
4
25
  props: FieldWrapperProps<T, U, M> & {
5
26
  value?: string;
@@ -9,20 +30,4 @@ declare function $$render<T extends Record<string, unknown>, U extends FormPath<
9
30
  slots: {};
10
31
  events: {};
11
32
  };
12
- declare class __sveltets_Render<T extends Record<string, unknown>, U extends FormPath<T>, M> {
13
- props(): ReturnType<typeof $$render<T, U, M>>['props'];
14
- events(): ReturnType<typeof $$render<T, U, M>>['events'];
15
- slots(): ReturnType<typeof $$render<T, U, M>>['slots'];
16
- bindings(): "value";
17
- exports(): {};
18
- }
19
- interface $$IsomorphicComponent {
20
- new <T extends Record<string, unknown>, U extends FormPath<T>, M>(options: import('svelte').ComponentConstructorOptions<ReturnType<__sveltets_Render<T, U, M>['props']>>): import('svelte').SvelteComponent<ReturnType<__sveltets_Render<T, U, M>['props']>, ReturnType<__sveltets_Render<T, U, M>['events']>, ReturnType<__sveltets_Render<T, U, M>['slots']>> & {
21
- $$bindings?: ReturnType<__sveltets_Render<T, U, M>['bindings']>;
22
- } & ReturnType<__sveltets_Render<T, U, M>['exports']>;
23
- <T extends Record<string, unknown>, U extends FormPath<T>, M>(internal: unknown, props: ReturnType<__sveltets_Render<T, U, M>['props']> & {}): ReturnType<__sveltets_Render<T, U, M>['exports']>;
24
- z_$$bindings?: ReturnType<__sveltets_Render<any, any, any>['bindings']>;
25
- }
26
- declare const HexColorField: $$IsomorphicComponent;
27
- type HexColorField<T extends Record<string, unknown>, U extends FormPath<T>, M> = InstanceType<typeof HexColorField<T, U, M>>;
28
- export default HexColorField;
33
+ import { FieldWrapperProps } from '../FieldWrapper.svelte';
@@ -1,66 +1,45 @@
1
- <script lang="ts" generics="T extends Record<string, unknown>, U extends FormPath<T>, M">
2
- import IconInputWrapper from '../IconInputWrapper.svelte';
3
- import { Textarea } from '../../../shadcn/components/ui/textarea/index.js';
4
- import { cn } from '../../../shadcn/utils.js';
5
- import { Lock, LockOpen } from '@lucide/svelte';
6
- import type { Component } from 'svelte';
7
- import type { FormPath } from 'sveltekit-superforms';
8
- import FieldWrapper, { type FieldWrapperProps } from '../FieldWrapper.svelte';
1
+ <script generics="T extends Record<string, unknown>, U extends FormPath<T>, M" lang="ts">
2
+ import type { Component } from 'svelte';
3
+ import type { FormPath } from 'sveltekit-superforms';
9
4
 
10
- interface Props extends FieldWrapperProps<T, U, M> {
11
- value?: string;
12
- class?: string;
13
- placeholder?: string;
14
- defaultHeight?: number;
15
- showLock?: boolean;
16
- defaultLocked?: boolean;
17
- icon?: Component;
18
- }
19
- let {
20
- value = $bindable(),
21
- class: className,
22
- placeholder,
23
- defaultHeight = 100,
24
- showLock = true,
25
- defaultLocked = false,
26
- icon,
27
- ...fieldProps
28
- }: Props = $props();
5
+ import IconInputWrapper from '../IconInputWrapper.svelte';
6
+ import { Textarea } from '../../../shadcn/components/ui/textarea/index.js';
7
+ import { cn } from '../../../shadcn/utils.js';
29
8
 
30
- let locked = $state(defaultLocked);
9
+ import FieldWrapper, { type FieldWrapperProps } from '../FieldWrapper.svelte';
10
+
11
+ interface Props extends FieldWrapperProps<T, U, M> {
12
+ class?: string;
13
+ defaultHeight?: number;
14
+ icon?: Component;
15
+ placeholder?: string;
16
+ resize?: boolean;
17
+ value?: string;
18
+ }
19
+ let {
20
+ class: className,
21
+ defaultHeight = 100,
22
+ icon,
23
+ placeholder,
24
+ resize = false,
25
+ value = $bindable(),
26
+ ...fieldProps
27
+ }: Props = $props();
31
28
  </script>
32
29
 
33
30
  <FieldWrapper {...fieldProps}>
34
- {#snippet formElem(props)}
35
- <div class="flex w-full items-start gap-2">
36
- <!-- Textarea itself with optional left icon -->
37
- <IconInputWrapper {icon} iconPosition="top" flex>
38
- {#snippet children({ class: iconClass })}
39
- <Textarea
40
- bind:value
41
- class={cn(iconClass, className || '', locked ? 'resize-none' : 'resize-y')}
42
- {placeholder}
43
- style={defaultHeight ? `height: ${defaultHeight}px` : undefined}
44
- {...props}
45
- />
46
- {/snippet}
47
- </IconInputWrapper>
48
-
49
- <!-- Lock/unlock button -->
50
- {#if showLock}
51
- <button
52
- type="button"
53
- class="flex shrink-0 cursor-pointer items-center justify-center rounded-lg border border-gray-300 px-4 py-3 text-gray-500 transition-all hover:bg-gray-50 focus:border-transparent focus:ring-2 focus:ring-primary focus:outline-none"
54
- onclick={() => (locked = !locked)}
55
- aria-label={locked ? 'Unlock height' : 'Lock height'}
56
- >
57
- {#if locked}
58
- <Lock class="size-5" />
59
- {:else}
60
- <LockOpen class="size-5" />
61
- {/if}
62
- </button>
63
- {/if}
64
- </div>
65
- {/snippet}
31
+ {#snippet formElem(props)}
32
+ <!-- Textarea itself with optional left icon -->
33
+ <IconInputWrapper flex {icon} iconPosition="top">
34
+ {#snippet children({ class: iconClass })}
35
+ <Textarea
36
+ style="height: {defaultHeight}px; min-height: {defaultHeight}px;"
37
+ class={cn(resize ? 'resize-y' : 'resize-none', iconClass, className)}
38
+ {placeholder}
39
+ bind:value
40
+ {...props}
41
+ />
42
+ {/snippet}
43
+ </IconInputWrapper>
44
+ {/snippet}
66
45
  </FieldWrapper>