@pareto-engineering/design-system 4.0.0-alpha.22 → 4.0.0-alpha.24

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 (73) hide show
  1. package/dist/cjs/a/AppContext/useTheme.js +0 -10
  2. package/dist/cjs/a/BlurOverlay/BlurOverlay.js +59 -0
  3. package/dist/cjs/a/BlurOverlay/index.js +13 -0
  4. package/dist/cjs/a/BlurOverlay/styles.scss +31 -0
  5. package/dist/cjs/a/ContentTree/styles.scss +2 -1
  6. package/dist/cjs/a/Conversation/common/Message/Message.js +7 -2
  7. package/dist/cjs/a/Conversation/styles.scss +23 -1
  8. package/dist/cjs/a/MetaCard/MetaCard.js +8 -3
  9. package/dist/cjs/a/MetaCard/styles.scss +15 -0
  10. package/dist/cjs/a/index.js +7 -0
  11. package/dist/cjs/b/Button/Button.js +1 -0
  12. package/dist/cjs/b/Button/common/WithLink/WithLink.js +60 -0
  13. package/dist/cjs/b/Button/common/WithLink/index.js +13 -0
  14. package/dist/cjs/b/Button/common/WithLink/styles.scss +9 -0
  15. package/dist/cjs/b/Button/common/index.js +8 -1
  16. package/dist/cjs/b/Button/styles.scss +4 -4
  17. package/dist/cjs/b/Card/common/Group/styles.scss +0 -4
  18. package/dist/cjs/b/Page/common/PageHelmet/PageHelmet.js +1 -1
  19. package/dist/cjs/b/ThemeSelector/ThemeSelector.js +3 -1
  20. package/dist/cjs/f/fields/ChoicesInput/ChoicesInput.js +5 -4
  21. package/dist/cjs/f/fields/ChoicesInput/styles.scss +6 -0
  22. package/dist/cjs/f/fields/SelectInput/styles.scss +4 -3
  23. package/dist/cjs/f/fields/TextInput/styles.scss +3 -2
  24. package/dist/es/a/AppContext/useTheme.js +0 -10
  25. package/dist/es/a/BlurOverlay/BlurOverlay.js +51 -0
  26. package/dist/es/a/BlurOverlay/index.js +2 -0
  27. package/dist/es/a/BlurOverlay/styles.scss +31 -0
  28. package/dist/es/a/ContentTree/styles.scss +2 -1
  29. package/dist/es/a/Conversation/common/Message/Message.js +7 -2
  30. package/dist/es/a/Conversation/styles.scss +23 -1
  31. package/dist/es/a/MetaCard/MetaCard.js +8 -3
  32. package/dist/es/a/MetaCard/styles.scss +15 -0
  33. package/dist/es/a/index.js +1 -0
  34. package/dist/es/b/Button/Button.js +2 -1
  35. package/dist/es/b/Button/common/WithLink/WithLink.js +52 -0
  36. package/dist/es/b/Button/common/WithLink/index.js +1 -0
  37. package/dist/es/b/Button/common/WithLink/styles.scss +9 -0
  38. package/dist/es/b/Button/common/index.js +2 -1
  39. package/dist/es/b/Button/styles.scss +4 -4
  40. package/dist/es/b/Card/common/Group/styles.scss +0 -4
  41. package/dist/es/b/Page/common/PageHelmet/PageHelmet.js +1 -1
  42. package/dist/es/b/ThemeSelector/ThemeSelector.js +3 -1
  43. package/dist/es/f/fields/ChoicesInput/ChoicesInput.js +5 -4
  44. package/dist/es/f/fields/ChoicesInput/styles.scss +6 -0
  45. package/dist/es/f/fields/SelectInput/styles.scss +4 -3
  46. package/dist/es/f/fields/TextInput/styles.scss +3 -2
  47. package/package.json +5 -4
  48. package/src/stories/a/BlurOverlay.stories.jsx +39 -0
  49. package/src/stories/b/Button/WithLink.stories.jsx +38 -0
  50. package/src/ui/a/AppContext/useTheme.js +0 -11
  51. package/src/ui/a/BlurOverlay/BlurOverlay.jsx +75 -0
  52. package/src/ui/a/BlurOverlay/index.js +2 -0
  53. package/src/ui/a/BlurOverlay/styles.scss +31 -0
  54. package/src/ui/a/ContentTree/styles.scss +2 -1
  55. package/src/ui/a/Conversation/common/Message/Message.jsx +10 -4
  56. package/src/ui/a/Conversation/styles.scss +23 -1
  57. package/src/ui/a/MetaCard/MetaCard.jsx +7 -0
  58. package/src/ui/a/MetaCard/styles.scss +15 -0
  59. package/src/ui/a/index.js +1 -0
  60. package/src/ui/b/Button/Button.jsx +2 -1
  61. package/src/ui/b/Button/common/WithLink/WithLink.jsx +80 -0
  62. package/src/ui/b/Button/common/WithLink/index.js +1 -0
  63. package/src/ui/b/Button/common/WithLink/styles.scss +9 -0
  64. package/src/ui/b/Button/common/index.js +1 -0
  65. package/src/ui/b/Button/styles.scss +4 -4
  66. package/src/ui/b/Card/common/Group/styles.scss +0 -4
  67. package/src/ui/b/Page/common/PageHelmet/PageHelmet.jsx +1 -1
  68. package/src/ui/b/ThemeSelector/ThemeSelector.jsx +3 -1
  69. package/src/ui/f/fields/ChoicesInput/ChoicesInput.jsx +4 -2
  70. package/src/ui/f/fields/ChoicesInput/styles.scss +6 -0
  71. package/src/ui/f/fields/SelectInput/styles.scss +4 -3
  72. package/src/ui/f/fields/TextInput/styles.scss +3 -2
  73. package/tests/__snapshots__/Storyshots.test.js.snap +672 -2
