@uipath/apollo-wind 2.60.1 → 2.61.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (152) hide show
  1. package/dist/components/forms/field-actions.cjs +181 -0
  2. package/dist/components/forms/field-actions.d.ts +131 -0
  3. package/dist/components/forms/field-actions.js +129 -0
  4. package/dist/components/forms/field-control.cjs +415 -0
  5. package/dist/components/forms/field-control.d.ts +52 -0
  6. package/dist/components/forms/field-control.js +372 -0
  7. package/dist/components/forms/field-renderer.cjs +77 -420
  8. package/dist/components/forms/field-renderer.d.ts +2 -3
  9. package/dist/components/forms/field-renderer.js +78 -421
  10. package/dist/components/forms/form-designer.cjs +7 -1
  11. package/dist/components/forms/form-designer.js +7 -1
  12. package/dist/components/forms/form-schema.d.ts +121 -2
  13. package/dist/components/forms/form-strings.cjs +67 -0
  14. package/dist/components/forms/form-strings.d.ts +30 -0
  15. package/dist/components/forms/form-strings.js +30 -0
  16. package/dist/components/forms/index.cjs +53 -9
  17. package/dist/components/forms/index.d.ts +6 -1
  18. package/dist/components/forms/index.js +6 -1
  19. package/dist/components/forms/literal-value-context.cjs +37 -0
  20. package/dist/components/forms/literal-value-context.d.ts +5 -0
  21. package/dist/components/forms/literal-value-context.js +3 -0
  22. package/dist/components/forms/metadata-form.cjs +100 -21
  23. package/dist/components/forms/metadata-form.d.ts +5 -0
  24. package/dist/components/forms/metadata-form.js +101 -22
  25. package/dist/components/forms/mode-aware-field.cjs +589 -0
  26. package/dist/components/forms/mode-aware-field.d.ts +15 -0
  27. package/dist/components/forms/mode-aware-field.js +555 -0
  28. package/dist/components/forms/opaque-value.cjs +44 -0
  29. package/dist/components/forms/opaque-value.d.ts +7 -0
  30. package/dist/components/forms/opaque-value.js +7 -0
  31. package/dist/components/forms/rules-engine.cjs +13 -0
  32. package/dist/components/forms/rules-engine.js +13 -0
  33. package/dist/components/forms/schema-serializer.cjs +8 -0
  34. package/dist/components/forms/schema-serializer.js +8 -0
  35. package/dist/components/forms/string-list-field.cjs +36 -18
  36. package/dist/components/forms/string-list-field.d.ts +6 -0
  37. package/dist/components/forms/string-list-field.js +35 -20
  38. package/dist/components/forms/validation-converter.cjs +32 -2
  39. package/dist/components/forms/validation-converter.d.ts +17 -1
  40. package/dist/components/forms/validation-converter.js +30 -3
  41. package/dist/components/forms/value-modes.cjs +253 -0
  42. package/dist/components/forms/value-modes.d.ts +236 -0
  43. package/dist/components/forms/value-modes.js +180 -0
  44. package/dist/components/ui/avatar.d.ts +1 -1
  45. package/dist/components/ui/badge.d.ts +1 -1
  46. package/dist/components/ui/boolean-radio-group.cjs +114 -0
  47. package/dist/components/ui/boolean-radio-group.d.ts +24 -0
  48. package/dist/components/ui/boolean-radio-group.js +77 -0
  49. package/dist/components/ui/button.d.ts +2 -2
  50. package/dist/components/ui/command.d.ts +7 -7
  51. package/dist/components/ui/field-addons/field-menu.cjs +1 -0
  52. package/dist/components/ui/field-addons/field-menu.d.ts +2 -0
  53. package/dist/components/ui/field-addons/field-menu.js +1 -0
  54. package/dist/components/ui/field-addons/index.cjs +4 -0
  55. package/dist/components/ui/field-addons/index.d.ts +1 -0
  56. package/dist/components/ui/field-addons/index.js +2 -1
  57. package/dist/components/ui/field-addons/value-mode-strings.cjs +7 -1
  58. package/dist/components/ui/field-addons/value-mode-strings.d.ts +9 -0
  59. package/dist/components/ui/field-addons/value-mode-strings.js +7 -1
  60. package/dist/components/ui/field-addons/value-mode-switch-dialog.cjs +73 -0
  61. package/dist/components/ui/field-addons/value-mode-switch-dialog.d.ts +16 -0
  62. package/dist/components/ui/field-addons/value-mode-switch-dialog.js +39 -0
  63. package/dist/components/ui/form-field.cjs +2 -1
  64. package/dist/components/ui/form-field.d.ts +2 -0
  65. package/dist/components/ui/form-field.js +2 -1
  66. package/dist/components/ui/index.cjs +230 -186
  67. package/dist/components/ui/index.d.ts +4 -0
  68. package/dist/components/ui/index.js +4 -0
  69. package/dist/components/ui/input-group.cjs +6 -3
  70. package/dist/components/ui/input-group.d.ts +6 -5
  71. package/dist/components/ui/input-group.js +6 -3
  72. package/dist/components/ui/json-tree-view/DecorationChip.cjs +81 -0
  73. package/dist/components/ui/json-tree-view/DecorationChip.d.ts +4 -0
  74. package/dist/components/ui/json-tree-view/DecorationChip.js +47 -0
  75. package/dist/components/ui/json-tree-view/EditorChrome.cjs +88 -0
  76. package/dist/components/ui/json-tree-view/EditorChrome.d.ts +21 -0
  77. package/dist/components/ui/json-tree-view/EditorChrome.js +51 -0
  78. package/dist/components/ui/json-tree-view/JsonContainerEditor.cjs +95 -0
  79. package/dist/components/ui/json-tree-view/JsonContainerEditor.d.ts +18 -0
  80. package/dist/components/ui/json-tree-view/JsonContainerEditor.js +61 -0
  81. package/dist/components/ui/json-tree-view/JsonLeafValueEditor.cjs +86 -0
  82. package/dist/components/ui/json-tree-view/JsonLeafValueEditor.d.ts +12 -0
  83. package/dist/components/ui/json-tree-view/JsonLeafValueEditor.js +52 -0
  84. package/dist/components/ui/json-tree-view/JsonMultilineLeafEditor.cjs +74 -0
  85. package/dist/components/ui/json-tree-view/JsonMultilineLeafEditor.d.ts +13 -0
  86. package/dist/components/ui/json-tree-view/JsonMultilineLeafEditor.js +40 -0
  87. package/dist/components/ui/json-tree-view/JsonTree.cjs +253 -0
  88. package/dist/components/ui/json-tree-view/JsonTree.d.ts +81 -0
  89. package/dist/components/ui/json-tree-view/JsonTree.js +219 -0
  90. package/dist/components/ui/json-tree-view/JsonTree.types.cjs +18 -0
  91. package/dist/components/ui/json-tree-view/JsonTree.types.d.ts +253 -0
  92. package/dist/components/ui/json-tree-view/JsonTree.types.js +0 -0
  93. package/dist/components/ui/json-tree-view/JsonTreeRow.cjs +284 -0
  94. package/dist/components/ui/json-tree-view/JsonTreeRow.d.ts +50 -0
  95. package/dist/components/ui/json-tree-view/JsonTreeRow.js +244 -0
  96. package/dist/components/ui/json-tree-view/JsonTreeToolbar.cjs +209 -0
  97. package/dist/components/ui/json-tree-view/JsonTreeToolbar.d.ts +35 -0
  98. package/dist/components/ui/json-tree-view/JsonTreeToolbar.js +175 -0
  99. package/dist/components/ui/json-tree-view/JsonTreeTooltip.cjs +84 -0
  100. package/dist/components/ui/json-tree-view/JsonTreeTooltip.d.ts +21 -0
  101. package/dist/components/ui/json-tree-view/JsonTreeTooltip.js +47 -0
  102. package/dist/components/ui/json-tree-view/JsonTypeBadge.cjs +70 -0
  103. package/dist/components/ui/json-tree-view/JsonTypeBadge.d.ts +17 -0
  104. package/dist/components/ui/json-tree-view/JsonTypeBadge.js +36 -0
  105. package/dist/components/ui/json-tree-view/NodeKey.cjs +77 -0
  106. package/dist/components/ui/json-tree-view/NodeKey.d.ts +16 -0
  107. package/dist/components/ui/json-tree-view/NodeKey.js +43 -0
  108. package/dist/components/ui/json-tree-view/RowActions.cjs +120 -0
  109. package/dist/components/ui/json-tree-view/RowActions.d.ts +15 -0
  110. package/dist/components/ui/json-tree-view/RowActions.js +86 -0
  111. package/dist/components/ui/json-tree-view/ScalarValueCell.cjs +112 -0
  112. package/dist/components/ui/json-tree-view/ScalarValueCell.d.ts +18 -0
  113. package/dist/components/ui/json-tree-view/ScalarValueCell.js +75 -0
  114. package/dist/components/ui/json-tree-view/buildJsonTree.cjs +324 -0
  115. package/dist/components/ui/json-tree-view/buildJsonTree.d.ts +75 -0
  116. package/dist/components/ui/json-tree-view/buildJsonTree.js +257 -0
  117. package/dist/components/ui/json-tree-view/clipboard.cjs +63 -0
  118. package/dist/components/ui/json-tree-view/clipboard.d.ts +6 -0
  119. package/dist/components/ui/json-tree-view/clipboard.js +29 -0
  120. package/dist/components/ui/json-tree-view/index.cjs +175 -0
  121. package/dist/components/ui/json-tree-view/index.d.ts +10 -0
  122. package/dist/components/ui/json-tree-view/index.js +11 -0
  123. package/dist/components/ui/json-tree-view/leafEditTypes.cjs +74 -0
  124. package/dist/components/ui/json-tree-view/leafEditTypes.d.ts +12 -0
  125. package/dist/components/ui/json-tree-view/leafEditTypes.js +34 -0
  126. package/dist/components/ui/json-tree-view/strings.cjs +122 -0
  127. package/dist/components/ui/json-tree-view/strings.d.ts +65 -0
  128. package/dist/components/ui/json-tree-view/strings.js +79 -0
  129. package/dist/components/ui/prompt-value-control.cjs +70 -0
  130. package/dist/components/ui/prompt-value-control.d.ts +28 -0
  131. package/dist/components/ui/prompt-value-control.js +36 -0
  132. package/dist/components/ui/sheet.d.ts +1 -1
  133. package/dist/components/ui/spinner.d.ts +1 -1
  134. package/dist/components/ui/switch.d.ts +2 -2
  135. package/dist/components/ui/textarea.cjs +1 -1
  136. package/dist/components/ui/textarea.js +1 -1
  137. package/dist/components/ui/toggle-group.d.ts +2 -2
  138. package/dist/components/ui/toggle.d.ts +2 -2
  139. package/dist/components/ui/variable-value-control.cjs +98 -0
  140. package/dist/components/ui/variable-value-control.d.ts +35 -0
  141. package/dist/components/ui/variable-value-control.js +64 -0
  142. package/dist/index.cjs +145 -16
  143. package/dist/index.d.ts +21 -3
  144. package/dist/index.js +11 -2
  145. package/dist/lib/index.cjs +4 -1
  146. package/dist/lib/index.d.ts +1 -1
  147. package/dist/lib/index.js +2 -2
  148. package/dist/lib/utils.cjs +21 -1
  149. package/dist/lib/utils.d.ts +8 -0
  150. package/dist/lib/utils.js +18 -1
  151. package/dist/styles.css +225 -0
  152. package/package.json +1 -1
