@devtools-ui/action 0.4.0 → 0.4.1-next.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 +103 -0
- package/dist/cjs/index.cjs +5 -5
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/index.legacy-esm.js +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +14 -14
- package/src/dsl/Action.tsx +1 -1
- package/src/dsl/__tests__/Action.test.tsx +1 -1
- package/types/dsl/Action.d.ts +1 -1
- package/types/types/index.d.ts +1 -1
package/README.md
ADDED
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# @devtools-ui/action
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
`@devtools-ui/action` is a component package designed to be leveraged by a [Player-UI assets plugin](https://player-ui.github.io/next/plugins).
|
|
6
|
+
|
|
7
|
+
It provides a `Action` component that can be used to allow a user interaction (e.g., [transition](https://player-ui.github.io/next/content/navigation)), usually rendered as a `<button>`.
|
|
8
|
+
|
|
9
|
+
## Installation
|
|
10
|
+
|
|
11
|
+
To install `@devtools-ui/action`, you can use pnpm or yarn:
|
|
12
|
+
|
|
13
|
+
```sh
|
|
14
|
+
pnpm i @devtools-ui/action
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
or
|
|
18
|
+
|
|
19
|
+
```sh
|
|
20
|
+
yarn add @devtools-ui/action
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## Usage
|
|
24
|
+
|
|
25
|
+
You can leverage this asset through the `@devtools-ui/plugin`:
|
|
26
|
+
|
|
27
|
+
```ts
|
|
28
|
+
import { Action } from "@devtools-ui/plugin";
|
|
29
|
+
|
|
30
|
+
// and use it to define your Player-UI content:
|
|
31
|
+
myFlow = {
|
|
32
|
+
id: "my_flow",
|
|
33
|
+
views: [
|
|
34
|
+
<MyView>
|
|
35
|
+
<MyView.Actions>
|
|
36
|
+
<Action exp={e`noop`}>
|
|
37
|
+
<Action.Label>Label</Action.Label>
|
|
38
|
+
<Action.Icon>
|
|
39
|
+
<Asset type="icon">
|
|
40
|
+
<property name="value">SomeIcon</property>
|
|
41
|
+
</Asset>
|
|
42
|
+
</Action.Icon>
|
|
43
|
+
</Action>
|
|
44
|
+
</MyView.Actions>
|
|
45
|
+
</MyView>,
|
|
46
|
+
],
|
|
47
|
+
};
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
For more information on how to author Player-UI content using DSL, please check our [Player-UI docs](https://player-ui.github.io/next/dsl#tsxjsx-content-authoring-player-dsl).
|
|
51
|
+
|
|
52
|
+
Or, your can leverage this asset in your own plugin:
|
|
53
|
+
|
|
54
|
+
```ts
|
|
55
|
+
// TransformPlugin.ts
|
|
56
|
+
import type { Player, PlayerPlugin } from "@player-ui/player";
|
|
57
|
+
import { AssetTransformPlugin } from "@player-ui/asset-transform-plugin";
|
|
58
|
+
import { actionTransform } from "@devtools-ui/action";
|
|
59
|
+
|
|
60
|
+
export class TransformsPlugin implements PlayerPlugin {
|
|
61
|
+
name = "my-plugin-transforms";
|
|
62
|
+
|
|
63
|
+
apply(player: Player) {
|
|
64
|
+
player.registerPlugin(
|
|
65
|
+
new AssetTransformPlugin([[{ type: "action" }, actionTransform]])
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
```ts
|
|
72
|
+
// AssetRegistryPlugin.ts
|
|
73
|
+
import React from "react";
|
|
74
|
+
import type { Player } from "@player-ui/player";
|
|
75
|
+
import type {
|
|
76
|
+
ExtendedPlayerPlugin,
|
|
77
|
+
ReactPlayer,
|
|
78
|
+
ReactPlayerPlugin,
|
|
79
|
+
} from "@player-ui/react";
|
|
80
|
+
import { AssetProviderPlugin } from "@player-ui/asset-provider-plugin-react";
|
|
81
|
+
import { TransformsPlugin } from "./TransformPlugin";
|
|
82
|
+
import { ActionAsset, ActionComponent } from "@devtools-ui/action";
|
|
83
|
+
|
|
84
|
+
export class AssetsRegistryPlugin
|
|
85
|
+
implements ReactPlayerPlugin, ExtendedPlayerPlugin<[ActionAsset]>
|
|
86
|
+
{
|
|
87
|
+
name = "my-plugin";
|
|
88
|
+
|
|
89
|
+
applyReact(reactPlayer: ReactPlayer) {
|
|
90
|
+
reactPlayer.registerPlugin(
|
|
91
|
+
new AssetProviderPlugin([["action", ActionComponent]])
|
|
92
|
+
);
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
apply(player: Player) {
|
|
96
|
+
player.registerPlugin(new TransformsPlugin());
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## Contributing
|
|
102
|
+
|
|
103
|
+
We welcome contributions to `@devtools-ui/action`!
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -59,32 +59,32 @@ var ActionComponent = (props) => {
|
|
|
59
59
|
|
|
60
60
|
// ../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/action/src/dsl/Action.tsx
|
|
61
61
|
var import_react4 = __toESM(require("react"));
|
|
62
|
-
var
|
|
62
|
+
var import_react_dsl = require("@player-lang/react-dsl");
|
|
63
63
|
var import_collection = require("@devtools-ui/collection");
|
|
64
64
|
var import_text = require("@devtools-ui/text");
|
|
65
65
|
var Action = (props) => {
|
|
66
66
|
const { exp, children, ...rest } = props;
|
|
67
67
|
let expValue;
|
|
68
|
-
if ((0,
|
|
68
|
+
if ((0, import_react_dsl.isTemplateStringInstance)(exp)) {
|
|
69
69
|
expValue = exp.toValue();
|
|
70
70
|
} else if (Array.isArray(exp)) {
|
|
71
71
|
expValue = exp.map((e) => typeof e === "string" ? e : e.toValue());
|
|
72
72
|
} else if (exp) {
|
|
73
73
|
expValue = exp;
|
|
74
74
|
}
|
|
75
|
-
return /* @__PURE__ */ import_react4.default.createElement(
|
|
75
|
+
return /* @__PURE__ */ import_react4.default.createElement(import_react_dsl.Asset, { type: "action", ...rest, ...expValue && { exp: expValue } }, children);
|
|
76
76
|
};
|
|
77
77
|
var CollectionComp = (props) => {
|
|
78
78
|
return /* @__PURE__ */ import_react4.default.createElement(import_collection.Collection, null, /* @__PURE__ */ import_react4.default.createElement(import_collection.Collection.Values, null, props.children));
|
|
79
79
|
};
|
|
80
|
-
Action.Label = (0,
|
|
80
|
+
Action.Label = (0, import_react_dsl.createSlot)({
|
|
81
81
|
name: "label",
|
|
82
82
|
TextComp: import_text.Text,
|
|
83
83
|
CollectionComp,
|
|
84
84
|
isArray: false,
|
|
85
85
|
wrapInAsset: true
|
|
86
86
|
});
|
|
87
|
-
Action.Icon = (0,
|
|
87
|
+
Action.Icon = (0, import_react_dsl.createSlot)({
|
|
88
88
|
name: "icon",
|
|
89
89
|
TextComp: import_text.Text,
|
|
90
90
|
CollectionComp,
|
package/dist/cjs/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/action/src/index.ts","../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/action/src/components/ActionComponent.tsx","../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/action/src/dsl/Action.tsx","../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/action/src/transform/index.ts"],"sourcesContent":["export * from \"./types\";\nexport * from \"./components\";\nexport * from \"./dsl\";\nexport * from \"./transform\";\n","import React from \"react\";\nimport { Button } from \"@chakra-ui/react\";\nimport type { TransformedAction } from \"../types\";\nimport { ReactAsset } from \"@player-ui/react\";\n\nconst useActionPros = (props: TransformedAction) => {\n return {\n ...(props.label ? { children: <ReactAsset {...props.label.asset} /> } : {}),\n ...(props.icon\n ? {\n [props.metaData?.iconPosition === \"left\" ? \"leftIcon\" : \"rightIcon\"]:\n <ReactAsset {...props.icon.asset} />,\n }\n : {}),\n ...(props.run ? { onClick: props.run } : {}),\n ...(props.metaData?.variant ? { variant: props.metaData.variant } : {}),\n ...(props.metaData?.isLoading\n ? { isLoading: props.metaData.isLoading }\n : {}),\n } as const;\n};\n\nexport const ActionComponent = (props: TransformedAction) => {\n const { children, ...buttonProps } = useActionPros(props);\n\n return <Button {...buttonProps}>{children}</Button>;\n};\n","import React from \"react\";\nimport {\n AssetPropsWithChildren,\n Asset,\n createSlot,\n isTemplateStringInstance,\n} from \"@player-
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/action/src/index.ts","../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/action/src/components/ActionComponent.tsx","../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/action/src/dsl/Action.tsx","../../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/action/src/transform/index.ts"],"sourcesContent":["export * from \"./types\";\nexport * from \"./components\";\nexport * from \"./dsl\";\nexport * from \"./transform\";\n","import React from \"react\";\nimport { Button } from \"@chakra-ui/react\";\nimport type { TransformedAction } from \"../types\";\nimport { ReactAsset } from \"@player-ui/react\";\n\nconst useActionPros = (props: TransformedAction) => {\n return {\n ...(props.label ? { children: <ReactAsset {...props.label.asset} /> } : {}),\n ...(props.icon\n ? {\n [props.metaData?.iconPosition === \"left\" ? \"leftIcon\" : \"rightIcon\"]:\n <ReactAsset {...props.icon.asset} />,\n }\n : {}),\n ...(props.run ? { onClick: props.run } : {}),\n ...(props.metaData?.variant ? { variant: props.metaData.variant } : {}),\n ...(props.metaData?.isLoading\n ? { isLoading: props.metaData.isLoading }\n : {}),\n } as const;\n};\n\nexport const ActionComponent = (props: TransformedAction) => {\n const { children, ...buttonProps } = useActionPros(props);\n\n return <Button {...buttonProps}>{children}</Button>;\n};\n","import React from \"react\";\nimport {\n AssetPropsWithChildren,\n Asset,\n createSlot,\n isTemplateStringInstance,\n} from \"@player-lang/react-dsl\";\nimport type { Asset as AssetType } from \"@player-ui/player\";\nimport type { ActionAsset } from \"../types\";\nimport { Collection } from \"@devtools-ui/collection\";\nimport { Text } from \"@devtools-ui/text\";\n\nexport const Action = (props: AssetPropsWithChildren<ActionAsset>) => {\n const { exp, children, ...rest } = props;\n\n let expValue: ActionAsset[\"exp\"];\n\n if (isTemplateStringInstance(exp)) {\n expValue = exp.toValue();\n } else if (Array.isArray(exp)) {\n expValue = exp.map((e) => (typeof e === \"string\" ? e : e.toValue()));\n } else if (exp) {\n expValue = exp;\n }\n\n return (\n <Asset type=\"action\" {...rest} {...(expValue && { exp: expValue })}>\n {children}\n </Asset>\n );\n};\n\nconst CollectionComp = (props: AssetPropsWithChildren<AssetType>) => {\n return (\n <Collection>\n <Collection.Values>{props.children}</Collection.Values>\n </Collection>\n );\n};\n\nAction.Label = createSlot({\n name: \"label\",\n TextComp: Text,\n CollectionComp,\n isArray: false,\n wrapInAsset: true,\n});\n\nAction.Icon = createSlot({\n name: \"icon\",\n TextComp: Text,\n CollectionComp,\n isArray: false,\n wrapInAsset: true,\n});\n","import type {\n Asset,\n BeforeTransformFunction,\n TransformFunction,\n} from \"@player-ui/player\";\nimport { compose, composeBefore } from \"@player-ui/asset-transform-plugin\";\nimport { ActionAsset, TransformedAction } from \"../types\";\n\n/**\n * Attaches the methods to execute an action\n */\nconst transform: TransformFunction<ActionAsset, TransformedAction> = (\n action,\n options\n) => {\n return {\n ...action,\n run() {\n if (action.exp) {\n options.evaluate(action.exp);\n }\n\n if (action.value) {\n const skipValidation = action.metaData?.skipValidation;\n options.transition?.(action.value, { force: skipValidation });\n }\n },\n };\n};\n\n/**\n * Appends `exp` to the plugins.stringResolver.propertiesToSkip array or creates it if it doesn't exist\n *\n * @param asset - Asset to apply the transform to\n */\nexport const expPropTransform: BeforeTransformFunction<Asset> = (asset) => {\n const skipArray = asset.plugins?.stringResolver?.propertiesToSkip;\n\n if (skipArray && skipArray.indexOf(\"exp\") > 1) {\n return asset;\n }\n\n return {\n ...asset,\n plugins: {\n ...asset.plugins,\n stringResolver: {\n ...asset?.plugins?.stringResolver,\n propertiesToSkip: [\n ...(asset.plugins?.stringResolver?.propertiesToSkip ?? []),\n \"exp\",\n ],\n },\n },\n };\n};\n\nexport const actionTransform = compose(\n transform,\n composeBefore(expPropTransform)\n);\n"],"mappings":"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","names":["import_react","React","import_react","React"]}
|
package/dist/index.legacy-esm.js
CHANGED
package/dist/index.mjs
CHANGED
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/action/src/components/ActionComponent.tsx","../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/action/src/dsl/Action.tsx","../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/action/src/transform/index.ts"],"sourcesContent":["import React from \"react\";\nimport { Button } from \"@chakra-ui/react\";\nimport type { TransformedAction } from \"../types\";\nimport { ReactAsset } from \"@player-ui/react\";\n\nconst useActionPros = (props: TransformedAction) => {\n return {\n ...(props.label ? { children: <ReactAsset {...props.label.asset} /> } : {}),\n ...(props.icon\n ? {\n [props.metaData?.iconPosition === \"left\" ? \"leftIcon\" : \"rightIcon\"]:\n <ReactAsset {...props.icon.asset} />,\n }\n : {}),\n ...(props.run ? { onClick: props.run } : {}),\n ...(props.metaData?.variant ? { variant: props.metaData.variant } : {}),\n ...(props.metaData?.isLoading\n ? { isLoading: props.metaData.isLoading }\n : {}),\n } as const;\n};\n\nexport const ActionComponent = (props: TransformedAction) => {\n const { children, ...buttonProps } = useActionPros(props);\n\n return <Button {...buttonProps}>{children}</Button>;\n};\n","import React from \"react\";\nimport {\n AssetPropsWithChildren,\n Asset,\n createSlot,\n isTemplateStringInstance,\n} from \"@player-
|
|
1
|
+
{"version":3,"sources":["../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/action/src/components/ActionComponent.tsx","../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/action/src/dsl/Action.tsx","../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/action/src/transform/index.ts"],"sourcesContent":["import React from \"react\";\nimport { Button } from \"@chakra-ui/react\";\nimport type { TransformedAction } from \"../types\";\nimport { ReactAsset } from \"@player-ui/react\";\n\nconst useActionPros = (props: TransformedAction) => {\n return {\n ...(props.label ? { children: <ReactAsset {...props.label.asset} /> } : {}),\n ...(props.icon\n ? {\n [props.metaData?.iconPosition === \"left\" ? \"leftIcon\" : \"rightIcon\"]:\n <ReactAsset {...props.icon.asset} />,\n }\n : {}),\n ...(props.run ? { onClick: props.run } : {}),\n ...(props.metaData?.variant ? { variant: props.metaData.variant } : {}),\n ...(props.metaData?.isLoading\n ? { isLoading: props.metaData.isLoading }\n : {}),\n } as const;\n};\n\nexport const ActionComponent = (props: TransformedAction) => {\n const { children, ...buttonProps } = useActionPros(props);\n\n return <Button {...buttonProps}>{children}</Button>;\n};\n","import React from \"react\";\nimport {\n AssetPropsWithChildren,\n Asset,\n createSlot,\n isTemplateStringInstance,\n} from \"@player-lang/react-dsl\";\nimport type { Asset as AssetType } from \"@player-ui/player\";\nimport type { ActionAsset } from \"../types\";\nimport { Collection } from \"@devtools-ui/collection\";\nimport { Text } from \"@devtools-ui/text\";\n\nexport const Action = (props: AssetPropsWithChildren<ActionAsset>) => {\n const { exp, children, ...rest } = props;\n\n let expValue: ActionAsset[\"exp\"];\n\n if (isTemplateStringInstance(exp)) {\n expValue = exp.toValue();\n } else if (Array.isArray(exp)) {\n expValue = exp.map((e) => (typeof e === \"string\" ? e : e.toValue()));\n } else if (exp) {\n expValue = exp;\n }\n\n return (\n <Asset type=\"action\" {...rest} {...(expValue && { exp: expValue })}>\n {children}\n </Asset>\n );\n};\n\nconst CollectionComp = (props: AssetPropsWithChildren<AssetType>) => {\n return (\n <Collection>\n <Collection.Values>{props.children}</Collection.Values>\n </Collection>\n );\n};\n\nAction.Label = createSlot({\n name: \"label\",\n TextComp: Text,\n CollectionComp,\n isArray: false,\n wrapInAsset: true,\n});\n\nAction.Icon = createSlot({\n name: \"icon\",\n TextComp: Text,\n CollectionComp,\n isArray: false,\n wrapInAsset: true,\n});\n","import type {\n Asset,\n BeforeTransformFunction,\n TransformFunction,\n} from \"@player-ui/player\";\nimport { compose, composeBefore } from \"@player-ui/asset-transform-plugin\";\nimport { ActionAsset, TransformedAction } from \"../types\";\n\n/**\n * Attaches the methods to execute an action\n */\nconst transform: TransformFunction<ActionAsset, TransformedAction> = (\n action,\n options\n) => {\n return {\n ...action,\n run() {\n if (action.exp) {\n options.evaluate(action.exp);\n }\n\n if (action.value) {\n const skipValidation = action.metaData?.skipValidation;\n options.transition?.(action.value, { force: skipValidation });\n }\n },\n };\n};\n\n/**\n * Appends `exp` to the plugins.stringResolver.propertiesToSkip array or creates it if it doesn't exist\n *\n * @param asset - Asset to apply the transform to\n */\nexport const expPropTransform: BeforeTransformFunction<Asset> = (asset) => {\n const skipArray = asset.plugins?.stringResolver?.propertiesToSkip;\n\n if (skipArray && skipArray.indexOf(\"exp\") > 1) {\n return asset;\n }\n\n return {\n ...asset,\n plugins: {\n ...asset.plugins,\n stringResolver: {\n ...asset?.plugins?.stringResolver,\n propertiesToSkip: [\n ...(asset.plugins?.stringResolver?.propertiesToSkip ?? []),\n \"exp\",\n ],\n },\n },\n };\n};\n\nexport const actionTransform = compose(\n transform,\n composeBefore(expPropTransform)\n);\n"],"mappings":"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","names":["React"]}
|
package/package.json
CHANGED
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
{
|
|
2
|
+
"sideEffects": false,
|
|
3
|
+
"files": [
|
|
4
|
+
"dist",
|
|
5
|
+
"src",
|
|
6
|
+
"types"
|
|
7
|
+
],
|
|
2
8
|
"name": "@devtools-ui/action",
|
|
3
|
-
"version": "0.4.0",
|
|
9
|
+
"version": "0.4.1-next.0",
|
|
4
10
|
"main": "dist/cjs/index.cjs",
|
|
5
11
|
"dependencies": {
|
|
6
|
-
"@devtools-ui/text": "0.4.0",
|
|
7
|
-
"@devtools-ui/collection": "0.4.0",
|
|
12
|
+
"@devtools-ui/text": "0.4.1-next.0",
|
|
13
|
+
"@devtools-ui/collection": "0.4.1-next.0",
|
|
8
14
|
"@chakra-ui/react": "^2.8.2",
|
|
9
15
|
"@emotion/react": "^11.11.4",
|
|
10
16
|
"@emotion/styled": "^11.11.0",
|
|
@@ -16,7 +22,6 @@
|
|
|
16
22
|
},
|
|
17
23
|
"module": "dist/index.legacy-esm.js",
|
|
18
24
|
"types": "types/index.d.ts",
|
|
19
|
-
"sideEffects": false,
|
|
20
25
|
"exports": {
|
|
21
26
|
"./package.json": "./package.json",
|
|
22
27
|
"./dist/index.css": "./dist/index.css",
|
|
@@ -26,16 +31,11 @@
|
|
|
26
31
|
"default": "./dist/cjs/index.cjs"
|
|
27
32
|
}
|
|
28
33
|
},
|
|
29
|
-
"files": [
|
|
30
|
-
"dist",
|
|
31
|
-
"src",
|
|
32
|
-
"types"
|
|
33
|
-
],
|
|
34
34
|
"peerDependencies": {
|
|
35
|
-
"@player-
|
|
36
|
-
"@player-ui/types": "0.
|
|
37
|
-
"@player-ui/asset-transform-plugin": "0.
|
|
38
|
-
"@player-ui/player": "0.
|
|
39
|
-
"@player-ui/react": "0.
|
|
35
|
+
"@player-lang/react-dsl": "1.0.1",
|
|
36
|
+
"@player-ui/types": "0.15.5",
|
|
37
|
+
"@player-ui/asset-transform-plugin": "0.15.5",
|
|
38
|
+
"@player-ui/player": "0.15.5",
|
|
39
|
+
"@player-ui/react": "0.15.5"
|
|
40
40
|
}
|
|
41
41
|
}
|
package/src/dsl/Action.tsx
CHANGED
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
Asset,
|
|
5
5
|
createSlot,
|
|
6
6
|
isTemplateStringInstance,
|
|
7
|
-
} from "@player-
|
|
7
|
+
} from "@player-lang/react-dsl";
|
|
8
8
|
import type { Asset as AssetType } from "@player-ui/player";
|
|
9
9
|
import type { ActionAsset } from "../types";
|
|
10
10
|
import { Collection } from "@devtools-ui/collection";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { describe, expect, test } from "vitest";
|
|
3
|
-
import { render, expression as e, Asset } from "@player-
|
|
3
|
+
import { render, expression as e, Asset } from "@player-lang/react-dsl";
|
|
4
4
|
import { Action } from "../Action";
|
|
5
5
|
|
|
6
6
|
describe("DSL: Action", () => {
|
package/types/dsl/Action.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { AssetPropsWithChildren } from "@player-
|
|
2
|
+
import { AssetPropsWithChildren } from "@player-lang/react-dsl";
|
|
3
3
|
import type { ActionAsset } from "../types";
|
|
4
4
|
export declare const Action: {
|
|
5
5
|
(props: AssetPropsWithChildren<ActionAsset>): React.JSX.Element;
|
package/types/types/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { TextAsset } from "@devtools-ui/text";
|
|
2
2
|
import type { Asset, AssetWrapper, Expression } from "@player-ui/types";
|
|
3
|
-
export type Variant = "solid" | "outline" | "ghost" | "link";
|
|
3
|
+
export declare type Variant = "solid" | "outline" | "ghost" | "link";
|
|
4
4
|
export interface ActionAsset extends Asset<"action"> {
|
|
5
5
|
/**text value for action */
|
|
6
6
|
value?: string;
|