@getflip/swirl-components 0.219.0 → 0.220.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (412) hide show
  1. package/components.json +215 -5
  2. package/dist/cjs/file-manager.cjs.entry.js +1 -1
  3. package/dist/cjs/index-6aba64ed.js +4 -4
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/cjs/swirl-app-icon.cjs.entry.js +1 -1
  6. package/dist/cjs/swirl-components.cjs.js +1 -1
  7. package/dist/cjs/swirl-shell-layout.cjs.entry.js +74 -3
  8. package/dist/cjs/swirl-shell-navigation-item.cjs.entry.js +7 -4
  9. package/dist/cjs/swirl-symbol-account-circle.cjs.entry.js +1 -1
  10. package/dist/cjs/swirl-symbol-alternate-email.cjs.entry.js +1 -1
  11. package/dist/cjs/swirl-symbol-android.cjs.entry.js +1 -1
  12. package/dist/cjs/swirl-symbol-announcement.cjs.entry.js +1 -1
  13. package/dist/cjs/swirl-symbol-backup.cjs.entry.js +1 -1
  14. package/dist/cjs/swirl-symbol-beach-access.cjs.entry.js +1 -1
  15. package/dist/cjs/swirl-symbol-bookmark.cjs.entry.js +1 -1
  16. package/dist/cjs/swirl-symbol-cloud.cjs.entry.js +1 -1
  17. package/dist/cjs/swirl-symbol-coronavirus.cjs.entry.js +1 -1
  18. package/dist/cjs/swirl-symbol-desktop-windows.cjs.entry.js +1 -1
  19. package/dist/cjs/swirl-symbol-directions-car-filled.cjs.entry.js +1 -1
  20. package/dist/cjs/swirl-symbol-edit-calendar.cjs.entry.js +1 -1
  21. package/dist/cjs/swirl-symbol-email.cjs.entry.js +1 -1
  22. package/dist/cjs/swirl-symbol-emoji-food-beverage.cjs.entry.js +1 -1
  23. package/dist/cjs/swirl-symbol-event-menu.cjs.entry.js +1 -1
  24. package/dist/cjs/swirl-symbol-facebook.cjs.entry.js +1 -1
  25. package/dist/cjs/swirl-symbol-favorite.cjs.entry.js +1 -1
  26. package/dist/cjs/swirl-symbol-fitness-center.cjs.entry.js +1 -1
  27. package/dist/cjs/swirl-symbol-flag.cjs.entry.js +1 -1
  28. package/dist/cjs/swirl-symbol-folder.cjs.entry.js +1 -1
  29. package/dist/cjs/swirl-symbol-globe.cjs.entry.js +1 -1
  30. package/dist/cjs/swirl-symbol-groups.cjs.entry.js +1 -1
  31. package/dist/cjs/swirl-symbol-help.cjs.entry.js +1 -1
  32. package/dist/cjs/swirl-symbol-image.cjs.entry.js +1 -1
  33. package/dist/cjs/swirl-symbol-info-menu.cjs.entry.js +1 -1
  34. package/dist/cjs/swirl-symbol-instagram.cjs.entry.js +1 -1
  35. package/dist/cjs/swirl-symbol-ios.cjs.entry.js +1 -1
  36. package/dist/cjs/swirl-symbol-language.cjs.entry.js +1 -1
  37. package/dist/cjs/swirl-symbol-leaderboard.cjs.entry.js +1 -1
  38. package/dist/cjs/swirl-symbol-lightbulb.cjs.entry.js +1 -1
  39. package/dist/cjs/swirl-symbol-linkedin.cjs.entry.js +1 -1
  40. package/dist/cjs/swirl-symbol-location-on.cjs.entry.js +1 -1
  41. package/dist/cjs/swirl-symbol-loyalty.cjs.entry.js +1 -1
  42. package/dist/cjs/swirl-symbol-maps-home-work.cjs.entry.js +1 -1
  43. package/dist/cjs/swirl-symbol-notifications.cjs.entry.js +1 -1
  44. package/dist/cjs/swirl-symbol-open-in-new.cjs.entry.js +1 -1
  45. package/dist/cjs/swirl-symbol-pedal-bike.cjs.entry.js +1 -1
  46. package/dist/cjs/swirl-symbol-pinterest.cjs.entry.js +1 -1
  47. package/dist/cjs/swirl-symbol-policy.cjs.entry.js +1 -1
  48. package/dist/cjs/swirl-symbol-push-pin.cjs.entry.js +1 -1
  49. package/dist/cjs/swirl-symbol-redeem.cjs.entry.js +1 -1
  50. package/dist/cjs/swirl-symbol-report-problem.cjs.entry.js +1 -1
  51. package/dist/cjs/swirl-symbol-restaurant.cjs.entry.js +1 -1
  52. package/dist/cjs/swirl-symbol-roadmap.cjs.entry.js +1 -1
  53. package/dist/cjs/swirl-symbol-room.cjs.entry.js +1 -1
  54. package/dist/cjs/swirl-symbol-savings.cjs.entry.js +1 -1
  55. package/dist/cjs/swirl-symbol-settings-voice.cjs.entry.js +1 -1
  56. package/dist/cjs/swirl-symbol-shopping-cart.cjs.entry.js +1 -1
  57. package/dist/cjs/swirl-symbol-smartphone.cjs.entry.js +1 -1
  58. package/dist/cjs/swirl-symbol-star.cjs.entry.js +1 -1
  59. package/dist/cjs/swirl-symbol-supervisor-account.cjs.entry.js +1 -1
  60. package/dist/cjs/swirl-symbol-thumbs-up-down.cjs.entry.js +1 -1
  61. package/dist/cjs/swirl-symbol-twitter.cjs.entry.js +1 -1
  62. package/dist/cjs/swirl-symbol-wb-sunny.cjs.entry.js +1 -1
  63. package/dist/cjs/swirl-symbol-wechat.cjs.entry.js +1 -1
  64. package/dist/cjs/swirl-symbol-weibo.cjs.entry.js +1 -1
  65. package/dist/cjs/swirl-symbol-work.cjs.entry.js +1 -1
  66. package/dist/cjs/swirl-symbol-xing.cjs.entry.js +1 -1
  67. package/dist/cjs/swirl-symbol-youtube.cjs.entry.js +1 -1
  68. package/dist/cjs/swirl-symbol.cjs.entry.js +1 -1
  69. package/dist/cjs/swirl-table-cell.cjs.entry.js +1 -1
  70. package/dist/cjs/swirl-table-row-group.cjs.entry.js +2 -2
  71. package/dist/cjs/swirl-table-row.cjs.entry.js +1 -1
  72. package/dist/cjs/swirl-table.cjs.entry.js +1 -1
  73. package/dist/cjs/swirl-tabs.cjs.entry.js +1 -1
  74. package/dist/cjs/swirl-theme-provider.cjs.entry.js +1 -1
  75. package/dist/cjs/swirl-time-input.cjs.entry.js +1 -1
  76. package/dist/cjs/swirl-tooltip.cjs.entry.js +5 -3
  77. package/dist/cjs/swirl-tree-navigation-item.cjs.entry.js +1 -1
  78. package/dist/cjs/swirl-video-thumbnail.cjs.entry.js +1 -1
  79. package/dist/cjs/swirl-visually-hidden.cjs.entry.js +1 -1
  80. package/dist/collection/assets/pdfjs/pdf.worker.min.js +1 -1
  81. package/dist/collection/components/swirl-app-icon/swirl-app-icon.css +2 -0
  82. package/dist/collection/components/swirl-shell-layout/swirl-shell-layout.css +49 -21
  83. package/dist/collection/components/swirl-shell-layout/swirl-shell-layout.js +166 -3
  84. package/dist/collection/components/swirl-shell-layout/swirl-shell-layout.spec.js +1 -1
  85. package/dist/collection/components/swirl-shell-layout/swirl-shell-layout.stories.js +22 -16
  86. package/dist/collection/components/swirl-shell-navigation-item/swirl-shell-navigation-item.css +59 -8
  87. package/dist/collection/components/swirl-shell-navigation-item/swirl-shell-navigation-item.js +42 -5
  88. package/dist/collection/components/swirl-shell-navigation-item/swirl-shell-navigation-item.spec.js +13 -9
  89. package/dist/collection/components/swirl-shell-navigation-item/swirl-shell-navigation-item.stories.js +1 -1
  90. package/dist/collection/components/swirl-symbol/swirl-symbol.js +1 -1
  91. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-account-circle.js +1 -1
  92. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-alternate-email.js +1 -1
  93. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-android.js +1 -1
  94. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-announcement.js +1 -1
  95. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-backup.js +1 -1
  96. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-beach-access.js +1 -1
  97. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-bookmark.js +1 -1
  98. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-cloud.js +1 -1
  99. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-coronavirus.js +1 -1
  100. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-desktop-windows.js +1 -1
  101. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-directions-car-filled.js +1 -1
  102. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-edit-calendar.js +1 -1
  103. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-email.js +1 -1
  104. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-emoji-food-beverage.js +1 -1
  105. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-event-menu.js +1 -1
  106. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-facebook.js +1 -1
  107. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-favorite.js +1 -1
  108. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-fitness-center.js +1 -1
  109. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-flag.js +1 -1
  110. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-folder.js +1 -1
  111. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-globe.js +1 -1
  112. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-groups.js +1 -1
  113. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-help.js +1 -1
  114. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-image.js +1 -1
  115. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-info-menu.js +1 -1
  116. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-instagram.js +1 -1
  117. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-ios.js +1 -1
  118. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-language.js +1 -1
  119. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-leaderboard.js +1 -1
  120. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-lightbulb.js +1 -1
  121. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-linkedin.js +1 -1
  122. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-location-on.js +1 -1
  123. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-loyalty.js +1 -1
  124. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-maps-home-work.js +1 -1
  125. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-notifications.js +1 -1
  126. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-open-in-new.js +1 -1
  127. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-pedal-bike.js +1 -1
  128. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-pinterest.js +1 -1
  129. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-policy.js +1 -1
  130. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-push-pin.js +1 -1
  131. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-redeem.js +1 -1
  132. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-report-problem.js +1 -1
  133. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-restaurant.js +1 -1
  134. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-roadmap.js +1 -1
  135. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-room.js +1 -1
  136. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-savings.js +1 -1
  137. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-settings-voice.js +1 -1
  138. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-shopping-cart.js +1 -1
  139. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-smartphone.js +1 -1
  140. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-star.js +1 -1
  141. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-supervisor-account.js +1 -1
  142. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-thumbs-up-down.js +1 -1
  143. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-twitter.js +1 -1
  144. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-wb-sunny.js +1 -1
  145. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-wechat.js +1 -1
  146. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-weibo.js +1 -1
  147. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-work.js +1 -1
  148. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-xing.js +1 -1
  149. package/dist/collection/components/swirl-symbol/symbols/swirl-symbol-youtube.js +1 -1
  150. package/dist/collection/components/swirl-table/swirl-table.js +1 -1
  151. package/dist/collection/components/swirl-table-cell/swirl-table-cell.js +1 -1
  152. package/dist/collection/components/swirl-table-row/swirl-table-row.js +1 -1
  153. package/dist/collection/components/swirl-table-row-group/swirl-table-row-group.js +2 -2
  154. package/dist/collection/components/swirl-tabs/swirl-tabs.js +1 -1
  155. package/dist/collection/components/swirl-theme-provider/swirl-theme-provider.js +1 -1
  156. package/dist/collection/components/swirl-time-input/swirl-time-input.js +1 -1
  157. package/dist/collection/components/swirl-tooltip/swirl-tooltip.css +5 -0
  158. package/dist/collection/components/swirl-tooltip/swirl-tooltip.js +22 -2
  159. package/dist/collection/components/swirl-tooltip/swirl-tooltip.spec.js +2 -2
  160. package/dist/collection/components/swirl-tree-navigation-item/swirl-tree-navigation-item.js +1 -1
  161. package/dist/collection/components/swirl-video-thumbnail/swirl-video-thumbnail.js +1 -1
  162. package/dist/collection/components/swirl-visually-hidden/swirl-visually-hidden.js +1 -1
  163. package/dist/collection/prototypes/file-manager/file-manager.js +1 -1
  164. package/dist/components/assets/pdfjs/pdf.worker.min.js +1 -1
  165. package/dist/components/file-manager.js +1 -1
  166. package/dist/components/swirl-app-icon.js +1 -1
  167. package/dist/components/swirl-shell-layout.js +117 -15
  168. package/dist/components/swirl-shell-navigation-item.js +18 -7
  169. package/dist/components/swirl-symbol-account-circle.js +1 -1
  170. package/dist/components/swirl-symbol-alternate-email.js +1 -1
  171. package/dist/components/swirl-symbol-android.js +1 -1
  172. package/dist/components/swirl-symbol-announcement.js +1 -1
  173. package/dist/components/swirl-symbol-backup.js +1 -1
  174. package/dist/components/swirl-symbol-beach-access.js +1 -1
  175. package/dist/components/swirl-symbol-bookmark.js +1 -1
  176. package/dist/components/swirl-symbol-cloud.js +1 -1
  177. package/dist/components/swirl-symbol-coronavirus.js +1 -1
  178. package/dist/components/swirl-symbol-desktop-windows.js +1 -1
  179. package/dist/components/swirl-symbol-directions-car-filled.js +1 -1
  180. package/dist/components/swirl-symbol-edit-calendar.js +1 -1
  181. package/dist/components/swirl-symbol-email.js +1 -1
  182. package/dist/components/swirl-symbol-emoji-food-beverage.js +1 -1
  183. package/dist/components/swirl-symbol-event-menu.js +1 -1
  184. package/dist/components/swirl-symbol-facebook.js +1 -1
  185. package/dist/components/swirl-symbol-favorite.js +1 -1
  186. package/dist/components/swirl-symbol-fitness-center.js +1 -1
  187. package/dist/components/swirl-symbol-flag.js +1 -1
  188. package/dist/components/swirl-symbol-folder.js +1 -1
  189. package/dist/components/swirl-symbol-globe.js +1 -1
  190. package/dist/components/swirl-symbol-groups.js +1 -1
  191. package/dist/components/swirl-symbol-help.js +1 -1
  192. package/dist/components/swirl-symbol-image.js +1 -1
  193. package/dist/components/swirl-symbol-info-menu.js +1 -1
  194. package/dist/components/swirl-symbol-instagram.js +1 -1
  195. package/dist/components/swirl-symbol-ios.js +1 -1
  196. package/dist/components/swirl-symbol-language.js +1 -1
  197. package/dist/components/swirl-symbol-leaderboard.js +1 -1
  198. package/dist/components/swirl-symbol-lightbulb.js +1 -1
  199. package/dist/components/swirl-symbol-linkedin.js +1 -1
  200. package/dist/components/swirl-symbol-location-on.js +1 -1
  201. package/dist/components/swirl-symbol-loyalty.js +1 -1
  202. package/dist/components/swirl-symbol-maps-home-work.js +1 -1
  203. package/dist/components/swirl-symbol-notifications.js +1 -1
  204. package/dist/components/swirl-symbol-open-in-new.js +1 -1
  205. package/dist/components/swirl-symbol-pedal-bike.js +1 -1
  206. package/dist/components/swirl-symbol-pinterest.js +1 -1
  207. package/dist/components/swirl-symbol-policy.js +1 -1
  208. package/dist/components/swirl-symbol-push-pin.js +1 -1
  209. package/dist/components/swirl-symbol-redeem.js +1 -1
  210. package/dist/components/swirl-symbol-report-problem.js +1 -1
  211. package/dist/components/swirl-symbol-restaurant.js +1 -1
  212. package/dist/components/swirl-symbol-roadmap.js +1 -1
  213. package/dist/components/swirl-symbol-room.js +1 -1
  214. package/dist/components/swirl-symbol-savings.js +1 -1
  215. package/dist/components/swirl-symbol-settings-voice.js +1 -1
  216. package/dist/components/swirl-symbol-shopping-cart.js +1 -1
  217. package/dist/components/swirl-symbol-smartphone.js +1 -1
  218. package/dist/components/swirl-symbol-star.js +1 -1
  219. package/dist/components/swirl-symbol-supervisor-account.js +1 -1
  220. package/dist/components/swirl-symbol-thumbs-up-down.js +1 -1
  221. package/dist/components/swirl-symbol-twitter.js +1 -1
  222. package/dist/components/swirl-symbol-wb-sunny.js +1 -1
  223. package/dist/components/swirl-symbol-wechat.js +1 -1
  224. package/dist/components/swirl-symbol-weibo.js +1 -1
  225. package/dist/components/swirl-symbol-work.js +1 -1
  226. package/dist/components/swirl-symbol-xing.js +1 -1
  227. package/dist/components/swirl-symbol-youtube.js +1 -1
  228. package/dist/components/swirl-symbol.js +1 -1
  229. package/dist/components/swirl-table-cell.js +1 -1
  230. package/dist/components/swirl-table-row-group.js +2 -2
  231. package/dist/components/swirl-table-row.js +1 -1
  232. package/dist/components/swirl-table.js +1 -1
  233. package/dist/components/swirl-tabs.js +1 -1
  234. package/dist/components/swirl-theme-provider.js +1 -1
  235. package/dist/components/swirl-time-input.js +1 -1
  236. package/dist/components/swirl-tooltip2.js +6 -3
  237. package/dist/components/swirl-tree-navigation-item.js +1 -1
  238. package/dist/components/swirl-video-thumbnail.js +1 -1
  239. package/dist/components/swirl-visually-hidden2.js +1 -1
  240. package/dist/esm/file-manager.entry.js +1 -1
  241. package/dist/esm/index-2d054a87.js +4 -4
  242. package/dist/esm/loader.js +1 -1
  243. package/dist/esm/swirl-app-icon.entry.js +1 -1
  244. package/dist/esm/swirl-components.js +1 -1
  245. package/dist/esm/swirl-shell-layout.entry.js +75 -4
  246. package/dist/esm/swirl-shell-navigation-item.entry.js +7 -4
  247. package/dist/esm/swirl-symbol-account-circle.entry.js +1 -1
  248. package/dist/esm/swirl-symbol-alternate-email.entry.js +1 -1
  249. package/dist/esm/swirl-symbol-android.entry.js +1 -1
  250. package/dist/esm/swirl-symbol-announcement.entry.js +1 -1
  251. package/dist/esm/swirl-symbol-backup.entry.js +1 -1
  252. package/dist/esm/swirl-symbol-beach-access.entry.js +1 -1
  253. package/dist/esm/swirl-symbol-bookmark.entry.js +1 -1
  254. package/dist/esm/swirl-symbol-cloud.entry.js +1 -1
  255. package/dist/esm/swirl-symbol-coronavirus.entry.js +1 -1
  256. package/dist/esm/swirl-symbol-desktop-windows.entry.js +1 -1
  257. package/dist/esm/swirl-symbol-directions-car-filled.entry.js +1 -1
  258. package/dist/esm/swirl-symbol-edit-calendar.entry.js +1 -1
  259. package/dist/esm/swirl-symbol-email.entry.js +1 -1
  260. package/dist/esm/swirl-symbol-emoji-food-beverage.entry.js +1 -1
  261. package/dist/esm/swirl-symbol-event-menu.entry.js +1 -1
  262. package/dist/esm/swirl-symbol-facebook.entry.js +1 -1
  263. package/dist/esm/swirl-symbol-favorite.entry.js +1 -1
  264. package/dist/esm/swirl-symbol-fitness-center.entry.js +1 -1
  265. package/dist/esm/swirl-symbol-flag.entry.js +1 -1
  266. package/dist/esm/swirl-symbol-folder.entry.js +1 -1
  267. package/dist/esm/swirl-symbol-globe.entry.js +1 -1
  268. package/dist/esm/swirl-symbol-groups.entry.js +1 -1
  269. package/dist/esm/swirl-symbol-help.entry.js +1 -1
  270. package/dist/esm/swirl-symbol-image.entry.js +1 -1
  271. package/dist/esm/swirl-symbol-info-menu.entry.js +1 -1
  272. package/dist/esm/swirl-symbol-instagram.entry.js +1 -1
  273. package/dist/esm/swirl-symbol-ios.entry.js +1 -1
  274. package/dist/esm/swirl-symbol-language.entry.js +1 -1
  275. package/dist/esm/swirl-symbol-leaderboard.entry.js +1 -1
  276. package/dist/esm/swirl-symbol-lightbulb.entry.js +1 -1
  277. package/dist/esm/swirl-symbol-linkedin.entry.js +1 -1
  278. package/dist/esm/swirl-symbol-location-on.entry.js +1 -1
  279. package/dist/esm/swirl-symbol-loyalty.entry.js +1 -1
  280. package/dist/esm/swirl-symbol-maps-home-work.entry.js +1 -1
  281. package/dist/esm/swirl-symbol-notifications.entry.js +1 -1
  282. package/dist/esm/swirl-symbol-open-in-new.entry.js +1 -1
  283. package/dist/esm/swirl-symbol-pedal-bike.entry.js +1 -1
  284. package/dist/esm/swirl-symbol-pinterest.entry.js +1 -1
  285. package/dist/esm/swirl-symbol-policy.entry.js +1 -1
  286. package/dist/esm/swirl-symbol-push-pin.entry.js +1 -1
  287. package/dist/esm/swirl-symbol-redeem.entry.js +1 -1
  288. package/dist/esm/swirl-symbol-report-problem.entry.js +1 -1
  289. package/dist/esm/swirl-symbol-restaurant.entry.js +1 -1
  290. package/dist/esm/swirl-symbol-roadmap.entry.js +1 -1
  291. package/dist/esm/swirl-symbol-room.entry.js +1 -1
  292. package/dist/esm/swirl-symbol-savings.entry.js +1 -1
  293. package/dist/esm/swirl-symbol-settings-voice.entry.js +1 -1
  294. package/dist/esm/swirl-symbol-shopping-cart.entry.js +1 -1
  295. package/dist/esm/swirl-symbol-smartphone.entry.js +1 -1
  296. package/dist/esm/swirl-symbol-star.entry.js +1 -1
  297. package/dist/esm/swirl-symbol-supervisor-account.entry.js +1 -1
  298. package/dist/esm/swirl-symbol-thumbs-up-down.entry.js +1 -1
  299. package/dist/esm/swirl-symbol-twitter.entry.js +1 -1
  300. package/dist/esm/swirl-symbol-wb-sunny.entry.js +1 -1
  301. package/dist/esm/swirl-symbol-wechat.entry.js +1 -1
  302. package/dist/esm/swirl-symbol-weibo.entry.js +1 -1
  303. package/dist/esm/swirl-symbol-work.entry.js +1 -1
  304. package/dist/esm/swirl-symbol-xing.entry.js +1 -1
  305. package/dist/esm/swirl-symbol-youtube.entry.js +1 -1
  306. package/dist/esm/swirl-symbol.entry.js +1 -1
  307. package/dist/esm/swirl-table-cell.entry.js +1 -1
  308. package/dist/esm/swirl-table-row-group.entry.js +2 -2
  309. package/dist/esm/swirl-table-row.entry.js +1 -1
  310. package/dist/esm/swirl-table.entry.js +1 -1
  311. package/dist/esm/swirl-tabs.entry.js +1 -1
  312. package/dist/esm/swirl-theme-provider.entry.js +1 -1
  313. package/dist/esm/swirl-time-input.entry.js +1 -1
  314. package/dist/esm/swirl-tooltip.entry.js +5 -3
  315. package/dist/esm/swirl-tree-navigation-item.entry.js +1 -1
  316. package/dist/esm/swirl-video-thumbnail.entry.js +1 -1
  317. package/dist/esm/swirl-visually-hidden.entry.js +1 -1
  318. package/dist/swirl-components/{p-79e2f29e.entry.js → p-0142f199.entry.js} +1 -1
  319. package/dist/swirl-components/{p-95510ee4.entry.js → p-01e4db07.entry.js} +1 -1
  320. package/dist/swirl-components/{p-0fae6a8e.entry.js → p-0390cc40.entry.js} +1 -1
  321. package/dist/swirl-components/{p-b411f25b.entry.js → p-05f79727.entry.js} +1 -1
  322. package/dist/swirl-components/{p-c7ee7078.entry.js → p-08d14c15.entry.js} +1 -1
  323. package/dist/swirl-components/{p-79fdfaea.entry.js → p-0cfdf19f.entry.js} +1 -1
  324. package/dist/swirl-components/{p-1b7c7483.entry.js → p-120f2a92.entry.js} +1 -1
  325. package/dist/swirl-components/p-121a7871.entry.js +1 -0
  326. package/dist/swirl-components/{p-99cec8d5.entry.js → p-17c40b2b.entry.js} +1 -1
  327. package/dist/swirl-components/{p-d6fbfcc0.entry.js → p-1b2df762.entry.js} +1 -1
  328. package/dist/swirl-components/{p-fb1f65f4.entry.js → p-267ada5c.entry.js} +1 -1
  329. package/dist/swirl-components/{p-8fde9b34.entry.js → p-293d4ced.entry.js} +1 -1
  330. package/dist/swirl-components/{p-a9c8ab8b.entry.js → p-2ae0f0af.entry.js} +1 -1
  331. package/dist/swirl-components/{p-1f9a96b7.entry.js → p-2b04c73a.entry.js} +1 -1
  332. package/dist/swirl-components/{p-d974bbd8.entry.js → p-2cc68b68.entry.js} +1 -1
  333. package/dist/swirl-components/{p-3b74ebb4.entry.js → p-322234fc.entry.js} +1 -1
  334. package/dist/swirl-components/{p-76eb20cb.entry.js → p-32c53ee7.entry.js} +1 -1
  335. package/dist/swirl-components/{p-04aa45d9.entry.js → p-3c032b20.entry.js} +1 -1
  336. package/dist/swirl-components/{p-4dd5d770.entry.js → p-4034fb94.entry.js} +1 -1
  337. package/dist/swirl-components/{p-78a988c1.entry.js → p-443af7a9.entry.js} +1 -1
  338. package/dist/swirl-components/{p-1f8d57a1.entry.js → p-4c77be59.entry.js} +1 -1
  339. package/dist/swirl-components/{p-fa507f81.entry.js → p-5252c5ee.entry.js} +1 -1
  340. package/dist/swirl-components/p-5408d04c.entry.js +1 -0
  341. package/dist/swirl-components/p-592044c4.entry.js +1 -0
  342. package/dist/swirl-components/{p-036070f8.entry.js → p-5cb7183b.entry.js} +1 -1
  343. package/dist/swirl-components/p-633b13fc.entry.js +1 -0
  344. package/dist/swirl-components/{p-ab40af46.entry.js → p-6517f970.entry.js} +1 -1
  345. package/dist/swirl-components/{p-56da2313.entry.js → p-65bf38b9.entry.js} +1 -1
  346. package/dist/swirl-components/{p-7792a13b.entry.js → p-6acba3db.entry.js} +1 -1
  347. package/dist/swirl-components/{p-e8b448e6.entry.js → p-70af5a39.entry.js} +1 -1
  348. package/dist/swirl-components/{p-6ffce345.entry.js → p-71259db0.entry.js} +1 -1
  349. package/dist/swirl-components/{p-fe9b5a12.entry.js → p-754a96f9.entry.js} +1 -1
  350. package/dist/swirl-components/{p-1ad4c9c5.entry.js → p-7662d585.entry.js} +1 -1
  351. package/dist/swirl-components/{p-019854f4.entry.js → p-7a81c0d3.entry.js} +1 -1
  352. package/dist/swirl-components/{p-c1335818.entry.js → p-7ed7f07e.entry.js} +1 -1
  353. package/dist/swirl-components/{p-64cc9e73.entry.js → p-82960755.entry.js} +1 -1
  354. package/dist/swirl-components/{p-29ab12da.entry.js → p-8b79bd86.entry.js} +1 -1
  355. package/dist/swirl-components/{p-633898e4.entry.js → p-8f5f6cb2.entry.js} +1 -1
  356. package/dist/swirl-components/{p-29d34426.entry.js → p-915b20f4.entry.js} +1 -1
  357. package/dist/swirl-components/{p-27d97097.entry.js → p-97727cea.entry.js} +1 -1
  358. package/dist/swirl-components/{p-d9cafaf7.entry.js → p-9ae9cffe.entry.js} +1 -1
  359. package/dist/swirl-components/{p-37cc247a.entry.js → p-9ead1077.entry.js} +1 -1
  360. package/dist/swirl-components/p-a1ff9a0c.entry.js +1 -0
  361. package/dist/swirl-components/{p-8349f7bf.entry.js → p-a3725df2.entry.js} +1 -1
  362. package/dist/swirl-components/p-a3757487.entry.js +1 -0
  363. package/dist/swirl-components/{p-955ad6a8.entry.js → p-a42a39a9.entry.js} +1 -1
  364. package/dist/swirl-components/{p-046ecfa7.entry.js → p-a6dc4cef.entry.js} +1 -1
  365. package/dist/swirl-components/{p-dd4e2a9b.entry.js → p-a80e1294.entry.js} +1 -1
  366. package/dist/swirl-components/{p-18e25a45.entry.js → p-abd6bebc.entry.js} +1 -1
  367. package/dist/swirl-components/{p-c3f0502d.entry.js → p-af2944de.entry.js} +1 -1
  368. package/dist/swirl-components/p-b44b722e.entry.js +1 -0
  369. package/dist/swirl-components/{p-383eb34b.entry.js → p-b9b0d6fd.entry.js} +1 -1
  370. package/dist/swirl-components/{p-19ff7c93.entry.js → p-bacb87fc.entry.js} +1 -1
  371. package/dist/swirl-components/{p-f4f1928b.entry.js → p-bf8f1fb1.entry.js} +1 -1
  372. package/dist/swirl-components/{p-0a7357c8.entry.js → p-c2018c3c.entry.js} +1 -1
  373. package/dist/swirl-components/{p-971e023f.entry.js → p-c719ebfb.entry.js} +1 -1
  374. package/dist/swirl-components/{p-1d40a37d.entry.js → p-ca7590f9.entry.js} +1 -1
  375. package/dist/swirl-components/p-cbc04aaa.entry.js +1 -0
  376. package/dist/swirl-components/p-cc01cabb.entry.js +1 -0
  377. package/dist/swirl-components/p-ce67255d.entry.js +1 -0
  378. package/dist/swirl-components/{p-dede7f70.entry.js → p-cf61e1bd.entry.js} +1 -1
  379. package/dist/swirl-components/{p-966ded64.entry.js → p-d051fc8f.entry.js} +1 -1
  380. package/dist/swirl-components/{p-7011b613.entry.js → p-d0f5d01d.entry.js} +1 -1
  381. package/dist/swirl-components/{p-3919d2c8.entry.js → p-d26d2442.entry.js} +1 -1
  382. package/dist/swirl-components/{p-8532cf35.entry.js → p-d35aaf8f.entry.js} +1 -1
  383. package/dist/swirl-components/p-d51ef5db.entry.js +1 -0
  384. package/dist/swirl-components/p-d8815b75.entry.js +1 -0
  385. package/dist/swirl-components/p-d9d1a534.entry.js +1 -0
  386. package/dist/swirl-components/{p-97bc5c71.entry.js → p-e41f6920.entry.js} +1 -1
  387. package/dist/swirl-components/{p-6fbcd9ba.entry.js → p-eaa5b42f.entry.js} +1 -1
  388. package/dist/swirl-components/{p-49145b28.entry.js → p-ec4196cf.entry.js} +1 -1
  389. package/dist/swirl-components/{p-76777de1.entry.js → p-f3cb753f.entry.js} +1 -1
  390. package/dist/swirl-components/{p-e6973f9e.entry.js → p-fa19c235.entry.js} +1 -1
  391. package/dist/swirl-components/{p-85891e4a.entry.js → p-fc8b76fd.entry.js} +1 -1
  392. package/dist/swirl-components/{p-f8a4eb22.entry.js → p-ff55c4de.entry.js} +1 -1
  393. package/dist/swirl-components/swirl-components.esm.js +1 -1
  394. package/dist/types/components/swirl-shell-layout/swirl-shell-layout.d.ts +16 -0
  395. package/dist/types/components/swirl-shell-navigation-item/swirl-shell-navigation-item.d.ts +3 -1
  396. package/dist/types/components/swirl-tooltip/swirl-tooltip.d.ts +1 -0
  397. package/dist/types/components.d.ts +16 -0
  398. package/package.json +1 -1
  399. package/vscode-data.json +32 -0
  400. package/dist/swirl-components/p-0c38b13e.entry.js +0 -1
  401. package/dist/swirl-components/p-1dd447f5.entry.js +0 -1
  402. package/dist/swirl-components/p-26ca4370.entry.js +0 -1
  403. package/dist/swirl-components/p-293c452f.entry.js +0 -1
  404. package/dist/swirl-components/p-2d322d46.entry.js +0 -1
  405. package/dist/swirl-components/p-3792f649.entry.js +0 -1
  406. package/dist/swirl-components/p-48041804.entry.js +0 -1
  407. package/dist/swirl-components/p-6f423a50.entry.js +0 -1
  408. package/dist/swirl-components/p-7bd160d2.entry.js +0 -1
  409. package/dist/swirl-components/p-8c9f4b5d.entry.js +0 -1
  410. package/dist/swirl-components/p-cea6c241.entry.js +0 -1
  411. package/dist/swirl-components/p-d733e24a.entry.js +0 -1
  412. package/dist/swirl-components/p-e6b70044.entry.js +0 -1
