@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/avatar.js ADDED
@@ -0,0 +1,114 @@
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 './directive-ZPhl09Yt.js';
5
+
6
+ var css_248z = i`* {
7
+ box-sizing: border-box;
8
+ }
9
+
10
+ .screen-reader-only {
11
+ display: none !important;
12
+ }
13
+
14
+ [hidden] {
15
+ display: none !important;
16
+ }
17
+
18
+ :host {
19
+ display: inline-block;
20
+ pointer-events: none;
21
+ --avatar-size: 2rem;
22
+ --avatar-container-color: var(--color-primary);
23
+ --avatar-text-color: var(--color-on-primary);
24
+ --avatar-container-shape: var(--global-avatar-container-shape);
25
+ }
26
+
27
+ .avatar-container {
28
+ display: flex;
29
+ align-items: center;
30
+ gap: var(--spacing-050);
31
+ line-height: 0;
32
+ }
33
+
34
+ .avatar {
35
+ border-radius: var(--avatar-container-shape);
36
+ display: flex;
37
+ justify-content: center;
38
+ align-items: center;
39
+ color: var(--avatar-text-color);
40
+ width: var(--avatar-size);
41
+ height: var(--avatar-size);
42
+ font-family: var(--typography-body-large-emphasized-font-family) !important;
43
+ font-size: var(--typography-body-large-emphasized-font-size) !important;
44
+ font-weight: var(--typography-body-large-emphasized-font-weight) !important;
45
+ line-height: var(--typography-body-large-emphasized-line-height) !important;
46
+ letter-spacing: var(--typography-body-large-emphasized-letter-spacing) !important;
47
+ background-color: var(--avatar-container-color);
48
+ font-size: calc(var(--avatar-size) * 0.5) !important;
49
+ }
50
+ .avatar .image {
51
+ width: 100%;
52
+ height: 100%;
53
+ overflow: hidden;
54
+ border-radius: inherit;
55
+ }`;
56
+
57
+ /**
58
+ * @label Avatar
59
+ * @tag wc-avatar
60
+ * @rawTag avatar
61
+ * @summary The Avatar component is used to represent user, and displays the profile picture, initials or fallback icon.
62
+ *
63
+ * @cssprop --avatar-border-radius - Controls the border radius of the avatar.
64
+ * @cssprop --avatar-container-color - Controls the color of the avatar container.
65
+ * @cssprop --avatar-size - Controls the size of the avatar.
66
+ * @cssprop --avatar-text-color - Controls the color of the text inside the avatar.
67
+ *
68
+ *
69
+ * @example
70
+ * ```html
71
+ * <wc-avatar name="Shivaji Varma" src="https://peacock.redvars.com/assets/img/avatar.xs.webp" style='--avatar-size: 4rem'></wc-avatar>
72
+ * ```
73
+ *
74
+ * @tags display
75
+ */
76
+ let Avatar = class Avatar extends i$1 {
77
+ constructor() {
78
+ super(...arguments);
79
+ /** Full name of the person. Used to derive initials when no `src` is provided. */
80
+ this.name = '';
81
+ }
82
+ render() {
83
+ return b `<div class="avatar-container">
84
+ <div
85
+ class=${e({
86
+ avatar: true,
87
+ initials: !this.src,
88
+ image: !!this.src,
89
+ })}
90
+ >
91
+ ${this.src
92
+ ? b `<img class="image" src=${this.src} alt=${this.name} />`
93
+ : b `<div class="initials">${this.__getInitials()}</div>`}
94
+ </div>
95
+ </div>`;
96
+ }
97
+ __getInitials() {
98
+ const [first = '', last = ''] = this.name.split(' ');
99
+ return `${first.charAt(0)}${last.charAt(0)}`.toUpperCase();
100
+ }
101
+ };
102
+ Avatar.styles = [css_248z];
103
+ __decorate([
104
+ n({ type: String, reflect: true })
105
+ ], Avatar.prototype, "name", void 0);
106
+ __decorate([
107
+ n({ type: String, reflect: true })
108
+ ], Avatar.prototype, "src", void 0);
109
+ Avatar = __decorate([
110
+ IndividualComponent
111
+ ], Avatar);
112
+
113
+ export { Avatar };
114
+ //# sourceMappingURL=avatar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"avatar.js","sources":["../../src/avatar/avatar.ts"],"sourcesContent":["import { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport styles from './avatar.scss';\nimport IndividualComponent from '@/IndividualComponent.js';\n\n/**\n * @label Avatar\n * @tag wc-avatar\n * @rawTag avatar\n * @summary The Avatar component is used to represent user, and displays the profile picture, initials or fallback icon.\n *\n * @cssprop --avatar-border-radius - Controls the border radius of the avatar.\n * @cssprop --avatar-container-color - Controls the color of the avatar container.\n * @cssprop --avatar-size - Controls the size of the avatar.\n * @cssprop --avatar-text-color - Controls the color of the text inside the avatar.\n *\n *\n * @example\n * ```html\n * <wc-avatar name=\"Shivaji Varma\" src=\"https://peacock.redvars.com/assets/img/avatar.xs.webp\" style='--avatar-size: 4rem'></wc-avatar>\n * ```\n *\n * @tags display\n */\n@IndividualComponent\nexport class Avatar extends LitElement {\n static styles = [styles];\n\n /** Full name of the person. Used to derive initials when no `src` is provided. */\n @property({ type: String, reflect: true }) name: string = '';\n\n /** URL of the avatar image. When provided, the image is displayed instead of initials. */\n @property({ type: String, reflect: true }) src?: string;\n\n render() {\n return html`<div class=\"avatar-container\">\n <div\n class=${classMap({\n avatar: true,\n initials: !this.src,\n image: !!this.src,\n })}\n >\n ${this.src\n ? html`<img class=\"image\" src=${this.src} alt=${this.name} />`\n : html`<div class=\"initials\">${this.__getInitials()}</div>`}\n </div>\n </div>`;\n }\n\n private __getInitials() {\n const [first = '', last = ''] = this.name.split(' ');\n return `${first.charAt(0)}${last.charAt(0)}`.toUpperCase();\n }\n}\n"],"names":["LitElement","html","classMap","styles","property"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA;;;;;;;;;;;;;;;;;;AAkBG;AAEI,IAAM,MAAM,GAAZ,MAAM,MAAO,SAAQA,GAAU,CAAA;AAA/B,IAAA,WAAA,GAAA;;;QAIsC,IAAA,CAAA,IAAI,GAAW,EAAE;IAyB9D;IApBE,MAAM,GAAA;AACJ,QAAA,OAAOC,CAAI,CAAA,CAAA;;AAEC,cAAA,EAAAC,CAAQ,CAAC;AACf,YAAA,MAAM,EAAE,IAAI;AACZ,YAAA,QAAQ,EAAE,CAAC,IAAI,CAAC,GAAG;AACnB,YAAA,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG;SAClB,CAAC;;AAEA,QAAA,EAAA,IAAI,CAAC;cACHD,CAAI,CAAA,CAAA,uBAAA,EAA0B,IAAI,CAAC,GAAG,CAAA,KAAA,EAAQ,IAAI,CAAC,IAAI,CAAA,GAAA;cACvDA,CAAI,CAAA,CAAA,sBAAA,EAAyB,IAAI,CAAC,aAAa,EAAE,CAAA,MAAA,CAAQ;;WAE1D;IACT;IAEQ,aAAa,GAAA;AACnB,QAAA,MAAM,CAAC,KAAK,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;AACpD,QAAA,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA,EAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE;IAC5D;;AA3BO,MAAA,CAAA,MAAM,GAAG,CAACE,QAAM,CAAC;AAGmB,UAAA,CAAA;IAA1CC,CAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;AAAoB,CAAA,EAAA,MAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,CAAA;AAGlB,UAAA,CAAA;IAA1CA,CAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;AAAe,CAAA,EAAA,MAAA,CAAA,SAAA,EAAA,KAAA,EAAA,MAAA,CAAA;AAP7C,MAAM,GAAA,UAAA,CAAA;IADlB;AACY,CAAA,EAAA,MAAM,CA6BlB;;;;"}
package/dist/badge.js ADDED
@@ -0,0 +1,91 @@
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 './directive-ZPhl09Yt.js';
5
+
6
+ var css_248z = i`* {
7
+ box-sizing: border-box;
8
+ }
9
+
10
+ .screen-reader-only {
11
+ display: none !important;
12
+ }
13
+
14
+ [hidden] {
15
+ display: none !important;
16
+ }
17
+
18
+ :host {
19
+ display: inline-block;
20
+ --badge-color: var(--global-badge-color);
21
+ z-index: var(--z-index-badge);
22
+ }
23
+
24
+ .badge {
25
+ pointer-events: none;
26
+ color: var(--color-white);
27
+ display: flex;
28
+ justify-content: center;
29
+ align-items: center;
30
+ background-color: var(--badge-color);
31
+ border-radius: var(--shape-corner-full);
32
+ }
33
+ .badge.has-value {
34
+ height: 1rem;
35
+ min-width: 1rem;
36
+ padding-inline: var(--spacing-050);
37
+ font-family: var(--typography-label-small-font-family) !important;
38
+ font-size: var(--typography-label-small-font-size) !important;
39
+ font-weight: var(--typography-label-small-font-weight) !important;
40
+ line-height: var(--typography-label-small-line-height) !important;
41
+ letter-spacing: var(--typography-label-small-letter-spacing) !important;
42
+ color: var(--color-on-error);
43
+ }
44
+ .badge:not(.has-value) {
45
+ height: 0.375rem;
46
+ width: 0.375rem;
47
+ }`;
48
+
49
+ /**
50
+ * @label Badge
51
+ * @tag wc-badge
52
+ * @rawTag badge
53
+ * @summary The badge component is used to display a small amount of information to the user.
54
+ *
55
+ * @cssprop --badge-color - Controls the color of the badge.
56
+ *
57
+ * @example
58
+ * ```html
59
+ * <wc-badge value="1"></wc-badge>
60
+ * ```
61
+ * @tags display
62
+ */
63
+ let Badge = class Badge extends i$1 {
64
+ constructor() {
65
+ super(...arguments);
66
+ /**
67
+ * The value to display in the badge.
68
+ */
69
+ this.value = '';
70
+ }
71
+ render() {
72
+ return b `<div
73
+ class=${e({
74
+ badge: true,
75
+ 'has-value': !!this.value,
76
+ })}
77
+ >
78
+ ${this.value}
79
+ </div>`;
80
+ }
81
+ };
82
+ Badge.styles = [css_248z];
83
+ __decorate([
84
+ n({ type: String })
85
+ ], Badge.prototype, "value", void 0);
86
+ Badge = __decorate([
87
+ IndividualComponent
88
+ ], Badge);
89
+
90
+ export { Badge };
91
+ //# sourceMappingURL=badge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"badge.js","sources":["../../src/badge/badge.ts"],"sourcesContent":["import { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport styles from './badge.scss';\nimport IndividualComponent from '@/IndividualComponent.js';\n\n/**\n * @label Badge\n * @tag wc-badge\n * @rawTag badge\n * @summary The badge component is used to display a small amount of information to the user.\n *\n * @cssprop --badge-color - Controls the color of the badge.\n *\n * @example\n * ```html\n * <wc-badge value=\"1\"></wc-badge>\n * ```\n * @tags display\n */\n@IndividualComponent\nexport class Badge extends LitElement {\n static styles = [styles];\n\n /**\n * The value to display in the badge.\n */\n @property({ type: String }) value: string = '';\n\n render() {\n return html`<div\n class=${classMap({\n badge: true,\n 'has-value': !!this.value,\n })}\n >\n ${this.value}\n </div>`;\n }\n}\n"],"names":["LitElement","html","classMap","styles","property"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA;;;;;;;;;;;;;AAaG;AAEI,IAAM,KAAK,GAAX,MAAM,KAAM,SAAQA,GAAU,CAAA;AAA9B,IAAA,WAAA,GAAA;;AAGL;;AAEG;QACyB,IAAA,CAAA,KAAK,GAAW,EAAE;IAYhD;IAVE,MAAM,GAAA;AACJ,QAAA,OAAOC,CAAI,CAAA,CAAA;AACD,YAAA,EAAAC,CAAQ,CAAC;AACf,YAAA,KAAK,EAAE,IAAI;AACX,YAAA,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK;SAC1B,CAAC;;AAEA,MAAA,EAAA,IAAI,CAAC,KAAK;WACP;IACT;;AAhBO,KAAA,CAAA,MAAM,GAAG,CAACC,QAAM,CAAC;AAKI,UAAA,CAAA;AAA3B,IAAAC,CAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;AAAqB,CAAA,EAAA,KAAA,CAAA,SAAA,EAAA,OAAA,EAAA,MAAA,CAAA;AANpC,KAAK,GAAA,UAAA,CAAA;IADjB;AACY,CAAA,EAAA,KAAK,CAkBjB;;;;"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2017 Google LLC
4
+ * SPDX-License-Identifier: BSD-3-Clause
5
+ */
6
+ const e=(e,t,c)=>(c.configurable=true,c.enumerable=true,Reflect.decorate&&"object"!=typeof t&&Object.defineProperty(e,t,c),c);
7
+
8
+ export { e };
9
+ //# sourceMappingURL=base-Cl6v8-BZ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-Cl6v8-BZ.js","sources":["../node_modules/@lit/reactive-element/decorators/base.js"],"sourcesContent":["/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst e=(e,t,c)=>(c.configurable=!0,c.enumerable=!0,Reflect.decorate&&\"object\"!=typeof t&&Object.defineProperty(e,t,c),c);export{e as desc};\n//# sourceMappingURL=base.js.map\n"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACK,MAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,IAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;;;","x_google_ignoreList":[0]}
@@ -1,7 +1,7 @@
1
- import { a as i, _ as __decorate, I as IndividualComponent, i as i$1, A, b } from './IndividualComponent-DUINtMGK.js';
2
- import { n } from './property-1psGvXOq.js';
3
- import { r } from './state-DwbEjqVk.js';
4
- import { e } from './class-map-YU7g0o3B.js';
1
+ import { i, _ as __decorate, I as IndividualComponent, a as i$1, A, b } from './IndividualComponent-Bdwyrvd6.js';
2
+ import { n } from './property-B49QQ8pS.js';
3
+ import { r } from './state-DkTK9EGF.js';
4
+ import { e } from './class-map-DG7CA1et.js';
5
5
  import './directive-ZPhl09Yt.js';
