@wireapp/react-ui-kit 9.50.1 → 9.52.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.
Files changed (68) hide show
  1. package/lib/Icon/DropdownFilledIcon.d.ts +7 -0
  2. package/lib/Icon/DropdownFilledIcon.d.ts.map +1 -0
  3. package/lib/Icon/DropdownFilledIcon.js +13 -0
  4. package/lib/Icon/FunnelFilterIcon.d.ts +3 -0
  5. package/lib/Icon/FunnelFilterIcon.d.ts.map +1 -0
  6. package/lib/Icon/FunnelFilterIcon.js +25 -0
  7. package/lib/Icon/SortIcon.d.ts +3 -0
  8. package/lib/Icon/SortIcon.d.ts.map +1 -0
  9. package/lib/Icon/SortIcon.js +25 -0
  10. package/lib/Icon/index.d.ts +3 -0
  11. package/lib/Icon/index.d.ts.map +1 -1
  12. package/lib/Icon/index.js +3 -0
  13. package/lib/Misc/Breadcrumbs/BreadcrumbItem/BreadcrumbItem.d.ts +9 -0
  14. package/lib/Misc/Breadcrumbs/BreadcrumbItem/BreadcrumbItem.d.ts.map +1 -0
  15. package/lib/Misc/Breadcrumbs/BreadcrumbItem/BreadcrumbItem.js +9 -0
  16. package/lib/Misc/Breadcrumbs/BreadcrumbItem/BreadcrumbItem.styles.d.ts +5 -0
  17. package/lib/Misc/Breadcrumbs/BreadcrumbItem/BreadcrumbItem.styles.d.ts.map +1 -0
  18. package/lib/Misc/Breadcrumbs/BreadcrumbItem/BreadcrumbItem.styles.js +44 -0
  19. package/lib/Misc/Breadcrumbs/BreadcrumbLeaf/BreadcrumbLeaf.d.ts +2 -0
  20. package/lib/Misc/Breadcrumbs/BreadcrumbLeaf/BreadcrumbLeaf.d.ts.map +1 -0
  21. package/lib/Misc/Breadcrumbs/BreadcrumbLeaf/BreadcrumbLeaf.js +28 -0
  22. package/lib/Misc/Breadcrumbs/BreadcrumbLeaf/BreadcrumbLeaf.styles.d.ts +3 -0
  23. package/lib/Misc/Breadcrumbs/BreadcrumbLeaf/BreadcrumbLeaf.styles.d.ts.map +1 -0
  24. package/lib/Misc/Breadcrumbs/BreadcrumbLeaf/BreadcrumbLeaf.styles.js +24 -0
  25. package/lib/Misc/Breadcrumbs/Breadcrumbs.d.ts +26 -0
  26. package/lib/Misc/Breadcrumbs/Breadcrumbs.d.ts.map +1 -0
  27. package/lib/Misc/Breadcrumbs/Breadcrumbs.js +49 -0
  28. package/lib/Misc/Breadcrumbs/Breadcrumbs.stories.d.ts +8 -0
  29. package/lib/Misc/Breadcrumbs/Breadcrumbs.stories.d.ts.map +1 -0
  30. package/lib/Misc/Breadcrumbs/Breadcrumbs.stories.js +19 -0
  31. package/lib/Misc/Breadcrumbs/Breadcrumbs.styles.d.ts +3 -0
  32. package/lib/Misc/Breadcrumbs/Breadcrumbs.styles.d.ts.map +1 -0
  33. package/lib/Misc/Breadcrumbs/Breadcrumbs.styles.js +30 -0
  34. package/lib/Misc/Breadcrumbs/CombainedBreadcrumbs/CombainedBreadcrumbs.d.ts +11 -0
  35. package/lib/Misc/Breadcrumbs/CombainedBreadcrumbs/CombainedBreadcrumbs.d.ts.map +1 -0
  36. package/lib/Misc/Breadcrumbs/CombainedBreadcrumbs/CombainedBreadcrumbs.js +28 -0
  37. package/lib/Misc/Breadcrumbs/CombainedBreadcrumbs/CombainedBreadcrumbs.styles.d.ts +3 -0
  38. package/lib/Misc/Breadcrumbs/CombainedBreadcrumbs/CombainedBreadcrumbs.styles.d.ts.map +1 -0
  39. package/lib/Misc/Breadcrumbs/CombainedBreadcrumbs/CombainedBreadcrumbs.styles.js +33 -0
  40. package/lib/Misc/Breadcrumbs/index.d.ts +2 -0
  41. package/lib/Misc/Breadcrumbs/index.d.ts.map +1 -0
  42. package/lib/Misc/Breadcrumbs/index.js +35 -0
  43. package/lib/Misc/index.d.ts +1 -0
  44. package/lib/Misc/index.d.ts.map +1 -1
  45. package/lib/Misc/index.js +1 -0
  46. package/lib/Modal/DropdownMenu/DropdownMenu.d.ts +52 -0
  47. package/lib/Modal/DropdownMenu/DropdownMenu.d.ts.map +1 -0
  48. package/lib/Modal/DropdownMenu/DropdownMenu.js +77 -0
  49. package/lib/Modal/DropdownMenu/DropdownMenu.stories.d.ts +9 -0
  50. package/lib/Modal/DropdownMenu/DropdownMenu.stories.d.ts.map +1 -0
  51. package/lib/Modal/DropdownMenu/DropdownMenu.stories.js +26 -0
  52. package/lib/Modal/DropdownMenu/DropdownMenu.styles.d.ts +6 -0
  53. package/lib/Modal/DropdownMenu/DropdownMenu.styles.d.ts.map +1 -0
  54. package/lib/Modal/DropdownMenu/DropdownMenu.styles.js +122 -0
  55. package/lib/Modal/DropdownMenu/index.d.ts +2 -0
  56. package/lib/Modal/DropdownMenu/index.d.ts.map +1 -0
  57. package/lib/Modal/DropdownMenu/index.js +35 -0
  58. package/lib/Modal/index.d.ts +1 -0
  59. package/lib/Modal/index.d.ts.map +1 -1
  60. package/lib/Modal/index.js +1 -0
  61. package/lib/Text/Label.stories.d.ts +1 -1
  62. package/lib/Theme/GlobalCssVariables.d.ts +1 -0
  63. package/lib/Theme/GlobalCssVariables.d.ts.map +1 -1
  64. package/lib/Theme/GlobalCssVariables.js +25 -0
  65. package/lib/util.d.ts +1 -0
  66. package/lib/util.d.ts.map +1 -1
  67. package/lib/util.js +7 -1
  68. package/package.json +3 -2
