@stll/ui 0.26.3 → 0.26.5
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.
- package/dist/calendar/primitives.d.ts +7 -8
- package/dist/calendar/resource-calendar.d.ts +6 -7
- package/dist/calendar/resource-calendar.logic.d.ts +9 -10
- package/dist/components/application-rail.d.ts +11 -12
- package/dist/components/bidi-text.d.ts +3 -3
- package/dist/components/brand-icons.d.ts +3 -4
- package/dist/components/button-variants.d.ts +5 -6
- package/dist/components/command.d.ts +1 -1
- package/dist/components/composer.d.ts +18 -19
- package/dist/components/context-menu.d.ts +4 -5
- package/dist/components/date-picker-popover.js +20 -18
- package/dist/components/date-picker-popover.logic.d.ts +6 -7
- package/dist/components/dialog.d.ts +1 -1
- package/dist/components/directional-icon.d.ts +2 -3
- package/dist/components/input-control.d.ts +4 -5
- package/dist/components/landing.d.ts +10 -11
- package/dist/components/menu.d.ts +1 -1
- package/dist/components/outline-rail.d.ts +4 -5
- package/dist/components/preview-card.d.ts +4 -4
- package/dist/components/scroll-to-top.d.ts +3 -4
- package/dist/components/segmented-icon-toggle.d.ts +2 -3
- package/dist/components/sheet.d.ts +1 -1
- package/dist/components/sidebar.d.ts +4 -4
- package/dist/components/sidebar.logic.d.ts +7 -8
- package/dist/components/stella-mark.d.ts +2 -3
- package/dist/components/stella-wordmark.d.ts +2 -3
- package/dist/components/tooltip.d.ts +1 -1
- package/dist/components/workspace-shell.d.ts +3 -3
- package/dist/data-table/schema.d.ts +11 -12
- package/dist/data-table/table.d.ts +8 -9
- package/dist/hooks/use-contained-handler.d.ts +3 -4
- package/dist/hooks/use-content-dir.d.ts +4 -5
- package/dist/hooks/use-latest.d.ts +2 -3
- package/dist/hooks/use-mobile.d.ts +2 -3
- package/dist/hooks/use-viewport-width.d.ts +2 -3
- package/dist/index.d.ts +2 -2
- package/dist/inspector/chrome.d.ts +21 -22
- package/dist/inspector/dock.d.ts +11 -3
- package/dist/inspector/dock.js +7 -2
- package/dist/inspector/entity-tab.d.ts +4 -5
- package/dist/inspector/entity-tab.logic.d.ts +4 -5
- package/dist/inspector/facet-bar.d.ts +3 -4
- package/dist/inspector/facet-bar.logic.d.ts +4 -5
- package/dist/inspector/index.d.ts +2 -2
- package/dist/inspector/layout-tokens.d.ts +8 -9
- package/dist/inspector/pane-width.d.ts +21 -12
- package/dist/inspector/pane-width.js +12 -2
- package/dist/inspector/tabs.d.ts +7 -8
- package/dist/inspector/use-pane-width.d.ts +15 -10
- package/dist/inspector/use-pane-width.js +9 -3
- package/dist/kanban/band-peek.d.ts +7 -8
- package/dist/kanban/card-properties.d.ts +3 -4
- package/dist/kanban/card-shell.d.ts +3 -4
- package/dist/kanban/cell-action.d.ts +3 -4
- package/dist/kanban/column-band-header.d.ts +4 -5
- package/dist/kanban/column-bands.d.ts +9 -10
- package/dist/kanban/column-header.d.ts +3 -4
- package/dist/kanban/drag-interactions.d.ts +7 -8
- package/dist/kanban/grouping.d.ts +14 -15
- package/dist/kanban/layout-tokens.d.ts +6 -7
- package/dist/kanban/matrix.d.ts +20 -21
- package/dist/kanban/sortable-edge.d.ts +7 -8
- package/dist/kanban/sortable-interactions.d.ts +27 -27
- package/dist/kanban/sortable-interactions.logic.d.ts +14 -15
- package/dist/kanban/sticky-lane.d.ts +10 -11
- package/dist/kanban/subgroup-board.d.ts +10 -11
- package/dist/kanban/subgroup-board.js +8 -4
- package/dist/kanban/touch-identity.d.ts +2 -3
- package/dist/kanban/virtual-cell.d.ts +6 -7
- package/dist/lib/button-disposition.d.ts +6 -7
- package/dist/lib/control-size.d.ts +1 -1
- package/dist/lib/initials.d.ts +2 -3
- package/dist/lib/option-color.d.ts +6 -7
- package/dist/lib/overlay-layer.d.ts +6 -7
- package/dist/lib/positioner-sizing.d.ts +3 -4
- package/dist/lib/tab-order.d.ts +2 -3
- package/dist/lib/tooltip-content.d.ts +2 -3
- package/dist/lib/utils.d.ts +3 -4
- package/dist/lib/week.d.ts +4 -5
- package/dist/review/review-author-avatar.d.ts +3 -4
- package/dist/review/review-comment-card.d.ts +3 -4
- package/dist/review/review-decision-actions.d.ts +4 -5
- package/dist/review/review-diff-text.d.ts +9 -10
- package/dist/review/review-out-of-date-notice.d.ts +4 -5
- package/dist/review/review-severity-dot.d.ts +5 -6
- package/dist/review/review-status-badge.d.ts +5 -6
- package/package.json +8 -8
|
@@ -11,19 +11,19 @@
|
|
|
11
11
|
* The host application's sidebar width is a parameter rather than an
|
|
12
12
|
* import, so the policy carries no coupling to any particular shell.
|
|
13
13
|
*/
|
|
14
|
-
declare const INSPECTOR_PANE_DEFAULT_WIDTH = 512;
|
|
15
|
-
declare const INSPECTOR_PANE_MIN_WIDTH = 320;
|
|
14
|
+
export declare const INSPECTOR_PANE_DEFAULT_WIDTH = 512;
|
|
15
|
+
export declare const INSPECTOR_PANE_MIN_WIDTH = 320;
|
|
16
16
|
/**
|
|
17
17
|
* Absolute ceiling, reached only on a very wide viewport. Past this the pane
|
|
18
18
|
* is no longer a reading column, and the two documents it compares stop
|
|
19
19
|
* being scannable side by side.
|
|
20
20
|
*/
|
|
21
|
-
declare const INSPECTOR_PANE_MAX_WIDTH = 1400;
|
|
21
|
+
export declare const INSPECTOR_PANE_MAX_WIDTH = 1400;
|
|
22
22
|
/**
|
|
23
23
|
* Floor for the content column beside the pane. Below this the content
|
|
24
24
|
* surface stops being usable, so the pane yields space first.
|
|
25
25
|
*/
|
|
26
|
-
declare const INSPECTOR_CONTENT_MIN_WIDTH = 400;
|
|
26
|
+
export declare const INSPECTOR_CONTENT_MIN_WIDTH = 400;
|
|
27
27
|
/**
|
|
28
28
|
* Comfortable measure for the document editor beside the pane, distinct from
|
|
29
29
|
* {@link INSPECTOR_CONTENT_MIN_WIDTH}: that one is the hard floor any content
|
|
@@ -32,9 +32,9 @@ declare const INSPECTOR_CONTENT_MIN_WIDTH = 400;
|
|
|
32
32
|
* respects the readable measure; the hard floor still wins when the viewport
|
|
33
33
|
* cannot give both.
|
|
34
34
|
*/
|
|
35
|
-
declare const INSPECTOR_EDITOR_MIN_WIDTH = 560;
|
|
35
|
+
export declare const INSPECTOR_EDITOR_MIN_WIDTH = 560;
|
|
36
36
|
/** Inline size of the collapsed icon rail, in CSS pixels. */
|
|
37
|
-
declare const INSPECTOR_RAIL_WIDTH = 48;
|
|
37
|
+
export declare const INSPECTOR_RAIL_WIDTH = 48;
|
|
38
38
|
type ForceSidebarCollapsedInput = {
|
|
39
39
|
/** Inline size the expanded sidebar takes out of the layout row. */
|
|
40
40
|
expandedSidebarWidth: number;
|
|
@@ -47,7 +47,7 @@ type ForceSidebarCollapsedInput = {
|
|
|
47
47
|
* can violate its minimum. The collapsed rail plus both minimums fit at the
|
|
48
48
|
* desktop breakpoint, so this policy keeps every desktop width usable.
|
|
49
49
|
*/
|
|
50
|
-
declare const shouldForceSidebarCollapsed: ({ expandedSidebarWidth, inspectorPaneOpen, viewportWidth }: ForceSidebarCollapsedInput) => boolean;
|
|
50
|
+
export declare const shouldForceSidebarCollapsed: ({ expandedSidebarWidth, inspectorPaneOpen, viewportWidth }: ForceSidebarCollapsedInput) => boolean;
|
|
51
51
|
type InspectorPaneWidthInput = {
|
|
52
52
|
/** Width the user dragged the pane to. */
|
|
53
53
|
desiredWidth: number;
|
|
@@ -63,16 +63,25 @@ type InspectorPaneWidthInput = {
|
|
|
63
63
|
* and collapsing the sidebar is the escape hatch for a genuinely small
|
|
64
64
|
* viewport.
|
|
65
65
|
*/
|
|
66
|
-
declare const resolveInspectorPaneMaxWidth: ({ sidebarWidth, viewportWidth }: Omit<InspectorPaneWidthInput, "desiredWidth">) => number;
|
|
66
|
+
export declare const resolveInspectorPaneMaxWidth: ({ sidebarWidth, viewportWidth }: Omit<InspectorPaneWidthInput, "desiredWidth">) => number;
|
|
67
|
+
/**
|
|
68
|
+
* A width inside the pane's own bounds, independent of any viewport.
|
|
69
|
+
*
|
|
70
|
+
* Every width the pane keeps goes through this, because the kept width is
|
|
71
|
+
* also the persisted one and {@link parsePersistedPaneWidth} *rejects* —
|
|
72
|
+
* and so resets — anything outside these bounds. A raw cursor position is
|
|
73
|
+
* routinely outside them, so a drag past the edge has to be remembered as
|
|
74
|
+
* the bound it stopped at rather than as the pixel the pointer reached.
|
|
75
|
+
*/
|
|
76
|
+
export declare const clampInspectorPaneWidth: (width: number) => number;
|
|
67
77
|
/** Width the pane renders at, given the width the user asked for. */
|
|
68
|
-
declare const resolveInspectorPaneWidth: ({ desiredWidth, sidebarWidth, viewportWidth }: InspectorPaneWidthInput) => number;
|
|
78
|
+
export declare const resolveInspectorPaneWidth: ({ desiredWidth, sidebarWidth, viewportWidth }: InspectorPaneWidthInput) => number;
|
|
69
79
|
/**
|
|
70
80
|
* Width the dock reserves in the layout: the full pane while content is
|
|
71
81
|
* shown, the bare rail while it is collapsed or minimized.
|
|
72
82
|
*/
|
|
73
|
-
declare const resolveInspectorDockWidth: ({ paneWidth, showPaneContent }: {
|
|
83
|
+
export declare const resolveInspectorDockWidth: ({ paneWidth, showPaneContent }: {
|
|
74
84
|
paneWidth: number;
|
|
75
85
|
showPaneContent: boolean;
|
|
76
86
|
}) => number;
|
|
77
|
-
//#endregion
|
|
78
|
-
export { INSPECTOR_CONTENT_MIN_WIDTH, INSPECTOR_EDITOR_MIN_WIDTH, INSPECTOR_PANE_DEFAULT_WIDTH, INSPECTOR_PANE_MAX_WIDTH, INSPECTOR_PANE_MIN_WIDTH, INSPECTOR_RAIL_WIDTH, resolveInspectorDockWidth, resolveInspectorPaneMaxWidth, resolveInspectorPaneWidth, shouldForceSidebarCollapsed };
|
|
87
|
+
//#endregion
|
|
@@ -54,8 +54,18 @@ const resolveInspectorPaneMaxWidth = ({ sidebarWidth, viewportWidth }) => {
|
|
|
54
54
|
const available = viewportWidth - sidebarWidth - 400;
|
|
55
55
|
return Math.max(320, Math.min(INSPECTOR_PANE_MAX_WIDTH, readable, available));
|
|
56
56
|
};
|
|
57
|
+
/**
|
|
58
|
+
* A width inside the pane's own bounds, independent of any viewport.
|
|
59
|
+
*
|
|
60
|
+
* Every width the pane keeps goes through this, because the kept width is
|
|
61
|
+
* also the persisted one and {@link parsePersistedPaneWidth} *rejects* —
|
|
62
|
+
* and so resets — anything outside these bounds. A raw cursor position is
|
|
63
|
+
* routinely outside them, so a drag past the edge has to be remembered as
|
|
64
|
+
* the bound it stopped at rather than as the pixel the pointer reached.
|
|
65
|
+
*/
|
|
66
|
+
const clampInspectorPaneWidth = (width) => Math.min(Math.max(width, 320), INSPECTOR_PANE_MAX_WIDTH);
|
|
57
67
|
/** Width the pane renders at, given the width the user asked for. */
|
|
58
|
-
const resolveInspectorPaneWidth = ({ desiredWidth, sidebarWidth, viewportWidth }) => Math.min(
|
|
68
|
+
const resolveInspectorPaneWidth = ({ desiredWidth, sidebarWidth, viewportWidth }) => Math.min(clampInspectorPaneWidth(desiredWidth), resolveInspectorPaneMaxWidth({
|
|
59
69
|
sidebarWidth,
|
|
60
70
|
viewportWidth
|
|
61
71
|
}));
|
|
@@ -65,4 +75,4 @@ const resolveInspectorPaneWidth = ({ desiredWidth, sidebarWidth, viewportWidth }
|
|
|
65
75
|
*/
|
|
66
76
|
const resolveInspectorDockWidth = ({ paneWidth, showPaneContent }) => showPaneContent ? paneWidth : 48;
|
|
67
77
|
//#endregion
|
|
68
|
-
export { INSPECTOR_CONTENT_MIN_WIDTH, INSPECTOR_EDITOR_MIN_WIDTH, INSPECTOR_PANE_DEFAULT_WIDTH, INSPECTOR_PANE_MAX_WIDTH, INSPECTOR_PANE_MIN_WIDTH, INSPECTOR_RAIL_WIDTH, resolveInspectorDockWidth, resolveInspectorPaneMaxWidth, resolveInspectorPaneWidth, shouldForceSidebarCollapsed };
|
|
78
|
+
export { INSPECTOR_CONTENT_MIN_WIDTH, INSPECTOR_EDITOR_MIN_WIDTH, INSPECTOR_PANE_DEFAULT_WIDTH, INSPECTOR_PANE_MAX_WIDTH, INSPECTOR_PANE_MIN_WIDTH, INSPECTOR_RAIL_WIDTH, clampInspectorPaneWidth, resolveInspectorDockWidth, resolveInspectorPaneMaxWidth, resolveInspectorPaneWidth, shouldForceSidebarCollapsed };
|
package/dist/inspector/tabs.d.ts
CHANGED
|
@@ -6,11 +6,10 @@ import { Tabs } from "@base-ui/react/tabs";
|
|
|
6
6
|
* docked inspector. The mobile layout moves the rail below the header rather
|
|
7
7
|
* than leaving a narrow column beside a full-screen sheet.
|
|
8
8
|
*/
|
|
9
|
-
declare const InspectorTabs: ({ className, ...props }: Omit<Tabs.Root.Props, "orientation">) => React$1.JSX.Element;
|
|
10
|
-
declare const INSPECTOR_RAIL_MEDIA_QUERY: "(min-width: 48rem)";
|
|
11
|
-
declare const resolveInspectorTabOrientation: (isRailLayout: boolean) => "horizontal" | "vertical";
|
|
12
|
-
declare const InspectorTabList: ({ className, ...props }: Tabs.List.Props) => React$1.JSX.Element;
|
|
13
|
-
declare const InspectorTab: ({ className, ...props }: Tabs.Tab.Props) => React$1.JSX.Element;
|
|
14
|
-
declare const InspectorTabPanel: ({ className, ...props }: Tabs.Panel.Props) => React$1.JSX.Element;
|
|
15
|
-
//#endregion
|
|
16
|
-
export { INSPECTOR_RAIL_MEDIA_QUERY, InspectorTab, InspectorTabList, InspectorTabPanel, InspectorTabs, resolveInspectorTabOrientation };
|
|
9
|
+
export declare const InspectorTabs: ({ className, ...props }: Omit<Tabs.Root.Props, "orientation">) => React$1.JSX.Element;
|
|
10
|
+
export declare const INSPECTOR_RAIL_MEDIA_QUERY: "(min-width: 48rem)";
|
|
11
|
+
export declare const resolveInspectorTabOrientation: (isRailLayout: boolean) => "horizontal" | "vertical";
|
|
12
|
+
export declare const InspectorTabList: ({ className, ...props }: Tabs.List.Props) => React$1.JSX.Element;
|
|
13
|
+
export declare const InspectorTab: ({ className, ...props }: Tabs.Tab.Props) => React$1.JSX.Element;
|
|
14
|
+
export declare const InspectorTabPanel: ({ className, ...props }: Tabs.Panel.Props) => React$1.JSX.Element;
|
|
15
|
+
//#endregion
|
|
@@ -7,22 +7,28 @@ import { KeyboardEvent, PointerEvent } from "react";
|
|
|
7
7
|
* from, so an unusable value falls back to the default rather than being
|
|
8
8
|
* clamped into something the user never chose.
|
|
9
9
|
*/
|
|
10
|
-
declare const parsePersistedPaneWidth: (raw: string | null) => number;
|
|
10
|
+
export declare const parsePersistedPaneWidth: (raw: string | null) => number;
|
|
11
11
|
/**
|
|
12
12
|
* Width the drag produces for a pane docked to the inline-end edge.
|
|
13
13
|
*
|
|
14
14
|
* That edge is the right in LTR (width = distance from the right) and the
|
|
15
15
|
* left in RTL (width = distance from the left). Without the RTL branch the
|
|
16
16
|
* delta is inverted and the drag oscillates.
|
|
17
|
+
*
|
|
18
|
+
* A pointer can be dragged well past either bound — off the window edge, or
|
|
19
|
+
* across the whole viewport — so the raw distance is clamped here, before
|
|
20
|
+
* anything keeps it. Persisting the raw distance is what made a pane dragged
|
|
21
|
+
* narrower than the minimum come back at the *default* width on the next
|
|
22
|
+
* load, because `parsePersistedPaneWidth` refuses an out-of-range entry.
|
|
17
23
|
*/
|
|
18
|
-
declare const resolveDragWidth: ({ clientX, isRtl, viewportWidth }: {
|
|
24
|
+
export declare const resolveDragWidth: ({ clientX, isRtl, viewportWidth }: {
|
|
19
25
|
clientX: number;
|
|
20
26
|
isRtl: boolean;
|
|
21
27
|
viewportWidth: number;
|
|
22
28
|
}) => number;
|
|
23
29
|
/** Pixels one arrow press moves the edge; Page/Home/End move further. */
|
|
24
|
-
declare const INSPECTOR_PANE_KEYBOARD_STEP = 16;
|
|
25
|
-
declare const INSPECTOR_PANE_KEYBOARD_PAGE_STEP = 64;
|
|
30
|
+
export declare const INSPECTOR_PANE_KEYBOARD_STEP = 16;
|
|
31
|
+
export declare const INSPECTOR_PANE_KEYBOARD_PAGE_STEP = 64;
|
|
26
32
|
/**
|
|
27
33
|
* Width a keyboard resize produces. Returns `null` for keys the handle does
|
|
28
34
|
* not own, so the caller can leave the event alone rather than swallowing
|
|
@@ -32,7 +38,7 @@ declare const INSPECTOR_PANE_KEYBOARD_PAGE_STEP = 64;
|
|
|
32
38
|
* the inline-start arrow grows it. Under RTL the physical arrows swap, so
|
|
33
39
|
* the same key keeps meaning "make it bigger" on both sides.
|
|
34
40
|
*/
|
|
35
|
-
declare const resolveKeyboardWidth: ({ currentWidth, isRtl, key }: {
|
|
41
|
+
export declare const resolveKeyboardWidth: ({ currentWidth, isRtl, key }: {
|
|
36
42
|
currentWidth: number;
|
|
37
43
|
isRtl: boolean;
|
|
38
44
|
key: string;
|
|
@@ -45,8 +51,8 @@ declare const resolveKeyboardWidth: ({ currentWidth, isRtl, key }: {
|
|
|
45
51
|
* that forgets its width is a smaller failure than a pane that does not
|
|
46
52
|
* render, so both directions degrade to in-memory.
|
|
47
53
|
*/
|
|
48
|
-
declare const readStoredWidth: (storageKey: string) => number;
|
|
49
|
-
declare const writeStoredWidth: (storageKey: string, width: number) => void;
|
|
54
|
+
export declare const readStoredWidth: (storageKey: string) => number;
|
|
55
|
+
export declare const writeStoredWidth: (storageKey: string, width: number) => void;
|
|
50
56
|
type UseInspectorPaneWidthOptions = {
|
|
51
57
|
/** Inline size the sidebar takes out of the same layout row. */
|
|
52
58
|
sidebarWidth: number;
|
|
@@ -94,6 +100,5 @@ type UseInspectorPaneWidthResult = {
|
|
|
94
100
|
* the content column. The *desired* width keeps the user's choice, so the
|
|
95
101
|
* pane returns to it once the room comes back.
|
|
96
102
|
*/
|
|
97
|
-
declare const useInspectorPaneWidth: ({ sidebarWidth, storageKey, viewportWidth }: UseInspectorPaneWidthOptions) => UseInspectorPaneWidthResult;
|
|
98
|
-
//#endregion
|
|
99
|
-
export { INSPECTOR_PANE_KEYBOARD_PAGE_STEP, INSPECTOR_PANE_KEYBOARD_STEP, parsePersistedPaneWidth, readStoredWidth, resolveDragWidth, resolveKeyboardWidth, useInspectorPaneWidth, writeStoredWidth };
|
|
103
|
+
export declare const useInspectorPaneWidth: ({ sidebarWidth, storageKey, viewportWidth }: UseInspectorPaneWidthOptions) => UseInspectorPaneWidthResult;
|
|
104
|
+
//#endregion
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { INSPECTOR_PANE_MAX_WIDTH, resolveInspectorPaneMaxWidth, resolveInspectorPaneWidth } from "./pane-width.js";
|
|
1
|
+
import { INSPECTOR_PANE_MAX_WIDTH, clampInspectorPaneWidth, resolveInspectorPaneMaxWidth, resolveInspectorPaneWidth } from "./pane-width.js";
|
|
2
2
|
import { useEffect, useRef, useState } from "react";
|
|
3
3
|
//#region src/inspector/use-pane-width.ts
|
|
4
4
|
/**
|
|
@@ -20,8 +20,14 @@ const parsePersistedPaneWidth = (raw) => {
|
|
|
20
20
|
* That edge is the right in LTR (width = distance from the right) and the
|
|
21
21
|
* left in RTL (width = distance from the left). Without the RTL branch the
|
|
22
22
|
* delta is inverted and the drag oscillates.
|
|
23
|
+
*
|
|
24
|
+
* A pointer can be dragged well past either bound — off the window edge, or
|
|
25
|
+
* across the whole viewport — so the raw distance is clamped here, before
|
|
26
|
+
* anything keeps it. Persisting the raw distance is what made a pane dragged
|
|
27
|
+
* narrower than the minimum come back at the *default* width on the next
|
|
28
|
+
* load, because `parsePersistedPaneWidth` refuses an out-of-range entry.
|
|
23
29
|
*/
|
|
24
|
-
const resolveDragWidth = ({ clientX, isRtl, viewportWidth }) => isRtl ? clientX : viewportWidth - clientX;
|
|
30
|
+
const resolveDragWidth = ({ clientX, isRtl, viewportWidth }) => clampInspectorPaneWidth(isRtl ? clientX : viewportWidth - clientX);
|
|
25
31
|
/** Pixels one arrow press moves the edge; Page/Home/End move further. */
|
|
26
32
|
const INSPECTOR_PANE_KEYBOARD_STEP = 16;
|
|
27
33
|
const INSPECTOR_PANE_KEYBOARD_PAGE_STEP = 64;
|
|
@@ -121,7 +127,7 @@ const useInspectorPaneWidth = ({ sidebarWidth, storageKey, viewportWidth }) => {
|
|
|
121
127
|
});
|
|
122
128
|
if (next === null) return;
|
|
123
129
|
event.preventDefault();
|
|
124
|
-
setDesiredWidth(Math.min(
|
|
130
|
+
setDesiredWidth(Math.min(clampInspectorPaneWidth(next), maxWidth));
|
|
125
131
|
};
|
|
126
132
|
const resetWidth = () => {
|
|
127
133
|
setDesiredWidth(512);
|
|
@@ -15,12 +15,12 @@
|
|
|
15
15
|
* the peek at once.
|
|
16
16
|
*/
|
|
17
17
|
/** How long a dragged card rests on a folded slot before the band peeks open. */
|
|
18
|
-
declare const KANBAN_BAND_PEEK_DELAY_MS = 400;
|
|
18
|
+
export declare const KANBAN_BAND_PEEK_DELAY_MS = 400;
|
|
19
19
|
/** How long the drag may be outside an open band before the peek ends. */
|
|
20
|
-
declare const KANBAN_BAND_PEEK_LINGER_MS = 150;
|
|
20
|
+
export declare const KANBAN_BAND_PEEK_LINGER_MS = 150;
|
|
21
21
|
/** Runs `callback` after `ms`; the returned function cancels it. */
|
|
22
|
-
type BandPeekScheduler = (callback: () => void, ms: number) => () => void;
|
|
23
|
-
type BandPeekControllerOptions = {
|
|
22
|
+
export type BandPeekScheduler = (callback: () => void, ms: number) => () => void;
|
|
23
|
+
export type BandPeekControllerOptions = {
|
|
24
24
|
/** Receives the band currently peeked open, or `null`. */
|
|
25
25
|
onChange: (peekingBandId: string | null) => void;
|
|
26
26
|
delayMs?: number;
|
|
@@ -28,7 +28,7 @@ type BandPeekControllerOptions = {
|
|
|
28
28
|
/** Injectable so tests drive a manual clock. */
|
|
29
29
|
schedule?: BandPeekScheduler;
|
|
30
30
|
};
|
|
31
|
-
type BandPeekController = {
|
|
31
|
+
export type BandPeekController = {
|
|
32
32
|
/** A dragged card moved over a band's folded slot. */
|
|
33
33
|
slotDragOver: (bandId: string) => void;
|
|
34
34
|
/** The drag left a band's folded slot. */
|
|
@@ -54,6 +54,5 @@ type BandPeekController = {
|
|
|
54
54
|
/** Ends any pending timer, for unmount. */
|
|
55
55
|
dispose: () => void;
|
|
56
56
|
};
|
|
57
|
-
declare const createBandPeekController: ({ onChange, delayMs, lingerMs, schedule }: BandPeekControllerOptions) => BandPeekController;
|
|
58
|
-
//#endregion
|
|
59
|
-
export { BandPeekController, BandPeekControllerOptions, BandPeekScheduler, KANBAN_BAND_PEEK_DELAY_MS, KANBAN_BAND_PEEK_LINGER_MS, createBandPeekController };
|
|
57
|
+
export declare const createBandPeekController: ({ onChange, delayMs, lingerMs, schedule }: BandPeekControllerOptions) => BandPeekController;
|
|
58
|
+
//#endregion
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* board could hold. Here the caller names its reserved ids once and vetoes the
|
|
9
9
|
* rest through a predicate.
|
|
10
10
|
*/
|
|
11
|
-
type KanbanCardFieldSelection = {
|
|
11
|
+
export type KanbanCardFieldSelection = {
|
|
12
12
|
/** Field ids the card renders itself, so they are not repeated as values. */
|
|
13
13
|
reservedFieldIds: readonly string[];
|
|
14
14
|
/**
|
|
@@ -22,6 +22,5 @@ type KanbanCardFieldSelection = {
|
|
|
22
22
|
* The visible field ids a card renders as property values, in view order and
|
|
23
23
|
* without duplicates.
|
|
24
24
|
*/
|
|
25
|
-
declare const selectKanbanCardFieldIds: (visibleFieldIds: readonly string[], { reservedFieldIds, isRenderable }: KanbanCardFieldSelection) => string[];
|
|
26
|
-
//#endregion
|
|
27
|
-
export { KanbanCardFieldSelection, selectKanbanCardFieldIds };
|
|
25
|
+
export declare const selectKanbanCardFieldIds: (visibleFieldIds: readonly string[], { reservedFieldIds, isRenderable }: KanbanCardFieldSelection) => string[];
|
|
26
|
+
//#endregion
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ReactNode, RefObject } from "react";
|
|
2
2
|
//#region src/kanban/card-shell.d.ts
|
|
3
|
-
type KanbanCardShellProps = {
|
|
3
|
+
export type KanbanCardShellProps = {
|
|
4
4
|
children: ReactNode;
|
|
5
5
|
/** Overlay slot pinned to the top-end corner (row actions). */
|
|
6
6
|
actions?: ReactNode;
|
|
@@ -66,6 +66,5 @@ type KanbanCardShellProps = {
|
|
|
66
66
|
* Nothing here clips its overflow: a pinned identity row stops sticking the
|
|
67
67
|
* moment anything between it and the scroll container clips.
|
|
68
68
|
*/
|
|
69
|
-
declare const KanbanCardShell: ({ children, actions, actionsVisibility, stickyHeader, active, onOpen, bodyRef, dragRef, className }: KanbanCardShellProps) => import("react").JSX.Element;
|
|
70
|
-
//#endregion
|
|
71
|
-
export { KanbanCardShell, KanbanCardShellProps };
|
|
69
|
+
export declare const KanbanCardShell: ({ children, actions, actionsVisibility, stickyHeader, active, onOpen, bodyRef, dragRef, className }: KanbanCardShellProps) => import("react").JSX.Element;
|
|
70
|
+
//#endregion
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Button } from "../components/button.js";
|
|
2
2
|
import { ComponentProps } from "react";
|
|
3
3
|
//#region src/kanban/cell-action.d.ts
|
|
4
|
-
type KanbanCellActionProps = Omit<ComponentProps<typeof Button>, "variant">;
|
|
4
|
+
export type KanbanCellActionProps = Omit<ComponentProps<typeof Button>, "variant">;
|
|
5
5
|
/**
|
|
6
6
|
* The quiet action at the end of a cell: a full-width row that adds a card to
|
|
7
7
|
* that column and lane.
|
|
@@ -18,6 +18,5 @@ type KanbanCellActionProps = Omit<ComponentProps<typeof Button>, "variant">;
|
|
|
18
18
|
* since the button's own size drops a step at `sm` and the row has to hold the
|
|
19
19
|
* board's chrome rhythm at every width.
|
|
20
20
|
*/
|
|
21
|
-
declare const KanbanCellAction: ({ children, className, ...props }: KanbanCellActionProps) => import("react").JSX.Element;
|
|
22
|
-
//#endregion
|
|
23
|
-
export { KanbanCellAction, KanbanCellActionProps };
|
|
21
|
+
export declare const KanbanCellAction: ({ children, className, ...props }: KanbanCellActionProps) => import("react").JSX.Element;
|
|
22
|
+
//#endregion
|
|
@@ -5,10 +5,10 @@ import { ReactNode } from "react";
|
|
|
5
5
|
* over whatever replaces the caption (the folded slot), which matters to the
|
|
6
6
|
* board's peek behaviour; a keyboard activation does not.
|
|
7
7
|
*/
|
|
8
|
-
type KanbanBandToggleActivation = {
|
|
8
|
+
export type KanbanBandToggleActivation = {
|
|
9
9
|
viaPointer: boolean;
|
|
10
10
|
};
|
|
11
|
-
type KanbanColumnBandHeaderProps = {
|
|
11
|
+
export type KanbanColumnBandHeaderProps = {
|
|
12
12
|
/** The band name, or the control that has taken its place. */
|
|
13
13
|
title: ReactNode;
|
|
14
14
|
/** Colour swatch for the band. */
|
|
@@ -39,6 +39,5 @@ type KanbanColumnBandHeaderProps = {
|
|
|
39
39
|
* Folded, only the toggle remains in this line; the band's name moves down
|
|
40
40
|
* into the narrow column body, where the height is already there.
|
|
41
41
|
*/
|
|
42
|
-
declare const KanbanColumnBandHeader: ({ title, swatch, meta, collapsed, compact, toggleLabel, onCollapsedChange, actions }: KanbanColumnBandHeaderProps) => import("react").JSX.Element;
|
|
43
|
-
//#endregion
|
|
44
|
-
export { KanbanBandToggleActivation, KanbanColumnBandHeader, KanbanColumnBandHeaderProps };
|
|
42
|
+
export declare const KanbanColumnBandHeader: ({ title, swatch, meta, collapsed, compact, toggleLabel, onCollapsedChange, actions }: KanbanColumnBandHeaderProps) => import("react").JSX.Element;
|
|
43
|
+
//#endregion
|
|
@@ -11,18 +11,18 @@ import { KanbanBoardColumn } from "./matrix.js";
|
|
|
11
11
|
* `resolveKanbanColumnBands` derives from the columns' `band` metadata.
|
|
12
12
|
*/
|
|
13
13
|
/** Every board column takes this inline size; a collapsed band takes one lane. */
|
|
14
|
-
declare const KANBAN_COLUMN_WIDTH_CLASS = "w-[300px] shrink-0";
|
|
15
|
-
declare const KANBAN_COLUMN_WIDTH_PX = 300;
|
|
14
|
+
export declare const KANBAN_COLUMN_WIDTH_CLASS = "w-[300px] shrink-0";
|
|
15
|
+
export declare const KANBAN_COLUMN_WIDTH_PX = 300;
|
|
16
16
|
/** The `gap-3` between columns, so a band header can span its columns. */
|
|
17
|
-
declare const KANBAN_COLUMN_GAP_PX = 12;
|
|
17
|
+
export declare const KANBAN_COLUMN_GAP_PX = 12;
|
|
18
18
|
/** A collapsed band folds its columns into one narrow lane. */
|
|
19
|
-
declare const KANBAN_COLLAPSED_BAND_WIDTH_CLASS = "w-12 shrink-0";
|
|
20
|
-
declare const KANBAN_COLLAPSED_BAND_WIDTH_PX = 48;
|
|
19
|
+
export declare const KANBAN_COLLAPSED_BAND_WIDTH_CLASS = "w-12 shrink-0";
|
|
20
|
+
export declare const KANBAN_COLLAPSED_BAND_WIDTH_PX = 48;
|
|
21
21
|
/**
|
|
22
22
|
* A run of adjacent columns under one header. `band` is `null` for a column
|
|
23
23
|
* that belongs to no band, which renders as a run of one without a header.
|
|
24
24
|
*/
|
|
25
|
-
type KanbanColumnBandSpan = {
|
|
25
|
+
export type KanbanColumnBandSpan = {
|
|
26
26
|
band: KanbanColumnBand | null;
|
|
27
27
|
columns: KanbanBoardColumn[];
|
|
28
28
|
};
|
|
@@ -34,8 +34,7 @@ type KanbanColumnBandSpan = {
|
|
|
34
34
|
* not a state to render, because a header that spans two separate runs has no
|
|
35
35
|
* meaning. The check fails loudly instead of silently drawing a second header.
|
|
36
36
|
*/
|
|
37
|
-
declare const resolveKanbanColumnBands: (columns: readonly KanbanBoardColumn[]) => KanbanColumnBandSpan[];
|
|
37
|
+
export declare const resolveKanbanColumnBands: (columns: readonly KanbanBoardColumn[]) => KanbanColumnBandSpan[];
|
|
38
38
|
/** Whether any presented column carries band metadata. */
|
|
39
|
-
declare const hasKanbanColumnBands: (columns: readonly KanbanBoardColumn[]) => boolean;
|
|
40
|
-
//#endregion
|
|
41
|
-
export { KANBAN_COLLAPSED_BAND_WIDTH_CLASS, KANBAN_COLLAPSED_BAND_WIDTH_PX, KANBAN_COLUMN_GAP_PX, KANBAN_COLUMN_WIDTH_CLASS, KANBAN_COLUMN_WIDTH_PX, KanbanColumnBandSpan, hasKanbanColumnBands, resolveKanbanColumnBands };
|
|
39
|
+
export declare const hasKanbanColumnBands: (columns: readonly KanbanBoardColumn[]) => boolean;
|
|
40
|
+
//#endregion
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ReactNode } from "react";
|
|
2
2
|
//#region src/kanban/column-header.d.ts
|
|
3
|
-
type KanbanColumnHeaderProps = {
|
|
3
|
+
export type KanbanColumnHeaderProps = {
|
|
4
4
|
/** Colour swatch, or the control that changes it. */
|
|
5
5
|
swatch?: ReactNode;
|
|
6
6
|
/** The column name, or the editor that has taken its place. */
|
|
@@ -25,6 +25,5 @@ type KanbanColumnHeaderProps = {
|
|
|
25
25
|
* lines up with the lane rows under it. The title clips instead of wrapping
|
|
26
26
|
* so a long name can never grow the row past that height.
|
|
27
27
|
*/
|
|
28
|
-
declare const KanbanColumnHeader: ({ swatch, title, meta, calculation, dragHandle, actions, className }: KanbanColumnHeaderProps) => import("react").JSX.Element;
|
|
29
|
-
//#endregion
|
|
30
|
-
export { KanbanColumnHeader, KanbanColumnHeaderProps };
|
|
28
|
+
export declare const KanbanColumnHeader: ({ swatch, title, meta, calculation, dragHandle, actions, className }: KanbanColumnHeaderProps) => import("react").JSX.Element;
|
|
29
|
+
//#endregion
|
|
@@ -8,8 +8,8 @@ type AtlaskitDraggableOptions = Parameters<typeof draggable>[0];
|
|
|
8
8
|
* kanban card drag from everything else. Pragmatic's `getInitialData` never
|
|
9
9
|
* reaches those native events; only data attached this way does.
|
|
10
10
|
*/
|
|
11
|
-
declare const KANBAN_CARD_DRAG_MIME: "application/x-stella-kanban-card";
|
|
12
|
-
type RegisterKanbanCardDragOptions = {
|
|
11
|
+
export declare const KANBAN_CARD_DRAG_MIME: "application/x-stella-kanban-card";
|
|
12
|
+
export type RegisterKanbanCardDragOptions = {
|
|
13
13
|
/** The drag wrapper rendered by `KanbanCardShell`. */
|
|
14
14
|
element: AtlaskitDraggableOptions["element"];
|
|
15
15
|
/** Domain data read by the board's drop monitor. */
|
|
@@ -26,18 +26,17 @@ type RegisterKanbanCardDragOptions = {
|
|
|
26
26
|
* or persist a drop. It owns the interaction every card shares, including a
|
|
27
27
|
* pointer-centred preview cloned from the styled card inside the shell.
|
|
28
28
|
*/
|
|
29
|
-
declare const registerKanbanCardDrag: ({ element, getInitialData, canDrag, onDragStart, onDrop }: RegisterKanbanCardDragOptions) => (() => void);
|
|
30
|
-
declare const KANBAN_BOARD_AUTO_SCROLL_SOURCES: {
|
|
29
|
+
export declare const registerKanbanCardDrag: ({ element, getInitialData, canDrag, onDragStart, onDrop }: RegisterKanbanCardDragOptions) => (() => void);
|
|
30
|
+
export declare const KANBAN_BOARD_AUTO_SCROLL_SOURCES: {
|
|
31
31
|
readonly elements: "elements";
|
|
32
32
|
readonly elementsAndExternal: "elements-and-external";
|
|
33
33
|
};
|
|
34
34
|
type KanbanBoardAutoScrollSource = (typeof KANBAN_BOARD_AUTO_SCROLL_SOURCES)[keyof typeof KANBAN_BOARD_AUTO_SCROLL_SOURCES];
|
|
35
|
-
type RegisterKanbanBoardAutoScrollOptions = {
|
|
35
|
+
export type RegisterKanbanBoardAutoScrollOptions = {
|
|
36
36
|
element: HTMLElement;
|
|
37
37
|
/** External sources include files dragged in from outside the page. */
|
|
38
38
|
sources: KanbanBoardAutoScrollSource;
|
|
39
39
|
};
|
|
40
40
|
/** Register horizontal auto-scroll at the board's overflow boundary. */
|
|
41
|
-
declare const registerKanbanBoardAutoScroll: ({ element, sources }: RegisterKanbanBoardAutoScrollOptions) => (() => void);
|
|
42
|
-
//#endregion
|
|
43
|
-
export { KANBAN_BOARD_AUTO_SCROLL_SOURCES, KANBAN_CARD_DRAG_MIME, RegisterKanbanBoardAutoScrollOptions, RegisterKanbanCardDragOptions, registerKanbanBoardAutoScroll, registerKanbanCardDrag };
|
|
41
|
+
export declare const registerKanbanBoardAutoScroll: ({ element, sources }: RegisterKanbanBoardAutoScrollOptions) => (() => void);
|
|
42
|
+
//#endregion
|
|
@@ -5,13 +5,13 @@ import { OptionColor } from "../lib/option-color.js";
|
|
|
5
5
|
* shows under one header and can collapse as a unit. A status property's
|
|
6
6
|
* option groups ("To do", "In progress", "Done") are the usual source.
|
|
7
7
|
*/
|
|
8
|
-
type KanbanColumnBand = {
|
|
8
|
+
export type KanbanColumnBand = {
|
|
9
9
|
id: string;
|
|
10
10
|
label: string;
|
|
11
11
|
optionColor?: OptionColor | undefined;
|
|
12
12
|
};
|
|
13
13
|
/** One column, before the uncategorized bucket is appended. */
|
|
14
|
-
type KanbanGroupOption = {
|
|
14
|
+
export type KanbanGroupOption = {
|
|
15
15
|
value: string;
|
|
16
16
|
label: string;
|
|
17
17
|
image?: string | null | undefined;
|
|
@@ -21,7 +21,7 @@ type KanbanGroupOption = {
|
|
|
21
21
|
band?: KanbanColumnBand | undefined;
|
|
22
22
|
};
|
|
23
23
|
/** A column, including the uncategorized bucket (`value: null`). */
|
|
24
|
-
type KanbanGroup = {
|
|
24
|
+
export type KanbanGroup = {
|
|
25
25
|
value: string | null;
|
|
26
26
|
label: string;
|
|
27
27
|
image?: string | null | undefined;
|
|
@@ -37,7 +37,7 @@ type KanbanGroup = {
|
|
|
37
37
|
* built-in grouping is a data declaration rather than a branch this module has
|
|
38
38
|
* to know about.
|
|
39
39
|
*/
|
|
40
|
-
type KanbanBuiltInGroup<TRow, TGroupId extends string = string> = {
|
|
40
|
+
export type KanbanBuiltInGroup<TRow, TGroupId extends string = string> = {
|
|
41
41
|
/** Reserved group id, distinct from any property id. */
|
|
42
42
|
id: TGroupId;
|
|
43
43
|
/** Ordered columns, without the uncategorized bucket. */
|
|
@@ -55,13 +55,13 @@ type KanbanBuiltInGroup<TRow, TGroupId extends string = string> = {
|
|
|
55
55
|
* which keeps the decision — and the property model it depends on — with the
|
|
56
56
|
* caller.
|
|
57
57
|
*/
|
|
58
|
-
type KanbanSchema<TRow, TProperty, TGroupId extends string = string> = {
|
|
58
|
+
export type KanbanSchema<TRow, TProperty, TGroupId extends string = string> = {
|
|
59
59
|
builtInGroups: readonly KanbanBuiltInGroup<TRow, TGroupId>[];
|
|
60
60
|
properties: readonly TProperty[];
|
|
61
61
|
getPropertyId: (property: TProperty) => TGroupId;
|
|
62
62
|
getPropertyOptions: (property: TProperty) => readonly KanbanGroupOption[] | null;
|
|
63
63
|
};
|
|
64
|
-
type KanbanGrouping<TRow, TProperty, TGroupId extends string = string> = {
|
|
64
|
+
export type KanbanGrouping<TRow, TProperty, TGroupId extends string = string> = {
|
|
65
65
|
type: "none";
|
|
66
66
|
} | {
|
|
67
67
|
type: "built-in";
|
|
@@ -73,26 +73,25 @@ type KanbanGrouping<TRow, TProperty, TGroupId extends string = string> = {
|
|
|
73
73
|
property: TProperty;
|
|
74
74
|
options: readonly KanbanGroupOption[];
|
|
75
75
|
};
|
|
76
|
-
type ResolveKanbanGroupingParams<TRow, TProperty, TGroupId extends string = string> = {
|
|
76
|
+
export type ResolveKanbanGroupingParams<TRow, TProperty, TGroupId extends string = string> = {
|
|
77
77
|
/** The group-by id the view carries; empty means no grouping. */
|
|
78
78
|
groupBy: TGroupId | "";
|
|
79
79
|
schema: KanbanSchema<TRow, TProperty, TGroupId>;
|
|
80
80
|
};
|
|
81
81
|
/** Resolve a stored group-by id against a schema. */
|
|
82
|
-
declare const resolveKanbanGrouping: <TRow, TProperty, TGroupId extends string = string>({ groupBy, schema }: ResolveKanbanGroupingParams<TRow, TProperty, TGroupId>) => KanbanGrouping<TRow, TProperty, TGroupId>;
|
|
83
|
-
declare const getKanbanGroupingPropertyId: <TRow, TProperty, TGroupId extends string = string>(grouping: KanbanGrouping<TRow, TProperty, TGroupId>) => TGroupId | null;
|
|
82
|
+
export declare const resolveKanbanGrouping: <TRow, TProperty, TGroupId extends string = string>({ groupBy, schema }: ResolveKanbanGroupingParams<TRow, TProperty, TGroupId>) => KanbanGrouping<TRow, TProperty, TGroupId>;
|
|
83
|
+
export declare const getKanbanGroupingPropertyId: <TRow, TProperty, TGroupId extends string = string>(grouping: KanbanGrouping<TRow, TProperty, TGroupId>) => TGroupId | null;
|
|
84
84
|
/**
|
|
85
85
|
* A grouping with no columns is not a board. A built-in grouping declares its
|
|
86
86
|
* columns up front, so an empty declaration is the signal that the board cannot
|
|
87
87
|
* be drawn; a property grouping always draws, even when the property has no
|
|
88
88
|
* options yet, because rows still land in the uncategorized bucket.
|
|
89
89
|
*/
|
|
90
|
-
declare const isKanbanGroupingRenderable: <TRow, TProperty, TGroupId extends string = string>(grouping: KanbanGrouping<TRow, TProperty, TGroupId>) => boolean;
|
|
90
|
+
export declare const isKanbanGroupingRenderable: <TRow, TProperty, TGroupId extends string = string>(grouping: KanbanGrouping<TRow, TProperty, TGroupId>) => boolean;
|
|
91
91
|
/** The rows a grouping can place on the board, in their incoming order. */
|
|
92
|
-
declare const selectKanbanRows: <TRow, TProperty, TGroupId extends string = string>(rows: readonly TRow[], grouping: KanbanGrouping<TRow, TProperty, TGroupId>) => TRow[];
|
|
92
|
+
export declare const selectKanbanRows: <TRow, TProperty, TGroupId extends string = string>(rows: readonly TRow[], grouping: KanbanGrouping<TRow, TProperty, TGroupId>) => TRow[];
|
|
93
93
|
/** The static column options for a grouping, excluding uncategorized. */
|
|
94
|
-
declare const resolveKanbanGroupOptions: <TRow, TProperty, TGroupId extends string = string>(grouping: KanbanGrouping<TRow, TProperty, TGroupId>) => readonly KanbanGroupOption[];
|
|
94
|
+
export declare const resolveKanbanGroupOptions: <TRow, TProperty, TGroupId extends string = string>(grouping: KanbanGrouping<TRow, TProperty, TGroupId>) => readonly KanbanGroupOption[];
|
|
95
95
|
/** Append the uncategorized bucket (null value) after the options. */
|
|
96
|
-
declare const getKanbanGroups: (options: readonly KanbanGroupOption[], uncategorizedLabel: string) => KanbanGroup[];
|
|
97
|
-
//#endregion
|
|
98
|
-
export { KanbanBuiltInGroup, KanbanColumnBand, KanbanGroup, KanbanGroupOption, KanbanGrouping, KanbanSchema, ResolveKanbanGroupingParams, getKanbanGroupingPropertyId, getKanbanGroups, isKanbanGroupingRenderable, resolveKanbanGroupOptions, resolveKanbanGrouping, selectKanbanRows };
|
|
96
|
+
export declare const getKanbanGroups: (options: readonly KanbanGroupOption[], uncategorizedLabel: string) => KanbanGroup[];
|
|
97
|
+
//#endregion
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
* the first card and each one costs the cards their space. Fixed rather than
|
|
24
24
|
* minimum: a row that grows with its content moves every offset below it.
|
|
25
25
|
*/
|
|
26
|
-
declare const KANBAN_CHROME_ROW_HEIGHT: "h-9";
|
|
27
|
-
declare const KANBAN_CHROME_ROW_HEIGHT_PX: 36;
|
|
26
|
+
export declare const KANBAN_CHROME_ROW_HEIGHT: "h-9";
|
|
27
|
+
export declare const KANBAN_CHROME_ROW_HEIGHT_PX: 36;
|
|
28
28
|
/**
|
|
29
29
|
* The band caption line, on the chrome row height like everything else: a band
|
|
30
30
|
* names the run of columns under it, so its caption reads as their parent. A
|
|
@@ -34,8 +34,8 @@ declare const KANBAN_CHROME_ROW_HEIGHT_PX: 36;
|
|
|
34
34
|
* Still named for the caption, because that row is the one a caller composes
|
|
35
35
|
* against when it renders a band header of its own.
|
|
36
36
|
*/
|
|
37
|
-
declare const KANBAN_BAND_CAPTION_ROW_HEIGHT: "h-9";
|
|
38
|
-
declare const KANBAN_BAND_CAPTION_ROW_HEIGHT_PX: 36;
|
|
37
|
+
export declare const KANBAN_BAND_CAPTION_ROW_HEIGHT: "h-9";
|
|
38
|
+
export declare const KANBAN_BAND_CAPTION_ROW_HEIGHT_PX: 36;
|
|
39
39
|
/**
|
|
40
40
|
* A finger's 44px target on a control the chrome row keeps at its own height.
|
|
41
41
|
*
|
|
@@ -46,6 +46,5 @@ declare const KANBAN_BAND_CAPTION_ROW_HEIGHT_PX: 36;
|
|
|
46
46
|
* distance either way, and neither spills into the row underneath: an inset
|
|
47
47
|
* grows a short control downwards by whatever it is short by.
|
|
48
48
|
*/
|
|
49
|
-
declare const KANBAN_CHROME_TOGGLE_COARSE_TARGET_CLASS = "relative pointer-coarse:after:absolute pointer-coarse:after:inset-x-0 pointer-coarse:after:top-1/2 pointer-coarse:after:h-11 pointer-coarse:after:-translate-y-1/2";
|
|
50
|
-
//#endregion
|
|
51
|
-
export { KANBAN_BAND_CAPTION_ROW_HEIGHT, KANBAN_BAND_CAPTION_ROW_HEIGHT_PX, KANBAN_CHROME_ROW_HEIGHT, KANBAN_CHROME_ROW_HEIGHT_PX, KANBAN_CHROME_TOGGLE_COARSE_TARGET_CLASS };
|
|
49
|
+
export declare const KANBAN_CHROME_TOGGLE_COARSE_TARGET_CLASS = "relative pointer-coarse:after:absolute pointer-coarse:after:inset-x-0 pointer-coarse:after:top-1/2 pointer-coarse:after:h-11 pointer-coarse:after:-translate-y-1/2";
|
|
50
|
+
//#endregion
|