@nordcraft/std-lib 1.0.32 → 1.0.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/lib.ts CHANGED
@@ -1,232 +1,190 @@
1
1
 
2
2
  export const formulas = {
3
- "@toddle/split": {
4
- "name": "Split",
5
- "description": "Split a String into an Array of smaller strings each time a delimiter occurs. The delimiter will not be part of the output",
3
+ "@toddle/not": {
4
+ "name": "Not",
5
+ "description": "Get the Boolean opposite of an input value.",
6
6
  "arguments": [
7
7
  {
8
8
  "name": "Input",
9
9
  "formula": {
10
10
  "type": "value",
11
- "value": ""
11
+ "value": true
12
12
  },
13
- "description": "The String to split.",
13
+ "description": "The input value.",
14
14
  "type": {
15
- "type": "String"
15
+ "type": "Boolean"
16
16
  }
17
- },
17
+ }
18
+ ],
19
+ "output": {
20
+ "description": "Returns True if the input value is False, and False if the input value is True.",
21
+ "type": {
22
+ "type": "Boolean"
23
+ }
24
+ }
25
+ },
26
+ "@toddle/trim": {
27
+ "name": "Trim",
28
+ "description": "Remove any leading and trailing white spaces from a String.",
29
+ "arguments": [
18
30
  {
19
- "name": "Delimiter",
31
+ "name": "String",
20
32
  "formula": {
21
33
  "type": "value",
22
34
  "value": ""
23
35
  },
24
- "description": "The string to split by.",
36
+ "description": "The String to trim.",
25
37
  "type": {
26
38
  "type": "String"
27
39
  }
28
40
  }
29
41
  ],
30
42
  "output": {
31
- "description": "An array of Strings.",
43
+ "description": "The trimmed String.",
32
44
  "type": {
33
- "type": "Array",
34
- "ofType": {
35
- "type": "String"
36
- }
45
+ "type": "String"
37
46
  }
38
47
  }
39
48
  },
40
- "@toddle/size": {
41
- "name": "Size",
42
- "description": "Get the size of an Array, Object or String.",
49
+ "@toddle/lowercase": {
50
+ "name": "Lower case",
51
+ "description": "Convert a string to lowercase.",
43
52
  "arguments": [
44
53
  {
45
- "name": "Collection",
54
+ "name": "String",
46
55
  "formula": {
47
56
  "type": "value",
48
- "value": [
49
- 1,
50
- 2,
51
- 3
52
- ]
57
+ "value": "string"
53
58
  },
54
- "description": "The collection to get the size of.",
59
+ "description": "Input String",
55
60
  "type": {
56
- "type": "Array \\| Object \\| String"
61
+ "type": "String"
57
62
  }
58
63
  }
59
64
  ],
60
65
  "output": {
61
- "description": "The size of the collection.",
66
+ "description": "The input String with all characters converted to lowercase.",
62
67
  "type": {
63
- "type": "Number"
68
+ "type": "String"
64
69
  }
65
70
  }
66
71
  },
67
- "@toddle/includes": {
68
- "name": "Includes",
69
- "description": "Test if an Array or String includes a specific item or value.",
72
+ "@toddle/concatenate": {
73
+ "name": "Concatenate",
74
+ "description": "Concatenate two or more values.",
70
75
  "arguments": [
71
76
  {
72
- "name": "Array",
77
+ "name": "0",
73
78
  "formula": {
74
79
  "type": "value",
75
80
  "value": ""
76
81
  },
77
- "description": "The value to search.",
78
82
  "type": {
79
83
  "type": "Array \\| String"
80
84
  }
85
+ }
86
+ ],
87
+ "variableArguments": true,
88
+ "output": {
89
+ "type": {
90
+ "type": "Array \\| String"
81
91
  },
92
+ "description": "Returns a String or Array containing all the specified input values."
93
+ }
94
+ },
95
+ "@toddle/timestamp": {
96
+ "name": "Timestamp",
97
+ "description": "Get the timestamp from a Date, e.g. 1633462980000.",
98
+ "arguments": [
82
99
  {
83
- "name": "Item",
100
+ "name": "Date",
101
+ "description": "The date to get the timestamp from.",
102
+ "type": {
103
+ "type": "Date"
104
+ },
84
105
  "formula": {
85
106
  "type": "value",
86
- "value": ""
87
- },
88
- "description": "The item or value to search for.",
89
- "type": {
90
- "type": "Any"
107
+ "value": null
91
108
  }
92
109
  }
93
110
  ],
94
111
  "output": {
95
- "description": "Returns True if the item or value exists in the Array or string. Returns False if no match is found.",
112
+ "description": "The timestamp from the date input.",
96
113
  "type": {
97
- "type": "Boolean"
114
+ "type": "Number"
98
115
  }
99
116
  }
100
117
  },
101
- "@toddle/lessThan": {
102
- "name": "Less than",
103
- "description": "Compute if a value is smaller than another value.",
118
+ "@toddle/indexOf": {
119
+ "name": "Index of",
120
+ "description": "Find the index of a specific item in an Array or String.",
104
121
  "arguments": [
105
122
  {
106
- "name": "First",
123
+ "name": "Array",
107
124
  "formula": {
108
125
  "type": "value",
109
126
  "value": ""
110
127
  },
111
- "description": "First Number to be compared.",
128
+ "description": "The value to search.",
112
129
  "type": {
113
- "type": "Number"
130
+ "type": "Array \\| String"
114
131
  }
115
132
  },
116
133
  {
117
- "name": "Second",
134
+ "name": "Item",
118
135
  "formula": {
119
136
  "type": "value",
120
137
  "value": ""
121
138
  },
122
- "description": "Second Number to be compared.",
139
+ "description": "The items to search for.",
123
140
  "type": {
124
- "type": "Number"
141
+ "type": "Any"
125
142
  }
126
143
  }
127
144
  ],
128
145
  "output": {
129
- "description": "Returns True if the First Number is smaller than the second Number, otherwise it returns False.",
130
- "type": {
131
- "type": "Boolean"
132
- }
133
- }
134
- },
135
- "@toddle/userAgent": {
136
- "name": "User Agent",
137
- "description": "Get the user agent for the browser or from the User-Agent header on the server",
138
- "arguments": [],
139
- "output": {
140
- "description": "The user agent string.",
146
+ "description": "If the item exists in the Array, the index of that item is returned. If the item is not found, -1 is returned.",
141
147
  "type": {
142
- "type": "String"
143
- }
144
- }
145
- },
146
- "@toddle/replaceAll": {
147
- "name": "Replace all",
148
- "description": "Replace all occurrences of a substring in a String.",
149
- "arguments": [
150
- {
151
- "name": "Input",
152
- "description": "The input String to search in.",
153
- "type": {
154
- "type": "String"
155
- },
156
- "required": true
157
- },
158
- {
159
- "name": "Search",
160
- "description": "The substring to search for.",
161
- "type": {
162
- "type": "String"
163
- },
164
- "required": true
165
- },
166
- {
167
- "name": "Replace with",
168
- "description": "The replacement value.",
169
- "type": {
170
- "type": "String"
171
- },
172
- "required": true
148
+ "type": "Number"
173
149
  }
174
- ],
175
- "output": {
176
- "type": {
177
- "type": "String"
178
- },
179
- "name": "Output",
180
- "description": "The resulting String."
181
150
  }
182
151
  },
183
- "@toddle/unique": {
184
- "name": "Unique",
185
- "description": "Remove duplicate values from an Array.",
152
+ "@toddle/squareRoot": {
153
+ "name": "Square root",
154
+ "description": "Get the square root of a Number.",
186
155
  "arguments": [
187
156
  {
188
- "name": "Array",
157
+ "name": "Number",
189
158
  "formula": {
190
159
  "type": "value",
191
- "value": []
160
+ "value": 1
192
161
  },
162
+ "description": "The input Number.",
193
163
  "type": {
194
- "type": "Array"
195
- },
196
- "description": "The input Array."
164
+ "type": "Number"
165
+ }
197
166
  }
198
167
  ],
199
168
  "output": {
200
- "description": "The input Array with all duplicate values removed.",
169
+ "description": "The square root of the input Number.",
201
170
  "type": {
202
- "type": "Array"
171
+ "type": "Number"
203
172
  }
204
173
  }
205
174
  },
206
- "@toddle/round": {
207
- "name": "Round",
208
- "description": "Round a Number to the nearest decimal point.",
175
+ "@toddle/logarithm": {
176
+ "name": "Logarithm",
177
+ "description": "Return the logarithm of a Number.",
209
178
  "arguments": [
210
179
  {
211
- "name": "Input",
212
- "description": "Number to round.",
213
- "type": {
214
- "type": "Number"
215
- },
180
+ "name": "Number",
216
181
  "formula": {
217
182
  "type": "value",
218
183
  "value": 1
219
- }
220
- },
221
- {
222
- "name": "Decimals",
223
- "description": "Number of decimals to round to.",
184
+ },
185
+ "description": "A Number greater than or equal to 0.",
224
186
  "type": {
225
187
  "type": "Number"
226
- },
227
- "formula": {
228
- "type": "value",
229
- "value": 0
230
188
  }
231
189
  }
232
190
  ],
@@ -234,242 +192,358 @@
234
192
  "type": {
235
193
  "type": "Number"
236
194
  },
237
- "description": "The rounded Number."
195
+ "description": "The natural logarithm of the Number."
238
196
  }
239
197
  },
240
- "@toddle/parseURL": {
241
- "name": "Parse URL",
242
- "description": "Parse a URL",
198
+ "@toddle/range": {
199
+ "name": "Range",
200
+ "description": "Create an Array of numbers between a Min and Max value.",
243
201
  "arguments": [
244
202
  {
245
- "name": "URL",
246
203
  "formula": {
247
204
  "type": "value",
248
- "value": null
205
+ "value": 0
249
206
  },
250
- "description": "The URL value to parse.",
207
+ "name": "Min",
208
+ "description": "The smallest value in the list.",
251
209
  "type": {
252
- "type": "String"
210
+ "type": "Number"
253
211
  }
254
212
  },
255
213
  {
256
- "name": "Base",
214
+ "name": "Max",
257
215
  "formula": {
258
216
  "type": "value",
259
- "value": null
217
+ "value": 10
260
218
  },
261
- "description": "An optional base for the URL. Use this to resolve relative URLs.",
219
+ "description": "The largest value in the list.",
262
220
  "type": {
263
- "type": "String"
221
+ "type": "Number"
264
222
  }
265
223
  }
266
224
  ],
267
225
  "output": {
268
- "description": "An object containing: \"hostname\", \"searchParams\", \"path\", \"hash\", \"href\", \"protocol\", \"port\", \"origin\"",
226
+ "description": "An Array containing all the numbers between Min and Max, inclusive.",
269
227
  "type": {
270
- "type": "Object"
228
+ "type": "Array"
271
229
  }
272
230
  }
273
231
  },
274
- "@toddle/getFromSessionStorage": {
275
- "name": "Get from Session Storage",
276
- "description": "Read a value from session storage with the provided key.",
277
- "cache": false,
232
+ "@toddle/size": {
233
+ "name": "Size",
234
+ "description": "Get the size of an Array, Object or String.",
278
235
  "arguments": [
279
236
  {
280
- "name": "Key",
237
+ "name": "Collection",
281
238
  "formula": {
282
239
  "type": "value",
283
- "value": null
240
+ "value": [
241
+ 1,
242
+ 2,
243
+ 3
244
+ ]
284
245
  },
285
- "description": "The key to read from session storage.",
246
+ "description": "The collection to get the size of.",
286
247
  "type": {
287
- "type": "String"
248
+ "type": "Array \\| Object \\| String"
288
249
  }
289
250
  }
290
251
  ],
291
252
  "output": {
292
- "description": "The value found in session storage.",
253
+ "description": "The size of the collection.",
293
254
  "type": {
294
- "type": "Any"
255
+ "type": "Number"
295
256
  }
296
257
  }
297
258
  },
298
- "@toddle/squareRoot": {
299
- "name": "Square root",
300
- "description": "Get the square root of a Number.",
259
+ "@toddle/matches": {
260
+ "name": "Matches",
261
+ "description": "Finds the (global) matches in a String based on a regular expression.",
301
262
  "arguments": [
302
263
  {
303
- "name": "Number",
264
+ "name": "Input",
304
265
  "formula": {
305
266
  "type": "value",
306
- "value": 1
267
+ "value": ""
307
268
  },
308
- "description": "The input Number.",
269
+ "description": "The string to search for matches in.",
309
270
  "type": {
310
- "type": "Number"
271
+ "type": "String"
272
+ }
273
+ },
274
+ {
275
+ "name": "Regular expression",
276
+ "formula": {
277
+ "type": "value",
278
+ "value": ""
279
+ },
280
+ "description": "The regular expression to use for matching.",
281
+ "type": {
282
+ "type": "String"
283
+ }
284
+ },
285
+ {
286
+ "name": "Global search",
287
+ "formula": {
288
+ "type": "value",
289
+ "value": true
290
+ },
291
+ "description": "Test the regular expression against all possible matches in a string.",
292
+ "type": {
293
+ "type": "Boolean"
294
+ }
295
+ },
296
+ {
297
+ "name": "Case insensitive",
298
+ "formula": {
299
+ "type": "value",
300
+ "value": false
301
+ },
302
+ "description": "Ignore case while attempting a match in a string.",
303
+ "type": {
304
+ "type": "Boolean"
305
+ }
306
+ },
307
+ {
308
+ "name": "Multi line",
309
+ "formula": {
310
+ "type": "value",
311
+ "value": false
312
+ },
313
+ "description": "Treat multiline strings as multiple lines.",
314
+ "type": {
315
+ "type": "Boolean"
311
316
  }
312
317
  }
313
318
  ],
314
319
  "output": {
315
- "description": "The square root of the input Number.",
320
+ "description": "An Array of Strings",
316
321
  "type": {
317
- "type": "Number"
322
+ "type": "Array"
318
323
  }
319
324
  }
320
325
  },
321
- "@toddle/currentURL": {
322
- "name": "Current URL",
323
- "description": "Return the current URL of the browser. Use the \"Parse URL\" formula for working with the URL.",
326
+ "@toddle/now": {
327
+ "name": "Now",
328
+ "description": "Get a Date representing \"Now\"",
324
329
  "arguments": [],
325
330
  "cache": false,
326
331
  "output": {
327
- "description": "The browser's current URL.",
332
+ "description": "A Date object initialized at the current date/time.",
328
333
  "type": {
329
- "type": "String"
334
+ "type": "Date"
330
335
  }
331
336
  }
332
337
  },
333
- "@toddle/lowercase": {
334
- "name": "Lower case",
335
- "description": "Convert a string to lowercase.",
338
+ "@toddle/roundDown": {
339
+ "name": "Round down",
340
+ "description": "Round a Number down to the nearest decimal point.",
336
341
  "arguments": [
337
342
  {
338
- "name": "String",
343
+ "name": "Input",
344
+ "description": "Number to round down.",
345
+ "type": {
346
+ "type": "Number"
347
+ },
339
348
  "formula": {
340
349
  "type": "value",
341
- "value": "string"
342
- },
343
- "description": "Input String",
350
+ "value": 1
351
+ }
352
+ },
353
+ {
354
+ "name": "Decimals",
355
+ "description": "Number of decimals to round to.",
344
356
  "type": {
345
- "type": "String"
357
+ "type": "Number"
358
+ },
359
+ "formula": {
360
+ "type": "value",
361
+ "value": 0
346
362
  }
347
363
  }
348
364
  ],
349
365
  "output": {
350
- "description": "The input String with all characters converted to lowercase.",
351
366
  "type": {
352
- "type": "String"
353
- }
367
+ "type": "Number"
368
+ },
369
+ "description": "The rounded Number."
354
370
  }
355
371
  },
356
- "@toddle/multiply": {
357
- "name": "Multiply",
358
- "description": "Multiply two or more Numbers.",
372
+ "@toddle/append": {
373
+ "name": "Append",
374
+ "description": "Add an element to the end of an Array.",
359
375
  "arguments": [
360
376
  {
361
- "name": "0",
377
+ "name": "Array",
378
+ "type": {
379
+ "type": "Array"
380
+ },
381
+ "description": "The Array to append to.",
362
382
  "formula": {
363
- "type": "value",
364
- "value": 1
383
+ "type": "array",
384
+ "arguments": []
385
+ }
386
+ },
387
+ {
388
+ "name": "Item",
389
+ "type": {
390
+ "type": "Any"
365
391
  },
392
+ "description": "The item to append to the Array.",
393
+ "formula": {
394
+ "type": "value",
395
+ "value": "Item"
396
+ }
397
+ }
398
+ ],
399
+ "output": {
400
+ "description": "A new Array containing all elements from the input Array, including the new item.",
401
+ "type": {
402
+ "type": "Array"
403
+ }
404
+ }
405
+ },
406
+ "@toddle/dateFromString": {
407
+ "name": "Date From String",
408
+ "arguments": [
409
+ {
410
+ "name": "Date string",
411
+ "description": "A String representing a date, for example \"January 1, 1970\".",
366
412
  "type": {
367
- "type": "Number"
413
+ "type": "String"
368
414
  },
369
- "description": "Number to be multiplied."
370
- },
415
+ "formula": {
416
+ "type": "value",
417
+ "value": "January 1, 1970"
418
+ }
419
+ }
420
+ ],
421
+ "description": "Convert a string to a Date.",
422
+ "output": {
423
+ "description": "The input value converted to a Date.",
424
+ "type": {
425
+ "type": "Date"
426
+ }
427
+ }
428
+ },
429
+ "@toddle/absolute": {
430
+ "name": "Absolute",
431
+ "description": "Get the absolute value of a Number.",
432
+ "arguments": [
371
433
  {
372
- "name": "1",
434
+ "name": "Value",
373
435
  "formula": {
374
436
  "type": "value",
375
- "value": 1
437
+ "value": -1
376
438
  },
377
439
  "type": {
378
440
  "type": "Number"
379
441
  },
380
- "description": "Number to be multiplied."
442
+ "description": "The input Number."
381
443
  }
382
444
  ],
383
- "variableArguments": true,
384
445
  "output": {
385
- "description": "The product of multiplying the input Numbers.",
446
+ "description": "The absolute value of the input.",
386
447
  "type": {
387
448
  "type": "Number"
388
449
  }
389
450
  }
390
451
  },
391
- "@toddle/isServer": {
392
- "name": "Is Server",
393
- "description": "Get information about whether formulas are currently evaluated server-side or client-side.",
394
- "arguments": [],
452
+ "@toddle/encodeURIComponent": {
453
+ "name": "Encode URI Component",
454
+ "description": "Encode a URI component, escaping certain characters to their UTF-8 representation.",
455
+ "arguments": [
456
+ {
457
+ "name": "URIComponent",
458
+ "formula": {
459
+ "type": "value",
460
+ "value": null
461
+ },
462
+ "description": "The URI component to encode.",
463
+ "type": {
464
+ "type": "String"
465
+ }
466
+ }
467
+ ],
395
468
  "output": {
396
- "description": "Returns True if formulas are evaluated server-side, and False if formulas are evaluated client-side.",
469
+ "description": "The encoded URI component.",
397
470
  "type": {
398
- "type": "Boolean"
471
+ "type": "String"
399
472
  }
400
473
  }
401
474
  },
402
- "@toddle/indexOf": {
403
- "name": "Index of",
404
- "description": "Find the index of a specific item in an Array or String.",
475
+ "@toddle/modulo": {
476
+ "name": "Modulo",
477
+ "description": "Get the remainder when dividing two Numbers.",
405
478
  "arguments": [
406
479
  {
407
- "name": "Array",
480
+ "name": "Dividend",
408
481
  "formula": {
409
482
  "type": "value",
410
- "value": ""
483
+ "value": 1
411
484
  },
412
- "description": "The value to search.",
485
+ "description": "The number to be divided.",
413
486
  "type": {
414
- "type": "Array \\| String"
487
+ "type": "Number"
415
488
  }
416
489
  },
417
490
  {
418
- "name": "Item",
491
+ "name": "Divider",
419
492
  "formula": {
420
493
  "type": "value",
421
- "value": ""
494
+ "value": 1
422
495
  },
423
- "description": "The items to search for.",
496
+ "description": "The number to divide by.",
424
497
  "type": {
425
- "type": "Any"
498
+ "type": "Number"
426
499
  }
427
500
  }
428
501
  ],
429
502
  "output": {
430
- "description": "If the item exists in the Array, the index of that item is returned. If the item is not found, -1 is returned.",
503
+ "description": "The remainder when the Dividend is divided by the Divider.",
431
504
  "type": {
432
505
  "type": "Number"
433
506
  }
434
507
  }
435
508
  },
436
- "@toddle/lessOrEqual": {
437
- "name": "Less or equal",
438
- "description": "Compute if a value is smaller than or equal to another value.",
509
+ "@toddle/defaultTo": {
510
+ "name": "Default to",
511
+ "description": "Return the first value that is not False or Null.",
439
512
  "arguments": [
440
513
  {
441
- "name": "First",
514
+ "name": "0",
442
515
  "formula": {
443
516
  "type": "value",
444
- "value": ""
517
+ "value": null
445
518
  },
446
- "description": "First Number to be compared.",
519
+ "description": "The inital value.",
447
520
  "type": {
448
- "type": "Number"
521
+ "type": "Any"
449
522
  }
450
523
  },
451
524
  {
452
- "name": "Second",
525
+ "name": "1",
526
+ "description": "The first fallback value to be used if the primary value is Null or False.",
527
+ "type": {
528
+ "type": "Any"
529
+ },
453
530
  "formula": {
454
531
  "type": "value",
455
- "value": ""
456
- },
457
- "description": "Second Number to be compared.",
458
- "type": {
459
- "type": "Number"
532
+ "value": "default"
460
533
  }
461
534
  }
462
535
  ],
536
+ "variableArguments": true,
463
537
  "output": {
464
- "description": "Returns True if the First Number is smaller than or equal to the second Number, otherwise it returns False.",
538
+ "description": "Returns the first value that is not False or Null. Returns Null if no valid values is given.",
465
539
  "type": {
466
- "type": "Boolean"
540
+ "type": "Any"
467
541
  }
468
542
  }
469
543
  },
470
- "@toddle/every": {
471
- "name": "Every",
472
- "description": "Run a formula returns for all items in an Array.",
544
+ "@toddle/reduce": {
545
+ "name": "Reduce",
546
+ "description": "Reduce a group of items to a single value by applying each item to a reducer formula.",
473
547
  "arguments": [
474
548
  {
475
549
  "name": "Array",
@@ -477,446 +551,463 @@
477
551
  "type": "value",
478
552
  "value": null
479
553
  },
480
- "description": "The array of items to evaluate.",
554
+ "description": "The Array or Object of items to be reduced.",
481
555
  "type": {
482
- "type": "Array"
556
+ "type": "Array \\| Object"
483
557
  }
484
558
  },
485
559
  {
486
560
  "name": "Formula",
487
561
  "isFunction": true,
488
562
  "formula": {
489
- "type": "path",
490
- "path": [
491
- "Args",
492
- "item"
493
- ]
563
+ "type": "value",
564
+ "value": null
494
565
  },
495
- "description": "Predicate formula for evaluating each item.",
566
+ "description": "The reducer formula. Each item in the Array is applied to the formula along with the accumulator. The result of this formula will be a new accumulator used for the next item.",
496
567
  "type": {
497
568
  "type": "Formula"
498
569
  }
499
- }
500
- ],
501
- "output": {
502
- "description": "Returns True if the predicate formula returns true for all items in the Array, otherwise False.",
503
- "type": {
504
- "type": "Array"
505
- }
506
- }
507
- },
508
- "@toddle/capitalize": {
509
- "name": "Capitalize",
510
- "description": "Capitalize a string: make the first letter uppercase whilst keeping the rest lowercase.",
511
- "arguments": [
570
+ },
512
571
  {
513
- "name": "String",
572
+ "name": "Accumulator",
514
573
  "formula": {
515
574
  "type": "value",
516
- "value": "string"
575
+ "value": null
517
576
  },
518
- "description": "An input String.",
577
+ "description": "The initial value of the accumulator. This value is passed to the reducer formula along with the first item in the Array, and the result is used as the accumulator for the next item.",
519
578
  "type": {
520
- "type": "String"
579
+ "type": "Any"
521
580
  }
522
581
  }
523
582
  ],
524
583
  "output": {
525
- "description": "The capitalized String.",
584
+ "description": "The value returned from applying the last item to the reducer formula.",
526
585
  "type": {
527
- "type": "String"
586
+ "type": "Any"
528
587
  }
529
588
  }
530
589
  },
531
- "@toddle/startsWith": {
532
- "name": "Starts with",
533
- "description": "Check if a String has a given prefix.",
590
+ "@toddle/deleteKey": {
591
+ "name": "Delete",
592
+ "description": "Return a copy of the input Object or Array without the specified key.",
534
593
  "arguments": [
535
594
  {
536
- "name": "String",
595
+ "name": "Object",
537
596
  "formula": {
538
597
  "type": "value",
539
- "value": ""
598
+ "value": null
540
599
  },
541
- "description": "The String to check.",
600
+ "description": "The input record.",
542
601
  "type": {
543
- "type": "String"
602
+ "type": "Array \\| Object"
544
603
  }
545
604
  },
546
605
  {
547
- "name": "Prefix",
606
+ "name": "Path",
548
607
  "formula": {
549
608
  "type": "value",
550
- "value": ""
609
+ "value": "Item"
551
610
  },
552
- "description": "The prefix to check for.",
611
+ "description": "The path can be either a Number (if the first argument is an array), a String, or an Array of strings. If an Array is given, the property at that path will be removed.",
553
612
  "type": {
554
- "type": "String"
613
+ "type": "Array<Number \\| String> \\| Number \\| String"
555
614
  }
556
615
  }
557
616
  ],
558
617
  "output": {
559
- "description": "Returns True if the input String starts with the prefix, otherwise False",
618
+ "description": "A copy of the record without the property specified in the Path.",
560
619
  "type": {
561
- "type": "Boolean"
620
+ "type": "Object"
562
621
  }
563
622
  }
564
623
  },
565
- "@toddle/notEqual": {
566
- "name": "Not equal",
567
- "description": "Compute if values are not identical.",
624
+ "@toddle/power": {
625
+ "name": "Power",
626
+ "description": "Raise a number to a power.",
568
627
  "arguments": [
569
628
  {
570
- "name": "First",
629
+ "name": "Base",
571
630
  "formula": {
572
631
  "type": "value",
573
- "value": ""
632
+ "value": 3
574
633
  },
575
- "description": "First value.",
634
+ "description": "The number to be raised to the exponent.",
576
635
  "type": {
577
- "type": "Any"
636
+ "type": "Number"
578
637
  }
579
638
  },
580
639
  {
581
- "name": "Second",
640
+ "name": "Exponent",
582
641
  "formula": {
583
642
  "type": "value",
584
- "value": ""
643
+ "value": 2
585
644
  },
586
- "description": "Second value.",
645
+ "description": "The exponent to raise the base to.",
587
646
  "type": {
588
- "type": "Any"
647
+ "type": "Number"
589
648
  }
590
649
  }
591
650
  ],
592
651
  "output": {
593
- "description": "Returns True if the values are not identical, otherwise False.",
594
652
  "type": {
595
- "type": "Any"
596
- }
653
+ "type": "Number"
654
+ },
655
+ "description": "The result of raising the base to the exponent."
597
656
  }
598
657
  },
599
- "@toddle/timestamp": {
600
- "name": "Timestamp",
601
- "description": "Get the timestamp from a Date, e.g. 1633462980000.",
658
+ "@toddle/filter": {
659
+ "name": "Filter",
660
+ "description": "Return a new Array containing only the elements for which the provided formula evaluates to True.",
602
661
  "arguments": [
603
662
  {
604
- "name": "Date",
605
- "description": "The date to get the timestamp from.",
606
- "type": {
607
- "type": "Date"
608
- },
663
+ "name": "Array",
609
664
  "formula": {
610
665
  "type": "value",
611
666
  "value": null
667
+ },
668
+ "description": "The array of items to be filtered.",
669
+ "type": {
670
+ "type": "Array"
671
+ }
672
+ },
673
+ {
674
+ "name": "Formula",
675
+ "isFunction": true,
676
+ "formula": {
677
+ "type": "path",
678
+ "path": [
679
+ "Args",
680
+ "item"
681
+ ]
682
+ },
683
+ "description": "Predicate formula for filtering items.",
684
+ "type": {
685
+ "type": "Formula"
612
686
  }
613
687
  }
614
688
  ],
615
689
  "output": {
616
- "description": "The timestamp from the date input.",
690
+ "description": "New Array containing only the items for which the Formula evaluated to True.",
617
691
  "type": {
618
- "type": "Number"
692
+ "type": "Array"
619
693
  }
620
694
  }
621
695
  },
622
- "@toddle/decodeURIComponent": {
623
- "name": "Decode URI Component",
624
- "description": "Decode a URI component that was previously encoded with the Encode URI Component formula.",
696
+ "@toddle/takeLast": {
697
+ "name": "Take last",
698
+ "description": "Take items from the end of an Array or String.",
625
699
  "arguments": [
626
700
  {
627
- "name": "EncodedURI",
701
+ "name": "Array",
628
702
  "formula": {
629
703
  "type": "value",
630
704
  "value": null
631
705
  },
706
+ "description": "The input value.",
632
707
  "type": {
633
- "type": "String"
708
+ "type": "Array \\| String"
709
+ }
710
+ },
711
+ {
712
+ "name": "Count",
713
+ "formula": {
714
+ "type": "value",
715
+ "value": 1
634
716
  },
635
- "description": "The encoded URI to decode."
717
+ "description": "Number of items to take.",
718
+ "type": {
719
+ "type": "Number"
720
+ }
636
721
  }
637
722
  ],
638
723
  "output": {
639
- "description": "The decoded URI component.",
724
+ "description": "The last items from the Array or String.",
640
725
  "type": {
641
- "type": "String"
726
+ "type": "Array \\| String"
642
727
  }
643
728
  }
644
729
  },
645
- "@toddle/boolean": {
646
- "name": "Boolean",
647
- "description": "Convert a value of any type to a Boolean.",
648
- "arguments": [
649
- {
650
- "name": "Input",
651
- "description": "Value of any type.",
652
- "type": {
653
- "type": "Any"
654
- },
655
- "formula": {
656
- "type": "value",
657
- "value": "1"
658
- }
659
- }
660
- ],
730
+ "@toddle/randomNumber": {
731
+ "name": "Random number",
732
+ "description": "return a random Number between 0 and 1.",
733
+ "arguments": [],
734
+ "cache": false,
661
735
  "output": {
662
- "description": "The input value converted to a Boolean. False and Null will return False, all other values will return True.",
736
+ "description": "A random Number between 0 and 1.",
663
737
  "type": {
664
- "type": "Boolean"
738
+ "type": "Number"
665
739
  }
666
740
  }
667
741
  },
668
- "@toddle/dateFromString": {
669
- "name": "Date From String",
742
+ "@toddle/find": {
743
+ "name": "Find",
744
+ "description": "Search through an Array of items and apply a formula to each item, to return the first item where the provided formula returns True.",
670
745
  "arguments": [
671
746
  {
672
- "name": "Date string",
673
- "description": "A String representing a date, for example \"January 1, 1970\".",
674
- "type": {
675
- "type": "String"
676
- },
747
+ "name": "Array",
677
748
  "formula": {
678
749
  "type": "value",
679
- "value": "January 1, 1970"
750
+ "value": null
751
+ },
752
+ "description": "The array to search through",
753
+ "type": {
754
+ "type": "Array"
755
+ }
756
+ },
757
+ {
758
+ "name": "Formula",
759
+ "isFunction": true,
760
+ "formula": {
761
+ "type": "path",
762
+ "path": [
763
+ "Args",
764
+ "item"
765
+ ]
766
+ },
767
+ "description": "The predicate formula that each item in the array is passed to.",
768
+ "type": {
769
+ "type": "Formula"
680
770
  }
681
771
  }
682
772
  ],
683
- "description": "Convert a string to a Date.",
684
773
  "output": {
685
- "description": "The input value converted to a Date.",
774
+ "description": "The first item in the Array where the formula returns True. Returns Null if the predicate formula did not return True for any item.",
686
775
  "type": {
687
- "type": "Date"
776
+ "type": "Any"
688
777
  }
689
778
  }
690
779
  },
691
- "@toddle/add": {
692
- "name": "Add",
780
+ "@toddle/sum": {
781
+ "name": "Sum",
782
+ "description": "Return the sum of an Array of numbers",
693
783
  "arguments": [
694
784
  {
695
- "name": "0",
696
- "description": "Number to be added.",
697
- "type": {
698
- "type": "Number"
699
- },
700
- "formula": {
701
- "type": "value",
702
- "value": 1
703
- }
704
- },
705
- {
706
- "name": "1",
785
+ "name": "Array",
707
786
  "type": {
708
- "type": "Number"
787
+ "type": "Array"
709
788
  },
710
- "description": "Number to be added.",
789
+ "description": "The array of numbers to sum.",
711
790
  "formula": {
712
- "type": "value",
713
- "value": 1
791
+ "type": "array",
792
+ "arguments": []
714
793
  }
715
794
  }
716
795
  ],
717
- "variableArguments": true,
718
- "description": "Get the sum of multiple numbers.",
719
796
  "output": {
720
- "description": "The sum of all the input numbers.",
797
+ "description": "The total sum from adding all the numbers in the Array.",
721
798
  "type": {
722
799
  "type": "Number"
723
800
  }
724
801
  }
725
802
  },
726
- "@toddle/modulo": {
727
- "name": "Modulo",
728
- "description": "Get the remainder when dividing two Numbers.",
803
+ "@toddle/capitalize": {
804
+ "name": "Capitalize",
805
+ "description": "Capitalize a string: make the first letter uppercase whilst keeping the rest lowercase.",
729
806
  "arguments": [
730
807
  {
731
- "name": "Dividend",
732
- "formula": {
733
- "type": "value",
734
- "value": 1
735
- },
736
- "description": "The number to be divided.",
737
- "type": {
738
- "type": "Number"
739
- }
740
- },
741
- {
742
- "name": "Divider",
808
+ "name": "String",
743
809
  "formula": {
744
810
  "type": "value",
745
- "value": 1
811
+ "value": "string"
746
812
  },
747
- "description": "The number to divide by.",
813
+ "description": "An input String.",
748
814
  "type": {
749
- "type": "Number"
815
+ "type": "String"
750
816
  }
751
817
  }
752
818
  ],
753
819
  "output": {
754
- "description": "The remainder when the Dividend is divided by the Divider.",
820
+ "description": "The capitalized String.",
755
821
  "type": {
756
- "type": "Number"
822
+ "type": "String"
757
823
  }
758
824
  }
759
825
  },
760
- "@toddle/keyBy": {
761
- "name": "Key by",
762
- "description": "Organize an Array of items into an Object based on a Key formula.",
826
+ "@toddle/isServer": {
827
+ "name": "Is Server",
828
+ "description": "Get information about whether formulas are currently evaluated server-side or client-side.",
829
+ "arguments": [],
830
+ "output": {
831
+ "description": "Returns True if formulas are evaluated server-side, and False if formulas are evaluated client-side.",
832
+ "type": {
833
+ "type": "Boolean"
834
+ }
835
+ }
836
+ },
837
+ "@toddle/parseURL": {
838
+ "name": "Parse URL",
839
+ "description": "Parse a URL",
763
840
  "arguments": [
764
841
  {
765
- "name": "Array",
842
+ "name": "URL",
766
843
  "formula": {
767
844
  "type": "value",
768
845
  "value": null
769
846
  },
770
- "description": "Array of items.",
847
+ "description": "The URL value to parse.",
771
848
  "type": {
772
- "type": "Array"
849
+ "type": "String"
773
850
  }
774
851
  },
775
852
  {
776
- "name": "Formula",
777
- "isFunction": true,
853
+ "name": "Base",
778
854
  "formula": {
779
855
  "type": "value",
780
856
  "value": null
781
857
  },
782
- "description": "The key formula used to index the items. The String returned from the formula will match the key in the output Object.",
858
+ "description": "An optional base for the URL. Use this to resolve relative URLs.",
783
859
  "type": {
784
- "type": "Formula"
860
+ "type": "String"
785
861
  }
786
862
  }
787
863
  ],
788
864
  "output": {
789
- "description": "An Object where each key matches a value returned by the key formula, and each value is the item that String was returned for.",
865
+ "description": "An object containing: \"hostname\", \"searchParams\", \"path\", \"hash\", \"href\", \"protocol\", \"port\", \"origin\"",
790
866
  "type": {
791
867
  "type": "Object"
792
868
  }
793
869
  }
794
870
  },
795
- "@toddle/dateFromTimestamp": {
796
- "name": "Date From Timestamp",
871
+ "@toddle/getFromSessionStorage": {
872
+ "name": "Get from Session Storage",
873
+ "description": "Read a value from session storage with the provided key.",
874
+ "cache": false,
797
875
  "arguments": [
798
876
  {
799
- "name": "Timestamp",
800
- "description": "A Number in milliseconds since 1st January, 1970 (EPOCH).",
801
- "type": {
802
- "type": "Number"
803
- },
877
+ "name": "Key",
804
878
  "formula": {
805
879
  "type": "value",
806
- "value": 1687787245933
880
+ "value": null
881
+ },
882
+ "description": "The key to read from session storage.",
883
+ "type": {
884
+ "type": "String"
807
885
  }
808
886
  }
809
887
  ],
810
- "description": "Convert a timestamp (milliseconds) to a Date.",
811
888
  "output": {
812
- "description": "The input value converted to a Date.",
889
+ "description": "The value found in session storage.",
813
890
  "type": {
814
- "type": "Date"
891
+ "type": "Any"
815
892
  }
816
893
  }
817
894
  },
818
- "@toddle/find": {
819
- "name": "Find",
820
- "description": "Search through an Array of items and apply a formula to each item, to return the first item where the provided formula returns True.",
895
+ "@toddle/formatDate": {
896
+ "name": "Format Date",
821
897
  "arguments": [
822
898
  {
823
- "name": "Array",
899
+ "name": "Date",
900
+ "description": "Date to format",
901
+ "type": {
902
+ "type": "Date"
903
+ },
824
904
  "formula": {
825
- "type": "value",
905
+ "type": "Date",
826
906
  "value": null
827
- },
828
- "description": "The array to search through",
829
- "type": {
830
- "type": "Array"
831
907
  }
832
908
  },
833
909
  {
834
- "name": "Formula",
835
- "isFunction": true,
836
- "formula": {
837
- "type": "path",
838
- "path": [
839
- "Args",
840
- "item"
841
- ]
910
+ "name": "Locale(s)",
911
+ "description": "Optional locale to use for formatting the Date, e.g. \"en\" or \"fr\". Multiple locales can be provided (as an Array of Strings) to provide a fallback locale. The default value is the runtime's locale.",
912
+ "type": {
913
+ "type": "Array \\| String"
842
914
  },
843
- "description": "The predicate formula that each item in the array is passed to.",
915
+ "formula": {
916
+ "type": "value",
917
+ "value": null
918
+ }
919
+ },
920
+ {
921
+ "name": "Options",
922
+ "description": "Optional Object for configuring the formatting of the output. See the [DateTimeFormat syntax on MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat#syntax).",
844
923
  "type": {
845
- "type": "Formula"
924
+ "type": "Object"
925
+ },
926
+ "formula": {
927
+ "type": "value",
928
+ "value": null
846
929
  }
847
930
  }
848
931
  ],
932
+ "description": "Format a date using the Intl.DateTimeFormat API. See the [DateTimeFormat docs on MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat).",
849
933
  "output": {
850
- "description": "The first item in the Array where the formula returns True. Returns Null if the predicate formula did not return True for any item.",
934
+ "description": "The Date input formatted as a String.",
851
935
  "type": {
852
- "type": "Any"
936
+ "type": "String"
853
937
  }
854
938
  }
855
939
  },
856
- "@toddle/map": {
857
- "name": "Map",
858
- "description": "Run a formula on each item of an Array to return a new Array.",
940
+ "@toddle/get": {
941
+ "name": "Get",
942
+ "description": "Extract a value from an Object, Array or String at the specified path.",
859
943
  "arguments": [
860
944
  {
861
- "name": "Array",
945
+ "name": "Object",
862
946
  "formula": {
863
947
  "type": "value",
864
948
  "value": null
865
949
  },
866
- "description": "The Array of items.",
950
+ "description": "The Object, Array or String you want to extract an item from.",
867
951
  "type": {
868
- "type": "Array"
952
+ "type": "Array \\| Object \\| String"
869
953
  }
870
954
  },
871
955
  {
872
- "name": "Formula",
873
- "isFunction": true,
956
+ "name": "Path",
874
957
  "formula": {
875
- "type": "path",
876
- "path": [
877
- "Args",
878
- "item"
879
- ]
958
+ "type": "value",
959
+ "value": "Item"
880
960
  },
881
- "description": "The formula to run on each item of the Array.",
961
+ "description": "The Path can be either a Number, a String, or an Array.",
882
962
  "type": {
883
- "type": "Formula"
963
+ "type": "Array<String> \\| Number \\| String"
884
964
  }
885
965
  }
886
966
  ],
887
967
  "output": {
888
- "description": "A new Array containing all the values returned from running the provided formula on each item in the provided input Array.",
968
+ "description": "The value found at the Path. If no value is found, this value of the output is Null.",
889
969
  "type": {
890
- "type": "Array"
970
+ "type": "Any"
891
971
  }
892
972
  }
893
973
  },
894
- "@toddle/number": {
895
- "name": "Number",
896
- "description": "Convert a value of any type to a Number.",
974
+ "@toddle/divide": {
975
+ "name": "Divide",
976
+ "description": "Perform a division calculation.",
897
977
  "arguments": [
898
978
  {
899
- "name": "Input",
900
- "description": "Value of any type",
979
+ "name": "Dividend",
980
+ "description": "The number to be divided.",
901
981
  "type": {
902
- "type": "Any"
982
+ "type": "Number"
903
983
  },
904
984
  "formula": {
905
985
  "type": "value",
906
- "value": "1"
986
+ "value": 1
987
+ }
988
+ },
989
+ {
990
+ "name": "Divisor",
991
+ "description": "The number to divide by.",
992
+ "type": {
993
+ "type": "Number"
994
+ },
995
+ "formula": {
996
+ "type": "value",
997
+ "value": 1
907
998
  }
908
999
  }
909
1000
  ],
910
1001
  "output": {
911
- "description": "The input value converted to a Number.",
1002
+ "description": "The result of dividing the dividend with the divisor.",
912
1003
  "type": {
913
1004
  "type": "Number"
914
1005
  }
915
1006
  }
916
1007
  },
917
- "@toddle/matches": {
918
- "name": "Matches",
919
- "description": "Finds the (global) matches in a String based on a regular expression.",
1008
+ "@toddle/split": {
1009
+ "name": "Split",
1010
+ "description": "Split a String into an Array of smaller strings each time a delimiter occurs. The delimiter will not be part of the output",
920
1011
  "arguments": [
921
1012
  {
922
1013
  "name": "Input",
@@ -924,100 +1015,36 @@
924
1015
  "type": "value",
925
1016
  "value": ""
926
1017
  },
927
- "description": "The string to search for matches in.",
1018
+ "description": "The String to split.",
928
1019
  "type": {
929
1020
  "type": "String"
930
1021
  }
931
1022
  },
932
1023
  {
933
- "name": "Regular expression",
1024
+ "name": "Delimiter",
934
1025
  "formula": {
935
1026
  "type": "value",
936
1027
  "value": ""
937
1028
  },
938
- "description": "The regular expression to use for matching.",
1029
+ "description": "The string to split by.",
939
1030
  "type": {
940
1031
  "type": "String"
941
1032
  }
942
- },
943
- {
944
- "name": "Global search",
945
- "formula": {
946
- "type": "value",
947
- "value": true
948
- },
949
- "description": "Test the regular expression against all possible matches in a string.",
950
- "type": {
951
- "type": "Boolean"
952
- }
953
- },
954
- {
955
- "name": "Case insensitive",
956
- "formula": {
957
- "type": "value",
958
- "value": false
959
- },
960
- "description": "Ignore case while attempting a match in a string.",
961
- "type": {
962
- "type": "Boolean"
963
- }
964
- },
965
- {
966
- "name": "Multi line",
967
- "formula": {
968
- "type": "value",
969
- "value": false
970
- },
971
- "description": "Treat multiline strings as multiple lines.",
972
- "type": {
973
- "type": "Boolean"
974
- }
975
1033
  }
976
1034
  ],
977
1035
  "output": {
978
- "description": "An Array of Strings",
1036
+ "description": "An array of Strings.",
979
1037
  "type": {
980
- "type": "Array"
981
- }
982
- }
983
- },
984
- "@toddle/prepend": {
985
- "name": "Prepend",
986
- "description": "Add an element to the start of an Array.",
987
- "arguments": [
988
- {
989
- "name": "Array",
990
- "type": {
991
- "type": "Array"
992
- },
993
- "description": "The Array to prepend to.",
994
- "formula": {
995
- "type": "array",
996
- "arguments": []
997
- }
998
- },
999
- {
1000
- "name": "Item",
1001
- "type": {
1002
- "type": "Any"
1003
- },
1004
- "description": "The item to prepend to the Array.",
1005
- "formula": {
1006
- "type": "value",
1007
- "value": "Item"
1038
+ "type": "Array",
1039
+ "ofType": {
1040
+ "type": "String"
1008
1041
  }
1009
1042
  }
1010
- ],
1011
- "output": {
1012
- "description": "A new Array containing the new item and all the elements from the input Array.",
1013
- "type": {
1014
- "type": "Array"
1015
- }
1016
1043
  }
1017
1044
  },
1018
- "@toddle/fromEntries": {
1019
- "name": "From entries",
1020
- "description": "Transform an Array of key-value pairs into an Object. This formula is the reverse of Entries.",
1045
+ "@toddle/reverse": {
1046
+ "name": "Reverse",
1047
+ "description": "Reverse the order of an Array.",
1021
1048
  "arguments": [
1022
1049
  {
1023
1050
  "name": "Array",
@@ -1025,73 +1052,84 @@
1025
1052
  "type": "value",
1026
1053
  "value": null
1027
1054
  },
1028
- "description": "An Array of Objects. Each Object should have a `key` and `value` property named `key` and `value` respectively e.g. `[{ key: 'yourKey', value: 'yourValue' }]`.",
1055
+ "description": "The Array to be reversed.",
1029
1056
  "type": {
1030
1057
  "type": "Array"
1031
1058
  }
1032
1059
  }
1033
1060
  ],
1034
1061
  "output": {
1035
- "description": "An Object containing all entries from the input Array in the format `{yourKey: yourValue}`.",
1036
1062
  "type": {
1037
- "type": "Object"
1038
- }
1063
+ "type": "Array"
1064
+ },
1065
+ "description": "The reversed Array."
1039
1066
  }
1040
1067
  },
1041
- "@toddle/string": {
1042
- "name": "String",
1043
- "description": "Convert a value of any type to a String.",
1068
+ "@toddle/round": {
1069
+ "name": "Round",
1070
+ "description": "Round a Number to the nearest decimal point.",
1044
1071
  "arguments": [
1045
1072
  {
1046
- "name": "Input",
1047
- "description": "Value of any type.",
1073
+ "name": "Input",
1074
+ "description": "Number to round.",
1075
+ "type": {
1076
+ "type": "Number"
1077
+ },
1078
+ "formula": {
1079
+ "type": "value",
1080
+ "value": 1
1081
+ }
1082
+ },
1083
+ {
1084
+ "name": "Decimals",
1085
+ "description": "Number of decimals to round to.",
1048
1086
  "type": {
1049
- "type": "Any"
1087
+ "type": "Number"
1050
1088
  },
1051
1089
  "formula": {
1052
1090
  "type": "value",
1053
- "value": "1"
1091
+ "value": 0
1054
1092
  }
1055
1093
  }
1056
1094
  ],
1057
1095
  "output": {
1058
- "description": "The input value converted to a String",
1059
1096
  "type": {
1060
- "type": "String"
1061
- }
1097
+ "type": "Number"
1098
+ },
1099
+ "description": "The rounded Number."
1062
1100
  }
1063
1101
  },
1064
- "@toddle/append": {
1065
- "name": "Append",
1066
- "description": "Add an element to the end of an Array.",
1102
+ "@toddle/includes": {
1103
+ "name": "Includes",
1104
+ "description": "Test if an Array or String includes a specific item or value.",
1067
1105
  "arguments": [
1068
1106
  {
1069
1107
  "name": "Array",
1070
- "type": {
1071
- "type": "Array"
1072
- },
1073
- "description": "The Array to append to.",
1074
1108
  "formula": {
1075
- "type": "array",
1076
- "arguments": []
1109
+ "type": "value",
1110
+ "value": ""
1111
+ },
1112
+ "description": "The value to search.",
1113
+ "type": {
1114
+ "type": "Array \\| String"
1077
1115
  }
1078
1116
  },
1079
1117
  {
1080
1118
  "name": "Item",
1081
- "type": {
1082
- "type": "Any"
1083
- },
1084
- "description": "The item to append to the Array.",
1085
1119
  "formula": {
1086
1120
  "type": "value",
1087
- "value": "Item"
1121
+ "value": ""
1122
+ },
1123
+ "description": "The item or value to search for.",
1124
+ "type": {
1125
+ "type": "Any"
1088
1126
  }
1089
1127
  }
1090
1128
  ],
1091
1129
  "output": {
1092
- "description": "A new Array containing all elements from the input Array, including the new item.",
1130
+ "description": "Returns True if the item or value exists in the Array or string. Returns False if no match is found.",
1093
1131
  "type": {
1094
- "type": "Array"
1132
+ "type": "Boolean"
1095
1133
  }
1096
1134
  }
1097
1135
  },
@@ -1129,230 +1167,219 @@
1129
1167
  }
1130
1168
  }
1131
1169
  },
1132
- "@toddle/encodeURIComponent": {
1133
- "name": "Encode URI Component",
1134
- "description": "Encode a URI component, escaping certain characters to their UTF-8 representation.",
1170
+ "@toddle/join": {
1171
+ "name": "Join",
1172
+ "description": "Combine an Array of Strings in to a single String.",
1135
1173
  "arguments": [
1136
1174
  {
1137
- "name": "URIComponent",
1175
+ "name": "Array",
1138
1176
  "formula": {
1139
1177
  "type": "value",
1140
1178
  "value": null
1141
1179
  },
1142
- "description": "The URI component to encode.",
1180
+ "description": "An array of Strings.",
1181
+ "type": {
1182
+ "type": "Array"
1183
+ }
1184
+ },
1185
+ {
1186
+ "name": "Separator",
1187
+ "formula": {
1188
+ "type": "value",
1189
+ "value": ", "
1190
+ },
1191
+ "description": "A separator String that is inserted in between each item in the Array to join.",
1143
1192
  "type": {
1144
1193
  "type": "String"
1145
1194
  }
1146
1195
  }
1147
1196
  ],
1148
1197
  "output": {
1149
- "description": "The encoded URI component.",
1198
+ "description": "A String combining each item in the input Array separated by the separator String, e.g. joining [\"a\", \"b\", \"c\"] with a \",\" separator will return \"a,b,c\".",
1150
1199
  "type": {
1151
1200
  "type": "String"
1152
1201
  }
1153
1202
  }
1154
1203
  },
1155
- "@toddle/formatDate": {
1156
- "name": "Format Date",
1204
+ "@toddle/uppercase": {
1205
+ "name": "Uppercase",
1206
+ "description": "Convert a String to uppercase.",
1157
1207
  "arguments": [
1158
1208
  {
1159
- "name": "Date",
1160
- "description": "Date to format",
1161
- "type": {
1162
- "type": "Date"
1163
- },
1164
- "formula": {
1165
- "type": "Date",
1166
- "value": null
1167
- }
1168
- },
1169
- {
1170
- "name": "Locale(s)",
1171
- "description": "Optional locale to use for formatting the Date, e.g. \"en\" or \"fr\". Multiple locales can be provided (as an Array of Strings) to provide a fallback locale. The default value is the runtime's locale.",
1172
- "type": {
1173
- "type": "Array \\| String"
1174
- },
1209
+ "name": "String",
1175
1210
  "formula": {
1176
1211
  "type": "value",
1177
- "value": null
1178
- }
1179
- },
1180
- {
1181
- "name": "Options",
1182
- "description": "Optional Object for configuring the formatting of the output. See the [DateTimeFormat syntax on MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat#syntax).",
1183
- "type": {
1184
- "type": "Object"
1212
+ "value": "string"
1185
1213
  },
1186
- "formula": {
1187
- "type": "value",
1188
- "value": null
1214
+ "description": "Input String.",
1215
+ "type": {
1216
+ "type": "String"
1189
1217
  }
1190
1218
  }
1191
1219
  ],
1192
- "description": "Format a date using the Intl.DateTimeFormat API. See the [DateTimeFormat docs on MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat).",
1193
1220
  "output": {
1194
- "description": "The Date input formatted as a String.",
1221
+ "description": "The input String with all characters converted to uppercase.",
1195
1222
  "type": {
1196
1223
  "type": "String"
1197
1224
  }
1198
1225
  }
1199
1226
  },
1200
- "@toddle/not": {
1201
- "name": "Not",
1202
- "description": "Get the Boolean opposite of an input value.",
1227
+ "@toddle/notEqual": {
1228
+ "name": "Not equal",
1229
+ "description": "Compute if values are not identical.",
1203
1230
  "arguments": [
1204
1231
  {
1205
- "name": "Input",
1232
+ "name": "First",
1206
1233
  "formula": {
1207
1234
  "type": "value",
1208
- "value": true
1235
+ "value": ""
1209
1236
  },
1210
- "description": "The input value.",
1237
+ "description": "First value.",
1211
1238
  "type": {
1212
- "type": "Boolean"
1239
+ "type": "Any"
1213
1240
  }
1214
- }
1215
- ],
1216
- "output": {
1217
- "description": "Returns True if the input value is False, and False if the input value is True.",
1218
- "type": {
1219
- "type": "Boolean"
1220
- }
1221
- }
1222
- },
1223
- "@toddle/logarithm": {
1224
- "name": "Logarithm",
1225
- "description": "Return the logarithm of a Number.",
1226
- "arguments": [
1241
+ },
1227
1242
  {
1228
- "name": "Number",
1243
+ "name": "Second",
1229
1244
  "formula": {
1230
1245
  "type": "value",
1231
- "value": 1
1246
+ "value": ""
1232
1247
  },
1233
- "description": "A Number greater than or equal to 0.",
1248
+ "description": "Second value.",
1234
1249
  "type": {
1235
- "type": "Number"
1250
+ "type": "Any"
1236
1251
  }
1237
1252
  }
1238
1253
  ],
1239
1254
  "output": {
1255
+ "description": "Returns True if the values are not identical, otherwise False.",
1240
1256
  "type": {
1241
- "type": "Number"
1242
- },
1243
- "description": "The natural logarithm of the Number."
1257
+ "type": "Any"
1258
+ }
1244
1259
  }
1245
1260
  },
1246
- "@toddle/set": {
1247
- "name": "Set",
1248
- "description": "Set a value in an Object or Array based on a specified path.",
1261
+ "@toddle/drop": {
1262
+ "name": "Drop",
1263
+ "description": "Remove items from the beginning of an Array or String.",
1249
1264
  "arguments": [
1250
1265
  {
1251
- "name": "Object",
1266
+ "name": "Array",
1252
1267
  "formula": {
1253
1268
  "type": "value",
1254
1269
  "value": null
1255
1270
  },
1256
- "description": "The input Object.",
1271
+ "description": "The input value.",
1257
1272
  "type": {
1258
- "type": "Object"
1273
+ "type": "Array \\| String"
1259
1274
  }
1260
1275
  },
1261
1276
  {
1262
- "name": "Path",
1263
- "formula": {
1264
- "type": "value",
1265
- "value": "Key"
1266
- },
1267
- "description": "The Path can be either a Number, a String or an Array of Strings.",
1277
+ "name": "Count",
1278
+ "description": "Number of items to remove.",
1268
1279
  "type": {
1269
- "type": "Array \\| Number \\| String"
1270
- }
1271
- },
1272
- {
1273
- "name": "Value",
1280
+ "type": "Number"
1281
+ },
1274
1282
  "formula": {
1275
1283
  "type": "value",
1276
- "value": "Item"
1277
- },
1278
- "description": "The value to set.",
1279
- "type": {
1280
- "type": "Any"
1284
+ "value": 1
1281
1285
  }
1282
1286
  }
1283
1287
  ],
1284
1288
  "output": {
1285
- "description": "The input Object with the new field.",
1289
+ "description": "A copy of the list without the first items.",
1286
1290
  "type": {
1287
- "type": "Object"
1291
+ "type": "Array \\| String"
1288
1292
  }
1289
1293
  }
1290
1294
  },
1291
- "@toddle/deleteKey": {
1292
- "name": "Delete",
1293
- "description": "Return a copy of the input Object or Array without the specified key.",
1295
+ "@toddle/parseJSON": {
1296
+ "name": "Parse JSON",
1297
+ "description": "Parse a String to JSON.",
1294
1298
  "arguments": [
1295
1299
  {
1296
- "name": "Object",
1300
+ "name": "JSON string",
1297
1301
  "formula": {
1298
1302
  "type": "value",
1299
1303
  "value": null
1300
1304
  },
1301
- "description": "The input record.",
1302
- "type": {
1303
- "type": "Array \\| Object"
1304
- }
1305
- },
1306
- {
1307
- "name": "Path",
1308
- "formula": {
1309
- "type": "value",
1310
- "value": "Item"
1311
- },
1312
- "description": "The path can be either a Number (if the first argument is an array), a String, or an Array of strings. If an Array is given, the property at that path will be removed.",
1305
+ "description": "The String to be parsed.",
1313
1306
  "type": {
1314
- "type": "Array<Number \\| String> \\| Number \\| String"
1307
+ "type": "String"
1315
1308
  }
1316
1309
  }
1317
1310
  ],
1318
1311
  "output": {
1319
- "description": "A copy of the record without the property specified in the Path.",
1312
+ "description": "The parsed JSON value. If the input is not a valid String, this returns Null.",
1320
1313
  "type": {
1321
- "type": "Object"
1314
+ "type": "Any"
1322
1315
  }
1323
1316
  }
1324
1317
  },
1325
- "@toddle/takeLast": {
1326
- "name": "Take last",
1327
- "description": "Take items from the end of an Array or String.",
1318
+ "@toddle/clamp": {
1319
+ "name": "Clamp",
1320
+ "description": "Limit a value to a specified Min and Max value.",
1328
1321
  "arguments": [
1329
1322
  {
1330
- "name": "Array",
1323
+ "name": "Value",
1324
+ "type": {
1325
+ "type": "Number"
1326
+ },
1331
1327
  "formula": {
1332
1328
  "type": "value",
1333
1329
  "value": null
1334
1330
  },
1335
- "description": "The input value.",
1331
+ "description": "Number to round."
1332
+ },
1333
+ {
1334
+ "name": "Min",
1336
1335
  "type": {
1337
- "type": "Array \\| String"
1336
+ "type": "Number"
1337
+ },
1338
+ "description": "The smallest allowed Number.",
1339
+ "formula": {
1340
+ "type": "value",
1341
+ "value": 0
1338
1342
  }
1339
1343
  },
1340
1344
  {
1341
- "name": "Count",
1345
+ "name": "Max",
1346
+ "type": {
1347
+ "type": "Number"
1348
+ },
1349
+ "description": "The largest allowed Number.",
1350
+ "formula": {
1351
+ "type": "value",
1352
+ "value": 100
1353
+ }
1354
+ }
1355
+ ],
1356
+ "output": {
1357
+ "type": {
1358
+ "type": "Number"
1359
+ },
1360
+ "description": "Returns the input value if between the specified Min and Max. Otherwise, it returns the Min or Max value."
1361
+ }
1362
+ },
1363
+ "@toddle/getCookie": {
1364
+ "name": "Get Cookie",
1365
+ "description": "Get the value of a cookie by name. This formula is available both server-side and client-side. Http-Only cookies will only be available server-side.",
1366
+ "arguments": [
1367
+ {
1368
+ "name": "Cookie name",
1342
1369
  "formula": {
1343
1370
  "type": "value",
1344
- "value": 1
1371
+ "value": null
1345
1372
  },
1346
- "description": "Number of items to take.",
1373
+ "description": "The name of the cookie you want to get the value of.",
1347
1374
  "type": {
1348
- "type": "Number"
1375
+ "type": "String"
1349
1376
  }
1350
1377
  }
1351
1378
  ],
1352
1379
  "output": {
1353
- "description": "The last items from the Array or String.",
1380
+ "description": "The value of the cookie. If a value is not found, this return value will be Null.",
1354
1381
  "type": {
1355
- "type": "Array \\| String"
1382
+ "type": "String"
1356
1383
  }
1357
1384
  }
1358
1385
  },
@@ -1390,58 +1417,86 @@
1390
1417
  }
1391
1418
  }
1392
1419
  },
1393
- "@toddle/roundUp": {
1394
- "name": "Round up",
1395
- "description": "Round a Number up to the nearest decimal point.",
1420
+ "@toddle/some": {
1421
+ "name": "Some",
1422
+ "description": "Run a formula on all items of an Array to determine if any item matches a set of conditions.",
1396
1423
  "arguments": [
1397
1424
  {
1398
- "name": "Input",
1399
- "description": "Number to round up.",
1400
- "type": {
1401
- "type": "Number"
1402
- },
1425
+ "name": "Array",
1403
1426
  "formula": {
1404
1427
  "type": "value",
1405
- "value": 1
1428
+ "value": null
1429
+ },
1430
+ "description": "The Array of items to evaluate.",
1431
+ "type": {
1432
+ "type": "Array"
1406
1433
  }
1407
1434
  },
1408
1435
  {
1409
- "name": "Decimals",
1410
- "description": "Number of decimals to round to.",
1411
- "type": {
1412
- "type": "Number"
1413
- },
1436
+ "name": "Formula",
1437
+ "isFunction": true,
1414
1438
  "formula": {
1415
- "type": "value",
1416
- "value": 0
1439
+ "type": "path",
1440
+ "path": [
1441
+ "Args",
1442
+ "item"
1443
+ ]
1444
+ },
1445
+ "description": "Predicate formula for evaluating each item.",
1446
+ "type": {
1447
+ "type": "Formula"
1417
1448
  }
1418
1449
  }
1419
1450
  ],
1420
1451
  "output": {
1452
+ "description": "Returns True if the predicate formula returns True for any items in the Array, otherwise False.",
1421
1453
  "type": {
1422
- "type": "Number"
1423
- },
1424
- "description": "The rounded Number."
1454
+ "type": "Boolean"
1455
+ }
1425
1456
  }
1426
1457
  },
1427
- "@toddle/uppercase": {
1428
- "name": "Uppercase",
1429
- "description": "Convert a String to uppercase.",
1458
+ "@toddle/getFromLocalStorage": {
1459
+ "name": "Get from Local Storage",
1460
+ "description": "Read a value from local storage with the provided key.",
1461
+ "cache": false,
1430
1462
  "arguments": [
1431
1463
  {
1432
- "name": "String",
1464
+ "name": "Key",
1433
1465
  "formula": {
1434
1466
  "type": "value",
1435
- "value": "string"
1467
+ "value": null
1436
1468
  },
1437
- "description": "Input String.",
1469
+ "description": "The key to read from local storage.",
1438
1470
  "type": {
1439
1471
  "type": "String"
1440
1472
  }
1441
1473
  }
1442
1474
  ],
1443
1475
  "output": {
1444
- "description": "The input String with all characters converted to uppercase.",
1476
+ "description": "The value found in local storage. If no value is found, this will return Null.",
1477
+ "type": {
1478
+ "type": "Any"
1479
+ }
1480
+ }
1481
+ },
1482
+ "@toddle/string": {
1483
+ "name": "String",
1484
+ "description": "Convert a value of any type to a String.",
1485
+ "arguments": [
1486
+ {
1487
+ "name": "Input",
1488
+ "description": "Value of any type.",
1489
+ "type": {
1490
+ "type": "Any"
1491
+ },
1492
+ "formula": {
1493
+ "type": "value",
1494
+ "value": "1"
1495
+ }
1496
+ }
1497
+ ],
1498
+ "output": {
1499
+ "description": "The input value converted to a String",
1445
1500
  "type": {
1446
1501
  "type": "String"
1447
1502
  }
@@ -1470,43 +1525,43 @@
1470
1525
  }
1471
1526
  }
1472
1527
  },
1473
- "@toddle/encodeJSON": {
1474
- "name": "Encode JSON",
1475
- "description": "Encode data as JSON.",
1528
+ "@toddle/prepend": {
1529
+ "name": "Prepend",
1530
+ "description": "Add an element to the start of an Array.",
1476
1531
  "arguments": [
1477
1532
  {
1478
- "name": "Data",
1479
- "formula": {
1480
- "type": "value",
1481
- "value": null
1482
- },
1483
- "description": "The data to convert.",
1533
+ "name": "Array",
1484
1534
  "type": {
1485
- "type": "Any"
1535
+ "type": "Array"
1536
+ },
1537
+ "description": "The Array to prepend to.",
1538
+ "formula": {
1539
+ "type": "array",
1540
+ "arguments": []
1486
1541
  }
1487
1542
  },
1488
1543
  {
1489
- "name": "Indent",
1544
+ "name": "Item",
1545
+ "type": {
1546
+ "type": "Any"
1547
+ },
1548
+ "description": "The item to prepend to the Array.",
1490
1549
  "formula": {
1491
1550
  "type": "value",
1492
- "value": 2
1493
- },
1494
- "description": "How many characters the encoded value will be indented.",
1495
- "type": {
1496
- "type": "Number"
1551
+ "value": "Item"
1497
1552
  }
1498
1553
  }
1499
1554
  ],
1500
1555
  "output": {
1501
- "description": "The encoded JSON value.",
1556
+ "description": "A new Array containing the new item and all the elements from the input Array.",
1502
1557
  "type": {
1503
- "type": "String"
1558
+ "type": "Array"
1504
1559
  }
1505
1560
  }
1506
1561
  },
1507
- "@toddle/filter": {
1508
- "name": "Filter",
1509
- "description": "Return a new Array containing only the elements for which the provided formula evaluates to True.",
1562
+ "@toddle/groupBy": {
1563
+ "name": "Group by",
1564
+ "description": "Group an Array of items into an Object based on a grouping formula.",
1510
1565
  "arguments": [
1511
1566
  {
1512
1567
  "name": "Array",
@@ -1514,7 +1569,7 @@
1514
1569
  "type": "value",
1515
1570
  "value": null
1516
1571
  },
1517
- "description": "The array of items to be filtered.",
1572
+ "description": "Array of items to be grouped.",
1518
1573
  "type": {
1519
1574
  "type": "Array"
1520
1575
  }
@@ -1523,62 +1578,105 @@
1523
1578
  "name": "Formula",
1524
1579
  "isFunction": true,
1525
1580
  "formula": {
1526
- "type": "path",
1527
- "path": [
1528
- "Args",
1529
- "item"
1530
- ]
1581
+ "type": "value",
1582
+ "value": null
1531
1583
  },
1532
- "description": "Predicate formula for filtering items.",
1584
+ "description": "The grouping formula used to group the items. The String returned from the formula will match the key in the output Oject.",
1533
1585
  "type": {
1534
1586
  "type": "Formula"
1535
1587
  }
1536
1588
  }
1537
1589
  ],
1538
1590
  "output": {
1539
- "description": "New Array containing only the items for which the Formula evaluated to True.",
1591
+ "description": "An Object where each key matches a value returned by the grouping formula, and each value is the list of items that share the return value.",
1540
1592
  "type": {
1541
- "type": "Array"
1593
+ "type": "Object"
1542
1594
  }
1543
1595
  }
1544
1596
  },
1545
- "@toddle/getCookie": {
1546
- "name": "Get Cookie",
1547
- "description": "Get the value of a cookie by name. This formula is available both server-side and client-side. Http-Only cookies will only be available server-side.",
1597
+ "@toddle/add": {
1598
+ "name": "Add",
1548
1599
  "arguments": [
1549
1600
  {
1550
- "name": "Cookie name",
1601
+ "name": "0",
1602
+ "description": "Number to be added.",
1603
+ "type": {
1604
+ "type": "Number"
1605
+ },
1551
1606
  "formula": {
1552
1607
  "type": "value",
1553
- "value": null
1554
- },
1555
- "description": "The name of the cookie you want to get the value of.",
1608
+ "value": 1
1609
+ }
1610
+ },
1611
+ {
1612
+ "name": "1",
1556
1613
  "type": {
1557
- "type": "String"
1614
+ "type": "Number"
1615
+ },
1616
+ "description": "Number to be added.",
1617
+ "formula": {
1618
+ "type": "value",
1619
+ "value": 1
1558
1620
  }
1559
1621
  }
1560
1622
  ],
1623
+ "variableArguments": true,
1624
+ "description": "Get the sum of multiple numbers.",
1561
1625
  "output": {
1562
- "description": "The value of the cookie. If a value is not found, this return value will be Null.",
1626
+ "description": "The sum of all the input numbers.",
1563
1627
  "type": {
1564
- "type": "String"
1628
+ "type": "Number"
1565
1629
  }
1566
1630
  }
1567
1631
  },
1568
- "@toddle/languages": {
1569
- "name": "Languages",
1570
- "description": "An array of the preferred languages for the user, based on the Navigator.languages property (on the client) or the Accept-Language header (on the server).",
1632
+ "@toddle/userAgent": {
1633
+ "name": "User Agent",
1634
+ "description": "Get the user agent for the browser or from the User-Agent header on the server",
1571
1635
  "arguments": [],
1572
1636
  "output": {
1573
- "description": "An array with the preferred languages for the user.",
1637
+ "description": "The user agent string.",
1574
1638
  "type": {
1575
- "type": "Array"
1639
+ "type": "String"
1576
1640
  }
1577
1641
  }
1578
1642
  },
1579
- "@toddle/findIndex": {
1580
- "name": "Find index",
1581
- "description": "Search through an Array of items and apply a formula to each item, to return the index of the first item where the formula returns True.",
1643
+ "@toddle/lessThan": {
1644
+ "name": "Less than",
1645
+ "description": "Compute if a value is smaller than another value.",
1646
+ "arguments": [
1647
+ {
1648
+ "name": "First",
1649
+ "formula": {
1650
+ "type": "value",
1651
+ "value": ""
1652
+ },
1653
+ "description": "First Number to be compared.",
1654
+ "type": {
1655
+ "type": "Number"
1656
+ }
1657
+ },
1658
+ {
1659
+ "name": "Second",
1660
+ "formula": {
1661
+ "type": "value",
1662
+ "value": ""
1663
+ },
1664
+ "description": "Second Number to be compared.",
1665
+ "type": {
1666
+ "type": "Number"
1667
+ }
1668
+ }
1669
+ ],
1670
+ "output": {
1671
+ "description": "Returns True if the First Number is smaller than the second Number, otherwise it returns False.",
1672
+ "type": {
1673
+ "type": "Boolean"
1674
+ }
1675
+ }
1676
+ },
1677
+ "@toddle/fromEntries": {
1678
+ "name": "From entries",
1679
+ "description": "Transform an Array of key-value pairs into an Object. This formula is the reverse of Entries.",
1582
1680
  "arguments": [
1583
1681
  {
1584
1682
  "name": "Array",
@@ -1586,88 +1684,107 @@
1586
1684
  "type": "value",
1587
1685
  "value": null
1588
1686
  },
1589
- "description": "The array to search.",
1687
+ "description": "An Array of Objects. Each Object should have a `key` and `value` property named `key` and `value` respectively e.g. `[{ key: 'yourKey', value: 'yourValue' }]`.",
1590
1688
  "type": {
1591
1689
  "type": "Array"
1592
1690
  }
1593
- },
1691
+ }
1692
+ ],
1693
+ "output": {
1694
+ "description": "An Object containing all entries from the input Array in the format `{yourKey: yourValue}`.",
1695
+ "type": {
1696
+ "type": "Object"
1697
+ }
1698
+ }
1699
+ },
1700
+ "@toddle/unique": {
1701
+ "name": "Unique",
1702
+ "description": "Remove duplicate values from an Array.",
1703
+ "arguments": [
1594
1704
  {
1595
- "name": "Formula",
1596
- "isFunction": true,
1705
+ "name": "Array",
1597
1706
  "formula": {
1598
- "type": "path",
1599
- "path": [
1600
- "Args",
1601
- "item"
1602
- ]
1707
+ "type": "value",
1708
+ "value": []
1603
1709
  },
1604
- "description": "The predicate formula that each item in the Array is passed to.",
1605
1710
  "type": {
1606
- "type": "Formula"
1607
- }
1711
+ "type": "Array"
1712
+ },
1713
+ "description": "The input Array."
1608
1714
  }
1609
1715
  ],
1610
1716
  "output": {
1611
- "description": "The index of the first item in the Array where the predicate formula returns True. Returns -1 if the predicate formula did not return True for any item.",
1717
+ "description": "The input Array with all duplicate values removed.",
1612
1718
  "type": {
1613
- "type": "Any"
1719
+ "type": "Array"
1614
1720
  }
1615
1721
  }
1616
1722
  },
1617
- "@toddle/sum": {
1618
- "name": "Sum",
1619
- "description": "Return the sum of an Array of numbers",
1723
+ "@toddle/getHttpOnlyCookie": {
1724
+ "name": "Get Http-Only Cookie",
1725
+ "description": "Get the value of an Http-Only cookie by name. This formula will is only intended to be used server-side for SSR/proxied API requests to read Http-Only cookies.",
1620
1726
  "arguments": [
1621
1727
  {
1622
- "name": "Array",
1623
- "type": {
1624
- "type": "Array"
1625
- },
1626
- "description": "The array of numbers to sum.",
1728
+ "name": "Cookie name",
1627
1729
  "formula": {
1628
- "type": "array",
1629
- "arguments": []
1730
+ "type": "value",
1731
+ "value": null
1732
+ },
1733
+ "description": "The name of the Http-Only cookie you want to get the value of.",
1734
+ "type": {
1735
+ "type": "String"
1630
1736
  }
1631
1737
  }
1632
1738
  ],
1633
1739
  "output": {
1634
- "description": "The total sum from adding all the numbers in the Array.",
1740
+ "description": "The value of the cookie. If no cookie is found, this will return Null. If you use this formula client-side, it will return a placeholder template string.",
1635
1741
  "type": {
1636
- "type": "Number"
1742
+ "type": "String"
1637
1743
  }
1638
1744
  }
1639
1745
  },
1640
- "@toddle/divide": {
1641
- "name": "Divide",
1642
- "description": "Perform a division calculation.",
1746
+ "@toddle/languages": {
1747
+ "name": "Languages",
1748
+ "description": "An array of the preferred languages for the user, based on the Navigator.languages property (on the client) or the Accept-Language header (on the server).",
1749
+ "arguments": [],
1750
+ "output": {
1751
+ "description": "An array with the preferred languages for the user.",
1752
+ "type": {
1753
+ "type": "Array"
1754
+ }
1755
+ }
1756
+ },
1757
+ "@toddle/lessOrEqual": {
1758
+ "name": "Less or equal",
1759
+ "description": "Compute if a value is smaller than or equal to another value.",
1643
1760
  "arguments": [
1644
1761
  {
1645
- "name": "Dividend",
1646
- "description": "The number to be divided.",
1647
- "type": {
1648
- "type": "Number"
1649
- },
1762
+ "name": "First",
1650
1763
  "formula": {
1651
1764
  "type": "value",
1652
- "value": 1
1765
+ "value": ""
1766
+ },
1767
+ "description": "First Number to be compared.",
1768
+ "type": {
1769
+ "type": "Number"
1653
1770
  }
1654
1771
  },
1655
1772
  {
1656
- "name": "Divisor",
1657
- "description": "The number to divide by.",
1658
- "type": {
1659
- "type": "Number"
1660
- },
1773
+ "name": "Second",
1661
1774
  "formula": {
1662
1775
  "type": "value",
1663
- "value": 1
1776
+ "value": ""
1777
+ },
1778
+ "description": "Second Number to be compared.",
1779
+ "type": {
1780
+ "type": "Number"
1664
1781
  }
1665
1782
  }
1666
1783
  ],
1667
1784
  "output": {
1668
- "description": "The result of dividing the dividend with the divisor.",
1785
+ "description": "Returns True if the First Number is smaller than or equal to the second Number, otherwise it returns False.",
1669
1786
  "type": {
1670
- "type": "Number"
1787
+ "type": "Boolean"
1671
1788
  }
1672
1789
  }
1673
1790
  },
@@ -1710,78 +1827,115 @@
1710
1827
  }
1711
1828
  ]
1712
1829
  },
1713
- "@toddle/last": {
1714
- "name": "Last",
1715
- "description": "Get the last item in an Array.",
1830
+ "@toddle/encodeBase64": {
1831
+ "name": "Encode to base64",
1716
1832
  "arguments": [
1717
1833
  {
1718
- "name": "Array",
1834
+ "name": "Value",
1719
1835
  "formula": {
1720
1836
  "type": "value",
1721
- "value": []
1837
+ "value": "Input value"
1722
1838
  },
1723
1839
  "type": {
1724
- "type": "Array"
1840
+ "type": "String"
1725
1841
  },
1726
- "description": "The input Array."
1842
+ "description": "The input string to be encoded."
1727
1843
  }
1728
1844
  ],
1845
+ "description": "Encode a string to base64.",
1729
1846
  "output": {
1730
- "description": "The last item in the Array.",
1847
+ "description": "The base 64 encoded string.",
1731
1848
  "type": {
1732
- "type": "Any"
1849
+ "type": "String"
1733
1850
  }
1734
1851
  }
1735
1852
  },
1736
- "@toddle/reverse": {
1737
- "name": "Reverse",
1738
- "description": "Reverse the order of an Array.",
1853
+ "@toddle/equals": {
1854
+ "name": "Equals",
1855
+ "description": "Compute if values are identical.",
1739
1856
  "arguments": [
1740
1857
  {
1741
- "name": "Array",
1858
+ "name": "First",
1742
1859
  "formula": {
1743
1860
  "type": "value",
1744
- "value": null
1861
+ "value": ""
1745
1862
  },
1746
- "description": "The Array to be reversed.",
1863
+ "description": "First Value",
1747
1864
  "type": {
1748
- "type": "Array"
1865
+ "type": "Any"
1866
+ }
1867
+ },
1868
+ {
1869
+ "name": "Second",
1870
+ "formula": {
1871
+ "type": "value",
1872
+ "value": ""
1873
+ },
1874
+ "description": "Second Value",
1875
+ "type": {
1876
+ "type": "Any"
1749
1877
  }
1750
1878
  }
1751
1879
  ],
1752
1880
  "output": {
1881
+ "description": "Returns True if the input values are identical, otherwise False.",
1753
1882
  "type": {
1754
- "type": "Array"
1755
- },
1756
- "description": "The reversed Array."
1883
+ "type": "Boolean"
1884
+ }
1757
1885
  }
1758
1886
  },
1759
- "@toddle/typeOf": {
1760
- "name": "Type of",
1761
- "description": "Get the type of a given input.",
1887
+ "@toddle/sort_by": {
1888
+ "name": "Sort by",
1889
+ "description": "Sort an Array using a formula.",
1762
1890
  "arguments": [
1763
1891
  {
1764
- "name": "Input",
1892
+ "name": "Array",
1765
1893
  "formula": {
1766
1894
  "type": "value",
1767
- "value": 1
1895
+ "value": []
1768
1896
  },
1769
- "description": "The input value.",
1770
1897
  "type": {
1771
- "type": "Any"
1772
- }
1898
+ "type": "Array"
1899
+ },
1900
+ "description": "The input Array."
1901
+ },
1902
+ {
1903
+ "name": "Formula",
1904
+ "formula": {
1905
+ "type": "path",
1906
+ "path": [
1907
+ "Args",
1908
+ "item"
1909
+ ]
1910
+ },
1911
+ "type": {
1912
+ "type": "Formula"
1913
+ },
1914
+ "isFunction": true,
1915
+ "description": "The sorting formula. The output of this formula will determine the sort order of the items. If the formula returns an Array, the items will first be sorted by the first item, then the second, etc."
1916
+ },
1917
+ {
1918
+ "name": "Ascending?",
1919
+ "formula": {
1920
+ "type": "value",
1921
+ "value": true
1922
+ },
1923
+ "type": {
1924
+ "type": "Boolean"
1925
+ },
1926
+ "description": "Should the list be sorted in ascending order?"
1773
1927
  }
1774
1928
  ],
1775
1929
  "output": {
1776
- "description": "The type of the input value. Types can be one of: String, Boolean, Number, Array, Object, or Null.",
1930
+ "description": "The input Array sorted by the value returned by the sorting formula.",
1777
1931
  "type": {
1778
- "type": "Any"
1932
+ "type": "Number"
1779
1933
  }
1780
1934
  }
1781
1935
  },
1782
- "@toddle/join": {
1783
- "name": "Join",
1784
- "description": "Combine an Array of Strings in to a single String.",
1936
+ "@toddle/map": {
1937
+ "name": "Map",
1938
+ "description": "Run a formula on each item of an Array to return a new Array.",
1785
1939
  "arguments": [
1786
1940
  {
1787
1941
  "name": "Array",
@@ -1789,35 +1943,86 @@
1789
1943
  "type": "value",
1790
1944
  "value": null
1791
1945
  },
1792
- "description": "An array of Strings.",
1946
+ "description": "The Array of items.",
1793
1947
  "type": {
1794
1948
  "type": "Array"
1795
1949
  }
1796
1950
  },
1797
1951
  {
1798
- "name": "Separator",
1952
+ "name": "Formula",
1953
+ "isFunction": true,
1954
+ "formula": {
1955
+ "type": "path",
1956
+ "path": [
1957
+ "Args",
1958
+ "item"
1959
+ ]
1960
+ },
1961
+ "description": "The formula to run on each item of the Array.",
1962
+ "type": {
1963
+ "type": "Formula"
1964
+ }
1965
+ }
1966
+ ],
1967
+ "output": {
1968
+ "description": "A new Array containing all the values returned from running the provided formula on each item in the provided input Array.",
1969
+ "type": {
1970
+ "type": "Array"
1971
+ }
1972
+ }
1973
+ },
1974
+ "@toddle/entries": {
1975
+ "name": "Entries",
1976
+ "description": "Get an Array of entries from a given Object.",
1977
+ "arguments": [
1978
+ {
1979
+ "name": "Object",
1799
1980
  "formula": {
1800
1981
  "type": "value",
1801
- "value": ", "
1982
+ "value": null
1802
1983
  },
1803
- "description": "A separator String that is inserted in between each item in the Array to join.",
1984
+ "description": "Input record",
1804
1985
  "type": {
1805
- "type": "String"
1986
+ "type": "Object"
1806
1987
  }
1807
1988
  }
1808
1989
  ],
1809
1990
  "output": {
1810
- "description": "A String combining each item in the input Array separated by the separator String, e.g. joining [\"a\", \"b\", \"c\"] with a \",\" separator will return \"a,b,c\".",
1991
+ "description": "Returns an Array of entries for the given input record. The entries are Objects with a “Key” and “Value” property.",
1811
1992
  "type": {
1812
- "type": "String"
1993
+ "type": "Array"
1813
1994
  }
1814
1995
  }
1815
1996
  },
1816
- "@toddle/encodeBase64": {
1817
- "name": "Encode to base64",
1997
+ "@toddle/getElementById": {
1998
+ "name": "Get element by id",
1999
+ "description": "Return a DOM element with a given id.",
2000
+ "cache": false,
2001
+ "arguments": [
2002
+ {
2003
+ "name": "Id",
2004
+ "formula": {
2005
+ "type": "value",
2006
+ "value": "element-id"
2007
+ },
2008
+ "type": {
2009
+ "type": "String"
2010
+ },
2011
+ "description": "The id of the DOM element to return."
2012
+ }
2013
+ ],
2014
+ "output": {
2015
+ "description": "The DOM element with the given id. If no DOM element is found, this will return Null.",
2016
+ "type": {
2017
+ "type": "Element"
2018
+ }
2019
+ }
2020
+ },
2021
+ "@toddle/decodeBase64": {
2022
+ "name": "Decode base64",
1818
2023
  "arguments": [
1819
2024
  {
1820
- "name": "Value",
2025
+ "name": "Base64 value",
1821
2026
  "formula": {
1822
2027
  "type": "value",
1823
2028
  "value": "Input value"
@@ -1825,600 +2030,515 @@
1825
2030
  "type": {
1826
2031
  "type": "String"
1827
2032
  },
1828
- "description": "The input string to be encoded."
2033
+ "description": "The input data encoded as base64."
1829
2034
  }
1830
2035
  ],
1831
- "description": "Encode a string to base64.",
2036
+ "description": "Deocde a base64 string to utf-8.",
1832
2037
  "output": {
1833
- "description": "The base 64 encoded string.",
2038
+ "description": "The decoded string.",
1834
2039
  "type": {
1835
2040
  "type": "String"
1836
2041
  }
1837
2042
  }
1838
2043
  },
1839
- "@toddle/reduce": {
1840
- "name": "Reduce",
1841
- "description": "Reduce a group of items to a single value by applying each item to a reducer formula.",
2044
+ "@toddle/flatten": {
2045
+ "name": "Flatten",
2046
+ "description": "Flatten a nested Array.",
1842
2047
  "arguments": [
1843
2048
  {
1844
2049
  "name": "Array",
1845
- "formula": {
1846
- "type": "value",
1847
- "value": null
1848
- },
1849
- "description": "The Array or Object of items to be reduced.",
2050
+ "description": "An Array containing one or more Arrays.",
1850
2051
  "type": {
1851
- "type": "Array \\| Object"
1852
- }
1853
- },
1854
- {
1855
- "name": "Formula",
1856
- "isFunction": true,
1857
- "formula": {
1858
- "type": "value",
1859
- "value": null
2052
+ "type": "Array"
1860
2053
  },
1861
- "description": "The reducer formula. Each item in the Array is applied to the formula along with the accumulator. The result of this formula will be a new accumulator used for the next item.",
1862
- "type": {
1863
- "type": "Formula"
1864
- }
1865
- },
1866
- {
1867
- "name": "Accumulator",
1868
2054
  "formula": {
1869
- "type": "value",
1870
- "value": null
1871
- },
1872
- "description": "The initial value of the accumulator. This value is passed to the reducer formula along with the first item in the Array, and the result is used as the accumulator for the next item.",
1873
- "type": {
1874
- "type": "Any"
2055
+ "type": "array",
2056
+ "arguments": []
1875
2057
  }
1876
2058
  }
1877
2059
  ],
1878
2060
  "output": {
1879
- "description": "The value returned from applying the last item to the reducer formula.",
2061
+ "description": "A flattened Array where all items in the original array are concatenated.",
1880
2062
  "type": {
1881
- "type": "Any"
2063
+ "type": "Array"
1882
2064
  }
1883
2065
  }
1884
2066
  },
1885
- "@toddle/roundDown": {
1886
- "name": "Round down",
1887
- "description": "Round a Number down to the nearest decimal point.",
2067
+ "@toddle/dropLast": {
2068
+ "name": "Drop last",
2069
+ "description": "Remove item(s) from the end of an Array or String.",
1888
2070
  "arguments": [
1889
2071
  {
1890
- "name": "Input",
1891
- "description": "Number to round down.",
1892
- "type": {
1893
- "type": "Number"
1894
- },
2072
+ "name": "Array",
1895
2073
  "formula": {
1896
2074
  "type": "value",
1897
- "value": 1
2075
+ "value": null
2076
+ },
2077
+ "description": "The input value.",
2078
+ "type": {
2079
+ "type": "Array \\| String"
1898
2080
  }
1899
2081
  },
1900
2082
  {
1901
- "name": "Decimals",
1902
- "description": "Number of decimals to round to.",
2083
+ "name": "Count",
2084
+ "formula": {
2085
+ "type": "value",
2086
+ "value": 1
2087
+ },
1903
2088
  "type": {
1904
2089
  "type": "Number"
1905
2090
  },
1906
- "formula": {
1907
- "type": "value",
1908
- "value": 0
1909
- }
2091
+ "description": "Number of items to remove."
1910
2092
  }
1911
2093
  ],
1912
2094
  "output": {
2095
+ "description": "A copy of the list without the last item(s).",
1913
2096
  "type": {
1914
- "type": "Number"
1915
- },
1916
- "description": "The rounded Number."
1917
- }
1918
- },
1919
- "@toddle/randomNumber": {
1920
- "name": "Random number",
1921
- "description": "return a random Number between 0 and 1.",
1922
- "arguments": [],
1923
- "cache": false,
1924
- "output": {
1925
- "description": "A random Number between 0 and 1.",
1926
- "type": {
1927
- "type": "Number"
2097
+ "type": "Array \\| String"
1928
2098
  }
1929
2099
  }
1930
2100
  },
1931
- "@toddle/greaterThan": {
1932
- "name": "Greater than",
1933
- "description": "Compute if a value is larger than another value.",
2101
+ "@toddle/minus": {
2102
+ "name": "Minus",
2103
+ "description": "Subtract a Number from a Number.",
1934
2104
  "arguments": [
1935
2105
  {
1936
- "name": "First",
2106
+ "name": "Minuend",
1937
2107
  "formula": {
1938
2108
  "type": "value",
1939
- "value": ""
2109
+ "value": 1
1940
2110
  },
1941
- "description": "First value to be compared.",
2111
+ "description": "The number to subtract from.",
1942
2112
  "type": {
1943
2113
  "type": "Number"
1944
2114
  }
1945
2115
  },
1946
2116
  {
1947
- "name": "Second",
2117
+ "name": "Substrahend",
1948
2118
  "formula": {
1949
2119
  "type": "value",
1950
- "value": ""
2120
+ "value": 1
1951
2121
  },
1952
- "description": "Second value to be compared.",
2122
+ "description": "The number to subtract.",
1953
2123
  "type": {
1954
2124
  "type": "Number"
1955
2125
  }
1956
2126
  }
1957
2127
  ],
1958
2128
  "output": {
1959
- "description": "Returns True if the first Number is larger than the second Number.",
1960
- "type": {
1961
- "type": "Boolean"
1962
- }
1963
- }
1964
- },
1965
- "@toddle/absolute": {
1966
- "name": "Absolute",
1967
- "description": "Get the absolute value of a Number.",
1968
- "arguments": [
1969
- {
1970
- "name": "Value",
1971
- "formula": {
1972
- "type": "value",
1973
- "value": -1
1974
- },
1975
- "type": {
1976
- "type": "Number"
1977
- },
1978
- "description": "The input Number."
1979
- }
1980
- ],
1981
- "output": {
1982
- "description": "The absolute value of the input.",
2129
+ "description": "The result of subtracting the Substrahend from the Minuend.",
1983
2130
  "type": {
1984
2131
  "type": "Number"
1985
2132
  }
1986
2133
  }
1987
2134
  },
1988
- "@toddle/parseJSON": {
1989
- "name": "Parse JSON",
1990
- "description": "Parse a String to JSON.",
2135
+ "@toddle/max": {
2136
+ "name": "Max",
2137
+ "description": "Find the largest Number from a list of inputs.",
1991
2138
  "arguments": [
1992
2139
  {
1993
- "name": "JSON string",
2140
+ "name": "0",
1994
2141
  "formula": {
1995
2142
  "type": "value",
1996
2143
  "value": null
1997
2144
  },
1998
- "description": "The String to be parsed.",
2145
+ "description": "Input Number.",
1999
2146
  "type": {
2000
- "type": "String"
2147
+ "type": "Number"
2001
2148
  }
2002
- }
2003
- ],
2004
- "output": {
2005
- "description": "The parsed JSON value. If the input is not a valid String, this returns Null.",
2006
- "type": {
2007
- "type": "Any"
2008
- }
2009
- }
2010
- },
2011
- "@toddle/concatenate": {
2012
- "name": "Concatenate",
2013
- "description": "Concatenate two or more values.",
2014
- "arguments": [
2149
+ },
2015
2150
  {
2016
- "name": "0",
2151
+ "name": "1",
2017
2152
  "formula": {
2018
2153
  "type": "value",
2019
- "value": ""
2154
+ "value": null
2020
2155
  },
2156
+ "description": "Input Number.",
2021
2157
  "type": {
2022
- "type": "Array \\| String"
2158
+ "type": "Number"
2023
2159
  }
2024
2160
  }
2025
2161
  ],
2026
2162
  "variableArguments": true,
2027
2163
  "output": {
2164
+ "description": "The largest of the input Numbers.",
2028
2165
  "type": {
2029
- "type": "Array \\| String"
2030
- },
2031
- "description": "Returns a String or Array containing all the specified input values."
2166
+ "type": "Number"
2167
+ }
2032
2168
  }
2033
2169
  },
2034
- "@toddle/json": {
2035
- "name": "JSON",
2036
- "description": "Convert a value into a JSON String.",
2170
+ "@toddle/every": {
2171
+ "name": "Every",
2172
+ "description": "Run a formula returns for all items in an Array.",
2037
2173
  "arguments": [
2038
2174
  {
2039
- "name": "Input",
2175
+ "name": "Array",
2040
2176
  "formula": {
2041
2177
  "type": "value",
2042
2178
  "value": null
2043
2179
  },
2044
- "description": "The input value.",
2180
+ "description": "The array of items to evaluate.",
2045
2181
  "type": {
2046
- "type": "Any"
2182
+ "type": "Array"
2047
2183
  }
2048
2184
  },
2049
2185
  {
2050
- "name": "Indentation",
2186
+ "name": "Formula",
2187
+ "isFunction": true,
2051
2188
  "formula": {
2052
- "type": "value",
2053
- "value": 0
2189
+ "type": "path",
2190
+ "path": [
2191
+ "Args",
2192
+ "item"
2193
+ ]
2054
2194
  },
2055
- "description": "The number of spaces used for indentation in the JSON String.",
2195
+ "description": "Predicate formula for evaluating each item.",
2056
2196
  "type": {
2057
- "type": "Number"
2197
+ "type": "Formula"
2058
2198
  }
2059
2199
  }
2060
2200
  ],
2061
2201
  "output": {
2062
- "description": "The JSON String.",
2202
+ "description": "Returns True if the predicate formula returns true for all items in the Array, otherwise False.",
2063
2203
  "type": {
2064
- "type": "String"
2204
+ "type": "Array"
2065
2205
  }
2066
2206
  }
2067
2207
  },
2068
- "@toddle/power": {
2069
- "name": "Power",
2070
- "description": "Raise a number to a power.",
2208
+ "@toddle/min": {
2209
+ "name": "Min",
2210
+ "description": "Find the smallest Number from a list of inputs.",
2071
2211
  "arguments": [
2072
2212
  {
2073
- "name": "Base",
2213
+ "name": "0",
2074
2214
  "formula": {
2075
2215
  "type": "value",
2076
- "value": 3
2216
+ "value": null
2077
2217
  },
2078
- "description": "The number to be raised to the exponent.",
2218
+ "description": "Input number",
2079
2219
  "type": {
2080
2220
  "type": "Number"
2081
2221
  }
2082
2222
  },
2083
2223
  {
2084
- "name": "Exponent",
2224
+ "name": "1",
2085
2225
  "formula": {
2086
2226
  "type": "value",
2087
- "value": 2
2227
+ "value": null
2088
2228
  },
2089
- "description": "The exponent to raise the base to.",
2229
+ "description": "Input number",
2090
2230
  "type": {
2091
2231
  "type": "Number"
2092
2232
  }
2093
2233
  }
2094
2234
  ],
2235
+ "variableArguments": true,
2095
2236
  "output": {
2237
+ "description": "The smallest of the input Numbers.",
2096
2238
  "type": {
2097
2239
  "type": "Number"
2098
- },
2099
- "description": "The result of raising the base to the exponent."
2240
+ }
2100
2241
  }
2101
2242
  },
2102
- "@toddle/range": {
2103
- "name": "Range",
2104
- "description": "Create an Array of numbers between a Min and Max value.",
2243
+ "@toddle/shuffle": {
2244
+ "name": "Shuffle",
2245
+ "description": "Shuffle items in an Array or String.",
2246
+ "cache": false,
2105
2247
  "arguments": [
2106
2248
  {
2249
+ "name": "Array",
2107
2250
  "formula": {
2108
2251
  "type": "value",
2109
- "value": 0
2110
- },
2111
- "name": "Min",
2112
- "description": "The smallest value in the list.",
2113
- "type": {
2114
- "type": "Number"
2115
- }
2116
- },
2117
- {
2118
- "name": "Max",
2119
- "formula": {
2120
- "type": "value",
2121
- "value": 10
2252
+ "value": null
2122
2253
  },
2123
- "description": "The largest value in the list.",
2254
+ "description": "The input value.",
2124
2255
  "type": {
2125
- "type": "Number"
2256
+ "type": "Array \\| String"
2126
2257
  }
2127
2258
  }
2128
2259
  ],
2129
2260
  "output": {
2130
- "description": "An Array containing all the numbers between Min and Max, inclusive.",
2131
- "type": {
2132
- "type": "Array"
2133
- }
2134
- }
2135
- },
2136
- "@toddle/now": {
2137
- "name": "Now",
2138
- "description": "Get a Date representing \"Now\"",
2139
- "arguments": [],
2140
- "cache": false,
2141
- "output": {
2142
- "description": "A Date object initialized at the current date/time.",
2261
+ "description": "The shuffled Array or String.",
2143
2262
  "type": {
2144
- "type": "Date"
2263
+ "type": "Array \\| String"
2145
2264
  }
2146
2265
  }
2147
2266
  },
2148
- "@toddle/get": {
2149
- "name": "Get",
2150
- "description": "Extract a value from an Object, Array or String at the specified path.",
2267
+ "@toddle/multiply": {
2268
+ "name": "Multiply",
2269
+ "description": "Multiply two or more Numbers.",
2151
2270
  "arguments": [
2152
2271
  {
2153
- "name": "Object",
2272
+ "name": "0",
2154
2273
  "formula": {
2155
2274
  "type": "value",
2156
- "value": null
2275
+ "value": 1
2157
2276
  },
2158
- "description": "The Object, Array or String you want to extract an item from.",
2159
2277
  "type": {
2160
- "type": "Array \\| Object \\| String"
2161
- }
2278
+ "type": "Number"
2279
+ },
2280
+ "description": "Number to be multiplied."
2162
2281
  },
2163
2282
  {
2164
- "name": "Path",
2283
+ "name": "1",
2165
2284
  "formula": {
2166
2285
  "type": "value",
2167
- "value": "Item"
2286
+ "value": 1
2168
2287
  },
2169
- "description": "The Path can be either a Number, a String, or an Array.",
2170
2288
  "type": {
2171
- "type": "Array<String> \\| Number \\| String"
2172
- }
2289
+ "type": "Number"
2290
+ },
2291
+ "description": "Number to be multiplied."
2173
2292
  }
2174
2293
  ],
2294
+ "variableArguments": true,
2175
2295
  "output": {
2176
- "description": "The value found at the Path. If no value is found, this value of the output is Null.",
2296
+ "description": "The product of multiplying the input Numbers.",
2177
2297
  "type": {
2178
- "type": "Any"
2298
+ "type": "Number"
2179
2299
  }
2180
2300
  }
2181
2301
  },
2182
- "@toddle/flatten": {
2183
- "name": "Flatten",
2184
- "description": "Flatten a nested Array.",
2302
+ "@toddle/dateFromTimestamp": {
2303
+ "name": "Date From Timestamp",
2185
2304
  "arguments": [
2186
2305
  {
2187
- "name": "Array",
2188
- "description": "An Array containing one or more Arrays.",
2306
+ "name": "Timestamp",
2307
+ "description": "A Number in milliseconds since 1st January, 1970 (EPOCH).",
2189
2308
  "type": {
2190
- "type": "Array"
2309
+ "type": "Number"
2191
2310
  },
2192
2311
  "formula": {
2193
- "type": "array",
2194
- "arguments": []
2312
+ "type": "value",
2313
+ "value": 1687787245933
2195
2314
  }
2196
2315
  }
2197
2316
  ],
2317
+ "description": "Convert a timestamp (milliseconds) to a Date.",
2198
2318
  "output": {
2199
- "description": "A flattened Array where all items in the original array are concatenated.",
2319
+ "description": "The input value converted to a Date.",
2200
2320
  "type": {
2201
- "type": "Array"
2321
+ "type": "Date"
2202
2322
  }
2203
2323
  }
2204
2324
  },
2205
- "@toddle/shuffle": {
2206
- "name": "Shuffle",
2207
- "description": "Shuffle items in an Array or String.",
2208
- "cache": false,
2325
+ "@toddle/branchName": {
2326
+ "name": "Branch Name",
2327
+ "description": "Get the name of the current branch. For production, the branch name is 'main'.",
2328
+ "arguments": [],
2329
+ "output": {
2330
+ "description": "Returns the name of the current branch.",
2331
+ "type": {
2332
+ "type": "String"
2333
+ }
2334
+ }
2335
+ },
2336
+ "@toddle/boolean": {
2337
+ "name": "Boolean",
2338
+ "description": "Convert a value of any type to a Boolean.",
2209
2339
  "arguments": [
2210
2340
  {
2211
- "name": "Array",
2341
+ "name": "Input",
2342
+ "description": "Value of any type.",
2343
+ "type": {
2344
+ "type": "Any"
2345
+ },
2212
2346
  "formula": {
2213
2347
  "type": "value",
2214
- "value": null
2215
- },
2216
- "description": "The input value.",
2217
- "type": {
2218
- "type": "Array \\| String"
2348
+ "value": "1"
2219
2349
  }
2220
2350
  }
2221
2351
  ],
2222
2352
  "output": {
2223
- "description": "The shuffled Array or String.",
2353
+ "description": "The input value converted to a Boolean. False and Null will return False, all other values will return True.",
2224
2354
  "type": {
2225
- "type": "Array \\| String"
2355
+ "type": "Boolean"
2226
2356
  }
2227
2357
  }
2228
2358
  },
2229
- "@toddle/defaultTo": {
2230
- "name": "Default to",
2231
- "description": "Return the first value that is not False or Null.",
2359
+ "@toddle/last": {
2360
+ "name": "Last",
2361
+ "description": "Get the last item in an Array.",
2232
2362
  "arguments": [
2233
2363
  {
2234
- "name": "0",
2364
+ "name": "Array",
2235
2365
  "formula": {
2236
2366
  "type": "value",
2237
- "value": null
2367
+ "value": []
2238
2368
  },
2239
- "description": "The inital value.",
2240
- "type": {
2241
- "type": "Any"
2242
- }
2243
- },
2244
- {
2245
- "name": "1",
2246
- "description": "The first fallback value to be used if the primary value is Null or False.",
2247
2369
  "type": {
2248
- "type": "Any"
2370
+ "type": "Array"
2249
2371
  },
2250
- "formula": {
2251
- "type": "value",
2252
- "value": "default"
2253
- }
2372
+ "description": "The input Array."
2254
2373
  }
2255
2374
  ],
2256
- "variableArguments": true,
2257
2375
  "output": {
2258
- "description": "Returns the first value that is not False or Null. Returns Null if no valid values is given.",
2376
+ "description": "The last item in the Array.",
2259
2377
  "type": {
2260
2378
  "type": "Any"
2261
2379
  }
2262
2380
  }
2263
2381
  },
2264
- "@toddle/minus": {
2265
- "name": "Minus",
2266
- "description": "Subtract a Number from a Number.",
2382
+ "@toddle/roundUp": {
2383
+ "name": "Round up",
2384
+ "description": "Round a Number up to the nearest decimal point.",
2267
2385
  "arguments": [
2268
2386
  {
2269
- "name": "Minuend",
2387
+ "name": "Input",
2388
+ "description": "Number to round up.",
2389
+ "type": {
2390
+ "type": "Number"
2391
+ },
2270
2392
  "formula": {
2271
2393
  "type": "value",
2272
2394
  "value": 1
2273
- },
2274
- "description": "The number to subtract from.",
2275
- "type": {
2276
- "type": "Number"
2277
2395
  }
2278
2396
  },
2279
2397
  {
2280
- "name": "Substrahend",
2281
- "formula": {
2282
- "type": "value",
2283
- "value": 1
2284
- },
2285
- "description": "The number to subtract.",
2398
+ "name": "Decimals",
2399
+ "description": "Number of decimals to round to.",
2286
2400
  "type": {
2287
2401
  "type": "Number"
2402
+ },
2403
+ "formula": {
2404
+ "type": "value",
2405
+ "value": 0
2288
2406
  }
2289
2407
  }
2290
2408
  ],
2291
2409
  "output": {
2292
- "description": "The result of subtracting the Substrahend from the Minuend.",
2293
2410
  "type": {
2294
2411
  "type": "Number"
2295
- }
2412
+ },
2413
+ "description": "The rounded Number."
2296
2414
  }
2297
2415
  },
2298
- "@toddle/min": {
2299
- "name": "Min",
2300
- "description": "Find the smallest Number from a list of inputs.",
2416
+ "@toddle/findLast": {
2417
+ "name": "Find Last",
2418
+ "description": "Search through an Array of items and apply a formula to each item, to return the last item where the formula returns True.",
2301
2419
  "arguments": [
2302
2420
  {
2303
- "name": "0",
2421
+ "name": "Array",
2304
2422
  "formula": {
2305
2423
  "type": "value",
2306
2424
  "value": null
2307
2425
  },
2308
- "description": "Input number",
2426
+ "description": "The array to search.",
2309
2427
  "type": {
2310
- "type": "Number"
2428
+ "type": "Array"
2311
2429
  }
2312
2430
  },
2313
2431
  {
2314
- "name": "1",
2432
+ "name": "Formula",
2433
+ "isFunction": true,
2315
2434
  "formula": {
2316
- "type": "value",
2317
- "value": null
2435
+ "type": "path",
2436
+ "path": [
2437
+ "Args",
2438
+ "item"
2439
+ ]
2318
2440
  },
2319
- "description": "Input number",
2441
+ "description": "The predicate formula that each item in the Array is passed to.",
2320
2442
  "type": {
2321
- "type": "Number"
2443
+ "type": "Formula"
2322
2444
  }
2323
2445
  }
2324
2446
  ],
2325
- "variableArguments": true,
2326
2447
  "output": {
2327
- "description": "The smallest of the input Numbers.",
2448
+ "description": "The last item in the Array where the formula returns True. Returns Null if the predicate formula did not return True for any item.",
2328
2449
  "type": {
2329
- "type": "Number"
2450
+ "type": "Any"
2330
2451
  }
2331
2452
  }
2332
2453
  },
2333
- "@toddle/trim": {
2334
- "name": "Trim",
2335
- "description": "Remove any leading and trailing white spaces from a String.",
2454
+ "@toddle/json": {
2455
+ "name": "JSON",
2456
+ "description": "Convert a value into a JSON String.",
2336
2457
  "arguments": [
2337
2458
  {
2338
- "name": "String",
2459
+ "name": "Input",
2339
2460
  "formula": {
2340
2461
  "type": "value",
2341
- "value": ""
2462
+ "value": null
2342
2463
  },
2343
- "description": "The String to trim.",
2464
+ "description": "The input value.",
2344
2465
  "type": {
2345
- "type": "String"
2466
+ "type": "Any"
2467
+ }
2468
+ },
2469
+ {
2470
+ "name": "Indentation",
2471
+ "formula": {
2472
+ "type": "value",
2473
+ "value": 0
2474
+ },
2475
+ "description": "The number of spaces used for indentation in the JSON String.",
2476
+ "type": {
2477
+ "type": "Number"
2346
2478
  }
2347
2479
  }
2348
2480
  ],
2349
2481
  "output": {
2350
- "description": "The trimmed String.",
2482
+ "description": "The JSON String.",
2351
2483
  "type": {
2352
2484
  "type": "String"
2353
2485
  }
2354
2486
  }
2355
2487
  },
2356
- "@toddle/take": {
2357
- "name": "Take",
2358
- "description": "Take items from the start of an Array or String.",
2488
+ "@toddle/typeOf": {
2489
+ "name": "Type of",
2490
+ "description": "Get the type of a given input.",
2359
2491
  "arguments": [
2360
2492
  {
2361
- "name": "Array",
2362
- "formula": {
2363
- "type": "value",
2364
- "value": null
2365
- },
2366
- "description": "Input Array or String.",
2367
- "type": {
2368
- "type": "Array \\| String"
2369
- }
2370
- },
2371
- {
2372
- "name": "Count",
2493
+ "name": "Input",
2373
2494
  "formula": {
2374
2495
  "type": "value",
2375
2496
  "value": 1
2376
2497
  },
2498
+ "description": "The input value.",
2377
2499
  "type": {
2378
- "type": "Number"
2379
- },
2380
- "description": "Number of items to take."
2500
+ "type": "Any"
2501
+ }
2381
2502
  }
2382
2503
  ],
2383
2504
  "output": {
2384
- "description": "The first items from the Array or String.",
2505
+ "description": "The type of the input value. Types can be one of: String, Boolean, Number, Array, Object, or Null.",
2385
2506
  "type": {
2386
- "type": "Array \\| String"
2507
+ "type": "Any"
2387
2508
  }
2388
2509
  }
2389
2510
  },
2390
- "@toddle/groupBy": {
2391
- "name": "Group by",
2392
- "description": "Group an Array of items into an Object based on a grouping formula.",
2511
+ "@toddle/greaterThan": {
2512
+ "name": "Greater than",
2513
+ "description": "Compute if a value is larger than another value.",
2393
2514
  "arguments": [
2394
2515
  {
2395
- "name": "Array",
2516
+ "name": "First",
2396
2517
  "formula": {
2397
2518
  "type": "value",
2398
- "value": null
2519
+ "value": ""
2399
2520
  },
2400
- "description": "Array of items to be grouped.",
2521
+ "description": "First value to be compared.",
2401
2522
  "type": {
2402
- "type": "Array"
2523
+ "type": "Number"
2403
2524
  }
2404
2525
  },
2405
2526
  {
2406
- "name": "Formula",
2407
- "isFunction": true,
2527
+ "name": "Second",
2408
2528
  "formula": {
2409
2529
  "type": "value",
2410
- "value": null
2530
+ "value": ""
2411
2531
  },
2412
- "description": "The grouping formula used to group the items. The String returned from the formula will match the key in the output Oject.",
2532
+ "description": "Second value to be compared.",
2413
2533
  "type": {
2414
- "type": "Formula"
2534
+ "type": "Number"
2415
2535
  }
2416
2536
  }
2417
2537
  ],
2418
2538
  "output": {
2419
- "description": "An Object where each key matches a value returned by the grouping formula, and each value is the list of items that share the return value.",
2539
+ "description": "Returns True if the first Number is larger than the second Number.",
2420
2540
  "type": {
2421
- "type": "Object"
2541
+ "type": "Boolean"
2422
2542
  }
2423
2543
  }
2424
2544
  },
@@ -2467,9 +2587,9 @@
2467
2587
  }
2468
2588
  }
2469
2589
  },
2470
- "@toddle/some": {
2471
- "name": "Some",
2472
- "description": "Run a formula on all items of an Array to determine if any item matches a set of conditions.",
2590
+ "@toddle/take": {
2591
+ "name": "Take",
2592
+ "description": "Take items from the start of an Array or String.",
2473
2593
  "arguments": [
2474
2594
  {
2475
2595
  "name": "Array",
@@ -2477,189 +2597,105 @@
2477
2597
  "type": "value",
2478
2598
  "value": null
2479
2599
  },
2480
- "description": "The Array of items to evaluate.",
2600
+ "description": "Input Array or String.",
2481
2601
  "type": {
2482
- "type": "Array"
2602
+ "type": "Array \\| String"
2483
2603
  }
2484
2604
  },
2485
2605
  {
2486
- "name": "Formula",
2487
- "isFunction": true,
2488
- "formula": {
2489
- "type": "path",
2490
- "path": [
2491
- "Args",
2492
- "item"
2493
- ]
2494
- },
2495
- "description": "Predicate formula for evaluating each item.",
2496
- "type": {
2497
- "type": "Formula"
2498
- }
2499
- }
2500
- ],
2501
- "output": {
2502
- "description": "Returns True if the predicate formula returns True for any items in the Array, otherwise False.",
2503
- "type": {
2504
- "type": "Boolean"
2505
- }
2506
- }
2507
- },
2508
- "@toddle/getElementById": {
2509
- "name": "Get element by id",
2510
- "description": "Return a DOM element with a given id.",
2511
- "cache": false,
2512
- "arguments": [
2513
- {
2514
- "name": "Id",
2606
+ "name": "Count",
2515
2607
  "formula": {
2516
2608
  "type": "value",
2517
- "value": "element-id"
2609
+ "value": 1
2518
2610
  },
2519
2611
  "type": {
2520
- "type": "String"
2612
+ "type": "Number"
2521
2613
  },
2522
- "description": "The id of the DOM element to return."
2614
+ "description": "Number of items to take."
2523
2615
  }
2524
2616
  ],
2525
2617
  "output": {
2526
- "description": "The DOM element with the given id. If no DOM element is found, this will return Null.",
2527
- "type": {
2528
- "type": "Element"
2529
- }
2530
- }
2531
- },
2532
- "@toddle/branchName": {
2533
- "name": "Branch Name",
2534
- "description": "Get the name of the current branch. For production, the branch name is 'main'.",
2535
- "arguments": [],
2536
- "output": {
2537
- "description": "Returns the name of the current branch.",
2618
+ "description": "The first items from the Array or String.",
2538
2619
  "type": {
2539
- "type": "String"
2620
+ "type": "Array \\| String"
2540
2621
  }
2541
2622
  }
2542
2623
  },
2543
- "@toddle/sort_by": {
2544
- "name": "Sort by",
2545
- "description": "Sort an Array using a formula.",
2624
+ "@toddle/decodeURIComponent": {
2625
+ "name": "Decode URI Component",
2626
+ "description": "Decode a URI component that was previously encoded with the Encode URI Component formula.",
2546
2627
  "arguments": [
2547
2628
  {
2548
- "name": "Array",
2549
- "formula": {
2550
- "type": "value",
2551
- "value": []
2552
- },
2553
- "type": {
2554
- "type": "Array"
2555
- },
2556
- "description": "The input Array."
2557
- },
2558
- {
2559
- "name": "Formula",
2560
- "formula": {
2561
- "type": "path",
2562
- "path": [
2563
- "Args",
2564
- "item"
2565
- ]
2566
- },
2567
- "type": {
2568
- "type": "Formula"
2569
- },
2570
- "isFunction": true,
2571
- "description": "The sorting formula. The output of this formula will determine the sort order of the items. If the formula returns an Array, the items will first be sorted by the first item, then the second, etc."
2572
- },
2573
- {
2574
- "name": "Ascending?",
2629
+ "name": "EncodedURI",
2575
2630
  "formula": {
2576
2631
  "type": "value",
2577
- "value": true
2632
+ "value": null
2578
2633
  },
2579
2634
  "type": {
2580
- "type": "Boolean"
2635
+ "type": "String"
2581
2636
  },
2582
- "description": "Should the list be sorted in ascending order?"
2637
+ "description": "The encoded URI to decode."
2583
2638
  }
2584
2639
  ],
2585
2640
  "output": {
2586
- "description": "The input Array sorted by the value returned by the sorting formula.",
2641
+ "description": "The decoded URI component.",
2587
2642
  "type": {
2588
- "type": "Number"
2643
+ "type": "String"
2589
2644
  }
2590
2645
  }
2591
2646
  },
2592
- "@toddle/clamp": {
2593
- "name": "Clamp",
2594
- "description": "Limit a value to a specified Min and Max value.",
2647
+ "@toddle/replaceAll": {
2648
+ "name": "Replace all",
2649
+ "description": "Replace all occurrences of a substring in a String.",
2595
2650
  "arguments": [
2596
2651
  {
2597
- "name": "Value",
2652
+ "name": "Input",
2653
+ "description": "The input String to search in.",
2598
2654
  "type": {
2599
- "type": "Number"
2600
- },
2601
- "formula": {
2602
- "type": "value",
2603
- "value": null
2655
+ "type": "String"
2604
2656
  },
2605
- "description": "Number to round."
2657
+ "required": true
2606
2658
  },
2607
2659
  {
2608
- "name": "Min",
2660
+ "name": "Search",
2661
+ "description": "The substring to search for.",
2609
2662
  "type": {
2610
- "type": "Number"
2663
+ "type": "String"
2611
2664
  },
2612
- "description": "The smallest allowed Number.",
2613
- "formula": {
2614
- "type": "value",
2615
- "value": 0
2616
- }
2665
+ "required": true
2617
2666
  },
2618
2667
  {
2619
- "name": "Max",
2668
+ "name": "Replace with",
2669
+ "description": "The replacement value.",
2620
2670
  "type": {
2621
- "type": "Number"
2671
+ "type": "String"
2622
2672
  },
2623
- "description": "The largest allowed Number.",
2624
- "formula": {
2625
- "type": "value",
2626
- "value": 100
2627
- }
2673
+ "required": true
2628
2674
  }
2629
2675
  ],
2630
2676
  "output": {
2631
2677
  "type": {
2632
- "type": "Number"
2678
+ "type": "String"
2633
2679
  },
2634
- "description": "Returns the input value if between the specified Min and Max. Otherwise, it returns the Min or Max value."
2680
+ "name": "Output",
2681
+ "description": "The resulting String."
2635
2682
  }
2636
2683
  },
2637
- "@toddle/decodeBase64": {
2638
- "name": "Decode base64",
2639
- "arguments": [
2640
- {
2641
- "name": "Base64 value",
2642
- "formula": {
2643
- "type": "value",
2644
- "value": "Input value"
2645
- },
2646
- "type": {
2647
- "type": "String"
2648
- },
2649
- "description": "The input data encoded as base64."
2650
- }
2651
- ],
2652
- "description": "Deocde a base64 string to utf-8.",
2684
+ "@toddle/currentURL": {
2685
+ "name": "Current URL",
2686
+ "description": "Return the current URL of the browser. Use the \"Parse URL\" formula for working with the URL.",
2687
+ "arguments": [],
2688
+ "cache": false,
2653
2689
  "output": {
2654
- "description": "The decoded string.",
2690
+ "description": "The browser's current URL.",
2655
2691
  "type": {
2656
2692
  "type": "String"
2657
2693
  }
2658
2694
  }
2659
2695
  },
2660
- "@toddle/findLast": {
2661
- "name": "Find Last",
2662
- "description": "Search through an Array of items and apply a formula to each item, to return the last item where the formula returns True.",
2696
+ "@toddle/findIndex": {
2697
+ "name": "Find index",
2698
+ "description": "Search through an Array of items and apply a formula to each item, to return the index of the first item where the formula returns True.",
2663
2699
  "arguments": [
2664
2700
  {
2665
2701
  "name": "Array",
@@ -2689,188 +2725,151 @@
2689
2725
  }
2690
2726
  ],
2691
2727
  "output": {
2692
- "description": "The last item in the Array where the formula returns True. Returns Null if the predicate formula did not return True for any item.",
2728
+ "description": "The index of the first item in the Array where the predicate formula returns True. Returns -1 if the predicate formula did not return True for any item.",
2693
2729
  "type": {
2694
2730
  "type": "Any"
2695
2731
  }
2696
2732
  }
2697
2733
  },
2698
- "@toddle/drop": {
2699
- "name": "Drop",
2700
- "description": "Remove items from the beginning of an Array or String.",
2734
+ "@toddle/startsWith": {
2735
+ "name": "Starts with",
2736
+ "description": "Check if a String has a given prefix.",
2701
2737
  "arguments": [
2702
2738
  {
2703
- "name": "Array",
2739
+ "name": "String",
2704
2740
  "formula": {
2705
2741
  "type": "value",
2706
- "value": null
2742
+ "value": ""
2707
2743
  },
2708
- "description": "The input value.",
2744
+ "description": "The String to check.",
2709
2745
  "type": {
2710
- "type": "Array \\| String"
2746
+ "type": "String"
2711
2747
  }
2712
2748
  },
2713
2749
  {
2714
- "name": "Count",
2715
- "description": "Number of items to remove.",
2716
- "type": {
2717
- "type": "Number"
2718
- },
2750
+ "name": "Prefix",
2719
2751
  "formula": {
2720
2752
  "type": "value",
2721
- "value": 1
2753
+ "value": ""
2754
+ },
2755
+ "description": "The prefix to check for.",
2756
+ "type": {
2757
+ "type": "String"
2722
2758
  }
2723
2759
  }
2724
2760
  ],
2725
2761
  "output": {
2726
- "description": "A copy of the list without the first items.",
2762
+ "description": "Returns True if the input String starts with the prefix, otherwise False",
2727
2763
  "type": {
2728
- "type": "Array \\| String"
2764
+ "type": "Boolean"
2729
2765
  }
2730
2766
  }
2731
2767
  },
2732
- "@toddle/entries": {
2733
- "name": "Entries",
2734
- "description": "Get an Array of entries from a given Object.",
2768
+ "@toddle/encodeJSON": {
2769
+ "name": "Encode JSON",
2770
+ "description": "Encode data as JSON.",
2735
2771
  "arguments": [
2736
2772
  {
2737
- "name": "Object",
2773
+ "name": "Data",
2738
2774
  "formula": {
2739
2775
  "type": "value",
2740
2776
  "value": null
2741
2777
  },
2742
- "description": "Input record",
2778
+ "description": "The data to convert.",
2743
2779
  "type": {
2744
- "type": "Object"
2780
+ "type": "Any"
2745
2781
  }
2746
- }
2747
- ],
2748
- "output": {
2749
- "description": "Returns an Array of entries for the given input record. The entries are Objects with a “Key” and “Value” property.",
2750
- "type": {
2751
- "type": "Array"
2752
- }
2753
- }
2754
- },
2755
- "@toddle/getHttpOnlyCookie": {
2756
- "name": "Get Http-Only Cookie",
2757
- "description": "Get the value of an Http-Only cookie by name. This formula will is only intended to be used server-side for SSR/proxied API requests to read Http-Only cookies.",
2758
- "arguments": [
2782
+ },
2759
2783
  {
2760
- "name": "Cookie name",
2784
+ "name": "Indent",
2761
2785
  "formula": {
2762
2786
  "type": "value",
2763
- "value": null
2787
+ "value": 2
2764
2788
  },
2765
- "description": "The name of the Http-Only cookie you want to get the value of.",
2789
+ "description": "How many characters the encoded value will be indented.",
2766
2790
  "type": {
2767
- "type": "String"
2791
+ "type": "Number"
2768
2792
  }
2769
2793
  }
2770
2794
  ],
2771
2795
  "output": {
2772
- "description": "The value of the cookie. If no cookie is found, this will return Null. If you use this formula client-side, it will return a placeholder template string.",
2796
+ "description": "The encoded JSON value.",
2773
2797
  "type": {
2774
2798
  "type": "String"
2775
2799
  }
2776
2800
  }
2777
2801
  },
2778
- "@toddle/max": {
2779
- "name": "Max",
2780
- "description": "Find the largest Number from a list of inputs.",
2802
+ "@toddle/number": {
2803
+ "name": "Number",
2804
+ "description": "Convert a value of any type to a Number.",
2781
2805
  "arguments": [
2782
2806
  {
2783
- "name": "0",
2784
- "formula": {
2785
- "type": "value",
2786
- "value": null
2787
- },
2788
- "description": "Input Number.",
2807
+ "name": "Input",
2808
+ "description": "Value of any type",
2789
2809
  "type": {
2790
- "type": "Number"
2791
- }
2792
- },
2793
- {
2794
- "name": "1",
2810
+ "type": "Any"
2811
+ },
2795
2812
  "formula": {
2796
2813
  "type": "value",
2797
- "value": null
2798
- },
2799
- "description": "Input Number.",
2800
- "type": {
2801
- "type": "Number"
2814
+ "value": "1"
2802
2815
  }
2803
2816
  }
2804
2817
  ],
2805
- "variableArguments": true,
2806
2818
  "output": {
2807
- "description": "The largest of the input Numbers.",
2819
+ "description": "The input value converted to a Number.",
2808
2820
  "type": {
2809
2821
  "type": "Number"
2810
2822
  }
2811
2823
  }
2812
2824
  },
2813
- "@toddle/equals": {
2814
- "name": "Equals",
2815
- "description": "Compute if values are identical.",
2825
+ "@toddle/set": {
2826
+ "name": "Set",
2827
+ "description": "Set a value in an Object or Array based on a specified path.",
2816
2828
  "arguments": [
2817
2829
  {
2818
- "name": "First",
2830
+ "name": "Object",
2819
2831
  "formula": {
2820
2832
  "type": "value",
2821
- "value": ""
2833
+ "value": null
2822
2834
  },
2823
- "description": "First Value",
2835
+ "description": "The input Object.",
2824
2836
  "type": {
2825
- "type": "Any"
2837
+ "type": "Object"
2826
2838
  }
2827
2839
  },
2828
2840
  {
2829
- "name": "Second",
2841
+ "name": "Path",
2830
2842
  "formula": {
2831
2843
  "type": "value",
2832
- "value": ""
2844
+ "value": "Key"
2833
2845
  },
2834
- "description": "Second Value",
2846
+ "description": "The Path can be either a Number, a String or an Array of Strings.",
2835
2847
  "type": {
2836
- "type": "Any"
2848
+ "type": "Array \\| Number \\| String"
2837
2849
  }
2838
- }
2839
- ],
2840
- "output": {
2841
- "description": "Returns True if the input values are identical, otherwise False.",
2842
- "type": {
2843
- "type": "Boolean"
2844
- }
2845
- }
2846
- },
2847
- "@toddle/getFromLocalStorage": {
2848
- "name": "Get from Local Storage",
2849
- "description": "Read a value from local storage with the provided key.",
2850
- "cache": false,
2851
- "arguments": [
2850
+ },
2852
2851
  {
2853
- "name": "Key",
2852
+ "name": "Value",
2854
2853
  "formula": {
2855
2854
  "type": "value",
2856
- "value": null
2855
+ "value": "Item"
2857
2856
  },
2858
- "description": "The key to read from local storage.",
2857
+ "description": "The value to set.",
2859
2858
  "type": {
2860
- "type": "String"
2859
+ "type": "Any"
2861
2860
  }
2862
2861
  }
2863
2862
  ],
2864
2863
  "output": {
2865
- "description": "The value found in local storage. If no value is found, this will return Null.",
2864
+ "description": "The input Object with the new field.",
2866
2865
  "type": {
2867
- "type": "Any"
2866
+ "type": "Object"
2868
2867
  }
2869
2868
  }
2870
2869
  },
2871
- "@toddle/dropLast": {
2872
- "name": "Drop last",
2873
- "description": "Remove item(s) from the end of an Array or String.",
2870
+ "@toddle/keyBy": {
2871
+ "name": "Key by",
2872
+ "description": "Organize an Array of items into an Object based on a Key formula.",
2874
2873
  "arguments": [
2875
2874
  {
2876
2875
  "name": "Array",
@@ -2878,91 +2877,86 @@
2878
2877
  "type": "value",
2879
2878
  "value": null
2880
2879
  },
2881
- "description": "The input value.",
2880
+ "description": "Array of items.",
2882
2881
  "type": {
2883
- "type": "Array \\| String"
2882
+ "type": "Array"
2884
2883
  }
2885
2884
  },
2886
2885
  {
2887
- "name": "Count",
2886
+ "name": "Formula",
2887
+ "isFunction": true,
2888
2888
  "formula": {
2889
2889
  "type": "value",
2890
- "value": 1
2890
+ "value": null
2891
2891
  },
2892
+ "description": "The key formula used to index the items. The String returned from the formula will match the key in the output Object.",
2892
2893
  "type": {
2893
- "type": "Number"
2894
- },
2895
- "description": "Number of items to remove."
2894
+ "type": "Formula"
2895
+ }
2896
2896
  }
2897
2897
  ],
2898
2898
  "output": {
2899
- "description": "A copy of the list without the last item(s).",
2899
+ "description": "An Object where each key matches a value returned by the key formula, and each value is the item that String was returned for.",
2900
2900
  "type": {
2901
- "type": "Array \\| String"
2901
+ "type": "Object"
2902
2902
  }
2903
2903
  }
2904
2904
  }
2905
2905
  };
2906
2906
  export const actions = {
2907
- "@toddle/clearLocalStorage": {
2908
- "name": "Clear Local Storage",
2909
- "description": "Delete all values in local storage.",
2907
+ "@toddle/stopPropagation": {
2908
+ "name": "Stop propagation",
2909
+ "docs-link": "https://developer.mozilla.org/en-US/docs/Web/API/Event/stopPropagation",
2910
+ "description": "Stop the event from bubbling up the DOM to parent elements.",
2910
2911
  "arguments": []
2911
2912
  },
2912
- "@toddle/saveToSessionStorage": {
2913
- "name": "Save to Session Storage",
2914
- "description": "Save a provided key/value to session storage by JSON encoding the value.",
2913
+ "@toddle/sleep": {
2914
+ "name": "Sleep",
2915
+ "description": "Run an action after a delay.",
2915
2916
  "arguments": [
2916
2917
  {
2917
- "name": "Key",
2918
- "description": "The key to be used in session storage.",
2919
- "type": {
2920
- "type": "String"
2921
- },
2922
- "formula": {
2923
- "type": "value",
2924
- "value": ""
2925
- }
2926
- },
2927
- {
2928
- "name": "Value",
2929
- "description": "The value that should be saved in session storage. This can be anything that is serializable (String, Number, Boolean, Array or Object).",
2918
+ "name": "Delay in milliseconds",
2919
+ "description": "The number of milliseconds to wait before an action is executed.",
2930
2920
  "type": {
2931
- "type": "Any"
2921
+ "type": "Number"
2932
2922
  },
2933
2923
  "formula": {
2934
2924
  "type": "value",
2935
- "value": null
2925
+ "value": 500
2936
2926
  }
2937
2927
  }
2938
- ]
2928
+ ],
2929
+ "events": {
2930
+ "tick": {
2931
+ "actions": []
2932
+ }
2933
+ }
2939
2934
  },
2940
- "@toddle/preventDefault": {
2941
- "name": "Prevent default",
2942
- "docs-link": "https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault",
2943
- "description": "Prevent default browser behavior for this event.",
2935
+ "@toddle/clearSessionStorage": {
2936
+ "name": "Clear Session Storage",
2937
+ "description": "Delete all values in session storage.",
2944
2938
  "arguments": []
2945
2939
  },
2946
- "@toddle/focus": {
2947
- "name": "Focus",
2948
- "description": "Move focus to a DOM element.",
2940
+ "@toddle/deleteFromSessionStorage": {
2941
+ "name": "Delete from Session Storage",
2942
+ "description": "Delete a value from session storage (if found) based on the provided key.",
2949
2943
  "arguments": [
2950
2944
  {
2951
- "name": "Element",
2952
- "description": "The DOM element that should receive focus.",
2945
+ "name": "Key",
2946
+ "description": "The key in session storage to delete.",
2953
2947
  "type": {
2954
- "type": "Element"
2948
+ "type": "String"
2955
2949
  },
2956
2950
  "formula": {
2957
- "type": "Element",
2958
- "value": null
2951
+ "type": "value",
2952
+ "value": ""
2959
2953
  }
2960
2954
  }
2961
2955
  ]
2962
2956
  },
2963
- "@toddle/setCookie": {
2964
- "name": "Set Cookie",
2965
- "description": "Save a key/value pair as a non-http-only cookie (readable on the client). Useful for storing user preferences.",
2957
+ "@toddle/setHttpOnlyCookie": {
2958
+ "name": "Set Http-Only Cookie",
2959
+ "description": "Save a key/value pair as an Http-Only cookie. Useful for storing JWTs or other tokens.",
2966
2960
  "arguments": [
2967
2961
  {
2968
2962
  "name": "Name",
@@ -2972,7 +2966,7 @@
2972
2966
  },
2973
2967
  "formula": {
2974
2968
  "type": "value",
2975
- "value": ""
2969
+ "value": "access_token"
2976
2970
  }
2977
2971
  },
2978
2972
  {
@@ -2985,98 +2979,21 @@
2985
2979
  "type": "value",
2986
2980
  "value": ""
2987
2981
  }
2988
- },
2989
- {
2990
- "name": "Expires in",
2991
- "description": "(Optional) Time in seconds until the cookie expires. If this is null, the cookie will expire at the end of the user's session.",
2992
- "type": {
2993
- "type": "Number"
2994
- },
2995
- "formula": {
2996
- "type": "value",
2997
- "value": null
2998
- }
2999
- },
3000
- {
3001
- "name": "SameSite",
3002
- "description": "(Optional) The SameSite attribute of the cookie. Defaults to Lax.",
3003
- "type": {
3004
- "type": "String"
3005
- },
3006
- "formula": {
3007
- "type": "value",
3008
- "value": null
3009
- }
3010
- },
3011
- {
3012
- "name": "Path",
3013
- "description": "(Optional) The Path attribute of the cookie. Defaults to /.",
3014
- "type": {
3015
- "type": "String"
3016
- },
3017
- "formula": {
3018
- "type": "value",
3019
- "value": null
3020
- }
3021
- },
3022
- {
3023
- "name": "Include Subdomains",
3024
- "description": "(Optional) Whether to include subdomains when setting the cookie. Defaults to true.",
3025
- "type": {
3026
- "type": "Boolean"
3027
- },
3028
- "formula": {
3029
- "type": "value",
3030
- "value": null
3031
- }
3032
- }
3033
- ],
3034
- "events": {
3035
- "Success": {
3036
- "description": "This event is triggered once the cookie has been saved.",
3037
- "actions": []
3038
- },
3039
- "Error": {
3040
- "description": "This event is triggered if the cookie could not be saved.",
3041
- "actions": []
3042
- }
3043
- }
3044
- },
3045
- "@toddle/clearSessionStorage": {
3046
- "name": "Clear Session Storage",
3047
- "description": "Delete all values in session storage.",
3048
- "arguments": []
3049
- },
3050
- "@toddle/stopPropagation": {
3051
- "name": "Stop propagation",
3052
- "docs-link": "https://developer.mozilla.org/en-US/docs/Web/API/Event/stopPropagation",
3053
- "description": "Stop the event from bubbling up the DOM to parent elements.",
3054
- "arguments": []
3055
- },
3056
- "@toddle/gotToURL": {
3057
- "name": "Go to URL",
3058
- "description": "Navigate to a specified URL.",
3059
- "arguments": [
2982
+ },
3060
2983
  {
3061
- "name": "URL",
3062
- "description": "The URL to navigate to.",
2984
+ "name": "Expires in",
2985
+ "description": "(Optional) Time in seconds until the cookie expires. This should be null for JWTs to use the JWT's expiration. If not provided, the cookie will be a session cookie. If set to 0, the cookie will be deleted.",
3063
2986
  "type": {
3064
- "type": "String"
2987
+ "type": "Number"
3065
2988
  },
3066
2989
  "formula": {
3067
2990
  "type": "value",
3068
- "value": "https://example.com"
2991
+ "value": null
3069
2992
  }
3070
- }
3071
- ]
3072
- },
3073
- "@toddle/share": {
3074
- "name": "Share",
3075
- "description": "Share data with title, text, and/or URL using the Navigator.share API.",
3076
- "arguments": [
2993
+ },
3077
2994
  {
3078
- "name": "URL",
3079
- "description": "The URL to share.",
2995
+ "name": "SameSite",
2996
+ "description": "(Optional) The SameSite attribute of the cookie. Defaults to Lax.",
3080
2997
  "type": {
3081
2998
  "type": "String"
3082
2999
  },
@@ -3086,8 +3003,8 @@
3086
3003
  }
3087
3004
  },
3088
3005
  {
3089
- "name": "Title",
3090
- "description": "The title to share.",
3006
+ "name": "Path",
3007
+ "description": "(Optional) The Path attribute of the cookie. Defaults to /.",
3091
3008
  "type": {
3092
3009
  "type": "String"
3093
3010
  },
@@ -3097,17 +3014,27 @@
3097
3014
  }
3098
3015
  },
3099
3016
  {
3100
- "name": "Text",
3101
- "description": "The text to share.",
3017
+ "name": "Include Subdomains",
3018
+ "description": "(Optional) Whether to include subdomains when setting the cookie. Defaults to true.",
3102
3019
  "type": {
3103
- "type": "String"
3020
+ "type": "Boolean"
3104
3021
  },
3105
3022
  "formula": {
3106
3023
  "type": "value",
3107
3024
  "value": null
3108
3025
  }
3109
3026
  }
3110
- ]
3027
+ ],
3028
+ "events": {
3029
+ "Success": {
3030
+ "description": "This event is triggered once the cookie has been saved.",
3031
+ "actions": []
3032
+ },
3033
+ "Error": {
3034
+ "description": "This event is triggered if the cookie could not be saved.",
3035
+ "actions": []
3036
+ }
3037
+ }
3111
3038
  },
3112
3039
  "@toddle/setSessionCookies": {
3113
3040
  "name": "Set session cookies",
@@ -3147,95 +3074,86 @@
3147
3074
  }
3148
3075
  }
3149
3076
  },
3150
- "@toddle/copyToClipboard": {
3151
- "name": "Copy to clipboard",
3152
- "description": "Copy contents to the clipboard.",
3077
+ "@toddle/saveToLocalStorage": {
3078
+ "name": "Save to Local Storage",
3079
+ "description": "Save a provided key/value to local storage by JSON encoding the value.",
3153
3080
  "arguments": [
3154
3081
  {
3155
- "name": "Value",
3156
- "description": "The value you want to copy.",
3082
+ "name": "Key",
3083
+ "description": "The key to be used in local storage.",
3157
3084
  "type": {
3158
3085
  "type": "String"
3159
3086
  },
3160
3087
  "formula": {
3161
3088
  "type": "value",
3162
- "value": "<Param Value>"
3089
+ "value": ""
3163
3090
  }
3164
- }
3165
- ]
3166
- },
3167
- "@toddle/deleteFromLocalStorage": {
3168
- "name": "Delete from Local Storage",
3169
- "description": "Delete a value from local storage (if found) based on the provided key.",
3170
- "arguments": [
3091
+ },
3171
3092
  {
3172
- "name": "Key",
3173
- "description": "The key in local storage to delete.",
3093
+ "name": "Value",
3094
+ "description": "The value that should be saved in local storage. This can be anything that is serializable (String, Number, Boolean, Array or Object).",
3174
3095
  "type": {
3175
- "type": "String"
3096
+ "type": "Any"
3176
3097
  },
3177
3098
  "formula": {
3178
3099
  "type": "value",
3179
- "value": ""
3100
+ "value": null
3180
3101
  }
3181
3102
  }
3182
3103
  ]
3183
3104
  },
3184
- "@toddle/logToConsole": {
3185
- "name": "Log to console",
3186
- "description": "Log a message to the browser console.",
3105
+ "@toddle/share": {
3106
+ "name": "Share",
3107
+ "description": "Share data with title, text, and/or URL using the Navigator.share API.",
3187
3108
  "arguments": [
3188
3109
  {
3189
- "name": "Label",
3190
- "description": "A label for the message.",
3110
+ "name": "URL",
3111
+ "description": "The URL to share.",
3112
+ "type": {
3113
+ "type": "String"
3114
+ },
3191
3115
  "formula": {
3192
3116
  "type": "value",
3193
- "value": ""
3117
+ "value": null
3194
3118
  }
3195
3119
  },
3196
3120
  {
3197
- "name": "Data",
3121
+ "name": "Title",
3122
+ "description": "The title to share.",
3198
3123
  "type": {
3199
- "type": "Any"
3124
+ "type": "String"
3200
3125
  },
3201
- "description": "The data you want to log to the console.",
3202
3126
  "formula": {
3203
3127
  "type": "value",
3204
- "value": "<Data>"
3128
+ "value": null
3205
3129
  }
3206
- }
3207
- ]
3208
- },
3209
- "@toddle/deleteFromSessionStorage": {
3210
- "name": "Delete from Session Storage",
3211
- "description": "Delete a value from session storage (if found) based on the provided key.",
3212
- "arguments": [
3130
+ },
3213
3131
  {
3214
- "name": "Key",
3215
- "description": "The key in session storage to delete.",
3132
+ "name": "Text",
3133
+ "description": "The text to share.",
3216
3134
  "type": {
3217
3135
  "type": "String"
3218
3136
  },
3219
3137
  "formula": {
3220
3138
  "type": "value",
3221
- "value": ""
3139
+ "value": null
3222
3140
  }
3223
3141
  }
3224
3142
  ]
3225
3143
  },
3226
- "@toddle/sleep": {
3227
- "name": "Sleep",
3228
- "description": "Run an action after a delay.",
3144
+ "@toddle/interval": {
3145
+ "name": "Interval",
3146
+ "description": "Run an action every \"delay\" milliseconds.",
3229
3147
  "arguments": [
3230
3148
  {
3231
- "name": "Delay in milliseconds",
3232
- "description": "The number of milliseconds to wait before an action is executed.",
3149
+ "name": "Interval in milliseconds",
3150
+ "description": "The interval \"delay\".",
3233
3151
  "type": {
3234
3152
  "type": "Number"
3235
3153
  },
3236
3154
  "formula": {
3237
3155
  "type": "value",
3238
- "value": 500
3156
+ "value": 1000
3239
3157
  }
3240
3158
  }
3241
3159
  ],
@@ -3245,35 +3163,38 @@
3245
3163
  }
3246
3164
  }
3247
3165
  },
3248
- "@toddle/interval": {
3249
- "name": "Interval",
3250
- "description": "Run an action every \"delay\" milliseconds.",
3166
+ "@toddle/logToConsole": {
3167
+ "name": "Log to console",
3168
+ "description": "Log a message to the browser console.",
3251
3169
  "arguments": [
3252
3170
  {
3253
- "name": "Interval in milliseconds",
3254
- "description": "The interval \"delay\".",
3171
+ "name": "Label",
3172
+ "description": "A label for the message.",
3173
+ "formula": {
3174
+ "type": "value",
3175
+ "value": ""
3176
+ }
3177
+ },
3178
+ {
3179
+ "name": "Data",
3255
3180
  "type": {
3256
- "type": "Number"
3181
+ "type": "Any"
3257
3182
  },
3183
+ "description": "The data you want to log to the console.",
3258
3184
  "formula": {
3259
3185
  "type": "value",
3260
- "value": 1000
3186
+ "value": "<Data>"
3261
3187
  }
3262
3188
  }
3263
- ],
3264
- "events": {
3265
- "tick": {
3266
- "actions": []
3267
- }
3268
- }
3189
+ ]
3269
3190
  },
3270
- "@toddle/saveToLocalStorage": {
3271
- "name": "Save to Local Storage",
3272
- "description": "Save a provided key/value to local storage by JSON encoding the value.",
3191
+ "@toddle/deleteFromLocalStorage": {
3192
+ "name": "Delete from Local Storage",
3193
+ "description": "Delete a value from local storage (if found) based on the provided key.",
3273
3194
  "arguments": [
3274
3195
  {
3275
3196
  "name": "Key",
3276
- "description": "The key to be used in local storage.",
3197
+ "description": "The key in local storage to delete.",
3277
3198
  "type": {
3278
3199
  "type": "String"
3279
3200
  },
@@ -3281,23 +3202,40 @@
3281
3202
  "type": "value",
3282
3203
  "value": ""
3283
3204
  }
3284
- },
3205
+ }
3206
+ ]
3207
+ },
3208
+ "@toddle/preventDefault": {
3209
+ "name": "Prevent default",
3210
+ "docs-link": "https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault",
3211
+ "description": "Prevent default browser behavior for this event.",
3212
+ "arguments": []
3213
+ },
3214
+ "@toddle/focus": {
3215
+ "name": "Focus",
3216
+ "description": "Move focus to a DOM element.",
3217
+ "arguments": [
3285
3218
  {
3286
- "name": "Value",
3287
- "description": "The value that should be saved in local storage. This can be anything that is serializable (String, Number, Boolean, Array or Object).",
3219
+ "name": "Element",
3220
+ "description": "The DOM element that should receive focus.",
3288
3221
  "type": {
3289
- "type": "Any"
3222
+ "type": "Element"
3290
3223
  },
3291
3224
  "formula": {
3292
- "type": "value",
3225
+ "type": "Element",
3293
3226
  "value": null
3294
3227
  }
3295
3228
  }
3296
3229
  ]
3297
3230
  },
3298
- "@toddle/setHttpOnlyCookie": {
3299
- "name": "Set Http-Only Cookie",
3300
- "description": "Save a key/value pair as an Http-Only cookie. Useful for storing JWTs or other tokens.",
3231
+ "@toddle/clearLocalStorage": {
3232
+ "name": "Clear Local Storage",
3233
+ "description": "Delete all values in local storage.",
3234
+ "arguments": []
3235
+ },
3236
+ "@toddle/setCookie": {
3237
+ "name": "Set Cookie",
3238
+ "description": "Save a key/value pair as a non-http-only cookie (readable on the client). Useful for storing user preferences.",
3301
3239
  "arguments": [
3302
3240
  {
3303
3241
  "name": "Name",
@@ -3307,7 +3245,7 @@
3307
3245
  },
3308
3246
  "formula": {
3309
3247
  "type": "value",
3310
- "value": "access_token"
3248
+ "value": ""
3311
3249
  }
3312
3250
  },
3313
3251
  {
@@ -3323,7 +3261,7 @@
3323
3261
  },
3324
3262
  {
3325
3263
  "name": "Expires in",
3326
- "description": "(Optional) Time in seconds until the cookie expires. This should be null for JWTs to use the JWT's expiration. If not provided, the cookie will be a session cookie. If set to 0, the cookie will be deleted.",
3264
+ "description": "(Optional) Time in seconds until the cookie expires. If this is null, the cookie will expire at the end of the user's session.",
3327
3265
  "type": {
3328
3266
  "type": "Number"
3329
3267
  },
@@ -3376,5 +3314,67 @@
3376
3314
  "actions": []
3377
3315
  }
3378
3316
  }
3317
+ },
3318
+ "@toddle/copyToClipboard": {
3319
+ "name": "Copy to clipboard",
3320
+ "description": "Copy contents to the clipboard.",
3321
+ "arguments": [
3322
+ {
3323
+ "name": "Value",
3324
+ "description": "The value you want to copy.",
3325
+ "type": {
3326
+ "type": "String"
3327
+ },
3328
+ "formula": {
3329
+ "type": "value",
3330
+ "value": "<Param Value>"
3331
+ }
3332
+ }
3333
+ ]
3334
+ },
3335
+ "@toddle/saveToSessionStorage": {
3336
+ "name": "Save to Session Storage",
3337
+ "description": "Save a provided key/value to session storage by JSON encoding the value.",
3338
+ "arguments": [
3339
+ {
3340
+ "name": "Key",
3341
+ "description": "The key to be used in session storage.",
3342
+ "type": {
3343
+ "type": "String"
3344
+ },
3345
+ "formula": {
3346
+ "type": "value",
3347
+ "value": ""
3348
+ }
3349
+ },
3350
+ {
3351
+ "name": "Value",
3352
+ "description": "The value that should be saved in session storage. This can be anything that is serializable (String, Number, Boolean, Array or Object).",
3353
+ "type": {
3354
+ "type": "Any"
3355
+ },
3356
+ "formula": {
3357
+ "type": "value",
3358
+ "value": null
3359
+ }
3360
+ }
3361
+ ]
3362
+ },
3363
+ "@toddle/gotToURL": {
3364
+ "name": "Go to URL",
3365
+ "description": "Navigate to a specified URL.",
3366
+ "arguments": [
3367
+ {
3368
+ "name": "URL",
3369
+ "description": "The URL to navigate to.",
3370
+ "type": {
3371
+ "type": "String"
3372
+ },
3373
+ "formula": {
3374
+ "type": "value",
3375
+ "value": "https://example.com"
3376
+ }
3377
+ }
3378
+ ]
3379
3379
  }
3380
3380
  };