@reforma/components 0.1.5 → 0.2.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 (129) hide show
  1. package/dist/Scrollable/Scrollable.d.ts +1 -2
  2. package/dist/Scrollable/Scrollable.d.ts.map +1 -1
  3. package/dist/Scrollable/Scrollable.js +45 -38
  4. package/dist/Scrollable/Scrollable.js.map +1 -1
  5. package/dist/Scrollable/useScrollChrome.d.ts +1 -2
  6. package/dist/Scrollable/useScrollChrome.d.ts.map +1 -1
  7. package/dist/Scrollable/useScrollChrome.js +125 -110
  8. package/dist/Scrollable/useScrollChrome.js.map +1 -1
  9. package/dist/chat/ComposerBanner/ComposerBanner.d.ts +2 -1
  10. package/dist/chat/ComposerBanner/ComposerBanner.d.ts.map +1 -1
  11. package/dist/chat/ComposerBanner/ComposerBanner.js +37 -29
  12. package/dist/chat/ComposerBanner/ComposerBanner.js.map +1 -1
  13. package/dist/chat/ComposerBanner/ComposerBanner.module.css +1 -1
  14. package/dist/chat/ComposerBanner/ComposerBanner.module.css.js +5 -3
  15. package/dist/chat/ComposerBanner/ComposerBanner.module.css.js.map +1 -1
  16. package/dist/chat/Tool/agent/AgentTool.d.ts.map +1 -1
  17. package/dist/chat/Tool/agent/AgentTool.js +89 -90
  18. package/dist/chat/Tool/agent/AgentTool.js.map +1 -1
  19. package/dist/chat/Tool/edit/EditTool.js +1 -1
  20. package/dist/chat/Tool/edit/EditTool.js.map +1 -1
  21. package/dist/node_modules/zod/v4/classic/errors.js +38 -0
  22. package/dist/node_modules/zod/v4/classic/errors.js.map +1 -0
  23. package/dist/node_modules/zod/v4/classic/parse.js +21 -0
  24. package/dist/node_modules/zod/v4/classic/parse.js.map +1 -0
  25. package/dist/node_modules/zod/v4/classic/schemas.js +822 -0
  26. package/dist/node_modules/zod/v4/classic/schemas.js.map +1 -0
  27. package/dist/node_modules/zod/v4/core/api.js +561 -0
  28. package/dist/node_modules/zod/v4/core/api.js.map +1 -0
  29. package/dist/node_modules/zod/v4/core/checks.js +262 -0
  30. package/dist/node_modules/zod/v4/core/checks.js.map +1 -0
  31. package/dist/node_modules/zod/v4/core/core.js +97 -0
  32. package/dist/node_modules/zod/v4/core/core.js.map +1 -0
  33. package/dist/node_modules/zod/v4/core/doc.js +35 -0
  34. package/dist/node_modules/zod/v4/core/doc.js.map +1 -0
  35. package/dist/node_modules/zod/v4/core/errors.js +79 -0
  36. package/dist/node_modules/zod/v4/core/errors.js.map +1 -0
  37. package/dist/node_modules/zod/v4/core/json-schema-processors.js +308 -0
  38. package/dist/node_modules/zod/v4/core/json-schema-processors.js.map +1 -0
  39. package/dist/node_modules/zod/v4/core/memoizer.js +203 -0
  40. package/dist/node_modules/zod/v4/core/memoizer.js.map +1 -0
  41. package/dist/node_modules/zod/v4/core/parse.js +113 -0
  42. package/dist/node_modules/zod/v4/core/parse.js.map +1 -0
  43. package/dist/node_modules/zod/v4/core/regexes.js +59 -0
  44. package/dist/node_modules/zod/v4/core/regexes.js.map +1 -0
  45. package/dist/node_modules/zod/v4/core/registries.js +41 -0
  46. package/dist/node_modules/zod/v4/core/registries.js.map +1 -0
  47. package/dist/node_modules/zod/v4/core/schemas.js +1104 -0
  48. package/dist/node_modules/zod/v4/core/schemas.js.map +1 -0
  49. package/dist/node_modules/zod/v4/core/to-json-schema.js +380 -0
  50. package/dist/node_modules/zod/v4/core/to-json-schema.js.map +1 -0
  51. package/dist/node_modules/zod/v4/core/util.js +465 -0
  52. package/dist/node_modules/zod/v4/core/util.js.map +1 -0
  53. package/dist/node_modules/zod/v4/core/versions.js +9 -0
  54. package/dist/node_modules/zod/v4/core/versions.js.map +1 -0
  55. package/dist/node_modules/zod/v4/locales/en.js +97 -0
  56. package/dist/node_modules/zod/v4/locales/en.js.map +1 -0
  57. package/dist/openui/actions.d.ts +16 -0
  58. package/dist/openui/actions.d.ts.map +1 -0
  59. package/dist/openui/actions.js +58 -0
  60. package/dist/openui/actions.js.map +1 -0
  61. package/dist/openui/components/controls.d.ts +34 -0
  62. package/dist/openui/components/controls.d.ts.map +1 -0
  63. package/dist/openui/components/controls.js +40 -0
  64. package/dist/openui/components/controls.js.map +1 -0
  65. package/dist/openui/components/layout.d.ts +74 -0
  66. package/dist/openui/components/layout.d.ts.map +1 -0
  67. package/dist/openui/components/layout.js +154 -0
  68. package/dist/openui/components/layout.js.map +1 -0
  69. package/dist/openui/components/list.d.ts +17 -0
  70. package/dist/openui/components/list.d.ts.map +1 -0
  71. package/dist/openui/components/list.js +96 -0
  72. package/dist/openui/components/list.js.map +1 -0
  73. package/dist/openui/components/svg.d.ts +100 -0
  74. package/dist/openui/components/svg.d.ts.map +1 -0
  75. package/dist/openui/components/svg.js +246 -0
  76. package/dist/openui/components/svg.js.map +1 -0
  77. package/dist/openui/components/table.d.ts +6 -0
  78. package/dist/openui/components/table.d.ts.map +1 -0
  79. package/dist/openui/components/table.js +54 -0
  80. package/dist/openui/components/table.js.map +1 -0
  81. package/dist/openui/components/text.d.ts +89 -0
  82. package/dist/openui/components/text.d.ts.map +1 -0
  83. package/dist/openui/components/text.js +181 -0
  84. package/dist/openui/components/text.js.map +1 -0
  85. package/dist/openui/functions/colors.d.ts +12 -0
  86. package/dist/openui/functions/colors.d.ts.map +1 -0
  87. package/dist/openui/functions/colors.js +32 -0
  88. package/dist/openui/functions/colors.js.map +1 -0
  89. package/dist/openui/functions/data.d.ts +170 -0
  90. package/dist/openui/functions/data.d.ts.map +1 -0
  91. package/dist/openui/functions/data.js +308 -0
  92. package/dist/openui/functions/data.js.map +1 -0
  93. package/dist/openui/functions/dates.d.ts +57 -0
  94. package/dist/openui/functions/dates.d.ts.map +1 -0
  95. package/dist/openui/functions/dates.js +184 -0
  96. package/dist/openui/functions/dates.js.map +1 -0
  97. package/dist/openui/functions/index.d.ts +136 -0
  98. package/dist/openui/functions/index.d.ts.map +1 -0
  99. package/dist/openui/functions/index.js +11 -0
  100. package/dist/openui/functions/index.js.map +1 -0
  101. package/dist/openui/functions/lists.d.ts +102 -0
  102. package/dist/openui/functions/lists.d.ts.map +1 -0
  103. package/dist/openui/functions/lists.js +305 -0
  104. package/dist/openui/functions/lists.js.map +1 -0
  105. package/dist/openui/functions/numbers.d.ts +72 -0
  106. package/dist/openui/functions/numbers.d.ts.map +1 -0
  107. package/dist/openui/functions/numbers.js +201 -0
  108. package/dist/openui/functions/numbers.js.map +1 -0
  109. package/dist/openui/functions/shared.d.ts +28 -0
  110. package/dist/openui/functions/shared.d.ts.map +1 -0
  111. package/dist/openui/functions/shared.js +69 -0
  112. package/dist/openui/functions/shared.js.map +1 -0
  113. package/dist/openui/functions/text.d.ts +97 -0
  114. package/dist/openui/functions/text.d.ts.map +1 -0
  115. package/dist/openui/functions/text.js +223 -0
  116. package/dist/openui/functions/text.js.map +1 -0
  117. package/dist/openui/index.d.ts +5 -0
  118. package/dist/openui/index.d.ts.map +1 -0
  119. package/dist/openui/index.js +14 -0
  120. package/dist/openui/index.js.map +1 -0
  121. package/dist/openui/library.d.ts +8 -0
  122. package/dist/openui/library.d.ts.map +1 -0
  123. package/dist/openui/library.js +37 -0
  124. package/dist/openui/library.js.map +1 -0
  125. package/dist/openui/schema.d.ts +36 -0
  126. package/dist/openui/schema.d.ts.map +1 -0
  127. package/dist/openui/schema.js +24 -0
  128. package/dist/openui/schema.js.map +1 -0
  129. package/package.json +4 -2
