@stll/workspace-ui 0.10.2 → 0.10.3

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,18 +1,18 @@
1
1
  import { CalculationResult } from "@stll/calculations";
2
2
  import { CentsAmount } from "@stll/money";
3
3
  //#region src/calculation-format.d.ts
4
- type CalculationFormatters = {
4
+ export type CalculationFormatters = {
5
5
  number: (value: number) => string;
6
6
  money: (amountCents: CentsAmount, currency: string) => string;
7
7
  percent: (ratio: number) => string;
8
8
  };
9
- type CalculationLabels = {
9
+ export type CalculationLabels = {
10
10
  /** The reduction's short name, e.g. "Sum". */
11
11
  kind: string;
12
12
  /** Stands in for a value the reduction cannot produce. */
13
13
  unavailable: string;
14
14
  };
15
- type FormattedCalculation = {
15
+ export type FormattedCalculation = {
16
16
  /** One compact line, for the column header. */
17
17
  summary: string;
18
18
  /**
@@ -21,11 +21,10 @@ type FormattedCalculation = {
21
21
  */
22
22
  breakdown: readonly string[];
23
23
  };
24
- type FormatCalculationParams = {
24
+ export type FormatCalculationParams = {
25
25
  result: CalculationResult;
26
26
  formatters: CalculationFormatters;
27
27
  labels: CalculationLabels;
28
28
  };
29
- declare const formatCalculationResult: ({ result, formatters, labels }: FormatCalculationParams) => FormattedCalculation;
30
- //#endregion
31
- export { CalculationFormatters, CalculationLabels, FormatCalculationParams, FormattedCalculation, formatCalculationResult };
29
+ export declare const formatCalculationResult: ({ result, formatters, labels }: FormatCalculationParams) => FormattedCalculation;
30
+ //#endregion
@@ -1,15 +1,14 @@
1
1
  import { CalculationKind } from "@stll/calculations";
2
2
  //#region src/calculation-selection.d.ts
3
- type CalculationSelection = {
3
+ export type CalculationSelection = {
4
4
  propertyId: string;
5
5
  kind: CalculationKind;
6
6
  };
7
- type ApplyCalculationSelectionParams = {
7
+ export type ApplyCalculationSelectionParams = {
8
8
  selections: readonly CalculationSelection[];
9
9
  propertyId: string;
10
10
  /** The reduction to show, or null to stop showing one. */
11
11
  kind: CalculationKind | null;
12
12
  };
13
- declare const applyCalculationSelection: ({ selections, propertyId, kind }: ApplyCalculationSelectionParams) => CalculationSelection[];
14
- //#endregion
15
- export { ApplyCalculationSelectionParams, CalculationSelection, applyCalculationSelection };
13
+ export declare const applyCalculationSelection: ({ selections, propertyId, kind }: ApplyCalculationSelectionParams) => CalculationSelection[];
14
+ //#endregion
@@ -4,19 +4,19 @@ import { CalculationKind, CalculationResult, CalculationValue } from "@stll/calc
4
4
  import { ReactNode } from "react";
5
5
  //#region src/calculations.d.ts
6
6
  /** A property a view can calculate over, with the reductions its values allow. */
7
- type CalculationProperty = {
7
+ export type CalculationProperty = {
8
8
  id: string;
9
9
  name: string;
10
10
  kinds: readonly CalculationKind[];
11
11
  };
12
- type WorkspaceCalculationLabels = {
12
+ export type WorkspaceCalculationLabels = {
13
13
  choose: string;
14
14
  kinds: Record<CalculationKind, string>;
15
15
  noProperties: string;
16
16
  none: string;
17
17
  unavailable: string;
18
18
  };
19
- type CalculationPickerProps = {
19
+ export type CalculationPickerProps = {
20
20
  labels: WorkspaceCalculationLabels;
21
21
  properties: readonly CalculationProperty[];
22
22
  selections: readonly CalculationSelection[];
@@ -28,8 +28,8 @@ type CalculationPickerProps = {
28
28
  * Choose what a view calculates: a property, then a reduction. Every step is a
29
29
  * menu item, so the whole choice is reachable from the keyboard.
30
30
  */
31
- declare const CalculationPicker: ({ labels, properties, selections, onChange, children }: CalculationPickerProps) => import("react").JSX.Element | null;
32
- type CalculationKindPickerProps = {
31
+ export declare const CalculationPicker: ({ labels, properties, selections, onChange, children }: CalculationPickerProps) => import("react").JSX.Element | null;
32
+ export type CalculationKindPickerProps = {
33
33
  labels: WorkspaceCalculationLabels;
34
34
  /** Reductions this column's values allow. */
35
35
  kinds: readonly CalculationKind[];
@@ -43,16 +43,16 @@ type CalculationKindPickerProps = {
43
43
  * Choose one column's reduction. The board picks a property first (it shows one
44
44
  * line for the whole board); a table column already is the property.
45
45
  */
46
- declare const CalculationKindPicker: ({ labels, kinds, value, onChange, children }: CalculationKindPickerProps) => import("react").JSX.Element | null;
47
- type CalculationSummaryProps = {
46
+ export declare const CalculationKindPicker: ({ labels, kinds, value, onChange, children }: CalculationKindPickerProps) => import("react").JSX.Element | null;
47
+ export type CalculationSummaryProps = {
48
48
  calculation: FormattedCalculation;
49
49
  };
50
50
  /**
51
51
  * The calculation as one compact line. When it reduces to several currencies
52
52
  * the line stays short and the full set sits behind a tooltip.
53
53
  */
54
- declare const CalculationSummary: ({ calculation }: CalculationSummaryProps) => import("react").JSX.Element;
55
- type UseCalculationParams = {
54
+ export declare const CalculationSummary: ({ calculation }: CalculationSummaryProps) => import("react").JSX.Element;
55
+ export type UseCalculationParams = {
56
56
  kind: CalculationKind;
57
57
  labels: WorkspaceCalculationLabels;
58
58
  values: readonly CalculationValue[];
@@ -60,8 +60,8 @@ type UseCalculationParams = {
60
60
  scopeValues?: readonly CalculationValue[] | undefined;
61
61
  };
62
62
  /** Reduce a column's values and format the answer for the reader's locale. */
63
- declare const useCalculation: ({ kind, labels, values, scopeValues }: UseCalculationParams) => FormattedCalculation;
63
+ export declare const useCalculation: ({ kind, labels, values, scopeValues }: UseCalculationParams) => FormattedCalculation;
64
64
  /** One configured calculation, reduced over a column and rendered compactly. */
65
- declare const ColumnCalculation: (params: UseCalculationParams) => import("react").JSX.Element;
65
+ export declare const ColumnCalculation: (params: UseCalculationParams) => import("react").JSX.Element;
66
66
  //#endregion
67
- export { CalculationKindPicker, CalculationKindPickerProps, CalculationPicker, CalculationPickerProps, CalculationProperty, type CalculationResult, type CalculationSelection, CalculationSummary, CalculationSummaryProps, ColumnCalculation, UseCalculationParams, WorkspaceCalculationLabels, useCalculation };
67
+ export type { CalculationResult, CalculationSelection };
@@ -7,7 +7,7 @@ import { ConditionNode, GroupNode } from "@stll/conditions";
7
7
  * brings its own catalogue, and an exported module that reached into one would
8
8
  * only work inside the app whose messages it happened to know.
9
9
  */
10
- type ConditionBuilderLabels = {
10
+ export type ConditionBuilderLabels = {
11
11
  /** "+ Add condition". */
12
12
  addCondition: string;
13
13
  /** "+ Add group". */
@@ -37,7 +37,7 @@ type ConditionBuilderLabels = {
37
37
  * both the View filter surface and the template rule surface. The host owns
38
38
  * the field list and (optionally) the value editors; the builder owns the
39
39
  * tree shape, the gutter, nesting, and the formula escape hatch. */
40
- type ConditionCapabilities = {
40
+ export type ConditionCapabilities = {
41
41
  /** Operands the picker may target (property / builtin / kind / path). */
42
42
  fields: FieldOption[];
43
43
  /** Allow nested groups (the "+ Add group" affordance + bordered subgroups). */
@@ -75,7 +75,7 @@ type ConditionCapabilities = {
75
75
  * request to go back to an ordinary field. Rebuilding the leaf stays here,
76
76
  * because that is AST work.
77
77
  */
78
- type FormulaCellRenderCtx = {
78
+ export type FormulaCellRenderCtx = {
79
79
  expr: string;
80
80
  numberFields: readonly {
81
81
  path: string;
@@ -84,7 +84,7 @@ type FormulaCellRenderCtx = {
84
84
  onChangeExpr: (expr: string) => void;
85
85
  onUseField: () => void;
86
86
  };
87
- type ValueEditorRenderCtx = {
87
+ export type ValueEditorRenderCtx = {
88
88
  editorKind: ValueEditorKind;
89
89
  field: FieldOption;
90
90
  node: ConditionNode;
@@ -99,6 +99,5 @@ type ConditionBuilderProps = {
99
99
  /** Formatting locale for the date editor. */
100
100
  locale: string;
101
101
  };
102
- declare const ConditionBuilder: ({ value, onChange, capabilities, labels, locale }: ConditionBuilderProps) => import("react").JSX.Element;
103
- //#endregion
104
- export { ConditionBuilder, ConditionBuilderLabels, ConditionCapabilities, FormulaCellRenderCtx, ValueEditorRenderCtx };
102
+ export declare const ConditionBuilder: ({ value, onChange, capabilities, labels, locale }: ConditionBuilderProps) => import("react").JSX.Element;
103
+ //#endregion
@@ -7,13 +7,13 @@ import { ConditionNode, GroupNode, RefOperand } from "@stll/conditions";
7
7
  * the value editor; `options` supplies the choices for any select-like
8
8
  * value type.
9
9
  */
10
- type FieldValueType = "text" | "single-select" | "multi-select" | "date" | "int" | "money" | "person" | "kind" | "status" | "priority";
11
- type FieldOptionChoice = {
10
+ export type FieldValueType = "text" | "single-select" | "multi-select" | "date" | "int" | "money" | "person" | "kind" | "status" | "priority";
11
+ export type FieldOptionChoice = {
12
12
  value: string;
13
13
  label: string;
14
14
  color?: string;
15
15
  };
16
- type FieldOption = {
16
+ export type FieldOption = {
17
17
  operand: RefOperand;
18
18
  label: string;
19
19
  valueType: FieldValueType;
@@ -27,25 +27,25 @@ type FieldOption = {
27
27
  * to `predicate` nodes. `operatorKind` is the single place that
28
28
  * decides which AST node each operator builds.
29
29
  */
30
- declare const CONDITION_OPERATORS: readonly ["eq", "neq", "contains", "not_contains", "starts_with", "ends_with", "contains_all", "in", "gt", "lt", "gte", "lte", "is_empty", "is_not_empty"];
31
- type ConditionOperator = (typeof CONDITION_OPERATORS)[number];
32
- declare const isConditionOperator: (value: string) => value is ConditionOperator;
33
- declare const operatorsFor: (valueType: FieldValueType) => readonly ConditionOperator[];
30
+ export declare const CONDITION_OPERATORS: readonly ["eq", "neq", "contains", "not_contains", "starts_with", "ends_with", "contains_all", "in", "gt", "lt", "gte", "lte", "is_empty", "is_not_empty"];
31
+ export type ConditionOperator = (typeof CONDITION_OPERATORS)[number];
32
+ export declare const isConditionOperator: (value: string) => value is ConditionOperator;
33
+ export declare const operatorsFor: (valueType: FieldValueType) => readonly ConditionOperator[];
34
34
  /** How a value type renders its value editor. */
35
- type ValueEditorKind = "none" | "text" | "int" | "date" | "select";
36
- declare const valueEditorFor: (valueType: FieldValueType, operator: ConditionOperator) => ValueEditorKind;
35
+ export type ValueEditorKind = "none" | "text" | "int" | "date" | "select";
36
+ export declare const valueEditorFor: (valueType: FieldValueType, operator: ConditionOperator) => ValueEditorKind;
37
37
  /** Whether the value editor accepts multiple selections. */
38
- declare const isMultiValue: (operator: ConditionOperator) => boolean;
38
+ export declare const isMultiValue: (operator: ConditionOperator) => boolean;
39
39
  /** Compares two ref operands for the field-matching needed by the row. */
40
- declare const operandsEqual: (a: RefOperand, b: RefOperand) => boolean;
40
+ export declare const operandsEqual: (a: RefOperand, b: RefOperand) => boolean;
41
41
  /** Reads the ref operand a leaf node filters on, or null for a group. */
42
- declare const leafOperand: (node: ConditionNode) => RefOperand | null;
42
+ export declare const leafOperand: (node: ConditionNode) => RefOperand | null;
43
43
  /** Reads the surface operator a leaf node represents. */
44
- declare const leafOperator: (node: ConditionNode) => ConditionOperator | null;
44
+ export declare const leafOperator: (node: ConditionNode) => ConditionOperator | null;
45
45
  /** Reads a leaf's value as a string (scalar editors). */
46
- declare const leafValueString: (node: ConditionNode) => string;
46
+ export declare const leafValueString: (node: ConditionNode) => string;
47
47
  /** Reads a leaf's value as a string list (multi editors). */
48
- declare const leafValueList: (node: ConditionNode) => string[];
48
+ export declare const leafValueList: (node: ConditionNode) => string[];
49
49
  type BuildLeafArgs = {
50
50
  operand: RefOperand;
51
51
  operator: ConditionOperator;
@@ -56,15 +56,14 @@ type BuildLeafArgs = {
56
56
  * produce a literal right operand; predicate operators carry their
57
57
  * payload (or none, for `is_empty`).
58
58
  */
59
- declare const buildLeaf: ({ operand, operator, value }: BuildLeafArgs) => ConditionNode;
59
+ export declare const buildLeaf: ({ operand, operator, value }: BuildLeafArgs) => ConditionNode;
60
60
  /** A fresh leaf for a newly added row, with the field's first operator. */
61
- declare const leafFromField: (field: FieldOption) => ConditionNode;
61
+ export declare const leafFromField: (field: FieldOption) => ConditionNode;
62
62
  /** Finds the field a leaf node targets, or null when none matches. */
63
- declare const fieldForNode: (node: ConditionNode, fields: FieldOption[]) => FieldOption | null;
63
+ export declare const fieldForNode: (node: ConditionNode, fields: FieldOption[]) => FieldOption | null;
64
64
  /** Normalizes the controlled `value` prop into a concrete group root. */
65
- declare const asGroup: (value: ConditionNode | null) => GroupNode;
66
- declare const replaceChild: (group: GroupNode, index: number, child: ConditionNode) => GroupNode;
67
- declare const removeChild: (group: GroupNode, index: number) => GroupNode;
68
- declare const appendChild: (group: GroupNode, child: ConditionNode) => GroupNode;
69
- //#endregion
70
- export { CONDITION_OPERATORS, ConditionOperator, FieldOption, FieldOptionChoice, FieldValueType, ValueEditorKind, appendChild, asGroup, buildLeaf, fieldForNode, isConditionOperator, isMultiValue, leafFromField, leafOperand, leafOperator, leafValueList, leafValueString, operandsEqual, operatorsFor, removeChild, replaceChild, valueEditorFor };
65
+ export declare const asGroup: (value: ConditionNode | null) => GroupNode;
66
+ export declare const replaceChild: (group: GroupNode, index: number, child: ConditionNode) => GroupNode;
67
+ export declare const removeChild: (group: GroupNode, index: number) => GroupNode;
68
+ export declare const appendChild: (group: GroupNode, child: ConditionNode) => GroupNode;
69
+ //#endregion
@@ -1,7 +1,6 @@
1
1
  //#region src/field-value-logic.d.ts
2
- declare const getClipFieldValueLabel: ({ citation, url }: {
2
+ export declare const getClipFieldValueLabel: ({ citation, url }: {
3
3
  citation: string | null | undefined;
4
4
  url: string;
5
5
  }) => string;
6
- //#endregion
7
- export { getClipFieldValueLabel };
6
+ //#endregion
@@ -7,24 +7,23 @@ type FieldValueProps = {
7
7
  pendingPreview?: string | null | undefined;
8
8
  variant?: FieldValueVariant;
9
9
  };
10
- declare const FieldValue: ({ content, property, pendingPreview, variant }: FieldValueProps) => import("react").JSX.Element | null;
11
- declare const IntFieldValue: ({ content, variant }: {
10
+ export declare const FieldValue: ({ content, property, pendingPreview, variant }: FieldValueProps) => import("react").JSX.Element | null;
11
+ export declare const IntFieldValue: ({ content, variant }: {
12
12
  content: Extract<WorkspaceFieldContent, {
13
13
  type: "int";
14
14
  }>;
15
15
  variant?: FieldValueVariant;
16
16
  }) => import("react").JSX.Element;
17
- declare const MoneyFieldValue: ({ content, variant }: {
17
+ export declare const MoneyFieldValue: ({ content, variant }: {
18
18
  content: Extract<WorkspaceFieldContent, {
19
19
  type: "money";
20
20
  }>;
21
21
  variant?: FieldValueVariant;
22
22
  }) => import("react").JSX.Element;
23
- declare const PersonFieldValue: ({ content, variant }: {
23
+ export declare const PersonFieldValue: ({ content, variant }: {
24
24
  content: Extract<WorkspaceFieldContent, {
25
25
  type: "person";
26
26
  }>;
27
27
  variant?: FieldValueVariant;
28
28
  }) => import("react").JSX.Element;
29
- //#endregion
30
- export { FieldValue, IntFieldValue, MoneyFieldValue, PersonFieldValue };
29
+ //#endregion
@@ -1,7 +1,7 @@
1
1
  import { emptyColor, resolveOptionColor } from "./colors.js";
2
2
  import { getClipFieldValueLabel } from "./field-value-logic.js";
3
3
  import { Result } from "better-result";
4
- import { Loader2Icon, SquareMinusIcon } from "lucide-react";
4
+ import { SquareMinusIcon } from "lucide-react";
5
5
  import { useFormatter, useLocale, useTranslations } from "use-intl";
6
6
  import { formatMoneyCents } from "@stll/money";
7
7
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -143,18 +143,22 @@ const PendingFieldValue = ({ contentType, preview, variant }) => {
143
143
  const trimmedPreview = preview?.trim();
144
144
  const hasPreview = trimmedPreview !== void 0 && trimmedPreview.length > 0;
145
145
  if (variant === "kanban") return null;
146
- if (variant === "table") return /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Loader2Icon, {
147
- "aria-hidden": "true",
148
- className: "text-muted-foreground absolute end-1 top-1 z-20 size-3 shrink-0 animate-spin",
149
- strokeWidth: 2.25
150
- }), hasPreview ? /* @__PURE__ */ jsx(BidiText, {
151
- as: "div",
152
- className: "line-clamp-2 min-w-0",
153
- children: trimmedPreview
154
- }) : /* @__PURE__ */ jsx(PendingSkeleton, { contentType })] });
155
- return /* @__PURE__ */ jsxs("span", {
156
- className: "text-muted-foreground flex items-center gap-1.5 text-sm",
157
- children: [t("workspaces.fields.calculating"), /* @__PURE__ */ jsx("span", { className: "bg-muted-foreground size-2 animate-pulse rounded-full" })]
146
+ if (variant === "table") return /* @__PURE__ */ jsx("div", {
147
+ "aria-busy": "true",
148
+ "aria-label": t("workspaces.fields.calculating"),
149
+ className: "flex min-w-0 flex-col gap-1",
150
+ role: "status",
151
+ children: hasPreview ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(BidiText, {
152
+ as: "span",
153
+ className: "line-clamp-2 min-w-0",
154
+ children: trimmedPreview
155
+ }), /* @__PURE__ */ jsx(Skeleton, { className: "h-2.5 w-2/5" })] }) : /* @__PURE__ */ jsx(PendingSkeleton, { contentType })
156
+ });
157
+ return /* @__PURE__ */ jsx("span", {
158
+ "aria-busy": "true",
159
+ className: "text-muted-foreground text-sm",
160
+ role: "status",
161
+ children: t("workspaces.fields.calculating")
158
162
  });
159
163
  };
160
164
  const ErrorFieldValue = ({ variant }) => {
@@ -4,6 +4,5 @@ import { WorkspaceKanbanGroupingPickerProps, WorkspaceKanbanProperty } from "./k
4
4
  * Accessible picker shared by the board's Group and Sub-group controls. The
5
5
  * caller labels built-ins because only its domain owns their human names.
6
6
  */
7
- declare const WorkspaceKanbanGroupingPicker: <TRow, TProperty extends WorkspaceKanbanProperty<TGroupId>, TGroupId extends string = string>({ allowNone, excludedGroupBy, getBuiltInGroupLabel, labels, onValueChange, schema, value }: WorkspaceKanbanGroupingPickerProps<TRow, TProperty, TGroupId>) => import("react").JSX.Element;
8
- //#endregion
9
- export { WorkspaceKanbanGroupingPicker };
7
+ export declare const WorkspaceKanbanGroupingPicker: <TRow, TProperty extends WorkspaceKanbanProperty<TGroupId>, TGroupId extends string = string>({ allowNone, excludedGroupBy, getBuiltInGroupLabel, labels, onValueChange, schema, value }: WorkspaceKanbanGroupingPickerProps<TRow, TProperty, TGroupId>) => import("react").JSX.Element;
8
+ //#endregion
@@ -1,19 +1,19 @@
1
1
  import { GenericProperty } from "./types.js";
2
2
  import { KanbanBoardCell, KanbanBoardColumn, KanbanBoardLane, KanbanBoardMatrix, KanbanBuiltInGroup, KanbanColumnBandSpan, KanbanGrouping, KanbanSchema } from "@stll/ui/kanban";
3
3
  //#region src/kanban-view.d.ts
4
- declare const KANBAN_EMPTY_GROUP_VISIBILITIES: {
4
+ export declare const KANBAN_EMPTY_GROUP_VISIBILITIES: {
5
5
  readonly hide: "hide";
6
6
  readonly show: "show";
7
7
  };
8
- type KanbanEmptyGroupVisibility = (typeof KANBAN_EMPTY_GROUP_VISIBILITIES)[keyof typeof KANBAN_EMPTY_GROUP_VISIBILITIES];
8
+ export type KanbanEmptyGroupVisibility = (typeof KANBAN_EMPTY_GROUP_VISIBILITIES)[keyof typeof KANBAN_EMPTY_GROUP_VISIBILITIES];
9
9
  /** A persisted reference keeps a real option distinct from the No value lane. */
10
- type KanbanSavedGroupReference = {
10
+ export type KanbanSavedGroupReference = {
11
11
  type: "option";
12
12
  value: string;
13
13
  } | {
14
14
  type: "uncategorized";
15
15
  };
16
- type KanbanSavedAxisState<TGroupId extends string = string> = {
16
+ export type KanbanSavedAxisState<TGroupId extends string = string> = {
17
17
  emptyGroups: KanbanEmptyGroupVisibility;
18
18
  groupBy: TGroupId;
19
19
  hiddenGroups: readonly KanbanSavedGroupReference[];
@@ -24,14 +24,14 @@ type KanbanSavedAxisState<TGroupId extends string = string> = {
24
24
  * addressed by id, not by option reference: a band is metadata over several
25
25
  * options, not an option itself.
26
26
  */
27
- type KanbanSavedGroupAxisState<TGroupId extends string = string> = KanbanSavedAxisState<TGroupId> & {
27
+ export type KanbanSavedGroupAxisState<TGroupId extends string = string> = KanbanSavedAxisState<TGroupId> & {
28
28
  collapsedBands: readonly string[];
29
29
  };
30
- type KanbanSavedSubgroupState<TGroupId extends string = string> = KanbanSavedAxisState<TGroupId> & {
30
+ export type KanbanSavedSubgroupState<TGroupId extends string = string> = KanbanSavedAxisState<TGroupId> & {
31
31
  collapsedGroups: readonly KanbanSavedGroupReference[];
32
32
  };
33
33
  /** The shape persisted before column bands existed. */
34
- type KanbanSavedViewStateV1<TGroupId extends string = string> = {
34
+ export type KanbanSavedViewStateV1<TGroupId extends string = string> = {
35
35
  group: KanbanSavedAxisState<TGroupId>;
36
36
  subgroup: KanbanSavedSubgroupState<TGroupId> | null;
37
37
  version: 1;
@@ -40,24 +40,24 @@ type KanbanSavedViewStateV1<TGroupId extends string = string> = {
40
40
  * View state is deliberately separate from the board's domain data. It may
41
41
  * change visibility, order, and collapse, but cannot change a card's cell.
42
42
  */
43
- type KanbanSavedViewState<TGroupId extends string = string> = {
43
+ export type KanbanSavedViewState<TGroupId extends string = string> = {
44
44
  group: KanbanSavedGroupAxisState<TGroupId>;
45
45
  subgroup: KanbanSavedSubgroupState<TGroupId> | null;
46
46
  version: 2;
47
47
  };
48
- declare const KANBAN_SAVED_VIEW_STATE_VERSION = 2;
48
+ export declare const KANBAN_SAVED_VIEW_STATE_VERSION = 2;
49
49
  /**
50
50
  * Lift a persisted view state to the current shape. Version 1 predates column
51
51
  * bands, so it lifts with no band folded; the current shape passes through.
52
52
  * Every reader of persisted state goes through here, so a version bump is
53
53
  * one branch in this function rather than a check at each consumer.
54
54
  */
55
- declare const normalizeKanbanSavedViewState: <TGroupId extends string = string>(state: KanbanSavedViewStateV1<TGroupId> | KanbanSavedViewState<TGroupId>) => KanbanSavedViewState<TGroupId>;
56
- type WorkspaceKanbanProperty<TGroupId extends string = string> = GenericProperty & {
55
+ export declare const normalizeKanbanSavedViewState: <TGroupId extends string = string>(state: KanbanSavedViewStateV1<TGroupId> | KanbanSavedViewState<TGroupId>) => KanbanSavedViewState<TGroupId>;
56
+ export type WorkspaceKanbanProperty<TGroupId extends string = string> = GenericProperty & {
57
57
  id: TGroupId;
58
58
  name: string;
59
59
  };
60
- type CreateWorkspaceKanbanSchemaParams<TRow, TBuiltInGroupId extends string, TProperty extends WorkspaceKanbanProperty> = {
60
+ export type CreateWorkspaceKanbanSchemaParams<TRow, TBuiltInGroupId extends string, TProperty extends WorkspaceKanbanProperty> = {
61
61
  builtInGroups: readonly KanbanBuiltInGroup<TRow, TBuiltInGroupId>[];
62
62
  properties: readonly TProperty[];
63
63
  };
@@ -66,24 +66,24 @@ type WorkspaceKanbanSchemaGroupId<TBuiltInGroupId extends string, TProperty exte
66
66
  * Turns the authoritative workspace property model into board declarations.
67
67
  * Select options remain the sole source of property-derived columns and lanes.
68
68
  */
69
- declare const createWorkspaceKanbanSchema: <TRow, TBuiltInGroupId extends string, TProperty extends WorkspaceKanbanProperty>({ builtInGroups, properties }: CreateWorkspaceKanbanSchemaParams<TRow, TBuiltInGroupId, TProperty>) => KanbanSchema<TRow, TProperty, WorkspaceKanbanSchemaGroupId<TBuiltInGroupId, TProperty>>;
70
- type WorkspaceKanbanGroupingChoice<TGroupId extends string = string> = {
69
+ export declare const createWorkspaceKanbanSchema: <TRow, TBuiltInGroupId extends string, TProperty extends WorkspaceKanbanProperty>({ builtInGroups, properties }: CreateWorkspaceKanbanSchemaParams<TRow, TBuiltInGroupId, TProperty>) => KanbanSchema<TRow, TProperty, WorkspaceKanbanSchemaGroupId<TBuiltInGroupId, TProperty>>;
70
+ export type WorkspaceKanbanGroupingChoice<TGroupId extends string = string> = {
71
71
  id: TGroupId;
72
72
  label: string;
73
73
  type: "built-in" | "property";
74
74
  };
75
- type WorkspaceKanbanBuiltInGroupLabel<TRow, TGroupId extends string = string> = (group: KanbanBuiltInGroup<TRow, TGroupId>) => string;
75
+ export type WorkspaceKanbanBuiltInGroupLabel<TRow, TGroupId extends string = string> = (group: KanbanBuiltInGroup<TRow, TGroupId>) => string;
76
76
  /** Property-aware data for a Group or Sub-group picker. */
77
- declare const getWorkspaceKanbanGroupingChoices: <TRow, TProperty extends WorkspaceKanbanProperty<TGroupId>, TGroupId extends string = string>({ getBuiltInGroupLabel, schema }: {
77
+ export declare const getWorkspaceKanbanGroupingChoices: <TRow, TProperty extends WorkspaceKanbanProperty<TGroupId>, TGroupId extends string = string>({ getBuiltInGroupLabel, schema }: {
78
78
  getBuiltInGroupLabel: WorkspaceKanbanBuiltInGroupLabel<TRow, TGroupId>;
79
79
  schema: KanbanSchema<TRow, TProperty, TGroupId>;
80
80
  }) => WorkspaceKanbanGroupingChoice<TGroupId>[];
81
- type WorkspaceKanbanGroupingPickerLabels = {
81
+ export type WorkspaceKanbanGroupingPickerLabels = {
82
82
  control: string;
83
83
  none: string;
84
84
  placeholder: string;
85
85
  };
86
- type WorkspaceKanbanGroupingPickerProps<TRow, TProperty extends WorkspaceKanbanProperty<TGroupId>, TGroupId extends string = string> = {
86
+ export type WorkspaceKanbanGroupingPickerProps<TRow, TProperty extends WorkspaceKanbanProperty<TGroupId>, TGroupId extends string = string> = {
87
87
  allowNone: boolean;
88
88
  excludedGroupBy?: TGroupId | undefined;
89
89
  getBuiltInGroupLabel: WorkspaceKanbanBuiltInGroupLabel<TRow, TGroupId>;
@@ -92,11 +92,11 @@ type WorkspaceKanbanGroupingPickerProps<TRow, TProperty extends WorkspaceKanbanP
92
92
  schema: KanbanSchema<TRow, TProperty, TGroupId>;
93
93
  value: TGroupId | "";
94
94
  };
95
- type ResolveWorkspaceKanbanViewParams<TRow, TProperty, TGroupId extends string = string> = {
95
+ export type ResolveWorkspaceKanbanViewParams<TRow, TProperty, TGroupId extends string = string> = {
96
96
  schema: KanbanSchema<TRow, TProperty, TGroupId>;
97
97
  state: KanbanSavedViewState<TGroupId>;
98
98
  };
99
- type ResolvedWorkspaceKanbanView<TRow, TProperty, TGroupId extends string = string> = {
99
+ export type ResolvedWorkspaceKanbanView<TRow, TProperty, TGroupId extends string = string> = {
100
100
  group: KanbanGrouping<TRow, TProperty, TGroupId>;
101
101
  subgroup: KanbanGrouping<TRow, TProperty, TGroupId>;
102
102
  };
@@ -104,17 +104,17 @@ type ResolvedWorkspaceKanbanView<TRow, TProperty, TGroupId extends string = stri
104
104
  * A property cannot control both axes. Rejecting that configuration here means
105
105
  * a later diagonal drag never has two contradictory assignments for one field.
106
106
  */
107
- declare const resolveWorkspaceKanbanView: <TRow, TProperty, TGroupId extends string = string>({ schema, state }: ResolveWorkspaceKanbanViewParams<TRow, TProperty, TGroupId>) => ResolvedWorkspaceKanbanView<TRow, TProperty, TGroupId>;
108
- type KanbanPresentedLane<TRow> = {
107
+ export declare const resolveWorkspaceKanbanView: <TRow, TProperty, TGroupId extends string = string>({ schema, state }: ResolveWorkspaceKanbanViewParams<TRow, TProperty, TGroupId>) => ResolvedWorkspaceKanbanView<TRow, TProperty, TGroupId>;
108
+ export type KanbanPresentedLane<TRow> = {
109
109
  cells: KanbanBoardCell<TRow>[];
110
110
  collapsed: boolean;
111
111
  lane: KanbanBoardLane;
112
112
  };
113
113
  /** A run of presented columns under one band header, folded or open. */
114
- type KanbanPresentedBand = KanbanColumnBandSpan & {
114
+ export type KanbanPresentedBand = KanbanColumnBandSpan & {
115
115
  collapsed: boolean;
116
116
  };
117
- type KanbanBoardPresentation<TRow> = {
117
+ export type KanbanBoardPresentation<TRow> = {
118
118
  /** The presented columns, span by span, with the view's fold applied. */
119
119
  bands: KanbanPresentedBand[];
120
120
  columns: KanbanBoardColumn[];
@@ -126,9 +126,8 @@ type KanbanBoardPresentation<TRow> = {
126
126
  * the canonical placement invariant while letting a view hide empty groups,
127
127
  * individually hide groups, reorder them, and collapse swimlanes.
128
128
  */
129
- declare const presentKanbanBoard: <TRow>({ matrix, state }: {
129
+ export declare const presentKanbanBoard: <TRow>({ matrix, state }: {
130
130
  matrix: KanbanBoardMatrix<TRow>;
131
131
  state: KanbanSavedViewState;
132
132
  }) => KanbanBoardPresentation<TRow>;
133
- //#endregion
134
- export { CreateWorkspaceKanbanSchemaParams, KANBAN_EMPTY_GROUP_VISIBILITIES, KANBAN_SAVED_VIEW_STATE_VERSION, KanbanBoardPresentation, KanbanEmptyGroupVisibility, KanbanPresentedBand, KanbanPresentedLane, KanbanSavedAxisState, KanbanSavedGroupAxisState, KanbanSavedGroupReference, KanbanSavedSubgroupState, KanbanSavedViewState, KanbanSavedViewStateV1, ResolveWorkspaceKanbanViewParams, ResolvedWorkspaceKanbanView, WorkspaceKanbanBuiltInGroupLabel, WorkspaceKanbanGroupingChoice, WorkspaceKanbanGroupingPickerLabels, WorkspaceKanbanGroupingPickerProps, WorkspaceKanbanProperty, createWorkspaceKanbanSchema, getWorkspaceKanbanGroupingChoices, normalizeKanbanSavedViewState, presentKanbanBoard, resolveWorkspaceKanbanView };
133
+ //#endregion
@@ -2,11 +2,10 @@ import { FieldContent } from "./types.js";
2
2
  //#region src/property-icon.d.ts
3
3
  type FieldTypeWithoutPending = Exclude<FieldContent["type"], "pending">;
4
4
  type PropertyContentType = "file" | "text" | "single-select" | "multi-select" | "date" | "int" | "money" | "person";
5
- type PropertyIconType = FieldTypeWithoutPending | PropertyContentType;
5
+ export type PropertyIconType = FieldTypeWithoutPending | PropertyContentType;
6
6
  type PropertyHelperProps = {
7
7
  type: PropertyIconType;
8
8
  className?: string;
9
9
  };
10
- declare const PropertyIcon: ({ type, className }: PropertyHelperProps) => import("react").JSX.Element;
11
- //#endregion
12
- export { PropertyIcon, PropertyIconType };
10
+ export declare const PropertyIcon: ({ type, className }: PropertyHelperProps) => import("react").JSX.Element;
11
+ //#endregion
@@ -1,11 +1,10 @@
1
1
  import * as React from "react";
2
2
  //#region src/responsive-action-toolbar.d.ts
3
- type ResponsiveActionToolbarSlot = "primary" | "secondary" | "action";
4
- declare const ResponsiveActionToolbar: ({ className, ...props }: React.ComponentProps<"div">) => React.JSX.Element;
3
+ export type ResponsiveActionToolbarSlot = "primary" | "secondary" | "action";
4
+ export declare const ResponsiveActionToolbar: ({ className, ...props }: React.ComponentProps<"div">) => React.JSX.Element;
5
5
  type ResponsiveActionToolbarItemProps = React.PropsWithChildren<{
6
6
  slot: ResponsiveActionToolbarSlot;
7
7
  className?: string | undefined;
8
8
  }>;
9
- declare const ResponsiveActionToolbarItem: ({ slot, className, children }: ResponsiveActionToolbarItemProps) => React.JSX.Element;
10
- //#endregion
11
- export { ResponsiveActionToolbar, ResponsiveActionToolbarItem, ResponsiveActionToolbarSlot };
9
+ export declare const ResponsiveActionToolbarItem: ({ slot, className, children }: ResponsiveActionToolbarItemProps) => React.JSX.Element;
10
+ //#endregion
package/dist/sorts.d.ts CHANGED
@@ -1,23 +1,23 @@
1
1
  import { PropertyIconType } from "./property-icon.js";
2
2
  //#region src/sorts.d.ts
3
3
  /** One sort a view carries. */
4
- type SortDescriptor = {
4
+ export type SortDescriptor = {
5
5
  propertyId: string;
6
6
  desc: boolean;
7
7
  };
8
8
  /** A property a view may sort by. */
9
- type SortableProperty = {
9
+ export type SortableProperty = {
10
10
  id: string;
11
11
  name: string;
12
12
  type: PropertyIconType;
13
13
  };
14
- type SortChipsLabels = {
14
+ export type SortChipsLabels = {
15
15
  /** Accessible name of the "add a sort" trigger. */
16
16
  add: string;
17
17
  /** Accessible name of a chip's remove button. */
18
18
  remove: string;
19
19
  };
20
- type SortChipsProps = {
20
+ export type SortChipsProps = {
21
21
  sorts: readonly SortDescriptor[];
22
22
  properties: readonly SortableProperty[];
23
23
  onUpdate: (sorts: SortDescriptor[]) => void;
@@ -36,12 +36,11 @@ type SortChipsProps = {
36
36
  * the caller's answer, so this reads nothing but the three fields a chip
37
37
  * draws.
38
38
  */
39
- declare const SortChips: ({ sorts, properties, onUpdate, labels, maxSorts }: SortChipsProps) => import("react").JSX.Element;
39
+ export declare const SortChips: ({ sorts, properties, onUpdate, labels, maxSorts }: SortChipsProps) => import("react").JSX.Element;
40
40
  /**
41
41
  * What ascending means depends on what is being sorted: A→Z for words, 1→9 for
42
42
  * numbers, an arrow for dates. A type with no idiom falls back to the arrow
43
43
  * icon, which is why this returns null rather than a default string.
44
44
  */
45
- declare const sortDirectionHint: (propertyType: string | undefined, desc: boolean) => string | null;
46
- //#endregion
47
- export { SortChips, SortChipsLabels, SortChipsProps, SortDescriptor, SortableProperty, sortDirectionHint };
45
+ export declare const sortDirectionHint: (propertyType: string | undefined, desc: boolean) => string | null;
46
+ //#endregion
@@ -13,6 +13,5 @@ type TableSkeletonRowsProps<TFeatures extends TableFeatures, TData extends RowDa
13
13
  * inside the same `<TableBody>` the real rows use, passing the table's leaf
14
14
  * columns (e.g. `table.getAllLeafColumns()`).
15
15
  */
16
- declare const TableSkeletonRows: <TFeatures extends TableFeatures, TData extends RowData>({ columns, rowCount, renderCell }: TableSkeletonRowsProps<TFeatures, TData>) => import("react").JSX.Element[];
17
- //#endregion
18
- export { TableSkeletonRows };
16
+ export declare const TableSkeletonRows: <TFeatures extends TableFeatures, TData extends RowData>({ columns, rowCount, renderCell }: TableSkeletonRowsProps<TFeatures, TData>) => import("react").JSX.Element[];
17
+ //#endregion
package/dist/types.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { OptionColor, OptionColor as OptionColor$1 } from "@stll/ui/option-color";
2
2
  import { KanbanColumnBand } from "@stll/ui/kanban";
3
3
  //#region src/types.d.ts
4
- type FieldContent = {
4
+ export type FieldContent = {
5
5
  type: "error";
6
6
  version: 1;
7
7
  } | {
@@ -68,14 +68,14 @@ type FieldContent = {
68
68
  sourceType?: string;
69
69
  };
70
70
  /** Runtime names for every content arm the field renderer understands. */
71
- declare const FIELD_CONTENT_TYPES: readonly ["error", "pending", "unsupported", "text", "single-select", "multi-select", "file", "date", "int", "money", "person", "clip"];
72
- type WorkspaceFieldContent = FieldContent;
71
+ export declare const FIELD_CONTENT_TYPES: readonly ["error", "pending", "unsupported", "text", "single-select", "multi-select", "file", "date", "int", "money", "person", "clip"];
72
+ export type WorkspaceFieldContent = FieldContent;
73
73
  /**
74
74
  * Minimal structural bound the display layer needs from a property: the cell
75
75
  * renderers only read `content.type` and, for selects, the `options` colors.
76
76
  * Real callers (e.g. the app's `WorkspaceProperty`) satisfy this structurally.
77
77
  */
78
- type GenericProperty = {
78
+ export type GenericProperty = {
79
79
  content: {
80
80
  type: "file" | "text" | "date" | "int" | "money" | "person";
81
81
  } | {
@@ -89,4 +89,4 @@ type GenericProperty = {
89
89
  };
90
90
  };
91
91
  //#endregion
92
- export { FIELD_CONTENT_TYPES, FieldContent, GenericProperty, type OptionColor, WorkspaceFieldContent };
92
+ export type { OptionColor };
@@ -1,20 +1,20 @@
1
1
  import { WorkspaceViewDirection } from "./view-switcher.logic.js";
2
2
  //#region src/view-switcher.d.ts
3
- type WorkspaceViewSwitcherItem = {
3
+ export type WorkspaceViewSwitcherItem = {
4
4
  id: string;
5
5
  name: string;
6
6
  };
7
- type WorkspaceViewSwitcherEditing<View> = {
7
+ export type WorkspaceViewSwitcherEditing<View> = {
8
8
  viewId: string;
9
9
  renderLabel: (view: View) => React.ReactNode;
10
10
  };
11
- type WorkspaceViewSwitcherReorder<View> = {
11
+ export type WorkspaceViewSwitcherReorder<View> = {
12
12
  getDragData?: (view: View) => Record<string | symbol, unknown>;
13
13
  getDropData?: (view: View) => Record<string | symbol, unknown>;
14
14
  isBlocked?: boolean;
15
15
  onReorder: (viewIds: string[]) => void;
16
16
  };
17
- type WorkspaceViewSwitcherProps<View extends WorkspaceViewSwitcherItem> = {
17
+ export type WorkspaceViewSwitcherProps<View extends WorkspaceViewSwitcherItem> = {
18
18
  activeViewId: string;
19
19
  ariaLabel: string;
20
20
  direction: WorkspaceViewDirection;
@@ -28,6 +28,5 @@ type WorkspaceViewSwitcherProps<View extends WorkspaceViewSwitcherItem> = {
28
28
  renderActions?: (view: View) => React.ReactNode;
29
29
  renderIcon: (view: View) => React.ReactNode;
30
30
  };
31
- declare const WorkspaceViewSwitcher: <View extends WorkspaceViewSwitcherItem>({ activeViewId, ariaLabel, direction, reorder, views, addControl, editing, onViewChange, onViewContextMenu, onViewDoubleClick, renderActions, renderIcon }: WorkspaceViewSwitcherProps<View>) => import("react").JSX.Element;
32
- //#endregion
33
- export { WorkspaceViewSwitcher, WorkspaceViewSwitcherEditing, WorkspaceViewSwitcherItem, WorkspaceViewSwitcherProps, WorkspaceViewSwitcherReorder };
31
+ export declare const WorkspaceViewSwitcher: <View extends WorkspaceViewSwitcherItem>({ activeViewId, ariaLabel, direction, reorder, views, addControl, editing, onViewChange, onViewContextMenu, onViewDoubleClick, renderActions, renderIcon }: WorkspaceViewSwitcherProps<View>) => import("react").JSX.Element;
32
+ //#endregion
@@ -1,14 +1,13 @@
1
1
  import { Edge } from "@atlaskit/pragmatic-drag-and-drop-hitbox/closest-edge";
2
2
  //#region src/view-switcher.logic.d.ts
3
- type WorkspaceViewDirection = "ltr" | "rtl";
4
- type WorkspaceViewDropPosition = "before" | "after";
5
- declare const toWorkspaceViewDropPosition: (edge: Edge | null, direction: WorkspaceViewDirection) => WorkspaceViewDropPosition | null;
3
+ export type WorkspaceViewDirection = "ltr" | "rtl";
4
+ export type WorkspaceViewDropPosition = "before" | "after";
5
+ export declare const toWorkspaceViewDropPosition: (edge: Edge | null, direction: WorkspaceViewDirection) => WorkspaceViewDropPosition | null;
6
6
  type ReorderWorkspaceViewIdsParams = {
7
7
  ids: readonly string[];
8
8
  draggedId: string;
9
9
  targetId: string;
10
10
  position: WorkspaceViewDropPosition;
11
11
  };
12
- declare const reorderWorkspaceViewIds: ({ ids, draggedId, targetId, position }: ReorderWorkspaceViewIdsParams) => string[] | null;
13
- //#endregion
14
- export { WorkspaceViewDirection, WorkspaceViewDropPosition, reorderWorkspaceViewIds, toWorkspaceViewDropPosition };
12
+ export declare const reorderWorkspaceViewIds: ({ ids, draggedId, targetId, position }: ReorderWorkspaceViewIdsParams) => string[] | null;
13
+ //#endregion
@@ -2,7 +2,7 @@ import { ComponentProps, ReactElement, ReactNode } from "react";
2
2
  import { InspectorDock } from "@stll/ui/inspector";
3
3
  import { WorkspaceEndRail, WorkspaceShell } from "@stll/ui/workspace-shell";
4
4
  //#region src/workspace-frame.d.ts
5
- type WorkspaceFrameNavigationItem = {
5
+ export type WorkspaceFrameNavigationItem = {
6
6
  id: string;
7
7
  label: string;
8
8
  icon: ReactNode;
@@ -17,7 +17,7 @@ type WorkspaceFrameNavigationItem = {
17
17
  * toggle, the labelled menu while expanded, and the tooltips while collapsed
18
18
  * without composing the shell itself.
19
19
  */
20
- type WorkspaceFrameSidebarNavigation = {
20
+ export type WorkspaceFrameSidebarNavigation = {
21
21
  /** Shown at the start of the header row while the sidebar is expanded,
22
22
  * typically a wordmark. The collapse toggle sits at its end. */
23
23
  brand?: ReactNode;
@@ -34,7 +34,7 @@ type WorkspaceFrameSidebarNavigation = {
34
34
  * while an inspector pane needs the width. */
35
35
  forceCollapsed?: boolean;
36
36
  };
37
- type WorkspaceFrameNavigation = {
37
+ export type WorkspaceFrameNavigation = {
38
38
  label: string;
39
39
  items: readonly WorkspaceFrameNavigationItem[];
40
40
  /** Rail-only: the application rail's header slot. The sidebar
@@ -50,7 +50,7 @@ type WorkspaceFrameNavigation = {
50
50
  };
51
51
  sidebar?: WorkspaceFrameSidebarNavigation;
52
52
  };
53
- type WorkspaceFrameInspector = {
53
+ export type WorkspaceFrameInspector = {
54
54
  pane: ReactNode;
55
55
  showPaneContent: boolean;
56
56
  width: number;
@@ -64,14 +64,14 @@ type WorkspaceFrameInspector = {
64
64
  onOpenChange: (open: boolean) => void;
65
65
  };
66
66
  };
67
- type WorkspaceFrameEndRail = {
67
+ export type WorkspaceFrameEndRail = {
68
68
  label: string;
69
69
  topAction: ReactNode;
70
70
  chatAction: ComponentProps<typeof WorkspaceEndRail>["chatAction"];
71
71
  children?: ReactNode;
72
72
  overlay?: ReactNode;
73
73
  };
74
- type WorkspaceFrameProps = {
74
+ export type WorkspaceFrameProps = {
75
75
  children: ReactNode;
76
76
  } & ({
77
77
  composition: "described";
@@ -92,7 +92,7 @@ type WorkspaceFrameProps = {
92
92
  topBar: ComponentProps<typeof WorkspaceShell>["topBar"];
93
93
  endDock: ReactElement;
94
94
  });
95
- type WorkspaceFrameTopBar = {
95
+ export type WorkspaceFrameTopBar = {
96
96
  leading?: ReactNode;
97
97
  center?: ReactNode;
98
98
  actions?: ReactNode;
@@ -114,6 +114,5 @@ type WorkspaceFrameTopBar = {
114
114
  * mounts the shell from `@stll/ui/sidebar` there, as this app's `AppSidebar`
115
115
  * does.
116
116
  */
117
- declare const WorkspaceFrame: (props: WorkspaceFrameProps) => import("react").JSX.Element;
118
- //#endregion
119
- export { WorkspaceFrame, WorkspaceFrameEndRail, WorkspaceFrameInspector, WorkspaceFrameNavigation, WorkspaceFrameNavigationItem, WorkspaceFrameProps, WorkspaceFrameSidebarNavigation, WorkspaceFrameTopBar };
117
+ export declare const WorkspaceFrame: (props: WorkspaceFrameProps) => import("react").JSX.Element;
118
+ //#endregion
@@ -1,7 +1,6 @@
1
1
  //#region src/workspace-frame.logic.d.ts
2
- declare const resolveWorkspaceInspectorPresentation: ({ hasMobilePresentation, isCompact }: {
2
+ export declare const resolveWorkspaceInspectorPresentation: ({ hasMobilePresentation, isCompact }: {
3
3
  hasMobilePresentation: boolean;
4
4
  isCompact: boolean;
5
5
  }) => "desktop" | "mobile";
6
- //#endregion
7
- export { resolveWorkspaceInspectorPresentation };
6
+ //#endregion
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@stll/workspace-ui",
3
- "version": "0.10.2",
3
+ "version": "0.10.3",
4
4
  "description": "Reusable workspace presentation components and view helpers for Stella.",
5
5
  "keywords": [
6
6
  "calculations",
@@ -119,27 +119,27 @@
119
119
  "@stll/calculations": "^0.1.1",
120
120
  "@stll/conditions": "^0.3.1",
121
121
  "@stll/money": "^0.2.0",
122
- "@stll/ui": "^0.26.1",
122
+ "@stll/ui": "^0.26.4",
123
123
  "better-result": "3.0.1",
124
- "lucide-react": "1.39.0",
124
+ "lucide-react": "1.41.0",
125
125
  "temporal-polyfill": "1.0.4",
126
126
  "use-intl": "4.14.2"
127
127
  },
128
128
  "devDependencies": {
129
129
  "@atlaskit/pragmatic-drag-and-drop": "^3.1.0",
130
130
  "@atlaskit/pragmatic-drag-and-drop-hitbox": "^2.2.0",
131
- "@base-ui/react": "1.7.0",
131
+ "@base-ui/react": "1.8.0",
132
132
  "@stll/property-testing": "0.0.0",
133
133
  "@stll/typescript-config": "0.0.0",
134
134
  "@tanstack/react-table": "9.2.4",
135
135
  "@types/react": "^19.2.17",
136
- "@types/react-dom": "^19.2.3",
136
+ "@types/react-dom": "^19.2.7",
137
137
  "bun-types": "1.4.2",
138
138
  "fast-check": "^4.9.0",
139
139
  "react": "^19.2.8",
140
140
  "react-dom": "^19.2.8",
141
141
  "tailwindcss": "4.3.3",
142
- "tsdown": "0.22.14"
142
+ "tsdown": "0.23.0"
143
143
  },
144
144
  "peerDependencies": {
145
145
  "@atlaskit/pragmatic-drag-and-drop": "^3.1.0",