@cloudscape-design/components-themeable 3.0.1332 → 3.0.1333

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (215) hide show
  1. package/lib/internal/manifest.json +1 -1
  2. package/lib/internal/scss/app-layout/constants.scss +4 -0
  3. package/lib/internal/scss/app-layout/visual-refresh-toolbar/navigation/styles.scss +43 -13
  4. package/lib/internal/scss/app-layout/visual-refresh-toolbar/skeleton/styles.scss +7 -1
  5. package/lib/internal/scss/app-layout/visual-refresh-toolbar/toolbar/styles.scss +2 -2
  6. package/lib/internal/scss/internal/generated/custom-css-properties/index.scss +174 -173
  7. package/lib/internal/scss/side-navigation/styles.scss +4 -7
  8. package/lib/internal/scss/status-indicator/styles.scss +4 -2
  9. package/lib/internal/template/alert/styles.css.js +27 -27
  10. package/lib/internal/template/alert/styles.scoped.css +50 -50
  11. package/lib/internal/template/alert/styles.selectors.js +27 -27
  12. package/lib/internal/template/annotation-context/annotation/styles.css.js +13 -13
  13. package/lib/internal/template/annotation-context/annotation/styles.scoped.css +21 -21
  14. package/lib/internal/template/annotation-context/annotation/styles.selectors.js +13 -13
  15. package/lib/internal/template/app-layout/classic.d.ts +1 -0
  16. package/lib/internal/template/app-layout/classic.d.ts.map +1 -1
  17. package/lib/internal/template/app-layout/index.d.ts.map +1 -1
  18. package/lib/internal/template/app-layout/index.js +2 -1
  19. package/lib/internal/template/app-layout/index.js.map +1 -1
  20. package/lib/internal/template/app-layout/interfaces.d.ts +16 -1
  21. package/lib/internal/template/app-layout/interfaces.d.ts.map +1 -1
  22. package/lib/internal/template/app-layout/interfaces.js.map +1 -1
  23. package/lib/internal/template/app-layout/internal.d.ts +1 -0
  24. package/lib/internal/template/app-layout/internal.d.ts.map +1 -1
  25. package/lib/internal/template/app-layout/notifications/styles.css.js +3 -3
  26. package/lib/internal/template/app-layout/notifications/styles.scoped.css +7 -7
  27. package/lib/internal/template/app-layout/notifications/styles.selectors.js +3 -3
  28. package/lib/internal/template/app-layout/visual-refresh/index.d.ts +1 -0
  29. package/lib/internal/template/app-layout/visual-refresh/index.d.ts.map +1 -1
  30. package/lib/internal/template/app-layout/visual-refresh/styles.css.js +86 -86
  31. package/lib/internal/template/app-layout/visual-refresh/styles.scoped.css +262 -262
  32. package/lib/internal/template/app-layout/visual-refresh/styles.selectors.js +86 -86
  33. package/lib/internal/template/app-layout/visual-refresh-toolbar/compute-layout.d.ts +3 -1
  34. package/lib/internal/template/app-layout/visual-refresh-toolbar/compute-layout.d.ts.map +1 -1
  35. package/lib/internal/template/app-layout/visual-refresh-toolbar/compute-layout.js +2 -2
  36. package/lib/internal/template/app-layout/visual-refresh-toolbar/compute-layout.js.map +1 -1
  37. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/styles.css.js +32 -32
  38. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/styles.scoped.css +93 -93
  39. package/lib/internal/template/app-layout/visual-refresh-toolbar/drawer/styles.selectors.js +32 -32
  40. package/lib/internal/template/app-layout/visual-refresh-toolbar/interfaces.d.ts +2 -0
  41. package/lib/internal/template/app-layout/visual-refresh-toolbar/interfaces.d.ts.map +1 -1
  42. package/lib/internal/template/app-layout/visual-refresh-toolbar/interfaces.js.map +1 -1
  43. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/index.d.ts +2 -1
  44. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/index.d.ts.map +1 -1
  45. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/index.js +11 -5
  46. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/index.js.map +1 -1
  47. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/styles.css.js +6 -4
  48. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/styles.scoped.css +34 -15
  49. package/lib/internal/template/app-layout/visual-refresh-toolbar/navigation/styles.selectors.js +6 -4
  50. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/skeleton-parts.d.ts.map +1 -1
  51. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/skeleton-parts.js +4 -2
  52. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/skeleton-parts.js.map +1 -1
  53. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/styles.css.js +30 -29
  54. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/styles.scoped.css +72 -67
  55. package/lib/internal/template/app-layout/visual-refresh-toolbar/skeleton/styles.selectors.js +30 -29
  56. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/interfaces.d.ts +1 -0
  57. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/interfaces.d.ts.map +1 -1
  58. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/interfaces.js.map +1 -1
  59. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/props-merger.d.ts.map +1 -1
  60. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/props-merger.js +2 -0
  61. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/props-merger.js.map +1 -1
  62. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-app-layout.d.ts +1 -1
  63. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-app-layout.d.ts.map +1 -1
  64. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-app-layout.js +26 -3
  65. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-app-layout.js.map +1 -1
  66. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-skeleton-slots-attributes.d.ts.map +1 -1
  67. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-skeleton-slots-attributes.js +2 -1
  68. package/lib/internal/template/app-layout/visual-refresh-toolbar/state/use-skeleton-slots-attributes.js.map +1 -1
  69. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/index.d.ts +1 -0
  70. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/index.d.ts.map +1 -1
  71. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/index.js.map +1 -1
  72. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/styles.css.js +14 -14
  73. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/styles.scoped.css +36 -36
  74. package/lib/internal/template/app-layout/visual-refresh-toolbar/toolbar/styles.selectors.js +14 -14
  75. package/lib/internal/template/app-layout/visual-refresh-toolbar/widget-areas/before-main-slot.d.ts.map +1 -1
  76. package/lib/internal/template/app-layout/visual-refresh-toolbar/widget-areas/before-main-slot.js +3 -3
  77. package/lib/internal/template/app-layout/visual-refresh-toolbar/widget-areas/before-main-slot.js.map +1 -1
  78. package/lib/internal/template/app-layout-toolbar/index.d.ts.map +1 -1
  79. package/lib/internal/template/app-layout-toolbar/index.js +2 -1
  80. package/lib/internal/template/app-layout-toolbar/index.js.map +1 -1
  81. package/lib/internal/template/attribute-editor/styles.css.js +15 -15
  82. package/lib/internal/template/attribute-editor/styles.scoped.css +29 -29
  83. package/lib/internal/template/attribute-editor/styles.selectors.js +15 -15
  84. package/lib/internal/template/breadcrumb-group/item/styles.css.js +7 -7
  85. package/lib/internal/template/breadcrumb-group/item/styles.scoped.css +30 -30
  86. package/lib/internal/template/breadcrumb-group/item/styles.selectors.js +7 -7
  87. package/lib/internal/template/button/styles.css.js +22 -22
  88. package/lib/internal/template/button/styles.scoped.css +256 -256
  89. package/lib/internal/template/button/styles.selectors.js +22 -22
  90. package/lib/internal/template/button-dropdown/item-element/styles.css.js +21 -21
  91. package/lib/internal/template/button-dropdown/item-element/styles.scoped.css +37 -37
  92. package/lib/internal/template/button-dropdown/item-element/styles.selectors.js +21 -21
  93. package/lib/internal/template/checkbox/styles.css.js +3 -3
  94. package/lib/internal/template/checkbox/styles.scoped.css +11 -11
  95. package/lib/internal/template/checkbox/styles.selectors.js +3 -3
  96. package/lib/internal/template/content-layout/styles.css.js +14 -14
  97. package/lib/internal/template/content-layout/styles.scoped.css +27 -27
  98. package/lib/internal/template/content-layout/styles.selectors.js +14 -14
  99. package/lib/internal/template/dropdown/styles.css.js +20 -20
  100. package/lib/internal/template/dropdown/styles.scoped.css +49 -49
  101. package/lib/internal/template/dropdown/styles.selectors.js +20 -20
  102. package/lib/internal/template/file-token-group/styles.css.js +23 -23
  103. package/lib/internal/template/file-token-group/styles.scoped.css +36 -36
  104. package/lib/internal/template/file-token-group/styles.selectors.js +23 -23
  105. package/lib/internal/template/flashbar/styles.css.js +50 -50
  106. package/lib/internal/template/flashbar/styles.scoped.css +192 -192
  107. package/lib/internal/template/flashbar/styles.selectors.js +50 -50
  108. package/lib/internal/template/help-panel/styles.css.js +6 -6
  109. package/lib/internal/template/help-panel/styles.scoped.css +72 -72
  110. package/lib/internal/template/help-panel/styles.selectors.js +6 -6
  111. package/lib/internal/template/input/styles.css.js +18 -18
  112. package/lib/internal/template/input/styles.scoped.css +82 -82
  113. package/lib/internal/template/input/styles.selectors.js +18 -18
  114. package/lib/internal/template/internal/base-component/styles.scoped.css +9 -1
  115. package/lib/internal/template/internal/components/abstract-switch/index.d.ts.map +1 -1
  116. package/lib/internal/template/internal/components/abstract-switch/index.js +7 -1
  117. package/lib/internal/template/internal/components/abstract-switch/index.js.map +1 -1
  118. package/lib/internal/template/internal/components/drag-handle-wrapper/styles.css.js +30 -30
  119. package/lib/internal/template/internal/components/drag-handle-wrapper/styles.scoped.css +58 -58
  120. package/lib/internal/template/internal/components/drag-handle-wrapper/styles.selectors.js +30 -30
  121. package/lib/internal/template/internal/components/option/styles.css.js +17 -17
  122. package/lib/internal/template/internal/components/option/styles.scoped.css +31 -31
  123. package/lib/internal/template/internal/components/option/styles.selectors.js +17 -17
  124. package/lib/internal/template/internal/components/radio-button/styles.css.js +7 -7
  125. package/lib/internal/template/internal/components/radio-button/styles.scoped.css +18 -18
  126. package/lib/internal/template/internal/components/radio-button/styles.selectors.js +7 -7
  127. package/lib/internal/template/internal/components/selectable-item/styles.css.js +22 -22
  128. package/lib/internal/template/internal/components/selectable-item/styles.scoped.css +57 -57
  129. package/lib/internal/template/internal/components/selectable-item/styles.selectors.js +22 -22
  130. package/lib/internal/template/internal/components/token-list/styles.css.js +10 -10
  131. package/lib/internal/template/internal/components/token-list/styles.scoped.css +25 -25
  132. package/lib/internal/template/internal/components/token-list/styles.selectors.js +10 -10
  133. package/lib/internal/template/internal/environment.js +2 -2
  134. package/lib/internal/template/internal/environment.json +2 -2
  135. package/lib/internal/template/internal/generated/custom-css-properties/index.d.ts +1 -0
  136. package/lib/internal/template/internal/generated/custom-css-properties/index.d.ts.map +1 -1
  137. package/lib/internal/template/internal/generated/custom-css-properties/index.js +173 -172
  138. package/lib/internal/template/internal/generated/custom-css-properties/index.js.map +1 -1
  139. package/lib/internal/template/internal/generated/styles/tokens.d.ts +2 -0
  140. package/lib/internal/template/internal/generated/styles/tokens.js +2 -0
  141. package/lib/internal/template/internal/generated/theming/index.cjs +40 -0
  142. package/lib/internal/template/internal/generated/theming/index.cjs.d.ts +27 -0
  143. package/lib/internal/template/internal/generated/theming/index.d.ts +27 -0
  144. package/lib/internal/template/internal/generated/theming/index.js +40 -0
  145. package/lib/internal/template/item-card/styles.css.js +14 -14
  146. package/lib/internal/template/item-card/styles.scoped.css +63 -63
  147. package/lib/internal/template/item-card/styles.selectors.js +14 -14
  148. package/lib/internal/template/link/styles.css.js +21 -21
  149. package/lib/internal/template/link/styles.scoped.css +117 -117
  150. package/lib/internal/template/link/styles.selectors.js +21 -21
  151. package/lib/internal/template/modal/styles.css.js +31 -31
  152. package/lib/internal/template/modal/styles.scoped.css +48 -48
  153. package/lib/internal/template/modal/styles.selectors.js +31 -31
  154. package/lib/internal/template/package.json +94 -0
  155. package/lib/internal/template/progress-bar/styles.css.js +18 -18
  156. package/lib/internal/template/progress-bar/styles.scoped.css +48 -48
  157. package/lib/internal/template/progress-bar/styles.selectors.js +18 -18
  158. package/lib/internal/template/prompt-input/styles.css.js +26 -26
  159. package/lib/internal/template/prompt-input/styles.scoped.css +105 -105
  160. package/lib/internal/template/prompt-input/styles.selectors.js +26 -26
  161. package/lib/internal/template/segmented-control/styles.css.js +16 -16
  162. package/lib/internal/template/segmented-control/styles.scoped.css +46 -46
  163. package/lib/internal/template/segmented-control/styles.selectors.js +16 -16
  164. package/lib/internal/template/side-navigation/implementation.d.ts.map +1 -1
  165. package/lib/internal/template/side-navigation/implementation.js +4 -3
  166. package/lib/internal/template/side-navigation/implementation.js.map +1 -1
  167. package/lib/internal/template/side-navigation/parts.d.ts +3 -1
  168. package/lib/internal/template/side-navigation/parts.d.ts.map +1 -1
  169. package/lib/internal/template/side-navigation/parts.js +38 -26
  170. package/lib/internal/template/side-navigation/parts.js.map +1 -1
  171. package/lib/internal/template/side-navigation/styles.css.js +47 -47
  172. package/lib/internal/template/side-navigation/styles.scoped.css +74 -76
  173. package/lib/internal/template/side-navigation/styles.selectors.js +47 -47
  174. package/lib/internal/template/slider/styles.css.js +26 -26
  175. package/lib/internal/template/slider/styles.scoped.css +165 -165
  176. package/lib/internal/template/slider/styles.selectors.js +26 -26
  177. package/lib/internal/template/spinner/styles.css.js +13 -13
  178. package/lib/internal/template/spinner/styles.scoped.css +39 -39
  179. package/lib/internal/template/spinner/styles.selectors.js +13 -13
  180. package/lib/internal/template/status-indicator/internal-interfaces.d.ts +3 -0
  181. package/lib/internal/template/status-indicator/internal-interfaces.d.ts.map +1 -0
  182. package/lib/internal/template/status-indicator/internal-interfaces.js +2 -0
  183. package/lib/internal/template/status-indicator/internal-interfaces.js.map +1 -0
  184. package/lib/internal/template/status-indicator/internal.d.ts +6 -2
  185. package/lib/internal/template/status-indicator/internal.d.ts.map +1 -1
  186. package/lib/internal/template/status-indicator/internal.js +1 -0
  187. package/lib/internal/template/status-indicator/internal.js.map +1 -1
  188. package/lib/internal/template/status-indicator/styles.css.js +25 -24
  189. package/lib/internal/template/status-indicator/styles.scoped.css +59 -53
  190. package/lib/internal/template/status-indicator/styles.selectors.js +25 -24
  191. package/lib/internal/template/steps/interfaces.d.ts +2 -2
  192. package/lib/internal/template/steps/interfaces.d.ts.map +1 -1
  193. package/lib/internal/template/steps/interfaces.js.map +1 -1
  194. package/lib/internal/template/steps/internal.d.ts.map +1 -1
  195. package/lib/internal/template/steps/internal.js +1 -0
  196. package/lib/internal/template/steps/internal.js.map +1 -1
  197. package/lib/internal/template/tabs/styles.css.js +30 -30
  198. package/lib/internal/template/tabs/styles.scoped.css +76 -76
  199. package/lib/internal/template/tabs/styles.selectors.js +30 -30
  200. package/lib/internal/template/tag-editor/styles.css.js +3 -3
  201. package/lib/internal/template/tag-editor/styles.scoped.css +13 -13
  202. package/lib/internal/template/tag-editor/styles.selectors.js +3 -3
  203. package/lib/internal/template/text-content/styles.css.js +1 -1
  204. package/lib/internal/template/text-content/styles.scoped.css +66 -66
  205. package/lib/internal/template/text-content/styles.selectors.js +1 -1
  206. package/lib/internal/template/textarea/styles.css.js +5 -5
  207. package/lib/internal/template/textarea/styles.scoped.css +45 -45
  208. package/lib/internal/template/textarea/styles.selectors.js +5 -5
  209. package/lib/internal/template/toggle/styles.css.js +10 -10
  210. package/lib/internal/template/toggle/styles.scoped.css +23 -23
  211. package/lib/internal/template/toggle/styles.selectors.js +10 -10
  212. package/lib/internal/template/token/styles.css.js +14 -14
  213. package/lib/internal/template/token/styles.scoped.css +47 -47
  214. package/lib/internal/template/token/styles.selectors.js +14 -14
  215. package/package.json +1 -1