package/dist/index.d.ts CHANGED
@@ -1,16 +1,26 @@
1
1
  export type { AdapterRequest, AdapterResponse, DataAdapter, } from './components/forms/data-fetcher';
2
2
  export { DataFetcher, DataSourceBuilder, DataTransformers, FetchAdapter, } from './components/forms/data-fetcher';
3
+ export type { AiAssistActionOptions, ClearActionOptions, FieldActionContext, FieldActionGenerate, FieldActionRegistry, FieldActionsPluginConfig, FieldHeaderAction, FieldMenuAction, InsertVariableActionOptions, ValueModeVariable, } from './components/forms/field-actions';
4
+ export { createAiAssistAction, createClearAction, createInsertVariableAction, resolveVariables, } from './components/forms/field-actions';
5
+ export type { FieldControlFormField, FieldControlGeometry, FieldControlLabelTarget, FieldControlProps, } from './components/forms/field-control';
6
+ export { FIELD_CONTROL_GEOMETRY, FieldControl } from './components/forms/field-control';
3
7
  export { FormFieldRenderer } from './components/forms/field-renderer';
4
8
  export { FormDesigner } from './components/forms/form-designer';
5
9
  export { analyticsPlugin, auditPlugin, autoSavePlugin, formattingPlugin, validationPlugin, workflowPlugin, } from './components/forms/form-plugins';