@@ -0,0 +1,31 @@
1
+ /* @pareto-engineering/generator-front 1.1.1-alpha.1 */
2
+
3
+ @use "@pareto-engineering/bem";
4
+
5
+ .#{bem.$base}.blur-overlay {
6
+ background: inherit;
7
+ left: 0;
8
+ position: fixed;
9
+ top: 0;
10
+ width: 100%;
11
+ z-index: 3;
12
+ &.#{bem.$modifier-active} {
13
+ animation: blurAnimation .3s ease-in-out;
14
+ backdrop-filter: blur(5px);
15
+ height: 100%;
16
+ }
17
+ }
18
+
19
+ @keyframes blurAnimation {
20
+ 0% {
21
+ transform: translateX(-100%);
22
+ }
23
+
24
+ 1% {
25
+ transform: translateX(0);
26
+ }
27
+
28
+ 100% {
29
+ transform: translateX(0);
30
+ }
31
+ }
@@ -6,11 +6,12 @@
6
6
  $default-dot-size: .5em;
7
7
  $default-margin: 1em;
8
8
  $default-padding: 1em;
9
+ $default-navigation-height: 3.64rem;
9
10
 
10
11
  .#{bem.$base}.content-tree {
11
12
  > .#{bem.$base}.tree {
12
13
  position: sticky;
13
- top: var(--spacing-2);
14
+ top: calc($default-navigation-height + var(--spacing-2));
14
15
 
