@functionalcms/svelte-components 5.3.6 → 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
 
@@ -197,6 +201,12 @@
197
201
  <Timepicker id={field.id} required={field.required} disabled={field.disabled} />
198
202
  {/snippet}
199
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
+
200
210
  {#snippet renderHidden(field: HiddenField)}
201
211
  <input type="hidden" id={field.id} name={field.id} value={field.value} />
202
212
  {/snippet}
@@ -225,6 +235,8 @@
225
235
  {@render renderTimePicker(field)}
226
236
  {:else if field.typeOfField === 'hidden'}
227
237
  {@render renderHidden(field)}
238
+ {:else if field.typeOfField === 'date'}
239
+ {@render renderDatePicker(field)}
228
240
  {/if}
229
241
  {/each}
230
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;
@@ -46,7 +46,15 @@ export type FilePickerField = FieldDef & {
46
46
  typeOfField: "file";
47
47
  size: "md" | "sm" | "lg";
48
48
  multiple?: boolean;
49
+ filter?: string;
49
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 & {};
50
58
  export type CollectionField = FieldDef & {
51
59
  items: Array<{
52
60
  name: string;
@@ -74,7 +82,7 @@ export type PhoneInputField = FieldDef & {
74
82
  size: "md" | "sm" | "lg";
75
83
  placeholder?: string;
76
84
  };
77
- 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;
78
86
  export declare enum SubmitResult {
79
87
  Success = "success",
80
88
  Error = "error"
@@ -87,6 +95,7 @@ export type HiddenField = {
87
95
  export declare function createInputField(id: string, label: string, type?: InputType, value?: any, options?: Partial<Omit<InputField, "id" | "label" | "typeOfField" | "type">>): InputField;
88
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;
89
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;
90
99
  export declare function createCollectionField(id: string, label: string, items: Array<{
91
100
  name: string;
92
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.6",
3
+ "version": "5.3.7",
4
4
  "license": "MIT",
5
5
  "watch": {
6
6
  "build": {