@xyo-network/react-card 2.37.23 → 2.37.25
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/cjs/components/CardContentEx.d.ts +3 -1
- package/dist/cjs/components/CardContentEx.d.ts.map +1 -1
- package/dist/cjs/components/CardContentEx.js +15 -5
- package/dist/cjs/components/CardContentEx.js.map +1 -1
- package/dist/cjs/components/CardEx.d.ts +2 -1
- package/dist/cjs/components/CardEx.d.ts.map +1 -1
- package/dist/cjs/components/CardEx.js +7 -5
- package/dist/cjs/components/CardEx.js.map +1 -1
- package/dist/cjs/components/PageCard.d.ts +1 -1
- package/dist/cjs/components/PageCard.d.ts.map +1 -1
- package/dist/cjs/components/PageCard.js +6 -4
- package/dist/cjs/components/PageCard.js.map +1 -1
- package/dist/docs.json +2491 -141
- package/dist/esm/components/CardContentEx.d.ts +3 -1
- package/dist/esm/components/CardContentEx.d.ts.map +1 -1
- package/dist/esm/components/CardContentEx.js +11 -3
- package/dist/esm/components/CardContentEx.js.map +1 -1
- package/dist/esm/components/CardEx.d.ts +2 -1
- package/dist/esm/components/CardEx.d.ts.map +1 -1
- package/dist/esm/components/CardEx.js +6 -3
- package/dist/esm/components/CardEx.js.map +1 -1
- package/dist/esm/components/PageCard.d.ts +1 -1
- package/dist/esm/components/PageCard.d.ts.map +1 -1
- package/dist/esm/components/PageCard.js +6 -3
- package/dist/esm/components/PageCard.js.map +1 -1
- package/package.json +2 -2
- package/src/components/CardContentEx.stories.tsx +26 -7
- package/src/components/CardContentEx.tsx +14 -3
- package/src/components/CardEx.tsx +8 -2
- package/src/components/PageCard.stories.tsx +5 -1
- package/src/components/PageCard.tsx +8 -4
@@ -2,6 +2,8 @@
|
|
2
2
|
import { CardContentProps } from '@mui/material';
|
3
3
|
export declare type CardContentExProps = CardContentProps & {
|
4
4
|
variant?: 'scrollable' | 'normal';
|
5
|
+
scrollToTop?: boolean;
|
5
6
|
};
|
6
|
-
export declare const
|
7
|
+
export declare const CardContentExWithRef: import("react").ForwardRefExoticComponent<Pick<CardContentExProps, keyof import("@mui/material/OverridableComponent").CommonProps | "slot" | "title" | "key" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "id" | "lang" | "placeholder" | "spellCheck" | "tabIndex" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "color" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "sx" | "variant" | "scrollToTop"> & import("react").RefAttributes<HTMLDivElement | null>>;
|
8
|
+
export declare const CardContentEx: import("react").ForwardRefExoticComponent<Pick<CardContentExProps, keyof import("@mui/material/OverridableComponent").CommonProps | "slot" | "title" | "key" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "id" | "lang" | "placeholder" | "spellCheck" | "tabIndex" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "color" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "sx" | "variant" | "scrollToTop"> & import("react").RefAttributes<HTMLDivElement | null>>;
|
7
9
|
//# sourceMappingURL=CardContentEx.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"CardContentEx.d.ts","sourceRoot":"","sources":["../../../src/components/CardContentEx.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAe,gBAAgB,EAAU,MAAM,eAAe,CAAA;
|
1
|
+
{"version":3,"file":"CardContentEx.d.ts","sourceRoot":"","sources":["../../../src/components/CardContentEx.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAe,gBAAgB,EAAU,MAAM,eAAe,CAAA;AAiBrE,oBAAY,kBAAkB,GAAG,gBAAgB,GAAG;IAClD,OAAO,CAAC,EAAE,YAAY,GAAG,QAAQ,CAAA;IACjC,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB,CAAA;AAED,eAAO,MAAM,oBAAoB,8rJAO/B,CAAA;AAIF,eAAO,MAAM,aAAa,8rJAAuB,CAAA"}
|
@@ -1,5 +1,6 @@
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
2
2
|
import { CardContent, styled } from '@mui/material';
|
3
|
+
import { forwardRef, useEffect } from 'react';
|
3
4
|
const CardContentExRoot = styled(CardContent, {
|
4
5
|
name: 'CardContentEx',
|
5
6
|
shouldForwardProp: (prop) => prop !== 'variant',
|
@@ -13,7 +14,14 @@ const CardContentExRoot = styled(CardContent, {
|
|
13
14
|
paddingTop: 0,
|
14
15
|
}),
|
15
16
|
}));
|
16
|
-
export const
|
17
|
-
|
18
|
-
|
17
|
+
export const CardContentExWithRef = forwardRef(({ scrollToTop, ...props }, ref) => {
|
18
|
+
useEffect(() => {
|
19
|
+
if (ref !== null && typeof ref === 'object') {
|
20
|
+
ref?.current?.scroll({ behavior: 'smooth', top: 0 });
|
21
|
+
}
|
22
|
+
}, [ref, scrollToTop]);
|
23
|
+
return _jsx(CardContentExRoot, { ref: ref, ...props });
|
24
|
+
});
|
25
|
+
CardContentExWithRef.displayName = 'CardContentEx';
|
26
|
+
export const CardContentEx = CardContentExWithRef;
|
19
27
|
//# sourceMappingURL=CardContentEx.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"CardContentEx.js","sourceRoot":"","sources":["../../../src/components/CardContentEx.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAoB,MAAM,EAAE,MAAM,eAAe,CAAA;
|
1
|
+
{"version":3,"file":"CardContentEx.js","sourceRoot":"","sources":["../../../src/components/CardContentEx.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAoB,MAAM,EAAE,MAAM,eAAe,CAAA;AACrE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAE7C,MAAM,iBAAiB,GAAG,MAAM,CAAC,WAAW,EAAE;IAC5C,IAAI,EAAE,eAAe;IACrB,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS;IAC/C,IAAI,EAAE,MAAM;CACb,CAAC,CAAqB,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;IACvC,GAAG,CAAC,OAAO,KAAK,YAAY,IAAI;QAC9B,CAAC,aAAa,CAAC,EAAE;YACf,aAAa,EAAE,CAAC;SACjB;QACD,QAAQ,EAAE,MAAM;QAChB,UAAU,EAAE,CAAC;KACd,CAAC;CACH,CAAC,CAAC,CAAA;AAOH,MAAM,CAAC,MAAM,oBAAoB,GAAG,UAAU,CAA4C,CAAC,EAAE,WAAW,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE;IAC3H,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YAC3C,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;SACrD;IACH,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAA;IACtB,OAAO,KAAC,iBAAiB,IAAC,GAAG,EAAE,GAAG,KAAM,KAAK,GAAI,CAAA;AACnD,CAAC,CAAC,CAAA;AAEF,oBAAoB,CAAC,WAAW,GAAG,eAAe,CAAA;AAElD,MAAM,CAAC,MAAM,aAAa,GAAG,oBAAoB,CAAA"}
|
@@ -3,5 +3,6 @@ import { CardProps } from '@mui/material';
|
|
3
3
|
export declare type CardExProps = CardProps & {
|
4
4
|
gradient?: 'border' | 'background';
|
5
5
|
};
|
6
|
-
export declare const
|
6
|
+
export declare const CardExWithRef: React.FC<CardExProps>;
|
7
|
+
export declare const CardEx: import("react").FC<CardExProps>;
|
7
8
|
//# sourceMappingURL=CardEx.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"CardEx.d.ts","sourceRoot":"","sources":["../../../src/components/CardEx.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAQ,SAAS,EAAE,MAAM,eAAe,CAAA;
|
1
|
+
{"version":3,"file":"CardEx.d.ts","sourceRoot":"","sources":["../../../src/components/CardEx.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAQ,SAAS,EAAE,MAAM,eAAe,CAAA;AAI/C,oBAAY,WAAW,GAAG,SAAS,GAAG;IACpC,QAAQ,CAAC,EAAE,QAAQ,GAAG,YAAY,CAAA;CACnC,CAAA;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,WAAW,CAa9C,CAAA;AAIF,eAAO,MAAM,MAAM,iCAAgB,CAAA"}
|
@@ -1,12 +1,15 @@
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
2
2
|
import { Card } from '@mui/material';
|
3
3
|
import { useGradientStyles } from '@xyo-network/react-shared';
|
4
|
-
|
4
|
+
import { forwardRef } from 'react';
|
5
|
+
export const CardExWithRef = forwardRef(({ style, gradient, ...props }, ref) => {
|
5
6
|
const { styles } = useGradientStyles();
|
6
7
|
const gradientStyle = gradient === 'border' ? styles.border : gradient === 'background' ? styles.background : {};
|
7
8
|
return (_jsx(Card, { style: {
|
8
9
|
...gradientStyle,
|
9
10
|
...style,
|
10
|
-
}, ...props }));
|
11
|
-
};
|
11
|
+
}, ref: ref, ...props }));
|
12
|
+
});
|
13
|
+
CardExWithRef.displayName = 'CardEx';
|
14
|
+
export const CardEx = CardExWithRef;
|
12
15
|
//# sourceMappingURL=CardEx.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"CardEx.js","sourceRoot":"","sources":["../../../src/components/CardEx.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAa,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;
|
1
|
+
{"version":3,"file":"CardEx.js","sourceRoot":"","sources":["../../../src/components/CardEx.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAa,MAAM,eAAe,CAAA;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAMlC,MAAM,CAAC,MAAM,aAAa,GAA0B,UAAU,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE;IACpG,MAAM,EAAE,MAAM,EAAE,GAAG,iBAAiB,EAAE,CAAA;IACtC,MAAM,aAAa,GAAG,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAA;IAChH,OAAO,CACL,KAAC,IAAI,IACH,KAAK,EAAE;YACL,GAAG,aAAa;YAChB,GAAG,KAAK;SACT,EACD,GAAG,EAAE,GAAG,KACJ,KAAK,GACT,CACH,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,aAAa,CAAC,WAAW,GAAG,QAAQ,CAAA;AAEpC,MAAM,CAAC,MAAM,MAAM,GAAG,aAAa,CAAA"}
|
@@ -6,5 +6,5 @@ export interface PageCardProps extends CardExProps {
|
|
6
6
|
subheader?: CardHeaderProps['subheader'];
|
7
7
|
action?: ReactNode;
|
8
8
|
}
|
9
|
-
export declare const PageCard:
|
9
|
+
export declare const PageCard: import("react").FC<PageCardProps>;
|
10
10
|
//# sourceMappingURL=PageCard.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"PageCard.d.ts","sourceRoot":"","sources":["../../../src/components/PageCard.tsx"],"names":[],"mappings":"AACA,OAAO,EAAc,eAAe,EAAc,MAAM,eAAe,CAAA;AAEvE,OAAO,
|
1
|
+
{"version":3,"file":"PageCard.d.ts","sourceRoot":"","sources":["../../../src/components/PageCard.tsx"],"names":[],"mappings":"AACA,OAAO,EAAc,eAAe,EAAc,MAAM,eAAe,CAAA;AAEvE,OAAO,EAAc,SAAS,EAAE,MAAM,OAAO,CAAA;AAE7C,OAAO,EAAU,WAAW,EAAE,MAAM,UAAU,CAAA;AAE9C,MAAM,WAAW,aAAc,SAAQ,WAAW;IAChD,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,SAAS,CAAC,EAAE,eAAe,CAAC,WAAW,CAAC,CAAA;IACxC,MAAM,CAAC,EAAE,SAAS,CAAA;CACnB;AAiCD,eAAO,MAAM,QAAQ,mCAAkB,CAAA"}
|
@@ -2,8 +2,11 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
|
|
2
2
|
import RefreshIcon from '@mui/icons-material/Refresh';
|
3
3
|
import { CardHeader, IconButton } from '@mui/material';
|
4
4
|
import { TypographyEx } from '@xyo-network/react-shared';
|
5
|
+
import { forwardRef } from 'react';
|
5
6
|
import { CardEx } from './CardEx';
|
6
|
-
|
7
|
-
return (_jsxs(CardEx, { style: { backgroundColor: 'transparent', position: 'relative', ...style }, elevation: 0, ...props, children: [_jsx(CardHeader, { title: _jsx(TypographyEx, { variant: "h5", gutterBottom: true, children: title }), subheader: _jsx(TypographyEx, { variant: "subtitle1", children: subheader }), action: action ? (action) : (_jsx(_Fragment, { children: onRefresh ? (_jsx(IconButton, { onClick: () => onRefresh?.(), children: _jsx(RefreshIcon, {}) })) : null })) }), children] }));
|
8
|
-
};
|
7
|
+
const PageCardWithRef = forwardRef(({ subheader, title, onRefresh, children, action, style, ...props }, ref) => {
|
8
|
+
return (_jsxs(CardEx, { style: { backgroundColor: 'transparent', position: 'relative', ...style }, elevation: 0, ref: ref, ...props, children: [_jsx(CardHeader, { title: _jsx(TypographyEx, { variant: "h5", gutterBottom: true, children: title }), subheader: _jsx(TypographyEx, { variant: "subtitle1", children: subheader }), action: action ? (action) : (_jsx(_Fragment, { children: onRefresh ? (_jsx(IconButton, { onClick: () => onRefresh?.(), children: _jsx(RefreshIcon, {}) })) : null })) }), children] }));
|
9
|
+
});
|
10
|
+
PageCardWithRef.displayName = 'PageCard';
|
11
|
+
export const PageCard = PageCardWithRef;
|
9
12
|
//# sourceMappingURL=PageCard.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"PageCard.js","sourceRoot":"","sources":["../../../src/components/PageCard.tsx"],"names":[],"mappings":";AAAA,OAAO,WAAW,MAAM,6BAA6B,CAAA;AACrD,OAAO,EAAE,UAAU,EAAmB,UAAU,EAAE,MAAM,eAAe,CAAA;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;
|
1
|
+
{"version":3,"file":"PageCard.js","sourceRoot":"","sources":["../../../src/components/PageCard.tsx"],"names":[],"mappings":";AAAA,OAAO,WAAW,MAAM,6BAA6B,CAAA;AACrD,OAAO,EAAE,UAAU,EAAmB,UAAU,EAAE,MAAM,eAAe,CAAA;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAA;AACxD,OAAO,EAAE,UAAU,EAAa,MAAM,OAAO,CAAA;AAE7C,OAAO,EAAE,MAAM,EAAe,MAAM,UAAU,CAAA;AAQ9C,MAAM,eAAe,GAA4B,UAAU,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,GAAG,EAAE,EAAE;IACtI,OAAO,CACL,MAAC,MAAM,IAAC,KAAK,EAAE,EAAE,eAAe,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,KAAM,KAAK,aAClH,KAAC,UAAU,IACT,KAAK,EACH,KAAC,YAAY,IAAC,OAAO,EAAC,IAAI,EAAC,YAAY,kBACpC,KAAK,GACO,EAEjB,SAAS,EAAE,KAAC,YAAY,IAAC,OAAO,EAAC,WAAW,YAAE,SAAS,GAAgB,EACvE,MAAM,EACJ,MAAM,CAAC,CAAC,CAAC,CACP,MAAM,CACP,CAAC,CAAC,CAAC,CACF,4BACG,SAAS,CAAC,CAAC,CAAC,CACX,KAAC,UAAU,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,EAAE,YACtC,KAAC,WAAW,KAAG,GACJ,CACd,CAAC,CAAC,CAAC,IAAI,GACP,CACJ,GAEH,EACD,QAAQ,IACF,CACV,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,eAAe,CAAC,WAAW,GAAG,UAAU,CAAA;AAExC,MAAM,CAAC,MAAM,QAAQ,GAAG,eAAe,CAAA"}
|
package/package.json
CHANGED
@@ -11,7 +11,7 @@
|
|
11
11
|
},
|
12
12
|
"dependencies": {
|
13
13
|
"@xylabs/react-flexbox": "^2.15.1",
|
14
|
-
"@xyo-network/react-shared": "^2.37.
|
14
|
+
"@xyo-network/react-shared": "^2.37.25",
|
15
15
|
"tslib": "^2.4.0"
|
16
16
|
},
|
17
17
|
"peerDependencies": {
|
@@ -65,5 +65,5 @@
|
|
65
65
|
},
|
66
66
|
"sideEffects": false,
|
67
67
|
"types": "dist/esm/index.d.ts",
|
68
|
-
"version": "2.37.
|
68
|
+
"version": "2.37.25"
|
69
69
|
}
|
@@ -1,16 +1,32 @@
|
|
1
1
|
/* eslint-disable import/no-internal-modules */
|
2
|
-
import { Typography } from '@mui/material'
|
2
|
+
import { Button, Typography } from '@mui/material'
|
3
3
|
import { ComponentStory, DecoratorFn, Meta } from '@storybook/react'
|
4
4
|
import { FlexGrowCol } from '@xylabs/react-flexbox'
|
5
|
+
import { WithRefDecorator } from '@xyo-network/react-storybook'
|
6
|
+
import { useRef, useState } from 'react'
|
5
7
|
|
6
8
|
import { CardContentEx } from './CardContentEx'
|
7
9
|
import { PageCard } from './PageCard'
|
8
10
|
|
9
|
-
const ScrollableDecoratorFn: DecoratorFn = (Story, args) =>
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
11
|
+
const ScrollableDecoratorFn: DecoratorFn = (Story, args) => {
|
12
|
+
const [scrollToTop, setScrollToTop] = useState(false)
|
13
|
+
const ref = useRef<HTMLDivElement | null>(null)
|
14
|
+
|
15
|
+
args.args.ref = ref
|
16
|
+
args.args.scrollToTop = scrollToTop
|
17
|
+
|
18
|
+
const onScrollToTop = () => {
|
19
|
+
setScrollToTop(!scrollToTop)
|
20
|
+
}
|
21
|
+
return (
|
22
|
+
<FlexGrowCol alignItems="stretch" position="absolute" height="calc(100vh - 2rem)" style={{ inset: 0 }}>
|
23
|
+
<Button variant="contained" onClick={onScrollToTop} sx={{ marginBottom: 2 }}>
|
24
|
+
ScrollToTop
|
25
|
+
</Button>
|
26
|
+
<Story {...args} />
|
27
|
+
</FlexGrowCol>
|
28
|
+
)
|
29
|
+
}
|
14
30
|
|
15
31
|
const StorybookEntry: Meta = {
|
16
32
|
argTypes: {},
|
@@ -38,11 +54,14 @@ const Template: ComponentStory<typeof CardContentEx> = (props) => {
|
|
38
54
|
const Default = Template.bind({})
|
39
55
|
Default.args = {}
|
40
56
|
|
57
|
+
const WithRef = Template.bind({})
|
58
|
+
WithRef.decorators = [WithRefDecorator]
|
59
|
+
|
41
60
|
const WithVariant = Template.bind({})
|
42
61
|
WithVariant.args = { variant: 'scrollable' }
|
43
62
|
WithVariant.decorators = [ScrollableDecoratorFn]
|
44
63
|
|
45
|
-
export { Default, WithVariant }
|
64
|
+
export { Default, WithRef, WithVariant }
|
46
65
|
|
47
66
|
// eslint-disable-next-line import/no-default-export
|
48
67
|
export default StorybookEntry
|
@@ -1,4 +1,5 @@
|
|
1
1
|
import { CardContent, CardContentProps, styled } from '@mui/material'
|
2
|
+
import { forwardRef, useEffect } from 'react'
|
2
3
|
|
3
4
|
const CardContentExRoot = styled(CardContent, {
|
4
5
|
name: 'CardContentEx',
|
@@ -16,8 +17,18 @@ const CardContentExRoot = styled(CardContent, {
|
|
16
17
|
|
17
18
|
export type CardContentExProps = CardContentProps & {
|
18
19
|
variant?: 'scrollable' | 'normal'
|
20
|
+
scrollToTop?: boolean
|
19
21
|
}
|
20
22
|
|
21
|
-
export const
|
22
|
-
|
23
|
-
|
23
|
+
export const CardContentExWithRef = forwardRef<HTMLDivElement | null, CardContentExProps>(({ scrollToTop, ...props }, ref) => {
|
24
|
+
useEffect(() => {
|
25
|
+
if (ref !== null && typeof ref === 'object') {
|
26
|
+
ref?.current?.scroll({ behavior: 'smooth', top: 0 })
|
27
|
+
}
|
28
|
+
}, [ref, scrollToTop])
|
29
|
+
return <CardContentExRoot ref={ref} {...props} />
|
30
|
+
})
|
31
|
+
|
32
|
+
CardContentExWithRef.displayName = 'CardContentEx'
|
33
|
+
|
34
|
+
export const CardContentEx = CardContentExWithRef
|
@@ -1,11 +1,12 @@
|
|
1
1
|
import { Card, CardProps } from '@mui/material'
|
2
2
|
import { useGradientStyles } from '@xyo-network/react-shared'
|
3
|
+
import { forwardRef } from 'react'
|
3
4
|
|
4
5
|
export type CardExProps = CardProps & {
|
5
6
|
gradient?: 'border' | 'background'
|
6
7
|
}
|
7
8
|
|
8
|
-
export const
|
9
|
+
export const CardExWithRef: React.FC<CardExProps> = forwardRef(({ style, gradient, ...props }, ref) => {
|
9
10
|
const { styles } = useGradientStyles()
|
10
11
|
const gradientStyle = gradient === 'border' ? styles.border : gradient === 'background' ? styles.background : {}
|
11
12
|
return (
|
@@ -14,7 +15,12 @@ export const CardEx: React.FC<CardExProps> = ({ style, gradient, ...props }) =>
|
|
14
15
|
...gradientStyle,
|
15
16
|
...style,
|
16
17
|
}}
|
18
|
+
ref={ref}
|
17
19
|
{...props}
|
18
20
|
/>
|
19
21
|
)
|
20
|
-
}
|
22
|
+
})
|
23
|
+
|
24
|
+
CardExWithRef.displayName = 'CardEx'
|
25
|
+
|
26
|
+
export const CardEx = CardExWithRef
|
@@ -1,6 +1,7 @@
|
|
1
1
|
/* eslint-disable import/no-internal-modules */
|
2
2
|
import { CardContent, Typography } from '@mui/material'
|
3
3
|
import { ComponentStory, Meta } from '@storybook/react'
|
4
|
+
import { WithRefDecorator } from '@xyo-network/react-storybook'
|
4
5
|
import { useState } from 'react'
|
5
6
|
|
6
7
|
import { PageCard } from './PageCard'
|
@@ -56,7 +57,10 @@ WithNoOnRefresh.parameters = {
|
|
56
57
|
actions: { argTypesRegex: '' },
|
57
58
|
}
|
58
59
|
|
59
|
-
|
60
|
+
const WithRef = Template.bind({})
|
61
|
+
WithRef.decorators = [WithRefDecorator]
|
62
|
+
|
63
|
+
export { Default, WithNoOnRefresh, WithRef }
|
60
64
|
|
61
65
|
// eslint-disable-next-line import/no-default-export
|
62
66
|
export default StorybookEntry
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import RefreshIcon from '@mui/icons-material/Refresh'
|
2
2
|
import { CardHeader, CardHeaderProps, IconButton } from '@mui/material'
|
3
3
|
import { TypographyEx } from '@xyo-network/react-shared'
|
4
|
-
import { ReactNode } from 'react'
|
4
|
+
import { forwardRef, ReactNode } from 'react'
|
5
5
|
|
6
6
|
import { CardEx, CardExProps } from './CardEx'
|
7
7
|
|
@@ -11,9 +11,9 @@ export interface PageCardProps extends CardExProps {
|
|
11
11
|
action?: ReactNode
|
12
12
|
}
|
13
13
|
|
14
|
-
|
14
|
+
const PageCardWithRef: React.FC<PageCardProps> = forwardRef(({ subheader, title, onRefresh, children, action, style, ...props }, ref) => {
|
15
15
|
return (
|
16
|
-
<CardEx style={{ backgroundColor: 'transparent', position: 'relative', ...style }} elevation={0} {...props}>
|
16
|
+
<CardEx style={{ backgroundColor: 'transparent', position: 'relative', ...style }} elevation={0} ref={ref} {...props}>
|
17
17
|
<CardHeader
|
18
18
|
title={
|
19
19
|
<TypographyEx variant="h5" gutterBottom>
|
@@ -38,4 +38,8 @@ export const PageCard: React.FC<PageCardProps> = ({ subheader, title, onRefresh,
|
|
38
38
|
{children}
|
39
39
|
</CardEx>
|
40
40
|
)
|
41
|
-
}
|
41
|
+
})
|
42
|
+
|
43
|
+
PageCardWithRef.displayName = 'PageCard'
|
44
|
+
|
45
|
+
export const PageCard = PageCardWithRef
|