@weirdfingers/boards 0.4.1 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.mts CHANGED
@@ -1,8 +1,8 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import React, { ReactNode } from 'react';
3
- import * as urql from 'urql';
4
3
  import { JSONSchema7, JSONSchema7Definition } from 'json-schema';
5
4
  export { JSONSchema7 } from 'json-schema';
5
+ import * as urql from 'urql';
6
6
 
7
7
  /**
8
8
  * Core authentication types and interfaces.
@@ -174,6 +174,180 @@ interface ApiConfig {
174
174
  }
175
175
  declare function useApiConfig(): ApiConfig;
176
176
 
177
+ /**
178
+ * Types for parsed generator input schemas.
179
+ *
180
+ * These types represent the structured output from parsing a JSON Schema
181
+ * that defines a generator's input parameters. They enable dynamic UI generation
182
+ * by categorizing schema properties into artifacts, prompts, and settings.
183
+ */
184
+ /**
185
+ * Represents a slot for an artifact input (single or array).
186
+ *
187
+ * Artifact slots appear as UI elements that allow users to select
188
+ * existing artifacts from their board.
189
+ */
190
+ interface ArtifactSlot {
191
+ /** Display name for the artifact slot (from schema title) */
192
+ name: string;
193
+ /** Field name used as the key in form data */
194
+ fieldName: string;
195
+ /** Type of artifact: 'audio', 'video', 'image', or 'text' */
196
+ artifactType: "audio" | "video" | "image" | "text";
197
+ /** Whether this field is required in the input schema */
198
+ required: boolean;
199
+ /** Description of what this artifact is used for */
200
+ description?: string;
201
+ /** Whether this slot accepts multiple artifacts (array) */
202
+ isArray: boolean;
203
+ /** Minimum number of items required (for arrays) */
204
+ minItems?: number;
205
+ /** Maximum number of items allowed (for arrays) */
206
+ maxItems?: number;
207
+ }
208
+ /**
209
+ * Represents the prompt field if present in the schema.
210
+ *
211
+ * The prompt is typically rendered as a textarea for user input.
212
+ */
213
+ interface PromptField {
214
+ /** Field name (typically "prompt") */
215
+ fieldName: string;
216
+ /** Description of how the prompt is used */
217
+ description?: string;
218
+ /** Whether the prompt is required */
219
+ required: boolean;
220
+ /** Default value for the prompt */
221
+ default?: string;
222
+ }
223
+ /**
224
+ * A slider input for numeric values with min/max bounds.
225
+ */
226
+ interface SliderField {
227
+ type: "slider";
228
+ /** Field name used as the key in form data */
229
+ fieldName: string;
230
+ /** Display title for the slider */
231
+ title: string;
232
+ /** Description of what this setting controls */
233
+ description?: string;
234
+ /** Minimum allowed value */
235
+ min: number;
236
+ /** Maximum allowed value */
237
+ max: number;
238
+ /** Step increment for the slider */
239
+ step?: number;
240
+ /** Default value */
241
+ default?: number;
242
+ /** Whether the value is an integer (vs float) */
243
+ isInteger: boolean;
244
+ }
245
+ /**
246
+ * A dropdown selector for enumerated string values.
247
+ */
248
+ interface DropdownField {
249
+ type: "dropdown";
250
+ /** Field name used as the key in form data */
251
+ fieldName: string;
252
+ /** Display title for the dropdown */
253
+ title: string;
254
+ /** Description of what this setting controls */
255
+ description?: string;
256
+ /** Available options to select from */
257
+ options: string[];
258
+ /** Default selected option */
259
+ default?: string;
260
+ }
261
+ /**
262
+ * A text input field for string values.
263
+ */
264
+ interface TextInputField {
265
+ type: "text";
266
+ /** Field name used as the key in form data */
267
+ fieldName: string;
268
+ /** Display title for the input */
269
+ title: string;
270
+ /** Description of what this setting is for */
271
+ description?: string;
272
+ /** Default value */
273
+ default?: string;
274
+ /** Regex pattern for validation */
275
+ pattern?: string;
276
+ }
277
+ /**
278
+ * A number input field for numeric values without slider constraints.
279
+ */
280
+ interface NumberInputField {
281
+ type: "number";
282
+ /** Field name used as the key in form data */
283
+ fieldName: string;
284
+ /** Display title for the input */
285
+ title: string;
286
+ /** Description of what this setting is for */
287
+ description?: string;
288
+ /** Default value */
289
+ default?: number;
290
+ /** Minimum value (optional, for validation) */
291
+ min?: number;
292
+ /** Maximum value (optional, for validation) */
293
+ max?: number;
294
+ /** Whether the value must be an integer */
295
+ isInteger: boolean;
296
+ }
297
+ /**
298
+ * Union type for all possible settings field types.
299
+ */
300
+ type SettingsField = SliderField | DropdownField | TextInputField | NumberInputField;
301
+ /**
302
+ * Complete parsed structure of a generator's input schema.
303
+ *
304
+ * This structure enables applications to build dynamic UIs that match
305
+ * the generator's input requirements.
306
+ */
307
+ interface ParsedGeneratorSchema {
308
+ /** Artifact input slots (for selecting existing artifacts) */
309
+ artifactSlots: ArtifactSlot[];
310
+ /** The prompt field, if present in the schema */
311
+ promptField: PromptField | null;
312
+ /** Additional settings fields (sliders, dropdowns, etc.) */
313
+ settingsFields: SettingsField[];
314
+ }
315
+
316
+ interface GeneratorInfo {
317
+ name: string;
318
+ description: string;
319
+ artifactType: string;
320
+ inputSchema: JSONSchema7;
321
+ }
322
+ interface ArtifactSlotInfo {
323
+ fieldName: string;
324
+ artifactType: string;
325
+ required: boolean;
326
+ }
327
+ interface Artifact$1 {
328
+ id: string;
329
+ artifactType: string;
330
+ storageUrl?: string | null;
331
+ thumbnailUrl?: string | null;
332
+ }
333
+ interface GeneratorSelectionContextValue {
334
+ selectedGenerator: GeneratorInfo | null;
335
+ setSelectedGenerator: (generator: GeneratorInfo | null) => void;
336
+ parsedSchema: ParsedGeneratorSchema | null;
337
+ artifactSlots: ArtifactSlotInfo[];
338
+ canArtifactBeAdded: (artifactType: string) => boolean;
339
+ selectedArtifacts: Map<string, Artifact$1>;
340
+ setSelectedArtifacts: (artifacts: Map<string, Artifact$1>) => void;
341
+ addArtifactToSlot: (artifact: Artifact$1) => boolean;
342
+ removeArtifactFromSlot: (slotName: string) => void;
343
+ clearAllArtifacts: () => void;
344
+ }
345
+ interface GeneratorSelectionProviderProps {
346
+ children: ReactNode;
347
+ }
348
+ declare function GeneratorSelectionProvider({ children, }: GeneratorSelectionProviderProps): react_jsx_runtime.JSX.Element;
349
+ declare function useGeneratorSelection(): GeneratorSelectionContextValue;
350
+
177
351
  /**
178
352
  * GraphQL client configuration with authentication.
179
353
  */
