@conveyorhq/arrow-ds 1.52.0 → 1.53.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/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@conveyorhq/arrow-ds",
3
3
  "author": "Conveyor",
4
4
  "license": "MIT",
5
- "version": "1.52.0",
5
+ "version": "1.53.0",
6
6
  "description": "Arrow Design System",
7
7
  "repository": "https://github.com/conveyor/arrow-ds",
8
8
  "publishConfig": {
@@ -1,6 +1,7 @@
1
1
  import React from "react";
2
2
  import { BoxProps } from "../Box";
3
3
  import { StackProps } from "../Stack";
4
+ import { IconProps } from "../Icon";
4
5
  import type { AccordionOwnProps, AccordionItemOwnProps, AccordionDisclosureProps, AccordionGroupOwnProps } from "./types";
5
6
  export declare type AccordionGroupProps = AccordionGroupOwnProps & Pick<StackProps, "children" | "spacing" | "className">;
6
7
  export declare const AccordionGroup: ({ children, spacing, defaultValue, disableAnimation, className, ...rest }: AccordionGroupProps) => JSX.Element;
@@ -8,13 +9,18 @@ export declare type AccordionItemProps = AccordionItemOwnProps & BoxProps;
8
9
  export declare const AccordionItem: ({ value, defaultIsOpen: defaultIsOpenProp, children, className, ...rest }: AccordionItemProps) => JSX.Element;
9
10
  declare type AccordionButtonChildProps = Omit<AccordionDisclosureProps, "onToggle">;
10
11
  declare type AccordionButtonChildFunction = {
11
- children(props: AccordionButtonChildProps): React.ReactNode;
12
+ children(props: AccordionButtonChildProps): React.ReactElement;
12
13
  };
13
14
  declare type AccordionButtonOwnProps = AccordionButtonChildFunction | {
14
15
  children: React.ReactNode;
15
16
  };
16
17
  export declare type AccordionButtonProps = React.ButtonHTMLAttributes<HTMLButtonElement> & AccordionButtonOwnProps;
17
18
  export declare const AccordionButton: React.ForwardRefExoticComponent<AccordionButtonProps & React.RefAttributes<HTMLButtonElement>>;
19
+ export declare type AccordionIconProps = {
20
+ className?: string;
21
+ direction?: "up" | "down" | "left" | "right";
22
+ } & Pick<IconProps, "color">;
23
+ export declare const AccordionIcon: ({ className, direction, color, }: AccordionIconProps) => JSX.Element;
18
24
  export declare type AccordionContentProps = {
19
25
  children: React.ReactNode;
20
26
  maxHeight?: string;
@@ -28,6 +34,7 @@ export declare const Accordion: {
28
34
  Group: ({ children, spacing, defaultValue, disableAnimation, className, ...rest }: AccordionGroupProps) => JSX.Element;
29
35
  Item: ({ value, defaultIsOpen: defaultIsOpenProp, children, className, ...rest }: AccordionItemProps) => JSX.Element;
30
36
  Button: React.ForwardRefExoticComponent<AccordionButtonProps & React.RefAttributes<HTMLButtonElement>>;
37
+ Icon: ({ className, direction, color, }: AccordionIconProps) => JSX.Element;
31
38
  Content: ({ children, maxHeight, style, className, ...rest }: AccordionContentProps) => JSX.Element;
32
39
  };
33
40
  export {};
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Accordion = exports.AccordionContent = exports.AccordionButton = exports.AccordionItem = exports.AccordionGroup = void 0;
6
+ exports.Accordion = exports.AccordionContent = exports.AccordionIcon = exports.AccordionButton = exports.AccordionItem = exports.AccordionGroup = void 0;
7
7
  const react_1 = __importDefault(require("react"));
8
8
  const classnames_1 = __importDefault(require("classnames"));
9
9
  const renderprops_1 = require("react-spring/renderprops");
@@ -56,6 +56,7 @@ exports.AccordionButton = react_1.default.forwardRef((props, forwardedRef) => {
56
56
  const buttonRef = react_1.default.useRef(null);
57
57
  const ref = react_merge_refs_1.default([forwardedRef, buttonRef]);
58
58
  return (react_1.default.createElement("button", Object.assign({ ref: ref, type: "button", className: className, id: buttonId, "aria-controls": contentId, "aria-expanded": isOpen, "aria-disabled": disabled, disabled: disabled, onClick: (event) => {
59
+ event.stopPropagation();
59
60
  if (onClick) {
60
61
  onClick(event);
61
62
  }
@@ -66,6 +67,16 @@ exports.AccordionButton = react_1.default.forwardRef((props, forwardedRef) => {
66
67
  ? children({ isOpen, onClose })
67
68
  : children));
68
69
  });
70
+ const AccordionIcon = ({ className, direction = "down", color, }) => {
71
+ const icon = {
72
+ up: Icon_1.ICON_TYPE.CHEVRON_UP,
73
+ down: Icon_1.ICON_TYPE.CHEVRON_DOWN,
74
+ left: Icon_1.ICON_TYPE.CHEVRON_LEFT,
75
+ right: Icon_1.ICON_TYPE.CHEVRON_RIGHT,
76
+ };
77
+ return (react_1.default.createElement(Icon_1.Icon, { className: classnames_1.default([cn({ e: "icon" }), className]), "data-direction": direction, icon: icon[direction], color: color }));
78
+ };
79
+ exports.AccordionIcon = AccordionIcon;
69
80
  const AccordionContent = ({ children, maxHeight, style, className, ...rest }) => {
70
81
  const { disableAnimation } = context_1.useAccordionGroupContext();
71
82
  const { buttonId, contentId, defaultIsOpen, isOpen, } = context_1.useAccordionItemContext();
@@ -96,7 +107,7 @@ const Accordion = (props) => {
96
107
  [cn({ e: "button", m: "isActive" })]: isActive,
97
108
  }) },
98
109
  react_1.default.createElement(Flex_1.Flex, { className: "items-center", as: "span" },
99
- iconSlot && (react_1.default.createElement(Box_1.Box, { className: classnames_1.default(cn({ e: "icon" })), as: "span" }, iconSlot)),
110
+ iconSlot && (react_1.default.createElement(Box_1.Box, { className: classnames_1.default(cn({ e: "iconSlot" })), as: "span" }, iconSlot)),
100
111
  title),
101
112
  react_1.default.createElement(Icon_1.Icon, { icon: Icon_1.ICON_TYPE.CHEVRON_DOWN, className: cn({ e: "chevronIcon" }) }))),
102
113
  react_1.default.createElement(exports.AccordionContent, { className: cn({ e: "content" }), maxHeight: maxHeight },
@@ -106,4 +117,5 @@ exports.Accordion = Accordion;
106
117
  exports.Accordion.Group = exports.AccordionGroup;
107
118
  exports.Accordion.Item = exports.AccordionItem;
108
119
  exports.Accordion.Button = exports.AccordionButton;
120
+ exports.Accordion.Icon = exports.AccordionIcon;
109
121
  exports.Accordion.Content = exports.AccordionContent;
@@ -923,7 +923,7 @@ span.CodeMirror-selectedtext { background: none; }
923
923
  left: 8px;
924
924
  }
925
925
 
926
- .ads-Accordion-icon {
926
+ .ads-Accordion-iconSlot {
927
927
  margin-right: 8px;
928
928
  }
929
929
 
@@ -996,6 +996,41 @@ span.CodeMirror-selectedtext { background: none; }
996
996
  padding-right: 32px;
997
997
  }
998
998
 
999
+ .ads-Accordion-icon {
1000
+ transition-duration: 300ms;
1001
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1002
+
1003
+ transition-property: -webkit-transform;
1004
+
1005
+ transition-property: transform;
1006
+
1007
+ transition-property: transform, -webkit-transform;
1008
+ }
1009
+
1010
+ .ads-Accordion--isOpen .ads-Accordion-icon[data-direction="up"] {
1011
+ --tw-rotate: 180deg;
1012
+ -webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
1013
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
1014
+ }
1015
+
1016
+ .ads-Accordion--isOpen .ads-Accordion-icon[data-direction="down"] {
1017
+ --tw-rotate: -180deg;
1018
+ -webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
1019
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
1020
+ }
1021
+
1022
+ .ads-Accordion--isOpen .ads-Accordion-icon[data-direction="left"] {
1023
+ --tw-rotate: -90deg;
1024
+ -webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
1025
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
1026
+ }
1027
+
1028
+ .ads-Accordion--isOpen .ads-Accordion-icon[data-direction="right"] {
1029
+ --tw-rotate: 90deg;
1030
+ -webkit-transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
1031
+ transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
1032
+ }
1033
+
999
1034
  .ads-Appbar {
1000
1035
  position: relative;
1001
1036
  display: flex;