draft-components 0.61.0 → 0.63.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 (80) hide show
  1. package/components/calendar/calendar-day.d.ts +2 -1
  2. package/components/calendar/calendar-day.js +2 -2
  3. package/components/calendar/calendar.d.ts +4 -2
  4. package/components/calendar/calendar.js +6 -2
  5. package/components/date-picker/date-picker.d.ts +3 -1
  6. package/components/date-picker/date-picker.js +6 -3
  7. package/components/date-picker-popover/date-picker-popover.d.ts +18 -0
  8. package/components/date-picker-popover/date-picker-popover.js +35 -0
  9. package/components/date-picker-popover/index.d.ts +1 -0
  10. package/components/date-picker-popover/index.js +13 -0
  11. package/components/date-preset-picker-popover/date-preset-picker-popover.js +2 -1
  12. package/components/date-range-picker/date-range-picker.js +2 -2
  13. package/components/datetime-input/date-components.js +7 -12
  14. package/components/datetime-input/datetime-input.js +1 -1
  15. package/components/dialog/dialog.js +2 -1
  16. package/components/index.d.ts +1 -0
  17. package/components/index.js +1 -0
  18. package/components/inline-message/inline-message.js +2 -1
  19. package/components/number-input/number-input.js +2 -1
  20. package/components/slider/slider.d.ts +6 -5
  21. package/components/slider/slider.js +26 -8
  22. package/components/table/table-cell.d.ts +4 -2
  23. package/components/table/table-cell.js +2 -2
  24. package/components/table/table-sort-button.js +2 -1
  25. package/components/tabs/tabs-state.js +2 -1
  26. package/components/toaster/toaster.js +1 -1
  27. package/css/draft-components.css +2 -2
  28. package/hooks/use-capture-focus.js +6 -4
  29. package/hooks/use-close-on-click-outside.js +3 -2
  30. package/hooks/use-close-on-esc-press.js +2 -1
  31. package/lib/plain-date-range.js +6 -8
  32. package/lib/plain-date.js +7 -8
  33. package/lib/stack.js +0 -1
  34. package/lib/util.js +1 -1
  35. package/package.json +1 -1
  36. package/scss/components/_actions-group.scss +5 -3
  37. package/scss/components/_alert.scss +34 -32
  38. package/scss/components/_avatar.scss +20 -18
  39. package/scss/components/_box.scss +49 -47
  40. package/scss/components/_breadcrumbs.scss +6 -4
  41. package/scss/components/_button.scss +20 -18
  42. package/scss/components/_calendar.scss +21 -11
  43. package/scss/components/_checkbox.scss +4 -2
  44. package/scss/components/_date-picker.scss +4 -2
  45. package/scss/components/_date-preset-picker-popover.scss +11 -9
  46. package/scss/components/_datetime-input.scss +11 -9
  47. package/scss/components/_dialog.scss +9 -7
  48. package/scss/components/_form-field.scss +4 -2
  49. package/scss/components/_formatted-content.scss +23 -21
  50. package/scss/components/_inline-message.scss +3 -1
  51. package/scss/components/_input.scss +11 -9
  52. package/scss/components/_label.scss +5 -2
  53. package/scss/components/_loading-view.scss +20 -18
  54. package/scss/components/_non-ideal-state-view.scss +27 -25
  55. package/scss/components/_number-input.scss +4 -2
  56. package/scss/components/_radio-button.scss +4 -2
  57. package/scss/components/_radio-group.scss +17 -14
  58. package/scss/components/_scope-buttons.scss +4 -2
  59. package/scss/components/_secret.scss +4 -2
  60. package/scss/components/_segmented-control.scss +7 -5
  61. package/scss/components/_select.scss +9 -7
  62. package/scss/components/_selection-control.scss +11 -9
  63. package/scss/components/_slider.scss +88 -98
  64. package/scss/components/_switch.scss +5 -3
  65. package/scss/components/_table.scss +19 -16
  66. package/scss/components/_tabs.scss +13 -12
  67. package/scss/components/_tag.scss +37 -35
  68. package/scss/components/_text-input.scss +3 -1
  69. package/scss/components/_toast.scss +25 -23
  70. package/scss/components/_toaster.scss +8 -6
  71. package/scss/components/_tooltip.scss +6 -4
  72. package/scss/components/_vertical-navigation.scss +16 -14
  73. package/scss/draft-components-utils.scss +0 -1
  74. package/scss/draft-components.scss +0 -1
  75. package/scss/themes/_default-theme.scss +162 -156
  76. package/scss/utils/_borders.scss +14 -12
  77. package/scss/utils/_gap.scss +14 -12
  78. package/scss/utils/_margin.scss +14 -12
  79. package/scss/utils/_padding.scss +14 -12
  80. package/scss/.DS_Store +0 -0
