@parallelworks/ui 0.76.0 → 0.78.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 (270) hide show
  1. package/README.md +30 -5
  2. package/dist/access/AccessDrawer.d.ts +28 -7
  3. package/dist/access/AccessDrawer.js +216 -35
  4. package/dist/access/AccessList.d.ts +19 -1
  5. package/dist/access/AccessList.js +220 -9
  6. package/dist/access/GrantView.d.ts +3 -1
  7. package/dist/access/GrantView.js +17 -4
  8. package/dist/access/PrincipalPicker.js +5 -5
  9. package/dist/access/focus.js +1 -1
  10. package/dist/access/index.d.ts +2 -2
  11. package/dist/access/index.js +2 -2
  12. package/dist/access/strings.d.ts +18 -0
  13. package/dist/access/strings.js +20 -2
  14. package/dist/access/types.d.ts +26 -0
  15. package/dist/ai/adapter/types.d.ts +1 -0
  16. package/dist/ai/components/AllocationSelector.js +1 -1
  17. package/dist/ai/components/AttachmentManager.js +5 -5
  18. package/dist/ai/components/AttachmentUpload.js +2 -2
  19. package/dist/ai/components/BranchNavigator.js +1 -1
  20. package/dist/ai/components/ChatActivity.d.ts +2 -0
  21. package/dist/ai/components/ChatActivity.js +31 -0
  22. package/dist/ai/components/ChatEmptyState.js +3 -3
  23. package/dist/ai/components/ChatInput.js +3 -5
  24. package/dist/ai/components/ChatLayout.js +1 -1
  25. package/dist/ai/components/ChatMessage.js +1 -1
  26. package/dist/ai/components/ChatMessageList.js +2 -2
  27. package/dist/ai/components/ChatSidebar.js +3 -3
  28. package/dist/ai/components/ChatThread.js +4 -4
  29. package/dist/ai/components/ComposerAddMenu.js +9 -20
  30. package/dist/ai/components/ModelSelector.js +3 -3
  31. package/dist/ai/components/PastedText.js +5 -5
  32. package/dist/ai/components/SessionView.js +5 -2
  33. package/dist/ai/components/ShareDialog.js +3 -3
  34. package/dist/ai/components/SlashMenu.d.ts +31 -4
  35. package/dist/ai/components/SlashMenu.js +36 -63
  36. package/dist/ai/components/agent/ActivityLine.js +1 -1
  37. package/dist/ai/components/agent/AgentMessageParts.d.ts +1 -1
  38. package/dist/ai/components/agent/AgentMessageParts.js +44 -18
  39. package/dist/ai/components/conversationActions.js +3 -3
  40. package/dist/ai/core/ChatProvider.js +11 -2
  41. package/dist/ai/core/config.d.ts +10 -1
  42. package/dist/ai/core/config.js +1 -1
  43. package/dist/ai/index.d.ts +1 -1
  44. package/dist/ai/strings.d.ts +2 -0
  45. package/dist/ai/strings.js +2 -1
  46. package/dist/ai/types.d.ts +3 -0
  47. package/dist/ai/ui/ConversationSidebar.js +3 -3
  48. package/dist/ai/ui/sidebar.js +3 -3
  49. package/dist/assets/yaml.worker-DOBV2lND.js +884 -0
  50. package/dist/components/ActionMenu.d.ts +38 -9
  51. package/dist/components/ActionMenu.js +48 -22
  52. package/dist/components/Avatar.d.ts +66 -6
  53. package/dist/components/Avatar.js +130 -18
  54. package/dist/components/Breadcrumbs.d.ts +4 -0
  55. package/dist/components/Breadcrumbs.js +26 -10
  56. package/dist/components/Button.d.ts +3 -2
  57. package/dist/components/Button.js +11 -1
  58. package/dist/components/Callout.d.ts +3 -2
  59. package/dist/components/Callout.js +3 -2
  60. package/dist/components/Card.d.ts +33 -9
  61. package/dist/components/Card.js +24 -8
  62. package/dist/components/Checkbox.d.ts +3 -1
  63. package/dist/components/Checkbox.js +4 -2
  64. package/dist/components/ColorInput.js +1 -1
  65. package/dist/components/Combobox.d.ts +23 -0
  66. package/dist/components/Combobox.js +252 -86
  67. package/dist/components/ConfirmModal.d.ts +26 -2
  68. package/dist/components/ConfirmModal.js +81 -15
  69. package/dist/components/ContextMenu.d.ts +29 -2
  70. package/dist/components/ContextMenu.js +60 -8
  71. package/dist/components/CopyButton.d.ts +21 -8
  72. package/dist/components/CopyButton.js +29 -9
  73. package/dist/components/CreateModal.d.ts +16 -4
  74. package/dist/components/CreateModal.js +27 -16
  75. package/dist/components/DatePicker.d.ts +31 -1
  76. package/dist/components/DatePicker.js +178 -47
  77. package/dist/components/DescriptionList.d.ts +13 -3
  78. package/dist/components/DescriptionList.js +43 -11
  79. package/dist/components/Disclosure.d.ts +10 -2
  80. package/dist/components/Disclosure.js +18 -7
  81. package/dist/components/Drawer.js +5 -5
  82. package/dist/components/EmptyState.d.ts +12 -4
  83. package/dist/components/EmptyState.js +18 -10
  84. package/dist/components/ErrorPage.d.ts +40 -0
  85. package/dist/components/ErrorPage.js +101 -0
  86. package/dist/components/ExternalLink.d.ts +4 -1
  87. package/dist/components/ExternalLink.js +4 -5
  88. package/dist/components/Field.d.ts +21 -6
  89. package/dist/components/Field.js +32 -16
  90. package/dist/components/FileButton.d.ts +19 -0
  91. package/dist/components/FileButton.js +32 -0
  92. package/dist/components/HoverCard.d.ts +26 -6
  93. package/dist/components/HoverCard.js +11 -5
  94. package/dist/components/IconButton.js +4 -2
  95. package/dist/components/InfoTip.js +3 -3
  96. package/dist/components/Input.d.ts +33 -3
  97. package/dist/components/Input.js +149 -14
  98. package/dist/components/Kbd.d.ts +40 -0
  99. package/dist/components/Kbd.js +168 -0
  100. package/dist/components/Listbox.d.ts +103 -0
  101. package/dist/components/Listbox.js +190 -0
  102. package/dist/components/Loader.d.ts +8 -2
  103. package/dist/components/Loader.js +16 -1
  104. package/dist/components/Markdown.js +1 -1
  105. package/dist/components/MarkdownImpl.js +1 -1
  106. package/dist/components/Menu.d.ts +20 -2
  107. package/dist/components/Menu.js +48 -19
  108. package/dist/components/MenuEntries.d.ts +38 -2
  109. package/dist/components/MenuEntries.js +266 -39
  110. package/dist/components/Meter.d.ts +50 -11
  111. package/dist/components/Meter.js +71 -21
  112. package/dist/components/Modal.d.ts +9 -3
  113. package/dist/components/Modal.js +68 -29
  114. package/dist/components/OneTimeCodeInput.js +1 -1
  115. package/dist/components/PageHeader.js +111 -7
  116. package/dist/components/PageHeaderAction.d.ts +8 -3
  117. package/dist/components/PageHeaderAction.js +122 -34
  118. package/dist/components/Pagination.d.ts +13 -1
  119. package/dist/components/Pagination.js +90 -19
  120. package/dist/components/Popover.d.ts +13 -2
  121. package/dist/components/Popover.js +20 -21
  122. package/dist/components/Provider.d.ts +140 -3
  123. package/dist/components/Provider.js +142 -12
  124. package/dist/components/RefreshButton.d.ts +13 -6
  125. package/dist/components/RefreshButton.js +17 -9
  126. package/dist/components/RunStatusIcon.d.ts +16 -7
  127. package/dist/components/RunStatusIcon.js +21 -8
  128. package/dist/components/Section.d.ts +11 -4
  129. package/dist/components/Section.js +33 -22
  130. package/dist/components/SegmentedControl.d.ts +16 -3
  131. package/dist/components/SegmentedControl.js +7 -3
  132. package/dist/components/Select.d.ts +19 -3
  133. package/dist/components/Select.js +114 -68
  134. package/dist/components/SelectionCopy.d.ts +10 -0
  135. package/dist/components/SelectionCopy.js +105 -0
  136. package/dist/components/SettingModeOption.js +1 -1
  137. package/dist/components/SettingsCard.js +1 -1
  138. package/dist/components/Skeleton.js +1 -1
  139. package/dist/components/StatusBadge.d.ts +55 -10
  140. package/dist/components/StatusBadge.js +91 -15
  141. package/dist/components/StickyBar.js +1 -1
  142. package/dist/components/Table.d.ts +22 -4
  143. package/dist/components/Table.js +46 -24
  144. package/dist/components/Tabs.d.ts +9 -4
  145. package/dist/components/Tabs.js +9 -4
  146. package/dist/components/Tag.d.ts +49 -0
  147. package/dist/components/Tag.js +199 -0
  148. package/dist/components/ThemeEditor.js +1 -1
  149. package/dist/components/Toast.js +1 -1
  150. package/dist/components/ToggleGroup.d.ts +4 -1
  151. package/dist/components/ToggleGroup.js +30 -13
  152. package/dist/components/Tooltip.d.ts +9 -3
  153. package/dist/components/Tooltip.js +55 -39
  154. package/dist/components/buttonClasses.d.ts +5 -2
  155. package/dist/components/buttonClasses.js +11 -10
  156. package/dist/components/chart.d.ts +69 -0
  157. package/dist/components/chart.js +145 -0
  158. package/dist/components/comboboxItems.d.ts +7 -1
  159. package/dist/components/comboboxItems.js +6 -2
  160. package/dist/components/dismiss.d.ts +5 -1
  161. package/dist/components/dismiss.js +6 -2
  162. package/dist/components/floating.d.ts +4 -4
  163. package/dist/components/floating.js +5 -5
  164. package/dist/components/headerActionsFit.d.ts +37 -0
  165. package/dist/components/headerActionsFit.js +81 -0
  166. package/dist/components/pageHeaderStore.d.ts +3 -0
  167. package/dist/components/pageHeaderStore.js +3 -0
  168. package/dist/components/pathBreaks.js +2 -2
  169. package/dist/components/popupContainer.d.ts +17 -0
  170. package/dist/components/popupContainer.js +69 -0
  171. package/dist/components/relativeTime.d.ts +21 -10
  172. package/dist/components/relativeTime.js +50 -22
  173. package/dist/components/segmented.d.ts +18 -4
  174. package/dist/components/segmented.js +48 -6
  175. package/dist/components/typedDate.d.ts +5 -0
  176. package/dist/components/typedDate.js +50 -0
  177. package/dist/components/useClosingValue.d.ts +4 -0
  178. package/dist/components/useClosingValue.js +12 -0
  179. package/dist/components/useCopy.d.ts +6 -0
  180. package/dist/components/useCopy.js +3 -3
  181. package/dist/components/useNarrow.d.ts +2 -0
  182. package/dist/components/useNarrow.js +16 -0
  183. package/dist/editor/Editor.js +1 -1
  184. package/dist/editor/FormCodePanel.js +1 -1
  185. package/dist/editor/Monaco.js +1 -1
  186. package/dist/editor/workers.js +1 -1
  187. package/dist/file-explorer/FileExplorer.js +16 -15
  188. package/dist/file-explorer/FileExplorerContext.js +2 -2
  189. package/dist/file-explorer/FilePreview/Viewer.js +3 -3
  190. package/dist/file-explorer/FilePreview/index.js +2 -2
  191. package/dist/file-explorer/FileRowsWindow.js +3 -3
  192. package/dist/file-explorer/FileTable.js +1 -1
  193. package/dist/file-explorer/LoadMoreRow.js +1 -1
  194. package/dist/file-explorer/TreeView.js +5 -5
  195. package/dist/file-explorer/helpers.js +2 -2
  196. package/dist/file-explorer/toasts.js +2 -2
  197. package/dist/form/Fields/CheckboxGroupField.js +1 -1
  198. package/dist/form/Fields/DropdownField.js +1 -1
  199. package/dist/form/Fields/DurationField.js +2 -2
  200. package/dist/form/Fields/MultiDropdownField.js +1 -1
  201. package/dist/form/Fields/NumberField.js +1 -1
  202. package/dist/form/Fields/ObjectField.js +1 -1
  203. package/dist/form/Fields/RangeField.js +1 -1
  204. package/dist/form/Fields/StringField.js +1 -1
  205. package/dist/form/Form.js +3 -3
  206. package/dist/form/FormLayout.js +1 -1
  207. package/dist/form/Wizard/WizardContainer.js +1 -1
  208. package/dist/form/Wizard/WizardNavigation.js +1 -1
  209. package/dist/form/Wizard/WizardStepContent.js +1 -1
  210. package/dist/form/fieldRegistry.js +1 -1
  211. package/dist/form/formEditing.js +1 -1
  212. package/dist/format.d.ts +17 -7
  213. package/dist/format.js +39 -16
  214. package/dist/graph/AnnotationBanner.js +2 -2
  215. package/dist/graph/Connectors.js +5 -5
  216. package/dist/graph/DependencyGraph.js +10 -9
  217. package/dist/graph/GraphEditor.js +4 -4
  218. package/dist/graph/GraphEditorDialogs.js +13 -12
  219. package/dist/graph/GraphNode.js +1 -1
  220. package/dist/graph/InputDialog.js +5 -5
  221. package/dist/graph/InputsEditor.js +7 -7
  222. package/dist/graph/MatrixGroup.js +2 -2
  223. package/dist/graph/ProblemsButton.js +3 -3
  224. package/dist/graph/Reveal.js +1 -1
  225. package/dist/graph/RunWarningsList.js +1 -1
  226. package/dist/graph/ShortcutsButton.js +25 -8
  227. package/dist/graph/StepSummaries.js +1 -1
  228. package/dist/graph/TreeView.js +2 -2
  229. package/dist/graph/WorkflowSettingsDialog.js +3 -3
  230. package/dist/graph/editorFields.js +3 -3
  231. package/dist/graph/editorPrimitives.js +1 -1
  232. package/dist/graph/editorRows.js +5 -5
  233. package/dist/graph/fieldProblems.js +2 -2
  234. package/dist/graph/inputRefs.js +7 -6
  235. package/dist/graph/stepWith.js +2 -2
  236. package/dist/index.d.ts +30 -21
  237. package/dist/index.js +20 -12
  238. package/dist/list/ActionToolbar.d.ts +4 -0
  239. package/dist/list/ActionToolbar.js +35 -12
  240. package/dist/list/ListFilterBar.d.ts +42 -0
  241. package/dist/list/ListFilterBar.js +789 -0
  242. package/dist/list/ListPage.d.ts +42 -4
  243. package/dist/list/ListPage.js +56 -22
  244. package/dist/list/ListTable.d.ts +27 -3
  245. package/dist/list/ListTable.js +48 -23
  246. package/dist/list/ListToolbar.d.ts +31 -0
  247. package/dist/list/ListToolbar.js +43 -0
  248. package/dist/list/ListViewControls.d.ts +8 -4
  249. package/dist/list/ListViewControls.js +22 -14
  250. package/dist/list/UserHoverCard.d.ts +8 -2
  251. package/dist/list/UserHoverCard.js +26 -13
  252. package/dist/list/filterModel.d.ts +122 -0
  253. package/dist/list/filterModel.js +308 -0
  254. package/dist/list/index.d.ts +6 -2
  255. package/dist/list/index.js +6 -2
  256. package/dist/list/listSearch.d.ts +1 -1
  257. package/dist/list/listSearch.js +8 -4
  258. package/dist/list/listView.d.ts +24 -2
  259. package/dist/list/listView.js +47 -45
  260. package/dist/list/rowMenu.d.ts +10 -5
  261. package/dist/list/rowMenu.js +17 -7
  262. package/dist/list/useListFilters.d.ts +68 -0
  263. package/dist/list/useListFilters.js +252 -0
  264. package/dist/logviewer/LogViewer.js +4 -4
  265. package/dist/styles/theme.css +94 -0
  266. package/dist/styles.css +1 -1
  267. package/package.json +11 -11
  268. package/dist/assets/yaml.worker-k9AdOqzf.js +0 -1441
  269. package/dist/components/fullscreen.d.ts +0 -4
  270. package/dist/components/fullscreen.js +0 -18
