@n-uf/hypr-tiling 26.7.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.
@@ -0,0 +1,74 @@
1
+ import { J as TilingRenderTileProps } from './tiling-renderer-kTlSm4H4.mjs';
2
+ export { K as DEFAULT_DRAG_ANIMATION_SPEED_PERCENT, L as DEFAULT_TILE_ACCENT, M as DEFAULT_TILING_LAYOUT_CONFIG, N as DEFAULT_TILING_THEME_ID, O as DRAG_ANIMATION_SPEED_MAX_PERCENT, P as DRAG_ANIMATION_SPEED_MIN_PERCENT, Q as ResolvedTilingDragRecoveryCapability, S as ResolvedTilingDropHitZoneGeometryCapability, U as ResolvedTilingGroupingCapability, R as ResolvedTilingInteractionCapabilities, V as ResolvedTilingKeyBindings, W as ResolvedTilingKeyChord, X as ResolvedTilingKeyChordModifiers, u as ResolvedTilingKeymap, Y as ResolvedTilingMaximizeCapability, Z as ResolvedTilingPaneSwitchingCapability, _ as ResolvedTilingPaneTitleBarControlsCapability, $ as ResolvedTilingSlotCommitmentCapability, a0 as ResolvedTilingTouchDragCapability, a1 as TILING_ACCENT_HUES, a2 as TILING_THEMES, a3 as TILING_THEME_REGISTRY, a4 as TILING_TILE_ACCENTS, a5 as TILING_TILE_ACCENT_SWATCHES, C as TilingAccentHue, x as TilingCommand, a6 as TilingCommandHandle, a7 as TilingDragMode, a8 as TilingDragRecoveryCapability, s as TilingDropAction, a9 as TilingDropHitZoneGeometryCapability, g as TilingFocusDirection, aa as TilingGroupMemberView, ab as TilingGroupNode, ac as TilingGroupingCapability, ad as TilingInteractionCapabilities, v as TilingKeyBinding, ae as TilingKeyBindings, af as TilingKeyChord, ag as TilingKeyChordModifiers, ah as TilingKeymap, a as TilingLayoutConfig, ai as TilingLayoutMode, T as TilingLayoutNode, aj as TilingLeafDropPreview, r as TilingLeafDropZone, ak as TilingLeafNode, al as TilingLeafPreviewMode, am as TilingLeafPreviewRole, an as TilingMasterOrientation, ao as TilingMaximizeCapability, ap as TilingMovePlacement, aq as TilingPaneBodyRenderMode, ar as TilingPaneCycleDirection, z as TilingPaneSizing, A as TilingPaneSizingMode, as as TilingPaneSwitchingCapability, at as TilingPaneTitleBarControlsCapability, au as TilingRenderSurface, av as TilingRenderTileGroupContext, aw as TilingRenderer, ax as TilingRendererProps, ay as TilingResizeCapability, az as TilingSlotCommitmentCapability, aA as TilingSlotCommitmentMode, t as TilingSplitAxis, f as TilingSplitNode, aB as TilingTheme, aC as TilingThemeDividerTokens, aD as TilingThemeGhostTokens, aE as TilingThemeId, aF as TilingThemePaneHeaderTokens, aG as TilingThemePaneShellTokens, aH as TilingThemeProvider, aI as TilingThemeRootTokens, aJ as TilingThemeTopBarTokens, aK as TilingTile, aL as TilingTileAccent, aM as TilingTileAccentSwatch, aN as TilingTitleBarSizingMode, aO as TilingTouchDragCapability, aP as resolveTilingTheme, aQ as useTilingTheme } from './tiling-renderer-kTlSm4H4.mjs';
3
+ import * as React from 'react';
4
+ export { K as DEFAULT_DRAG_HOP_EASING, L as DEFAULT_DRAG_REFLOW_EASING, N as MultiSelectModifierState, O as TILING_DASHBOARD_PRESET, P as TILING_INTERACTION_CAPABILITY_DEFAULTS, Q as TilingCommandGates, R as TilingLayoutQuery, S as isCommandEnabled, U as isMultiSelectModifierActive, V as queryTilingLayout, W as resolveInteractionCapabilities, X as resolveJumpedPaneId } from './drag-easing-KxPPNNZT.mjs';
5
+
6
+ /** Props for {@link TilingPaneRoot}. */
7
+ interface TilingPaneRootProps extends Omit<React.HTMLAttributes<HTMLElement>, "onFocus" | "onClick" | "onPointerMove" | "onPointerLeave"> {
8
+ /**
9
+ * The `renderTile` args for this pane (only its `leafId` and the focus/hover
10
+ * handlers are read). Pass the whole args object; the primitive wires the
11
+ * root correctly.
12
+ */
13
+ pane: Pick<TilingRenderTileProps, "leafId" | "onFocus" | "onPointerMove" | "onPointerLeave">;
14
+ }
15
+ /**
16
+ * The root element of a custom pane. Renders an `<article data-leaf-id>` (the
17
+ * attribute the renderer resolves the drag source from) and wires the pane's
18
+ * `onFocus` (on both focus and click), `onPointerMove`, and `onPointerLeave`
19
+ * handlers, so focus, resize, and pre-drag hover telemetry keep working. Bring
20
+ * your own `className` / `style` / children; defaults `tabIndex` to `-1`.
21
+ *
22
+ * @param props - {@link TilingPaneRootProps}
23
+ */
24
+ declare function TilingPaneRoot({ pane, ...rest }: TilingPaneRootProps): React.ReactElement;
25
+ /** Props for {@link TilingDragHandle}. */
26
+ interface TilingDragHandleProps extends Omit<React.HTMLAttributes<HTMLElement>, "onPointerDown" | "onClick"> {
27
+ /**
28
+ * The `renderTile` args for this pane (the drag-pickup handler and the
29
+ * multi-select toggle handlers are read). Pass the whole args object.
30
+ */
31
+ pane: Pick<TilingRenderTileProps, "onHandlePointerDown" | "isMultiSelectGroupingEnabled" | "onToggleMultiSelect">;
32
+ }
33
+ /**
34
+ * The drag-pickup surface of a custom pane (typically the header). Wires the
35
+ * renderer's `onHandlePointerDown` and sets `touch-action: none` so a touch
36
+ * press starts a drag instead of scrolling, and folds in the Alt/Opt+click
37
+ * multi-select toggle (which must not establish focus). Renders a `<div>`;
38
+ * bring your own `className` / `style` / children.
39
+ *
40
+ * @param props - {@link TilingDragHandleProps}
41
+ */
42
+ declare function TilingDragHandle({ pane, style, ...rest }: TilingDragHandleProps): React.ReactElement;
43
+ /** Props for {@link TilingPaneAction}. */
44
+ type TilingPaneActionProps = React.ButtonHTMLAttributes<HTMLButtonElement>;
45
+ /**
46
+ * A header action button (maximize, group, …) that `stopPropagation`s on both
47
+ * pointer-down and click, so activating it never starts a drag or steals pane
48
+ * focus. Defaults `type` to `"button"` and calls your `onClick` after stopping
49
+ * propagation. Bring your own `className` / `style` / children.
50
+ *
51
+ * @param props - {@link TilingPaneActionProps}
52
+ */
53
+ declare function TilingPaneAction({ onClick, type, ...rest }: TilingPaneActionProps): React.ReactElement;
54
+ /** Props for {@link TilingPaneBody}. */
55
+ interface TilingPaneBodyProps extends React.HTMLAttributes<HTMLDivElement> {
56
+ /**
57
+ * The `renderTile` args for this pane (only `paneBodyRenderMode` is read).
58
+ * Pass the whole args object.
59
+ */
60
+ pane: Pick<TilingRenderTileProps, "paneBodyRenderMode">;
61
+ }
62
+ /**
63
+ * The body wrapper of a custom pane. Always renders its wrapper `<div>` (so the
64
+ * pane keeps its layout), but renders children ONLY when
65
+ * `paneBodyRenderMode === "render-content"`. This keeps a custom pane aligned
66
+ * with the renderer's drag-ghost / hidden-body semantics — the ghost reuses the
67
+ * same render path, so an empty body never rides along. Bring your own
68
+ * `className` / `style`.
69
+ *
70
+ * @param props - {@link TilingPaneBodyProps}
71
+ */
72
+ declare function TilingPaneBody({ pane, children, ...rest }: TilingPaneBodyProps): React.ReactElement;
73
+
74
+ export { TilingDragHandle, type TilingDragHandleProps, TilingPaneAction, type TilingPaneActionProps, TilingPaneBody, type TilingPaneBodyProps, TilingPaneRoot, type TilingPaneRootProps, TilingRenderTileProps };
@@ -0,0 +1,74 @@
1
+ import { J as TilingRenderTileProps } from './tiling-renderer-kTlSm4H4.js';
2
+ export { K as DEFAULT_DRAG_ANIMATION_SPEED_PERCENT, L as DEFAULT_TILE_ACCENT, M as DEFAULT_TILING_LAYOUT_CONFIG, N as DEFAULT_TILING_THEME_ID, O as DRAG_ANIMATION_SPEED_MAX_PERCENT, P as DRAG_ANIMATION_SPEED_MIN_PERCENT, Q as ResolvedTilingDragRecoveryCapability, S as ResolvedTilingDropHitZoneGeometryCapability, U as ResolvedTilingGroupingCapability, R as ResolvedTilingInteractionCapabilities, V as ResolvedTilingKeyBindings, W as ResolvedTilingKeyChord, X as ResolvedTilingKeyChordModifiers, u as ResolvedTilingKeymap, Y as ResolvedTilingMaximizeCapability, Z as ResolvedTilingPaneSwitchingCapability, _ as ResolvedTilingPaneTitleBarControlsCapability, $ as ResolvedTilingSlotCommitmentCapability, a0 as ResolvedTilingTouchDragCapability, a1 as TILING_ACCENT_HUES, a2 as TILING_THEMES, a3 as TILING_THEME_REGISTRY, a4 as TILING_TILE_ACCENTS, a5 as TILING_TILE_ACCENT_SWATCHES, C as TilingAccentHue, x as TilingCommand, a6 as TilingCommandHandle, a7 as TilingDragMode, a8 as TilingDragRecoveryCapability, s as TilingDropAction, a9 as TilingDropHitZoneGeometryCapability, g as TilingFocusDirection, aa as TilingGroupMemberView, ab as TilingGroupNode, ac as TilingGroupingCapability, ad as TilingInteractionCapabilities, v as TilingKeyBinding, ae as TilingKeyBindings, af as TilingKeyChord, ag as TilingKeyChordModifiers, ah as TilingKeymap, a as TilingLayoutConfig, ai as TilingLayoutMode, T as TilingLayoutNode, aj as TilingLeafDropPreview, r as TilingLeafDropZone, ak as TilingLeafNode, al as TilingLeafPreviewMode, am as TilingLeafPreviewRole, an as TilingMasterOrientation, ao as TilingMaximizeCapability, ap as TilingMovePlacement, aq as TilingPaneBodyRenderMode, ar as TilingPaneCycleDirection, z as TilingPaneSizing, A as TilingPaneSizingMode, as as TilingPaneSwitchingCapability, at as TilingPaneTitleBarControlsCapability, au as TilingRenderSurface, av as TilingRenderTileGroupContext, aw as TilingRenderer, ax as TilingRendererProps, ay as TilingResizeCapability, az as TilingSlotCommitmentCapability, aA as TilingSlotCommitmentMode, t as TilingSplitAxis, f as TilingSplitNode, aB as TilingTheme, aC as TilingThemeDividerTokens, aD as TilingThemeGhostTokens, aE as TilingThemeId, aF as TilingThemePaneHeaderTokens, aG as TilingThemePaneShellTokens, aH as TilingThemeProvider, aI as TilingThemeRootTokens, aJ as TilingThemeTopBarTokens, aK as TilingTile, aL as TilingTileAccent, aM as TilingTileAccentSwatch, aN as TilingTitleBarSizingMode, aO as TilingTouchDragCapability, aP as resolveTilingTheme, aQ as useTilingTheme } from './tiling-renderer-kTlSm4H4.js';
3
+ import * as React from 'react';
4
+ export { K as DEFAULT_DRAG_HOP_EASING, L as DEFAULT_DRAG_REFLOW_EASING, N as MultiSelectModifierState, O as TILING_DASHBOARD_PRESET, P as TILING_INTERACTION_CAPABILITY_DEFAULTS, Q as TilingCommandGates, R as TilingLayoutQuery, S as isCommandEnabled, U as isMultiSelectModifierActive, V as queryTilingLayout, W as resolveInteractionCapabilities, X as resolveJumpedPaneId } from './drag-easing-5WbK3T82.js';
5
+
6
+ /** Props for {@link TilingPaneRoot}. */
7
+ interface TilingPaneRootProps extends Omit<React.HTMLAttributes<HTMLElement>, "onFocus" | "onClick" | "onPointerMove" | "onPointerLeave"> {
8
+ /**
9
+ * The `renderTile` args for this pane (only its `leafId` and the focus/hover
10
+ * handlers are read). Pass the whole args object; the primitive wires the
11
+ * root correctly.
12
+ */
13
+ pane: Pick<TilingRenderTileProps, "leafId" | "onFocus" | "onPointerMove" | "onPointerLeave">;
14
+ }
15
+ /**
16
+ * The root element of a custom pane. Renders an `<article data-leaf-id>` (the
17
+ * attribute the renderer resolves the drag source from) and wires the pane's
18
+ * `onFocus` (on both focus and click), `onPointerMove`, and `onPointerLeave`
19
+ * handlers, so focus, resize, and pre-drag hover telemetry keep working. Bring
20
+ * your own `className` / `style` / children; defaults `tabIndex` to `-1`.
21
+ *
22
+ * @param props - {@link TilingPaneRootProps}
23
+ */
24
+ declare function TilingPaneRoot({ pane, ...rest }: TilingPaneRootProps): React.ReactElement;
25
+ /** Props for {@link TilingDragHandle}. */
26
+ interface TilingDragHandleProps extends Omit<React.HTMLAttributes<HTMLElement>, "onPointerDown" | "onClick"> {
27
+ /**
28
+ * The `renderTile` args for this pane (the drag-pickup handler and the
29
+ * multi-select toggle handlers are read). Pass the whole args object.
30
+ */
31
+ pane: Pick<TilingRenderTileProps, "onHandlePointerDown" | "isMultiSelectGroupingEnabled" | "onToggleMultiSelect">;
32
+ }
33
+ /**
34
+ * The drag-pickup surface of a custom pane (typically the header). Wires the
35
+ * renderer's `onHandlePointerDown` and sets `touch-action: none` so a touch
36
+ * press starts a drag instead of scrolling, and folds in the Alt/Opt+click
37
+ * multi-select toggle (which must not establish focus). Renders a `<div>`;
38
+ * bring your own `className` / `style` / children.
39
+ *
40
+ * @param props - {@link TilingDragHandleProps}
41
+ */
42
+ declare function TilingDragHandle({ pane, style, ...rest }: TilingDragHandleProps): React.ReactElement;
43
+ /** Props for {@link TilingPaneAction}. */
44
+ type TilingPaneActionProps = React.ButtonHTMLAttributes<HTMLButtonElement>;
45
+ /**
46
+ * A header action button (maximize, group, …) that `stopPropagation`s on both
47
+ * pointer-down and click, so activating it never starts a drag or steals pane
48
+ * focus. Defaults `type` to `"button"` and calls your `onClick` after stopping
49
+ * propagation. Bring your own `className` / `style` / children.
50
+ *
51
+ * @param props - {@link TilingPaneActionProps}
52
+ */
53
+ declare function TilingPaneAction({ onClick, type, ...rest }: TilingPaneActionProps): React.ReactElement;
54
+ /** Props for {@link TilingPaneBody}. */
55
+ interface TilingPaneBodyProps extends React.HTMLAttributes<HTMLDivElement> {
56
+ /**
57
+ * The `renderTile` args for this pane (only `paneBodyRenderMode` is read).
58
+ * Pass the whole args object.
59
+ */
60
+ pane: Pick<TilingRenderTileProps, "paneBodyRenderMode">;
61
+ }
62
+ /**
63
+ * The body wrapper of a custom pane. Always renders its wrapper `<div>` (so the
64
+ * pane keeps its layout), but renders children ONLY when
65
+ * `paneBodyRenderMode === "render-content"`. This keeps a custom pane aligned
66
+ * with the renderer's drag-ghost / hidden-body semantics — the ghost reuses the
67
+ * same render path, so an empty body never rides along. Bring your own
68
+ * `className` / `style`.
69
+ *
70
+ * @param props - {@link TilingPaneBodyProps}
71
+ */
72
+ declare function TilingPaneBody({ pane, children, ...rest }: TilingPaneBodyProps): React.ReactElement;
73
+
74
+ export { TilingDragHandle, type TilingDragHandleProps, TilingPaneAction, type TilingPaneActionProps, TilingPaneBody, type TilingPaneBodyProps, TilingPaneRoot, type TilingPaneRootProps, TilingRenderTileProps };
package/dist/index.mjs ADDED
@@ -0,0 +1,125 @@
1
+ "use client";
2
+ import {
3
+ DEFAULT_DRAG_ANIMATION_SPEED_PERCENT,
4
+ DEFAULT_DRAG_HOP_EASING,
5
+ DEFAULT_DRAG_REFLOW_EASING,
6
+ DEFAULT_TILE_ACCENT,
7
+ DEFAULT_TILING_LAYOUT_CONFIG,
8
+ DEFAULT_TILING_THEME_ID,
9
+ DRAG_ANIMATION_SPEED_MAX_PERCENT,
10
+ DRAG_ANIMATION_SPEED_MIN_PERCENT,
11
+ TILING_ACCENT_HUES,
12
+ TILING_DASHBOARD_PRESET,
13
+ TILING_INTERACTION_CAPABILITY_DEFAULTS,
14
+ TILING_THEMES,
15
+ TILING_THEME_REGISTRY,
16
+ TILING_TILE_ACCENTS,
17
+ TILING_TILE_ACCENT_SWATCHES,
18
+ TilingRenderer,
19
+ TilingThemeProvider,
20
+ isCommandEnabled,
21
+ isMultiSelectModifierActive,
22
+ queryTilingLayout,
23
+ resolveInteractionCapabilities,
24
+ resolveJumpedPaneId,
25
+ resolveTilingTheme,
26
+ useTilingTheme
27
+ } from "./chunk-ZCGZOWOY.mjs";
28
+
29
+ // react/tiling-pane-primitives.tsx
30
+ import { jsx } from "react/jsx-runtime";
31
+ function TilingPaneRoot({
32
+ pane,
33
+ ...rest
34
+ }) {
35
+ return /* @__PURE__ */ jsx(
36
+ "article",
37
+ {
38
+ tabIndex: -1,
39
+ ...rest,
40
+ "data-leaf-id": pane.leafId,
41
+ onFocus: pane.onFocus,
42
+ onClick: pane.onFocus,
43
+ onPointerMove: pane.onPointerMove,
44
+ onPointerLeave: pane.onPointerLeave
45
+ }
46
+ );
47
+ }
48
+ function TilingDragHandle({
49
+ pane,
50
+ style,
51
+ ...rest
52
+ }) {
53
+ return /* @__PURE__ */ jsx(
54
+ "div",
55
+ {
56
+ ...rest,
57
+ style: { touchAction: "none", ...style },
58
+ onPointerDown: pane.onHandlePointerDown,
59
+ onClick: (event) => {
60
+ if (pane.isMultiSelectGroupingEnabled && isMultiSelectModifierActive(event)) {
61
+ event.stopPropagation();
62
+ event.preventDefault();
63
+ pane.onToggleMultiSelect();
64
+ }
65
+ }
66
+ }
67
+ );
68
+ }
69
+ function TilingPaneAction({
70
+ onClick,
71
+ type,
72
+ ...rest
73
+ }) {
74
+ return /* @__PURE__ */ jsx(
75
+ "button",
76
+ {
77
+ ...rest,
78
+ type: type ?? "button",
79
+ onPointerDown: (event) => {
80
+ event.stopPropagation();
81
+ },
82
+ onClick: (event) => {
83
+ event.stopPropagation();
84
+ onClick?.(event);
85
+ }
86
+ }
87
+ );
88
+ }
89
+ function TilingPaneBody({
90
+ pane,
91
+ children,
92
+ ...rest
93
+ }) {
94
+ return /* @__PURE__ */ jsx("div", { ...rest, children: pane.paneBodyRenderMode === "render-content" ? children : null });
95
+ }
96
+ export {
97
+ DEFAULT_DRAG_ANIMATION_SPEED_PERCENT,
98
+ DEFAULT_DRAG_HOP_EASING,
99
+ DEFAULT_DRAG_REFLOW_EASING,
100
+ DEFAULT_TILE_ACCENT,
101
+ DEFAULT_TILING_LAYOUT_CONFIG,
102
+ DEFAULT_TILING_THEME_ID,
103
+ DRAG_ANIMATION_SPEED_MAX_PERCENT,
104
+ DRAG_ANIMATION_SPEED_MIN_PERCENT,
105
+ TILING_ACCENT_HUES,
106
+ TILING_DASHBOARD_PRESET,
107
+ TILING_INTERACTION_CAPABILITY_DEFAULTS,
108
+ TILING_THEMES,
109
+ TILING_THEME_REGISTRY,
110
+ TILING_TILE_ACCENTS,
111
+ TILING_TILE_ACCENT_SWATCHES,
112
+ TilingDragHandle,
113
+ TilingPaneAction,
114
+ TilingPaneBody,
115
+ TilingPaneRoot,
116
+ TilingRenderer,
117
+ TilingThemeProvider,
118
+ isCommandEnabled,
119
+ isMultiSelectModifierActive,
120
+ queryTilingLayout,
121
+ resolveInteractionCapabilities,
122
+ resolveJumpedPaneId,
123
+ resolveTilingTheme,
124
+ useTilingTheme
125
+ };