@@ -0,0 +1,136 @@
1
+ /**
2
+ * Generic functions the model calls as @Name(args) to compute inside a page:
3
+ * edit lists held in $variables, do the math, format text and dates, and
4
+ * shape Query rows for charts. They are pure except @Random, @Pick, @Shuffle
5
+ * and @Now. Bad arguments, or a throw, make a call evaluate to null.
6
+ */
7
+ export declare const functions: (import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
8
+ list: import("zod/v4").ZodUnion<readonly [import("zod/v4").ZodArray<import("zod/v4").ZodAny>, import("zod/v4").ZodString]>;
9
+ item: import("zod/v4").ZodAny;
10
+ }, import("zod/v4/core").$strip>, import("zod/v4").ZodBoolean> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
11
+ list: import("zod/v4").ZodArray<import("zod/v4").ZodAny>;
12
+ item: import("zod/v4").ZodAny;
13
+ }, import("zod/v4/core").$strip>, import("zod/v4").ZodNumber> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
14
+ list: import("zod/v4").ZodUnion<readonly [import("zod/v4").ZodArray<import("zod/v4").ZodAny>, import("zod/v4").ZodString]>;
15
+ start: import("zod/v4").ZodNumber;
16
+ end: import("zod/v4").ZodOptional<import("zod/v4").ZodNumber>;
17
+ }, import("zod/v4/core").$strip>, import("zod/v4").ZodUnion<readonly [import("zod/v4").ZodArray<import("zod/v4").ZodAny>, import("zod/v4").ZodString]>> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
18
+ list: import("zod/v4").ZodArray<import("zod/v4").ZodAny>;
19
+ }, import("zod/v4/core").$strip>, import("zod/v4").ZodArray<import("zod/v4").ZodAny>> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
20
+ start: import("zod/v4").ZodNumber;
21
+ end: import("zod/v4").ZodNumber;
22
+ step: import("zod/v4").ZodOptional<import("zod/v4").ZodNumber>;
23
+ }, import("zod/v4/core").$strip>, import("zod/v4").ZodArray<import("zod/v4").ZodNumber>> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
24
+ list: import("zod/v4").ZodArray<import("zod/v4").ZodAny>;
25
+ }, import("zod/v4/core").$strip>, import("zod/v4").ZodAny> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
26
+ list: import("zod/v4").ZodArray<import("zod/v4").ZodAny>;
27
+ size: import("zod/v4").ZodNumber;
28
+ }, import("zod/v4/core").$strip>, import("zod/v4").ZodArray<import("zod/v4").ZodArray<import("zod/v4").ZodAny>>> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
29
+ base: import("zod/v4").ZodNumber;
30
+ exponent: import("zod/v4").ZodNumber;
31
+ }, import("zod/v4/core").$strip>, import("zod/v4").ZodNumber> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
32
+ number: import("zod/v4").ZodNumber;
33
+ }, import("zod/v4/core").$strip>, import("zod/v4").ZodNumber> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
34
+ min: import("zod/v4").ZodNumber;
35
+ max: import("zod/v4").ZodNumber;
36
+ integer: import("zod/v4").ZodOptional<import("zod/v4").ZodBoolean>;
37
+ }, import("zod/v4/core").$strip>, import("zod/v4").ZodNumber> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
38
+ part: import("zod/v4").ZodNumber;
39
+ total: import("zod/v4").ZodNumber;
40
+ }, import("zod/v4/core").$strip>, import("zod/v4").ZodNumber> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
41
+ a: import("zod/v4").ZodNumber;
42
+ b: import("zod/v4").ZodNumber;
43
+ t: import("zod/v4").ZodNumber;
44
+ }, import("zod/v4/core").$strip>, import("zod/v4").ZodNumber> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
45
+ total: import("zod/v4").ZodNumber;
46
+ weights: import("zod/v4").ZodArray<import("zod/v4").ZodNumber>;
47
+ decimals: import("zod/v4").ZodOptional<import("zod/v4").ZodNumber>;
48
+ }, import("zod/v4/core").$strip>, import("zod/v4").ZodArray<import("zod/v4").ZodNumber>> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
49
+ principal: import("zod/v4").ZodNumber;
50
+ rate: import("zod/v4").ZodNumber;
51
+ periods: import("zod/v4").ZodNumber;
52
+ }, import("zod/v4/core").$strip>, import("zod/v4").ZodNumber> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
53
+ value: import("zod/v4").ZodNumber;
54
+ from: import("zod/v4").ZodString;
55
+ to: import("zod/v4").ZodString;
56
+ }, import("zod/v4/core").$strip>, import("zod/v4").ZodNumber> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
57
+ text: import("zod/v4").ZodString;
58
+ sep: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
59
+ }, import("zod/v4/core").$strip>, import("zod/v4").ZodArray<import("zod/v4").ZodString>> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
60
+ value: import("zod/v4").ZodOptional<import("zod/v4").ZodAny>;
61
+ fallback: import("zod/v4").ZodAny;
62
+ }, import("zod/v4/core").$strip>, import("zod/v4").ZodAny> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{}, import("zod/v4/core").$strip>, import("zod/v4").ZodString> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
63
+ from: import("zod/v4").ZodUnion<readonly [import("zod/v4").ZodString, import("zod/v4").ZodNumber]>;
64
+ to: import("zod/v4").ZodUnion<readonly [import("zod/v4").ZodString, import("zod/v4").ZodNumber]>;
65
+ }, import("zod/v4/core").$strip>, import("zod/v4").ZodNumber> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
66
+ rows: import("zod/v4").ZodArray<import("zod/v4").ZodAny>;
67
+ key: import("zod/v4").ZodString;
68
+ field: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
69
+ agg: import("zod/v4").ZodOptional<import("zod/v4").ZodEnum<{
70
+ avg: "avg";
71
+ count: "count";
72
+ max: "max";
73
+ min: "min";
74
+ sum: "sum";
75
+ }>>;
76
+ }, import("zod/v4/core").$strip>, import("zod/v4").ZodArray<import("zod/v4").ZodObject<{
77
+ key: import("zod/v4").ZodUnion<readonly [import("zod/v4").ZodString, import("zod/v4").ZodNumber]>;
78
+ value: import("zod/v4").ZodNumber;
79
+ }, import("zod/v4/core").$strip>>> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
80
+ rows: import("zod/v4").ZodArray<import("zod/v4").ZodAny>;
81
+ rowKey: import("zod/v4").ZodString;
82
+ colKey: import("zod/v4").ZodString;
83
+ field: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
84
+ agg: import("zod/v4").ZodOptional<import("zod/v4").ZodEnum<{
85
+ avg: "avg";
86
+ count: "count";
87
+ max: "max";
88
+ min: "min";
89
+ sum: "sum";
90
+ }>>;
91
+ }, import("zod/v4/core").$strip>, import("zod/v4").ZodArray<import("zod/v4").ZodRecord<import("zod/v4").ZodString, import("zod/v4").ZodUnion<readonly [import("zod/v4").ZodString, import("zod/v4").ZodNumber]>>>> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
92
+ rows: import("zod/v4").ZodArray<import("zod/v4").ZodAny>;
93
+ dateField: import("zod/v4").ZodString;
94
+ unit: import("zod/v4").ZodEnum<{
95
+ day: "day";
96
+ month: "month";
97
+ week: "week";
98
+ }>;
99
+ field: import("zod/v4").ZodOptional<import("zod/v4").ZodString>;
100
+ agg: import("zod/v4").ZodOptional<import("zod/v4").ZodEnum<{
101
+ avg: "avg";
102
+ count: "count";
103
+ max: "max";
104
+ min: "min";
105
+ sum: "sum";
106
+ }>>;
107
+ }, import("zod/v4/core").$strip>, import("zod/v4").ZodArray<import("zod/v4").ZodObject<{
108
+ key: import("zod/v4").ZodUnion<readonly [import("zod/v4").ZodString, import("zod/v4").ZodNumber]>;
109
+ value: import("zod/v4").ZodNumber;
110
+ }, import("zod/v4/core").$strip>>> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
111
+ rows: import("zod/v4").ZodArray<import("zod/v4").ZodAny>;
112
+ field: import("zod/v4").ZodString;
113
+ }, import("zod/v4/core").$strip>, import("zod/v4").ZodArray<import("zod/v4").ZodAny>> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
114
+ current: import("zod/v4").ZodNumber;
115
+ previous: import("zod/v4").ZodNumber;
116
+ }, import("zod/v4/core").$strip>, import("zod/v4").ZodNullable<import("zod/v4").ZodNumber>> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
117
+ values: import("zod/v4").ZodArray<import("zod/v4").ZodNumber>;
118
+ bins: import("zod/v4").ZodNumber;
119
+ min: import("zod/v4").ZodOptional<import("zod/v4").ZodNumber>;
120
+ max: import("zod/v4").ZodOptional<import("zod/v4").ZodNumber>;
121
+ }, import("zod/v4/core").$strip>, import("zod/v4").ZodArray<import("zod/v4").ZodObject<{
122
+ key: import("zod/v4").ZodString;
123
+ value: import("zod/v4").ZodNumber;
124
+ start: import("zod/v4").ZodNumber;
125
+ end: import("zod/v4").ZodNumber;
126
+ }, import("zod/v4/core").$strip>>> | import("@openuidev/lang-core").DefinedFunction<import("zod/v4").ZodObject<{
127
+ values: import("zod/v4").ZodArray<import("zod/v4").ZodNumber>;
128
+ }, import("zod/v4/core").$strip>, import("zod/v4").ZodObject<{
129
+ count: import("zod/v4").ZodNumber;
130
+ min: import("zod/v4").ZodNumber;
131
+ max: import("zod/v4").ZodNumber;
132
+ mean: import("zod/v4").ZodNumber;
133
+ median: import("zod/v4").ZodNumber;
134
+ stdev: import("zod/v4").ZodNumber;
135
+ }, import("zod/v4/core").$strip>>)[];
136
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/openui/functions/index.ts"],"names":[],"mappings":"AAOA;;;;;GAKG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oCAAkH,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { colorFunctions as o } from "./colors.js";
2
+ import { dataFunctions as t } from "./data.js";
3
+ import { dateFunctions as n } from "./dates.js";
4
+ import { listFunctions as r } from "./lists.js";
5
+ import { numberFunctions as i } from "./numbers.js";
6
+ import { textFunctions as m } from "./text.js";
7
+ const e = [...r, ...i, ...m, ...o, ...n, ...t];
8
+ export {
9
+ e as functions
10
+ };
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../src/openui/functions/index.ts"],"sourcesContent":["import { colorFunctions } from \"./colors\";\nimport { dataFunctions } from \"./data\";\nimport { dateFunctions } from \"./dates\";\nimport { listFunctions } from \"./lists\";\nimport { numberFunctions } from \"./numbers\";\nimport { textFunctions } from \"./text\";\n\n/**\n * Generic functions the model calls as @Name(args) to compute inside a page:\n * edit lists held in $variables, do the math, format text and dates, and\n * shape Query rows for charts. They are pure except @Random, @Pick, @Shuffle\n * and @Now. Bad arguments, or a throw, make a call evaluate to null.\n */\nexport const functions = [...listFunctions, ...numberFunctions, ...textFunctions, ...colorFunctions, ...dateFunctions, ...dataFunctions];\n"],"names":["functions","listFunctions","numberFunctions","textFunctions","colorFunctions","dateFunctions","dataFunctions"],"mappings":";;;;;;AAaO,MAAMA,IAAY,CAAC,GAAGC,GAAe,GAAGC,GAAiB,GAAGC,GAAe,GAAGC,GAAgB,GAAGC,GAAe,GAAGC,CAAa;"}
@@ -0,0 +1,102 @@
1
+ import { z } from "zod/v4";
2
+ export declare const Append: import("@openuidev/lang-core").DefinedFunction<z.ZodObject<{
3
+ list: z.ZodArray<z.ZodAny>;
4
+ item: z.ZodAny;
5
+ }, z.core.$strip>, z.ZodArray<z.ZodAny>>;
6
+ export declare const Prepend: import("@openuidev/lang-core").DefinedFunction<z.ZodObject<{
7
+ list: z.ZodArray<z.ZodAny>;
8
+ item: z.ZodAny;
9
+ }, z.core.$strip>, z.ZodArray<z.ZodAny>>;
10
+ export declare const Concat: import("@openuidev/lang-core").DefinedFunction<z.ZodObject<{
11
+ list: z.ZodArray<z.ZodAny>;
12
+ more: z.ZodArray<z.ZodAny>;
13
+ }, z.core.$strip>, z.ZodArray<z.ZodAny>>;
14
+ export declare const Remove: import("@openuidev/lang-core").DefinedFunction<z.ZodObject<{
15
+ list: z.ZodArray<z.ZodAny>;
16
+ field: z.ZodString;
17
+ value: z.ZodAny;
18
+ }, z.core.$strip>, z.ZodArray<z.ZodAny>>;
19
+ export declare const RemoveAt: import("@openuidev/lang-core").DefinedFunction<z.ZodObject<{
20
+ list: z.ZodArray<z.ZodAny>;
21
+ index: z.ZodNumber;
22
+ }, z.core.$strip>, z.ZodArray<z.ZodAny>>;
23
+ export declare const Update: import("@openuidev/lang-core").DefinedFunction<z.ZodObject<{
24
+ list: z.ZodArray<z.ZodAny>;
25
+ field: z.ZodString;
26
+ value: z.ZodAny;
27
+ setField: z.ZodString;
28
+ setValue: z.ZodAny;
29
+ }, z.core.$strip>, z.ZodArray<z.ZodAny>>;
30
+ export declare const Toggle: import("@openuidev/lang-core").DefinedFunction<z.ZodObject<{
31
+ list: z.ZodArray<z.ZodAny>;
32
+ item: z.ZodAny;
33
+ }, z.core.$strip>, z.ZodArray<z.ZodAny>>;
34
+ export declare const Includes: import("@openuidev/lang-core").DefinedFunction<z.ZodObject<{
35
+ list: z.ZodUnion<readonly [z.ZodArray<z.ZodAny>, z.ZodString]>;
36
+ item: z.ZodAny;
37
+ }, z.core.$strip>, z.ZodBoolean>;
38
+ export declare const Find: import("@openuidev/lang-core").DefinedFunction<z.ZodObject<{
39
+ list: z.ZodArray<z.ZodAny>;
40
+ field: z.ZodString;
41
+ value: z.ZodAny;
42
+ }, z.core.$strip>, z.ZodAny>;
43
+ export declare const IndexOf: import("@openuidev/lang-core").DefinedFunction<z.ZodObject<{
44
+ list: z.ZodArray<z.ZodAny>;
45
+ item: z.ZodAny;
46
+ }, z.core.$strip>, z.ZodNumber>;
47
+ export declare const Take: import("@openuidev/lang-core").DefinedFunction<z.ZodObject<{
48
+ list: z.ZodArray<z.ZodAny>;
49
+ n: z.ZodNumber;
50
+ }, z.core.$strip>, z.ZodArray<z.ZodAny>>;
51
+ export declare const Slice: import("@openuidev/lang-core").DefinedFunction<z.ZodObject<{
52
+ list: z.ZodUnion<readonly [z.ZodArray<z.ZodAny>, z.ZodString]>;
53
+ start: z.ZodNumber;
54
+ end: z.ZodOptional<z.ZodNumber>;
55
+ }, z.core.$strip>, z.ZodUnion<readonly [z.ZodArray<z.ZodAny>, z.ZodString]>>;
56
+ export declare const Unique: import("@openuidev/lang-core").DefinedFunction<z.ZodObject<{
57
+ list: z.ZodArray<z.ZodAny>;
58
+ }, z.core.$strip>, z.ZodArray<z.ZodAny>>;
59
+ export declare const Reverse: import("@openuidev/lang-core").DefinedFunction<z.ZodObject<{
60
+ list: z.ZodArray<z.ZodAny>;
61
+ }, z.core.$strip>, z.ZodArray<z.ZodAny>>;
62
+ export declare const Range: import("@openuidev/lang-core").DefinedFunction<z.ZodObject<{
63
+ start: z.ZodNumber;
64
+ end: z.ZodNumber;
65
+ step: z.ZodOptional<z.ZodNumber>;
66
+ }, z.core.$strip>, z.ZodArray<z.ZodNumber>>;
67
+ export declare const Pick: import("@openuidev/lang-core").DefinedFunction<z.ZodObject<{
68
+ list: z.ZodArray<z.ZodAny>;
69
+ }, z.core.$strip>, z.ZodAny>;
70
+ export declare const Shuffle: import("@openuidev/lang-core").DefinedFunction<z.ZodObject<{
71
+ list: z.ZodArray<z.ZodAny>;
72
+ }, z.core.$strip>, z.ZodArray<z.ZodAny>>;
73
+ export declare const Flatten: import("@openuidev/lang-core").DefinedFunction<z.ZodObject<{
74
+ list: z.ZodArray<z.ZodAny>;
75
+ }, z.core.$strip>, z.ZodArray<z.ZodAny>>;
76
+ export declare const Chunk: import("@openuidev/lang-core").DefinedFunction<z.ZodObject<{
77
+ list: z.ZodArray<z.ZodAny>;
78
+ size: z.ZodNumber;
79
+ }, z.core.$strip>, z.ZodArray<z.ZodArray<z.ZodAny>>>;
80
+ export declare const listFunctions: (import("@openuidev/lang-core").DefinedFunction<z.ZodObject<{
81
+ list: z.ZodUnion<readonly [z.ZodArray<z.ZodAny>, z.ZodString]>;
82
+ item: z.ZodAny;
83
+ }, z.core.$strip>, z.ZodBoolean> | import("@openuidev/lang-core").DefinedFunction<z.ZodObject<{
84
+ list: z.ZodArray<z.ZodAny>;
85
+ item: z.ZodAny;
86
+ }, z.core.$strip>, z.ZodNumber> | import("@openuidev/lang-core").DefinedFunction<z.ZodObject<{
87
+ list: z.ZodUnion<readonly [z.ZodArray<z.ZodAny>, z.ZodString]>;
88
+ start: z.ZodNumber;
89
+ end: z.ZodOptional<z.ZodNumber>;
90
+ }, z.core.$strip>, z.ZodUnion<readonly [z.ZodArray<z.ZodAny>, z.ZodString]>> | import("@openuidev/lang-core").DefinedFunction<z.ZodObject<{
91
+ list: z.ZodArray<z.ZodAny>;
92
+ }, z.core.$strip>, z.ZodArray<z.ZodAny>> | import("@openuidev/lang-core").DefinedFunction<z.ZodObject<{
93
+ start: z.ZodNumber;
94
+ end: z.ZodNumber;
95
+ step: z.ZodOptional<z.ZodNumber>;
96
+ }, z.core.$strip>, z.ZodArray<z.ZodNumber>> | import("@openuidev/lang-core").DefinedFunction<z.ZodObject<{
97
+ list: z.ZodArray<z.ZodAny>;
98
+ }, z.core.$strip>, z.ZodAny> | import("@openuidev/lang-core").DefinedFunction<z.ZodObject<{
99
+ list: z.ZodArray<z.ZodAny>;
100
+ size: z.ZodNumber;
101
+ }, z.core.$strip>, z.ZodArray<z.ZodArray<z.ZodAny>>>)[];
102
+ //# sourceMappingURL=lists.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lists.d.ts","sourceRoot":"","sources":["../../../src/openui/functions/lists.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAK3B,eAAO,MAAM,MAAM;;;wCAMjB,CAAC;AAEH,eAAO,MAAM,OAAO;;;wCAMlB,CAAC;AAEH,eAAO,MAAM,MAAM;;;wCASjB,CAAC;AAEH,eAAO,MAAM,MAAM;;;;wCAMjB,CAAC;AAEH,eAAO,MAAM,QAAQ;;;wCASnB,CAAC;AAEH,eAAO,MAAM,MAAM;;;;;;wCAWjB,CAAC;AAEH,eAAO,MAAM,MAAM;;;wCAMjB,CAAC;AAEH,eAAO,MAAM,QAAQ;;;gCAOnB,CAAC;AAEH,eAAO,MAAM,IAAI;;;;4BAMf,CAAC;AAEH,eAAO,MAAM,OAAO;;;+BAMlB,CAAC;AAEH,eAAO,MAAM,IAAI;;;wCASf,CAAC;AAEH,eAAO,MAAM,KAAK;;;;4EAShB,CAAC;AAEH,eAAO,MAAM,MAAM;;wCAcjB,CAAC;AAEH,eAAO,MAAM,OAAO;;wCAMlB,CAAC;AAEH,eAAO,MAAM,KAAK;;;;2CAahB,CAAC;AAEH,eAAO,MAAM,IAAI;;4BAMf,CAAC;AAEH,eAAO,MAAM,OAAO;;wCAalB,CAAC;AAEH,eAAO,MAAM,OAAO;;wCAUlB,CAAC;AAEH,eAAO,MAAM,KAAK;;;oDAYhB,CAAC;AAEH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;uDAGzB,CAAC"}
@@ -0,0 +1,305 @@
1
+ import { defineFunction as i } from "@openuidev/react-lang";
2
+ import { list as r, MAX_ITEMS as f, same as u, read as h } from "./shared.js";
3
+ import { object as o, boolean as y, union as p, any as a, number as c, array as w, string as d } from "../../node_modules/zod/v4/classic/schemas.js";
4
+ const v = (e, t) => e < 0 ? t + e : e, b = i({
5
+ name: "Append",
6
+ description: "Copy of the list with item added at the end",
7
+ params: o({
8
+ list: r(),
9
+ item: a()
10
+ }),
11
+ returns: r(),
12
+ fn: ({
13
+ list: e,
14
+ item: t
15
+ }) => [...e, t]
16
+ }), M = i({
17
+ name: "Prepend",
18
+ description: "Copy of the list with item added at the start",
19
+ params: o({
20
+ list: r(),
21
+ item: a()
22
+ }),
23
+ returns: r(),
24
+ fn: ({
25
+ list: e,
26
+ item: t
27
+ }) => [t, ...e]
28
+ }), x = i({
29
+ name: "Concat",
30
+ description: "Joins two lists",
31
+ params: o({
32
+ list: r(),
33
+ more: r()
34
+ }),
35
+ returns: r(),
36
+ fn: ({
37
+ list: e,
38
+ more: t
39
+ }) => {
40
+ if (e.length + t.length > f) throw new Error(`more than ${f} items`);
41
+ return [...e, ...t];
42
+ }
43
+ }), A = i({
44
+ name: "Remove",
45
+ description: 'Copy without the items whose field equals value; field "" compares the items themselves',
46
+ params: o({
47
+ list: r(),
48
+ field: d(),
49
+ value: a()
50
+ }),
51
+ returns: r(),
52
+ fn: ({
53
+ list: e,
54
+ field: t,
55
+ value: n
56
+ }) => e.filter((s) => !u(h(s, t), n))
57
+ }), C = i({
58
+ name: "RemoveAt",
59
+ description: "Copy without the item at index (0-based; negative counts from the end)",
60
+ params: o({
61
+ list: r(),
62
+ index: c()
63
+ }),
64
+ returns: r(),
65
+ fn: ({
66
+ list: e,
67
+ index: t
68
+ }) => {
69
+ const n = v(Math.trunc(t), e.length);
70
+ return e.filter((s, l) => l !== n);
71
+ }
72
+ }), S = i({
73
+ name: "Update",
74
+ description: "Copy where items whose field equals value get setField set to setValue",
75
+ params: o({
76
+ list: r(),
77
+ field: d(),
78
+ value: a(),
79
+ setField: d(),
80
+ setValue: a()
81
+ }),
82
+ returns: r(),
83
+ fn: ({
84
+ list: e,
85
+ field: t,
86
+ value: n,
87
+ setField: s,
88
+ setValue: l
89
+ }) => e.map((m) => m && typeof m == "object" && !Array.isArray(m) && u(h(m, t), n) ? {
90
+ ...m,
91
+ [s]: l
92
+ } : m)
93
+ }), k = i({
94
+ name: "Toggle",
95
+ description: "Adds item if missing, removes it if present (a set of strings or numbers)",
96
+ params: o({
97
+ list: r(),
98
+ item: a()
99
+ }),
100
+ returns: r(),
101
+ fn: ({
102
+ list: e,
103
+ item: t
104
+ }) => e.some((n) => u(n, t)) ? e.filter((n) => !u(n, t)) : [...e, t]
105
+ }), F = i({
106
+ name: "Includes",
107
+ description: "True if the list has item, or the text contains it",
108
+ params: o({
109
+ list: p([r(), d()]),
110
+ item: a()
111
+ }),
112
+ returns: y(),
113
+ fn: ({
114
+ list: e,
115
+ item: t
116
+ }) => typeof e == "string" ? t != null && e.includes(String(t)) : e.some((n) => u(n, t))
117
+ }), I = i({
118
+ name: "Find",
119
+ description: "First item whose field equals value, or null",
120
+ params: o({
121
+ list: r(),
122
+ field: d(),
123
+ value: a()
124
+ }),
125
+ returns: a(),
126
+ fn: ({
127
+ list: e,
128
+ field: t,
129
+ value: n
130
+ }) => e.find((s) => u(h(s, t), n)) ?? null
131
+ }), R = i({
132
+ name: "IndexOf",
133
+ description: "Index of item in the list, or -1",
134
+ params: o({
135
+ list: r(),
136
+ item: a()
137
+ }),
138
+ returns: c(),
139
+ fn: ({
140
+ list: e,
141
+ item: t
142
+ }) => e.findIndex((n) => u(n, t))
143
+ }), T = i({
144
+ name: "Take",
145
+ description: "The first n items; a negative n takes the last n",
146
+ params: o({
147
+ list: r(),
148
+ n: c()
149
+ }),
150
+ returns: r(),
151
+ fn: ({
152
+ list: e,
153
+ n: t
154
+ }) => {
155
+ const n = Math.trunc(t);
156
+ return n >= 0 ? e.slice(0, n) : e.slice(n);
157
+ }
158
+ }), E = i({
159
+ name: "Slice",
160
+ description: "Items, or characters of text, from start up to end (not included); negative counts from the end",
161
+ params: o({
162
+ list: p([r(), d()]),
163
+ start: c(),
164
+ end: c().optional()
165
+ }),
166
+ returns: p([r(), d()]),
167
+ fn: ({
168
+ list: e,
169
+ start: t,
170
+ end: n
171
+ }) => {
172
+ const s = n === void 0 ? void 0 : Math.trunc(n);
173
+ return e.slice(Math.trunc(t), s);
174
+ }
175
+ }), N = i({
176
+ name: "Unique",
177
+ description: "Distinct items in first-seen order",
178
+ params: o({
179
+ list: r()
180
+ }),
181
+ returns: r(),
182
+ fn: ({
183
+ list: e
184
+ }) => {
185
+ const t = /* @__PURE__ */ new Set();
186
+ return e.filter((n) => {
187
+ const s = n !== null && typeof n == "object" ? `o:${JSON.stringify(n)}` : `p:${String(n)}`;
188
+ return t.has(s) ? !1 : (t.add(s), !0);
189
+ });
190
+ }
191
+ }), q = i({
192
+ name: "Reverse",
193
+ description: "Copy in reverse order",
194
+ params: o({
195
+ list: r()
196
+ }),
197
+ returns: r(),
198
+ fn: ({
199
+ list: e
200
+ }) => [...e].reverse()
201
+ }), P = i({
202
+ name: "Range",
203
+ description: "Numbers from start up to end (not included) by step (default 1), e.g. @Range(0, 3) is [0, 1, 2]",
204
+ params: o({
205
+ start: c(),
206
+ end: c(),
207
+ step: c().optional()
208
+ }),
209
+ returns: w(c()),
210
+ fn: ({
211
+ start: e,
212
+ end: t,
213
+ step: n = 1
214
+ }) => {
215
+ if (n === 0 || !Number.isFinite(n)) throw new Error("step must be a non-zero number");
216
+ const s = Math.max(0, Math.ceil((t - e) / n));
217
+ if (s > f) throw new Error(`more than ${f} items`);
218
+ const l = Number.isInteger(e) && Number.isInteger(n);
219
+ return Array.from({
220
+ length: s
221
+ }, (m, g) => l ? e + g * n : Number((e + g * n).toPrecision(12)));
222
+ }
223
+ }), $ = i({
224
+ name: "Pick",
225
+ description: "A random item, or null for an empty list; draws anew each time, so call it inside @Set",
226
+ params: o({
227
+ list: r()
228
+ }),
229
+ returns: a(),
230
+ fn: ({
231
+ list: e
232
+ }) => e.length ? e[Math.floor(Math.random() * e.length)] : null
233
+ }), j = i({
234
+ name: "Shuffle",
235
+ description: "Copy in random order; call it inside @Set",
236
+ params: o({
237
+ list: r()
238
+ }),
239
+ returns: r(),
240
+ fn: ({
241
+ list: e
242
+ }) => {
243
+ const t = [...e];
244
+ for (let n = t.length - 1; n > 0; n--) {
245
+ const s = Math.floor(Math.random() * (n + 1));
246
+ [t[n], t[s]] = [t[s], t[n]];
247
+ }
248
+ return t;
249
+ }
250
+ }), z = i({
251
+ name: "Flatten",
252
+ description: "One list from a list of lists, e.g. [[1, 2], [3]] is [1, 2, 3]",
253
+ params: o({
254
+ list: r()
255
+ }),
256
+ returns: r(),
257
+ fn: ({
258
+ list: e
259
+ }) => {
260
+ const t = e.flatMap((n) => Array.isArray(n) ? n : [n]);
261
+ if (t.length > f) throw new Error(`more than ${f} items`);
262
+ return t;
263
+ }
264
+ }), O = i({
265
+ name: "Chunk",
266
+ description: "The list cut into lists of size items, e.g. for weeks of 7 days or pages",
267
+ params: o({
268
+ list: r(),
269
+ size: c()
270
+ }),
271
+ returns: w(r()),
272
+ fn: ({
273
+ list: e,
274
+ size: t
275
+ }) => {
276
+ const n = Math.trunc(t);
277
+ if (n < 1) throw new Error("size must be 1 or more");
278
+ const s = [];
279
+ for (let l = 0; l < e.length; l += n) s.push(e.slice(l, l + n));
280
+ return s;
281
+ }
282
+ }), V = [b, M, x, A, C, S, k, F, I, R, T, E, N, q, P, $, j, z, O];
283
+ export {
284
+ b as Append,
285
+ O as Chunk,
286
+ x as Concat,
287
+ I as Find,
288
+ z as Flatten,
289
+ F as Includes,
290
+ R as IndexOf,
291
+ $ as Pick,
292
+ M as Prepend,
293
+ P as Range,
294
+ A as Remove,
295
+ C as RemoveAt,
296
+ q as Reverse,
297
+ j as Shuffle,
298
+ E as Slice,
299
+ T as Take,
300
+ k as Toggle,
301
+ N as Unique,
302
+ S as Update,
303
+ V as listFunctions
304
+ };
305
+ //# sourceMappingURL=lists.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lists.js","sources":["../../../src/openui/functions/lists.ts"],"sourcesContent":["import { defineFunction } from \"@openuidev/react-lang\";\nimport { z } from \"zod/v4\";\nimport { list, MAX_ITEMS, read, same } from \"./shared\";\n\nconst index = (i: number, length: number) => (i < 0 ? length + i : i);\n\nexport const Append = defineFunction({\n name: \"Append\",\n description: \"Copy of the list with item added at the end\",\n params: z.object({ list: list(), item: z.any() }),\n returns: list(),\n fn: ({ list, item }) => [...list, item],\n});\n\nexport const Prepend = defineFunction({\n name: \"Prepend\",\n description: \"Copy of the list with item added at the start\",\n params: z.object({ list: list(), item: z.any() }),\n returns: list(),\n fn: ({ list, item }) => [item, ...list],\n});\n\nexport const Concat = defineFunction({\n name: \"Concat\",\n description: \"Joins two lists\",\n params: z.object({ list: list(), more: list() }),\n returns: list(),\n fn: ({ list, more }) => {\n if (list.length + more.length > MAX_ITEMS) throw new Error(`more than ${MAX_ITEMS} items`);\n return [...list, ...more];\n },\n});\n\nexport const Remove = defineFunction({\n name: \"Remove\",\n description: 'Copy without the items whose field equals value; field \"\" compares the items themselves',\n params: z.object({ list: list(), field: z.string(), value: z.any() }),\n returns: list(),\n fn: ({ list, field, value }) => list.filter((item) => !same(read(item, field), value)),\n});\n\nexport const RemoveAt = defineFunction({\n name: \"RemoveAt\",\n description: \"Copy without the item at index (0-based; negative counts from the end)\",\n params: z.object({ list: list(), index: z.number() }),\n returns: list(),\n fn: ({ list, index: at }) => {\n const i = index(Math.trunc(at), list.length);\n return list.filter((_, j) => j !== i);\n },\n});\n\nexport const Update = defineFunction({\n name: \"Update\",\n description: \"Copy where items whose field equals value get setField set to setValue\",\n params: z.object({ list: list(), field: z.string(), value: z.any(), setField: z.string(), setValue: z.any() }),\n returns: list(),\n fn: ({ list, field, value, setField, setValue }) =>\n list.map((item) =>\n item && typeof item === \"object\" && !Array.isArray(item) && same(read(item, field), value)\n ? { ...item, [setField]: setValue }\n : item,\n ),\n});\n\nexport const Toggle = defineFunction({\n name: \"Toggle\",\n description: \"Adds item if missing, removes it if present (a set of strings or numbers)\",\n params: z.object({ list: list(), item: z.any() }),\n returns: list(),\n fn: ({ list, item }) => (list.some((x) => same(x, item)) ? list.filter((x) => !same(x, item)) : [...list, item]),\n});\n\nexport const Includes = defineFunction({\n name: \"Includes\",\n description: \"True if the list has item, or the text contains it\",\n params: z.object({ list: z.union([list(), z.string()]), item: z.any() }),\n returns: z.boolean(),\n fn: ({ list, item }) =>\n typeof list === \"string\" ? item != null && list.includes(String(item)) : list.some((x) => same(x, item)),\n});\n\nexport const Find = defineFunction({\n name: \"Find\",\n description: \"First item whose field equals value, or null\",\n params: z.object({ list: list(), field: z.string(), value: z.any() }),\n returns: z.any(),\n fn: ({ list, field, value }) => list.find((item) => same(read(item, field), value)) ?? null,\n});\n\nexport const IndexOf = defineFunction({\n name: \"IndexOf\",\n description: \"Index of item in the list, or -1\",\n params: z.object({ list: list(), item: z.any() }),\n returns: z.number(),\n fn: ({ list, item }) => list.findIndex((x) => same(x, item)),\n});\n\nexport const Take = defineFunction({\n name: \"Take\",\n description: \"The first n items; a negative n takes the last n\",\n params: z.object({ list: list(), n: z.number() }),\n returns: list(),\n fn: ({ list, n }) => {\n const k = Math.trunc(n);\n return k >= 0 ? list.slice(0, k) : list.slice(k);\n },\n});\n\nexport const Slice = defineFunction({\n name: \"Slice\",\n description: \"Items, or characters of text, from start up to end (not included); negative counts from the end\",\n params: z.object({ list: z.union([list(), z.string()]), start: z.number(), end: z.number().optional() }),\n returns: z.union([list(), z.string()]),\n fn: ({ list, start, end }) => {\n const to = end === undefined ? undefined : Math.trunc(end);\n return typeof list === \"string\" ? list.slice(Math.trunc(start), to) : list.slice(Math.trunc(start), to);\n },\n});\n\nexport const Unique = defineFunction({\n name: \"Unique\",\n description: \"Distinct items in first-seen order\",\n params: z.object({ list: list() }),\n returns: list(),\n fn: ({ list }) => {\n const seen = new Set<string>();\n return list.filter((item) => {\n const key = item !== null && typeof item === \"object\" ? `o:${JSON.stringify(item)}` : `p:${String(item)}`;\n if (seen.has(key)) return false;\n seen.add(key);\n return true;\n });\n },\n});\n\nexport const Reverse = defineFunction({\n name: \"Reverse\",\n description: \"Copy in reverse order\",\n params: z.object({ list: list() }),\n returns: list(),\n fn: ({ list }) => [...list].reverse(),\n});\n\nexport const Range = defineFunction({\n name: \"Range\",\n description: \"Numbers from start up to end (not included) by step (default 1), e.g. @Range(0, 3) is [0, 1, 2]\",\n params: z.object({ start: z.number(), end: z.number(), step: z.number().optional() }),\n returns: z.array(z.number()),\n fn: ({ start, end, step = 1 }) => {\n if (step === 0 || !Number.isFinite(step)) throw new Error(\"step must be a non-zero number\");\n const count = Math.max(0, Math.ceil((end - start) / step));\n if (count > MAX_ITEMS) throw new Error(`more than ${MAX_ITEMS} items`);\n const whole = Number.isInteger(start) && Number.isInteger(step);\n // Rounding keeps fractional steps clean: 0.1 * 3 is 0.30000000000000004\n return Array.from({ length: count }, (_, i) => (whole ? start + i * step : Number((start + i * step).toPrecision(12))));\n },\n});\n\nexport const Pick = defineFunction({\n name: \"Pick\",\n description: \"A random item, or null for an empty list; draws anew each time, so call it inside @Set\",\n params: z.object({ list: list() }),\n returns: z.any(),\n fn: ({ list }) => (list.length ? list[Math.floor(Math.random() * list.length)] : null),\n});\n\nexport const Shuffle = defineFunction({\n name: \"Shuffle\",\n description: \"Copy in random order; call it inside @Set\",\n params: z.object({ list: list() }),\n returns: list(),\n fn: ({ list }) => {\n const out = [...list];\n for (let i = out.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n [out[i], out[j]] = [out[j], out[i]];\n }\n return out;\n },\n});\n\nexport const Flatten = defineFunction({\n name: \"Flatten\",\n description: \"One list from a list of lists, e.g. [[1, 2], [3]] is [1, 2, 3]\",\n params: z.object({ list: list() }),\n returns: list(),\n fn: ({ list }) => {\n const out = list.flatMap((item) => (Array.isArray(item) ? item : [item]));\n if (out.length > MAX_ITEMS) throw new Error(`more than ${MAX_ITEMS} items`);\n return out;\n },\n});\n\nexport const Chunk = defineFunction({\n name: \"Chunk\",\n description: \"The list cut into lists of size items, e.g. for weeks of 7 days or pages\",\n params: z.object({ list: list(), size: z.number() }),\n returns: z.array(list()),\n fn: ({ list, size }) => {\n const n = Math.trunc(size);\n if (n < 1) throw new Error(\"size must be 1 or more\");\n const out: unknown[][] = [];\n for (let i = 0; i < list.length; i += n) out.push(list.slice(i, i + n));\n return out;\n },\n});\n\nexport const listFunctions = [\n Append, Prepend, Concat, Remove, RemoveAt, Update, Toggle, Includes, Find, IndexOf,\n Take, Slice, Unique, Reverse, Range, Pick, Shuffle, Flatten, Chunk,\n];\n"],"names":["index","i","length","Append","defineFunction","z.object","list","z.any","item","Prepend","Concat","more","MAX_ITEMS","Remove","z.string","field","value","same","read","RemoveAt","z.number","at","_","j","Update","setField","setValue","Toggle","x","Includes","z.union","z.boolean","Find","IndexOf","Take","n","k","Slice","start","end","to","Unique","seen","key","Reverse","Range","z.array","step","count","whole","Pick","Shuffle","out","Flatten","Chunk","size","listFunctions"],"mappings":"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"}