@carbon/ibm-products 1.50.0 → 1.52.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (101) hide show
  1. package/README.md +10 -5
  2. package/css/index-full-carbon.css +131 -82
  3. package/css/index-full-carbon.css.map +1 -1
  4. package/css/index-full-carbon.min.css +2 -2
  5. package/css/index-full-carbon.min.css.map +1 -1
  6. package/css/index-without-carbon-released-only.css +38 -11
  7. package/css/index-without-carbon-released-only.css.map +1 -1
  8. package/css/index-without-carbon-released-only.min.css +1 -1
  9. package/css/index-without-carbon-released-only.min.css.map +1 -1
  10. package/css/index-without-carbon.css +131 -82
  11. package/css/index-without-carbon.css.map +1 -1
  12. package/css/index-without-carbon.min.css +2 -2
  13. package/css/index-without-carbon.min.css.map +1 -1
  14. package/css/index.css +131 -82
  15. package/css/index.css.map +1 -1
  16. package/css/index.min.css +2 -2
  17. package/css/index.min.css.map +1 -1
  18. package/es/components/AboutModal/AboutModal.js +3 -4
  19. package/es/components/ActionBar/ActionBar.js +9 -18
  20. package/es/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +8 -13
  21. package/es/components/ButtonSetWithOverflow/ButtonSetWithOverflow.js +7 -11
  22. package/es/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +8 -8
  23. package/es/components/Datagrid/Datagrid/DatagridToolbar.js +5 -5
  24. package/es/components/Datagrid/Datagrid/DatagridVirtualBody.js +3 -4
  25. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +17 -3
  26. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +17 -2
  27. package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +8 -4
  28. package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useInitialStateFromFilters.js +2 -1
  29. package/es/components/Datagrid/Datagrid/addons/Filtering/utils.js +14 -0
  30. package/es/components/Datagrid/index.js +1 -0
  31. package/es/components/Datagrid/useActionsColumn.js +10 -7
  32. package/es/components/Datagrid/useCustomizeColumns.js +5 -1
  33. package/es/components/Datagrid/useEditableCell.js +12 -0
  34. package/es/components/Datagrid/useExpandedRow.js +11 -7
  35. package/es/components/Datagrid/useFiltering.js +15 -10
  36. package/es/components/Datagrid/useInlineEdit.js +17 -8
  37. package/es/components/Datagrid/useNestedRows.js +10 -6
  38. package/es/components/Datagrid/useOnRowClick.js +9 -1
  39. package/es/components/Datagrid/useSelectRows.js +2 -0
  40. package/es/components/EditInPlace/EditInPlace.js +43 -0
  41. package/es/components/EditInPlace/index.js +8 -0
  42. package/es/components/ExampleComponent/ExampleComponent.js +32 -4
  43. package/es/components/ExampleComponent/useExample.js +49 -0
  44. package/es/components/InlineEdit/InlineEdit.js +5 -1
  45. package/es/components/InlineEditV1/InlineEditV1.js +7 -2
  46. package/es/components/InlineEditV2/InlineEditV2.js +51 -15
  47. package/es/components/NonLinearReading/NonLinearReading.js +7 -7
  48. package/es/components/PageHeader/PageHeader.js +28 -31
  49. package/es/components/SidePanel/SidePanel.js +25 -26
  50. package/es/components/TagSet/TagSet.js +5 -7
  51. package/es/components/Tearsheet/TearsheetShell.js +4 -6
  52. package/es/components/index.js +2 -1
  53. package/es/global/js/hooks/useResizeObserver.js +74 -0
  54. package/es/global/js/package-settings.js +35 -4
  55. package/es/global/js/utils/test-helper.js +34 -3
  56. package/es/settings.js +40 -29
  57. package/lib/components/AboutModal/AboutModal.js +3 -4
  58. package/lib/components/ActionBar/ActionBar.js +9 -18
  59. package/lib/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +8 -13
  60. package/lib/components/ButtonSetWithOverflow/ButtonSetWithOverflow.js +7 -11
  61. package/lib/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +2 -1
  62. package/lib/components/Datagrid/Datagrid/DatagridToolbar.js +4 -4
  63. package/lib/components/Datagrid/Datagrid/DatagridVirtualBody.js +3 -4
  64. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +17 -3
  65. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +17 -2
  66. package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +8 -4
  67. package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useInitialStateFromFilters.js +2 -1
  68. package/lib/components/Datagrid/Datagrid/addons/Filtering/utils.js +15 -0
  69. package/lib/components/Datagrid/index.js +7 -0
  70. package/lib/components/Datagrid/useActionsColumn.js +7 -1
  71. package/lib/components/Datagrid/useCustomizeColumns.js +4 -0
  72. package/lib/components/Datagrid/useEditableCell.js +20 -0
  73. package/lib/components/Datagrid/useExpandedRow.js +4 -0
  74. package/lib/components/Datagrid/useFiltering.js +8 -2
  75. package/lib/components/Datagrid/useInlineEdit.js +19 -8
  76. package/lib/components/Datagrid/useNestedRows.js +9 -6
  77. package/lib/components/Datagrid/useOnRowClick.js +9 -1
  78. package/lib/components/Datagrid/useSelectRows.js +2 -0
  79. package/lib/components/EditInPlace/EditInPlace.js +46 -0
  80. package/lib/components/EditInPlace/index.js +12 -0
  81. package/lib/components/ExampleComponent/ExampleComponent.js +35 -4
  82. package/lib/components/ExampleComponent/useExample.js +58 -0
  83. package/lib/components/InlineEdit/InlineEdit.js +5 -1
  84. package/lib/components/InlineEditV1/InlineEditV1.js +7 -2
  85. package/lib/components/InlineEditV2/InlineEditV2.js +53 -16
  86. package/lib/components/NonLinearReading/NonLinearReading.js +6 -6
  87. package/lib/components/PageHeader/PageHeader.js +28 -31
  88. package/lib/components/SidePanel/SidePanel.js +25 -26
  89. package/lib/components/TagSet/TagSet.js +5 -7
  90. package/lib/components/Tearsheet/TearsheetShell.js +4 -6
  91. package/lib/components/index.js +13 -0
  92. package/lib/global/js/hooks/useResizeObserver.js +83 -0
  93. package/lib/global/js/package-settings.js +34 -3
  94. package/lib/global/js/utils/test-helper.js +37 -5
  95. package/lib/settings.js +41 -30
  96. package/package.json +2 -3
  97. package/scss/components/Datagrid/styles/_useSelectAllToggle.scss +10 -7
  98. package/scss/components/InlineEditV2/_inline-edit-v2.scss +52 -11
  99. package/scss/components/InlineEditV2/_storybook-styles.scss +9 -2
  100. package/scss/components/NonLinearReading/_non-linear-reading.scss +76 -67
  101. package/scss/components/NonLinearReading/_storybook-styles.scss +16 -0
