@parallelworks/ui 0.17.0 → 0.19.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 (169) hide show
  1. package/README.md +86 -6
  2. package/dist/ai/adapter/memoryStore.d.ts +8 -0
  3. package/dist/ai/adapter/mock/index.d.ts +2 -0
  4. package/dist/ai/adapter/mock/index.js +81 -0
  5. package/dist/ai/adapter/mock/mockAdapter.d.ts +4 -0
  6. package/dist/ai/adapter/openai/createOpenAIStream.d.ts +9 -0
  7. package/dist/ai/adapter/openai/errors.d.ts +3 -0
  8. package/dist/ai/adapter/openai/index.d.ts +6 -0
  9. package/dist/ai/adapter/openai/index.js +334 -0
  10. package/dist/ai/adapter/openai/openaiAdapter.d.ts +9 -0
  11. package/dist/ai/adapter/openai/responses.d.ts +4 -0
  12. package/dist/ai/adapter/openai/sse.d.ts +24 -0
  13. package/dist/ai/adapter/openai/wire.d.ts +40 -0
  14. package/dist/ai/adapter/types.d.ts +131 -0
  15. package/dist/ai/agent/classifier.d.ts +2 -0
  16. package/dist/ai/agent/diff.d.ts +35 -0
  17. package/dist/ai/agent/diffHighlight.d.ts +6 -0
  18. package/dist/ai/agent/index.d.ts +6 -0
  19. package/dist/ai/agent/permissions.d.ts +11 -0
  20. package/dist/ai/agent/toolfmt.d.ts +18 -0
  21. package/dist/ai/agent/transcript.d.ts +38 -0
  22. package/dist/ai/ai.css +325 -0
  23. package/dist/ai/components/AllocationSelector.d.ts +4 -0
  24. package/dist/ai/components/AttachmentManager.d.ts +1 -0
  25. package/dist/ai/components/AttachmentUpload.d.ts +24 -0
  26. package/dist/ai/components/BlockedGroupBanner.d.ts +1 -0
  27. package/dist/ai/components/BranchNavigator.d.ts +8 -0
  28. package/dist/ai/components/ChatEmptyState.d.ts +3 -0
  29. package/dist/ai/components/ChatInput.d.ts +45 -0
  30. package/dist/ai/components/ChatLayout.d.ts +5 -0
  31. package/dist/ai/components/ChatMessage.d.ts +24 -0
  32. package/dist/ai/components/ChatMessageList.d.ts +35 -0
  33. package/dist/ai/components/ChatSidebar.d.ts +5 -0
  34. package/dist/ai/components/ChatThread.d.ts +3 -0
  35. package/dist/ai/components/ComposerChrome.d.ts +18 -0
  36. package/dist/ai/components/ComposerFrame.d.ts +16 -0
  37. package/dist/ai/components/DragOverlay.d.ts +5 -0
  38. package/dist/ai/components/ModelSelector.d.ts +6 -0
  39. package/dist/ai/components/ShareDialog.d.ts +11 -0
  40. package/dist/ai/components/SlashMenu.d.ts +28 -0
  41. package/dist/ai/components/agent/ActivityLine.d.ts +21 -0
  42. package/dist/ai/components/agent/AgentMessageParts.d.ts +54 -0
  43. package/dist/ai/components/agent/PermissionPicker.d.ts +11 -0
  44. package/dist/ai/components/attachmentKeys.d.ts +4 -0
  45. package/dist/ai/core/ChatProvider.d.ts +66 -0
  46. package/dist/ai/core/KeyboardShortcutsProvider.d.ts +5 -0
  47. package/dist/ai/core/chatReducer.d.ts +114 -0
  48. package/dist/ai/core/config.d.ts +47 -0
  49. package/dist/ai/core/events.d.ts +1 -0
  50. package/dist/ai/core/exportConversation.d.ts +4 -0
  51. package/dist/ai/core/greeting.d.ts +3 -0
  52. package/dist/ai/core/parts.d.ts +11 -0
  53. package/dist/ai/core/useDragDrop.d.ts +14 -0
  54. package/dist/ai/core/useKeyboardShortcuts.d.ts +12 -0
  55. package/dist/ai/core/useSSEStream.d.ts +34 -0
  56. package/dist/ai/index.d.ts +40 -0
  57. package/dist/ai/index.js +6645 -0
  58. package/dist/ai/strings.d.ts +167 -0
  59. package/dist/ai/types.d.ts +236 -0
  60. package/dist/ai/ui/Avatar.d.ts +8 -0
  61. package/dist/ai/ui/Dropdown.d.ts +31 -0
  62. package/dist/ai/ui/Markdown.d.ts +8 -0
  63. package/dist/ai/ui/Notice.d.ts +21 -0
  64. package/dist/ai/ui/buttons.d.ts +1 -0
  65. package/dist/ai/ui/codeBreaks.d.ts +16 -0
  66. package/dist/ai/ui/prose.d.ts +1 -0
  67. package/dist/ai/ui/sidebar.d.ts +81 -0
  68. package/dist/ai/utils.d.ts +4 -0
  69. package/dist/assets/{editor.worker-CuBRIwi-.js → editor.worker-BmHUIVG4.js} +194 -163
  70. package/dist/assets/{json.worker-8ytS02vz.js → json.worker-D8bJ92nw.js} +384 -338
  71. package/dist/assets/{yaml.worker-DJC-VUcv.js → yaml.worker-C4gyGAko.js} +15657 -13823
  72. package/dist/chunks/{CodePreviewEditor-UAtnpmOV.js → CodePreviewEditor-YqQBz1YL.js} +2 -2
  73. package/dist/chunks/ConfirmModal-aOR4O1QE.js +79 -0
  74. package/dist/chunks/{lib-CUTRDpa6.js → FieldWrapper-Cszwg-4B.js} +52 -55
  75. package/dist/chunks/{CreateModal-BbV5cTj7.js → Markdown-CM-FenNE.js} +25 -97
  76. package/dist/chunks/Monaco-DJ8MW-Dq.js +110 -0
  77. package/dist/chunks/{PageHeader-MxuOs9cH.js → PageHeader-0kG_iypP.js} +170 -105
  78. package/dist/chunks/{Provider-DHmZ3v9i.js → Provider-CDYurraE.js} +60 -24
  79. package/dist/chunks/{SwitchToggle-BRQoEwLZ.js → SwitchToggle-DShNdcao.js} +143 -140
  80. package/dist/chunks/{Table-C6JdFFiJ.js → Table-DU2MW8xz.js} +6 -4
  81. package/dist/chunks/{Tooltip-n9w7Tkt1.js → Tooltip-K5HJr4_p.js} +32 -5
  82. package/dist/chunks/duration-BOv8Phl8.js +17 -0
  83. package/dist/chunks/{editor-mNznodJN.js → editor-Dk1rbV75.js} +33 -19
  84. package/dist/chunks/focus-D_iZJTW1.js +7 -0
  85. package/dist/chunks/{list-7k0eaI5N.js → list-CJm875m7.js} +497 -379
  86. package/dist/chunks/logviewer-BTKuQWzw.js +828 -0
  87. package/dist/chunks/memoryStore-CC91S5LP.js +152 -0
  88. package/dist/chunks/types-Yy0NrerF.js +11 -0
  89. package/dist/components/AddMenu.d.ts +1 -0
  90. package/dist/components/Avatar.d.ts +13 -0
  91. package/dist/components/Breadcrumbs.d.ts +1 -1
  92. package/dist/components/Dropdown.d.ts +3 -1
  93. package/dist/components/EmptyState.d.ts +1 -1
  94. package/dist/components/Indicator.d.ts +2 -2
  95. package/dist/components/Input.d.ts +1 -1
  96. package/dist/components/LetterBadge.d.ts +1 -1
  97. package/dist/components/MarkdownImpl.d.ts +1 -1
  98. package/dist/components/Provider.d.ts +18 -65
  99. package/dist/components/SettingRow.d.ts +1 -1
  100. package/dist/components/SettingsGroup.d.ts +1 -1
  101. package/dist/components/focus.d.ts +2 -0
  102. package/dist/components/keys.d.ts +12 -0
  103. package/dist/duration.d.ts +3 -0
  104. package/dist/editor/Monaco.d.ts +1 -20
  105. package/dist/editor/index.d.ts +2 -1
  106. package/dist/editor/index.js +2 -2
  107. package/dist/editor/yaml.d.ts +5 -0
  108. package/dist/engine.d.ts +98 -0
  109. package/dist/file-explorer/FileExplorer.d.ts +11 -2
  110. package/dist/file-explorer/FileExplorerContext.d.ts +1 -1
  111. package/dist/file-explorer/FilePreview/CodePreviewEditor.d.ts +1 -1
  112. package/dist/file-explorer/FilePreview/previewType.d.ts +1 -1
  113. package/dist/file-explorer/FileRow.d.ts +1 -1
  114. package/dist/file-explorer/helpers.d.ts +4 -4
  115. package/dist/file-explorer/index.d.ts +3 -3
  116. package/dist/file-explorer/index.js +632 -665
  117. package/dist/file-explorer/lib/types.d.ts +6 -1
  118. package/dist/file-explorer/lib/utils.d.ts +1 -3
  119. package/dist/file-explorer/useNearEnd.d.ts +1 -1
  120. package/dist/form/FieldWrapper.d.ts +2 -1
  121. package/dist/form/Fields/ResourceOptionIcon.d.ts +1 -1
  122. package/dist/form/Form.d.ts +7 -22
  123. package/dist/form/index.d.ts +11 -12
  124. package/dist/form/index.js +1333 -1454
  125. package/dist/form/lib.d.ts +6 -1
  126. package/dist/form/types/fieldComponentTypes.d.ts +4 -2
  127. package/dist/form/types/fieldTypes.d.ts +6 -20
  128. package/dist/form/useParsedOpts.d.ts +2 -2
  129. package/dist/form/utils/{slurmDuration.d.ts → duration.d.ts} +2 -2
  130. package/dist/{workflow → graph}/MatrixGroup.d.ts +2 -2
  131. package/dist/{workflow → graph}/index.d.ts +1 -1
  132. package/dist/{workflow → graph}/index.js +220 -185
  133. package/dist/{workflow → graph}/types.d.ts +3 -3
  134. package/dist/icons.d.ts +20 -21
  135. package/dist/icons.js +3 -3
  136. package/dist/index.d.ts +38 -39
  137. package/dist/index.js +355 -354
  138. package/dist/list/ListTable.d.ts +1 -1
  139. package/dist/list/ListViewControls.d.ts +2 -2
  140. package/dist/list/RowContextMenu.d.ts +9 -9
  141. package/dist/list/UserHoverCard.d.ts +45 -0
  142. package/dist/list/index.d.ts +9 -8
  143. package/dist/list/index.js +3 -3
  144. package/dist/logviewer/LogViewer.d.ts +1 -1
  145. package/dist/logviewer/index.d.ts +1 -0
  146. package/dist/logviewer/index.js +2 -742
  147. package/dist/logviewer/segments.d.ts +9 -0
  148. package/dist/styles/Geist-Variable.woff2 +0 -0
  149. package/dist/styles/GeistMono-Variable.woff2 +0 -0
  150. package/dist/styles/base.css +57 -0
  151. package/dist/styles/fonts.css +15 -0
  152. package/dist/styles/theme.css +9 -41
  153. package/dist/styles.css +1 -1
  154. package/dist/theme/index.js +2 -2
  155. package/package.json +45 -20
  156. package/LICENSE +0 -21
  157. package/dist/chunks/Monaco-DVyIpyv4.js +0 -1046
  158. package/dist/editor/usesGitlab.d.ts +0 -97
  159. package/dist/form/Fields/BucketReadOnlyField.d.ts +0 -7
  160. package/dist/form/types/workflow-schema.d.ts +0 -1145
  161. package/dist/form/utils/pwResolver.d.ts +0 -18
  162. package/dist/chunks/{BareModal-BqroLbZ5.js → BareModal-BtRiQezg.js} +1 -1
  163. package/dist/chunks/{MarkdownImpl-Bq4QhrtA.js → MarkdownImpl-CyeTVvSt.js} +1 -1
  164. /package/dist/{workflow → graph}/AnnotationBanner.d.ts +0 -0
  165. /package/dist/{workflow → graph}/Collapse.d.ts +0 -0
  166. /package/dist/{workflow → graph}/DependencyGraph.d.ts +0 -0
  167. /package/dist/{workflow → graph}/JobSummary.d.ts +0 -0
  168. /package/dist/{workflow → graph}/Reveal.d.ts +0 -0
  169. /package/dist/{workflow → graph}/TreeView.d.ts +0 -0
