@parallelworks/ui 0.77.0 → 0.79.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 (268) hide show
  1. package/README.md +42 -6
  2. package/dist/access/AccessDrawer.d.ts +49 -7
  3. package/dist/access/AccessDrawer.js +243 -38
  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 +25 -1
  13. package/dist/access/strings.js +27 -3
  14. package/dist/access/types.d.ts +26 -0
  15. package/dist/ai/components/AllocationSelector.js +1 -1
  16. package/dist/ai/components/AttachmentManager.js +5 -5
  17. package/dist/ai/components/AttachmentUpload.js +2 -2
  18. package/dist/ai/components/BranchNavigator.js +1 -1
  19. package/dist/ai/components/ChatActivity.js +1 -1
  20. package/dist/ai/components/ChatEmptyState.js +3 -3
  21. package/dist/ai/components/ChatInput.js +3 -5
  22. package/dist/ai/components/ChatLayout.js +1 -1
  23. package/dist/ai/components/ChatMessage.js +1 -1
  24. package/dist/ai/components/ChatMessageList.js +23 -8
  25. package/dist/ai/components/ChatSidebar.js +3 -3
  26. package/dist/ai/components/ChatThread.js +4 -4
  27. package/dist/ai/components/ComposerAddMenu.js +9 -20
  28. package/dist/ai/components/ModelSelector.js +3 -3
  29. package/dist/ai/components/PastedText.js +5 -5
  30. package/dist/ai/components/SessionView.js +1 -1
  31. package/dist/ai/components/ShareDialog.js +3 -3
  32. package/dist/ai/components/SlashMenu.d.ts +31 -4
  33. package/dist/ai/components/SlashMenu.js +36 -63
  34. package/dist/ai/components/agent/ActivityLine.js +1 -1
  35. package/dist/ai/components/agent/AgentMessageParts.js +13 -13
  36. package/dist/ai/components/conversationActions.js +3 -3
  37. package/dist/ai/core/ChatProvider.js +1 -1
  38. package/dist/ai/core/config.js +1 -1
  39. package/dist/ai/ui/ConversationSidebar.js +3 -3
  40. package/dist/ai/ui/sidebar.js +3 -3
  41. package/dist/assets/yaml.worker-DOBV2lND.js +884 -0
  42. package/dist/components/ActionMenu.d.ts +38 -9
  43. package/dist/components/ActionMenu.js +48 -22
  44. package/dist/components/Avatar.d.ts +66 -6
  45. package/dist/components/Avatar.js +130 -18
  46. package/dist/components/Breadcrumbs.d.ts +4 -0
  47. package/dist/components/Breadcrumbs.js +26 -10
  48. package/dist/components/Button.d.ts +3 -2
  49. package/dist/components/Button.js +11 -1
  50. package/dist/components/Callout.d.ts +3 -2
  51. package/dist/components/Callout.js +3 -2
  52. package/dist/components/Card.d.ts +33 -9
  53. package/dist/components/Card.js +24 -8
  54. package/dist/components/Checkbox.d.ts +3 -1
  55. package/dist/components/Checkbox.js +4 -2
  56. package/dist/components/ColorInput.js +1 -1
  57. package/dist/components/Combobox.d.ts +23 -0
  58. package/dist/components/Combobox.js +252 -86
  59. package/dist/components/ConfirmModal.d.ts +28 -2
  60. package/dist/components/ConfirmModal.js +100 -15
  61. package/dist/components/ContextMenu.d.ts +29 -2
  62. package/dist/components/ContextMenu.js +60 -8
  63. package/dist/components/CopyButton.d.ts +21 -8
  64. package/dist/components/CopyButton.js +29 -9
  65. package/dist/components/CreateModal.d.ts +20 -4
  66. package/dist/components/CreateModal.js +28 -17
  67. package/dist/components/DatePicker.d.ts +31 -1
  68. package/dist/components/DatePicker.js +178 -47
  69. package/dist/components/DescriptionList.d.ts +13 -3
  70. package/dist/components/DescriptionList.js +43 -11
  71. package/dist/components/Disclosure.d.ts +10 -2
  72. package/dist/components/Disclosure.js +18 -7
  73. package/dist/components/Drawer.js +5 -5
  74. package/dist/components/EmptyState.d.ts +12 -4
  75. package/dist/components/EmptyState.js +18 -10
  76. package/dist/components/ErrorPage.d.ts +40 -0
  77. package/dist/components/ErrorPage.js +101 -0
  78. package/dist/components/ExternalLink.d.ts +4 -1
  79. package/dist/components/ExternalLink.js +4 -5
  80. package/dist/components/Field.d.ts +21 -6
  81. package/dist/components/Field.js +32 -16
  82. package/dist/components/FileButton.d.ts +19 -0
  83. package/dist/components/FileButton.js +32 -0
  84. package/dist/components/HoverCard.d.ts +26 -6
  85. package/dist/components/HoverCard.js +11 -5
  86. package/dist/components/IconButton.js +4 -2
  87. package/dist/components/InfoTip.js +3 -3
  88. package/dist/components/Input.d.ts +33 -3
  89. package/dist/components/Input.js +149 -14
  90. package/dist/components/Kbd.d.ts +40 -0
  91. package/dist/components/Kbd.js +168 -0
  92. package/dist/components/Listbox.d.ts +103 -0
  93. package/dist/components/Listbox.js +190 -0
  94. package/dist/components/Loader.d.ts +8 -2
  95. package/dist/components/Loader.js +16 -1
  96. package/dist/components/Markdown.js +1 -1
  97. package/dist/components/MarkdownImpl.js +1 -1
  98. package/dist/components/Menu.d.ts +20 -2
  99. package/dist/components/Menu.js +48 -19
  100. package/dist/components/MenuEntries.d.ts +41 -4
  101. package/dist/components/MenuEntries.js +266 -39
  102. package/dist/components/Meter.d.ts +50 -11
  103. package/dist/components/Meter.js +71 -21
  104. package/dist/components/Modal.d.ts +9 -3
  105. package/dist/components/Modal.js +68 -29
  106. package/dist/components/OneTimeCodeInput.js +1 -1
  107. package/dist/components/PageHeader.js +111 -7
  108. package/dist/components/PageHeaderAction.d.ts +8 -3
  109. package/dist/components/PageHeaderAction.js +122 -34
  110. package/dist/components/Pagination.d.ts +13 -1
  111. package/dist/components/Pagination.js +90 -19
  112. package/dist/components/Popover.d.ts +16 -2
  113. package/dist/components/Popover.js +20 -21
  114. package/dist/components/Provider.d.ts +172 -5
  115. package/dist/components/Provider.js +157 -14
  116. package/dist/components/RefreshButton.d.ts +13 -6
  117. package/dist/components/RefreshButton.js +17 -9
  118. package/dist/components/RunStatusIcon.d.ts +16 -7
  119. package/dist/components/RunStatusIcon.js +21 -8
  120. package/dist/components/Section.d.ts +11 -4
  121. package/dist/components/Section.js +33 -22
  122. package/dist/components/SegmentedControl.d.ts +16 -3
  123. package/dist/components/SegmentedControl.js +7 -3
  124. package/dist/components/Select.d.ts +19 -3
  125. package/dist/components/Select.js +114 -68
  126. package/dist/components/SelectionCopy.d.ts +10 -0
  127. package/dist/components/SelectionCopy.js +105 -0
  128. package/dist/components/SettingModeOption.js +1 -1
  129. package/dist/components/SettingsCard.js +1 -1
  130. package/dist/components/Skeleton.js +1 -1
  131. package/dist/components/StatusBadge.d.ts +55 -10
  132. package/dist/components/StatusBadge.js +91 -15
  133. package/dist/components/StickyBar.js +1 -1
  134. package/dist/components/Table.d.ts +22 -4
  135. package/dist/components/Table.js +46 -24
  136. package/dist/components/Tabs.d.ts +9 -4
  137. package/dist/components/Tabs.js +9 -4
  138. package/dist/components/Tag.d.ts +49 -0
  139. package/dist/components/Tag.js +199 -0
  140. package/dist/components/ThemeEditor.js +1 -1
  141. package/dist/components/Toast.js +1 -1
  142. package/dist/components/ToggleGroup.d.ts +4 -1
  143. package/dist/components/ToggleGroup.js +30 -13
  144. package/dist/components/Tooltip.d.ts +9 -3
  145. package/dist/components/Tooltip.js +55 -39
  146. package/dist/components/buttonClasses.d.ts +5 -2
  147. package/dist/components/buttonClasses.js +11 -10
  148. package/dist/components/chart.d.ts +69 -0
  149. package/dist/components/chart.js +145 -0
  150. package/dist/components/comboboxItems.d.ts +7 -1
  151. package/dist/components/comboboxItems.js +6 -2
  152. package/dist/components/dismiss.d.ts +5 -1
  153. package/dist/components/dismiss.js +6 -2
  154. package/dist/components/floating.d.ts +4 -4
  155. package/dist/components/floating.js +5 -5
  156. package/dist/components/headerActionsFit.d.ts +37 -0
  157. package/dist/components/headerActionsFit.js +81 -0
  158. package/dist/components/pageHeaderStore.d.ts +3 -0
  159. package/dist/components/pageHeaderStore.js +3 -0
  160. package/dist/components/pathBreaks.js +2 -2
  161. package/dist/components/popupContainer.d.ts +17 -0
  162. package/dist/components/popupContainer.js +69 -0
  163. package/dist/components/relativeTime.d.ts +21 -10
  164. package/dist/components/relativeTime.js +50 -22
  165. package/dist/components/segmented.d.ts +18 -4
  166. package/dist/components/segmented.js +48 -6
  167. package/dist/components/typedDate.d.ts +5 -0
  168. package/dist/components/typedDate.js +50 -0
  169. package/dist/components/useClosingValue.d.ts +4 -0
  170. package/dist/components/useClosingValue.js +12 -0
  171. package/dist/components/useCopy.d.ts +6 -0
  172. package/dist/components/useCopy.js +3 -3
  173. package/dist/components/useNarrow.d.ts +2 -0
  174. package/dist/components/useNarrow.js +16 -0
  175. package/dist/editor/Editor.js +1 -1
  176. package/dist/editor/FormCodePanel.js +1 -1
  177. package/dist/editor/Monaco.js +1 -1
  178. package/dist/editor/workers.js +1 -1
  179. package/dist/file-explorer/FileExplorer.js +16 -15
  180. package/dist/file-explorer/FileExplorerContext.js +2 -2
  181. package/dist/file-explorer/FilePreview/Viewer.js +3 -3
  182. package/dist/file-explorer/FilePreview/index.js +2 -2
  183. package/dist/file-explorer/FileRowsWindow.js +3 -3
  184. package/dist/file-explorer/FileTable.js +1 -1
  185. package/dist/file-explorer/LoadMoreRow.js +1 -1
  186. package/dist/file-explorer/TreeView.js +5 -5
  187. package/dist/file-explorer/helpers.js +2 -2
  188. package/dist/file-explorer/toasts.js +2 -2
  189. package/dist/form/Fields/CheckboxGroupField.js +1 -1
  190. package/dist/form/Fields/DropdownField.js +1 -1
  191. package/dist/form/Fields/DurationField.js +2 -2
  192. package/dist/form/Fields/MultiDropdownField.js +1 -1
  193. package/dist/form/Fields/NumberField.js +1 -1
  194. package/dist/form/Fields/ObjectField.js +1 -1
  195. package/dist/form/Fields/RangeField.js +1 -1
  196. package/dist/form/Fields/StringField.js +1 -1
  197. package/dist/form/Form.js +3 -3
  198. package/dist/form/FormLayout.js +1 -1
  199. package/dist/form/Wizard/WizardContainer.js +1 -1
  200. package/dist/form/Wizard/WizardNavigation.js +1 -1
  201. package/dist/form/Wizard/WizardStepContent.js +1 -1
  202. package/dist/form/fieldRegistry.js +1 -1
  203. package/dist/form/formEditing.js +1 -1
  204. package/dist/format.d.ts +17 -7
  205. package/dist/format.js +39 -16
  206. package/dist/graph/AnnotationBanner.js +2 -2
  207. package/dist/graph/Connectors.js +5 -5
  208. package/dist/graph/DependencyGraph.js +10 -9
  209. package/dist/graph/GraphEditor.js +4 -4
  210. package/dist/graph/GraphEditorDialogs.js +13 -12
  211. package/dist/graph/GraphNode.js +1 -1
  212. package/dist/graph/InputDialog.js +5 -5
  213. package/dist/graph/InputsEditor.js +10 -9
  214. package/dist/graph/MatrixGroup.js +2 -2
  215. package/dist/graph/ProblemPageLink.d.ts +9 -0
  216. package/dist/graph/ProblemPageLink.js +21 -0
  217. package/dist/graph/ProblemsButton.js +26 -16
  218. package/dist/graph/Reveal.js +1 -1
  219. package/dist/graph/RunWarningsList.js +21 -12
  220. package/dist/graph/ShortcutsButton.js +25 -8
  221. package/dist/graph/StepSummaries.js +1 -1
  222. package/dist/graph/TreeView.js +2 -2
  223. package/dist/graph/WorkflowSettingsDialog.js +3 -3
  224. package/dist/graph/editorApi.d.ts +10 -0
  225. package/dist/graph/editorFields.js +3 -3
  226. package/dist/graph/editorPrimitives.js +1 -1
  227. package/dist/graph/editorRows.js +8 -6
  228. package/dist/graph/editorStrings.d.ts +1 -0
  229. package/dist/graph/editorStrings.js +1 -0
  230. package/dist/graph/fieldProblems.js +2 -2
  231. package/dist/graph/inputRefs.js +7 -6
  232. package/dist/graph/runWarnings.d.ts +12 -1
  233. package/dist/graph/stepWith.js +2 -2
  234. package/dist/index.d.ts +30 -21
  235. package/dist/index.js +20 -12
  236. package/dist/list/ActionToolbar.d.ts +4 -0
  237. package/dist/list/ActionToolbar.js +35 -12
  238. package/dist/list/ListFilterBar.d.ts +42 -0
  239. package/dist/list/ListFilterBar.js +789 -0
  240. package/dist/list/ListPage.d.ts +42 -4
  241. package/dist/list/ListPage.js +56 -22
  242. package/dist/list/ListTable.d.ts +27 -3
  243. package/dist/list/ListTable.js +48 -23
  244. package/dist/list/ListToolbar.d.ts +31 -0
  245. package/dist/list/ListToolbar.js +43 -0
  246. package/dist/list/ListViewControls.d.ts +8 -4
  247. package/dist/list/ListViewControls.js +22 -14
  248. package/dist/list/UserHoverCard.d.ts +8 -2
  249. package/dist/list/UserHoverCard.js +26 -13
  250. package/dist/list/filterModel.d.ts +122 -0
  251. package/dist/list/filterModel.js +308 -0
  252. package/dist/list/index.d.ts +6 -2
  253. package/dist/list/index.js +6 -2
  254. package/dist/list/listSearch.d.ts +1 -1
  255. package/dist/list/listSearch.js +8 -4
  256. package/dist/list/listView.d.ts +24 -2
  257. package/dist/list/listView.js +47 -45
  258. package/dist/list/rowMenu.d.ts +10 -5
  259. package/dist/list/rowMenu.js +17 -7
  260. package/dist/list/useListFilters.d.ts +68 -0
  261. package/dist/list/useListFilters.js +252 -0
  262. package/dist/logviewer/LogViewer.js +4 -4
  263. package/dist/styles/theme.css +94 -0
  264. package/dist/styles.css +1 -1
  265. package/package.json +11 -11
  266. package/dist/assets/yaml.worker-k9AdOqzf.js +0 -1441
  267. package/dist/components/fullscreen.d.ts +0 -4
  268. package/dist/components/fullscreen.js +0 -18
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 CodedProblem, type PersistedStateHook, type ProblemMessage, type ProblemParams, type RunFileResult, type UIData, type UILinkComponent, type UINavigation, UIProvider, type UIProviderProps, type UISlots, type UIStringOverrides, type UIStrings, useAvatarColoring, useLocale, useNavigation, useOptionalWorkflowEngine, usePersistedState, useProblemText, 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, useProblemText, 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, useProblemText, 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 {
@@ -3,14 +3,15 @@ import { buttonClasses } from "../components/buttonClasses.js";
3
3
  import { MoreIcon } from "../icons.js";
4
4
  import { MenuPopup, MenuSeparator } from "../components/Menu.js";
5
5
  import { isDev } from "../dev.js";
6
+ import { Loader } from "../components/Loader.js";
6
7
  import { Tooltip } from "../components/Tooltip.js";
7
8
  import { useStrings } from "../components/Provider.js";
8
9
  import { AppLink } from "../components/AppLink.js";
9
10
  import { MenuEntries, useRunAction, warnIfInert } from "../components/MenuEntries.js";
10
11
  import { useStickyTop } from "../components/stickyTop.js";
11
12
  import { Menu } from "@base-ui/react/menu";
12
- import { Fragment, jsx, jsxs } from "react/jsx-runtime";
13
- import { Fragment as Fragment$1, cloneElement, createContext, isValidElement, use, useLayoutEffect, useRef, useState } from "react";
13
+ import { Fragment, cloneElement, createContext, isValidElement, use, useLayoutEffect, useRef, useState } from "react";
14
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
14
15
  import { Button } from "@base-ui/react/button";
15
16
  import { Toggle } from "@base-ui/react/toggle";
16
17
  import { Toolbar } from "@base-ui/react/toolbar";
@@ -29,19 +30,37 @@ function actionClasses(action, iconOnly) {
29
30
  iconOnly
30
31
  }), action.destructive && !primary && "text-(--theme-error-text)");