@@ -15,6 +15,8 @@
15
15
  $carbon-input: #{$carbon-prefix}--text-input;
16
16
 
17
17
  .#{$block-class} {
18
+ --#{$block-class}--size: #{$spacing-07};
19
+
18
20
  display: flex;
19
21
  align-items: center;
20
22
  background: transparent;
@@ -24,11 +26,24 @@
24
26
  cursor: not-allowed;
25
27
  }
26
28
 
29
+ &--sm {
30
+ --#{$block-class}--size: #{$spacing-07};
31
+ }
32
+
33
+ &--md {
34
+ --#{$block-class}--size: #{$spacing-08};
35
+ }
36
+
37
+ &--lg {
38
+ --#{$block-class}--size: #{$spacing-09};
39
+ }
40
+
27
41
  &:hover {
28
42
  background: $field-01;
29
43
  }
30
44
 
31
- &:hover .#{$block-class}__btn-edit {
45
+ &:hover .#{$block-class}__btn-edit,
46
+ .#{$block-class}__btn-edit.#{$block-class}__btn-edit--always-visible {
32
47
  visibility: visible;
33
48
  }
34
49
 
@@ -36,6 +51,10 @@
36
51
  visibility: hidden;
37
52
  }
38
53
 
54
+ &--invalid {
55
+ outline: 2px solid $support-01;
56
+ }
57
+
39
58
  &--focused {
40
59
  background: $field-01;
41
60
  outline: 2px solid $focus;
@@ -45,12 +64,31 @@
45
64
  flex: 1;
46
65
  }
