@box/blueprint-web 7.36.2 → 8.1.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.
package/lib-esm/index.css CHANGED
@@ -4081,7 +4081,7 @@ table.bp_inline_table_module_inlineTable--b023b tr:not(:last-child) td{
4081
4081
  .bp_base_text_input_module_inlineError--4b0e7{
4082
4082
  margin-block-start:var(--space-2);
4083
4083
  }
4084
- .bp_chip_module_chip--7e663{
4084
+ .bp_chip_module_chip--d387b{
4085
4085
  align-items:center;
4086
4086
  border:none;
4087
4087
  border-radius:var(--radius-half);
@@ -4098,19 +4098,23 @@ table.bp_inline_table_module_inlineTable--b023b tr:not(:last-child) td{
4098
4098
  text-decoration:none;
4099
4099
  text-transform:none;
4100
4100
  }
4101
- .bp_chip_module_chip--7e663 .bp_chip_module_labelText--7e663:first-child{
4101
+ .bp_chip_module_chip--d387b .bp_chip_module_labelText--d387b:first-child{
4102
4102
  margin-inline-start:var(--space-4);
4103
4103
  }
4104
- .bp_chip_module_chip--7e663 .bp_chip_module_labelText--7e663:last-child{
4104
+ .bp_chip_module_chip--d387b .bp_chip_module_labelText--d387b:last-child{
4105
4105
  margin-inline-end:var(--space-4);
4106
4106
  }
4107
- .bp_chip_module_chip--7e663 .bp_chip_module_chipStatus--7e663:first-child,.bp_chip_module_chip--7e663 svg:first-child{
4107
+ .bp_chip_module_chip--d387b .bp_chip_module_chipStatus--d387b:first-child,.bp_chip_module_chip--d387b svg:first-child{
4108
4108
  margin-inline-start:var(--space-2);
4109
4109
  }
4110
- .bp_chip_module_chip--7e663 .bp_chip_module_chipStatus--7e663:last-child,.bp_chip_module_chip--7e663 svg:last-child{
4110
+ .bp_chip_module_chip--d387b .bp_chip_module_chipStatus--d387b:last-child,.bp_chip_module_chip--d387b svg:last-child{
4111
4111
  margin-inline-end:var(--space-2);
4112
4112
  }
4113
- .bp_chip_module_chip--7e663 .bp_chip_module_chipStatus--7e663{
4113
+ .bp_chip_module_chip--d387b:disabled{
4114
+ cursor:default;
4115
+ pointer-events:none;
4116
+ }
4117
+ .bp_chip_module_chip--d387b .bp_chip_module_chipStatus--d387b{
4114
4118
  align-items:center;
4115
4119
  background-color:var(--gray-10);
4116
4120
  border-radius:var(--radius-half);
@@ -4129,10 +4133,10 @@ table.bp_inline_table_module_inlineTable--b023b tr:not(:last-child) td{
4129
4133
  text-decoration:none;
4130
4134
  text-transform:none;
4131
4135
  }
4132
- .bp_chip_module_chip--7e663 .bp_chip_module_labelText--7e663{
4136
+ .bp_chip_module_chip--d387b .bp_chip_module_labelText--d387b{
4133
4137
  white-space:nowrap;
4134
4138
  }
4135
- .bp_chip_module_chip--7e663.bp_chip_module_chipButton--7e663{
4139
+ .bp_chip_module_chip--d387b.bp_chip_module_chipButton--d387b{
4136
4140
  background-color:var(--surface-chip-button-surface);
4137
4141
  font-family:Lato, -apple-system, BlinkMacSystemFont, "San Francisco", "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
4138
4142
  font-size:.875rem;
@@ -4142,50 +4146,50 @@ table.bp_inline_table_module_inlineTable--b023b tr:not(:last-child) td{
4142
4146
  text-decoration:none;
4143
4147
  text-transform:none;
4144
4148
  }
4145
- .bp_chip_module_chip--7e663.bp_chip_module_chipButton--7e663:focus-visible{
4149
+ .bp_chip_module_chip--d387b.bp_chip_module_chipButton--d387b:focus-visible{
4146
4150
  box-shadow:0 0 0 var(--border-2) var(--outline-focus-on-light);
4147
4151
  outline:none;
4148
4152
  overflow:visible;
4149
4153
  }
4150
- .bp_chip_module_chip--7e663.bp_chip_module_chipButton--7e663 .bp_chip_module_chipStatus--7e663{
4154
+ .bp_chip_module_chip--d387b.bp_chip_module_chipButton--d387b .bp_chip_module_chipStatus--d387b{
4151
4155
  background-color:var(--box-blue-100);
4152
4156
  color:var(--text-text-on-dark);
4153
4157
  }
4154
- .bp_chip_module_chip--7e663.bp_chip_module_chipButton--7e663:focus-visible,.bp_chip_module_chip--7e663.bp_chip_module_chipButton--7e663[data-active-item]{
4158
+ .bp_chip_module_chip--d387b.bp_chip_module_chipButton--d387b:focus-visible,.bp_chip_module_chip--d387b.bp_chip_module_chipButton--d387b[data-active-item]{
4155
4159
  box-shadow:0 0 0 var(--border-2) var(--outline-focus-on-light);
4156
4160
  outline:none;
4157
4161
  }
4158
- .bp_chip_module_chip--7e663.bp_chip_module_chipButton--7e663:disabled{
4162
+ .bp_chip_module_chip--d387b.bp_chip_module_chipButton--d387b:disabled{
4159
4163
  pointer-events:none;
4160
4164
  }
4161
- .bp_chip_module_chip--7e663.bp_chip_module_chipButton--7e663:disabled .bp_chip_module_chipStatus--7e663{
4165
+ .bp_chip_module_chip--d387b.bp_chip_module_chipButton--d387b:disabled .bp_chip_module_chipStatus--d387b{
4162
4166
  opacity:.4;
4163
4167
  }
4164
- .bp_chip_module_chip--7e663.bp_chip_module_chipButton--7e663:hover:enabled{
4168
+ .bp_chip_module_chip--d387b.bp_chip_module_chipButton--d387b:hover:enabled{
4165
4169
  background-color:var(--surface-chip-button-surface-hover);
4166
4170
  }
4167
- .bp_chip_module_chip--7e663.bp_chip_module_singleSelectChip--7e663{
4171
+ .bp_chip_module_chip--d387b.bp_chip_module_singleSelectChip--d387b{
4168
4172
  background-color:var(--surface-filterchip-surface-single);
4169
4173
  }
4170
- .bp_chip_module_chip--7e663.bp_chip_module_singleSelectChip--7e663[data-state=on]{
4174
+ .bp_chip_module_chip--d387b.bp_chip_module_singleSelectChip--d387b[data-state=on]{
4171
4175
  background-color:var(--surface-filterchip-surface-single-on);
4172
4176
  color:var(--text-text-on-dark);
4173
4177
  }
4174
- .bp_chip_module_chip--7e663.bp_chip_module_singleSelectChip--7e663[data-state=on]:hover{
4178
+ .bp_chip_module_chip--d387b.bp_chip_module_singleSelectChip--d387b[data-state=on]:hover{
4175
4179
  background-color:var(--surface-filterchip-surface-single-on-hover);
4176
4180
  }
4177
- .bp_chip_module_chip--7e663.bp_chip_module_singleSelectChip--7e663[data-state=on] .bp_chip_module_chipStatus--7e663{
4181
+ .bp_chip_module_chip--d387b.bp_chip_module_singleSelectChip--d387b[data-state=on] .bp_chip_module_chipStatus--d387b{
4178
4182
  color:var(--text-text-on-light);
4179
4183
  }
4180
- .bp_chip_module_chip--7e663.bp_chip_module_singleSelectChip--7e663:focus-visible,.bp_chip_module_chip--7e663.bp_chip_module_singleSelectChip--7e663[data-active-item]{
4184
+ .bp_chip_module_chip--d387b.bp_chip_module_singleSelectChip--d387b:focus-visible,.bp_chip_module_chip--d387b.bp_chip_module_singleSelectChip--d387b[data-active-item]{
4181
4185
  box-shadow:0 0 0 var(--border-2) var(--outline-focus-on-light);
4182
4186
  outline:var(--border-1) solid var(--gray-white);
4183
4187
  outline-offset:calc(var(--border-1)*-1);
4184
4188
  }
4185
- .bp_chip_module_chip--7e663.bp_chip_module_singleSelectChip--7e663:hover:not([data-state=on]){
4189
+ .bp_chip_module_chip--d387b.bp_chip_module_singleSelectChip--d387b:hover:not([data-state=on]){
4186
4190
  background-color:var(--surface-filterchip-surface-single-hover);
4187
4191
  }
4188
- .bp_chip_module_chip--7e663.bp_chip_module_multiSelectChip--7e663{
4192
+ .bp_chip_module_chip--d387b.bp_chip_module_multiSelectChip--d387b{
4189
4193
  background-color:var(--surface-filterchip-surface-multi);
4190
4194
  border:var(--border-1) solid var(--surface-filterchip-surface-multi);
4191
4195
  font-family:Lato, -apple-system, BlinkMacSystemFont, "San Francisco", "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
@@ -4196,10 +4200,10 @@ table.bp_inline_table_module_inlineTable--b023b tr:not(:last-child) td{
4196
4200
  text-decoration:none;
4197
4201
  text-transform:none;
4198
4202
  }
4199
- .bp_chip_module_chip--7e663.bp_chip_module_multiSelectChip--7e663 path{
4203
+ .bp_chip_module_chip--d387b.bp_chip_module_multiSelectChip--d387b path{
4200
4204
  fill:var(--icon-icon-on-light);
4201
4205
  }
4202
- .bp_chip_module_chip--7e663.bp_chip_module_multiSelectChip--7e663[data-state=on]{
4206
+ .bp_chip_module_chip--d387b.bp_chip_module_multiSelectChip--d387b[data-state=on]{
4203
4207
  background-color:var(--surface-filterchip-surface-multi-on);
4204
4208
  border:var(--border-1) solid var(--border-filterchip-border-multi-on);
4205
4209
  color:var(--text-cta-link);
@@ -4211,32 +4215,32 @@ table.bp_inline_table_module_inlineTable--b023b tr:not(:last-child) td{
4211
4215
  text-decoration:none;
4212
4216
  text-transform:none;
4213
4217
  }
4214
- .bp_chip_module_chip--7e663.bp_chip_module_multiSelectChip--7e663[data-state=on] path{
4218
+ .bp_chip_module_chip--d387b.bp_chip_module_multiSelectChip--d387b[data-state=on] path{
4215
4219
  fill:var(--text-cta-link);
4216
4220
  }
4217
- .bp_chip_module_chip--7e663.bp_chip_module_multiSelectChip--7e663[data-state=on]:hover{
4221
+ .bp_chip_module_chip--d387b.bp_chip_module_multiSelectChip--d387b[data-state=on]:hover{
4218
4222
  background-color:var(--surface-filterchip-surface-multi-on-hover);
4219
4223
  }
4220
- .bp_chip_module_chip--7e663.bp_chip_module_multiSelectChip--7e663[data-state=on]:focus-visible,.bp_chip_module_chip--7e663.bp_chip_module_multiSelectChip--7e663[data-state=on][data-active-item]{
4224
+ .bp_chip_module_chip--d387b.bp_chip_module_multiSelectChip--d387b[data-state=on]:focus-visible,.bp_chip_module_chip--d387b.bp_chip_module_multiSelectChip--d387b[data-state=on][data-active-item]{
4221
4225
  border:var(--border-1) solid var(--gray-white);
4222
4226
  box-shadow:0 0 0 var(--border-2) var(--outline-focus-on-light);
4223
4227
  outline:var(--border-1) solid var(--border-filterchip-border-multi-on);
4224
4228
  outline-offset:calc(var(--border-2)*-1);
4225
4229
  }
4226
- .bp_chip_module_chip--7e663.bp_chip_module_multiSelectChip--7e663[data-state=on] .bp_chip_module_chipStatus--7e663{
4230
+ .bp_chip_module_chip--d387b.bp_chip_module_multiSelectChip--d387b[data-state=on] .bp_chip_module_chipStatus--d387b{
4227
4231
  background-color:var(--box-blue-100);
4228
4232
  color:var(--text-text-on-dark);
4229
4233
  }
4230
- .bp_chip_module_chip--7e663.bp_chip_module_multiSelectChip--7e663:focus-visible:not([data-state=on]),.bp_chip_module_chip--7e663.bp_chip_module_multiSelectChip--7e663[data-active-item]:not([data-state=on]){
4234
+ .bp_chip_module_chip--d387b.bp_chip_module_multiSelectChip--d387b:focus-visible:not([data-state=on]),.bp_chip_module_chip--d387b.bp_chip_module_multiSelectChip--d387b[data-active-item]:not([data-state=on]){
4231
4235
  box-shadow:0 0 0 var(--border-2) var(--outline-focus-on-light);
4232
4236
  outline:var(--border-1) solid var(--gray-white);
4233
4237
  outline-offset:calc(var(--border-1)*-1);
4234
4238
  }
4235
- .bp_chip_module_chip--7e663.bp_chip_module_multiSelectChip--7e663:hover:not([data-state=on]){
4239
+ .bp_chip_module_chip--d387b.bp_chip_module_multiSelectChip--d387b:hover:not([data-state=on]){
4236
4240
  background-color:var(--surface-filterchip-surface-multi-hover);
4237
4241
  border:var(--border-1) solid var(--surface-filterchip-surface-multi-hover);
4238
4242
  }
4239
- .bp_chip_module_chip--7e663.bp_chip_module_multiSelectChip--7e663 span::before{
4243
+ .bp_chip_module_chip--d387b.bp_chip_module_multiSelectChip--d387b span::before{
4240
4244
  content:attr(data-text);
4241
4245
  display:block;
4242
4246
  font-family:Lato, -apple-system, BlinkMacSystemFont, "San Francisco", "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
@@ -4251,20 +4255,20 @@ table.bp_inline_table_module_inlineTable--b023b tr:not(:last-child) td{
4251
4255
  visibility:hidden;
4252
4256
  }
4253
4257
 
4254
- .bp_chip_module_chipsGroup--7e663{
4258
+ .bp_chip_module_chipsGroup--d387b{
4255
4259
  display:flex;
4256
4260
  flex-wrap:wrap;
4257
4261
  gap:var(--space-2);
4258
4262
  }
4259
4263
  @media (max-width: 767px){
4260
- .bp_chip_module_chipsGroup--7e663{
4264
+ .bp_chip_module_chipsGroup--d387b{
4261
4265
  -ms-overflow-style:none;
4262
4266
  flex-wrap:nowrap;
4263
4267
  overflow-x:scroll;
4264
4268
  padding:var(--space-05);
4265
4269
  scrollbar-width:none;
4266
4270
  }
4267
- .bp_chip_module_chipsGroup--7e663::-webkit-scrollbar{
4271
+ .bp_chip_module_chipsGroup--d387b::-webkit-scrollbar{
4268
4272
  display:none;
4269
4273
  }
4270
4274
  }
@@ -4857,7 +4861,7 @@ table.bp_inline_table_module_inlineTable--b023b tr:not(:last-child) td{
4857
4861
  background-color:var(--surface-radio-surface-selected-hover);
4858
4862
  }
4859
4863
 
4860
- .bp_search_module_search--f146a{
4864
+ .bp_search_module_search--b65f4{
4861
4865
  font-family:Lato, -apple-system, BlinkMacSystemFont, "San Francisco", "Segoe UI", Roboto, "Helvetica Neue", sans-serif;
4862
4866
  font-size:.875rem;
4863
4867
  font-weight:400;
@@ -4870,7 +4874,10 @@ table.bp_inline_table_module_inlineTable--b023b tr:not(:last-child) td{
4870
4874
  text-transform:none;
4871
4875
  width:100%;
4872
4876
  }
4873
- .bp_search_module_search--f146a .bp_search_module_searchIcon--f146a{
4877
+ .bp_search_module_search--b65f4.bp_search_module_disabled--b65f4{
4878
+ opacity:.3;
4879
+ }
4880
+ .bp_search_module_search--b65f4 .bp_search_module_searchIcon--b65f4{
4874
4881
  height:var(--size-4);
4875
4882
  left:var(--space-2);
4876
4883
  pointer-events:none;
@@ -4879,12 +4886,13 @@ table.bp_inline_table_module_inlineTable--b023b tr:not(:last-child) td{
4879
4886
  transform:translateY(-50%);
4880
4887
  width:var(--size-4);
4881
4888
  }
4882
- .bp_search_module_search--f146a .bp_search_module_searchIcon--f146a.bp_search_module_global--f146a{
4889
+ .bp_search_module_search--b65f4 .bp_search_module_searchIcon--b65f4.bp_search_module_global--b65f4{
4883
4890
  height:var(--size-5);
4884
4891
  left:var(--space-4);
4885
4892
  width:var(--size-5);
4886
4893
  }
4887
- .bp_search_module_search--f146a .bp_search_module_searchInput--f146a{
4894
+ .bp_search_module_search--b65f4 .bp_search_module_searchInput--b65f4{
4895
+ -webkit-font-smoothing:auto;
4888
4896
  background-color:var(--surface-search-surface);
4889
4897
  border:var(--border-1) solid #0000;
4890
4898
  border-radius:var(--radius-2);
@@ -4905,45 +4913,51 @@ table.bp_inline_table_module_inlineTable--b023b tr:not(:last-child) td{
4905
4913
  transition:border-color .15s ease,background-color .15s ease;
4906
4914
  width:100%;
4907
4915
  }
4908
- .bp_search_module_search--f146a .bp_search_module_searchInput--f146a.bp_search_module_global--f146a{
4916
+ .bp_search_module_search--b65f4 .bp_search_module_searchInput--b65f4.bp_search_module_global--b65f4{
4909
4917
  border-radius:var(--radius-7);
4910
4918
  height:var(--size-12);
4911
4919
  padding-inline:var(--space-12) var(--space-2);
4912
4920
  }
4913
- .bp_search_module_search--f146a .bp_search_module_searchInput--f146a::-webkit-search-cancel-button,.bp_search_module_search--f146a .bp_search_module_searchInput--f146a::-webkit-search-decoration,.bp_search_module_search--f146a .bp_search_module_searchInput--f146a::-webkit-search-results-button,.bp_search_module_search--f146a .bp_search_module_searchInput--f146a::-webkit-search-results-decoration{
4921
+ .bp_search_module_search--b65f4 .bp_search_module_searchInput--b65f4::-webkit-search-cancel-button,.bp_search_module_search--b65f4 .bp_search_module_searchInput--b65f4::-webkit-search-decoration,.bp_search_module_search--b65f4 .bp_search_module_searchInput--b65f4::-webkit-search-results-button,.bp_search_module_search--b65f4 .bp_search_module_searchInput--b65f4::-webkit-search-results-decoration{
4914
4922
  appearance:none;
4915
4923
  }
4916
- .bp_search_module_search--f146a .bp_search_module_searchInput--f146a:hover{
4924
+ .bp_search_module_search--b65f4 .bp_search_module_searchInput--b65f4:disabled{
4925
+ background-color:var(--surface-search-surface);
4926
+ border-color:#0000;
4927
+ box-shadow:unset;
4928
+ color:var(--text-text-on-light);
4929
+ }
4930
+ .bp_search_module_search--b65f4 .bp_search_module_searchInput--b65f4:hover{
4917
4931
  box-shadow:unset;
4918
4932
  }
4919
- .bp_search_module_search--f146a .bp_search_module_searchInput--f146a .bp_search_module_firefoxDefaultOpacityFix--f146a,.bp_search_module_search--f146a .bp_search_module_searchInput--f146a .bp_search_module_searchInput--f146a::placeholder{
4933
+ .bp_search_module_search--b65f4 .bp_search_module_searchInput--b65f4 .bp_search_module_firefoxDefaultOpacityFix--b65f4,.bp_search_module_search--b65f4 .bp_search_module_searchInput--b65f4 .bp_search_module_searchInput--b65f4::placeholder{
4920
4934
  opacity:1;
4921
4935
  }
4922
- .bp_search_module_search--f146a .bp_search_module_searchInput--f146a::placeholder{
4936
+ .bp_search_module_search--b65f4 .bp_search_module_searchInput--b65f4::placeholder{
4923
4937
  color:var(--text-text-on-light-secondary);
4924
4938
  }
4925
- .bp_search_module_search--f146a .bp_search_module_searchInput--f146a:not(:placeholder-shown){
4939
+ .bp_search_module_search--b65f4 .bp_search_module_searchInput--b65f4:not(:placeholder-shown){
4926
4940
  padding-inline-end:var(--space-8);
4927
4941
  }
4928
- .bp_search_module_search--f146a .bp_search_module_searchInput--f146a:not(:placeholder-shown).bp_search_module_global--f146a{
4942
+ .bp_search_module_search--b65f4 .bp_search_module_searchInput--b65f4:not(:placeholder-shown).bp_search_module_global--b65f4{
4929
4943
  padding-inline-end:calc(var(--size-8)*2 + var(--space-6));
4930
4944
  }
4931
- .bp_search_module_search--f146a .bp_search_module_searchInput--f146a:not(:placeholder-shown).bp_search_module_global--f146a.bp_search_module_withoutActionButton--f146a{
4945
+ .bp_search_module_search--b65f4 .bp_search_module_searchInput--b65f4:not(:placeholder-shown).bp_search_module_global--b65f4.bp_search_module_withoutActionButton--b65f4{
4932
4946
  padding-inline-end:calc(var(--size-8) + var(--space-3));
4933
4947
  }
4934
- .bp_search_module_search--f146a .bp_search_module_searchInput--f146a:focus-visible{
4948
+ .bp_search_module_search--b65f4 .bp_search_module_searchInput--b65f4:focus-visible{
4935
4949
  background-color:var(--surface-search-surface-focused);
4936
4950
  border:var(--border-2) solid #2486fc;
4937
4951
  padding-inline-start:calc(var(--space-8) - var(--border-1));
4938
4952
  }
4939
- .bp_search_module_search--f146a .bp_search_module_searchInput--f146a:focus-visible.bp_search_module_global--f146a{
4953
+ .bp_search_module_search--b65f4 .bp_search_module_searchInput--b65f4:focus-visible.bp_search_module_global--b65f4{
4940
4954
  padding-inline-start:calc(var(--space-12) - var(--border-1));
4941
4955
  }
4942
- .bp_search_module_search--f146a .bp_search_module_searchInput--f146a:not(:focus-visible):not(:disabled):hover{
4956
+ .bp_search_module_search--b65f4 .bp_search_module_searchInput--b65f4:not(:focus-visible):not(:disabled):hover{
4943
4957
  background-color:var(--surface-search-surface-hover);
4944
4958
  border-color:#6f6f6f;
4945
4959
  }
4946
- .bp_search_module_search--f146a .bp_search_module_clearSearchIcon--f146a{
4960
+ .bp_search_module_search--b65f4 .bp_search_module_clearSearchIcon--b65f4{
4947
4961
  background:var(--surface-cta-surface-icon);
4948
4962
  height:var(--size-4);
4949
4963
  position:absolute;
@@ -4952,31 +4966,31 @@ table.bp_inline_table_module_inlineTable--b023b tr:not(:last-child) td{
4952
4966
  transform:translateY(-50%);
4953
4967
  width:var(--size-4);
4954
4968
  }
4955
- .bp_search_module_search--f146a .bp_search_module_clearSearchIcon--f146a.bp_search_module_global--f146a{
4969
+ .bp_search_module_search--b65f4 .bp_search_module_clearSearchIcon--b65f4.bp_search_module_global--b65f4{
4956
4970
  height:var(--size-8);
4957
4971
  right:calc(var(--space-12) + var(--space-1));
4958
4972
  width:var(--size-8);
4959
4973
  }
4960
- .bp_search_module_search--f146a .bp_search_module_clearSearchIcon--f146a.bp_search_module_withoutActionButton--f146a{
4974
+ .bp_search_module_search--b65f4 .bp_search_module_clearSearchIcon--b65f4.bp_search_module_withoutActionButton--b65f4{
4961
4975
  right:var(--space-3);
4962
4976
  }
4963
- .bp_search_module_search--f146a .bp_search_module_clearSearchIcon--f146a *{
4977
+ .bp_search_module_search--b65f4 .bp_search_module_clearSearchIcon--b65f4 *{
4964
4978
  fill:var(--icon-cta-icon);
4965
4979
  }
4966
- .bp_search_module_search--f146a .bp_search_module_clearSearchIcon--f146a:focus-visible{
4980
+ .bp_search_module_search--b65f4 .bp_search_module_clearSearchIcon--b65f4:focus-visible{
4967
4981
  background:var(--surface-cta-surface-icon-hover);
4968
4982
  outline:var(--border-2) solid var(--outline-focus-on-light);
4969
4983
  }
4970
- .bp_search_module_search--f146a .bp_search_module_clearSearchIcon--f146a:focus-visible *{
4984
+ .bp_search_module_search--b65f4 .bp_search_module_clearSearchIcon--b65f4:focus-visible *{
4971
4985
  fill:var(--icon-cta-icon-hover);
4972
4986
  }
4973
- .bp_search_module_search--f146a .bp_search_module_clearSearchIcon--f146a:hover{
4987
+ .bp_search_module_search--b65f4 .bp_search_module_clearSearchIcon--b65f4:hover{
4974
4988
  background:var(--surface-cta-surface-icon-hover);
4975
4989
  }
4976
- .bp_search_module_search--f146a .bp_search_module_clearSearchIcon--f146a:hover *{
4990
+ .bp_search_module_search--b65f4 .bp_search_module_clearSearchIcon--b65f4:hover *{
4977
4991
  fill:var(--icon-cta-icon-hover);
4978
4992
  }
4979
- .bp_search_module_search--f146a .bp_search_module_actionButton--f146a{
4993
+ .bp_search_module_search--b65f4 .bp_search_module_actionButton--b65f4{
4980
4994
  position:absolute;
4981
4995
  right:var(--space-4);
4982
4996
  top:50%;
@@ -1,8 +1,7 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { clsx } from 'clsx';
3
- import { forwardRef, useRef } from 'react';
3
+ import { forwardRef, useCallback } from 'react';
4
4
  import { useScrollContext } from '../utils/scroll-context.js';
5
- import { useForkRef } from '../utils/useForkRef.js';
6
5
  import styles from './modal.module.js';
7
6
 
8
7
  /**
@@ -16,12 +15,23 @@ const ModalScrollableContainer = /*#__PURE__*/forwardRef(({
16
15
  ...rest
17
16
  }, forwardedRef) => {
18
17
  const {
19
- onScroll
18
+ onScroll,
19
+ onAttach
20
20
  } = useScrollContext();
21
- const scrollableContainerRef = useRef(null);
21
+ const onMountRef = useCallback(node => {
22
+ onAttach(node);
23
+ if (!forwardedRef) {
24
+ return;
25
+ }
26
+ if (typeof forwardedRef === 'function') {
27
+ forwardedRef(node);
28
+ } else {
29
+ forwardedRef.current = node;
30
+ }
31
+ }, [forwardedRef, onAttach]);
22
32
  return jsx("div", {
23
33
  ...rest,
24
- ref: useForkRef(scrollableContainerRef, forwardedRef),
34
+ ref: onMountRef,
25
35
  className: clsx(styles.scrollableContainer, className),
26
36
  "data-testid": dataTestId,
27
37
  onScroll: event => {
@@ -3,6 +3,15 @@ export { usePage } from './page-context';
3
3
  export * from './types';
4
4
  export declare const Page: import("react").ForwardRefExoticComponent<import("./types").PageProps & import("react").RefAttributes<HTMLDivElement>> & {
5
5
  Navigation: import("react").ForwardRefExoticComponent<import("./types").PageNavigationProps & import("react").RefAttributes<HTMLDivElement>>;
6
- GlobalHeader: import("react").ForwardRefExoticComponent<import("./types").GlobalHeaderProps & import("react").RefAttributes<HTMLDivElement>>;
6
+ /**
7
+ * Top level landmark placed at the top of the page.
8
+ * Contains two subcomponents for contents:
9
+ * - PageGlobalHeader.SearchContainer
10
+ * - PageGlobalHeader.SideContentContainer
11
+ */
12
+ GlobalHeader: import("react").ForwardRefExoticComponent<import("./types").GlobalHeaderProps & import("react").RefAttributes<HTMLDivElement>> & {
13
+ SearchContainer: import("react").ForwardRefExoticComponent<import("react").HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
14
+ SideContentContainer: import("react").ForwardRefExoticComponent<import("react").HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
15
+ };
7
16
  Content: import("react").ForwardRefExoticComponent<import("./types").PageContentProps & import("react").RefAttributes<HTMLDivElement>>;
8
17
  };
@@ -0,0 +1,2 @@
1
+ import { type HTMLAttributes } from 'react';
2
+ export declare const SearchContainer: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,2 @@
1
+ import { type HTMLAttributes } from 'react';
2
+ export declare const SideContentContainer: import("react").ForwardRefExoticComponent<HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
@@ -1,3 +1,13 @@
1
1
  /// <reference types="react" />
2
2
  import { type GlobalHeaderProps } from './types';
3
3
  export declare const PageGlobalHeader: import("react").ForwardRefExoticComponent<GlobalHeaderProps & import("react").RefAttributes<HTMLDivElement>>;
4
+ export declare const GlobalHeader: import("react").ForwardRefExoticComponent<GlobalHeaderProps & import("react").RefAttributes<HTMLDivElement>> & {
5
+ /**
6
+ * Container for components related to global search.
7
+ */
8
+ SearchContainer: import("react").ForwardRefExoticComponent<import("react").HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
9
+ /**
10
+ * Container for all components excluding ones related to global search.
11
+ */
12
+ SideContentContainer: import("react").ForwardRefExoticComponent<import("react").HTMLAttributes<HTMLDivElement> & import("react").RefAttributes<HTMLDivElement>>;
13
+ };
@@ -1,4 +1,4 @@
1
1
  import '../../index.css';
2
- var styles = {"chip":"bp_chip_module_chip--7e663","labelText":"bp_chip_module_labelText--7e663","chipStatus":"bp_chip_module_chipStatus--7e663","chipButton":"bp_chip_module_chipButton--7e663","singleSelectChip":"bp_chip_module_singleSelectChip--7e663","multiSelectChip":"bp_chip_module_multiSelectChip--7e663","chipsGroup":"bp_chip_module_chipsGroup--7e663"};
2
+ var styles = {"chip":"bp_chip_module_chip--d387b","labelText":"bp_chip_module_labelText--d387b","chipStatus":"bp_chip_module_chipStatus--d387b","chipButton":"bp_chip_module_chipButton--d387b","singleSelectChip":"bp_chip_module_singleSelectChip--d387b","multiSelectChip":"bp_chip_module_multiSelectChip--d387b","chipsGroup":"bp_chip_module_chipsGroup--d387b"};
3
3
 
4
4
  export { styles as default };
@@ -68,7 +68,7 @@ const SearchInputControlled = /*#__PURE__*/forwardRef((props, forwardedRef) => {
68
68
  size: 'x-small'
69
69
  }), [isGlobal, onClearInput, searchInputClearAriaLabel, showActionButton]);
70
70
  return jsxs("div", {
71
- className: clsx(styles.search, className),
71
+ className: clsx(styles.search, disabled && styles.disabled, className),
72
72
  children: [jsx(Search, {
73
73
  "aria-hidden": "true",
74
74
  className: clsx(styles.searchIcon, isGlobal && styles.global),
@@ -69,7 +69,7 @@ const SearchInput = /*#__PURE__*/forwardRef((props, forwardedRef) => {
69
69
  const isGlobal = variant === 'global';
70
70
  const showActionButton = Children.count(children) > 0;
71
71
  return jsxs("div", {
72
- className: clsx(styles.search, className),
72
+ className: clsx(styles.search, disabled && styles.disabled, className),
73
73
  children: [jsx(Search, {
74
74
  "aria-hidden": "true",
75
75
  className: clsx(styles.searchIcon, isGlobal && styles.global),
@@ -1,4 +1,4 @@
1
1
  import '../index.css';
2
- var styles = {"search":"bp_search_module_search--f146a","searchIcon":"bp_search_module_searchIcon--f146a","global":"bp_search_module_global--f146a","searchInput":"bp_search_module_searchInput--f146a","firefoxDefaultOpacityFix":"bp_search_module_firefoxDefaultOpacityFix--f146a","withoutActionButton":"bp_search_module_withoutActionButton--f146a","clearSearchIcon":"bp_search_module_clearSearchIcon--f146a","actionButton":"bp_search_module_actionButton--f146a"};
2
+ var styles = {"search":"bp_search_module_search--b65f4","disabled":"bp_search_module_disabled--b65f4","searchIcon":"bp_search_module_searchIcon--b65f4","global":"bp_search_module_global--b65f4","searchInput":"bp_search_module_searchInput--b65f4","firefoxDefaultOpacityFix":"bp_search_module_firefoxDefaultOpacityFix--b65f4","withoutActionButton":"bp_search_module_withoutActionButton--b65f4","clearSearchIcon":"bp_search_module_clearSearchIcon--b65f4","actionButton":"bp_search_module_actionButton--b65f4"};
3
3
 
4
4
  export { styles as default };
@@ -1,8 +1,8 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import * as RadixDialog from '@radix-ui/react-dialog';
3
+ import { FocusScope } from '@radix-ui/react-focus-scope';
3
4
  import { clsx } from 'clsx';
4
5
  import { forwardRef, useCallback } from 'react';
5
- import { FocusScope } from '@radix-ui/react-focus-scope';
6
6
  import styles from './side-panel.module.js';
7
7
  import { useVariant } from './variant-context.js';
8
8
 
@@ -0,0 +1,6 @@
1
+ /// <reference types="react" />
2
+ import { type SidePanelTriggerProps } from './types';
3
+ /**
4
+ * Wrapper component for an interactive element that's responsible for opening SidePanel.
5
+ */
6
+ export declare const SidePanelTrigger: import("react").ForwardRefExoticComponent<SidePanelTriggerProps & import("react").RefAttributes<HTMLButtonElement>>;
@@ -0,0 +1,18 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import * as RadixDialog from '@radix-ui/react-dialog';
3
+ import { forwardRef } from 'react';
4
+
5
+ /**
6
+ * Wrapper component for an interactive element that's responsible for opening SidePanel.
7
+ */
8
+ const SidePanelTrigger = /*#__PURE__*/forwardRef(function SidePanelTrigger({
9
+ children
10
+ }, forwardedRef) {
11
+ return jsx(RadixDialog.Trigger, {
12
+ ref: forwardedRef,
13
+ asChild: true,
14
+ children: children
15
+ });
16
+ });
17
+
18
+ export { SidePanelTrigger };
@@ -22,6 +22,7 @@ export declare const SidePanel: ((props: SidePanelProps) => import("react/jsx-ru
22
22
  }, "ref">) & import("react").RefAttributes<HTMLButtonElement>>;
23
23
  };
24
24
  Header: import("react").ForwardRefExoticComponent<Omit<import("./types").SidePanelHeaderProps, "ref"> & import("react").RefAttributes<HTMLHeadingElement>>;
25
- ScrollableContainer: import("react").ForwardRefExoticComponent<Omit<import("./types").SidePanelScrollableContainerProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
26
25
  Overlay: import("react").ForwardRefExoticComponent<Omit<import("./types").SidePanelOverlayComponentProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
26
+ ScrollableContainer: import("react").ForwardRefExoticComponent<Omit<import("./types").SidePanelScrollableContainerProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
27
+ Trigger: import("react").ForwardRefExoticComponent<import("./types").SidePanelTriggerProps & import("react").RefAttributes<HTMLButtonElement>>;
27
28
  };
@@ -7,6 +7,7 @@ import { SidePanelFooter } from './side-panel-footer.js';
7
7
  import { SidePanelHeader } from './side-panel-header.js';
8
8
  import { SidePanelOverlay } from './side-panel-overlay.js';
9
9
  import { SidePanelScrollableContainer } from './side-panel-scrollable-container.js';
10
+ import { SidePanelTrigger } from './side-panel-trigger.js';
10
11
  import { VariantProvider } from './variant-context.js';
11
12
 
12
13
  const Root = props => {
@@ -45,8 +46,9 @@ const SidePanel = Object.assign(Root, {
45
46
  Content: SidePanelContent,
46
47
  Footer: SidePanelFooter,
47
48
  Header: SidePanelHeader,
49
+ Overlay: SidePanelOverlay,
48
50
  ScrollableContainer: SidePanelScrollableContainer,
49
- Overlay: SidePanelOverlay
51
+ Trigger: SidePanelTrigger
50
52
  });
51
53
 
52
54
  export { SidePanel };
@@ -1,5 +1,5 @@
1
1
  import { type DialogContentProps, type DialogPortalProps, type DialogProps } from '@radix-ui/react-dialog';
2
- import { type ComponentPropsWithRef, type FunctionComponent, type PropsWithChildren, type ReactNode, type SVGProps } from 'react';
2
+ import { type ComponentPropsWithRef, type FunctionComponent, type PropsWithChildren, type ReactElement, type ReactNode, type SVGProps } from 'react';
3
3
  /**
4
4
  * 'persistent' - side panel is displayed inline with the page content
5
5
  *
@@ -32,6 +32,9 @@ export interface SidePanelCloseProps {
32
32
  /** Custom icon for Close element */
33
33
  icon?: FunctionComponent<PropsWithChildren<SVGProps<SVGSVGElement>>>;
34
34
  }
35
+ export interface SidePanelTriggerProps {
36
+ children: ReactElement;
37
+ }
35
38
  export interface SidePanelScrollableContainerProps extends ComponentPropsWithRef<'div'> {
36
39
  /** Content of the ScrollableContainer element */
37
40
  children: ReactNode;
@@ -17,5 +17,6 @@ const Text = /*#__PURE__*/forwardRef((props, forwardedRef) => {
17
17
  className: clsx(styles.textReset, styles.breakWord, styles[variant], styles[color], className)
18
18
  }, children);
19
19
  });
20
+ Text.displayName = 'Text';
20
21
 
21
22
  export { Text };
@@ -1,2 +1,10 @@
1
- import { type ForwardedRef } from 'react';
2
- export declare function createSetRefWithCallback<T>(forwardedRef: ForwardedRef<T>, callback?: (node: T | null) => void): (node: T | null) => void;
1
+ import { type ForwardedRef, type RefCallback } from 'react';
2
+ /**
3
+ * Returns function that sets ref and invokes provided ref callback function.
4
+ */
5
+ export declare function createSetRefWithCallback<T>(forwardedRef: ForwardedRef<T>, callback?: RefCallback<T>): (node: T | null) => void;
6
+ /**
7
+ * Memoized version of createSetRefWithCallback.
8
+ * Returns function that sets ref and invokes provided ref callback function.
9
+ */
10
+ export declare function useCreateSetRefWithCallbackMemo<T>(forwardedRef: ForwardedRef<T>, callback?: RefCallback<T>): (node: T | null) => void;
@@ -3,6 +3,7 @@ interface ScrollContextType {
3
3
  isScrolledUnderHeader: boolean;
4
4
  isScrolledUnderFooter: boolean;
5
5
  onScroll: (event: UIEvent<HTMLDivElement>) => void;
6
+ onAttach: (node: HTMLDivElement | null) => void;
6
7
  }
7
8
  export declare const ScrollProvider: ({ children }: {
8
9
  children: React.ReactNode;
@@ -5,7 +5,8 @@ import { useState, useCallback, useMemo, useContext, createContext } from 'react
5
5
  const ScrollContext = /*#__PURE__*/createContext({
6
6
  isScrolledUnderFooter: false,
7
7
  isScrolledUnderHeader: false,
8
- onScroll: noop
8
+ onScroll: noop,
9
+ onAttach: noop
9
10
  });
10
11
  const ScrollProvider = ({
11
12
  children
@@ -22,11 +23,18 @@ const ScrollProvider = ({
22
23
  const scrolledToBottom = scroll >= scrollHeight - offsetHeight;
23
24
  setScrolledUnderFooter(!scrolledToBottom);
24
25
  }, []);
26
+ const onAttach = useCallback(element => {
27
+ if (element) {
28
+ setScrolledUnderFooter(element.scrollHeight > element.offsetHeight);
29
+ setScrolledUnderHeader(element.scrollTop > 0);
30
+ }
31
+ }, []);
25
32
  const value = useMemo(() => ({
26
33
  isScrolledUnderFooter,
27
34
  isScrolledUnderHeader,
28
- onScroll
29
- }), [isScrolledUnderFooter, isScrolledUnderHeader, onScroll]);
35
+ onScroll,
36
+ onAttach
37
+ }), [isScrolledUnderFooter, isScrolledUnderHeader, onScroll, onAttach]);
30
38
  return jsx(ScrollContext.Provider, {
31
39
  value: value,
32
40
  children: children
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@box/blueprint-web",
3
- "version": "7.36.2",
3
+ "version": "8.1.0",
4
4
  "type": "module",
5
5
  "license": "SEE LICENSE IN LICENSE",
6
6
  "publishConfig": {
@@ -63,7 +63,7 @@
63
63
  "react-stately": "^3.31.1",
64
64
  "tsx": "^4.16.5"
65
65
  },
66
- "gitHead": "f127b11dc4b59418aa99af4725e798f2e1f48c15",
66
+ "gitHead": "0493d34d7630dffade2a3d5c62b46719e425ff2b",
67
67
  "module": "lib-esm/index.js",
68
68
  "main": "lib-esm/index.js",
69
69
  "exports": {