@shamar/core 0.1.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/dist/actions.d.ts +39 -0
- package/dist/actions.d.ts.map +1 -0
- package/dist/actions.js +97 -0
- package/dist/actions.js.map +1 -0
- package/dist/alignment.d.ts +13 -0
- package/dist/alignment.d.ts.map +1 -0
- package/dist/alignment.js +34 -0
- package/dist/alignment.js.map +1 -0
- package/dist/currency.d.ts +16 -0
- package/dist/currency.d.ts.map +1 -0
- package/dist/currency.js +52 -0
- package/dist/currency.js.map +1 -0
- package/dist/form.d.ts +281 -0
- package/dist/form.d.ts.map +1 -0
- package/dist/form.js +756 -0
- package/dist/form.js.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/infolist.d.ts +90 -0
- package/dist/infolist.d.ts.map +1 -0
- package/dist/infolist.js +273 -0
- package/dist/infolist.js.map +1 -0
- package/dist/labels.d.ts +6 -0
- package/dist/labels.d.ts.map +1 -0
- package/dist/labels.js +26 -0
- package/dist/labels.js.map +1 -0
- package/dist/panel.d.ts +20 -0
- package/dist/panel.d.ts.map +1 -0
- package/dist/panel.js +46 -0
- package/dist/panel.js.map +1 -0
- package/dist/permissions.d.ts +43 -0
- package/dist/permissions.d.ts.map +1 -0
- package/dist/permissions.js +152 -0
- package/dist/permissions.js.map +1 -0
- package/dist/policy-types.d.ts +23 -0
- package/dist/policy-types.d.ts.map +1 -0
- package/dist/policy-types.js +8 -0
- package/dist/policy-types.js.map +1 -0
- package/dist/reactivity.d.ts +23 -0
- package/dist/reactivity.d.ts.map +1 -0
- package/dist/reactivity.js +68 -0
- package/dist/reactivity.js.map +1 -0
- package/dist/record-value.d.ts +31 -0
- package/dist/record-value.d.ts.map +1 -0
- package/dist/record-value.js +118 -0
- package/dist/record-value.js.map +1 -0
- package/dist/registry.d.ts +16 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +49 -0
- package/dist/registry.js.map +1 -0
- package/dist/relation.d.ts +28 -0
- package/dist/relation.d.ts.map +1 -0
- package/dist/relation.js +69 -0
- package/dist/relation.js.map +1 -0
- package/dist/resource.d.ts +100 -0
- package/dist/resource.d.ts.map +1 -0
- package/dist/resource.js +165 -0
- package/dist/resource.js.map +1 -0
- package/dist/schemas.d.ts +193 -0
- package/dist/schemas.d.ts.map +1 -0
- package/dist/schemas.js +501 -0
- package/dist/schemas.js.map +1 -0
- package/dist/table.d.ts +71 -0
- package/dist/table.d.ts.map +1 -0
- package/dist/table.js +172 -0
- package/dist/table.js.map +1 -0
- package/dist/types.d.ts +474 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/validation.d.ts +27 -0
- package/dist/validation.d.ts.map +1 -0
- package/dist/validation.js +182 -0
- package/dist/validation.js.map +1 -0
- package/package.json +30 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relation.js","sourceRoot":"","sources":["../src/relation.ts"],"names":[],"mappings":"AAsBA,6CAA6C;AAC7C,MAAM,UAAU,qBAAqB,CAAC,IAAkB;IACtD,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,SAAS;YACZ,OAAO,OAAO,CAAC;QACjB,KAAK,YAAY;YACf,OAAO,UAAU,CAAC;QACpB,KAAK,WAAW,CAAC;QACjB;YACE,OAAO,UAAU,CAAC;IACtB,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CACjC,QAAgB,EAChB,cAAsB,EACtB,UAA+B,EAAE;IAEjC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,WAAW,CAAC;IACzC,OAAO;QACL,IAAI;QACJ,QAAQ;QACR,UAAU,EAAE,cAAc;QAC1B,cAAc;QACd,UAAU,EAAE,OAAO,CAAC,UAAU;QAC9B,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,qBAAqB,CAAC,IAAI,CAAC;QACrD,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,mBAAmB,EAAE,OAAO,CAAC,mBAAmB;QAChD,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,eAAe,EAAE,OAAO,CAAC,eAAe;QACxC,cAAc,EAAE,OAAO,CAAC,cAAc;QACtC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;QAC1C,cAAc,EAAE,OAAO,CAAC,cAAc;KACvC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC/B,MAAmB,EACnB,QAAgB,EAChB,cAAsB,EACtB,UAA+B,EAAE;IAEjC,MAAM,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,EAAE,cAAc,EAAE,OAAO,CAAC,CAAC;IACxE,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,IAAI,IAAI,CAAC;IAE9C,IAAI,QAAQ,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QACnC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;IACzB,CAAC;IAED,IAAI,QAAQ,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAChC,4EAA4E;QAC5E,MAAM,CAAC,UAAU,GAAG,KAAK,CAAC;QAC1B,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;IACzB,CAAC;IAED,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QAChC,MAAM,CAAC,IAAI,GAAG,OAAO,CAAC;IACxB,CAAC;SAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;QAC9C,MAAM,CAAC,IAAI,GAAG,cAAc,CAAC;QAC7B,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;IACzB,CAAC;SAAM,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QACvC,MAAM,CAAC,IAAI,GAAG,eAAe,CAAC;QAC9B,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC;IACzB,CAAC;SAAM,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;QACrE,MAAM,CAAC,IAAI,GAAG,UAAU,CAAC;IAC3B,CAAC;AACH,CAAC;AAED,sDAAsD;AACtD,MAAM,UAAU,sBAAsB,CAAC,QAAwB;IAC7D,OAAO,QAAQ,CAAC,cAAc,IAAI,QAAQ,CAAC,UAAU,CAAC;AACxD,CAAC"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { defaultActions } from './actions.js';
|
|
2
|
+
import { form, FormBuilder } from './form.js';
|
|
3
|
+
import { infolist, InfolistBuilder } from './infolist.js';
|
|
4
|
+
import type { PolicyClass } from './policy-types.js';
|
|
5
|
+
import { table, TableBuilder } from './table.js';
|
|
6
|
+
import type { DataAdapter, ResourceMeta, ResourceModel, ShamarUser } from './types.js';
|
|
7
|
+
/** Result of {@link Resource.prepareCreate} before adapter.create. */
|
|
8
|
+
export interface PrepareCreateResult {
|
|
9
|
+
data: Record<string, unknown>;
|
|
10
|
+
/** One-time secret to flash after create (e.g. API key plaintext). */
|
|
11
|
+
flashPlainText?: string;
|
|
12
|
+
/** Override success flash message. */
|
|
13
|
+
flashMessage?: string;
|
|
14
|
+
}
|
|
15
|
+
export interface PrepareCreateContext {
|
|
16
|
+
adapter: DataAdapter;
|
|
17
|
+
meta: ResourceMeta;
|
|
18
|
+
/** Authenticated user id when available (audit). */
|
|
19
|
+
userId?: string | null;
|
|
20
|
+
}
|
|
21
|
+
export interface HandleActionContext {
|
|
22
|
+
adapter: DataAdapter;
|
|
23
|
+
meta: ResourceMeta;
|
|
24
|
+
userId?: string | null;
|
|
25
|
+
user?: ShamarUser | null;
|
|
26
|
+
}
|
|
27
|
+
export interface HandleActionResult {
|
|
28
|
+
message?: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Base resource class — Filament `Resource` equivalent.
|
|
32
|
+
*
|
|
33
|
+
* Override `form`, `table`, and optionally `infolist` / `detail`.
|
|
34
|
+
*/
|
|
35
|
+
export declare abstract class Resource {
|
|
36
|
+
static slug: string;
|
|
37
|
+
static label: string;
|
|
38
|
+
static singularLabel: string;
|
|
39
|
+
static model: ResourceModel;
|
|
40
|
+
static connection?: string;
|
|
41
|
+
static navigationGroup?: string;
|
|
42
|
+
static navigationSort?: number;
|
|
43
|
+
static recordTitleField: string;
|
|
44
|
+
static icon?: string;
|
|
45
|
+
static companyScoped?: boolean;
|
|
46
|
+
static softDelete?: boolean | {
|
|
47
|
+
field?: string;
|
|
48
|
+
};
|
|
49
|
+
/** Optional record-level policy (Loom / Laravel style). */
|
|
50
|
+
static policy?: PolicyClass;
|
|
51
|
+
static form(): ReturnType<typeof form>;
|
|
52
|
+
static table(): ReturnType<typeof table>;
|
|
53
|
+
/**
|
|
54
|
+
* Detail/infolist schema. When not overridden, derived from form fields.
|
|
55
|
+
* Alias: `detail()`.
|
|
56
|
+
*/
|
|
57
|
+
static infolist(): ReturnType<typeof infolist> | undefined;
|
|
58
|
+
/** Alias for `infolist()` (Filament naming). */
|
|
59
|
+
static detail(): ReturnType<typeof infolist> | undefined;
|
|
60
|
+
static resourceActions(): ReturnType<typeof defaultActions>;
|
|
61
|
+
/**
|
|
62
|
+
* Extra abilities beyond CRUD (`viewAny` / `view` / `create` / `edit` / `delete`).
|
|
63
|
+
* Seeded as `{slug}:{ability}` unless the name already contains `:`.
|
|
64
|
+
*/
|
|
65
|
+
static permissions(): Array<string | {
|
|
66
|
+
name: string;
|
|
67
|
+
label?: string;
|
|
68
|
+
}>;
|
|
69
|
+
/**
|
|
70
|
+
* Mutate create payload before validation / adapter.create.
|
|
71
|
+
* Return `flashPlainText` for one-time secrets (API keys).
|
|
72
|
+
*/
|
|
73
|
+
static prepareCreate(data: Record<string, unknown>, _ctx: PrepareCreateContext): PrepareCreateResult | Promise<PrepareCreateResult>;
|
|
74
|
+
/**
|
|
75
|
+
* Handle a named custom action (`placement: 'row' | 'bulk'`) for one or more records.
|
|
76
|
+
* Return `null`/`undefined` when the action is unknown so the controller can 400.
|
|
77
|
+
*/
|
|
78
|
+
static handleAction(_action: string, _records: Record<string, unknown>[], _ctx: HandleActionContext): HandleActionResult | void | null | Promise<HandleActionResult | void | null>;
|
|
79
|
+
/** Whether the resource appears in navigation and is reachable. */
|
|
80
|
+
static canAccess(user: ShamarUser): boolean;
|
|
81
|
+
static canViewAny(user: ShamarUser): boolean;
|
|
82
|
+
static canView(user: ShamarUser, record?: Record<string, unknown>): boolean;
|
|
83
|
+
static canCreate(user: ShamarUser): boolean;
|
|
84
|
+
static canEdit(user: ShamarUser, record?: Record<string, unknown>): boolean;
|
|
85
|
+
static canDelete(user: ShamarUser, record?: Record<string, unknown>): boolean;
|
|
86
|
+
static configure(): ResourceMeta;
|
|
87
|
+
static recordTitle(record: Record<string, unknown>): string;
|
|
88
|
+
}
|
|
89
|
+
export declare function extendResource<Base extends typeof Resource>(Base: Base, overrides: {
|
|
90
|
+
slug?: string;
|
|
91
|
+
label?: string;
|
|
92
|
+
singularLabel?: string;
|
|
93
|
+
model?: ResourceModel;
|
|
94
|
+
connection?: string;
|
|
95
|
+
navigationGroup?: string;
|
|
96
|
+
form?: (builder: FormBuilder) => void;
|
|
97
|
+
table?: (builder: TableBuilder) => void;
|
|
98
|
+
infolist?: (builder: InfolistBuilder) => void;
|
|
99
|
+
}): typeof Resource;
|
|
100
|
+
//# sourceMappingURL=resource.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource.d.ts","sourceRoot":"","sources":["../src/resource.ts"],"names":[],"mappings":"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"}
|
package/dist/resource.js
ADDED
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import { defaultActions } from './actions.js';
|
|
2
|
+
import { form } from './form.js';
|
|
3
|
+
import { infolist, infolistFromFields } from './infolist.js';
|
|
4
|
+
import { userHasPermission, normalizeCustomPermissions } from './permissions.js';
|
|
5
|
+
import { table } from './table.js';
|
|
6
|
+
/**
|
|
7
|
+
* Base resource class — Filament `Resource` equivalent.
|
|
8
|
+
*
|
|
9
|
+
* Override `form`, `table`, and optionally `infolist` / `detail`.
|
|
10
|
+
*/
|
|
11
|
+
export class Resource {
|
|
12
|
+
static slug = 'resources';
|
|
13
|
+
static label = 'Resources';
|
|
14
|
+
static singularLabel = 'Resource';
|
|
15
|
+
static model = 'Resource';
|
|
16
|
+
static connection;
|
|
17
|
+
static navigationGroup;
|
|
18
|
+
static navigationSort;
|
|
19
|
+
static recordTitleField = 'name';
|
|
20
|
+
static icon;
|
|
21
|
+
static companyScoped;
|
|
22
|
+
static softDelete;
|
|
23
|
+
/** Optional record-level policy (Loom / Laravel style). */
|
|
24
|
+
static policy;
|
|
25
|
+
static form() {
|
|
26
|
+
return form(() => undefined);
|
|
27
|
+
}
|
|
28
|
+
static table() {
|
|
29
|
+
return table(() => undefined);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Detail/infolist schema. When not overridden, derived from form fields.
|
|
33
|
+
* Alias: `detail()`.
|
|
34
|
+
*/
|
|
35
|
+
static infolist() {
|
|
36
|
+
return undefined;
|
|
37
|
+
}
|
|
38
|
+
/** Alias for `infolist()` (Filament naming). */
|
|
39
|
+
static detail() {
|
|
40
|
+
return this.infolist();
|
|
41
|
+
}
|
|
42
|
+
static resourceActions() {
|
|
43
|
+
return defaultActions();
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Extra abilities beyond CRUD (`viewAny` / `view` / `create` / `edit` / `delete`).
|
|
47
|
+
* Seeded as `{slug}:{ability}` unless the name already contains `:`.
|
|
48
|
+
*/
|
|
49
|
+
static permissions() {
|
|
50
|
+
return [];
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Mutate create payload before validation / adapter.create.
|
|
54
|
+
* Return `flashPlainText` for one-time secrets (API keys).
|
|
55
|
+
*/
|
|
56
|
+
static prepareCreate(data, _ctx) {
|
|
57
|
+
return { data };
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Handle a named custom action (`placement: 'row' | 'bulk'`) for one or more records.
|
|
61
|
+
* Return `null`/`undefined` when the action is unknown so the controller can 400.
|
|
62
|
+
*/
|
|
63
|
+
static handleAction(_action, _records, _ctx) {
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
/** Whether the resource appears in navigation and is reachable. */
|
|
67
|
+
static canAccess(user) {
|
|
68
|
+
return this.canViewAny(user);
|
|
69
|
+
}
|
|
70
|
+
static canViewAny(user) {
|
|
71
|
+
if (this.policy?.viewAny)
|
|
72
|
+
return Boolean(this.policy.viewAny(user, this.slug));
|
|
73
|
+
return userHasPermission(user, this.slug, 'viewAny');
|
|
74
|
+
}
|
|
75
|
+
static canView(user, record) {
|
|
76
|
+
if (this.policy?.view)
|
|
77
|
+
return Boolean(this.policy.view(user, record ?? {}, this.slug));
|
|
78
|
+
return userHasPermission(user, this.slug, 'view');
|
|
79
|
+
}
|
|
80
|
+
static canCreate(user) {
|
|
81
|
+
if (this.policy?.create)
|
|
82
|
+
return Boolean(this.policy.create(user, this.slug));
|
|
83
|
+
return userHasPermission(user, this.slug, 'create');
|
|
84
|
+
}
|
|
85
|
+
static canEdit(user, record) {
|
|
86
|
+
if (this.policy?.edit)
|
|
87
|
+
return Boolean(this.policy.edit(user, record ?? {}, this.slug));
|
|
88
|
+
return userHasPermission(user, this.slug, 'edit');
|
|
89
|
+
}
|
|
90
|
+
static canDelete(user, record) {
|
|
91
|
+
if (this.policy?.delete)
|
|
92
|
+
return Boolean(this.policy.delete(user, record ?? {}, this.slug));
|
|
93
|
+
return userHasPermission(user, this.slug, 'delete');
|
|
94
|
+
}
|
|
95
|
+
static configure() {
|
|
96
|
+
const formSchema = this.form();
|
|
97
|
+
const tableSchema = this.table();
|
|
98
|
+
const actionList = this.resourceActions();
|
|
99
|
+
const explicitInfolist = this.infolist() ?? this.detail();
|
|
100
|
+
const hasExplicitInfolist = explicitInfolist !== undefined;
|
|
101
|
+
const infolistSchema = explicitInfolist ?? infolistFromFields(formSchema.fields);
|
|
102
|
+
const searchableFields = [
|
|
103
|
+
...formSchema.fields.filter((f) => f.searchable).map((f) => f.name),
|
|
104
|
+
...tableSchema.columns.filter((c) => c.searchable).map((c) => c.name),
|
|
105
|
+
];
|
|
106
|
+
return {
|
|
107
|
+
slug: this.slug,
|
|
108
|
+
label: this.label,
|
|
109
|
+
singularLabel: this.singularLabel,
|
|
110
|
+
model: this.model,
|
|
111
|
+
connection: this.connection,
|
|
112
|
+
navigationGroup: this.navigationGroup,
|
|
113
|
+
navigationSort: this.navigationSort,
|
|
114
|
+
recordTitleField: this.recordTitleField,
|
|
115
|
+
icon: this.icon,
|
|
116
|
+
fields: formSchema.fields,
|
|
117
|
+
form: formSchema,
|
|
118
|
+
columns: tableSchema.columns,
|
|
119
|
+
infolist: infolistSchema,
|
|
120
|
+
hasExplicitInfolist,
|
|
121
|
+
actions: actionList,
|
|
122
|
+
searchableFields: [...new Set(searchableFields)],
|
|
123
|
+
defaultSort: tableSchema.defaultSort,
|
|
124
|
+
defaultFilters: tableSchema.defaultFilters,
|
|
125
|
+
defaultGroupBy: tableSchema.defaultGroupBy,
|
|
126
|
+
companyScoped: this.companyScoped,
|
|
127
|
+
softDelete: this.softDelete,
|
|
128
|
+
customPermissions: normalizeCustomPermissions(this.slug, this.permissions()),
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
static recordTitle(record) {
|
|
132
|
+
const field = this.recordTitleField;
|
|
133
|
+
const value = record[field];
|
|
134
|
+
if (value != null && value !== '')
|
|
135
|
+
return String(value);
|
|
136
|
+
const id = record.id ?? record._id;
|
|
137
|
+
return id != null ? `#${id}` : 'Record';
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
export function extendResource(Base, overrides) {
|
|
141
|
+
return class ExtendedResource extends Resource {
|
|
142
|
+
static slug = overrides.slug ?? Base.slug;
|
|
143
|
+
static label = overrides.label ?? Base.label;
|
|
144
|
+
static singularLabel = overrides.singularLabel ?? Base.singularLabel;
|
|
145
|
+
static model = overrides.model ?? Base.model;
|
|
146
|
+
static connection = overrides.connection ?? Base.connection;
|
|
147
|
+
static navigationGroup = overrides.navigationGroup ?? Base.navigationGroup;
|
|
148
|
+
static form() {
|
|
149
|
+
if (!overrides.form)
|
|
150
|
+
return Base.form();
|
|
151
|
+
return form(overrides.form);
|
|
152
|
+
}
|
|
153
|
+
static table() {
|
|
154
|
+
if (!overrides.table)
|
|
155
|
+
return Base.table();
|
|
156
|
+
return table(overrides.table);
|
|
157
|
+
}
|
|
158
|
+
static infolist() {
|
|
159
|
+
if (!overrides.infolist)
|
|
160
|
+
return Base.infolist();
|
|
161
|
+
return infolist(overrides.infolist);
|
|
162
|
+
}
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
//# sourceMappingURL=resource.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resource.js","sourceRoot":"","sources":["../src/resource.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
import type { FieldConfig, FormSection, InfolistEntryConfig, InfolistSectionConfig, SchemaNode, CalloutStatus, ColumnSpan } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Filament 5 shared schema layout — used by both forms and infolists.
|
|
4
|
+
* Leaves stay separate (`FormComponent` / `TextEntry`); chrome is shared.
|
|
5
|
+
*/
|
|
6
|
+
export type SchemaLeafKind = 'field' | 'entry';
|
|
7
|
+
/** Duck-typed leaf: form fields and infolist entries. */
|
|
8
|
+
export interface SchemaLeaf {
|
|
9
|
+
readonly _schemaLeaf: SchemaLeafKind;
|
|
10
|
+
build(): FieldConfig | InfolistEntryConfig;
|
|
11
|
+
}
|
|
12
|
+
/** Anything that can appear in a schema() array. */
|
|
13
|
+
export type SchemaItem = LayoutComponent | SchemaLeaf;
|
|
14
|
+
/** Walk a schema tree and collect field configs (deduped). */
|
|
15
|
+
export declare function collectFields(nodes: SchemaNode[]): FieldConfig[];
|
|
16
|
+
/** Walk a schema tree and collect entry configs (deduped). */
|
|
17
|
+
export declare function collectEntries(nodes: SchemaNode[]): InfolistEntryConfig[];
|
|
18
|
+
/**
|
|
19
|
+
* Base for Filament schema layout components.
|
|
20
|
+
*/
|
|
21
|
+
declare abstract class LayoutComponent {
|
|
22
|
+
protected sectionColumns: 1 | 2 | 3 | 4;
|
|
23
|
+
protected descriptionText?: string;
|
|
24
|
+
protected iconName?: string;
|
|
25
|
+
protected cardEnabled?: boolean;
|
|
26
|
+
protected denseEnabled?: boolean;
|
|
27
|
+
protected gapEnabled: boolean;
|
|
28
|
+
protected collapsibleEnabled?: boolean;
|
|
29
|
+
protected collapsedEnabled?: boolean;
|
|
30
|
+
protected growEnabled?: boolean;
|
|
31
|
+
protected fromBreakpoint?: string;
|
|
32
|
+
protected statusValue?: CalloutStatus;
|
|
33
|
+
protected contentText?: string;
|
|
34
|
+
protected badgeValue?: string | number;
|
|
35
|
+
protected activeTabIndex?: number;
|
|
36
|
+
protected verticalEnabled?: boolean;
|
|
37
|
+
protected columnSpanValue?: ColumnSpan;
|
|
38
|
+
protected columnStartValue?: number;
|
|
39
|
+
protected extraAttrs?: Record<string, string>;
|
|
40
|
+
protected children: SchemaItem[];
|
|
41
|
+
protected name: string;
|
|
42
|
+
protected title: string;
|
|
43
|
+
protected abstract readonly kind: SchemaNode['kind'];
|
|
44
|
+
protected constructor(title?: string, name?: string);
|
|
45
|
+
columns(value: 1 | 2 | 3 | 4): this;
|
|
46
|
+
/** Set / replace the heading (Filament `heading()`). */
|
|
47
|
+
heading(value: string): this;
|
|
48
|
+
description(value: string): this;
|
|
49
|
+
/**
|
|
50
|
+
* White elevated body (`true`) or transparent (`false`).
|
|
51
|
+
* Defaults: Section → card, Fieldset → transparent, Tabs → card.
|
|
52
|
+
*/
|
|
53
|
+
card(value?: boolean): this;
|
|
54
|
+
/** Filament-style alias: contained(false) ≈ card(false). */
|
|
55
|
+
contained(value?: boolean): this;
|
|
56
|
+
dense(value?: boolean): this;
|
|
57
|
+
gap(value?: boolean): this;
|
|
58
|
+
collapsible(value?: boolean): this;
|
|
59
|
+
collapsed(value?: boolean): this;
|
|
60
|
+
grow(value?: boolean): this;
|
|
61
|
+
from(breakpoint: string): this;
|
|
62
|
+
columnSpan(value: ColumnSpan): this;
|
|
63
|
+
columnSpanFull(): this;
|
|
64
|
+
columnStart(value: number): this;
|
|
65
|
+
extraAttributes(attrs: Record<string, string>, options?: {
|
|
66
|
+
merge?: boolean;
|
|
67
|
+
}): this;
|
|
68
|
+
schema(children: SchemaItem[]): this;
|
|
69
|
+
protected defaultCard(): boolean;
|
|
70
|
+
/** @internal Build nested SchemaNode (does not flatten chrome). */
|
|
71
|
+
buildNode(): SchemaNode;
|
|
72
|
+
/** @deprecated Prefer buildNode + collectFields. Kept for FormSection BC. */
|
|
73
|
+
buildFormSection(): FormSection;
|
|
74
|
+
/** @deprecated Prefer buildNode + collectEntries. Kept for InfolistSection BC. */
|
|
75
|
+
buildInfolistSection(): InfolistSectionConfig;
|
|
76
|
+
}
|
|
77
|
+
export { LayoutComponent };
|
|
78
|
+
/**
|
|
79
|
+
* Filament `Schemas\Components\Section::make()` / `Section::make('Title')`.
|
|
80
|
+
*/
|
|
81
|
+
export declare class Section extends LayoutComponent {
|
|
82
|
+
protected readonly kind: "section";
|
|
83
|
+
static make(title?: string): Section;
|
|
84
|
+
icon(value: string): this;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Filament `Schemas\Components\Fieldset::make('Label')`.
|
|
88
|
+
*/
|
|
89
|
+
export declare class Fieldset extends LayoutComponent {
|
|
90
|
+
protected readonly kind: "fieldset";
|
|
91
|
+
static make(title?: string): Fieldset;
|
|
92
|
+
protected defaultCard(): boolean;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Filament `Schemas\Components\Grid::make()`.
|
|
96
|
+
*/
|
|
97
|
+
export declare class Grid extends LayoutComponent {
|
|
98
|
+
protected readonly kind: "grid";
|
|
99
|
+
static make(columns?: 1 | 2 | 3 | 4): Grid;
|
|
100
|
+
protected defaultCard(): boolean;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Filament-style unstyled group wrapper.
|
|
104
|
+
*/
|
|
105
|
+
export declare class Group extends LayoutComponent {
|
|
106
|
+
protected readonly kind: "group";
|
|
107
|
+
static make(): Group;
|
|
108
|
+
protected defaultCard(): boolean;
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Filament `Schemas\Components\Flex`.
|
|
112
|
+
*/
|
|
113
|
+
export declare class Flex extends LayoutComponent {
|
|
114
|
+
protected readonly kind: "flex";
|
|
115
|
+
static make(children?: SchemaItem[]): Flex;
|
|
116
|
+
protected defaultCard(): boolean;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Filament `Schemas\Components\Tabs\Tab`.
|
|
120
|
+
*/
|
|
121
|
+
export declare class Tab extends LayoutComponent {
|
|
122
|
+
protected readonly kind: "tab";
|
|
123
|
+
static make(title: string): Tab;
|
|
124
|
+
icon(value: string): this;
|
|
125
|
+
badge(value: string | number): this;
|
|
126
|
+
protected defaultCard(): boolean;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Filament `Schemas\Components\Tabs`.
|
|
130
|
+
*/
|
|
131
|
+
export declare class Tabs extends LayoutComponent {
|
|
132
|
+
protected readonly kind: "tabs";
|
|
133
|
+
static make(title?: string): Tabs;
|
|
134
|
+
tabs(items: Tab[]): this;
|
|
135
|
+
activeTab(index: number): this;
|
|
136
|
+
vertical(value?: boolean): this;
|
|
137
|
+
protected defaultCard(): boolean;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Filament `Schemas\Components\Wizard\Step`.
|
|
141
|
+
*/
|
|
142
|
+
export declare class Step extends LayoutComponent {
|
|
143
|
+
protected readonly kind: "step";
|
|
144
|
+
static make(title: string): Step;
|
|
145
|
+
icon(value: string): this;
|
|
146
|
+
protected defaultCard(): boolean;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Filament `Schemas\Components\Wizard` (UI-only; no per-step validation yet).
|
|
150
|
+
*/
|
|
151
|
+
export declare class Wizard extends LayoutComponent {
|
|
152
|
+
protected readonly kind: "wizard";
|
|
153
|
+
static make(steps?: Step[]): Wizard;
|
|
154
|
+
steps(items: Step[]): this;
|
|
155
|
+
protected defaultCard(): boolean;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Filament `Schemas\Components\Callout`.
|
|
159
|
+
*/
|
|
160
|
+
export declare class Callout extends LayoutComponent {
|
|
161
|
+
protected readonly kind: "callout";
|
|
162
|
+
static make(title?: string): Callout;
|
|
163
|
+
icon(value: string): this;
|
|
164
|
+
info(): this;
|
|
165
|
+
success(): this;
|
|
166
|
+
warning(): this;
|
|
167
|
+
danger(): this;
|
|
168
|
+
protected defaultCard(): boolean;
|
|
169
|
+
buildNode(): SchemaNode;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Filament empty state block.
|
|
173
|
+
*/
|
|
174
|
+
export declare class EmptyState extends LayoutComponent {
|
|
175
|
+
protected readonly kind: "empty_state";
|
|
176
|
+
static make(heading?: string): EmptyState;
|
|
177
|
+
icon(value: string): this;
|
|
178
|
+
protected defaultCard(): boolean;
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Filament-style Placeholder / static content in a schema.
|
|
182
|
+
*/
|
|
183
|
+
export declare class Placeholder extends LayoutComponent {
|
|
184
|
+
protected readonly kind: "placeholder";
|
|
185
|
+
static make(name: string): Placeholder;
|
|
186
|
+
label(value: string): this;
|
|
187
|
+
content(value: string): this;
|
|
188
|
+
protected defaultCard(): boolean;
|
|
189
|
+
}
|
|
190
|
+
export declare function isLayoutComponent(item: SchemaItem): item is LayoutComponent;
|
|
191
|
+
/** Convert a SchemaItem list into root SchemaNode[]. */
|
|
192
|
+
export declare function buildSchemaNodes(items: SchemaItem[]): SchemaNode[];
|
|
193
|
+
//# sourceMappingURL=schemas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"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"}
|