@pstdio/ui 0.7.1 → 0.9.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 (85) hide show
  1. package/dist/{MermaidComponent-D7Baqkwx.js → MermaidComponent-Cz_Iob5U.js} +56 -53
  2. package/dist/MermaidComponent-Cz_Iob5U.js.map +1 -0
  3. package/dist/chat-ui.js +117 -117
  4. package/dist/chat-ui.js.map +1 -1
  5. package/dist/components/breadcrumb.d.ts +2 -0
  6. package/dist/components/chat-ui/tool-rendering/build-timeline.d.ts +2 -2
  7. package/dist/components/chat-ui/tool-rendering/shared.d.ts +1 -1
  8. package/dist/components/{tickets/ticket-board.d.ts → data-renderer/data-renderer-board.d.ts} +15 -14
  9. package/dist/components/data-renderer/data-renderer-card.d.ts +15 -0
  10. package/dist/components/data-renderer/data-renderer-grouping.d.ts +23 -0
  11. package/dist/components/data-renderer/data-renderer-helpers.d.ts +66 -0
  12. package/dist/components/data-renderer/data-renderer-list.d.ts +28 -0
  13. package/dist/components/data-renderer/data-renderer-toolbar.d.ts +12 -0
  14. package/dist/components/data-renderer/data-renderer.d.ts +29 -0
  15. package/dist/components/data-renderer/display-menu.d.ts +16 -0
  16. package/dist/components/data-renderer/filter-menu.d.ts +12 -0
  17. package/dist/components/data-renderer/types.d.ts +98 -0
  18. package/dist/components/data-renderer/use-data-renderer-store.d.ts +56 -0
  19. package/dist/components/data-renderer/use-resolved-attributes.d.ts +14 -0
  20. package/dist/components/diff-viewer/diff-card-body.d.ts +10 -0
  21. package/dist/components/diff-viewer/diff-card-content.d.ts +1 -0
  22. package/dist/components/diff-viewer/diff-card.d.ts +1 -0
  23. package/dist/components/diff-viewer/diff-size.d.ts +2 -0
  24. package/dist/components/icon-color-picker.d.ts +13 -0
  25. package/dist/components/list-row/list-row-content.d.ts +9 -0
  26. package/dist/components/list-row/list-row.types.d.ts +1 -0
  27. package/dist/components/resource-context-menu.d.ts +1 -1
  28. package/dist/components/rich-text/shared/lexical-code.d.ts +2 -0
  29. package/dist/components/rich-text/shared/plugins/CodePlugin/CodeBlockPlugin.d.ts +1 -1
  30. package/dist/components/rich-text/shared/prism-global.d.ts +2 -0
  31. package/dist/components/status-option-editor/index.d.ts +2 -0
  32. package/dist/components/status-option-editor/status-option-editor.d.ts +2 -0
  33. package/dist/components/status-option-editor/status-option-editor.types.d.ts +39 -0
  34. package/dist/components/status-option-editor/status-option-row.d.ts +16 -0
  35. package/dist/components/tab-strip/tab-visibility-filter.d.ts +19 -0
  36. package/dist/components/tab-strip/tab-visibility.store.d.ts +41 -0
  37. package/dist/components/tree-list/tree-list-model.d.ts +58 -0
  38. package/dist/components/tree-list/tree-list-node-row.d.ts +20 -0
  39. package/dist/components/tree-list/tree-list-order-filter.d.ts +3 -0
  40. package/dist/components/tree-list/tree-list-order.store.d.ts +42 -0
  41. package/dist/components/tree-list/tree-list-reorder.d.ts +13 -0
  42. package/dist/components/tree-list/tree-list-section-header.d.ts +14 -0
  43. package/dist/components/tree-list/tree-list-sortable.d.ts +22 -0
  44. package/dist/components/tree-list/tree-list-visibility-filter.d.ts +17 -0
  45. package/dist/components/tree-list/tree-list-visibility.store.d.ts +45 -0
  46. package/dist/components/tree-list/tree-list.d.ts +7 -27
  47. package/dist/components/tree-list/tree-list.types.d.ts +2 -0
  48. package/dist/components/tree-list/use-tree-list-keyboard-navigation.d.ts +15 -0
  49. package/dist/get-file-type-icon-ufFb0IkR.js +102 -0
  50. package/dist/get-file-type-icon-ufFb0IkR.js.map +1 -0
  51. package/dist/index.d.ts +32 -12
  52. package/dist/index.js +6470 -5163
  53. package/dist/index.js.map +1 -1
  54. package/dist/{rich-message-33DPxuWJ.js → rich-message-CEOSsdR2.js} +428 -421
  55. package/dist/rich-message-CEOSsdR2.js.map +1 -0
  56. package/dist/rich-text.js +26 -26
  57. package/dist/rich-text.js.map +1 -1
  58. package/dist/theme/custom/index.d.ts +0 -3
  59. package/dist/theme/index.d.ts +1 -1
  60. package/dist/theme/recipes/menu.d.ts +1 -1
  61. package/dist/theme/recipes/tabs.d.ts +30 -0
  62. package/dist/theme/tokens/colors.d.ts +6 -0
  63. package/dist/{theme-D-aCJqTf.js → theme-qP4YOZ2R.js} +197 -148
  64. package/dist/theme-qP4YOZ2R.js.map +1 -0
  65. package/dist/theme.js +2 -4
  66. package/dist/utils/browser-storage.d.ts +7 -0
  67. package/dist/utils/prism.d.ts +1 -0
  68. package/package.json +8 -3
  69. package/dist/MermaidComponent-D7Baqkwx.js.map +0 -1
  70. package/dist/components/tickets/display-menu.d.ts +0 -15
  71. package/dist/components/tickets/filter-menu.d.ts +0 -11
  72. package/dist/components/tickets/tag-badge.d.ts +0 -10
  73. package/dist/components/tickets/tag-option-icon.d.ts +0 -2
  74. package/dist/components/tickets/ticket-card.d.ts +0 -30
  75. package/dist/components/tickets/ticket-grouping.d.ts +0 -22
  76. package/dist/components/tickets/ticket-list.d.ts +0 -31
  77. package/dist/components/tickets/tickets-workspace.d.ts +0 -38
  78. package/dist/components/tickets/types.d.ts +0 -64
  79. package/dist/components/tickets/use-workspace-store.d.ts +0 -51
  80. package/dist/components/tickets/workspace-helpers.d.ts +0 -18
  81. package/dist/get-file-type-icon-Bwqf1WXA.js +0 -101
  82. package/dist/get-file-type-icon-Bwqf1WXA.js.map +0 -1
  83. package/dist/rich-message-33DPxuWJ.js.map +0 -1
  84. package/dist/theme/custom/monokai.json.d.ts +0 -80
  85. package/dist/theme-D-aCJqTf.js.map +0 -1