@@ -1,32 +1,34 @@
1
+ @use '../abstracts' as dc;
2
+
1
3
  .dc-tag {
2
- --dc-tag-height: #{px-to-rem(26px)};
3
- --dc-tag-color: #{$gray-700};
4
- --dc-tag-fill-color: #{$gray-200};
4
+ --dc-tag-height: #{dc.px-to-rem(26px)};
5
+ --dc-tag-color: #{dc.$gray-700};
6
+ --dc-tag-fill-color: #{dc.$gray-200};
5
7
  }
6
8
 
7
9
  .dc-tag {
8
10
  font-family: var(--dc-font-base);
9
- font-size: $font-size-sm;
10
- font-weight: $font-weight-normal;
11
+ font-size: dc.$font-size-sm;
12
+ font-weight: dc.$font-weight-normal;
11
13
  line-height: 1;
12
14
  display: inline-flex;
13
15
  align-items: center;
14
16
  min-height: var(--dc-tag-height);
15
- padding: 0 $gap-3x;
17
+ padding: 0 dc.$gap-3x;
16
18
  color: var(--dc-tag-color);
17
- border-radius: $border-radius-sm;
19
+ border-radius: dc.$border-radius-sm;
18
20
  background: var(--dc-tag-fill-color);
19
21
  }
20
22
 
21
23
  .dc-tag_size_sm {
22
- font-size: $font-size-xs;
23
- --dc-tag-height: #{px-to-rem(24px)};
24
+ font-size: dc.$font-size-xs;
25
+ --dc-tag-height: #{dc.px-to-rem(24px)};
24
26
  }
25
27
 
26
28
  .dc-tag_size_lg {
27
- font-size: $font-size-base;
28
- border-radius: $border-radius-md;
29
- --dc-tag-height: #{px-to-rem(28px)};
29
+ font-size: dc.$font-size-base;
30
+ border-radius: dc.$border-radius-md;
31
+ --dc-tag-height: #{dc.px-to-rem(28px)};
30
32
  }
31
33
 
32
34
  .dc-tag_rounded {
@@ -36,7 +38,7 @@
36
38
  }
37
39
 
38
40
  .dc-tag__icon {
39
- margin-right: px-to-em(6px, 14px);
41
+ margin-right: dc.px-to-em(6px, 14px);
40
42
  }
41
43
 
42
44
  .dc-tag__text {
@@ -45,16 +47,16 @@
45
47
  .dc-tag__btn {
46
48
  display: inline-flex;
47
49
  box-sizing: border-box;
48
- margin-left: px-to-em(6px, 14px);
50
+ margin-left: dc.px-to-em(6px, 14px);
49
51
  padding: 0;
50
52
  cursor: pointer;
51
- transition: $transition-quick;
53
+ transition: dc.$transition-quick;
52
54
  transition-property: opacity;
53
55
  transform: translateY(0.05em);
54
- opacity: $opacity-60;
56
+ opacity: dc.$opacity-60;
55
57
  color: inherit;
56
58
  border: none;
57
- border-radius: px-to-rem(1px);
59
+ border-radius: dc.px-to-rem(1px);
58
60
  background: none;
59
61
  appearance: none;
60
62
  }
@@ -65,51 +67,51 @@
65
67
  }
66
68
 
67
69
  .dc-tag__btn:enabled:hover {
68
- opacity: $opacity-100;
70
+ opacity: dc.$opacity-100;
69
71
  }
70
72
 
71
73
  .dc-tag:focus {
72
- opacity: $opacity-100;
74
+ opacity: dc.$opacity-100;
73
75
  outline: none;
74
76
  box-shadow: 0 0 0 2px var(--dc-tag-fill-color), 0 0 0 4px currentColor;
75
77
  }
76
78
 
