@lssm/lib.presentation-runtime-react-native 8.0.3 → 10.0.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/README.md +37 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/package.json +7 -7
- package/dist/ui-kit/dist/ui/form.js +0 -17
- package/dist/ui-kit/dist/ui/form.js.map +0 -1
package/README.md
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# @lssm/lib.presentation-runtime-react-native
|
|
2
|
+
|
|
3
|
+
React Native bindings for ContractSpec presentations.
|
|
4
|
+
|
|
5
|
+
## Purpose
|
|
6
|
+
|
|
7
|
+
To render ContractSpec-defined UIs in React Native (Expo) applications, using native components from `@lssm/lib.ui-kit`.
|
|
8
|
+
|
|
9
|
+
## Installation
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npm install @lssm/lib.presentation-runtime-react-native
|
|
13
|
+
# or
|
|
14
|
+
bun add @lssm/lib.presentation-runtime-react-native
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Key Concepts
|
|
18
|
+
|
|
19
|
+
- **Native Optimized**: Uses native navigation patterns where applicable.
|
|
20
|
+
- **Universal**: API parity with `@lssm/lib.presentation-runtime-react` where possible.
|
|
21
|
+
|
|
22
|
+
## Usage
|
|
23
|
+
|
|
24
|
+
Similar to the React runtime, but imports from this package.
|
|
25
|
+
|
|
26
|
+
```tsx
|
|
27
|
+
import { useWorkflow } from '@lssm/lib.presentation-runtime-react-native';
|
|
28
|
+
// ... usage
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import { DefaultValues, Resolver, UseFormReturn } from "react-hook-form";
|
|
3
|
+
import { ListFetcher, ListState } from "@lssm/lib.presentation-runtime-core";
|
|
3
4
|
|
|
4
5
|
//#region src/index.d.ts
|
|
5
6
|
interface UsePresentationControllerOpts<TFilters extends Record<string, unknown>, TVars, TItem> {
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/index.ts"],"sourcesContent":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/index.ts"],"sourcesContent":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { useForm } from "./ui-kit/dist/ui/form.js";
|
|
2
1
|
import * as React from "react";
|
|
2
|
+
import { useForm } from "@lssm/lib.ui-kit/ui/form";
|
|
3
3
|
|
|
4
4
|
//#region src/index.ts
|
|
5
5
|
function usePresentationController({ defaults, form: formOpts, toVariables, fetcher, toChips, useUrlState, replace }) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lssm/lib.presentation-runtime-react-native",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "10.0.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"module": "./dist/index.js",
|
|
@@ -16,22 +16,22 @@
|
|
|
16
16
|
"lint:check": "eslint src"
|
|
17
17
|
},
|
|
18
18
|
"peerDependencies": {
|
|
19
|
-
"react": "^19.
|
|
19
|
+
"react": "^19.2.0",
|
|
20
20
|
"react-native": "*",
|
|
21
|
-
"react-hook-form": "7.66.
|
|
21
|
+
"react-hook-form": "7.66.1",
|
|
22
22
|
"zod": "^4.1.5",
|
|
23
|
-
"@lssm/lib.presentation-runtime-core": "
|
|
23
|
+
"@lssm/lib.presentation-runtime-core": "workspace:*"
|
|
24
24
|
},
|
|
25
25
|
"dependencies": {
|
|
26
|
-
"@lssm/lib.presentation-runtime-core": "
|
|
27
|
-
"@lssm/lib.ui-kit": "
|
|
26
|
+
"@lssm/lib.presentation-runtime-core": "workspace:*",
|
|
27
|
+
"@lssm/lib.ui-kit": "workspace:*"
|
|
28
28
|
},
|
|
29
29
|
"files": [
|
|
30
30
|
"dist",
|
|
31
31
|
"README.md"
|
|
32
32
|
],
|
|
33
33
|
"exports": {
|
|
34
|
-
".": "./
|
|
34
|
+
".": "./dist/index.js",
|
|
35
35
|
"./*": "./*"
|
|
36
36
|
},
|
|
37
37
|
"publishConfig": {
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
import * as React$1 from "react";
|
|
5
|
-
import "react-native";
|
|
6
|
-
import "react/jsx-runtime";
|
|
7
|
-
import { useForm } from "../node_modules/react-hook-form/dist/index.esm.js";
|
|
8
|
-
import "../node_modules/@hookform/resolvers/zod/dist/zod.js";
|
|
9
|
-
import "@rn-primitives/slot";
|
|
10
|
-
|
|
11
|
-
//#region ../ui-kit/dist/ui/form.js
|
|
12
|
-
const FormFieldContext = React$1.createContext({});
|
|
13
|
-
const FormItemContext = React$1.createContext({});
|
|
14
|
-
|
|
15
|
-
//#endregion
|
|
16
|
-
export { useForm };
|
|
17
|
-
//# sourceMappingURL=form.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"form.js","names":[],"sources":["../../../../../ui-kit/dist/ui/form.js"],"sourcesContent":["'use client';\n\n\nimport { cn } from \"./utils.js\";\nimport { Label } from \"./label.js\";\nimport { Controller, FormProvider, useFieldArray, useForm, useFormContext, useFormState } from \"../node_modules/react-hook-form/dist/index.esm.js\";\nimport { t } from \"../node_modules/@hookform/resolvers/zod/dist/zod.js\";\nimport * as React$1 from \"react\";\nimport { View } from \"react-native\";\nimport * as Slot from \"@rn-primitives/slot\";\nimport { jsx } from \"react/jsx-runtime\";\n\n//#region ui/form.tsx\nconst Form = FormProvider;\nconst FormFieldContext = React$1.createContext({});\nconst FormField = ({ ...props }) => {\n\treturn /* @__PURE__ */ jsx(FormFieldContext.Provider, {\n\t\tvalue: { name: props.name },\n\t\tchildren: /* @__PURE__ */ jsx(Controller, { ...props })\n\t});\n};\nconst useFormField = () => {\n\tconst fieldContext = React$1.useContext(FormFieldContext);\n\tconst itemContext = React$1.useContext(FormItemContext);\n\tconst { getFieldState } = useFormContext();\n\tconst formState = useFormState({ name: fieldContext.name });\n\tconst fieldState = getFieldState(fieldContext.name, formState);\n\tif (!fieldContext) throw new Error(\"useFormField should be used within <FormField>\");\n\tconst { id } = itemContext;\n\treturn {\n\t\tid,\n\t\tname: fieldContext.name,\n\t\tformItemId: `${id}-form-item`,\n\t\tformDescriptionId: `${id}-form-item-description`,\n\t\tformMessageId: `${id}-form-item-message`,\n\t\t...fieldState\n\t};\n};\nconst FormItemContext = React$1.createContext({});\nfunction FormItem({ className,...props }) {\n\tconst id = React$1.useId();\n\treturn /* @__PURE__ */ jsx(FormItemContext.Provider, {\n\t\tvalue: { id },\n\t\tchildren: /* @__PURE__ */ jsx(\"div\", {\n\t\t\t\"data-slot\": \"form-item\",\n\t\t\tclassName: cn(\"grid gap-2\", className),\n\t\t\t...props\n\t\t})\n\t});\n}\nfunction FormLabel({ className,...props }) {\n\tconst { error, formItemId } = useFormField();\n\treturn /* @__PURE__ */ jsx(Label, {\n\t\t\"data-slot\": \"form-label\",\n\t\t\"data-error\": !!error,\n\t\tclassName: cn(\"data-[error=true]:text-destructive\", className),\n\t\thtmlFor: formItemId,\n\t\t...props\n\t});\n}\nfunction FormControl({ asChild = false,...props }) {\n\tconst Component = asChild ? Slot.Text : View;\n\tconst { error, formItemId, formDescriptionId, formMessageId } = useFormField();\n\treturn /* @__PURE__ */ jsx(Component, {\n\t\t\"data-slot\": \"form-control\",\n\t\tid: formItemId,\n\t\t\"aria-describedby\": !error ? `${formDescriptionId}` : `${formDescriptionId} ${formMessageId}`,\n\t\t\"aria-invalid\": !!error,\n\t\t...props\n\t});\n}\nfunction FormDescription({ className,...props }) {\n\tconst { formDescriptionId } = useFormField();\n\treturn /* @__PURE__ */ jsx(\"p\", {\n\t\t\"data-slot\": \"form-description\",\n\t\tid: formDescriptionId,\n\t\tclassName: cn(\"text-muted-foreground text-sm\", className),\n\t\t...props\n\t});\n}\nfunction FormMessage({ className,...props }) {\n\tconst { error, formMessageId } = useFormField();\n\tconst body = error ? String(error?.message ?? \"\") : props.children;\n\tif (!body) return null;\n\treturn /* @__PURE__ */ jsx(\"p\", {\n\t\t\"data-slot\": \"form-message\",\n\t\tid: formMessageId,\n\t\tclassName: cn(\"text-destructive text-sm\", className),\n\t\t...props,\n\t\tchildren: body\n\t});\n}\n\n//#endregion\nexport { Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, useFieldArray, useForm, useFormField, t as zodResolver };\n//# sourceMappingURL=form.js.map"],"mappings":";;;;;;;;;;;AAcA,MAAM,mBAAmB,QAAQ,cAAc,EAAE,CAAC;AAwBlD,MAAM,kBAAkB,QAAQ,cAAc,EAAE,CAAC"}
|