@redvars/peacock 3.8.1 → 3.8.3

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 (501) 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/babel-DBsfpl3B.js +18 -0
  26. package/dist/babel-DBsfpl3B.js.map +1 -0
  27. package/dist/badge.js +91 -0
  28. package/dist/badge.js.map +1 -0
  29. package/dist/base-Cl6v8-BZ.js +9 -0
  30. package/dist/base-Cl6v8-BZ.js.map +1 -0
  31. package/dist/bottom-sheet.js +14 -5
  32. package/dist/bottom-sheet.js.map +1 -1
  33. package/dist/breadcrumb-item.js +163 -0
  34. package/dist/breadcrumb-item.js.map +1 -0
  35. package/dist/breadcrumb.js +95 -0
  36. package/dist/breadcrumb.js.map +1 -0
  37. package/dist/button-group.js +87 -137
  38. package/dist/button-group.js.map +1 -1
  39. package/dist/button.js +863 -133
  40. package/dist/button.js.map +1 -1
  41. package/dist/calendar-column-view.js +8 -4
  42. package/dist/calendar-column-view.js.map +1 -1
  43. package/dist/calendar-month-view.js +8 -4
  44. package/dist/calendar-month-view.js.map +1 -1
  45. package/dist/calendar.js +8 -4
  46. package/dist/calendar.js.map +1 -1
  47. package/dist/canvas.js +8 -4
  48. package/dist/canvas.js.map +1 -1
  49. package/dist/card-content.js +1 -1
  50. package/dist/card.js +45 -52
  51. package/dist/card.js.map +1 -1
  52. package/dist/cb-compound-expression.js +6 -2
  53. package/dist/cb-compound-expression.js.map +1 -1
  54. package/dist/cb-divider.js +7 -3
  55. package/dist/cb-divider.js.map +1 -1
  56. package/dist/cb-expression.js +6 -2
  57. package/dist/cb-expression.js.map +1 -1
  58. package/dist/cb-predicate.js +7 -3
  59. package/dist/cb-predicate.js.map +1 -1
  60. package/dist/{chart-bar-cn6rrna-.js → chart-bar-CYoGNXnK.js} +6 -2
  61. package/dist/{chart-bar-cn6rrna-.js.map → chart-bar-CYoGNXnK.js.map} +1 -1
  62. package/dist/chart-bar.js +7 -6
  63. package/dist/chart-bar.js.map +1 -1
  64. package/dist/chart-doughnut.js +8 -3
  65. package/dist/chart-doughnut.js.map +1 -1
  66. package/dist/chart-pie.js +8 -3
  67. package/dist/chart-pie.js.map +1 -1
  68. package/dist/chart-stacked-bar.js +7 -6
  69. package/dist/chart-stacked-bar.js.map +1 -1
  70. package/dist/checkbox.js +526 -0
  71. package/dist/checkbox.js.map +1 -0
  72. package/dist/chip.js +459 -0
  73. package/dist/chip.js.map +1 -0
  74. package/dist/{class-map-YU7g0o3B.js → class-map-DG7CA1et.js} +2 -2
  75. package/dist/{class-map-YU7g0o3B.js.map → class-map-DG7CA1et.js.map} +1 -1
  76. package/dist/clock.js +6 -2
  77. package/dist/clock.js.map +1 -1
  78. package/dist/code-editor.js +45 -30
  79. package/dist/code-editor.js.map +1 -1
  80. package/dist/code-highlighter.js +82 -11216
  81. package/dist/code-highlighter.js.map +1 -1
  82. package/dist/color-picker.js +701 -0
  83. package/dist/color-picker.js.map +1 -0
  84. package/dist/condition-builder.js +5 -1
  85. package/dist/condition-builder.js.map +1 -1
  86. package/dist/container.js +141 -0
  87. package/dist/container.js.map +1 -0
  88. package/dist/custom-elements-jsdocs.json +823 -778
  89. package/dist/custom-elements.json +4067 -2207
  90. package/dist/datasource-B2eRh6Or.js +108 -0
  91. package/dist/datasource-B2eRh6Or.js.map +1 -0
  92. package/dist/dispatch-event-utils-CuEqjlPT.js.map +1 -1
  93. package/dist/divider.js +135 -0
  94. package/dist/divider.js.map +1 -0
  95. package/dist/dropdown-button.js +11 -6
  96. package/dist/dropdown-button.js.map +1 -1
  97. package/dist/element-internals-2CMts_0M.js +290 -0
  98. package/dist/element-internals-2CMts_0M.js.map +1 -0
  99. package/dist/elevation.js +94 -0
  100. package/dist/elevation.js.map +1 -0
  101. package/dist/empty-state.js +194 -0
  102. package/dist/empty-state.js.map +1 -0
  103. package/dist/estree-C2LDzX4U.js +47 -0
  104. package/dist/estree-C2LDzX4U.js.map +1 -0
  105. package/dist/{event-manager-D-QCmUgR.js → event-manager-DTyX2uYD.js} +2 -2
  106. package/dist/{event-manager-D-QCmUgR.js.map → event-manager-DTyX2uYD.js.map} +1 -1
  107. package/dist/fab.js +139 -148
  108. package/dist/fab.js.map +1 -1
  109. package/dist/field.js +461 -0
  110. package/dist/field.js.map +1 -0
  111. package/dist/{popover-DUPmMVWS.js → floating-controller-CnUZnOhK.js} +2 -171
  112. package/dist/floating-controller-CnUZnOhK.js.map +1 -0
  113. package/dist/{flow-designer-node-BWrPuxAR.js → flow-designer-node-DsVwQTac.js} +7 -3
  114. package/dist/{flow-designer-node-BWrPuxAR.js.map → flow-designer-node-DsVwQTac.js.map} +1 -1
  115. package/dist/flow-designer-node.js +3 -3
  116. package/dist/flow-designer.js +19 -12
  117. package/dist/flow-designer.js.map +1 -1
  118. package/dist/focus-ring.js +126 -0
  119. package/dist/focus-ring.js.map +1 -0
  120. package/dist/form-associated-BXADnjOB.js +388 -0
  121. package/dist/form-associated-BXADnjOB.js.map +1 -0
  122. package/dist/html-D22sQuVy.js +27 -0
  123. package/dist/html-D22sQuVy.js.map +1 -0
  124. package/dist/html-editor.js +21 -9
  125. package/dist/html-editor.js.map +1 -1
  126. package/dist/hyperlink-DLvb6MXE.js +98 -0
  127. package/dist/hyperlink-DLvb6MXE.js.map +1 -0
  128. package/dist/icon-button.js +1064 -0
  129. package/dist/icon-button.js.map +1 -0
  130. package/dist/icon.js +170 -0
  131. package/dist/icon.js.map +1 -0
  132. package/dist/if-defined-BXZpRQ4P.js +10 -0
  133. package/dist/if-defined-BXZpRQ4P.js.map +1 -0
  134. package/dist/image.js +201 -0
  135. package/dist/image.js.map +1 -0
  136. package/dist/index-_g_oLekF.js +14095 -0
  137. package/dist/index-_g_oLekF.js.map +1 -0
  138. package/dist/index.js +74 -20
  139. package/dist/index.js.map +1 -1
  140. package/dist/is-dark-mode-DOcaw4Yq.js.map +1 -1
  141. package/dist/is-link-Dk2OV3PM.js +6 -0
  142. package/dist/is-link-Dk2OV3PM.js.map +1 -0
  143. package/dist/item.js +213 -0
  144. package/dist/item.js.map +1 -0
  145. package/dist/link.js +75 -0
  146. package/dist/link.js.map +1 -0
  147. package/dist/list-H0itjRte.js +526 -0
  148. package/dist/list-H0itjRte.js.map +1 -0
  149. package/dist/list.js +14 -0
  150. package/dist/list.js.map +1 -0
  151. package/dist/{peacock-loader.js → loader.js} +87 -22
  152. package/dist/loader.js.map +1 -0
  153. package/dist/menu-item.js +388 -0
  154. package/dist/menu-item.js.map +1 -0
  155. package/dist/menu.js +520 -0
  156. package/dist/menu.js.map +1 -0
  157. package/dist/modal.js +9 -5
  158. package/dist/modal.js.map +1 -1
  159. package/dist/navigation-rail-item.js +400 -0
  160. package/dist/navigation-rail-item.js.map +1 -0
  161. package/dist/navigation-rail.js +219 -0
  162. package/dist/navigation-rail.js.map +1 -0
  163. package/dist/notification-manager.js +8 -4
  164. package/dist/notification-manager.js.map +1 -1
  165. package/dist/notification.js +8 -4
  166. package/dist/notification.js.map +1 -1
  167. package/dist/number-counter.js +7 -3
  168. package/dist/number-counter.js.map +1 -1
  169. package/dist/{observe-slot-change-D8Xg-kSS.js → observe-slot-change-DPxaZrZF.js} +3 -4
  170. package/dist/observe-slot-change-DPxaZrZF.js.map +1 -0
  171. package/dist/option.js +121 -0
  172. package/dist/option.js.map +1 -0
  173. package/dist/pagination.js +255 -0
  174. package/dist/pagination.js.map +1 -0
  175. package/dist/pierre-dark-DFWl0m-C.js +4 -0
  176. package/dist/pierre-dark-DFWl0m-C.js.map +1 -0
  177. package/dist/pierre-light-BEkAPImt.js +4 -0
  178. package/dist/pierre-light-BEkAPImt.js.map +1 -0
  179. package/dist/popover-content.js +7 -3
  180. package/dist/popover-content.js.map +1 -1
  181. package/dist/popover.js +175 -3
  182. package/dist/popover.js.map +1 -1
  183. package/dist/postcss-BhbitHaI.js +64 -0
  184. package/dist/postcss-BhbitHaI.js.map +1 -0
  185. package/dist/{property-1psGvXOq.js → property-B49QQ8pS.js} +2 -2
  186. package/dist/{property-1psGvXOq.js.map → property-B49QQ8pS.js.map} +1 -1
  187. package/dist/query-CHb9Ft_d.js +10 -0
  188. package/dist/query-CHb9Ft_d.js.map +1 -0
  189. package/dist/query-assigned-elements-BJaGSqM0.js +10 -0
  190. package/dist/query-assigned-elements-BJaGSqM0.js.map +1 -0
  191. package/dist/radio.js +476 -0
  192. package/dist/radio.js.map +1 -0
  193. package/dist/ripple.js +506 -0
  194. package/dist/ripple.js.map +1 -0
  195. package/dist/search.js +12 -7
  196. package/dist/search.js.map +1 -1
  197. package/dist/segmented-button-group.js +137 -0
  198. package/dist/segmented-button-group.js.map +1 -0
  199. package/dist/segmented-button.js +289 -0
  200. package/dist/segmented-button.js.map +1 -0
  201. package/dist/select-CspawZ18.js +3944 -0
  202. package/dist/select-CspawZ18.js.map +1 -0
  203. package/dist/side-sheet.js +9 -5
  204. package/dist/side-sheet.js.map +1 -1
  205. package/dist/skeleton.js +122 -0
  206. package/dist/skeleton.js.map +1 -0
  207. package/dist/slider.js +346 -0
  208. package/dist/slider.js.map +1 -0
  209. package/dist/snackbar.js +335 -0
  210. package/dist/snackbar.js.map +1 -0
  211. package/dist/spinner.js +100 -0
  212. package/dist/spinner.js.map +1 -0
  213. package/dist/split-button.js +10 -5
  214. package/dist/split-button.js.map +1 -1
  215. package/dist/spread-B5cgadZl.js +32 -0
  216. package/dist/spread-B5cgadZl.js.map +1 -0
  217. package/dist/src/__internal/aria/aria.d.ts +98 -0
  218. package/dist/src/__internal/aria/delegate.d.ts +54 -0
  219. package/dist/src/__internal/events/dispatch-hooks.d.ts +80 -0
  220. package/dist/src/__internal/mixins/element-internals.d.ts +40 -0
  221. package/dist/src/__internal/mixins/form-associated.d.ts +174 -0
  222. package/dist/src/__internal/mixins/form-submitter.d.ts +59 -0
  223. package/dist/src/__internal/mixins/hyperlink.d.ts +42 -0
  224. package/dist/src/__internal/mixins/mixin.d.ts +49 -0
  225. package/dist/src/{__utils → __internal/utils}/observe-slot-change.d.ts +1 -0
  226. package/dist/src/accordion/accordion-item.d.ts +3 -1
  227. package/dist/src/accordion/accordion.d.ts +1 -1
  228. package/dist/src/alert/alert.d.ts +43 -0
  229. package/dist/src/alert/index.d.ts +1 -0
  230. package/dist/src/app-bar/app-bar.d.ts +92 -0
  231. package/dist/src/app-bar/index.d.ts +1 -0
  232. package/dist/src/avatar/avatar.d.ts +2 -0
  233. package/dist/src/bottom-sheet/bottom-sheet.d.ts +1 -1
  234. package/dist/src/breadcrumb/breadcrumb-item/breadcrumb-item.d.ts +1 -0
  235. package/dist/src/button/ButtonTypes.d.ts +5 -0
  236. package/dist/src/button/base-button/base-button.d.ts +18 -0
  237. package/dist/src/button/button/button.d.ts +29 -37
  238. package/dist/src/button/button-group/button-group.d.ts +17 -18
  239. package/dist/src/{fab → button/fab}/fab.d.ts +8 -26
  240. package/dist/src/button/icon-button/icon-button.d.ts +20 -27
  241. package/dist/src/button/index.d.ts +1 -0
  242. package/dist/src/calendar/calendar.d.ts +1 -1
  243. package/dist/src/canvas/canvas.d.ts +1 -1
  244. package/dist/src/card/card.d.ts +5 -6
  245. package/dist/src/chart-bar/chart-bar.d.ts +1 -1
  246. package/dist/src/chart-bar/chart-stacked-bar.d.ts +1 -1
  247. package/dist/src/checkbox/checkbox.d.ts +5 -1
  248. package/dist/src/chip/chip/chip.d.ts +9 -8
  249. package/dist/src/code-highlighter/code-highlighter.d.ts +2 -2
  250. package/dist/src/color-picker/color-picker.d.ts +85 -0
  251. package/dist/src/color-picker/index.d.ts +1 -0
  252. package/dist/src/container/container.d.ts +5 -1
  253. package/dist/src/divider/divider.d.ts +2 -0
  254. package/dist/src/empty-state/empty-state.d.ts +1 -0
  255. package/dist/src/field/field.d.ts +19 -1
  256. package/dist/src/focus-ring/focus-ring.d.ts +3 -7
  257. package/dist/src/html-editor/html-editor.d.ts +1 -1
  258. package/dist/src/icon/icon.d.ts +9 -4
  259. package/dist/src/image/image.d.ts +4 -0
  260. package/dist/src/index.d.ts +8 -6
  261. package/dist/src/item/item.d.ts +19 -29
  262. package/dist/src/link/link.d.ts +1 -1
  263. package/dist/src/list/list-item.d.ts +10 -6
  264. package/dist/src/list/list.d.ts +27 -2
  265. package/dist/src/menu/menu/menu.d.ts +14 -0
  266. package/dist/src/menu/menu-item/menu-item.d.ts +11 -4
  267. package/dist/src/modal/modal.d.ts +1 -1
  268. package/dist/src/navigation-rail/navigation-rail-item.d.ts +5 -4
  269. package/dist/src/navigation-rail/navigation-rail.d.ts +1 -1
  270. package/dist/src/radio/radio.d.ts +5 -0
  271. package/dist/src/ripple/ripple.d.ts +10 -1
  272. package/dist/src/search/search.d.ts +1 -1
  273. package/dist/src/segmented-button/segmented-button-group.d.ts +2 -2
  274. package/dist/src/segmented-button/segmented-button.d.ts +2 -0
  275. package/dist/src/side-sheet/side-sheet.d.ts +1 -1
  276. package/dist/src/skeleton/skeleton.d.ts +1 -0
  277. package/dist/src/slider/slider.d.ts +1 -0
  278. package/dist/src/snackbar/snackbar.d.ts +12 -2
  279. package/dist/src/svg/svg.d.ts +5 -0
  280. package/dist/src/table/table.d.ts +5 -0
  281. package/dist/src/tabs/tab.d.ts +2 -7
  282. package/dist/src/toolbar/toolbar.d.ts +2 -2
  283. package/dist/standalone-Ccq0tWwA.js +32 -0
  284. package/dist/standalone-Ccq0tWwA.js.map +1 -0
  285. package/dist/{state-DwbEjqVk.js → state-DkTK9EGF.js} +2 -2
  286. package/dist/{state-DwbEjqVk.js.map → state-DkTK9EGF.js.map} +1 -1
  287. package/dist/{style-map-DVmWOuYy.js → style-map-BQD5Et1D.js} +2 -2
  288. package/dist/{style-map-DVmWOuYy.js.map → style-map-BQD5Et1D.js.map} +1 -1
  289. package/dist/sub-menu.js +246 -0
  290. package/dist/sub-menu.js.map +1 -0
  291. package/dist/svg.js +273 -0
  292. package/dist/svg.js.map +1 -0
  293. package/dist/tab-group.js +188 -0
  294. package/dist/tab-group.js.map +1 -0
  295. package/dist/tab-panel.js +61 -0
  296. package/dist/tab-panel.js.map +1 -0
  297. package/dist/tab.js +658 -0
  298. package/dist/tab.js.map +1 -0
  299. package/dist/table.js +620 -0
  300. package/dist/table.js.map +1 -0
  301. package/dist/tabs.js +240 -0
  302. package/dist/tabs.js.map +1 -0
  303. package/dist/throttle-C7ZAPqtu.js +24 -0
  304. package/dist/throttle-C7ZAPqtu.js.map +1 -0
  305. package/dist/toolbar.js +9 -5
  306. package/dist/toolbar.js.map +1 -1
  307. package/dist/tooltip.js +270 -0
  308. package/dist/tooltip.js.map +1 -0
  309. package/dist/tsconfig.tsbuildinfo +1 -1
  310. package/dist/{unsafe-html-BsGUjx94.js → unsafe-html-Ct0N2_UU.js} +2 -2
  311. package/dist/{unsafe-html-BsGUjx94.js.map → unsafe-html-Ct0N2_UU.js.map} +1 -1
  312. package/dist/when-DEJm_QN9.js +9 -0
  313. package/dist/when-DEJm_QN9.js.map +1 -0
  314. package/package.json +4 -2
  315. package/readme.md +4 -4
  316. package/scss/mixin.scss +9 -6
  317. package/src/__internal/aria/aria.ts +293 -0
  318. package/src/__internal/aria/delegate.ts +206 -0
  319. package/src/__internal/events/dispatch-hooks.ts +182 -0
  320. package/src/__internal/mixins/element-internals.ts +73 -0
  321. package/src/__internal/mixins/form-associated.ts +295 -0
  322. package/src/__internal/mixins/form-submitter.ts +133 -0
  323. package/src/__internal/mixins/hyperlink.ts +71 -0
  324. package/src/__internal/mixins/mixin.ts +58 -0
  325. package/src/{__utils → __internal/utils}/observe-slot-change.ts +2 -5
  326. package/src/accordion/accordion-item.ts +6 -2
  327. package/src/accordion/accordion.ts +4 -2
  328. package/src/accordion/demo/index.html +95 -90
  329. package/src/alert/alert.scss +82 -0
  330. package/src/{banner/banner.ts → alert/alert.ts} +22 -22
  331. package/src/alert/index.ts +1 -0
  332. package/src/app-bar/app-bar-colors.scss +17 -0
  333. package/src/app-bar/app-bar.scss +165 -0
  334. package/src/app-bar/app-bar.ts +155 -0
  335. package/src/app-bar/index.ts +1 -0
  336. package/src/avatar/avatar.ts +4 -0
  337. package/src/badge/badge.ts +2 -0
  338. package/src/bottom-sheet/bottom-sheet.ts +8 -2
  339. package/src/breadcrumb/breadcrumb/breadcrumb.ts +2 -0
  340. package/src/breadcrumb/breadcrumb-item/breadcrumb-item.ts +3 -0
  341. package/src/button/ButtonTypes.ts +17 -0
  342. package/src/button/base-button/base-button.ts +85 -0
  343. package/src/button/button/button-base.scss +307 -0
  344. package/src/button/button/button-colors.scss +27 -32
  345. package/src/button/button/button-layers.scss +126 -43
  346. package/src/button/button/button-shapes.scss +73 -0
  347. package/src/button/button/button.scss +12 -286
  348. package/src/button/button/button.ts +174 -194
  349. package/src/button/button-group/button-group.scss +43 -36
  350. package/src/button/button-group/button-group.ts +26 -137
  351. package/src/{fab → button/fab}/fab-colors.scss +0 -10
  352. package/src/button/fab/fab-sizes.scss +37 -0
  353. package/src/button/fab/fab.scss +172 -0
  354. package/src/{fab → button/fab}/fab.ts +69 -109
  355. package/src/button/icon-button/icon-button-sizes.scss +18 -3
  356. package/src/button/icon-button/icon-button.scss +5 -0
  357. package/src/button/icon-button/icon-button.ts +111 -141
  358. package/src/button/index.ts +7 -0
  359. package/src/calendar/calendar.ts +2 -2
  360. package/src/canvas/canvas.ts +2 -2
  361. package/src/card/card.scss +21 -8
  362. package/src/card/card.ts +20 -40
  363. package/src/chart-bar/chart-bar.ts +2 -2
  364. package/src/chart-bar/chart-stacked-bar.ts +2 -2
  365. package/src/checkbox/checkbox.ts +12 -4
  366. package/src/chip/chip/chip.scss +1 -1
  367. package/src/chip/chip/chip.ts +35 -55
  368. package/src/chip/demo/index.html +30 -26
  369. package/src/code-editor/code-editor.ts +68 -58
  370. package/src/code-editor/demo/index.html +32 -27
  371. package/src/code-highlighter/code-highlighter.ts +95 -40
  372. package/src/code-highlighter/demo/index.html +24 -21
  373. package/src/color-picker/color-picker.scss +217 -0
  374. package/src/color-picker/color-picker.ts +478 -0
  375. package/src/color-picker/index.ts +1 -0
  376. package/src/container/container.ts +8 -2
  377. package/src/date-picker/date-picker.ts +2 -3
  378. package/src/divider/divider.ts +5 -1
  379. package/src/dropdown-button/demo/index.html +106 -101
  380. package/src/dropdown-button/dropdown-button.ts +1 -1
  381. package/src/elevation/elevation.ts +2 -0
  382. package/src/empty-state/empty-state.ts +3 -0
  383. package/src/field/field.ts +52 -33
  384. package/src/focus-ring/focus-ring.ts +5 -7
  385. package/src/html-editor/html-editor.ts +28 -16
  386. package/src/icon/datasource.ts +1 -1
  387. package/src/icon/icon.ts +27 -15
  388. package/src/image/image.ts +18 -6
  389. package/src/index.ts +25 -6
  390. package/src/input/input.ts +2 -2
  391. package/src/item/item.scss +127 -161
  392. package/src/item/item.ts +69 -323
  393. package/src/link/link.ts +3 -1
  394. package/src/list/list-item.scss +48 -32
  395. package/src/list/list-item.ts +109 -79
  396. package/src/list/list.scss +1 -13
  397. package/src/list/list.ts +170 -5
  398. package/src/{peacock-loader.ts → loader.ts} +95 -79
  399. package/src/menu/menu/menu.scss +15 -26
  400. package/src/menu/menu/menu.ts +20 -9
  401. package/src/menu/menu-item/menu-item.scss +82 -20
  402. package/src/menu/menu-item/menu-item.ts +85 -46
  403. package/src/menu/sub-menu/sub-menu.scss +5 -1
  404. package/src/menu/sub-menu/sub-menu.ts +3 -0
  405. package/src/modal/modal.ts +2 -2
  406. package/src/navigation-rail/navigation-rail-item.scss +25 -8
  407. package/src/navigation-rail/navigation-rail-item.ts +21 -36
  408. package/src/navigation-rail/navigation-rail.scss +25 -21
  409. package/src/navigation-rail/navigation-rail.ts +4 -2
  410. package/src/number-field/number-field.ts +2 -2
  411. package/src/pagination/pagination.ts +2 -0
  412. package/src/popover/popover.ts +3 -3
  413. package/src/radio/radio.ts +13 -5
  414. package/src/ripple/ripple.ts +14 -1
  415. package/src/search/search.ts +3 -3
  416. package/src/segmented-button/segmented-button-group.ts +8 -4
  417. package/src/segmented-button/segmented-button.ts +4 -0
  418. package/src/select/option.ts +2 -0
  419. package/src/side-sheet/side-sheet.ts +3 -3
  420. package/src/sidebar-menu/sidebar-menu-item.scss +12 -6
  421. package/src/sidebar-menu/sidebar-menu-item.ts +3 -2
  422. package/src/skeleton/skeleton.ts +3 -0
  423. package/src/slider/slider.ts +4 -1
  424. package/src/snackbar/snackbar.ts +40 -25
  425. package/src/spinner/spinner.ts +2 -0
  426. package/src/svg/svg.ts +27 -9
  427. package/src/switch/switch.ts +1 -1
  428. package/src/table/table.ts +16 -3
  429. package/src/tabs/demo/index.html +79 -79
  430. package/src/tabs/tab-group.ts +2 -0
  431. package/src/tabs/tab-panel.ts +2 -0
  432. package/src/tabs/tab.scss +4 -4
  433. package/src/tabs/tab.ts +16 -39
  434. package/src/tabs/tabs.ts +2 -0
  435. package/src/textarea/textarea.ts +2 -2
  436. package/src/time-picker/time-picker.ts +2 -2
  437. package/src/toolbar/toolbar.ts +3 -3
  438. package/src/tooltip/tooltip.ts +14 -8
  439. package/src/url-field/url-field.ts +2 -3
  440. package/dist/ButtonConstants-D06bY4uy.js +0 -114
  441. package/dist/ButtonConstants-D06bY4uy.js.map +0 -1
  442. package/dist/NativeHyperlinkMixin-DrYXyfMQ.js.map +0 -1
  443. package/dist/banner.js +0 -186
  444. package/dist/banner.js.map +0 -1
  445. package/dist/button-colors-D7sJyPy8.js +0 -586
  446. package/dist/button-colors-D7sJyPy8.js.map +0 -1
  447. package/dist/icon-CueRR7wx.js +0 -260
  448. package/dist/icon-CueRR7wx.js.map +0 -1
  449. package/dist/icon-button-CAzYr_qr.js +0 -318
  450. package/dist/icon-button-CAzYr_qr.js.map +0 -1
  451. package/dist/navigation-rail-CM_svs5_.js +0 -14184
  452. package/dist/navigation-rail-CM_svs5_.js.map +0 -1
  453. package/dist/observe-slot-change-D8Xg-kSS.js.map +0 -1
  454. package/dist/peacock-loader.js.map +0 -1
  455. package/dist/popover-DUPmMVWS.js.map +0 -1
  456. package/dist/query-QBcUV-L_.js +0 -15
  457. package/dist/query-QBcUV-L_.js.map +0 -1
  458. package/dist/src/banner/banner.d.ts +0 -43
  459. package/dist/src/banner/index.d.ts +0 -1
  460. package/dist/src/button/GroupButtonInterface.d.ts +0 -4
  461. package/src/banner/banner.scss +0 -82
  462. package/src/banner/index.ts +0 -1
  463. package/src/button/GroupButtonInterface.ts +0 -4
  464. package/src/button/button/only-button.scss +0 -13
  465. package/src/fab/fab-sizes.scss +0 -37
  466. package/src/fab/fab.scss +0 -143
  467. /package/dist/src/{__controllers → __internal/controllers}/attachable-controller.d.ts +0 -0
  468. /package/dist/src/{__controllers → __internal/controllers}/floating-controller.d.ts +0 -0
  469. /package/dist/src/{__directive → __internal/directive}/spread.d.ts +0 -0
  470. /package/dist/src/{__mixins → __internal/mixins}/MixinConstructor.d.ts +0 -0
  471. /package/dist/src/{__mixins → __internal/mixins}/NativeButtonMixin.d.ts +0 -0
  472. /package/dist/src/{__mixins → __internal/mixins}/NativeHyperlinkMixin.d.ts +0 -0
  473. /package/dist/src/{__utils → __internal/utils}/cache-fetch.d.ts +0 -0
  474. /package/dist/src/{__utils → __internal/utils}/copy-to-clipboard.d.ts +0 -0
  475. /package/dist/src/{__utils → __internal/utils}/dispatch-event-utils.d.ts +0 -0
  476. /package/dist/src/{__utils → __internal/utils}/is-dark-mode.d.ts +0 -0
  477. /package/dist/src/{__utils → __internal/utils}/is-in-viewport.d.ts +0 -0
  478. /package/dist/src/{__utils → __internal/utils}/is-link.d.ts +0 -0
  479. /package/dist/src/{__utils → __internal/utils}/observe-theme-change.d.ts +0 -0
  480. /package/dist/src/{__utils → __internal/utils}/sanitize-svg.d.ts +0 -0
  481. /package/dist/src/{__utils → __internal/utils}/throttle.d.ts +0 -0
  482. /package/dist/src/{fab → button/fab}/index.d.ts +0 -0
  483. /package/dist/src/{peacock-loader.d.ts → loader.d.ts} +0 -0
  484. /package/dist/test/{banner.test.d.ts → alert.test.d.ts} +0 -0
  485. /package/src/{__controllers → __internal/controllers}/attachable-controller.ts +0 -0
  486. /package/src/{__controllers → __internal/controllers}/floating-controller.ts +0 -0
  487. /package/src/{__directive → __internal/directive}/spread.ts +0 -0
  488. /package/src/{__mixins → __internal/mixins}/MixinConstructor.ts +0 -0
  489. /package/src/{__mixins → __internal/mixins}/NativeButtonMixin.ts +0 -0
  490. /package/src/{__mixins → __internal/mixins}/NativeHyperlinkMixin.ts +0 -0
  491. /package/src/{__mixins → __internal/mixins}/README.md +0 -0
  492. /package/src/{__utils → __internal/utils}/cache-fetch.ts +0 -0
  493. /package/src/{__utils → __internal/utils}/copy-to-clipboard.ts +0 -0
  494. /package/src/{__utils → __internal/utils}/dispatch-event-utils.ts +0 -0
  495. /package/src/{__utils → __internal/utils}/is-dark-mode.ts +0 -0
  496. /package/src/{__utils → __internal/utils}/is-in-viewport.ts +0 -0
  497. /package/src/{__utils → __internal/utils}/is-link.ts +0 -0
  498. /package/src/{__utils → __internal/utils}/observe-theme-change.ts +0 -0
  499. /package/src/{__utils → __internal/utils}/sanitize-svg.ts +0 -0
  500. /package/src/{__utils → __internal/utils}/throttle.ts +0 -0
  501. /package/src/{fab → button/fab}/index.ts +0 -0
