@skopon-cool/form-sdk 0.1.0 → 0.1.3

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.
Files changed (53) hide show
  1. package/README.md +52 -12
  2. package/dist/adapter/a2uiAdapter.d.ts.map +1 -1
  3. package/dist/adapter/formFileAccept.d.ts.map +1 -1
  4. package/dist/adapter/formSchema.d.ts +1 -0
  5. package/dist/adapter/formSchema.d.ts.map +1 -1
  6. package/dist/catalog/a2uiCustomCatalog.d.ts.map +1 -1
  7. package/dist/catalog/textFieldPreview.test.d.ts +2 -0
  8. package/dist/catalog/textFieldPreview.test.d.ts.map +1 -0
  9. package/dist/catalog/useSkoponBoundField.d.ts +2 -0
  10. package/dist/catalog/useSkoponBoundField.d.ts.map +1 -1
  11. package/dist/client/formClient.d.ts.map +1 -1
  12. package/dist/components/AskUserFormCard.d.ts +3 -1
  13. package/dist/components/AskUserFormCard.d.ts.map +1 -1
  14. package/dist/components/SkoponA2uiStreamRenderer.d.ts.map +1 -1
  15. package/dist/components/SkoponA2uiStreamRenderer.test.d.ts +2 -0
  16. package/dist/components/SkoponA2uiStreamRenderer.test.d.ts.map +1 -0
  17. package/dist/components/SkoponFormRenderer.d.ts.map +1 -1
  18. package/dist/form-sdk.css +1 -1
  19. package/dist/index.d.ts +2 -2
  20. package/dist/index.d.ts.map +1 -1
  21. package/dist/index.js +998 -667
  22. package/dist/submit/buildCurlStatement.d.ts +8 -0
  23. package/dist/submit/buildCurlStatement.d.ts.map +1 -1
  24. package/dist/submit/intersectPayloadBlocksWithForm.d.ts +26 -0
  25. package/dist/submit/intersectPayloadBlocksWithForm.d.ts.map +1 -0
  26. package/dist/submit/submitFormJson.d.ts.map +1 -1
  27. package/package.json +16 -5
  28. package/src/adapter/a2uiAdapter.test.ts +91 -0
  29. package/src/adapter/a2uiAdapter.ts +36 -7
  30. package/src/adapter/formFileAccept.test.ts +53 -0
  31. package/src/adapter/formFileAccept.ts +11 -2
  32. package/src/adapter/formSchema.test.ts +35 -0
  33. package/src/adapter/formSchema.ts +5 -1
  34. package/src/catalog/a2uiCustomCatalog.tsx +154 -5
  35. package/src/catalog/textFieldPreview.test.tsx +88 -0
  36. package/src/catalog/useSkoponBoundField.test.ts +62 -0
  37. package/src/catalog/useSkoponBoundField.ts +10 -1
  38. package/src/client/formClient.test.ts +83 -0
  39. package/src/client/formClient.ts +10 -2
  40. package/src/components/AskUserFormCard.tsx +136 -58
  41. package/src/components/SkoponA2uiStreamRenderer.test.ts +62 -0
  42. package/src/components/SkoponA2uiStreamRenderer.test.tsx +79 -0
  43. package/src/components/SkoponA2uiStreamRenderer.tsx +96 -15
  44. package/src/components/SkoponFormRenderer.tsx +10 -7
  45. package/src/index.ts +11 -2
  46. package/src/styles/index.css +5 -0
  47. package/src/submit/buildCurlStatement.ts +49 -0
  48. package/src/submit/intersectPayloadBlocksWithForm.ts +175 -0
  49. package/src/submit/submit.test.ts +170 -10
  50. package/src/submit/submitFormJson.ts +20 -1
  51. package/dist/submit/intersectPayloadWithForm.d.ts +0 -17
  52. package/dist/submit/intersectPayloadWithForm.d.ts.map +0 -1
  53. package/src/submit/intersectPayloadWithForm.ts +0 -54
package/README.md CHANGED
@@ -1,26 +1,57 @@
1
- # @skopon/form-sdk
1
+ # @skopon-cool/form-sdk
2
2
 
3
3
  Skopon 表单渲染 SDK:基于 A2UI v0.9 + skopon 自定义 catalog,统一渲染 `form_definition`、A2UI surface 与增量 message 流,并提供 Ask User 提交能力(默认复制 curl,可选 POST JSON)。
4
4
 
5
5
  ## 安装
6
6
 
7
+ ### 方式一:一键安装(推荐 Agent 客户端)
8
+
9
+ 安装 meta 包,自动带上 SDK 及全部 peer 依赖(`react`、`antd`、`@a2ui/*` 等):
10
+
11
+ ```bash
12
+ npm install @skopon-cool/form-sdk-bundle
13
+ ```
14
+
15
+ 使用方式与主包相同,可从 bundle 直接 import:
16
+
17
+ ```ts
18
+ import '@skopon-cool/form-sdk-bundle/styles.css'
19
+ import { AskUserFormCard, createFormClient } from '@skopon-cool/form-sdk-bundle'
20
+ ```
21
+
22
+ ### 方式二:手动安装主包 + peer
23
+
24
+ 若宿主项目已有 React / Ant Design,只需补装 SDK 与 A2UI peer:
25
+
7
26
  ```bash
8
- npm install @skopon/form-sdk
27
+ npm install @skopon-cool/form-sdk react react-dom antd @a2ui/react @a2ui/web_core @ant-design/icons
9
28
  ```
10
29
 
11
- Peer dependencies:`react`、`react-dom`、`antd`、`@a2ui/react`、`@a2ui/web_core`、`dayjs`。
30
+ `dayjs`、`zod` 已作为 SDK 普通依赖随包安装,**无需单独安装**。
31
+
32
+ ### Peer dependencies 说明
33
+
34
+ | 包 | 说明 |
35
+ |----|------|
36
+ | `react` / `react-dom` | 须与宿主共用同一实例,不可由 SDK 内嵌 |
37
+ | `antd` / `@ant-design/icons` | 表单控件与图标,须与宿主主题一致 |
38
+ | `@a2ui/react` / `@a2ui/web_core` | A2UI 渲染栈(SDK 内部使用,宿主无需写 A2UI 代码) |
12
39
 
13
40
  ## 样式
14
41
 
42
+ 主入口 `import '@skopon-cool/form-sdk'` 会在构建产物中自动加载 `form-sdk.css`(含 A2UI 预览样式)。
43
+
44
+ 也可显式引入(推荐在生产环境双保险):
45
+
15
46
  ```ts
16
- import '@skopon/form-sdk/styles.css'
17
- // 或从主入口 side-effect 引入(import '@skopon/form-sdk' 已包含样式)
47
+ import '@skopon-cool/form-sdk/styles.css'
48
+ // bundle 用户:import '@skopon-cool/form-sdk-bundle/styles.css'
18
49
  ```
19
50
 
20
51
  ## 渲染 form_definition
21
52
 