77
79
  .dc-tag_color_blue {
78
- --dc-tag-color: #{$blue-800};
79
- --dc-tag-fill-color: #{$blue-100};
80
+ --dc-tag-color: #{dc.$blue-800};
81
+ --dc-tag-fill-color: #{dc.$blue-100};
80
82
  }
81
83
 
82
84
  .dc-tag_color_cyan {
83
- --dc-tag-color: #{$cyan-900};
84
- --dc-tag-fill-color: #{$cyan-100};
85
+ --dc-tag-color: #{dc.$cyan-900};
86
+ --dc-tag-fill-color: #{dc.$cyan-100};
85
87
  }
86
88
 
87
89
  .dc-tag_color_red {
88
- --dc-tag-color: #{$red-900};
89
- --dc-tag-fill-color: #{$red-100};
90
+ --dc-tag-color: #{dc.$red-900};
91
+ --dc-tag-fill-color: #{dc.$red-100};
90
92
  }
91
93
 
92
94
  .dc-tag_color_green {
93
- --dc-tag-color: #{$green-800};
94
- --dc-tag-fill-color: #{$green-200};
95
+ --dc-tag-color: #{dc.$green-800};
96
+ --dc-tag-fill-color: #{dc.$green-200};
95
97
  }
96
98
 
97
99
  .dc-tag_color_lime {
98
- --dc-tag-color: #{$lime-900};
99
- --dc-tag-fill-color: #{$lime-100};
100
+ --dc-tag-color: #{dc.$lime-900};
101
+ --dc-tag-fill-color: #{dc.$lime-100};
100
102
  }
101
103
 
102
104
  .dc-tag_color_indigo {
103
- --dc-tag-color: #{$indigo-900};
104
- --dc-tag-fill-color: #{$indigo-100};
105
+ --dc-tag-color: #{dc.$indigo-900};
106
+ --dc-tag-fill-color: #{dc.$indigo-100};
105
107
  }
106
108
 
107
109
  .dc-tag_color_yellow {
108
- --dc-tag-color: #{$yellow-900};
109
- --dc-tag-fill-color: #{$yellow-100};
110
+ --dc-tag-color: #{dc.$yellow-900};
111
+ --dc-tag-fill-color: #{dc.$yellow-100};
110
112
  }
111
113
 
112
114
  .dc-tag_color_orange {
113
- --dc-tag-color: #{$orange-900};
114
- --dc-tag-fill-color: #{$orange-100};
115
+ --dc-tag-color: #{dc.$orange-900};
116
+ --dc-tag-fill-color: #{dc.$orange-100};
115
117
  }
@@ -1,3 +1,5 @@
1
+ @use '../abstracts' as dc;
2
+
1
3
  .dc-text-input {
2
4
  display: inline-flex;
3
5
  align-items: center;
@@ -18,7 +20,7 @@
18
20
  }
19
21
 
20
22
  .dc-text-input__native-input::placeholder {
21
- opacity: $opacity-40;
23
+ opacity: dc.$opacity-40;
22
24
  color: inherit;
23
25
  }
24
26
 
@@ -1,39 +1,41 @@
1
+ @use '../abstracts' as dc;
2
+
1
3
  .dc-toast-btn {
2
- font-size: $font-size-sm;
3
- padding: $gap-1x $gap-3x;
4
+ font-size: dc.$font-size-sm;
5
+ padding: dc.$gap-1x dc.$gap-3x;
4
6
  cursor: pointer;
5
- transition: $transition-quick;
7
+ transition: dc.$transition-quick;
6
8
  transition-property: opacity;
7
- opacity: $opacity-65;
9
+ opacity: dc.$opacity-65;
8
10
  color: var(--dc-toast-btn-text-color);
9
11
  border: none;
10
- border-radius: $border-radius-md;
12
+ border-radius: dc.$border-radius-md;
11
13
  background: var(--dc-toast-btn-bg);
12
14
  appearance: none;
13
15
 
14
16
  &:hover {
15
- opacity: $opacity-100;
17
+ opacity: dc.$opacity-100;
16
18
  }
17
19
 
18
20
  &:focus {
19
- opacity: $opacity-100;
21
+ opacity: dc.$opacity-100;
20
22
  outline: none;
21
- box-shadow: 0 0 0 0.125rem $gray-500;
23
+ box-shadow: 0 0 0 0.125rem dc.$gray-500;
22
24
  }
23
25
  }