@@ -0,0 +1,400 @@
1
+ import { i, _ as __decorate, I as IndividualComponent, a as i$1, A, c as __classPrivateFieldGet, b } from './IndividualComponent-Bdwyrvd6.js';
2
+ import { n } from './property-B49QQ8pS.js';
3
+ import { r } from './state-DkTK9EGF.js';
4
+ import { e } from './query-CHb9Ft_d.js';
5
+ import { e as e$1 } from './class-map-DG7CA1et.js';
6
+ import { i as isActivationClick, d as dispatchActivationClick } from './dispatch-event-utils-CuEqjlPT.js';
7
+ import { o as observerSlotChangesWithCallback } from './observe-slot-change-DPxaZrZF.js';
8
+ import { t as throttle } from './throttle-C7ZAPqtu.js';
9
+ import { i as isLink } from './is-link-Dk2OV3PM.js';
10
+ import './base-Cl6v8-BZ.js';
11
+ import './directive-ZPhl09Yt.js';
12
+
13
+ var css_248z = i`* {
14
+ box-sizing: border-box;
15
+ }
16
+
17
+ .screen-reader-only {
18
+ display: none !important;
19
+ }
20
+
21
+ [hidden] {
22
+ display: none !important;
23
+ }
24
+
25
+ :host {
26
+ display: block;
27
+ }
28
+
29
+ /* Reset native button/link styles */
30
+ .item-element {
31
+ background: transparent;
32
+ border: none;
33
+ appearance: none;
34
+ margin: 0;
35
+ outline: none;
36
+ text-decoration: none;
37
+ text-align: unset;
38
+ color: inherit;
39
+ }
40
+
41
+ .item {
42
+ position: relative;
43
+ display: flex;
44
+ flex-direction: column;
45
+ align-items: center;
46
+ justify-content: center;
47
+ width: 100%;
48
+ min-height: 3.5rem; /* 56dp */
49
+ padding-block: 0.25rem; /* 4dp vertical padding */
50
+ cursor: pointer;
51
+ gap: 0.25rem; /* 4dp gap between indicator and label */
52
+ box-sizing: border-box;
53
+ /* Color tokens */
54
+ --_inactive-icon-color: var(
55
+ --nav-rail-inactive-icon-color,
56
+ var(--color-on-surface-variant)
57
+ );
58
+ --_active-icon-color: var(
59
+ --nav-rail-active-icon-color,
60
+ var(--color-on-secondary-container)
61
+ );
62
+ --_inactive-label-color: var(
63
+ --nav-rail-inactive-label-color,
64
+ var(--color-on-surface-variant)
65
+ );
66
+ --_active-label-color: var(
67
+ --nav-rail-active-label-color,
68
+ var(--color-on-surface)
69
+ );
70
+ --_indicator-color: var(
71
+ --nav-rail-indicator-color,
72
+ var(--color-secondary-container)
73
+ );
74
+ --_indicator-shape: var(--nav-rail-indicator-shape, var(--shape-corner-full));
75
+ --_indicator-width: var(--nav-rail-indicator-width, 3.5rem); /* 56dp */
76
+ --_indicator-height: var(--nav-rail-indicator-height, 2rem); /* 32dp */
77
+ --_state-color: var(--_inactive-icon-color);
78
+ /* Focus ring */
79
+ }
80
+ .item .focus-ring {
81
+ z-index: 3;
82
+ --focus-ring-container-shape-start-start: var(--shape-corner-small);
83
+ --focus-ring-container-shape-start-end: var(--shape-corner-small);
84
+ --focus-ring-container-shape-end-start: var(--shape-corner-small);
85
+ --focus-ring-container-shape-end-end: var(--shape-corner-small);
86
+ }
87
+ .item {
88
+ /* Active indicator (pill behind icon) */
89
+ }
90
+ .item .indicator {
91
+ position: relative;
92
+ display: flex;
93
+ align-items: center;
94
+ justify-content: center;
95
+ width: var(--_indicator-width);
96
+ height: var(--_indicator-height);
97
+ border-radius: var(--_indicator-shape);
98
+ overflow: hidden;
99
+ flex-shrink: 0;
100
+ transition: background-color var(--duration-short4, 200ms) var(--easing-standard, ease);
101
+ }
102
+ .item .indicator .ripple {
103
+ inset: 0;
104
+ z-index: 0;
105
+ --ripple-pressed-color: var(--_state-color);
106
+ border-radius: inherit;
107
+ }
108
+ .item .indicator .icon-container {
109
+ display: flex;
110
+ align-items: center;
111
+ justify-content: center;
112
+ z-index: 1;
113
+ position: relative;
114
+ pointer-events: none;
115
+ }
116
+ .item .indicator .icon-container ::slotted(*) {
117
+ --icon-size: 1.5rem; /* 24dp */
118
+ --icon-color: var(--_inactive-icon-color);
119
+ color: var(--_inactive-icon-color);
120
+ display: flex;
121
+ }
122
+ .item {
123
+ /* Label */
124
+ }
125
+ .item .label {
126
+ font-family: var(--typography-label-medium-font-family) !important;
127
+ font-size: var(--typography-label-medium-font-size) !important;
128
+ font-weight: var(--typography-label-medium-font-weight) !important;
129
+ line-height: var(--typography-label-medium-line-height) !important;
130
+ letter-spacing: var(--typography-label-medium-letter-spacing) !important;
131
+ color: var(--_inactive-label-color);
132
+ text-align: center;
133
+ pointer-events: none;
134
+ z-index: 1;
135
+ transition: color var(--duration-short4, 200ms) var(--easing-standard, ease), font-weight var(--duration-short4, 200ms) var(--easing-standard, ease);
136
+ }
137
+ .item {
138
+ /* Hide label when collapsed via class */
139
+ }
140
+ .item .label.hidden {
141
+ display: none;
142
+ }
143
+ .item {
144
+ /* Active icon slot: hidden by default */
145
+ }
146
+ .item .active-icon-slot {
147
+ display: none;
148
+ }
149
+ .item .hidden-slot {
150
+ display: none;
151
+ }
152
+ .item {
153
+ /* Item content layout */
154
+ }
155
+ .item .item-content {
156
+ display: flex;
157
+ flex-direction: column;
158
+ align-items: center;
159
+ gap: 0.25rem;
160
+ width: 100%;
161
+ z-index: 1;
162
+ }
163
+ .item {
164
+ /* Active state */
165
+ }
166
+ .item.active {
167
+ --_state-color: var(--_active-icon-color);
168
+ }
169
+ .item.active .indicator {
170
+ background-color: var(--_indicator-color);
171
+ }
172
+ .item.active .indicator .icon-container ::slotted(*) {
173
+ --icon-color: var(--_active-icon-color);
174
+ color: var(--_active-icon-color);
175
+ }
176
+ .item.active .label {
177
+ color: var(--_active-label-color);
178
+ font-weight: var(--font-weight-bold) !important;
179
+ }
180
+ .item {
181
+ /* Active icon slot: show when active and slot has content */
182
+ }
183
+ .item.active.has-active-icon .active-icon-slot {
184
+ display: flex;
185
+ }
186
+ .item.active.has-active-icon .icon-slot {
187
+ display: none;
188
+ }
189
+ .item {
190
+ /* Disabled state */
191
+ }
192
+ .item.disabled {
193
+ cursor: not-allowed;
194
+ }
195
+ .item.disabled .indicator .icon-container ::slotted(*) {
196
+ --icon-color: var(--color-on-surface);
197
+ color: var(--color-on-surface);
198
+ opacity: 0.38;
199
+ }
200
+ .item.disabled .label {
201
+ color: var(--color-on-surface);
202
+ opacity: 0.38;
203
+ }
204
+ .item.disabled .ripple {
205
+ display: none;
206
+ }
207
+
208
+ @media (prefers-reduced-motion: reduce) {
209
+ .item .indicator,
210
+ .item .label {
211
+ transition: none;
212
+ }
213
+ }`;
214
+
215
+ var _NavigationRailItem_id;
216
+ /**
217
+ * @label Navigation Rail Item
218
+ * @tag wc-navigation-rail-item
219
+ * @rawTag navigation-rail-item
220
+ *
221
+ * @summary An individual item within a navigation rail.
222
+ * @overview
223
+ * <p>Navigation rail items display a destination with an icon and optional label.</p>
224
+ *
225
+ * @example
226
+ * ```html
227
+ * <wc-navigation-rail-item>
228
+ * <wc-icon slot="icon">home</wc-icon>
229
+ * Home
230
+ * </wc-navigation-rail-item>
231
+ * ```
232
+ * @tags navigation
233
+ */
234
+ let NavigationRailItem = class NavigationRailItem extends i$1 {
235
+ constructor() {
236
+ super();
237
+ _NavigationRailItem_id.set(this, crypto.randomUUID());
238
+ /** Whether this item is currently active/selected. */
239
+ this.active = false;
240
+ /** Whether this item is disabled. */
241
+ this.disabled = false;
242
+ /** Whether the parent rail is in collapsed mode (labels hidden). */
243
+ this.collapsed = false;
244
+ /** Link target. */
245
+ this.target = '_self';
246
+ /** Reason the item is disabled (shown to screen readers). */
247
+ this.disabledReason = '';
248
+ /** Sets the delay for throttle in milliseconds. When null (default), no throttle is applied. */
249
+ this.throttleDelay = null;
250
+ /** True when the default slot contains label content. */
251
+ this._hasLabel = false;
252
+ /** True when the `active-icon` slot contains content. */
253
+ this._hasActiveIcon = false;
254
+ this.__dispatchClickWithThrottle = event => {
255
+ this.__dispatchClick(event);
256
+ };
257
+ this.__dispatchClick = (event) => {
258
+ if (this.disabled && this.href) {
259
+ event.stopImmediatePropagation();
260
+ event.preventDefault();
261
+ return;
262
+ }
263
+ if (!isActivationClick(event) || !this.itemElement) {
264
+ return;
265
+ }
266
+ this.focus();
267
+ dispatchActivationClick(this.itemElement);
268
+ };
269
+ this.addEventListener('click', this.__dispatchClickWithThrottle);
270
+ }
271
+ focus() {
272
+ this.itemElement?.focus();
273
+ }
274
+ blur() {
275
+ this.itemElement?.blur();
276
+ }
277
+ firstUpdated() {
278
+ if (typeof this.throttleDelay === 'number') {
279
+ this.__dispatchClickWithThrottle = throttle(this.__dispatchClick, this.throttleDelay);
280
+ }
281
+ observerSlotChangesWithCallback(this.renderRoot.querySelector('slot.label'), hasContent => {
282
+ this._hasLabel = hasContent;
283
+ this.requestUpdate();
284
+ });
285
+ observerSlotChangesWithCallback(this.renderRoot.querySelector('slot.active-icon-slot'), hasContent => {
286
+ this._hasActiveIcon = hasContent;
287
+ this.requestUpdate();
288
+ });
289
+ }
290
+ __getDisabledReasonID() {
291
+ return this.disabled && this.disabledReason
292
+ ? `disabled-reason-${__classPrivateFieldGet(this, _NavigationRailItem_id, "f")}`
293
+ : A;
294
+ }
295
+ __renderDisabledReason() {
296
+ const disabledReasonID = this.__getDisabledReasonID();
297
+ if (disabledReasonID)
298
+ return b `<div
299
+ id="disabled-reason-${__classPrivateFieldGet(this, _NavigationRailItem_id, "f")}"
300
+ role="tooltip"
301
+ aria-label=${this.disabledReason}
302
+ class="screen-reader-only"
303
+ >
304
+ ${this.disabledReason}
305
+ </div>`;
306
+ return A;
307
+ }
308
+ __renderItemContent() {
309
+ return b `
310
+ <wc-focus-ring class="focus-ring" for="item"></wc-focus-ring>
311
+
312
+ <div class="item-content">
313
+ <div class="indicator">
314
+ <wc-ripple class="ripple"></wc-ripple>
315
+ <div class="icon-container">
316
+ <slot name="active-icon" class="active-icon-slot"></slot>
317
+ <slot name="icon" class="icon-slot"></slot>
318
+ </div>
319
+ </div>
320
+ <div class="label ${this.collapsed ? 'hidden' : ''}"><slot></slot></div>
321
+ </div>
322
+
323
+ ${this.__renderDisabledReason()}
324
+ `;
325
+ }
326
+ render() {
327
+ const cssClasses = {
328
+ item: true,
329
+ 'item-element': true,
330
+ active: this.active,
331
+ disabled: this.disabled,
332
+ 'has-label': this._hasLabel,
333
+ 'has-active-icon': this._hasActiveIcon,
334
+ };
335
+ if (!isLink(this)) {
336
+ return b `<button
337
+ id="item"
338
+ class=${e$1(cssClasses)}
339
+ ?disabled=${this.disabled}
340
+ aria-disabled=${`${this.disabled}`}
341
+ aria-current=${this.active ? 'page' : A}
342
+ ?aria-describedby=${this.__getDisabledReasonID()}
343
+ >
344
+ ${this.__renderItemContent()}
345
+ </button>`;
346
+ }
347
+ return b `<a
348
+ id="item"
349
+ class=${e$1(cssClasses)}
350
+ href=${this.href}
351
+ target=${this.target}
352
+ aria-current=${this.active ? 'page' : A}
353
+ aria-disabled=${`${this.disabled}`}
354
+ ?aria-describedby=${this.__getDisabledReasonID()}
355
+ >
356
+ ${this.__renderItemContent()}
357
+ </a>`;
358
+ }
359
+ };
360
+ _NavigationRailItem_id = new WeakMap();
361
+ NavigationRailItem.styles = [css_248z];
362
+ __decorate([
363
+ n({ type: Boolean, reflect: true })
364
+ ], NavigationRailItem.prototype, "active", void 0);
365
+ __decorate([
366
+ n({ type: Boolean, reflect: true })
367
+ ], NavigationRailItem.prototype, "disabled", void 0);
368
+ __decorate([
369
+ n({ type: Boolean, reflect: true })
370
+ ], NavigationRailItem.prototype, "collapsed", void 0);
371
+ __decorate([
372
+ n({ reflect: true })
373
+ ], NavigationRailItem.prototype, "href", void 0);
374
+ __decorate([
375
+ n()
376
+ ], NavigationRailItem.prototype, "target", void 0);
377
+ __decorate([
378
+ n({ reflect: true })
379
+ ], NavigationRailItem.prototype, "value", void 0);
380
+ __decorate([
381
+ n({ attribute: 'disabled-reason' })
382
+ ], NavigationRailItem.prototype, "disabledReason", void 0);
383
+ __decorate([
384
+ n({ type: Number })
385
+ ], NavigationRailItem.prototype, "throttleDelay", void 0);
386
+ __decorate([
387
+ r()
388
+ ], NavigationRailItem.prototype, "_hasLabel", void 0);
389
+ __decorate([
390
+ r()
391
+ ], NavigationRailItem.prototype, "_hasActiveIcon", void 0);
392
+ __decorate([
393
+ e('.item-element')
394
+ ], NavigationRailItem.prototype, "itemElement", void 0);
395
+ NavigationRailItem = __decorate([
396
+ IndividualComponent
397
+ ], NavigationRailItem);
398
+
399
+ export { NavigationRailItem };
400
+ //# sourceMappingURL=navigation-rail-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation-rail-item.js","sources":["../../src/navigation-rail/navigation-rail-item.ts"],"sourcesContent":["import { html, LitElement, nothing } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport {\n dispatchActivationClick,\n isActivationClick,\n} from '@/__internal/utils/dispatch-event-utils.js';\nimport { observerSlotChangesWithCallback } from '@/__internal/utils/observe-slot-change.js';\nimport { throttle } from '@/__internal/utils/throttle.js';\nimport { isLink } from '@/__internal/utils/is-link.js';\nimport styles from './navigation-rail-item.scss';\nimport IndividualComponent from '@/IndividualComponent.js';\n\n/**\n * @label Navigation Rail Item\n * @tag wc-navigation-rail-item\n * @rawTag navigation-rail-item\n *\n * @summary An individual item within a navigation rail.\n * @overview\n * <p>Navigation rail items display a destination with an icon and optional label.</p>\n *\n * @example\n * ```html\n * <wc-navigation-rail-item>\n * <wc-icon slot=\"icon\">home</wc-icon>\n * Home\n * </wc-navigation-rail-item>\n * ```\n * @tags navigation\n */\n@IndividualComponent\nexport class NavigationRailItem extends LitElement {\n #id = crypto.randomUUID();\n\n static styles = [styles];\n\n /** Whether this item is currently active/selected. */\n @property({ type: Boolean, reflect: true }) active = false;\n\n /** Whether this item is disabled. */\n @property({ type: Boolean, reflect: true }) disabled = false;\n\n /** Whether the parent rail is in collapsed mode (labels hidden). */\n @property({ type: Boolean, reflect: true }) collapsed = false;\n\n /** If provided, the item renders as a link. */\n @property({ reflect: true }) href?: string;\n\n /** Link target. */\n @property() target: string = '_self';\n\n /** Value used for identification when managing active state externally. */\n @property({ reflect: true }) value?: string;\n\n /** Reason the item is disabled (shown to screen readers). */\n @property({ attribute: 'disabled-reason' }) disabledReason: string = '';\n\n /** Sets the delay for throttle in milliseconds. When null (default), no throttle is applied. */\n @property({ type: Number }) throttleDelay: number | null = null;\n\n /** True when the default slot contains label content. */\n @state() private _hasLabel = false;\n\n /** True when the `active-icon` slot contains content. */\n @state() private _hasActiveIcon = false;\n\n @query('.item-element') readonly itemElement!: HTMLElement | null;\n\n constructor() {\n super();\n this.addEventListener('click', this.__dispatchClickWithThrottle);\n }\n\n override focus() {\n this.itemElement?.focus();\n }\n\n override blur() {\n this.itemElement?.blur();\n }\n\n override firstUpdated() {\n if (typeof this.throttleDelay === 'number') {\n this.__dispatchClickWithThrottle = throttle(\n this.__dispatchClick,\n this.throttleDelay,\n );\n }\n\n observerSlotChangesWithCallback(\n this.renderRoot.querySelector('slot.label'),\n hasContent => {\n this._hasLabel = hasContent;\n this.requestUpdate();\n },\n );\n\n observerSlotChangesWithCallback(\n this.renderRoot.querySelector('slot.active-icon-slot'),\n hasContent => {\n this._hasActiveIcon = hasContent;\n this.requestUpdate();\n },\n );\n }\n\n __dispatchClickWithThrottle: (event: MouseEvent | KeyboardEvent) => void =\n event => {\n this.__dispatchClick(event);\n };\n\n __dispatchClick = (event: MouseEvent | KeyboardEvent) => {\n if (this.disabled && this.href) {\n event.stopImmediatePropagation();\n event.preventDefault();\n return;\n }\n\n if (!isActivationClick(event) || !this.itemElement) {\n return;\n }\n\n this.focus();\n dispatchActivationClick(this.itemElement);\n };\n\n __getDisabledReasonID() {\n return this.disabled && this.disabledReason\n ? `disabled-reason-${this.#id}`\n : nothing;\n }\n\n __renderDisabledReason() {\n const disabledReasonID = this.__getDisabledReasonID();\n if (disabledReasonID)\n return html`<div\n id=\"disabled-reason-${this.#id}\"\n role=\"tooltip\"\n aria-label=${this.disabledReason}\n class=\"screen-reader-only\"\n >\n ${this.disabledReason}\n </div>`;\n return nothing;\n }\n\n __renderItemContent() {\n return html`\n <wc-focus-ring class=\"focus-ring\" for=\"item\"></wc-focus-ring>\n\n <div class=\"item-content\">\n <div class=\"indicator\">\n <wc-ripple class=\"ripple\"></wc-ripple>\n <div class=\"icon-container\">\n <slot name=\"active-icon\" class=\"active-icon-slot\"></slot>\n <slot name=\"icon\" class=\"icon-slot\"></slot>\n </div>\n </div>\n <div class=\"label ${this.collapsed ? 'hidden' : ''}\"><slot></slot></div>\n </div>\n\n ${this.__renderDisabledReason()}\n `;\n }\n\n render() {\n const cssClasses = {\n item: true,\n 'item-element': true,\n active: this.active,\n disabled: this.disabled,\n 'has-label': this._hasLabel,\n 'has-active-icon': this._hasActiveIcon,\n };\n\n if (!isLink(this)) {\n return html`<button\n id=\"item\"\n class=${classMap(cssClasses)}\n ?disabled=${this.disabled}\n aria-disabled=${`${this.disabled}`}\n aria-current=${this.active ? 'page' : nothing}\n ?aria-describedby=${this.__getDisabledReasonID()}\n >\n ${this.__renderItemContent()}\n </button>`;\n }\n\n return html`<a\n id=\"item\"\n class=${classMap(cssClasses)}\n href=${this.href}\n target=${this.target}\n aria-current=${this.active ? 'page' : nothing}\n aria-disabled=${`${this.disabled}`}\n ?aria-describedby=${this.__getDisabledReasonID()}\n >\n ${this.__renderItemContent()}\n </a>`;\n }\n}\n"],"names":["LitElement","nothing","html","classMap","styles","property","state","query"],"mappings":"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"}
@@ -0,0 +1,219 @@
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 { NavigationRailItem } from './navigation-rail-item.js';
5
+ import './directive-ZPhl09Yt.js';
6
+ import './state-DkTK9EGF.js';
7
+ import './query-CHb9Ft_d.js';
8
+ import './base-Cl6v8-BZ.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
+
14
+ var css_248z = i`* {
15
+ box-sizing: border-box;
16
+ }
17
+
18
+ .screen-reader-only {
19
+ display: none !important;
20
+ }
21
+
22
+ [hidden] {
23
+ display: none !important;
24
+ }
25
+
26
+ :host {
27
+ display: block;
28
+ height: 100%;
29
+ width: var(--nav-rail-width, 6rem); /* 96dp */
30
+ overflow-y: auto;
31
+ overflow-x: hidden;
32
+ --nav-rail-padding-block: 1.5rem;
33
+ --nav-rail-container-color: var(--container-surface);
34
+ --nav-rail-label-text-color: var(--color-on-surface);
35
+ }
36
+
37
+ .rail {
38
+ display: flex;
39
+ flex-direction: column;
40
+ align-items: center;
41
+ height: calc(100% - var(--nav-rail-padding-block) * 2);
42
+ width: 100%;
43
+ border-radius: inherit;
44
+ background-color: var(--nav-rail-container-color);
45
+ color: var(--nav-rail-label-text-color);
46
+ margin-block: var(--nav-rail-padding-block); /* 24dp */
47
+ box-sizing: border-box;
48
+ }
49
+ .rail .header {
50
+ display: flex;
51
+ flex-direction: column;
52
+ align-items: center;
53
+ width: 100%;
54
+ flex-shrink: 0;
55
+ padding-block-end: 2.5rem;
56
+ }
57
+ .rail .header:empty {
58
+ display: none;
59
+ }
60
+ .rail wc-divider {
61
+ width: calc(100% - 1rem);
62
+ flex-shrink: 0;
63
+ }
64
+ .rail .items {
65
+ display: flex;
66
+ flex-direction: column;
67
+ align-items: center;
68
+ width: 100%;
69
+ gap: 0.75rem; /* 12dp between items */
70
+ flex: 1;
71
+ }
72
+ .rail .items ::slotted(wc-navigation-rail-item) {
73
+ width: 100%;
74
+ }
75
+ .rail .footer {
76
+ display: flex;
77
+ flex-direction: column;
78
+ align-items: center;
79
+ width: 100%;
80
+ margin-top: auto;
81
+ background-color: var(--nav-rail-container-color);
82
+ }
83
+ .rail .footer:empty {
84
+ display: none;
85
+ }`;
86
+
87
+ /**
88
+ * @label Navigation Rail
89
+ * @tag wc-navigation-rail
90
+ * @rawTag navigation-rail
91
+ *
92
+ * @summary A vertical side navigation for medium-sized screens,.
93
+ * @overview
94
+ * <p>Navigation rail provides access to primary destinations in an app using icons—with or without labels—on a vertical rail.</p>
95
+ * <p>Use navigation rail on medium-sized screens (tablets) with 3–7 destinations.</p>
96
+ *
97
+ * @slot header - Content displayed above the rail items.
98
+ * @slot footer - Content pinned to the bottom of the rail.
99
+ *
100
+ * @cssprop --nav-rail-width - Width of the rail container. Defaults to 5rem (80dp).
101
+ * @cssprop --nav-rail-container-color - Background color of the rail. Defaults to surface color.
102
+ * @cssprop --nav-rail-indicator-color - Color of the active indicator. Defaults to secondary-container.
103
+ * @cssprop --nav-rail-indicator-shape - Shape (border-radius) of the active indicator. Defaults to full (pill).
104
+ * @cssprop --nav-rail-indicator-width - Width of the active indicator. Defaults to 3.5rem (56dp).
105
+ * @cssprop --nav-rail-indicator-height - Height of the active indicator. Defaults to 2rem (32dp).
106
+ * @cssprop --nav-rail-inactive-icon-color - Color of inactive icons. Defaults to on-surface-variant.
107
+ * @cssprop --nav-rail-active-icon-color - Color of active icons. Defaults to on-secondary-container.
108
+ * @cssprop --nav-rail-inactive-label-color - Color of inactive labels. Defaults to on-surface-variant.
109
+ * @cssprop --nav-rail-active-label-color - Color of active labels. Defaults to on-surface.
110
+ *
111
+ * @example
112
+ * ```html
113
+ * <wc-navigation-rail>
114
+ * <wc-navigation-rail-item active>
115
+ * <wc-icon slot="icon" name="home"></wc-icon>
116
+ * Home
117
+ * </wc-navigation-rail-item>
118
+ * <wc-navigation-rail-item>
119
+ * <wc-icon slot="icon" name="search"></wc-icon>
120
+ * Search
121
+ * </wc-navigation-rail-item>
122
+ * </wc-navigation-rail>
123
+ * ```
124
+ * @tags navigation
125
+ */
126
+ let NavigationRail = class NavigationRail extends i$1 {
127
+ constructor() {
128
+ super(...arguments);
129
+ /**
130
+ * Display mode of the navigation rail.
131
+ * - `"expanded"`: shows labels.
132
+ * - `"collapsed"`: hides labels.
133
+ */
134
+ this.mode = 'expanded';
135
+ /**
136
+ * Whether to show a divider between the header and items sections.
137
+ */
138
+ this.showDivider = false;
139
+ this._handleItemClick = (event) => {
140
+ const target = event.target;
141
+ const item = target.closest('wc-navigation-rail-item');
142
+ if (!item || item.disabled)
143
+ return;
144
+ // Deactivate all items and activate the clicked one
145
+ for (const railItem of this._getItems()) {
146
+ railItem.active = railItem === item;
147
+ }
148
+ this.dispatchEvent(new CustomEvent('nav-change', {
149
+ detail: {
150
+ value: item.value,
151
+ item,
152
+ },
153
+ bubbles: true,
154
+ composed: true,
155
+ }));
156
+ };
157
+ this._syncItemMode = () => {
158
+ const isCollapsed = this.mode === 'collapsed';
159
+ for (const railItem of this._getItems()) {
160
+ railItem.collapsed = isCollapsed;
161
+ }
162
+ };
163
+ }
164
+ connectedCallback() {
165
+ super.connectedCallback();
166
+ this.addEventListener('click', this._handleItemClick);
167
+ this.setAttribute('role', 'navigation');
168
+ this.setAttribute('aria-label', this.getAttribute('aria-label') ?? 'Main navigation');
169
+ }
170
+ disconnectedCallback() {
171
+ this.removeEventListener('click', this._handleItemClick);
172
+ super.disconnectedCallback();
173
+ }
174
+ firstUpdated() {
175
+ this._syncItemMode();
176
+ }
177
+ updated(changedProperties) {
178
+ if (changedProperties.has('mode')) {
179
+ this._syncItemMode();
180
+ }
181
+ }
182
+ _getItems() {
183
+ return Array.from(this.querySelectorAll('wc-navigation-rail-item'));
184
+ }
185
+ render() {
186
+ const cssClasses = {
187
+ rail: true,
188
+ [`mode-${this.mode}`]: true,
189
+ };
190
+ return b `
191
+ <div class=${e(cssClasses)}>
192
+ <div class="header">
193
+ <slot name="header"></slot>
194
+ </div>
195
+ ${this.showDivider ? b `<wc-divider></wc-divider>` : ''}
196
+ <nav class="items" role="presentation">
197
+ <slot @slotchange=${this._syncItemMode}></slot>
198
+ </nav>
199
+ <div class="footer">
200
+ <slot name="footer"></slot>
201
+ </div>
202
+ </div>
203
+ `;
204
+ }
205
+ };
206
+ NavigationRail.styles = [css_248z];
207
+ NavigationRail.Item = NavigationRailItem;
208
+ __decorate([
209
+ n({ reflect: true })
210
+ ], NavigationRail.prototype, "mode", void 0);
211
+ __decorate([
212
+ n({ type: Boolean, attribute: 'show-divider' })
213
+ ], NavigationRail.prototype, "showDivider", void 0);
214
+ NavigationRail = __decorate([
215
+ IndividualComponent
216
+ ], NavigationRail);
217
+
218
+ export { NavigationRail };
219
+ //# sourceMappingURL=navigation-rail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation-rail.js","sources":["../../src/navigation-rail/navigation-rail.ts"],"sourcesContent":["import { html, LitElement, PropertyValues } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { classMap } from 'lit/directives/class-map.js';\nimport styles from './navigation-rail.scss';\nimport { NavigationRailItem } from './navigation-rail-item.js';\nimport IndividualComponent from '@/IndividualComponent.js';\n\n/**\n * @label Navigation Rail\n * @tag wc-navigation-rail\n * @rawTag navigation-rail\n *\n * @summary A vertical side navigation for medium-sized screens,.\n * @overview\n * <p>Navigation rail provides access to primary destinations in an app using icons—with or without labels—on a vertical rail.</p>\n * <p>Use navigation rail on medium-sized screens (tablets) with 3–7 destinations.</p>\n *\n * @slot header - Content displayed above the rail items.\n * @slot footer - Content pinned to the bottom of the rail.\n *\n * @cssprop --nav-rail-width - Width of the rail container. Defaults to 5rem (80dp).\n * @cssprop --nav-rail-container-color - Background color of the rail. Defaults to surface color.\n * @cssprop --nav-rail-indicator-color - Color of the active indicator. Defaults to secondary-container.\n * @cssprop --nav-rail-indicator-shape - Shape (border-radius) of the active indicator. Defaults to full (pill).\n * @cssprop --nav-rail-indicator-width - Width of the active indicator. Defaults to 3.5rem (56dp).\n * @cssprop --nav-rail-indicator-height - Height of the active indicator. Defaults to 2rem (32dp).\n * @cssprop --nav-rail-inactive-icon-color - Color of inactive icons. Defaults to on-surface-variant.\n * @cssprop --nav-rail-active-icon-color - Color of active icons. Defaults to on-secondary-container.\n * @cssprop --nav-rail-inactive-label-color - Color of inactive labels. Defaults to on-surface-variant.\n * @cssprop --nav-rail-active-label-color - Color of active labels. Defaults to on-surface.\n *\n * @example\n * ```html\n * <wc-navigation-rail>\n * <wc-navigation-rail-item active>\n * <wc-icon slot=\"icon\" name=\"home\"></wc-icon>\n * Home\n * </wc-navigation-rail-item>\n * <wc-navigation-rail-item>\n * <wc-icon slot=\"icon\" name=\"search\"></wc-icon>\n * Search\n * </wc-navigation-rail-item>\n * </wc-navigation-rail>\n * ```\n * @tags navigation\n */\n@IndividualComponent\nexport class NavigationRail extends LitElement {\n static styles = [styles];\n\n static Item = NavigationRailItem;\n\n /**\n * Display mode of the navigation rail.\n * - `\"expanded\"`: shows labels.\n * - `\"collapsed\"`: hides labels.\n */\n @property({ reflect: true }) mode: 'expanded' | 'collapsed' = 'expanded';\n\n /**\n * Whether to show a divider between the header and items sections.\n */\n @property({ type: Boolean, attribute: 'show-divider' }) showDivider = false;\n\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener('click', this._handleItemClick);\n this.setAttribute('role', 'navigation');\n this.setAttribute('aria-label', this.getAttribute('aria-label') ?? 'Main navigation');\n }\n\n disconnectedCallback() {\n this.removeEventListener('click', this._handleItemClick);\n super.disconnectedCallback();\n }\n\n protected override firstUpdated() {\n this._syncItemMode();\n }\n\n protected override updated(changedProperties: PropertyValues<this>) {\n if (changedProperties.has('mode')) {\n this._syncItemMode();\n }\n }\n\n private _handleItemClick = (event: Event) => {\n const target = event.target as HTMLElement;\n const item = target.closest('wc-navigation-rail-item') as NavigationRailItem | null;\n\n if (!item || item.disabled) return;\n\n // Deactivate all items and activate the clicked one\n for (const railItem of this._getItems()) {\n railItem.active = railItem === item;\n }\n\n this.dispatchEvent(\n new CustomEvent('nav-change', {\n detail: {\n value: item.value,\n item,\n },\n bubbles: true,\n composed: true,\n }),\n );\n };\n\n private _getItems(): NavigationRailItem[] {\n return Array.from(\n this.querySelectorAll('wc-navigation-rail-item'),\n ) as NavigationRailItem[];\n }\n\n private _syncItemMode = () => {\n const isCollapsed = this.mode === 'collapsed';\n for (const railItem of this._getItems()) {\n railItem.collapsed = isCollapsed;\n }\n };\n\n render() {\n const cssClasses = {\n rail: true,\n [`mode-${this.mode}`]: true,\n };\n\n return html`\n <div class=${classMap(cssClasses)}>\n <div class=\"header\">\n <slot name=\"header\"></slot>\n </div>\n ${this.showDivider ? html`<wc-divider></wc-divider>` : ''}\n <nav class=\"items\" role=\"presentation\">\n <slot @slotchange=${this._syncItemMode}></slot>\n </nav>\n <div class=\"footer\">\n <slot name=\"footer\"></slot>\n </div>\n </div>\n `;\n }\n}\n"],"names":["LitElement","html","classMap","styles","property"],"mappings":"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"}
@@ -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
  @keyframes reveal-top {
16
20
  0% {
17
21
  opacity: 0;