@@ -488,145 +662,6 @@ interface GeneratorsHook {
488
662
  }
489
663
  declare function useGenerators(options?: UseGeneratorsOptions): GeneratorsHook;
490
664
 
491
- /**
492
- * Types for parsed generator input schemas.
493
- *
494
- * These types represent the structured output from parsing a JSON Schema
495
- * that defines a generator's input parameters. They enable dynamic UI generation
496
- * by categorizing schema properties into artifacts, prompts, and settings.
497
- */
498
- /**
499
- * Represents a slot for an artifact input (single or array).
500
- *
501
- * Artifact slots appear as UI elements that allow users to select
502
- * existing artifacts from their board.
503
- */
504
- interface ArtifactSlot {
505
- /** Display name for the artifact slot (from schema title) */
506
- name: string;
507
- /** Field name used as the key in form data */
508
- fieldName: string;
509
- /** Type of artifact: 'audio', 'video', 'image', or 'text' */
510
- artifactType: "audio" | "video" | "image" | "text";
511
- /** Whether this field is required in the input schema */
512
- required: boolean;
513
- /** Description of what this artifact is used for */
514
- description?: string;
515
- /** Whether this slot accepts multiple artifacts (array) */
516
- isArray: boolean;
517
- /** Minimum number of items required (for arrays) */
518
- minItems?: number;
519
- /** Maximum number of items allowed (for arrays) */
520
- maxItems?: number;
521
- }
522
- /**
523
- * Represents the prompt field if present in the schema.
524
- *
525
- * The prompt is typically rendered as a textarea for user input.
526
- */
527
- interface PromptField {
528
- /** Field name (typically "prompt") */
529
- fieldName: string;
530
- /** Description of how the prompt is used */
531
- description?: string;
532
- /** Whether the prompt is required */
533
- required: boolean;
534
- /** Default value for the prompt */
535
- default?: string;
536
- }
537
- /**
538
- * A slider input for numeric values with min/max bounds.
539
- */
540
- interface SliderField {
541
- type: "slider";
542
- /** Field name used as the key in form data */
543
- fieldName: string;
544
- /** Display title for the slider */
545
- title: string;
546
- /** Description of what this setting controls */
547
- description?: string;
548
- /** Minimum allowed value */
549
- min: number;
550
- /** Maximum allowed value */
551
- max: number;
552
- /** Step increment for the slider */
553
- step?: number;
554
- /** Default value */
555
- default?: number;
556
- /** Whether the value is an integer (vs float) */
557
- isInteger: boolean;
558
- }
559
- /**
560
- * A dropdown selector for enumerated string values.
561
- */
562
- interface DropdownField {
563
- type: "dropdown";
564
- /** Field name used as the key in form data */
565
- fieldName: string;
566
- /** Display title for the dropdown */
567
- title: string;
568
- /** Description of what this setting controls */
569
- description?: string;
570
- /** Available options to select from */
571
- options: string[];
572
- /** Default selected option */
573
- default?: string;
574
- }
575
- /**
576
- * A text input field for string values.
577
- */
578
- interface TextInputField {
579
- type: "text";
580
- /** Field name used as the key in form data */
581
- fieldName: string;
582
- /** Display title for the input */
583
- title: string;
584
- /** Description of what this setting is for */
585
- description?: string;
586
- /** Default value */
587
- default?: string;
588
- /** Regex pattern for validation */
589
- pattern?: string;
590
- }
591
- /**
592
- * A number input field for numeric values without slider constraints.
593
- */
594
- interface NumberInputField {
595
- type: "number";
596
- /** Field name used as the key in form data */
597
- fieldName: string;
598
- /** Display title for the input */
599
- title: string;
600
- /** Description of what this setting is for */
601
- description?: string;
602
- /** Default value */
603
- default?: number;
604
- /** Minimum value (optional, for validation) */
605
- min?: number;
606
- /** Maximum value (optional, for validation) */
607
- max?: number;
608
- /** Whether the value must be an integer */
609
- isInteger: boolean;
610
- }
611
- /**
612
- * Union type for all possible settings field types.
613
- */
614
- type SettingsField = SliderField | DropdownField | TextInputField | NumberInputField;
615
- /**
616
- * Complete parsed structure of a generator's input schema.
617
- *
618
- * This structure enables applications to build dynamic UIs that match
619
- * the generator's input requirements.
620
- */
621
- interface ParsedGeneratorSchema {
622
- /** Artifact input slots (for selecting existing artifacts) */
623
- artifactSlots: ArtifactSlot[];
624
- /** The prompt field, if present in the schema */
625
- promptField: PromptField | null;
626
- /** Additional settings fields (sliders, dropdowns, etc.) */
627
- settingsFields: SettingsField[];
628
- }
629
-
630
665
  /**
631
666
  * Utilities for parsing generator JSON Schemas into structured data
632
667
  * suitable for dynamic UI generation.
@@ -731,4 +766,4 @@ declare function BoardsProvider({ children, apiUrl, graphqlUrl, subscriptionUrl,
731
766
 
732
767
  declare const VERSION = "0.1.0";
733
768
 
734
- export { ADD_BOARD_MEMBER, type ApiConfig, type ArtifactSlot, ArtifactType, type AuthContextValue, AuthProvider, type AuthProviderConfig, type AuthState$1 as AuthState, BOARD_FRAGMENT, BaseAuthProvider, BoardRole, BoardsProvider, CANCEL_GENERATION, CREATE_BOARD, CREATE_GENERATION, type CreateBoardInput, type CreateGenerationInput, DELETE_BOARD, type DropdownField, GENERATION_FRAGMENT, GET_BOARD, GET_BOARDS, GET_CURRENT_USER, GET_GENERATION, GET_GENERATIONS, GET_GENERATORS, GenerationStatus, type Generator, NoAuthProvider, type NumberInputField, type ParsedGeneratorSchema, type PromptField, REMOVE_BOARD_MEMBER, RETRY_GENERATION, type SettingsField, type SignInOptions, type SliderField, type TextInputField, UPDATE_BOARD, UPDATE_BOARD_MEMBER_ROLE, USER_FRAGMENT, type UpdateBoardInput, type User$1 as User, VERSION, createGraphQLClient, getArtifactType, isArtifactReference, parseArtifactSlot, parseGeneratorSchema, parseSettingsField, useApiConfig, useAuth, useAuthOptional, useBoard, useBoards, useGeneration, useGenerators };
769
+ export { ADD_BOARD_MEMBER, type ApiConfig, type Artifact$1 as Artifact, type ArtifactSlot, type ArtifactSlotInfo, ArtifactType, type AuthContextValue, AuthProvider, type AuthProviderConfig, type AuthState$1 as AuthState, BOARD_FRAGMENT, BaseAuthProvider, BoardRole, BoardsProvider, CANCEL_GENERATION, CREATE_BOARD, CREATE_GENERATION, type CreateBoardInput, type CreateGenerationInput, DELETE_BOARD, type DropdownField, GENERATION_FRAGMENT, GET_BOARD, GET_BOARDS, GET_CURRENT_USER, GET_GENERATION, GET_GENERATIONS, GET_GENERATORS, GenerationStatus, type Generator, type GeneratorInfo, type GeneratorSelectionContextValue, GeneratorSelectionProvider, NoAuthProvider, type NumberInputField, type ParsedGeneratorSchema, type PromptField, REMOVE_BOARD_MEMBER, RETRY_GENERATION, type SettingsField, type SignInOptions, type SliderField, type TextInputField, UPDATE_BOARD, UPDATE_BOARD_MEMBER_ROLE, USER_FRAGMENT, type UpdateBoardInput, type User$1 as User, VERSION, createGraphQLClient, getArtifactType, isArtifactReference, parseArtifactSlot, parseGeneratorSchema, parseSettingsField, useApiConfig, useAuth, useAuthOptional, useBoard, useBoards, useGeneration, useGeneratorSelection, useGenerators };
package/dist/index.d.ts CHANGED
@@ -1,8 +1,8 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import React, { ReactNode } from 'react';
3
- import * as urql from 'urql';
4
3
  import { JSONSchema7, JSONSchema7Definition } from 'json-schema';
5
4
  export { JSONSchema7 } from 'json-schema';
5
+ import * as urql from 'urql';
6
6
 
7
7
  /**
8
8
  * Core authentication types and interfaces.
@@ -174,6 +174,180 @@ interface ApiConfig {
174
174
  }
175
175
  declare function useApiConfig(): ApiConfig;
176
176
 
177
+ /**
178
+ * Types for parsed generator input schemas.
179
+ *
180
+ * These types represent the structured output from parsing a JSON Schema
181
+ * that defines a generator's input parameters. They enable dynamic UI generation
182
+ * by categorizing schema properties into artifacts, prompts, and settings.
183
+ */
184
+ /**
185
+ * Represents a slot for an artifact input (single or array).
186
+ *
187
+ * Artifact slots appear as UI elements that allow users to select
188
+ * existing artifacts from their board.
189
+ */
190
+ interface ArtifactSlot {
191
+ /** Display name for the artifact slot (from schema title) */
192
+ name: string;
193
+ /** Field name used as the key in form data */
194
+ fieldName: string;
195
+ /** Type of artifact: 'audio', 'video', 'image', or 'text' */
196
+ artifactType: "audio" | "video" | "image" | "text";
197
+ /** Whether this field is required in the input schema */
198
+ required: boolean;
199
+ /** Description of what this artifact is used for */
200
+ description?: string;
201
+ /** Whether this slot accepts multiple artifacts (array) */
202
+ isArray: boolean;
203
+ /** Minimum number of items required (for arrays) */
204
+ minItems?: number;
205
+ /** Maximum number of items allowed (for arrays) */
206
+ maxItems?: number;
207
+ }
208
+ /**
209
+ * Represents the prompt field if present in the schema.
210
+ *
211
+ * The prompt is typically rendered as a textarea for user input.
212
+ */
213
+ interface PromptField {
214
+ /** Field name (typically "prompt") */
215
+ fieldName: string;
216
+ /** Description of how the prompt is used */
217
+ description?: string;
218
+ /** Whether the prompt is required */
219
+ required: boolean;
220
+ /** Default value for the prompt */
221
+ default?: string;
222
+ }
223
+ /**
224
+ * A slider input for numeric values with min/max bounds.
225
+ */
226
+ interface SliderField {
227
+ type: "slider";
228
+ /** Field name used as the key in form data */
229
+ fieldName: string;
230
+ /** Display title for the slider */
231
+ title: string;
232
+ /** Description of what this setting controls */
233
+ description?: string;
234
+ /** Minimum allowed value */
235
+ min: number;
236
+ /** Maximum allowed value */
237
+ max: number;
238
+ /** Step increment for the slider */
239
+ step?: number;
240
+ /** Default value */
241
+ default?: number;
242
+ /** Whether the value is an integer (vs float) */
243
+ isInteger: boolean;
244
+ }
245
+ /**
246
+ * A dropdown selector for enumerated string values.
247
+ */
248
+ interface DropdownField {
249
+ type: "dropdown";
250
+ /** Field name used as the key in form data */
251
+ fieldName: string;
252
+ /** Display title for the dropdown */
253
+ title: string;
254
+ /** Description of what this setting controls */
255
+ description?: string;
256
+ /** Available options to select from */
257
+ options: string[];
258
+ /** Default selected option */
259
+ default?: string;
260
+ }
261
+ /**
262
+ * A text input field for string values.
263
+ */
264
+ interface TextInputField {
265
+ type: "text";
266
+ /** Field name used as the key in form data */
267
+ fieldName: string;
268
+ /** Display title for the input */
269
+ title: string;
270
+ /** Description of what this setting is for */
271
+ description?: string;
272
+ /** Default value */
273
+ default?: string;
274
+ /** Regex pattern for validation */
275
+ pattern?: string;
276
+ }
277
+ /**
278
+ * A number input field for numeric values without slider constraints.
279
+ */
280
+ interface NumberInputField {
281
+ type: "number";
282
+ /** Field name used as the key in form data */
283
+ fieldName: string;
284
+ /** Display title for the input */
285
+ title: string;
286
+ /** Description of what this setting is for */
287
+ description?: string;
288
+ /** Default value */
289
+ default?: number;
290
+ /** Minimum value (optional, for validation) */
291
+ min?: number;
292
+ /** Maximum value (optional, for validation) */
293
+ max?: number;
294
+ /** Whether the value must be an integer */
295
+ isInteger: boolean;
296
+ }
297
+ /**
298
+ * Union type for all possible settings field types.
299
+ */
300
+ type SettingsField = SliderField | DropdownField | TextInputField | NumberInputField;
301
+ /**
302
+ * Complete parsed structure of a generator's input schema.
303
+ *
304
+ * This structure enables applications to build dynamic UIs that match
305
+ * the generator's input requirements.
306
+ */
307
+ interface ParsedGeneratorSchema {
308
+ /** Artifact input slots (for selecting existing artifacts) */
309
+ artifactSlots: ArtifactSlot[];
310
+ /** The prompt field, if present in the schema */
311
+ promptField: PromptField | null;
312
+ /** Additional settings fields (sliders, dropdowns, etc.) */
313
+ settingsFields: SettingsField[];
314
+ }
315
+
316
+ interface GeneratorInfo {
317
+ name: string;
318
+ description: string;
319
+ artifactType: string;
320
+ inputSchema: JSONSchema7;
321
+ }
322
+ interface ArtifactSlotInfo {
323
+ fieldName: string;
324
+ artifactType: string;
325
+ required: boolean;
326
+ }
327
+ interface Artifact$1 {
328
+ id: string;
329
+ artifactType: string;
330
+ storageUrl?: string | null;
331
+ thumbnailUrl?: string | null;
332
+ }
333
+ interface GeneratorSelectionContextValue {
334
+ selectedGenerator: GeneratorInfo | null;
335
+ setSelectedGenerator: (generator: GeneratorInfo | null) => void;
336
+ parsedSchema: ParsedGeneratorSchema | null;
337
+ artifactSlots: ArtifactSlotInfo[];
338
+ canArtifactBeAdded: (artifactType: string) => boolean;
339
+ selectedArtifacts: Map<string, Artifact$1>;
340
+ setSelectedArtifacts: (artifacts: Map<string, Artifact$1>) => void;
341
+ addArtifactToSlot: (artifact: Artifact$1) => boolean;
342
+ removeArtifactFromSlot: (slotName: string) => void;
343
+ clearAllArtifacts: () => void;
344
+ }
345
+ interface GeneratorSelectionProviderProps {
346
+ children: ReactNode;
347
+ }
348
+ declare function GeneratorSelectionProvider({ children, }: GeneratorSelectionProviderProps): react_jsx_runtime.JSX.Element;
349
+ declare function useGeneratorSelection(): GeneratorSelectionContextValue;
350
+
177
351
  /**
178
352
  * GraphQL client configuration with authentication.
179
353
  */
