@redvars/peacock 3.8.1 → 3.8.2

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 (474) hide show
  1. package/dist/{BaseInput-14YmcfK7.js → BaseInput-CU1zZYKc.js} +3 -3
  2. package/dist/{BaseInput-14YmcfK7.js.map → BaseInput-CU1zZYKc.js.map} +1 -1
  3. package/dist/ButtonConstants-CahP2_NA.js +4 -0
  4. package/dist/ButtonConstants-CahP2_NA.js.map +1 -0
  5. package/dist/{IndividualComponent-DUINtMGK.js → IndividualComponent-Bdwyrvd6.js} +2 -2
  6. package/dist/{IndividualComponent-DUINtMGK.js.map → IndividualComponent-Bdwyrvd6.js.map} +1 -1
  7. package/dist/{NativeHyperlinkMixin-DrYXyfMQ.js → NativeHyperlinkMixin-D9J4aBTy.js} +4 -30
  8. package/dist/NativeHyperlinkMixin-D9J4aBTy.js.map +1 -0
  9. package/dist/accordion-item.js +338 -0
  10. package/dist/accordion-item.js.map +1 -0
  11. package/dist/accordion.js +159 -0
  12. package/dist/accordion.js.map +1 -0
  13. package/dist/alert.js +190 -0
  14. package/dist/alert.js.map +1 -0
  15. package/dist/app-bar.js +324 -0
  16. package/dist/app-bar.js.map +1 -0
  17. package/dist/assets/components.css +1 -1
  18. package/dist/assets/components.css.map +1 -1
  19. package/dist/assets/styles.css +1 -1
  20. package/dist/assets/styles.css.map +1 -1
  21. package/dist/attachable-controller-CAKVrfcG.js +119 -0
  22. package/dist/attachable-controller-CAKVrfcG.js.map +1 -0
  23. package/dist/avatar.js +114 -0
  24. package/dist/avatar.js.map +1 -0
  25. package/dist/badge.js +91 -0
  26. package/dist/badge.js.map +1 -0
  27. package/dist/base-Cl6v8-BZ.js +9 -0
  28. package/dist/base-Cl6v8-BZ.js.map +1 -0
  29. package/dist/bottom-sheet.js +14 -5
  30. package/dist/bottom-sheet.js.map +1 -1
  31. package/dist/breadcrumb-item.js +163 -0
  32. package/dist/breadcrumb-item.js.map +1 -0
  33. package/dist/breadcrumb.js +95 -0
  34. package/dist/breadcrumb.js.map +1 -0
  35. package/dist/button-group.js +87 -137
  36. package/dist/button-group.js.map +1 -1
  37. package/dist/button.js +863 -133
  38. package/dist/button.js.map +1 -1
  39. package/dist/calendar-column-view.js +8 -4
  40. package/dist/calendar-column-view.js.map +1 -1
  41. package/dist/calendar-month-view.js +8 -4
  42. package/dist/calendar-month-view.js.map +1 -1
  43. package/dist/calendar.js +8 -4
  44. package/dist/calendar.js.map +1 -1
  45. package/dist/canvas.js +8 -4
  46. package/dist/canvas.js.map +1 -1
  47. package/dist/card-content.js +1 -1
  48. package/dist/card.js +23 -45
  49. package/dist/card.js.map +1 -1
  50. package/dist/cb-compound-expression.js +6 -2
  51. package/dist/cb-compound-expression.js.map +1 -1
  52. package/dist/cb-divider.js +7 -3
  53. package/dist/cb-divider.js.map +1 -1
  54. package/dist/cb-expression.js +6 -2
  55. package/dist/cb-expression.js.map +1 -1
  56. package/dist/cb-predicate.js +7 -3
  57. package/dist/cb-predicate.js.map +1 -1
  58. package/dist/{chart-bar-cn6rrna-.js → chart-bar-CYoGNXnK.js} +6 -2
  59. package/dist/{chart-bar-cn6rrna-.js.map → chart-bar-CYoGNXnK.js.map} +1 -1
  60. package/dist/chart-bar.js +7 -6
  61. package/dist/chart-bar.js.map +1 -1
  62. package/dist/chart-doughnut.js +8 -3
  63. package/dist/chart-doughnut.js.map +1 -1
  64. package/dist/chart-pie.js +8 -3
  65. package/dist/chart-pie.js.map +1 -1
  66. package/dist/chart-stacked-bar.js +7 -6
  67. package/dist/chart-stacked-bar.js.map +1 -1
  68. package/dist/checkbox.js +526 -0
  69. package/dist/checkbox.js.map +1 -0
  70. package/dist/chip.js +459 -0
  71. package/dist/chip.js.map +1 -0
  72. package/dist/{class-map-YU7g0o3B.js → class-map-DG7CA1et.js} +2 -2
  73. package/dist/{class-map-YU7g0o3B.js.map → class-map-DG7CA1et.js.map} +1 -1
  74. package/dist/clock.js +6 -2
  75. package/dist/clock.js.map +1 -1
  76. package/dist/code-editor.js +45 -30
  77. package/dist/code-editor.js.map +1 -1
  78. package/dist/code-highlighter.js +9 -5
  79. package/dist/code-highlighter.js.map +1 -1
  80. package/dist/condition-builder.js +5 -1
  81. package/dist/condition-builder.js.map +1 -1
  82. package/dist/container.js +141 -0
  83. package/dist/container.js.map +1 -0
  84. package/dist/custom-elements-jsdocs.json +721 -769
  85. package/dist/custom-elements.json +3213 -1979
  86. package/dist/datasource-B2eRh6Or.js +108 -0
  87. package/dist/datasource-B2eRh6Or.js.map +1 -0
  88. package/dist/dispatch-event-utils-CuEqjlPT.js.map +1 -1
  89. package/dist/divider.js +135 -0
  90. package/dist/divider.js.map +1 -0
  91. package/dist/dropdown-button.js +11 -6
  92. package/dist/dropdown-button.js.map +1 -1
  93. package/dist/element-internals-2CMts_0M.js +290 -0
  94. package/dist/element-internals-2CMts_0M.js.map +1 -0
  95. package/dist/elevation.js +94 -0
  96. package/dist/elevation.js.map +1 -0
  97. package/dist/empty-state.js +194 -0
  98. package/dist/empty-state.js.map +1 -0
  99. package/dist/{event-manager-D-QCmUgR.js → event-manager-DTyX2uYD.js} +2 -2
  100. package/dist/{event-manager-D-QCmUgR.js.map → event-manager-DTyX2uYD.js.map} +1 -1
  101. package/dist/fab.js +138 -145
  102. package/dist/fab.js.map +1 -1
  103. package/dist/field.js +461 -0
  104. package/dist/field.js.map +1 -0
  105. package/dist/{popover-DUPmMVWS.js → floating-controller-CnUZnOhK.js} +2 -171
  106. package/dist/floating-controller-CnUZnOhK.js.map +1 -0
  107. package/dist/{flow-designer-node-BWrPuxAR.js → flow-designer-node-DsVwQTac.js} +7 -3
  108. package/dist/{flow-designer-node-BWrPuxAR.js.map → flow-designer-node-DsVwQTac.js.map} +1 -1
  109. package/dist/flow-designer-node.js +3 -3
  110. package/dist/flow-designer.js +19 -12
  111. package/dist/flow-designer.js.map +1 -1
  112. package/dist/focus-ring.js +126 -0
  113. package/dist/focus-ring.js.map +1 -0
  114. package/dist/form-associated-BXADnjOB.js +388 -0
  115. package/dist/form-associated-BXADnjOB.js.map +1 -0
  116. package/dist/html-editor.js +21 -9
  117. package/dist/html-editor.js.map +1 -1
  118. package/dist/hyperlink-DLvb6MXE.js +98 -0
  119. package/dist/hyperlink-DLvb6MXE.js.map +1 -0
  120. package/dist/icon-button.js +1064 -0
  121. package/dist/icon-button.js.map +1 -0
  122. package/dist/icon.js +170 -0
  123. package/dist/icon.js.map +1 -0
  124. package/dist/if-defined-BXZpRQ4P.js +10 -0
  125. package/dist/if-defined-BXZpRQ4P.js.map +1 -0
  126. package/dist/image.js +201 -0
  127. package/dist/image.js.map +1 -0
  128. package/dist/index.js +73 -20
  129. package/dist/index.js.map +1 -1
  130. package/dist/is-dark-mode-DOcaw4Yq.js.map +1 -1
  131. package/dist/is-link-Dk2OV3PM.js +6 -0
  132. package/dist/is-link-Dk2OV3PM.js.map +1 -0
  133. package/dist/item.js +212 -0
  134. package/dist/item.js.map +1 -0
  135. package/dist/link.js +75 -0
  136. package/dist/link.js.map +1 -0
  137. package/dist/list-D6JLh1uh.js +352 -0
  138. package/dist/list-D6JLh1uh.js.map +1 -0
  139. package/dist/list.js +14 -0
  140. package/dist/list.js.map +1 -0
  141. package/dist/{peacock-loader.js → loader.js} +83 -22
  142. package/dist/loader.js.map +1 -0
  143. package/dist/menu-item.js +318 -0
  144. package/dist/menu-item.js.map +1 -0
  145. package/dist/menu.js +534 -0
  146. package/dist/menu.js.map +1 -0
  147. package/dist/modal.js +9 -5
  148. package/dist/modal.js.map +1 -1
  149. package/dist/navigation-rail-item.js +385 -0
  150. package/dist/navigation-rail-item.js.map +1 -0
  151. package/dist/navigation-rail.js +217 -0
  152. package/dist/navigation-rail.js.map +1 -0
  153. package/dist/notification-manager.js +8 -4
  154. package/dist/notification-manager.js.map +1 -1
  155. package/dist/notification.js +8 -4
  156. package/dist/notification.js.map +1 -1
  157. package/dist/number-counter.js +7 -3
  158. package/dist/number-counter.js.map +1 -1
  159. package/dist/{observe-slot-change-D8Xg-kSS.js → observe-slot-change-DPxaZrZF.js} +3 -4
  160. package/dist/observe-slot-change-DPxaZrZF.js.map +1 -0
  161. package/dist/option.js +121 -0
  162. package/dist/option.js.map +1 -0
  163. package/dist/pagination.js +255 -0
  164. package/dist/pagination.js.map +1 -0
  165. package/dist/popover-content.js +7 -3
  166. package/dist/popover-content.js.map +1 -1
  167. package/dist/popover.js +175 -3
  168. package/dist/popover.js.map +1 -1
  169. package/dist/{property-1psGvXOq.js → property-B49QQ8pS.js} +2 -2
  170. package/dist/{property-1psGvXOq.js.map → property-B49QQ8pS.js.map} +1 -1
  171. package/dist/query-CHb9Ft_d.js +10 -0
  172. package/dist/query-CHb9Ft_d.js.map +1 -0
  173. package/dist/query-assigned-elements-BJaGSqM0.js +10 -0
  174. package/dist/query-assigned-elements-BJaGSqM0.js.map +1 -0
  175. package/dist/radio.js +476 -0
  176. package/dist/radio.js.map +1 -0
  177. package/dist/ripple.js +506 -0
  178. package/dist/ripple.js.map +1 -0
  179. package/dist/search.js +12 -7
  180. package/dist/search.js.map +1 -1
  181. package/dist/segmented-button-group.js +137 -0
  182. package/dist/segmented-button-group.js.map +1 -0
  183. package/dist/segmented-button.js +289 -0
  184. package/dist/segmented-button.js.map +1 -0
  185. package/dist/select-Dwtk0RIU.js +3937 -0
  186. package/dist/select-Dwtk0RIU.js.map +1 -0
  187. package/dist/side-sheet.js +8 -4
  188. package/dist/side-sheet.js.map +1 -1
  189. package/dist/skeleton.js +122 -0
  190. package/dist/skeleton.js.map +1 -0
  191. package/dist/slider.js +346 -0
  192. package/dist/slider.js.map +1 -0
  193. package/dist/snackbar.js +335 -0
  194. package/dist/snackbar.js.map +1 -0
  195. package/dist/spinner.js +100 -0
  196. package/dist/spinner.js.map +1 -0
  197. package/dist/split-button.js +10 -5
  198. package/dist/split-button.js.map +1 -1
  199. package/dist/spread-B5cgadZl.js +32 -0
  200. package/dist/spread-B5cgadZl.js.map +1 -0
  201. package/dist/src/__internal/aria/aria.d.ts +98 -0
  202. package/dist/src/__internal/aria/delegate.d.ts +54 -0
  203. package/dist/src/__internal/events/dispatch-hooks.d.ts +80 -0
  204. package/dist/src/__internal/mixins/element-internals.d.ts +40 -0
  205. package/dist/src/__internal/mixins/form-associated.d.ts +174 -0
  206. package/dist/src/__internal/mixins/form-submitter.d.ts +59 -0
  207. package/dist/src/__internal/mixins/hyperlink.d.ts +42 -0
  208. package/dist/src/__internal/mixins/mixin.d.ts +49 -0
  209. package/dist/src/{__utils → __internal/utils}/observe-slot-change.d.ts +1 -0
  210. package/dist/src/accordion/accordion-item.d.ts +3 -1
  211. package/dist/src/accordion/accordion.d.ts +1 -1
  212. package/dist/src/alert/alert.d.ts +43 -0
  213. package/dist/src/alert/index.d.ts +1 -0
  214. package/dist/src/app-bar/app-bar.d.ts +92 -0
  215. package/dist/src/app-bar/index.d.ts +1 -0
  216. package/dist/src/avatar/avatar.d.ts +2 -0
  217. package/dist/src/bottom-sheet/bottom-sheet.d.ts +1 -1
  218. package/dist/src/breadcrumb/breadcrumb-item/breadcrumb-item.d.ts +1 -0
  219. package/dist/src/button/ButtonTypes.d.ts +5 -0
  220. package/dist/src/button/base-button/base-button.d.ts +18 -0
  221. package/dist/src/button/button/button.d.ts +29 -37
  222. package/dist/src/button/button-group/button-group.d.ts +17 -18
  223. package/dist/src/{fab → button/fab}/fab.d.ts +8 -26
  224. package/dist/src/button/icon-button/icon-button.d.ts +20 -27
  225. package/dist/src/button/index.d.ts +1 -0
  226. package/dist/src/calendar/calendar.d.ts +1 -1
  227. package/dist/src/canvas/canvas.d.ts +1 -1
  228. package/dist/src/card/card.d.ts +5 -6
  229. package/dist/src/chart-bar/chart-bar.d.ts +1 -1
  230. package/dist/src/chart-bar/chart-stacked-bar.d.ts +1 -1
  231. package/dist/src/checkbox/checkbox.d.ts +5 -1
  232. package/dist/src/chip/chip/chip.d.ts +9 -8
  233. package/dist/src/container/container.d.ts +5 -1
  234. package/dist/src/divider/divider.d.ts +2 -0
  235. package/dist/src/empty-state/empty-state.d.ts +1 -0
  236. package/dist/src/field/field.d.ts +19 -1
  237. package/dist/src/focus-ring/focus-ring.d.ts +3 -7
  238. package/dist/src/html-editor/html-editor.d.ts +1 -1
  239. package/dist/src/icon/icon.d.ts +9 -4
  240. package/dist/src/image/image.d.ts +4 -0
  241. package/dist/src/index.d.ts +7 -6
  242. package/dist/src/item/item.d.ts +20 -29
  243. package/dist/src/link/link.d.ts +1 -1
  244. package/dist/src/list/list-item.d.ts +7 -5
  245. package/dist/src/list/list.d.ts +3 -2
  246. package/dist/src/menu/menu/menu.d.ts +14 -0
  247. package/dist/src/menu/menu-item/menu-item.d.ts +10 -2
  248. package/dist/src/modal/modal.d.ts +1 -1
  249. package/dist/src/navigation-rail/navigation-rail-item.d.ts +5 -4
  250. package/dist/src/navigation-rail/navigation-rail.d.ts +1 -1
  251. package/dist/src/radio/radio.d.ts +5 -0
  252. package/dist/src/ripple/ripple.d.ts +10 -1
  253. package/dist/src/search/search.d.ts +1 -1
  254. package/dist/src/segmented-button/segmented-button-group.d.ts +2 -2
  255. package/dist/src/segmented-button/segmented-button.d.ts +2 -0
  256. package/dist/src/side-sheet/side-sheet.d.ts +1 -1
  257. package/dist/src/skeleton/skeleton.d.ts +1 -0
  258. package/dist/src/slider/slider.d.ts +1 -0
  259. package/dist/src/snackbar/snackbar.d.ts +12 -2
  260. package/dist/src/svg/svg.d.ts +5 -0
  261. package/dist/src/table/table.d.ts +5 -0
  262. package/dist/src/tabs/tab.d.ts +2 -7
  263. package/dist/src/toolbar/toolbar.d.ts +2 -2
  264. package/dist/{state-DwbEjqVk.js → state-DkTK9EGF.js} +2 -2
  265. package/dist/{state-DwbEjqVk.js.map → state-DkTK9EGF.js.map} +1 -1
  266. package/dist/{style-map-DVmWOuYy.js → style-map-BQD5Et1D.js} +2 -2
  267. package/dist/{style-map-DVmWOuYy.js.map → style-map-BQD5Et1D.js.map} +1 -1
  268. package/dist/sub-menu.js +241 -0
  269. package/dist/sub-menu.js.map +1 -0
  270. package/dist/svg.js +273 -0
  271. package/dist/svg.js.map +1 -0
  272. package/dist/tab-group.js +188 -0
  273. package/dist/tab-group.js.map +1 -0
  274. package/dist/tab-panel.js +61 -0
  275. package/dist/tab-panel.js.map +1 -0
  276. package/dist/tab.js +658 -0
  277. package/dist/tab.js.map +1 -0
  278. package/dist/table.js +620 -0
  279. package/dist/table.js.map +1 -0
  280. package/dist/tabs.js +240 -0
  281. package/dist/tabs.js.map +1 -0
  282. package/dist/throttle-C7ZAPqtu.js +24 -0
  283. package/dist/throttle-C7ZAPqtu.js.map +1 -0
  284. package/dist/toolbar.js +9 -5
  285. package/dist/toolbar.js.map +1 -1
  286. package/dist/tooltip.js +270 -0
  287. package/dist/tooltip.js.map +1 -0
  288. package/dist/tsconfig.tsbuildinfo +1 -1
  289. package/dist/{unsafe-html-BsGUjx94.js → unsafe-html-Ct0N2_UU.js} +2 -2
  290. package/dist/{unsafe-html-BsGUjx94.js.map → unsafe-html-Ct0N2_UU.js.map} +1 -1
  291. package/dist/when-DEJm_QN9.js +9 -0
  292. package/dist/when-DEJm_QN9.js.map +1 -0
  293. package/package.json +4 -2
  294. package/readme.md +3 -3
  295. package/scss/mixin.scss +8 -6
  296. package/src/__internal/aria/aria.ts +293 -0
  297. package/src/__internal/aria/delegate.ts +206 -0
  298. package/src/__internal/events/dispatch-hooks.ts +182 -0
  299. package/src/__internal/mixins/element-internals.ts +73 -0
  300. package/src/__internal/mixins/form-associated.ts +295 -0
  301. package/src/__internal/mixins/form-submitter.ts +133 -0
  302. package/src/__internal/mixins/hyperlink.ts +71 -0
  303. package/src/__internal/mixins/mixin.ts +58 -0
  304. package/src/{__utils → __internal/utils}/observe-slot-change.ts +2 -5
  305. package/src/accordion/accordion-item.ts +6 -2
  306. package/src/accordion/accordion.ts +4 -2
  307. package/src/accordion/demo/index.html +95 -90
  308. package/src/alert/alert.scss +82 -0
  309. package/src/{banner/banner.ts → alert/alert.ts} +22 -22
  310. package/src/alert/index.ts +1 -0
  311. package/src/app-bar/app-bar-colors.scss +17 -0
  312. package/src/app-bar/app-bar.scss +165 -0
  313. package/src/app-bar/app-bar.ts +155 -0
  314. package/src/app-bar/index.ts +1 -0
  315. package/src/avatar/avatar.ts +4 -0
  316. package/src/badge/badge.ts +2 -0
  317. package/src/bottom-sheet/bottom-sheet.ts +8 -2
  318. package/src/breadcrumb/breadcrumb/breadcrumb.ts +2 -0
  319. package/src/breadcrumb/breadcrumb-item/breadcrumb-item.ts +3 -0
  320. package/src/button/ButtonTypes.ts +17 -0
  321. package/src/button/base-button/base-button.ts +85 -0
  322. package/src/button/button/button-base.scss +306 -0
  323. package/src/button/button/button-colors.scss +27 -32
  324. package/src/button/button/button-layers.scss +126 -39
  325. package/src/button/button/button-shapes.scss +73 -0
  326. package/src/button/button/button.scss +12 -286
  327. package/src/button/button/button.ts +174 -194
  328. package/src/button/button-group/button-group.scss +43 -36
  329. package/src/button/button-group/button-group.ts +26 -137
  330. package/src/{fab → button/fab}/fab-colors.scss +0 -10
  331. package/src/button/fab/fab-sizes.scss +37 -0
  332. package/src/button/fab/fab.scss +172 -0
  333. package/src/{fab → button/fab}/fab.ts +69 -105
  334. package/src/button/icon-button/icon-button-sizes.scss +18 -3
  335. package/src/button/icon-button/icon-button.scss +5 -0
  336. package/src/button/icon-button/icon-button.ts +111 -141
  337. package/src/button/index.ts +7 -0
  338. package/src/calendar/calendar.ts +2 -2
  339. package/src/canvas/canvas.ts +2 -2
  340. package/src/card/card.scss +3 -3
  341. package/src/card/card.ts +20 -40
  342. package/src/chart-bar/chart-bar.ts +2 -2
  343. package/src/chart-bar/chart-stacked-bar.ts +2 -2
  344. package/src/checkbox/checkbox.ts +12 -4
  345. package/src/chip/chip/chip.scss +1 -1
  346. package/src/chip/chip/chip.ts +35 -55
  347. package/src/chip/demo/index.html +30 -26
  348. package/src/code-editor/code-editor.ts +68 -58
  349. package/src/code-editor/demo/index.html +32 -27
  350. package/src/code-highlighter/code-highlighter.ts +1 -1
  351. package/src/code-highlighter/demo/index.html +24 -21
  352. package/src/container/container.ts +8 -2
  353. package/src/date-picker/date-picker.ts +2 -3
  354. package/src/divider/divider.ts +5 -1
  355. package/src/dropdown-button/demo/index.html +106 -101
  356. package/src/dropdown-button/dropdown-button.ts +1 -1
  357. package/src/elevation/elevation.ts +2 -0
  358. package/src/empty-state/empty-state.ts +3 -0
  359. package/src/field/field.ts +52 -33
  360. package/src/focus-ring/focus-ring.ts +5 -7
  361. package/src/html-editor/html-editor.ts +28 -16
  362. package/src/icon/datasource.ts +1 -1
  363. package/src/icon/icon.ts +27 -15
  364. package/src/image/image.ts +18 -6
  365. package/src/index.ts +24 -6
  366. package/src/input/input.ts +2 -2
  367. package/src/item/item.scss +126 -162
  368. package/src/item/item.ts +70 -323
  369. package/src/link/link.ts +3 -1
  370. package/src/list/list-item.scss +43 -31
  371. package/src/list/list-item.ts +79 -75
  372. package/src/list/list.scss +1 -13
  373. package/src/list/list.ts +6 -3
  374. package/src/{peacock-loader.ts → loader.ts} +91 -79
  375. package/src/menu/menu/menu.scss +14 -11
  376. package/src/menu/menu/menu.ts +20 -8
  377. package/src/menu/menu-item/menu-item.scss +35 -3
  378. package/src/menu/menu-item/menu-item.ts +40 -34
  379. package/src/menu/sub-menu/sub-menu.ts +3 -0
  380. package/src/modal/modal.ts +2 -2
  381. package/src/navigation-rail/navigation-rail-item.ts +21 -36
  382. package/src/navigation-rail/navigation-rail.scss +1 -0
  383. package/src/navigation-rail/navigation-rail.ts +4 -2
  384. package/src/number-field/number-field.ts +2 -2
  385. package/src/pagination/pagination.ts +2 -0
  386. package/src/popover/popover.ts +3 -3
  387. package/src/radio/radio.ts +13 -5
  388. package/src/ripple/ripple.ts +14 -1
  389. package/src/search/search.ts +3 -3
  390. package/src/segmented-button/segmented-button-group.ts +8 -4
  391. package/src/segmented-button/segmented-button.ts +4 -0
  392. package/src/select/option.ts +2 -0
  393. package/src/side-sheet/side-sheet.ts +2 -2
  394. package/src/sidebar-menu/sidebar-menu-item.ts +3 -2
  395. package/src/skeleton/skeleton.ts +3 -0
  396. package/src/slider/slider.ts +4 -1
  397. package/src/snackbar/snackbar.ts +40 -25
  398. package/src/spinner/spinner.ts +2 -0
  399. package/src/svg/svg.ts +27 -9
  400. package/src/switch/switch.ts +1 -1
  401. package/src/table/table.ts +16 -3
  402. package/src/tabs/demo/index.html +79 -79
  403. package/src/tabs/tab-group.ts +2 -0
  404. package/src/tabs/tab-panel.ts +2 -0
  405. package/src/tabs/tab.scss +4 -4
  406. package/src/tabs/tab.ts +16 -39
  407. package/src/tabs/tabs.ts +2 -0
  408. package/src/textarea/textarea.ts +2 -2
  409. package/src/time-picker/time-picker.ts +2 -2
  410. package/src/toolbar/toolbar.ts +3 -3
  411. package/src/tooltip/tooltip.ts +14 -8
  412. package/src/url-field/url-field.ts +2 -3
  413. package/dist/ButtonConstants-D06bY4uy.js +0 -114
  414. package/dist/ButtonConstants-D06bY4uy.js.map +0 -1
  415. package/dist/NativeHyperlinkMixin-DrYXyfMQ.js.map +0 -1
  416. package/dist/banner.js +0 -186
  417. package/dist/banner.js.map +0 -1
  418. package/dist/button-colors-D7sJyPy8.js +0 -586
  419. package/dist/button-colors-D7sJyPy8.js.map +0 -1
  420. package/dist/icon-CueRR7wx.js +0 -260
  421. package/dist/icon-CueRR7wx.js.map +0 -1
  422. package/dist/icon-button-CAzYr_qr.js +0 -318
  423. package/dist/icon-button-CAzYr_qr.js.map +0 -1
  424. package/dist/navigation-rail-CM_svs5_.js +0 -14184
  425. package/dist/navigation-rail-CM_svs5_.js.map +0 -1
  426. package/dist/observe-slot-change-D8Xg-kSS.js.map +0 -1
  427. package/dist/peacock-loader.js.map +0 -1
  428. package/dist/popover-DUPmMVWS.js.map +0 -1
  429. package/dist/query-QBcUV-L_.js +0 -15
  430. package/dist/query-QBcUV-L_.js.map +0 -1
  431. package/dist/src/banner/banner.d.ts +0 -43
  432. package/dist/src/banner/index.d.ts +0 -1
  433. package/dist/src/button/GroupButtonInterface.d.ts +0 -4
  434. package/src/banner/banner.scss +0 -82
  435. package/src/banner/index.ts +0 -1
  436. package/src/button/GroupButtonInterface.ts +0 -4
  437. package/src/button/button/only-button.scss +0 -13
  438. package/src/fab/fab-sizes.scss +0 -37
  439. package/src/fab/fab.scss +0 -143
  440. /package/dist/src/{__controllers → __internal/controllers}/attachable-controller.d.ts +0 -0
  441. /package/dist/src/{__controllers → __internal/controllers}/floating-controller.d.ts +0 -0
  442. /package/dist/src/{__directive → __internal/directive}/spread.d.ts +0 -0
  443. /package/dist/src/{__mixins → __internal/mixins}/MixinConstructor.d.ts +0 -0
  444. /package/dist/src/{__mixins → __internal/mixins}/NativeButtonMixin.d.ts +0 -0
  445. /package/dist/src/{__mixins → __internal/mixins}/NativeHyperlinkMixin.d.ts +0 -0
  446. /package/dist/src/{__utils → __internal/utils}/cache-fetch.d.ts +0 -0
  447. /package/dist/src/{__utils → __internal/utils}/copy-to-clipboard.d.ts +0 -0
  448. /package/dist/src/{__utils → __internal/utils}/dispatch-event-utils.d.ts +0 -0
  449. /package/dist/src/{__utils → __internal/utils}/is-dark-mode.d.ts +0 -0
  450. /package/dist/src/{__utils → __internal/utils}/is-in-viewport.d.ts +0 -0
  451. /package/dist/src/{__utils → __internal/utils}/is-link.d.ts +0 -0
  452. /package/dist/src/{__utils → __internal/utils}/observe-theme-change.d.ts +0 -0
  453. /package/dist/src/{__utils → __internal/utils}/sanitize-svg.d.ts +0 -0
  454. /package/dist/src/{__utils → __internal/utils}/throttle.d.ts +0 -0
  455. /package/dist/src/{fab → button/fab}/index.d.ts +0 -0
  456. /package/dist/src/{peacock-loader.d.ts → loader.d.ts} +0 -0
  457. /package/dist/test/{banner.test.d.ts → alert.test.d.ts} +0 -0
  458. /package/src/{__controllers → __internal/controllers}/attachable-controller.ts +0 -0
  459. /package/src/{__controllers → __internal/controllers}/floating-controller.ts +0 -0
  460. /package/src/{__directive → __internal/directive}/spread.ts +0 -0
  461. /package/src/{__mixins → __internal/mixins}/MixinConstructor.ts +0 -0
  462. /package/src/{__mixins → __internal/mixins}/NativeButtonMixin.ts +0 -0
  463. /package/src/{__mixins → __internal/mixins}/NativeHyperlinkMixin.ts +0 -0
  464. /package/src/{__mixins → __internal/mixins}/README.md +0 -0
  465. /package/src/{__utils → __internal/utils}/cache-fetch.ts +0 -0
  466. /package/src/{__utils → __internal/utils}/copy-to-clipboard.ts +0 -0
  467. /package/src/{__utils → __internal/utils}/dispatch-event-utils.ts +0 -0
  468. /package/src/{__utils → __internal/utils}/is-dark-mode.ts +0 -0
  469. /package/src/{__utils → __internal/utils}/is-in-viewport.ts +0 -0
  470. /package/src/{__utils → __internal/utils}/is-link.ts +0 -0
  471. /package/src/{__utils → __internal/utils}/observe-theme-change.ts +0 -0
  472. /package/src/{__utils → __internal/utils}/sanitize-svg.ts +0 -0
  473. /package/src/{__utils → __internal/utils}/throttle.ts +0 -0
  474. /package/src/{fab → button/fab}/index.ts +0 -0