31
32
  }
33
+ /** A loading action as its menu row shows it: the spinner for its icon, and
34
+ * not to be chosen until done. */
35
+ function asMenuRow(action) {
36
+ return action.loading ? {
37
+ ...action,
38
+ icon: /* @__PURE__ */ jsx(Loader, {
39
+ inline: true,
40
+ decorative: true,
41
+ size: "1em"
42
+ }),
43
+ disabled: true
44
+ } : action;
45
+ }
32
46
  /** A toolbar action as a button: a link with `href`, a toggle with `checked`.
33
47
  * In an ActionToolbar it is one of its items, reached with the arrow keys. */
34
48
  function ToolbarButton({ action }) {
35
49
  const placement = use(PlacementContext);
36
50
  const runAction = useRunAction();
37
51
  const folded = use(FoldedContext);
38
- if (placement === "menu") return /* @__PURE__ */ jsx(MenuEntries, { entries: [action] });
52
+ if (placement === "menu") return /* @__PURE__ */ jsx(MenuEntries, { entries: [asMenuRow(action)] });
39
53
  warnIfInert(action, "ActionToolbar");
54
+ const loading = action.loading === true;
40
55
  const iconOnly = Boolean(action.icon) && placement === "toolbar" && folded;
41
56
  const className = actionClasses(action, iconOnly);
42
57
  const reason = action.disabled ? action.disabledReason : void 0;
43
- const content = /* @__PURE__ */ jsxs(Fragment, { children: [
44
- action.icon,
58
+ const content = /* @__PURE__ */ jsxs(Fragment$1, { children: [
59
+ loading ? /* @__PURE__ */ jsx(Loader, {
60
+ inline: true,
61
+ decorative: true,
62
+ size: "1em"
63
+ }) : action.icon,
45
64
  iconOnly ? /* @__PURE__ */ jsx("span", {
46
65
  className: "sr-only",
47
66
  children: action.label
@@ -59,7 +78,8 @@ function ToolbarButton({ action }) {
59
78
  href: action.href,
60
79
  reloadDocument: action.reloadDocument,
61
80
  target: action.target,
62
- disabled: action.disabled,
81
+ disabled: action.disabled || loading,
82
+ "aria-busy": loading || void 0,
63
83
  className
64
84
  });
65
85
  control = inToolbar ? /* @__PURE__ */ jsx(Toolbar.Link, {
@@ -70,19 +90,22 @@ function ToolbarButton({ action }) {
70
90
  const toggle = /* @__PURE__ */ jsx(Toggle, {
71
91
  pressed: action.checked,
72
92
  onPressedChange: run,
73
- disabled: action.disabled,
93
+ disabled: action.disabled || loading,
94
+ "aria-busy": loading || void 0,
74
95
  className
75
96
  });
76
97
  control = inToolbar ? /* @__PURE__ */ jsx(Toolbar.Button, {
77
98
  render: toggle,
78
- disabled: action.disabled,
99
+ disabled: action.disabled || loading,
100
+ focusableWhenDisabled: true,
79
101
  children: content
80
102
  }) : cloneElement(toggle, void 0, content);
81
103
  } else {
82
104
  const Control = inToolbar ? Toolbar.Button : Button;
83
105
  control = /* @__PURE__ */ jsx(Control, {
84
106
  onClick: run,
85
- disabled: action.disabled,
107
+ disabled: action.disabled || loading,
108
+ "aria-busy": loading || void 0,
86
109
  focusableWhenDisabled: true,
87
110
  className,
88
111
  children: content
@@ -115,7 +138,7 @@ function OverflowMenu({ items }) {
115
138
  className: "min-w-56",
116
139
  children: /* @__PURE__ */ jsx(PlacementContext, {
117
140
  value: "menu",
118
- children: items.map((group, i) => /* @__PURE__ */ jsxs(Fragment$1, { children: [i > 0 && /* @__PURE__ */ jsx(MenuSeparator, {}), group.map((item) => "element" in item ? /* @__PURE__ */ jsx(Fragment$1, { children: item.element }, item.key) : /* @__PURE__ */ jsx(MenuEntries, { entries: [item] }, item.key))] }, group[0]?.key ?? i))
141
+ children: items.map((group, i) => /* @__PURE__ */ jsxs(Fragment, { children: [i > 0 && /* @__PURE__ */ jsx(MenuSeparator, {}), group.map((item) => "element" in item ? /* @__PURE__ */ jsx(Fragment, { children: item.element }, item.key) : /* @__PURE__ */ jsx(MenuEntries, { entries: [asMenuRow(item)] }, item.key))] }, group[0]?.key ?? i))
119
142
  })
120
143
  })] });
121
144
  }
@@ -241,7 +264,7 @@ function MeasuringCopy({ items, ref }) {
241
264
  children: /* @__PURE__ */ jsx("div", {
242
265
  ref,
243
266
  className: "flex w-max gap-1",
244
- children: items.map((item) => "element" in item ? null : /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsxs("span", {
267
+ children: items.map((item) => "element" in item ? null : /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsxs("span", {
245
268
  "data-measure": item.key,
246
269
  "data-fold": "full",
247
270
  className: actionClasses(item, false),
@@ -299,7 +322,7 @@ function ActionToolbar({ groups, right = [], sticky = false, label }) {
299
322
  items: all
300
323
  }), /* @__PURE__ */ jsxs(PlacementContext, {
301
324
  value: "toolbar",
302
- children: [shownGroups.map((group, i) => /* @__PURE__ */ jsxs(Fragment$1, { children: [i > 0 && /* @__PURE__ */ jsx(Toolbar.Separator, {
325
+ children: [shownGroups.map((group, i) => /* @__PURE__ */ jsxs(Fragment, { children: [i > 0 && /* @__PURE__ */ jsx(Toolbar.Separator, {
303
326
  orientation: "vertical",
304
327
  className: "h-5 w-px shrink-0 bg-(--theme-border)"
305
328
  }), /* @__PURE__ */ jsx(Toolbar.Group, {
@@ -0,0 +1,42 @@
1
+ import { type ReactElement, type ReactNode } from 'react';
2
+ import { type ActiveFilter, type FilterField } from './filterModel.js';
3
+ import type { ListFilters } from './useListFilters.js';
4
+ type Field = FilterField<any>;
5
+ interface ChipProps {
6
+ filters: ListFilters;
7
+ filter: ActiveFilter;
8
+ field: Field;
9
+ /** Full width, as the phone sheet stacks them. */
10
+ stretch?: boolean;
11
+ /** Whether this chip answers requests to open its pickers. */
12
+ answers: boolean;
13
+ /** Called after Backspace or Delete removed it, to move focus on. */
14
+ onRemoved?: () => void;
15
+ }
16
+ /** One filter as a sentence: its field, its condition and its values, each opening its own
17
+ * picker, and a button that removes it. */
18
+ export declare function FilterChip({ filters, filter, field, stretch, answers, onRemoved, }: ChipProps): import("react").JSX.Element;
19
+ export interface AddFilterMenuProps {
20
+ filters: ListFilters;
21
+ /** The button that opens it: the toolbar's Filter button, or the row's "+ Filter". */
22
+ trigger: ReactElement;
23
+ /** Where it opens against its trigger. */
24
+ align?: 'start' | 'end';
25
+ }
26
+ /** The fields a filter can be added on. Picking one adds its chip and opens its value picker
27
+ * there; a field already in use opens its chip's picker. */
28
+ export declare function AddFilterMenu({ filters, trigger, align }: AddFilterMenuProps): import("react").JSX.Element;
29
+ export interface ListFilterBarProps {
30
+ filters: ListFilters | undefined;
31
+ /** At the row's end, such as Save view or Update view. */
32
+ trailing?: ReactNode;
33
+ /** Names the row; defaults to the provider's `filters.activeFilters`. */
34
+ label?: string | undefined;
35
+ className?: string | undefined;
36
+ }
37
+ /** The chips that say what narrows a list, under its toolbar: one per filter, each editable in
38
+ * place, then "+ Filter" and Clear (or Reset, where the page has default filters). It shows
39
+ * only while a filter is on or a field is required. At phone width it stops at two lines and
40
+ * a "+n filters" chip opens the rest in a sheet. */
41
+ export declare function ListFilterBar({ filters, trailing, label, className }: ListFilterBarProps): import("react").JSX.Element | null;
42
+ export {};