@getflip/swirl-components 0.230.1 → 0.233.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 (370) hide show
  1. package/components.json +442 -5
  2. package/dist/cjs/file-manager.cjs.entry.js +1 -1
  3. package/dist/cjs/index-6aba64ed.js +20 -12
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/cjs/swirl-components.cjs.js +1 -1
  6. package/dist/cjs/swirl-tree-view-item.cjs.entry.js +87 -0
  7. package/dist/cjs/swirl-tree-view.cjs.entry.js +212 -0
  8. package/dist/cjs/swirl-video-thumbnail.cjs.entry.js +1 -1
  9. package/dist/cjs/swirl-visually-hidden.cjs.entry.js +1 -1
  10. package/dist/collection/assets/pdfjs/pdf.worker.min.js +1 -1
  11. package/dist/collection/collection-manifest.json +2 -0
  12. package/dist/collection/components/swirl-shell-layout/swirl-shell-layout.spec.js +1 -1
  13. package/dist/collection/components/swirl-shell-navigation-item/swirl-shell-navigation-item.spec.js +1 -1
  14. package/dist/collection/components/swirl-tree-view/swirl-tree-view.css +15 -0
  15. package/dist/collection/components/swirl-tree-view/swirl-tree-view.js +314 -0
  16. package/dist/collection/components/swirl-tree-view/swirl-tree-view.spec.js +193 -0
  17. package/dist/collection/components/swirl-tree-view/swirl-tree-view.stories.js +36 -0
  18. package/dist/collection/components/swirl-tree-view-item/swirl-tree-view-item.css +127 -0
  19. package/dist/collection/components/swirl-tree-view-item/swirl-tree-view-item.js +300 -0
  20. package/dist/collection/components/swirl-tree-view-item/swirl-tree-view-item.spec.js +66 -0
  21. package/dist/collection/components/swirl-tree-view-item/swirl-tree-view-item.stories.js +23 -0
  22. package/dist/collection/components/swirl-video-thumbnail/swirl-video-thumbnail.js +1 -1
  23. package/dist/collection/components/swirl-visually-hidden/swirl-visually-hidden.js +1 -1
  24. package/dist/collection/prototypes/file-manager/file-manager.js +1 -1
  25. package/dist/components/assets/pdfjs/pdf.worker.min.js +1 -1
  26. package/dist/components/file-manager.js +1 -1
  27. package/dist/components/index.js +4 -0
  28. package/dist/components/index2.js +4 -4
  29. package/dist/components/swirl-accordion-item.js +2 -2
  30. package/dist/components/swirl-action-list-item2.js +2 -2
  31. package/dist/components/swirl-app-bar.js +2 -2
  32. package/dist/components/swirl-app-icon.js +2 -2
  33. package/dist/components/swirl-app-layout2.js +2 -2
  34. package/dist/components/swirl-autocomplete.js +2 -2
  35. package/dist/components/swirl-avatar-group.js +3 -3
  36. package/dist/components/swirl-avatar.js +4 -4
  37. package/dist/components/swirl-badge2.js +2 -2
  38. package/dist/components/swirl-banner.js +2 -2
  39. package/dist/components/swirl-box2.js +2 -2
  40. package/dist/components/swirl-button-group2.js +2 -2
  41. package/dist/components/swirl-button2.js +2 -2
  42. package/dist/components/swirl-card.js +2 -2
  43. package/dist/components/swirl-carousel-slide.js +2 -2
  44. package/dist/components/swirl-checkbox.js +2 -2
  45. package/dist/components/swirl-chip.js +2 -2
  46. package/dist/components/swirl-color-input.js +2 -2
  47. package/dist/components/swirl-console-layout.js +2 -2
  48. package/dist/components/swirl-date-input.js +2 -2
  49. package/dist/components/swirl-description-list-item.js +2 -2
  50. package/dist/components/swirl-dialog.js +2 -2
  51. package/dist/components/swirl-emoji-clap.js +2 -2
  52. package/dist/components/swirl-emoji-happy.js +2 -2
  53. package/dist/components/swirl-emoji-idea.js +2 -2
  54. package/dist/components/swirl-emoji-love.js +2 -2
  55. package/dist/components/swirl-emoji-sad.js +2 -2
  56. package/dist/components/swirl-emoji-thumbs-up.js +2 -2
  57. package/dist/components/swirl-empty-state2.js +2 -2
  58. package/dist/components/swirl-file-uploader.js +2 -2
  59. package/dist/components/swirl-file-viewer-pdf2.js +2 -2
  60. package/dist/components/swirl-form-control.js +2 -2
  61. package/dist/components/swirl-form-group.js +2 -2
  62. package/dist/components/swirl-heading2.js +2 -2
  63. package/dist/components/swirl-icon-add-moderator.js +2 -2
  64. package/dist/components/swirl-icon-add-photo.js +2 -2
  65. package/dist/components/swirl-icon-add-reaction.js +2 -2
  66. package/dist/components/swirl-icon-add2.js +2 -2
  67. package/dist/components/swirl-icon-admin-panel-settings.js +2 -2
  68. package/dist/components/swirl-icon-ai.js +2 -2
  69. package/dist/components/swirl-icon-apps.js +2 -2
  70. package/dist/components/swirl-icon-arrow-back2.js +2 -2
  71. package/dist/components/swirl-icon-arrow-downward2.js +2 -2
  72. package/dist/components/swirl-icon-arrow-forward2.js +2 -2
  73. package/dist/components/swirl-icon-arrow-left2.js +2 -2
  74. package/dist/components/swirl-icon-arrow-right-small.js +2 -2
  75. package/dist/components/swirl-icon-arrow-right2.js +2 -2
  76. package/dist/components/swirl-icon-arrow-upward2.js +2 -2
  77. package/dist/components/swirl-icon-aspect-ratio.js +2 -2
  78. package/dist/components/swirl-icon-attachment.js +2 -2
  79. package/dist/components/swirl-icon-bar-chart.js +2 -2
  80. package/dist/components/swirl-icon-block.js +2 -2
  81. package/dist/components/swirl-icon-bookmark-filled.js +2 -2
  82. package/dist/components/swirl-icon-bookmark.js +2 -2
  83. package/dist/components/swirl-icon-cancel2.js +2 -2
  84. package/dist/components/swirl-icon-chat-bubble.js +2 -2
  85. package/dist/components/swirl-icon-chats-filled.js +2 -2
  86. package/dist/components/swirl-icon-chats.js +2 -2
  87. package/dist/components/swirl-icon-check-circle2.js +2 -2
  88. package/dist/components/swirl-icon-check-small2.js +2 -2
  89. package/dist/components/swirl-icon-check-strong2.js +2 -2
  90. package/dist/components/swirl-icon-check.js +2 -2
  91. package/dist/components/swirl-icon-chevron-left.js +2 -2
  92. package/dist/components/swirl-icon-chevron-right.js +1 -40
  93. package/dist/components/swirl-icon-chevron-right2.js +42 -0
  94. package/dist/components/swirl-icon-close-small.js +2 -2
  95. package/dist/components/swirl-icon-close2.js +2 -2
  96. package/dist/components/swirl-icon-cloud-upload2.js +2 -2
  97. package/dist/components/swirl-icon-column.js +2 -2
  98. package/dist/components/swirl-icon-comment.js +2 -2
  99. package/dist/components/swirl-icon-copy.js +2 -2
  100. package/dist/components/swirl-icon-crop.js +2 -2
  101. package/dist/components/swirl-icon-dark-mode.js +2 -2
  102. package/dist/components/swirl-icon-date-range.js +2 -2
  103. package/dist/components/swirl-icon-delete.js +2 -2
  104. package/dist/components/swirl-icon-description.js +2 -2
  105. package/dist/components/swirl-icon-desktop.js +2 -2
  106. package/dist/components/swirl-icon-directory-filled.js +2 -2
  107. package/dist/components/swirl-icon-directory.js +2 -2
  108. package/dist/components/swirl-icon-discover.js +2 -2
  109. package/dist/components/swirl-icon-dock-left-collapse2.js +2 -2
  110. package/dist/components/swirl-icon-dock-left-expand2.js +2 -2
  111. package/dist/components/swirl-icon-dock-left.js +2 -2
  112. package/dist/components/swirl-icon-dot.js +2 -2
  113. package/dist/components/swirl-icon-double-arrow-left2.js +2 -2
  114. package/dist/components/swirl-icon-double-arrow-right.js +2 -2
  115. package/dist/components/swirl-icon-download.js +2 -2
  116. package/dist/components/swirl-icon-drag-handle2.js +2 -2
  117. package/dist/components/swirl-icon-edit.js +2 -2
  118. package/dist/components/swirl-icon-emoji-mood.js +2 -2
  119. package/dist/components/swirl-icon-emoji-satisfied.js +2 -2
  120. package/dist/components/swirl-icon-error2.js +2 -2
  121. package/dist/components/swirl-icon-expand-less2.js +2 -2
  122. package/dist/components/swirl-icon-expand-more2.js +2 -2
  123. package/dist/components/swirl-icon-experiment.js +2 -2
  124. package/dist/components/swirl-icon-file-copy2.js +2 -2
  125. package/dist/components/swirl-icon-file2.js +2 -2
  126. package/dist/components/swirl-icon-filter.js +2 -2
  127. package/dist/components/swirl-icon-folder-shared2.js +2 -2
  128. package/dist/components/swirl-icon-folder.js +2 -2
  129. package/dist/components/swirl-icon-format-h-one.js +2 -2
  130. package/dist/components/swirl-icon-fullscreen-exit2.js +2 -2
  131. package/dist/components/swirl-icon-fullscreen2.js +2 -2
  132. package/dist/components/swirl-icon-gif.js +2 -2
  133. package/dist/components/swirl-icon-group-add.js +2 -2
  134. package/dist/components/swirl-icon-group-assign.js +2 -2
  135. package/dist/components/swirl-icon-groups-filled.js +2 -2
  136. package/dist/components/swirl-icon-groups.js +2 -2
  137. package/dist/components/swirl-icon-hamburger-menu.js +2 -2
  138. package/dist/components/swirl-icon-help2.js +2 -2
  139. package/dist/components/swirl-icon-highlight.js +2 -2
  140. package/dist/components/swirl-icon-history.js +2 -2
  141. package/dist/components/swirl-icon-home.js +2 -2
  142. package/dist/components/swirl-icon-image.js +2 -2
  143. package/dist/components/swirl-icon-improve-text.js +2 -2
  144. package/dist/components/swirl-icon-info2.js +2 -2
  145. package/dist/components/swirl-icon-insert-below.js +2 -2
  146. package/dist/components/swirl-icon-insert-on-top.js +2 -2
  147. package/dist/components/swirl-icon-inventory.js +2 -2
  148. package/dist/components/swirl-icon-keyboard-hide.js +2 -2
  149. package/dist/components/swirl-icon-keyboard.js +2 -2
  150. package/dist/components/swirl-icon-light-mode.js +2 -2
  151. package/dist/components/swirl-icon-like.js +2 -2
  152. package/dist/components/swirl-icon-link.js +2 -2
  153. package/dist/components/swirl-icon-load.js +2 -2
  154. package/dist/components/swirl-icon-lock-open.js +2 -2
  155. package/dist/components/swirl-icon-lock-person.js +2 -2
  156. package/dist/components/swirl-icon-lock.js +2 -2
  157. package/dist/components/swirl-icon-login.js +2 -2
  158. package/dist/components/swirl-icon-logout.js +2 -2
  159. package/dist/components/swirl-icon-long-text.js +2 -2
  160. package/dist/components/swirl-icon-mail.js +2 -2
  161. package/dist/components/swirl-icon-manage-accounts.js +2 -2
  162. package/dist/components/swirl-icon-mark-chat-read.js +2 -2
  163. package/dist/components/swirl-icon-mark-chat-unread.js +2 -2
  164. package/dist/components/swirl-icon-mention.js +2 -2
  165. package/dist/components/swirl-icon-menu-book2.js +2 -2
  166. package/dist/components/swirl-icon-menu-filled.js +2 -2
  167. package/dist/components/swirl-icon-menu.js +2 -2
  168. package/dist/components/swirl-icon-message.js +2 -2
  169. package/dist/components/swirl-icon-mic-off.js +2 -2
  170. package/dist/components/swirl-icon-mic.js +2 -2
  171. package/dist/components/swirl-icon-more-horizontal.js +2 -2
  172. package/dist/components/swirl-icon-more-vertikal2.js +2 -2
  173. package/dist/components/swirl-icon-news-filled.js +2 -2
  174. package/dist/components/swirl-icon-news-off.js +2 -2
  175. package/dist/components/swirl-icon-news.js +2 -2
  176. package/dist/components/swirl-icon-notifications-active.js +2 -2
  177. package/dist/components/swirl-icon-notifications-off.js +2 -2
  178. package/dist/components/swirl-icon-notifications.js +2 -2
  179. package/dist/components/swirl-icon-open-in-full.js +2 -2
  180. package/dist/components/swirl-icon-open-in-new.js +2 -2
  181. package/dist/components/swirl-icon-pause-circle.js +2 -2
  182. package/dist/components/swirl-icon-pause.js +2 -2
  183. package/dist/components/swirl-icon-people-alt.js +2 -2
  184. package/dist/components/swirl-icon-person-off.js +2 -2
  185. package/dist/components/swirl-icon-person2.js +2 -2
  186. package/dist/components/swirl-icon-phone.js +2 -2
  187. package/dist/components/swirl-icon-photo-camera.js +2 -2
  188. package/dist/components/swirl-icon-pin-off.js +2 -2
  189. package/dist/components/swirl-icon-pin.js +2 -2
  190. package/dist/components/swirl-icon-place.js +2 -2
  191. package/dist/components/swirl-icon-play-arrow.js +2 -2
  192. package/dist/components/swirl-icon-poll.js +2 -2
  193. package/dist/components/swirl-icon-print.js +2 -2
  194. package/dist/components/swirl-icon-public-off.js +2 -2
  195. package/dist/components/swirl-icon-public.js +2 -2
  196. package/dist/components/swirl-icon-ratio-four-to-three.js +2 -2
  197. package/dist/components/swirl-icon-ratio-freeform.js +2 -2
  198. package/dist/components/swirl-icon-ratio-sixteen-to-nine.js +2 -2
  199. package/dist/components/swirl-icon-ratio-square.js +2 -2
  200. package/dist/components/swirl-icon-ratio-three-to-four.js +2 -2
  201. package/dist/components/swirl-icon-ratio-three-to-two.js +2 -2
  202. package/dist/components/swirl-icon-recieved.js +2 -2
  203. package/dist/components/swirl-icon-remove-circle.js +2 -2
  204. package/dist/components/swirl-icon-remove-moderator.js +2 -2
  205. package/dist/components/swirl-icon-remove2.js +2 -2
  206. package/dist/components/swirl-icon-reply.js +2 -2
  207. package/dist/components/swirl-icon-report.js +2 -2
  208. package/dist/components/swirl-icon-roadmap.js +2 -2
  209. package/dist/components/swirl-icon-rotate-left.js +2 -2
  210. package/dist/components/swirl-icon-rotate-right.js +2 -2
  211. package/dist/components/swirl-icon-search-strong.js +2 -2
  212. package/dist/components/swirl-icon-search2.js +2 -2
  213. package/dist/components/swirl-icon-secure.js +2 -2
  214. package/dist/components/swirl-icon-send.js +2 -2
  215. package/dist/components/swirl-icon-settings.js +2 -2
  216. package/dist/components/swirl-icon-short-text.js +2 -2
  217. package/dist/components/swirl-icon-simplify.js +2 -2
  218. package/dist/components/swirl-icon-spellcheck.js +2 -2
  219. package/dist/components/swirl-icon-stop.js +2 -2
  220. package/dist/components/swirl-icon-sync.js +2 -2
  221. package/dist/components/swirl-icon-tasks-filled.js +2 -2
  222. package/dist/components/swirl-icon-tasks.js +2 -2
  223. package/dist/components/swirl-icon-terminal.js +2 -2
  224. package/dist/components/swirl-icon-time-filled.js +2 -2
  225. package/dist/components/swirl-icon-time.js +2 -2
  226. package/dist/components/swirl-icon-today-filled.js +2 -2
  227. package/dist/components/swirl-icon-today2.js +2 -2
  228. package/dist/components/swirl-icon-translate.js +2 -2
  229. package/dist/components/swirl-icon-tree-structure.js +2 -2
  230. package/dist/components/swirl-icon-undo.js +2 -2
  231. package/dist/components/swirl-icon-unlock-person.js +2 -2
  232. package/dist/components/swirl-icon-user-add.js +2 -2
  233. package/dist/components/swirl-icon-user-assign.js +2 -2
  234. package/dist/components/swirl-icon-video-camera-off.js +2 -2
  235. package/dist/components/swirl-icon-video-camera.js +2 -2
  236. package/dist/components/swirl-icon-video-library.js +2 -2
  237. package/dist/components/swirl-icon-visibility-off2.js +2 -2
  238. package/dist/components/swirl-icon-visibility2.js +2 -2
  239. package/dist/components/swirl-icon-voice.js +2 -2
  240. package/dist/components/swirl-icon-warning2.js +2 -2
  241. package/dist/components/swirl-icon-web-asset-off.js +2 -2
  242. package/dist/components/swirl-icon-web-asset.js +2 -2
  243. package/dist/components/swirl-icon-work.js +2 -2
  244. package/dist/components/swirl-image-grid-item.js +2 -2
  245. package/dist/components/swirl-image-grid.js +2 -2
  246. package/dist/components/swirl-inline-error2.js +2 -2
  247. package/dist/components/swirl-inline-notification.js +2 -2
  248. package/dist/components/swirl-inline-status.js +2 -2
  249. package/dist/components/swirl-lightbox.js +2 -2
  250. package/dist/components/swirl-link.js +2 -2
  251. package/dist/components/swirl-menu-item.js +2 -2
  252. package/dist/components/swirl-menu.js +2 -2
  253. package/dist/components/swirl-modal.js +2 -2
  254. package/dist/components/swirl-option-list-item2.js +2 -2
  255. package/dist/components/swirl-pagination.js +2 -2
  256. package/dist/components/swirl-pdf-reader.js +3 -3
  257. package/dist/components/swirl-popover2.js +2 -2
  258. package/dist/components/swirl-progress-indicator2.js +2 -2
  259. package/dist/components/swirl-radio.js +2 -2
  260. package/dist/components/swirl-resource-list-file-item.js +2 -2
  261. package/dist/components/swirl-resource-list-item2.js +2 -2
  262. package/dist/components/swirl-search.js +2 -2
  263. package/dist/components/swirl-select.js +2 -2
  264. package/dist/components/swirl-separator2.js +2 -2
  265. package/dist/components/swirl-shell-layout.js +2 -2
  266. package/dist/components/swirl-shell-navigation-item.js +3 -3
  267. package/dist/components/swirl-skeleton-box.js +2 -2
  268. package/dist/components/swirl-skeleton-text.js +3 -3
  269. package/dist/components/swirl-spinner2.js +2 -2
  270. package/dist/components/swirl-stack2.js +2 -2
  271. package/dist/components/swirl-status-indicator.js +2 -2
  272. package/dist/components/swirl-switch.js +2 -2
  273. package/dist/components/swirl-symbol-account-circle.js +2 -2
  274. package/dist/components/swirl-symbol-alternate-email.js +2 -2
  275. package/dist/components/swirl-symbol-android.js +2 -2
  276. package/dist/components/swirl-symbol-announcement.js +2 -2
  277. package/dist/components/swirl-symbol-backup.js +2 -2
  278. package/dist/components/swirl-symbol-beach-access.js +2 -2
  279. package/dist/components/swirl-symbol-bookmark.js +2 -2
  280. package/dist/components/swirl-symbol-cloud.js +2 -2
  281. package/dist/components/swirl-symbol-coronavirus.js +2 -2
  282. package/dist/components/swirl-symbol-desktop-windows.js +2 -2
  283. package/dist/components/swirl-symbol-directions-car-filled.js +2 -2
  284. package/dist/components/swirl-symbol-edit-calendar.js +2 -2
  285. package/dist/components/swirl-symbol-email.js +2 -2
  286. package/dist/components/swirl-symbol-emoji-food-beverage.js +2 -2
  287. package/dist/components/swirl-symbol-event-menu.js +2 -2
  288. package/dist/components/swirl-symbol-facebook.js +2 -2
  289. package/dist/components/swirl-symbol-favorite.js +2 -2
  290. package/dist/components/swirl-symbol-fitness-center.js +2 -2
  291. package/dist/components/swirl-symbol-flag.js +2 -2
  292. package/dist/components/swirl-symbol-folder.js +2 -2
  293. package/dist/components/swirl-symbol-globe.js +2 -2
  294. package/dist/components/swirl-symbol-groups.js +2 -2
  295. package/dist/components/swirl-symbol-help.js +2 -2
  296. package/dist/components/swirl-symbol-image.js +2 -2
  297. package/dist/components/swirl-symbol-info-menu.js +2 -2
  298. package/dist/components/swirl-symbol-instagram.js +2 -2
  299. package/dist/components/swirl-symbol-ios.js +2 -2
  300. package/dist/components/swirl-symbol-language.js +2 -2
  301. package/dist/components/swirl-symbol-leaderboard.js +2 -2
  302. package/dist/components/swirl-symbol-lightbulb.js +2 -2
  303. package/dist/components/swirl-symbol-linkedin.js +2 -2
  304. package/dist/components/swirl-symbol-location-on.js +2 -2
  305. package/dist/components/swirl-symbol-loyalty.js +2 -2
  306. package/dist/components/swirl-symbol-maps-home-work.js +2 -2
  307. package/dist/components/swirl-symbol-notifications.js +2 -2
  308. package/dist/components/swirl-symbol-open-in-new.js +2 -2
  309. package/dist/components/swirl-symbol-pedal-bike.js +2 -2
  310. package/dist/components/swirl-symbol-pinterest.js +2 -2
  311. package/dist/components/swirl-symbol-policy.js +2 -2
  312. package/dist/components/swirl-symbol-push-pin.js +2 -2
  313. package/dist/components/swirl-symbol-redeem.js +2 -2
  314. package/dist/components/swirl-symbol-report-problem.js +2 -2
  315. package/dist/components/swirl-symbol-restaurant.js +2 -2
  316. package/dist/components/swirl-symbol-roadmap.js +2 -2
  317. package/dist/components/swirl-symbol-room.js +2 -2
  318. package/dist/components/swirl-symbol-savings.js +2 -2
  319. package/dist/components/swirl-symbol-settings-voice.js +2 -2
  320. package/dist/components/swirl-symbol-shopping-cart.js +2 -2
  321. package/dist/components/swirl-symbol-smartphone.js +2 -2
  322. package/dist/components/swirl-symbol-star.js +2 -2
  323. package/dist/components/swirl-symbol-supervisor-account.js +2 -2
  324. package/dist/components/swirl-symbol-thumbs-up-down.js +2 -2
  325. package/dist/components/swirl-symbol-twitter.js +2 -2
  326. package/dist/components/swirl-symbol-wb-sunny.js +2 -2
  327. package/dist/components/swirl-symbol-wechat.js +2 -2
  328. package/dist/components/swirl-symbol-weibo.js +2 -2
  329. package/dist/components/swirl-symbol-work.js +2 -2
  330. package/dist/components/swirl-symbol-xing.js +2 -2
  331. package/dist/components/swirl-symbol-youtube.js +2 -2
  332. package/dist/components/swirl-tab-bar2.js +3 -3
  333. package/dist/components/swirl-tab.js +2 -2
  334. package/dist/components/swirl-table-row.js +2 -2
  335. package/dist/components/swirl-tag2.js +2 -2
  336. package/dist/components/swirl-text-input2.js +2 -2
  337. package/dist/components/swirl-text2.js +2 -2
  338. package/dist/components/swirl-thumbnail2.js +2 -2
  339. package/dist/components/swirl-time-input.js +2 -2
  340. package/dist/components/swirl-toast2.js +2 -2
  341. package/dist/components/swirl-tooltip2.js +2 -2
  342. package/dist/components/swirl-tree-navigation-item.js +2 -2
  343. package/dist/components/swirl-tree-view-item.d.ts +11 -0
  344. package/dist/components/swirl-tree-view-item.js +132 -0
  345. package/dist/components/swirl-tree-view.d.ts +11 -0
  346. package/dist/components/swirl-tree-view.js +230 -0
  347. package/dist/components/swirl-video-thumbnail.js +1 -1
  348. package/dist/components/swirl-visually-hidden2.js +1 -1
  349. package/dist/esm/file-manager.entry.js +1 -1
  350. package/dist/esm/index-2d054a87.js +20 -12
  351. package/dist/esm/loader.js +1 -1
  352. package/dist/esm/swirl-components.js +1 -1
  353. package/dist/esm/swirl-tree-view-item.entry.js +83 -0
  354. package/dist/esm/swirl-tree-view.entry.js +208 -0
  355. package/dist/esm/swirl-video-thumbnail.entry.js +1 -1
  356. package/dist/esm/swirl-visually-hidden.entry.js +1 -1
  357. package/dist/swirl-components/{p-587a0bab.entry.js → p-06335e41.entry.js} +1 -1
  358. package/dist/swirl-components/p-77357e84.entry.js +1 -0
  359. package/dist/swirl-components/{p-d2cf7884.entry.js → p-a6d1f15d.entry.js} +1 -1
  360. package/dist/swirl-components/p-e1aab223.entry.js +1 -0
  361. package/dist/swirl-components/p-fb443d8f.entry.js +1 -0
  362. package/dist/swirl-components/swirl-components.esm.js +1 -1
  363. package/dist/types/components/swirl-tree-view/swirl-tree-view.d.ts +30 -0
  364. package/dist/types/components/swirl-tree-view/swirl-tree-view.stories.d.ts +14 -0
  365. package/dist/types/components/swirl-tree-view-item/swirl-tree-view-item.d.ts +30 -0
  366. package/dist/types/components/swirl-tree-view-item/swirl-tree-view-item.stories.d.ts +14 -0
  367. package/dist/types/components.d.ts +79 -0
  368. package/package.json +1 -1
  369. package/vscode-data.json +42 -0
  370. package/dist/swirl-components/p-b547bb55.entry.js +0 -1