package/dist/tabs.js ADDED
@@ -0,0 +1,240 @@
1
+ import { i, _ as __decorate, I as IndividualComponent, a as i$1, b } from './IndividualComponent-Bdwyrvd6.js';
2
+ import { n } from './property-B49QQ8pS.js';
3
+ import { Tab } from './tab.js';
4
+ import './state-DkTK9EGF.js';
5
+ import './query-CHb9Ft_d.js';
6
+ import './base-Cl6v8-BZ.js';
7
+ import './class-map-DG7CA1et.js';
8
+ import './directive-ZPhl09Yt.js';
9
+ import './dispatch-event-utils-CuEqjlPT.js';
10
+ import './observe-slot-change-DPxaZrZF.js';
11
+ import './throttle-C7ZAPqtu.js';
12
+ import './is-link-Dk2OV3PM.js';
13
+ import './spread-B5cgadZl.js';
14
+
15
+ var css_248z = i`* {
16
+ box-sizing: border-box;
17
+ }
18
+
19
+ .screen-reader-only {
20
+ display: none !important;
21
+ }
22
+
23
+ [hidden] {
24
+ display: none !important;
25
+ }
26
+
27
+ .tabs {
28
+ display: flex;
29
+ position: relative;
30
+ width: 100%;
31
+ height: var(--tabs-height);
32
+ }
33
+
34
+ :host([variant=primary]) {
35
+ --tabs-height: 4rem;
36
+ }
37
+ :host([variant=primary]) .tabs {
38
+ border-bottom: 1px solid var(--color-surface-variant);
39
+ }
40
+
41
+ :host([variant=secondary]) {
42
+ --tabs-height: 3rem;
43
+ }
44
+ :host([variant=secondary]) .tabs {
45
+ border-bottom: 1px solid var(--color-surface-variant);
46
+ }
47
+
48
+ :host([variant=filled]) {
49
+ --tabs-height: 3rem;
50
+ }
51
+ :host([variant=filled]) .tabs {
52
+ align-items: stretch;
53
+ gap: 0.25rem;
54
+ padding: 0.25rem;
55
+ border-radius: var(--shape-corner-small);
56
+ background: var(--color-surface-container-high);
57
+ }
58
+
59
+ :host([variant=contained]) {
60
+ --tabs-height: 3rem;
61
+ }
62
+ :host([variant=contained]) .tabs {
63
+ align-items: stretch;
64
+ gap: 0.25rem;
65
+ padding: 0.25rem;
66
+ border-radius: var(--shape-corner-extra-small);
67
+ border: 1px solid var(--color-outline-variant);
68
+ background: var(--color-surface);
69
+ }`;
70
+
71
+ var Tabs_1;
72
+ /**
73
+ * @label Tabs
74
+ * @tag wc-tabs
75
+ * @rawTag tabs
76
+ *
77
+ * @summary Container for tab components.
78
+ * @overview
79
+ * <p>Tabs holds the tab buttons and manages their layout.</p>
80
+ *
81
+ * @example
82
+ * ```html
83
+ * <wc-tabs>
84
+ * <wc-tab active>Tab 1</wc-tab>
85
+ * <wc-tab>Tab 2</wc-tab>
86
+ * </wc-tabs>
87
+ * ```
88
+ * @tags navigation
89
+ */
90
+ let Tabs = Tabs_1 = class Tabs extends i$1 {
91
+ constructor() {
92
+ super(...arguments);
93
+ this.variant = 'primary';
94
+ this.managed = false;
95
+ this.__handleTabClick = (event) => {
96
+ if (this.managed)
97
+ return;
98
+ const detailEvent = event;
99
+ const path = detailEvent.composedPath();
100
+ const clickedTab = path.find(node => node instanceof Element && node.tagName.toLowerCase() === 'wc-tab');
101
+ if (!clickedTab)
102
+ return;
103
+ const previousActiveTab = this.__getActiveTab();
104
+ const tabs = this.__getTabs();
105
+ let clickedIndex = -1;
106
+ for (let index = 0; index < tabs.length; index += 1) {
107
+ const tab = tabs[index];
108
+ tab.active = false;
109
+ if (tab === clickedTab)
110
+ clickedIndex = index;
111
+ }
112
+ clickedTab.active = true;
113
+ this.__animateIndicatorTransition(previousActiveTab, clickedTab);
114
+ this.__lastActiveTab = clickedTab;
115
+ this.dispatchEvent(new CustomEvent('tab-click', {
116
+ bubbles: true,
117
+ composed: true,
118
+ detail: {
119
+ index: clickedIndex,
120
+ value: clickedTab.value,
121
+ },
122
+ }));
123
+ };
124
+ }
125
+ connectedCallback() {
126
+ super.connectedCallback();
127
+ this.addEventListener('click', this.__handleTabClick);
128
+ }
129
+ firstUpdated() {
130
+ this.__mutationObserver = new MutationObserver(() => {
131
+ this.__syncIndicatorsFromActiveState();
132
+ });
133
+ this.__mutationObserver.observe(this, {
134
+ subtree: true,
135
+ childList: true,
136
+ attributes: true,
137
+ attributeFilter: ['active', 'disabled'],
138
+ });
139
+ this.__lastActiveTab = this.__getActiveTab();
140
+ }
141
+ updated(changedProperties) {
142
+ if (changedProperties.has('variant')) {
143
+ this.__lastActiveTab = this.__getActiveTab();
144
+ }
145
+ }
146
+ disconnectedCallback() {
147
+ this.__mutationObserver?.disconnect();
148
+ this.removeEventListener('click', this.__handleTabClick);
149
+ super.disconnectedCallback();
150
+ }
151
+ __getTabs() {
152
+ return Array.from(this.querySelectorAll('wc-tab'));
153
+ }
154
+ __getActiveTab() {
155
+ return this.__getTabs().find(tab => tab.active && !tab.disabled);
156
+ }
157
+ static __getTabIndicator(tab) {
158
+ if (!tab?.shadowRoot)
159
+ return undefined;
160
+ return tab.shadowRoot.querySelector('.indicator');
161
+ }
162
+ static __getTabBackground(tab) {
163
+ if (!tab?.shadowRoot)
164
+ return undefined;
165
+ return tab.shadowRoot.querySelector('.background');
166
+ }
167
+ __getAnimationElements(previousTab, nextTab) {
168
+ if (this.variant === 'primary' || this.variant === 'secondary') {
169
+ return {
170
+ previous: Tabs_1.__getTabIndicator(previousTab),
171
+ next: Tabs_1.__getTabIndicator(nextTab),
172
+ };
173
+ }
174
+ if (this.variant === 'filled' || this.variant === 'contained') {
175
+ return {
176
+ previous: Tabs_1.__getTabBackground(previousTab),
177
+ next: Tabs_1.__getTabBackground(nextTab),
178
+ };
179
+ }
180
+ return {
181
+ previous: undefined,
182
+ next: undefined,
183
+ };
184
+ }
185
+ __animateIndicatorTransition(previousTab, nextTab) {
186
+ if (!previousTab || !nextTab || previousTab === nextTab)
187
+ return;
188
+ const { previous: previousAnimationElement, next: nextAnimationElement } = this.__getAnimationElements(previousTab, nextTab);
189
+ if (!previousAnimationElement || !nextAnimationElement)
190
+ return;
191
+ const previousRect = previousTab.getBoundingClientRect();
192
+ const nextRect = nextTab.getBoundingClientRect();
193
+ const incomingOffset = previousRect.left - nextRect.left;
194
+ const outgoingOffset = nextRect.left - previousRect.left;
195
+ const incomingScale = previousRect.width / nextRect.width;
196
+ const outgoingScale = nextRect.width / previousRect.width;
197
+ nextAnimationElement.style.transition = 'none';
198
+ nextAnimationElement.style.opacity = '0';
199
+ nextAnimationElement.style.transform = `translateX(${incomingOffset}px) scaleX(${incomingScale})`;
200
+ previousAnimationElement.style.transition = 'none';
201
+ previousAnimationElement.style.opacity = '1';
202
+ previousAnimationElement.style.transform = 'translateX(0) scaleX(1)';
203
+ requestAnimationFrame(() => {
204
+ nextAnimationElement.style.transition = '';
205
+ previousAnimationElement.style.transition = '';
206
+ nextAnimationElement.style.opacity = '1';
207
+ nextAnimationElement.style.transform = 'translateX(0) scaleX(1)';
208
+ previousAnimationElement.style.opacity = '0';
209
+ previousAnimationElement.style.transform = `translateX(${outgoingOffset}px) scaleX(${outgoingScale})`;
210
+ });
211
+ }
212
+ __syncIndicatorsFromActiveState() {
213
+ const activeTab = this.__getActiveTab();
214
+ if (this.__lastActiveTab && activeTab && this.__lastActiveTab !== activeTab) {
215
+ this.__animateIndicatorTransition(this.__lastActiveTab, activeTab);
216
+ }
217
+ this.__lastActiveTab = activeTab;
218
+ }
219
+ render() {
220
+ return b `
221
+ <div class="tabs">
222
+ <slot></slot>
223
+ </div>
224
+ `;
225
+ }
226
+ };
227
+ Tabs.styles = [css_248z];
228
+ Tabs.Tab = Tab;
229
+ __decorate([
230
+ n({ reflect: true })
231
+ ], Tabs.prototype, "variant", void 0);
232
+ __decorate([
233
+ n({ type: Boolean })
234
+ ], Tabs.prototype, "managed", void 0);
235
+ Tabs = Tabs_1 = __decorate([
236
+ IndividualComponent
237
+ ], Tabs);
238
+
239
+ export { Tabs };
240
+ //# sourceMappingURL=tabs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs.js","sources":["../../src/tabs/tabs.ts"],"sourcesContent":["import { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport styles from './tabs.scss';\nimport { Tab } from './tab.js';\nimport IndividualComponent from '@/IndividualComponent.js';\n\n/**\n * @label Tabs\n * @tag wc-tabs\n * @rawTag tabs\n *\n * @summary Container for tab components.\n * @overview\n * <p>Tabs holds the tab buttons and manages their layout.</p>\n *\n * @example\n * ```html\n * <wc-tabs>\n * <wc-tab active>Tab 1</wc-tab>\n * <wc-tab>Tab 2</wc-tab>\n * </wc-tabs>\n * ```\n * @tags navigation\n */\n@IndividualComponent\nexport class Tabs extends LitElement {\n static styles = [styles];\n\n static Tab = Tab;\n\n @property({ reflect: true }) \n variant: 'primary' | 'secondary' | 'contained' | 'filled' = 'primary';\n\n @property({ type: Boolean }) managed = false;\n\n private __mutationObserver?: MutationObserver;\n\n private __lastActiveTab?: Tab;\n\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener('click', this.__handleTabClick);\n }\n\n firstUpdated() {\n this.__mutationObserver = new MutationObserver(() => {\n this.__syncIndicatorsFromActiveState();\n });\n\n this.__mutationObserver.observe(this, {\n subtree: true,\n childList: true,\n attributes: true,\n attributeFilter: ['active', 'disabled'],\n });\n\n this.__lastActiveTab = this.__getActiveTab();\n }\n\n updated(changedProperties: Map<string, unknown>) {\n if (changedProperties.has('variant')) {\n this.__lastActiveTab = this.__getActiveTab();\n }\n }\n\n disconnectedCallback() {\n this.__mutationObserver?.disconnect();\n\n this.removeEventListener('click', this.__handleTabClick);\n super.disconnectedCallback();\n }\n\n private __getTabs() {\n return Array.from(this.querySelectorAll('wc-tab')) as Tab[];\n }\n\n private __getActiveTab() {\n return this.__getTabs().find(tab => tab.active && !tab.disabled);\n }\n\n private static __getTabIndicator(tab?: Tab) {\n if (!tab?.shadowRoot) return undefined;\n return tab.shadowRoot.querySelector('.indicator') as HTMLElement | null;\n }\n\n private static __getTabBackground(tab?: Tab) {\n if (!tab?.shadowRoot) return undefined;\n return tab.shadowRoot.querySelector('.background') as HTMLElement | null;\n }\n\n private __getAnimationElements(previousTab?: Tab, nextTab?: Tab) {\n if (this.variant === 'primary' || this.variant === 'secondary') {\n return {\n previous: Tabs.__getTabIndicator(previousTab),\n next: Tabs.__getTabIndicator(nextTab),\n };\n }\n\n if (this.variant === 'filled' || this.variant === 'contained') {\n return {\n previous: Tabs.__getTabBackground(previousTab),\n next: Tabs.__getTabBackground(nextTab),\n };\n }\n\n return {\n previous: undefined,\n next: undefined,\n };\n }\n\n private __animateIndicatorTransition(previousTab?: Tab, nextTab?: Tab) {\n if (!previousTab || !nextTab || previousTab === nextTab) return;\n\n const { previous: previousAnimationElement, next: nextAnimationElement } =\n this.__getAnimationElements(previousTab, nextTab);\n if (!previousAnimationElement || !nextAnimationElement) return;\n\n const previousRect = previousTab.getBoundingClientRect();\n const nextRect = nextTab.getBoundingClientRect();\n\n const incomingOffset = previousRect.left - nextRect.left;\n const outgoingOffset = nextRect.left - previousRect.left;\n const incomingScale = previousRect.width / nextRect.width;\n const outgoingScale = nextRect.width / previousRect.width;\n\n nextAnimationElement.style.transition = 'none';\n nextAnimationElement.style.opacity = '0';\n nextAnimationElement.style.transform = `translateX(${incomingOffset}px) scaleX(${incomingScale})`;\n\n previousAnimationElement.style.transition = 'none';\n previousAnimationElement.style.opacity = '1';\n previousAnimationElement.style.transform = 'translateX(0) scaleX(1)';\n\n requestAnimationFrame(() => {\n nextAnimationElement.style.transition = '';\n previousAnimationElement.style.transition = '';\n\n nextAnimationElement.style.opacity = '1';\n nextAnimationElement.style.transform = 'translateX(0) scaleX(1)';\n\n previousAnimationElement.style.opacity = '0';\n previousAnimationElement.style.transform = `translateX(${outgoingOffset}px) scaleX(${outgoingScale})`;\n });\n }\n\n private __syncIndicatorsFromActiveState() {\n const activeTab = this.__getActiveTab();\n if (this.__lastActiveTab && activeTab && this.__lastActiveTab !== activeTab) {\n this.__animateIndicatorTransition(this.__lastActiveTab, activeTab);\n }\n\n this.__lastActiveTab = activeTab;\n }\n\n private __handleTabClick = (event: Event) => {\n if (this.managed) return;\n\n const detailEvent = event as CustomEvent;\n const path = detailEvent.composedPath();\n const clickedTab: Tab | undefined = path.find(\n node => node instanceof Element && (node as Element).tagName.toLowerCase() === 'wc-tab',\n ) as Tab | undefined;\n\n if (!clickedTab) return;\n\n const previousActiveTab = this.__getActiveTab();\n const tabs = this.__getTabs();\n let clickedIndex = -1;\n for (let index = 0; index < tabs.length; index += 1) {\n const tab = tabs[index];\n tab.active = false;\n if (tab === clickedTab) clickedIndex = index;\n }\n (clickedTab as Tab).active = true;\n this.__animateIndicatorTransition(previousActiveTab, clickedTab);\n this.__lastActiveTab = clickedTab;\n\n this.dispatchEvent(new CustomEvent('tab-click', {\n bubbles: true,\n composed: true,\n detail: {\n index: clickedIndex,\n value: (clickedTab as Tab).value,\n },\n }));\n };\n\n render() {\n return html`\n <div class=\"tabs\">\n <slot></slot>\n </div>\n `;\n }\n}\n"],"names":["LitElement","html","styles","property"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA;;;;;;;;;;;;;;;;;AAiBG;AAEI,IAAM,IAAI,GAAA,MAAA,GAAV,MAAM,IAAK,SAAQA,GAAU,CAAA;AAA7B,IAAA,WAAA,GAAA;;QAML,IAAA,CAAA,OAAO,GAAqD,SAAS;QAExC,IAAA,CAAA,OAAO,GAAG,KAAK;AA0HpC,QAAA,IAAA,CAAA,gBAAgB,GAAG,CAAC,KAAY,KAAI;YAC1C,IAAI,IAAI,CAAC,OAAO;gBAAE;YAElB,MAAM,WAAW,GAAG,KAAoB;AACxC,YAAA,MAAM,IAAI,GAAG,WAAW,CAAC,YAAY,EAAE;YACvC,MAAM,UAAU,GAAoB,IAAI,CAAC,IAAI,CAC3C,IAAI,IAAI,IAAI,YAAY,OAAO,IAAK,IAAgB,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,QAAQ,CACrE;AAEpB,YAAA,IAAI,CAAC,UAAU;gBAAE;AAEjB,YAAA,MAAM,iBAAiB,GAAG,IAAI,CAAC,cAAc,EAAE;AAC/C,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE;AAC7B,YAAA,IAAI,YAAY,GAAG,EAAE;AACrB,YAAA,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,CAAC,EAAE;AACnD,gBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC;AACvB,gBAAA,GAAG,CAAC,MAAM,GAAG,KAAK;gBAClB,IAAI,GAAG,KAAK,UAAU;oBAAE,YAAY,GAAG,KAAK;YAC9C;AACC,YAAA,UAAkB,CAAC,MAAM,GAAG,IAAI;AACjC,YAAA,IAAI,CAAC,4BAA4B,CAAC,iBAAiB,EAAE,UAAU,CAAC;AAChE,YAAA,IAAI,CAAC,eAAe,GAAG,UAAU;AAEjC,YAAA,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,WAAW,EAAE;AAC9C,gBAAA,OAAO,EAAE,IAAI;AACb,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,MAAM,EAAE;AACN,oBAAA,KAAK,EAAE,YAAY;oBACnB,KAAK,EAAG,UAAkB,CAAC,KAAK;AACjC,iBAAA;AACF,aAAA,CAAC,CAAC;AACL,QAAA,CAAC;IASH;IA5JE,iBAAiB,GAAA;QACf,KAAK,CAAC,iBAAiB,EAAE;QACzB,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC;IACvD;IAEA,YAAY,GAAA;AACV,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,gBAAgB,CAAC,MAAK;YAClD,IAAI,CAAC,+BAA+B,EAAE;AACxC,QAAA,CAAC,CAAC;AAEF,QAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,IAAI,EAAE;AACpC,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,UAAU,EAAE,IAAI;AAChB,YAAA,eAAe,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC;AACxC,SAAA,CAAC;AAEF,QAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc,EAAE;IAC9C;AAEA,IAAA,OAAO,CAAC,iBAAuC,EAAA;AAC7C,QAAA,IAAI,iBAAiB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;AACpC,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc,EAAE;QAC9C;IACF;IAEA,oBAAoB,GAAA;AAClB,QAAA,IAAI,CAAC,kBAAkB,EAAE,UAAU,EAAE;QAErC,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC;QACxD,KAAK,CAAC,oBAAoB,EAAE;IAC9B;IAEQ,SAAS,GAAA;QACf,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAU;IAC7D;IAEQ,cAAc,GAAA;QACpB,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;IAClE;IAEQ,OAAO,iBAAiB,CAAC,GAAS,EAAA;QACxC,IAAI,CAAC,GAAG,EAAE,UAAU;AAAE,YAAA,OAAO,SAAS;QACtC,OAAO,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,YAAY,CAAuB;IACzE;IAEQ,OAAO,kBAAkB,CAAC,GAAS,EAAA;QACzC,IAAI,CAAC,GAAG,EAAE,UAAU;AAAE,YAAA,OAAO,SAAS;QACtC,OAAO,GAAG,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAuB;IAC1E;IAEQ,sBAAsB,CAAC,WAAiB,EAAE,OAAa,EAAA;AAC7D,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,OAAO,KAAK,WAAW,EAAE;YAC9D,OAAO;AACL,gBAAA,QAAQ,EAAE,MAAI,CAAC,iBAAiB,CAAC,WAAW,CAAC;AAC7C,gBAAA,IAAI,EAAE,MAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC;aACtC;QACH;AAEA,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,QAAQ,IAAI,IAAI,CAAC,OAAO,KAAK,WAAW,EAAE;YAC7D,OAAO;AACL,gBAAA,QAAQ,EAAE,MAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC;AAC9C,gBAAA,IAAI,EAAE,MAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC;aACvC;QACH;QAEA,OAAO;AACL,YAAA,QAAQ,EAAE,SAAS;AACnB,YAAA,IAAI,EAAE,SAAS;SAChB;IACH;IAEQ,4BAA4B,CAAC,WAAiB,EAAE,OAAa,EAAA;QACnE,IAAI,CAAC,WAAW,IAAI,CAAC,OAAO,IAAI,WAAW,KAAK,OAAO;YAAE;AAEzD,QAAA,MAAM,EAAE,QAAQ,EAAE,wBAAwB,EAAE,IAAI,EAAE,oBAAoB,EAAE,GACtE,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE,OAAO,CAAC;AACnD,QAAA,IAAI,CAAC,wBAAwB,IAAI,CAAC,oBAAoB;YAAE;AAExD,QAAA,MAAM,YAAY,GAAG,WAAW,CAAC,qBAAqB,EAAE;AACxD,QAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,qBAAqB,EAAE;QAEhD,MAAM,cAAc,GAAG,YAAY,CAAC,IAAI,GAAG,QAAQ,CAAC,IAAI;QACxD,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI,GAAG,YAAY,CAAC,IAAI;QACxD,MAAM,aAAa,GAAG,YAAY,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK;QACzD,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,GAAG,YAAY,CAAC,KAAK;AAEzD,QAAA,oBAAoB,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM;AAC9C,QAAA,oBAAoB,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG;QACxC,oBAAoB,CAAC,KAAK,CAAC,SAAS,GAAG,cAAc,cAAc,CAAA,WAAA,EAAc,aAAa,CAAA,CAAA,CAAG;AAEjG,QAAA,wBAAwB,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM;AAClD,QAAA,wBAAwB,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG;AAC5C,QAAA,wBAAwB,CAAC,KAAK,CAAC,SAAS,GAAG,yBAAyB;QAEpE,qBAAqB,CAAC,MAAK;AACzB,YAAA,oBAAoB,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE;AAC1C,YAAA,wBAAwB,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE;AAE9C,YAAA,oBAAoB,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG;AACxC,YAAA,oBAAoB,CAAC,KAAK,CAAC,SAAS,GAAG,yBAAyB;AAEhE,YAAA,wBAAwB,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG;YAC5C,wBAAwB,CAAC,KAAK,CAAC,SAAS,GAAG,cAAc,cAAc,CAAA,WAAA,EAAc,aAAa,CAAA,CAAA,CAAG;AACvG,QAAA,CAAC,CAAC;IACJ;IAEQ,+BAA+B,GAAA;AACrC,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,EAAE;AACvC,QAAA,IAAI,IAAI,CAAC,eAAe,IAAI,SAAS,IAAI,IAAI,CAAC,eAAe,KAAK,SAAS,EAAE;YAC3E,IAAI,CAAC,4BAA4B,CAAC,IAAI,CAAC,eAAe,EAAE,SAAS,CAAC;QACpE;AAEA,QAAA,IAAI,CAAC,eAAe,GAAG,SAAS;IAClC;IAmCA,MAAM,GAAA;AACJ,QAAA,OAAOC,CAAI,CAAA;;;;KAIV;IACH;;AAxKO,IAAA,CAAA,MAAM,GAAG,CAACC,QAAM,CAAC;AAEjB,IAAA,CAAA,GAAG,GAAG,GAAH;AAGV,UAAA,CAAA;AADC,IAAAC,CAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;AAC2C,CAAA,EAAA,IAAA,CAAA,SAAA,EAAA,SAAA,EAAA,MAAA,CAAA;AAEzC,UAAA,CAAA;AAA5B,IAAAA,CAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE;AAAkB,CAAA,EAAA,IAAA,CAAA,SAAA,EAAA,SAAA,EAAA,MAAA,CAAA;AARlC,IAAI,GAAA,MAAA,GAAA,UAAA,CAAA;IADhB;AACY,CAAA,EAAA,IAAI,CA0KhB;;;;"}
@@ -0,0 +1,24 @@
1
+ function throttle(func, delay, options = { leading: true, trailing: true }) {
2
+ let timerId;
3
+ let lastExec = 0;
4
+ return function (...args) {
5
+ // @ts-ignore
6
+ const context = this;
7
+ const now = Date.now();
8
+ const shouldCallNow = options.leading && now - lastExec >= delay;
9
+ if (shouldCallNow) {
10
+ func.apply(context, args);
11
+ lastExec = now;
12
+ }
13
+ else if (options.trailing && !timerId) {
14
+ timerId = setTimeout(() => {
15
+ func.apply(context, args);
16
+ lastExec = Date.now();
17
+ timerId = null;
18
+ }, delay);
19
+ }
20
+ };
21
+ }
22
+
23
+ export { throttle as t };
24
+ //# sourceMappingURL=throttle-C7ZAPqtu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"throttle-C7ZAPqtu.js","sources":["../../src/__internal/utils/throttle.ts"],"sourcesContent":["export function throttle(\n func: Function,\n delay: number,\n options = { leading: true, trailing: true },\n) {\n let timerId: any;\n let lastExec = 0;\n\n return function (...args: any[]) {\n // @ts-ignore\n const context = this;\n const now = Date.now();\n\n const shouldCallNow = options.leading && now - lastExec >= delay;\n\n if (shouldCallNow) {\n func.apply(context, args);\n lastExec = now;\n } else if (options.trailing && !timerId) {\n timerId = setTimeout(() => {\n func.apply(context, args);\n lastExec = Date.now();\n timerId = null;\n }, delay);\n }\n };\n}"],"names":[],"mappings":"SAAgB,QAAQ,CACtB,IAAc,EACd,KAAa,EACb,OAAO,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAA;AAE3C,IAAA,IAAI,OAAY;IAChB,IAAI,QAAQ,GAAG,CAAC;IAEhB,OAAO,UAAU,GAAG,IAAW,EAAA;;QAE7B,MAAM,OAAO,GAAG,IAAI;AACpB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE;QAEtB,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,IAAI,GAAG,GAAG,QAAQ,IAAI,KAAK;QAEhE,IAAI,aAAa,EAAE;AACjB,YAAA,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC;YACzB,QAAQ,GAAG,GAAG;QAChB;AAAO,aAAA,IAAI,OAAO,CAAC,QAAQ,IAAI,CAAC,OAAO,EAAE;AACvC,YAAA,OAAO,GAAG,UAAU,CAAC,MAAK;AACxB,gBAAA,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC;AACzB,gBAAA,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE;gBACrB,OAAO,GAAG,IAAI;YAChB,CAAC,EAAE,KAAK,CAAC;QACX;AACF,IAAA,CAAC;AACH;;;;"}
package/dist/toolbar.js CHANGED
@@ -1,6 +1,6 @@
1
- import { a as i, _ as __decorate, I as IndividualComponent, i as i$1, b } from './IndividualComponent-DUINtMGK.js';
2
- import { n } from './property-1psGvXOq.js';
3
- import { e } from './class-map-YU7g0o3B.js';
1
+ import { i, _ as __decorate, I as IndividualComponent, a as i$1, b } from './IndividualComponent-Bdwyrvd6.js';
2
+ import { n } from './property-B49QQ8pS.js';
3
+ import { e } from './class-map-DG7CA1et.js';
4
4
  import './directive-ZPhl09Yt.js';