15
16
  ul {
16
17
  list-style: none;
@@ -21,6 +21,7 @@ const Message = ({
21
21
  className:userClassName,
22
22
  style,
23
23
  message,
24
+ customMessage,
24
25
  sender,
25
26
  from,
26
27
  attachment,
@@ -51,9 +52,9 @@ const Message = ({
51
52
  </p>
52
53
  )}
53
54
  <div className="message-content">
54
- <p>
55
- {message}
56
- </p>
55
+ {
56
+ customMessage || <p>{ message }</p>
57
+ }
57
58
  {attachment
58
59
  && (
59
60
  <div className={`attachment y-${attachmentColor}`}>
@@ -86,7 +87,12 @@ Message.propTypes = {
86
87
  /**
87
88
  * The message in the conversation
88
89
  */
89
- message:PropTypes.string.isRequired,
90
+ message:PropTypes.string,
91
+
92
+ /**
93
+ * The custom message if it uses more complex html
94
+ */
95
+ customMessage:PropTypes.node,
90
96
 
91
97
  /**
92
98
  * The sender of the message
@@ -1,5 +1,7 @@
1
1
  /* @pareto-engineering/generator-front 1.0.12 */
2
2
  /* stylelint-disable selector-max-compound-selectors -- Required here */
3
+ /* stylelint-disable max-nesting-depth -- Required here */
4
+ /* stylelint-disable selector-max-universal -- Required here */
3
5
 
4
6
  @use "@pareto-engineering/bem";
5
7
  @use "@pareto-engineering/styles/src/mixins";
@@ -33,6 +35,7 @@ $default-message-border: 1px solid var(--hard-background-cards);
33
35
 
34
36
  > .sender {
35
37
  margin: 0;
38
+ padding: 0 var(--gap);
36
39
  }
37
40
 
38
41
  > .message-content {
@@ -47,6 +50,21 @@ $default-message-border: 1px solid var(--hard-background-cards);
47
50
  color: var(--on-x);
48
51
  }
49
52
 
53
+ > ul {
54
+ padding: 0 var(--gap);
55
+ text-align: left;
56
+
57
+ > li {
58
+ color: var(--on-x);
59
+ }
60
+ }
61
+
62
+ > * {
63
+ &:not(:last-child) {
64
+ margin-bottom: 0;
65
+ }
66
+ }
67
+
50
68
  > .attachment {
51
69
  align-items: center;
52
70
  align-self: flex-end;
@@ -56,8 +74,12 @@ $default-message-border: 1px solid var(--hard-background-cards);
56
74
  }
57
75
  }
58
76
 
59
- &.#{bem.$base}.ours {
77
+ &.#{bem.$base}.theirs {
60
78
  align-self: flex-end;
79
+
80
+ > .sender {
81
+ text-align: end;
82
+ }
61
83
  }
62
84
  }
63
85
  }
@@ -22,6 +22,7 @@ const MetaCard = ({
22
22
  style,
23
23
  children,
24
24
  hasBackgroundBlur,
25
+ spaced,
25
26
  }) => {
26
27
  useInsertionEffect(() => {
27
28
  import('./styles.scss')
@@ -35,6 +36,7 @@ const MetaCard = ({
35
36
  componentClassName,
36
37
  userClassName,
37
38
  hasBackgroundBlur && styleNames.modifierBlur,
39
+ spaced && styleNames.modifierSpaced,
38
40
  ]
39
41
  .filter((e) => e)
40
42
  .join(' ')}
@@ -65,6 +67,11 @@ MetaCard.propTypes = {
65
67
  * Whether the card has a background blur
66
68
  * */
67
69
  hasBackgroundBlur:PropTypes.bool,
70
+
71
+ /**
72
+ * Whether to apply a gap to the top and bottom
73
+ * */
74
+ spaced:PropTypes.bool,
68
75
  }
69
76
 
70
77
  MetaCard.defaultProps = {
@@ -1,4 +1,5 @@
1
1
  /* @pareto-engineering/generator-front 1.0.12 */
2
+ /* stylelint-disable selector-max-universal -- exception */
2
3
 
3
4
  @use "@pareto-engineering/bem";
4
5
  @use "@pareto-engineering/styles/src/mixins";
@@ -26,5 +27,19 @@ $default-blur: var(--theme-default-blur);
26
27
  margin-left: calc((var(--gap)) * -1);
27
28
  margin-right: calc((var(--gap)) * -1);
28
29
  padding: 0 var(--gap);
30
+
31
+ &.#{bem.$modifier-spaced} {
32
+ padding: var(--gap);
33
+
34
+ > * {
35
+ &:first-child {
36
+ margin-top: 0;
37
+ }
38
+
39
+ &:last-child {
40
+ margin-bottom: 0;
41
+ }
42
+ }
43
+ }
29
44
  }
30
45
  }
package/src/ui/a/index.js CHANGED
@@ -1,6 +1,7 @@
1
1
  export {
2
2
  AppContext, AppContextProvider, useApp, useTheme,
3
3
  } from './AppContext'
4
+ export { BlurOverlay } from './BlurOverlay'
4
5
  export { ContentTree } from './ContentTree'
5
6
  export { Conversation } from './Conversation'
6
7
  export { DotInfo } from './DotInfo'
@@ -6,7 +6,7 @@ import PropTypes from 'prop-types'
6
6
  // Package-level Imports
7
7
  import styleNames from '@pareto-engineering/bem/exports'
8
8
  import { LoadingCircle } from 'ui'
9
- import { Group } from './common'
9
+ import { Group, WithLink } from './common'
10
10
  import './styles.scss'
11
11
 
12
12
  // Helper Definition
@@ -135,5 +135,6 @@ Button.defaultProps = {
135
135
  }
136
136
 
137
137
  Button.Group = Group
138
+ Button.WithLink = WithLink
138
139
 
139
140
  export default Button
@@ -0,0 +1,80 @@
1
+ /* @pareto-engineering/generator-front 1.0.12 */
2
+ import * as React from 'react'
3
+
4
+ import { useInsertionEffect } from 'react'
5
+
6
+ import PropTypes from 'prop-types'
7
+
8
+ import styleNames from '@pareto-engineering/bem/exports'
9
+ import { Link } from 'react-router-dom'
10
+ import { Button } from '../../index'
11
+
12
+ // Local Definitions
13
+
14
+ const baseClassName = styleNames.base
15
+
16
+ const componentClassName = 'button-with-link'
17
+
18
+ const WithLink = ({
19
+ id,
20
+ className: userClassName,
21
+ children,
22
+ path,
23
+ ...otherProps
24
+ }) => {
25
+ useInsertionEffect(() => {
26
+ import('./styles.scss')
27
+ }, [])
28
+
29
+ return (
30
+ <Link
31
+ to={path}
32
+ id={id}
33
+ className={[
34
+ baseClassName,
35
+ componentClassName,
36
+ userClassName,
37
+ ]
38
+ .filter((e) => e)
39
+ .join(' ')}
40
+ >
41
+ <Button
42
+ {...otherProps}
43
+ >
44
+ {children}
45
+ </Button>
46
+ </Link>
47
+ )
48
+ }
49
+
50
+ WithLink.propTypes = {
51
+ /**
52
+ * The HTML id for this element
53
+ */
54
+ id:PropTypes.string,
55
+
56
+ /**
57
+ * The HTML class names for this element
58
+ */
59
+ className:PropTypes.string,
60
+
61
+ /**
62
+ * The React-written, css properties for this element.
63
+ */
64
+ style:PropTypes.objectOf(PropTypes.string),
65
+
66
+ /**
67
+ * The children JSX
68
+ */
69
+ children:PropTypes.node,
70
+
71
+ /**
72
+ * The path that this link would point to
73
+ */
74
+ path:PropTypes.string,
75
+ }
76
+
77
+ WithLink.defaultProps = {
78
+ }
79
+
80
+ export default WithLink
@@ -0,0 +1 @@
1
+ export { default as WithLink } from './WithLink'
@@ -0,0 +1,9 @@
1
+ /* @pareto-engineering/generator-front 1.0.12 */
2
+
3
+ @use "@pareto-engineering/bem";
4
+ @use "@pareto-engineering/styles/src/mixins";
5
+ @use "@pareto-engineering/styles/src/globals" as *;
6
+
7
+ .#{bem.$base}.button-with-link {
8
+ text-decoration: none;
9
+ }
@@ -1 +1,2 @@
1
1
  export { Group } from './Group'
2
+ export { WithLink } from './WithLink'
@@ -113,8 +113,8 @@ $default-animation-time: .31s;
113
113
  }
114
114
 
115
115
  &:disabled {
116
- border: 1px solid var(--x, var(--#{$default-color}));
117
- color: var(--x, var(--#{$default-color}));
116
+ border: 1px solid var(--hard-disabled, var(--#{$default-color}));
117
+ color: var(--hard-disabled, var(--#{$default-color}));
118
118
  }
119
119
  }
120
120
 
@@ -150,12 +150,12 @@ $default-animation-time: .31s;
150
150
  }
151
151
 
152
152
  &:disabled {
153
- color: var(--x, var(--#{$default-color}));
153
+ color: var(--hard-disabled, var(--#{$default-color}));
154
154
  }
155
155
  }
156
156
 
157
157
  &:disabled {
158
- background: var(--x);
158
+ background: var(--hard-disabled);
159
159
  filter: brightness(125%);
160
160
  }
161
161
  }
@@ -12,10 +12,6 @@ $default-spacing: var(--gap);
12
12
  &.snap-scroller {
13
13
  margin-left: calc($default-spacing * -1);
14
14
  margin-right: calc($default-spacing * -1);
15
-
16
- > .#{bem.$base}.card {
17
- height: 100%;
18
- }
19
15
  }
20
16
 
21
17
  &.vertical-flexbox {
@@ -23,7 +23,7 @@ const helmetMap = [
23
23
  <title key="title_tag">
24
24
  {`
25
25
  ${v}
26
- ${c.SITE?.TITLE_SUFFIX && c.SITE.TITLE_SUFFIX}
26
+ ${c.SITE?.TITLE_SUFFIX ? c.SITE.TITLE_SUFFIX : ''}
27
27
  `}
28
28
  </title>
29
29
  ),
@@ -36,7 +36,9 @@ const ThemeSelector = ({
36
36
  },
37
37
  [userTheme])
38
38
 
39
- const themeText = userTheme && userTheme.charAt(0).toUpperCase() + userTheme.slice(1)
39
+ const current = userTheme ? themes.indexOf(userTheme) : 0
40
+ const nextTheme = themes[(current + 1) % themes.length]
41
+ const themeText = nextTheme && nextTheme.charAt(0).toUpperCase() + nextTheme.slice(1)
40
42
 
41
43
  return (
42
44
  // eslint-disable-next-line jsx-a11y/anchor-is-valid, jsx-a11y/no-static-element-interactions
@@ -35,7 +35,8 @@ const ChoicesInput = ({
35
35
  optional,
36
36
  disabled,
37
37
  description,
38
- // ...otherProps
38
+ spaceBetween,
39
+ ...otherProps
39
40
  }) => {
40
41
  useInsertionEffect(() => {
41
42
  import('./styles.scss')
@@ -67,7 +68,7 @@ const ChoicesInput = ({
67
68
  {label}
68
69
  </FormLabel>
69
70
  )}
70
- <div className="choices">
71
+ <div className={['choices', spaceBetween && 'space-between'].filter(Boolean).join(' ')}>
71
72
  { options.map((choice) => (
72
73
  <Choice
73
74
  labelClassName="with-faded-border"
@@ -77,6 +78,7 @@ const ChoicesInput = ({
77
78
  multiple={multiple}
78
79
  validate={validate}
79
80
  disabled={disabled}
81
+ {...otherProps}
80
82
  {...choice}
81
83
  />
82
84
  ))}
@@ -16,6 +16,10 @@ $default-label-height: .5em;
16
16
  flex-wrap: wrap;
17
17
  gap: $default-flex-separator;
18
18
 
19
+ &.space-between {
20
+ justify-content: space-between;
21
+ }
22
+
19
23
  >.choice {
20
24
  display: flex;
21
25
 
@@ -33,6 +37,7 @@ $default-label-height: .5em;
33
37
  > label {
34
38
  background-color: var(--background-inputs);
35
39
  border-radius: var(--theme-default-border-radius);
40
+ color: var(--paragraph);
36
41
  cursor: pointer;
37
42
  display: block;
38
43
  height: $default-label-height;
@@ -40,6 +45,7 @@ $default-label-height: .5em;
40
45
  padding: $default-label-padding;
41
46
  position: relative;
42
47
  transition: $default-transition;
48
+ white-space: nowrap;
43
49
 
44
50
  &:hover {
45
51
  box-shadow: var(--theme-default-input-box-shadow);
@@ -6,7 +6,7 @@
6
6
 
7
7
 
8
8
  $default-spacing-size: 1em;
9
- $default-padding: .75em;
9
+ $default-padding: .5em;
10
10
  $default-bg-gradient: var(--background-far);
11
11
  $default-input-border-radius: var(--theme-default-input-border-radius);
12
12
 
@@ -21,7 +21,7 @@ $default-input-border-radius: var(--theme-default-input-border-radius);
21
21
  >.select-wrapper {
22
22
  background-color: var(--background-inputs);
23
23
  border-radius: $default-input-border-radius;
24
- padding: $default-padding;
24
+ padding: $default-padding 0 $default-padding calc($default-padding * 1.5);
25
25
  position: relative;
26
26
 
27
27
  &::after {
@@ -40,7 +40,7 @@ $default-input-border-radius: var(--theme-default-input-border-radius);
40
40
 
41
41
  select {
42
42
  appearance: none;
43
- background-color: inherit;
43
+ background-color: transparent;
44
44
  background-image: url("data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAyMCAxMiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTE5IDEuNUwxMCAxMC41TDEgMS41IiBzdHJva2U9IiM0QzRENTMiIHN0cm9rZS13aWR0aD0iMiIvPgo8L3N2Zz4=");
45
45
  background-position: calc(100% - $default-spacing-size);
46
46
  background-repeat: no-repeat;
@@ -48,6 +48,7 @@ $default-input-border-radius: var(--theme-default-input-border-radius);
48
48
  padding-right: $default-spacing-size;
49
49
 
50
50
  &.input {
51
+ color: var(--paragraph);
51
52
  width: 100%;
52
53
 
53
54
  &:disabled {
@@ -8,7 +8,7 @@ $default-symbol-left: 1em;
8
8
  $default-padding-with-symbol:
9
9
  .75em
10
10
  calc($default-symbol-left - 1em)
11
- .55em
11
+ .75em
12
12
  calc($default-symbol-left + 1em);
13
13
  $default-input-border-radius: var(--theme-default-input-border-radius);
14
14
 
@@ -30,7 +30,8 @@ $default-input-border-radius: var(--theme-default-input-border-radius);
30
30
  content: var(--symbol);
31
31
  left: $default-symbol-left;
32
32
  position: absolute;
33
- top: .5em;
33
+ top: 50%;
34
+ transform: translate(-50%, -50%);
34
35
  }
35
36
 
36
37
  input {