@carbon/ibm-products 1.50.0 → 1.52.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 (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
+ }