@pstdio/ui 0.43.1 → 0.44.0-nightly.20261015030224

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.
@@ -1,5 +1,5 @@
1
1
  import { C as KanbanRendererSettings, S as KanbanRendererSavedView, a as CollectionViewStoreState, b as KanbanRendererCreateSubmission, f as CollectionBadgeItem, m as EnumOption, s as AttributeDescriptor, u as AttributeType, w as KanbanRendererViewsSource, x as KanbanRendererRow, y as KanbanRendererCreateRowConfig } from "./collection-view-fields-B3fhsgn7.js";
2
- import { n as WorkspaceBadgeProps, u as ResourceContextAction } from "./workspace-badge-De6OQjb5.js";
2
+ import { n as WorkspaceBadgeProps, u as ResourceContextAction } from "./workspace-badge-CvQBU6Hs.js";
3
3
  import { ComponentProps, ComponentType, DragEventHandler, ReactNode } from "react";
4
4
  import { KanbanRendererMove, ViewFilterGroup, ViewSort } from "@pstdio/sdk/extensions";
5
5
  //#region src/components/kanban-renderer/kanban-renderer-badge-helpers.d.ts
@@ -0,0 +1,91 @@
1
+ import { A as CollectionSavedView, M as CollectionViewsSource, i as CollectionViewStoreInitialState, s as AttributeDescriptor, x as KanbanRendererRow } from "./collection-view-fields-B3fhsgn7.js";
2
+ import { ReactNode, RefObject } from "react";
3
+ import { ViewFilterGroup, ViewFilterRule } from "@pstdio/sdk/extensions";
4
+ //#region src/components/collection-view/filter-rule-value.d.ts
5
+ interface RuleValueOption {
6
+ value: string;
7
+ label: string;
8
+ count?: number;
9
+ icon?: string | null;
10
+ color?: string;
11
+ }
12
+ //#endregion
13
+ //#region src/components/collection-view/collection-filter.d.ts
14
+ interface CollectionFilterProps {
15
+ itemLabel?: string;
16
+ fields: AttributeDescriptor[];
17
+ filter: ViewFilterGroup;
18
+ optionsFor: (field: AttributeDescriptor) => RuleValueOption[];
19
+ onFilterChange: (filter: ViewFilterGroup) => void;
20
+ }
21
+ /** The collection picker and editable criteria, without saved views or search. */
22
+ declare function CollectionFilter(props: CollectionFilterProps): import("react/jsx-runtime").JSX.Element;
23
+ //#endregion
24
+ //#region src/components/collection-view/collection-view-bar.d.ts
25
+ interface CollectionViewBarProps<TSettings> {
26
+ storageKey: string;
27
+ /** Singular resource label used as the subject of boolean predicates. */
28
+ itemLabel?: string;
29
+ initialState: CollectionViewStoreInitialState<TSettings>;
30
+ views: (CollectionSavedView<TSettings> & {
31
+ builtIn: boolean;
32
+ })[];
33
+ viewsSource?: CollectionViewsSource<TSettings>;
34
+ /** Every field of the view. Filter offers the filterable ones and Sort the sortable ones. */
35
+ fields: AttributeDescriptor[];
36
+ optionsFor: (field: AttributeDescriptor) => RuleValueOption[];
37
+ /** Search is screen state owned by the renderer. It is never saved. */
38
+ search: string;
39
+ onSearchChange: (value: string) => void;
40
+ searchResultLabel?: string;
41
+ leading?: ReactNode;
42
+ actions?: ReactNode;
43
+ displayControl: ReactNode;
44
+ align?: "split" | "end";
45
+ }
46
+ /** One view bar for data tables and both kanban displays: saved views, then Search, Filter, and Display. */
47
+ declare const CollectionViewBar: <TSettings>(props: CollectionViewBarProps<TSettings>) => import("react/jsx-runtime").JSX.Element;
48
+ //#endregion
49
+ //#region src/components/collection-view/collection-view-filter.d.ts
50
+ /** Rules that are incomplete or no longer fit a field are skipped, so they never hide rows. */
51
+ declare const filterRowsByView: <TRow extends KanbanRendererRow>(rows: TRow[], filter: ViewFilterGroup, fields: AttributeDescriptor[], today?: Date) => TRow[];
52
+ //#endregion
53
+ //#region src/components/collection-view/collection-view-search.d.ts
54
+ /** Search only looks at the text a view shows, which the caller collects per row. */
55
+ declare const searchRows: <TRow>(rows: TRow[], query: string, textsOf: (row: TRow) => string[]) => TRow[];
56
+ //#endregion
57
+ //#region src/components/collection-view/use-collection-views.d.ts
58
+ interface CollectionViewsInput<TSettings> {
59
+ storageKey: string;
60
+ fields?: AttributeDescriptor[];
61
+ initialState: CollectionViewStoreInitialState<TSettings>;
62
+ viewsSource?: CollectionViewsSource<TSettings>;
63
+ defaultViews?: CollectionSavedView<TSettings>[];
64
+ defaultActiveViewId?: string;
65
+ }
66
+ /** Picks the views a renderer offers and keeps the store on a view that still exists. */
67
+ declare const useCollectionViews: <TSettings>(input: CollectionViewsInput<TSettings>) => {
68
+ views: (CollectionSavedView<TSettings> & {
69
+ builtIn: boolean;
70
+ })[];
71
+ defaultId: string | undefined;
72
+ };
73
+ //#endregion
74
+ //#region src/components/collection-view/view-bar-popover.d.ts
75
+ interface ViewBarPopoverProps {
76
+ open: boolean;
77
+ onOpenChange: (open: boolean) => void;
78
+ /** The button the menu opens from. Several buttons can open the same menu. */
79
+ anchorRef: RefObject<HTMLElement | null>;
80
+ width: string;
81
+ placement?: "bottom-start" | "bottom-end";
82
+ /** The quick picker draws its own panes edge to edge. */
83
+ padding?: "0" | "2xs";
84
+ testId?: string;
85
+ children: ReactNode;
86
+ }
87
+ /** The menu shell for Search, Filter, and Sort. Menus inside it render in place, so using them never closes it. */
88
+ declare const ViewBarPopover: (props: ViewBarPopoverProps) => import("react/jsx-runtime").JSX.Element;
89
+ //#endregion
90
+ export { searchRows as a, CollectionViewBarProps as c, useCollectionViews as i, CollectionFilter as l, ViewBarPopoverProps as n, filterRowsByView as o, CollectionViewsInput as r, CollectionViewBar as s, ViewBarPopover as t, CollectionFilterProps as u };
91
+ export {};
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { i as ScrollAreaProps, r as ScrollArea, t as ResourceBadge } from "./resource-badge-nOWPqxFU.js";
2
2
  import { _ as ActivityHeader, a as ActivityComposerProps, b as ActivityRootProps, c as ActivityReply, d as ActivityEventProps, f as ActivityActor, g as ActivityFeedProps, h as ActivityFeed, i as ActivityComposer, l as ActivityReplyProps, m as ActivityTimelineProps, n as ActivityAvatar, o as ActivityComment, p as ActivityTimeline, r as ActivityAvatarProps, s as ActivityCommentProps, t as Activity, u as ActivityEvent, v as ActivityHeaderProps, y as ActivityRoot } from "./index-DlmvvQ6x.js";
