Skip to content

Commit d494c70

Browse files
committed
wip
1 parent 9b475d6 commit d494c70

65 files changed

Lines changed: 1749 additions & 2 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,11 @@
1+
# Unreleased
2+
3+
- Add 20 new field types to match EasyAdmin and React-admin coverage:
4+
- Primitives: `Password`, `Tel`, `Time`, `DateTime`, `Color`, `Integer`, `Percent`, `Money`, `Slug`, `Hidden`.
5+
- Choice-based: `Choice`, `MultiChoice`, `Radio`.
6+
- Locale/Geo pickers: `Country`, `Language`, `Locale`, `Timezone` (use the runtime `Intl.DisplayNames` API for localized labels).
7+
- Rich content: `Markdown`, `Image`, `File`.
8+
19
# v0.18.0
210

311
- **BC Break**: Rename `Date` filter to `DateRange`. A text filter can be used for precise dates.

src/lib/Fields/Choice.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import type { CommonFieldOptions, FormFieldTheme, ViewFieldTheme } from '$lib';
2+
import { BaseField } from '$lib/Fields';
3+
4+
/** */
5+
export type ChoiceItem = {
6+
label: string;
7+
value: string | number;
8+
disabled?: boolean;
9+
};
10+
11+
/** */
12+
export type ChoiceOptions = CommonFieldOptions & {
13+
choices: Array<ChoiceItem>;
14+
placeholder?: string;
15+
};
16+
17+
/** */
18+
export class ChoiceField extends BaseField<ChoiceOptions> {
19+
readonly formComponent: FormFieldTheme = 'choice';
20+
readonly viewComponent: ViewFieldTheme = 'choice';
21+
}

src/lib/Fields/Color.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import type { InputFieldOptions, FormFieldTheme, ViewFieldTheme } from '$lib';
2+
import { BaseField } from '$lib/Fields';
3+
4+
/** */
5+
export type ColorOptions = InputFieldOptions;
6+
7+
/** */
8+
export class ColorField extends BaseField<ColorOptions> {
9+
readonly formComponent: FormFieldTheme = 'color';
10+
readonly viewComponent: ViewFieldTheme = 'color';
11+
}

src/lib/Fields/Country.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import type { CommonFieldOptions, FormFieldTheme, ViewFieldTheme } from '$lib';
2+
import { BaseField } from '$lib/Fields';
3+
4+
/** */
5+
export type CountryOptions = CommonFieldOptions & {
6+
placeholder?: string;
7+
displayLocale?: string;
8+
only?: Array<string>;
9+
};
10+
11+
/** */
12+
export class CountryField extends BaseField<CountryOptions> {
13+
readonly formComponent: FormFieldTheme = 'country';
14+
readonly viewComponent: ViewFieldTheme = 'country';
15+
}

src/lib/Fields/DateTime.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import type { InputFieldOptions, FormFieldTheme, ViewFieldTheme } from '$lib';
2+
import { BaseField } from '$lib/Fields';
3+
4+
/** */
5+
export type DateTimeOptions = InputFieldOptions & {
6+
formFormat?: string;
7+
};
8+
9+
/** */
10+
export class DateTimeField extends BaseField<DateTimeOptions> {
11+
readonly formComponent: FormFieldTheme = 'date_time';
12+
readonly viewComponent: ViewFieldTheme = 'date_time';
13+
}

src/lib/Fields/File.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import type { InputFieldOptions, FormFieldTheme, ViewFieldTheme } from '$lib';
2+
import { BaseField } from '$lib/Fields';
3+
4+
/** */
5+
export type FileOptions = InputFieldOptions & {
6+
downloadLabel?: string;
7+
};
8+
9+
/** */
10+
export class FileField extends BaseField<FileOptions> {
11+
readonly formComponent: FormFieldTheme = 'file';
12+
readonly viewComponent: ViewFieldTheme = 'file';
13+
}

src/lib/Fields/Hidden.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import type { CommonFieldOptions, FormFieldTheme, ViewFieldTheme } from '$lib';
2+
import { BaseField } from '$lib/Fields';
3+
4+
/** */
5+
export type HiddenOptions = CommonFieldOptions;
6+
7+
/** */
8+
export class HiddenField extends BaseField<HiddenOptions> {
9+
readonly formComponent: FormFieldTheme = 'hidden';
10+
readonly viewComponent: ViewFieldTheme = 'hidden';
11+
}

src/lib/Fields/Image.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import type { InputFieldOptions, FormFieldTheme, ViewFieldTheme } from '$lib';
2+
import { BaseField } from '$lib/Fields';
3+
4+
/** */
5+
export type ImageOptions = InputFieldOptions & {
6+
alt?: string;
7+
width?: number;
8+
height?: number;
9+
};
10+
11+
/** */
12+
export class ImageField extends BaseField<ImageOptions> {
13+
readonly formComponent: FormFieldTheme = 'image';
14+
readonly viewComponent: ViewFieldTheme = 'image';
15+
}

src/lib/Fields/Integer.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import type { InputFieldOptions, FormFieldTheme, ViewFieldTheme } from '$lib';
2+
import { BaseField } from '$lib/Fields';
3+
4+
/** */
5+
export type IntegerOptions = InputFieldOptions & {
6+
min?: number;
7+
max?: number;
8+
step?: number;
9+
};
10+
11+
/** */
12+
export class IntegerField extends BaseField<IntegerOptions> {
13+
readonly formComponent: FormFieldTheme = 'integer';
14+
readonly viewComponent: ViewFieldTheme = 'integer';
15+
}

src/lib/Fields/Language.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import type { CommonFieldOptions, FormFieldTheme, ViewFieldTheme } from '$lib';
2+
import { BaseField } from '$lib/Fields';
3+
4+
/** */
5+
export type LanguageOptions = CommonFieldOptions & {
6+
placeholder?: string;
7+
displayLocale?: string;
8+
only?: Array<string>;
9+
};
10+
11+
/** */
12+
export class LanguageField extends BaseField<LanguageOptions> {
13+
readonly formComponent: FormFieldTheme = 'language';
14+
readonly viewComponent: ViewFieldTheme = 'language';
15+
}

0 commit comments

Comments
 (0)