6
6
 
7
7
  var css_248z = i`* {
@@ -12,6 +12,10 @@ var css_248z = i`* {
12
12
  display: none !important;
13
13
  }
14
14
 
15
+ [hidden] {
16
+ display: none !important;
17
+ }
18
+
15
19
  :host {
16
20
  display: contents;
17
21
  --bottom-sheet-container-color: var(--color-surface-container-low, #f7f2fa);
@@ -98,7 +102,7 @@ var css_248z = i`* {
98
102
  * @label Bottom Sheet
99
103
  * @tag wc-bottom-sheet
100
104
  * @rawTag bottom-sheet
101
- * @summary Bottom sheets slide up from the bottom of the screen to reveal additional content. Supports standard and modal variants per Material Design 3.
105
+ * @summary Bottom sheets slide up from the bottom of the screen to reveal additional content. Supports standard and modal variants.
102
106
  *
103
107
  * @cssprop --bottom-sheet-container-color - Background color of the sheet container.
104
108
  * @cssprop --bottom-sheet-scrim-color - Color of the modal scrim overlay.
@@ -177,6 +181,10 @@ let BottomSheet = class BottomSheet extends i$1 {
177
181
  ? b `<div
178
182
  class=${e({ scrim: true, visible: this.open })}
179
183
  @click=${this._handleScrimClick}
184
+ @keydown=${(e) => {
185
+ if (e.key === 'Escape')
186
+ this._close('esc');
187
+ }}
180
188
  ></div>`
181
189
  : A}
182
190
 
@@ -189,6 +197,7 @@ let BottomSheet = class BottomSheet extends i$1 {
189
197
  })}
190
198
  style=${translateY ? `transform: translateY(${translateY})` : ''}
191
199
  role="dialog"
200
+ aria-label="${this.ariaLabel ?? 'Bottom sheet'}"
192
201
  aria-modal=${this.variant === 'modal' ? 'true' : 'false'}
193
202
  aria-hidden=${!this.open ? 'true' : 'false'}
194
203
  >
@@ -1 +1 @@
1
- {"version":3,"file":"bottom-sheet.js","sources":["../../src/bottom-sheet/bottom-sheet.ts"],"sourcesContent":["import { LitElement, html, nothing } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport IndividualComponent from '../IndividualComponent.js';\nimport styles from './bottom-sheet.scss';\n\n/**\n * @label Bottom Sheet\n * @tag wc-bottom-sheet\n * @rawTag bottom-sheet\n * @summary Bottom sheets slide up from the bottom of the screen to reveal additional content. Supports standard and modal variants per Material Design 3.\n *\n * @cssprop --bottom-sheet-container-color - Background color of the sheet container.\n * @cssprop --bottom-sheet-scrim-color - Color of the modal scrim overlay.\n * @cssprop --bottom-sheet-shape - Corner radius of the top edge.\n * @cssprop --bottom-sheet-max-height - Maximum height of the sheet.\n *\n * @example\n * ```html\n * Bottom Sheet\n * ```\n * @tags navigation, overlay\n */\n@IndividualComponent\nexport class BottomSheet extends LitElement {\n static styles = [styles];\n\n /** Whether the sheet is visible. */\n @property({ type: Boolean, reflect: true }) open = false;\n\n /**\n * Sheet variant.\n * - `\"standard\"`: Coexists with page content; no scrim.\n * - `\"modal\"`: Overlays page content with a scrim backdrop.\n */\n @property({ type: String, reflect: true }) variant: 'standard' | 'modal' =\n 'modal';\n\n /** Whether to show the drag handle. */\n @property({ type: Boolean, attribute: 'show-handle' }) showHandle = true;\n\n @state() private _dragging = false;\n @state() private _dragStartY = 0;\n @state() private _dragOffsetY = 0;\n\n show() {\n this.open = true;\n }\n\n hide() {\n this._close('programmatic');\n }\n\n private _close(reason: string) {\n if (!this.open) return;\n this.open = false;\n this.dispatchEvent(\n new CustomEvent('bottom-sheet-close', {\n detail: { reason },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n private _handleScrimClick() {\n if (this.variant === 'modal') {\n this._close('scrim');\n }\n }\n\n private _handleDragStart(e: PointerEvent) {\n this._dragging = true;\n this._dragStartY = e.clientY;\n this._dragOffsetY = 0;\n (e.currentTarget as HTMLElement).setPointerCapture(e.pointerId);\n }\n\n private _handleDragMove(e: PointerEvent) {\n if (!this._dragging) return;\n const delta = e.clientY - this._dragStartY;\n this._dragOffsetY = Math.max(0, delta);\n }\n\n private _handleDragEnd() {\n if (!this._dragging) return;\n this._dragging = false;\n if (this._dragOffsetY > 80) {\n this._close('drag');\n }\n this._dragOffsetY = 0;\n }\n\n render() {\n const translateY = this._dragging ? `${this._dragOffsetY}px` : undefined;\n\n return html`\n ${this.variant === 'modal'\n ? html`<div\n class=${classMap({ scrim: true, visible: this.open })}\n @click=${this._handleScrimClick}\n ></div>`\n : nothing}\n\n <div\n class=${classMap({\n sheet: true,\n open: this.open,\n dragging: this._dragging,\n [`variant-${this.variant}`]: true,\n })}\n style=${translateY ? `transform: translateY(${translateY})` : ''}\n role=\"dialog\"\n aria-modal=${this.variant === 'modal' ? 'true' : 'false'}\n aria-hidden=${!this.open ? 'true' : 'false'}\n >\n ${this.showHandle\n ? html`<div\n class=\"handle-area\"\n @pointerdown=${this._handleDragStart}\n @pointermove=${this._handleDragMove}\n @pointerup=${this._handleDragEnd}\n @pointercancel=${this._handleDragEnd}\n >\n <div class=\"handle\"></div>\n </div>`\n : nothing}\n\n <div class=\"content\">\n <slot></slot>\n </div>\n </div>\n `;\n }\n}\n"],"names":["LitElement","html","classMap","nothing","styles","property","state"],"mappings":"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"}
1
+ {"version":3,"file":"bottom-sheet.js","sources":["../../src/bottom-sheet/bottom-sheet.ts"],"sourcesContent":["import { LitElement, html, nothing } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport IndividualComponent from '../IndividualComponent.js';\nimport styles from './bottom-sheet.scss';\n\n/**\n * @label Bottom Sheet\n * @tag wc-bottom-sheet\n * @rawTag bottom-sheet\n * @summary Bottom sheets slide up from the bottom of the screen to reveal additional content. Supports standard and modal variants.\n *\n * @cssprop --bottom-sheet-container-color - Background color of the sheet container.\n * @cssprop --bottom-sheet-scrim-color - Color of the modal scrim overlay.\n * @cssprop --bottom-sheet-shape - Corner radius of the top edge.\n * @cssprop --bottom-sheet-max-height - Maximum height of the sheet.\n *\n * @example\n * ```html\n * Bottom Sheet\n * ```\n * @tags navigation, overlay\n */\n@IndividualComponent\nexport class BottomSheet extends LitElement {\n static styles = [styles];\n\n /** Whether the sheet is visible. */\n @property({ type: Boolean, reflect: true }) open = false;\n\n /**\n * Sheet variant.\n * - `\"standard\"`: Coexists with page content; no scrim.\n * - `\"modal\"`: Overlays page content with a scrim backdrop.\n */\n @property({ type: String, reflect: true }) variant: 'standard' | 'modal' =\n 'modal';\n\n /** Whether to show the drag handle. */\n @property({ type: Boolean, attribute: 'show-handle' }) showHandle = true;\n\n @state() private _dragging = false;\n\n @state() private _dragStartY = 0;\n\n @state() private _dragOffsetY = 0;\n\n show() {\n this.open = true;\n }\n\n hide() {\n this._close('programmatic');\n }\n\n private _close(reason: string) {\n if (!this.open) return;\n this.open = false;\n this.dispatchEvent(\n new CustomEvent('bottom-sheet-close', {\n detail: { reason },\n bubbles: true,\n composed: true,\n }),\n );\n }\n\n private _handleScrimClick() {\n if (this.variant === 'modal') {\n this._close('scrim');\n }\n }\n\n private _handleDragStart(e: PointerEvent) {\n this._dragging = true;\n this._dragStartY = e.clientY;\n this._dragOffsetY = 0;\n (e.currentTarget as HTMLElement).setPointerCapture(e.pointerId);\n }\n\n private _handleDragMove(e: PointerEvent) {\n if (!this._dragging) return;\n const delta = e.clientY - this._dragStartY;\n this._dragOffsetY = Math.max(0, delta);\n }\n\n private _handleDragEnd() {\n if (!this._dragging) return;\n this._dragging = false;\n if (this._dragOffsetY > 80) {\n this._close('drag');\n }\n this._dragOffsetY = 0;\n }\n\n render() {\n const translateY = this._dragging ? `${this._dragOffsetY}px` : undefined;\n\n return html`\n ${this.variant === 'modal'\n ? html`<div\n class=${classMap({ scrim: true, visible: this.open })}\n @click=${this._handleScrimClick}\n @keydown=${(e: KeyboardEvent) => {\n if (e.key === 'Escape') this._close('esc');\n }}\n ></div>`\n : nothing}\n\n <div\n class=${classMap({\n sheet: true,\n open: this.open,\n dragging: this._dragging,\n [`variant-${this.variant}`]: true,\n })}\n style=${translateY ? `transform: translateY(${translateY})` : ''}\n role=\"dialog\"\n aria-label=\"${this.ariaLabel ?? 'Bottom sheet'}\"\n aria-modal=${this.variant === 'modal' ? 'true' : 'false'}\n aria-hidden=${!this.open ? 'true' : 'false'}\n >\n ${this.showHandle\n ? html`<div\n class=\"handle-area\"\n @pointerdown=${this._handleDragStart}\n @pointermove=${this._handleDragMove}\n @pointerup=${this._handleDragEnd}\n @pointercancel=${this._handleDragEnd}\n >\n <div class=\"handle\"></div>\n </div>`\n : nothing}\n\n <div class=\"content\">\n <slot></slot>\n </div>\n </div>\n `;\n }\n}\n"],"names":["LitElement","html","classMap","nothing","styles","property","state"],"mappings":"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"}
@@ -0,0 +1,163 @@
1
+ import { i, _ as __decorate, I as IndividualComponent, a as i$1, A, b } from './IndividualComponent-Bdwyrvd6.js';
2
+ import { n } from './property-B49QQ8pS.js';
3
+ import { r } from './state-DkTK9EGF.js';
4
+ import { e } from './class-map-DG7CA1et.js';
5
+ import { o } from './if-defined-BXZpRQ4P.js';
6
+ import './directive-ZPhl09Yt.js';
7
+
8
+ var css_248z = i`* {
9
+ box-sizing: border-box;
10
+ }
11
+
12
+ .screen-reader-only {
13
+ display: none !important;
14
+ }
15
+
16
+ [hidden] {
17
+ display: none !important;
18
+ }
19
+
20
+ :host {
21
+ display: contents;
22
+ }
23
+
24
+ .breadcrumb-item {
25
+ display: inline-flex;
26
+ align-items: center;
27
+ font-family: var(--typography-body-medium-font-family) !important;
28
+ font-size: var(--typography-body-medium-font-size) !important;
29
+ font-weight: var(--typography-body-medium-font-weight) !important;
30
+ line-height: var(--typography-body-medium-line-height) !important;
31
+ letter-spacing: var(--typography-body-medium-letter-spacing) !important;
32
+ }
33
+
34
+ .breadcrumb-item.active {
35
+ font-family: var(--typography-body-medium-emphasized-font-family) !important;
36
+ font-size: var(--typography-body-medium-emphasized-font-size) !important;
37
+ font-weight: var(--typography-body-medium-emphasized-font-weight) !important;
38
+ line-height: var(--typography-body-medium-emphasized-line-height) !important;
39
+ letter-spacing: var(--typography-body-medium-emphasized-letter-spacing) !important;
40
+ color: var(--color-on-surface);
41
+ }
42
+
43
+ .breadcrumb-link {
44
+ color: var(--color-primary);
45
+ text-decoration: none;
46
+ border-radius: var(--border-radius-050);
47
+ transition: color 0.2s ease, text-decoration 0.2s ease;
48
+ }
49
+ .breadcrumb-link:hover {
50
+ color: var(--color-primary);
51
+ text-decoration: underline;
52
+ }
53
+ .breadcrumb-link:focus-visible {
54
+ outline: 2px solid var(--color-primary);
55
+ outline-offset: 2px;
56
+ text-decoration: underline;
57
+ }
58
+ .breadcrumb-link:active {
59
+ color: var(--color-primary);
60
+ }
61
+
62
+ .separator {
63
+ display: inline-block;
64
+ margin-left: var(--spacing-100);
65
+ color: var(--color-outline);
66
+ user-select: none;
67
+ pointer-events: none;
68
+ }`;
69
+
70
+ /**
71
+ * @label Breadcrumb Item
72
+ * @tag wc-breadcrumb-item
73
+ * @rawTag breadcrumb-item
74
+ * @summary A breadcrumb item component that represents a single item in a breadcrumb navigation.
75
+ * @tags navigation
76
+ *
77
+ * @example
78
+ * ```html
79
+ * <wc-breadcrumb-item href="#">Home</wc-breadcrumb-item>
80
+ * ```
81
+ */
82
+ let BreadcrumbItem = class BreadcrumbItem extends i$1 {
83
+ constructor() {
84
+ super(...arguments);
85
+ /**
86
+ * Indicates if this is the active (current) breadcrumb item.
87
+ */
88
+ this.active = false;
89
+ /** 1-based position among sibling breadcrumb items, used for schema.org `ListItem` metadata. */
90
+ this.position = 1;
91
+ }
92
+ connectedCallback() {
93
+ super.connectedCallback();
94
+ this.calculatePosition();
95
+ }
96
+ calculatePosition() {
97
+ // Calculate position by counting sibling breadcrumb items
98
+ if (this.parentElement) {
99
+ const items = Array.from(this.parentElement.querySelectorAll('p-breadcrumb-item'));
100
+ this.position = items.indexOf(this) + 1;
101
+ }
102
+ }
103
+ render() {
104
+ return b `
105
+ <li
106
+ class=${e({ 'breadcrumb-item': true, active: this.active })}
107
+ itemprop="itemListElement"
108
+ itemscope
109
+ itemtype="https://schema.org/ListItem"
110
+ >
111
+ ${this.active
112
+ ? b `
113
+ <span aria-current="page" itemprop="name">
114
+ <slot></slot>
115
+ </span>
116
+ `
117
+ : b `
118
+ <a
119
+ class="breadcrumb-link"
120
+ itemprop="item"
121
+ href=${o(this.href)}
122
+ target=${o(this.target)}
123
+ ${this.target === '_blank'
124
+ ? b `rel="noopener noreferrer"`
125
+ : A}
126
+ >
127
+ <span itemprop="name">
128
+ <slot></slot>
129
+ </span>
130
+ </a>
131
+ `}
132
+ <meta itemprop="position" content=${String(this.position)} />
133
+ ${this.separator
134
+ ? b `<span class="separator" aria-hidden="true"
135
+ >${this.separator}</span
136
+ >`
137
+ : A}
138
+ </li>
139
+ `;
140
+ }
141
+ };
142
+ BreadcrumbItem.styles = [css_248z];
143
+ __decorate([
144
+ n({ reflect: true })
145
+ ], BreadcrumbItem.prototype, "href", void 0);
146
+ __decorate([
147
+ n()
148
+ ], BreadcrumbItem.prototype, "target", void 0);
149
+ __decorate([
150
+ n({ type: Boolean, reflect: true })
151
+ ], BreadcrumbItem.prototype, "active", void 0);
152
+ __decorate([
153
+ n({ type: String })
154
+ ], BreadcrumbItem.prototype, "separator", void 0);
155
+ __decorate([
156
+ r()
157
+ ], BreadcrumbItem.prototype, "position", void 0);
158
+ BreadcrumbItem = __decorate([
159
+ IndividualComponent
160
+ ], BreadcrumbItem);
161
+
162
+ export { BreadcrumbItem };
163
+ //# sourceMappingURL=breadcrumb-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breadcrumb-item.js","sources":["../../src/breadcrumb/breadcrumb-item/breadcrumb-item.ts"],"sourcesContent":["import { html, LitElement, nothing } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport styles from './breadcrumb-item.scss';\nimport IndividualComponent from '@/IndividualComponent.js';\n\n/**\n * @label Breadcrumb Item\n * @tag wc-breadcrumb-item\n * @rawTag breadcrumb-item\n * @summary A breadcrumb item component that represents a single item in a breadcrumb navigation.\n * @tags navigation\n *\n * @example\n * ```html\n * <wc-breadcrumb-item href=\"#\">Home</wc-breadcrumb-item>\n * ```\n */\n@IndividualComponent\nexport class BreadcrumbItem extends LitElement {\n static styles = [styles];\n\n /**\n * Hyperlink to navigate to on click.\n */\n @property({ reflect: true }) href?: string;\n\n /**\n * Sets or retrieves the window or frame at which to target content.\n */\n @property() target?: string;\n\n /**\n * Indicates if this is the active (current) breadcrumb item.\n */\n @property({ type: Boolean, reflect: true }) active = false;\n\n /**\n * Custom separator character. If not provided, default \"/\" is used.\n */\n @property({ type: String }) separator?: string;\n\n /** 1-based position among sibling breadcrumb items, used for schema.org `ListItem` metadata. */\n @state()\n private position = 1;\n\n connectedCallback() {\n super.connectedCallback();\n this.calculatePosition();\n }\n\n private calculatePosition() {\n // Calculate position by counting sibling breadcrumb items\n if (this.parentElement) {\n const items = Array.from(\n this.parentElement.querySelectorAll('p-breadcrumb-item'),\n );\n this.position = items.indexOf(this) + 1;\n }\n }\n\n render() {\n return html`\n <li\n class=${classMap({ 'breadcrumb-item': true, active: this.active })}\n itemprop=\"itemListElement\"\n itemscope\n itemtype=\"https://schema.org/ListItem\"\n >\n ${this.active\n ? html`\n <span aria-current=\"page\" itemprop=\"name\">\n <slot></slot>\n </span>\n `\n : html`\n <a\n class=\"breadcrumb-link\"\n itemprop=\"item\"\n href=${ifDefined(this.href)}\n target=${ifDefined(this.target)}\n ${this.target === '_blank'\n ? html`rel=\"noopener noreferrer\"`\n : nothing}\n >\n <span itemprop=\"name\">\n <slot></slot>\n </span>\n </a>\n `}\n <meta itemprop=\"position\" content=${String(this.position)} />\n ${this.separator\n ? html`<span class=\"separator\" aria-hidden=\"true\"\n >${this.separator}</span\n >`\n : nothing}\n </li>\n `;\n }\n}\n"],"names":["LitElement","html","classMap","ifDefined","nothing","styles","property","state"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA;;;;;;;;;;;AAWG;AAEI,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQA,GAAU,CAAA;AAAvC,IAAA,WAAA,GAAA;;AAaL;;AAEG;QACyC,IAAA,CAAA,MAAM,GAAG,KAAK;;QASlD,IAAA,CAAA,QAAQ,GAAG,CAAC;IAuDtB;IArDE,iBAAiB,GAAA;QACf,KAAK,CAAC,iBAAiB,EAAE;QACzB,IAAI,CAAC,iBAAiB,EAAE;IAC1B;IAEQ,iBAAiB,GAAA;;AAEvB,QAAA,IAAI,IAAI,CAAC,aAAa,EAAE;AACtB,YAAA,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CACtB,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,mBAAmB,CAAC,CACzD;YACD,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QACzC;IACF;IAEA,MAAM,GAAA;AACJ,QAAA,OAAOC,CAAI,CAAA;;AAEC,cAAA,EAAAC,CAAQ,CAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;;;;;AAKhE,QAAA,EAAA,IAAI,CAAC;cACHD,CAAI,CAAA;;;;AAIH,YAAA;cACDA,CAAI,CAAA;;;;AAIO,qBAAA,EAAAE,CAAS,CAAC,IAAI,CAAC,IAAI,CAAC;AAClB,uBAAA,EAAAA,CAAS,CAAC,IAAI,CAAC,MAAM,CAAC;kBAC7B,IAAI,CAAC,MAAM,KAAK;kBACdF,CAAI,CAAA,CAAA,yBAAA;AACN,kBAAEG,CAAO;;;;;;AAMd,YAAA,CAAA;AAC+B,0CAAA,EAAA,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;AACvD,QAAA,EAAA,IAAI,CAAC;cACHH,CAAI,CAAA,CAAA;AACC,eAAA,EAAA,IAAI,CAAC,SAAS,CAAA;AACjB,aAAA;AACJ,cAAEG,CAAO;;KAEd;IACH;;AA9EO,cAAA,CAAA,MAAM,GAAG,CAACC,QAAM,CAAC;AAKK,UAAA,CAAA;AAA5B,IAAAC,CAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;AAAgB,CAAA,EAAA,cAAA,CAAA,SAAA,EAAA,MAAA,EAAA,MAAA,CAAA;AAK/B,UAAA,CAAA;AAAX,IAAAA,CAAQ;AAAmB,CAAA,EAAA,cAAA,CAAA,SAAA,EAAA,QAAA,EAAA,MAAA,CAAA;AAKgB,UAAA,CAAA;IAA3CA,CAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;AAAiB,CAAA,EAAA,cAAA,CAAA,SAAA,EAAA,QAAA,EAAA,MAAA,CAAA;AAK/B,UAAA,CAAA;AAA3B,IAAAA,CAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;AAAqB,CAAA,EAAA,cAAA,CAAA,SAAA,EAAA,WAAA,EAAA,MAAA,CAAA;AAIvC,UAAA,CAAA;AADP,IAAAC,CAAK;AACe,CAAA,EAAA,cAAA,CAAA,SAAA,EAAA,UAAA,EAAA,MAAA,CAAA;AAzBV,cAAc,GAAA,UAAA,CAAA;IAD1B;AACY,CAAA,EAAA,cAAc,CAgF1B;;;;"}
@@ -0,0 +1,95 @@
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 { BreadcrumbItem } from './breadcrumb-item.js';
4
+ import './state-DkTK9EGF.js';
5
+ import './class-map-DG7CA1et.js';
6
+ import './directive-ZPhl09Yt.js';
7
+ import './if-defined-BXZpRQ4P.js';
8
+
9
+ var css_248z = i`* {
10
+ box-sizing: border-box;
11
+ }
12
+
13
+ .screen-reader-only {
14
+ display: none !important;
15
+ }
16
+
17
+ [hidden] {
18
+ display: none !important;
19
+ }
20
+
21
+ :host {
22
+ display: block;
23
+ margin-bottom: var(--spacing-050);
24
+ }
25
+
26
+ .breadcrumb {
27
+ width: 100%;
28
+ }
29
+
30
+ ol {
31
+ display: flex;
32
+ flex-wrap: wrap;
33
+ align-items: center;
34
+ margin: 0;
35
+ padding: 0;
36
+ list-style: none;
37
+ }
38
+
39
+ ::slotted(:not(:last-child))::after {
40
+ display: inline-block;
41
+ padding-right: var(--spacing-100);
42
+ padding-left: var(--spacing-100);
43
+ color: var(--color-outline);
44
+ content: "/";
45
+ user-select: none;
46
+ pointer-events: none;
47
+ }`;
48
+
49
+ /**
50
+ * @label Breadcrumb
51
+ * @tag wc-breadcrumb
52
+ * @rawTag breadcrumb
53
+ * @summary A breadcrumb is a secondary navigation scheme that reveals the user's location in a website or web application.
54
+ * @overview
55
+ * - Breadcrumbs provide a trail for users to follow back to the starting or entry point.
56
+ * - They help users understand their current location within the site hierarchy.
57
+ * - Follows WCAG 2.1 guidelines for accessible navigation landmarks.
58
+ * @tags navigation
59
+ *
60
+ * @example
61
+ * ```html
62
+ * <wc-breadcrumb label="Breadcrumb">
63
+ * <wc-breadcrumb-item href="#">Home</wc-breadcrumb-item>
64
+ * <wc-breadcrumb-item href="#">Category</wc-breadcrumb-item>
65
+ * <wc-breadcrumb-item active>Current Page</wc-breadcrumb-item>
66
+ * </wc-breadcrumb>
67
+ * ```
68
+ */
69
+ let Breadcrumb = class Breadcrumb extends i$1 {
70
+ constructor() {
71
+ super(...arguments);
72
+ /**
73
+ * Accessible label for the breadcrumb navigation landmark.
74
+ */
75
+ this.label = 'Breadcrumb';
76
+ }
77
+ render() {
78
+ return b `<nav aria-label=${this.label} class="breadcrumb">
79
+ <ol>
80
+ <slot></slot>
81
+ </ol>
82
+ </nav>`;
83
+ }
84
+ };
85
+ Breadcrumb.styles = [css_248z];
86
+ Breadcrumb.Item = BreadcrumbItem;
87
+ __decorate([
88
+ n({ type: String })
89
+ ], Breadcrumb.prototype, "label", void 0);
90
+ Breadcrumb = __decorate([
91
+ IndividualComponent
92
+ ], Breadcrumb);
93
+
94
+ export { Breadcrumb };
95
+ //# sourceMappingURL=breadcrumb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breadcrumb.js","sources":["../../src/breadcrumb/breadcrumb/breadcrumb.ts"],"sourcesContent":["import { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport styles from './breadcrumb.scss';\nimport { BreadcrumbItem } from '../breadcrumb-item/breadcrumb-item.js';\nimport IndividualComponent from '@/IndividualComponent.js';\n\n/**\n * @label Breadcrumb\n * @tag wc-breadcrumb\n * @rawTag breadcrumb\n * @summary A breadcrumb is a secondary navigation scheme that reveals the user's location in a website or web application.\n * @overview\n * - Breadcrumbs provide a trail for users to follow back to the starting or entry point.\n * - They help users understand their current location within the site hierarchy.\n * - Follows WCAG 2.1 guidelines for accessible navigation landmarks.\n * @tags navigation\n *\n * @example\n * ```html\n * <wc-breadcrumb label=\"Breadcrumb\">\n * <wc-breadcrumb-item href=\"#\">Home</wc-breadcrumb-item>\n * <wc-breadcrumb-item href=\"#\">Category</wc-breadcrumb-item>\n * <wc-breadcrumb-item active>Current Page</wc-breadcrumb-item>\n * </wc-breadcrumb>\n * ```\n */\n@IndividualComponent\nexport class Breadcrumb extends LitElement {\n static styles = [styles];\n\n static Item = BreadcrumbItem;\n\n /**\n * Accessible label for the breadcrumb navigation landmark.\n */\n @property({ type: String }) label = 'Breadcrumb';\n\n render() {\n return html`<nav aria-label=${this.label} class=\"breadcrumb\">\n <ol>\n <slot></slot>\n </ol>\n </nav>`;\n }\n}\n"],"names":["LitElement","html","styles","property"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA;;;;;;;;;;;;;;;;;;;AAmBG;AAEI,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQA,GAAU,CAAA;AAAnC,IAAA,WAAA,GAAA;;AAKL;;AAEG;QACyB,IAAA,CAAA,KAAK,GAAG,YAAY;IASlD;IAPE,MAAM,GAAA;AACJ,QAAA,OAAOC,CAAI,CAAA,CAAA,gBAAA,EAAmB,IAAI,CAAC,KAAK,CAAA;;;;WAIjC;IACT;;AAfO,UAAA,CAAA,MAAM,GAAG,CAACC,QAAM,CAAC;AAEjB,UAAA,CAAA,IAAI,GAAG,cAAH;AAKiB,UAAA,CAAA;AAA3B,IAAAC,CAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE;AAAuB,CAAA,EAAA,UAAA,CAAA,SAAA,EAAA,OAAA,EAAA,MAAA,CAAA;AARtC,UAAU,GAAA,UAAA,CAAA;IADtB;AACY,CAAA,EAAA,UAAU,CAiBtB;;;;"}