@@ -15,8 +15,13 @@ export type TStorage = {
15
15
  canUpload?: boolean | undefined;
16
16
  canShare?: boolean | undefined;
17
17
  canManageAccess?: boolean | undefined;
18
- supportsPwUri?: boolean | undefined;
19
18
  };
19
+ /** A file the host is asked to name or download: its storage, key and name. */
20
+ export interface ExplorerObject {
21
+ storage: TStorage;
22
+ key: string;
23
+ name: string;
24
+ }
20
25
  export type TStorageObject = {
21
26
  path: string;
22
27
  type: 'file' | 'directory';
@@ -1,5 +1,5 @@
1
1
  import type { IFileExplorerClient } from './fileExplorer.js';
2
- import type { TStorage, TStorageObject, TreeMap, TreeNode, UploadNode } from './types.js';
2
+ import type { TreeMap, TreeNode, TStorage, TStorageObject, UploadNode } from './types.js';
3
3
  export declare function formatFileSize(bytes: number): string;
4
4
  export declare function getFileExtension(filename: string): string | null;
5
5
  export declare function getNodeName(node: TStorageObject): string;
@@ -33,8 +33,6 @@ export declare function attachmentDisposition(filename: string): string;
33
33
  export declare function getDirectoryPrefixFromNode(node: TreeNode): string;
34
34
  export declare function pruneNodesInsideSelectedDirectories(nodes: TreeNode[]): TreeNode[];
35
35
  export declare function collectObjectKeysToDelete(nodes: TreeNode[], listKeysUnderPrefix: (prefix: string) => Promise<string[]>): Promise<string[]>;
36
- export declare function getPwUri(username: string, pwName: string, key: string): string;
37
- export declare function getCspUri(csp: string, cspBucketName: string, key: string): string | null;
38
36
  export declare function getUriScheme(uri: string): string;
39
37
  export declare function removeLeadingSlash(path: string): string;
40
38
  export declare function removeLeadingAndTrailingSlashes(path: string): string;
@@ -1,6 +1,6 @@
1
1
  import { type RefObject } from 'react';
2
2
  /** Fires once the element comes within 100px of the bottom of `root`. */
3
- export declare function useNearEnd(ref: RefObject<Element | null>, { active, root, onNear, }: {
3
+ export declare function useNearEnd(ref: RefObject<Element | null>, { active, root, onNear }: {
4
4
  active: boolean;
5
5
  root: HTMLElement | null;
6
6
  onNear: () => void;
@@ -1,4 +1,5 @@
1
1
  import type React from 'react';
2
+ import type { FieldFlag } from './types/fieldTypes.js';
2
3
  export interface FieldLabelBinding {
3
4
  id: string;
4
5
  labelId: string;
@@ -10,6 +11,6 @@ export declare function FieldWrapper({ label, tooltipComponent, description, lab
10
11
  description?: string | undefined;
11
12
  labelPosition?: 'left' | 'top' | undefined;
12
13
  spaceCompact?: boolean | undefined;
13
- optional?: boolean | undefined;
14
+ optional?: FieldFlag | undefined;
14
15
  children: React.ReactNode | ((binding: FieldLabelBinding) => React.ReactNode);
15
16
  }): React.JSX.Element;
@@ -1,5 +1,5 @@
1
- import { StatusDot } from '../../components/StatusBadge.js';
2
1
  import type { ComponentProps } from 'react';
2
+ import { StatusDot } from '../../components/StatusBadge.js';
3
3
  interface ResourceOptionIconProps {
4
4
  imageUrl?: string | undefined;
5
5
  fallbackIcon: string;
@@ -1,6 +1,6 @@
1
1
  import { type FormikProps, type FormikValues } from 'formik';
2
- import { type WorkflowVariables } from '@parallelworks/workflow-parser';
3
2
  import React, { type SetStateAction } from 'react';
3
+ import type { WorkflowVariables } from '../engine.js';
4
4
  import { type FieldComponent } from './fieldRegistry.js';
5
5
  interface FormMeta {
6
6
  labelPosition?: 'left' | 'top' | undefined;
@@ -23,15 +23,15 @@ export declare function collectFieldsWithDefaults(options: Record<string, unknow
23
23
  }>;
24
24
  export declare function defaultReferencesField(defaultValue: unknown, fieldPath: string): boolean;
25
25
  export declare function findSelfReferencingFieldNames(schema: Record<string, unknown>, values?: Record<string, unknown>): string[];
26
- /** Resolves schema defaults into form values as dependencies change. Store-agnostic so the legacy
27
- * form (Formik) and the cluster wizard (its own store) share one implementation. */
26
+ /** Resolves schema defaults into form values as dependencies change. Store-agnostic so the Formik
27
+ * form and hosts with their own store share one implementation. */
28
28
  export declare function useDynamicDefaultsSync({ options, values, setValue, isTouched, }: {
29
29
  options: Record<string, unknown>;
30
30
  values: Record<string, unknown>;
31
31
  setValue: (name: string, value: unknown) => void;
32
32
  isTouched: (name: string) => boolean;
33
33
  }): void;
34
- export declare function DynamicDefaultsSync({ options, }: {
34
+ export declare function DynamicDefaultsSync({ options }: {
35
35
  options: Record<string, unknown>;
36
36
  }): null;
37
37
  export declare function GroupHeader({ children, open, setOpen, title, }: {
@@ -41,23 +41,6 @@ export declare function GroupHeader({ children, open, setOpen, title, }: {
41
41
  title: React.ReactNode;
42
42
  }): React.JSX.Element;
43
43
  export type TSetFormDirty = (dirty: boolean) => void;
44
- export interface IInstanceTypeOption {
45
- value: string;
46
- label: string;
47
- secondaryValue: unknown[];
48
- }
49
- interface IInstanceTypeForForm {
50
- vcpus?: number;
51
- memoryGb?: number;
52
- arch?: string;
53
- acceleratedNetworking?: boolean;
54
- localDiskSizeGb?: number;
55
- isFlex?: boolean;
56
- }
57
- export declare function getInstanceTypesForForm(instances: Record<string, IInstanceTypeForForm>): IInstanceTypeOption[];
58
- export declare function StatusBlock({ status }: {
59
- status: boolean;
60
- }): React.JSX.Element;
61
44
  export declare function MultiSelectionDropdown({ name, label, invalid, options: initialOptions, setFormDirty, onChange, parentValue, }: {
62
45
  name: string;
63
46
  label: string;
@@ -105,6 +88,8 @@ export interface DynamicFormProps {
105
88
  missingFields?: string[] | undefined;
106
89
  spaceCompact?: boolean;
107
90
  organizationVariables?: WorkflowVariables | undefined;
91
+ /** A remote workflow's repo/branch/yaml, so `${{ remote.* }}` resolves the same here as it does on the run. */
92
+ remoteVars?: Record<string, string | undefined> | undefined;
108
93
  needsOrganizationVariables?: boolean;
109
94
  onSubmit?: ((values: Record<string, unknown>) => void) | undefined;
110
95
  submitLabel?: string;
@@ -120,5 +105,5 @@ export interface DynamicFormProps {
120
105
  /** Host-supplied field components, merged over the core registry by type. */
121
106
  fields?: Record<string, FieldComponent>;
122
107
  }
123
- export declare function DynamicForm({ formJSONs: options, reinitialize, initialValues, setValues, setFormDirty, formikRef, labelPosition, missingFields, spaceCompact, organizationVariables, needsOrganizationVariables, onSubmit, submitLabel, className, workflowForm, contextKey, skipValueParse, fields, }: DynamicFormProps): React.JSX.Element;
108
+ export declare function DynamicForm({ formJSONs: options, reinitialize, initialValues, setValues, setFormDirty, formikRef, labelPosition, missingFields, spaceCompact, organizationVariables, remoteVars, needsOrganizationVariables, onSubmit, submitLabel, className, workflowForm, contextKey, skipValueParse, fields, }: DynamicFormProps): React.JSX.Element;
124
109
  export {};
@@ -1,18 +1,17 @@
1
- export { DynamicForm, DynamicDefaultsSync, FieldsFromOptions, GroupHeader, MultiSelectionDropdown, StatusBlock, collectFieldsWithDefaults, useDynamicDefaultsSync, findSelfReferencingFieldNames, getInstanceTypesForForm, resolveMetaOverrides, type DynamicFormProps, type TSetFormDirty, } from './Form.js';
2
- export { type FieldComponent, FieldRegistryContext, Registry, } from './fieldRegistry.js';
3
- export { FieldWrapper, type FieldLabelBinding } from './FieldWrapper.js';
1
+ export { getInvalidDurationPaths, setDurationValidity, } from './Fields/durationValidity.js';
2
+ export { default as NumberField, type INumberField, } from './Fields/NumberField.js';
3
+ export { ResourceOptionIcon } from './Fields/ResourceOptionIcon.js';
4
+ export { type FieldLabelBinding, FieldWrapper } from './FieldWrapper.js';
5
+ export { collectFieldsWithDefaults, DynamicDefaultsSync, DynamicForm, type DynamicFormProps, FieldsFromOptions, findSelfReferencingFieldNames, GroupHeader, MultiSelectionDropdown, resolveMetaOverrides, type TSetFormDirty, useDynamicDefaultsSync, } from './Form.js';
4
6
  export { type FieldContextValue, FieldProvider, useFieldControlProps, useFieldLabelledByProps, useFieldRequired, } from './fieldContext.js';
7
+ export { type FieldComponent, FieldRegistryContext, Registry, } from './fieldRegistry.js';
5
8
  export { enforceOneMustBeTrue, flattenGroups, impureSetValueFromPath, initializeValues, resolvedFlag, } from './lib.js';
6
9
  export { default as DropdownWrapper } from './SpecialTypes/DropdownWrapper.js';
7
- export { FormikCustomDropdown, FormikCustomInput, FormikNumericInput, } from './SpecialTypes/index.js';
8
10
  export { default as FormikMultiSelectDropdown } from './SpecialTypes/FormikMultiSelectDropdown.js';
9
- export { resolvePwString, resolvePwValue, type PwResolverOptions, } from './utils/pwResolver.js';
10
- export { ResourceOptionIcon } from './Fields/ResourceOptionIcon.js';
11
- export { default as NumberField, type INumberField, } from './Fields/NumberField.js';
12
- export { getInvalidDurationPaths, setDurationValidity, } from './Fields/durationValidity.js';
13
- export { FLEX_MAX_DURATION_RANGE, FLEX_WAIT_TIME_RANGE, STANDARD_MAX_DURATION_RANGE, collectPartitionDurationIssues, formatSecondsAsSlurmDuration, parseSlurmDuration, } from './utils/slurmDuration.js';
11
+ export { FormikCustomDropdown, FormikCustomInput, FormikNumericInput, } from './SpecialTypes/index.js';
12
+ export * from './types/fieldComponentTypes.js';
13
+ export * from './types/fieldTypes.js';
14
+ export { useParsedOpts } from './useParsedOpts.js';
15
+ export { collectPartitionDurationIssues, FLEX_MAX_DURATION_RANGE, FLEX_WAIT_TIME_RANGE, formatDuration, parseDuration, STANDARD_MAX_DURATION_RANGE, } from './utils/duration.js';
14
16
  export { getPlaceholder } from './utils/getPlaceholder.js';
15
17
  export { applySecondaryField, findSecondaryOption, } from './utils/secondaryField.js';
16
- export { useParsedOpts } from './useParsedOpts.js';
17
- export * from './types/fieldTypes.js';
18
- export * from './types/fieldComponentTypes.js';