paris 0.8.18 → 0.8.20

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/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # paris
2
2
 
3
+ ## 0.8.20
4
+
5
+ ### Patch Changes
6
+
7
+ - beb687f: Menu: add animations for menu items
8
+ - beb687f: Dropdowns: Light mode border style fixes
9
+
10
+ ## 0.8.19
11
+
12
+ ### Patch Changes
13
+
14
+ - 9ef8cb0: Menu: add z-index for MenuItems
15
+
3
16
  ## 0.8.18
4
17
 
5
18
  ### Patch Changes
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "paris",
3
3
  "author": "Sanil Chawla <sanil@slingshot.fm> (https://sanil.co)",
4
4
  "description": "Paris is Slingshot's React design system. It's a collection of reusable components, design tokens, and guidelines that help us build consistent, accessible, and performant user interfaces.",
5
- "version": "0.8.18",
5
+ "version": "0.8.20",
6
6
  "homepage": "https://paris.slingshot.fm",
7
7
  "license": "MIT",
8
8
  "repository": {
@@ -26,9 +26,7 @@
26
26
  "nextjs",
27
27
  "storybook"
28
28
  ],
29
- "engines": {
30
- "pnpm": "^8.x"
31
- },
29
+ "packageManager": "pnpm@8.15.5",
32
30
  "exports": {
33
31
  "./*": "./src/stories/*",
34
32
  "./accordion": "./src/stories/accordion/index.ts",
@@ -1,5 +1,5 @@
1
1
  .container {
2
- border: 1px solid var(--pte-borders-dropdown-color);
2
+ border: var(--pte-borders-dropdown-border);
3
3
  border-radius: var(--pte-borders-radius-rounded);
4
4
  box-shadow: var(--pte-lighting-subtlePopup);
5
5
 
@@ -111,7 +111,7 @@ $panelAnimationDelay: var(--pte-animations-duration-fast);
111
111
  .simple {
112
112
  border-radius: var(--pte-borders-radius-rounded);
113
113
  background: var(--pte-colors-backgroundPrimary);
114
- border: 1px solid var(--pte-borders-dropdown-color);
114
+ border: var(--pte-borders-dropdown-border);
115
115
  backdrop-filter: var(--pte-surfaces-dialog-backdropFilter);
116
116
  outline: none;
117
117
  box-shadow: var(--pte-lighting-shallowBelow);
@@ -11,6 +11,7 @@
11
11
  border-radius: 8px;
12
12
  background: var(--pte-colors-backgroundPrimary);
13
13
  box-shadow: var(--pte-borders-dropdown-shadow);
14
+ border: var(--pte-borders-dropdown-border);
14
15
 
15
16
  display: flex;
16
17
  width: 200px;
@@ -18,6 +19,7 @@
18
19
  align-items: flex-start;
19
20
 
20
21
  overflow: hidden;
22
+ z-index: 100;
21
23
  }
22
24
 
23
25
  .leftPosition {
@@ -31,7 +33,7 @@
31
33
  }
32
34
 
33
35
  .menuItem {
34
- width: 100%;
36
+ width: 100%;
35
37
  padding: 8px 16px;
36
38
 
37
39
  display: flex;
@@ -49,7 +51,7 @@
49
51
  &:hover {
50
52
  background-color: var(--pte-colors-backgroundSecondary);
51
53
  }
52
-
54
+
53
55
  @keyframes gradientFlow {
54
56
  0% {
55
57
  background-position: 0%;
@@ -1,11 +1,13 @@
1
- import type { FC, ReactNode } from 'react';
1
+ import type { FC } from 'react';
2
+ import { Fragment, ReactNode } from 'react';
2
3
  import type {
3
4
  MenuProps, MenuItemsProps, MenuItemProps, MenuButtonProps,
4
5
  } from '@headlessui/react';
5
- import { Menu as HeadlessMenu } from '@headlessui/react';
6
+ import { Menu as HeadlessMenu, Transition } from '@headlessui/react';
6
7
  import clsx from 'clsx';
7
8
 
8
9
  import styles from './Menu.module.scss';
10
+ import dropdownStyles from '../utility/Dropdown.module.scss';
9
11
 
10
12
  export { Menu as HeadlessMenu } from '@headlessui/react';
11
13
 
@@ -61,9 +63,19 @@ Menu.Button = ({ className, children, ...props }) => (
61
63
  Menu.Items = ({
62
64
  className, children, position = 'left', ...props
63
65
  }) => (
64
- <HeadlessMenu.Items className={clsx(styles.menuItems, position === 'left' && styles.leftPosition, position === 'right' && styles.rightPosition, className)} {...props}>
65
- {children}
66
- </HeadlessMenu.Items>
66
+ <Transition
67
+ as={Fragment}
68
+ enter={dropdownStyles.transition}
69
+ enterFrom={dropdownStyles.enterFrom}
70
+ enterTo={dropdownStyles.enterTo}
71
+ leave={dropdownStyles.transition}
72
+ leaveFrom={dropdownStyles.leaveFrom}
73
+ leaveTo={dropdownStyles.leaveTo}
74
+ >
75
+ <HeadlessMenu.Items className={clsx(styles.menuItems, position === 'left' && styles.leftPosition, position === 'right' && styles.rightPosition, className)} {...props}>
76
+ {children}
77
+ </HeadlessMenu.Items>
78
+ </Transition>
67
79
  );
68
80
 
69
81
  /**
@@ -18,5 +18,5 @@
18
18
  width: fit-content;
19
19
  border-radius: var(--pte-borders-radius-rounded);
20
20
  box-shadow: var(--pte-lighting-shallowPopup);
21
- border: 1px solid var(--pte-borders-dropdown-color)
21
+ border: var(--pte-borders-dropdown-border);
22
22
  }
@@ -35,10 +35,8 @@
35
35
 
36
36
  background-color: var(--pte-colors-backgroundPrimary);
37
37
 
38
- border-width: 1px;
39
- border-style: solid;
38
+ border: var(--pte-borders-dropdown-border);
40
39
  border-radius: var(--pte-borders-radius-rectangle);
41
- border-color: var(--pte-borders-dropdown-color);
42
40
  box-shadow: var(--pte-borders-dropdown-shadow);
43
41
 
44
42
  transition: var(--pte-animations-interaction);
@@ -204,6 +204,7 @@ export type Theme = {
204
204
  dropdown: {
205
205
  color: CSSColor,
206
206
  shadow: ShadowDefinition,
207
+ border: `${number}px ${string} ${CSSColor}` | 'none',
207
208
  },
208
209
  },
209
210
  surfaces: {
@@ -502,6 +503,7 @@ export const LightTheme: Theme = {
502
503
  dropdown: {
503
504
  shadow: Shadows.deepBelow,
504
505
  color: 'transparent',
506
+ border: 'none',
505
507
  },
506
508
  },
507
509
  surfaces: {
@@ -570,6 +572,7 @@ export const DarkTheme: Theme = merge(LightTheme, {
570
572
  dropdown: {
571
573
  shadow: 'none',
572
574
  color: T.colors.grey600,
575
+ border: `1px solid ${T.colors.grey600}`,
573
576
  },
574
577
  },
575
578
  surfaces: {