@moda/om 19.8.2 → 20.0.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 (79) hide show
  1. package/README.md +1 -2
  2. package/dist/index.cjs.js +72 -26
  3. package/dist/index.cjs.js.map +1 -1
  4. package/dist/index.esm.js +72 -26
  5. package/dist/index.esm.js.map +1 -1
  6. package/dist/styles.css +1 -1
  7. package/index.scss +1 -0
  8. package/package.json +65 -62
  9. package/src/components/AspectRatioBox/AspectRatioBox.scss +1 -1
  10. package/src/components/Badge/Badge.scss +17 -17
  11. package/src/components/Breadcrumbs/Breadcrumb/Breadcrumb.scss +5 -5
  12. package/src/components/Breadcrumbs/Breadcrumbs.scss +2 -2
  13. package/src/components/Breakpoint/Breakpoint.scss +9 -7
  14. package/src/components/Button/Button.scss +45 -44
  15. package/src/components/Checkbox/Checkbox.scss +11 -11
  16. package/src/components/Checkbox/Checkbox.tsx +1 -1
  17. package/src/components/Clickable/Clickable.scss +3 -3
  18. package/src/components/ColorSwatch/ColorSwatch.scss +9 -9
  19. package/src/components/ColorSwatch/ColorSwatch.tsx +2 -2
  20. package/src/components/Constrain/Constrain.scss +9 -8
  21. package/src/components/Constrain/ExceedConstrain.scss +7 -7
  22. package/src/components/ControlLink/ControlLink.scss +6 -6
  23. package/src/components/DefinitionList/DefinitionList.scss +5 -5
  24. package/src/components/Dialog/Dialog.scss +4 -4
  25. package/src/components/Divider/Divider.scss +5 -5
  26. package/src/components/Expandable/Expandable.scss +17 -17
  27. package/src/components/Field/Field.scss +7 -7
  28. package/src/components/Label/Label.scss +4 -4
  29. package/src/components/Loading/Loading.scss +4 -4
  30. package/src/components/LoadingBalls/LoadingBalls.scss +2 -2
  31. package/src/components/LoadingShapes/LoadingShapes.scss +2 -2
  32. package/src/components/Modal/Modal.scss +1 -1
  33. package/src/components/ModalOverlay/ModalOverlay.scss +6 -6
  34. package/src/components/Overlay/Overlay.scss +4 -4
  35. package/src/components/Paginator/Paginator.scss +10 -10
  36. package/src/components/PasswordInput/PasswordInput.scss +4 -4
  37. package/src/components/Popover/Popover.scss +9 -9
  38. package/src/components/Popover/Popover.tsx +6 -2
  39. package/src/components/PromoBanner/PromoBanner.scss +9 -9
  40. package/src/components/RadioButton/RadioButton.scss +14 -14
  41. package/src/components/SearchInput/SearchInput.scss +4 -4
  42. package/src/components/Select/MultiSelect.scss +14 -14
  43. package/src/components/Select/MultiSelect.tsx +1 -1
  44. package/src/components/Select/Select.scss +25 -25
  45. package/src/components/Select/Select.tsx +1 -1
  46. package/src/components/Select/SelectOption.scss +7 -7
  47. package/src/components/Select/SelectOption.tsx +1 -1
  48. package/src/components/Select/SelectOptions.scss +8 -8
  49. package/src/components/Select/SelectOptions.tsx +2 -2
  50. package/src/components/Select/useSelect.ts +1 -1
  51. package/src/components/SelectableButton/SelectableButton.scss +13 -13
  52. package/src/components/SlidingPane/SlidingPane.scss +7 -7
  53. package/src/components/Stack/Stack.scss +6 -4
  54. package/src/components/Tabs/Tab.scss +6 -6
  55. package/src/components/Tabs/TabList.scss +3 -3
  56. package/src/components/Tabs/TabPanels.scss +2 -2
  57. package/src/components/Tag/Tag.scss +8 -8
  58. package/src/components/Text/Text.scss +4 -3
  59. package/src/components/TextInput/TextInput.scss +2 -2
  60. package/src/components/Textarea/Textarea.scss +3 -3
  61. package/src/components/Toast/Toast.scss +6 -6
  62. package/src/components/VerticalDivider/VerticalDivider.scss +3 -3
  63. package/src/index.scss +3 -3
  64. package/src/mixins/_mixins.scss +7 -7
  65. package/src/mixins/font-smoothing/_font-smoothing.scss +0 -2
  66. package/src/mixins/font-smoothing/font-smoothing.stories.scss +3 -3
  67. package/src/mixins/global-styles/_global-styles.scss +6 -5
  68. package/src/mixins/input-styles/_input-styles.scss +14 -12
  69. package/src/mixins/overflow-scroll/_overflow-scroll.scss +0 -2
  70. package/src/mixins/overflow-scroll/overflow-scroll.stories.scss +3 -3
  71. package/src/mixins/stack/_stack.scss +3 -3
  72. package/src/mixins/stack/stack.stories.scss +3 -3
  73. package/src/mixins/thin-underline/_thin-underline.scss +0 -2
  74. package/src/mixins/thin-underline/thin-underline.stories.scss +2 -2
  75. package/src/mixins/visually-hidden/_visually-hidden.scss +0 -2
  76. package/src/mixins/visually-hidden/visually-hidden.stories.scss +2 -2
  77. package/src/utilities/States/State.scss +4 -4
  78. package/src/utilities/States/States.scss +2 -2
  79. package/src/utilities/States/StatesProps.scss +8 -8