@@ -158,7 +158,7 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
158
158
  Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
159
159
  SPDX-License-Identifier: Apache-2.0
160
160
  */
161
- .awsui_segment_8cbea_1jyr6_161:not(#\9) {
161
+ .awsui_segment_8cbea_13buo_161:not(#\9) {
162
162
  font-size: var(--font-size-body-m-vv54cm, 14px);
163
163
  line-height: var(--line-height-body-m-bedeoh, 22px);
164
164
  word-wrap: break-word;
@@ -170,8 +170,8 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
170
170
  letter-spacing: 0.25px;
171
171
  padding-block: calc(var(--space-field-vertical-dgs6s0, 4px) - var(--border-width-field-2365x3, 1px));
172
172
  padding-inline: calc(var(--space-button-horizontal-v8ywmo, 20px) - var(--space-static-xxs-0cgyf1, 4px));
173
- background: var(--awsui-style-background-default-z17rmd, var(--color-background-segment-default-zwi7m6, #ffffff));
174
- color: var(--awsui-style-color-default-z17rmd, var(--color-text-segment-default-a74tco, #545b64));
173
+ background: var(--awsui-style-background-default-esndbs, var(--color-background-segment-default-zwi7m6, #ffffff));
174
+ color: var(--awsui-style-color-default-esndbs, var(--color-text-segment-default-a74tco, #545b64));
175
175
  overflow: visible;
176
176
  border-start-start-radius: calc(var(--border-radius-button-9k0hrl, 2px) - 3px);
177
177
  border-start-end-radius: calc(var(--border-radius-button-9k0hrl, 2px) - 3px);
@@ -183,26 +183,26 @@ surrounding text. (WCAG F73) https://www.w3.org/WAI/WCAG21/Techniques/failures/F
183
183
  align-items: center;
184
184
  border-inline: none;
185
185
  border-block: none;
186
- --awsui-style-focus-ring-box-shadow-z17rmd: 0 0 0 var(--awsui-style-focus-ring-border-width-z17rmd, 2px) var(--awsui-style-focus-ring-border-color-z17rmd, var(--color-border-item-focused-r5f6xl, #0073bb));
186
+ --awsui-style-focus-ring-box-shadow-esndbs: 0 0 0 var(--awsui-style-focus-ring-border-width-esndbs, 2px) var(--awsui-style-focus-ring-border-color-esndbs, var(--color-border-item-focused-r5f6xl, #0073bb));
187
187
  }
188
- .awsui_segment_8cbea_1jyr6_161:not(#\9):not(.awsui_refresh_8cbea_1jyr6_188) {
188
+ .awsui_segment_8cbea_13buo_161:not(#\9):not(.awsui_refresh_8cbea_13buo_188) {
189
189
  block-size: calc(100% - var(--space-static-xxs-0cgyf1, 4px) - 2 * var(--border-width-field-2365x3, 1px));
190
190
  }
191
- .awsui_segment_8cbea_1jyr6_161:not(#\9):focus {
191
+ .awsui_segment_8cbea_13buo_161:not(#\9):focus {
192
192
  outline: none;
193
193
  }
194
- .awsui_segment_8cbea_1jyr6_161.awsui_disabled_8cbea_1jyr6_194:not(#\9) {
195
- background: var(--awsui-style-background-disabled-z17rmd, var(--color-background-segment-disabled-etp65k, #ffffff));
196
- color: var(--awsui-style-color-disabled-z17rmd, var(--color-text-interactive-disabled-xwt2jl, #aab7b8));
194
+ .awsui_segment_8cbea_13buo_161.awsui_disabled_8cbea_13buo_194:not(#\9) {
195
+ background: var(--awsui-style-background-disabled-esndbs, var(--color-background-segment-disabled-etp65k, #ffffff));
196
+ color: var(--awsui-style-color-disabled-esndbs, var(--color-text-interactive-disabled-xwt2jl, #aab7b8));
197
197
  }
198
- body[data-awsui-focus-visible=true] .awsui_segment_8cbea_1jyr6_161:not(#\9):focus {
198
+ body[data-awsui-focus-visible=true] .awsui_segment_8cbea_13buo_161:not(#\9):focus {
199
199
  position: relative;
200
200
  }
201
- body[data-awsui-focus-visible=true] .awsui_segment_8cbea_1jyr6_161:not(#\9):focus {
201
+ body[data-awsui-focus-visible=true] .awsui_segment_8cbea_13buo_161:not(#\9):focus {
202
202
  outline: 2px dotted transparent;
203
203
  outline-offset: calc(var(--space-segmented-control-focus-outline-gutter-tvktqv, 3px) - 1px);
204
204
  }
205
- body[data-awsui-focus-visible=true] .awsui_segment_8cbea_1jyr6_161:not(#\9):focus::before {
205
+ body[data-awsui-focus-visible=true] .awsui_segment_8cbea_13buo_161:not(#\9):focus::before {
206
206
  content: " ";
207
207
  display: block;
208
208
  position: absolute;
@@ -210,14 +210,14 @@ body[data-awsui-focus-visible=true] .awsui_segment_8cbea_1jyr6_161:not(#\9):focu
210
210
  inset-block-start: calc(-1 * var(--space-segmented-control-focus-outline-gutter-tvktqv, 3px));
211
211
  inline-size: calc(100% + var(--space-segmented-control-focus-outline-gutter-tvktqv, 3px) + var(--space-segmented-control-focus-outline-gutter-tvktqv, 3px));
212
212
  block-size: calc(100% + var(--space-segmented-control-focus-outline-gutter-tvktqv, 3px) + var(--space-segmented-control-focus-outline-gutter-tvktqv, 3px));
213
- border-start-start-radius: var(--awsui-style-focus-ring-border-radius-z17rmd, var(--border-radius-control-default-focus-ring-akwhsf, 2px));
214
- border-start-end-radius: var(--awsui-style-focus-ring-border-radius-z17rmd, var(--border-radius-control-default-focus-ring-akwhsf, 2px));
215
- border-end-start-radius: var(--awsui-style-focus-ring-border-radius-z17rmd, var(--border-radius-control-default-focus-ring-akwhsf, 2px));
216
- border-end-end-radius: var(--awsui-style-focus-ring-border-radius-z17rmd, var(--border-radius-control-default-focus-ring-akwhsf, 2px));
217
- box-shadow: var(--awsui-style-focus-ring-box-shadow-z17rmd);
213
+ border-start-start-radius: var(--awsui-style-focus-ring-border-radius-esndbs, var(--border-radius-control-default-focus-ring-akwhsf, 2px));
214
+ border-start-end-radius: var(--awsui-style-focus-ring-border-radius-esndbs, var(--border-radius-control-default-focus-ring-akwhsf, 2px));
215
+ border-end-start-radius: var(--awsui-style-focus-ring-border-radius-esndbs, var(--border-radius-control-default-focus-ring-akwhsf, 2px));
216
+ border-end-end-radius: var(--awsui-style-focus-ring-border-radius-esndbs, var(--border-radius-control-default-focus-ring-akwhsf, 2px));
217
+ box-shadow: var(--awsui-style-focus-ring-box-shadow-esndbs);
218
218
  z-index: 1;
219
219
  }
220
- .awsui_segment_8cbea_1jyr6_161:not(#\9):not(:last-child)::after {
220
+ .awsui_segment_8cbea_13buo_161:not(#\9):not(:last-child)::after {
221
221
  content: "";
222
222
  position: absolute;
223
223
  inset-inline-end: calc(-1 * (var(--space-static-xxs-0cgyf1, 4px) + 1px));
@@ -227,53 +227,53 @@ body[data-awsui-focus-visible=true] .awsui_segment_8cbea_1jyr6_161:not(#\9):focu
227
227
  background: var(--color-border-input-default-txli8y, #687078);
228
228
  z-index: 1;
229
229
  }
230
- .awsui_segment_8cbea_1jyr6_161:not(#\9):not(.awsui_refresh_8cbea_1jyr6_188):not(:last-child)::after {
230
+ .awsui_segment_8cbea_13buo_161:not(#\9):not(.awsui_refresh_8cbea_13buo_188):not(:last-child)::after {
231
231
  inset-inline-end: calc(-1 * var(--space-static-xxs-0cgyf1, 4px));
232
232
  }
233
- .awsui_segment_8cbea_1jyr6_161:not(#\9):nth-child(1) {
233
+ .awsui_segment_8cbea_13buo_161:not(#\9):nth-child(1) {
234
234
  grid-column: 1;
235
235
  }
236
- .awsui_segment_8cbea_1jyr6_161:not(#\9):nth-child(2) {
236
+ .awsui_segment_8cbea_13buo_161:not(#\9):nth-child(2) {
237
237
  grid-column: 2;
238
238
  }
239
- .awsui_segment_8cbea_1jyr6_161:not(#\9):nth-child(3) {
239
+ .awsui_segment_8cbea_13buo_161:not(#\9):nth-child(3) {
240
240
  grid-column: 3;
241
241
  }
242
- .awsui_segment_8cbea_1jyr6_161:not(#\9):nth-child(4) {
242
+ .awsui_segment_8cbea_13buo_161:not(#\9):nth-child(4) {
243
243
  grid-column: 4;
244
244
  }
245
- .awsui_segment_8cbea_1jyr6_161:not(#\9):nth-child(5) {
245
+ .awsui_segment_8cbea_13buo_161:not(#\9):nth-child(5) {
246
246
  grid-column: 5;
247
247
  }
248
- .awsui_segment_8cbea_1jyr6_161:not(#\9):nth-child(6) {
248
+ .awsui_segment_8cbea_13buo_161:not(#\9):nth-child(6) {
249
249
  grid-column: 6;
250
250
  }
251
- .awsui_segment_8cbea_1jyr6_161.awsui_selected_8cbea_1jyr6_251:not(#\9) {
252
- background: var(--awsui-style-background-active-z17rmd, var(--color-background-segment-active-pvua4h, #0073bb));
253
- color: var(--awsui-style-color-active-z17rmd, var(--color-text-segment-active-q50mlg, #ffffff));
251
+ .awsui_segment_8cbea_13buo_161.awsui_selected_8cbea_13buo_251:not(#\9) {
252
+ background: var(--awsui-style-background-active-esndbs, var(--color-background-segment-active-pvua4h, #0073bb));
253
+ color: var(--awsui-style-color-active-esndbs, var(--color-text-segment-active-q50mlg, #ffffff));
254
254
  }
255
- .awsui_segment_8cbea_1jyr6_161:not(#\9):hover:not(.awsui_selected_8cbea_1jyr6_251):not(.awsui_disabled_8cbea_1jyr6_194):not(:focus) {
256
- background: var(--awsui-style-background-hover-z17rmd, var(--color-background-segment-hover-bakufl, #fafafa));
257
- color: var(--awsui-style-color-hover-z17rmd, var(--color-text-segment-hover-33xnva, #16191f));
255
+ .awsui_segment_8cbea_13buo_161:not(#\9):hover:not(.awsui_selected_8cbea_13buo_251):not(.awsui_disabled_8cbea_13buo_194):not(:focus) {
256
+ background: var(--awsui-style-background-hover-esndbs, var(--color-background-segment-hover-bakufl, #fafafa));
257
+ color: var(--awsui-style-color-hover-esndbs, var(--color-text-segment-hover-33xnva, #16191f));
258
258
  cursor: pointer;
259
259
  }
260
260
 
261
- .awsui_icon_8cbea_1jyr6_261:not(#\9) {
261
+ .awsui_icon_8cbea_13buo_261:not(#\9) {
262
262
  /* used in test-utils */
263
263
  }
264
264
 
265
- .awsui_with-text_8cbea_1jyr6_265:not(#\9) {
265
+ .awsui_with-text_8cbea_13buo_265:not(#\9) {
266
266
  position: relative;
267
267
  inset-inline-start: calc(-1 * var(--space-xxs-jnczic, 4px));
268
268
  margin-inline-end: var(--space-xxs-jnczic, 4px);
269
269
  }
270
270
 
271
- .awsui_with-no-text_8cbea_1jyr6_271:not(#\9) {
271
+ .awsui_with-no-text_8cbea_13buo_271:not(#\9) {
272
272
  margin-inline: auto;
273
273
  inset-inline: 0;
274
274
  }
275
275
 
276
- .awsui_root_8cbea_1jyr6_276:not(#\9) {
276
+ .awsui_root_8cbea_13buo_276:not(#\9) {
277
277
  border-collapse: separate;
278
278
  border-spacing: 0;
279
279
  box-sizing: border-box;
@@ -305,7 +305,7 @@ body[data-awsui-focus-visible=true] .awsui_segment_8cbea_1jyr6_161:not(#\9):focu
305
305
  -moz-osx-font-smoothing: auto;
306
306
  }
307
307
 
308
- .awsui_segment-part_8cbea_1jyr6_308:not(#\9) {
308
+ .awsui_segment-part_8cbea_13buo_308:not(#\9) {
309
309
  display: inline-grid;
310
310
  border-inline: solid var(--border-width-field-2365x3, 1px) var(--color-border-segment-wrapper-7vfuf7, #687078);
311
311
  border-block: solid var(--border-width-field-2365x3, 1px) var(--color-border-segment-wrapper-7vfuf7, #687078);
@@ -320,46 +320,46 @@ body[data-awsui-focus-visible=true] .awsui_segment_8cbea_1jyr6_161:not(#\9):focu
320
320
  padding-inline: calc(var(--space-static-xxs-0cgyf1, 4px) - var(--border-width-field-2365x3, 1px));
321
321
  gap: calc(var(--space-static-xxs-0cgyf1, 4px) * 2 + 1px);
322
322
  }
323
- .awsui_segment-part_8cbea_1jyr6_308:not(#\9):not(.awsui_refresh_8cbea_1jyr6_188) {
323
+ .awsui_segment-part_8cbea_13buo_308:not(#\9):not(.awsui_refresh_8cbea_13buo_188) {
324
324
  padding-inline: calc(var(--space-static-xxxs-zckw10, 2px) + var(--border-width-field-2365x3, 1px));
325
325
  padding-block: 0;
326
326
  gap: calc(var(--space-static-xxs-0cgyf1, 4px) * 2 - 1px);
327
327
  }
328
328
  @media (max-width: 688px) {
329
- .awsui_segment-part_8cbea_1jyr6_308:not(#\9) {
329
+ .awsui_segment-part_8cbea_13buo_308:not(#\9) {
330
330
  display: none;
331
331
  }
332
332
  }
333
333
 
334
- .awsui_select_8cbea_1jyr6_251:not(#\9) {
334
+ .awsui_select_8cbea_13buo_251:not(#\9) {
335
335
  display: none;
336
336
  }
337
337
  @media (max-width: 688px) {
338
- .awsui_select_8cbea_1jyr6_251:not(#\9) {
338
+ .awsui_select_8cbea_13buo_251:not(#\9) {
339
339
  display: block;
340
340
  }
341
341
  }
342
342
 
343
- .awsui_segment-count-2_8cbea_1jyr6_343:not(#\9) {
343
+ .awsui_segment-count-2_8cbea_13buo_343:not(#\9) {
344
344
  grid-template-columns: repeat(2, auto);
345
345
  }
346
346
 
347
- .awsui_segment-count-3_8cbea_1jyr6_347:not(#\9) {
347
+ .awsui_segment-count-3_8cbea_13buo_347:not(#\9) {
348
348
  grid-template-columns: repeat(3, auto);
349
349
  }
350
350
 
351
- .awsui_segment-count-4_8cbea_1jyr6_351:not(#\9) {
351
+ .awsui_segment-count-4_8cbea_13buo_351:not(#\9) {
352
352
  grid-template-columns: repeat(4, auto);
353
353
  }
354
354
 
355
- .awsui_segment-count-5_8cbea_1jyr6_355:not(#\9) {
355
+ .awsui_segment-count-5_8cbea_13buo_355:not(#\9) {
356
356
  grid-template-columns: repeat(5, auto);
357
357
  }
358
358
 
359
- .awsui_segment-count-6_8cbea_1jyr6_359:not(#\9) {
359
+ .awsui_segment-count-6_8cbea_13buo_359:not(#\9) {
360
360
  grid-template-columns: repeat(6, auto);
361
361
  }
362
362
 
363
- .awsui_disabled-reason-tooltip_8cbea_1jyr6_363:not(#\9) {
363
+ .awsui_disabled-reason-tooltip_8cbea_13buo_363:not(#\9) {
364
364
  /* used in test-utils or tests */
365
365
  }
@@ -2,21 +2,21 @@
2
2
  // es-module interop with Babel and Typescript
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
4
  module.exports.default = {
5
- "segment": "awsui_segment_8cbea_1jyr6_161",
6
- "refresh": "awsui_refresh_8cbea_1jyr6_188",
7
- "disabled": "awsui_disabled_8cbea_1jyr6_194",
8
- "selected": "awsui_selected_8cbea_1jyr6_251",
9
- "icon": "awsui_icon_8cbea_1jyr6_261",
10
- "with-text": "awsui_with-text_8cbea_1jyr6_265",
11
- "with-no-text": "awsui_with-no-text_8cbea_1jyr6_271",
12
- "root": "awsui_root_8cbea_1jyr6_276",
13
- "segment-part": "awsui_segment-part_8cbea_1jyr6_308",
14
- "select": "awsui_select_8cbea_1jyr6_251",
15
- "segment-count-2": "awsui_segment-count-2_8cbea_1jyr6_343",
16
- "segment-count-3": "awsui_segment-count-3_8cbea_1jyr6_347",
17
- "segment-count-4": "awsui_segment-count-4_8cbea_1jyr6_351",
18
- "segment-count-5": "awsui_segment-count-5_8cbea_1jyr6_355",
19
- "segment-count-6": "awsui_segment-count-6_8cbea_1jyr6_359",
20
- "disabled-reason-tooltip": "awsui_disabled-reason-tooltip_8cbea_1jyr6_363"
5
+ "segment": "awsui_segment_8cbea_13buo_161",
6
+ "refresh": "awsui_refresh_8cbea_13buo_188",
7
+ "disabled": "awsui_disabled_8cbea_13buo_194",
8
+ "selected": "awsui_selected_8cbea_13buo_251",
9
+ "icon": "awsui_icon_8cbea_13buo_261",
10
+ "with-text": "awsui_with-text_8cbea_13buo_265",
11
+ "with-no-text": "awsui_with-no-text_8cbea_13buo_271",
12
+ "root": "awsui_root_8cbea_13buo_276",
13
+ "segment-part": "awsui_segment-part_8cbea_13buo_308",
14
+ "select": "awsui_select_8cbea_13buo_251",
15
+ "segment-count-2": "awsui_segment-count-2_8cbea_13buo_343",
16
+ "segment-count-3": "awsui_segment-count-3_8cbea_13buo_347",
17
+ "segment-count-4": "awsui_segment-count-4_8cbea_13buo_351",
18
+ "segment-count-5": "awsui_segment-count-5_8cbea_13buo_355",
19
+ "segment-count-6": "awsui_segment-count-6_8cbea_13buo_359",
20
+ "disabled-reason-tooltip": "awsui_disabled-reason-tooltip_8cbea_13buo_363"
21
21
  };
22
22
 
@@ -1 +1 @@
1
- {"version":3,"file":"implementation.d.ts","sourceRoot":"","sources":["../../../src/side-navigation/implementation.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAGlF,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAMnD,KAAK,2BAA2B,GAAG,mBAAmB,GAAG,0BAA0B,CAAC;AAEpF,wBAAgB,4BAA4B,CAAC,EAC3C,MAAM,EACN,YAAY,EACZ,UAAU,EACV,KAAU,EACV,QAAQ,EACR,QAAQ,EACR,SAAiB,EACjB,iBAAiB,EACjB,GAAG,KAAK,EACT,EAAE,2BAA2B,eA+D7B;AAED,eAAO,MAAM,8BAA8B,mGAA0D,CAAC"}
1
+ {"version":3,"file":"implementation.d.ts","sourceRoot":"","sources":["../../../src/side-navigation/implementation.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAGlF,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAMnD,KAAK,2BAA2B,GAAG,mBAAmB,GAAG,0BAA0B,CAAC;AAEpF,wBAAgB,4BAA4B,CAAC,EAC3C,MAAM,EACN,YAAY,EACZ,UAAU,EACV,KAAU,EACV,QAAQ,EACR,QAAQ,EACR,SAAiB,EACjB,iBAAiB,EACjB,GAAG,KAAK,EACT,EAAE,2BAA2B,eAuE7B;AAED,eAAO,MAAM,8BAA8B,mGAA0D,CAAC"}
@@ -1,6 +1,6 @@
1
1
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
2
  // SPDX-License-Identifier: Apache-2.0
3
- import React, { useCallback, useEffect, useMemo } from 'react';
3
+ import React, { useCallback, useEffect, useMemo, useState } from 'react';
4
4
  import clsx from 'clsx';
5
5
  import { useAppLayoutToolbarDesignEnabled } from '../app-layout/utils/feature-flags';
6
6
  import { getBaseProps } from '../internal/base-component';
@@ -14,6 +14,7 @@ export function SideNavigationImplementation({ header, itemsControl, activeHref,
14
14
  const baseProps = getBaseProps(props);
15
15
  const isToolbar = useAppLayoutToolbarDesignEnabled();
16
16
  const parentMap = useMemo(() => generateExpandableItemsMapping(items), [items]);
17
+ const [activeTooltip, setActiveTooltip] = useState(null);
17
18
  if (isDevelopment) {
18
19
  // This code should be wiped in production anyway.
19
20
  // eslint-disable-next-line react-hooks/rules-of-hooks
@@ -26,11 +27,11 @@ export function SideNavigationImplementation({ header, itemsControl, activeHref,
26
27
  const onFollowHandler = useCallback((item, sourceEvent) => {
27
28
  fireCancelableEvent(onFollow, item, sourceEvent);
28
29
  }, [onFollow]);
29
- return (React.createElement("div", { ...baseProps, className: clsx(styles.root, baseProps.className, isToolbar && styles['with-toolbar']), ref: __internalRootRef },
30
+ return (React.createElement("div", { ...baseProps, className: clsx(styles.root, baseProps.className, isToolbar && styles['with-toolbar'], collapsed && styles['root--collapsed']), ref: __internalRootRef },
30
31
  header && (React.createElement(Header, { definition: header, activeHref: activeHref, fireChange: onChangeHandler, fireFollow: onFollowHandler, collapsed: collapsed })),
31
32
  !collapsed && itemsControl && React.createElement("div", { className: styles['items-control'] }, itemsControl),
32
33
  items && (React.createElement("div", { className: styles['list-container'] },
33
- React.createElement(NavigationItemsList, { variant: "root", items: items, fireFollow: onFollowHandler, fireChange: onChangeHandler, activeHref: activeHref, collapsed: collapsed })))));
34
+ React.createElement(NavigationItemsList, { variant: "root", items: items, fireFollow: onFollowHandler, fireChange: onChangeHandler, activeHref: activeHref, collapsed: collapsed, activeTooltip: activeTooltip, setActiveTooltip: setActiveTooltip })))));
34
35
  }
35
36
  export const createWidgetizedSideNavigation = createWidgetizedComponent(SideNavigationImplementation);
36
37
  //# sourceMappingURL=implementation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"implementation.js","sourceRoot":"","sources":["../../../src/side-navigation/implementation.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useCallback, useEffect, useMemo } from 'react';\nimport clsx from 'clsx';\n\nimport { useAppLayoutToolbarDesignEnabled } from '../app-layout/utils/feature-flags';\nimport { getBaseProps } from '../internal/base-component';\nimport { fireCancelableEvent, fireNonCancelableEvent } from '../internal/events';\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component';\nimport { isDevelopment } from '../internal/is-development';\nimport { createWidgetizedComponent } from '../internal/widgets';\nimport { SideNavigationProps } from './interfaces';\nimport { Header, NavigationItemsList } from './parts';\nimport { checkDuplicateHrefs, generateExpandableItemsMapping } from './util';\n\nimport styles from './styles.css.js';\n\ntype SideNavigationInternalProps = SideNavigationProps & InternalBaseComponentProps;\n\nexport function SideNavigationImplementation({\n header,\n itemsControl,\n activeHref,\n items = [],\n onFollow,\n onChange,\n collapsed = false,\n __internalRootRef,\n ...props\n}: SideNavigationInternalProps) {\n const baseProps = getBaseProps(props);\n const isToolbar = useAppLayoutToolbarDesignEnabled();\n const parentMap = useMemo(() => generateExpandableItemsMapping(items), [items]);\n\n if (isDevelopment) {\n // This code should be wiped in production anyway.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useEffect(() => checkDuplicateHrefs(items), [items]);\n }\n\n const onChangeHandler = useCallback(\n (item: SideNavigationProps.Section | SideNavigationProps.ExpandableLinkGroup, expanded: boolean) => {\n // generateExpandableItemsMapping walks through the entire tree, so we're certain about getting a value.\n fireNonCancelableEvent(onChange, { item, expanded: expanded, expandableParents: parentMap.get(item)! });\n },\n [onChange, parentMap]\n );\n\n const onFollowHandler = useCallback(\n (\n item:\n | SideNavigationProps.Link\n | SideNavigationProps.Header\n | SideNavigationProps.LinkGroup\n | SideNavigationProps.ExpandableLinkGroup,\n sourceEvent: React.SyntheticEvent | Event\n ) => {\n fireCancelableEvent(onFollow, item, sourceEvent);\n },\n [onFollow]\n );\n\n return (\n <div\n {...baseProps}\n className={clsx(styles.root, baseProps.className, isToolbar && styles['with-toolbar'])}\n ref={__internalRootRef}\n >\n {header && (\n <Header\n definition={header}\n activeHref={activeHref}\n fireChange={onChangeHandler}\n fireFollow={onFollowHandler}\n collapsed={collapsed}\n />\n )}\n {!collapsed && itemsControl && <div className={styles['items-control']}>{itemsControl}</div>}\n {items && (\n <div className={styles['list-container']}>\n <NavigationItemsList\n variant=\"root\"\n items={items}\n fireFollow={onFollowHandler}\n fireChange={onChangeHandler}\n activeHref={activeHref}\n collapsed={collapsed}\n />\n </div>\n )}\n </div>\n );\n}\n\nexport const createWidgetizedSideNavigation = createWidgetizedComponent(SideNavigationImplementation);\n"]}
1
+ {"version":3,"file":"implementation.js","sourceRoot":"","sources":["../../../src/side-navigation/implementation.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACzE,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,OAAO,EAAE,gCAAgC,EAAE,MAAM,mCAAmC,CAAC;AACrF,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAEjF,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,qBAAqB,CAAC;AAEhE,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,mBAAmB,EAAE,8BAA8B,EAAE,MAAM,QAAQ,CAAC;AAE7E,OAAO,MAAM,MAAM,iBAAiB,CAAC;AAIrC,MAAM,UAAU,4BAA4B,CAAC,EAC3C,MAAM,EACN,YAAY,EACZ,UAAU,EACV,KAAK,GAAG,EAAE,EACV,QAAQ,EACR,QAAQ,EACR,SAAS,GAAG,KAAK,EACjB,iBAAiB,EACjB,GAAG,KAAK,EACoB;IAC5B,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IACtC,MAAM,SAAS,GAAG,gCAAgC,EAAE,CAAC;IACrD,MAAM,SAAS,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,8BAA8B,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAChF,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAExE,IAAI,aAAa,EAAE,CAAC;QAClB,kDAAkD;QAClD,sDAAsD;QACtD,SAAS,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,eAAe,GAAG,WAAW,CACjC,CAAC,IAA2E,EAAE,QAAiB,EAAE,EAAE;QACjG,wGAAwG;QACxG,sBAAsB,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,iBAAiB,EAAE,SAAS,CAAC,GAAG,CAAC,IAAI,CAAE,EAAE,CAAC,CAAC;IAC1G,CAAC,EACD,CAAC,QAAQ,EAAE,SAAS,CAAC,CACtB,CAAC;IAEF,MAAM,eAAe,GAAG,WAAW,CACjC,CACE,IAI2C,EAC3C,WAAyC,EACzC,EAAE;QACF,mBAAmB,CAAC,QAAQ,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;IACnD,CAAC,EACD,CAAC,QAAQ,CAAC,CACX,CAAC;IAEF,OAAO,CACL,gCACM,SAAS,EACb,SAAS,EAAE,IAAI,CACb,MAAM,CAAC,IAAI,EACX,SAAS,CAAC,SAAS,EACnB,SAAS,IAAI,MAAM,CAAC,cAAc,CAAC,EACnC,SAAS,IAAI,MAAM,CAAC,iBAAiB,CAAC,CACvC,EACD,GAAG,EAAE,iBAAiB;QAErB,MAAM,IAAI,CACT,oBAAC,MAAM,IACL,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,eAAe,EAC3B,UAAU,EAAE,eAAe,EAC3B,SAAS,EAAE,SAAS,GACpB,CACH;QACA,CAAC,SAAS,IAAI,YAAY,IAAI,6BAAK,SAAS,EAAE,MAAM,CAAC,eAAe,CAAC,IAAG,YAAY,CAAO;QAC3F,KAAK,IAAI,CACR,6BAAK,SAAS,EAAE,MAAM,CAAC,gBAAgB,CAAC;YACtC,oBAAC,mBAAmB,IAClB,OAAO,EAAC,MAAM,EACd,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,eAAe,EAC3B,UAAU,EAAE,eAAe,EAC3B,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,aAAa,EAC5B,gBAAgB,EAAE,gBAAgB,GAClC,CACE,CACP,CACG,CACP,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,MAAM,8BAA8B,GAAG,yBAAyB,CAAC,4BAA4B,CAAC,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport clsx from 'clsx';\n\nimport { useAppLayoutToolbarDesignEnabled } from '../app-layout/utils/feature-flags';\nimport { getBaseProps } from '../internal/base-component';\nimport { fireCancelableEvent, fireNonCancelableEvent } from '../internal/events';\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component';\nimport { isDevelopment } from '../internal/is-development';\nimport { createWidgetizedComponent } from '../internal/widgets';\nimport { SideNavigationProps } from './interfaces';\nimport { Header, NavigationItemsList } from './parts';\nimport { checkDuplicateHrefs, generateExpandableItemsMapping } from './util';\n\nimport styles from './styles.css.js';\n\ntype SideNavigationInternalProps = SideNavigationProps & InternalBaseComponentProps;\n\nexport function SideNavigationImplementation({\n header,\n itemsControl,\n activeHref,\n items = [],\n onFollow,\n onChange,\n collapsed = false,\n __internalRootRef,\n ...props\n}: SideNavigationInternalProps) {\n const baseProps = getBaseProps(props);\n const isToolbar = useAppLayoutToolbarDesignEnabled();\n const parentMap = useMemo(() => generateExpandableItemsMapping(items), [items]);\n const [activeTooltip, setActiveTooltip] = useState<string | null>(null);\n\n if (isDevelopment) {\n // This code should be wiped in production anyway.\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useEffect(() => checkDuplicateHrefs(items), [items]);\n }\n\n const onChangeHandler = useCallback(\n (item: SideNavigationProps.Section | SideNavigationProps.ExpandableLinkGroup, expanded: boolean) => {\n // generateExpandableItemsMapping walks through the entire tree, so we're certain about getting a value.\n fireNonCancelableEvent(onChange, { item, expanded: expanded, expandableParents: parentMap.get(item)! });\n },\n [onChange, parentMap]\n );\n\n const onFollowHandler = useCallback(\n (\n item:\n | SideNavigationProps.Link\n | SideNavigationProps.Header\n | SideNavigationProps.LinkGroup\n | SideNavigationProps.ExpandableLinkGroup,\n sourceEvent: React.SyntheticEvent | Event\n ) => {\n fireCancelableEvent(onFollow, item, sourceEvent);\n },\n [onFollow]\n );\n\n return (\n <div\n {...baseProps}\n className={clsx(\n styles.root,\n baseProps.className,\n isToolbar && styles['with-toolbar'],\n collapsed && styles['root--collapsed']\n )}\n ref={__internalRootRef}\n >\n {header && (\n <Header\n definition={header}\n activeHref={activeHref}\n fireChange={onChangeHandler}\n fireFollow={onFollowHandler}\n collapsed={collapsed}\n />\n )}\n {!collapsed && itemsControl && <div className={styles['items-control']}>{itemsControl}</div>}\n {items && (\n <div className={styles['list-container']}>\n <NavigationItemsList\n variant=\"root\"\n items={items}\n fireFollow={onFollowHandler}\n fireChange={onChangeHandler}\n activeHref={activeHref}\n collapsed={collapsed}\n activeTooltip={activeTooltip}\n setActiveTooltip={setActiveTooltip}\n />\n </div>\n )}\n </div>\n );\n}\n\nexport const createWidgetizedSideNavigation = createWidgetizedComponent(SideNavigationImplementation);\n"]}
@@ -6,6 +6,8 @@ interface BaseItemComponentProps {
6
6
  fireFollow: (item: SideNavigationProps.Link | SideNavigationProps.Header | SideNavigationProps.LinkGroup | SideNavigationProps.ExpandableLinkGroup, event: React.SyntheticEvent | Event) => void;
7
7
  position?: string;
8
8
  collapsed?: boolean;
9
+ activeTooltip?: string | null;
10
+ setActiveTooltip?: (position: string | null) => void;
9
11
  }
10
12
  interface HeaderProps extends BaseItemComponentProps {
11
13
  definition: SideNavigationProps.Header;
@@ -15,6 +17,6 @@ interface NavigationItemsListProps extends BaseItemComponentProps {
15
17
  items: ReadonlyArray<SideNavigationProps.Item>;
16
18
  variant: 'section' | 'section-group' | 'link-group' | 'expandable-link-group' | 'root';
17
19
  }
18
- export declare function NavigationItemsList({ items, variant, activeHref, fireChange, fireFollow, position, collapsed, }: NavigationItemsListProps): JSX.Element;
20
+ export declare function NavigationItemsList({ items, variant, activeHref, fireChange, fireFollow, position, collapsed, activeTooltip, setActiveTooltip, }: NavigationItemsListProps): JSX.Element;
19
21
  export {};
20
22
  //# sourceMappingURL=parts.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parts.d.ts","sourceRoot":"","sources":["../../../src/side-navigation/parts.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAuE,MAAM,OAAO,CAAC;AAgB5F,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAOnD,UAAU,sBAAsB;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,CAAC,IAAI,EAAE,mBAAmB,CAAC,OAAO,GAAG,mBAAmB,CAAC,mBAAmB,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACrH,UAAU,EAAE,CACV,IAAI,EACA,mBAAmB,CAAC,IAAI,GACxB,mBAAmB,CAAC,MAAM,GAC1B,mBAAmB,CAAC,SAAS,GAC7B,mBAAmB,CAAC,mBAAmB,EAC3C,KAAK,EAAE,KAAK,CAAC,cAAc,GAAG,KAAK,KAChC,IAAI,CAAC;IACV,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,UAAU,WAAY,SAAQ,sBAAsB;IAClD,UAAU,EAAE,mBAAmB,CAAC,MAAM,CAAC;CACxC;AAED,wBAAgB,MAAM,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,WAAW,eA4DpF;AAED,UAAU,wBAAyB,SAAQ,sBAAsB;IAC/D,KAAK,EAAE,aAAa,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC/C,OAAO,EAAE,SAAS,GAAG,eAAe,GAAG,YAAY,GAAG,uBAAuB,GAAG,MAAM,CAAC;CACxF;AAQD,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,OAAO,EACP,UAAU,EACV,UAAU,EACV,UAAU,EACV,QAAa,EACb,SAAS,GACV,EAAE,wBAAwB,eA8Q1B"}
1
+ {"version":3,"file":"parts.d.ts","sourceRoot":"","sources":["../../../src/side-navigation/parts.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAuE,MAAM,OAAO,CAAC;AAgB5F,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAOnD,UAAU,sBAAsB;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,CAAC,IAAI,EAAE,mBAAmB,CAAC,OAAO,GAAG,mBAAmB,CAAC,mBAAmB,EAAE,QAAQ,EAAE,OAAO,KAAK,IAAI,CAAC;IACrH,UAAU,EAAE,CACV,IAAI,EACA,mBAAmB,CAAC,IAAI,GACxB,mBAAmB,CAAC,MAAM,GAC1B,mBAAmB,CAAC,SAAS,GAC7B,mBAAmB,CAAC,mBAAmB,EAC3C,KAAK,EAAE,KAAK,CAAC,cAAc,GAAG,KAAK,KAChC,IAAI,CAAC;IACV,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;CACtD;AAED,UAAU,WAAY,SAAQ,sBAAsB;IAClD,UAAU,EAAE,mBAAmB,CAAC,MAAM,CAAC;CACxC;AAED,wBAAgB,MAAM,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,WAAW,eA2DpF;AAED,UAAU,wBAAyB,SAAQ,sBAAsB;IAC/D,KAAK,EAAE,aAAa,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAC/C,OAAO,EAAE,SAAS,GAAG,eAAe,GAAG,YAAY,GAAG,uBAAuB,GAAG,MAAM,CAAC;CACxF;AAQD,wBAAgB,mBAAmB,CAAC,EAClC,KAAK,EACL,OAAO,EACP,UAAU,EACV,UAAU,EACV,UAAU,EACV,QAAa,EACb,SAAS,EACT,aAAa,EACb,gBAAgB,GACjB,EAAE,wBAAwB,eA0R1B"}
@@ -32,18 +32,18 @@ export function Header({ definition, activeHref, fireFollow, collapsed }) {
32
32
  },
33
33
  };
34
34
  return (React.createElement(React.Fragment, null,
35
- React.createElement("h2", { className: clsx(styles.header, collapsed && styles['header--collapsed']) },
36
- React.createElement("a", { href: definition.href, className: clsx(styles['header-link'], { [styles['header-link--has-logo']]: !!definition.logo }), "aria-current": definition.href === activeHref ? 'page' : undefined, "aria-label": collapsed ? definition.text : undefined, onClick: onClick, ...getAnalyticsMetadataAttribute(clickActionAnalyticsMetadata) },
35
+ !collapsed && (React.createElement("h2", { className: styles.header },
36
+ React.createElement("a", { href: definition.href, className: clsx(styles['header-link'], { [styles['header-link--has-logo']]: !!definition.logo }), "aria-current": definition.href === activeHref ? 'page' : undefined, onClick: onClick, ...getAnalyticsMetadataAttribute(clickActionAnalyticsMetadata) },
37
37
  definition.logo &&
38
38
  (definition.logo.svg ? (React.createElement("span", { className: clsx(styles['header-logo'], {
39
- [styles['header-logo--stretched']]: !definition.text || collapsed,
39
+ [styles['header-logo--stretched']]: !definition.text,
40
40
  }) }, definition.logo.svg)) : (React.createElement("img", { className: clsx(styles['header-logo'], {
41
- [styles['header-logo--stretched']]: !definition.text || collapsed,
41
+ [styles['header-logo--stretched']]: !definition.text,
42
42
  }), src: definition.logo.src, alt: definition.logo.alt }))),
43
- !collapsed && (React.createElement("span", { className: clsx(styles['header-link-text'], analyticsSelectors['header-link-text']) }, definition.text)))),
44
- React.createElement(Divider, { isPresentational: true, variant: "header" })));
43
+ React.createElement("span", { className: clsx(styles['header-link-text'], analyticsSelectors['header-link-text']) }, definition.text)))),
44
+ !collapsed && React.createElement(Divider, { isPresentational: true, variant: "header" })));
45
45
  }
46
- export function NavigationItemsList({ items, variant, activeHref, fireChange, fireFollow, position = '', collapsed, }) {
46
+ export function NavigationItemsList({ items, variant, activeHref, fireChange, fireFollow, position = '', collapsed, activeTooltip, setActiveTooltip, }) {
47
47
  const lists = [];
48
48
  let currentListIndex = 0;
49
49
  lists[currentListIndex] = {
@@ -83,7 +83,7 @@ export function NavigationItemsList({ items, variant, activeHref, fireChange, fi
83
83
  const groupElements = iconChildren.map((child, childIndex) => {
84
84
  const childPosition = `${position ? `${position},` : ''}${itemid},${childIndex + 1}`;
85
85
  return (React.createElement("li", { key: childPosition, className: clsx(styles['list-item'], styles['list-item--collapsed']) },
86
- React.createElement(Link, { definition: child, activeHref: activeHref, fireFollow: fireFollow, fireChange: fireChange, position: childPosition, collapsed: collapsed })));
86
+ React.createElement(Link, { definition: child, activeHref: activeHref, fireFollow: fireFollow, fireChange: fireChange, position: childPosition, collapsed: collapsed, activeTooltip: activeTooltip, setActiveTooltip: setActiveTooltip })));
87
87
  });
88
88
  const prevItem = index > 0 ? items[index - 1] : null;
89
89
  const nextItem = index < items.length - 1 ? items[index + 1] : null;
@@ -120,35 +120,35 @@ export function NavigationItemsList({ items, variant, activeHref, fireChange, fi
120
120
  case 'link': {
121
121
  (_a = lists[currentListIndex].items) === null || _a === void 0 ? void 0 : _a.push({
122
122
  element: (React.createElement("li", { key: index, "data-itemid": `item-${itemid}`, className: clsx(styles['list-item'], collapsed && styles['list-item--collapsed']) },
123
- React.createElement(Link, { definition: item, activeHref: activeHref, fireChange: fireChange, fireFollow: fireFollow, position: itemPosition, collapsed: collapsed }))),
123
+ React.createElement(Link, { definition: item, activeHref: activeHref, fireChange: fireChange, fireFollow: fireFollow, position: itemPosition, collapsed: collapsed, activeTooltip: activeTooltip, setActiveTooltip: setActiveTooltip }))),
124
124
  });
125
125
  return;
126
126
  }
127
127
  case 'section': {
128
128
  (_b = lists[currentListIndex].items) === null || _b === void 0 ? void 0 : _b.push({
129
129
  element: (React.createElement("li", { key: index, "data-itemid": `item-${itemid}`, className: clsx(styles['list-item'], collapsed && styles['list-item--collapsed']) },
130
- React.createElement(Section, { definition: item, activeHref: activeHref, variant: variant, fireChange: fireChange, fireFollow: fireFollow, position: itemPosition, collapsed: collapsed }))),
130
+ React.createElement(Section, { definition: item, activeHref: activeHref, variant: variant, fireChange: fireChange, fireFollow: fireFollow, position: itemPosition, collapsed: collapsed, activeTooltip: activeTooltip, setActiveTooltip: setActiveTooltip }))),
131
131
  });
132
132
  return;
133
133
  }
134
134
  case 'section-group': {
135
135
  (_c = lists[currentListIndex].items) === null || _c === void 0 ? void 0 : _c.push({
136
136
  element: (React.createElement("li", { key: index, "data-itemid": `item-${itemid}`, className: clsx(styles['list-item'], collapsed && styles['list-item--collapsed']) },
137
- React.createElement(SectionGroup, { definition: item, activeHref: activeHref, fireChange: fireChange, fireFollow: fireFollow, position: itemPosition, collapsed: collapsed }))),
137
+ React.createElement(SectionGroup, { definition: item, activeHref: activeHref, fireChange: fireChange, fireFollow: fireFollow, position: itemPosition, collapsed: collapsed, activeTooltip: activeTooltip, setActiveTooltip: setActiveTooltip }))),
138
138
  });
139
139
  return;
140
140
  }
141
141
  case 'link-group': {
142
142
  (_d = lists[currentListIndex].items) === null || _d === void 0 ? void 0 : _d.push({
143
143
  element: (React.createElement("li", { key: index, "data-itemid": `item-${itemid}`, className: clsx(styles['list-item'], collapsed && styles['list-item--collapsed']) },
144
- React.createElement(LinkGroup, { definition: item, activeHref: activeHref, fireChange: fireChange, fireFollow: fireFollow, position: itemPosition, collapsed: collapsed }))),
144
+ React.createElement(LinkGroup, { definition: item, activeHref: activeHref, fireChange: fireChange, fireFollow: fireFollow, position: itemPosition, collapsed: collapsed, activeTooltip: activeTooltip, setActiveTooltip: setActiveTooltip }))),
145
145
  });
146
146
  return;
147
147
  }
148
148
  case 'expandable-link-group': {
149
149
  (_e = lists[currentListIndex].items) === null || _e === void 0 ? void 0 : _e.push({
150
150
  element: (React.createElement("li", { key: index, "data-itemid": `item-${itemid}`, className: clsx(styles['list-item'], collapsed && styles['list-item--collapsed']) },
151
- React.createElement(ExpandableLinkGroup, { definition: item, activeHref: activeHref, fireChange: fireChange, fireFollow: fireFollow, variant: variant, position: itemPosition, collapsed: collapsed }))),
151
+ React.createElement(ExpandableLinkGroup, { definition: item, activeHref: activeHref, fireChange: fireChange, fireFollow: fireFollow, variant: variant, position: itemPosition, collapsed: collapsed, activeTooltip: activeTooltip, setActiveTooltip: setActiveTooltip }))),
152
152
  });
153
153
  return;
154
154
  }
@@ -199,23 +199,35 @@ const ItemIcon = React.forwardRef(function ItemIcon({ icon, collapsed, className
199
199
  // Used in the collapsed state, where the visible labels are hidden, to give
200
200
  // pointer and keyboard users a way to identify each item without relying on
201
201
  // their browser's native title popup.
202
- function useCollapsedTooltip(label) {
203
- const [show, setShow] = useState(false);
202
+ function useCollapsedTooltip({ label, position, activeTooltip, setActiveTooltip, }) {
204
203
  const triggerRef = useRef(null);
204
+ const id = position !== null && position !== void 0 ? position : '';
205
+ const show = activeTooltip === id;
206
+ const claim = () => setActiveTooltip === null || setActiveTooltip === void 0 ? void 0 : setActiveTooltip(id);
207
+ const release = () => {
208
+ if (activeTooltip === id) {
209
+ setActiveTooltip === null || setActiveTooltip === void 0 ? void 0 : setActiveTooltip(null);
210
+ }
211
+ };
205
212
  const triggerProps = {
206
- onFocus: () => setShow(true),
207
- onBlur: () => setShow(false),
208
- onMouseEnter: () => setShow(true),
209
- onMouseLeave: () => setShow(false),
213
+ onFocus: claim,
214
+ onBlur: release,
215
+ onMouseEnter: claim,
216
+ onMouseLeave: release,
210
217
  };
211
- const tooltip = show ? (React.createElement(Tooltip, { getTrack: () => triggerRef.current, content: label, position: "right", onEscape: () => setShow(false) })) : null;
218
+ const tooltip = show ? (React.createElement(Tooltip, { getTrack: () => triggerRef.current, content: label, position: "right", onEscape: release })) : null;
212
219
  return { triggerRef, triggerProps, tooltip };
213
220
  }
214
- function Link({ definition, activeHref, fireFollow, position, collapsed }) {
221
+ function Link({ definition, activeHref, fireFollow, position, collapsed, activeTooltip, setActiveTooltip }) {
215
222
  checkSafeUrl('SideNavigation', definition.href);
216
223
  const isActive = definition.href === activeHref;
217
224
  const i18n = useInternalI18n('link');
218
- const collapsedTooltip = useCollapsedTooltip(definition.text);
225
+ const collapsedTooltip = useCollapsedTooltip({
226
+ label: definition.text,
227
+ position,
228
+ activeTooltip,
229
+ setActiveTooltip,
230
+ });
219
231
  const onClick = useCallback((event) => {
220
232
  if (isPlainLeftClick(event)) {
221
233
  fireFollow(definition, event);
@@ -274,7 +286,7 @@ function SectionGroup({ definition, activeHref, fireFollow, fireChange, position
274
286
  React.createElement(InternalBox, { className: styles['section-group-title'], variant: "h3", fontSize: isOneTheme ? 'heading-s' : undefined }, definition.title),
275
287
  React.createElement(NavigationItemsList, { variant: "section-group", items: definition.items, fireFollow: fireFollow, fireChange: fireChange, activeHref: activeHref, position: position })));
276
288
  }
277
- function LinkGroup({ definition, activeHref, fireFollow, fireChange, position, collapsed }) {
289
+ function LinkGroup({ definition, activeHref, fireFollow, fireChange, position, collapsed, activeTooltip, setActiveTooltip, }) {
278
290
  checkSafeUrl('SideNavigation', definition.href);
279
291
  return (React.createElement(React.Fragment, null,
280
292
  React.createElement(Link, { definition: {
@@ -283,10 +295,10 @@ function LinkGroup({ definition, activeHref, fireFollow, fireChange, position, c
283
295
  text: definition.text,
284
296
  info: definition.info,
285
297
  icon: definition.icon,
286
- }, fireFollow: (_, event) => fireFollow(definition, event), fireChange: fireChange, activeHref: activeHref, position: position, collapsed: collapsed }),
298
+ }, fireFollow: (_, event) => fireFollow(definition, event), fireChange: fireChange, activeHref: activeHref, position: position, collapsed: collapsed, activeTooltip: activeTooltip, setActiveTooltip: setActiveTooltip }),
287
299
  !collapsed && (React.createElement(NavigationItemsList, { variant: "link-group", items: definition.items, fireFollow: fireFollow, fireChange: fireChange, activeHref: activeHref, position: position }))));
288
300
  }
289
- function ExpandableLinkGroup({ definition, fireFollow, fireChange, activeHref, variant, position, collapsed, }) {
301
+ function ExpandableLinkGroup({ definition, fireFollow, fireChange, activeHref, variant, position, collapsed, activeTooltip, setActiveTooltip, }) {
290
302
  // Check whether the definition contains an active link and memoize it to avoid
291
303
  // rechecking every time.
292
304
  const containsActiveLink = useMemo(() => {
@@ -321,7 +333,7 @@ function ExpandableLinkGroup({ definition, fireFollow, fireChange, activeHref, v
321
333
  }
322
334
  };
323
335
  if (collapsed) {
324
- return (React.createElement(Link, { definition: { type: 'link', href: definition.href, text: definition.text, icon: definition.icon }, fireFollow: onHeaderFollow, fireChange: fireChange, activeHref: activeHref, position: position, collapsed: collapsed }));
336
+ return (React.createElement(Link, { definition: { type: 'link', href: definition.href, text: definition.text, icon: definition.icon }, fireFollow: onHeaderFollow, fireChange: fireChange, activeHref: activeHref, position: position, collapsed: collapsed, activeTooltip: activeTooltip, setActiveTooltip: setActiveTooltip }));
325
337
  }
326
338
  return (React.createElement(InternalExpandableSection, { className: clsx(styles['expandable-link-group'], variant === 'section-group' && styles['expandable-link-group--no-ident'], definition.href === activeHref && styles['expandable-link-group--active']), variant: "navigation", expanded: userExpanded !== null && userExpanded !== void 0 ? userExpanded : expanded, onChange: onExpandedChange, headerText: React.createElement(Link, { definition: { type: 'link', href: definition.href, text: definition.text, icon: definition.icon }, fireFollow: onHeaderFollow, fireChange: fireChange, activeHref: activeHref, position: position }) },
327
339
  React.createElement(NavigationItemsList, { variant: "expandable-link-group", items: definition.items, fireFollow: fireFollow, fireChange: fireChange, activeHref: activeHref, position: position })));