6
- export type { CustomFieldComponentProps, CustomValueType, DataSource, FieldCondition, FieldMetadata, FieldOption, FieldRule, FieldType, FormAction, FormContext, FormPlugin, FormSchema, FormSection, FormStep, StringListFieldMetadata, } from './components/forms/form-schema';
10
+ export type { CustomComponents, CustomFieldComponentProps, CustomValueType, DataSource, FieldCondition, FieldMetadata, FieldOption, FieldRule, FieldType, FormAction, FormContext, FormPlugin, FormSchema, FormSection, FormStep, FormVariables, StringListFieldMetadata, ValueModeControlRef, ValueModeId, ValueModesConfig, } from './components/forms/form-schema';
7
11
  export { hasMinMaxStep, hasOptions, isCustomField, isFileField, } from './components/forms/form-schema';
8
12
  export { FormStateViewer } from './components/forms/form-state-viewer';
13
+ export type { ClearActionStrings, FormValidationStrings, MetadataFormStringOverrides, MetadataFormStrings, } from './components/forms/form-strings';
14
+ export { DEFAULT_METADATA_FORM_STRINGS } from './components/forms/form-strings';
9
15
  export type { MetadataFormProps } from './components/forms/metadata-form';
10
16
  export { MetadataForm, useWatch } from './components/forms/metadata-form';
17
+ export type { ModeAwareFieldProps } from './components/forms/mode-aware-field';
18
+ export { ModeAwareField } from './components/forms/mode-aware-field';
11
19
  export { ExpressionBuilder, RuleBuilder, RulesEngine, } from './components/forms/rules-engine';
12
20
  export type { StringListFieldProps } from './components/forms/string-list-field';
13
21
  export { formatTemplate, StringListField } from './components/forms/string-list-field';
22
+ export type { CodecContext, ConvertResult, DecodedValue, FieldControlRegistration, ValueModeCodec, ValueModeControlHandle, ValueModeControlProps, ValueModeControlRegistration, ValueModeDefinition, ValueModeEnvelope, ValueModeRegistry, ValueModesPluginConfig, } from './components/forms/value-modes';
23
+ export { envelopeCodec, isEmptyModeValue, isValueModeEnvelope, literalValues, VALUE_MODE_OPAQUE, } from './components/forms/value-modes';
14
24
  export { Accordion, AccordionContent, AccordionItem, AccordionTrigger, } from './components/ui/accordion';
15
25
  export { Alert, AlertDescription, AlertTitle } from './components/ui/alert';
16
26
  export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, } from './components/ui/alert-dialog';
@@ -18,6 +28,8 @@ export { AspectRatio } from './components/ui/aspect-ratio';
18
28
  export { Avatar, AvatarFallback, AvatarImage } from './components/ui/avatar';
19
29
  export type { BadgeProps } from './components/ui/badge';
20
30
  export { Badge, badgeVariants } from './components/ui/badge';
31
+ export type { BooleanRadioGroupProps, BooleanRadioGroupStrings, } from './components/ui/boolean-radio-group';
32
+ export { BooleanRadioGroup, DEFAULT_BOOLEAN_RADIO_GROUP_STRINGS, } from './components/ui/boolean-radio-group';
21
33
  export { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, } from './components/ui/breadcrumb';
22
34
  export type { ButtonProps } from './components/ui/button';
23
35
  export { Button, buttonVariants } from './components/ui/button';
@@ -48,8 +60,8 @@ export type { EmptyStateProps } from './components/ui/empty-state';
48
60
  export { EmptyState } from './components/ui/empty-state';
49
61
  export type { AiAssistActionProps, AiAssistActionStrings, InsertVariableActionProps, InsertVariableActionStrings, } from './components/ui/field-actions';
50
62
  export { AiAssistAction, DEFAULT_AI_ASSIST_ACTION_STRINGS, DEFAULT_INSERT_VARIABLE_ACTION_STRINGS, InsertVariableAction, } from './components/ui/field-actions';