3
3
  import { n as HostStorageProvider, t as HostStorage } from "./host-storage-J0089Hyk.js";
4
- import { a as resolveSessionIndicatorColor, c as ResourceActionMenu, d as ResourceContextMenu, i as SessionIndicator, l as ResourceActionMenuProps, n as WorkspaceBadgeProps, o as resolveSessionIndicatorIcon, r as SessionCompletionStatus, s as sessionCompletionStatuses, t as WorkspaceBadge, u as ResourceContextAction } from "./workspace-badge-De6OQjb5.js";
4
+ import { a as resolveSessionIndicatorColor, c as ResourceActionMenu, d as ResourceContextMenu, i as SessionIndicator, l as ResourceActionMenuProps, n as WorkspaceBadgeProps, o as resolveSessionIndicatorIcon, r as SessionCompletionStatus, s as sessionCompletionStatuses, t as WorkspaceBadge, u as ResourceContextAction } from "./workspace-badge-CvQBU6Hs.js";
5
5
  import { a as createThemePreferenceFromVsCodeTheme, c as ThemePreferenceOption, d as defaultThemePreferences, f as getThemePreferenceClassName, h as isThemePreference, i as createMonacoThemeFromVsCodeTheme, l as ThemePreferenceTokens, m as getThemePreferenceMode, n as MonacoThemeData, o as ThemePreference, p as getThemePreferenceClassNames, r as VsCodeColorTheme, s as ThemePreferenceMode, t as _default, u as applyThemePreference } from "./index-Dd6e8lU_.js";
6
6
  import { Alert, BadgeProps, BoxProps, Breadcrumb as Breadcrumb$1, CenterProps, ChakraProvider, Checkbox as Checkbox$1, ConditionalValue, EmptyState as EmptyState$1, FlexProps, HTMLChakraProps, IconButtonProps, IconProps, Menu, RadioGroup as RadioGroup$1, RecipeVariantProps, Slider as Slider$1, StackProps, Switch as Switch$1, SystemStyleObject, TextProps, Tooltip as Tooltip$1, chakra, createToaster } from "@chakra-ui/react";
7
7
  import * as React$2 from "react";
