@artsy/palette 31.0.0 → 31.2.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.
- package/dist/elements/Carousel/Carousel.d.ts +1 -0
- package/dist/elements/Carousel/Carousel.js +5 -2
- package/dist/elements/Carousel/Carousel.js.map +1 -1
- package/dist/elements/Carousel/Carousel.story.d.ts +2 -0
- package/dist/elements/Carousel/Carousel.story.js +27 -1
- package/dist/elements/Carousel/Carousel.story.js.map +1 -1
- package/dist/elements/Carousel/paginate.d.ts +9 -5
- package/dist/elements/Carousel/paginate.js +40 -5
- package/dist/elements/Carousel/paginate.js.map +1 -1
- package/dist/elements/Expandable/Expandable.js +5 -2
- package/dist/elements/Expandable/Expandable.js.map +1 -1
- package/dist/elements/Expandable/Expandable.story.d.ts +1 -0
- package/dist/elements/Expandable/Expandable.story.js +21 -1
- package/dist/elements/Expandable/Expandable.story.js.map +1 -1
- package/package.json +2 -2
|
@@ -32,6 +32,7 @@ export interface CarouselProps extends BoxProps {
|
|
|
32
32
|
* that cell widths can be calculated.
|
|
33
33
|
*/
|
|
34
34
|
Cell?: React.ForwardRefExoticComponent<CarouselCellProps>;
|
|
35
|
+
paginateBy?: "page" | "cell";
|
|
35
36
|
onChange?(index: number): void;
|
|
36
37
|
onPageCountChange?(count: number): void;
|
|
37
38
|
}
|
|
@@ -29,7 +29,7 @@ var _CarouselNavigation = require("./CarouselNavigation");
|
|
|
29
29
|
|
|
30
30
|
var _paginate = require("./paginate");
|
|
31
31
|
|
|
32
|
-
var _excluded = ["initialIndex", "children", "Previous", "Next", "Rail", "Cell", "onChange", "onPageCountChange"];
|
|
32
|
+
var _excluded = ["initialIndex", "children", "Previous", "Next", "Rail", "Cell", "paginateBy", "onChange", "onPageCountChange"];
|
|
33
33
|
|
|
34
34
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
35
35
|
|
|
@@ -116,6 +116,8 @@ var Carousel = function Carousel(_ref) {
|
|
|
116
116
|
Rail = _ref$Rail === void 0 ? CarouselRail : _ref$Rail,
|
|
117
117
|
_ref$Cell = _ref.Cell,
|
|
118
118
|
Cell = _ref$Cell === void 0 ? CarouselCell : _ref$Cell,
|
|
119
|
+
_ref$paginateBy = _ref.paginateBy,
|
|
120
|
+
paginateBy = _ref$paginateBy === void 0 ? "page" : _ref$paginateBy,
|
|
119
121
|
onChange = _ref.onChange,
|
|
120
122
|
onPageCountChange = _ref.onPageCountChange,
|
|
121
123
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
@@ -155,7 +157,8 @@ var Carousel = function Carousel(_ref) {
|
|
|
155
157
|
});
|
|
156
158
|
setPages((0, _paginate.paginateCarousel)({
|
|
157
159
|
viewport: viewport.clientWidth,
|
|
158
|
-
values: values
|
|
160
|
+
values: values,
|
|
161
|
+
paginateBy: paginateBy
|
|
159
162
|
}));
|
|
160
163
|
};
|
|
161
164
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/Carousel/Carousel.tsx"],"names":["RAIL_TRANSITION_MS","transition","CarouselRail","Box","defaultProps","as","display","CarouselCell","CELL_GAP_PADDING_AMOUNT","Container","Viewport","Carousel","initialIndex","children","Previous","CarouselPrevious","Next","CarouselNext","Rail","Cell","onChange","onPageCountChange","rest","containerRef","viewportRef","startRef","endRef","cells","Children","toArray","filter","isValidElement","map","child","ref","pages","setPages","initialCursor","max","length","index","handleNext","handlePrev","setCursor","init","viewport","current","values","clientWidth","window","addEventListener","removeEventListener","skipToEnd","focus","skipToStart","handleKeydown","key","contains","document","activeElement","offset","transform","i","isLast"],"mappings":"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","sourcesContent":["import React, {\n Children,\n createRef,\n isValidElement,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\"\nimport styled from \"styled-components\"\nimport { ResponsiveValue, system } from \"styled-system\"\nimport { useCursor } from \"use-cursor\"\nimport { ChevronIcon } from \"../../svgs\"\nimport { SpacingUnit } from \"../../Theme\"\nimport { useUpdateEffect } from \"../../utils/useUpdateEffect\"\nimport { Box, BoxProps } from \"../Box\"\nimport { Skip } from \"../Skip\"\nimport { VisuallyHidden } from \"../VisuallyHidden\"\nimport {\n CarouselNavigationProps,\n CarouselNext,\n CarouselPrevious,\n} from \"./CarouselNavigation\"\nimport { paginateCarousel } from \"./paginate\"\n\nconst RAIL_TRANSITION_MS = 500\n\nconst transition = system({ transition: true })\n\n/** CarouselRailProps */\nexport type CarouselRailProps = BoxProps & {\n transition?: ResponsiveValue<string>\n}\n\n/** A `CarouselRail` slides back and forth within the viewport */\nexport const CarouselRail = styled(Box)<CarouselRailProps>`\n height: 100%;\n margin: 0;\n padding: 0;\n list-style: none;\n white-space: nowrap;\n ${transition}\n`\n\nCarouselRail.defaultProps = {\n as: \"ul\",\n display: \"flex\",\n transition: `transform ${RAIL_TRANSITION_MS}ms`,\n}\n\n/** CarouselCellProps */\nexport type CarouselCellProps = BoxProps\n\n/** A `CarouselCell` wraps a single child in the carousel */\nexport const CarouselCell = styled(Box)`\n white-space: normal;\n`\n\nCarouselCell.defaultProps = {\n as: \"li\",\n}\n\n/**\n * We share this spacing value with the `Swiper` component\n */\nexport const CELL_GAP_PADDING_AMOUNT: SpacingUnit[] = [1, 2]\n\nconst Container = styled(Box)`\n position: relative;\n width: 100%;\n`\n\nconst Viewport = styled(Box)`\n width: 100%;\n overflow: hidden;\n`\n\nexport interface CarouselProps extends BoxProps {\n initialIndex?: number\n children: React.ReactNode\n Next?: typeof CarouselNext | React.FC<CarouselNavigationProps>\n Previous?: typeof CarouselPrevious | React.FC<CarouselNavigationProps>\n Rail?: typeof CarouselRail | React.FC<CarouselRailProps>\n /**\n * If providing a custom `Cell` you must forward a ref so\n * that cell widths can be calculated.\n */\n Cell?: React.ForwardRefExoticComponent<CarouselCellProps>\n onChange?(index: number): void\n onPageCountChange?(count: number): void\n}\n\n/**\n * A `Carousel` accepts children or a series of children that are JSX elements.\n * It presents them in a horizontal rail and when the width exceeds the width\n * of the viewport, it presents navigation arrows and allows a user to page\n * through them.\n */\nexport const Carousel: React.FC<CarouselProps> = ({\n initialIndex = 0,\n children,\n Previous = CarouselPrevious,\n Next = CarouselNext,\n Rail = CarouselRail,\n Cell = CarouselCell,\n onChange,\n onPageCountChange,\n ...rest\n}) => {\n const containerRef = useRef<HTMLDivElement | null>(null)\n const viewportRef = useRef<HTMLDivElement | null>(null)\n const startRef = useRef<HTMLButtonElement | null>(null)\n const endRef = useRef<HTMLButtonElement | null>(null)\n\n const cells = useMemo(\n () =>\n Children.toArray(children)\n .filter(isValidElement)\n .map((child) => ({ child, ref: createRef<HTMLDivElement>() })),\n [children]\n )\n\n const [pages, setPages] = useState([0])\n\n const { index, handleNext, handlePrev, setCursor } = useCursor({\n initialCursor: initialIndex,\n max: pages.length,\n })\n\n const init = () => {\n const { current: viewport } = viewportRef\n const values = cells.map(({ ref }) => ref.current!.clientWidth)\n setPages(paginateCarousel({ viewport: viewport!.clientWidth, values }))\n }\n\n useEffect(() => {\n init()\n window.addEventListener(\"resize\", init)\n return () => {\n window.removeEventListener(\"resize\", init)\n }\n }, [cells])\n\n const skipToEnd = () => {\n if (!endRef.current) return\n endRef.current.focus()\n setCursor(pages.length - 1)\n }\n\n const skipToStart = () => {\n if (!startRef.current) return\n startRef.current.focus()\n setCursor(0)\n }\n\n const handleKeydown = ({ key }: KeyboardEvent) => {\n if (!containerRef.current) return\n\n // Only triggers keyboard navigation if component is in focus\n if (!containerRef.current.contains(document.activeElement)) {\n return\n }\n\n switch (key) {\n case \"ArrowRight\":\n handleNext()\n break\n case \"ArrowLeft\":\n handlePrev()\n break\n default:\n break\n }\n }\n\n useEffect(() => {\n document.addEventListener(\"keydown\", handleKeydown)\n return () => document.removeEventListener(\"keydown\", handleKeydown)\n }, [handleKeydown])\n\n useUpdateEffect(() => {\n onChange && onChange(index)\n }, [onChange, index])\n\n useUpdateEffect(() => {\n onPageCountChange && onPageCountChange(pages.length)\n }, [onPageCountChange, pages.length])\n\n const offset = `-${pages[index]}px`\n\n return (\n <Container ref={containerRef as any} {...rest}>\n <Skip ref={startRef} onClick={skipToEnd} width=\"100%\" mb={1}>\n Skip to end of content\n </Skip>\n\n <nav>\n <Previous\n onClick={handlePrev}\n disabled={index === 0}\n aria-label=\"Previous page\"\n >\n <ChevronIcon direction=\"left\" width={15} height={15} />\n </Previous>\n\n <Next\n onClick={handleNext}\n disabled={index === pages.length - 1}\n aria-label=\"Next page\"\n >\n <ChevronIcon direction=\"right\" width={15} height={15} />\n </Next>\n </nav>\n\n <Viewport ref={viewportRef as any}>\n <Rail style={{ transform: `translateX(${offset})` }}>\n {cells.map(({ child, ref }, i) => {\n const isLast = i === cells.length - 1\n\n return (\n <Cell\n key={i}\n ref={ref}\n pr={!isLast && (CELL_GAP_PADDING_AMOUNT as any)}\n >\n {child}\n </Cell>\n )\n })}\n </Rail>\n </Viewport>\n\n <Skip ref={endRef} onClick={skipToStart} width=\"100%\" mt={1}>\n Skip to beginning of content\n </Skip>\n\n <VisuallyHidden aria-live=\"polite\" aria-atomic=\"true\">\n Page {index + 1} of {pages.length}\n </VisuallyHidden>\n </Container>\n )\n}\n"],"file":"Carousel.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/Carousel/Carousel.tsx"],"names":["RAIL_TRANSITION_MS","transition","CarouselRail","Box","defaultProps","as","display","CarouselCell","CELL_GAP_PADDING_AMOUNT","Container","Viewport","Carousel","initialIndex","children","Previous","CarouselPrevious","Next","CarouselNext","Rail","Cell","paginateBy","onChange","onPageCountChange","rest","containerRef","viewportRef","startRef","endRef","cells","Children","toArray","filter","isValidElement","map","child","ref","pages","setPages","initialCursor","max","length","index","handleNext","handlePrev","setCursor","init","viewport","current","values","clientWidth","window","addEventListener","removeEventListener","skipToEnd","focus","skipToStart","handleKeydown","key","contains","document","activeElement","offset","transform","i","isLast"],"mappings":"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","sourcesContent":["import React, {\n Children,\n createRef,\n isValidElement,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\"\nimport styled from \"styled-components\"\nimport { ResponsiveValue, system } from \"styled-system\"\nimport { useCursor } from \"use-cursor\"\nimport { ChevronIcon } from \"../../svgs\"\nimport { SpacingUnit } from \"../../Theme\"\nimport { useUpdateEffect } from \"../../utils/useUpdateEffect\"\nimport { Box, BoxProps } from \"../Box\"\nimport { Skip } from \"../Skip\"\nimport { VisuallyHidden } from \"../VisuallyHidden\"\nimport {\n CarouselNavigationProps,\n CarouselNext,\n CarouselPrevious,\n} from \"./CarouselNavigation\"\nimport { paginateCarousel } from \"./paginate\"\n\nconst RAIL_TRANSITION_MS = 500\n\nconst transition = system({ transition: true })\n\n/** CarouselRailProps */\nexport type CarouselRailProps = BoxProps & {\n transition?: ResponsiveValue<string>\n}\n\n/** A `CarouselRail` slides back and forth within the viewport */\nexport const CarouselRail = styled(Box)<CarouselRailProps>`\n height: 100%;\n margin: 0;\n padding: 0;\n list-style: none;\n white-space: nowrap;\n ${transition}\n`\n\nCarouselRail.defaultProps = {\n as: \"ul\",\n display: \"flex\",\n transition: `transform ${RAIL_TRANSITION_MS}ms`,\n}\n\n/** CarouselCellProps */\nexport type CarouselCellProps = BoxProps\n\n/** A `CarouselCell` wraps a single child in the carousel */\nexport const CarouselCell = styled(Box)`\n white-space: normal;\n`\n\nCarouselCell.defaultProps = {\n as: \"li\",\n}\n\n/**\n * We share this spacing value with the `Swiper` component\n */\nexport const CELL_GAP_PADDING_AMOUNT: SpacingUnit[] = [1, 2]\n\nconst Container = styled(Box)`\n position: relative;\n width: 100%;\n`\n\nconst Viewport = styled(Box)`\n width: 100%;\n overflow: hidden;\n`\n\nexport interface CarouselProps extends BoxProps {\n initialIndex?: number\n children: React.ReactNode\n Next?: typeof CarouselNext | React.FC<CarouselNavigationProps>\n Previous?: typeof CarouselPrevious | React.FC<CarouselNavigationProps>\n Rail?: typeof CarouselRail | React.FC<CarouselRailProps>\n /**\n * If providing a custom `Cell` you must forward a ref so\n * that cell widths can be calculated.\n */\n Cell?: React.ForwardRefExoticComponent<CarouselCellProps>\n paginateBy?: \"page\" | \"cell\"\n onChange?(index: number): void\n onPageCountChange?(count: number): void\n}\n\n/**\n * A `Carousel` accepts children or a series of children that are JSX elements.\n * It presents them in a horizontal rail and when the width exceeds the width\n * of the viewport, it presents navigation arrows and allows a user to page\n * through them.\n */\nexport const Carousel: React.FC<CarouselProps> = ({\n initialIndex = 0,\n children,\n Previous = CarouselPrevious,\n Next = CarouselNext,\n Rail = CarouselRail,\n Cell = CarouselCell,\n paginateBy = \"page\",\n onChange,\n onPageCountChange,\n ...rest\n}) => {\n const containerRef = useRef<HTMLDivElement | null>(null)\n const viewportRef = useRef<HTMLDivElement | null>(null)\n const startRef = useRef<HTMLButtonElement | null>(null)\n const endRef = useRef<HTMLButtonElement | null>(null)\n\n const cells = useMemo(\n () =>\n Children.toArray(children)\n .filter(isValidElement)\n .map((child) => ({ child, ref: createRef<HTMLDivElement>() })),\n [children]\n )\n\n const [pages, setPages] = useState([0])\n\n const { index, handleNext, handlePrev, setCursor } = useCursor({\n initialCursor: initialIndex,\n max: pages.length,\n })\n\n const init = () => {\n const { current: viewport } = viewportRef\n const values = cells.map(({ ref }) => ref.current!.clientWidth)\n\n setPages(\n paginateCarousel({\n viewport: viewport!.clientWidth,\n values,\n paginateBy,\n })\n )\n }\n\n useEffect(() => {\n init()\n window.addEventListener(\"resize\", init)\n return () => {\n window.removeEventListener(\"resize\", init)\n }\n }, [cells])\n\n const skipToEnd = () => {\n if (!endRef.current) return\n endRef.current.focus()\n setCursor(pages.length - 1)\n }\n\n const skipToStart = () => {\n if (!startRef.current) return\n startRef.current.focus()\n setCursor(0)\n }\n\n const handleKeydown = ({ key }: KeyboardEvent) => {\n if (!containerRef.current) return\n\n // Only triggers keyboard navigation if component is in focus\n if (!containerRef.current.contains(document.activeElement)) {\n return\n }\n\n switch (key) {\n case \"ArrowRight\":\n handleNext()\n break\n case \"ArrowLeft\":\n handlePrev()\n break\n default:\n break\n }\n }\n\n useEffect(() => {\n document.addEventListener(\"keydown\", handleKeydown)\n return () => document.removeEventListener(\"keydown\", handleKeydown)\n }, [handleKeydown])\n\n useUpdateEffect(() => {\n onChange && onChange(index)\n }, [onChange, index])\n\n useUpdateEffect(() => {\n onPageCountChange && onPageCountChange(pages.length)\n }, [onPageCountChange, pages.length])\n\n const offset = `-${pages[index]}px`\n\n return (\n <Container ref={containerRef as any} {...rest}>\n <Skip ref={startRef} onClick={skipToEnd} width=\"100%\" mb={1}>\n Skip to end of content\n </Skip>\n\n <nav>\n <Previous\n onClick={handlePrev}\n disabled={index === 0}\n aria-label=\"Previous page\"\n >\n <ChevronIcon direction=\"left\" width={15} height={15} />\n </Previous>\n\n <Next\n onClick={handleNext}\n disabled={index === pages.length - 1}\n aria-label=\"Next page\"\n >\n <ChevronIcon direction=\"right\" width={15} height={15} />\n </Next>\n </nav>\n\n <Viewport ref={viewportRef as any}>\n <Rail style={{ transform: `translateX(${offset})` }}>\n {cells.map(({ child, ref }, i) => {\n const isLast = i === cells.length - 1\n\n return (\n <Cell\n key={i}\n ref={ref}\n pr={!isLast && (CELL_GAP_PADDING_AMOUNT as any)}\n >\n {child}\n </Cell>\n )\n })}\n </Rail>\n </Viewport>\n\n <Skip ref={endRef} onClick={skipToStart} width=\"100%\" mt={1}>\n Skip to beginning of content\n </Skip>\n\n <VisuallyHidden aria-live=\"polite\" aria-atomic=\"true\">\n Page {index + 1} of {pages.length}\n </VisuallyHidden>\n </Container>\n )\n}\n"],"file":"Carousel.js"}
|
|
@@ -5,7 +5,7 @@ function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" =
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.default = exports.VaryingWidths = exports.VaryingHeights = exports.TwoishPages = exports.SinglePage = exports.SingleOverflowingItem = exports.Simple = exports.NavigateViaProps = exports.MultipleOverflowingItems = exports.Multiple = exports.ManyPages = exports.InitialIndexOnMount = exports.DynamicItems = exports.CustomRailAndCells = exports.CustomArrows = exports.ConditionalChildren = exports.CarouselWithText = void 0;
|
|
8
|
+
exports.default = exports.VaryingWidths = exports.VaryingHeights = exports.TwoishPages = exports.SinglePage = exports.SingleOverflowingItem = exports.Simple = exports.PaginationByCellWithVaryingWidths = exports.PaginationByCell = exports.NavigateViaProps = exports.MultipleOverflowingItems = exports.Multiple = exports.ManyPages = exports.InitialIndexOnMount = exports.DynamicItems = exports.CustomRailAndCells = exports.CustomArrows = exports.ConditionalChildren = exports.CarouselWithText = void 0;
|
|
9
9
|
|
|
10
10
|
var _addonActions = require("@storybook/addon-actions");
|
|
11
11
|
|
|
@@ -445,4 +445,30 @@ var ConditionalChildren = function ConditionalChildren() {
|
|
|
445
445
|
|
|
446
446
|
exports.ConditionalChildren = ConditionalChildren;
|
|
447
447
|
ConditionalChildren.displayName = "ConditionalChildren";
|
|
448
|
+
|
|
449
|
+
var PaginationByCell = function PaginationByCell() {
|
|
450
|
+
return /*#__PURE__*/_react.default.createElement(Demo, {
|
|
451
|
+
paginateBy: "cell"
|
|
452
|
+
});
|
|
453
|
+
};
|
|
454
|
+
|
|
455
|
+
exports.PaginationByCell = PaginationByCell;
|
|
456
|
+
PaginationByCell.displayName = "PaginationByCell";
|
|
457
|
+
|
|
458
|
+
var PaginationByCellWithVaryingWidths = function PaginationByCellWithVaryingWidths() {
|
|
459
|
+
var widths = Array.from(Array(25)).map(function (_, i) {
|
|
460
|
+
if (i % 15 === 0) return 400;
|
|
461
|
+
if (i % 5 === 0) return 300;
|
|
462
|
+
if (i % 3 === 0) return 333;
|
|
463
|
+
if (i % 2 === 0) return 275;
|
|
464
|
+
return 250;
|
|
465
|
+
});
|
|
466
|
+
return /*#__PURE__*/_react.default.createElement(Demo, {
|
|
467
|
+
paginateBy: "cell",
|
|
468
|
+
widths: widths
|
|
469
|
+
});
|
|
470
|
+
};
|
|
471
|
+
|
|
472
|
+
exports.PaginationByCellWithVaryingWidths = PaginationByCellWithVaryingWidths;
|
|
473
|
+
PaginationByCellWithVaryingWidths.displayName = "PaginationByCellWithVaryingWidths";
|
|
448
474
|
//# sourceMappingURL=Carousel.story.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/Carousel/Carousel.story.tsx"],"names":["LOREM","Demo","widths","Array","from","map","_","heights","rest","width","i","length","title","Simple","Multiple","SinglePage","story","name","SingleOverflowingItem","MultipleOverflowingItems","TwoishPages","ManyPages","VaryingWidths","VaryingHeights","DynamicItems","setWidths","interval","setInterval","prevWidths","clearInterval","parameters","chromatic","disable","CustomArrows","props","transform","CustomRailAndCells","React","forwardRef","ref","CarouselWithText","InitialIndexOnMount","NavigateViaProps","initialIndex","resetIndex","ConditionalChildren"],"mappings":"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","sourcesContent":["import { action } from \"@storybook/addon-actions\"\nimport React, { useEffect, useState } from \"react\"\nimport { Box } from \"../Box\"\nimport { Clickable } from \"../Clickable\"\nimport { Text } from \"../Text\"\nimport {\n Carousel,\n CarouselCell,\n CarouselNext,\n CarouselPrevious,\n CarouselProps,\n CarouselRail,\n} from \"./\"\n\nconst LOREM =\n \"Lorem ipsum dolor sit amet consectetur adipisicing elit. Molestiae, adipisci. Voluptate voluptatum porro facere atque dolores est neque ipsam quaerat necessitatibus? Deleniti tempora assumenda accusantium, quia quo ad rem expedita!\"\n\nconst Demo = ({\n widths = Array.from(Array(10)).map((_) => 300),\n heights = [400],\n ...rest\n}: {\n widths?: Array<number | string>\n heights?: number[]\n} & Omit<CarouselProps, \"children\">) => {\n return (\n <Box mx={[2, 4]} my={2}>\n <Carousel onChange={action(\"onChange\")} {...rest}>\n {widths.map((width, i) => {\n return (\n <Clickable\n key={i}\n width={width}\n height={heights[i % heights.length]}\n bg=\"black10\"\n border=\"1px solid\"\n borderColor=\"black30\"\n p={1}\n textAlign=\"center\"\n >\n <Text variant=\"xs\">{i + 1}</Text>\n </Clickable>\n )\n })}\n </Carousel>\n </Box>\n )\n}\n\nexport default { title: \"Components/Carousel\" }\n\nexport const Simple = () => {\n return <Demo />\n}\n\nexport const Multiple = () => {\n return (\n <>\n <Demo />\n <Demo />\n <Demo />\n </>\n )\n}\n\nexport const SinglePage = () => {\n const widths = [250, 250]\n return <Demo widths={widths} />\n}\n\nSinglePage.story = {\n name: \"Single page\",\n}\n\nexport const SingleOverflowingItem = () => {\n const widths = [2000]\n return <Demo widths={widths} />\n}\n\nSingleOverflowingItem.story = {\n name: \"Single overflowing item\",\n}\n\nexport const MultipleOverflowingItems = () => {\n const widths = [100, 2000, 1000, 100, 1000]\n return <Demo widths={widths} />\n}\n\nMultipleOverflowingItems.story = {\n name: \"Multiple overflowing items\",\n}\n\nexport const TwoishPages = () => {\n const widths = Array.from(Array(5)).map((_) => 250)\n return <Demo widths={widths} />\n}\n\nTwoishPages.story = {\n name: \"Two-(ish) pages\",\n}\n\nexport const ManyPages = () => {\n const widths = Array.from(Array(100)).map((_) => 250)\n return <Demo widths={widths} />\n}\n\nManyPages.story = {\n name: \"Many pages\",\n}\n\nexport const VaryingWidths = () => {\n const widths = Array.from(Array(25)).map((_, i) => {\n if (i % 15 === 0) return 400\n if (i % 5 === 0) return 300\n if (i % 3 === 0) return 333\n if (i % 2 === 0) return 275\n return 250\n })\n\n return <Demo widths={widths} />\n}\n\nVaryingWidths.story = {\n name: \"Varying widths\",\n}\n\nexport const VaryingHeights = () => {\n const widths = Array.from(Array(25)).map((_, i) => {\n if (i % 15 === 0) return 400\n if (i % 5 === 0) return 300\n if (i % 3 === 0) return 333\n if (i % 2 === 0) return 275\n return 250\n })\n\n return <Demo widths={widths} heights={[400, 300, 333, 275]} />\n}\n\nVaryingHeights.story = {\n name: \"Varying heights\",\n}\n\nexport const DynamicItems = () => {\n const [widths, setWidths] = useState([300])\n useEffect(() => {\n const interval = setInterval(() => {\n setWidths((prevWidths) => [...prevWidths, 300])\n }, 500)\n return () => clearInterval(interval)\n }, [])\n\n return <Demo widths={widths} />\n}\n\nDynamicItems.story = {\n name: \"Dynamic items\",\n parameters: { chromatic: { disable: true } },\n}\n\nexport const CustomArrows = () => {\n return (\n <Demo\n Previous={(props) => (\n <CarouselPrevious\n {...props}\n style={{ transform: \"translateX(0)\" }}\n bg=\"black5\"\n color=\"red100\"\n height={300}\n opacity={0.75}\n zIndex={1}\n />\n )}\n Next={(props) => {\n return (\n <CarouselNext\n {...props}\n style={{ transform: \"translateX(0)\" }}\n bg=\"black5\"\n color=\"red100\"\n height={300}\n opacity={0.75}\n zIndex={1}\n />\n )\n }}\n />\n )\n}\n\nCustomArrows.story = {\n name: \"Custom arrows\",\n}\n\nexport const CustomRailAndCells = () => {\n return (\n <Demo\n widths={[\"100%\", \"100%\", \"100%\", \"100%\"]}\n // eslint-disable-next-line react/display-name\n Cell={React.forwardRef((props, ref) => {\n return (\n <CarouselCell\n {...props}\n ref={ref as any}\n display=\"inline-flex\"\n width=\"100%\"\n pr={0}\n />\n )\n })}\n Rail={(props) => {\n return <CarouselRail {...props} transition=\"none\" display=\"block\" />\n }}\n />\n )\n}\n\nCustomRailAndCells.story = {\n name: \"Custom rail and cells\",\n}\n\nexport const CarouselWithText = () => {\n return (\n <Box mx={[2, 4]} my={2}>\n <Carousel>\n <Text bg=\"black10\" p={1} width={300}>\n {LOREM}\n </Text>\n\n <Text bg=\"black10\" p={1} width={300}>\n {LOREM}\n </Text>\n\n <Text bg=\"black10\" p={1} width={300}>\n {LOREM}\n </Text>\n\n <Text bg=\"black10\" p={1} width={300}>\n {LOREM}\n </Text>\n\n <Text bg=\"black10\" p={1} width={300}>\n {LOREM}\n </Text>\n\n <Text bg=\"black10\" p={1} width={300}>\n {LOREM}\n </Text>\n </Carousel>\n </Box>\n )\n}\n\nCarouselWithText.story = {\n name: \"Carousel with text\",\n}\n\nexport const InitialIndexOnMount = () => {\n return <Demo initialIndex={3} />\n}\n\nInitialIndexOnMount.story = {\n name: \"initialIndex on mount\",\n}\n\nexport const NavigateViaProps = () => {\n const [initialIndex, resetIndex] = useState(0)\n return (\n <Box>\n <Demo initialIndex={initialIndex} onChange={resetIndex} />\n <Box display=\"flex\" justifyContent=\"space-around\">\n <Clickable onClick={() => resetIndex(0)}>Navigate to page 1</Clickable>\n <Clickable onClick={() => resetIndex(1)}>Navigate to page 2</Clickable>\n <Clickable onClick={() => resetIndex(2)}>Navigate to page 3</Clickable>\n <Clickable onClick={() => resetIndex(3)}>Navigate to page 4</Clickable>\n <Clickable onClick={() => resetIndex(4)}>Navigate to page 5</Clickable>\n </Box>\n </Box>\n )\n}\n\nNavigateViaProps.story = {\n name: \"Navigate via props\",\n}\n\nexport const ConditionalChildren = () => {\n return (\n <Box mx={[2, 4]} my={2}>\n <Carousel>\n <Box bg=\"black10\" width={300} height={300} p={2}>\n <Text variant=\"xs\">1</Text>\n </Box>\n\n <Box bg=\"black10\" width={300} height={300} p={2}>\n <Text variant=\"xs\">2</Text>\n </Box>\n\n {false && (\n <Box bg=\"black10\" width={300} height={300} p={2}>\n <Text variant=\"xs\">3</Text>\n </Box>\n )}\n\n {true && (\n <Box bg=\"black10\" width={300} height={300} p={2}>\n <Text variant=\"xs\">4</Text>\n </Box>\n )}\n\n <Box bg=\"black10\" width={300} height={300} p={2}>\n <Text variant=\"xs\">5</Text>\n </Box>\n\n <Box bg=\"black10\" width={300} height={300} p={2}>\n <Text variant=\"xs\">6</Text>\n </Box>\n </Carousel>\n </Box>\n )\n}\n"],"file":"Carousel.story.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/Carousel/Carousel.story.tsx"],"names":["LOREM","Demo","widths","Array","from","map","_","heights","rest","width","i","length","title","Simple","Multiple","SinglePage","story","name","SingleOverflowingItem","MultipleOverflowingItems","TwoishPages","ManyPages","VaryingWidths","VaryingHeights","DynamicItems","setWidths","interval","setInterval","prevWidths","clearInterval","parameters","chromatic","disable","CustomArrows","props","transform","CustomRailAndCells","React","forwardRef","ref","CarouselWithText","InitialIndexOnMount","NavigateViaProps","initialIndex","resetIndex","ConditionalChildren","PaginationByCell","PaginationByCellWithVaryingWidths"],"mappings":"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","sourcesContent":["import { action } from \"@storybook/addon-actions\"\nimport React, { useEffect, useState } from \"react\"\nimport { Box } from \"../Box\"\nimport { Clickable } from \"../Clickable\"\nimport { Text } from \"../Text\"\nimport {\n Carousel,\n CarouselCell,\n CarouselNext,\n CarouselPrevious,\n CarouselProps,\n CarouselRail,\n} from \"./\"\n\nconst LOREM =\n \"Lorem ipsum dolor sit amet consectetur adipisicing elit. Molestiae, adipisci. Voluptate voluptatum porro facere atque dolores est neque ipsam quaerat necessitatibus? Deleniti tempora assumenda accusantium, quia quo ad rem expedita!\"\n\nconst Demo = ({\n widths = Array.from(Array(10)).map((_) => 300),\n heights = [400],\n ...rest\n}: {\n widths?: Array<number | string>\n heights?: number[]\n} & Omit<CarouselProps, \"children\">) => {\n return (\n <Box mx={[2, 4]} my={2}>\n <Carousel onChange={action(\"onChange\")} {...rest}>\n {widths.map((width, i) => {\n return (\n <Clickable\n key={i}\n width={width}\n height={heights[i % heights.length]}\n bg=\"black10\"\n border=\"1px solid\"\n borderColor=\"black30\"\n p={1}\n textAlign=\"center\"\n >\n <Text variant=\"xs\">{i + 1}</Text>\n </Clickable>\n )\n })}\n </Carousel>\n </Box>\n )\n}\n\nexport default { title: \"Components/Carousel\" }\n\nexport const Simple = () => {\n return <Demo />\n}\n\nexport const Multiple = () => {\n return (\n <>\n <Demo />\n <Demo />\n <Demo />\n </>\n )\n}\n\nexport const SinglePage = () => {\n const widths = [250, 250]\n return <Demo widths={widths} />\n}\n\nSinglePage.story = {\n name: \"Single page\",\n}\n\nexport const SingleOverflowingItem = () => {\n const widths = [2000]\n return <Demo widths={widths} />\n}\n\nSingleOverflowingItem.story = {\n name: \"Single overflowing item\",\n}\n\nexport const MultipleOverflowingItems = () => {\n const widths = [100, 2000, 1000, 100, 1000]\n return <Demo widths={widths} />\n}\n\nMultipleOverflowingItems.story = {\n name: \"Multiple overflowing items\",\n}\n\nexport const TwoishPages = () => {\n const widths = Array.from(Array(5)).map((_) => 250)\n return <Demo widths={widths} />\n}\n\nTwoishPages.story = {\n name: \"Two-(ish) pages\",\n}\n\nexport const ManyPages = () => {\n const widths = Array.from(Array(100)).map((_) => 250)\n return <Demo widths={widths} />\n}\n\nManyPages.story = {\n name: \"Many pages\",\n}\n\nexport const VaryingWidths = () => {\n const widths = Array.from(Array(25)).map((_, i) => {\n if (i % 15 === 0) return 400\n if (i % 5 === 0) return 300\n if (i % 3 === 0) return 333\n if (i % 2 === 0) return 275\n return 250\n })\n\n return <Demo widths={widths} />\n}\n\nVaryingWidths.story = {\n name: \"Varying widths\",\n}\n\nexport const VaryingHeights = () => {\n const widths = Array.from(Array(25)).map((_, i) => {\n if (i % 15 === 0) return 400\n if (i % 5 === 0) return 300\n if (i % 3 === 0) return 333\n if (i % 2 === 0) return 275\n return 250\n })\n\n return <Demo widths={widths} heights={[400, 300, 333, 275]} />\n}\n\nVaryingHeights.story = {\n name: \"Varying heights\",\n}\n\nexport const DynamicItems = () => {\n const [widths, setWidths] = useState([300])\n useEffect(() => {\n const interval = setInterval(() => {\n setWidths((prevWidths) => [...prevWidths, 300])\n }, 500)\n return () => clearInterval(interval)\n }, [])\n\n return <Demo widths={widths} />\n}\n\nDynamicItems.story = {\n name: \"Dynamic items\",\n parameters: { chromatic: { disable: true } },\n}\n\nexport const CustomArrows = () => {\n return (\n <Demo\n Previous={(props) => (\n <CarouselPrevious\n {...props}\n style={{ transform: \"translateX(0)\" }}\n bg=\"black5\"\n color=\"red100\"\n height={300}\n opacity={0.75}\n zIndex={1}\n />\n )}\n Next={(props) => {\n return (\n <CarouselNext\n {...props}\n style={{ transform: \"translateX(0)\" }}\n bg=\"black5\"\n color=\"red100\"\n height={300}\n opacity={0.75}\n zIndex={1}\n />\n )\n }}\n />\n )\n}\n\nCustomArrows.story = {\n name: \"Custom arrows\",\n}\n\nexport const CustomRailAndCells = () => {\n return (\n <Demo\n widths={[\"100%\", \"100%\", \"100%\", \"100%\"]}\n // eslint-disable-next-line react/display-name\n Cell={React.forwardRef((props, ref) => {\n return (\n <CarouselCell\n {...props}\n ref={ref as any}\n display=\"inline-flex\"\n width=\"100%\"\n pr={0}\n />\n )\n })}\n Rail={(props) => {\n return <CarouselRail {...props} transition=\"none\" display=\"block\" />\n }}\n />\n )\n}\n\nCustomRailAndCells.story = {\n name: \"Custom rail and cells\",\n}\n\nexport const CarouselWithText = () => {\n return (\n <Box mx={[2, 4]} my={2}>\n <Carousel>\n <Text bg=\"black10\" p={1} width={300}>\n {LOREM}\n </Text>\n\n <Text bg=\"black10\" p={1} width={300}>\n {LOREM}\n </Text>\n\n <Text bg=\"black10\" p={1} width={300}>\n {LOREM}\n </Text>\n\n <Text bg=\"black10\" p={1} width={300}>\n {LOREM}\n </Text>\n\n <Text bg=\"black10\" p={1} width={300}>\n {LOREM}\n </Text>\n\n <Text bg=\"black10\" p={1} width={300}>\n {LOREM}\n </Text>\n </Carousel>\n </Box>\n )\n}\n\nCarouselWithText.story = {\n name: \"Carousel with text\",\n}\n\nexport const InitialIndexOnMount = () => {\n return <Demo initialIndex={3} />\n}\n\nInitialIndexOnMount.story = {\n name: \"initialIndex on mount\",\n}\n\nexport const NavigateViaProps = () => {\n const [initialIndex, resetIndex] = useState(0)\n return (\n <Box>\n <Demo initialIndex={initialIndex} onChange={resetIndex} />\n <Box display=\"flex\" justifyContent=\"space-around\">\n <Clickable onClick={() => resetIndex(0)}>Navigate to page 1</Clickable>\n <Clickable onClick={() => resetIndex(1)}>Navigate to page 2</Clickable>\n <Clickable onClick={() => resetIndex(2)}>Navigate to page 3</Clickable>\n <Clickable onClick={() => resetIndex(3)}>Navigate to page 4</Clickable>\n <Clickable onClick={() => resetIndex(4)}>Navigate to page 5</Clickable>\n </Box>\n </Box>\n )\n}\n\nNavigateViaProps.story = {\n name: \"Navigate via props\",\n}\n\nexport const ConditionalChildren = () => {\n return (\n <Box mx={[2, 4]} my={2}>\n <Carousel>\n <Box bg=\"black10\" width={300} height={300} p={2}>\n <Text variant=\"xs\">1</Text>\n </Box>\n\n <Box bg=\"black10\" width={300} height={300} p={2}>\n <Text variant=\"xs\">2</Text>\n </Box>\n\n {false && (\n <Box bg=\"black10\" width={300} height={300} p={2}>\n <Text variant=\"xs\">3</Text>\n </Box>\n )}\n\n {true && (\n <Box bg=\"black10\" width={300} height={300} p={2}>\n <Text variant=\"xs\">4</Text>\n </Box>\n )}\n\n <Box bg=\"black10\" width={300} height={300} p={2}>\n <Text variant=\"xs\">5</Text>\n </Box>\n\n <Box bg=\"black10\" width={300} height={300} p={2}>\n <Text variant=\"xs\">6</Text>\n </Box>\n </Carousel>\n </Box>\n )\n}\n\nexport const PaginationByCell = () => {\n return <Demo paginateBy=\"cell\" />\n}\n\nexport const PaginationByCellWithVaryingWidths = () => {\n const widths = Array.from(Array(25)).map((_, i) => {\n if (i % 15 === 0) return 400\n if (i % 5 === 0) return 300\n if (i % 3 === 0) return 333\n if (i % 2 === 0) return 275\n return 250\n })\n\n return <Demo paginateBy=\"cell\" widths={widths} />\n}\n"],"file":"Carousel.story.js"}
|
|
@@ -14,14 +14,18 @@ export declare const chunk: ({ viewport, values, }: {
|
|
|
14
14
|
}) => number[];
|
|
15
15
|
/** Align last page to the left or right */
|
|
16
16
|
export declare type CarouselPaginationAlignment = "left" | "right";
|
|
17
|
+
export declare type CarouselPaginateBy = "page" | "cell";
|
|
18
|
+
interface PaginateCarouselProps {
|
|
19
|
+
viewport: number;
|
|
20
|
+
values: number[];
|
|
21
|
+
alignment?: CarouselPaginationAlignment;
|
|
22
|
+
paginateBy?: CarouselPaginateBy;
|
|
23
|
+
}
|
|
17
24
|
/**
|
|
18
25
|
* Creates an array of offsets based on the given viewport
|
|
19
26
|
* @param viewport window width
|
|
20
27
|
* @param values array of cell widths
|
|
21
28
|
* @param alignment align last page to the left or right
|
|
22
29
|
*/
|
|
23
|
-
export declare const paginateCarousel: ({ viewport, values, alignment, }:
|
|
24
|
-
|
|
25
|
-
values: number[];
|
|
26
|
-
alignment?: CarouselPaginationAlignment | undefined;
|
|
27
|
-
}) => number[];
|
|
30
|
+
export declare const paginateCarousel: ({ viewport, values, alignment, paginateBy, }: PaginateCarouselProps) => number[];
|
|
31
|
+
export {};
|
|
@@ -55,17 +55,52 @@ var chunk = function chunk(_ref) {
|
|
|
55
55
|
|
|
56
56
|
exports.chunk = chunk;
|
|
57
57
|
|
|
58
|
+
var paginateCarouselByCell = function paginateCarouselByCell(_ref2) {
|
|
59
|
+
var values = _ref2.values,
|
|
60
|
+
viewport = _ref2.viewport;
|
|
61
|
+
var sum = values.reduce(function (acc, curr) {
|
|
62
|
+
return acc + curr;
|
|
63
|
+
}, 0); // No need to paginate
|
|
64
|
+
|
|
65
|
+
if (sum <= viewport) {
|
|
66
|
+
return [0];
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
var offsets = compound(values);
|
|
70
|
+
var lastOffset = offsets[offsets.length - 1]; // Get the offset when the last cell is fully displayed
|
|
71
|
+
// and aligned to the right at the end of the carousel
|
|
72
|
+
|
|
73
|
+
var offsetToLastCell = lastOffset - viewport; // Ignore some offsets whose value exceeds the offset of the last cell
|
|
74
|
+
// when it is displayed and aligned to the right
|
|
75
|
+
|
|
76
|
+
var edges = offsets.filter(function (offset) {
|
|
77
|
+
return offsetToLastCell > offset;
|
|
78
|
+
});
|
|
79
|
+
return [0].concat(_toConsumableArray(edges), [offsetToLastCell]);
|
|
80
|
+
};
|
|
58
81
|
/**
|
|
59
82
|
* Creates an array of offsets based on the given viewport
|
|
60
83
|
* @param viewport window width
|
|
61
84
|
* @param values array of cell widths
|
|
62
85
|
* @param alignment align last page to the left or right
|
|
63
86
|
*/
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
87
|
+
|
|
88
|
+
|
|
89
|
+
var paginateCarousel = function paginateCarousel(_ref3) {
|
|
90
|
+
var viewport = _ref3.viewport,
|
|
91
|
+
values = _ref3.values,
|
|
92
|
+
_ref3$alignment = _ref3.alignment,
|
|
93
|
+
alignment = _ref3$alignment === void 0 ? "right" : _ref3$alignment,
|
|
94
|
+
_ref3$paginateBy = _ref3.paginateBy,
|
|
95
|
+
paginateBy = _ref3$paginateBy === void 0 ? "page" : _ref3$paginateBy;
|
|
96
|
+
|
|
97
|
+
if (paginateBy === "cell") {
|
|
98
|
+
return paginateCarouselByCell({
|
|
99
|
+
values: values,
|
|
100
|
+
viewport: viewport
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
|
|
69
104
|
var offsets = chunk({
|
|
70
105
|
viewport: viewport,
|
|
71
106
|
values: values
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/Carousel/paginate.ts"],"names":["compound","xs","reduce","p","n","concat","slice","chunk","viewport","values","acc","value","prev","length","
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/Carousel/paginate.ts"],"names":["compound","xs","reduce","p","n","concat","slice","chunk","viewport","values","acc","value","prev","length","paginateCarouselByCell","sum","curr","offsets","lastOffset","offsetToLastCell","edges","filter","offset","paginateCarousel","alignment","paginateBy","head","tail","pages"],"mappings":"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","sourcesContent":["/**\n * Sums all values, building from the previous\n * @param xs list of values to compound\n */\nexport const compound = (xs: number[]): number[] => {\n // @ts-expect-error MIGRATE_STRICT_MODE\n return xs.reduce((p, n) => p.concat((+p.slice(-1) || 0) + n), [])\n}\n\n/**\n * Build an array of offsets\n * @param viewport window width\n * @param values array of cell widths\n */\nexport const chunk = ({\n viewport,\n values,\n}: {\n viewport: number\n values: number[]\n}) => {\n return values.reduce(\n (acc, value) => {\n const prev = acc[acc.length - 1]\n if (prev + value <= viewport) {\n acc[acc.length - 1] += value\n return acc\n }\n return [...acc, value]\n },\n [0]\n )\n}\n\n/** Align last page to the left or right */\nexport type CarouselPaginationAlignment = \"left\" | \"right\"\n\nexport type CarouselPaginateBy = \"page\" | \"cell\"\n\ninterface PaginateCarouselProps {\n viewport: number\n values: number[]\n alignment?: CarouselPaginationAlignment\n paginateBy?: CarouselPaginateBy\n}\n\nconst paginateCarouselByCell = ({\n values,\n viewport,\n}: Pick<PaginateCarouselProps, \"values\" | \"viewport\">) => {\n const sum = values.reduce((acc, curr) => acc + curr, 0)\n\n // No need to paginate\n if (sum <= viewport) {\n return [0]\n }\n\n const offsets = compound(values)\n const lastOffset = offsets[offsets.length - 1]\n\n // Get the offset when the last cell is fully displayed\n // and aligned to the right at the end of the carousel\n const offsetToLastCell = lastOffset - viewport\n\n // Ignore some offsets whose value exceeds the offset of the last cell\n // when it is displayed and aligned to the right\n const edges = offsets.filter((offset) => offsetToLastCell > offset)\n\n return [0, ...edges, offsetToLastCell]\n}\n\n/**\n * Creates an array of offsets based on the given viewport\n * @param viewport window width\n * @param values array of cell widths\n * @param alignment align last page to the left or right\n */\nexport const paginateCarousel = ({\n viewport,\n values,\n alignment = \"right\",\n paginateBy = \"page\",\n}: PaginateCarouselProps) => {\n if (paginateBy === \"cell\") {\n return paginateCarouselByCell({ values, viewport })\n }\n\n const offsets = chunk({ viewport, values })\n\n // Only a single page — no need to paginate\n if (offsets.length === 1) {\n return [0]\n }\n\n // Last page align right\n if (alignment === \"right\") {\n const edges = compound(offsets)\n const head = edges.slice(0, -2)\n const tail = edges[edges.length - 1] - viewport\n return [0, ...head, tail]\n }\n\n // Last page align left\n const pages = compound(offsets).slice(0, -1)\n\n return [0, ...pages]\n}\n"],"file":"paginate.js"}
|
|
@@ -21,7 +21,7 @@ var _Flex = require("../Flex");
|
|
|
21
21
|
|
|
22
22
|
var _Text = require("../Text");
|
|
23
23
|
|
|
24
|
-
var _excluded = ["label", "expanded", "children", "disabled", "onClick"];
|
|
24
|
+
var _excluded = ["label", "expanded", "children", "disabled", "onClick", "borderColor"];
|
|
25
25
|
|
|
26
26
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
27
27
|
|
|
@@ -54,6 +54,8 @@ var Expandable = function Expandable(_ref) {
|
|
|
54
54
|
children = _ref.children,
|
|
55
55
|
disabled = _ref.disabled,
|
|
56
56
|
onClick = _ref.onClick,
|
|
57
|
+
_ref$borderColor = _ref.borderColor,
|
|
58
|
+
borderColor = _ref$borderColor === void 0 ? "black60" : _ref$borderColor,
|
|
57
59
|
rest = _objectWithoutProperties(_ref, _excluded);
|
|
58
60
|
|
|
59
61
|
var _useState = (0, _react.useState)(defaultExpanded),
|
|
@@ -79,7 +81,7 @@ var Expandable = function Expandable(_ref) {
|
|
|
79
81
|
alignItems: "center",
|
|
80
82
|
justifyContent: "space-between",
|
|
81
83
|
borderTop: "1px solid",
|
|
82
|
-
borderColor:
|
|
84
|
+
borderColor: borderColor,
|
|
83
85
|
pt: 1,
|
|
84
86
|
disabled: disabled,
|
|
85
87
|
"aria-expanded": expanded,
|
|
@@ -97,6 +99,7 @@ var Expandable = function Expandable(_ref) {
|
|
|
97
99
|
height: 14,
|
|
98
100
|
ml: 1,
|
|
99
101
|
mr: 1,
|
|
102
|
+
fill: "currentColor",
|
|
100
103
|
"aria-hidden": "true"
|
|
101
104
|
})), expanded && (typeof children === "function" ? children({
|
|
102
105
|
setExpanded: setExpanded,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/Expandable/Expandable.tsx"],"names":["Expandable","label","defaultExpanded","expanded","children","disabled","onClick","rest","setExpanded","boxProps","clickableProps","handleClick","event","prevExpanded"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA;AACA;AACA;AACO,IAAMA,UAAqC,GAAG,SAAxCA,UAAwC,
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/Expandable/Expandable.tsx"],"names":["Expandable","label","defaultExpanded","expanded","children","disabled","onClick","borderColor","rest","setExpanded","boxProps","clickableProps","handleClick","event","prevExpanded"],"mappings":";;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA;AACA;AACA;AACO,IAAMA,UAAqC,GAAG,SAAxCA,UAAwC,OAQ/C;AAAA,MAPJC,KAOI,QAPJA,KAOI;AAAA,MANMC,eAMN,QANJC,QAMI;AAAA,MALJC,QAKI,QALJA,QAKI;AAAA,MAJJC,QAII,QAJJA,QAII;AAAA,MAHJC,OAGI,QAHJA,OAGI;AAAA,8BAFJC,WAEI;AAAA,MAFJA,WAEI,iCAFU,SAEV;AAAA,MADDC,IACC;;AACJ,kBAAgC,qBAASN,eAAT,CAAhC;AAAA;AAAA,MAAOC,QAAP;AAAA,MAAiBM,WAAjB;;AAEA,uBAAmC,wBAAcD,IAAd,CAAnC;AAAA;AAAA,MAAOE,QAAP;AAAA,MAAiBC,cAAjB;;AAEA,MAAMC,WAAW,GAAG,SAAdA,WAAc,CAClBC,KADkB,EAEf;AACHJ,IAAAA,WAAW,CAAC,UAACK,YAAD;AAAA,aAAkB,CAACA,YAAnB;AAAA,KAAD,CAAX;AACAR,IAAAA,OAAO,IAAIA,OAAO,CAACO,KAAD,CAAlB;AACD,GALD;;AAOA,sBACE,6BAAC,QAAD,EAASH,QAAT,eACE,6BAAC,oBAAD;AACE,IAAA,KAAK,EAAC,MADR;AAEE,IAAA,OAAO,EAAC,MAFV;AAGE,IAAA,UAAU,EAAC,QAHb;AAIE,IAAA,cAAc,EAAC,eAJjB;AAKE,IAAA,SAAS,EAAC,WALZ;AAME,IAAA,WAAW,EAAEH,WANf;AAOE,IAAA,EAAE,EAAE,CAPN;AAQE,IAAA,QAAQ,EAAEF,QARZ;AASE,qBAAeF,QATjB;AAUE,IAAA,OAAO,EAAES;AAVX,KAWMD,cAXN,gBAaE,6BAAC,UAAD;AAAM,IAAA,IAAI,EAAE,CAAZ;AAAe,IAAA,SAAS,EAAE,EAA1B;AAA8B,IAAA,OAAO,EAAC,MAAtC;AAA6C,IAAA,UAAU,EAAC;AAAxD,KACG,oBAAOV,KAAP,iBAAgB,6BAAC,UAAD;AAAM,IAAA,OAAO,EAAC;AAAd,KAA4BA,KAA5B,CAAhB,GAA4DA,KAD/D,CAbF,EAiBG,CAACI,QAAD,iBACC,6BAAC,iBAAD;AACE,IAAA,SAAS,EAAEF,QAAQ,GAAG,IAAH,GAAU,MAD/B;AAEE,IAAA,KAAK,EAAE,EAFT;AAGE,IAAA,MAAM,EAAE,EAHV;AAIE,IAAA,EAAE,EAAE,CAJN;AAKE,IAAA,EAAE,EAAE,CALN;AAME,IAAA,IAAI,EAAC,cANP;AAOE,mBAAY;AAPd,IAlBJ,CADF,EA+BGA,QAAQ,KACN,OAAOC,QAAP,KAAoB,UAApB,GACGA,QAAQ,CAAC;AAAEK,IAAAA,WAAW,EAAXA,WAAF;AAAeN,IAAAA,QAAQ,EAARA;AAAf,GAAD,CADX,GAEGC,QAHG,CA/BX,CADF;AAsCD,CA1DM;;;AAAMJ,U","sourcesContent":["import React, { useState } from \"react\"\nimport { isText } from \"../../helpers/isText\"\nimport { ChevronIcon } from \"../../svgs\"\nimport { Box, splitBoxProps } from \"../Box\"\nimport { Clickable, ClickableProps } from \"../Clickable\"\nimport { Flex } from \"../Flex\"\nimport { Text } from \"../Text\"\n\nexport interface ExpandableProps extends ClickableProps {\n label?: string | JSX.Element\n expanded?: boolean\n children: React.ReactNode\n}\n\n/**\n * A toggleable component used to show / hide content\n */\nexport const Expandable: React.FC<ExpandableProps> = ({\n label,\n expanded: defaultExpanded,\n children,\n disabled,\n onClick,\n borderColor = \"black60\",\n ...rest\n}) => {\n const [expanded, setExpanded] = useState(defaultExpanded)\n\n const [boxProps, clickableProps] = splitBoxProps(rest)\n\n const handleClick = (\n event: React.MouseEvent<HTMLButtonElement, MouseEvent>\n ) => {\n setExpanded((prevExpanded) => !prevExpanded)\n onClick && onClick(event)\n }\n\n return (\n <Box {...boxProps}>\n <Clickable\n width=\"100%\"\n display=\"flex\"\n alignItems=\"center\"\n justifyContent=\"space-between\"\n borderTop=\"1px solid\"\n borderColor={borderColor}\n pt={1}\n disabled={disabled}\n aria-expanded={expanded}\n onClick={handleClick}\n {...clickableProps}\n >\n <Flex flex={1} minHeight={40} display=\"flex\" alignItems=\"center\">\n {isText(label) ? <Text variant=\"sm-display\">{label}</Text> : label}\n </Flex>\n\n {!disabled && (\n <ChevronIcon\n direction={expanded ? \"up\" : \"down\"}\n width={14}\n height={14}\n ml={1}\n mr={1}\n fill=\"currentColor\"\n aria-hidden=\"true\"\n />\n )}\n </Clickable>\n\n {expanded &&\n (typeof children === \"function\"\n ? children({ setExpanded, expanded })\n : children)}\n </Box>\n )\n}\n"],"file":"Expandable.js"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.default = exports.Default = void 0;
|
|
6
|
+
exports.default = exports.Default = exports.ConfigurableColors = void 0;
|
|
7
7
|
|
|
8
8
|
var _addonActions = require("@storybook/addon-actions");
|
|
9
9
|
|
|
@@ -21,6 +21,8 @@ var _Expandable = require("./Expandable");
|
|
|
21
21
|
|
|
22
22
|
var _Button = require("../Button");
|
|
23
23
|
|
|
24
|
+
var _Box = require("../Box");
|
|
25
|
+
|
|
24
26
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
25
27
|
|
|
26
28
|
var _default = {
|
|
@@ -77,4 +79,22 @@ var Default = function Default() {
|
|
|
77
79
|
|
|
78
80
|
exports.Default = Default;
|
|
79
81
|
Default.displayName = "Default";
|
|
82
|
+
|
|
83
|
+
var ConfigurableColors = function ConfigurableColors() {
|
|
84
|
+
return /*#__PURE__*/_react.default.createElement(_Box.Box, {
|
|
85
|
+
color: "white100",
|
|
86
|
+
bg: "black100"
|
|
87
|
+
}, /*#__PURE__*/_react.default.createElement(_storybookStates.States, {
|
|
88
|
+
states: [{}, {
|
|
89
|
+
expanded: true
|
|
90
|
+
}]
|
|
91
|
+
}, /*#__PURE__*/_react.default.createElement(_Expandable.Expandable, {
|
|
92
|
+
label: "Example",
|
|
93
|
+
maxWidth: 350,
|
|
94
|
+
borderColor: "black30"
|
|
95
|
+
}, /*#__PURE__*/_react.default.createElement(_Text.Text, null, "Expanded content"))));
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
exports.ConfigurableColors = ConfigurableColors;
|
|
99
|
+
ConfigurableColors.displayName = "ConfigurableColors";
|
|
80
100
|
//# sourceMappingURL=Expandable.story.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/Expandable/Expandable.story.tsx"],"names":["title","Default","expanded","disabled","label","e","stopPropagation","mb","children","setExpanded"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;eAEe;AACbA,EAAAA,KAAK,EAAE;AADM,C;;;AAIR,IAAMC,OAAO,GAAG,SAAVA,OAAU,GAAM;AAC3B,sBACE,6BAAC,uBAAD;AACE,IAAA,MAAM,EAAE,CACN,EADM,EAEN;AAAEC,MAAAA,QAAQ,EAAE;AAAZ,KAFM,EAGN;AAAEA,MAAAA,QAAQ,EAAE,KAAZ;AAAmBC,MAAAA,QAAQ,EAAE;AAA7B,KAHM,EAIN;AAAED,MAAAA,QAAQ,EAAE,IAAZ;AAAkBC,MAAAA,QAAQ,EAAE;AAA5B,KAJM,EAKN;AACEC,MAAAA,KAAK,eACH,6BAAC,UAAD;AAAM,QAAA,IAAI,EAAE,CAAZ;AAAe,QAAA,cAAc,EAAC;AAA9B,sBACE,6BAAC,UAAD;AAAM,QAAA,OAAO,EAAC;AAAd,mBADF,eAEE,6BAAC,oBAAD;AACE,QAAA,cAAc,EAAC,WADjB;AAEE,QAAA,OAAO,EAAE,iBAACC,CAAD,EAAO;AACdA,UAAAA,CAAC,CAACC,eAAF;AACA,oCAAO,kBAAP;AACD;AALH,sBAOE,6BAAC,UAAD;AAAM,QAAA,OAAO,EAAC;AAAd,iBAPF,CAFF;AAFJ,KALM,EAqBN;AAAEC,MAAAA,EAAE,EAAE;AAAN,KArBM,EAsBN;AAAEL,MAAAA,QAAQ,EAAE,IAAZ;AAAkBK,MAAAA,EAAE,EAAE;AAAtB,KAtBM,EAuBN;AACEL,MAAAA,QAAQ,EAAE,IADZ;AAEEM,MAAAA,QAAQ,EAAE;AAAA,YAAGC,WAAH,QAAGA,WAAH;AAAA,4BACR,uDACE,6BAAC,UAAD,2BADF,eAEE,6BAAC,cAAD;AAAQ,UAAA,OAAO,EAAE;AAAA,mBAAMA,WAAW,CAAC,KAAD,CAAjB;AAAA;AAAjB,mBAFF,CADQ;AAAA;AAFZ,KAvBM;AADV,kBAmCE,6BAAC,sBAAD;AAAY,IAAA,KAAK,EAAC,SAAlB;AAA4B,IAAA,QAAQ,EAAE;AAAtC,kBACE,6BAAC,UAAD,2BADF,CAnCF,CADF;AAyCD,CA1CM;;;AAAMR,O","sourcesContent":["import { action } from \"@storybook/addon-actions\"\nimport React from \"react\"\nimport { States } from \"storybook-states\"\nimport { Clickable } from \"../Clickable\"\nimport { Flex } from \"../Flex\"\nimport { Text } from \"../Text\"\nimport { Expandable, ExpandableProps } from \"./Expandable\"\nimport { Button } from \"../Button\"\n\nexport default {\n title: \"Components/Expandable\",\n}\n\nexport const Default = () => {\n return (\n <States<Partial<ExpandableProps>>\n states={[\n {},\n { expanded: true },\n { expanded: false, disabled: true },\n { expanded: true, disabled: true },\n {\n label: (\n <Flex flex={1} justifyContent=\"space-between\">\n <Text variant=\"sm-display\">Heading</Text>\n <Clickable\n textDecoration=\"underline\"\n onClick={(e) => {\n e.stopPropagation()\n action(\"Secondary action\")\n }}\n >\n <Text variant=\"sm-display\">Reset</Text>\n </Clickable>\n </Flex>\n ),\n },\n { mb: 6 },\n { expanded: true, mb: 6 },\n {\n expanded: true,\n children: ({ setExpanded }) => (\n <div>\n <Text>Expanded content</Text>\n <Button onClick={() => setExpanded(false)}>Close</Button>\n </div>\n ),\n },\n ]}\n >\n <Expandable label=\"Example\" maxWidth={350}>\n <Text>Expanded content</Text>\n </Expandable>\n </States>\n )\n}\n"],"file":"Expandable.story.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/Expandable/Expandable.story.tsx"],"names":["title","Default","expanded","disabled","label","e","stopPropagation","mb","children","setExpanded","ConfigurableColors"],"mappings":";;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;eAEe;AACbA,EAAAA,KAAK,EAAE;AADM,C;;;AAIR,IAAMC,OAAO,GAAG,SAAVA,OAAU,GAAM;AAC3B,sBACE,6BAAC,uBAAD;AACE,IAAA,MAAM,EAAE,CACN,EADM,EAEN;AAAEC,MAAAA,QAAQ,EAAE;AAAZ,KAFM,EAGN;AAAEA,MAAAA,QAAQ,EAAE,KAAZ;AAAmBC,MAAAA,QAAQ,EAAE;AAA7B,KAHM,EAIN;AAAED,MAAAA,QAAQ,EAAE,IAAZ;AAAkBC,MAAAA,QAAQ,EAAE;AAA5B,KAJM,EAKN;AACEC,MAAAA,KAAK,eACH,6BAAC,UAAD;AAAM,QAAA,IAAI,EAAE,CAAZ;AAAe,QAAA,cAAc,EAAC;AAA9B,sBACE,6BAAC,UAAD;AAAM,QAAA,OAAO,EAAC;AAAd,mBADF,eAEE,6BAAC,oBAAD;AACE,QAAA,cAAc,EAAC,WADjB;AAEE,QAAA,OAAO,EAAE,iBAACC,CAAD,EAAO;AACdA,UAAAA,CAAC,CAACC,eAAF;AACA,oCAAO,kBAAP;AACD;AALH,sBAOE,6BAAC,UAAD;AAAM,QAAA,OAAO,EAAC;AAAd,iBAPF,CAFF;AAFJ,KALM,EAqBN;AAAEC,MAAAA,EAAE,EAAE;AAAN,KArBM,EAsBN;AAAEL,MAAAA,QAAQ,EAAE,IAAZ;AAAkBK,MAAAA,EAAE,EAAE;AAAtB,KAtBM,EAuBN;AACEL,MAAAA,QAAQ,EAAE,IADZ;AAEEM,MAAAA,QAAQ,EAAE;AAAA,YAAGC,WAAH,QAAGA,WAAH;AAAA,4BACR,uDACE,6BAAC,UAAD,2BADF,eAEE,6BAAC,cAAD;AAAQ,UAAA,OAAO,EAAE;AAAA,mBAAMA,WAAW,CAAC,KAAD,CAAjB;AAAA;AAAjB,mBAFF,CADQ;AAAA;AAFZ,KAvBM;AADV,kBAmCE,6BAAC,sBAAD;AAAY,IAAA,KAAK,EAAC,SAAlB;AAA4B,IAAA,QAAQ,EAAE;AAAtC,kBACE,6BAAC,UAAD,2BADF,CAnCF,CADF;AAyCD,CA1CM;;;AAAMR,O;;AA4CN,IAAMS,kBAAkB,GAAG,SAArBA,kBAAqB,GAAM;AACtC,sBACE,6BAAC,QAAD;AAAK,IAAA,KAAK,EAAC,UAAX;AAAsB,IAAA,EAAE,EAAC;AAAzB,kBACE,6BAAC,uBAAD;AAAkC,IAAA,MAAM,EAAE,CAAC,EAAD,EAAK;AAAER,MAAAA,QAAQ,EAAE;AAAZ,KAAL;AAA1C,kBACE,6BAAC,sBAAD;AAAY,IAAA,KAAK,EAAC,SAAlB;AAA4B,IAAA,QAAQ,EAAE,GAAtC;AAA2C,IAAA,WAAW,EAAC;AAAvD,kBACE,6BAAC,UAAD,2BADF,CADF,CADF,CADF;AASD,CAVM;;;AAAMQ,kB","sourcesContent":["import { action } from \"@storybook/addon-actions\"\nimport React from \"react\"\nimport { States } from \"storybook-states\"\nimport { Clickable } from \"../Clickable\"\nimport { Flex } from \"../Flex\"\nimport { Text } from \"../Text\"\nimport { Expandable, ExpandableProps } from \"./Expandable\"\nimport { Button } from \"../Button\"\nimport { Box } from \"../Box\"\n\nexport default {\n title: \"Components/Expandable\",\n}\n\nexport const Default = () => {\n return (\n <States<Partial<ExpandableProps>>\n states={[\n {},\n { expanded: true },\n { expanded: false, disabled: true },\n { expanded: true, disabled: true },\n {\n label: (\n <Flex flex={1} justifyContent=\"space-between\">\n <Text variant=\"sm-display\">Heading</Text>\n <Clickable\n textDecoration=\"underline\"\n onClick={(e) => {\n e.stopPropagation()\n action(\"Secondary action\")\n }}\n >\n <Text variant=\"sm-display\">Reset</Text>\n </Clickable>\n </Flex>\n ),\n },\n { mb: 6 },\n { expanded: true, mb: 6 },\n {\n expanded: true,\n children: ({ setExpanded }) => (\n <div>\n <Text>Expanded content</Text>\n <Button onClick={() => setExpanded(false)}>Close</Button>\n </div>\n ),\n },\n ]}\n >\n <Expandable label=\"Example\" maxWidth={350}>\n <Text>Expanded content</Text>\n </Expandable>\n </States>\n )\n}\n\nexport const ConfigurableColors = () => {\n return (\n <Box color=\"white100\" bg=\"black100\">\n <States<Partial<ExpandableProps>> states={[{}, { expanded: true }]}>\n <Expandable label=\"Example\" maxWidth={350} borderColor=\"black30\">\n <Text>Expanded content</Text>\n </Expandable>\n </States>\n </Box>\n )\n}\n"],"file":"Expandable.story.js"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@artsy/palette",
|
|
3
|
-
"version": "31.
|
|
3
|
+
"version": "31.2.0",
|
|
4
4
|
"description": "Design system library for react components",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"publishConfig": {
|
|
@@ -174,5 +174,5 @@
|
|
|
174
174
|
"<rootDir>/www/"
|
|
175
175
|
]
|
|
176
176
|
},
|
|
177
|
-
"gitHead": "
|
|
177
|
+
"gitHead": "2bffc0d82a46005c2d3b007e25d88428060e630c"
|
|
178
178
|
}
|