@@ -0,0 +1,16 @@
1
+ import { StatusOptionEditorAction, StatusOptionEditorItem } from './status-option-editor.types';
2
+ interface StatusOptionRowProps {
3
+ actionOptions?: StatusOptionEditorAction[];
4
+ item: StatusOptionEditorItem;
5
+ isSaving?: boolean;
6
+ showDefault?: boolean;
7
+ showIcons?: boolean;
8
+ onActionsChange: (actions: string[]) => void;
9
+ onColorChange: (color: string) => void;
10
+ onDelete: () => void;
11
+ onIconChange: (icon: string | null) => void;
12
+ onNameChange: (name: string) => void;
13
+ onSetDefault: () => void;
14
+ }
15
+ export declare const StatusOptionRow: (props: StatusOptionRowProps) => import("react/jsx-runtime").JSX.Element;
16
+ export {};
@@ -0,0 +1,19 @@
1
+ import { ReactNode } from 'react';
2
+ import { ResourceContextAction } from '../resource-context-menu';
3
+ import { VisibilityOverride } from '../tree-list/tree-list-visibility.store';
4
+ export interface TabVisibilityPlacement {
5
+ closable?: boolean;
6
+ hiddenByDefault?: boolean;
7
+ title?: string;
8
+ contributionId: string;
9
+ }
10
+ export declare const filterVisibleTabs: <T extends TabVisibilityPlacement>(placements: T[], tabOverrides: Record<string, VisibilityOverride>, getKey: (placement: T) => string) => T[];
11
+ export interface TabVisibilityMenuActions {
12
+ onToggleTab: (key: string, hiddenByDefault: boolean) => void;
13
+ onResetAll: () => void;
14
+ }
15
+ interface BuildTabMenuOptions {
16
+ checkmark: ReactNode;
17
+ }
18
+ export declare const buildTabVisibilityMenuActions: <T extends TabVisibilityPlacement>(placements: T[], tabOverrides: Record<string, VisibilityOverride>, actions: TabVisibilityMenuActions, getKey: (placement: T) => string, options: BuildTabMenuOptions) => ResourceContextAction[];
19
+ export {};
@@ -0,0 +1,41 @@
1
+ import { VisibilityOverride } from '../tree-list/tree-list-visibility.store';
2
+ interface TabVisibilitySnapshot {
3
+ tabOverrides: Record<string, VisibilityOverride>;
4
+ }
5
+ interface TabVisibilityState extends TabVisibilitySnapshot {
6
+ setTab: (key: string, value: VisibilityOverride | undefined) => void;
7
+ toggleTab: (key: string, hiddenByDefault: boolean) => void;
8
+ clearTab: (key: string) => void;
9
+ reset: () => void;
10
+ }
11
+ interface CreateTabVisibilityStoreOptions {
12
+ storageKey: string;
13
+ }
14
+ export declare const createTabVisibilityStore: (options: CreateTabVisibilityStoreOptions) => Omit<import('zustand').StoreApi<TabVisibilityState>, "setState" | "persist"> & {
15
+ setState(partial: TabVisibilityState | Partial<TabVisibilityState> | ((state: TabVisibilityState) => TabVisibilityState | Partial<TabVisibilityState>), replace?: false | undefined): unknown;
16
+ setState(state: TabVisibilityState | ((state: TabVisibilityState) => TabVisibilityState), replace: true): unknown;
17
+ persist: {
18
+ setOptions: (options: Partial<import('zustand/middleware').PersistOptions<TabVisibilityState, unknown, unknown>>) => void;
19
+ clearStorage: () => void;
20
+ rehydrate: () => Promise<void> | void;
21
+ hasHydrated: () => boolean;
22
+ onHydrate: (fn: (state: TabVisibilityState) => void) => () => void;
23
+ onFinishHydration: (fn: (state: TabVisibilityState) => void) => () => void;
24
+ getOptions: () => Partial<import('zustand/middleware').PersistOptions<TabVisibilityState, unknown, unknown>>;
25
+ };
26
+ };
27
+ export declare const getTabVisibilityStore: (storageKey: string) => Omit<import('zustand').StoreApi<TabVisibilityState>, "setState" | "persist"> & {
28
+ setState(partial: TabVisibilityState | Partial<TabVisibilityState> | ((state: TabVisibilityState) => TabVisibilityState | Partial<TabVisibilityState>), replace?: false | undefined): unknown;
29
+ setState(state: TabVisibilityState | ((state: TabVisibilityState) => TabVisibilityState), replace: true): unknown;
30
+ persist: {
31
+ setOptions: (options: Partial<import('zustand/middleware').PersistOptions<TabVisibilityState, unknown, unknown>>) => void;
32
+ clearStorage: () => void;
33
+ rehydrate: () => Promise<void> | void;
34
+ hasHydrated: () => boolean;
35
+ onHydrate: (fn: (state: TabVisibilityState) => void) => () => void;
36
+ onFinishHydration: (fn: (state: TabVisibilityState) => void) => () => void;
37
+ getOptions: () => Partial<import('zustand/middleware').PersistOptions<TabVisibilityState, unknown, unknown>>;
38
+ };
39
+ };
40
+ export declare const useTabVisibilityStore: <T>(storageKey: string, selector: (state: TabVisibilityState) => T) => T;
41
+ export type { TabVisibilitySnapshot, TabVisibilityState };
@@ -0,0 +1,58 @@
1
+ import { TreeListNode, TreeListSection } from './tree-list.types';
2
+ export declare const isInList: (id: string, values: string[]) => boolean;
3
+ export declare const isActiveNode: (id: string, activeNodeId?: string | string[] | null) => boolean;
4
+ export declare const isNavigableNode: (node: TreeListNode) => boolean;
5
+ export declare const getNodeChildren: (node: TreeListNode) => TreeListNode[];
6
+ export declare const hasExpandableChildren: (node: TreeListNode) => boolean;
7
+ export type VirtualRow = {
8
+ kind: "section-header";
9
+ key: string;
10
+ sectionId: string;
11
+ section: TreeListSection;
12
+ collapsible: boolean;
13
+ expanded: boolean;
14
+ } | {
15
+ kind: "node";
16
+ key: string;
17
+ sectionId: string;
18
+ node: TreeListNode;
19
+ level: number;
20
+ parentNodeId?: string;
21
+ } | {
22
+ kind: "section-empty";
23
+ key: string;
24
+ sectionId: string;
25
+ emptyState: TreeListSection["emptyState"];
26
+ };
27
+ export type VirtualNodeRow = Extract<VirtualRow, {
28
+ kind: "node";
29
+ }>;
30
+ export type VirtualSectionHeaderRow = Extract<VirtualRow, {
31
+ kind: "section-header";
32
+ }>;
33
+ /** Rows the keyboard can land on: enabled nodes and collapsible section headers. */
34
+ export type FocusableRow = VirtualNodeRow | VirtualSectionHeaderRow;
35
+ export declare const buildVirtualRows: (sections: TreeListSection[], expandedSectionIds: string[], expandedNodeIds: string[]) => VirtualRow[];
36
+ /** Stable id used to track keyboard focus across renders. */
37
+ export declare const getRowFocusId: (row: FocusableRow) => string;
38
+ export declare const isFocusableRow: (row: VirtualRow) => row is FocusableRow;
39
+ export declare const getFocusableRows: (rows: VirtualRow[]) => FocusableRow[];
40
+ export declare const resolveTreeListFocusRowId: (focusedRowId: string | undefined, activeNodeId: string | string[] | null | undefined, rows: VirtualRow[]) => string | undefined;
41
+ export declare const resolveTreeListKeyboardNavigation: (input: {
42
+ rows: VirtualRow[];
43
+ focusedRowId: string | undefined;
44
+ activeNodeId?: string | string[] | null;
45
+ expandedNodeIds: string[];
46
+ key: string;
47
+ }) => {
48
+ type: "toggle-section";
49
+ sectionId: string;
50
+ rowId?: undefined;
51
+ } | {
52
+ type: "toggle-node";
53
+ nodeId: string;
54
+ rowId?: undefined;
55
+ } | {
56
+ type: "focus";
57
+ rowId: string;
58
+ } | null;
@@ -0,0 +1,20 @@
1
+ import { StackProps } from '@chakra-ui/react';
2
+ import { FocusEventHandler } from 'react';
3
+ import { TreeListLinkComponent, TreeListNavigateEvent, TreeListNode } from './tree-list.types';
4
+ type TreeListRowVariant = "compact" | "tree";
5
+ interface TreeListNodeRowProps {
6
+ sectionId: string;
7
+ node: TreeListNode;
8
+ level: number;
9
+ expandedNodeIds: string[];
10
+ activeNodeId?: string | string[] | null;
11
+ rowVariant: TreeListRowVariant;
12
+ nodeGap: StackProps["gap"];
13
+ linkComponent?: TreeListLinkComponent;
14
+ tabIndex?: number;
15
+ onFocus?: FocusEventHandler<HTMLElement>;
16
+ onNavigate?: (event: TreeListNavigateEvent) => void;
17
+ onToggleNode?: (nodeId: string) => void;
18
+ }
19
+ export declare const TreeListNodeRow: (props: TreeListNodeRowProps) => import("react/jsx-runtime").JSX.Element;
20
+ export {};
@@ -0,0 +1,3 @@
1
+ import { TreeListNode, TreeListSection } from './tree-list.types';
2
+ export declare const applyTreeListOrder: (sections: TreeListSection[], sectionOrder: string[], nodeOrderBySection: Record<string, string[]>) => TreeListSection[];
3
+ export declare const reorderNodesById: (nodes: TreeListNode[], order: string[]) => TreeListNode[];
@@ -0,0 +1,42 @@
1
+ interface TreeListOrderSnapshot {
2
+ sectionOrder: string[];
3
+ nodeOrderBySection: Record<string, string[]>;
4
+ }
5
+ interface TreeListOrderState extends TreeListOrderSnapshot {
6
+ setSectionOrder: (nextSectionIds: string[]) => void;
7
+ setNodeOrder: (sectionId: string, nextNodeIds: string[]) => void;
8
+ resetSectionOrder: () => void;
9
+ resetNodeOrder: (sectionId: string) => void;
10
+ reset: () => void;
11
+ }
12
+ interface CreateTreeListOrderStoreOptions {
13
+ storageKey: string;
14
+ }
15
+ export declare const createTreeListOrderStore: (options: CreateTreeListOrderStoreOptions) => Omit<import('zustand').StoreApi<TreeListOrderState>, "setState" | "persist"> & {
16
+ setState(partial: TreeListOrderState | Partial<TreeListOrderState> | ((state: TreeListOrderState) => TreeListOrderState | Partial<TreeListOrderState>), replace?: false | undefined): unknown;
17
+ setState(state: TreeListOrderState | ((state: TreeListOrderState) => TreeListOrderState), replace: true): unknown;
18
+ persist: {
19
+ setOptions: (options: Partial<import('zustand/middleware').PersistOptions<TreeListOrderState, unknown, unknown>>) => void;
20
+ clearStorage: () => void;
21
+ rehydrate: () => Promise<void> | void;
22
+ hasHydrated: () => boolean;
23
+ onHydrate: (fn: (state: TreeListOrderState) => void) => () => void;
24
+ onFinishHydration: (fn: (state: TreeListOrderState) => void) => () => void;
25
+ getOptions: () => Partial<import('zustand/middleware').PersistOptions<TreeListOrderState, unknown, unknown>>;
26
+ };
27
+ };
28
+ export declare const getTreeListOrderStore: (storageKey: string) => Omit<import('zustand').StoreApi<TreeListOrderState>, "setState" | "persist"> & {
29
+ setState(partial: TreeListOrderState | Partial<TreeListOrderState> | ((state: TreeListOrderState) => TreeListOrderState | Partial<TreeListOrderState>), replace?: false | undefined): unknown;
30
+ setState(state: TreeListOrderState | ((state: TreeListOrderState) => TreeListOrderState), replace: true): unknown;
31
+ persist: {
32
+ setOptions: (options: Partial<import('zustand/middleware').PersistOptions<TreeListOrderState, unknown, unknown>>) => void;
33
+ clearStorage: () => void;
34
+ rehydrate: () => Promise<void> | void;
35
+ hasHydrated: () => boolean;
36
+ onHydrate: (fn: (state: TreeListOrderState) => void) => () => void;
37
+ onFinishHydration: (fn: (state: TreeListOrderState) => void) => () => void;
38
+ getOptions: () => Partial<import('zustand/middleware').PersistOptions<TreeListOrderState, unknown, unknown>>;
39
+ };
40
+ };
41
+ export declare const useTreeListOrderStore: <T>(storageKey: string, selector: (state: TreeListOrderState) => T) => T;
42
+ export type { TreeListOrderSnapshot, TreeListOrderState };
@@ -0,0 +1,13 @@
1
+ import { TreeListSection } from './tree-list.types';
2
+ export declare const toSectionDragId: (sectionId: string) => string;
3
+ export declare const isSectionDragId: (id: string) => boolean;
4
+ export declare const fromSectionDragId: (id: string) => string;
5
+ export type ReorderResult = {
6
+ kind: "section";
7
+ nextSectionIds: string[];
8
+ } | {
9
+ kind: "node";
10
+ sectionId: string;
11
+ nextNodeIds: string[];
12
+ };
13
+ export declare const computeReorderResult: (sections: TreeListSection[], activeId: string, overId: string) => ReorderResult | null;
@@ -0,0 +1,14 @@
1
+ import { FocusEventHandler, MouseEvent as ReactMouseEvent } from 'react';
2
+ import { TreeListSection } from './tree-list.types';
3
+ interface TreeListSectionHeaderProps {
4
+ section: TreeListSection;
5
+ collapsible: boolean;
6
+ expanded: boolean;
7
+ focusId: string;
8
+ tabIndex: number;
9
+ onFocus: FocusEventHandler<HTMLElement>;
10
+ onToggle: () => void;
11
+ onContextMenu?: (event: ReactMouseEvent<HTMLElement>, sectionId: string) => void;
12
+ }
13
+ export declare const TreeListSectionHeader: (props: TreeListSectionHeaderProps) => import("react/jsx-runtime").JSX.Element;
14
+ export {};
@@ -0,0 +1,22 @@
1
+ import { StackProps } from '@chakra-ui/react';
2
+ import { MouseEvent as ReactMouseEvent } from 'react';
3
+ import { TreeListLinkComponent, TreeListNavigateEvent, TreeListSection } from './tree-list.types';
4
+ type TreeListRowVariant = "compact" | "tree";
5
+ interface TreeListSortableProps {
6
+ sections: TreeListSection[];
7
+ expandedSectionIds?: string[];
8
+ expandedNodeIds?: string[];
9
+ activeNodeId?: string | string[] | null;
10
+ rowVariant?: TreeListRowVariant;
11
+ sectionGap?: StackProps["gap"];
12
+ nodeGap?: StackProps["gap"];
13
+ linkComponent?: TreeListLinkComponent;
14
+ onNavigate?: (event: TreeListNavigateEvent) => void;
15
+ onToggleSection?: (sectionId: string) => void;
16
+ onToggleNode?: (nodeId: string) => void;
17
+ onSectionContextMenu?: (event: ReactMouseEvent<HTMLElement>, sectionId: string) => void;
18
+ onReorderSections?: (nextSectionIds: string[]) => void;
19
+ onReorderNodes?: (sectionId: string, nextNodeIds: string[]) => void;
20
+ }
21
+ export declare const TreeListSortable: (props: TreeListSortableProps) => import("react/jsx-runtime").JSX.Element;
22
+ export {};
@@ -0,0 +1,17 @@
1
+ import { ReactNode } from 'react';
2
+ import { ResourceContextAction } from '../resource-context-menu';
3
+ import { TreeListSection } from './tree-list.types';
4
+ import { VisibilityOverride } from './tree-list-visibility.store';
5
+ export declare const resolveVisibility: (override: VisibilityOverride | undefined, hiddenByDefault: boolean | undefined) => VisibilityOverride;
6
+ export declare const filterVisibleSections: (sections: TreeListSection[], sectionOverrides: Record<string, VisibilityOverride>, nodeOverrides: Record<string, VisibilityOverride>) => TreeListSection[];
7
+ export interface TreeVisibilityMenuActions {
8
+ onToggleSection: (id: string, hiddenByDefault: boolean) => void;
9
+ onToggleNode: (id: string, hiddenByDefault: boolean) => void;
10
+ onResetAll: () => void;
11
+ onResetOrder?: () => void;
12
+ }
13
+ interface BuildMenuOptions {
14
+ checkmark: ReactNode;
15
+ }
16
+ export declare const buildTreeVisibilityMenuActions: (sections: TreeListSection[], sectionOverrides: Record<string, VisibilityOverride>, nodeOverrides: Record<string, VisibilityOverride>, actions: TreeVisibilityMenuActions, options: BuildMenuOptions) => ResourceContextAction[];
17
+ export {};
@@ -0,0 +1,45 @@
1
+ export type VisibilityOverride = "hidden" | "shown";
2
+ interface TreeListVisibilitySnapshot {
3
+ sectionOverrides: Record<string, VisibilityOverride>;
4
+ nodeOverrides: Record<string, VisibilityOverride>;
5
+ }
6
+ interface TreeListVisibilityState extends TreeListVisibilitySnapshot {
7
+ setSection: (id: string, value: VisibilityOverride | undefined) => void;
8
+ setNode: (id: string, value: VisibilityOverride | undefined) => void;
9
+ toggleSection: (id: string, hiddenByDefault: boolean) => void;
10
+ toggleNode: (id: string, hiddenByDefault: boolean) => void;
11
+ clearSection: (id: string) => void;
12
+ clearNode: (id: string) => void;
13
+ reset: () => void;
14
+ }
15
+ interface CreateTreeListVisibilityStoreOptions {
16
+ storageKey: string;
17
+ }
18
+ export declare const createTreeListVisibilityStore: (options: CreateTreeListVisibilityStoreOptions) => Omit<import('zustand').StoreApi<TreeListVisibilityState>, "setState" | "persist"> & {
19
+ setState(partial: TreeListVisibilityState | Partial<TreeListVisibilityState> | ((state: TreeListVisibilityState) => TreeListVisibilityState | Partial<TreeListVisibilityState>), replace?: false | undefined): unknown;
20
+ setState(state: TreeListVisibilityState | ((state: TreeListVisibilityState) => TreeListVisibilityState), replace: true): unknown;
21
+ persist: {
22
+ setOptions: (options: Partial<import('zustand/middleware').PersistOptions<TreeListVisibilityState, unknown, unknown>>) => void;
23
+ clearStorage: () => void;
24
+ rehydrate: () => Promise<void> | void;
25
+ hasHydrated: () => boolean;
26
+ onHydrate: (fn: (state: TreeListVisibilityState) => void) => () => void;
27
+ onFinishHydration: (fn: (state: TreeListVisibilityState) => void) => () => void;
28
+ getOptions: () => Partial<import('zustand/middleware').PersistOptions<TreeListVisibilityState, unknown, unknown>>;
29
+ };
30
+ };
31
+ export declare const getTreeListVisibilityStore: (storageKey: string) => Omit<import('zustand').StoreApi<TreeListVisibilityState>, "setState" | "persist"> & {
32
+ setState(partial: TreeListVisibilityState | Partial<TreeListVisibilityState> | ((state: TreeListVisibilityState) => TreeListVisibilityState | Partial<TreeListVisibilityState>), replace?: false | undefined): unknown;
33
+ setState(state: TreeListVisibilityState | ((state: TreeListVisibilityState) => TreeListVisibilityState), replace: true): unknown;
34
+ persist: {
35
+ setOptions: (options: Partial<import('zustand/middleware').PersistOptions<TreeListVisibilityState, unknown, unknown>>) => void;
36
+ clearStorage: () => void;
37
+ rehydrate: () => Promise<void> | void;
38
+ hasHydrated: () => boolean;
39
+ onHydrate: (fn: (state: TreeListVisibilityState) => void) => () => void;
40
+ onFinishHydration: (fn: (state: TreeListVisibilityState) => void) => () => void;
41
+ getOptions: () => Partial<import('zustand/middleware').PersistOptions<TreeListVisibilityState, unknown, unknown>>;
42
+ };
43
+ };
44
+ export declare const useTreeListVisibilityStore: <T>(storageKey: string, selector: (state: TreeListVisibilityState) => T) => T;
45
+ export type { TreeListVisibilitySnapshot, TreeListVisibilityState };
@@ -1,6 +1,7 @@
1
1
  import { StackProps } from '@chakra-ui/react';