24
26
 
25
27
  .dc-toast {
26
28
  font-family: var(--dc-font-base);
27
- font-size: $font-size-sm;
29
+ font-size: dc.$font-size-sm;
28
30
  position: relative;
29
31
  display: inline-flex;
30
32
  box-sizing: border-box;
31
33
  width: auto;
32
- min-width: px-to-rem(256px);
33
- max-width: px-to-rem(600px);
34
+ min-width: dc.px-to-rem(256px);
35
+ max-width: dc.px-to-rem(600px);
34
36
  text-align: left;
35
37
  color: var(--dc-toast-text-color);
36
- border-radius: $border-radius-xl;
38
+ border-radius: dc.$border-radius-xl;
37
39
  background: var(--dc-toast-bg);
38
40
  }
39
41
 
@@ -50,45 +52,45 @@
50
52
 
51
53
  .dc-toast__body {
52
54
  flex: auto;
53
- padding: $gap-4x;
55
+ padding: dc.$gap-4x;
54
56
  }
55
57
 
56
58
  .dc-toast__btns {
57
59
  flex: none;
58
60
  flex-direction: column;
59
- padding: $gap-1x;
61
+ padding: dc.$gap-1x;
60
62
  }
61
63
 
62
64
  .dc-toast__btns > * + * {
63
- margin-top: $gap-1x;
65
+ margin-top: dc.$gap-1x;
64
66
  }
65
67
 
66
68
  .dc-toast__icon {
67
- margin-top: px-to-rem(2px);
68
- margin-right: $gap-4x;
69
+ margin-top: dc.px-to-rem(2px);
70
+ margin-right: dc.$gap-4x;
69
71
  }
70
72
 
71
73
  .dc-toast_appearance_error .dc-toast__icon {
72
- color: $red-500;
74
+ color: dc.$red-500;
73
75
  }
74
76
 
75
77
  .dc-toast_appearance_warning .dc-toast__icon {
76
- color: $orange-500;
78
+ color: dc.$orange-500;
77
79
  }
78
80
 
79
81
  .dc-toast_appearance_success .dc-toast__icon {
80
- color: $green-400;
82
+ color: dc.$green-400;
81
83
  }
82
84
 
83
85
  .dc-toast_appearance_info .dc-toast__icon {
84
- color: $blue-400;
86
+ color: dc.$blue-400;
85
87
  }
86
88
 
87
89
  .dc-toast__message,
88
90
  .dc-toast__informative-text {
89
91
  font-size: inherit;
90
- font-weight: $font-weight-normal;
91
- line-height: $leading-normal;
92
+ font-weight: dc.$font-weight-normal;
93
+ line-height: dc.$leading-normal;
92
94
  margin: 0;
93
95
  }
94
96
 