@@ -0,0 +1,7 @@
1
+ import { Rotation } from './ArrowIcon';
2
+ import { SVGIconProps } from './SVGIcon';
3
+ export interface DropdownFilledIconProps extends SVGIconProps {
4
+ direction?: keyof Rotation;
5
+ }
6
+ export declare const DropdownFilledIcon: ({ direction, ...props }: DropdownFilledIconProps) => import("@emotion/react/jsx-runtime").JSX.Element;
7
+ //# sourceMappingURL=DropdownFilledIcon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DropdownFilledIcon.d.ts","sourceRoot":"","sources":["../../src/Icon/DropdownFilledIcon.tsx"],"names":[],"mappings":"AAmBA,OAAO,EAAC,QAAQ,EAAC,MAAM,aAAa,CAAC;AACrC,OAAO,EAAU,YAAY,EAAC,MAAM,WAAW,CAAC;AAEhD,MAAM,WAAW,uBAAwB,SAAQ,YAAY;IAC3D,SAAS,CAAC,EAAE,MAAM,QAAQ,CAAC;CAC5B;AASD,eAAO,MAAM,kBAAkB,4BAAoC,uBAAuB,qDASzF,CAAC"}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DropdownFilledIcon = void 0;
4
+ const jsx_runtime_1 = require("@emotion/react/jsx-runtime");
5
+ const SVGIcon_1 = require("./SVGIcon");
6
+ const rotation = {
7
+ down: 0,
8
+ left: 90,
9
+ up: 180,
10
+ right: 270,
11
+ };
12
+ const DropdownFilledIcon = ({ direction = 'down', ...props }) => ((0, jsx_runtime_1.jsx)(SVGIcon_1.SVGIcon, { realWidth: 10, realHeight: 5, ...props, children: (0, jsx_runtime_1.jsx)("path", { fillRule: "evenodd", clipRule: "evenodd", transform: `rotate(${rotation[direction]} 5 2.5)`, d: "M0.853553 0.853553C0.53857 0.53857 0.761654 0 1.20711 0H8.79289C9.23835 0 9.46143 0.538571 9.14645 0.853553L5.35355 4.64645C5.15829 4.84171 4.84171 4.84171 4.64645 4.64645L0.853553 0.853553Z" }) }));
13
+ exports.DropdownFilledIcon = DropdownFilledIcon;
@@ -0,0 +1,3 @@
1
+ import { SVGIconProps } from './SVGIcon';
2
+ export declare const FunnelFilterIcon: (props: SVGIconProps) => import("@emotion/react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=FunnelFilterIcon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FunnelFilterIcon.d.ts","sourceRoot":"","sources":["../../src/Icon/FunnelFilterIcon.tsx"],"names":[],"mappings":"AAmBA,OAAO,EAAU,YAAY,EAAC,MAAM,WAAW,CAAC;AAEhD,eAAO,MAAM,gBAAgB,UAAW,YAAY,qDAQnD,CAAC"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FunnelFilterIcon = void 0;
4
+ const jsx_runtime_1 = require("@emotion/react/jsx-runtime");
5
+ /*
6
+ * Wire
7
+ * Copyright (C) 2025 Wire Swiss GmbH
8
+ *
9
+ * This program is free software: you can redistribute it and/or modify
10
+ * it under the terms of the GNU General Public License as published by
11
+ * the Free Software Foundation, either version 3 of the License, or
12
+ * (at your option) any later version.
13
+ *
14
+ * This program is distributed in the hope that it will be useful,
15
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
+ * GNU General Public License for more details.
18
+ *
19
+ * You should have received a copy of the GNU General Public License
20
+ * along with this program. If not, see http://www.gnu.org/licenses/.
21
+ *
22
+ */
23
+ const SVGIcon_1 = require("./SVGIcon");
24
+ const FunnelFilterIcon = (props) => ((0, jsx_runtime_1.jsx)(SVGIcon_1.SVGIcon, { realWidth: 16, realHeight: 16, ...props, children: (0, jsx_runtime_1.jsx)("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M0.0675604 1.43434C0.18673 1.16947 0.444136 1 0.727282 1H15.2727C15.5559 1 15.8133 1.16947 15.9324 1.43434C16.0516 1.69922 16.0109 2.01134 15.828 2.23429L10.1818 9.11961V15.25C10.1818 15.5099 10.0513 15.7513 9.83689 15.888C9.62248 16.0246 9.35474 16.0371 9.1293 15.9208L6.22021 14.4208C5.97382 14.2938 5.81818 14.0341 5.81818 13.75V9.11961L0.171959 2.23429C-0.0108757 2.01134 -0.0516092 1.69922 0.0675604 1.43434ZM2.29477 2.5L7.10078 8.36071C7.21181 8.4961 7.27273 8.66768 7.27273 8.845V13.2865L8.72727 14.0365V8.845C8.72727 8.66768 8.78819 8.4961 8.89922 8.36071L13.7052 2.5H2.29477Z" }) }));
25
+ exports.FunnelFilterIcon = FunnelFilterIcon;
@@ -0,0 +1,3 @@
1
+ import { SVGIconProps } from './SVGIcon';
2
+ export declare const SortIcon: (props: SVGIconProps) => import("@emotion/react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=SortIcon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SortIcon.d.ts","sourceRoot":"","sources":["../../src/Icon/SortIcon.tsx"],"names":[],"mappings":"AAmBA,OAAO,EAAU,YAAY,EAAC,MAAM,WAAW,CAAC;AAEhD,eAAO,MAAM,QAAQ,UAAW,YAAY,qDAmB3C,CAAC"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SortIcon = void 0;
4
+ const jsx_runtime_1 = require("@emotion/react/jsx-runtime");
5
+ /*
6
+ * Wire
7
+ * Copyright (C) 2025 Wire Swiss GmbH
8
+ *
9
+ * This program is free software: you can redistribute it and/or modify
10
+ * it under the terms of the GNU General Public License as published by
11
+ * the Free Software Foundation, either version 3 of the License, or
12
+ * (at your option) any later version.
13
+ *
14
+ * This program is distributed in the hope that it will be useful,
15
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
+ * GNU General Public License for more details.
18
+ *
19
+ * You should have received a copy of the GNU General Public License
20
+ * along with this program. If not, see http://www.gnu.org/licenses/.
21
+ *
22
+ */
23
+ const SVGIcon_1 = require("./SVGIcon");
24
+ const SortIcon = (props) => ((0, jsx_runtime_1.jsxs)(SVGIcon_1.SVGIcon, { realWidth: 16, realHeight: 16, ...props, children: [(0, jsx_runtime_1.jsx)("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M8.64562 10.7775L4.27329 15.0925L0 10.8563L1.29415 9.55083L4.27619 12.507L7.35439 9.46912L8.64562 10.7775Z" }), (0, jsx_runtime_1.jsx)("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M3.40442 13.7998V0.0130615H5.24265V13.7998H3.40442Z" }), (0, jsx_runtime_1.jsx)("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M7.29603 4.31504L11.6684 -5.61879e-06L15.9417 4.23622L14.6475 5.54169L11.6655 2.58553L8.58726 5.62341L7.29603 4.31504Z" }), (0, jsx_runtime_1.jsx)("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M12.5372 1.29272L12.5372 15.0795L10.699 15.0795L10.699 1.29272L12.5372 1.29272Z" })] }));
25
+ exports.SortIcon = SortIcon;
@@ -15,6 +15,7 @@ export * from './CircleCloseIcon';
15
15
  export * from './CloseIcon';
16
16
  export * from './DeviceIcon';
17
17
  export * from './DownloadIcon';
18
+ export * from './DropdownFilledIcon';
18
19
  export * from './EditDocumentIcon';
19
20
  export * from './EditIcon';
20
21
  export * from './EnterIcon';
@@ -23,6 +24,7 @@ export * from './EmojiIcon';
23
24
  export * from './ErrorIcon';
24
25
  export * from './ExternalLinkIcon';
25
26
  export * from './FileIcon';
27
+ export * from './FunnelFilterIcon';
26
28
  export * from './GifIcon';
27
29
  export * from './GroupIcon';
28
30
  export * from './HangupIcon';
@@ -63,6 +65,7 @@ export * from './ServicesIcon';
63
65
  export * from './SettingsIcon';
64
66
  export * from './ShowIcon';
65
67
  export * from './SignIcon';
68
+ export * from './SortIcon';
66
69
  export * from './SpeakerIcon';
67
70
  export * from './StarIcon';
68
71
  export * from './TeamIcon';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Icon/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Icon/index.ts"],"names":[],"mappings":"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"}
package/lib/Icon/index.js CHANGED
@@ -49,6 +49,7 @@ __exportStar(require("./CircleCloseIcon"), exports);
49
49
  __exportStar(require("./CloseIcon"), exports);
50
50
  __exportStar(require("./DeviceIcon"), exports);
51
51
  __exportStar(require("./DownloadIcon"), exports);
52
+ __exportStar(require("./DropdownFilledIcon"), exports);
52
53
  __exportStar(require("./EditDocumentIcon"), exports);
53
54
  __exportStar(require("./EditIcon"), exports);
54
55
  __exportStar(require("./EnterIcon"), exports);
@@ -57,6 +58,7 @@ __exportStar(require("./EmojiIcon"), exports);
57
58
  __exportStar(require("./ErrorIcon"), exports);
58
59
  __exportStar(require("./ExternalLinkIcon"), exports);
59
60
  __exportStar(require("./FileIcon"), exports);
61
+ __exportStar(require("./FunnelFilterIcon"), exports);
60
62
  __exportStar(require("./GifIcon"), exports);
61
63
  __exportStar(require("./GroupIcon"), exports);
62
64
  __exportStar(require("./HangupIcon"), exports);
@@ -97,6 +99,7 @@ __exportStar(require("./ServicesIcon"), exports);
97
99
  __exportStar(require("./SettingsIcon"), exports);