@@ -17,6 +17,8 @@
17
17
  .app-icon > img {
18
18
  width: 100%;
19
19
  height: 100%;
20
+ -o-object-fit: cover;
21
+ object-fit: cover;
20
22
  }
21
23
 
22
24
  .app-icon__icon {
@@ -5,7 +5,7 @@
5
5
  --swirl-shell-header-height: 3.25rem;
6
6
 
7
7
  --swirl-shell-collapsed-nav-width: 4rem;
8
- --swirl-shell-extended-nav-width: 14rem;
8
+ --swirl-shell-extended-nav-width: 18rem;
9
9
  --swirl-shell-sidebar-width: 21rem;
10
10
 
11
11
  display: flex;
@@ -23,7 +23,7 @@
23
23
  width: 100%;
24
24
  min-height: 100%;
25
25
  background-color: var(--swirl-shell-background);
26
- transition: grid-template-columns 0.2s;
26
+ transition: grid-template-columns 0.1s;
27
27
  grid-template-columns: 0 1fr 0;
28
28
  grid-template-rows: 1fr;
29
29
  grid-template-areas: "nav main";
@@ -75,22 +75,21 @@
75
75
 
76
76
  @media (min-width: 992px) {
77
77
 
78
- .shell-layout--navigation-collapsed .shell-layout__nav:hover {
79
- width: var(--swirl-shell-extended-nav-width);
80
- padding-right: var(--s-space-12)
81
- }
82
- }
78
+ .shell-layout--navigation-collapsed .shell-layout__nav {
79
+ scrollbar-width: none
80
+ }
83
81
 
84
- @media (min-width: 992px) {
85
- .shell-layout--navigation-collapsed .shell-layout__nav:not(:hover) {
86
- scrollbar-width: none;
82
+ .shell-layout--navigation-collapsed .shell-layout__nav::-webkit-scrollbar {
83
+ width: 0;
84
+ background: transparent;
85
+ -webkit-appearance: none;
87
86
  }
87
+ }
88
88
 
89
- .shell-layout--navigation-collapsed .shell-layout__nav:not(:hover)::-webkit-scrollbar {
90
- width: 0;
91
- background: transparent;
92
- -webkit-appearance: none;
93
- }
89
+ .shell-layout--navigation-collapsed .shell-layout__secondary-nav-items--grid-view ::slotted(*) {
90
+ max-width: 100%;
91
+ flex-basis: 100%;
92
+ max-height: 3rem;
94
93
  }
95
94
 
96
95
  @media (min-width: 992px) {
@@ -138,7 +137,7 @@
138
137
  }
139
138
 
140
139
  :not(.shell-layout--sidebar-active) .shell-layout__sidebar {
141
- animation: shell-layout-no-overflow-after-transition 0.2s;
140
+ animation: shell-layout-no-overflow-after-transition 0.1s;
142
141
  animation-fill-mode: forwards;
143
142
  }
144
143
 
@@ -166,6 +165,14 @@
166
165
  }
167
166
  }
