@fibery/ui-kit 1.32.1 → 1.33.1

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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fibery/ui-kit",
3
- "version": "1.32.1",
3
+ "version": "1.33.1",
4
4
  "private": false,
5
5
  "files": [
6
6
  "src/antd/styles.ts",
@@ -73,8 +73,8 @@
73
73
  "screenfull": "6.0.1",
74
74
  "ua-parser-js": "0.7.24",
75
75
  "@fibery/emoji-data": "2.6.0",
76
- "@fibery/react": "1.4.0",
77
- "@fibery/helpers": "1.3.0"
76
+ "@fibery/helpers": "1.3.0",
77
+ "@fibery/react": "1.4.0"
78
78
  },
79
79
  "peerDependencies": {
80
80
  "react": "^18.2.0",
@@ -1,7 +1,6 @@
1
+ import {DropdownMenuContentProps} from "@radix-ui/react-dropdown-menu";
1
2
  import {ReactNode} from "react";
2
3
  import {ContentProps} from "../dropdown-menu";
3
- import {LinariaClassName} from "@linaria/core";
4
- import {DropdownMenuContentProps} from "@radix-ui/react-dropdown-menu";
5
4
 
6
5
  export type ActionsMenuProps = {
7
6
  /** Clicking on this node will open actions menu. Make sure that trigger forwards ref AND props to html element */
@@ -16,12 +15,13 @@ export type ActionsMenuProps = {
16
15
  open?: boolean;
17
16
  /** Event handler called when the open state of the ActionsMenu changes. */
18
17
  onOpenChange?: (state: boolean) => unknown;
19
- contentStyles?: LinariaClassName;
18
+ contentStyles?: string;
20
19
  modal?: boolean;
21
20
  alignOffset?: number;
22
21
  side?: ContentProps["side"];
23
22
  sideOffset?: number;
24
23
  collisionPadding?: number;
25
24
  autoFocusOnClose?: boolean;
25
+ onEscapeKeyDown?: (event: KeyboardEvent) => void;
26
26
  sticky?: DropdownMenuContentProps["sticky"];
27
27
  };
@@ -2,7 +2,7 @@ import {composeEventHandlers} from "@fibery/react/src/compose-event-handlers";
2
2
  import {createContext} from "@fibery/react/src/create-context";
3
3
  import {stopPropagation} from "@fibery/react/src/stop-propagation";
4
4
  import {css, cx} from "@linaria/core";
5
- import React, {RefObject, useEffect, useMemo, useRef, useState} from "react";
5
+ import React, {FunctionComponent, RefObject, useEffect, useMemo, useRef, useState} from "react";
6
6
  import {
7
7
  CommandMenuEmpty,
8
8
  CommandMenuGroup,
@@ -13,6 +13,8 @@ import {
13
13
  } from "../command-menu";
14
14
  import {ActionsMenuSubMenu} from "./actions-menu-sub-menu";
15
15
  import {useActionsMenuContext} from "./contexts/actions-menu-context";
16
+ // eslint-disable-next-line no-restricted-imports
17
+ import {IconBaseProps} from "@fibery/ui-kit/src/icons/types";
16
18
 
17
19
  const [ActionsMenuSubCommandMenuProvider, useActionsMenuSubCommandMenuCtx] = createContext<{
18
20
  subMenuOpenRef: RefObject<boolean>;
@@ -22,8 +24,14 @@ const [ActionsMenuSubCommandMenuProvider, useActionsMenuSubCommandMenuCtx] = cre
22
24
  type ActionsMenuSubCommandMenuProps = React.PropsWithChildren<{
23
25
  trigger?: React.ReactNode;
24
26
  disabled?: boolean;
27
+ Icon?: FunctionComponent<IconBaseProps>;
25
28
  }>;
26
- export const ActionsMenuSubCommandMenu: React.FC<ActionsMenuSubCommandMenuProps> = ({disabled, trigger, children}) => {
29
+ export const ActionsMenuSubCommandMenu: React.FC<ActionsMenuSubCommandMenuProps> = ({
30
+ disabled,
31
+ trigger,
32
+ children,
33
+ Icon,
34
+ }) => {
27
35
  const [open, onOpenChange] = useState(false);
28
36
  const triggerRef = useRef(null);
29
37
  const openRef = useRef(false);
@@ -45,6 +53,7 @@ export const ActionsMenuSubCommandMenu: React.FC<ActionsMenuSubCommandMenuProps>
45
53
  onOpenChange(v);
46
54
  }}
47
55
  trigger={trigger}
56
+ Icon={Icon}
48
57
  triggerRef={triggerRef}
49
58
  contentClassName={css`
50
59
  &:is(&) {
@@ -1,9 +1,11 @@
1
1
  import {stopPropagation} from "@fibery/react/src/stop-propagation";
2
2
  import {css} from "@linaria/core";
3
- import {ReactNode} from "react";
3
+ import {FunctionComponent, ReactNode} from "react";
4
4
  import {space, themeVars} from "../../src/design-system";
5
5
  import ArrowRight from "../icons/react/ArrowRight";
6
6
  import {useActionsMenuContext} from "./contexts/actions-menu-context";
7
+ // eslint-disable-next-line no-restricted-imports
8
+ import {IconBaseProps} from "@fibery/ui-kit/src/icons/types";
7
9
 
8
10
  const subTriggerClass = css`
9
11
  display: flex;
@@ -24,8 +26,27 @@ type Props = React.PropsWithChildren<{
24
26
  disabled?: boolean;
25
27
  contentClassName?: string;
26
28
  container?: HTMLElement | null;
29
+ Icon?: FunctionComponent<IconBaseProps>;
27
30
  }>;
28
31
 
32
+ const cornerCss = css`
33
+ display: flex;
34
+ align-items: center;
35
+ column-gap: ${space.s12}px;
36
+ `;
37
+
38
+ const LeftCorner = ({Icon}: {Icon: FunctionComponent<IconBaseProps> | void}) => {
39
+ return Icon ? (
40
+ <div className={cornerCss}>
41
+ <Icon color={`var(--actions-menu-item-icon-color, ${themeVars.iconColor})`} iconSize={18} />
42
+ </div>
43
+ ) : null;
44
+ };
45
+
46
+ const contentStyle = css`
47
+ flex: 1;
48
+ `;
49
+
29
50
  export const ActionsMenuSubMenu: React.FC<Props> = ({
30
51
  open,
31
52
  onOpenChange,
@@ -34,6 +55,7 @@ export const ActionsMenuSubMenu: React.FC<Props> = ({
34
55
  children,
35
56
  disabled = false,
36
57
  contentClassName,
58
+ Icon,
37
59
  }) => {
38
60
  const {MenuPrimitive, container} = useActionsMenuContext();
39
61
 
@@ -45,7 +67,8 @@ export const ActionsMenuSubMenu: React.FC<Props> = ({
45
67
  disabled={disabled}
46
68
  onClick={stopPropagation}
47
69
  >
48
- {trigger}
70
+ <LeftCorner Icon={Icon} />
71
+ <div className={contentStyle}>{trigger}</div>
49
72
  <div className={arrowClass}>
50
73
  <ArrowRight
51
74
  color={disabled ? themeVars.disabledTextColor : themeVars.iconColor}
@@ -27,6 +27,7 @@ export const ActionsMenu = ({
27
27
  collisionPadding,
28
28
  open,
29
29
  onOpenChange,
30
+ onEscapeKeyDown,
30
31
  children,
31
32
  portalled,
32
33
  container,
@@ -66,6 +67,7 @@ export const ActionsMenu = ({
66
67
  portalled={portalled}
67
68
  container={container}
68
69
  collisionPadding={collisionPadding}
70
+ onEscapeKeyDown={onEscapeKeyDown}
69
71
  onCloseAutoFocus={autoFocusOnClose ? undefined : preventDefault}
70
72
  >
71
73
  <ActionsMenuDangerousRowsProvider open={isOpen}>{children}</ActionsMenuDangerousRowsProvider>
@@ -6,18 +6,14 @@ import {iconColorVar} from "../icons/Icon";
6
6
  export type ButtonSize = "tiny" | "small" | "medium" | "large";
7
7
  export type ButtonVariant = "solid" | "outline" | "soft" | "ghost";
8
8
  export type ButtonColor = "accent" | "neutral" | "error";
9
- type PositionInGroup = "first" | "middle" | "last";
10
9
 
11
10
  export type BaseButtonProps = {
12
11
  variant?: ButtonVariant;
13
12
  color?: ButtonColor;
14
13
  pressed?: boolean;
15
-
16
- // kept for backward compatibility with old buttons. Ideally should be reprsented as a separate component (ButtonGroup/SegmentedControl)
17
- inGroup?: PositionInGroup;
18
14
  } & React.ComponentPropsWithRef<"button">;
19
15
 
20
- const baseButton = css`
16
+ export const baseButton = css`
21
17
  all: unset;
22
18
  position: relative;
23
19
  box-sizing: border-box;
@@ -44,7 +40,8 @@ const baseButton = css`
44
40
  ${iconColorVar}: var(--fibery-button-text-active-color);
45
41
  }
46
42
 
47
- &[aria-pressed="true"] {
43
+ &[aria-pressed="true"],
44
+ &[aria-expanded="true"] {
48
45
  color: var(--fibery-button-text-active-color);
49
46
  ${iconColorVar}: var(--fibery-button-text-active-color);
50
47
  background-color: var(--fibery-button-hover-color);
@@ -100,73 +97,9 @@ const getColors = (variant: ButtonVariant, color: ButtonColor) => {
100
97
  } as CSSProperties;
101
98
  };
102
99
 
103
- const buttonGroup = {
104
- first: css`
105
- &:is(&) {
106
- display: inline-flex;
107
- vertical-align: middle;
108
- border-top-right-radius: 0;
109
- border-bottom-right-radius: 0;
110
-
111
- &:not([data-variant="outline"]) + * {
112
- position: relative;
113
- :after {
114
- content: "";
115
- left: -1px;
116
- position: absolute;
117
- width: 1px;
118
- top: 4px;
119
- bottom: 4px;
120
- background-color: rgba(255, 255, 255, 0.2);
121
- }
122
- }
123
- }
124
- `,
125
- middle: css`
126
- &:is(&) {
127
- display: inline-flex;
128
- vertical-align: middle;
129
- margin-left: -1px;
130
- border-radius: 0;
131
-
132
- &:not([data-variant="outline"]) + * {
133
- position: relative;
134
- :after {
135
- content: "";
136
- left: -1px;
137
- position: absolute;
138
- width: 1px;
139
- top: 4px;
140
- bottom: 4px;
141
- background-color: rgba(255, 255, 255, 0.2);
142
- }
143
- }
144
- }
145
- `,
146
- last: css`
147
- &:is(&) {
148
- display: inline-flex;
149
- vertical-align: middle;
150
- margin-left: -1px;
151
- border-top-left-radius: 0;
152
- border-bottom-left-radius: 0;
153
- }
154
- `,
155
- };
156
-
157
100
  export const BaseButton = forwardRef<HTMLButtonElement, BaseButtonProps>(
158
101
  (
159
- {
160
- variant = "solid",
161
- color = "accent",
162
- type = "button",
163
- className,
164
- children,
165
- inGroup,
166
- style,
167
- pressed,
168
- ...buttonProps
169
- },
102
+ {variant = "solid", color = "accent", type = "button", className, children, style, pressed, ...buttonProps},
170
103
  ref
171
104
  ) => {
172
105
  const colors = getColors(variant, color);
@@ -176,7 +109,7 @@ export const BaseButton = forwardRef<HTMLButtonElement, BaseButtonProps>(
176
109
  style={{...colors, ...style}}
177
110
  aria-pressed={pressed || buttonProps["aria-pressed"]}
178
111
  data-variant={variant}
179
- className={cx(baseButton, inGroup && buttonGroup[inGroup], className)}
112
+ className={cx(baseButton, className)}
180
113
  ref={ref}
181
114
  // eslint-disable-next-line react/button-has-type
182
115
  type={type}
@@ -1,76 +1,57 @@
1
- import {Children, cloneElement, CSSProperties, ReactElement} from "react";
2
1
  import {css, cx} from "@linaria/core";
3
- import {border} from "../design-system";
2
+ import {forwardRef} from "react";
3
+ import {baseButton} from "./base-button";
4
4
 
5
- const ordersInRowGroup = {
6
- first: css`
7
- ${{
8
- display: "inline-flex",
9
- borderRadius: `${border.radius6}px 0 0 ${border.radius6}px`,
10
- marginRight: -1,
11
- }}
12
- `,
13
- middle: css`
14
- ${{
15
- display: "inline-flex",
16
- borderRadius: border.radius0,
17
- marginRight: -1,
18
- }}
19
- `,
20
- last: css`
21
- ${{
22
- display: "inline-flex",
23
- borderRadius: `0 ${border.radius6}px ${border.radius6}px 0`,
24
- }}
25
- `,
26
- };
5
+ const buttonGroupDirection = {
6
+ row: css`
7
+ & > :not(:first-child).${baseButton}, & > :not(:first-child) .${baseButton} {
8
+ margin-left: -1px;
9
+ border-top-left-radius: 0;
10
+ border-bottom-left-radius: 0;
11
+ }
27
12
 
28
- const ordersInColumnGroup = {
29
- first: css`
30
- ${{
31
- display: "inline-flex",
32
- borderRadius: `${border.radius6}px ${border.radius6}px 0 0 `,
33
- marginBottom: -1,
34
- }}
13
+ & > :not(:last-child).${baseButton}, & > :not(:last-child) .${baseButton} {
14
+ border-top-right-radius: 0;
15
+ border-bottom-right-radius: 0;
16
+ }
35
17
  `,
36
- middle: css`
37
- ${{
38
- display: "inline-flex",
39
- borderRadius: border.radius0,
40
- marginBottom: -1,
41
- }}
42
- `,
43
- last: css`
44
- ${{
45
- display: "inline-flex",
46
- borderRadius: `0 0 ${border.radius6}px ${border.radius6}px`,
47
- }}
18
+ column: css`
19
+ & > :not(:first-child).${baseButton}, & > :not(:first-child) .${baseButton} {
20
+ margin-top: -1px;
21
+ border-top-left-radius: 0;
22
+ border-top-right-radius: 0;
23
+ }
24
+
25
+ & > :not(:last-child).${baseButton}, & > :not(:last-child) .${baseButton} {
26
+ border-bottom-left-radius: 0;
27
+ border-bottom-right-radius: 0;
28
+ }
48
29
  `,
49
30
  };
50
31
 
51
- export interface ButtonGroupProps {
52
- direction: CSSProperties["flexDirection"];
53
- children: ReactElement[];
54
- }
32
+ const buttonGroup = css`
33
+ display: flex;
34
+ align-items: flex-start;
35
+ `;
36
+
37
+ export type ButtonGroupProps = {
38
+ direction?: "row" | "column";
39
+ } & React.ComponentPropsWithoutRef<"div">;
55
40
 
56
- export function ButtonGroup({direction, children}: ButtonGroupProps) {
41
+ export const ButtonGroup = forwardRef<HTMLDivElement, ButtonGroupProps>(function ButtonGroup(
42
+ {direction = "row", className, style, children},
43
+ ref
44
+ ) {
57
45
  return (
58
46
  <div
47
+ ref={ref}
48
+ className={cx(buttonGroup, buttonGroupDirection[direction], className)}
59
49
  style={{
60
- display: "flex",
61
- alignItems: "flex-start",
62
50
  flexDirection: direction,
51
+ ...style,
63
52
  }}
64
53
  >
65
- {Children.map(children, (child, index) => {
66
- const inGroup = index === 0 ? "first" : index === children.length - 1 ? "last" : "middle";
67
- return cloneElement(child, {
68
- className: cx(
69
- child.props.className,
70
- direction === "row" ? ordersInRowGroup[inGroup] : ordersInColumnGroup[inGroup]
71
- ),
72
- });
73
- })}
54
+ {children}
74
55
  </div>
75
56
  );
76
- }
57
+ });
@@ -0,0 +1,36 @@
1
+ import {css} from "@linaria/core";
2
+ import {forwardRef} from "react";
3
+ import {space} from "../design-system";
4
+ import ArrowBottom from "../icons/react/ArrowBottom";
5
+ import {Button, ButtonProps} from "./button";
6
+
7
+ const selectIndicator = css`
8
+ margin-left: -${space.s4}px;
9
+ margin-right: -${space.s4}px;
10
+ `;
11
+
12
+ export type SelectButtonProps = {
13
+ /**
14
+ * Highlight buttons. Internally sets "aria-expanded"
15
+ * This props is not needed when used with Radix components as they manage "aria-expanded" themselves
16
+ * Should be used as an escape hatch for components like ui-kit/src/popup that don't set "aria-expanded"
17
+ */
18
+ open?: boolean;
19
+ } & Omit<ButtonProps, "iconEnd">;
20
+
21
+ export const SelectButton = forwardRef<HTMLButtonElement, SelectButtonProps>(function SelectButton(
22
+ {className, open, ...rest},
23
+ forwardedRef
24
+ ) {
25
+ return (
26
+ <Button
27
+ ref={forwardedRef}
28
+ aria-expanded={open}
29
+ iconEnd={<ArrowBottom className={selectIndicator} />}
30
+ variant="ghost"
31
+ color="neutral"
32
+ className={className}
33
+ {...rest}
34
+ />
35
+ );
36
+ });
@@ -552,7 +552,7 @@ export const themeColors = {
552
552
  // outline
553
553
  colorBorderButtonOutlineAccentDefault: [indigo.indigo8, indigoDark.indigo8],
554
554
  colorBorderButtonOutlineNeutralDefault: [slate.slate8, slateDark.slate8],
555
- colorBorderButtonOutlineDestructiveDefault: [red.red11, redDark.red11],
555
+ colorBorderButtonOutlineDestructiveDefault: [red.red7, redDark.red7],
556
556
  colorBgButtonOutlineAccentDefault: [whiteA.whiteA0, slateDark.slate1],
557
557
  colorBgButtonOutlineAccentHover: [indigo.indigo3, indigoDark.indigo8],
558
558
  colorBgButtonOutlineNeutralDefault: [whiteA.whiteA0, slateDark.slate1],
@@ -887,7 +887,7 @@ export const layout = {
887
887
  menuDefaultWidth: 243,
888
888
  desktopToolbarHeight: 32,
889
889
  desktopMenuMinWidth: 240,
890
- collapsedMenuMinWidth: 48,
890
+ collapsedMenuMinWidth: 47,
891
891
  menuMinWidth: 240, //TODO: make dependency to itemHeight
892
892
  menuMaxWidth: 480,
893
893
  menuItemMinWidth: 80,
@@ -63,7 +63,7 @@ const searchIconCss = css`
63
63
 
64
64
  const extraActionSlotCss = css`
65
65
  background-color: var(--fibery-emoji-hover-color, ${themeVars.inputCopyBgColor});
66
- border-radius: ${space.s6}px;
66
+ border-radius: ${border.radius5}px;
67
67
  margin-right: ${space.s4}px;
68
68
  `;
69
69
 
@@ -0,0 +1,8 @@
1
+
2
+ // This icon file is generated automatically.
3
+
4
+ import { IconDefinition } from '../types';
5
+
6
+ const ItemsTimeline: IconDefinition = {"icon":{"type":"root","children":[{"type":"element","tagName":"svg","properties":{"width":20,"height":20,"fill":"none"},"children":[{"type":"element","tagName":"path","properties":{"clipRule":"evenodd","d":"M4.25 4.5a.75.75 0 0 0-.75.75V7c0 .414.336.75.75.75h6.5A.75.75 0 0 0 11.5 7V5.25a.75.75 0 0 0-.75-.75h-6.5ZM2 5.25A2.25 2.25 0 0 1 4.25 3h6.5A2.25 2.25 0 0 1 13 5.25V7a2.25 2.25 0 0 1-2.25 2.25h-6.5A2.25 2.25 0 0 1 2 7V5.25Zm7.25 7a.75.75 0 0 0-.75.75v1.75c0 .414.336.75.75.75h6.5a.75.75 0 0 0 .75-.75V13a.75.75 0 0 0-.75-.75h-6.5ZM7 13a2.25 2.25 0 0 1 2.25-2.25h6.5A2.25 2.25 0 0 1 18 13v1.75A2.25 2.25 0 0 1 15.75 17h-6.5A2.25 2.25 0 0 1 7 14.75V13Z"},"children":[]}],"metadata":""}]},"name":"items-timeline"};
7
+
8
+ export default ItemsTimeline;
@@ -3,6 +3,6 @@
3
3
 
4
4
  import { IconDefinition } from '../types';
5
5
 
6
- const SmartFolder: IconDefinition = {"icon":{"type":"root","children":[{"type":"element","tagName":"svg","properties":{"viewBox":"0 0 20 20"},"children":[{"type":"element","tagName":"path","properties":{"d":"M10.586 9.219a.75.75 0 0 0-1.172-.937l-2 2.5A.75.75 0 0 0 8 12h2l-.586 1.282a.75.75 0 0 0 1.172.937l2-2.5A.75.75 0 0 0 12 10.5h-2l.586-1.281Z","fill":"#51616C","fillOpacity":0.9},"children":[]},{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","clipRule":"evenodd","d":"M2.708 3.791a2.417 2.417 0 0 1 1.709-.708H7.5a.75.75 0 0 1 .53.22l2.28 2.28h5.273A2.417 2.417 0 0 1 18 8v6.667c0 .64-.255 1.255-.708 1.709-.274.273-.645.441-.912.537-.26.093-.572.17-.797.17H4.417A2.417 2.417 0 0 1 2 14.668V5.5c0-.64.255-1.255.708-1.709Zm1.709.792A.917.917 0 0 0 3.5 5.5v9.167a.917.917 0 0 0 .917.917h11.151c.008-.002.032-.005.072-.015a2.051 2.051 0 0 0 .472-.173.565.565 0 0 0 .12-.081.917.917 0 0 0 .268-.648V8a.917.917 0 0 0-.917-.917H10a.75.75 0 0 1-.53-.22l-2.28-2.28H4.416Z"},"children":[]}],"metadata":""}]},"name":"smart-folder"};
6
+ const SmartFolder: IconDefinition = {"icon":{"type":"root","children":[{"type":"element","tagName":"svg","properties":{"viewBox":"0 0 20 20"},"children":[{"type":"element","tagName":"path","properties":{"d":"M10.586 9.219a.75.75 0 0 0-1.172-.937l-2 2.5A.75.75 0 0 0 8 12h2l-.586 1.282a.75.75 0 0 0 1.172.937l2-2.5A.75.75 0 0 0 12 10.5h-2l.586-1.281Z"},"children":[]},{"type":"element","tagName":"path","properties":{"fillRule":"evenodd","clipRule":"evenodd","d":"M2.708 3.791a2.417 2.417 0 0 1 1.709-.708H7.5a.75.75 0 0 1 .53.22l2.28 2.28h5.273A2.417 2.417 0 0 1 18 8v6.667c0 .64-.255 1.255-.708 1.709-.274.273-.645.441-.912.537-.26.093-.572.17-.797.17H4.417A2.417 2.417 0 0 1 2 14.668V5.5c0-.64.255-1.255.708-1.709Zm1.709.792A.917.917 0 0 0 3.5 5.5v9.167a.917.917 0 0 0 .917.917h11.151c.008-.002.032-.005.072-.015a2.051 2.051 0 0 0 .472-.173.565.565 0 0 0 .12-.081.917.917 0 0 0 .268-.648V8a.917.917 0 0 0-.917-.917H10a.75.75 0 0 1-.53-.22l-2.28-2.28H4.416Z"},"children":[]}],"metadata":""}]},"name":"smart-folder"};
7
7
 
8
8
  export default SmartFolder;
@@ -118,6 +118,7 @@ export { default as IntegrationsIntegrationIntercomColor } from './IntegrationsI
118
118
  export { default as IntegrationsIntegrationSlackColor } from './IntegrationsIntegrationSlackColor';
119
119
  export { default as IntegrationsIntegrationZendeskColor } from './IntegrationsIntegrationZendeskColor';
120
120
  export { default as InvitePeople } from './InvitePeople';
121
+ export { default as ItemsTimeline } from './ItemsTimeline';
121
122
  export { default as Items } from './Items';
122
123
  export { default as Jira } from './Jira';
123
124
  export { default as Key } from './Key';
@@ -0,0 +1,13 @@
1
+ // This icon file is generated automatically.
2
+
3
+ import {forwardRef} from 'react';
4
+ import ItemsTimelineSvg from '../ast/ItemsTimeline';
5
+ import { Icon } from '../Icon';
6
+ import { IconBaseProps } from '../types';
7
+
8
+ const ItemsTimeline = forwardRef<SVGSVGElement, IconBaseProps>(function ItemsTimeline(
9
+ props: IconBaseProps,
10
+ ref: React.Ref<SVGSVGElement>
11
+ ) {return <Icon {...props} className={props.className} ref={ref} icon={ItemsTimelineSvg} />});
12
+
13
+ export default ItemsTimeline;
@@ -118,6 +118,7 @@ export { default as IntegrationsIntegrationIntercomColor } from './IntegrationsI
118
118
  export { default as IntegrationsIntegrationSlackColor } from './IntegrationsIntegrationSlackColor';
119
119
  export { default as IntegrationsIntegrationZendeskColor } from './IntegrationsIntegrationZendeskColor';
120
120
  export { default as InvitePeople } from './InvitePeople';
121
+ export { default as ItemsTimeline } from './ItemsTimeline';
121
122
  export { default as Items } from './Items';
122
123
  export { default as Jira } from './Jira';
123
124
  export { default as Key } from './Key';
package/src/toggle.tsx CHANGED
@@ -34,9 +34,11 @@ const Label = styled.div<{labelPosition: "last" | "first"; disabled?: boolean}>`
34
34
  opacity: ${({disabled}) => (disabled ? 0.5 : 1)};
35
35
  line-height: ${layout.checkboxSize}px;
36
36
  width: 100%;
37
+ min-width: 0;
37
38
  `;
38
39
 
39
40
  const labelWrapperStyle = css`
41
+ min-width: 0;
40
42
  display: flex;
41
43
  position: relative;
42
44
  align-items: center;