@@ -590,61 +590,18 @@ export declare const optionIcons: ({
590
590
  onChange?: import("react").ChangeEventHandler<HTMLSpanElement, Element> | undefined;
591
591
  onError?: import("react").ReactEventHandler<HTMLSpanElement> | undefined;
592
592
  onSubmit?: import("react").SubmitEventHandler<HTMLSpanElement> | undefined;
593
- resource?: string | undefined | undefined;
594
593
  id?: string | undefined | undefined;
595
- slot?: string | undefined | undefined;
596
- style?: import("react").CSSProperties | undefined;
597
- title?: string | undefined | undefined;
598
- color?: string | undefined | undefined;
599
- content?: string | undefined | undefined;
600
- translate?: "yes" | "no" | undefined | undefined;
601
- hidden?: boolean | undefined | undefined;
602
- "aria-roledescription"?: string | undefined | undefined;
603
- role?: import("react").AriaRole | undefined;
604
- defaultChecked?: boolean | undefined | undefined;
605
- defaultValue?: string | number | readonly string[] | undefined;
606
- suppressContentEditableWarning?: boolean | undefined | undefined;
594
+ resource?: string | undefined | undefined;
607
595
  suppressHydrationWarning?: boolean | undefined | undefined;
608
- accessKey?: string | undefined | undefined;
609
- autoCapitalize?: "off" | "none" | "on" | "sentences" | "words" | "characters" | undefined | (string & {}) | undefined;
610
- autoFocus?: boolean | undefined | undefined;
611
596
  className?: string | undefined | undefined;
612
- contentEditable?: "inherit" | (boolean | "true" | "false") | "plaintext-only" | undefined;
613
- contextMenu?: string | undefined | undefined;
614
- dir?: string | undefined | undefined;
615
- draggable?: (boolean | "true" | "false") | undefined;
616
- enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
597
+ color?: string | undefined | undefined;
617
598
  lang?: string | undefined | undefined;
618
599
  nonce?: string | undefined | undefined;
619
- spellCheck?: (boolean | "true" | "false") | undefined;
620
- tabIndex?: number | undefined | undefined;
621
- radioGroup?: string | undefined | undefined;
622
- about?: string | undefined | undefined;
623
- datatype?: string | undefined | undefined;
624
- inlist?: any;
625
- prefix?: string | undefined | undefined;
626
- property?: string | undefined | undefined;
627
- rel?: string | undefined | undefined;
628
- rev?: string | undefined | undefined;
629
- typeof?: string | undefined | undefined;
630
- vocab?: string | undefined | undefined;
631
- autoCorrect?: string | undefined | undefined;
632
- autoSave?: string | undefined | undefined;
633
- itemProp?: string | undefined | undefined;
634
- itemScope?: boolean | undefined | undefined;
635
- itemType?: string | undefined | undefined;
636
- itemID?: string | undefined | undefined;
637
- itemRef?: string | undefined | undefined;
638
- results?: number | undefined | undefined;
639
- security?: string | undefined | undefined;
640
- unselectable?: "on" | "off" | undefined | undefined;
641
- popover?: "" | "auto" | "manual" | "hint" | undefined | undefined;
642
- popoverTargetAction?: "toggle" | "show" | "hide" | undefined | undefined;
643
- popoverTarget?: string | undefined | undefined;
644
- inert?: boolean | undefined | undefined;
645
- inputMode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search" | undefined | undefined;
646
- exportparts?: string | undefined | undefined;
647
600
  part?: string | undefined | undefined;
601
+ slot?: string | undefined | undefined;
602
+ style?: import("react").CSSProperties | undefined;
603
+ role?: import("react").AriaRole | undefined;
604
+ tabIndex?: number | undefined | undefined;
648
605
  "aria-activedescendant"?: string | undefined | undefined;
649
606
  "aria-atomic"?: (boolean | "true" | "false") | undefined;
650
607
  "aria-autocomplete"?: "none" | "inline" | "list" | "both" | undefined | undefined;
@@ -686,6 +643,7 @@ export declare const optionIcons: ({
686
643
  "aria-readonly"?: (boolean | "true" | "false") | undefined;
687
644
  "aria-relevant"?: "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text" | "text additions" | "text removals" | undefined | undefined;
688
645
  "aria-required"?: (boolean | "true" | "false") | undefined;
646
+ "aria-roledescription"?: string | undefined | undefined;
689
647
  "aria-rowcount"?: number | undefined | undefined;
690
648
  "aria-rowindex"?: number | undefined | undefined;
691
649
  "aria-rowindextext"?: string | undefined | undefined;
@@ -865,6 +823,48 @@ export declare const optionIcons: ({
865
823
  onTransitionRunCapture?: import("react").TransitionEventHandler<HTMLSpanElement> | undefined;
866
824
  onTransitionStart?: import("react").TransitionEventHandler<HTMLSpanElement> | undefined;
867
825
  onTransitionStartCapture?: import("react").TransitionEventHandler<HTMLSpanElement> | undefined;
826
+ title?: string | undefined | undefined;
827
+ content?: string | undefined | undefined;
828
+ translate?: "yes" | "no" | undefined | undefined;
829
+ hidden?: boolean | undefined | undefined;
830
+ defaultChecked?: boolean | undefined | undefined;
831
+ defaultValue?: string | number | readonly string[] | undefined;
832
+ suppressContentEditableWarning?: boolean | undefined | undefined;
833
+ accessKey?: string | undefined | undefined;
834
+ autoCapitalize?: "off" | "none" | "on" | "sentences" | "words" | "characters" | undefined | (string & {}) | undefined;
835
+ autoFocus?: boolean | undefined | undefined;
836
+ contentEditable?: "inherit" | (boolean | "true" | "false") | "plaintext-only" | undefined;
837
+ contextMenu?: string | undefined | undefined;
838
+ dir?: string | undefined | undefined;
839
+ draggable?: (boolean | "true" | "false") | undefined;
840
+ enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined | undefined;
841
+ spellCheck?: (boolean | "true" | "false") | undefined;
842
+ radioGroup?: string | undefined | undefined;
843
+ about?: string | undefined | undefined;
844
+ datatype?: string | undefined | undefined;
845
+ inlist?: any;
846
+ prefix?: string | undefined | undefined;
847
+ property?: string | undefined | undefined;
848
+ rel?: string | undefined | undefined;
849
+ rev?: string | undefined | undefined;
850
+ typeof?: string | undefined | undefined;
851
+ vocab?: string | undefined | undefined;
852
+ autoCorrect?: string | undefined | undefined;
853
+ autoSave?: string | undefined | undefined;
854
+ itemProp?: string | undefined | undefined;
855
+ itemScope?: boolean | undefined | undefined;
856
+ itemType?: string | undefined | undefined;
857
+ itemID?: string | undefined | undefined;
858
+ itemRef?: string | undefined | undefined;
859
+ results?: number | undefined | undefined;
860
+ security?: string | undefined | undefined;
861
+ unselectable?: "on" | "off" | undefined | undefined;
862
+ popover?: "" | "auto" | "manual" | "hint" | undefined | undefined;
863
+ popoverTargetAction?: "toggle" | "show" | "hide" | undefined | undefined;
864
+ popoverTarget?: string | undefined | undefined;
865
+ inert?: boolean | undefined | undefined;
866
+ inputMode?: "none" | "text" | "tel" | "url" | "email" | "numeric" | "decimal" | "search" | undefined | undefined;
867
+ exportparts?: string | undefined | undefined;
868
868
  }>;
869
869
  } | {
870
870
  value: null;
package/dist/index.js CHANGED
@@ -1067,9 +1067,10 @@ var Hn = (e) => {
1067
1067
  }), qn = (e) => {
1068
1068
  let [t, n] = $(!1), { headline: r, buttonText: i, notificationText: a, onDelete: o, open: s, onClose: c, children: l } = e;
1069
1069
  return /* @__PURE__ */ Z(G.Root, {
1070
+ size: "sm",
1070
1071
  open: s,
1071
1072
  onOpenChange: (e) => {
1072
- e.open || c();
1073
+ !e.open && !t && c();
1073
1074
  },
1074
1075
  closeOnInteractOutside: !1,
1075
1076
  children: /* @__PURE__ */ Q(Ne, { children: [/* @__PURE__ */ Z(G.Backdrop, {}), /* @__PURE__ */ Z(G.Positioner, { children: /* @__PURE__ */ Q(G.Content, { children: [
@@ -1078,7 +1079,10 @@ var Hn = (e) => {
1078
1079
  children: r
1079
1080
  }), /* @__PURE__ */ Z(G.CloseTrigger, {
1080
1081
  asChild: !0,
1081
- children: /* @__PURE__ */ Z(Ce, { size: "sm" })
1082
+ children: /* @__PURE__ */ Z(Ce, {
1083
+ size: "sm",
1084
+ disabled: t
1085
+ })
1082
1086
  })] }),
1083
1087
  /* @__PURE__ */ Z(G.Body, { children: /* @__PURE__ */ Q(Le, {
1084
1088
  gap: "3",
@@ -1089,6 +1093,7 @@ var Hn = (e) => {
1089
1093
  gap: "1",
1090
1094
  children: [/* @__PURE__ */ Z(be, {
1091
1095
  onClick: c,
1096
+ disabled: t,
1092
1097
  children: "Close"
1093
1098
  }), /* @__PURE__ */ Z(be, {
1094
1099
  loading: t,