@functionalcms/svelte-components 5.3.5 → 5.3.7

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.
@@ -10,7 +10,10 @@
10
10
  type TimePickerField,
11
11
  SubmitResult,
12
12
  type ButtonConfig,
13
- type HiddenField
13
+ type HiddenField,
14
+
15
+ DatePickerField
16
+
14
17
  } from './form.js';
15
18
  import {
16
19
  Button,
@@ -23,7 +26,8 @@
23
26
  Input,
24
27
  FloatingLabelInput,
25
28
  Timepicker,
26
- PhoneInput
29
+ PhoneInput,
30
+ Datepicker
27
31
  } from 'flowbite-svelte';
28
32
  import { fade } from 'svelte/transition';
29
33
 
@@ -175,6 +179,7 @@
175
179
  readonly={field.readonly}
176
180
  disabled={field.disabled}
177
181
  class={field.class}
182
+ multiple={field.multiple}
178
183
  />
179
184
  {/snippet}
180
185
 
@@ -196,6 +201,12 @@
196
201
  <Timepicker id={field.id} required={field.required} disabled={field.disabled} />
197
202
  {/snippet}
198
203
 
204
+ {#snippet renderDatePicker(field: DatePickerField)}
205
+ <Label for={field.id} class={field.labelClass}>{field.label}</Label>
206
+ <Datepicker required={field.required} bind:value={field.value} />
207
+ <input type="hidden" name={field.id} bind:value={field.value} />
208
+ {/snippet}
209
+
199
210
  {#snippet renderHidden(field: HiddenField)}
200
211
  <input type="hidden" id={field.id} name={field.id} value={field.value} />
201
212
  {/snippet}
@@ -224,6 +235,8 @@
224
235
  {@render renderTimePicker(field)}
225
236
  {:else if field.typeOfField === 'hidden'}
226
237
  {@render renderHidden(field)}
238
+ {:else if field.typeOfField === 'date'}
239
+ {@render renderDatePicker(field)}
227
240
  {/if}
228
241
  {/each}
229
242
 
@@ -19,7 +19,7 @@ export type FieldDef = {
19
19
  label: string;
20
20
  class?: string;
21
21
  labelClass?: string;
22
- typeOfField: "input" | "textarea" | "select" | "collection" | "phoneInput" | "file" | "timepicker" | "hidden";
22
+ typeOfField: "input" | "textarea" | "select" | "collection" | "phoneInput" | "file" | "timepicker" | "date" | "hidden";
23
23
  disabled?: boolean;
24
24
  readonly?: boolean;
25
25
  required?: boolean;
@@ -45,7 +45,16 @@ export type TextareaField = FieldDef & {
45
45
  export type FilePickerField = FieldDef & {
46
46
  typeOfField: "file";
47
47
  size: "md" | "sm" | "lg";
48
+ multiple?: boolean;
49
+ filter?: string;
48
50
  };
51
+ export type DatePickerField = FieldDef & {
52
+ typeOfField: "date";
53
+ inline?: boolean;
54
+ rangeFrom?: Date | undefined;
55
+ rangeTo?: Date | undefined;
56
+ };
57
+ export type DropzoneField = FieldDef & {};
49
58
  export type CollectionField = FieldDef & {
50
59
  items: Array<{
51
60
  name: string;
@@ -73,7 +82,7 @@ export type PhoneInputField = FieldDef & {
73
82
  size: "md" | "sm" | "lg";
74
83
  placeholder?: string;
75
84
  };
76
- export type Field = InputField | TextareaField | CollectionField | SelectField | FilePickerField | TimePickerField | PhoneInputField | HiddenField;
85
+ export type Field = InputField | TextareaField | CollectionField | SelectField | FilePickerField | DatePickerField | DropzoneField | TimePickerField | PhoneInputField | HiddenField;
77
86
  export declare enum SubmitResult {
78
87
  Success = "success",
79
88
  Error = "error"
@@ -86,6 +95,7 @@ export type HiddenField = {
86
95
  export declare function createInputField(id: string, label: string, type?: InputType, value?: any, options?: Partial<Omit<InputField, "id" | "label" | "typeOfField" | "type">>): InputField;
87
96
  export declare function createTextareaField(id: string, label: string, value?: any, rows?: number, cols?: number, options?: Partial<Omit<TextareaField, "id" | "label" | "typeOfField" | "rows" | "cols">>): TextareaField;
88
97
  export declare function createFilePickerField(id: string, label: string, value?: any, options?: Partial<Omit<FilePickerField, "id" | "label" | "typeOfField">>): FilePickerField;
98
+ export declare function createDatePickerField(id: string, label: string, value?: any, options?: Partial<Omit<DatePickerField, "id" | "label" | "typeOfField">>): DatePickerField;
89
99
  export declare function createCollectionField(id: string, label: string, items: Array<{
90
100
  name: string;
91
101
  checked: boolean;
@@ -1,3 +1,4 @@
1
+ import { Dropzone } from "flowbite-svelte";
1
2
  export var InputType;
2
3
  (function (InputType) {
3
4
  InputType["Text"] = "text";
@@ -54,6 +55,15 @@ export function createFilePickerField(id, label, value = null, options = {}) {
54
55
  ...options
55
56
  };
56
57
  }
58
+ export function createDatePickerField(id, label, value = null, options = {}) {
59
+ return {
60
+ id,
61
+ label,
62
+ value,
63
+ typeOfField: "date",
64
+ ...options
65
+ };
66
+ }
57
67
  export function createCollectionField(id, label, items, groupName, type = "checkbox", value = [], options = {}) {
58
68
  return {
59
69
  id,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@functionalcms/svelte-components",
3
- "version": "5.3.5",
3
+ "version": "5.3.7",
4
4
  "license": "MIT",
5
5
  "watch": {
6
6
  "build": {