2
- import { RefObject } from 'react';
3
- import { TreeListLinkComponent, TreeListNavigateEvent, TreeListNode, TreeListSection } from './tree-list.types';
2
+ import { MouseEvent as ReactMouseEvent, RefObject } from 'react';
3
+ import { TreeListLinkComponent, TreeListNavigateEvent, TreeListSection } from './tree-list.types';
4
+ export { buildVirtualRows } from './tree-list-model';
4
5
  type TreeListRowVariant = "compact" | "tree";
5
6
  interface TreeListProps {
6
7
  sections: TreeListSection[];
@@ -14,32 +15,11 @@ interface TreeListProps {
14
15
  onNavigate?: (event: TreeListNavigateEvent) => void;
15
16
  onToggleSection?: (sectionId: string) => void;
16
17
  onToggleNode?: (nodeId: string) => void;
17
- /**
18
- * When set, the tree's rows are virtualized via @tanstack/react-virtual.
19
- * Requires `scrollRef` to point at the ancestor scroll viewport.
20
- */
18
+ onSectionContextMenu?: (event: ReactMouseEvent<HTMLElement>, sectionId: string) => void;
21
19
  virtualize?: boolean;
22
20
  scrollRef?: RefObject<HTMLDivElement | null>;
21
+ draggable?: boolean;
22
+ onReorderSections?: (nextSectionIds: string[]) => void;
23
+ onReorderNodes?: (sectionId: string, nextNodeIds: string[]) => void;
23
24
  }
24
- export type VirtualRow = {
25
- kind: "section-header";
26
- key: string;
27
- sectionId: string;
28
- section: TreeListSection;
29
- collapsible: boolean;
30
- expanded: boolean;
31
- } | {
32
- kind: "node";
33
- key: string;
34
- sectionId: string;
35
- node: TreeListNode;
36
- level: number;
37
- } | {
38
- kind: "section-empty";
39
- key: string;
40
- sectionId: string;
41
- emptyState: TreeListSection["emptyState"];
42
- };
43
- export declare const buildVirtualRows: (sections: TreeListSection[], expandedSectionIds: string[], expandedNodeIds: string[]) => VirtualRow[];
44
25
  export declare const TreeList: (props: TreeListProps) => import("react/jsx-runtime").JSX.Element;
45
- export {};
@@ -7,6 +7,7 @@ export type TreeListAction = ListRowAction;
7
7
  export type TreeListNode = ListRowItem & {
8
8
  id: string;
9
9
  children?: TreeListNode[];
10
+ hiddenByDefault?: boolean;
10
11
  };
11
12
  export interface TreeListSection {
12
13
  id: string;
@@ -15,6 +16,7 @@ export interface TreeListSection {
15
16
  actions?: TreeListAction[];
16
17
  emptyState?: ReactNode;
17
18
  nodes: TreeListNode[];
19
+ hiddenByDefault?: boolean;
18
20
  }
19
21
  export interface TreeListNavigateEvent {
20
22
  sectionId: string;
@@ -0,0 +1,15 @@
1
+ import { KeyboardEvent } from 'react';
2
+ import { VirtualRow } from './tree-list-model';
3
+ export declare const useTreeListKeyboardNavigation: (input: {
4
+ rows: VirtualRow[];
5
+ activeNodeId?: string | string[] | null;
6
+ expandedNodeIds: string[];
7
+ onToggleNode?: (nodeId: string) => void;
8
+ onToggleSection?: (sectionId: string) => void;
9
+ scrollToRow?: (index: number) => void;
10
+ }) => {
11
+ focusRowId: string | undefined;
12
+ rootRef: import('react').RefObject<HTMLDivElement | null>;
13
+ handleKeyDown: (event: KeyboardEvent<HTMLElement>) => void;
14
+ onRowFocus: (rowId: string) => void;
15
+ };
@@ -0,0 +1,102 @@
1
+ import { jsx as g, jsxs as $ } from "react/jsx-runtime";
2
+ import { c as q } from "react/compiler-runtime";
3
+ import { Tooltip as F, Portal as D, ScrollArea as R } from "@chakra-ui/react";
4
+ import * as V from "react";
5
+ import { FileSpreadsheet as E, FileCode as H, FileChartLine as I, FileJson as L, FileText as _, FileCog as k, FileImage as J, FileArchive as W, File as B } from "lucide-react";
6
+ const U = V.forwardRef(function(t, v) {
7
+ const e = q(26);
8
+ let l, r, i, d, s, a, f, u;
9
+ e[0] !== t ? ({
10
+ showArrow: f,
11
+ children: l,
12
+ disabled: d,
13
+ portalled: u,
14
+ content: r,
15
+ contentProps: i,
16
+ portalRef: s,
17
+ ...a
18
+ } = t, e[0] = t, e[1] = l, e[2] = r, e[3] = i, e[4] = d, e[5] = s, e[6] = a, e[7] = f, e[8] = u) : (l = e[1], r = e[2], i = e[3], d = e[4], s = e[5], a = e[6], f = e[7], u = e[8]);
19
+ const x = u === void 0 ? !0 : u;
20
+ if (d || K(r))
21
+ return l;
22
+ let n;
23
+ e[9] !== l ? (n = /* @__PURE__ */ g(F.Trigger, { asChild: !0, children: l }), e[9] = l, e[10] = n) : n = e[10];
24
+ const h = !x;
25
+ let p;
26
+ e[11] !== f ? (p = f && /* @__PURE__ */ g(F.Arrow, { children: /* @__PURE__ */ g(F.ArrowTip, {}) }), e[11] = f, e[12] = p) : p = e[12];
27
+ let o;
28
+ e[13] !== r || e[14] !== i || e[15] !== v || e[16] !== p ? (o = /* @__PURE__ */ g(F.Positioner, { children: /* @__PURE__ */ $(F.Content, { ref: v, ...i, children: [
29
+ p,
30
+ r
31
+ ] }) }), e[13] = r, e[14] = i, e[15] = v, e[16] = p, e[17] = o) : o = e[17];
32
+ let m;
33
+ e[18] !== s || e[19] !== h || e[20] !== o ? (m = /* @__PURE__ */ g(D, { disabled: h, container: s, children: o }), e[18] = s, e[19] = h, e[20] = o, e[21] = m) : m = e[21];
34
+ let w;
35
+ return e[22] !== a || e[23] !== n || e[24] !== m ? (w = /* @__PURE__ */ $(F.Root, { openDelay: 100, closeDelay: 100, ...a, children: [
36
+ n,
37
+ m
38
+ ] }), e[22] = a, e[23] = n, e[24] = m, e[25] = w) : w = e[25], w;
39
+ });
40
+ function G(c) {
41
+ return typeof c == "string" ? c.trim().length === 0 : !1;
42
+ }
43
+ function K(c) {
44
+ if (c == null || c === !1)
45
+ return !0;
46
+ const t = V.Children.toArray(c);
47
+ return t.length === 0 ? !0 : t.every(G);
48
+ }
49
+ const X = V.forwardRef(function(t, v) {
50
+ const e = q(40);
51
+ let l, r, i, d, s, a, f, u, x, b, n, h;
52
+ e[0] !== t ? ({
53
+ children: l,
54
+ viewportRef: h,
55
+ contentRef: i,
56
+ viewportProps: n,
57
+ contentProps: r,
58
+ verticalScrollbarProps: b,
59
+ horizontalScrollbarProps: d,
60
+ showVerticalScrollbar: a,
61
+ showHorizontalScrollbar: f,
62
+ showCorner: u,
63
+ size: x,
64
+ ...s
65
+ } = t, e[0] = t, e[1] = l, e[2] = r, e[3] = i, e[4] = d, e[5] = s, e[6] = a, e[7] = f, e[8] = u, e[9] = x, e[10] = b, e[11] = n, e[12] = h) : (l = e[1], r = e[2], i = e[3], d = e[4], s = e[5], a = e[6], f = e[7], u = e[8], x = e[9], b = e[10], n = e[11], h = e[12]);
66
+ const p = a === void 0 ? !0 : a, o = f === void 0 ? !1 : f, m = u === void 0 ? p && o : u, w = x === void 0 ? "xs" : x;
67
+ let A;
68
+ e[13] !== r || e[14] !== o ? (A = o ? r : {
69
+ ...r,
70
+ style: {
71
+ minWidth: 0,
72
+ ...r?.style
73
+ }
74
+ }, e[13] = r, e[14] = o, e[15] = A) : A = e[15];
75
+ const P = A;
76
+ let C;
77
+ e[16] !== l || e[17] !== i || e[18] !== P ? (C = /* @__PURE__ */ g(R.Content, { ...P, ref: i, children: l }), e[16] = l, e[17] = i, e[18] = P, e[19] = C) : C = e[19];
78
+ let S;
79
+ e[20] !== C || e[21] !== n || e[22] !== h ? (S = /* @__PURE__ */ g(R.Viewport, { ...n, ref: h, children: C }), e[20] = C, e[21] = n, e[22] = h, e[23] = S) : S = e[23];
80
+ let y;
81
+ e[24] !== p || e[25] !== b ? (y = p ? /* @__PURE__ */ g(R.Scrollbar, { ...b, borderRadius: "xs" }) : null, e[24] = p, e[25] = b, e[26] = y) : y = e[26];
82
+ let j;
83
+ e[27] !== d || e[28] !== o ? (j = o ? /* @__PURE__ */ g(R.Scrollbar, { orientation: "horizontal", ...d, borderRadius: "xs" }) : null, e[27] = d, e[28] = o, e[29] = j) : j = e[29];
84
+ let z;
85
+ e[30] !== m ? (z = m ? /* @__PURE__ */ g(R.Corner, {}) : null, e[30] = m, e[31] = z) : z = e[31];
86
+ let T;
87
+ return e[32] !== v || e[33] !== s || e[34] !== w || e[35] !== S || e[36] !== y || e[37] !== j || e[38] !== z ? (T = /* @__PURE__ */ $(R.Root, { ref: v, size: w, ...s, children: [
88
+ S,
89
+ y,
90
+ j,
91
+ z
92
+ ] }), e[32] = v, e[33] = s, e[34] = w, e[35] = S, e[36] = y, e[37] = j, e[38] = z, e[39] = T) : T = e[39], T;
93
+ }), Y = (c) => {
94
+ const t = c.split(".").pop()?.toLowerCase() ?? "";
95
+ return ["csv", "tsv", "xlsx", "xls", "parquet"].includes(t) ? E : ["sql", "py", "js", "ts", "jsx", "tsx", "java", "cpp", "c", "h", "css", "scss", "sass", "php", "rb", "go", "rs", "kt", "swift"].includes(t) ? H : ["json", "jsonl", "ndjson"].includes(t) ? c.includes("/visualizations/") ? I : L : ["md", "txt", "rst", "org", "pdf", "doc", "docx", "rtf"].includes(t) ? _ : ["yaml", "yml", "toml", "ini", "conf", "config"].includes(t) ? k : ["png", "jpg", "jpeg", "gif", "svg", "webp", "ico"].includes(t) ? J : ["zip", "tar", "gz", "rar", "7z"].includes(t) ? W : B;
96
+ };
97
+ export {
98
+ X as S,
99
+ U as T,
100
+ Y as g
101
+ };
102
+ //# sourceMappingURL=get-file-type-icon-ufFb0IkR.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-file-type-icon-ufFb0IkR.js","sources":["../src/components/tooltip.tsx","../src/components/scroll-area.tsx","../src/utils/get-file-type-icon.ts"],"sourcesContent":["import { Tooltip as ChakraTooltip, Portal } from \"@chakra-ui/react\";\nimport * as React from \"react\";\n\nexport interface TooltipProps extends ChakraTooltip.RootProps {\n children?: React.ReactElement;\n showArrow?: boolean;\n portalled?: boolean;\n portalRef?: React.RefObject<HTMLElement>;\n content: React.ReactNode;\n contentProps?: ChakraTooltip.ContentProps;\n disabled?: boolean;\n}\n\nexport const Tooltip = React.forwardRef<HTMLDivElement, TooltipProps>(function Tooltip(props, ref) {\n const { showArrow, children, disabled, portalled = true, content, contentProps, portalRef, ...rest } = props;\n\n const isEmptyContent = (node: React.ReactNode): boolean => {\n if (node === null || node === undefined || node === false) return true;\n const arr = React.Children.toArray(node);\n if (arr.length === 0) return true;\n return arr.every((child) => (typeof child === \"string\" ? child.trim().length === 0 : false));\n };\n\n if (disabled || isEmptyContent(content)) return children;\n\n return (\n <ChakraTooltip.Root openDelay={100} closeDelay={100} {...rest}>\n <ChakraTooltip.Trigger asChild>{children}</ChakraTooltip.Trigger>\n <Portal disabled={!portalled} container={portalRef}>\n <ChakraTooltip.Positioner>\n <ChakraTooltip.Content ref={ref} {...contentProps}>\n {showArrow && (\n <ChakraTooltip.Arrow>\n <ChakraTooltip.ArrowTip />\n </ChakraTooltip.Arrow>\n )}\n {content}\n </ChakraTooltip.Content>\n </ChakraTooltip.Positioner>\n </Portal>\n </ChakraTooltip.Root>\n );\n});\n","import { ScrollArea as ChakraScrollArea } from \"@chakra-ui/react\";\nimport * as React from \"react\";\n\ntype VerticalScrollbarProps = Omit<ChakraScrollArea.ScrollbarProps, \"orientation\">;\ntype HorizontalScrollbarProps = Omit<ChakraScrollArea.ScrollbarProps, \"orientation\">;\n\nexport interface ScrollAreaProps extends ChakraScrollArea.RootProps {\n viewportRef?: React.Ref<HTMLDivElement>;\n contentRef?: React.Ref<HTMLDivElement>;\n viewportProps?: ChakraScrollArea.ViewportProps;\n contentProps?: ChakraScrollArea.ContentProps;\n verticalScrollbarProps?: VerticalScrollbarProps;\n horizontalScrollbarProps?: HorizontalScrollbarProps;\n showVerticalScrollbar?: boolean;\n showHorizontalScrollbar?: boolean;\n showCorner?: boolean;\n}\n\nexport const ScrollArea = React.forwardRef<HTMLDivElement, ScrollAreaProps>(function ScrollArea(props, ref) {\n const {\n children,\n viewportRef,\n contentRef,\n viewportProps,\n contentProps,\n verticalScrollbarProps,\n horizontalScrollbarProps,\n showVerticalScrollbar = true,\n showHorizontalScrollbar = false,\n showCorner = showVerticalScrollbar && showHorizontalScrollbar,\n size = \"xs\",\n ...rest\n } = props;\n\n const mergedContentProps = showHorizontalScrollbar\n ? contentProps\n : { ...contentProps, style: { minWidth: 0, ...contentProps?.style } };\n\n return (\n <ChakraScrollArea.Root ref={ref} size={size} {...rest}>\n <ChakraScrollArea.Viewport {...viewportProps} ref={viewportRef}>\n <ChakraScrollArea.Content {...mergedContentProps} ref={contentRef}>\n {children}\n </ChakraScrollArea.Content>\n </ChakraScrollArea.Viewport>\n {showVerticalScrollbar ? <ChakraScrollArea.Scrollbar {...verticalScrollbarProps} borderRadius={\"xs\"} /> : null}\n {showHorizontalScrollbar ? (\n <ChakraScrollArea.Scrollbar orientation=\"horizontal\" {...horizontalScrollbarProps} borderRadius={\"xs\"} />\n ) : null}\n {showCorner ? <ChakraScrollArea.Corner /> : null}\n </ChakraScrollArea.Root>\n );\n});\n","import type { LucideIcon } from \"lucide-react\";\nimport {\n File,\n FileArchive,\n FileChartLine,\n FileCode,\n FileCog,\n FileImage,\n FileJson,\n FileSpreadsheet,\n FileText,\n} from \"lucide-react\";\n\nexport const getFileTypeIcon = (filename: string): LucideIcon => {\n const extension = filename.split(\".\").pop()?.toLowerCase() ?? \"\";\n\n if ([\"csv\", \"tsv\", \"xlsx\", \"xls\", \"parquet\"].includes(extension)) return FileSpreadsheet;\n if (\n [\n \"sql\",\n \"py\",\n \"js\",\n \"ts\",\n \"jsx\",\n \"tsx\",\n \"java\",\n \"cpp\",\n \"c\",\n \"h\",\n \"css\",\n \"scss\",\n \"sass\",\n \"php\",\n \"rb\",\n \"go\",\n \"rs\",\n \"kt\",\n \"swift\",\n ].includes(extension)\n ) {\n return FileCode;\n }\n if ([\"json\", \"jsonl\", \"ndjson\"].includes(extension)) {\n if (filename.includes(\"/visualizations/\")) return FileChartLine;\n return FileJson;\n }\n if ([\"md\", \"txt\", \"rst\", \"org\", \"pdf\", \"doc\", \"docx\", \"rtf\"].includes(extension)) return FileText;\n if ([\"yaml\", \"yml\", \"toml\", \"ini\", \"conf\", \"config\"].includes(extension)) return FileCog;\n if ([\"png\", \"jpg\", \"jpeg\", \"gif\", \"svg\", \"webp\", \"ico\"].includes(extension)) return FileImage;\n if ([\"zip\", \"tar\", \"gz\", \"rar\", \"7z\"].includes(extension)) return FileArchive;\n return File;\n};\n"],"names":["Tooltip","React","forwardRef","props","ref","$","_c","children","content","contentProps","disabled","portalRef","rest","showArrow","t0","portalled","undefined","_temp2","t1","ChakraTooltip","t2","t3","jsx","t4","jsxs","t5","Portal","t6","_temp","child","trim","length","node","arr","Children","toArray","every","ScrollArea","contentRef","horizontalScrollbarProps","verticalScrollbarProps","viewportProps","viewportRef","showVerticalScrollbar","showHorizontalScrollbar","showCorner","size","style","minWidth","mergedContentProps","ChakraScrollArea","t7","t8","t9","t10","getFileTypeIcon","filename","extension","split","pop","toLowerCase","includes","FileSpreadsheet","FileCode","FileChartLine","FileJson","FileText","FileCog","FileImage","FileArchive","File"],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -12,6 +12,24 @@ export type { CheckboxProps } from './components/checkbox';
12
12
  export { Checkbox } from './components/checkbox';
13
13
  export { CodeDiffEditor, CodeEditor } from './components/code-editor';
14
14
  export { ContentPlaceholder, Label as ContentPlaceholderLabel, } from './components/content-placeholder';
15
+ export type { BoardColumnConfig, DataRendererProps } from './components/data-renderer/data-renderer';
16
+ export { DataRenderer } from './components/data-renderer/data-renderer';
17
+ export type { DataRendererBoardColumn, DataRendererBoardColumnAction, DataRendererBoardItem, } from './components/data-renderer/data-renderer-board';
18
+ export { DataRendererBoard } from './components/data-renderer/data-renderer-board';
19
+ export type { DataRendererCardProps } from './components/data-renderer/data-renderer-card';
20
+ export { DataRendererCard } from './components/data-renderer/data-renderer-card';
21
+ export type { AttributeBadge, FilterCategoryView, MenuOption } from './components/data-renderer/data-renderer-helpers';
22
+ export { buildDisplayPropertyOptions, buildFilterCategories, buildGroupingOptions, buildOrderingOptions, collectDisplayBadges, getAttributeStringValues, getAttributeValue, getEnumOptions, renderAttributeBadge, sanitizeFilters, sanitizeSettings, } from './components/data-renderer/data-renderer-helpers';
23
+ export type { DataRendererListItem } from './components/data-renderer/data-renderer-list';
24
+ export { DataRendererList } from './components/data-renderer/data-renderer-list';
25
+ export type { DataRendererToolbarProps } from './components/data-renderer/data-renderer-toolbar';
26
+ export { DataRendererToolbar } from './components/data-renderer/data-renderer-toolbar';
27
+ export { DisplayMenu } from './components/data-renderer/display-menu';
28
+ export { FilterMenu } from './components/data-renderer/filter-menu';
29
+ export type { AttributeDescriptor, AttributeKind, AttributesSource, AttributeType, DataRendererFilterState, DataRendererOrdering, DataRendererRow, DataRendererSettings, EnumOption, EnumOptions, EnumOptionsSource, SortDirection, ViewMode, } from './components/data-renderer/types';
30
+ export { findAttribute, isAttributesSource, isEnumOptionsSource, MANUAL_ORDERING, NO_GROUPING, } from './components/data-renderer/types';
31
+ export { useDataRendererStore } from './components/data-renderer/use-data-renderer-store';
32
+ export { resolveAttributeOptions, useResolvedAttributes } from './components/data-renderer/use-resolved-attributes';
15
33
  export { DeleteConfirmationModal } from './components/delete-confirmation-modal';
16
34
  export type { ChangedFilesViewMode, Diff, DiffViewerProps, DiffViewMode, FileIconInfo } from './components/diff-viewer';
17
35
  export { DiffDrawer, DiffViewer, useDiffViewerStore } from './components/diff-viewer';
@@ -22,6 +40,8 @@ export { ErrorBoundary } from './components/error-boundary';
22
40
  export type { HeaderProps, HeaderVariant } from './components/header';
23
41
  export { Header } from './components/header';
24
42
  export { HorizontalMenuStack } from './components/horizontal-menu-stack';
43
+ export type { IconColorPickerProps } from './components/icon-color-picker';
44
+ export { getIconComponent, IconColorPicker, optionColors } from './components/icon-color-picker';
25
45
  export type { IntegrationCardProps } from './components/integration-card';
26
46
  export { IntegrationCard } from './components/integration-card';
27
47
  export type { ItemSectionProps } from './components/item-section';
@@ -55,27 +75,27 @@ export type { SidebarProps } from './components/sidebar/sidebar.types';
55
75
  export { SidebarProjectMenu } from './components/sidebar/sidebar-project-menu';
56
76
  export type { SimpleCardBodyProps, SimpleCardProps } from './components/simple-card';
57
77
  export { SimpleCard, SimpleCardBody } from './components/simple-card';
78
+ export type { StatusOptionEditorItem, StatusOptionEditorProps } from './components/status-option-editor';
79
+ export { StatusOptionEditor } from './components/status-option-editor';
58
80
  export type { SwitchProps } from './components/switch';
59
81
  export { Switch } from './components/switch';
60
- export { DisplayMenu } from './components/tickets/display-menu';
61
- export { FilterMenu } from './components/tickets/filter-menu';
62
- export type { TicketBoardColumn, TicketBoardColumnAction, TicketBoardItem, } from './components/tickets/ticket-board';
63
- export { TicketBoard } from './components/tickets/ticket-board';
64
- export type { TicketCardBadge, TicketCardTagBadge } from './components/tickets/ticket-card';
65
- export { TicketCard } from './components/tickets/ticket-card';
66
- export type { TicketListItem } from './components/tickets/ticket-list';
67
- export { TicketList } from './components/tickets/ticket-list';
68
- export { TicketsWorkspace } from './components/tickets/tickets-workspace';
69
- export type { DisplayProperty, FilterCategory, FilterState, GroupingField, OrderingField, SortDirection, ViewMode, WorkspaceFilterCategory, WorkspaceFilterOption, WorkspaceOption, WorkspaceOrdering, WorkspaceSettings, WorkspaceTag, WorkspaceTagDefinition, WorkspaceTagOption, WorkspaceTicket, } from './components/tickets/types';
70
- export { useTicketsWorkspaceStore } from './components/tickets/use-workspace-store';
82
+ export { getTabVisibilityStore, useTabVisibilityStore, } from './components/tab-strip/tab-visibility.store';
83
+ export type { TabVisibilityPlacement } from './components/tab-strip/tab-visibility-filter';
84
+ export { buildTabVisibilityMenuActions, filterVisibleTabs, } from './components/tab-strip/tab-visibility-filter';
71
85
  export { Toaster, toaster } from './components/toaster';
72
86
  export { Tooltip } from './components/tooltip';
73
87
  export { TreeList } from './components/tree-list/tree-list';
74
88
  export type { TreeListAction, TreeListActionContext, TreeListActionMenuItem, TreeListLinkComponent, TreeListNavigateEvent, TreeListNavigationIntent, TreeListNode, TreeListSection, } from './components/tree-list/tree-list.types';
89
+ export { getTreeListOrderStore, useTreeListOrderStore, } from './components/tree-list/tree-list-order.store';
90
+ export { applyTreeListOrder } from './components/tree-list/tree-list-order-filter';
91
+ export type { VisibilityOverride } from './components/tree-list/tree-list-visibility.store';
92
+ export { getTreeListVisibilityStore, useTreeListVisibilityStore, } from './components/tree-list/tree-list-visibility.store';
93
+ export { buildTreeVisibilityMenuActions, filterVisibleSections, resolveVisibility, } from './components/tree-list/tree-list-visibility-filter';
75
94
  export type { WorkspaceBadgeProps } from './components/workspace-badge';
76
95
  export { WorkspaceBadge } from './components/workspace-badge';
77
96
  export type { MonacoThemeData, VsCodeColorTheme } from './theme';
78
- export { createMonacoThemeFromVsCodeTheme, createThemePreferenceFromVsCodeTheme, customThemePreferences, monokaiThemePreference, psTheme, } from './theme';
97
+ export { createMonacoThemeFromVsCodeTheme, createThemePreferenceFromVsCodeTheme, psTheme, } from './theme';
79
98
  export { applyThemePreference, defaultThemePreferences, getThemePreferenceClassName, getThemePreferenceClassNames, getThemePreferenceMode, isThemePreference, type ThemePreference, type ThemePreferenceMode, type ThemePreferenceOption, type ThemePreferenceTokens, } from './utils/apply-theme-preference';
80
99
  export { getFileTypeIcon } from './utils/get-file-type-icon';
100
+ export { installPrismGlobal } from './utils/prism';
81
101
  export { getInitialThemePreference, ThemePreferenceProvider, useThemePreference, } from './utils/theme-preference';