5
5
 
6
6
  var css_248z$1 = i`* {
@@ -11,6 +11,10 @@ var css_248z$1 = i`* {
11
11
  display: none !important;
12
12
  }
13
13
 
14
+ [hidden] {
15
+ display: none !important;
16
+ }
17
+
14
18
  :host {
15
19
  display: block;
16
20
  --toolbar-container-shape: var(--shape-corner-full);
@@ -172,9 +176,9 @@ var Toolbar_1;
172
176
  * @tag wc-toolbar
173
177
  * @rawTag toolbar
174
178
  *
175
- * @summary A Material 3 toolbar / app bar for navigation and actions.
179
+ * @summary A toolbar / app bar for navigation and actions.
176
180
  * @overview
177
- * <p>The toolbar component implements the Material 3 app bar pattern. It supports a
181
+ * <p>The toolbar component implements the app bar pattern. It supports a
178
182
  * docked (attached) variant for bottom-panel navigation and a floating (detached pill-shaped)
179
183
  * variant. The floating variant supports both horizontal and vertical orientations.</p>
180
184
  *
@@ -1 +1 @@
1
- {"version":3,"file":"toolbar.js","sources":["../../src/toolbar/toolbar.ts"],"sourcesContent":["import { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport IndividualComponent from '@/IndividualComponent.js';\nimport styles from './toolbar.scss';\nimport colorStyles from './toolbar-colors.scss';\n\n/**\n * @label Toolbar\n * @tag wc-toolbar\n * @rawTag toolbar\n *\n * @summary A Material 3 toolbar / app bar for navigation and actions.\n * @overview\n * <p>The toolbar component implements the Material 3 app bar pattern. It supports a\n * docked (attached) variant for bottom-panel navigation and a floating (detached pill-shaped)\n * variant. The floating variant supports both horizontal and vertical orientations.</p>\n *\n * <p>Render toolbar actions directly as children of the component. The docked variant is\n * optimized for a horizontal action row, while the floating variant supports both horizontal\n * and vertical layouts.</p>\n *\n * @cssprop --toolbar-container-color - Background color of the toolbar.\n * @cssprop --toolbar-container-shape - Border radius of the toolbar. Relevant for the floating variant.\n * @cssprop --toolbar-height - Height of the toolbar (docked horizontal / floating horizontal).\n * @cssprop --toolbar-padding-inline - Inline padding of the toolbar.\n * @cssprop --toolbar-gap - Gap between toolbar sections.\n * @cssprop --toolbar-icon-color - Color of icon slots.\n * @cssprop --toolbar-title-color - Color of the title (default slot) text.\n * @cssprop --toolbar-shadow - Box-shadow of the toolbar.\n *\n * @example\n * ```html\n * <!-- Docked toolbar -->\n * <wc-toolbar>\n * <wc-icon-button variant=\"text\" color=\"surface\"><wc-icon name=\"home\"></wc-icon></wc-icon-button>\n * <wc-icon-button variant=\"tonal\"><wc-icon name=\"search\"></wc-icon></wc-icon-button>\n * <wc-icon-button variant=\"text\" color=\"surface\"><wc-icon name=\"favorite\"></wc-icon></wc-icon-button>\n * <wc-icon-button variant=\"text\" color=\"surface\"><wc-icon name=\"account_circle\"></wc-icon></wc-icon-button>\n * </wc-toolbar>\n * ```\n *\n * @example\n * ```html\n * <!-- Floating horizontal toolbar -->\n * <wc-toolbar variant=\"floating\" orientation=\"horizontal\">\n * <wc-icon-button variant=\"tonal\"><wc-icon name=\"home\"></wc-icon></wc-icon-button>\n * <wc-icon-button variant=\"text\"><wc-icon name=\"search\"></wc-icon></wc-icon-button>\n * <wc-icon-button variant=\"text\"><wc-icon name=\"favorite\"></wc-icon></wc-icon-button>\n * </wc-toolbar>\n * ```\n *\n * @example\n * ```html\n * <!-- Floating vertical toolbar -->\n * <wc-toolbar variant=\"floating\" orientation=\"vertical\">\n * <wc-icon-button variant=\"tonal\"><wc-icon name=\"home\"></wc-icon></wc-icon-button>\n * <wc-icon-button variant=\"text\"><wc-icon name=\"search\"></wc-icon></wc-icon-button>\n * <wc-icon-button variant=\"text\"><wc-icon name=\"favorite\"></wc-icon></wc-icon-button>\n * </wc-toolbar>\n * ```\n * @tags display navigation\n */\n@IndividualComponent\nexport class Toolbar extends LitElement {\n static styles = [styles, colorStyles];\n\n /**\n * Visual and layout variant of the toolbar.\n * - `\"docked\"`: A full-width bar attached to the edge of the screen (default).\n * - `\"floating\"`: A detached pill-shaped toolbar that floats over content.\n */\n @property({ type: String, reflect: true })\n variant: 'docked' | 'floating' = 'docked';\n\n /**\n * Orientation of the toolbar content.\n * - `\"horizontal\"`: Items are laid out left to right (default).\n * - `\"vertical\"`: Items are stacked top to bottom. Primarily useful for the floating variant.\n */\n @property({ type: String, reflect: true })\n orientation: 'horizontal' | 'vertical' = 'horizontal';\n\n /**\n * Size of the docked toolbar.\n * - `\"small\"`: 80dp height (default).\n * - `\"medium\"`: 96dp height.\n * - `\"large\"`: 112dp height.\n */\n @property({ type: String, reflect: true })\n size: 'small' | 'medium' | 'large' = 'small';\n\n /**\n * Whether the toolbar is visually elevated (adds a shadow).\n */\n @property({ type: Boolean, reflect: true })\n elevated: boolean = false;\n\n override render() {\n const cssClasses = {\n toolbar: true,\n [`variant-${this.variant}`]: true,\n [`orientation-${this.orientation}`]: true,\n [`size-${this.size}`]: true,\n elevated: this.elevated,\n };\n\n if (this.variant === 'floating') {\n return Toolbar.__renderFloating(cssClasses);\n }\n\n return Toolbar.__renderDocked(cssClasses);\n }\n\n private static __renderDocked(cssClasses: Record<string, boolean>) {\n return html`\n <div class=${classMap(cssClasses)} role=\"toolbar\">\n <div class=\"background\"></div>\n <div class=\"toolbar-content\">\n <slot></slot>\n </div>\n </div>\n `;\n }\n\n private static __renderFloating(cssClasses: Record<string, boolean>) {\n return html`\n <div class=${classMap(cssClasses)} role=\"toolbar\">\n <wc-elevation class=\"elevation\"></wc-elevation>\n <div class=\"background\"></div>\n <div class=\"toolbar-content\">\n <slot></slot>\n </div>\n </div>\n `;\n }\n}\n"],"names":["LitElement","html","classMap","styles","colorStyles","property"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuDG;AAEI,IAAM,OAAO,GAAA,SAAA,GAAb,MAAM,OAAQ,SAAQA,GAAU,CAAA;AAAhC,IAAA,WAAA,GAAA;;AAGL;;;;AAIG;QAEH,IAAA,CAAA,OAAO,GAA0B,QAAQ;AAEzC;;;;AAIG;QAEH,IAAA,CAAA,WAAW,GAA8B,YAAY;AAErD;;;;;AAKG;QAEH,IAAA,CAAA,IAAI,GAAiC,OAAO;AAE5C;;AAEG;QAEH,IAAA,CAAA,QAAQ,GAAY,KAAK;IAwC3B;IAtCW,MAAM,GAAA;AACb,QAAA,MAAM,UAAU,GAAG;AACjB,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,CAAC,WAAW,IAAI,CAAC,OAAO,CAAA,CAAE,GAAG,IAAI;AACjC,YAAA,CAAC,eAAe,IAAI,CAAC,WAAW,CAAA,CAAE,GAAG,IAAI;AACzC,YAAA,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAA,CAAE,GAAG,IAAI;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB;AAED,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,UAAU,EAAE;AAC/B,YAAA,OAAO,SAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC;QAC7C;AAEA,QAAA,OAAO,SAAO,CAAC,cAAc,CAAC,UAAU,CAAC;IAC3C;IAEQ,OAAO,cAAc,CAAC,UAAmC,EAAA;AAC/D,QAAA,OAAOC,CAAI,CAAA;mBACIC,CAAQ,CAAC,UAAU,CAAC,CAAA;;;;;;KAMlC;IACH;IAEQ,OAAO,gBAAgB,CAAC,UAAmC,EAAA;AACjE,QAAA,OAAOD,CAAI,CAAA;mBACIC,CAAQ,CAAC,UAAU,CAAC,CAAA;;;;;;;KAOlC;IACH;;AAtEO,OAAA,CAAA,MAAM,GAAG,CAACC,UAAM,EAAEC,QAAW,CAAC;AAQrC,UAAA,CAAA;IADCC,CAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;AACC,CAAA,EAAA,OAAA,CAAA,SAAA,EAAA,SAAA,EAAA,MAAA,CAAA;AAQ1C,UAAA,CAAA;IADCA,CAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;AACa,CAAA,EAAA,OAAA,CAAA,SAAA,EAAA,aAAA,EAAA,MAAA,CAAA;AAStD,UAAA,CAAA;IADCA,CAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;AACI,CAAA,EAAA,OAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,CAAA;AAM7C,UAAA,CAAA;IADCA,CAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;AAChB,CAAA,EAAA,OAAA,CAAA,SAAA,EAAA,UAAA,EAAA,MAAA,CAAA;AAhCf,OAAO,GAAA,SAAA,GAAA,UAAA,CAAA;IADnB;AACY,CAAA,EAAA,OAAO,CAwEnB;;;;"}
1
+ {"version":3,"file":"toolbar.js","sources":["../../src/toolbar/toolbar.ts"],"sourcesContent":["import { LitElement, html } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport IndividualComponent from '@/IndividualComponent.js';\nimport styles from './toolbar.scss';\nimport colorStyles from './toolbar-colors.scss';\n\n/**\n * @label Toolbar\n * @tag wc-toolbar\n * @rawTag toolbar\n *\n * @summary A toolbar / app bar for navigation and actions.\n * @overview\n * <p>The toolbar component implements the app bar pattern. It supports a\n * docked (attached) variant for bottom-panel navigation and a floating (detached pill-shaped)\n * variant. The floating variant supports both horizontal and vertical orientations.</p>\n *\n * <p>Render toolbar actions directly as children of the component. The docked variant is\n * optimized for a horizontal action row, while the floating variant supports both horizontal\n * and vertical layouts.</p>\n *\n * @cssprop --toolbar-container-color - Background color of the toolbar.\n * @cssprop --toolbar-container-shape - Border radius of the toolbar. Relevant for the floating variant.\n * @cssprop --toolbar-height - Height of the toolbar (docked horizontal / floating horizontal).\n * @cssprop --toolbar-padding-inline - Inline padding of the toolbar.\n * @cssprop --toolbar-gap - Gap between toolbar sections.\n * @cssprop --toolbar-icon-color - Color of icon slots.\n * @cssprop --toolbar-title-color - Color of the title (default slot) text.\n * @cssprop --toolbar-shadow - Box-shadow of the toolbar.\n *\n * @example\n * ```html\n * <!-- Docked toolbar -->\n * <wc-toolbar>\n * <wc-icon-button variant=\"text\" color=\"surface\"><wc-icon name=\"home\"></wc-icon></wc-icon-button>\n * <wc-icon-button variant=\"tonal\"><wc-icon name=\"search\"></wc-icon></wc-icon-button>\n * <wc-icon-button variant=\"text\" color=\"surface\"><wc-icon name=\"favorite\"></wc-icon></wc-icon-button>\n * <wc-icon-button variant=\"text\" color=\"surface\"><wc-icon name=\"account_circle\"></wc-icon></wc-icon-button>\n * </wc-toolbar>\n * ```\n *\n * @example\n * ```html\n * <!-- Floating horizontal toolbar -->\n * <wc-toolbar variant=\"floating\" orientation=\"horizontal\">\n * <wc-icon-button variant=\"tonal\"><wc-icon name=\"home\"></wc-icon></wc-icon-button>\n * <wc-icon-button variant=\"text\"><wc-icon name=\"search\"></wc-icon></wc-icon-button>\n * <wc-icon-button variant=\"text\"><wc-icon name=\"favorite\"></wc-icon></wc-icon-button>\n * </wc-toolbar>\n * ```\n *\n * @example\n * ```html\n * <!-- Floating vertical toolbar -->\n * <wc-toolbar variant=\"floating\" orientation=\"vertical\">\n * <wc-icon-button variant=\"tonal\"><wc-icon name=\"home\"></wc-icon></wc-icon-button>\n * <wc-icon-button variant=\"text\"><wc-icon name=\"search\"></wc-icon></wc-icon-button>\n * <wc-icon-button variant=\"text\"><wc-icon name=\"favorite\"></wc-icon></wc-icon-button>\n * </wc-toolbar>\n * ```\n * @tags display navigation\n */\n@IndividualComponent\nexport class Toolbar extends LitElement {\n static styles = [styles, colorStyles];\n\n /**\n * Visual and layout variant of the toolbar.\n * - `\"docked\"`: A full-width bar attached to the edge of the screen (default).\n * - `\"floating\"`: A detached pill-shaped toolbar that floats over content.\n */\n @property({ type: String, reflect: true })\n variant: 'docked' | 'floating' = 'docked';\n\n /**\n * Orientation of the toolbar content.\n * - `\"horizontal\"`: Items are laid out left to right (default).\n * - `\"vertical\"`: Items are stacked top to bottom. Primarily useful for the floating variant.\n */\n @property({ type: String, reflect: true })\n orientation: 'horizontal' | 'vertical' = 'horizontal';\n\n /**\n * Size of the docked toolbar.\n * - `\"small\"`: 80dp height (default).\n * - `\"medium\"`: 96dp height.\n * - `\"large\"`: 112dp height.\n */\n @property({ type: String, reflect: true })\n size: 'small' | 'medium' | 'large' = 'small';\n\n /**\n * Whether the toolbar is visually elevated (adds a shadow).\n */\n @property({ type: Boolean, reflect: true })\n elevated: boolean = false;\n\n override render() {\n const cssClasses = {\n toolbar: true,\n [`variant-${this.variant}`]: true,\n [`orientation-${this.orientation}`]: true,\n [`size-${this.size}`]: true,\n elevated: this.elevated,\n };\n\n if (this.variant === 'floating') {\n return Toolbar.__renderFloating(cssClasses);\n }\n\n return Toolbar.__renderDocked(cssClasses);\n }\n\n private static __renderDocked(cssClasses: Record<string, boolean>) {\n return html`\n <div class=${classMap(cssClasses)} role=\"toolbar\">\n <div class=\"background\"></div>\n <div class=\"toolbar-content\">\n <slot></slot>\n </div>\n </div>\n `;\n }\n\n private static __renderFloating(cssClasses: Record<string, boolean>) {\n return html`\n <div class=${classMap(cssClasses)} role=\"toolbar\">\n <wc-elevation class=\"elevation\"></wc-elevation>\n <div class=\"background\"></div>\n <div class=\"toolbar-content\">\n <slot></slot>\n </div>\n </div>\n `;\n }\n}\n"],"names":["LitElement","html","classMap","styles","colorStyles","property"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuDG;AAEI,IAAM,OAAO,GAAA,SAAA,GAAb,MAAM,OAAQ,SAAQA,GAAU,CAAA;AAAhC,IAAA,WAAA,GAAA;;AAGL;;;;AAIG;QAEH,IAAA,CAAA,OAAO,GAA0B,QAAQ;AAEzC;;;;AAIG;QAEH,IAAA,CAAA,WAAW,GAA8B,YAAY;AAErD;;;;;AAKG;QAEH,IAAA,CAAA,IAAI,GAAiC,OAAO;AAE5C;;AAEG;QAEH,IAAA,CAAA,QAAQ,GAAY,KAAK;IAwC3B;IAtCW,MAAM,GAAA;AACb,QAAA,MAAM,UAAU,GAAG;AACjB,YAAA,OAAO,EAAE,IAAI;AACb,YAAA,CAAC,WAAW,IAAI,CAAC,OAAO,CAAA,CAAE,GAAG,IAAI;AACjC,YAAA,CAAC,eAAe,IAAI,CAAC,WAAW,CAAA,CAAE,GAAG,IAAI;AACzC,YAAA,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAA,CAAE,GAAG,IAAI;YAC3B,QAAQ,EAAE,IAAI,CAAC,QAAQ;SACxB;AAED,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,UAAU,EAAE;AAC/B,YAAA,OAAO,SAAO,CAAC,gBAAgB,CAAC,UAAU,CAAC;QAC7C;AAEA,QAAA,OAAO,SAAO,CAAC,cAAc,CAAC,UAAU,CAAC;IAC3C;IAEQ,OAAO,cAAc,CAAC,UAAmC,EAAA;AAC/D,QAAA,OAAOC,CAAI,CAAA;mBACIC,CAAQ,CAAC,UAAU,CAAC,CAAA;;;;;;KAMlC;IACH;IAEQ,OAAO,gBAAgB,CAAC,UAAmC,EAAA;AACjE,QAAA,OAAOD,CAAI,CAAA;mBACIC,CAAQ,CAAC,UAAU,CAAC,CAAA;;;;;;;KAOlC;IACH;;AAtEO,OAAA,CAAA,MAAM,GAAG,CAACC,UAAM,EAAEC,QAAW,CAAC;AAQrC,UAAA,CAAA;IADCC,CAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;AACC,CAAA,EAAA,OAAA,CAAA,SAAA,EAAA,SAAA,EAAA,MAAA,CAAA;AAQ1C,UAAA,CAAA;IADCA,CAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;AACa,CAAA,EAAA,OAAA,CAAA,SAAA,EAAA,aAAA,EAAA,MAAA,CAAA;AAStD,UAAA,CAAA;IADCA,CAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;AACI,CAAA,EAAA,OAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,CAAA;AAM7C,UAAA,CAAA;IADCA,CAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;AAChB,CAAA,EAAA,OAAA,CAAA,SAAA,EAAA,UAAA,EAAA,MAAA,CAAA;AAhCf,OAAO,GAAA,SAAA,GAAA,UAAA,CAAA;IADnB;AACY,CAAA,EAAA,OAAO,CAwEnB;;;;"}
@@ -0,0 +1,270 @@
1
+ import { i, _ as __decorate, I as IndividualComponent, a as i$1, b } from './IndividualComponent-Bdwyrvd6.js';
2
+ import { n } from './property-B49QQ8pS.js';
3
+ import { e } from './class-map-DG7CA1et.js';
4
+ import { F as FloatingController } from './floating-controller-CnUZnOhK.js';
5
+ import './directive-ZPhl09Yt.js';
6
+
7
+ var css_248z = i`* {
8
+ box-sizing: border-box;
9
+ }
10
+
11
+ .screen-reader-only {
12
+ display: none !important;
13
+ }
14
+
15
+ [hidden] {
16
+ display: none !important;
17
+ }
18
+
19
+ :host(:not([preview])) {
20
+ position: absolute;
21
+ top: 0;
22
+ left: 0;
23
+ pointer-events: none;
24
+ transition: transform var(--duration-short2) ease-in-out, opacity var(--duration-short2) ease-in-out;
25
+ transform: scale(0);
26
+ opacity: 0;
27
+ }
28
+ :host(:not([preview])):host([open]) {
29
+ pointer-events: auto;
30
+ transform: scale(1);
31
+ opacity: 1;
32
+ }
33
+
34
+ .variant-plain .tooltip-content {
35
+ display: inline-block;
36
+ font-family: var(--typography-body-small-font-family) !important;
37
+ font-size: var(--typography-body-small-font-size) !important;
38
+ font-weight: var(--typography-body-small-font-weight) !important;
39
+ line-height: var(--typography-body-small-line-height) !important;
40
+ letter-spacing: var(--typography-body-small-letter-spacing) !important;
41
+ max-width: 17.5rem;
42
+ padding-inline: var(--spacing-100);
43
+ padding-block: var(--spacing-050);
44
+ color: var(--color-inverse-on-surface);
45
+ background-color: var(--color-inverse-surface);
46
+ border-radius: var(--shape-corner-extra-small);
47
+ }
48
+
49
+ .variant-rich .tooltip-content {
50
+ display: inline-block;
51
+ max-width: 17.5rem;
52
+ padding-block: var(--spacing-150) var(--spacing-100);
53
+ color: var(--color-on-surface-variant);
54
+ background-color: var(--color-surface-container);
55
+ border-radius: var(--shape-corner-medium);
56
+ }
57
+ .variant-rich .elevation {
58
+ --elevation-level: 2;
59
+ --elevation-container-shape: var(--shape-corner-medium);
60
+ }
61
+ .variant-rich .tooltip-title {
62
+ font-family: var(--typography-title-small-font-family) !important;
63
+ font-size: var(--typography-title-small-font-size) !important;
64
+ font-weight: var(--typography-title-small-font-weight) !important;
65
+ line-height: var(--typography-title-small-line-height) !important;
66
+ letter-spacing: var(--typography-title-small-letter-spacing) !important;
67
+ margin-block-end: var(--spacing-050);
68
+ padding-inline: var(--spacing-200);
69
+ }
70
+ .variant-rich .tooltip-support-text {
71
+ font-family: var(--typography-body-medium-font-family) !important;
72
+ font-size: var(--typography-body-medium-font-size) !important;
73
+ font-weight: var(--typography-body-medium-font-weight) !important;
74
+ line-height: var(--typography-body-medium-line-height) !important;
75
+ letter-spacing: var(--typography-body-medium-letter-spacing) !important;
76
+ padding-inline: var(--spacing-200);
77
+ }
78
+ .variant-rich .tooltip-actions {
79
+ margin-top: var(--spacing-150);
80
+ padding-inline: var(--spacing-050);
81
+ display: flex;
82
+ align-items: center;
83
+ gap: var(--spacing-100);
84
+ }`;
85
+
86
+ /**
87
+ * @label Tooltip
88
+ * @tag wc-tooltip
89
+ * @rawTag tooltip
90
+ * @summary Displays a tooltip for an element.
91
+ * @tags display
92
+ *
93
+ * @example
94
+ * ```html
95
+ * <wc-tooltip preview>Tooltip</wc-tooltip>
96
+ * ```
97
+ */
98
+ let Tooltip = class Tooltip extends i$1 {
99
+ constructor() {
100
+ super(...arguments);
101
+ this.content = '';
102
+ /**
103
+ * The ID of the element the tooltip should attach to.
104
+ * If not provided, it defaults to the parent element.
105
+ */
106
+ this.for = '';
107
+ this.trigger = 'hover focus';
108
+ this.open = false;
109
+ this.variant = 'plain';
110
+ this.preview = false;
111
+ this._target = null;
112
+ this._floating = null;
113
+ }
114
+ resolveTrigger() {
115
+ if (this.preview)
116
+ return 'manual';
117
+ const triggerTokens = this.trigger.split(' ');
118
+ const hasHover = triggerTokens.includes('hover');
119
+ const hasFocus = triggerTokens.includes('focus');
120
+ const hasClick = triggerTokens.includes('click');
121
+ if (hasClick)
122
+ return 'click';
123
+ if (hasHover && hasFocus)
124
+ return 'hover-focus';
125
+ if (hasFocus)
126
+ return 'focus';
127
+ if (hasHover)
128
+ return 'hover';
129
+ return 'manual';
130
+ }
131
+ detachListeners() {
132
+ if (this._floating) {
133
+ this._floating.close();
134
+ this._floating = null;
135
+ }
136
+ this._target = null;
137
+ }
138
+ set forElement(value) {
139
+ if (value) {
140
+ this._focusTarget = value;
141
+ }
142
+ else {
143
+ this._focusTarget = undefined;
144
+ }
145
+ }
146
+ __getFocusTarget() {
147
+ if (this._focusTarget) {
148
+ return this._focusTarget;
149
+ }
150
+ const focusTarget = document.getElementById(this.for);
151
+ if (focusTarget) {
152
+ return focusTarget;
153
+ }
154
+ return this.parentElement;
155
+ }
156
+ attachListeners() {
157
+ this.detachListeners();
158
+ // Resolve target: ID-based lookup or fallback to parent
159
+ const root = this.getRootNode();
160
+ this._target = this.for
161
+ ? root.getElementById(this.for)
162
+ : this.parentElement;
163
+ if (!this._target)
164
+ return;
165
+ this._floating = new FloatingController(this, {
166
+ placement: 'top',
167
+ strategy: 'fixed',
168
+ offset: 0,
169
+ trigger: this.resolveTrigger(),
170
+ closeOnClickOutside: true,
171
+ onOpenChange: isOpen => {
172
+ if (this.open === isOpen)
173
+ return;
174
+ this.open = isOpen;
175
+ },
176
+ });
177
+ this._floating.setElements(this._target, this);
178
+ }
179
+ connectedCallback() {
180
+ super.connectedCallback();
181
+ this.attachListeners();
182
+ }
183
+ disconnectedCallback() {
184
+ this.detachListeners();
185
+ super.disconnectedCallback();
186
+ }
187
+ updated(changedProps) {
188
+ // If the 'for' property changes, re-bind listeners to the new target
189
+ if (changedProps.has('for')) {
190
+ this.attachListeners();
191
+ }
192
+ if (changedProps.has('trigger') || changedProps.has('preview')) {
193
+ this.attachListeners();
194
+ }
195
+ if (this._floating && this._target) {
196
+ this._floating.setElements(this._target, this);
197
+ if (changedProps.has('open') && this.open && !this._floating.isOpen) {
198
+ this._floating.open();
199
+ }
200
+ if (changedProps.has('open') && !this.open && this._floating.isOpen) {
201
+ this._floating.close();
202
+ }
203
+ }
204
+ }
205
+ render() {
206
+ return b ` <div
207
+ class=${e({
208
+ tooltip: true,
209
+ [`variant-${this.variant}`]: true,
210
+ })}
211
+ id="tooltip"
212
+ role="tooltip"
213
+ aria-hidden=${!this.open}
214
+ aria-labelledby="tooltip-labelledby"
215
+ >
216
+ ${this.variant === 'plain'
217
+ ? this.__renderPlainTooltip()
218
+ : this.__renderRichTooltip()}
219
+ </div>`;
220
+ }
221
+ // eslint-disable-next-line class-methods-use-this
222
+ __renderPlainTooltip() {
223
+ return b `<div class="tooltip-content" id="tooltip-labelledby">
224
+ <slot></slot>
225
+ </div>`;
226
+ }
227
+ // eslint-disable-next-line class-methods-use-this
228
+ __renderRichTooltip() {
229
+ return b `
230
+ <div class="tooltip-content">
231
+ <wc-elevation class="elevation"></wc-elevation>
232
+
233
+ <div class="tooltip-title" id="tooltip-labelledby">
234
+ <slot name="title"></slot>
235
+ </div>
236
+ <div class="tooltip-support-text">
237
+ <slot></slot>
238
+ </div>
239
+ <div class="tooltip-actions">
240
+ <slot name="actions"></slot>
241
+ </div>
242
+ </div>
243
+ `;
244
+ }
245
+ };
246
+ Tooltip.styles = [css_248z];
247
+ __decorate([
248
+ n()
249
+ ], Tooltip.prototype, "content", void 0);
250
+ __decorate([
251
+ n()
252
+ ], Tooltip.prototype, "for", void 0);
253
+ __decorate([
254
+ n({ type: String })
255
+ ], Tooltip.prototype, "trigger", void 0);
256
+ __decorate([
257
+ n({ type: Boolean, reflect: true })
258
+ ], Tooltip.prototype, "open", void 0);
259
+ __decorate([
260
+ n({ type: String, reflect: true })
261
+ ], Tooltip.prototype, "variant", void 0);
262
+ __decorate([
263
+ n({ type: Boolean, reflect: true })
264
+ ], Tooltip.prototype, "preview", void 0);
265
+ Tooltip = __decorate([
266
+ IndividualComponent
267
+ ], Tooltip);
268
+
269
+ export { Tooltip };
270
+ //# sourceMappingURL=tooltip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip.js","sources":["../../src/tooltip/tooltip.ts"],"sourcesContent":["import { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport styles from './tooltip.scss';\nimport { FloatingController } from '../__internal/controllers/floating-controller.js';\nimport IndividualComponent from '@/IndividualComponent.js';\n\n// Define a type for valid trigger combinations\nexport type TooltipTrigger = 'hover' | 'focus' | 'click';\n\n/**\n * @label Tooltip\n * @tag wc-tooltip\n * @rawTag tooltip\n * @summary Displays a tooltip for an element.\n * @tags display\n *\n * @example\n * ```html\n * <wc-tooltip preview>Tooltip</wc-tooltip>\n * ```\n */\n@IndividualComponent\nexport class Tooltip extends LitElement {\n static styles = [styles];\n\n @property() content: string = '';\n\n /**\n * The ID of the element the tooltip should attach to.\n * If not provided, it defaults to the parent element.\n */\n @property() for: string = '';\n\n @property({ type: String }) trigger: string = 'hover focus';\n\n @property({ type: Boolean, reflect: true }) open = false;\n\n @property({ type: String, reflect: true }) variant: 'plain' | 'rich' =\n 'plain';\n\n @property({ type: Boolean, reflect: true }) preview = false;\n\n private _target: HTMLElement | null = null;\n\n private _floating: FloatingController | null = null;\n\n private resolveTrigger():\n | 'hover'\n | 'click'\n | 'focus'\n | 'manual'\n | 'hover-focus' {\n if (this.preview) return 'manual';\n\n const triggerTokens = this.trigger.split(' ');\n const hasHover = triggerTokens.includes('hover');\n const hasFocus = triggerTokens.includes('focus');\n const hasClick = triggerTokens.includes('click');\n\n if (hasClick) return 'click';\n if (hasHover && hasFocus) return 'hover-focus';\n if (hasFocus) return 'focus';\n if (hasHover) return 'hover';\n return 'manual';\n }\n\n private detachListeners() {\n if (this._floating) {\n this._floating.close();\n this._floating = null;\n }\n this._target = null;\n }\n\n _focusTarget?: HTMLElement;\n\n set forElement(value: HTMLElement | null) {\n if (value) {\n this._focusTarget = value;\n } else {\n this._focusTarget = undefined;\n }\n }\n\n __getFocusTarget(): HTMLElement | null {\n if (this._focusTarget) {\n return this._focusTarget;\n }\n\n const focusTarget = document.getElementById(this.for);\n if (focusTarget) {\n return focusTarget;\n }\n\n return this.parentElement;\n }\n\n private attachListeners() {\n this.detachListeners();\n\n // Resolve target: ID-based lookup or fallback to parent\n const root = this.getRootNode() as ShadowRoot | Document;\n this._target = this.for\n ? (root.getElementById(this.for) as HTMLElement)\n : this.parentElement;\n\n if (!this._target) return;\n\n this._floating = new FloatingController(this, {\n placement: 'top',\n strategy: 'fixed',\n offset: 0,\n trigger: this.resolveTrigger(),\n closeOnClickOutside: true,\n onOpenChange: isOpen => {\n if (this.open === isOpen) return;\n this.open = isOpen;\n },\n });\n\n this._floating.setElements(this._target, this);\n }\n\n connectedCallback() {\n super.connectedCallback();\n this.attachListeners();\n }\n\n disconnectedCallback() {\n this.detachListeners();\n super.disconnectedCallback();\n }\n\n protected updated(changedProps: Map<string, any>) {\n // If the 'for' property changes, re-bind listeners to the new target\n if (changedProps.has('for')) {\n this.attachListeners();\n }\n\n if (changedProps.has('trigger') || changedProps.has('preview')) {\n this.attachListeners();\n }\n\n if (this._floating && this._target) {\n this._floating.setElements(this._target, this);\n\n if (changedProps.has('open') && this.open && !this._floating.isOpen) {\n this._floating.open();\n }\n\n if (changedProps.has('open') && !this.open && this._floating.isOpen) {\n this._floating.close();\n }\n }\n }\n\n render() {\n return html` <div\n class=${classMap({\n tooltip: true,\n [`variant-${this.variant}`]: true,\n })}\n id=\"tooltip\"\n role=\"tooltip\"\n aria-hidden=${!this.open}\n aria-labelledby=\"tooltip-labelledby\"\n >\n ${this.variant === 'plain'\n ? this.__renderPlainTooltip()\n : this.__renderRichTooltip()}\n </div>`;\n }\n\n // eslint-disable-next-line class-methods-use-this\n __renderPlainTooltip() {\n return html`<div class=\"tooltip-content\" id=\"tooltip-labelledby\">\n <slot></slot>\n </div>`;\n }\n\n // eslint-disable-next-line class-methods-use-this\n __renderRichTooltip() {\n return html`\n <div class=\"tooltip-content\">\n <wc-elevation class=\"elevation\"></wc-elevation>\n\n <div class=\"tooltip-title\" id=\"tooltip-labelledby\">\n <slot name=\"title\"></slot>\n </div>\n <div class=\"tooltip-support-text\">\n <slot></slot>\n </div>\n <div class=\"tooltip-actions\">\n <slot name=\"actions\"></slot>\n </div>\n </div>\n `;\n }\n}\n"],"names":["LitElement","html","classMap","styles","property"],"mappings":"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"}