22
53
  ```tsx
23
- import { SkoponFormRenderer, blocksToA2ui, resolveSurfaceFromFormDefinition } from '@skopon/form-sdk'
54
+ import { SkoponFormRenderer, blocksToA2ui, resolveSurfaceFromFormDefinition } from '@skopon-cool/form-sdk'
24
55
 
25
56
  const surface = resolveSurfaceFromFormDefinition(formDefinition)
26
57
  // 或
@@ -32,15 +63,17 @@ const surface = blocksToA2ui(formDefinition)
32
63
  ## A2UI 增量流
33
64
 
34
65
  ```tsx
35
- import { SkoponA2uiStreamRenderer } from '@skopon/form-sdk'
66
+ import { SkoponA2uiStreamRenderer } from '@skopon-cool/form-sdk'
36
67
 
37
68
  <SkoponA2uiStreamRenderer messages={incomingMessages} interactive />
38
69
  ```
39
70
 
40
71
  ## Ask User(QA / 流程 AI 聊天)
41
72
 
73
+ `payload` 须为 **blocksJson**(`{ title?, description?, blocks[] }`),与表单编辑器 Blocks Json 同形。前端按 `form_unique_id` 拉取表单后与 `payload.blocks` **按 name 交集**渲染卡片;payload 中表单外的块不在卡片展示,但提交 curl 时会合并进 body 并以注释标注为额外字段。
74
+
42
75
  ```tsx
43
- import { AskUserFormCard, createFormClient } from '@skopon/form-sdk'
76
+ import { AskUserFormCard, createFormClient } from '@skopon-cool/form-sdk'
44
77
 
