@fougere/svelte 0.16.4-alpha.0 → 0.16.5-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.
package/dist/index.d.ts CHANGED
@@ -3,8 +3,7 @@ export { useCommand } from './useFougereData/CommandStore.js';
3
3
  export { useQuery } from './useFougereData/QueryStore.js';
4
4
  export { facade, facadeOf } from '@fougere/app/client';
5
5
  export { useFormFor, type FormOptions } from './useFormFor.js';
6
- export { cellOf, summaryOf, tableColumnsOf } from '@fougere/app/client';
7
6
  export { useCurrentUser } from './useCurrentUser.js';
8
7
  export { fetcher, CALL_ENDPOINT } from '@fougere/app/client';
9
- export type { CallInput, EntityClass, FormEntity, FormField, SessionView, TableColumn, } from '@fougere/app/client';
8
+ export type { CallInput, EntityClass, FormEntity, FormField, SessionView, } from '@fougere/app/client';
10
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,wFAAwF;AACxF,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAE1D,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAE7D,YAAY,EACV,SAAS,EACT,WAAW,EACX,UAAU,EACV,SAAS,EACT,WAAW,EACX,WAAW,GACZ,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,wFAAwF;AACxF,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAE1D,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAE7D,YAAY,EACV,SAAS,EACT,WAAW,EACX,UAAU,EACV,SAAS,EACT,WAAW,GACZ,MAAM,qBAAqB,CAAC"}
package/dist/index.js CHANGED
@@ -4,7 +4,6 @@ export { useQuery } from './useFougereData/QueryStore.js';
4
4
  // The facade a page names, and the one an entity class names for a form.
5
5
  export { facade, facadeOf } from '@fougere/app/client';
6
6
  export { useFormFor } from './useFormFor.js';
7
- export { cellOf, summaryOf, tableColumnsOf } from '@fougere/app/client';
8
7
  export { useCurrentUser } from './useCurrentUser.js';
9
8
  export { fetcher, CALL_ENDPOINT } from '@fougere/app/client';