98
100
  __exportStar(require("./ShowIcon"), exports);
99
101
  __exportStar(require("./SignIcon"), exports);
102
+ __exportStar(require("./SortIcon"), exports);
100
103
  __exportStar(require("./SpeakerIcon"), exports);
101
104
  __exportStar(require("./StarIcon"), exports);
102
105
  __exportStar(require("./TeamIcon"), exports);
@@ -0,0 +1,9 @@
1
+ import { MouseEvent as ReactMouseEvent } from 'react';
2
+ interface BreadcrumbItemProps {
3
+ name: string;
4
+ isActive: boolean;
5
+ onClick: (event: ReactMouseEvent<HTMLButtonElement, MouseEvent>) => void;
6
+ }
7
+ export declare const BreadcrumbItem: ({ name, isActive, onClick }: BreadcrumbItemProps) => import("@emotion/react/jsx-runtime").JSX.Element;
8
+ export {};
9
+ //# sourceMappingURL=BreadcrumbItem.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BreadcrumbItem.d.ts","sourceRoot":"","sources":["../../../../src/Misc/Breadcrumbs/BreadcrumbItem/BreadcrumbItem.tsx"],"names":[],"mappings":"AAmBA,OAAO,EAAC,UAAU,IAAI,eAAe,EAAC,MAAM,OAAO,CAAC;AAIpD,UAAU,mBAAmB;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,CAAC,KAAK,EAAE,eAAe,CAAC,iBAAiB,EAAE,UAAU,CAAC,KAAK,IAAI,CAAC;CAC1E;AAED,eAAO,MAAM,cAAc,gCAA+B,mBAAmB,qDAY5E,CAAC"}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BreadcrumbItem = void 0;
4
+ const jsx_runtime_1 = require("@emotion/react/jsx-runtime");
5
+ const BreadcrumbItem_styles_1 = require("./BreadcrumbItem.styles");
6
+ const BreadcrumbItem = ({ name, isActive, onClick }) => {
7
+ return ((0, jsx_runtime_1.jsx)("li", { css: BreadcrumbItem_styles_1.listItemStyles, children: isActive ? ((0, jsx_runtime_1.jsx)("span", { css: BreadcrumbItem_styles_1.activeItemStyles, children: name })) : ((0, jsx_runtime_1.jsx)("button", { type: "button", css: BreadcrumbItem_styles_1.buttonStyles, onClick: onClick, children: name })) }));
8
+ };
9
+ exports.BreadcrumbItem = BreadcrumbItem;
@@ -0,0 +1,5 @@
1
+ import { CSSObject } from '@emotion/react';
2
+ export declare const listItemStyles: CSSObject;
3
+ export declare const buttonStyles: CSSObject;
4
+ export declare const activeItemStyles: CSSObject;
5
+ //# sourceMappingURL=BreadcrumbItem.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BreadcrumbItem.styles.d.ts","sourceRoot":"","sources":["../../../../src/Misc/Breadcrumbs/BreadcrumbItem/BreadcrumbItem.styles.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAIzC,eAAO,MAAM,cAAc,EAAE,SAI5B,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,SAW1B,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,SAK9B,CAAC"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ /*
3
+ * Wire
4
+ * Copyright (C) 2025 Wire Swiss GmbH
5
+ *
6
+ * This program is free software: you can redistribute it and/or modify
7
+ * it under the terms of the GNU General Public License as published by
8
+ * the Free Software Foundation, either version 3 of the License, or
9
+ * (at your option) any later version.
10
+ *
11
+ * This program is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ * GNU General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU General Public License
17
+ * along with this program. If not, see http://www.gnu.org/licenses/.
18
+ *
19
+ */
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.activeItemStyles = exports.buttonStyles = exports.listItemStyles = void 0;
22
+ const colors_v2_1 = require("../../../Identity/colors-v2");
23
+ exports.listItemStyles = {
24
+ display: 'flex',
25
+ alignItems: 'center',
26
+ flexShrink: 0,
27
+ };
28
+ exports.buttonStyles = {
29
+ background: 'none',
30
+ border: 'none',
31
+ padding: '0 8px',
32
+ cursor: 'pointer',
33
+ fontSize: '14px',
34
+ color: colors_v2_1.COLOR_V2.GRAY_70,
35
+ '&:hover': {
36
+ color: 'var(--main-color)',
37
+ },
38
+ };
39
+ exports.activeItemStyles = {
40
+ display: 'inline-block',
41
+ padding: '0 8px',
42
+ fontSize: '14px',
43
+ color: 'var(--main-color)',
44
+ };
@@ -0,0 +1,2 @@
1
+ export declare const BreadcrumbLeaf: () => import("@emotion/react/jsx-runtime").JSX.Element;
2
+ //# sourceMappingURL=BreadcrumbLeaf.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BreadcrumbLeaf.d.ts","sourceRoot":"","sources":["../../../../src/Misc/Breadcrumbs/BreadcrumbLeaf/BreadcrumbLeaf.tsx"],"names":[],"mappings":"AAuBA,eAAO,MAAM,cAAc,wDAM1B,CAAC"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BreadcrumbLeaf = void 0;
4
+ const jsx_runtime_1 = require("@emotion/react/jsx-runtime");
5
+ /*
6
+ * Wire
7
+ * Copyright (C) 2025 Wire Swiss GmbH
8
+ *
9
+ * This program is free software: you can redistribute it and/or modify
10
+ * it under the terms of the GNU General Public License as published by
11
+ * the Free Software Foundation, either version 3 of the License, or
12
+ * (at your option) any later version.
13
+ *
14
+ * This program is distributed in the hope that it will be useful,
15
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
+ * GNU General Public License for more details.
18
+ *
19
+ * You should have received a copy of the GNU General Public License
20
+ * along with this program. If not, see http://www.gnu.org/licenses/.
21
+ *
22
+ */
23
+ const BreadcrumbLeaf_styles_1 = require("./BreadcrumbLeaf.styles");
24
+ const Icon_1 = require("../../../Icon");
25
+ const BreadcrumbLeaf = () => {
26
+ return ((0, jsx_runtime_1.jsx)("li", { "aria-hidden": "true", children: (0, jsx_runtime_1.jsx)(Icon_1.ChevronUpIcon, { css: BreadcrumbLeaf_styles_1.iconStyles, width: 12, height: 12 }) }));
27
+ };
28
+ exports.BreadcrumbLeaf = BreadcrumbLeaf;
@@ -0,0 +1,3 @@
1
+ import { CSSObject } from '@emotion/react';
2
+ export declare const iconStyles: CSSObject;
3
+ //# sourceMappingURL=BreadcrumbLeaf.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BreadcrumbLeaf.styles.d.ts","sourceRoot":"","sources":["../../../../src/Misc/Breadcrumbs/BreadcrumbLeaf/BreadcrumbLeaf.styles.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAEzC,eAAO,MAAM,UAAU,EAAE,SAExB,CAAC"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ /*
3
+ * Wire
4
+ * Copyright (C) 2025 Wire Swiss GmbH
5
+ *
6
+ * This program is free software: you can redistribute it and/or modify
7
+ * it under the terms of the GNU General Public License as published by
8
+ * the Free Software Foundation, either version 3 of the License, or
9
+ * (at your option) any later version.
10
+ *
11
+ * This program is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ * GNU General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU General Public License
17
+ * along with this program. If not, see http://www.gnu.org/licenses/.
18
+ *
19
+ */
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.iconStyles = void 0;
22
+ exports.iconStyles = {
23
+ transform: 'rotate(90deg)',
24
+ };
@@ -0,0 +1,26 @@
1
+ interface BreadcrumbsProps {
2
+ /**
3
+ * Maximum number of items to display before combining middle items into a dropdown.
4
+ * @default 4
5
+ */
6
+ maxNotCombinedItems?: number;
7
+ items: Array<{
8
+ name: string;
9
+ }>;
10
+ onItemClick: (item: {
11
+ name: string;
12
+ }) => void;
13
+ }
14
+ /**
15
+ * A navigation component that displays a hierarchical path of items, allowing users to navigate through different levels.
16
+ * When the number of items exceeds the maximum visible limit, it combines middle items into a dropdown menu
17
+ * while keeping the first and last two items visible.
18
+ *
19
+ * Example:
20
+ * ```tsx
21
+ * <Breadcrumbs items={[{name: 'Home'}, {name: 'Folder'}, {name: 'Subfolder'}]} onItemClick={() => {}} />
22
+ * ```
23
+ */
24
+ export declare const Breadcrumbs: ({ maxNotCombinedItems, items, onItemClick, }: BreadcrumbsProps) => import("@emotion/react/jsx-runtime").JSX.Element;
25
+ export {};
26
+ //# sourceMappingURL=Breadcrumbs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Breadcrumbs.d.ts","sourceRoot":"","sources":["../../../src/Misc/Breadcrumbs/Breadcrumbs.tsx"],"names":[],"mappings":"AA0BA,UAAU,gBAAgB;IACxB;;;OAGG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B,KAAK,EAAE,KAAK,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,CAAC,CAAC;IAE7B,WAAW,EAAE,CAAC,IAAI,EAAE;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,KAAK,IAAI,CAAC;CAC7C;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,WAAW,iDAIrB,gBAAgB,qDA6ClB,CAAC"}
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Breadcrumbs = void 0;
4
+ const jsx_runtime_1 = require("@emotion/react/jsx-runtime");
5
+ /*
6
+ * Wire
7
+ * Copyright (C) 2025 Wire Swiss GmbH
8
+ *
9
+ * This program is free software: you can redistribute it and/or modify
10
+ * it under the terms of the GNU General Public License as published by
11
+ * the Free Software Foundation, either version 3 of the License, or
12
+ * (at your option) any later version.
13
+ *
14
+ * This program is distributed in the hope that it will be useful,
15
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
+ * GNU General Public License for more details.
18
+ *
19
+ * You should have received a copy of the GNU General Public License
20
+ * along with this program. If not, see http://www.gnu.org/licenses/.
21
+ *
22
+ */
23
+ const BreadcrumbItem_1 = require("./BreadcrumbItem/BreadcrumbItem");
24
+ const BreadcrumbLeaf_1 = require("./BreadcrumbLeaf/BreadcrumbLeaf");
25
+ const Breadcrumbs_styles_1 = require("./Breadcrumbs.styles");
26
+ const CombainedBreadcrumbs_1 = require("./CombainedBreadcrumbs/CombainedBreadcrumbs");
27
+ const DEFAULT_MAX_VISIBLE_BREADCRUMBS = 4;
28
+ /**
29
+ * A navigation component that displays a hierarchical path of items, allowing users to navigate through different levels.
30
+ * When the number of items exceeds the maximum visible limit, it combines middle items into a dropdown menu
31
+ * while keeping the first and last two items visible.
32
+ *
33
+ * Example:
34
+ * ```tsx
35
+ * <Breadcrumbs items={[{name: 'Home'}, {name: 'Folder'}, {name: 'Subfolder'}]} onItemClick={() => {}} />
36
+ * ```
37
+ */
38
+ const Breadcrumbs = ({ maxNotCombinedItems = DEFAULT_MAX_VISIBLE_BREADCRUMBS, items, onItemClick, }) => {
39
+ if (items.length <= maxNotCombinedItems) {
40
+ return ((0, jsx_runtime_1.jsx)("ol", { css: Breadcrumbs_styles_1.listStyles, children: items.map((crumb, index) => ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [index > 0 && (0, jsx_runtime_1.jsx)(BreadcrumbLeaf_1.BreadcrumbLeaf, {}), (0, jsx_runtime_1.jsx)(BreadcrumbItem_1.BreadcrumbItem, { name: crumb.name, isActive: index === items.length - 1, onClick: () => onItemClick(crumb) }, crumb.name)] }))) }));
41
+ }
42
+ const firstCrumb = items[0];
43
+ // eslint-disable-next-line no-magic-numbers
44
+ const lastTwoCrumbs = items.slice(-2);
45
+ // eslint-disable-next-line no-magic-numbers
46
+ const middleCrumbs = items.slice(1, -2);
47
+ return ((0, jsx_runtime_1.jsxs)("ol", { css: Breadcrumbs_styles_1.listStyles, children: [(0, jsx_runtime_1.jsx)(BreadcrumbItem_1.BreadcrumbItem, { name: firstCrumb.name, isActive: false, onClick: () => onItemClick(firstCrumb) }), (0, jsx_runtime_1.jsx)(BreadcrumbLeaf_1.BreadcrumbLeaf, {}), (0, jsx_runtime_1.jsx)(CombainedBreadcrumbs_1.CombainedBreadcrumbs, { items: middleCrumbs, onItemClick: onItemClick }), (0, jsx_runtime_1.jsx)(BreadcrumbLeaf_1.BreadcrumbLeaf, {}), lastTwoCrumbs.map((crumb, index) => ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [index > 0 && (0, jsx_runtime_1.jsx)(BreadcrumbLeaf_1.BreadcrumbLeaf, {}), (0, jsx_runtime_1.jsx)(BreadcrumbItem_1.BreadcrumbItem, { name: crumb.name, isActive: index === lastTwoCrumbs.length - 1, onClick: () => onItemClick(crumb) }, crumb.name)] })))] }));
48
+ };
49
+ exports.Breadcrumbs = Breadcrumbs;
@@ -0,0 +1,8 @@
1
+ import { Meta, StoryObj } from '@storybook/react/*';
2
+ import { Breadcrumbs } from './Breadcrumbs';
3
+ declare const meta: Meta<typeof Breadcrumbs>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof Breadcrumbs>;
6
+ export declare const Default: Story;
7
+ export declare const WithCombinedItems: Story;
8
+ //# sourceMappingURL=Breadcrumbs.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Breadcrumbs.stories.d.ts","sourceRoot":"","sources":["../../../src/Misc/Breadcrumbs/Breadcrumbs.stories.tsx"],"names":[],"mappings":"AAmBA,OAAO,EAAC,IAAI,EAAE,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAE1C,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,WAAW,CAMlC,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,WAAW,CAAC,CAAC;AAE1C,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,KAO/B,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WithCombinedItems = exports.Default = void 0;
4
+ const jsx_runtime_1 = require("@emotion/react/jsx-runtime");
5
+ const Breadcrumbs_1 = require("./Breadcrumbs");
6
+ const meta = {
7
+ component: Breadcrumbs_1.Breadcrumbs,
8
+ title: 'Misc/Breadcrumbs',
9
+ parameters: {
10
+ layout: 'centered',
11
+ },
12
+ };
13
+ exports.default = meta;
14
+ exports.Default = {
15
+ render: () => (0, jsx_runtime_1.jsx)(Breadcrumbs_1.Breadcrumbs, { items: [{ name: 'Home' }, { name: 'Folder' }, { name: 'Subfolder' }], onItemClick: () => { } }),
16
+ };
17
+ exports.WithCombinedItems = {
18
+ render: () => ((0, jsx_runtime_1.jsx)(Breadcrumbs_1.Breadcrumbs, { items: [{ name: 'Home' }, { name: 'Folder' }, { name: 'Subfolder 1' }, { name: 'Subfolder 2' }, { name: 'Subfolder 3' }], onItemClick: () => { } })),
19
+ };
@@ -0,0 +1,3 @@
1
+ import { CSSObject } from '@emotion/react';
2
+ export declare const listStyles: CSSObject;
3
+ //# sourceMappingURL=Breadcrumbs.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Breadcrumbs.styles.d.ts","sourceRoot":"","sources":["../../../src/Misc/Breadcrumbs/Breadcrumbs.styles.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAEzC,eAAO,MAAM,UAAU,EAAE,SAQxB,CAAC"}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ /*
3
+ * Wire
4
+ * Copyright (C) 2025 Wire Swiss GmbH
5
+ *
6
+ * This program is free software: you can redistribute it and/or modify
7
+ * it under the terms of the GNU General Public License as published by
8
+ * the Free Software Foundation, either version 3 of the License, or
9
+ * (at your option) any later version.
10
+ *
11
+ * This program is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ * GNU General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU General Public License
17
+ * along with this program. If not, see http://www.gnu.org/licenses/.
18
+ *
19
+ */
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.listStyles = void 0;
22
+ exports.listStyles = {
23
+ display: 'flex',
24
+ padding: '0',
25
+ margin: '0',
26
+ alignItems: 'center',
27
+ listStyle: 'none',
28
+ flexGrow: 1,
29
+ overflowX: 'auto',
30
+ };
@@ -0,0 +1,11 @@
1
+ interface CombainedBreadcrumbsProps {
2
+ items: Array<{
3
+ name: string;
4
+ }>;
5
+ onItemClick: (item: {
6
+ name: string;
7
+ }) => void;
8
+ }
9
+ export declare const CombainedBreadcrumbs: ({ items, onItemClick }: CombainedBreadcrumbsProps) => import("@emotion/react/jsx-runtime").JSX.Element;
10
+ export {};
11
+ //# sourceMappingURL=CombainedBreadcrumbs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CombainedBreadcrumbs.d.ts","sourceRoot":"","sources":["../../../../src/Misc/Breadcrumbs/CombainedBreadcrumbs/CombainedBreadcrumbs.tsx"],"names":[],"mappings":"AAuBA,UAAU,yBAAyB;IACjC,KAAK,EAAE,KAAK,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,CAAC,CAAC;IAC7B,WAAW,EAAE,CAAC,IAAI,EAAE;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,KAAK,IAAI,CAAC;CAC7C;AAED,eAAO,MAAM,oBAAoB,2BAA0B,yBAAyB,qDAmBnF,CAAC"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CombainedBreadcrumbs = void 0;
4
+ const jsx_runtime_1 = require("@emotion/react/jsx-runtime");
5
+ /*
6
+ * Wire
7
+ * Copyright (C) 2025 Wire Swiss GmbH
8
+ *
9
+ * This program is free software: you can redistribute it and/or modify
10
+ * it under the terms of the GNU General Public License as published by
11
+ * the Free Software Foundation, either version 3 of the License, or
12
+ * (at your option) any later version.
13
+ *
14
+ * This program is distributed in the hope that it will be useful,
15
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
+ * GNU General Public License for more details.
18
+ *
19
+ * You should have received a copy of the GNU General Public License
20
+ * along with this program. If not, see http://www.gnu.org/licenses/.
21
+ *
22
+ */
23
+ const CombainedBreadcrumbs_styles_1 = require("./CombainedBreadcrumbs.styles");
24
+ const DropdownMenu_1 = require("../../../Modal/DropdownMenu");
25
+ const CombainedBreadcrumbs = ({ items, onItemClick }) => {
26
+ return ((0, jsx_runtime_1.jsxs)(DropdownMenu_1.DropdownMenu, { children: [(0, jsx_runtime_1.jsx)(DropdownMenu_1.DropdownMenu.Trigger, { asChild: true, children: (0, jsx_runtime_1.jsx)("li", { children: (0, jsx_runtime_1.jsx)("button", { type: "button", css: CombainedBreadcrumbs_styles_1.buttonStyles, children: "..." }) }) }), (0, jsx_runtime_1.jsx)(DropdownMenu_1.DropdownMenu.Content, { children: items.map(crumb => ((0, jsx_runtime_1.jsx)(DropdownMenu_1.DropdownMenu.Item, { onClick: () => onItemClick(crumb), children: crumb.name }, crumb.name))) })] }));
27
+ };
28
+ exports.CombainedBreadcrumbs = CombainedBreadcrumbs;
@@ -0,0 +1,3 @@
1
+ import { CSSObject } from '@emotion/react';
2
+ export declare const buttonStyles: CSSObject;
3
+ //# sourceMappingURL=CombainedBreadcrumbs.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CombainedBreadcrumbs.styles.d.ts","sourceRoot":"","sources":["../../../../src/Misc/Breadcrumbs/CombainedBreadcrumbs/CombainedBreadcrumbs.styles.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAIzC,eAAO,MAAM,YAAY,EAAE,SAW1B,CAAC"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ /*
3
+ * Wire
4
+ * Copyright (C) 2025 Wire Swiss GmbH
5
+ *
6
+ * This program is free software: you can redistribute it and/or modify
7
+ * it under the terms of the GNU General Public License as published by
8
+ * the Free Software Foundation, either version 3 of the License, or
9
+ * (at your option) any later version.
10
+ *
11
+ * This program is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ * GNU General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU General Public License
17
+ * along with this program. If not, see http://www.gnu.org/licenses/.
18
+ *
19
+ */
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.buttonStyles = void 0;
22
+ const colors_v2_1 = require("../../../Identity/colors-v2");
23
+ exports.buttonStyles = {
24
+ background: 'none',
25
+ border: 'none',
26
+ padding: '0 8px',
27
+ cursor: 'pointer',
28
+ fontSize: '14px',
29
+ color: colors_v2_1.COLOR_V2.GRAY_70,
30
+ '&:hover': {
31
+ color: 'var(--main-color)',
32
+ },
33
+ };
@@ -0,0 +1,2 @@
1
+ export * from './Breadcrumbs';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Misc/Breadcrumbs/index.ts"],"names":[],"mappings":"AAmBA,cAAc,eAAe,CAAC"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ /*
3
+ * Wire
4
+ * Copyright (C) 2025 Wire Swiss GmbH
5
+ *
6
+ * This program is free software: you can redistribute it and/or modify
7
+ * it under the terms of the GNU General Public License as published by
8
+ * the Free Software Foundation, either version 3 of the License, or
9
+ * (at your option) any later version.
10
+ *
11
+ * This program is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ * GNU General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU General Public License
17
+ * along with this program. If not, see http://www.gnu.org/licenses/.
18
+ *
19
+ */
20
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ var desc = Object.getOwnPropertyDescriptor(m, k);
23
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
24
+ desc = { enumerable: true, get: function() { return m[k]; } };
25
+ }
26
+ Object.defineProperty(o, k2, desc);
27
+ }) : (function(o, m, k, k2) {
28
+ if (k2 === undefined) k2 = k;
29
+ o[k2] = m[k];
30
+ }));
31
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
32
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
33
+ };
34
+ Object.defineProperty(exports, "__esModule", { value: true });
35
+ __exportStar(require("./Breadcrumbs"), exports);
@@ -7,4 +7,5 @@ export * from './Pagination';
7
7
  export * from './Pill';