@@ -1,8 +1,10 @@
1
+ @use '../abstracts' as dc;
2
+
1
3
  .toaster {
2
4
  position: fixed;
3
- z-index: $zindex-toast;
4
- right: $gap-2x;
5
- left: $gap-2x;
5
+ z-index: dc.$zindex-toast;
6
+ right: dc.$gap-2x;
7
+ left: dc.$gap-2x;
6
8
  box-sizing: border-box;
7
9
  margin: 0;
8
10
  padding: 0;
@@ -13,13 +15,13 @@
13
15
  .toaster_position_top-left,
14
16
  .toaster_position_top-center,
15
17
  .toaster_position_top-right {
16
- top: $gap-2x;
18
+ top: dc.$gap-2x;
17
19
  }
18
20
 
19
21
  .toaster_position_bottom-left,
20
22
  .toaster_position_bottom-center,
21
23
  .toaster_position_bottom-right {
22
- bottom: $gap-2x;
24
+ bottom: dc.$gap-2x;
23
25
  }
24
26
 
25
27
  .toaster_position_top-left > *,
@@ -48,7 +50,7 @@
48
50
  .toaster__item {
49
51
  animation: 250ms ease forwards;
50
52
  pointer-events: all;
51
- box-shadow: 0 0 0 1px $gray-600, $shadow-lg;
53
+ box-shadow: 0 0 0 1px dc.$gray-600, dc.$shadow-lg;
52
54
  }
53
55
 
54
56
  @keyframes dc-show-toast-from-top {
@@ -1,13 +1,15 @@
1
+ @use '../abstracts' as dc;
2
+
1
3
  .dc-tooltip {
2
4
  font-family: var(--dc-font-base);
3
- font-size: $font-size-sm;
4
- line-height: $leading-normal;
5
+ font-size: dc.$font-size-sm;
6
+ line-height: dc.$leading-normal;
5
7
  display: inline-block;
6
8
  box-sizing: border-box;
7
9
  width: auto;
8
10
  max-width: 18rem;
9
- padding: $gap-1x $gap-2x;
11
+ padding: dc.$gap-1x dc.$gap-2x;
10
12
  color: var(--dc-tooltip-text-color);
11
- border-radius: $border-radius-sm;
13
+ border-radius: dc.$border-radius-sm;
12
14
  background: var(--dc-tooltip-bg-color);
13
15
  }
@@ -1,12 +1,14 @@
1
+ @use '../abstracts' as dc;
2
+
1
3
  .dc-vertical-nav {
2
4
  font-family: var(--dc-font-base);
3
5
  }
4
6
 
5
7
  .dc-vertical-nav__header {
6
- font-size: $font-size-xs;
7
- font-weight: $font-weight-medium;
8
- margin-bottom: $gap-2x;
9
- padding-left: $gap-2x;
8
+ font-size: dc.$font-size-xs;
9
+ font-weight: dc.$font-weight-medium;
10
+ margin-bottom: dc.$gap-2x;
11
+ padding-left: dc.$gap-2x;
10
12
  letter-spacing: 0.075em;
11
13
  text-transform: uppercase;
12
14
  color: var(--dc-secondary-text-color);
@@ -19,41 +21,41 @@
19
21
  }
20
22
 
21
23
  .dc-vertical-nav__items > * + * {
22
- margin-top: $gap-1x;
24
+ margin-top: dc.$gap-1x;
23
25
  }
24
26
 
25
27
  .dc-vertical-nav-item {
26
- font-size: $font-size-base;
28
+ font-size: dc.$font-size-base;
27
29
  display: flex;
28
30
  align-items: center;
29
31
  box-sizing: border-box;
30
- height: px-to-rem(36px);
31
- padding: 0 $gap-2x;
32
+ height: dc.px-to-rem(36px);
33
+ padding: 0 dc.$gap-2x;
32
34
  cursor: default;
33
35
  user-select: none;
34
36
  text-decoration: none;
35
37
  color: var(--dc-secondary-text-color);
36
- border-radius: $border-radius-sm;
38
+ border-radius: dc.$border-radius-sm;
37
39
  }
38
40
 
39
41
  .dc-vertical-nav-item:focus {
40
42
  outline: none;
41
- @include focus-ring;
43
+ @include dc.focus-ring;
42
44
  }
43
45
 
44
46
  .dc-vertical-nav-item:hover {
45
- background: rgba($black, $opacity-5);
47
+ background: rgba(dc.$black, dc.$opacity-5);
46
48
  }
47
49
 
48
50
  .dc-vertical-nav-item_selected {
49
51
  color: var(--dc-primary-text-color);
50
- background: rgba($black, $opacity-5);
52
+ background: rgba(dc.$black, dc.$opacity-5);
51
53
  }
52
54
 
53
55
  .dc-vertical-nav-item__icon {
54
56
  display: inline-flex;
55
57
  flex: none;
56
- padding-right: $gap-2x;
58
+ padding-right: dc.$gap-2x;
57
59
  }
58
60
 
59
61
  .dc-vertical-nav-item__content {
@@ -67,5 +69,5 @@
67
69
  .dc-vertical-nav-item__badge {
68
70
  display: inline-flex;
69
71
  flex: none;
70
- padding-left: $gap-1x;
72
+ padding-left: dc.$gap-1x;
71
73
  }
@@ -1,4 +1,3 @@
1
- @import 'abstracts/variables';
2
1
  @import 'utils/box-model';
3
2
  @import 'utils/flexbox';
4
3
  @import 'utils/margin';
@@ -1,4 +1,3 @@
1
- @import 'abstracts';
2
1
  @import 'themes/default-theme';
3
2
  @import 'base';
4
3
  @import 'components';