47
66
 
67
+ &--inherit-type .#{$block-class}__text-input {
68
+ /* match font of container */
69
+ font-size: inherit;
70
+ font-weight: inherit;
71
+ letter-spacing: inherit;
72
+ line-height: inherit;
73
+ }
74
+
75
+ &__ellipsis {
76
+ position: relative;
77
+ margin-left: calc(-1 * $spacing-05);
78
+ opacity: 0;
79
+ }
80
+
81
+ &--overflows:not(.#{$block-class}--focused) .#{$block-class}__ellipsis {
82
+ opacity: 1;
83
+ }
84
+
48
85
  &__text-input-label {
49
86
  display: none;
50
87
  }
51
88
 
52
89
  &__warning-icon {
53
- margin: $spacing-03;
90
+ width: $spacing-05;
91
+ margin: auto $spacing-03 auto auto;
54
92
  color: $support-01;
55
93
  }
56
94
 
@@ -70,11 +108,11 @@
70
108
  outline: none;
71
109
  }
72
110
 
73
- .#{$block-class}-readonly .#{$block-class}__text-input.#{$carbon-input},
74
- .#{$block-class}-readonly
75
- .#{$carbon-prefix}--btn.#{$carbon-prefix}--btn--icon-only.#{$carbon-prefix}--tooltip__trigger {
76
- cursor: not-allowed;
77
- }
111
+ // .#{$block-class}--readonly .#{$block-class}__text-input.#{$carbon-input},
112
+ // .#{$block-class}--readonly
113
+ // .#{$carbon-prefix}--btn.#{$carbon-prefix}--btn--icon-only.#{$carbon-prefix}--tooltip__trigger {
114
+ // cursor: not-allowed;
115
+ // }
78
116
 
79
117
  .#{$block-class}__text-input.#{$carbon-input}:focus,
80
118
  .#{$block-class}__text-input.#{$carbon-input}:active {
@@ -82,8 +120,8 @@
82
120
  }
83
121
 
84
122
  .#{$block-class}__toolbar {
