@dxos/react-ui-stack 0.8.4-main.f9ba587 → 0.8.4-main.fcc0d83b33
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/lib/browser/index.mjs +535 -1013
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{testing → playwright}/index.mjs +5 -1
- package/dist/lib/browser/{testing → playwright}/index.mjs.map +3 -3
- package/dist/lib/browser/translations.mjs +23 -0
- package/dist/lib/browser/translations.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +535 -1013
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{testing → playwright}/index.mjs +5 -1
- package/dist/lib/node-esm/{testing → playwright}/index.mjs.map +3 -3
- package/dist/lib/node-esm/translations.mjs +25 -0
- package/dist/lib/node-esm/translations.mjs.map +7 -0
- package/dist/types/src/components/Stack/Stack.d.ts +13 -10
- package/dist/types/src/components/Stack/Stack.d.ts.map +1 -1
- package/dist/types/src/components/Stack/Stack.stories.d.ts +12 -3
- package/dist/types/src/components/Stack/Stack.stories.d.ts.map +1 -1
- package/dist/types/src/components/StackContext.d.ts +2 -1
- package/dist/types/src/components/StackContext.d.ts.map +1 -1
- package/dist/types/src/components/StackItem/MenuSignifier.d.ts.map +1 -1
- package/dist/types/src/components/StackItem/StackItem.d.ts +14 -17
- package/dist/types/src/components/StackItem/StackItem.d.ts.map +1 -1
- package/dist/types/src/components/StackItem/StackItem.stories.d.ts +13 -5
- package/dist/types/src/components/StackItem/StackItem.stories.d.ts.map +1 -1
- package/dist/types/src/components/StackItem/StackItemContent.d.ts +4 -37
- package/dist/types/src/components/StackItem/StackItemContent.d.ts.map +1 -1
- package/dist/types/src/components/StackItem/StackItemDragHandle.d.ts.map +1 -1
- package/dist/types/src/components/StackItem/StackItemHeading.d.ts +2 -2
- package/dist/types/src/components/StackItem/StackItemHeading.d.ts.map +1 -1
- package/dist/types/src/components/StackItem/StackItemResizeHandle.d.ts +1 -1
- package/dist/types/src/components/StackItem/StackItemResizeHandle.d.ts.map +1 -1
- package/dist/types/src/components/StackItem/StackItemSigil.d.ts +2 -2
- package/dist/types/src/components/StackItem/StackItemSigil.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +1 -1
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/components/{defs.d.ts → types.d.ts} +1 -1
- package/dist/types/src/components/types.d.ts.map +1 -0
- package/dist/types/src/hooks/useStackDropForElements.d.ts +9 -7
- package/dist/types/src/hooks/useStackDropForElements.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +0 -2
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/playwright/index.d.ts.map +1 -0
- package/dist/types/src/playwright/playwright.config.d.ts.map +1 -1
- package/dist/types/src/playwright/stack-manager.d.ts.map +1 -0
- package/dist/types/src/translations.d.ts +10 -10
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +54 -46
- package/src/components/Stack/Stack.stories.tsx +15 -18
- package/src/components/Stack/Stack.tsx +239 -53
- package/src/components/StackContext.tsx +2 -1
- package/src/components/StackItem/MenuSignifier.tsx +2 -9
- package/src/components/StackItem/StackItem.stories.tsx +22 -18
- package/src/components/StackItem/StackItem.tsx +61 -43
- package/src/components/StackItem/StackItemContent.tsx +25 -44
- package/src/components/StackItem/StackItemDragHandle.tsx +4 -3
- package/src/components/StackItem/StackItemHeading.tsx +17 -20
- package/src/components/StackItem/StackItemResizeHandle.tsx +2 -2
- package/src/components/StackItem/StackItemSigil.tsx +11 -7
- package/src/components/index.ts +2 -1
- package/src/hooks/useStackDropForElements.ts +61 -47
- package/src/index.ts +0 -4
- package/src/{testing → playwright}/index.ts +1 -1
- package/src/playwright/playwright.config.ts +1 -1
- package/src/playwright/smoke.spec.ts +1 -1
- package/src/translations.ts +9 -9
- package/dist/types/src/components/defs.d.ts.map +0 -1
- package/dist/types/src/components/deprecated/LayoutControls.d.ts +0 -19
- package/dist/types/src/components/deprecated/LayoutControls.d.ts.map +0 -1
- package/dist/types/src/exemplars/Card/Card.d.ts +0 -57
- package/dist/types/src/exemplars/Card/Card.d.ts.map +0 -1
- package/dist/types/src/exemplars/Card/Card.stories.d.ts +0 -13
- package/dist/types/src/exemplars/Card/Card.stories.d.ts.map +0 -1
- package/dist/types/src/exemplars/Card/CardDragPreview.d.ts +0 -6
- package/dist/types/src/exemplars/Card/CardDragPreview.d.ts.map +0 -1
- package/dist/types/src/exemplars/Card/fragments.d.ts +0 -12
- package/dist/types/src/exemplars/Card/fragments.d.ts.map +0 -1
- package/dist/types/src/exemplars/Card/index.d.ts +0 -4
- package/dist/types/src/exemplars/Card/index.d.ts.map +0 -1
- package/dist/types/src/exemplars/CardStack/CardStack.d.ts +0 -40
- package/dist/types/src/exemplars/CardStack/CardStack.d.ts.map +0 -1
- package/dist/types/src/exemplars/CardStack/CardStack.stories.d.ts +0 -9
- package/dist/types/src/exemplars/CardStack/CardStack.stories.d.ts.map +0 -1
- package/dist/types/src/exemplars/CardStack/CardStackDragPreview.d.ts +0 -9
- package/dist/types/src/exemplars/CardStack/CardStackDragPreview.d.ts.map +0 -1
- package/dist/types/src/exemplars/CardStack/index.d.ts +0 -3
- package/dist/types/src/exemplars/CardStack/index.d.ts.map +0 -1
- package/dist/types/src/exemplars/index.d.ts +0 -3
- package/dist/types/src/exemplars/index.d.ts.map +0 -1
- package/dist/types/src/testing/index.d.ts.map +0 -1
- package/dist/types/src/testing/stack-manager.d.ts.map +0 -1
- package/src/components/deprecated/LayoutControls.tsx +0 -109
- package/src/exemplars/Card/Card.stories.tsx +0 -78
- package/src/exemplars/Card/Card.tsx +0 -167
- package/src/exemplars/Card/CardDragPreview.tsx +0 -22
- package/src/exemplars/Card/fragments.ts +0 -23
- package/src/exemplars/Card/index.ts +0 -7
- package/src/exemplars/CardStack/CardStack.stories.tsx +0 -172
- package/src/exemplars/CardStack/CardStack.tsx +0 -136
- package/src/exemplars/CardStack/CardStackDragPreview.tsx +0 -61
- package/src/exemplars/CardStack/index.ts +0 -6
- package/src/exemplars/index.ts +0 -6
- /package/dist/types/src/{testing → playwright}/index.d.ts +0 -0
- /package/dist/types/src/{testing → playwright}/stack-manager.d.ts +0 -0
- /package/src/components/{defs.ts → types.ts} +0 -0
- /package/src/{testing → playwright}/stack-manager.ts +0 -0
|
@@ -2,76 +2,90 @@
|
|
|
2
2
|
// Copyright 2025 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import { combine } from '@atlaskit/pragmatic-drag-and-drop/combine';
|
|
6
|
-
import { dropTargetForElements } from '@atlaskit/pragmatic-drag-and-drop/element/adapter';
|
|
7
5
|
import { autoScrollForElements } from '@atlaskit/pragmatic-drag-and-drop-auto-scroll/element';
|
|
8
6
|
import { attachClosestEdge, extractClosestEdge } from '@atlaskit/pragmatic-drag-and-drop-hitbox/closest-edge';
|
|
7
|
+
import { combine } from '@atlaskit/pragmatic-drag-and-drop/combine';
|
|
8
|
+
import { dropTargetForElements } from '@atlaskit/pragmatic-drag-and-drop/element/adapter';
|
|
9
9
|
import { useLayoutEffect, useState } from 'react';
|
|
10
10
|
|
|
11
|
-
import { type
|
|
11
|
+
import { type Orientation, type StackItemData, type StackItemRearrangeHandler } from '../components';
|
|
12
|
+
|
|
13
|
+
const noop = () => {};
|
|
14
|
+
|
|
15
|
+
export type UseStackDropForElementsProps = {
|
|
16
|
+
id?: string;
|
|
17
|
+
element: HTMLDivElement | null;
|
|
18
|
+
scrollElement?: HTMLDivElement | null;
|
|
19
|
+
orientation: Orientation;
|
|
20
|
+
selfDroppable: boolean;
|
|
21
|
+
onRearrange?: StackItemRearrangeHandler;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export type UseStackDropForElements = {
|
|
25
|
+
dropping: boolean;
|
|
26
|
+
};
|
|
12
27
|
|
|
13
28
|
/**
|
|
14
|
-
* Hook to handle drag
|
|
29
|
+
* Hook to handle drag-and-drop functionality for Stack components.
|
|
15
30
|
*/
|
|
16
31
|
export const useStackDropForElements = ({
|
|
17
32
|
id,
|
|
18
33
|
element,
|
|
19
34
|
scrollElement = element,
|
|
20
|
-
selfDroppable,
|
|
21
35
|
orientation,
|
|
36
|
+
selfDroppable,
|
|
22
37
|
onRearrange,
|
|
23
|
-
}: {
|
|
24
|
-
id?: string;
|
|
25
|
-
element: HTMLDivElement | null;
|
|
26
|
-
scrollElement?: HTMLDivElement | null;
|
|
27
|
-
selfDroppable: boolean;
|
|
28
|
-
orientation: Orientation;
|
|
29
|
-
onRearrange?: StackItemRearrangeHandler;
|
|
30
|
-
}) => {
|
|
38
|
+
}: UseStackDropForElementsProps): UseStackDropForElements => {
|
|
31
39
|
const [dropping, setDropping] = useState(false);
|
|
32
40
|
|
|
33
41
|
useLayoutEffect(() => {
|
|
34
|
-
if (!element
|
|
42
|
+
if (!element) {
|
|
35
43
|
return;
|
|
36
44
|
}
|
|
37
45
|
|
|
38
46
|
const acceptSourceType = orientation === 'horizontal' ? 'column' : 'card';
|
|
39
47
|
|
|
48
|
+
// TODO(burdon): Use monitor?
|
|
40
49
|
return combine(
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
50
|
+
selfDroppable
|
|
51
|
+
? dropTargetForElements({
|
|
52
|
+
element,
|
|
53
|
+
getData: ({ input, element }) => {
|
|
54
|
+
return attachClosestEdge(
|
|
55
|
+
{ id, type: orientation === 'horizontal' ? 'card' : 'column' },
|
|
56
|
+
{ input, element, allowedEdges: [orientation === 'horizontal' ? 'left' : 'top'] },
|
|
57
|
+
);
|
|
58
|
+
},
|
|
59
|
+
onDragEnter: ({ source }) => {
|
|
60
|
+
if (source.data.type === acceptSourceType) {
|
|
61
|
+
setDropping(true);
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
onDrag: ({ source }) => {
|
|
65
|
+
if (source.data.type === acceptSourceType) {
|
|
66
|
+
setDropping(true);
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
onDragLeave: () => {
|
|
70
|
+
return setDropping(false);
|
|
71
|
+
},
|
|
72
|
+
onDrop: ({ self, source }) => {
|
|
73
|
+
setDropping(false);
|
|
74
|
+
if (source.data.type === acceptSourceType && selfDroppable && onRearrange) {
|
|
75
|
+
onRearrange(source.data as StackItemData, self.data as StackItemData, extractClosestEdge(self.data));
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
})
|
|
79
|
+
: noop,
|
|
80
|
+
|
|
81
|
+
scrollElement
|
|
82
|
+
? autoScrollForElements({
|
|
83
|
+
element: scrollElement,
|
|
84
|
+
getAllowedAxis: () => orientation,
|
|
85
|
+
})
|
|
86
|
+
: noop,
|
|
73
87
|
);
|
|
74
|
-
}, [element, scrollElement, selfDroppable, orientation,
|
|
88
|
+
}, [id, element, scrollElement, selfDroppable, orientation, onRearrange]);
|
|
75
89
|
|
|
76
90
|
return { dropping };
|
|
77
91
|
};
|
package/src/index.ts
CHANGED
|
@@ -10,7 +10,7 @@ export default defineConfig({
|
|
|
10
10
|
...e2ePreset(import.meta.dirname),
|
|
11
11
|
// TODO(wittjosiah): Avoid hard-coding ports.
|
|
12
12
|
webServer: {
|
|
13
|
-
command: '
|
|
13
|
+
command: 'pnpm storybook dev --ci --quiet --port=9003 --config-dir=.storybook',
|
|
14
14
|
port: 9003,
|
|
15
15
|
reuseExistingServer: false,
|
|
16
16
|
},
|
package/src/translations.ts
CHANGED
|
@@ -4,20 +4,20 @@
|
|
|
4
4
|
|
|
5
5
|
import { type Resource } from '@dxos/react-ui';
|
|
6
6
|
|
|
7
|
-
export const translationKey = 'react-ui-stack';
|
|
7
|
+
export const translationKey = '@dxos/react-ui-stack';
|
|
8
8
|
|
|
9
9
|
export const translations = [
|
|
10
10
|
{
|
|
11
11
|
'en-US': {
|
|
12
12
|
[translationKey]: {
|
|
13
|
-
'resize
|
|
14
|
-
'drag
|
|
15
|
-
'pin
|
|
16
|
-
'pin
|
|
17
|
-
'increment
|
|
18
|
-
'increment
|
|
19
|
-
'close
|
|
20
|
-
'minify
|
|
13
|
+
'resize.label': 'Drag to resize',
|
|
14
|
+
'drag-handle.label': 'Drag to rearrange',
|
|
15
|
+
'pin-start.label': 'Pin to the left sidebar',
|
|
16
|
+
'pin-end.label': 'Pin to the right sidebar',
|
|
17
|
+
'increment-start.label': 'Move to the left',
|
|
18
|
+
'increment-end.label': 'Move to the right',
|
|
19
|
+
'close.label': 'Close',
|
|
20
|
+
'minify.label': 'Minify',
|
|
21
21
|
},
|
|
22
22
|
},
|
|
23
23
|
},
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"defs.d.ts","sourceRoot":"","sources":["../../../../src/components/defs.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,uDAAuD,CAAC;AAElF,OAAO,EAAE,KAAK,IAAI,IAAI,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE1D,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,IAAI,EAAE,MAAM,SAAS,CAAC;AAEtD,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC;AAEpC,MAAM,MAAM,aAAa,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,CAAA;CAAE,CAAC;AAEpE,MAAM,MAAM,yBAAyB,CAAC,IAAI,SAAS;IAAE,EAAE,EAAE,MAAM,CAAA;CAAE,GAAG,aAAa,IAAI,CACnF,MAAM,EAAE,IAAI,EACZ,MAAM,EAAE,IAAI,EACZ,WAAW,EAAE,IAAI,GAAG,IAAI,KACrB,IAAI,CAAC;AAEV,MAAM,MAAM,iBAAiB,GAAG;IAC9B,WAAW,EAAE,WAAW,CAAC;IACzB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,IAAI,CAAC;IACX,WAAW,CAAC,EAAE,yBAAyB,CAAC;CACzC,CAAC"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { type ButtonGroupProps } from '@dxos/react-ui';
|
|
3
|
-
export type LayoutControlEvent = 'solo' | 'close' | `${'pin' | 'increment'}-${'start' | 'end'}`;
|
|
4
|
-
export type LayoutControlHandler = (event: LayoutControlEvent) => void;
|
|
5
|
-
export type LayoutCapabilities = {
|
|
6
|
-
incrementStart?: boolean;
|
|
7
|
-
incrementEnd?: boolean;
|
|
8
|
-
solo?: boolean;
|
|
9
|
-
};
|
|
10
|
-
export type LayoutControlsProps = Omit<ButtonGroupProps, 'onClick'> & {
|
|
11
|
-
onClick?: LayoutControlHandler;
|
|
12
|
-
variant?: 'hide-disabled' | 'default';
|
|
13
|
-
close?: boolean | 'minify-start' | 'minify-end';
|
|
14
|
-
capabilities: LayoutCapabilities;
|
|
15
|
-
isSolo?: boolean;
|
|
16
|
-
pin?: 'start' | 'end' | 'both';
|
|
17
|
-
};
|
|
18
|
-
export declare const LayoutControls: React.ForwardRefExoticComponent<Omit<LayoutControlsProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
19
|
-
//# sourceMappingURL=LayoutControls.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LayoutControls.d.ts","sourceRoot":"","sources":["../../../../../src/components/deprecated/LayoutControls.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAqB,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAe,KAAK,gBAAgB,EAAgD,MAAM,gBAAgB,CAAC;AAIlH,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,OAAO,GAAG,GAAG,KAAK,GAAG,WAAW,IAAI,OAAO,GAAG,KAAK,EAAE,CAAC;AAChG,MAAM,MAAM,oBAAoB,GAAG,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,CAAC;AAEvE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,gBAAgB,EAAE,SAAS,CAAC,GAAG;IACpE,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,OAAO,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;IACtC,KAAK,CAAC,EAAE,OAAO,GAAG,cAAc,GAAG,YAAY,CAAC;IAChD,YAAY,EAAE,kBAAkB,CAAC;IACjC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,GAAG,KAAK,GAAG,MAAM,CAAC;CAChC,CAAC;AAMF,eAAO,MAAM,cAAc,yGA4E1B,CAAC"}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import React, { type PropsWithChildren } from 'react';
|
|
2
|
-
import { cardChrome, cardRoot, cardHeading, cardText, cardSpacing } from './fragments';
|
|
3
|
-
type CardPosterProps = {
|
|
4
|
-
alt: string;
|
|
5
|
-
aspect?: 'video' | 'auto';
|
|
6
|
-
} & Partial<{
|
|
7
|
-
image: string;
|
|
8
|
-
icon: string;
|
|
9
|
-
}>;
|
|
10
|
-
export declare const Card: {
|
|
11
|
-
StaticRoot: React.ForwardRefExoticComponent<Omit<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, "className"> & {
|
|
12
|
-
classNames?: import("@dxos/react-ui-types").ClassNameValue;
|
|
13
|
-
} & {
|
|
14
|
-
asChild?: boolean;
|
|
15
|
-
} & React.RefAttributes<HTMLDivElement>>;
|
|
16
|
-
SurfaceRoot: ({ role, children }: PropsWithChildren<{
|
|
17
|
-
role?: string;
|
|
18
|
-
}>) => React.JSX.Element;
|
|
19
|
-
Heading: React.ForwardRefExoticComponent<Omit<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, "className"> & {
|
|
20
|
-
classNames?: import("@dxos/react-ui-types").ClassNameValue;
|
|
21
|
-
} & {
|
|
22
|
-
asChild?: boolean;
|
|
23
|
-
} & React.RefAttributes<HTMLDivElement>>;
|
|
24
|
-
Toolbar: React.ForwardRefExoticComponent<Omit<import("@radix-ui/react-toolbar").ToolbarProps, "className"> & {
|
|
25
|
-
classNames?: import("@dxos/react-ui-types").ClassNameValue;
|
|
26
|
-
} & {
|
|
27
|
-
layoutManaged?: boolean;
|
|
28
|
-
} & React.RefAttributes<HTMLDivElement>>;
|
|
29
|
-
ToolbarIconButton: React.ForwardRefExoticComponent<Omit<import("@dxos/react-ui").IconButtonProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
|
|
30
|
-
ToolbarSeparator: React.ForwardRefExoticComponent<Omit<import("@radix-ui/react-separator").SeparatorProps, "className"> & {
|
|
31
|
-
classNames?: import("@dxos/react-ui-types").ClassNameValue;
|
|
32
|
-
} & {
|
|
33
|
-
subdued?: boolean;
|
|
34
|
-
} & {
|
|
35
|
-
variant?: "gap" | "line";
|
|
36
|
-
} & React.RefAttributes<HTMLDivElement>>;
|
|
37
|
-
DragHandle: React.ForwardRefExoticComponent<{
|
|
38
|
-
toolbarItem?: boolean;
|
|
39
|
-
} & React.RefAttributes<HTMLButtonElement>>;
|
|
40
|
-
DragPreview: ({ children }: import("../..").StackItemDragPreviewProps) => React.ReactPortal | null;
|
|
41
|
-
Menu: React.FC<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
|
42
|
-
ref?: ((instance: HTMLDivElement | null) => void | React.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof React.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | React.RefObject<HTMLDivElement> | null | undefined;
|
|
43
|
-
}>;
|
|
44
|
-
Poster: (props: CardPosterProps) => React.JSX.Element | undefined;
|
|
45
|
-
Chrome: React.ForwardRefExoticComponent<Omit<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, "className"> & {
|
|
46
|
-
classNames?: import("@dxos/react-ui-types").ClassNameValue;
|
|
47
|
-
} & {
|
|
48
|
-
asChild?: boolean;
|
|
49
|
-
} & React.RefAttributes<HTMLDivElement>>;
|
|
50
|
-
Text: React.ForwardRefExoticComponent<Omit<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, "className"> & {
|
|
51
|
-
classNames?: import("@dxos/react-ui-types").ClassNameValue;
|
|
52
|
-
} & {
|
|
53
|
-
asChild?: boolean;
|
|
54
|
-
} & React.RefAttributes<HTMLParagraphElement>>;
|
|
55
|
-
};
|
|
56
|
-
export { cardRoot, cardHeading, cardText, cardChrome, cardSpacing };
|
|
57
|
-
//# sourceMappingURL=Card.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Card.d.ts","sourceRoot":"","sources":["../../../../../src/exemplars/Card/Card.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,EAKZ,KAAK,iBAAiB,EACvB,MAAM,OAAO,CAAC;AAKf,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAmFvF,KAAK,eAAe,GAAG;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;CAC3B,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAgD7C,eAAO,MAAM,IAAI;;;;kBAlIqE,OAAO;;sCAmBtC,iBAAiB,CAAC;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;;;;kBAnBL,OAAO;;;;;;;;;;;;;;;;sBA4DxB,OAAO;;;;;;oBAwBjD,eAAe;;;;kBApF4C,OAAO;;;;;kBAAP,OAAO;;CA+I5F,CAAC;AAEF,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import '@dxos-theme';
|
|
2
|
-
import { type Meta, type StoryObj } from '@storybook/react-vite';
|
|
3
|
-
type CardStoryProps = {
|
|
4
|
-
title: string;
|
|
5
|
-
description: string;
|
|
6
|
-
image: string;
|
|
7
|
-
showImage: boolean;
|
|
8
|
-
showIcon: boolean;
|
|
9
|
-
};
|
|
10
|
-
declare const meta: Meta<CardStoryProps>;
|
|
11
|
-
export default meta;
|
|
12
|
-
export declare const Default: StoryObj<CardStoryProps>;
|
|
13
|
-
//# sourceMappingURL=Card.stories.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Card.stories.d.ts","sourceRoot":"","sources":["../../../../../src/exemplars/Card/Card.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,aAAa,CAAC;AAErB,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAWjE,KAAK,cAAc,GAAG;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,cAAc,CAgC9B,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,eAAO,MAAM,OAAO,EAAE,QAAQ,CAAC,cAAc,CAgB5C,CAAC"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import React, { type PropsWithChildren } from 'react';
|
|
2
|
-
export declare const CardDragPreview: {
|
|
3
|
-
Root: ({ children }: PropsWithChildren<{}>) => React.JSX.Element;
|
|
4
|
-
Content: ({ children }: PropsWithChildren<{}>) => React.JSX.Element;
|
|
5
|
-
};
|
|
6
|
-
//# sourceMappingURL=CardDragPreview.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CardDragPreview.d.ts","sourceRoot":"","sources":["../../../../../src/exemplars/Card/CardDragPreview.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAAE,KAAK,iBAAiB,EAAE,MAAM,OAAO,CAAC;AActD,eAAO,MAAM,eAAe;yBARe,iBAAiB,CAAC,EAAE,CAAC;4BAIlB,iBAAiB,CAAC,EAAE,CAAC;CAOlE,CAAC"}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
export declare const cardRoot = "rounded overflow-hidden bg-cardSurface border border-separator dark:border-subduedSeparator dx-focus-ring-group-y-indicator relative min-bs-[--rail-item] group/card";
|
|
2
|
-
export declare const cardSpacing = "pli-cardSpacingInline mlb-cardSpacingBlock";
|
|
3
|
-
export declare const labelSpacing = "mbs-inputSpacingBlock mbe-labelSpacingBlock";
|
|
4
|
-
export declare const cardDialogContent = "p-0 bs-content min-bs-[8rem] max-bs-full md:max-is-[32rem] overflow-hidden";
|
|
5
|
-
export declare const cardDialogHeader = "pli-cardSpacingInline mbs-cardSpacingBlock flex justify-between";
|
|
6
|
-
export declare const cardDialogOverflow = "overflow-y-auto min-bs-0 flex-1";
|
|
7
|
-
export declare const cardDialogPaddedOverflow = "overflow-y-auto min-bs-0 flex-1 plb-cardSpacingBlock";
|
|
8
|
-
export declare const cardDialogSearchListRoot = "pli-cardSpacingInline pbs-cardSpacingBlock [&>input]:mbe-0 min-bs-0 flex-1 flex flex-col";
|
|
9
|
-
export declare const cardText = "pli-cardSpacingInline mlb-cardSpacingBlock";
|
|
10
|
-
export declare const cardHeading = "text-lg font-medium line-clamp-2";
|
|
11
|
-
export declare const cardChrome = "pli-[--dx-cardSpacingChrome] mlb-[--dx-cardSpacingChrome] [&_.dx-button]:text-start [&_.dx-button]:is-full";
|
|
12
|
-
//# sourceMappingURL=fragments.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fragments.d.ts","sourceRoot":"","sources":["../../../../../src/exemplars/Card/fragments.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,QAAQ,yKACmJ,CAAC;AAEzK,eAAO,MAAM,WAAW,+CAA+C,CAAC;AACxE,eAAO,MAAM,YAAY,gDAAgD,CAAC;AAE1E,eAAO,MAAM,iBAAiB,+EAA+E,CAAC;AAC9G,eAAO,MAAM,gBAAgB,oEAAoE,CAAC;AAClG,eAAO,MAAM,kBAAkB,oCAAoC,CAAC;AACpE,eAAO,MAAM,wBAAwB,yDAA+C,CAAC;AACrF,eAAO,MAAM,wBAAwB,6FACuD,CAAC;AAE7F,eAAO,MAAM,QAAQ,+CAAc,CAAC;AAEpC,eAAO,MAAM,WAAW,qCAAqC,CAAC;AAE9D,eAAO,MAAM,UAAU,+GACuF,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/exemplars/Card/index.ts"],"names":[],"mappings":"AAIA,cAAc,QAAQ,CAAC;AACvB,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC"}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { type StackProps } from '../../components';
|
|
3
|
-
declare const cardStackHeading = "mli-2 order-first bg-transparent rounded-bs-md flex items-center";
|
|
4
|
-
declare const cardStackFooter = "plb-2 mli-2 border-bs border-transparent [[data-scroll-separator-end=\"true\"]_&]:border-subduedSeparator";
|
|
5
|
-
declare const cardStackContent: string[];
|
|
6
|
-
declare const cardStackRoot = "flex flex-col pli-2 plb-2";
|
|
7
|
-
declare const cardStackItem = "contain-layout pli-2 plb-1 first-of-type:pbs-0 last-of-type:pbe-0";
|
|
8
|
-
export declare const CardStack: {
|
|
9
|
-
Root: React.ForwardRefExoticComponent<Omit<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, "className"> & {
|
|
10
|
-
classNames?: import("@dxos/react-ui-types").ClassNameValue;
|
|
11
|
-
} & {
|
|
12
|
-
asChild?: boolean;
|
|
13
|
-
} & React.RefAttributes<HTMLDivElement>>;
|
|
14
|
-
Content: React.ForwardRefExoticComponent<Omit<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, "className"> & {
|
|
15
|
-
classNames?: import("@dxos/react-ui-types").ClassNameValue;
|
|
16
|
-
} & {
|
|
17
|
-
asChild?: boolean;
|
|
18
|
-
} & React.RefAttributes<HTMLDivElement>>;
|
|
19
|
-
Stack: React.ForwardRefExoticComponent<Omit<Omit<StackProps, "orientation" | "rail" | "size" | "separatorOnScroll">, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
20
|
-
Heading: React.ForwardRefExoticComponent<Omit<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, "className"> & {
|
|
21
|
-
classNames?: import("@dxos/react-ui-types").ClassNameValue;
|
|
22
|
-
} & {
|
|
23
|
-
asChild?: boolean;
|
|
24
|
-
} & React.RefAttributes<HTMLDivElement>>;
|
|
25
|
-
Footer: React.ForwardRefExoticComponent<Omit<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, "className"> & {
|
|
26
|
-
classNames?: import("@dxos/react-ui-types").ClassNameValue;
|
|
27
|
-
} & {
|
|
28
|
-
asChild?: boolean;
|
|
29
|
-
} & React.RefAttributes<HTMLDivElement>>;
|
|
30
|
-
DragHandle: React.ForwardRefExoticComponent<{
|
|
31
|
-
toolbarItem?: boolean;
|
|
32
|
-
} & React.RefAttributes<HTMLButtonElement>>;
|
|
33
|
-
Item: React.ForwardRefExoticComponent<Omit<Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref">, "className"> & {
|
|
34
|
-
classNames?: import("@dxos/react-ui-types").ClassNameValue;
|
|
35
|
-
} & {
|
|
36
|
-
asChild?: boolean;
|
|
37
|
-
} & React.RefAttributes<HTMLDivElement>>;
|
|
38
|
-
};
|
|
39
|
-
export { cardStackRoot, cardStackFooter, cardStackHeading, cardStackContent, cardStackItem };
|
|
40
|
-
//# sourceMappingURL=CardStack.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CardStack.d.ts","sourceRoot":"","sources":["../../../../../src/exemplars/CardStack/CardStack.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAoD,MAAM,OAAO,CAAC;AAKzE,OAAO,EAA8C,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AA+B/F,QAAA,MAAM,gBAAgB,qEAAqE,CAAC;AAgB5F,QAAA,MAAM,eAAe,8GACsF,CAAC;AAgB5G,QAAA,MAAM,gBAAgB,UAGrB,CAAC;AAgBF,QAAA,MAAM,aAAa,8BAA8B,CAAC;AAgBlD,QAAA,MAAM,aAAa,sEAAsE,CAAC;AAgB1F,eAAO,MAAM,SAAS;;;;kBAhHqE,OAAO;;;;;kBAAP,OAAO;;;;;;kBAAP,OAAO;;;;;kBAAP,OAAO;;;;;;;;kBAAP,OAAO;;CAwHjG,CAAC;AAEF,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,aAAa,EAAE,CAAC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import '@dxos-theme';
|
|
2
|
-
import { type Meta, type StoryObj } from '@storybook/react-vite';
|
|
3
|
-
import React from 'react';
|
|
4
|
-
declare const CardStackStory: () => React.JSX.Element;
|
|
5
|
-
declare const meta: Meta<typeof CardStackStory>;
|
|
6
|
-
export default meta;
|
|
7
|
-
type Story = StoryObj<typeof CardStackStory>;
|
|
8
|
-
export declare const Default: Story;
|
|
9
|
-
//# sourceMappingURL=CardStack.stories.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CardStack.stories.d.ts","sourceRoot":"","sources":["../../../../../src/exemplars/CardStack/CardStack.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,aAAa,CAAC;AAGrB,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAAgC,MAAM,OAAO,CAAC;AAyBrD,QAAA,MAAM,cAAc,yBA8HnB,CAAC;AAEF,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,cAAc,CAIrC,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,cAAc,CAAC,CAAC;AAE7C,eAAO,MAAM,OAAO,EAAE,KAAU,CAAC"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import React, { type PropsWithChildren } from 'react';
|
|
2
|
-
import { type StackProps } from '../../components';
|
|
3
|
-
export declare const CardStackDragPreview: {
|
|
4
|
-
Root: ({ children }: PropsWithChildren<{}>) => React.JSX.Element;
|
|
5
|
-
Heading: ({ children }: PropsWithChildren<{}>) => React.JSX.Element;
|
|
6
|
-
Content: ({ children, itemsCount, }: PropsWithChildren<Pick<StackProps, "itemsCount">>) => React.JSX.Element;
|
|
7
|
-
Footer: ({ children }: PropsWithChildren<{}>) => React.JSX.Element;
|
|
8
|
-
};
|
|
9
|
-
//# sourceMappingURL=CardStackDragPreview.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CardStackDragPreview.d.ts","sourceRoot":"","sources":["../../../../../src/exemplars/CardStack/CardStackDragPreview.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAAE,KAAK,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAKtD,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,kBAAkB,CAAC;AA8CnD,eAAO,MAAM,oBAAoB;yBA3Ce,iBAAiB,CAAC,EAAE,CAAC;4BAUlB,iBAAiB,CAAC,EAAE,CAAC;yCAmBrE,iBAAiB,CAAC,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;2BAUF,iBAAiB,CAAC,EAAE,CAAC;CAStE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/exemplars/CardStack/index.ts"],"names":[],"mappings":"AAIA,cAAc,aAAa,CAAC;AAC5B,cAAc,wBAAwB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/exemplars/index.ts"],"names":[],"mappings":"AAIA,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/testing/index.ts"],"names":[],"mappings":"AAIA,cAAc,iBAAiB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"stack-manager.d.ts","sourceRoot":"","sources":["../../../../src/testing/stack-manager.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,OAAO,EAAQ,MAAM,kBAAkB,CAAC;AAEtD,qBAAa,YAAY;IAGX,QAAQ,CAAC,OAAO,EAAE,OAAO;IAFrC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAO;gBAER,OAAO,EAAE,OAAO;IAIrC,QAAQ,IAAI,OAAO;IAInB,KAAK;IAIL,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc;CAGvC;AAED,qBAAa,cAAc;IAGb,QAAQ,CAAC,OAAO,EAAE,OAAO;IAFrC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAO;gBAER,OAAO,EAAE,OAAO;IAI/B,EAAE,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAI5B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAKvB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B,MAAM,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,GAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;CAehG"}
|
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2024 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import React, { forwardRef } from 'react';
|
|
6
|
-
|
|
7
|
-
import { ButtonGroup, type ButtonGroupProps, type ButtonProps, IconButton, useTranslation } from '@dxos/react-ui';
|
|
8
|
-
|
|
9
|
-
import { translationKey } from '../../translations';
|
|
10
|
-
|
|
11
|
-
export type LayoutControlEvent = 'solo' | 'close' | `${'pin' | 'increment'}-${'start' | 'end'}`;
|
|
12
|
-
export type LayoutControlHandler = (event: LayoutControlEvent) => void;
|
|
13
|
-
|
|
14
|
-
export type LayoutCapabilities = {
|
|
15
|
-
incrementStart?: boolean;
|
|
16
|
-
incrementEnd?: boolean;
|
|
17
|
-
solo?: boolean;
|
|
18
|
-
};
|
|
19
|
-
|
|
20
|
-
export type LayoutControlsProps = Omit<ButtonGroupProps, 'onClick'> & {
|
|
21
|
-
onClick?: LayoutControlHandler;
|
|
22
|
-
variant?: 'hide-disabled' | 'default';
|
|
23
|
-
close?: boolean | 'minify-start' | 'minify-end';
|
|
24
|
-
capabilities: LayoutCapabilities;
|
|
25
|
-
isSolo?: boolean;
|
|
26
|
-
pin?: 'start' | 'end' | 'both';
|
|
27
|
-
};
|
|
28
|
-
|
|
29
|
-
const LayoutControl = ({ icon, label, ...props }: Omit<ButtonProps, 'children'> & { label: string; icon: string }) => {
|
|
30
|
-
return <IconButton iconOnly icon={icon} label={label} tooltipSide='bottom' variant='ghost' {...props} />;
|
|
31
|
-
};
|
|
32
|
-
|
|
33
|
-
export const LayoutControls = forwardRef<HTMLDivElement, LayoutControlsProps>(
|
|
34
|
-
(
|
|
35
|
-
{ onClick, variant = 'default', capabilities: can, isSolo, pin, close = false, children, ...props },
|
|
36
|
-
forwardedRef,
|
|
37
|
-
) => {
|
|
38
|
-
const { t } = useTranslation(translationKey);
|
|
39
|
-
const buttonClassNames = variant === 'hide-disabled' ? 'disabled:hidden !p-1' : '!p-1';
|
|
40
|
-
|
|
41
|
-
return (
|
|
42
|
-
<ButtonGroup {...props} ref={forwardedRef}>
|
|
43
|
-
{pin && !isSolo && ['both', 'start'].includes(pin) && (
|
|
44
|
-
<LayoutControl
|
|
45
|
-
label={t('pin start label')}
|
|
46
|
-
variant='ghost'
|
|
47
|
-
classNames={buttonClassNames}
|
|
48
|
-
onClick={() => onClick?.('pin-start')}
|
|
49
|
-
icon='ph--caret-line-left--regular'
|
|
50
|
-
/>
|
|
51
|
-
)}
|
|
52
|
-
|
|
53
|
-
{can.solo && (
|
|
54
|
-
<LayoutControl
|
|
55
|
-
label={t('solo layout label')}
|
|
56
|
-
classNames={buttonClassNames}
|
|
57
|
-
onClick={() => onClick?.('solo')}
|
|
58
|
-
icon={isSolo ? 'ph--arrows-in--regular' : 'ph--arrows-out--regular'}
|
|
59
|
-
/>
|
|
60
|
-
)}
|
|
61
|
-
|
|
62
|
-
{!isSolo && can.solo && (
|
|
63
|
-
<>
|
|
64
|
-
<LayoutControl
|
|
65
|
-
label={t('increment start label')}
|
|
66
|
-
disabled={!can.incrementStart}
|
|
67
|
-
classNames={buttonClassNames}
|
|
68
|
-
onClick={() => onClick?.('increment-start')}
|
|
69
|
-
icon='ph--caret-left--regular'
|
|
70
|
-
/>
|
|
71
|
-
<LayoutControl
|
|
72
|
-
label={t('increment end label')}
|
|
73
|
-
disabled={!can.incrementEnd}
|
|
74
|
-
classNames={buttonClassNames}
|
|
75
|
-
onClick={() => onClick?.('increment-end')}
|
|
76
|
-
icon='ph--caret-right--regular'
|
|
77
|
-
/>
|
|
78
|
-
</>
|
|
79
|
-
)}
|
|
80
|
-
|
|
81
|
-
{pin && !isSolo && ['both', 'end'].includes(pin) && (
|
|
82
|
-
<LayoutControl
|
|
83
|
-
label={t('pin end label')}
|
|
84
|
-
classNames={buttonClassNames}
|
|
85
|
-
onClick={() => onClick?.('pin-end')}
|
|
86
|
-
icon='ph--caret-line-right--regular'
|
|
87
|
-
/>
|
|
88
|
-
)}
|
|
89
|
-
|
|
90
|
-
{close && !isSolo && (
|
|
91
|
-
<LayoutControl
|
|
92
|
-
label={t(`${typeof close === 'string' ? 'minify' : 'close'} label`)}
|
|
93
|
-
classNames={buttonClassNames}
|
|
94
|
-
onClick={() => onClick?.('close')}
|
|
95
|
-
data-testid='layoutHeading.close'
|
|
96
|
-
icon={
|
|
97
|
-
close === 'minify-start'
|
|
98
|
-
? 'ph--caret-line-left--regular'
|
|
99
|
-
: close === 'minify-end'
|
|
100
|
-
? 'ph--caret-line-right--regular'
|
|
101
|
-
: 'ph--x--regular'
|
|
102
|
-
}
|
|
103
|
-
/>
|
|
104
|
-
)}
|
|
105
|
-
{children}
|
|
106
|
-
</ButtonGroup>
|
|
107
|
-
);
|
|
108
|
-
},
|
|
109
|
-
);
|