@llmnative/react 1.9.0 → 1.10.1
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.js +15 -15
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2388 -2350
- package/dist/index.mjs.map +1 -1
- package/dist/types/src/components/widgets/Form.d.ts +9 -1
- package/dist/types/src/libs/utils.d.ts +8 -0
- package/package.json +1 -1
|
@@ -26,6 +26,14 @@ interface FormContextProps {
|
|
|
26
26
|
inputType?: InputType;
|
|
27
27
|
defaultValue?: FieldValue;
|
|
28
28
|
inheritWrapperClassName?: boolean;
|
|
29
|
+
/** Opt-in esplicito per i pochi consumer che leggono ALTRI campi del form (cross-field), non
|
|
30
|
+
* solo il proprio `name` — es. interpolazione `{{variabile}}` da qualunque campo (Prompt.tsx).
|
|
31
|
+
* Default `false`: il consumer si ri-renderizza solo quando cambia il proprio `name`, non ad
|
|
32
|
+
* ogni cambiamento nel form. Un consumer che sottoscrive un path "genitore" (non-leaf, es. un
|
|
33
|
+
* blocco di campi annidati) NON ha bisogno di questo flag: reagisce già a qualunque discendente
|
|
34
|
+
* cambi, perché applyChangeToRecord clona ogni container lungo il percorso dalla radice alla
|
|
35
|
+
* chiave finale, quindi il valore al path genitore cambia riferimento comunque. */
|
|
36
|
+
subscribeToFullRecord?: boolean;
|
|
29
37
|
}
|
|
30
38
|
interface FormContextResult {
|
|
31
39
|
value: FieldValue;
|
|
@@ -66,7 +74,7 @@ export declare const FormValidationContext: React.Context<FormValidationContextV
|
|
|
66
74
|
* their error message. Call it in every field that supports `required`.
|
|
67
75
|
*/
|
|
68
76
|
export declare const useFieldValidation: (name: string, constraints: FieldValidationConstraints) => string | undefined;
|
|
69
|
-
export declare const useFormContext: ({ name, onChange, wrapperClassName, inputType, defaultValue, inheritWrapperClassName }: FormContextProps) => FormContextResult;
|
|
77
|
+
export declare const useFormContext: ({ name, onChange, wrapperClassName, inputType, defaultValue, inheritWrapperClassName, subscribeToFullRecord }: FormContextProps) => FormContextResult;
|
|
70
78
|
type UseHandleDropProps = {
|
|
71
79
|
name: string;
|
|
72
80
|
value: FieldValue;
|
|
@@ -53,4 +53,12 @@ export declare const base64ToBlob: (base64: string, type: string) => Blob | unde
|
|
|
53
53
|
export declare const base64ToUrl: (base64: string, type: string) => string | undefined;
|
|
54
54
|
export declare const getRecordValue: (record?: RecordProps, name?: string) => unknown;
|
|
55
55
|
export declare const cleanRecord: (record: RecordProps | undefined) => RecordProps;
|
|
56
|
+
/** Confronto di uguaglianza con la STESSA semantica di normalizzazione di `cleanRecord` (chiave
|
|
57
|
+
* con valore `undefined` = assente, `File` confrontato per `name/type/size/lastModified`, array
|
|
58
|
+
* mappati e filtrati ricorsivamente, oggetti ricorsivi) ma SENZA cloni/allocazioni intermedie:
|
|
59
|
+
* ritorna `false` non appena trova la prima differenza. Usata da `Form.tsx` per `isDirty` — a
|
|
60
|
+
* differenza di `createRecordSnapshot`/`cleanRecord` (clone ricorsivo completo + JSON.stringify
|
|
61
|
+
* dell'INTERO record, anche quando è cambiato un solo campo), qui il costo è proporzionale a
|
|
62
|
+
* quanto viaggia prima di trovare la prima differenza, tipicamente il campo appena editato. */
|
|
63
|
+
export declare function recordsEqual(a: unknown, b: unknown): boolean;
|
|
56
64
|
export declare const smartTypeCast: (value: unknown) => string | number | boolean | null | undefined;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@llmnative/react",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.10.1",
|
|
4
4
|
"description": "LLM-native React framework for deterministic UI generation. Data-driven by default, schema-driven optional. Ultra-low token consumption — built for AI agents, not just humans.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.mjs",
|