@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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"svg.js","sources":["../../src/svg/svg.ts"],"sourcesContent":["import { html, LitElement } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { unsafeSVG } from 'lit/directives/unsafe-svg.js';\n\nimport { sanitizeSvg } from '@/__internal/utils/sanitize-svg.js';\nimport { fetchSVG } from '../icon/datasource.js';\n\nimport styles from './svg.scss';\nimport IndividualComponent from '@/IndividualComponent.js';\n\n/**\n * @label SVG\n * @tag wc-svg\n * @rawTag svg\n * @summary An SVG component with lazy loading and optional preview support.\n * @overview Renders an inline SVG fetched from a URL, with lazy loading via IntersectionObserver and an optional click-to-preview lightbox.\n *\n * @cssprop --svg-color - Controls the fill color of the SVG.\n * @cssprop [--svg-size=1rem] - Controls the size of the SVG. Defaults to \"1rem\"\n *\n * @example\n * ```html\n * <wc-svg src=\"/icons/my-icon.svg\" image-title=\"My icon\"></wc-svg>\n * ```\n */\n@IndividualComponent\nexport class Svg extends LitElement {\n static styles = [styles];\n\n /** URL of the SVG asset to fetch and render inline. */\n @property({ type: String, reflect: true }) src = '';\n\n /** Accessible title / alt text for the SVG. */\n @property({ attribute: 'image-title' }) imageTitle = '';\n\n /** Enable click-to-preview lightbox. */\n @property({ type: Boolean, reflect: true }) preview = false;\n\n /** True once the element has entered the viewport and the SVG fetch has been initiated. */\n @state() private _loaded = false;\n\n /** True when the lightbox preview overlay is visible. */\n @state() private _previewOpen = false;\n\n /** Sanitized inline SVG markup ready for rendering. */\n @state() private _svgContent: string = '';\n\n // ── Private fields ────────────────────────────────────────────────────────\n\n /** Monotonically incrementing token used to discard stale fetch results. */\n private _fetchId = 0;\n\n /** IntersectionObserver that triggers the SVG fetch when the element enters the viewport. */\n private _intersectionObserver: IntersectionObserver | null = null;\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this._intersectionObserver?.disconnect();\n }\n\n firstUpdated() {\n this._setupIntersectionObserver();\n }\n\n updated(changedProperties: Map<string, unknown>) {\n if (changedProperties.has('src')) {\n // Reset lazy-load state so the new src is fetched when visible\n this._loaded = false;\n this._svgContent = '';\n this._setupIntersectionObserver();\n }\n }\n\n private _setupIntersectionObserver() {\n this._intersectionObserver?.disconnect();\n\n const wrapper = this.shadowRoot?.querySelector('.svg-wrapper');\n if (!wrapper) return;\n\n this._intersectionObserver = new IntersectionObserver(\n entries => {\n if (entries[0].isIntersecting) {\n this._loaded = true;\n this._intersectionObserver?.disconnect();\n this._fetchSvg();\n }\n },\n { rootMargin: '200px' },\n );\n\n this._intersectionObserver.observe(wrapper);\n }\n\n private async _fetchSvg() {\n if (!this.src) return;\n\n this._fetchId += 1;\n const currentId = this._fetchId;\n\n try {\n const raw = await fetchSVG(this.src);\n if (currentId !== this._fetchId) return;\n\n this._svgContent = raw ? sanitizeSvg(raw) : '';\n } catch {\n if (currentId === this._fetchId) {\n this._svgContent = '';\n }\n }\n }\n\n private _handleClick() {\n if (this.preview) {\n this._previewOpen = true;\n // Move focus into the dialog after render\n this.updateComplete.then(() => {\n const closeBtn =\n this.shadowRoot?.querySelector<HTMLElement>('.preview-close');\n closeBtn?.focus();\n });\n }\n }\n\n private _closePreview(e: Event) {\n e.stopPropagation();\n const wasOpen = this._previewOpen;\n this._previewOpen = false;\n if (wasOpen) {\n // Return focus to the trigger\n const trigger =\n this.shadowRoot?.querySelector<HTMLElement>('.svg-content');\n trigger?.focus();\n }\n }\n\n render() {\n return html`\n <div class=\"svg-wrapper\">\n ${this._loaded && this._svgContent\n ? html`<div\n class=\"svg-content ${this.preview ? 'clickable' : ''}\"\n role=${this.imageTitle ? 'img' : 'presentation'}\n aria-label=${this.imageTitle || ''}\n @click=${this._handleClick}\n >\n ${unsafeSVG(this._svgContent)}\n </div>`\n : html`<span class=\"placeholder\" aria-hidden=\"true\"></span>`}\n </div>\n\n <div\n class=\"preview-overlay ${this._previewOpen ? 'open' : ''}\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label=${this.imageTitle\n ? `Preview: ${this.imageTitle}`\n : 'SVG preview'}\n @click=${this._closePreview}\n @keydown=${(e: KeyboardEvent) =>\n e.key === 'Escape' && this._closePreview(e)}\n >\n <button\n class=\"preview-close\"\n aria-label=\"Close preview\"\n @click=${this._closePreview}\n >\n &#x2715;\n </button>\n <div\n class=\"preview-content\"\n @click=${(e: Event) => e.stopPropagation()}\n >\n ${unsafeSVG(this._svgContent)}\n </div>\n </div>\n `;\n }\n}\n"],"names":["LitElement","html","unsafeSVG","styles","property","state"],"mappings":"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"}
@@ -0,0 +1,188 @@
1
+ import { i, _ as __decorate, I as IndividualComponent, a as i$1, b } from './IndividualComponent-Bdwyrvd6.js';
2
+ import { Tabs } from './tabs.js';
3
+ import { TabPanel } from './tab-panel.js';
4
+ import './property-B49QQ8pS.js';
5
+ import './tab.js';
6
+ import './state-DkTK9EGF.js';
7
+ import './query-CHb9Ft_d.js';
8
+ import './base-Cl6v8-BZ.js';
9
+ import './class-map-DG7CA1et.js';
10
+ import './directive-ZPhl09Yt.js';
11
+ import './dispatch-event-utils-CuEqjlPT.js';
12
+ import './observe-slot-change-DPxaZrZF.js';
13
+ import './throttle-C7ZAPqtu.js';
14
+ import './is-link-Dk2OV3PM.js';
15
+ import './spread-B5cgadZl.js';
16
+
17
+ var css_248z = i`* {
18
+ box-sizing: border-box;
19
+ }
20
+
21
+ .screen-reader-only {
22
+ display: none !important;
23
+ }
24
+
25
+ [hidden] {
26
+ display: none !important;
27
+ }
28
+
29
+ :host {
30
+ display: flex;
31
+ flex-direction: column;
32
+ height: 100%;
33
+ }`;
34
+
35
+ /**
36
+ * @label Tab Group
37
+ * @tag wc-tab-group
38
+ * @rawTag tab-group
39
+ *
40
+ * @summary The tab group component is used to display multiple panels of content in a container.
41
+ * @overview
42
+ * <p>The tab group component allows users to switch between different views or content sections.</p>
43
+ *
44
+ * @example
45
+ * ```html
46
+ * <wc-tab-group>
47
+ *
48
+ * <wc-tabs>
49
+ * <wc-tab selected >Tab 1</wc-tab>
50
+ * <wc-tab>Tab 2</wc-tab>
51
+ * </wc-tabs>
52
+ *
53
+ * <wc-tab-panel>Panel 1</wc-tab-panel>
54
+ * <wc-tab-panel>Panel 2</wc-tab-panel>
55
+ * </wc-tab-group>
56
+ * ```
57
+ * @tags navigation
58
+ */
59
+ let TabGroup = class TabGroup extends i$1 {
60
+ constructor() {
61
+ super(...arguments);
62
+ this.onTabClick = (event) => {
63
+ const custom = event;
64
+ event.stopPropagation();
65
+ const targetValue = custom.detail?.target || custom.detail?.value;
66
+ if (targetValue) {
67
+ this.selectTab(targetValue);
68
+ }
69
+ else if (typeof custom.detail?.index === 'number') {
70
+ this.selectTabByIndex(custom.detail.index);
71
+ }
72
+ };
73
+ }
74
+ connectedCallback() {
75
+ super.connectedCallback();
76
+ this.addEventListener('tab-click', this.onTabClick);
77
+ }
78
+ disconnectedCallback() {
79
+ this.removeEventListener('tab-click', this.onTabClick);
80
+ super.disconnectedCallback();
81
+ }
82
+ firstUpdated() {
83
+ this.initializeTabs();
84
+ }
85
+ selectTab(target) {
86
+ const tabs = this.getTabs();
87
+ for (const tab of tabs) {
88
+ tab.active = false;
89
+ tab.selected = false;
90
+ tab.classList.remove('previous-tab', 'next-tab');
91
+ }
92
+ let selectedIndex = -1;
93
+ tabs.forEach((tab, index) => {
94
+ const t = tab.getAttribute('target') || tab.getAttribute('value');
95
+ if (t === target) {
96
+ selectedIndex = index;
97
+ }
98
+ });
99
+ if (selectedIndex >= 0) {
100
+ const selectedTab = tabs[selectedIndex];
101
+ selectedTab.active = true;
102
+ selectedTab.selected = true;
103
+ if (tabs[selectedIndex - 1]) {
104
+ tabs[selectedIndex - 1].classList.add('previous-tab');
105
+ }
106
+ if (tabs[selectedIndex + 1]) {
107
+ tabs[selectedIndex + 1].classList.add('next-tab');
108
+ }
109
+ }
110
+ const panels = this.getTabPanels();
111
+ for (const panel of panels) {
112
+ const panelValue = panel.getAttribute('value');
113
+ panel.active = panelValue === target;
114
+ }
115
+ }
116
+ selectTabByIndex(index) {
117
+ const tabs = this.getTabs();
118
+ for (const tab of tabs) {
119
+ tab.active = false;
120
+ tab.selected = false;
121
+ tab.classList.remove('previous-tab', 'next-tab');
122
+ }
123
+ if (index >= 0 && index < tabs.length) {
124
+ tabs[index].active = true;
125
+ tabs[index].selected = true;
126
+ if (tabs[index - 1])
127
+ tabs[index - 1].classList.add('previous-tab');
128
+ if (tabs[index + 1])
129
+ tabs[index + 1].classList.add('next-tab');
130
+ }
131
+ const panels = this.getTabPanels();
132
+ for (let i = 0; i < panels.length; i += 1) {
133
+ const panel = panels[i];
134
+ panel.active = i === index;
135
+ }
136
+ }
137
+ getTabs() {
138
+ return Array.from(this.querySelectorAll(':scope > wc-tabs wc-tab'));
139
+ }
140
+ getTabPanels() {
141
+ return Array.from(this.querySelectorAll(':scope > wc-tab-panel'));
142
+ }
143
+ getTabList() {
144
+ return this.querySelector(':scope > wc-tabs');
145
+ }
146
+ tabsHaveTarget() {
147
+ return !!this.querySelector(':scope > wc-tabs wc-tab[target]');
148
+ }
149
+ initializeTabs() {
150
+ const tabs = Array.from(this.getTabs());
151
+ if (!this.tabsHaveTarget()) {
152
+ // No target/value attributes — use index-based activation
153
+ const selectedIndex = tabs.findIndex(tab => tab.hasAttribute('active') ||
154
+ tab.active ||
155
+ tab.hasAttribute('selected') ||
156
+ tab.selected);
157
+ this.selectTabByIndex(selectedIndex >= 0 ? selectedIndex : 0);
158
+ }
159
+ else {
160
+ const selectedTab = tabs.find(tab => tab.hasAttribute('active') ||
161
+ tab.active ||
162
+ tab.hasAttribute('selected') ||
163
+ tab.selected);
164
+ if (selectedTab) {
165
+ const selectedTarget = selectedTab.getAttribute('target');
166
+ if (selectedTarget)
167
+ this.selectTab(selectedTarget);
168
+ }
169
+ else if (tabs.length > 0) {
170
+ const firstTarget = tabs[0].getAttribute('target');
171
+ if (firstTarget)
172
+ this.selectTab(firstTarget);
173
+ }
174
+ }
175
+ }
176
+ render() {
177
+ return b `<slot></slot>`;
178
+ }
179
+ };
180
+ TabGroup.styles = [css_248z];
181
+ TabGroup.Tabs = Tabs;
182
+ TabGroup.TabPanel = TabPanel;
183
+ TabGroup = __decorate([
184
+ IndividualComponent
185
+ ], TabGroup);
186
+
187
+ export { TabGroup };
188
+ //# sourceMappingURL=tab-group.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tab-group.js","sources":["../../src/tabs/tab-group.ts"],"sourcesContent":["import { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport styles from './tab-group.scss';\nimport { Tabs } from './tabs.js';\nimport { TabPanel } from './tab-panel.js';\nimport IndividualComponent from '@/IndividualComponent.js';\n\n/**\n * @label Tab Group\n * @tag wc-tab-group\n * @rawTag tab-group\n *\n * @summary The tab group component is used to display multiple panels of content in a container.\n * @overview\n * <p>The tab group component allows users to switch between different views or content sections.</p>\n *\n * @example\n * ```html\n * <wc-tab-group>\n * \n * <wc-tabs>\n * <wc-tab selected >Tab 1</wc-tab>\n * <wc-tab>Tab 2</wc-tab>\n * </wc-tabs>\n * \n * <wc-tab-panel>Panel 1</wc-tab-panel>\n * <wc-tab-panel>Panel 2</wc-tab-panel>\n * </wc-tab-group>\n * ```\n * @tags navigation\n */\n@IndividualComponent\nexport class TabGroup extends LitElement {\n static styles = [styles];\n\n static Tabs = Tabs;\n\n static TabPanel = TabPanel;\n\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener('tab-click', this.onTabClick);\n }\n\n disconnectedCallback() {\n this.removeEventListener('tab-click', this.onTabClick);\n super.disconnectedCallback();\n }\n\n firstUpdated() {\n this.initializeTabs();\n }\n\n private onTabClick = (event: Event) => {\n const custom = event as CustomEvent;\n event.stopPropagation();\n const targetValue = custom.detail?.target || custom.detail?.value;\n if (targetValue) {\n this.selectTab(targetValue);\n } else if (typeof custom.detail?.index === 'number') {\n this.selectTabByIndex(custom.detail.index);\n }\n };\n\n selectTab(target: string) {\n const tabs = this.getTabs();\n for (const tab of tabs) {\n (tab as any).active = false;\n (tab as any).selected = false;\n tab.classList.remove('previous-tab', 'next-tab');\n }\n\n let selectedIndex = -1;\n tabs.forEach((tab: HTMLElement, index: number) => {\n const t = tab.getAttribute('target') || tab.getAttribute('value');\n if (t === target) {\n selectedIndex = index;\n }\n });\n\n if (selectedIndex >= 0) {\n const selectedTab = tabs[selectedIndex];\n (selectedTab as any).active = true;\n (selectedTab as any).selected = true;\n if (tabs[selectedIndex - 1]) {\n tabs[selectedIndex - 1].classList.add('previous-tab');\n }\n if (tabs[selectedIndex + 1]) {\n tabs[selectedIndex + 1].classList.add('next-tab');\n }\n }\n\n const panels = this.getTabPanels();\n for (const panel of panels) {\n const panelValue = panel.getAttribute('value');\n (panel as any).active = panelValue === target;\n }\n }\n\n selectTabByIndex(index: number) {\n const tabs = this.getTabs();\n for (const tab of tabs) {\n (tab as any).active = false;\n (tab as any).selected = false;\n tab.classList.remove('previous-tab', 'next-tab');\n }\n\n if (index >= 0 && index < tabs.length) {\n (tabs[index] as any).active = true;\n (tabs[index] as any).selected = true;\n if (tabs[index - 1]) tabs[index - 1].classList.add('previous-tab');\n if (tabs[index + 1]) tabs[index + 1].classList.add('next-tab');\n }\n\n const panels = this.getTabPanels();\n for (let i = 0; i < panels.length; i += 1) {\n const panel = panels[i];\n (panel as any).active = i === index;\n }\n }\n\n private getTabs(): HTMLElement[] {\n return Array.from(this.querySelectorAll(':scope > wc-tabs wc-tab'));\n }\n\n private getTabPanels(): HTMLElement[] {\n return Array.from(this.querySelectorAll(':scope > wc-tab-panel'));\n }\n\n private getTabList(): HTMLElement | null {\n return this.querySelector(':scope > wc-tabs');\n }\n\n private tabsHaveTarget(): boolean {\n return !!this.querySelector(':scope > wc-tabs wc-tab[target]');\n }\n\n private initializeTabs() {\n const tabs = Array.from(this.getTabs());\n if (!this.tabsHaveTarget()) {\n // No target/value attributes — use index-based activation\n const selectedIndex = tabs.findIndex(\n tab =>\n tab.hasAttribute('active') ||\n (tab as any).active ||\n tab.hasAttribute('selected') ||\n (tab as any).selected,\n );\n this.selectTabByIndex(selectedIndex >= 0 ? selectedIndex : 0);\n } else {\n const selectedTab = tabs.find(\n tab =>\n tab.hasAttribute('active') ||\n (tab as any).active ||\n tab.hasAttribute('selected') ||\n (tab as any).selected,\n );\n if (selectedTab) {\n const selectedTarget = selectedTab.getAttribute('target');\n if (selectedTarget) this.selectTab(selectedTarget);\n } else if (tabs.length > 0) {\n const firstTarget = tabs[0].getAttribute('target');\n if (firstTarget) this.selectTab(firstTarget);\n }\n }\n }\n\n render() {\n return html`<slot></slot>`;\n }\n}\n"],"names":["LitElement","html","styles"],"mappings":"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"}
@@ -0,0 +1,61 @@
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
+
4
+ var css_248z = i`* {
5
+ box-sizing: border-box;
6
+ }
7
+
8
+ .screen-reader-only {
9
+ display: none !important;
10
+ }
11
+
12
+ [hidden] {
13
+ display: none !important;
14
+ }
15
+
16
+ :host {
17
+ display: none;
18
+ flex: 1;
19
+ }
20
+
21
+ :host([active]) {
22
+ display: block;
23
+ }`;
24
+
25
+ /**
26
+ * @label Tab Panel
27
+ * @tag wc-tab-panel
28
+ * @rawTag tab-panel
29
+ *
30
+ * @summary Content panel for tabs.
31
+ * @overview
32
+ * <p>TabPanel contains the content associated with a tab.</p>
33
+ *
34
+ * @example
35
+ * ```html
36
+ * <wc-tab-panel>Content for this tab</wc-tab-panel>
37
+ * ```
38
+ * @tags navigation
39
+ */
40
+ let TabPanel = class TabPanel extends i$1 {
41
+ constructor() {
42
+ super(...arguments);
43
+ this.active = false;
44
+ }
45
+ render() {
46
+ return b `<slot></slot>`;
47
+ }
48
+ };
49
+ TabPanel.styles = [css_248z];
50
+ __decorate([
51
+ n({ reflect: true })
52
+ ], TabPanel.prototype, "value", void 0);
53
+ __decorate([
54
+ n({ type: Boolean, reflect: true })
55
+ ], TabPanel.prototype, "active", void 0);
56
+ TabPanel = __decorate([
57
+ IndividualComponent
58
+ ], TabPanel);
59
+
60
+ export { TabPanel };
61
+ //# sourceMappingURL=tab-panel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tab-panel.js","sources":["../../src/tabs/tab-panel.ts"],"sourcesContent":["import { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport styles from './tab-panel.scss';\nimport IndividualComponent from '@/IndividualComponent.js';\n\n/**\n * @label Tab Panel\n * @tag wc-tab-panel\n * @rawTag tab-panel\n *\n * @summary Content panel for tabs.\n * @overview\n * <p>TabPanel contains the content associated with a tab.</p>\n *\n * @example\n * ```html\n * <wc-tab-panel>Content for this tab</wc-tab-panel>\n * ```\n * @tags navigation\n */\n@IndividualComponent\nexport class TabPanel extends LitElement {\n static styles = [styles];\n\n @property({ reflect: true }) value?: string;\n\n @property({ type: Boolean, reflect: true }) active = false;\n\n render() {\n return html`<slot></slot>`;\n }\n}\n"],"names":["LitElement","html","styles","property"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAKA;;;;;;;;;;;;;;AAcG;AAEI,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQA,GAAU,CAAA;AAAjC,IAAA,WAAA,GAAA;;QAKuC,IAAA,CAAA,MAAM,GAAG,KAAK;IAK5D;IAHE,MAAM,GAAA;QACJ,OAAOC,CAAI,CAAA,CAAA,aAAA,CAAe;IAC5B;;AARO,QAAA,CAAA,MAAM,GAAG,CAACC,QAAM,CAAC;AAEK,UAAA,CAAA;AAA5B,IAAAC,CAAQ,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;AAAiB,CAAA,EAAA,QAAA,CAAA,SAAA,EAAA,OAAA,EAAA,MAAA,CAAA;AAEA,UAAA,CAAA;IAA3CA,CAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE;AAAiB,CAAA,EAAA,QAAA,CAAA,SAAA,EAAA,QAAA,EAAA,MAAA,CAAA;AALhD,QAAQ,GAAA,UAAA,CAAA;IADpB;AACY,CAAA,EAAA,QAAQ,CAUpB;;;;"}