168
167
 
168
+ .shell-layout--has-secondary-nav .shell-layout__secondary-nav {
169
+ display: block;
170
+ }
171
+
172
+ .shell-layout--secondary-nav-collapsed .shell-layout__secondary-nav-items {
173
+ display: none;
174
+ }
175
+
169
176
  .shell-layout__header {
170
177
  position: relative;
171
178
  display: none;
@@ -306,12 +313,13 @@
306
313
  top: 0;
307
314
  bottom: 0;
308
315
  left: 0;
309
- overflow: auto;
316
+ overflow-x: hidden;
317
+ overflow-y: auto;
310
318
  width: 100%;
311
319
  max-width: 18.75rem;
312
320
  color: var(--swirl-shell-text-color);
313
321
  background-color: var(--s-surface-overlay-default);
314
- transition: transform 0.2s, box-shadow 0.2s, width 0.2s;
322
+ transition: transform 0.1s, box-shadow 0.1s, width 0.1s;
315
323
  transform: translate3d(-100%, 0, 0);
316
324
  grid-area: nav;
317
325
  }
@@ -326,7 +334,7 @@
326
334
  @media (min-width: 992px) {
327
335
 
328
336
  .shell-layout__nav {
329
- position: static;
337
+ position: relative;
330
338
  max-width: none;
331
339
  padding-top: 0;
332
340
  padding-right: var(--s-space-4);
@@ -408,10 +416,30 @@
408
416
  z-index: 8;
409
417
  display: none;
410
418
  background-color: rgba(0, 0, 0, 0.25);
411
- animation: shell-layout-backdrop-fade-in 0.2s;
419
+ animation: shell-layout-backdrop-fade-in 0.1s;
412
420
  inset: 0;
413
421
  }
414
422
 
423
+ .shell-layout__secondary-nav {
424
+ display: none;
425
+ }
426
+
427
+ .shell-layout__secondary-nav-items {
428
+ display: flex;
429
+ flex-direction: column;
430
+ gap: var(--s-space-2);
431
+ }
432
+
433
+ .shell-layout__secondary-nav-items--grid-view {
434
+ flex-direction: row;
435
+ flex-wrap: wrap;
436
+ gap: var(--s-space-16);
437
+ }
438
+
439
+ .shell-layout__secondary-nav-items--grid-view ::slotted(*) {
440
+ flex-basis: calc(50% - var(--s-space-8));
441
+ }
442
+
415
443
  .shell-layout__main {
416
444
  overflow: hidden;
417
445
  background-color: var(--s-background-default);
@@ -458,7 +486,7 @@
458
486
  top: 0;
459
487
  right: 0;
460
488
  bottom: 0;
461
- transition: transform 0.2s;
489
+ transition: transform 0.1s;
462
490
  transform: translate3d(calc(100% + var(--s-space-24)), 0, 0);
463
491
  box-shadow: var(--s-shadow-level-3)
464
492
  }
@@ -1,6 +1,8 @@
1
1
  import { h, Host, } from "@stencil/core";
2
2
  import classnames from "classnames";
3
3
  import * as focusTrap from "focus-trap";
4
+ const SECONDARY_NAVIGATION_COLLAPSE_STORAGE_KEY = "SWIRL_SHELL_SECONDARY_NAVIGATION_COLLAPSE_STATE";
5
+ const SECONDARY_NAVIGATION_VIEW_STORAGE_KEY = "SWIRL_SHELL_SECONDARY_NAVIGATION_VIEW_STATE";
4
6
  const NAVIGATION_COLLAPSE_STORAGE_KEY = "SWIRL_SHELL_NAVIGATION_COLLAPSE_STATE";
5
7
  const SIDEBAR_STORAGE_KEY = "SWIRL_SHELL_SIDEBAR_STATE";
6
8
  /**
@@ -17,6 +19,25 @@ const SIDEBAR_STORAGE_KEY = "SWIRL_SHELL_SIDEBAR_STATE";
17
19
  */
18
20
  export class SwirlShellLayout {
19
21
  constructor() {
22
+ this.collectNavItems = () => {
23
+ this.mainNavItems = Array.from(this.el.querySelectorAll("swirl-shell-navigation-item[slot='nav'], [slot='nav'] swirl-shell-navigation-item"));
24
+ this.secondaryNavItems = Array.from(this.el.querySelectorAll("swirl-shell-navigation-item[slot='secondary-nav'], [slot='secondary-nav'] swirl-shell-navigation-item"));
25
+ this.toggleNavItemLabels();
26
+ };
27
+ this.toggleSecondaryNavView = () => {
28
+ if (this.secondaryNavView === "grid") {
29
+ this.secondaryNavView = "list";
30
+ }
31
+ else {
32
+ this.secondaryNavView = "grid";
33
+ }
34
+ this.setSecondaryNavItemsTiled();
35
+ localStorage.setItem(SECONDARY_NAVIGATION_VIEW_STORAGE_KEY, String(this.secondaryNavView));
36
+ };
37
+ this.toggleSecondaryNavCollapse = () => {
38
+ this.secondaryNavCollapsed = !this.secondaryNavCollapsed;
39
+ localStorage.setItem(SECONDARY_NAVIGATION_COLLAPSE_STORAGE_KEY, String(this.secondaryNavCollapsed));
40
+ };
20
41
  this.onNavigationToggleClick = () => {
21
42
  this.navigationCollapsed = !this.navigationCollapsed;
22
43
  };
@@ -26,9 +47,14 @@ export class SwirlShellLayout {
26
47
  this.brandedHeader = undefined;
27
48
  this.browserBackButtonLabel = "Navigate back";
28
49
  this.browserForwardButtonLabel = "Navigate forward";
50
+ this.enableSecondaryNavGridLayout = true;
51
+ this.gridNavLayoutToggleLabel = "Grid";
29
52
  this.hideMobileNavigationButtonLabel = "Close navigation";
53
+ this.listNavLayoutToggleLabel = "List";
30
54
  this.navigationLabel = "Main";
31
55
  this.navigationToggleLabel = "Toggle navigation";
56
+ this.secondaryNavCollapseLabel = "Show less";
57
+ this.secondaryNavExpandLabel = "Show more";
32
58
  this.sidebarActive = undefined;
33
59
  this.sidebarToggleBadge = undefined;
34
60
  this.sidebarToggleBadgeAriaLabel = undefined;
@@ -37,8 +63,11 @@ export class SwirlShellLayout {
37
63
  this.skipLinkLabel = "Skip to main content";
38
64
  this.mobileNavigationActive = undefined;
39
65
  this.navigationCollapsed = undefined;
66
+ this.secondaryNavCollapsed = undefined;
67
+ this.secondaryNavView = "list";
40
68
  }
41
69
  componentWillLoad() {
70
+ this.collectNavItems();
42
71
  const restoredSidebarState = localStorage.getItem(SIDEBAR_STORAGE_KEY) === "true";
43
72
  this.sidebarActive =
44
73
  this.sidebarActive === undefined
@@ -46,6 +75,14 @@ export class SwirlShellLayout {
46
75
  : this.sidebarActive;
47
76
  const restoredNavigationCollapseState = localStorage.getItem(NAVIGATION_COLLAPSE_STORAGE_KEY) === "true";
48
77
  this.navigationCollapsed = restoredNavigationCollapseState;
78
+ if (this.enableSecondaryNavGridLayout) {
79
+ const restoredSecondaryNavigationCollapseState = localStorage.getItem(SECONDARY_NAVIGATION_COLLAPSE_STORAGE_KEY) ===
80
+ "true";
81
+ this.secondaryNavCollapsed = restoredSecondaryNavigationCollapseState;
82
+ const restoredSecondaryNavigationViewState = localStorage.getItem(SECONDARY_NAVIGATION_VIEW_STORAGE_KEY);
83
+ this.secondaryNavView =
84
+ restoredSecondaryNavigationViewState;
85
+ }
49
86
  }
50
87
  componentDidLoad() {
51
88
  this.focusTrap = focusTrap.createFocusTrap(this.navElement, {
@@ -56,6 +93,8 @@ export class SwirlShellLayout {
56
93
  },
57
94
  },
58
95
  });
96
+ this.toggleNavItemLabels();
97
+ this.setSecondaryNavItemsTiled();
59
98
  }
60
99
  componentDidRender() {
61
100
  this.focusTrap?.updateContainerElements(this.navElement);
@@ -81,6 +120,7 @@ export class SwirlShellLayout {
81
120
  }
82
121
  watchNavigationCollapsed() {
83
122
  localStorage.setItem(NAVIGATION_COLLAPSE_STORAGE_KEY, String(this.navigationCollapsed));
123
+ this.toggleNavItemLabels();
84
124
  }
85
125
  watchSidebarActive() {
86
126
  localStorage.setItem(SIDEBAR_STORAGE_KEY, String(this.sidebarActive));
@@ -97,17 +137,47 @@ export class SwirlShellLayout {
97
137
  async hideMobileNavigation() {
98
138
  this.mobileNavigationActive = false;
99
139
  }
140
+ toggleNavItemLabels() {
141
+ [...this.secondaryNavItems, ...this.mainNavItems].forEach((item) => {
142
+ item.hideLabel =
143
+ !!(this.enableSecondaryNavGridLayout && this.navigationCollapsed) ||
144
+ (!this.enableSecondaryNavGridLayout && this.navigationCollapsed);
145
+ console.log(this.enableSecondaryNavGridLayout && this.navigationCollapsed);
146
+ });
147
+ }
148
+ setSecondaryNavItemsTiled() {
149
+ this.secondaryNavItems.forEach((item) => {
150
+ item.tiled =
151
+ this.enableSecondaryNavGridLayout && this.secondaryNavView === "grid";
152
+ });
153
+ }
100
154
  render() {
101
155
  const hasSidebarToggleBadgeWithLabel = this.sidebarToggleBadge !== true && this.sidebarToggleBadge !== "true";
156
+ const hasSecondaryNav = Boolean(this.el.querySelector("[slot='secondary-nav']"));
102
157
  const className = classnames("shell-layout", {
103
158
  "shell-layout--branded-header": this.brandedHeader,
159
+ "shell-layout--secondary-nav-collapsed": this.secondaryNavCollapsed,
160
+ "shell-layout--has-secondary-nav": hasSecondaryNav,
104
161
  "shell-layout--mobile-navigation-active": this.mobileNavigationActive,
105
162
  "shell-layout--navigation-collapsed": this.navigationCollapsed,
106
163
  "shell-layout--sidebar-active": this.sidebarActive,
107
164
  });
108
- return (h(Host, { key: '8ac0a3465331a44666498b9a7dcd7aa35c9dc9e2' }, h("div", { key: '4990de7803e46f2a814b05f20f5a7e88d636d3dd', class: className }, h("header", { key: '06e3f3b6b362909584c7d34cf5d0479eb100479b', class: "shell-layout__header", "data-tauri-drag-region": "true" }, h("button", { key: 'a56882f44359fdcfa8d6252af97c7c8d69f2f5ce', class: "shell-layout__skip-link", onClick: this.skipLinkClick.emit, type: "button" }, this.skipLinkLabel), h("div", { key: '73cdc9deef606505fe5688df02416f5801491443', class: "shell-layout__header-left" }, h("button", { key: '69c526bef11fff511472b143400a8da2972503f2', class: "shell-layout__header-tool", onClick: this.onNavigationToggleClick, type: "button" }, h("swirl-icon-dock-left", { key: 'adef92a3da2d1b132f62036acb83787f1a68b4e2', size: 20 }), h("swirl-visually-hidden", { key: '9080a2cbba25c27a5a284132adb95b7951d34bec' }, this.navigationToggleLabel)), h("a", { key: 'ef4e3e985069d0e8b110366e9cfdc6f3a49d178f', class: "shell-layout__header-tool", href: "javascript:history.back()" }, h("swirl-icon-arrow-back", { key: '87ebb8eece4655739db57d69e1562fae38d221ad', size: 20 }), h("swirl-visually-hidden", { key: '3f9d98cb9195ee053cd8fbc343b06479f469a594' }, this.browserBackButtonLabel)), h("a", { key: '7eb4924c19e8ecf5ae45f69852ae561e4d7dafbd', class: "shell-layout__header-tool", href: "javascript:history.forward()" }, h("swirl-icon-arrow-forward", { key: '91e946148ea45549e0d35bbdeb47e6c22cefd6d4', size: 20 }), h("swirl-visually-hidden", { key: 'ecec5526b9b6e74ceeb6d83e3738ab96eff8ea68' }, this.browserForwardButtonLabel)), h("slot", { key: 'ca532ef7ab1f8c352ad59bc16186e32e382db4b1', name: "left-header-tools" })), h("div", { key: 'ad2abae49d4f64eabae7a320d67c093d82c8c349', class: "shell-layout__logo" }, h("slot", { key: '75c99c3413488ad7fc160841a11cf825eecbefef', name: "logo" })), h("div", { key: 'e2b4c098b54990bc06e9f397e2f850a0c9b9cf1b', class: "shell-layout__header-right" }, h("slot", { key: '6ef73c889c02603496700e1080bad71adeee31ce', name: "right-header-tools" }), h("button", { key: '0e7be546e2d34c112ad31a71035f75e895d5bbea', class: "shell-layout__header-tool shell-layout__sidebar-toggle", onClick: this.sidebarToggleClick.emit, type: "button" }, h("swirl-icon", { key: '08592492884a6a64db04a416591bb74dc367726d', glyph: this.sidebarToggleIcon, size: 20 }), h("swirl-visually-hidden", { key: 'b3c23f63e10d842eba7780f79fd46372b4c81cd1' }, this.sidebarToggleLabel), this.sidebarToggleBadge && (h("swirl-badge", { key: 'c7a783b312f60615cfa001d2b1db6b6fb4b4bc8e', "aria-label": this.sidebarToggleBadgeAriaLabel, label: !hasSidebarToggleBadgeWithLabel
165
+ return (h(Host, { key: '7623fb08b60fe150f78537cc7ffeb34ea08c5a8b' }, h("div", { key: '179a5334ff4a02e6761a4c3f061155bfcc886bac', class: className }, h("header", { key: '6029510b35fe789874ca90b95ecd9df72f055e79', class: "shell-layout__header", "data-tauri-drag-region": "true" }, h("button", { key: '0ed34ec676012469679ac5310b4b4cef83bd9a1a', class: "shell-layout__skip-link", onClick: this.skipLinkClick.emit, type: "button" }, this.skipLinkLabel), h("div", { key: 'eb98efcc123b3b1438e3d6df18425085c33fc67a', class: "shell-layout__header-left" }, h("button", { key: 'fe70cdc5600c04b3d1eb8ab17b0ddff2419b5f9a', class: "shell-layout__header-tool", onClick: this.onNavigationToggleClick, type: "button" }, h("swirl-icon-dock-left", { key: '5dbb38292980a18a5e0219977d785224309bbf69', size: 20 }), h("swirl-visually-hidden", { key: 'c5771fdc7066ee88f9ecf31861d696b18c811533' }, this.navigationToggleLabel)), h("a", { key: 'dcce38cd4e283fbe5a9efae02e1dd15927b37b4d', class: "shell-layout__header-tool", href: "javascript:history.back()" }, h("swirl-icon-arrow-back", { key: '8ad40c88adc3f96df42af2db27e96fec8c965deb', size: 20 }), h("swirl-visually-hidden", { key: '8dd482cb80a11db8aa8a73886beb5ad2f3e780f0' }, this.browserBackButtonLabel)), h("a", { key: 'fe9ca3ea97e5c380d1d26f1c4dab70cce01e7992', class: "shell-layout__header-tool", href: "javascript:history.forward()" }, h("swirl-icon-arrow-forward", { key: '3241be06da7641df9ffe6ca5875f5a90b508e50a', size: 20 }), h("swirl-visually-hidden", { key: 'd024e25f155ae3fbc2102fd70e362e7b1b57cd78' }, this.browserForwardButtonLabel)), h("slot", { key: '2716c16471633c1b29f7a436d8c58a650d8d1f2a', name: "left-header-tools" })), h("div", { key: '883257e625335186493da36c0fdee5fe83adbc0d', class: "shell-layout__logo" }, h("slot", { key: '3ec15894bb6676a965423ddd0d269ee9e8f6b7cc', name: "logo" })), h("div", { key: 'caf685dc0a904fbf021cbbeab27ca39cb21d5e85', class: "shell-layout__header-right" }, h("slot", { key: '8c1323440c8f909ea1ec7b57ba7ed01c1e97837a', name: "right-header-tools" }), h("button", { key: '15435a247715f42cee8d2735befb5236d3fe7a40', class: "shell-layout__header-tool shell-layout__sidebar-toggle", onClick: this.sidebarToggleClick.emit, type: "button" }, h("swirl-icon", { key: 'dd8f71593d240e0b175043da2c15392032080984', glyph: this.sidebarToggleIcon, size: 20 }), h("swirl-visually-hidden", { key: '7fe157d80af2602ef5ab024335fc6ce1738515a2' }, this.sidebarToggleLabel), this.sidebarToggleBadge && (h("swirl-badge", { key: '55b851f1e3506aea0b77f9579b2b560a1cb16a43', "aria-label": this.sidebarToggleBadgeAriaLabel, label: !hasSidebarToggleBadgeWithLabel
109
166
  ? this.sidebarToggleBadgeAriaLabel
110
- : String(this.sidebarToggleBadge), size: "xs", variant: !hasSidebarToggleBadgeWithLabel ? "dot" : "default" }))), h("slot", { key: '99852428a24bbbadbd285a0b2ed3e7fd90a38970', name: "avatar" }))), h("div", { key: 'd69831fb8f238cbae18eb5f9c505e7902b628d98', class: "shell-layout__mobile-nav-backdrop", onClick: this.onNavigationClick }), h("nav", { key: '6eef2506fc69ea0cb7d7565a63eca8adf891ab99', "aria-labelledby": "main-navigation-label", class: "shell-layout__nav", onClick: this.onNavigationClick, ref: (el) => (this.navElement = el) }, h("div", { key: '8bb9bc97e7be1668013b53ead35c7a01182e8e94', class: "shell-layout__mobile-header" }, h("slot", { key: 'dc8f336880c5116183fb1573df941ebbf639bc2a', name: "mobile-logo" }), h("div", { key: '3c397987d9f90786184c9444089e921bb7379dfb', class: "shell-layout__mobile-header-tools" }, h("slot", { key: '89046b89f2b4cc2a7f5de187c8e54063d9dcbfd5', name: "mobile-header-tools" }), h("button", { key: '8c7f0363424b0cd5bc44cb9ad88a83b76fbf8cf2', class: "shell-layout__header-tool", type: "button" }, h("swirl-icon-double-arrow-left", { key: 'c8b0456df01d59bacf20b2d25039fb4498a0edcd', size: 20 }), h("swirl-visually-hidden", { key: '8ef9963a157261abd9e04d7bc7aa53a2d0cc6165' }, this.hideMobileNavigationButtonLabel)))), h("div", { key: '3bae7ef27857a2ff9294bd6cd07dfe0c5c897e1e', class: "shell-layout__nav-body" }, h("swirl-visually-hidden", { key: 'f0c2439e9e75520472bd45cb00ea953a07e3983b' }, h("span", { key: '9f7b141d6463aa5d29e82ec57203f4a7379ccfa0', id: "main-navigation-label" }, this.navigationLabel)), h("slot", { key: 'dd3365f92be9db1a298b1ff835a8926147cc1d47', name: "nav" }))), h("main", { key: '1bb60af55eed8e0c2598f5cac6ba0fc151438d74', class: "shell-layout__main", id: "main-content" }, h("slot", { key: 'b9cd60540271214cd862852ba7c53a9ab6c376f8' })), h("aside", { key: 'e334a5c70d6bdbac1bff054dfb0ae4781f7423b5', class: "shell-layout__sidebar", inert: this.sidebarActive ? undefined : true }, h("div", { key: '440f261ccae7b5c78d084e4c22eb67d0d8d1e1df', class: "shell-layout__sidebar-body" }, h("div", { key: '683d4f88994e7b25a929481ea6e8bff83d0772bf', class: "shell-layout__sidebar-app-bar" }, h("slot", { key: '93156047bcd62b1bb1de6021a4c230c3c63f5c70', name: "sidebar-app-bar" })), h("div", { key: 'd686b6fd3961fbaf07c9e8a6531e6a2cbba3aa0a', class: "shell-layout__sidebar-content" }, h("slot", { key: 'a2c90fda9603557c075e99e76a1b2c3c7c54269a', name: "sidebar" })))))));
167
+ : String(this.sidebarToggleBadge), size: "xs", variant: !hasSidebarToggleBadgeWithLabel ? "dot" : "default" }))), h("slot", { key: '30faf24857b927774b5f99fb81bf969b7e9e79d9', name: "avatar" }))), h("div", { key: '3d306e78d42951897ce5fbeb3e4bbb020a8b705b', class: "shell-layout__mobile-nav-backdrop", onClick: this.onNavigationClick }), h("nav", { key: '1241e5d10b77daa77454d8f3157d4905c951bfd9', "aria-labelledby": "main-navigation-label", class: "shell-layout__nav", onClick: this.onNavigationClick, ref: (el) => (this.navElement = el) }, h("div", { key: 'f1f10b0a9b928c9788fa45950b6db93f112f1b00', class: "shell-layout__mobile-header" }, h("slot", { key: 'ea2dd9d1b0721eb1cbee2194ae609f9b8efeb7e8', name: "mobile-logo" }), h("div", { key: '91684c95ab397db06f8fffa3302beeff90b34eef', class: "shell-layout__mobile-header-tools" }, h("slot", { key: 'a3b51069cb48e2624c99a3e36271cc9076ebc6b9', name: "mobile-header-tools" }), h("button", { key: '72faa9f199a14964662724e8deb2a96c527364b1', class: "shell-layout__header-tool", type: "button" }, h("swirl-icon-double-arrow-left", { key: '3258dbb5f8b839cfc98d73e4620df3c7bc33260d', size: 20 }), h("swirl-visually-hidden", { key: '2e480b97affdfd914c3ab4ede0907b6b82d67ff6' }, this.hideMobileNavigationButtonLabel)))), h("div", { key: '1a5350c2b6ef8a787345fc8a9f5824da2d6fd22f', class: "shell-layout__nav-body" }, h("swirl-visually-hidden", { key: '359d25014c23a189979e44eb8680f55b5a088e76' }, h("span", { key: 'b4890f60b20ca0c63a153f0fb5f7bfe49f4bf76e', id: "main-navigation-label" }, this.navigationLabel)), h("slot", { key: '449ba439cf0185fd7bafe10e6122512e17471b9e', name: "nav", onSlotchange: this.collectNavItems }), h("div", { key: '753b0f3c050cfe1147f742bbab983ec9e2238b2e', class: "shell-layout__secondary-nav" }, h("swirl-separator", { key: 'c1cddd993040685ab1b587235bb0d8fc12f1945e', borderColor: "strong", spacing: "16" }), this.enableSecondaryNavGridLayout && (h("swirl-box", { key: '9b0906021e329b2b35b62c0a6fa70e178b59df03', paddingBlockEnd: "16" }, h("swirl-stack", { key: 'f4c6ca124dea40f980dab7980e39c26860d399e3', justify: this.navigationCollapsed ? "center" : "space-between", orientation: "horizontal" }, h("swirl-button", { key: '500d0d44d9dc457b97b2cc0685178eb56b6a7494', hideLabel: this.navigationCollapsed, icon: this.secondaryNavCollapsed
168
+ ? "<swirl-icon-expand-more></swirl-icon-expand-more>"
169
+ : "<swirl-icon-expand-less></swirl-icon-expand-less>", label: this.secondaryNavCollapsed
170
+ ? this.secondaryNavExpandLabel
171
+ : this.secondaryNavCollapseLabel, onClick: this.toggleSecondaryNavCollapse, variant: "plain" }), !this.navigationCollapsed &&
172
+ !this.secondaryNavCollapsed && (h("swirl-button", { key: 'ac2ff76954943a20902c6733f87899a8b6186b34', icon: this.secondaryNavView === "grid"
173
+ ? "<swirl-icon-menu></swirl-icon-menu>"
174
+ : "<swirl-icon-hamburger-menu></swirl-icon-hamburger-menu>", iconPosition: "end", label: this.secondaryNavView === "grid"
175
+ ? this.gridNavLayoutToggleLabel
176
+ : this.listNavLayoutToggleLabel, onClick: this.toggleSecondaryNavView, variant: "plain" }))))), h("ul", { key: '845b1077674331b52d0226edec5fdca9d0de61d9', class: {
177
+ "shell-layout__secondary-nav-items": true,
178
+ "shell-layout__secondary-nav-items--grid-view": this.enableSecondaryNavGridLayout &&
179
+ this.secondaryNavView === "grid",
180
+ } }, h("slot", { key: '9729bdcef478c6d17aacd38a15e9f0dc83376bfd', name: "secondary-nav", onSlotchange: this.collectNavItems }))))), h("main", { key: 'b362c844b7cf75636b3f21537b45d2aca90a84d1', class: "shell-layout__main", id: "main-content" }, h("slot", { key: '869588df1374626baf1533895a826ad1b72770c4' })), h("aside", { key: '5fe6572ca71fc826296dceb3c86eaa557f492bcf', class: "shell-layout__sidebar", inert: this.sidebarActive ? undefined : true }, h("div", { key: '5a1ec6fa64fa3487c5bbfbac7c0a936f7b8484f5', class: "shell-layout__sidebar-body" }, h("div", { key: 'f76b0b784ae026799817e58a543383dfd03d3b6b', class: "shell-layout__sidebar-app-bar" }, h("slot", { key: '9a44404c205282ab06d9dd60bb08fe5b9907c558', name: "sidebar-app-bar" })), h("div", { key: '54b8de1ea6ef504ce7d0c308388393e736f4377e', class: "shell-layout__sidebar-content" }, h("slot", { key: '907b5f09dc7023209f22c3b1f272cd2c98655d27', name: "sidebar" })))))));
111
181
  }
112
182
  static get is() { return "swirl-shell-layout"; }
113
183
  static get encapsulation() { return "scoped"; }
@@ -176,6 +246,42 @@ export class SwirlShellLayout {
176
246
  "reflect": false,
177
247
  "defaultValue": "\"Navigate forward\""
178
248
  },
249
+ "enableSecondaryNavGridLayout": {
250
+ "type": "boolean",
251
+ "mutable": false,
252
+ "complexType": {
253
+ "original": "boolean",
254
+ "resolved": "boolean",
255
+ "references": {}
256
+ },
257
+ "required": false,
258
+ "optional": true,
259
+ "docs": {
260
+ "tags": [],
261
+ "text": ""
262
+ },
263
+ "attribute": "enable-secondary-nav-grid-layout",
264
+ "reflect": false,
265
+ "defaultValue": "true"
266
+ },
267
+ "gridNavLayoutToggleLabel": {
268
+ "type": "string",
269
+ "mutable": false,
270
+ "complexType": {
271
+ "original": "string",
272
+ "resolved": "string",
273
+ "references": {}
274
+ },
275
+ "required": false,
276
+ "optional": true,
277
+ "docs": {
278
+ "tags": [],
279
+ "text": ""
280
+ },
281
+ "attribute": "grid-nav-layout-toggle-label",
282
+ "reflect": false,
283
+ "defaultValue": "\"Grid\""
284
+ },
179
285
  "hideMobileNavigationButtonLabel": {
180
286
  "type": "string",
181
287
  "mutable": false,
@@ -194,6 +300,24 @@ export class SwirlShellLayout {
194
300
  "reflect": false,
195
301
  "defaultValue": "\"Close navigation\""
196
302
  },
303
+ "listNavLayoutToggleLabel": {
304
+ "type": "string",
305
+ "mutable": false,
306
+ "complexType": {
307
+ "original": "string",
308
+ "resolved": "string",
309
+ "references": {}
310
+ },
311
+ "required": false,
312
+ "optional": true,
313
+ "docs": {
314
+ "tags": [],
315
+ "text": ""
316
+ },
317
+ "attribute": "list-nav-layout-toggle-label",
318
+ "reflect": false,
319
+ "defaultValue": "\"List\""
320
+ },
197
321
  "navigationLabel": {
198
322
  "type": "string",
199
323
  "mutable": false,
@@ -230,6 +354,42 @@ export class SwirlShellLayout {
230
354
  "reflect": false,
231
355
  "defaultValue": "\"Toggle navigation\""
232
356
  },
357
+ "secondaryNavCollapseLabel": {
358
+ "type": "string",
359
+ "mutable": false,
360
+ "complexType": {
361
+ "original": "string",
362
+ "resolved": "string",
363
+ "references": {}
364
+ },
365
+ "required": false,
366
+ "optional": true,
367
+ "docs": {
368
+ "tags": [],
369
+ "text": ""
370
+ },
371
+ "attribute": "secondary-nav-collapse-label",
372
+ "reflect": false,
373
+ "defaultValue": "\"Show less\""
374
+ },
375
+ "secondaryNavExpandLabel": {
376
+ "type": "string",
377
+ "mutable": false,
378
+ "complexType": {
379
+ "original": "string",
380
+ "resolved": "string",
381
+ "references": {}
382
+ },
383
+ "required": false,
384
+ "optional": true,
385
+ "docs": {
386
+ "tags": [],
387
+ "text": ""
388
+ },
389
+ "attribute": "secondary-nav-expand-label",
390
+ "reflect": false,
391
+ "defaultValue": "\"Show more\""
392
+ },
233
393
  "sidebarActive": {
234
394
  "type": "boolean",
235
395
  "mutable": true,
@@ -340,7 +500,9 @@ export class SwirlShellLayout {
340
500
  static get states() {
341
501
  return {
342
502
  "mobileNavigationActive": {},
343
- "navigationCollapsed": {}
503
+ "navigationCollapsed": {},
504
+ "secondaryNavCollapsed": {},
505
+ "secondaryNavView": {}
344
506
  };
345
507
  }
346
508
  static get events() {
@@ -424,6 +586,7 @@ export class SwirlShellLayout {
424
586
  }
425
587
  };
426
588
  }
589
+ static get elementRef() { return "el"; }
427
590
  static get watchers() {
428
591
  return [{
429
592
  "propName": "mobileNavigationActive",
@@ -14,6 +14,6 @@ describe("swirl-shell-layout", () => {
14
14
  <div slot="sidebar">Sidebar</div>
15
15
  </swirl-shell-layout>`,
16
16
  });
17
- expect(page.root.innerHTML).toMatchInlineSnapshot(`"<!----> <div slot=\\"header-tools\\" hidden=\\"\\">Tools</div> <div slot=\\"sidebar-header\\" hidden=\\"\\">Sidebar header</div> <div class=\\"shell-layout\\"><header class=\\"shell-layout__header\\" data-tauri-drag-region=\\"true\\"><button class=\\"shell-layout__skip-link\\" type=\\"button\\">Skip to main content</button><div class=\\"shell-layout__header-left\\"><button class=\\"shell-layout__header-tool\\" type=\\"button\\"><swirl-icon-dock-left size=\\"20\\"></swirl-icon-dock-left><swirl-visually-hidden>Toggle navigation</swirl-visually-hidden></button><a class=\\"shell-layout__header-tool\\" href=\\"javascript:history.back()\\"><swirl-icon-arrow-back size=\\"20\\"></swirl-icon-arrow-back><swirl-visually-hidden>Navigate back</swirl-visually-hidden></a><a class=\\"shell-layout__header-tool\\" href=\\"javascript:history.forward()\\"><swirl-icon-arrow-forward size=\\"20\\"></swirl-icon-arrow-forward><swirl-visually-hidden>Navigate forward</swirl-visually-hidden></a> </div><div class=\\"shell-layout__logo\\"> <div slot=\\"logo\\">Logo</div></div><div class=\\"shell-layout__header-right\\"> <button class=\\"shell-layout__header-tool shell-layout__sidebar-toggle\\" type=\\"button\\"><swirl-icon glyph=\\"notifications\\" size=\\"20\\"></swirl-icon><swirl-visually-hidden>Toggle sidebar</swirl-visually-hidden></button> </div></header><div class=\\"shell-layout__mobile-nav-backdrop\\"></div><nav aria-labelledby=\\"main-navigation-label\\" class=\\"shell-layout__nav\\"><div class=\\"shell-layout__mobile-header\\"> <div slot=\\"mobile-logo\\">Mobile logo</div><div class=\\"shell-layout__mobile-header-tools\\"> <button class=\\"shell-layout__header-tool\\" type=\\"button\\"><swirl-icon-double-arrow-left size=\\"20\\"></swirl-icon-double-arrow-left><swirl-visually-hidden>Close navigation</swirl-visually-hidden></button></div></div><div class=\\"shell-layout__nav-body\\"><swirl-visually-hidden><span id=\\"main-navigation-label\\">Main</span></swirl-visually-hidden> <div slot=\\"nav\\">nav</div></div></nav><main class=\\"shell-layout__main\\" id=\\"main-content\\"> <div>Main</div> </main><aside class=\\"shell-layout__sidebar\\" inert=\\"\\"><div class=\\"shell-layout__sidebar-body\\"><div class=\\"shell-layout__sidebar-app-bar\\"></div><div class=\\"shell-layout__sidebar-content\\"> <div slot=\\"sidebar\\">Sidebar</div></div></div></aside></div>"`);
17
+ expect(page.root.innerHTML).toMatchInlineSnapshot(`"<!----> <div slot=\\"header-tools\\" hidden=\\"\\">Tools</div> <div slot=\\"sidebar-header\\" hidden=\\"\\">Sidebar header</div> <div class=\\"shell-layout\\"><header class=\\"shell-layout__header\\" data-tauri-drag-region=\\"true\\"><button class=\\"shell-layout__skip-link\\" type=\\"button\\">Skip to main content</button><div class=\\"shell-layout__header-left\\"><button class=\\"shell-layout__header-tool\\" type=\\"button\\"><swirl-icon-dock-left size=\\"20\\"></swirl-icon-dock-left><swirl-visually-hidden>Toggle navigation</swirl-visually-hidden></button><a class=\\"shell-layout__header-tool\\" href=\\"javascript:history.back()\\"><swirl-icon-arrow-back size=\\"20\\"></swirl-icon-arrow-back><swirl-visually-hidden>Navigate back</swirl-visually-hidden></a><a class=\\"shell-layout__header-tool\\" href=\\"javascript:history.forward()\\"><swirl-icon-arrow-forward size=\\"20\\"></swirl-icon-arrow-forward><swirl-visually-hidden>Navigate forward</swirl-visually-hidden></a> </div><div class=\\"shell-layout__logo\\"> <div slot=\\"logo\\">Logo</div></div><div class=\\"shell-layout__header-right\\"> <button class=\\"shell-layout__header-tool shell-layout__sidebar-toggle\\" type=\\"button\\"><swirl-icon glyph=\\"notifications\\" size=\\"20\\"></swirl-icon><swirl-visually-hidden>Toggle sidebar</swirl-visually-hidden></button> </div></header><div class=\\"shell-layout__mobile-nav-backdrop\\"></div><nav aria-labelledby=\\"main-navigation-label\\" class=\\"shell-layout__nav\\"><div class=\\"shell-layout__mobile-header\\"> <div slot=\\"mobile-logo\\">Mobile logo</div><div class=\\"shell-layout__mobile-header-tools\\"> <button class=\\"shell-layout__header-tool\\" type=\\"button\\"><swirl-icon-double-arrow-left size=\\"20\\"></swirl-icon-double-arrow-left><swirl-visually-hidden>Close navigation</swirl-visually-hidden></button></div></div><div class=\\"shell-layout__nav-body\\"><swirl-visually-hidden><span id=\\"main-navigation-label\\">Main</span></swirl-visually-hidden> <div slot=\\"nav\\">nav</div><div class=\\"shell-layout__secondary-nav\\"><swirl-separator bordercolor=\\"strong\\" spacing=\\"16\\"></swirl-separator><swirl-box paddingblockend=\\"16\\"><swirl-stack justify=\\"space-between\\" orientation=\\"horizontal\\"><swirl-button icon=\\"<swirl-icon-expand-less></swirl-icon-expand-less>\\" label=\\"Show less\\" variant=\\"plain\\"></swirl-button><swirl-button icon=\\"<swirl-icon-hamburger-menu></swirl-icon-hamburger-menu>\\" iconposition=\\"end\\" label=\\"List\\" variant=\\"plain\\"></swirl-button></swirl-stack></swirl-box><ul class=\\"shell-layout__secondary-nav-items\\"></ul></div></div></nav><main class=\\"shell-layout__main\\" id=\\"main-content\\"> <div>Main</div> </main><aside class=\\"shell-layout__sidebar\\" inert=\\"\\"><div class=\\"shell-layout__sidebar-body\\"><div class=\\"shell-layout__sidebar-app-bar\\"></div><div class=\\"shell-layout__sidebar-content\\"> <div slot=\\"sidebar\\">Sidebar</div></div></div></aside></div>"`);
18
18
  });
19
19
  });
@@ -37,40 +37,46 @@ const Template = (args) => {
37
37
  <swirl-button label="Header tool" slot="right-header-tools" variant="outline"></swirl-button>
38
38
 
39
39
  <div slot="nav">
40
- <ul>
40
+ <swirl-stack align="stretch" as="ul" spacing="2">
41
41
  <li>
42
42
  <swirl-shell-navigation-item label="Home">
43
- <swirl-app-icon icon="<swirl-icon-home size=&quot;20&quot;></swirl-icon-home>" slot="icon"></swirl-app-icon>
43
+ <swirl-app-icon icon="<swirl-icon-home size=&quot;24&quot;></swirl-icon-home>" slot="icon"></swirl-app-icon>
44
44
  </swirl-shell-navigation-item>
45
45
  </li>
46
46
  <li>
47
47
  <swirl-shell-navigation-item active label="News" badge-label="">
48
- <swirl-app-icon icon="<swirl-icon-news-filled size=&quot;20&quot;></swirl-icon-news-filled>" slot="icon"></swirl-app-icon>
48
+ <swirl-app-icon icon="<swirl-icon-news-filled size=&quot;24&quot;></swirl-icon-news-filled>" slot="icon"></swirl-app-icon>
49
49
  </swirl-shell-navigation-item>
50
50
  </li>
51
51
  <li>
52
52
  <swirl-shell-navigation-item label="Chat" badge-label="3">
53
- <swirl-app-icon icon="<swirl-icon-chat-bubble size=&quot;20&quot;></swirl-icon-chat-bubble>" slot="icon"></swirl-app-icon>
53
+ <swirl-app-icon icon="<swirl-icon-chat-bubble size=&quot;24&quot;></swirl-icon-chat-bubble>" slot="icon"></swirl-app-icon>
54
54
  </swirl-shell-navigation-item>
55
55
  </li>
56
56
  <li>
57
57
  <swirl-shell-navigation-item label="Tasks">
58
- <swirl-app-icon icon="<swirl-icon-tasks-filled size=&quot;20&quot;></swirl-icon-tasks-filled>" slot="icon"></swirl-app-icon>
58
+ <swirl-app-icon icon="<swirl-icon-tasks-filled size=&quot;24&quot;></swirl-icon-tasks-filled>" slot="icon"></swirl-app-icon>
59
59
  </swirl-shell-navigation-item>
60
60
  </li>
61
- <li>
62
- <swirl-shell-navigation-item label="Employee directory" boxed="true">
63
- <swirl-app-icon icon="<swirl-icon-groups-filled size=&quot;20&quot;></swirl-icon-groups-filled>" slot="icon"></swirl-app-icon>
64
- </swirl-shell-navigation-item>
65
- </li>
66
- <li>
67
- <swirl-shell-navigation-item label="Custom Link" boxed="true">
68
- <swirl-app-icon slot="icon" label="link" src="https://picsum.photos/id/433/144/144" slot="icon"></swirl-app-icon>
69
- </swirl-shell-navigation-item>
70
- </li>
71
- </ul>
61
+ </swirl-stack>
72
62
  </div>
73
63
 
64
+ <li slot="secondary-nav">
65
+ <swirl-shell-navigation-item label="Employee directory">
66
+ <swirl-app-icon icon="<swirl-icon-groups-filled size=&quot;24&quot;></swirl-icon-groups-filled>" slot="icon"></swirl-app-icon>
67
+ </swirl-shell-navigation-item>
68
+ </li>
69
+ <li slot="secondary-nav">
70
+ <swirl-shell-navigation-item badge-label="3" label="Custom Link">
71
+ <swirl-app-icon slot="icon" label="link" src="https://picsum.photos/id/433/144/144" slot="icon"></swirl-app-icon>
72
+ </swirl-shell-navigation-item>
73
+ </li>
74
+ <li slot="secondary-nav">
75
+ <swirl-shell-navigation-item label="Custom Link with an unusually long label">
76
+ <swirl-app-icon slot="icon" label="link" src="https://picsum.photos/id/433/144/144" slot="icon"></swirl-app-icon>
77
+ </swirl-shell-navigation-item>
78
+ </li>
79
+
74
80
  <swirl-app-layout app-name="App name">
75
81
  <swirl-button hide-label="true" icon="<swirl-icon-menu></swirl-icon-menu>" label="Menu" slot="navigation-mobile-menu-button"></swirl-button>
76
82
  <swirl-resource-list label="Items" slot="navigation">
@@ -12,6 +12,8 @@
12
12
  }
13
13
 
14
14
  .shell-navigation-item {
15
+ --swirl-app-icon-size: 1.5rem;
16
+
15
17
  position: relative;
16
18
  display: flex;
17
19
  width: 100%;
@@ -59,19 +61,68 @@
59
61
  box-shadow: 0 0 0 0.125rem var(--s-focus-default);
60
62
  }
61
63
 
64
+ .shell-navigation-item.shell-navigation-item--boxed {
65
+ --swirl-app-icon-size: 2rem;
66
+ }
67
+
62
68
  .shell-navigation-item.shell-navigation-item--boxed .shell-navigation-item__icon {
63
- background-color: var(--s-background-default);
64
- border-color: var(--s-border-default);
65
- border-radius: var(--s-border-radius-sm);
69
+ overflow: hidden;
66
70
  border-width: var(--s-border-width-default);
67
71
  border-style: solid;
72
+ border-color: var(--s-border-default);
73
+ border-radius: var(--s-border-radius-sm);
74
+ background-color: var(--s-background-default);
75
+ }
76
+
77
+ .shell-navigation-item.shell-navigation-item--tiled {
78
+ --swirl-app-icon-size: 100%;
79
+
80
+ height: auto;
81
+ padding: 0;
82
+ flex-direction: column;
83
+ container-type: unset;
84
+ }
85
+
86
+ .shell-navigation-item.shell-navigation-item--tiled:hover {
87
+ background-color: transparent;
88
+ }
89
+
90
+ .shell-navigation-item.shell-navigation-item--tiled:hover .shell-navigation-item__label {
91
+ text-decoration: underline;
92
+ }
93
+
94
+ .shell-navigation-item.shell-navigation-item--tiled ::slotted(swirl-app-icon) {
95
+ width: 100%;
96
+ height: 100%;
97
+ }
98
+
99
+ .shell-navigation-item.shell-navigation-item--tiled .shell-navigation-item__icon {
68
100
  overflow: hidden;
101
+ width: 100%;
102
+ min-width: 100%;
103
+ height: auto;
104
+ min-height: auto;
105
+ border-radius: var(--s-border-radius-base);
106
+ background-color: var(--s-surface-sunken-hovered);
107
+ aspect-ratio: 1;
69
108
  }
70
109
 
71
- .shell-navigation-item.shell-navigation-item--boxed {
110
+ .shell-navigation-item.shell-navigation-item--tiled .shell-navigation-item__badge {
111
+ position: absolute;
112
+ top: -0.375rem;
113
+ right: -0.375rem;
114
+ padding: var(--s-space-2);
115
+ }
72
116
 
73
- --swirl-app-icon-size: 2rem;
74
- }
117
+ .shell-navigation-item.shell-navigation-item--tiled .shell-navigation-item__label {
118
+ display: -webkit-box;
119
+ overflow: hidden;
120
+ text-align: center;
121
+ white-space: normal;
122
+ text-overflow: unset;
123
+ -webkit-line-clamp: 2;
124
+ -webkit-box-orient: vertical;
125
+ }
75
126
 
76
127
  .shell-navigation-item.shell-navigation-item--active {
77
128
  background-color: var(--s-surface-sunken-hovered);
@@ -106,10 +157,10 @@
106
157
 
107
158
  .shell-navigation-item__icon {
108
159
  display: inline-flex;
160
+ width: 2rem;
109
161
  min-width: 2rem;
110
- min-height: 2rem;
111
162
  height: 2rem;
112
- width: 2rem;
163
+ min-height: 2rem;
113
164
  justify-content: center;
114
165
  align-items: center;
115
166
  }