8
8
  export * from './useLongTouch';
9
9
  export * from './useTimeout';
10
+ export * from './Breadcrumbs';
10
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Misc/index.ts"],"names":[],"mappings":"AAmBA,cAAc,eAAe,CAAC;AAC9B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Misc/index.ts"],"names":[],"mappings":"AAmBA,cAAc,eAAe,CAAC;AAC9B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC;AACvB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}
package/lib/Misc/index.js CHANGED
@@ -41,3 +41,4 @@ __exportStar(require("./Pagination"), exports);
41
41
  __exportStar(require("./Pill"), exports);
42
42
  __exportStar(require("./useLongTouch"), exports);
43
43
  __exportStar(require("./useTimeout"), exports);
44
+ __exportStar(require("./Breadcrumbs"), exports);
@@ -0,0 +1,52 @@
1
+ import { ReactNode } from 'react';
2
+ import { CSSObject } from '@emotion/react';
3
+ /**
4
+ * A dropdown menu component that provides a customizable and accessible dropdown interface.
5
+ * Built on top of accessible primitives, it offers a flexible way to display
6
+ * contextual actions and navigation options.
7
+ *
8
+ * Disclaimer: Custom trigger components (with asChild) must accept id, aria-haspopup, aria-expanded, and data-state props.
9
+ *
10
+ * Example:
11
+ * ```tsx
12
+ * <DropdownMenu>
13
+ * <DropdownMenu.Trigger>Open Menu</DropdownMenu.Trigger>
14
+ * <DropdownMenu.Content>
15
+ * <DropdownMenu.Item>Item 1</DropdownMenu.Item>
16
+ * <DropdownMenu.Item>Item 2</DropdownMenu.Item>
17
+ * </DropdownMenu.Content>
18
+ * </DropdownMenu>
19
+ * ```
20
+ *
21
+ * With custom trigger:
22
+ * ```tsx
23
+ * <DropdownMenu>
24
+ * <DropdownMenu.Trigger asChild>
25
+ * <Button>Open Menu</Button>
26
+ * </DropdownMenu.Trigger>
27
+ * <DropdownMenu.Content>
28
+ * <DropdownMenu.Item>Item 1</DropdownMenu.Item>
29
+ * <DropdownMenu.Item>Item 2</DropdownMenu.Item>
30
+ * </DropdownMenu.Content>
31
+ * </DropdownMenu>
32
+ * ```
33
+ *
34
+ */
35
+ export declare const DropdownMenu: {
36
+ ({ children }: {
37
+ children: ReactNode;
38
+ }): import("@emotion/react/jsx-runtime").JSX.Element;
39
+ Trigger: ({ children, asChild, cssObj, }: {
40
+ children: ReactNode;
41
+ asChild?: boolean;
42
+ cssObj?: CSSObject;
43
+ }) => import("@emotion/react/jsx-runtime").JSX.Element;
44
+ Content: ({ children }: {
45
+ children: ReactNode;
46
+ }) => import("@emotion/react/jsx-runtime").JSX.Element;
47
+ Item: ({ children, onClick }: {
48
+ children: ReactNode;
49
+ onClick: () => void;
50
+ }) => import("@emotion/react/jsx-runtime").JSX.Element;
51
+ };
52
+ //# sourceMappingURL=DropdownMenu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DropdownMenu.d.ts","sourceRoot":"","sources":["../../../src/Modal/DropdownMenu/DropdownMenu.tsx"],"names":[],"mappings":"AAmBA,OAAO,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAEhC,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAKzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,eAAO,MAAM,YAAY;mBAAgB;QAAC,QAAQ,EAAE,SAAS,CAAA;KAAC;8CAQ3D;QACD,QAAQ,EAAE,SAAS,CAAC;QACpB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,MAAM,CAAC,EAAE,SAAS,CAAC;KACpB;4BAUwC;QAAC,QAAQ,EAAE,SAAS,CAAA;KAAC;kCAYf;QAAC,QAAQ,EAAE,SAAS,CAAC;QAAC,OAAO,EAAE,MAAM,IAAI,CAAA;KAAC;CAhCxF,CAAC"}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.DropdownMenu = void 0;
27
+ const jsx_runtime_1 = require("@emotion/react/jsx-runtime");
28
+ const DropdownMenuPrimitive = __importStar(require("@radix-ui/react-dropdown-menu"));
29
+ const DropdownMenu_styles_1 = require("./DropdownMenu.styles");
30
+ /**
31
+ * A dropdown menu component that provides a customizable and accessible dropdown interface.
32
+ * Built on top of accessible primitives, it offers a flexible way to display
33
+ * contextual actions and navigation options.
34
+ *
35
+ * Disclaimer: Custom trigger components (with asChild) must accept id, aria-haspopup, aria-expanded, and data-state props.
36
+ *
37
+ * Example:
38
+ * ```tsx
39
+ * <DropdownMenu>
40
+ * <DropdownMenu.Trigger>Open Menu</DropdownMenu.Trigger>
41
+ * <DropdownMenu.Content>
42
+ * <DropdownMenu.Item>Item 1</DropdownMenu.Item>
43
+ * <DropdownMenu.Item>Item 2</DropdownMenu.Item>
44
+ * </DropdownMenu.Content>
45
+ * </DropdownMenu>
46
+ * ```
47
+ *
48
+ * With custom trigger:
49
+ * ```tsx
50
+ * <DropdownMenu>
51
+ * <DropdownMenu.Trigger asChild>
52
+ * <Button>Open Menu</Button>
53
+ * </DropdownMenu.Trigger>
54
+ * <DropdownMenu.Content>
55
+ * <DropdownMenu.Item>Item 1</DropdownMenu.Item>
56
+ * <DropdownMenu.Item>Item 2</DropdownMenu.Item>
57
+ * </DropdownMenu.Content>
58
+ * </DropdownMenu>
59
+ * ```
60
+ *
61
+ */
62
+ const DropdownMenu = ({ children }) => {
63
+ return (0, jsx_runtime_1.jsx)(DropdownMenuPrimitive.Root, { children: children });
64
+ };
65
+ exports.DropdownMenu = DropdownMenu;
66
+ const DropdownMenuTrigger = ({ children, asChild = false, cssObj, }) => {
67
+ return ((0, jsx_runtime_1.jsx)(DropdownMenuPrimitive.Trigger, { asChild: asChild, css: { ...DropdownMenu_styles_1.triggerStyles, ...cssObj }, children: children }));
68
+ };
69
+ exports.DropdownMenu.Trigger = DropdownMenuTrigger;
70
+ const DropdownMenuContent = ({ children }) => {
71
+ return ((0, jsx_runtime_1.jsx)(DropdownMenuPrimitive.Portal, { children: (0, jsx_runtime_1.jsx)(DropdownMenuPrimitive.Content, { css: DropdownMenu_styles_1.contentStyle, sideOffset: 6, children: children }) }));
72
+ };
73
+ exports.DropdownMenu.Content = DropdownMenuContent;
74
+ const DropdownMenuItem = ({ children, onClick }) => {
75
+ return ((0, jsx_runtime_1.jsx)(DropdownMenuPrimitive.Item, { css: DropdownMenu_styles_1.itemStyle, onClick: onClick, children: (0, jsx_runtime_1.jsx)("span", { css: DropdownMenu_styles_1.textStyles, children: children }) }));
76
+ };
77
+ exports.DropdownMenu.Item = DropdownMenuItem;
@@ -0,0 +1,9 @@
1
+ import { Meta, StoryObj } from '@storybook/react/*';
2
+ import { DropdownMenu } from './DropdownMenu';
3
+ declare const meta: Meta<typeof DropdownMenu>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof DropdownMenu>;
6
+ export declare const Default: Story;
7
+ export declare const WithLongItems: Story;
8
+ export declare const WithCustomTrigger: Story;
9
+ //# sourceMappingURL=DropdownMenu.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DropdownMenu.stories.d.ts","sourceRoot":"","sources":["../../../src/Modal/DropdownMenu/DropdownMenu.stories.tsx"],"names":[],"mappings":"AAmBA,OAAO,EAAC,IAAI,EAAE,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAI5C,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,YAAY,CAMnC,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,YAAY,CAAC,CAAC;AAE3C,eAAO,MAAM,OAAO,EAAE,KAarB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,KAa3B,CAAC;AAEF,eAAO,MAAM,iBAAiB,EAAE,KAoB/B,CAAC"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WithCustomTrigger = exports.WithLongItems = exports.Default = void 0;
4
+ const jsx_runtime_1 = require("@emotion/react/jsx-runtime");
5
+ const DropdownMenu_1 = require("./DropdownMenu");
6
+ const Icon_1 = require("../../Icon");
7
+ const meta = {
8
+ component: DropdownMenu_1.DropdownMenu,
9
+ title: 'Modal/DropdownMenu',
10
+ parameters: {
11
+ layout: 'centered',
12
+ },
13
+ };
14
+ exports.default = meta;
15
+ exports.Default = {
16
+ render: () => ((0, jsx_runtime_1.jsxs)(DropdownMenu_1.DropdownMenu, { children: [(0, jsx_runtime_1.jsx)(DropdownMenu_1.DropdownMenu.Trigger, { cssObj: { width: '40px', height: '40px' }, children: (0, jsx_runtime_1.jsx)(Icon_1.PlusIcon, {}) }), (0, jsx_runtime_1.jsxs)(DropdownMenu_1.DropdownMenu.Content, { children: [(0, jsx_runtime_1.jsx)(DropdownMenu_1.DropdownMenu.Item, { onClick: () => { }, children: "Copy" }), (0, jsx_runtime_1.jsx)(DropdownMenu_1.DropdownMenu.Item, { onClick: () => { }, children: "Details" }), (0, jsx_runtime_1.jsx)(DropdownMenu_1.DropdownMenu.Item, { onClick: () => { }, children: "Delete for me" })] })] })),
17
+ };
18
+ exports.WithLongItems = {
19
+ render: () => ((0, jsx_runtime_1.jsxs)(DropdownMenu_1.DropdownMenu, { children: [(0, jsx_runtime_1.jsx)(DropdownMenu_1.DropdownMenu.Trigger, { cssObj: { width: '40px', height: '40px' }, children: (0, jsx_runtime_1.jsx)(Icon_1.PlusIcon, {}) }), (0, jsx_runtime_1.jsxs)(DropdownMenu_1.DropdownMenu.Content, { children: [(0, jsx_runtime_1.jsx)(DropdownMenu_1.DropdownMenu.Item, { onClick: () => { }, children: "Copy the detail of this message" }), (0, jsx_runtime_1.jsx)(DropdownMenu_1.DropdownMenu.Item, { onClick: () => { }, children: "Contact the sender" }), (0, jsx_runtime_1.jsx)(DropdownMenu_1.DropdownMenu.Item, { onClick: () => { }, children: "Delete this message (works only if you are the owner)" })] })] })),
20
+ };
21
+ exports.WithCustomTrigger = {
22
+ render: () => ((0, jsx_runtime_1.jsxs)(DropdownMenu_1.DropdownMenu, { children: [(0, jsx_runtime_1.jsx)(DropdownMenu_1.DropdownMenu.Trigger, { asChild: true, children: (0, jsx_runtime_1.jsx)("button", { css: {
23
+ width: '200px',
24
+ height: '40px',
25
+ }, children: "show menu" }) }), (0, jsx_runtime_1.jsxs)(DropdownMenu_1.DropdownMenu.Content, { children: [(0, jsx_runtime_1.jsx)(DropdownMenu_1.DropdownMenu.Item, { onClick: () => { }, children: "Copy" }), (0, jsx_runtime_1.jsx)(DropdownMenu_1.DropdownMenu.Item, { onClick: () => { }, children: "Details" }), (0, jsx_runtime_1.jsx)(DropdownMenu_1.DropdownMenu.Item, { onClick: () => { }, children: "Delete for me" })] })] })),
26
+ };
@@ -0,0 +1,6 @@
1
+ import { CSSObject } from '@emotion/react';
2
+ export declare const contentStyle: CSSObject;
3
+ export declare const itemStyle: CSSObject;
4
+ export declare const textStyles: CSSObject;
5
+ export declare const triggerStyles: CSSObject;
6
+ //# sourceMappingURL=DropdownMenu.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DropdownMenu.styles.d.ts","sourceRoot":"","sources":["../../../src/Modal/DropdownMenu/DropdownMenu.styles.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,SAAS,EAAY,MAAM,gBAAgB,CAAC;AAkDpD,eAAO,MAAM,YAAY,EAAE,SA0B1B,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,SAiBvB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,SAIxB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,SAS3B,CAAC"}
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+ /*
3
+ * Wire
4
+ * Copyright (C) 2025 Wire Swiss GmbH
5
+ *
6
+ * This program is free software: you can redistribute it and/or modify
7
+ * it under the terms of the GNU General Public License as published by
8
+ * the Free Software Foundation, either version 3 of the License, or
9
+ * (at your option) any later version.
10
+ *
11
+ * This program is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ * GNU General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU General Public License
17
+ * along with this program. If not, see http://www.gnu.org/licenses/.
18
+ *
19
+ */
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.triggerStyles = exports.textStyles = exports.itemStyle = exports.contentStyle = void 0;
22
+ const react_1 = require("@emotion/react");
23
+ const util_1 = require("../../util");
24
+ const slideUpAndFade = (0, react_1.keyframes) `
25
+ from {
26
+ opacity: 0;
27
+ transform: translateY(2px);
28
+ }
29
+ to {
30
+ opacity: 1;
31
+ transform: translateY(0);
32
+ }
33
+ }
34
+ `;
35
+ const slideRightAndFade = (0, react_1.keyframes) `
36
+ from {
37
+ opacity: 0;
38
+ transform: translateX(-2px);
39
+ }
40
+ to {
41
+ opacity: 1;
42
+ transform: translateX(0);
43
+ }
44
+ }`;
45
+ const slideDownAndFade = (0, react_1.keyframes) `
46
+ from {
47
+ opacity: 0;
48
+ transform: translateY(-2px);
49
+ }
50
+ to {
51
+ opacity: 1;
52
+ transform: translateY(0);
53
+ }
54
+ }
55
+ `;
56
+ const slideLeftAndFade = (0, react_1.keyframes) `
57
+ from {
58
+ opacity: 0;
59
+ transform: translateX(2px);
60
+ }
61
+ to {
62
+ opacity: 1;
63
+ transform: translateX(0);
64
+ }
65
+ }
66
+ `;
67
+ exports.contentStyle = {
68
+ minWidth: '160px',
69
+ zIndex: 'var(--z-index-modal)',
70
+ padding: '8px 0',
71
+ borderRadius: '12px',
72
+ backgroundColor: 'var(--modal-bg)',
73
+ boxShadow: '0 0 1px 0 rgba(0, 0, 0, 0.08), 0 8px 24px 0 rgba(0, 0, 0, 0.16)',
74
+ animationDuration: '400ms',
75
+ animationTimingFunction: 'cubic-bezier(0.16, 1, 0.3, 1)',
76
+ willChange: 'transform, opacity',
77
+ outline: 'auto',
78
+ '&[data-side="top"]': {
79
+ animationName: slideDownAndFade,
80
+ },
81
+ '&[data-side="right"]': {
82
+ animationName: slideLeftAndFade,
83
+ },
84
+ '&[data-side="bottom"]': {
85
+ animationName: slideUpAndFade,
86
+ },
87
+ '&[data-side="left"]': {
88
+ animationName: slideRightAndFade,
89
+ },
90
+ };
91
+ exports.itemStyle = {
92
+ fontSize: '12px',
93
+ fontWeight: 400,
94
+ lineHeight: '2rem',
95
+ padding: '0 8px',
96
+ position: 'relative',
97
+ userSelect: 'none',
98
+ outline: 'none',
99
+ cursor: 'pointer',
100
+ display: 'flex',
101
+ overflow: 'hidden',
102
+ maxWidth: '300px',
103
+ alignItems: 'center',
104
+ '&[data-highlighted]': {
105
+ backgroundColor: 'var(--foreground-fade-16)',
106
+ },
107
+ };
108
+ exports.textStyles = {
109
+ ...(0, util_1.ellipsis)(),
110
+ display: 'inline-block',
111
+ flexGrow: 1,
112
+ };
113
+ exports.triggerStyles = {
114
+ display: 'flex',
115
+ alignItems: 'center',
116
+ justifyContent: 'center',
117
+ padding: '0',
118
+ margin: '0',
119
+ border: 'none',
120
+ background: 'none',
121
+ cursor: 'pointer',
122
+ };
@@ -0,0 +1,2 @@
1
+ export * from './DropdownMenu';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Modal/DropdownMenu/index.ts"],"names":[],"mappings":"AAmBA,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ /*
3
+ * Wire
4
+ * Copyright (C) 2025 Wire Swiss GmbH
5
+ *
6
+ * This program is free software: you can redistribute it and/or modify
7
+ * it under the terms of the GNU General Public License as published by
8
+ * the Free Software Foundation, either version 3 of the License, or
9
+ * (at your option) any later version.
10
+ *
11
+ * This program is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
+ * GNU General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU General Public License
17
+ * along with this program. If not, see http://www.gnu.org/licenses/.
18
+ *
19
+ */
20
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ var desc = Object.getOwnPropertyDescriptor(m, k);
23
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
24
+ desc = { enumerable: true, get: function() { return m[k]; } };
25
+ }
26
+ Object.defineProperty(o, k2, desc);
27
+ }) : (function(o, m, k, k2) {
28
+ if (k2 === undefined) k2 = k;
29
+ o[k2] = m[k];
30
+ }));
31
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
32
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
33
+ };
34
+ Object.defineProperty(exports, "__esModule", { value: true });
35
+ __exportStar(require("./DropdownMenu"), exports);
@@ -1,3 +1,4 @@
1
1
  export * from './Modal';
