@hh.ru/magritte-ui-nav-bar 1.3.29 → 1.4.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/index.css CHANGED
@@ -1,102 +1,102 @@
1
1
  :root{
2
- --magritte-color-background-body-v24-7-0:#ffffff;
3
- --magritte-color-text-primary-v24-7-0:#000000;
4
- --magritte-color-text-secondary-v24-7-0:#768694;
2
+ --magritte-color-background-body-v24-7-1:#ffffff;
3
+ --magritte-color-text-primary-v24-7-1:#000000;
4
+ --magritte-color-text-secondary-v24-7-1:#768694;
5
5
  }
6
6
 
7
7
  .magritte-night-theme{
8
- --magritte-color-background-body-v24-7-0:#000000;
9
- --magritte-color-text-primary-v24-7-0:#ffffff;
10
- --magritte-color-text-secondary-v24-7-0:#ABABAB;
8
+ --magritte-color-background-body-v24-7-1:#000000;
9
+ --magritte-color-text-primary-v24-7-1:#ffffff;
10
+ --magritte-color-text-secondary-v24-7-1:#ABABAB;
11
11
  }
12
- .magritte-actions-container___CBgYW_1-3-29{
12
+ .magritte-actions-container___CBgYW_1-4-0{
13
13
  display:flex;
14
14
  flex-direction:row;
15
15
  gap:12px;
16
16
  min-height:40px;
17
17
  }
18
- .magritte-actions-no-children___rgJUl_1-3-29{
18
+ .magritte-actions-no-children___rgJUl_1-4-0{
19
19
  justify-content:space-between;
20
20
  }
21
- .magritte-actions-left-slot___DNOj0_1-3-29,
22
- .magritte-actions-right-slot___aodtj_1-3-29{
21
+ .magritte-actions-left-slot___DNOj0_1-4-0,
22
+ .magritte-actions-right-slot___aodtj_1-4-0{
23
23
  display:grid;
24
24
  flex:0 0 auto;
25
25
  --magritte-ui-icon-margin-not-transparent:var(--magritte-ui-navbar-actions-icon-margin-not-transparent-override, -8px);
26
26
  --magritte-ui-icon-margin-transparent:var(--magritte-ui-navbar-actions-icon-margin-transparent-override, 0);
27
27
  --magritte-ui-icon-margin-delta:calc(var(--magritte-ui-icon-margin-not-transparent) - var(--magritte-ui-icon-margin-transparent));
28
28
  }
29
- .magritte-navbar-transparent-end___6KqLR_1-3-29 .magritte-actions-start-stage___MJ67a_1-3-29 .magritte-actions-left-slot___DNOj0_1-3-29 .magritte-actions-side-slot-content___TlHrX_1-3-29 > .magritte-actions-icon-morph___-nNgW_1-3-29:first-child,
30
- .magritte-navbar-transparent-start___wysv0_1-3-29 .magritte-actions-end-stage___qHtTV_1-3-29 .magritte-actions-left-slot___DNOj0_1-3-29 .magritte-actions-side-slot-content___TlHrX_1-3-29 > .magritte-actions-icon-morph___-nNgW_1-3-29:first-child,
31
- .magritte-navbar-not-transparent___5KZNp_1-3-29 .magritte-actions-start-stage___MJ67a_1-3-29 .magritte-actions-left-slot___DNOj0_1-3-29 .magritte-actions-side-slot-content___TlHrX_1-3-29 > .magritte-actions-icon-morph___-nNgW_1-3-29:first-child,
32
- .magritte-navbar-not-transparent___5KZNp_1-3-29 .magritte-actions-end-stage___qHtTV_1-3-29 .magritte-actions-left-slot___DNOj0_1-3-29 .magritte-actions-side-slot-content___TlHrX_1-3-29 > .magritte-actions-icon-morph___-nNgW_1-3-29:first-child{
29
+ .magritte-navbar-transparent-end___6KqLR_1-4-0 .magritte-actions-start-stage___MJ67a_1-4-0 .magritte-actions-left-slot___DNOj0_1-4-0 .magritte-actions-side-slot-content___TlHrX_1-4-0 > .magritte-actions-icon-morph___-nNgW_1-4-0:first-child,
30
+ .magritte-navbar-transparent-start___wysv0_1-4-0 .magritte-actions-end-stage___qHtTV_1-4-0 .magritte-actions-left-slot___DNOj0_1-4-0 .magritte-actions-side-slot-content___TlHrX_1-4-0 > .magritte-actions-icon-morph___-nNgW_1-4-0:first-child,
31
+ .magritte-navbar-not-transparent___5KZNp_1-4-0 .magritte-actions-start-stage___MJ67a_1-4-0 .magritte-actions-left-slot___DNOj0_1-4-0 .magritte-actions-side-slot-content___TlHrX_1-4-0 > .magritte-actions-icon-morph___-nNgW_1-4-0:first-child,
32
+ .magritte-navbar-not-transparent___5KZNp_1-4-0 .magritte-actions-end-stage___qHtTV_1-4-0 .magritte-actions-left-slot___DNOj0_1-4-0 .magritte-actions-side-slot-content___TlHrX_1-4-0 > .magritte-actions-icon-morph___-nNgW_1-4-0:first-child{
33
33
  margin-left:var(--magritte-ui-icon-margin-not-transparent);
34
34
  }
35
- .magritte-navbar-transparent-end___6KqLR_1-3-29 .magritte-actions-start-stage___MJ67a_1-3-29 .magritte-actions-right-slot___aodtj_1-3-29 .magritte-actions-side-slot-content___TlHrX_1-3-29 > .magritte-actions-icon-morph___-nNgW_1-3-29:last-child,
36
- .magritte-navbar-transparent-start___wysv0_1-3-29 .magritte-actions-end-stage___qHtTV_1-3-29 .magritte-actions-right-slot___aodtj_1-3-29 .magritte-actions-side-slot-content___TlHrX_1-3-29 > .magritte-actions-icon-morph___-nNgW_1-3-29:last-child,
37
- .magritte-navbar-not-transparent___5KZNp_1-3-29 .magritte-actions-start-stage___MJ67a_1-3-29 .magritte-actions-right-slot___aodtj_1-3-29 .magritte-actions-side-slot-content___TlHrX_1-3-29 > .magritte-actions-icon-morph___-nNgW_1-3-29:last-child,
38
- .magritte-navbar-not-transparent___5KZNp_1-3-29 .magritte-actions-end-stage___qHtTV_1-3-29 .magritte-actions-right-slot___aodtj_1-3-29 .magritte-actions-side-slot-content___TlHrX_1-3-29 > .magritte-actions-icon-morph___-nNgW_1-3-29:last-child{
35
+ .magritte-navbar-transparent-end___6KqLR_1-4-0 .magritte-actions-start-stage___MJ67a_1-4-0 .magritte-actions-right-slot___aodtj_1-4-0 .magritte-actions-side-slot-content___TlHrX_1-4-0 > .magritte-actions-icon-morph___-nNgW_1-4-0:last-child,
36
+ .magritte-navbar-transparent-start___wysv0_1-4-0 .magritte-actions-end-stage___qHtTV_1-4-0 .magritte-actions-right-slot___aodtj_1-4-0 .magritte-actions-side-slot-content___TlHrX_1-4-0 > .magritte-actions-icon-morph___-nNgW_1-4-0:last-child,
37
+ .magritte-navbar-not-transparent___5KZNp_1-4-0 .magritte-actions-start-stage___MJ67a_1-4-0 .magritte-actions-right-slot___aodtj_1-4-0 .magritte-actions-side-slot-content___TlHrX_1-4-0 > .magritte-actions-icon-morph___-nNgW_1-4-0:last-child,
38
+ .magritte-navbar-not-transparent___5KZNp_1-4-0 .magritte-actions-end-stage___qHtTV_1-4-0 .magritte-actions-right-slot___aodtj_1-4-0 .magritte-actions-side-slot-content___TlHrX_1-4-0 > .magritte-actions-icon-morph___-nNgW_1-4-0:last-child{
39
39
  margin-right:var(--magritte-ui-icon-margin-not-transparent);
40
40
  }
41
- .magritte-navbar-transparent-end___6KqLR_1-3-29 .magritte-actions-end-stage___qHtTV_1-3-29 .magritte-actions-left-slot___DNOj0_1-3-29 .magritte-actions-side-slot-content___TlHrX_1-3-29 > .magritte-actions-icon-morph___-nNgW_1-3-29:first-child,
42
- .magritte-navbar-transparent-start___wysv0_1-3-29 .magritte-actions-start-stage___MJ67a_1-3-29 .magritte-actions-left-slot___DNOj0_1-3-29 .magritte-actions-side-slot-content___TlHrX_1-3-29 > .magritte-actions-icon-morph___-nNgW_1-3-29:first-child,
43
- .magritte-navbar-transparent___ULEh8_1-3-29 .magritte-actions-start-stage___MJ67a_1-3-29 .magritte-actions-left-slot___DNOj0_1-3-29 .magritte-actions-side-slot-content___TlHrX_1-3-29 > .magritte-actions-icon-morph___-nNgW_1-3-29:first-child,
44
- .magritte-navbar-transparent___ULEh8_1-3-29 .magritte-actions-end-stage___qHtTV_1-3-29 .magritte-actions-left-slot___DNOj0_1-3-29 .magritte-actions-side-slot-content___TlHrX_1-3-29 > .magritte-actions-icon-morph___-nNgW_1-3-29:first-child{
41
+ .magritte-navbar-transparent-end___6KqLR_1-4-0 .magritte-actions-end-stage___qHtTV_1-4-0 .magritte-actions-left-slot___DNOj0_1-4-0 .magritte-actions-side-slot-content___TlHrX_1-4-0 > .magritte-actions-icon-morph___-nNgW_1-4-0:first-child,
42
+ .magritte-navbar-transparent-start___wysv0_1-4-0 .magritte-actions-start-stage___MJ67a_1-4-0 .magritte-actions-left-slot___DNOj0_1-4-0 .magritte-actions-side-slot-content___TlHrX_1-4-0 > .magritte-actions-icon-morph___-nNgW_1-4-0:first-child,
43
+ .magritte-navbar-transparent___ULEh8_1-4-0 .magritte-actions-start-stage___MJ67a_1-4-0 .magritte-actions-left-slot___DNOj0_1-4-0 .magritte-actions-side-slot-content___TlHrX_1-4-0 > .magritte-actions-icon-morph___-nNgW_1-4-0:first-child,
44
+ .magritte-navbar-transparent___ULEh8_1-4-0 .magritte-actions-end-stage___qHtTV_1-4-0 .magritte-actions-left-slot___DNOj0_1-4-0 .magritte-actions-side-slot-content___TlHrX_1-4-0 > .magritte-actions-icon-morph___-nNgW_1-4-0:first-child{
45
45
  margin-left:var(--magritte-ui-icon-margin-transparent);
46
46
  }
47
- .magritte-navbar-transparent-end___6KqLR_1-3-29 .magritte-actions-end-stage___qHtTV_1-3-29 .magritte-actions-right-slot___aodtj_1-3-29 .magritte-actions-side-slot-content___TlHrX_1-3-29 > .magritte-actions-icon-morph___-nNgW_1-3-29:last-child,
48
- .magritte-navbar-transparent-start___wysv0_1-3-29 .magritte-actions-start-stage___MJ67a_1-3-29 .magritte-actions-right-slot___aodtj_1-3-29 .magritte-actions-side-slot-content___TlHrX_1-3-29 > .magritte-actions-icon-morph___-nNgW_1-3-29:last-child,
49
- .magritte-navbar-transparent___ULEh8_1-3-29 .magritte-actions-start-stage___MJ67a_1-3-29 .magritte-actions-right-slot___aodtj_1-3-29 .magritte-actions-side-slot-content___TlHrX_1-3-29 > .magritte-actions-icon-morph___-nNgW_1-3-29:last-child,
50
- .magritte-navbar-transparent___ULEh8_1-3-29 .magritte-actions-end-stage___qHtTV_1-3-29 .magritte-actions-right-slot___aodtj_1-3-29 .magritte-actions-side-slot-content___TlHrX_1-3-29 > .magritte-actions-icon-morph___-nNgW_1-3-29:last-child{
47
+ .magritte-navbar-transparent-end___6KqLR_1-4-0 .magritte-actions-end-stage___qHtTV_1-4-0 .magritte-actions-right-slot___aodtj_1-4-0 .magritte-actions-side-slot-content___TlHrX_1-4-0 > .magritte-actions-icon-morph___-nNgW_1-4-0:last-child,
48
+ .magritte-navbar-transparent-start___wysv0_1-4-0 .magritte-actions-start-stage___MJ67a_1-4-0 .magritte-actions-right-slot___aodtj_1-4-0 .magritte-actions-side-slot-content___TlHrX_1-4-0 > .magritte-actions-icon-morph___-nNgW_1-4-0:last-child,
49
+ .magritte-navbar-transparent___ULEh8_1-4-0 .magritte-actions-start-stage___MJ67a_1-4-0 .magritte-actions-right-slot___aodtj_1-4-0 .magritte-actions-side-slot-content___TlHrX_1-4-0 > .magritte-actions-icon-morph___-nNgW_1-4-0:last-child,
50
+ .magritte-navbar-transparent___ULEh8_1-4-0 .magritte-actions-end-stage___qHtTV_1-4-0 .magritte-actions-right-slot___aodtj_1-4-0 .magritte-actions-side-slot-content___TlHrX_1-4-0 > .magritte-actions-icon-morph___-nNgW_1-4-0:last-child{
51
51
  margin-right:var(--magritte-ui-icon-margin-transparent);
52
52
  }
53
- .magritte-navbar-transparent-start___wysv0_1-3-29 .magritte-actions-only-stage___cg10A_1-3-29 .magritte-actions-left-slot___DNOj0_1-3-29 .magritte-actions-side-slot-content___TlHrX_1-3-29 > .magritte-actions-icon-morph___-nNgW_1-3-29:first-child,
54
- .magritte-navbar-transparent-start___wysv0_1-3-29 .magritte-actions-only-stage___cg10A_1-3-29 .magritte-actions-right-slot___aodtj_1-3-29 .magritte-actions-side-slot-content-clone___jDxVm_1-3-29 > .magritte-actions-icon-morph___-nNgW_1-3-29:first-child{
53
+ .magritte-navbar-transparent-start___wysv0_1-4-0 .magritte-actions-only-stage___cg10A_1-4-0 .magritte-actions-left-slot___DNOj0_1-4-0 .magritte-actions-side-slot-content___TlHrX_1-4-0 > .magritte-actions-icon-morph___-nNgW_1-4-0:first-child,
54
+ .magritte-navbar-transparent-start___wysv0_1-4-0 .magritte-actions-only-stage___cg10A_1-4-0 .magritte-actions-right-slot___aodtj_1-4-0 .magritte-actions-side-slot-content-clone___jDxVm_1-4-0 > .magritte-actions-icon-morph___-nNgW_1-4-0:first-child{
55
55
  margin-left:calc(var(--magritte-ui-icon-margin-transparent) + (var(--magritte-ui-icon-margin-delta) * var(--magritte-ui-navbar-animation-progress)));
56
56
  }
57
- .magritte-navbar-transparent-start___wysv0_1-3-29 .magritte-actions-only-stage___cg10A_1-3-29 .magritte-actions-right-slot___aodtj_1-3-29 .magritte-actions-side-slot-content___TlHrX_1-3-29 > .magritte-actions-icon-morph___-nNgW_1-3-29:last-child,
58
- .magritte-navbar-transparent-start___wysv0_1-3-29 .magritte-actions-only-stage___cg10A_1-3-29 .magritte-actions-left-slot___DNOj0_1-3-29 .magritte-actions-side-slot-content-clone___jDxVm_1-3-29 > .magritte-actions-icon-morph___-nNgW_1-3-29:last-child{
57
+ .magritte-navbar-transparent-start___wysv0_1-4-0 .magritte-actions-only-stage___cg10A_1-4-0 .magritte-actions-right-slot___aodtj_1-4-0 .magritte-actions-side-slot-content___TlHrX_1-4-0 > .magritte-actions-icon-morph___-nNgW_1-4-0:last-child,
58
+ .magritte-navbar-transparent-start___wysv0_1-4-0 .magritte-actions-only-stage___cg10A_1-4-0 .magritte-actions-left-slot___DNOj0_1-4-0 .magritte-actions-side-slot-content-clone___jDxVm_1-4-0 > .magritte-actions-icon-morph___-nNgW_1-4-0:last-child{
59
59
  margin-right:calc(var(--magritte-ui-icon-margin-transparent) + (var(--magritte-ui-icon-margin-delta) * var(--magritte-ui-navbar-animation-progress)));
60
60
  }
61
- .magritte-navbar-transparent-end___6KqLR_1-3-29 .magritte-actions-only-stage___cg10A_1-3-29 .magritte-actions-left-slot___DNOj0_1-3-29 .magritte-actions-side-slot-content___TlHrX_1-3-29 > .magritte-actions-icon-morph___-nNgW_1-3-29:first-child,
62
- .magritte-navbar-transparent-end___6KqLR_1-3-29 .magritte-actions-only-stage___cg10A_1-3-29 .magritte-actions-right-slot___aodtj_1-3-29 .magritte-actions-side-slot-content-clone___jDxVm_1-3-29 > .magritte-actions-icon-morph___-nNgW_1-3-29:first-child{
61
+ .magritte-navbar-transparent-end___6KqLR_1-4-0 .magritte-actions-only-stage___cg10A_1-4-0 .magritte-actions-left-slot___DNOj0_1-4-0 .magritte-actions-side-slot-content___TlHrX_1-4-0 > .magritte-actions-icon-morph___-nNgW_1-4-0:first-child,
62
+ .magritte-navbar-transparent-end___6KqLR_1-4-0 .magritte-actions-only-stage___cg10A_1-4-0 .magritte-actions-right-slot___aodtj_1-4-0 .magritte-actions-side-slot-content-clone___jDxVm_1-4-0 > .magritte-actions-icon-morph___-nNgW_1-4-0:first-child{
63
63
  margin-left:calc(var(--magritte-ui-icon-margin-not-transparent) - (var(--magritte-ui-icon-margin-delta) * var(--magritte-ui-navbar-animation-progress)));
64
64
  }
65
- .magritte-navbar-transparent-end___6KqLR_1-3-29 .magritte-actions-only-stage___cg10A_1-3-29 .magritte-actions-right-slot___aodtj_1-3-29 .magritte-actions-side-slot-content___TlHrX_1-3-29 > .magritte-actions-icon-morph___-nNgW_1-3-29:last-child,
66
- .magritte-navbar-transparent-end___6KqLR_1-3-29 .magritte-actions-only-stage___cg10A_1-3-29 .magritte-actions-left-slot___DNOj0_1-3-29 .magritte-actions-side-slot-content-clone___jDxVm_1-3-29 > .magritte-actions-icon-morph___-nNgW_1-3-29:last-child{
65
+ .magritte-navbar-transparent-end___6KqLR_1-4-0 .magritte-actions-only-stage___cg10A_1-4-0 .magritte-actions-right-slot___aodtj_1-4-0 .magritte-actions-side-slot-content___TlHrX_1-4-0 > .magritte-actions-icon-morph___-nNgW_1-4-0:last-child,
66
+ .magritte-navbar-transparent-end___6KqLR_1-4-0 .magritte-actions-only-stage___cg10A_1-4-0 .magritte-actions-left-slot___DNOj0_1-4-0 .magritte-actions-side-slot-content-clone___jDxVm_1-4-0 > .magritte-actions-icon-morph___-nNgW_1-4-0:last-child{
67
67
  margin-right:calc(var(--magritte-ui-icon-margin-not-transparent) - (var(--magritte-ui-icon-margin-delta) * var(--magritte-ui-navbar-animation-progress)));
68
68
  }
69
- .magritte-actions-center-slot___hLAy6_1-3-29{
69
+ .magritte-actions-center-slot___hLAy6_1-4-0{
70
70
  display:flex;
71
71
  flex:1 1 auto;
72
72
  min-width:0;
73
73
  }
74
- .magritte-actions-center-slot___hLAy6_1-3-29.magritte-actions-center-slot-centered___merXQ_1-3-29{
74
+ .magritte-actions-center-slot___hLAy6_1-4-0.magritte-actions-center-slot-centered___merXQ_1-4-0{
75
75
  justify-content:center;
76
76
  }
77
- .magritte-actions-side-slot-content___TlHrX_1-3-29,
78
- .magritte-actions-side-slot-content-clone___jDxVm_1-3-29{
77
+ .magritte-actions-side-slot-content___TlHrX_1-4-0,
78
+ .magritte-actions-side-slot-content-clone___jDxVm_1-4-0{
79
79
  grid-area:1 / 1;
80
80
  display:flex;
81
81
  align-items:center;
82
82
  gap:4px;
83
83
  }
84
- .magritte-align-top___-QSFW_1-3-29 .magritte-actions-side-slot-content___TlHrX_1-3-29,
85
- .magritte-align-top___-QSFW_1-3-29 .magritte-actions-side-slot-content-clone___jDxVm_1-3-29{
84
+ .magritte-align-top___-QSFW_1-4-0 .magritte-actions-side-slot-content___TlHrX_1-4-0,
85
+ .magritte-align-top___-QSFW_1-4-0 .magritte-actions-side-slot-content-clone___jDxVm_1-4-0{
86
86
  align-items:start;
87
87
  }
88
- .magritte-align-bottom___FliHI_1-3-29 .magritte-actions-side-slot-content___TlHrX_1-3-29,
89
- .magritte-align-bottom___FliHI_1-3-29 .magritte-actions-side-slot-content-clone___jDxVm_1-3-29{
88
+ .magritte-align-bottom___FliHI_1-4-0 .magritte-actions-side-slot-content___TlHrX_1-4-0,
89
+ .magritte-align-bottom___FliHI_1-4-0 .magritte-actions-side-slot-content-clone___jDxVm_1-4-0{
90
90
  align-items:end;
91
91
  }
92
- .magritte-actions-side-slot-content-clone___jDxVm_1-3-29{
92
+ .magritte-actions-side-slot-content-clone___jDxVm_1-4-0{
93
93
  visibility:hidden;
94
94
  z-index:0;
95
95
  pointer-events:none;
96
96
  user-select:none;
97
97
  contain:style layout;
98
98
  }
99
- .magritte-title-container-wrapper___DQUcj_1-3-29{
99
+ .magritte-title-container-wrapper___DQUcj_1-4-0{
100
100
  display:flex;
101
101
  flex-direction:row;
102
102
  align-items:center;
@@ -104,29 +104,29 @@
104
104
  min-width:0;
105
105
  gap:12px;
106
106
  }
107
- .magritte-title-main-part___npoHN_1-3-29{
107
+ .magritte-title-main-part___npoHN_1-4-0{
108
108
  display:flex;
109
109
  flex-direction:column;
110
110
  flex:0 1 auto;
111
111
  min-width:0;
112
112
  }
113
- .magritte-title-left-slot___HTE7h_1-3-29{
113
+ .magritte-title-left-slot___HTE7h_1-4-0{
114
114
  display:flex;
115
115
  align-items:center;
116
116
  flex:0 0 auto;
117
117
  }
118
- .magritte-title-container___y9AIx_1-3-29{
118
+ .magritte-title-container___y9AIx_1-4-0{
119
119
  display:flex;
120
120
  flex-direction:row;
121
121
  align-items:center;
122
122
  gap:5px;
123
123
  min-height:var(--magritte-ui-navbar-title-container-min-height-small-override, 0);
124
124
  }
125
- .magritte-subtitle-container___nVUBu_1-3-29{
125
+ .magritte-subtitle-container___nVUBu_1-4-0{
126
126
  display:flex;
127
127
  }
128
- .magritte-subtitle-container___nVUBu_1-3-29 .magritte-text-morph-item___-vXru_1-3-29{
129
- color:var(--magritte-color-text-secondary-v24-7-0);
128
+ .magritte-subtitle-container___nVUBu_1-4-0 .magritte-text-morph-item___-vXru_1-4-0{
129
+ color:var(--magritte-ui-nav-bar-subtitle-color-override, var(--magritte-color-text-secondary-v24-7-1));
130
130
  font-family:"hh sans";
131
131
  font-weight:400;
132
132
  line-height:18px;
@@ -136,21 +136,21 @@
136
136
  text-transform:none;
137
137
  text-decoration:none;
138
138
  }
139
- .magritte-centered___Y2mlP_1-3-29 .magritte-subtitle-container___nVUBu_1-3-29,
140
- .magritte-centered___Y2mlP_1-3-29 .magritte-title-container___y9AIx_1-3-29{
139
+ .magritte-centered___Y2mlP_1-4-0 .magritte-subtitle-container___nVUBu_1-4-0,
140
+ .magritte-centered___Y2mlP_1-4-0 .magritte-title-container___y9AIx_1-4-0{
141
141
  justify-content:center;
142
142
  }
143
- .magritte-title-morph-item___t7Wf3_1-3-29{
143
+ .magritte-title-morph-item___t7Wf3_1-4-0{
144
144
  display:flex;
145
145
  min-width:0;
146
146
  }
147
- .magritte-title___ZbLgP_1-3-29{
147
+ .magritte-title___ZbLgP_1-4-0{
148
148
  display:flex;
149
149
  flex:0 1 auto;
150
150
  min-width:0;
151
151
  }
152
- .magritte-title___ZbLgP_1-3-29 .magritte-text-morph-item___-vXru_1-3-29{
153
- color:var(--magritte-color-text-primary-v24-7-0);
152
+ .magritte-title___ZbLgP_1-4-0 .magritte-text-morph-item___-vXru_1-4-0{
153
+ color:var(--magritte-ui-nav-bar-title-color-override, var(--magritte-color-text-primary-v24-7-1));
154
154
  font-family:"hh sans";
155
155
  font-weight:500;
156
156
  line-height:22px;
@@ -160,13 +160,13 @@
160
160
  text-transform:none;
161
161
  text-decoration:none;
162
162
  }
163
- .magritte-size-large___ISXfH_1-3-29 .magritte-title-main-part___npoHN_1-3-29{
163
+ .magritte-size-large___ISXfH_1-4-0 .magritte-title-main-part___npoHN_1-4-0{
164
164
  gap:4px;
165
165
  }
166
- .magritte-size-large___ISXfH_1-3-29 .magritte-title-container___y9AIx_1-3-29{
166
+ .magritte-size-large___ISXfH_1-4-0 .magritte-title-container___y9AIx_1-4-0{
167
167
  min-height:var(--magritte-ui-navbar-title-container-min-height-large-override, 0);
168
168
  }
169
- .magritte-size-large___ISXfH_1-3-29 .magritte-title___ZbLgP_1-3-29 .magritte-text-morph-item___-vXru_1-3-29{
169
+ .magritte-size-large___ISXfH_1-4-0 .magritte-title___ZbLgP_1-4-0 .magritte-text-morph-item___-vXru_1-4-0{
170
170
  font-family:"hh sans";
171
171
  font-weight:500;
172
172
  line-height:32px;
@@ -176,7 +176,7 @@
176
176
  text-transform:none;
177
177
  text-decoration:none;
178
178
  }
179
- .magritte-size-large___ISXfH_1-3-29 .magritte-subtitle-container___nVUBu_1-3-29 .magritte-text-morph-item___-vXru_1-3-29{
179
+ .magritte-size-large___ISXfH_1-4-0 .magritte-subtitle-container___nVUBu_1-4-0 .magritte-text-morph-item___-vXru_1-4-0{
180
180
  font-family:"hh sans";
181
181
  font-weight:400;
182
182
  line-height:22px;
@@ -186,56 +186,56 @@
186
186
  text-transform:none;
187
187
  text-decoration:none;
188
188
  }
189
- .magritte-pane-content___UVmC6_1-3-29{
189
+ .magritte-pane-content___UVmC6_1-4-0{
190
190
  position:relative;
191
191
  pointer-events:none;
192
192
  z-index:2;
193
193
  }
194
- .magritte-pane-background___PDZAX_1-3-29{
194
+ .magritte-pane-background___PDZAX_1-4-0{
195
195
  position:absolute;
196
- background-color:var(--magritte-ui-nav-bar-background-color-override, var(--magritte-ui-container-background-color-override, var(--magritte-color-background-body-v24-7-0)));
196
+ background-color:var(--magritte-ui-nav-bar-background-color-override, var(--magritte-ui-container-background-color-override, var(--magritte-color-background-body-v24-7-1)));
197
197
  opacity:0;
198
198
  inset:0;
199
199
  z-index:-1;
200
200
  transform-origin:0 0;
201
201
  }
202
- .magritte-navbar-transparent-start___wysv0_1-3-29 .magritte-pane-background___PDZAX_1-3-29{
202
+ .magritte-navbar-transparent-start___wysv0_1-4-0 .magritte-pane-background___PDZAX_1-4-0{
203
203
  opacity:calc(var(--magritte-ui-navbar-animation-progress) * 0.95);
204
204
  }
205
- .magritte-navbar-transparent-end___6KqLR_1-3-29 .magritte-pane-background___PDZAX_1-3-29{
205
+ .magritte-navbar-transparent-end___6KqLR_1-4-0 .magritte-pane-background___PDZAX_1-4-0{
206
206
  opacity:calc((1 - var(--magritte-ui-navbar-animation-progress)) * 0.95);
207
207
  }
208
- .magritte-navbar-not-transparent___5KZNp_1-3-29 .magritte-pane-background___PDZAX_1-3-29{
208
+ .magritte-navbar-not-transparent___5KZNp_1-4-0 .magritte-pane-background___PDZAX_1-4-0{
209
209
  opacity:0.95;
210
210
  }
211
- .magritte-morph-item___8kF46_1-3-29{
211
+ .magritte-morph-item___8kF46_1-4-0{
212
212
  line-height:0;
213
213
  transform-origin:var(--magritte-ui-morph-item-transform-origin-x, center) var(--magritte-ui-morph-item-transform-origin-y, center);
214
214
  }
215
- .magritte-morph-item-top___WPEkn_1-3-29{
215
+ .magritte-morph-item-top___WPEkn_1-4-0{
216
216
  --magritte-ui-morph-item-transform-origin-y:top;
217
217
  }
218
- .magritte-morph-item-bottom___zNbsF_1-3-29{
218
+ .magritte-morph-item-bottom___zNbsF_1-4-0{
219
219
  --magritte-ui-morph-item-transform-origin-y:bottom;
220
220
  }
221
- .magritte-morph-item-left___T6AMW_1-3-29{
221
+ .magritte-morph-item-left___T6AMW_1-4-0{
222
222
  --magritte-ui-morph-item-transform-origin-x:left;
223
223
  }
224
- .magritte-morph-item-right___EuT1E_1-3-29{
224
+ .magritte-morph-item-right___EuT1E_1-4-0{
225
225
  --magritte-ui-morph-item-transform-origin-x:right;
226
226
  }
227
- .magritte-pane___f8eFC_1-3-29{
227
+ .magritte-pane___f8eFC_1-4-0{
228
228
  position:relative;
229
229
  overflow:hidden;
230
230
  pointer-events:none;
231
231
  }
232
- .magritte-start-state-container___giBVb_1-3-29{
232
+ .magritte-start-state-container___giBVb_1-4-0{
233
233
  position:relative;
234
234
  z-index:1;
235
235
  box-sizing:border-box;
236
236
  pointer-events:auto;
237
237
  }
238
- .magritte-end-state-container___uiW8Q_1-3-29{
238
+ .magritte-end-state-container___uiW8Q_1-4-0{
239
239
  position:absolute;
240
240
  z-index:0;
241
241
  top:0;
@@ -244,66 +244,66 @@
244
244
  pointer-events:none;
245
245
  opacity:0;
246
246
  }
247
- .magritte-content-container___7s7vv_1-3-29{
247
+ .magritte-content-container___7s7vv_1-4-0{
248
248
  box-sizing:border-box;
249
249
  }
250
- .magritte-next-pane___H2oxQ_1-3-29{
250
+ .magritte-next-pane___H2oxQ_1-4-0{
251
251
  position:relative;
252
252
  }
253
- .magritte-nav-bar___RRGe0_1-3-29{
253
+ .magritte-nav-bar___RRGe0_1-4-0{
254
254
  top:0;
255
255
  position:sticky;
256
256
  pointer-events:none;
257
257
  overflow-anchor:none;
258
258
  z-index:10;
259
259
  }
260
- .magritte-nav-bar-overlay___Mq5ZD_1-3-29 .magritte-nav-bar-overlay-wrapper___y1VpY_1-3-29{
260
+ .magritte-nav-bar-overlay___Mq5ZD_1-4-0 .magritte-nav-bar-overlay-wrapper___y1VpY_1-4-0{
261
261
  position:absolute;
262
262
  inset:0;
263
263
  }
264
- .magritte-nav-bar-content-container___H-WMO_1-3-29{
264
+ .magritte-nav-bar-content-container___H-WMO_1-4-0{
265
265
  display:grid;
266
266
  position:relative;
267
267
  }
268
- .magritte-nav-bar-panes-container___5ZDLa_1-3-29{
268
+ .magritte-nav-bar-panes-container___5ZDLa_1-4-0{
269
269
  position:relative;
270
270
  z-index:1;
271
271
  grid-area:1 / 1;
272
272
  min-width:0;
273
273
  }
274
- .magritte-nav-bar-progressive-blur___qyeUV_1-3-29{
274
+ .magritte-nav-bar-progressive-blur___qyeUV_1-4-0{
275
275
  position:relative;
276
276
  z-index:0;
277
277
  transform-origin:0 0;
278
278
  grid-area:1 / 1;
279
279
  min-width:0;
280
280
  }
281
- .magritte-nav-bar-content-container___H-WMO_1-3-29 .magritte-nav-bar-stage___amDz7_1-3-29,
282
- .magritte-nav-bar-content-container___H-WMO_1-3-29 .nav-bar-layout-animation-stage-start,
283
- .magritte-nav-bar-content-container___H-WMO_1-3-29 .nav-bar-layout-animation-stage-end{
281
+ .magritte-nav-bar-content-container___H-WMO_1-4-0 .magritte-nav-bar-stage___amDz7_1-4-0,
282
+ .magritte-nav-bar-content-container___H-WMO_1-4-0 .nav-bar-layout-animation-stage-start,
283
+ .magritte-nav-bar-content-container___H-WMO_1-4-0 .nav-bar-layout-animation-stage-end{
284
284
  padding-top:calc(8px + var(--magritte-ui-nav-bar-padding-top-override, 0px));
285
285
  }
286
- .magritte-nav-bar-content-container___H-WMO_1-3-29 .magritte-next-pane___H2oxQ_1-3-29 .magritte-nav-bar-stage___amDz7_1-3-29,
287
- .magritte-nav-bar-content-container___H-WMO_1-3-29 .magritte-next-pane___H2oxQ_1-3-29 .nav-bar-layout-animation-stage-start,
288
- .magritte-nav-bar-content-container___H-WMO_1-3-29 .magritte-next-pane___H2oxQ_1-3-29 .nav-bar-layout-animation-stage-end{
286
+ .magritte-nav-bar-content-container___H-WMO_1-4-0 .magritte-next-pane___H2oxQ_1-4-0 .magritte-nav-bar-stage___amDz7_1-4-0,
287
+ .magritte-nav-bar-content-container___H-WMO_1-4-0 .magritte-next-pane___H2oxQ_1-4-0 .nav-bar-layout-animation-stage-start,
288
+ .magritte-nav-bar-content-container___H-WMO_1-4-0 .magritte-next-pane___H2oxQ_1-4-0 .nav-bar-layout-animation-stage-end{
289
289
  padding-top:8px;
290
290
  }
291
- .magritte-last-pane___Hf2No_1-3-29 .magritte-nav-bar-stage___amDz7_1-3-29,
292
- .magritte-last-pane___Hf2No_1-3-29 .nav-bar-layout-animation-stage-start,
293
- .magritte-last-pane___Hf2No_1-3-29 .nav-bar-layout-animation-stage-end{
291
+ .magritte-last-pane___Hf2No_1-4-0 .magritte-nav-bar-stage___amDz7_1-4-0,
292
+ .magritte-last-pane___Hf2No_1-4-0 .nav-bar-layout-animation-stage-start,
293
+ .magritte-last-pane___Hf2No_1-4-0 .nav-bar-layout-animation-stage-end{
294
294
  padding-bottom:var(--magritte-ui-nav-bar-stage-padding-bottom-override, 8px);
295
295
  }
296
- .magritte-next-pane___H2oxQ_1-3-29 .magritte-last-pane___Hf2No_1-3-29 .magritte-nav-bar-stage___amDz7_1-3-29,
297
- .magritte-next-pane___H2oxQ_1-3-29 .magritte-last-pane___Hf2No_1-3-29 .nav-bar-layout-animation-stage-start,
298
- .magritte-next-pane___H2oxQ_1-3-29 .magritte-last-pane___Hf2No_1-3-29 .nav-bar-layout-animation-stage-end{
296
+ .magritte-next-pane___H2oxQ_1-4-0 .magritte-last-pane___Hf2No_1-4-0 .magritte-nav-bar-stage___amDz7_1-4-0,
297
+ .magritte-next-pane___H2oxQ_1-4-0 .magritte-last-pane___Hf2No_1-4-0 .nav-bar-layout-animation-stage-start,
298
+ .magritte-next-pane___H2oxQ_1-4-0 .magritte-last-pane___Hf2No_1-4-0 .nav-bar-layout-animation-stage-end{
299
299
  padding-bottom:var(--magritte-ui-nav-bar-stage-padding-bottom-override, 16px);
300
300
  }
301
- .magritte-nav-bar-stage___amDz7_1-3-29{
301
+ .magritte-nav-bar-stage___amDz7_1-4-0{
302
302
  padding:8px var(--magritte-ui-nav-bar-stage-horizontal-padding-override, 16px);
303
303
  }
304
- .magritte-metrics-mode___h38aX_1-3-29 .magritte-morph-item___8kF46_1-3-29,
305
- .magritte-metrics-mode___h38aX_1-3-29 .magritte-pane___f8eFC_1-3-29,
306
- .magritte-metrics-mode___h38aX_1-3-29 .magritte-next-pane___H2oxQ_1-3-29{
304
+ .magritte-metrics-mode___h38aX_1-4-0 .magritte-morph-item___8kF46_1-4-0,
305
+ .magritte-metrics-mode___h38aX_1-4-0 .magritte-pane___f8eFC_1-4-0,
306
+ .magritte-metrics-mode___h38aX_1-4-0 .magritte-next-pane___H2oxQ_1-4-0{
307
307
  transform:none !important;
308
308
  }
309
309
  .nav-bar-layout-animation-stage-end,
@@ -314,43 +314,49 @@
314
314
  height:auto !important;
315
315
  transform:none !important;
316
316
  }
317
- .nav-bar-layout-animation-stage-end .magritte-layout-morph___I3SPy_1-3-29,
318
- .nav-bar-layout-animation-stage-start .magritte-layout-morph___I3SPy_1-3-29{
317
+ .nav-bar-layout-animation-stage-end .magritte-layout-morph___I3SPy_1-4-0,
318
+ .nav-bar-layout-animation-stage-start .magritte-layout-morph___I3SPy_1-4-0{
319
319
  position:static !important;
320
320
  width:auto !important;
321
321
  height:auto !important;
322
322
  transform:none !important;
323
323
  }
324
- .magritte-layout-morph___I3SPy_1-3-29{
324
+ .magritte-layout-morph___I3SPy_1-4-0{
325
325
  display:block;
326
326
  position:absolute;
327
327
  transform-origin:var(--magritte-ui-morph-item-transform-origin-x, center) var(--magritte-ui-morph-item-transform-origin-y, center);
328
328
  z-index:3;
329
329
  }
330
- .magritte-animation-stage-progress___5FthT_1-3-29 .magritte-layout-morph___I3SPy_1-3-29 > *{
330
+ .magritte-animation-stage-progress___5FthT_1-4-0 .magritte-layout-morph___I3SPy_1-4-0 > *{
331
331
  margin:0 !important;
332
332
  }
333
- .magritte-layout-morph-start___9-krP_1-3-29{
333
+ .magritte-layout-morph-start___9-krP_1-4-0{
334
334
  z-index:2;
335
335
  }
336
- .magritte-layout-morph-end___LIg4d_1-3-29{
336
+ .magritte-layout-morph-end___LIg4d_1-4-0{
337
337
  z-index:1;
338
338
  }
339
- .nav-bar-layout-animation-stage-start .magritte-layout-morph___I3SPy_1-3-29{
339
+ .nav-bar-layout-animation-stage-start .magritte-layout-morph___I3SPy_1-4-0{
340
340
  display:contents;
341
341
  }
342
- .nav-bar-layout-animation-stage-start .magritte-layout-morph-end___LIg4d_1-3-29{
342
+ .nav-bar-layout-animation-stage-start .magritte-layout-morph-end___LIg4d_1-4-0{
343
343
  display:none;
344
344
  }
345
- .nav-bar-layout-animation-stage-end .magritte-layout-morph___I3SPy_1-3-29{
345
+ .nav-bar-layout-animation-stage-end .magritte-layout-morph___I3SPy_1-4-0{
346
346
  display:contents;
347
347
  }
348
- .nav-bar-layout-animation-stage-end .magritte-layout-morph-start___9-krP_1-3-29{
348
+ .nav-bar-layout-animation-stage-end .magritte-layout-morph-start___9-krP_1-4-0{
349
349
  display:none;
350
350
  }
351
- .magritte-divider-container___-NdWi_1-3-29{
351
+ .magritte-divider-container___-NdWi_1-4-0{
352
352
  position:absolute;
353
353
  width:100%;
354
354
  bottom:0;
355
355
  z-index:1;
356
356
  }
357
+ .magritte-navbar-transparent-start___wysv0_1-4-0 .magritte-divider-container___-NdWi_1-4-0{
358
+ opacity:var(--magritte-ui-navbar-animation-progress);
359
+ }
360
+ .magritte-navbar-transparent-end___6KqLR_1-4-0 .magritte-divider-container___-NdWi_1-4-0{
361
+ opacity:calc(1 - var(--magritte-ui-navbar-animation-progress));
362
+ }
package/index.js CHANGED
@@ -15,7 +15,7 @@ import 'react/jsx-runtime';
15
15
  import 'react';
16
16
  import 'classnames';
17
17
  import '@hh.ru/magritte-ui-icon';
18
- import './nav-bar-BFd5MVDE.js';
18
+ import './nav-bar-B7uPipzE.js';
19
19
  import './internal/MetricsProvider.js';
20
20
  import './internal/utils.js';
21
21
  import 'motion';
@@ -24,7 +24,10 @@ const useNavBarMetrics = (panesRegistry, rootRef, scrollAdapter) => {
24
24
  top,
25
25
  bottom: top + height,
26
26
  animationHeight: heightDelta ||
27
- panes.filter((p) => p.animated).reduce((height, p) => height + (p.startHeight ?? 0), 0),
27
+ panes.filter((p) => p.animated).reduce((acc, p) => acc + (p.startHeight ?? 0), 0) ||
28
+ // если ни одна панель не схлопывается и не анимируется, всё равно нужен ненулевой
29
+ // диапазон скролла, чтобы проигрывалась анимация прозрачности фона навбара
30
+ height,
28
31
  };
29
32
  }
30
33
  return metricsRef.current;
@@ -1 +1 @@
1
- {"version":3,"file":"useNavBarMetrics.js","sources":["src/internal/useNavBarMetrics.ts"],"sourcesContent":["import { type MutableRefObject, RefObject, useRef } from 'react';\n\nimport { type PaneStore } from '@hh.ru/magritte-ui-nav-bar/internal/PaneStore';\nimport { ScrollAdapter } from '@hh.ru/magritte-ui-nav-bar/internal/useScrollAdapter';\nimport { getRelativeOffset, useActualRef, useInitOnce } from '@hh.ru/magritte-ui-nav-bar/internal/utils';\n\nexport interface NavBarMetrics {\n heightDelta: number;\n top: number;\n bottom: number;\n animationHeight: number;\n}\n\nexport const useNavBarMetrics = (\n panesRegistry: Set<PaneStore>,\n rootRef: RefObject<HTMLElement>,\n scrollAdapter: ScrollAdapter\n): [() => NavBarMetrics, VoidFunction] => {\n const metricsRef: MutableRefObject<NavBarMetrics | null> = useRef(null);\n const panesRegistryRef = useActualRef(panesRegistry);\n\n const getNavBarMetrics = useInitOnce(() => () => {\n if (!metricsRef.current) {\n // расстояние от верхнего края NavBar до верхнего края контейнера со скроллом\n const top = getRelativeOffset(scrollAdapter, rootRef.current);\n const panes = [...panesRegistryRef.current.values()].map((pane) => pane.data);\n const heightDelta = panes.reduce(\n (delta, pane) =>\n delta +\n (pane.foldable\n ? (pane.startHeight ?? 0)\n : (pane.startHeight ?? 0) - (pane.endHeight ?? pane.startHeight ?? 0)),\n 0\n );\n const positions = panes\n .map((pane) => ({ top: pane.top ?? 0, bottom: (pane.top ?? 0) + (pane.startHeight ?? 0) }))\n .sort((a, b) => a.top - b.top);\n const height = (positions[positions.length - 1]?.bottom ?? 0) - (positions[0]?.top ?? 0);\n\n metricsRef.current = {\n heightDelta,\n top,\n bottom: top + height,\n animationHeight:\n heightDelta ||\n panes.filter((p) => p.animated).reduce((height, p) => height + (p.startHeight ?? 0), 0),\n };\n }\n\n return metricsRef.current;\n });\n\n const invalidateMetricsCache = useInitOnce(() => () => (metricsRef.current = null));\n\n return [getNavBarMetrics, invalidateMetricsCache];\n};\n"],"names":[],"mappings":";;;;AAaa,MAAA,gBAAgB,GAAG,CAC5B,aAA6B,EAC7B,OAA+B,EAC/B,aAA4B,KACS;AACrC,IAAA,MAAM,UAAU,GAA2C,MAAM,CAAC,IAAI,CAAC,CAAC;AACxE,IAAA,MAAM,gBAAgB,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;IAErD,MAAM,gBAAgB,GAAG,WAAW,CAAC,MAAM,MAAK;AAC5C,QAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;;YAErB,MAAM,GAAG,GAAG,iBAAiB,CAAC,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YAC9D,MAAM,KAAK,GAAG,CAAC,GAAG,gBAAgB,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9E,YAAA,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAC5B,CAAC,KAAK,EAAE,IAAI,KACR,KAAK;iBACJ,IAAI,CAAC,QAAQ;AACV,uBAAG,IAAI,CAAC,WAAW,IAAI,CAAC;sBACtB,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,EAC9E,CAAC,CACJ,CAAC;YACF,MAAM,SAAS,GAAG,KAAK;AAClB,iBAAA,GAAG,CAAC,CAAC,IAAI,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;AAC1F,iBAAA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YACnC,MAAM,MAAM,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;YAEzF,UAAU,CAAC,OAAO,GAAG;gBACjB,WAAW;gBACX,GAAG;gBACH,MAAM,EAAE,GAAG,GAAG,MAAM;AACpB,gBAAA,eAAe,EACX,WAAW;AACX,oBAAA,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,MAAM,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;aAC9F,CAAC;SACL;QAED,OAAO,UAAU,CAAC,OAAO,CAAC;AAC9B,KAAC,CAAC,CAAC;AAEH,IAAA,MAAM,sBAAsB,GAAG,WAAW,CAAC,MAAM,OAAO,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;AAEpF,IAAA,OAAO,CAAC,gBAAgB,EAAE,sBAAsB,CAAC,CAAC;AACtD;;;;"}
1
+ {"version":3,"file":"useNavBarMetrics.js","sources":["src/internal/useNavBarMetrics.ts"],"sourcesContent":["import { type MutableRefObject, RefObject, useRef } from 'react';\n\nimport { type PaneStore } from '@hh.ru/magritte-ui-nav-bar/internal/PaneStore';\nimport { ScrollAdapter } from '@hh.ru/magritte-ui-nav-bar/internal/useScrollAdapter';\nimport { getRelativeOffset, useActualRef, useInitOnce } from '@hh.ru/magritte-ui-nav-bar/internal/utils';\n\nexport interface NavBarMetrics {\n heightDelta: number;\n top: number;\n bottom: number;\n animationHeight: number;\n}\n\nexport const useNavBarMetrics = (\n panesRegistry: Set<PaneStore>,\n rootRef: RefObject<HTMLElement>,\n scrollAdapter: ScrollAdapter\n): [() => NavBarMetrics, VoidFunction] => {\n const metricsRef: MutableRefObject<NavBarMetrics | null> = useRef(null);\n const panesRegistryRef = useActualRef(panesRegistry);\n\n const getNavBarMetrics = useInitOnce(() => () => {\n if (!metricsRef.current) {\n // расстояние от верхнего края NavBar до верхнего края контейнера со скроллом\n const top = getRelativeOffset(scrollAdapter, rootRef.current);\n const panes = [...panesRegistryRef.current.values()].map((pane) => pane.data);\n const heightDelta = panes.reduce(\n (delta, pane) =>\n delta +\n (pane.foldable\n ? (pane.startHeight ?? 0)\n : (pane.startHeight ?? 0) - (pane.endHeight ?? pane.startHeight ?? 0)),\n 0\n );\n const positions = panes\n .map((pane) => ({ top: pane.top ?? 0, bottom: (pane.top ?? 0) + (pane.startHeight ?? 0) }))\n .sort((a, b) => a.top - b.top);\n const height = (positions[positions.length - 1]?.bottom ?? 0) - (positions[0]?.top ?? 0);\n\n metricsRef.current = {\n heightDelta,\n top,\n bottom: top + height,\n animationHeight:\n heightDelta ||\n panes.filter((p) => p.animated).reduce((acc, p) => acc + (p.startHeight ?? 0), 0) ||\n // если ни одна панель не схлопывается и не анимируется, всё равно нужен ненулевой\n // диапазон скролла, чтобы проигрывалась анимация прозрачности фона навбара\n height,\n };\n }\n\n return metricsRef.current;\n });\n\n const invalidateMetricsCache = useInitOnce(() => () => (metricsRef.current = null));\n\n return [getNavBarMetrics, invalidateMetricsCache];\n};\n"],"names":[],"mappings":";;;;AAaa,MAAA,gBAAgB,GAAG,CAC5B,aAA6B,EAC7B,OAA+B,EAC/B,aAA4B,KACS;AACrC,IAAA,MAAM,UAAU,GAA2C,MAAM,CAAC,IAAI,CAAC,CAAC;AACxE,IAAA,MAAM,gBAAgB,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;IAErD,MAAM,gBAAgB,GAAG,WAAW,CAAC,MAAM,MAAK;AAC5C,QAAA,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE;;YAErB,MAAM,GAAG,GAAG,iBAAiB,CAAC,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;YAC9D,MAAM,KAAK,GAAG,CAAC,GAAG,gBAAgB,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9E,YAAA,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAC5B,CAAC,KAAK,EAAE,IAAI,KACR,KAAK;iBACJ,IAAI,CAAC,QAAQ;AACV,uBAAG,IAAI,CAAC,WAAW,IAAI,CAAC;sBACtB,CAAC,IAAI,CAAC,WAAW,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,CAAC,EAC9E,CAAC,CACJ,CAAC;YACF,MAAM,SAAS,GAAG,KAAK;AAClB,iBAAA,GAAG,CAAC,CAAC,IAAI,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,WAAW,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;AAC1F,iBAAA,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YACnC,MAAM,MAAM,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;YAEzF,UAAU,CAAC,OAAO,GAAG;gBACjB,WAAW;gBACX,GAAG;gBACH,MAAM,EAAE,GAAG,GAAG,MAAM;AACpB,gBAAA,eAAe,EACX,WAAW;AACX,oBAAA,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC;;;oBAGjF,MAAM;aACb,CAAC;SACL;QAED,OAAO,UAAU,CAAC,OAAO,CAAC;AAC9B,KAAC,CAAC,CAAC;AAEH,IAAA,MAAM,sBAAsB,GAAG,WAAW,CAAC,MAAM,OAAO,UAAU,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC;AAEpF,IAAA,OAAO,CAAC,gBAAgB,EAAE,sBAAsB,CAAC,CAAC;AACtD;;;;"}
@@ -0,0 +1,5 @@
1
+ import './index.css';
2
+ var styles = {"actions-container":"magritte-actions-container___CBgYW_1-4-0","actionsContainer":"magritte-actions-container___CBgYW_1-4-0","actions-no-children":"magritte-actions-no-children___rgJUl_1-4-0","actionsNoChildren":"magritte-actions-no-children___rgJUl_1-4-0","actions-left-slot":"magritte-actions-left-slot___DNOj0_1-4-0","actionsLeftSlot":"magritte-actions-left-slot___DNOj0_1-4-0","actions-right-slot":"magritte-actions-right-slot___aodtj_1-4-0","actionsRightSlot":"magritte-actions-right-slot___aodtj_1-4-0","navbar-transparent-end":"magritte-navbar-transparent-end___6KqLR_1-4-0","navbarTransparentEnd":"magritte-navbar-transparent-end___6KqLR_1-4-0","actions-start-stage":"magritte-actions-start-stage___MJ67a_1-4-0","actionsStartStage":"magritte-actions-start-stage___MJ67a_1-4-0","actions-side-slot-content":"magritte-actions-side-slot-content___TlHrX_1-4-0","actionsSideSlotContent":"magritte-actions-side-slot-content___TlHrX_1-4-0","actions-icon-morph":"magritte-actions-icon-morph___-nNgW_1-4-0","actionsIconMorph":"magritte-actions-icon-morph___-nNgW_1-4-0","navbar-transparent-start":"magritte-navbar-transparent-start___wysv0_1-4-0","navbarTransparentStart":"magritte-navbar-transparent-start___wysv0_1-4-0","actions-end-stage":"magritte-actions-end-stage___qHtTV_1-4-0","actionsEndStage":"magritte-actions-end-stage___qHtTV_1-4-0","navbar-not-transparent":"magritte-navbar-not-transparent___5KZNp_1-4-0","navbarNotTransparent":"magritte-navbar-not-transparent___5KZNp_1-4-0","navbar-transparent":"magritte-navbar-transparent___ULEh8_1-4-0","navbarTransparent":"magritte-navbar-transparent___ULEh8_1-4-0","actions-only-stage":"magritte-actions-only-stage___cg10A_1-4-0","actionsOnlyStage":"magritte-actions-only-stage___cg10A_1-4-0","actions-side-slot-content-clone":"magritte-actions-side-slot-content-clone___jDxVm_1-4-0","actionsSideSlotContentClone":"magritte-actions-side-slot-content-clone___jDxVm_1-4-0","actions-center-slot":"magritte-actions-center-slot___hLAy6_1-4-0","actionsCenterSlot":"magritte-actions-center-slot___hLAy6_1-4-0","actions-center-slot-centered":"magritte-actions-center-slot-centered___merXQ_1-4-0","actionsCenterSlotCentered":"magritte-actions-center-slot-centered___merXQ_1-4-0","align-top":"magritte-align-top___-QSFW_1-4-0","alignTop":"magritte-align-top___-QSFW_1-4-0","align-bottom":"magritte-align-bottom___FliHI_1-4-0","alignBottom":"magritte-align-bottom___FliHI_1-4-0","title-container-wrapper":"magritte-title-container-wrapper___DQUcj_1-4-0","titleContainerWrapper":"magritte-title-container-wrapper___DQUcj_1-4-0","title-main-part":"magritte-title-main-part___npoHN_1-4-0","titleMainPart":"magritte-title-main-part___npoHN_1-4-0","title-left-slot":"magritte-title-left-slot___HTE7h_1-4-0","titleLeftSlot":"magritte-title-left-slot___HTE7h_1-4-0","title-container":"magritte-title-container___y9AIx_1-4-0","titleContainer":"magritte-title-container___y9AIx_1-4-0","subtitle-container":"magritte-subtitle-container___nVUBu_1-4-0","subtitleContainer":"magritte-subtitle-container___nVUBu_1-4-0","text-morph-item":"magritte-text-morph-item___-vXru_1-4-0","textMorphItem":"magritte-text-morph-item___-vXru_1-4-0","centered":"magritte-centered___Y2mlP_1-4-0","title-morph-item":"magritte-title-morph-item___t7Wf3_1-4-0","titleMorphItem":"magritte-title-morph-item___t7Wf3_1-4-0","title":"magritte-title___ZbLgP_1-4-0","size-large":"magritte-size-large___ISXfH_1-4-0","sizeLarge":"magritte-size-large___ISXfH_1-4-0","pane-content":"magritte-pane-content___UVmC6_1-4-0","paneContent":"magritte-pane-content___UVmC6_1-4-0","pane-background":"magritte-pane-background___PDZAX_1-4-0","paneBackground":"magritte-pane-background___PDZAX_1-4-0","morph-item":"magritte-morph-item___8kF46_1-4-0","morphItem":"magritte-morph-item___8kF46_1-4-0","morph-item-top":"magritte-morph-item-top___WPEkn_1-4-0","morphItemTop":"magritte-morph-item-top___WPEkn_1-4-0","morph-item-bottom":"magritte-morph-item-bottom___zNbsF_1-4-0","morphItemBottom":"magritte-morph-item-bottom___zNbsF_1-4-0","morph-item-left":"magritte-morph-item-left___T6AMW_1-4-0","morphItemLeft":"magritte-morph-item-left___T6AMW_1-4-0","morph-item-right":"magritte-morph-item-right___EuT1E_1-4-0","morphItemRight":"magritte-morph-item-right___EuT1E_1-4-0","pane":"magritte-pane___f8eFC_1-4-0","start-state-container":"magritte-start-state-container___giBVb_1-4-0","startStateContainer":"magritte-start-state-container___giBVb_1-4-0","end-state-container":"magritte-end-state-container___uiW8Q_1-4-0","endStateContainer":"magritte-end-state-container___uiW8Q_1-4-0","content-container":"magritte-content-container___7s7vv_1-4-0","contentContainer":"magritte-content-container___7s7vv_1-4-0","next-pane":"magritte-next-pane___H2oxQ_1-4-0","nextPane":"magritte-next-pane___H2oxQ_1-4-0","nav-bar":"magritte-nav-bar___RRGe0_1-4-0","navBar":"magritte-nav-bar___RRGe0_1-4-0","nav-bar-overlay":"magritte-nav-bar-overlay___Mq5ZD_1-4-0","navBarOverlay":"magritte-nav-bar-overlay___Mq5ZD_1-4-0","nav-bar-overlay-wrapper":"magritte-nav-bar-overlay-wrapper___y1VpY_1-4-0","navBarOverlayWrapper":"magritte-nav-bar-overlay-wrapper___y1VpY_1-4-0","nav-bar-content-container":"magritte-nav-bar-content-container___H-WMO_1-4-0","navBarContentContainer":"magritte-nav-bar-content-container___H-WMO_1-4-0","nav-bar-panes-container":"magritte-nav-bar-panes-container___5ZDLa_1-4-0","navBarPanesContainer":"magritte-nav-bar-panes-container___5ZDLa_1-4-0","nav-bar-progressive-blur":"magritte-nav-bar-progressive-blur___qyeUV_1-4-0","navBarProgressiveBlur":"magritte-nav-bar-progressive-blur___qyeUV_1-4-0","nav-bar-stage":"magritte-nav-bar-stage___amDz7_1-4-0","navBarStage":"magritte-nav-bar-stage___amDz7_1-4-0","last-pane":"magritte-last-pane___Hf2No_1-4-0","lastPane":"magritte-last-pane___Hf2No_1-4-0","metrics-mode":"magritte-metrics-mode___h38aX_1-4-0","metricsMode":"magritte-metrics-mode___h38aX_1-4-0","layout-morph":"magritte-layout-morph___I3SPy_1-4-0","layoutMorph":"magritte-layout-morph___I3SPy_1-4-0","animation-stage-progress":"magritte-animation-stage-progress___5FthT_1-4-0","animationStageProgress":"magritte-animation-stage-progress___5FthT_1-4-0","layout-morph-start":"magritte-layout-morph-start___9-krP_1-4-0","layoutMorphStart":"magritte-layout-morph-start___9-krP_1-4-0","layout-morph-end":"magritte-layout-morph-end___LIg4d_1-4-0","layoutMorphEnd":"magritte-layout-morph-end___LIg4d_1-4-0","divider-container":"magritte-divider-container___-NdWi_1-4-0","dividerContainer":"magritte-divider-container___-NdWi_1-4-0"};
3
+
4
+ export { styles as s };
5
+ //# sourceMappingURL=nav-bar-B7uPipzE.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nav-bar-B7uPipzE.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hh.ru/magritte-ui-nav-bar",
3
- "version": "1.3.29",
3
+ "version": "1.4.0",
4
4
  "main": "index.js",
5
5
  "types": "index.d.ts",
6
6
  "sideEffects": [
@@ -29,16 +29,16 @@
29
29
  "dependencies": {
30
30
  "@hh.ru/magritte-common-use-multiple-refs": "1.1.11",
31
31
  "@hh.ru/magritte-common-use-when-font-loaded": "1.0.14",
32
- "@hh.ru/magritte-design-tokens": "24.7.0",
32
+ "@hh.ru/magritte-design-tokens": "24.7.1",
33
33
  "@hh.ru/magritte-internal-accessible-region": "1.0.1",
34
34
  "@hh.ru/magritte-internal-custom-scroll": "2.1.1",
35
35
  "@hh.ru/magritte-internal-default-props-context": "1.0.2",
36
36
  "@hh.ru/magritte-internal-slot-registry": "1.1.0",
37
- "@hh.ru/magritte-ui-divider": "3.1.3",
38
- "@hh.ru/magritte-ui-icon": "14.2.9",
39
- "@hh.ru/magritte-ui-layer": "3.2.4",
37
+ "@hh.ru/magritte-ui-divider": "3.1.4",
38
+ "@hh.ru/magritte-ui-icon": "14.2.10",
39
+ "@hh.ru/magritte-ui-layer": "3.2.5",
40
40
  "@hh.ru/magritte-ui-mock-component": "1.1.7",
41
- "@hh.ru/magritte-ui-typography": "5.3.3"
41
+ "@hh.ru/magritte-ui-typography": "5.3.4"
42
42
  },
43
- "gitHead": "19a8301c2c8aab5d6eff3d1311e08dc34c2a81d9"
43
+ "gitHead": "9f10e45677eb8f50f47c766674fb072a4dc88dc0"
44
44
  }
package/public/Actions.js CHANGED
@@ -7,7 +7,7 @@ import { EnvironmentFingerprintNode } from './EnvironmentFingerprintNode.js';
7
7
  import { Morph } from './Morph.js';
8
8
  import { useAnimationStage } from './Stage.js';
9
9
  import { useActionsDefaultProps, useActionsIconsDefaultProps } from './defaultProps.js';
10
- import { s as styles } from '../nav-bar-BFd5MVDE.js';
10
+ import { s as styles } from '../nav-bar-B7uPipzE.js';
11
11
  import '../internal/MetricsProvider.js';
12
12
  import '../internal/utils.js';
13
13
  import 'motion';
@@ -10,7 +10,7 @@ import { usePaneStore } from '../internal/PaneStore.js';
10
10
  import { useInert } from '../internal/useInert.js';
11
11
  import { useActualRef, useStoreSyncedTransform, lerp, calcMorphParams } from '../internal/utils.js';
12
12
  import { AnimationStageContext } from './LayoutStage.js';
13
- import { s as styles } from '../nav-bar-BFd5MVDE.js';
13
+ import { s as styles } from '../nav-bar-B7uPipzE.js';
14
14
  import '../internal/KeyedSubscriptions.js';
15
15
  import 'motion';
16
16
  import '../internal/NavBarContext.js';
@@ -9,7 +9,7 @@ import { MorphStoreProvider, useMorphStore } from '../internal/MorphStore.js';
9
9
  import { usePaneStore } from '../internal/PaneStore.js';
10
10
  import { useInitOnce } from '../internal/utils.js';
11
11
  import { EnvironmentFingerprintNode, useEnvironmentFingerprint } from './EnvironmentFingerprintNode.js';
12
- import { s as styles } from '../nav-bar-BFd5MVDE.js';
12
+ import { s as styles } from '../nav-bar-B7uPipzE.js';
13
13
  import '../internal/KeyedSubscriptions.js';
14
14
  import 'motion';
15
15
  import '../internal/NavBarContext.js';
package/public/Morph.js CHANGED
@@ -9,7 +9,7 @@ import { usePaneStore } from '../internal/PaneStore.js';
9
9
  import { useStoreSyncedTransform, calcMorphParams, lerp } from '../internal/utils.js';
10
10
  import { useEnvironmentFingerprint } from './EnvironmentFingerprintNode.js';
11
11
  import { useAnimationStage } from './Stage.js';
12
- import { s as styles } from '../nav-bar-BFd5MVDE.js';
12
+ import { s as styles } from '../nav-bar-B7uPipzE.js';
13
13
  import '../internal/KeyedSubscriptions.js';
14
14
  import 'motion';
15
15
  import '../internal/NavBarContext.js';
package/public/NavBar.js CHANGED
@@ -18,7 +18,7 @@ import { useInitOnce, scheduleMicro, scheduleMacro, remap } from '../internal/ut
18
18
  import { isPaneElement, ExternalPane } from './Pane.js';
19
19
  import { useTriggerSlot } from './TriggerContext.js';
20
20
  import { useNavBarRootDefaultProps } from './defaultProps.js';
21
- import { s as styles } from '../nav-bar-BFd5MVDE.js';
21
+ import { s as styles } from '../nav-bar-B7uPipzE.js';
22
22
  import '@hh.ru/magritte-internal-custom-scroll';
23
23
  import 'motion';
24
24
  import '../internal/MorphStore.js';
@@ -136,7 +136,7 @@ const NavBar = (props) => {
136
136
  [styles.navbarNotTransparent]: !transparent,
137
137
  [styles.navbarTransparent]: transparent === true,
138
138
  [styles.navBarOverlay]: overlay,
139
- }), ref: rootRef, measureClassName: styles.metricsMode, children: jsx("div", { className: styles.navBarOverlayWrapper, children: jsxs("div", { className: styles.navBarContentContainer, children: [jsx(motion.div, { style: { '--magritte-ui-navbar-animation-progress': totalAnimationProgress }, className: styles.navBarPanesContainer, children: jsx(NavBarContext.Provider, { value: registerPaneStore, children: nested }) }), jsx(motion.div, { className: styles.dividerContainer, style: { ...dividerStyle, visibility: dividerVisibility }, children: jsx(Divider, {}) })] }) }) }) }));
139
+ }), ref: rootRef, measureClassName: styles.metricsMode, children: jsx("div", { className: styles.navBarOverlayWrapper, children: jsxs(motion.div, { className: styles.navBarContentContainer, style: { '--magritte-ui-navbar-animation-progress': totalAnimationProgress }, children: [jsx("div", { className: styles.navBarPanesContainer, children: jsx(NavBarContext.Provider, { value: registerPaneStore, children: nested }) }), jsx(motion.div, { className: styles.dividerContainer, style: { ...dividerStyle, visibility: dividerVisibility }, children: jsx(Divider, {}) })] }) }) }) }));
140
140
  };
141
141
 
142
142
  export { NavBar };
@@ -1 +1 @@
1
- {"version":3,"file":"NavBar.js","sources":["src/public/NavBar.tsx"],"sourcesContent":["import React, { Children, type ReactNode, type RefObject, useLayoutEffect, useRef, type FC } from 'react';\nimport classNames from 'classnames';\nimport { motion, type MotionStyle, MotionValue, frame } from 'motion/react';\n\nimport { Divider, type ShowDivider } from '@hh.ru/magritte-ui-divider';\nimport { Layer } from '@hh.ru/magritte-ui-layer';\nimport { MetricsProvider } from '@hh.ru/magritte-ui-nav-bar/internal/MetricsProvider';\nimport { NavBarContext } from '@hh.ru/magritte-ui-nav-bar/internal/NavBarContext';\nimport { PaneStore } from '@hh.ru/magritte-ui-nav-bar/internal/PaneStore';\nimport { useAnimationRanges } from '@hh.ru/magritte-ui-nav-bar/internal/useAnimationRanges';\nimport { useBindScrollToAnimationProgress } from '@hh.ru/magritte-ui-nav-bar/internal/useBindScrollToAnimationProgress';\nimport { useNavBarMetrics } from '@hh.ru/magritte-ui-nav-bar/internal/useNavBarMetrics';\nimport { useResetFocus } from '@hh.ru/magritte-ui-nav-bar/internal/useResetFocus';\nimport { useScrollAdapter } from '@hh.ru/magritte-ui-nav-bar/internal/useScrollAdapter';\nimport { useSnapScroll } from '@hh.ru/magritte-ui-nav-bar/internal/useSnapScroll';\nimport { useSyncMotionValue } from '@hh.ru/magritte-ui-nav-bar/internal/useSyncMotionValue';\nimport { remap, scheduleMicro, scheduleMacro, useInitOnce } from '@hh.ru/magritte-ui-nav-bar/internal/utils';\nimport {\n type PaneElement,\n type InternalPaneProps,\n ExternalPane,\n isPaneElement,\n} from '@hh.ru/magritte-ui-nav-bar/public/Pane';\nimport { type TriggerEdge, useTriggerSlot } from '@hh.ru/magritte-ui-nav-bar/public/TriggerContext';\nimport { useNavBarRootDefaultProps } from '@hh.ru/magritte-ui-nav-bar/public/defaultProps';\n\nimport styles from './nav-bar.less';\n\nexport interface NavBarProps {\n /**\n * В качестве потомков могут передаваться компоненты <Pane /> или произвольные элементы,\n * которые будут автоматически обёрнуты в <Pane />.\n */\n children: ReactNode;\n /**\n * Управляет режимом прозрачности:\n * -- Прозрачность отключена (`false`)\n * -- Прозрачный всегда (`true`)\n * -- Прозрачный в начале анимации (`start`)\n * -- Прозрачный в конце анимации (`end`)\n * @default false\n */\n transparent?: 'start' | 'end' | boolean;\n /**\n * Управляет позицией триггера начала анимации\n * @default start\n */\n startTriggerPosition?: 'start' | 'full-area' | RefObject<HTMLElement | null>;\n /**\n * Край элемента `startTriggerPosition`, по которому измеряется позиция начала анимации.\n * @default top\n */\n startTriggerEdge?: TriggerEdge;\n /**\n * Управляет позицией триггера конца анимации. Если не передан вычисляется автоматически на основе изменения\n * высоты навбара в процессе анимации и позиции триггера начала анмиации. Если передано число, то интерпретируется\n * как отступ в пикселях от позиции триггера старта анимации.\n */\n endTriggerPosition?: RefObject<HTMLElement | null> | number;\n /**\n * Край элемента `endTriggerPosition`, по которому измеряется позиция конца анимации.\n * @default bottom\n */\n endTriggerEdge?: TriggerEdge;\n /**\n * Включает режим когда NavBar не занимает место в лейауте и контент располагается под ним.\n * @default false\n */\n overlay?: boolean;\n /**\n * Управляет режимом автодоскролла. По умолчанию включен.\n * @default true\n */\n snapScroll?: boolean;\n /**\n * Управляет режимом отображения дивайдера:\n * - `false` дивайдер отключен\n * - `always` дивайдер отображается постоянно\n * - `with-scroll` дивайдер отображается только когда контент подскроллен под NavBar\n * @default false\n */\n showDivider?: ShowDivider;\n /**\n * Принимает MotionValue значение которого будет обновляться синхронно с анимацией всего NavBar.\n * Прогресс анимации представляется в виде числа 0..1\n * Предназначен для синхронизации внешних анимаций с анимациями NavBar.\n */\n animationProgress?: MotionValue<number>;\n}\n\nexport const NavBar: FC<NavBarProps> = (props) => {\n const defaultProps = useNavBarRootDefaultProps();\n const startSlot = useTriggerSlot('startTrigger');\n const endSlot = useTriggerSlot('endTrigger');\n // Приоритет (от высшего к низшему): явные пропсы > NavBarDefaultPropsContext > слоты `Trigger` > дефолты.\n const slotProps = {\n ...(startSlot ? { startTriggerPosition: startSlot.ref, startTriggerEdge: startSlot.edge } : null),\n ...(endSlot ? { endTriggerPosition: endSlot.ref, endTriggerEdge: endSlot.edge } : null),\n };\n const {\n children,\n transparent = false,\n startTriggerPosition = 'start',\n startTriggerEdge = 'top',\n endTriggerPosition,\n endTriggerEdge = 'bottom',\n overlay = false,\n snapScroll: scrollSnapping = true,\n showDivider = false,\n animationProgress,\n } = { ...slotProps, ...defaultProps, ...props };\n const paneStoreRegistry = useInitOnce(() => new Set<PaneStore>());\n const prevFullHeight = useRef<null | number>(0);\n const rootRef = useRef<HTMLDivElement>(null);\n\n const [scrollAdapter, scrollPosition] = useScrollAdapter(rootRef);\n const [getMetrics, invalidateMetrics] = useNavBarMetrics(paneStoreRegistry, rootRef, scrollAdapter);\n const [getAnimationRanges, invalidateAnimationRanges] = useAnimationRanges(paneStoreRegistry, getMetrics);\n const [bindScrollToAnimation, getClosestStops, totalAnimationProgress, dividerStyle] =\n useBindScrollToAnimationProgress(\n scrollPosition,\n getMetrics,\n getAnimationRanges,\n scrollAdapter,\n startTriggerPosition,\n endTriggerPosition,\n startTriggerEdge,\n endTriggerEdge\n );\n const snapScroll = useSnapScroll(\n scrollPosition,\n totalAnimationProgress,\n scrollAdapter,\n getClosestStops,\n scrollSnapping\n );\n\n // При получении размеров важно дождаться применения MotionValue к DOM, поэтому используем frame.render\n const bindScrollToAnimationScheduled = useInitOnce(() => scheduleMicro(() => frame.render(bindScrollToAnimation)));\n useResetFocus(rootRef, totalAnimationProgress);\n useSyncMotionValue(totalAnimationProgress, animationProgress);\n\n const dividerVisibility =\n // eslint-disable-next-line no-nested-ternary\n showDivider === 'with-scroll' ? dividerStyle.visibility : showDivider ? 'visible' : 'hidden';\n\n const registerPaneStore = useInitOnce(() => {\n const subscriptions: VoidFunction[] = [];\n\n const updateAnimationParams = () => {\n subscriptions.length = 0;\n invalidateMetrics();\n invalidateAnimationRanges();\n bindScrollToAnimationScheduled();\n const navBarMetrics = getMetrics();\n const fullPanesStartHeight = navBarMetrics.bottom - navBarMetrics.top;\n\n let scroll = scrollAdapter.getScrollTop();\n if (prevFullHeight.current !== null && scroll !== 0) {\n const heightDelta = fullPanesStartHeight - prevFullHeight.current;\n scroll += heightDelta;\n\n requestAnimationFrame(() => {\n scrollPosition.jump(scrollAdapter.getScrollTop() - 1);\n scrollPosition.jump(scrollAdapter.getScrollTop());\n });\n }\n\n const animationRanges = getAnimationRanges();\n [...paneStoreRegistry.values()].forEach((paneStore) => {\n const range = animationRanges.get(paneStore.get('id'));\n if (!range) {\n return;\n }\n const remapFn = remap(\n range[0] === 0 && range[1] === 0\n ? [0, 1]\n : [range[0] / navBarMetrics.animationHeight, range[1] / navBarMetrics.animationHeight],\n [0, 1]\n );\n const motionValue = paneStore.get('motionValue');\n motionValue.set(remapFn(totalAnimationProgress.get()));\n subscriptions.push(totalAnimationProgress.on('change', (value) => motionValue.set(remapFn(value))));\n });\n\n prevFullHeight.current = fullPanesStartHeight;\n };\n\n // основной триггер запуска updateAnimationParams это изменения размеров, обработка которых происходит\n // в очереди микрозадач, поэтому откладываем запуск функции до перехдоа к макрозадачам, чтобы сократить\n // количество вызовов при массовых изменениях\n const onChange = scheduleMacro(updateAnimationParams);\n\n return (paneStore: PaneStore) => {\n const unsubscribe = paneStore.onChange(\n ['startHeight', 'endHeight', 'top', 'foldable', 'animated'],\n onChange\n );\n paneStoreRegistry.add(paneStore);\n return () => {\n paneStoreRegistry.delete(paneStore);\n unsubscribe();\n };\n };\n });\n\n useLayoutEffect(() => {\n bindScrollToAnimation();\n snapScroll();\n if (!rootRef.current || (typeof startTriggerPosition === 'string' && !endTriggerPosition)) {\n return void 0;\n }\n return scrollAdapter.onResize(bindScrollToAnimationScheduled);\n }, [\n startTriggerPosition,\n endTriggerPosition,\n bindScrollToAnimation,\n bindScrollToAnimationScheduled,\n snapScroll,\n scrollAdapter,\n ]);\n\n // Оборачиваем потомков, не являющихся Pane, в Pane и вкладываем панели друг в друга через проп nextPane\n const childrenArray = Children.toArray(children);\n const nested = isPaneElement(childrenArray[0]) ? (\n childrenArray.reduceRight<PaneElement | null>((acc, child) => {\n if (!isPaneElement(child)) {\n return acc;\n }\n // cloneElement сужает конструктор до InternalPaneProps, поэтому возвращаем к PaneElement\n return React.cloneElement<InternalPaneProps>(child, {\n ...child.props,\n nextPane: acc,\n }) as PaneElement;\n }, null)\n ) : (\n <ExternalPane>{children}</ExternalPane>\n );\n\n return (\n <Layer layer=\"navigation-bar\">\n <MetricsProvider\n className={classNames(styles.navBar, {\n [styles.navbarTransparentStart]: transparent === 'start',\n [styles.navbarTransparentEnd]: transparent === 'end',\n [styles.navbarNotTransparent]: !transparent,\n [styles.navbarTransparent]: transparent === true,\n [styles.navBarOverlay]: overlay,\n })}\n ref={rootRef}\n measureClassName={styles.metricsMode}\n >\n <div className={styles.navBarOverlayWrapper}>\n <div className={styles.navBarContentContainer}>\n <motion.div\n style={{ '--magritte-ui-navbar-animation-progress': totalAnimationProgress } as MotionStyle}\n className={styles.navBarPanesContainer}\n >\n <NavBarContext.Provider value={registerPaneStore}>{nested}</NavBarContext.Provider>\n </motion.div>\n <motion.div\n className={styles.dividerContainer}\n style={{ ...dividerStyle, visibility: dividerVisibility }}\n >\n <Divider />\n </motion.div>\n </div>\n </div>\n </MetricsProvider>\n </Layer>\n );\n};\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"NavBar.js","sources":["src/public/NavBar.tsx"],"sourcesContent":["import React, { Children, type ReactNode, type RefObject, useLayoutEffect, useRef, type FC } from 'react';\nimport classNames from 'classnames';\nimport { motion, type MotionStyle, MotionValue, frame } from 'motion/react';\n\nimport { Divider, type ShowDivider } from '@hh.ru/magritte-ui-divider';\nimport { Layer } from '@hh.ru/magritte-ui-layer';\nimport { MetricsProvider } from '@hh.ru/magritte-ui-nav-bar/internal/MetricsProvider';\nimport { NavBarContext } from '@hh.ru/magritte-ui-nav-bar/internal/NavBarContext';\nimport { PaneStore } from '@hh.ru/magritte-ui-nav-bar/internal/PaneStore';\nimport { useAnimationRanges } from '@hh.ru/magritte-ui-nav-bar/internal/useAnimationRanges';\nimport { useBindScrollToAnimationProgress } from '@hh.ru/magritte-ui-nav-bar/internal/useBindScrollToAnimationProgress';\nimport { useNavBarMetrics } from '@hh.ru/magritte-ui-nav-bar/internal/useNavBarMetrics';\nimport { useResetFocus } from '@hh.ru/magritte-ui-nav-bar/internal/useResetFocus';\nimport { useScrollAdapter } from '@hh.ru/magritte-ui-nav-bar/internal/useScrollAdapter';\nimport { useSnapScroll } from '@hh.ru/magritte-ui-nav-bar/internal/useSnapScroll';\nimport { useSyncMotionValue } from '@hh.ru/magritte-ui-nav-bar/internal/useSyncMotionValue';\nimport { remap, scheduleMicro, scheduleMacro, useInitOnce } from '@hh.ru/magritte-ui-nav-bar/internal/utils';\nimport {\n type PaneElement,\n type InternalPaneProps,\n ExternalPane,\n isPaneElement,\n} from '@hh.ru/magritte-ui-nav-bar/public/Pane';\nimport { type TriggerEdge, useTriggerSlot } from '@hh.ru/magritte-ui-nav-bar/public/TriggerContext';\nimport { useNavBarRootDefaultProps } from '@hh.ru/magritte-ui-nav-bar/public/defaultProps';\n\nimport styles from './nav-bar.less';\n\nexport interface NavBarProps {\n /**\n * В качестве потомков могут передаваться компоненты <Pane /> или произвольные элементы,\n * которые будут автоматически обёрнуты в <Pane />.\n */\n children: ReactNode;\n /**\n * Управляет режимом прозрачности:\n * -- Прозрачность отключена (`false`)\n * -- Прозрачный всегда (`true`)\n * -- Прозрачный в начале анимации (`start`)\n * -- Прозрачный в конце анимации (`end`)\n * @default false\n */\n transparent?: 'start' | 'end' | boolean;\n /**\n * Управляет позицией триггера начала анимации\n * @default start\n */\n startTriggerPosition?: 'start' | 'full-area' | RefObject<HTMLElement | null>;\n /**\n * Край элемента `startTriggerPosition`, по которому измеряется позиция начала анимации.\n * @default top\n */\n startTriggerEdge?: TriggerEdge;\n /**\n * Управляет позицией триггера конца анимации. Если не передан вычисляется автоматически на основе изменения\n * высоты навбара в процессе анимации и позиции триггера начала анмиации. Если передано число, то интерпретируется\n * как отступ в пикселях от позиции триггера старта анимации.\n */\n endTriggerPosition?: RefObject<HTMLElement | null> | number;\n /**\n * Край элемента `endTriggerPosition`, по которому измеряется позиция конца анимации.\n * @default bottom\n */\n endTriggerEdge?: TriggerEdge;\n /**\n * Включает режим когда NavBar не занимает место в лейауте и контент располагается под ним.\n * @default false\n */\n overlay?: boolean;\n /**\n * Управляет режимом автодоскролла. По умолчанию включен.\n * @default true\n */\n snapScroll?: boolean;\n /**\n * Управляет режимом отображения дивайдера:\n * - `false` дивайдер отключен\n * - `always` дивайдер отображается постоянно\n * - `with-scroll` дивайдер отображается только когда контент подскроллен под NavBar\n * @default false\n */\n showDivider?: ShowDivider;\n /**\n * Принимает MotionValue значение которого будет обновляться синхронно с анимацией всего NavBar.\n * Прогресс анимации представляется в виде числа 0..1\n * Предназначен для синхронизации внешних анимаций с анимациями NavBar.\n */\n animationProgress?: MotionValue<number>;\n}\n\nexport const NavBar: FC<NavBarProps> = (props) => {\n const defaultProps = useNavBarRootDefaultProps();\n const startSlot = useTriggerSlot('startTrigger');\n const endSlot = useTriggerSlot('endTrigger');\n // Приоритет (от высшего к низшему): явные пропсы > NavBarDefaultPropsContext > слоты `Trigger` > дефолты.\n const slotProps = {\n ...(startSlot ? { startTriggerPosition: startSlot.ref, startTriggerEdge: startSlot.edge } : null),\n ...(endSlot ? { endTriggerPosition: endSlot.ref, endTriggerEdge: endSlot.edge } : null),\n };\n const {\n children,\n transparent = false,\n startTriggerPosition = 'start',\n startTriggerEdge = 'top',\n endTriggerPosition,\n endTriggerEdge = 'bottom',\n overlay = false,\n snapScroll: scrollSnapping = true,\n showDivider = false,\n animationProgress,\n } = { ...slotProps, ...defaultProps, ...props };\n const paneStoreRegistry = useInitOnce(() => new Set<PaneStore>());\n const prevFullHeight = useRef<null | number>(0);\n const rootRef = useRef<HTMLDivElement>(null);\n\n const [scrollAdapter, scrollPosition] = useScrollAdapter(rootRef);\n const [getMetrics, invalidateMetrics] = useNavBarMetrics(paneStoreRegistry, rootRef, scrollAdapter);\n const [getAnimationRanges, invalidateAnimationRanges] = useAnimationRanges(paneStoreRegistry, getMetrics);\n const [bindScrollToAnimation, getClosestStops, totalAnimationProgress, dividerStyle] =\n useBindScrollToAnimationProgress(\n scrollPosition,\n getMetrics,\n getAnimationRanges,\n scrollAdapter,\n startTriggerPosition,\n endTriggerPosition,\n startTriggerEdge,\n endTriggerEdge\n );\n const snapScroll = useSnapScroll(\n scrollPosition,\n totalAnimationProgress,\n scrollAdapter,\n getClosestStops,\n scrollSnapping\n );\n\n // При получении размеров важно дождаться применения MotionValue к DOM, поэтому используем frame.render\n const bindScrollToAnimationScheduled = useInitOnce(() => scheduleMicro(() => frame.render(bindScrollToAnimation)));\n useResetFocus(rootRef, totalAnimationProgress);\n useSyncMotionValue(totalAnimationProgress, animationProgress);\n\n const dividerVisibility =\n // eslint-disable-next-line no-nested-ternary\n showDivider === 'with-scroll' ? dividerStyle.visibility : showDivider ? 'visible' : 'hidden';\n\n const registerPaneStore = useInitOnce(() => {\n const subscriptions: VoidFunction[] = [];\n\n const updateAnimationParams = () => {\n subscriptions.length = 0;\n invalidateMetrics();\n invalidateAnimationRanges();\n bindScrollToAnimationScheduled();\n const navBarMetrics = getMetrics();\n const fullPanesStartHeight = navBarMetrics.bottom - navBarMetrics.top;\n\n let scroll = scrollAdapter.getScrollTop();\n if (prevFullHeight.current !== null && scroll !== 0) {\n const heightDelta = fullPanesStartHeight - prevFullHeight.current;\n scroll += heightDelta;\n\n requestAnimationFrame(() => {\n scrollPosition.jump(scrollAdapter.getScrollTop() - 1);\n scrollPosition.jump(scrollAdapter.getScrollTop());\n });\n }\n\n const animationRanges = getAnimationRanges();\n [...paneStoreRegistry.values()].forEach((paneStore) => {\n const range = animationRanges.get(paneStore.get('id'));\n if (!range) {\n return;\n }\n const remapFn = remap(\n range[0] === 0 && range[1] === 0\n ? [0, 1]\n : [range[0] / navBarMetrics.animationHeight, range[1] / navBarMetrics.animationHeight],\n [0, 1]\n );\n const motionValue = paneStore.get('motionValue');\n motionValue.set(remapFn(totalAnimationProgress.get()));\n subscriptions.push(totalAnimationProgress.on('change', (value) => motionValue.set(remapFn(value))));\n });\n\n prevFullHeight.current = fullPanesStartHeight;\n };\n\n // основной триггер запуска updateAnimationParams это изменения размеров, обработка которых происходит\n // в очереди микрозадач, поэтому откладываем запуск функции до перехдоа к макрозадачам, чтобы сократить\n // количество вызовов при массовых изменениях\n const onChange = scheduleMacro(updateAnimationParams);\n\n return (paneStore: PaneStore) => {\n const unsubscribe = paneStore.onChange(\n ['startHeight', 'endHeight', 'top', 'foldable', 'animated'],\n onChange\n );\n paneStoreRegistry.add(paneStore);\n return () => {\n paneStoreRegistry.delete(paneStore);\n unsubscribe();\n };\n };\n });\n\n useLayoutEffect(() => {\n bindScrollToAnimation();\n snapScroll();\n if (!rootRef.current || (typeof startTriggerPosition === 'string' && !endTriggerPosition)) {\n return void 0;\n }\n return scrollAdapter.onResize(bindScrollToAnimationScheduled);\n }, [\n startTriggerPosition,\n endTriggerPosition,\n bindScrollToAnimation,\n bindScrollToAnimationScheduled,\n snapScroll,\n scrollAdapter,\n ]);\n\n // Оборачиваем потомков, не являющихся Pane, в Pane и вкладываем панели друг в друга через проп nextPane\n const childrenArray = Children.toArray(children);\n const nested = isPaneElement(childrenArray[0]) ? (\n childrenArray.reduceRight<PaneElement | null>((acc, child) => {\n if (!isPaneElement(child)) {\n return acc;\n }\n // cloneElement сужает конструктор до InternalPaneProps, поэтому возвращаем к PaneElement\n return React.cloneElement<InternalPaneProps>(child, {\n ...child.props,\n nextPane: acc,\n }) as PaneElement;\n }, null)\n ) : (\n <ExternalPane>{children}</ExternalPane>\n );\n\n return (\n <Layer layer=\"navigation-bar\">\n <MetricsProvider\n className={classNames(styles.navBar, {\n [styles.navbarTransparentStart]: transparent === 'start',\n [styles.navbarTransparentEnd]: transparent === 'end',\n [styles.navbarNotTransparent]: !transparent,\n [styles.navbarTransparent]: transparent === true,\n [styles.navBarOverlay]: overlay,\n })}\n ref={rootRef}\n measureClassName={styles.metricsMode}\n >\n <div className={styles.navBarOverlayWrapper}>\n <motion.div\n className={styles.navBarContentContainer}\n style={{ '--magritte-ui-navbar-animation-progress': totalAnimationProgress } as MotionStyle}\n >\n <div className={styles.navBarPanesContainer}>\n <NavBarContext.Provider value={registerPaneStore}>{nested}</NavBarContext.Provider>\n </div>\n <motion.div\n className={styles.dividerContainer}\n style={{ ...dividerStyle, visibility: dividerVisibility }}\n >\n <Divider />\n </motion.div>\n </motion.div>\n </div>\n </MetricsProvider>\n </Layer>\n );\n};\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
package/public/Pane.js CHANGED
@@ -10,7 +10,7 @@ import { useInitOnce, useStoreSyncedTransform, lerp } from '../internal/utils.js
10
10
  import { EnvironmentFingerprintProvider } from './EnvironmentFingerprintNode.js';
11
11
  import { LayoutStage } from './LayoutStage.js';
12
12
  import { Stage } from './Stage.js';
13
- import { s as styles } from '../nav-bar-BFd5MVDE.js';
13
+ import { s as styles } from '../nav-bar-B7uPipzE.js';
14
14
  import '../internal/KeyedSubscriptions.js';
15
15
  import 'motion';
16
16
  import '../internal/NavBarContext.js';
package/public/Stage.js CHANGED
@@ -7,7 +7,7 @@ import { useMeasureAuto } from '../internal/MetricsProvider.js';
7
7
  import { usePaneStore } from '../internal/PaneStore.js';
8
8
  import { useInert } from '../internal/useInert.js';
9
9
  import { EnvironmentFingerprintNode } from './EnvironmentFingerprintNode.js';
10
- import { s as styles } from '../nav-bar-BFd5MVDE.js';
10
+ import { s as styles } from '../nav-bar-B7uPipzE.js';
11
11
  import '../internal/utils.js';
12
12
  import 'motion';
13
13
  import '../internal/KeyedSubscriptions.js';
@@ -20,6 +20,15 @@ export interface TitleContainerProps {
20
20
  * Позволяет выровнять по горизонтали контент слотов для заголовка и подзаголовка
21
21
  */
22
22
  centered?: boolean;
23
+ /**
24
+ * Задает дефолтное начертание и цвет для заголовка и подзаголовка
25
+ */
23
26
  size?: 'large' | 'small';
27
+ /**
28
+ * Позволяет отключить регистрацию заголовка и подзаголовка в качестве
29
+ * метки (aria-label) и описания (aria-description) доступной области (accessible region).
30
+ * Полезно, когда заголовок навбара дублирует уже размеченный на странице заголовок региона.
31
+ */
32
+ notRegionTitle?: boolean;
24
33
  }
25
34
  export declare const TitleContainer: FC<TitleContainerProps>;
@@ -3,8 +3,9 @@ import { jsxs, jsx } from 'react/jsx-runtime';
3
3
  import classNames from 'classnames';
4
4
  import { useRegisterRegionLabel, useRegisterRegionDescription } from '@hh.ru/magritte-internal-accessible-region';
5
5
  import { Morph } from './Morph.js';
6
+ import { useTitleDefaultProps, useSubtitleDefaultProps } from './defaultProps.js';
6
7
  import { TextDefaultPropsContext } from '@hh.ru/magritte-ui-typography';
7
- import { s as styles } from '../nav-bar-BFd5MVDE.js';
8
+ import { s as styles } from '../nav-bar-B7uPipzE.js';
8
9
  import 'react';
9
10
  import 'motion/react';
10
11
  import '../internal/MetricsProvider.js';
@@ -17,33 +18,16 @@ import '../internal/NavBarContext.js';
17
18
  import './EnvironmentFingerprintNode.js';
18
19
  import './Stage.js';
19
20
  import '../internal/useInert.js';
21
+ import '@hh.ru/magritte-internal-default-props-context';
20
22
 
21
- const TEXT_DEFAULT_PROPS_TITLE = {
22
- small: {
23
- typography: 'subtitle-1-semibold',
24
- style: 'primary',
25
- },
26
- large: {
27
- typography: 'title-4-semibold',
28
- style: 'primary',
29
- },
30
- };
31
- const TEXT_DEFAULT_PROPS_SUBTITLE = {
32
- small: {
33
- typography: 'label-4-regular',
34
- style: 'secondary',
35
- },
36
- large: {
37
- typography: 'label-2-regular',
38
- style: 'secondary',
39
- },
40
- };
41
- const TitleContainer = ({ left, title, icon, subtitle, size = 'small', centered = false, }) => {
42
- const { id: labelId } = useRegisterRegionLabel(!!title);
43
- const { id: descriptionId } = useRegisterRegionDescription(!!subtitle);
23
+ const TitleContainer = ({ left, title, icon, subtitle, size = 'small', centered = false, notRegionTitle = false, }) => {
24
+ const { id: labelId } = useRegisterRegionLabel(!!title && !notRegionTitle);
25
+ const { id: descriptionId } = useRegisterRegionDescription(!!subtitle && !notRegionTitle);
26
+ const titleDefaultProps = useTitleDefaultProps(size);
27
+ const subtitleDefaultProps = useSubtitleDefaultProps(size);
44
28
  return (jsxs("div", { className: classNames(styles.titleContainerWrapper, {
45
29
  [styles.sizeLarge]: size === 'large',
46
- }), children: [!!left && (jsx("div", { className: styles.titleLeftSlot, children: jsx(Morph, { id: "title-component-left-slot", className: styles.titleMorphItem, children: left }) })), jsxs("div", { className: classNames(styles.titleMainPart, { [styles.centered]: centered }), children: [jsxs("div", { className: styles.titleContainer, children: [jsx("div", { className: styles.title, id: labelId, suppressHydrationWarning: true, children: !!title && (jsx(TextDefaultPropsContext, { props: TEXT_DEFAULT_PROPS_TITLE[size], children: jsx(Morph, { id: "title-component-title", className: classNames(styles.titleMorphItem, styles.textMorphItem), horizontalPositionAlign: "left", children: title }) })) }), jsx("div", { className: styles.titleInlineContainer, children: !!icon && (jsx(Morph, { id: "title-component-inline-slot", className: styles.titleMorphItem, children: icon })) })] }), jsx("div", { className: styles.subtitleContainer, id: descriptionId, suppressHydrationWarning: true, children: !!subtitle && (jsx(TextDefaultPropsContext, { props: TEXT_DEFAULT_PROPS_SUBTITLE[size], children: jsx(Morph, { id: "title-component-subtitle", className: classNames(styles.titleMorphItem, styles.textMorphItem), horizontalPositionAlign: "left", children: subtitle }) })) })] })] }));
30
+ }), children: [!!left && (jsx("div", { className: styles.titleLeftSlot, children: jsx(Morph, { id: "title-component-left-slot", className: styles.titleMorphItem, children: left }) })), jsxs("div", { className: classNames(styles.titleMainPart, { [styles.centered]: centered }), children: [jsxs("div", { className: styles.titleContainer, children: [jsx("div", { className: styles.title, id: labelId, suppressHydrationWarning: true, children: !!title && (jsx(TextDefaultPropsContext, { props: titleDefaultProps, children: jsx(Morph, { id: "title-component-title", className: classNames(styles.titleMorphItem, styles.textMorphItem), horizontalPositionAlign: "left", children: title }) })) }), jsx("div", { className: styles.titleInlineContainer, children: !!icon && (jsx(Morph, { id: "title-component-inline-slot", className: styles.titleMorphItem, children: icon })) })] }), jsx("div", { className: styles.subtitleContainer, id: descriptionId, suppressHydrationWarning: true, children: !!subtitle && (jsx(TextDefaultPropsContext, { props: subtitleDefaultProps, children: jsx(Morph, { id: "title-component-subtitle", className: classNames(styles.titleMorphItem, styles.textMorphItem), horizontalPositionAlign: "left", children: subtitle }) })) })] })] }));
47
31
  };
48
32
 
49
33
  export { TitleContainer };
@@ -1 +1 @@
1
- {"version":3,"file":"TitleContainer.js","sources":["src/public/TitleContainer.tsx"],"sourcesContent":["import { type FC, type ReactNode } from 'react';\nimport classNames from 'classnames';\n\nimport { useRegisterRegionDescription, useRegisterRegionLabel } from '@hh.ru/magritte-internal-accessible-region';\nimport { Morph } from '@hh.ru/magritte-ui-nav-bar/public/Morph';\nimport { TextDefaultPropsContext } from '@hh.ru/magritte-ui-typography';\n\nimport styles from './nav-bar.less';\n\nconst TEXT_DEFAULT_PROPS_TITLE = {\n small: {\n typography: 'subtitle-1-semibold',\n style: 'primary',\n },\n large: {\n typography: 'title-4-semibold',\n style: 'primary',\n },\n} as const;\n\nconst TEXT_DEFAULT_PROPS_SUBTITLE = {\n small: {\n typography: 'label-4-regular',\n style: 'secondary',\n },\n large: {\n typography: 'label-2-regular',\n style: 'secondary',\n },\n} as const;\n\nexport interface TitleContainerProps {\n /**\n * Контент левого слота\n */\n left?: ReactNode;\n /**\n * Контент слота для заголовка\n */\n title?: ReactNode;\n /**\n * Контент слота для подзаголовка\n */\n subtitle?: ReactNode;\n /**\n * Контент слота справа от заголовка\n */\n icon?: ReactNode;\n /**\n * Позволяет выровнять по горизонтали контент слотов для заголовка и подзаголовка\n */\n centered?: boolean;\n size?: 'large' | 'small';\n}\n\nexport const TitleContainer: FC<TitleContainerProps> = ({\n left,\n title,\n icon,\n subtitle,\n size = 'small',\n centered = false,\n}) => {\n const { id: labelId } = useRegisterRegionLabel(!!title);\n const { id: descriptionId } = useRegisterRegionDescription(!!subtitle);\n\n return (\n <div\n className={classNames(styles.titleContainerWrapper, {\n [styles.sizeLarge]: size === 'large',\n })}\n >\n {!!left && (\n <div className={styles.titleLeftSlot}>\n <Morph id=\"title-component-left-slot\" className={styles.titleMorphItem}>\n {left}\n </Morph>\n </div>\n )}\n <div className={classNames(styles.titleMainPart, { [styles.centered]: centered })}>\n <div className={styles.titleContainer}>\n <div className={styles.title} id={labelId} suppressHydrationWarning>\n {!!title && (\n <TextDefaultPropsContext props={TEXT_DEFAULT_PROPS_TITLE[size]}>\n <Morph\n id=\"title-component-title\"\n className={classNames(styles.titleMorphItem, styles.textMorphItem)}\n horizontalPositionAlign=\"left\"\n >\n {title}\n </Morph>\n </TextDefaultPropsContext>\n )}\n </div>\n <div className={styles.titleInlineContainer}>\n {!!icon && (\n <Morph id=\"title-component-inline-slot\" className={styles.titleMorphItem}>\n {icon}\n </Morph>\n )}\n </div>\n </div>\n <div className={styles.subtitleContainer} id={descriptionId} suppressHydrationWarning>\n {!!subtitle && (\n <TextDefaultPropsContext props={TEXT_DEFAULT_PROPS_SUBTITLE[size]}>\n <Morph\n id=\"title-component-subtitle\"\n className={classNames(styles.titleMorphItem, styles.textMorphItem)}\n horizontalPositionAlign=\"left\"\n >\n {subtitle}\n </Morph>\n </TextDefaultPropsContext>\n )}\n </div>\n </div>\n </div>\n );\n};\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"TitleContainer.js","sources":["src/public/TitleContainer.tsx"],"sourcesContent":["import { type FC, type ReactNode } from 'react';\nimport classNames from 'classnames';\n\nimport { useRegisterRegionDescription, useRegisterRegionLabel } from '@hh.ru/magritte-internal-accessible-region';\nimport { Morph } from '@hh.ru/magritte-ui-nav-bar/public/Morph';\nimport { useSubtitleDefaultProps, useTitleDefaultProps } from '@hh.ru/magritte-ui-nav-bar/public/defaultProps';\nimport { TextDefaultPropsContext } from '@hh.ru/magritte-ui-typography';\n\nimport styles from './nav-bar.less';\n\nexport interface TitleContainerProps {\n /**\n * Контент левого слота\n */\n left?: ReactNode;\n /**\n * Контент слота для заголовка\n */\n title?: ReactNode;\n /**\n * Контент слота для подзаголовка\n */\n subtitle?: ReactNode;\n /**\n * Контент слота справа от заголовка\n */\n icon?: ReactNode;\n /**\n * Позволяет выровнять по горизонтали контент слотов для заголовка и подзаголовка\n */\n centered?: boolean;\n /**\n * Задает дефолтное начертание и цвет для заголовка и подзаголовка\n */\n size?: 'large' | 'small';\n /**\n * Позволяет отключить регистрацию заголовка и подзаголовка в качестве\n * метки (aria-label) и описания (aria-description) доступной области (accessible region).\n * Полезно, когда заголовок навбара дублирует уже размеченный на странице заголовок региона.\n */\n notRegionTitle?: boolean;\n}\n\nexport const TitleContainer: FC<TitleContainerProps> = ({\n left,\n title,\n icon,\n subtitle,\n size = 'small',\n centered = false,\n notRegionTitle = false,\n}) => {\n const { id: labelId } = useRegisterRegionLabel(!!title && !notRegionTitle);\n const { id: descriptionId } = useRegisterRegionDescription(!!subtitle && !notRegionTitle);\n\n const titleDefaultProps = useTitleDefaultProps(size);\n const subtitleDefaultProps = useSubtitleDefaultProps(size);\n\n return (\n <div\n className={classNames(styles.titleContainerWrapper, {\n [styles.sizeLarge]: size === 'large',\n })}\n >\n {!!left && (\n <div className={styles.titleLeftSlot}>\n <Morph id=\"title-component-left-slot\" className={styles.titleMorphItem}>\n {left}\n </Morph>\n </div>\n )}\n <div className={classNames(styles.titleMainPart, { [styles.centered]: centered })}>\n <div className={styles.titleContainer}>\n <div className={styles.title} id={labelId} suppressHydrationWarning>\n {!!title && (\n <TextDefaultPropsContext props={titleDefaultProps}>\n <Morph\n id=\"title-component-title\"\n className={classNames(styles.titleMorphItem, styles.textMorphItem)}\n horizontalPositionAlign=\"left\"\n >\n {title}\n </Morph>\n </TextDefaultPropsContext>\n )}\n </div>\n <div className={styles.titleInlineContainer}>\n {!!icon && (\n <Morph id=\"title-component-inline-slot\" className={styles.titleMorphItem}>\n {icon}\n </Morph>\n )}\n </div>\n </div>\n <div className={styles.subtitleContainer} id={descriptionId} suppressHydrationWarning>\n {!!subtitle && (\n <TextDefaultPropsContext props={subtitleDefaultProps}>\n <Morph\n id=\"title-component-subtitle\"\n className={classNames(styles.titleMorphItem, styles.textMorphItem)}\n horizontalPositionAlign=\"left\"\n >\n {subtitle}\n </Morph>\n </TextDefaultPropsContext>\n )}\n </div>\n </div>\n </div>\n );\n};\n"],"names":["_jsxs","_jsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;AA2Ca,MAAA,cAAc,GAA4B,CAAC,EACpD,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,QAAQ,EACR,IAAI,GAAG,OAAO,EACd,QAAQ,GAAG,KAAK,EAChB,cAAc,GAAG,KAAK,GACzB,KAAI;AACD,IAAA,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,sBAAsB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,cAAc,CAAC,CAAC;AAC3E,IAAA,MAAM,EAAE,EAAE,EAAE,aAAa,EAAE,GAAG,4BAA4B,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,cAAc,CAAC,CAAC;AAE1F,IAAA,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAC;AACrD,IAAA,MAAM,oBAAoB,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAC;IAE3D,QACIA,cACI,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,qBAAqB,EAAE;AAChD,YAAA,CAAC,MAAM,CAAC,SAAS,GAAG,IAAI,KAAK,OAAO;SACvC,CAAC,EAAA,QAAA,EAAA,CAED,CAAC,CAAC,IAAI,KACHC,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,MAAM,CAAC,aAAa,EAAA,QAAA,EAChCA,IAAC,KAAK,EAAA,EAAC,EAAE,EAAC,2BAA2B,EAAC,SAAS,EAAE,MAAM,CAAC,cAAc,EAAA,QAAA,EACjE,IAAI,EACD,CAAA,EAAA,CACN,CACT,EACDD,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAC,EAC7E,QAAA,EAAA,CAAAA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,MAAM,CAAC,cAAc,EAAA,QAAA,EAAA,CACjCC,aAAK,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,EAAE,OAAO,EAAE,wBAAwB,EAC9D,IAAA,EAAA,QAAA,EAAA,CAAC,CAAC,KAAK,KACJA,GAAA,CAAC,uBAAuB,EAAC,EAAA,KAAK,EAAE,iBAAiB,EAAA,QAAA,EAC7CA,GAAC,CAAA,KAAK,EACF,EAAA,EAAE,EAAC,uBAAuB,EAC1B,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,aAAa,CAAC,EAClE,uBAAuB,EAAC,MAAM,YAE7B,KAAK,EAAA,CACF,GACc,CAC7B,EAAA,CACC,EACNA,GAAK,CAAA,KAAA,EAAA,EAAA,SAAS,EAAE,MAAM,CAAC,oBAAoB,EACtC,QAAA,EAAA,CAAC,CAAC,IAAI,KACHA,IAAC,KAAK,EAAA,EAAC,EAAE,EAAC,6BAA6B,EAAC,SAAS,EAAE,MAAM,CAAC,cAAc,EAAA,QAAA,EACnE,IAAI,EACD,CAAA,CACX,GACC,CACJ,EAAA,CAAA,EACNA,aAAK,SAAS,EAAE,MAAM,CAAC,iBAAiB,EAAE,EAAE,EAAE,aAAa,EAAE,wBAAwB,EAAA,IAAA,EAAA,QAAA,EAChF,CAAC,CAAC,QAAQ,KACPA,GAAC,CAAA,uBAAuB,IAAC,KAAK,EAAE,oBAAoB,EAChD,QAAA,EAAAA,GAAA,CAAC,KAAK,EACF,EAAA,EAAE,EAAC,0BAA0B,EAC7B,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,aAAa,CAAC,EAClE,uBAAuB,EAAC,MAAM,EAAA,QAAA,EAE7B,QAAQ,EACL,CAAA,EAAA,CACc,CAC7B,EACC,CAAA,CAAA,EAAA,CACJ,CACJ,EAAA,CAAA,EACR;AACN;;;;"}
@@ -2,12 +2,24 @@ import { type FC, type ReactNode } from 'react';
2
2
  import type { IconProps } from '@hh.ru/magritte-ui-icon/types';
3
3
  import type { ActionsProps } from '@hh.ru/magritte-ui-nav-bar/public/Actions';
4
4
  import type { NavBarProps } from '@hh.ru/magritte-ui-nav-bar/public/NavBar';
5
+ import type { TextProps } from '@hh.ru/magritte-ui-typography';
6
+ type TitleContainerSize = 'large' | 'small';
5
7
  /** Внутренний хук чтения дефолтов корневых пропсов `NavBar` из ближайшего `NavBarDefaultPropsContext`. */
6
8
  export declare const useNavBarRootDefaultProps: () => Partial<NavBarProps>;
7
9
  /** Внутренний хук чтения дефолтов `Actions` из ближайшего `NavBarDefaultPropsContext`. */
8
10
  export declare const useActionsDefaultProps: () => Partial<ActionsProps>;
9
11
  /** Внутренний хук чтения переопределений дефолтов иконок боковых слотов `Actions`. */
10
12
  export declare const useActionsIconsDefaultProps: () => Partial<IconProps>;
13
+ /**
14
+ * Внутренний хук готовых дефолтов текста заголовка для размера `size`: базовые дефолты по размеру,
15
+ * поверх которых смёржены переопределения из ближайшего `NavBarDefaultPropsContext` (`titleProps`).
16
+ */
17
+ export declare const useTitleDefaultProps: (size: TitleContainerSize) => Partial<TextProps>;
18
+ /**
19
+ * Внутренний хук готовых дефолтов текста подзаголовка для размера `size`: базовые дефолты по размеру,
20
+ * поверх которых смёржены переопределения из ближайшего `NavBarDefaultPropsContext` (`subtitleProps`).
21
+ */
22
+ export declare const useSubtitleDefaultProps: (size: TitleContainerSize) => Partial<TextProps>;
11
23
  export interface NavBarDefaultPropsContextProps {
12
24
  /**
13
25
  * Дефолтные пропсы для самого `NavBar` в поддереве (например `startTriggerPosition` /
@@ -21,6 +33,18 @@ export interface NavBarDefaultPropsContextProps {
21
33
  * Мёржится поверх базовых дефолтов боковых иконок; на иконки центрального слота не влияет.
22
34
  */
23
35
  actionsIconsProps?: Partial<IconProps>;
36
+ /**
37
+ * Дефолтные пропсы для текста заголовка (`title`) `TitleContainer` в поддереве — например `style`
38
+ * для переопределения цвета. Мёржится поверх базовых дефолтов заголовка; явные пропсы на самом
39
+ * тексте побеждают.
40
+ */
41
+ titleProps?: Partial<TextProps>;
42
+ /**
43
+ * Дефолтные пропсы для текста подзаголовка (`subtitle`) `TitleContainer` в поддереве — например
44
+ * `style` для переопределения цвета. Мёржится поверх базовых дефолтов подзаголовка; явные пропсы
45
+ * на самом тексте побеждают.
46
+ */
47
+ subtitleProps?: Partial<TextProps>;
24
48
  /**
25
49
  * Если `true`, заданные здесь дефолты форсируются: по пересекающимся ключам они побеждают
26
50
  * любой вложенный (внутренний) провайдер, а не наоборот. Явные пропсы на самом компоненте
@@ -38,3 +62,4 @@ export interface NavBarDefaultPropsContextProps {
38
62
  * Добавление поддержки нового подкомпонента = новое поле-слот здесь + чтение в этом подкомпоненте.
39
63
  */
40
64
  export declare const NavBarDefaultPropsContext: FC<NavBarDefaultPropsContextProps>;
65
+ export {};
@@ -10,18 +10,71 @@ import { createDefaultPropsContext } from '@hh.ru/magritte-internal-default-prop
10
10
  const EMPTY_ACTIONS_PROPS = {};
11
11
  const EMPTY_ICON_PROPS = {};
12
12
  const EMPTY_ROOT_PROPS = {};
13
+ const EMPTY_TEXT_PROPS = {};
14
+ /** Базовые дефолтные пропсы текста заголовка по размеру `TitleContainer` (начертание + цвет). */
15
+ const TEXT_DEFAULT_PROPS_TITLE = {
16
+ small: {
17
+ typography: 'subtitle-1-semibold',
18
+ style: 'primary',
19
+ },
20
+ large: {
21
+ typography: 'title-4-semibold',
22
+ style: 'primary',
23
+ },
24
+ };
25
+ /** Базовые дефолтные пропсы текста подзаголовка по размеру `TitleContainer` (начертание + цвет). */
26
+ const TEXT_DEFAULT_PROPS_SUBTITLE = {
27
+ small: {
28
+ typography: 'label-4-regular',
29
+ style: 'secondary',
30
+ },
31
+ large: {
32
+ typography: 'label-2-regular',
33
+ style: 'secondary',
34
+ },
35
+ };
13
36
  const rootContext = createDefaultPropsContext('NavBarRoot');
14
37
  const actionsContext = createDefaultPropsContext('NavBarActions');
15
38
  const actionsIconsContext = createDefaultPropsContext('NavBarActionsIcons');
39
+ const titleContext = createDefaultPropsContext('NavBarTitle');
40
+ const subtitleContext = createDefaultPropsContext('NavBarSubtitle');
16
41
  const RootDefaultPropsContext = rootContext.DefaultPropsContext;
17
42
  const ActionsDefaultPropsContext = actionsContext.DefaultPropsContext;
18
43
  const ActionsIconsDefaultPropsContext = actionsIconsContext.DefaultPropsContext;
44
+ const TitleDefaultPropsContext = titleContext.DefaultPropsContext;
45
+ const SubtitleDefaultPropsContext = subtitleContext.DefaultPropsContext;
19
46
  /** Внутренний хук чтения дефолтов корневых пропсов `NavBar` из ближайшего `NavBarDefaultPropsContext`. */
20
47
  const useNavBarRootDefaultProps = rootContext.useDefaultProps;
21
48
  /** Внутренний хук чтения дефолтов `Actions` из ближайшего `NavBarDefaultPropsContext`. */
22
49
  const useActionsDefaultProps = actionsContext.useDefaultProps;
23
50
  /** Внутренний хук чтения переопределений дефолтов иконок боковых слотов `Actions`. */
24
51
  const useActionsIconsDefaultProps = actionsIconsContext.useDefaultProps;
52
+ /**
53
+ * Внутренний хук готовых дефолтов текста заголовка для размера `size`: базовые дефолты по размеру,
54
+ * поверх которых смёржены переопределения из ближайшего `NavBarDefaultPropsContext` (`titleProps`).
55
+ */
56
+ const useTitleDefaultProps = (size) => {
57
+ const props = titleContext.useDefaultProps();
58
+ return props === EMPTY_TEXT_PROPS
59
+ ? TEXT_DEFAULT_PROPS_TITLE[size]
60
+ : {
61
+ ...TEXT_DEFAULT_PROPS_TITLE[size],
62
+ ...props,
63
+ };
64
+ };
65
+ /**
66
+ * Внутренний хук готовых дефолтов текста подзаголовка для размера `size`: базовые дефолты по размеру,
67
+ * поверх которых смёржены переопределения из ближайшего `NavBarDefaultPropsContext` (`subtitleProps`).
68
+ */
69
+ const useSubtitleDefaultProps = (size) => {
70
+ const props = subtitleContext.useDefaultProps();
71
+ return props === EMPTY_TEXT_PROPS
72
+ ? TEXT_DEFAULT_PROPS_SUBTITLE[size]
73
+ : {
74
+ ...TEXT_DEFAULT_PROPS_SUBTITLE[size],
75
+ ...props,
76
+ };
77
+ };
25
78
  /**
26
79
  * Провайдер дефолтных пропсов для подкомпонентов NavBar в поддереве.
27
80
  *
@@ -29,8 +82,8 @@ const useActionsIconsDefaultProps = actionsIconsContext.useDefaultProps;
29
82
  * (`actions` → контекст `Actions` и т.д.), а подкомпоненты читают свои дефолты через собственные хуки.
30
83
  * Добавление поддержки нового подкомпонента = новое поле-слот здесь + чтение в этом подкомпоненте.
31
84
  */
32
- const NavBarDefaultPropsContext = ({ rootProps: root = EMPTY_ROOT_PROPS, actionsProps: actions = EMPTY_ACTIONS_PROPS, actionsIconsProps: actionsIcons = EMPTY_ICON_PROPS, important = false, children, }) => (jsx(RootDefaultPropsContext, { props: root, important: important, children: jsx(ActionsDefaultPropsContext, { props: actions, important: important, children: jsx(ActionsIconsDefaultPropsContext, { props: actionsIcons, important: important, children: children }) }) }));
85
+ const NavBarDefaultPropsContext = ({ rootProps: root = EMPTY_ROOT_PROPS, actionsProps: actions = EMPTY_ACTIONS_PROPS, actionsIconsProps: actionsIcons = EMPTY_ICON_PROPS, titleProps: title = EMPTY_TEXT_PROPS, subtitleProps: subtitle = EMPTY_TEXT_PROPS, important = false, children, }) => (jsx(RootDefaultPropsContext, { props: root, important: important, children: jsx(ActionsDefaultPropsContext, { props: actions, important: important, children: jsx(ActionsIconsDefaultPropsContext, { props: actionsIcons, important: important, children: jsx(TitleDefaultPropsContext, { props: title, important: important, children: jsx(SubtitleDefaultPropsContext, { props: subtitle, important: important, children: children }) }) }) }) }));
33
86
  NavBarDefaultPropsContext.displayName = 'NavBarDefaultPropsContext';
34
87
 
35
- export { NavBarDefaultPropsContext, useActionsDefaultProps, useActionsIconsDefaultProps, useNavBarRootDefaultProps };
88
+ export { NavBarDefaultPropsContext, useActionsDefaultProps, useActionsIconsDefaultProps, useNavBarRootDefaultProps, useSubtitleDefaultProps, useTitleDefaultProps };
36
89
  //# sourceMappingURL=defaultProps.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"defaultProps.js","sources":["src/public/defaultProps.tsx"],"sourcesContent":["import { type FC, type ReactNode } from 'react';\n\nimport { createDefaultPropsContext } from '@hh.ru/magritte-internal-default-props-context';\nimport type { IconProps } from '@hh.ru/magritte-ui-icon/types';\nimport type { ActionsProps } from '@hh.ru/magritte-ui-nav-bar/public/Actions';\nimport type { NavBarProps } from '@hh.ru/magritte-ui-nav-bar/public/NavBar';\n\n/**\n * Стабильные ссылки на пустые дефолты для незаданных слотов. Объявлены на уровне модуля,\n * чтобы не создавать новый объект на каждый рендер composite-провайдера — иначе внутренний\n * провайдер слота пересчитывал бы свёртку дефолтов вхолостую на каждый рендер.\n */\nconst EMPTY_ACTIONS_PROPS: Partial<ActionsProps> = {};\nconst EMPTY_ICON_PROPS: Partial<IconProps> = {};\nconst EMPTY_ROOT_PROPS: Partial<NavBarProps> = {};\n\nconst rootContext = createDefaultPropsContext<NavBarProps>('NavBarRoot');\nconst actionsContext = createDefaultPropsContext<ActionsProps>('NavBarActions');\nconst actionsIconsContext = createDefaultPropsContext<IconProps>('NavBarActionsIcons');\n\nconst RootDefaultPropsContext = rootContext.DefaultPropsContext;\nconst ActionsDefaultPropsContext = actionsContext.DefaultPropsContext;\nconst ActionsIconsDefaultPropsContext = actionsIconsContext.DefaultPropsContext;\n\n/** Внутренний хук чтения дефолтов корневых пропсов `NavBar` из ближайшего `NavBarDefaultPropsContext`. */\nexport const useNavBarRootDefaultProps = rootContext.useDefaultProps;\n\n/** Внутренний хук чтения дефолтов `Actions` из ближайшего `NavBarDefaultPropsContext`. */\nexport const useActionsDefaultProps = actionsContext.useDefaultProps;\n\n/** Внутренний хук чтения переопределений дефолтов иконок боковых слотов `Actions`. */\nexport const useActionsIconsDefaultProps = actionsIconsContext.useDefaultProps;\n\nexport interface NavBarDefaultPropsContextProps {\n /**\n * Дефолтные пропсы для самого `NavBar` в поддереве (например `startTriggerPosition` /\n * `endTriggerPosition`) — явные пропсы на самом `NavBar` побеждают.\n */\n rootProps?: Partial<NavBarProps>;\n /** Дефолтные пропсы для всех `Actions` в поддереве — явные пропсы на самом `Actions` побеждают. */\n actionsProps?: Partial<ActionsProps>;\n /**\n * Переопределение дефолтных пропсов иконок в боковых слотах `Actions` (`left` / `right`).\n * Мёржится поверх базовых дефолтов боковых иконок; на иконки центрального слота не влияет.\n */\n actionsIconsProps?: Partial<IconProps>;\n /**\n * Если `true`, заданные здесь дефолты форсируются: по пересекающимся ключам они побеждают\n * любой вложенный (внутренний) провайдер, а не наоборот. Явные пропсы на самом компоненте\n * по-прежнему перекрывают любой дефолт. Применяется ко всем слотам.\n * @default false\n */\n important?: boolean;\n children?: ReactNode;\n}\n\n/**\n * Провайдер дефолтных пропсов для подкомпонентов NavBar в поддереве.\n *\n * Под капотом раскладывает пропсы по изолированным, типизированным контекстам каждого подкомпонента\n * (`actions` → контекст `Actions` и т.д.), а подкомпоненты читают свои дефолты через собственные хуки.\n * Добавление поддержки нового подкомпонента = новое поле-слот здесь + чтение в этом подкомпоненте.\n */\nexport const NavBarDefaultPropsContext: FC<NavBarDefaultPropsContextProps> = ({\n rootProps: root = EMPTY_ROOT_PROPS,\n actionsProps: actions = EMPTY_ACTIONS_PROPS,\n actionsIconsProps: actionsIcons = EMPTY_ICON_PROPS,\n important = false,\n children,\n}) => (\n <RootDefaultPropsContext props={root} important={important}>\n <ActionsDefaultPropsContext props={actions} important={important}>\n <ActionsIconsDefaultPropsContext props={actionsIcons} important={important}>\n {children}\n </ActionsIconsDefaultPropsContext>\n </ActionsDefaultPropsContext>\n </RootDefaultPropsContext>\n);\n\nNavBarDefaultPropsContext.displayName = 'NavBarDefaultPropsContext';\n"],"names":["_jsx"],"mappings":";;;AAOA;;;;AAIG;AACH,MAAM,mBAAmB,GAA0B,EAAE,CAAC;AACtD,MAAM,gBAAgB,GAAuB,EAAE,CAAC;AAChD,MAAM,gBAAgB,GAAyB,EAAE,CAAC;AAElD,MAAM,WAAW,GAAG,yBAAyB,CAAc,YAAY,CAAC,CAAC;AACzE,MAAM,cAAc,GAAG,yBAAyB,CAAe,eAAe,CAAC,CAAC;AAChF,MAAM,mBAAmB,GAAG,yBAAyB,CAAY,oBAAoB,CAAC,CAAC;AAEvF,MAAM,uBAAuB,GAAG,WAAW,CAAC,mBAAmB,CAAC;AAChE,MAAM,0BAA0B,GAAG,cAAc,CAAC,mBAAmB,CAAC;AACtE,MAAM,+BAA+B,GAAG,mBAAmB,CAAC,mBAAmB,CAAC;AAEhF;AACa,MAAA,yBAAyB,GAAG,WAAW,CAAC,gBAAgB;AAErE;AACa,MAAA,sBAAsB,GAAG,cAAc,CAAC,gBAAgB;AAErE;AACa,MAAA,2BAA2B,GAAG,mBAAmB,CAAC,gBAAgB;AAyB/E;;;;;;AAMG;AACI,MAAM,yBAAyB,GAAuC,CAAC,EAC1E,SAAS,EAAE,IAAI,GAAG,gBAAgB,EAClC,YAAY,EAAE,OAAO,GAAG,mBAAmB,EAC3C,iBAAiB,EAAE,YAAY,GAAG,gBAAgB,EAClD,SAAS,GAAG,KAAK,EACjB,QAAQ,GACX,MACGA,GAAC,CAAA,uBAAuB,EAAC,EAAA,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAA,QAAA,EACtDA,GAAC,CAAA,0BAA0B,IAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAC5D,QAAA,EAAAA,GAAA,CAAC,+BAA+B,EAAA,EAAC,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,YACrE,QAAQ,EAAA,CACqB,EACT,CAAA,EAAA,CACP,EAC5B;AAEF,yBAAyB,CAAC,WAAW,GAAG,2BAA2B;;;;"}
1
+ {"version":3,"file":"defaultProps.js","sources":["src/public/defaultProps.tsx"],"sourcesContent":["import { type FC, type ReactNode } from 'react';\n\nimport { createDefaultPropsContext } from '@hh.ru/magritte-internal-default-props-context';\nimport type { IconProps } from '@hh.ru/magritte-ui-icon/types';\nimport type { ActionsProps } from '@hh.ru/magritte-ui-nav-bar/public/Actions';\nimport type { NavBarProps } from '@hh.ru/magritte-ui-nav-bar/public/NavBar';\nimport type { TextProps } from '@hh.ru/magritte-ui-typography';\n\n/**\n * Стабильные ссылки на пустые дефолты для незаданных слотов. Объявлены на уровне модуля,\n * чтобы не создавать новый объект на каждый рендер composite-провайдера — иначе внутренний\n * провайдер слота пересчитывал бы свёртку дефолтов вхолостую на каждый рендер.\n */\nconst EMPTY_ACTIONS_PROPS: Partial<ActionsProps> = {};\nconst EMPTY_ICON_PROPS: Partial<IconProps> = {};\nconst EMPTY_ROOT_PROPS: Partial<NavBarProps> = {};\nconst EMPTY_TEXT_PROPS: Partial<TextProps> = {};\n\ntype TitleContainerSize = 'large' | 'small';\n\n/** Базовые дефолтные пропсы текста заголовка по размеру `TitleContainer` (начертание + цвет). */\nconst TEXT_DEFAULT_PROPS_TITLE: Record<TitleContainerSize, Partial<TextProps>> = {\n small: {\n typography: 'subtitle-1-semibold',\n style: 'primary',\n },\n large: {\n typography: 'title-4-semibold',\n style: 'primary',\n },\n};\n\n/** Базовые дефолтные пропсы текста подзаголовка по размеру `TitleContainer` (начертание + цвет). */\nconst TEXT_DEFAULT_PROPS_SUBTITLE: Record<TitleContainerSize, Partial<TextProps>> = {\n small: {\n typography: 'label-4-regular',\n style: 'secondary',\n },\n large: {\n typography: 'label-2-regular',\n style: 'secondary',\n },\n};\n\nconst rootContext = createDefaultPropsContext<NavBarProps>('NavBarRoot');\nconst actionsContext = createDefaultPropsContext<ActionsProps>('NavBarActions');\nconst actionsIconsContext = createDefaultPropsContext<IconProps>('NavBarActionsIcons');\nconst titleContext = createDefaultPropsContext<TextProps>('NavBarTitle');\nconst subtitleContext = createDefaultPropsContext<TextProps>('NavBarSubtitle');\n\nconst RootDefaultPropsContext = rootContext.DefaultPropsContext;\nconst ActionsDefaultPropsContext = actionsContext.DefaultPropsContext;\nconst ActionsIconsDefaultPropsContext = actionsIconsContext.DefaultPropsContext;\nconst TitleDefaultPropsContext = titleContext.DefaultPropsContext;\nconst SubtitleDefaultPropsContext = subtitleContext.DefaultPropsContext;\n\n/** Внутренний хук чтения дефолтов корневых пропсов `NavBar` из ближайшего `NavBarDefaultPropsContext`. */\nexport const useNavBarRootDefaultProps = rootContext.useDefaultProps;\n\n/** Внутренний хук чтения дефолтов `Actions` из ближайшего `NavBarDefaultPropsContext`. */\nexport const useActionsDefaultProps = actionsContext.useDefaultProps;\n\n/** Внутренний хук чтения переопределений дефолтов иконок боковых слотов `Actions`. */\nexport const useActionsIconsDefaultProps = actionsIconsContext.useDefaultProps;\n\n/**\n * Внутренний хук готовых дефолтов текста заголовка для размера `size`: базовые дефолты по размеру,\n * поверх которых смёржены переопределения из ближайшего `NavBarDefaultPropsContext` (`titleProps`).\n */\nexport const useTitleDefaultProps = (size: TitleContainerSize): Partial<TextProps> => {\n const props = titleContext.useDefaultProps();\n return props === EMPTY_TEXT_PROPS\n ? TEXT_DEFAULT_PROPS_TITLE[size]\n : {\n ...TEXT_DEFAULT_PROPS_TITLE[size],\n ...props,\n };\n};\n\n/**\n * Внутренний хук готовых дефолтов текста подзаголовка для размера `size`: базовые дефолты по размеру,\n * поверх которых смёржены переопределения из ближайшего `NavBarDefaultPropsContext` (`subtitleProps`).\n */\nexport const useSubtitleDefaultProps = (size: TitleContainerSize): Partial<TextProps> => {\n const props = subtitleContext.useDefaultProps();\n return props === EMPTY_TEXT_PROPS\n ? TEXT_DEFAULT_PROPS_SUBTITLE[size]\n : {\n ...TEXT_DEFAULT_PROPS_SUBTITLE[size],\n ...props,\n };\n};\n\nexport interface NavBarDefaultPropsContextProps {\n /**\n * Дефолтные пропсы для самого `NavBar` в поддереве (например `startTriggerPosition` /\n * `endTriggerPosition`) — явные пропсы на самом `NavBar` побеждают.\n */\n rootProps?: Partial<NavBarProps>;\n /** Дефолтные пропсы для всех `Actions` в поддереве — явные пропсы на самом `Actions` побеждают. */\n actionsProps?: Partial<ActionsProps>;\n /**\n * Переопределение дефолтных пропсов иконок в боковых слотах `Actions` (`left` / `right`).\n * Мёржится поверх базовых дефолтов боковых иконок; на иконки центрального слота не влияет.\n */\n actionsIconsProps?: Partial<IconProps>;\n /**\n * Дефолтные пропсы для текста заголовка (`title`) `TitleContainer` в поддереве — например `style`\n * для переопределения цвета. Мёржится поверх базовых дефолтов заголовка; явные пропсы на самом\n * тексте побеждают.\n */\n titleProps?: Partial<TextProps>;\n /**\n * Дефолтные пропсы для текста подзаголовка (`subtitle`) `TitleContainer` в поддереве — например\n * `style` для переопределения цвета. Мёржится поверх базовых дефолтов подзаголовка; явные пропсы\n * на самом тексте побеждают.\n */\n subtitleProps?: Partial<TextProps>;\n /**\n * Если `true`, заданные здесь дефолты форсируются: по пересекающимся ключам они побеждают\n * любой вложенный (внутренний) провайдер, а не наоборот. Явные пропсы на самом компоненте\n * по-прежнему перекрывают любой дефолт. Применяется ко всем слотам.\n * @default false\n */\n important?: boolean;\n children?: ReactNode;\n}\n\n/**\n * Провайдер дефолтных пропсов для подкомпонентов NavBar в поддереве.\n *\n * Под капотом раскладывает пропсы по изолированным, типизированным контекстам каждого подкомпонента\n * (`actions` → контекст `Actions` и т.д.), а подкомпоненты читают свои дефолты через собственные хуки.\n * Добавление поддержки нового подкомпонента = новое поле-слот здесь + чтение в этом подкомпоненте.\n */\nexport const NavBarDefaultPropsContext: FC<NavBarDefaultPropsContextProps> = ({\n rootProps: root = EMPTY_ROOT_PROPS,\n actionsProps: actions = EMPTY_ACTIONS_PROPS,\n actionsIconsProps: actionsIcons = EMPTY_ICON_PROPS,\n titleProps: title = EMPTY_TEXT_PROPS,\n subtitleProps: subtitle = EMPTY_TEXT_PROPS,\n important = false,\n children,\n}) => (\n <RootDefaultPropsContext props={root} important={important}>\n <ActionsDefaultPropsContext props={actions} important={important}>\n <ActionsIconsDefaultPropsContext props={actionsIcons} important={important}>\n <TitleDefaultPropsContext props={title} important={important}>\n <SubtitleDefaultPropsContext props={subtitle} important={important}>\n {children}\n </SubtitleDefaultPropsContext>\n </TitleDefaultPropsContext>\n </ActionsIconsDefaultPropsContext>\n </ActionsDefaultPropsContext>\n </RootDefaultPropsContext>\n);\n\nNavBarDefaultPropsContext.displayName = 'NavBarDefaultPropsContext';\n"],"names":["_jsx"],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import './index.css';
2
- var styles = {"actions-container":"magritte-actions-container___CBgYW_1-3-29","actionsContainer":"magritte-actions-container___CBgYW_1-3-29","actions-no-children":"magritte-actions-no-children___rgJUl_1-3-29","actionsNoChildren":"magritte-actions-no-children___rgJUl_1-3-29","actions-left-slot":"magritte-actions-left-slot___DNOj0_1-3-29","actionsLeftSlot":"magritte-actions-left-slot___DNOj0_1-3-29","actions-right-slot":"magritte-actions-right-slot___aodtj_1-3-29","actionsRightSlot":"magritte-actions-right-slot___aodtj_1-3-29","navbar-transparent-end":"magritte-navbar-transparent-end___6KqLR_1-3-29","navbarTransparentEnd":"magritte-navbar-transparent-end___6KqLR_1-3-29","actions-start-stage":"magritte-actions-start-stage___MJ67a_1-3-29","actionsStartStage":"magritte-actions-start-stage___MJ67a_1-3-29","actions-side-slot-content":"magritte-actions-side-slot-content___TlHrX_1-3-29","actionsSideSlotContent":"magritte-actions-side-slot-content___TlHrX_1-3-29","actions-icon-morph":"magritte-actions-icon-morph___-nNgW_1-3-29","actionsIconMorph":"magritte-actions-icon-morph___-nNgW_1-3-29","navbar-transparent-start":"magritte-navbar-transparent-start___wysv0_1-3-29","navbarTransparentStart":"magritte-navbar-transparent-start___wysv0_1-3-29","actions-end-stage":"magritte-actions-end-stage___qHtTV_1-3-29","actionsEndStage":"magritte-actions-end-stage___qHtTV_1-3-29","navbar-not-transparent":"magritte-navbar-not-transparent___5KZNp_1-3-29","navbarNotTransparent":"magritte-navbar-not-transparent___5KZNp_1-3-29","navbar-transparent":"magritte-navbar-transparent___ULEh8_1-3-29","navbarTransparent":"magritte-navbar-transparent___ULEh8_1-3-29","actions-only-stage":"magritte-actions-only-stage___cg10A_1-3-29","actionsOnlyStage":"magritte-actions-only-stage___cg10A_1-3-29","actions-side-slot-content-clone":"magritte-actions-side-slot-content-clone___jDxVm_1-3-29","actionsSideSlotContentClone":"magritte-actions-side-slot-content-clone___jDxVm_1-3-29","actions-center-slot":"magritte-actions-center-slot___hLAy6_1-3-29","actionsCenterSlot":"magritte-actions-center-slot___hLAy6_1-3-29","actions-center-slot-centered":"magritte-actions-center-slot-centered___merXQ_1-3-29","actionsCenterSlotCentered":"magritte-actions-center-slot-centered___merXQ_1-3-29","align-top":"magritte-align-top___-QSFW_1-3-29","alignTop":"magritte-align-top___-QSFW_1-3-29","align-bottom":"magritte-align-bottom___FliHI_1-3-29","alignBottom":"magritte-align-bottom___FliHI_1-3-29","title-container-wrapper":"magritte-title-container-wrapper___DQUcj_1-3-29","titleContainerWrapper":"magritte-title-container-wrapper___DQUcj_1-3-29","title-main-part":"magritte-title-main-part___npoHN_1-3-29","titleMainPart":"magritte-title-main-part___npoHN_1-3-29","title-left-slot":"magritte-title-left-slot___HTE7h_1-3-29","titleLeftSlot":"magritte-title-left-slot___HTE7h_1-3-29","title-container":"magritte-title-container___y9AIx_1-3-29","titleContainer":"magritte-title-container___y9AIx_1-3-29","subtitle-container":"magritte-subtitle-container___nVUBu_1-3-29","subtitleContainer":"magritte-subtitle-container___nVUBu_1-3-29","text-morph-item":"magritte-text-morph-item___-vXru_1-3-29","textMorphItem":"magritte-text-morph-item___-vXru_1-3-29","centered":"magritte-centered___Y2mlP_1-3-29","title-morph-item":"magritte-title-morph-item___t7Wf3_1-3-29","titleMorphItem":"magritte-title-morph-item___t7Wf3_1-3-29","title":"magritte-title___ZbLgP_1-3-29","size-large":"magritte-size-large___ISXfH_1-3-29","sizeLarge":"magritte-size-large___ISXfH_1-3-29","pane-content":"magritte-pane-content___UVmC6_1-3-29","paneContent":"magritte-pane-content___UVmC6_1-3-29","pane-background":"magritte-pane-background___PDZAX_1-3-29","paneBackground":"magritte-pane-background___PDZAX_1-3-29","morph-item":"magritte-morph-item___8kF46_1-3-29","morphItem":"magritte-morph-item___8kF46_1-3-29","morph-item-top":"magritte-morph-item-top___WPEkn_1-3-29","morphItemTop":"magritte-morph-item-top___WPEkn_1-3-29","morph-item-bottom":"magritte-morph-item-bottom___zNbsF_1-3-29","morphItemBottom":"magritte-morph-item-bottom___zNbsF_1-3-29","morph-item-left":"magritte-morph-item-left___T6AMW_1-3-29","morphItemLeft":"magritte-morph-item-left___T6AMW_1-3-29","morph-item-right":"magritte-morph-item-right___EuT1E_1-3-29","morphItemRight":"magritte-morph-item-right___EuT1E_1-3-29","pane":"magritte-pane___f8eFC_1-3-29","start-state-container":"magritte-start-state-container___giBVb_1-3-29","startStateContainer":"magritte-start-state-container___giBVb_1-3-29","end-state-container":"magritte-end-state-container___uiW8Q_1-3-29","endStateContainer":"magritte-end-state-container___uiW8Q_1-3-29","content-container":"magritte-content-container___7s7vv_1-3-29","contentContainer":"magritte-content-container___7s7vv_1-3-29","next-pane":"magritte-next-pane___H2oxQ_1-3-29","nextPane":"magritte-next-pane___H2oxQ_1-3-29","nav-bar":"magritte-nav-bar___RRGe0_1-3-29","navBar":"magritte-nav-bar___RRGe0_1-3-29","nav-bar-overlay":"magritte-nav-bar-overlay___Mq5ZD_1-3-29","navBarOverlay":"magritte-nav-bar-overlay___Mq5ZD_1-3-29","nav-bar-overlay-wrapper":"magritte-nav-bar-overlay-wrapper___y1VpY_1-3-29","navBarOverlayWrapper":"magritte-nav-bar-overlay-wrapper___y1VpY_1-3-29","nav-bar-content-container":"magritte-nav-bar-content-container___H-WMO_1-3-29","navBarContentContainer":"magritte-nav-bar-content-container___H-WMO_1-3-29","nav-bar-panes-container":"magritte-nav-bar-panes-container___5ZDLa_1-3-29","navBarPanesContainer":"magritte-nav-bar-panes-container___5ZDLa_1-3-29","nav-bar-progressive-blur":"magritte-nav-bar-progressive-blur___qyeUV_1-3-29","navBarProgressiveBlur":"magritte-nav-bar-progressive-blur___qyeUV_1-3-29","nav-bar-stage":"magritte-nav-bar-stage___amDz7_1-3-29","navBarStage":"magritte-nav-bar-stage___amDz7_1-3-29","last-pane":"magritte-last-pane___Hf2No_1-3-29","lastPane":"magritte-last-pane___Hf2No_1-3-29","metrics-mode":"magritte-metrics-mode___h38aX_1-3-29","metricsMode":"magritte-metrics-mode___h38aX_1-3-29","layout-morph":"magritte-layout-morph___I3SPy_1-3-29","layoutMorph":"magritte-layout-morph___I3SPy_1-3-29","animation-stage-progress":"magritte-animation-stage-progress___5FthT_1-3-29","animationStageProgress":"magritte-animation-stage-progress___5FthT_1-3-29","layout-morph-start":"magritte-layout-morph-start___9-krP_1-3-29","layoutMorphStart":"magritte-layout-morph-start___9-krP_1-3-29","layout-morph-end":"magritte-layout-morph-end___LIg4d_1-3-29","layoutMorphEnd":"magritte-layout-morph-end___LIg4d_1-3-29","divider-container":"magritte-divider-container___-NdWi_1-3-29","dividerContainer":"magritte-divider-container___-NdWi_1-3-29"};
3
-
4
- export { styles as s };
5
- //# sourceMappingURL=nav-bar-BFd5MVDE.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"nav-bar-BFd5MVDE.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}