@@ -488,145 +662,6 @@ interface GeneratorsHook {
488
662
  }
489
663
  declare function useGenerators(options?: UseGeneratorsOptions): GeneratorsHook;
490
664
 
491
- /**
492
- * Types for parsed generator input schemas.
493
- *
494
- * These types represent the structured output from parsing a JSON Schema
495
- * that defines a generator's input parameters. They enable dynamic UI generation
496
- * by categorizing schema properties into artifacts, prompts, and settings.
497
- */
498
- /**
499
- * Represents a slot for an artifact input (single or array).
500
- *
501
- * Artifact slots appear as UI elements that allow users to select
502
- * existing artifacts from their board.
503
- */
504
- interface ArtifactSlot {
505
- /** Display name for the artifact slot (from schema title) */
506
- name: string;
507
- /** Field name used as the key in form data */
508
- fieldName: string;
509
- /** Type of artifact: 'audio', 'video', 'image', or 'text' */
510
- artifactType: "audio" | "video" | "image" | "text";
511
- /** Whether this field is required in the input schema */
512
- required: boolean;
513
- /** Description of what this artifact is used for */
514
- description?: string;
515
- /** Whether this slot accepts multiple artifacts (array) */
516
- isArray: boolean;
517
- /** Minimum number of items required (for arrays) */
518
- minItems?: number;
519
- /** Maximum number of items allowed (for arrays) */
520
- maxItems?: number;
521
- }
522
- /**
523
- * Represents the prompt field if present in the schema.
524
- *
525
- * The prompt is typically rendered as a textarea for user input.
526
- */
527
- interface PromptField {
528
- /** Field name (typically "prompt") */
529
- fieldName: string;
530
- /** Description of how the prompt is used */
531
- description?: string;
532
- /** Whether the prompt is required */
533
- required: boolean;
534
- /** Default value for the prompt */
535
- default?: string;
536
- }
537
- /**
538
- * A slider input for numeric values with min/max bounds.
539
- */
540
- interface SliderField {
541
- type: "slider";
542
- /** Field name used as the key in form data */
543
- fieldName: string;
544
- /** Display title for the slider */
545
- title: string;
546
- /** Description of what this setting controls */
547
- description?: string;
548
- /** Minimum allowed value */
549
- min: number;
550
- /** Maximum allowed value */
551
- max: number;
552
- /** Step increment for the slider */
553
- step?: number;
554
- /** Default value */
555
- default?: number;
556
- /** Whether the value is an integer (vs float) */
557
- isInteger: boolean;
558
- }
559
- /**
560
- * A dropdown selector for enumerated string values.
561
- */
562
- interface DropdownField {
563
- type: "dropdown";
564
- /** Field name used as the key in form data */
565
- fieldName: string;
566
- /** Display title for the dropdown */
567
- title: string;
568
- /** Description of what this setting controls */
569
- description?: string;
570
- /** Available options to select from */
571
- options: string[];
572
- /** Default selected option */
573
- default?: string;
574
- }
575
- /**
576
- * A text input field for string values.
577
- */
578
- interface TextInputField {
579
- type: "text";
580
- /** Field name used as the key in form data */
581
- fieldName: string;
582
- /** Display title for the input */
583
- title: string;
584
- /** Description of what this setting is for */
585
- description?: string;
586
- /** Default value */
587
- default?: string;
588
- /** Regex pattern for validation */
589
- pattern?: string;
590
- }
591
- /**
592
- * A number input field for numeric values without slider constraints.
593
- */
594
- interface NumberInputField {
595
- type: "number";
596
- /** Field name used as the key in form data */
597
- fieldName: string;
598
- /** Display title for the input */
599
- title: string;
600
- /** Description of what this setting is for */
601
- description?: string;
602
- /** Default value */
603
- default?: number;
604
- /** Minimum value (optional, for validation) */
605
- min?: number;
606
- /** Maximum value (optional, for validation) */
607
- max?: number;
608
- /** Whether the value must be an integer */
609
- isInteger: boolean;
610
- }
611
- /**
612
- * Union type for all possible settings field types.
613
- */
614
- type SettingsField = SliderField | DropdownField | TextInputField | NumberInputField;
615
- /**
616
- * Complete parsed structure of a generator's input schema.
617
- *
618
- * This structure enables applications to build dynamic UIs that match
619
- * the generator's input requirements.
620
- */
621
- interface ParsedGeneratorSchema {
622
- /** Artifact input slots (for selecting existing artifacts) */
623
- artifactSlots: ArtifactSlot[];
624
- /** The prompt field, if present in the schema */
625
- promptField: PromptField | null;
626
- /** Additional settings fields (sliders, dropdowns, etc.) */
627
- settingsFields: SettingsField[];
628
- }
629
-
630
665
  /**
631
666
  * Utilities for parsing generator JSON Schemas into structured data
632
667
  * suitable for dynamic UI generation.
@@ -731,4 +766,4 @@ declare function BoardsProvider({ children, apiUrl, graphqlUrl, subscriptionUrl,
731
766
 
732
767
  declare const VERSION = "0.1.0";
733
768
 
734
- export { ADD_BOARD_MEMBER, type ApiConfig, type ArtifactSlot, ArtifactType, type AuthContextValue, AuthProvider, type AuthProviderConfig, type AuthState$1 as AuthState, BOARD_FRAGMENT, BaseAuthProvider, BoardRole, BoardsProvider, CANCEL_GENERATION, CREATE_BOARD, CREATE_GENERATION, type CreateBoardInput, type CreateGenerationInput, DELETE_BOARD, type DropdownField, GENERATION_FRAGMENT, GET_BOARD, GET_BOARDS, GET_CURRENT_USER, GET_GENERATION, GET_GENERATIONS, GET_GENERATORS, GenerationStatus, type Generator, NoAuthProvider, type NumberInputField, type ParsedGeneratorSchema, type PromptField, REMOVE_BOARD_MEMBER, RETRY_GENERATION, type SettingsField, type SignInOptions, type SliderField, type TextInputField, UPDATE_BOARD, UPDATE_BOARD_MEMBER_ROLE, USER_FRAGMENT, type UpdateBoardInput, type User$1 as User, VERSION, createGraphQLClient, getArtifactType, isArtifactReference, parseArtifactSlot, parseGeneratorSchema, parseSettingsField, useApiConfig, useAuth, useAuthOptional, useBoard, useBoards, useGeneration, useGenerators };
769
+ export { ADD_BOARD_MEMBER, type ApiConfig, type Artifact$1 as Artifact, type ArtifactSlot, type ArtifactSlotInfo, ArtifactType, type AuthContextValue, AuthProvider, type AuthProviderConfig, type AuthState$1 as AuthState, BOARD_FRAGMENT, BaseAuthProvider, BoardRole, BoardsProvider, CANCEL_GENERATION, CREATE_BOARD, CREATE_GENERATION, type CreateBoardInput, type CreateGenerationInput, DELETE_BOARD, type DropdownField, GENERATION_FRAGMENT, GET_BOARD, GET_BOARDS, GET_CURRENT_USER, GET_GENERATION, GET_GENERATIONS, GET_GENERATORS, GenerationStatus, type Generator, type GeneratorInfo, type GeneratorSelectionContextValue, GeneratorSelectionProvider, NoAuthProvider, type NumberInputField, type ParsedGeneratorSchema, type PromptField, REMOVE_BOARD_MEMBER, RETRY_GENERATION, type SettingsField, type SignInOptions, type SliderField, type TextInputField, UPDATE_BOARD, UPDATE_BOARD_MEMBER_ROLE, USER_FRAGMENT, type UpdateBoardInput, type User$1 as User, VERSION, createGraphQLClient, getArtifactType, isArtifactReference, parseArtifactSlot, parseGeneratorSchema, parseSettingsField, useApiConfig, useAuth, useAuthOptional, useBoard, useBoards, useGeneration, useGeneratorSelection, useGenerators };