85
- --toolbar-width: #{$spacing-07};
86
- --toolbar-width-focussed: #{$spacing-10};
123
+ --toolbar-width: var(--#{$block-class}--size);
124
+ --toolbar-width-focussed: calc(2 * var(--#{$block-class}--size));
87
125
 
88
126
  // animation div
89
127
  display: inline-flex;
@@ -92,8 +130,11 @@
92
130
  }
93
131
 
94
132
  .#{$block-class}--invalid .#{$block-class}__toolbar {
95
- --toolbar-width: #{$spacing-07};
96
- --toolbar-width-focussed: #{$spacing-12};
133
+ // width of invalid icon is always $spacing-07 ($spacing-05 + 2 * $spacing-03 margin)
134
+ --toolbar-width: calc(var(--#{$block-class}--size) + #{$spacing-07});
135
+ --toolbar-width-focussed: calc(
136
+ 2 * var(--#{$block-class}--size) + #{$spacing-07}
137
+ );
97
138
  }
98
139
 
99
140
  @keyframes slide-in {
@@ -4,6 +4,13 @@
4
4
  // This source code is licensed under the Apache-2.0 license found in the
5
5
  // LICENSE file in the root directory of this source tree.
6
6
  //
7
- .inline-edit-v2-example {
8
- width: 15rem;
7
+
8
+ @import '../../global/styles/display-box';
9
+
10
+ $block-class: 'inline-edit-v2-example';
11
+
12
+ .#{$block-class}__viewport {
13
+ // width: 300px; // larger than standard size needed by text input at standard font size (html input attribute size)
14
+ // stylelint-disable-next-line carbon/layout-token-use
15
+ margin: 100px;
9
16
  }
@@ -8,31 +8,35 @@
8
8
  // Standard imports.
9
9
  @import '../../global/styles/project-settings';
10
10
 
11
- @mixin term-closed-defaults {
11
+ @mixin keyword-closed-defaults {
12
+ height: rem(20px);
13
+ padding-top: 0;
12
14
  // stylelint-disable-next-line carbon/layout-token-use
13
- padding: rem(1px) $spacing-03 rem(1px) $spacing-03;
14
- border: none;
15
+ padding-right: rem(3px);
16
+ border-width: rem(1px);
17
+ border-style: solid;
15
18
  border-radius: $spacing-04;
16
- background-color: $interactive-02;
17
19
  white-space: nowrap;
18
20
 
19
21
  &:hover {
20
- background-color: $hover-secondary;
21
22
  cursor: pointer;
22
23
  }
23
- }
24
- @mixin term-open-defaults {
25
- @include term-closed-defaults();
26
-
27
- padding-right: 0;
28
24
 
25
+ // The "up" chevron
29
26
  svg {
30
27
  // stylelint-disable-next-line carbon/layout-token-use
31
- padding-top: rem(1px);
32
- margin: 0 $spacing-02 0 $spacing-01;
28
+ margin: rem(1px) 0 0 0;
33
29
  vertical-align: text-top;
34
30
  }
35
31
  }
32
+ @mixin keyword-open-defaults {
33
+ @include keyword-closed-defaults();
34
+
35
+ // The "up" chevron, flipped
36
+ svg {
37
+ transform: rotate(180deg);
38
+ }
39
+ }
36
40
  @mixin body-defaults {
37
41
  @include carbon--type-style('body-long-01');
38
42
 
@@ -48,10 +52,13 @@
48
52
 
49
53
  // Other Carbon settings.
50
54
  // TODO: @import 'carbon-components/scss/globals/grid/grid'; if needed
55
+
51
56
  // NonLinearReading uses the following Carbon components:
52
57
  // TODO: @import(s) of Carbon component styles used by NonLinearReading
58
+
53
59
  // NonLinearReading uses the following Carbon for IBM Products components:
54
60
  // TODO: @import(s) of IBM Products component styles used by NonLinearReading
61
+
55
62
  // Define all component styles in a mixin which is then exported using
56
63
  // the Carbon import-once mechanism.
57
64
  @mixin non-linear-reading {
@@ -72,86 +79,88 @@
72
79
  }
73
80
  }
74
81
 
75
- .#{$block-class} {
76
- &__term {
77
- &-light {
78
- &--closed {
79
- @include term-closed-defaults();
82
+ .#{$block-class}__light {
83
+ .#{$block-class}__keyword {
84
+ &-closed {
85
+ @include keyword-closed-defaults();
80
86
 
81
- background-color: $interactive-02;
82
- color: $inverse-01;
87
+ border-color: $interactive-03;
88
+ background-color: transparent;
89
+ color: $interactive-03;
83
90
 
84
- &:hover {
85
- background-color: $hover-secondary;
86
- }
91
+ &:hover {
92
+ background-color: $interactive-03;
93
+ color: $inverse-01;
87
94
  }
95
+ }
88
96
 
89
- &--open {
90
- @include term-open-defaults();
97
+ &-open {
98
+ @include keyword-open-defaults();
91
99
 
92
- // Novice to pro does not always use Carbon defaults/tokens
93
- // stylelint-disable-next-line carbon/theme-token-use
94
- background-color: $purple-20;
95
- color: $text-01;
100
+ border-color: $interactive-03;
101
+ background-color: $interactive-03;
102
+ color: $inverse-01;
96
103
 
97
- &:hover {
98
- // stylelint-disable-next-line carbon/theme-token-use
99
- background-color: #dcc7ff;
100
- }
104
+ &:hover {
105
+ background-color: transparent;
106
+ color: $interactive-03;
101
107
  }
102
108
  }
109
+ }
103
110
 
104
- &-dark {
105
- &--closed {
106
- @include carbon--theme($carbon--theme--g100, true);
107
- @include term-closed-defaults();
111
+ .#{$block-class}__body {
112
+ @include body-defaults();
108
113
 
109
- background-color: $interactive-02;
110
- color: $text-04;
114
+ border-left-color: $text-01;
115
+ }
116
+ }
117
+
118
+ .#{$block-class}__dark {
119
+ .#{$block-class}__keyword {
120
+ &-closed {
121
+ @include carbon--theme($carbon--theme--g100, true);
122
+ @include keyword-closed-defaults();
111
123
 
112
- &:hover {
113
- background-color: $hover-secondary;
114
- }
124
+ border-color: $icon-03;
125
+ background-color: transparent;
126
+ color: $text-01;
127
+
128
+ &:hover {
129
+ background-color: $icon-03;
130
+ color: $inverse-01;
115
131
  }
132
+ }
116
133
 
117
- &--open {
118
- @include carbon--theme($carbon--theme--g100, true);
119
- @include term-open-defaults();
134
+ &-open {
135
+ @include carbon--theme($carbon--theme--g100, true);
136
+ @include keyword-open-defaults();
120
137
 
121
- // stylelint-disable-next-line carbon/theme-token-use
122
- background-color: #491d8b;
123
- color: $text-04;
138
+ border-color: $icon-03;
139
+ background-color: $icon-03;
140
+ color: $inverse-01;
124
141
 
125
- &:hover {
126
- // stylelint-disable-next-line carbon/theme-token-use
127
- background-color: #7f3ae7;
128
- }
142
+ &:hover {
143
+ background-color: transparent;
144
+ color: $text-01;
129
145
  }
130
146
  }
131
147
  }
132
148
 
133
- &--body {
134
- &-light {
135
- @include body-defaults();
136
-
137
- // stylelint-disable-next-line carbon/theme-token-use
138
- border-left-color: #6929c4;
139
- // stylelint-disable-next-line carbon/theme-token-use
140
- color: #6929c4;
141
- }
149
+ .#{$block-class}__body {
150
+ @include carbon--theme($carbon--theme--g100, true);
151
+ @include body-defaults();
142
152
 
143
- &-dark {
144
- @include carbon--theme($carbon--theme--g100, true);
145
- @include body-defaults();
153
+ border-left-color: $text-01;
154
+ color: $text-01;
146
155
 
147
- // stylelint-disable-next-line carbon/theme-token-use
148
- border-left-color: #d4bbff;
149
- // stylelint-disable-next-line carbon/theme-token-use
150
- color: #d4bbff;
156
+ // override default link color to compensate for a gradient background.
157
+ a {
158
+ color: $link-01;
151
159
  }
152
160
  }
153
161
  }
154
162
  }
163
+
155
164
  @include exports('non-linear-reading') {
156
165
  @include non-linear-reading;
157
166
  }
@@ -11,3 +11,19 @@
11
11
  #root {
12
12
  @include carbon--type-style('body-long-01');
13
13
  }
14
+
15
+ // The layout has been changed from middle/center to top/left, because
16
+ // the component can expand, and it looks weird when expanding vertically
17
+ // from the middle of the page instead of "dropping down" from above.
18
+ // Margin provides spacing from the edge of the viewport.
19
+ .non-linear-reading-stories__viewport {
20
+ margin: $spacing-10; // 64px
21
+ }
22
+
23
+ .gradient-bg {
24
+ @include carbon--theme($carbon--theme--g100, true);
25
+
26
+ padding: $spacing-05;
27
+ background: linear-gradient(90deg, $blue-90 0%, $purple-70 100%);
28
+ color: $text-01;
29
+ }