51
- export type { BuiltInValueModesOptions, FieldMenuItem, FieldMenuMode, FieldMenuProps, ValueMode, ValueModeIndicatorProps, ValueModeOption, ValueModeStrings, } from './components/ui/field-addons';
52
- export { BUILTIN_VALUE_MODES, builtInValueModes, DEFAULT_VALUE_MODE_STRINGS, FieldMenu, ValueModeIndicator, } from './components/ui/field-addons';
63
+ export type { BuiltInValueModesOptions, FieldMenuItem, FieldMenuMode, FieldMenuProps, ValueMode, ValueModeIndicatorProps, ValueModeOption, ValueModeStrings, ValueModeSwitchDialogProps, } from './components/ui/field-addons';
64
+ export { BUILTIN_VALUE_MODES, builtInValueModes, DEFAULT_VALUE_MODE_STRINGS, FieldMenu, ValueModeIndicator, ValueModeSwitchDialog, } from './components/ui/field-addons';
53
65
  export type { FileUploadProps } from './components/ui/file-upload';
54
66
  export { FileUpload } from './components/ui/file-upload';
55
67
  export type { FormFieldDescriptionProps, FormFieldErrorProps, FormFieldHeaderProps, FormFieldLabelProps, FormFieldProps, } from './components/ui/form-field';
@@ -82,6 +94,8 @@ export { PortalContainerProvider } from './components/ui/portal-container';
82
94
  export { Progress } from './components/ui/progress';
83
95
  export type { MarkdownPreviewTokenOverride, PromptEditorAutoCompleteOption, PromptEditorAutocompleteMenuProps, PromptEditorDiffType, PromptEditorMode, PromptEditorProps, PromptEditorRef, PromptEditorRenderTokenPill, PromptEditorStrings, PromptEditorToken, PromptEditorTokenPillSlotProps, PromptEditorTokenType, PromptEditorToolbarActiveFormats, PromptTokenNode, TokenPillProps, TokenPillWithTooltipProps, } from './components/ui/prompt-editor';
84
96
  export { $insertTokenAtCursor, createInputTokenNode, createOutputTokenNode, createResourceTokenNode, createStateTokenNode, createTokenNodeForOption, DEFAULT_PROMPT_EDITOR_STRINGS, getAllPromptTokenNodes, getEditorTokens, getPromptEditorTokenColors, getPromptEditorTokenTypeLabel, InputTokenNode, inferTokenTypeFromPath, isPromptTokenNode, normalizeRichTextTokens, normalizeVariablePath, OutputTokenNode, PROMPT_EDITOR_RICH_TRANSFORMERS, PromptEditor, ResourceTokenNode, StateTokenNode, setEditorTokens, TokenPill, TokenPillWithTooltip, VARIABLE_DRAG_MIME, VARIABLE_PATH_REGEX, WORD_JOINER, } from './components/ui/prompt-editor';
97
+ export type { PromptValueControlProps } from './components/ui/prompt-value-control';
98
+ export { PromptValueControl } from './components/ui/prompt-value-control';
85
99
  export type { QuickFieldType, QuickFormFieldMode, QuickFormFieldMoreActions, QuickFormFieldOption, QuickFormFieldProps, QuickFormFieldStrings, VariableInsertContext, } from './components/ui/quick-form-field';
86
100
  export { DEFAULT_QUICK_FORM_FIELD_STRINGS, FIELD_TYPE_META, FIELD_TYPE_ORDER, QuickFormField, } from './components/ui/quick-form-field';
87
101
  export { RadioGroup, RadioGroupItem } from './components/ui/radio-group';
@@ -111,8 +125,12 @@ export { Textarea } from './components/ui/textarea';
111
125
  export { Toggle, toggleVariants } from './components/ui/toggle';
112
126
  export { ToggleGroup, ToggleGroupItem } from './components/ui/toggle-group';
113
127
  export { Tooltip, TooltipContent, TooltipPortal, TooltipProvider, TooltipTrigger, } from './components/ui/tooltip';
128
+ export type { BuildJsonTreeOptions, ContainerPath, CopyEvent, DeriveTypeIcon, FlatJsonTreeRow, FlattenOptions, JsonCodeEditorRenderProps, JsonContainer, JsonContainerEditorProps, JsonLeafValueEditorProps, JsonMultilineLeafEditorProps, JsonObject, JsonSchema, JsonSchemaTypeName, JsonTreeChange, JsonTreeFilterOption, JsonTreeNode, JsonTreeNodeType, JsonTreeRowWrapper, JsonTreeRowWrapperProps, JsonTreeToolbarProps, JsonTreeViewProps, JsonTreeViewProviderProps, JsonTreeViewStrings, JsonTypeBadgeProps, JsonValue, NodeAction, NodeActionContext, NodeActionsResolver, NodeDecoration, NodeDecorationBadge, NodeDecorationChip, NodeDecorationTone, NodeDisplayTexts, PathSegment, RenderCodeEditor, RenderValueCell, RenderValueContext, } from './components/ui/json-tree-view';
129
+ export { appendPathSegment, buildJsonTree, collectContainerPaths, copyTextToClipboard, DEFAULT_JSON_TREE_VIEW_STRINGS, flattenJsonTree, formatLeafValue, getValueAtPath, inferValueType, isArrayItemTemplateRoot, isJsonObject, JsonContainerEditor, JsonLeafValueEditor, JsonMultilineLeafEditor, JsonTreeToolbar, JsonTreeView, JsonTreeViewProvider, JsonTypeBadge, removeValueAtPath, schemaDisplayType, setValueAtPath, useJsonTreeViewStrings, } from './components/ui/json-tree-view';
114
130
  export type { FileTreeViewIconMap, FileTreeViewItem, FileTreeViewItemAction, FileTreeViewMenuItem, FileTreeViewProps, FileTreeViewSelectionMode, TreeViewIconMap, TreeViewItem, TreeViewItemAction, TreeViewMenuItem, TreeViewProps, TreeViewSelectionMode, } from './components/ui/tree-view';
