@fougere/svelte 0.16.8-alpha.0 → 0.17.0-alpha.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.
@@ -1,14 +1,7 @@
1
1
  /** The form contract — state, validation, submission, error mapping. */
2
2
  import { type Readable, type Writable } from 'svelte/store';
3
- import { type Choice, type FormEntity, type FormField, type FormFieldName, type FormRow } from '@fougere/app/client';
4
- export interface FormOptions {
5
- /** Command the submit rides. Default: 'create'. */
6
- op?: string;
7
- /** Initial values (edit mode: the loaded entity). */
8
- initial?: Record<string, unknown>;
9
- /** Call params designating the target (edit mode: { id }). */
10
- params?: Record<string, string>;
11
- }
3
+ import { type Choice, type FormEntity, type FormField, type FormFieldName, type FormRow, type FormOptions } from '@fougere/app/client';
4
+ export type { FormOptions };
12
5
  export declare function useFormFor<E extends FormEntity>(entity: E, options?: FormOptions): {
13
6
  fields: FormField<FormFieldName<E>>[];
14
7
  /** The same fields, keyed by name — spread `fieldsByName.email.attrs` on an input
@@ -1 +1 @@
1
- {"version":3,"file":"useFormFor.d.ts","sourceRoot":"","sources":["../src/useFormFor.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,OAAO,EAA0B,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEpF,OAAO,EAQL,KAAK,MAAM,EACX,KAAK,UAAU,EAEf,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,OAAO,EAEb,MAAM,qBAAqB,CAAC;AAG7B,MAAM,WAAW,WAAW;IAC1B,mDAAmD;IACnD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAED,wBAAgB,UAAU,CAAC,CAAC,SAAS,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,GAAE,WAAgB;;IAuDjF;kDAC8C;kBACkC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;;;IAI9I,0GAA0G;;mBA5ChF,aAAa,CAAC,CAAC,CAAC,oBAAc,OAAO,CAAC,IAAI,CAAC;kBAwB9C,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;qBAP7B,OAAO;;IAiC3B,sDAAsD;;EAGzD"}
1
+ {"version":3,"file":"useFormFor.d.ts","sourceRoot":"","sources":["../src/useFormFor.ts"],"names":[],"mappings":"AAAA,wEAAwE;AACxE,OAAO,EAA0B,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAE,MAAM,cAAc,CAAC;AAEpF,OAAO,EAQL,KAAK,MAAM,EACX,KAAK,UAAU,EAEf,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,OAAO,EAEZ,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;AAG7B,YAAY,EAAE,WAAW,EAAE,CAAC;AAE5B,wBAAgB,UAAU,CAAC,CAAC,SAAS,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,OAAO,GAAE,WAAgB;;IAuDjF;kDAC8C;kBACkC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;;;IAI9I,0GAA0G;;mBA5ChF,aAAa,CAAC,CAAC,CAAC,oBAAc,OAAO,CAAC,IAAI,CAAC;kBAwB9C,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;qBAP7B,OAAO;;IAiC3B,sDAAsD;;EAGzD"}
@@ -12,7 +12,7 @@ export function useFormFor(entity, options = {}) {
12
12
  const errors = writable({});
13
13
  // A form is designated by its ENTITY — it is a set of fields — so the facade it submits to is
14
14
  // an address with no handler type behind it, and what it answers is the entity's row.
15
- const command = useCommand(facadeOf(entity), options.op ?? 'create');
15
+ const command = useCommand(options.to ?? facadeOf(entity), options.op ?? 'create');
16
16
  const choices = writable({});
17
17
  const searchable = writable({});
18
18
  /** What a reference field offers: its first rows, or those whose label contains `text`. */
@@ -1 +1 @@
1
- {"version":3,"file":"useFormFor.js","sourceRoot":"","sources":["../src/useFormFor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useFormFor.js","sourceRoot":"","sources":["../src/useFormFor.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fougere/svelte",
3
- "version": "0.16.8-alpha.0",
3
+ "version": "0.17.0-alpha.0",
4
4
  "description": "Fougere's four primitives as Svelte stores — host-independent.",
5
5
  "keywords": [
6
6
  "fougere",
@@ -31,13 +31,13 @@
31
31
  "template"
32
32
  ],
33
33
  "dependencies": {
34
- "@fougere/app": "0.16.8-alpha.0",
35
- "@fougere/core": "0.16.8-alpha.0"
34
+ "@fougere/app": "0.17.0-alpha.0",
35
+ "@fougere/core": "0.17.0-alpha.0"
36
36
  },
37
37
  "devDependencies": {
38
38
  "svelte": "^5.53.4",
39
39
  "vitest": "^4.1.0",
40
- "@fougere/schema": "0.16.8-alpha.0"
40
+ "@fougere/schema": "0.17.0-alpha.0"
41
41
  },
42
42
  "peerDependencies": {
43
43
  "svelte": "^5.0.0"
package/src/useFormFor.ts CHANGED
@@ -16,17 +16,11 @@ import {
16
16
  type FormFieldName,
17
17
  type FormRow,
18
18
  type FormValues,
19
+ type FormOptions,
19
20
  } from '@fougere/app/client';
20
21
  import { useCommand } from './useFougereData/CommandStore.js';
21
22
 
22
- export interface FormOptions {
23
- /** Command the submit rides. Default: 'create'. */
24
- op?: string;
25
- /** Initial values (edit mode: the loaded entity). */
26
- initial?: Record<string, unknown>;
27
- /** Call params designating the target (edit mode: { id }). */
28
- params?: Record<string, string>;
29
- }
23
+ export type { FormOptions };
30
24
 
31
25
  export function useFormFor<E extends FormEntity>(entity: E, options: FormOptions = {}) {
32
26
  const entityKey = entityKeyOf(entity);
@@ -40,7 +34,7 @@ export function useFormFor<E extends FormEntity>(entity: E, options: FormOptions
40
34
  const errors = writable<FormErrors<E>>({});
41
35
  // A form is designated by its ENTITY — it is a set of fields — so the facade it submits to is
42
36
  // an address with no handler type behind it, and what it answers is the entity's row.
43
- const command = useCommand(facadeOf(entity), options.op ?? 'create');
37
+ const command = useCommand(options.to ?? facadeOf(entity), options.op ?? 'create');
44
38
  const choices = writable<Partial<Record<FormFieldName<E>, Choice[]>>>({});
45
39
  const searchable = writable<Partial<Record<FormFieldName<E>, boolean>>>({});
46
40