@@ -78,7 +78,7 @@ export const useSelect = ({ value, defaultValue }: UseSelectProps) => {
78
78
  }, [handleKeyDown]);
79
79
 
80
80
  useUpdateEffect(() => {
81
- value && dispatch({ type: 'SELECT', payload: { value } });
81
+ if (value) dispatch({ type: 'SELECT', payload: { value } });
82
82
  }, [value]);
83
83
 
84
84
  return { state, dispatch, Mode, selectRef };
@@ -1,21 +1,21 @@
1
- @import '~om';
1
+ @use '~@moda/om';
2
2
 
3
3
  .SelectableButton {
4
4
  $self: &;
5
5
 
6
- @include text(body2);
6
+ @include om.text(body2);
7
7
  text-transform: uppercase;
8
8
  display: inline-flex;
9
9
  align-items: center;
10
10
  justify-content: center;
11
11
  text-align: center;
12
12
  max-width: 100%;
13
- padding: spacing(2, 3);
13
+ padding: om.spacing(2, 3);
14
14
  cursor: pointer;
15
15
  text-decoration: none;
16
16
  user-select: none;
17
- color: color(ink);
18
- border: 1px solid color(elephant);
17
+ color: om.color(ink);
18
+ border: 1px solid om.color(elephant);
19
19
  background-color: transparent;
20
20
  transition: background-color 200ms;
21
21
 
@@ -29,16 +29,16 @@
29
29
 
30
30
  &--hover,
31
31
  &:hover {
32
- color: color(ink);
33
- border-color: color(elephant);
34
- background-color: color(noise);
32
+ color: om.color(ink);
33
+ border-color: om.color(elephant);
34
+ background-color: om.color(noise);
35
35
  }
36
36
 
37
37
  &--selected {
38
38
  &,
39
39
  &:hover {
40
- color: color(ink);
41
- border-color: color(ink);
40
+ color: om.color(ink);
41
+ border-color: om.color(ink);
42
42
  background-color: transparent;
43
43
  }
44
44
  }
@@ -46,12 +46,12 @@
46
46
  &--unavailable {
47
47
  &,
48
48
  &:hover {
49
- color: color(elephant);
50
- border-color: color(elephant);
49
+ color: om.color(elephant);
50
+ border-color: om.color(elephant);
51
51
  background: linear-gradient(
52
52
  to bottom right,
53
53
  white calc(50% - 1px),
54
- color(elephant),
54
+ om.color(elephant),
55
55
  white calc(50% + 1px)
56
56
  );
57
57
  }
@@ -1,4 +1,4 @@
1
- @import '~om';
1
+ @use '~@moda/om';
2
2
 
3
3
  .SlidingPane {
4
4
  position: fixed;
@@ -8,7 +8,7 @@
8
8
  left: 0;
9
9
  right: 0;
10
10
  transition: all 500ms ease-out;
11
- background-color: color('snow');
11
+ background-color: om.color('snow');
12
12
  margin-left: 0;
13
13
 
14
14
  &--active {
@@ -17,9 +17,9 @@
17
17
  }
18
18
 
19
19
  &__top {
20
- padding: space(3);
21
- border-bottom: 1px solid color(elephant);
22
- box-shadow: 0px -1px 2px color(ink, 0.1);
20
+ padding: om.space(3);
21
+ border-bottom: 1px solid om.color(elephant);
22
+ box-shadow: 0px -1px 2px om.color(ink, 0.1);
23
23
  }
24
24
 
25
25
  &__close {
@@ -31,11 +31,11 @@
31
31
  }
32
32
 
33
33
  &__content {
34
- padding: space(4);
34
+ padding: om.space(4);
35
35
  }
36
36
 
37
37
  &__overlay {
38
- background-color: color(coal, 0.3);
38
+ background-color: om.color(coal, 0.3);
39
39
  top: 0;
40
40
  bottom: 0;
41
41
  left: 0;
@@ -1,12 +1,14 @@
1
- @import '~om';
1
+ @use 'sass:list';
2
+ @use 'sass:map';
3
+ @use '~@moda/om';
2
4
 
3
5
  .Stack {
4
- $scale: map-get($space, 'scale');
6
+ $scale: map.get(om.$space, 'scale');
5
7
  @each $direction in (horizontal, vertical) {
6
8
  @each $value in $scale {
7
- $i: (index($scale, $value) - 1);
9
+ $i: (list.index($scale, $value) - 1);
8
10
  &.Stack--#{$direction}-#{$i} {
9
- @include stack($i, $direction);
11
+ @include om.stack($i, $direction);
10
12
  }
11
13
  }
12
14
  }
@@ -1,17 +1,17 @@
1
- @import '~om';
1
+ @use '~@moda/om';
2
2
 
3
3
  .Tab {
4
- @include text(eyebrow);
4
+ @include om.text(eyebrow);
5
5
 
6
- padding: spacing(4, 0);
6
+ padding: om.spacing(4, 0);
7
7
  border-bottom: 2px solid transparent;
8
- color: color(cement);
8
+ color: om.color(cement);
9
9
  text-align: left;
10
10
  cursor: pointer;
11
11
 
12
12
  &--active {
13
- color: color(ink);
14
- border-bottom: 2px solid color(ink);
13
+ color: om.color(ink);
14
+ border-bottom: 2px solid om.color(ink);
15
15
  }
16
16
 
17
17
  &:active,
@@ -1,7 +1,7 @@
1
- @import '~om';
1
+ @use '~@moda/om';
2
2
 
3
3
  .TabList {
4
- @include stack(4, $direction: horizontal);
4
+ @include om.stack(4, $direction: horizontal);
5
5
 
6
- border-bottom: 1px solid color(elephant);
6
+ border-bottom: 1px solid om.color(elephant);
7
7
  }
@@ -1,5 +1,5 @@
1
- @import '~om';
1
+ @use '~@moda/om';
2
2
 
3
3
  .TabPanels {
4
- margin-top: space(4);
4
+ margin-top: om.space(4);
5
5
  }
@@ -1,26 +1,26 @@
1
- @import '~om';
1
+ @use '~@moda/om';
2
2
 
3
3
  .Tag {
4
- @include stack(2, $direction: horizontal);
5
- @include text(body1);
4
+ @include om.stack(2, $direction: horizontal);
5
+ @include om.text(body1);
6
6
 
7
7
  display: inline-flex;
8
8
  align-items: center;
9
- padding: spacing(2);
10
- border: 1px solid color(elephant);
9
+ padding: om.spacing(2);
10
+ border: 1px solid om.color(elephant);
11
11
  white-space: nowrap;
12
12
 
13
13
  &:hover,
14
14
  &:focus {
15
- border-color: color(ink);
15
+ border-color: om.color(ink);
16
16
  }
17
17
 
18
18
  &--disabled {
19
- color: color(fog);
19
+ color: om.color(fog);
20
20
 
21
21
  &:hover,
22
22
  &:focus {
23
- border-color: color(elephant);
23
+ border-color: om.color(elephant);
24
24
  }
25
25
  }
26
26
  }
@@ -1,10 +1,11 @@
1
- @import '~om';
1
+ @use 'sass:map';
2
+ @use '~@moda/om';
2
3
 
3
4
  .Text {
4
- $treatments: map-get($typography, 'text-treatments');
5
+ $treatments: map.get(om.$typography, 'text-treatments');
5
6
  @each $name, $_values in $treatments {
6
7
  &--#{$name} {
7
- @include text($name);
8
+ @include om.text($name);
8
9
  }
9
10
  }
10
11
 
@@ -1,5 +1,5 @@
1
- @import '~om';
1
+ @use '~@moda/om';
2
2
 
3
3
  .TextInput {
4
- @include input-styles();
4
+ @include om.input-styles();
5
5
  }
@@ -1,8 +1,8 @@
1
- @import '~om';
1
+ @use '~@moda/om';
2
2
 
3
3
  .Textarea {
4
- @include input-styles();
5
- @include text(body1);
4
+ @include om.input-styles();
5
+ @include om.text(body1);
6
6
 
7
7
  resize: none;
8
8
  }
@@ -1,18 +1,18 @@
1
- @import '~om';
1
+ @use '~@moda/om';
2
2
 
3
3
  .Toast {
4
- color: color('snow');
5
- padding: spacing(3);
4
+ color: om.color('snow');
5
+ padding: om.spacing(3);
6
6
 
7
7
  &--success {
8
- background-color: color(money-good);
8
+ background-color: om.color(money-good);
9
9
  }
10
10
 
11
11
  &--warning {
12
- background-color: color(burnt-orange);
12
+ background-color: om.color(burnt-orange);
13
13
  }
14
14
 
15
15
  &--error {
16
- background-color: color(code-red);
16
+ background-color: om.color(code-red);
17
17
  }
18
18
  }
@@ -1,10 +1,10 @@
1
- @import '~om';
1
+ @use '~@moda/om';
2
2
 
3
3
  .VerticalDivider {
4
- border-left: 1px solid color(ink);
4
+ border-left: 1px solid om.color(ink);
5
5
 
6
6
  &--double {
7
7
  width: 0.175rem;
8
- border-right: 1px solid color(ink);
8
+ border-right: 1px solid om.color(ink);
9
9
  }
10
10
  }
package/src/index.scss CHANGED
@@ -1,4 +1,4 @@
1
- @import '~@moda/tokens';
1
+ @forward '~@moda/tokens';
2
2
 
3
- @import './mixins/mixins';
4
- @import './functions/functions';
3
+ @forward './mixins/mixins';
4
+ @forward './functions/functions';
@@ -1,7 +1,7 @@
1
- @import 'stack/stack';
2
- @import 'font-smoothing/font-smoothing';
3
- @import 'global-styles/global-styles';
4
- @import 'input-styles/input-styles';
5
- @import 'visually-hidden/visually-hidden';
6
- @import 'overflow-scroll/overflow-scroll';
7
- @import 'thin-underline/thin-underline';
1
+ @forward 'stack/stack';
2
+ @forward 'font-smoothing/font-smoothing';
3
+ @forward 'global-styles/global-styles';
4
+ @forward 'input-styles/input-styles';
5
+ @forward 'visually-hidden/visually-hidden';
6
+ @forward 'overflow-scroll/overflow-scroll';
7
+ @forward 'thin-underline/thin-underline';
@@ -1,5 +1,3 @@
1
- @import '~@moda/tokens';
2
-
3
1
  @mixin font-smoothing($value: antialiased) {
4
2
  @if $value == antialiased {
5
3
  -webkit-font-smoothing: antialiased;
@@ -1,11 +1,11 @@
1
- @import './font-smoothing';
1
+ @use 'font-smoothing';
2
2
 
3
3
  .Story.font-smoothing {
4
4
  &--antialiased {
5
- @include font-smoothing(antialiased);
5
+ @include font-smoothing.font-smoothing(antialiased);
6
6
  }
7
7
 
8
8
  &--subpixel {
9
- @include font-smoothing(subpixel);
9
+ @include font-smoothing.font-smoothing(subpixel);
10
10
  }
11
11
  }
@@ -1,10 +1,11 @@
1
- @import '~@moda/tokens';
2
- @import '../font-smoothing/font-smoothing';
1
+ @use 'sass:map';
2
+ @use '~@moda/tokens';
3
+ @use '../font-smoothing/font-smoothing';
3
4
 
4
5
  @mixin global-styles() {
5
6
  html {
6
7
  box-sizing: border-box;
7
- font-size: map-get($typography, 'root-font-size');
8
+ font-size: map.get(tokens.$typography, 'root-font-size');
8
9
  }
9
10
 
10
11
  *,
@@ -44,7 +45,7 @@
44
45
 
45
46
  body,
46
47
  input {
47
- @include font-smoothing(antialiased);
48
+ @include font-smoothing.font-smoothing(antialiased);
48
49
  }
49
50
 
50
51
  // :focus-visible polyfill
@@ -54,6 +55,6 @@
54
55
  }
55
56
  // custom outlines on :focus-visible
56
57
  .focus-visible {
57
- outline: 2px solid color(burnt-orange);
58
+ outline: 2px solid tokens.color(burnt-orange);
58
59
  }
59
60
  }
@@ -1,17 +1,19 @@
1
+ @use '~@moda/tokens';
2
+
1
3
  @mixin input-styles() {
2
- @include text(body1);
4
+ @include tokens.text(body1);
3
5
 
4
6
  //ios devices zoom in if inputs are smaller than 16px
5
- @include breakpoint(sm, $prop: max-width) {
6
- @include text(h6);
7
+ @include tokens.breakpoint(sm, $prop: max-width) {
8
+ @include tokens.text(h6);
7
9
  }
8
10
 
9
11
  appearance: none;
10
12
  line-height: 1;
11
13
  width: 100%;
12
- padding: spacing(3, 4);
13
- border: 1px solid color(elephant);
14
- background-color: color('snow');
14
+ padding: tokens.spacing(3, 4);
15
+ border: 1px solid tokens.color(elephant);
16
+ background-color: tokens.color('snow');
15
17
  border-radius: 0;
16
18
 
17
19
  &::placeholder {
@@ -21,24 +23,24 @@
21
23
  &--focus,
22
24
  &:focus {
23
25
  outline: none;
24
- border-color: color(ink);
26
+ border-color: tokens.color(ink);
25
27
  }
26
28
 
27
29
  &--disabled,
28
30
  &:disabled {
29
- color: color(elephant);
30
- border-color: color(elephant);
31
- background-color: color(noise);
31
+ color: tokens.color(elephant);
32
+ border-color: tokens.color(elephant);
33
+ background-color: tokens.color(noise);
32
34
  }
33
35
 
34
36
  &--valid {
35
- border-color: color(money-good);
37
+ border-color: tokens.color(money-good);
36
38
  }
37
39
 
38
40
  &--error {
39
41
  &,
40
42
  &:focus {
41
- border-color: color(code-red);
43
+ border-color: tokens.color(code-red);
42
44
  }
43
45
  }
44
46
  }
@@ -1,5 +1,3 @@
1
- @import '~@moda/tokens';
2
-
3
1
  @mixin overflow-scroll($direction: y) {
4
2
  @if $direction == x {
5
3
  overflow-x: auto;
@@ -1,9 +1,9 @@
1
- @import './overflow-scroll';
1
+ @use 'overflow-scroll';
2
2
 
3
3
  .Story.overflow-scroll {
4
- @include overflow-scroll();
4
+ @include overflow-scroll.overflow-scroll();
5
5
  }
6
6
 
7
7
  .Story.overflow-scroll-x {
8
- @include overflow-scroll(x);
8
+ @include overflow-scroll.overflow-scroll(x);
9
9
  }
@@ -1,4 +1,4 @@
1
- @import '~@moda/tokens';
1
+ @use '~@moda/tokens';
2
2
 
3
3
  @mixin stack($index: 4, $direction: vertical) {
4
4
  display: flex;
@@ -13,7 +13,7 @@
13
13
  }
14
14
 
15
15
  > * + * {
16
- margin-top: space($index);
16
+ margin-top: tokens.space($index);
17
17
  }
18
18
 
19
19
  > .Overlay {
@@ -30,7 +30,7 @@
30
30
  }
31
31
 
32
32
  > * + * {
33
- margin-left: space($index);
33
+ margin-left: tokens.space($index);
34
34
  }
35
35
 
36
36
  > .Overlay {
@@ -1,13 +1,13 @@
1
- @import './stack';
1
+ @use './stack';
2
2
 
3
3
  .Story.Mixins.stack {
4
- @include stack(4);
4
+ @include stack.stack(4);
5
5
 
6
6
  > * {
7
7
  background-color: yellow;
8
8
  }
9
9
 
10
10
  &--horizontal {
11
- @include stack(6, $direction: horizontal);
11
+ @include stack.stack(6, $direction: horizontal);
12
12
  }
13
13
  }
@@ -1,5 +1,3 @@
1
- @import '~@moda/tokens';
2
-
3
1
  @mixin thin-underline() {
4
2
  position: relative;
5
3
  text-decoration: none;
@@ -1,7 +1,7 @@
1
- @import './thin-underline';
1
+ @use './thin-underline';
2
2
 
3
3
  .Story.thin-underline {
4
- @include thin-underline();
4
+ @include thin-underline.thin-underline();
5
5
 
6
6
  display: inline-block;
7
7
  }
@@ -1,5 +1,3 @@
1
- @import '~@moda/tokens';
2
-
3
1
  @mixin visually-hidden() {
4
2
  border: 0;
5
3
  clip: rect(0 0 0 0);
@@ -1,5 +1,5 @@
1
- @import './visually-hidden';
1
+ @use './visually-hidden';
2
2
 
3
3
  .Story.visually-hidden {
4
- @include visually-hidden();
4
+ @include visually-hidden.visually-hidden();
5
5
  }
@@ -1,11 +1,11 @@
1
- @import '~om';
1
+ @use '~@moda/om';
2
2
 
3
3
  .State {
4
- border: 1px dotted color(fog);
5
- padding: spacing(2);
4
+ border: 1px dotted om.color(fog);
5
+ padding: om.spacing(2);
6
6
 
7
7
  &__props {
8
8
  display: block;
9
- margin-top: space(2);
9
+ margin-top: om.space(2);
10
10
  }
11
11
  }
@@ -1,5 +1,5 @@
1
- @import '~om';
1
+ @use '~@moda/om';
2
2
 
3
3
  .States {
4
- @include stack(6);
4
+ @include om.stack(6);
5
5
  }
@@ -1,24 +1,24 @@
1
- @import '~om';
1
+ @use '~@moda/om';
2
2
 
3
3
  .StatesProps {
4
- @include text(body1, $font: code);
4
+ @include om.text(body1, $font: code);
5
5
 
6
- padding-top: space(2);
7
- color: color(fog);
8
- border-top: 1px dotted color(elephant);
6
+ padding-top: om.space(2);
7
+ color: om.color(fog);
8
+ border-top: 1px dotted om.color(elephant);
9
9
 
10
10
  > strong {
11
11
  text-decoration: underline;
12
- color: color(ink);
12
+ color: om.color(ink);
13
13
  }
14
14
 
15
15
  &::before {
16
16
  content: '<';
17
- color: color(elephant);
17
+ color: om.color(elephant);
18
18
  }
19
19
 
20
20
  &::after {
21
21
  content: '/>';
22
- color: color(elephant);
22
+ color: om.color(elephant);
23
23
  }
24
24
  }