115
131
  export { default as FileTreeView, TreeView } from './components/ui/tree-view';
116
132
  export type { VariablePickerContentProps, VariablePickerItem, VariablePickerProps, } from './components/ui/variable-picker';
117
133
  export { VariablePicker, VariablePickerContent, } from './components/ui/variable-picker';
134
+ export type { VariableValueControlProps } from './components/ui/variable-value-control';
135
+ export { VariableValueControl } from './components/ui/variable-value-control';
118
136
  export { cn } from './lib/utils';
package/dist/index.js CHANGED
@@ -1,18 +1,24 @@
1
1
  import { DataFetcher, DataSourceBuilder, DataTransformers, FetchAdapter } from "./components/forms/data-fetcher.js";
2
+ import { createAiAssistAction, createClearAction, createInsertVariableAction, resolveVariables } from "./components/forms/field-actions.js";
3
+ import { FIELD_CONTROL_GEOMETRY, FieldControl } from "./components/forms/field-control.js";
2
4
  import { FormFieldRenderer } from "./components/forms/field-renderer.js";
3
5
  import { FormDesigner } from "./components/forms/form-designer.js";
4
6
  import { analyticsPlugin, auditPlugin, autoSavePlugin, formattingPlugin, validationPlugin, workflowPlugin } from "./components/forms/form-plugins.js";
5
7
  import { hasMinMaxStep, hasOptions, isCustomField, isFileField } from "./components/forms/form-schema.js";
6
8
  import { FormStateViewer } from "./components/forms/form-state-viewer.js";
9
+ import { DEFAULT_METADATA_FORM_STRINGS } from "./components/forms/form-strings.js";
7
10
  import { MetadataForm, useWatch } from "./components/forms/metadata-form.js";
11
+ import { ModeAwareField } from "./components/forms/mode-aware-field.js";
8
12
  import { ExpressionBuilder, RuleBuilder, RulesEngine } from "./components/forms/rules-engine.js";
9
13
  import { StringListField, formatTemplate } from "./components/forms/string-list-field.js";
14
+ import { VALUE_MODE_OPAQUE, envelopeCodec, isEmptyModeValue, isValueModeEnvelope, literalValues } from "./components/forms/value-modes.js";
10
15
  import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from "./components/ui/accordion.js";
11
16
  import { Alert, AlertDescription, AlertTitle } from "./components/ui/alert.js";
12
17
  import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger } from "./components/ui/alert-dialog.js";
13
18
  import { AspectRatio } from "./components/ui/aspect-ratio.js";
14
19
  import { Avatar, AvatarFallback, AvatarImage } from "./components/ui/avatar.js";
15
20
  import { Badge, badgeVariants } from "./components/ui/badge.js";
21
+ import { BooleanRadioGroup, DEFAULT_BOOLEAN_RADIO_GROUP_STRINGS } from "./components/ui/boolean-radio-group.js";
16
22
  import { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator } from "./components/ui/breadcrumb.js";
17
23
  import { Button, buttonVariants } from "./components/ui/button.js";
18
24
  import { ButtonGroup, ButtonGroupSeparator, ButtonGroupText } from "./components/ui/button-group.js";
