@sjsf/skeleton-theme 1.9.1 → 2.0.0-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -4
- package/dist/components/button.svelte +19 -0
- package/dist/components/button.svelte.d.ts +8 -0
- package/dist/components/description.svelte +7 -0
- package/dist/components/description.svelte.d.ts +6 -0
- package/dist/components/errors-list.svelte +6 -6
- package/dist/components/errors-list.svelte.d.ts +4 -2
- package/dist/components/exports.d.ts +8 -0
- package/dist/components/exports.js +8 -0
- package/dist/components/form.svelte +17 -0
- package/dist/components/form.svelte.d.ts +8 -0
- package/dist/components/help.svelte +7 -0
- package/dist/components/help.svelte.d.ts +5 -0
- package/dist/components/{layout-component.svelte → layout.svelte} +15 -11
- package/dist/components/layout.svelte.d.ts +6 -0
- package/dist/components/submit-button.svelte +13 -0
- package/dist/components/submit-button.svelte.d.ts +6 -0
- package/dist/components/title.svelte +16 -0
- package/dist/components/title.svelte.d.ts +8 -0
- package/dist/definitions.d.ts +72 -0
- package/dist/definitions.js +9 -0
- package/dist/extra-widgets/date-picker-include.d.ts +1 -0
- package/dist/extra-widgets/date-picker-include.js +4 -0
- package/dist/extra-widgets/date-picker.svelte +12 -0
- package/dist/extra-widgets/date-picker.svelte.d.ts +4 -0
- package/dist/extra-widgets/multi-select-include.d.ts +1 -0
- package/dist/extra-widgets/multi-select-include.js +4 -0
- package/dist/extra-widgets/multi-select.svelte +34 -0
- package/dist/extra-widgets/multi-select.svelte.d.ts +4 -0
- package/dist/extra-widgets/radio-include.d.ts +1 -0
- package/dist/extra-widgets/radio-include.js +4 -0
- package/dist/{widgets/radio-widget.svelte → extra-widgets/radio.svelte} +9 -3
- package/dist/extra-widgets/radio.svelte.d.ts +4 -0
- package/dist/extra-widgets/range-include.d.ts +1 -0
- package/dist/extra-widgets/range-include.js +4 -0
- package/dist/extra-widgets/range.svelte +12 -0
- package/dist/extra-widgets/range.svelte.d.ts +4 -0
- package/dist/extra-widgets/textarea-include.d.ts +1 -0
- package/dist/extra-widgets/textarea-include.js +4 -0
- package/dist/extra-widgets/textarea.svelte +14 -0
- package/dist/extra-widgets/textarea.svelte.d.ts +4 -0
- package/dist/index.d.ts +107 -4
- package/dist/index.js +8 -6
- package/dist/preset.d.ts +5 -1
- package/dist/styles.css +1 -1
- package/dist/widgets/checkbox.svelte +16 -0
- package/dist/widgets/checkbox.svelte.d.ts +3 -0
- package/dist/widgets/{checkboxes-widget.svelte → checkboxes.svelte} +15 -3
- package/dist/widgets/checkboxes.svelte.d.ts +3 -0
- package/dist/widgets/exports.d.ts +6 -0
- package/dist/widgets/exports.js +6 -0
- package/dist/widgets/file.svelte +28 -0
- package/dist/widgets/file.svelte.d.ts +7 -0
- package/dist/widgets/number.svelte +17 -0
- package/dist/widgets/number.svelte.d.ts +3 -0
- package/dist/widgets/select.svelte +31 -0
- package/dist/widgets/select.svelte.d.ts +3 -0
- package/dist/widgets/text.svelte +12 -0
- package/dist/widgets/text.svelte.d.ts +3 -0
- package/package.json +37 -24
- package/dist/components/button-component.svelte +0 -19
- package/dist/components/button-component.svelte.d.ts +0 -3
- package/dist/components/description-component.svelte +0 -7
- package/dist/components/description-component.svelte.d.ts +0 -3
- package/dist/components/form-component.svelte +0 -9
- package/dist/components/form-component.svelte.d.ts +0 -3
- package/dist/components/help-component.svelte +0 -7
- package/dist/components/help-component.svelte.d.ts +0 -3
- package/dist/components/index.d.ts +0 -5
- package/dist/components/index.js +0 -17
- package/dist/components/layout-component.svelte.d.ts +0 -3
- package/dist/components/title-component.svelte +0 -16
- package/dist/components/title-component.svelte.d.ts +0 -3
- package/dist/widgets/checkbox-widget.svelte +0 -15
- package/dist/widgets/checkbox-widget.svelte.d.ts +0 -2
- package/dist/widgets/checkboxes-widget.svelte.d.ts +0 -2
- package/dist/widgets/file-widget.svelte +0 -21
- package/dist/widgets/file-widget.svelte.d.ts +0 -2
- package/dist/widgets/index.d.ts +0 -5
- package/dist/widgets/index.js +0 -20
- package/dist/widgets/number-widget.svelte +0 -14
- package/dist/widgets/number-widget.svelte.d.ts +0 -2
- package/dist/widgets/radio-widget.svelte.d.ts +0 -2
- package/dist/widgets/select-widget.svelte +0 -40
- package/dist/widgets/select-widget.svelte.d.ts +0 -2
- package/dist/widgets/text-widget.svelte +0 -12
- package/dist/widgets/text-widget.svelte.d.ts +0 -2
- package/dist/widgets/textarea-widget.svelte +0 -7
- package/dist/widgets/textarea-widget.svelte.d.ts +0 -2
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { getFormContext, selectAttributes, type ComponentProps } from '@sjsf/form';
|
|
3
|
+
import { indexMapper, singleOption } from '@sjsf/form/options.svelte';
|
|
4
|
+
|
|
5
|
+
let { value = $bindable(), options, config, handlers }: ComponentProps['selectWidget'] = $props();
|
|
6
|
+
|
|
7
|
+
const mapped = $derived(
|
|
8
|
+
singleOption({
|
|
9
|
+
mapper: () => indexMapper(options),
|
|
10
|
+
value: () => value,
|
|
11
|
+
update: (v) => (value = v)
|
|
12
|
+
})
|
|
13
|
+
);
|
|
14
|
+
|
|
15
|
+
const ctx = getFormContext();
|
|
16
|
+
|
|
17
|
+
const attributes = $derived(
|
|
18
|
+
selectAttributes(ctx, config, handlers, config.uiOptions?.select)
|
|
19
|
+
);
|
|
20
|
+
</script>
|
|
21
|
+
|
|
22
|
+
<select class="select" bind:value={mapped.value} {...attributes}>
|
|
23
|
+
{#if config.schema.default === undefined}
|
|
24
|
+
<option value={-1}>{attributes.placeholder}</option>
|
|
25
|
+
{/if}
|
|
26
|
+
{#each options as option, index (option.id)}
|
|
27
|
+
<option value={index} disabled={option.disabled}>
|
|
28
|
+
{option.label}
|
|
29
|
+
</option>
|
|
30
|
+
{/each}
|
|
31
|
+
</select>
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
<script lang="ts">
|
|
2
|
+
import { Datalist, getFormContext, inputAttributes, type ComponentProps } from '@sjsf/form';
|
|
3
|
+
|
|
4
|
+
let { value = $bindable(), config, handlers }: ComponentProps['textWidget'] = $props();
|
|
5
|
+
|
|
6
|
+
const ctx = getFormContext();
|
|
7
|
+
|
|
8
|
+
const attributes = $derived(inputAttributes(ctx, config, handlers, config.uiOptions?.text));
|
|
9
|
+
</script>
|
|
10
|
+
|
|
11
|
+
<input type="text" bind:value class="input" {...attributes} />
|
|
12
|
+
<Datalist id={attributes.list} {config} />
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sjsf/skeleton-theme",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0-next.0",
|
|
4
4
|
"description": "The skeleton based theme for svelte-jsonschema-form",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"keywords": [
|
|
@@ -25,6 +25,18 @@
|
|
|
25
25
|
"bugs": "https://github.com/x0k/svelte-jsonschema-form/issues",
|
|
26
26
|
"homepage": "https://x0k.github.io/svelte-jsonschema-form/",
|
|
27
27
|
"exports": {
|
|
28
|
+
"./components/*": {
|
|
29
|
+
"types": "./dist/components/*.d.ts",
|
|
30
|
+
"svelte": "./dist/components/*"
|
|
31
|
+
},
|
|
32
|
+
"./widgets/*": {
|
|
33
|
+
"types": "./dist/widgets/*.d.ts",
|
|
34
|
+
"svelte": "./dist/widgets/*"
|
|
35
|
+
},
|
|
36
|
+
"./extra-widgets/*": {
|
|
37
|
+
"types": "./dist/extra-widgets/*.d.ts",
|
|
38
|
+
"svelte": "./dist/extra-widgets/*"
|
|
39
|
+
},
|
|
28
40
|
".": {
|
|
29
41
|
"types": "./dist/index.d.ts",
|
|
30
42
|
"svelte": "./dist/index.js"
|
|
@@ -36,38 +48,39 @@
|
|
|
36
48
|
"./styles.css": "./dist/styles.css"
|
|
37
49
|
},
|
|
38
50
|
"peerDependencies": {
|
|
39
|
-
"@sjsf/form": "^
|
|
40
|
-
"@skeletonlabs/skeleton": "
|
|
41
|
-
"@tailwindcss/forms": "^0.5.
|
|
42
|
-
"svelte": "^5.
|
|
51
|
+
"@sjsf/form": "^2.0.0-next.0",
|
|
52
|
+
"@skeletonlabs/skeleton": ">=3.0.0-next.0 <=3.0.0-next.10",
|
|
53
|
+
"@tailwindcss/forms": "^0.5.10",
|
|
54
|
+
"svelte": "^5.23.0"
|
|
43
55
|
},
|
|
44
56
|
"devDependencies": {
|
|
45
|
-
"@playwright/test": "^1.
|
|
57
|
+
"@playwright/test": "^1.51.0",
|
|
46
58
|
"@skeletonlabs/skeleton": "3.0.0-next.10",
|
|
47
59
|
"@sveltejs/adapter-static": "^3.0.8",
|
|
48
|
-
"@sveltejs/kit": "^2.
|
|
49
|
-
"@sveltejs/package": "^2.3.
|
|
60
|
+
"@sveltejs/kit": "^2.19.0",
|
|
61
|
+
"@sveltejs/package": "^2.3.10",
|
|
50
62
|
"@sveltejs/vite-plugin-svelte": "^5.0.3",
|
|
51
63
|
"@tailwindcss/forms": "^0.5.10",
|
|
52
64
|
"@types/eslint": "^9.6.1",
|
|
53
65
|
"ajv": "^8.17.1",
|
|
54
|
-
"autoprefixer": "^10.4.
|
|
55
|
-
"eslint": "^9.
|
|
56
|
-
"eslint-config-prettier": "^
|
|
57
|
-
"eslint-plugin-svelte": "^
|
|
58
|
-
"globals": "^
|
|
59
|
-
"postcss": "^8.
|
|
60
|
-
"prettier": "^3.
|
|
61
|
-
"prettier-plugin-svelte": "^3.3.
|
|
62
|
-
"svelte": "^5.
|
|
63
|
-
"svelte-check": "^4.1.
|
|
66
|
+
"autoprefixer": "^10.4.21",
|
|
67
|
+
"eslint": "^9.22.0",
|
|
68
|
+
"eslint-config-prettier": "^10.1.1",
|
|
69
|
+
"eslint-plugin-svelte": "^3.1.0",
|
|
70
|
+
"globals": "^16.0.0",
|
|
71
|
+
"postcss": "^8.5.3",
|
|
72
|
+
"prettier": "^3.5.3",
|
|
73
|
+
"prettier-plugin-svelte": "^3.3.3",
|
|
74
|
+
"svelte": "^5.23.0",
|
|
75
|
+
"svelte-check": "^4.1.5",
|
|
64
76
|
"tailwindcss": "^3.4.17",
|
|
65
|
-
"typescript-eslint": "^8.
|
|
66
|
-
"vite": "6.
|
|
67
|
-
"vitest": "3.0.
|
|
68
|
-
"@sjsf/ajv8-validator": "
|
|
69
|
-
"@sjsf/
|
|
70
|
-
"
|
|
77
|
+
"typescript-eslint": "^8.26.1",
|
|
78
|
+
"vite": "6.2.1",
|
|
79
|
+
"vitest": "3.0.8",
|
|
80
|
+
"@sjsf/ajv8-validator": "2.0.0-next.0",
|
|
81
|
+
"@sjsf/basic-theme": "2.0.0-next.0",
|
|
82
|
+
"@sjsf/form": "2.0.0-next.0",
|
|
83
|
+
"testing": "0.1.0-next.0"
|
|
71
84
|
},
|
|
72
85
|
"svelte": "./dist/index.js",
|
|
73
86
|
"types": "./dist/index.d.ts",
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import type { ComponentProps } from '@sjsf/form';
|
|
3
|
-
|
|
4
|
-
const { children, type, attributes, disabled, onclick }: ComponentProps<'button'> = $props();
|
|
5
|
-
|
|
6
|
-
const isSubmit = $derived(type === 'submit');
|
|
7
|
-
</script>
|
|
8
|
-
|
|
9
|
-
<button
|
|
10
|
-
class="btn preset-filled"
|
|
11
|
-
class:preset-filled-primary-500={isSubmit}
|
|
12
|
-
class:w-full={isSubmit}
|
|
13
|
-
type={isSubmit ? 'submit' : 'button'}
|
|
14
|
-
{onclick}
|
|
15
|
-
{...attributes}
|
|
16
|
-
{disabled}
|
|
17
|
-
>
|
|
18
|
-
{@render children()}
|
|
19
|
-
</button>
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import type { FormComponentProps } from '@sjsf/form'
|
|
3
|
-
|
|
4
|
-
let { children, form = $bindable(), onsubmit, attributes }: FormComponentProps = $props();
|
|
5
|
-
</script>
|
|
6
|
-
|
|
7
|
-
<form class="flex flex-col gap-4" {onsubmit} {...attributes} bind:this={form} >
|
|
8
|
-
{@render children?.()}
|
|
9
|
-
</form>
|
package/dist/components/index.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import FormComponent from "./form-component.svelte";
|
|
2
|
-
import ButtonComponent from "./button-component.svelte";
|
|
3
|
-
import LayoutComponent from "./layout-component.svelte";
|
|
4
|
-
import TitleComponent from "./title-component.svelte";
|
|
5
|
-
import DescriptionComponent from "./description-component.svelte";
|
|
6
|
-
import HelpComponent from "./help-component.svelte";
|
|
7
|
-
import ErrorsList from './errors-list.svelte';
|
|
8
|
-
export const registry = {
|
|
9
|
-
form: FormComponent,
|
|
10
|
-
button: ButtonComponent,
|
|
11
|
-
layout: LayoutComponent,
|
|
12
|
-
title: TitleComponent,
|
|
13
|
-
description: DescriptionComponent,
|
|
14
|
-
help: HelpComponent,
|
|
15
|
-
errorsList: ErrorsList
|
|
16
|
-
};
|
|
17
|
-
export const components = (type) => registry[type];
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import type { ComponentProps } from "@sjsf/form";
|
|
3
|
-
|
|
4
|
-
const { title, type, forId, required }: ComponentProps<"title"> = $props();
|
|
5
|
-
</script>
|
|
6
|
-
|
|
7
|
-
{#if type === "field"}
|
|
8
|
-
<label class="label-text" for={forId}>
|
|
9
|
-
{title}
|
|
10
|
-
{#if required}
|
|
11
|
-
<span>*</span>
|
|
12
|
-
{/if}
|
|
13
|
-
</label>
|
|
14
|
-
{:else}
|
|
15
|
-
<div class="font-bold text-2xl">{title}</div>
|
|
16
|
-
{/if}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import type { WidgetProps } from '@sjsf/form';
|
|
3
|
-
|
|
4
|
-
let { config, value = $bindable(), attributes }: WidgetProps<'checkbox'> = $props();
|
|
5
|
-
</script>
|
|
6
|
-
|
|
7
|
-
<label class="flex items-center space-x-2 cursor-pointer">
|
|
8
|
-
<input
|
|
9
|
-
type="checkbox"
|
|
10
|
-
class="checkbox"
|
|
11
|
-
bind:checked={value}
|
|
12
|
-
{...attributes}
|
|
13
|
-
/>
|
|
14
|
-
<p>{config.title}</p>
|
|
15
|
-
</label>
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import type { WidgetProps } from '@sjsf/form';
|
|
3
|
-
|
|
4
|
-
let {
|
|
5
|
-
attributes,
|
|
6
|
-
multiple,
|
|
7
|
-
loading,
|
|
8
|
-
processing,
|
|
9
|
-
value = $bindable()
|
|
10
|
-
}: WidgetProps<'file'> = $props();
|
|
11
|
-
</script>
|
|
12
|
-
|
|
13
|
-
<input
|
|
14
|
-
type="file"
|
|
15
|
-
bind:files={value}
|
|
16
|
-
{multiple}
|
|
17
|
-
class="input"
|
|
18
|
-
data-loading={loading}
|
|
19
|
-
data-processing={processing}
|
|
20
|
-
{...attributes}
|
|
21
|
-
/>
|
package/dist/widgets/index.d.ts
DELETED
package/dist/widgets/index.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import TextWidget from './text-widget.svelte';
|
|
2
|
-
import TextareaWidget from './textarea-widget.svelte';
|
|
3
|
-
import NumberWidget from './number-widget.svelte';
|
|
4
|
-
import SelectWidget from './select-widget.svelte';
|
|
5
|
-
import CheckBoxWidget from './checkbox-widget.svelte';
|
|
6
|
-
import RadioWidget from './radio-widget.svelte';
|
|
7
|
-
import CheckboxesWidget from './checkboxes-widget.svelte';
|
|
8
|
-
import FileWidget from './file-widget.svelte';
|
|
9
|
-
export const registry = {
|
|
10
|
-
text: TextWidget,
|
|
11
|
-
textarea: TextareaWidget,
|
|
12
|
-
number: NumberWidget,
|
|
13
|
-
select: SelectWidget,
|
|
14
|
-
checkbox: CheckBoxWidget,
|
|
15
|
-
radio: RadioWidget,
|
|
16
|
-
checkboxes: CheckboxesWidget,
|
|
17
|
-
file: FileWidget,
|
|
18
|
-
};
|
|
19
|
-
// @ts-expect-error TODO: improve `widgets` type
|
|
20
|
-
export const widgets = (type) => registry[type];
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import type { WidgetProps } from '@sjsf/form';
|
|
3
|
-
|
|
4
|
-
let { value = $bindable(), attributes }: WidgetProps<'number'> = $props();
|
|
5
|
-
</script>
|
|
6
|
-
|
|
7
|
-
<input
|
|
8
|
-
type="number"
|
|
9
|
-
bind:value
|
|
10
|
-
class={attributes.type === 'range'
|
|
11
|
-
? 'range grow w-0'
|
|
12
|
-
: 'input'}
|
|
13
|
-
{...attributes}
|
|
14
|
-
/>
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
<script lang="ts">
|
|
2
|
-
import { singleOption, indexMapper, multipleOptions, type WidgetProps } from '@sjsf/form';
|
|
3
|
-
|
|
4
|
-
let {
|
|
5
|
-
attributes,
|
|
6
|
-
value = $bindable(),
|
|
7
|
-
options,
|
|
8
|
-
multiple,
|
|
9
|
-
config
|
|
10
|
-
}: WidgetProps<'select'> = $props();
|
|
11
|
-
|
|
12
|
-
const mapped = $derived(
|
|
13
|
-
(multiple ? multipleOptions : singleOption)({
|
|
14
|
-
mapper: () => indexMapper(options),
|
|
15
|
-
// @ts-expect-error
|
|
16
|
-
value: () => value,
|
|
17
|
-
update: (v) => (value = v)
|
|
18
|
-
})
|
|
19
|
-
);
|
|
20
|
-
</script>
|
|
21
|
-
|
|
22
|
-
{#snippet children()}
|
|
23
|
-
{#if !multiple && config.schema.default === undefined}
|
|
24
|
-
<option value={-1}>{attributes.placeholder}</option>
|
|
25
|
-
{/if}
|
|
26
|
-
{#each options as option, index (option.id)}
|
|
27
|
-
<option value={index} disabled={option.disabled}>
|
|
28
|
-
{option.label}
|
|
29
|
-
</option>
|
|
30
|
-
{/each}
|
|
31
|
-
{/snippet}
|
|
32
|
-
{#if multiple}
|
|
33
|
-
<select class="select" bind:value={mapped.value} multiple {...attributes}>
|
|
34
|
-
{@render children()}
|
|
35
|
-
</select>
|
|
36
|
-
{:else}
|
|
37
|
-
<select class="select" bind:value={mapped.value} {...attributes}>
|
|
38
|
-
{@render children()}
|
|
39
|
-
</select>
|
|
40
|
-
{/if}
|