@onereach/idw-contracts 0.1.2-beta.7.0 → 0.2.0-beta.27.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 (57) hide show
  1. package/README.md +14 -1
  2. package/dist/cjs/idw-card/card-schema.js +364 -0
  3. package/dist/cjs/idw-card/card-schema.js.map +1 -0
  4. package/dist/cjs/idw-card/collect.js +89 -0
  5. package/dist/cjs/idw-card/collect.js.map +1 -0
  6. package/dist/cjs/idw-card/fallbackText.js +11 -0
  7. package/dist/cjs/idw-card/fallbackText.js.map +1 -0
  8. package/dist/cjs/idw-card/index.js +32 -0
  9. package/dist/cjs/idw-card/index.js.map +1 -0
  10. package/dist/cjs/idw-card/types.js +7 -0
  11. package/dist/cjs/idw-card/types.js.map +1 -0
  12. package/dist/cjs/idw-card/url.js +20 -0
  13. package/dist/cjs/idw-card/url.js.map +1 -0
  14. package/dist/cjs/idw-card/validate.js +41 -0
  15. package/dist/cjs/idw-card/validate.js.map +1 -0
  16. package/dist/cjs/idw-card/version.js +11 -0
  17. package/dist/cjs/idw-card/version.js.map +1 -0
  18. package/dist/cjs/index.js +1 -0
  19. package/dist/cjs/index.js.map +1 -1
  20. package/dist/esm/idw-card/card-schema.js +361 -0
  21. package/dist/esm/idw-card/card-schema.js.map +1 -0
  22. package/dist/esm/idw-card/collect.js +82 -0
  23. package/dist/esm/idw-card/collect.js.map +1 -0
  24. package/dist/esm/idw-card/fallbackText.js +8 -0
  25. package/dist/esm/idw-card/fallbackText.js.map +1 -0
  26. package/dist/esm/idw-card/index.js +8 -0
  27. package/dist/esm/idw-card/index.js.map +1 -0
  28. package/dist/esm/idw-card/types.js +4 -0
  29. package/dist/esm/idw-card/types.js.map +1 -0
  30. package/dist/esm/idw-card/url.js +17 -0
  31. package/dist/esm/idw-card/url.js.map +1 -0
  32. package/dist/esm/idw-card/validate.js +37 -0
  33. package/dist/esm/idw-card/validate.js.map +1 -0
  34. package/dist/esm/idw-card/version.js +8 -0
  35. package/dist/esm/idw-card/version.js.map +1 -0
  36. package/dist/esm/index.js +1 -0
  37. package/dist/esm/index.js.map +1 -1
  38. package/dist/types/idw-card/card-schema.d.ts +7 -0
  39. package/dist/types/idw-card/card-schema.d.ts.map +1 -0
  40. package/dist/types/idw-card/collect.d.ts +7 -0
  41. package/dist/types/idw-card/collect.d.ts.map +1 -0
  42. package/dist/types/idw-card/fallbackText.d.ts +2 -0
  43. package/dist/types/idw-card/fallbackText.d.ts.map +1 -0
  44. package/dist/types/idw-card/index.d.ts +9 -0
  45. package/dist/types/idw-card/index.d.ts.map +1 -0
  46. package/dist/types/idw-card/types.d.ts +249 -0
  47. package/dist/types/idw-card/types.d.ts.map +1 -0
  48. package/dist/types/idw-card/url.d.ts +6 -0
  49. package/dist/types/idw-card/url.d.ts.map +1 -0
  50. package/dist/types/idw-card/validate.d.ts +4 -0
  51. package/dist/types/idw-card/validate.d.ts.map +1 -0
  52. package/dist/types/idw-card/version.d.ts +8 -0
  53. package/dist/types/idw-card/version.d.ts.map +1 -0
  54. package/dist/types/index.d.ts +1 -0
  55. package/dist/types/index.d.ts.map +1 -1
  56. package/package.json +3 -2
  57. package/skills/idw-card-authoring/SKILL.md +265 -0
package/README.md CHANGED
@@ -11,6 +11,7 @@ Ported from idw-ui `src/types/*` with domain-split modules:
11
11
  | `common` | Pagination, page bootstrap, layout enums |
12
12
  | `datasources` | MCP datasource models |
13
13
  | `idw` | IDW settings bodies (`IdwSettings`, `CoreBody`, …) |
14
+ | `idw-card` | `idw.card` / `1.0` schema, `validateIdwCard`, input helpers |
14
15
  | `idw-summary` | Zod schema for lightweight IDW listings |
15
16
  | `knowledge` | Knowledge management types |
16
17
  | `models` | Model listing / user selection types |
@@ -34,9 +35,21 @@ import type {
34
35
  McpAppArtifact,
35
36
  } from '@onereach/idw-contracts';
36
37
 