@@ -33,7 +39,7 @@ import { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMe
33
39
  import { EditableCell, createEditableColumn } from "./components/ui/editable-cell.js";
34
40
  import { EmptyState } from "./components/ui/empty-state.js";
35
41
  import { AiAssistAction, DEFAULT_AI_ASSIST_ACTION_STRINGS, DEFAULT_INSERT_VARIABLE_ACTION_STRINGS, InsertVariableAction } from "./components/ui/field-actions/index.js";
36
- import { BUILTIN_VALUE_MODES, DEFAULT_VALUE_MODE_STRINGS, FieldMenu, ValueModeIndicator, builtInValueModes } from "./components/ui/field-addons/index.js";
42
+ import { BUILTIN_VALUE_MODES, DEFAULT_VALUE_MODE_STRINGS, FieldMenu, ValueModeIndicator, ValueModeSwitchDialog, builtInValueModes } from "./components/ui/field-addons/index.js";
37
43
  import { FileUpload } from "./components/ui/file-upload.js";
38
44
  import { FormField, FormFieldDescription, FormFieldError, FormFieldHeader, FormFieldLabel } from "./components/ui/form-field.js";
39
45
  import { HoverCard, HoverCardContent, HoverCardTrigger } from "./components/ui/hover-card.js";
@@ -52,6 +58,7 @@ import { Popover, PopoverAnchor, PopoverContent, PopoverTrigger } from "./compon
52
58
  import { PortalContainerProvider } from "./components/ui/portal-container.js";
53
59
  import { Progress } from "./components/ui/progress.js";
54
60
  import { $insertTokenAtCursor, DEFAULT_PROMPT_EDITOR_STRINGS, InputTokenNode, OutputTokenNode, PROMPT_EDITOR_RICH_TRANSFORMERS, PromptEditor, ResourceTokenNode, StateTokenNode, TokenPill, TokenPillWithTooltip, VARIABLE_DRAG_MIME, VARIABLE_PATH_REGEX, WORD_JOINER, createInputTokenNode, createOutputTokenNode, createResourceTokenNode, createStateTokenNode, createTokenNodeForOption, getAllPromptTokenNodes, getEditorTokens, getPromptEditorTokenColors, getPromptEditorTokenTypeLabel, inferTokenTypeFromPath, isPromptTokenNode, normalizeRichTextTokens, normalizeVariablePath, setEditorTokens } from "./components/ui/prompt-editor/index.js";
61
+ import { PromptValueControl } from "./components/ui/prompt-value-control.js";
55
62
  import { DEFAULT_QUICK_FORM_FIELD_STRINGS, FIELD_TYPE_META, FIELD_TYPE_ORDER, QuickFormField } from "./components/ui/quick-form-field/index.js";
56
63
  import { RadioGroup, RadioGroupItem } from "./components/ui/radio-group.js";
57
64
  import { ResizableHandle, ResizablePanel, ResizablePanelGroup } from "./components/ui/resizable.js";
@@ -73,7 +80,9 @@ import { Textarea } from "./components/ui/textarea.js";
73
80
  import { Toggle, toggleVariants } from "./components/ui/toggle.js";
74
81
  import { ToggleGroup, ToggleGroupItem } from "./components/ui/toggle-group.js";
75
82
  import { Tooltip, TooltipContent, TooltipPortal, TooltipProvider, TooltipTrigger } from "./components/ui/tooltip.js";
83
+ import { DEFAULT_JSON_TREE_VIEW_STRINGS, JsonContainerEditor, JsonLeafValueEditor, JsonMultilineLeafEditor, JsonTreeToolbar, JsonTreeView, JsonTreeViewProvider, JsonTypeBadge, appendPathSegment, buildJsonTree, collectContainerPaths, copyTextToClipboard, flattenJsonTree, formatLeafValue, getValueAtPath, inferValueType, isArrayItemTemplateRoot, isJsonObject, removeValueAtPath, schemaDisplayType, setValueAtPath, useJsonTreeViewStrings } from "./components/ui/json-tree-view/index.js";
76
84
  import tree_view, { TreeView } from "./components/ui/tree-view.js";
77
85
  import { VariablePicker, VariablePickerContent } from "./components/ui/variable-picker/index.js";
86
+ import { VariableValueControl } from "./components/ui/variable-value-control.js";
78
87
  import { cn } from "./lib/utils.js";
79
- export { $insertTokenAtCursor, Accordion, AccordionContent, AccordionItem, AccordionTrigger, AiAssistAction, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AspectRatio, Avatar, AvatarFallback, AvatarImage, BUILTIN_VALUE_MODES, Badge, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, Calendar, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Column, Combobox, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DEFAULT_AI_ASSIST_ACTION_STRINGS, DEFAULT_INSERT_VARIABLE_ACTION_STRINGS, DEFAULT_MODEL_PICKER_LABELS, DEFAULT_PROMPT_EDITOR_STRINGS, DEFAULT_QUICK_FORM_FIELD_STRINGS, DEFAULT_VALUE_MODE_STRINGS, DataFetcher, DataSourceBuilder, DataTable, DataTableColumnHeader, DataTableSelectColumn, DataTransformers, DatePicker, DateRangePicker, DateTimePicker, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EditableCell, EmptyState, ExpressionBuilder, FIELD_TYPE_META, FIELD_TYPE_ORDER, FetchAdapter, FieldMenu, tree_view as FileTreeView, FileUpload, FolderSwitcher, FormDesigner, FormField, FormFieldDescription, FormFieldError, FormFieldHeader, FormFieldLabel, FormFieldRenderer, FormStateViewer, Grid, GroupHeader, GroupedOptionList, HoverCard, HoverCardContent, HoverCardTrigger, InfoTooltip, Input, InputGroup, InputGroupAddon, InputGroupBody, InputGroupButton, InputGroupInput, InputGroupPopoverTrigger, InputGroupRow, InputGroupText, InputGroupTextarea, InputGroupTrigger, InputTokenNode, InsertVariableAction, Label, LockableValueField, MODEL_BADGES, MetadataForm, Modal, ModalClose, ModalContent, ModalDescription, ModalFooter, ModalHeader, ModalOverlay, ModalPortal, ModalTitle, ModalTrigger, ModelOptionRow, ModelPicker, ModelTagChip, MultiSelect, OutputTokenNode, PROMPT_EDITOR_RICH_TRANSFORMERS, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PickerPopup, PickerSearchInput, PickerTrigger, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, PortalContainerProvider, Progress, PromptEditor, QuickFormField, RadioGroup, RadioGroupItem, RequiredIndicator, ResizableHandle, ResizablePanel, ResizablePanelGroup, ResourceTokenNode, Row, RuleBuilder, RulesEngine, ScrollArea, ScrollBar, ScrollableTabsList, Search, SearchWithSuggestions, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Skeleton, Slider, Spinner, StateTokenNode, StatsCard, Stepper, StringListField, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Toaster, Toggle, ToggleGroup, ToggleGroupItem, TokenPill, TokenPillWithTooltip, Tooltip, TooltipContent, TooltipPortal, TooltipProvider, TooltipTrigger, TreeView, VARIABLE_DRAG_MIME, VARIABLE_PATH_REGEX, ValueModeIndicator, VariablePicker, VariablePickerContent, VirtualOptionList, WORD_JOINER, analyticsPlugin, auditPlugin, autoSavePlugin, badgeVariants, builtInValueModes, buttonVariants, cn, createEditableColumn, createInputTokenNode, createOutputTokenNode, createResourceTokenNode, createStateTokenNode, createTokenNodeForOption, defaultCostTier, defaultRowActions, deriveModelTags, filterModels, formatContextWindow, formatTemplate, formattingPlugin, getAllPromptTokenNodes, getEditorTokens, getPromptEditorTokenColors, getPromptEditorTokenTypeLabel, getSubstitutionTarget, groupModels, hasMinMaxStep, hasOptions, inferTokenTypeFromPath, inputGroupVariants, isCustomField, isFileField, isPromptTokenNode, isTextGenerationModel, normalizeRichTextTokens, normalizeVariablePath, optionDomId, resolveHomeGeography, resolveLabels, setEditorTokens, spinnerVariants, toast, toggleVariants, useInputGroup, useModelPickerState, useWatch, validationPlugin, workflowPlugin };
88
+ export { $insertTokenAtCursor, Accordion, AccordionContent, AccordionItem, AccordionTrigger, AiAssistAction, Alert, AlertDescription, AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger, AlertTitle, AspectRatio, Avatar, AvatarFallback, AvatarImage, BUILTIN_VALUE_MODES, Badge, BooleanRadioGroup, Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator, Button, ButtonGroup, ButtonGroupSeparator, ButtonGroupText, Calendar, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, ChartContainer, ChartLegend, ChartLegendContent, ChartStyle, ChartTooltip, ChartTooltipContent, Checkbox, Collapsible, CollapsibleContent, CollapsibleTrigger, Column, Combobox, Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut, ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, DEFAULT_AI_ASSIST_ACTION_STRINGS, DEFAULT_BOOLEAN_RADIO_GROUP_STRINGS, DEFAULT_INSERT_VARIABLE_ACTION_STRINGS, DEFAULT_JSON_TREE_VIEW_STRINGS, DEFAULT_METADATA_FORM_STRINGS, DEFAULT_MODEL_PICKER_LABELS, DEFAULT_PROMPT_EDITOR_STRINGS, DEFAULT_QUICK_FORM_FIELD_STRINGS, DEFAULT_VALUE_MODE_STRINGS, DataFetcher, DataSourceBuilder, DataTable, DataTableColumnHeader, DataTableSelectColumn, DataTransformers, DatePicker, DateRangePicker, DateTimePicker, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, EditableCell, EmptyState, ExpressionBuilder, FIELD_CONTROL_GEOMETRY, FIELD_TYPE_META, FIELD_TYPE_ORDER, FetchAdapter, FieldControl, FieldMenu, tree_view as FileTreeView, FileUpload, FolderSwitcher, FormDesigner, FormField, FormFieldDescription, FormFieldError, FormFieldHeader, FormFieldLabel, FormFieldRenderer, FormStateViewer, Grid, GroupHeader, GroupedOptionList, HoverCard, HoverCardContent, HoverCardTrigger, InfoTooltip, Input, InputGroup, InputGroupAddon, InputGroupBody, InputGroupButton, InputGroupInput, InputGroupPopoverTrigger, InputGroupRow, InputGroupText, InputGroupTextarea, InputGroupTrigger, InputTokenNode, InsertVariableAction, JsonContainerEditor, JsonLeafValueEditor, JsonMultilineLeafEditor, JsonTreeToolbar, JsonTreeView, JsonTreeViewProvider, JsonTypeBadge, Label, LockableValueField, MODEL_BADGES, MetadataForm, Modal, ModalClose, ModalContent, ModalDescription, ModalFooter, ModalHeader, ModalOverlay, ModalPortal, ModalTitle, ModalTrigger, ModeAwareField, ModelOptionRow, ModelPicker, ModelTagChip, MultiSelect, OutputTokenNode, PROMPT_EDITOR_RICH_TRANSFORMERS, Pagination, PaginationContent, PaginationEllipsis, PaginationItem, PaginationLink, PaginationNext, PaginationPrevious, PickerPopup, PickerSearchInput, PickerTrigger, Popover, PopoverAnchor, PopoverContent, PopoverTrigger, PortalContainerProvider, Progress, PromptEditor, PromptValueControl, QuickFormField, RadioGroup, RadioGroupItem, RequiredIndicator, ResizableHandle, ResizablePanel, ResizablePanelGroup, ResourceTokenNode, Row, RuleBuilder, RulesEngine, ScrollArea, ScrollBar, ScrollableTabsList, Search, SearchWithSuggestions, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Skeleton, Slider, Spinner, StateTokenNode, StatsCard, Stepper, StringListField, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Textarea, Toaster, Toggle, ToggleGroup, ToggleGroupItem, TokenPill, TokenPillWithTooltip, Tooltip, TooltipContent, TooltipPortal, TooltipProvider, TooltipTrigger, TreeView, VALUE_MODE_OPAQUE, VARIABLE_DRAG_MIME, VARIABLE_PATH_REGEX, ValueModeIndicator, ValueModeSwitchDialog, VariablePicker, VariablePickerContent, VariableValueControl, VirtualOptionList, WORD_JOINER, analyticsPlugin, appendPathSegment, auditPlugin, autoSavePlugin, badgeVariants, buildJsonTree, builtInValueModes, buttonVariants, cn, collectContainerPaths, copyTextToClipboard, createAiAssistAction, createClearAction, createEditableColumn, createInputTokenNode, createInsertVariableAction, createOutputTokenNode, createResourceTokenNode, createStateTokenNode, createTokenNodeForOption, defaultCostTier, defaultRowActions, deriveModelTags, envelopeCodec, filterModels, flattenJsonTree, formatContextWindow, formatLeafValue, formatTemplate, formattingPlugin, getAllPromptTokenNodes, getEditorTokens, getPromptEditorTokenColors, getPromptEditorTokenTypeLabel, getSubstitutionTarget, getValueAtPath, groupModels, hasMinMaxStep, hasOptions, inferTokenTypeFromPath, inferValueType, inputGroupVariants, isArrayItemTemplateRoot, isCustomField, isEmptyModeValue, isFileField, isJsonObject, isPromptTokenNode, isTextGenerationModel, isValueModeEnvelope, literalValues, normalizeRichTextTokens, normalizeVariablePath, optionDomId, removeValueAtPath, resolveHomeGeography, resolveLabels, resolveVariables, schemaDisplayType, setEditorTokens, setValueAtPath, spinnerVariants, toast, toggleVariants, useInputGroup, useJsonTreeViewStrings, useModelPickerState, useWatch, validationPlugin, workflowPlugin };
@@ -24,16 +24,19 @@ var __webpack_require__ = {};
24
24
  var __webpack_exports__ = {};
25
25
  __webpack_require__.r(__webpack_exports__);
26
26
  __webpack_require__.d(__webpack_exports__, {
27
- get: ()=>external_utils_cjs_namespaceObject.get,
27
+ composeRefs: ()=>external_utils_cjs_namespaceObject.composeRefs,
28
28
  cn: ()=>external_utils_cjs_namespaceObject.cn,
29
+ get: ()=>external_utils_cjs_namespaceObject.get,
29
30
  deepEqual: ()=>external_utils_cjs_namespaceObject.deepEqual
30
31
  });
31
32
  const external_utils_cjs_namespaceObject = require("./utils.cjs");
32
33
  exports.cn = __webpack_exports__.cn;
34
+ exports.composeRefs = __webpack_exports__.composeRefs;
33
35
  exports.deepEqual = __webpack_exports__.deepEqual;
34
36
  exports.get = __webpack_exports__.get;
35
37
  for(var __rspack_i in __webpack_exports__)if (-1 === [
36
38
  "cn",
39
+ "composeRefs",
37
40
  "deepEqual",
38
41
  "get"
39
42
  ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
@@ -1 +1 @@
1
- export { cn, get, deepEqual } from './utils';
1
+ export { cn, composeRefs, deepEqual, get } from './utils';
package/dist/lib/index.js CHANGED
@@ -1,2 +1,2 @@
1
- import { cn, deepEqual, get } from "./utils.js";
2
- export { cn, deepEqual, get };
1
+ import { cn, composeRefs, deepEqual, get } from "./utils.js";
2
+ export { cn, composeRefs, deepEqual, get };
@@ -24,8 +24,9 @@ var __webpack_require__ = {};
24
24
  var __webpack_exports__ = {};
25
25
  __webpack_require__.r(__webpack_exports__);
26
26
  __webpack_require__.d(__webpack_exports__, {
27
- get: ()=>get,
27
+ composeRefs: ()=>composeRefs,
28
28
  cn: ()=>cn,
29
+ get: ()=>get,
29
30
  deepEqual: ()=>deepEqual
30
31
  });
31
32
  const external_clsx_namespaceObject = require("clsx");
@@ -57,11 +58,30 @@ function deepEqual(a, b) {
57
58
  }
58
59
  return true;
59
60
  }
61
+ function setRef(ref, node) {
62
+ if ('function' == typeof ref) return ref(node);
63
+ if (ref) ref.current = node;
64
+ }
65
+ function composeRefs(...refs) {
66
+ return (node)=>{
67
+ const cleanups = refs.map((ref)=>setRef(ref, node));
68
+ if (!cleanups.some((cleanup)=>'function' == typeof cleanup)) return;
69
+ return ()=>{
70
+ refs.forEach((ref, index)=>{
71
+ const cleanup = cleanups[index];
72
+ if ('function' == typeof cleanup) cleanup();
73
+ else setRef(ref, null);
74
+ });
75
+ };
76
+ };
77
+ }
60
78
  exports.cn = __webpack_exports__.cn;
79
+ exports.composeRefs = __webpack_exports__.composeRefs;
61
80
  exports.deepEqual = __webpack_exports__.deepEqual;
62
81
  exports.get = __webpack_exports__.get;
63
82
  for(var __rspack_i in __webpack_exports__)if (-1 === [
64
83
  "cn",
84
+ "composeRefs",
65
85
  "deepEqual",
66
86
  "get"
67
87
  ].indexOf(__rspack_i)) exports[__rspack_i] = __webpack_exports__[__rspack_i];
@@ -1,4 +1,5 @@
1
1
  import { type ClassValue } from 'clsx';
2
+ import type * as React from 'react';
2
3
  /**
3
4
  * Utility function to merge Tailwind CSS classes with proper precedence
4
5
  * Uses clsx for conditional classes and tailwind-merge for deduplication
@@ -12,3 +13,10 @@ export declare function get(obj: unknown, path: string, defaultValue?: unknown):
12
13
  * Deep equality check for objects and primitives
13
14
  */
14
15
  export declare function deepEqual(a: unknown, b: unknown): boolean;
16
+ type AnyRef<T> = React.Ref<T> | React.Ref<unknown> | undefined;
17
+ /**
18
+ * One callback ref that sets every given ref. When any of them returns a cleanup, so does this
19
+ * one, which runs those cleanups and resets the refs that returned none, as React would.
20
+ */
21
+ export declare function composeRefs<T>(...refs: AnyRef<T>[]): React.RefCallback<T>;
22
+ export {};
package/dist/lib/utils.js CHANGED
@@ -27,4 +27,21 @@ function deepEqual(a, b) {
27
27
  }
28
28
  return true;
29
29
  }
30
- export { cn, deepEqual, get };
30
+ function setRef(ref, node) {
31
+ if ('function' == typeof ref) return ref(node);
32
+ if (ref) ref.current = node;
33
+ }
34
+ function composeRefs(...refs) {
35
+ return (node)=>{
36
+ const cleanups = refs.map((ref)=>setRef(ref, node));
37
+ if (!cleanups.some((cleanup)=>'function' == typeof cleanup)) return;
38
+ return ()=>{
39
+ refs.forEach((ref, index)=>{
40
+ const cleanup = cleanups[index];
41
+ if ('function' == typeof cleanup) cleanup();
42
+ else setRef(ref, null);
43
+ });
44
+ };
45
+ };
46
+ }
47
+ export { cn, composeRefs, deepEqual, get };