@@ -344,6 +344,8 @@
344
344
  "components/swirl-theme-provider/swirl-theme-provider.js",
345
345
  "components/swirl-time-input/swirl-time-input.js",
346
346
  "components/swirl-tree-navigation-item/swirl-tree-navigation-item.js",
347
+ "components/swirl-tree-view-item/swirl-tree-view-item.js",
348
+ "components/swirl-tree-view/swirl-tree-view.js",
347
349
  "components/swirl-video-thumbnail/swirl-video-thumbnail.js",
348
350
  "components/swirl-visually-hidden/swirl-visually-hidden.js",
349
351
  "prototypes/file-manager/file-manager.js"
@@ -19,6 +19,6 @@ describe("swirl-shell-layout", () => {
19
19
  <div slot="sidebar">Sidebar</div>
20
20
  </swirl-shell-layout>`,
21
21
  });
22
- 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><div class=\\"shell-layout__secondary-nav-items\\"></div></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>"`);
22
+ 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\\"><swirl-tooltip content=\\"Collapse navigation\\" delay=\\"100\\" position=\\"right\\"><button class=\\"shell-layout__header-tool\\" type=\\"button\\"><swirl-icon-dock-left-collapse size=\\"20\\"></swirl-icon-dock-left-collapse><swirl-visually-hidden>Collapse navigation</swirl-visually-hidden></button></swirl-tooltip><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><div class=\\"shell-layout__secondary-nav-items\\"></div></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>"`);
23
23
  });
24
24
  });
@@ -12,7 +12,7 @@ describe("swirl-shell-navigation-item", () => {
12
12
  expect(page.root).toMatchInlineSnapshot(`
13
13
  <swirl-shell-navigation-item label="Label">
14
14
  <mock:shadow-root>
15
- <swirl-tooltip content="Label" delay="200" position="right" positioning="fixed">
15
+ <swirl-tooltip content="Label" delay="100" position="right" positioning="fixed">
16
16
  <button class="shell-navigation-item" type="button">
17
17
  <span class="shell-navigation-item__icon">
18
18
  <slot name="icon"></slot>
@@ -0,0 +1,15 @@
1
+ :host {
2
+ display: block;
3
+ }
4
+
5
+ :host * {
6
+ box-sizing: border-box;
7
+ }
8
+
9
+ .tree-view {
10
+ display: flex;
11
+ margin: 0;
12
+ padding: 0;
13
+ flex-direction: column;
14
+ gap: var(--s-space-2);
15
+ }
@@ -0,0 +1,314 @@
1
+ import { h, Host, } from "@stencil/core";
2
+ /**
3
+ * @slot slot - The tree view items
4
+ */
5
+ export class SwirlTreeView {
6
+ constructor() {
7
+ this.onSlotChange = () => {
8
+ this.init();
9
+ };
10
+ this.initiallyExpandedItemIds = undefined;
11
+ this.label = undefined;
12
+ }
13
+ componentDidLoad() {
14
+ if (Boolean(this.initiallyExpandedItemIds)) {
15
+ this.expandItems(this.initiallyExpandedItemIds);
16
+ }
17
+ this.init();
18
+ }
19
+ async expandItems(itemIds) {
20
+ const items = this.getItems().filter((item) => itemIds.includes(item.id));
21
+ items.forEach((item) => item.expand());
22
+ }
23
+ onKeyDown(event) {
24
+ if (event.key === "ArrowDown") {
25
+ event.preventDefault();
26
+ this.selectNextItem();
27
+ }
28
+ else if (event.key === "ArrowUp") {
29
+ event.preventDefault();
30
+ this.selectPreviousItem();
31
+ }
32
+ else if (event.key === "ArrowRight") {
33
+ event.preventDefault();
34
+ this.expandSelectedItem();
35
+ }
36
+ else if (event.key === "ArrowLeft") {
37
+ event.preventDefault();
38
+ this.collapseSelectedItem();
39
+ }
40
+ else if (event.key === "Home") {
41
+ event.preventDefault();
42
+ this.selectFirstItem();
43
+ }
44
+ else if (event.key === "End") {
45
+ event.preventDefault();
46
+ this.selectLastItem();
47
+ }
48
+ }
49
+ onItemSelected(event) {
50
+ this.getItems().forEach((item) => {
51
+ if (item !== event.target) {
52
+ item.unselect();
53
+ }
54
+ });
55
+ }
56
+ onExpandedChange(event) {
57
+ const expandedItemIds = this.getItems()
58
+ .filter((item) => this.isItemExpanded(item))
59
+ .map((item) => item.id);
60
+ const changedItemGotExpanded = !Boolean(event.target.querySelector(':scope > li > [aria-expanded="true"]'));
61
+ if (changedItemGotExpanded) {
62
+ expandedItemIds.push(event.target.id);
63
+ }
64
+ else {
65
+ expandedItemIds.splice(expandedItemIds.indexOf(event.target.id), 1);
66
+ }
67
+ this.expandedItemsChanged.emit(expandedItemIds);
68
+ }
69
+ init() {
70
+ const selectedItem = this.getSelectedItem();
71
+ const allItems = this.getItems();
72
+ allItems.forEach((item) => item.unselect());
73
+ if (Boolean(selectedItem)) {
74
+ selectedItem.select();
75
+ }
76
+ else {
77
+ allItems[0]?.select();
78
+ }
79
+ }
80
+ selectFirstItem() {
81
+ this.unselectAllItems();
82
+ this.getItems()[0]?.select(true);
83
+ }
84
+ selectLastItem() {
85
+ const allItems = this.getItems();
86
+ const lastVisibleItem = allItems
87
+ .filter((item) => item.parentElement
88
+ .closest("swirl-tree-view-item")
89
+ ?.querySelector(':scope > li > [aria-expanded="true"]') ||
90
+ !Boolean(item.parentElement.closest("swirl-tree-view-item")))
91
+ .pop();
92
+ this.unselectAllItems();
93
+ lastVisibleItem?.select(true);
94
+ }
95
+ expandSelectedItem() {
96
+ const selectedItem = this.getSelectedItem();
97
+ if (!Boolean(selectedItem)) {
98
+ return;
99
+ }
100
+ const isExpanded = this.isItemExpanded(selectedItem);
101
+ if (isExpanded) {
102
+ this.selectNextItem();
103
+ }
104
+ else {
105
+ selectedItem.expand();
106
+ }
107
+ }
108
+ collapseSelectedItem() {
109
+ const selectedItem = this.getSelectedItem();
110
+ if (!Boolean(selectedItem)) {
111
+ return;
112
+ }
113
+ const isExpanded = this.isItemExpanded(selectedItem);
114
+ if (isExpanded) {
115
+ selectedItem.collapse();
116
+ }
117
+ else {
118
+ const parent = selectedItem.parentElement.closest("swirl-tree-view-item");
119
+ if (!Boolean(parent)) {
120
+ return;
121
+ }
122
+ this.unselectAllItems();
123
+ parent.select(true);
124
+ }
125
+ }
126
+ selectNextItem() {
127
+ const selectedItem = this.getSelectedItem();
128
+ const selectedItemExpanded = this.isItemExpanded(selectedItem);
129
+ const nextSibling = this.getNextSibling(selectedItem);
130
+ let parent = selectedItem.parentElement.closest("swirl-tree-view-item");
131
+ let nextSiblingOfParent = this.getNextSibling(parent);
132
+ while (Boolean(parent) && !Boolean(nextSiblingOfParent)) {
133
+ parent = parent?.parentElement.closest("swirl-tree-view-item, swirl-tree-view");
134
+ nextSiblingOfParent = this.getNextSibling(parent);
135
+ }
136
+ const firstChild = selectedItem.querySelector("swirl-tree-view-item");
137
+ const nextItem = selectedItemExpanded
138
+ ? firstChild
139
+ : nextSibling || nextSiblingOfParent;
140
+ if (!Boolean(nextItem)) {
141
+ return;
142
+ }
143
+ this.unselectAllItems();
144
+ nextItem.select?.(true);
145
+ }
146
+ selectPreviousItem() {
147
+ const allItems = this.getItems();
148
+ const selectedItem = this.getSelectedItem();
149
+ const previousSibling = this.getPreviousSibling(selectedItem);
150
+ const previousSiblingExpanded = Boolean(previousSibling?.querySelector('[aria-expanded="true"]'));
151
+ // find the last child of the nested previous sibling
152
+ if (previousSiblingExpanded) {
153
+ let lastChildOfNestedPreviousSibling = previousSibling?.querySelector(":scope > li > ul > swirl-tree-view-item:last-child, :scope > li > ul > *:last-child > swirl-tree-view-item");
154
+ let lastChildOfNestedPreviousSiblingExpanded = Boolean(lastChildOfNestedPreviousSibling?.querySelector('[aria-expanded="true"]'));
155
+ while (lastChildOfNestedPreviousSiblingExpanded) {
156
+ lastChildOfNestedPreviousSibling =
157
+ lastChildOfNestedPreviousSibling?.querySelector(":scope > li > ul > swirl-tree-view-item:last-child, :scope > li > ul > *:last-child > swirl-tree-view-item");
158
+ lastChildOfNestedPreviousSiblingExpanded = Boolean(lastChildOfNestedPreviousSibling?.querySelector('[aria-expanded="true"]'));
159
+ }
160
+ allItems.forEach((item) => item.unselect());
161
+ lastChildOfNestedPreviousSibling.select?.(true);
162
+ return;
163
+ }
164
+ const parent = selectedItem.parentElement.closest("swirl-tree-view-item");
165
+ const previousItem = previousSibling || parent;
166
+ if (!Boolean(previousItem)) {
167
+ return;
168
+ }
169
+ allItems.forEach((item) => item.unselect());
170
+ previousItem.select?.(true);
171
+ }
172
+ unselectAllItems() {
173
+ this.getItems().forEach((item) => item.unselect());
174
+ }
175
+ getItems() {
176
+ return Array.from(this.el.querySelectorAll("swirl-tree-view-item"));
177
+ }
178
+ getSelectedItem() {
179
+ return this.getItems().find((item) => item.querySelector("a")?.getAttribute("aria-selected") === "true");
180
+ }
181
+ isItemExpanded(item) {
182
+ return Boolean(item.querySelector(':scope > li > [aria-expanded="true"]'));
183
+ }
184
+ getNextSibling(item) {
185
+ if (item?.nextElementSibling?.tagName === "SWIRL-TREE-VIEW-ITEM") {
186
+ return item.nextElementSibling;
187
+ }
188
+ const nestedSibling = item?.parentElement?.nextElementSibling?.querySelector("swirl-tree-view-item");
189
+ return nestedSibling ?? undefined;
190
+ }
191
+ getPreviousSibling(item) {
192
+ if (item?.previousElementSibling?.tagName === "SWIRL-TREE-VIEW-ITEM") {
193
+ return item.previousElementSibling;
194
+ }
195
+ const nestedSibling = item?.parentElement?.previousElementSibling?.querySelector("swirl-tree-view-item");
196
+ return nestedSibling ?? undefined;
197
+ }
198
+ render() {
199
+ return (h(Host, { key: '339267c7110db49dfa92d4e36ea7359666969819' }, h("ul", { key: '730cceb516e83f1ef72c8552fc26a510d225f069', "aria-label": this.label, class: "tree-view", role: "tree" }, h("slot", { key: 'dcde56962d621cfc40a170b80f9b8137809bf59e', onSlotchange: this.onSlotChange }))));
200
+ }
201
+ static get is() { return "swirl-tree-view"; }
202
+ static get encapsulation() { return "shadow"; }
203
+ static get originalStyleUrls() {
204
+ return {
205
+ "$": ["swirl-tree-view.css"]
206
+ };
207
+ }
208
+ static get styleUrls() {
209
+ return {
210
+ "$": ["swirl-tree-view.css"]
211
+ };
212
+ }
213
+ static get properties() {
214
+ return {
215
+ "initiallyExpandedItemIds": {
216
+ "type": "unknown",
217
+ "mutable": false,
218
+ "complexType": {
219
+ "original": "string[]",
220
+ "resolved": "string[]",
221
+ "references": {}
222
+ },
223
+ "required": false,
224
+ "optional": true,
225
+ "docs": {
226
+ "tags": [],
227
+ "text": ""
228
+ }
229
+ },
230
+ "label": {
231
+ "type": "string",
232
+ "mutable": false,
233
+ "complexType": {
234
+ "original": "string",
235
+ "resolved": "string",
236
+ "references": {}
237
+ },
238
+ "required": true,
239
+ "optional": false,
240
+ "docs": {
241
+ "tags": [],
242
+ "text": ""
243
+ },
244
+ "attribute": "label",
245
+ "reflect": false
246
+ }
247
+ };
248
+ }
249
+ static get events() {
250
+ return [{
251
+ "method": "expandedItemsChanged",
252
+ "name": "expandedItemsChanged",
253
+ "bubbles": true,
254
+ "cancelable": true,
255
+ "composed": true,
256
+ "docs": {
257
+ "tags": [],
258
+ "text": ""
259
+ },
260
+ "complexType": {
261
+ "original": "string[]",
262
+ "resolved": "string[]",
263
+ "references": {}
264
+ }
265
+ }];
266
+ }
267
+ static get methods() {
268
+ return {
269
+ "expandItems": {
270
+ "complexType": {
271
+ "signature": "(itemIds: string[]) => Promise<void>",
272
+ "parameters": [{
273
+ "name": "itemIds",
274
+ "type": "string[]",
275
+ "docs": ""
276
+ }],
277
+ "references": {
278
+ "Promise": {
279
+ "location": "global",
280
+ "id": "global::Promise"
281
+ }
282
+ },
283
+ "return": "Promise<void>"
284
+ },
285
+ "docs": {
286
+ "text": "",
287
+ "tags": []
288
+ }
289
+ }
290
+ };
291
+ }
292
+ static get elementRef() { return "el"; }
293
+ static get listeners() {
294
+ return [{
295
+ "name": "keydown",
296
+ "method": "onKeyDown",
297
+ "target": undefined,
298
+ "capture": false,
299
+ "passive": false
300
+ }, {
301
+ "name": "itemSelected",
302
+ "method": "onItemSelected",
303
+ "target": undefined,
304
+ "capture": false,
305
+ "passive": false
306
+ }, {
307
+ "name": "expandedChange",
308
+ "method": "onExpandedChange",
309
+ "target": undefined,
310
+ "capture": false,
311
+ "passive": false
312
+ }];
313
+ }
314
+ }
@@ -0,0 +1,193 @@
1
+ import { newSpecPage } from "@stencil/core/testing";
2
+ import { SwirlTreeViewItem } from "../swirl-tree-view-item/swirl-tree-view-item";
3
+ import { SwirlTreeView } from "./swirl-tree-view";
4
+ describe("swirl-tree-view", () => {
5
+ it("renders children", async () => {
6
+ const page = await newSpecPage({
7
+ components: [SwirlTreeView, SwirlTreeViewItem],
8
+ html: `
9
+ <swirl-tree-view label="Label">
10
+ <swirl-tree-view-item href="#" icon="🪁" id="item-1" label="Item 1">
11
+ <swirl-tree-view-item href="#" icon="🍄" id="item-2" label="Item 1.1"></swirl-tree-view-item>
12
+ <swirl-tree-view-item href="#" icon="🌎" id="item-3" label="Item 1.2">
13
+ <swirl-tree-view-item href="#" icon="❄️" id="item-4" label="Item 1.2.1"></swirl-tree-view-item>
14
+ <swirl-tree-view-item href="#" icon="🌭" id="item-5" label="Item 1.2.2"></swirl-tree-view-item>
15
+ </swirl-tree-view-item>
16
+ <swirl-tree-view-item href="#" icon="🎾" id="item-6" label="Item 1.3"></swirl-tree-view-item>
17
+ </swirl-tree-view-item>
18
+ <swirl-tree-view-item href="#" icon="🎷" id="item-7" label="Item 2">
19
+ <swirl-tag bordered id="item-2" label="Draft" size="s" slot="tags"></swirl-tag>
20
+ </swirl-tree-view-item>
21
+ <swirl-tree-view-item href="#" icon="🎮" id="item-8" label="Item 3">
22
+ <swirl-tree-view-item href="#" icon="💈" id="item-9" label="Item 3.1"></swirl-tree-view-item>
23
+ </swirl-tree-view-item>
24
+ </swirl-tree-view>
25
+ `,
26
+ });
27
+ expect(page.root).toMatchInlineSnapshot(`
28
+ <swirl-tree-view label="Label">
29
+ <mock:shadow-root>
30
+ <ul aria-label="Label" class="tree-view" role="tree">
31
+ <slot></slot>
32
+ </ul>
33
+ </mock:shadow-root>
34
+ <swirl-tree-view-item href="#" icon="🪁" label="Item 1" role="none">
35
+ <!---->
36
+ <li class="tree-view-item" role="none">
37
+ <a aria-expanded="false" aria-level="1" aria-owns="undefined-children" aria-selected="true" class="tree-view-item__link" href="#" role="treeitem" tabindex="0" style="padding-left: calc(0 * var(--s-space-12) + var(--s-space-4));">
38
+ <span class="tree-view-item__toggle-icon">
39
+ <swirl-icon-chevron-right size="24"></swirl-icon-chevron-right>
40
+ </span>
41
+ <span class="tree-view-item__icon">
42
+ 🪁
43
+ </span>
44
+ <span class="tree-view-item__label">
45
+ Item 1
46
+ </span>
47
+ <span class="tree-view-item__tags"></span>
48
+ </a>
49
+ <ul aria-label="Item 1" class="tree-view-item__children" id="undefined-children" role="group" style="display: none;">
50
+ <swirl-tree-view-item href="#" icon="🍄" id="item-2" label="Item 1.1" role="none">
51
+ <!---->
52
+ <li class="tree-view-item" role="none">
53
+ <a aria-level="2" aria-selected="false" class="tree-view-item__link" href="#" role="treeitem" tabindex="-1" style="padding-left: calc(1 * var(--s-space-12) + var(--s-space-4));">
54
+ <span class="tree-view-item__toggle-icon"></span>
55
+ <span class="tree-view-item__icon">
56
+ 🍄
57
+ </span>
58
+ <span class="tree-view-item__label">
59
+ Item 1.1
60
+ </span>
61
+ <span class="tree-view-item__tags"></span>
62
+ </a>
63
+ <ul aria-label="Item 1.1" class="tree-view-item__children" id="undefined-children" role="group" style="display: none;"></ul>
64
+ </li>
65
+ </swirl-tree-view-item>
66
+ <swirl-tree-view-item href="#" icon="🌎" id="item-3" label="Item 1.2" role="none">
67
+ <!---->
68
+ <li class="tree-view-item" role="none">
69
+ <a aria-expanded="false" aria-level="2" aria-owns="undefined-children" aria-selected="false" class="tree-view-item__link" href="#" role="treeitem" tabindex="-1" style="padding-left: calc(1 * var(--s-space-12) + var(--s-space-4));">
70
+ <span class="tree-view-item__toggle-icon">
71
+ <swirl-icon-chevron-right size="24"></swirl-icon-chevron-right>
72
+ </span>
73
+ <span class="tree-view-item__icon">
74
+ 🌎
75
+ </span>
76
+ <span class="tree-view-item__label">
77
+ Item 1.2
78
+ </span>
79
+ <span class="tree-view-item__tags"></span>
80
+ </a>
81
+ <ul aria-label="Item 1.2" class="tree-view-item__children" id="undefined-children" role="group" style="display: none;">
82
+ <swirl-tree-view-item href="#" icon="❄️" id="item-4" label="Item 1.2.1" role="none">
83
+ <!---->
84
+ <li class="tree-view-item" role="none">
85
+ <a aria-level="3" aria-selected="false" class="tree-view-item__link" href="#" role="treeitem" tabindex="-1" style="padding-left: calc(2 * var(--s-space-12) + var(--s-space-4));">
86
+ <span class="tree-view-item__toggle-icon"></span>
87
+ <span class="tree-view-item__icon">
88
+ ❄️
89
+ </span>
90
+ <span class="tree-view-item__label">
91
+ Item 1.2.1
92
+ </span>
93
+ <span class="tree-view-item__tags"></span>
94
+ </a>
95
+ <ul aria-label="Item 1.2.1" class="tree-view-item__children" id="undefined-children" role="group" style="display: none;"></ul>
96
+ </li>
97
+ </swirl-tree-view-item>
98
+ <swirl-tree-view-item href="#" icon="🌭" id="item-5" label="Item 1.2.2" role="none">
99
+ <!---->
100
+ <li class="tree-view-item" role="none">
101
+ <a aria-level="3" aria-selected="false" class="tree-view-item__link" href="#" role="treeitem" tabindex="-1" style="padding-left: calc(2 * var(--s-space-12) + var(--s-space-4));">
102
+ <span class="tree-view-item__toggle-icon"></span>
103
+ <span class="tree-view-item__icon">
104
+ 🌭
105
+ </span>
106
+ <span class="tree-view-item__label">
107
+ Item 1.2.2
108
+ </span>
109
+ <span class="tree-view-item__tags"></span>
110
+ </a>
111
+ <ul aria-label="Item 1.2.2" class="tree-view-item__children" id="undefined-children" role="group" style="display: none;"></ul>
112
+ </li>
113
+ </swirl-tree-view-item>
114
+ </ul>
115
+ </li>
116
+ </swirl-tree-view-item>
117
+ <swirl-tree-view-item href="#" icon="🎾" id="item-6" label="Item 1.3" role="none">
118
+ <!---->
119
+ <li class="tree-view-item" role="none">
120
+ <a aria-level="2" aria-selected="false" class="tree-view-item__link" href="#" role="treeitem" tabindex="-1" style="padding-left: calc(1 * var(--s-space-12) + var(--s-space-4));">
121
+ <span class="tree-view-item__toggle-icon"></span>
122
+ <span class="tree-view-item__icon">
123
+ 🎾
124
+ </span>
125
+ <span class="tree-view-item__label">
126
+ Item 1.3
127
+ </span>
128
+ <span class="tree-view-item__tags"></span>
129
+ </a>
130
+ <ul aria-label="Item 1.3" class="tree-view-item__children" id="undefined-children" role="group" style="display: none;"></ul>
131
+ </li>
132
+ </swirl-tree-view-item>
133
+ </ul>
134
+ </li>
135
+ </swirl-tree-view-item>
136
+ <swirl-tree-view-item href="#" icon="🎷" id="item-7" label="Item 2" role="none">
137
+ <!---->
138
+ <li class="tree-view-item tree-view-item--has-tags" role="none">
139
+ <a aria-level="1" aria-selected="false" class="tree-view-item__link" href="#" role="treeitem" tabindex="-1" style="padding-left: calc(0 * var(--s-space-12) + var(--s-space-4));">
140
+ <span class="tree-view-item__toggle-icon"></span>
141
+ <span class="tree-view-item__icon">
142
+ 🎷
143
+ </span>
144
+ <span class="tree-view-item__label">
145
+ Item 2
146
+ </span>
147
+ <span class="tree-view-item__tags">
148
+ <swirl-tag bordered="" id="item-2" label="Draft" size="s" slot="tags"></swirl-tag>
149
+ </span>
150
+ </a>
151
+ <ul aria-label="Item 2" class="tree-view-item__children" id="undefined-children" role="group" style="display: none;">
152
+ </ul>
153
+ </li>
154
+ </swirl-tree-view-item>
155
+ <swirl-tree-view-item href="#" icon="🎮" id="item-8" label="Item 3" role="none">
156
+ <!---->
157
+ <li class="tree-view-item" role="none">
158
+ <a aria-expanded="false" aria-level="1" aria-owns="undefined-children" aria-selected="false" class="tree-view-item__link" href="#" role="treeitem" tabindex="-1" style="padding-left: calc(0 * var(--s-space-12) + var(--s-space-4));">
159
+ <span class="tree-view-item__toggle-icon">
160
+ <swirl-icon-chevron-right size="24"></swirl-icon-chevron-right>
161
+ </span>
162
+ <span class="tree-view-item__icon">
163
+ 🎮
164
+ </span>
165
+ <span class="tree-view-item__label">
166
+ Item 3
167
+ </span>
168
+ <span class="tree-view-item__tags"></span>
169
+ </a>
170
+ <ul aria-label="Item 3" class="tree-view-item__children" id="undefined-children" role="group" style="display: none;">
171
+ <swirl-tree-view-item href="#" icon="💈" id="item-9" label="Item 3.1" role="none">
172
+ <!---->
173
+ <li class="tree-view-item" role="none">
174
+ <a aria-level="2" aria-selected="false" class="tree-view-item__link" href="#" role="treeitem" tabindex="-1" style="padding-left: calc(1 * var(--s-space-12) + var(--s-space-4));">
175
+ <span class="tree-view-item__toggle-icon"></span>
176
+ <span class="tree-view-item__icon">
177
+ 💈
178
+ </span>
179
+ <span class="tree-view-item__label">
180
+ Item 3.1
181
+ </span>
182
+ <span class="tree-view-item__tags"></span>
183
+ </a>
184
+ <ul aria-label="Item 3.1" class="tree-view-item__children" id="undefined-children" role="group" style="display: none;"></ul>
185
+ </li>
186
+ </swirl-tree-view-item>
187
+ </ul>
188
+ </li>
189
+ </swirl-tree-view-item>
190
+ </swirl-tree-view>
191
+ `);
192
+ });
193
+ });
@@ -0,0 +1,36 @@
1
+ import { generateStoryElement } from "../../utils";
2
+ import Docs from "./swirl-tree-view.mdx";
3
+ export default {
4
+ component: "swirl-tree-view",
5
+ tags: ["autodocs"],
6
+ parameters: {
7
+ docs: {
8
+ page: Docs,
9
+ },
10
+ },
11
+ title: "Components/SwirlTreeView",
12
+ };
13
+ const Template = (args) => {
14
+ const element = generateStoryElement("swirl-tree-view", args);
15
+ element.innerHTML = `
16
+ <swirl-tree-view-item href="#" icon="🪁" item-id="item-1" label="Item 1">
17
+ <swirl-tree-view-item href="#" icon="🍄" item-id="item-2" label="Item 1.1"></swirl-tree-view-item>
18
+ <swirl-tree-view-item href="#" icon="🌎" item-id="item-3" label="Item 1.2">
19
+ <swirl-tree-view-item href="#" icon="❄️" item-id="item-4" label="Item 1.2.1"></swirl-tree-view-item>
20
+ <swirl-tree-view-item href="#" icon="🌭" item-id="item-5" label="Item 1.2.2"></swirl-tree-view-item>
21
+ </swirl-tree-view-item>
22
+ <swirl-tree-view-item href="#" icon="🎾" item-id="item-6" label="Item 1.3"></swirl-tree-view-item>
23
+ </swirl-tree-view-item>
24
+ <swirl-tree-view-item active href="#" icon="🎷" item-id="item-7" label="Item 2">
25
+ <swirl-tag bordered item-id="item-2" label="Draft" size="s" slot="tags"></swirl-tag>
26
+ </swirl-tree-view-item>
27
+ <swirl-tree-view-item href="#" icon="file" item-id="item-8" label="Item 3">
28
+ <swirl-tree-view-item href="#" icon="💈" item-id="item-9" label="Item 3.1"></swirl-tree-view-item>
29
+ </swirl-tree-view-item>
30
+ `;
31
+ return element;
32
+ };
33
+ export const SwirlTreeView = Template.bind({});
34
+ SwirlTreeView.args = {
35
+ label: "Tree view",
36
+ };