10
9
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,wFAAwF;AACxF,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,yEAAyE;AACzE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAoB,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,wFAAwF;AACxF,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC1D,yEAAyE;AACzE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAoB,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC"}
@@ -17,6 +17,8 @@ export declare function useFormFor<E extends FormEntity>(entity: E, options?: Fo
17
17
  values: Writable<Partial<FormRow<E>>>;
18
18
  errors: Writable<Partial<Record<FormFieldName<E>, string>>>;
19
19
  choices: Writable<Partial<Record<FormFieldName<E>, Choice[]>>>;
20
+ /** Per reference field: its target holds more rows than one load offers, so a search is worth showing. */
21
+ searchable: Writable<Partial<Record<FormFieldName<E>, boolean>>>;
20
22
  search: (name: FormFieldName<E>, text?: string) => Promise<void>;
21
23
  submit: () => Promise<FormRow<E> | null>;
22
24
  validator: () => boolean;
@@ -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;;IAiDjF;kDAC8C;kBACkC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;;;mBAnCpH,aAAa,CAAC,CAAC,CAAC,oBAAc,OAAO,CAAC,IAAI,CAAC;kBAmB9C,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;qBAP7B,OAAO;;IA+B3B,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,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;;IAmDjF;kDAC8C;kBACkC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;;;IAI9I,0GAA0G;;mBAxChF,aAAa,CAAC,CAAC,CAAC,oBAAc,OAAO,CAAC,IAAI,CAAC;kBAoB9C,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;qBAP7B,OAAO;;IAiC3B,sDAAsD;;EAGzD"}
@@ -14,13 +14,16 @@ export function useFormFor(entity, options = {}) {
14
14
  // an address with no handler type behind it, and what it answers is the entity's row.
15
15
  const command = useCommand(facadeOf(entity), options.op ?? 'create');
16
16
  const choices = writable({});
17
+ const searchable = writable({});
17
18
  /** What a reference field offers: its first rows, or those whose label contains `text`. */
18
19
  async function search(name, text = '') {
19
20
  const reference = fields.find((field) => field.name === name)?.reference;
20
21
  if (!reference)
21
22
  return;
22
- const found = await Choices.of(fetcher, reference, text);
23
- choices.update((current) => ({ ...current, [name]: found }));
23
+ const offer = await Choices.of(fetcher, reference, text);
24
+ choices.update((current) => ({ ...current, [name]: offer.choices }));
25
+ if (!text)
26
+ searchable.update((current) => ({ ...current, [name]: offer.more }));
24
27
  }
25
28
  if (typeof window !== 'undefined') {
26
29
  for (const field of fields)
@@ -52,6 +55,8 @@ export function useFormFor(entity, options = {}) {
52
55
  values,
53
56
  errors,
54
57
  choices,
58
+ /** Per reference field: its target holds more rows than one load offers, so a search is worth showing. */
59
+ searchable,
55
60
  search,
56
61
  submit,
57
62
  validator,
@@ -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":"AAAA,wEAAwE;AACxE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAgC,MAAM,cAAc,CAAC;AACpF,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EACL,OAAO,EACP,WAAW,EACX,OAAO,EACP,QAAQ,EACR,aAAa,EACb,YAAY,EACZ,SAAS,GAQV,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAW9D,MAAM,UAAU,UAAU,CAAuB,MAAS,EAAE,OAAO,GAAgB,EAAE;IACnF,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;IACtC,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAE/C,8EAA8E;IAC9E,gFAAgF;IAChF,MAAM,MAAM,GAA4B,QAAQ,CAC9C,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAkB,CACzH,CAAC;IACF,MAAM,MAAM,GAAG,QAAQ,CAAgB,EAAE,CAAC,CAAC;IAC3C,8FAA8F;IAC9F,sFAAsF;IACtF,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,IAAI,QAAQ,CAAC,CAAC;IACrE,MAAM,OAAO,GAAG,QAAQ,CAA8C,EAAE,CAAC,CAAC;IAC1E,MAAM,UAAU,GAAG,QAAQ,CAA6C,EAAE,CAAC,CAAC;IAE5E,2FAA2F;IAC3F,KAAK,UAAU,MAAM,CAAC,IAAsB,EAAE,IAAI,GAAG,EAAE;QACrD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,SAAS,CAAC;QACzE,IAAI,CAAC,SAAS;YAAE,OAAO;QACvB,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;QACzD,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACrE,IAAI,CAAC,IAAI;YAAE,UAAU,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IAClF,CAAC;IAED,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,KAAK,MAAM,KAAK,IAAI,MAAM;YAAE,IAAI,KAAK,CAAC,SAAS;gBAAE,KAAK,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC3E,CAAC;IAED,8EAA8E;IAC9E,SAAS,SAAS;QAChB,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC/D,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAElE,OAAO,MAAM,CAAC,OAAO,CAAC;IACxB,CAAC;IAED,KAAK,UAAU,MAAM;QACnB,IAAI,CAAC,SAAS,EAAE;YAAE,OAAO,IAAI,CAAC;QAC9B,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;QACxG,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC;QACnC,MAAM,QAAQ,GAAG,OAAO,IAAI,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACxD,IAAI,QAAQ;YAAE,MAAM,CAAC,GAAG,CAAC,aAAa,CAAI,QAAQ,CAAC,CAAC,CAAC;QAErD,OAAO,MAA2B,CAAC;IACrC,CAAC;IAED,MAAM,KAAK,GAAsB,OAAO,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC;IAEjG,OAAO;QACL,MAAM;QACN;sDAC8C;QAC9C,YAAY,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAmE;QAC9I,MAAM;QACN,MAAM;QACN,OAAO;QACP,0GAA0G;QAC1G,UAAU;QACV,MAAM;QACN,MAAM;QACN,SAAS;QACT,KAAK;QACL,sDAAsD;QACtD,OAAO;KACR,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fougere/svelte",
3
- "version": "0.16.4-alpha.0",
3
+ "version": "0.16.5-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.4-alpha.0",
35
- "@fougere/core": "0.16.4-alpha.0"
34
+ "@fougere/app": "0.16.5-alpha.0",
35
+ "@fougere/core": "0.16.5-alpha.0"
36
36
  },
37
37
  "devDependencies": {
38
38
  "svelte": "^5.53.4",
39
39
  "vitest": "^4.1.0",
40
- "@fougere/schema": "0.16.4-alpha.0"
40
+ "@fougere/schema": "0.16.5-alpha.0"
41
41
  },
42
42
  "peerDependencies": {
43
43
  "svelte": "^5.0.0"
package/src/index.ts CHANGED
@@ -4,7 +4,6 @@ export { useQuery } from './useFougereData/QueryStore.js';
4
4
  // The facade a page names, and the one an entity class names for a form.
5
5
  export { facade, facadeOf } from '@fougere/app/client';
6
6
  export { useFormFor, type FormOptions } from './useFormFor.js';
7
- export { cellOf, summaryOf, tableColumnsOf } from '@fougere/app/client';
8
7
  export { useCurrentUser } from './useCurrentUser.js';
9
8
  export { fetcher, CALL_ENDPOINT } from '@fougere/app/client';
10
9
 
@@ -14,5 +13,4 @@ export type {
14
13
  FormEntity,
15
14
  FormField,
16
15
  SessionView,
17
- TableColumn,
18
16
  } from '@fougere/app/client';
package/src/useFormFor.ts CHANGED
@@ -42,13 +42,15 @@ export function useFormFor<E extends FormEntity>(entity: E, options: FormOptions
42
42
  // an address with no handler type behind it, and what it answers is the entity's row.
43
43
  const command = useCommand(facadeOf(entity), options.op ?? 'create');
44
44
  const choices = writable<Partial<Record<FormFieldName<E>, Choice[]>>>({});
45
+ const searchable = writable<Partial<Record<FormFieldName<E>, boolean>>>({});
45
46
 
46
47
  /** What a reference field offers: its first rows, or those whose label contains `text`. */
47
48
  async function search(name: FormFieldName<E>, text = ''): Promise<void> {
48
49
  const reference = fields.find((field) => field.name === name)?.reference;
49
50
  if (!reference) return;
50
- const found = await Choices.of(fetcher, reference, text);
51
- choices.update((current) => ({ ...current, [name]: found }));
51
+ const offer = await Choices.of(fetcher, reference, text);
52
+ choices.update((current) => ({ ...current, [name]: offer.choices }));
53
+ if (!text) searchable.update((current) => ({ ...current, [name]: offer.more }));
52
54
  }
53
55
 
54
56
  if (typeof window !== 'undefined') {
@@ -83,6 +85,8 @@ export function useFormFor<E extends FormEntity>(entity: E, options: FormOptions
83
85
  values,
84
86
  errors,
85
87
  choices,
88
+ /** Per reference field: its target holds more rows than one load offers, so a search is worth showing. */
89
+ searchable,
86
90
  search,
87
91
  submit,
88
92
  validator,