@@ -1,13 +1,14 @@
1
1
  import { KeyboardIcon } from "../icons.js";
2
+ import { Kbd, isApplePlatform } from "../components/Kbd.js";
2
3
  import { IconButton } from "../components/IconButton.js";
3
4
  import { Popover } from "../components/Popover.js";
4
5
  import { useGraphEditorStrings } from "./editorStrings.js";
5
6
  import { toolbarPanel } from "./toolbarPanel.js";
7
+ import { Fragment } from "react";
6
8
  import { jsx, jsxs } from "react/jsx-runtime";
7
- import { Fragment as Fragment$1 } from "react";
8
9
  //#region src/graph/ShortcutsButton.tsx
9
10
  /** Whether the keyboard is an Apple one, whose Command key does what Control does elsewhere. */
10
- var IS_MAC = typeof navigator !== "undefined" && /Mac|iPhone|iPad/.test(navigator.platform);
11
+ var IS_MAC = isApplePlatform();
11
12
  /** Copy, paste and undo take Command on a Mac and Control elsewhere, as the handlers do. A Mac
12
13
  * shows its symbols; elsewhere the keys go by the names their keycaps carry in the strings. */
13
14
  function modifierKeys(key) {
@@ -22,6 +23,19 @@ function modifierKeys(key) {
22
23
  /** A toolbar button that opens the list of gestures and keys a pane takes. */
23
24
  function ShortcutsButton({ groups }) {
24
25
  const t = useGraphEditorStrings();
26
+ const k = t.shortcutKeys;
27
+ const gestures = /* @__PURE__ */ new Set([
28
+ k.click,
29
+ k.drag,
30
+ k.dragJob,
31
+ k.dragCircle,
32
+ k.dragButton,
33
+ k.dragSpace,
34
+ k.dragHandle,
35
+ k.dragEdge,
36
+ k.rightClick,
37
+ k.scroll
38
+ ]);
25
39
  return /* @__PURE__ */ jsx(Popover, {
26
40
  title: t.shortcuts,
27
41
  ...toolbarPanel,
@@ -38,15 +52,18 @@ function ShortcutsButton({ groups }) {
38
52
  children: group.title
39
53
  }), /* @__PURE__ */ jsx("dl", {
40
54
  className: "grid grid-cols-[8.5rem_1fr] items-baseline gap-x-3 gap-y-1.5",
41
- children: group.shortcuts.map((shortcut) => /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("dt", {
55
+ children: group.shortcuts.map((shortcut) => /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("dt", {
42
56
  className: "flex flex-wrap items-center gap-1",
43
- children: shortcut.combos.map((keys, i) => /* @__PURE__ */ jsxs(Fragment$1, { children: [i > 0 && /* @__PURE__ */ jsx("span", {
57
+ children: shortcut.combos.map((keys, i) => /* @__PURE__ */ jsxs(Fragment, { children: [i > 0 && /* @__PURE__ */ jsx("span", {
44
58
  className: "theme-muted-text",
45
59
  children: "/"
46
- }), keys.map((key) => /* @__PURE__ */ jsx("kbd", {
47
- className: "rounded border theme-border px-1 py-px text-[11px]",
48
- children: key
49
- }, key))] }, keys.join("+")))
60
+ }), keys.some((key) => gestures.has(key)) ? /* @__PURE__ */ jsx("span", {
61
+ className: "inline-flex flex-wrap items-center gap-1",
62
+ children: keys.map((key) => gestures.has(key) ? /* @__PURE__ */ jsx("span", {
63
+ className: "text-[11px] text-(--theme-app)",
64
+ children: key
65
+ }, key) : /* @__PURE__ */ jsx(Kbd, { keys: [key] }, key))
66
+ }) : /* @__PURE__ */ jsx(Kbd, { keys })] }, keys.join("+")))
50
67
  }), /* @__PURE__ */ jsx("dd", {
51
68
  className: "theme-muted-text",
52
69
  children: shortcut.does
@@ -4,8 +4,8 @@ import { useRunFile, useStrings, useWorkflowEngine } from "../components/Provide
4
4
  import Markdown from "../components/Markdown.js";
5
5
  import { RunStatusIcon } from "../components/RunStatusIcon.js";
6
6
  import { jobLabel } from "./util.js";
7
- import { jsx, jsxs } from "react/jsx-runtime";
8
7
  import { useEffect, useId, useRef, useState } from "react";
8
+ import { jsx, jsxs } from "react/jsx-runtime";
9
9
  //#region src/graph/StepSummaries.tsx
10
10
  var SEPARATOR = " › ";
11
11
  function completion(job) {
@@ -1,8 +1,8 @@
1
1
  import { cx } from "../cx.js";
2
+ import { EmptyState } from "../components/EmptyState.js";
2
3
  import { ChevronRightIcon } from "../icons.js";
3
4
  import { Loader } from "../components/Loader.js";
4
5
  import { useRunFile, useSlots, useStrings, useWorkflowEngine } from "../components/Provider.js";
5
- import { EmptyState } from "../components/EmptyState.js";
6
6
  import { Button } from "../components/Button.js";
7
7
  import { DisclosurePanel } from "../components/Disclosure.js";
8
8
  import { Elapsed } from "../components/relativeTime.js";
@@ -11,8 +11,8 @@ import { LogViewer } from "../logviewer/LogViewer.js";
11
11
  import { jobLabel, toggled } from "./util.js";
12
12
  import { WarningMark } from "./RunWarningsList.js";
13
13
  import { rowKey, useWarningMarks } from "./runWarnings.js";
14
- import { jsx, jsxs } from "react/jsx-runtime";
15
14
  import { useCallback, useId, useMemo, useState } from "react";
15
+ import { jsx, jsxs } from "react/jsx-runtime";
16
16
  //#region src/graph/TreeView.tsx
17
17
  function Chevron({ open, hidden = false }) {
18
18
  return /* @__PURE__ */ jsx("div", {
@@ -12,8 +12,8 @@ import { expressionRefs } from "./expressionRefs.js";
12
12
  import { useNewInputs } from "./InputDialog.js";
13
13
  import { useSettingsViews } from "./GraphEditorDialogs.js";
14
14
  import { firstPageEdits, pagesBackEdits } from "./inputPages.js";
15
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
16
15
  import { useState } from "react";
16
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
17
17
  //#region src/graph/WorkflowSettingsDialog.tsx
18
18
  var LINK_NAME = /^[a-z0-9_-]*[a-z0-9]$/;
19
19
  var ORG_VARIABLE = /^[A-Z][A-Z0-9_]*$/;
@@ -332,7 +332,7 @@ function SettingsForm({ workflow, onEdit, onClose, renderShell, onDraft, pending
332
332
  ] : wizardOn && flatten !== (wizard["flatten"] !== false) ? [...settings, ...reflattenEdits(inputs, wizardEdit)] : [update];
333
333
  const saveEdit = newInputs.save(dirty ? editing.batchOf(edits) : null);
334
334
  onDraft?.(saveEdit, invalid);
335
- const children = /* @__PURE__ */ jsxs(Fragment, { children: [
335
+ const children = /* @__PURE__ */ jsxs(Fragment$1, { children: [
336
336
  newInputs.dialog,
337
337
  /* @__PURE__ */ jsxs(DialogSection, {
338
338
  title: t.sectionGeneral,
@@ -617,7 +617,7 @@ function SettingsForm({ workflow, onEdit, onClose, renderShell, onDraft, pending
617
617
  }
618
618
  })
619
619
  }),
620
- wizardOn && /* @__PURE__ */ jsxs(Fragment, { children: [
620
+ wizardOn && /* @__PURE__ */ jsxs(Fragment$1, { children: [
621
621
  WIZARD_FLAGS.map((flag) => /* @__PURE__ */ jsx(FlagField, {
622
622
  label: t.fields[flag],
623
623
  yamlKey: flag,
@@ -1,6 +1,6 @@
1
1
  import { AddIcon, ExpressionIcon, RemoveIcon } from "../icons.js";
2
- import { withPositionKeys } from "../components/keys.js";
3
2
  import { Tooltip } from "../components/Tooltip.js";
3
+ import { withPositionKeys } from "../components/keys.js";
4
4
  import { Button } from "../components/Button.js";
5
5
  import { IconButton } from "../components/IconButton.js";
6
6
  import { Checkbox } from "../components/Checkbox.js";
@@ -14,8 +14,8 @@ import { useGraphEditorStrings } from "./editorStrings.js";
14
14
  import { asRecord } from "./records.js";
15
15
  import { useFieldLint } from "./fieldProblems.js";
16
16
  import { SuggestionInput } from "./SuggestionInput.js";
17
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
18
17
  import { createContext, useContext, useEffect, useId, useLayoutEffect, useRef, useState } from "react";
18
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
19
19
  //#region src/graph/editorFields.tsx
20
20
  var EXPRESSION = /^\$\{\{.*\}\}$/;
21
21
  var ENV_KEY = /^[a-zA-Z0-9_]+$/;
@@ -392,7 +392,7 @@ function SuggestedInput({ label, yamlKey, description, value, onChange, suggesti
392
392
  description,
393
393
  error: error ?? lint.message,
394
394
  id,
395
- children: (control) => /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(SuggestionInput, {
395
+ children: (control) => /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(SuggestionInput, {
396
396
  ...control,
397
397
  value,
398
398
  placeholder,
@@ -1,6 +1,6 @@
1
1
  import { cx } from "../cx.js";
2
- import { jsx } from "react/jsx-runtime";
3
2
  import { useEffect, useRef, useSyncExternalStore } from "react";
3
+ import { jsx } from "react/jsx-runtime";
4
4
  //#region src/graph/editorPrimitives.tsx
5
5
  /** A small store for an editor's view state, so a change redraws only what reads it. */
6
6
  function createStore(initial) {
@@ -3,8 +3,8 @@ import { AddIcon, DragHandleIcon, MoreIcon, WarningIcon } from "../icons.js";
3
3
  import { Tooltip } from "../components/Tooltip.js";
4
4
  import { MarqueeBox, place } from "./editorPrimitives.js";
5
5
  import { EDITOR_HANDLE_CLASS, NO_SELECTION, labelsOf, problemsIn, sameEdge, sameStep, selectionBounds, useGraphEditor, useSelectedEdges, useUi } from "./graphEditorState.js";
6
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
7
6
  import { useEffect, useMemo, useRef } from "react";
7
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
8
8
  //#region src/graph/editorRows.tsx
9
9
  /** Drop indicators, the connection line and the selection, drawn in the graph's own coordinates. */
10
10
  function GraphEditorCanvas() {
@@ -71,7 +71,7 @@ function SelectionBox({ api }) {
71
71
  if (!grid || !bounds) return null;
72
72
  const anchor = grid.cols.flat(2).find((job) => jobs.includes(job));
73
73
  const y = bounds.connectorY;
74
- return /* @__PURE__ */ jsxs(Fragment, { children: [
74
+ return /* @__PURE__ */ jsxs(Fragment$1, { children: [
75
75
  /* @__PURE__ */ jsx("div", {
76
76
  className: "absolute rounded-xl border-2 border-dashed border-(--theme-accent)",
77
77
  style: place(bounds)
@@ -246,7 +246,7 @@ function EditableJobRow({ job, label, badge = true, children }) {
246
246
  menuLabel: t.jobActions,
247
247
  menuClassName: "p-1 group-hover/row:opacity-100",
248
248
  iconClassName: "h-[1em] w-[1em]",
249
- badges: /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(ProblemBadge, {
249
+ badges: /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(ProblemBadge, {
250
250
  api,
251
251
  job
252
252
  }), badge && api.isMatrixJob(job) && /* @__PURE__ */ jsx("span", {
@@ -295,7 +295,7 @@ function NodePorts({ jobs, left, right, drawLeft, drawRight, zIndex }) {
295
295
  if (!api) return null;
296
296
  const t = api.t;
297
297
  const port = `node:${jobs[0]}`;
298
- return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(PortCircle, {
298
+ return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(PortCircle, {
299
299
  side: "in",
300
300
  at: left,
301
301
  draw: drawLeft,
@@ -445,7 +445,7 @@ function EdgeEnds({ edge, start, end, zIndex }) {
445
445
  children: /* @__PURE__ */ jsx("span", { className: "h-5 w-5 rounded-full border-4 border-(--theme-accent) bg-(--theme-panel-bg)" })
446
446
  })
447
447
  }, side);
448
- return /* @__PURE__ */ jsxs(Fragment, { children: [handle("from", start, end), handle("to", end, start)] });
448
+ return /* @__PURE__ */ jsxs(Fragment$1, { children: [handle("from", start, end), handle("to", end, start)] });
449
449
  }
450
450
  /** Shown in place of the graph when the workflow has no jobs yet. */
451
451
  /** The canvas of a graph with no jobs, which takes the graph's keys, so undo and paste still work. */
@@ -1,9 +1,9 @@
1
1
  import { WarningIcon } from "../icons.js";
2
- import { keyedByContent } from "../components/keys.js";
3
2
  import { useWorkflowEditing } from "../components/Provider.js";
3
+ import { keyedByContent } from "../components/keys.js";
4
4
  import { useGraphEditorStrings } from "./editorStrings.js";
5
- import { jsx, jsxs } from "react/jsx-runtime";
6
5
  import { createContext, useCallback, useContext, useEffect, useMemo, useState } from "react";
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
7
  //#region src/graph/fieldProblems.tsx
8
8
  var FieldProblemsContext = createContext(null);
9
9
  var keyOf = (at) => at.join(".");
@@ -10,8 +10,8 @@ import { asRecord } from "./records.js";
10
10
  import { useFieldLint } from "./fieldProblems.js";
11
11
  import { SuggestionInput } from "./SuggestionInput.js";
12
12
  import { ExpressionToggle, GROWING_AREA, YamlField, flagError, flagValue, text, useGrowingArea } from "./editorFields.js";
13
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
14
13
  import { useId, useRef, useState } from "react";
14
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
15
15
  //#region src/graph/inputRefs.tsx
16
16
  /** Every input with a value, where a run reads it: groups nest unless flattened, lists hide their rows. */
17
17
  function inputRefs(editing, inputs) {
@@ -88,6 +88,7 @@ function InputRefSelect({ refs, types, value, onChange, onNew, newLabel, label }
88
88
  ];
89
89
  return /* @__PURE__ */ jsx(Select, {
90
90
  "aria-label": label,
91
+ width: "fill",
91
92
  placeholder: matching.length > 0 ? t.chooseInput : t.noMatchingInputs,
92
93
  items,
93
94
  value: known || !current ? current || null : `?${current}`,
@@ -155,7 +156,7 @@ function FlagField({ label, yamlKey, description, value, original, fallback = fa
155
156
  onChange(void 0);
156
157
  }
157
158
  }),
158
- children: (control) => typed ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsxs("div", {
159
+ children: (control) => typed ? /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsxs("div", {
159
160
  className: "flex items-center gap-2",
160
161
  children: [/* @__PURE__ */ jsx("div", {
161
162
  className: "flex-1",
@@ -201,7 +202,7 @@ function ConditionField({ label, yamlKey, description, value, onChange, source,
201
202
  description,
202
203
  error: lint.message,
203
204
  id,
204
- actions: /* @__PURE__ */ jsxs(Fragment, { children: [allRefs(source).length > 0 && /* @__PURE__ */ jsx(InsertRefSelect, {
205
+ actions: /* @__PURE__ */ jsxs(Fragment$1, { children: [allRefs(source).length > 0 && /* @__PURE__ */ jsx(InsertRefSelect, {
205
206
  source,
206
207
  label: t.insertValue,
207
208
  onInsert: insert
@@ -210,7 +211,7 @@ function ConditionField({ label, yamlKey, description, value, onChange, source,
210
211
  source,
211
212
  onCreated: (path) => onChange(flagExpression(path, false))
212
213
  })] }),
213
- children: (control) => /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(SuggestionInput, {
214
+ children: (control) => /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(SuggestionInput, {
214
215
  ...control,
215
216
  value,
216
217
  placeholder: texts.default,
@@ -246,7 +247,7 @@ function ValueOrInputField({ label, yamlKey, description, value, onChange, sourc
246
247
  required,
247
248
  error: error ?? lint.message,
248
249
  id,
249
- children: (control) => /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsxs("div", {
250
+ children: (control) => /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsxs("div", {
250
251
  className: "flex items-center gap-2",
251
252
  children: [/* @__PURE__ */ jsx("div", {
252
253
  className: "flex-1",
@@ -286,7 +287,7 @@ function ScriptField({ label, yamlKey, description, value, onChange, source, row
286
287
  label: t.insertValue,
287
288
  onInsert: insert
288
289
  }),
289
- children: (control) => /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Textarea, {
290
+ children: (control) => /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(Textarea, {
290
291
  ...control,
291
292
  ref: area ?? fixed,
292
293
  mono: true,
@@ -11,8 +11,8 @@ import { SuggestionInput } from "./SuggestionInput.js";
11
11
  import { ChoiceButtons, EXPRESSION, KeyValueEditor, StringListEditor, SuggestedInput, ToggleField, YamlField, isScalar, labelled, parseJson, parseScalar, rowsError, rowsFrom, rowsTo, sameValue } from "./editorFields.js";
12
12
  import { ValueOrInputField, refSuggestions } from "./inputRefs.js";
13
13
  import { DynamicForm } from "../form/Form.js";
14
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
15
14
  import { useEffect, useId, useState } from "react";
15
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
16
16
  //#region src/graph/stepWith.tsx
17
17
  var REPO_INPUTS = [{
18
18
  key: "$yaml",
@@ -459,7 +459,7 @@ function WithEditor({ uses, draft, original, onChange, error, source }) {
459
459
  original,
460
460
  onChange
461
461
  }, key)),
462
- kind !== "action" && /* @__PURE__ */ jsxs(Fragment, { children: [known.map(([key, raw]) => {
462
+ kind !== "action" && /* @__PURE__ */ jsxs(Fragment$1, { children: [known.map(([key, raw]) => {
463
463
  const definition = asRecord(raw);
464
464
  const label = String(definition["label"] ?? "");
465
465
  const about = String(definition["description"] ?? "");
package/dist/index.d.ts CHANGED
@@ -1,39 +1,44 @@
1
- export { ActionMenu } from './components/ActionMenu.js';
1
+ export { ActionMenu, type ActionMenuProps } from './components/ActionMenu.js';
2
2
  export { AppLink, type AppLinkProps, isPlainClick, type LinkTarget, } from './components/AppLink.js';
3
- export { Avatar, type AvatarProps, type AvatarSize, type AvatarStatus, avatarInitials, } from './components/Avatar.js';
3
+ export { Avatar, AvatarGroup, type AvatarGroupProps, type AvatarInitialsOptions, type AvatarKind, type AvatarProps, type AvatarShape, type AvatarSize, type AvatarStatus, avatarInitials, } from './components/Avatar.js';
4
4
  export { type Breadcrumb, Breadcrumbs, type BreadcrumbsProps } from './components/Breadcrumbs.js';
5
5
  export { Button, type ButtonProps, MethodButton } from './components/Button.js';
6
6
  export { type ButtonSize, type ButtonStyle, type ButtonVariant, buttonClasses, } from './components/buttonClasses.js';
7
7
  export { Callout, type CalloutProps, type CalloutTone } from './components/Callout.js';
8
- export { Card, CardHeader, type CardHeaderProps, type CardProps } from './components/Card.js';
8
+ export { Card, CardHeader, type CardHeaderProps, type CardPadding, type CardProps, type CardSize, } from './components/Card.js';
9
9
  export { Checkbox, CheckboxGroup, type CheckboxProps } from './components/Checkbox.js';
10
10
  export { ColorInput, type ColorInputProps } from './components/ColorInput.js';
11
11
  export { Autocomplete, type AutocompleteProps, Combobox, type ComboboxGroup, type ComboboxItem, type ComboboxItems, type ComboboxProps, } from './components/Combobox.js';
12
- export { ConfirmModal, type ConfirmModalProps } from './components/ConfirmModal.js';
13
- export { type OpenMenu, type OpenMenuOptions, useContextMenu, } from './components/ContextMenu.js';
12
+ export { ConfirmModal, type ConfirmModalProps, type ConfirmRequest, useConfirm, } from './components/ConfirmModal.js';
13
+ export { ContextMenuProvider, type MenuOpener, type OpenMenu, type OpenMenuOptions, useContextMenu, useMenuOpenedBy, useOpenMenu, } from './components/ContextMenu.js';
14
14
  export { CopyButton, type CopyButtonProps, CopyCodeBlock, type CopyCodeBlockProps, } from './components/CopyButton.js';
15
15
  export { CreateModal, CreateModalSelect, CreateModalSwitch, } from './components/CreateModal.js';
16
16
  export { categoryClasses, categoryOf } from './components/category.js';
17
- export { DatePicker, type DatePickerProps } from './components/DatePicker.js';
18
- export { DescriptionListGroup, DescriptionListItem, type DescriptionListItemProps, type DescriptionListProps, type DescriptionListVariant, default as DescriptionList, } from './components/DescriptionList.js';
19
- export { Disclosure, DisclosurePanel, type DisclosureProps } from './components/Disclosure.js';
17
+ export { type ChartLegendItem, ChartLegendList, ChartTooltipContent, type ChartTooltipItem, SeriesSwatch, type SeriesSwatchShape, seriesColor, seriesColors, seriesOpacity, seriesSlotColor, useSeriesHighlight, } from './components/chart.js';
18
+ export { Calendar, type CalendarProps, DatePicker, type DatePickerProps, } from './components/DatePicker.js';
19
+ export { DescriptionListGroup, DescriptionListItem, type DescriptionListItemProps, type DescriptionListProps, type DescriptionListSize, type DescriptionListVariant, default as DescriptionList, } from './components/DescriptionList.js';
20
+ export { collapsePanelClassName, Disclosure, DisclosurePanel, type DisclosureProps, } from './components/Disclosure.js';
20
21
  export { Drawer, type DrawerProps } from './components/Drawer.js';
21
- export { EmptyState, type EmptyStateProps } from './components/EmptyState.js';
22
+ export { EmptyState, type EmptyStateProps, type EmptyStateVariant } from './components/EmptyState.js';
23
+ export { ErrorPage, type ErrorPageKind, type ErrorPageProps, errorPageKind, } from './components/ErrorPage.js';
22
24
  export { ExternalLink, type ExternalLinkProps } from './components/ExternalLink.js';
23
- export { ErrorText, Field, type FieldControlProps, type FieldLayout, FieldOption, type FieldProps, FieldValue, type FieldValueProps, RevealToggle, useFieldControl, useFieldLabelledControl, } from './components/Field.js';
25
+ export { ErrorText, type ErrorTextProps, Field, type FieldControlProps, type FieldLayout, FieldOption, type FieldProps, FieldValue, type FieldValueProps, RevealToggle, useFieldControl, useFieldLabelledControl, } from './components/Field.js';
26
+ export { FileButton, type FileButtonProps } from './components/FileButton.js';
24
27
  export { type FieldBoxOptions, type FieldBoxSize, fieldBox } from './components/fieldBox.js';
25
28
  export type { FloatingAnchor } from './components/floating.js';
26
29
  export { HoverCard, type HoverCardProps } from './components/HoverCard.js';
27
30
  export { IconButton, type IconButtonProps } from './components/IconButton.js';
28
31
  export { formatInfoTipContent, InfoTip } from './components/InfoTip.js';
29
- export { Input, type InputProps, Textarea, type TextareaProps } from './components/Input.js';
32
+ export { Input, type InputProps, Textarea, type TextareaProps, TitleInput, type TitleInputProps, } from './components/Input.js';
33
+ export { ariaKeyShortcuts, formatShortcut, isApplePlatform, Kbd, type KbdProps, type KbdSize, type KbdVariant, type KeyPlatform, shortcutText, useShortcutFormat, } from './components/Kbd.js';
30
34
  export { LetterBadge } from './components/LetterBadge.js';
35
+ export { ListboxGroup, type ListboxNavigation, type ListboxNavigationOptions, ListboxOption, type ListboxOptionProps, ListboxPanel, type ListboxPanelProps, useListboxNavigation, } from './components/Listbox.js';
31
36
  export { Loader, type LoaderProps } from './components/Loader.js';
32
37
  export type { MarkdownProps } from './components/Markdown.js';
33
38
  export { default as Markdown } from './components/Markdown.js';
34
- export { MenuCheckboxItem, MenuGroupLabel, MenuItem, MenuLinkItem, MenuPopup, type MenuPopupProps, MenuRadioItem, MenuSeparator, MenuSubmenuTrigger, } from './components/Menu.js';
35
- export { type MenuAction, type MenuDivider, MenuEntries, type MenuEntry, MenuFilter, type MenuSearch, type MenuSubmenu, menuDivider, } from './components/MenuEntries.js';
36
- export { type BarSize, type BarTone, levelTone, Meter, ProgressBar, } from './components/Meter.js';
39
+ export { MenuCheckboxItem, MenuGroupLabel, MenuItem, MenuLinkItem, MenuPopup, type MenuPopupProps, MenuRadioItem, MenuSeparator, type MenuSize, MenuSubmenuTrigger, } from './components/Menu.js';
40
+ export { isMenuDivider, isMenuGroup, isMenuSubmenu, type MenuAction, type MenuDivider, MenuEntries, type MenuEntry, MenuFilter, type MenuGroup, type MenuSearch, type MenuSubmenu, menuDivider, } from './components/MenuEntries.js';
41
+ export { type BarSize, type BarTone, type BarValuePlacement, levelTone, Meter, ProgressBar, type ProgressSegment, } from './components/Meter.js';
37
42
  export { Modal, ModalDescription, type ModalProps, type ModalSize, ModalTitle, modalPanelClassName, } from './components/Modal.js';
38
43
  export { NumberInput, type NumberInputProps } from './components/NumberInput.js';
39
44
  export { OneTimeCodeInput, type OneTimeCodeInputProps } from './components/OneTimeCodeInput.js';
@@ -42,35 +47,39 @@ export { PageHeader, PageHeaderBar, type PageHeaderBarProps, type PageHeaderProp
42
47
  export { PageHeaderAction, type PageHeaderActionProps, PageHeaderAddButton, type PageHeaderAddButtonProps, PageHeaderMenu, } from './components/PageHeaderAction.js';
43
48
  export { PAGE_SIZES, Pagination, type PaginationProps } from './components/Pagination.js';
44
49
  export { Popover, PopoverClose, type PopoverProps, useClosePopover, } from './components/Popover.js';
45
- export { type PersistedStateHook, type RunFileResult, type UIData, type UILinkComponent, type UINavigation, UIProvider, type UIProviderProps, type UISlots, type UIStringOverrides, type UIStrings, useNavigation, useOptionalWorkflowEngine, usePersistedState, useProvisionCorsRules, useRunFile, useSlots, useStrings, useWorkflowActions, useWorkflowEditing, useWorkflowEngine, useWorkflowEngineLoader, type WorkflowEngineSource, type WorkflowJsonRef, } from './components/Provider.js';
50
+ export { type AvatarColoring, type PersistedStateHook, type RunFileResult, type UIData, type UILinkComponent, type UINavigation, UIProvider, type UIProviderProps, type UISlots, type UIStringOverrides, type UIStrings, useAvatarColoring, useLocale, useNavigation, useOptionalWorkflowEngine, usePersistedState, useProvisionCorsRules, useRunFile, useSlots, useStrings, useWorkflowActions, useWorkflowEditing, useWorkflowEngine, useWorkflowEngineLoader, type WorkflowEngineSource, type WorkflowJsonRef, } from './components/Provider.js';
46
51
  export { Radio, RadioGroup, type RadioProps } from './components/Radio.js';
47
52
  export { RefreshButton, type RefreshButtonProps } from './components/RefreshButton.js';
48
53
  export { RequiredMark } from './components/RequiredMark.js';
49
- export { RunStatusIcon, runStatusTone } from './components/RunStatusIcon.js';
50
- export { Elapsed, RelativeTime, type RelativeTimeFormat, useClock, useElapsed, useRelativeTime, } from './components/relativeTime.js';
54
+ export { RunStatusIcon, type RunStatusIconProps, type RunStatusIconStatus, runStatusTone, } from './components/RunStatusIcon.js';
55
+ export { Elapsed, RelativeTime, type RelativeTimeFormat, type RelativeTimeProps, useClock, useElapsed, useRelativeTime, } from './components/relativeTime.js';
51
56
  export { SearchInput, type SearchInputProps } from './components/SearchInput.js';
52
- export { Section, type SectionProps, type SectionVariant, } from './components/Section.js';
53
- export { SegmentedControl, type SegmentedOption } from './components/SegmentedControl.js';
57
+ export { Section, type SectionProps, type SectionTone, type SectionVariant, } from './components/Section.js';
58
+ export { SegmentedControl, type SegmentedControlRootProps, type SegmentedOption, } from './components/SegmentedControl.js';
54
59
  export { Select, type SelectItem, type SelectProps } from './components/Select.js';
60
+ export { SelectionCopy } from './components/SelectionCopy.js';
55
61
  export { SettingModeOption } from './components/SettingModeOption.js';
56
62
  export { SettingRow, SettingsCard, type SettingsCardProps, SettingsHeading, } from './components/SettingsCard.js';
57
63
  export { LoadingRegion, Skeleton, type SkeletonProps } from './components/Skeleton.js';
58
64
  export { Slider, type SliderProps } from './components/Slider.js';
59
- export { type BadgeVariant, StatusBadge, StatusDot, statusTextClass, } from './components/StatusBadge.js';
65
+ export { type BadgeEmphasis, type BadgeShape, type BadgeSize, type BadgeVariant, CountBadge, type CountBadgeProps, StatusBadge, type StatusBadgeProps, StatusDot, statusTextClass, } from './components/StatusBadge.js';
60
66
  export { StickyBar, type StickyBarProps } from './components/StickyBar.js';
61
67
  export { Switch, type SwitchProps } from './components/Switch.js';
68
+ export type { SegmentTone } from './components/segmented.js';
62
69
  export { isTextEntryContext, useShortcutKey } from './components/shortcutKey.js';
63
70
  export { type SortDirection, Table, type TableDensity } from './components/Table.js';
64
71
  export { type TabItem, TabPanel, Tabs, type TabsProps } from './components/Tabs.js';
72
+ export { normalizeTags, Tag, type TagItem, TagList, type TagListProps, type TagProps, type TagStyle, tagClasses, } from './components/Tag.js';
65
73
  export { ThemeEditor, type ThemeEditorProps, ThemePreview } from './components/ThemeEditor.js';
66
74
  export { type ToastAction, type Toaster, type ToastOptions, type ToastTone, type ToastUpdate, toast, } from './components/Toast.js';
67
75
  export { ToggleGroup, type ToggleGroupOption, type ToggleGroupProps, } from './components/ToggleGroup.js';
68
76
  export { Tooltip, type TooltipProps, TooltipProvider, type TooltipSide, } from './components/Tooltip.js';
77
+ export { useClosingValue } from './components/useClosingValue.js';
69
78
  export { type CopyOptions, useCopy } from './components/useCopy.js';
70
79
  export { useCssIsDark } from './components/useCssIsDark.js';
71
80
  export { useApplyTheme, useColorMode } from './components/useTheme.js';
72
81
  export { cx } from './cx.js';
73
82
  export type { EditRefusalReason, FieldPatch, GraphEdit, GraphEditResult, GraphEditState, GraphLayout, GraphPosition, GraphSlot, InputEdit, InputPath, LintFix, NeedRef, StepRef, WorkflowAction, WorkflowActionInput, WorkflowEditing, WorkflowLintContext, WorkflowLintProblem, } from './editing.js';
74
83
  export type { EngineJob, EngineStep, EvaluateOptions, ExpansionKeys, LogCommand, LogSegment, MatrixGroup, ProcessedLogLine, RunStatus, WorkflowEngine, WorkflowVariable, WorkflowVariables, } from './engine.js';
75
- export { formatBytes, formatCount, formatDateTime, formatDuration, formatTimeLeft, type TimeValue, } from './format.js';
84
+ export { type DateTimeStyle, formatBytes, formatCount, formatDateTime, formatDuration, formatTimeLeft, type TimeValue, } from './format.js';
76
85
  export * from './theme/index.js';
package/dist/index.js CHANGED
@@ -1,17 +1,19 @@
1
1
  import { cx } from "./cx.js";
2
2
  import { buttonClasses } from "./components/buttonClasses.js";
3
+ import { EmptyState } from "./components/EmptyState.js";
3
4
  import { MenuCheckboxItem, MenuGroupLabel, MenuItem, MenuLinkItem, MenuPopup, MenuRadioItem, MenuSeparator, MenuSubmenuTrigger } from "./components/Menu.js";
5
+ import { ContextMenuProvider, useContextMenu, useMenuOpenedBy, useOpenMenu } from "./components/ContextMenu.js";
4
6
  import { Loader } from "./components/Loader.js";
5
7
  import { toast } from "./components/Toast.js";
8
+ import { Kbd, ariaKeyShortcuts, formatShortcut, isApplePlatform, shortcutText, useShortcutFormat } from "./components/Kbd.js";
6
9
  import { Tooltip, TooltipProvider } from "./components/Tooltip.js";
7
- import { UIProvider, useNavigation, useOptionalWorkflowEngine, usePersistedState, useProvisionCorsRules, useRunFile, useSlots, useStrings, useWorkflowActions, useWorkflowEditing, useWorkflowEngine, useWorkflowEngineLoader } from "./components/Provider.js";
10
+ import { UIProvider, useAvatarColoring, useLocale, useNavigation, useOptionalWorkflowEngine, usePersistedState, useProvisionCorsRules, useRunFile, useSlots, useStrings, useWorkflowActions, useWorkflowEditing, useWorkflowEngine, useWorkflowEngineLoader } from "./components/Provider.js";
8
11
  import { AppLink, isPlainClick } from "./components/AppLink.js";
9
- import { EmptyState } from "./components/EmptyState.js";
10
12
  import { useCopy } from "./components/useCopy.js";
11
- import { MenuEntries, MenuFilter, menuDivider } from "./components/MenuEntries.js";
13
+ import { MenuEntries, MenuFilter, isMenuDivider, isMenuGroup, isMenuSubmenu, menuDivider } from "./components/MenuEntries.js";
12
14
  import { ActionMenu } from "./components/ActionMenu.js";
13
15
  import { categoryClasses, categoryOf } from "./components/category.js";
14
- import { Avatar, avatarInitials } from "./components/Avatar.js";
16
+ import { Avatar, AvatarGroup, avatarInitials } from "./components/Avatar.js";
15
17
  import { LoadingRegion, Skeleton } from "./components/Skeleton.js";
16
18
  import { Breadcrumbs } from "./components/Breadcrumbs.js";
17
19
  import { Button, MethodButton } from "./components/Button.js";
@@ -32,21 +34,25 @@ import { Popover, PopoverClose, useClosePopover } from "./components/Popover.js"
32
34
  import { InfoTip, formatInfoTipContent } from "./components/InfoTip.js";
33
35
  import { RequiredMark } from "./components/RequiredMark.js";
34
36
  import { ErrorText, Field, FieldOption, FieldValue, RevealToggle, useFieldControl, useFieldLabelledControl } from "./components/Field.js";
35
- import { Input, Textarea } from "./components/Input.js";
37
+ import { Input, Textarea, TitleInput } from "./components/Input.js";
36
38
  import { ColorInput } from "./components/ColorInput.js";
39
+ import { Tag, TagList, normalizeTags, tagClasses } from "./components/Tag.js";
37
40
  import { Autocomplete, Combobox } from "./components/Combobox.js";
38
41
  import { Modal, ModalDescription, ModalTitle, modalPanelClassName } from "./components/Modal.js";
39
- import { ConfirmModal } from "./components/ConfirmModal.js";
40
- import { useContextMenu } from "./components/ContextMenu.js";
42
+ import { ConfirmModal, useConfirm } from "./components/ConfirmModal.js";
41
43
  import { CopyButton, CopyCodeBlock } from "./components/CopyButton.js";
42
- import { Disclosure, DisclosurePanel } from "./components/Disclosure.js";
44
+ import { Disclosure, DisclosurePanel, collapsePanelClassName } from "./components/Disclosure.js";
43
45
  import { Switch } from "./components/Switch.js";
44
46
  import { CreateModal, CreateModalSelect, CreateModalSwitch } from "./components/CreateModal.js";
45
- import { DatePicker } from "./components/DatePicker.js";
47
+ import { ChartLegendList, ChartTooltipContent, SeriesSwatch, seriesColor, seriesColors, seriesOpacity, seriesSlotColor, useSeriesHighlight } from "./components/chart.js";
48
+ import { Calendar, DatePicker } from "./components/DatePicker.js";
46
49
  import DescriptionList, { DescriptionListGroup, DescriptionListItem } from "./components/DescriptionList.js";
47
50
  import { Drawer } from "./components/Drawer.js";
51
+ import { ErrorPage, errorPageKind } from "./components/ErrorPage.js";
52
+ import { FileButton } from "./components/FileButton.js";
48
53
  import { HoverCard } from "./components/HoverCard.js";
49
54
  import { LetterBadge } from "./components/LetterBadge.js";
55
+ import { ListboxGroup, ListboxOption, ListboxPanel, useListboxNavigation } from "./components/Listbox.js";
50
56
  import Markdown from "./components/Markdown.js";
51
57
  import { Meter, ProgressBar, levelTone } from "./components/Meter.js";
52
58
  import { NumberInput } from "./components/NumberInput.js";
@@ -54,25 +60,27 @@ import { OneTimeCodeInput } from "./components/OneTimeCodeInput.js";
54
60
  import { Overview } from "./components/Overview.js";
55
61
  import { PageHeader, PageHeaderBar, PageHeaderProvider } from "./components/PageHeader.js";
56
62
  import { PageHeaderAction, PageHeaderAddButton, PageHeaderMenu } from "./components/PageHeaderAction.js";
63
+ import { formatBytes, formatCount, formatDateTime, formatDuration, formatTimeLeft } from "./format.js";
57
64
  import { Select } from "./components/Select.js";
58
65
  import { PAGE_SIZES, Pagination } from "./components/Pagination.js";
59
66
  import { Radio, RadioGroup } from "./components/Radio.js";
60
- import { formatBytes, formatCount, formatDateTime, formatDuration, formatTimeLeft } from "./format.js";
61
67
  import { Elapsed, RelativeTime, useClock, useElapsed, useRelativeTime } from "./components/relativeTime.js";
62
68
  import { RefreshButton } from "./components/RefreshButton.js";
63
69
  import { RunStatusIcon, runStatusTone } from "./components/RunStatusIcon.js";
64
70
  import { SearchInput } from "./components/SearchInput.js";
65
71
  import { Section } from "./components/Section.js";
66
72
  import { SegmentedControl } from "./components/SegmentedControl.js";
73
+ import { SelectionCopy } from "./components/SelectionCopy.js";
67
74
  import { SettingModeOption } from "./components/SettingModeOption.js";
68
75
  import { SettingRow, SettingsCard, SettingsHeading } from "./components/SettingsCard.js";
69
76
  import { Slider } from "./components/Slider.js";
70
- import { StatusBadge, StatusDot, statusTextClass } from "./components/StatusBadge.js";
77
+ import { CountBadge, StatusBadge, StatusDot, statusTextClass } from "./components/StatusBadge.js";
71
78
  import { StickyBar } from "./components/StickyBar.js";
72
79
  import { Table } from "./components/Table.js";
73
80
  import { TabPanel, Tabs } from "./components/Tabs.js";
74
81
  import { ThemeEditor, ThemePreview } from "./components/ThemeEditor.js";
75
82
  import { ToggleGroup } from "./components/ToggleGroup.js";
83
+ import { useClosingValue } from "./components/useClosingValue.js";
76
84
  import { useCssIsDark } from "./components/useCssIsDark.js";
77
85
  import { useApplyTheme, useColorMode } from "./components/useTheme.js";
78
- export { ActionMenu, AppLink, Autocomplete, Avatar, Breadcrumbs, Button, CODE_STYLES, Callout, Card, CardHeader, Checkbox, CheckboxGroup, ColorInput, Combobox, ConfirmModal, CopyButton, CopyCodeBlock, CreateModal, CreateModalSelect, CreateModalSwitch, DEFAULT_CONTRAST, DEFAULT_PRESET, DEFAULT_THEME, DatePicker, DescriptionList, DescriptionListGroup, DescriptionListItem, Disclosure, DisclosurePanel, Drawer, Elapsed, EmptyState, ErrorText, ExternalLink, Field, FieldOption, FieldValue, HoverCard, IconButton, InfoTip, Input, JND, LetterBadge, Loader, LoadingRegion, Markdown, MenuCheckboxItem, MenuEntries, MenuFilter, MenuGroupLabel, MenuItem, MenuLinkItem, MenuPopup, MenuRadioItem, MenuSeparator, MenuSubmenuTrigger, Meter, MethodButton, Modal, ModalDescription, ModalTitle, NumberInput, OneTimeCodeInput, Overview, PAGE_SIZES, PageHeader, PageHeaderAction, PageHeaderAddButton, PageHeaderBar, PageHeaderMenu, PageHeaderProvider, Pagination, Popover, PopoverClose, ProgressBar, Radio, RadioGroup, RefreshButton, RelativeTime, RequiredMark, RevealToggle, RunStatusIcon, SIDEBAR_TOKENS, SearchInput, Section, SegmentedControl, Select, SettingModeOption, SettingRow, SettingsCard, SettingsHeading, Skeleton, Slider, StatusBadge, StatusDot, StickyBar, Switch, THEME_PRESETS, THEME_TOKENS, TabPanel, Table, Tabs, Textarea, ThemeEditor, ThemePreview, ToggleGroup, Tooltip, TooltipProvider, UIProvider, apcaContrast, applyTheme, avatarInitials, buttonClasses, categoryClasses, categoryOf, composite, contrastRatio, cx, deltaE, deriveTheme, fieldBox, fitSeed, formatBytes, formatCount, formatDateTime, formatDuration, formatInfoTipContent, formatTimeLeft, generateTheme, isDarkColor, isPlainClick, isTextEntryContext, levelTone, menuDivider, modalPanelClassName, modeOf, parseColor, parseTheme, prefersWideGamut, resolveMode, runStatusTone, schemeFor, serializeTheme, statusTextClass, themeStylesheet, toHex, toP3, toast, useApplyTheme, useClock, useClosePopover, useColorMode, useContextMenu, useCopy, useCssIsDark, useElapsed, useFieldControl, useFieldLabelledControl, useNavigation, useOptionalWorkflowEngine, usePersistedState, useProvisionCorsRules, useRelativeTime, useRunFile, useShortcutKey, useSlots, useStrings, useWorkflowActions, useWorkflowEditing, useWorkflowEngine, useWorkflowEngineLoader };
86
+ export { ActionMenu, AppLink, Autocomplete, Avatar, AvatarGroup, Breadcrumbs, Button, CODE_STYLES, Calendar, Callout, Card, CardHeader, ChartLegendList, ChartTooltipContent, Checkbox, CheckboxGroup, ColorInput, Combobox, ConfirmModal, ContextMenuProvider, CopyButton, CopyCodeBlock, CountBadge, CreateModal, CreateModalSelect, CreateModalSwitch, DEFAULT_CONTRAST, DEFAULT_PRESET, DEFAULT_THEME, DatePicker, DescriptionList, DescriptionListGroup, DescriptionListItem, Disclosure, DisclosurePanel, Drawer, Elapsed, EmptyState, ErrorPage, ErrorText, ExternalLink, Field, FieldOption, FieldValue, FileButton, HoverCard, IconButton, InfoTip, Input, JND, Kbd, LetterBadge, ListboxGroup, ListboxOption, ListboxPanel, Loader, LoadingRegion, Markdown, MenuCheckboxItem, MenuEntries, MenuFilter, MenuGroupLabel, MenuItem, MenuLinkItem, MenuPopup, MenuRadioItem, MenuSeparator, MenuSubmenuTrigger, Meter, MethodButton, Modal, ModalDescription, ModalTitle, NumberInput, OneTimeCodeInput, Overview, PAGE_SIZES, PageHeader, PageHeaderAction, PageHeaderAddButton, PageHeaderBar, PageHeaderMenu, PageHeaderProvider, Pagination, Popover, PopoverClose, ProgressBar, Radio, RadioGroup, RefreshButton, RelativeTime, RequiredMark, RevealToggle, RunStatusIcon, SIDEBAR_TOKENS, SearchInput, Section, SegmentedControl, Select, SelectionCopy, SeriesSwatch, SettingModeOption, SettingRow, SettingsCard, SettingsHeading, Skeleton, Slider, StatusBadge, StatusDot, StickyBar, Switch, THEME_PRESETS, THEME_TOKENS, TabPanel, Table, Tabs, Tag, TagList, Textarea, ThemeEditor, ThemePreview, TitleInput, ToggleGroup, Tooltip, TooltipProvider, UIProvider, apcaContrast, applyTheme, ariaKeyShortcuts, avatarInitials, buttonClasses, categoryClasses, categoryOf, collapsePanelClassName, composite, contrastRatio, cx, deltaE, deriveTheme, errorPageKind, fieldBox, fitSeed, formatBytes, formatCount, formatDateTime, formatDuration, formatInfoTipContent, formatShortcut, formatTimeLeft, generateTheme, isApplePlatform, isDarkColor, isMenuDivider, isMenuGroup, isMenuSubmenu, isPlainClick, isTextEntryContext, levelTone, menuDivider, modalPanelClassName, modeOf, normalizeTags, parseColor, parseTheme, prefersWideGamut, resolveMode, runStatusTone, schemeFor, serializeTheme, seriesColor, seriesColors, seriesOpacity, seriesSlotColor, shortcutText, statusTextClass, tagClasses, themeStylesheet, toHex, toP3, toast, useApplyTheme, useAvatarColoring, useClock, useClosePopover, useClosingValue, useColorMode, useConfirm, useContextMenu, useCopy, useCssIsDark, useElapsed, useFieldControl, useFieldLabelledControl, useListboxNavigation, useLocale, useMenuOpenedBy, useNavigation, useOpenMenu, useOptionalWorkflowEngine, usePersistedState, useProvisionCorsRules, useRelativeTime, useRunFile, useSeriesHighlight, useShortcutFormat, useShortcutKey, useSlots, useStrings, useWorkflowActions, useWorkflowEditing, useWorkflowEngine, useWorkflowEngineLoader };
@@ -7,6 +7,10 @@ export type ToolbarAction = RowAction & {
7
7
  * action at most: the rest are outlined, so it stands out. */
8
8
  primary?: boolean | undefined;
9
9
  hidden?: boolean;
10
+ /** Busy with what it started, such as a refresh: a spinner takes the icon's
11
+ * place, and it keeps focus but can't be pressed again until done, in the
12
+ * toolbar or as a row of its `…` menu. */
13
+ loading?: boolean | undefined;
10
14
  };
11
15
  /** A pre-rendered element (e.g. a button component that owns its modal). */
12
16
  interface ToolbarElement {