45
78
  const client = createFormClient({
46
79
  baseUrl: '/api/v1',
@@ -58,19 +91,19 @@ const client = createFormClient({
58
91
 
59
92
  ## 提交
60
93
 
61
- - `submitMode: 'curl'`(默认):复制 curl 到剪贴板
62
- - `submitMode: 'post'`:`submitFormJson(callbackUrl, values)` POST JSON
94
+ - `submitMode: 'curl'`(默认):复制 curl 到剪贴板(卡片填值 + 额外字段,extra 段含 `// 额外字段(未在卡片展示)` 注释)
95
+ - `submitMode: 'post'`:`submitFormJson(callbackUrl, { ...cardValues, ...extraValues })` POST 合法 JSON
63
96
 
64
97
  独立工具:
65
98
 
66
99
  ```ts
67
- import { buildCurlStatement, submitFormJson } from '@skopon/form-sdk'
100
+ import { buildAskUserCurlStatement, buildCurlStatement, submitFormJson } from '@skopon-cool/form-sdk'
68
101
  ```
69
102
 
70
103
  ## 从 form_bp 拉取详情
71
104
 
72
105
  ```ts
73
- import { createFormClient } from '@skopon/form-sdk'
106
+ import { createFormClient } from '@skopon-cool/form-sdk'
74
107
 
75
108
  const client = createFormClient({
76
109
  baseUrl: '/api/v1',
@@ -80,3 +113,10 @@ const client = createFormClient({
80
113
 
81
114
  const detail = await client.fetchDetail({ formUniqueId: 'formuid-xxx' })
82
115
  ```
116
+
117
+ ## 发布
118
+
119
+ ```bash
120
+ cd sdk/front/form && npm publish --access public
121
+ cd sdk/front/form-bundle && npm publish --access public
122
+ ```
@@ -1 +1 @@
1
- {"version":3,"file":"a2uiAdapter.d.ts","sourceRoot":"","sources":["../../src/adapter/a2uiAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,cAAc,EAKd,UAAU,EACX,MAAM,gBAAgB,CAAA;AAwOvB,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,wEAAwE;IACxE,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,uCAAuC;AACvC,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAOlF;AAED,qCAAqC;AACrC,wBAAgB,YAAY,CAC1B,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,aAAa,GAAG,QAAQ,CAAC,EAChE,OAAO,CAAC,EAAE,mBAAmB,GAC5B,cAAc,CAiChB;AAgJD,yDAAyD;AACzD,wBAAgB,YAAY,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,GAAG,UAAU,CA0B/E;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAChD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAgB3B"}
1
+ {"version":3,"file":"a2uiAdapter.d.ts","sourceRoot":"","sources":["../../src/adapter/a2uiAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,cAAc,EAKd,UAAU,EACX,MAAM,gBAAgB,CAAA;AAkQvB,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACvB,wEAAwE;IACxE,aAAa,CAAC,EAAE,OAAO,CAAA;CACxB;AAED,uCAAuC;AACvC,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAOlF;AAED,qCAAqC;AACrC,wBAAgB,YAAY,CAC1B,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,GAAG,aAAa,GAAG,QAAQ,CAAC,EAChE,OAAO,CAAC,EAAE,mBAAmB,GAC5B,cAAc,CAiChB;AAmJD,yDAAyD;AACzD,wBAAgB,YAAY,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,GAAG,UAAU,CA0B/E;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,cAAc,EACnB,OAAO,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,GAChD,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAgB3B"}
@@ -1 +1 @@
1
- {"version":3,"file":"formFileAccept.d.ts","sourceRoot":"","sources":["../../src/adapter/formFileAccept.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd;AAED,wDAAwD;AACxD,eAAO,MAAM,sBAAsB,EAAE,oBAAoB,EAWxD,CAAA;AAED,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAoB5D,CAAA;AAED,eAAO,MAAM,4BAA4B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAWjE,CAAA;AAeD,eAAO,MAAM,2BAA2B,EAAE,oBAAoB,EA0B7D,CAAA;AAmBD,wBAAgB,6BAA6B,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAS7E;AAED,wBAAgB,wBAAwB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAYnE;AAED,wBAAgB,2BAA2B,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAOtE;AAED,wBAAgB,+BAA+B,CAC7C,KAAK,CAAC,EAAE,MAAM,EAAE,GACf,oBAAoB,EAAE,CAYxB;AAED,wBAAgB,kCAAkC,CAChD,KAAK,CAAC,EAAE,MAAM,EAAE,EAChB,UAAU,CAAC,EAAE,MAAM,EAAE,GACpB,MAAM,EAAE,CAKV;AAED,wBAAgB,wBAAwB,CACtC,KAAK,CAAC,EAAE,MAAM,EAAE,EAChB,UAAU,CAAC,EAAE,MAAM,EAAE,GACpB,MAAM,GAAG,SAAS,CAKpB;AAED,wBAAgB,uBAAuB,CACrC,KAAK,CAAC,EAAE,MAAM,EAAE,EAChB,UAAU,CAAC,EAAE,MAAM,EAAE,GACpB,MAAM,GAAG,IAAI,CAYf"}
1
+ {"version":3,"file":"formFileAccept.d.ts","sourceRoot":"","sources":["../../src/adapter/formFileAccept.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;CACd;AAED,wDAAwD;AACxD,eAAO,MAAM,sBAAsB,EAAE,oBAAoB,EAWxD,CAAA;AAED,eAAO,MAAM,uBAAuB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAoB5D,CAAA;AAED,eAAO,MAAM,4BAA4B,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAWjE,CAAA;AAeD,eAAO,MAAM,2BAA2B,EAAE,oBAAoB,EA0B7D,CAAA;AAuBD,wBAAgB,6BAA6B,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAS7E;AAED,wBAAgB,wBAAwB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAYnE;AAED,wBAAgB,2BAA2B,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAOtE;AAED,wBAAgB,+BAA+B,CAC7C,KAAK,CAAC,EAAE,MAAM,EAAE,GACf,oBAAoB,EAAE,CAYxB;AAED,wBAAgB,kCAAkC,CAChD,KAAK,CAAC,EAAE,MAAM,EAAE,EAChB,UAAU,CAAC,EAAE,MAAM,EAAE,GACpB,MAAM,EAAE,CAUV;AAED,wBAAgB,wBAAwB,CACtC,KAAK,CAAC,EAAE,MAAM,EAAE,EAChB,UAAU,CAAC,EAAE,MAAM,EAAE,GACpB,MAAM,GAAG,SAAS,CAKpB;AAED,wBAAgB,uBAAuB,CACrC,KAAK,CAAC,EAAE,MAAM,EAAE,EAChB,UAAU,CAAC,EAAE,MAAM,EAAE,GACpB,MAAM,GAAG,IAAI,CAYf"}
@@ -1,4 +1,5 @@
1
1
  import type { FormBlock, FormBlockType, FormSchema } from '../types/index';
2
+ export declare function coerceToggleValue(raw: unknown): boolean;
2
3
  export declare function syncFormDefinition(definition: FormSchema): FormSchema;
3
4
  export declare function normalizeFormDefinition(raw: FormSchema | undefined): FormSchema;
4
5
  export declare function createEmptyFormDefinition(): FormSchema;
@@ -1 +1 @@
1
- {"version":3,"file":"formSchema.d.ts","sourceRoot":"","sources":["../../src/adapter/formSchema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAsE1E,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU,CAOrE;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,UAAU,GAAG,SAAS,GAAG,UAAU,CAW/E;AAED,wBAAgB,yBAAyB,IAAI,UAAU,CAEtD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,aAAa,GAAG,SAAS,CAsC/D"}
1
+ {"version":3,"file":"formSchema.d.ts","sourceRoot":"","sources":["../../src/adapter/formSchema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAe1E,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAEvD;AAyDD,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,UAAU,GAAG,UAAU,CAOrE;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,UAAU,GAAG,SAAS,GAAG,UAAU,CAW/E;AAED,wBAAgB,yBAAyB,IAAI,UAAU,CAEtD;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,aAAa,GAAG,SAAS,CAsC/D"}
@@ -1 +1 @@
1
- {"version":3,"file":"a2uiCustomCatalog.d.ts","sourceRoot":"","sources":["../../src/catalog/a2uiCustomCatalog.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAyB,MAAM,qBAAqB,CAAA;AACpE,OAAO,EAGL,KAAK,4BAA4B,EAClC,MAAM,kBAAkB,CAAA;AAiBzB;;;GAGG;AACH,eAAO,MAAM,iBAAiB,qBAAqB,CAAA;AAqfnD,kDAAkD;AAClD,wBAAgB,kBAAkB,IAAI,OAAO,CAAC,4BAA4B,CAAC,CAkB1E"}
1
+ {"version":3,"file":"a2uiCustomCatalog.d.ts","sourceRoot":"","sources":["../../src/catalog/a2uiCustomCatalog.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAyB,MAAM,qBAAqB,CAAA;AACpE,OAAO,EAGL,KAAK,4BAA4B,EAClC,MAAM,kBAAkB,CAAA;AA8BzB;;;GAGG;AACH,eAAO,MAAM,iBAAiB,qBAAqB,CAAA;AA0nBnD,kDAAkD;AAClD,wBAAgB,kBAAkB,IAAI,OAAO,CAAC,4BAA4B,CAAC,CAoB1E"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=textFieldPreview.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"textFieldPreview.test.d.ts","sourceRoot":"","sources":["../../src/catalog/textFieldPreview.test.tsx"],"names":[],"mappings":""}
@@ -1,4 +1,6 @@
1
1
  import type { ComponentContext } from '@a2ui/web_core/v0_9';
2
+ /** 从 A2UI 组件 context 读取当前绑定字段值(不订阅更新,适合事件回调内读最新值)。 */
3
+ export declare function readBoundFieldValue(context: ComponentContext, field?: string): unknown;
2
4
  /** 将 skopon 预览控件绑定到 A2UI surface dataModel(与 basicCatalog binder 行为一致)。 */
3
5
  export declare function useSkoponBoundField(context: ComponentContext, field?: string): {
4
6
  value: unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"useSkoponBoundField.d.ts","sourceRoot":"","sources":["../../src/catalog/useSkoponBoundField.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAY3D,2EAA2E;AAC3E,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,EAAE,KAAK,SAAU;;qBAsBnE,OAAO;;EAQjB;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAInE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAItD"}
1
+ {"version":3,"file":"useSkoponBoundField.d.ts","sourceRoot":"","sources":["../../src/catalog/useSkoponBoundField.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAY3D,sDAAsD;AACtD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,EAAE,KAAK,SAAU,GAAG,OAAO,CAMvF;AAED,2EAA2E;AAC3E,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,EAAE,KAAK,SAAU;;qBAsBnE,OAAO;;EAQjB;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAInE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,EAAE,CAItD"}
@@ -1 +1 @@
1
- {"version":3,"file":"formClient.d.ts","sourceRoot":"","sources":["../../src/client/formClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAc,MAAM,gBAAgB,CAAA;AAGlE,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,EAAE,MAAM,CAAA;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACzC;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAC5E;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,CAAC,GAAG,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAA;CAC5F;AAgBD,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,iBAAsB,GAAG,UAAU,CAmC5E"}
1
+ {"version":3,"file":"formClient.d.ts","sourceRoot":"","sources":["../../src/client/formClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAc,MAAM,gBAAgB,CAAA;AAGlE,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,EAAE,MAAM,CAAA;IACtB,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CACzC;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;CAC5E;AAED,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,CAAC,GAAG,EAAE;QAAE,YAAY,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAA;CAC5F;AAwBD,wBAAgB,gBAAgB,CAAC,OAAO,GAAE,iBAAsB,GAAG,UAAU,CAmC5E"}
@@ -1,9 +1,11 @@
1
1
  import type { FormDetailResult, SubmitMode } from '../types/index';
2
2
  export interface AskUserFormCardProps {
3
3
  payload: unknown;
4
- formUniqueId: string;
4
+ /** 可选;无则跳过拉取 vt_forms,仅用 payload blocks fallback */
5
+ formUniqueId?: string | null;
5
6
  callbackUrl?: string | null;
6
7
  submitMode?: SubmitMode;
8
+ /** 需 useCallback 稳定引用,避免重复拉取 */
7
9
  fetchFormDetail: (ref: {
8
10
  formUniqueId: string;
9
11
  }) => Promise<FormDetailResult>;
@@ -1 +1 @@
1
- {"version":3,"file":"AskUserFormCard.d.ts","sourceRoot":"","sources":["../../src/components/AskUserFormCard.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAc,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAQ9E,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAA;IAChB,YAAY,EAAE,MAAM,CAAA;IACpB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,eAAe,EAAE,CAAC,GAAG,EAAE;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAC7E,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CAChE;AAED,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EACtC,OAAO,EACP,YAAY,EACZ,WAAW,EACX,UAAmB,EACnB,eAAe,EACf,QAAQ,GACT,EAAE,oBAAoB,+BAgItB"}
1
+ {"version":3,"file":"AskUserFormCard.d.ts","sourceRoot":"","sources":["../../src/components/AskUserFormCard.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAc,UAAU,EAAE,MAAM,gBAAgB,CAAA;AA4B9E,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,OAAO,CAAA;IAChB,oDAAoD;IACpD,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,UAAU,CAAC,EAAE,UAAU,CAAA;IACvB,gCAAgC;IAChC,eAAe,EAAE,CAAC,GAAG,EAAE;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAA;IAC7E,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAA;CAChE;AAED,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EACtC,OAAO,EACP,YAAY,EACZ,WAAW,EACX,UAAmB,EACnB,eAAe,EACf,QAAQ,GACT,EAAE,oBAAoB,+BAwLtB"}
@@ -1 +1 @@
1
- {"version":3,"file":"SkoponA2uiStreamRenderer.d.ts","sourceRoot":"","sources":["../../src/components/SkoponA2uiStreamRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAwC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAC5E,OAAO,EAAoB,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAOxE,MAAM,WAAW,6BAA6B;IAC5C,yBAAyB;IACzB,QAAQ,EAAE,WAAW,EAAE,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAED,MAAM,CAAC,OAAO,UAAU,wBAAwB,CAAC,EAC/C,QAAQ,EACR,SAAgC,EAChC,SAAgB,EAChB,WAAkB,GACnB,EAAE,6BAA6B,+BAgD/B"}
1
+ {"version":3,"file":"SkoponA2uiStreamRenderer.d.ts","sourceRoot":"","sources":["../../src/components/SkoponA2uiStreamRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AACnE,OAAO,EAAoB,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAOxE,MAAM,WAAW,6BAA6B;IAC5C,yBAAyB;IACzB,QAAQ,EAAE,WAAW,EAAE,CAAA;IACvB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB;AAMD,MAAM,CAAC,OAAO,UAAU,wBAAwB,CAAC,EAC/C,QAAQ,EACR,SAAgC,EAChC,SAAgB,EAChB,WAAkB,GACnB,EAAE,6BAA6B,+BA6H/B"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=SkoponA2uiStreamRenderer.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SkoponA2uiStreamRenderer.test.d.ts","sourceRoot":"","sources":["../../src/components/SkoponA2uiStreamRenderer.test.tsx"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"SkoponFormRenderer.d.ts","sourceRoot":"","sources":["../../src/components/SkoponFormRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAA;AAKd,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAMpD,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC9D;AAED,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,CAAA;IACtC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,8BAA8B;IAC9B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;CACtB;AAED,QAAA,MAAM,kBAAkB,2HAkEvB,CAAA;AAED,eAAe,kBAAkB,CAAA"}
1
+ {"version":3,"file":"SkoponFormRenderer.d.ts","sourceRoot":"","sources":["../../src/components/SkoponFormRenderer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAML,KAAK,SAAS,EACf,MAAM,OAAO,CAAA;AAKd,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAMpD,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC9D;AAED,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,CAAA;IACtC,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,8BAA8B;IAC9B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAA;CACtB;AAED,QAAA,MAAM,kBAAkB,2HAqEvB,CAAA;AAED,eAAe,kBAAkB,CAAA"}
package/dist/form-sdk.css CHANGED
@@ -1 +1 @@
1
- .a2ui-surface.a2ui-container{--a2ui-color-border: var(--color-border);--a2ui-color-border-hover: var(--color-border-strong);--a2ui-color-input: var(--color-surface);--a2ui-color-on-input: var(--color-text);--a2ui-color-on-background: var(--color-text);--a2ui-color-on-surface: var(--color-text);--a2ui-color-primary: var(--color-primary);--a2ui-color-primary-hover: var(--color-primary-hover);--a2ui-color-on-primary: var(--color-on-primary);--a2ui-color-surface: var(--color-surface);--a2ui-color-secondary-hover: var(--color-bg-subtle);--a2ui-border-radius: var(--radius-md);--a2ui-border-width: 1px;--a2ui-column-gap: var(--space-form-item);--a2ui-row-gap: var(--space-3);--a2ui-spacing-xs: var(--space-1);--a2ui-spacing-s: var(--space-2);--a2ui-spacing-m: var(--space-3);--a2ui-spacing-l: var(--space-4);--a2ui-font-size-xs: var(--font-size-xs);--a2ui-font-size-s: var(--font-size-sm);--a2ui-font-size-m: var(--font-size-base);--a2ui-font-size-l: var(--font-size-lg);--a2ui-font-size-xl: var(--font-size-xl);--a2ui-font-size-2xl: var(--font-size-2xl);--a2ui-line-height-headings: var(--line-height-tight);--a2ui-line-height-body: var(--line-height-base);width:100%;color:var(--color-text);font-family:var(--font-sans);font-size:var(--font-size-base);line-height:var(--line-height-base)}.a2ui-surface.a2ui-container h1,.a2ui-surface.a2ui-container h2,.a2ui-surface.a2ui-container h3,.a2ui-surface.a2ui-container h4,.a2ui-surface.a2ui-container h5{margin:0 0 var(--space-4);font-family:var(--font-sans);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);color:var(--color-text)}.a2ui-surface.a2ui-container h1{font-size:var(--font-size-2xl)}.a2ui-surface.a2ui-container h2{font-size:var(--font-size-xl)}.a2ui-surface.a2ui-container h3{font-size:var(--font-size-lg)}.a2ui-surface.a2ui-container h4{font-size:var(--font-size-base)}.a2ui-surface.a2ui-container p{margin:0 0 var(--space-4);font-size:var(--font-size-base);line-height:var(--line-height-relaxed);color:var(--color-text-secondary)}.a2ui-surface.a2ui-container label:not(:has(input)):has(+input:is([type=text],[type=number],[type=email],[type=tel],[type=url],[type=password],[type=date],[type=time],[type=datetime-local])),.a2ui-surface.a2ui-container label:not(:has(input)):has(+textarea){display:block;margin:0 0 var(--space-2);font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);line-height:var(--line-height-base);color:var(--color-text)}.a2ui-surface.a2ui-container strong{display:block;margin:0 0 var(--space-2);font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);line-height:var(--line-height-base);color:var(--color-text)}.a2ui-surface.a2ui-container div:has(>input[type=checkbox]:first-child+label){display:flex;align-items:center;gap:var(--space-2)}.a2ui-surface.a2ui-container input[type=checkbox]:not(label input)+label,.a2ui-surface.a2ui-container input[type=radio]:not(label input)+label{display:inline;margin:0;font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-base);color:var(--color-text);cursor:pointer}.a2ui-surface.a2ui-container div:has(>label>input[type=checkbox]),.a2ui-surface.a2ui-container div:has(>label>input[type=radio]){display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2);width:100%}.a2ui-surface.a2ui-container label:has(>input[type=checkbox]),.a2ui-surface.a2ui-container label:has(>input[type=radio]){display:inline-flex;align-items:center;gap:var(--space-2);margin:0;width:auto;max-width:100%;font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-base);color:var(--color-text);cursor:pointer}.a2ui-surface.a2ui-container label:has(>input[type=checkbox])>span,.a2ui-surface.a2ui-container label:has(>input[type=radio])>span{font-size:var(--font-size-base);line-height:var(--line-height-base);color:var(--color-text)}.a2ui-surface.a2ui-container input[type=text],.a2ui-surface.a2ui-container input[type=number],.a2ui-surface.a2ui-container input[type=email],.a2ui-surface.a2ui-container input[type=tel],.a2ui-surface.a2ui-container input[type=url],.a2ui-surface.a2ui-container input[type=password],.a2ui-surface.a2ui-container input[type=date],.a2ui-surface.a2ui-container input[type=time],.a2ui-surface.a2ui-container input[type=datetime-local],.a2ui-surface.a2ui-container textarea{display:block;width:100%;min-height:var(--button-height-md);box-sizing:border-box;padding:var(--space-2) var(--space-3);font-family:var(--font-sans);font-size:var(--font-size-base);line-height:var(--line-height-base);color:var(--color-text);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--duration-fast) var(--ease-default),box-shadow var(--duration-fast) var(--ease-default)}.a2ui-surface.a2ui-container textarea{min-height:calc(var(--button-height-md) * 2);padding-top:var(--space-2);padding-bottom:var(--space-2);resize:vertical}.a2ui-surface.a2ui-container input[type=text]:hover,.a2ui-surface.a2ui-container input[type=number]:hover,.a2ui-surface.a2ui-container input[type=email]:hover,.a2ui-surface.a2ui-container input[type=tel]:hover,.a2ui-surface.a2ui-container input[type=url]:hover,.a2ui-surface.a2ui-container input[type=password]:hover,.a2ui-surface.a2ui-container input[type=date]:hover,.a2ui-surface.a2ui-container input[type=time]:hover,.a2ui-surface.a2ui-container input[type=datetime-local]:hover,.a2ui-surface.a2ui-container textarea:hover{border-color:var(--color-border-strong)}.a2ui-surface.a2ui-container input[type=text]:focus,.a2ui-surface.a2ui-container input[type=number]:focus,.a2ui-surface.a2ui-container input[type=email]:focus,.a2ui-surface.a2ui-container input[type=tel]:focus,.a2ui-surface.a2ui-container input[type=url]:focus,.a2ui-surface.a2ui-container input[type=password]:focus,.a2ui-surface.a2ui-container input[type=date]:focus,.a2ui-surface.a2ui-container input[type=time]:focus,.a2ui-surface.a2ui-container input[type=datetime-local]:focus,.a2ui-surface.a2ui-container textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.a2ui-surface.a2ui-container input[type=checkbox]:not(.ant-checkbox-input),.a2ui-surface.a2ui-container input[type=radio]:not(.ant-radio-input){width:16px;height:16px;min-height:0;min-width:16px;margin:0;padding:0;flex-shrink:0;border:none;border-radius:var(--radius-sm);background:transparent;box-shadow:none;accent-color:var(--color-primary);cursor:pointer;vertical-align:middle}.a2ui-surface.a2ui-container input[type=checkbox]:not(.ant-checkbox-input):not(label input),.a2ui-surface.a2ui-container input[type=radio]:not(.ant-radio-input):not(label input){border:1px solid var(--color-border);background:var(--color-surface)}.a2ui-surface.a2ui-container input[type=radio]:not(.ant-radio-input):not(label input){border-radius:50%}.a2ui-surface.a2ui-container input[type=checkbox]:not(.ant-checkbox-input):focus,.a2ui-surface.a2ui-container input[type=radio]:not(.ant-radio-input):focus{outline:none;box-shadow:var(--shadow-focus)}.a2ui-surface.a2ui-container button:not([class*=ant-]){min-height:var(--button-height-md);padding:0 var(--button-padding-x-md);font-family:var(--font-sans);font-size:var(--button-font-size-md);font-weight:var(--button-font-weight);line-height:var(--line-height-base);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-pill);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-default),border-color var(--duration-fast) var(--ease-default),color var(--duration-fast) var(--ease-default)}.a2ui-surface.a2ui-container button:not([class*=ant-]):hover:not(:disabled){border-color:var(--color-border-strong);background:var(--color-bg-subtle)}.a2ui-surface.a2ui-container button:not([class*=ant-]):disabled{cursor:not-allowed;opacity:.45}.a2ui-surface.a2ui-container button.chip,.a2ui-surface.a2ui-container button.chip.selected,.a2ui-surface.a2ui-container button.selected{min-height:var(--button-height-sm);padding:0 var(--button-padding-x-sm);font-size:var(--button-font-size-sm)}.a2ui-surface.a2ui-container button.chip.selected,.a2ui-surface.a2ui-container button.selected{color:var(--color-on-primary);background-color:var(--color-primary-solid);border-color:var(--color-primary-solid)}.a2ui-surface.a2ui-container button.chip.selected:hover,.a2ui-surface.a2ui-container button.selected:hover{background-color:var(--color-primary-hover);border-color:var(--color-primary-hover)}.a2ui-surface.a2ui-container span[style*="color: red"],.a2ui-surface.a2ui-container span[style*="color:red"]{display:block;margin-top:var(--space-1);font-size:var(--font-size-xs);line-height:var(--line-height-relaxed);color:var(--color-danger-text)!important}.a2ui-surface.a2ui-container img:not(.form-media-item){max-width:100%;height:auto;border-radius:var(--radius-md)}.a2ui-surface.a2ui-container .form-block-preview{width:100%}.a2ui-surface.a2ui-container .form-block-preview+.form-block-preview,.a2ui-surface.a2ui-container .form-block-preview-label+.form-block-preview-control,.a2ui-surface.a2ui-container .form-block-preview-label+.form-media-preview,.a2ui-surface.a2ui-container .form-block-preview-label+.form-media-list,.a2ui-surface.a2ui-container .form-block-preview-label+.form-file-upload-preview{margin-top:var(--space-2)}.a2ui-surface.a2ui-container .form-block-preview .ant-upload-drag{border-radius:var(--radius-md)}.a2ui-surface.a2ui-container .form-block-preview-control.ant-picker{width:100%}.a2ui-surface.a2ui-container .form-block-preview-control.ant-switch{margin-top:var(--space-1)}.form-block-preview{padding:var(--space-1) 0 var(--space-2)}.form-block-preview-label{font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);margin-bottom:var(--space-2);color:var(--color-text)}.form-block-preview-control{margin-top:var(--space-1)}.form-block-preview-help{display:block;margin-top:var(--space-2);font-size:var(--font-size-xs);color:var(--color-text-muted)}.form-media-preview{max-width:100%;border-radius:var(--radius-md);overflow:hidden}.form-media-list{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:var(--space-2);max-width:100%}.form-media-item{display:block;flex-shrink:0;object-fit:cover;border-radius:var(--radius-md)}.form-media-list.form-media-size-huge .form-media-item{width:480px;height:480px}.form-media-list.form-media-size-huge .form-media-item.form-media-item--audio{width:480px;height:48px}.form-media-list.form-media-size-large .form-media-item{width:320px;height:320px}.form-media-list.form-media-size-large .form-media-item.form-media-item--audio{width:320px;height:48px}.form-media-list.form-media-size-medium .form-media-item{width:160px;height:160px}.form-media-list.form-media-size-medium .form-media-item.form-media-item--audio{width:160px;height:48px}.form-media-list.form-media-size-small .form-media-item{width:80px;height:80px}.form-media-list.form-media-size-small .form-media-item.form-media-item--audio{width:80px;height:48px}.form-media-list.form-media-size-icon .form-media-item{width:48px;height:48px}.form-media-preview--empty{display:flex;align-items:center;justify-content:center;min-height:120px;padding:var(--space-4);border:1px dashed var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-subtle);color:var(--color-text-muted);font-size:var(--font-size-sm);text-align:center}.form-file-upload-preview{margin-top:var(--space-1)}.form-file-upload-preview .ant-upload-drag{border-color:var(--color-border);background:var(--color-bg-subtle)}.form-file-upload-preview-icon{margin:0 0 var(--space-2);color:var(--color-primary)}.form-file-upload-preview-text{margin:0;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.ask-user-form-card{display:flex;flex-direction:column;gap:var(--space-3);min-width:0}.ask-user-form-actions{display:flex;justify-content:flex-end}.ask-user-curl-card{display:flex;flex-direction:column;gap:var(--space-1);min-width:0;padding:var(--space-2);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-bg-subtle, rgba(0, 0, 0, .03))}.ask-user-curl-card-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.ask-user-curl-card-header-title{display:flex;align-items:center;gap:var(--space-2);min-width:0;flex:1 1 auto}.ask-user-curl-unpublished-tag{margin:0;flex-shrink:0;color:var(--color-warning, #d48806);background:#d488061f;border-color:transparent}.ask-user-curl-incomplete-tag{margin:0;flex-shrink:0;color:var(--color-primary);background:var(--color-primary-subtle);border-color:transparent}.skopon-form-curl-json,.flow-artifact-generate-chat-json{margin:0;padding:var(--space-2);font-size:12px;line-height:1.5;white-space:pre-wrap;word-break:break-all}
1
+ .a2ui-surface.a2ui-container{--a2ui-color-border: var(--color-border);--a2ui-color-border-hover: var(--color-border-strong);--a2ui-color-input: var(--color-surface);--a2ui-color-on-input: var(--color-text);--a2ui-color-on-background: var(--color-text);--a2ui-color-on-surface: var(--color-text);--a2ui-color-primary: var(--color-primary);--a2ui-color-primary-hover: var(--color-primary-hover);--a2ui-color-on-primary: var(--color-on-primary);--a2ui-color-surface: var(--color-surface);--a2ui-color-secondary-hover: var(--color-bg-subtle);--a2ui-border-radius: var(--radius-md);--a2ui-border-width: 1px;--a2ui-column-gap: var(--space-form-item);--a2ui-row-gap: var(--space-3);--a2ui-spacing-xs: var(--space-1);--a2ui-spacing-s: var(--space-2);--a2ui-spacing-m: var(--space-3);--a2ui-spacing-l: var(--space-4);--a2ui-font-size-xs: var(--font-size-xs);--a2ui-font-size-s: var(--font-size-sm);--a2ui-font-size-m: var(--font-size-base);--a2ui-font-size-l: var(--font-size-lg);--a2ui-font-size-xl: var(--font-size-xl);--a2ui-font-size-2xl: var(--font-size-2xl);--a2ui-line-height-headings: var(--line-height-tight);--a2ui-line-height-body: var(--line-height-base);width:100%;color:var(--color-text);font-family:var(--font-sans);font-size:var(--font-size-base);line-height:var(--line-height-base)}.a2ui-surface.a2ui-container h1,.a2ui-surface.a2ui-container h2,.a2ui-surface.a2ui-container h3,.a2ui-surface.a2ui-container h4,.a2ui-surface.a2ui-container h5{margin:0 0 var(--space-4);font-family:var(--font-sans);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);color:var(--color-text)}.a2ui-surface.a2ui-container h1{font-size:var(--font-size-2xl)}.a2ui-surface.a2ui-container h2{font-size:var(--font-size-xl)}.a2ui-surface.a2ui-container h3{font-size:var(--font-size-lg)}.a2ui-surface.a2ui-container h4{font-size:var(--font-size-base)}.a2ui-surface.a2ui-container p{margin:0 0 var(--space-4);font-size:var(--font-size-base);line-height:var(--line-height-relaxed);color:var(--color-text-secondary)}.a2ui-surface.a2ui-container label:not(:has(input)):has(+input:is([type=text],[type=number],[type=email],[type=tel],[type=url],[type=password],[type=date],[type=time],[type=datetime-local])),.a2ui-surface.a2ui-container label:not(:has(input)):has(+textarea){display:block;margin:0 0 var(--space-2);font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);line-height:var(--line-height-base);color:var(--color-text)}.a2ui-surface.a2ui-container strong{display:block;margin:0 0 var(--space-2);font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);line-height:var(--line-height-base);color:var(--color-text)}.a2ui-surface.a2ui-container div:has(>input[type=checkbox]:first-child+label){display:flex;align-items:center;gap:var(--space-2)}.a2ui-surface.a2ui-container input[type=checkbox]:not(label input)+label,.a2ui-surface.a2ui-container input[type=radio]:not(label input)+label{display:inline;margin:0;font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-base);color:var(--color-text);cursor:pointer}.a2ui-surface.a2ui-container div:has(>label>input[type=checkbox]),.a2ui-surface.a2ui-container div:has(>label>input[type=radio]){display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2);width:100%}.a2ui-surface.a2ui-container label:has(>input[type=checkbox]),.a2ui-surface.a2ui-container label:has(>input[type=radio]){display:inline-flex;align-items:center;gap:var(--space-2);margin:0;width:auto;max-width:100%;font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-base);color:var(--color-text);cursor:pointer}.a2ui-surface.a2ui-container label:has(>input[type=checkbox])>span,.a2ui-surface.a2ui-container label:has(>input[type=radio])>span{font-size:var(--font-size-base);line-height:var(--line-height-base);color:var(--color-text)}.a2ui-surface.a2ui-container input[type=text],.a2ui-surface.a2ui-container input[type=number],.a2ui-surface.a2ui-container input[type=email],.a2ui-surface.a2ui-container input[type=tel],.a2ui-surface.a2ui-container input[type=url],.a2ui-surface.a2ui-container input[type=password],.a2ui-surface.a2ui-container input[type=date],.a2ui-surface.a2ui-container input[type=time],.a2ui-surface.a2ui-container input[type=datetime-local],.a2ui-surface.a2ui-container textarea{display:block;width:100%;min-height:var(--button-height-md);box-sizing:border-box;padding:var(--space-2) var(--space-3);font-family:var(--font-sans);font-size:var(--font-size-base);line-height:var(--line-height-base);color:var(--color-text);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);transition:border-color var(--duration-fast) var(--ease-default),box-shadow var(--duration-fast) var(--ease-default)}.a2ui-surface.a2ui-container textarea{min-height:calc(var(--button-height-md) * 2);padding-top:var(--space-2);padding-bottom:var(--space-2);resize:vertical}.a2ui-surface.a2ui-container input[type=text]:hover,.a2ui-surface.a2ui-container input[type=number]:hover,.a2ui-surface.a2ui-container input[type=email]:hover,.a2ui-surface.a2ui-container input[type=tel]:hover,.a2ui-surface.a2ui-container input[type=url]:hover,.a2ui-surface.a2ui-container input[type=password]:hover,.a2ui-surface.a2ui-container input[type=date]:hover,.a2ui-surface.a2ui-container input[type=time]:hover,.a2ui-surface.a2ui-container input[type=datetime-local]:hover,.a2ui-surface.a2ui-container textarea:hover{border-color:var(--color-border-strong)}.a2ui-surface.a2ui-container input[type=text]:focus,.a2ui-surface.a2ui-container input[type=number]:focus,.a2ui-surface.a2ui-container input[type=email]:focus,.a2ui-surface.a2ui-container input[type=tel]:focus,.a2ui-surface.a2ui-container input[type=url]:focus,.a2ui-surface.a2ui-container input[type=password]:focus,.a2ui-surface.a2ui-container input[type=date]:focus,.a2ui-surface.a2ui-container input[type=time]:focus,.a2ui-surface.a2ui-container input[type=datetime-local]:focus,.a2ui-surface.a2ui-container textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus)}.a2ui-surface.a2ui-container input[type=checkbox]:not(.ant-checkbox-input),.a2ui-surface.a2ui-container input[type=radio]:not(.ant-radio-input){width:16px;height:16px;min-height:0;min-width:16px;margin:0;padding:0;flex-shrink:0;border:none;border-radius:var(--radius-sm);background:transparent;box-shadow:none;accent-color:var(--color-primary);cursor:pointer;vertical-align:middle}.a2ui-surface.a2ui-container input[type=checkbox]:not(.ant-checkbox-input):not(label input),.a2ui-surface.a2ui-container input[type=radio]:not(.ant-radio-input):not(label input){border:1px solid var(--color-border);background:var(--color-surface)}.a2ui-surface.a2ui-container input[type=radio]:not(.ant-radio-input):not(label input){border-radius:50%}.a2ui-surface.a2ui-container input[type=checkbox]:not(.ant-checkbox-input):focus,.a2ui-surface.a2ui-container input[type=radio]:not(.ant-radio-input):focus{outline:none;box-shadow:var(--shadow-focus)}.a2ui-surface.a2ui-container button:not([class*=ant-]){min-height:var(--button-height-md);padding:0 var(--button-padding-x-md);font-family:var(--font-sans);font-size:var(--button-font-size-md);font-weight:var(--button-font-weight);line-height:var(--line-height-base);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-pill);cursor:pointer;transition:background-color var(--duration-fast) var(--ease-default),border-color var(--duration-fast) var(--ease-default),color var(--duration-fast) var(--ease-default)}.a2ui-surface.a2ui-container button:not([class*=ant-]):hover:not(:disabled){border-color:var(--color-border-strong);background:var(--color-bg-subtle)}.a2ui-surface.a2ui-container button:not([class*=ant-]):disabled{cursor:not-allowed;opacity:.45}.a2ui-surface.a2ui-container button.chip,.a2ui-surface.a2ui-container button.chip.selected,.a2ui-surface.a2ui-container button.selected{min-height:var(--button-height-sm);padding:0 var(--button-padding-x-sm);font-size:var(--button-font-size-sm)}.a2ui-surface.a2ui-container button.chip.selected,.a2ui-surface.a2ui-container button.selected{color:var(--color-on-primary);background-color:var(--color-primary-solid);border-color:var(--color-primary-solid)}.a2ui-surface.a2ui-container button.chip.selected:hover,.a2ui-surface.a2ui-container button.selected:hover{background-color:var(--color-primary-hover);border-color:var(--color-primary-hover)}.a2ui-surface.a2ui-container span[style*="color: red"],.a2ui-surface.a2ui-container span[style*="color:red"]{display:block;margin-top:var(--space-1);font-size:var(--font-size-xs);line-height:var(--line-height-relaxed);color:var(--color-danger-text)!important}.a2ui-surface.a2ui-container img:not(.form-media-item){max-width:100%;height:auto;border-radius:var(--radius-md)}.a2ui-surface.a2ui-container .form-block-preview{width:100%}.a2ui-surface.a2ui-container .form-block-preview+.form-block-preview,.a2ui-surface.a2ui-container .form-block-preview-label+.form-block-preview-control,.a2ui-surface.a2ui-container .form-block-preview-label+.form-media-preview,.a2ui-surface.a2ui-container .form-block-preview-label+.form-media-list,.a2ui-surface.a2ui-container .form-block-preview-label+.form-file-upload-preview{margin-top:var(--space-2)}.a2ui-surface.a2ui-container .form-block-preview .ant-upload-drag{border-radius:var(--radius-md)}.a2ui-surface.a2ui-container .form-block-preview-control.ant-picker{width:100%}.a2ui-surface.a2ui-container .form-block-preview-control.ant-switch{margin-top:var(--space-1)}.form-block-preview{padding:var(--space-1) 0 var(--space-2)}.form-block-preview-label{font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);margin-bottom:var(--space-2);color:var(--color-text)}.form-block-preview-control{margin-top:var(--space-1)}.form-block-preview-help{display:block;margin-top:var(--space-2);font-size:var(--font-size-xs);color:var(--color-text-muted)}.form-media-preview{max-width:100%;border-radius:var(--radius-md);overflow:hidden}.form-media-list{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:var(--space-2);max-width:100%}.form-media-item{display:block;flex-shrink:0;object-fit:cover;border-radius:var(--radius-md)}.form-media-list.form-media-size-huge .form-media-item{width:480px;height:480px}.form-media-list.form-media-size-huge .form-media-item.form-media-item--audio{width:480px;height:48px}.form-media-list.form-media-size-large .form-media-item{width:320px;height:320px}.form-media-list.form-media-size-large .form-media-item.form-media-item--audio{width:320px;height:48px}.form-media-list.form-media-size-medium .form-media-item{width:160px;height:160px}.form-media-list.form-media-size-medium .form-media-item.form-media-item--audio{width:160px;height:48px}.form-media-list.form-media-size-small .form-media-item{width:80px;height:80px}.form-media-list.form-media-size-small .form-media-item.form-media-item--audio{width:80px;height:48px}.form-media-list.form-media-size-icon .form-media-item{width:48px;height:48px}.form-media-preview--empty{display:flex;align-items:center;justify-content:center;min-height:120px;padding:var(--space-4);border:1px dashed var(--color-border);border-radius:var(--radius-md);background:var(--color-bg-subtle);color:var(--color-text-muted);font-size:var(--font-size-sm);text-align:center}.form-file-upload-preview{margin-top:var(--space-1)}.form-file-upload-preview .ant-upload-drag{border-color:var(--color-border);background:var(--color-bg-subtle)}.form-file-upload-preview-icon{margin:0 0 var(--space-2);color:var(--color-primary)}.form-file-upload-preview-text{margin:0;font-size:var(--font-size-sm);color:var(--color-text-secondary)}.ask-user-form-card{display:flex;flex-direction:column;gap:var(--space-3);min-width:0}.ask-user-form-card-status,.ask-user-form-actions{display:flex;justify-content:flex-end}.ask-user-curl-card{display:flex;flex-direction:column;gap:var(--space-1);min-width:0;padding:var(--space-2);border:1px solid var(--color-border-subtle);border-radius:var(--radius-md);background:var(--color-bg-subtle, rgba(0, 0, 0, .03))}.ask-user-curl-card-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-2)}.ask-user-curl-card-header-title{display:flex;align-items:center;gap:var(--space-2);min-width:0;flex:1 1 auto}.ask-user-curl-unpublished-tag{margin:0;flex-shrink:0;color:var(--color-warning, #d48806);background:#d488061f;border-color:transparent}.ask-user-curl-incomplete-tag{margin:0;flex-shrink:0;color:var(--color-primary);background:var(--color-primary-subtle);border-color:transparent}.skopon-form-curl-json,.flow-artifact-generate-chat-json{margin:0;padding:var(--space-2);font-size:12px;line-height:1.5;white-space:pre-wrap;word-break:break-all}
package/dist/index.d.ts CHANGED
@@ -4,8 +4,8 @@ export { a2uiToBlocks, blocksToA2ui, isA2uiSurfaceEmpty, surfaceDocToMessages, t
4
4
  export { buildAskUserSurface, mapFormDefinitionFromDto, resolveSurfaceFromFormDefinition, } from './adapter/resolveSurface';
5
5
  export { normalizeFormDefinition, syncFormDefinition } from './adapter/formSchema';
6
6
  export { extractSurfaceValues } from './adapter/extractSurfaceValues';
7
- export { buildCurlStatement } from './submit/buildCurlStatement';
8
- export { intersectPayloadWithForm, type PayloadFormIntersection } from './submit/intersectPayloadWithForm';
7
+ export { buildCurlStatement, buildAskUserCurlStatement, buildAskUserCurlBodyJson } from './submit/buildCurlStatement';
8
+ export { extractExtraBlockValues, getPayloadInputFieldNames, getPayloadRenderableBlocks, intersectPayloadBlocksWithForm, parsePayloadBlocksJson, payloadHasInputBlocks, type PayloadBlocksDefinition, type PayloadBlocksIntersection, } from './submit/intersectPayloadBlocksWithForm';
9
9
  export { copyTextToClipboard, submitFormJson, type SubmitFormJsonOptions, type SubmitFormJsonResult, } from './submit/submitFormJson';
10
10
  export { createFormClient, type FormClient, type FormClientOptions } from './client/formClient';
11
11
  export { default as SkoponFormRenderer } from './components/SkoponFormRenderer';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,SAAS,EACT,eAAe,EACf,aAAa,EACb,qBAAqB,EACrB,gBAAgB,EAChB,uBAAuB,EACvB,cAAc,EACd,aAAa,EACb,UAAU,EACV,UAAU,GACX,MAAM,eAAe,CAAA;AAEtB,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,eAAe,CAAA;AAEtB,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,oBAAoB,EACpB,KAAK,mBAAmB,GACzB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,gCAAgC,GACjC,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAElF,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAA;AAErE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAA;AAChE,OAAO,EAAE,wBAAwB,EAAE,KAAK,uBAAuB,EAAE,MAAM,mCAAmC,CAAA;AAC1G,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,GAC1B,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAE,gBAAgB,EAAE,KAAK,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAE/F,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AAC/E,YAAY,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AAErG,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,uCAAuC,CAAA;AAC3F,YAAY,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAA;AAE1F,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,8BAA8B,CAAA;AACzE,YAAY,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAExE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,8BAA8B,CAAA;AACzE,YAAY,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAExE,OAAO,oBAAoB,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,WAAW,EACX,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,SAAS,EACT,eAAe,EACf,aAAa,EACb,qBAAqB,EACrB,gBAAgB,EAChB,uBAAuB,EACvB,cAAc,EACd,aAAa,EACb,UAAU,EACV,UAAU,GACX,MAAM,eAAe,CAAA;AAEtB,OAAO,EACL,qBAAqB,EACrB,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,eAAe,CAAA;AAEtB,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,oBAAoB,EACpB,KAAK,mBAAmB,GACzB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EACL,mBAAmB,EACnB,wBAAwB,EACxB,gCAAgC,GACjC,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAElF,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAA;AAErE,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAA;AACrH,OAAO,EACL,uBAAuB,EACvB,yBAAyB,EACzB,0BAA0B,EAC1B,8BAA8B,EAC9B,sBAAsB,EACtB,qBAAqB,EACrB,KAAK,uBAAuB,EAC5B,KAAK,yBAAyB,GAC/B,MAAM,yCAAyC,CAAA;AAChD,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,GAC1B,MAAM,yBAAyB,CAAA;AAEhC,OAAO,EAAE,gBAAgB,EAAE,KAAK,UAAU,EAAE,KAAK,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAE/F,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AAC/E,YAAY,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAA;AAErG,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,uCAAuC,CAAA;AAC3F,YAAY,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAA;AAE1F,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,8BAA8B,CAAA;AACzE,YAAY,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAExE,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,8BAA8B,CAAA;AACzE,YAAY,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAA;AAExE,OAAO,oBAAoB,CAAA"}