@stapel/forms-react 0.1.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.
Files changed (203) hide show
  1. package/CHANGELOG.md +62 -0
  2. package/MODULE.md +172 -0
  3. package/README.md +207 -0
  4. package/dist/api/export.d.ts +66 -0
  5. package/dist/api/export.d.ts.map +1 -0
  6. package/dist/api/export.js +138 -0
  7. package/dist/api/export.js.map +1 -0
  8. package/dist/api/extensions.d.ts +8 -0
  9. package/dist/api/extensions.d.ts.map +1 -0
  10. package/dist/api/extensions.js +8 -0
  11. package/dist/api/extensions.js.map +1 -0
  12. package/dist/api/formsApi.d.ts +113 -0
  13. package/dist/api/formsApi.d.ts.map +1 -0
  14. package/dist/api/formsApi.js +81 -0
  15. package/dist/api/formsApi.js.map +1 -0
  16. package/dist/api/generated/schema.d.ts +987 -0
  17. package/dist/api/generated/schema.d.ts.map +1 -0
  18. package/dist/api/generated/schema.js +2 -0
  19. package/dist/api/generated/schema.js.map +1 -0
  20. package/dist/api/types.d.ts +222 -0
  21. package/dist/api/types.d.ts.map +1 -0
  22. package/dist/api/types.js +14 -0
  23. package/dist/api/types.js.map +1 -0
  24. package/dist/default/ConfigField.d.ts +32 -0
  25. package/dist/default/ConfigField.d.ts.map +1 -0
  26. package/dist/default/ConfigField.js +101 -0
  27. package/dist/default/ConfigField.js.map +1 -0
  28. package/dist/default/ErrorAlert.d.ts +9 -0
  29. package/dist/default/ErrorAlert.d.ts.map +1 -0
  30. package/dist/default/ErrorAlert.js +27 -0
  31. package/dist/default/ErrorAlert.js.map +1 -0
  32. package/dist/default/FormBuilderPane.d.ts +36 -0
  33. package/dist/default/FormBuilderPane.d.ts.map +1 -0
  34. package/dist/default/FormBuilderPane.js +70 -0
  35. package/dist/default/FormBuilderPane.js.map +1 -0
  36. package/dist/default/FormsListPane.d.ts +18 -0
  37. package/dist/default/FormsListPane.d.ts.map +1 -0
  38. package/dist/default/FormsListPane.js +28 -0
  39. package/dist/default/FormsListPane.js.map +1 -0
  40. package/dist/default/ResponsesPane.d.ts +21 -0
  41. package/dist/default/ResponsesPane.d.ts.map +1 -0
  42. package/dist/default/ResponsesPane.js +118 -0
  43. package/dist/default/ResponsesPane.js.map +1 -0
  44. package/dist/default/StapelForm.d.ts +76 -0
  45. package/dist/default/StapelForm.d.ts.map +1 -0
  46. package/dist/default/StapelForm.js +118 -0
  47. package/dist/default/StapelForm.js.map +1 -0
  48. package/dist/default/fields.d.ts +11 -0
  49. package/dist/default/fields.d.ts.map +1 -0
  50. package/dist/default/fields.js +273 -0
  51. package/dist/default/fields.js.map +1 -0
  52. package/dist/default/index.d.ts +42 -0
  53. package/dist/default/index.d.ts.map +1 -0
  54. package/dist/default/index.js +37 -0
  55. package/dist/default/index.js.map +1 -0
  56. package/dist/default/slots.d.ts +59 -0
  57. package/dist/default/slots.d.ts.map +1 -0
  58. package/dist/default/slots.js +25 -0
  59. package/dist/default/slots.js.map +1 -0
  60. package/dist/default/theme.d.ts +23 -0
  61. package/dist/default/theme.d.ts.map +1 -0
  62. package/dist/default/theme.js +38 -0
  63. package/dist/default/theme.js.map +1 -0
  64. package/dist/default/types.d.ts +12 -0
  65. package/dist/default/types.d.ts.map +1 -0
  66. package/dist/default/types.js +2 -0
  67. package/dist/default/types.js.map +1 -0
  68. package/dist/flows/errors.d.ts +12 -0
  69. package/dist/flows/errors.d.ts.map +1 -0
  70. package/dist/flows/errors.js +13 -0
  71. package/dist/flows/errors.js.map +1 -0
  72. package/dist/flows/registry.d.ts +22 -0
  73. package/dist/flows/registry.d.ts.map +1 -0
  74. package/dist/flows/registry.js +20 -0
  75. package/dist/flows/registry.js.map +1 -0
  76. package/dist/headless/FormBuilder.d.ts +100 -0
  77. package/dist/headless/FormBuilder.d.ts.map +1 -0
  78. package/dist/headless/FormBuilder.js +278 -0
  79. package/dist/headless/FormBuilder.js.map +1 -0
  80. package/dist/headless/FormFill.d.ts +88 -0
  81. package/dist/headless/FormFill.d.ts.map +1 -0
  82. package/dist/headless/FormFill.js +279 -0
  83. package/dist/headless/FormFill.js.map +1 -0
  84. package/dist/headless/FormList.d.ts +34 -0
  85. package/dist/headless/FormList.d.ts.map +1 -0
  86. package/dist/headless/FormList.js +37 -0
  87. package/dist/headless/FormList.js.map +1 -0
  88. package/dist/headless/FormsProvider.d.ts +19 -0
  89. package/dist/headless/FormsProvider.d.ts.map +1 -0
  90. package/dist/headless/FormsProvider.js +15 -0
  91. package/dist/headless/FormsProvider.js.map +1 -0
  92. package/dist/headless/ResponsesTable.d.ts +82 -0
  93. package/dist/headless/ResponsesTable.d.ts.map +1 -0
  94. package/dist/headless/ResponsesTable.js +195 -0
  95. package/dist/headless/ResponsesTable.js.map +1 -0
  96. package/dist/i18n/errorsMap.d.ts +10 -0
  97. package/dist/i18n/errorsMap.d.ts.map +1 -0
  98. package/dist/i18n/errorsMap.js +20 -0
  99. package/dist/i18n/errorsMap.js.map +1 -0
  100. package/dist/i18n/es.d.ts +7 -0
  101. package/dist/i18n/es.d.ts.map +1 -0
  102. package/dist/i18n/es.js +118 -0
  103. package/dist/i18n/es.js.map +1 -0
  104. package/dist/i18n/generated/errors.es.gen.d.ts +16 -0
  105. package/dist/i18n/generated/errors.es.gen.d.ts.map +1 -0
  106. package/dist/i18n/generated/errors.es.gen.js +79 -0
  107. package/dist/i18n/generated/errors.es.gen.js.map +1 -0
  108. package/dist/i18n/generated/errors.gen.d.ts +485 -0
  109. package/dist/i18n/generated/errors.gen.d.ts.map +1 -0
  110. package/dist/i18n/generated/errors.gen.js +246 -0
  111. package/dist/i18n/generated/errors.gen.js.map +1 -0
  112. package/dist/i18n/generated/errors.ru.gen.d.ts +16 -0
  113. package/dist/i18n/generated/errors.ru.gen.d.ts.map +1 -0
  114. package/dist/i18n/generated/errors.ru.gen.js +79 -0
  115. package/dist/i18n/generated/errors.ru.gen.js.map +1 -0
  116. package/dist/i18n/keys.d.ts +141 -0
  117. package/dist/i18n/keys.d.ts.map +1 -0
  118. package/dist/i18n/keys.js +233 -0
  119. package/dist/i18n/keys.js.map +1 -0
  120. package/dist/i18n/ru.d.ts +7 -0
  121. package/dist/i18n/ru.d.ts.map +1 -0
  122. package/dist/i18n/ru.js +127 -0
  123. package/dist/i18n/ru.js.map +1 -0
  124. package/dist/index.d.ts +61 -0
  125. package/dist/index.d.ts.map +1 -0
  126. package/dist/index.js +55 -0
  127. package/dist/index.js.map +1 -0
  128. package/dist/model/context.d.ts +11 -0
  129. package/dist/model/context.d.ts.map +1 -0
  130. package/dist/model/context.js +16 -0
  131. package/dist/model/context.js.map +1 -0
  132. package/dist/model/mutations.d.ts +135 -0
  133. package/dist/model/mutations.d.ts.map +1 -0
  134. package/dist/model/mutations.js +223 -0
  135. package/dist/model/mutations.js.map +1 -0
  136. package/dist/model/queries.d.ts +59 -0
  137. package/dist/model/queries.d.ts.map +1 -0
  138. package/dist/model/queries.js +117 -0
  139. package/dist/model/queries.js.map +1 -0
  140. package/dist/model/queryKeys.d.ts +28 -0
  141. package/dist/model/queryKeys.d.ts.map +1 -0
  142. package/dist/model/queryKeys.js +23 -0
  143. package/dist/model/queryKeys.js.map +1 -0
  144. package/dist/model/runtime.d.ts +28 -0
  145. package/dist/model/runtime.d.ts.map +1 -0
  146. package/dist/model/runtime.js +14 -0
  147. package/dist/model/runtime.js.map +1 -0
  148. package/dist/widgets/configForms.d.ts +112 -0
  149. package/dist/widgets/configForms.d.ts.map +1 -0
  150. package/dist/widgets/configForms.js +211 -0
  151. package/dist/widgets/configForms.js.map +1 -0
  152. package/dist/widgets/registry.d.ts +83 -0
  153. package/dist/widgets/registry.d.ts.map +1 -0
  154. package/dist/widgets/registry.js +27 -0
  155. package/dist/widgets/registry.js.map +1 -0
  156. package/dist/widgets/validate.d.ts +57 -0
  157. package/dist/widgets/validate.d.ts.map +1 -0
  158. package/dist/widgets/validate.js +173 -0
  159. package/dist/widgets/validate.js.map +1 -0
  160. package/llms.txt +124 -0
  161. package/manifest.json +1038 -0
  162. package/package.json +108 -0
  163. package/src/analytics/generated/events.json +7 -0
  164. package/src/api/export.ts +195 -0
  165. package/src/api/extensions.ts +7 -0
  166. package/src/api/formsApi.ts +329 -0
  167. package/src/api/generated/schema.ts +989 -0
  168. package/src/api/types.ts +276 -0
  169. package/src/default/ConfigField.tsx +227 -0
  170. package/src/default/ErrorAlert.tsx +46 -0
  171. package/src/default/FormBuilderPane.tsx +414 -0
  172. package/src/default/FormsListPane.tsx +144 -0
  173. package/src/default/ResponsesPane.tsx +332 -0
  174. package/src/default/StapelForm.tsx +377 -0
  175. package/src/default/fields.tsx +454 -0
  176. package/src/default/index.ts +71 -0
  177. package/src/default/slots.ts +78 -0
  178. package/src/default/theme.tsx +65 -0
  179. package/src/default/types.ts +12 -0
  180. package/src/flows/errors.ts +16 -0
  181. package/src/flows/registry.ts +32 -0
  182. package/src/headless/FormBuilder.tsx +453 -0
  183. package/src/headless/FormFill.tsx +396 -0
  184. package/src/headless/FormList.tsx +74 -0
  185. package/src/headless/FormsProvider.tsx +20 -0
  186. package/src/headless/ResponsesTable.tsx +341 -0
  187. package/src/i18n/errorsMap.ts +31 -0
  188. package/src/i18n/es.ts +140 -0
  189. package/src/i18n/generated/errors.es.gen.ts +85 -0
  190. package/src/i18n/generated/errors.gen.ts +277 -0
  191. package/src/i18n/generated/errors.json +583 -0
  192. package/src/i18n/generated/errors.ru.gen.ts +85 -0
  193. package/src/i18n/keys.ts +264 -0
  194. package/src/i18n/ru.ts +150 -0
  195. package/src/index.ts +184 -0
  196. package/src/model/context.tsx +28 -0
  197. package/src/model/mutations.ts +387 -0
  198. package/src/model/queries.ts +154 -0
  199. package/src/model/queryKeys.ts +61 -0
  200. package/src/model/runtime.ts +48 -0
  201. package/src/widgets/registry.ts +101 -0
  202. package/src/widgets/validate.ts +224 -0
  203. package/tsconfig.json +26 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormBuilderPane.js","sourceRoot":"","sources":["../../src/default/FormBuilderPane.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * `<FormsListPane>` — the admin surface's entry point: the workspace's forms,