37
- import { idwSummarySchema } from '@onereach/idw-contracts';
38
+ import { idwSummarySchema, validateIdwCard } from '@onereach/idw-contracts';
38
39
  ```
39
40
 
41
+ ## IDW Cards
42
+
43
+ `idw.card` / `1.0` is the isomorphic card document schema (elements, actions, URL rules, `validateIdwCard`). Agents that **author** cards should follow [`skills/idw-card-authoring/SKILL.md`](./skills/idw-card-authoring/SKILL.md). Hosts **render** with `CardRenderer` from `@onereach/idw-ui-components`.
44
+
45
+ ```typescript
46
+ import { validateIdwCard, type IdwCard } from '@onereach/idw-contracts';
47
+
48
+ const result = validateIdwCard(payload);
49
+ ```
50
+
51
+ `idw-api` should depend on this package to validate or persist cards. Do not take a dependency on `@onereach/idw-ui-components`.
52
+
40
53
  ## Notes
41
54
 
42
55
  - Types intentionally omit UI-only couplings (e.g. `@or-sdk/hitl` `Session` from idw-ui `types/index.ts`).
@@ -0,0 +1,364 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.idwCardSchema = exports.idwCardElementSchema = exports.idwCardActionSchema = exports.idwCardVerbSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const url_1 = require("./url");
6
+ const version_1 = require("./version");
7
+ const idwSpacingSchema = zod_1.z.enum(['none', 'xs', 'sm', 'md', 'lg', 'xl']);
8
+ const idwTextStyleSchema = zod_1.z.enum(['caption', 'body', 'headline']);
9
+ const idwToneSchema = zod_1.z.enum(['default', 'emphasis', 'success', 'warning', 'attention']);
10
+ const idwCardActionStyleSchema = zod_1.z.enum(['default', 'primary', 'destructive']);
11
+ const idwColumnWidthSchema = zod_1.z.enum(['auto', 'stretch']);
12
+ exports.idwCardVerbSchema = zod_1.z.enum([
13
+ 'open-url',
14
+ 'approve',
15
+ 'reject',
16
+ 'submit',
17
+ 'start-skill',
18
+ 'mention',
19
+ 'open-conversation',
20
+ 'toggle-visibility',
21
+ 'show-card',
22
+ ]);
23
+ const elementCommonSchema = {
24
+ id: zod_1.z.string().optional(),
25
+ spacing: idwSpacingSchema.optional(),
26
+ isVisible: zod_1.z.boolean().optional(),
27
+ separator: zod_1.z.boolean().optional(),
28
+ $when: zod_1.z.string().optional(),
29
+ };
30
+ const inputCommonSchema = {
31
+ ...elementCommonSchema,
32
+ name: zod_1.z.string().min(1),
33
+ label: zod_1.z.string().optional(),
34
+ hint: zod_1.z.string().optional(),
35
+ errorMessage: zod_1.z.string().optional(),
36
+ required: zod_1.z.boolean().optional(),
37
+ disabled: zod_1.z.boolean().optional(),
38
+ };
39
+ function issue(ctx, message, path = []) {
40
+ ctx.addIssue({
41
+ code: zod_1.z.ZodIssueCode.custom,
42
+ message,
43
+ path,
44
+ });
45
+ }
46
+ function refineAction(action, ctx, path = []) {
47
+ if (action.verb === 'open-url') {
48
+ if (!action.url) {
49
+ issue(ctx, 'open-url requires url', [...path, 'url']);
50
+ }
51
+ else if (!(0, url_1.isAllowedResourceUrl)(action.url)) {
52
+ issue(ctx, 'url must be relative or http(s)', [...path, 'url']);
53
+ }
54
+ }
55
+ else if (action.url) {
56
+ issue(ctx, 'url is only allowed on open-url', [...path, 'url']);
57
+ }
58
+ if (action.verb === 'start-skill') {
59
+ if (!action.skillId) {
60
+ issue(ctx, 'start-skill requires skillId', [...path, 'skillId']);
61
+ }
62
+ }
63
+ else if (action.skillId) {
64
+ issue(ctx, 'skillId is only allowed on start-skill', [...path, 'skillId']);
65
+ }
66
+ if (action.verb === 'toggle-visibility') {
67
+ if (!action.targetIds?.length) {
68
+ issue(ctx, 'toggle-visibility requires targetIds', [...path, 'targetIds']);
69
+ }
70
+ }
71
+ else if (action.targetIds) {
72
+ issue(ctx, 'targetIds is only allowed on toggle-visibility', [...path, 'targetIds']);
73
+ }
74
+ if (action.verb === 'show-card') {
75
+ if (!action.card) {
76
+ issue(ctx, 'show-card requires card', [...path, 'card']);
77
+ }
78
+ }
79
+ else if (action.card) {
80
+ issue(ctx, 'card is only allowed on show-card', [...path, 'card']);
81
+ }
82
+ }
83
+ exports.idwCardActionSchema = zod_1.z.object({
84
+ type: zod_1.z.literal('Action'),
85
+ verb: exports.idwCardVerbSchema,
86
+ title: zod_1.z.string(),
87
+ url: zod_1.z.string().optional(),
88
+ skillId: zod_1.z.string().optional(),
89
+ data: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional(),
90
+ style: idwCardActionStyleSchema.optional(),
91
+ targetIds: zod_1.z.array(zod_1.z.string()).optional(),
92
+ card: zod_1.z.unknown().optional(),
93
+ $when: zod_1.z.string().optional(),
94
+ }).superRefine((action, ctx) => {
95
+ refineAction(action, ctx);
96
+ });
97
+ const idwFactSchema = zod_1.z.object({
98
+ title: zod_1.z.string(),
99
+ value: zod_1.z.string(),
100
+ });
101
+ const skillDataSchema = zod_1.z.object({
102
+ id: zod_1.z.string(),
103
+ name: zod_1.z.string(),
104
+ image: zod_1.z.string(),
105
+ domain: zod_1.z.string(),
106
+ });
107
+ const idwChoiceSchema = zod_1.z.object({
108
+ title: zod_1.z.string(),
109
+ value: zod_1.z.string(),
110
+ disabled: zod_1.z.boolean().optional(),
111
+ });
112
+ const locationValueSchema = zod_1.z.object({
113
+ address: zod_1.z.string().optional(),
114
+ lat: zod_1.z.number().optional(),
115
+ lng: zod_1.z.number().optional(),
116
+ });
117
+ exports.idwCardElementSchema = zod_1.z.lazy(() => zod_1.z.discriminatedUnion('type', [
118
+ zod_1.z.object({
119
+ ...elementCommonSchema,
120
+ type: zod_1.z.literal('Text'),
121
+ text: zod_1.z.string(),
122
+ textStyle: idwTextStyleSchema.optional(),
123
+ tone: idwToneSchema.optional(),
124
+ }),
125
+ zod_1.z.object({
126
+ ...elementCommonSchema,
127
+ type: zod_1.z.literal('Image'),
128
+ url: zod_1.z.string(),
129
+ alt: zod_1.z.string(),
130
+ }),
131
+ zod_1.z.object({
132
+ ...elementCommonSchema,
133
+ type: zod_1.z.literal('FactSet'),
134
+ facts: zod_1.z.array(idwFactSchema),
135
+ }),
136
+ zod_1.z.object({
137
+ ...elementCommonSchema,
138
+ type: zod_1.z.literal('Container'),
139
+ items: zod_1.z.array(exports.idwCardElementSchema),
140
+ tone: idwToneSchema.optional(),
141
+ }),
142
+ zod_1.z.object({
143
+ ...elementCommonSchema,
144
+ type: zod_1.z.literal('ColumnSet'),
145
+ columns: zod_1.z.array(zod_1.z.object({
146
+ items: zod_1.z.array(exports.idwCardElementSchema),
147
+ width: idwColumnWidthSchema.optional(),
148
+ })).min(version_1.IDW_CARD_MIN_COLUMNS).max(version_1.IDW_CARD_MAX_COLUMNS),
149
+ }),
150
+ zod_1.z.object({
151
+ ...elementCommonSchema,
152
+ type: zod_1.z.literal('Html'),
153
+ title: zod_1.z.string(),
154
+ content: zod_1.z.string(),
155
+ }),
156
+ zod_1.z.object({
157
+ ...elementCommonSchema,
158
+ type: zod_1.z.literal('File'),
159
+ title: zod_1.z.string(),
160
+ src: zod_1.z.string(),
161
+ }),
162
+ zod_1.z.object({
163
+ ...elementCommonSchema,
164
+ type: zod_1.z.literal('Skill'),
165
+ text: zod_1.z.string(),
166
+ skill: skillDataSchema.optional(),
167
+ startSkillLabel: zod_1.z.string().optional(),
168
+ }),
169
+ zod_1.z.object({
170
+ ...elementCommonSchema,
171
+ type: zod_1.z.literal('ActionSet'),
172
+ actions: zod_1.z.array(exports.idwCardActionSchema).max(version_1.IDW_CARD_MAX_ACTIONS),
173
+ }),
174
+ zod_1.z.object({
175
+ ...inputCommonSchema,
176
+ type: zod_1.z.literal('Input.Text'),
177
+ value: zod_1.z.string().optional(),
178
+ placeholder: zod_1.z.string().optional(),
179
+ multiline: zod_1.z.boolean().optional(),
180
+ rows: zod_1.z.number().int().positive().optional(),
181
+ maxLength: zod_1.z.number().int().positive().optional(),
182
+ style: zod_1.z.enum(['text', 'email', 'url', 'tel', 'password']).optional(),
183
+ }),
184
+ zod_1.z.object({
185
+ ...inputCommonSchema,
186
+ type: zod_1.z.literal('Input.Number'),
187
+ value: zod_1.z.number().optional(),
188
+ placeholder: zod_1.z.string().optional(),
189
+ min: zod_1.z.number().optional(),
190
+ max: zod_1.z.number().optional(),
191
+ step: zod_1.z.number().optional(),
192
+ }),
193
+ zod_1.z.object({
194
+ ...inputCommonSchema,
195
+ type: zod_1.z.literal('Input.Toggle'),
196
+ value: zod_1.z.boolean().optional(),
197
+ }),
198
+ zod_1.z.object({
199
+ ...inputCommonSchema,
200
+ type: zod_1.z.literal('Input.Checkbox'),
201
+ value: zod_1.z.boolean().optional(),
202
+ }),
203
+ zod_1.z.object({
204
+ ...inputCommonSchema,
205
+ type: zod_1.z.literal('Input.ChoiceSet'),
206
+ choices: zod_1.z.array(idwChoiceSchema).min(1),
207
+ style: zod_1.z.enum(['compact', 'expanded', 'filtered']).optional(),
208
+ multi: zod_1.z.boolean().optional(),
209
+ value: zod_1.z.union([zod_1.z.string(), zod_1.z.array(zod_1.z.string())]).optional(),
210
+ placeholder: zod_1.z.string().optional(),
211
+ }),
212
+ zod_1.z.object({
213
+ ...inputCommonSchema,
214
+ type: zod_1.z.literal('Input.Date'),
215
+ value: zod_1.z.string().optional(),
216
+ placeholder: zod_1.z.string().optional(),
217
+ }),
218
+ zod_1.z.object({
219
+ ...inputCommonSchema,
220
+ type: zod_1.z.literal('Input.Time'),
221
+ value: zod_1.z.string().optional(),
222
+ placeholder: zod_1.z.string().optional(),
223
+ }),
224
+ zod_1.z.object({
225
+ ...inputCommonSchema,
226
+ type: zod_1.z.literal('Input.DateTime'),
227
+ value: zod_1.z.string().optional(),
228
+ placeholder: zod_1.z.string().optional(),
229
+ }),
230
+ zod_1.z.object({
231
+ ...inputCommonSchema,
232
+ type: zod_1.z.literal('Input.Slider'),
233
+ value: zod_1.z.number().optional(),
234
+ min: zod_1.z.number().optional(),
235
+ max: zod_1.z.number().optional(),
236
+ step: zod_1.z.number().optional(),
237
+ }),
238
+ zod_1.z.object({
239
+ ...inputCommonSchema,
240
+ type: zod_1.z.literal('Input.Range'),
241
+ value: zod_1.z.tuple([zod_1.z.number(), zod_1.z.number()]).optional(),
242
+ min: zod_1.z.number().optional(),
243
+ max: zod_1.z.number().optional(),
244
+ step: zod_1.z.number().optional(),
245
+ }),
246
+ zod_1.z.object({
247
+ ...inputCommonSchema,
248
+ type: zod_1.z.literal('Input.Rating'),
249
+ value: zod_1.z.number().optional(),
250
+ }),
251
+ zod_1.z.object({
252
+ ...inputCommonSchema,
253
+ type: zod_1.z.literal('Input.Location'),
254
+ value: locationValueSchema.optional(),
255
+ placeholder: zod_1.z.string().optional(),
256
+ includeCoordinates: zod_1.z.boolean().optional(),
257
+ }),
258
+ zod_1.z.object({
259
+ ...elementCommonSchema,
260
+ type: zod_1.z.literal('Progress'),
261
+ value: zod_1.z.number(),
262
+ max: zod_1.z.number().optional(),
263
+ label: zod_1.z.string().optional(),
264
+ variant: zod_1.z.enum(['linear', 'circle']).optional(),
265
+ tone: idwToneSchema.optional(),
266
+ }),
267
+ zod_1.z.object({
268
+ ...elementCommonSchema,
269
+ type: zod_1.z.literal('Badge'),
270
+ text: zod_1.z.string(),
271
+ tone: idwToneSchema.optional(),
272
+ }),
273
+ zod_1.z.object({
274
+ ...elementCommonSchema,
275
+ type: zod_1.z.literal('Icon'),
276
+ icon: zod_1.z.string(),
277
+ }),
278
+ zod_1.z.object({
279
+ ...elementCommonSchema,
280
+ type: zod_1.z.literal('ImageSet'),
281
+ images: zod_1.z.array(zod_1.z.object({
282
+ url: zod_1.z.string(),
283
+ alt: zod_1.z.string(),
284
+ })).min(1),
285
+ }),
286
+ zod_1.z.object({
287
+ ...elementCommonSchema,
288
+ type: zod_1.z.literal('Media'),
289
+ url: zod_1.z.string(),
290
+ mediaType: zod_1.z.enum(['video', 'audio']).optional(),
291
+ poster: zod_1.z.string().optional(),
292
+ title: zod_1.z.string().optional(),
293
+ }),
294
+ zod_1.z.object({
295
+ ...elementCommonSchema,
296
+ type: zod_1.z.literal('Table'),
297
+ columns: zod_1.z.array(zod_1.z.object({ title: zod_1.z.string() })).min(1),
298
+ rows: zod_1.z.array(zod_1.z.array(zod_1.z.string())),
299
+ }),
300
+ ]));
301
+ function walkActions(actions, ctx, path) {
302
+ actions?.forEach((action, index) => {
303
+ if (action.verb === 'show-card' && action.card) {
304
+ const nested = exports.idwCardSchema.safeParse(action.card);
305
+ if (!nested.success) {
306
+ issue(ctx, 'show-card card is not a valid IdwCard', [...path, index, 'card']);
307
+ }
308
+ }
309
+ });
310
+ }
311
+ function walkNesting(elements, depth, ctx, path) {
312
+ elements.forEach((element, index) => {
313
+ const elementPath = [...path, index];
314
+ if (element.type === 'Image' && !(0, url_1.isAllowedResourceUrl)(element.url)) {
315
+ issue(ctx, 'url must be relative or http(s)', [...elementPath, 'url']);
316
+ }
317
+ if (element.type === 'File' && !(0, url_1.isAllowedResourceUrl)(element.src)) {
318
+ issue(ctx, 'src must be relative or http(s)', [...elementPath, 'src']);
319
+ }
320
+ if (element.type === 'Media' && !(0, url_1.isAllowedResourceUrl)(element.url)) {
321
+ issue(ctx, 'url must be relative or http(s)', [...elementPath, 'url']);
322
+ }
323
+ if (element.type === 'Media' && element.poster && !(0, url_1.isAllowedResourceUrl)(element.poster)) {
324
+ issue(ctx, 'poster must be relative or http(s)', [...elementPath, 'poster']);
325
+ }
326
+ if (element.type === 'ImageSet') {
327
+ element.images.forEach((image, imageIndex) => {
328
+ if (!(0, url_1.isAllowedResourceUrl)(image.url)) {
329
+ issue(ctx, 'url must be relative or http(s)', [...elementPath, 'images', imageIndex, 'url']);
330
+ }
331
+ });
332
+ }
333
+ if (element.type === 'ActionSet') {
334
+ walkActions(element.actions, ctx, [...elementPath, 'actions']);
335
+ }
336
+ if (element.type === 'Container' || element.type === 'ColumnSet') {
337
+ const nextDepth = depth + 1;
338
+ if (nextDepth > version_1.IDW_CARD_MAX_NESTING) {
339
+ issue(ctx, `Nesting exceeds ${version_1.IDW_CARD_MAX_NESTING}`, elementPath);
340
+ return;
341
+ }
342
+ if (element.type === 'Container') {
343
+ walkNesting(element.items, nextDepth, ctx, [...elementPath, 'items']);
344
+ }
345
+ else {
346
+ element.columns.forEach((column, columnIndex) => {
347
+ walkNesting(column.items, nextDepth, ctx, [...elementPath, 'columns', columnIndex, 'items']);
348
+ });
349
+ }
350
+ }
351
+ });
352
+ }
353
+ exports.idwCardSchema = zod_1.z.object({
354
+ type: zod_1.z.literal('IdwCard'),
355
+ schema: zod_1.z.literal(version_1.IDW_CARD_SCHEMA),
356
+ version: zod_1.z.literal(version_1.IDW_CARD_VERSION),
357
+ body: zod_1.z.array(exports.idwCardElementSchema).max(version_1.IDW_CARD_MAX_BODY_ELEMENTS),
358
+ actions: zod_1.z.array(exports.idwCardActionSchema).max(version_1.IDW_CARD_MAX_ACTIONS).optional(),
359
+ fallbackText: zod_1.z.string().optional(),
360
+ }).superRefine((card, ctx) => {
361
+ walkNesting(card.body, 0, ctx, ['body']);
362
+ walkActions(card.actions, ctx, ['actions']);
363
+ });
364
+ //# sourceMappingURL=card-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"card-schema.js","sourceRoot":"","sources":["../../../src/idw-card/card-schema.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isElementVisible = isElementVisible;
4
+ exports.listIdwCardInputs = listIdwCardInputs;
5
+ exports.defaultInputValue = defaultInputValue;
6
+ exports.collectInitialInputValues = collectInitialInputValues;
7
+ exports.isInputEmpty = isInputEmpty;
8
+ const types_1 = require("./types");
9
+ function isElementVisible(element, hiddenIds = new Set()) {
10
+ const baseHidden = element.isVisible === false;
11
+ const toggled = Boolean(element.id && hiddenIds.has(element.id));
12
+ return !(toggled ? !baseHidden : baseHidden);
13
+ }
14
+ function walkElements(elements, visit) {
15
+ for (const element of elements) {
16
+ visit(element);
17
+ if (element.type === 'Container') {
18
+ walkElements(element.items, visit);
19
+ }
20
+ else if (element.type === 'ColumnSet') {
21
+ for (const column of element.columns) {
22
+ walkElements(column.items, visit);
23
+ }
24
+ }
25
+ }
26
+ }
27
+ function listIdwCardInputs(elements, hiddenIds = new Set()) {
28
+ const inputs = [];
29
+ walkElements(elements, (element) => {
30
+ if (!(0, types_1.isIdwCardInputElement)(element)) {
31
+ return;
32
+ }
33
+ inputs.push({
34
+ name: element.name,
35
+ required: Boolean(element.required),
36
+ errorMessage: element.errorMessage,
37
+ visible: isElementVisible(element, hiddenIds),
38
+ });
39
+ });
40
+ return inputs;
41
+ }
42
+ function defaultInputValue(element) {
43
+ if (element.value !== undefined) {
44
+ return element.value;
45
+ }
46
+ switch (element.type) {
47
+ case 'Input.Toggle':
48
+ case 'Input.Checkbox':
49
+ return false;
50
+ case 'Input.ChoiceSet':
51
+ return element.multi ? [] : '';
52
+ case 'Input.Slider':
53
+ case 'Input.Number':
54
+ case 'Input.Rating':
55
+ return element.type === 'Input.Slider' ? (element.min ?? 0) : undefined;
56
+ case 'Input.Range':
57
+ return [element.min ?? 0, element.max ?? 100];
58
+ case 'Input.Location':
59
+ return { address: '' };
60
+ default:
61
+ return '';
62
+ }
63
+ }
64
+ function collectInitialInputValues(elements) {
65
+ const values = {};
66
+ walkElements(elements, (element) => {
67
+ if ((0, types_1.isIdwCardInputElement)(element)) {
68
+ values[element.name] = defaultInputValue(element);
69
+ }
70
+ });
71
+ return values;
72
+ }
73
+ function isInputEmpty(value) {
74
+ if (value == null) {
75
+ return true;
76
+ }
77
+ if (typeof value === 'string') {
78
+ return value.trim() === '';
79
+ }
80
+ if (Array.isArray(value)) {
81
+ return value.length === 0;
82
+ }
83
+ if (typeof value === 'object') {
84
+ const location = value;
85
+ return !location.address && location.lat == null && location.lng == null;
86
+ }
87
+ return false;
88
+ }
89
+ //# sourceMappingURL=collect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collect.js","sourceRoot":"","sources":["../../../src/idw-card/collect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getIdwCardFallbackText = getIdwCardFallbackText;
4
+ function getIdwCardFallbackText(card) {
5
+ if (!card || typeof card !== 'object' || Array.isArray(card)) {
6
+ return undefined;
7
+ }
8
+ const fallbackText = card.fallbackText;
9
+ return typeof fallbackText === 'string' && fallbackText.trim() ? fallbackText : undefined;
10
+ }
11
+ //# sourceMappingURL=fallbackText.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fallbackText.js","sourceRoot":"","sources":["../../../src/idw-card/fallbackText.ts"],"names":[],"mappings":";;AAAA,wDAOC;AAPD,SAAgB,sBAAsB,CAAC,IAAa;IAClD,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7D,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,YAAY,GAAI,IAAmC,CAAC,YAAY,CAAC;IACvE,OAAO,OAAO,YAAY,KAAK,QAAQ,IAAI,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;AAC5F,CAAC"}
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.IDW_CARD_VERSION = exports.IDW_CARD_SCHEMA = exports.IDW_CARD_MIN_COLUMNS = exports.IDW_CARD_MAX_NESTING = exports.IDW_CARD_MAX_COLUMNS = exports.IDW_CARD_MAX_BODY_ELEMENTS = exports.IDW_CARD_MAX_ACTIONS = exports.validateIdwCard = exports.parseIdwCard = exports.isAllowedResourceUrl = exports.getIdwCardFallbackText = exports.isIdwCardInputElement = exports.listIdwCardInputs = exports.isInputEmpty = exports.isElementVisible = exports.defaultInputValue = exports.collectInitialInputValues = exports.idwCardVerbSchema = exports.idwCardSchema = exports.idwCardElementSchema = exports.idwCardActionSchema = void 0;
4
+ var card_schema_1 = require("./card-schema");
5
+ Object.defineProperty(exports, "idwCardActionSchema", { enumerable: true, get: function () { return card_schema_1.idwCardActionSchema; } });
6
+ Object.defineProperty(exports, "idwCardElementSchema", { enumerable: true, get: function () { return card_schema_1.idwCardElementSchema; } });
7
+ Object.defineProperty(exports, "idwCardSchema", { enumerable: true, get: function () { return card_schema_1.idwCardSchema; } });
8
+ Object.defineProperty(exports, "idwCardVerbSchema", { enumerable: true, get: function () { return card_schema_1.idwCardVerbSchema; } });
9
+ var collect_1 = require("./collect");
10
+ Object.defineProperty(exports, "collectInitialInputValues", { enumerable: true, get: function () { return collect_1.collectInitialInputValues; } });
11
+ Object.defineProperty(exports, "defaultInputValue", { enumerable: true, get: function () { return collect_1.defaultInputValue; } });
12
+ Object.defineProperty(exports, "isElementVisible", { enumerable: true, get: function () { return collect_1.isElementVisible; } });
13
+ Object.defineProperty(exports, "isInputEmpty", { enumerable: true, get: function () { return collect_1.isInputEmpty; } });
14
+ Object.defineProperty(exports, "listIdwCardInputs", { enumerable: true, get: function () { return collect_1.listIdwCardInputs; } });
15
+ var types_1 = require("./types");
16
+ Object.defineProperty(exports, "isIdwCardInputElement", { enumerable: true, get: function () { return types_1.isIdwCardInputElement; } });
17
+ var fallbackText_1 = require("./fallbackText");
18
+ Object.defineProperty(exports, "getIdwCardFallbackText", { enumerable: true, get: function () { return fallbackText_1.getIdwCardFallbackText; } });
19
+ var url_1 = require("./url");
20
+ Object.defineProperty(exports, "isAllowedResourceUrl", { enumerable: true, get: function () { return url_1.isAllowedResourceUrl; } });
21
+ var validate_1 = require("./validate");
22
+ Object.defineProperty(exports, "parseIdwCard", { enumerable: true, get: function () { return validate_1.parseIdwCard; } });
23
+ Object.defineProperty(exports, "validateIdwCard", { enumerable: true, get: function () { return validate_1.validateIdwCard; } });
24
+ var version_1 = require("./version");
25
+ Object.defineProperty(exports, "IDW_CARD_MAX_ACTIONS", { enumerable: true, get: function () { return version_1.IDW_CARD_MAX_ACTIONS; } });
26
+ Object.defineProperty(exports, "IDW_CARD_MAX_BODY_ELEMENTS", { enumerable: true, get: function () { return version_1.IDW_CARD_MAX_BODY_ELEMENTS; } });
27
+ Object.defineProperty(exports, "IDW_CARD_MAX_COLUMNS", { enumerable: true, get: function () { return version_1.IDW_CARD_MAX_COLUMNS; } });
28
+ Object.defineProperty(exports, "IDW_CARD_MAX_NESTING", { enumerable: true, get: function () { return version_1.IDW_CARD_MAX_NESTING; } });
29
+ Object.defineProperty(exports, "IDW_CARD_MIN_COLUMNS", { enumerable: true, get: function () { return version_1.IDW_CARD_MIN_COLUMNS; } });
30
+ Object.defineProperty(exports, "IDW_CARD_SCHEMA", { enumerable: true, get: function () { return version_1.IDW_CARD_SCHEMA; } });
31
+ Object.defineProperty(exports, "IDW_CARD_VERSION", { enumerable: true, get: function () { return version_1.IDW_CARD_VERSION; } });
32
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/idw-card/index.ts"],"names":[],"mappings":";;;AAAA,6CAKuB;AAJrB,kHAAA,mBAAmB,OAAA;AACnB,mHAAA,oBAAoB,OAAA;AACpB,4GAAA,aAAa,OAAA;AACb,gHAAA,iBAAiB,OAAA;AAEnB,qCAMmB;AALjB,oHAAA,yBAAyB,OAAA;AACzB,4GAAA,iBAAiB,OAAA;AACjB,2GAAA,gBAAgB,OAAA;AAChB,uGAAA,YAAY,OAAA;AACZ,4GAAA,iBAAiB,OAAA;AAyDnB,iCAAgD;AAAvC,8GAAA,qBAAqB,OAAA;AAC9B,+CAAwD;AAA/C,sHAAA,sBAAsB,OAAA;AAC/B,6BAA6C;AAApC,2GAAA,oBAAoB,OAAA;AAC7B,uCAA2D;AAAlD,wGAAA,YAAY,OAAA;AAAE,2GAAA,eAAe,OAAA;AACtC,qCAQmB;AAPjB,+GAAA,oBAAoB,OAAA;AACpB,qHAAA,0BAA0B,OAAA;AAC1B,+GAAA,oBAAoB,OAAA;AACpB,+GAAA,oBAAoB,OAAA;AACpB,+GAAA,oBAAoB,OAAA;AACpB,0GAAA,eAAe,OAAA;AACf,2GAAA,gBAAgB,OAAA"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isIdwCardInputElement = isIdwCardInputElement;
4
+ function isIdwCardInputElement(element) {
5
+ return element.type.startsWith('Input.');
6
+ }
7
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/idw-card/types.ts"],"names":[],"mappings":";;AAuUA,sDAEC;AAFD,SAAgB,qBAAqB,CAAC,OAAuB;IAC3D,OAAO,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AAC3C,CAAC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isAllowedResourceUrl = isAllowedResourceUrl;
4
+ /**
5
+ * Allows relative URLs and http(s) absolute URLs.
6
+ * Rejects javascript: and other non-http(s) absolute schemes.
7
+ */
8
+ function isAllowedResourceUrl(value) {
9
+ const trimmed = value.trim();
10
+ if (!trimmed) {
11
+ return false;
12
+ }
13
+ const schemeMatch = trimmed.match(/^([a-zA-Z][a-zA-Z0-9+.-]*):/);
14
+ if (!schemeMatch) {
15
+ return !trimmed.toLowerCase().startsWith('javascript:');
16
+ }
17
+ const scheme = schemeMatch[1].toLowerCase();
18
+ return scheme === 'http' || scheme === 'https';
19
+ }
20
+ //# sourceMappingURL=url.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url.js","sourceRoot":"","sources":["../../../src/idw-card/url.ts"],"names":[],"mappings":";;AAIA,oDAaC;AAjBD;;;GAGG;AACH,SAAgB,oBAAoB,CAAC,KAAa;IAChD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC7B,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,6BAA6B,CAAC,CAAC;IACjE,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;IAC1D,CAAC;IAED,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAC5C,OAAO,MAAM,KAAK,MAAM,IAAI,MAAM,KAAK,OAAO,CAAC;AACjD,CAAC"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.validateIdwCard = validateIdwCard;
4
+ exports.parseIdwCard = parseIdwCard;
5
+ const card_schema_1 = require("./card-schema");
6
+ function formatPath(path) {
7
+ if (path.length === 0) {
8
+ return '';
9
+ }
10
+ return path
11
+ .map((segment, index) => {
12
+ if (typeof segment === 'number') {
13
+ return `[${segment}]`;
14
+ }
15
+ return index === 0 ? segment : `.${segment}`;
16
+ })
17
+ .join('')
18
+ .replace(/\.\[/g, '[');
19
+ }
20
+ function validateIdwCard(input) {
21
+ const parsed = card_schema_1.idwCardSchema.safeParse(input);
22
+ if (parsed.success) {
23
+ return {
24
+ success: true,
25
+ card: parsed.data,
26
+ issues: [],
27
+ };
28
+ }
29
+ const issues = parsed.error.issues.map((item) => ({
30
+ path: formatPath(item.path),
31
+ message: item.message,
32
+ }));
33
+ return {
34
+ success: false,
35
+ issues,
36
+ };
37
+ }
38
+ function parseIdwCard(input) {
39
+ return card_schema_1.idwCardSchema.parse(input);
40
+ }
41
+ //# sourceMappingURL=validate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate.js","sourceRoot":"","sources":["../../../src/idw-card/validate.ts"],"names":[],"mappings":";;AAmBA,0CAoBC;AAED,oCAEC;AA3CD,+CAA8C;AAG9C,SAAS,UAAU,CAAC,IAA4B;IAC9C,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,OAAO,IAAI;SACR,GAAG,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;QACtB,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;YAChC,OAAO,IAAI,OAAO,GAAG,CAAC;QACxB,CAAC;QACD,OAAO,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC;IAC/C,CAAC,CAAC;SACD,IAAI,CAAC,EAAE,CAAC;SACR,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AAC3B,CAAC;AAED,SAAgB,eAAe,CAAC,KAAc;IAC5C,MAAM,MAAM,GAAG,2BAAa,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAE9C,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;QACnB,OAAO;YACL,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,MAAM,EAAE,EAAE;SACX,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAA6B,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC1E,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,IAA8B,CAAC;QACrD,OAAO,EAAE,IAAI,CAAC,OAAO;KACtB,CAAC,CAAC,CAAC;IAEJ,OAAO;QACL,OAAO,EAAE,KAAK;QACd,MAAM;KACP,CAAC;AACJ,CAAC;AAED,SAAgB,YAAY,CAAC,KAAc;IACzC,OAAO,2BAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACpC,CAAC"}