2
2
  export { Overlay } from './Overlay';
3
+ export * from './DropdownMenu';
3
4
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Modal/index.ts"],"names":[],"mappings":"AAmBA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Modal/index.ts"],"names":[],"mappings":"AAmBA,cAAc,SAAS,CAAC;AACxB,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAClC,cAAc,gBAAgB,CAAC"}
@@ -36,3 +36,4 @@ exports.Overlay = void 0;
36
36
  __exportStar(require("./Modal"), exports);
37
37
  var Overlay_1 = require("./Overlay");
38
38
  Object.defineProperty(exports, "Overlay", { enumerable: true, get: function () { return Overlay_1.Overlay; } });
39
+ __exportStar(require("./DropdownMenu"), exports);
@@ -42,6 +42,7 @@ declare const meta: {
42
42
  title?: string | undefined;
43
43
  pattern?: string | undefined;
44
44
  value?: string | readonly string[] | number | undefined;
45
+ hidden?: boolean | undefined;
45
46
  accept?: string | undefined;
46
47
  acceptCharset?: string | undefined;
47
48
  action?: string | undefined | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_EXPERIMENTAL_FORM_ACTIONS[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_EXPERIMENTAL_FORM_ACTIONS];
@@ -144,7 +145,6 @@ declare const meta: {
144
145
  dir?: string | undefined;
145
146
  draggable?: (boolean | "true" | "false") | undefined;
146
147
  enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined;
147
- hidden?: boolean | undefined;
148
148
  id?: string | undefined;
149
149
  lang?: string | undefined;
150
150
  nonce?: string | undefined;
@@ -3,5 +3,6 @@ export declare const GlobalCssVariables: {
3
3
  light: () => CSSObject;
4
4
  dark: () => CSSObject;
5
5
  accentColors: () => CSSObject;
6
+ zIndexes: () => CSSObject;
6
7
  };
7
8
  //# sourceMappingURL=GlobalCssVariables.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GlobalCssVariables.d.ts","sourceRoot":"","sources":["../../src/Theme/GlobalCssVariables.tsx"],"names":[],"mappings":"AAmBA,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AA0OzC,eAAO,MAAM,kBAAkB;iBAtOZ,SAAS;gBA0GV,SAAS;wBA0GD,SAAS;CAsBlC,CAAC"}
1
+ {"version":3,"file":"GlobalCssVariables.d.ts","sourceRoot":"","sources":["../../src/Theme/GlobalCssVariables.tsx"],"names":[],"mappings":"AAmBA,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAqQzC,eAAO,MAAM,kBAAkB;iBAjQZ,SAAS;gBA8GV,SAAS;wBA8GD,SAAS;oBAkBb,SAAS;CAwB9B,CAAC"}
@@ -61,6 +61,9 @@ const light = () => ({
61
61
  '--success-color': Identity_1.COLOR_V2.GREEN_LIGHT_500,
62
62
  '--app-bg': Identity_1.COLOR_V2.GRAY_10,
63
63
  '--main-color': Identity_1.COLOR.BLACK,
64
+ '--modal-bg': '#f8f8f8',
65
+ // Foreground
66
+ '--foreground-fade-16': '#676b7129',
64
67
  // Archive File Icon
65
68
  '--archive-file-icon-bg': Identity_1.COLOR_V2.AMBER_LIGHT_50,
66
69
  '--archive-file-icon-stroke': Identity_1.COLOR_V2.AMBER_LIGHT_700,
@@ -145,6 +148,9 @@ const dark = () => ({
145
148
  '--success-color': Identity_1.COLOR_V2.GREEN_DARK_500,
146
149
  '--app-bg': Identity_1.COLOR_V2.GRAY_95,
147
150
  '--main-color': Identity_1.COLOR.WHITE,
151
+ '--modal-bg': '#26272c',
152
+ // Foreground
153
+ '--foreground-fade-16': '#9fa1a729',
148
154
  // Archive File Icon
149
155
  '--archive-file-icon-bg': Identity_1.COLOR_V2.AMBER_DARK_50,
150
156
  '--archive-file-icon-stroke': Identity_1.COLOR_V2.AMBER_DARK_700,
@@ -205,8 +211,27 @@ const accentColors = () => ({
205
211
  '--icon-secondary-active-border': 'transparent',
206
212
  '--indicator-range-input-thumb': Identity_1.COLOR_V2.BLUE_LIGHT_700,
207
213
  });
214
+ const zIndexes = () => ({
215
+ '--z-index-level-0': 0,
216
+ '--z-index-level-1': 10,
217
+ '--z-index-level-2': 100,
218
+ '--z-index-level-3': 1000,
219
+ '--z-index-level-4': 10000,
220
+ '--z-index-level-5': 100000,
221
+ '--z-index-level-6': 1000000,
222
+ '--z-index-level-7': 10000000,
223
+ '--z-index-badge': 'var(--z-index-level-2)',
224
+ '--z-index-panel': 'var(--z-index-level-3)',
225
+ '--z-index-bubble': 'var(--z-index-level-3)',
226
+ '--z-index-video': 'var(--z-index-level-4)',
227
+ '--z-index-choosescreen': 'var(--z-index-level-5)',
228
+ '--z-index-context': 'var(--z-index-level-5)',
229
+ '--z-index-warnings': 'var(--z-index-level-6)',
230
+ '--z-index-modal': 'var(--z-index-level-7)',
231
+ });
208
232
  exports.GlobalCssVariables = {
209
233
  light,
210
234
  dark,
211
235
  accentColors,
236
+ zIndexes,
212
237
  };
package/lib/util.d.ts CHANGED
@@ -3,4 +3,5 @@ export declare const noop: () => void;
3
3
  export declare const inlineSVG: (svg: string) => string;
4
4
  export declare const filterProps: <T extends Record<string, any>>(props: T, propsToFilter: (keyof T)[]) => Object;
5
5
  export declare const manySelectors: (selectors: string[], css: CSSObject) => {};
6
+ export declare const ellipsis: () => CSSObject;
6
7
  //# sourceMappingURL=util.d.ts.map
package/lib/util.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAEzC,eAAO,MAAM,IAAI,YAAW,CAAC;AAE7B,eAAO,MAAM,SAAS,QAAS,MAAM,WAAyD,CAAC;AAE/F,eAAO,MAAM,WAAW,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,MAQlG,CAAC;AAEF,eAAO,MAAM,aAAa,cAAe,MAAM,EAAE,OAAO,SAAS,OAIzD,CAAC"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAC,SAAS,EAAC,MAAM,gBAAgB,CAAC;AAEzC,eAAO,MAAM,IAAI,YAAW,CAAC;AAE7B,eAAO,MAAM,SAAS,QAAS,MAAM,WAAyD,CAAC;AAE/F,eAAO,MAAM,WAAW,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,aAAa,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,MAQlG,CAAC;AAEF,eAAO,MAAM,aAAa,cAAe,MAAM,EAAE,OAAO,SAAS,OAIzD,CAAC;AAET,eAAO,MAAM,QAAQ,QAAO,SAI1B,CAAC"}
package/lib/util.js CHANGED
@@ -18,7 +18,7 @@
18
18
  *
19
19
  */
20
20
  Object.defineProperty(exports, "__esModule", { value: true });
21
- exports.manySelectors = exports.filterProps = exports.inlineSVG = exports.noop = void 0;
21
+ exports.ellipsis = exports.manySelectors = exports.filterProps = exports.inlineSVG = exports.noop = void 0;
22
22
  const noop = () => { };
23
23
  exports.noop = noop;
24
24
  const inlineSVG = (svg) => `data:image/svg+xml;utf8,${encodeURIComponent(svg)}`;
@@ -32,3 +32,9 @@ const manySelectors = (selectors, css) => selectors.reduce((acc, selector) => {
32
32
  return acc;
33
33
  }, {});
34
34
  exports.manySelectors = manySelectors;
35
+ const ellipsis = () => ({
36
+ overflow: 'hidden',
37
+ textOverflow: 'ellipsis',
38
+ whiteSpace: 'nowrap',
39
+ });
40
+ exports.ellipsis = ellipsis;
package/package.json CHANGED
@@ -8,6 +8,7 @@
8
8
  "main": "lib/index",
9
9
  "homepage": "https://wire-react-ui-kit.netlify.app/",
10
10
  "dependencies": {
11
+ "@radix-ui/react-dropdown-menu": "2.1.14",
11
12
  "@types/color": "3.0.6",
12
13
  "color": "4.2.3",
13
14
  "emotion-normalize": "11.0.1",
@@ -77,6 +78,6 @@
77
78
  "test:watch": "jest --watch",
78
79
  "test:update": "jest --updateSnapshot"
79
80
  },
80
- "version": "9.50.1",
81
- "gitHead": "be330084ca6a87fed0d7ea2de97a46b57f4af92c"
81
+ "version": "9.52.0",
82
+ "gitHead": "adb538b99b48a57708863e4344d19875ae0069d1"
82
83
  }