3
+ * and the button that makes another one.
4
+ *
5
+ * Rendered through core's `matchList`, whose FOUR required arms are the point:
6
+ * "no forms in this workspace yet" is reachable only from a load that
7
+ * actually succeeded, so that sentence can never be said about an outage.
8
+ */
9
+ import type { ReactElement } from "react";
10
+ import type { FormRow } from "../api/types.js";
11
+ import type { ThemeModeProp } from "./types.js";
12
+ export interface FormsListPaneProps extends ThemeModeProp {
13
+ readonly workspaceId: string;
14
+ /** Called when a row is activated — the host routes to the builder. */
15
+ readonly onOpen?: (form: FormRow) => void;
16
+ }
17
+ export declare function FormsListPane(props: FormsListPaneProps): ReactElement;
18
+ //# sourceMappingURL=FormsListPane.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormsListPane.d.ts","sourceRoot":"","sources":["../../src/default/FormsListPane.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAQ1C,OAAO,KAAK,EAAE,OAAO,EAAa,MAAM,iBAAiB,CAAC;AAI1D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD,MAAM,WAAW,kBAAmB,SAAQ,aAAa;IACvD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,uEAAuE;IACvE,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CAC3C;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,YAAY,CAkHrE"}
@@ -0,0 +1,28 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Button, Empty, Flex, List, Segmented, Spin, Tag, Typography } from "antd";
3
+ import { matchList, toFlowError, useDescribeFlowError, useT, } from "@stapel/core";
4
+ import { FormList } from "../headless/FormList.js";
5
+ import { FormsSkinTheme } from "./theme.js";
6
+ import { ErrorAlert } from "./ErrorAlert.js";
7
+ import { FORMS_I18N_KEYS } from "../i18n/keys.js";
8
+ export function FormsListPane(props) {
9
+ const t = useT();
10
+ const describe = useDescribeFlowError();
11
+ return (_jsx(FormsSkinTheme, { ...(props.mode !== undefined ? { mode: props.mode } : {}), children: _jsx(FormList, { workspaceId: props.workspaceId, ...(props.onOpen ? { onCreated: props.onOpen } : {}), children: (bag) => (_jsxs(Flex, { vertical: true, gap: 16, children: [_jsxs(Flex, { justify: "space-between", align: "center", wrap: true, gap: 8, children: [_jsx(Typography.Title, { level: 4, style: { margin: 0 }, children: t(FORMS_I18N_KEYS.listTitle) }), _jsxs(Flex, { gap: 8, align: "center", children: [_jsx(Segmented, { value: bag.filter ?? "all", onChange: (next) => bag.setFilter(next === "all" ? null : next), options: [
12
+ { value: "all", label: t(FORMS_I18N_KEYS.responsesAllVersions) },
13
+ { value: "draft", label: t(FORMS_I18N_KEYS.builderStateDraft) },
14
+ { value: "open", label: t(FORMS_I18N_KEYS.builderStateOpen) },
15
+ { value: "closed", label: t(FORMS_I18N_KEYS.builderStateClosed) },
16
+ ] }), _jsx(Button, { type: "primary", loading: bag.isCreating, "data-analytics": "flow", "data-testid": "forms-list-create", onClick: () => bag.create({ title: t(FORMS_I18N_KEYS.listNewTitle) }), children: t(FORMS_I18N_KEYS.listCreate) })] })] }), bag.error !== null && (_jsx(ErrorAlert, { testId: "forms-list-error", error: describe(toFlowError(bag.error)) })), matchList(bag.state, {
17
+ loading: () => (_jsx(Flex, { justify: "center", style: { padding: 24 }, children: _jsx(Spin, { "data-testid": "forms-list-loading" }) })),
18
+ failed: (error) => (_jsx(ErrorAlert, { testId: "forms-list-failed", error: {
19
+ ...describe(toFlowError(error)),
20
+ message: t(FORMS_I18N_KEYS.listLoadFailed),
21
+ }, action: _jsx(Button, { size: "small", onClick: bag.refetch, "data-analytics": "none", "data-analytics-reason": "retry of a failed read; no flow to step", children: t(FORMS_I18N_KEYS.fillRetry) }) })),
22
+ empty: () => (_jsx(Empty, { "data-testid": "forms-list-empty", description: t(FORMS_I18N_KEYS.listEmpty) })),
23
+ ready: (rows) => (_jsx(List, { "data-testid": "forms-list", dataSource: [...rows], renderItem: (row) => (_jsxs(List.Item, { onClick: () => props.onOpen?.(row), "data-analytics": "none", "data-analytics-reason": "host-owned navigation; no forms flow is stepped", style: { cursor: props.onOpen ? "pointer" : "default" }, children: [_jsx(List.Item.Meta, { title: row.title, description: t(FORMS_I18N_KEYS.listSubmissionCount, {
24
+ count: row.submission_count ?? 0,
25
+ }) }), _jsx(Tag, { children: row.state })] }, row.id)) })),
26
+ })] })) }) }));
27
+ }
28
+ //# sourceMappingURL=FormsListPane.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FormsListPane.js","sourceRoot":"","sources":["../../src/default/FormsListPane.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { ReactElement } from "react";
2
+ import type { Submission } from "../api/types.js";
3
+ import type { ResponseColumn, ResponsesTableBag } from "../headless/ResponsesTable.js";
4
+ import type { ThemeModeProp } from "./types.js";
5
+ /** Props of the `"responses.cell"` slot. */
6
+ export interface ResponseCellSlotProps {
7
+ readonly column: ResponseColumn;
8
+ readonly row: Submission;
9
+ readonly value: unknown;
10
+ }
11
+ /** Props of the `"responses.toolbar"` slot. */
12
+ export interface ResponsesToolbarSlotProps {
13
+ readonly bag: ResponsesTableBag;
14
+ }
15
+ export interface ResponsesPaneProps extends ThemeModeProp {
16
+ readonly workspaceId: string;
17
+ readonly formId: string;
18
+ readonly limit?: number;
19
+ }
20
+ export declare function ResponsesPane(props: ResponsesPaneProps): ReactElement;
21
+ //# sourceMappingURL=ResponsesPane.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResponsesPane.d.ts","sourceRoot":"","sources":["../../src/default/ResponsesPane.tsx"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAsB1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EAClB,MAAM,+BAA+B,CAAC;AAIvC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAGhD,4CAA4C;AAC5C,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAC;IACzB,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;CACzB;AAED,+CAA+C;AAC/C,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,GAAG,EAAE,iBAAiB,CAAC;CACjC;AAsKD,MAAM,WAAW,kBAAmB,SAAQ,aAAa;IACvD,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,YAAY,CAgGrE"}
@@ -0,0 +1,118 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ /**
3
+ * `<ResponsesPane>` — the response review surface (spec §8.2).
4
+ *
5
+ * Per-version column sets, a version filter, a detail drawer, delete under
6
+ * `forms.responses.manage`, resend with an optional destination override, and
7
+ * CSV export driven by the `X-Forms-Next-Before` header cursor.
8
+ *
9
+ * ── Two things this surface deliberately does not do ───────────────────────
10
+ *
11
+ * 1. **No live counts over a socket.** Refetch only. A
12
+ * `forms:ws:<workspace_id>` Signal stream is reserved naming for when the
13
+ * stapel-realtime substrate lands; forms does not build a socket, and that
14
+ * is a lint boundary rather than an unfinished feature.
15
+ * 2. **No client-side CSV escaping.** The formula-injection guard (a `'`
16
+ * prefix on a leading `= + - @`) lives SERVER-side, so every consumer
17
+ * inherits it — a second escape here would double-prefix the cells the
18
+ * server already fixed.
19
+ */
20
+ import { useState } from "react";
21
+ import { Button, Drawer, Empty, Flex, Input, Popconfirm, Select, Space, Spin, Table, Tag, Typography, } from "antd";
22
+ import { matchLoad, toFlowError, useActionGate, useDescribeFlowError, useT, } from "@stapel/core";
23
+ import { ResponsesTable } from "../headless/ResponsesTable.js";
24
+ import { FormsSkinTheme } from "./theme.js";
25
+ import { ErrorAlert } from "./ErrorAlert.js";
26
+ import { resolveFormsSkinComponent } from "./slots.js";
27
+ import { FORMS_I18N_KEYS } from "../i18n/keys.js";
28
+ /** Render one answer. Objects and arrays are JSON, not `[object Object]` —
29
+ * a reviewer looking at a `convertible_unit` or a multi-select must be able
30
+ * to read what was actually submitted. */
31
+ function renderAnswer(value) {
32
+ if (value === undefined || value === null)
33
+ return "";
34
+ if (Array.isArray(value))
35
+ return value.map((entry) => renderAnswer(entry)).join(", ");
36
+ if (typeof value === "object")
37
+ return JSON.stringify(value);
38
+ return String(value);
39
+ }
40
+ function Cell(props) {
41
+ const Slot = resolveFormsSkinComponent("responses.cell");
42
+ if (Slot)
43
+ return _jsx(Slot, { ...props });
44
+ return _jsx("span", { children: renderAnswer(props.value) });
45
+ }
46
+ function Toolbar(props) {
47
+ const t = useT();
48
+ const { bag } = props;
49
+ const nextGate = useActionGate(bag.nextPage);
50
+ const prevGate = useActionGate(bag.prevPage);
51
+ const Slot = resolveFormsSkinComponent("responses.toolbar");
52
+ if (Slot)
53
+ return _jsx(Slot, { ...props });
54
+ const versionOptions = matchLoad(bag.versions, {
55
+ loading: () => [],
56
+ failed: () => [],
57
+ ready: (versions) => versions.map((v) => ({
58
+ value: v.version,
59
+ label: `${t(FORMS_I18N_KEYS.responsesVersion)} ${v.version}`,
60
+ })),
61
+ });
62
+ return (_jsxs(Flex, { gap: 8, wrap: true, align: "center", children: [_jsx(Select, { style: { width: 180 }, value: bag.version, onChange: (next) => bag.setVersion(next), "data-testid": "forms-responses-version", options: [
63
+ { value: null, label: t(FORMS_I18N_KEYS.responsesAllVersions) },
64
+ ...versionOptions,
65
+ ] }), _jsx(Button, { disabled: prevGate.disabled, "data-analytics": "none", "data-analytics-reason": "keyset paging of a read; no flow to step", onClick: bag.goPrevPage, children: t(FORMS_I18N_KEYS.responsesPrev) }), _jsx(Button, { disabled: nextGate.disabled, "data-analytics": "none", "data-analytics-reason": "keyset paging of a read; no flow to step", "data-testid": "forms-responses-next", onClick: bag.goNextPage, children: t(FORMS_I18N_KEYS.responsesNext) }), _jsx(Button, { loading: bag.isExporting, "data-analytics": "flow", "data-testid": "forms-responses-export", onClick: () => {
66
+ void bag.exportCsv();
67
+ }, children: bag.isExporting
68
+ ? t(FORMS_I18N_KEYS.responsesExporting, { pages: bag.exportPages })
69
+ : t(FORMS_I18N_KEYS.responsesExport) }), nextGate.reason !== undefined && (_jsx(Typography.Text, { type: "secondary", children: nextGate.reason }))] }));
70
+ }
71
+ function DetailDrawer(props) {
72
+ const t = useT();
73
+ const { bag } = props;
74
+ const [override, setOverride] = useState("");
75
+ const row = bag.selected;
76
+ return (_jsx(Drawer, { open: row !== null, onClose: () => bag.select(null), title: t(FORMS_I18N_KEYS.responsesDetail), width: 480, "data-testid": "forms-responses-drawer", children: row !== null && (_jsxs(Flex, { vertical: true, gap: 12, children: [_jsxs(Typography.Text, { type: "secondary", children: [t(FORMS_I18N_KEYS.responsesVersion), " ", row.version, " \u00B7", " ", row.submitted_at] }), row.erased_at != null && _jsx(Tag, { children: t(FORMS_I18N_KEYS.responsesErased) }), Object.entries(row.answers).map(([slug, value]) => (_jsxs("div", { children: [_jsx(Typography.Text, { strong: true, children: slug }), _jsx("br", {}), _jsx(Typography.Text, { children: renderAnswer(value) })] }, slug))), _jsx(Typography.Text, { type: "secondary", children: t(FORMS_I18N_KEYS.responsesResendOverrideHint) }), _jsx(Input, { placeholder: t(FORMS_I18N_KEYS.responsesResendOverride), value: override, onChange: (event) => setOverride(event.target.value), "data-testid": "forms-resend-override" }), _jsxs(Space, { children: [_jsx(Button, { loading: bag.isResending, "data-analytics": "flow", "data-testid": "forms-resend", onClick: () => {
77
+ const recipients = override
78
+ .split(",")
79
+ .map((entry) => entry.trim())
80
+ .filter((entry) => entry.length > 0);
81
+ // Only send an override when the operator typed one: an empty
82
+ // list would REPLACE the form's targets with nothing.
83
+ bag.resend(row.id, recipients.length > 0 ? { recipients } : undefined);
84
+ }, children: t(FORMS_I18N_KEYS.responsesResend) }), _jsx(Popconfirm, { title: t(FORMS_I18N_KEYS.responsesDeleteConfirm), onConfirm: () => bag.remove(row.id), children: _jsx(Button, { danger: true, loading: bag.isRemoving, "data-analytics": "flow", children: t(FORMS_I18N_KEYS.responsesDelete) }) })] }), bag.lastResendCount !== null && (_jsx(Typography.Text, { type: "success", "data-testid": "forms-resend-sent", children: t(FORMS_I18N_KEYS.responsesResendSent, {
85
+ count: bag.lastResendCount,
86
+ }) }))] })) }));
87
+ }
88
+ export function ResponsesPane(props) {
89
+ const t = useT();
90
+ const describe = useDescribeFlowError();
91
+ return (_jsx(FormsSkinTheme, { ...(props.mode !== undefined ? { mode: props.mode } : {}), children: _jsx(ResponsesTable, { workspaceId: props.workspaceId, formId: props.formId, ...(props.limit !== undefined ? { limit: props.limit } : {}), children: (bag) => (_jsxs(Flex, { vertical: true, gap: 16, children: [_jsx(Typography.Title, { level: 4, children: t(FORMS_I18N_KEYS.responsesTitle) }), _jsx(Toolbar, { bag: bag }), bag.error !== null && (_jsx(ErrorAlert, { testId: "forms-responses-error", error: describe(toFlowError(bag.error)) })), matchLoad(bag.state, {
92
+ loading: () => (_jsx(Flex, { justify: "center", style: { padding: 24 }, children: _jsx(Spin, { "data-testid": "forms-responses-loading" }) })),
93
+ // "We could not load the responses" — never an empty grid,
94
+ // which would read as "nobody answered".
95
+ failed: (error) => (_jsx(ErrorAlert, { testId: "forms-responses-failed", error: {
96
+ ...describe(toFlowError(error)),
97
+ message: t(FORMS_I18N_KEYS.responsesLoadFailed),
98
+ }, action: _jsx(Button, { size: "small", onClick: bag.refetch, "data-analytics": "none", "data-analytics-reason": "retry of a failed read; no flow to step", children: t(FORMS_I18N_KEYS.fillRetry) }) })),
99
+ ready: (view) => view.rows.length === 0 ? (_jsx(Empty, { "data-testid": "forms-responses-empty", description: t(FORMS_I18N_KEYS.responsesEmpty) })) : (_jsx(Table, { size: "small", rowKey: "id", "data-testid": "forms-responses-table", dataSource: [...view.rows], pagination: false, onRow: (row) => ({ onClick: () => bag.select(row) }), columns: [
100
+ {
101
+ title: t(FORMS_I18N_KEYS.responsesSubmittedAt),
102
+ dataIndex: "submitted_at",
103
+ key: "submitted_at",
104
+ },
105
+ {
106
+ title: t(FORMS_I18N_KEYS.responsesVersion),
107
+ dataIndex: "version",
108
+ key: "version",
109
+ },
110
+ ...view.columns.map((column) => ({
111
+ title: column.title,
112
+ key: column.slug,
113
+ render: (_, row) => (_jsx(Cell, { column: column, row: row, value: row.answers[column.slug] })),
114
+ })),
115
+ ] })),
116
+ }), _jsx(DetailDrawer, { bag: bag })] })) }) }));
117
+ }
118
+ //# sourceMappingURL=ResponsesPane.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResponsesPane.js","sourceRoot":"","sources":["../../src/default/ResponsesPane.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * `<StapelForm>` — the whole answer to the owner's ask: *"the host page says
3
+ * 'put form &lt;id&gt; here', the library fetches the schema and renders it,
4
+ * default skin or override styles."*
5
+ *
6
+ * ```tsx
7
+ * const runtime = createFormsRuntime({ baseUrl: "/forms/api/v1/" });
8
+ * <FormsProvider runtime={runtime}>
9
+ * <StapelForm publicId="k3J…x9" />
10
+ * </FormsProvider>
11
+ * ```
12
+ *
13
+ * Nothing else is required — no session, no workspace id, no auth client. The
14
+ * component is a renderer over `<FormFill>`'s bag and holds no state of its
15
+ * own, so everything it does is reachable headlessly too.
16
+ *
17
+ * ── LoadState is the law here, visibly ─────────────────────────────────────
18
+ *
19
+ * The failed arm distinguishes THREE things a lesser form collapses into one
20
+ * blank page: "this link is not valid" (404), "this form is closed" (410),
21
+ * and "we could not ask" (network / 5xx). Only the first two are statements
22
+ * about the form; the third is a statement about us, and it offers a retry
23
+ * instead of blaming the person's link. There is no code path in this file
24
+ * that renders an empty form because a fetch failed — `matchLoad`'s three
25
+ * required arms make writing one a compile error.
26
+ */
27
+ import type { ReactElement, ReactNode } from "react";
28
+ import type { FlowError, ThemeModeProp } from "./types.js";
29
+ import type { FormFillBag } from "../headless/FormFill.js";
30
+ import type { FormFieldDef } from "../api/types.js";
31
+ /** Props of the `"fill.fieldRow"` slot. */
32
+ export interface FieldRowSlotProps {
33
+ readonly field: FormFieldDef;
34
+ /** DOM id of the control this row labels. */
35
+ readonly controlId: string;
36
+ readonly control: ReactNode;
37
+ readonly error: FlowError | undefined;
38
+ readonly required: boolean;
39
+ }
40
+ /** Props of the `"fill.submitBar"` slot. */
41
+ export interface SubmitBarSlotProps {
42
+ readonly bag: FormFillBag;
43
+ readonly label: string;
44
+ readonly disabled: boolean;
45
+ readonly reason: string | undefined;
46
+ readonly detail: string | undefined;
47
+ onSubmit(): void;
48
+ }
49
+ /** Props of the `"fill.confirmation"` slot. */
50
+ export interface ConfirmationSlotProps {
51
+ readonly confirmation: string;
52
+ }
53
+ /** Props of the `"fill.unsupportedField"` slot. */
54
+ export interface UnsupportedFieldSlotProps {
55
+ readonly field: FormFieldDef;
56
+ }
57
+ export interface StapelFormProps extends ThemeModeProp {
58
+ /** The non-enumerable public token the host embeds. */
59
+ readonly publicId: string;
60
+ /** Show the schema's `meta.title` above the fields. Default true. */
61
+ readonly showTitle?: boolean;
62
+ /** Override the submit button's text (otherwise `meta.submit_label`, then
63
+ * the pair's own copy). */
64
+ readonly submitLabel?: string;
65
+ /**
66
+ * Rendered above the submit bar — the interactive-captcha seam. The netintel
67
+ * tier decides whether a token is needed at all, so this stays optional and
68
+ * the widget calls `setCaptchaToken` when it has one.
69
+ */
70
+ readonly captcha?: (bag: FormFillBag) => ReactNode;
71
+ readonly onSubmitted?: (result: {
72
+ readonly confirmation: string;
73
+ }) => void;
74
+ }
75
+ export declare function StapelForm(props: StapelFormProps): ReactElement;
76
+ //# sourceMappingURL=StapelForm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StapelForm.d.ts","sourceRoot":"","sources":["../../src/default/StapelForm.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAWrD,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAiBpD,2CAA2C;AAC3C,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,6CAA6C;IAC7C,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,OAAO,EAAE,SAAS,CAAC;IAC5B,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;CAC5B;AAED,4CAA4C;AAC5C,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,GAAG,EAAE,WAAW,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,QAAQ,IAAI,IAAI,CAAC;CAClB;AAED,+CAA+C;AAC/C,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;CAC/B;AAED,mDAAmD;AACnD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;CAC9B;AA6ID,MAAM,WAAW,eAAgB,SAAQ,aAAa;IACpD,uDAAuD;IACvD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,qEAAqE;IACrE,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B;+BAC2B;IAC3B,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,SAAS,CAAC;IACnD,QAAQ,CAAC,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CAC5E;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,eAAe,GAAG,YAAY,CAqI/D"}
@@ -0,0 +1,118 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Alert, Button, Flex, Form, Spin, Typography } from "antd";
3
+ import { hasErrorCode, matchLoad, toFlowError, useActionGate, useDescribeFlowError, useFormatFlowError, useT, } from "@stapel/core";
4
+ import { FormFill } from "../headless/FormFill.js";
5
+ import { resolveFormFieldWidget } from "../widgets/registry.js";
6
+ import { BUILTIN_FIELD_KINDS, BUILTIN_FIELD_WIDGETS } from "./fields.js";
7
+ import { FormsSkinTheme } from "./theme.js";
8
+ import { ErrorAlert } from "./ErrorAlert.js";
9
+ import { resolveFormsSkinComponent } from "./slots.js";
10
+ import { FORMS_I18N_KEYS } from "../i18n/keys.js";
11
+ /** Stable per-field DOM id, so `<label for>` reaches the control. Slugs are
12
+ * `[a-z0-9_]`-shaped by the engine, so this needs no further escaping. */
13
+ function fieldControlId(slug) {
14
+ return `forms-field-${slug}`;
15
+ }
16
+ const CODE_NOT_FOUND = "error.404.forms_not_found";
17
+ const CODE_CLOSED = "error.410.forms_closed";
18
+ function UnsupportedField(props) {
19
+ const t = useT();
20
+ const Slot = resolveFormsSkinComponent("fill.unsupportedField");
21
+ if (Slot)
22
+ return _jsx(Slot, { ...props });
23
+ return (_jsx(Alert, { type: "warning", showIcon: true, "data-testid": "forms-unsupported-field", message: props.field.name ?? props.field.slug, description: t(FORMS_I18N_KEYS.fillUnsupportedField, {
24
+ kind: props.field.kind,
25
+ }) }));
26
+ }
27
+ /**
28
+ * `Form.Item` error props for a flow error, spread so no `undefined` is
29
+ * passed under `exactOptionalPropertyTypes` — the fleet's `useFieldError`
30
+ * convention (auth-react `default/panels.tsx`), and the reason a server
31
+ * `error.400.feature_*` lands ON the control that caused it: `<FormFill>`
32
+ * keys `fieldErrors` by the refusal's own `params.field`.
33
+ */
34
+ function useFieldError() {
35
+ const format = useFormatFlowError();
36
+ return (e) => (e ? { validateStatus: "error", help: format(e) } : {});
37
+ }
38
+ function FieldRow(props) {
39
+ const fieldError = useFieldError();
40
+ const Slot = resolveFormsSkinComponent("fill.fieldRow");
41
+ if (Slot)
42
+ return _jsx(Slot, { ...props });
43
+ // A header is a caption: it gets no label, no colon, no required marker —
44
+ // rendering one inside a labelled Form.Item would make a section heading
45
+ // look like a question.
46
+ if (props.field.kind === "header") {
47
+ return _jsx(Form.Item, { style: { marginBottom: 8 }, children: props.control });
48
+ }
49
+ return (_jsx(Form.Item, { label: props.field.name ?? props.field.slug, htmlFor: props.controlId, required: props.required, ...fieldError(props.error), children: props.control }));
50
+ }
51
+ function FieldControl(props) {
52
+ const { field, bag } = props;
53
+ // The ladder: a host's explicit registration outranks the skin's builtin.
54
+ const Widget = resolveFormFieldWidget(field.kind) ?? BUILTIN_FIELD_WIDGETS[field.kind];
55
+ if (Widget === undefined)
56
+ return _jsx(UnsupportedField, { field: field });
57
+ return (_jsx(Widget, { id: props.controlId, field: field, value: bag.values[field.slug], onChange: (value) => bag.setValue(field.slug, value), error: bag.fieldErrors[field.slug], disabled: bag.isSubmitting }));
58
+ }
59
+ function Confirmation(props) {
60
+ const t = useT();
61
+ const Slot = resolveFormsSkinComponent("fill.confirmation");
62
+ if (Slot)
63
+ return _jsx(Slot, { ...props });
64
+ return (_jsx(Alert, { type: "success", showIcon: true, "data-testid": "forms-confirmation", message: props.confirmation.length > 0
65
+ ? props.confirmation
66
+ : t(FORMS_I18N_KEYS.fillThanks) }));
67
+ }
68
+ function SubmitBar(props) {
69
+ const gate = useActionGate(props.bag.submit);
70
+ const Slot = resolveFormsSkinComponent("fill.submitBar");
71
+ const slotProps = {
72
+ bag: props.bag,
73
+ label: props.label,
74
+ disabled: gate.disabled,
75
+ reason: gate.reason,
76
+ detail: gate.detail,
77
+ onSubmit: props.bag.doSubmit,
78
+ };
79
+ if (Slot)
80
+ return _jsx(Slot, { ...slotProps });
81
+ return (_jsxs(Flex, { vertical: true, gap: 4, align: "flex-start", children: [_jsx(Button, { type: "primary", htmlType: "submit", loading: props.bag.isSubmitting, disabled: gate.disabled, "data-analytics": "flow", "data-testid": "forms-submit", onClick: props.bag.doSubmit, children: props.label }), gate.reason !== undefined && (_jsx(Typography.Text, { type: "secondary", "data-testid": "forms-submit-blocked", children: gate.reason })), gate.detail !== undefined && (_jsx(Typography.Text, { type: "secondary", style: { fontSize: 12 }, children: gate.detail }))] }));
82
+ }
83
+ export function StapelForm(props) {
84
+ const t = useT();
85
+ const describe = useDescribeFlowError();
86
+ return (_jsx(FormsSkinTheme, { ...(props.mode !== undefined ? { mode: props.mode } : {}), children: _jsx(FormFill, { publicId: props.publicId, builtinKinds: BUILTIN_FIELD_KINDS, ...(props.onSubmitted ? { onSubmitted: props.onSubmitted } : {}), children: (bag) => {
87
+ if (bag.submitted !== null) {
88
+ return _jsx(Confirmation, { confirmation: bag.submitted.confirmation });
89
+ }
90
+ return matchLoad(bag.state, {
91
+ loading: () => (_jsx(Flex, { justify: "center", style: { padding: 24 }, children: _jsx(Spin, { "data-testid": "forms-loading", "aria-label": t(FORMS_I18N_KEYS.fillLoading) }) })),
92
+ // The three-way split. `hasErrorCode` reads the API dialect, so
93
+ // this works whether the throw was a StapelApiError or a bare
94
+ // envelope — and a network fault, which carries NEITHER code,
95
+ // correctly falls through to "we could not ask".
96
+ failed: (error) => {
97
+ if (hasErrorCode(error, CODE_NOT_FOUND)) {
98
+ return (_jsx(Alert, { type: "error", showIcon: true, "data-testid": "forms-not-found", message: t(FORMS_I18N_KEYS.fillNotFound) }));
99
+ }
100
+ if (hasErrorCode(error, CODE_CLOSED)) {
101
+ return (_jsx(Alert, { type: "info", showIcon: true, "data-testid": "forms-closed", message: t(FORMS_I18N_KEYS.fillClosed) }));
102
+ }
103
+ return (_jsx(ErrorAlert, { testId: "forms-load-failed", error: {
104
+ ...describe(toFlowError(error)),
105
+ message: t(FORMS_I18N_KEYS.fillLoadFailed),
106
+ }, action: _jsx(Button, { size: "small", onClick: bag.refetch, "data-analytics": "none", "data-analytics-reason": "retry of a failed read; no flow to step", children: t(FORMS_I18N_KEYS.fillRetry) }) }));
107
+ },
108
+ ready: (form) => {
109
+ const label = props.submitLabel ??
110
+ form.meta.submit_label ??
111
+ t(FORMS_I18N_KEYS.fillSubmit);
112
+ return (_jsxs(Form, { layout: "vertical", "data-testid": "forms-form", onFinish: bag.doSubmit, children: [props.showTitle !== false &&
113
+ form.meta.title !== undefined && (_jsx(Typography.Title, { level: 3, children: form.meta.title })), form.meta.description !== undefined && (_jsx(Typography.Paragraph, { type: "secondary", children: form.meta.description })), bag.superseded && (_jsx(Alert, { type: "warning", showIcon: true, style: { marginBottom: 16 }, "data-testid": "forms-superseded", message: t(FORMS_I18N_KEYS.fillSuperseded) })), form.fields.map((field) => (_jsx(FieldRow, { field: field, controlId: fieldControlId(field.slug), required: field.mandatory === true, error: bag.fieldErrors[field.slug], control: _jsx(FieldControl, { field: field, bag: bag, controlId: fieldControlId(field.slug) }) }, field.slug))), bag.formError !== null && (_jsx(ErrorAlert, { testId: "forms-form-error", style: { marginBottom: 16 }, error: describe(toFlowError(bag.formError)) })), props.captcha?.(bag), _jsx(SubmitBar, { bag: bag, label: label })] }));
114
+ },
115
+ });
116
+ } }) }));
117
+ }
118
+ //# sourceMappingURL=StapelForm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StapelForm.js","sourceRoot":"","sources":["../../src/default/StapelForm.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { FormFieldWidget } from "../widgets/registry.js";
2
+ /**
3
+ * The skin's builtin widget per kind — the second rung of the ladder. A kind
4
+ * absent from this table has no default drawing and reaches the
5
+ * unsupported-field notice.
6
+ */
7
+ export declare const BUILTIN_FIELD_WIDGETS: Readonly<Record<string, FormFieldWidget>>;
8
+ /** The kinds this skin can draw — handed to `<FormFill>` so the headless
9
+ * layer can judge `unsupportedKinds` without importing the skin. */
10
+ export declare const BUILTIN_FIELD_KINDS: readonly string[];
11
+ //# sourceMappingURL=fields.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../src/default/fields.tsx"],"names":[],"mappings":"AAmDA,OAAO,KAAK,EAAE,eAAe,EAAwB,MAAM,wBAAwB,CAAC;AA6XpF;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAW3E,CAAC;AAEF;oEACoE;AACpE,eAAO,MAAM,mBAAmB,EAAE,SAAS,MAAM,EACN,CAAC"}