@tmorrow/cre8-wc 1.0.14

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 (791) hide show
  1. package/LICENSE +28 -0
  2. package/README.md +5 -0
  3. package/cdn/cre8-wc.esm.js +24106 -0
  4. package/cdn/cre8-wc.esm.js.map +1 -0
  5. package/cdn/cre8-wc.min.js +10029 -0
  6. package/cdn/cre8-wc.min.js.map +1 -0
  7. package/dist/Image.png +0 -0
  8. package/dist/cre8.png +0 -0
  9. package/dist/cre8.svg +6 -0
  10. package/dist/favicon.svg +7 -0
  11. package/dist/index.html +173 -0
  12. package/dist/index.json +1 -0
  13. package/dist/leaf.png +0 -0
  14. package/dist/leafDS.png +0 -0
  15. package/dist/leafLogo.svg +1 -0
  16. package/dist/project.json +1 -0
  17. package/dist/sb-addons/a11y-1/manager-bundle.js +3 -0
  18. package/dist/sb-addons/a11y-1/manager-bundle.js.LEGAL.txt +0 -0
  19. package/dist/sb-addons/essentials-actions-3/manager-bundle.js +3 -0
  20. package/dist/sb-addons/essentials-actions-3/manager-bundle.js.LEGAL.txt +0 -0
  21. package/dist/sb-addons/essentials-backgrounds-4/manager-bundle.js +12 -0
  22. package/dist/sb-addons/essentials-backgrounds-4/manager-bundle.js.LEGAL.txt +0 -0
  23. package/dist/sb-addons/essentials-controls-2/manager-bundle.js +62 -0
  24. package/dist/sb-addons/essentials-controls-2/manager-bundle.js.LEGAL.txt +18 -0
  25. package/dist/sb-addons/essentials-measure-7/manager-bundle.js +3 -0
  26. package/dist/sb-addons/essentials-measure-7/manager-bundle.js.LEGAL.txt +0 -0
  27. package/dist/sb-addons/essentials-outline-8/manager-bundle.js +3 -0
  28. package/dist/sb-addons/essentials-outline-8/manager-bundle.js.LEGAL.txt +0 -0
  29. package/dist/sb-addons/essentials-toolbars-6/manager-bundle.js +3 -0
  30. package/dist/sb-addons/essentials-toolbars-6/manager-bundle.js.LEGAL.txt +0 -0
  31. package/dist/sb-addons/essentials-viewport-5/manager-bundle.js +3 -0
  32. package/dist/sb-addons/essentials-viewport-5/manager-bundle.js.LEGAL.txt +0 -0
  33. package/dist/sb-addons/etchteam-css-variables-theme-0/manager-bundle.js +3 -0
  34. package/dist/sb-addons/etchteam-css-variables-theme-0/manager-bundle.js.LEGAL.txt +0 -0
  35. package/dist/sb-addons/storybook-10/manager-bundle.js +9 -0
  36. package/dist/sb-addons/storybook-10/manager-bundle.js.LEGAL.txt +0 -0
  37. package/dist/sb-addons/whitespace-html-esm-preset-9/manager-bundle.js +194 -0
  38. package/dist/sb-addons/whitespace-html-esm-preset-9/manager-bundle.js.LEGAL.txt +20 -0
  39. package/dist/sb-common-assets/fonts.css +31 -0
  40. package/dist/sb-common-assets/nunito-sans-bold-italic.woff2 +0 -0
  41. package/dist/sb-common-assets/nunito-sans-bold.woff2 +0 -0
  42. package/dist/sb-common-assets/nunito-sans-italic.woff2 +0 -0
  43. package/dist/sb-common-assets/nunito-sans-regular.woff2 +0 -0
  44. package/dist/sb-manager/WithTooltip-V3YHNWJZ-MXTFSDU5.js +1 -0
  45. package/dist/sb-manager/chunk-5QAFKPS7.js +7 -0
  46. package/dist/sb-manager/chunk-7PRFHFSS.js +9 -0
  47. package/dist/sb-manager/chunk-XE6LDGTE.js +406 -0
  48. package/dist/sb-manager/chunk-YDUB7CS6.js +348 -0
  49. package/dist/sb-manager/chunk-ZEU7PDD3.js +1 -0
  50. package/dist/sb-manager/formatter-SWP5E3XI-7BGIK6BL.js +156 -0
  51. package/dist/sb-manager/globals-module-info.js +1 -0
  52. package/dist/sb-manager/globals.js +1 -0
  53. package/dist/sb-manager/index.js +1 -0
  54. package/dist/sb-manager/runtime.js +1 -0
  55. package/dist/sb-manager/syntaxhighlighter-MJWPISIS-JOSCT6CQ.js +1 -0
  56. package/dist/sb-preview/globals.js +1 -0
  57. package/dist/sb-preview/runtime.js +112 -0
  58. package/dist/stories.json +1 -0
  59. package/lib/cdn-entry.d.ts +106 -0
  60. package/lib/cdn-entry.d.ts.map +1 -0
  61. package/lib/components/accordion/accordion.d.ts +39 -0
  62. package/lib/components/accordion/accordion.d.ts.map +1 -0
  63. package/lib/components/accordion/accordion.styles.d.ts +3 -0
  64. package/lib/components/accordion/accordion.styles.d.ts.map +1 -0
  65. package/lib/components/accordion-item/accordion-item.d.ts +141 -0
  66. package/lib/components/accordion-item/accordion-item.d.ts.map +1 -0
  67. package/lib/components/accordion-item/accordion-item.styles.d.ts +3 -0
  68. package/lib/components/accordion-item/accordion-item.styles.d.ts.map +1 -0
  69. package/lib/components/alert/alert.d.ts +60 -0
  70. package/lib/components/alert/alert.d.ts.map +1 -0
  71. package/lib/components/alert/alert.styles.d.ts +3 -0
  72. package/lib/components/alert/alert.styles.d.ts.map +1 -0
  73. package/lib/components/badge/badge.d.ts +62 -0
  74. package/lib/components/badge/badge.d.ts.map +1 -0
  75. package/lib/components/badge/badge.styles.d.ts +3 -0
  76. package/lib/components/badge/badge.styles.d.ts.map +1 -0
  77. package/lib/components/band/band.d.ts +29 -0
  78. package/lib/components/band/band.d.ts.map +1 -0
  79. package/lib/components/band/band.styles.d.ts +3 -0
  80. package/lib/components/band/band.styles.d.ts.map +1 -0
  81. package/lib/components/breadcrumbs/breadcrumbs.d.ts +32 -0
  82. package/lib/components/breadcrumbs/breadcrumbs.d.ts.map +1 -0
  83. package/lib/components/breadcrumbs/breadcrumbs.styles.d.ts +3 -0
  84. package/lib/components/breadcrumbs/breadcrumbs.styles.d.ts.map +1 -0
  85. package/lib/components/breadcrumbs-item/breadcrumbs-item.d.ts +17 -0
  86. package/lib/components/breadcrumbs-item/breadcrumbs-item.d.ts.map +1 -0
  87. package/lib/components/breadcrumbs-item/breadcrumbs-item.styles.d.ts +3 -0
  88. package/lib/components/breadcrumbs-item/breadcrumbs-item.styles.d.ts.map +1 -0
  89. package/lib/components/button/button.d.ts +229 -0
  90. package/lib/components/button/button.d.ts.map +1 -0
  91. package/lib/components/button/button.styles.d.ts +3 -0
  92. package/lib/components/button/button.styles.d.ts.map +1 -0
  93. package/lib/components/button-group/button-group.d.ts +19 -0
  94. package/lib/components/button-group/button-group.d.ts.map +1 -0
  95. package/lib/components/button-group/button-group.styles.d.ts +3 -0
  96. package/lib/components/button-group/button-group.styles.d.ts.map +1 -0
  97. package/lib/components/card/card.d.ts +45 -0
  98. package/lib/components/card/card.d.ts.map +1 -0
  99. package/lib/components/card/card.styles.d.ts +3 -0
  100. package/lib/components/card/card.styles.d.ts.map +1 -0
  101. package/lib/components/chart/chart.d.ts +18 -0
  102. package/lib/components/chart/chart.d.ts.map +1 -0
  103. package/lib/components/chart/chart.styles.d.ts +3 -0
  104. package/lib/components/chart/chart.styles.d.ts.map +1 -0
  105. package/lib/components/checkbox-field/checkbox-field.d.ts +54 -0
  106. package/lib/components/checkbox-field/checkbox-field.d.ts.map +1 -0
  107. package/lib/components/checkbox-field/checkbox-field.styles.d.ts +3 -0
  108. package/lib/components/checkbox-field/checkbox-field.styles.d.ts.map +1 -0
  109. package/lib/components/checkbox-field-item/checkbox-field-item.d.ts +177 -0
  110. package/lib/components/checkbox-field-item/checkbox-field-item.d.ts.map +1 -0
  111. package/lib/components/checkbox-field-item/checkbox-field-item.styles.d.ts +3 -0
  112. package/lib/components/checkbox-field-item/checkbox-field-item.styles.d.ts.map +1 -0
  113. package/lib/components/components/cre8-element/components/cre8-element.js +58 -0
  114. package/lib/components/components/cre8-form-element/components/cre8-form-element.js +47 -0
  115. package/lib/components/cre8-element.d.ts +54 -0
  116. package/lib/components/cre8-element.d.ts.map +1 -0
  117. package/lib/components/cre8-field/cre8-field.js +10 -0
  118. package/lib/components/cre8-form-element.d.ts +62 -0
  119. package/lib/components/cre8-form-element.d.ts.map +1 -0
  120. package/lib/components/danger-button/danger-button.d.ts +208 -0
  121. package/lib/components/danger-button/danger-button.d.ts.map +1 -0
  122. package/lib/components/danger-button/danger-button.styles.d.ts +3 -0
  123. package/lib/components/danger-button/danger-button.styles.d.ts.map +1 -0
  124. package/lib/components/date-picker/calendar/calendar.d.ts +115 -0
  125. package/lib/components/date-picker/calendar/calendar.d.ts.map +1 -0
  126. package/lib/components/date-picker/calendar/calendar.styles.d.ts +3 -0
  127. package/lib/components/date-picker/calendar/calendar.styles.d.ts.map +1 -0
  128. package/lib/components/date-picker/calendar-month-modal/calendar-month-modal.d.ts +22 -0
  129. package/lib/components/date-picker/calendar-month-modal/calendar-month-modal.d.ts.map +1 -0
  130. package/lib/components/date-picker/calendar-month-modal/calendar-month-modal.styles.d.ts +3 -0
  131. package/lib/components/date-picker/calendar-month-modal/calendar-month-modal.styles.d.ts.map +1 -0
  132. package/lib/components/date-picker/calendar-navigation/calendar-navigation.d.ts +19 -0
  133. package/lib/components/date-picker/calendar-navigation/calendar-navigation.d.ts.map +1 -0
  134. package/lib/components/date-picker/calendar-navigation/calendar-navigation.styles.d.ts +3 -0
  135. package/lib/components/date-picker/calendar-navigation/calendar-navigation.styles.d.ts.map +1 -0
  136. package/lib/components/date-picker/calendar-year-modal/calendar-year-modal.d.ts +28 -0
  137. package/lib/components/date-picker/calendar-year-modal/calendar-year-modal.d.ts.map +1 -0
  138. package/lib/components/date-picker/calendar-year-modal/calendar-year-modal.styles.d.ts +3 -0
  139. package/lib/components/date-picker/calendar-year-modal/calendar-year-modal.styles.d.ts.map +1 -0
  140. package/lib/components/date-picker/date-picker.d.ts +40 -0
  141. package/lib/components/date-picker/date-picker.d.ts.map +1 -0
  142. package/lib/components/date-picker/date-picker.js +9 -0
  143. package/lib/components/date-picker/date-picker.styles.d.ts +3 -0
  144. package/lib/components/date-picker/date-picker.styles.d.ts.map +1 -0
  145. package/lib/components/divider/divider.d.ts +29 -0
  146. package/lib/components/divider/divider.d.ts.map +1 -0
  147. package/lib/components/divider/divider.styles.d.ts +3 -0
  148. package/lib/components/divider/divider.styles.d.ts.map +1 -0
  149. package/lib/components/dropdown/dropdown.d.ts +35 -0
  150. package/lib/components/dropdown/dropdown.d.ts.map +1 -0
  151. package/lib/components/dropdown/dropdown.styles.d.ts +3 -0
  152. package/lib/components/dropdown/dropdown.styles.d.ts.map +1 -0
  153. package/lib/components/dropdown-item/dropdown-item.d.ts +19 -0
  154. package/lib/components/dropdown-item/dropdown-item.d.ts.map +1 -0
  155. package/lib/components/dropdown-item/dropdown-item.styles.d.ts +3 -0
  156. package/lib/components/dropdown-item/dropdown-item.styles.d.ts.map +1 -0
  157. package/lib/components/feature/feature.d.ts +28 -0
  158. package/lib/components/feature/feature.d.ts.map +1 -0
  159. package/lib/components/feature/feature.styles.d.ts +3 -0
  160. package/lib/components/feature/feature.styles.d.ts.map +1 -0
  161. package/lib/components/field/field.d.ts +210 -0
  162. package/lib/components/field/field.d.ts.map +1 -0
  163. package/lib/components/field/field.styles.d.ts +3 -0
  164. package/lib/components/field/field.styles.d.ts.map +1 -0
  165. package/lib/components/field-note/field-note.d.ts +37 -0
  166. package/lib/components/field-note/field-note.d.ts.map +1 -0
  167. package/lib/components/field-note/field-note.styles.d.ts +3 -0
  168. package/lib/components/field-note/field-note.styles.d.ts.map +1 -0
  169. package/lib/components/footer/footer.d.ts +17 -0
  170. package/lib/components/footer/footer.d.ts.map +1 -0
  171. package/lib/components/footer/footer.styles.d.ts +3 -0
  172. package/lib/components/footer/footer.styles.d.ts.map +1 -0
  173. package/lib/components/global-nav/global-nav.d.ts +33 -0
  174. package/lib/components/global-nav/global-nav.d.ts.map +1 -0
  175. package/lib/components/global-nav/global-nav.styles.d.ts +3 -0
  176. package/lib/components/global-nav/global-nav.styles.d.ts.map +1 -0
  177. package/lib/components/global-nav-item/global-nav-item.d.ts +71 -0
  178. package/lib/components/global-nav-item/global-nav-item.d.ts.map +1 -0
  179. package/lib/components/global-nav-item/global-nav-item.styles.d.ts +3 -0
  180. package/lib/components/global-nav-item/global-nav-item.styles.d.ts.map +1 -0
  181. package/lib/components/grid/grid.d.ts +49 -0
  182. package/lib/components/grid/grid.d.ts.map +1 -0
  183. package/lib/components/grid/grid.styles.d.ts +3 -0
  184. package/lib/components/grid/grid.styles.d.ts.map +1 -0
  185. package/lib/components/grid-item/grid-item.d.ts +15 -0
  186. package/lib/components/grid-item/grid-item.d.ts.map +1 -0
  187. package/lib/components/grid-item/grid-item.styles.d.ts +3 -0
  188. package/lib/components/grid-item/grid-item.styles.d.ts.map +1 -0
  189. package/lib/components/header/header.d.ts +20 -0
  190. package/lib/components/header/header.d.ts.map +1 -0
  191. package/lib/components/header/header.styles.d.ts +3 -0
  192. package/lib/components/header/header.styles.d.ts.map +1 -0
  193. package/lib/components/heading/heading.d.ts +81 -0
  194. package/lib/components/heading/heading.d.ts.map +1 -0
  195. package/lib/components/heading/heading.styles.d.ts +3 -0
  196. package/lib/components/heading/heading.styles.d.ts.map +1 -0
  197. package/lib/components/hero/hero.d.ts +39 -0
  198. package/lib/components/hero/hero.d.ts.map +1 -0
  199. package/lib/components/hero/hero.styles.d.ts +3 -0
  200. package/lib/components/hero/hero.styles.d.ts.map +1 -0
  201. package/lib/components/icon/icon.d.ts +78 -0
  202. package/lib/components/icon/icon.d.ts.map +1 -0
  203. package/lib/components/icon/icon.js +9 -0
  204. package/lib/components/icon/icon.styles.d.ts +3 -0
  205. package/lib/components/icon/icon.styles.d.ts.map +1 -0
  206. package/lib/components/inline-alert/inline-alert.d.ts +52 -0
  207. package/lib/components/inline-alert/inline-alert.d.ts.map +1 -0
  208. package/lib/components/inline-alert/inline-alert.styles.d.ts +3 -0
  209. package/lib/components/inline-alert/inline-alert.styles.d.ts.map +1 -0
  210. package/lib/components/layout/layout.d.ts +25 -0
  211. package/lib/components/layout/layout.d.ts.map +1 -0
  212. package/lib/components/layout/layout.styles.d.ts +3 -0
  213. package/lib/components/layout/layout.styles.d.ts.map +1 -0
  214. package/lib/components/layout-container/layout-container.d.ts +20 -0
  215. package/lib/components/layout-container/layout-container.d.ts.map +1 -0
  216. package/lib/components/layout-container/layout-container.styles.d.ts +3 -0
  217. package/lib/components/layout-container/layout-container.styles.d.ts.map +1 -0
  218. package/lib/components/layout-section/layout-section.d.ts +26 -0
  219. package/lib/components/layout-section/layout-section.d.ts.map +1 -0
  220. package/lib/components/layout-section/layout-section.styles.d.ts +3 -0
  221. package/lib/components/layout-section/layout-section.styles.d.ts.map +1 -0
  222. package/lib/components/linelength-container/linelength-container.d.ts +15 -0
  223. package/lib/components/linelength-container/linelength-container.d.ts.map +1 -0
  224. package/lib/components/linelength-container/linelength-container.styles.d.ts +3 -0
  225. package/lib/components/linelength-container/linelength-container.styles.d.ts.map +1 -0
  226. package/lib/components/link/link.d.ts +93 -0
  227. package/lib/components/link/link.d.ts.map +1 -0
  228. package/lib/components/link/link.styles.d.ts +3 -0
  229. package/lib/components/link/link.styles.d.ts.map +1 -0
  230. package/lib/components/link-list/link-list.d.ts +42 -0
  231. package/lib/components/link-list/link-list.d.ts.map +1 -0
  232. package/lib/components/link-list/link-list.styles.d.ts +3 -0
  233. package/lib/components/link-list/link-list.styles.d.ts.map +1 -0
  234. package/lib/components/link-list-item/link-list-item.d.ts +27 -0
  235. package/lib/components/link-list-item/link-list-item.d.ts.map +1 -0
  236. package/lib/components/link-list-item/link-list-item.styles.d.ts +3 -0
  237. package/lib/components/link-list-item/link-list-item.styles.d.ts.map +1 -0
  238. package/lib/components/list/list.d.ts +34 -0
  239. package/lib/components/list/list.d.ts.map +1 -0
  240. package/lib/components/list/list.styles.d.ts +3 -0
  241. package/lib/components/list/list.styles.d.ts.map +1 -0
  242. package/lib/components/list-item/list-item.d.ts +16 -0
  243. package/lib/components/list-item/list-item.d.ts.map +1 -0
  244. package/lib/components/list-item/list-item.styles.d.ts +3 -0
  245. package/lib/components/list-item/list-item.styles.d.ts.map +1 -0
  246. package/lib/components/loading-spinner/loading-spinner.d.ts +90 -0
  247. package/lib/components/loading-spinner/loading-spinner.d.ts.map +1 -0
  248. package/lib/components/loading-spinner/loading-spinner.styles.d.ts +3 -0
  249. package/lib/components/loading-spinner/loading-spinner.styles.d.ts.map +1 -0
  250. package/lib/components/logo/logo.d.ts +19 -0
  251. package/lib/components/logo/logo.d.ts.map +1 -0
  252. package/lib/components/logo/logo.styles.d.ts +3 -0
  253. package/lib/components/logo/logo.styles.d.ts.map +1 -0
  254. package/lib/components/main/main.d.ts +20 -0
  255. package/lib/components/main/main.d.ts.map +1 -0
  256. package/lib/components/main/main.styles.d.ts +3 -0
  257. package/lib/components/main/main.styles.d.ts.map +1 -0
  258. package/lib/components/modal/modal.d.ts +99 -0
  259. package/lib/components/modal/modal.d.ts.map +1 -0
  260. package/lib/components/modal/modal.styles.d.ts +3 -0
  261. package/lib/components/modal/modal.styles.d.ts.map +1 -0
  262. package/lib/components/multi-select/multi-select.d.ts +131 -0
  263. package/lib/components/multi-select/multi-select.d.ts.map +1 -0
  264. package/lib/components/multi-select/multi-select.styles.d.ts +3 -0
  265. package/lib/components/multi-select/multi-select.styles.d.ts.map +1 -0
  266. package/lib/components/nav-container/nav-container.d.ts +15 -0
  267. package/lib/components/nav-container/nav-container.d.ts.map +1 -0
  268. package/lib/components/nav-container/nav-container.styles.d.ts +3 -0
  269. package/lib/components/nav-container/nav-container.styles.d.ts.map +1 -0
  270. package/lib/components/page-header/page-header.d.ts +19 -0
  271. package/lib/components/page-header/page-header.d.ts.map +1 -0
  272. package/lib/components/page-header/page-header.styles.d.ts +3 -0
  273. package/lib/components/page-header/page-header.styles.d.ts.map +1 -0
  274. package/lib/components/pagination/page-counter/page-counter.d.ts +20 -0
  275. package/lib/components/pagination/page-counter/page-counter.d.ts.map +1 -0
  276. package/lib/components/pagination/page-counter/page-counter.styles.d.ts +3 -0
  277. package/lib/components/pagination/page-counter/page-counter.styles.d.ts.map +1 -0
  278. package/lib/components/pagination/pagination.d.ts +126 -0
  279. package/lib/components/pagination/pagination.d.ts.map +1 -0
  280. package/lib/components/pagination/pagination.styles.d.ts +3 -0
  281. package/lib/components/pagination/pagination.styles.d.ts.map +1 -0
  282. package/lib/components/percent-bar/percent-bar.d.ts +26 -0
  283. package/lib/components/percent-bar/percent-bar.d.ts.map +1 -0
  284. package/lib/components/percent-bar/percent-bar.styles.d.ts +3 -0
  285. package/lib/components/percent-bar/percent-bar.styles.d.ts.map +1 -0
  286. package/lib/components/popover/popover.d.ts +155 -0
  287. package/lib/components/popover/popover.d.ts.map +1 -0
  288. package/lib/components/popover/popover.styles.d.ts +3 -0
  289. package/lib/components/popover/popover.styles.d.ts.map +1 -0
  290. package/lib/components/primary-nav/primary-nav.d.ts +33 -0
  291. package/lib/components/primary-nav/primary-nav.d.ts.map +1 -0
  292. package/lib/components/primary-nav/primary-nav.styles.d.ts +3 -0
  293. package/lib/components/primary-nav/primary-nav.styles.d.ts.map +1 -0
  294. package/lib/components/primary-nav-item/primary-nav-item.d.ts +71 -0
  295. package/lib/components/primary-nav-item/primary-nav-item.d.ts.map +1 -0
  296. package/lib/components/primary-nav-item/primary-nav-item.styles.d.ts +3 -0
  297. package/lib/components/primary-nav-item/primary-nav-item.styles.d.ts.map +1 -0
  298. package/lib/components/progress-meter/progress-meter.d.ts +51 -0
  299. package/lib/components/progress-meter/progress-meter.d.ts.map +1 -0
  300. package/lib/components/progress-meter/progress-meter.styles.d.ts +3 -0
  301. package/lib/components/progress-meter/progress-meter.styles.d.ts.map +1 -0
  302. package/lib/components/progress-steps/progress-steps.d.ts +3 -0
  303. package/lib/components/progress-steps/progress-steps.d.ts.map +1 -0
  304. package/lib/components/progress-steps/progress-steps.styles.d.ts +3 -0
  305. package/lib/components/progress-steps/progress-steps.styles.d.ts.map +1 -0
  306. package/lib/components/progress-steps-item/progress-steps-item.d.ts +44 -0
  307. package/lib/components/progress-steps-item/progress-steps-item.d.ts.map +1 -0
  308. package/lib/components/progress-steps-item/progress-steps-item.styles.d.ts +3 -0
  309. package/lib/components/progress-steps-item/progress-steps-item.styles.d.ts.map +1 -0
  310. package/lib/components/radio-field/radio-field.d.ts +56 -0
  311. package/lib/components/radio-field/radio-field.d.ts.map +1 -0
  312. package/lib/components/radio-field/radio-field.styles.d.ts +3 -0
  313. package/lib/components/radio-field/radio-field.styles.d.ts.map +1 -0
  314. package/lib/components/radio-field-item/radio-field-item.d.ts +162 -0
  315. package/lib/components/radio-field-item/radio-field-item.d.ts.map +1 -0
  316. package/lib/components/radio-field-item/radio-field-item.styles.d.ts +3 -0
  317. package/lib/components/radio-field-item/radio-field-item.styles.d.ts.map +1 -0
  318. package/lib/components/remove-tag/remove-tag.d.ts +53 -0
  319. package/lib/components/remove-tag/remove-tag.d.ts.map +1 -0
  320. package/lib/components/remove-tag/remove-tag.styles.d.ts +3 -0
  321. package/lib/components/remove-tag/remove-tag.styles.d.ts.map +1 -0
  322. package/lib/components/section/section.d.ts +33 -0
  323. package/lib/components/section/section.d.ts.map +1 -0
  324. package/lib/components/section/section.styles.d.ts +3 -0
  325. package/lib/components/section/section.styles.d.ts.map +1 -0
  326. package/lib/components/select/select.d.ts +173 -0
  327. package/lib/components/select/select.d.ts.map +1 -0
  328. package/lib/components/select/select.styles.d.ts +3 -0
  329. package/lib/components/select/select.styles.d.ts.map +1 -0
  330. package/lib/components/select-tile/select-tile-checkbox-controller.d.ts +40 -0
  331. package/lib/components/select-tile/select-tile-checkbox-controller.d.ts.map +1 -0
  332. package/lib/components/select-tile/select-tile-radio-controller.d.ts +87 -0
  333. package/lib/components/select-tile/select-tile-radio-controller.d.ts.map +1 -0
  334. package/lib/components/select-tile/select-tile.d.ts +163 -0
  335. package/lib/components/select-tile/select-tile.d.ts.map +1 -0
  336. package/lib/components/select-tile/select-tile.styles.d.ts +3 -0
  337. package/lib/components/select-tile/select-tile.styles.d.ts.map +1 -0
  338. package/lib/components/select-tile-list/select-tile-list.d.ts +52 -0
  339. package/lib/components/select-tile-list/select-tile-list.d.ts.map +1 -0
  340. package/lib/components/select-tile-list/select-tile-list.styles.d.ts +3 -0
  341. package/lib/components/select-tile-list/select-tile-list.styles.d.ts.map +1 -0
  342. package/lib/components/skeleton-loader/skeleton-loader.d.ts +53 -0
  343. package/lib/components/skeleton-loader/skeleton-loader.d.ts.map +1 -0
  344. package/lib/components/skeleton-loader/skeleton-loader.styles.d.ts +3 -0
  345. package/lib/components/skeleton-loader/skeleton-loader.styles.d.ts.map +1 -0
  346. package/lib/components/split-button/split-button.d.ts +34 -0
  347. package/lib/components/split-button/split-button.d.ts.map +1 -0
  348. package/lib/components/split-button/split-button.styles.d.ts +3 -0
  349. package/lib/components/split-button/split-button.styles.d.ts.map +1 -0
  350. package/lib/components/submenu/submenu.d.ts +15 -0
  351. package/lib/components/submenu/submenu.d.ts.map +1 -0
  352. package/lib/components/submenu/submenu.styles.d.ts +3 -0
  353. package/lib/components/submenu/submenu.styles.d.ts.map +1 -0
  354. package/lib/components/submenu-item/submenu-item.d.ts +19 -0
  355. package/lib/components/submenu-item/submenu-item.d.ts.map +1 -0
  356. package/lib/components/submenu-item/submenu-item.styles.d.ts +3 -0
  357. package/lib/components/submenu-item/submenu-item.styles.d.ts.map +1 -0
  358. package/lib/components/tab/tab.d.ts +58 -0
  359. package/lib/components/tab/tab.d.ts.map +1 -0
  360. package/lib/components/tab/tab.styles.d.ts +3 -0
  361. package/lib/components/tab/tab.styles.d.ts.map +1 -0
  362. package/lib/components/tab-panel/tab-panel.d.ts +38 -0
  363. package/lib/components/tab-panel/tab-panel.d.ts.map +1 -0
  364. package/lib/components/tab-panel/tab-panel.styles.d.ts +3 -0
  365. package/lib/components/tab-panel/tab-panel.styles.d.ts.map +1 -0
  366. package/lib/components/table/table.d.ts +43 -0
  367. package/lib/components/table/table.d.ts.map +1 -0
  368. package/lib/components/table/table.styles.d.ts +3 -0
  369. package/lib/components/table/table.styles.d.ts.map +1 -0
  370. package/lib/components/table-body/table-body.d.ts +15 -0
  371. package/lib/components/table-body/table-body.d.ts.map +1 -0
  372. package/lib/components/table-body/table-body.styles.d.ts +3 -0
  373. package/lib/components/table-body/table-body.styles.d.ts.map +1 -0
  374. package/lib/components/table-cell/table-cell.d.ts +32 -0
  375. package/lib/components/table-cell/table-cell.d.ts.map +1 -0
  376. package/lib/components/table-cell/table-cell.styles.d.ts +3 -0
  377. package/lib/components/table-cell/table-cell.styles.d.ts.map +1 -0
  378. package/lib/components/table-header/table-header.d.ts +15 -0
  379. package/lib/components/table-header/table-header.d.ts.map +1 -0
  380. package/lib/components/table-header/table-header.styles.d.ts +3 -0
  381. package/lib/components/table-header/table-header.styles.d.ts.map +1 -0
  382. package/lib/components/table-header-cell/table-header-cell.d.ts +24 -0
  383. package/lib/components/table-header-cell/table-header-cell.d.ts.map +1 -0
  384. package/lib/components/table-header-cell/table-header-cell.styles.d.ts +3 -0
  385. package/lib/components/table-header-cell/table-header-cell.styles.d.ts.map +1 -0
  386. package/lib/components/table-object/table-object.d.ts +15 -0
  387. package/lib/components/table-object/table-object.d.ts.map +1 -0
  388. package/lib/components/table-object/table-object.styles.d.ts +3 -0
  389. package/lib/components/table-object/table-object.styles.d.ts.map +1 -0
  390. package/lib/components/table-row/table-row.d.ts +43 -0
  391. package/lib/components/table-row/table-row.d.ts.map +1 -0
  392. package/lib/components/table-row/table-row.styles.d.ts +3 -0
  393. package/lib/components/table-row/table-row.styles.d.ts.map +1 -0
  394. package/lib/components/tabs/tabs.d.ts +238 -0
  395. package/lib/components/tabs/tabs.d.ts.map +1 -0
  396. package/lib/components/tabs/tabs.styles.d.ts +3 -0
  397. package/lib/components/tabs/tabs.styles.d.ts.map +1 -0
  398. package/lib/components/tag/tag.d.ts +92 -0
  399. package/lib/components/tag/tag.d.ts.map +1 -0
  400. package/lib/components/tag/tag.styles.d.ts +3 -0
  401. package/lib/components/tag/tag.styles.d.ts.map +1 -0
  402. package/lib/components/tag-list/tag-list.d.ts +28 -0
  403. package/lib/components/tag-list/tag-list.d.ts.map +1 -0
  404. package/lib/components/tag-list/tag-list.styles.d.ts +3 -0
  405. package/lib/components/tag-list/tag-list.styles.d.ts.map +1 -0
  406. package/lib/components/tertiary-nav/tertiary-nav.d.ts +23 -0
  407. package/lib/components/tertiary-nav/tertiary-nav.d.ts.map +1 -0
  408. package/lib/components/tertiary-nav/tertiary-nav.styles.d.ts +3 -0
  409. package/lib/components/tertiary-nav/tertiary-nav.styles.d.ts.map +1 -0
  410. package/lib/components/tertiary-nav-item/tertiary-nav-item.d.ts +29 -0
  411. package/lib/components/tertiary-nav-item/tertiary-nav-item.d.ts.map +1 -0
  412. package/lib/components/tertiary-nav-item/tertiary-nav-item.styles.d.ts +3 -0
  413. package/lib/components/tertiary-nav-item/tertiary-nav-item.styles.d.ts.map +1 -0
  414. package/lib/components/text-link/text-link.d.ts +43 -0
  415. package/lib/components/text-link/text-link.d.ts.map +1 -0
  416. package/lib/components/text-link/text-link.styles.d.ts +3 -0
  417. package/lib/components/text-link/text-link.styles.d.ts.map +1 -0
  418. package/lib/components/text-passage/text-passage-light-dom.d.ts +3 -0
  419. package/lib/components/text-passage/text-passage-light-dom.d.ts.map +1 -0
  420. package/lib/components/text-passage/text-passage-light-dom.styles.d.ts +3 -0
  421. package/lib/components/text-passage/text-passage-light-dom.styles.d.ts.map +1 -0
  422. package/lib/components/text-passage/text-passage.d.ts +44 -0
  423. package/lib/components/text-passage/text-passage.d.ts.map +1 -0
  424. package/lib/components/text-passage/text-passage.styles.d.ts +3 -0
  425. package/lib/components/text-passage/text-passage.styles.d.ts.map +1 -0
  426. package/lib/components/tooltip/tooltip.d.ts +171 -0
  427. package/lib/components/tooltip/tooltip.d.ts.map +1 -0
  428. package/lib/components/tooltip/tooltip.styles.d.ts +3 -0
  429. package/lib/components/tooltip/tooltip.styles.d.ts.map +1 -0
  430. package/lib/components/utility-nav/utility-nav.d.ts +24 -0
  431. package/lib/components/utility-nav/utility-nav.d.ts.map +1 -0
  432. package/lib/components/utility-nav/utility-nav.styles.d.ts +3 -0
  433. package/lib/components/utility-nav/utility-nav.styles.d.ts.map +1 -0
  434. package/lib/components/utility-nav-item/utility-nav-item.d.ts +39 -0
  435. package/lib/components/utility-nav-item/utility-nav-item.d.ts.map +1 -0
  436. package/lib/components/utility-nav-item/utility-nav-item.styles.d.ts +3 -0
  437. package/lib/components/utility-nav-item/utility-nav-item.styles.d.ts.map +1 -0
  438. package/lib/date-picker-C8EEd7H8.js +2366 -0
  439. package/lib/design-tokens/brands/blue/css/tokens_blue.module.d.ts +3 -0
  440. package/lib/design-tokens/brands/blue/css/tokens_blue.module.d.ts.map +1 -0
  441. package/lib/design-tokens/brands/bolt/tokens_bolt.theme.d.ts +3 -0
  442. package/lib/design-tokens/brands/bolt/tokens_bolt.theme.d.ts.map +1 -0
  443. package/lib/design-tokens/brands/cre8/css/tokens_cre8.module.d.ts +3 -0
  444. package/lib/design-tokens/brands/cre8/css/tokens_cre8.module.d.ts.map +1 -0
  445. package/lib/design-tokens/brands/cre8-legacy/css/tokens_cre8-legacy.module.d.ts +3 -0
  446. package/lib/design-tokens/brands/cre8-legacy/css/tokens_cre8-legacy.module.d.ts.map +1 -0
  447. package/lib/design-tokens/brands/femmecubator/css/tokens_femmecubator2.module.d.ts +3 -0
  448. package/lib/design-tokens/brands/femmecubator/css/tokens_femmecubator2.module.d.ts.map +1 -0
  449. package/lib/design-tokens/brands/legacy/css/tokens_legacy.module.d.ts +3 -0
  450. package/lib/design-tokens/brands/legacy/css/tokens_legacy.module.d.ts.map +1 -0
  451. package/lib/design-tokens/brands/marketing/css/tokens_marketing.module.d.ts +3 -0
  452. package/lib/design-tokens/brands/marketing/css/tokens_marketing.module.d.ts.map +1 -0
  453. package/lib/design-tokens/brands/minimalist/css/tokens_minimalist.module.d.ts +3 -0
  454. package/lib/design-tokens/brands/minimalist/css/tokens_minimalist.module.d.ts.map +1 -0
  455. package/lib/design-tokens/brands/prisma/tokens_prisma.module.d.ts +3 -0
  456. package/lib/design-tokens/brands/prisma/tokens_prisma.module.d.ts.map +1 -0
  457. package/lib/design-tokens/brands/starbucks/tokens.module.d.ts +3 -0
  458. package/lib/design-tokens/brands/starbucks/tokens.module.d.ts.map +1 -0
  459. package/lib/design-tokens/brands/starbucks/tokens_starbucks.module.d.ts +3 -0
  460. package/lib/design-tokens/brands/starbucks/tokens_starbucks.module.d.ts.map +1 -0
  461. package/lib/design-tokens/brands copy/blue/_base.scss +142 -0
  462. package/lib/design-tokens/brands copy/blue/badge.scss +5 -0
  463. package/lib/design-tokens/brands copy/blue/bg.scss +35 -0
  464. package/lib/design-tokens/brands copy/blue/border-style.scss +5 -0
  465. package/lib/design-tokens/brands copy/blue/border.scss +21 -0
  466. package/lib/design-tokens/brands copy/blue/borderRadius.scss +15 -0
  467. package/lib/design-tokens/brands copy/blue/borderWidth.scss +11 -0
  468. package/lib/design-tokens/brands copy/blue/breakpoint.scss +9 -0
  469. package/lib/design-tokens/brands copy/blue/button.scss +225 -0
  470. package/lib/design-tokens/brands copy/blue/content.scss +29 -0
  471. package/lib/design-tokens/brands copy/blue/css/tokens_blue.module.d.ts +3 -0
  472. package/lib/design-tokens/brands copy/blue/css/tokens_blue.module.d.ts.map +1 -0
  473. package/lib/design-tokens/brands copy/blue/desktop-menu.scss +5 -0
  474. package/lib/design-tokens/brands copy/blue/fontFamilies.scss +5 -0
  475. package/lib/design-tokens/brands copy/blue/fontSize.scss +17 -0
  476. package/lib/design-tokens/brands copy/blue/fontWeights.scss +7 -0
  477. package/lib/design-tokens/brands copy/blue/footer.scss +9 -0
  478. package/lib/design-tokens/brands copy/blue/header.scss +81 -0
  479. package/lib/design-tokens/brands copy/blue/icon-size.scss +6 -0
  480. package/lib/design-tokens/brands copy/blue/letterSpacing.scss +9 -0
  481. package/lib/design-tokens/brands copy/blue/lineHeights.scss +15 -0
  482. package/lib/design-tokens/brands copy/blue/link.scss +4 -0
  483. package/lib/design-tokens/brands copy/blue/paragraphIndent.scss +4 -0
  484. package/lib/design-tokens/brands copy/blue/paragraphSpacing.scss +4 -0
  485. package/lib/design-tokens/brands copy/blue/progress-meter.scss +4 -0
  486. package/lib/design-tokens/brands copy/blue/shadow.scss +8 -0
  487. package/lib/design-tokens/brands copy/blue/spacing.scss +21 -0
  488. package/lib/design-tokens/brands copy/blue/textCase.scss +5 -0
  489. package/lib/design-tokens/brands copy/blue/textDecoration.scss +5 -0
  490. package/lib/design-tokens/brands copy/blue/tokens-all-blue.scss +628 -0
  491. package/lib/design-tokens/brands copy/blue/tokens-brand.scss +31 -0
  492. package/lib/design-tokens/brands copy/blue-v1/_base.scss +76 -0
  493. package/lib/design-tokens/brands copy/blue-v1/badge.scss +5 -0
  494. package/lib/design-tokens/brands copy/blue-v1/bg.scss +34 -0
  495. package/lib/design-tokens/brands copy/blue-v1/border-style.scss +5 -0
  496. package/lib/design-tokens/brands copy/blue-v1/border.scss +21 -0
  497. package/lib/design-tokens/brands copy/blue-v1/borderRadius.scss +15 -0
  498. package/lib/design-tokens/brands copy/blue-v1/borderWidth.scss +11 -0
  499. package/lib/design-tokens/brands copy/blue-v1/breakpoint.scss +9 -0
  500. package/lib/design-tokens/brands copy/blue-v1/button.scss +199 -0
  501. package/lib/design-tokens/brands copy/blue-v1/content.scss +29 -0
  502. package/lib/design-tokens/brands copy/blue-v1/desktop-menu.scss +5 -0
  503. package/lib/design-tokens/brands copy/blue-v1/fontFamilies.scss +5 -0
  504. package/lib/design-tokens/brands copy/blue-v1/fontSize.scss +17 -0
  505. package/lib/design-tokens/brands copy/blue-v1/fontWeights.scss +9 -0
  506. package/lib/design-tokens/brands copy/blue-v1/footer.scss +9 -0
  507. package/lib/design-tokens/brands copy/blue-v1/header.scss +79 -0
  508. package/lib/design-tokens/brands copy/blue-v1/icon-size.scss +6 -0
  509. package/lib/design-tokens/brands copy/blue-v1/letterSpacing.scss +9 -0
  510. package/lib/design-tokens/brands copy/blue-v1/lineHeights.scss +15 -0
  511. package/lib/design-tokens/brands copy/blue-v1/link.scss +4 -0
  512. package/lib/design-tokens/brands copy/blue-v1/paragraphIndent.scss +4 -0
  513. package/lib/design-tokens/brands copy/blue-v1/paragraphSpacing.scss +4 -0
  514. package/lib/design-tokens/brands copy/blue-v1/shadow.scss +8 -0
  515. package/lib/design-tokens/brands copy/blue-v1/spacing.scss +21 -0
  516. package/lib/design-tokens/brands copy/blue-v1/textCase.scss +5 -0
  517. package/lib/design-tokens/brands copy/blue-v1/textDecoration.scss +5 -0
  518. package/lib/design-tokens/brands copy/blue-v1/tokens-all-blue-v1.scss +534 -0
  519. package/lib/design-tokens/brands copy/blue-v1/tokens-brand.scss +30 -0
  520. package/lib/design-tokens/brands copy/cre8/_base.scss +157 -0
  521. package/lib/design-tokens/brands copy/cre8/badge.scss +5 -0
  522. package/lib/design-tokens/brands copy/cre8/bg.scss +34 -0
  523. package/lib/design-tokens/brands copy/cre8/border-style.scss +5 -0
  524. package/lib/design-tokens/brands copy/cre8/border.scss +18 -0
  525. package/lib/design-tokens/brands copy/cre8/borderRadius.scss +15 -0
  526. package/lib/design-tokens/brands copy/cre8/borderWidth.scss +11 -0
  527. package/lib/design-tokens/brands copy/cre8/breakpoint.scss +9 -0
  528. package/lib/design-tokens/brands copy/cre8/button.scss +211 -0
  529. package/lib/design-tokens/brands copy/cre8/content.scss +29 -0
  530. package/lib/design-tokens/brands copy/cre8/desktop-menu.scss +5 -0
  531. package/lib/design-tokens/brands copy/cre8/fontFamilies.scss +4 -0
  532. package/lib/design-tokens/brands copy/cre8/fontSize.scss +17 -0
  533. package/lib/design-tokens/brands copy/cre8/fontWeights.scss +7 -0
  534. package/lib/design-tokens/brands copy/cre8/footer.scss +8 -0
  535. package/lib/design-tokens/brands copy/cre8/header.scss +81 -0
  536. package/lib/design-tokens/brands copy/cre8/icon-size.scss +6 -0
  537. package/lib/design-tokens/brands copy/cre8/letterSpacing.scss +10 -0
  538. package/lib/design-tokens/brands copy/cre8/lineHeights.scss +22 -0
  539. package/lib/design-tokens/brands copy/cre8/link.scss +4 -0
  540. package/lib/design-tokens/brands copy/cre8/paragraphIndent.scss +4 -0
  541. package/lib/design-tokens/brands copy/cre8/paragraphSpacing.scss +4 -0
  542. package/lib/design-tokens/brands copy/cre8/progress-meter.scss +4 -0
  543. package/lib/design-tokens/brands copy/cre8/shadow.scss +8 -0
  544. package/lib/design-tokens/brands copy/cre8/spacing.scss +21 -0
  545. package/lib/design-tokens/brands copy/cre8/textCase.scss +5 -0
  546. package/lib/design-tokens/brands copy/cre8/textDecoration.scss +5 -0
  547. package/lib/design-tokens/brands copy/cre8/tokens-all-cre8.scss +631 -0
  548. package/lib/design-tokens/brands copy/cre8/tokens-brand.scss +31 -0
  549. package/lib/design-tokens/brands copy/femmecubator/base.scss +64 -0
  550. package/lib/design-tokens/brands copy/femmecubator/border.scss +15 -0
  551. package/lib/design-tokens/brands copy/femmecubator/color.scss +56 -0
  552. package/lib/design-tokens/brands copy/femmecubator/spacing.scss +13 -0
  553. package/lib/design-tokens/brands copy/femmecubator/tokens-all-femmecubator.scss +139 -0
  554. package/lib/design-tokens/brands copy/femmecubator/tokens-brand.scss +8 -0
  555. package/lib/design-tokens/brands copy/legacy/_base.scss +103 -0
  556. package/lib/design-tokens/brands copy/legacy/badge.scss +5 -0
  557. package/lib/design-tokens/brands copy/legacy/bg.scss +34 -0
  558. package/lib/design-tokens/brands copy/legacy/border-style.scss +5 -0
  559. package/lib/design-tokens/brands copy/legacy/border.scss +17 -0
  560. package/lib/design-tokens/brands copy/legacy/borderRadius.scss +15 -0
  561. package/lib/design-tokens/brands copy/legacy/borderWidth.scss +11 -0
  562. package/lib/design-tokens/brands copy/legacy/breakpoint.scss +9 -0
  563. package/lib/design-tokens/brands copy/legacy/button.scss +225 -0
  564. package/lib/design-tokens/brands copy/legacy/content.scss +29 -0
  565. package/lib/design-tokens/brands copy/legacy/desktop-menu.scss +5 -0
  566. package/lib/design-tokens/brands copy/legacy/fontFamilies.scss +4 -0
  567. package/lib/design-tokens/brands copy/legacy/fontSize.scss +17 -0
  568. package/lib/design-tokens/brands copy/legacy/fontWeights.scss +10 -0
  569. package/lib/design-tokens/brands copy/legacy/footer.scss +9 -0
  570. package/lib/design-tokens/brands copy/legacy/header.scss +81 -0
  571. package/lib/design-tokens/brands copy/legacy/icon-size.scss +6 -0
  572. package/lib/design-tokens/brands copy/legacy/letterSpacing.scss +9 -0
  573. package/lib/design-tokens/brands copy/legacy/lineHeights.scss +19 -0
  574. package/lib/design-tokens/brands copy/legacy/paragraphIndent.scss +4 -0
  575. package/lib/design-tokens/brands copy/legacy/paragraphSpacing.scss +4 -0
  576. package/lib/design-tokens/brands copy/legacy/progress-meter.scss +4 -0
  577. package/lib/design-tokens/brands copy/legacy/shadow.scss +8 -0
  578. package/lib/design-tokens/brands copy/legacy/spacing.scss +20 -0
  579. package/lib/design-tokens/brands copy/legacy/textCase.scss +5 -0
  580. package/lib/design-tokens/brands copy/legacy/textDecoration.scss +5 -0
  581. package/lib/design-tokens/brands copy/legacy/tokens-all-legacy.scss +588 -0
  582. package/lib/design-tokens/brands copy/legacy/tokens-brand.scss +30 -0
  583. package/lib/design-tokens/brands copy/marketing/_base.scss +137 -0
  584. package/lib/design-tokens/brands copy/marketing/asset.scss +7 -0
  585. package/lib/design-tokens/brands copy/marketing/badge.scss +5 -0
  586. package/lib/design-tokens/brands copy/marketing/bg.scss +35 -0
  587. package/lib/design-tokens/brands copy/marketing/border-style.scss +5 -0
  588. package/lib/design-tokens/brands copy/marketing/border.scss +21 -0
  589. package/lib/design-tokens/brands copy/marketing/borderRadius.scss +15 -0
  590. package/lib/design-tokens/brands copy/marketing/borderWidth.scss +11 -0
  591. package/lib/design-tokens/brands copy/marketing/breakpoint.scss +9 -0
  592. package/lib/design-tokens/brands copy/marketing/button.scss +225 -0
  593. package/lib/design-tokens/brands copy/marketing/content.scss +29 -0
  594. package/lib/design-tokens/brands copy/marketing/desktop-menu.scss +5 -0
  595. package/lib/design-tokens/brands copy/marketing/fontFamilies.scss +4 -0
  596. package/lib/design-tokens/brands copy/marketing/fontSize.scss +17 -0
  597. package/lib/design-tokens/brands copy/marketing/fontWeights.scss +7 -0
  598. package/lib/design-tokens/brands copy/marketing/footer.scss +9 -0
  599. package/lib/design-tokens/brands copy/marketing/header.scss +81 -0
  600. package/lib/design-tokens/brands copy/marketing/icon-size.scss +6 -0
  601. package/lib/design-tokens/brands copy/marketing/letterSpacing.scss +9 -0
  602. package/lib/design-tokens/brands copy/marketing/lineHeights.scss +22 -0
  603. package/lib/design-tokens/brands copy/marketing/link.scss +4 -0
  604. package/lib/design-tokens/brands copy/marketing/paragraphIndent.scss +4 -0
  605. package/lib/design-tokens/brands copy/marketing/paragraphSpacing.scss +4 -0
  606. package/lib/design-tokens/brands copy/marketing/progress-meter.scss +4 -0
  607. package/lib/design-tokens/brands copy/marketing/shadow.scss +8 -0
  608. package/lib/design-tokens/brands copy/marketing/spacing.scss +21 -0
  609. package/lib/design-tokens/brands copy/marketing/textCase.scss +5 -0
  610. package/lib/design-tokens/brands copy/marketing/textDecoration.scss +5 -0
  611. package/lib/design-tokens/brands copy/marketing/tokens-all-marketing.scss +633 -0
  612. package/lib/design-tokens/brands copy/marketing/tokens-brand.scss +32 -0
  613. package/lib/design-tokens/brands copy/minimalist/_base.scss +81 -0
  614. package/lib/design-tokens/brands copy/minimalist/asset.scss +6 -0
  615. package/lib/design-tokens/brands copy/minimalist/badge.scss +5 -0
  616. package/lib/design-tokens/brands copy/minimalist/bg.scss +34 -0
  617. package/lib/design-tokens/brands copy/minimalist/border-style.scss +5 -0
  618. package/lib/design-tokens/brands copy/minimalist/border.scss +17 -0
  619. package/lib/design-tokens/brands copy/minimalist/borderRadius.scss +15 -0
  620. package/lib/design-tokens/brands copy/minimalist/borderWidth.scss +11 -0
  621. package/lib/design-tokens/brands copy/minimalist/breakpoint.scss +9 -0
  622. package/lib/design-tokens/brands copy/minimalist/button.scss +225 -0
  623. package/lib/design-tokens/brands copy/minimalist/content.scss +29 -0
  624. package/lib/design-tokens/brands copy/minimalist/desktop-menu.scss +5 -0
  625. package/lib/design-tokens/brands copy/minimalist/fontFamilies.scss +4 -0
  626. package/lib/design-tokens/brands copy/minimalist/fontFamily.scss +4 -0
  627. package/lib/design-tokens/brands copy/minimalist/fontSize.scss +17 -0
  628. package/lib/design-tokens/brands copy/minimalist/fontWeights.scss +6 -0
  629. package/lib/design-tokens/brands copy/minimalist/footer.scss +9 -0
  630. package/lib/design-tokens/brands copy/minimalist/header.scss +81 -0
  631. package/lib/design-tokens/brands copy/minimalist/icon-size.scss +6 -0
  632. package/lib/design-tokens/brands copy/minimalist/letterSpacing.scss +9 -0
  633. package/lib/design-tokens/brands copy/minimalist/lineHeights.scss +20 -0
  634. package/lib/design-tokens/brands copy/minimalist/paragraphIndent.scss +4 -0
  635. package/lib/design-tokens/brands copy/minimalist/paragraphSpacing.scss +4 -0
  636. package/lib/design-tokens/brands copy/minimalist/progress-meter.scss +4 -0
  637. package/lib/design-tokens/brands copy/minimalist/shadow.scss +8 -0
  638. package/lib/design-tokens/brands copy/minimalist/spacing.scss +20 -0
  639. package/lib/design-tokens/brands copy/minimalist/textCase.scss +5 -0
  640. package/lib/design-tokens/brands copy/minimalist/textDecoration.scss +5 -0
  641. package/lib/design-tokens/brands copy/minimalist/tokens-all-minimalist.scss +567 -0
  642. package/lib/design-tokens/brands copy/minimalist/tokens-brand.scss +32 -0
  643. package/lib/design-tokens/core/scss/theming/animation.scss +152 -0
  644. package/lib/design-tokens/core/scss/theming/body.scss +29 -0
  645. package/lib/design-tokens/core/scss/theming/breakpoints.scss +21 -0
  646. package/lib/design-tokens/core/scss/theming/colors.scss +10 -0
  647. package/lib/design-tokens/core/scss/theming/component.scss +8 -0
  648. package/lib/design-tokens/core/scss/theming/display.scss +17 -0
  649. package/lib/design-tokens/core/scss/theming/functions.scss +4 -0
  650. package/lib/design-tokens/core/scss/theming/head.module.d.ts +3 -0
  651. package/lib/design-tokens/core/scss/theming/head.module.d.ts.map +1 -0
  652. package/lib/design-tokens/core/scss/theming/head.scss +7 -0
  653. package/lib/design-tokens/core/scss/theming/media.scss +8 -0
  654. package/lib/design-tokens/core/scss/theming/reset.scss +9 -0
  655. package/lib/design-tokens/core/scss/theming/spacing.scss +504 -0
  656. package/lib/design-tokens/core/scss/theming/typography-usage.scss +449 -0
  657. package/lib/design-tokens/core/scss/theming/variables.scss +407 -0
  658. package/lib/design-tokens/core/scss/theming/visibility.scss +122 -0
  659. package/lib/design-tokens/layouts/breakpoints.scss +9 -0
  660. package/lib/design-tokens/mixins/typography-usage.scss +452 -0
  661. package/lib/design-tokens/tokens_netflix.theme.d.ts +3 -0
  662. package/lib/design-tokens/tokens_netflix.theme.d.ts.map +1 -0
  663. package/lib/directives/if-truthy.d.ts +10 -0
  664. package/lib/directives/if-truthy.d.ts.map +1 -0
  665. package/lib/directives/spread.d.ts +10 -0
  666. package/lib/directives/spread.d.ts.map +1 -0
  667. package/lib/field-J4OEwkTq.js +315 -0
  668. package/lib/icon-ClNBixxp.js +707 -0
  669. package/lib/icons/add.svg +3 -0
  670. package/lib/icons/arrow-back.svg +10 -0
  671. package/lib/icons/arrow-down.svg +3 -0
  672. package/lib/icons/arrow-fat-up-fill.svg +1 -0
  673. package/lib/icons/arrow-forward.svg +10 -0
  674. package/lib/icons/arrow-left.svg +3 -0
  675. package/lib/icons/arrow-right.svg +3 -0
  676. package/lib/icons/arrow-up.svg +3 -0
  677. package/lib/icons/assistant.svg +3 -0
  678. package/lib/icons/attention.svg +3 -0
  679. package/lib/icons/bold-arrow-up.svg +5 -0
  680. package/lib/icons/calendar.svg +5 -0
  681. package/lib/icons/caret-down.svg +4 -0
  682. package/lib/icons/check-circle.svg +3 -0
  683. package/lib/icons/check.svg +3 -0
  684. package/lib/icons/close.svg +3 -0
  685. package/lib/icons/contacts.svg +3 -0
  686. package/lib/icons/cre8-icons.svg +358 -0
  687. package/lib/icons/delta-down.svg +3 -0
  688. package/lib/icons/delta-up.svg +3 -0
  689. package/lib/icons/download.svg +5 -0
  690. package/lib/icons/edit.svg +5 -0
  691. package/lib/icons/ellipsis.svg +3 -0
  692. package/lib/icons/email.svg +3 -0
  693. package/lib/icons/envelope.svg +3 -0
  694. package/lib/icons/error-alt copy.svg +1 -0
  695. package/lib/icons/error-alt.svg +1 -0
  696. package/lib/icons/error-round.svg +3 -0
  697. package/lib/icons/error.svg +3 -0
  698. package/lib/icons/express-scripts copy.svg +8 -0
  699. package/lib/icons/express-scripts.svg +8 -0
  700. package/lib/icons/external-file.svg +3 -0
  701. package/lib/icons/external.svg +5 -0
  702. package/lib/icons/facebook copy.svg +3 -0
  703. package/lib/icons/facebook.svg +3 -0
  704. package/lib/icons/find-drug.svg +3 -0
  705. package/lib/icons/globe.svg +3 -0
  706. package/lib/icons/hand-heart.svg +5 -0
  707. package/lib/icons/help.svg +3 -0
  708. package/lib/icons/icon1.svg +72 -0
  709. package/lib/icons/info.svg +3 -0
  710. package/lib/icons/instagram copy.svg +10 -0
  711. package/lib/icons/instagram.svg +10 -0
  712. package/lib/icons/keyboard-arrow-down.svg +3 -0
  713. package/lib/icons/keyboard-arrow-left.svg +3 -0
  714. package/lib/icons/keyboard-arrow-right.svg +3 -0
  715. package/lib/icons/keyboard-arrow-up.svg +3 -0
  716. package/lib/icons/language.svg +3 -0
  717. package/lib/icons/light-bulb.svg +8 -0
  718. package/lib/icons/link.svg +4 -0
  719. package/lib/icons/linkedin copy.svg +3 -0
  720. package/lib/icons/linkedin.svg +3 -0
  721. package/lib/icons/location-on.svg +3 -0
  722. package/lib/icons/menu.svg +5 -0
  723. package/lib/icons/minus.svg +6 -0
  724. package/lib/icons/neutral.svg +3 -0
  725. package/lib/icons/new-rx-icon.svg +15 -0
  726. package/lib/icons/new-rx.svg +15 -0
  727. package/lib/icons/notifications.svg +3 -0
  728. package/lib/icons/open copy.svg +3 -0
  729. package/lib/icons/open.svg +3 -0
  730. package/lib/icons/order-status.svg +5 -0
  731. package/lib/icons/pause copy.svg +3 -0
  732. package/lib/icons/pause.svg +3 -0
  733. package/lib/icons/payment.svg +4 -0
  734. package/lib/icons/people.svg +3 -0
  735. package/lib/icons/person-bubble copy.svg +9 -0
  736. package/lib/icons/person-bubble.svg +9 -0
  737. package/lib/icons/person.svg +3 -0
  738. package/lib/icons/pinterest copy.svg +3 -0
  739. package/lib/icons/pinterest.svg +3 -0
  740. package/lib/icons/play-arrow.svg +3 -0
  741. package/lib/icons/play-circle-outline.svg +10 -0
  742. package/lib/icons/products.svg +6 -0
  743. package/lib/icons/progress-spinner.svg +5 -0
  744. package/lib/icons/refresh.svg +5 -0
  745. package/lib/icons/replay.svg +3 -0
  746. package/lib/icons/rss-feed copy.svg +4 -0
  747. package/lib/icons/rss-feed.svg +4 -0
  748. package/lib/icons/rx copy.svg +3 -0
  749. package/lib/icons/rx.svg +3 -0
  750. package/lib/icons/scheduler.svg +3 -0
  751. package/lib/icons/search.svg +10 -0
  752. package/lib/icons/settings.svg +3 -0
  753. package/lib/icons/share.svg +3 -0
  754. package/lib/icons/shop.svg +3 -0
  755. package/lib/icons/site.svg +4 -0
  756. package/lib/icons/spinner.svg +5 -0
  757. package/lib/icons/square.svg +3 -0
  758. package/lib/icons/success.svg +3 -0
  759. package/lib/icons/swap copy.svg +3 -0
  760. package/lib/icons/swap.svg +3 -0
  761. package/lib/icons/thumb-up copy.svg +3 -0
  762. package/lib/icons/thumb-up.svg +3 -0
  763. package/lib/icons/trending-flat copy.svg +3 -0
  764. package/lib/icons/trending-flat.svg +3 -0
  765. package/lib/icons/trending-up copy.svg +3 -0
  766. package/lib/icons/trending-up.svg +3 -0
  767. package/lib/icons/twitter copy.svg +3 -0
  768. package/lib/icons/twitter.svg +3 -0
  769. package/lib/icons/vaccine.svg +10 -0
  770. package/lib/icons/warning.svg +3 -0
  771. package/lib/icons/wellness.svg +7 -0
  772. package/lib/index.d.ts +84 -0
  773. package/lib/index.d.ts.map +1 -0
  774. package/lib/index.js +11685 -0
  775. package/lib/scripts/convert-scss-to-ts.d.ts +2 -0
  776. package/lib/scripts/convert-scss-to-ts.d.ts.map +1 -0
  777. package/lib/scripts/extract-tokens.d.ts +3 -0
  778. package/lib/scripts/extract-tokens.d.ts.map +1 -0
  779. package/lib/scripts/generateWesparkleThemes.d.ts +3 -0
  780. package/lib/scripts/generateWesparkleThemes.d.ts.map +1 -0
  781. package/lib/toBeAccessible.d.ts +9 -0
  782. package/lib/toBeAccessible.d.ts.map +1 -0
  783. package/lib/utilities/is-mobile.d.ts +5 -0
  784. package/lib/utilities/is-mobile.d.ts.map +1 -0
  785. package/lib/utilities/story-helpers.d.ts +9 -0
  786. package/lib/utilities/story-helpers.d.ts.map +1 -0
  787. package/lib/vite.config.cdn.d.ts +18 -0
  788. package/lib/vite.config.cdn.d.ts.map +1 -0
  789. package/lib/vite.config.d.ts +3 -0
  790. package/lib/vite.config.d.ts.map +1 -0
  791. package/package.json +150 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cre8-wc.min.js","sources":["../node_modules/.pnpm/@lit+reactive-element@2.1.1/node_modules/@lit/reactive-element/css-tag.js","../node_modules/.pnpm/@lit+reactive-element@2.1.1/node_modules/@lit/reactive-element/reactive-element.js","../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/lit-html.js","../node_modules/.pnpm/lit-element@4.2.1/node_modules/lit-element/lit-element.js","../node_modules/.pnpm/@lit+reactive-element@2.1.1/node_modules/@lit/reactive-element/decorators/property.js","../node_modules/.pnpm/@lit+reactive-element@2.1.1/node_modules/@lit/reactive-element/decorators/state.js","../node_modules/.pnpm/@lit+reactive-element@2.1.1/node_modules/@lit/reactive-element/decorators/base.js","../node_modules/.pnpm/@lit+reactive-element@2.1.1/node_modules/@lit/reactive-element/decorators/query.js","../node_modules/.pnpm/@lit+reactive-element@2.1.1/node_modules/@lit/reactive-element/decorators/query-all.js","../node_modules/.pnpm/@lit+reactive-element@2.1.1/node_modules/@lit/reactive-element/decorators/query-assigned-elements.js","../node_modules/.pnpm/classnames@2.5.1/node_modules/classnames/index.js","../components/cre8-element.ts","../components/accordion/accordion.styles.ts","../components/accordion/accordion.ts","../icons/System/Regular/Caret_Up.svg?raw","../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/directives/if-defined.js","../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/directive.js","../node_modules/.pnpm/lit-html@3.3.1/node_modules/lit-html/directives/unsafe-html.js","../icons/System/Regular/Add.svg?raw","../icons/System/Regular/Arrow_-_Left.svg?raw","../icons/System/Filled/Chat_Default.svg?raw","../icons/System/Regular/Calendar.svg?raw","../icons/System/Filled/Caret_Down.svg?raw","../icons/System/Filled/Check.svg?raw","../icons/System/Regular/Check.svg?raw","../icons/System/Regular/Close.svg?raw","../icons/System/Filled/Download.svg?raw","../icons/System/Regular/Edit.svg?raw","../icons/System/Filled/Ellipsis.svg?raw","../icons/System/Filled/Message_Unread.svg?raw","../icons/System/Regular/Message_Unread.svg?raw","../icons/System/Regular/Error.svg?raw","../icons/System/Regular/External_Link.svg?raw","../icons/System/Regular/Medication.svg?raw","../icons/System/Regular/Globe.svg?raw","../icons/System/Regular/Wellness.svg?raw","../icons/System/Regular/Help.svg?raw","../icons/System/Filled/Info.svg?raw","../icons/System/Regular/Lightbulb.svg?raw","../icons/System/Filled/Location.svg?raw","../icons/System/Regular/Menu.svg?raw","../icons/System/Regular/Minus.svg?raw","../icons/System/Filled/Account.svg?raw","../icons/System/Regular/Notification.svg?raw","../icons/Marketing/Duotone/Refill.svg?raw","../icons/System/Regular/Account.svg?raw","../icons/System/Filled/Play_Arrow.svg?raw","../icons/System/Regular/Play_Circle.svg?raw","../icons/System/Regular/Spinner/75.svg?raw","../icons/System/Regular/Undo.svg?raw","../icons/System/Regular/Search.svg?raw","../icons/System/Regular/Cart.svg?raw","../icons/System/Filled/Shape/Rectangle.svg?raw","../icons/Marketing/Duotone/Vaccinations.svg?raw","../icons/System/Filled/Warning.svg?raw","../icons/System/Regular/Caret_Double_Right.svg?raw","../icons/error-alt.svg?raw","../icons/express-scripts.svg?raw","../icons/instagram.svg?raw","../icons/linkedin.svg?raw","../icons/open.svg?raw","../icons/pause.svg?raw","../icons/person-bubble.svg?raw","../icons/pinterest.svg?raw","../icons/rss-feed.svg?raw","../icons/rx.svg?raw","../icons/swap.svg?raw","../icons/thumb-up.svg?raw","../icons/trending-flat.svg?raw","../icons/trending-up.svg?raw","../icons/twitter.svg?raw","../components/icon/icon.styles.ts","../icons/cre8-icons.svg?raw","../components/icon/icon.ts","../components/cre8-form-element.ts","../components/loading-spinner/loading-spinner.styles.ts","../components/loading-spinner/loading-spinner.ts","../components/button/button.styles.ts","../components/button/button.ts","../components/accordion-item/accordion-item.styles.ts","../components/accordion-item/accordion-item.ts","../icons/System/Filled/Error.svg?raw","../icons/System/Filled/Lightbulb.svg?raw","../icons/System/Filled/Arrow_-_Left.svg?raw","../components/link/link.styles.ts","../components/link/link.ts","../components/heading/heading.styles.ts","../components/heading/heading.ts","../components/text-passage/text-passage-light-dom.styles.ts","../components/text-passage/text-passage.styles.ts","../components/text-passage/text-passage.ts","../components/alert/alert.styles.ts","../components/alert/alert.ts","../components/badge/badge.styles.ts","../components/badge/badge.ts","../components/band/band.styles.ts","../components/band/band.ts","../components/breadcrumbs/breadcrumbs.styles.ts","../components/breadcrumbs/breadcrumbs.ts","../icons/System/Regular/Caret_Right.svg?raw","../components/breadcrumbs-item/breadcrumbs-item.styles.ts","../components/breadcrumbs-item/breadcrumbs-item.ts","../components/button-group/button-group.styles.ts","../components/button-group/button-group.ts","../components/card/card.styles.ts","../components/card/card.ts","../node_modules/.pnpm/@kurkle+color@0.3.4/node_modules/@kurkle/color/dist/color.esm.js","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/chunks/helpers.dataset.js","../node_modules/.pnpm/chart.js@4.5.1/node_modules/chart.js/dist/chart.js","../components/chart/chart.styles.ts","../components/chart/chart.ts","../node_modules/.pnpm/nanoid@5.1.6/node_modules/nanoid/url-alphabet/index.js","../node_modules/.pnpm/nanoid@5.1.6/node_modules/nanoid/index.browser.js","../components/field-note/field-note.styles.ts","../components/field-note/field-note.ts","../components/checkbox-field/checkbox-field.styles.ts","../components/checkbox-field/checkbox-field.ts","../components/checkbox-field-item/checkbox-field-item.styles.ts","../components/checkbox-field-item/checkbox-field-item.ts","../components/danger-button/danger-button.styles.ts","../components/danger-button/danger-button.ts","../components/date-picker/date-picker.styles.ts","../components/field/field.styles.ts","../components/field/field.ts","../components/date-picker/calendar/calendar.styles.ts","../components/date-picker/calendar-month-modal/calendar-month-modal.styles.ts","../components/date-picker/calendar-month-modal/calendar-month-modal.ts","../components/date-picker/calendar-year-modal/calendar-year-modal.styles.ts","../components/date-picker/calendar-year-modal/calendar-year-modal.ts","../components/date-picker/calendar-navigation/calendar-navigation.styles.ts","../components/date-picker/calendar-navigation/calendar-navigation.ts","../components/date-picker/calendar/calendar.ts","../components/date-picker/date-picker.ts","../components/divider/divider.styles.ts","../components/divider/divider.ts","../components/dropdown/dropdown.styles.ts","../components/dropdown/dropdown.ts","../components/dropdown-item/dropdown-item.styles.ts","../components/dropdown-item/dropdown-item.ts","../components/feature/feature.styles.ts","../components/feature/feature.ts","../components/footer/footer.styles.ts","../components/footer/footer.ts","../components/global-nav/global-nav.styles.ts","../components/global-nav/global-nav.ts","../components/global-nav-item/global-nav-item.styles.ts","../components/global-nav-item/global-nav-item.ts","../components/grid/grid.styles.ts","../components/grid/grid.ts","../components/grid-item/grid-item.styles.ts","../components/grid-item/grid-item.ts","../components/header/header.styles.ts","../components/header/header.ts","../components/hero/hero.styles.ts","../components/hero/hero.ts","../icons/System/Filled/Help.svg?raw","../components/inline-alert/inline-alert.styles.ts","../components/inline-alert/inline-alert.ts","../components/layout/layout.styles.ts","../components/layout/layout.ts","../components/layout-container/layout-container.styles.ts","../components/layout-container/layout-container.ts","../components/layout-section/layout-section.styles.ts","../components/layout-section/layout-section.ts","../components/linelength-container/linelength-container.styles.ts","../components/linelength-container/linelength-container.ts","../components/link-list/link-list.styles.ts","../components/link-list/link-list.ts","../components/link-list-item/link-list-item.styles.ts","../components/link-list-item/link-list-item.ts","../components/list/list.styles.ts","../components/list/list.ts","../components/list-item/list-item.styles.ts","../components/list-item/list-item.ts","../components/logo/logo.styles.ts","../components/logo/logo.ts","../components/main/main.styles.ts","../components/main/main.ts","../node_modules/.pnpm/@a11y+focus-trap@1.0.5/node_modules/@a11y/focus-trap/shadow.js","../node_modules/.pnpm/@a11y+focus-trap@1.0.5/node_modules/@a11y/focus-trap/focusable.js","../node_modules/.pnpm/@a11y+focus-trap@1.0.5/node_modules/@a11y/focus-trap/debounce.js","../node_modules/.pnpm/@a11y+focus-trap@1.0.5/node_modules/@a11y/focus-trap/focus-trap.js","../components/modal/modal.styles.ts","../components/modal/modal.ts","../icons/System/Regular/Caret_Down.svg?raw","../icons/System/Regular/Clear_X.svg?raw","../components/multi-select/multi-select.styles.ts","../components/remove-tag/remove-tag.styles.ts","../components/remove-tag/remove-tag.ts","../components/multi-select/multi-select.ts","../components/nav-container/nav-container.styles.ts","../components/nav-container/nav-container.ts","../components/page-header/page-header.styles.ts","../components/page-header/page-header.ts","../icons/System/Regular/Caret_Left.svg?raw","../icons/System/Regular/Caret_Double_Left.svg?raw","../utilities/is-mobile.ts","../components/pagination/page-counter/page-counter.styles.ts","../components/pagination/page-counter/page-counter.ts","../components/pagination/pagination.styles.ts","../components/pagination/pagination.ts","../components/progress-meter/progress-meter.styles.ts","../components/progress-meter/progress-meter.ts","../components/percent-bar/percent-bar.styles.ts","../components/percent-bar/percent-bar.ts","../components/popover/popover.styles.ts","../components/popover/popover.ts","../components/primary-nav/primary-nav.styles.ts","../components/primary-nav/primary-nav.ts","../components/primary-nav-item/primary-nav-item.styles.ts","../components/primary-nav-item/primary-nav-item.ts","../components/radio-field/radio-field.styles.ts","../components/radio-field/radio-field.ts","../components/radio-field-item/radio-field-item.styles.ts","../components/radio-field-item/radio-field-item.ts","../components/section/section.styles.ts","../components/section/section.ts","../components/select/select.styles.ts","../components/select/select.ts","../components/select-tile/select-tile.styles.ts","../components/select-tile/select-tile-radio-controller.ts","../components/select-tile/select-tile-checkbox-controller.ts","../components/select-tile/select-tile.ts","../components/select-tile-list/select-tile-list.styles.ts","../components/select-tile-list/select-tile-list.ts","../components/skeleton-loader/skeleton-loader.styles.ts","../components/skeleton-loader/skeleton-loader.ts","../components/split-button/split-button.styles.ts","../components/split-button/split-button.ts","../components/submenu/submenu.styles.ts","../components/submenu/submenu.ts","../components/submenu-item/submenu-item.styles.ts","../components/submenu-item/submenu-item.ts","../components/tab/tab.styles.ts","../components/tab/tab.ts","../components/tab-panel/tab-panel.styles.ts","../components/tab-panel/tab-panel.ts","../components/table/table.styles.ts","../components/table/table.ts","../components/table-body/table-body.styles.ts","../components/table-body/table-body.ts","../components/table-cell/table-cell.styles.ts","../components/table-cell/table-cell.ts","../components/table-header/table-header.styles.ts","../components/table-header/table-header.ts","../components/table-header-cell/table-header-cell.styles.ts","../components/table-header-cell/table-header-cell.ts","../components/table-object/table-object.styles.ts","../components/table-object/table-object.ts","../components/table-row/table-row.styles.ts","../components/table-row/table-row.ts","../components/tabs/tabs.styles.ts","../components/tabs/tabs.ts","../components/tag/tag.styles.ts","../components/tag/tag.ts","../components/tag-list/tag-list.styles.ts","../components/tag-list/tag-list.ts","../components/tertiary-nav/tertiary-nav.styles.ts","../components/tertiary-nav/tertiary-nav.ts","../components/tertiary-nav-item/tertiary-nav-item.styles.ts","../components/tertiary-nav-item/tertiary-nav-item.ts","../components/text-link/text-link.styles.ts","../components/text-link/text-link.ts","../components/tooltip/tooltip.styles.ts","../components/tooltip/tooltip.ts","../components/utility-nav/utility-nav.styles.ts","../components/utility-nav/utility-nav.ts","../components/utility-nav-item/utility-nav-item.styles.ts","../components/utility-nav-item/utility-nav-item.ts","../cdn-entry.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),o=new WeakMap;class n{constructor(t,e,o){if(this._$cssResult$=!0,o!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=o.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&o.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new n(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const o=1===t.length?t[0]:e.reduce(((e,s,o)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[o+1]),t[0]);return new n(o,t,s)},S=(s,o)=>{if(e)s.adoptedStyleSheets=o.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet));else for(const e of o){const o=document.createElement(\"style\"),n=t.litNonce;void 0!==n&&o.setAttribute(\"nonce\",n),o.textContent=e.cssText,s.appendChild(o)}},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{n as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as s}from\"./css-tag.js\";export{CSSResult,css,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{is:i,defineProperty:e,getOwnPropertyDescriptor:h,getOwnPropertyNames:r,getOwnPropertySymbols:o,getPrototypeOf:n}=Object,a=globalThis,c=a.trustedTypes,l=c?c.emptyScript:\"\",p=a.reactiveElementPolyfillSupport,d=(t,s)=>t,u={toAttribute(t,s){switch(s){case Boolean:t=t?l:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,s){let i=t;switch(s){case Boolean:i=null!==t;break;case Number:i=null===t?null:Number(t);break;case Object:case Array:try{i=JSON.parse(t)}catch(t){i=null}}return i}},f=(t,s)=>!i(t,s),b={attribute:!0,type:String,converter:u,reflect:!1,useDefault:!1,hasChanged:f};Symbol.metadata??=Symbol(\"metadata\"),a.litPropertyMetadata??=new WeakMap;class y extends HTMLElement{static addInitializer(t){this._$Ei(),(this.l??=[]).push(t)}static get observedAttributes(){return this.finalize(),this._$Eh&&[...this._$Eh.keys()]}static createProperty(t,s=b){if(s.state&&(s.attribute=!1),this._$Ei(),this.prototype.hasOwnProperty(t)&&((s=Object.create(s)).wrapped=!0),this.elementProperties.set(t,s),!s.noAccessor){const i=Symbol(),h=this.getPropertyDescriptor(t,i,s);void 0!==h&&e(this.prototype,t,h)}}static getPropertyDescriptor(t,s,i){const{get:e,set:r}=h(this.prototype,t)??{get(){return this[s]},set(t){this[s]=t}};return{get:e,set(s){const h=e?.call(this);r?.call(this,s),this.requestUpdate(t,h,i)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)??b}static _$Ei(){if(this.hasOwnProperty(d(\"elementProperties\")))return;const t=n(this);t.finalize(),void 0!==t.l&&(this.l=[...t.l]),this.elementProperties=new Map(t.elementProperties)}static finalize(){if(this.hasOwnProperty(d(\"finalized\")))return;if(this.finalized=!0,this._$Ei(),this.hasOwnProperty(d(\"properties\"))){const t=this.properties,s=[...r(t),...o(t)];for(const i of s)this.createProperty(i,t[i])}const t=this[Symbol.metadata];if(null!==t){const s=litPropertyMetadata.get(t);if(void 0!==s)for(const[t,i]of s)this.elementProperties.set(t,i)}this._$Eh=new Map;for(const[t,s]of this.elementProperties){const i=this._$Eu(t,s);void 0!==i&&this._$Eh.set(i,t)}this.elementStyles=this.finalizeStyles(this.styles)}static finalizeStyles(s){const i=[];if(Array.isArray(s)){const e=new Set(s.flat(1/0).reverse());for(const s of e)i.unshift(t(s))}else void 0!==s&&i.push(t(s));return i}static _$Eu(t,s){const i=s.attribute;return!1===i?void 0:\"string\"==typeof i?i:\"string\"==typeof t?t.toLowerCase():void 0}constructor(){super(),this._$Ep=void 0,this.isUpdatePending=!1,this.hasUpdated=!1,this._$Em=null,this._$Ev()}_$Ev(){this._$ES=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$E_(),this.requestUpdate(),this.constructor.l?.forEach((t=>t(this)))}addController(t){(this._$EO??=new Set).add(t),void 0!==this.renderRoot&&this.isConnected&&t.hostConnected?.()}removeController(t){this._$EO?.delete(t)}_$E_(){const t=new Map,s=this.constructor.elementProperties;for(const i of s.keys())this.hasOwnProperty(i)&&(t.set(i,this[i]),delete this[i]);t.size>0&&(this._$Ep=t)}createRenderRoot(){const t=this.shadowRoot??this.attachShadow(this.constructor.shadowRootOptions);return s(t,this.constructor.elementStyles),t}connectedCallback(){this.renderRoot??=this.createRenderRoot(),this.enableUpdating(!0),this._$EO?.forEach((t=>t.hostConnected?.()))}enableUpdating(t){}disconnectedCallback(){this._$EO?.forEach((t=>t.hostDisconnected?.()))}attributeChangedCallback(t,s,i){this._$AK(t,i)}_$ET(t,s){const i=this.constructor.elementProperties.get(t),e=this.constructor._$Eu(t,i);if(void 0!==e&&!0===i.reflect){const h=(void 0!==i.converter?.toAttribute?i.converter:u).toAttribute(s,i.type);this._$Em=t,null==h?this.removeAttribute(e):this.setAttribute(e,h),this._$Em=null}}_$AK(t,s){const i=this.constructor,e=i._$Eh.get(t);if(void 0!==e&&this._$Em!==e){const t=i.getPropertyOptions(e),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==t.converter?.fromAttribute?t.converter:u;this._$Em=e;const r=h.fromAttribute(s,t.type);this[e]=r??this._$Ej?.get(e)??r,this._$Em=null}}requestUpdate(t,s,i){if(void 0!==t){const e=this.constructor,h=this[t];if(i??=e.getPropertyOptions(t),!((i.hasChanged??f)(h,s)||i.useDefault&&i.reflect&&h===this._$Ej?.get(t)&&!this.hasAttribute(e._$Eu(t,i))))return;this.C(t,s,i)}!1===this.isUpdatePending&&(this._$ES=this._$EP())}C(t,s,{useDefault:i,reflect:e,wrapped:h},r){i&&!(this._$Ej??=new Map).has(t)&&(this._$Ej.set(t,r??s??this[t]),!0!==h||void 0!==r)||(this._$AL.has(t)||(this.hasUpdated||i||(s=void 0),this._$AL.set(t,s)),!0===e&&this._$Em!==t&&(this._$Eq??=new Set).add(t))}async _$EP(){this.isUpdatePending=!0;try{await this._$ES}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){if(!this.isUpdatePending)return;if(!this.hasUpdated){if(this.renderRoot??=this.createRenderRoot(),this._$Ep){for(const[t,s]of this._$Ep)this[t]=s;this._$Ep=void 0}const t=this.constructor.elementProperties;if(t.size>0)for(const[s,i]of t){const{wrapped:t}=i,e=this[s];!0!==t||this._$AL.has(s)||void 0===e||this.C(s,void 0,i,e)}}let t=!1;const s=this._$AL;try{t=this.shouldUpdate(s),t?(this.willUpdate(s),this._$EO?.forEach((t=>t.hostUpdate?.())),this.update(s)):this._$EM()}catch(s){throw t=!1,this._$EM(),s}t&&this._$AE(s)}willUpdate(t){}_$AE(t){this._$EO?.forEach((t=>t.hostUpdated?.())),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$EM(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$ES}shouldUpdate(t){return!0}update(t){this._$Eq&&=this._$Eq.forEach((t=>this._$ET(t,this[t]))),this._$EM()}updated(t){}firstUpdated(t){}}y.elementStyles=[],y.shadowRootOptions={mode:\"open\"},y[d(\"elementProperties\")]=new Map,y[d(\"finalized\")]=new Map,p?.({ReactiveElement:y}),(a.reactiveElementVersions??=[]).push(\"2.1.1\");export{y as ReactiveElement,s as adoptStyles,u as defaultConverter,t as getCompatibleStyle,f as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=globalThis,i=t.trustedTypes,s=i?i.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,e=\"$lit$\",h=`lit$${Math.random().toFixed(9).slice(2)}$`,o=\"?\"+h,n=`<${o}>`,r=document,l=()=>r.createComment(\"\"),c=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,a=Array.isArray,u=t=>a(t)||\"function\"==typeof t?.[Symbol.iterator],d=\"[ \\t\\n\\f\\r]\",f=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,v=/-->/g,_=/>/g,m=RegExp(`>|${d}(?:([^\\\\s\"'>=/]+)(${d}*=${d}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),p=/'/g,g=/\"/g,$=/^(?:script|style|textarea|title)$/i,y=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),x=y(1),b=y(2),w=y(3),T=Symbol.for(\"lit-noChange\"),E=Symbol.for(\"lit-nothing\"),A=new WeakMap,C=r.createTreeWalker(r,129);function P(t,i){if(!a(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return void 0!==s?s.createHTML(i):i}const V=(t,i)=>{const s=t.length-1,o=[];let r,l=2===i?\"<svg>\":3===i?\"<math>\":\"\",c=f;for(let i=0;i<s;i++){const s=t[i];let a,u,d=-1,y=0;for(;y<s.length&&(c.lastIndex=y,u=c.exec(s),null!==u);)y=c.lastIndex,c===f?\"!--\"===u[1]?c=v:void 0!==u[1]?c=_:void 0!==u[2]?($.test(u[2])&&(r=RegExp(\"</\"+u[2],\"g\")),c=m):void 0!==u[3]&&(c=m):c===m?\">\"===u[0]?(c=r??f,d=-1):void 0===u[1]?d=-2:(d=c.lastIndex-u[2].length,a=u[1],c=void 0===u[3]?m:'\"'===u[3]?g:p):c===g||c===p?c=m:c===v||c===_?c=f:(c=m,r=void 0);const x=c===m&&t[i+1].startsWith(\"/>\")?\" \":\"\";l+=c===f?s+n:d>=0?(o.push(a),s.slice(0,d)+e+s.slice(d)+h+x):s+h+(-2===d?i:x)}return[P(t,l+(t[s]||\"<?>\")+(2===i?\"</svg>\":3===i?\"</math>\":\"\")),o]};class N{constructor({strings:t,_$litType$:s},n){let r;this.parts=[];let c=0,a=0;const u=t.length-1,d=this.parts,[f,v]=V(t,s);if(this.el=N.createElement(f,n),C.currentNode=this.el.content,2===s||3===s){const t=this.el.content.firstChild;t.replaceWith(...t.childNodes)}for(;null!==(r=C.nextNode())&&d.length<u;){if(1===r.nodeType){if(r.hasAttributes())for(const t of r.getAttributeNames())if(t.endsWith(e)){const i=v[a++],s=r.getAttribute(t).split(h),e=/([.?@])?(.*)/.exec(i);d.push({type:1,index:c,name:e[2],strings:s,ctor:\".\"===e[1]?H:\"?\"===e[1]?I:\"@\"===e[1]?L:k}),r.removeAttribute(t)}else t.startsWith(h)&&(d.push({type:6,index:c}),r.removeAttribute(t));if($.test(r.tagName)){const t=r.textContent.split(h),s=t.length-1;if(s>0){r.textContent=i?i.emptyScript:\"\";for(let i=0;i<s;i++)r.append(t[i],l()),C.nextNode(),d.push({type:2,index:++c});r.append(t[s],l())}}}else if(8===r.nodeType)if(r.data===o)d.push({type:2,index:c});else{let t=-1;for(;-1!==(t=r.data.indexOf(h,t+1));)d.push({type:7,index:c}),t+=h.length-1}c++}}static createElement(t,i){const s=r.createElement(\"template\");return s.innerHTML=t,s}}function S(t,i,s=t,e){if(i===T)return i;let h=void 0!==e?s._$Co?.[e]:s._$Cl;const o=c(i)?void 0:i._$litDirective$;return h?.constructor!==o&&(h?._$AO?.(!1),void 0===o?h=void 0:(h=new o(t),h._$AT(t,s,e)),void 0!==e?(s._$Co??=[])[e]=h:s._$Cl=h),void 0!==h&&(i=S(t,h._$AS(t,i.values),h,e)),i}class M{constructor(t,i){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=i}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){const{el:{content:i},parts:s}=this._$AD,e=(t?.creationScope??r).importNode(i,!0);C.currentNode=e;let h=C.nextNode(),o=0,n=0,l=s[0];for(;void 0!==l;){if(o===l.index){let i;2===l.type?i=new R(h,h.nextSibling,this,t):1===l.type?i=new l.ctor(h,l.name,l.strings,this,t):6===l.type&&(i=new z(h,this,t)),this._$AV.push(i),l=s[++n]}o!==l?.index&&(h=C.nextNode(),o++)}return C.currentNode=r,e}p(t){let i=0;for(const s of this._$AV)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,i),i+=s.strings.length-2):s._$AI(t[i])),i++}}class R{get _$AU(){return this._$AM?._$AU??this._$Cv}constructor(t,i,s,e){this.type=2,this._$AH=E,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this._$Cv=e?.isConnected??!0}get parentNode(){let t=this._$AA.parentNode;const i=this._$AM;return void 0!==i&&11===t?.nodeType&&(t=i.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,i=this){t=S(this,t,i),c(t)?t===E||null==t||\"\"===t?(this._$AH!==E&&this._$AR(),this._$AH=E):t!==this._$AH&&t!==T&&this._(t):void 0!==t._$litType$?this.$(t):void 0!==t.nodeType?this.T(t):u(t)?this.k(t):this._(t)}O(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}T(t){this._$AH!==t&&(this._$AR(),this._$AH=this.O(t))}_(t){this._$AH!==E&&c(this._$AH)?this._$AA.nextSibling.data=t:this.T(r.createTextNode(t)),this._$AH=t}$(t){const{values:i,_$litType$:s}=t,e=\"number\"==typeof s?this._$AC(t):(void 0===s.el&&(s.el=N.createElement(P(s.h,s.h[0]),this.options)),s);if(this._$AH?._$AD===e)this._$AH.p(i);else{const t=new M(e,this),s=t.u(this.options);t.p(i),this.T(s),this._$AH=t}}_$AC(t){let i=A.get(t.strings);return void 0===i&&A.set(t.strings,i=new N(t)),i}k(t){a(this._$AH)||(this._$AH=[],this._$AR());const i=this._$AH;let s,e=0;for(const h of t)e===i.length?i.push(s=new R(this.O(l()),this.O(l()),this,this.options)):s=i[e],s._$AI(h),e++;e<i.length&&(this._$AR(s&&s._$AB.nextSibling,e),i.length=e)}_$AR(t=this._$AA.nextSibling,i){for(this._$AP?.(!1,!0,i);t!==this._$AB;){const i=t.nextSibling;t.remove(),t=i}}setConnected(t){void 0===this._$AM&&(this._$Cv=t,this._$AP?.(t))}}class k{get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}constructor(t,i,s,e,h){this.type=1,this._$AH=E,this._$AN=void 0,this.element=t,this.name=i,this._$AM=e,this.options=h,s.length>2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=E}_$AI(t,i=this,s,e){const h=this.strings;let o=!1;if(void 0===h)t=S(this,t,i,0),o=!c(t)||t!==this._$AH&&t!==T,o&&(this._$AH=t);else{const e=t;let n,r;for(t=h[0],n=0;n<h.length-1;n++)r=S(this,e[s+n],i,n),r===T&&(r=this._$AH[n]),o||=!c(r)||r!==this._$AH[n],r===E?t=E:t!==E&&(t+=(r??\"\")+h[n+1]),this._$AH[n]=r}o&&!e&&this.j(t)}j(t){t===E?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,t??\"\")}}class H extends k{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===E?void 0:t}}class I extends k{constructor(){super(...arguments),this.type=4}j(t){this.element.toggleAttribute(this.name,!!t&&t!==E)}}class L extends k{constructor(t,i,s,e,h){super(t,i,s,e,h),this.type=5}_$AI(t,i=this){if((t=S(this,t,i,0)??E)===T)return;const s=this._$AH,e=t===E&&s!==E||t.capture!==s.capture||t.once!==s.once||t.passive!==s.passive,h=t!==E&&(s===E||e);e&&this.element.removeEventListener(this.name,this,s),h&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){\"function\"==typeof this._$AH?this._$AH.call(this.options?.host??this.element,t):this._$AH.handleEvent(t)}}class z{constructor(t,i,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=i,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){S(this,t)}}const Z={M:e,P:h,A:o,C:1,L:V,R:M,D:u,V:S,I:R,H:k,N:I,U:L,B:H,F:z},j=t.litHtmlPolyfillSupport;j?.(N,R),(t.litHtmlVersions??=[]).push(\"3.3.1\");const B=(t,i,s)=>{const e=s?.renderBefore??i;let h=e._$litPart$;if(void 0===h){const t=s?.renderBefore??null;e._$litPart$=h=new R(i.insertBefore(l(),t),t,void 0,s??{})}return h._$AI(t),h};export{Z as _$LH,x as html,w as mathml,T as noChange,E as nothing,B as render,b as svg};\n//# sourceMappingURL=lit-html.js.map\n","import{ReactiveElement as t}from\"@lit/reactive-element\";export*from\"@lit/reactive-element\";import{render as e,noChange as r}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const s=globalThis;class i extends t{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){const t=super.createRenderRoot();return this.renderOptions.renderBefore??=t.firstChild,t}update(t){const r=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=e(r,this.renderRoot,this.renderOptions)}connectedCallback(){super.connectedCallback(),this._$Do?.setConnected(!0)}disconnectedCallback(){super.disconnectedCallback(),this._$Do?.setConnected(!1)}render(){return r}}i._$litElement$=!0,i[\"finalized\"]=!0,s.litElementHydrateSupport?.({LitElement:i});const o=s.litElementPolyfillSupport;o?.({LitElement:i});const n={_$AK:(t,e,r)=>{t._$AK(e,r)},_$AL:t=>t._$AL};(s.litElementVersions??=[]).push(\"4.2.1\");export{i as LitElement,n as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","import{defaultConverter as t,notEqual as e}from\"../reactive-element.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o={attribute:!0,type:String,converter:t,reflect:!1,hasChanged:e},r=(t=o,e,r)=>{const{kind:n,metadata:i}=r;let s=globalThis.litPropertyMetadata.get(i);if(void 0===s&&globalThis.litPropertyMetadata.set(i,s=new Map),\"setter\"===n&&((t=Object.create(t)).wrapped=!0),s.set(r.name,t),\"accessor\"===n){const{name:o}=r;return{set(r){const n=e.get.call(this);e.set.call(this,r),this.requestUpdate(o,n,t)},init(e){return void 0!==e&&this.C(o,void 0,t,e),e}}}if(\"setter\"===n){const{name:o}=r;return function(r){const n=this[o];e.call(this,r),this.requestUpdate(o,n,t)}}throw Error(\"Unsupported decorator location: \"+n)};function n(t){return(e,o)=>\"object\"==typeof o?r(t,e,o):((t,e,o)=>{const r=e.hasOwnProperty(o);return e.constructor.createProperty(o,t),r?Object.getOwnPropertyDescriptor(e,o):void 0})(t,e,o)}export{n as property,r as standardProperty};\n//# sourceMappingURL=property.js.map\n","import{property as t}from\"./property.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function r(r){return t({...r,state:!0,attribute:!1})}export{r as state};\n//# sourceMappingURL=state.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst e=(e,t,c)=>(c.configurable=!0,c.enumerable=!0,Reflect.decorate&&\"object\"!=typeof t&&Object.defineProperty(e,t,c),c);export{e as desc};\n//# sourceMappingURL=base.js.map\n","import{desc as t}from\"./base.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function e(e,r){return(n,s,i)=>{const o=t=>t.renderRoot?.querySelector(e)??null;if(r){const{get:e,set:r}=\"object\"==typeof s?n:i??(()=>{const t=Symbol();return{get(){return this[t]},set(e){this[t]=e}}})();return t(n,s,{get(){let t=e.call(this);return void 0===t&&(t=o(this),(null!==t||this.hasUpdated)&&r.call(this,t)),t}})}return t(n,s,{get(){return o(this)}})}}export{e as query};\n//# sourceMappingURL=query.js.map\n","import{desc as t}from\"./base.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nlet e;function r(r){return(n,o)=>t(n,o,{get(){return(this.renderRoot??(e??=document.createDocumentFragment())).querySelectorAll(r)}})}export{r as queryAll};\n//# sourceMappingURL=query-all.js.map\n","import{desc as t}from\"./base.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function o(o){return(e,n)=>{const{slot:r,selector:s}=o??{},c=\"slot\"+(r?`[name=${r}]`:\":not([name])\");return t(e,n,{get(){const t=this.renderRoot?.querySelector(c),e=t?.assignedElements(o)??[];return void 0===s?e:e.filter((t=>t.matches(s)))}})}}export{o as queryAssignedElements};\n//# sourceMappingURL=query-assigned-elements.js.map\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import classnames from 'classnames';\nimport { html, LitElement } from 'lit';\n\nexport interface DetailObj {\n [key: string]: unknown;\n}\n\nexport interface Cre8DispatchProps {\n e?: Event;\n eventName: string;\n detailObj?: DetailObj;\n optionsObj?: { [key: string]: unknown };\n}\n\nexport interface Cre8Event extends Event {\n detail: {\n originalEvent: Event;\n detailObj: DetailObj;\n };\n}\n\n/**\n * A base element.\n */\nexport class Cre8Element extends LitElement {\n /**\n * Abstraction of `classnames` that automatically includes any style modifier\n * as well as any set variants.\n *\n * It is expected that `variant` would be overridden in a subclass with more\n * specific types, `@property() variant?: 'foo' | 'bar'`\n *\n * @param baseClassName\n */\n componentClassNames(baseClassName: string, additionalClassNames = {}) {\n return classnames(baseClassName, additionalClassNames);\n }\n\n /**\n * Check if a slot is empty\n *\n * @param slotName\n */\n slotEmpty(slotName: string) {\n return !this.querySelector(`[slot=\"${slotName}\"]`);\n }\n\n /**\n * Check if a slot is not empty\n *\n * @param slotName\n */\n slotNotEmpty(slotName: string) {\n if (!this.slotEmpty(slotName) !== false) {\n return !this.slotEmpty(slotName);\n }\n return null;\n }\n\n /**\n * Dispatch a custom event.\n */\n dispatch({\n e, eventName, detailObj = {}, optionsObj = {},\n }: Cre8DispatchProps): CustomEvent {\n const options = {\n bubbles: true,\n composed: true,\n ...optionsObj,\n detail: { ...(e && { originalEvent: e }), ...detailObj },\n };\n const event = new CustomEvent(eventName, options);\n this.dispatchEvent(event);\n return event;\n }\n\n /**\n * Example render, should not be used\n */\n render() {\n return html`<slot></slot>`;\n }\n}\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n//## ACCORDION\n\n:host {\n display: block;\n}\n\n.cre8-c-accordion {\n --cre8-accordion-border-top: var(--cre8-border-width-none);\n --cre8-accordion-border-bottom: var(--cre8-border-width-none);\n ::slotted(cre8-accordion:not(:last-child)) {\n --cre8-accordion-border-bottom: var(--cre8-border-width-default) var(--cre8-border-style-default) var(--cre8-color-border-default);\n }\n border: var(--cre8-border-width-none);\n border-radius: var(--cre8-border-radius-none);\n}\n\n.cre8-c-inner-divider {\n ::slotted(cre8-accordion-item:last-child) {\n border-bottom: var(--cre8-border-width-none);\n }\n ::slotted(cre8-accordion-item:not(first-child)) {\n border-top: var(--cre8-border-width-default) var(--cre8-border-style-default) var(--cre8-color-border-default);\n }\n ::slotted(cre8-accordion-item:first-child) {\n border-top: var(--cre8-border-width-none);\n }\n}\n\n.cre8-c-accordion--border-rectangle {\n border: var(--cre8-border-width-default) var(--cre8-border-style-default) var(--cre8-color-border-default);\n border-radius: var(--cre8-border-radius-none);\n}\n\n.cre8-c-accordion--border-rounded-bottom {\n border: var(--cre8-border-width-default) var(--cre8-border-style-default) var(--cre8-color-border-default);\n border-radius: 0 0 var(--cre8-border-radius-default) var(--cre8-border-radius-default);\n}\n.cre8-c-accordion--border-rounded {\n border: var(--cre8-border-width-default) var(--cre8-border-style-default) var(--cre8-color-border-default);\n border-radius: var(--cre8-border-radius-default);\n}\n.cre8-c-accordiong-group--list {\n list-style: none;\n}\n`;\nexport default styles;\n","import { html, } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './accordion.styles.js';\n\n/**\n * The component is a vertically stacked list of headers that reveal or hide sections of related content on a page.\n * The header title gives the user a high level overview of the content allowing the user to decide\n * which sections to expand for the information.\n *\n * Accordion contains Accordion Items as children. This component is the wrapper for grouping related accordion items.\n *\n * Users can select different border types: default (no border), rectangle, rounded bottom, and rounded.\n *\n */\n\nexport class Cre8Accordion extends Cre8Element {\n static styles = [styles];\n\n\n /**\n * borderType\n * @prop {'rectangle' | 'rounded-bottom' | 'rounded' | 'none'}\n *\n * Controls the border and border-radius of the parent container of the slotted accordions.\n *\n */\n @property()\n borderType?: 'rectangle' | 'rounded-bottom' | 'rounded' | 'none';\n\n /**\n *\n * When it is true, the inner dividers are displayed;\n * if it is false, the inner dividers are not displayed\n * @prop {boolean} hasDivider\n *\n */\n @property({ type: Boolean, reflect: true })\n hasDivider? = false;\n\n connectedCallback(): void {\n super.connectedCallback();\n }\n\n render() {\n const componentClassNames = this.componentClassNames('cre8-c-accordion', {\n 'cre8-c-inner-divider': this.hasDivider === true,\n 'cre8-c-accordion--border-none': this.borderType === undefined || this.borderType === 'none',\n 'cre8-c-accordion--border-rectangle': this.borderType === 'rectangle',\n 'cre8-c-accordion--border-rounded-bottom': this.borderType === 'rounded-bottom',\n 'cre8-c-accordion--border-rounded': this.borderType === 'rounded',\n });\n\n return html`\n <div class=\"${componentClassNames}\">\n <slot> </slot>\n </div>\n `;\n }\n}\n\nif (customElements.get('cre8-accordion') === undefined) {\n customElements.define('cre8-accordion', Cre8Accordion);\n}\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-accordion': Cre8Accordion;\n }\n}\n\nexport default Cre8Accordion;\n","export default \"<svg fill=\\\"currentColor\\\" width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M15.7867 12.1506C15.7192 12.2183 15.639 12.2719 15.5507 12.3085C15.4624 12.3451 15.3678 12.3639 15.2722 12.3639C15.1766 12.3639 15.082 12.3451 14.9937 12.3085C14.9054 12.2719 14.8252 12.2183 14.7577 12.1506L7.99992 5.39197L1.24215 12.1506C1.10569 12.2871 0.920613 12.3638 0.727633 12.3638C0.534652 12.3638 0.349576 12.2871 0.213119 12.1506C0.076661 12.0142 3.8041e-09 11.8291 0 11.6361C-3.8041e-09 11.4432 0.076661 11.2581 0.213119 11.1216L7.4854 3.84933C7.55294 3.78172 7.63315 3.72808 7.72143 3.69148C7.80972 3.65488 7.90435 3.63605 7.99992 3.63605C8.09548 3.63605 8.19012 3.65488 8.2784 3.69148C8.36668 3.72808 8.44689 3.78172 8.51443 3.84933L15.7867 11.1216C15.8543 11.1892 15.908 11.2694 15.9446 11.3576C15.9812 11.4459 16 11.5406 16 11.6361C16 11.7317 15.9812 11.8263 15.9446 11.9146C15.908 12.0029 15.8543 12.0831 15.7867 12.1506Z\\\"/>\\n</svg>\\n\"","import{nothing as t}from\"../lit-html.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o=o=>o??t;export{o as ifDefined};\n//# sourceMappingURL=if-defined.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}export{i as Directive,t as PartType,e as directive};\n//# sourceMappingURL=directive.js.map\n","import{nothing as t,noChange as i}from\"../lit-html.js\";import{Directive as r,PartType as s,directive as n}from\"../directive.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class e extends r{constructor(i){if(super(i),this.it=t,i.type!==s.CHILD)throw Error(this.constructor.directiveName+\"() can only be used in child bindings\")}render(r){if(r===t||null==r)return this._t=void 0,this.it=r;if(r===i)return r;if(\"string\"!=typeof r)throw Error(this.constructor.directiveName+\"() called with a non-string value\");if(r===this.it)return this._t;this.it=r;const s=[r];return s.raw=s,this._t={_$litType$:this.constructor.resultType,strings:s,values:[]}}}e.directiveName=\"unsafeHTML\",e.resultType=1;const o=n(e);export{e as UnsafeHTMLDirective,o as unsafeHTML};\n//# sourceMappingURL=unsafe-html.js.map\n","export default \"<svg fill=\\\"currentColor\\\" width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M8 0C6.41775 0 4.87103 0.469192 3.55544 1.34824C2.23985 2.22729 1.21447 3.47672 0.608967 4.93853C0.00346628 6.40034 -0.15496 8.00887 0.153721 9.56072C0.462403 11.1126 1.22433 12.538 2.34315 13.6569C3.46197 14.7757 4.88743 15.5376 6.43928 15.8463C7.99113 16.155 9.59966 15.9965 11.0615 15.391C12.5233 14.7855 13.7727 13.7602 14.6518 12.4446C15.5308 11.129 16 9.58225 16 8C15.9978 5.87895 15.1542 3.84542 13.6544 2.34562C12.1546 0.845814 10.121 0.00223986 8 0ZM8 14.7692C6.66117 14.7692 5.35241 14.3722 4.23922 13.6284C3.12603 12.8846 2.2584 11.8274 1.74605 10.5905C1.2337 9.35356 1.09965 7.99249 1.36084 6.67939C1.62203 5.36629 2.26674 4.16012 3.21343 3.21343C4.16013 2.26674 5.36629 1.62203 6.67939 1.36084C7.99249 1.09965 9.35356 1.2337 10.5905 1.74605C11.8274 2.25839 12.8846 3.12602 13.6284 4.23922C14.3722 5.35241 14.7692 6.66117 14.7692 8C14.7672 9.79468 14.0534 11.5153 12.7843 12.7843C11.5153 14.0534 9.79469 14.7672 8 14.7692ZM11.6923 8C11.6923 8.16321 11.6275 8.31973 11.5121 8.43514C11.3967 8.55055 11.2401 8.61538 11.0769 8.61538H8.61539V11.0769C8.61539 11.2401 8.55055 11.3967 8.43514 11.5121C8.31974 11.6275 8.16321 11.6923 8 11.6923C7.83679 11.6923 7.68027 11.6275 7.56486 11.5121C7.44945 11.3967 7.38462 11.2401 7.38462 11.0769V8.61538H4.92308C4.75987 8.61538 4.60334 8.55055 4.48794 8.43514C4.37253 8.31973 4.30769 8.16321 4.30769 8C4.30769 7.83679 4.37253 7.68026 4.48794 7.56486C4.60334 7.44945 4.75987 7.38461 4.92308 7.38461H7.38462V4.92308C7.38462 4.75987 7.44945 4.60334 7.56486 4.48793C7.68027 4.37253 7.83679 4.30769 8 4.30769C8.16321 4.30769 8.31974 4.37253 8.43514 4.48793C8.55055 4.60334 8.61539 4.75987 8.61539 4.92308V7.38461H11.0769C11.2401 7.38461 11.3967 7.44945 11.5121 7.56486C11.6275 7.68026 11.6923 7.83679 11.6923 8Z\\\"/>\\n</svg>\\n\"","export default \"<svg fill=\\\"currentColor\\\" width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M16 8.00007C16 8.17688 15.9298 8.34644 15.8047 8.47146C15.6797 8.59648 15.5102 8.66672 15.3334 8.66672H2.27628L7.13862 13.5282C7.20056 13.5902 7.24969 13.6637 7.28322 13.7446C7.31674 13.8255 7.33399 13.9123 7.33399 13.9999C7.33399 14.0875 7.31674 14.1742 7.28322 14.2551C7.24969 14.3361 7.20056 14.4096 7.13862 14.4715C7.07669 14.5335 7.00315 14.5826 6.92223 14.6161C6.8413 14.6496 6.75457 14.6669 6.66697 14.6669C6.57938 14.6669 6.49264 14.6496 6.41172 14.6161C6.33079 14.5826 6.25726 14.5335 6.19532 14.4715L0.195518 8.47172C0.133536 8.40981 0.0843647 8.33629 0.0508163 8.25536C0.0172679 8.17443 0 8.08768 0 8.00007C0 7.91246 0.0172679 7.82572 0.0508163 7.74479C0.0843647 7.66386 0.133536 7.59033 0.195518 7.52842L6.19532 1.52862C6.32041 1.40353 6.49007 1.33325 6.66697 1.33325C6.84388 1.33325 7.01353 1.40353 7.13862 1.52862C7.26371 1.65371 7.33399 1.82336 7.33399 2.00027C7.33399 2.17717 7.26371 2.34683 7.13862 2.47192L2.27628 7.33343H15.3334C15.5102 7.33343 15.6797 7.40366 15.8047 7.52868C15.9298 7.6537 16 7.82327 16 8.00007Z\\\"/>\\n</svg>\\n\"","export default \"<svg fill=\\\"currentColor\\\" width=\\\"16\\\" height=\\\"17\\\" viewBox=\\\"0 0 16 17\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M8.00251 1.90538e-07C6.6212 -0.00030123 5.26334 0.357025 4.0611 1.0372C2.85886 1.71737 1.85319 2.69722 1.14199 3.88137C0.430785 5.06552 0.0382741 6.41363 0.00266021 7.79449C-0.0329537 9.17534 0.289543 10.5419 0.938759 11.7611L0.0655986 14.3806C-0.00672782 14.5975 -0.0172241 14.8302 0.0352863 15.0527C0.0877968 15.2752 0.201239 15.4787 0.362897 15.6404C0.524556 15.802 0.728043 15.9155 0.95055 15.968C1.17306 16.0205 1.40579 16.01 1.62267 15.9377L4.24215 15.0645C5.31516 15.6352 6.50407 15.954 7.71866 15.9966C8.93325 16.0392 10.1416 15.8046 11.252 15.3105C12.3623 14.8164 13.3455 14.0758 14.127 13.145C14.9084 12.2142 15.4675 11.1176 15.7618 9.93844C16.0562 8.75928 16.078 7.52857 15.8257 6.33971C15.5734 5.15086 15.0535 4.03511 14.3056 3.07715C13.5577 2.1192 12.6014 1.34422 11.5092 0.811043C10.4171 0.277864 9.21785 0.000498686 8.00251 1.90538e-07ZM10.4643 9.8471H5.54074C5.37751 9.8471 5.22097 9.78226 5.10555 9.66684C4.99014 9.55142 4.9253 9.39488 4.9253 9.23166C4.9253 9.06843 4.99014 8.91189 5.10555 8.79647C5.22097 8.68105 5.37751 8.61621 5.54074 8.61621H10.4643C10.6275 8.61621 10.7841 8.68105 10.8995 8.79647C11.0149 8.91189 11.0797 9.06843 11.0797 9.23166C11.0797 9.39488 11.0149 9.55142 10.8995 9.66684C10.7841 9.78226 10.6275 9.8471 10.4643 9.8471ZM10.4643 7.38532H5.54074C5.37751 7.38532 5.22097 7.32048 5.10555 7.20506C4.99014 7.08965 4.9253 6.93311 4.9253 6.76988C4.9253 6.60665 4.99014 6.45011 5.10555 6.3347C5.22097 6.21928 5.37751 6.15444 5.54074 6.15444H10.4643C10.6275 6.15444 10.7841 6.21928 10.8995 6.3347C11.0149 6.45011 11.0797 6.60665 11.0797 6.76988C11.0797 6.93311 11.0149 7.08965 10.8995 7.20506C10.7841 7.32048 10.6275 7.38532 10.4643 7.38532Z\\\"/>\\n</svg>\\n\"","export default \"<svg fill=\\\"currentColor\\\" width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M14.1538 1.23077H12.3077V0.615385C12.3077 0.452174 12.2428 0.295649 12.1274 0.180242C12.012 0.064835 11.8555 0 11.6923 0C11.5291 0 11.3725 0.064835 11.2571 0.180242C11.1417 0.295649 11.0769 0.452174 11.0769 0.615385V1.23077H4.92305V0.615385C4.92305 0.452174 4.85821 0.295649 4.74281 0.180242C4.6274 0.064835 4.47087 0 4.30766 0C4.14445 0 3.98793 0.064835 3.87252 0.180242C3.75711 0.295649 3.69228 0.452174 3.69228 0.615385V1.23077H1.84613C1.51971 1.23077 1.20665 1.36044 0.97584 1.59125C0.745026 1.82207 0.615356 2.13512 0.615356 2.46154V14.7692C0.615356 15.0957 0.745026 15.4087 0.97584 15.6395C1.20665 15.8703 1.51971 16 1.84613 16H14.1538C14.4802 16 14.7933 15.8703 15.0241 15.6395C15.2549 15.4087 15.3846 15.0957 15.3846 14.7692V2.46154C15.3846 2.13512 15.2549 1.82207 15.0241 1.59125C14.7933 1.36044 14.4802 1.23077 14.1538 1.23077ZM3.69228 2.46154V3.07692C3.69228 3.24013 3.75711 3.39666 3.87252 3.51207C3.98793 3.62747 4.14445 3.69231 4.30766 3.69231C4.47087 3.69231 4.6274 3.62747 4.74281 3.51207C4.85821 3.39666 4.92305 3.24013 4.92305 3.07692V2.46154H11.0769V3.07692C11.0769 3.24013 11.1417 3.39666 11.2571 3.51207C11.3725 3.62747 11.5291 3.69231 11.6923 3.69231C11.8555 3.69231 12.012 3.62747 12.1274 3.51207C12.2428 3.39666 12.3077 3.24013 12.3077 3.07692V2.46154H14.1538V4.92308H1.84613V2.46154H3.69228ZM14.1538 14.7692H1.84613V6.15385H14.1538V14.7692ZM6.7692 8V12.9231C6.7692 13.0863 6.70437 13.2428 6.58896 13.3582C6.47355 13.4736 6.31703 13.5385 6.15382 13.5385C5.99061 13.5385 5.83408 13.4736 5.71868 13.3582C5.60327 13.2428 5.53843 13.0863 5.53843 12.9231V8.99539L5.19843 9.16615C5.05236 9.23919 4.88326 9.25121 4.72832 9.19956C4.57339 9.14792 4.44532 9.03684 4.37228 8.89077C4.29924 8.7447 4.28722 8.57559 4.33887 8.42066C4.39051 8.26573 4.50159 8.13765 4.64766 8.06462L5.87843 7.44923C5.97229 7.40227 6.0766 7.38008 6.18144 7.3848C6.28629 7.38951 6.38818 7.42095 6.47745 7.47615C6.56671 7.53134 6.64038 7.60845 6.69145 7.70013C6.74251 7.79182 6.76928 7.89505 6.7692 8ZM11.32 10.3423L9.84612 12.3077H11.0769C11.2401 12.3077 11.3966 12.3725 11.512 12.4879C11.6274 12.6033 11.6923 12.7599 11.6923 12.9231C11.6923 13.0863 11.6274 13.2428 11.512 13.3582C11.3966 13.4736 11.2401 13.5385 11.0769 13.5385H8.61536C8.50107 13.5385 8.38904 13.5066 8.29183 13.4466C8.19461 13.3865 8.11605 13.3005 8.06494 13.1983C8.01383 13.0961 7.99219 12.9816 8.00246 12.8678C8.01272 12.754 8.05448 12.6453 8.12305 12.5538L10.3369 9.60231C10.3873 9.53527 10.4234 9.45865 10.4431 9.37715C10.4627 9.29565 10.4656 9.21098 10.4513 9.12836C10.4371 9.04573 10.4062 8.96687 10.3604 8.89664C10.3146 8.8264 10.2549 8.76626 10.1851 8.71991C10.1152 8.67356 10.0366 8.64198 9.95408 8.6271C9.87156 8.61222 9.78688 8.61436 9.70523 8.63338C9.62357 8.6524 9.54666 8.68791 9.47922 8.73773C9.41178 8.78755 9.35524 8.85062 9.31305 8.92308C9.27383 8.99529 9.22055 9.05893 9.15635 9.11022C9.09214 9.16151 9.01831 9.19942 8.93922 9.22172C8.86012 9.24401 8.77736 9.25024 8.69582 9.24004C8.61428 9.22983 8.53561 9.2034 8.46445 9.16229C8.39329 9.12119 8.33109 9.06625 8.2815 9.00072C8.23192 8.93519 8.19597 8.86038 8.17576 8.78073C8.15555 8.70108 8.15151 8.61818 8.16386 8.53694C8.17621 8.45569 8.2047 8.37774 8.24766 8.30769C8.45094 7.95591 8.76459 7.68102 9.13998 7.52562C9.51538 7.37021 9.93155 7.34298 10.324 7.44815C10.7164 7.55331 11.0632 7.785 11.3106 8.10729C11.558 8.42958 11.6921 8.82448 11.6923 9.23077C11.6936 9.63211 11.5627 10.0227 11.32 10.3423Z\\\"/>\\n</svg>\\n\"","export default \"<svg fill=\\\"currentColor\\\" width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M15.7867 4.87812L8.51454 12.1503C8.447 12.2179 8.36679 12.2716 8.27851 12.3082C8.19023 12.3448 8.0956 12.3636 8.00003 12.3636C7.90446 12.3636 7.80983 12.3448 7.72155 12.3082C7.63327 12.2716 7.55306 12.2179 7.48552 12.1503L0.213345 4.87812C0.111526 4.77642 0.0421733 4.64679 0.014066 4.50565C-0.0140413 4.36451 0.000361008 4.2182 0.0554496 4.08525C0.110538 3.95229 0.203836 3.83868 0.323531 3.75878C0.443227 3.67888 0.583938 3.63629 0.727852 3.6364L15.2722 3.6364C15.4161 3.63629 15.5568 3.67888 15.6765 3.75878C15.7962 3.83868 15.8895 3.95229 15.9446 4.08525C15.9997 4.2182 16.0141 4.36451 15.986 4.50565C15.9579 4.64679 15.8885 4.77642 15.7867 4.87812Z\\\"/>\\n</svg>\\n\"","export default \"<svg fill=\\\"currentColor\\\" width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M8 0C6.41775 0 4.87103 0.469192 3.55544 1.34824C2.23985 2.22729 1.21447 3.47672 0.608967 4.93853C0.00346628 6.40034 -0.15496 8.00887 0.153721 9.56072C0.462403 11.1126 1.22433 12.538 2.34315 13.6569C3.46197 14.7757 4.88743 15.5376 6.43928 15.8463C7.99113 16.155 9.59966 15.9965 11.0615 15.391C12.5233 14.7855 13.7727 13.7602 14.6518 12.4446C15.5308 11.129 16 9.58225 16 8C15.9978 5.87895 15.1542 3.84542 13.6544 2.34562C12.1546 0.845814 10.121 0.00223986 8 0ZM11.5123 6.58923L7.20462 10.8969C7.14746 10.9541 7.07959 10.9995 7.00489 11.0305C6.93018 11.0615 6.8501 11.0774 6.76923 11.0774C6.68836 11.0774 6.60828 11.0615 6.53358 11.0305C6.45887 10.9995 6.391 10.9541 6.33385 10.8969L4.48769 9.05077C4.37222 8.9353 4.30735 8.77868 4.30735 8.61538C4.30735 8.45208 4.37222 8.29547 4.48769 8.18C4.60317 8.06453 4.75978 7.99966 4.92308 7.99966C5.08638 7.99966 5.24299 8.06453 5.35846 8.18L6.76923 9.59154L10.6415 5.71846C10.6987 5.66128 10.7666 5.61593 10.8413 5.58499C10.916 5.55404 10.9961 5.53812 11.0769 5.53812C11.1578 5.53812 11.2378 5.55404 11.3126 5.58499C11.3873 5.61593 11.4551 5.66128 11.5123 5.71846C11.5695 5.77564 11.6148 5.84351 11.6458 5.91822C11.6767 5.99292 11.6927 6.07299 11.6927 6.15384C11.6927 6.2347 11.6767 6.31477 11.6458 6.38947C11.6148 6.46418 11.5695 6.53205 11.5123 6.58923Z\\\"/>\\n</svg>\\n\"","export default \"<svg fill=\\\"currentColor\\\" width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M15.8125 3.33285L5.57291 13.5724C5.51347 13.6319 5.44289 13.6791 5.3652 13.7113C5.28751 13.7435 5.20423 13.7601 5.12013 13.7601C5.03603 13.7601 4.95275 13.7435 4.87506 13.7113C4.79737 13.6791 4.72678 13.6319 4.66735 13.5724L0.187547 9.0926C0.0674628 8.97251 0 8.80964 0 8.63982C0 8.46999 0.0674628 8.30712 0.187547 8.18704C0.307632 8.06695 0.470502 7.99949 0.640327 7.99949C0.810153 7.99949 0.973022 8.06695 1.09311 8.18704L5.12013 12.2149L14.9069 2.42729C15.027 2.30721 15.1898 2.23975 15.3597 2.23975C15.5295 2.23975 15.6924 2.30721 15.8125 2.42729C15.9325 2.54738 16 2.71025 16 2.88007C16 3.0499 15.9325 3.21277 15.8125 3.33285Z\\\"/>\\n</svg>\\n\"","export default \"<svg fill=\\\"currentColor\\\" width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M15.7656 14.6336C15.8399 14.708 15.8988 14.7962 15.9391 14.8933C15.9793 14.9904 16 15.0945 16 15.1996C16 15.3047 15.9793 15.4088 15.9391 15.5059C15.8988 15.603 15.8399 15.6912 15.7656 15.7656C15.6912 15.8399 15.603 15.8988 15.5059 15.9391C15.4088 15.9793 15.3047 16 15.1996 16C15.0945 16 14.9904 15.9793 14.8933 15.9391C14.7962 15.8988 14.708 15.8399 14.6336 15.7656L8 9.13094L1.36637 15.7656C1.21626 15.9157 1.01268 16 0.8004 16C0.588121 16 0.384536 15.9157 0.234432 15.7656C0.0843276 15.6155 4.18453e-09 15.4119 0 15.1996C-4.18453e-09 14.9873 0.0843276 14.7837 0.234432 14.6336L6.86906 8L0.234432 1.36637C0.0843276 1.21626 0 1.01268 0 0.8004C0 0.588121 0.0843276 0.384536 0.234432 0.234432C0.384536 0.0843276 0.588121 0 0.8004 0C1.01268 0 1.21626 0.0843276 1.36637 0.234432L8 6.86906L14.6336 0.234432C14.7837 0.0843276 14.9873 -4.18453e-09 15.1996 0C15.4119 4.18453e-09 15.6155 0.0843276 15.7656 0.234432C15.9157 0.384536 16 0.588121 16 0.8004C16 1.01268 15.9157 1.21626 15.7656 1.36637L9.13094 8L15.7656 14.6336Z\\\"/>\\n</svg>\\n\"","export default \"<svg fill=\\\"currentColor\\\" width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M4.195 7.13833C4.10166 7.0451 4.03808 6.92626 4.01231 6.79687C3.98655 6.66748 3.99975 6.53336 4.05025 6.41147C4.10075 6.28959 4.18628 6.18543 4.29601 6.11219C4.40574 6.03894 4.53474 5.9999 4.66667 6H7.33333V0.666667C7.33333 0.489856 7.40357 0.320287 7.5286 0.195262C7.65362 0.070238 7.82319 0 8 0C8.17681 0 8.34638 0.070238 8.47141 0.195262C8.59643 0.320287 8.66667 0.489856 8.66667 0.666667V6H11.3333C11.4653 5.9999 11.5943 6.03894 11.704 6.11219C11.8137 6.18543 11.8992 6.28959 11.9497 6.41147C12.0002 6.53336 12.0135 6.66748 11.9877 6.79687C11.9619 6.92626 11.8983 7.0451 11.805 7.13833L8.47167 10.4717C8.40975 10.5337 8.33623 10.5828 8.25529 10.6164C8.17436 10.6499 8.08761 10.6672 8 10.6672C7.91239 10.6672 7.82564 10.6499 7.74471 10.6164C7.66377 10.5828 7.59025 10.5337 7.52833 10.4717L4.195 7.13833ZM15.3333 9.33333C15.1565 9.33333 14.987 9.40357 14.8619 9.52859C14.7369 9.65362 14.6667 9.82319 14.6667 10V14.6667H1.33333V10C1.33333 9.82319 1.2631 9.65362 1.13807 9.52859C1.01305 9.40357 0.843478 9.33333 0.666667 9.33333C0.489856 9.33333 0.320287 9.40357 0.195262 9.52859C0.070238 9.65362 0 9.82319 0 10V14.6667C0 15.0203 0.140476 15.3594 0.390524 15.6095C0.640573 15.8595 0.979711 16 1.33333 16H14.6667C15.0203 16 15.3594 15.8595 15.6095 15.6095C15.8595 15.3594 16 15.0203 16 14.6667V10C16 9.82319 15.9298 9.65362 15.8047 9.52859C15.6797 9.40357 15.5101 9.33333 15.3333 9.33333Z\\\"/>\\n</svg>\\n\"","export default \"<svg fill=\\\"currentColor\\\" width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M15.6243 3.95007L12.05 0.374994C11.9311 0.256108 11.79 0.161801 11.6347 0.0974588C11.4794 0.0331167 11.3129 0 11.1448 0C10.9767 0 10.8103 0.0331167 10.6549 0.0974588C10.4996 0.161801 10.3585 0.256108 10.2397 0.374994L0.375194 10.2403C0.255821 10.3587 0.16118 10.4997 0.0967705 10.655C0.0323612 10.8103 -0.000530733 10.9769 6.47574e-06 11.145V14.7201C6.47574e-06 15.0596 0.134859 15.3851 0.374897 15.6252C0.614935 15.8652 0.940497 16.0001 1.27996 16.0001H4.85504C5.02319 16.0006 5.18977 15.9677 5.34509 15.9033C5.50041 15.8389 5.64139 15.7442 5.75981 15.6249L15.6243 5.76041C15.7432 5.64155 15.8375 5.50044 15.9018 5.34513C15.9662 5.18982 15.9993 5.02335 15.9993 4.85524C15.9993 4.68713 15.9662 4.52067 15.9018 4.36535C15.8375 4.21004 15.7432 4.06893 15.6243 3.95007ZM4.85504 14.7201H1.27996V11.145L8.31972 4.10527L11.8948 7.68034L4.85504 14.7201ZM12.7996 6.77478L9.22449 3.2005L11.1444 1.28056L14.7195 4.85484L12.7996 6.77478Z\\\"/>\\n</svg>\\n\"","export default \"<svg fill=\\\"currentColor\\\" width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M10.0741 7.99998C10.0741 8.41019 9.95243 8.81119 9.72453 9.15227C9.49663 9.49335 9.1727 9.75919 8.79371 9.91617C8.41473 10.0732 7.9977 10.1142 7.59537 10.0342C7.19304 9.95417 6.82347 9.75663 6.53341 9.46657C6.24334 9.1765 6.04581 8.80694 5.96578 8.40461C5.88575 8.00228 5.92682 7.58525 6.08381 7.20626C6.24079 6.82728 6.50663 6.50335 6.84771 6.27545C7.18879 6.04755 7.58979 5.9259 8 5.9259C8.55008 5.9259 9.07763 6.14442 9.46659 6.53339C9.85556 6.92235 10.0741 7.4499 10.0741 7.99998ZM2.07407 5.9259C1.66386 5.9259 1.26286 6.04755 0.921781 6.27545C0.580702 6.50335 0.314862 6.82728 0.15788 7.20626C0.000898661 7.58525 -0.0401749 8.00228 0.0398537 8.40461C0.119882 8.80694 0.317419 9.1765 0.607483 9.46657C0.897548 9.75663 1.26711 9.95417 1.66944 10.0342C2.07177 10.1142 2.4888 10.0732 2.86779 9.91617C3.24678 9.75919 3.5707 9.49335 3.7986 9.15227C4.02651 8.81119 4.14815 8.41019 4.14815 7.99998C4.14815 7.4499 3.92963 6.92235 3.54067 6.53339C3.1517 6.14442 2.62415 5.9259 2.07407 5.9259ZM13.9259 5.9259C13.5157 5.9259 13.1147 6.04755 12.7736 6.27545C12.4326 6.50335 12.1667 6.82728 12.0097 7.20626C11.8527 7.58525 11.8117 8.00228 11.8917 8.40461C11.9717 8.80694 12.1693 9.1765 12.4593 9.46657C12.7494 9.75663 13.119 9.95417 13.5213 10.0342C13.9236 10.1142 14.3407 10.0732 14.7196 9.91617C15.0986 9.75919 15.4226 9.49335 15.6505 9.15227C15.8784 8.81119 16 8.41019 16 7.99998C16 7.72761 15.9464 7.4579 15.8421 7.20626C15.7379 6.95463 15.5851 6.72598 15.3925 6.53339C15.1999 6.34079 14.9713 6.18801 14.7196 6.08378C14.468 5.97955 14.1983 5.9259 13.9259 5.9259Z\\\"/>\\n</svg>\\n\"","export default \"<svg fill=\\\"currentColor\\\" width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M15.3846 1.84619H0.615385C0.452174 1.84619 0.295649 1.91103 0.180242 2.02643C0.064835 2.14184 0 2.29837 0 2.46158V12.9231C0 13.2495 0.12967 13.5626 0.360484 13.7934C0.591298 14.0242 0.904349 14.1539 1.23077 14.1539H14.7692C15.0957 14.1539 15.4087 14.0242 15.6395 13.7934C15.8703 13.5626 16 13.2495 16 12.9231V2.46158C16 2.29837 15.9352 2.14184 15.8198 2.02643C15.7044 1.91103 15.5478 1.84619 15.3846 1.84619ZM5.74692 8.00004L1.23077 12.1393V3.86081L5.74692 8.00004ZM6.65769 8.83465L7.58077 9.68465C7.6943 9.78887 7.84281 9.8467 7.99692 9.8467C8.15104 9.8467 8.29954 9.78887 8.41308 9.68465L9.33615 8.83465L13.7977 12.9231H2.19769L6.65769 8.83465ZM10.2531 8.00004L14.7692 3.86004V12.14L10.2531 8.00004Z\\\"/>\\n</svg>\\n\"","export default \"<svg fill=\\\"currentColor\\\" width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M15.3846 1.84619H0.615385C0.452174 1.84619 0.295649 1.91103 0.180242 2.02643C0.064835 2.14184 0 2.29837 0 2.46158V12.9231C0 13.2495 0.12967 13.5626 0.360484 13.7934C0.591298 14.0242 0.904349 14.1539 1.23077 14.1539H14.7692C15.0957 14.1539 15.4087 14.0242 15.6395 13.7934C15.8703 13.5626 16 13.2495 16 12.9231V2.46158C16 2.29837 15.9352 2.14184 15.8198 2.02643C15.7044 1.91103 15.5478 1.84619 15.3846 1.84619ZM8 8.39619L2.19769 3.07696H13.8023L8 8.39619ZM5.74692 8.00004L1.23077 12.1393V3.86081L5.74692 8.00004ZM6.65769 8.83465L7.58077 9.68465C7.6943 9.78887 7.84281 9.8467 7.99692 9.8467C8.15104 9.8467 8.29954 9.78887 8.41308 9.68465L9.33615 8.83465L13.7977 12.9231H2.19769L6.65769 8.83465ZM10.2531 8.00004L14.7692 3.86004V12.14L10.2531 8.00004Z\\\"/>\\n</svg>\\n\"","export default \"<svg fill=\\\"currentColor\\\" width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M8 0C6.41775 0 4.87103 0.469192 3.55544 1.34824C2.23985 2.22729 1.21447 3.47672 0.608967 4.93853C0.00346628 6.40034 -0.15496 8.00887 0.153721 9.56072C0.462403 11.1126 1.22433 12.538 2.34315 13.6569C3.46197 14.7757 4.88743 15.5376 6.43928 15.8463C7.99113 16.155 9.59966 15.9965 11.0615 15.391C12.5233 14.7855 13.7727 13.7602 14.6518 12.4446C15.5308 11.129 16 9.58225 16 8C15.9978 5.87895 15.1542 3.84542 13.6544 2.34562C12.1546 0.845814 10.121 0.00223986 8 0ZM8 14.7692C6.66117 14.7692 5.35241 14.3722 4.23922 13.6284C3.12603 12.8846 2.2584 11.8274 1.74605 10.5905C1.2337 9.35356 1.09965 7.99249 1.36084 6.67939C1.62203 5.36629 2.26674 4.16012 3.21343 3.21343C4.16013 2.26674 5.36629 1.62203 6.67939 1.36084C7.99249 1.09965 9.35356 1.2337 10.5905 1.74605C11.8274 2.25839 12.8846 3.12602 13.6284 4.23922C14.3722 5.35241 14.7692 6.66117 14.7692 8C14.7672 9.79468 14.0534 11.5153 12.7843 12.7843C11.5153 14.0534 9.79469 14.7672 8 14.7692ZM7.38462 8.61538V4.30769C7.38462 4.14448 7.44945 3.98796 7.56486 3.87255C7.68027 3.75714 7.83679 3.69231 8 3.69231C8.16321 3.69231 8.31974 3.75714 8.43514 3.87255C8.55055 3.98796 8.61539 4.14448 8.61539 4.30769V8.61538C8.61539 8.77859 8.55055 8.93512 8.43514 9.05053C8.31974 9.16593 8.16321 9.23077 8 9.23077C7.83679 9.23077 7.68027 9.16593 7.56486 9.05053C7.44945 8.93512 7.38462 8.77859 7.38462 8.61538ZM8.92308 11.3846C8.92308 11.5672 8.86894 11.7456 8.76751 11.8974C8.66608 12.0492 8.52192 12.1676 8.35325 12.2374C8.18458 12.3073 7.99898 12.3256 7.81992 12.29C7.64086 12.2543 7.47638 12.1664 7.34729 12.0373C7.21819 11.9082 7.13028 11.7438 7.09466 11.5647C7.05904 11.3856 7.07732 11.2 7.14719 11.0314C7.21706 10.8627 7.33537 10.7185 7.48717 10.6171C7.63897 10.5157 7.81743 10.4615 8 10.4615C8.24482 10.4615 8.4796 10.5588 8.65271 10.7319C8.82583 10.905 8.92308 11.1398 8.92308 11.3846Z\\\"/>\\n</svg>\\n\"","export default \"<svg fill=\\\"currentColor\\\" width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M16 6C16 6.17681 15.9298 6.34638 15.8047 6.4714C15.6797 6.59643 15.5101 6.66667 15.3333 6.66667C15.1565 6.66667 14.987 6.59643 14.8619 6.4714C14.7369 6.34638 14.6667 6.17681 14.6667 6V2.27667L9.13917 7.805C9.01407 7.93009 8.84441 8.00037 8.6675 8.00037C8.49059 8.00037 8.32093 7.93009 8.19583 7.805C8.07074 7.67991 8.00046 7.51024 8.00046 7.33333C8.00046 7.15642 8.07074 6.98676 8.19583 6.86167L13.7233 1.33333H10C9.82319 1.33333 9.65362 1.2631 9.52859 1.13807C9.40357 1.01305 9.33333 0.843478 9.33333 0.666667C9.33333 0.489856 9.40357 0.320287 9.52859 0.195262C9.65362 0.070238 9.82319 0 10 0H15.3333C15.5101 0 15.6797 0.070238 15.8047 0.195262C15.9298 0.320287 16 0.489856 16 0.666667V6ZM12.6667 8C12.4899 8 12.3203 8.07024 12.1953 8.19526C12.0702 8.32029 12 8.48986 12 8.66667V14.6667H1.33333V4H7.33333C7.51014 4 7.67971 3.92976 7.80474 3.80474C7.92976 3.67971 8 3.51014 8 3.33333C8 3.15652 7.92976 2.98695 7.80474 2.86193C7.67971 2.7369 7.51014 2.66667 7.33333 2.66667H1.33333C0.979711 2.66667 0.640573 2.80714 0.390524 3.05719C0.140476 3.30724 0 3.64638 0 4V14.6667C0 15.0203 0.140476 15.3594 0.390524 15.6095C0.640573 15.8595 0.979711 16 1.33333 16H12C12.3536 16 12.6928 15.8595 12.9428 15.6095C13.1929 15.3594 13.3333 15.0203 13.3333 14.6667V8.66667C13.3333 8.48986 13.2631 8.32029 13.1381 8.19526C13.013 8.07024 12.8435 8 12.6667 8Z\\\"/>\\n</svg>\\n\"","export default \"<svg fill=\\\"currentColor\\\" width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M14.7985 1.20265C14.0284 0.432604 12.984 0 11.895 0C10.8059 0 9.76152 0.432604 8.99146 1.20265L1.16604 9.0273C0.412088 9.80065 -0.0068122 10.8399 8.3812e-05 11.9199C0.00697982 13 0.439117 14.0338 1.20288 14.7975C1.96664 15.5611 3.00052 15.9931 4.08055 15.9999C5.16058 16.0066 6.19979 15.5876 6.97304 14.8335L14.7992 7.00888C15.568 6.23824 15.9997 5.19412 15.9995 4.1056C15.9994 3.01708 15.5674 1.97308 14.7985 1.20265ZM6.10106 13.9616C5.56237 14.5003 4.83171 14.8031 4.06981 14.8031C3.30791 14.8032 2.57719 14.5006 2.0384 13.9619C1.4996 13.4232 1.19687 12.6926 1.1968 11.9307C1.19673 11.1688 1.49932 10.4381 2.03801 9.89927L5.51435 6.42293L9.5774 10.4852L6.10106 13.9616ZM13.9265 6.1369L10.4486 9.61324L6.38709 5.55096L9.8642 2.07462C10.405 1.54629 11.1323 1.25247 11.8884 1.25688C12.6444 1.2613 13.3683 1.5636 13.9029 2.09822C14.4375 2.63284 14.7398 3.35666 14.7442 4.11271C14.7486 4.86876 14.4548 5.59607 13.9265 6.1369ZM12.7369 4.4978C12.7942 4.55509 12.8397 4.62311 12.8707 4.69799C12.9018 4.77286 12.9178 4.85312 12.9178 4.93418C12.9178 5.01523 12.9018 5.09549 12.8707 5.17037C12.8397 5.24524 12.7942 5.31327 12.7369 5.37055L10.8865 7.2209C10.8292 7.27815 10.7612 7.32356 10.6863 7.35452C10.6115 7.38549 10.5313 7.40141 10.4503 7.40137C10.3693 7.40134 10.289 7.38535 10.2142 7.35432C10.1394 7.32328 10.0714 7.27782 10.0142 7.22051C9.9569 7.1632 9.9115 7.09518 9.88053 7.02033C9.84956 6.94548 9.83364 6.86526 9.83368 6.78425C9.83371 6.70324 9.84971 6.62304 9.88074 6.54821C9.91177 6.47339 9.95724 6.4054 10.0145 6.34815L11.8649 4.4978C11.9805 4.38222 12.1374 4.3173 12.3009 4.3173C12.4644 4.3173 12.6212 4.38222 12.7369 4.4978Z\\\"/>\\n</svg>\\n\"","export default \"<svg fill=\\\"currentColor\\\" width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M8 0C6.41775 0 4.87103 0.469192 3.55544 1.34824C2.23985 2.22729 1.21447 3.47672 0.608967 4.93853C0.00346628 6.40034 -0.15496 8.00887 0.153721 9.56072C0.462403 11.1126 1.22433 12.538 2.34315 13.6569C3.46197 14.7757 4.88743 15.5376 6.43928 15.8463C7.99113 16.155 9.59966 15.9965 11.0615 15.391C12.5233 14.7855 13.7727 13.7602 14.6518 12.4446C15.5308 11.129 16 9.58225 16 8C15.9978 5.87895 15.1542 3.84542 13.6544 2.34562C12.1546 0.845814 10.121 0.00223986 8 0ZM5.97154 11.0769H10.0285C9.61539 12.4877 8.92308 13.7592 8 14.7608C7.07692 13.7592 6.38462 12.4877 5.97154 11.0769ZM5.69231 9.84615C5.48821 8.62384 5.48821 7.37615 5.69231 6.15384H10.3077C10.5118 7.37615 10.5118 8.62384 10.3077 9.84615H5.69231ZM1.23077 8C1.23024 7.37572 1.31645 6.75439 1.48693 6.15384H4.44539C4.2618 7.37777 4.2618 8.62223 4.44539 9.84615H1.48693C1.31645 9.2456 1.23024 8.62428 1.23077 8ZM10.0285 4.92308H5.97154C6.38462 3.51231 7.07692 2.24077 8 1.23923C8.92308 2.24077 9.61539 3.51231 10.0285 4.92308ZM11.5546 6.15384H14.5131C14.8546 7.36092 14.8546 8.63908 14.5131 9.84615H11.5546C11.7382 8.62223 11.7382 7.37777 11.5546 6.15384ZM14.0285 4.92308H11.3031C10.989 3.68732 10.4616 2.51588 9.74462 1.46154C10.6607 1.70771 11.515 2.14286 12.2528 2.73902C12.9906 3.33518 13.5954 4.07915 14.0285 4.92308ZM6.25539 1.46154C5.53838 2.51588 5.01097 3.68732 4.69693 4.92308H1.97154C2.40456 4.07915 3.00941 3.33518 3.74719 2.73902C4.48497 2.14286 5.33935 1.70771 6.25539 1.46154ZM1.97154 11.0769H4.69693C5.01097 12.3127 5.53838 13.4841 6.25539 14.5385C5.33935 14.2923 4.48497 13.8571 3.74719 13.261C3.00941 12.6648 2.40456 11.9208 1.97154 11.0769ZM9.74462 14.5385C10.4616 13.4841 10.989 12.3127 11.3031 11.0769H14.0285C13.5954 11.9208 12.9906 12.6648 12.2528 13.261C11.515 13.8571 10.6607 14.2923 9.74462 14.5385Z\\\"/>\\n</svg>\\n\"","export default \"<svg fill=\\\"currentColor\\\" width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M15.3525 9.13707C15.1781 9.00269 14.9782 8.9052 14.765 8.85054C14.5517 8.79588 14.3296 8.78519 14.1121 8.81913C15.3639 7.55536 15.9971 6.29893 15.9971 5.06715C15.9971 3.30281 14.578 1.86774 12.8336 1.86774C12.3708 1.86483 11.9129 1.96327 11.4922 2.15614C11.0714 2.34902 10.698 2.63165 10.3981 2.9842C10.0982 2.63165 9.72476 2.34902 9.30401 2.15614C8.88325 1.96327 8.42538 1.86483 7.96254 1.86774C6.21819 1.86774 4.79912 3.30281 4.79912 5.06715C4.79912 5.80035 5.01508 6.51289 5.46966 7.26675C5.09736 7.36107 4.75759 7.55457 4.48651 7.82665L2.97879 9.33304H1.06647C0.783625 9.33304 0.512364 9.4454 0.312362 9.6454C0.11236 9.8454 0 10.1167 0 10.3995L0 13.0657C0 13.3485 0.11236 13.6198 0.312362 13.8198C0.512364 14.0198 0.783625 14.1322 1.06647 14.1322H7.99853C8.04213 14.1322 8.08557 14.1268 8.12784 14.1162L12.3937 13.0497C12.4209 13.0432 12.4475 13.0343 12.473 13.023L15.0639 11.9206L15.0932 11.9072C15.3422 11.7828 15.5555 11.597 15.7128 11.3674C15.8702 11.1378 15.9665 10.8719 15.9927 10.5948C16.0189 10.3177 15.9741 10.0385 15.8626 9.78344C15.7511 9.52841 15.5764 9.30597 15.3552 9.13707H15.3525ZM7.96254 2.93421C8.37554 2.92817 8.78096 3.04544 9.12695 3.27104C9.47294 3.49663 9.74379 3.8203 9.90485 4.20064C9.94503 4.29845 10.0134 4.3821 10.1012 4.44097C10.189 4.49984 10.2924 4.53127 10.3981 4.53127C10.5038 4.53127 10.6072 4.49984 10.695 4.44097C10.7828 4.3821 10.8512 4.29845 10.8913 4.20064C11.0524 3.8203 11.3232 3.49663 11.6692 3.27104C12.0152 3.04544 12.4206 2.92817 12.8336 2.93421C13.9701 2.93421 14.9306 3.9107 14.9306 5.06715C14.9306 6.36758 13.8781 7.83864 11.8872 9.32637L11.148 9.49634C11.2128 9.22225 11.2148 8.93703 11.1538 8.66206C11.0928 8.38709 10.9703 8.12949 10.7956 7.90858C10.6208 7.68768 10.3984 7.50918 10.1448 7.38649C9.8913 7.26379 9.61329 7.20006 9.33162 7.20009H6.71077C6.13554 6.42424 5.86559 5.74169 5.86559 5.06715C5.86559 3.9107 6.82608 2.93421 7.96254 2.93421ZM1.06647 10.3995H2.66618V13.0657H1.06647V10.3995ZM14.626 10.9467L12.0931 12.0252L7.93188 13.0657H3.73265V10.0869L5.24104 8.57917C5.33971 8.47971 5.45717 8.40086 5.58659 8.34719C5.716 8.29352 5.8548 8.26612 5.9949 8.26657H9.33162C9.54376 8.26657 9.7472 8.35084 9.8972 8.50084C10.0472 8.65084 10.1315 8.85428 10.1315 9.06642C10.1315 9.27855 10.0472 9.482 9.8972 9.632C9.7472 9.782 9.54376 9.86627 9.33162 9.86627H7.4653C7.32388 9.86627 7.18825 9.92245 7.08824 10.0225C6.98824 10.1225 6.93206 10.2581 6.93206 10.3995C6.93206 10.5409 6.98824 10.6766 7.08824 10.7766C7.18825 10.8766 7.32388 10.9327 7.4653 10.9327H9.59824C9.63838 10.9326 9.67838 10.9282 9.71755 10.9194L14.1834 9.89227L14.2041 9.88694C14.3404 9.84909 14.4859 9.863 14.6126 9.92598C14.7393 9.98897 14.8382 10.0966 14.8903 10.2281C14.9424 10.3597 14.9441 10.5058 14.8949 10.6385C14.8457 10.7711 14.7492 10.8809 14.624 10.9467H14.626Z\\\"/>\\n</svg>\\n\"","export default \"<svg fill=\\\"currentColor\\\" width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M8.92308 12C8.92308 12.1826 8.86894 12.361 8.76751 12.5128C8.66608 12.6646 8.52192 12.7829 8.35325 12.8528C8.18458 12.9227 7.99898 12.941 7.81992 12.9053C7.64086 12.8697 7.47638 12.7818 7.34729 12.6527C7.21819 12.5236 7.13028 12.3591 7.09466 12.1801C7.05904 12.001 7.07732 11.8154 7.14719 11.6468C7.21706 11.4781 7.33537 11.3339 7.48717 11.2325C7.63897 11.1311 7.81743 11.0769 8 11.0769C8.24482 11.0769 8.4796 11.1742 8.65271 11.3473C8.82583 11.5204 8.92308 11.7552 8.92308 12ZM8 3.69231C6.30308 3.69231 4.92308 4.93461 4.92308 6.46154V6.76923C4.92308 6.93244 4.98791 7.08896 5.10332 7.20437C5.21873 7.31978 5.37525 7.38461 5.53846 7.38461C5.70167 7.38461 5.8582 7.31978 5.97361 7.20437C6.08901 7.08896 6.15385 6.93244 6.15385 6.76923V6.46154C6.15385 5.61538 6.98231 4.92308 8 4.92308C9.01769 4.92308 9.84616 5.61538 9.84616 6.46154C9.84616 7.30769 9.01769 8 8 8C7.83679 8 7.68027 8.06483 7.56486 8.18024C7.44945 8.29565 7.38462 8.45217 7.38462 8.61538V9.23077C7.38462 9.39398 7.44945 9.5505 7.56486 9.66591C7.68027 9.78132 7.83679 9.84615 8 9.84615C8.16321 9.84615 8.31974 9.78132 8.43514 9.66591C8.55055 9.5505 8.61539 9.39398 8.61539 9.23077V9.17538C10.0185 8.91769 11.0769 7.79846 11.0769 6.46154C11.0769 4.93461 9.69692 3.69231 8 3.69231ZM16 8C16 9.58225 15.5308 11.129 14.6518 12.4446C13.7727 13.7602 12.5233 14.7855 11.0615 15.391C9.59966 15.9965 7.99113 16.155 6.43928 15.8463C4.88743 15.5376 3.46197 14.7757 2.34315 13.6569C1.22433 12.538 0.462403 11.1126 0.153721 9.56072C-0.15496 8.00887 0.00346628 6.40034 0.608967 4.93853C1.21447 3.47672 2.23985 2.22729 3.55544 1.34824C4.87103 0.469192 6.41775 0 8 0C10.121 0.00223986 12.1546 0.845814 13.6544 2.34562C15.1542 3.84542 15.9978 5.87895 16 8ZM14.7692 8C14.7692 6.66117 14.3722 5.35241 13.6284 4.23922C12.8846 3.12602 11.8274 2.25839 10.5905 1.74605C9.35356 1.2337 7.99249 1.09965 6.67939 1.36084C5.36629 1.62203 4.16013 2.26674 3.21343 3.21343C2.26674 4.16012 1.62203 5.36629 1.36084 6.67939C1.09965 7.99249 1.2337 9.35356 1.74605 10.5905C2.2584 11.8274 3.12603 12.8846 4.23922 13.6284C5.35241 14.3722 6.66117 14.7692 8 14.7692C9.79469 14.7672 11.5153 14.0534 12.7843 12.7843C14.0534 11.5153 14.7672 9.79468 14.7692 8Z\\\"/>\\n</svg>\\n\"","export default \"<svg fill=\\\"currentColor\\\" width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M8 0C6.41775 0 4.87103 0.469192 3.55544 1.34824C2.23985 2.22729 1.21447 3.47672 0.608967 4.93853C0.00346628 6.40034 -0.15496 8.00887 0.153721 9.56072C0.462403 11.1126 1.22433 12.538 2.34315 13.6569C3.46197 14.7757 4.88743 15.5376 6.43928 15.8463C7.99113 16.155 9.59966 15.9965 11.0615 15.391C12.5233 14.7855 13.7727 13.7602 14.6518 12.4446C15.5308 11.129 16 9.58225 16 8C15.9978 5.87895 15.1542 3.84542 13.6544 2.34562C12.1546 0.845814 10.121 0.00223986 8 0ZM7.69231 3.69231C7.87488 3.69231 8.05334 3.74644 8.20514 3.84787C8.35694 3.9493 8.47526 4.09347 8.54512 4.26214C8.61499 4.43081 8.63327 4.61641 8.59765 4.79547C8.56203 4.97453 8.47412 5.139 8.34502 5.2681C8.21593 5.39719 8.05145 5.48511 7.87239 5.52072C7.69333 5.55634 7.50773 5.53806 7.33906 5.46819C7.17039 5.39833 7.02623 5.28002 6.9248 5.12822C6.82337 4.97642 6.76923 4.79795 6.76923 4.61538C6.76923 4.37057 6.86649 4.13578 7.0396 3.96267C7.21271 3.78956 7.44749 3.69231 7.69231 3.69231ZM8.61539 12.3077C8.28897 12.3077 7.97591 12.178 7.7451 11.9472C7.51429 11.7164 7.38462 11.4033 7.38462 11.0769V8C7.22141 8 7.06488 7.93516 6.94947 7.81976C6.83407 7.70435 6.76923 7.54782 6.76923 7.38461C6.76923 7.2214 6.83407 7.06488 6.94947 6.94947C7.06488 6.83406 7.22141 6.76923 7.38462 6.76923C7.71104 6.76923 8.02409 6.8989 8.2549 7.12971C8.48572 7.36053 8.61539 7.67358 8.61539 8V11.0769C8.7786 11.0769 8.93512 11.1418 9.05053 11.2572C9.16594 11.3726 9.23077 11.5291 9.23077 11.6923C9.23077 11.8555 9.16594 12.012 9.05053 12.1274C8.93512 12.2429 8.7786 12.3077 8.61539 12.3077Z\\\"/>\\n</svg>\\n\"","export default \"<svg fill=\\\"currentColor\\\" width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M11.4282 15.4286C11.4282 15.5802 11.368 15.7255 11.2609 15.8327C11.1537 15.9398 11.0084 16 10.8569 16H5.14324C4.9917 16 4.84638 15.9398 4.73922 15.8327C4.63207 15.7255 4.57188 15.5802 4.57188 15.4286C4.57188 15.2771 4.63207 15.1318 4.73922 15.0246C4.84638 14.9175 4.9917 14.8573 5.14324 14.8573H10.8569C11.0084 14.8573 11.1537 14.9175 11.2609 15.0246C11.368 15.1318 11.4282 15.2771 11.4282 15.4286ZM14.2851 6.28682C14.2875 7.23931 14.0723 8.17978 13.656 9.03644C13.2396 9.89311 12.633 10.6433 11.8825 11.2298C11.7421 11.3374 11.6283 11.4756 11.5495 11.6339C11.4708 11.7923 11.4293 11.9665 11.4282 12.1433V12.5718C11.4282 12.8749 11.3078 13.1655 11.0935 13.3798C10.8792 13.5942 10.5886 13.7145 10.2855 13.7145H5.7146C5.41153 13.7145 5.12088 13.5942 4.90657 13.3798C4.69227 13.1655 4.57188 12.8749 4.57188 12.5718V12.1433C4.57176 11.9686 4.53159 11.7963 4.45445 11.6395C4.37732 11.4828 4.26527 11.3458 4.12693 11.2391C3.3783 10.6561 2.77211 9.91037 2.35426 9.05844C1.9364 8.20652 1.71782 7.2707 1.71506 6.32182C1.69649 2.91792 4.4476 0.0832435 7.84865 0.00182421C8.68666 -0.0183701 9.52024 0.129276 10.3003 0.436073C11.0804 0.74287 11.7913 1.20262 12.391 1.78826C12.9908 2.3739 13.4673 3.07359 13.7926 3.84616C14.1179 4.61873 14.2853 5.44857 14.2851 6.28682ZM13.1423 6.28682C13.1425 5.60094 13.0055 4.92196 12.7394 4.28983C12.4732 3.6577 12.0833 3.0852 11.5925 2.60604C11.1018 2.12687 10.5201 1.75072 9.88183 1.49973C9.24353 1.24874 8.56146 1.12798 7.87579 1.14455C5.09039 1.21026 2.84279 3.52928 2.85779 6.31468C2.8604 7.09072 3.03948 7.85601 3.38148 8.55263C3.72348 9.24926 4.21945 9.85897 4.83185 10.3356C5.10713 10.5496 5.3298 10.8238 5.48281 11.1371C5.63582 11.4504 5.7151 11.7946 5.7146 12.1433V12.5718H10.2855V12.1433C10.2863 11.7936 10.3669 11.4487 10.5213 11.135C10.6756 10.8212 10.8996 10.5468 11.1761 10.3328C11.7904 9.85272 12.2869 9.23865 12.6276 8.53744C12.9684 7.83624 13.1444 7.06644 13.1423 6.28682ZM11.9917 5.61976C11.8436 4.7922 11.4454 4.02991 10.8509 3.4355C10.2564 2.8411 9.49399 2.44311 8.66641 2.29513C8.59241 2.28266 8.51667 2.28488 8.44353 2.30168C8.37039 2.31847 8.30127 2.34951 8.24013 2.39301C8.17898 2.43652 8.127 2.49164 8.08716 2.55524C8.04731 2.61883 8.02039 2.68965 8.00791 2.76365C7.99544 2.83765 7.99766 2.91339 8.01446 2.98653C8.03125 3.05967 8.06229 3.12879 8.10579 3.18993C8.1493 3.25108 8.20442 3.30306 8.26802 3.3429C8.33161 3.38275 8.40243 3.40967 8.47643 3.42215C9.65987 3.62141 10.664 4.62558 10.8647 5.81116C10.8873 5.94423 10.9563 6.065 11.0595 6.15207C11.1626 6.23914 11.2933 6.28687 11.4282 6.28682C11.4605 6.28663 11.4928 6.284 11.5247 6.27897C11.674 6.25347 11.8071 6.1697 11.8947 6.04608C11.9823 5.92246 12.0172 5.76911 11.9917 5.61976Z\\\"/>\\n</svg>\\n\"","export default \"<svg fill=\\\"currentColor\\\" width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M8.00001 0C6.3335 0.00189054 4.73579 0.664747 3.55738 1.84315C2.37898 3.02155 1.71612 4.61927 1.71423 6.28578C1.71423 11.6644 7.42858 15.7266 7.67215 15.8966C7.76823 15.9639 7.8827 16 8.00001 16C8.11732 16 8.23179 15.9639 8.32787 15.8966C8.57144 15.7266 14.2858 11.6644 14.2858 6.28578C14.2839 4.61927 13.621 3.02155 12.4426 1.84315C11.2642 0.664747 9.66652 0.00189054 8.00001 0ZM8.00001 4.00004C8.45209 4.00004 8.89401 4.1341 9.2699 4.38526C9.64578 4.63642 9.93875 4.9934 10.1118 5.41106C10.2848 5.82873 10.33 6.28831 10.2418 6.7317C10.1536 7.17509 9.93594 7.58237 9.61627 7.90204C9.2966 8.2217 8.88933 8.4394 8.44594 8.5276C8.00255 8.61579 7.54296 8.57053 7.1253 8.39752C6.70763 8.22452 6.35065 7.93155 6.09949 7.55567C5.84833 7.17978 5.71427 6.73785 5.71427 6.28578C5.71427 5.67956 5.95509 5.09818 6.38375 4.66952C6.81241 4.24086 7.3938 4.00004 8.00001 4.00004Z\\\"/>\\n</svg>\\n\"","export default \"<svg fill=\\\"currentColor\\\" width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M16 8C16 8.17681 15.9298 8.34638 15.8047 8.47141C15.6797 8.59643 15.5101 8.66667 15.3333 8.66667H0.666667C0.489856 8.66667 0.320287 8.59643 0.195262 8.47141C0.070238 8.34638 0 8.17681 0 8C0 7.82319 0.070238 7.65362 0.195262 7.5286C0.320287 7.40357 0.489856 7.33333 0.666667 7.33333H15.3333C15.5101 7.33333 15.6797 7.40357 15.8047 7.5286C15.9298 7.65362 16 7.82319 16 8ZM0.666667 3.33333H15.3333C15.5101 3.33333 15.6797 3.2631 15.8047 3.13807C15.9298 3.01305 16 2.84348 16 2.66667C16 2.48986 15.9298 2.32029 15.8047 2.19526C15.6797 2.07024 15.5101 2 15.3333 2H0.666667C0.489856 2 0.320287 2.07024 0.195262 2.19526C0.070238 2.32029 0 2.48986 0 2.66667C0 2.84348 0.070238 3.01305 0.195262 3.13807C0.320287 3.2631 0.489856 3.33333 0.666667 3.33333ZM15.3333 12.6667H0.666667C0.489856 12.6667 0.320287 12.7369 0.195262 12.8619C0.070238 12.987 0 13.1565 0 13.3333C0 13.5101 0.070238 13.6797 0.195262 13.8047C0.320287 13.9298 0.489856 14 0.666667 14H15.3333C15.5101 14 15.6797 13.9298 15.8047 13.8047C15.9298 13.6797 16 13.5101 16 13.3333C16 13.1565 15.9298 12.987 15.8047 12.8619C15.6797 12.7369 15.5101 12.6667 15.3333 12.6667Z\\\"/>\\n</svg>\\n\"","export default \"<svg fill=\\\"currentColor\\\" width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M16 8C16 8.13261 15.9298 8.25979 15.8047 8.35355C15.6797 8.44732 15.5101 8.5 15.3333 8.5H0.666667C0.489856 8.5 0.320287 8.44732 0.195262 8.35355C0.070238 8.25979 0 8.13261 0 8C0 7.86739 0.070238 7.74021 0.195262 7.64645C0.320287 7.55268 0.489856 7.5 0.666667 7.5H15.3333C15.5101 7.5 15.6797 7.55268 15.8047 7.64645C15.9298 7.74021 16 7.86739 16 8Z\\\"/>\\n</svg>\\n\"","export default \"<svg fill=\\\"currentColor\\\" width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M15.9179 15.386C15.8639 15.4796 15.7862 15.5573 15.6926 15.6113C15.599 15.6653 15.4929 15.6937 15.3848 15.6937H0.614787C0.506812 15.6936 0.400767 15.6651 0.307299 15.611C0.213832 15.557 0.136232 15.4793 0.0822927 15.3857C0.0283531 15.2922 -2.77002e-05 15.1861 2.02871e-08 15.0781C2.77407e-05 14.9702 0.028463 14.8641 0.0824506 14.7706C1.25405 12.7451 3.05954 11.2927 5.16657 10.6042C4.12434 9.98374 3.31459 9.03832 2.86167 7.91312C2.40875 6.78792 2.33772 5.54515 2.65947 4.37567C2.98122 3.20618 3.67797 2.17465 4.64272 1.43948C5.60747 0.70431 6.78687 0.306152 7.99981 0.306152C9.21274 0.306152 10.3921 0.70431 11.3569 1.43948C12.3216 2.17465 13.0184 3.20618 13.3401 4.37567C13.6619 5.54515 13.5909 6.78792 13.1379 7.91312C12.685 9.03832 11.8753 9.98374 10.833 10.6042C12.9401 11.2927 14.7456 12.7451 15.9172 14.7706C15.9713 14.8641 15.9999 14.9702 16 15.0782C16.0001 15.1862 15.9718 15.2924 15.9179 15.386Z\\\"/>\\n</svg>\\n\"","export default \"<svg fill=\\\"currentColor\\\" width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M15.1086 4.08095C14.9691 4.15317 14.8066 4.16706 14.6569 4.11957C14.5072 4.07208 14.3825 3.96708 14.3102 3.82767C13.7447 2.71048 12.8887 1.76624 11.8322 1.09416C11.7663 1.05263 11.7093 0.998538 11.6644 0.934975C11.6194 0.871411 11.5875 0.799619 11.5703 0.723697C11.5531 0.647775 11.551 0.56921 11.5642 0.492487C11.5774 0.415765 11.6055 0.342388 11.647 0.276546C11.6886 0.210704 11.7427 0.153687 11.8062 0.108749C11.8698 0.0638108 11.9416 0.0318326 12.0175 0.01464C12.0934 -0.00255247 12.172 -0.00462266 12.2487 0.00854767C12.3254 0.021718 12.3988 0.0498709 12.4646 0.0913991C13.696 0.879783 14.6958 1.98106 15.3618 3.2826C15.4341 3.42206 15.4479 3.5845 15.4005 3.7342C15.353 3.88391 15.248 4.00863 15.1086 4.08095ZM1.164 4.14761C1.27254 4.14756 1.37899 4.1177 1.47172 4.06128C1.56444 4.00486 1.63989 3.92405 1.68982 3.82767C2.25533 2.71048 3.11132 1.76624 4.16783 1.09416C4.3008 1.01029 4.39501 0.877028 4.42974 0.723697C4.46446 0.570365 4.43685 0.40952 4.35298 0.276546C4.26911 0.143572 4.13585 0.0493619 3.98252 0.01464C3.82919 -0.0200818 3.66834 0.00752924 3.53537 0.0913991C2.30407 0.879783 1.30425 1.98106 0.638182 3.2826C0.591405 3.37289 0.568655 3.4737 0.572122 3.57533C0.575589 3.67696 0.605155 3.77599 0.657977 3.86288C0.710798 3.94978 0.785096 4.02162 0.87372 4.07148C0.962344 4.12135 1.06231 4.14756 1.164 4.14761ZM14.9464 11.8453C15.0513 12.0253 15.107 12.2298 15.1077 12.4381C15.1084 12.6465 15.0542 12.8514 14.9504 13.0321C14.8467 13.2128 14.6972 13.363 14.5169 13.4674C14.3366 13.5719 14.132 13.627 13.9236 13.6271H10.902C10.766 14.2968 10.4027 14.8989 9.87363 15.3313C9.34455 15.7638 8.68223 16 7.9989 16C7.31557 16 6.65325 15.7638 6.12417 15.3313C5.59508 14.8989 5.23177 14.2968 5.09579 13.6271H2.07418C1.86595 13.6267 1.66149 13.5715 1.48142 13.4669C1.30135 13.3623 1.15202 13.2121 1.04847 13.0314C0.944918 12.8508 0.890808 12.646 0.891589 12.4378C0.892369 12.2295 0.948012 12.0252 1.05291 11.8453C1.72018 10.6937 2.07418 9.05623 2.07418 7.10996C2.07418 5.53863 2.69839 4.03166 3.80949 2.92056C4.92059 1.80946 6.42757 1.18525 7.9989 1.18525C9.57023 1.18525 11.0772 1.80946 12.1883 2.92056C13.2994 4.03166 13.9236 5.53863 13.9236 7.10996C13.9236 9.05549 14.2776 10.6929 14.9464 11.8453ZM9.67411 13.6271H6.32368C6.44643 13.9733 6.6734 14.2729 6.97338 14.4848C7.27336 14.6968 7.63162 14.8105 7.9989 14.8105C8.36618 14.8105 8.72444 14.6968 9.02442 14.4848C9.3244 14.2729 9.55136 13.9733 9.67411 13.6271ZM13.9236 12.4422C13.1356 11.0891 12.7387 9.29544 12.7387 7.10996C12.7387 5.8529 12.2393 4.64732 11.3504 3.75844C10.4615 2.86956 9.25596 2.37019 7.9989 2.37019C6.74183 2.37019 5.53625 2.86956 4.64737 3.75844C3.75849 4.64732 3.25913 5.8529 3.25913 7.10996C3.25913 9.29618 2.86069 11.0899 2.07418 12.4422H13.9236Z\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M11.4273 9.04717C11.4273 9.03116 11.425 9.01744 11.4227 9.00373V7.94514C11.4227 7.35069 10.938 6.86598 10.3435 6.86598H10.0097C9.91828 6.86598 9.84511 6.79281 9.84511 6.70136V6.3927H10.2887C10.5402 6.3927 10.7459 6.18692 10.7459 5.93542V4.10633C10.7459 3.85483 10.5402 3.64906 10.2887 3.64906H5.51474C5.26324 3.64906 5.05746 3.85483 5.05746 4.10633V5.93542C5.05746 6.18692 5.26324 6.3927 5.51474 6.3927H5.94457V6.70136C5.94457 6.79281 5.87141 6.86598 5.77996 6.86598H5.45758C4.86312 6.86598 4.37841 7.35069 4.37841 7.94514V14.9208C4.37841 15.5153 4.86312 16 5.45758 16H10.3413C10.9357 16 11.4204 15.5153 11.4204 14.9208V13.8805C11.4204 13.8668 11.425 13.8508 11.425 13.8371C11.425 13.8234 11.4227 13.8074 11.4204 13.7937V9.09518C11.4204 9.08146 11.425 9.06546 11.425 9.05174L11.4273 9.04717ZM10.5082 13.3753H8.34754V9.50444H10.5082V13.3753ZM5.96972 4.55903H9.82911V5.47358H5.96972V4.55903ZM10.3413 15.0832H5.45758C5.36612 15.0832 5.29296 15.01 5.29296 14.9186V7.94285C5.29296 7.8514 5.36612 7.77824 5.45758 7.77824H5.77996C6.37441 7.77824 6.85912 7.29353 6.85912 6.69907V6.39041H8.92828V6.69907C8.92828 7.29353 9.41299 7.77824 10.0074 7.77824H10.3413C10.4327 7.77824 10.5059 7.8514 10.5059 7.94285V8.5899H7.88798C7.63648 8.5899 7.43071 8.79567 7.43071 9.04717V13.8325C7.43071 14.084 7.63648 14.2898 7.88798 14.2898H10.5059V14.9186C10.5059 15.01 10.4327 15.0832 10.3413 15.0832Z\\\" fill=\\\"black\\\"/>\\n<path d=\\\"M14.8591 11.4181H14.1114C14.9185 10.2109 15.3484 8.81165 15.3484 7.34838C15.3484 3.29694 12.0514 0 7.99999 0C3.94855 0 0.651611 3.29694 0.651611 7.34838C0.651611 8.92826 1.14547 10.435 2.08059 11.7016C2.16976 11.8228 2.30923 11.8868 2.44869 11.8868C2.54243 11.8868 2.63846 11.8571 2.71848 11.7976C2.92197 11.6467 2.96541 11.3609 2.81451 11.1575C1.99599 10.0463 1.56387 8.72934 1.56387 7.34609C1.56387 3.79765 4.44926 0.91226 7.9977 0.91226C11.5461 0.91226 14.4315 3.79765 14.4315 7.34609C14.4315 8.54643 14.1046 9.69648 13.485 10.7048V10.044C13.485 9.7925 13.2792 9.58673 13.0277 9.58673C12.7762 9.58673 12.5704 9.7925 12.5704 10.044V11.8731C12.5704 12.1246 12.7762 12.3304 13.0277 12.3304H14.8568C15.1083 12.3304 15.3141 12.1246 15.3141 11.8731C15.3141 11.6216 15.1083 11.4158 14.8568 11.4158L14.8591 11.4181Z\\\" fill=\\\"black\\\"/>\\n</svg>\\n\"","export default \"<svg fill=\\\"currentColor\\\" width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M15.9093 14.4497C14.7389 12.4263 12.9352 10.9753 10.8303 10.2875C11.8715 9.66773 12.6804 8.72327 13.1329 7.59922C13.5854 6.47516 13.6563 5.23366 13.3349 4.06537C13.0135 2.89708 12.3174 1.86659 11.3537 1.13217C10.3899 0.397752 9.2117 0 8 0C6.7883 0 5.6101 0.397752 4.64633 1.13217C3.68257 1.86659 2.98653 2.89708 2.6651 4.06537C2.34368 5.23366 2.41464 6.47516 2.8671 7.59922C3.31955 8.72327 4.12848 9.66773 5.16965 10.2875C3.06476 10.9746 1.26112 12.4255 0.0907097 14.4497C0.0477887 14.5197 0.0193195 14.5975 0.00698187 14.6787C-0.00535579 14.7599 -0.00131202 14.8427 0.0188746 14.9223C0.0390612 15.0018 0.0749818 15.0766 0.124517 15.142C0.174052 15.2075 0.236198 15.2624 0.307289 15.3035C0.37838 15.3445 0.456975 15.3709 0.538437 15.3811C0.6199 15.3913 0.702579 15.3851 0.781598 15.3628C0.860616 15.3406 0.934373 15.3027 0.998516 15.2514C1.06266 15.2002 1.11589 15.1366 1.15507 15.0645C2.6029 12.5623 5.16197 11.0683 8 11.0683C10.838 11.0683 13.3971 12.5623 14.8449 15.0645C14.8841 15.1366 14.9373 15.2002 15.0015 15.2514C15.0656 15.3027 15.1394 15.3406 15.2184 15.3628C15.2974 15.3851 15.3801 15.3913 15.4616 15.3811C15.543 15.3709 15.6216 15.3445 15.6927 15.3035C15.7638 15.2624 15.8259 15.2075 15.8755 15.142C15.925 15.0766 15.9609 15.0018 15.9811 14.9223C16.0013 14.8427 16.0054 14.7599 15.993 14.6787C15.9807 14.5975 15.9522 14.5197 15.9093 14.4497ZM3.69646 5.53521C3.69646 4.68405 3.94886 3.85201 4.42174 3.14429C4.89462 2.43658 5.56674 1.88499 6.35311 1.55926C7.13948 1.23354 8.00478 1.14831 8.83958 1.31436C9.67438 1.48042 10.4412 1.89029 11.0431 2.49215C11.6449 3.09401 12.0548 3.86083 12.2208 4.69563C12.3869 5.53044 12.3017 6.39574 11.976 7.18211C11.6502 7.96848 11.0986 8.6406 10.3909 9.11347C9.6832 9.58635 8.85116 9.83875 8 9.83875C6.85901 9.83753 5.76509 9.38373 4.95829 8.57693C4.15148 7.77012 3.69768 6.67621 3.69646 5.53521Z\\\"/>\\n</svg>\\n\"","export default \"<svg fill=\\\"currentColor\\\" width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M14.7689 8C14.7694 8.20893 14.7158 8.41444 14.6134 8.59654C14.511 8.77864 14.3631 8.93113 14.1843 9.03918L3.10176 15.8189C2.91491 15.9333 2.70091 15.9957 2.48185 15.9998C2.26279 16.0038 2.04662 15.9493 1.85566 15.8419C1.66653 15.7362 1.50897 15.582 1.3992 15.3951C1.28942 15.2083 1.2314 14.9956 1.23108 14.7789V1.22109C1.2314 1.0044 1.28942 0.791702 1.3992 0.604871C1.50897 0.41804 1.66653 0.263819 1.85566 0.158069C2.04662 0.0506496 2.26279 -0.00384561 2.48185 0.000211026C2.70091 0.00426766 2.91491 0.0667292 3.10176 0.181145L14.1843 6.96082C14.3631 7.06887 14.511 7.22136 14.6134 7.40346C14.7158 7.58556 14.7694 7.79107 14.7689 8Z\\\"/>\\n</svg>\\n\"","export default \"<svg fill=\\\"currentColor\\\" width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M8 0C6.41775 0 4.87103 0.469192 3.55544 1.34824C2.23985 2.22729 1.21447 3.47672 0.608967 4.93853C0.00346629 6.40034 -0.15496 8.00887 0.153721 9.56072C0.462403 11.1126 1.22433 12.538 2.34315 13.6569C3.46197 14.7757 4.88743 15.5376 6.43928 15.8463C7.99113 16.155 9.59966 15.9965 11.0615 15.391C12.5233 14.7855 13.7727 13.7602 14.6518 12.4446C15.5308 11.129 16 9.58225 16 8C15.9976 5.87899 15.154 3.84553 13.6543 2.34574C12.1545 0.845963 10.121 0.00235276 8 0ZM8 14.2222C6.76936 14.2222 5.56636 13.8573 4.54312 13.1736C3.51988 12.4899 2.72236 11.5181 2.25142 10.3811C1.78047 9.24418 1.65725 7.9931 1.89734 6.7861C2.13743 5.57911 2.73003 4.47042 3.60023 3.60022C4.47042 2.73003 5.57911 2.13742 6.78611 1.89734C7.9931 1.65725 9.24418 1.78047 10.3811 2.25142C11.5181 2.72236 12.4899 3.51988 13.1736 4.54312C13.8573 5.56636 14.2222 6.76936 14.2222 8C14.2205 9.64969 13.5643 11.2313 12.3978 12.3978C11.2313 13.5643 9.6497 14.2205 8 14.2222ZM10.963 8C10.9629 8.14292 10.9285 8.28372 10.8624 8.41048C10.7964 8.53724 10.7008 8.64621 10.5837 8.72815L7.62074 10.8022C7.48754 10.8954 7.33132 10.9503 7.16909 10.9609C7.00685 10.9715 6.84482 10.9374 6.70061 10.8624C6.55641 10.7873 6.43556 10.6741 6.35121 10.5351C6.26686 10.3961 6.22225 10.2367 6.22222 10.0741V5.92592C6.22225 5.76335 6.26686 5.60389 6.35121 5.4649C6.43556 5.32591 6.55641 5.21272 6.70061 5.13764C6.84482 5.06256 7.00685 5.02846 7.16909 5.03907C7.33132 5.04967 7.48754 5.10456 7.62074 5.19778L10.5837 7.27185C10.7008 7.35379 10.7964 7.46276 10.8624 7.58952C10.9285 7.71627 10.9629 7.85708 10.963 8Z\\\"/>\\n</svg>\\n\"","export default \"<svg fill=\\\"currentColor\\\" width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M8 1.32C8 0.590984 8.59493 -0.0110973 9.31404 0.108651C10.4288 0.294276 11.4967 0.714871 12.4446 1.34824C13.7602 2.22729 14.7855 3.47672 15.391 4.93853C15.9965 6.40034 16.155 8.00887 15.8463 9.56072C15.5376 11.1126 14.7757 12.538 13.6569 13.6569C12.538 14.7757 11.1126 15.5376 9.56072 15.8463C8.00887 16.155 6.40034 15.9965 4.93853 15.391C3.47672 14.7855 2.22729 13.7602 1.34824 12.4446C0.714871 11.4967 0.294276 10.4288 0.108651 9.31404C-0.011097 8.59492 0.590984 8 1.32 8C2.04902 8 2.62399 8.5997 2.80172 9.30672C2.95061 9.89901 3.20043 10.4647 3.54332 10.9779C4.13229 11.8593 4.9694 12.5463 5.94882 12.952C6.92823 13.3577 8.00595 13.4638 9.04568 13.257C10.0854 13.0502 11.0405 12.5397 11.7901 11.7901C12.5397 11.0405 13.0502 10.0854 13.257 9.04568C13.4638 8.00595 13.3577 6.92823 12.952 5.94882C12.5463 4.9694 11.8593 4.13229 10.9779 3.54332C10.4647 3.20043 9.89901 2.95061 9.30672 2.80172C8.5997 2.62399 8 2.04902 8 1.32Z\\\"/>\\n</svg>\\n\"","export default \"<svg fill=\\\"currentColor\\\" width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M16 7.99949C16.0002 9.94094 15.2358 11.8044 13.8723 13.1864C12.5088 14.5685 10.6559 15.358 8.71461 15.3841H8.61539C6.72942 15.3888 4.91406 14.6671 3.54615 13.3687C3.48741 13.3132 3.44019 13.2466 3.40718 13.1728C3.37417 13.099 3.35603 13.0194 3.35378 12.9385C3.35153 12.8577 3.36522 12.7772 3.39407 12.7017C3.42292 12.6262 3.46636 12.5571 3.52192 12.4983C3.57748 12.4396 3.64407 12.3924 3.71788 12.3594C3.79169 12.3264 3.87127 12.3082 3.9521 12.306C4.03292 12.3037 4.11339 12.3174 4.18893 12.3463C4.26446 12.3751 4.33357 12.4185 4.39231 12.4741C5.27215 13.3039 6.37699 13.856 7.56879 14.0615C8.7606 14.267 9.98654 14.1168 11.0935 13.6296C12.2004 13.1424 13.1392 12.3398 13.7927 11.3222C14.4461 10.3045 14.7852 9.11686 14.7676 7.9076C14.75 6.69833 14.3765 5.52106 13.6937 4.52285C13.011 3.52463 12.0492 2.74973 10.9285 2.29495C9.80792 1.84017 8.57813 1.72567 7.39281 1.96576C6.20748 2.20584 5.11918 2.78987 4.26385 3.64487C4.25756 3.65167 4.25088 3.65809 4.24385 3.66411L2.19923 5.53795H4.30769C4.4709 5.53795 4.62743 5.60279 4.74284 5.71819C4.85824 5.8336 4.92308 5.99013 4.92308 6.15334C4.92308 6.31655 4.85824 6.47307 4.74284 6.58848C4.62743 6.70389 4.4709 6.76872 4.30769 6.76872H0.615385C0.452174 6.76872 0.295649 6.70389 0.180242 6.58848C0.064835 6.47307 0 6.31655 0 6.15334V2.46103C0 2.29782 0.064835 2.14129 0.180242 2.02589C0.295649 1.91048 0.452174 1.84564 0.615385 1.84564C0.778595 1.84564 0.93512 1.91048 1.05053 2.02589C1.16593 2.14129 1.23077 2.29782 1.23077 2.46103V4.75334L3.40385 2.76872C4.43768 1.73891 5.75344 1.03846 7.18502 0.755821C8.61661 0.473178 10.0998 0.621002 11.4475 1.18063C12.7951 1.74027 13.9468 2.68662 14.757 3.90022C15.5673 5.11382 15.9998 6.54027 16 7.99949Z\\\"/>\\n</svg>\\n\"","export default \"<svg fill=\\\"currentColor\\\" width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M15.8199 14.95L11.9725 11.1034C13.0876 9.76465 13.6437 8.0475 13.525 6.30919C13.4063 4.57088 12.622 2.94524 11.3353 1.77045C10.0486 0.595655 8.35844 -0.0378381 6.61653 0.00174965C4.87462 0.0413374 3.21503 0.750958 1.98299 1.98299C0.750958 3.21503 0.0413374 4.87462 0.00174965 6.61653C-0.0378381 8.35844 0.595655 10.0486 1.77045 11.3353C2.94524 12.622 4.57088 13.4063 6.30919 13.525C8.0475 13.6437 9.76465 13.0876 11.1034 11.9725L14.95 15.8199C15.0071 15.877 15.0749 15.9223 15.1496 15.9532C15.2242 15.9841 15.3042 16 15.3849 16C15.4657 16 15.5457 15.9841 15.6203 15.9532C15.6949 15.9223 15.7627 15.877 15.8199 15.8199C15.877 15.7627 15.9223 15.6949 15.9532 15.6203C15.9841 15.5457 16 15.4657 16 15.3849C16 15.3042 15.9841 15.2242 15.9532 15.1496C15.9223 15.0749 15.877 15.0071 15.8199 14.95ZM1.24642 6.77888C1.24642 5.68467 1.57089 4.61502 2.17881 3.70521C2.78672 2.7954 3.65078 2.08629 4.6617 1.66755C5.67263 1.24882 6.78502 1.13925 7.85821 1.35273C8.93141 1.5662 9.9172 2.09311 10.6909 2.86684C11.4647 3.64057 11.9916 4.62636 12.205 5.69955C12.4185 6.77275 12.309 7.88514 11.8902 8.89607C11.4715 9.90699 10.7624 10.771 9.85256 11.379C8.94275 11.9869 7.8731 12.3113 6.77888 12.3113C5.31208 12.3097 3.90582 11.7263 2.86864 10.6891C1.83145 9.65195 1.24805 8.24569 1.24642 6.77888Z\\\"/>\\n</svg>\\n\"","export default \"<svg fill=\\\"currentColor\\\" width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M15.8605 3.1752C15.8048 3.10864 15.7353 3.05511 15.6567 3.01838C15.5781 2.98165 15.4924 2.96262 15.4057 2.96263H3.45739L3.09521 0.973225C3.0456 0.70017 2.90174 0.453187 2.68869 0.275334C2.47565 0.0974807 2.20694 4.01099e-05 1.92942 0H0.592527C0.435379 0 0.284667 0.0624267 0.173547 0.173547C0.0624267 0.284667 0 0.435379 0 0.592527C0 0.749675 0.0624267 0.900386 0.173547 1.01151C0.284667 1.12263 0.435379 1.18505 0.592527 1.18505H1.92571L3.81884 11.5758C3.8746 11.8839 4.01079 12.1719 4.21361 12.4105C3.93367 12.6719 3.73162 13.0058 3.62986 13.3751C3.5281 13.7444 3.53061 14.1347 3.6371 14.5026C3.74359 14.8706 3.94991 15.2018 4.23318 15.4597C4.51645 15.7175 4.86559 15.8919 5.2419 15.9634C5.61822 16.0349 6.00699 16.0009 6.36511 15.8649C6.72323 15.729 7.03671 15.4965 7.27078 15.1933C7.50485 14.8901 7.65038 14.528 7.69121 14.1471C7.73205 13.7663 7.6666 13.3815 7.50213 13.0356H10.8662C10.7336 13.3131 10.665 13.6168 10.6655 13.9244C10.6655 14.3345 10.7871 14.7355 11.015 15.0765C11.2429 15.4176 11.5668 15.6834 11.9457 15.8404C12.3246 15.9973 12.7416 16.0384 13.1439 15.9584C13.5462 15.8784 13.9157 15.6808 14.2058 15.3908C14.4958 15.1008 14.6933 14.7313 14.7733 14.329C14.8533 13.9267 14.8123 13.5097 14.6553 13.1308C14.4983 12.7518 14.2325 12.4279 13.8915 12.2C13.5505 11.9722 13.1495 11.8505 12.7393 11.8505H5.56753C5.42877 11.8505 5.29441 11.8018 5.18789 11.7129C5.08137 11.6239 5.00944 11.5005 4.98463 11.3639L4.74984 10.073H13.3415C13.7578 10.0729 14.1608 9.92673 14.4804 9.65996C14.8 9.39318 15.0158 9.0227 15.0902 8.61312L15.9908 3.66107C16.0061 3.57548 16.0023 3.48759 15.9798 3.40362C15.9572 3.31965 15.9165 3.24167 15.8605 3.1752ZM6.51779 13.9244C6.51779 14.1002 6.46567 14.272 6.36801 14.4182C6.27035 14.5643 6.13154 14.6782 5.96913 14.7455C5.80672 14.8128 5.62802 14.8304 5.45561 14.7961C5.2832 14.7618 5.12483 14.6771 5.00054 14.5528C4.87624 14.4285 4.79159 14.2702 4.75729 14.0978C4.723 13.9254 4.7406 13.7467 4.80787 13.5843C4.87514 13.4219 4.98906 13.283 5.13522 13.1854C5.28138 13.0877 5.45322 13.0356 5.629 13.0356C5.86473 13.0356 6.09079 13.1292 6.25747 13.2959C6.42415 13.4626 6.51779 13.6887 6.51779 13.9244ZM13.6281 13.9244C13.6281 14.1002 13.576 14.272 13.4783 14.4182C13.3807 14.5643 13.2419 14.6782 13.0795 14.7455C12.917 14.8128 12.7383 14.8304 12.5659 14.7961C12.3935 14.7618 12.2352 14.6771 12.1109 14.5528C11.9866 14.4285 11.9019 14.2702 11.8676 14.0978C11.8333 13.9254 11.8509 13.7467 11.9182 13.5843C11.9855 13.4219 12.0994 13.283 12.2455 13.1854C12.3917 13.0877 12.5635 13.0356 12.7393 13.0356C12.975 13.0356 13.2011 13.1292 13.3678 13.2959C13.5345 13.4626 13.6281 13.6887 13.6281 13.9244ZM13.9244 8.40129C13.8995 8.53819 13.8273 8.66198 13.7203 8.75095C13.6133 8.83992 13.4784 8.8884 13.3393 8.8879H4.53431L3.67293 4.14769H14.6954L13.9244 8.40129Z\\\"/>\\n</svg>\\n\"","export default \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" fill=\\\"currentColor\\\"><rect x=\\\"0\\\" y=\\\"0\\\" width=\\\"100%\\\" height=\\\"100%\\\" rx=\\\"4\\\" /></svg>\\n\"","export default \"<svg width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M3.11221 0.888888C3.35665 0.888888 3.55665 0.688888 3.55665 0.444444C3.55665 0.2 3.35665 0 3.11221 0H0.445543C0.201098 0 0.00109863 0.2 0.00109863 0.444444C0.00109863 0.688888 0.201098 0.888888 0.445543 0.888888H1.33443V2.66666H0.445543C0.201098 2.66666 0.00109863 2.86666 0.00109863 3.11111V12C0.00109863 12.2444 0.201098 12.4444 0.445543 12.4444H1.33443V15.5555C1.33443 15.8 1.53443 16 1.77887 16C2.02332 16 2.22332 15.8 2.22332 15.5555V12.4444H3.11221C3.35665 12.4444 3.55665 12.2444 3.55665 12V3.11111C3.55665 2.86666 3.35665 2.66666 3.11221 2.66666H2.22332V0.888888H3.11221ZM2.66776 11.5555H0.889987V3.55555H2.66776V11.5555Z\\\" fill=\\\"black\\\"/>\\n<path d=\\\"M15.7234 5.70446L10.5234 3.58891C10.4167 3.54446 10.2967 3.54446 10.1879 3.58891L4.98786 5.70446C4.82119 5.77335 4.71008 5.93557 4.71008 6.11557C4.71008 7.53335 4.92342 9.65557 5.92786 11.7267C6.88341 13.6978 8.3123 15.1222 10.1723 15.96C10.2301 15.9867 10.2923 16 10.3545 16C10.4167 16 10.479 15.9867 10.5367 15.96C12.3967 15.1222 13.8256 13.6978 14.7812 11.7267C15.7856 9.65557 15.9967 7.53113 15.999 6.11557C15.999 5.93557 15.8901 5.77113 15.7212 5.70446H15.7234ZM10.3567 15.0645C9.05452 14.4222 5.72119 12.2133 5.60342 6.41335L10.3567 4.48002L15.1101 6.41335C14.9923 12.2133 11.6612 14.4222 10.3567 15.0645Z\\\" fill=\\\"black\\\"/>\\n<path d=\\\"M8.64756 9.17556C8.47423 9.00222 8.192 9.00222 8.01867 9.17556C7.84534 9.34889 7.84534 9.63111 8.01867 9.80445L9.652 11.4378C9.73867 11.5244 9.852 11.5689 9.96534 11.5689C10.0787 11.5689 10.192 11.5244 10.2787 11.4378L13.5476 8.16889C13.7209 7.99556 13.7209 7.71334 13.5476 7.54C13.3742 7.36667 13.092 7.36667 12.9187 7.54L9.96534 10.4933L8.64534 9.17334L8.64756 9.17556Z\\\" fill=\\\"black\\\"/>\\n</svg>\\n\"","export default \"<svg fill=\\\"currentColor\\\" width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M15.7714 12.5776L9.52528 1.73028C9.36919 1.46453 9.14637 1.24418 8.87889 1.09107C8.61141 0.937966 8.30856 0.857422 8.00036 0.857422C7.69216 0.857422 7.38931 0.937966 7.12182 1.09107C6.85434 1.24418 6.63152 1.46453 6.47543 1.73028L0.229326 12.5776C0.079145 12.8346 0 13.127 0 13.4247C0 13.7224 0.079145 14.0147 0.229326 14.2718C0.383411 14.5391 0.605857 14.7607 0.873837 14.9137C1.14182 15.0667 1.44568 15.1457 1.75425 15.1425H14.2465C14.5548 15.1454 14.8584 15.0663 15.1261 14.9133C15.3938 14.7603 15.616 14.5389 15.77 14.2718C15.9204 14.0149 15.9997 13.7226 16 13.4249C16.0002 13.1272 15.9214 12.8348 15.7714 12.5776ZM7.42896 6.57146C7.42896 6.41992 7.48916 6.27458 7.59632 6.16742C7.70347 6.06026 7.84881 6.00006 8.00036 6.00006C8.1519 6.00006 8.29724 6.06026 8.4044 6.16742C8.51155 6.27458 8.57176 6.41992 8.57176 6.57146V9.42846C8.57176 9.58 8.51155 9.72534 8.4044 9.8325C8.29724 9.93966 8.1519 9.99986 8.00036 9.99986C7.84881 9.99986 7.70347 9.93966 7.59632 9.8325C7.48916 9.72534 7.42896 9.58 7.42896 9.42846V6.57146ZM8.00036 12.8569C7.83084 12.8569 7.66513 12.8066 7.52418 12.7124C7.38323 12.6182 7.27337 12.4844 7.2085 12.3278C7.14363 12.1711 7.12665 11.9988 7.15973 11.8325C7.1928 11.6663 7.27443 11.5136 7.3943 11.3937C7.51416 11.2738 7.66688 11.1922 7.83314 11.1591C7.9994 11.1261 8.17174 11.143 8.32835 11.2079C8.48497 11.2728 8.61883 11.3826 8.71301 11.5236C8.80719 11.6645 8.85746 11.8302 8.85746 11.9998C8.85746 12.2271 8.76715 12.4451 8.60642 12.6058C8.44568 12.7666 8.22767 12.8569 8.00036 12.8569Z\\\"/>\\n</svg>\\n\"","export default \"<svg fill=\\\"currentColor\\\" width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M8.51443 8.51443L1.24215 15.7867C1.10569 15.9232 0.920613 15.9998 0.727633 15.9998C0.534653 15.9998 0.349576 15.9232 0.213119 15.7867C0.076661 15.6503 3.8041e-09 15.4652 0 15.2722C-3.8041e-09 15.0792 0.076661 14.8941 0.213119 14.7577L6.9718 7.99992L0.213119 1.24215C0.076661 1.10569 0 0.920613 0 0.727633C0 0.534653 0.076661 0.349576 0.213119 0.213119C0.349576 0.076661 0.534653 0 0.727633 0C0.920613 0 1.10569 0.076661 1.24215 0.213119L8.51443 7.4854C8.58205 7.55294 8.63569 7.63315 8.67228 7.72143C8.70888 7.80972 8.72772 7.90435 8.72772 7.99992C8.72772 8.09549 8.70888 8.19012 8.67228 8.2784C8.63569 8.36669 8.58205 8.44689 8.51443 8.51443ZM15.7867 7.4854L8.51443 0.213119C8.37797 0.076661 8.1929 0 7.99992 0C7.80694 0 7.62186 0.076661 7.4854 0.213119C7.34894 0.349576 7.27228 0.534653 7.27228 0.727633C7.27228 0.920613 7.34894 1.10569 7.4854 1.24215L14.2441 7.99992L7.4854 14.7577C7.34894 14.8941 7.27228 15.0792 7.27228 15.2722C7.27228 15.4652 7.34894 15.6503 7.4854 15.7867C7.62186 15.9232 7.80694 15.9998 7.99992 15.9998C8.1929 15.9998 8.37797 15.9232 8.51443 15.7867L15.7867 8.51443C15.8543 8.44689 15.908 8.36669 15.9446 8.2784C15.9812 8.19012 16 8.09549 16 7.99992C16 7.90435 15.9812 7.80972 15.9446 7.72143C15.908 7.63315 15.8543 7.55294 15.7867 7.4854Z\\\"/>\\n</svg>\\n\"","export default \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\"><path d=\\\"m15.69,4.37L11.63.31c-.2-.2-.47-.31-.75-.31h-5.74c-.28,0-.55.11-.75.31L.31,4.37c-.2.2-.31.47-.31.75v5.74c0,.28.11.55.31.75l4.17,4.17c.13.13.31.21.5.21h5.89c.28,0,.55-.11.75-.31l4.06-4.06c.2-.2.31-.47.31-.75v-5.74c0-.28-.11-.55-.31-.75Zm-7.69,9.13c-.69,0-1.25-.56-1.25-1.25s.56-1.25,1.25-1.25,1.25.56,1.25,1.25-.56,1.25-1.25,1.25Zm1.02-3.86c0,.1-.04.18-.11.26-.07.07-.16.11-.26.11h-1.26c-.1,0-.19-.04-.26-.11-.07-.07-.11-.16-.11-.26l-.53-6.27c0-.1.04-.18.11-.26.07-.07.16-.11.26-.11h2.38c.1,0,.19.04.26.11.07.07.11.16.11.26l-.59,6.27Z\\\"/></svg>\"","export default \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" width=\\\"45\\\" height=\\\"24\\\" viewBox=\\\"0 0 45 24\\\" fill=\\\"none\\\">\\n<path d=\\\"M6.5 6.03516V18.0139H15.0511V16.3152H8.33659V12.8007H13.817V11.1459H8.33659V7.68992H14.8014V6.03516H6.5Z\\\" />\\n<path d=\\\"M31.2126 7.69285H33.8132C35.6351 7.69285 36.6489 8.5422 36.6489 10.0652C36.6489 11.6614 35.6939 12.5107 33.9014 12.5107H31.2126V7.69285ZM36.4285 6.53598C35.7086 6.19916 34.8564 6.02344 33.8132 6.02344H29.3613V18.0168H31.2126V14.1508H33.9161C35.4735 14.1508 36.6636 13.7701 37.4423 12.9793C38.1476 12.2764 38.5002 11.2953 38.5002 10.0505C38.5002 8.42505 37.7802 7.19495 36.4285 6.53598Z\\\" />\\n<path d=\\\"M26.7284 6.00542L22.6974 10.0231L24.3596 11.6798L28.3907 7.66218L26.7284 6.00542Z\\\" />\\n<path d=\\\"M20.3714 12.3522L16.2988 16.4113L17.9611 18.0681L22.0337 14.009L20.3714 12.3522Z\\\" />\\n<path d=\\\"M17.9533 6L16.291 7.65676L20.2805 11.633L21.9427 9.97623L17.9533 6Z\\\" />\\n<path d=\\\"M24.4313 12.4841L22.769 14.1409L26.7169 18.0757L28.3792 16.419L24.4313 12.4841Z\\\" />\\n</svg>\"","export default \"<svg width=\\\"24\\\" height=\\\"24\\\" viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<g clip-path=\\\"url(#clip0)\\\">\\n<path d=\\\"M11.9998 0C13.6248 0 14.6951 0.004 15.2106 0.012C15.7261 0.02 16.3043 0.0395 16.9453 0.0705C17.5863 0.1015 18.1371 0.164 18.5976 0.258C19.0581 0.352 19.4761 0.477 19.8516 0.633C20.2581 0.7895 20.6331 0.977 20.9766 1.1955C21.3201 1.414 21.6561 1.6875 21.9846 2.016C22.3131 2.3445 22.5866 2.6805 22.8051 3.024C23.0236 3.3675 23.2111 3.7425 23.3676 4.149C23.5241 4.524 23.6491 4.942 23.7426 5.403C23.8361 5.864 23.8986 6.41475 23.9301 7.05525C23.9616 7.69575 23.9811 8.274 23.9886 8.79C23.9961 9.306 24.0001 10.3762 24.0006 12.0007C24.0011 13.6252 23.9971 14.6955 23.9886 15.2115C23.9801 15.7275 23.9606 16.3057 23.9301 16.9462C23.8996 17.5868 23.8371 18.1375 23.7426 18.5985C23.6481 19.0595 23.5231 19.4775 23.3676 19.8525C23.2111 20.259 23.0236 20.634 22.8051 20.9775C22.5866 21.321 22.3131 21.657 21.9846 21.9855C21.6561 22.314 21.3201 22.5875 20.9766 22.806C20.6331 23.0245 20.2581 23.212 19.8516 23.3685C19.4766 23.525 19.0586 23.65 18.5976 23.7435C18.1366 23.837 17.5858 23.8995 16.9453 23.931C16.3048 23.9625 15.7266 23.982 15.2106 23.9895C14.6946 23.997 13.6243 24.001 11.9998 24.0015C10.3753 24.002 9.30507 23.998 8.78907 23.9895C8.27307 23.981 7.69482 23.9615 7.05432 23.931C6.41382 23.9005 5.86307 23.838 5.40207 23.7435C4.94107 23.649 4.52307 23.524 4.14807 23.3685C3.74157 23.212 3.36657 23.0245 3.02307 22.806C2.67957 22.5875 2.34356 22.314 2.01507 21.9855C1.68657 21.657 1.41307 21.321 1.19457 20.9775C0.976065 20.634 0.788565 20.259 0.632065 19.8525C0.475565 19.4775 0.350565 19.0595 0.257065 18.5985C0.163565 18.1375 0.101065 17.5868 0.0695651 16.9462C0.0380651 16.3057 0.0185651 15.7275 0.0110651 15.2115C0.0035651 14.6955 -0.000434896 13.6252 -0.000934896 12.0007C-0.0014349 10.3762 0.0025651 9.306 0.0110651 8.79C0.0195651 8.274 0.0390651 7.69575 0.0695651 7.05525C0.100065 6.41475 0.162565 5.864 0.257065 5.403C0.351565 4.942 0.476565 4.524 0.632065 4.149C0.788565 3.7425 0.976065 3.3675 1.19457 3.024C1.41307 2.6805 1.68657 2.3445 2.01507 2.016C2.34356 1.6875 2.67957 1.414 3.02307 1.1955C3.36657 0.977 3.74157 0.7895 4.14807 0.633C4.52307 0.4765 4.94107 0.3515 5.40207 0.258C5.86307 0.1645 6.41382 0.102 7.05432 0.0705C7.69482 0.039 8.27307 0.0195 8.78907 0.012C9.30507 0.0045 10.3753 0.0005 11.9998 0V0ZM11.9998 2.15625C10.3903 2.15625 9.33957 2.16025 8.84756 2.16825C8.35557 2.17625 7.78907 2.19575 7.14807 2.22675C6.57007 2.25825 6.10907 2.31675 5.76507 2.40225C5.42106 2.48775 5.13981 2.56975 4.92132 2.64825C4.63981 2.75775 4.39382 2.88275 4.18332 3.02325C3.97282 3.16375 3.75807 3.33575 3.53907 3.53925C3.33607 3.75825 3.16407 3.973 3.02307 4.1835C2.88207 4.394 2.75707 4.64 2.64807 4.9215C2.57007 5.1405 2.48807 5.42175 2.40207 5.76525C2.31607 6.10875 2.25757 6.56975 2.22657 7.14825C2.19507 7.78875 2.17557 8.35525 2.16807 8.84775C2.16057 9.34025 2.15656 10.391 2.15606 12C2.15557 13.609 2.15956 14.6597 2.16807 15.1522C2.17657 15.6447 2.19607 16.2113 2.22657 16.8517C2.25807 17.4298 2.31657 17.8907 2.40207 18.2347C2.48757 18.5788 2.56957 18.86 2.64807 19.0785C2.75757 19.36 2.88257 19.606 3.02307 19.8165C3.16357 20.027 3.33557 20.2418 3.53907 20.4608C3.75807 20.6637 3.97282 20.8358 4.18332 20.9767C4.39382 21.1178 4.63981 21.2428 4.92132 21.3517C5.14032 21.4298 5.42157 21.5118 5.76507 21.5978C6.10856 21.6838 6.56957 21.7423 7.14807 21.7733C7.78857 21.8048 8.35507 21.8242 8.84756 21.8317C9.34007 21.8392 10.3908 21.8433 11.9998 21.8438C13.6088 21.8442 14.6596 21.8403 15.1521 21.8317C15.6446 21.8232 16.2111 21.8038 16.8516 21.7733C17.4296 21.7418 17.8906 21.6833 18.2346 21.5978C18.5786 21.5123 18.8598 21.4303 19.0783 21.3517C19.3598 21.2423 19.6058 21.1173 19.8163 20.9767C20.0268 20.8363 20.2416 20.6642 20.4606 20.4608C20.6636 20.2418 20.8356 20.027 20.9766 19.8165C21.1176 19.606 21.2426 19.36 21.3516 19.0785C21.4296 18.8595 21.5116 18.5782 21.5976 18.2347C21.6836 17.8913 21.7421 17.4303 21.7731 16.8517C21.8046 16.2113 21.8241 15.6447 21.8316 15.1522C21.8391 14.6597 21.8431 13.609 21.8436 12C21.8441 10.391 21.8401 9.34025 21.8316 8.84775C21.8231 8.35525 21.8036 7.78875 21.7731 7.14825C21.7416 6.57025 21.6831 6.10925 21.5976 5.76525C21.5121 5.42125 21.4301 5.14 21.3516 4.9215C21.2421 4.64 21.1171 4.394 20.9766 4.1835C20.8361 3.973 20.6641 3.75825 20.4606 3.53925C20.2416 3.33625 20.0268 3.16425 19.8163 3.02325C19.6058 2.88225 19.3598 2.75725 19.0783 2.64825C18.8593 2.57025 18.5781 2.48825 18.2346 2.40225C17.8911 2.31625 17.4301 2.25775 16.8516 2.22675C16.2111 2.19525 15.6446 2.17575 15.1521 2.16825C14.6596 2.16075 13.6088 2.15675 11.9998 2.15625ZM11.9998 5.83575C12.8438 5.83575 13.6408 5.99975 14.3908 6.32775C15.1408 6.64025 15.7971 7.07775 16.3596 7.64025C16.9221 8.20275 17.3596 8.859 17.6721 9.609C18.0001 10.359 18.1641 11.156 18.1641 12C18.1641 12.844 18.0001 13.641 17.6721 14.391C17.3596 15.141 16.9221 15.7972 16.3596 16.3597C15.7971 16.9222 15.1408 17.3598 14.3908 17.6722C13.6408 18.0002 12.8438 18.1642 11.9998 18.1642C11.1558 18.1642 10.3588 18.0002 9.60882 17.6722C8.85882 17.3598 8.20257 16.9222 7.64007 16.3597C7.07757 15.7972 6.64007 15.141 6.32757 14.391C5.99957 13.641 5.83557 12.844 5.83557 12C5.83557 11.156 5.99957 10.359 6.32757 9.609C6.64007 8.859 7.07757 8.20275 7.64007 7.64025C8.20257 7.07775 8.85882 6.64025 9.60882 6.32775C10.3588 5.99975 11.1558 5.83575 11.9998 5.83575ZM11.9998 16.008C13.1093 16.008 14.0546 15.6173 14.8356 14.8358C15.6166 14.0542 16.0073 13.109 16.0078 12C16.0083 10.891 15.6176 9.94575 14.8356 9.16425C14.0536 8.38275 13.1083 7.992 11.9998 7.992C10.8913 7.992 9.94606 8.38275 9.16407 9.16425C8.38206 9.94575 7.99132 10.891 7.99182 12C7.99232 13.109 8.38307 14.0542 9.16407 14.8358C9.94507 15.6173 10.8903 16.008 11.9998 16.008ZM19.8516 5.60175C19.8516 5.99225 19.7108 6.32825 19.4293 6.60975C19.1478 6.89125 18.8041 7.032 18.3981 7.032C18.0076 7.032 17.6716 6.89125 17.3901 6.60975C17.1086 6.32825 16.9678 5.99225 16.9678 5.60175C16.9678 5.19525 17.1086 4.8515 17.3901 4.5705C17.6716 4.2895 18.0076 4.14875 18.3981 4.14825C18.8046 4.14825 19.1483 4.289 19.4293 4.5705C19.7103 4.852 19.8511 5.19575 19.8516 5.60175Z\\\"/>\\n</g>\\n<defs>\\n<clipPath id=\\\"clip0\\\">\\n<rect width=\\\"24\\\" height=\\\"24\\\" fill=\\\"white\\\"/>\\n</clipPath>\\n</defs>\\n</svg>\\n\"","export default \"<svg width=\\\"24\\\" height=\\\"24\\\" viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M5.37214 23.9999H0.396429V7.97672H5.37214V23.9999ZM2.88161 5.79101C1.29054 5.79101 0 4.47315 0 2.88208C1.13882e-08 2.11783 0.303597 1.38488 0.844003 0.844476C1.38441 0.30407 2.11736 0.000473022 2.88161 0.000473022C3.64586 0.000473022 4.3788 0.30407 4.91921 0.844476C5.45962 1.38488 5.76321 2.11783 5.76321 2.88208C5.76321 4.47315 4.47214 5.79101 2.88161 5.79101ZM23.9946 23.9999H19.0296V16.1999C19.0296 14.341 18.9921 11.9571 16.4427 11.9571C13.8557 11.9571 13.4593 13.9767 13.4593 16.066V23.9999H8.48893V7.97672H13.2611V10.1624H13.3307C13.995 8.90351 15.6177 7.57494 18.0386 7.57494C23.0743 7.57494 24 10.891 24 15.1982V23.9999H23.9946Z\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"24\\\" height=\\\"24\\\" viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M9.81818 8.72727H14.1818V5.45455H17.4545L12 0L6.54545 5.45455H9.81818V8.72727ZM8.72727 9.81818H5.45455V6.54545L0 12L5.45455 17.4545V14.1818H8.72727V9.81818ZM24 12L18.5455 6.54545V9.81818H15.2727V14.1818H18.5455V17.4545L24 12ZM14.1818 15.2727H9.81818V18.5455H6.54545L12 24L17.4545 18.5455H14.1818V15.2727Z\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"24\\\" height=\\\"24\\\" viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M1 24H7.85714V0H1V24ZM14.7143 0V24H21.5714V0H14.7143Z\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"24\\\" height=\\\"18\\\" viewBox=\\\"0 0 24 18\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M21.5516 1H7.05411C5.88354 1.00132 4.93494 1.93161 4.93359 3.07959V5.35997C4.93359 5.624 5.15184 5.83804 5.42107 5.83804C5.69029 5.83804 5.90854 5.624 5.90854 5.35997V3.07959C5.90854 2.78227 6.02898 2.49712 6.24336 2.28688C6.45774 2.07664 6.7485 1.95852 7.05167 1.95852H21.5492C21.8524 1.95852 22.1431 2.07664 22.3575 2.28688C22.5719 2.49712 22.6923 2.78227 22.6923 3.07959V11.1828C22.6923 11.802 22.1805 12.3039 21.5492 12.3039H9.38668C9.11746 12.3039 8.89921 12.5179 8.89921 12.782C8.89921 13.046 9.11746 13.26 9.38668 13.26H21.5492C22.7198 13.2587 23.6684 12.3284 23.6697 11.1804V3.0772C23.667 1.93108 22.7203 1.00263 21.5516 1V1Z\\\" stroke=\\\"#14568d\\\" stroke-width=\\\"0.4\\\"/>\\n<path d=\\\"M10.676 5.83309H18.6169C18.8862 5.83309 19.1044 5.61905 19.1044 5.35502C19.1044 5.09099 18.8862 4.87695 18.6169 4.87695H10.676C10.4067 4.87695 10.1885 5.09099 10.1885 5.35502C10.1885 5.61905 10.4067 5.83309 10.676 5.83309Z\\\" stroke=\\\"#14568D\\\" stroke-width=\\\"0.4\\\"/>\\n<path d=\\\"M10.676 9.20027H16.4403C16.7096 9.20027 16.9278 8.98624 16.9278 8.72221C16.9278 8.45818 16.7096 8.24414 16.4403 8.24414H10.676C10.4067 8.24414 10.1885 8.45818 10.1885 8.72221C10.1885 8.98624 10.4067 9.20027 10.676 9.20027Z\\\" stroke=\\\"#14568D\\\" stroke-width=\\\"0.4\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M8.13917 9.8101C8.13917 11.2477 6.9508 12.4132 5.48487 12.4132C4.0195 12.4119 2.83191 11.2472 2.83057 9.8101C2.83057 8.37247 4.01894 7.20703 5.48487 7.20703C6.9508 7.20703 8.13917 8.37247 8.13917 9.8101ZM7.15902 9.81013C7.15902 8.90319 6.40933 8.16797 5.48454 8.16797V8.17036C4.56125 8.17167 3.81274 8.90467 3.81006 9.81013C3.81006 10.7171 4.55975 11.4523 5.48454 11.4523C6.40933 11.4523 7.15902 10.7171 7.15902 9.81013Z\\\" />\\n<path d=\\\"M5.48487 12.4132L5.48474 12.5632H5.48487V12.4132ZM2.83057 9.8101H2.68057L2.68057 9.81024L2.83057 9.8101ZM5.48454 8.16797V8.01797H5.33454V8.16797H5.48454ZM5.48454 8.17036L5.48475 8.32036L5.63454 8.32015V8.17036H5.48454ZM3.81006 9.81013L3.66006 9.80968V9.81013H3.81006ZM5.48487 12.5632C7.03088 12.5632 8.28917 11.3333 8.28917 9.8101H7.98917C7.98917 11.1622 6.87073 12.2632 5.48487 12.2632V12.5632ZM2.68057 9.81024C2.68199 11.3328 3.93939 12.5618 5.48474 12.5632L5.48501 12.2632C4.0996 12.2619 2.98183 11.1616 2.98057 9.80996L2.68057 9.81024ZM5.48487 7.05703C3.93887 7.05703 2.68057 8.28688 2.68057 9.8101H2.98057C2.98057 8.45805 4.09901 7.35703 5.48487 7.35703V7.05703ZM8.28917 9.8101C8.28917 8.28688 7.03088 7.05703 5.48487 7.05703V7.35703C6.87073 7.35703 7.98917 8.45805 7.98917 9.8101H8.28917ZM5.48454 8.31797C6.32925 8.31797 7.00902 8.98877 7.00902 9.81013H7.30902C7.30902 8.8176 6.4894 8.01797 5.48454 8.01797V8.31797ZM5.63454 8.17036V8.16797H5.33454V8.17036H5.63454ZM3.96006 9.81057C3.96249 8.99042 4.6413 8.32156 5.48475 8.32036L5.48432 8.02036C4.48121 8.02178 3.663 8.81891 3.66006 9.80968L3.96006 9.81057ZM5.48454 11.3023C4.63982 11.3023 3.96006 10.6315 3.96006 9.81013H3.66006C3.66006 10.8027 4.47967 11.6023 5.48454 11.6023V11.3023ZM7.00902 9.81013C7.00902 10.6315 6.32925 11.3023 5.48454 11.3023V11.6023C6.4894 11.6023 7.30902 10.8027 7.30902 9.81013H7.00902Z\\\" />\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M1 17.3338C1.00269 14.9058 3.00902 12.9382 5.48477 12.9355C7.95902 12.9408 9.96309 14.9073 9.96711 17.3338C9.96711 17.5978 9.74886 17.8118 9.47964 17.8118H1.48748C1.21825 17.8118 1 17.5978 1 17.3338ZM5.48449 13.8945C3.73599 13.8945 2.25454 15.1575 2.01123 16.8556H2.02098H8.95776C8.71445 15.1575 7.233 13.8945 5.48449 13.8945Z\\\" />\\n<path d=\\\"M5.48477 12.9355L5.48499 12.8355L5.48467 12.8355L5.48477 12.9355ZM1 17.3338L0.9 17.3337V17.3338H1ZM9.96711 17.3338H10.0671L10.0671 17.3336L9.96711 17.3338ZM2.01123 16.8556L1.91224 16.8414L1.89588 16.9556H2.01123V16.8556ZM8.95776 16.8556V16.9556H9.07311L9.05675 16.8414L8.95776 16.8556ZM5.48467 12.8355C2.95561 12.8382 0.90275 14.8487 0.9 17.3337L1.1 17.3339C1.10262 14.9629 3.06243 13.0381 5.48488 13.0355L5.48467 12.8355ZM10.0671 17.3336C10.063 14.8502 8.01248 12.8409 5.48499 12.8355L5.48456 13.0355C7.90557 13.0407 9.86318 14.9643 9.86711 17.3339L10.0671 17.3336ZM9.47964 17.9118C9.80224 17.9118 10.0671 17.6548 10.0671 17.3338H9.86711C9.86711 17.5407 9.69548 17.7118 9.47964 17.7118V17.9118ZM1.48748 17.9118H9.47964V17.7118H1.48748V17.9118ZM0.9 17.3338C0.9 17.6548 1.16487 17.9118 1.48748 17.9118V17.7118C1.27163 17.7118 1.1 17.5407 1.1 17.3338H0.9ZM2.11022 16.8698C2.34627 15.2224 3.78427 13.9945 5.48449 13.9945V13.7945C3.68771 13.7945 2.16281 15.0926 1.91224 16.8414L2.11022 16.8698ZM2.02098 16.7556H2.01123V16.9556H2.02098V16.7556ZM8.95776 16.7556H2.02098V16.9556H8.95776V16.7556ZM5.48449 13.9945C7.18472 13.9945 8.62272 15.2224 8.85877 16.8698L9.05675 16.8414C8.80617 15.0926 7.28128 13.7945 5.48449 13.7945V13.9945Z\\\" />\\n</svg>\\n\"","export default \"<svg width=\\\"24\\\" height=\\\"24\\\" viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M12.5625 0.304688C7.75313 0.304688 3 3.51094 3 8.7C3 12 4.85625 13.875 5.98125 13.875C6.44531 13.875 6.7125 12.5813 6.7125 12.2156C6.7125 11.7797 5.60156 10.8516 5.60156 9.0375C5.60156 5.26875 8.47031 2.59688 12.1828 2.59688C15.375 2.59688 17.7375 4.41094 17.7375 7.74375C17.7375 10.2328 16.7391 14.9016 13.5047 14.9016C12.3375 14.9016 11.3391 14.0578 11.3391 12.8484C11.3391 11.0766 12.5766 9.36094 12.5766 7.53281C12.5766 4.42969 8.175 4.99219 8.175 8.74219C8.175 9.52969 8.27344 10.4016 8.625 11.1188C7.97813 13.9031 6.65625 18.0516 6.65625 20.9203C6.65625 21.8063 6.78281 22.6781 6.86719 23.5641C7.02656 23.7422 6.94688 23.7234 7.19063 23.6344C9.55313 20.4 9.46875 19.7672 10.5375 15.5344C11.1141 16.6313 12.6047 17.2219 13.7859 17.2219C18.7641 17.2219 21 12.3703 21 7.99688C21 3.34219 16.9781 0.304688 12.5625 0.304688Z\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"24\\\" height=\\\"24\\\" viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M6.18 20C7.38398 20 8.36 19.024 8.36 17.82C8.36 16.616 7.38398 15.64 6.18 15.64C4.97602 15.64 4 16.616 4 17.82C4 19.024 4.97602 20 6.18 20Z\\\"/>\\n<path d=\\\"M4 4.44V7.27C11.03 7.27 16.73 12.97 16.73 20H19.56C19.56 11.41 12.59 4.44 4 4.44ZM4 10.1V12.93C7.9 12.93 11.07 16.1 11.07 20H13.9C13.9 14.53 9.47 10.1 4 10.1Z\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"44\\\" height=\\\"45\\\" viewBox=\\\"0 0 44 45\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M0.19043 22.1904C0.19043 34.2881 9.99753 44.0952 22.0952 44.0952C34.1929 44.0952 44 34.2881 44 22.1904C44 10.0927 34.1929 0.285645 22.0952 0.285645C9.99753 0.285645 0.19043 10.0927 0.19043 22.1904ZM42.1746 22.1904C42.1746 33.2799 33.1847 42.2698 22.0952 42.2698C11.0057 42.2698 2.01583 33.2799 2.01583 22.1904C2.01583 11.1009 11.0057 2.11104 22.0952 2.11104C33.1847 2.11104 42.1746 11.1009 42.1746 22.1904ZM30.1697 26.5406H27.8761L25.9503 28.6906L20.5423 21.7943C23.2421 21.564 25.3696 19.292 25.3696 16.5276C25.3696 13.611 23.0021 11.238 20.0918 11.238H13.8809V30.1682H15.5905V21.8172H18.3889L24.7925 29.983L21.733 33.3991L21.761 33.4245H24.004L25.8632 31.3488L27.4908 33.4245H29.662L27.0207 30.0564L30.1697 26.5406ZM20.0918 12.9514H15.5905V20.1039H20.0918C22.0595 20.1039 23.66 18.4996 23.66 16.5276C23.66 14.5556 22.0595 12.9514 20.0918 12.9514Z\\\" />\\n</svg>\\n\"","export default \"<svg width=\\\"24\\\" height=\\\"24\\\" viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M17.6667 18.68V9.33333H15V18.68H11L16.3333 24L21.6667 18.68H17.6667ZM8.33333 0L3 5.32H7V14.6667H9.66667V5.32H13.6667L8.33333 0Z\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"24\\\" height=\\\"24\\\" viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M0 22.8182H4.36364V9.72727H0V22.8182ZM24 10.8182C24 9.61818 23.0182 8.63636 21.8182 8.63636H14.9345L15.9709 3.65091L16.0036 3.30182C16.0036 2.85455 15.8182 2.44 15.5236 2.14545L14.3673 1L7.18909 8.18909C6.78545 8.58182 6.54545 9.12727 6.54545 9.72727V20.6364C6.54545 21.8364 7.52727 22.8182 8.72727 22.8182H18.5455C19.4509 22.8182 20.2255 22.2727 20.5527 21.4873L23.8473 13.7964C23.9455 13.5455 24 13.2836 24 13V10.8182Z\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"24\\\" height=\\\"24\\\" viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M24 12.0526L18.9474 7V10.7895H0V13.3158H18.9474V17.1053L24 12.0526Z\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"24\\\" height=\\\"24\\\" viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M16.8 5L19.548 7.748L13.692 13.604L8.892 8.804L0 17.708L1.692 19.4L8.892 12.2L13.692 17L21.252 9.452L24 12.2V5H16.8Z\\\"/>\\n</svg>\\n\"","export default \"<svg width=\\\"24\\\" height=\\\"24\\\" viewBox=\\\"0 0 24 24\\\" fill=\\\"none\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M21.533 7.11169C21.5482 7.32488 21.5482 7.53811 21.5482 7.7513C21.5482 14.2538 16.599 21.7462 7.5533 21.7462C4.76648 21.7462 2.17767 20.9391 0 19.5381C0.395953 19.5838 0.776625 19.599 1.18781 19.599C3.48727 19.599 5.60405 18.8224 7.29441 17.4975C5.13197 17.4518 3.31978 16.0356 2.69541 14.0863C3 14.132 3.30455 14.1624 3.62437 14.1624C4.06598 14.1624 4.50764 14.1015 4.91878 13.995C2.66498 13.5381 0.974578 11.5584 0.974578 9.16753V9.10664C1.62937 9.47213 2.39086 9.70055 3.19791 9.73097C1.87303 8.8477 1.00505 7.34011 1.00505 5.63452C1.00505 4.72083 1.24866 3.88327 1.67508 3.1523C4.09641 6.13706 7.73602 8.08627 11.8172 8.2995C11.7411 7.93402 11.6954 7.55335 11.6954 7.17263C11.6954 4.46194 13.8883 2.25385 16.6141 2.25385C18.0304 2.25385 19.3095 2.84775 20.208 3.80714C21.3197 3.59395 22.3857 3.18277 23.3299 2.61933C22.9643 3.76149 22.1877 4.72088 21.1674 5.32997C22.1573 5.22342 23.1167 4.94925 23.9999 4.56858C23.33 5.54316 22.4924 6.41114 21.533 7.11169Z\\\"/>\\n</svg>\\n\"","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n\n/**\n * 1) Graphic used to supplement text or represent functionality\n */\n\n:host{\n display: flex;\n --cre8-u-icon-display: block;\n};\n\n.cre8-c-icon-wrapper {\n align-items: var(--cre8-u-icon-align-items);\n justify-content: var(--cre8-u-icon-justify-content);\n animation: var(--cre8-loading-animation, --cre8-icon-animation, none);\n margin: var(--cre8-icon-margin, 0);\n}\n\n.cre8-c-icon {\n height: var(--cre8-icon-height, size(2));\n width: var(--cre8-icon-width, size(2));\n fill: var(--cre8-icon-fill, currentColor);\n} \n// stylelint-disable selector-no-qualifying-type, max-nesting-depth\ncre8-icon {\n display: inline-flex;\n vertical-align: middle;\n\n &[spin] {\n @media (prefers-reduced-motion) {\n &:not([spin='false']) {\n // stylelint-disable-next-line declaration-no-important\n animation-duration: 6400ms !important;\n }\n }\n \n &:not([spin='false']) {\n animation-duration: 2000ms;\n animation-iteration-count: infinite;\n animation-name: spin;\n animation-timing-function: linear;\n }\n }\n\n &[pulse] {\n @media (prefers-reduced-motion) {\n &:not([pulse='false']) {\n svg {\n * {\n // stylelint-disable-next-line declaration-no-important\n animation-duration: 3s !important;\n animation-timing-function: linear;\n }\n }\n }\n }\n\n &:not([pulse='false']) {\n svg {\n * {\n animation: pulse 1.5s ease-in-out infinite;\n }\n }\n }\n }\n\n &[flip='vertical'] {\n transform: scaleY(-1);\n }\n \n &[flip='horizontal'] {\n transform: scaleX(-1);\n }\n \n &[flip='both'] {\n transform: scaleX(-1) scaleY(-1);\n }\n}\n\n@keyframes spin {\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n}\n\n@keyframes pulse {\n 0% {\n opacity: 1;\n }\n\n 50% {\n opacity: 0.5;\n }\n \n 100% {\n opacity: 1;\n }\n}\n`;\nexport default styles;\n","export default \"<?xml version=\\\"1.0\\\" encoding=\\\"utf-8\\\"?>\\n<svg xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<symbol id=\\\"add\\\" viewBox=\\\"0 0 24 24\\\">\\n<path d=\\\"M24 13.7143H13.7143V24H10.2857V13.7143H0V10.2857H10.2857V0H13.7143V10.2857H24V13.7143Z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"arrow-back\\\" viewBox=\\\"0 0 24 24\\\">\\n<g clip-path=\\\"url(#clip0)\\\">\\n<path d=\\\"M24 10.5H5.745L14.13 2.115L12 0L0 12L12 24L14.115 21.885L5.745 13.5H24V10.5Z\\\"/>\\n</g>\\n<defs>\\n<clipPath id=\\\"clip0\\\">\\n<rect width=\\\"24\\\" height=\\\"24\\\" fill=\\\"white\\\"/>\\n</clipPath>\\n</defs>\\n\\n</symbol>\\n<symbol id=\\\"arrow-forward\\\" viewBox=\\\"0 0 24 24\\\">\\n<g clip-path=\\\"url(#clip0)\\\">\\n<path d=\\\"M12 0L9.885 2.115L18.255 10.5H0V13.5H18.255L9.885 21.885L12 24L24 12L12 0Z\\\"/>\\n</g>\\n<defs>\\n<clipPath id=\\\"clip0\\\">\\n<rect width=\\\"24\\\" height=\\\"24\\\" fill=\\\"white\\\"/>\\n</clipPath>\\n</defs>\\n\\n</symbol>\\n<symbol id=\\\"attention\\\" viewBox=\\\"0 0 17 16\\\">\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M6.36656 11.9975C3.13155 11.9975 0.5 9.34649 0.5 6.0876C0.5 2.82881 3.1316 0.177734 6.36656 0.177734H10.6337C13.8686 0.177734 16.5 2.82881 16.5 6.0876C16.5 8.40676 15.1824 10.4777 13.1063 11.447L13.1171 15.3224C13.1176 15.5221 12.9999 15.7027 12.818 15.7816C12.7559 15.8086 12.6894 15.8222 12.6222 15.8222C12.496 15.8222 12.3738 15.7736 12.2813 15.685L8.43372 11.9975H6.36656Z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"bold-arrow-up\\\" viewBox=\\\"0 0 32 32\\\">\\n<title>bold-arrow-up</title>\\n<path d=\\\"M16 1l-15 15h9v16h12v-16h9z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"calendar\\\" viewBox=\\\"0 0 32 32\\\">\\n<title>calendar</title>\\n<path d=\\\"M10 12h4v4h-4zM16 12h4v4h-4zM22 12h4v4h-4zM4 24h4v4h-4zM10 24h4v4h-4zM16 24h4v4h-4zM10 18h4v4h-4zM16 18h4v4h-4zM22 18h4v4h-4zM4 18h4v4h-4zM26 0v2h-4v-2h-14v2h-4v-2h-4v32h30v-32h-4zM28 30h-26v-22h26v22z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"caret-down\\\" viewBox=\\\"0 0 12 6\\\">\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M11.25 0.666667C11.25 0.847223 11.1851 1.00347 11.0552 1.13542L6.46143 5.80208C6.33154 5.93403 6.17774 6 6 6C5.82226 6 5.66846 5.93403 5.53857 5.80208L0.944824 1.13542C0.814941 1.00347 0.75 0.847223 0.75 0.666667C0.75 0.48611 0.814941 0.329862 0.944824 0.197917C1.07471 0.0659716 1.22851 0 1.40625 0H10.5938C10.7715 0 10.9253 0.0659716 11.0552 0.197917C11.1851 0.329862 11.25 0.48611 11.25 0.666667Z\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M11.25 0.666667C11.25 0.847223 11.1851 1.00347 11.0552 1.13542L6.46143 5.80208C6.33154 5.93403 6.17774 6 6 6C5.82226 6 5.66846 5.93403 5.53857 5.80208L0.944824 1.13542C0.814941 1.00347 0.75 0.847223 0.75 0.666667C0.75 0.48611 0.814941 0.329862 0.944824 0.197917C1.07471 0.0659716 1.22851 0 1.40625 0H10.5938C10.7715 0 10.9253 0.0659716 11.0552 0.197917C11.1851 0.329862 11.25 0.48611 11.25 0.666667Z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"check-circle\\\" viewBox=\\\"0 0 24 24\\\">\\n<path d=\\\"M12 2.25C10.0716 2.25 8.18657 2.82183 6.58319 3.89317C4.97982 4.96452 3.73013 6.48726 2.99218 8.26884C2.25422 10.0504 2.06114 12.0108 2.43735 13.9021C2.81355 15.7934 3.74215 17.5307 5.10571 18.8943C6.46928 20.2579 8.20656 21.1865 10.0979 21.5627C11.9892 21.9389 13.9496 21.7458 15.7312 21.0078C17.5127 20.2699 19.0355 19.0202 20.1068 17.4168C21.1782 15.8134 21.75 13.9284 21.75 12C21.7473 9.41498 20.7192 6.93661 18.8913 5.10872C17.0634 3.28084 14.585 2.25273 12 2.25ZM16.2806 10.2806L11.0306 15.5306C10.961 15.6004 10.8783 15.6557 10.7872 15.6934C10.6962 15.7312 10.5986 15.7506 10.5 15.7506C10.4014 15.7506 10.3038 15.7312 10.2128 15.6934C10.1218 15.6557 10.039 15.6004 9.96938 15.5306L7.71938 13.2806C7.57865 13.1399 7.49959 12.949 7.49959 12.75C7.49959 12.551 7.57865 12.3601 7.71938 12.2194C7.86011 12.0786 8.05098 11.9996 8.25 11.9996C8.44903 11.9996 8.6399 12.0786 8.78063 12.2194L10.5 13.9397L15.2194 9.21937C15.2891 9.14969 15.3718 9.09442 15.4628 9.0567C15.5539 9.01899 15.6515 8.99958 15.75 8.99958C15.8486 8.99958 15.9461 9.01899 16.0372 9.0567C16.1282 9.09442 16.2109 9.14969 16.2806 9.21937C16.3503 9.28906 16.4056 9.37178 16.4433 9.46283C16.481 9.55387 16.5004 9.65145 16.5004 9.75C16.5004 9.84855 16.481 9.94613 16.4433 10.0372C16.4056 10.1282 16.3503 10.2109 16.2806 10.2806Z\\\" fill=\\\"#2D2D2D\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"check\\\" viewBox=\\\"0 0 24 24\\\">\\n<path d=\\\"M7.62706 17.4355L1.93746 11.7459L0 13.6697L7.62706 21.2968L24 4.92382L22.0762 3L7.62706 17.4355Z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"close\\\" viewBox=\\\"0 0 24 24\\\">\\n<g clip-path=\\\"url(#clip0)\\\">\\n<path d=\\\"M24 2.41714L21.5829 0L12 9.58286L2.41714 0L0 2.41714L9.58286 12L0 21.5829L2.41714 24L12 14.4171L21.5829 24L24 21.5829L14.4171 12L24 2.41714Z\\\"/>\\n</g>\\n<defs>\\n<clipPath id=\\\"clip0\\\">\\n<rect width=\\\"24\\\" height=\\\"24\\\" fill=\\\"white\\\"/>\\n</clipPath>\\n</defs>\\n\\n</symbol>\\n<symbol id=\\\"delta-down\\\" viewBox=\\\"0 0 24 24\\\">\\n<path d=\\\"M1.61487 5H22.3851C23.822 5 24.5405 6.73556 23.5233 7.75269L13.1422 18.1419C12.5126 18.7715 11.4874 18.7715 10.8578 18.1419L0.476659 7.75269C-0.540462 6.73556 0.177981 5 1.61487 5Z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"delta-up\\\" viewBox=\\\"0 0 24 24\\\">\\n<path d=\\\"M22.3828 18.6107H1.61718C0.179299 18.6107 -0.540772 16.8722 0.475946 15.8555L10.8587 5.47269C11.489 4.84244 12.511 4.84244 13.1412 5.47269L23.524 15.8555C24.5408 16.8722 23.8207 18.6107 22.3828 18.6107Z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"download\\\" viewBox=\\\"0 0 24 24\\\">\\n<path d=\\\"M2 24H21.7647V21.1765H2V24ZM21.7647 8.47059H16.1176V0H7.64706V8.47059H2L11.8824 18.3529L21.7647 8.47059Z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"edit\\\" viewBox=\\\"0 0 16 16\\\">\\n<g id=\\\"edit\\\">\\n<path id=\\\"&#xF0;&#x178;&#x2013;&#x8D; icon color\\\" fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M9.96354 1.84117C9.94878 1.8529 9.93456 1.86558 9.92097 1.87922L0.778116 11.0545C0.766444 11.0752 0.754799 11.0947 0.743545 11.1135C0.691872 11.2002 0.64843 11.273 0.64843 11.3798L0 15.3493C0 15.5445 0 15.6747 0.129686 15.8699C0.185139 15.9187 0.336764 16 0.518744 16L4.47416 15.2842C4.49293 15.2802 4.51051 15.2769 4.52726 15.2736C4.62256 15.2553 4.69107 15.2422 4.79838 15.1541L13.9412 5.9788L13.9414 5.97422L15.3679 4.59847C16.2109 3.90443 16.2109 2.57945 15.3679 1.75922L14.2007 0.623525C13.4875 -0.196703 12.0749 -0.213285 11.232 0.606942L9.96354 1.84117ZM11.0527 2.29683L13.6534 4.908L14.6547 3.89649C15.0438 3.50605 15.0438 2.85532 14.6547 2.46489L13.4875 1.29357C13.0985 0.903137 12.4501 0.903137 12.061 1.29357L11.0527 2.29683ZM1.68584 11.7052L1.1671 14.8287L4.27956 14.3081L4.63633 13.9501L2.04261 11.3472L1.68584 11.7052ZM2.75589 10.6314L10.31 3.05053L12.9037 5.65345L5.3496 13.2343L2.75589 10.6314Z\\\" fill=\\\"#515761\\\"/>\\n</g>\\n\\n</symbol>\\n<symbol id=\\\"ellipsis\\\" viewBox=\\\"0 0 24 24\\\">\\n<path d=\\\"M15.4839 12.4839C15.4839 14.4097 13.9258 15.9677 12 15.9677C10.0742 15.9677 8.51613 14.4097 8.51613 12.4839C8.51613 10.5581 10.0742 9 12 9C13.9258 9 15.4839 10.5581 15.4839 12.4839ZM20.5161 9C18.5903 9 17.0323 10.5581 17.0323 12.4839C17.0323 14.4097 18.5903 15.9677 20.5161 15.9677C22.4419 15.9677 24 14.4097 24 12.4839C24 10.5581 22.4419 9 20.5161 9ZM3.48387 9C1.55806 9 0 10.5581 0 12.4839C0 14.4097 1.55806 15.9677 3.48387 15.9677C5.40968 15.9677 6.96774 14.4097 6.96774 12.4839C6.96774 10.5581 5.40968 9 3.48387 9Z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"email\\\" viewBox=\\\"0 0 24 24\\\">\\n<path d=\\\"M21.6 2H2.4C1.08 2 0.012 3.08 0.012 4.4L0 18.8C0 20.12 1.08 21.2 2.4 21.2H21.6C22.92 21.2 24 20.12 24 18.8V4.4C24 3.08 22.92 2 21.6 2ZM21.6 6.8L12 12.8L2.4 6.8V4.4L12 10.4L21.6 4.4V6.8Z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"envelope\\\" viewBox=\\\"0 0 24 24\\\">\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M1.76745 4H22.2093C23.3208 4 24 5.00758 24 5.78008V18.2072C24 19.241 23.077 20 22.2005 20H1.81152C0.740495 20 0 19.0409 0 18.2836V5.77288C0 4.88644 0.826009 4 1.76745 4ZM1.53918 7.38281V17.926C1.53918 18.1752 1.71744 18.3694 1.92409 18.3694H22.0756C22.2823 18.3694 22.4605 18.1752 22.4605 17.926V7.38282L13.6319 13.6025C13.1447 13.9453 12.5778 14.1251 12 14.1251C11.4222 14.1251 10.8553 13.9453 10.3679 13.6024L1.53918 7.38281ZM11.2211 12.1181L2.15859 5.73437L21.8406 5.73438L12.7784 12.1181C12.3043 12.4522 11.6952 12.4522 11.2211 12.1181Z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"error-alt\\\" viewBox=\\\"0 0 16 16\\\"><path d=\\\"m15.69,4.37L11.63.31c-.2-.2-.47-.31-.75-.31h-5.74c-.28,0-.55.11-.75.31L.31,4.37c-.2.2-.31.47-.31.75v5.74c0,.28.11.55.31.75l4.17,4.17c.13.13.31.21.5.21h5.89c.28,0,.55-.11.75-.31l4.06-4.06c.2-.2.31-.47.31-.75v-5.74c0-.28-.11-.55-.31-.75Zm-7.69,9.13c-.69,0-1.25-.56-1.25-1.25s.56-1.25,1.25-1.25,1.25.56,1.25,1.25-.56,1.25-1.25,1.25Zm1.02-3.86c0,.1-.04.18-.11.26-.07.07-.16.11-.26.11h-1.26c-.1,0-.19-.04-.26-.11-.07-.07-.11-.16-.11-.26l-.53-6.27c0-.1.04-.18.11-.26.07-.07.16-.11.26-.11h2.38c.1,0,.19.04.26.11.07.07.11.16.11.26l-.59,6.27Z\\\"/>\\n</symbol>\\n<symbol id=\\\"error-round\\\" viewBox=\\\"0 0 24 24\\\">\\n<path d=\\\"M12 1.875C9.99747 1.875 8.0399 2.46882 6.37486 3.58137C4.70981 4.69392 3.41206 6.27523 2.64572 8.12533C1.87939 9.97543 1.67888 12.0112 2.06955 13.9753C2.46023 15.9393 3.42454 17.7435 4.84055 19.1595C6.25656 20.5755 8.06066 21.5398 10.0247 21.9305C11.9888 22.3211 14.0246 22.1206 15.8747 21.3543C17.7248 20.5879 19.3061 19.2902 20.4186 17.6251C21.5312 15.9601 22.125 14.0025 22.125 12C22.122 9.3156 21.0543 6.74199 19.1562 4.84383C17.258 2.94567 14.6844 1.87798 12 1.875ZM12 19.875C10.4425 19.875 8.91993 19.4131 7.62489 18.5478C6.32985 17.6825 5.32049 16.4526 4.72445 15.0136C4.12841 13.5747 3.97246 11.9913 4.27632 10.4637C4.58018 8.93606 5.3302 7.53287 6.43154 6.43153C7.53288 5.3302 8.93607 4.58017 10.4637 4.27632C11.9913 3.97246 13.5747 4.12841 15.0136 4.72445C16.4526 5.32049 17.6825 6.32985 18.5478 7.62488C19.4131 8.91992 19.875 10.4425 19.875 12C19.8728 14.0879 19.0424 16.0896 17.566 17.566C16.0896 19.0424 14.0879 19.8728 12 19.875ZM10.875 12.375V7.5C10.875 7.20163 10.9935 6.91548 11.2045 6.7045C11.4155 6.49353 11.7016 6.375 12 6.375C12.2984 6.375 12.5845 6.49353 12.7955 6.7045C13.0065 6.91548 13.125 7.20163 13.125 7.5V12.375C13.125 12.6734 13.0065 12.9595 12.7955 13.1705C12.5845 13.3815 12.2984 13.5 12 13.5C11.7016 13.5 11.4155 13.3815 11.2045 13.1705C10.9935 12.9595 10.875 12.6734 10.875 12.375ZM13.5 16.125C13.5 16.4217 13.412 16.7117 13.2472 16.9584C13.0824 17.205 12.8481 17.3973 12.574 17.5108C12.2999 17.6244 11.9983 17.6541 11.7074 17.5962C11.4164 17.5383 11.1491 17.3954 10.9393 17.1857C10.7296 16.9759 10.5867 16.7086 10.5288 16.4176C10.4709 16.1267 10.5007 15.8251 10.6142 15.551C10.7277 15.2769 10.92 15.0426 11.1666 14.8778C11.4133 14.713 11.7033 14.625 12 14.625C12.3978 14.625 12.7794 14.783 13.0607 15.0643C13.342 15.3456 13.5 15.7272 13.5 16.125Z\\\" fill=\\\"#343330\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"error\\\" viewBox=\\\"0 0 24 24\\\">\\n<path d=\\\"M12 1.875C9.99747 1.875 8.0399 2.46882 6.37486 3.58137C4.70981 4.69392 3.41206 6.27523 2.64572 8.12533C1.87939 9.97543 1.67888 12.0112 2.06955 13.9753C2.46023 15.9393 3.42454 17.7435 4.84055 19.1595C6.25656 20.5755 8.06066 21.5398 10.0247 21.9305C11.9888 22.3211 14.0246 22.1206 15.8747 21.3543C17.7248 20.5879 19.3061 19.2902 20.4186 17.6251C21.5312 15.9601 22.125 14.0025 22.125 12C22.122 9.3156 21.0543 6.74199 19.1562 4.84383C17.258 2.94567 14.6844 1.87798 12 1.875ZM12 19.875C10.4425 19.875 8.91993 19.4131 7.62489 18.5478C6.32985 17.6825 5.32049 16.4526 4.72445 15.0136C4.12841 13.5747 3.97246 11.9913 4.27632 10.4637C4.58018 8.93606 5.3302 7.53287 6.43154 6.43153C7.53288 5.3302 8.93607 4.58017 10.4637 4.27632C11.9913 3.97246 13.5747 4.12841 15.0136 4.72445C16.4526 5.32049 17.6825 6.32985 18.5478 7.62488C19.4131 8.91992 19.875 10.4425 19.875 12C19.8728 14.0879 19.0424 16.0896 17.566 17.566C16.0896 19.0424 14.0879 19.8728 12 19.875ZM10.875 12.375V7.5C10.875 7.20163 10.9935 6.91548 11.2045 6.7045C11.4155 6.49353 11.7016 6.375 12 6.375C12.2984 6.375 12.5845 6.49353 12.7955 6.7045C13.0065 6.91548 13.125 7.20163 13.125 7.5V12.375C13.125 12.6734 13.0065 12.9595 12.7955 13.1705C12.5845 13.3815 12.2984 13.5 12 13.5C11.7016 13.5 11.4155 13.3815 11.2045 13.1705C10.9935 12.9595 10.875 12.6734 10.875 12.375ZM13.5 16.125C13.5 16.4217 13.412 16.7117 13.2472 16.9584C13.0824 17.205 12.8481 17.3973 12.574 17.5108C12.2999 17.6244 11.9983 17.6541 11.7074 17.5962C11.4164 17.5383 11.1491 17.3954 10.9393 17.1857C10.7296 16.9759 10.5867 16.7086 10.5288 16.4176C10.4709 16.1267 10.5007 15.8251 10.6142 15.551C10.7277 15.2769 10.92 15.0426 11.1666 14.8778C11.4133 14.713 11.7033 14.625 12 14.625C12.3978 14.625 12.7794 14.783 13.0607 15.0643C13.342 15.3456 13.5 15.7272 13.5 16.125Z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"express-scripts\\\" viewBox=\\\"0 0 45 24\\\">\\n<path d=\\\"M6.5 6.03516V18.0139H15.0511V16.3152H8.33659V12.8007H13.817V11.1459H8.33659V7.68992H14.8014V6.03516H6.5Z\\\"/>\\n<path d=\\\"M31.2126 7.69285H33.8132C35.6351 7.69285 36.6489 8.5422 36.6489 10.0652C36.6489 11.6614 35.6939 12.5107 33.9014 12.5107H31.2126V7.69285ZM36.4285 6.53598C35.7086 6.19916 34.8564 6.02344 33.8132 6.02344H29.3613V18.0168H31.2126V14.1508H33.9161C35.4735 14.1508 36.6636 13.7701 37.4423 12.9793C38.1476 12.2764 38.5002 11.2953 38.5002 10.0505C38.5002 8.42505 37.7802 7.19495 36.4285 6.53598Z\\\"/>\\n<path d=\\\"M26.7284 6.00542L22.6974 10.0231L24.3596 11.6798L28.3907 7.66218L26.7284 6.00542Z\\\"/>\\n<path d=\\\"M20.3714 12.3522L16.2988 16.4113L17.9611 18.0681L22.0337 14.009L20.3714 12.3522Z\\\"/>\\n<path d=\\\"M17.9533 6L16.291 7.65676L20.2805 11.633L21.9427 9.97623L17.9533 6Z\\\"/>\\n<path d=\\\"M24.4313 12.4841L22.769 14.1409L26.7169 18.0757L28.3792 16.419L24.4313 12.4841Z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"external-file\\\" viewBox=\\\"0 0 12 13\\\">\\n<path d=\\\"M10.6667 11.1667H1.33333V1.83333H6V0.5H1.33333C0.593333 0.5 0 1.1 0 1.83333V11.1667C0 11.9 0.593333 12.5 1.33333 12.5H10.6667C11.4 12.5 12 11.9 12 11.1667V6.5H10.6667V11.1667ZM7.33333 0.5V1.83333H9.72667L3.17333 8.38667L4.11333 9.32667L10.6667 2.77333V5.16667H12V0.5H7.33333Z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"facebook\\\" viewBox=\\\"0 0 24 24\\\">\\n<path d=\\\"M17.5847 13.5L18.2513 9.15656H14.0836V6.33797C14.0836 5.14969 14.6658 3.99141 16.5324 3.99141H18.4271V0.293438C18.4271 0.293438 16.7077 0 15.0638 0C11.6316 0 9.38815 2.08031 9.38815 5.84625V9.15656H5.573V13.5H9.38815V24H14.0836V13.5H17.5847Z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"find-drug\\\" viewBox=\\\"0 0 24 24\\\">\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M16.7739 5.59104C16.7739 6.36535 16.4731 7.09165 15.9257 7.63883L12.2616 11.3031L8.16595 7.20731L11.83 3.54342C12.3774 2.99608 13.1039 2.69518 13.8779 2.69518C14.652 2.69518 15.3785 2.99607 15.9259 3.54342C16.4732 4.09087 16.7739 4.81703 16.7739 5.59104ZM3.54066 11.832L7.2047 8.16797L11.3004 12.2638L7.63627 15.9277C7.08879 16.4752 6.36243 16.7761 5.58845 16.7761C4.81446 16.7761 4.08811 16.4752 3.54062 15.9277C2.99336 15.3804 2.69238 14.6539 2.69238 13.8799C2.69238 13.1059 2.99331 12.3795 3.54066 11.832ZM13.8779 1.33594C12.7419 1.33594 11.6724 1.77895 10.869 2.58239L6.72436 6.72701L2.57995 10.8714C1.77653 11.675 1.3335 12.7443 1.3335 13.8803C1.3335 15.0163 1.77659 16.0858 2.57995 16.8892C3.38312 17.6926 4.45235 18.1354 5.58863 18.1354C6.72496 18.1354 7.79438 17.6925 8.59754 16.8892C8.59754 16.8892 12.739 12.754 12.7421 12.7448L12.7421 12.7448L12.743 12.7437L16.8867 8.59996C17.69 7.79669 18.133 6.72724 18.133 5.59128C18.133 4.45495 17.6901 3.38553 16.8867 2.58237C16.0835 1.77896 15.0141 1.33594 13.8779 1.33594ZM12.7466 12.7393L12.743 12.7437L12.7425 12.7442L12.7466 12.7393ZM12.778 12.7004C12.7742 12.7053 12.7648 12.7169 12.7466 12.7393C12.7634 12.7191 12.7721 12.7084 12.778 12.7004ZM21.214 14.1896C20.2761 13.2516 19.0278 12.7344 17.7013 12.7344C16.375 12.7344 15.1266 13.2516 14.1886 14.1896C13.2505 15.1277 12.7334 16.3758 12.7334 17.7023C12.7334 19.0287 13.2505 20.2769 14.1886 21.2149C15.1313 22.1574 16.3917 22.6677 17.7013 22.6677C19.0109 22.6677 20.2712 22.1575 21.2141 21.215C23.1511 19.2777 23.151 16.1266 21.214 14.1896ZM20.2534 20.2566C21.4875 19.0225 21.6472 17.0918 20.6879 15.6797L15.6763 20.6913C17.0884 21.6504 19.0193 21.4907 20.2534 20.2566ZM15.1498 15.1509C15.8317 14.4688 16.7369 14.0938 17.7014 14.0938C18.4328 14.0938 19.1323 14.3103 19.727 14.7159L14.7149 19.7282C14.3093 19.1335 14.0928 18.4339 14.0928 17.7026C14.0928 16.738 14.4677 15.8328 15.1497 15.151L14.9596 14.9608L15.1498 15.1509Z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"globe\\\" viewBox=\\\"0 0 16 16\\\">\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M8 16C12.4183 16 16 12.4183 16 8C16 3.58172 12.4183 0 8 0C3.58172 0 0 3.58172 0 8C0 12.4183 3.58172 16 8 16ZM9.96661 14.4241C11.6165 13.9237 12.9965 12.8029 13.8354 11.3333H11.2975C10.9487 12.7195 10.4242 13.7362 9.96661 14.4241ZM8.11204 14.7105C8.69142 14.0313 9.43024 12.9258 9.89827 11.3333H6.10173C6.56959 12.9252 7.30805 14.0305 7.88732 14.7098C7.93218 14.7107 7.97715 14.7111 8.02222 14.7111C8.05221 14.7111 8.08215 14.7109 8.11204 14.7105ZM11.5553 10H14.4139C14.6071 9.37494 14.7111 8.71073 14.7111 8.02222C14.7111 7.31737 14.6021 6.63798 14.4 6H11.555C11.6398 6.61136 11.6889 7.27776 11.6889 8.00143C11.6889 8.72403 11.64 9.38948 11.5553 10ZM10.199 6C10.2982 6.61144 10.3556 7.27785 10.3556 8.00143C10.3556 8.72394 10.2984 9.3894 10.1995 10H5.80054C5.70165 9.3894 5.64444 8.72394 5.64444 8.00143C5.64444 7.27785 5.70182 6.61144 5.80098 6H10.199ZM11.2969 4.66667H13.8098C12.9748 3.22953 11.6198 2.13189 10.0025 1.63131C10.4511 2.31811 10.9572 3.31747 11.2969 4.66667ZM8.14947 1.33452C8.72262 2.01721 9.43951 3.10914 9.89755 4.66667H6.10245C6.56027 3.1099 7.27668 2.01828 7.84969 1.33552C7.90703 1.33406 7.96454 1.33333 8.02222 1.33333C8.06473 1.33333 8.10715 1.33373 8.14947 1.33452ZM4.31111 8.00143C4.31111 7.27776 4.36019 6.61136 4.44504 6H1.64446C1.44236 6.63798 1.33333 7.31737 1.33333 8.02222C1.33333 8.71073 1.43736 9.37494 1.63055 10H4.44467C4.36005 9.38948 4.31111 8.72403 4.31111 8.00143ZM4.70309 4.66667C5.03991 3.32892 5.54031 2.33511 5.98609 1.64888C4.39342 2.15727 3.06002 3.24612 2.23463 4.66667H4.70309ZM6.02197 14.4069C5.56711 13.7193 5.04836 12.708 4.70248 11.3333H2.20903C3.03842 12.7863 4.39684 13.8983 6.02197 14.4069Z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"hand-heart\\\" viewBox=\\\"0 0 24 24\\\">\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M18.8633 6.37599C18.8633 4.00007 16.9586 2.06689 14.6169 2.06689C13.6521 2.06689 12.7366 2.3909 11.9886 2.99415C11.2408 2.39094 10.3251 2.06689 9.36004 2.06689C7.01834 2.06689 5.11365 4.00007 5.11365 6.37599C5.11365 7.46864 5.51888 8.51059 6.25344 9.30707C6.34663 9.40923 7.27838 10.3373 8.79443 11.8405C9.34465 12.3861 9.94116 12.977 10.5472 13.5769L11.568 14.5871C11.6819 14.6997 11.8324 14.7606 11.9886 14.7606C12.1447 14.7606 12.295 14.6998 12.4089 14.5871L13.4298 13.577C14.0373 12.9756 14.6328 12.3857 15.1824 11.8409C16.6989 10.3374 17.6297 9.41039 17.7224 9.30867C18.458 8.51064 18.8633 7.46882 18.8633 6.37599ZM17.6595 6.37603C17.6595 7.15902 17.3691 7.90502 16.8411 8.47811C16.7113 8.61872 14.6385 10.6761 11.9887 13.2983C9.33771 10.675 7.26583 8.61846 7.13464 8.47643C6.60784 7.90485 6.3176 7.15879 6.3176 6.37603C6.3176 4.67249 7.68278 3.28677 9.36014 3.28677C10.1933 3.28677 10.9707 3.62382 11.5503 4.23657C11.7786 4.47775 12.1986 4.47765 12.427 4.23662C13.0068 3.62395 13.7842 3.28677 14.617 3.28677C16.2943 3.28677 17.6595 4.67249 17.6595 6.37603Z\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M1.93161 5.6856C2.31754 5.70342 2.68601 5.8379 2.98255 6.16806C3.35404 6.58167 3.54636 7.22971 3.54671 8.14149C3.5469 8.61064 3.54749 8.97662 3.54876 9.54947L3.54989 10.0687C3.55144 10.8491 3.55127 11.4775 3.54848 12.3103C3.60735 12.2143 3.67628 12.1191 3.75528 12.0247C4.1594 11.6181 4.65803 11.4673 5.11039 11.6081C5.46132 11.7173 5.71276 11.9047 6.19135 12.3557C6.31595 12.4775 6.68621 12.8237 7.05785 13.1712C7.40791 13.4986 7.75921 13.8271 7.90759 13.9702C8.2716 14.3213 8.5854 14.64 8.86943 14.9511C9.97137 16.1582 10.5701 17.1726 10.6366 18.2185L10.638 18.7353C10.6391 19.1903 10.6396 19.65 10.6394 20.079C10.6389 20.9361 10.6354 21.5452 10.6279 21.8047C10.6187 22.0995 10.3772 22.3337 10.0827 22.3335H5.45546C5.15426 22.3335 4.91009 22.0891 4.91007 21.7876V20.6296L0.447721 15.635L0.266275 15.3786C0.22202 15.2877 0.192818 15.1806 0.160963 15.0296C0.121543 14.8428 0.0930125 14.6161 0.0706823 14.3291C0.0326036 13.8398 0.0141141 13.2037 0.0102116 12.3903C0.00847483 12.0283 0.00907258 11.6465 0.0115811 11.1268L0.0137272 10.7164C0.0214539 9.2968 0.0203448 8.73215 0.00182946 8.159C-0.0453225 6.6994 0.824869 5.63441 1.93161 5.6856ZM4.51606 15.0669C4.3093 14.848 4.09273 14.6461 3.84355 14.4345C3.74788 14.3532 3.65217 14.2744 3.52849 14.1744C3.5729 14.2103 3.30164 13.9916 3.23777 13.9393C3.00267 13.7468 2.86513 13.6216 2.7432 13.4792C2.56095 13.2663 2.45494 13.0325 2.45601 12.7716C2.46044 11.6918 2.46101 10.986 2.4592 10.0716L2.45806 9.54983C2.45678 8.9784 2.4562 8.61178 2.45601 8.14176C2.45576 7.47858 2.34123 7.08322 2.17654 6.89986C2.09231 6.80608 2.0282 6.78324 1.88955 6.77683C1.44592 6.75629 1.06349 7.22619 1.09251 8.1243C1.11188 8.72388 1.113 9.30196 1.10492 10.733L1.10319 11.045C1.10017 11.6179 1.09935 12.0099 1.10117 12.3877C1.10542 13.2744 1.11837 13.8187 1.15148 14.2441C1.16941 14.4746 1.19517 14.6736 1.22311 14.806C1.22647 14.8219 1.23141 14.8376 1.23774 14.8532C1.24267 14.8654 1.24765 14.8759 1.25554 14.8911L1.27086 14.9111C1.27976 14.9226 1.28178 14.9252 1.28305 14.9298L5.86459 20.0547C5.95577 20.1581 6.00449 20.2922 6.00103 20.423V21.2417H9.54044C9.54389 20.8489 9.54576 20.2734 9.54634 19.5772C9.5466 19.2566 9.54653 18.8891 9.54648 18.624L9.5465 18.2749C9.49133 17.5631 8.96276 16.6775 8.05785 15.6862C7.75887 15.3587 7.42297 15.0197 7.01589 14.6296C6.92656 14.544 6.69786 14.3294 6.43896 14.0864C6.0513 13.7227 5.59545 13.2949 5.4391 13.1422C5.13561 12.8562 4.90412 12.6863 4.78665 12.6498C4.70677 12.6249 4.70462 12.6256 4.59067 12.7353C4.57716 12.7499 4.57094 12.7566 4.56656 12.761C4.39746 12.9693 4.34462 13.0959 4.35469 13.1858C4.36683 13.2943 4.48781 13.4846 4.75581 13.7588L4.85584 13.8617C4.9356 13.9438 5.03812 14.0492 5.07886 14.0908C5.15928 14.1727 5.22942 14.243 5.28122 14.2947C5.30591 14.3154 5.32873 14.3382 5.3307 14.3427C5.39749 14.4079 5.46152 14.4699 5.56593 14.5706C5.93772 14.9293 6.06585 15.0549 6.24401 15.2394C6.3007 15.298 6.35446 15.3549 6.40771 15.4126C6.53937 15.5582 6.5831 15.7632 6.5223 15.9499C6.46152 16.1366 6.30552 16.2765 6.11344 16.3165C5.92136 16.3565 5.72258 16.2905 5.5962 16.1478C5.34823 15.8793 5.09497 15.6254 4.60051 15.1426C4.56718 15.1186 4.53764 15.0919 4.51606 15.0669Z\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M20.4512 9.54957L20.4501 10.0688C20.4485 10.8486 20.4487 11.4767 20.4515 12.3086C20.3946 12.216 20.3286 12.1247 20.2535 12.0348C20.2381 12.0181 20.232 12.0115 20.2257 12.0053L20.2106 11.9909C19.8406 11.6181 19.342 11.4674 18.8896 11.6082C18.5386 11.7174 18.2872 11.9048 17.8122 12.3524C17.6855 12.4761 17.3128 12.8246 16.9399 13.1733C16.5903 13.5003 16.2404 13.8275 16.0924 13.9703C15.7284 14.3213 15.4146 14.6401 15.1305 14.9512C14.0286 16.1583 13.4298 17.1727 13.3634 18.2354L13.3619 18.7352C13.3609 19.1903 13.3603 19.65 13.3606 20.0791C13.3611 20.9362 13.3646 21.5453 13.372 21.8041C13.3813 22.0996 13.6228 22.3337 13.9174 22.3336H18.5445C18.8457 22.3336 19.0899 22.0892 19.0899 21.7877V20.6297L23.5778 15.6094L23.7337 15.3787C23.7779 15.2877 23.8072 15.1806 23.839 15.0296C23.8784 14.8429 23.907 14.6161 23.9293 14.3292C23.9674 13.8398 23.9859 13.2038 23.9898 12.3903C23.9915 12.0284 23.9909 11.6465 23.9884 11.1269L23.9862 10.7164C23.9785 9.29684 23.9796 8.73219 23.9981 8.15906C24.0453 6.69946 23.1751 5.63446 22.0683 5.68561C21.6824 5.70349 21.3139 5.83796 21.0174 6.16812C20.6459 6.58174 20.4536 7.22978 20.4533 8.14156C20.4531 8.61071 20.4525 8.9767 20.4512 9.54957ZM22.7768 14.8059C22.7733 14.8225 22.7684 14.8386 22.7623 14.8545C22.757 14.8685 22.752 14.8795 22.7403 14.9037L18.1365 20.0534C18.0441 20.1582 17.9954 20.2923 17.9989 20.4301L17.9989 21.2418H14.4595C14.456 20.849 14.4541 20.2734 14.4536 19.5772C14.4531 19.0434 14.4536 18.3767 14.454 18.2398C14.5031 17.5722 15.0325 16.6826 15.942 15.6862C16.241 15.3587 16.5769 15.0197 16.984 14.6296C17.1107 14.5082 17.5189 14.1262 17.8972 13.7722C18.1301 13.5542 18.352 13.3466 18.4904 13.2164L18.5691 13.1424C18.8783 12.8517 19.1024 12.6843 19.2132 12.6498C19.2931 12.6249 19.2953 12.6256 19.448 12.7753C19.6005 12.9648 19.6554 13.0943 19.6452 13.1858C19.6331 13.2943 19.5121 13.4846 19.2441 13.7588L19.1441 13.8617C19.0643 13.9437 18.9618 14.0492 18.921 14.0908C18.8406 14.1727 18.7705 14.243 18.7032 14.3087L18.6944 14.317C18.6904 14.3209 18.6866 14.325 18.6762 14.3359L18.4416 14.5626C18.0326 14.9572 17.8828 15.1047 17.6859 15.3123C17.6544 15.3455 17.6238 15.3781 17.5941 15.4104C17.4605 15.558 17.4168 15.763 17.4776 15.9498C17.5384 16.1365 17.6944 16.2764 17.8864 16.3164C18.0785 16.3564 18.2773 16.2904 18.4075 16.1435C18.6536 15.8771 18.906 15.624 19.4087 15.1331C19.436 15.1132 19.4613 15.0907 19.4845 15.0661C19.6906 14.8479 19.9072 14.6459 20.1563 14.4343C20.252 14.3531 20.3477 14.2743 20.4714 14.1743C20.427 14.2102 20.6982 13.9914 20.7621 13.9391C20.9972 13.7466 21.1348 13.6215 21.2567 13.479C21.4389 13.2661 21.5449 13.0324 21.5439 12.7715C21.5394 11.6917 21.5389 10.9859 21.5407 10.0714L21.5418 9.5497C21.5431 8.97827 21.5437 8.61165 21.5439 8.14163C21.5441 7.47845 21.6586 7.0831 21.8234 6.89972C21.9036 6.81034 21.9656 6.7854 22.1103 6.77683C22.554 6.7563 22.9364 7.22619 22.9074 8.1243C22.888 8.72381 22.8869 9.30178 22.895 10.7326L22.8967 11.0452C22.8997 11.6179 22.9005 12.0099 22.8987 12.3877C22.8945 13.2743 22.8815 13.8186 22.8484 14.2441C22.8305 14.4745 22.8047 14.6735 22.7768 14.8059Z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"help\\\" viewBox=\\\"0 0 24 24\\\">\\n<path d=\\\"M13.5 16.875C13.5 17.1717 13.412 17.4617 13.2472 17.7084C13.0824 17.955 12.8481 18.1473 12.574 18.2608C12.2999 18.3744 11.9983 18.4041 11.7074 18.3462C11.4164 18.2883 11.1491 18.1454 10.9393 17.9357C10.7296 17.7259 10.5867 17.4586 10.5288 17.1676C10.4709 16.8767 10.5007 16.5751 10.6142 16.301C10.7277 16.0269 10.92 15.7926 11.1666 15.6278C11.4133 15.463 11.7033 15.375 12 15.375C12.3978 15.375 12.7794 15.533 13.0607 15.8143C13.342 16.0956 13.5 16.4772 13.5 16.875ZM22.125 12C22.125 14.0025 21.5312 15.9601 20.4186 17.6251C19.3061 19.2902 17.7248 20.5879 15.8747 21.3543C14.0246 22.1206 11.9888 22.3211 10.0247 21.9305C8.06066 21.5398 6.25656 20.5755 4.84055 19.1595C3.42454 17.7435 2.46023 15.9393 2.06955 13.9753C1.67888 12.0112 1.87939 9.97543 2.64572 8.12533C3.41206 6.27523 4.70981 4.69392 6.37486 3.58137C8.0399 2.46882 9.99747 1.875 12 1.875C14.6844 1.87798 17.258 2.94567 19.1562 4.84383C21.0543 6.74199 22.122 9.3156 22.125 12ZM19.875 12C19.875 10.4425 19.4131 8.91992 18.5478 7.62488C17.6825 6.32985 16.4526 5.32049 15.0136 4.72445C13.5747 4.12841 11.9913 3.97246 10.4637 4.27632C8.93607 4.58017 7.53288 5.3302 6.43154 6.43153C5.3302 7.53287 4.58018 8.93606 4.27632 10.4637C3.97246 11.9913 4.12841 13.5747 4.72445 15.0136C5.32049 16.4526 6.32985 17.6825 7.62489 18.5478C8.91993 19.4131 10.4425 19.875 12 19.875C14.0879 19.8728 16.0896 19.0424 17.566 17.566C19.0424 16.0896 19.8728 14.0879 19.875 12ZM12 6C9.72563 6 7.875 7.68188 7.875 9.75V10.125C7.875 10.4234 7.99353 10.7095 8.20451 10.9205C8.41549 11.1315 8.70164 11.25 9 11.25C9.29837 11.25 9.58452 11.1315 9.7955 10.9205C10.0065 10.7095 10.125 10.4234 10.125 10.125V9.75C10.125 8.92313 10.9688 8.25 12 8.25C13.0313 8.25 13.875 8.92313 13.875 9.75C13.875 10.5769 13.0313 11.25 12 11.25C11.7016 11.25 11.4155 11.3685 11.2045 11.5795C10.9935 11.7905 10.875 12.0766 10.875 12.375V13.125C10.8743 13.4029 10.9766 13.6713 11.162 13.8783C11.3475 14.0854 11.603 14.2164 11.8793 14.2462C12.1557 14.276 12.4333 14.2025 12.6586 14.0398C12.8839 13.8771 13.0411 13.6367 13.0997 13.365C14.8416 12.9262 16.125 11.4722 16.125 9.75C16.125 7.68188 14.2744 6 12 6Z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"info\\\" viewBox=\\\"0 0 24 24\\\">\\n<path d=\\\"M12 21.75C10.0716 21.75 8.18657 21.1782 6.58319 20.1068C4.97982 19.0355 3.73013 17.5127 2.99218 15.7312C2.25422 13.9496 2.06114 11.9892 2.43735 10.0979C2.81355 8.20655 3.74215 6.46927 5.10571 5.10571C6.46928 3.74215 8.20656 2.81355 10.0979 2.43734C11.9892 2.06114 13.9496 2.25422 15.7312 2.99218C17.5127 3.73013 19.0355 4.97981 20.1068 6.58319C21.1782 8.18657 21.75 10.0716 21.75 12C21.7473 14.585 20.7192 17.0634 18.8913 18.8913C17.0634 20.7192 14.585 21.7473 12 21.75ZM11.25 16.5C11.25 16.6989 11.329 16.8897 11.4697 17.0303C11.6103 17.171 11.8011 17.25 12 17.25C12.1989 17.25 12.3897 17.171 12.5303 17.0303C12.671 16.8897 12.75 16.6989 12.75 16.5V11.25C12.75 11.0511 12.671 10.8603 12.5303 10.7197C12.3897 10.579 12.1989 10.5 12 10.5C11.8011 10.5 11.6103 10.579 11.4697 10.7197C11.329 10.8603 11.25 11.0511 11.25 11.25V16.5ZM12 6.75C11.7775 6.75 11.56 6.81598 11.375 6.9396C11.19 7.06321 11.0458 7.23891 10.9606 7.44448C10.8755 7.65005 10.8532 7.87625 10.8966 8.09448C10.94 8.3127 11.0472 8.51316 11.2045 8.67049C11.3618 8.82783 11.5623 8.93498 11.7805 8.97838C11.9988 9.02179 12.225 8.99951 12.4305 8.91436C12.6361 8.82922 12.8118 8.68502 12.9354 8.50002C13.059 8.31501 13.125 8.0975 13.125 7.875C13.125 7.57663 13.0065 7.29048 12.7955 7.07951C12.5845 6.86853 12.2984 6.75 12 6.75Z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"instagram\\\" viewBox=\\\"0 0 24 24\\\">\\n<g clip-path=\\\"url(#clip0)\\\">\\n<path d=\\\"M11.9998 0C13.6248 0 14.6951 0.004 15.2106 0.012C15.7261 0.02 16.3043 0.0395 16.9453 0.0705C17.5863 0.1015 18.1371 0.164 18.5976 0.258C19.0581 0.352 19.4761 0.477 19.8516 0.633C20.2581 0.7895 20.6331 0.977 20.9766 1.1955C21.3201 1.414 21.6561 1.6875 21.9846 2.016C22.3131 2.3445 22.5866 2.6805 22.8051 3.024C23.0236 3.3675 23.2111 3.7425 23.3676 4.149C23.5241 4.524 23.6491 4.942 23.7426 5.403C23.8361 5.864 23.8986 6.41475 23.9301 7.05525C23.9616 7.69575 23.9811 8.274 23.9886 8.79C23.9961 9.306 24.0001 10.3762 24.0006 12.0007C24.0011 13.6252 23.9971 14.6955 23.9886 15.2115C23.9801 15.7275 23.9606 16.3057 23.9301 16.9462C23.8996 17.5868 23.8371 18.1375 23.7426 18.5985C23.6481 19.0595 23.5231 19.4775 23.3676 19.8525C23.2111 20.259 23.0236 20.634 22.8051 20.9775C22.5866 21.321 22.3131 21.657 21.9846 21.9855C21.6561 22.314 21.3201 22.5875 20.9766 22.806C20.6331 23.0245 20.2581 23.212 19.8516 23.3685C19.4766 23.525 19.0586 23.65 18.5976 23.7435C18.1366 23.837 17.5858 23.8995 16.9453 23.931C16.3048 23.9625 15.7266 23.982 15.2106 23.9895C14.6946 23.997 13.6243 24.001 11.9998 24.0015C10.3753 24.002 9.30507 23.998 8.78907 23.9895C8.27307 23.981 7.69482 23.9615 7.05432 23.931C6.41382 23.9005 5.86307 23.838 5.40207 23.7435C4.94107 23.649 4.52307 23.524 4.14807 23.3685C3.74157 23.212 3.36657 23.0245 3.02307 22.806C2.67957 22.5875 2.34356 22.314 2.01507 21.9855C1.68657 21.657 1.41307 21.321 1.19457 20.9775C0.976065 20.634 0.788565 20.259 0.632065 19.8525C0.475565 19.4775 0.350565 19.0595 0.257065 18.5985C0.163565 18.1375 0.101065 17.5868 0.0695651 16.9462C0.0380651 16.3057 0.0185651 15.7275 0.0110651 15.2115C0.0035651 14.6955 -0.000434896 13.6252 -0.000934896 12.0007C-0.0014349 10.3762 0.0025651 9.306 0.0110651 8.79C0.0195651 8.274 0.0390651 7.69575 0.0695651 7.05525C0.100065 6.41475 0.162565 5.864 0.257065 5.403C0.351565 4.942 0.476565 4.524 0.632065 4.149C0.788565 3.7425 0.976065 3.3675 1.19457 3.024C1.41307 2.6805 1.68657 2.3445 2.01507 2.016C2.34356 1.6875 2.67957 1.414 3.02307 1.1955C3.36657 0.977 3.74157 0.7895 4.14807 0.633C4.52307 0.4765 4.94107 0.3515 5.40207 0.258C5.86307 0.1645 6.41382 0.102 7.05432 0.0705C7.69482 0.039 8.27307 0.0195 8.78907 0.012C9.30507 0.0045 10.3753 0.0005 11.9998 0V0ZM11.9998 2.15625C10.3903 2.15625 9.33957 2.16025 8.84756 2.16825C8.35557 2.17625 7.78907 2.19575 7.14807 2.22675C6.57007 2.25825 6.10907 2.31675 5.76507 2.40225C5.42106 2.48775 5.13981 2.56975 4.92132 2.64825C4.63981 2.75775 4.39382 2.88275 4.18332 3.02325C3.97282 3.16375 3.75807 3.33575 3.53907 3.53925C3.33607 3.75825 3.16407 3.973 3.02307 4.1835C2.88207 4.394 2.75707 4.64 2.64807 4.9215C2.57007 5.1405 2.48807 5.42175 2.40207 5.76525C2.31607 6.10875 2.25757 6.56975 2.22657 7.14825C2.19507 7.78875 2.17557 8.35525 2.16807 8.84775C2.16057 9.34025 2.15656 10.391 2.15606 12C2.15557 13.609 2.15956 14.6597 2.16807 15.1522C2.17657 15.6447 2.19607 16.2113 2.22657 16.8517C2.25807 17.4298 2.31657 17.8907 2.40207 18.2347C2.48757 18.5788 2.56957 18.86 2.64807 19.0785C2.75757 19.36 2.88257 19.606 3.02307 19.8165C3.16357 20.027 3.33557 20.2418 3.53907 20.4608C3.75807 20.6637 3.97282 20.8358 4.18332 20.9767C4.39382 21.1178 4.63981 21.2428 4.92132 21.3517C5.14032 21.4298 5.42157 21.5118 5.76507 21.5978C6.10856 21.6838 6.56957 21.7423 7.14807 21.7733C7.78857 21.8048 8.35507 21.8242 8.84756 21.8317C9.34007 21.8392 10.3908 21.8433 11.9998 21.8438C13.6088 21.8442 14.6596 21.8403 15.1521 21.8317C15.6446 21.8232 16.2111 21.8038 16.8516 21.7733C17.4296 21.7418 17.8906 21.6833 18.2346 21.5978C18.5786 21.5123 18.8598 21.4303 19.0783 21.3517C19.3598 21.2423 19.6058 21.1173 19.8163 20.9767C20.0268 20.8363 20.2416 20.6642 20.4606 20.4608C20.6636 20.2418 20.8356 20.027 20.9766 19.8165C21.1176 19.606 21.2426 19.36 21.3516 19.0785C21.4296 18.8595 21.5116 18.5782 21.5976 18.2347C21.6836 17.8913 21.7421 17.4303 21.7731 16.8517C21.8046 16.2113 21.8241 15.6447 21.8316 15.1522C21.8391 14.6597 21.8431 13.609 21.8436 12C21.8441 10.391 21.8401 9.34025 21.8316 8.84775C21.8231 8.35525 21.8036 7.78875 21.7731 7.14825C21.7416 6.57025 21.6831 6.10925 21.5976 5.76525C21.5121 5.42125 21.4301 5.14 21.3516 4.9215C21.2421 4.64 21.1171 4.394 20.9766 4.1835C20.8361 3.973 20.6641 3.75825 20.4606 3.53925C20.2416 3.33625 20.0268 3.16425 19.8163 3.02325C19.6058 2.88225 19.3598 2.75725 19.0783 2.64825C18.8593 2.57025 18.5781 2.48825 18.2346 2.40225C17.8911 2.31625 17.4301 2.25775 16.8516 2.22675C16.2111 2.19525 15.6446 2.17575 15.1521 2.16825C14.6596 2.16075 13.6088 2.15675 11.9998 2.15625ZM11.9998 5.83575C12.8438 5.83575 13.6408 5.99975 14.3908 6.32775C15.1408 6.64025 15.7971 7.07775 16.3596 7.64025C16.9221 8.20275 17.3596 8.859 17.6721 9.609C18.0001 10.359 18.1641 11.156 18.1641 12C18.1641 12.844 18.0001 13.641 17.6721 14.391C17.3596 15.141 16.9221 15.7972 16.3596 16.3597C15.7971 16.9222 15.1408 17.3598 14.3908 17.6722C13.6408 18.0002 12.8438 18.1642 11.9998 18.1642C11.1558 18.1642 10.3588 18.0002 9.60882 17.6722C8.85882 17.3598 8.20257 16.9222 7.64007 16.3597C7.07757 15.7972 6.64007 15.141 6.32757 14.391C5.99957 13.641 5.83557 12.844 5.83557 12C5.83557 11.156 5.99957 10.359 6.32757 9.609C6.64007 8.859 7.07757 8.20275 7.64007 7.64025C8.20257 7.07775 8.85882 6.64025 9.60882 6.32775C10.3588 5.99975 11.1558 5.83575 11.9998 5.83575ZM11.9998 16.008C13.1093 16.008 14.0546 15.6173 14.8356 14.8358C15.6166 14.0542 16.0073 13.109 16.0078 12C16.0083 10.891 15.6176 9.94575 14.8356 9.16425C14.0536 8.38275 13.1083 7.992 11.9998 7.992C10.8913 7.992 9.94606 8.38275 9.16407 9.16425C8.38206 9.94575 7.99132 10.891 7.99182 12C7.99232 13.109 8.38307 14.0542 9.16407 14.8358C9.94507 15.6173 10.8903 16.008 11.9998 16.008ZM19.8516 5.60175C19.8516 5.99225 19.7108 6.32825 19.4293 6.60975C19.1478 6.89125 18.8041 7.032 18.3981 7.032C18.0076 7.032 17.6716 6.89125 17.3901 6.60975C17.1086 6.32825 16.9678 5.99225 16.9678 5.60175C16.9678 5.19525 17.1086 4.8515 17.3901 4.5705C17.6716 4.2895 18.0076 4.14875 18.3981 4.14825C18.8046 4.14825 19.1483 4.289 19.4293 4.5705C19.7103 4.852 19.8511 5.19575 19.8516 5.60175Z\\\"/>\\n</g>\\n<defs>\\n<clipPath id=\\\"clip0\\\">\\n<rect width=\\\"24\\\" height=\\\"24\\\" fill=\\\"white\\\"/>\\n</clipPath>\\n</defs>\\n\\n</symbol>\\n<symbol id=\\\"keyboard-arrow-down\\\" viewBox=\\\"0 0 24 24\\\">\\n<path d=\\\"M2.82 5L12 14.16L21.18 5L24 7.82L12 19.82L0 7.82L2.82 5Z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"keyboard-arrow-left\\\" viewBox=\\\"0 0 24 24\\\">\\n<path d=\\\"M19 21.18L9.84 12L19 2.82L16.18 0L4.18 12L16.18 24L19 21.18Z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"keyboard-arrow-right\\\" viewBox=\\\"0 0 24 24\\\">\\n<path d=\\\"M5 21.18L14.16 12L5 2.82L7.82 0L19.82 12L7.82 24L5 21.18Z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"keyboard-arrow-up\\\" viewBox=\\\"0 0 24 24\\\">\\n<path d=\\\"M2.82 19.82L12 10.66L21.18 19.82L24 17L12 5.00001L0 17L2.82 19.82Z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"language\\\" viewBox=\\\"0 0 24 24\\\">\\n<path d=\\\"M11.988 0C5.364 0 0 5.376 0 12C0 18.624 5.364 24 11.988 24C18.624 24 24 18.624 24 12C24 5.376 18.624 0 11.988 0ZM20.304 7.2H16.764C16.38 5.7 15.828 4.26 15.108 2.928C17.316 3.684 19.152 5.22 20.304 7.2ZM12 2.448C12.996 3.888 13.776 5.484 14.292 7.2H9.708C10.224 5.484 11.004 3.888 12 2.448ZM2.712 14.4C2.52 13.632 2.4 12.828 2.4 12C2.4 11.172 2.52 10.368 2.712 9.6H6.768C6.672 10.392 6.6 11.184 6.6 12C6.6 12.816 6.672 13.608 6.768 14.4H2.712ZM3.696 16.8H7.236C7.62 18.3 8.172 19.74 8.892 21.072C6.684 20.316 4.848 18.792 3.696 16.8ZM7.236 7.2H3.696C4.848 5.208 6.684 3.684 8.892 2.928C8.172 4.26 7.62 5.7 7.236 7.2ZM12 21.552C11.004 20.112 10.224 18.516 9.708 16.8H14.292C13.776 18.516 12.996 20.112 12 21.552ZM14.808 14.4H9.192C9.084 13.608 9 12.816 9 12C9 11.184 9.084 10.38 9.192 9.6H14.808C14.916 10.38 15 11.184 15 12C15 12.816 14.916 13.608 14.808 14.4ZM15.108 21.072C15.828 19.74 16.38 18.3 16.764 16.8H20.304C19.152 18.78 17.316 20.316 15.108 21.072ZM17.232 14.4C17.328 13.608 17.4 12.816 17.4 12C17.4 11.184 17.328 10.392 17.232 9.6H21.288C21.48 10.368 21.6 11.172 21.6 12C21.6 12.828 21.48 13.632 21.288 14.4H17.232Z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"light-bulb\\\" viewBox=\\\"0 0 24 24\\\">\\n<path d=\\\"M9.42857 21.15C9.42857 21.6175 9.81429 22 10.2857 22H13.7143C14.1857 22 14.5714 21.6175 14.5714 21.15V20.3H9.42857V21.15ZM12 5C8.69143 5 6 7.669 6 10.95C6 12.973 7.02 14.7495 8.57143 15.829V17.75C8.57143 18.2175 8.95714 18.6 9.42857 18.6H14.5714C15.0429 18.6 15.4286 18.2175 15.4286 17.75V15.829C16.98 14.7495 18 12.973 18 10.95C18 7.669 15.3086 5 12 5ZM14.4429 14.435L13.7143 14.945V16.9H10.2857V14.945L9.55714 14.435C8.4 13.636 7.71429 12.3355 7.71429 10.95C7.71429 8.604 9.63429 6.7 12 6.7C14.3657 6.7 16.2857 8.604 16.2857 10.95C16.2857 12.3355 15.6 13.636 14.4429 14.435Z\\\" fill=\\\"#2D2D2D\\\"/>\\n<path d=\\\"M11 4H13V1H11V4Z\\\" fill=\\\"#2D2D2D\\\"/>\\n<path d=\\\"M19 12H22V10H19V12Z\\\" fill=\\\"#2D2D2D\\\"/>\\n<path d=\\\"M2 12H5V10H2V12Z\\\" fill=\\\"#2D2D2D\\\"/>\\n<path d=\\\"M6.6988 6.60573L8.10593 5.1986L5.98463 3.0773L4.5775 4.48443L6.6988 6.60573Z\\\" fill=\\\"#2D2D2D\\\"/>\\n<path d=\\\"M17.2945 6.6128L19.4158 4.4915L18.0087 3.08437L15.8874 5.20567L17.2945 6.6128Z\\\" fill=\\\"#2D2D2D\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"linkedin\\\" viewBox=\\\"0 0 24 24\\\">\\n<path d=\\\"M5.37214 23.9999H0.396429V7.97672H5.37214V23.9999ZM2.88161 5.79101C1.29054 5.79101 0 4.47315 0 2.88208C1.13882e-08 2.11783 0.303597 1.38488 0.844003 0.844476C1.38441 0.30407 2.11736 0.000473022 2.88161 0.000473022C3.64586 0.000473022 4.3788 0.30407 4.91921 0.844476C5.45962 1.38488 5.76321 2.11783 5.76321 2.88208C5.76321 4.47315 4.47214 5.79101 2.88161 5.79101ZM23.9946 23.9999H19.0296V16.1999C19.0296 14.341 18.9921 11.9571 16.4427 11.9571C13.8557 11.9571 13.4593 13.9767 13.4593 16.066V23.9999H8.48893V7.97672H13.2611V10.1624H13.3307C13.995 8.90351 15.6177 7.57494 18.0386 7.57494C23.0743 7.57494 24 10.891 24 15.1982V23.9999H23.9946Z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"location-on\\\" viewBox=\\\"0 0 24 24\\\">\\n<path d=\\\"M12.4 0C7.756 0 4 3.756 4 8.4C4 14.7 12.4 24 12.4 24C12.4 24 20.8 14.7 20.8 8.4C20.8 3.756 17.044 0 12.4 0ZM12.4 11.4C10.744 11.4 9.4 10.056 9.4 8.4C9.4 6.744 10.744 5.4 12.4 5.4C14.056 5.4 15.4 6.744 15.4 8.4C15.4 10.056 14.056 11.4 12.4 11.4Z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"menu\\\" viewBox=\\\"0 0 24 24\\\">\\n<path d=\\\"M0 20H24V17.3333H0V20ZM0 13.3333H24V10.6667H0V13.3333ZM0 4V6.66667H24V4H0Z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"minus\\\" viewBox=\\\"0 0 16 16\\\">\\n<path d=\\\"M0 6.5v3c0 0.276 0.224 0.5 0.5 0.5h15c0.276 0 0.5-0.224 0.5-0.5v-3c0-0.276-0.224-0.5-0.5-0.5h-15c-0.276 0-0.5 0.224-0.5 0.5z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"neutral\\\" viewBox=\\\"0 0 15 16\\\">\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M11.0063 8.25944C13.2363 8.85249 14.7361 10.8239 14.7361 13.1599V15.456C14.7361 15.7564 14.4926 16 14.1922 16H1.11033C0.809926 16 0.566406 15.7564 0.566406 15.456V13.1599C0.566406 10.8239 2.0662 8.8525 4.29604 8.25944L4.78957 8.1282C5.00405 8.07145 5.13952 8.10421 5.79489 8.33238C6.71562 8.65309 7.22051 8.79235 7.64985 8.79235C8.07878 8.79235 8.58343 8.65326 9.50491 8.33269C10.1625 8.10397 10.2988 8.07105 10.5131 8.12827L11.0063 8.25944ZM7.64965 7.29968C5.6371 7.29968 4.00014 5.66267 4.00014 3.65001C4.00014 1.63717 5.6371 0 7.64965 0C9.66254 0 11.2998 1.63718 11.2998 3.65001C11.2998 5.66267 9.66254 7.29968 7.64965 7.29968Z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"new-rx-icon\\\" viewBox=\\\"0 0 50 56\\\">\\n<g id=\\\"New Rx Icon\\\">\\n<g id=\\\"Group 4\\\">\\n<g id=\\\"Group\\\">\\n<path id=\\\"Path\\\" fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M8.10358 29.5645C11.3937 29.5645 17.9739 29.5645 17.9739 29.5645C19.3284 29.5645 19.6399 29.918 19.6399 31.4546V43.6501C19.6399 45.1854 19.3284 45.5384 17.9739 45.5384H16.0057H7.96484L8.00526 47.3086H15.1933H17.9739C20.2188 47.3086 21.2642 46.1458 21.2642 43.6501V31.4546C21.2642 28.9576 20.2188 27.7944 17.9739 27.7944C17.9739 27.7944 11.4107 27.7944 8.12906 27.7944C7.95809 27.7944 7.98946 29.5645 8.10358 29.5645Z\\\" fill=\\\"#515761\\\"/>\\n<path id=\\\"Path_2\\\" fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M24.8303 25.414V48.8859C24.8303 50.2405 24.4769 50.552 22.9404 50.552H10.746C9.21094 50.552 8.8579 50.2405 8.8579 48.8859V46.9175V28.3328V25.414C8.8579 24.9649 8.46168 24.6016 7.9729 24.6016C7.48412 24.6016 7.08789 24.9649 7.08789 25.414V29.1449V46.105V48.8859C7.08789 51.131 8.25056 52.1765 10.746 52.1765H22.9404C25.4372 52.1765 26.6004 51.131 26.6004 48.8859V25.414C26.6004 24.9649 26.2041 24.6016 25.7153 24.6016C25.2266 24.6016 24.8303 24.9649 24.8303 25.414Z\\\" fill=\\\"#515761\\\"/>\\n<path id=\\\"Fill 3\\\" fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M6.08655 21.7679H27.4565V17.4297H6.08655V21.7679ZM28.3058 15.6055H5.23774C4.76881 15.6055 4.38867 16.0129 4.38867 16.5166V22.6766C4.38867 23.1798 4.76881 23.5877 5.23774 23.5877H28.3058C28.7743 23.5877 29.1545 23.1798 29.1545 22.6766V16.5166C29.1545 16.0129 28.7743 15.6055 28.3058 15.6055Z\\\" fill=\\\"#515761\\\"/>\\n</g>\\n<g id=\\\"Group 3\\\">\\n<path id=\\\"Oval\\\" d=\\\"M43.8687 17.3353C43.8687 24.4211 38.1056 30.1706 30.99 30.1706C23.8743 30.1706 18.1113 24.4211 18.1113 17.3353C18.1113 10.2495 23.8743 4.5 30.99 4.5C38.1056 4.5 43.8687 10.2495 43.8687 17.3353Z\\\" fill=\\\"#F8F8F9\\\" stroke=\\\"#515761\\\" stroke-width=\\\"2\\\"/>\\n<path id=\\\"&#xF0;&#x178;&#x2013;&#x8D; expand icon color\\\" fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M29.8235 16.1726V11.5809C29.8235 10.9386 30.3458 10.418 30.9901 10.418C31.6344 10.418 32.1567 10.9386 32.1567 11.5809V16.1726H36.7629C37.4072 16.1726 37.9294 16.6933 37.9294 17.3356C37.9294 17.9779 37.4072 18.4986 36.7629 18.4986H32.1567V23.0903C32.1567 23.7326 31.6344 24.2533 30.9901 24.2533C30.3458 24.2533 29.8235 23.7326 29.8235 23.0903V18.4986H25.2173C24.5731 18.4986 24.0508 17.9779 24.0508 17.3356C24.0508 16.6933 24.5731 16.1726 25.2173 16.1726H29.8235Z\\\" fill=\\\"#009BDF\\\"/>\\n</g>\\n</g>\\n</g>\\n\\n</symbol>\\n<symbol id=\\\"notifications\\\" viewBox=\\\"0 0 24 24\\\">\\n<path d=\\\"M11.8462 24C13.2 24 14.3077 22.8923 14.3077 21.5385H9.38462C9.38462 22.8923 10.48 24 11.8462 24ZM19.2308 16.6154V10.4615C19.2308 6.68308 17.2123 3.52 13.6923 2.68308V1.84615C13.6923 0.824615 12.8677 0 11.8462 0C10.8246 0 10 0.824615 10 1.84615V2.68308C6.46769 3.52 4.46154 6.67077 4.46154 10.4615V16.6154L2 19.0769V20.3077H21.6923V19.0769L19.2308 16.6154Z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"open\\\" viewBox=\\\"0 0 24 24\\\">\\n<path d=\\\"M9.81818 8.72727H14.1818V5.45455H17.4545L12 0L6.54545 5.45455H9.81818V8.72727ZM8.72727 9.81818H5.45455V6.54545L0 12L5.45455 17.4545V14.1818H8.72727V9.81818ZM24 12L18.5455 6.54545V9.81818H15.2727V14.1818H18.5455V17.4545L24 12ZM14.1818 15.2727H9.81818V18.5455H6.54545L12 24L17.4545 18.5455H14.1818V15.2727Z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"order-status\\\" viewBox=\\\"0 0 24 24\\\">\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M16.4415 5.17969H8.01281C7.71292 5.17969 7.46875 5.41512 7.46875 5.70312V7.82997C7.46875 8.12026 7.71292 8.35454 8.01281 8.35454H8.4407V17.9625C8.4407 19.334 9.39013 19.6208 10.1878 19.6208H14.2475C15.044 19.6208 15.9958 19.334 15.9958 17.9625V8.35454H16.4415C16.7414 8.35454 16.9844 8.12026 16.9844 7.82997V5.70312C16.9844 5.41512 16.7414 5.17969 16.4415 5.17969ZM14.545 17.9625C14.545 18.0917 14.5332 18.1637 14.5237 18.1991C14.4846 18.2094 14.4016 18.2243 14.2475 18.2243H10.1878C10.0338 18.2243 9.95078 18.2094 9.91167 18.1991C9.90218 18.1637 9.89033 18.0917 9.89033 17.9625V17.2711H13.2021C13.502 17.2711 13.7461 17.0368 13.7461 16.7465V10.1797C13.7461 9.89054 13.502 9.65626 13.2021 9.65626H9.89033V8.80597H14.545V17.9625ZM9.89033 16.2231H12.658V10.7054H9.89033V16.2231ZM8.55686 7.30654H15.8975V6.22883H8.55686V7.30654Z\\\" fill=\\\"#973894\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M11.9702 0.607422C10.0677 0.607422 8.2483 1.02685 6.56398 1.85314C5.5375 2.35599 4.5857 3.00971 3.74769 3.77656V3.11142C3.74769 2.72628 3.42292 2.41314 3.02228 2.41314C2.62165 2.41314 2.29688 2.72628 2.29688 3.11142V5.60285C2.29688 5.60742 2.29806 5.61085 2.29806 5.61542C2.29806 5.62914 2.29925 5.64056 2.29925 5.65428C2.30043 5.66457 2.30162 5.67599 2.3028 5.68628C2.30399 5.69771 2.30636 5.70799 2.30754 5.71942C2.30991 5.73085 2.31228 5.74342 2.31465 5.75485C2.31703 5.76514 2.3194 5.77428 2.32295 5.78342C2.32651 5.79714 2.33006 5.80856 2.33362 5.82114C2.33718 5.83028 2.34073 5.83942 2.34429 5.84856C2.34903 5.86114 2.35377 5.87142 2.35851 5.88399C2.36325 5.89314 2.36799 5.90342 2.37392 5.91371C2.37866 5.92399 2.3834 5.93314 2.38933 5.94228C2.39526 5.95371 2.40237 5.96399 2.40948 5.97542C2.41422 5.98342 2.42015 5.99142 2.42607 5.99942C2.43437 6.01085 2.44148 6.02114 2.45096 6.03142C2.45689 6.03828 2.46282 6.04628 2.46874 6.05314C2.47704 6.06228 2.48652 6.07256 2.49482 6.08171C2.50312 6.08856 2.51023 6.09656 2.51853 6.10456C2.52682 6.11142 2.53512 6.11942 2.5446 6.12742C2.55409 6.13542 2.56357 6.14342 2.57305 6.15142C2.57779 6.15371 2.58135 6.15714 2.5849 6.15942C2.58965 6.16285 2.59439 6.16628 2.59913 6.16971C2.61098 6.17771 2.62165 6.18457 2.6335 6.19142C2.6418 6.19714 2.65128 6.20285 2.66076 6.20742C2.67143 6.21428 2.68329 6.21999 2.69514 6.22571L2.72477 6.23942C2.73544 6.24399 2.74729 6.24856 2.75914 6.25314C2.76981 6.25656 2.78048 6.26114 2.79115 6.26456C2.803 6.26799 2.81367 6.27142 2.82552 6.27485L2.8599 6.28285C2.87175 6.28514 2.88242 6.28742 2.89427 6.28971C2.90731 6.29199 2.91916 6.29428 2.9322 6.29542C2.94168 6.29657 2.95353 6.29771 2.9642 6.29771C2.97724 6.29885 2.99028 6.29999 3.0045 6.29999C3.01043 6.29999 3.01636 6.30114 3.02228 6.30114H5.60507C6.0057 6.30114 6.33047 5.98799 6.33047 5.60285C6.33047 5.21656 6.0057 4.90342 5.60507 4.90342H4.61771C6.56753 3.04628 9.17402 2.00514 11.9702 2.00514C17.7521 2.00514 22.4566 6.54114 22.4566 12.116C22.4566 12.9114 22.3606 13.7034 22.1709 14.4691C22.0785 14.8451 22.3191 15.2211 22.709 15.3103C22.7647 15.324 22.8216 15.3309 22.8774 15.3309C23.2057 15.3309 23.502 15.1137 23.5814 14.7926C23.7983 13.9206 23.9062 13.02 23.9062 12.116C23.9062 5.77085 18.5522 0.607422 11.9702 0.607422Z\\\" fill=\\\"#973894\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M21.607 18.857C21.607 18.8456 21.6058 18.8342 21.6046 18.8239C21.6022 18.8125 21.601 18.8022 21.5987 18.7907L21.5915 18.7542C21.5892 18.745 21.5868 18.737 21.5844 18.7267C21.5821 18.7142 21.5773 18.7016 21.5738 18.6902C21.5702 18.6799 21.5667 18.6707 21.5631 18.6616C21.5584 18.6502 21.5536 18.6388 21.5477 18.6273L21.5335 18.5965C21.5287 18.5873 21.524 18.577 21.5181 18.5667C21.5121 18.5565 21.505 18.5473 21.4979 18.5359C21.492 18.5279 21.4861 18.5188 21.4813 18.5107C21.4742 18.5005 21.4659 18.4902 21.4564 18.4799C21.4505 18.4719 21.4446 18.4639 21.4375 18.4559C21.4303 18.4479 21.4209 18.4387 21.4126 18.4296C21.4043 18.4216 21.396 18.4136 21.3889 18.4056C21.3806 18.3987 21.3723 18.3907 21.3628 18.3839C21.3533 18.3747 21.3426 18.3667 21.3343 18.3587C21.3296 18.3576 21.326 18.3542 21.3225 18.3507C21.3177 18.3473 21.313 18.3439 21.3071 18.3405C21.2964 18.3336 21.2857 18.3256 21.2739 18.3187C21.2656 18.313 21.2561 18.3085 21.2466 18.3039C21.236 18.297 21.2241 18.2913 21.2122 18.2845C21.2028 18.2799 21.1921 18.2753 21.1838 18.2707C21.1719 18.2662 21.1601 18.2616 21.1471 18.2582C21.1376 18.2536 21.1269 18.2502 21.1162 18.2467C21.1044 18.2422 21.0925 18.2387 21.0819 18.2353C21.07 18.233 21.0582 18.2296 21.0463 18.2273C21.0356 18.2239 21.025 18.2227 21.0131 18.2205C21.0001 18.2182 20.9882 18.2159 20.9764 18.2147C20.9645 18.2147 20.9538 18.2136 20.942 18.2125C20.9301 18.2113 20.9159 18.2102 20.9029 18.2102C20.897 18.2102 20.891 18.209 20.8851 18.209H18.3023C17.9017 18.209 17.5781 18.5222 17.5781 18.9085C17.5781 19.2947 17.9017 19.6067 18.3023 19.6067H19.2897C17.3387 21.4639 14.7322 22.505 11.9372 22.505C6.15411 22.505 1.45082 17.9702 1.45082 12.3942C1.45082 11.5987 1.54683 10.8079 1.73529 10.041C1.82774 9.66618 1.58831 9.28903 1.19834 9.19875C0.809564 9.10961 0.418413 9.34161 0.324774 9.71761C0.110234 10.5896 0 11.4902 0 12.3942C0 18.7393 5.35522 23.9027 11.9372 23.9027C13.8396 23.9027 15.6579 23.4845 17.3422 22.657C18.3699 22.1542 19.3217 21.5005 20.1597 20.7336V21.3987C20.1597 21.785 20.4845 22.097 20.8851 22.097C21.2857 22.097 21.6105 21.785 21.6105 21.3987V18.9085C21.6105 18.9039 21.6093 18.8993 21.6093 18.8947C21.6093 18.881 21.6081 18.8696 21.607 18.857Z\\\" fill=\\\"#973894\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"pause\\\" viewBox=\\\"0 0 24 24\\\">\\n<path d=\\\"M1 24H7.85714V0H1V24ZM14.7143 0V24H21.5714V0H14.7143Z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"people\\\" viewBox=\\\"0 0 25 25\\\">\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M21.7224 20.5437C21.7224 17.7393 20.0056 15.4788 17.3401 14.7699L16.7447 14.6115C16.6474 14.6385 16.4842 14.6918 16.2567 14.7701C16.1308 14.8137 16.1308 14.8136 16.0433 14.844C15.7385 14.9501 15.5942 14.9997 15.4084 15.0615C14.9434 15.2161 14.5432 15.3348 14.1589 15.427C13.6243 15.5553 13.1487 15.6241 12.7247 15.6241C11.8391 15.6241 10.9984 15.3982 9.40563 14.8433C9.31807 14.8128 9.31807 14.8128 9.22801 14.7816C8.9672 14.6917 8.80524 14.6387 8.70831 14.6116L8.1136 14.7699C5.44804 15.4787 3.73133 17.7391 3.73133 20.5437V23.172H21.7224V20.5437ZM17.7595 13.1929C21.1045 14.0824 23.3542 17.0395 23.3542 20.5435V23.9878C23.3542 24.4384 22.9889 24.8036 22.5383 24.8036H2.91549C2.46489 24.8036 2.09961 24.4384 2.09961 23.9878V20.5435C2.09961 17.0396 4.3493 14.0825 7.69406 13.1929L8.43436 12.996C8.75608 12.9109 8.95929 12.96 9.94233 13.3023C11.3234 13.7833 12.0808 13.9922 12.7248 13.9922C13.3682 13.9922 14.1251 13.7836 15.5074 13.3027C16.4938 12.9597 16.6983 12.9103 17.0196 12.9961L17.7595 13.1929ZM12.7245 11.7532C9.70564 11.7532 7.25021 9.29772 7.25021 6.27872C7.25021 3.25947 9.70565 0.803711 12.7245 0.803711C15.7438 0.803711 18.1997 3.25948 18.1997 6.27872C18.1997 9.29772 15.7438 11.7532 12.7245 11.7532ZM12.7243 2.43544C10.6057 2.43544 8.88156 4.15967 8.88156 6.27869C8.88156 8.39733 10.6058 10.1217 12.7243 10.1217C14.8433 10.1217 16.5678 8.39734 16.5678 6.27869C16.5678 4.15965 14.8435 2.43544 12.7243 2.43544Z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"person-bubble\\\" viewBox=\\\"0 0 24 18\\\">\\n<path d=\\\"M21.5516 1H7.05411C5.88354 1.00132 4.93494 1.93161 4.93359 3.07959V5.35997C4.93359 5.624 5.15184 5.83804 5.42107 5.83804C5.69029 5.83804 5.90854 5.624 5.90854 5.35997V3.07959C5.90854 2.78227 6.02898 2.49712 6.24336 2.28688C6.45774 2.07664 6.7485 1.95852 7.05167 1.95852H21.5492C21.8524 1.95852 22.1431 2.07664 22.3575 2.28688C22.5719 2.49712 22.6923 2.78227 22.6923 3.07959V11.1828C22.6923 11.802 22.1805 12.3039 21.5492 12.3039H9.38668C9.11746 12.3039 8.89921 12.5179 8.89921 12.782C8.89921 13.046 9.11746 13.26 9.38668 13.26H21.5492C22.7198 13.2587 23.6684 12.3284 23.6697 11.1804V3.0772C23.667 1.93108 22.7203 1.00263 21.5516 1V1Z\\\" stroke=\\\"#14568d\\\" stroke-width=\\\"0.4\\\"/>\\n<path d=\\\"M10.676 5.83309H18.6169C18.8862 5.83309 19.1044 5.61905 19.1044 5.35502C19.1044 5.09099 18.8862 4.87695 18.6169 4.87695H10.676C10.4067 4.87695 10.1885 5.09099 10.1885 5.35502C10.1885 5.61905 10.4067 5.83309 10.676 5.83309Z\\\" stroke=\\\"#14568D\\\" stroke-width=\\\"0.4\\\"/>\\n<path d=\\\"M10.676 9.20027H16.4403C16.7096 9.20027 16.9278 8.98624 16.9278 8.72221C16.9278 8.45818 16.7096 8.24414 16.4403 8.24414H10.676C10.4067 8.24414 10.1885 8.45818 10.1885 8.72221C10.1885 8.98624 10.4067 9.20027 10.676 9.20027Z\\\" stroke=\\\"#14568D\\\" stroke-width=\\\"0.4\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M8.13917 9.8101C8.13917 11.2477 6.9508 12.4132 5.48487 12.4132C4.0195 12.4119 2.83191 11.2472 2.83057 9.8101C2.83057 8.37247 4.01894 7.20703 5.48487 7.20703C6.9508 7.20703 8.13917 8.37247 8.13917 9.8101ZM7.15902 9.81013C7.15902 8.90319 6.40933 8.16797 5.48454 8.16797V8.17036C4.56125 8.17167 3.81274 8.90467 3.81006 9.81013C3.81006 10.7171 4.55975 11.4523 5.48454 11.4523C6.40933 11.4523 7.15902 10.7171 7.15902 9.81013Z\\\"/>\\n<path d=\\\"M5.48487 12.4132L5.48474 12.5632H5.48487V12.4132ZM2.83057 9.8101H2.68057L2.68057 9.81024L2.83057 9.8101ZM5.48454 8.16797V8.01797H5.33454V8.16797H5.48454ZM5.48454 8.17036L5.48475 8.32036L5.63454 8.32015V8.17036H5.48454ZM3.81006 9.81013L3.66006 9.80968V9.81013H3.81006ZM5.48487 12.5632C7.03088 12.5632 8.28917 11.3333 8.28917 9.8101H7.98917C7.98917 11.1622 6.87073 12.2632 5.48487 12.2632V12.5632ZM2.68057 9.81024C2.68199 11.3328 3.93939 12.5618 5.48474 12.5632L5.48501 12.2632C4.0996 12.2619 2.98183 11.1616 2.98057 9.80996L2.68057 9.81024ZM5.48487 7.05703C3.93887 7.05703 2.68057 8.28688 2.68057 9.8101H2.98057C2.98057 8.45805 4.09901 7.35703 5.48487 7.35703V7.05703ZM8.28917 9.8101C8.28917 8.28688 7.03088 7.05703 5.48487 7.05703V7.35703C6.87073 7.35703 7.98917 8.45805 7.98917 9.8101H8.28917ZM5.48454 8.31797C6.32925 8.31797 7.00902 8.98877 7.00902 9.81013H7.30902C7.30902 8.8176 6.4894 8.01797 5.48454 8.01797V8.31797ZM5.63454 8.17036V8.16797H5.33454V8.17036H5.63454ZM3.96006 9.81057C3.96249 8.99042 4.6413 8.32156 5.48475 8.32036L5.48432 8.02036C4.48121 8.02178 3.663 8.81891 3.66006 9.80968L3.96006 9.81057ZM5.48454 11.3023C4.63982 11.3023 3.96006 10.6315 3.96006 9.81013H3.66006C3.66006 10.8027 4.47967 11.6023 5.48454 11.6023V11.3023ZM7.00902 9.81013C7.00902 10.6315 6.32925 11.3023 5.48454 11.3023V11.6023C6.4894 11.6023 7.30902 10.8027 7.30902 9.81013H7.00902Z\\\"/>\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M1 17.3338C1.00269 14.9058 3.00902 12.9382 5.48477 12.9355C7.95902 12.9408 9.96309 14.9073 9.96711 17.3338C9.96711 17.5978 9.74886 17.8118 9.47964 17.8118H1.48748C1.21825 17.8118 1 17.5978 1 17.3338ZM5.48449 13.8945C3.73599 13.8945 2.25454 15.1575 2.01123 16.8556H2.02098H8.95776C8.71445 15.1575 7.233 13.8945 5.48449 13.8945Z\\\"/>\\n<path d=\\\"M5.48477 12.9355L5.48499 12.8355L5.48467 12.8355L5.48477 12.9355ZM1 17.3338L0.9 17.3337V17.3338H1ZM9.96711 17.3338H10.0671L10.0671 17.3336L9.96711 17.3338ZM2.01123 16.8556L1.91224 16.8414L1.89588 16.9556H2.01123V16.8556ZM8.95776 16.8556V16.9556H9.07311L9.05675 16.8414L8.95776 16.8556ZM5.48467 12.8355C2.95561 12.8382 0.90275 14.8487 0.9 17.3337L1.1 17.3339C1.10262 14.9629 3.06243 13.0381 5.48488 13.0355L5.48467 12.8355ZM10.0671 17.3336C10.063 14.8502 8.01248 12.8409 5.48499 12.8355L5.48456 13.0355C7.90557 13.0407 9.86318 14.9643 9.86711 17.3339L10.0671 17.3336ZM9.47964 17.9118C9.80224 17.9118 10.0671 17.6548 10.0671 17.3338H9.86711C9.86711 17.5407 9.69548 17.7118 9.47964 17.7118V17.9118ZM1.48748 17.9118H9.47964V17.7118H1.48748V17.9118ZM0.9 17.3338C0.9 17.6548 1.16487 17.9118 1.48748 17.9118V17.7118C1.27163 17.7118 1.1 17.5407 1.1 17.3338H0.9ZM2.11022 16.8698C2.34627 15.2224 3.78427 13.9945 5.48449 13.9945V13.7945C3.68771 13.7945 2.16281 15.0926 1.91224 16.8414L2.11022 16.8698ZM2.02098 16.7556H2.01123V16.9556H2.02098V16.7556ZM8.95776 16.7556H2.02098V16.9556H8.95776V16.7556ZM5.48449 13.9945C7.18472 13.9945 8.62272 15.2224 8.85877 16.8698L9.05675 16.8414C8.80617 15.0926 7.28128 13.7945 5.48449 13.7945V13.9945Z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"person\\\" viewBox=\\\"0 0 24 24\\\">\\n<path d=\\\"M12 12C15.315 12 18 9.315 18 6C18 2.685 15.315 0 12 0C8.685 0 6 2.685 6 6C6 9.315 8.685 12 12 12ZM12 15C7.995 15 0 17.01 0 21V24H24V21C24 17.01 16.005 15 12 15Z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"pinterest\\\" viewBox=\\\"0 0 24 24\\\">\\n<path d=\\\"M12.5625 0.304688C7.75313 0.304688 3 3.51094 3 8.7C3 12 4.85625 13.875 5.98125 13.875C6.44531 13.875 6.7125 12.5813 6.7125 12.2156C6.7125 11.7797 5.60156 10.8516 5.60156 9.0375C5.60156 5.26875 8.47031 2.59688 12.1828 2.59688C15.375 2.59688 17.7375 4.41094 17.7375 7.74375C17.7375 10.2328 16.7391 14.9016 13.5047 14.9016C12.3375 14.9016 11.3391 14.0578 11.3391 12.8484C11.3391 11.0766 12.5766 9.36094 12.5766 7.53281C12.5766 4.42969 8.175 4.99219 8.175 8.74219C8.175 9.52969 8.27344 10.4016 8.625 11.1188C7.97813 13.9031 6.65625 18.0516 6.65625 20.9203C6.65625 21.8063 6.78281 22.6781 6.86719 23.5641C7.02656 23.7422 6.94688 23.7234 7.19063 23.6344C9.55313 20.4 9.46875 19.7672 10.5375 15.5344C11.1141 16.6313 12.6047 17.2219 13.7859 17.2219C18.7641 17.2219 21 12.3703 21 7.99688C21 3.34219 16.9781 0.304688 12.5625 0.304688Z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"play-arrow\\\" viewBox=\\\"0 0 24 24\\\">\\n<path d=\\\"M3 0V24L21.8571 12L3 0Z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"play-circle-outline\\\" viewBox=\\\"0 0 24 24\\\">\\n<g clip-path=\\\"url(#clip0)\\\">\\n<path d=\\\"M9.6 17.4L16.8 12L9.6 6.6V17.4ZM12 0C5.376 0 0 5.376 0 12C0 18.624 5.376 24 12 24C18.624 24 24 18.624 24 12C24 5.376 18.624 0 12 0ZM12 21.6C6.708 21.6 2.4 17.292 2.4 12C2.4 6.708 6.708 2.4 12 2.4C17.292 2.4 21.6 6.708 21.6 12C21.6 17.292 17.292 21.6 12 21.6Z\\\"/>\\n</g>\\n<defs>\\n<clipPath id=\\\"clip0\\\">\\n<rect width=\\\"24\\\" height=\\\"24\\\" fill=\\\"white\\\"/>\\n</clipPath>\\n</defs>\\n\\n</symbol>\\n<symbol id=\\\"progress-spinner\\\" viewBox=\\\"0 0 32 32\\\">\\n <g fill=\\\"#515761\\\">\\n <path d=\\\"M12.722 3.813c0-2.105 1.73-3.813 3.864-3.813 2.135 0 3.865 1.708 3.864 3.813 0 2.106-1.73 3.814-3.864 3.814s-3.864-1.708-3.864-3.814Zm-5.629.423c-1.94 0-3.512 1.552-3.512 3.467 0 1.914 1.573 3.466 3.512 3.466 1.941 0 3.513-1.552 3.513-3.466 0-1.915-1.572-3.467-3.513-3.467Zm-3.931 9.713c1.746 0 3.161 1.398 3.161 3.12 0 1.724-1.415 3.12-3.161 3.12S0 18.793 0 17.07c0-1.722 1.416-3.12 3.162-3.12Zm1.945 14.448a2.746 2.746 0 0 1 0-3.92 2.836 2.836 0 0 1 3.975 0 2.746 2.746 0 0 1 0 3.92 2.838 2.838 0 0 1-3.975 0Zm11.478-1.251c-1.357 0-2.458 1.086-2.458 2.428 0 1.339 1.1 2.426 2.458 2.426 1.359 0 2.46-1.087 2.46-2.426 0-1.342-1.101-2.428-2.46-2.428ZM28.253 17.07c0-.959.786-1.734 1.756-1.734s1.758.775 1.758 1.733c0 .958-.787 1.734-1.758 1.734-.97 0-1.756-.776-1.756-1.734Zm-3.665 7.896a2.061 2.061 0 0 0 0 2.941 2.128 2.128 0 0 0 2.981 0 2.062 2.062 0 0 0 0-2.941 2.128 2.128 0 0 0-2.981 0Zm3.03-17.396c0 .766-.628 1.386-1.405 1.386-.776 0-1.405-.62-1.405-1.387a1.395 1.395 0 0 1 1.404-1.385 1.395 1.395 0 0 1 1.406 1.385Z\\\"/>\\n </g>\\n\\n</symbol>\\n<symbol id=\\\"replay\\\" viewBox=\\\"0 0 24 24\\\">\\n<path d=\\\"M11.6 4.8V0L5.6 6L11.6 12V7.2C15.572 7.2 18.8 10.428 18.8 14.4C18.8 18.372 15.572 21.6 11.6 21.6C7.628 21.6 4.4 18.372 4.4 14.4H2C2 19.704 6.296 24 11.6 24C16.904 24 21.2 19.704 21.2 14.4C21.2 9.096 16.904 4.8 11.6 4.8Z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"rss-feed\\\" viewBox=\\\"0 0 24 24\\\">\\n<path d=\\\"M6.18 20C7.38398 20 8.36 19.024 8.36 17.82C8.36 16.616 7.38398 15.64 6.18 15.64C4.97602 15.64 4 16.616 4 17.82C4 19.024 4.97602 20 6.18 20Z\\\"/>\\n<path d=\\\"M4 4.44V7.27C11.03 7.27 16.73 12.97 16.73 20H19.56C19.56 11.41 12.59 4.44 4 4.44ZM4 10.1V12.93C7.9 12.93 11.07 16.1 11.07 20H13.9C13.9 14.53 9.47 10.1 4 10.1Z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"rx\\\" viewBox=\\\"0 0 44 45\\\">\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M0.19043 22.1904C0.19043 34.2881 9.99753 44.0952 22.0952 44.0952C34.1929 44.0952 44 34.2881 44 22.1904C44 10.0927 34.1929 0.285645 22.0952 0.285645C9.99753 0.285645 0.19043 10.0927 0.19043 22.1904ZM42.1746 22.1904C42.1746 33.2799 33.1847 42.2698 22.0952 42.2698C11.0057 42.2698 2.01583 33.2799 2.01583 22.1904C2.01583 11.1009 11.0057 2.11104 22.0952 2.11104C33.1847 2.11104 42.1746 11.1009 42.1746 22.1904ZM30.1697 26.5406H27.8761L25.9503 28.6906L20.5423 21.7943C23.2421 21.564 25.3696 19.292 25.3696 16.5276C25.3696 13.611 23.0021 11.238 20.0918 11.238H13.8809V30.1682H15.5905V21.8172H18.3889L24.7925 29.983L21.733 33.3991L21.761 33.4245H24.004L25.8632 31.3488L27.4908 33.4245H29.662L27.0207 30.0564L30.1697 26.5406ZM20.0918 12.9514H15.5905V20.1039H20.0918C22.0595 20.1039 23.66 18.4996 23.66 16.5276C23.66 14.5556 22.0595 12.9514 20.0918 12.9514Z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"search\\\" viewBox=\\\"0 0 24 24\\\">\\n<g clip-path=\\\"url(#clip0)\\\">\\n<path d=\\\"M17.1527 15.0943H16.0686L15.6844 14.7238C17.0292 13.1595 17.8388 11.1286 17.8388 8.91938C17.8388 3.99314 13.8456 0 8.91938 0C3.99314 0 0 3.99314 0 8.91938C0 13.8456 3.99314 17.8388 8.91938 17.8388C11.1286 17.8388 13.1595 17.0292 14.7238 15.6844L15.0943 16.0686V17.1527L21.9554 24L24 21.9554L17.1527 15.0943ZM8.91938 15.0943C5.50257 15.0943 2.74443 12.3362 2.74443 8.91938C2.74443 5.50257 5.50257 2.74443 8.91938 2.74443C12.3362 2.74443 15.0943 5.50257 15.0943 8.91938C15.0943 12.3362 12.3362 15.0943 8.91938 15.0943Z\\\"/>\\n</g>\\n<defs>\\n<clipPath id=\\\"clip0\\\">\\n<rect width=\\\"24\\\" height=\\\"24\\\" fill=\\\"white\\\"/>\\n</clipPath>\\n</defs>\\n\\n</symbol>\\n<symbol id=\\\"shop\\\" viewBox=\\\"0 0 32 28\\\">\\n<path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" d=\\\"M29.6229 18.8C29.232 19.9938 28.4794 20.9298 27.5457 21.5265C28.1819 22.2079 28.5664 23.1364 28.5664 24.1766C28.5664 26.3273 26.923 28 24.81 28C22.697 28 21.0535 26.3273 21.0535 24.1766C21.0535 23.4746 21.2286 22.8236 21.538 22.265H14.3474C14.6568 22.8236 14.8319 23.4746 14.8319 24.1766C14.8319 26.3273 13.1885 28 11.0755 28C8.96247 28 7.31902 26.3273 7.31902 24.1766C7.31902 22.97 7.83639 21.9137 8.66377 21.219C7.9485 20.628 7.42114 19.8054 7.20163 18.8L3.44519 5.6572L2.50608 2.43124L0.627851 1.83384C0.0409064 1.59488 -0.0764825 1.11696 0.0409065 0.639036C0.275684 0.0416352 0.74524 -0.077845 1.2148 0.0416352L3.44519 0.758516C3.79735 0.758516 4.03213 1.11696 4.03213 1.35592L5.54627 6.13513H29.3882C30.0925 6.13513 31.0316 6.73253 31.5012 7.32993C32.0881 8.04681 32.0881 8.88317 31.8533 9.83901L29.6229 18.8ZM11.6624 20.3533H24.81H25.0448C26.336 20.3533 27.5099 19.3974 27.6273 18.2026L29.8577 9.24161C29.8577 9.00265 29.7892 8.7317 29.6229 8.52473C29.4566 8.31776 29.2708 8.16629 28.9186 8.16629H6.22804L9.07986 18.2026C9.43203 19.3974 10.6059 20.3533 11.6624 20.3533ZM9.19725 24.1766C9.19725 22.9818 9.90158 22.265 11.0755 22.265C12.0146 22.265 12.9537 22.9818 12.9537 24.1766C12.9537 25.3714 12.2494 26.0883 11.0755 26.0883C9.90158 26.0883 9.19725 25.3714 9.19725 24.1766ZM22.9318 24.1766C22.9318 22.9818 23.6361 22.265 24.81 22.265C25.9839 22.265 26.6882 22.9818 26.6882 24.1766C26.6882 25.3714 25.9839 26.0883 24.81 26.0883C23.6361 26.0883 22.9318 25.3714 22.9318 24.1766Z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"spinner\\\" viewBox=\\\"0 0 32 32\\\">\\n<title>spinner8</title>\\n<path d=\\\"M16 32c-4.274 0-8.292-1.664-11.314-4.686s-4.686-7.040-4.686-11.314c0-3.026 0.849-5.973 2.456-8.522 1.563-2.478 3.771-4.48 6.386-5.791l1.344 2.682c-2.126 1.065-3.922 2.693-5.192 4.708-1.305 2.069-1.994 4.462-1.994 6.922 0 7.168 5.832 13 13 13s13-5.832 13-13c0-2.459-0.69-4.853-1.994-6.922-1.271-2.015-3.066-3.643-5.192-4.708l1.344-2.682c2.615 1.31 4.824 3.313 6.386 5.791 1.607 2.549 2.456 5.495 2.456 8.522 0 4.274-1.664 8.292-4.686 11.314s-7.040 4.686-11.314 4.686z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"square\\\" viewBox=\\\"0 0 24 24\\\">\\n<path d=\\\"M18.2857 4H5.71429C4.76786 4 4 4.76786 4 5.71429V18.2857C4 19.2321 4.76786 20 5.71429 20H18.2857C19.2321 20 20 19.2321 20 18.2857V5.71429C20 4.76786 19.2321 4 18.2857 4Z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"success\\\" viewBox=\\\"0 0 24 24\\\">\\n<path d=\\\"M12 2.25C10.0716 2.25 8.18657 2.82183 6.58319 3.89317C4.97982 4.96452 3.73013 6.48726 2.99218 8.26884C2.25422 10.0504 2.06114 12.0108 2.43735 13.9021C2.81355 15.7934 3.74215 17.5307 5.10571 18.8943C6.46928 20.2579 8.20656 21.1865 10.0979 21.5627C11.9892 21.9389 13.9496 21.7458 15.7312 21.0078C17.5127 20.2699 19.0355 19.0202 20.1068 17.4168C21.1782 15.8134 21.75 13.9284 21.75 12C21.7473 9.41498 20.7192 6.93661 18.8913 5.10872C17.0634 3.28084 14.585 2.25273 12 2.25ZM16.2806 10.2806L11.0306 15.5306C10.961 15.6004 10.8783 15.6557 10.7872 15.6934C10.6962 15.7312 10.5986 15.7506 10.5 15.7506C10.4014 15.7506 10.3038 15.7312 10.2128 15.6934C10.1218 15.6557 10.039 15.6004 9.96938 15.5306L7.71938 13.2806C7.57865 13.1399 7.49959 12.949 7.49959 12.75C7.49959 12.551 7.57865 12.3601 7.71938 12.2194C7.86011 12.0786 8.05098 11.9996 8.25 11.9996C8.44903 11.9996 8.6399 12.0786 8.78063 12.2194L10.5 13.9397L15.2194 9.21937C15.2891 9.14969 15.3718 9.09442 15.4628 9.0567C15.5539 9.01899 15.6515 8.99958 15.75 8.99958C15.8486 8.99958 15.9461 9.01899 16.0372 9.0567C16.1282 9.09442 16.2109 9.14969 16.2806 9.21937C16.3503 9.28906 16.4056 9.37178 16.4433 9.46283C16.481 9.55387 16.5004 9.65145 16.5004 9.75C16.5004 9.84855 16.481 9.94613 16.4433 10.0372C16.4056 10.1282 16.3503 10.2109 16.2806 10.2806Z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"swap\\\" viewBox=\\\"0 0 24 24\\\">\\n<path d=\\\"M17.6667 18.68V9.33333H15V18.68H11L16.3333 24L21.6667 18.68H17.6667ZM8.33333 0L3 5.32H7V14.6667H9.66667V5.32H13.6667L8.33333 0Z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"thumb-up\\\" viewBox=\\\"0 0 24 24\\\">\\n<path d=\\\"M0 22.8182H4.36364V9.72727H0V22.8182ZM24 10.8182C24 9.61818 23.0182 8.63636 21.8182 8.63636H14.9345L15.9709 3.65091L16.0036 3.30182C16.0036 2.85455 15.8182 2.44 15.5236 2.14545L14.3673 1L7.18909 8.18909C6.78545 8.58182 6.54545 9.12727 6.54545 9.72727V20.6364C6.54545 21.8364 7.52727 22.8182 8.72727 22.8182H18.5455C19.4509 22.8182 20.2255 22.2727 20.5527 21.4873L23.8473 13.7964C23.9455 13.5455 24 13.2836 24 13V10.8182Z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"trending-flat\\\" viewBox=\\\"0 0 24 24\\\">\\n<path d=\\\"M24 12.0526L18.9474 7V10.7895H0V13.3158H18.9474V17.1053L24 12.0526Z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"trending-up\\\" viewBox=\\\"0 0 24 24\\\">\\n<path d=\\\"M16.8 5L19.548 7.748L13.692 13.604L8.892 8.804L0 17.708L1.692 19.4L8.892 12.2L13.692 17L21.252 9.452L24 12.2V5H16.8Z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"twitter\\\" viewBox=\\\"0 0 24 24\\\">\\n<path d=\\\"M21.533 7.11169C21.5482 7.32488 21.5482 7.53811 21.5482 7.7513C21.5482 14.2538 16.599 21.7462 7.5533 21.7462C4.76648 21.7462 2.17767 20.9391 0 19.5381C0.395953 19.5838 0.776625 19.599 1.18781 19.599C3.48727 19.599 5.60405 18.8224 7.29441 17.4975C5.13197 17.4518 3.31978 16.0356 2.69541 14.0863C3 14.132 3.30455 14.1624 3.62437 14.1624C4.06598 14.1624 4.50764 14.1015 4.91878 13.995C2.66498 13.5381 0.974578 11.5584 0.974578 9.16753V9.10664C1.62937 9.47213 2.39086 9.70055 3.19791 9.73097C1.87303 8.8477 1.00505 7.34011 1.00505 5.63452C1.00505 4.72083 1.24866 3.88327 1.67508 3.1523C4.09641 6.13706 7.73602 8.08627 11.8172 8.2995C11.7411 7.93402 11.6954 7.55335 11.6954 7.17263C11.6954 4.46194 13.8883 2.25385 16.6141 2.25385C18.0304 2.25385 19.3095 2.84775 20.208 3.80714C21.3197 3.59395 22.3857 3.18277 23.3299 2.61933C22.9643 3.76149 22.1877 4.72088 21.1674 5.32997C22.1573 5.22342 23.1167 4.94925 23.9999 4.56858C23.33 5.54316 22.4924 6.41114 21.533 7.11169Z\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"vaccine\\\" viewBox=\\\"0 0 26 27\\\">\\n<path d=\\\"M1.28418 6.90234L5.90562 2.28091\\\" fill=\\\"none\\\" stroke=\\\"#14568d\\\" stroke-width=\\\"1.25\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"/>\\n<path d=\\\"M3.59473 4.59375L6.67569 7.67471\\\" fill=\\\"none\\\" stroke=\\\"#14568d\\\" stroke-width=\\\"1.25\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"/>\\n<path d=\\\"M3.08105 11.2695L10.27 4.08063\\\" fill=\\\"none\\\" stroke=\\\"#14568d\\\" stroke-width=\\\"1.25\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"/>\\n<path d=\\\"M6.4458 11.0391L17.2292 21.8224L20.8236 18.228L10.0403 7.44461\\\" fill=\\\"none\\\" stroke=\\\"#14568d\\\" stroke-width=\\\"1.25\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"/>\\n<path d=\\\"M19.0269 20.0273L21.9794 22.9799\\\" fill=\\\"none\\\" stroke=\\\"#14568d\\\" stroke-width=\\\"1.25\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"/>\\n<path d=\\\"M8.49414 13.0898L9.6495 11.9345\\\" fill=\\\"none\\\" stroke=\\\"#14568d\\\" stroke-width=\\\"1.25\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"/>\\n<path d=\\\"M11.1978 15.793L12.3531 14.6376\\\" fill=\\\"none\\\" stroke=\\\"#14568d\\\" stroke-width=\\\"1.25\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"/>\\n<path d=\\\"M13.9014 18.4961L15.0567 17.3407\\\" fill=\\\"none\\\" stroke=\\\"#14568d\\\" stroke-width=\\\"1.25\\\" stroke-linecap=\\\"round\\\" stroke-linejoin=\\\"round\\\"/>\\n\\n</symbol>\\n<symbol id=\\\"warning\\\" viewBox=\\\"0 0 24 24\\\">\\n<path d=\\\"M22.2 17.6335L14.0016 3.39569C13.7967 3.04687 13.5042 2.75764 13.1532 2.55668C12.8021 2.35572 12.4046 2.25 12 2.25C11.5955 2.25 11.198 2.35572 10.8469 2.55668C10.4958 2.75764 10.2033 3.04687 9.99847 3.39569L1.80003 17.6335C1.60291 17.9709 1.49902 18.3546 1.49902 18.7454C1.49902 19.1361 1.60291 19.5199 1.80003 19.8572C2.00228 20.2082 2.29425 20.499 2.64599 20.6998C2.99773 20.9006 3.39658 21.0043 3.80159 21.0001H20.1985C20.6032 21.0039 21.0016 20.9001 21.353 20.6993C21.7044 20.4985 21.9961 20.2079 22.1982 19.8572C22.3956 19.52 22.4998 19.1364 22.5001 18.7456C22.5004 18.3549 22.3969 17.9711 22.2 17.6335ZM11.25 9.75006C11.25 9.55115 11.329 9.36038 11.4697 9.21973C11.6104 9.07908 11.8011 9.00006 12 9.00006C12.1989 9.00006 12.3897 9.07908 12.5304 9.21973C12.671 9.36038 12.75 9.55115 12.75 9.75006V13.5001C12.75 13.699 12.671 13.8897 12.5304 14.0304C12.3897 14.171 12.1989 14.2501 12 14.2501C11.8011 14.2501 11.6104 14.171 11.4697 14.0304C11.329 13.8897 11.25 13.699 11.25 13.5001V9.75006ZM12 18.0001C11.7775 18.0001 11.56 17.9341 11.375 17.8105C11.19 17.6868 11.0458 17.5111 10.9607 17.3056C10.8755 17.1 10.8532 16.8738 10.8966 16.6556C10.9401 16.4374 11.0472 16.2369 11.2045 16.0796C11.3619 15.9222 11.5623 15.8151 11.7806 15.7717C11.9988 15.7283 12.225 15.7505 12.4305 15.8357C12.6361 15.9208 12.8118 16.065 12.9354 16.25C13.059 16.435 13.125 16.6526 13.125 16.8751C13.125 17.1734 13.0065 17.4596 12.7955 17.6706C12.5845 17.8815 12.2984 18.0001 12 18.0001Z\\\"/>\\n\\n</symbol></svg>\\n\"","/* eslint-disable max-len */\n/* eslint-disable dot-notation */\n/* eslint-disable max-statements */\nimport { html, TemplateResult, } from 'lit';\nimport {unsafeHTML} from 'lit/directives/unsafe-html.js';\nimport { property } from 'lit/decorators.js';\nimport svgAdd from '../../icons/System/Regular/Add.svg?raw';\nimport svgArrowLeft from '../../icons/System/Regular/Arrow_-_Left.svg?raw';\nimport svgChat from '../../icons/System/Filled/Chat_Default.svg?raw';\nimport svgCalendar from '../../icons/System/Regular/Calendar.svg?raw';\nimport svgCaretDown from '../../icons/System/Filled/Caret_Down.svg?raw';\nimport svgCheckCircle from '../../icons/System/Filled/Check.svg?raw';\nimport svgCheck from '../../icons/System/Regular/Check.svg?raw';\nimport svgClose from '../../icons/System/Regular/Close.svg?raw';\nimport svgDownload from '../../icons/System/Filled/Download.svg?raw';\nimport svgEdit from '../../icons/System/Regular/Edit.svg?raw';\nimport svgEllipsis from '../../icons/System/Filled/Ellipsis.svg?raw';\nimport svgMessageFilled from '../../icons/System/Filled/Message_Unread.svg?raw';\nimport svgMessage from '../../icons/System/Regular/Message_Unread.svg?raw';\nimport svgError from '../../icons/System/Regular/Error.svg?raw';\nimport svgExternal from '../../icons/System/Regular/External_Link.svg?raw';\nimport svgMedication from '../../icons/System/Regular/Medication.svg?raw';\nimport svgGlobe from '../../icons/System/Regular/Globe.svg?raw';\nimport svgHandHeart from '../../icons/System/Regular/Wellness.svg?raw';\nimport svgHelp from '../../icons/System/Regular/Help.svg?raw';\nimport svgInfoFilled from '../../icons/System/Filled/Info.svg?raw';\nimport svgCaretUp from '../../icons/System/Regular/Caret_Up.svg?raw';\nimport svgLightbulb from '../../icons/System/Regular/Lightbulb.svg?raw';\nimport svgLocation from '../../icons/System/Filled/Location.svg?raw';\nimport svgMenu from '../../icons/System/Regular/Menu.svg?raw';\nimport svgMinus from '../../icons/System/Regular/Minus.svg?raw';\nimport svgAccountFilled from '../../icons/System/Filled/Account.svg?raw';\nimport svgNotification from '../../icons/System/Regular/Notification.svg?raw';\nimport svgRefill from '../../icons/Marketing/Duotone/Refill.svg?raw';\nimport svgAccount from '../../icons/System/Regular/Account.svg?raw';\nimport svgPlayFilled from '../../icons/System/Filled/Play_Arrow.svg?raw';\nimport svgPlayCircle from '../../icons/System/Regular/Play_Circle.svg?raw';\nimport svgSpinner from '../../icons/System/Regular/Spinner/75.svg?raw';\nimport svgUndo from '../../icons/System/Regular/Undo.svg?raw';\nimport svgSearch from '../../icons/System/Regular/Search.svg?raw';\nimport svgCart from '../../icons/System/Regular/Cart.svg?raw';\nimport svgRectangle from '../../icons/System/Filled/Shape/Rectangle.svg?raw';\nimport svgVaccine from '../../icons/Marketing/Duotone/Vaccinations.svg?raw';\nimport svgWarningFilled from '../../icons/System/Filled/Warning.svg?raw';\nimport svgCaretDoubleRight from '../../icons/System/Regular/Caret_Double_Right.svg?raw';\nimport svgErrorAlt from '../../icons/error-alt.svg?raw';\nimport svgEsi from '../../icons/express-scripts.svg?raw';\nimport svgInsta from '../../icons/instagram.svg?raw';\nimport svgLinkedin from '../../icons/linkedin.svg?raw';\nimport svgOpen from '../../icons/open.svg?raw';\nimport svgPause from '../../icons/pause.svg?raw';\nimport svgPersonBubble from '../../icons/person-bubble.svg?raw';\nimport svgPinterest from '../../icons/pinterest.svg?raw';\nimport svgRss from '../../icons/rss-feed.svg?raw';\nimport svgRx from '../../icons/rx.svg?raw';\nimport svgSwap from '../../icons/swap.svg?raw';\nimport svgThumbsUp from '../../icons/thumb-up.svg?raw';\nimport svgTrendFlat from '../../icons/trending-flat.svg?raw';\nimport svgTrendUp from '../../icons/trending-up.svg?raw';\nimport svgTwitter from '../../icons/twitter.svg?raw';\n\nimport { Cre8Element } from '../cre8-element';\nimport styles from './icon.styles.js';\nimport iconSprite from '../../icons/cre8-icons.svg?raw';\n\n/**\n *\n * <svg> is a web component, which can be used with any frontend framework and use any svg.\n * It takes raw svgs as props and renders them.\n *\n * **'svg-legacy'** will be **deprecated** in Web Components v0.5.0\n *\n * - [List of new figma icons](https:/www.figma.com/file/j1a0rBkoH65XiGKfq7ppWa/Iconography?type=design&node-id=2037-5773&mode=design&t=6ZzC6KH3Gkxf3fj5-4)\n * - The new `svg` from the svg package: https:/static-dev.esi-memberweb-dev.aws.evernorthcloud.com/svgs/.\n *\n * ##Usability Considerations\n * - If the icon is decorative: set `aria-hidden` to true.\n * - If the icon is interactive (not decorative): set `aria-hidden` to false and add the `aria-label`\n * - If the icon is key to functionality from a screen reader perspective, it is required to add `aria-label`\n * which will describe the icon.\n * For example, if the icon is a close button, setting `aria-label=\"Close\"`will give\n * the SVG an aria-label to make it sufficiently accessible.\n *\n * [More information on Accessibility with svgs](https:/static-dev.esi-memberweb-dev.aws.evernorthcloud.com/svgs/?path=/story/getting-started-accessibility--page)\n *\n * ##How to use\n * Cre8 Web Components (cre8-wc) includes the `cre8_dev/svgs` package.\n * If you need to install a newer version than what's included, please see\n * the [installation instructions for svgs](https:/git.express-scripts.com/ExpressScripts/svgs#installation).\n * - Import the component (this is the icon container): `import '@cre8_dev/svgs';`\n * - Import an svg as a string: `import svgInfo from 'cre8_dev/svgs/lib/icons/System/Regular/Info.svg?raw';`\n *\n * Your import paths may be different depending on your project's build configuration.\n * Please see [Importing Icons](https:/static-dev.esi-memberweb-dev.aws.evernorthcloud.com/svgs/?path=/story/icon-sets-importing-icons--page)\n * of the `cre8_dev/svgs` documentation for more information.\n */\n\nexport class Cre8Icon extends Cre8Element {\n static styles = [styles];\n\n /**\n * Focusable\n *\n * @required\n */\n @property({ type: Boolean, reflect: true })\n focusable?: boolean;\n\n /**\n * Icon name (this method of passing in svgs is to be deprecated)\n *\n * @required\n */\n @property()\n name: string;\n\n @property({reflect:true})\n svg?:string\n /**\n * Icon path\n * 1) This points to the file where the icon sprite lives\n * 2) This method of pathing will soon be depricated\n *\n */\n @property()\n iconUrl?: string = iconSprite;\n\n /**\n * Icon Title, this string is used for the aira-label of the svg\n *\n * @required\n */\n @property()\n iconTitle?: string;\n\n /**\n * Get the path to the icons, either by overriding it on the window\n * or by using the bundled icon path\n */\n getIconPath() {\n if (window.Cre8_ICON_URL) {\n return window.Cre8_ICON_URL;\n }\n\n const script = document.querySelector<HTMLScriptElement>('script[src$=\"icon\"]');\n if (script) {\n return `${script.src.replace(/^(.+)\\/.*$/, '$1')}/svgs/svgs.svg?raw`;\n }\n\n return this.iconUrl;\n }\n\n render() {\n const componentClassName = this.componentClassNames('cre8-c-icon-wrapper', {});\n\n const iconMap: { [name: string]: TemplateResult<1> } = {};\n\n iconMap['add'] = html`<svg src=${svgAdd} container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['arrow-back'] = html`<svg src='${svgArrowLeft}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['arrow-forward'] = html`<svg src='${svgArrowLeft}' rotate=\"180\" container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['attention'] = html`<svg src='${svgChat}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['calendar'] = html`<svg src='${svgCalendar}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['calendar-datepicker'] = html`<svg src='${svgCalendar}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\" height=\"24\" width=\"24\"></svg>`;\n iconMap['caret-down'] = html`<svg src='${svgCaretDown}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['caret-double-left'] = html`<svg src='${svgCaretDoubleRight}' rotate=\"180\" container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['caret-double-right'] = html`<svg src='${svgCaretDoubleRight}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['check-circle'] = html`<svg src='${svgCheckCircle}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['check'] = html`<svg src='${svgCheck}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['close'] = html`<svg src='${svgClose}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['delta-down'] = html`<svg src='${svgCaretDown}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['delta-up'] = html`<svg src='${svgCaretDown}' flip=\"vertical\" container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['download'] = html`<svg src='${svgDownload}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['edit'] = html`<svg src='${svgEdit}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['ellipsis'] = html`<svg src='${svgEllipsis}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['email'] = html`${svgMessageFilled}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['envelope'] = html`<svg src='${svgMessage}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['error-alt'] = html`<svg src='${svgErrorAlt}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['error-round'] = html`<svg src='${svgError}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['error'] = html`<svg src='${svgError}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['express-scripts'] = html`<svg src='${svgEsi}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['external-file'] = html`<svg src='${svgExternal}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['find-drug'] = html`<svg src='${svgMedication}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['globe'] = html`<svg src='${svgGlobe}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['hand-heart'] = html`<svg src='${svgHandHeart}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['help'] = html`<svg src='${svgHelp}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['info'] = html`<svg src='${svgInfoFilled}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['instagram'] = html`<svg src='${svgInsta}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['keyboard-arrow-down'] = html`<svg src='${svgCaretUp}' rotate=\"180\" container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['keyboard-arrow-left'] = html`<svg src='${svgCaretUp}' rotate=\"-90\" container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['keyboard-arrow-right'] = html`<svg src='${svgCaretUp}' rotate=\"90\" container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['keyboard-arrow-up'] = html`<svg src='${svgCaretUp}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['language'] = html`<svg src='${svgGlobe}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['light-bulb'] = html`<svg src='${svgLightbulb}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['linkedin'] = html`<svg src='${svgLinkedin}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['location-on'] = html`<svg src='${svgLocation}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['menu'] = html`<svg src='${svgMenu}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['minus'] = html`<svg src='${svgMinus}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['neutral'] = html`<svg src='${svgAccountFilled}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['notifications'] = html`<svg src='${svgNotification}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['open'] = html`<svg src='${svgOpen}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['order-status'] = html`<svg src='${svgRefill}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['pause'] = html`<svg src='${svgPause}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['people'] = html`<svg src='${svgAccount}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['person-bubble'] = html`<svg src='${svgPersonBubble}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['person'] = html`<svg src='${svgAccountFilled}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['pinterest'] = html`<svg src='${svgPinterest}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['play-arrow'] = html`<svg src='${svgPlayFilled}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['play-circle-outline'] = html`<svg src='${svgPlayCircle}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['progress-spinner'] = html`<svg src='${svgSpinner}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['replay'] = html`<svg src='${svgUndo}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['rss-feed'] = html`<svg src='${svgRss}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['rx'] = html`<svg src='${svgRx}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['search'] = html`<svg src='${svgSearch}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['shop'] = html`<svg src='${svgCart}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['spinner'] = html`<svg src='${svgSpinner}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['square'] = html`<svg src='${svgRectangle}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['success'] = html`<svg src='${svgCheckCircle}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['swap'] = html`<svg src='${svgSwap}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['thumb-up'] = html`<svg src='${svgThumbsUp}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['trending-flat'] = html`<svg src='${svgTrendFlat}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['trending-up'] = html`<svg src='${svgTrendUp}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['twitter'] = html`<svg src='${svgTwitter}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['vaccine'] = html`<svg src='${svgVaccine}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n iconMap['warning'] = html`<svg src='${svgWarningFilled}' container-class=\"${componentClassName}\" class=\"cre8-c-icon\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\"></svg>`;\n\n const iconPath = this.getIconPath();\n\n // if (iconMap[this.name] !== undefined) {\n // return iconMap[this.name];\n // }\n if (!this.name && !this.svg) {\n console.warn('Cre8Icon: No icon name or svg provided. Please provide either a name or svg.');\n return html``;\n }\n\n return html`\n ${this.svg ? html`<span class=\"${componentClassName}\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\">${unsafeHTML(this.svg)}</span>` : html`\n <span class=\"${componentClassName}\" aria-label=\"${this.iconTitle}\" aria-hidden=\"${!this.iconTitle}\">\n <svg class=\"cre8-c-icon\" xmlns=\"http://www.w3.org/2000/svg\" focusable=\"${this.focusable ? 'true' : 'false'}\" role=\"img\">\n <use href=\"${iconPath}#${this.name}\"></use>\n </svg>\n </span>` }`;\n }\n }\n\n\nif (customElements.get('cre8-icon') === undefined) {\n customElements.define('cre8-icon', Cre8Icon);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-icon': Cre8Icon;\n }\n interface Window {\n Cre8_ICON_URL?: string;\n }\n}\n\nexport default Cre8Icon;\n","import { property } from 'lit/decorators.js';\nimport { Cre8Element } from './cre8-element';\n\ninterface Cre8ElementInternals extends ElementInternals {\n formResetCallback: () => void;\n ariaRole: string;\n}\nexport abstract class Cre8FormElement extends Cre8Element {\n /**\n * @internal\n *\n * Tells the browser to treat the element like a form field.\n * Ties the element to the HTML form it is in.\n *\n */\n static formAssociated = true;\n\n abstract type: string;\n\n /**\n * @protected\n * @internal\n *\n * An instance of element internals.\n * Contains properties and methods that allows the element\n * to participate fully in the HTML form it's in.\n */\n internals: ElementInternals;\n\n /**\n * @protected\n * @internal\n *\n * Stores the value for the `value` getter and setter.\n */\n internalValue: string;\n\n /**\n * @internal\n *\n * Stores the intial value of the field so that it can be reset\n */\n protected defaultValue: string | boolean;\n\n /**\n * @internal\n * The underlying HTML form field.\n * This should be implemented with `@query`\n * in the implementing class.\n */\n abstract field: HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement | HTMLButtonElement;\n\n /**\n * The value of the form field.\n */\n @property()\n get value() {\n return this.internalValue;\n }\n\n /**\n * Sets the value of the form field.\n * 1. Stores the new value so it can be retrieved by the getter.\n * 2. Sets the current value of the control.\n * 3. Updates the actual field.\n * 4. Rerenders the component.\n */\n set value(newValue: string) {\n const oldValue = this.value;\n\n this.internalValue = newValue; // 1\n\n if (this.type !== 'checkbox' && this.type !== 'radio') {\n this.internals.setFormValue(newValue); // 2\n }\n\n this.updateField(); // 3\n\n this.requestUpdate('value', oldValue); // 4\n }\n\n /**\n * update the actual field's value\n */\n protected updateField() {\n if (this.field) {\n this.field.value = this.value !== undefined ? this.value : '';\n }\n }\n\n protected firstUpdated() {\n if (this.type !== 'checkbox' && this.type !== 'radio') {\n this.defaultValue = this.value || this.getAttribute('value') || '';\n }\n this.updateField();\n }\n\n formResetCallback() {\n this.value = this.defaultValue as string;\n this.updateField();\n }\n\n constructor() {\n super();\n this.internals = this.attachInternals() as Cre8ElementInternals;\n }\n}\n\nexport default Cre8FormElement;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n/* ------------------------------------ *\\\n#SPINNER\n\\* ------------------------------------ */\n\n@keyframes loading {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n}\n\n@keyframes spinner-circle-animation {\n 0%,\n 25% {\n stroke-dashoffset: 280;\n transform: rotate(0);\n }\n\n 50%,\n 75% {\n stroke-dashoffset: 75;\n transform: rotate(45deg);\n }\n\n 100% {\n stroke-dashoffset: 280;\n transform: rotate(360deg);\n }\n}\n\n:host {\n display: inline-block;\n --spinner-stroke-dasharray: 282.743px;\n --spinner-large-stroke-width: 10;\n --spinner-small-stroke-width: 14;\n --spinner-large-width: 4.5rem;\n --spinner-small-width: 1.5rem;\n @include cre8-typography-label-small();\n}\n\n.cre8-c-spinner,\n.cre8-c-spinner--large {\n --spinner-height: var(--spinner-large-width);\n --spinner-width: var(--spinner-large-width);\n --icon-color: var(--cre8-color-content-brand);\n\n .cre8-c-spinner__icon {\n display: block;\n }\n\n .cre8-c-spinner__label {\n display: block;\n margin-top: var(--cre8-spacing-8);\n }\n}\n\n.cre8-c-spinner--small {\n --spinner-height: var(--spinner-small-width);\n --spinner-width: var(--spinner-small-width);\n --icon-color: var(--cre8-color-content-brand);\n display: flex;\n align-items: center;\n .cre8-c-spinner__label {\n display: inline-block;\n margin-left: var(--cre8-spacing-8);\n margin-top: 0;\n vertical-align: 0.35rem;\n }\n}\n\n.cre8-c-spinner--inverse {\n --icon-color: var(--cre8-color-content-brand-knockout);\n --label-color: var(--cre8-color-content-brand-knockout); // --cre8-color-content-default-knockout\n}\n\n.cre8-c-spinner--secondary.cre8-c-spinner--inverse.cre8-c-spinner--neutral {\n --icon-color: var(--cre8-color-button-secondary-neutral-inverse-content-active);\n --label-color: var(--cre8-color-button-secondary-neutral-inverse-content-active); // --cre8-color-content-default-knockout\n}\n\n.cre8-c-spinner--neutral {\n --icon-color: var(--cre8-color-button-secondary-neutral-content-active);\n}\n\n.cre8-c-spinner--primary.cre8-c-spinner--inverse {\n --icon-color: var(--cre8-color-button-primary-inverse-content-active);\n}\n\n.cre8-c-spinner--secondary.cre8-c-spinner--inverse {\n --icon-color: var(--cre8-color-button-secondary-inverse-content-active);\n}\n\n.cre8-c-spinner--tertiary.cre8-c-spinner--inverse {\n --icon-color: var(--cre8-color-button-tertiary-inverse-content-active);\n}\n\n.cre8-c-spinner__label {\n color: var(--label-color, var(--cre8-color-content-default));\n}\n\n.cre8-c-spinner__hidden-label {\n display: none;\n}\n\n.cre8-c-spinner__icon {\n height: var(--spinner-height, 1em);\n width: var(--spinner-width, 1em);\n\n circle {\n fill: transparent;\n stroke: var(--icon-color, inherit);\n stroke-dasharray: var(--spinner-stroke-dasharray);\n stroke-linecap: round;\n stroke-width: var(--spinner-large-stroke-width);\n transform-origin: 50% 50%;\n }\n}\n\n.cre8-c-spinner__icon-small {\n circle {\n stroke-width: var(--spinner-small-stroke-width);\n }\n}\n\n.cre8-c-spinner--indeterminate .cre8-c-spinner__icon {\n animation: loading 2s linear 0s infinite;\n\n circle {\n animation-duration: 1.4s;\n animation-iteration-count: infinite;\n animation-name: spinner-circle-animation;\n animation-timing-function: ease-in-out;\n }\n}\n\n.cre8-c-spinner--determinate .cre8-c-spinner__icon {\n overflow: hidden;\n transform: rotate(-90deg);\n transform-origin: center center;\n}\n`;\nexport default styles;\n","import { html, nothing, } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './loading-spinner.styles.js';\n\n/**\n * A loading spinner notifies the user that their request is being processed while the front end is retrieving data\n * or performing slow computations.\n *\n * Providing visibility of a system's status is one of the most important rules of UI design. When the user has to\n * guess or assume that the system is responding to their input, they may send a command such as submit multiple\n * times, while also being anxious that the application is frozen or not working.\n *\n * While it is most ideal to improve system performance such that there is no perceptible delay, in some cases this\n * is not possible. In these cases, the immediate response should be a progress indicator to give a visual indication\n * that their command was received and that the application is working.\n *\n * The length of time for the system response is a good general guideline for which progress indicator to use.\n *\n * ## Determinable vs indeterminate progress\n *\n * A progress meter provides feedback that the system is working and gives the user an indication of how much time\n * they will wait. This indicator should be used when the system response time is longer and determinable. See\n * ProgressMeter component for further examples and accessibility considerations.\n *\n * ## How to Use\n *\n * The loading-spinner component can be used to indicate loading state on the component level all the way up to the\n * page level. There are two loading styles: determinate (loading progress represents percentage of total load time)\n * and indeterminate (a spinning animation that persists while loading continues)\n *\n * 1. Choose determinate or indeterminate. UX best practices leans more towards recommending the indeterminate\n * progress indicator if load time is unknown, while determinate is less user friendly unless the label indicates\n * the percentage loaded as well.\n * 2. Choose a size and use it according to context, guidance should be given by your design or content team.\n * 3. A common label to use is `Loading…`, guidance should be given by your design content team.\n * 4. If you choose to use the determinate loader then you must also control the progress attribute's value which\n * controls the percentage of the circle that shows (values 0-100 accepted);\n * 5. For dark backgrounds, add the `inverse` attribute to the `<cre8-loading-spinner>` tag.\n * 6. For accessibility reasons, always include a label input unless explicitly informed to do otherwise by design or\n * accessibility teams.\n * 7. The lg variant is usually suitable for containers or block level loading placeholders while the sm size is\n * meant for more inline loading states.\n *\n */\nexport class Cre8LoadingSpinner extends Cre8Element {\n static styles = (styles);\n\n /**\n * Mode of the spinner, defaults to indeterminate.\n * If true, renders a standard progress indicator, fills via the progress property from 0% to 100%.\n * If false or undefined, renders indeterminate spinner which animates in a spinning motion until component is\n * destroyed.\n */\n @property({ type: Boolean, reflect: true })\n determinate?: boolean;\n\n /**\n * Inverse property used for dark backgrounds.\n */\n @property({ type: Boolean, reflect: true })\n inverse?: boolean;\n\n /**\n * Neutral property used for secondary neutral loading button.\n */\n @property({ type: Boolean, reflect: true })\n neutral?: boolean;\n\n /**\n * Property that specifies which button variant is using the loading spinner\n */\n @property()\n buttonVariant? : 'primary' | 'secondary' | 'tertiary';\n\n /**\n * Label to show along with progress indicator.\n * This is required to meet accessibility requirements for this component.\n */\n @property()\n label?: string;\n\n /**\n * Progress to display, between 0 and 100. Requires determinate property to be set to true.\n * */\n @property({ reflect: true, type: Number })\n progress = 0;\n\n /**\n * Size of the progress indicator and position of the label, if a label has been defined using the label property.\n * - **large** renders a large progress indicator at 72px in width/height with the label below.\n * - **small** renders a small progress indicator at 24px in width/height with the label to the right.\n */\n @property()\n size?: 'large' | 'small' = 'large';\n\n private labelId: string;\n\n constructor() {\n super();\n const randomId = Math.floor(Math.random() * 900000) + 100000;\n this.labelId = `cre8-spinner-${randomId}`;\n }\n\n private renderDeterminateSpinner() {\n const progress = Math.max(Math.min(100, this.progress === 0 ? (this.progress = 1) : this.progress), 0);\n const dashOffset = 2 * 3.1415926 * 45 - (progress / 100) * (2 * 3.1415926 * 45);\n\n return html` ${this.size === 'small'\n ? html`\n <svg class=\"cre8-c-spinner__icon cre8-c-spinner__icon-small\" aria-hidden=\"true\" viewBox=\"0 0 100 100\">\n <circle cx=\"50%\" cy=\"50%\" r=\"43\" stroke-dashoffset=\"${dashOffset}\"></circle>\n </svg>\n `\n : html` <svg class=\"cre8-c-spinner__icon\" aria-hidden=\"true\" viewBox=\"0 0 100 100\">\n <circle cx=\"50%\" cy=\"50%\" r=\"45\" stroke-dashoffset=\"${dashOffset}\"></circle>\n </svg>`}`;\n }\n\n private renderInDeterminateSpinner() {\n return html` ${this.size === 'small'\n ? html`\n <svg class=\"cre8-c-spinner__icon cre8-c-spinner__icon-small\" aria-hidden=\"true\" viewBox=\"0 0 100 100\">\n <circle cx=\"50%\" cy=\"50%\" r=\"43\"></circle>\n </svg>\n `\n : html` <svg class=\"cre8-c-spinner__icon\" aria-hidden=\"true\" viewBox=\"0 0 100 100\">\n <circle cx=\"50%\" cy=\"50%\" r=\"45\"></circle>\n </svg>`}`;\n }\n\n render() {\n const componentClassNames = this.componentClassNames('cre8-c-spinner', {\n 'cre8-c-spinner--large': this.size === 'large',\n 'cre8-c-spinner--small': this.size === 'small',\n 'cre8-c-spinner--inverse': this.inverse,\n 'cre8-c-spinner--neutral': this.neutral,\n 'cre8-c-spinner--primary': this.buttonVariant === 'primary',\n 'cre8-c-spinner--secondary': this.buttonVariant === 'secondary',\n 'cre8-c-spinner--tertiary': this.buttonVariant === 'tertiary',\n 'cre8-c-spinner--determinate': this.determinate,\n 'cre8-c-spinner--indeterminate': !this.determinate,\n });\n return html`\n <div\n class=\"${componentClassNames}\"\n role=\"progressbar\"\n aria-labelledby=\"${this.labelId}\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n aria-valuenow=\"${this.determinate ? this.progress : nothing}\"\n part=\"base\"\n >\n ${this.determinate ? this.renderDeterminateSpinner() : this.renderInDeterminateSpinner()}\n <div\n id=\"${this.labelId}\"\n class=\"${!this.label ? 'cre8-c-spinner__hidden-label' : 'cre8-c-spinner__label'}\"\n part=\"label\"\n >\n ${this.label}\n </div>\n </div>\n `;\n }\n}\nif (customElements.get('cre8-loading-spinner') === undefined) {\n customElements.define('cre8-loading-spinner', Cre8LoadingSpinner);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-loading-spinner': Cre8LoadingSpinner;\n }\n}\n\nexport default Cre8LoadingSpinner;\n","import { css } from \"lit\";\n\nconst styles = css`\n@import '../../design-tokens/core/scss/theming/component';\n\n:host {\n display: inline-flex;\n}\n:host([fullWidth]) {\n display: flex;\n\n}\n/**\n * 1) Button or link that has functionality to it\n */\n\n/**\n * Primary button\n */\n.cre8-c-button {\n @include cre8-typography-label-default();\n width: var(--cre8-button-width, auto);\n height: var(--cre8-button-height, auto);\n min-width: var(--cre8-button-min-width, auto);\n min-height: var(--cre8-button-min-height, auto);\n justify-content: center;\n text-align: center;\n margin-top: var( --cre8-button-margin-top, 0);\n margin-bottom: var( --cre8-button-margin-bottom, 0);\n margin-left: var( --cre8-button-margin-left, 0);\n margin-right: var( --cre8-button-margin-right, 0);\n display: inline-flex;\n align-items: center;\n border-width: var(--cre8-border-width-button-default);\n box-shadow: var(--cre8-shadow-button);\n padding-top: var(--cre8-button-padding-vertical-medium);\n padding-right: var(--cre8-button-padding-horizontal-medium);\n padding-bottom: var(--cre8-button-padding-vertical-medium);\n padding-left: var(--cre8-button-padding-horizontal-medium);\n margin: 0;\n cursor: pointer;\n border-style: var(--cre8-border-style-default);\n transition: revert;\n transform: revert;\n white-space: nowrap;\n &:hover,\n &:focus,\n &:active,\n &:focus-visible {\n border-style: var(--cre8-border-style-default);\n box-shadow: none;\n transform: revert;\n transition: revert;\n }\n &.cre8-c-button--primary {\n background: var(--cre8-color-button-primary-bg);\n border-width: var(--cre8-border-width-button-default);\n border-color: var(--cre8-color-button-primary-border);\n border-radius: var(--cre8-border-radius-button);\n box-shadow: var(--cre8-shadow-button);\n color: var(--cre8-color-button-primary-content);\n --cre8-icon-fill: var(--cre8-color-button-primary-content);\n &:hover,\n &:focus {\n box-shadow: none;\n --cre8-icon-fill: var(--cre8-color-button-primary-content-hover);\n color: var(--cre8-color-button-primary-content-hover);\n border-color: var(--cre8-color-button-primary-border-hover);\n background: var(--cre8-color-button-primary-bg-hover);\n text-decoration: none;\n &:focus {\n @includefocus();\n }\n }\n &:focus-visible,\n &:active,\n &.cre8-c-button--loading {\n box-shadow: none;\n color: var(--cre8-color-button-primary-content-active);\n --cre8-icon-fill: var(--cre8-color-button-primary-content-active);\n border-color: var(--cre8-color-button-primary-border-active);\n background-color: var(--cre8-color-button-primary-bg-active);\n }\n &:focus-visible{\n @includefocus();\n }\n &.cre8-c-button--loading{\n cursor: not-allowed;\n }\n /**\n * Disabled primary and secondary button\n */\n &:disabled {\n box-shadow: none;\n background-color: var(--cre8-color-button-primary-bg-disabled);\n border-color: var(--cre8-color-button-primary-border-disabled);\n color: var(--cre8-color-button-primary-content-disabled);\n --cre8-icon-fill: var(--cre8-color-button-primary-content-disabled);\n cursor: not-allowed;\n outline: none;\n &:hover,\n &:focus,\n &:active,\n &:focus-visible {\n outline: none;\n background-color: var(--cre8-color-button-primary-bg-disabled);\n border-color: var(--cre8-color-button-primary-border-disabled);\n color: var(--cre8-color-button-primary-content-disabled);\n --cre8-icon-fill: var(--cre8-color-button-primary-content-disabled);\n }\n }\n}\n\n/**\n* Primary button inverse\n*/\n&.cre8-c-button--primary.cre8-c-button--inverse {\nbackground: var(--cre8-color-button-primary-inverse-bg);\nborder-width: var(--cre8-border-width-button-default);\nborder-color: var(--cre8-color-button-primary-inverse-border);\nborder-radius: var(--cre8-border-radius-button);\nbox-shadow: var(--cre8-shadow-button);\ncolor: var(--cre8-color-button-primary-inverse-content);\n--cre8-icon-fill: var(--cre8-color-button-primary-inverse-content);\n&:hover,\n&:focus {\n box-shadow: none;\n --cre8-icon-fill: var(--cre8-color-button-primary-inverse-content-hover);\n color: var(--cre8-color-button-primary-inverse-content-hover);\n border-color: var(--cre8-color-button-primary-inverse-border-hover);\n background: var(--cre8-color-button-primary-inverse-bg-hover);\n text-decoration: none;\n &:focus {\n @includefocus();\n }\n}\n&:focus-visible,\n&:active,\n&.cre8-c-button--loading {\n box-shadow: none;\n color: var(--cre8-color-button-primary-inverse-content-active);\n --cre8-icon-fill: var(--cre8-color-button-primary-inverse-content-active);\n border-color: var(--cre8-color-button-primary-inverse-border-active);\n background-color: var(--cre8-color-button-primary-inverse-bg-active);\n}\n&:focus-visible{\n @includefocus();\n}\n&.cre8-c-button--loading{\n cursor: not-allowed;\n}\n\n&:disabled {\n box-shadow: none;\n background-color: var(--cre8-color-button-primary-inverse-bg-disabled);\n border-color: var(--cre8-color-button-primary-inverse-border-disabled);\n color: var(--cre8-color-button-primary-inverse-content-disabled);\n --cre8-icon-fill: var(--cre8-color-button-primary-inverse-content-disabled);\n cursor: not-allowed;\n outline: none;\n &:hover,\n &:focus,\n &:active,\n &:focus-visible {\n outline: none;\n background-color: var(--cre8-color-button-primary-inverse-bg-disabled);\n border-color: var(--cre8-color-button-primary-inverse-border-disabled);\n color: var(--cre8-color-button-primary-inverse-content-disabled);\n --cre8-icon-fill: var(--cre8-color-button-primary-inverse-content-disabled);\n }\n}\n}\n\n/**\n * Secondary button\n * The icon button shares the styles of the standard secondary button\n */\n &.cre8-c-button--secondary {\n background-color: var(--cre8-color-button-secondary-bg);\n border-color: var(--cre8-color-button-secondary-border);\n color: var(--cre8-color-button-secondary-content);\n --cre8-icon-fill: var(--cre8-color-button-secondary-content);\n border-radius: var(--cre8-border-radius-button);\n border-width: var(--cre8-border-width-button-default);\n\n &:hover,\n &:focus {\n background-color: var(--cre8-color-button-secondary-bg-hover);\n border-color: var(--cre8-color-button-secondary-border-hover);\n color: var(--cre8-color-button-secondary-content-hover);\n --cre8-icon-fill: var(--cre8-color-button-secondary-content-hover);\n &:focus {\n @includefocus();\n }\n }\n &:focus-visible,\n &:active,\n &.cre8-c-button--loading {\n transition: none;\n transform: none;\n background-color: var(--cre8-color-button-secondary-bg-active);\n border-color: var(--cre8-color-button-secondary-border-active);\n color: var(--cre8-color-button-secondary-content-active);\n --cre8-icon-fill: var(--cre8-color-button-secondary-content-active);\n }\n &:focus-visible {\n @includefocus();\n }\n &.cre8-c-button--loading {\n cursor: not-allowed;\n }\n\n &:disabled {\n box-shadow: none;\n background-color: var(--cre8-color-button-secondary-bg-disabled);\n border-color: var(--cre8-color-button-secondary-border-disabled);\n color: var(--cre8-color-button-secondary-content-disabled);\n --cre8-icon-fill: var(--cre8-color-button-secondary-content-disabled);\n outline: none;\n border-radius: var(--cre8-border-radius-button);\n border-width: var(--cre8-border-width-button-default);\n cursor: not-allowed;\n &:hover,\n &:focus,\n &:active,\n &:focus-visible {\n outline: none;\n background-color: var(--cre8-color-button-secondary-bg-disabled);\n border-color: var(--cre8-color-button-secondary-border-disabled);\n color: var(--cre8-color-button-secondary-content-disabled);\n --cre8-icon-fill: var(--cre8-color-button-secondary-content-disabled);\n }\n }\n}\n\n /**\n * Secondary button neutral\n */\n &.cre8-c-button--secondary.cre8-c-button--neutral {\n background-color: var(--cre8-color-button-secondary-neutral-bg);\n border-color: var(--cre8-color-button-secondary-neutral-border);\n color: var(--cre8-color-button-secondary-neutral-content);\n --cre8-icon-fill: var(--cre8-color-button-secondary-neutral-content);\n border-radius: var(--cre8-border-radius-button);\n border-width: var(--cre8-border-width-button-default);\n\n &:hover,\n &:focus {\n background-color: var(--cre8-color-button-secondary-neutral-bg-hover);\n border-color: var(--cre8-color-button-secondary-neutral-border-hover);\n color: var(--cre8-color-button-secondary-neutral-content-hover);\n --cre8-icon-fill: var(--cre8-color-button-secondary-neutral-content-hover);\n &:focus {\n @includefocus();\n }\n }\n &:focus-visible,\n &:active,\n &.cre8-c-button--loading {\n transition: none;\n transform: none;\n background-color: var(--cre8-color-button-secondary-neutral-bg-active);\n border-color: var(--cre8-color-button-secondary-neutral-border-active);\n color: var(--cre8-color-button-secondary-neutral-content-active);\n --cre8-icon-fill: var(--cre8-color-button-secondary-neutral-content-active);\n }\n &:focus-visible {\n @includefocus();\n }\n\n &:disabled {\n box-shadow: none;\n background-color: var(--cre8-color-button-secondary-neutral-bg-disabled);\n border-color: var(--cre8-color-button-secondary-neutral-border-disabled);\n color: var(--cre8-color-button-secondary-neutral-content-disabled);\n --cre8-icon-fill: var(--cre8-color-button-secondary-neutral-content-disabled);\n outline: none;\n border-radius: var(--cre8-border-radius-button);\n border-width: var(--cre8-border-width-button-default);\n cursor: not-allowed;\n &:hover,\n &:focus,\n &:active,\n &:focus-visible {\n outline: none;\n background-color: var(--cre8-color-button-secondary-neutral-bg-disabled);\n border-color: var(--cre8-color-button-secondary-neutral-border-disabled);\n color: var(--cre8-color-button-secondary-neutral-content-disabled);\n --cre8-icon-fill: var(--cre8-color-button-secondary-neutral-content-disabled);\n }\n }\n }\n\n/**\n * Secondary button inverse\n */\n &.cre8-c-button--secondary.cre8-c-button--inverse {\n background-color: var(--cre8-color-button-secondary-inverse-bg);\n border-color: var(--cre8-color-button-secondary-inverse-border);\n color: var(--cre8-color-button-secondary-inverse-content);\n --cre8-icon-fill: var(--cre8-color-button-secondary-inverse-content);\n border-radius: var(--cre8-border-radius-button);\n border-width: var(--cre8-border-width-button-default);\n\n&:hover,\n&:focus {\n background-color: var(--cre8-color-button-secondary-inverse-bg-hover);\n border-color: var(--cre8-color-button-secondary-inverse-border-hover);\n color: var(--cre8-color-button-secondary-inverse-content-hover);\n --cre8-icon-fill: var(--cre8-color-button-secondary-inverse-content-hover);\n &:focus {\n @includefocus();\n }\n}\n&:focus-visible,\n&:active,\n&.cre8-c-button--loading {\n transition: none;\n transform: none;\n background-color: var(--cre8-color-button-secondary-inverse-bg-active);\n border-color: var(--cre8-color-button-secondary-inverse-border-active);\n color: var(--cre8-color-button-secondary-inverse-content-active);\n --cre8-icon-fill: var(--cre8-color-button-secondary-inverse-content-active);\n}\n&:focus-visible {\n @includefocus();\n}\n\n&:disabled {\n box-shadow: none;\n background-color: var(--cre8-color-button-secondary-inverse-bg-disabled);\n border-color: var(--cre8-color-button-secondary-inverse-border-disabled);\n color: var(--cre8-color-button-secondary-inverse-content-disabled);\n --cre8-icon-fill: var(--cre8-color-button-secondary-inverse-content-disabled);\n outline: none;\n border-radius: var(--cre8-border-radius-button);\n border-width: var(--cre8-border-width-button-default);\n cursor: not-allowed;\n &:hover,\n &:focus,\n &:active,\n &:focus-visible {\n outline: none;\n background-color: var(--cre8-color-button-secondary-inverse-bg-disabled);\n border-color: var(--cre8-color-button-secondary-inverse-border-disabled);\n color: var(--cre8-color-button-secondary-inverse-content-disabled);\n --cre8-icon-fill: var(--cre8-color-button-secondary-inverse-content-disabled);\n }\n}\n}\n\n /**\n * Secondary button neutral inverse\n */\n &.cre8-c-button--secondary.cre8-c-button--neutral.cre8-c-button--inverse {\n background-color: var(--cre8-color-button-secondary-neutral-inverse-bg);\n border-color: var(--cre8-color-button-secondary-neutral-inverse-border);\n color: var(--cre8-color-button-secondary-neutral-inverse-content);\n --cre8-icon-fill: var(--cre8-color-button-secondary-neutral-inverse-content);\n border-radius: var(--cre8-border-radius-button);\n border-width: var(--cre8-border-width-button-default);\n\n&:hover,\n&:focus {\n @includefocus();\n background-color: var(--cre8-color-button-secondary-neutral-bg-active);\n border-color: var(--cre8-color-button-secondary-neutral-inverse-border-active);\n outline-color: var(--cre8-color-button-secondary-neutral-inverse-outline);\n color: var(--cre8-color-button-secondary-neutral-inverse-content-active);\n --cre8-icon-fill: var(--cre8-color-button-secondary-neutral-inverse-content-active);\n}\n\n&:focus-visible,\n&:active,\n&.cre8-c-button--loading {\n transition: none;\n transform: none;\n background-color: var(--cre8-color-button-secondary-neutral-inverse-bg-active);\n border-color: var(--cre8-color-button-secondary-neutral-inverse-border-active);\n color: var(--cre8-color-button-secondary-neutral-inverse-content-active);\n --cre8-icon-fill: var(--cre8-color-button-secondary-neutral-inverse-content-active);\n}\n&:focus-visible {\n @includefocus();\n}\n\n&:disabled {\n box-shadow: none;\n background-color: var(--cre8-color-button-secondary-neutral-inverse-bg-disabled);\n border-color: var(--cre8-color-button-secondary-neutral-inverse-border-disabled);\n color: var(--cre8-color-button-secondary-neutral-inverse-content-disabled);\n --cre8-icon-fill: var(--cre8-color-button-secondary-neutral-inverse-content-disabled);\n outline: none;\n border-radius: var(--cre8-border-radius-button);\n border-width: var(--cre8-border-width-button-default);\n cursor: not-allowed;\n &:hover,\n &:focus,\n &:active,\n &:focus-visible {\n outline: none;\n background-color: var(--cre8-color-button-secondary-neutral-inverse-bg-disabled);\n border-color: var(--cre8-color-button-secondary-neutral-inverse-border-disabled);\n color: var(--cre8-color-button-secondary-neutral-inverse-content-disabled);\n --cre8-icon-fill: var(--cre8-color-button-secondary-neutral-inverse-content-disabled);\n }\n}\n}\n\n /**\n * Tertiary button\n */\n &.cre8-c-button--tertiary {\n border-radius: var(--cre8-border-radius-button);\n background-color: var(--cre8-color-button-tertiary-bg);\n border-width: var(--cre8-border-width-button-default);\n border-color: var(--cre8-color-button-tertiary-border);\n color: var(--cre8-color-button-tertiary-content);\n --cre8-icon-fill: var(--cre8-color-button-tertiary-content);\n box-shadow: none;\n &:hover,\n &:focus {\n border-radius: var(--cre8-border-radius-button);\n background-color: var(--cre8-color-button-tertiary-bg-hover);\n border-width: var(--cre8-border-width-button-default, --cre8-border-width-none);\n border-color: var(--cre8-color-button-tertiary-border-hover);\n color: var(--cre8-color-button-tertiary-content-hover);\n --cre8-icon-fill: var(--cre8-color-button-tertiary-content-hover);\n &:focus {\n @includefocusTertiary();\n }\n }\n\n &:focus-visible,\n &:active,\n &.cre8-c-button--loading {\n border-radius: var(--cre8-border-radius-button);\n background-color: var(--cre8-color-button-tertiary-bg-active);\n border-color: var(--cre8-color-button-tertiary-border-active);\n border-width: var(--cre8-border-width-button-default);\n color: var(--cre8-color-button-tertiary-content-active);\n --cre8-icon-fill: var(--cre8-color-button-tertiary-content-active);\n }\n &:focus-visible {\n @includefocusTertiary();\n }\n &.cre8-c-button--loading {\n cursor: not-allowed;\n }\n &:disabled {\n background-color: var(--cre8-color-button-tertiary-bg-disabled);\n border-color: transparent;\n color: var(--cre8-color-button-tertiary-content-disabled);\n --cre8-icon-fill: var(--cre8-color-button-tertiary-content-disabled);\n outline: none;\n box-shadow: none;\n cursor: not-allowed;\n\n &:hover,\n &:focus {\n outline: none;\n box-shadow: none;\n background-color: var(--cre8-color-button-tertiary-bg-disabled);\n color: var(--cre8-color-button-tertiary-content-disabled);\n --cre8-icon-fill: var(--cre8-color-button-tertiary-content-disabled);\n }\n &:active,\n &:focus-visible {\n outline: none;\n box-shadow: none;\n background-color: var(--cre8-color-button-tertiary-bg-disabled);\n color: var(--cre8-color-button-tertiary-content-disabled);\n --cre8-icon-fill: var(--cre8-color-button-tertiary-content-disabled);\n }\n }\n}\n\n /**\n * Tertiary button neutral\n */\n &.cre8-c-button--tertiary.cre8-c-button--neutral {\n background-color: var(--cre8-color-button-tertiary-neutral-bg);\n border-color: var(--cre8-color-button-tertiary-border);\n color: var(--cre8-color-button-tertiary-neutral-content);\n --cre8-icon-fill: var(--cre8-color-button-tertiary-neutral-content);\n border-radius: var(--cre8-border-radius-button);\n border-width: var(--cre8-border-width-button-default);\n\n &:hover,\n &:focus {\n background-color: var(--cre8-color-button-tertiary-neutral-bg-hover);\n border-color: var(--cre8-color-button-tertiary-neutral-border-hover);\n color: var(--cre8-color-button-tertiary-neutral-content-hover);\n --cre8-icon-fill: var(--cre8-color-button-tertiary-neutral-content-hover);\n outline-color: var(--cre8-color-button-tertiary-neutral-outline);\n }\n\n &:focus-visible,\n &:active,\n &.cre8-c-button--loading {\n transition: none;\n transform: none;\n background-color: var(--cre8-color-button-tertiary-neutral-bg-active);\n border-color: var(--cre8-color-button-tertiary-neutral-border-active);\n color: var(--cre8-color-button-tertiary-neutral-content-active);\n --cre8-icon-fill: var(--cre8-color-button-tertiary-neutral-content-active);\n }\n\n &:focus-visible {\n @includefocus();\n }\n\n &:disabled {\n box-shadow: none;\n background-color: var(--cre8-color-button-tertiary-neutral-bg-disabled);\n border-color: var(--cre8-color-button-tertiary-neutral-border-disabled);\n color: var(--cre8-color-button-tertiary-neutral-content-disabled);\n --cre8-icon-fill: var(--cre8-color-button-tertiary-neutral-content-disabled);\n outline: none;\n border-radius: var(--cre8-border-radius-button);\n border-width: var(--cre8-border-width-button-default);\n\n cursor: not-allowed;\n }\n }\n\n/**\n * Tertiary button inverse\n */\n &.cre8-c-button--tertiary.cre8-c-button--inverse {\n border-radius: var(--cre8-border-radius-button);\n background-color: var(--cre8-color-button-tertiary-inverse-bg);\n border-width: var(--cre8-border-width-button-default);\n border-color: var(--cre8-color-button-tertiary-inverse-border);\n color: var(--cre8-color-button-tertiary-inverse-content);\n --cre8-icon-fill: var(--cre8-color-button-tertiary-inverse-content);\n box-shadow: none;\n\n &:hover,\n &:focus {\n border-radius: var(--cre8-border-radius-button);\n background-color: var(--cre8-color-button-tertiary-inverse-bg-hover);\n border-width: var(--cre8-border-width-button-default, --cre8-border-width-none);\n border-color: var(--cre8-color-button-tertiary-inverse-border-hover);\n color: var(--cre8-color-button-tertiary-inverse-content-hover);\n --cre8-icon-fill: var(--cre8-color-button-tertiary-inverse-content-hover);\n outline-color: var(--cre8-color-button-tertiary-inverse-outline);\n }\n\n&:focus-visible,\n&:active,\n&.cre8-c-button--loading {\n border-radius: var(--cre8-border-radius-button);\n background-color: var(--cre8-color-button-tertiary-inverse-bg-active);\n border-color: var(--cre8-color-button-tertiary-inverse-border-active);\n border-width: var(--cre8-border-width-button-default);\n color: var(--cre8-color-button-tertiary-inverse-content-active);\n --cre8-icon-fill: var(--cre8-color-button-tertiary-inverse-content-active);\n outline-color: var(--cre8-color-button-tertiary-inverse-outline);\n}\n\n&.cre8-c-button--loading {\n cursor: not-allowed;\n}\n&:disabled {\n background-color: var(--cre8-color-button-tertiary-inverse-bg-disabled);\n border-color: transparent;\n color: var(--cre8-color-button-tertiary-inverse-content-disabled);\n --cre8-icon-fill: var(--cre8-color-button-tertiary-inverse-content-disabled);\n outline: none;\n box-shadow: none;\n cursor: not-allowed;\n\n &:hover,\n &:focus {\n outline: none;\n box-shadow: none;\n background-color: var(--cre8-color-button-tertiary-inverse-bg-disabled);\n color: var(--cre8-color-button-tertiary-inverse-content-disabled);\n --cre8-icon-fill: var(--cre8-color-button-tertiary-inverse-content-disabled);\n }\n &:active,\n &:focus-visible {\n outline: none;\n box-shadow: none;\n background-color: var(--cre8-color-button-tertiary-inverse-bg-disabled);\n color: var(--cre8-color-button-tertiary-inverse-content-disabled);\n --cre8-icon-fill: var(--cre8-color-button-tertiary-inverse-content-disabled);\n }\n}\n}\n\n /**\n * Tertiary Neutral button inverse\n */\n &.cre8-c-button--tertiary.cre8-c-button--neutral.cre8-c-button--inverse {\n border-radius: var(--cre8-border-radius-button);\n background-color: var(--cre8-color-button-tertiary-neutral-inverse-bg);\n border-width: var(--cre8-border-width-button-default);\n color: var(--cre8-color-button-tertiary-neutral-inverse-content);\n --cre8-icon-fill: var(--cre8-color-button-tertiary-neutral-inverse-content);\n box-shadow: none;\n\n &:hover,\n &:focus {\n border-radius: var(--cre8-border-radius-button);\n background-color: var(--cre8-color-button-tertiary-neutral-inverse-bg-hover);\n border-width: var(--cre8-border-width-button-default, --cre8-border-width-none);\n border-color: var(--cre8-color-button-tertiary-neutral-inverse-border-hover);\n color: var(--cre8-color-button-tertiary-neutral-inverse-content-hover);\n --cre8-icon-fill: var(--cre8-color-button-tertiary-neutral-inverse-content-hover);\n outline-color: var(--cre8-color-button-tertiary-neutral-inverse-outline);\n }\n\n &:focus-visible,\n &:active,\n &.cre8-c-button--loading {\n border-radius: var(--cre8-border-radius-button);\n background-color: var(--cre8-color-button-tertiary-neutral-inverse-bg-active);\n border-color: var(--cre8-color-button-tertiary-neutral-inverse-border-active);\n border-width: var(--cre8-border-width-button-default);\n color: var(--cre8-color-button-tertiary-neutral-inverse-content-active);\n --cre8-icon-fill: var(--cre8-color-button-tertiary-neutral-inverse-content-active);\n outline-color: var(--cre8-color-button-tertiary-neutral-inverse-outline);\n }\n\n &.cre8-c-button--loading {\n cursor: not-allowed;\n }\n\n &:disabled {\n background-color: var(--cre8-color-button-tertiary-neutral-inverse-bg-disabled);\n border-color: transparent;\n color: var(--cre8-color-button-tertiary-neutral-inverse-content-disabled);\n --cre8-icon-fill: var(--cre8-color-button-tertiary-neutral-inverse-content-disabled);\n outline: none;\n box-shadow: none;\n cursor: not-allowed;\n }\n }\n\n &.cre8-c-button.cre8-c-button--secondary.cre8-c-button--split-button-text {\n border-radius: var(--cre8-border-radius-button) var(--cre8-border-radius-none) var(--cre8-border-radius-none) var(--cre8-border-radius-button);\n border-color: var(--cre8-color-button-secondary-border);\n border-width: var(--cre8-border-width-button-default);\n color: var(--cre8-color-button-secondary-content);\n &:active,\n &:focus-visible {\n outline: none;\n }\n &.cre8-c-button--lg {\n padding: var(--cre8-button-padding-vertical-large) var(--cre8-button-padding-horizontal-large);\n }\n &.cre8-c-button--sm {\n padding: var(--cre8-button-padding-vertical-small) var(--cre8-button-padding-horizontal-small);\n }\n }\n\n &.cre8-c-button.cre8-c-button--icon-only.cre8-c-button--split-button-caret {\n padding: var(--cre8-button-padding-vertical-medium);\n border-radius: var(--cre8-border-radius-none) var(--cre8-border-radius-button) var(--cre8-border-radius-button) var(--cre8-border-radius-none);\n height: 100%;\n border-left: none !important ;\n border-collapse: collapse;\n background: var(--cre8-color-button-secondary-bg);\n border-color: var(--cre8-color-button-secondary-border);\n border-width: var(--cre8-border-width-button-default);\n color: var(--cre8-color-button-secondary-content);\n --cre8-icon-fill: var(--cre8-color-button-secondary-content);\n\n &:hover,\n &:focus {\n background: var(--cre8-color-button-secondary-bg-hover);\n border-color: var(--cre8-color-button-secondary-border-hover);\n --cre8-icon-fill: var(--cre8-color-button-secondary-content-hover);\n outline: none;\n border-left: none;\n border-collapse: collapse;\n }\n &:active,\n &:focus-visible {\n background: var(--cre8-color-button-secondary-bg-active);\n border-color: var(--cre8-color-button-secondary-border-active);\n --cre8-icon-fill: var(--cre8-color-button-secondary-content-active);\n outline: none;\n border-left: none;\n border-collapse: collapse;\n }\n }\n}\n\n.cre8-c-button--lg {\n padding: var(--cre8-button-padding-vertical-large);\n}\n.cre8-c-button--sm {\n padding: var(--cre8-button-padding-vertical-small);\n}\n\n.cre8-c-button--icon-only {\n padding: var(--cre8-button-padding-vertical-small);\n color: var(--cre8-icon-fill, currentColor);\n}\n\n/**\n * Full-width button\n */\n.cre8-c-button--full-width {\n width: 100%;\n display: flex;\n}\n\n/**\n * Small button\n */\n.cre8-c-button--sm {\n @include cre8-typography-label-small();\n padding-top: var(--cre8-button-padding-vertical-small);\n padding-right: var(--cre8-button-padding-horizontal-small);\n padding-bottom: var(--cre8-button-padding-vertical-small);\n padding-left: var(--cre8-button-padding-horizontal-small);\n}\n\n/**\n * Small button sized for icon only\n */\n .cre8-c-button--sm.cre8-c-button--icon-only {\n @include cre8-typography-label-small();\n padding-top: var(--cre8-button-padding-vertical-small-icon-only);\n padding-right: var(--cre8-button-padding-horizontal-small-icon-only);\n padding-bottom: var(--cre8-button-padding-vertical-small-icon-only);\n padding-left: var(--cre8-button-padding-horizontal-small-icon-only);\n}\n\n/**\n * Large button\n */\n.cre8-c-button--lg {\n @include cre8-typography-label-large();\n padding-top: var(--cre8-button-padding-vertical-large);\n padding-right: var(--cre8-button-padding-horizontal-large);\n padding-bottom: var(--cre8-button-padding-vertical-large);\n padding-left: var(--cre8-button-padding-horizontal-large);\n}\n\n/**\n * Large button sized for icon only\n */\n .cre8-c-button--lg.cre8-c-button--icon-only {\n @include cre8-typography-label-large();\n padding-top: var(--cre8-button-padding-vertical-large-icon-only);\n padding-right: var(--cre8-button-padding-horizontal-large-icon-only);\n padding-bottom: var(--cre8-button-padding-vertical-large-icon-only);\n padding-left: var(--cre8-button-padding-horizontal-large-icon-only);\n}\n\n/**\n * Icon within small button\n */\n.cre8-c-button--sm cre8-icon-legacy {\n --cre8-icon-height: var(--cre8-icon-size-small);\n --cre8-icon-width: var(--cre8-icon-size-small);\n}\n\n.cre8-c-button--sm cre8-icon {\n svg {\n height: size(1.75);\n width: size(1.75);\n }\n}\n\n/**\n * Icon within large button\n */\n.cre8-c-button--lg cre8-icon-legacy {\n --cre8-icon-height: var(--cre8-icon-size-large);\n --cre8-icon-width: var(--cre8-icon-size-large);\n}\n\n.cre8-c-button--lg cre8-icon {\n svg {\n height: size(2.25);\n width: size(2.25);\n }\n}\n\n::slotted(*) {\n margin-right: 0;\n}\n/**\n * Button icon directly before button text\n */\n\ncre8-icon-legacy + .cre8-c-button__text:not(.cre8-u-is-vishidden) {\n margin-left: size(1);\n}\n\ncre8-icon + .cre8-c-button__text:not(.cre8-u-is-vishidden) {\n margin-left: size(1);\n}\n\n/**\n * Button icon directly after button text\n */\n.cre8-c-button__text:not(.cre8-u-is-vishidden) + cre8-icon-legacy {\n margin-left: size(1);\n}\n\n.cre8-c-button__text:not(.cre8-u-is-vishidden) + cre8-icon {\n margin-left: size(1);\n}\n/**\n * Button icon only\n */\n.cre8-c-button:has(.cre8-c-button__text.cre8-u-is-vishidden) + cre8-icon-legacy {\n border-radius: var(--cre8-border-radius-button);\n}\n\n.cre8-c-button:has(.cre8-c-button__text.cre8-u-is-vishidden) + cre8-icon {\n border-radius: var(--cre8-border-radius-button);\n}\n\n.cre8-c-button__text.cre8-u-is-vishidden + cre8-icon-legacy {\n margin-left: 0px;\n margin-right: 0px;\n}\n\n.cre8-c-button__text.cre8-u-is-vishidden + cre8-icon {\n margin-left: 0px;\n margin-right: 0px;\n}\n\n.cre8-c-button__text.cre8-u-is-vishidden {\n @include visuallyHidden();\n}\n\n.cre8-c-button--primary.cre8-c-button--loading {\n --cre8-icon-fill: var(--cre8-color-content-knockout);\n}\n.cre8-c-button--secondary.cre8-c-button--loading,\n.cre8-c-button--tertiary.cre8-c-button--loading {\n --cre8-icon-fill: var(--cre8-color-button-secondary-content-active);\n}\n\n/**\n * Aria live span\n */\n.cre8-u-is-vishidden {\n --cre8-icon-height: 0px;\n --cre8-icon-width: 0px;\n max-width: fit-content;\n min-width: 0px;\n width: auto;\n height: auto;\n max-height: fit-content;\n min-width: 0px;\n\n @include visuallyHidden();\n}\n\ncre8-icon-legacy.cre8-u-is-vishidden {\n @include visuallyHidden();\n}\n\nspan.cre8-c-button__icon {\n margin-left: size(1);\n max-width: fit-content;\n min-width: 0px;\n width: auto;\n height: auto;\n max-height: fit-content;\n min-width: 0px;\n}\n\ncre8-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n\n svg {\n height: size(2);\n width: size(2);\n }\n}\n`;\nexport default styles;","import { html, nothing, } from 'lit';\nimport { ifDefined } from 'lit-html/directives/if-defined.js';\nimport { property, query } from 'lit/decorators.js';\nimport { Cre8FormElement } from '../cre8-form-element';\nimport '../icon/icon';\nimport '../loading-spinner/loading-spinner';\nimport styles from './button.styles.js';\n\n /**\n * The size and state of buttons on the screen serve as visual cues for the user\n * about what they can do and what they should do next.\n * They indicate the availability and priority of the action on the page.\n *\n * - Buttons are a single call-to-action where a single click performs that action\n * - Use buttons when you are performing an action which is almost always on the same page\n * - Use a link instead of a button when you're navigating to another place\n *\n * ## How to Use\n *\n * Buttons are distinguished by three key properties:\n *\n * - **Visual Priority**: Style and size: Primary, Secondary, or Tertiary styles;\n * each with large and small variations\n * - **State**: Interaction state: hover/click (press), focus, disabled,\n * and submitting/loading (only for large buttons)\n * - **Brand**: Styles determined by the site or component theme\n *\n * ### Usage Guidelines\n *\n * Primary, Secondary and Tertiary styles emphasize or de-emphasize an action. They also define\n * background, font style, and border colors. Large and small sizing assists with visual priority by defining button\n * heights, left and right internal padding, and font-size.\n *\n * #### System Feedback\n * Each button has a default and hover/click (press) state that give the user feedback\n * that they have successfully interacted with a button.\n * Button presses should always be combined with other types of timely system feedback.\n * Examples of system feedback may be a page refresh, exposing additional controls or content,\n * dialogs, alerts and notifications.\n * If there is perceived a delay in system response, generally due to technical constraints,\n * provide a progress or loading indicator.\n *\n * #### Button Text\n *\n * - Button text should be as short and simple as possible, ideally a maximum of 3 words.\n * - Use Title Case for readability.\n * - They should not include punctuation (exception: \"Loading...\").\n * - They should not be used as an indicator of what happens on the next page, or as a substitute\n * for a progress meter.\n *\n * #### Button With Icon\n *\n * For button with icon:\n * - **iconRotateDegree** & **iconFlipDirection** props are optional.\n * - They are used to set up the correct direction for icons, for example,\n * arrows, caret up or caret down.\n *\n * #### Button Styling\n *\n * - DO use only the styles of the brand you are working on.\n * - DO NOT combine styles, even if the page is co-branded.\n *\n * #### Button Sizes\n * - DO always pair like sizes together and maintain the hierarchy of Primary and Secondary/Tertiary.\n * - DO NOT mix sizes of buttons when they are used together as a group.\n *\n * #### Input Pairing\n *\n * Primary and Secondary buttons may be paired with input fields.\n * Only one Primary button may appear on each screen.\n * Use the Secondary button when there are multiple in-context buttons\n * and/or when there is an emphasized page level button.\n * When used in a form context, the button's `type` needs to be `submit` to pass along form data.\n *\n * - DO use only large buttons with input fields.\n * - DO NOT use small buttons with input fields.\n *\n */\n\nexport class Cre8Button extends Cre8FormElement {\n static styles = [styles];\n\n /**\n * The button text. Should be as short and simple as possible, ideally a maximum of 3 words.\n * - Use Title Case for readability.\n * - Should not include punctuation (exception: \"Loading...\").\n * - Should not be used as an indicator of what happens on the next page, or as a substitute for a progress meter.\n */\n @property()\n text? = 'Button';\n\n /**\n * Style variant\n * - **primary** renders the button used for primary actions. Presents highest visual priority.\n * When grouped with other buttons, only one primary is allowed\n * - **secondary** renders a secondary button. Presents a lower visual priority\n * - **tertiary** renders a tertiary button. Presents the lowest visual priority.\n * Should be used in limited amounts - consider if a link (`<a>`) would be more appropriate\n */\n @property({ type: String })\n variant?: 'primary' | 'secondary' | 'tertiary' = 'primary';\n\n /**\n * Disabled attribute\n * @attr {boolean}\n *\n * **NOTE**: Disabled states are used to indicate that an action is temporarily unavailable.\n * In general, using disabled states is NOT advised. It should be clear to the user what actions they must\n * take to activate the button. Real-time, field-level validation can help provide clarity.\n */\n @property({ type: Boolean, reflect: true })\n disabled?: boolean;\n\n /**\n * This property is for a neutral button propery mainly used for the secondary or tertiary button variant.\n * @attr {boolean)\n */\n @property({ type: Boolean, reflect: true })\n neutral?: boolean;\n\n /**\n * Inverse attribute\n * @attr {boolean}\n *\n * The inverse prop allows the button to work on either a light or dark surface.\n */\n @property({ type: Boolean, reflect: true })\n inverse?: boolean;\n\n /**\n *\n * Provide this property if you intend to use button styles for an anchor tag (`<a>`).\n * This changes the component markup from `<button>` usage to `<a>` instead.\n */\n @property()\n href?: string;\n\n /**\n * Target attribute for a link if providing `href` to style a link as a button\n * - **_blank** yields a link that opens in a new tab\n * - **_self** yields a link that loads the URL into the same browsing context as the current one.\n * This is the default behavior\n * - **_parent** yields a link that loads the URL into the parent browsing context of the current one.\n * If there is no parent, this behaves the same way as _self\n * - **_top** yields a link that loads the URL into the top-level browsing context.\n * If there is no parent, this behaves the same way as _self.\n */\n @property()\n target?: '_blank' | '_self' | '_parent' | '_top';\n\n /**\n * Type of button.\n * - **button** (default) button has no default behavior and does nothing unless provided some sort\n * of client-side trigger\n * - **submit** button for submitting form data to a server\n */\n @property()\n type: 'button' | 'submit' | 'reset' = 'button';\n\n /**\n * Rel if this is an <a> element - this swaps <button> for <a>\n */\n @property()\n rel?: string;\n\n /**\n * Deprecated: iconName, use svg instead\n * Icon name if including an icon within a button.\n * Must include the icon's position with `iconPostion`. This prop is used for <cre8-icon-legacy>\n * @deprecated\n */\n @property()\n iconName?: string;\n\n /**\n * svg as a raw string\n * - For button with icon, the icon is defined by this prop.\n * - Pass in a raw svg as a String for using <cre8-icon>\n * - Must include the icon's position with `iconPostion`.\n */\n @property()\n svg?: string;\n\n /**\n * iconRotateDegree is used for <cre8-icon> to set the arrow in the correct direction\n */\n @property({ type: Number })\n iconRotateDegree?: number = 0;\n\n /**\n * iconFlipDirection is used for <cre8-icon> to set the icon in the correct direction\n */\n @property()\n iconFlipDirection?: string;\n\n /**\n * Icon position. Must include the name of the icon with `iconName`\n *\n * - **before** places the icon before the button text\n * - **after** places the icon after the button text\n */\n @property()\n iconPosition?: 'before' | 'after' = undefined;\n\n /**\n * Size variants add another way to increase or decrease visual priority of a button.\n * - **sm** Shrinks the button typography and overall size from the default. Use when vertical space is constrained.\n * - **md** This is the default value for the size.\n * - **lg** Increases the button typography and overall size from the default.\n */\n @property()\n size: 'sm' | 'md' | 'lg' = 'md';\n\n /**\n * Visually hide button text. Text is still accessible to assistive technology.\n * Use this for icon-only buttons for accessibility\n */\n @property({ type: Boolean, reflect: true })\n hideText?: boolean;\n\n /**\n * Full width button\n * @attr {boolean}\n *\n */\n @property({ type: Boolean, reflect: true })\n fullWidth?: boolean;\n\n /**\n * * Changes styling to an active state with a spinning icon.\n * * Adds accessibility treatment by:\n * * announcing via voiceover when the loading success/error state via a aria-live region\n * * setting `aria-disabled`\n * * Disables click events / form submitting while allowing focus (for accessibility)\n * @attr {boolean}\n *\n */\n @property({ type: Boolean, reflect: true })\n loading?: boolean;\n\n /**\n * * Variant of the loading button that:\n * * Removes loading spinner\n * * Informs the SR user that the loading status is now complete, with visually hidden text in the live area\n * @attr {boolean}\n *\n */\n @property({ type: Boolean, reflect: true })\n loadingComplete?: boolean;\n\n /**\n * Controls whether your loading status update to voiceover users will occur\n * immediately (used for more urgently needed updates) using `assertive` or at the next convenient\n * pause in their navigation using `polite`.\n */\n @property()\n ariaLive: 'polite' | 'assertive' = 'assertive';\n\n /**\n * These two subvariants of the split button style the two seperate buttons to style as a singular button\n */\n @property()\n splitButtonType?: 'text' | 'caret';\n\n /**\n * Button aria expanded attribute\n */\n @property({ type: Boolean, reflect: true })\n buttonAriaExpanded?: boolean;\n\n @query('button')\n field!: HTMLButtonElement;\n\n formSubmit() {\n const form = this.internals.form;\n if (form) {\n form.requestSubmit();\n }\n }\n\n formReset() {\n const form = this.internals.form;\n if (form) {\n form.reset();\n }\n }\n\n private generateIconBefore() {\n if (this.iconPosition === 'before') {\n if (this.iconName) {\n return html`<cre8-icon-legacy slot=\"before\" aria-hidden=\"true\" name=\"${ifDefined(this.iconName)}\">\n </cre8-icon-legacy>`;\n }\n if (this.svg) {\n return html`<cre8-icon slot=\"before\" aria-hidden=\"true\"\n svg='${this.svg}' rotate=\"${Number(this.iconRotateDegree)}\" flip=\"${this.iconFlipDirection}\">\n </cre8-icon>`;\n }\n }\n return nothing;\n }\n\n private generateIconAfter() {\n if (this.iconPosition === 'after') {\n if (this.iconName) {\n return html`<cre8-icon-legacy slot=\"after\" aria-hidden=\"true\" name=\"${ifDefined(this.iconName)}\">\n </cre8-icon-legacy>`;\n }\n if (this.svg) {\n return html`<cre8-icon slot=\"after\" aria-hidden=\"true\"\n svg='${this.svg}' rotate=\"${Number(this.iconRotateDegree)}\" flip=\"${this.iconFlipDirection}\">\n </cre8-icon>`;\n }\n }\n return nothing;\n }\n\n // TODO: Temporarily keep eslint complexity as warning. Update during specific story for this rule.\n /* eslint complexity: [\"warn\", 10] */\n render() {\n const componentClassName = this.componentClassNames('cre8-c-button', {\n 'cre8-c-button--primary': this.variant === 'primary',\n 'cre8-c-button--secondary': this.variant === 'secondary',\n 'cre8-c-button--tertiary': this.variant === 'tertiary',\n 'cre8-c-button--full-width': this.fullWidth === true,\n 'cre8-c-button--sm': this.size === 'sm',\n 'cre8-c-button--lg': this.size === 'lg',\n 'cre8-c-button--icon-only': this.hideText,\n 'cre8-c-button--split-button-text': this.splitButtonType === 'text',\n 'cre8-c-button--split-button-caret': this.splitButtonType === 'caret',\n 'cre8-c-button--neutral': this.neutral,\n 'cre8-c-button--inverse': this.inverse,\n 'cre8-c-button--loading': this.loading,\n });\n\n if (this.hideText) {\n this.iconPosition = 'after';\n }\n\n if (this.href) {\n return html`\n <a\n href=\"${ifDefined(this.href)}\"\n class=\"${componentClassName}\"\n rel=\"${ifDefined(this.rel)}\"\n target=\"${ifDefined(this.target)}\"\n >\n ${this.generateIconBefore()}\n <span\n class=\"${this.hideText ? 'cre8-u-is-vishidden cre8-c-button__text' : 'cre8-c-button__text'}\"\n >\n ${this.text}\n </span>\n ${this.generateIconAfter()}\n </a>\n `;\n }\n return html` <button\n class=\"${componentClassName}\"\n part=\"button\"\n aria-disabled=\"${ifDefined(this.loading)}\"\n ?disabled=${this.disabled}\n @click=\"${this._buttonClick}\"\n aria-expanded=\"${ifDefined(this.buttonAriaExpanded)}\"\n >\n <slot name=\"before\"></slot>\n ${this.generateIconBefore()}\n <span\n class=\"${this.hideText ? 'cre8-u-is-vishidden cre8-c-button__text' : 'cre8-c-button__text'}\"\n >\n ${this.text}\n </span>\n ${this.generateIconAfter()}\n <slot name=\"after\"></slot>\n ${this.loading || this.loadingComplete\n ? html`<span class=\"cre8-c-button__icon\" aria-live=\"${this.ariaLive}\" role=\"alert\">\n <span class=\"cre8-u-is-vishidden\">${this.loadingComplete ? 'Loading Complete' : 'Loading'}</span>\n ${!this.loadingComplete\n ? html`\n <cre8-loading-spinner\n class=\"cre8-c-button__loading-icon\"\n size=\"small\"\n ?neutral=${this.neutral}\n ?inverse=${this.inverse}\n buttonVariant=${this.variant}\n aria-hidden=\"true\"\n ></cre8-loading-spinner>`\n : nothing}\n </span>`\n : nothing}\n </button>`;\n }\n\n private _buttonClick(e: MouseEvent | KeyboardEvent) {\n if (this.loading) {\n e.stopPropagation();\n } else {\n switch (this.type) {\n case 'submit':\n this.formSubmit();\n break;\n case 'reset':\n this.formReset();\n break;\n // no default\n }\n }\n }\n}\n\nif (customElements.get('cre8-button') === undefined) {\n customElements.define('cre8-button', Cre8Button);\n}\n\nexport default Cre8Button;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n/**\n* Accordion Item panel button\n* 1) Icon rotating on open was causing scrollbar to continuously appear/disappear\n* during the animation, overflow-x: hidden; prevents this from happening\n*/\n\n:host {\n display: block;\n ::slotted(*) {\n text-align: left;\n width: 100%;\n }\n}\n\n.cre8-c-accordion-item {\n border-bottom: var(--cre8-accordion-item-border-bottom);\n border-radius: var(--cre8-border-radius-none);\n --cre8-u-icon-display: flex;\n --cre8-u-icon-align-items: center;\n --cre8-u-icon-justify-content: center;\n padding: size(3) size(1);\n}\n.cre8-c-accordion-item--small cre8-heading button {\n @include cre8-typography-title-default();\n}\n.cre8-c-accordion-item--large cre8-heading button {\n @include cre8-typography-title-large();\n}\n.cre8-c-accordion-item__body {\n margin-right: size(0);\n margin-left: size(0);\n padding: size(0);\n overflow: hidden;\n visibility: hidden;\n transition: height var(--cre8-anim-fade-quick) var(--cre8-anim-ease), visibility var(--cre8-anim-fade-quick) var(--cre8-anim-ease);\n\n .cre8-c-accordion-item.cre8-is-active & {\n visibility: visible;\n }\n}\n\n.cre8-c-accordion-item__body-inner {\n display: flex;\n @include cre8-typography-body-default();\n padding: size(1) size(6) size(0) size(1);\n}\n\ncre8-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n height: size(3);\n min-height: size(3);\n min-width: size(3);\n transition: transform var(--cre8-anim-fade-quick) var(--cre8-anim-ease);\n width: size(3);\n\n .cre8-c-accordion-item.cre8-is-active & {\n transform: rotate(180deg);\n }\n}\n\n.cre8-c-accordion-item__icon {\n align-items: center;\n background: var(--cre8-color-bg-brand-strong);\n border-radius: var(--cre8-border-radius-round);\n color: var(--cre8-color-content-knockout);\n display: flex;\n height: size(4);\n justify-content: center;\n margin-left: size(1);\n margin-right: size(0.25);\n min-height: size(4);\n min-width: size(4);\n width: size(4);\n\n .cre8-c-accordion-item.cre8-is-active & {\n background: var(--cre8-color-button-secondary-bg);\n border: var(--cre8-border-width-default) var(--cre8-border-style-default) var(--cre8-color-button-secondary-border);\n color: var(--cre8-color-button-secondary-content);\n\n &:hover {\n border-color: var(--cre8-color-button-secondary-border-hover);\n background-color: var(--cre8-color-button-secondary-bg-hover);\n color: var(--cre8-color-button-secondary-content-hover);\n }\n\n &:focus {\n border-radius: var(--cre8-border-radius-default);\n box-shadow: size(0) size(0) size(0) size(0.25) var(--cre8-color-border-active-outline);\n outline: none;\n\n .cre8-c-accordion-item__icon {\n border-color: var(--cre8-color-button-secondary-border-active);\n color: var(--cre8-color-button-secondary-content-active);\n background-color: var(--cre8-color-button-secondary-bg-active);\n }\n .cre8-c-accordion-item__tertiary-icon {\n border-color: var(--cre8-color-border-transparent);\n color: var(--cre8-color-button-tertiary-content-active);\n background-color: var(--cre8-color-bg-transparent);\n }\n }\n }\n}\n\n.cre8-c-accordion-item__button {\n color: var(--cre8-color-content-default);\n display: block;\n appearance: none;\n background-color: var(--cre8-color-bg-transparent);\n border: var(--cre8-border-width-none);\n cursor: pointer;\n padding: size(0.5) size(1);\n overflow-x: hidden;\n transition: color var(--cre8-anim-fade-quick) var(--cre8-anim-ease);\n width: 100%;\n\n &.cre8-brand-color {\n color: var(--cre8-color-content-brand-strong);\n }\n\n &.cre8-u-justify-content-start {\n justify-content: flex-start;\n .cre8-c-accordion-item__icon-before {\n margin-left: size(0);\n }\n }\n\n &:hover {\n .cre8-c-accordion-item__icon {\n border-color: var(--cre8-color-button-primary-border-hover);\n background-color: var(--cre8-color-button-primary-bg-hover);\n color: var(--cre8-color-button-primary-content-hover);\n .cre8-c-accordion-item.cre8-is-active & {\n border-color: var(--cre8-color-button-secondary-border-hover);\n background-color: var(--cre8-color-button-secondary-bg-hover);\n color: var(--cre8-color-button-secondary-content-hover);\n }\n }\n .cre8-c-accordion-item__tertiary-icon {\n border-color: var(--cre8-color-border-transparent);\n color: var(--cre8-color-button-tertiary-content-hover);\n background-color: var(--cre8-color-bg-transparent);\n }\n }\n\n &:focus {\n border-radius: var(--cre8-border-radius-default);\n box-shadow: size(0) size(0) size(0) size(0.25) var(--cre8-color-border-active-outline);\n outline: none;\n\n .cre8-c-accordion-item__icon {\n border-color: var(--cre8-color-button-primary-border-active);\n color: var(--cre8-color-button-primary-content-active);\n background-color: var(--cre8-color-button-primary-bg-active);\n }\n .cre8-c-accordion-item__tertiary-icon {\n border-color: var(--cre8-color-border-transparent);\n color: var(--cre8-color-button-tertiary-content-active);\n background-color: var(--cre8-color-bg-transparent);\n }\n }\n}\n.cre8-c-accordion-item--icon-before {\n .cre8-c-accordion-item__body {\n margin-left: size(5);\n }\n}\n\n.cre8-c-accordion-item__icon-before {\n margin-right: size(1.5);\n\n h4[slot='header'] {\n display: block;\n pointer-events: none;\n }\n}\n\n.cre8-c-accordion-item__button slot {\n display: contents;\n text-align: initial;\n}\n.cre8-c-accordion-item--icon-before-heading-text{\n display: flex;\n text-align: left;\n flex-direction: row;\n justify-content: flex-start;\n align-items: center;\n width: 100%;\n min-width: 100%\n}\n.cre8-c-accordion-item--icon-after-heading-text{\n display: flex;\n text-align: left;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n width: 100%;\n min-width: 100%\n}\n`;\nexport default styles;\n","import svgCaretUp from '../../icons/System/Regular/Caret_Up.svg?raw';\nimport { html, } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { ifDefined } from 'lit-html/directives/if-defined.js';\nimport classnames from 'classnames';\nimport { Cre8Element } from '../cre8-element';\nimport '../icon/icon';\nimport '../button/button';\nimport styles from './accordion-item.styles.js';\n\n/**\n *\n * The accordion item component delivers large amounts of content in a small space\n * through progressive disclosure. That is, the user gets key details about the\n * underlying content and can choose to expand that content within the constraints\n * of the accordion item. Accordion Items work especially well on mobile interfaces or\n * whenever vertical space is at a premium.\n *\n * ## HOW TO USE\n * Avoid “nested” accordion items—that is, collapsible content within collapsible content.\n * This type of pattern goes against UX best practices.\n *\n * The Cre8 accordion item header allows for two sizes:\n * 'sm' [cre8-typography-title-default] or 'lg' [cre8-typography-title-large]\n *\n * A chevron is used to indicate the “expand/collapse” action, though the entire\n * header area is clickable for the same action.\n *\n * **NOTE**: The header of the accordion item uses h tags so be sure to choose the headingTagVariant that\n * fits into the hierarchy of your html page layout. THIS WILL NOT CHANGE THE APPEARANCE OF THE HEADER.\n *\n * @slot The body of the accordion item will be any valid html\n * inserted between the cre8-accordion-item opening and closing tags.\n *\n *\n * @csspart ::part('header') - The container around the interactive header.\n * @csspart ::part('button') - The button containing the header text and the animated icon.\n * @csspart ::part('icon') - The animated icon that revolves on click.\n * @csspart ::part('body') - The container around the expanding body section.\n * @csspart ::part('body-inner') - The container around the slot into which any user provided HTML is inserted.\n *\n */\n\nexport class Cre8AccordionItem extends Cre8Element {\n static styles = [styles];\n\n /**\n *\n * When true, the Accordion Item is opens, when false it closes;\n * @prop {boolean} isActive\n *\n */\n\n @property({ type: Boolean, reflect: true })\n isActive? = false;\n\n\n /**\n *\n * Optional custom id for the accordion item, if one is not set, a random id is generated for you.\n * @prop {string} accordionItemId\n *\n *\n */\n @property({ type: String, reflect: true })\n accordionItemId?: string;\n\n /**\n *\n * Controls the positioning of the dropdown icon in relation to the text, true puts the icon before the text\n * and false/undefined default the icon to the opposite side of the accordion item\n * @prop {boolean} iconBefore\n *\n *\n */\n @property({ type: Boolean, reflect: true })\n iconBefore?: boolean;\n\n /**\n *\n * Controls the appearance of dropdown icon as being an icon-only button. true renders the tertiary variant and\n * false/undefined renders the default secondary appearance.\n * @prop {boolean} tertiaryIcon\n *\n *\n */\n @property({ type: Boolean, reflect: true })\n tertiaryIcon?: boolean;\n\n /**\n *\n * Users can choose between two header sizes: 'sm' [title-default] or 'lg' [title-large].\n * @prop {'sm' | 'lg'} size\n *\n *\n */\n @property({ reflect: true })\n size: 'sm' | 'lg' = 'sm';\n\n /**\n *\n * Purely meant to help the user structure the HTML page hierarchy. Does not change the\n * header size. Defaults to 'h3'\n * @prop {'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'} headingTagVariant\n *\n *\n */\n\n @property({ reflect: true })\n headingTagVariant: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' = 'h3';\n\n /**\n *\n * Controls the text content of the Accordion Item heading.\n * @prop {string} heading\n *\n *\n */\n @property({ type: String })\n heading!: string;\n\n /**\n *\n * Controls whether the header takes on the theme's 'brand-strong' color\n * @prop {boolean} brandHeader\n *\n *\n */\n @property({ type: Boolean })\n brandHeader?: boolean;\n\n /**\n *\n * The aria attribute to which is assigned the id of the details section which is revealed via interaction\n * with the header.\n * @private _ariaControls\n *\n *\n */\n @property({ attribute: 'aria-controls' })\n private _ariaControls!: string;\n\n /**\n *\n * Private internal state which indicates the current _height of the accordion item panel.\n * @private _height\n *\n *\n */\n @state()\n private _height!: string;\n\n /**\n *\n * Private internal state which Indicates if the accordion item panel is completely open.\n * @private _fullyOpen\n *\n *\n */\n\n @state()\n private _fullyOpen?: boolean;\n\n constructor() {\n super();\n const randomId = Math.floor(Math.random() * 900000) + 100000;\n this._ariaControls = `cre8-accordion-item-details-${randomId}`;\n this.accordionItemId = this.accordionItemId ?? `cre8-accordion-item-${randomId}`;\n }\n\n override connectedCallback() {\n super.connectedCallback();\n this._setContentHeight();\n if (this.isActive) {\n this._fullyOpen = true;\n this._setContentHeight();\n }\n }\n\n private async _setContentHeight() {\n await this.updateComplete;\n\n if ((this.isActive && !this._fullyOpen) || (!this.isActive && this._fullyOpen)) {\n this._height = `${this.shadowRoot?.querySelector('.cre8-c-accordion-item__body-inner')?.scrollHeight}px`;\n } else if (this.isActive && this._fullyOpen) {\n this._height = 'auto';\n } else if (!this.isActive && !this._fullyOpen) {\n this._height = '0';\n }\n }\n\n private _toggleAccordionItem() {\n this.isActive = !this.isActive;\n\n if (this.isActive) {\n this._setContentHeight();\n setTimeout(() => {\n this._fullyOpen = true;\n this._setContentHeight();\n }, 350);\n } else {\n this._setContentHeight();\n setTimeout(() => {\n this._fullyOpen = false;\n this._setContentHeight();\n }, 50);\n }\n }\n\n\n render() {\n const componentClassNames = this.componentClassNames('cre8-c-accordion-item', {\n 'cre8-is-active': this.isActive,\n 'cre8-c-accordion-item--icon-before': this.iconBefore,\n 'cre8-c-accordion-item--small': this.size === 'sm',\n 'cre8-c-accordion-item--large': this.size === 'lg',\n });\n\n const buttonClassNames = classnames('cre8-c-accordion-item__button', {\n 'cre8-is-active': this.isActive,\n 'cre8-u-justify-content-start': this.iconBefore,\n 'cre8-brand-color': this.brandHeader === true,\n });\n\n return html` <div id=${this.accordionItemId} class=\"${componentClassNames}\">\n <cre8-heading\n type=${this.size === 'lg' ? 'title-large' : 'title-default'}\n part=\"heading\"\n ?brandColor=${(this.brandHeader)}\n tagVariant=\"${this.headingTagVariant ?? 'h3'}\"\n class=\"cre8-c-accordion-item__header\"\n >\n <button\n class=\"${buttonClassNames}\"\n aria-expanded=\"${ifDefined(this.isActive)}\"\n aria-controls=\"${this._ariaControls}\"\n part=\"button\"\n role=\"button\"\n id=\"${this.id}\"\n @click=${this._toggleAccordionItem}\n >\n ${this.iconBefore\n ? html`\n <div class=\"cre8-c-accordion-item--icon-before-heading-text\">\n <div\n class=${this.tertiaryIcon\n ? 'cre8-c-accordion-item__tertiary-icon cre8-c-accordion-item__icon-before'\n : 'cre8-c-accordion-item__icon cre8-c-accordion-item__icon-before'}\n >\n <cre8-icon rotate=\"180\" svg=${svgCaretUp} aria-hidden=\"true\"></cre8-icon>\n </div>\n ${this.heading ?? html` <slot name=\"heading\"></slot>`}\n </div>\n `\n : html`\n <div class=\"cre8-c-accordion-item--icon-after-heading-text\">\n ${this.heading ?? html` <slot name=\"heading\"></slot>`}\n <div\n class=${this.tertiaryIcon\n ? 'cre8-c-accordion-item__tertiary-icon cre8-c-accordion-item__icon-after'\n : 'cre8-c-accordion-item__icon cre8-c-accordion-item__icon-after'}\n >\n <cre8-icon rotate=\"180\" svg='${svgCaretUp}' aria-hidden=\"true\"></cre8-icon>\n </div>\n </div>`}\n </button>\n </cre8-heading>\n <div\n class=\"cre8-c-accordion-item__body\"\n aria-hidden=\"${!this.isActive}\"\n id=\"${this._ariaControls}\"\n part=\"body\"\n style=${`height: ${this._height}`}\n >\n <div class=\"cre8-c-accordion-item__body-inner\" part=\"body-inner\">\n <slot></slot>\n </div>\n </div>\n </div>`;\n }\n}\n\nif (customElements.get('cre8-accordion-item') === undefined) {\n customElements.define('cre8-accordion-item', Cre8AccordionItem);\n}\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-accordion-item': Cre8AccordionItem;\n }\n}\n\nexport default Cre8AccordionItem;\n","export default \"<svg fill=\\\"currentColor\\\" width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M8 0C6.41775 0 4.87103 0.469192 3.55544 1.34824C2.23985 2.22729 1.21447 3.47672 0.608967 4.93853C0.00346628 6.40034 -0.15496 8.00887 0.153721 9.56072C0.462403 11.1126 1.22433 12.538 2.34315 13.6569C3.46197 14.7757 4.88743 15.5376 6.43928 15.8463C7.99113 16.155 9.59966 15.9965 11.0615 15.391C12.5233 14.7855 13.7727 13.7602 14.6518 12.4446C15.5308 11.129 16 9.58225 16 8C15.9978 5.87895 15.1542 3.84542 13.6544 2.34562C12.1546 0.845814 10.121 0.00223986 8 0ZM7.38462 4.30769C7.38462 4.14448 7.44945 3.98796 7.56486 3.87255C7.68027 3.75714 7.83679 3.69231 8 3.69231C8.16321 3.69231 8.31974 3.75714 8.43514 3.87255C8.55055 3.98796 8.61539 4.14448 8.61539 4.30769V8.61538C8.61539 8.77859 8.55055 8.93512 8.43514 9.05053C8.31974 9.16593 8.16321 9.23077 8 9.23077C7.83679 9.23077 7.68027 9.16593 7.56486 9.05053C7.44945 8.93512 7.38462 8.77859 7.38462 8.61538V4.30769ZM8 12.3077C7.81743 12.3077 7.63897 12.2536 7.48717 12.1521C7.33537 12.0507 7.21706 11.9065 7.14719 11.7379C7.07732 11.5692 7.05904 11.3836 7.09466 11.2045C7.13028 11.0255 7.21819 10.861 7.34729 10.7319C7.47638 10.6028 7.64086 10.5149 7.81992 10.4793C7.99898 10.4437 8.18458 10.4619 8.35325 10.5318C8.52192 10.6017 8.66608 10.72 8.76751 10.8718C8.86894 11.0236 8.92308 11.202 8.92308 11.3846C8.92308 11.6294 8.82583 11.8642 8.65271 12.0373C8.4796 12.2104 8.24482 12.3077 8 12.3077Z\\\"/>\\n</svg>\\n\"","export default \"<svg fill=\\\"currentColor\\\" width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M11.7133 15.4286C11.7133 15.5802 11.6531 15.7255 11.5459 15.8327C11.4388 15.9398 11.2934 16 11.1419 16H5.42827C5.27674 16 5.13141 15.9398 5.02426 15.8327C4.91711 15.7255 4.85691 15.5802 4.85691 15.4286C4.85691 15.2771 4.91711 15.1318 5.02426 15.0246C5.13141 14.9175 5.27674 14.8573 5.42827 14.8573H11.1419C11.2934 14.8573 11.4388 14.9175 11.5459 15.0246C11.6531 15.1318 11.7133 15.2771 11.7133 15.4286ZM14.5701 6.28682C14.5726 7.23931 14.3574 8.17978 13.941 9.03644C13.5246 9.89311 12.918 10.6433 12.1675 11.2298C12.0272 11.3374 11.9133 11.4756 11.8346 11.6339C11.7558 11.7923 11.7144 11.9665 11.7133 12.1433V12.5718C11.7133 12.8749 11.5929 13.1655 11.3786 13.3798C11.1643 13.5942 10.8736 13.7145 10.5705 13.7145H5.99964C5.69657 13.7145 5.40591 13.5942 5.19161 13.3798C4.9773 13.1655 4.85691 12.8749 4.85691 12.5718V12.1433C4.85679 11.9686 4.81662 11.7963 4.73949 11.6395C4.66235 11.4828 4.55031 11.3458 4.41196 11.2391C3.66333 10.6561 3.05715 9.91037 2.63929 9.05844C2.22143 8.20652 2.00285 7.2707 2.00009 6.32182C1.98152 2.91792 4.73264 0.0832435 8.13368 0.00182421C8.97169 -0.0183701 9.80527 0.129276 10.5854 0.436073C11.3655 0.74287 12.0763 1.20262 12.6761 1.78826C13.2758 2.3739 13.7523 3.07359 14.0776 3.84616C14.4029 4.61873 14.5703 5.44857 14.5701 6.28682ZM12.2768 5.61976C12.1286 4.7922 11.7305 4.02991 11.1359 3.4355C10.5414 2.8411 9.77903 2.44311 8.95144 2.29513C8.87744 2.28266 8.80171 2.28488 8.72857 2.30168C8.65543 2.31847 8.58631 2.34951 8.52516 2.39301C8.46401 2.43652 8.41204 2.49164 8.37219 2.55524C8.33235 2.61883 8.30542 2.68965 8.29295 2.76365C8.28047 2.83765 8.2827 2.91339 8.29949 2.98653C8.31628 3.05967 8.34732 3.12879 8.39083 3.18993C8.43433 3.25108 8.48946 3.30306 8.55305 3.3429C8.61664 3.38275 8.68746 3.40967 8.76147 3.42215C9.9449 3.62141 10.9491 4.62558 11.1498 5.81116C11.1724 5.94423 11.2414 6.065 11.3445 6.15207C11.4477 6.23914 11.5783 6.28687 11.7133 6.28682C11.7456 6.28663 11.7778 6.284 11.8097 6.27897C11.959 6.25347 12.0921 6.1697 12.1797 6.04608C12.2673 5.92246 12.3022 5.76911 12.2768 5.61976Z\\\"/>\\n</svg>\\n\"","export default \"<svg fill=\\\"currentColor\\\" width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M8 0C6.41775 0 4.87103 0.469192 3.55544 1.34824C2.23985 2.22729 1.21447 3.47672 0.608967 4.93853C0.00346628 6.40034 -0.15496 8.00887 0.153721 9.56072C0.462403 11.1126 1.22433 12.538 2.34315 13.6569C3.46197 14.7757 4.88743 15.5376 6.43928 15.8463C7.99113 16.155 9.59966 15.9965 11.0615 15.391C12.5233 14.7855 13.7727 13.7602 14.6518 12.4446C15.5308 11.129 16 9.58225 16 8C15.9978 5.87895 15.1542 3.84542 13.6544 2.34562C12.1546 0.845814 10.121 0.00223986 8 0ZM11.0769 8.61538H6.40846L7.82 10.0262C7.87718 10.0833 7.92253 10.1512 7.95347 10.2259C7.98442 10.3006 8.00034 10.3807 8.00034 10.4615C8.00034 10.5424 7.98442 10.6225 7.95347 10.6972C7.92253 10.7719 7.87718 10.8397 7.82 10.8969C7.76283 10.9541 7.69495 10.9994 7.62025 11.0304C7.54554 11.0613 7.46548 11.0773 7.38462 11.0773C7.30376 11.0773 7.22369 11.0613 7.14899 11.0304C7.07429 10.9994 7.00641 10.9541 6.94923 10.8969L4.48769 8.43538C4.43048 8.37823 4.38509 8.31036 4.35412 8.23565C4.32315 8.16095 4.30721 8.08087 4.30721 8C4.30721 7.91913 4.32315 7.83905 4.35412 7.76434C4.38509 7.68964 4.43048 7.62177 4.48769 7.56461L6.94923 5.10308C7.0647 4.9876 7.22132 4.92273 7.38462 4.92273C7.54792 4.92273 7.70453 4.9876 7.82 5.10308C7.93547 5.21855 8.00034 5.37516 8.00034 5.53846C8.00034 5.70176 7.93547 5.85837 7.82 5.97385L6.40846 7.38461H11.0769C11.2401 7.38461 11.3967 7.44945 11.5121 7.56486C11.6275 7.68026 11.6923 7.83679 11.6923 8C11.6923 8.16321 11.6275 8.31973 11.5121 8.43514C11.3967 8.55055 11.2401 8.61538 11.0769 8.61538Z\\\"/>\\n</svg>\\n\"","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n:host {\n display: inline-flex;\n}\n\n.cre8-c-link {\n display: inline-flex;\n text-decoration: none;\n height: 100%;\n color: var(--cre8-color-content-link);\n\n &:hover {\n .cre8-c-link__text,\n .cre8-c-link__text-area {\n color: var(--cre8-color-content-link-hover);\n border-color: var(--cre8-color-border-transparent);\n background-color: var(--cre8-color-bg-opacity-transparent);\n }\n }\n\n &:focus {\n outline: none;\n\n .cre8-c-link__text,\n .cre8-c-link__text-area {\n border-color: var(--cre8-color-border-transparent);\n background-color: var(--cre8-color-bg-active);\n color: var(--cre8-color-content-link-focus);\n }\n\n .cre8-c-link__cta-wrapper {\n color: var(--cre8-color-content-link-focus);\n @include focus;\n background-color: var(--cre8-color-button-primary-bg-hover); // TODO: CTA background color token not exists\n border: var(--cre8-border-width-focus) var(--cre8-border-style-default) var(--color-border-active-outline);\n }\n }\n\n &:active {\n .cre8-c-link__text,\n .cre8-c-link__text-area {\n border-color: var(--cre8-color-border-transparent);\n background-color: var(--cre8-color-bg-opacity-transparent);\n color: var(--cre8-color-content-link-active);\n }\n }\n}\n\n.cre8-c-link__text-area {\n display: inline-flex;\n justify-content: center;\n text-align: center;\n align-items: center;\n}\n\n.cre8-c-link__text {\n @include cre8-typography-body-default-link();\n color: var(--cre8-color-content-link);\n display: inline-flex;\n\n .cre8-c-link--sm & {\n @include cre8-typography-body-small-link();\n }\n\n .cre8-c-link--lg & {\n @include cre8-typography-body-large-link();\n }\n}\n\n.cre8-c-link__text {\n .cre8-c-link__no-underline & {\n text-decoration: none;\n }\n}\n\n.cre8-c-link__icon-wrapper {\n display: inline-flex;\n}\n\n.cre8-c-link__icon {\n display: inline-flex;\n height: size(3);\n width: size(3);\n\n .cre8-c-link--sm & {\n --cre8-icon-height: var(--cre8-icon-size-small);\n --cre8-icon-width: var(--cre8-icon-size-small);\n height: size(2.75);\n width: size(2.75);\n }\n\n .cre8-c-link--lg & {\n --cre8-icon-height: var(--cre8-icon-size-large);\n --cre8-icon-width: var(--cre8-icon-size-large);\n height: size(3.25);\n width: size(3.25);\n }\n}\n\n.cre8-c-link__variation {\n display: inline-flex;\n justify-content: center;\n align-items: center;\n}\n\n.cre8-c-link__cta-wrapper {\n color: var(--cre8-color-button-primary-content); // TODO: token not defined\n display: inline-flex;\n margin-left: size(1);\n padding: var(--cre8-spacing-4);\n background-color: var(--cre8-color-content-link);\n border-radius: var(--cre8-border-radius-round);\n border-width: var(--cre8-border-width-button-default);\n\n svg {\n height: size(2);\n width: size(2);\n }\n}\n\n.cre8-c-link__icon.before {\n padding-right: size(1);\n}\n\n.cre8-c-link__icon.after {\n padding-left: size(1);\n}\n\n::slotted([slot='badge']) {\n padding-left: size(1);\n}\n\n.cre8-c-link--inverted {\n .cre8-c-link__text {\n color: var(--cre8-color-content-inverse-link);\n }\n\n .cre8-c-link__icon {\n color: var(--cre8-color-content-inverse-link);;\n }\n\n .cre8-c-link__cta-wrapper {\n --cre8-icon-fill: var(--cre8-color-content-brand);\n color: var(--cre8-color-content-brand);\n background-color: var(--cre8-color-content-inverse-link);\n }\n \n &:hover {\n .cre8-c-link__text,\n .cre8-c-link__text-area {\n color: var(--cre8-color-content-inverse-link-hover);\n }\n\n .cre8-c-link__icon {\n fill: var(--cre8-color-content-inverse-link-hover);\n }\n }\n\n &:active {\n .cre8-c-link__text,\n .cre8-c-link__text-area {\n color: var(--cre8-color-content-inverse-link-active);\n }\n\n .cre8-c-link__icon {\n fill: var(--cre8-color-content-inverse-link-active);\n }\n }\n\n &:focus {\n outline: none;\n .cre8-c-link__icon {\n background-color: var(--cre8-color-bg-inverse-active);\n fill: var(--cre8-color-content-inverse-link-focus);\n }\n\n .cre8-c-link__text,\n .cre8-c-link__text-area {\n background-color: var(--cre8-color-bg-inverse-active);\n color: var(--cre8-color-content-inverse-link-focus);\n }\n .cre8-c-link__cta-wrapper {\n background-color: var(--cre8-color-content-inverse-link);\n color: var(--cre8-color-content-inverse-link-focus);\n outline: var(--cre8-border-width-focus) var(--cre8-border-style-default) var(--cre8-color-content-inverse-link); //TODO: token not exists cre8-color-border-inverse-active-outline\n outline-offset: size(0.25);\n }\n }\n}\n\ncre8-icon {\n display: flex;\n align-items: center;\n}\n`;\nexport default styles;\n","import svgArrowLeft from '/Users/tylersmbp/Projects/cre8-web-components/packages/cre8-wc/icons/System/Filled/Arrow_-_Left.svg?raw';\nimport {\n html, nothing,\n} from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { ifDefined } from 'lit-html/directives/if-defined.js';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './link.styles.js';\n\n/**\n * Link Component are strictly used in the case where the component will take\n * the user away from the current page to a new url.\n * In this vein, this component should ONLY be used in situations an anchor tag would be used (an href is required)\n * This goes for the variations as well such as the Call To Action Link\n *\n * **Note**\n *\n * For link with icon:\n * - **iconRotateDegree** & **iconFlipDirection** props are optional.\n * - They are used to set up the correct direction for icons, for example,\n * arrows, caret up or caret down.\n *\n*/\n\nexport class Cre8Link extends Cre8Element {\n static styles = [styles];\n\n /**\n * Href attribute of the anchor tag\n */\n @property()\n href: string;\n\n /**\n * Rel attribute of the anchor tag\n */\n @property()\n rel?: string;\n\n /**\n * Target attribute for a link (i.e. set to _blank to open in new tab)\n * - **_blank** yields a link that opens in a new tab\n * - **_self** yields a link that loads the URL into the same browsing context as the current one.\n * This is the default behavior\n * - **_parent** yields a link that loads the URL into the parent browsing context of the current one.\n * If there is no parent, this behaves the same way as _self\n * - **_top** yields a link that loads the URL into the top-level browsing context.\n * If there is no parent, this behaves the same way as _self.\n */\n @property()\n target?: '_blank' | '_self' | '_parent' | '_top';\n\n /**\n * DEPRECATED: Icon name, use svg instead\n * @deprecated\n */\n @property()\n iconName?: string;\n\n /**\n * svg as a raw string\n * - For links with icon, the icon is defined by this prop.\n * - Pass in a raw svg as a String for using <cre8-icon>\n */\n @property()\n svg?: string;\n\n /**\n * iconRotateDegree is used for <cre8-icon> to set the arrow in the correct direction\n */\n @property({ type: Number })\n iconRotateDegree?: number = 0;\n\n /**\n * iconFlipDirection is used for <cre8-icon> to set the icon in the correct direction\n */\n @property()\n iconFlipDirection?: string;\n\n /**\n * Icon position\n * - **before** places the icon before the button text\n * - **after** places the icon after the button text\n */\n @property()\n iconPosition?: 'before' | 'after' = undefined;\n\n /**\n * Call To Action Icon\n */\n @property()\n ctaIcon = 'arrow-forward';\n\n /**\n * Call To Action Link\n */\n @property({ type: Boolean })\n ctaLink?: boolean;\n\n /**\n * Link with no underline\n */\n @property({ type: Boolean })\n noUnderline?: boolean;\n\n /**\n * Size variant (default is medium)\n * - **sm** shrinks the link typography and overall size\n * - **lg** increases the link typography size and overall size\n */\n @property()\n size?: 'sm' | 'lg';\n\n /**\n * Inverted colors Link (onDark)\n */\n @property({ type: Boolean })\n inverted?: boolean;\n\n private generateIcon() {\n if (this.iconName) {\n return html`\n <div class=\"cre8-c-link__icon-wrapper\">\n <cre8-icon-legacy\n class=\"cre8-c-link__icon ${this.iconPosition}\"\n aria-hidden=\"true\"\n name=\"${ifDefined(this.iconName)}\">\n </cre8-icon-legacy>\n </div>`;\n }\n\n if (this.svg) {\n return html`\n <div class=\"cre8-c-link__icon-wrapper\">\n <cre8-icon\n class=\"cre8-c-link__icon ${this.iconPosition}\"\n aria-hidden=\"true\"\n svg='${this.svg}' rotate=\"${Number(this.iconRotateDegree)}\" flip=\"${this.iconFlipDirection}\">\n </cre8-icon>\n </div>`;\n } return nothing;\n }\n\n render() {\n const componentClassNames = this.componentClassNames('cre8-c-link', {\n 'cre8-c-link--inverted': this.inverted,\n 'cre8-c-link--sm': this.size === 'sm',\n 'cre8-c-link--lg': this.size === 'lg',\n 'cre8-c-link__no-underline': this.noUnderline,\n });\n\n return html`\n <a\n class=\"${componentClassNames}\"\n href=\"${ifDefined(this.href)}\"\n rel=\"${ifDefined(this.rel)}\"\n target=\"${ifDefined(this.target)}\"\n >\n <div class=\"cre8-c-link__text-area\">\n ${this.iconPosition === 'before'\n ? html`${this.generateIcon()}`\n : nothing}\n <span class=\"cre8-c-link__text\">\n <slot></slot>\n </span>\n ${this.iconPosition === 'after'\n ? html`${this.generateIcon()}`\n : nothing}\n </div>\n <div class=\"cre8-c-link__variation\">\n <slot name=\"badge\"></slot>\n ${this.ctaLink\n ? html`<div class=\"cre8-c-link__cta-wrapper\">\n <cre8-icon class=\"cre8-c-link__action\" svg='${svgArrowLeft}' \n rotate=\"180\" aria-hidden=\"true\"></cre8-icon>\n </div>`\n : nothing}\n </div>\n </a>\n `;\n }\n}\n\nif (customElements.get('cre8-link') === undefined) {\n customElements.define('cre8-link', Cre8Link);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-link': Cre8Link;\n }\n}\n\nexport default Cre8Link;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n\n:host {\n display: inline;\n text-align: left;\n}\n/**\n * DefaultHeading component styling/Heading title-large\n */\n.cre8-c-heading,\n.cre8-c-heading--title-large {\n @include cre8-typography-title-large;\n margin: 0;\n color: var(--cre8-color-content-default);\n}\n\n/**\n * Heading with theme headline-large preset applied\n */\n.cre8-c-heading--headline-large {\n @include cre8-typography-headline-large;\n}\n\n/**\n * Heading with theme headline-default preset applied\n */\n.cre8-c-heading--headline-default {\n @include cre8-typography-headline-default;\n}\n\n/**\n * Heading with theme headline-small preset applied\n */\n.cre8-c-heading--headline-small {\n @include cre8-typography-headline-small;\n}\n\n/**\n * Heading with theme title-xlarge preset applied\n */\n.cre8-c-heading--title-xlarge {\n @include cre8-typography-title-xlarge;\n}\n\n/**\n * Heading with theme title-large preset applied\n */\n.cre8-c-heading--title-large {\n @include cre8-typography-title-large;\n}\n\n/**\n * Heading with theme title-default preset applied\n */\n.cre8-c-heading--title-default {\n @include cre8-typography-title-default;\n}\n\n/**\n * Heading with theme title-small preset applied\n */\n.cre8-c-heading--title-small {\n @include cre8-typography-title-small;\n}\n/**\n * Heading with theme display-small preset applied\n */\n.cre8-c-heading--display-small {\n @include cre8-typography-display-small;\n}\n\n/**\n * Heading with theme display-default preset applied\n */\n.cre8-c-heading--display-default {\n @include cre8-typography-display-default;\n}\n\n/**\n * Heading with theme label-large preset applied\n */\n.cre8-c-heading--label-large {\n @include cre8-typography-label-large;\n}\n\n/**\n * Heading with theme label-default preset applied\n */\n.cre8-c-heading--label-default {\n @include cre8-typography-label-default;\n}\n\n/**\n * Heading with theme label-small preset applied\n */\n.cre8-c-heading--label-small {\n @include cre8-typography-label-small;\n}\n\n/**\n * Heading with theme meta-default preset applied\n */\n.cre8-c-heading--meta-large {\n @include cre8-typography-meta-large;\n text-transform: uppercase;\n}\n\n/**\n * Heading with theme meta-default preset applied\n */\n.cre8-c-heading--meta-default {\n @include cre8-typography-meta-default;\n text-transform: uppercase;\n}\n\n/**\n * Heading with theme meta-small preset applied\n */\n.cre8-c-heading--meta-small {\n @include cre8-typography-meta-small;\n text-transform: uppercase;\n}\n\n/**\n * Heading with brand color applied\n */\n.cre8-c-heading--brand-color {\n color: var(--cre8-color-content-brand-strong);\n &.cre8-c-heading--inverted {\n color: var(--cre8-color-content-brand-knockout);\n }\n}\n\n.cre8-c-heading--inverted {\n color: var(--cre8-color-content-knockout);\n}\n`;\nexport default styles;\n","import { html, } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './heading.styles.js';\n\n /**\n * HTML headings are titles or subtitles that you want to display on a webpage. The H1 is the most important and H6\n * is the least important in the content hierarchy.\n *\n * # How to Use\n * 1. The cre8-heading tag wraps around one of the six native HTML \"h\" tags, depending on your chosen variation.\n * 2. There are two main use cases for using this component:\n * text passage headings and Components with a title (i.e. modal, card or alert)\n * 3. There will be instances when the design requires the heading text to have the brand color applied\n * in which case you should set the [brandColor](?path=/story/cre8-components-heading--brand-color)\n * attribute to true on the cre8-heading tag.\n * 4. For dark backgrounds, add the [inverted](?path=/story/cre8-components-heading--inverted)\n * attribute to the tag for white text.\n *\n *\n * @slot - The heading text content\n */\nexport class Cre8Heading extends Cre8Element {\n static styles = [styles];\n\n /**\n * Heading type\n * <cre8-text-passage size=\"small\">\n * <ul>\n * <li>**display-default** renders a heading with the heading display-default preset treatment</li>\n * <li>**display-small** renders a heading with the heading display-small preset treatment</li>\n * <li>**headline-large** renders a heading with the heading headline-large preset treatment</li>\n * <li>**headline-default** renders a heading with the heading headline-default preset treatment</li>\n * <li>**headline-small** renders a heading with the heading headline-small preset treatment</li>\n * <li>**title-xlarge** renders a heading with the heading title-xlarge preset treatment</li>\n * <li>**title-large** renders a heading with the heading title-large preset treatment</li>\n * <li>**title-default** renders a heading with the heading title-default preset treatment</li>\n * <li>**title-small** renders a heading with the heading title-small preset treatment</li>\n * <li>**label-large** renders a heading with the label-large preset treatment</li>\n * <li>**label** renders a heading with the label preset treatment</li>\n * <li>**label-small** renders a heading with the label-small preset treatment</li>\n * <li>**meta-large** renders a heading with the meta-large preset treatment</li>\n * <li>**meta-default** renders a heading with the meta-default preset treatment</li>\n * <li>**meta-small** renders a heading with the meta-small preset treatment</li>\n * </ul>\n * </cre8-text-passage>\n */\n @property()\n type?:\n | 'display-default'\n | 'display-small'\n | 'headline-large'\n | 'headline-default'\n | 'headline-small'\n | 'title-xlarge'\n | 'title-large'\n | 'title-default'\n | 'title-small'\n | 'label-large'\n | 'label-default'\n | 'label-small'\n | 'meta-large'\n | 'meta-default'\n | 'meta-small';\n\n /**\n * Dynamic tag name for the component\n * 1) This is needed to use proper semantic heading treatments depending on where the banner lives on the page\n * <cre8-text-passage size=\"small\">\n * <ul>\n * <li>**h1** renders an `h1` tag</li>\n * <li>**h2** renders an `h2` tag. This is the default</li>\n * <li>**h3** renders an `h3` tag</li>\n * <li>**h4** renders an `h4` tag</li>\n * <li>**h5** renders an `h5` tag</li>\n * <li>**h6** renders an `h6` tag</li>\n * </ul>\n * </cre8-text-passage>\n *\n * @attr{string}\n */\n @property()\n tagVariant: 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' = 'h5';\n\n /**\n * Invert the color of the font from dark to light. An inverted `heading` should be used on a dark background.\n *\n * @attr{boolean}\n */\n @property({ type: Boolean, reflect: true })\n inverted?: boolean;\n\n /**\n * Apply the brand color to the heading text.\n *\n * @attr{boolean}\n */\n @property({ type: Boolean, reflect: true })\n brandColor?: boolean;\n\n render() {\n const tagVariantClassNames = !this.type\n ? {\n 'cre8-c-heading--headline-large': this.tagVariant === 'h1',\n 'cre8-c-heading--headline-default': this.tagVariant === 'h2',\n 'cre8-c-heading--headline-small': this.tagVariant === 'h3',\n 'cre8-c-heading--title-large': this.tagVariant === 'h4',\n 'cre8-c-heading--title-default': this.tagVariant === 'h5',\n 'cre8-c-heading--title-small': this.tagVariant === 'h6',\n }\n : {};\n\n const componentClassName = this.componentClassNames('cre8-c-heading', {\n ...tagVariantClassNames,\n 'cre8-c-heading--headline-large': this.type === 'headline-large',\n 'cre8-c-heading--headline-default': this.type === 'headline-default',\n 'cre8-c-heading--headline-small': this.type === 'headline-small',\n 'cre8-c-heading--title-large': this.type === 'title-large',\n 'cre8-c-heading--title-default': this.type === 'title-default',\n 'cre8-c-heading--title-small': this.type === 'title-small',\n 'cre8-c-heading--title-xlarge': this.type === 'title-xlarge',\n 'cre8-c-heading--display-default': this.type === 'display-default',\n 'cre8-c-heading--display-small': this.type === 'display-small',\n 'cre8-c-heading--label-large': this.type === 'label-large',\n 'cre8-c-heading--label-default': this.type === 'label-default',\n 'cre8-c-heading--label-small': this.type === 'label-small',\n 'cre8-c-heading--meta-large': this.type === 'meta-large',\n 'cre8-c-heading--meta-default': this.type === 'meta-default',\n 'cre8-c-heading--meta-small': this.type === 'meta-small',\n 'cre8-c-heading--brand-color': this.brandColor,\n 'cre8-c-heading--inverted': this.inverted,\n });\n\n switch (this.tagVariant) {\n case 'h1':\n return html` <h1 part=\"tag\" class=\"${componentClassName}\"><slot></slot></h1> `;\n case 'h2':\n return html` <h2 part=\"tag\" class=\"${componentClassName}\"><slot></slot></h2> `;\n case 'h3':\n return html` <h3 part=\"tag\" class=\"${componentClassName}\"><slot></slot></h3> `;\n case 'h4':\n return html` <h4 part=\"tag\" class=\"${componentClassName}\"><slot></slot></h4> `;\n case 'h5':\n return html` <h5 part=\"tag\" class=\"${componentClassName}\"><slot></slot></h5> `;\n case 'h6':\n return html` <h6 part=\"tag\" class=\"${componentClassName}\"><slot></slot></h6> `;\n default:\n return html` <h4 part=\"tag\" class=\"${componentClassName}\"><slot></slot></h4> `;\n }\n }\n}\n\n\nif (customElements.get('cre8-heading') === undefined) {\n customElements.define('cre8-heading', Cre8Heading);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-heading': Cre8Heading;\n }\n}\n\nexport default Cre8Heading;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n/**\n * 1) A passage of text (e.g. article, blog post), including uncontrolled elements\n * (e.g. unclassed h2, h3, ul, li, and so on).\n * 2) Use this file only for styling text passage and elements inside of text passage.\n */\ncre8-text-passage,\ncre8-text-passage[size='default'] {\n @include cre8-typography-body-default();\n\n /**\n * Generic h1 within text passage\n */\n\n h1 {\n @include cre8-typography-display-small();\n margin-bottom: size(1.5);\n }\n\n /**\n * Generic h2 within text passage\n */\n h2 {\n @include cre8-typography-headline-default();\n margin-bottom: size(1.5);\n }\n\n /**\n * Generic h3 within text passage\n */\n h3 {\n @include cre8-typography-headline-small();\n margin-bottom: size(1.5);\n }\n\n /**\n * Generic h4 within text passage\n */\n h4 {\n @include cre8-typography-title-large();\n margin-bottom: size(1.5);\n }\n\n /**\n * Generic h5 within text passage\n */\n h5 {\n @include cre8-typography-meta-large();\n margin-bottom: size(1.5);\n }\n\n /**\n * Generic unordered and ordered lists within text passage\n */\n ul,\n ol {\n margin-top: 0;\n }\n\n /**\n * Unordered list within text passage\n */\n ul {\n margin-left: size(2.5);\n padding-left: 0;\n }\n\n /**\n * Ordered list within text passage\n */\n ol {\n margin-left: size(2.25);\n padding-left: 0;\n }\n\n /**\n * Generic link tag within text passage\n */\n a {\n color: var(--cre8-color-content-link);\n\n &:hover,\n &:focus {\n text-decoration: underline;\n color: var(--cre8-color-content-link-hover);\n }\n }\n\n /**\n * Paragraph tag within text passage\n */\n p {\n margin-top: 0;\n margin-bottom: size(3);\n }\n\n /**\n * Blockquote within text passage\n */\n blockquote {\n font-style: italic;\n border-left: var(--cre8-border-width-default) var(--cre8-border-style-default) var(--cre8-color-content-subtle);\n color: var(--cre8-color-content-subtle);\n padding-left: size(2);\n margin-left: 0;\n margin-bottom: size(2);\n }\n\n /**\n* Last item declared in the text passage\n* 1) Remove default margin bottom from the item\n*/\n :last-child {\n margin-bottom: 0;\n }\n}\n\n/**\n* Inverted text passage\n*/\ncre8-text-passage[inverted] {\n /**\n * Blockquote within inverted text passage\n */\n a {\n color: var(--cre8-color-content-brand-knockout);\n &:hover,\n &:focus {\n color: var(--cre8-color-content-brand-knockout-hover);\n }\n }\n blockquote {\n color: var(--cre8-color-content-knockout);\n font-style: italic;\n border-left: var(--cre8-border-width-default) var(--cre8-border-style-default) var(--cre8-color-border-knockout);\n padding-left: size(2);\n margin-left: 0;\n margin-bottom: size(2);\n }\n}\n`;\nexport default styles;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n/**\n * !!! DO NOT USE THIS FILE for styling specific elements within text passage.\n * Use text-passage-ligh-dom.scss to for styling.!!!\n */\n\n :host {\n display: inline-flex;\n }\n\n.cre8-c-text-passage--small {\n @include cre8-typography-body-small();\n\n /**\n * Unordered list within small text passage\n */\n}\n.cre8-c-text-passage--large {\n @include cre8-typography-body-large();\n\n /**\n * Unordered list within small text passage\n */\n}\n.cre8-c-text-passage--inverted {\n color: var(--cre8-color-content-knockout);\n}\n::slotted(.header) {\n margin-bottom: size(1.5);\n}\n`;\nexport default styles;\n","import { html, } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { Cre8Element } from '../cre8-element';\nimport lightDomStyles from './text-passage-light-dom.styles.js';\nimport styles from './text-passage.styles.js';\n\n/**\n * The text-passage component acts a general wrapper element\n * for any text content that needs to be used in your project.\n *\n * # How to Use\n * 1. Code your text passage using any of the native html text elements (p, ol, ul, blockquote, cite, etc.)\n * or other Cre8 Components like cre8-heading and wrap them with the cre8-text-passage tags.\n * 2. Choose between three sizes for your text content or apply inline styling if you need additional styling.\n * 3. For dark backgrounds, add the 'inverted' attribute to the <cre8-text-passage> tag.\n * 3. Your text-passage will render with brand-approved styling!\n *\n *\n * NOTE: It is recommended that you use the cre8-heading component for any heading elements in your HTML template\n *\n * @slot - The component content\n */\nexport class Cre8TextPassage extends Cre8Element {\n static styles = [styles];\n\n /**\n * Inverted variant\n * 1) Used for dark backgrounds\n */\n @property({ type: Boolean, reflect: true })\n inverted?: boolean;\n\n /**\n * Size variant\n * - **small** renders smaller typography than the default variant\n * - **default** renders default typography variant\n * - **large** renders larger typography than the default variant\n */\n @property()\n size?: 'small' | 'default' | 'large' = 'default';\n\n /**\n * Add the light dom styles when this component is connected to a page\n */\n connectedCallback() {\n super.connectedCallback();\n\n const lightDomExists = document.head.querySelector('#cre8-text-passage-styles');\n if (!lightDomExists) {\n const lightDomStyle = document.createElement('style');\n lightDomStyle.id = 'cre8-text-passage-styles';\n lightDomStyle.innerHTML = lightDomStyles.cssText;\n document.head.appendChild(lightDomStyle);\n }\n }\n\n render() {\n const componentClassName = this.componentClassNames('cre8-c-text-passage', {\n 'cre8-c-text-passage--default': this.size === 'default' || undefined,\n 'cre8-c-text-passage--inverted': this.inverted,\n 'cre8-c-text-passage--small': this.size === 'small',\n 'cre8-c-text-passage--large': this.size === 'large',\n });\n\n return html`\n <div class=\"${componentClassName}\">\n <slot></slot>\n </div>\n `;\n }\n}\n\nif (customElements.get('cre8-text-passage') === undefined) {\n customElements.define('cre8-text-passage', Cre8TextPassage);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-text-passage': Cre8TextPassage;\n }\n}\n\nexport default Cre8TextPassage;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\ndialog {\n border: none;\n width: 100%;\n}\n\n.cre8-c-alert {\n padding: var(--cre8-spacing-16);\n border-width: var(--cre8-border-width-default);\n border-style: var(--cre8-border-style-default);\n border-radius: var(--cre8-border-radius-default);\n\n .cre8-c-alert__container {\n display: flex;\n gap: var(--cre8-spacing-8);\n position: relative;\n\n .cre8-c-alert__message-container {\n color: var(--cre8-color-content-knockout);\n display: flex;\n flex-direction: column;\n\n .cre8-c-alert__heading-container {\n @include cre8-typography-title-small;\n }\n\n .cre8-c-alert__body-container {\n @include cre8-typography-body-small;\n padding-bottom: var(--cre8-spacing-8);\n }\n\n .cre8-c-alert__footer-container {\n padding: 0;\n }\n }\n }\n\n .cre8-c-alert__close-btn {\n position: absolute;\n top: -10px;\n right: 0px;\n }\n\n &.cre8-c-alert--emphasis-subtle {\n .cre8-c-alert__message-container {\n color: var(--cre8-color-content-default);\n }\n }\n\n &.cre8-c-alert--banner {\n border-radius: 0;\n border: none;\n }\n\n &.cre8-c-alert--warning {\n .cre8-c-alert__message-container {\n color: var(--cre8-color-content-default);\n }\n }\n}\n\n.cre8-c-alert--standalone {\n border-radius: var(--cre8-border-radius-default);\n width: size(45);\n\n .cre8-c-alert__container {\n display: flex;\n gap: var(--cre8-spacing-8);\n position: relative;\n }\n}\n\n.cre8-c-alert__icon {\n height: var(--cre8-spacing-16);\n min-height: var(--cre8-spacing-16);\n width: var(--cre8-spacing-16);\n min-width: var(--cre8-spacing-16);\n}\n\n.cre8-c-alert--info,\n.cre8-c-alert--success,\n.cre8-c-alert--error,\n.cre8-c-alert--neutral,\n.cre8-c-alert--notification {\n color: var(--cre8-color-content-knockout);\n}\n\n/**\n * Alert info\n */\n.cre8-c-alert--info {\n background: var(--cre8-color-bg-info-strong);\n border-color: var(--cre8-color-border-info);\n\n &.cre8-c-alert--emphasis-subtle {\n background: var(--cre8-color-bg-info);\n color: var(--cre8-color-content-info-icon);\n }\n}\n\n/**\n * Alert warning\n */\n.cre8-c-alert--warning {\n background: var(--cre8-color-bg-warning-strong);\n border-color: var(--cre8-color-border-warning);\n color: var(--cre8-color-content-default);\n\n &.cre8-c-alert--emphasis-subtle {\n background: var(--cre8-color-bg-warning);\n }\n}\n\n/**\n * Alert success\n */\n.cre8-c-alert--success {\n background: var(--cre8-color-bg-success-strong);\n border-color: var(--cre8-color-border-success);\n\n &.cre8-c-alert--emphasis-subtle {\n background: var(--cre8-color-bg-success);\n color: var(--cre8-color-content-success-icon);\n }\n}\n\n/**\n * Alert error\n */\n.cre8-c-alert--error {\n background: var(--cre8-color-bg-error-strong);\n border-color: var(--cre8-color-border-error);\n\n &.cre8-c-alert--emphasis-subtle {\n background: var(--cre8-color-bg-error);\n color: var(--cre8-color-content-error-icon);\n }\n}\n\n/**\n * Alert neutral\n */\n.cre8-c-alert--neutral {\n background: var(--cre8-color-bg-strong);\n border-color: var(--cre8-color-border-neutral);\n\n &.cre8-c-alert--emphasis-subtle {\n background: var(--cre8-color-bg-subtle);\n color: var(--cre8-color-content-default);\n }\n}\n\n/**\n * Alert notification\n */\n.cre8-c-alert--notification {\n background: var(--cre8-color-bg-attention-strong);\n border-color: var(--cre8-color-border-attention);\n\n &.cre8-c-alert--emphasis-subtle {\n background: var(--cre8-color-bg-subtle);\n color: var(--cre8-color-content-attention-icon);\n }\n}\n`;\nexport default styles;\n","import svgWarningFilled from '/Users/tylersmbp/Projects/cre8-web-components/packages/cre8-wc/icons/System/Filled/Warning.svg?raw';\nimport svgCheckCircle from '/Users/tylersmbp/Projects/cre8-web-components/packages/cre8-wc/icons/System/Filled/Check.svg?raw';\nimport svgInfoFilled from '/Users/tylersmbp/Projects/cre8-web-components/packages/cre8-wc/icons/System/Filled/Info.svg?raw';\nimport svgErrorFilled from '/Users/tylersmbp/Projects/cre8-web-components/packages/cre8-wc/icons/System/Filled/Error.svg?raw';\nimport svgLightbulbFilled from '/Users/tylersmbp/Projects/cre8-web-components/packages/cre8-wc/icons/System/Filled/Lightbulb.svg?raw';\nimport svgClose from '/Users/tylersmbp/Projects/cre8-web-components/packages/cre8-wc/icons/System/Regular/Close.svg?raw';\nimport { html, nothing, } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport '../button/button';\nimport '../link/link';\nimport '../heading/heading';\nimport '../text-passage/text-passage';\nimport '../icon/icon';\n\nimport { Cre8Element } from '../cre8-element';\nimport styles from './alert.styles.js';\n\n/**\n * The general purpose of an alert or notification is to draw the user’s attention\n * and provide the user with timely, relevant information.\n *\n * ## Alert Styles:\n * - There are 6 statuses for 6 types of alerts: 'error', 'info', 'notification', 'neutral', 'warning', 'success'.\n * Each alert will have different icon to be displayed in the alert.\n * - Users can select two types of alert variants: 'standalone', or 'banner'.\n * - User can also choose the alert should be emphasized or not. There are two options: subtle or strong.\n * - User can add button or link in the alert.\n * If users choose to emphasize the alert (**strong**), user needs to used **\"inverted\"** prop in button or link.\n * - User can choose whether the alert can be dismissed or not\n *\n */\n\nexport class Cre8Alert extends Cre8Element {\n static styles = [styles];\n\n /** The alert type. */\n @property({ reflect: true })\n status?:\n | 'error'\n | 'info'\n | 'notification'\n | 'neutral'\n | 'warning'\n | 'success' = 'info';\n\n /** The alert variant. */\n @property({ reflect: true })\n variant: 'standalone' | 'banner' = 'standalone';\n\n @property({ reflect: true })\n emphasis: 'subtle' | 'strong' = 'subtle';\n\n\n @property({ type: String })\n iconAlert: string = undefined;\n\n /**\n * Icon title used for the icon alt text\n */\n @property()\n iconTitle?: string;\n\n @property({ type: String })\n headerText: string = undefined;\n\n @property({ type: String })\n ctaBody: string = undefined;\n\n /**\n * Dismissed property\n * 1) State that changes to true and is removed when the banner is dismissed\n */\n @property({ type: Boolean, reflect: true })\n dismissed?: boolean;\n\n /**\n * Dismissable property\n * 1) Adds the ability to close when toggled to true\n */\n @property({ type: Boolean, reflect: true })\n notDismissible?: boolean;\n\n /**\n * On banner dismiss\n * 1) Function that toggles dismissed to true and removes the banner from the UI\n */\n onDismiss() {\n this.dismissed = true; /* 1 */\n }\n\n private checkEmphasisAlert = () => {\n if (this.emphasis === 'subtle') {\n return false;\n } return true;\n };\n\n private mapStatusToIconAlert = (status: string) => {\n switch (status) {\n case 'error':\n return html`<cre8-icon\n svg=\"${svgErrorFilled}\"\n aria-label=\"${this.iconTitle}\"\n aria-hidden=\"true\"\n class=\"cre8-c-alert__icon\"\n ></cre8-icon>`;\n case 'success':\n return html`<cre8-icon\n svg=\"${svgCheckCircle}\"\n aria-label=\"${this.iconTitle}\"\n aria-hidden=\"true\"\n class=\"cre8-c-alert__icon\"\n ></cre8-icon>`;\n case 'warning':\n return html`<cre8-icon\n svg=\"${svgWarningFilled}\"\n aria-label=\"${this.iconTitle}\"\n aria-hidden=\"true\"\n class=\"cre8-c-alert__icon\"\n ></cre8-icon>`;\n case 'notification':\n return html`<cre8-icon\n svg=\"${svgLightbulbFilled}\"\n aria-label=\"${this.iconTitle}\"\n aria-hidden=\"true\"\n class=\"cre8-c-alert__icon\"\n ></cre8-icon>`;\n case 'info':\n return html`<cre8-icon\n svg=\"${svgInfoFilled}\"\n aria-label=\"${this.iconTitle}\"\n aria-hidden=\"true\"\n class=\"cre8-c-alert__icon\"\n ></cre8-icon>`;\n case 'neutral':\n return html`<cre8-icon\n svg=\"${svgInfoFilled}\"\n aria-label=\"${this.iconTitle}\"\n aria-hidden=\"true\"\n class=\"cre8-c-alert__icon\"\n ></cre8-icon>`;\n default:\n return nothing;\n }\n };\n\n render() {\n const componentClassNames = this.componentClassNames('cre8-c-alert', {\n 'cre8-c-alert--error': this.status === 'error',\n 'cre8-c-alert--info': this.status === 'info',\n 'cre8-c-alert--notification': this.status === 'notification',\n 'cre8-c-alert--neutral': this.status === 'neutral',\n 'cre8-c-alert--success': this.status === 'success',\n 'cre8-c-alert--warning': this.status === 'warning',\n 'cre8-c-alert--standalone': this.variant === 'standalone',\n 'cre8-c-alert--banner': this.variant === 'banner',\n 'cre8-c-alert--emphasis-subtle': this.emphasis === 'subtle',\n 'cre8-c-alert--notdismissible': this.notDismissible,\n });\n\n return this.dismissed\n ? null\n : html`\n <dialog open>\n <div class=\"${componentClassNames}\">\n <div class=\"cre8-c-alert__container\">\n ${this.status\n ? html` ${this.mapStatusToIconAlert(this.status)}`\n : ''}\n <div class=\"cre8-c-alert__message-container\">\n <div class=\"cre8-c-alert__heading-container\">\n ${this.headerText\n ? html`${this.headerText}`\n : ''}\n ${this.notDismissible\n ? ''\n : html`<cre8-button\n class=\"cre8-c-alert__close-btn\"\n svg='${svgClose}'\n iconRotateDegree=\"90\"\n iconPosition=\"after\"\n variant=\"tertiary\"\n text=\"close\"\n ?hideText=${true}\n @click=${this.onDismiss}\n ?inverted=${this.checkEmphasisAlert()}\n ></cre8-button>`}\n </div>\n <div class=\"cre8-c-alert__body-container\">\n <slot></slot>\n </div>\n <div class=\"cre8-c-alert__footer-container\">\n <slot name=\"cta\">${this.ctaBody}</slot>\n </div>\n </div>\n </div>\n </div>\n </dialog>\n `;\n }\n}\n\nif (customElements.get('cre8-alert') === undefined) {\n customElements.define('cre8-alert', Cre8Alert);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-alert': Cre8Alert;\n }\n}\n\nexport default Cre8Alert;\n","import { css } from 'lit';\nconst styles = css`\n@import '../../design-tokens/core/scss/theming/component';\n\n:host {\n display: inline-flex;\n}\n\n/**\n * 1) Badges are blocks of color with text inside used for messaging\n */\n.cre8-c-badge {\n @include cre8-typography-label-small();\n display: inline-flex;\n border-radius: var(--cre8-border-radius-badge);\n padding: var(--cre8-badge-padding-vertical) var(--cre8-badge-padding-horizontal);\n\n color: var(--cre8-color-content-knockout);\n background-color: var(--cre8-color-bg-strong);\n align-items: center;\n}\n\n/**\n * Success badge\n */\n.cre8-c-badge--success {\n background-color: var(--cre8-color-bg-success-strong);\n}\n\n/**\n * Warning badge\n */\n.cre8-c-badge--warning {\n background-color: var(--cre8-color-bg-warning-strong);\n color: var(--cre8-color-content-default);\n}\n\n/**\n* Creating space between icon and text\n*/\ncre8-icon {\n height: var(--cre8-icon-height, size(2));\n margin-right: size(0.5);\n}\n\n/**\n * Error badge\n */\n.cre8-c-badge--error {\n background-color: var(--cre8-color-bg-error-strong);\n}\n\n/**\n * Info badge\n */\n.cre8-c-badge--info {\n background-color: var(--cre8-color-bg-info-strong);\n}\n\n/**\n * Attention badge\n */\n.cre8-c-badge--attention {\n background-color: var(--cre8-color-bg-attention-strong);\n}\n\n/**\n * Light neutral (default) badge\n */\n.cre8-c-badge--light {\n background-color: var(--cre8-color-bg-subtle);\n color: var(--cre8-color-content-default);\n}\n\n/**\n * Light Success badge\n */\n.cre8-c-badge--light.cre8-c-badge--success {\n background-color: var(--cre8-color-bg-success);\n color: var(--cre8-color-content-success);\n}\n\n/**\n * Light Warning badge\n */\n.cre8-c-badge--light.cre8-c-badge--warning {\n background-color: var(--cre8-color-bg-warning);\n}\n\n/**\n * Light Error badge\n */\n.cre8-c-badge--light.cre8-c-badge--error {\n background-color: var(--cre8-color-bg-error);\n color: var(--cre8-color-content-error);\n}\n\n/**\n * Light Info badge\n */\n.cre8-c-badge--light.cre8-c-badge--info {\n background-color: var(--cre8-color-bg-info);\n}\n\n/**\n * Light Attention badge\n */\n.cre8-c-badge--light.cre8-c-badge--attention {\n background-color: var(--cre8-color-bg-attention);\n}\n\n/**\n * White neutral (default) badge\n */\n.cre8-c-badge--white {\n background-color: var(--cre8-color-bg-default);\n color: var(--cre8-color-content-default);\n}\n\n/**\n * White Success badge\n */\n.cre8-c-badge--white.cre8-c-badge--success {\n color: var(--cre8-color-content-success);\n}\n\n/**\n * White Error badge\n */\n.cre8-c-badge--white.cre8-c-badge--error {\n background-color: none;\n color: var(--cre8-color-content-error);\n}`;\nexport default styles;\n","import classnames from 'classnames';\nimport { html, } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { Cre8Element } from '../cre8-element';\nimport '../icon/icon';\n\nimport styles from './badge.styles.js';\n\nexport enum status {\n 'error', 'warning', 'success', 'info', 'attention', undefined\n}\nexport enum variant {\n 'light', 'white', undefined\n}\n\n/**\n * Status badges are used most often in tables or fat rows in a list.\n * These Components serve a contextual purpose and don't provide any functionality.\n * Badges should be organized inside a dedicated table row communicating status such as pending, approved or rejected.\n *\n */\nexport class Cre8Badge extends Cre8Element {\n static styles = [styles];\n\n /**\n * The badge text\n */\n @property({ type: String })\n text: string = undefined;\n\n /**\n * Status (a color variant prop)\n * - **neutral** (default) renders a badge with a neutral state treatment\n * - **success** renders a badge with success state treatment\n * - **warning** renders a badge with warning state treatment\n * - **error** renders a badge with error state treatment\n * - **info** renders a badge with information state treatment\n * - **attention** renders a badge with attention state treatment\n */\n @property({ type: String })\n status: string;\n\n /**\n * Background Style Variant\n *\n * - **dark|undefined** (default) renders a badge with a dark background\n * - **light** renders a badge with a light background\n * - **white** renders a badge with a white background\n */\n @property({ type: String })\n variant: string;\n\n /**\n * SVG as a raw string\n * - For badges with icons, the icon is defined by this prop\n * - Pass in a raw svg as a String. We use raw string loader for this but any method of getting raw svgs will do\n * - Import example:`import svgFeedback from '/Users/tylersmbp/Projects/cre8-web-components/packages/cre8-wc/icons/System/Regular/Feedback.svg?raw';`\n * - [cre8-icons Github repo](https://git.express-scripts.com/ExpressScripts/cre8-icons) This is the Github\n * repo for Cre8 icons, which includes a link to the storybook as well as relavant information for new icons\n */\n @property({ type: String })\n svg?: string;\n\n render() {\n const componentClassName = classnames('cre8-c-badge', {\n 'cre8-c-badge--success': this.status === 'success',\n 'cre8-c-badge--warning': this.status === 'warning',\n 'cre8-c-badge--error': this.status === 'error',\n 'cre8-c-badge--info': this.status === 'info',\n 'cre8-c-badge--attention': this.status === 'attention',\n 'cre8-c-badge--light': this.variant === 'light',\n 'cre8-c-badge--white': this.variant === 'white',\n });\n\n return html`<div class=\"${componentClassName}\">\n ${this.svg ? html` <cre8-icon \n svg='${this.svg}' aria-hidden='true'></cre8-icon>\n </cre8-icon>` : ''} \n ${this.text} \n </div> `;\n }\n}\n\nif (customElements.get('cre8-badge') === undefined) {\n customElements.define('cre8-badge', Cre8Badge);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-badge': Cre8Badge;\n }\n}\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n// #BAND\n\n/**\n * 1) A container with a background that can house various recipes of Components within\n */\n.cre8-c-band {\n background: var(--cre8-color-bg-subtle);\n padding: size(3) 0;\n\n @media all and (min-width:$cre8-breakpoint-xl) {\n padding: size(4) 0;\n }\n}\n\n/**\n * Branded variant\n */\n.cre8-c-band--branded {\n color: var(--cre8-color-content-knockout);\n background: var(--cre8-theme-color-utility-information);\n}\n\n/**\n * Full height\n * 1) Height set to 100% to fill a container like a sidebar\n */\n.cre8-c-band--full-height {\n height: 100%;\n}\n`;\nexport default styles;\n","import { html, } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './band.styles.js';\n\n/**\n * @slot - The band content\n */\nexport class Cre8Band extends Cre8Element {\n static styles = [styles];\n\n /**\n * Gradient variant\n * <cre8-text-passage size=\"sm\">\n * <ul>\n * <li>**1** renders the band with the set gradient background</li>\n * </ul>\n * </cre8-text-passage>\n */\n @property()\n variant?: 'branded';\n\n /**\n * Full height variant\n * 1) Sets the height to 100%\n */\n @property({ type: Boolean, reflect: true })\n fullHeight?: boolean;\n\n render() {\n const componentClassName = this.componentClassNames('cre8-c-band', {\n 'cre8-c-band--branded': this.variant === 'branded',\n 'cre8-c-band--full-height': this.fullHeight === true,\n });\n\n return html`\n <div class=\"${componentClassName}\">\n <slot></slot>\n </div>\n `;\n }\n}\n\nif (customElements.get('cre8-band') === undefined) {\n customElements.define('cre8-band', Cre8Band);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-band': Cre8Band;\n }\n}\n\nexport default Cre8Band;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n// #BREADCRUMBS\n\n:host {\n display: inline-flex;\n}\n\n/**\n * 1) An ordered list of navigational hierarchy showing the user where they are on the site\n */\n.cre8-c-breadcrumbs__list {\n display: flex;\n flex-wrap: wrap;\n margin: 0;\n padding: 0;\n list-style: none;\n gap: size(1);\n}\n`;\nexport default styles;\n","/* eslint-disable lit-a11y/list --\n* <slot> is a non-content element, which is permitted as a direct child within a list\n* Ref https://dequeuniversity.com/rules/axe/4.8/list regarding non-content elements\n*/\nimport { html, } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './breadcrumbs.styles.js';\n\n/**\n * The breadcrumbs component is a secondary navigation pattern that helps a user understand where the user is located.\n * The breadcrumbs component shows the users their current location relative to the information architecture\n * It enables the users to quickly move up to a parent level or previous location.\n *\n * ## How to Use\n *\n * - Import 'Breadcrumbs' component.\n * - Add the pages in the path of the breadcrumbs using `cre8-breadcrumbs-item`.\n * All the pages in the breadcrumbs component should be interactive.\n * - All the page should link to their respective pages (except the current page) using `cre8-link`.\n * - The current page is included in the breadcrumbs trail.\n * - The current page is always the last text listed and is not an interactive link.\n *\n * @slot - The component content\n */\n\nexport class Cre8Breadcrumbs extends Cre8Element {\n static styles = [styles];\n\n /**\n * aria-label attribute to designate at name for the nav. Can be override by user\n */\n @property()\n navAriaLabel: string = 'breadcrumbs';\n\n render() {\n const componentClassNames = this.componentClassNames('cre8-c-breadcrumbs', {});\n\n return html`\n <nav aria-label=\"${this.navAriaLabel}\" class=\"${componentClassNames}\">\n <ol class=\"cre8-c-breadcrumbs__list\">\n <slot></slot>\n </ol>\n </nav>\n `;\n }\n}\n\nif (customElements.get('cre8-breadcrumbs') === undefined) {\n customElements.define('cre8-breadcrumbs', Cre8Breadcrumbs);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-breadcrumbs': Cre8Breadcrumbs;\n }\n}\n\nexport default Cre8Breadcrumbs;\n","export default \"<svg fill=\\\"currentColor\\\" width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M12.1506 8.51452L4.87827 15.7869C4.8107 15.8544 4.73049 15.908 4.6422 15.9446C4.55392 15.9812 4.4593 16 4.36375 16C4.26819 16 4.17357 15.9812 4.08529 15.9446C3.99701 15.908 3.9168 15.8544 3.84923 15.7869C3.78166 15.7193 3.72806 15.6391 3.6915 15.5508C3.65493 15.4625 3.63611 15.3679 3.63611 15.2724C3.63611 15.1768 3.65493 15.0822 3.6915 14.9939C3.72806 14.9056 3.78166 14.8254 3.84923 14.7578L10.608 8L3.84923 1.24216C3.71277 1.1057 3.63611 0.920622 3.63611 0.72764C3.63611 0.534658 3.71277 0.34958 3.84923 0.213121C3.98569 0.0766618 4.17077 1.43783e-09 4.36375 0C4.55673 -1.43783e-09 4.74181 0.0766618 4.87827 0.213121L12.1506 7.48548C12.2182 7.55302 12.2719 7.63323 12.3085 7.72151C12.3451 7.8098 12.3639 7.90443 12.3639 8C12.3639 8.09557 12.3451 8.1902 12.3085 8.27849C12.2719 8.36677 12.2182 8.44698 12.1506 8.51452Z\\\"/>\\n</svg>\\n\"","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n:host {\n display: inline-flex;\n}\n\n/**\n * 1) Singular item within the breadcrumbs component that contains a link elsewhere on the site\n */\n.cre8-c-breadcrumbs--item {\n display: inline-flex;\n align-items: center;\n\n /**\n * Breadcrumbs caret doesn't display for last breadcrumb item\n */\n :host(:last-child) & {\n cre8-icon {\n display: none;\n }\n }\n}\n\n/**\n* Breadcrumbs icon\n*/\ncre8-icon {\n margin-left: size(1);\n color: var(--cre8-color-content-subtle);\n display: inline-flex;\n svg {\n height: size(2);\n width: size(2);\n }\n}\n`;\nexport default styles;\n","import svgCaretRight from '/Users/tylersmbp/Projects/cre8-web-components/packages/cre8-wc/icons/System/Regular/Caret_Right.svg?raw';\nimport { html, } from 'lit';\nimport { Cre8Element } from '../cre8-element';\nimport '../icon/icon';\nimport styles from './breadcrumbs-item.styles.js';\n\n/**\n * @slot - The component content, the expected slotted content is a Cre8 Link or a String for the \"terminal node\"\n */\nexport class Cre8BreadcrumbsItem extends Cre8Element {\n static styles = [styles];\n\n // Set the role before rendering for better accessibility\n // Because we're settting this role, we don't wrap the slot in an <li>\n connectedCallback() {\n this.setAttribute('role', 'listitem');\n super.connectedCallback();\n }\n\n render() {\n const componentClassNames = this.componentClassNames(\n 'cre8-c-breadcrumbs--item',\n {}\n );\n\n return html`\n <div class=\"${componentClassNames}\">\n <slot></slot>\n <cre8-icon\n svg=\"${svgCaretRight}\"\n rotate=\"90\"\n container-class=\"cre8-c-icon-wrapper\"\n aria-hidden=\"true\"\n class=\"cre8-c-icon-wrapper\"\n >\n </cre8-icon>\n </div>\n `;\n }\n}\n\nif (customElements.get('cre8-breadcrumbs-item') === undefined) {\n customElements.define('cre8-breadcrumbs-item', Cre8BreadcrumbsItem);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-breadcrumbs-item': Cre8BreadcrumbsItem;\n }\n}\n\nexport default Cre8BreadcrumbsItem;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n/*------------------------------------*\\\n #BUTTON-GROUP\n\\*------------------------------------*/\n\n:host {\n display: inline-flex;\n}\n\n/**\n * 1) Button Group\n */\n.cre8-c-button-group {\n display: flex;\n flex-wrap: wrap;\n gap: size(2);\n}\n\n/**\n * Button group for Modals\n */\n.cre8-c-button-group--responsive-full-width {\n flex-direction: column;\n --cre8-button-width: 100%;\n\n @media all and (min-width:$cre8-breakpoint-md) {\n flex-direction: row;\n --cre8-button-width: auto;\n }\n}\n`;\nexport default styles;\n","import { html, } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './button-group.styles.js';\n\n/**\n * @slot - The component content\n */\n\nexport class Cre8ButtonGroup extends Cre8Element {\n static styles = [styles];\n\n /**\n * Responsive Button Group (for modals)\n */\n @property()\n orientation?: 'responsive-full-width';\n\n render() {\n const componentClassNames = this.componentClassNames('cre8-c-button-group', {\n 'cre8-c-button-group--responsive-full-width': this.orientation === 'responsive-full-width',\n });\n\n return html`\n <div class=\"${componentClassNames}\">\n <slot></slot>\n </div>\n `;\n }\n}\n\nif (customElements.get('cre8-button-group') === undefined) {\n customElements.define('cre8-button-group', Cre8ButtonGroup);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-button-group': Cre8ButtonGroup;\n }\n}\n\nexport default Cre8ButtonGroup;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n// #CARD\n\n:host {\n display: block;\n}\n\n/**\n * 1) A card is an organized block that typically contains a title, image,\n * text, and/or calls to action. It is made up of an optional header slot, required\n * body slot, and optional footer slot to place other Components and content within.\n */\n.cre8-c-card {\n overflow: hidden;\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 100%;\n padding: size(3);\n gap: size(2);\n border-color: var(--cre8-color-border-default);\n border-style: var(--cre8-border-style-default);\n border-width: var(--cre8-border-width-default);\n border-radius: var(--cre8-border-radius-default);\n background: var(--cre8-color-bg-default);\n}\n/**\n * Horizontal card\n * 1) Organized block with flex-direction set to row so that header => footer appears\n * from left to right rather than top to bottom\n */\n.cre8-c-card--horizontal{\n flex-direction: row;\n align-items: center;\n justify-content: center;\n}\n/**\n * Bare card\n * 1) Organized block without a border, background, or padding\n */\n.cre8-c-card--bare {\n border: 0;\n padding: 0;\n gap: 0;\n box-shadow: none;\n}\n/**\n * Horizontal-bare card\n * 1) Organized block with flex-direction set to row so that header => footer appears\n * from left to right rather than top to bottom without a border, background, or padding\n */\n.cre8-c-card--horizontal-bare{\n flex-direction: row;\n border: 0;\n padding: 0;\n gap: 0;\n box-shadow: none;\n align-items: center;\n justify-content: center;\n}\n/**\n * Center aligned card\n * 1) Center content and text within the card\n */\n.cre8-c-card--align-center {\n text-align: center; /* 1 */\n align-items: center; /* 1 */\n justify-content: center; /* 1 */\n}\n\n/**\n * Slotted image within a card\n * 1) Make the image full width\n */\n::slotted(img) {\n width: 100%;\n}\n\n/**\n * Card header\n * 1) Remove flex so that body always takes up remaining space\n */\n.cre8-c-card__header {\n display: block;\n flex: none; /* 1 */\n}\n\n/**\n * Card body\n * 1) Flex applied to always fill the remaining space of the card\n */\n.cre8-c-card__body {\n display: block;\n flex: 1 1 auto; /* 1 */\n\n}\n\n/**\n * Card footer\n * 1) Remove flex so that body always takes up remaining space\n */\n.cre8-c-card__footer {\n display: block;\n flex: none; /* 1 */\n\n .cre8-c-card--bare & {\n padding: 0;\n }\n .cre8-c-card--horizontal-bare & {\n padding: 0;\n }\n}\n`;\nexport default styles;\n","import { html, } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './card.styles.js';\n\n/** The card component acts a general container element sectioned off by slots: `header`, `body`, `footer`.\n*\n* # How to Use\n* 1. Wrap the card component tags around any html template code which has been properly imported into the file.\n* 2. Decide the layout that best fits the designs assigned to your work.\n* Generally, we recommend visual elements appear in the `header` (optional slot),\n* while `body` remains reserved for custom html content that gives further context and meaning to the `header`.\n* 3. The card defaults to a column and includes a `horizontal` directional variant.\n* If you have a card where the layout of the content is more aligned horizontally,\n* using the `horizontal` variant will ease the construction of your component\n* 4. Finally, we typically recommend reserving the footer for any interactive elements\n* such as buttons for navigating to further information.\n*\n*\n* NOTE: Adjusting props not mentioned above may result in unpredictable states\n*\n* @slot body - The card's body content\n* @slot header - (Optional) Content in the card's header\n* @slot footer - (Optional) Content in the card's footer\n*/\nexport class Cre8Card extends Cre8Element {\n static styles = [styles];\n\n /**\n * Style variants\n * - **bare** renders a card without a border and without padding around the content\n * - **horizontal** renders a card with header, body, footer oriented in a row rather than a column\n * - **horizontal-bare** renders a card with header, body, footer oriented in a row rather than a column\n * without a border and without padding around the content\n */\n @property()\n variant?: 'bare' | 'horizontal' | 'horizontal-bare';\n\n /**\n * Alignment variant\n * - **center** renders a card that has center aligned content/text\n */\n @property()\n align?: 'center';\n\n render() {\n const componentClassNames = this.componentClassNames('cre8-c-card', {\n 'cre8-c-card--bare': this.variant === 'bare',\n 'cre8-c-card--horizontal': this.variant === 'horizontal',\n 'cre8-c-card--horizontal-bare': this.variant === 'horizontal-bare',\n 'cre8-c-card--align-center': this.align === 'center',\n });\n\n return html`\n <div class=\"${componentClassNames}\" part=\"card\">\n ${this.slotNotEmpty('header')\n && html`<div class=\"cre8-c-card__header\" part=\"header\"><slot name=\"header\"></slot></div>`}\n <div class=\"cre8-c-card__body\" part=\"body\">\n <slot></slot>\n </div>\n ${this.slotNotEmpty('footer')\n && html`<div class=\"cre8-c-card__footer\" part=\"footer\"><slot name=\"footer\"></slot></div>`}\n </div>\n `;\n }\n}\n\nif (customElements.get('cre8-card') === undefined) {\n customElements.define('cre8-card', Cre8Card);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-card': Cre8Card;\n }\n}\n\nexport default Cre8Card;\n","/*!\n * @kurkle/color v0.3.4\n * https://github.com/kurkle/color#readme\n * (c) 2024 Jukka Kurkela\n * Released under the MIT License\n */\nfunction round(v) {\n return v + 0.5 | 0;\n}\nconst lim = (v, l, h) => Math.max(Math.min(v, h), l);\nfunction p2b(v) {\n return lim(round(v * 2.55), 0, 255);\n}\nfunction b2p(v) {\n return lim(round(v / 2.55), 0, 100);\n}\nfunction n2b(v) {\n return lim(round(v * 255), 0, 255);\n}\nfunction b2n(v) {\n return lim(round(v / 2.55) / 100, 0, 1);\n}\nfunction n2p(v) {\n return lim(round(v * 100), 0, 100);\n}\n\nconst map$1 = {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, A: 10, B: 11, C: 12, D: 13, E: 14, F: 15, a: 10, b: 11, c: 12, d: 13, e: 14, f: 15};\nconst hex = [...'0123456789ABCDEF'];\nconst h1 = b => hex[b & 0xF];\nconst h2 = b => hex[(b & 0xF0) >> 4] + hex[b & 0xF];\nconst eq = b => ((b & 0xF0) >> 4) === (b & 0xF);\nconst isShort = v => eq(v.r) && eq(v.g) && eq(v.b) && eq(v.a);\nfunction hexParse(str) {\n var len = str.length;\n var ret;\n if (str[0] === '#') {\n if (len === 4 || len === 5) {\n ret = {\n r: 255 & map$1[str[1]] * 17,\n g: 255 & map$1[str[2]] * 17,\n b: 255 & map$1[str[3]] * 17,\n a: len === 5 ? map$1[str[4]] * 17 : 255\n };\n } else if (len === 7 || len === 9) {\n ret = {\n r: map$1[str[1]] << 4 | map$1[str[2]],\n g: map$1[str[3]] << 4 | map$1[str[4]],\n b: map$1[str[5]] << 4 | map$1[str[6]],\n a: len === 9 ? (map$1[str[7]] << 4 | map$1[str[8]]) : 255\n };\n }\n }\n return ret;\n}\nconst alpha = (a, f) => a < 255 ? f(a) : '';\nfunction hexString(v) {\n var f = isShort(v) ? h1 : h2;\n return v\n ? '#' + f(v.r) + f(v.g) + f(v.b) + alpha(v.a, f)\n : undefined;\n}\n\nconst HUE_RE = /^(hsla?|hwb|hsv)\\(\\s*([-+.e\\d]+)(?:deg)?[\\s,]+([-+.e\\d]+)%[\\s,]+([-+.e\\d]+)%(?:[\\s,]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction hsl2rgbn(h, s, l) {\n const a = s * Math.min(l, 1 - l);\n const f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n return [f(0), f(8), f(4)];\n}\nfunction hsv2rgbn(h, s, v) {\n const f = (n, k = (n + h / 60) % 6) => v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n return [f(5), f(3), f(1)];\n}\nfunction hwb2rgbn(h, w, b) {\n const rgb = hsl2rgbn(h, 1, 0.5);\n let i;\n if (w + b > 1) {\n i = 1 / (w + b);\n w *= i;\n b *= i;\n }\n for (i = 0; i < 3; i++) {\n rgb[i] *= 1 - w - b;\n rgb[i] += w;\n }\n return rgb;\n}\nfunction hueValue(r, g, b, d, max) {\n if (r === max) {\n return ((g - b) / d) + (g < b ? 6 : 0);\n }\n if (g === max) {\n return (b - r) / d + 2;\n }\n return (r - g) / d + 4;\n}\nfunction rgb2hsl(v) {\n const range = 255;\n const r = v.r / range;\n const g = v.g / range;\n const b = v.b / range;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const l = (max + min) / 2;\n let h, s, d;\n if (max !== min) {\n d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n h = hueValue(r, g, b, d, max);\n h = h * 60 + 0.5;\n }\n return [h | 0, s || 0, l];\n}\nfunction calln(f, a, b, c) {\n return (\n Array.isArray(a)\n ? f(a[0], a[1], a[2])\n : f(a, b, c)\n ).map(n2b);\n}\nfunction hsl2rgb(h, s, l) {\n return calln(hsl2rgbn, h, s, l);\n}\nfunction hwb2rgb(h, w, b) {\n return calln(hwb2rgbn, h, w, b);\n}\nfunction hsv2rgb(h, s, v) {\n return calln(hsv2rgbn, h, s, v);\n}\nfunction hue(h) {\n return (h % 360 + 360) % 360;\n}\nfunction hueParse(str) {\n const m = HUE_RE.exec(str);\n let a = 255;\n let v;\n if (!m) {\n return;\n }\n if (m[5] !== v) {\n a = m[6] ? p2b(+m[5]) : n2b(+m[5]);\n }\n const h = hue(+m[2]);\n const p1 = +m[3] / 100;\n const p2 = +m[4] / 100;\n if (m[1] === 'hwb') {\n v = hwb2rgb(h, p1, p2);\n } else if (m[1] === 'hsv') {\n v = hsv2rgb(h, p1, p2);\n } else {\n v = hsl2rgb(h, p1, p2);\n }\n return {\n r: v[0],\n g: v[1],\n b: v[2],\n a: a\n };\n}\nfunction rotate(v, deg) {\n var h = rgb2hsl(v);\n h[0] = hue(h[0] + deg);\n h = hsl2rgb(h);\n v.r = h[0];\n v.g = h[1];\n v.b = h[2];\n}\nfunction hslString(v) {\n if (!v) {\n return;\n }\n const a = rgb2hsl(v);\n const h = a[0];\n const s = n2p(a[1]);\n const l = n2p(a[2]);\n return v.a < 255\n ? `hsla(${h}, ${s}%, ${l}%, ${b2n(v.a)})`\n : `hsl(${h}, ${s}%, ${l}%)`;\n}\n\nconst map = {\n\tx: 'dark',\n\tZ: 'light',\n\tY: 're',\n\tX: 'blu',\n\tW: 'gr',\n\tV: 'medium',\n\tU: 'slate',\n\tA: 'ee',\n\tT: 'ol',\n\tS: 'or',\n\tB: 'ra',\n\tC: 'lateg',\n\tD: 'ights',\n\tR: 'in',\n\tQ: 'turquois',\n\tE: 'hi',\n\tP: 'ro',\n\tO: 'al',\n\tN: 'le',\n\tM: 'de',\n\tL: 'yello',\n\tF: 'en',\n\tK: 'ch',\n\tG: 'arks',\n\tH: 'ea',\n\tI: 'ightg',\n\tJ: 'wh'\n};\nconst names$1 = {\n\tOiceXe: 'f0f8ff',\n\tantiquewEte: 'faebd7',\n\taqua: 'ffff',\n\taquamarRe: '7fffd4',\n\tazuY: 'f0ffff',\n\tbeige: 'f5f5dc',\n\tbisque: 'ffe4c4',\n\tblack: '0',\n\tblanKedOmond: 'ffebcd',\n\tXe: 'ff',\n\tXeviTet: '8a2be2',\n\tbPwn: 'a52a2a',\n\tburlywood: 'deb887',\n\tcaMtXe: '5f9ea0',\n\tKartYuse: '7fff00',\n\tKocTate: 'd2691e',\n\tcSO: 'ff7f50',\n\tcSnflowerXe: '6495ed',\n\tcSnsilk: 'fff8dc',\n\tcrimson: 'dc143c',\n\tcyan: 'ffff',\n\txXe: '8b',\n\txcyan: '8b8b',\n\txgTMnPd: 'b8860b',\n\txWay: 'a9a9a9',\n\txgYF: '6400',\n\txgYy: 'a9a9a9',\n\txkhaki: 'bdb76b',\n\txmagFta: '8b008b',\n\txTivegYF: '556b2f',\n\txSange: 'ff8c00',\n\txScEd: '9932cc',\n\txYd: '8b0000',\n\txsOmon: 'e9967a',\n\txsHgYF: '8fbc8f',\n\txUXe: '483d8b',\n\txUWay: '2f4f4f',\n\txUgYy: '2f4f4f',\n\txQe: 'ced1',\n\txviTet: '9400d3',\n\tdAppRk: 'ff1493',\n\tdApskyXe: 'bfff',\n\tdimWay: '696969',\n\tdimgYy: '696969',\n\tdodgerXe: '1e90ff',\n\tfiYbrick: 'b22222',\n\tflSOwEte: 'fffaf0',\n\tfoYstWAn: '228b22',\n\tfuKsia: 'ff00ff',\n\tgaRsbSo: 'dcdcdc',\n\tghostwEte: 'f8f8ff',\n\tgTd: 'ffd700',\n\tgTMnPd: 'daa520',\n\tWay: '808080',\n\tgYF: '8000',\n\tgYFLw: 'adff2f',\n\tgYy: '808080',\n\thoneyMw: 'f0fff0',\n\thotpRk: 'ff69b4',\n\tRdianYd: 'cd5c5c',\n\tRdigo: '4b0082',\n\tivSy: 'fffff0',\n\tkhaki: 'f0e68c',\n\tlavFMr: 'e6e6fa',\n\tlavFMrXsh: 'fff0f5',\n\tlawngYF: '7cfc00',\n\tNmoncEffon: 'fffacd',\n\tZXe: 'add8e6',\n\tZcSO: 'f08080',\n\tZcyan: 'e0ffff',\n\tZgTMnPdLw: 'fafad2',\n\tZWay: 'd3d3d3',\n\tZgYF: '90ee90',\n\tZgYy: 'd3d3d3',\n\tZpRk: 'ffb6c1',\n\tZsOmon: 'ffa07a',\n\tZsHgYF: '20b2aa',\n\tZskyXe: '87cefa',\n\tZUWay: '778899',\n\tZUgYy: '778899',\n\tZstAlXe: 'b0c4de',\n\tZLw: 'ffffe0',\n\tlime: 'ff00',\n\tlimegYF: '32cd32',\n\tlRF: 'faf0e6',\n\tmagFta: 'ff00ff',\n\tmaPon: '800000',\n\tVaquamarRe: '66cdaa',\n\tVXe: 'cd',\n\tVScEd: 'ba55d3',\n\tVpurpN: '9370db',\n\tVsHgYF: '3cb371',\n\tVUXe: '7b68ee',\n\tVsprRggYF: 'fa9a',\n\tVQe: '48d1cc',\n\tVviTetYd: 'c71585',\n\tmidnightXe: '191970',\n\tmRtcYam: 'f5fffa',\n\tmistyPse: 'ffe4e1',\n\tmoccasR: 'ffe4b5',\n\tnavajowEte: 'ffdead',\n\tnavy: '80',\n\tTdlace: 'fdf5e6',\n\tTive: '808000',\n\tTivedBb: '6b8e23',\n\tSange: 'ffa500',\n\tSangeYd: 'ff4500',\n\tScEd: 'da70d6',\n\tpOegTMnPd: 'eee8aa',\n\tpOegYF: '98fb98',\n\tpOeQe: 'afeeee',\n\tpOeviTetYd: 'db7093',\n\tpapayawEp: 'ffefd5',\n\tpHKpuff: 'ffdab9',\n\tperu: 'cd853f',\n\tpRk: 'ffc0cb',\n\tplum: 'dda0dd',\n\tpowMrXe: 'b0e0e6',\n\tpurpN: '800080',\n\tYbeccapurpN: '663399',\n\tYd: 'ff0000',\n\tPsybrown: 'bc8f8f',\n\tPyOXe: '4169e1',\n\tsaddNbPwn: '8b4513',\n\tsOmon: 'fa8072',\n\tsandybPwn: 'f4a460',\n\tsHgYF: '2e8b57',\n\tsHshell: 'fff5ee',\n\tsiFna: 'a0522d',\n\tsilver: 'c0c0c0',\n\tskyXe: '87ceeb',\n\tUXe: '6a5acd',\n\tUWay: '708090',\n\tUgYy: '708090',\n\tsnow: 'fffafa',\n\tsprRggYF: 'ff7f',\n\tstAlXe: '4682b4',\n\ttan: 'd2b48c',\n\tteO: '8080',\n\ttEstN: 'd8bfd8',\n\ttomato: 'ff6347',\n\tQe: '40e0d0',\n\tviTet: 'ee82ee',\n\tJHt: 'f5deb3',\n\twEte: 'ffffff',\n\twEtesmoke: 'f5f5f5',\n\tLw: 'ffff00',\n\tLwgYF: '9acd32'\n};\nfunction unpack() {\n const unpacked = {};\n const keys = Object.keys(names$1);\n const tkeys = Object.keys(map);\n let i, j, k, ok, nk;\n for (i = 0; i < keys.length; i++) {\n ok = nk = keys[i];\n for (j = 0; j < tkeys.length; j++) {\n k = tkeys[j];\n nk = nk.replace(k, map[k]);\n }\n k = parseInt(names$1[ok], 16);\n unpacked[nk] = [k >> 16 & 0xFF, k >> 8 & 0xFF, k & 0xFF];\n }\n return unpacked;\n}\n\nlet names;\nfunction nameParse(str) {\n if (!names) {\n names = unpack();\n names.transparent = [0, 0, 0, 0];\n }\n const a = names[str.toLowerCase()];\n return a && {\n r: a[0],\n g: a[1],\n b: a[2],\n a: a.length === 4 ? a[3] : 255\n };\n}\n\nconst RGB_RE = /^rgba?\\(\\s*([-+.\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?(?:[\\s,/]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction rgbParse(str) {\n const m = RGB_RE.exec(str);\n let a = 255;\n let r, g, b;\n if (!m) {\n return;\n }\n if (m[7] !== r) {\n const v = +m[7];\n a = m[8] ? p2b(v) : lim(v * 255, 0, 255);\n }\n r = +m[1];\n g = +m[3];\n b = +m[5];\n r = 255 & (m[2] ? p2b(r) : lim(r, 0, 255));\n g = 255 & (m[4] ? p2b(g) : lim(g, 0, 255));\n b = 255 & (m[6] ? p2b(b) : lim(b, 0, 255));\n return {\n r: r,\n g: g,\n b: b,\n a: a\n };\n}\nfunction rgbString(v) {\n return v && (\n v.a < 255\n ? `rgba(${v.r}, ${v.g}, ${v.b}, ${b2n(v.a)})`\n : `rgb(${v.r}, ${v.g}, ${v.b})`\n );\n}\n\nconst to = v => v <= 0.0031308 ? v * 12.92 : Math.pow(v, 1.0 / 2.4) * 1.055 - 0.055;\nconst from = v => v <= 0.04045 ? v / 12.92 : Math.pow((v + 0.055) / 1.055, 2.4);\nfunction interpolate(rgb1, rgb2, t) {\n const r = from(b2n(rgb1.r));\n const g = from(b2n(rgb1.g));\n const b = from(b2n(rgb1.b));\n return {\n r: n2b(to(r + t * (from(b2n(rgb2.r)) - r))),\n g: n2b(to(g + t * (from(b2n(rgb2.g)) - g))),\n b: n2b(to(b + t * (from(b2n(rgb2.b)) - b))),\n a: rgb1.a + t * (rgb2.a - rgb1.a)\n };\n}\n\nfunction modHSL(v, i, ratio) {\n if (v) {\n let tmp = rgb2hsl(v);\n tmp[i] = Math.max(0, Math.min(tmp[i] + tmp[i] * ratio, i === 0 ? 360 : 1));\n tmp = hsl2rgb(tmp);\n v.r = tmp[0];\n v.g = tmp[1];\n v.b = tmp[2];\n }\n}\nfunction clone(v, proto) {\n return v ? Object.assign(proto || {}, v) : v;\n}\nfunction fromObject(input) {\n var v = {r: 0, g: 0, b: 0, a: 255};\n if (Array.isArray(input)) {\n if (input.length >= 3) {\n v = {r: input[0], g: input[1], b: input[2], a: 255};\n if (input.length > 3) {\n v.a = n2b(input[3]);\n }\n }\n } else {\n v = clone(input, {r: 0, g: 0, b: 0, a: 1});\n v.a = n2b(v.a);\n }\n return v;\n}\nfunction functionParse(str) {\n if (str.charAt(0) === 'r') {\n return rgbParse(str);\n }\n return hueParse(str);\n}\nclass Color {\n constructor(input) {\n if (input instanceof Color) {\n return input;\n }\n const type = typeof input;\n let v;\n if (type === 'object') {\n v = fromObject(input);\n } else if (type === 'string') {\n v = hexParse(input) || nameParse(input) || functionParse(input);\n }\n this._rgb = v;\n this._valid = !!v;\n }\n get valid() {\n return this._valid;\n }\n get rgb() {\n var v = clone(this._rgb);\n if (v) {\n v.a = b2n(v.a);\n }\n return v;\n }\n set rgb(obj) {\n this._rgb = fromObject(obj);\n }\n rgbString() {\n return this._valid ? rgbString(this._rgb) : undefined;\n }\n hexString() {\n return this._valid ? hexString(this._rgb) : undefined;\n }\n hslString() {\n return this._valid ? hslString(this._rgb) : undefined;\n }\n mix(color, weight) {\n if (color) {\n const c1 = this.rgb;\n const c2 = color.rgb;\n let w2;\n const p = weight === w2 ? 0.5 : weight;\n const w = 2 * p - 1;\n const a = c1.a - c2.a;\n const w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n w2 = 1 - w1;\n c1.r = 0xFF & w1 * c1.r + w2 * c2.r + 0.5;\n c1.g = 0xFF & w1 * c1.g + w2 * c2.g + 0.5;\n c1.b = 0xFF & w1 * c1.b + w2 * c2.b + 0.5;\n c1.a = p * c1.a + (1 - p) * c2.a;\n this.rgb = c1;\n }\n return this;\n }\n interpolate(color, t) {\n if (color) {\n this._rgb = interpolate(this._rgb, color._rgb, t);\n }\n return this;\n }\n clone() {\n return new Color(this.rgb);\n }\n alpha(a) {\n this._rgb.a = n2b(a);\n return this;\n }\n clearer(ratio) {\n const rgb = this._rgb;\n rgb.a *= 1 - ratio;\n return this;\n }\n greyscale() {\n const rgb = this._rgb;\n const val = round(rgb.r * 0.3 + rgb.g * 0.59 + rgb.b * 0.11);\n rgb.r = rgb.g = rgb.b = val;\n return this;\n }\n opaquer(ratio) {\n const rgb = this._rgb;\n rgb.a *= 1 + ratio;\n return this;\n }\n negate() {\n const v = this._rgb;\n v.r = 255 - v.r;\n v.g = 255 - v.g;\n v.b = 255 - v.b;\n return this;\n }\n lighten(ratio) {\n modHSL(this._rgb, 2, ratio);\n return this;\n }\n darken(ratio) {\n modHSL(this._rgb, 2, -ratio);\n return this;\n }\n saturate(ratio) {\n modHSL(this._rgb, 1, ratio);\n return this;\n }\n desaturate(ratio) {\n modHSL(this._rgb, 1, -ratio);\n return this;\n }\n rotate(deg) {\n rotate(this._rgb, deg);\n return this;\n }\n}\n\nfunction index_esm(input) {\n return new Color(input);\n}\n\nexport { Color, b2n, b2p, index_esm as default, hexParse, hexString, hsl2rgb, hslString, hsv2rgb, hueParse, hwb2rgb, lim, n2b, n2p, nameParse, p2b, rgb2hsl, rgbParse, rgbString, rotate, round };\n","/*!\n * Chart.js v4.5.1\n * https://www.chartjs.org\n * (c) 2025 Chart.js Contributors\n * Released under the MIT License\n */\nimport { Color } from '@kurkle/color';\n\n/**\n * @namespace Chart.helpers\n */ /**\n * An empty function that can be used, for example, for optional callback.\n */ function noop() {\n/* noop */ }\n/**\n * Returns a unique id, sequentially generated from a global variable.\n */ const uid = (()=>{\n let id = 0;\n return ()=>id++;\n})();\n/**\n * Returns true if `value` is neither null nor undefined, else returns false.\n * @param value - The value to test.\n * @since 2.7.0\n */ function isNullOrUndef(value) {\n return value === null || value === undefined;\n}\n/**\n * Returns true if `value` is an array (including typed arrays), else returns false.\n * @param value - The value to test.\n * @function\n */ function isArray(value) {\n if (Array.isArray && Array.isArray(value)) {\n return true;\n }\n const type = Object.prototype.toString.call(value);\n if (type.slice(0, 7) === '[object' && type.slice(-6) === 'Array]') {\n return true;\n }\n return false;\n}\n/**\n * Returns true if `value` is an object (excluding null), else returns false.\n * @param value - The value to test.\n * @since 2.7.0\n */ function isObject(value) {\n return value !== null && Object.prototype.toString.call(value) === '[object Object]';\n}\n/**\n * Returns true if `value` is a finite number, else returns false\n * @param value - The value to test.\n */ function isNumberFinite(value) {\n return (typeof value === 'number' || value instanceof Number) && isFinite(+value);\n}\n/**\n * Returns `value` if finite, else returns `defaultValue`.\n * @param value - The value to return if defined.\n * @param defaultValue - The value to return if `value` is not finite.\n */ function finiteOrDefault(value, defaultValue) {\n return isNumberFinite(value) ? value : defaultValue;\n}\n/**\n * Returns `value` if defined, else returns `defaultValue`.\n * @param value - The value to return if defined.\n * @param defaultValue - The value to return if `value` is undefined.\n */ function valueOrDefault(value, defaultValue) {\n return typeof value === 'undefined' ? defaultValue : value;\n}\nconst toPercentage = (value, dimension)=>typeof value === 'string' && value.endsWith('%') ? parseFloat(value) / 100 : +value / dimension;\nconst toDimension = (value, dimension)=>typeof value === 'string' && value.endsWith('%') ? parseFloat(value) / 100 * dimension : +value;\n/**\n * Calls `fn` with the given `args` in the scope defined by `thisArg` and returns the\n * value returned by `fn`. If `fn` is not a function, this method returns undefined.\n * @param fn - The function to call.\n * @param args - The arguments with which `fn` should be called.\n * @param [thisArg] - The value of `this` provided for the call to `fn`.\n */ function callback(fn, args, thisArg) {\n if (fn && typeof fn.call === 'function') {\n return fn.apply(thisArg, args);\n }\n}\nfunction each(loopable, fn, thisArg, reverse) {\n let i, len, keys;\n if (isArray(loopable)) {\n len = loopable.length;\n if (reverse) {\n for(i = len - 1; i >= 0; i--){\n fn.call(thisArg, loopable[i], i);\n }\n } else {\n for(i = 0; i < len; i++){\n fn.call(thisArg, loopable[i], i);\n }\n }\n } else if (isObject(loopable)) {\n keys = Object.keys(loopable);\n len = keys.length;\n for(i = 0; i < len; i++){\n fn.call(thisArg, loopable[keys[i]], keys[i]);\n }\n }\n}\n/**\n * Returns true if the `a0` and `a1` arrays have the same content, else returns false.\n * @param a0 - The array to compare\n * @param a1 - The array to compare\n * @private\n */ function _elementsEqual(a0, a1) {\n let i, ilen, v0, v1;\n if (!a0 || !a1 || a0.length !== a1.length) {\n return false;\n }\n for(i = 0, ilen = a0.length; i < ilen; ++i){\n v0 = a0[i];\n v1 = a1[i];\n if (v0.datasetIndex !== v1.datasetIndex || v0.index !== v1.index) {\n return false;\n }\n }\n return true;\n}\n/**\n * Returns a deep copy of `source` without keeping references on objects and arrays.\n * @param source - The value to clone.\n */ function clone(source) {\n if (isArray(source)) {\n return source.map(clone);\n }\n if (isObject(source)) {\n const target = Object.create(null);\n const keys = Object.keys(source);\n const klen = keys.length;\n let k = 0;\n for(; k < klen; ++k){\n target[keys[k]] = clone(source[keys[k]]);\n }\n return target;\n }\n return source;\n}\nfunction isValidKey(key) {\n return [\n '__proto__',\n 'prototype',\n 'constructor'\n ].indexOf(key) === -1;\n}\n/**\n * The default merger when Chart.helpers.merge is called without merger option.\n * Note(SB): also used by mergeConfig and mergeScaleConfig as fallback.\n * @private\n */ function _merger(key, target, source, options) {\n if (!isValidKey(key)) {\n return;\n }\n const tval = target[key];\n const sval = source[key];\n if (isObject(tval) && isObject(sval)) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n merge(tval, sval, options);\n } else {\n target[key] = clone(sval);\n }\n}\nfunction merge(target, source, options) {\n const sources = isArray(source) ? source : [\n source\n ];\n const ilen = sources.length;\n if (!isObject(target)) {\n return target;\n }\n options = options || {};\n const merger = options.merger || _merger;\n let current;\n for(let i = 0; i < ilen; ++i){\n current = sources[i];\n if (!isObject(current)) {\n continue;\n }\n const keys = Object.keys(current);\n for(let k = 0, klen = keys.length; k < klen; ++k){\n merger(keys[k], target, current, options);\n }\n }\n return target;\n}\nfunction mergeIf(target, source) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n return merge(target, source, {\n merger: _mergerIf\n });\n}\n/**\n * Merges source[key] in target[key] only if target[key] is undefined.\n * @private\n */ function _mergerIf(key, target, source) {\n if (!isValidKey(key)) {\n return;\n }\n const tval = target[key];\n const sval = source[key];\n if (isObject(tval) && isObject(sval)) {\n mergeIf(tval, sval);\n } else if (!Object.prototype.hasOwnProperty.call(target, key)) {\n target[key] = clone(sval);\n }\n}\n/**\n * @private\n */ function _deprecated(scope, value, previous, current) {\n if (value !== undefined) {\n console.warn(scope + ': \"' + previous + '\" is deprecated. Please use \"' + current + '\" instead');\n }\n}\n// resolveObjectKey resolver cache\nconst keyResolvers = {\n // Chart.helpers.core resolveObjectKey should resolve empty key to root object\n '': (v)=>v,\n // default resolvers\n x: (o)=>o.x,\n y: (o)=>o.y\n};\n/**\n * @private\n */ function _splitKey(key) {\n const parts = key.split('.');\n const keys = [];\n let tmp = '';\n for (const part of parts){\n tmp += part;\n if (tmp.endsWith('\\\\')) {\n tmp = tmp.slice(0, -1) + '.';\n } else {\n keys.push(tmp);\n tmp = '';\n }\n }\n return keys;\n}\nfunction _getKeyResolver(key) {\n const keys = _splitKey(key);\n return (obj)=>{\n for (const k of keys){\n if (k === '') {\n break;\n }\n obj = obj && obj[k];\n }\n return obj;\n };\n}\nfunction resolveObjectKey(obj, key) {\n const resolver = keyResolvers[key] || (keyResolvers[key] = _getKeyResolver(key));\n return resolver(obj);\n}\n/**\n * @private\n */ function _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\nconst defined = (value)=>typeof value !== 'undefined';\nconst isFunction = (value)=>typeof value === 'function';\n// Adapted from https://stackoverflow.com/questions/31128855/comparing-ecma6-sets-for-equality#31129384\nconst setsEqual = (a, b)=>{\n if (a.size !== b.size) {\n return false;\n }\n for (const item of a){\n if (!b.has(item)) {\n return false;\n }\n }\n return true;\n};\n/**\n * @param e - The event\n * @private\n */ function _isClickEvent(e) {\n return e.type === 'mouseup' || e.type === 'click' || e.type === 'contextmenu';\n}\n\n/**\n * @alias Chart.helpers.math\n * @namespace\n */ const PI = Math.PI;\nconst TAU = 2 * PI;\nconst PITAU = TAU + PI;\nconst INFINITY = Number.POSITIVE_INFINITY;\nconst RAD_PER_DEG = PI / 180;\nconst HALF_PI = PI / 2;\nconst QUARTER_PI = PI / 4;\nconst TWO_THIRDS_PI = PI * 2 / 3;\nconst log10 = Math.log10;\nconst sign = Math.sign;\nfunction almostEquals(x, y, epsilon) {\n return Math.abs(x - y) < epsilon;\n}\n/**\n * Implementation of the nice number algorithm used in determining where axis labels will go\n */ function niceNum(range) {\n const roundedRange = Math.round(range);\n range = almostEquals(range, roundedRange, range / 1000) ? roundedRange : range;\n const niceRange = Math.pow(10, Math.floor(log10(range)));\n const fraction = range / niceRange;\n const niceFraction = fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 5 ? 5 : 10;\n return niceFraction * niceRange;\n}\n/**\n * Returns an array of factors sorted from 1 to sqrt(value)\n * @private\n */ function _factorize(value) {\n const result = [];\n const sqrt = Math.sqrt(value);\n let i;\n for(i = 1; i < sqrt; i++){\n if (value % i === 0) {\n result.push(i);\n result.push(value / i);\n }\n }\n if (sqrt === (sqrt | 0)) {\n result.push(sqrt);\n }\n result.sort((a, b)=>a - b).pop();\n return result;\n}\n/**\n * Verifies that attempting to coerce n to string or number won't throw a TypeError.\n */ function isNonPrimitive(n) {\n return typeof n === 'symbol' || typeof n === 'object' && n !== null && !(Symbol.toPrimitive in n || 'toString' in n || 'valueOf' in n);\n}\nfunction isNumber(n) {\n return !isNonPrimitive(n) && !isNaN(parseFloat(n)) && isFinite(n);\n}\nfunction almostWhole(x, epsilon) {\n const rounded = Math.round(x);\n return rounded - epsilon <= x && rounded + epsilon >= x;\n}\n/**\n * @private\n */ function _setMinAndMaxByKey(array, target, property) {\n let i, ilen, value;\n for(i = 0, ilen = array.length; i < ilen; i++){\n value = array[i][property];\n if (!isNaN(value)) {\n target.min = Math.min(target.min, value);\n target.max = Math.max(target.max, value);\n }\n }\n}\nfunction toRadians(degrees) {\n return degrees * (PI / 180);\n}\nfunction toDegrees(radians) {\n return radians * (180 / PI);\n}\n/**\n * Returns the number of decimal places\n * i.e. the number of digits after the decimal point, of the value of this Number.\n * @param x - A number.\n * @returns The number of decimal places.\n * @private\n */ function _decimalPlaces(x) {\n if (!isNumberFinite(x)) {\n return;\n }\n let e = 1;\n let p = 0;\n while(Math.round(x * e) / e !== x){\n e *= 10;\n p++;\n }\n return p;\n}\n// Gets the angle from vertical upright to the point about a centre.\nfunction getAngleFromPoint(centrePoint, anglePoint) {\n const distanceFromXCenter = anglePoint.x - centrePoint.x;\n const distanceFromYCenter = anglePoint.y - centrePoint.y;\n const radialDistanceFromCenter = Math.sqrt(distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter);\n let angle = Math.atan2(distanceFromYCenter, distanceFromXCenter);\n if (angle < -0.5 * PI) {\n angle += TAU; // make sure the returned angle is in the range of (-PI/2, 3PI/2]\n }\n return {\n angle,\n distance: radialDistanceFromCenter\n };\n}\nfunction distanceBetweenPoints(pt1, pt2) {\n return Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\n}\n/**\n * Shortest distance between angles, in either direction.\n * @private\n */ function _angleDiff(a, b) {\n return (a - b + PITAU) % TAU - PI;\n}\n/**\n * Normalize angle to be between 0 and 2*PI\n * @private\n */ function _normalizeAngle(a) {\n return (a % TAU + TAU) % TAU;\n}\n/**\n * @private\n */ function _angleBetween(angle, start, end, sameAngleIsFullCircle) {\n const a = _normalizeAngle(angle);\n const s = _normalizeAngle(start);\n const e = _normalizeAngle(end);\n const angleToStart = _normalizeAngle(s - a);\n const angleToEnd = _normalizeAngle(e - a);\n const startToAngle = _normalizeAngle(a - s);\n const endToAngle = _normalizeAngle(a - e);\n return a === s || a === e || sameAngleIsFullCircle && s === e || angleToStart > angleToEnd && startToAngle < endToAngle;\n}\n/**\n * Limit `value` between `min` and `max`\n * @param value\n * @param min\n * @param max\n * @private\n */ function _limitValue(value, min, max) {\n return Math.max(min, Math.min(max, value));\n}\n/**\n * @param {number} value\n * @private\n */ function _int16Range(value) {\n return _limitValue(value, -32768, 32767);\n}\n/**\n * @param value\n * @param start\n * @param end\n * @param [epsilon]\n * @private\n */ function _isBetween(value, start, end, epsilon = 1e-6) {\n return value >= Math.min(start, end) - epsilon && value <= Math.max(start, end) + epsilon;\n}\n\nfunction _lookup(table, value, cmp) {\n cmp = cmp || ((index)=>table[index] < value);\n let hi = table.length - 1;\n let lo = 0;\n let mid;\n while(hi - lo > 1){\n mid = lo + hi >> 1;\n if (cmp(mid)) {\n lo = mid;\n } else {\n hi = mid;\n }\n }\n return {\n lo,\n hi\n };\n}\n/**\n * Binary search\n * @param table - the table search. must be sorted!\n * @param key - property name for the value in each entry\n * @param value - value to find\n * @param last - lookup last index\n * @private\n */ const _lookupByKey = (table, key, value, last)=>_lookup(table, value, last ? (index)=>{\n const ti = table[index][key];\n return ti < value || ti === value && table[index + 1][key] === value;\n } : (index)=>table[index][key] < value);\n/**\n * Reverse binary search\n * @param table - the table search. must be sorted!\n * @param key - property name for the value in each entry\n * @param value - value to find\n * @private\n */ const _rlookupByKey = (table, key, value)=>_lookup(table, value, (index)=>table[index][key] >= value);\n/**\n * Return subset of `values` between `min` and `max` inclusive.\n * Values are assumed to be in sorted order.\n * @param values - sorted array of values\n * @param min - min value\n * @param max - max value\n */ function _filterBetween(values, min, max) {\n let start = 0;\n let end = values.length;\n while(start < end && values[start] < min){\n start++;\n }\n while(end > start && values[end - 1] > max){\n end--;\n }\n return start > 0 || end < values.length ? values.slice(start, end) : values;\n}\nconst arrayEvents = [\n 'push',\n 'pop',\n 'shift',\n 'splice',\n 'unshift'\n];\nfunction listenArrayEvents(array, listener) {\n if (array._chartjs) {\n array._chartjs.listeners.push(listener);\n return;\n }\n Object.defineProperty(array, '_chartjs', {\n configurable: true,\n enumerable: false,\n value: {\n listeners: [\n listener\n ]\n }\n });\n arrayEvents.forEach((key)=>{\n const method = '_onData' + _capitalize(key);\n const base = array[key];\n Object.defineProperty(array, key, {\n configurable: true,\n enumerable: false,\n value (...args) {\n const res = base.apply(this, args);\n array._chartjs.listeners.forEach((object)=>{\n if (typeof object[method] === 'function') {\n object[method](...args);\n }\n });\n return res;\n }\n });\n });\n}\nfunction unlistenArrayEvents(array, listener) {\n const stub = array._chartjs;\n if (!stub) {\n return;\n }\n const listeners = stub.listeners;\n const index = listeners.indexOf(listener);\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n if (listeners.length > 0) {\n return;\n }\n arrayEvents.forEach((key)=>{\n delete array[key];\n });\n delete array._chartjs;\n}\n/**\n * @param items\n */ function _arrayUnique(items) {\n const set = new Set(items);\n if (set.size === items.length) {\n return items;\n }\n return Array.from(set);\n}\n\nfunction fontString(pixelSize, fontStyle, fontFamily) {\n return fontStyle + ' ' + pixelSize + 'px ' + fontFamily;\n}\n/**\n* Request animation polyfill\n*/ const requestAnimFrame = function() {\n if (typeof window === 'undefined') {\n return function(callback) {\n return callback();\n };\n }\n return window.requestAnimationFrame;\n}();\n/**\n * Throttles calling `fn` once per animation frame\n * Latest arguments are used on the actual call\n */ function throttled(fn, thisArg) {\n let argsToUse = [];\n let ticking = false;\n return function(...args) {\n // Save the args for use later\n argsToUse = args;\n if (!ticking) {\n ticking = true;\n requestAnimFrame.call(window, ()=>{\n ticking = false;\n fn.apply(thisArg, argsToUse);\n });\n }\n };\n}\n/**\n * Debounces calling `fn` for `delay` ms\n */ function debounce(fn, delay) {\n let timeout;\n return function(...args) {\n if (delay) {\n clearTimeout(timeout);\n timeout = setTimeout(fn, delay, args);\n } else {\n fn.apply(this, args);\n }\n return delay;\n };\n}\n/**\n * Converts 'start' to 'left', 'end' to 'right' and others to 'center'\n * @private\n */ const _toLeftRightCenter = (align)=>align === 'start' ? 'left' : align === 'end' ? 'right' : 'center';\n/**\n * Returns `start`, `end` or `(start + end) / 2` depending on `align`. Defaults to `center`\n * @private\n */ const _alignStartEnd = (align, start, end)=>align === 'start' ? start : align === 'end' ? end : (start + end) / 2;\n/**\n * Returns `left`, `right` or `(left + right) / 2` depending on `align`. Defaults to `left`\n * @private\n */ const _textX = (align, left, right, rtl)=>{\n const check = rtl ? 'left' : 'right';\n return align === check ? right : align === 'center' ? (left + right) / 2 : left;\n};\n/**\n * Return start and count of visible points.\n * @private\n */ function _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled) {\n const pointCount = points.length;\n let start = 0;\n let count = pointCount;\n if (meta._sorted) {\n const { iScale , vScale , _parsed } = meta;\n const spanGaps = meta.dataset ? meta.dataset.options ? meta.dataset.options.spanGaps : null : null;\n const axis = iScale.axis;\n const { min , max , minDefined , maxDefined } = iScale.getUserBounds();\n if (minDefined) {\n start = Math.min(// @ts-expect-error Need to type _parsed\n _lookupByKey(_parsed, axis, min).lo, // @ts-expect-error Need to fix types on _lookupByKey\n animationsDisabled ? pointCount : _lookupByKey(points, axis, iScale.getPixelForValue(min)).lo);\n if (spanGaps) {\n const distanceToDefinedLo = _parsed.slice(0, start + 1).reverse().findIndex((point)=>!isNullOrUndef(point[vScale.axis]));\n start -= Math.max(0, distanceToDefinedLo);\n }\n start = _limitValue(start, 0, pointCount - 1);\n }\n if (maxDefined) {\n let end = Math.max(// @ts-expect-error Need to type _parsed\n _lookupByKey(_parsed, iScale.axis, max, true).hi + 1, // @ts-expect-error Need to fix types on _lookupByKey\n animationsDisabled ? 0 : _lookupByKey(points, axis, iScale.getPixelForValue(max), true).hi + 1);\n if (spanGaps) {\n const distanceToDefinedHi = _parsed.slice(end - 1).findIndex((point)=>!isNullOrUndef(point[vScale.axis]));\n end += Math.max(0, distanceToDefinedHi);\n }\n count = _limitValue(end, start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n }\n return {\n start,\n count\n };\n}\n/**\n * Checks if the scale ranges have changed.\n * @param {object} meta - dataset meta.\n * @returns {boolean}\n * @private\n */ function _scaleRangesChanged(meta) {\n const { xScale , yScale , _scaleRanges } = meta;\n const newRanges = {\n xmin: xScale.min,\n xmax: xScale.max,\n ymin: yScale.min,\n ymax: yScale.max\n };\n if (!_scaleRanges) {\n meta._scaleRanges = newRanges;\n return true;\n }\n const changed = _scaleRanges.xmin !== xScale.min || _scaleRanges.xmax !== xScale.max || _scaleRanges.ymin !== yScale.min || _scaleRanges.ymax !== yScale.max;\n Object.assign(_scaleRanges, newRanges);\n return changed;\n}\n\nconst atEdge = (t)=>t === 0 || t === 1;\nconst elasticIn = (t, s, p)=>-(Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * TAU / p));\nconst elasticOut = (t, s, p)=>Math.pow(2, -10 * t) * Math.sin((t - s) * TAU / p) + 1;\n/**\n * Easing functions adapted from Robert Penner's easing equations.\n * @namespace Chart.helpers.easing.effects\n * @see http://www.robertpenner.com/easing/\n */ const effects = {\n linear: (t)=>t,\n easeInQuad: (t)=>t * t,\n easeOutQuad: (t)=>-t * (t - 2),\n easeInOutQuad: (t)=>(t /= 0.5) < 1 ? 0.5 * t * t : -0.5 * (--t * (t - 2) - 1),\n easeInCubic: (t)=>t * t * t,\n easeOutCubic: (t)=>(t -= 1) * t * t + 1,\n easeInOutCubic: (t)=>(t /= 0.5) < 1 ? 0.5 * t * t * t : 0.5 * ((t -= 2) * t * t + 2),\n easeInQuart: (t)=>t * t * t * t,\n easeOutQuart: (t)=>-((t -= 1) * t * t * t - 1),\n easeInOutQuart: (t)=>(t /= 0.5) < 1 ? 0.5 * t * t * t * t : -0.5 * ((t -= 2) * t * t * t - 2),\n easeInQuint: (t)=>t * t * t * t * t,\n easeOutQuint: (t)=>(t -= 1) * t * t * t * t + 1,\n easeInOutQuint: (t)=>(t /= 0.5) < 1 ? 0.5 * t * t * t * t * t : 0.5 * ((t -= 2) * t * t * t * t + 2),\n easeInSine: (t)=>-Math.cos(t * HALF_PI) + 1,\n easeOutSine: (t)=>Math.sin(t * HALF_PI),\n easeInOutSine: (t)=>-0.5 * (Math.cos(PI * t) - 1),\n easeInExpo: (t)=>t === 0 ? 0 : Math.pow(2, 10 * (t - 1)),\n easeOutExpo: (t)=>t === 1 ? 1 : -Math.pow(2, -10 * t) + 1,\n easeInOutExpo: (t)=>atEdge(t) ? t : t < 0.5 ? 0.5 * Math.pow(2, 10 * (t * 2 - 1)) : 0.5 * (-Math.pow(2, -10 * (t * 2 - 1)) + 2),\n easeInCirc: (t)=>t >= 1 ? t : -(Math.sqrt(1 - t * t) - 1),\n easeOutCirc: (t)=>Math.sqrt(1 - (t -= 1) * t),\n easeInOutCirc: (t)=>(t /= 0.5) < 1 ? -0.5 * (Math.sqrt(1 - t * t) - 1) : 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1),\n easeInElastic: (t)=>atEdge(t) ? t : elasticIn(t, 0.075, 0.3),\n easeOutElastic: (t)=>atEdge(t) ? t : elasticOut(t, 0.075, 0.3),\n easeInOutElastic (t) {\n const s = 0.1125;\n const p = 0.45;\n return atEdge(t) ? t : t < 0.5 ? 0.5 * elasticIn(t * 2, s, p) : 0.5 + 0.5 * elasticOut(t * 2 - 1, s, p);\n },\n easeInBack (t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n },\n easeOutBack (t) {\n const s = 1.70158;\n return (t -= 1) * t * ((s + 1) * t + s) + 1;\n },\n easeInOutBack (t) {\n let s = 1.70158;\n if ((t /= 0.5) < 1) {\n return 0.5 * (t * t * (((s *= 1.525) + 1) * t - s));\n }\n return 0.5 * ((t -= 2) * t * (((s *= 1.525) + 1) * t + s) + 2);\n },\n easeInBounce: (t)=>1 - effects.easeOutBounce(1 - t),\n easeOutBounce (t) {\n const m = 7.5625;\n const d = 2.75;\n if (t < 1 / d) {\n return m * t * t;\n }\n if (t < 2 / d) {\n return m * (t -= 1.5 / d) * t + 0.75;\n }\n if (t < 2.5 / d) {\n return m * (t -= 2.25 / d) * t + 0.9375;\n }\n return m * (t -= 2.625 / d) * t + 0.984375;\n },\n easeInOutBounce: (t)=>t < 0.5 ? effects.easeInBounce(t * 2) * 0.5 : effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5\n};\n\nfunction isPatternOrGradient(value) {\n if (value && typeof value === 'object') {\n const type = value.toString();\n return type === '[object CanvasPattern]' || type === '[object CanvasGradient]';\n }\n return false;\n}\nfunction color(value) {\n return isPatternOrGradient(value) ? value : new Color(value);\n}\nfunction getHoverColor(value) {\n return isPatternOrGradient(value) ? value : new Color(value).saturate(0.5).darken(0.1).hexString();\n}\n\nconst numbers = [\n 'x',\n 'y',\n 'borderWidth',\n 'radius',\n 'tension'\n];\nconst colors = [\n 'color',\n 'borderColor',\n 'backgroundColor'\n];\nfunction applyAnimationsDefaults(defaults) {\n defaults.set('animation', {\n delay: undefined,\n duration: 1000,\n easing: 'easeOutQuart',\n fn: undefined,\n from: undefined,\n loop: undefined,\n to: undefined,\n type: undefined\n });\n defaults.describe('animation', {\n _fallback: false,\n _indexable: false,\n _scriptable: (name)=>name !== 'onProgress' && name !== 'onComplete' && name !== 'fn'\n });\n defaults.set('animations', {\n colors: {\n type: 'color',\n properties: colors\n },\n numbers: {\n type: 'number',\n properties: numbers\n }\n });\n defaults.describe('animations', {\n _fallback: 'animation'\n });\n defaults.set('transitions', {\n active: {\n animation: {\n duration: 400\n }\n },\n resize: {\n animation: {\n duration: 0\n }\n },\n show: {\n animations: {\n colors: {\n from: 'transparent'\n },\n visible: {\n type: 'boolean',\n duration: 0\n }\n }\n },\n hide: {\n animations: {\n colors: {\n to: 'transparent'\n },\n visible: {\n type: 'boolean',\n easing: 'linear',\n fn: (v)=>v | 0\n }\n }\n }\n });\n}\n\nfunction applyLayoutsDefaults(defaults) {\n defaults.set('layout', {\n autoPadding: true,\n padding: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }\n });\n}\n\nconst intlCache = new Map();\nfunction getNumberFormat(locale, options) {\n options = options || {};\n const cacheKey = locale + JSON.stringify(options);\n let formatter = intlCache.get(cacheKey);\n if (!formatter) {\n formatter = new Intl.NumberFormat(locale, options);\n intlCache.set(cacheKey, formatter);\n }\n return formatter;\n}\nfunction formatNumber(num, locale, options) {\n return getNumberFormat(locale, options).format(num);\n}\n\nconst formatters = {\n values (value) {\n return isArray(value) ? value : '' + value;\n },\n numeric (tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const locale = this.chart.options.locale;\n let notation;\n let delta = tickValue;\n if (ticks.length > 1) {\n const maxTick = Math.max(Math.abs(ticks[0].value), Math.abs(ticks[ticks.length - 1].value));\n if (maxTick < 1e-4 || maxTick > 1e+15) {\n notation = 'scientific';\n }\n delta = calculateDelta(tickValue, ticks);\n }\n const logDelta = log10(Math.abs(delta));\n const numDecimal = isNaN(logDelta) ? 1 : Math.max(Math.min(-1 * Math.floor(logDelta), 20), 0);\n const options = {\n notation,\n minimumFractionDigits: numDecimal,\n maximumFractionDigits: numDecimal\n };\n Object.assign(options, this.options.ticks.format);\n return formatNumber(tickValue, locale, options);\n },\n logarithmic (tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const remain = ticks[index].significand || tickValue / Math.pow(10, Math.floor(log10(tickValue)));\n if ([\n 1,\n 2,\n 3,\n 5,\n 10,\n 15\n ].includes(remain) || index > 0.8 * ticks.length) {\n return formatters.numeric.call(this, tickValue, index, ticks);\n }\n return '';\n }\n};\nfunction calculateDelta(tickValue, ticks) {\n let delta = ticks.length > 3 ? ticks[2].value - ticks[1].value : ticks[1].value - ticks[0].value;\n if (Math.abs(delta) >= 1 && tickValue !== Math.floor(tickValue)) {\n delta = tickValue - Math.floor(tickValue);\n }\n return delta;\n}\n var Ticks = {\n formatters\n};\n\nfunction applyScaleDefaults(defaults) {\n defaults.set('scale', {\n display: true,\n offset: false,\n reverse: false,\n beginAtZero: false,\n bounds: 'ticks',\n clip: true,\n grace: 0,\n grid: {\n display: true,\n lineWidth: 1,\n drawOnChartArea: true,\n drawTicks: true,\n tickLength: 8,\n tickWidth: (_ctx, options)=>options.lineWidth,\n tickColor: (_ctx, options)=>options.color,\n offset: false\n },\n border: {\n display: true,\n dash: [],\n dashOffset: 0.0,\n width: 1\n },\n title: {\n display: false,\n text: '',\n padding: {\n top: 4,\n bottom: 4\n }\n },\n ticks: {\n minRotation: 0,\n maxRotation: 50,\n mirror: false,\n textStrokeWidth: 0,\n textStrokeColor: '',\n padding: 3,\n display: true,\n autoSkip: true,\n autoSkipPadding: 3,\n labelOffset: 0,\n callback: Ticks.formatters.values,\n minor: {},\n major: {},\n align: 'center',\n crossAlign: 'near',\n showLabelBackdrop: false,\n backdropColor: 'rgba(255, 255, 255, 0.75)',\n backdropPadding: 2\n }\n });\n defaults.route('scale.ticks', 'color', '', 'color');\n defaults.route('scale.grid', 'color', '', 'borderColor');\n defaults.route('scale.border', 'color', '', 'borderColor');\n defaults.route('scale.title', 'color', '', 'color');\n defaults.describe('scale', {\n _fallback: false,\n _scriptable: (name)=>!name.startsWith('before') && !name.startsWith('after') && name !== 'callback' && name !== 'parser',\n _indexable: (name)=>name !== 'borderDash' && name !== 'tickBorderDash' && name !== 'dash'\n });\n defaults.describe('scales', {\n _fallback: 'scale'\n });\n defaults.describe('scale.ticks', {\n _scriptable: (name)=>name !== 'backdropPadding' && name !== 'callback',\n _indexable: (name)=>name !== 'backdropPadding'\n });\n}\n\nconst overrides = Object.create(null);\nconst descriptors = Object.create(null);\n function getScope$1(node, key) {\n if (!key) {\n return node;\n }\n const keys = key.split('.');\n for(let i = 0, n = keys.length; i < n; ++i){\n const k = keys[i];\n node = node[k] || (node[k] = Object.create(null));\n }\n return node;\n}\nfunction set(root, scope, values) {\n if (typeof scope === 'string') {\n return merge(getScope$1(root, scope), values);\n }\n return merge(getScope$1(root, ''), scope);\n}\n class Defaults {\n constructor(_descriptors, _appliers){\n this.animation = undefined;\n this.backgroundColor = 'rgba(0,0,0,0.1)';\n this.borderColor = 'rgba(0,0,0,0.1)';\n this.color = '#666';\n this.datasets = {};\n this.devicePixelRatio = (context)=>context.chart.platform.getDevicePixelRatio();\n this.elements = {};\n this.events = [\n 'mousemove',\n 'mouseout',\n 'click',\n 'touchstart',\n 'touchmove'\n ];\n this.font = {\n family: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n size: 12,\n style: 'normal',\n lineHeight: 1.2,\n weight: null\n };\n this.hover = {};\n this.hoverBackgroundColor = (ctx, options)=>getHoverColor(options.backgroundColor);\n this.hoverBorderColor = (ctx, options)=>getHoverColor(options.borderColor);\n this.hoverColor = (ctx, options)=>getHoverColor(options.color);\n this.indexAxis = 'x';\n this.interaction = {\n mode: 'nearest',\n intersect: true,\n includeInvisible: false\n };\n this.maintainAspectRatio = true;\n this.onHover = null;\n this.onClick = null;\n this.parsing = true;\n this.plugins = {};\n this.responsive = true;\n this.scale = undefined;\n this.scales = {};\n this.showLine = true;\n this.drawActiveElementsOnTop = true;\n this.describe(_descriptors);\n this.apply(_appliers);\n }\n set(scope, values) {\n return set(this, scope, values);\n }\n get(scope) {\n return getScope$1(this, scope);\n }\n describe(scope, values) {\n return set(descriptors, scope, values);\n }\n override(scope, values) {\n return set(overrides, scope, values);\n }\n route(scope, name, targetScope, targetName) {\n const scopeObject = getScope$1(this, scope);\n const targetScopeObject = getScope$1(this, targetScope);\n const privateName = '_' + name;\n Object.defineProperties(scopeObject, {\n [privateName]: {\n value: scopeObject[name],\n writable: true\n },\n [name]: {\n enumerable: true,\n get () {\n const local = this[privateName];\n const target = targetScopeObject[targetName];\n if (isObject(local)) {\n return Object.assign({}, target, local);\n }\n return valueOrDefault(local, target);\n },\n set (value) {\n this[privateName] = value;\n }\n }\n });\n }\n apply(appliers) {\n appliers.forEach((apply)=>apply(this));\n }\n}\nvar defaults = /* #__PURE__ */ new Defaults({\n _scriptable: (name)=>!name.startsWith('on'),\n _indexable: (name)=>name !== 'events',\n hover: {\n _fallback: 'interaction'\n },\n interaction: {\n _scriptable: false,\n _indexable: false\n }\n}, [\n applyAnimationsDefaults,\n applyLayoutsDefaults,\n applyScaleDefaults\n]);\n\n/**\n * Converts the given font object into a CSS font string.\n * @param font - A font object.\n * @return The CSS font string. See https://developer.mozilla.org/en-US/docs/Web/CSS/font\n * @private\n */ function toFontString(font) {\n if (!font || isNullOrUndef(font.size) || isNullOrUndef(font.family)) {\n return null;\n }\n return (font.style ? font.style + ' ' : '') + (font.weight ? font.weight + ' ' : '') + font.size + 'px ' + font.family;\n}\n/**\n * @private\n */ function _measureText(ctx, data, gc, longest, string) {\n let textWidth = data[string];\n if (!textWidth) {\n textWidth = data[string] = ctx.measureText(string).width;\n gc.push(string);\n }\n if (textWidth > longest) {\n longest = textWidth;\n }\n return longest;\n}\n/**\n * @private\n */ // eslint-disable-next-line complexity\nfunction _longestText(ctx, font, arrayOfThings, cache) {\n cache = cache || {};\n let data = cache.data = cache.data || {};\n let gc = cache.garbageCollect = cache.garbageCollect || [];\n if (cache.font !== font) {\n data = cache.data = {};\n gc = cache.garbageCollect = [];\n cache.font = font;\n }\n ctx.save();\n ctx.font = font;\n let longest = 0;\n const ilen = arrayOfThings.length;\n let i, j, jlen, thing, nestedThing;\n for(i = 0; i < ilen; i++){\n thing = arrayOfThings[i];\n // Undefined strings and arrays should not be measured\n if (thing !== undefined && thing !== null && !isArray(thing)) {\n longest = _measureText(ctx, data, gc, longest, thing);\n } else if (isArray(thing)) {\n // if it is an array lets measure each element\n // to do maybe simplify this function a bit so we can do this more recursively?\n for(j = 0, jlen = thing.length; j < jlen; j++){\n nestedThing = thing[j];\n // Undefined strings and arrays should not be measured\n if (nestedThing !== undefined && nestedThing !== null && !isArray(nestedThing)) {\n longest = _measureText(ctx, data, gc, longest, nestedThing);\n }\n }\n }\n }\n ctx.restore();\n const gcLen = gc.length / 2;\n if (gcLen > arrayOfThings.length) {\n for(i = 0; i < gcLen; i++){\n delete data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n return longest;\n}\n/**\n * Returns the aligned pixel value to avoid anti-aliasing blur\n * @param chart - The chart instance.\n * @param pixel - A pixel value.\n * @param width - The width of the element.\n * @returns The aligned pixel value.\n * @private\n */ function _alignPixel(chart, pixel, width) {\n const devicePixelRatio = chart.currentDevicePixelRatio;\n const halfWidth = width !== 0 ? Math.max(width / 2, 0.5) : 0;\n return Math.round((pixel - halfWidth) * devicePixelRatio) / devicePixelRatio + halfWidth;\n}\n/**\n * Clears the entire canvas.\n */ function clearCanvas(canvas, ctx) {\n if (!ctx && !canvas) {\n return;\n }\n ctx = ctx || canvas.getContext('2d');\n ctx.save();\n // canvas.width and canvas.height do not consider the canvas transform,\n // while clearRect does\n ctx.resetTransform();\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.restore();\n}\nfunction drawPoint(ctx, options, x, y) {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n drawPointLegend(ctx, options, x, y, null);\n}\n// eslint-disable-next-line complexity\nfunction drawPointLegend(ctx, options, x, y, w) {\n let type, xOffset, yOffset, size, cornerRadius, width, xOffsetW, yOffsetW;\n const style = options.pointStyle;\n const rotation = options.rotation;\n const radius = options.radius;\n let rad = (rotation || 0) * RAD_PER_DEG;\n if (style && typeof style === 'object') {\n type = style.toString();\n if (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n ctx.save();\n ctx.translate(x, y);\n ctx.rotate(rad);\n ctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\n ctx.restore();\n return;\n }\n }\n if (isNaN(radius) || radius <= 0) {\n return;\n }\n ctx.beginPath();\n switch(style){\n // Default includes circle\n default:\n if (w) {\n ctx.ellipse(x, y, w / 2, radius, 0, 0, TAU);\n } else {\n ctx.arc(x, y, radius, 0, TAU);\n }\n ctx.closePath();\n break;\n case 'triangle':\n width = w ? w / 2 : radius;\n ctx.moveTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * width, y - Math.cos(rad) * radius);\n ctx.closePath();\n break;\n case 'rectRounded':\n // NOTE: the rounded rect implementation changed to use `arc` instead of\n // `quadraticCurveTo` since it generates better results when rect is\n // almost a circle. 0.516 (instead of 0.5) produces results with visually\n // closer proportion to the previous impl and it is inscribed in the\n // circle with `radius`. For more details, see the following PRs:\n // https://github.com/chartjs/Chart.js/issues/5597\n // https://github.com/chartjs/Chart.js/issues/5858\n cornerRadius = radius * 0.516;\n size = radius - cornerRadius;\n xOffset = Math.cos(rad + QUARTER_PI) * size;\n xOffsetW = Math.cos(rad + QUARTER_PI) * (w ? w / 2 - cornerRadius : size);\n yOffset = Math.sin(rad + QUARTER_PI) * size;\n yOffsetW = Math.sin(rad + QUARTER_PI) * (w ? w / 2 - cornerRadius : size);\n ctx.arc(x - xOffsetW, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\n ctx.arc(x + yOffsetW, y - xOffset, cornerRadius, rad - HALF_PI, rad);\n ctx.arc(x + xOffsetW, y + yOffset, cornerRadius, rad, rad + HALF_PI);\n ctx.arc(x - yOffsetW, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\n ctx.closePath();\n break;\n case 'rect':\n if (!rotation) {\n size = Math.SQRT1_2 * radius;\n width = w ? w / 2 : size;\n ctx.rect(x - width, y - size, 2 * width, 2 * size);\n break;\n }\n rad += QUARTER_PI;\n /* falls through */ case 'rectRot':\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n ctx.closePath();\n break;\n case 'crossRot':\n rad += QUARTER_PI;\n /* falls through */ case 'cross':\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.moveTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n break;\n case 'star':\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.moveTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n rad += QUARTER_PI;\n xOffsetW = Math.cos(rad) * (w ? w / 2 : radius);\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n yOffsetW = Math.sin(rad) * (w ? w / 2 : radius);\n ctx.moveTo(x - xOffsetW, y - yOffset);\n ctx.lineTo(x + xOffsetW, y + yOffset);\n ctx.moveTo(x + yOffsetW, y - xOffset);\n ctx.lineTo(x - yOffsetW, y + xOffset);\n break;\n case 'line':\n xOffset = w ? w / 2 : Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n break;\n case 'dash':\n ctx.moveTo(x, y);\n ctx.lineTo(x + Math.cos(rad) * (w ? w / 2 : radius), y + Math.sin(rad) * radius);\n break;\n case false:\n ctx.closePath();\n break;\n }\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n}\n/**\n * Returns true if the point is inside the rectangle\n * @param point - The point to test\n * @param area - The rectangle\n * @param margin - allowed margin\n * @private\n */ function _isPointInArea(point, area, margin) {\n margin = margin || 0.5; // margin - default is to match rounded decimals\n return !area || point && point.x > area.left - margin && point.x < area.right + margin && point.y > area.top - margin && point.y < area.bottom + margin;\n}\nfunction clipArea(ctx, area) {\n ctx.save();\n ctx.beginPath();\n ctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\n ctx.clip();\n}\nfunction unclipArea(ctx) {\n ctx.restore();\n}\n/**\n * @private\n */ function _steppedLineTo(ctx, previous, target, flip, mode) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n if (mode === 'middle') {\n const midpoint = (previous.x + target.x) / 2.0;\n ctx.lineTo(midpoint, previous.y);\n ctx.lineTo(midpoint, target.y);\n } else if (mode === 'after' !== !!flip) {\n ctx.lineTo(previous.x, target.y);\n } else {\n ctx.lineTo(target.x, previous.y);\n }\n ctx.lineTo(target.x, target.y);\n}\n/**\n * @private\n */ function _bezierCurveTo(ctx, previous, target, flip) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n ctx.bezierCurveTo(flip ? previous.cp1x : previous.cp2x, flip ? previous.cp1y : previous.cp2y, flip ? target.cp2x : target.cp1x, flip ? target.cp2y : target.cp1y, target.x, target.y);\n}\nfunction setRenderOpts(ctx, opts) {\n if (opts.translation) {\n ctx.translate(opts.translation[0], opts.translation[1]);\n }\n if (!isNullOrUndef(opts.rotation)) {\n ctx.rotate(opts.rotation);\n }\n if (opts.color) {\n ctx.fillStyle = opts.color;\n }\n if (opts.textAlign) {\n ctx.textAlign = opts.textAlign;\n }\n if (opts.textBaseline) {\n ctx.textBaseline = opts.textBaseline;\n }\n}\nfunction decorateText(ctx, x, y, line, opts) {\n if (opts.strikethrough || opts.underline) {\n /**\n * Now that IE11 support has been dropped, we can use more\n * of the TextMetrics object. The actual bounding boxes\n * are unflagged in Chrome, Firefox, Edge, and Safari so they\n * can be safely used.\n * See https://developer.mozilla.org/en-US/docs/Web/API/TextMetrics#Browser_compatibility\n */ const metrics = ctx.measureText(line);\n const left = x - metrics.actualBoundingBoxLeft;\n const right = x + metrics.actualBoundingBoxRight;\n const top = y - metrics.actualBoundingBoxAscent;\n const bottom = y + metrics.actualBoundingBoxDescent;\n const yDecoration = opts.strikethrough ? (top + bottom) / 2 : bottom;\n ctx.strokeStyle = ctx.fillStyle;\n ctx.beginPath();\n ctx.lineWidth = opts.decorationWidth || 2;\n ctx.moveTo(left, yDecoration);\n ctx.lineTo(right, yDecoration);\n ctx.stroke();\n }\n}\nfunction drawBackdrop(ctx, opts) {\n const oldColor = ctx.fillStyle;\n ctx.fillStyle = opts.color;\n ctx.fillRect(opts.left, opts.top, opts.width, opts.height);\n ctx.fillStyle = oldColor;\n}\n/**\n * Render text onto the canvas\n */ function renderText(ctx, text, x, y, font, opts = {}) {\n const lines = isArray(text) ? text : [\n text\n ];\n const stroke = opts.strokeWidth > 0 && opts.strokeColor !== '';\n let i, line;\n ctx.save();\n ctx.font = font.string;\n setRenderOpts(ctx, opts);\n for(i = 0; i < lines.length; ++i){\n line = lines[i];\n if (opts.backdrop) {\n drawBackdrop(ctx, opts.backdrop);\n }\n if (stroke) {\n if (opts.strokeColor) {\n ctx.strokeStyle = opts.strokeColor;\n }\n if (!isNullOrUndef(opts.strokeWidth)) {\n ctx.lineWidth = opts.strokeWidth;\n }\n ctx.strokeText(line, x, y, opts.maxWidth);\n }\n ctx.fillText(line, x, y, opts.maxWidth);\n decorateText(ctx, x, y, line, opts);\n y += Number(font.lineHeight);\n }\n ctx.restore();\n}\n/**\n * Add a path of a rectangle with rounded corners to the current sub-path\n * @param ctx - Context\n * @param rect - Bounding rect\n */ function addRoundedRectPath(ctx, rect) {\n const { x , y , w , h , radius } = rect;\n // top left arc\n ctx.arc(x + radius.topLeft, y + radius.topLeft, radius.topLeft, 1.5 * PI, PI, true);\n // line from top left to bottom left\n ctx.lineTo(x, y + h - radius.bottomLeft);\n // bottom left arc\n ctx.arc(x + radius.bottomLeft, y + h - radius.bottomLeft, radius.bottomLeft, PI, HALF_PI, true);\n // line from bottom left to bottom right\n ctx.lineTo(x + w - radius.bottomRight, y + h);\n // bottom right arc\n ctx.arc(x + w - radius.bottomRight, y + h - radius.bottomRight, radius.bottomRight, HALF_PI, 0, true);\n // line from bottom right to top right\n ctx.lineTo(x + w, y + radius.topRight);\n // top right arc\n ctx.arc(x + w - radius.topRight, y + radius.topRight, radius.topRight, 0, -HALF_PI, true);\n // line from top right to top left\n ctx.lineTo(x + radius.topLeft, y);\n}\n\nconst LINE_HEIGHT = /^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/;\nconst FONT_STYLE = /^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/;\n/**\n * @alias Chart.helpers.options\n * @namespace\n */ /**\n * Converts the given line height `value` in pixels for a specific font `size`.\n * @param value - The lineHeight to parse (eg. 1.6, '14px', '75%', '1.6em').\n * @param size - The font size (in pixels) used to resolve relative `value`.\n * @returns The effective line height in pixels (size * 1.2 if value is invalid).\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/line-height\n * @since 2.7.0\n */ function toLineHeight(value, size) {\n const matches = ('' + value).match(LINE_HEIGHT);\n if (!matches || matches[1] === 'normal') {\n return size * 1.2;\n }\n value = +matches[2];\n switch(matches[3]){\n case 'px':\n return value;\n case '%':\n value /= 100;\n break;\n }\n return size * value;\n}\nconst numberOrZero = (v)=>+v || 0;\nfunction _readValueToProps(value, props) {\n const ret = {};\n const objProps = isObject(props);\n const keys = objProps ? Object.keys(props) : props;\n const read = isObject(value) ? objProps ? (prop)=>valueOrDefault(value[prop], value[props[prop]]) : (prop)=>value[prop] : ()=>value;\n for (const prop of keys){\n ret[prop] = numberOrZero(read(prop));\n }\n return ret;\n}\n/**\n * Converts the given value into a TRBL object.\n * @param value - If a number, set the value to all TRBL component,\n * else, if an object, use defined properties and sets undefined ones to 0.\n * x / y are shorthands for same value for left/right and top/bottom.\n * @returns The padding values (top, right, bottom, left)\n * @since 3.0.0\n */ function toTRBL(value) {\n return _readValueToProps(value, {\n top: 'y',\n right: 'x',\n bottom: 'y',\n left: 'x'\n });\n}\n/**\n * Converts the given value into a TRBL corners object (similar with css border-radius).\n * @param value - If a number, set the value to all TRBL corner components,\n * else, if an object, use defined properties and sets undefined ones to 0.\n * @returns The TRBL corner values (topLeft, topRight, bottomLeft, bottomRight)\n * @since 3.0.0\n */ function toTRBLCorners(value) {\n return _readValueToProps(value, [\n 'topLeft',\n 'topRight',\n 'bottomLeft',\n 'bottomRight'\n ]);\n}\n/**\n * Converts the given value into a padding object with pre-computed width/height.\n * @param value - If a number, set the value to all TRBL component,\n * else, if an object, use defined properties and sets undefined ones to 0.\n * x / y are shorthands for same value for left/right and top/bottom.\n * @returns The padding values (top, right, bottom, left, width, height)\n * @since 2.7.0\n */ function toPadding(value) {\n const obj = toTRBL(value);\n obj.width = obj.left + obj.right;\n obj.height = obj.top + obj.bottom;\n return obj;\n}\n/**\n * Parses font options and returns the font object.\n * @param options - A object that contains font options to be parsed.\n * @param fallback - A object that contains fallback font options.\n * @return The font object.\n * @private\n */ function toFont(options, fallback) {\n options = options || {};\n fallback = fallback || defaults.font;\n let size = valueOrDefault(options.size, fallback.size);\n if (typeof size === 'string') {\n size = parseInt(size, 10);\n }\n let style = valueOrDefault(options.style, fallback.style);\n if (style && !('' + style).match(FONT_STYLE)) {\n console.warn('Invalid font style specified: \"' + style + '\"');\n style = undefined;\n }\n const font = {\n family: valueOrDefault(options.family, fallback.family),\n lineHeight: toLineHeight(valueOrDefault(options.lineHeight, fallback.lineHeight), size),\n size,\n style,\n weight: valueOrDefault(options.weight, fallback.weight),\n string: ''\n };\n font.string = toFontString(font);\n return font;\n}\n/**\n * Evaluates the given `inputs` sequentially and returns the first defined value.\n * @param inputs - An array of values, falling back to the last value.\n * @param context - If defined and the current value is a function, the value\n * is called with `context` as first argument and the result becomes the new input.\n * @param index - If defined and the current value is an array, the value\n * at `index` become the new input.\n * @param info - object to return information about resolution in\n * @param info.cacheable - Will be set to `false` if option is not cacheable.\n * @since 2.7.0\n */ function resolve(inputs, context, index, info) {\n let cacheable = true;\n let i, ilen, value;\n for(i = 0, ilen = inputs.length; i < ilen; ++i){\n value = inputs[i];\n if (value === undefined) {\n continue;\n }\n if (context !== undefined && typeof value === 'function') {\n value = value(context);\n cacheable = false;\n }\n if (index !== undefined && isArray(value)) {\n value = value[index % value.length];\n cacheable = false;\n }\n if (value !== undefined) {\n if (info && !cacheable) {\n info.cacheable = false;\n }\n return value;\n }\n }\n}\n/**\n * @param minmax\n * @param grace\n * @param beginAtZero\n * @private\n */ function _addGrace(minmax, grace, beginAtZero) {\n const { min , max } = minmax;\n const change = toDimension(grace, (max - min) / 2);\n const keepZero = (value, add)=>beginAtZero && value === 0 ? 0 : value + add;\n return {\n min: keepZero(min, -Math.abs(change)),\n max: keepZero(max, change)\n };\n}\nfunction createContext(parentContext, context) {\n return Object.assign(Object.create(parentContext), context);\n}\n\n/**\n * Creates a Proxy for resolving raw values for options.\n * @param scopes - The option scopes to look for values, in resolution order\n * @param prefixes - The prefixes for values, in resolution order.\n * @param rootScopes - The root option scopes\n * @param fallback - Parent scopes fallback\n * @param getTarget - callback for getting the target for changed values\n * @returns Proxy\n * @private\n */ function _createResolver(scopes, prefixes = [\n ''\n], rootScopes, fallback, getTarget = ()=>scopes[0]) {\n const finalRootScopes = rootScopes || scopes;\n if (typeof fallback === 'undefined') {\n fallback = _resolve('_fallback', scopes);\n }\n const cache = {\n [Symbol.toStringTag]: 'Object',\n _cacheable: true,\n _scopes: scopes,\n _rootScopes: finalRootScopes,\n _fallback: fallback,\n _getTarget: getTarget,\n override: (scope)=>_createResolver([\n scope,\n ...scopes\n ], prefixes, finalRootScopes, fallback)\n };\n return new Proxy(cache, {\n /**\n * A trap for the delete operator.\n */ deleteProperty (target, prop) {\n delete target[prop]; // remove from cache\n delete target._keys; // remove cached keys\n delete scopes[0][prop]; // remove from top level scope\n return true;\n },\n /**\n * A trap for getting property values.\n */ get (target, prop) {\n return _cached(target, prop, ()=>_resolveWithPrefixes(prop, prefixes, scopes, target));\n },\n /**\n * A trap for Object.getOwnPropertyDescriptor.\n * Also used by Object.hasOwnProperty.\n */ getOwnPropertyDescriptor (target, prop) {\n return Reflect.getOwnPropertyDescriptor(target._scopes[0], prop);\n },\n /**\n * A trap for Object.getPrototypeOf.\n */ getPrototypeOf () {\n return Reflect.getPrototypeOf(scopes[0]);\n },\n /**\n * A trap for the in operator.\n */ has (target, prop) {\n return getKeysFromAllScopes(target).includes(prop);\n },\n /**\n * A trap for Object.getOwnPropertyNames and Object.getOwnPropertySymbols.\n */ ownKeys (target) {\n return getKeysFromAllScopes(target);\n },\n /**\n * A trap for setting property values.\n */ set (target, prop, value) {\n const storage = target._storage || (target._storage = getTarget());\n target[prop] = storage[prop] = value; // set to top level scope + cache\n delete target._keys; // remove cached keys\n return true;\n }\n });\n}\n/**\n * Returns an Proxy for resolving option values with context.\n * @param proxy - The Proxy returned by `_createResolver`\n * @param context - Context object for scriptable/indexable options\n * @param subProxy - The proxy provided for scriptable options\n * @param descriptorDefaults - Defaults for descriptors\n * @private\n */ function _attachContext(proxy, context, subProxy, descriptorDefaults) {\n const cache = {\n _cacheable: false,\n _proxy: proxy,\n _context: context,\n _subProxy: subProxy,\n _stack: new Set(),\n _descriptors: _descriptors(proxy, descriptorDefaults),\n setContext: (ctx)=>_attachContext(proxy, ctx, subProxy, descriptorDefaults),\n override: (scope)=>_attachContext(proxy.override(scope), context, subProxy, descriptorDefaults)\n };\n return new Proxy(cache, {\n /**\n * A trap for the delete operator.\n */ deleteProperty (target, prop) {\n delete target[prop]; // remove from cache\n delete proxy[prop]; // remove from proxy\n return true;\n },\n /**\n * A trap for getting property values.\n */ get (target, prop, receiver) {\n return _cached(target, prop, ()=>_resolveWithContext(target, prop, receiver));\n },\n /**\n * A trap for Object.getOwnPropertyDescriptor.\n * Also used by Object.hasOwnProperty.\n */ getOwnPropertyDescriptor (target, prop) {\n return target._descriptors.allKeys ? Reflect.has(proxy, prop) ? {\n enumerable: true,\n configurable: true\n } : undefined : Reflect.getOwnPropertyDescriptor(proxy, prop);\n },\n /**\n * A trap for Object.getPrototypeOf.\n */ getPrototypeOf () {\n return Reflect.getPrototypeOf(proxy);\n },\n /**\n * A trap for the in operator.\n */ has (target, prop) {\n return Reflect.has(proxy, prop);\n },\n /**\n * A trap for Object.getOwnPropertyNames and Object.getOwnPropertySymbols.\n */ ownKeys () {\n return Reflect.ownKeys(proxy);\n },\n /**\n * A trap for setting property values.\n */ set (target, prop, value) {\n proxy[prop] = value; // set to proxy\n delete target[prop]; // remove from cache\n return true;\n }\n });\n}\n/**\n * @private\n */ function _descriptors(proxy, defaults = {\n scriptable: true,\n indexable: true\n}) {\n const { _scriptable =defaults.scriptable , _indexable =defaults.indexable , _allKeys =defaults.allKeys } = proxy;\n return {\n allKeys: _allKeys,\n scriptable: _scriptable,\n indexable: _indexable,\n isScriptable: isFunction(_scriptable) ? _scriptable : ()=>_scriptable,\n isIndexable: isFunction(_indexable) ? _indexable : ()=>_indexable\n };\n}\nconst readKey = (prefix, name)=>prefix ? prefix + _capitalize(name) : name;\nconst needsSubResolver = (prop, value)=>isObject(value) && prop !== 'adapters' && (Object.getPrototypeOf(value) === null || value.constructor === Object);\nfunction _cached(target, prop, resolve) {\n if (Object.prototype.hasOwnProperty.call(target, prop) || prop === 'constructor') {\n return target[prop];\n }\n const value = resolve();\n // cache the resolved value\n target[prop] = value;\n return value;\n}\nfunction _resolveWithContext(target, prop, receiver) {\n const { _proxy , _context , _subProxy , _descriptors: descriptors } = target;\n let value = _proxy[prop]; // resolve from proxy\n // resolve with context\n if (isFunction(value) && descriptors.isScriptable(prop)) {\n value = _resolveScriptable(prop, value, target, receiver);\n }\n if (isArray(value) && value.length) {\n value = _resolveArray(prop, value, target, descriptors.isIndexable);\n }\n if (needsSubResolver(prop, value)) {\n // if the resolved value is an object, create a sub resolver for it\n value = _attachContext(value, _context, _subProxy && _subProxy[prop], descriptors);\n }\n return value;\n}\nfunction _resolveScriptable(prop, getValue, target, receiver) {\n const { _proxy , _context , _subProxy , _stack } = target;\n if (_stack.has(prop)) {\n throw new Error('Recursion detected: ' + Array.from(_stack).join('->') + '->' + prop);\n }\n _stack.add(prop);\n let value = getValue(_context, _subProxy || receiver);\n _stack.delete(prop);\n if (needsSubResolver(prop, value)) {\n // When scriptable option returns an object, create a resolver on that.\n value = createSubResolver(_proxy._scopes, _proxy, prop, value);\n }\n return value;\n}\nfunction _resolveArray(prop, value, target, isIndexable) {\n const { _proxy , _context , _subProxy , _descriptors: descriptors } = target;\n if (typeof _context.index !== 'undefined' && isIndexable(prop)) {\n return value[_context.index % value.length];\n } else if (isObject(value[0])) {\n // Array of objects, return array or resolvers\n const arr = value;\n const scopes = _proxy._scopes.filter((s)=>s !== arr);\n value = [];\n for (const item of arr){\n const resolver = createSubResolver(scopes, _proxy, prop, item);\n value.push(_attachContext(resolver, _context, _subProxy && _subProxy[prop], descriptors));\n }\n }\n return value;\n}\nfunction resolveFallback(fallback, prop, value) {\n return isFunction(fallback) ? fallback(prop, value) : fallback;\n}\nconst getScope = (key, parent)=>key === true ? parent : typeof key === 'string' ? resolveObjectKey(parent, key) : undefined;\nfunction addScopes(set, parentScopes, key, parentFallback, value) {\n for (const parent of parentScopes){\n const scope = getScope(key, parent);\n if (scope) {\n set.add(scope);\n const fallback = resolveFallback(scope._fallback, key, value);\n if (typeof fallback !== 'undefined' && fallback !== key && fallback !== parentFallback) {\n // When we reach the descriptor that defines a new _fallback, return that.\n // The fallback will resume to that new scope.\n return fallback;\n }\n } else if (scope === false && typeof parentFallback !== 'undefined' && key !== parentFallback) {\n // Fallback to `false` results to `false`, when falling back to different key.\n // For example `interaction` from `hover` or `plugins.tooltip` and `animation` from `animations`\n return null;\n }\n }\n return false;\n}\nfunction createSubResolver(parentScopes, resolver, prop, value) {\n const rootScopes = resolver._rootScopes;\n const fallback = resolveFallback(resolver._fallback, prop, value);\n const allScopes = [\n ...parentScopes,\n ...rootScopes\n ];\n const set = new Set();\n set.add(value);\n let key = addScopesFromKey(set, allScopes, prop, fallback || prop, value);\n if (key === null) {\n return false;\n }\n if (typeof fallback !== 'undefined' && fallback !== prop) {\n key = addScopesFromKey(set, allScopes, fallback, key, value);\n if (key === null) {\n return false;\n }\n }\n return _createResolver(Array.from(set), [\n ''\n ], rootScopes, fallback, ()=>subGetTarget(resolver, prop, value));\n}\nfunction addScopesFromKey(set, allScopes, key, fallback, item) {\n while(key){\n key = addScopes(set, allScopes, key, fallback, item);\n }\n return key;\n}\nfunction subGetTarget(resolver, prop, value) {\n const parent = resolver._getTarget();\n if (!(prop in parent)) {\n parent[prop] = {};\n }\n const target = parent[prop];\n if (isArray(target) && isObject(value)) {\n // For array of objects, the object is used to store updated values\n return value;\n }\n return target || {};\n}\nfunction _resolveWithPrefixes(prop, prefixes, scopes, proxy) {\n let value;\n for (const prefix of prefixes){\n value = _resolve(readKey(prefix, prop), scopes);\n if (typeof value !== 'undefined') {\n return needsSubResolver(prop, value) ? createSubResolver(scopes, proxy, prop, value) : value;\n }\n }\n}\nfunction _resolve(key, scopes) {\n for (const scope of scopes){\n if (!scope) {\n continue;\n }\n const value = scope[key];\n if (typeof value !== 'undefined') {\n return value;\n }\n }\n}\nfunction getKeysFromAllScopes(target) {\n let keys = target._keys;\n if (!keys) {\n keys = target._keys = resolveKeysFromAllScopes(target._scopes);\n }\n return keys;\n}\nfunction resolveKeysFromAllScopes(scopes) {\n const set = new Set();\n for (const scope of scopes){\n for (const key of Object.keys(scope).filter((k)=>!k.startsWith('_'))){\n set.add(key);\n }\n }\n return Array.from(set);\n}\nfunction _parseObjectDataRadialScale(meta, data, start, count) {\n const { iScale } = meta;\n const { key ='r' } = this._parsing;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for(i = 0, ilen = count; i < ilen; ++i){\n index = i + start;\n item = data[index];\n parsed[i] = {\n r: iScale.parse(resolveObjectKey(item, key), index)\n };\n }\n return parsed;\n}\n\nconst EPSILON = Number.EPSILON || 1e-14;\nconst getPoint = (points, i)=>i < points.length && !points[i].skip && points[i];\nconst getValueAxis = (indexAxis)=>indexAxis === 'x' ? 'y' : 'x';\nfunction splineCurve(firstPoint, middlePoint, afterPoint, t) {\n // Props to Rob Spencer at scaled innovation for his post on splining between points\n // http://scaledinnovation.com/analytics/splines/aboutSplines.html\n // This function must also respect \"skipped\" points\n const previous = firstPoint.skip ? middlePoint : firstPoint;\n const current = middlePoint;\n const next = afterPoint.skip ? middlePoint : afterPoint;\n const d01 = distanceBetweenPoints(current, previous);\n const d12 = distanceBetweenPoints(next, current);\n let s01 = d01 / (d01 + d12);\n let s12 = d12 / (d01 + d12);\n // If all points are the same, s01 & s02 will be inf\n s01 = isNaN(s01) ? 0 : s01;\n s12 = isNaN(s12) ? 0 : s12;\n const fa = t * s01; // scaling factor for triangle Ta\n const fb = t * s12;\n return {\n previous: {\n x: current.x - fa * (next.x - previous.x),\n y: current.y - fa * (next.y - previous.y)\n },\n next: {\n x: current.x + fb * (next.x - previous.x),\n y: current.y + fb * (next.y - previous.y)\n }\n };\n}\n/**\n * Adjust tangents to ensure monotonic properties\n */ function monotoneAdjust(points, deltaK, mK) {\n const pointsLen = points.length;\n let alphaK, betaK, tauK, squaredMagnitude, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for(let i = 0; i < pointsLen - 1; ++i){\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent || !pointAfter) {\n continue;\n }\n if (almostEquals(deltaK[i], 0, EPSILON)) {\n mK[i] = mK[i + 1] = 0;\n continue;\n }\n alphaK = mK[i] / deltaK[i];\n betaK = mK[i + 1] / deltaK[i];\n squaredMagnitude = Math.pow(alphaK, 2) + Math.pow(betaK, 2);\n if (squaredMagnitude <= 9) {\n continue;\n }\n tauK = 3 / Math.sqrt(squaredMagnitude);\n mK[i] = alphaK * tauK * deltaK[i];\n mK[i + 1] = betaK * tauK * deltaK[i];\n }\n}\nfunction monotoneCompute(points, mK, indexAxis = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n let delta, pointBefore, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for(let i = 0; i < pointsLen; ++i){\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n const iPixel = pointCurrent[indexAxis];\n const vPixel = pointCurrent[valueAxis];\n if (pointBefore) {\n delta = (iPixel - pointBefore[indexAxis]) / 3;\n pointCurrent[`cp1${indexAxis}`] = iPixel - delta;\n pointCurrent[`cp1${valueAxis}`] = vPixel - delta * mK[i];\n }\n if (pointAfter) {\n delta = (pointAfter[indexAxis] - iPixel) / 3;\n pointCurrent[`cp2${indexAxis}`] = iPixel + delta;\n pointCurrent[`cp2${valueAxis}`] = vPixel + delta * mK[i];\n }\n }\n}\n/**\n * This function calculates Bézier control points in a similar way than |splineCurve|,\n * but preserves monotonicity of the provided data and ensures no local extremums are added\n * between the dataset discrete points due to the interpolation.\n * See : https://en.wikipedia.org/wiki/Monotone_cubic_interpolation\n */ function splineCurveMonotone(points, indexAxis = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n const deltaK = Array(pointsLen).fill(0);\n const mK = Array(pointsLen);\n // Calculate slopes (deltaK) and initialize tangents (mK)\n let i, pointBefore, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for(i = 0; i < pointsLen; ++i){\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n if (pointAfter) {\n const slopeDelta = pointAfter[indexAxis] - pointCurrent[indexAxis];\n // In the case of two points that appear at the same x pixel, slopeDeltaX is 0\n deltaK[i] = slopeDelta !== 0 ? (pointAfter[valueAxis] - pointCurrent[valueAxis]) / slopeDelta : 0;\n }\n mK[i] = !pointBefore ? deltaK[i] : !pointAfter ? deltaK[i - 1] : sign(deltaK[i - 1]) !== sign(deltaK[i]) ? 0 : (deltaK[i - 1] + deltaK[i]) / 2;\n }\n monotoneAdjust(points, deltaK, mK);\n monotoneCompute(points, mK, indexAxis);\n}\nfunction capControlPoint(pt, min, max) {\n return Math.max(Math.min(pt, max), min);\n}\nfunction capBezierPoints(points, area) {\n let i, ilen, point, inArea, inAreaPrev;\n let inAreaNext = _isPointInArea(points[0], area);\n for(i = 0, ilen = points.length; i < ilen; ++i){\n inAreaPrev = inArea;\n inArea = inAreaNext;\n inAreaNext = i < ilen - 1 && _isPointInArea(points[i + 1], area);\n if (!inArea) {\n continue;\n }\n point = points[i];\n if (inAreaPrev) {\n point.cp1x = capControlPoint(point.cp1x, area.left, area.right);\n point.cp1y = capControlPoint(point.cp1y, area.top, area.bottom);\n }\n if (inAreaNext) {\n point.cp2x = capControlPoint(point.cp2x, area.left, area.right);\n point.cp2y = capControlPoint(point.cp2y, area.top, area.bottom);\n }\n }\n}\n/**\n * @private\n */ function _updateBezierControlPoints(points, options, area, loop, indexAxis) {\n let i, ilen, point, controlPoints;\n // Only consider points that are drawn in case the spanGaps option is used\n if (options.spanGaps) {\n points = points.filter((pt)=>!pt.skip);\n }\n if (options.cubicInterpolationMode === 'monotone') {\n splineCurveMonotone(points, indexAxis);\n } else {\n let prev = loop ? points[points.length - 1] : points[0];\n for(i = 0, ilen = points.length; i < ilen; ++i){\n point = points[i];\n controlPoints = splineCurve(prev, point, points[Math.min(i + 1, ilen - (loop ? 0 : 1)) % ilen], options.tension);\n point.cp1x = controlPoints.previous.x;\n point.cp1y = controlPoints.previous.y;\n point.cp2x = controlPoints.next.x;\n point.cp2y = controlPoints.next.y;\n prev = point;\n }\n }\n if (options.capBezierPoints) {\n capBezierPoints(points, area);\n }\n}\n\n/**\n * @private\n */ function _isDomSupported() {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n/**\n * @private\n */ function _getParentNode(domNode) {\n let parent = domNode.parentNode;\n if (parent && parent.toString() === '[object ShadowRoot]') {\n parent = parent.host;\n }\n return parent;\n}\n/**\n * convert max-width/max-height values that may be percentages into a number\n * @private\n */ function parseMaxStyle(styleValue, node, parentProperty) {\n let valueInPixels;\n if (typeof styleValue === 'string') {\n valueInPixels = parseInt(styleValue, 10);\n if (styleValue.indexOf('%') !== -1) {\n // percentage * size in dimension\n valueInPixels = valueInPixels / 100 * node.parentNode[parentProperty];\n }\n } else {\n valueInPixels = styleValue;\n }\n return valueInPixels;\n}\nconst getComputedStyle = (element)=>element.ownerDocument.defaultView.getComputedStyle(element, null);\nfunction getStyle(el, property) {\n return getComputedStyle(el).getPropertyValue(property);\n}\nconst positions = [\n 'top',\n 'right',\n 'bottom',\n 'left'\n];\nfunction getPositionedStyle(styles, style, suffix) {\n const result = {};\n suffix = suffix ? '-' + suffix : '';\n for(let i = 0; i < 4; i++){\n const pos = positions[i];\n result[pos] = parseFloat(styles[style + '-' + pos + suffix]) || 0;\n }\n result.width = result.left + result.right;\n result.height = result.top + result.bottom;\n return result;\n}\nconst useOffsetPos = (x, y, target)=>(x > 0 || y > 0) && (!target || !target.shadowRoot);\n/**\n * @param e\n * @param canvas\n * @returns Canvas position\n */ function getCanvasPosition(e, canvas) {\n const touches = e.touches;\n const source = touches && touches.length ? touches[0] : e;\n const { offsetX , offsetY } = source;\n let box = false;\n let x, y;\n if (useOffsetPos(offsetX, offsetY, e.target)) {\n x = offsetX;\n y = offsetY;\n } else {\n const rect = canvas.getBoundingClientRect();\n x = source.clientX - rect.left;\n y = source.clientY - rect.top;\n box = true;\n }\n return {\n x,\n y,\n box\n };\n}\n/**\n * Gets an event's x, y coordinates, relative to the chart area\n * @param event\n * @param chart\n * @returns x and y coordinates of the event\n */ function getRelativePosition(event, chart) {\n if ('native' in event) {\n return event;\n }\n const { canvas , currentDevicePixelRatio } = chart;\n const style = getComputedStyle(canvas);\n const borderBox = style.boxSizing === 'border-box';\n const paddings = getPositionedStyle(style, 'padding');\n const borders = getPositionedStyle(style, 'border', 'width');\n const { x , y , box } = getCanvasPosition(event, canvas);\n const xOffset = paddings.left + (box && borders.left);\n const yOffset = paddings.top + (box && borders.top);\n let { width , height } = chart;\n if (borderBox) {\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n return {\n x: Math.round((x - xOffset) / width * canvas.width / currentDevicePixelRatio),\n y: Math.round((y - yOffset) / height * canvas.height / currentDevicePixelRatio)\n };\n}\nfunction getContainerSize(canvas, width, height) {\n let maxWidth, maxHeight;\n if (width === undefined || height === undefined) {\n const container = canvas && _getParentNode(canvas);\n if (!container) {\n width = canvas.clientWidth;\n height = canvas.clientHeight;\n } else {\n const rect = container.getBoundingClientRect(); // this is the border box of the container\n const containerStyle = getComputedStyle(container);\n const containerBorder = getPositionedStyle(containerStyle, 'border', 'width');\n const containerPadding = getPositionedStyle(containerStyle, 'padding');\n width = rect.width - containerPadding.width - containerBorder.width;\n height = rect.height - containerPadding.height - containerBorder.height;\n maxWidth = parseMaxStyle(containerStyle.maxWidth, container, 'clientWidth');\n maxHeight = parseMaxStyle(containerStyle.maxHeight, container, 'clientHeight');\n }\n }\n return {\n width,\n height,\n maxWidth: maxWidth || INFINITY,\n maxHeight: maxHeight || INFINITY\n };\n}\nconst round1 = (v)=>Math.round(v * 10) / 10;\n// eslint-disable-next-line complexity\nfunction getMaximumSize(canvas, bbWidth, bbHeight, aspectRatio) {\n const style = getComputedStyle(canvas);\n const margins = getPositionedStyle(style, 'margin');\n const maxWidth = parseMaxStyle(style.maxWidth, canvas, 'clientWidth') || INFINITY;\n const maxHeight = parseMaxStyle(style.maxHeight, canvas, 'clientHeight') || INFINITY;\n const containerSize = getContainerSize(canvas, bbWidth, bbHeight);\n let { width , height } = containerSize;\n if (style.boxSizing === 'content-box') {\n const borders = getPositionedStyle(style, 'border', 'width');\n const paddings = getPositionedStyle(style, 'padding');\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n width = Math.max(0, width - margins.width);\n height = Math.max(0, aspectRatio ? width / aspectRatio : height - margins.height);\n width = round1(Math.min(width, maxWidth, containerSize.maxWidth));\n height = round1(Math.min(height, maxHeight, containerSize.maxHeight));\n if (width && !height) {\n // https://github.com/chartjs/Chart.js/issues/4659\n // If the canvas has width, but no height, default to aspectRatio of 2 (canvas default)\n height = round1(width / 2);\n }\n const maintainHeight = bbWidth !== undefined || bbHeight !== undefined;\n if (maintainHeight && aspectRatio && containerSize.height && height > containerSize.height) {\n height = containerSize.height;\n width = round1(Math.floor(height * aspectRatio));\n }\n return {\n width,\n height\n };\n}\n/**\n * @param chart\n * @param forceRatio\n * @param forceStyle\n * @returns True if the canvas context size or transformation has changed.\n */ function retinaScale(chart, forceRatio, forceStyle) {\n const pixelRatio = forceRatio || 1;\n const deviceHeight = round1(chart.height * pixelRatio);\n const deviceWidth = round1(chart.width * pixelRatio);\n chart.height = round1(chart.height);\n chart.width = round1(chart.width);\n const canvas = chart.canvas;\n // If no style has been set on the canvas, the render size is used as display size,\n // making the chart visually bigger, so let's enforce it to the \"correct\" values.\n // See https://github.com/chartjs/Chart.js/issues/3575\n if (canvas.style && (forceStyle || !canvas.style.height && !canvas.style.width)) {\n canvas.style.height = `${chart.height}px`;\n canvas.style.width = `${chart.width}px`;\n }\n if (chart.currentDevicePixelRatio !== pixelRatio || canvas.height !== deviceHeight || canvas.width !== deviceWidth) {\n chart.currentDevicePixelRatio = pixelRatio;\n canvas.height = deviceHeight;\n canvas.width = deviceWidth;\n chart.ctx.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n return true;\n }\n return false;\n}\n/**\n * Detects support for options object argument in addEventListener.\n * https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener#Safely_detecting_option_support\n * @private\n */ const supportsEventListenerOptions = function() {\n let passiveSupported = false;\n try {\n const options = {\n get passive () {\n passiveSupported = true;\n return false;\n }\n };\n if (_isDomSupported()) {\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n }\n } catch (e) {\n // continue regardless of error\n }\n return passiveSupported;\n}();\n/**\n * The \"used\" size is the final value of a dimension property after all calculations have\n * been performed. This method uses the computed style of `element` but returns undefined\n * if the computed style is not expressed in pixels. That can happen in some cases where\n * `element` has a size relative to its parent and this last one is not yet displayed,\n * for example because of `display: none` on a parent node.\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/used_value\n * @returns Size in pixels or undefined if unknown.\n */ function readUsedSize(element, property) {\n const value = getStyle(element, property);\n const matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\n return matches ? +matches[1] : undefined;\n}\n\n/**\n * @private\n */ function _pointInLine(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: p1.y + t * (p2.y - p1.y)\n };\n}\n/**\n * @private\n */ function _steppedInterpolation(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: mode === 'middle' ? t < 0.5 ? p1.y : p2.y : mode === 'after' ? t < 1 ? p1.y : p2.y : t > 0 ? p2.y : p1.y\n };\n}\n/**\n * @private\n */ function _bezierInterpolation(p1, p2, t, mode) {\n const cp1 = {\n x: p1.cp2x,\n y: p1.cp2y\n };\n const cp2 = {\n x: p2.cp1x,\n y: p2.cp1y\n };\n const a = _pointInLine(p1, cp1, t);\n const b = _pointInLine(cp1, cp2, t);\n const c = _pointInLine(cp2, p2, t);\n const d = _pointInLine(a, b, t);\n const e = _pointInLine(b, c, t);\n return _pointInLine(d, e, t);\n}\n\nconst getRightToLeftAdapter = function(rectX, width) {\n return {\n x (x) {\n return rectX + rectX + width - x;\n },\n setWidth (w) {\n width = w;\n },\n textAlign (align) {\n if (align === 'center') {\n return align;\n }\n return align === 'right' ? 'left' : 'right';\n },\n xPlus (x, value) {\n return x - value;\n },\n leftForLtr (x, itemWidth) {\n return x - itemWidth;\n }\n };\n};\nconst getLeftToRightAdapter = function() {\n return {\n x (x) {\n return x;\n },\n setWidth (w) {},\n textAlign (align) {\n return align;\n },\n xPlus (x, value) {\n return x + value;\n },\n leftForLtr (x, _itemWidth) {\n return x;\n }\n };\n};\nfunction getRtlAdapter(rtl, rectX, width) {\n return rtl ? getRightToLeftAdapter(rectX, width) : getLeftToRightAdapter();\n}\nfunction overrideTextDirection(ctx, direction) {\n let style, original;\n if (direction === 'ltr' || direction === 'rtl') {\n style = ctx.canvas.style;\n original = [\n style.getPropertyValue('direction'),\n style.getPropertyPriority('direction')\n ];\n style.setProperty('direction', direction, 'important');\n ctx.prevTextDirection = original;\n }\n}\nfunction restoreTextDirection(ctx, original) {\n if (original !== undefined) {\n delete ctx.prevTextDirection;\n ctx.canvas.style.setProperty('direction', original[0], original[1]);\n }\n}\n\nfunction propertyFn(property) {\n if (property === 'angle') {\n return {\n between: _angleBetween,\n compare: _angleDiff,\n normalize: _normalizeAngle\n };\n }\n return {\n between: _isBetween,\n compare: (a, b)=>a - b,\n normalize: (x)=>x\n };\n}\nfunction normalizeSegment({ start , end , count , loop , style }) {\n return {\n start: start % count,\n end: end % count,\n loop: loop && (end - start + 1) % count === 0,\n style\n };\n}\nfunction getSegment(segment, points, bounds) {\n const { property , start: startBound , end: endBound } = bounds;\n const { between , normalize } = propertyFn(property);\n const count = points.length;\n let { start , end , loop } = segment;\n let i, ilen;\n if (loop) {\n start += count;\n end += count;\n for(i = 0, ilen = count; i < ilen; ++i){\n if (!between(normalize(points[start % count][property]), startBound, endBound)) {\n break;\n }\n start--;\n end--;\n }\n start %= count;\n end %= count;\n }\n if (end < start) {\n end += count;\n }\n return {\n start,\n end,\n loop,\n style: segment.style\n };\n}\n function _boundSegment(segment, points, bounds) {\n if (!bounds) {\n return [\n segment\n ];\n }\n const { property , start: startBound , end: endBound } = bounds;\n const count = points.length;\n const { compare , between , normalize } = propertyFn(property);\n const { start , end , loop , style } = getSegment(segment, points, bounds);\n const result = [];\n let inside = false;\n let subStart = null;\n let value, point, prevValue;\n const startIsBefore = ()=>between(startBound, prevValue, value) && compare(startBound, prevValue) !== 0;\n const endIsBefore = ()=>compare(endBound, value) === 0 || between(endBound, prevValue, value);\n const shouldStart = ()=>inside || startIsBefore();\n const shouldStop = ()=>!inside || endIsBefore();\n for(let i = start, prev = start; i <= end; ++i){\n point = points[i % count];\n if (point.skip) {\n continue;\n }\n value = normalize(point[property]);\n if (value === prevValue) {\n continue;\n }\n inside = between(value, startBound, endBound);\n if (subStart === null && shouldStart()) {\n subStart = compare(value, startBound) === 0 ? i : prev;\n }\n if (subStart !== null && shouldStop()) {\n result.push(normalizeSegment({\n start: subStart,\n end: i,\n loop,\n count,\n style\n }));\n subStart = null;\n }\n prev = i;\n prevValue = value;\n }\n if (subStart !== null) {\n result.push(normalizeSegment({\n start: subStart,\n end,\n loop,\n count,\n style\n }));\n }\n return result;\n}\n function _boundSegments(line, bounds) {\n const result = [];\n const segments = line.segments;\n for(let i = 0; i < segments.length; i++){\n const sub = _boundSegment(segments[i], line.points, bounds);\n if (sub.length) {\n result.push(...sub);\n }\n }\n return result;\n}\n function findStartAndEnd(points, count, loop, spanGaps) {\n let start = 0;\n let end = count - 1;\n if (loop && !spanGaps) {\n while(start < count && !points[start].skip){\n start++;\n }\n }\n while(start < count && points[start].skip){\n start++;\n }\n start %= count;\n if (loop) {\n end += start;\n }\n while(end > start && points[end % count].skip){\n end--;\n }\n end %= count;\n return {\n start,\n end\n };\n}\n function solidSegments(points, start, max, loop) {\n const count = points.length;\n const result = [];\n let last = start;\n let prev = points[start];\n let end;\n for(end = start + 1; end <= max; ++end){\n const cur = points[end % count];\n if (cur.skip || cur.stop) {\n if (!prev.skip) {\n loop = false;\n result.push({\n start: start % count,\n end: (end - 1) % count,\n loop\n });\n start = last = cur.stop ? end : null;\n }\n } else {\n last = end;\n if (prev.skip) {\n start = end;\n }\n }\n prev = cur;\n }\n if (last !== null) {\n result.push({\n start: start % count,\n end: last % count,\n loop\n });\n }\n return result;\n}\n function _computeSegments(line, segmentOptions) {\n const points = line.points;\n const spanGaps = line.options.spanGaps;\n const count = points.length;\n if (!count) {\n return [];\n }\n const loop = !!line._loop;\n const { start , end } = findStartAndEnd(points, count, loop, spanGaps);\n if (spanGaps === true) {\n return splitByStyles(line, [\n {\n start,\n end,\n loop\n }\n ], points, segmentOptions);\n }\n const max = end < start ? end + count : end;\n const completeLoop = !!line._fullLoop && start === 0 && end === count - 1;\n return splitByStyles(line, solidSegments(points, start, max, completeLoop), points, segmentOptions);\n}\n function splitByStyles(line, segments, points, segmentOptions) {\n if (!segmentOptions || !segmentOptions.setContext || !points) {\n return segments;\n }\n return doSplitByStyles(line, segments, points, segmentOptions);\n}\n function doSplitByStyles(line, segments, points, segmentOptions) {\n const chartContext = line._chart.getContext();\n const baseStyle = readStyle(line.options);\n const { _datasetIndex: datasetIndex , options: { spanGaps } } = line;\n const count = points.length;\n const result = [];\n let prevStyle = baseStyle;\n let start = segments[0].start;\n let i = start;\n function addStyle(s, e, l, st) {\n const dir = spanGaps ? -1 : 1;\n if (s === e) {\n return;\n }\n s += count;\n while(points[s % count].skip){\n s -= dir;\n }\n while(points[e % count].skip){\n e += dir;\n }\n if (s % count !== e % count) {\n result.push({\n start: s % count,\n end: e % count,\n loop: l,\n style: st\n });\n prevStyle = st;\n start = e % count;\n }\n }\n for (const segment of segments){\n start = spanGaps ? start : segment.start;\n let prev = points[start % count];\n let style;\n for(i = start + 1; i <= segment.end; i++){\n const pt = points[i % count];\n style = readStyle(segmentOptions.setContext(createContext(chartContext, {\n type: 'segment',\n p0: prev,\n p1: pt,\n p0DataIndex: (i - 1) % count,\n p1DataIndex: i % count,\n datasetIndex\n })));\n if (styleChanged(style, prevStyle)) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n prev = pt;\n prevStyle = style;\n }\n if (start < i - 1) {\n addStyle(start, i - 1, segment.loop, prevStyle);\n }\n }\n return result;\n}\nfunction readStyle(options) {\n return {\n backgroundColor: options.backgroundColor,\n borderCapStyle: options.borderCapStyle,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderJoinStyle: options.borderJoinStyle,\n borderWidth: options.borderWidth,\n borderColor: options.borderColor\n };\n}\nfunction styleChanged(style, prevStyle) {\n if (!prevStyle) {\n return false;\n }\n const cache = [];\n const replacer = function(key, value) {\n if (!isPatternOrGradient(value)) {\n return value;\n }\n if (!cache.includes(value)) {\n cache.push(value);\n }\n return cache.indexOf(value);\n };\n return JSON.stringify(style, replacer) !== JSON.stringify(prevStyle, replacer);\n}\n\nfunction getSizeForArea(scale, chartArea, field) {\n return scale.options.clip ? scale[field] : chartArea[field];\n}\nfunction getDatasetArea(meta, chartArea) {\n const { xScale , yScale } = meta;\n if (xScale && yScale) {\n return {\n left: getSizeForArea(xScale, chartArea, 'left'),\n right: getSizeForArea(xScale, chartArea, 'right'),\n top: getSizeForArea(yScale, chartArea, 'top'),\n bottom: getSizeForArea(yScale, chartArea, 'bottom')\n };\n }\n return chartArea;\n}\nfunction getDatasetClipArea(chart, meta) {\n const clip = meta._clip;\n if (clip.disabled) {\n return false;\n }\n const area = getDatasetArea(meta, chart.chartArea);\n return {\n left: clip.left === false ? 0 : area.left - (clip.left === true ? 0 : clip.left),\n right: clip.right === false ? chart.width : area.right + (clip.right === true ? 0 : clip.right),\n top: clip.top === false ? 0 : area.top - (clip.top === true ? 0 : clip.top),\n bottom: clip.bottom === false ? chart.height : area.bottom + (clip.bottom === true ? 0 : clip.bottom)\n };\n}\n\nexport { unclipArea as $, _rlookupByKey as A, _lookupByKey as B, _isPointInArea as C, getAngleFromPoint as D, toPadding as E, each as F, getMaximumSize as G, HALF_PI as H, _getParentNode as I, readUsedSize as J, supportsEventListenerOptions as K, throttled as L, _isDomSupported as M, _factorize as N, finiteOrDefault as O, PI as P, callback as Q, _addGrace as R, _limitValue as S, TAU as T, toDegrees as U, _measureText as V, _int16Range as W, _alignPixel as X, clipArea as Y, renderText as Z, _arrayUnique as _, resolve as a, getStyle as a$, toFont as a0, _toLeftRightCenter as a1, _alignStartEnd as a2, overrides as a3, merge as a4, _capitalize as a5, descriptors as a6, isFunction as a7, _attachContext as a8, _createResolver as a9, getRtlAdapter as aA, overrideTextDirection as aB, _textX as aC, restoreTextDirection as aD, drawPointLegend as aE, distanceBetweenPoints as aF, noop as aG, _setMinAndMaxByKey as aH, niceNum as aI, almostWhole as aJ, almostEquals as aK, _decimalPlaces as aL, Ticks as aM, log10 as aN, _longestText as aO, _filterBetween as aP, _lookup as aQ, isPatternOrGradient as aR, getHoverColor as aS, clone as aT, _merger as aU, _mergerIf as aV, _deprecated as aW, _splitKey as aX, toFontString as aY, splineCurve as aZ, splineCurveMonotone as a_, _descriptors as aa, mergeIf as ab, uid as ac, debounce as ad, retinaScale as ae, clearCanvas as af, setsEqual as ag, getDatasetClipArea as ah, _elementsEqual as ai, _isClickEvent as aj, _isBetween as ak, _normalizeAngle as al, _readValueToProps as am, _updateBezierControlPoints as an, _computeSegments as ao, _boundSegments as ap, _steppedInterpolation as aq, _bezierInterpolation as ar, _pointInLine as as, _steppedLineTo as at, _bezierCurveTo as au, drawPoint as av, addRoundedRectPath as aw, toTRBL as ax, toTRBLCorners as ay, _boundSegment as az, isArray as b, fontString as b0, toLineHeight as b1, PITAU as b2, INFINITY as b3, RAD_PER_DEG as b4, QUARTER_PI as b5, TWO_THIRDS_PI as b6, _angleDiff as b7, color as c, defaults as d, effects as e, resolveObjectKey as f, isNumberFinite as g, defined as h, isObject as i, createContext as j, isNullOrUndef as k, listenArrayEvents as l, toPercentage as m, toDimension as n, formatNumber as o, _angleBetween as p, _getStartAndCountOfVisiblePoints as q, requestAnimFrame as r, sign as s, toRadians as t, unlistenArrayEvents as u, valueOrDefault as v, _scaleRangesChanged as w, isNumber as x, _parseObjectDataRadialScale as y, getRelativePosition as z };\n//# sourceMappingURL=helpers.dataset.js.map\n","/*!\n * Chart.js v4.5.1\n * https://www.chartjs.org\n * (c) 2025 Chart.js Contributors\n * Released under the MIT License\n */\nimport { r as requestAnimFrame, a as resolve, e as effects, c as color, i as isObject, d as defaults, b as isArray, v as valueOrDefault, u as unlistenArrayEvents, l as listenArrayEvents, f as resolveObjectKey, g as isNumberFinite, h as defined, s as sign, j as createContext, k as isNullOrUndef, _ as _arrayUnique, t as toRadians, m as toPercentage, n as toDimension, T as TAU, o as formatNumber, p as _angleBetween, H as HALF_PI, P as PI, q as _getStartAndCountOfVisiblePoints, w as _scaleRangesChanged, x as isNumber, y as _parseObjectDataRadialScale, z as getRelativePosition, A as _rlookupByKey, B as _lookupByKey, C as _isPointInArea, D as getAngleFromPoint, E as toPadding, F as each, G as getMaximumSize, I as _getParentNode, J as readUsedSize, K as supportsEventListenerOptions, L as throttled, M as _isDomSupported, N as _factorize, O as finiteOrDefault, Q as callback, R as _addGrace, S as _limitValue, U as toDegrees, V as _measureText, W as _int16Range, X as _alignPixel, Y as clipArea, Z as renderText, $ as unclipArea, a0 as toFont, a1 as _toLeftRightCenter, a2 as _alignStartEnd, a3 as overrides, a4 as merge, a5 as _capitalize, a6 as descriptors, a7 as isFunction, a8 as _attachContext, a9 as _createResolver, aa as _descriptors, ab as mergeIf, ac as uid, ad as debounce, ae as retinaScale, af as clearCanvas, ag as setsEqual, ah as getDatasetClipArea, ai as _elementsEqual, aj as _isClickEvent, ak as _isBetween, al as _normalizeAngle, am as _readValueToProps, an as _updateBezierControlPoints, ao as _computeSegments, ap as _boundSegments, aq as _steppedInterpolation, ar as _bezierInterpolation, as as _pointInLine, at as _steppedLineTo, au as _bezierCurveTo, av as drawPoint, aw as addRoundedRectPath, ax as toTRBL, ay as toTRBLCorners, az as _boundSegment, aA as getRtlAdapter, aB as overrideTextDirection, aC as _textX, aD as restoreTextDirection, aE as drawPointLegend, aF as distanceBetweenPoints, aG as noop, aH as _setMinAndMaxByKey, aI as niceNum, aJ as almostWhole, aK as almostEquals, aL as _decimalPlaces, aM as Ticks, aN as log10, aO as _longestText, aP as _filterBetween, aQ as _lookup } from './chunks/helpers.dataset.js';\nimport '@kurkle/color';\n\nclass Animator {\n constructor(){\n this._request = null;\n this._charts = new Map();\n this._running = false;\n this._lastDate = undefined;\n }\n _notify(chart, anims, date, type) {\n const callbacks = anims.listeners[type];\n const numSteps = anims.duration;\n callbacks.forEach((fn)=>fn({\n chart,\n initial: anims.initial,\n numSteps,\n currentStep: Math.min(date - anims.start, numSteps)\n }));\n }\n _refresh() {\n if (this._request) {\n return;\n }\n this._running = true;\n this._request = requestAnimFrame.call(window, ()=>{\n this._update();\n this._request = null;\n if (this._running) {\n this._refresh();\n }\n });\n }\n _update(date = Date.now()) {\n let remaining = 0;\n this._charts.forEach((anims, chart)=>{\n if (!anims.running || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n let draw = false;\n let item;\n for(; i >= 0; --i){\n item = items[i];\n if (item._active) {\n if (item._total > anims.duration) {\n anims.duration = item._total;\n }\n item.tick(date);\n draw = true;\n } else {\n items[i] = items[items.length - 1];\n items.pop();\n }\n }\n if (draw) {\n chart.draw();\n this._notify(chart, anims, date, 'progress');\n }\n if (!items.length) {\n anims.running = false;\n this._notify(chart, anims, date, 'complete');\n anims.initial = false;\n }\n remaining += items.length;\n });\n this._lastDate = date;\n if (remaining === 0) {\n this._running = false;\n }\n }\n _getAnims(chart) {\n const charts = this._charts;\n let anims = charts.get(chart);\n if (!anims) {\n anims = {\n running: false,\n initial: true,\n items: [],\n listeners: {\n complete: [],\n progress: []\n }\n };\n charts.set(chart, anims);\n }\n return anims;\n }\n listen(chart, event, cb) {\n this._getAnims(chart).listeners[event].push(cb);\n }\n add(chart, items) {\n if (!items || !items.length) {\n return;\n }\n this._getAnims(chart).items.push(...items);\n }\n has(chart) {\n return this._getAnims(chart).items.length > 0;\n }\n start(chart) {\n const anims = this._charts.get(chart);\n if (!anims) {\n return;\n }\n anims.running = true;\n anims.start = Date.now();\n anims.duration = anims.items.reduce((acc, cur)=>Math.max(acc, cur._duration), 0);\n this._refresh();\n }\n running(chart) {\n if (!this._running) {\n return false;\n }\n const anims = this._charts.get(chart);\n if (!anims || !anims.running || !anims.items.length) {\n return false;\n }\n return true;\n }\n stop(chart) {\n const anims = this._charts.get(chart);\n if (!anims || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n for(; i >= 0; --i){\n items[i].cancel();\n }\n anims.items = [];\n this._notify(chart, anims, Date.now(), 'complete');\n }\n remove(chart) {\n return this._charts.delete(chart);\n }\n}\nvar animator = /* #__PURE__ */ new Animator();\n\nconst transparent = 'transparent';\nconst interpolators = {\n boolean (from, to, factor) {\n return factor > 0.5 ? to : from;\n },\n color (from, to, factor) {\n const c0 = color(from || transparent);\n const c1 = c0.valid && color(to || transparent);\n return c1 && c1.valid ? c1.mix(c0, factor).hexString() : to;\n },\n number (from, to, factor) {\n return from + (to - from) * factor;\n }\n};\nclass Animation {\n constructor(cfg, target, prop, to){\n const currentValue = target[prop];\n to = resolve([\n cfg.to,\n to,\n currentValue,\n cfg.from\n ]);\n const from = resolve([\n cfg.from,\n currentValue,\n to\n ]);\n this._active = true;\n this._fn = cfg.fn || interpolators[cfg.type || typeof from];\n this._easing = effects[cfg.easing] || effects.linear;\n this._start = Math.floor(Date.now() + (cfg.delay || 0));\n this._duration = this._total = Math.floor(cfg.duration);\n this._loop = !!cfg.loop;\n this._target = target;\n this._prop = prop;\n this._from = from;\n this._to = to;\n this._promises = undefined;\n }\n active() {\n return this._active;\n }\n update(cfg, to, date) {\n if (this._active) {\n this._notify(false);\n const currentValue = this._target[this._prop];\n const elapsed = date - this._start;\n const remain = this._duration - elapsed;\n this._start = date;\n this._duration = Math.floor(Math.max(remain, cfg.duration));\n this._total += elapsed;\n this._loop = !!cfg.loop;\n this._to = resolve([\n cfg.to,\n to,\n currentValue,\n cfg.from\n ]);\n this._from = resolve([\n cfg.from,\n currentValue,\n to\n ]);\n }\n }\n cancel() {\n if (this._active) {\n this.tick(Date.now());\n this._active = false;\n this._notify(false);\n }\n }\n tick(date) {\n const elapsed = date - this._start;\n const duration = this._duration;\n const prop = this._prop;\n const from = this._from;\n const loop = this._loop;\n const to = this._to;\n let factor;\n this._active = from !== to && (loop || elapsed < duration);\n if (!this._active) {\n this._target[prop] = to;\n this._notify(true);\n return;\n }\n if (elapsed < 0) {\n this._target[prop] = from;\n return;\n }\n factor = elapsed / duration % 2;\n factor = loop && factor > 1 ? 2 - factor : factor;\n factor = this._easing(Math.min(1, Math.max(0, factor)));\n this._target[prop] = this._fn(from, to, factor);\n }\n wait() {\n const promises = this._promises || (this._promises = []);\n return new Promise((res, rej)=>{\n promises.push({\n res,\n rej\n });\n });\n }\n _notify(resolved) {\n const method = resolved ? 'res' : 'rej';\n const promises = this._promises || [];\n for(let i = 0; i < promises.length; i++){\n promises[i][method]();\n }\n }\n}\n\nclass Animations {\n constructor(chart, config){\n this._chart = chart;\n this._properties = new Map();\n this.configure(config);\n }\n configure(config) {\n if (!isObject(config)) {\n return;\n }\n const animationOptions = Object.keys(defaults.animation);\n const animatedProps = this._properties;\n Object.getOwnPropertyNames(config).forEach((key)=>{\n const cfg = config[key];\n if (!isObject(cfg)) {\n return;\n }\n const resolved = {};\n for (const option of animationOptions){\n resolved[option] = cfg[option];\n }\n (isArray(cfg.properties) && cfg.properties || [\n key\n ]).forEach((prop)=>{\n if (prop === key || !animatedProps.has(prop)) {\n animatedProps.set(prop, resolved);\n }\n });\n });\n }\n _animateOptions(target, values) {\n const newOptions = values.options;\n const options = resolveTargetOptions(target, newOptions);\n if (!options) {\n return [];\n }\n const animations = this._createAnimations(options, newOptions);\n if (newOptions.$shared) {\n awaitAll(target.options.$animations, newOptions).then(()=>{\n target.options = newOptions;\n }, ()=>{\n });\n }\n return animations;\n }\n _createAnimations(target, values) {\n const animatedProps = this._properties;\n const animations = [];\n const running = target.$animations || (target.$animations = {});\n const props = Object.keys(values);\n const date = Date.now();\n let i;\n for(i = props.length - 1; i >= 0; --i){\n const prop = props[i];\n if (prop.charAt(0) === '$') {\n continue;\n }\n if (prop === 'options') {\n animations.push(...this._animateOptions(target, values));\n continue;\n }\n const value = values[prop];\n let animation = running[prop];\n const cfg = animatedProps.get(prop);\n if (animation) {\n if (cfg && animation.active()) {\n animation.update(cfg, value, date);\n continue;\n } else {\n animation.cancel();\n }\n }\n if (!cfg || !cfg.duration) {\n target[prop] = value;\n continue;\n }\n running[prop] = animation = new Animation(cfg, target, prop, value);\n animations.push(animation);\n }\n return animations;\n }\n update(target, values) {\n if (this._properties.size === 0) {\n Object.assign(target, values);\n return;\n }\n const animations = this._createAnimations(target, values);\n if (animations.length) {\n animator.add(this._chart, animations);\n return true;\n }\n }\n}\nfunction awaitAll(animations, properties) {\n const running = [];\n const keys = Object.keys(properties);\n for(let i = 0; i < keys.length; i++){\n const anim = animations[keys[i]];\n if (anim && anim.active()) {\n running.push(anim.wait());\n }\n }\n return Promise.all(running);\n}\nfunction resolveTargetOptions(target, newOptions) {\n if (!newOptions) {\n return;\n }\n let options = target.options;\n if (!options) {\n target.options = newOptions;\n return;\n }\n if (options.$shared) {\n target.options = options = Object.assign({}, options, {\n $shared: false,\n $animations: {}\n });\n }\n return options;\n}\n\nfunction scaleClip(scale, allowedOverflow) {\n const opts = scale && scale.options || {};\n const reverse = opts.reverse;\n const min = opts.min === undefined ? allowedOverflow : 0;\n const max = opts.max === undefined ? allowedOverflow : 0;\n return {\n start: reverse ? max : min,\n end: reverse ? min : max\n };\n}\nfunction defaultClip(xScale, yScale, allowedOverflow) {\n if (allowedOverflow === false) {\n return false;\n }\n const x = scaleClip(xScale, allowedOverflow);\n const y = scaleClip(yScale, allowedOverflow);\n return {\n top: y.end,\n right: x.end,\n bottom: y.start,\n left: x.start\n };\n}\nfunction toClip(value) {\n let t, r, b, l;\n if (isObject(value)) {\n t = value.top;\n r = value.right;\n b = value.bottom;\n l = value.left;\n } else {\n t = r = b = l = value;\n }\n return {\n top: t,\n right: r,\n bottom: b,\n left: l,\n disabled: value === false\n };\n}\nfunction getSortedDatasetIndices(chart, filterVisible) {\n const keys = [];\n const metasets = chart._getSortedDatasetMetas(filterVisible);\n let i, ilen;\n for(i = 0, ilen = metasets.length; i < ilen; ++i){\n keys.push(metasets[i].index);\n }\n return keys;\n}\nfunction applyStack(stack, value, dsIndex, options = {}) {\n const keys = stack.keys;\n const singleMode = options.mode === 'single';\n let i, ilen, datasetIndex, otherValue;\n if (value === null) {\n return;\n }\n let found = false;\n for(i = 0, ilen = keys.length; i < ilen; ++i){\n datasetIndex = +keys[i];\n if (datasetIndex === dsIndex) {\n found = true;\n if (options.all) {\n continue;\n }\n break;\n }\n otherValue = stack.values[datasetIndex];\n if (isNumberFinite(otherValue) && (singleMode || value === 0 || sign(value) === sign(otherValue))) {\n value += otherValue;\n }\n }\n if (!found && !options.all) {\n return 0;\n }\n return value;\n}\nfunction convertObjectDataToArray(data, meta) {\n const { iScale , vScale } = meta;\n const iAxisKey = iScale.axis === 'x' ? 'x' : 'y';\n const vAxisKey = vScale.axis === 'x' ? 'x' : 'y';\n const keys = Object.keys(data);\n const adata = new Array(keys.length);\n let i, ilen, key;\n for(i = 0, ilen = keys.length; i < ilen; ++i){\n key = keys[i];\n adata[i] = {\n [iAxisKey]: key,\n [vAxisKey]: data[key]\n };\n }\n return adata;\n}\nfunction isStacked(scale, meta) {\n const stacked = scale && scale.options.stacked;\n return stacked || stacked === undefined && meta.stack !== undefined;\n}\nfunction getStackKey(indexScale, valueScale, meta) {\n return `${indexScale.id}.${valueScale.id}.${meta.stack || meta.type}`;\n}\nfunction getUserBounds(scale) {\n const { min , max , minDefined , maxDefined } = scale.getUserBounds();\n return {\n min: minDefined ? min : Number.NEGATIVE_INFINITY,\n max: maxDefined ? max : Number.POSITIVE_INFINITY\n };\n}\nfunction getOrCreateStack(stacks, stackKey, indexValue) {\n const subStack = stacks[stackKey] || (stacks[stackKey] = {});\n return subStack[indexValue] || (subStack[indexValue] = {});\n}\nfunction getLastIndexInStack(stack, vScale, positive, type) {\n for (const meta of vScale.getMatchingVisibleMetas(type).reverse()){\n const value = stack[meta.index];\n if (positive && value > 0 || !positive && value < 0) {\n return meta.index;\n }\n }\n return null;\n}\nfunction updateStacks(controller, parsed) {\n const { chart , _cachedMeta: meta } = controller;\n const stacks = chart._stacks || (chart._stacks = {});\n const { iScale , vScale , index: datasetIndex } = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const key = getStackKey(iScale, vScale, meta);\n const ilen = parsed.length;\n let stack;\n for(let i = 0; i < ilen; ++i){\n const item = parsed[i];\n const { [iAxis]: index , [vAxis]: value } = item;\n const itemStacks = item._stacks || (item._stacks = {});\n stack = itemStacks[vAxis] = getOrCreateStack(stacks, key, index);\n stack[datasetIndex] = value;\n stack._top = getLastIndexInStack(stack, vScale, true, meta.type);\n stack._bottom = getLastIndexInStack(stack, vScale, false, meta.type);\n const visualValues = stack._visualValues || (stack._visualValues = {});\n visualValues[datasetIndex] = value;\n }\n}\nfunction getFirstScaleId(chart, axis) {\n const scales = chart.scales;\n return Object.keys(scales).filter((key)=>scales[key].axis === axis).shift();\n}\nfunction createDatasetContext(parent, index) {\n return createContext(parent, {\n active: false,\n dataset: undefined,\n datasetIndex: index,\n index,\n mode: 'default',\n type: 'dataset'\n });\n}\nfunction createDataContext(parent, index, element) {\n return createContext(parent, {\n active: false,\n dataIndex: index,\n parsed: undefined,\n raw: undefined,\n element,\n index,\n mode: 'default',\n type: 'data'\n });\n}\nfunction clearStacks(meta, items) {\n const datasetIndex = meta.controller.index;\n const axis = meta.vScale && meta.vScale.axis;\n if (!axis) {\n return;\n }\n items = items || meta._parsed;\n for (const parsed of items){\n const stacks = parsed._stacks;\n if (!stacks || stacks[axis] === undefined || stacks[axis][datasetIndex] === undefined) {\n return;\n }\n delete stacks[axis][datasetIndex];\n if (stacks[axis]._visualValues !== undefined && stacks[axis]._visualValues[datasetIndex] !== undefined) {\n delete stacks[axis]._visualValues[datasetIndex];\n }\n }\n}\nconst isDirectUpdateMode = (mode)=>mode === 'reset' || mode === 'none';\nconst cloneIfNotShared = (cached, shared)=>shared ? cached : Object.assign({}, cached);\nconst createStack = (canStack, meta, chart)=>canStack && !meta.hidden && meta._stacked && {\n keys: getSortedDatasetIndices(chart, true),\n values: null\n };\nclass DatasetController {\n static defaults = {};\n static datasetElementType = null;\n static dataElementType = null;\n constructor(chart, datasetIndex){\n this.chart = chart;\n this._ctx = chart.ctx;\n this.index = datasetIndex;\n this._cachedDataOpts = {};\n this._cachedMeta = this.getMeta();\n this._type = this._cachedMeta.type;\n this.options = undefined;\n this._parsing = false;\n this._data = undefined;\n this._objectData = undefined;\n this._sharedOptions = undefined;\n this._drawStart = undefined;\n this._drawCount = undefined;\n this.enableOptionSharing = false;\n this.supportsDecimation = false;\n this.$context = undefined;\n this._syncList = [];\n this.datasetElementType = new.target.datasetElementType;\n this.dataElementType = new.target.dataElementType;\n this.initialize();\n }\n initialize() {\n const meta = this._cachedMeta;\n this.configure();\n this.linkScales();\n meta._stacked = isStacked(meta.vScale, meta);\n this.addElements();\n if (this.options.fill && !this.chart.isPluginEnabled('filler')) {\n console.warn(\"Tried to use the 'fill' option without the 'Filler' plugin enabled. Please import and register the 'Filler' plugin and make sure it is not disabled in the options\");\n }\n }\n updateIndex(datasetIndex) {\n if (this.index !== datasetIndex) {\n clearStacks(this._cachedMeta);\n }\n this.index = datasetIndex;\n }\n linkScales() {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n const chooseId = (axis, x, y, r)=>axis === 'x' ? x : axis === 'r' ? r : y;\n const xid = meta.xAxisID = valueOrDefault(dataset.xAxisID, getFirstScaleId(chart, 'x'));\n const yid = meta.yAxisID = valueOrDefault(dataset.yAxisID, getFirstScaleId(chart, 'y'));\n const rid = meta.rAxisID = valueOrDefault(dataset.rAxisID, getFirstScaleId(chart, 'r'));\n const indexAxis = meta.indexAxis;\n const iid = meta.iAxisID = chooseId(indexAxis, xid, yid, rid);\n const vid = meta.vAxisID = chooseId(indexAxis, yid, xid, rid);\n meta.xScale = this.getScaleForId(xid);\n meta.yScale = this.getScaleForId(yid);\n meta.rScale = this.getScaleForId(rid);\n meta.iScale = this.getScaleForId(iid);\n meta.vScale = this.getScaleForId(vid);\n }\n getDataset() {\n return this.chart.data.datasets[this.index];\n }\n getMeta() {\n return this.chart.getDatasetMeta(this.index);\n }\n getScaleForId(scaleID) {\n return this.chart.scales[scaleID];\n }\n _getOtherScale(scale) {\n const meta = this._cachedMeta;\n return scale === meta.iScale ? meta.vScale : meta.iScale;\n }\n reset() {\n this._update('reset');\n }\n _destroy() {\n const meta = this._cachedMeta;\n if (this._data) {\n unlistenArrayEvents(this._data, this);\n }\n if (meta._stacked) {\n clearStacks(meta);\n }\n }\n _dataCheck() {\n const dataset = this.getDataset();\n const data = dataset.data || (dataset.data = []);\n const _data = this._data;\n if (isObject(data)) {\n const meta = this._cachedMeta;\n this._data = convertObjectDataToArray(data, meta);\n } else if (_data !== data) {\n if (_data) {\n unlistenArrayEvents(_data, this);\n const meta = this._cachedMeta;\n clearStacks(meta);\n meta._parsed = [];\n }\n if (data && Object.isExtensible(data)) {\n listenArrayEvents(data, this);\n }\n this._syncList = [];\n this._data = data;\n }\n }\n addElements() {\n const meta = this._cachedMeta;\n this._dataCheck();\n if (this.datasetElementType) {\n meta.dataset = new this.datasetElementType();\n }\n }\n buildOrUpdateElements(resetNewElements) {\n const meta = this._cachedMeta;\n const dataset = this.getDataset();\n let stackChanged = false;\n this._dataCheck();\n const oldStacked = meta._stacked;\n meta._stacked = isStacked(meta.vScale, meta);\n if (meta.stack !== dataset.stack) {\n stackChanged = true;\n clearStacks(meta);\n meta.stack = dataset.stack;\n }\n this._resyncElements(resetNewElements);\n if (stackChanged || oldStacked !== meta._stacked) {\n updateStacks(this, meta._parsed);\n meta._stacked = isStacked(meta.vScale, meta);\n }\n }\n configure() {\n const config = this.chart.config;\n const scopeKeys = config.datasetScopeKeys(this._type);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys, true);\n this.options = config.createResolver(scopes, this.getContext());\n this._parsing = this.options.parsing;\n this._cachedDataOpts = {};\n }\n parse(start, count) {\n const { _cachedMeta: meta , _data: data } = this;\n const { iScale , _stacked } = meta;\n const iAxis = iScale.axis;\n let sorted = start === 0 && count === data.length ? true : meta._sorted;\n let prev = start > 0 && meta._parsed[start - 1];\n let i, cur, parsed;\n if (this._parsing === false) {\n meta._parsed = data;\n meta._sorted = true;\n parsed = data;\n } else {\n if (isArray(data[start])) {\n parsed = this.parseArrayData(meta, data, start, count);\n } else if (isObject(data[start])) {\n parsed = this.parseObjectData(meta, data, start, count);\n } else {\n parsed = this.parsePrimitiveData(meta, data, start, count);\n }\n const isNotInOrderComparedToPrev = ()=>cur[iAxis] === null || prev && cur[iAxis] < prev[iAxis];\n for(i = 0; i < count; ++i){\n meta._parsed[i + start] = cur = parsed[i];\n if (sorted) {\n if (isNotInOrderComparedToPrev()) {\n sorted = false;\n }\n prev = cur;\n }\n }\n meta._sorted = sorted;\n }\n if (_stacked) {\n updateStacks(this, parsed);\n }\n }\n parsePrimitiveData(meta, data, start, count) {\n const { iScale , vScale } = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = new Array(count);\n let i, ilen, index;\n for(i = 0, ilen = count; i < ilen; ++i){\n index = i + start;\n parsed[i] = {\n [iAxis]: singleScale || iScale.parse(labels[index], index),\n [vAxis]: vScale.parse(data[index], index)\n };\n }\n return parsed;\n }\n parseArrayData(meta, data, start, count) {\n const { xScale , yScale } = meta;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for(i = 0, ilen = count; i < ilen; ++i){\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(item[0], index),\n y: yScale.parse(item[1], index)\n };\n }\n return parsed;\n }\n parseObjectData(meta, data, start, count) {\n const { xScale , yScale } = meta;\n const { xAxisKey ='x' , yAxisKey ='y' } = this._parsing;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for(i = 0, ilen = count; i < ilen; ++i){\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(resolveObjectKey(item, xAxisKey), index),\n y: yScale.parse(resolveObjectKey(item, yAxisKey), index)\n };\n }\n return parsed;\n }\n getParsed(index) {\n return this._cachedMeta._parsed[index];\n }\n getDataElement(index) {\n return this._cachedMeta.data[index];\n }\n applyStack(scale, parsed, mode) {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const value = parsed[scale.axis];\n const stack = {\n keys: getSortedDatasetIndices(chart, true),\n values: parsed._stacks[scale.axis]._visualValues\n };\n return applyStack(stack, value, meta.index, {\n mode\n });\n }\n updateRangeFromParsed(range, scale, parsed, stack) {\n const parsedValue = parsed[scale.axis];\n let value = parsedValue === null ? NaN : parsedValue;\n const values = stack && parsed._stacks[scale.axis];\n if (stack && values) {\n stack.values = values;\n value = applyStack(stack, parsedValue, this._cachedMeta.index);\n }\n range.min = Math.min(range.min, value);\n range.max = Math.max(range.max, value);\n }\n getMinMax(scale, canStack) {\n const meta = this._cachedMeta;\n const _parsed = meta._parsed;\n const sorted = meta._sorted && scale === meta.iScale;\n const ilen = _parsed.length;\n const otherScale = this._getOtherScale(scale);\n const stack = createStack(canStack, meta, this.chart);\n const range = {\n min: Number.POSITIVE_INFINITY,\n max: Number.NEGATIVE_INFINITY\n };\n const { min: otherMin , max: otherMax } = getUserBounds(otherScale);\n let i, parsed;\n function _skip() {\n parsed = _parsed[i];\n const otherValue = parsed[otherScale.axis];\n return !isNumberFinite(parsed[scale.axis]) || otherMin > otherValue || otherMax < otherValue;\n }\n for(i = 0; i < ilen; ++i){\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n if (sorted) {\n break;\n }\n }\n if (sorted) {\n for(i = ilen - 1; i >= 0; --i){\n if (_skip()) {\n continue;\n }\n this.updateRangeFromParsed(range, scale, parsed, stack);\n break;\n }\n }\n return range;\n }\n getAllParsedValues(scale) {\n const parsed = this._cachedMeta._parsed;\n const values = [];\n let i, ilen, value;\n for(i = 0, ilen = parsed.length; i < ilen; ++i){\n value = parsed[i][scale.axis];\n if (isNumberFinite(value)) {\n values.push(value);\n }\n }\n return values;\n }\n getMaxOverflow() {\n return false;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const parsed = this.getParsed(index);\n return {\n label: iScale ? '' + iScale.getLabelForValue(parsed[iScale.axis]) : '',\n value: vScale ? '' + vScale.getLabelForValue(parsed[vScale.axis]) : ''\n };\n }\n _update(mode) {\n const meta = this._cachedMeta;\n this.update(mode || 'default');\n meta._clip = toClip(valueOrDefault(this.options.clip, defaultClip(meta.xScale, meta.yScale, this.getMaxOverflow())));\n }\n update(mode) {}\n draw() {\n const ctx = this._ctx;\n const chart = this.chart;\n const meta = this._cachedMeta;\n const elements = meta.data || [];\n const area = chart.chartArea;\n const active = [];\n const start = this._drawStart || 0;\n const count = this._drawCount || elements.length - start;\n const drawActiveElementsOnTop = this.options.drawActiveElementsOnTop;\n let i;\n if (meta.dataset) {\n meta.dataset.draw(ctx, area, start, count);\n }\n for(i = start; i < start + count; ++i){\n const element = elements[i];\n if (element.hidden) {\n continue;\n }\n if (element.active && drawActiveElementsOnTop) {\n active.push(element);\n } else {\n element.draw(ctx, area);\n }\n }\n for(i = 0; i < active.length; ++i){\n active[i].draw(ctx, area);\n }\n }\n getStyle(index, active) {\n const mode = active ? 'active' : 'default';\n return index === undefined && this._cachedMeta.dataset ? this.resolveDatasetElementOptions(mode) : this.resolveDataElementOptions(index || 0, mode);\n }\n getContext(index, active, mode) {\n const dataset = this.getDataset();\n let context;\n if (index >= 0 && index < this._cachedMeta.data.length) {\n const element = this._cachedMeta.data[index];\n context = element.$context || (element.$context = createDataContext(this.getContext(), index, element));\n context.parsed = this.getParsed(index);\n context.raw = dataset.data[index];\n context.index = context.dataIndex = index;\n } else {\n context = this.$context || (this.$context = createDatasetContext(this.chart.getContext(), this.index));\n context.dataset = dataset;\n context.index = context.datasetIndex = this.index;\n }\n context.active = !!active;\n context.mode = mode;\n return context;\n }\n resolveDatasetElementOptions(mode) {\n return this._resolveElementOptions(this.datasetElementType.id, mode);\n }\n resolveDataElementOptions(index, mode) {\n return this._resolveElementOptions(this.dataElementType.id, mode, index);\n }\n _resolveElementOptions(elementType, mode = 'default', index) {\n const active = mode === 'active';\n const cache = this._cachedDataOpts;\n const cacheKey = elementType + '-' + mode;\n const cached = cache[cacheKey];\n const sharing = this.enableOptionSharing && defined(index);\n if (cached) {\n return cloneIfNotShared(cached, sharing);\n }\n const config = this.chart.config;\n const scopeKeys = config.datasetElementScopeKeys(this._type, elementType);\n const prefixes = active ? [\n `${elementType}Hover`,\n 'hover',\n elementType,\n ''\n ] : [\n elementType,\n ''\n ];\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n const names = Object.keys(defaults.elements[elementType]);\n const context = ()=>this.getContext(index, active, mode);\n const values = config.resolveNamedOptions(scopes, names, context, prefixes);\n if (values.$shared) {\n values.$shared = sharing;\n cache[cacheKey] = Object.freeze(cloneIfNotShared(values, sharing));\n }\n return values;\n }\n _resolveAnimations(index, transition, active) {\n const chart = this.chart;\n const cache = this._cachedDataOpts;\n const cacheKey = `animation-${transition}`;\n const cached = cache[cacheKey];\n if (cached) {\n return cached;\n }\n let options;\n if (chart.options.animation !== false) {\n const config = this.chart.config;\n const scopeKeys = config.datasetAnimationScopeKeys(this._type, transition);\n const scopes = config.getOptionScopes(this.getDataset(), scopeKeys);\n options = config.createResolver(scopes, this.getContext(index, active, transition));\n }\n const animations = new Animations(chart, options && options.animations);\n if (options && options._cacheable) {\n cache[cacheKey] = Object.freeze(animations);\n }\n return animations;\n }\n getSharedOptions(options) {\n if (!options.$shared) {\n return;\n }\n return this._sharedOptions || (this._sharedOptions = Object.assign({}, options));\n }\n includeOptions(mode, sharedOptions) {\n return !sharedOptions || isDirectUpdateMode(mode) || this.chart._animationsDisabled;\n }\n _getSharedOptions(start, mode) {\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const previouslySharedOptions = this._sharedOptions;\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions) || sharedOptions !== previouslySharedOptions;\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n return {\n sharedOptions,\n includeOptions\n };\n }\n updateElement(element, index, properties, mode) {\n if (isDirectUpdateMode(mode)) {\n Object.assign(element, properties);\n } else {\n this._resolveAnimations(index, mode).update(element, properties);\n }\n }\n updateSharedOptions(sharedOptions, mode, newOptions) {\n if (sharedOptions && !isDirectUpdateMode(mode)) {\n this._resolveAnimations(undefined, mode).update(sharedOptions, newOptions);\n }\n }\n _setStyle(element, index, mode, active) {\n element.active = active;\n const options = this.getStyle(index, active);\n this._resolveAnimations(index, mode, active).update(element, {\n options: !active && this.getSharedOptions(options) || options\n });\n }\n removeHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', false);\n }\n setHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', true);\n }\n _removeDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n if (element) {\n this._setStyle(element, undefined, 'active', false);\n }\n }\n _setDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n if (element) {\n this._setStyle(element, undefined, 'active', true);\n }\n }\n _resyncElements(resetNewElements) {\n const data = this._data;\n const elements = this._cachedMeta.data;\n for (const [method, arg1, arg2] of this._syncList){\n this[method](arg1, arg2);\n }\n this._syncList = [];\n const numMeta = elements.length;\n const numData = data.length;\n const count = Math.min(numData, numMeta);\n if (count) {\n this.parse(0, count);\n }\n if (numData > numMeta) {\n this._insertElements(numMeta, numData - numMeta, resetNewElements);\n } else if (numData < numMeta) {\n this._removeElements(numData, numMeta - numData);\n }\n }\n _insertElements(start, count, resetNewElements = true) {\n const meta = this._cachedMeta;\n const data = meta.data;\n const end = start + count;\n let i;\n const move = (arr)=>{\n arr.length += count;\n for(i = arr.length - 1; i >= end; i--){\n arr[i] = arr[i - count];\n }\n };\n move(data);\n for(i = start; i < end; ++i){\n data[i] = new this.dataElementType();\n }\n if (this._parsing) {\n move(meta._parsed);\n }\n this.parse(start, count);\n if (resetNewElements) {\n this.updateElements(data, start, count, 'reset');\n }\n }\n updateElements(element, start, count, mode) {}\n _removeElements(start, count) {\n const meta = this._cachedMeta;\n if (this._parsing) {\n const removed = meta._parsed.splice(start, count);\n if (meta._stacked) {\n clearStacks(meta, removed);\n }\n }\n meta.data.splice(start, count);\n }\n _sync(args) {\n if (this._parsing) {\n this._syncList.push(args);\n } else {\n const [method, arg1, arg2] = args;\n this[method](arg1, arg2);\n }\n this.chart._dataChanges.push([\n this.index,\n ...args\n ]);\n }\n _onDataPush() {\n const count = arguments.length;\n this._sync([\n '_insertElements',\n this.getDataset().data.length - count,\n count\n ]);\n }\n _onDataPop() {\n this._sync([\n '_removeElements',\n this._cachedMeta.data.length - 1,\n 1\n ]);\n }\n _onDataShift() {\n this._sync([\n '_removeElements',\n 0,\n 1\n ]);\n }\n _onDataSplice(start, count) {\n if (count) {\n this._sync([\n '_removeElements',\n start,\n count\n ]);\n }\n const newCount = arguments.length - 2;\n if (newCount) {\n this._sync([\n '_insertElements',\n start,\n newCount\n ]);\n }\n }\n _onDataUnshift() {\n this._sync([\n '_insertElements',\n 0,\n arguments.length\n ]);\n }\n}\n\nfunction getAllScaleValues(scale, type) {\n if (!scale._cache.$bar) {\n const visibleMetas = scale.getMatchingVisibleMetas(type);\n let values = [];\n for(let i = 0, ilen = visibleMetas.length; i < ilen; i++){\n values = values.concat(visibleMetas[i].controller.getAllParsedValues(scale));\n }\n scale._cache.$bar = _arrayUnique(values.sort((a, b)=>a - b));\n }\n return scale._cache.$bar;\n}\n function computeMinSampleSize(meta) {\n const scale = meta.iScale;\n const values = getAllScaleValues(scale, meta.type);\n let min = scale._length;\n let i, ilen, curr, prev;\n const updateMinAndPrev = ()=>{\n if (curr === 32767 || curr === -32768) {\n return;\n }\n if (defined(prev)) {\n min = Math.min(min, Math.abs(curr - prev) || min);\n }\n prev = curr;\n };\n for(i = 0, ilen = values.length; i < ilen; ++i){\n curr = scale.getPixelForValue(values[i]);\n updateMinAndPrev();\n }\n prev = undefined;\n for(i = 0, ilen = scale.ticks.length; i < ilen; ++i){\n curr = scale.getPixelForTick(i);\n updateMinAndPrev();\n }\n return min;\n}\n function computeFitCategoryTraits(index, ruler, options, stackCount) {\n const thickness = options.barThickness;\n let size, ratio;\n if (isNullOrUndef(thickness)) {\n size = ruler.min * options.categoryPercentage;\n ratio = options.barPercentage;\n } else {\n size = thickness * stackCount;\n ratio = 1;\n }\n return {\n chunk: size / stackCount,\n ratio,\n start: ruler.pixels[index] - size / 2\n };\n}\n function computeFlexCategoryTraits(index, ruler, options, stackCount) {\n const pixels = ruler.pixels;\n const curr = pixels[index];\n let prev = index > 0 ? pixels[index - 1] : null;\n let next = index < pixels.length - 1 ? pixels[index + 1] : null;\n const percent = options.categoryPercentage;\n if (prev === null) {\n prev = curr - (next === null ? ruler.end - ruler.start : next - curr);\n }\n if (next === null) {\n next = curr + curr - prev;\n }\n const start = curr - (curr - Math.min(prev, next)) / 2 * percent;\n const size = Math.abs(next - prev) / 2 * percent;\n return {\n chunk: size / stackCount,\n ratio: options.barPercentage,\n start\n };\n}\nfunction parseFloatBar(entry, item, vScale, i) {\n const startValue = vScale.parse(entry[0], i);\n const endValue = vScale.parse(entry[1], i);\n const min = Math.min(startValue, endValue);\n const max = Math.max(startValue, endValue);\n let barStart = min;\n let barEnd = max;\n if (Math.abs(min) > Math.abs(max)) {\n barStart = max;\n barEnd = min;\n }\n item[vScale.axis] = barEnd;\n item._custom = {\n barStart,\n barEnd,\n start: startValue,\n end: endValue,\n min,\n max\n };\n}\nfunction parseValue(entry, item, vScale, i) {\n if (isArray(entry)) {\n parseFloatBar(entry, item, vScale, i);\n } else {\n item[vScale.axis] = vScale.parse(entry, i);\n }\n return item;\n}\nfunction parseArrayOrPrimitive(meta, data, start, count) {\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = [];\n let i, ilen, item, entry;\n for(i = start, ilen = start + count; i < ilen; ++i){\n entry = data[i];\n item = {};\n item[iScale.axis] = singleScale || iScale.parse(labels[i], i);\n parsed.push(parseValue(entry, item, vScale, i));\n }\n return parsed;\n}\nfunction isFloatBar(custom) {\n return custom && custom.barStart !== undefined && custom.barEnd !== undefined;\n}\nfunction barSign(size, vScale, actualBase) {\n if (size !== 0) {\n return sign(size);\n }\n return (vScale.isHorizontal() ? 1 : -1) * (vScale.min >= actualBase ? 1 : -1);\n}\nfunction borderProps(properties) {\n let reverse, start, end, top, bottom;\n if (properties.horizontal) {\n reverse = properties.base > properties.x;\n start = 'left';\n end = 'right';\n } else {\n reverse = properties.base < properties.y;\n start = 'bottom';\n end = 'top';\n }\n if (reverse) {\n top = 'end';\n bottom = 'start';\n } else {\n top = 'start';\n bottom = 'end';\n }\n return {\n start,\n end,\n reverse,\n top,\n bottom\n };\n}\nfunction setBorderSkipped(properties, options, stack, index) {\n let edge = options.borderSkipped;\n const res = {};\n if (!edge) {\n properties.borderSkipped = res;\n return;\n }\n if (edge === true) {\n properties.borderSkipped = {\n top: true,\n right: true,\n bottom: true,\n left: true\n };\n return;\n }\n const { start , end , reverse , top , bottom } = borderProps(properties);\n if (edge === 'middle' && stack) {\n properties.enableBorderRadius = true;\n if ((stack._top || 0) === index) {\n edge = top;\n } else if ((stack._bottom || 0) === index) {\n edge = bottom;\n } else {\n res[parseEdge(bottom, start, end, reverse)] = true;\n edge = top;\n }\n }\n res[parseEdge(edge, start, end, reverse)] = true;\n properties.borderSkipped = res;\n}\nfunction parseEdge(edge, a, b, reverse) {\n if (reverse) {\n edge = swap(edge, a, b);\n edge = startEnd(edge, b, a);\n } else {\n edge = startEnd(edge, a, b);\n }\n return edge;\n}\nfunction swap(orig, v1, v2) {\n return orig === v1 ? v2 : orig === v2 ? v1 : orig;\n}\nfunction startEnd(v, start, end) {\n return v === 'start' ? start : v === 'end' ? end : v;\n}\nfunction setInflateAmount(properties, { inflateAmount }, ratio) {\n properties.inflateAmount = inflateAmount === 'auto' ? ratio === 1 ? 0.33 : 0 : inflateAmount;\n}\nclass BarController extends DatasetController {\n static id = 'bar';\n static defaults = {\n datasetElementType: false,\n dataElementType: 'bar',\n categoryPercentage: 0.8,\n barPercentage: 0.9,\n grouped: true,\n animations: {\n numbers: {\n type: 'number',\n properties: [\n 'x',\n 'y',\n 'base',\n 'width',\n 'height'\n ]\n }\n }\n };\n static overrides = {\n scales: {\n _index_: {\n type: 'category',\n offset: true,\n grid: {\n offset: true\n }\n },\n _value_: {\n type: 'linear',\n beginAtZero: true\n }\n }\n };\n parsePrimitiveData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n parseArrayData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n parseObjectData(meta, data, start, count) {\n const { iScale , vScale } = meta;\n const { xAxisKey ='x' , yAxisKey ='y' } = this._parsing;\n const iAxisKey = iScale.axis === 'x' ? xAxisKey : yAxisKey;\n const vAxisKey = vScale.axis === 'x' ? xAxisKey : yAxisKey;\n const parsed = [];\n let i, ilen, item, obj;\n for(i = start, ilen = start + count; i < ilen; ++i){\n obj = data[i];\n item = {};\n item[iScale.axis] = iScale.parse(resolveObjectKey(obj, iAxisKey), i);\n parsed.push(parseValue(resolveObjectKey(obj, vAxisKey), item, vScale, i));\n }\n return parsed;\n }\n updateRangeFromParsed(range, scale, parsed, stack) {\n super.updateRangeFromParsed(range, scale, parsed, stack);\n const custom = parsed._custom;\n if (custom && scale === this._cachedMeta.vScale) {\n range.min = Math.min(range.min, custom.min);\n range.max = Math.max(range.max, custom.max);\n }\n }\n getMaxOverflow() {\n return 0;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const { iScale , vScale } = meta;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const value = isFloatBar(custom) ? '[' + custom.start + ', ' + custom.end + ']' : '' + vScale.getLabelForValue(parsed[vScale.axis]);\n return {\n label: '' + iScale.getLabelForValue(parsed[iScale.axis]),\n value\n };\n }\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n const meta = this._cachedMeta;\n meta.stack = this.getDataset().stack;\n }\n update(mode) {\n const meta = this._cachedMeta;\n this.updateElements(meta.data, 0, meta.data.length, mode);\n }\n updateElements(bars, start, count, mode) {\n const reset = mode === 'reset';\n const { index , _cachedMeta: { vScale } } = this;\n const base = vScale.getBasePixel();\n const horizontal = vScale.isHorizontal();\n const ruler = this._getRuler();\n const { sharedOptions , includeOptions } = this._getSharedOptions(start, mode);\n for(let i = start; i < start + count; i++){\n const parsed = this.getParsed(i);\n const vpixels = reset || isNullOrUndef(parsed[vScale.axis]) ? {\n base,\n head: base\n } : this._calculateBarValuePixels(i);\n const ipixels = this._calculateBarIndexPixels(i, ruler);\n const stack = (parsed._stacks || {})[vScale.axis];\n const properties = {\n horizontal,\n base: vpixels.base,\n enableBorderRadius: !stack || isFloatBar(parsed._custom) || index === stack._top || index === stack._bottom,\n x: horizontal ? vpixels.head : ipixels.center,\n y: horizontal ? ipixels.center : vpixels.head,\n height: horizontal ? ipixels.size : Math.abs(vpixels.size),\n width: horizontal ? Math.abs(vpixels.size) : ipixels.size\n };\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, bars[i].active ? 'active' : mode);\n }\n const options = properties.options || bars[i].options;\n setBorderSkipped(properties, options, stack, index);\n setInflateAmount(properties, options, ruler.ratio);\n this.updateElement(bars[i], i, properties, mode);\n }\n }\n _getStacks(last, dataIndex) {\n const { iScale } = this._cachedMeta;\n const metasets = iScale.getMatchingVisibleMetas(this._type).filter((meta)=>meta.controller.options.grouped);\n const stacked = iScale.options.stacked;\n const stacks = [];\n const currentParsed = this._cachedMeta.controller.getParsed(dataIndex);\n const iScaleValue = currentParsed && currentParsed[iScale.axis];\n const skipNull = (meta)=>{\n const parsed = meta._parsed.find((item)=>item[iScale.axis] === iScaleValue);\n const val = parsed && parsed[meta.vScale.axis];\n if (isNullOrUndef(val) || isNaN(val)) {\n return true;\n }\n };\n for (const meta of metasets){\n if (dataIndex !== undefined && skipNull(meta)) {\n continue;\n }\n if (stacked === false || stacks.indexOf(meta.stack) === -1 || stacked === undefined && meta.stack === undefined) {\n stacks.push(meta.stack);\n }\n if (meta.index === last) {\n break;\n }\n }\n if (!stacks.length) {\n stacks.push(undefined);\n }\n return stacks;\n }\n _getStackCount(index) {\n return this._getStacks(undefined, index).length;\n }\n _getAxisCount() {\n return this._getAxis().length;\n }\n getFirstScaleIdForIndexAxis() {\n const scales = this.chart.scales;\n const indexScaleId = this.chart.options.indexAxis;\n return Object.keys(scales).filter((key)=>scales[key].axis === indexScaleId).shift();\n }\n _getAxis() {\n const axis = {};\n const firstScaleAxisId = this.getFirstScaleIdForIndexAxis();\n for (const dataset of this.chart.data.datasets){\n axis[valueOrDefault(this.chart.options.indexAxis === 'x' ? dataset.xAxisID : dataset.yAxisID, firstScaleAxisId)] = true;\n }\n return Object.keys(axis);\n }\n _getStackIndex(datasetIndex, name, dataIndex) {\n const stacks = this._getStacks(datasetIndex, dataIndex);\n const index = name !== undefined ? stacks.indexOf(name) : -1;\n return index === -1 ? stacks.length - 1 : index;\n }\n _getRuler() {\n const opts = this.options;\n const meta = this._cachedMeta;\n const iScale = meta.iScale;\n const pixels = [];\n let i, ilen;\n for(i = 0, ilen = meta.data.length; i < ilen; ++i){\n pixels.push(iScale.getPixelForValue(this.getParsed(i)[iScale.axis], i));\n }\n const barThickness = opts.barThickness;\n const min = barThickness || computeMinSampleSize(meta);\n return {\n min,\n pixels,\n start: iScale._startPixel,\n end: iScale._endPixel,\n stackCount: this._getStackCount(),\n scale: iScale,\n grouped: opts.grouped,\n ratio: barThickness ? 1 : opts.categoryPercentage * opts.barPercentage\n };\n }\n _calculateBarValuePixels(index) {\n const { _cachedMeta: { vScale , _stacked , index: datasetIndex } , options: { base: baseValue , minBarLength } } = this;\n const actualBase = baseValue || 0;\n const parsed = this.getParsed(index);\n const custom = parsed._custom;\n const floating = isFloatBar(custom);\n let value = parsed[vScale.axis];\n let start = 0;\n let length = _stacked ? this.applyStack(vScale, parsed, _stacked) : value;\n let head, size;\n if (length !== value) {\n start = length - value;\n length = value;\n }\n if (floating) {\n value = custom.barStart;\n length = custom.barEnd - custom.barStart;\n if (value !== 0 && sign(value) !== sign(custom.barEnd)) {\n start = 0;\n }\n start += value;\n }\n const startValue = !isNullOrUndef(baseValue) && !floating ? baseValue : start;\n let base = vScale.getPixelForValue(startValue);\n if (this.chart.getDataVisibility(index)) {\n head = vScale.getPixelForValue(start + length);\n } else {\n head = base;\n }\n size = head - base;\n if (Math.abs(size) < minBarLength) {\n size = barSign(size, vScale, actualBase) * minBarLength;\n if (value === actualBase) {\n base -= size / 2;\n }\n const startPixel = vScale.getPixelForDecimal(0);\n const endPixel = vScale.getPixelForDecimal(1);\n const min = Math.min(startPixel, endPixel);\n const max = Math.max(startPixel, endPixel);\n base = Math.max(Math.min(base, max), min);\n head = base + size;\n if (_stacked && !floating) {\n parsed._stacks[vScale.axis]._visualValues[datasetIndex] = vScale.getValueForPixel(head) - vScale.getValueForPixel(base);\n }\n }\n if (base === vScale.getPixelForValue(actualBase)) {\n const halfGrid = sign(size) * vScale.getLineWidthForValue(actualBase) / 2;\n base += halfGrid;\n size -= halfGrid;\n }\n return {\n size,\n base,\n head,\n center: head + size / 2\n };\n }\n _calculateBarIndexPixels(index, ruler) {\n const scale = ruler.scale;\n const options = this.options;\n const skipNull = options.skipNull;\n const maxBarThickness = valueOrDefault(options.maxBarThickness, Infinity);\n let center, size;\n const axisCount = this._getAxisCount();\n if (ruler.grouped) {\n const stackCount = skipNull ? this._getStackCount(index) : ruler.stackCount;\n const range = options.barThickness === 'flex' ? computeFlexCategoryTraits(index, ruler, options, stackCount * axisCount) : computeFitCategoryTraits(index, ruler, options, stackCount * axisCount);\n const axisID = this.chart.options.indexAxis === 'x' ? this.getDataset().xAxisID : this.getDataset().yAxisID;\n const axisNumber = this._getAxis().indexOf(valueOrDefault(axisID, this.getFirstScaleIdForIndexAxis()));\n const stackIndex = this._getStackIndex(this.index, this._cachedMeta.stack, skipNull ? index : undefined) + axisNumber;\n center = range.start + range.chunk * stackIndex + range.chunk / 2;\n size = Math.min(maxBarThickness, range.chunk * range.ratio);\n } else {\n center = scale.getPixelForValue(this.getParsed(index)[scale.axis], index);\n size = Math.min(maxBarThickness, ruler.min * ruler.ratio);\n }\n return {\n base: center - size / 2,\n head: center + size / 2,\n center,\n size\n };\n }\n draw() {\n const meta = this._cachedMeta;\n const vScale = meta.vScale;\n const rects = meta.data;\n const ilen = rects.length;\n let i = 0;\n for(; i < ilen; ++i){\n if (this.getParsed(i)[vScale.axis] !== null && !rects[i].hidden) {\n rects[i].draw(this._ctx);\n }\n }\n }\n}\n\nclass BubbleController extends DatasetController {\n static id = 'bubble';\n static defaults = {\n datasetElementType: false,\n dataElementType: 'point',\n animations: {\n numbers: {\n type: 'number',\n properties: [\n 'x',\n 'y',\n 'borderWidth',\n 'radius'\n ]\n }\n }\n };\n static overrides = {\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n }\n };\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n }\n parsePrimitiveData(meta, data, start, count) {\n const parsed = super.parsePrimitiveData(meta, data, start, count);\n for(let i = 0; i < parsed.length; i++){\n parsed[i]._custom = this.resolveDataElementOptions(i + start).radius;\n }\n return parsed;\n }\n parseArrayData(meta, data, start, count) {\n const parsed = super.parseArrayData(meta, data, start, count);\n for(let i = 0; i < parsed.length; i++){\n const item = data[start + i];\n parsed[i]._custom = valueOrDefault(item[2], this.resolveDataElementOptions(i + start).radius);\n }\n return parsed;\n }\n parseObjectData(meta, data, start, count) {\n const parsed = super.parseObjectData(meta, data, start, count);\n for(let i = 0; i < parsed.length; i++){\n const item = data[start + i];\n parsed[i]._custom = valueOrDefault(item && item.r && +item.r, this.resolveDataElementOptions(i + start).radius);\n }\n return parsed;\n }\n getMaxOverflow() {\n const data = this._cachedMeta.data;\n let max = 0;\n for(let i = data.length - 1; i >= 0; --i){\n max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n }\n return max > 0 && max;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const labels = this.chart.data.labels || [];\n const { xScale , yScale } = meta;\n const parsed = this.getParsed(index);\n const x = xScale.getLabelForValue(parsed.x);\n const y = yScale.getLabelForValue(parsed.y);\n const r = parsed._custom;\n return {\n label: labels[index] || '',\n value: '(' + x + ', ' + y + (r ? ', ' + r : '') + ')'\n };\n }\n update(mode) {\n const points = this._cachedMeta.data;\n this.updateElements(points, 0, points.length, mode);\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const { iScale , vScale } = this._cachedMeta;\n const { sharedOptions , includeOptions } = this._getSharedOptions(start, mode);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n for(let i = start; i < start + count; i++){\n const point = points[i];\n const parsed = !reset && this.getParsed(i);\n const properties = {};\n const iPixel = properties[iAxis] = reset ? iScale.getPixelForDecimal(0.5) : iScale.getPixelForValue(parsed[iAxis]);\n const vPixel = properties[vAxis] = reset ? vScale.getBasePixel() : vScale.getPixelForValue(parsed[vAxis]);\n properties.skip = isNaN(iPixel) || isNaN(vPixel);\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n if (reset) {\n properties.options.radius = 0;\n }\n }\n this.updateElement(point, i, properties, mode);\n }\n }\n resolveDataElementOptions(index, mode) {\n const parsed = this.getParsed(index);\n let values = super.resolveDataElementOptions(index, mode);\n if (values.$shared) {\n values = Object.assign({}, values, {\n $shared: false\n });\n }\n const radius = values.radius;\n if (mode !== 'active') {\n values.radius = 0;\n }\n values.radius += valueOrDefault(parsed && parsed._custom, radius);\n return values;\n }\n}\n\nfunction getRatioAndOffset(rotation, circumference, cutout) {\n let ratioX = 1;\n let ratioY = 1;\n let offsetX = 0;\n let offsetY = 0;\n if (circumference < TAU) {\n const startAngle = rotation;\n const endAngle = startAngle + circumference;\n const startX = Math.cos(startAngle);\n const startY = Math.sin(startAngle);\n const endX = Math.cos(endAngle);\n const endY = Math.sin(endAngle);\n const calcMax = (angle, a, b)=>_angleBetween(angle, startAngle, endAngle, true) ? 1 : Math.max(a, a * cutout, b, b * cutout);\n const calcMin = (angle, a, b)=>_angleBetween(angle, startAngle, endAngle, true) ? -1 : Math.min(a, a * cutout, b, b * cutout);\n const maxX = calcMax(0, startX, endX);\n const maxY = calcMax(HALF_PI, startY, endY);\n const minX = calcMin(PI, startX, endX);\n const minY = calcMin(PI + HALF_PI, startY, endY);\n ratioX = (maxX - minX) / 2;\n ratioY = (maxY - minY) / 2;\n offsetX = -(maxX + minX) / 2;\n offsetY = -(maxY + minY) / 2;\n }\n return {\n ratioX,\n ratioY,\n offsetX,\n offsetY\n };\n}\nclass DoughnutController extends DatasetController {\n static id = 'doughnut';\n static defaults = {\n datasetElementType: false,\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: false\n },\n animations: {\n numbers: {\n type: 'number',\n properties: [\n 'circumference',\n 'endAngle',\n 'innerRadius',\n 'outerRadius',\n 'startAngle',\n 'x',\n 'y',\n 'offset',\n 'borderWidth',\n 'spacing'\n ]\n }\n },\n cutout: '50%',\n rotation: 0,\n circumference: 360,\n radius: '100%',\n spacing: 0,\n indexAxis: 'r'\n };\n static descriptors = {\n _scriptable: (name)=>name !== 'spacing',\n _indexable: (name)=>name !== 'spacing' && !name.startsWith('borderDash') && !name.startsWith('hoverBorderDash')\n };\n static overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels (chart) {\n const data = chart.data;\n const { labels: { pointStyle , textAlign , color , useBorderRadius , borderRadius } } = chart.legend.options;\n if (data.labels.length && data.datasets.length) {\n return data.labels.map((label, i)=>{\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n fontColor: color,\n hidden: !chart.getDataVisibility(i),\n lineDash: style.borderDash,\n lineDashOffset: style.borderDashOffset,\n lineJoin: style.borderJoinStyle,\n lineWidth: style.borderWidth,\n strokeStyle: style.borderColor,\n textAlign: textAlign,\n pointStyle: pointStyle,\n borderRadius: useBorderRadius && (borderRadius || style.borderRadius),\n index: i\n };\n });\n }\n return [];\n }\n },\n onClick (e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n }\n }\n };\n constructor(chart, datasetIndex){\n super(chart, datasetIndex);\n this.enableOptionSharing = true;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.offsetX = undefined;\n this.offsetY = undefined;\n }\n linkScales() {}\n parse(start, count) {\n const data = this.getDataset().data;\n const meta = this._cachedMeta;\n if (this._parsing === false) {\n meta._parsed = data;\n } else {\n let getter = (i)=>+data[i];\n if (isObject(data[start])) {\n const { key ='value' } = this._parsing;\n getter = (i)=>+resolveObjectKey(data[i], key);\n }\n let i, ilen;\n for(i = start, ilen = start + count; i < ilen; ++i){\n meta._parsed[i] = getter(i);\n }\n }\n }\n _getRotation() {\n return toRadians(this.options.rotation - 90);\n }\n _getCircumference() {\n return toRadians(this.options.circumference);\n }\n _getRotationExtents() {\n let min = TAU;\n let max = -TAU;\n for(let i = 0; i < this.chart.data.datasets.length; ++i){\n if (this.chart.isDatasetVisible(i) && this.chart.getDatasetMeta(i).type === this._type) {\n const controller = this.chart.getDatasetMeta(i).controller;\n const rotation = controller._getRotation();\n const circumference = controller._getCircumference();\n min = Math.min(min, rotation);\n max = Math.max(max, rotation + circumference);\n }\n }\n return {\n rotation: min,\n circumference: max - min\n };\n }\n update(mode) {\n const chart = this.chart;\n const { chartArea } = chart;\n const meta = this._cachedMeta;\n const arcs = meta.data;\n const spacing = this.getMaxBorderWidth() + this.getMaxOffset(arcs) + this.options.spacing;\n const maxSize = Math.max((Math.min(chartArea.width, chartArea.height) - spacing) / 2, 0);\n const cutout = Math.min(toPercentage(this.options.cutout, maxSize), 1);\n const chartWeight = this._getRingWeight(this.index);\n const { circumference , rotation } = this._getRotationExtents();\n const { ratioX , ratioY , offsetX , offsetY } = getRatioAndOffset(rotation, circumference, cutout);\n const maxWidth = (chartArea.width - spacing) / ratioX;\n const maxHeight = (chartArea.height - spacing) / ratioY;\n const maxRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\n const outerRadius = toDimension(this.options.radius, maxRadius);\n const innerRadius = Math.max(outerRadius * cutout, 0);\n const radiusLength = (outerRadius - innerRadius) / this._getVisibleDatasetWeightTotal();\n this.offsetX = offsetX * outerRadius;\n this.offsetY = offsetY * outerRadius;\n meta.total = this.calculateTotal();\n this.outerRadius = outerRadius - radiusLength * this._getRingWeightOffset(this.index);\n this.innerRadius = Math.max(this.outerRadius - radiusLength * chartWeight, 0);\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n _circumference(i, reset) {\n const opts = this.options;\n const meta = this._cachedMeta;\n const circumference = this._getCircumference();\n if (reset && opts.animation.animateRotate || !this.chart.getDataVisibility(i) || meta._parsed[i] === null || meta.data[i].hidden) {\n return 0;\n }\n return this.calculateCircumference(meta._parsed[i] * circumference / TAU);\n }\n updateElements(arcs, start, count, mode) {\n const reset = mode === 'reset';\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const animationOpts = opts.animation;\n const centerX = (chartArea.left + chartArea.right) / 2;\n const centerY = (chartArea.top + chartArea.bottom) / 2;\n const animateScale = reset && animationOpts.animateScale;\n const innerRadius = animateScale ? 0 : this.innerRadius;\n const outerRadius = animateScale ? 0 : this.outerRadius;\n const { sharedOptions , includeOptions } = this._getSharedOptions(start, mode);\n let startAngle = this._getRotation();\n let i;\n for(i = 0; i < start; ++i){\n startAngle += this._circumference(i, reset);\n }\n for(i = start; i < start + count; ++i){\n const circumference = this._circumference(i, reset);\n const arc = arcs[i];\n const properties = {\n x: centerX + this.offsetX,\n y: centerY + this.offsetY,\n startAngle,\n endAngle: startAngle + circumference,\n circumference,\n outerRadius,\n innerRadius\n };\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, arc.active ? 'active' : mode);\n }\n startAngle += circumference;\n this.updateElement(arc, i, properties, mode);\n }\n }\n calculateTotal() {\n const meta = this._cachedMeta;\n const metaData = meta.data;\n let total = 0;\n let i;\n for(i = 0; i < metaData.length; i++){\n const value = meta._parsed[i];\n if (value !== null && !isNaN(value) && this.chart.getDataVisibility(i) && !metaData[i].hidden) {\n total += Math.abs(value);\n }\n }\n return total;\n }\n calculateCircumference(value) {\n const total = this._cachedMeta.total;\n if (total > 0 && !isNaN(value)) {\n return TAU * (Math.abs(value) / total);\n }\n return 0;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const chart = this.chart;\n const labels = chart.data.labels || [];\n const value = formatNumber(meta._parsed[index], chart.options.locale);\n return {\n label: labels[index] || '',\n value\n };\n }\n getMaxBorderWidth(arcs) {\n let max = 0;\n const chart = this.chart;\n let i, ilen, meta, controller, options;\n if (!arcs) {\n for(i = 0, ilen = chart.data.datasets.length; i < ilen; ++i){\n if (chart.isDatasetVisible(i)) {\n meta = chart.getDatasetMeta(i);\n arcs = meta.data;\n controller = meta.controller;\n break;\n }\n }\n }\n if (!arcs) {\n return 0;\n }\n for(i = 0, ilen = arcs.length; i < ilen; ++i){\n options = controller.resolveDataElementOptions(i);\n if (options.borderAlign !== 'inner') {\n max = Math.max(max, options.borderWidth || 0, options.hoverBorderWidth || 0);\n }\n }\n return max;\n }\n getMaxOffset(arcs) {\n let max = 0;\n for(let i = 0, ilen = arcs.length; i < ilen; ++i){\n const options = this.resolveDataElementOptions(i);\n max = Math.max(max, options.offset || 0, options.hoverOffset || 0);\n }\n return max;\n }\n _getRingWeightOffset(datasetIndex) {\n let ringWeightOffset = 0;\n for(let i = 0; i < datasetIndex; ++i){\n if (this.chart.isDatasetVisible(i)) {\n ringWeightOffset += this._getRingWeight(i);\n }\n }\n return ringWeightOffset;\n }\n _getRingWeight(datasetIndex) {\n return Math.max(valueOrDefault(this.chart.data.datasets[datasetIndex].weight, 1), 0);\n }\n _getVisibleDatasetWeightTotal() {\n return this._getRingWeightOffset(this.chart.data.datasets.length) || 1;\n }\n}\n\nclass LineController extends DatasetController {\n static id = 'line';\n static defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n showLine: true,\n spanGaps: false\n };\n static overrides = {\n scales: {\n _index_: {\n type: 'category'\n },\n _value_: {\n type: 'linear'\n }\n }\n };\n initialize() {\n this.enableOptionSharing = true;\n this.supportsDecimation = true;\n super.initialize();\n }\n update(mode) {\n const meta = this._cachedMeta;\n const { dataset: line , data: points = [] , _dataset } = meta;\n const animationsDisabled = this.chart._animationsDisabled;\n let { start , count } = _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled);\n this._drawStart = start;\n this._drawCount = count;\n if (_scaleRangesChanged(meta)) {\n start = 0;\n count = points.length;\n }\n line._chart = this.chart;\n line._datasetIndex = this.index;\n line._decimated = !!_dataset._decimated;\n line.points = points;\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n options.segment = this.options.segment;\n this.updateElement(line, undefined, {\n animated: !animationsDisabled,\n options\n }, mode);\n this.updateElements(points, start, count, mode);\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const { iScale , vScale , _stacked , _dataset } = this._cachedMeta;\n const { sharedOptions , includeOptions } = this._getSharedOptions(start, mode);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const { spanGaps , segment } = this.options;\n const maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n const directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n const end = start + count;\n const pointsCount = points.length;\n let prevParsed = start > 0 && this.getParsed(start - 1);\n for(let i = 0; i < pointsCount; ++i){\n const point = points[i];\n const properties = directUpdate ? point : {};\n if (i < start || i >= end) {\n properties.skip = true;\n continue;\n }\n const parsed = this.getParsed(i);\n const nullData = isNullOrUndef(parsed[vAxis]);\n const iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n properties.stop = i > 0 && Math.abs(parsed[iAxis] - prevParsed[iAxis]) > maxGapLength;\n if (segment) {\n properties.parsed = parsed;\n properties.raw = _dataset.data[i];\n }\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n }\n if (!directUpdate) {\n this.updateElement(point, i, properties, mode);\n }\n prevParsed = parsed;\n }\n }\n getMaxOverflow() {\n const meta = this._cachedMeta;\n const dataset = meta.dataset;\n const border = dataset.options && dataset.options.borderWidth || 0;\n const data = meta.data || [];\n if (!data.length) {\n return border;\n }\n const firstPoint = data[0].size(this.resolveDataElementOptions(0));\n const lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n return Math.max(border, firstPoint, lastPoint) / 2;\n }\n draw() {\n const meta = this._cachedMeta;\n meta.dataset.updateControlPoints(this.chart.chartArea, meta.iScale.axis);\n super.draw();\n }\n}\n\nclass PolarAreaController extends DatasetController {\n static id = 'polarArea';\n static defaults = {\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: true\n },\n animations: {\n numbers: {\n type: 'number',\n properties: [\n 'x',\n 'y',\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius'\n ]\n }\n },\n indexAxis: 'r',\n startAngle: 0\n };\n static overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels (chart) {\n const data = chart.data;\n if (data.labels.length && data.datasets.length) {\n const { labels: { pointStyle , color } } = chart.legend.options;\n return data.labels.map((label, i)=>{\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n fontColor: color,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n index: i\n };\n });\n }\n return [];\n }\n },\n onClick (e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n }\n },\n scales: {\n r: {\n type: 'radialLinear',\n angleLines: {\n display: false\n },\n beginAtZero: true,\n grid: {\n circular: true\n },\n pointLabels: {\n display: false\n },\n startAngle: 0\n }\n }\n };\n constructor(chart, datasetIndex){\n super(chart, datasetIndex);\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n }\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const chart = this.chart;\n const labels = chart.data.labels || [];\n const value = formatNumber(meta._parsed[index].r, chart.options.locale);\n return {\n label: labels[index] || '',\n value\n };\n }\n parseObjectData(meta, data, start, count) {\n return _parseObjectDataRadialScale.bind(this)(meta, data, start, count);\n }\n update(mode) {\n const arcs = this._cachedMeta.data;\n this._updateRadius();\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n getMinMax() {\n const meta = this._cachedMeta;\n const range = {\n min: Number.POSITIVE_INFINITY,\n max: Number.NEGATIVE_INFINITY\n };\n meta.data.forEach((element, index)=>{\n const parsed = this.getParsed(index).r;\n if (!isNaN(parsed) && this.chart.getDataVisibility(index)) {\n if (parsed < range.min) {\n range.min = parsed;\n }\n if (parsed > range.max) {\n range.max = parsed;\n }\n }\n });\n return range;\n }\n _updateRadius() {\n const chart = this.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\n const outerRadius = Math.max(minSize / 2, 0);\n const innerRadius = Math.max(opts.cutoutPercentage ? outerRadius / 100 * opts.cutoutPercentage : 1, 0);\n const radiusLength = (outerRadius - innerRadius) / chart.getVisibleDatasetCount();\n this.outerRadius = outerRadius - radiusLength * this.index;\n this.innerRadius = this.outerRadius - radiusLength;\n }\n updateElements(arcs, start, count, mode) {\n const reset = mode === 'reset';\n const chart = this.chart;\n const opts = chart.options;\n const animationOpts = opts.animation;\n const scale = this._cachedMeta.rScale;\n const centerX = scale.xCenter;\n const centerY = scale.yCenter;\n const datasetStartAngle = scale.getIndexAngle(0) - 0.5 * PI;\n let angle = datasetStartAngle;\n let i;\n const defaultAngle = 360 / this.countVisibleElements();\n for(i = 0; i < start; ++i){\n angle += this._computeAngle(i, mode, defaultAngle);\n }\n for(i = start; i < start + count; i++){\n const arc = arcs[i];\n let startAngle = angle;\n let endAngle = angle + this._computeAngle(i, mode, defaultAngle);\n let outerRadius = chart.getDataVisibility(i) ? scale.getDistanceFromCenterForValue(this.getParsed(i).r) : 0;\n angle = endAngle;\n if (reset) {\n if (animationOpts.animateScale) {\n outerRadius = 0;\n }\n if (animationOpts.animateRotate) {\n startAngle = endAngle = datasetStartAngle;\n }\n }\n const properties = {\n x: centerX,\n y: centerY,\n innerRadius: 0,\n outerRadius,\n startAngle,\n endAngle,\n options: this.resolveDataElementOptions(i, arc.active ? 'active' : mode)\n };\n this.updateElement(arc, i, properties, mode);\n }\n }\n countVisibleElements() {\n const meta = this._cachedMeta;\n let count = 0;\n meta.data.forEach((element, index)=>{\n if (!isNaN(this.getParsed(index).r) && this.chart.getDataVisibility(index)) {\n count++;\n }\n });\n return count;\n }\n _computeAngle(index, mode, defaultAngle) {\n return this.chart.getDataVisibility(index) ? toRadians(this.resolveDataElementOptions(index, mode).angle || defaultAngle) : 0;\n }\n}\n\nclass PieController extends DoughnutController {\n static id = 'pie';\n static defaults = {\n cutout: 0,\n rotation: 0,\n circumference: 360,\n radius: '100%'\n };\n}\n\nclass RadarController extends DatasetController {\n static id = 'radar';\n static defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n indexAxis: 'r',\n showLine: true,\n elements: {\n line: {\n fill: 'start'\n }\n }\n };\n static overrides = {\n aspectRatio: 1,\n scales: {\n r: {\n type: 'radialLinear'\n }\n }\n };\n getLabelAndValue(index) {\n const vScale = this._cachedMeta.vScale;\n const parsed = this.getParsed(index);\n return {\n label: vScale.getLabels()[index],\n value: '' + vScale.getLabelForValue(parsed[vScale.axis])\n };\n }\n parseObjectData(meta, data, start, count) {\n return _parseObjectDataRadialScale.bind(this)(meta, data, start, count);\n }\n update(mode) {\n const meta = this._cachedMeta;\n const line = meta.dataset;\n const points = meta.data || [];\n const labels = meta.iScale.getLabels();\n line.points = points;\n if (mode !== 'resize') {\n const options = this.resolveDatasetElementOptions(mode);\n if (!this.options.showLine) {\n options.borderWidth = 0;\n }\n const properties = {\n _loop: true,\n _fullLoop: labels.length === points.length,\n options\n };\n this.updateElement(line, undefined, properties, mode);\n }\n this.updateElements(points, 0, points.length, mode);\n }\n updateElements(points, start, count, mode) {\n const scale = this._cachedMeta.rScale;\n const reset = mode === 'reset';\n for(let i = start; i < start + count; i++){\n const point = points[i];\n const options = this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n const pointPosition = scale.getPointPositionForValue(i, this.getParsed(i).r);\n const x = reset ? scale.xCenter : pointPosition.x;\n const y = reset ? scale.yCenter : pointPosition.y;\n const properties = {\n x,\n y,\n angle: pointPosition.angle,\n skip: isNaN(x) || isNaN(y),\n options\n };\n this.updateElement(point, i, properties, mode);\n }\n }\n}\n\nclass ScatterController extends DatasetController {\n static id = 'scatter';\n static defaults = {\n datasetElementType: false,\n dataElementType: 'point',\n showLine: false,\n fill: false\n };\n static overrides = {\n interaction: {\n mode: 'point'\n },\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n }\n };\n getLabelAndValue(index) {\n const meta = this._cachedMeta;\n const labels = this.chart.data.labels || [];\n const { xScale , yScale } = meta;\n const parsed = this.getParsed(index);\n const x = xScale.getLabelForValue(parsed.x);\n const y = yScale.getLabelForValue(parsed.y);\n return {\n label: labels[index] || '',\n value: '(' + x + ', ' + y + ')'\n };\n }\n update(mode) {\n const meta = this._cachedMeta;\n const { data: points = [] } = meta;\n const animationsDisabled = this.chart._animationsDisabled;\n let { start , count } = _getStartAndCountOfVisiblePoints(meta, points, animationsDisabled);\n this._drawStart = start;\n this._drawCount = count;\n if (_scaleRangesChanged(meta)) {\n start = 0;\n count = points.length;\n }\n if (this.options.showLine) {\n if (!this.datasetElementType) {\n this.addElements();\n }\n const { dataset: line , _dataset } = meta;\n line._chart = this.chart;\n line._datasetIndex = this.index;\n line._decimated = !!_dataset._decimated;\n line.points = points;\n const options = this.resolveDatasetElementOptions(mode);\n options.segment = this.options.segment;\n this.updateElement(line, undefined, {\n animated: !animationsDisabled,\n options\n }, mode);\n } else if (this.datasetElementType) {\n delete meta.dataset;\n this.datasetElementType = false;\n }\n this.updateElements(points, start, count, mode);\n }\n addElements() {\n const { showLine } = this.options;\n if (!this.datasetElementType && showLine) {\n this.datasetElementType = this.chart.registry.getElement('line');\n }\n super.addElements();\n }\n updateElements(points, start, count, mode) {\n const reset = mode === 'reset';\n const { iScale , vScale , _stacked , _dataset } = this._cachedMeta;\n const firstOpts = this.resolveDataElementOptions(start, mode);\n const sharedOptions = this.getSharedOptions(firstOpts);\n const includeOptions = this.includeOptions(mode, sharedOptions);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const { spanGaps , segment } = this.options;\n const maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n const directUpdate = this.chart._animationsDisabled || reset || mode === 'none';\n let prevParsed = start > 0 && this.getParsed(start - 1);\n for(let i = start; i < start + count; ++i){\n const point = points[i];\n const parsed = this.getParsed(i);\n const properties = directUpdate ? point : {};\n const nullData = isNullOrUndef(parsed[vAxis]);\n const iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? this.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n properties.stop = i > 0 && Math.abs(parsed[iAxis] - prevParsed[iAxis]) > maxGapLength;\n if (segment) {\n properties.parsed = parsed;\n properties.raw = _dataset.data[i];\n }\n if (includeOptions) {\n properties.options = sharedOptions || this.resolveDataElementOptions(i, point.active ? 'active' : mode);\n }\n if (!directUpdate) {\n this.updateElement(point, i, properties, mode);\n }\n prevParsed = parsed;\n }\n this.updateSharedOptions(sharedOptions, mode, firstOpts);\n }\n getMaxOverflow() {\n const meta = this._cachedMeta;\n const data = meta.data || [];\n if (!this.options.showLine) {\n let max = 0;\n for(let i = data.length - 1; i >= 0; --i){\n max = Math.max(max, data[i].size(this.resolveDataElementOptions(i)) / 2);\n }\n return max > 0 && max;\n }\n const dataset = meta.dataset;\n const border = dataset.options && dataset.options.borderWidth || 0;\n if (!data.length) {\n return border;\n }\n const firstPoint = data[0].size(this.resolveDataElementOptions(0));\n const lastPoint = data[data.length - 1].size(this.resolveDataElementOptions(data.length - 1));\n return Math.max(border, firstPoint, lastPoint) / 2;\n }\n}\n\nvar controllers = /*#__PURE__*/Object.freeze({\n__proto__: null,\nBarController: BarController,\nBubbleController: BubbleController,\nDoughnutController: DoughnutController,\nLineController: LineController,\nPieController: PieController,\nPolarAreaController: PolarAreaController,\nRadarController: RadarController,\nScatterController: ScatterController\n});\n\n/**\n * @namespace Chart._adapters\n * @since 2.8.0\n * @private\n */ function abstract() {\n throw new Error('This method is not implemented: Check that a complete date adapter is provided.');\n}\n/**\n * Date adapter (current used by the time scale)\n * @namespace Chart._adapters._date\n * @memberof Chart._adapters\n * @private\n */ class DateAdapterBase {\n /**\n * Override default date adapter methods.\n * Accepts type parameter to define options type.\n * @example\n * Chart._adapters._date.override<{myAdapterOption: string}>({\n * init() {\n * console.log(this.options.myAdapterOption);\n * }\n * })\n */ static override(members) {\n Object.assign(DateAdapterBase.prototype, members);\n }\n options;\n constructor(options){\n this.options = options || {};\n }\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n init() {}\n formats() {\n return abstract();\n }\n parse() {\n return abstract();\n }\n format() {\n return abstract();\n }\n add() {\n return abstract();\n }\n diff() {\n return abstract();\n }\n startOf() {\n return abstract();\n }\n endOf() {\n return abstract();\n }\n}\nvar adapters = {\n _date: DateAdapterBase\n};\n\nfunction binarySearch(metaset, axis, value, intersect) {\n const { controller , data , _sorted } = metaset;\n const iScale = controller._cachedMeta.iScale;\n const spanGaps = metaset.dataset ? metaset.dataset.options ? metaset.dataset.options.spanGaps : null : null;\n if (iScale && axis === iScale.axis && axis !== 'r' && _sorted && data.length) {\n const lookupMethod = iScale._reversePixels ? _rlookupByKey : _lookupByKey;\n if (!intersect) {\n const result = lookupMethod(data, axis, value);\n if (spanGaps) {\n const { vScale } = controller._cachedMeta;\n const { _parsed } = metaset;\n const distanceToDefinedLo = _parsed.slice(0, result.lo + 1).reverse().findIndex((point)=>!isNullOrUndef(point[vScale.axis]));\n result.lo -= Math.max(0, distanceToDefinedLo);\n const distanceToDefinedHi = _parsed.slice(result.hi).findIndex((point)=>!isNullOrUndef(point[vScale.axis]));\n result.hi += Math.max(0, distanceToDefinedHi);\n }\n return result;\n } else if (controller._sharedOptions) {\n const el = data[0];\n const range = typeof el.getRange === 'function' && el.getRange(axis);\n if (range) {\n const start = lookupMethod(data, axis, value - range);\n const end = lookupMethod(data, axis, value + range);\n return {\n lo: start.lo,\n hi: end.hi\n };\n }\n }\n }\n return {\n lo: 0,\n hi: data.length - 1\n };\n}\n function evaluateInteractionItems(chart, axis, position, handler, intersect) {\n const metasets = chart.getSortedVisibleDatasetMetas();\n const value = position[axis];\n for(let i = 0, ilen = metasets.length; i < ilen; ++i){\n const { index , data } = metasets[i];\n const { lo , hi } = binarySearch(metasets[i], axis, value, intersect);\n for(let j = lo; j <= hi; ++j){\n const element = data[j];\n if (!element.skip) {\n handler(element, index, j);\n }\n }\n }\n}\n function getDistanceMetricForAxis(axis) {\n const useX = axis.indexOf('x') !== -1;\n const useY = axis.indexOf('y') !== -1;\n return function(pt1, pt2) {\n const deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\n const deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\n return Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\n };\n}\n function getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) {\n const items = [];\n if (!includeInvisible && !chart.isPointInArea(position)) {\n return items;\n }\n const evaluationFunc = function(element, datasetIndex, index) {\n if (!includeInvisible && !_isPointInArea(element, chart.chartArea, 0)) {\n return;\n }\n if (element.inRange(position.x, position.y, useFinalPosition)) {\n items.push({\n element,\n datasetIndex,\n index\n });\n }\n };\n evaluateInteractionItems(chart, axis, position, evaluationFunc, true);\n return items;\n}\n function getNearestRadialItems(chart, position, axis, useFinalPosition) {\n let items = [];\n function evaluationFunc(element, datasetIndex, index) {\n const { startAngle , endAngle } = element.getProps([\n 'startAngle',\n 'endAngle'\n ], useFinalPosition);\n const { angle } = getAngleFromPoint(element, {\n x: position.x,\n y: position.y\n });\n if (_angleBetween(angle, startAngle, endAngle)) {\n items.push({\n element,\n datasetIndex,\n index\n });\n }\n }\n evaluateInteractionItems(chart, axis, position, evaluationFunc);\n return items;\n}\n function getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition, includeInvisible) {\n let items = [];\n const distanceMetric = getDistanceMetricForAxis(axis);\n let minDistance = Number.POSITIVE_INFINITY;\n function evaluationFunc(element, datasetIndex, index) {\n const inRange = element.inRange(position.x, position.y, useFinalPosition);\n if (intersect && !inRange) {\n return;\n }\n const center = element.getCenterPoint(useFinalPosition);\n const pointInArea = !!includeInvisible || chart.isPointInArea(center);\n if (!pointInArea && !inRange) {\n return;\n }\n const distance = distanceMetric(position, center);\n if (distance < minDistance) {\n items = [\n {\n element,\n datasetIndex,\n index\n }\n ];\n minDistance = distance;\n } else if (distance === minDistance) {\n items.push({\n element,\n datasetIndex,\n index\n });\n }\n }\n evaluateInteractionItems(chart, axis, position, evaluationFunc);\n return items;\n}\n function getNearestItems(chart, position, axis, intersect, useFinalPosition, includeInvisible) {\n if (!includeInvisible && !chart.isPointInArea(position)) {\n return [];\n }\n return axis === 'r' && !intersect ? getNearestRadialItems(chart, position, axis, useFinalPosition) : getNearestCartesianItems(chart, position, axis, intersect, useFinalPosition, includeInvisible);\n}\n function getAxisItems(chart, position, axis, intersect, useFinalPosition) {\n const items = [];\n const rangeMethod = axis === 'x' ? 'inXRange' : 'inYRange';\n let intersectsItem = false;\n evaluateInteractionItems(chart, axis, position, (element, datasetIndex, index)=>{\n if (element[rangeMethod] && element[rangeMethod](position[axis], useFinalPosition)) {\n items.push({\n element,\n datasetIndex,\n index\n });\n intersectsItem = intersectsItem || element.inRange(position.x, position.y, useFinalPosition);\n }\n });\n if (intersect && !intersectsItem) {\n return [];\n }\n return items;\n}\n var Interaction = {\n evaluateInteractionItems,\n modes: {\n index (chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'x';\n const includeInvisible = options.includeInvisible || false;\n const items = options.intersect ? getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) : getNearestItems(chart, position, axis, false, useFinalPosition, includeInvisible);\n const elements = [];\n if (!items.length) {\n return [];\n }\n chart.getSortedVisibleDatasetMetas().forEach((meta)=>{\n const index = items[0].index;\n const element = meta.data[index];\n if (element && !element.skip) {\n elements.push({\n element,\n datasetIndex: meta.index,\n index\n });\n }\n });\n return elements;\n },\n dataset (chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n let items = options.intersect ? getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible) : getNearestItems(chart, position, axis, false, useFinalPosition, includeInvisible);\n if (items.length > 0) {\n const datasetIndex = items[0].datasetIndex;\n const data = chart.getDatasetMeta(datasetIndex).data;\n items = [];\n for(let i = 0; i < data.length; ++i){\n items.push({\n element: data[i],\n datasetIndex,\n index: i\n });\n }\n }\n return items;\n },\n point (chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n return getIntersectItems(chart, position, axis, useFinalPosition, includeInvisible);\n },\n nearest (chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n const includeInvisible = options.includeInvisible || false;\n return getNearestItems(chart, position, axis, options.intersect, useFinalPosition, includeInvisible);\n },\n x (chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n return getAxisItems(chart, position, 'x', options.intersect, useFinalPosition);\n },\n y (chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n return getAxisItems(chart, position, 'y', options.intersect, useFinalPosition);\n }\n }\n};\n\nconst STATIC_POSITIONS = [\n 'left',\n 'top',\n 'right',\n 'bottom'\n];\nfunction filterByPosition(array, position) {\n return array.filter((v)=>v.pos === position);\n}\nfunction filterDynamicPositionByAxis(array, axis) {\n return array.filter((v)=>STATIC_POSITIONS.indexOf(v.pos) === -1 && v.box.axis === axis);\n}\nfunction sortByWeight(array, reverse) {\n return array.sort((a, b)=>{\n const v0 = reverse ? b : a;\n const v1 = reverse ? a : b;\n return v0.weight === v1.weight ? v0.index - v1.index : v0.weight - v1.weight;\n });\n}\nfunction wrapBoxes(boxes) {\n const layoutBoxes = [];\n let i, ilen, box, pos, stack, stackWeight;\n for(i = 0, ilen = (boxes || []).length; i < ilen; ++i){\n box = boxes[i];\n ({ position: pos , options: { stack , stackWeight =1 } } = box);\n layoutBoxes.push({\n index: i,\n box,\n pos,\n horizontal: box.isHorizontal(),\n weight: box.weight,\n stack: stack && pos + stack,\n stackWeight\n });\n }\n return layoutBoxes;\n}\nfunction buildStacks(layouts) {\n const stacks = {};\n for (const wrap of layouts){\n const { stack , pos , stackWeight } = wrap;\n if (!stack || !STATIC_POSITIONS.includes(pos)) {\n continue;\n }\n const _stack = stacks[stack] || (stacks[stack] = {\n count: 0,\n placed: 0,\n weight: 0,\n size: 0\n });\n _stack.count++;\n _stack.weight += stackWeight;\n }\n return stacks;\n}\n function setLayoutDims(layouts, params) {\n const stacks = buildStacks(layouts);\n const { vBoxMaxWidth , hBoxMaxHeight } = params;\n let i, ilen, layout;\n for(i = 0, ilen = layouts.length; i < ilen; ++i){\n layout = layouts[i];\n const { fullSize } = layout.box;\n const stack = stacks[layout.stack];\n const factor = stack && layout.stackWeight / stack.weight;\n if (layout.horizontal) {\n layout.width = factor ? factor * vBoxMaxWidth : fullSize && params.availableWidth;\n layout.height = hBoxMaxHeight;\n } else {\n layout.width = vBoxMaxWidth;\n layout.height = factor ? factor * hBoxMaxHeight : fullSize && params.availableHeight;\n }\n }\n return stacks;\n}\nfunction buildLayoutBoxes(boxes) {\n const layoutBoxes = wrapBoxes(boxes);\n const fullSize = sortByWeight(layoutBoxes.filter((wrap)=>wrap.box.fullSize), true);\n const left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\n const right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\n const top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\n const bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\n const centerHorizontal = filterDynamicPositionByAxis(layoutBoxes, 'x');\n const centerVertical = filterDynamicPositionByAxis(layoutBoxes, 'y');\n return {\n fullSize,\n leftAndTop: left.concat(top),\n rightAndBottom: right.concat(centerVertical).concat(bottom).concat(centerHorizontal),\n chartArea: filterByPosition(layoutBoxes, 'chartArea'),\n vertical: left.concat(right).concat(centerVertical),\n horizontal: top.concat(bottom).concat(centerHorizontal)\n };\n}\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\n return Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\n}\nfunction updateMaxPadding(maxPadding, boxPadding) {\n maxPadding.top = Math.max(maxPadding.top, boxPadding.top);\n maxPadding.left = Math.max(maxPadding.left, boxPadding.left);\n maxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\n maxPadding.right = Math.max(maxPadding.right, boxPadding.right);\n}\nfunction updateDims(chartArea, params, layout, stacks) {\n const { pos , box } = layout;\n const maxPadding = chartArea.maxPadding;\n if (!isObject(pos)) {\n if (layout.size) {\n chartArea[pos] -= layout.size;\n }\n const stack = stacks[layout.stack] || {\n size: 0,\n count: 1\n };\n stack.size = Math.max(stack.size, layout.horizontal ? box.height : box.width);\n layout.size = stack.size / stack.count;\n chartArea[pos] += layout.size;\n }\n if (box.getPadding) {\n updateMaxPadding(maxPadding, box.getPadding());\n }\n const newWidth = Math.max(0, params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right'));\n const newHeight = Math.max(0, params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom'));\n const widthChanged = newWidth !== chartArea.w;\n const heightChanged = newHeight !== chartArea.h;\n chartArea.w = newWidth;\n chartArea.h = newHeight;\n return layout.horizontal ? {\n same: widthChanged,\n other: heightChanged\n } : {\n same: heightChanged,\n other: widthChanged\n };\n}\nfunction handleMaxPadding(chartArea) {\n const maxPadding = chartArea.maxPadding;\n function updatePos(pos) {\n const change = Math.max(maxPadding[pos] - chartArea[pos], 0);\n chartArea[pos] += change;\n return change;\n }\n chartArea.y += updatePos('top');\n chartArea.x += updatePos('left');\n updatePos('right');\n updatePos('bottom');\n}\nfunction getMargins(horizontal, chartArea) {\n const maxPadding = chartArea.maxPadding;\n function marginForPositions(positions) {\n const margin = {\n left: 0,\n top: 0,\n right: 0,\n bottom: 0\n };\n positions.forEach((pos)=>{\n margin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\n });\n return margin;\n }\n return horizontal ? marginForPositions([\n 'left',\n 'right'\n ]) : marginForPositions([\n 'top',\n 'bottom'\n ]);\n}\nfunction fitBoxes(boxes, chartArea, params, stacks) {\n const refitBoxes = [];\n let i, ilen, layout, box, refit, changed;\n for(i = 0, ilen = boxes.length, refit = 0; i < ilen; ++i){\n layout = boxes[i];\n box = layout.box;\n box.update(layout.width || chartArea.w, layout.height || chartArea.h, getMargins(layout.horizontal, chartArea));\n const { same , other } = updateDims(chartArea, params, layout, stacks);\n refit |= same && refitBoxes.length;\n changed = changed || other;\n if (!box.fullSize) {\n refitBoxes.push(layout);\n }\n }\n return refit && fitBoxes(refitBoxes, chartArea, params, stacks) || changed;\n}\nfunction setBoxDims(box, left, top, width, height) {\n box.top = top;\n box.left = left;\n box.right = left + width;\n box.bottom = top + height;\n box.width = width;\n box.height = height;\n}\nfunction placeBoxes(boxes, chartArea, params, stacks) {\n const userPadding = params.padding;\n let { x , y } = chartArea;\n for (const layout of boxes){\n const box = layout.box;\n const stack = stacks[layout.stack] || {\n count: 1,\n placed: 0,\n weight: 1\n };\n const weight = layout.stackWeight / stack.weight || 1;\n if (layout.horizontal) {\n const width = chartArea.w * weight;\n const height = stack.size || box.height;\n if (defined(stack.start)) {\n y = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, userPadding.left, y, params.outerWidth - userPadding.right - userPadding.left, height);\n } else {\n setBoxDims(box, chartArea.left + stack.placed, y, width, height);\n }\n stack.start = y;\n stack.placed += width;\n y = box.bottom;\n } else {\n const height = chartArea.h * weight;\n const width = stack.size || box.width;\n if (defined(stack.start)) {\n x = stack.start;\n }\n if (box.fullSize) {\n setBoxDims(box, x, userPadding.top, width, params.outerHeight - userPadding.bottom - userPadding.top);\n } else {\n setBoxDims(box, x, chartArea.top + stack.placed, width, height);\n }\n stack.start = x;\n stack.placed += height;\n x = box.right;\n }\n }\n chartArea.x = x;\n chartArea.y = y;\n}\nvar layouts = {\n addBox (chart, item) {\n if (!chart.boxes) {\n chart.boxes = [];\n }\n item.fullSize = item.fullSize || false;\n item.position = item.position || 'top';\n item.weight = item.weight || 0;\n item._layers = item._layers || function() {\n return [\n {\n z: 0,\n draw (chartArea) {\n item.draw(chartArea);\n }\n }\n ];\n };\n chart.boxes.push(item);\n },\n removeBox (chart, layoutItem) {\n const index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\n if (index !== -1) {\n chart.boxes.splice(index, 1);\n }\n },\n configure (chart, item, options) {\n item.fullSize = options.fullSize;\n item.position = options.position;\n item.weight = options.weight;\n },\n update (chart, width, height, minPadding) {\n if (!chart) {\n return;\n }\n const padding = toPadding(chart.options.layout.padding);\n const availableWidth = Math.max(width - padding.width, 0);\n const availableHeight = Math.max(height - padding.height, 0);\n const boxes = buildLayoutBoxes(chart.boxes);\n const verticalBoxes = boxes.vertical;\n const horizontalBoxes = boxes.horizontal;\n each(chart.boxes, (box)=>{\n if (typeof box.beforeLayout === 'function') {\n box.beforeLayout();\n }\n });\n const visibleVerticalBoxCount = verticalBoxes.reduce((total, wrap)=>wrap.box.options && wrap.box.options.display === false ? total : total + 1, 0) || 1;\n const params = Object.freeze({\n outerWidth: width,\n outerHeight: height,\n padding,\n availableWidth,\n availableHeight,\n vBoxMaxWidth: availableWidth / 2 / visibleVerticalBoxCount,\n hBoxMaxHeight: availableHeight / 2\n });\n const maxPadding = Object.assign({}, padding);\n updateMaxPadding(maxPadding, toPadding(minPadding));\n const chartArea = Object.assign({\n maxPadding,\n w: availableWidth,\n h: availableHeight,\n x: padding.left,\n y: padding.top\n }, padding);\n const stacks = setLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\n fitBoxes(boxes.fullSize, chartArea, params, stacks);\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n if (fitBoxes(horizontalBoxes, chartArea, params, stacks)) {\n fitBoxes(verticalBoxes, chartArea, params, stacks);\n }\n handleMaxPadding(chartArea);\n placeBoxes(boxes.leftAndTop, chartArea, params, stacks);\n chartArea.x += chartArea.w;\n chartArea.y += chartArea.h;\n placeBoxes(boxes.rightAndBottom, chartArea, params, stacks);\n chart.chartArea = {\n left: chartArea.left,\n top: chartArea.top,\n right: chartArea.left + chartArea.w,\n bottom: chartArea.top + chartArea.h,\n height: chartArea.h,\n width: chartArea.w\n };\n each(boxes.chartArea, (layout)=>{\n const box = layout.box;\n Object.assign(box, chart.chartArea);\n box.update(chartArea.w, chartArea.h, {\n left: 0,\n top: 0,\n right: 0,\n bottom: 0\n });\n });\n }\n};\n\nclass BasePlatform {\n acquireContext(canvas, aspectRatio) {}\n releaseContext(context) {\n return false;\n }\n addEventListener(chart, type, listener) {}\n removeEventListener(chart, type, listener) {}\n getDevicePixelRatio() {\n return 1;\n }\n getMaximumSize(element, width, height, aspectRatio) {\n width = Math.max(0, width || element.width);\n height = height || element.height;\n return {\n width,\n height: Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height)\n };\n }\n isAttached(canvas) {\n return true;\n }\n updateConfig(config) {\n }\n}\n\nclass BasicPlatform extends BasePlatform {\n acquireContext(item) {\n return item && item.getContext && item.getContext('2d') || null;\n }\n updateConfig(config) {\n config.options.animation = false;\n }\n}\n\nconst EXPANDO_KEY = '$chartjs';\n const EVENT_TYPES = {\n touchstart: 'mousedown',\n touchmove: 'mousemove',\n touchend: 'mouseup',\n pointerenter: 'mouseenter',\n pointerdown: 'mousedown',\n pointermove: 'mousemove',\n pointerup: 'mouseup',\n pointerleave: 'mouseout',\n pointerout: 'mouseout'\n};\nconst isNullOrEmpty = (value)=>value === null || value === '';\n function initCanvas(canvas, aspectRatio) {\n const style = canvas.style;\n const renderHeight = canvas.getAttribute('height');\n const renderWidth = canvas.getAttribute('width');\n canvas[EXPANDO_KEY] = {\n initial: {\n height: renderHeight,\n width: renderWidth,\n style: {\n display: style.display,\n height: style.height,\n width: style.width\n }\n }\n };\n style.display = style.display || 'block';\n style.boxSizing = style.boxSizing || 'border-box';\n if (isNullOrEmpty(renderWidth)) {\n const displayWidth = readUsedSize(canvas, 'width');\n if (displayWidth !== undefined) {\n canvas.width = displayWidth;\n }\n }\n if (isNullOrEmpty(renderHeight)) {\n if (canvas.style.height === '') {\n canvas.height = canvas.width / (aspectRatio || 2);\n } else {\n const displayHeight = readUsedSize(canvas, 'height');\n if (displayHeight !== undefined) {\n canvas.height = displayHeight;\n }\n }\n }\n return canvas;\n}\nconst eventListenerOptions = supportsEventListenerOptions ? {\n passive: true\n} : false;\nfunction addListener(node, type, listener) {\n if (node) {\n node.addEventListener(type, listener, eventListenerOptions);\n }\n}\nfunction removeListener(chart, type, listener) {\n if (chart && chart.canvas) {\n chart.canvas.removeEventListener(type, listener, eventListenerOptions);\n }\n}\nfunction fromNativeEvent(event, chart) {\n const type = EVENT_TYPES[event.type] || event.type;\n const { x , y } = getRelativePosition(event, chart);\n return {\n type,\n chart,\n native: event,\n x: x !== undefined ? x : null,\n y: y !== undefined ? y : null\n };\n}\nfunction nodeListContains(nodeList, canvas) {\n for (const node of nodeList){\n if (node === canvas || node.contains(canvas)) {\n return true;\n }\n }\n}\nfunction createAttachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver((entries)=>{\n let trigger = false;\n for (const entry of entries){\n trigger = trigger || nodeListContains(entry.addedNodes, canvas);\n trigger = trigger && !nodeListContains(entry.removedNodes, canvas);\n }\n if (trigger) {\n listener();\n }\n });\n observer.observe(document, {\n childList: true,\n subtree: true\n });\n return observer;\n}\nfunction createDetachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const observer = new MutationObserver((entries)=>{\n let trigger = false;\n for (const entry of entries){\n trigger = trigger || nodeListContains(entry.removedNodes, canvas);\n trigger = trigger && !nodeListContains(entry.addedNodes, canvas);\n }\n if (trigger) {\n listener();\n }\n });\n observer.observe(document, {\n childList: true,\n subtree: true\n });\n return observer;\n}\nconst drpListeningCharts = new Map();\nlet oldDevicePixelRatio = 0;\nfunction onWindowResize() {\n const dpr = window.devicePixelRatio;\n if (dpr === oldDevicePixelRatio) {\n return;\n }\n oldDevicePixelRatio = dpr;\n drpListeningCharts.forEach((resize, chart)=>{\n if (chart.currentDevicePixelRatio !== dpr) {\n resize();\n }\n });\n}\nfunction listenDevicePixelRatioChanges(chart, resize) {\n if (!drpListeningCharts.size) {\n window.addEventListener('resize', onWindowResize);\n }\n drpListeningCharts.set(chart, resize);\n}\nfunction unlistenDevicePixelRatioChanges(chart) {\n drpListeningCharts.delete(chart);\n if (!drpListeningCharts.size) {\n window.removeEventListener('resize', onWindowResize);\n }\n}\nfunction createResizeObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const container = canvas && _getParentNode(canvas);\n if (!container) {\n return;\n }\n const resize = throttled((width, height)=>{\n const w = container.clientWidth;\n listener(width, height);\n if (w < container.clientWidth) {\n listener();\n }\n }, window);\n const observer = new ResizeObserver((entries)=>{\n const entry = entries[0];\n const width = entry.contentRect.width;\n const height = entry.contentRect.height;\n if (width === 0 && height === 0) {\n return;\n }\n resize(width, height);\n });\n observer.observe(container);\n listenDevicePixelRatioChanges(chart, resize);\n return observer;\n}\nfunction releaseObserver(chart, type, observer) {\n if (observer) {\n observer.disconnect();\n }\n if (type === 'resize') {\n unlistenDevicePixelRatioChanges(chart);\n }\n}\nfunction createProxyAndListen(chart, type, listener) {\n const canvas = chart.canvas;\n const proxy = throttled((event)=>{\n if (chart.ctx !== null) {\n listener(fromNativeEvent(event, chart));\n }\n }, chart);\n addListener(canvas, type, proxy);\n return proxy;\n}\n class DomPlatform extends BasePlatform {\n acquireContext(canvas, aspectRatio) {\n const context = canvas && canvas.getContext && canvas.getContext('2d');\n if (context && context.canvas === canvas) {\n initCanvas(canvas, aspectRatio);\n return context;\n }\n return null;\n }\n releaseContext(context) {\n const canvas = context.canvas;\n if (!canvas[EXPANDO_KEY]) {\n return false;\n }\n const initial = canvas[EXPANDO_KEY].initial;\n [\n 'height',\n 'width'\n ].forEach((prop)=>{\n const value = initial[prop];\n if (isNullOrUndef(value)) {\n canvas.removeAttribute(prop);\n } else {\n canvas.setAttribute(prop, value);\n }\n });\n const style = initial.style || {};\n Object.keys(style).forEach((key)=>{\n canvas.style[key] = style[key];\n });\n canvas.width = canvas.width;\n delete canvas[EXPANDO_KEY];\n return true;\n }\n addEventListener(chart, type, listener) {\n this.removeEventListener(chart, type);\n const proxies = chart.$proxies || (chart.$proxies = {});\n const handlers = {\n attach: createAttachObserver,\n detach: createDetachObserver,\n resize: createResizeObserver\n };\n const handler = handlers[type] || createProxyAndListen;\n proxies[type] = handler(chart, type, listener);\n }\n removeEventListener(chart, type) {\n const proxies = chart.$proxies || (chart.$proxies = {});\n const proxy = proxies[type];\n if (!proxy) {\n return;\n }\n const handlers = {\n attach: releaseObserver,\n detach: releaseObserver,\n resize: releaseObserver\n };\n const handler = handlers[type] || removeListener;\n handler(chart, type, proxy);\n proxies[type] = undefined;\n }\n getDevicePixelRatio() {\n return window.devicePixelRatio;\n }\n getMaximumSize(canvas, width, height, aspectRatio) {\n return getMaximumSize(canvas, width, height, aspectRatio);\n }\n isAttached(canvas) {\n const container = canvas && _getParentNode(canvas);\n return !!(container && container.isConnected);\n }\n}\n\nfunction _detectPlatform(canvas) {\n if (!_isDomSupported() || typeof OffscreenCanvas !== 'undefined' && canvas instanceof OffscreenCanvas) {\n return BasicPlatform;\n }\n return DomPlatform;\n}\n\nclass Element {\n static defaults = {};\n static defaultRoutes = undefined;\n x;\n y;\n active = false;\n options;\n $animations;\n tooltipPosition(useFinalPosition) {\n const { x , y } = this.getProps([\n 'x',\n 'y'\n ], useFinalPosition);\n return {\n x,\n y\n };\n }\n hasValue() {\n return isNumber(this.x) && isNumber(this.y);\n }\n getProps(props, final) {\n const anims = this.$animations;\n if (!final || !anims) {\n // let's not create an object, if not needed\n return this;\n }\n const ret = {};\n props.forEach((prop)=>{\n ret[prop] = anims[prop] && anims[prop].active() ? anims[prop]._to : this[prop];\n });\n return ret;\n }\n}\n\nfunction autoSkip(scale, ticks) {\n const tickOpts = scale.options.ticks;\n const determinedMaxTicks = determineMaxTicks(scale);\n const ticksLimit = Math.min(tickOpts.maxTicksLimit || determinedMaxTicks, determinedMaxTicks);\n const majorIndices = tickOpts.major.enabled ? getMajorIndices(ticks) : [];\n const numMajorIndices = majorIndices.length;\n const first = majorIndices[0];\n const last = majorIndices[numMajorIndices - 1];\n const newTicks = [];\n if (numMajorIndices > ticksLimit) {\n skipMajors(ticks, newTicks, majorIndices, numMajorIndices / ticksLimit);\n return newTicks;\n }\n const spacing = calculateSpacing(majorIndices, ticks, ticksLimit);\n if (numMajorIndices > 0) {\n let i, ilen;\n const avgMajorSpacing = numMajorIndices > 1 ? Math.round((last - first) / (numMajorIndices - 1)) : null;\n skip(ticks, newTicks, spacing, isNullOrUndef(avgMajorSpacing) ? 0 : first - avgMajorSpacing, first);\n for(i = 0, ilen = numMajorIndices - 1; i < ilen; i++){\n skip(ticks, newTicks, spacing, majorIndices[i], majorIndices[i + 1]);\n }\n skip(ticks, newTicks, spacing, last, isNullOrUndef(avgMajorSpacing) ? ticks.length : last + avgMajorSpacing);\n return newTicks;\n }\n skip(ticks, newTicks, spacing);\n return newTicks;\n}\nfunction determineMaxTicks(scale) {\n const offset = scale.options.offset;\n const tickLength = scale._tickSize();\n const maxScale = scale._length / tickLength + (offset ? 0 : 1);\n const maxChart = scale._maxLength / tickLength;\n return Math.floor(Math.min(maxScale, maxChart));\n}\n function calculateSpacing(majorIndices, ticks, ticksLimit) {\n const evenMajorSpacing = getEvenSpacing(majorIndices);\n const spacing = ticks.length / ticksLimit;\n if (!evenMajorSpacing) {\n return Math.max(spacing, 1);\n }\n const factors = _factorize(evenMajorSpacing);\n for(let i = 0, ilen = factors.length - 1; i < ilen; i++){\n const factor = factors[i];\n if (factor > spacing) {\n return factor;\n }\n }\n return Math.max(spacing, 1);\n}\n function getMajorIndices(ticks) {\n const result = [];\n let i, ilen;\n for(i = 0, ilen = ticks.length; i < ilen; i++){\n if (ticks[i].major) {\n result.push(i);\n }\n }\n return result;\n}\n function skipMajors(ticks, newTicks, majorIndices, spacing) {\n let count = 0;\n let next = majorIndices[0];\n let i;\n spacing = Math.ceil(spacing);\n for(i = 0; i < ticks.length; i++){\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = majorIndices[count * spacing];\n }\n }\n}\n function skip(ticks, newTicks, spacing, majorStart, majorEnd) {\n const start = valueOrDefault(majorStart, 0);\n const end = Math.min(valueOrDefault(majorEnd, ticks.length), ticks.length);\n let count = 0;\n let length, i, next;\n spacing = Math.ceil(spacing);\n if (majorEnd) {\n length = majorEnd - majorStart;\n spacing = length / Math.floor(length / spacing);\n }\n next = start;\n while(next < 0){\n count++;\n next = Math.round(start + count * spacing);\n }\n for(i = Math.max(start, 0); i < end; i++){\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = Math.round(start + count * spacing);\n }\n }\n}\n function getEvenSpacing(arr) {\n const len = arr.length;\n let i, diff;\n if (len < 2) {\n return false;\n }\n for(diff = arr[0], i = 1; i < len; ++i){\n if (arr[i] - arr[i - 1] !== diff) {\n return false;\n }\n }\n return diff;\n}\n\nconst reverseAlign = (align)=>align === 'left' ? 'right' : align === 'right' ? 'left' : align;\nconst offsetFromEdge = (scale, edge, offset)=>edge === 'top' || edge === 'left' ? scale[edge] + offset : scale[edge] - offset;\nconst getTicksLimit = (ticksLength, maxTicksLimit)=>Math.min(maxTicksLimit || ticksLength, ticksLength);\n function sample(arr, numItems) {\n const result = [];\n const increment = arr.length / numItems;\n const len = arr.length;\n let i = 0;\n for(; i < len; i += increment){\n result.push(arr[Math.floor(i)]);\n }\n return result;\n}\n function getPixelForGridLine(scale, index, offsetGridLines) {\n const length = scale.ticks.length;\n const validIndex = Math.min(index, length - 1);\n const start = scale._startPixel;\n const end = scale._endPixel;\n const epsilon = 1e-6;\n let lineValue = scale.getPixelForTick(validIndex);\n let offset;\n if (offsetGridLines) {\n if (length === 1) {\n offset = Math.max(lineValue - start, end - lineValue);\n } else if (index === 0) {\n offset = (scale.getPixelForTick(1) - lineValue) / 2;\n } else {\n offset = (lineValue - scale.getPixelForTick(validIndex - 1)) / 2;\n }\n lineValue += validIndex < index ? offset : -offset;\n if (lineValue < start - epsilon || lineValue > end + epsilon) {\n return;\n }\n }\n return lineValue;\n}\n function garbageCollect(caches, length) {\n each(caches, (cache)=>{\n const gc = cache.gc;\n const gcLen = gc.length / 2;\n let i;\n if (gcLen > length) {\n for(i = 0; i < gcLen; ++i){\n delete cache.data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n });\n}\n function getTickMarkLength(options) {\n return options.drawTicks ? options.tickLength : 0;\n}\n function getTitleHeight(options, fallback) {\n if (!options.display) {\n return 0;\n }\n const font = toFont(options.font, fallback);\n const padding = toPadding(options.padding);\n const lines = isArray(options.text) ? options.text.length : 1;\n return lines * font.lineHeight + padding.height;\n}\nfunction createScaleContext(parent, scale) {\n return createContext(parent, {\n scale,\n type: 'scale'\n });\n}\nfunction createTickContext(parent, index, tick) {\n return createContext(parent, {\n tick,\n index,\n type: 'tick'\n });\n}\nfunction titleAlign(align, position, reverse) {\n let ret = _toLeftRightCenter(align);\n if (reverse && position !== 'right' || !reverse && position === 'right') {\n ret = reverseAlign(ret);\n }\n return ret;\n}\nfunction titleArgs(scale, offset, position, align) {\n const { top , left , bottom , right , chart } = scale;\n const { chartArea , scales } = chart;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n const height = bottom - top;\n const width = right - left;\n if (scale.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleY = scales[positionAxisID].getPixelForValue(value) + height - offset;\n } else if (position === 'center') {\n titleY = (chartArea.bottom + chartArea.top) / 2 + height - offset;\n } else {\n titleY = offsetFromEdge(scale, position, offset);\n }\n maxWidth = right - left;\n } else {\n if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n titleX = scales[positionAxisID].getPixelForValue(value) - width + offset;\n } else if (position === 'center') {\n titleX = (chartArea.left + chartArea.right) / 2 - width + offset;\n } else {\n titleX = offsetFromEdge(scale, position, offset);\n }\n titleY = _alignStartEnd(align, bottom, top);\n rotation = position === 'left' ? -HALF_PI : HALF_PI;\n }\n return {\n titleX,\n titleY,\n maxWidth,\n rotation\n };\n}\nclass Scale extends Element {\n constructor(cfg){\n super();\n this.id = cfg.id;\n this.type = cfg.type;\n this.options = undefined;\n this.ctx = cfg.ctx;\n this.chart = cfg.chart;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.width = undefined;\n this.height = undefined;\n this._margins = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n this.maxWidth = undefined;\n this.maxHeight = undefined;\n this.paddingTop = undefined;\n this.paddingBottom = undefined;\n this.paddingLeft = undefined;\n this.paddingRight = undefined;\n this.axis = undefined;\n this.labelRotation = undefined;\n this.min = undefined;\n this.max = undefined;\n this._range = undefined;\n this.ticks = [];\n this._gridLineItems = null;\n this._labelItems = null;\n this._labelSizes = null;\n this._length = 0;\n this._maxLength = 0;\n this._longestTextCache = {};\n this._startPixel = undefined;\n this._endPixel = undefined;\n this._reversePixels = false;\n this._userMax = undefined;\n this._userMin = undefined;\n this._suggestedMax = undefined;\n this._suggestedMin = undefined;\n this._ticksLength = 0;\n this._borderValue = 0;\n this._cache = {};\n this._dataLimitsCached = false;\n this.$context = undefined;\n }\n init(options) {\n this.options = options.setContext(this.getContext());\n this.axis = options.axis;\n this._userMin = this.parse(options.min);\n this._userMax = this.parse(options.max);\n this._suggestedMin = this.parse(options.suggestedMin);\n this._suggestedMax = this.parse(options.suggestedMax);\n }\n parse(raw, index) {\n return raw;\n }\n getUserBounds() {\n let { _userMin , _userMax , _suggestedMin , _suggestedMax } = this;\n _userMin = finiteOrDefault(_userMin, Number.POSITIVE_INFINITY);\n _userMax = finiteOrDefault(_userMax, Number.NEGATIVE_INFINITY);\n _suggestedMin = finiteOrDefault(_suggestedMin, Number.POSITIVE_INFINITY);\n _suggestedMax = finiteOrDefault(_suggestedMax, Number.NEGATIVE_INFINITY);\n return {\n min: finiteOrDefault(_userMin, _suggestedMin),\n max: finiteOrDefault(_userMax, _suggestedMax),\n minDefined: isNumberFinite(_userMin),\n maxDefined: isNumberFinite(_userMax)\n };\n }\n getMinMax(canStack) {\n let { min , max , minDefined , maxDefined } = this.getUserBounds();\n let range;\n if (minDefined && maxDefined) {\n return {\n min,\n max\n };\n }\n const metas = this.getMatchingVisibleMetas();\n for(let i = 0, ilen = metas.length; i < ilen; ++i){\n range = metas[i].controller.getMinMax(this, canStack);\n if (!minDefined) {\n min = Math.min(min, range.min);\n }\n if (!maxDefined) {\n max = Math.max(max, range.max);\n }\n }\n min = maxDefined && min > max ? max : min;\n max = minDefined && min > max ? min : max;\n return {\n min: finiteOrDefault(min, finiteOrDefault(max, min)),\n max: finiteOrDefault(max, finiteOrDefault(min, max))\n };\n }\n getPadding() {\n return {\n left: this.paddingLeft || 0,\n top: this.paddingTop || 0,\n right: this.paddingRight || 0,\n bottom: this.paddingBottom || 0\n };\n }\n getTicks() {\n return this.ticks;\n }\n getLabels() {\n const data = this.chart.data;\n return this.options.labels || (this.isHorizontal() ? data.xLabels : data.yLabels) || data.labels || [];\n }\n getLabelItems(chartArea = this.chart.chartArea) {\n const items = this._labelItems || (this._labelItems = this._computeLabelItems(chartArea));\n return items;\n }\n beforeLayout() {\n this._cache = {};\n this._dataLimitsCached = false;\n }\n beforeUpdate() {\n callback(this.options.beforeUpdate, [\n this\n ]);\n }\n update(maxWidth, maxHeight, margins) {\n const { beginAtZero , grace , ticks: tickOpts } = this.options;\n const sampleSize = tickOpts.sampleSize;\n this.beforeUpdate();\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins = Object.assign({\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n }, margins);\n this.ticks = null;\n this._labelSizes = null;\n this._gridLineItems = null;\n this._labelItems = null;\n this.beforeSetDimensions();\n this.setDimensions();\n this.afterSetDimensions();\n this._maxLength = this.isHorizontal() ? this.width + margins.left + margins.right : this.height + margins.top + margins.bottom;\n if (!this._dataLimitsCached) {\n this.beforeDataLimits();\n this.determineDataLimits();\n this.afterDataLimits();\n this._range = _addGrace(this, grace, beginAtZero);\n this._dataLimitsCached = true;\n }\n this.beforeBuildTicks();\n this.ticks = this.buildTicks() || [];\n this.afterBuildTicks();\n const samplingEnabled = sampleSize < this.ticks.length;\n this._convertTicksToLabels(samplingEnabled ? sample(this.ticks, sampleSize) : this.ticks);\n this.configure();\n this.beforeCalculateLabelRotation();\n this.calculateLabelRotation();\n this.afterCalculateLabelRotation();\n if (tickOpts.display && (tickOpts.autoSkip || tickOpts.source === 'auto')) {\n this.ticks = autoSkip(this, this.ticks);\n this._labelSizes = null;\n this.afterAutoSkip();\n }\n if (samplingEnabled) {\n this._convertTicksToLabels(this.ticks);\n }\n this.beforeFit();\n this.fit();\n this.afterFit();\n this.afterUpdate();\n }\n configure() {\n let reversePixels = this.options.reverse;\n let startPixel, endPixel;\n if (this.isHorizontal()) {\n startPixel = this.left;\n endPixel = this.right;\n } else {\n startPixel = this.top;\n endPixel = this.bottom;\n reversePixels = !reversePixels;\n }\n this._startPixel = startPixel;\n this._endPixel = endPixel;\n this._reversePixels = reversePixels;\n this._length = endPixel - startPixel;\n this._alignToPixels = this.options.alignToPixels;\n }\n afterUpdate() {\n callback(this.options.afterUpdate, [\n this\n ]);\n }\n beforeSetDimensions() {\n callback(this.options.beforeSetDimensions, [\n this\n ]);\n }\n setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = 0;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = 0;\n this.bottom = this.height;\n }\n this.paddingLeft = 0;\n this.paddingTop = 0;\n this.paddingRight = 0;\n this.paddingBottom = 0;\n }\n afterSetDimensions() {\n callback(this.options.afterSetDimensions, [\n this\n ]);\n }\n _callHooks(name) {\n this.chart.notifyPlugins(name, this.getContext());\n callback(this.options[name], [\n this\n ]);\n }\n beforeDataLimits() {\n this._callHooks('beforeDataLimits');\n }\n determineDataLimits() {}\n afterDataLimits() {\n this._callHooks('afterDataLimits');\n }\n beforeBuildTicks() {\n this._callHooks('beforeBuildTicks');\n }\n buildTicks() {\n return [];\n }\n afterBuildTicks() {\n this._callHooks('afterBuildTicks');\n }\n beforeTickToLabelConversion() {\n callback(this.options.beforeTickToLabelConversion, [\n this\n ]);\n }\n generateTickLabels(ticks) {\n const tickOpts = this.options.ticks;\n let i, ilen, tick;\n for(i = 0, ilen = ticks.length; i < ilen; i++){\n tick = ticks[i];\n tick.label = callback(tickOpts.callback, [\n tick.value,\n i,\n ticks\n ], this);\n }\n }\n afterTickToLabelConversion() {\n callback(this.options.afterTickToLabelConversion, [\n this\n ]);\n }\n beforeCalculateLabelRotation() {\n callback(this.options.beforeCalculateLabelRotation, [\n this\n ]);\n }\n calculateLabelRotation() {\n const options = this.options;\n const tickOpts = options.ticks;\n const numTicks = getTicksLimit(this.ticks.length, options.ticks.maxTicksLimit);\n const minRotation = tickOpts.minRotation || 0;\n const maxRotation = tickOpts.maxRotation;\n let labelRotation = minRotation;\n let tickWidth, maxHeight, maxLabelDiagonal;\n if (!this._isVisible() || !tickOpts.display || minRotation >= maxRotation || numTicks <= 1 || !this.isHorizontal()) {\n this.labelRotation = minRotation;\n return;\n }\n const labelSizes = this._getLabelSizes();\n const maxLabelWidth = labelSizes.widest.width;\n const maxLabelHeight = labelSizes.highest.height;\n const maxWidth = _limitValue(this.chart.width - maxLabelWidth, 0, this.maxWidth);\n tickWidth = options.offset ? this.maxWidth / numTicks : maxWidth / (numTicks - 1);\n if (maxLabelWidth + 6 > tickWidth) {\n tickWidth = maxWidth / (numTicks - (options.offset ? 0.5 : 1));\n maxHeight = this.maxHeight - getTickMarkLength(options.grid) - tickOpts.padding - getTitleHeight(options.title, this.chart.options.font);\n maxLabelDiagonal = Math.sqrt(maxLabelWidth * maxLabelWidth + maxLabelHeight * maxLabelHeight);\n labelRotation = toDegrees(Math.min(Math.asin(_limitValue((labelSizes.highest.height + 6) / tickWidth, -1, 1)), Math.asin(_limitValue(maxHeight / maxLabelDiagonal, -1, 1)) - Math.asin(_limitValue(maxLabelHeight / maxLabelDiagonal, -1, 1))));\n labelRotation = Math.max(minRotation, Math.min(maxRotation, labelRotation));\n }\n this.labelRotation = labelRotation;\n }\n afterCalculateLabelRotation() {\n callback(this.options.afterCalculateLabelRotation, [\n this\n ]);\n }\n afterAutoSkip() {}\n beforeFit() {\n callback(this.options.beforeFit, [\n this\n ]);\n }\n fit() {\n const minSize = {\n width: 0,\n height: 0\n };\n const { chart , options: { ticks: tickOpts , title: titleOpts , grid: gridOpts } } = this;\n const display = this._isVisible();\n const isHorizontal = this.isHorizontal();\n if (display) {\n const titleHeight = getTitleHeight(titleOpts, chart.options.font);\n if (isHorizontal) {\n minSize.width = this.maxWidth;\n minSize.height = getTickMarkLength(gridOpts) + titleHeight;\n } else {\n minSize.height = this.maxHeight;\n minSize.width = getTickMarkLength(gridOpts) + titleHeight;\n }\n if (tickOpts.display && this.ticks.length) {\n const { first , last , widest , highest } = this._getLabelSizes();\n const tickPadding = tickOpts.padding * 2;\n const angleRadians = toRadians(this.labelRotation);\n const cos = Math.cos(angleRadians);\n const sin = Math.sin(angleRadians);\n if (isHorizontal) {\n const labelHeight = tickOpts.mirror ? 0 : sin * widest.width + cos * highest.height;\n minSize.height = Math.min(this.maxHeight, minSize.height + labelHeight + tickPadding);\n } else {\n const labelWidth = tickOpts.mirror ? 0 : cos * widest.width + sin * highest.height;\n minSize.width = Math.min(this.maxWidth, minSize.width + labelWidth + tickPadding);\n }\n this._calculatePadding(first, last, sin, cos);\n }\n }\n this._handleMargins();\n if (isHorizontal) {\n this.width = this._length = chart.width - this._margins.left - this._margins.right;\n this.height = minSize.height;\n } else {\n this.width = minSize.width;\n this.height = this._length = chart.height - this._margins.top - this._margins.bottom;\n }\n }\n _calculatePadding(first, last, sin, cos) {\n const { ticks: { align , padding } , position } = this.options;\n const isRotated = this.labelRotation !== 0;\n const labelsBelowTicks = position !== 'top' && this.axis === 'x';\n if (this.isHorizontal()) {\n const offsetLeft = this.getPixelForTick(0) - this.left;\n const offsetRight = this.right - this.getPixelForTick(this.ticks.length - 1);\n let paddingLeft = 0;\n let paddingRight = 0;\n if (isRotated) {\n if (labelsBelowTicks) {\n paddingLeft = cos * first.width;\n paddingRight = sin * last.height;\n } else {\n paddingLeft = sin * first.height;\n paddingRight = cos * last.width;\n }\n } else if (align === 'start') {\n paddingRight = last.width;\n } else if (align === 'end') {\n paddingLeft = first.width;\n } else if (align !== 'inner') {\n paddingLeft = first.width / 2;\n paddingRight = last.width / 2;\n }\n this.paddingLeft = Math.max((paddingLeft - offsetLeft + padding) * this.width / (this.width - offsetLeft), 0);\n this.paddingRight = Math.max((paddingRight - offsetRight + padding) * this.width / (this.width - offsetRight), 0);\n } else {\n let paddingTop = last.height / 2;\n let paddingBottom = first.height / 2;\n if (align === 'start') {\n paddingTop = 0;\n paddingBottom = first.height;\n } else if (align === 'end') {\n paddingTop = last.height;\n paddingBottom = 0;\n }\n this.paddingTop = paddingTop + padding;\n this.paddingBottom = paddingBottom + padding;\n }\n }\n _handleMargins() {\n if (this._margins) {\n this._margins.left = Math.max(this.paddingLeft, this._margins.left);\n this._margins.top = Math.max(this.paddingTop, this._margins.top);\n this._margins.right = Math.max(this.paddingRight, this._margins.right);\n this._margins.bottom = Math.max(this.paddingBottom, this._margins.bottom);\n }\n }\n afterFit() {\n callback(this.options.afterFit, [\n this\n ]);\n }\n isHorizontal() {\n const { axis , position } = this.options;\n return position === 'top' || position === 'bottom' || axis === 'x';\n }\n isFullSize() {\n return this.options.fullSize;\n }\n _convertTicksToLabels(ticks) {\n this.beforeTickToLabelConversion();\n this.generateTickLabels(ticks);\n let i, ilen;\n for(i = 0, ilen = ticks.length; i < ilen; i++){\n if (isNullOrUndef(ticks[i].label)) {\n ticks.splice(i, 1);\n ilen--;\n i--;\n }\n }\n this.afterTickToLabelConversion();\n }\n _getLabelSizes() {\n let labelSizes = this._labelSizes;\n if (!labelSizes) {\n const sampleSize = this.options.ticks.sampleSize;\n let ticks = this.ticks;\n if (sampleSize < ticks.length) {\n ticks = sample(ticks, sampleSize);\n }\n this._labelSizes = labelSizes = this._computeLabelSizes(ticks, ticks.length, this.options.ticks.maxTicksLimit);\n }\n return labelSizes;\n }\n _computeLabelSizes(ticks, length, maxTicksLimit) {\n const { ctx , _longestTextCache: caches } = this;\n const widths = [];\n const heights = [];\n const increment = Math.floor(length / getTicksLimit(length, maxTicksLimit));\n let widestLabelSize = 0;\n let highestLabelSize = 0;\n let i, j, jlen, label, tickFont, fontString, cache, lineHeight, width, height, nestedLabel;\n for(i = 0; i < length; i += increment){\n label = ticks[i].label;\n tickFont = this._resolveTickFontOptions(i);\n ctx.font = fontString = tickFont.string;\n cache = caches[fontString] = caches[fontString] || {\n data: {},\n gc: []\n };\n lineHeight = tickFont.lineHeight;\n width = height = 0;\n if (!isNullOrUndef(label) && !isArray(label)) {\n width = _measureText(ctx, cache.data, cache.gc, width, label);\n height = lineHeight;\n } else if (isArray(label)) {\n for(j = 0, jlen = label.length; j < jlen; ++j){\n nestedLabel = label[j];\n if (!isNullOrUndef(nestedLabel) && !isArray(nestedLabel)) {\n width = _measureText(ctx, cache.data, cache.gc, width, nestedLabel);\n height += lineHeight;\n }\n }\n }\n widths.push(width);\n heights.push(height);\n widestLabelSize = Math.max(width, widestLabelSize);\n highestLabelSize = Math.max(height, highestLabelSize);\n }\n garbageCollect(caches, length);\n const widest = widths.indexOf(widestLabelSize);\n const highest = heights.indexOf(highestLabelSize);\n const valueAt = (idx)=>({\n width: widths[idx] || 0,\n height: heights[idx] || 0\n });\n return {\n first: valueAt(0),\n last: valueAt(length - 1),\n widest: valueAt(widest),\n highest: valueAt(highest),\n widths,\n heights\n };\n }\n getLabelForValue(value) {\n return value;\n }\n getPixelForValue(value, index) {\n return NaN;\n }\n getValueForPixel(pixel) {}\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n getPixelForDecimal(decimal) {\n if (this._reversePixels) {\n decimal = 1 - decimal;\n }\n const pixel = this._startPixel + decimal * this._length;\n return _int16Range(this._alignToPixels ? _alignPixel(this.chart, pixel, 0) : pixel);\n }\n getDecimalForPixel(pixel) {\n const decimal = (pixel - this._startPixel) / this._length;\n return this._reversePixels ? 1 - decimal : decimal;\n }\n getBasePixel() {\n return this.getPixelForValue(this.getBaseValue());\n }\n getBaseValue() {\n const { min , max } = this;\n return min < 0 && max < 0 ? max : min > 0 && max > 0 ? min : 0;\n }\n getContext(index) {\n const ticks = this.ticks || [];\n if (index >= 0 && index < ticks.length) {\n const tick = ticks[index];\n return tick.$context || (tick.$context = createTickContext(this.getContext(), index, tick));\n }\n return this.$context || (this.$context = createScaleContext(this.chart.getContext(), this));\n }\n _tickSize() {\n const optionTicks = this.options.ticks;\n const rot = toRadians(this.labelRotation);\n const cos = Math.abs(Math.cos(rot));\n const sin = Math.abs(Math.sin(rot));\n const labelSizes = this._getLabelSizes();\n const padding = optionTicks.autoSkipPadding || 0;\n const w = labelSizes ? labelSizes.widest.width + padding : 0;\n const h = labelSizes ? labelSizes.highest.height + padding : 0;\n return this.isHorizontal() ? h * cos > w * sin ? w / cos : h / sin : h * sin < w * cos ? h / cos : w / sin;\n }\n _isVisible() {\n const display = this.options.display;\n if (display !== 'auto') {\n return !!display;\n }\n return this.getMatchingVisibleMetas().length > 0;\n }\n _computeGridLineItems(chartArea) {\n const axis = this.axis;\n const chart = this.chart;\n const options = this.options;\n const { grid , position , border } = options;\n const offset = grid.offset;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const ticksLength = ticks.length + (offset ? 1 : 0);\n const tl = getTickMarkLength(grid);\n const items = [];\n const borderOpts = border.setContext(this.getContext());\n const axisWidth = borderOpts.display ? borderOpts.width : 0;\n const axisHalfWidth = axisWidth / 2;\n const alignBorderValue = function(pixel) {\n return _alignPixel(chart, pixel, axisWidth);\n };\n let borderValue, i, lineValue, alignedLineValue;\n let tx1, ty1, tx2, ty2, x1, y1, x2, y2;\n if (position === 'top') {\n borderValue = alignBorderValue(this.bottom);\n ty1 = this.bottom - tl;\n ty2 = borderValue - axisHalfWidth;\n y1 = alignBorderValue(chartArea.top) + axisHalfWidth;\n y2 = chartArea.bottom;\n } else if (position === 'bottom') {\n borderValue = alignBorderValue(this.top);\n y1 = chartArea.top;\n y2 = alignBorderValue(chartArea.bottom) - axisHalfWidth;\n ty1 = borderValue + axisHalfWidth;\n ty2 = this.top + tl;\n } else if (position === 'left') {\n borderValue = alignBorderValue(this.right);\n tx1 = this.right - tl;\n tx2 = borderValue - axisHalfWidth;\n x1 = alignBorderValue(chartArea.left) + axisHalfWidth;\n x2 = chartArea.right;\n } else if (position === 'right') {\n borderValue = alignBorderValue(this.left);\n x1 = chartArea.left;\n x2 = alignBorderValue(chartArea.right) - axisHalfWidth;\n tx1 = borderValue + axisHalfWidth;\n tx2 = this.left + tl;\n } else if (axis === 'x') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.top + chartArea.bottom) / 2 + 0.5);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n y1 = chartArea.top;\n y2 = chartArea.bottom;\n ty1 = borderValue + axisHalfWidth;\n ty2 = ty1 + tl;\n } else if (axis === 'y') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.left + chartArea.right) / 2);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(this.chart.scales[positionAxisID].getPixelForValue(value));\n }\n tx1 = borderValue - axisHalfWidth;\n tx2 = tx1 - tl;\n x1 = chartArea.left;\n x2 = chartArea.right;\n }\n const limit = valueOrDefault(options.ticks.maxTicksLimit, ticksLength);\n const step = Math.max(1, Math.ceil(ticksLength / limit));\n for(i = 0; i < ticksLength; i += step){\n const context = this.getContext(i);\n const optsAtIndex = grid.setContext(context);\n const optsAtIndexBorder = border.setContext(context);\n const lineWidth = optsAtIndex.lineWidth;\n const lineColor = optsAtIndex.color;\n const borderDash = optsAtIndexBorder.dash || [];\n const borderDashOffset = optsAtIndexBorder.dashOffset;\n const tickWidth = optsAtIndex.tickWidth;\n const tickColor = optsAtIndex.tickColor;\n const tickBorderDash = optsAtIndex.tickBorderDash || [];\n const tickBorderDashOffset = optsAtIndex.tickBorderDashOffset;\n lineValue = getPixelForGridLine(this, i, offset);\n if (lineValue === undefined) {\n continue;\n }\n alignedLineValue = _alignPixel(chart, lineValue, lineWidth);\n if (isHorizontal) {\n tx1 = tx2 = x1 = x2 = alignedLineValue;\n } else {\n ty1 = ty2 = y1 = y2 = alignedLineValue;\n }\n items.push({\n tx1,\n ty1,\n tx2,\n ty2,\n x1,\n y1,\n x2,\n y2,\n width: lineWidth,\n color: lineColor,\n borderDash,\n borderDashOffset,\n tickWidth,\n tickColor,\n tickBorderDash,\n tickBorderDashOffset\n });\n }\n this._ticksLength = ticksLength;\n this._borderValue = borderValue;\n return items;\n }\n _computeLabelItems(chartArea) {\n const axis = this.axis;\n const options = this.options;\n const { position , ticks: optionTicks } = options;\n const isHorizontal = this.isHorizontal();\n const ticks = this.ticks;\n const { align , crossAlign , padding , mirror } = optionTicks;\n const tl = getTickMarkLength(options.grid);\n const tickAndPadding = tl + padding;\n const hTickAndPadding = mirror ? -padding : tickAndPadding;\n const rotation = -toRadians(this.labelRotation);\n const items = [];\n let i, ilen, tick, label, x, y, textAlign, pixel, font, lineHeight, lineCount, textOffset;\n let textBaseline = 'middle';\n if (position === 'top') {\n y = this.bottom - hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'bottom') {\n y = this.top + hTickAndPadding;\n textAlign = this._getXAxisLabelAlignment();\n } else if (position === 'left') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (position === 'right') {\n const ret = this._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (axis === 'x') {\n if (position === 'center') {\n y = (chartArea.top + chartArea.bottom) / 2 + tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n y = this.chart.scales[positionAxisID].getPixelForValue(value) + tickAndPadding;\n }\n textAlign = this._getXAxisLabelAlignment();\n } else if (axis === 'y') {\n if (position === 'center') {\n x = (chartArea.left + chartArea.right) / 2 - tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n x = this.chart.scales[positionAxisID].getPixelForValue(value);\n }\n textAlign = this._getYAxisLabelAlignment(tl).textAlign;\n }\n if (axis === 'y') {\n if (align === 'start') {\n textBaseline = 'top';\n } else if (align === 'end') {\n textBaseline = 'bottom';\n }\n }\n const labelSizes = this._getLabelSizes();\n for(i = 0, ilen = ticks.length; i < ilen; ++i){\n tick = ticks[i];\n label = tick.label;\n const optsAtIndex = optionTicks.setContext(this.getContext(i));\n pixel = this.getPixelForTick(i) + optionTicks.labelOffset;\n font = this._resolveTickFontOptions(i);\n lineHeight = font.lineHeight;\n lineCount = isArray(label) ? label.length : 1;\n const halfCount = lineCount / 2;\n const color = optsAtIndex.color;\n const strokeColor = optsAtIndex.textStrokeColor;\n const strokeWidth = optsAtIndex.textStrokeWidth;\n let tickTextAlign = textAlign;\n if (isHorizontal) {\n x = pixel;\n if (textAlign === 'inner') {\n if (i === ilen - 1) {\n tickTextAlign = !this.options.reverse ? 'right' : 'left';\n } else if (i === 0) {\n tickTextAlign = !this.options.reverse ? 'left' : 'right';\n } else {\n tickTextAlign = 'center';\n }\n }\n if (position === 'top') {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = -lineCount * lineHeight + lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = -labelSizes.highest.height / 2 - halfCount * lineHeight + lineHeight;\n } else {\n textOffset = -labelSizes.highest.height + lineHeight / 2;\n }\n } else {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = labelSizes.highest.height / 2 - halfCount * lineHeight;\n } else {\n textOffset = labelSizes.highest.height - lineCount * lineHeight;\n }\n }\n if (mirror) {\n textOffset *= -1;\n }\n if (rotation !== 0 && !optsAtIndex.showLabelBackdrop) {\n x += lineHeight / 2 * Math.sin(rotation);\n }\n } else {\n y = pixel;\n textOffset = (1 - lineCount) * lineHeight / 2;\n }\n let backdrop;\n if (optsAtIndex.showLabelBackdrop) {\n const labelPadding = toPadding(optsAtIndex.backdropPadding);\n const height = labelSizes.heights[i];\n const width = labelSizes.widths[i];\n let top = textOffset - labelPadding.top;\n let left = 0 - labelPadding.left;\n switch(textBaseline){\n case 'middle':\n top -= height / 2;\n break;\n case 'bottom':\n top -= height;\n break;\n }\n switch(textAlign){\n case 'center':\n left -= width / 2;\n break;\n case 'right':\n left -= width;\n break;\n case 'inner':\n if (i === ilen - 1) {\n left -= width;\n } else if (i > 0) {\n left -= width / 2;\n }\n break;\n }\n backdrop = {\n left,\n top,\n width: width + labelPadding.width,\n height: height + labelPadding.height,\n color: optsAtIndex.backdropColor\n };\n }\n items.push({\n label,\n font,\n textOffset,\n options: {\n rotation,\n color,\n strokeColor,\n strokeWidth,\n textAlign: tickTextAlign,\n textBaseline,\n translation: [\n x,\n y\n ],\n backdrop\n }\n });\n }\n return items;\n }\n _getXAxisLabelAlignment() {\n const { position , ticks } = this.options;\n const rotation = -toRadians(this.labelRotation);\n if (rotation) {\n return position === 'top' ? 'left' : 'right';\n }\n let align = 'center';\n if (ticks.align === 'start') {\n align = 'left';\n } else if (ticks.align === 'end') {\n align = 'right';\n } else if (ticks.align === 'inner') {\n align = 'inner';\n }\n return align;\n }\n _getYAxisLabelAlignment(tl) {\n const { position , ticks: { crossAlign , mirror , padding } } = this.options;\n const labelSizes = this._getLabelSizes();\n const tickAndPadding = tl + padding;\n const widest = labelSizes.widest.width;\n let textAlign;\n let x;\n if (position === 'left') {\n if (mirror) {\n x = this.right + padding;\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += widest / 2;\n } else {\n textAlign = 'right';\n x += widest;\n }\n } else {\n x = this.right - tickAndPadding;\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= widest / 2;\n } else {\n textAlign = 'left';\n x = this.left;\n }\n }\n } else if (position === 'right') {\n if (mirror) {\n x = this.left + padding;\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= widest / 2;\n } else {\n textAlign = 'left';\n x -= widest;\n }\n } else {\n x = this.left + tickAndPadding;\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += widest / 2;\n } else {\n textAlign = 'right';\n x = this.right;\n }\n }\n } else {\n textAlign = 'right';\n }\n return {\n textAlign,\n x\n };\n }\n _computeLabelArea() {\n if (this.options.ticks.mirror) {\n return;\n }\n const chart = this.chart;\n const position = this.options.position;\n if (position === 'left' || position === 'right') {\n return {\n top: 0,\n left: this.left,\n bottom: chart.height,\n right: this.right\n };\n }\n if (position === 'top' || position === 'bottom') {\n return {\n top: this.top,\n left: 0,\n bottom: this.bottom,\n right: chart.width\n };\n }\n }\n drawBackground() {\n const { ctx , options: { backgroundColor } , left , top , width , height } = this;\n if (backgroundColor) {\n ctx.save();\n ctx.fillStyle = backgroundColor;\n ctx.fillRect(left, top, width, height);\n ctx.restore();\n }\n }\n getLineWidthForValue(value) {\n const grid = this.options.grid;\n if (!this._isVisible() || !grid.display) {\n return 0;\n }\n const ticks = this.ticks;\n const index = ticks.findIndex((t)=>t.value === value);\n if (index >= 0) {\n const opts = grid.setContext(this.getContext(index));\n return opts.lineWidth;\n }\n return 0;\n }\n drawGrid(chartArea) {\n const grid = this.options.grid;\n const ctx = this.ctx;\n const items = this._gridLineItems || (this._gridLineItems = this._computeGridLineItems(chartArea));\n let i, ilen;\n const drawLine = (p1, p2, style)=>{\n if (!style.width || !style.color) {\n return;\n }\n ctx.save();\n ctx.lineWidth = style.width;\n ctx.strokeStyle = style.color;\n ctx.setLineDash(style.borderDash || []);\n ctx.lineDashOffset = style.borderDashOffset;\n ctx.beginPath();\n ctx.moveTo(p1.x, p1.y);\n ctx.lineTo(p2.x, p2.y);\n ctx.stroke();\n ctx.restore();\n };\n if (grid.display) {\n for(i = 0, ilen = items.length; i < ilen; ++i){\n const item = items[i];\n if (grid.drawOnChartArea) {\n drawLine({\n x: item.x1,\n y: item.y1\n }, {\n x: item.x2,\n y: item.y2\n }, item);\n }\n if (grid.drawTicks) {\n drawLine({\n x: item.tx1,\n y: item.ty1\n }, {\n x: item.tx2,\n y: item.ty2\n }, {\n color: item.tickColor,\n width: item.tickWidth,\n borderDash: item.tickBorderDash,\n borderDashOffset: item.tickBorderDashOffset\n });\n }\n }\n }\n }\n drawBorder() {\n const { chart , ctx , options: { border , grid } } = this;\n const borderOpts = border.setContext(this.getContext());\n const axisWidth = border.display ? borderOpts.width : 0;\n if (!axisWidth) {\n return;\n }\n const lastLineWidth = grid.setContext(this.getContext(0)).lineWidth;\n const borderValue = this._borderValue;\n let x1, x2, y1, y2;\n if (this.isHorizontal()) {\n x1 = _alignPixel(chart, this.left, axisWidth) - axisWidth / 2;\n x2 = _alignPixel(chart, this.right, lastLineWidth) + lastLineWidth / 2;\n y1 = y2 = borderValue;\n } else {\n y1 = _alignPixel(chart, this.top, axisWidth) - axisWidth / 2;\n y2 = _alignPixel(chart, this.bottom, lastLineWidth) + lastLineWidth / 2;\n x1 = x2 = borderValue;\n }\n ctx.save();\n ctx.lineWidth = borderOpts.width;\n ctx.strokeStyle = borderOpts.color;\n ctx.beginPath();\n ctx.moveTo(x1, y1);\n ctx.lineTo(x2, y2);\n ctx.stroke();\n ctx.restore();\n }\n drawLabels(chartArea) {\n const optionTicks = this.options.ticks;\n if (!optionTicks.display) {\n return;\n }\n const ctx = this.ctx;\n const area = this._computeLabelArea();\n if (area) {\n clipArea(ctx, area);\n }\n const items = this.getLabelItems(chartArea);\n for (const item of items){\n const renderTextOptions = item.options;\n const tickFont = item.font;\n const label = item.label;\n const y = item.textOffset;\n renderText(ctx, label, 0, y, tickFont, renderTextOptions);\n }\n if (area) {\n unclipArea(ctx);\n }\n }\n drawTitle() {\n const { ctx , options: { position , title , reverse } } = this;\n if (!title.display) {\n return;\n }\n const font = toFont(title.font);\n const padding = toPadding(title.padding);\n const align = title.align;\n let offset = font.lineHeight / 2;\n if (position === 'bottom' || position === 'center' || isObject(position)) {\n offset += padding.bottom;\n if (isArray(title.text)) {\n offset += font.lineHeight * (title.text.length - 1);\n }\n } else {\n offset += padding.top;\n }\n const { titleX , titleY , maxWidth , rotation } = titleArgs(this, offset, position, align);\n renderText(ctx, title.text, 0, 0, font, {\n color: title.color,\n maxWidth,\n rotation,\n textAlign: titleAlign(align, position, reverse),\n textBaseline: 'middle',\n translation: [\n titleX,\n titleY\n ]\n });\n }\n draw(chartArea) {\n if (!this._isVisible()) {\n return;\n }\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawBorder();\n this.drawTitle();\n this.drawLabels(chartArea);\n }\n _layers() {\n const opts = this.options;\n const tz = opts.ticks && opts.ticks.z || 0;\n const gz = valueOrDefault(opts.grid && opts.grid.z, -1);\n const bz = valueOrDefault(opts.border && opts.border.z, 0);\n if (!this._isVisible() || this.draw !== Scale.prototype.draw) {\n return [\n {\n z: tz,\n draw: (chartArea)=>{\n this.draw(chartArea);\n }\n }\n ];\n }\n return [\n {\n z: gz,\n draw: (chartArea)=>{\n this.drawBackground();\n this.drawGrid(chartArea);\n this.drawTitle();\n }\n },\n {\n z: bz,\n draw: ()=>{\n this.drawBorder();\n }\n },\n {\n z: tz,\n draw: (chartArea)=>{\n this.drawLabels(chartArea);\n }\n }\n ];\n }\n getMatchingVisibleMetas(type) {\n const metas = this.chart.getSortedVisibleDatasetMetas();\n const axisID = this.axis + 'AxisID';\n const result = [];\n let i, ilen;\n for(i = 0, ilen = metas.length; i < ilen; ++i){\n const meta = metas[i];\n if (meta[axisID] === this.id && (!type || meta.type === type)) {\n result.push(meta);\n }\n }\n return result;\n }\n _resolveTickFontOptions(index) {\n const opts = this.options.ticks.setContext(this.getContext(index));\n return toFont(opts.font);\n }\n _maxDigits() {\n const fontSize = this._resolveTickFontOptions(0).lineHeight;\n return (this.isHorizontal() ? this.width : this.height) / fontSize;\n }\n}\n\nclass TypedRegistry {\n constructor(type, scope, override){\n this.type = type;\n this.scope = scope;\n this.override = override;\n this.items = Object.create(null);\n }\n isForType(type) {\n return Object.prototype.isPrototypeOf.call(this.type.prototype, type.prototype);\n }\n register(item) {\n const proto = Object.getPrototypeOf(item);\n let parentScope;\n if (isIChartComponent(proto)) {\n parentScope = this.register(proto);\n }\n const items = this.items;\n const id = item.id;\n const scope = this.scope + '.' + id;\n if (!id) {\n throw new Error('class does not have id: ' + item);\n }\n if (id in items) {\n return scope;\n }\n items[id] = item;\n registerDefaults(item, scope, parentScope);\n if (this.override) {\n defaults.override(item.id, item.overrides);\n }\n return scope;\n }\n get(id) {\n return this.items[id];\n }\n unregister(item) {\n const items = this.items;\n const id = item.id;\n const scope = this.scope;\n if (id in items) {\n delete items[id];\n }\n if (scope && id in defaults[scope]) {\n delete defaults[scope][id];\n if (this.override) {\n delete overrides[id];\n }\n }\n }\n}\nfunction registerDefaults(item, scope, parentScope) {\n const itemDefaults = merge(Object.create(null), [\n parentScope ? defaults.get(parentScope) : {},\n defaults.get(scope),\n item.defaults\n ]);\n defaults.set(scope, itemDefaults);\n if (item.defaultRoutes) {\n routeDefaults(scope, item.defaultRoutes);\n }\n if (item.descriptors) {\n defaults.describe(scope, item.descriptors);\n }\n}\nfunction routeDefaults(scope, routes) {\n Object.keys(routes).forEach((property)=>{\n const propertyParts = property.split('.');\n const sourceName = propertyParts.pop();\n const sourceScope = [\n scope\n ].concat(propertyParts).join('.');\n const parts = routes[property].split('.');\n const targetName = parts.pop();\n const targetScope = parts.join('.');\n defaults.route(sourceScope, sourceName, targetScope, targetName);\n });\n}\nfunction isIChartComponent(proto) {\n return 'id' in proto && 'defaults' in proto;\n}\n\nclass Registry {\n constructor(){\n this.controllers = new TypedRegistry(DatasetController, 'datasets', true);\n this.elements = new TypedRegistry(Element, 'elements');\n this.plugins = new TypedRegistry(Object, 'plugins');\n this.scales = new TypedRegistry(Scale, 'scales');\n this._typedRegistries = [\n this.controllers,\n this.scales,\n this.elements\n ];\n }\n add(...args) {\n this._each('register', args);\n }\n remove(...args) {\n this._each('unregister', args);\n }\n addControllers(...args) {\n this._each('register', args, this.controllers);\n }\n addElements(...args) {\n this._each('register', args, this.elements);\n }\n addPlugins(...args) {\n this._each('register', args, this.plugins);\n }\n addScales(...args) {\n this._each('register', args, this.scales);\n }\n getController(id) {\n return this._get(id, this.controllers, 'controller');\n }\n getElement(id) {\n return this._get(id, this.elements, 'element');\n }\n getPlugin(id) {\n return this._get(id, this.plugins, 'plugin');\n }\n getScale(id) {\n return this._get(id, this.scales, 'scale');\n }\n removeControllers(...args) {\n this._each('unregister', args, this.controllers);\n }\n removeElements(...args) {\n this._each('unregister', args, this.elements);\n }\n removePlugins(...args) {\n this._each('unregister', args, this.plugins);\n }\n removeScales(...args) {\n this._each('unregister', args, this.scales);\n }\n _each(method, args, typedRegistry) {\n [\n ...args\n ].forEach((arg)=>{\n const reg = typedRegistry || this._getRegistryForType(arg);\n if (typedRegistry || reg.isForType(arg) || reg === this.plugins && arg.id) {\n this._exec(method, reg, arg);\n } else {\n each(arg, (item)=>{\n const itemReg = typedRegistry || this._getRegistryForType(item);\n this._exec(method, itemReg, item);\n });\n }\n });\n }\n _exec(method, registry, component) {\n const camelMethod = _capitalize(method);\n callback(component['before' + camelMethod], [], component);\n registry[method](component);\n callback(component['after' + camelMethod], [], component);\n }\n _getRegistryForType(type) {\n for(let i = 0; i < this._typedRegistries.length; i++){\n const reg = this._typedRegistries[i];\n if (reg.isForType(type)) {\n return reg;\n }\n }\n return this.plugins;\n }\n _get(id, typedRegistry, type) {\n const item = typedRegistry.get(id);\n if (item === undefined) {\n throw new Error('\"' + id + '\" is not a registered ' + type + '.');\n }\n return item;\n }\n}\nvar registry = /* #__PURE__ */ new Registry();\n\nclass PluginService {\n constructor(){\n this._init = undefined;\n }\n notify(chart, hook, args, filter) {\n if (hook === 'beforeInit') {\n this._init = this._createDescriptors(chart, true);\n this._notify(this._init, chart, 'install');\n }\n if (this._init === undefined) {\n return;\n }\n const descriptors = filter ? this._descriptors(chart).filter(filter) : this._descriptors(chart);\n const result = this._notify(descriptors, chart, hook, args);\n if (hook === 'afterDestroy') {\n this._notify(descriptors, chart, 'stop');\n this._notify(this._init, chart, 'uninstall');\n this._init = undefined;\n }\n return result;\n }\n _notify(descriptors, chart, hook, args) {\n args = args || {};\n for (const descriptor of descriptors){\n const plugin = descriptor.plugin;\n const method = plugin[hook];\n const params = [\n chart,\n args,\n descriptor.options\n ];\n if (callback(method, params, plugin) === false && args.cancelable) {\n return false;\n }\n }\n return true;\n }\n invalidate() {\n if (!isNullOrUndef(this._cache)) {\n this._oldCache = this._cache;\n this._cache = undefined;\n }\n }\n _descriptors(chart) {\n if (this._cache) {\n return this._cache;\n }\n const descriptors = this._cache = this._createDescriptors(chart);\n this._notifyStateChanges(chart);\n return descriptors;\n }\n _createDescriptors(chart, all) {\n const config = chart && chart.config;\n const options = valueOrDefault(config.options && config.options.plugins, {});\n const plugins = allPlugins(config);\n return options === false && !all ? [] : createDescriptors(chart, plugins, options, all);\n }\n _notifyStateChanges(chart) {\n const previousDescriptors = this._oldCache || [];\n const descriptors = this._cache;\n const diff = (a, b)=>a.filter((x)=>!b.some((y)=>x.plugin.id === y.plugin.id));\n this._notify(diff(previousDescriptors, descriptors), chart, 'stop');\n this._notify(diff(descriptors, previousDescriptors), chart, 'start');\n }\n}\n function allPlugins(config) {\n const localIds = {};\n const plugins = [];\n const keys = Object.keys(registry.plugins.items);\n for(let i = 0; i < keys.length; i++){\n plugins.push(registry.getPlugin(keys[i]));\n }\n const local = config.plugins || [];\n for(let i = 0; i < local.length; i++){\n const plugin = local[i];\n if (plugins.indexOf(plugin) === -1) {\n plugins.push(plugin);\n localIds[plugin.id] = true;\n }\n }\n return {\n plugins,\n localIds\n };\n}\nfunction getOpts(options, all) {\n if (!all && options === false) {\n return null;\n }\n if (options === true) {\n return {};\n }\n return options;\n}\nfunction createDescriptors(chart, { plugins , localIds }, options, all) {\n const result = [];\n const context = chart.getContext();\n for (const plugin of plugins){\n const id = plugin.id;\n const opts = getOpts(options[id], all);\n if (opts === null) {\n continue;\n }\n result.push({\n plugin,\n options: pluginOpts(chart.config, {\n plugin,\n local: localIds[id]\n }, opts, context)\n });\n }\n return result;\n}\nfunction pluginOpts(config, { plugin , local }, opts, context) {\n const keys = config.pluginScopeKeys(plugin);\n const scopes = config.getOptionScopes(opts, keys);\n if (local && plugin.defaults) {\n scopes.push(plugin.defaults);\n }\n return config.createResolver(scopes, context, [\n ''\n ], {\n scriptable: false,\n indexable: false,\n allKeys: true\n });\n}\n\nfunction getIndexAxis(type, options) {\n const datasetDefaults = defaults.datasets[type] || {};\n const datasetOptions = (options.datasets || {})[type] || {};\n return datasetOptions.indexAxis || options.indexAxis || datasetDefaults.indexAxis || 'x';\n}\nfunction getAxisFromDefaultScaleID(id, indexAxis) {\n let axis = id;\n if (id === '_index_') {\n axis = indexAxis;\n } else if (id === '_value_') {\n axis = indexAxis === 'x' ? 'y' : 'x';\n }\n return axis;\n}\nfunction getDefaultScaleIDFromAxis(axis, indexAxis) {\n return axis === indexAxis ? '_index_' : '_value_';\n}\nfunction idMatchesAxis(id) {\n if (id === 'x' || id === 'y' || id === 'r') {\n return id;\n }\n}\nfunction axisFromPosition(position) {\n if (position === 'top' || position === 'bottom') {\n return 'x';\n }\n if (position === 'left' || position === 'right') {\n return 'y';\n }\n}\nfunction determineAxis(id, ...scaleOptions) {\n if (idMatchesAxis(id)) {\n return id;\n }\n for (const opts of scaleOptions){\n const axis = opts.axis || axisFromPosition(opts.position) || id.length > 1 && idMatchesAxis(id[0].toLowerCase());\n if (axis) {\n return axis;\n }\n }\n throw new Error(`Cannot determine type of '${id}' axis. Please provide 'axis' or 'position' option.`);\n}\nfunction getAxisFromDataset(id, axis, dataset) {\n if (dataset[axis + 'AxisID'] === id) {\n return {\n axis\n };\n }\n}\nfunction retrieveAxisFromDatasets(id, config) {\n if (config.data && config.data.datasets) {\n const boundDs = config.data.datasets.filter((d)=>d.xAxisID === id || d.yAxisID === id);\n if (boundDs.length) {\n return getAxisFromDataset(id, 'x', boundDs[0]) || getAxisFromDataset(id, 'y', boundDs[0]);\n }\n }\n return {};\n}\nfunction mergeScaleConfig(config, options) {\n const chartDefaults = overrides[config.type] || {\n scales: {}\n };\n const configScales = options.scales || {};\n const chartIndexAxis = getIndexAxis(config.type, options);\n const scales = Object.create(null);\n Object.keys(configScales).forEach((id)=>{\n const scaleConf = configScales[id];\n if (!isObject(scaleConf)) {\n return console.error(`Invalid scale configuration for scale: ${id}`);\n }\n if (scaleConf._proxy) {\n return console.warn(`Ignoring resolver passed as options for scale: ${id}`);\n }\n const axis = determineAxis(id, scaleConf, retrieveAxisFromDatasets(id, config), defaults.scales[scaleConf.type]);\n const defaultId = getDefaultScaleIDFromAxis(axis, chartIndexAxis);\n const defaultScaleOptions = chartDefaults.scales || {};\n scales[id] = mergeIf(Object.create(null), [\n {\n axis\n },\n scaleConf,\n defaultScaleOptions[axis],\n defaultScaleOptions[defaultId]\n ]);\n });\n config.data.datasets.forEach((dataset)=>{\n const type = dataset.type || config.type;\n const indexAxis = dataset.indexAxis || getIndexAxis(type, options);\n const datasetDefaults = overrides[type] || {};\n const defaultScaleOptions = datasetDefaults.scales || {};\n Object.keys(defaultScaleOptions).forEach((defaultID)=>{\n const axis = getAxisFromDefaultScaleID(defaultID, indexAxis);\n const id = dataset[axis + 'AxisID'] || axis;\n scales[id] = scales[id] || Object.create(null);\n mergeIf(scales[id], [\n {\n axis\n },\n configScales[id],\n defaultScaleOptions[defaultID]\n ]);\n });\n });\n Object.keys(scales).forEach((key)=>{\n const scale = scales[key];\n mergeIf(scale, [\n defaults.scales[scale.type],\n defaults.scale\n ]);\n });\n return scales;\n}\nfunction initOptions(config) {\n const options = config.options || (config.options = {});\n options.plugins = valueOrDefault(options.plugins, {});\n options.scales = mergeScaleConfig(config, options);\n}\nfunction initData(data) {\n data = data || {};\n data.datasets = data.datasets || [];\n data.labels = data.labels || [];\n return data;\n}\nfunction initConfig(config) {\n config = config || {};\n config.data = initData(config.data);\n initOptions(config);\n return config;\n}\nconst keyCache = new Map();\nconst keysCached = new Set();\nfunction cachedKeys(cacheKey, generate) {\n let keys = keyCache.get(cacheKey);\n if (!keys) {\n keys = generate();\n keyCache.set(cacheKey, keys);\n keysCached.add(keys);\n }\n return keys;\n}\nconst addIfFound = (set, obj, key)=>{\n const opts = resolveObjectKey(obj, key);\n if (opts !== undefined) {\n set.add(opts);\n }\n};\nclass Config {\n constructor(config){\n this._config = initConfig(config);\n this._scopeCache = new Map();\n this._resolverCache = new Map();\n }\n get platform() {\n return this._config.platform;\n }\n get type() {\n return this._config.type;\n }\n set type(type) {\n this._config.type = type;\n }\n get data() {\n return this._config.data;\n }\n set data(data) {\n this._config.data = initData(data);\n }\n get options() {\n return this._config.options;\n }\n set options(options) {\n this._config.options = options;\n }\n get plugins() {\n return this._config.plugins;\n }\n update() {\n const config = this._config;\n this.clearCache();\n initOptions(config);\n }\n clearCache() {\n this._scopeCache.clear();\n this._resolverCache.clear();\n }\n datasetScopeKeys(datasetType) {\n return cachedKeys(datasetType, ()=>[\n [\n `datasets.${datasetType}`,\n ''\n ]\n ]);\n }\n datasetAnimationScopeKeys(datasetType, transition) {\n return cachedKeys(`${datasetType}.transition.${transition}`, ()=>[\n [\n `datasets.${datasetType}.transitions.${transition}`,\n `transitions.${transition}`\n ],\n [\n `datasets.${datasetType}`,\n ''\n ]\n ]);\n }\n datasetElementScopeKeys(datasetType, elementType) {\n return cachedKeys(`${datasetType}-${elementType}`, ()=>[\n [\n `datasets.${datasetType}.elements.${elementType}`,\n `datasets.${datasetType}`,\n `elements.${elementType}`,\n ''\n ]\n ]);\n }\n pluginScopeKeys(plugin) {\n const id = plugin.id;\n const type = this.type;\n return cachedKeys(`${type}-plugin-${id}`, ()=>[\n [\n `plugins.${id}`,\n ...plugin.additionalOptionScopes || []\n ]\n ]);\n }\n _cachedScopes(mainScope, resetCache) {\n const _scopeCache = this._scopeCache;\n let cache = _scopeCache.get(mainScope);\n if (!cache || resetCache) {\n cache = new Map();\n _scopeCache.set(mainScope, cache);\n }\n return cache;\n }\n getOptionScopes(mainScope, keyLists, resetCache) {\n const { options , type } = this;\n const cache = this._cachedScopes(mainScope, resetCache);\n const cached = cache.get(keyLists);\n if (cached) {\n return cached;\n }\n const scopes = new Set();\n keyLists.forEach((keys)=>{\n if (mainScope) {\n scopes.add(mainScope);\n keys.forEach((key)=>addIfFound(scopes, mainScope, key));\n }\n keys.forEach((key)=>addIfFound(scopes, options, key));\n keys.forEach((key)=>addIfFound(scopes, overrides[type] || {}, key));\n keys.forEach((key)=>addIfFound(scopes, defaults, key));\n keys.forEach((key)=>addIfFound(scopes, descriptors, key));\n });\n const array = Array.from(scopes);\n if (array.length === 0) {\n array.push(Object.create(null));\n }\n if (keysCached.has(keyLists)) {\n cache.set(keyLists, array);\n }\n return array;\n }\n chartOptionScopes() {\n const { options , type } = this;\n return [\n options,\n overrides[type] || {},\n defaults.datasets[type] || {},\n {\n type\n },\n defaults,\n descriptors\n ];\n }\n resolveNamedOptions(scopes, names, context, prefixes = [\n ''\n ]) {\n const result = {\n $shared: true\n };\n const { resolver , subPrefixes } = getResolver(this._resolverCache, scopes, prefixes);\n let options = resolver;\n if (needContext(resolver, names)) {\n result.$shared = false;\n context = isFunction(context) ? context() : context;\n const subResolver = this.createResolver(scopes, context, subPrefixes);\n options = _attachContext(resolver, context, subResolver);\n }\n for (const prop of names){\n result[prop] = options[prop];\n }\n return result;\n }\n createResolver(scopes, context, prefixes = [\n ''\n ], descriptorDefaults) {\n const { resolver } = getResolver(this._resolverCache, scopes, prefixes);\n return isObject(context) ? _attachContext(resolver, context, undefined, descriptorDefaults) : resolver;\n }\n}\nfunction getResolver(resolverCache, scopes, prefixes) {\n let cache = resolverCache.get(scopes);\n if (!cache) {\n cache = new Map();\n resolverCache.set(scopes, cache);\n }\n const cacheKey = prefixes.join();\n let cached = cache.get(cacheKey);\n if (!cached) {\n const resolver = _createResolver(scopes, prefixes);\n cached = {\n resolver,\n subPrefixes: prefixes.filter((p)=>!p.toLowerCase().includes('hover'))\n };\n cache.set(cacheKey, cached);\n }\n return cached;\n}\nconst hasFunction = (value)=>isObject(value) && Object.getOwnPropertyNames(value).some((key)=>isFunction(value[key]));\nfunction needContext(proxy, names) {\n const { isScriptable , isIndexable } = _descriptors(proxy);\n for (const prop of names){\n const scriptable = isScriptable(prop);\n const indexable = isIndexable(prop);\n const value = (indexable || scriptable) && proxy[prop];\n if (scriptable && (isFunction(value) || hasFunction(value)) || indexable && isArray(value)) {\n return true;\n }\n }\n return false;\n}\n\nvar version = \"4.5.1\";\n\nconst KNOWN_POSITIONS = [\n 'top',\n 'bottom',\n 'left',\n 'right',\n 'chartArea'\n];\nfunction positionIsHorizontal(position, axis) {\n return position === 'top' || position === 'bottom' || KNOWN_POSITIONS.indexOf(position) === -1 && axis === 'x';\n}\nfunction compare2Level(l1, l2) {\n return function(a, b) {\n return a[l1] === b[l1] ? a[l2] - b[l2] : a[l1] - b[l1];\n };\n}\nfunction onAnimationsComplete(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n chart.notifyPlugins('afterRender');\n callback(animationOptions && animationOptions.onComplete, [\n context\n ], chart);\n}\nfunction onAnimationProgress(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n callback(animationOptions && animationOptions.onProgress, [\n context\n ], chart);\n}\n function getCanvas(item) {\n if (_isDomSupported() && typeof item === 'string') {\n item = document.getElementById(item);\n } else if (item && item.length) {\n item = item[0];\n }\n if (item && item.canvas) {\n item = item.canvas;\n }\n return item;\n}\nconst instances = {};\nconst getChart = (key)=>{\n const canvas = getCanvas(key);\n return Object.values(instances).filter((c)=>c.canvas === canvas).pop();\n};\nfunction moveNumericKeys(obj, start, move) {\n const keys = Object.keys(obj);\n for (const key of keys){\n const intKey = +key;\n if (intKey >= start) {\n const value = obj[key];\n delete obj[key];\n if (move > 0 || intKey > start) {\n obj[intKey + move] = value;\n }\n }\n }\n}\n function determineLastEvent(e, lastEvent, inChartArea, isClick) {\n if (!inChartArea || e.type === 'mouseout') {\n return null;\n }\n if (isClick) {\n return lastEvent;\n }\n return e;\n}\nclass Chart {\n static defaults = defaults;\n static instances = instances;\n static overrides = overrides;\n static registry = registry;\n static version = version;\n static getChart = getChart;\n static register(...items) {\n registry.add(...items);\n invalidatePlugins();\n }\n static unregister(...items) {\n registry.remove(...items);\n invalidatePlugins();\n }\n constructor(item, userConfig){\n const config = this.config = new Config(userConfig);\n const initialCanvas = getCanvas(item);\n const existingChart = getChart(initialCanvas);\n if (existingChart) {\n throw new Error('Canvas is already in use. Chart with ID \\'' + existingChart.id + '\\'' + ' must be destroyed before the canvas with ID \\'' + existingChart.canvas.id + '\\' can be reused.');\n }\n const options = config.createResolver(config.chartOptionScopes(), this.getContext());\n this.platform = new (config.platform || _detectPlatform(initialCanvas))();\n this.platform.updateConfig(config);\n const context = this.platform.acquireContext(initialCanvas, options.aspectRatio);\n const canvas = context && context.canvas;\n const height = canvas && canvas.height;\n const width = canvas && canvas.width;\n this.id = uid();\n this.ctx = context;\n this.canvas = canvas;\n this.width = width;\n this.height = height;\n this._options = options;\n this._aspectRatio = this.aspectRatio;\n this._layers = [];\n this._metasets = [];\n this._stacks = undefined;\n this.boxes = [];\n this.currentDevicePixelRatio = undefined;\n this.chartArea = undefined;\n this._active = [];\n this._lastEvent = undefined;\n this._listeners = {};\n this._responsiveListeners = undefined;\n this._sortedMetasets = [];\n this.scales = {};\n this._plugins = new PluginService();\n this.$proxies = {};\n this._hiddenIndices = {};\n this.attached = false;\n this._animationsDisabled = undefined;\n this.$context = undefined;\n this._doResize = debounce((mode)=>this.update(mode), options.resizeDelay || 0);\n this._dataChanges = [];\n instances[this.id] = this;\n if (!context || !canvas) {\n console.error(\"Failed to create chart: can't acquire context from the given item\");\n return;\n }\n animator.listen(this, 'complete', onAnimationsComplete);\n animator.listen(this, 'progress', onAnimationProgress);\n this._initialize();\n if (this.attached) {\n this.update();\n }\n }\n get aspectRatio() {\n const { options: { aspectRatio , maintainAspectRatio } , width , height , _aspectRatio } = this;\n if (!isNullOrUndef(aspectRatio)) {\n return aspectRatio;\n }\n if (maintainAspectRatio && _aspectRatio) {\n return _aspectRatio;\n }\n return height ? width / height : null;\n }\n get data() {\n return this.config.data;\n }\n set data(data) {\n this.config.data = data;\n }\n get options() {\n return this._options;\n }\n set options(options) {\n this.config.options = options;\n }\n get registry() {\n return registry;\n }\n _initialize() {\n this.notifyPlugins('beforeInit');\n if (this.options.responsive) {\n this.resize();\n } else {\n retinaScale(this, this.options.devicePixelRatio);\n }\n this.bindEvents();\n this.notifyPlugins('afterInit');\n return this;\n }\n clear() {\n clearCanvas(this.canvas, this.ctx);\n return this;\n }\n stop() {\n animator.stop(this);\n return this;\n }\n resize(width, height) {\n if (!animator.running(this)) {\n this._resize(width, height);\n } else {\n this._resizeBeforeDraw = {\n width,\n height\n };\n }\n }\n _resize(width, height) {\n const options = this.options;\n const canvas = this.canvas;\n const aspectRatio = options.maintainAspectRatio && this.aspectRatio;\n const newSize = this.platform.getMaximumSize(canvas, width, height, aspectRatio);\n const newRatio = options.devicePixelRatio || this.platform.getDevicePixelRatio();\n const mode = this.width ? 'resize' : 'attach';\n this.width = newSize.width;\n this.height = newSize.height;\n this._aspectRatio = this.aspectRatio;\n if (!retinaScale(this, newRatio, true)) {\n return;\n }\n this.notifyPlugins('resize', {\n size: newSize\n });\n callback(options.onResize, [\n this,\n newSize\n ], this);\n if (this.attached) {\n if (this._doResize(mode)) {\n this.render();\n }\n }\n }\n ensureScalesHaveIDs() {\n const options = this.options;\n const scalesOptions = options.scales || {};\n each(scalesOptions, (axisOptions, axisID)=>{\n axisOptions.id = axisID;\n });\n }\n buildOrUpdateScales() {\n const options = this.options;\n const scaleOpts = options.scales;\n const scales = this.scales;\n const updated = Object.keys(scales).reduce((obj, id)=>{\n obj[id] = false;\n return obj;\n }, {});\n let items = [];\n if (scaleOpts) {\n items = items.concat(Object.keys(scaleOpts).map((id)=>{\n const scaleOptions = scaleOpts[id];\n const axis = determineAxis(id, scaleOptions);\n const isRadial = axis === 'r';\n const isHorizontal = axis === 'x';\n return {\n options: scaleOptions,\n dposition: isRadial ? 'chartArea' : isHorizontal ? 'bottom' : 'left',\n dtype: isRadial ? 'radialLinear' : isHorizontal ? 'category' : 'linear'\n };\n }));\n }\n each(items, (item)=>{\n const scaleOptions = item.options;\n const id = scaleOptions.id;\n const axis = determineAxis(id, scaleOptions);\n const scaleType = valueOrDefault(scaleOptions.type, item.dtype);\n if (scaleOptions.position === undefined || positionIsHorizontal(scaleOptions.position, axis) !== positionIsHorizontal(item.dposition)) {\n scaleOptions.position = item.dposition;\n }\n updated[id] = true;\n let scale = null;\n if (id in scales && scales[id].type === scaleType) {\n scale = scales[id];\n } else {\n const scaleClass = registry.getScale(scaleType);\n scale = new scaleClass({\n id,\n type: scaleType,\n ctx: this.ctx,\n chart: this\n });\n scales[scale.id] = scale;\n }\n scale.init(scaleOptions, options);\n });\n each(updated, (hasUpdated, id)=>{\n if (!hasUpdated) {\n delete scales[id];\n }\n });\n each(scales, (scale)=>{\n layouts.configure(this, scale, scale.options);\n layouts.addBox(this, scale);\n });\n }\n _updateMetasets() {\n const metasets = this._metasets;\n const numData = this.data.datasets.length;\n const numMeta = metasets.length;\n metasets.sort((a, b)=>a.index - b.index);\n if (numMeta > numData) {\n for(let i = numData; i < numMeta; ++i){\n this._destroyDatasetMeta(i);\n }\n metasets.splice(numData, numMeta - numData);\n }\n this._sortedMetasets = metasets.slice(0).sort(compare2Level('order', 'index'));\n }\n _removeUnreferencedMetasets() {\n const { _metasets: metasets , data: { datasets } } = this;\n if (metasets.length > datasets.length) {\n delete this._stacks;\n }\n metasets.forEach((meta, index)=>{\n if (datasets.filter((x)=>x === meta._dataset).length === 0) {\n this._destroyDatasetMeta(index);\n }\n });\n }\n buildOrUpdateControllers() {\n const newControllers = [];\n const datasets = this.data.datasets;\n let i, ilen;\n this._removeUnreferencedMetasets();\n for(i = 0, ilen = datasets.length; i < ilen; i++){\n const dataset = datasets[i];\n let meta = this.getDatasetMeta(i);\n const type = dataset.type || this.config.type;\n if (meta.type && meta.type !== type) {\n this._destroyDatasetMeta(i);\n meta = this.getDatasetMeta(i);\n }\n meta.type = type;\n meta.indexAxis = dataset.indexAxis || getIndexAxis(type, this.options);\n meta.order = dataset.order || 0;\n meta.index = i;\n meta.label = '' + dataset.label;\n meta.visible = this.isDatasetVisible(i);\n if (meta.controller) {\n meta.controller.updateIndex(i);\n meta.controller.linkScales();\n } else {\n const ControllerClass = registry.getController(type);\n const { datasetElementType , dataElementType } = defaults.datasets[type];\n Object.assign(ControllerClass, {\n dataElementType: registry.getElement(dataElementType),\n datasetElementType: datasetElementType && registry.getElement(datasetElementType)\n });\n meta.controller = new ControllerClass(this, i);\n newControllers.push(meta.controller);\n }\n }\n this._updateMetasets();\n return newControllers;\n }\n _resetElements() {\n each(this.data.datasets, (dataset, datasetIndex)=>{\n this.getDatasetMeta(datasetIndex).controller.reset();\n }, this);\n }\n reset() {\n this._resetElements();\n this.notifyPlugins('reset');\n }\n update(mode) {\n const config = this.config;\n config.update();\n const options = this._options = config.createResolver(config.chartOptionScopes(), this.getContext());\n const animsDisabled = this._animationsDisabled = !options.animation;\n this._updateScales();\n this._checkEventBindings();\n this._updateHiddenIndices();\n this._plugins.invalidate();\n if (this.notifyPlugins('beforeUpdate', {\n mode,\n cancelable: true\n }) === false) {\n return;\n }\n const newControllers = this.buildOrUpdateControllers();\n this.notifyPlugins('beforeElementsUpdate');\n let minPadding = 0;\n for(let i = 0, ilen = this.data.datasets.length; i < ilen; i++){\n const { controller } = this.getDatasetMeta(i);\n const reset = !animsDisabled && newControllers.indexOf(controller) === -1;\n controller.buildOrUpdateElements(reset);\n minPadding = Math.max(+controller.getMaxOverflow(), minPadding);\n }\n minPadding = this._minPadding = options.layout.autoPadding ? minPadding : 0;\n this._updateLayout(minPadding);\n if (!animsDisabled) {\n each(newControllers, (controller)=>{\n controller.reset();\n });\n }\n this._updateDatasets(mode);\n this.notifyPlugins('afterUpdate', {\n mode\n });\n this._layers.sort(compare2Level('z', '_idx'));\n const { _active , _lastEvent } = this;\n if (_lastEvent) {\n this._eventHandler(_lastEvent, true);\n } else if (_active.length) {\n this._updateHoverStyles(_active, _active, true);\n }\n this.render();\n }\n _updateScales() {\n each(this.scales, (scale)=>{\n layouts.removeBox(this, scale);\n });\n this.ensureScalesHaveIDs();\n this.buildOrUpdateScales();\n }\n _checkEventBindings() {\n const options = this.options;\n const existingEvents = new Set(Object.keys(this._listeners));\n const newEvents = new Set(options.events);\n if (!setsEqual(existingEvents, newEvents) || !!this._responsiveListeners !== options.responsive) {\n this.unbindEvents();\n this.bindEvents();\n }\n }\n _updateHiddenIndices() {\n const { _hiddenIndices } = this;\n const changes = this._getUniformDataChanges() || [];\n for (const { method , start , count } of changes){\n const move = method === '_removeElements' ? -count : count;\n moveNumericKeys(_hiddenIndices, start, move);\n }\n }\n _getUniformDataChanges() {\n const _dataChanges = this._dataChanges;\n if (!_dataChanges || !_dataChanges.length) {\n return;\n }\n this._dataChanges = [];\n const datasetCount = this.data.datasets.length;\n const makeSet = (idx)=>new Set(_dataChanges.filter((c)=>c[0] === idx).map((c, i)=>i + ',' + c.splice(1).join(',')));\n const changeSet = makeSet(0);\n for(let i = 1; i < datasetCount; i++){\n if (!setsEqual(changeSet, makeSet(i))) {\n return;\n }\n }\n return Array.from(changeSet).map((c)=>c.split(',')).map((a)=>({\n method: a[1],\n start: +a[2],\n count: +a[3]\n }));\n }\n _updateLayout(minPadding) {\n if (this.notifyPlugins('beforeLayout', {\n cancelable: true\n }) === false) {\n return;\n }\n layouts.update(this, this.width, this.height, minPadding);\n const area = this.chartArea;\n const noArea = area.width <= 0 || area.height <= 0;\n this._layers = [];\n each(this.boxes, (box)=>{\n if (noArea && box.position === 'chartArea') {\n return;\n }\n if (box.configure) {\n box.configure();\n }\n this._layers.push(...box._layers());\n }, this);\n this._layers.forEach((item, index)=>{\n item._idx = index;\n });\n this.notifyPlugins('afterLayout');\n }\n _updateDatasets(mode) {\n if (this.notifyPlugins('beforeDatasetsUpdate', {\n mode,\n cancelable: true\n }) === false) {\n return;\n }\n for(let i = 0, ilen = this.data.datasets.length; i < ilen; ++i){\n this.getDatasetMeta(i).controller.configure();\n }\n for(let i = 0, ilen = this.data.datasets.length; i < ilen; ++i){\n this._updateDataset(i, isFunction(mode) ? mode({\n datasetIndex: i\n }) : mode);\n }\n this.notifyPlugins('afterDatasetsUpdate', {\n mode\n });\n }\n _updateDataset(index, mode) {\n const meta = this.getDatasetMeta(index);\n const args = {\n meta,\n index,\n mode,\n cancelable: true\n };\n if (this.notifyPlugins('beforeDatasetUpdate', args) === false) {\n return;\n }\n meta.controller._update(mode);\n args.cancelable = false;\n this.notifyPlugins('afterDatasetUpdate', args);\n }\n render() {\n if (this.notifyPlugins('beforeRender', {\n cancelable: true\n }) === false) {\n return;\n }\n if (animator.has(this)) {\n if (this.attached && !animator.running(this)) {\n animator.start(this);\n }\n } else {\n this.draw();\n onAnimationsComplete({\n chart: this\n });\n }\n }\n draw() {\n let i;\n if (this._resizeBeforeDraw) {\n const { width , height } = this._resizeBeforeDraw;\n this._resizeBeforeDraw = null;\n this._resize(width, height);\n }\n this.clear();\n if (this.width <= 0 || this.height <= 0) {\n return;\n }\n if (this.notifyPlugins('beforeDraw', {\n cancelable: true\n }) === false) {\n return;\n }\n const layers = this._layers;\n for(i = 0; i < layers.length && layers[i].z <= 0; ++i){\n layers[i].draw(this.chartArea);\n }\n this._drawDatasets();\n for(; i < layers.length; ++i){\n layers[i].draw(this.chartArea);\n }\n this.notifyPlugins('afterDraw');\n }\n _getSortedDatasetMetas(filterVisible) {\n const metasets = this._sortedMetasets;\n const result = [];\n let i, ilen;\n for(i = 0, ilen = metasets.length; i < ilen; ++i){\n const meta = metasets[i];\n if (!filterVisible || meta.visible) {\n result.push(meta);\n }\n }\n return result;\n }\n getSortedVisibleDatasetMetas() {\n return this._getSortedDatasetMetas(true);\n }\n _drawDatasets() {\n if (this.notifyPlugins('beforeDatasetsDraw', {\n cancelable: true\n }) === false) {\n return;\n }\n const metasets = this.getSortedVisibleDatasetMetas();\n for(let i = metasets.length - 1; i >= 0; --i){\n this._drawDataset(metasets[i]);\n }\n this.notifyPlugins('afterDatasetsDraw');\n }\n _drawDataset(meta) {\n const ctx = this.ctx;\n const args = {\n meta,\n index: meta.index,\n cancelable: true\n };\n const clip = getDatasetClipArea(this, meta);\n if (this.notifyPlugins('beforeDatasetDraw', args) === false) {\n return;\n }\n if (clip) {\n clipArea(ctx, clip);\n }\n meta.controller.draw();\n if (clip) {\n unclipArea(ctx);\n }\n args.cancelable = false;\n this.notifyPlugins('afterDatasetDraw', args);\n }\n isPointInArea(point) {\n return _isPointInArea(point, this.chartArea, this._minPadding);\n }\n getElementsAtEventForMode(e, mode, options, useFinalPosition) {\n const method = Interaction.modes[mode];\n if (typeof method === 'function') {\n return method(this, e, options, useFinalPosition);\n }\n return [];\n }\n getDatasetMeta(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n const metasets = this._metasets;\n let meta = metasets.filter((x)=>x && x._dataset === dataset).pop();\n if (!meta) {\n meta = {\n type: null,\n data: [],\n dataset: null,\n controller: null,\n hidden: null,\n xAxisID: null,\n yAxisID: null,\n order: dataset && dataset.order || 0,\n index: datasetIndex,\n _dataset: dataset,\n _parsed: [],\n _sorted: false\n };\n metasets.push(meta);\n }\n return meta;\n }\n getContext() {\n return this.$context || (this.$context = createContext(null, {\n chart: this,\n type: 'chart'\n }));\n }\n getVisibleDatasetCount() {\n return this.getSortedVisibleDatasetMetas().length;\n }\n isDatasetVisible(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n if (!dataset) {\n return false;\n }\n const meta = this.getDatasetMeta(datasetIndex);\n return typeof meta.hidden === 'boolean' ? !meta.hidden : !dataset.hidden;\n }\n setDatasetVisibility(datasetIndex, visible) {\n const meta = this.getDatasetMeta(datasetIndex);\n meta.hidden = !visible;\n }\n toggleDataVisibility(index) {\n this._hiddenIndices[index] = !this._hiddenIndices[index];\n }\n getDataVisibility(index) {\n return !this._hiddenIndices[index];\n }\n _updateVisibility(datasetIndex, dataIndex, visible) {\n const mode = visible ? 'show' : 'hide';\n const meta = this.getDatasetMeta(datasetIndex);\n const anims = meta.controller._resolveAnimations(undefined, mode);\n if (defined(dataIndex)) {\n meta.data[dataIndex].hidden = !visible;\n this.update();\n } else {\n this.setDatasetVisibility(datasetIndex, visible);\n anims.update(meta, {\n visible\n });\n this.update((ctx)=>ctx.datasetIndex === datasetIndex ? mode : undefined);\n }\n }\n hide(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, false);\n }\n show(datasetIndex, dataIndex) {\n this._updateVisibility(datasetIndex, dataIndex, true);\n }\n _destroyDatasetMeta(datasetIndex) {\n const meta = this._metasets[datasetIndex];\n if (meta && meta.controller) {\n meta.controller._destroy();\n }\n delete this._metasets[datasetIndex];\n }\n _stop() {\n let i, ilen;\n this.stop();\n animator.remove(this);\n for(i = 0, ilen = this.data.datasets.length; i < ilen; ++i){\n this._destroyDatasetMeta(i);\n }\n }\n destroy() {\n this.notifyPlugins('beforeDestroy');\n const { canvas , ctx } = this;\n this._stop();\n this.config.clearCache();\n if (canvas) {\n this.unbindEvents();\n clearCanvas(canvas, ctx);\n this.platform.releaseContext(ctx);\n this.canvas = null;\n this.ctx = null;\n }\n delete instances[this.id];\n this.notifyPlugins('afterDestroy');\n }\n toBase64Image(...args) {\n return this.canvas.toDataURL(...args);\n }\n bindEvents() {\n this.bindUserEvents();\n if (this.options.responsive) {\n this.bindResponsiveEvents();\n } else {\n this.attached = true;\n }\n }\n bindUserEvents() {\n const listeners = this._listeners;\n const platform = this.platform;\n const _add = (type, listener)=>{\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n const listener = (e, x, y)=>{\n e.offsetX = x;\n e.offsetY = y;\n this._eventHandler(e);\n };\n each(this.options.events, (type)=>_add(type, listener));\n }\n bindResponsiveEvents() {\n if (!this._responsiveListeners) {\n this._responsiveListeners = {};\n }\n const listeners = this._responsiveListeners;\n const platform = this.platform;\n const _add = (type, listener)=>{\n platform.addEventListener(this, type, listener);\n listeners[type] = listener;\n };\n const _remove = (type, listener)=>{\n if (listeners[type]) {\n platform.removeEventListener(this, type, listener);\n delete listeners[type];\n }\n };\n const listener = (width, height)=>{\n if (this.canvas) {\n this.resize(width, height);\n }\n };\n let detached;\n const attached = ()=>{\n _remove('attach', attached);\n this.attached = true;\n this.resize();\n _add('resize', listener);\n _add('detach', detached);\n };\n detached = ()=>{\n this.attached = false;\n _remove('resize', listener);\n this._stop();\n this._resize(0, 0);\n _add('attach', attached);\n };\n if (platform.isAttached(this.canvas)) {\n attached();\n } else {\n detached();\n }\n }\n unbindEvents() {\n each(this._listeners, (listener, type)=>{\n this.platform.removeEventListener(this, type, listener);\n });\n this._listeners = {};\n each(this._responsiveListeners, (listener, type)=>{\n this.platform.removeEventListener(this, type, listener);\n });\n this._responsiveListeners = undefined;\n }\n updateHoverStyle(items, mode, enabled) {\n const prefix = enabled ? 'set' : 'remove';\n let meta, item, i, ilen;\n if (mode === 'dataset') {\n meta = this.getDatasetMeta(items[0].datasetIndex);\n meta.controller['_' + prefix + 'DatasetHoverStyle']();\n }\n for(i = 0, ilen = items.length; i < ilen; ++i){\n item = items[i];\n const controller = item && this.getDatasetMeta(item.datasetIndex).controller;\n if (controller) {\n controller[prefix + 'HoverStyle'](item.element, item.datasetIndex, item.index);\n }\n }\n }\n getActiveElements() {\n return this._active || [];\n }\n setActiveElements(activeElements) {\n const lastActive = this._active || [];\n const active = activeElements.map(({ datasetIndex , index })=>{\n const meta = this.getDatasetMeta(datasetIndex);\n if (!meta) {\n throw new Error('No dataset found at index ' + datasetIndex);\n }\n return {\n datasetIndex,\n element: meta.data[index],\n index\n };\n });\n const changed = !_elementsEqual(active, lastActive);\n if (changed) {\n this._active = active;\n this._lastEvent = null;\n this._updateHoverStyles(active, lastActive);\n }\n }\n notifyPlugins(hook, args, filter) {\n return this._plugins.notify(this, hook, args, filter);\n }\n isPluginEnabled(pluginId) {\n return this._plugins._cache.filter((p)=>p.plugin.id === pluginId).length === 1;\n }\n _updateHoverStyles(active, lastActive, replay) {\n const hoverOptions = this.options.hover;\n const diff = (a, b)=>a.filter((x)=>!b.some((y)=>x.datasetIndex === y.datasetIndex && x.index === y.index));\n const deactivated = diff(lastActive, active);\n const activated = replay ? active : diff(active, lastActive);\n if (deactivated.length) {\n this.updateHoverStyle(deactivated, hoverOptions.mode, false);\n }\n if (activated.length && hoverOptions.mode) {\n this.updateHoverStyle(activated, hoverOptions.mode, true);\n }\n }\n _eventHandler(e, replay) {\n const args = {\n event: e,\n replay,\n cancelable: true,\n inChartArea: this.isPointInArea(e)\n };\n const eventFilter = (plugin)=>(plugin.options.events || this.options.events).includes(e.native.type);\n if (this.notifyPlugins('beforeEvent', args, eventFilter) === false) {\n return;\n }\n const changed = this._handleEvent(e, replay, args.inChartArea);\n args.cancelable = false;\n this.notifyPlugins('afterEvent', args, eventFilter);\n if (changed || args.changed) {\n this.render();\n }\n return this;\n }\n _handleEvent(e, replay, inChartArea) {\n const { _active: lastActive = [] , options } = this;\n const useFinalPosition = replay;\n const active = this._getActiveElements(e, lastActive, inChartArea, useFinalPosition);\n const isClick = _isClickEvent(e);\n const lastEvent = determineLastEvent(e, this._lastEvent, inChartArea, isClick);\n if (inChartArea) {\n this._lastEvent = null;\n callback(options.onHover, [\n e,\n active,\n this\n ], this);\n if (isClick) {\n callback(options.onClick, [\n e,\n active,\n this\n ], this);\n }\n }\n const changed = !_elementsEqual(active, lastActive);\n if (changed || replay) {\n this._active = active;\n this._updateHoverStyles(active, lastActive, replay);\n }\n this._lastEvent = lastEvent;\n return changed;\n }\n _getActiveElements(e, lastActive, inChartArea, useFinalPosition) {\n if (e.type === 'mouseout') {\n return [];\n }\n if (!inChartArea) {\n return lastActive;\n }\n const hoverOptions = this.options.hover;\n return this.getElementsAtEventForMode(e, hoverOptions.mode, hoverOptions, useFinalPosition);\n }\n}\nfunction invalidatePlugins() {\n return each(Chart.instances, (chart)=>chart._plugins.invalidate());\n}\n\nfunction clipSelf(ctx, element, endAngle) {\n const { startAngle , x , y , outerRadius , innerRadius , options } = element;\n const { borderWidth , borderJoinStyle } = options;\n const outerAngleClip = Math.min(borderWidth / outerRadius, _normalizeAngle(startAngle - endAngle));\n ctx.beginPath();\n ctx.arc(x, y, outerRadius - borderWidth / 2, startAngle + outerAngleClip / 2, endAngle - outerAngleClip / 2);\n if (innerRadius > 0) {\n const innerAngleClip = Math.min(borderWidth / innerRadius, _normalizeAngle(startAngle - endAngle));\n ctx.arc(x, y, innerRadius + borderWidth / 2, endAngle - innerAngleClip / 2, startAngle + innerAngleClip / 2, true);\n } else {\n const clipWidth = Math.min(borderWidth / 2, outerRadius * _normalizeAngle(startAngle - endAngle));\n if (borderJoinStyle === 'round') {\n ctx.arc(x, y, clipWidth, endAngle - PI / 2, startAngle + PI / 2, true);\n } else if (borderJoinStyle === 'bevel') {\n const r = 2 * clipWidth * clipWidth;\n const endX = -r * Math.cos(endAngle + PI / 2) + x;\n const endY = -r * Math.sin(endAngle + PI / 2) + y;\n const startX = r * Math.cos(startAngle + PI / 2) + x;\n const startY = r * Math.sin(startAngle + PI / 2) + y;\n ctx.lineTo(endX, endY);\n ctx.lineTo(startX, startY);\n }\n }\n ctx.closePath();\n ctx.moveTo(0, 0);\n ctx.rect(0, 0, ctx.canvas.width, ctx.canvas.height);\n ctx.clip('evenodd');\n}\nfunction clipArc(ctx, element, endAngle) {\n const { startAngle , pixelMargin , x , y , outerRadius , innerRadius } = element;\n let angleMargin = pixelMargin / outerRadius;\n // Draw an inner border by clipping the arc and drawing a double-width border\n // Enlarge the clipping arc by 0.33 pixels to eliminate glitches between borders\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, startAngle - angleMargin, endAngle + angleMargin);\n if (innerRadius > pixelMargin) {\n angleMargin = pixelMargin / innerRadius;\n ctx.arc(x, y, innerRadius, endAngle + angleMargin, startAngle - angleMargin, true);\n } else {\n ctx.arc(x, y, pixelMargin, endAngle + HALF_PI, startAngle - HALF_PI);\n }\n ctx.closePath();\n ctx.clip();\n}\nfunction toRadiusCorners(value) {\n return _readValueToProps(value, [\n 'outerStart',\n 'outerEnd',\n 'innerStart',\n 'innerEnd'\n ]);\n}\n/**\n * Parse border radius from the provided options\n */ function parseBorderRadius$1(arc, innerRadius, outerRadius, angleDelta) {\n const o = toRadiusCorners(arc.options.borderRadius);\n const halfThickness = (outerRadius - innerRadius) / 2;\n const innerLimit = Math.min(halfThickness, angleDelta * innerRadius / 2);\n // Outer limits are complicated. We want to compute the available angular distance at\n // a radius of outerRadius - borderRadius because for small angular distances, this term limits.\n // We compute at r = outerRadius - borderRadius because this circle defines the center of the border corners.\n //\n // If the borderRadius is large, that value can become negative.\n // This causes the outer borders to lose their radius entirely, which is rather unexpected. To solve that, if borderRadius > outerRadius\n // we know that the thickness term will dominate and compute the limits at that point\n const computeOuterLimit = (val)=>{\n const outerArcLimit = (outerRadius - Math.min(halfThickness, val)) * angleDelta / 2;\n return _limitValue(val, 0, Math.min(halfThickness, outerArcLimit));\n };\n return {\n outerStart: computeOuterLimit(o.outerStart),\n outerEnd: computeOuterLimit(o.outerEnd),\n innerStart: _limitValue(o.innerStart, 0, innerLimit),\n innerEnd: _limitValue(o.innerEnd, 0, innerLimit)\n };\n}\n/**\n * Convert (r, 𝜃) to (x, y)\n */ function rThetaToXY(r, theta, x, y) {\n return {\n x: x + r * Math.cos(theta),\n y: y + r * Math.sin(theta)\n };\n}\n/**\n * Path the arc, respecting border radius by separating into left and right halves.\n *\n * Start End\n *\n * 1--->a--->2 Outer\n * / \\\n * 8 3\n * | |\n * | |\n * 7 4\n * \\ /\n * 6<---b<---5 Inner\n */ function pathArc(ctx, element, offset, spacing, end, circular) {\n const { x , y , startAngle: start , pixelMargin , innerRadius: innerR } = element;\n const outerRadius = Math.max(element.outerRadius + spacing + offset - pixelMargin, 0);\n const innerRadius = innerR > 0 ? innerR + spacing + offset + pixelMargin : 0;\n let spacingOffset = 0;\n const alpha = end - start;\n if (spacing) {\n // When spacing is present, it is the same for all items\n // So we adjust the start and end angle of the arc such that\n // the distance is the same as it would be without the spacing\n const noSpacingInnerRadius = innerR > 0 ? innerR - spacing : 0;\n const noSpacingOuterRadius = outerRadius > 0 ? outerRadius - spacing : 0;\n const avNogSpacingRadius = (noSpacingInnerRadius + noSpacingOuterRadius) / 2;\n const adjustedAngle = avNogSpacingRadius !== 0 ? alpha * avNogSpacingRadius / (avNogSpacingRadius + spacing) : alpha;\n spacingOffset = (alpha - adjustedAngle) / 2;\n }\n const beta = Math.max(0.001, alpha * outerRadius - offset / PI) / outerRadius;\n const angleOffset = (alpha - beta) / 2;\n const startAngle = start + angleOffset + spacingOffset;\n const endAngle = end - angleOffset - spacingOffset;\n const { outerStart , outerEnd , innerStart , innerEnd } = parseBorderRadius$1(element, innerRadius, outerRadius, endAngle - startAngle);\n const outerStartAdjustedRadius = outerRadius - outerStart;\n const outerEndAdjustedRadius = outerRadius - outerEnd;\n const outerStartAdjustedAngle = startAngle + outerStart / outerStartAdjustedRadius;\n const outerEndAdjustedAngle = endAngle - outerEnd / outerEndAdjustedRadius;\n const innerStartAdjustedRadius = innerRadius + innerStart;\n const innerEndAdjustedRadius = innerRadius + innerEnd;\n const innerStartAdjustedAngle = startAngle + innerStart / innerStartAdjustedRadius;\n const innerEndAdjustedAngle = endAngle - innerEnd / innerEndAdjustedRadius;\n ctx.beginPath();\n if (circular) {\n // The first arc segments from point 1 to point a to point 2\n const outerMidAdjustedAngle = (outerStartAdjustedAngle + outerEndAdjustedAngle) / 2;\n ctx.arc(x, y, outerRadius, outerStartAdjustedAngle, outerMidAdjustedAngle);\n ctx.arc(x, y, outerRadius, outerMidAdjustedAngle, outerEndAdjustedAngle);\n // The corner segment from point 2 to point 3\n if (outerEnd > 0) {\n const pCenter = rThetaToXY(outerEndAdjustedRadius, outerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerEnd, outerEndAdjustedAngle, endAngle + HALF_PI);\n }\n // The line from point 3 to point 4\n const p4 = rThetaToXY(innerEndAdjustedRadius, endAngle, x, y);\n ctx.lineTo(p4.x, p4.y);\n // The corner segment from point 4 to point 5\n if (innerEnd > 0) {\n const pCenter = rThetaToXY(innerEndAdjustedRadius, innerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, innerEnd, endAngle + HALF_PI, innerEndAdjustedAngle + Math.PI);\n }\n // The inner arc from point 5 to point b to point 6\n const innerMidAdjustedAngle = (endAngle - innerEnd / innerRadius + (startAngle + innerStart / innerRadius)) / 2;\n ctx.arc(x, y, innerRadius, endAngle - innerEnd / innerRadius, innerMidAdjustedAngle, true);\n ctx.arc(x, y, innerRadius, innerMidAdjustedAngle, startAngle + innerStart / innerRadius, true);\n // The corner segment from point 6 to point 7\n if (innerStart > 0) {\n const pCenter = rThetaToXY(innerStartAdjustedRadius, innerStartAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, innerStart, innerStartAdjustedAngle + Math.PI, startAngle - HALF_PI);\n }\n // The line from point 7 to point 8\n const p8 = rThetaToXY(outerStartAdjustedRadius, startAngle, x, y);\n ctx.lineTo(p8.x, p8.y);\n // The corner segment from point 8 to point 1\n if (outerStart > 0) {\n const pCenter = rThetaToXY(outerStartAdjustedRadius, outerStartAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerStart, startAngle - HALF_PI, outerStartAdjustedAngle);\n }\n } else {\n ctx.moveTo(x, y);\n const outerStartX = Math.cos(outerStartAdjustedAngle) * outerRadius + x;\n const outerStartY = Math.sin(outerStartAdjustedAngle) * outerRadius + y;\n ctx.lineTo(outerStartX, outerStartY);\n const outerEndX = Math.cos(outerEndAdjustedAngle) * outerRadius + x;\n const outerEndY = Math.sin(outerEndAdjustedAngle) * outerRadius + y;\n ctx.lineTo(outerEndX, outerEndY);\n }\n ctx.closePath();\n}\nfunction drawArc(ctx, element, offset, spacing, circular) {\n const { fullCircles , startAngle , circumference } = element;\n let endAngle = element.endAngle;\n if (fullCircles) {\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n for(let i = 0; i < fullCircles; ++i){\n ctx.fill();\n }\n if (!isNaN(circumference)) {\n endAngle = startAngle + (circumference % TAU || TAU);\n }\n }\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n ctx.fill();\n return endAngle;\n}\nfunction drawBorder(ctx, element, offset, spacing, circular) {\n const { fullCircles , startAngle , circumference , options } = element;\n const { borderWidth , borderJoinStyle , borderDash , borderDashOffset , borderRadius } = options;\n const inner = options.borderAlign === 'inner';\n if (!borderWidth) {\n return;\n }\n ctx.setLineDash(borderDash || []);\n ctx.lineDashOffset = borderDashOffset;\n if (inner) {\n ctx.lineWidth = borderWidth * 2;\n ctx.lineJoin = borderJoinStyle || 'round';\n } else {\n ctx.lineWidth = borderWidth;\n ctx.lineJoin = borderJoinStyle || 'bevel';\n }\n let endAngle = element.endAngle;\n if (fullCircles) {\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n for(let i = 0; i < fullCircles; ++i){\n ctx.stroke();\n }\n if (!isNaN(circumference)) {\n endAngle = startAngle + (circumference % TAU || TAU);\n }\n }\n if (inner) {\n clipArc(ctx, element, endAngle);\n }\n if (options.selfJoin && endAngle - startAngle >= PI && borderRadius === 0 && borderJoinStyle !== 'miter') {\n clipSelf(ctx, element, endAngle);\n }\n if (!fullCircles) {\n pathArc(ctx, element, offset, spacing, endAngle, circular);\n ctx.stroke();\n }\n}\nclass ArcElement extends Element {\n static id = 'arc';\n static defaults = {\n borderAlign: 'center',\n borderColor: '#fff',\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: undefined,\n borderRadius: 0,\n borderWidth: 2,\n offset: 0,\n spacing: 0,\n angle: undefined,\n circular: true,\n selfJoin: false\n };\n static defaultRoutes = {\n backgroundColor: 'backgroundColor'\n };\n static descriptors = {\n _scriptable: true,\n _indexable: (name)=>name !== 'borderDash'\n };\n circumference;\n endAngle;\n fullCircles;\n innerRadius;\n outerRadius;\n pixelMargin;\n startAngle;\n constructor(cfg){\n super();\n this.options = undefined;\n this.circumference = undefined;\n this.startAngle = undefined;\n this.endAngle = undefined;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.pixelMargin = 0;\n this.fullCircles = 0;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n inRange(chartX, chartY, useFinalPosition) {\n const point = this.getProps([\n 'x',\n 'y'\n ], useFinalPosition);\n const { angle , distance } = getAngleFromPoint(point, {\n x: chartX,\n y: chartY\n });\n const { startAngle , endAngle , innerRadius , outerRadius , circumference } = this.getProps([\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius',\n 'circumference'\n ], useFinalPosition);\n const rAdjust = (this.options.spacing + this.options.borderWidth) / 2;\n const _circumference = valueOrDefault(circumference, endAngle - startAngle);\n const nonZeroBetween = _angleBetween(angle, startAngle, endAngle) && startAngle !== endAngle;\n const betweenAngles = _circumference >= TAU || nonZeroBetween;\n const withinRadius = _isBetween(distance, innerRadius + rAdjust, outerRadius + rAdjust);\n return betweenAngles && withinRadius;\n }\n getCenterPoint(useFinalPosition) {\n const { x , y , startAngle , endAngle , innerRadius , outerRadius } = this.getProps([\n 'x',\n 'y',\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius'\n ], useFinalPosition);\n const { offset , spacing } = this.options;\n const halfAngle = (startAngle + endAngle) / 2;\n const halfRadius = (innerRadius + outerRadius + spacing + offset) / 2;\n return {\n x: x + Math.cos(halfAngle) * halfRadius,\n y: y + Math.sin(halfAngle) * halfRadius\n };\n }\n tooltipPosition(useFinalPosition) {\n return this.getCenterPoint(useFinalPosition);\n }\n draw(ctx) {\n const { options , circumference } = this;\n const offset = (options.offset || 0) / 4;\n const spacing = (options.spacing || 0) / 2;\n const circular = options.circular;\n this.pixelMargin = options.borderAlign === 'inner' ? 0.33 : 0;\n this.fullCircles = circumference > TAU ? Math.floor(circumference / TAU) : 0;\n if (circumference === 0 || this.innerRadius < 0 || this.outerRadius < 0) {\n return;\n }\n ctx.save();\n const halfAngle = (this.startAngle + this.endAngle) / 2;\n ctx.translate(Math.cos(halfAngle) * offset, Math.sin(halfAngle) * offset);\n const fix = 1 - Math.sin(Math.min(PI, circumference || 0));\n const radiusOffset = offset * fix;\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n drawArc(ctx, this, radiusOffset, spacing, circular);\n drawBorder(ctx, this, radiusOffset, spacing, circular);\n ctx.restore();\n }\n}\n\nfunction setStyle(ctx, options, style = options) {\n ctx.lineCap = valueOrDefault(style.borderCapStyle, options.borderCapStyle);\n ctx.setLineDash(valueOrDefault(style.borderDash, options.borderDash));\n ctx.lineDashOffset = valueOrDefault(style.borderDashOffset, options.borderDashOffset);\n ctx.lineJoin = valueOrDefault(style.borderJoinStyle, options.borderJoinStyle);\n ctx.lineWidth = valueOrDefault(style.borderWidth, options.borderWidth);\n ctx.strokeStyle = valueOrDefault(style.borderColor, options.borderColor);\n}\nfunction lineTo(ctx, previous, target) {\n ctx.lineTo(target.x, target.y);\n}\n function getLineMethod(options) {\n if (options.stepped) {\n return _steppedLineTo;\n }\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierCurveTo;\n }\n return lineTo;\n}\nfunction pathVars(points, segment, params = {}) {\n const count = points.length;\n const { start: paramsStart = 0 , end: paramsEnd = count - 1 } = params;\n const { start: segmentStart , end: segmentEnd } = segment;\n const start = Math.max(paramsStart, segmentStart);\n const end = Math.min(paramsEnd, segmentEnd);\n const outside = paramsStart < segmentStart && paramsEnd < segmentStart || paramsStart > segmentEnd && paramsEnd > segmentEnd;\n return {\n count,\n start,\n loop: segment.loop,\n ilen: end < start && !outside ? count + end - start : end - start\n };\n}\n function pathSegment(ctx, line, segment, params) {\n const { points , options } = line;\n const { count , start , loop , ilen } = pathVars(points, segment, params);\n const lineMethod = getLineMethod(options);\n let { move =true , reverse } = params || {};\n let i, point, prev;\n for(i = 0; i <= ilen; ++i){\n point = points[(start + (reverse ? ilen - i : i)) % count];\n if (point.skip) {\n continue;\n } else if (move) {\n ctx.moveTo(point.x, point.y);\n move = false;\n } else {\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n prev = point;\n }\n if (loop) {\n point = points[(start + (reverse ? ilen : 0)) % count];\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n return !!loop;\n}\n function fastPathSegment(ctx, line, segment, params) {\n const points = line.points;\n const { count , start , ilen } = pathVars(points, segment, params);\n const { move =true , reverse } = params || {};\n let avgX = 0;\n let countX = 0;\n let i, point, prevX, minY, maxY, lastY;\n const pointIndex = (index)=>(start + (reverse ? ilen - index : index)) % count;\n const drawX = ()=>{\n if (minY !== maxY) {\n ctx.lineTo(avgX, maxY);\n ctx.lineTo(avgX, minY);\n ctx.lineTo(avgX, lastY);\n }\n };\n if (move) {\n point = points[pointIndex(0)];\n ctx.moveTo(point.x, point.y);\n }\n for(i = 0; i <= ilen; ++i){\n point = points[pointIndex(i)];\n if (point.skip) {\n continue;\n }\n const x = point.x;\n const y = point.y;\n const truncX = x | 0;\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n } else if (y > maxY) {\n maxY = y;\n }\n avgX = (countX * avgX + x) / ++countX;\n } else {\n drawX();\n ctx.lineTo(x, y);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n }\n lastY = y;\n }\n drawX();\n}\n function _getSegmentMethod(line) {\n const opts = line.options;\n const borderDash = opts.borderDash && opts.borderDash.length;\n const useFastPath = !line._decimated && !line._loop && !opts.tension && opts.cubicInterpolationMode !== 'monotone' && !opts.stepped && !borderDash;\n return useFastPath ? fastPathSegment : pathSegment;\n}\n function _getInterpolationMethod(options) {\n if (options.stepped) {\n return _steppedInterpolation;\n }\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierInterpolation;\n }\n return _pointInLine;\n}\nfunction strokePathWithCache(ctx, line, start, count) {\n let path = line._path;\n if (!path) {\n path = line._path = new Path2D();\n if (line.path(path, start, count)) {\n path.closePath();\n }\n }\n setStyle(ctx, line.options);\n ctx.stroke(path);\n}\nfunction strokePathDirect(ctx, line, start, count) {\n const { segments , options } = line;\n const segmentMethod = _getSegmentMethod(line);\n for (const segment of segments){\n setStyle(ctx, options, segment.style);\n ctx.beginPath();\n if (segmentMethod(ctx, line, segment, {\n start,\n end: start + count - 1\n })) {\n ctx.closePath();\n }\n ctx.stroke();\n }\n}\nconst usePath2D = typeof Path2D === 'function';\nfunction draw(ctx, line, start, count) {\n if (usePath2D && !line.options.segment) {\n strokePathWithCache(ctx, line, start, count);\n } else {\n strokePathDirect(ctx, line, start, count);\n }\n}\nclass LineElement extends Element {\n static id = 'line';\n static defaults = {\n borderCapStyle: 'butt',\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: 'miter',\n borderWidth: 3,\n capBezierPoints: true,\n cubicInterpolationMode: 'default',\n fill: false,\n spanGaps: false,\n stepped: false,\n tension: 0\n };\n static defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n };\n static descriptors = {\n _scriptable: true,\n _indexable: (name)=>name !== 'borderDash' && name !== 'fill'\n };\n constructor(cfg){\n super();\n this.animated = true;\n this.options = undefined;\n this._chart = undefined;\n this._loop = undefined;\n this._fullLoop = undefined;\n this._path = undefined;\n this._points = undefined;\n this._segments = undefined;\n this._decimated = false;\n this._pointsUpdated = false;\n this._datasetIndex = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n updateControlPoints(chartArea, indexAxis) {\n const options = this.options;\n if ((options.tension || options.cubicInterpolationMode === 'monotone') && !options.stepped && !this._pointsUpdated) {\n const loop = options.spanGaps ? this._loop : this._fullLoop;\n _updateBezierControlPoints(this._points, options, chartArea, loop, indexAxis);\n this._pointsUpdated = true;\n }\n }\n set points(points) {\n this._points = points;\n delete this._segments;\n delete this._path;\n this._pointsUpdated = false;\n }\n get points() {\n return this._points;\n }\n get segments() {\n return this._segments || (this._segments = _computeSegments(this, this.options.segment));\n }\n first() {\n const segments = this.segments;\n const points = this.points;\n return segments.length && points[segments[0].start];\n }\n last() {\n const segments = this.segments;\n const points = this.points;\n const count = segments.length;\n return count && points[segments[count - 1].end];\n }\n interpolate(point, property) {\n const options = this.options;\n const value = point[property];\n const points = this.points;\n const segments = _boundSegments(this, {\n property,\n start: value,\n end: value\n });\n if (!segments.length) {\n return;\n }\n const result = [];\n const _interpolate = _getInterpolationMethod(options);\n let i, ilen;\n for(i = 0, ilen = segments.length; i < ilen; ++i){\n const { start , end } = segments[i];\n const p1 = points[start];\n const p2 = points[end];\n if (p1 === p2) {\n result.push(p1);\n continue;\n }\n const t = Math.abs((value - p1[property]) / (p2[property] - p1[property]));\n const interpolated = _interpolate(p1, p2, t, options.stepped);\n interpolated[property] = point[property];\n result.push(interpolated);\n }\n return result.length === 1 ? result[0] : result;\n }\n pathSegment(ctx, segment, params) {\n const segmentMethod = _getSegmentMethod(this);\n return segmentMethod(ctx, this, segment, params);\n }\n path(ctx, start, count) {\n const segments = this.segments;\n const segmentMethod = _getSegmentMethod(this);\n let loop = this._loop;\n start = start || 0;\n count = count || this.points.length - start;\n for (const segment of segments){\n loop &= segmentMethod(ctx, this, segment, {\n start,\n end: start + count - 1\n });\n }\n return !!loop;\n }\n draw(ctx, chartArea, start, count) {\n const options = this.options || {};\n const points = this.points || [];\n if (points.length && options.borderWidth) {\n ctx.save();\n draw(ctx, this, start, count);\n ctx.restore();\n }\n if (this.animated) {\n this._pointsUpdated = false;\n this._path = undefined;\n }\n }\n}\n\nfunction inRange$1(el, pos, axis, useFinalPosition) {\n const options = el.options;\n const { [axis]: value } = el.getProps([\n axis\n ], useFinalPosition);\n return Math.abs(pos - value) < options.radius + options.hitRadius;\n}\nclass PointElement extends Element {\n static id = 'point';\n parsed;\n skip;\n stop;\n /**\n * @type {any}\n */ static defaults = {\n borderWidth: 1,\n hitRadius: 1,\n hoverBorderWidth: 1,\n hoverRadius: 4,\n pointStyle: 'circle',\n radius: 3,\n rotation: 0\n };\n /**\n * @type {any}\n */ static defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n };\n constructor(cfg){\n super();\n this.options = undefined;\n this.parsed = undefined;\n this.skip = undefined;\n this.stop = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n inRange(mouseX, mouseY, useFinalPosition) {\n const options = this.options;\n const { x , y } = this.getProps([\n 'x',\n 'y'\n ], useFinalPosition);\n return Math.pow(mouseX - x, 2) + Math.pow(mouseY - y, 2) < Math.pow(options.hitRadius + options.radius, 2);\n }\n inXRange(mouseX, useFinalPosition) {\n return inRange$1(this, mouseX, 'x', useFinalPosition);\n }\n inYRange(mouseY, useFinalPosition) {\n return inRange$1(this, mouseY, 'y', useFinalPosition);\n }\n getCenterPoint(useFinalPosition) {\n const { x , y } = this.getProps([\n 'x',\n 'y'\n ], useFinalPosition);\n return {\n x,\n y\n };\n }\n size(options) {\n options = options || this.options || {};\n let radius = options.radius || 0;\n radius = Math.max(radius, radius && options.hoverRadius || 0);\n const borderWidth = radius && options.borderWidth || 0;\n return (radius + borderWidth) * 2;\n }\n draw(ctx, area) {\n const options = this.options;\n if (this.skip || options.radius < 0.1 || !_isPointInArea(this, area, this.size(options) / 2)) {\n return;\n }\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.fillStyle = options.backgroundColor;\n drawPoint(ctx, options, this.x, this.y);\n }\n getRange() {\n const options = this.options || {};\n // @ts-expect-error Fallbacks should never be hit in practice\n return options.radius + options.hitRadius;\n }\n}\n\nfunction getBarBounds(bar, useFinalPosition) {\n const { x , y , base , width , height } = bar.getProps([\n 'x',\n 'y',\n 'base',\n 'width',\n 'height'\n ], useFinalPosition);\n let left, right, top, bottom, half;\n if (bar.horizontal) {\n half = height / 2;\n left = Math.min(x, base);\n right = Math.max(x, base);\n top = y - half;\n bottom = y + half;\n } else {\n half = width / 2;\n left = x - half;\n right = x + half;\n top = Math.min(y, base);\n bottom = Math.max(y, base);\n }\n return {\n left,\n top,\n right,\n bottom\n };\n}\nfunction skipOrLimit(skip, value, min, max) {\n return skip ? 0 : _limitValue(value, min, max);\n}\nfunction parseBorderWidth(bar, maxW, maxH) {\n const value = bar.options.borderWidth;\n const skip = bar.borderSkipped;\n const o = toTRBL(value);\n return {\n t: skipOrLimit(skip.top, o.top, 0, maxH),\n r: skipOrLimit(skip.right, o.right, 0, maxW),\n b: skipOrLimit(skip.bottom, o.bottom, 0, maxH),\n l: skipOrLimit(skip.left, o.left, 0, maxW)\n };\n}\nfunction parseBorderRadius(bar, maxW, maxH) {\n const { enableBorderRadius } = bar.getProps([\n 'enableBorderRadius'\n ]);\n const value = bar.options.borderRadius;\n const o = toTRBLCorners(value);\n const maxR = Math.min(maxW, maxH);\n const skip = bar.borderSkipped;\n const enableBorder = enableBorderRadius || isObject(value);\n return {\n topLeft: skipOrLimit(!enableBorder || skip.top || skip.left, o.topLeft, 0, maxR),\n topRight: skipOrLimit(!enableBorder || skip.top || skip.right, o.topRight, 0, maxR),\n bottomLeft: skipOrLimit(!enableBorder || skip.bottom || skip.left, o.bottomLeft, 0, maxR),\n bottomRight: skipOrLimit(!enableBorder || skip.bottom || skip.right, o.bottomRight, 0, maxR)\n };\n}\nfunction boundingRects(bar) {\n const bounds = getBarBounds(bar);\n const width = bounds.right - bounds.left;\n const height = bounds.bottom - bounds.top;\n const border = parseBorderWidth(bar, width / 2, height / 2);\n const radius = parseBorderRadius(bar, width / 2, height / 2);\n return {\n outer: {\n x: bounds.left,\n y: bounds.top,\n w: width,\n h: height,\n radius\n },\n inner: {\n x: bounds.left + border.l,\n y: bounds.top + border.t,\n w: width - border.l - border.r,\n h: height - border.t - border.b,\n radius: {\n topLeft: Math.max(0, radius.topLeft - Math.max(border.t, border.l)),\n topRight: Math.max(0, radius.topRight - Math.max(border.t, border.r)),\n bottomLeft: Math.max(0, radius.bottomLeft - Math.max(border.b, border.l)),\n bottomRight: Math.max(0, radius.bottomRight - Math.max(border.b, border.r))\n }\n }\n };\n}\nfunction inRange(bar, x, y, useFinalPosition) {\n const skipX = x === null;\n const skipY = y === null;\n const skipBoth = skipX && skipY;\n const bounds = bar && !skipBoth && getBarBounds(bar, useFinalPosition);\n return bounds && (skipX || _isBetween(x, bounds.left, bounds.right)) && (skipY || _isBetween(y, bounds.top, bounds.bottom));\n}\nfunction hasRadius(radius) {\n return radius.topLeft || radius.topRight || radius.bottomLeft || radius.bottomRight;\n}\n function addNormalRectPath(ctx, rect) {\n ctx.rect(rect.x, rect.y, rect.w, rect.h);\n}\nfunction inflateRect(rect, amount, refRect = {}) {\n const x = rect.x !== refRect.x ? -amount : 0;\n const y = rect.y !== refRect.y ? -amount : 0;\n const w = (rect.x + rect.w !== refRect.x + refRect.w ? amount : 0) - x;\n const h = (rect.y + rect.h !== refRect.y + refRect.h ? amount : 0) - y;\n return {\n x: rect.x + x,\n y: rect.y + y,\n w: rect.w + w,\n h: rect.h + h,\n radius: rect.radius\n };\n}\nclass BarElement extends Element {\n static id = 'bar';\n static defaults = {\n borderSkipped: 'start',\n borderWidth: 0,\n borderRadius: 0,\n inflateAmount: 'auto',\n pointStyle: undefined\n };\n static defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n };\n constructor(cfg){\n super();\n this.options = undefined;\n this.horizontal = undefined;\n this.base = undefined;\n this.width = undefined;\n this.height = undefined;\n this.inflateAmount = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n draw(ctx) {\n const { inflateAmount , options: { borderColor , backgroundColor } } = this;\n const { inner , outer } = boundingRects(this);\n const addRectPath = hasRadius(outer.radius) ? addRoundedRectPath : addNormalRectPath;\n ctx.save();\n if (outer.w !== inner.w || outer.h !== inner.h) {\n ctx.beginPath();\n addRectPath(ctx, inflateRect(outer, inflateAmount, inner));\n ctx.clip();\n addRectPath(ctx, inflateRect(inner, -inflateAmount, outer));\n ctx.fillStyle = borderColor;\n ctx.fill('evenodd');\n }\n ctx.beginPath();\n addRectPath(ctx, inflateRect(inner, inflateAmount));\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n inRange(mouseX, mouseY, useFinalPosition) {\n return inRange(this, mouseX, mouseY, useFinalPosition);\n }\n inXRange(mouseX, useFinalPosition) {\n return inRange(this, mouseX, null, useFinalPosition);\n }\n inYRange(mouseY, useFinalPosition) {\n return inRange(this, null, mouseY, useFinalPosition);\n }\n getCenterPoint(useFinalPosition) {\n const { x , y , base , horizontal } = this.getProps([\n 'x',\n 'y',\n 'base',\n 'horizontal'\n ], useFinalPosition);\n return {\n x: horizontal ? (x + base) / 2 : x,\n y: horizontal ? y : (y + base) / 2\n };\n }\n getRange(axis) {\n return axis === 'x' ? this.width / 2 : this.height / 2;\n }\n}\n\nvar elements = /*#__PURE__*/Object.freeze({\n__proto__: null,\nArcElement: ArcElement,\nBarElement: BarElement,\nLineElement: LineElement,\nPointElement: PointElement\n});\n\nconst BORDER_COLORS = [\n 'rgb(54, 162, 235)',\n 'rgb(255, 99, 132)',\n 'rgb(255, 159, 64)',\n 'rgb(255, 205, 86)',\n 'rgb(75, 192, 192)',\n 'rgb(153, 102, 255)',\n 'rgb(201, 203, 207)' // grey\n];\n// Border colors with 50% transparency\nconst BACKGROUND_COLORS = /* #__PURE__ */ BORDER_COLORS.map((color)=>color.replace('rgb(', 'rgba(').replace(')', ', 0.5)'));\nfunction getBorderColor(i) {\n return BORDER_COLORS[i % BORDER_COLORS.length];\n}\nfunction getBackgroundColor(i) {\n return BACKGROUND_COLORS[i % BACKGROUND_COLORS.length];\n}\nfunction colorizeDefaultDataset(dataset, i) {\n dataset.borderColor = getBorderColor(i);\n dataset.backgroundColor = getBackgroundColor(i);\n return ++i;\n}\nfunction colorizeDoughnutDataset(dataset, i) {\n dataset.backgroundColor = dataset.data.map(()=>getBorderColor(i++));\n return i;\n}\nfunction colorizePolarAreaDataset(dataset, i) {\n dataset.backgroundColor = dataset.data.map(()=>getBackgroundColor(i++));\n return i;\n}\nfunction getColorizer(chart) {\n let i = 0;\n return (dataset, datasetIndex)=>{\n const controller = chart.getDatasetMeta(datasetIndex).controller;\n if (controller instanceof DoughnutController) {\n i = colorizeDoughnutDataset(dataset, i);\n } else if (controller instanceof PolarAreaController) {\n i = colorizePolarAreaDataset(dataset, i);\n } else if (controller) {\n i = colorizeDefaultDataset(dataset, i);\n }\n };\n}\nfunction containsColorsDefinitions(descriptors) {\n let k;\n for(k in descriptors){\n if (descriptors[k].borderColor || descriptors[k].backgroundColor) {\n return true;\n }\n }\n return false;\n}\nfunction containsColorsDefinition(descriptor) {\n return descriptor && (descriptor.borderColor || descriptor.backgroundColor);\n}\nfunction containsDefaultColorsDefenitions() {\n return defaults.borderColor !== 'rgba(0,0,0,0.1)' || defaults.backgroundColor !== 'rgba(0,0,0,0.1)';\n}\nvar plugin_colors = {\n id: 'colors',\n defaults: {\n enabled: true,\n forceOverride: false\n },\n beforeLayout (chart, _args, options) {\n if (!options.enabled) {\n return;\n }\n const { data: { datasets } , options: chartOptions } = chart.config;\n const { elements } = chartOptions;\n const containsColorDefenition = containsColorsDefinitions(datasets) || containsColorsDefinition(chartOptions) || elements && containsColorsDefinitions(elements) || containsDefaultColorsDefenitions();\n if (!options.forceOverride && containsColorDefenition) {\n return;\n }\n const colorizer = getColorizer(chart);\n datasets.forEach(colorizer);\n }\n};\n\nfunction lttbDecimation(data, start, count, availableWidth, options) {\n const samples = options.samples || availableWidth;\n if (samples >= count) {\n return data.slice(start, start + count);\n }\n const decimated = [];\n const bucketWidth = (count - 2) / (samples - 2);\n let sampledIndex = 0;\n const endIndex = start + count - 1;\n let a = start;\n let i, maxAreaPoint, maxArea, area, nextA;\n decimated[sampledIndex++] = data[a];\n for(i = 0; i < samples - 2; i++){\n let avgX = 0;\n let avgY = 0;\n let j;\n const avgRangeStart = Math.floor((i + 1) * bucketWidth) + 1 + start;\n const avgRangeEnd = Math.min(Math.floor((i + 2) * bucketWidth) + 1, count) + start;\n const avgRangeLength = avgRangeEnd - avgRangeStart;\n for(j = avgRangeStart; j < avgRangeEnd; j++){\n avgX += data[j].x;\n avgY += data[j].y;\n }\n avgX /= avgRangeLength;\n avgY /= avgRangeLength;\n const rangeOffs = Math.floor(i * bucketWidth) + 1 + start;\n const rangeTo = Math.min(Math.floor((i + 1) * bucketWidth) + 1, count) + start;\n const { x: pointAx , y: pointAy } = data[a];\n maxArea = area = -1;\n for(j = rangeOffs; j < rangeTo; j++){\n area = 0.5 * Math.abs((pointAx - avgX) * (data[j].y - pointAy) - (pointAx - data[j].x) * (avgY - pointAy));\n if (area > maxArea) {\n maxArea = area;\n maxAreaPoint = data[j];\n nextA = j;\n }\n }\n decimated[sampledIndex++] = maxAreaPoint;\n a = nextA;\n }\n decimated[sampledIndex++] = data[endIndex];\n return decimated;\n}\nfunction minMaxDecimation(data, start, count, availableWidth) {\n let avgX = 0;\n let countX = 0;\n let i, point, x, y, prevX, minIndex, maxIndex, startIndex, minY, maxY;\n const decimated = [];\n const endIndex = start + count - 1;\n const xMin = data[start].x;\n const xMax = data[endIndex].x;\n const dx = xMax - xMin;\n for(i = start; i < start + count; ++i){\n point = data[i];\n x = (point.x - xMin) / dx * availableWidth;\n y = point.y;\n const truncX = x | 0;\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n minIndex = i;\n } else if (y > maxY) {\n maxY = y;\n maxIndex = i;\n }\n avgX = (countX * avgX + point.x) / ++countX;\n } else {\n const lastIndex = i - 1;\n if (!isNullOrUndef(minIndex) && !isNullOrUndef(maxIndex)) {\n const intermediateIndex1 = Math.min(minIndex, maxIndex);\n const intermediateIndex2 = Math.max(minIndex, maxIndex);\n if (intermediateIndex1 !== startIndex && intermediateIndex1 !== lastIndex) {\n decimated.push({\n ...data[intermediateIndex1],\n x: avgX\n });\n }\n if (intermediateIndex2 !== startIndex && intermediateIndex2 !== lastIndex) {\n decimated.push({\n ...data[intermediateIndex2],\n x: avgX\n });\n }\n }\n if (i > 0 && lastIndex !== startIndex) {\n decimated.push(data[lastIndex]);\n }\n decimated.push(point);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n minIndex = maxIndex = startIndex = i;\n }\n }\n return decimated;\n}\nfunction cleanDecimatedDataset(dataset) {\n if (dataset._decimated) {\n const data = dataset._data;\n delete dataset._decimated;\n delete dataset._data;\n Object.defineProperty(dataset, 'data', {\n configurable: true,\n enumerable: true,\n writable: true,\n value: data\n });\n }\n}\nfunction cleanDecimatedData(chart) {\n chart.data.datasets.forEach((dataset)=>{\n cleanDecimatedDataset(dataset);\n });\n}\nfunction getStartAndCountOfVisiblePointsSimplified(meta, points) {\n const pointCount = points.length;\n let start = 0;\n let count;\n const { iScale } = meta;\n const { min , max , minDefined , maxDefined } = iScale.getUserBounds();\n if (minDefined) {\n start = _limitValue(_lookupByKey(points, iScale.axis, min).lo, 0, pointCount - 1);\n }\n if (maxDefined) {\n count = _limitValue(_lookupByKey(points, iScale.axis, max).hi + 1, start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n return {\n start,\n count\n };\n}\nvar plugin_decimation = {\n id: 'decimation',\n defaults: {\n algorithm: 'min-max',\n enabled: false\n },\n beforeElementsUpdate: (chart, args, options)=>{\n if (!options.enabled) {\n cleanDecimatedData(chart);\n return;\n }\n const availableWidth = chart.width;\n chart.data.datasets.forEach((dataset, datasetIndex)=>{\n const { _data , indexAxis } = dataset;\n const meta = chart.getDatasetMeta(datasetIndex);\n const data = _data || dataset.data;\n if (resolve([\n indexAxis,\n chart.options.indexAxis\n ]) === 'y') {\n return;\n }\n if (!meta.controller.supportsDecimation) {\n return;\n }\n const xAxis = chart.scales[meta.xAxisID];\n if (xAxis.type !== 'linear' && xAxis.type !== 'time') {\n return;\n }\n if (chart.options.parsing) {\n return;\n }\n let { start , count } = getStartAndCountOfVisiblePointsSimplified(meta, data);\n const threshold = options.threshold || 4 * availableWidth;\n if (count <= threshold) {\n cleanDecimatedDataset(dataset);\n return;\n }\n if (isNullOrUndef(_data)) {\n dataset._data = data;\n delete dataset.data;\n Object.defineProperty(dataset, 'data', {\n configurable: true,\n enumerable: true,\n get: function() {\n return this._decimated;\n },\n set: function(d) {\n this._data = d;\n }\n });\n }\n let decimated;\n switch(options.algorithm){\n case 'lttb':\n decimated = lttbDecimation(data, start, count, availableWidth, options);\n break;\n case 'min-max':\n decimated = minMaxDecimation(data, start, count, availableWidth);\n break;\n default:\n throw new Error(`Unsupported decimation algorithm '${options.algorithm}'`);\n }\n dataset._decimated = decimated;\n });\n },\n destroy (chart) {\n cleanDecimatedData(chart);\n }\n};\n\nfunction _segments(line, target, property) {\n const segments = line.segments;\n const points = line.points;\n const tpoints = target.points;\n const parts = [];\n for (const segment of segments){\n let { start , end } = segment;\n end = _findSegmentEnd(start, end, points);\n const bounds = _getBounds(property, points[start], points[end], segment.loop);\n if (!target.segments) {\n parts.push({\n source: segment,\n target: bounds,\n start: points[start],\n end: points[end]\n });\n continue;\n }\n const targetSegments = _boundSegments(target, bounds);\n for (const tgt of targetSegments){\n const subBounds = _getBounds(property, tpoints[tgt.start], tpoints[tgt.end], tgt.loop);\n const fillSources = _boundSegment(segment, points, subBounds);\n for (const fillSource of fillSources){\n parts.push({\n source: fillSource,\n target: tgt,\n start: {\n [property]: _getEdge(bounds, subBounds, 'start', Math.max)\n },\n end: {\n [property]: _getEdge(bounds, subBounds, 'end', Math.min)\n }\n });\n }\n }\n }\n return parts;\n}\nfunction _getBounds(property, first, last, loop) {\n if (loop) {\n return;\n }\n let start = first[property];\n let end = last[property];\n if (property === 'angle') {\n start = _normalizeAngle(start);\n end = _normalizeAngle(end);\n }\n return {\n property,\n start,\n end\n };\n}\nfunction _pointsFromSegments(boundary, line) {\n const { x =null , y =null } = boundary || {};\n const linePoints = line.points;\n const points = [];\n line.segments.forEach(({ start , end })=>{\n end = _findSegmentEnd(start, end, linePoints);\n const first = linePoints[start];\n const last = linePoints[end];\n if (y !== null) {\n points.push({\n x: first.x,\n y\n });\n points.push({\n x: last.x,\n y\n });\n } else if (x !== null) {\n points.push({\n x,\n y: first.y\n });\n points.push({\n x,\n y: last.y\n });\n }\n });\n return points;\n}\nfunction _findSegmentEnd(start, end, points) {\n for(; end > start; end--){\n const point = points[end];\n if (!isNaN(point.x) && !isNaN(point.y)) {\n break;\n }\n }\n return end;\n}\nfunction _getEdge(a, b, prop, fn) {\n if (a && b) {\n return fn(a[prop], b[prop]);\n }\n return a ? a[prop] : b ? b[prop] : 0;\n}\n\nfunction _createBoundaryLine(boundary, line) {\n let points = [];\n let _loop = false;\n if (isArray(boundary)) {\n _loop = true;\n points = boundary;\n } else {\n points = _pointsFromSegments(boundary, line);\n }\n return points.length ? new LineElement({\n points,\n options: {\n tension: 0\n },\n _loop,\n _fullLoop: _loop\n }) : null;\n}\nfunction _shouldApplyFill(source) {\n return source && source.fill !== false;\n}\n\nfunction _resolveTarget(sources, index, propagate) {\n const source = sources[index];\n let fill = source.fill;\n const visited = [\n index\n ];\n let target;\n if (!propagate) {\n return fill;\n }\n while(fill !== false && visited.indexOf(fill) === -1){\n if (!isNumberFinite(fill)) {\n return fill;\n }\n target = sources[fill];\n if (!target) {\n return false;\n }\n if (target.visible) {\n return fill;\n }\n visited.push(fill);\n fill = target.fill;\n }\n return false;\n}\n function _decodeFill(line, index, count) {\n const fill = parseFillOption(line);\n if (isObject(fill)) {\n return isNaN(fill.value) ? false : fill;\n }\n let target = parseFloat(fill);\n if (isNumberFinite(target) && Math.floor(target) === target) {\n return decodeTargetIndex(fill[0], index, target, count);\n }\n return [\n 'origin',\n 'start',\n 'end',\n 'stack',\n 'shape'\n ].indexOf(fill) >= 0 && fill;\n}\nfunction decodeTargetIndex(firstCh, index, target, count) {\n if (firstCh === '-' || firstCh === '+') {\n target = index + target;\n }\n if (target === index || target < 0 || target >= count) {\n return false;\n }\n return target;\n}\n function _getTargetPixel(fill, scale) {\n let pixel = null;\n if (fill === 'start') {\n pixel = scale.bottom;\n } else if (fill === 'end') {\n pixel = scale.top;\n } else if (isObject(fill)) {\n pixel = scale.getPixelForValue(fill.value);\n } else if (scale.getBasePixel) {\n pixel = scale.getBasePixel();\n }\n return pixel;\n}\n function _getTargetValue(fill, scale, startValue) {\n let value;\n if (fill === 'start') {\n value = startValue;\n } else if (fill === 'end') {\n value = scale.options.reverse ? scale.min : scale.max;\n } else if (isObject(fill)) {\n value = fill.value;\n } else {\n value = scale.getBaseValue();\n }\n return value;\n}\n function parseFillOption(line) {\n const options = line.options;\n const fillOption = options.fill;\n let fill = valueOrDefault(fillOption && fillOption.target, fillOption);\n if (fill === undefined) {\n fill = !!options.backgroundColor;\n }\n if (fill === false || fill === null) {\n return false;\n }\n if (fill === true) {\n return 'origin';\n }\n return fill;\n}\n\nfunction _buildStackLine(source) {\n const { scale , index , line } = source;\n const points = [];\n const segments = line.segments;\n const sourcePoints = line.points;\n const linesBelow = getLinesBelow(scale, index);\n linesBelow.push(_createBoundaryLine({\n x: null,\n y: scale.bottom\n }, line));\n for(let i = 0; i < segments.length; i++){\n const segment = segments[i];\n for(let j = segment.start; j <= segment.end; j++){\n addPointsBelow(points, sourcePoints[j], linesBelow);\n }\n }\n return new LineElement({\n points,\n options: {}\n });\n}\n function getLinesBelow(scale, index) {\n const below = [];\n const metas = scale.getMatchingVisibleMetas('line');\n for(let i = 0; i < metas.length; i++){\n const meta = metas[i];\n if (meta.index === index) {\n break;\n }\n if (!meta.hidden) {\n below.unshift(meta.dataset);\n }\n }\n return below;\n}\n function addPointsBelow(points, sourcePoint, linesBelow) {\n const postponed = [];\n for(let j = 0; j < linesBelow.length; j++){\n const line = linesBelow[j];\n const { first , last , point } = findPoint(line, sourcePoint, 'x');\n if (!point || first && last) {\n continue;\n }\n if (first) {\n postponed.unshift(point);\n } else {\n points.push(point);\n if (!last) {\n break;\n }\n }\n }\n points.push(...postponed);\n}\n function findPoint(line, sourcePoint, property) {\n const point = line.interpolate(sourcePoint, property);\n if (!point) {\n return {};\n }\n const pointValue = point[property];\n const segments = line.segments;\n const linePoints = line.points;\n let first = false;\n let last = false;\n for(let i = 0; i < segments.length; i++){\n const segment = segments[i];\n const firstValue = linePoints[segment.start][property];\n const lastValue = linePoints[segment.end][property];\n if (_isBetween(pointValue, firstValue, lastValue)) {\n first = pointValue === firstValue;\n last = pointValue === lastValue;\n break;\n }\n }\n return {\n first,\n last,\n point\n };\n}\n\nclass simpleArc {\n constructor(opts){\n this.x = opts.x;\n this.y = opts.y;\n this.radius = opts.radius;\n }\n pathSegment(ctx, bounds, opts) {\n const { x , y , radius } = this;\n bounds = bounds || {\n start: 0,\n end: TAU\n };\n ctx.arc(x, y, radius, bounds.end, bounds.start, true);\n return !opts.bounds;\n }\n interpolate(point) {\n const { x , y , radius } = this;\n const angle = point.angle;\n return {\n x: x + Math.cos(angle) * radius,\n y: y + Math.sin(angle) * radius,\n angle\n };\n }\n}\n\nfunction _getTarget(source) {\n const { chart , fill , line } = source;\n if (isNumberFinite(fill)) {\n return getLineByIndex(chart, fill);\n }\n if (fill === 'stack') {\n return _buildStackLine(source);\n }\n if (fill === 'shape') {\n return true;\n }\n const boundary = computeBoundary(source);\n if (boundary instanceof simpleArc) {\n return boundary;\n }\n return _createBoundaryLine(boundary, line);\n}\n function getLineByIndex(chart, index) {\n const meta = chart.getDatasetMeta(index);\n const visible = meta && chart.isDatasetVisible(index);\n return visible ? meta.dataset : null;\n}\nfunction computeBoundary(source) {\n const scale = source.scale || {};\n if (scale.getPointPositionForValue) {\n return computeCircularBoundary(source);\n }\n return computeLinearBoundary(source);\n}\nfunction computeLinearBoundary(source) {\n const { scale ={} , fill } = source;\n const pixel = _getTargetPixel(fill, scale);\n if (isNumberFinite(pixel)) {\n const horizontal = scale.isHorizontal();\n return {\n x: horizontal ? pixel : null,\n y: horizontal ? null : pixel\n };\n }\n return null;\n}\nfunction computeCircularBoundary(source) {\n const { scale , fill } = source;\n const options = scale.options;\n const length = scale.getLabels().length;\n const start = options.reverse ? scale.max : scale.min;\n const value = _getTargetValue(fill, scale, start);\n const target = [];\n if (options.grid.circular) {\n const center = scale.getPointPositionForValue(0, start);\n return new simpleArc({\n x: center.x,\n y: center.y,\n radius: scale.getDistanceFromCenterForValue(value)\n });\n }\n for(let i = 0; i < length; ++i){\n target.push(scale.getPointPositionForValue(i, value));\n }\n return target;\n}\n\nfunction _drawfill(ctx, source, area) {\n const target = _getTarget(source);\n const { chart , index , line , scale , axis } = source;\n const lineOpts = line.options;\n const fillOption = lineOpts.fill;\n const color = lineOpts.backgroundColor;\n const { above =color , below =color } = fillOption || {};\n const meta = chart.getDatasetMeta(index);\n const clip = getDatasetClipArea(chart, meta);\n if (target && line.points.length) {\n clipArea(ctx, area);\n doFill(ctx, {\n line,\n target,\n above,\n below,\n area,\n scale,\n axis,\n clip\n });\n unclipArea(ctx);\n }\n}\nfunction doFill(ctx, cfg) {\n const { line , target , above , below , area , scale , clip } = cfg;\n const property = line._loop ? 'angle' : cfg.axis;\n ctx.save();\n let fillColor = below;\n if (below !== above) {\n if (property === 'x') {\n clipVertical(ctx, target, area.top);\n fill(ctx, {\n line,\n target,\n color: above,\n scale,\n property,\n clip\n });\n ctx.restore();\n ctx.save();\n clipVertical(ctx, target, area.bottom);\n } else if (property === 'y') {\n clipHorizontal(ctx, target, area.left);\n fill(ctx, {\n line,\n target,\n color: below,\n scale,\n property,\n clip\n });\n ctx.restore();\n ctx.save();\n clipHorizontal(ctx, target, area.right);\n fillColor = above;\n }\n }\n fill(ctx, {\n line,\n target,\n color: fillColor,\n scale,\n property,\n clip\n });\n ctx.restore();\n}\nfunction clipVertical(ctx, target, clipY) {\n const { segments , points } = target;\n let first = true;\n let lineLoop = false;\n ctx.beginPath();\n for (const segment of segments){\n const { start , end } = segment;\n const firstPoint = points[start];\n const lastPoint = points[_findSegmentEnd(start, end, points)];\n if (first) {\n ctx.moveTo(firstPoint.x, firstPoint.y);\n first = false;\n } else {\n ctx.lineTo(firstPoint.x, clipY);\n ctx.lineTo(firstPoint.x, firstPoint.y);\n }\n lineLoop = !!target.pathSegment(ctx, segment, {\n move: lineLoop\n });\n if (lineLoop) {\n ctx.closePath();\n } else {\n ctx.lineTo(lastPoint.x, clipY);\n }\n }\n ctx.lineTo(target.first().x, clipY);\n ctx.closePath();\n ctx.clip();\n}\nfunction clipHorizontal(ctx, target, clipX) {\n const { segments , points } = target;\n let first = true;\n let lineLoop = false;\n ctx.beginPath();\n for (const segment of segments){\n const { start , end } = segment;\n const firstPoint = points[start];\n const lastPoint = points[_findSegmentEnd(start, end, points)];\n if (first) {\n ctx.moveTo(firstPoint.x, firstPoint.y);\n first = false;\n } else {\n ctx.lineTo(clipX, firstPoint.y);\n ctx.lineTo(firstPoint.x, firstPoint.y);\n }\n lineLoop = !!target.pathSegment(ctx, segment, {\n move: lineLoop\n });\n if (lineLoop) {\n ctx.closePath();\n } else {\n ctx.lineTo(clipX, lastPoint.y);\n }\n }\n ctx.lineTo(clipX, target.first().y);\n ctx.closePath();\n ctx.clip();\n}\nfunction fill(ctx, cfg) {\n const { line , target , property , color , scale , clip } = cfg;\n const segments = _segments(line, target, property);\n for (const { source: src , target: tgt , start , end } of segments){\n const { style: { backgroundColor =color } = {} } = src;\n const notShape = target !== true;\n ctx.save();\n ctx.fillStyle = backgroundColor;\n clipBounds(ctx, scale, clip, notShape && _getBounds(property, start, end));\n ctx.beginPath();\n const lineLoop = !!line.pathSegment(ctx, src);\n let loop;\n if (notShape) {\n if (lineLoop) {\n ctx.closePath();\n } else {\n interpolatedLineTo(ctx, target, end, property);\n }\n const targetLoop = !!target.pathSegment(ctx, tgt, {\n move: lineLoop,\n reverse: true\n });\n loop = lineLoop && targetLoop;\n if (!loop) {\n interpolatedLineTo(ctx, target, start, property);\n }\n }\n ctx.closePath();\n ctx.fill(loop ? 'evenodd' : 'nonzero');\n ctx.restore();\n }\n}\nfunction clipBounds(ctx, scale, clip, bounds) {\n const chartArea = scale.chart.chartArea;\n const { property , start , end } = bounds || {};\n if (property === 'x' || property === 'y') {\n let left, top, right, bottom;\n if (property === 'x') {\n left = start;\n top = chartArea.top;\n right = end;\n bottom = chartArea.bottom;\n } else {\n left = chartArea.left;\n top = start;\n right = chartArea.right;\n bottom = end;\n }\n ctx.beginPath();\n if (clip) {\n left = Math.max(left, clip.left);\n right = Math.min(right, clip.right);\n top = Math.max(top, clip.top);\n bottom = Math.min(bottom, clip.bottom);\n }\n ctx.rect(left, top, right - left, bottom - top);\n ctx.clip();\n }\n}\nfunction interpolatedLineTo(ctx, target, point, property) {\n const interpolatedPoint = target.interpolate(point, property);\n if (interpolatedPoint) {\n ctx.lineTo(interpolatedPoint.x, interpolatedPoint.y);\n }\n}\n\nvar index = {\n id: 'filler',\n afterDatasetsUpdate (chart, _args, options) {\n const count = (chart.data.datasets || []).length;\n const sources = [];\n let meta, i, line, source;\n for(i = 0; i < count; ++i){\n meta = chart.getDatasetMeta(i);\n line = meta.dataset;\n source = null;\n if (line && line.options && line instanceof LineElement) {\n source = {\n visible: chart.isDatasetVisible(i),\n index: i,\n fill: _decodeFill(line, i, count),\n chart,\n axis: meta.controller.options.indexAxis,\n scale: meta.vScale,\n line\n };\n }\n meta.$filler = source;\n sources.push(source);\n }\n for(i = 0; i < count; ++i){\n source = sources[i];\n if (!source || source.fill === false) {\n continue;\n }\n source.fill = _resolveTarget(sources, i, options.propagate);\n }\n },\n beforeDraw (chart, _args, options) {\n const draw = options.drawTime === 'beforeDraw';\n const metasets = chart.getSortedVisibleDatasetMetas();\n const area = chart.chartArea;\n for(let i = metasets.length - 1; i >= 0; --i){\n const source = metasets[i].$filler;\n if (!source) {\n continue;\n }\n source.line.updateControlPoints(area, source.axis);\n if (draw && source.fill) {\n _drawfill(chart.ctx, source, area);\n }\n }\n },\n beforeDatasetsDraw (chart, _args, options) {\n if (options.drawTime !== 'beforeDatasetsDraw') {\n return;\n }\n const metasets = chart.getSortedVisibleDatasetMetas();\n for(let i = metasets.length - 1; i >= 0; --i){\n const source = metasets[i].$filler;\n if (_shouldApplyFill(source)) {\n _drawfill(chart.ctx, source, chart.chartArea);\n }\n }\n },\n beforeDatasetDraw (chart, args, options) {\n const source = args.meta.$filler;\n if (!_shouldApplyFill(source) || options.drawTime !== 'beforeDatasetDraw') {\n return;\n }\n _drawfill(chart.ctx, source, chart.chartArea);\n },\n defaults: {\n propagate: true,\n drawTime: 'beforeDatasetDraw'\n }\n};\n\nconst getBoxSize = (labelOpts, fontSize)=>{\n let { boxHeight =fontSize , boxWidth =fontSize } = labelOpts;\n if (labelOpts.usePointStyle) {\n boxHeight = Math.min(boxHeight, fontSize);\n boxWidth = labelOpts.pointStyleWidth || Math.min(boxWidth, fontSize);\n }\n return {\n boxWidth,\n boxHeight,\n itemHeight: Math.max(fontSize, boxHeight)\n };\n};\nconst itemsEqual = (a, b)=>a !== null && b !== null && a.datasetIndex === b.datasetIndex && a.index === b.index;\nclass Legend extends Element {\n constructor(config){\n super();\n this._added = false;\n this.legendHitBoxes = [];\n this._hoveredItem = null;\n this.doughnutMode = false;\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this.legendItems = undefined;\n this.columnSizes = undefined;\n this.lineWidths = undefined;\n this.maxHeight = undefined;\n this.maxWidth = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.height = undefined;\n this.width = undefined;\n this._margins = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n update(maxWidth, maxHeight, margins) {\n this.maxWidth = maxWidth;\n this.maxHeight = maxHeight;\n this._margins = margins;\n this.setDimensions();\n this.buildLabels();\n this.fit();\n }\n setDimensions() {\n if (this.isHorizontal()) {\n this.width = this.maxWidth;\n this.left = this._margins.left;\n this.right = this.width;\n } else {\n this.height = this.maxHeight;\n this.top = this._margins.top;\n this.bottom = this.height;\n }\n }\n buildLabels() {\n const labelOpts = this.options.labels || {};\n let legendItems = callback(labelOpts.generateLabels, [\n this.chart\n ], this) || [];\n if (labelOpts.filter) {\n legendItems = legendItems.filter((item)=>labelOpts.filter(item, this.chart.data));\n }\n if (labelOpts.sort) {\n legendItems = legendItems.sort((a, b)=>labelOpts.sort(a, b, this.chart.data));\n }\n if (this.options.reverse) {\n legendItems.reverse();\n }\n this.legendItems = legendItems;\n }\n fit() {\n const { options , ctx } = this;\n if (!options.display) {\n this.width = this.height = 0;\n return;\n }\n const labelOpts = options.labels;\n const labelFont = toFont(labelOpts.font);\n const fontSize = labelFont.size;\n const titleHeight = this._computeTitleHeight();\n const { boxWidth , itemHeight } = getBoxSize(labelOpts, fontSize);\n let width, height;\n ctx.font = labelFont.string;\n if (this.isHorizontal()) {\n width = this.maxWidth;\n height = this._fitRows(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n } else {\n height = this.maxHeight;\n width = this._fitCols(titleHeight, labelFont, boxWidth, itemHeight) + 10;\n }\n this.width = Math.min(width, options.maxWidth || this.maxWidth);\n this.height = Math.min(height, options.maxHeight || this.maxHeight);\n }\n _fitRows(titleHeight, fontSize, boxWidth, itemHeight) {\n const { ctx , maxWidth , options: { labels: { padding } } } = this;\n const hitboxes = this.legendHitBoxes = [];\n const lineWidths = this.lineWidths = [\n 0\n ];\n const lineHeight = itemHeight + padding;\n let totalHeight = titleHeight;\n ctx.textAlign = 'left';\n ctx.textBaseline = 'middle';\n let row = -1;\n let top = -lineHeight;\n this.legendItems.forEach((legendItem, i)=>{\n const itemWidth = boxWidth + fontSize / 2 + ctx.measureText(legendItem.text).width;\n if (i === 0 || lineWidths[lineWidths.length - 1] + itemWidth + 2 * padding > maxWidth) {\n totalHeight += lineHeight;\n lineWidths[lineWidths.length - (i > 0 ? 0 : 1)] = 0;\n top += lineHeight;\n row++;\n }\n hitboxes[i] = {\n left: 0,\n top,\n row,\n width: itemWidth,\n height: itemHeight\n };\n lineWidths[lineWidths.length - 1] += itemWidth + padding;\n });\n return totalHeight;\n }\n _fitCols(titleHeight, labelFont, boxWidth, _itemHeight) {\n const { ctx , maxHeight , options: { labels: { padding } } } = this;\n const hitboxes = this.legendHitBoxes = [];\n const columnSizes = this.columnSizes = [];\n const heightLimit = maxHeight - titleHeight;\n let totalWidth = padding;\n let currentColWidth = 0;\n let currentColHeight = 0;\n let left = 0;\n let col = 0;\n this.legendItems.forEach((legendItem, i)=>{\n const { itemWidth , itemHeight } = calculateItemSize(boxWidth, labelFont, ctx, legendItem, _itemHeight);\n if (i > 0 && currentColHeight + itemHeight + 2 * padding > heightLimit) {\n totalWidth += currentColWidth + padding;\n columnSizes.push({\n width: currentColWidth,\n height: currentColHeight\n });\n left += currentColWidth + padding;\n col++;\n currentColWidth = currentColHeight = 0;\n }\n hitboxes[i] = {\n left,\n top: currentColHeight,\n col,\n width: itemWidth,\n height: itemHeight\n };\n currentColWidth = Math.max(currentColWidth, itemWidth);\n currentColHeight += itemHeight + padding;\n });\n totalWidth += currentColWidth;\n columnSizes.push({\n width: currentColWidth,\n height: currentColHeight\n });\n return totalWidth;\n }\n adjustHitBoxes() {\n if (!this.options.display) {\n return;\n }\n const titleHeight = this._computeTitleHeight();\n const { legendHitBoxes: hitboxes , options: { align , labels: { padding } , rtl } } = this;\n const rtlHelper = getRtlAdapter(rtl, this.left, this.width);\n if (this.isHorizontal()) {\n let row = 0;\n let left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n for (const hitbox of hitboxes){\n if (row !== hitbox.row) {\n row = hitbox.row;\n left = _alignStartEnd(align, this.left + padding, this.right - this.lineWidths[row]);\n }\n hitbox.top += this.top + titleHeight + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(left), hitbox.width);\n left += hitbox.width + padding;\n }\n } else {\n let col = 0;\n let top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n for (const hitbox of hitboxes){\n if (hitbox.col !== col) {\n col = hitbox.col;\n top = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - this.columnSizes[col].height);\n }\n hitbox.top = top;\n hitbox.left += this.left + padding;\n hitbox.left = rtlHelper.leftForLtr(rtlHelper.x(hitbox.left), hitbox.width);\n top += hitbox.height + padding;\n }\n }\n }\n isHorizontal() {\n return this.options.position === 'top' || this.options.position === 'bottom';\n }\n draw() {\n if (this.options.display) {\n const ctx = this.ctx;\n clipArea(ctx, this);\n this._draw();\n unclipArea(ctx);\n }\n }\n _draw() {\n const { options: opts , columnSizes , lineWidths , ctx } = this;\n const { align , labels: labelOpts } = opts;\n const defaultColor = defaults.color;\n const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n const labelFont = toFont(labelOpts.font);\n const { padding } = labelOpts;\n const fontSize = labelFont.size;\n const halfFontSize = fontSize / 2;\n let cursor;\n this.drawTitle();\n ctx.textAlign = rtlHelper.textAlign('left');\n ctx.textBaseline = 'middle';\n ctx.lineWidth = 0.5;\n ctx.font = labelFont.string;\n const { boxWidth , boxHeight , itemHeight } = getBoxSize(labelOpts, fontSize);\n const drawLegendBox = function(x, y, legendItem) {\n if (isNaN(boxWidth) || boxWidth <= 0 || isNaN(boxHeight) || boxHeight < 0) {\n return;\n }\n ctx.save();\n const lineWidth = valueOrDefault(legendItem.lineWidth, 1);\n ctx.fillStyle = valueOrDefault(legendItem.fillStyle, defaultColor);\n ctx.lineCap = valueOrDefault(legendItem.lineCap, 'butt');\n ctx.lineDashOffset = valueOrDefault(legendItem.lineDashOffset, 0);\n ctx.lineJoin = valueOrDefault(legendItem.lineJoin, 'miter');\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = valueOrDefault(legendItem.strokeStyle, defaultColor);\n ctx.setLineDash(valueOrDefault(legendItem.lineDash, []));\n if (labelOpts.usePointStyle) {\n const drawOptions = {\n radius: boxHeight * Math.SQRT2 / 2,\n pointStyle: legendItem.pointStyle,\n rotation: legendItem.rotation,\n borderWidth: lineWidth\n };\n const centerX = rtlHelper.xPlus(x, boxWidth / 2);\n const centerY = y + halfFontSize;\n drawPointLegend(ctx, drawOptions, centerX, centerY, labelOpts.pointStyleWidth && boxWidth);\n } else {\n const yBoxTop = y + Math.max((fontSize - boxHeight) / 2, 0);\n const xBoxLeft = rtlHelper.leftForLtr(x, boxWidth);\n const borderRadius = toTRBLCorners(legendItem.borderRadius);\n ctx.beginPath();\n if (Object.values(borderRadius).some((v)=>v !== 0)) {\n addRoundedRectPath(ctx, {\n x: xBoxLeft,\n y: yBoxTop,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius\n });\n } else {\n ctx.rect(xBoxLeft, yBoxTop, boxWidth, boxHeight);\n }\n ctx.fill();\n if (lineWidth !== 0) {\n ctx.stroke();\n }\n }\n ctx.restore();\n };\n const fillText = function(x, y, legendItem) {\n renderText(ctx, legendItem.text, x, y + itemHeight / 2, labelFont, {\n strikethrough: legendItem.hidden,\n textAlign: rtlHelper.textAlign(legendItem.textAlign)\n });\n };\n const isHorizontal = this.isHorizontal();\n const titleHeight = this._computeTitleHeight();\n if (isHorizontal) {\n cursor = {\n x: _alignStartEnd(align, this.left + padding, this.right - lineWidths[0]),\n y: this.top + padding + titleHeight,\n line: 0\n };\n } else {\n cursor = {\n x: this.left + padding,\n y: _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[0].height),\n line: 0\n };\n }\n overrideTextDirection(this.ctx, opts.textDirection);\n const lineHeight = itemHeight + padding;\n this.legendItems.forEach((legendItem, i)=>{\n ctx.strokeStyle = legendItem.fontColor;\n ctx.fillStyle = legendItem.fontColor;\n const textWidth = ctx.measureText(legendItem.text).width;\n const textAlign = rtlHelper.textAlign(legendItem.textAlign || (legendItem.textAlign = labelOpts.textAlign));\n const width = boxWidth + halfFontSize + textWidth;\n let x = cursor.x;\n let y = cursor.y;\n rtlHelper.setWidth(this.width);\n if (isHorizontal) {\n if (i > 0 && x + width + padding > this.right) {\n y = cursor.y += lineHeight;\n cursor.line++;\n x = cursor.x = _alignStartEnd(align, this.left + padding, this.right - lineWidths[cursor.line]);\n }\n } else if (i > 0 && y + lineHeight > this.bottom) {\n x = cursor.x = x + columnSizes[cursor.line].width + padding;\n cursor.line++;\n y = cursor.y = _alignStartEnd(align, this.top + titleHeight + padding, this.bottom - columnSizes[cursor.line].height);\n }\n const realX = rtlHelper.x(x);\n drawLegendBox(realX, y, legendItem);\n x = _textX(textAlign, x + boxWidth + halfFontSize, isHorizontal ? x + width : this.right, opts.rtl);\n fillText(rtlHelper.x(x), y, legendItem);\n if (isHorizontal) {\n cursor.x += width + padding;\n } else if (typeof legendItem.text !== 'string') {\n const fontLineHeight = labelFont.lineHeight;\n cursor.y += calculateLegendItemHeight(legendItem, fontLineHeight) + padding;\n } else {\n cursor.y += lineHeight;\n }\n });\n restoreTextDirection(this.ctx, opts.textDirection);\n }\n drawTitle() {\n const opts = this.options;\n const titleOpts = opts.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n if (!titleOpts.display) {\n return;\n }\n const rtlHelper = getRtlAdapter(opts.rtl, this.left, this.width);\n const ctx = this.ctx;\n const position = titleOpts.position;\n const halfFontSize = titleFont.size / 2;\n const topPaddingPlusHalfFontSize = titlePadding.top + halfFontSize;\n let y;\n let left = this.left;\n let maxWidth = this.width;\n if (this.isHorizontal()) {\n maxWidth = Math.max(...this.lineWidths);\n y = this.top + topPaddingPlusHalfFontSize;\n left = _alignStartEnd(opts.align, left, this.right - maxWidth);\n } else {\n const maxHeight = this.columnSizes.reduce((acc, size)=>Math.max(acc, size.height), 0);\n y = topPaddingPlusHalfFontSize + _alignStartEnd(opts.align, this.top, this.bottom - maxHeight - opts.labels.padding - this._computeTitleHeight());\n }\n const x = _alignStartEnd(position, left, left + maxWidth);\n ctx.textAlign = rtlHelper.textAlign(_toLeftRightCenter(position));\n ctx.textBaseline = 'middle';\n ctx.strokeStyle = titleOpts.color;\n ctx.fillStyle = titleOpts.color;\n ctx.font = titleFont.string;\n renderText(ctx, titleOpts.text, x, y, titleFont);\n }\n _computeTitleHeight() {\n const titleOpts = this.options.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n return titleOpts.display ? titleFont.lineHeight + titlePadding.height : 0;\n }\n _getLegendItemAt(x, y) {\n let i, hitBox, lh;\n if (_isBetween(x, this.left, this.right) && _isBetween(y, this.top, this.bottom)) {\n lh = this.legendHitBoxes;\n for(i = 0; i < lh.length; ++i){\n hitBox = lh[i];\n if (_isBetween(x, hitBox.left, hitBox.left + hitBox.width) && _isBetween(y, hitBox.top, hitBox.top + hitBox.height)) {\n return this.legendItems[i];\n }\n }\n }\n return null;\n }\n handleEvent(e) {\n const opts = this.options;\n if (!isListened(e.type, opts)) {\n return;\n }\n const hoveredItem = this._getLegendItemAt(e.x, e.y);\n if (e.type === 'mousemove' || e.type === 'mouseout') {\n const previous = this._hoveredItem;\n const sameItem = itemsEqual(previous, hoveredItem);\n if (previous && !sameItem) {\n callback(opts.onLeave, [\n e,\n previous,\n this\n ], this);\n }\n this._hoveredItem = hoveredItem;\n if (hoveredItem && !sameItem) {\n callback(opts.onHover, [\n e,\n hoveredItem,\n this\n ], this);\n }\n } else if (hoveredItem) {\n callback(opts.onClick, [\n e,\n hoveredItem,\n this\n ], this);\n }\n }\n}\nfunction calculateItemSize(boxWidth, labelFont, ctx, legendItem, _itemHeight) {\n const itemWidth = calculateItemWidth(legendItem, boxWidth, labelFont, ctx);\n const itemHeight = calculateItemHeight(_itemHeight, legendItem, labelFont.lineHeight);\n return {\n itemWidth,\n itemHeight\n };\n}\nfunction calculateItemWidth(legendItem, boxWidth, labelFont, ctx) {\n let legendItemText = legendItem.text;\n if (legendItemText && typeof legendItemText !== 'string') {\n legendItemText = legendItemText.reduce((a, b)=>a.length > b.length ? a : b);\n }\n return boxWidth + labelFont.size / 2 + ctx.measureText(legendItemText).width;\n}\nfunction calculateItemHeight(_itemHeight, legendItem, fontLineHeight) {\n let itemHeight = _itemHeight;\n if (typeof legendItem.text !== 'string') {\n itemHeight = calculateLegendItemHeight(legendItem, fontLineHeight);\n }\n return itemHeight;\n}\nfunction calculateLegendItemHeight(legendItem, fontLineHeight) {\n const labelHeight = legendItem.text ? legendItem.text.length : 0;\n return fontLineHeight * labelHeight;\n}\nfunction isListened(type, opts) {\n if ((type === 'mousemove' || type === 'mouseout') && (opts.onHover || opts.onLeave)) {\n return true;\n }\n if (opts.onClick && (type === 'click' || type === 'mouseup')) {\n return true;\n }\n return false;\n}\nvar plugin_legend = {\n id: 'legend',\n _element: Legend,\n start (chart, _args, options) {\n const legend = chart.legend = new Legend({\n ctx: chart.ctx,\n options,\n chart\n });\n layouts.configure(chart, legend, options);\n layouts.addBox(chart, legend);\n },\n stop (chart) {\n layouts.removeBox(chart, chart.legend);\n delete chart.legend;\n },\n beforeUpdate (chart, _args, options) {\n const legend = chart.legend;\n layouts.configure(chart, legend, options);\n legend.options = options;\n },\n afterUpdate (chart) {\n const legend = chart.legend;\n legend.buildLabels();\n legend.adjustHitBoxes();\n },\n afterEvent (chart, args) {\n if (!args.replay) {\n chart.legend.handleEvent(args.event);\n }\n },\n defaults: {\n display: true,\n position: 'top',\n align: 'center',\n fullSize: true,\n reverse: false,\n weight: 1000,\n onClick (e, legendItem, legend) {\n const index = legendItem.datasetIndex;\n const ci = legend.chart;\n if (ci.isDatasetVisible(index)) {\n ci.hide(index);\n legendItem.hidden = true;\n } else {\n ci.show(index);\n legendItem.hidden = false;\n }\n },\n onHover: null,\n onLeave: null,\n labels: {\n color: (ctx)=>ctx.chart.options.color,\n boxWidth: 40,\n padding: 10,\n generateLabels (chart) {\n const datasets = chart.data.datasets;\n const { labels: { usePointStyle , pointStyle , textAlign , color , useBorderRadius , borderRadius } } = chart.legend.options;\n return chart._getSortedDatasetMetas().map((meta)=>{\n const style = meta.controller.getStyle(usePointStyle ? 0 : undefined);\n const borderWidth = toPadding(style.borderWidth);\n return {\n text: datasets[meta.index].label,\n fillStyle: style.backgroundColor,\n fontColor: color,\n hidden: !meta.visible,\n lineCap: style.borderCapStyle,\n lineDash: style.borderDash,\n lineDashOffset: style.borderDashOffset,\n lineJoin: style.borderJoinStyle,\n lineWidth: (borderWidth.width + borderWidth.height) / 4,\n strokeStyle: style.borderColor,\n pointStyle: pointStyle || style.pointStyle,\n rotation: style.rotation,\n textAlign: textAlign || style.textAlign,\n borderRadius: useBorderRadius && (borderRadius || style.borderRadius),\n datasetIndex: meta.index\n };\n }, this);\n }\n },\n title: {\n color: (ctx)=>ctx.chart.options.color,\n display: false,\n position: 'center',\n text: ''\n }\n },\n descriptors: {\n _scriptable: (name)=>!name.startsWith('on'),\n labels: {\n _scriptable: (name)=>![\n 'generateLabels',\n 'filter',\n 'sort'\n ].includes(name)\n }\n }\n};\n\nclass Title extends Element {\n constructor(config){\n super();\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this._padding = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.width = undefined;\n this.height = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n update(maxWidth, maxHeight) {\n const opts = this.options;\n this.left = 0;\n this.top = 0;\n if (!opts.display) {\n this.width = this.height = this.right = this.bottom = 0;\n return;\n }\n this.width = this.right = maxWidth;\n this.height = this.bottom = maxHeight;\n const lineCount = isArray(opts.text) ? opts.text.length : 1;\n this._padding = toPadding(opts.padding);\n const textSize = lineCount * toFont(opts.font).lineHeight + this._padding.height;\n if (this.isHorizontal()) {\n this.height = textSize;\n } else {\n this.width = textSize;\n }\n }\n isHorizontal() {\n const pos = this.options.position;\n return pos === 'top' || pos === 'bottom';\n }\n _drawArgs(offset) {\n const { top , left , bottom , right , options } = this;\n const align = options.align;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n if (this.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n titleY = top + offset;\n maxWidth = right - left;\n } else {\n if (options.position === 'left') {\n titleX = left + offset;\n titleY = _alignStartEnd(align, bottom, top);\n rotation = PI * -0.5;\n } else {\n titleX = right - offset;\n titleY = _alignStartEnd(align, top, bottom);\n rotation = PI * 0.5;\n }\n maxWidth = bottom - top;\n }\n return {\n titleX,\n titleY,\n maxWidth,\n rotation\n };\n }\n draw() {\n const ctx = this.ctx;\n const opts = this.options;\n if (!opts.display) {\n return;\n }\n const fontOpts = toFont(opts.font);\n const lineHeight = fontOpts.lineHeight;\n const offset = lineHeight / 2 + this._padding.top;\n const { titleX , titleY , maxWidth , rotation } = this._drawArgs(offset);\n renderText(ctx, opts.text, 0, 0, fontOpts, {\n color: opts.color,\n maxWidth,\n rotation,\n textAlign: _toLeftRightCenter(opts.align),\n textBaseline: 'middle',\n translation: [\n titleX,\n titleY\n ]\n });\n }\n}\nfunction createTitle(chart, titleOpts) {\n const title = new Title({\n ctx: chart.ctx,\n options: titleOpts,\n chart\n });\n layouts.configure(chart, title, titleOpts);\n layouts.addBox(chart, title);\n chart.titleBlock = title;\n}\nvar plugin_title = {\n id: 'title',\n _element: Title,\n start (chart, _args, options) {\n createTitle(chart, options);\n },\n stop (chart) {\n const titleBlock = chart.titleBlock;\n layouts.removeBox(chart, titleBlock);\n delete chart.titleBlock;\n },\n beforeUpdate (chart, _args, options) {\n const title = chart.titleBlock;\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'bold'\n },\n fullSize: true,\n padding: 10,\n position: 'top',\n text: '',\n weight: 2000\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false\n }\n};\n\nconst map = new WeakMap();\nvar plugin_subtitle = {\n id: 'subtitle',\n start (chart, _args, options) {\n const title = new Title({\n ctx: chart.ctx,\n options,\n chart\n });\n layouts.configure(chart, title, options);\n layouts.addBox(chart, title);\n map.set(chart, title);\n },\n stop (chart) {\n layouts.removeBox(chart, map.get(chart));\n map.delete(chart);\n },\n beforeUpdate (chart, _args, options) {\n const title = map.get(chart);\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'normal'\n },\n fullSize: true,\n padding: 0,\n position: 'top',\n text: '',\n weight: 1500\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false\n }\n};\n\nconst positioners = {\n average (items) {\n if (!items.length) {\n return false;\n }\n let i, len;\n let xSet = new Set();\n let y = 0;\n let count = 0;\n for(i = 0, len = items.length; i < len; ++i){\n const el = items[i].element;\n if (el && el.hasValue()) {\n const pos = el.tooltipPosition();\n xSet.add(pos.x);\n y += pos.y;\n ++count;\n }\n }\n if (count === 0 || xSet.size === 0) {\n return false;\n }\n const xAverage = [\n ...xSet\n ].reduce((a, b)=>a + b) / xSet.size;\n return {\n x: xAverage,\n y: y / count\n };\n },\n nearest (items, eventPosition) {\n if (!items.length) {\n return false;\n }\n let x = eventPosition.x;\n let y = eventPosition.y;\n let minDistance = Number.POSITIVE_INFINITY;\n let i, len, nearestElement;\n for(i = 0, len = items.length; i < len; ++i){\n const el = items[i].element;\n if (el && el.hasValue()) {\n const center = el.getCenterPoint();\n const d = distanceBetweenPoints(eventPosition, center);\n if (d < minDistance) {\n minDistance = d;\n nearestElement = el;\n }\n }\n }\n if (nearestElement) {\n const tp = nearestElement.tooltipPosition();\n x = tp.x;\n y = tp.y;\n }\n return {\n x,\n y\n };\n }\n};\nfunction pushOrConcat(base, toPush) {\n if (toPush) {\n if (isArray(toPush)) {\n Array.prototype.push.apply(base, toPush);\n } else {\n base.push(toPush);\n }\n }\n return base;\n}\n function splitNewlines(str) {\n if ((typeof str === 'string' || str instanceof String) && str.indexOf('\\n') > -1) {\n return str.split('\\n');\n }\n return str;\n}\n function createTooltipItem(chart, item) {\n const { element , datasetIndex , index } = item;\n const controller = chart.getDatasetMeta(datasetIndex).controller;\n const { label , value } = controller.getLabelAndValue(index);\n return {\n chart,\n label,\n parsed: controller.getParsed(index),\n raw: chart.data.datasets[datasetIndex].data[index],\n formattedValue: value,\n dataset: controller.getDataset(),\n dataIndex: index,\n datasetIndex,\n element\n };\n}\n function getTooltipSize(tooltip, options) {\n const ctx = tooltip.chart.ctx;\n const { body , footer , title } = tooltip;\n const { boxWidth , boxHeight } = options;\n const bodyFont = toFont(options.bodyFont);\n const titleFont = toFont(options.titleFont);\n const footerFont = toFont(options.footerFont);\n const titleLineCount = title.length;\n const footerLineCount = footer.length;\n const bodyLineItemCount = body.length;\n const padding = toPadding(options.padding);\n let height = padding.height;\n let width = 0;\n let combinedBodyLength = body.reduce((count, bodyItem)=>count + bodyItem.before.length + bodyItem.lines.length + bodyItem.after.length, 0);\n combinedBodyLength += tooltip.beforeBody.length + tooltip.afterBody.length;\n if (titleLineCount) {\n height += titleLineCount * titleFont.lineHeight + (titleLineCount - 1) * options.titleSpacing + options.titleMarginBottom;\n }\n if (combinedBodyLength) {\n const bodyLineHeight = options.displayColors ? Math.max(boxHeight, bodyFont.lineHeight) : bodyFont.lineHeight;\n height += bodyLineItemCount * bodyLineHeight + (combinedBodyLength - bodyLineItemCount) * bodyFont.lineHeight + (combinedBodyLength - 1) * options.bodySpacing;\n }\n if (footerLineCount) {\n height += options.footerMarginTop + footerLineCount * footerFont.lineHeight + (footerLineCount - 1) * options.footerSpacing;\n }\n let widthPadding = 0;\n const maxLineWidth = function(line) {\n width = Math.max(width, ctx.measureText(line).width + widthPadding);\n };\n ctx.save();\n ctx.font = titleFont.string;\n each(tooltip.title, maxLineWidth);\n ctx.font = bodyFont.string;\n each(tooltip.beforeBody.concat(tooltip.afterBody), maxLineWidth);\n widthPadding = options.displayColors ? boxWidth + 2 + options.boxPadding : 0;\n each(body, (bodyItem)=>{\n each(bodyItem.before, maxLineWidth);\n each(bodyItem.lines, maxLineWidth);\n each(bodyItem.after, maxLineWidth);\n });\n widthPadding = 0;\n ctx.font = footerFont.string;\n each(tooltip.footer, maxLineWidth);\n ctx.restore();\n width += padding.width;\n return {\n width,\n height\n };\n}\nfunction determineYAlign(chart, size) {\n const { y , height } = size;\n if (y < height / 2) {\n return 'top';\n } else if (y > chart.height - height / 2) {\n return 'bottom';\n }\n return 'center';\n}\nfunction doesNotFitWithAlign(xAlign, chart, options, size) {\n const { x , width } = size;\n const caret = options.caretSize + options.caretPadding;\n if (xAlign === 'left' && x + width + caret > chart.width) {\n return true;\n }\n if (xAlign === 'right' && x - width - caret < 0) {\n return true;\n }\n}\nfunction determineXAlign(chart, options, size, yAlign) {\n const { x , width } = size;\n const { width: chartWidth , chartArea: { left , right } } = chart;\n let xAlign = 'center';\n if (yAlign === 'center') {\n xAlign = x <= (left + right) / 2 ? 'left' : 'right';\n } else if (x <= width / 2) {\n xAlign = 'left';\n } else if (x >= chartWidth - width / 2) {\n xAlign = 'right';\n }\n if (doesNotFitWithAlign(xAlign, chart, options, size)) {\n xAlign = 'center';\n }\n return xAlign;\n}\n function determineAlignment(chart, options, size) {\n const yAlign = size.yAlign || options.yAlign || determineYAlign(chart, size);\n return {\n xAlign: size.xAlign || options.xAlign || determineXAlign(chart, options, size, yAlign),\n yAlign\n };\n}\nfunction alignX(size, xAlign) {\n let { x , width } = size;\n if (xAlign === 'right') {\n x -= width;\n } else if (xAlign === 'center') {\n x -= width / 2;\n }\n return x;\n}\nfunction alignY(size, yAlign, paddingAndSize) {\n let { y , height } = size;\n if (yAlign === 'top') {\n y += paddingAndSize;\n } else if (yAlign === 'bottom') {\n y -= height + paddingAndSize;\n } else {\n y -= height / 2;\n }\n return y;\n}\n function getBackgroundPoint(options, size, alignment, chart) {\n const { caretSize , caretPadding , cornerRadius } = options;\n const { xAlign , yAlign } = alignment;\n const paddingAndSize = caretSize + caretPadding;\n const { topLeft , topRight , bottomLeft , bottomRight } = toTRBLCorners(cornerRadius);\n let x = alignX(size, xAlign);\n const y = alignY(size, yAlign, paddingAndSize);\n if (yAlign === 'center') {\n if (xAlign === 'left') {\n x += paddingAndSize;\n } else if (xAlign === 'right') {\n x -= paddingAndSize;\n }\n } else if (xAlign === 'left') {\n x -= Math.max(topLeft, bottomLeft) + caretSize;\n } else if (xAlign === 'right') {\n x += Math.max(topRight, bottomRight) + caretSize;\n }\n return {\n x: _limitValue(x, 0, chart.width - size.width),\n y: _limitValue(y, 0, chart.height - size.height)\n };\n}\nfunction getAlignedX(tooltip, align, options) {\n const padding = toPadding(options.padding);\n return align === 'center' ? tooltip.x + tooltip.width / 2 : align === 'right' ? tooltip.x + tooltip.width - padding.right : tooltip.x + padding.left;\n}\n function getBeforeAfterBodyLines(callback) {\n return pushOrConcat([], splitNewlines(callback));\n}\nfunction createTooltipContext(parent, tooltip, tooltipItems) {\n return createContext(parent, {\n tooltip,\n tooltipItems,\n type: 'tooltip'\n });\n}\nfunction overrideCallbacks(callbacks, context) {\n const override = context && context.dataset && context.dataset.tooltip && context.dataset.tooltip.callbacks;\n return override ? callbacks.override(override) : callbacks;\n}\nconst defaultCallbacks = {\n beforeTitle: noop,\n title (tooltipItems) {\n if (tooltipItems.length > 0) {\n const item = tooltipItems[0];\n const labels = item.chart.data.labels;\n const labelCount = labels ? labels.length : 0;\n if (this && this.options && this.options.mode === 'dataset') {\n return item.dataset.label || '';\n } else if (item.label) {\n return item.label;\n } else if (labelCount > 0 && item.dataIndex < labelCount) {\n return labels[item.dataIndex];\n }\n }\n return '';\n },\n afterTitle: noop,\n beforeBody: noop,\n beforeLabel: noop,\n label (tooltipItem) {\n if (this && this.options && this.options.mode === 'dataset') {\n return tooltipItem.label + ': ' + tooltipItem.formattedValue || tooltipItem.formattedValue;\n }\n let label = tooltipItem.dataset.label || '';\n if (label) {\n label += ': ';\n }\n const value = tooltipItem.formattedValue;\n if (!isNullOrUndef(value)) {\n label += value;\n }\n return label;\n },\n labelColor (tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n borderColor: options.borderColor,\n backgroundColor: options.backgroundColor,\n borderWidth: options.borderWidth,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderRadius: 0\n };\n },\n labelTextColor () {\n return this.options.bodyColor;\n },\n labelPointStyle (tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n pointStyle: options.pointStyle,\n rotation: options.rotation\n };\n },\n afterLabel: noop,\n afterBody: noop,\n beforeFooter: noop,\n footer: noop,\n afterFooter: noop\n};\n function invokeCallbackWithFallback(callbacks, name, ctx, arg) {\n const result = callbacks[name].call(ctx, arg);\n if (typeof result === 'undefined') {\n return defaultCallbacks[name].call(ctx, arg);\n }\n return result;\n}\nclass Tooltip extends Element {\n static positioners = positioners;\n constructor(config){\n super();\n this.opacity = 0;\n this._active = [];\n this._eventPosition = undefined;\n this._size = undefined;\n this._cachedAnimations = undefined;\n this._tooltipItems = [];\n this.$animations = undefined;\n this.$context = undefined;\n this.chart = config.chart;\n this.options = config.options;\n this.dataPoints = undefined;\n this.title = undefined;\n this.beforeBody = undefined;\n this.body = undefined;\n this.afterBody = undefined;\n this.footer = undefined;\n this.xAlign = undefined;\n this.yAlign = undefined;\n this.x = undefined;\n this.y = undefined;\n this.height = undefined;\n this.width = undefined;\n this.caretX = undefined;\n this.caretY = undefined;\n this.labelColors = undefined;\n this.labelPointStyles = undefined;\n this.labelTextColors = undefined;\n }\n initialize(options) {\n this.options = options;\n this._cachedAnimations = undefined;\n this.$context = undefined;\n }\n _resolveAnimations() {\n const cached = this._cachedAnimations;\n if (cached) {\n return cached;\n }\n const chart = this.chart;\n const options = this.options.setContext(this.getContext());\n const opts = options.enabled && chart.options.animation && options.animations;\n const animations = new Animations(this.chart, opts);\n if (opts._cacheable) {\n this._cachedAnimations = Object.freeze(animations);\n }\n return animations;\n }\n getContext() {\n return this.$context || (this.$context = createTooltipContext(this.chart.getContext(), this, this._tooltipItems));\n }\n getTitle(context, options) {\n const { callbacks } = options;\n const beforeTitle = invokeCallbackWithFallback(callbacks, 'beforeTitle', this, context);\n const title = invokeCallbackWithFallback(callbacks, 'title', this, context);\n const afterTitle = invokeCallbackWithFallback(callbacks, 'afterTitle', this, context);\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeTitle));\n lines = pushOrConcat(lines, splitNewlines(title));\n lines = pushOrConcat(lines, splitNewlines(afterTitle));\n return lines;\n }\n getBeforeBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(invokeCallbackWithFallback(options.callbacks, 'beforeBody', this, tooltipItems));\n }\n getBody(tooltipItems, options) {\n const { callbacks } = options;\n const bodyItems = [];\n each(tooltipItems, (context)=>{\n const bodyItem = {\n before: [],\n lines: [],\n after: []\n };\n const scoped = overrideCallbacks(callbacks, context);\n pushOrConcat(bodyItem.before, splitNewlines(invokeCallbackWithFallback(scoped, 'beforeLabel', this, context)));\n pushOrConcat(bodyItem.lines, invokeCallbackWithFallback(scoped, 'label', this, context));\n pushOrConcat(bodyItem.after, splitNewlines(invokeCallbackWithFallback(scoped, 'afterLabel', this, context)));\n bodyItems.push(bodyItem);\n });\n return bodyItems;\n }\n getAfterBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(invokeCallbackWithFallback(options.callbacks, 'afterBody', this, tooltipItems));\n }\n getFooter(tooltipItems, options) {\n const { callbacks } = options;\n const beforeFooter = invokeCallbackWithFallback(callbacks, 'beforeFooter', this, tooltipItems);\n const footer = invokeCallbackWithFallback(callbacks, 'footer', this, tooltipItems);\n const afterFooter = invokeCallbackWithFallback(callbacks, 'afterFooter', this, tooltipItems);\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeFooter));\n lines = pushOrConcat(lines, splitNewlines(footer));\n lines = pushOrConcat(lines, splitNewlines(afterFooter));\n return lines;\n }\n _createItems(options) {\n const active = this._active;\n const data = this.chart.data;\n const labelColors = [];\n const labelPointStyles = [];\n const labelTextColors = [];\n let tooltipItems = [];\n let i, len;\n for(i = 0, len = active.length; i < len; ++i){\n tooltipItems.push(createTooltipItem(this.chart, active[i]));\n }\n if (options.filter) {\n tooltipItems = tooltipItems.filter((element, index, array)=>options.filter(element, index, array, data));\n }\n if (options.itemSort) {\n tooltipItems = tooltipItems.sort((a, b)=>options.itemSort(a, b, data));\n }\n each(tooltipItems, (context)=>{\n const scoped = overrideCallbacks(options.callbacks, context);\n labelColors.push(invokeCallbackWithFallback(scoped, 'labelColor', this, context));\n labelPointStyles.push(invokeCallbackWithFallback(scoped, 'labelPointStyle', this, context));\n labelTextColors.push(invokeCallbackWithFallback(scoped, 'labelTextColor', this, context));\n });\n this.labelColors = labelColors;\n this.labelPointStyles = labelPointStyles;\n this.labelTextColors = labelTextColors;\n this.dataPoints = tooltipItems;\n return tooltipItems;\n }\n update(changed, replay) {\n const options = this.options.setContext(this.getContext());\n const active = this._active;\n let properties;\n let tooltipItems = [];\n if (!active.length) {\n if (this.opacity !== 0) {\n properties = {\n opacity: 0\n };\n }\n } else {\n const position = positioners[options.position].call(this, active, this._eventPosition);\n tooltipItems = this._createItems(options);\n this.title = this.getTitle(tooltipItems, options);\n this.beforeBody = this.getBeforeBody(tooltipItems, options);\n this.body = this.getBody(tooltipItems, options);\n this.afterBody = this.getAfterBody(tooltipItems, options);\n this.footer = this.getFooter(tooltipItems, options);\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, size);\n const alignment = determineAlignment(this.chart, options, positionAndSize);\n const backgroundPoint = getBackgroundPoint(options, positionAndSize, alignment, this.chart);\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n properties = {\n opacity: 1,\n x: backgroundPoint.x,\n y: backgroundPoint.y,\n width: size.width,\n height: size.height,\n caretX: position.x,\n caretY: position.y\n };\n }\n this._tooltipItems = tooltipItems;\n this.$context = undefined;\n if (properties) {\n this._resolveAnimations().update(this, properties);\n }\n if (changed && options.external) {\n options.external.call(this, {\n chart: this.chart,\n tooltip: this,\n replay\n });\n }\n }\n drawCaret(tooltipPoint, ctx, size, options) {\n const caretPosition = this.getCaretPosition(tooltipPoint, size, options);\n ctx.lineTo(caretPosition.x1, caretPosition.y1);\n ctx.lineTo(caretPosition.x2, caretPosition.y2);\n ctx.lineTo(caretPosition.x3, caretPosition.y3);\n }\n getCaretPosition(tooltipPoint, size, options) {\n const { xAlign , yAlign } = this;\n const { caretSize , cornerRadius } = options;\n const { topLeft , topRight , bottomLeft , bottomRight } = toTRBLCorners(cornerRadius);\n const { x: ptX , y: ptY } = tooltipPoint;\n const { width , height } = size;\n let x1, x2, x3, y1, y2, y3;\n if (yAlign === 'center') {\n y2 = ptY + height / 2;\n if (xAlign === 'left') {\n x1 = ptX;\n x2 = x1 - caretSize;\n y1 = y2 + caretSize;\n y3 = y2 - caretSize;\n } else {\n x1 = ptX + width;\n x2 = x1 + caretSize;\n y1 = y2 - caretSize;\n y3 = y2 + caretSize;\n }\n x3 = x1;\n } else {\n if (xAlign === 'left') {\n x2 = ptX + Math.max(topLeft, bottomLeft) + caretSize;\n } else if (xAlign === 'right') {\n x2 = ptX + width - Math.max(topRight, bottomRight) - caretSize;\n } else {\n x2 = this.caretX;\n }\n if (yAlign === 'top') {\n y1 = ptY;\n y2 = y1 - caretSize;\n x1 = x2 - caretSize;\n x3 = x2 + caretSize;\n } else {\n y1 = ptY + height;\n y2 = y1 + caretSize;\n x1 = x2 + caretSize;\n x3 = x2 - caretSize;\n }\n y3 = y1;\n }\n return {\n x1,\n x2,\n x3,\n y1,\n y2,\n y3\n };\n }\n drawTitle(pt, ctx, options) {\n const title = this.title;\n const length = title.length;\n let titleFont, titleSpacing, i;\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n pt.x = getAlignedX(this, options.titleAlign, options);\n ctx.textAlign = rtlHelper.textAlign(options.titleAlign);\n ctx.textBaseline = 'middle';\n titleFont = toFont(options.titleFont);\n titleSpacing = options.titleSpacing;\n ctx.fillStyle = options.titleColor;\n ctx.font = titleFont.string;\n for(i = 0; i < length; ++i){\n ctx.fillText(title[i], rtlHelper.x(pt.x), pt.y + titleFont.lineHeight / 2);\n pt.y += titleFont.lineHeight + titleSpacing;\n if (i + 1 === length) {\n pt.y += options.titleMarginBottom - titleSpacing;\n }\n }\n }\n }\n _drawColorBox(ctx, pt, i, rtlHelper, options) {\n const labelColor = this.labelColors[i];\n const labelPointStyle = this.labelPointStyles[i];\n const { boxHeight , boxWidth } = options;\n const bodyFont = toFont(options.bodyFont);\n const colorX = getAlignedX(this, 'left', options);\n const rtlColorX = rtlHelper.x(colorX);\n const yOffSet = boxHeight < bodyFont.lineHeight ? (bodyFont.lineHeight - boxHeight) / 2 : 0;\n const colorY = pt.y + yOffSet;\n if (options.usePointStyle) {\n const drawOptions = {\n radius: Math.min(boxWidth, boxHeight) / 2,\n pointStyle: labelPointStyle.pointStyle,\n rotation: labelPointStyle.rotation,\n borderWidth: 1\n };\n const centerX = rtlHelper.leftForLtr(rtlColorX, boxWidth) + boxWidth / 2;\n const centerY = colorY + boxHeight / 2;\n ctx.strokeStyle = options.multiKeyBackground;\n ctx.fillStyle = options.multiKeyBackground;\n drawPoint(ctx, drawOptions, centerX, centerY);\n ctx.strokeStyle = labelColor.borderColor;\n ctx.fillStyle = labelColor.backgroundColor;\n drawPoint(ctx, drawOptions, centerX, centerY);\n } else {\n ctx.lineWidth = isObject(labelColor.borderWidth) ? Math.max(...Object.values(labelColor.borderWidth)) : labelColor.borderWidth || 1;\n ctx.strokeStyle = labelColor.borderColor;\n ctx.setLineDash(labelColor.borderDash || []);\n ctx.lineDashOffset = labelColor.borderDashOffset || 0;\n const outerX = rtlHelper.leftForLtr(rtlColorX, boxWidth);\n const innerX = rtlHelper.leftForLtr(rtlHelper.xPlus(rtlColorX, 1), boxWidth - 2);\n const borderRadius = toTRBLCorners(labelColor.borderRadius);\n if (Object.values(borderRadius).some((v)=>v !== 0)) {\n ctx.beginPath();\n ctx.fillStyle = options.multiKeyBackground;\n addRoundedRectPath(ctx, {\n x: outerX,\n y: colorY,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius\n });\n ctx.fill();\n ctx.stroke();\n ctx.fillStyle = labelColor.backgroundColor;\n ctx.beginPath();\n addRoundedRectPath(ctx, {\n x: innerX,\n y: colorY + 1,\n w: boxWidth - 2,\n h: boxHeight - 2,\n radius: borderRadius\n });\n ctx.fill();\n } else {\n ctx.fillStyle = options.multiKeyBackground;\n ctx.fillRect(outerX, colorY, boxWidth, boxHeight);\n ctx.strokeRect(outerX, colorY, boxWidth, boxHeight);\n ctx.fillStyle = labelColor.backgroundColor;\n ctx.fillRect(innerX, colorY + 1, boxWidth - 2, boxHeight - 2);\n }\n }\n ctx.fillStyle = this.labelTextColors[i];\n }\n drawBody(pt, ctx, options) {\n const { body } = this;\n const { bodySpacing , bodyAlign , displayColors , boxHeight , boxWidth , boxPadding } = options;\n const bodyFont = toFont(options.bodyFont);\n let bodyLineHeight = bodyFont.lineHeight;\n let xLinePadding = 0;\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n const fillLineOfText = function(line) {\n ctx.fillText(line, rtlHelper.x(pt.x + xLinePadding), pt.y + bodyLineHeight / 2);\n pt.y += bodyLineHeight + bodySpacing;\n };\n const bodyAlignForCalculation = rtlHelper.textAlign(bodyAlign);\n let bodyItem, textColor, lines, i, j, ilen, jlen;\n ctx.textAlign = bodyAlign;\n ctx.textBaseline = 'middle';\n ctx.font = bodyFont.string;\n pt.x = getAlignedX(this, bodyAlignForCalculation, options);\n ctx.fillStyle = options.bodyColor;\n each(this.beforeBody, fillLineOfText);\n xLinePadding = displayColors && bodyAlignForCalculation !== 'right' ? bodyAlign === 'center' ? boxWidth / 2 + boxPadding : boxWidth + 2 + boxPadding : 0;\n for(i = 0, ilen = body.length; i < ilen; ++i){\n bodyItem = body[i];\n textColor = this.labelTextColors[i];\n ctx.fillStyle = textColor;\n each(bodyItem.before, fillLineOfText);\n lines = bodyItem.lines;\n if (displayColors && lines.length) {\n this._drawColorBox(ctx, pt, i, rtlHelper, options);\n bodyLineHeight = Math.max(bodyFont.lineHeight, boxHeight);\n }\n for(j = 0, jlen = lines.length; j < jlen; ++j){\n fillLineOfText(lines[j]);\n bodyLineHeight = bodyFont.lineHeight;\n }\n each(bodyItem.after, fillLineOfText);\n }\n xLinePadding = 0;\n bodyLineHeight = bodyFont.lineHeight;\n each(this.afterBody, fillLineOfText);\n pt.y -= bodySpacing;\n }\n drawFooter(pt, ctx, options) {\n const footer = this.footer;\n const length = footer.length;\n let footerFont, i;\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, this.x, this.width);\n pt.x = getAlignedX(this, options.footerAlign, options);\n pt.y += options.footerMarginTop;\n ctx.textAlign = rtlHelper.textAlign(options.footerAlign);\n ctx.textBaseline = 'middle';\n footerFont = toFont(options.footerFont);\n ctx.fillStyle = options.footerColor;\n ctx.font = footerFont.string;\n for(i = 0; i < length; ++i){\n ctx.fillText(footer[i], rtlHelper.x(pt.x), pt.y + footerFont.lineHeight / 2);\n pt.y += footerFont.lineHeight + options.footerSpacing;\n }\n }\n }\n drawBackground(pt, ctx, tooltipSize, options) {\n const { xAlign , yAlign } = this;\n const { x , y } = pt;\n const { width , height } = tooltipSize;\n const { topLeft , topRight , bottomLeft , bottomRight } = toTRBLCorners(options.cornerRadius);\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.beginPath();\n ctx.moveTo(x + topLeft, y);\n if (yAlign === 'top') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width - topRight, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + topRight);\n if (yAlign === 'center' && xAlign === 'right') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width, y + height - bottomRight);\n ctx.quadraticCurveTo(x + width, y + height, x + width - bottomRight, y + height);\n if (yAlign === 'bottom') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + bottomLeft, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - bottomLeft);\n if (yAlign === 'center' && xAlign === 'left') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x, y + topLeft);\n ctx.quadraticCurveTo(x, y, x + topLeft, y);\n ctx.closePath();\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n }\n _updateAnimationTarget(options) {\n const chart = this.chart;\n const anims = this.$animations;\n const animX = anims && anims.x;\n const animY = anims && anims.y;\n if (animX || animY) {\n const position = positioners[options.position].call(this, this._active, this._eventPosition);\n if (!position) {\n return;\n }\n const size = this._size = getTooltipSize(this, options);\n const positionAndSize = Object.assign({}, position, this._size);\n const alignment = determineAlignment(chart, options, positionAndSize);\n const point = getBackgroundPoint(options, positionAndSize, alignment, chart);\n if (animX._to !== point.x || animY._to !== point.y) {\n this.xAlign = alignment.xAlign;\n this.yAlign = alignment.yAlign;\n this.width = size.width;\n this.height = size.height;\n this.caretX = position.x;\n this.caretY = position.y;\n this._resolveAnimations().update(this, point);\n }\n }\n }\n _willRender() {\n return !!this.opacity;\n }\n draw(ctx) {\n const options = this.options.setContext(this.getContext());\n let opacity = this.opacity;\n if (!opacity) {\n return;\n }\n this._updateAnimationTarget(options);\n const tooltipSize = {\n width: this.width,\n height: this.height\n };\n const pt = {\n x: this.x,\n y: this.y\n };\n opacity = Math.abs(opacity) < 1e-3 ? 0 : opacity;\n const padding = toPadding(options.padding);\n const hasTooltipContent = this.title.length || this.beforeBody.length || this.body.length || this.afterBody.length || this.footer.length;\n if (options.enabled && hasTooltipContent) {\n ctx.save();\n ctx.globalAlpha = opacity;\n this.drawBackground(pt, ctx, tooltipSize, options);\n overrideTextDirection(ctx, options.textDirection);\n pt.y += padding.top;\n this.drawTitle(pt, ctx, options);\n this.drawBody(pt, ctx, options);\n this.drawFooter(pt, ctx, options);\n restoreTextDirection(ctx, options.textDirection);\n ctx.restore();\n }\n }\n getActiveElements() {\n return this._active || [];\n }\n setActiveElements(activeElements, eventPosition) {\n const lastActive = this._active;\n const active = activeElements.map(({ datasetIndex , index })=>{\n const meta = this.chart.getDatasetMeta(datasetIndex);\n if (!meta) {\n throw new Error('Cannot find a dataset at index ' + datasetIndex);\n }\n return {\n datasetIndex,\n element: meta.data[index],\n index\n };\n });\n const changed = !_elementsEqual(lastActive, active);\n const positionChanged = this._positionChanged(active, eventPosition);\n if (changed || positionChanged) {\n this._active = active;\n this._eventPosition = eventPosition;\n this._ignoreReplayEvents = true;\n this.update(true);\n }\n }\n handleEvent(e, replay, inChartArea = true) {\n if (replay && this._ignoreReplayEvents) {\n return false;\n }\n this._ignoreReplayEvents = false;\n const options = this.options;\n const lastActive = this._active || [];\n const active = this._getActiveElements(e, lastActive, replay, inChartArea);\n const positionChanged = this._positionChanged(active, e);\n const changed = replay || !_elementsEqual(active, lastActive) || positionChanged;\n if (changed) {\n this._active = active;\n if (options.enabled || options.external) {\n this._eventPosition = {\n x: e.x,\n y: e.y\n };\n this.update(true, replay);\n }\n }\n return changed;\n }\n _getActiveElements(e, lastActive, replay, inChartArea) {\n const options = this.options;\n if (e.type === 'mouseout') {\n return [];\n }\n if (!inChartArea) {\n return lastActive.filter((i)=>this.chart.data.datasets[i.datasetIndex] && this.chart.getDatasetMeta(i.datasetIndex).controller.getParsed(i.index) !== undefined);\n }\n const active = this.chart.getElementsAtEventForMode(e, options.mode, options, replay);\n if (options.reverse) {\n active.reverse();\n }\n return active;\n }\n _positionChanged(active, e) {\n const { caretX , caretY , options } = this;\n const position = positioners[options.position].call(this, active, e);\n return position !== false && (caretX !== position.x || caretY !== position.y);\n }\n}\nvar plugin_tooltip = {\n id: 'tooltip',\n _element: Tooltip,\n positioners,\n afterInit (chart, _args, options) {\n if (options) {\n chart.tooltip = new Tooltip({\n chart,\n options\n });\n }\n },\n beforeUpdate (chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n reset (chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n afterDraw (chart) {\n const tooltip = chart.tooltip;\n if (tooltip && tooltip._willRender()) {\n const args = {\n tooltip\n };\n if (chart.notifyPlugins('beforeTooltipDraw', {\n ...args,\n cancelable: true\n }) === false) {\n return;\n }\n tooltip.draw(chart.ctx);\n chart.notifyPlugins('afterTooltipDraw', args);\n }\n },\n afterEvent (chart, args) {\n if (chart.tooltip) {\n const useFinalPosition = args.replay;\n if (chart.tooltip.handleEvent(args.event, useFinalPosition, args.inChartArea)) {\n args.changed = true;\n }\n }\n },\n defaults: {\n enabled: true,\n external: null,\n position: 'average',\n backgroundColor: 'rgba(0,0,0,0.8)',\n titleColor: '#fff',\n titleFont: {\n weight: 'bold'\n },\n titleSpacing: 2,\n titleMarginBottom: 6,\n titleAlign: 'left',\n bodyColor: '#fff',\n bodySpacing: 2,\n bodyFont: {},\n bodyAlign: 'left',\n footerColor: '#fff',\n footerSpacing: 2,\n footerMarginTop: 6,\n footerFont: {\n weight: 'bold'\n },\n footerAlign: 'left',\n padding: 6,\n caretPadding: 2,\n caretSize: 5,\n cornerRadius: 6,\n boxHeight: (ctx, opts)=>opts.bodyFont.size,\n boxWidth: (ctx, opts)=>opts.bodyFont.size,\n multiKeyBackground: '#fff',\n displayColors: true,\n boxPadding: 0,\n borderColor: 'rgba(0,0,0,0)',\n borderWidth: 0,\n animation: {\n duration: 400,\n easing: 'easeOutQuart'\n },\n animations: {\n numbers: {\n type: 'number',\n properties: [\n 'x',\n 'y',\n 'width',\n 'height',\n 'caretX',\n 'caretY'\n ]\n },\n opacity: {\n easing: 'linear',\n duration: 200\n }\n },\n callbacks: defaultCallbacks\n },\n defaultRoutes: {\n bodyFont: 'font',\n footerFont: 'font',\n titleFont: 'font'\n },\n descriptors: {\n _scriptable: (name)=>name !== 'filter' && name !== 'itemSort' && name !== 'external',\n _indexable: false,\n callbacks: {\n _scriptable: false,\n _indexable: false\n },\n animation: {\n _fallback: false\n },\n animations: {\n _fallback: 'animation'\n }\n },\n additionalOptionScopes: [\n 'interaction'\n ]\n};\n\nvar plugins = /*#__PURE__*/Object.freeze({\n__proto__: null,\nColors: plugin_colors,\nDecimation: plugin_decimation,\nFiller: index,\nLegend: plugin_legend,\nSubTitle: plugin_subtitle,\nTitle: plugin_title,\nTooltip: plugin_tooltip\n});\n\nconst addIfString = (labels, raw, index, addedLabels)=>{\n if (typeof raw === 'string') {\n index = labels.push(raw) - 1;\n addedLabels.unshift({\n index,\n label: raw\n });\n } else if (isNaN(raw)) {\n index = null;\n }\n return index;\n};\nfunction findOrAddLabel(labels, raw, index, addedLabels) {\n const first = labels.indexOf(raw);\n if (first === -1) {\n return addIfString(labels, raw, index, addedLabels);\n }\n const last = labels.lastIndexOf(raw);\n return first !== last ? index : first;\n}\nconst validIndex = (index, max)=>index === null ? null : _limitValue(Math.round(index), 0, max);\nfunction _getLabelForValue(value) {\n const labels = this.getLabels();\n if (value >= 0 && value < labels.length) {\n return labels[value];\n }\n return value;\n}\nclass CategoryScale extends Scale {\n static id = 'category';\n static defaults = {\n ticks: {\n callback: _getLabelForValue\n }\n };\n constructor(cfg){\n super(cfg);\n this._startValue = undefined;\n this._valueRange = 0;\n this._addedLabels = [];\n }\n init(scaleOptions) {\n const added = this._addedLabels;\n if (added.length) {\n const labels = this.getLabels();\n for (const { index , label } of added){\n if (labels[index] === label) {\n labels.splice(index, 1);\n }\n }\n this._addedLabels = [];\n }\n super.init(scaleOptions);\n }\n parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n const labels = this.getLabels();\n index = isFinite(index) && labels[index] === raw ? index : findOrAddLabel(labels, raw, valueOrDefault(index, raw), this._addedLabels);\n return validIndex(index, labels.length - 1);\n }\n determineDataLimits() {\n const { minDefined , maxDefined } = this.getUserBounds();\n let { min , max } = this.getMinMax(true);\n if (this.options.bounds === 'ticks') {\n if (!minDefined) {\n min = 0;\n }\n if (!maxDefined) {\n max = this.getLabels().length - 1;\n }\n }\n this.min = min;\n this.max = max;\n }\n buildTicks() {\n const min = this.min;\n const max = this.max;\n const offset = this.options.offset;\n const ticks = [];\n let labels = this.getLabels();\n labels = min === 0 && max === labels.length - 1 ? labels : labels.slice(min, max + 1);\n this._valueRange = Math.max(labels.length - (offset ? 0 : 1), 1);\n this._startValue = this.min - (offset ? 0.5 : 0);\n for(let value = min; value <= max; value++){\n ticks.push({\n value\n });\n }\n return ticks;\n }\n getLabelForValue(value) {\n return _getLabelForValue.call(this, value);\n }\n configure() {\n super.configure();\n if (!this.isHorizontal()) {\n this._reversePixels = !this._reversePixels;\n }\n }\n getPixelForValue(value) {\n if (typeof value !== 'number') {\n value = this.parse(value);\n }\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n getValueForPixel(pixel) {\n return Math.round(this._startValue + this.getDecimalForPixel(pixel) * this._valueRange);\n }\n getBasePixel() {\n return this.bottom;\n }\n}\n\nfunction generateTicks$1(generationOptions, dataRange) {\n const ticks = [];\n const MIN_SPACING = 1e-14;\n const { bounds , step , min , max , precision , count , maxTicks , maxDigits , includeBounds } = generationOptions;\n const unit = step || 1;\n const maxSpaces = maxTicks - 1;\n const { min: rmin , max: rmax } = dataRange;\n const minDefined = !isNullOrUndef(min);\n const maxDefined = !isNullOrUndef(max);\n const countDefined = !isNullOrUndef(count);\n const minSpacing = (rmax - rmin) / (maxDigits + 1);\n let spacing = niceNum((rmax - rmin) / maxSpaces / unit) * unit;\n let factor, niceMin, niceMax, numSpaces;\n if (spacing < MIN_SPACING && !minDefined && !maxDefined) {\n return [\n {\n value: rmin\n },\n {\n value: rmax\n }\n ];\n }\n numSpaces = Math.ceil(rmax / spacing) - Math.floor(rmin / spacing);\n if (numSpaces > maxSpaces) {\n spacing = niceNum(numSpaces * spacing / maxSpaces / unit) * unit;\n }\n if (!isNullOrUndef(precision)) {\n factor = Math.pow(10, precision);\n spacing = Math.ceil(spacing * factor) / factor;\n }\n if (bounds === 'ticks') {\n niceMin = Math.floor(rmin / spacing) * spacing;\n niceMax = Math.ceil(rmax / spacing) * spacing;\n } else {\n niceMin = rmin;\n niceMax = rmax;\n }\n if (minDefined && maxDefined && step && almostWhole((max - min) / step, spacing / 1000)) {\n numSpaces = Math.round(Math.min((max - min) / spacing, maxTicks));\n spacing = (max - min) / numSpaces;\n niceMin = min;\n niceMax = max;\n } else if (countDefined) {\n niceMin = minDefined ? min : niceMin;\n niceMax = maxDefined ? max : niceMax;\n numSpaces = count - 1;\n spacing = (niceMax - niceMin) / numSpaces;\n } else {\n numSpaces = (niceMax - niceMin) / spacing;\n if (almostEquals(numSpaces, Math.round(numSpaces), spacing / 1000)) {\n numSpaces = Math.round(numSpaces);\n } else {\n numSpaces = Math.ceil(numSpaces);\n }\n }\n const decimalPlaces = Math.max(_decimalPlaces(spacing), _decimalPlaces(niceMin));\n factor = Math.pow(10, isNullOrUndef(precision) ? decimalPlaces : precision);\n niceMin = Math.round(niceMin * factor) / factor;\n niceMax = Math.round(niceMax * factor) / factor;\n let j = 0;\n if (minDefined) {\n if (includeBounds && niceMin !== min) {\n ticks.push({\n value: min\n });\n if (niceMin < min) {\n j++;\n }\n if (almostEquals(Math.round((niceMin + j * spacing) * factor) / factor, min, relativeLabelSize(min, minSpacing, generationOptions))) {\n j++;\n }\n } else if (niceMin < min) {\n j++;\n }\n }\n for(; j < numSpaces; ++j){\n const tickValue = Math.round((niceMin + j * spacing) * factor) / factor;\n if (maxDefined && tickValue > max) {\n break;\n }\n ticks.push({\n value: tickValue\n });\n }\n if (maxDefined && includeBounds && niceMax !== max) {\n if (ticks.length && almostEquals(ticks[ticks.length - 1].value, max, relativeLabelSize(max, minSpacing, generationOptions))) {\n ticks[ticks.length - 1].value = max;\n } else {\n ticks.push({\n value: max\n });\n }\n } else if (!maxDefined || niceMax === max) {\n ticks.push({\n value: niceMax\n });\n }\n return ticks;\n}\nfunction relativeLabelSize(value, minSpacing, { horizontal , minRotation }) {\n const rad = toRadians(minRotation);\n const ratio = (horizontal ? Math.sin(rad) : Math.cos(rad)) || 0.001;\n const length = 0.75 * minSpacing * ('' + value).length;\n return Math.min(minSpacing / ratio, length);\n}\nclass LinearScaleBase extends Scale {\n constructor(cfg){\n super(cfg);\n this.start = undefined;\n this.end = undefined;\n this._startValue = undefined;\n this._endValue = undefined;\n this._valueRange = 0;\n }\n parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n if ((typeof raw === 'number' || raw instanceof Number) && !isFinite(+raw)) {\n return null;\n }\n return +raw;\n }\n handleTickRangeOptions() {\n const { beginAtZero } = this.options;\n const { minDefined , maxDefined } = this.getUserBounds();\n let { min , max } = this;\n const setMin = (v)=>min = minDefined ? min : v;\n const setMax = (v)=>max = maxDefined ? max : v;\n if (beginAtZero) {\n const minSign = sign(min);\n const maxSign = sign(max);\n if (minSign < 0 && maxSign < 0) {\n setMax(0);\n } else if (minSign > 0 && maxSign > 0) {\n setMin(0);\n }\n }\n if (min === max) {\n let offset = max === 0 ? 1 : Math.abs(max * 0.05);\n setMax(max + offset);\n if (!beginAtZero) {\n setMin(min - offset);\n }\n }\n this.min = min;\n this.max = max;\n }\n getTickLimit() {\n const tickOpts = this.options.ticks;\n let { maxTicksLimit , stepSize } = tickOpts;\n let maxTicks;\n if (stepSize) {\n maxTicks = Math.ceil(this.max / stepSize) - Math.floor(this.min / stepSize) + 1;\n if (maxTicks > 1000) {\n console.warn(`scales.${this.id}.ticks.stepSize: ${stepSize} would result generating up to ${maxTicks} ticks. Limiting to 1000.`);\n maxTicks = 1000;\n }\n } else {\n maxTicks = this.computeTickLimit();\n maxTicksLimit = maxTicksLimit || 11;\n }\n if (maxTicksLimit) {\n maxTicks = Math.min(maxTicksLimit, maxTicks);\n }\n return maxTicks;\n }\n computeTickLimit() {\n return Number.POSITIVE_INFINITY;\n }\n buildTicks() {\n const opts = this.options;\n const tickOpts = opts.ticks;\n let maxTicks = this.getTickLimit();\n maxTicks = Math.max(2, maxTicks);\n const numericGeneratorOptions = {\n maxTicks,\n bounds: opts.bounds,\n min: opts.min,\n max: opts.max,\n precision: tickOpts.precision,\n step: tickOpts.stepSize,\n count: tickOpts.count,\n maxDigits: this._maxDigits(),\n horizontal: this.isHorizontal(),\n minRotation: tickOpts.minRotation || 0,\n includeBounds: tickOpts.includeBounds !== false\n };\n const dataRange = this._range || this;\n const ticks = generateTicks$1(numericGeneratorOptions, dataRange);\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n if (opts.reverse) {\n ticks.reverse();\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n return ticks;\n }\n configure() {\n const ticks = this.ticks;\n let start = this.min;\n let end = this.max;\n super.configure();\n if (this.options.offset && ticks.length) {\n const offset = (end - start) / Math.max(ticks.length - 1, 1) / 2;\n start -= offset;\n end += offset;\n }\n this._startValue = start;\n this._endValue = end;\n this._valueRange = end - start;\n }\n getLabelForValue(value) {\n return formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n }\n}\n\nclass LinearScale extends LinearScaleBase {\n static id = 'linear';\n static defaults = {\n ticks: {\n callback: Ticks.formatters.numeric\n }\n };\n determineDataLimits() {\n const { min , max } = this.getMinMax(true);\n this.min = isNumberFinite(min) ? min : 0;\n this.max = isNumberFinite(max) ? max : 1;\n this.handleTickRangeOptions();\n }\n computeTickLimit() {\n const horizontal = this.isHorizontal();\n const length = horizontal ? this.width : this.height;\n const minRotation = toRadians(this.options.ticks.minRotation);\n const ratio = (horizontal ? Math.sin(minRotation) : Math.cos(minRotation)) || 0.001;\n const tickFont = this._resolveTickFontOptions(0);\n return Math.ceil(length / Math.min(40, tickFont.lineHeight / ratio));\n }\n getPixelForValue(value) {\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n getValueForPixel(pixel) {\n return this._startValue + this.getDecimalForPixel(pixel) * this._valueRange;\n }\n}\n\nconst log10Floor = (v)=>Math.floor(log10(v));\nconst changeExponent = (v, m)=>Math.pow(10, log10Floor(v) + m);\nfunction isMajor(tickVal) {\n const remain = tickVal / Math.pow(10, log10Floor(tickVal));\n return remain === 1;\n}\nfunction steps(min, max, rangeExp) {\n const rangeStep = Math.pow(10, rangeExp);\n const start = Math.floor(min / rangeStep);\n const end = Math.ceil(max / rangeStep);\n return end - start;\n}\nfunction startExp(min, max) {\n const range = max - min;\n let rangeExp = log10Floor(range);\n while(steps(min, max, rangeExp) > 10){\n rangeExp++;\n }\n while(steps(min, max, rangeExp) < 10){\n rangeExp--;\n }\n return Math.min(rangeExp, log10Floor(min));\n}\n function generateTicks(generationOptions, { min , max }) {\n min = finiteOrDefault(generationOptions.min, min);\n const ticks = [];\n const minExp = log10Floor(min);\n let exp = startExp(min, max);\n let precision = exp < 0 ? Math.pow(10, Math.abs(exp)) : 1;\n const stepSize = Math.pow(10, exp);\n const base = minExp > exp ? Math.pow(10, minExp) : 0;\n const start = Math.round((min - base) * precision) / precision;\n const offset = Math.floor((min - base) / stepSize / 10) * stepSize * 10;\n let significand = Math.floor((start - offset) / Math.pow(10, exp));\n let value = finiteOrDefault(generationOptions.min, Math.round((base + offset + significand * Math.pow(10, exp)) * precision) / precision);\n while(value < max){\n ticks.push({\n value,\n major: isMajor(value),\n significand\n });\n if (significand >= 10) {\n significand = significand < 15 ? 15 : 20;\n } else {\n significand++;\n }\n if (significand >= 20) {\n exp++;\n significand = 2;\n precision = exp >= 0 ? 1 : precision;\n }\n value = Math.round((base + offset + significand * Math.pow(10, exp)) * precision) / precision;\n }\n const lastTick = finiteOrDefault(generationOptions.max, value);\n ticks.push({\n value: lastTick,\n major: isMajor(lastTick),\n significand\n });\n return ticks;\n}\nclass LogarithmicScale extends Scale {\n static id = 'logarithmic';\n static defaults = {\n ticks: {\n callback: Ticks.formatters.logarithmic,\n major: {\n enabled: true\n }\n }\n };\n constructor(cfg){\n super(cfg);\n this.start = undefined;\n this.end = undefined;\n this._startValue = undefined;\n this._valueRange = 0;\n }\n parse(raw, index) {\n const value = LinearScaleBase.prototype.parse.apply(this, [\n raw,\n index\n ]);\n if (value === 0) {\n this._zero = true;\n return undefined;\n }\n return isNumberFinite(value) && value > 0 ? value : null;\n }\n determineDataLimits() {\n const { min , max } = this.getMinMax(true);\n this.min = isNumberFinite(min) ? Math.max(0, min) : null;\n this.max = isNumberFinite(max) ? Math.max(0, max) : null;\n if (this.options.beginAtZero) {\n this._zero = true;\n }\n if (this._zero && this.min !== this._suggestedMin && !isNumberFinite(this._userMin)) {\n this.min = min === changeExponent(this.min, 0) ? changeExponent(this.min, -1) : changeExponent(this.min, 0);\n }\n this.handleTickRangeOptions();\n }\n handleTickRangeOptions() {\n const { minDefined , maxDefined } = this.getUserBounds();\n let min = this.min;\n let max = this.max;\n const setMin = (v)=>min = minDefined ? min : v;\n const setMax = (v)=>max = maxDefined ? max : v;\n if (min === max) {\n if (min <= 0) {\n setMin(1);\n setMax(10);\n } else {\n setMin(changeExponent(min, -1));\n setMax(changeExponent(max, +1));\n }\n }\n if (min <= 0) {\n setMin(changeExponent(max, -1));\n }\n if (max <= 0) {\n setMax(changeExponent(min, +1));\n }\n this.min = min;\n this.max = max;\n }\n buildTicks() {\n const opts = this.options;\n const generationOptions = {\n min: this._userMin,\n max: this._userMax\n };\n const ticks = generateTicks(generationOptions, this);\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, this, 'value');\n }\n if (opts.reverse) {\n ticks.reverse();\n this.start = this.max;\n this.end = this.min;\n } else {\n this.start = this.min;\n this.end = this.max;\n }\n return ticks;\n }\n getLabelForValue(value) {\n return value === undefined ? '0' : formatNumber(value, this.chart.options.locale, this.options.ticks.format);\n }\n configure() {\n const start = this.min;\n super.configure();\n this._startValue = log10(start);\n this._valueRange = log10(this.max) - log10(start);\n }\n getPixelForValue(value) {\n if (value === undefined || value === 0) {\n value = this.min;\n }\n if (value === null || isNaN(value)) {\n return NaN;\n }\n return this.getPixelForDecimal(value === this.min ? 0 : (log10(value) - this._startValue) / this._valueRange);\n }\n getValueForPixel(pixel) {\n const decimal = this.getDecimalForPixel(pixel);\n return Math.pow(10, this._startValue + decimal * this._valueRange);\n }\n}\n\nfunction getTickBackdropHeight(opts) {\n const tickOpts = opts.ticks;\n if (tickOpts.display && opts.display) {\n const padding = toPadding(tickOpts.backdropPadding);\n return valueOrDefault(tickOpts.font && tickOpts.font.size, defaults.font.size) + padding.height;\n }\n return 0;\n}\nfunction measureLabelSize(ctx, font, label) {\n label = isArray(label) ? label : [\n label\n ];\n return {\n w: _longestText(ctx, font.string, label),\n h: label.length * font.lineHeight\n };\n}\nfunction determineLimits(angle, pos, size, min, max) {\n if (angle === min || angle === max) {\n return {\n start: pos - size / 2,\n end: pos + size / 2\n };\n } else if (angle < min || angle > max) {\n return {\n start: pos - size,\n end: pos\n };\n }\n return {\n start: pos,\n end: pos + size\n };\n}\n function fitWithPointLabels(scale) {\n const orig = {\n l: scale.left + scale._padding.left,\n r: scale.right - scale._padding.right,\n t: scale.top + scale._padding.top,\n b: scale.bottom - scale._padding.bottom\n };\n const limits = Object.assign({}, orig);\n const labelSizes = [];\n const padding = [];\n const valueCount = scale._pointLabels.length;\n const pointLabelOpts = scale.options.pointLabels;\n const additionalAngle = pointLabelOpts.centerPointLabels ? PI / valueCount : 0;\n for(let i = 0; i < valueCount; i++){\n const opts = pointLabelOpts.setContext(scale.getPointLabelContext(i));\n padding[i] = opts.padding;\n const pointPosition = scale.getPointPosition(i, scale.drawingArea + padding[i], additionalAngle);\n const plFont = toFont(opts.font);\n const textSize = measureLabelSize(scale.ctx, plFont, scale._pointLabels[i]);\n labelSizes[i] = textSize;\n const angleRadians = _normalizeAngle(scale.getIndexAngle(i) + additionalAngle);\n const angle = Math.round(toDegrees(angleRadians));\n const hLimits = determineLimits(angle, pointPosition.x, textSize.w, 0, 180);\n const vLimits = determineLimits(angle, pointPosition.y, textSize.h, 90, 270);\n updateLimits(limits, orig, angleRadians, hLimits, vLimits);\n }\n scale.setCenterPoint(orig.l - limits.l, limits.r - orig.r, orig.t - limits.t, limits.b - orig.b);\n scale._pointLabelItems = buildPointLabelItems(scale, labelSizes, padding);\n}\nfunction updateLimits(limits, orig, angle, hLimits, vLimits) {\n const sin = Math.abs(Math.sin(angle));\n const cos = Math.abs(Math.cos(angle));\n let x = 0;\n let y = 0;\n if (hLimits.start < orig.l) {\n x = (orig.l - hLimits.start) / sin;\n limits.l = Math.min(limits.l, orig.l - x);\n } else if (hLimits.end > orig.r) {\n x = (hLimits.end - orig.r) / sin;\n limits.r = Math.max(limits.r, orig.r + x);\n }\n if (vLimits.start < orig.t) {\n y = (orig.t - vLimits.start) / cos;\n limits.t = Math.min(limits.t, orig.t - y);\n } else if (vLimits.end > orig.b) {\n y = (vLimits.end - orig.b) / cos;\n limits.b = Math.max(limits.b, orig.b + y);\n }\n}\nfunction createPointLabelItem(scale, index, itemOpts) {\n const outerDistance = scale.drawingArea;\n const { extra , additionalAngle , padding , size } = itemOpts;\n const pointLabelPosition = scale.getPointPosition(index, outerDistance + extra + padding, additionalAngle);\n const angle = Math.round(toDegrees(_normalizeAngle(pointLabelPosition.angle + HALF_PI)));\n const y = yForAngle(pointLabelPosition.y, size.h, angle);\n const textAlign = getTextAlignForAngle(angle);\n const left = leftForTextAlign(pointLabelPosition.x, size.w, textAlign);\n return {\n visible: true,\n x: pointLabelPosition.x,\n y,\n textAlign,\n left,\n top: y,\n right: left + size.w,\n bottom: y + size.h\n };\n}\nfunction isNotOverlapped(item, area) {\n if (!area) {\n return true;\n }\n const { left , top , right , bottom } = item;\n const apexesInArea = _isPointInArea({\n x: left,\n y: top\n }, area) || _isPointInArea({\n x: left,\n y: bottom\n }, area) || _isPointInArea({\n x: right,\n y: top\n }, area) || _isPointInArea({\n x: right,\n y: bottom\n }, area);\n return !apexesInArea;\n}\nfunction buildPointLabelItems(scale, labelSizes, padding) {\n const items = [];\n const valueCount = scale._pointLabels.length;\n const opts = scale.options;\n const { centerPointLabels , display } = opts.pointLabels;\n const itemOpts = {\n extra: getTickBackdropHeight(opts) / 2,\n additionalAngle: centerPointLabels ? PI / valueCount : 0\n };\n let area;\n for(let i = 0; i < valueCount; i++){\n itemOpts.padding = padding[i];\n itemOpts.size = labelSizes[i];\n const item = createPointLabelItem(scale, i, itemOpts);\n items.push(item);\n if (display === 'auto') {\n item.visible = isNotOverlapped(item, area);\n if (item.visible) {\n area = item;\n }\n }\n }\n return items;\n}\nfunction getTextAlignForAngle(angle) {\n if (angle === 0 || angle === 180) {\n return 'center';\n } else if (angle < 180) {\n return 'left';\n }\n return 'right';\n}\nfunction leftForTextAlign(x, w, align) {\n if (align === 'right') {\n x -= w;\n } else if (align === 'center') {\n x -= w / 2;\n }\n return x;\n}\nfunction yForAngle(y, h, angle) {\n if (angle === 90 || angle === 270) {\n y -= h / 2;\n } else if (angle > 270 || angle < 90) {\n y -= h;\n }\n return y;\n}\nfunction drawPointLabelBox(ctx, opts, item) {\n const { left , top , right , bottom } = item;\n const { backdropColor } = opts;\n if (!isNullOrUndef(backdropColor)) {\n const borderRadius = toTRBLCorners(opts.borderRadius);\n const padding = toPadding(opts.backdropPadding);\n ctx.fillStyle = backdropColor;\n const backdropLeft = left - padding.left;\n const backdropTop = top - padding.top;\n const backdropWidth = right - left + padding.width;\n const backdropHeight = bottom - top + padding.height;\n if (Object.values(borderRadius).some((v)=>v !== 0)) {\n ctx.beginPath();\n addRoundedRectPath(ctx, {\n x: backdropLeft,\n y: backdropTop,\n w: backdropWidth,\n h: backdropHeight,\n radius: borderRadius\n });\n ctx.fill();\n } else {\n ctx.fillRect(backdropLeft, backdropTop, backdropWidth, backdropHeight);\n }\n }\n}\nfunction drawPointLabels(scale, labelCount) {\n const { ctx , options: { pointLabels } } = scale;\n for(let i = labelCount - 1; i >= 0; i--){\n const item = scale._pointLabelItems[i];\n if (!item.visible) {\n continue;\n }\n const optsAtIndex = pointLabels.setContext(scale.getPointLabelContext(i));\n drawPointLabelBox(ctx, optsAtIndex, item);\n const plFont = toFont(optsAtIndex.font);\n const { x , y , textAlign } = item;\n renderText(ctx, scale._pointLabels[i], x, y + plFont.lineHeight / 2, plFont, {\n color: optsAtIndex.color,\n textAlign: textAlign,\n textBaseline: 'middle'\n });\n }\n}\nfunction pathRadiusLine(scale, radius, circular, labelCount) {\n const { ctx } = scale;\n if (circular) {\n ctx.arc(scale.xCenter, scale.yCenter, radius, 0, TAU);\n } else {\n let pointPosition = scale.getPointPosition(0, radius);\n ctx.moveTo(pointPosition.x, pointPosition.y);\n for(let i = 1; i < labelCount; i++){\n pointPosition = scale.getPointPosition(i, radius);\n ctx.lineTo(pointPosition.x, pointPosition.y);\n }\n }\n}\nfunction drawRadiusLine(scale, gridLineOpts, radius, labelCount, borderOpts) {\n const ctx = scale.ctx;\n const circular = gridLineOpts.circular;\n const { color , lineWidth } = gridLineOpts;\n if (!circular && !labelCount || !color || !lineWidth || radius < 0) {\n return;\n }\n ctx.save();\n ctx.strokeStyle = color;\n ctx.lineWidth = lineWidth;\n ctx.setLineDash(borderOpts.dash || []);\n ctx.lineDashOffset = borderOpts.dashOffset;\n ctx.beginPath();\n pathRadiusLine(scale, radius, circular, labelCount);\n ctx.closePath();\n ctx.stroke();\n ctx.restore();\n}\nfunction createPointLabelContext(parent, index, label) {\n return createContext(parent, {\n label,\n index,\n type: 'pointLabel'\n });\n}\nclass RadialLinearScale extends LinearScaleBase {\n static id = 'radialLinear';\n static defaults = {\n display: true,\n animate: true,\n position: 'chartArea',\n angleLines: {\n display: true,\n lineWidth: 1,\n borderDash: [],\n borderDashOffset: 0.0\n },\n grid: {\n circular: false\n },\n startAngle: 0,\n ticks: {\n showLabelBackdrop: true,\n callback: Ticks.formatters.numeric\n },\n pointLabels: {\n backdropColor: undefined,\n backdropPadding: 2,\n display: true,\n font: {\n size: 10\n },\n callback (label) {\n return label;\n },\n padding: 5,\n centerPointLabels: false\n }\n };\n static defaultRoutes = {\n 'angleLines.color': 'borderColor',\n 'pointLabels.color': 'color',\n 'ticks.color': 'color'\n };\n static descriptors = {\n angleLines: {\n _fallback: 'grid'\n }\n };\n constructor(cfg){\n super(cfg);\n this.xCenter = undefined;\n this.yCenter = undefined;\n this.drawingArea = undefined;\n this._pointLabels = [];\n this._pointLabelItems = [];\n }\n setDimensions() {\n const padding = this._padding = toPadding(getTickBackdropHeight(this.options) / 2);\n const w = this.width = this.maxWidth - padding.width;\n const h = this.height = this.maxHeight - padding.height;\n this.xCenter = Math.floor(this.left + w / 2 + padding.left);\n this.yCenter = Math.floor(this.top + h / 2 + padding.top);\n this.drawingArea = Math.floor(Math.min(w, h) / 2);\n }\n determineDataLimits() {\n const { min , max } = this.getMinMax(false);\n this.min = isNumberFinite(min) && !isNaN(min) ? min : 0;\n this.max = isNumberFinite(max) && !isNaN(max) ? max : 0;\n this.handleTickRangeOptions();\n }\n computeTickLimit() {\n return Math.ceil(this.drawingArea / getTickBackdropHeight(this.options));\n }\n generateTickLabels(ticks) {\n LinearScaleBase.prototype.generateTickLabels.call(this, ticks);\n this._pointLabels = this.getLabels().map((value, index)=>{\n const label = callback(this.options.pointLabels.callback, [\n value,\n index\n ], this);\n return label || label === 0 ? label : '';\n }).filter((v, i)=>this.chart.getDataVisibility(i));\n }\n fit() {\n const opts = this.options;\n if (opts.display && opts.pointLabels.display) {\n fitWithPointLabels(this);\n } else {\n this.setCenterPoint(0, 0, 0, 0);\n }\n }\n setCenterPoint(leftMovement, rightMovement, topMovement, bottomMovement) {\n this.xCenter += Math.floor((leftMovement - rightMovement) / 2);\n this.yCenter += Math.floor((topMovement - bottomMovement) / 2);\n this.drawingArea -= Math.min(this.drawingArea / 2, Math.max(leftMovement, rightMovement, topMovement, bottomMovement));\n }\n getIndexAngle(index) {\n const angleMultiplier = TAU / (this._pointLabels.length || 1);\n const startAngle = this.options.startAngle || 0;\n return _normalizeAngle(index * angleMultiplier + toRadians(startAngle));\n }\n getDistanceFromCenterForValue(value) {\n if (isNullOrUndef(value)) {\n return NaN;\n }\n const scalingFactor = this.drawingArea / (this.max - this.min);\n if (this.options.reverse) {\n return (this.max - value) * scalingFactor;\n }\n return (value - this.min) * scalingFactor;\n }\n getValueForDistanceFromCenter(distance) {\n if (isNullOrUndef(distance)) {\n return NaN;\n }\n const scaledDistance = distance / (this.drawingArea / (this.max - this.min));\n return this.options.reverse ? this.max - scaledDistance : this.min + scaledDistance;\n }\n getPointLabelContext(index) {\n const pointLabels = this._pointLabels || [];\n if (index >= 0 && index < pointLabels.length) {\n const pointLabel = pointLabels[index];\n return createPointLabelContext(this.getContext(), index, pointLabel);\n }\n }\n getPointPosition(index, distanceFromCenter, additionalAngle = 0) {\n const angle = this.getIndexAngle(index) - HALF_PI + additionalAngle;\n return {\n x: Math.cos(angle) * distanceFromCenter + this.xCenter,\n y: Math.sin(angle) * distanceFromCenter + this.yCenter,\n angle\n };\n }\n getPointPositionForValue(index, value) {\n return this.getPointPosition(index, this.getDistanceFromCenterForValue(value));\n }\n getBasePosition(index) {\n return this.getPointPositionForValue(index || 0, this.getBaseValue());\n }\n getPointLabelPosition(index) {\n const { left , top , right , bottom } = this._pointLabelItems[index];\n return {\n left,\n top,\n right,\n bottom\n };\n }\n drawBackground() {\n const { backgroundColor , grid: { circular } } = this.options;\n if (backgroundColor) {\n const ctx = this.ctx;\n ctx.save();\n ctx.beginPath();\n pathRadiusLine(this, this.getDistanceFromCenterForValue(this._endValue), circular, this._pointLabels.length);\n ctx.closePath();\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n }\n drawGrid() {\n const ctx = this.ctx;\n const opts = this.options;\n const { angleLines , grid , border } = opts;\n const labelCount = this._pointLabels.length;\n let i, offset, position;\n if (opts.pointLabels.display) {\n drawPointLabels(this, labelCount);\n }\n if (grid.display) {\n this.ticks.forEach((tick, index)=>{\n if (index !== 0 || index === 0 && this.min < 0) {\n offset = this.getDistanceFromCenterForValue(tick.value);\n const context = this.getContext(index);\n const optsAtIndex = grid.setContext(context);\n const optsAtIndexBorder = border.setContext(context);\n drawRadiusLine(this, optsAtIndex, offset, labelCount, optsAtIndexBorder);\n }\n });\n }\n if (angleLines.display) {\n ctx.save();\n for(i = labelCount - 1; i >= 0; i--){\n const optsAtIndex = angleLines.setContext(this.getPointLabelContext(i));\n const { color , lineWidth } = optsAtIndex;\n if (!lineWidth || !color) {\n continue;\n }\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = color;\n ctx.setLineDash(optsAtIndex.borderDash);\n ctx.lineDashOffset = optsAtIndex.borderDashOffset;\n offset = this.getDistanceFromCenterForValue(opts.reverse ? this.min : this.max);\n position = this.getPointPosition(i, offset);\n ctx.beginPath();\n ctx.moveTo(this.xCenter, this.yCenter);\n ctx.lineTo(position.x, position.y);\n ctx.stroke();\n }\n ctx.restore();\n }\n }\n drawBorder() {}\n drawLabels() {\n const ctx = this.ctx;\n const opts = this.options;\n const tickOpts = opts.ticks;\n if (!tickOpts.display) {\n return;\n }\n const startAngle = this.getIndexAngle(0);\n let offset, width;\n ctx.save();\n ctx.translate(this.xCenter, this.yCenter);\n ctx.rotate(startAngle);\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n this.ticks.forEach((tick, index)=>{\n if (index === 0 && this.min >= 0 && !opts.reverse) {\n return;\n }\n const optsAtIndex = tickOpts.setContext(this.getContext(index));\n const tickFont = toFont(optsAtIndex.font);\n offset = this.getDistanceFromCenterForValue(this.ticks[index].value);\n if (optsAtIndex.showLabelBackdrop) {\n ctx.font = tickFont.string;\n width = ctx.measureText(tick.label).width;\n ctx.fillStyle = optsAtIndex.backdropColor;\n const padding = toPadding(optsAtIndex.backdropPadding);\n ctx.fillRect(-width / 2 - padding.left, -offset - tickFont.size / 2 - padding.top, width + padding.width, tickFont.size + padding.height);\n }\n renderText(ctx, tick.label, 0, -offset, tickFont, {\n color: optsAtIndex.color,\n strokeColor: optsAtIndex.textStrokeColor,\n strokeWidth: optsAtIndex.textStrokeWidth\n });\n });\n ctx.restore();\n }\n drawTitle() {}\n}\n\nconst INTERVALS = {\n millisecond: {\n common: true,\n size: 1,\n steps: 1000\n },\n second: {\n common: true,\n size: 1000,\n steps: 60\n },\n minute: {\n common: true,\n size: 60000,\n steps: 60\n },\n hour: {\n common: true,\n size: 3600000,\n steps: 24\n },\n day: {\n common: true,\n size: 86400000,\n steps: 30\n },\n week: {\n common: false,\n size: 604800000,\n steps: 4\n },\n month: {\n common: true,\n size: 2.628e9,\n steps: 12\n },\n quarter: {\n common: false,\n size: 7.884e9,\n steps: 4\n },\n year: {\n common: true,\n size: 3.154e10\n }\n};\n const UNITS = /* #__PURE__ */ Object.keys(INTERVALS);\n function sorter(a, b) {\n return a - b;\n}\n function parse(scale, input) {\n if (isNullOrUndef(input)) {\n return null;\n }\n const adapter = scale._adapter;\n const { parser , round , isoWeekday } = scale._parseOpts;\n let value = input;\n if (typeof parser === 'function') {\n value = parser(value);\n }\n if (!isNumberFinite(value)) {\n value = typeof parser === 'string' ? adapter.parse(value, parser) : adapter.parse(value);\n }\n if (value === null) {\n return null;\n }\n if (round) {\n value = round === 'week' && (isNumber(isoWeekday) || isoWeekday === true) ? adapter.startOf(value, 'isoWeek', isoWeekday) : adapter.startOf(value, round);\n }\n return +value;\n}\n function determineUnitForAutoTicks(minUnit, min, max, capacity) {\n const ilen = UNITS.length;\n for(let i = UNITS.indexOf(minUnit); i < ilen - 1; ++i){\n const interval = INTERVALS[UNITS[i]];\n const factor = interval.steps ? interval.steps : Number.MAX_SAFE_INTEGER;\n if (interval.common && Math.ceil((max - min) / (factor * interval.size)) <= capacity) {\n return UNITS[i];\n }\n }\n return UNITS[ilen - 1];\n}\n function determineUnitForFormatting(scale, numTicks, minUnit, min, max) {\n for(let i = UNITS.length - 1; i >= UNITS.indexOf(minUnit); i--){\n const unit = UNITS[i];\n if (INTERVALS[unit].common && scale._adapter.diff(max, min, unit) >= numTicks - 1) {\n return unit;\n }\n }\n return UNITS[minUnit ? UNITS.indexOf(minUnit) : 0];\n}\n function determineMajorUnit(unit) {\n for(let i = UNITS.indexOf(unit) + 1, ilen = UNITS.length; i < ilen; ++i){\n if (INTERVALS[UNITS[i]].common) {\n return UNITS[i];\n }\n }\n}\n function addTick(ticks, time, timestamps) {\n if (!timestamps) {\n ticks[time] = true;\n } else if (timestamps.length) {\n const { lo , hi } = _lookup(timestamps, time);\n const timestamp = timestamps[lo] >= time ? timestamps[lo] : timestamps[hi];\n ticks[timestamp] = true;\n }\n}\n function setMajorTicks(scale, ticks, map, majorUnit) {\n const adapter = scale._adapter;\n const first = +adapter.startOf(ticks[0].value, majorUnit);\n const last = ticks[ticks.length - 1].value;\n let major, index;\n for(major = first; major <= last; major = +adapter.add(major, 1, majorUnit)){\n index = map[major];\n if (index >= 0) {\n ticks[index].major = true;\n }\n }\n return ticks;\n}\n function ticksFromTimestamps(scale, values, majorUnit) {\n const ticks = [];\n const map = {};\n const ilen = values.length;\n let i, value;\n for(i = 0; i < ilen; ++i){\n value = values[i];\n map[value] = i;\n ticks.push({\n value,\n major: false\n });\n }\n return ilen === 0 || !majorUnit ? ticks : setMajorTicks(scale, ticks, map, majorUnit);\n}\nclass TimeScale extends Scale {\n static id = 'time';\n static defaults = {\n bounds: 'data',\n adapters: {},\n time: {\n parser: false,\n unit: false,\n round: false,\n isoWeekday: false,\n minUnit: 'millisecond',\n displayFormats: {}\n },\n ticks: {\n source: 'auto',\n callback: false,\n major: {\n enabled: false\n }\n }\n };\n constructor(props){\n super(props);\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n this._unit = 'day';\n this._majorUnit = undefined;\n this._offsets = {};\n this._normalized = false;\n this._parseOpts = undefined;\n }\n init(scaleOpts, opts = {}) {\n const time = scaleOpts.time || (scaleOpts.time = {});\n const adapter = this._adapter = new adapters._date(scaleOpts.adapters.date);\n adapter.init(opts);\n mergeIf(time.displayFormats, adapter.formats());\n this._parseOpts = {\n parser: time.parser,\n round: time.round,\n isoWeekday: time.isoWeekday\n };\n super.init(scaleOpts);\n this._normalized = opts.normalized;\n }\n parse(raw, index) {\n if (raw === undefined) {\n return null;\n }\n return parse(this, raw);\n }\n beforeLayout() {\n super.beforeLayout();\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n }\n determineDataLimits() {\n const options = this.options;\n const adapter = this._adapter;\n const unit = options.time.unit || 'day';\n let { min , max , minDefined , maxDefined } = this.getUserBounds();\n function _applyBounds(bounds) {\n if (!minDefined && !isNaN(bounds.min)) {\n min = Math.min(min, bounds.min);\n }\n if (!maxDefined && !isNaN(bounds.max)) {\n max = Math.max(max, bounds.max);\n }\n }\n if (!minDefined || !maxDefined) {\n _applyBounds(this._getLabelBounds());\n if (options.bounds !== 'ticks' || options.ticks.source !== 'labels') {\n _applyBounds(this.getMinMax(false));\n }\n }\n min = isNumberFinite(min) && !isNaN(min) ? min : +adapter.startOf(Date.now(), unit);\n max = isNumberFinite(max) && !isNaN(max) ? max : +adapter.endOf(Date.now(), unit) + 1;\n this.min = Math.min(min, max - 1);\n this.max = Math.max(min + 1, max);\n }\n _getLabelBounds() {\n const arr = this.getLabelTimestamps();\n let min = Number.POSITIVE_INFINITY;\n let max = Number.NEGATIVE_INFINITY;\n if (arr.length) {\n min = arr[0];\n max = arr[arr.length - 1];\n }\n return {\n min,\n max\n };\n }\n buildTicks() {\n const options = this.options;\n const timeOpts = options.time;\n const tickOpts = options.ticks;\n const timestamps = tickOpts.source === 'labels' ? this.getLabelTimestamps() : this._generate();\n if (options.bounds === 'ticks' && timestamps.length) {\n this.min = this._userMin || timestamps[0];\n this.max = this._userMax || timestamps[timestamps.length - 1];\n }\n const min = this.min;\n const max = this.max;\n const ticks = _filterBetween(timestamps, min, max);\n this._unit = timeOpts.unit || (tickOpts.autoSkip ? determineUnitForAutoTicks(timeOpts.minUnit, this.min, this.max, this._getLabelCapacity(min)) : determineUnitForFormatting(this, ticks.length, timeOpts.minUnit, this.min, this.max));\n this._majorUnit = !tickOpts.major.enabled || this._unit === 'year' ? undefined : determineMajorUnit(this._unit);\n this.initOffsets(timestamps);\n if (options.reverse) {\n ticks.reverse();\n }\n return ticksFromTimestamps(this, ticks, this._majorUnit);\n }\n afterAutoSkip() {\n if (this.options.offsetAfterAutoskip) {\n this.initOffsets(this.ticks.map((tick)=>+tick.value));\n }\n }\n initOffsets(timestamps = []) {\n let start = 0;\n let end = 0;\n let first, last;\n if (this.options.offset && timestamps.length) {\n first = this.getDecimalForValue(timestamps[0]);\n if (timestamps.length === 1) {\n start = 1 - first;\n } else {\n start = (this.getDecimalForValue(timestamps[1]) - first) / 2;\n }\n last = this.getDecimalForValue(timestamps[timestamps.length - 1]);\n if (timestamps.length === 1) {\n end = last;\n } else {\n end = (last - this.getDecimalForValue(timestamps[timestamps.length - 2])) / 2;\n }\n }\n const limit = timestamps.length < 3 ? 0.5 : 0.25;\n start = _limitValue(start, 0, limit);\n end = _limitValue(end, 0, limit);\n this._offsets = {\n start,\n end,\n factor: 1 / (start + 1 + end)\n };\n }\n _generate() {\n const adapter = this._adapter;\n const min = this.min;\n const max = this.max;\n const options = this.options;\n const timeOpts = options.time;\n const minor = timeOpts.unit || determineUnitForAutoTicks(timeOpts.minUnit, min, max, this._getLabelCapacity(min));\n const stepSize = valueOrDefault(options.ticks.stepSize, 1);\n const weekday = minor === 'week' ? timeOpts.isoWeekday : false;\n const hasWeekday = isNumber(weekday) || weekday === true;\n const ticks = {};\n let first = min;\n let time, count;\n if (hasWeekday) {\n first = +adapter.startOf(first, 'isoWeek', weekday);\n }\n first = +adapter.startOf(first, hasWeekday ? 'day' : minor);\n if (adapter.diff(max, min, minor) > 100000 * stepSize) {\n throw new Error(min + ' and ' + max + ' are too far apart with stepSize of ' + stepSize + ' ' + minor);\n }\n const timestamps = options.ticks.source === 'data' && this.getDataTimestamps();\n for(time = first, count = 0; time < max; time = +adapter.add(time, stepSize, minor), count++){\n addTick(ticks, time, timestamps);\n }\n if (time === max || options.bounds === 'ticks' || count === 1) {\n addTick(ticks, time, timestamps);\n }\n return Object.keys(ticks).sort(sorter).map((x)=>+x);\n }\n getLabelForValue(value) {\n const adapter = this._adapter;\n const timeOpts = this.options.time;\n if (timeOpts.tooltipFormat) {\n return adapter.format(value, timeOpts.tooltipFormat);\n }\n return adapter.format(value, timeOpts.displayFormats.datetime);\n }\n format(value, format) {\n const options = this.options;\n const formats = options.time.displayFormats;\n const unit = this._unit;\n const fmt = format || formats[unit];\n return this._adapter.format(value, fmt);\n }\n _tickFormatFunction(time, index, ticks, format) {\n const options = this.options;\n const formatter = options.ticks.callback;\n if (formatter) {\n return callback(formatter, [\n time,\n index,\n ticks\n ], this);\n }\n const formats = options.time.displayFormats;\n const unit = this._unit;\n const majorUnit = this._majorUnit;\n const minorFormat = unit && formats[unit];\n const majorFormat = majorUnit && formats[majorUnit];\n const tick = ticks[index];\n const major = majorUnit && majorFormat && tick && tick.major;\n return this._adapter.format(time, format || (major ? majorFormat : minorFormat));\n }\n generateTickLabels(ticks) {\n let i, ilen, tick;\n for(i = 0, ilen = ticks.length; i < ilen; ++i){\n tick = ticks[i];\n tick.label = this._tickFormatFunction(tick.value, i, ticks);\n }\n }\n getDecimalForValue(value) {\n return value === null ? NaN : (value - this.min) / (this.max - this.min);\n }\n getPixelForValue(value) {\n const offsets = this._offsets;\n const pos = this.getDecimalForValue(value);\n return this.getPixelForDecimal((offsets.start + pos) * offsets.factor);\n }\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const pos = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return this.min + pos * (this.max - this.min);\n }\n _getLabelSize(label) {\n const ticksOpts = this.options.ticks;\n const tickLabelWidth = this.ctx.measureText(label).width;\n const angle = toRadians(this.isHorizontal() ? ticksOpts.maxRotation : ticksOpts.minRotation);\n const cosRotation = Math.cos(angle);\n const sinRotation = Math.sin(angle);\n const tickFontSize = this._resolveTickFontOptions(0).size;\n return {\n w: tickLabelWidth * cosRotation + tickFontSize * sinRotation,\n h: tickLabelWidth * sinRotation + tickFontSize * cosRotation\n };\n }\n _getLabelCapacity(exampleTime) {\n const timeOpts = this.options.time;\n const displayFormats = timeOpts.displayFormats;\n const format = displayFormats[timeOpts.unit] || displayFormats.millisecond;\n const exampleLabel = this._tickFormatFunction(exampleTime, 0, ticksFromTimestamps(this, [\n exampleTime\n ], this._majorUnit), format);\n const size = this._getLabelSize(exampleLabel);\n const capacity = Math.floor(this.isHorizontal() ? this.width / size.w : this.height / size.h) - 1;\n return capacity > 0 ? capacity : 1;\n }\n getDataTimestamps() {\n let timestamps = this._cache.data || [];\n let i, ilen;\n if (timestamps.length) {\n return timestamps;\n }\n const metas = this.getMatchingVisibleMetas();\n if (this._normalized && metas.length) {\n return this._cache.data = metas[0].controller.getAllParsedValues(this);\n }\n for(i = 0, ilen = metas.length; i < ilen; ++i){\n timestamps = timestamps.concat(metas[i].controller.getAllParsedValues(this));\n }\n return this._cache.data = this.normalize(timestamps);\n }\n getLabelTimestamps() {\n const timestamps = this._cache.labels || [];\n let i, ilen;\n if (timestamps.length) {\n return timestamps;\n }\n const labels = this.getLabels();\n for(i = 0, ilen = labels.length; i < ilen; ++i){\n timestamps.push(parse(this, labels[i]));\n }\n return this._cache.labels = this._normalized ? timestamps : this.normalize(timestamps);\n }\n normalize(values) {\n return _arrayUnique(values.sort(sorter));\n }\n}\n\nfunction interpolate(table, val, reverse) {\n let lo = 0;\n let hi = table.length - 1;\n let prevSource, nextSource, prevTarget, nextTarget;\n if (reverse) {\n if (val >= table[lo].pos && val <= table[hi].pos) {\n ({ lo , hi } = _lookupByKey(table, 'pos', val));\n }\n ({ pos: prevSource , time: prevTarget } = table[lo]);\n ({ pos: nextSource , time: nextTarget } = table[hi]);\n } else {\n if (val >= table[lo].time && val <= table[hi].time) {\n ({ lo , hi } = _lookupByKey(table, 'time', val));\n }\n ({ time: prevSource , pos: prevTarget } = table[lo]);\n ({ time: nextSource , pos: nextTarget } = table[hi]);\n }\n const span = nextSource - prevSource;\n return span ? prevTarget + (nextTarget - prevTarget) * (val - prevSource) / span : prevTarget;\n}\nclass TimeSeriesScale extends TimeScale {\n static id = 'timeseries';\n static defaults = TimeScale.defaults;\n constructor(props){\n super(props);\n this._table = [];\n this._minPos = undefined;\n this._tableRange = undefined;\n }\n initOffsets() {\n const timestamps = this._getTimestampsForTable();\n const table = this._table = this.buildLookupTable(timestamps);\n this._minPos = interpolate(table, this.min);\n this._tableRange = interpolate(table, this.max) - this._minPos;\n super.initOffsets(timestamps);\n }\n buildLookupTable(timestamps) {\n const { min , max } = this;\n const items = [];\n const table = [];\n let i, ilen, prev, curr, next;\n for(i = 0, ilen = timestamps.length; i < ilen; ++i){\n curr = timestamps[i];\n if (curr >= min && curr <= max) {\n items.push(curr);\n }\n }\n if (items.length < 2) {\n return [\n {\n time: min,\n pos: 0\n },\n {\n time: max,\n pos: 1\n }\n ];\n }\n for(i = 0, ilen = items.length; i < ilen; ++i){\n next = items[i + 1];\n prev = items[i - 1];\n curr = items[i];\n if (Math.round((next + prev) / 2) !== curr) {\n table.push({\n time: curr,\n pos: i / (ilen - 1)\n });\n }\n }\n return table;\n }\n _generate() {\n const min = this.min;\n const max = this.max;\n let timestamps = super.getDataTimestamps();\n if (!timestamps.includes(min) || !timestamps.length) {\n timestamps.splice(0, 0, min);\n }\n if (!timestamps.includes(max) || timestamps.length === 1) {\n timestamps.push(max);\n }\n return timestamps.sort((a, b)=>a - b);\n }\n _getTimestampsForTable() {\n let timestamps = this._cache.all || [];\n if (timestamps.length) {\n return timestamps;\n }\n const data = this.getDataTimestamps();\n const label = this.getLabelTimestamps();\n if (data.length && label.length) {\n timestamps = this.normalize(data.concat(label));\n } else {\n timestamps = data.length ? data : label;\n }\n timestamps = this._cache.all = timestamps;\n return timestamps;\n }\n getDecimalForValue(value) {\n return (interpolate(this._table, value) - this._minPos) / this._tableRange;\n }\n getValueForPixel(pixel) {\n const offsets = this._offsets;\n const decimal = this.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return interpolate(this._table, decimal * this._tableRange + this._minPos, true);\n }\n}\n\nvar scales = /*#__PURE__*/Object.freeze({\n__proto__: null,\nCategoryScale: CategoryScale,\nLinearScale: LinearScale,\nLogarithmicScale: LogarithmicScale,\nRadialLinearScale: RadialLinearScale,\nTimeScale: TimeScale,\nTimeSeriesScale: TimeSeriesScale\n});\n\nconst registerables = [\n controllers,\n elements,\n plugins,\n scales\n];\n\nexport { Animation, Animations, ArcElement, BarController, BarElement, BasePlatform, BasicPlatform, BubbleController, CategoryScale, Chart, plugin_colors as Colors, DatasetController, plugin_decimation as Decimation, DomPlatform, DoughnutController, Element, index as Filler, Interaction, plugin_legend as Legend, LineController, LineElement, LinearScale, LogarithmicScale, PieController, PointElement, PolarAreaController, RadarController, RadialLinearScale, Scale, ScatterController, plugin_subtitle as SubTitle, Ticks, TimeScale, TimeSeriesScale, plugin_title as Title, plugin_tooltip as Tooltip, adapters as _adapters, _detectPlatform, animator, controllers, defaults, elements, layouts, plugins, registerables, registry, scales };\n//# sourceMappingURL=chart.js.map\n","import { css } from 'lit';\nconst styles = css``;\nexport default styles;\n","import { property } from \"lit/decorators.js\";\nimport { Cre8Element } from '../cre8-element';\nimport {Chart, ChartType} from 'chart.js';\nimport { html, } from \"lit\";\nimport styles from './chart.styles.js';\n\nexport class Cre8Chart extends Cre8Element {\n static styles = [styles];\n\n @property() chartData: any;\n @property({ type: String }) chartType: ChartType = 'bar';\n @property({ type: Object }) chartOptions = {};\n @property({ type: Boolean }) isLoading: boolean = false;\n \n firstUpdated() {\n // Initialize chart with chart library of choice\n const canvas = document.documentElement.querySelector('#chartCanvas') as HTMLCanvasElement;\n // Example with Chart.js\n new Chart(canvas, {\n type: this.chartType,\n data: this.chartData,\n options: this.chartOptions,\n });\n }\n \n render() {\n return html`\n <div class=\"chart-container\">\n <canvas id=\"chartCanvas\"></canvas>\n </div>\n `;\n }\n}\n\nif (customElements.get('cre8-chart') === undefined) {\n customElements.define('cre8-chart', Cre8Chart);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-chart': Cre8Chart;\n }\n}\n\nexport default Cre8Chart;\n","export const urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\n","/* @ts-self-types=\"./index.d.ts\" */\nimport { urlAlphabet as scopedUrlAlphabet } from './url-alphabet/index.js'\nexport { urlAlphabet } from './url-alphabet/index.js'\nexport let random = bytes => crypto.getRandomValues(new Uint8Array(bytes))\nexport let customRandom = (alphabet, defaultSize, getRandom) => {\n let mask = (2 << Math.log2(alphabet.length - 1)) - 1\n let step = -~((1.6 * mask * defaultSize) / alphabet.length)\n return (size = defaultSize) => {\n let id = ''\n while (true) {\n let bytes = getRandom(step)\n let j = step | 0\n while (j--) {\n id += alphabet[bytes[j] & mask] || ''\n if (id.length >= size) return id\n }\n }\n }\n}\nexport let customAlphabet = (alphabet, size = 21) =>\n customRandom(alphabet, size | 0, random)\nexport let nanoid = (size = 21) => {\n let id = ''\n let bytes = crypto.getRandomValues(new Uint8Array((size |= 0)))\n while (size--) {\n id += scopedUrlAlphabet[bytes[size] & 63]\n }\n return id\n}\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n:host {\n display: flex;\n}\n\n/**\n * Field Note\n * 1) Messaging associated with the form field usually located below the form field input\n */\n.cre8-c-field-note {\n display: flex;\n align-items: flex-start;\n gap: size(0.5);\n color: var(--cre8-color-content-default);\n margin-top: size(0.5);\n}\n\n.cre8-field-note-icon {\n margin-top: size(0.5);\n height: size(2);\n width: size(2);\n}\n\n/**\n * Field Note Error State\n */\n.cre8-c-field-note.cre8-is-error {\n color: var(--cre8-color-content-error);\n}\n\n/**\n * Field Note Success State\n */\n.cre8-c-field-note.cre8-is-success {\n color: var(--cre8-color-content-success);\n}\n\n/**\n * Inverted field note\n */\n.cre8-c-field-note--inverted {\n color: var(--cre8-color-content-knockout);\n}\n`;\nexport default styles;\n","import svgCheckCircle from '/Users/tylersmbp/Projects/cre8-web-components/packages/cre8-wc/icons/System/Filled/Check.svg?raw';\nimport svgErrorFilled from '/Users/tylersmbp/Projects/cre8-web-components/packages/cre8-wc/icons/System/Filled/Error.svg?raw';\nimport { html, } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { Cre8Element } from '../cre8-element';\nimport '../icon/icon';\nimport styles from './field-note.styles.js';\n\n/**\n * Field Note gives direction on how to fill out a form field and to alert users of form errors and successes.\n * It’s used below an input field and never on its own.\n * @slot - The note content\n */\n\nexport class Cre8FieldNote extends Cre8Element {\n static styles = [styles];\n\n /**\n * Changes the component's treatment to represent an error\n * @attr {boolean}\n */\n @property({ type: Boolean, reflect: true })\n isError?: boolean;\n\n /**\n * Changes the component's treatment to represent a success\n * @attr {boolean}\n */\n @property({ type: Boolean, reflect: true })\n isSuccess?: boolean;\n\n /**\n * DEPRECATED: Icon name used for the icon before to the field note\n * @deprecated\n */\n @property()\n iconName?: string;\n\n /**\n * Check if there are success or error states and set \"aria-live=polite\"\n */\n fieldNoteAriaLive(): 'polite' | 'off' | 'assertive' {\n if (this.isError || this.isSuccess) {\n return 'polite';\n }\n return null;\n }\n\n render() {\n const componentClassName = this.componentClassNames('cre8-c-field-note', {\n 'cre8-is-error': this.isError,\n 'cre8-is-success': this.isSuccess,\n });\n\n return html`\n <div\n aria-live=\"${this.fieldNoteAriaLive() ?? 'off'}\"\n class=\"${componentClassName}\">\n ${this.isError === true\n ? html`<cre8-icon class=\"cre8-field-note-icon\" svg='${svgErrorFilled}' aria-hidden=\"true\" ></cre8-icon>`\n : ''\n}\n ${this.isSuccess === true\n ? html`<cre8-icon class=\"cre8-field-note-icon\" svg='${svgCheckCircle}' aria-hidden=\"true\"></cre8-icon>`\n : ''\n}\n <div><slot></slot></div>\n </div>\n `;\n }\n}\n\nif (customElements.get('cre8-field-note') === undefined) {\n customElements.define('cre8-field-note', Cre8FieldNote);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-field-note': Cre8FieldNote;\n }\n}\n\nexport default Cre8FieldNote;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n/*------------------------------------*\\\n #CHECKBOX-FIELD\n\\*------------------------------------*/\n\n:host {\n display: flex;\n}\n\n/** \n * 1) Fieldset used for checkbox items\n */\n.cre8-c-checkbox-field {\n border: none;\n padding: 0;\n margin: 0;\n}\n\n/** \n * Checkbox field legend\n */\n.cre8-c-checkbox-field__legend {\n @include cre8-typography-label-small();\n margin-bottom: size(1);\n}\n\n/** \n * Checkbox list\n */\n.cre8-c-checkbox-field__list {\n display: flex;\n flex-direction: column;\n}`;\nexport default styles;\n","import { html, } from 'lit';\nimport { ifDefined } from 'lit-html/directives/if-defined.js';\nimport { property } from 'lit/decorators.js';\nimport { nanoid } from 'nanoid';\nimport { Cre8Element } from '../cre8-element';\nimport '../field-note/field-note';\nimport styles from './checkbox-field.styles.js';\n\n/**\n * Checkbox Field is the parent container for `checkbox-field-item`.\n * It is required to allow for grouping numerous checkboxes that need additional context (in the form of `<legend>`).\n * It also provides accessibility roles, aria attributes and field note messaging on the group.\n *\n * See `checkbox-field-item` for more guidance on its usage.\n *\n * @slot - The component content, which should be a set of `checkbox-field-item`s\n */\nexport class Cre8CheckboxField extends Cre8Element {\n static styles = [styles];\n\n /**\n * Checkbox container legend label\n */\n @property()\n label?: string;\n\n /**\n * Checkbox container fieldnote\n */\n @property()\n fieldNote?: string;\n\n /**\n * Checkbox container fieldnote aria describe by\n */\n @property()\n ariaDescribedBy?: string;\n\n /**\n * Checkbox container fieldnote icon name\n */\n @property()\n fieldNoteIconName?: string;\n\n /**\n * Checkbox container fieldnote knockout\n * @attr {boolean}\n */\n @property({ type: Boolean, reflect: true })\n fieldNoteKnockout?: boolean;\n\n /**\n * Checkbox container fieldnote isSuccess\n * @attr {boolean}\n */\n @property({ type: Boolean, reflect: true })\n fieldNoteIsSuccess?: boolean;\n\n /**\n * Checkbox container fieldnote isError\n * @attr {boolean}\n */\n @property({ type: Boolean, reflect: true })\n fieldNoteIsError?: boolean;\n\n connectedCallback() {\n super.connectedCallback();\n if (this.fieldNote) {\n this.ariaDescribedBy = this.ariaDescribedBy || nanoid();\n }\n }\n\n render() {\n const componentClassNames = this.componentClassNames('cre8-c-checkbox-field', {});\n\n return html`\n <fieldset class=\"${componentClassNames}\" aria-describedby=\"${ifDefined(this.ariaDescribedBy)}\">\n <legend class=\"cre8-c-checkbox-field__legend\">${this.label}</legend>\n <div class=\"cre8-c-checkbox-field__body\">\n <div class=\"cre8-c-checkbox-field__list\" role=\"list\">\n <slot></slot>\n </div>\n </div>\n ${this.fieldNote\n ? html`<cre8-field-note\n ?inverted=${this.fieldNoteKnockout}\n id=${ifDefined(this.ariaDescribedBy)}\n iconName=${ifDefined(this.fieldNoteIconName)}\n ?isSuccess=${this.fieldNoteIsSuccess}\n ?isError=${this.fieldNoteIsError}\n >\n ${this.fieldNote}\n </cre8-field-note>` : ''}\n </fieldset>\n `;\n }\n}\n\nif (customElements.get('cre8-checkbox-field') === undefined) {\n customElements.define('cre8-checkbox-field', Cre8CheckboxField);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-checkbox-field': Cre8CheckboxField;\n }\n}\n\nexport default Cre8CheckboxField;\n","import { css } from 'lit';\nconst styles = css`\n@import '../../design-tokens/core/scss/theming/component.scss';\n@import '../../design-tokens/core/scss/theming/visibility.scss';\n\n/*------------------------------------*\\\n #CHECKBOX-FIELD-ITEM\n\\*------------------------------------*/\n\n:host {\n display: inline-flex;\n flex-wrap: wrap;\n}\n\n/** \n * 1) Form field that is composed of a checkbox input, label, and an optional field note.\n */\n.cre8-c-checkbox-field-item {\n display: flex;\n position: relative;\n align-items: center;\n margin-bottom: size(1);\n min-height: size(3);\n\n /** \n * Checkbox field item within last cre8-checkbox-field-item wrapper in a fieldset\n * 1) Remove margin bottom on last item\n */\n :host(:last-child) & {\n margin-bottom: 0; /* 1 */\n }\n}\n\n/** \n * Checkbox field item input \n */\n.cre8-c-checkbox-field-item__input {\n opacity: 0;\n cursor: pointer;\n position: absolute;\n top: 0;\n left: 0;\n height: size(3);\n min-width: size(3);\n margin: 0;\n z-index: 1;\n\n /** \n * Checkbox field item input error\n */\n .cre8-c-checkbox-field-item--disabled & {\n cursor: not-allowed;\n }\n}\n\n/** \n * Checkbox field item custom checkbox container\n */\n.cre8-c-checkbox-field-item__custom-checkbox {\n display: flex;\n position: absolute;\n top: 0;\n left: 0;\n height: size(3);\n width: size(3);\n cursor: pointer;\n align-items: center;\n justify-content: center;\n border-radius: var(--cre8-border-radius-small);\n border-width: var(--cre8-border-width-default);\n border-style: var(--cre8-border-style-default);\n background-color: var(--cre8-color-bg-default);\n border-color: var(--cre8-color-border-strong);\n\n /** \n * Checkbox field item custom checkbox focus visible custom outline\n */\n .cre8-c-checkbox-field-item__input:focus-visible + & {\n @include focus;\n\n .cre8-c-checkbox-field-item--error & {\n @include focusError;\n }\n }\n\n /** \n * Checkbox field item custom checkbox within checkbox field with error\n */\n .cre8-c-checkbox-field-item--error & {\n background-color: var(--cre8-color-bg-default);\n border-color: var(--cre8-color-border-error);\n }\n\n /** \n * Checkbox field item custom checkbox within checkbox field with disabled\n */\n .cre8-c-checkbox-field-item--disabled & {\n cursor: not-allowed;\n background-color: var(--cre8-color-bg-disabled);\n border-color: var(--cre8-color-border-disabled);\n }\n}\n\n/**\n * Checkbox field item custom checkbox when item is checked\n */\n.cre8-c-checkbox-field-item__input:checked + .cre8-c-checkbox-field-item__custom-checkbox {\n background-color: var(--cre8-color-bg-brand-strong);\n\n /** \n * Checkbox field item custom checkbox when item is checked with error\n */\n .cre8-c-checkbox-field-item--error & {\n background-color: var(--cre8-color-bg-default);\n }\n\n /** \n * Checkbox field item custom checkbox when item is checked with disabled\n */\n .cre8-c-checkbox-field-item--disabled & {\n background-color: var(--cre8-color-bg-disabled);\n }\n}\n\n/** \n * Checkbox field item checkmark icon\n */\n.cre8-c-checkbox-field-item__icon {\n display: none;\n color: var(--cre8-color-content-knockout);\n\n /** \n * Checkbox field item icon within checkbox field with error\n */\n .cre8-c-checkbox-field-item--error & {\n color: var(--cre8-color-content-error);\n }\n\n /** \n * Checkbox field item icon within checkbox field disabled\n */\n .cre8-c-checkbox-field-item--disabled & {\n color: var(--cre8-color-content-disabled);\n }\n\n /**\n * Checkbox field item icon will display in the box if the input is checked\n */\n .cre8-c-checkbox-field-item__input:checked + .cre8-c-checkbox-field-item__custom-checkbox & {\n display: flex;\n }\n}\n\n/** \n * Checkbox field item input \n */\n.cre8-c-checkbox-field-item__label {\n margin-left: size(4);\n @include cre8-typography-label-small;\n}\n\n/** \n * Checkbox field item field notes\n */\n.cre8-c-checkbox-field-item__field-note,\n.cre8-c-checkbox-field-item__field-note-success,\n.cre8-c-checkbox-field-item__field-note-error {\n flex-basis: 100%;\n}`;\nexport default styles;\n","import { html, nothing, } from 'lit';\nimport { ifDefined } from 'lit-html/directives/if-defined.js';\nimport { property, query } from 'lit/decorators.js';\nimport { nanoid } from 'nanoid';\nimport '../icon/icon';\nimport '../field-note/field-note';\nimport svgCheck from '/Users/tylersmbp/Projects/cre8-web-components/packages/cre8-wc/icons/System/Regular/Check.svg?raw';\nimport styles from './checkbox-field-item.styles.js';\nimport { Cre8FormElement } from '../cre8-form-element';\n\n/**\n * Checkbox Field Item is the combination of a checkbox input, label and field note.\n * Checkboxes can turn an option on or off.\n *\n * Checkboxes should be used when the user is allowed to select one, none or multiple options\n * OR to \"opt-in\" (ex. I would like to receive the newsletter by email)\n * or as a required acknowledgement(ex. I've read the Terms and Conditions).\n * If the user can only chose one option from many, use `radio-field-item`.\n *\n * ## How to Use\n *\n * - A checkbox is independent of all other checkboxes in the list,\n * so checking one box should not uncheck the others in the group.\n * - Place checkbox options one on top of another vertically. Do not display them in a row horizontally.\n * - Avoid disabled and read-only states as much as possible.\n *\n * ## Universal Form Field Rules\n * - Unless indicated with the \"(Optional)\" label, all fields are assumed required.\n * Minimize the number of optional fields to keep forms as short as possible.\n * - Always include a label written in sentence case.\n * - Avoid using the read-only and disabled states as much as possible.\n */\nexport class Cre8CheckboxFieldItem extends Cre8FormElement {\n readonly type = 'checkbox';\n\n static styles = [styles];\n\n /**\n * The checkbox label\n */\n @property({ type: String })\n label?: string;\n\n /**\n * Changes the component's treatment to represent an error state\n * @attr {boolean}\n */\n @property({ type: Boolean, reflect: true })\n isError?: boolean;\n\n /**\n * Visually hidden text that always signifies that this is an error for screen reader usage\n * @attr {string}\n */\n @property()\n errorText: string = 'Error';\n\n /**\n * The error field note that appears below the default field note\n */\n @property()\n errorNote?: string;\n\n /**\n * Changes the component's treatment to represent a success state\n * @attr {boolean}\n */\n @property({ type: Boolean, reflect: true })\n isSuccess?: boolean;\n\n /**\n * Visually hidden text that always signifies that this is successful for screen reader usage\n */\n @property()\n successText: string = 'Success';\n\n /**\n * The success field note that appears below the default field note\n */\n @property()\n successNote?: string;\n\n /**\n * Disabled State\n * @attr {boolean}\n */\n @property({ type: Boolean, reflect: true })\n disabled?: boolean;\n\n /**\n * Checked State\n * @attr {boolean}\n */\n @property({ type: Boolean, reflect: true })\n checked?: boolean;\n\n /**\n * Checkbox FieldId\n * @attr {string}\n */\n @property()\n fieldId?: string;\n\n /**\n * Checkbox FieldNote\n */\n @property()\n fieldNote?: string;\n\n /**\n * Checkbox fieldnote ariaDescribeBy\n * @attr {string}\n */\n @property()\n ariaDescribedBy?: string;\n\n /**\n * Additional aria-describedby connection to id for additional success and error notes to be accessible\n */\n @property()\n validationAriaDescribedBy?: string;\n\n /**\n * Checkbox name\n * @attr {string}\n */\n @property()\n name?: string;\n\n /**\n * Required property\n * @attr {boolean}\n */\n @property({ type: Boolean, reflect: true })\n required?: boolean;\n\n /**\n * Checkbox fieldnote icon name\n */\n @property()\n fieldNoteIconName?: string;\n\n /**\n * Get the input element within the shadow root and set it to this.field\n */\n @query('input')\n field!: HTMLInputElement;\n\n protected override defaultValue: boolean;\n\n /**\n * Connected callback lifecycle\n * 1) Set the fieldID to a random string if not provided so form is always accessible\n * 2) If a fieldnote is added, set the aria-describedby property to the `ariaDescribedBy` property\n * or a random string to always make the form field accessible.\n * 3) Set the form internal data to set that to the default checked state.\n * 4) Set the default value of the checkbox field item to the checked property\n */\n\n connectedCallback() {\n super.connectedCallback();\n this.setFormData(); /* 3 */\n this.defaultValue = this.checked; /* 4 */\n }\n\n /**\n * access role when check-box-field-item embedded in checkbox-field\n */\n private getRole() {\n const checkboxFieldContainer = this.closest('cre8-checkbox-field');\n if (checkboxFieldContainer) {\n return 'listitem';\n }\n return '';\n }\n\n /**\n * Set form data\n * 1) If a checked property is provided, set the form value the checkbox value attribute.\n * Otherwise, don't provide a value for the checkbox data array\n */\n private setFormData() {\n return this.checked ? this.internals.setFormValue(this.value || 'on') : this.internals.setFormValue(null); /* 1 */\n }\n\n /**\n * Handle on checkbox change\n * 1) On change of the checkbox input, if `checked` is true, then set it to false and vice versa.\n */\n private _clickHandler() {\n this.checked = !this.checked; /* 2 */\n return this.checked ? this.internals.setFormValue(this.value || 'on') : this.internals.setFormValue(null);\n }\n\n /**\n * Handle On Change\n * 1. Set the value when the select is changed.\n * 2. Fire the custom event with the current value.\n */\n private _handleOnChange(e: Event) {\n /* 1 */\n const target = e.target as HTMLSelectElement;\n this.value = target.value;\n this.internals.setFormValue(this.value);\n\n /* 2 */\n const customEvent = new CustomEvent('change', {\n detail: {\n name: this.name,\n value: this.value,\n },\n bubbles: true,\n composed: true,\n });\n this.dispatchEvent(customEvent);\n }\n\n /**\n * Form reset callback\n * 1) Set checked property to the default value and then set the input's checked attribute to that default value\n * 2) Set the input's checked attribute to that default value\n * 3) Set the element internals form data when the form is reset\n * 4) Change the new value to the old value on reset\n */\n formResetCallback(): void {\n this.checked = this.defaultValue; /* 1 */\n this.field.checked = this.defaultValue; /* 2 */\n this.setFormData();\n this.requestUpdate();\n }\n\n /**\n * First update lifecycle hook\n * 1) super.firstUpdated also uses the firstUpdated from the Cre8FormElement\n */\n firstUpdated() {\n this.initializeAria(); /* 1 */\n return super.firstUpdated();\n }\n\n /**\n * Initialize aria attributes\n */\n initializeAria() {\n this.fieldId = this.fieldId || nanoid();\n if (this.fieldNote || this.slotNotEmpty('fieldNote')) {\n this.ariaDescribedBy = this.ariaDescribedBy || nanoid();\n }\n if (this.successNote || this.errorNote) {\n this.validationAriaDescribedBy = this.validationAriaDescribedBy || nanoid();\n }\n }\n\n /**\n * Aria describedby string based on field notes and error/success notes\n * 1) If both validationAriaDescribedBy (error/success note) and field note exists,\n * render both in the input's `aria-describedby` attribute\n * 2) Otherwise, if only validationAriaDescribedBy exists, then render only that as\n * the `aria-describedby` attribute (input without field note initially, but then error/success is added).\n * 3) Otherwise, render only the `ariaDescribedBy` property (field note only)\n */\n fieldNoteAria(): string {\n if (this.validationAriaDescribedBy && this.ariaDescribedBy) {\n return `${this.ariaDescribedBy} ${this.validationAriaDescribedBy}`; /* 1 */\n } if (this.validationAriaDescribedBy && !this.ariaDescribedBy) {\n return this.validationAriaDescribedBy; /* 2 */\n }\n return this.ariaDescribedBy; /* 3 */\n }\n\n /**\n * Render the success or error field notes\n * 1. If there is a successNote, then return the field note with the success message and state.\n * 2. If there is a errorNote, then return the field note with the error message and state.\n */\n renderSuccessErrorFieldNote() {\n if (this.successNote) {\n /* 1 */\n return html`<cre8-field-note\n ?isSuccess=${this.isSuccess}\n id=${this.validationAriaDescribedBy}\n class=\"cre8-c-checkbox-field-item__field-note-success\"\n iconName=\"success\"\n >\n <span class=\"cre8-u-is-vishidden\">${this.successText}</span> ${this.successNote}\n </cre8-field-note>`;\n }\n if (this.errorNote) {\n /* 2 */\n return html` <cre8-field-note\n ?isError=${this.isError}\n id=${this.validationAriaDescribedBy}\n class=\"cre8-c-checkbox-field-item__field-note-error\"\n iconName=\"error-alt\"\n >\n <span class=\"cre8-u-is-vishidden\">${this.errorText}</span> ${this.errorNote}\n </cre8-field-note>`;\n }\n return null;\n }\n\n render() {\n const componentClassNames = this.componentClassNames('cre8-c-checkbox-field-item', {\n 'cre8-c-checkbox-field-item--error': this.isError,\n 'cre8-c-checkbox-field-item--success': this.isSuccess,\n 'cre8-c-checkbox-field-item--disabled': this.disabled,\n });\n\n return html`\n <div role=${ifDefined(this.getRole())} class=\"${componentClassNames}\">\n <input class=\"cre8-c-checkbox-field-item__input\"\n type=\"checkbox\"\n @input=${this._clickHandler}\n id=${this.fieldId}\n name=${this.name}\n .value=${this.value}\n required=${ifDefined(this.required)}\n aria-invalid=${this.required ? !!this.isError : ifDefined(this.isError)}\n disabled=\"${ifDefined(this.disabled ? this.disabled : undefined)}\"\n aria-describedby=\"${ifDefined(this.fieldNoteAria())}\"\n .checked=\"${this.checked}\"\n @change=${this._handleOnChange}\n />\n <span class=\"cre8-c-checkbox-field-item__custom-checkbox\">\n <cre8-icon svg='${svgCheck}' class=\"cre8-c-checkbox-field-item__icon\" aria-label=\"checkbox\"\n aria-hidden=\"${!this.checked}\"></cre8-icon>\n </span>\n <label class=\"cre8-c-checkbox-field-item__label\" for=${this.fieldId}>${this.label}</label>\n </div>\n ${\n this.fieldNote || this.slotNotEmpty('fieldNote')\n ? html`<cre8-field-note id=${this.ariaDescribedBy} class=\"cre8-c-checkbox-field-item__field-note\"\n ><slot name=\"fieldNote\">${this.fieldNote}</slot></cre8-field-note\n >`\n : nothing\n}\n ${this.renderSuccessErrorFieldNote()}\n `;\n }\n}\n\nif (customElements.get('cre8-checkbox-field-item') === undefined) {\n customElements.define('cre8-checkbox-field-item', Cre8CheckboxFieldItem);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-checkbox-field-item': Cre8CheckboxFieldItem;\n }\n}\n\nexport default Cre8CheckboxFieldItem;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n:host {\n display: inline-flex;\n}\n:host([fullWidth]) {\n display: flex;\n\n}\n/**\n * 1) Danger Button or link that has functionality to it\n */\n\n/**\n * Primary button\n */\n.cre8-c-danger-button {\n @include cre8-typography-label-default();\n width: var(--cre8-button-width, auto);\n height: var(--cre8-button-height, auto);\n min-width: var(--cre8-button-min-width, auto);\n min-height: var(--cre8-button-min-height, auto);\n justify-content: center;\n text-align: center;\n margin-top: var( --cre8-button-margin-top, 0);\n margin-bottom: var( --cre8-button-margin-bottom, 0);\n margin-left: var( --cre8-button-margin-left, 0);\n margin-right: var( --cre8-button-margin-right, 0);\n display: inline-flex;\n align-items: center;\n border-width: var(--cre8-border-width-button-default);\n box-shadow: var(--cre8-shadow-button);\n padding-top: var(--cre8-button-padding-vertical-medium);\n padding-right: var(--cre8-button-padding-horizontal-medium);\n padding-bottom: var(--cre8-button-padding-vertical-medium);\n padding-left: var(--cre8-button-padding-horizontal-medium);\n margin: 0;\n cursor: pointer;\n border-style: var(--cre8-border-style-default);\n transition: revert;\n transform: revert;\n white-space: nowrap;\n &:hover,\n &:focus,\n &:active,\n &:focus-visible {\n border-style: var(--cre8-border-style-default);\n box-shadow: none;\n transform: revert;\n transition: revert;\n }\n &.cre8-c-danger-button--primary {\n background: var(--cre8-color-button-primary-danger-bg);\n border-width: var(--cre8-border-width-button-default);\n border-color: var(--cre8-color-button-primary-danger-border);\n border-radius: var(--cre8-border-radius-button);\n box-shadow: var(--cre8-shadow-button);\n color: var(--cre8-color-button-primary-danger-content);\n --cre8-icon-fill: var(--cre8-color-button-primary-danger-content);\n &:hover,\n &:focus {\n box-shadow: none;\n --cre8-icon-fill: var(--cre8-color-button-primary-danger-content-hover);\n color: var(--cre8-color-button-primary-danger-content-hover);\n border-color: var(--cre8-color-button-primary-danger-border-hover);\n background: var(--cre8-color-button-primary-danger-bg-hover);\n text-decoration: none;\n &:focus {\n @includefocus();\n }\n }\n &:active,\n &.cre8-c-danger-button--loading {\n box-shadow: none;\n color: var(--cre8-color-button-primary-danger-content-active);\n --cre8-icon-fill: var(--cre8-color-button-primary-danger-content-active);\n border-color: var(--cre8-color-button-primary-danger-border-active);\n background-color: var(--cre8-color-button-primary-danger-bg-active);\n }\n &:focus-visible{\n @includefocus();\n }\n &.cre8-c-danger-button--loading{\n cursor: not-allowed;\n }\n/**\n * Disabled primary and secondary button\n */\n &:disabled {\n box-shadow: none;\n background-color: var(--cre8-color-button-primary-danger-bg-disabled);\n border-color: var(--cre8-color-button-primary-danger-border-disabled);\n color: var(--cre8-color-button-primary-danger-content-disabled);\n --cre8-icon-fill: var(--cre8-color-button-primary-danger-content-disabled);\n cursor: not-allowed;\n outline: none;\n &:hover,\n &:focus,\n &:active,\n &:focus-visible {\n outline: none;\n background-color: var(--cre8-color-button-primary-danger-bg-disabled);\n border-color: var(--cre8-color-button-primary-danger-border-disabled);\n color: var(--cre8-color-button-primary-danger-content-disabled);\n --cre8-icon-fill: var(--cre8-color-button-primary-danger-content-disabled);\n }\n }\n\n &.cre8-c-danger-button--inverted {\n background-color: var(--cre8-color-button-primary-danger-inverse-bg);\n border-color: var(--cre8-color-button-primary-danger-inverse-border);\n color: var(--cre8-color-button-primary-danger-inverse-content);\n \n &:hover,\n &:focus {\n background-color: var(--cre8-color-button-primary-danger-inverse-bg-hover);\n border-color: var(--cre8-color-button-primary-danger-inverse-border-hover);\n color: var(--cre8-color-button-primary-danger-inverse-content-hover);\n }\n\n &:focus {\n outline-color: var(--cre8-color-button-primary-danger-inverse-outline);\n }\n\n &:active {\n background-color: var(--cre8-color-button-primary-danger-inverse-bg-active);\n border-color: var(--cre8-color-button-primary-danger-inverse-border-active);\n color: var(--cre8-color-button-primary-danger-inverse-content-active);\n \n &.cre8-c-danger-button--loading {\n --cre8-icon-fill: var(--cre8-color-button-primary-danger-content-active);\n }\n }\n\n &:disabled { \n outline: none;\n cursor: not-allowed;\n background-color: var(--cre8-color-button-primary-danger-inverse-bg-disabled);\n border-color: var(--cre8-color-button-primary-danger-inverse-border-disabled);\n color: var(--cre8-color-button-primary-danger-inverse-content-disabled);\n }\n }\n}\n\n/**\n * Secondary button\n * The icon button shares the styles of the standard secondary button\n */\n &.cre8-c-danger-button--secondary {\n background-color: var(--cre8-color-button-secondary-danger-bg);\n border-color: var(--cre8-color-button-secondary-danger-border);\n color: var(--cre8-color-button-secondary-danger-content);\n --cre8-icon-fill: var(--cre8-color-button-secondary-danger-content);\n border-radius: var(--cre8-border-radius-button);\n border-width: var(--cre8-border-width-button-default);\n\n &:hover,\n &:focus {\n background-color: var(--cre8-color-button-secondary-danger-bg-hover);\n border-color: var(--cre8-color-button-secondary-danger-border-hover);\n color: var(--cre8-color-button-secondary-danger-content-hover);\n --cre8-icon-fill: var(--cre8-color-button-secondary-danger-content-hover);\n &:focus {\n @include focus;\n }\n }\n &:active,\n &.cre8-c-danger-button--loading {\n transition: none;\n transform: none;\n background-color: var(--cre8-color-button-secondary-danger-bg-active);\n border-color: var(--cre8-color-button-secondary-danger-border-active);\n color: var(--cre8-color-button-secondary-danger-content-active);\n --cre8-icon-fill: var(--cre8-color-button-secondary-danger-content-active);\n }\n &:focus-visible {\n @include focus;\n }\n &.cre8-c-danger-button--loading {\n cursor: not-allowed;\n }\n\n &:disabled {\n box-shadow: none;\n background-color: var(--cre8-color-button-secondary-danger-bg-disabled);\n border-color: var(--cre8-color-button-secondary-danger-border-disabled);\n color: var(--cre8-color-button-secondary-danger-content-disabled);\n --cre8-icon-fill: var(--cre8-color-button-secondary-danger-content-disabled);\n outline: none;\n border-radius: var(--cre8-border-radius-button);\n border-width: var(--cre8-border-width-button-default);\n cursor: not-allowed;\n &:hover,\n &:focus,\n &:active,\n &:focus-visible {\n outline: none;\n background-color: var(--cre8-color-button-secondary-danger-bg-disabled);\n border-color: var(--cre8-color-button-secondary-danger-border-disabled);\n color: var(--cre8-color-button-secondary-danger-content-disabled);\n --cre8-icon-fill: var(--cre8-color-button-secondary-danger-content-disabled);\n }\n }\n\n &.cre8-c-danger-button--inverted {\n background-color: var(--cre8-color-button-secondary-danger-inverse-bg);\n border-color: var(--cre8-color-button-secondary-danger-inverse-border);\n color: var(--cre8-color-button-secondary-danger-inverse-content);\n \n &:hover,\n &:focus {\n background-color: var(--cre8-color-button-secondary-danger-inverse-bg-hover);\n border-color: var(--cre8-color-button-secondary-danger-inverse-border-hover);\n color: var(--cre8-color-button-secondary-danger-inverse-content-hover);\n }\n\n &:focus {\n outline-color: var(--cre8-color-button-secondary-danger-inverse-outline);\n }\n\n &:active {\n background-color: var(--cre8-color-button-secondary-danger-inverse-bg-active);\n border-color: var(--cre8-color-button-secondary-danger-inverse-border-active);\n color: var(--cre8-color-button-secondary-danger-inverse-content-active);\n \n &.cre8-c-danger-button--loading {\n --cre8-icon-fill: var(--cre8-color-button-secondary-danger-content-active);\n }\n }\n\n &:disabled { \n outline: none;\n cursor: not-allowed;\n background-color: var(--cre8-color-button-secondary-danger-inverse-bg-disabled);\n border-color: var(--cre8-color-button-secondary-danger-inverse-border-disabled);\n color: var(--cre8-color-button-secondary-danger-inverse-content-disabled);\n }\n }\n}\n\n /**\n * Tertiary button\n */\n &.cre8-c-danger-button--tertiary {\n border-radius: var(--cre8-border-radius-button);\n background-color: var(--cre8-color-button-tertiary-danger-bg);\n border-width: var(--cre8-border-width-button-default);\n border-color: var(--cre8-color-button-tertiary-danger-border);\n color: var(--cre8-color-button-tertiary-danger-content);\n --cre8-icon-fill: var(--cre8-color-button-tertiary-danger-content);\n box-shadow: none;\n &:hover,\n &:focus {\n border-radius: var(--cre8-border-radius-button);\n background-color: var(--cre8-color-button-tertiary-danger-bg-hover);\n border-width: var(--cre8-border-width-button-default, --cre8-border-width-none);\n border-color: var(--cre8-color-button-tertiary-danger-border-hover);\n color: var(--cre8-color-button-tertiary-danger-content-hover);\n --cre8-icon-fill: var(--cre8-color-button-tertiary-danger-content-hover);\n &:focus {\n @include focusTertiary();\n }\n }\n &:active,\n &.cre8-c-danger-button--loading {\n border-radius: var(--cre8-border-radius-button);\n background-color: var(--cre8-color-button-tertiary-danger-bg-active);\n border-color: var(--cre8-color-button-tertiary-danger-border-active);\n border-width: var(--cre8-border-width-button-default);\n color: var(--cre8-color-button-tertiary-danger-content-active);\n --cre8-icon-fill: var(--cre8-color-button-tertiary-danger-content-active);\n }\n &:focus-visible {\n @include focusTertiary();\n }\n &.cre8-c-danger-button--loading {\n cursor: not-allowed;\n }\n &:disabled {\n background-color: var(--cre8-color-button-tertiary-danger-bg-disabled);\n border-color: transparent;\n color: var(--cre8-color-button-tertiary-danger-content-disabled);\n --cre8-icon-fill: var(--cre8-color-button-tertiary-danger-content-disabled);\n outline: none;\n box-shadow: none;\n cursor: not-allowed;\n\n &:hover,\n &:focus {\n outline: none;\n box-shadow: none;\n background-color: var(--cre8-color-button-tertiary-danger-bg-disabled);\n color: var(--cre8-color-button-tertiary-danger-content-disabled);\n --cre8-icon-fill: var(--cre8-color-button-tertiary-danger-content-disabled);\n }\n &:active,\n &:focus-visible {\n outline: none;\n box-shadow: none;\n background-color: var(--cre8-color-button-tertiary-danger-bg-disabled);\n color: var(--cre8-color-button-tertiary-danger-content-disabled);\n --cre8-icon-fill: var(--cre8-color-button-tertiary-danger-content-disabled);\n }\n }\n\n &.cre8-c-danger-button--inverted {\n background-color: var(--cre8-color-button-tertiary-danger-inverse-bg);\n border-color: var(--cre8-color-button-tertiary-danger-inverse-border);\n color: var(--cre8-color-button-tertiary-danger-inverse-content);\n \n &:hover,\n &:focus {\n background-color: var(--cre8-color-button-tertiary-danger-inverse-bg-hover);\n border-color: var(--cre8-color-button-tertiary-danger-inverse-border-hover);\n color: var(--cre8-color-button-tertiary-danger-inverse-content-hover);\n }\n\n &:focus {\n outline-color: var(--cre8-color-button-tertiary-danger-inverse-outline);\n }\n\n &:active {\n background-color: var(--cre8-color-button-tertiary-danger-inverse-bg-active);\n border-color: var(--cre8-color-button-tertiary-danger-inverse-border-active);\n color: var(--cre8-color-button-tertiary-danger-inverse-content-active);\n \n &.cre8-c-danger-button--loading {\n --cre8-icon-fill: var(--cre8-color-button-tertiary-danger-content-active);\n }\n }\n\n &:disabled { \n outline: none;\n cursor: not-allowed;\n background-color: var(--cre8-color-button-tertiary-danger-inverse-bg-disabled);\n border-color: var(--cre8-color-button-tertiary-danger-inverse-border-disabled);\n color: var(--cre8-color-button-tertiary-danger-inverse-content-disabled);\n }\n }\n}\n\n &.cre8-c-danger-button.cre8-c-danger-button--secondary.cre8-c-danger-button--split-button-text {\n border-radius: var(--cre8-border-radius-button) var(--cre8-border-radius-none) var(--cre8-border-radius-none) var(--cre8-border-radius-button);\n border-color: var(--cre8-color-button-secondary-danger-border);\n border-width: var(--cre8-border-width-button-default);\n color: var(--cre8-color-button-secondary-danger-content);\n &:active,\n &:focus-visible {\n outline: none;\n }\n &.cre8-c-danger-button--lg {\n padding: var(--cre8-button-padding-vertical-large) var(--cre8-button-padding-horizontal-large);\n }\n &.cre8-c-danger-button--sm {\n padding: var(--cre8-button-padding-vertical-small) var(--cre8-button-padding-horizontal-small);\n }\n }\n\n &.cre8-c-danger-button.cre8-c-danger-button--icon-only.cre8-c-danger-button--split-button-caret {\n padding: var(--cre8-button-padding-vertical-medium);\n border-radius: var(--cre8-border-radius-none) var(--cre8-border-radius-button) var(--cre8-border-radius-button) var(--cre8-border-radius-none);\n height: 100%;\n border-left: none !important ;\n border-collapse: collapse;\n background: var(--cre8-color-button-secondary-danger-bg);\n border-color: var(--cre8-color-button-secondary-danger-border);\n border-width: var(--cre8-border-width-button-default);\n color: var(--cre8-color-button-secondary-danger-content);\n --cre8-icon-fill: var(--cre8-color-button-secondary-danger-content);\n\n &:hover,\n &:focus {\n background: var(--cre8-color-button-secondary-danger-bg-hover);\n border-color: var(--cre8-color-button-secondary-danger-border-hover);\n --cre8-icon-fill: var(--cre8-color-button-secondary-danger-content-hover);\n outline: none;\n border-left: none;\n border-collapse: collapse;\n }\n &:active,\n &:focus-visible {\n background: var(--cre8-color-button-secondary-danger-bg-active);\n border-color: var(--cre8-color-button-secondary-danger-border-active);\n --cre8-icon-fill: var(--cre8-color-button-secondary-danger-content-active);\n outline: none;\n border-left: none;\n border-collapse: collapse;\n }\n }\n}\n.cre8-c-danger-button--lg {\n padding: var(--cre8-button-padding-vertical-large);\n}\n.cre8-c-danger-button--sm {\n padding: var(--cre8-button-padding-vertical-small);\n}\n\n.cre8-c-danger-button--icon-only {\n padding: var(--cre8-button-padding-vertical-small);\n color: var(--cre8-icon-fill, currentColor);\n}\n\n/**\n * Full-width button\n */\n.cre8-c-danger-button--full-width {\n width: 100%;\n display: flex;\n}\n\n/**\n * Small button\n */\n.cre8-c-danger-button--sm {\n @include cre8-typography-label-small();\n padding-top: var(--cre8-button-padding-vertical-small);\n padding-right: var(--cre8-button-padding-horizontal-small);\n padding-bottom: var(--cre8-button-padding-vertical-small);\n padding-left: var(--cre8-button-padding-horizontal-small);\n}\n\n/**\n * Large button\n */\n.cre8-c-danger-button--lg {\n @include cre8-typography-label-large();\n padding-top: var(--cre8-button-padding-vertical-large);\n padding-right: var(--cre8-button-padding-horizontal-large);\n padding-bottom: var(--cre8-button-padding-vertical-large);\n padding-left: var(--cre8-button-padding-horizontal-large);\n}\n\n/**\n * Icon within small button\n */\n.cre8-c-danger-button--sm cre8-icon {\n --cre8-icon-height: var(--cre8-icon-size-small);\n --cre8-icon-width: var(--cre8-icon-size-small);\n\n /**\n * Button text directly after button icon within small button\n */\n}\n\n/**\n * Icon within large button\n */\n.cre8-c-danger-button--lg cre8-icon {\n --cre8-icon-height: var(--cre8-icon-size-large);\n --cre8-icon-width: var(--cre8-icon-size-large);\n}\n\n::slotted(*) {\n margin-right: 0;\n}\n/**\n * Button icon directly before button text\n */\n\ncre8-icon + .cre8-c-danger-button__text:not(.cre8-u-is-vishidden) {\n margin-left: size(1);\n display: inline-flex;\n}\n\n/**\n * Button icon directly after button text\n */\n.cre8-c-danger-button__text:not(.cre8-u-is-vishidden) + cre8-icon {\n margin-left: size(1);\n display: inline-flex;\n}\n/**\n * Button icon only\n */\n.cre8-c-danger-button:has(.cre8-c-danger-button__text.cre8-u-is-vishidden) + cre8-icon {\n border-radius: var(--cre8-border-radius-button);\n}\n.cre8-c-danger-button__text.cre8-u-is-vishidden + cre8-icon {\n margin-left: 0px;\n margin-right: 0px;\n display: flex;\n}\n.cre8-c-danger-button__text.cre8-u-is-vishidden {\n @include visuallyHidden();\n}\n\n.cre8-c-danger-button--primary.cre8-c-danger-button--loading {\n --cre8-icon-fill: var(--cre8-color-content-knockout);\n}\n.cre8-c-danger-button--secondary.cre8-c-danger-button--loading,\n.cre8-c-danger-button--tertiary.cre8-c-danger-button--loading {\n --cre8-icon-fill: var(--cre8-color-button-secondary-danger-content-active);\n}\n\n/**\n * Aria live span\n */\n.cre8-u-is-vishidden {\n --cre8-icon-height: 0px;\n --cre8-icon-width: 0px;\n max-width: fit-content;\n min-width: 0px;\n width: auto;\n height: auto;\n max-height: fit-content;\n min-width: 0px;\n\n @include visuallyHidden;\n}\n\ncre8-icon.cre8-u-is-vishidden {\n @include visuallyHidden;\n}\n\ncre8-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\nspan.cre8-c-danger-button__icon {\n margin-left: size(1);\n max-width: fit-content;\n min-width: 0px;\n width: auto;\n height: auto;\n max-height: fit-content;\n min-width: 0px;\n}\n`;\nexport default styles;\n","import classnames from 'classnames';\nimport { html, nothing } from 'lit';\nimport { ifDefined } from 'lit-html/directives/if-defined.js';\nimport '../icon/icon';\nimport '../loading-spinner/loading-spinner';\nimport { property, query } from 'lit/decorators.js';\nimport styles from './danger-button.styles.js';\nimport { Cre8FormElement } from '../cre8-form-element';\n\n/**\n * The size and state of buttons on the screen serve as visual cues for the user\n * about what they can do and what they should do next.\n * They indicate the availability and priority of the action on the page.\n *\n * - Buttons are a single call-to-action where a single click performs that action\n * - Use Danger Buttons when you are performing an action that is potentially dangerous,\n * such as permanently deleting information\n * - Use a link instead of a button when you're navigating to another place\n *\n * ## How to Use\n *\n * Danger Buttons are distinguished by three key properties:\n *\n * - **Visual Priority**: Style and size: Primary, Secondary, or Tertiary styles;\n * each with large and small variations\n * - **State**: Interaction state: hover/click (press), focus, disabled,\n * and submitting/loading (only for large buttons)\n * - **Brand**: Styles determined by the site or component theme\n *\n * ### Usage Guidelines\n *\n * Primary, Secondary and Tertiary styles emphasize or de-emphasize an action. They also define\n * background, font style, and border colors. Large and small sizing assists with visual priority by defining button\n * heights, left and right internal padding, and font-size.\n *\n * #### System Feedback\n * Each button has a default and hover/click (press) state that give the user feedback\n * that they have successfully interacted with a button.\n * Button presses should always be combined with other types of timely system feedback.\n * Examples of system feedback may be a page refresh, exposing additional controls or content,\n * dialogs, alerts and notifications.\n * If there is perceived a delay in system response, generally due to technical constraints,\n * provide a progress or loading indicator.\n *\n * #### Button Text\n *\n * - Button text should be as short and simple as possible, ideally a maximum of 3 words.\n * - Use Title Case for readability.\n * - They should not include punctuation (exception: \"Loading...\").\n * - They should not be used as an indicator of what happens on the next page, or as a substitute\n * for a progress meter.\n *\n * #### Button Styling\n *\n * - DO use only the styles of the brand you are working on.\n * - DO NOT combine styles, even if the page is co-branded.\n *\n * #### Button Sizes\n * - DO always pair like sizes together and maintain the hierarchy of Primary and Secondary/Tertiary.\n * - DO NOT mix sizes of buttons when they are used together as a group.\n *\n * #### Input Pairing\n *\n * Primary and Secondary buttons may be paired with input fields.\n * Only one Primary button may appear on each screen.\n * Use the Secondary button when there are multiple in-context buttons\n * and/or when there is an emphasized page level button.\n * When used in a form context, the button's `type` needs to be `submit` to pass along form data.\n *\n * - DO use only large buttons with input fields.\n * - DO NOT use small buttons with input fields.\n *\n */\n\nexport class Cre8DangerButton extends Cre8FormElement {\n static styles = [styles];\n\n /**\n *\n * The button text. Should be as short and simple as possible, ideally a maximum of 3 words.\n * - Use Title Case for readability.\n * - Should not include punctuation (exception: \"Loading...\").\n * - Should not be used as an indicator of what happens on the next page, or as a substitute for a progress meter.\n */\n @property()\n text? = 'Button';\n\n /**\n * Style variant\n * - **primary** renders the button used for primary actions. Presents highest visual priority.\n * When grouped with other buttons, only one primary is allowed\n * - **secondary** renders a secondary button. Presents a lower visual priority\n * - **tertiary** renders a tertiary button. Presents the lowest visual priority.\n * Should be used in limited amounts - consider if a link (`<a>`) would be more appropriate\n */\n @property({ type: String })\n variant?: 'primary' | 'secondary' | 'tertiary' = 'primary';\n\n /**\n * Disabled attribute\n * @attr {boolean}\n *\n * **NOTE**: Disabled states are used to indicate that an action is temporarily unavailable.\n * In general, using disabled states is NOT advised. It should be clear to the user what actions they must\n * take to activate the button. Real-time, field-level validation can help provide clarity.\n */\n @property({ type: Boolean, reflect: true })\n disabled?: boolean;\n\n /**\n *\n * Provide this property if you intend to use button styles for an anchor tag (`<a>`).\n * This changes the component markup from `<button>` usage to `<a>` instead.\n */\n @property()\n href?: string;\n\n /**\n * Target attribute for a link if providing `href` to style a link as a button\n * - **_blank** yields a link that opens in a new tab\n * - **_self** yields a link that loads the URL into the same browsing context as the current one.\n * This is the default behavior\n * - **_parent** yields a link that loads the URL into the parent browsing context of the current one.\n * If there is no parent, this behaves the same way as _self\n * - **_top** yields a link that loads the URL into the top-level browsing context.\n * If there is no parent, this behaves the same way as _self.\n */\n @property()\n target?: '_blank' | '_self' | '_parent' | '_top';\n\n /**\n * Type of button.\n * - **button** (default) button has no default behavior and does nothing unless provided some sort\n * of client-side trigger\n * - **submit** button for submitting form data to a server\n */\n @property()\n type: 'button' | 'submit' | 'reset' = 'button';\n\n /**\n * Rel if this is an <a> element - this swaps <button> for <a>\n */\n @property()\n rel?: string;\n\n /**\n * SVG raw string if including an icon within a button.\n * Must include the icon's position with `iconPostion`. This prop is used for <cre8-icon>\n */\n @property()\n svg?: string;\n\n /**\n * rotate is used for <cre8-icon> to set the arrow in the correct direction\n */\n @property({ type: Number })\n iconRotateDegree?: number = 0;\n\n /**\n * flip is used for <cre8-icon> to set the icon in the correct direction\n */\n @property()\n iconFlipDirection?: string;\n\n /**\n * Icon position. Must include the name of the icon with `iconName`\n *\n * - **before** places the icon before the button text\n * - **after** places the icon after the button text\n */\n @property()\n iconPosition?: 'before' | 'after' = undefined;\n\n /**\n * Size variants add another way to increase or decrease visual priority of a button.\n * - **sm** shrinks the button typography and overall size from the default. Use when vertical space is constrained.\n * - **lg** increases the button typography and overall size from the default.\n */\n @property()\n size?: 'sm' | 'lg';\n\n /**\n * Visually hide button text. Text is still accessible to assistive technology.\n * Use this for icon-only buttons for accessibility\n */\n @property({ type: Boolean, reflect: true })\n hideText?: boolean;\n\n /**\n * Full width button\n * @attr {boolean}\n *\n */\n @property({ type: Boolean, reflect: true })\n fullWidth?: boolean;\n\n /**\n * * Changes styling to an active state with a spinning icon.\n * * Adds accessibility treatment by:\n * * announcing via voiceover when the loading success/error state via a aria-live region\n * * setting `aria-disabled`\n * * Disables click events / form submitting while allowing focus (for accessibility)\n * @attr {boolean}\n *\n */\n @property({ type: Boolean, reflect: true })\n loading?: boolean;\n\n /**\n * * Variant of the loading button that:\n * * Removes loading spinner\n * * Informs the SR user that the loading status is now complete, with visually hidden text in the live area\n * @attr {boolean}\n *\n */\n @property({ type: Boolean, reflect: true })\n loadingComplete?: boolean;\n\n /**\n * Inverted colors Danger Button (onDark)\n */\n @property({ type: Boolean })\n inverted?: boolean;\n\n /**\n * Controls whether your loading status update to voiceover users will occur\n * immediately (used for more urgently needed updates) using `assertive` or at the next convenient\n * pause in their navigation using `polite`.\n */\n @property()\n ariaLive: 'polite' | 'assertive' = 'assertive';\n\n /**\n * Button aria expanded attribute\n */\n @property({ type: Boolean, reflect: true })\n buttonAriaExpanded?: boolean;\n\n @query('button')\n field!: HTMLButtonElement;\n\n formSubmit() {\n const form = this.internals.form;\n if (form) {\n form.requestSubmit();\n }\n }\n\n formReset() {\n const form = this.internals.form;\n if (form) {\n form.reset();\n }\n }\n\n private renderDangerButtonLink(componentClassName: string) {\n return html`\n <a\n href=\"${ifDefined(this.href)}\"\n class=\"${componentClassName}\"\n rel=\"${ifDefined(this.rel)}\"\n target=\"${ifDefined(this.target)}\"\n >\n ${this.iconPosition === 'before'\n ? html`<cre8-icon width=\"16\" height=\"16\" aria-hidden=\"true\" svg=\"${ifDefined(this.svg)}\">\n </cre8-icon>`\n : nothing}\n <span\n class=\"${this.hideText ? 'cre8-u-is-vishidden cre8-c-danger-button__text' : 'cre8-c-danger-button__text'}\"\n >\n ${this.text}\n </span>\n ${this.iconPosition === 'after'\n ? html`<cre8-icon width=\"16\" height=\"16\" aria-hidden=\"true\" svg=\"${ifDefined(this.svg)}\">\n </cre8-icon> `\n : nothing}\n </a>\n `;\n }\n\n private renderDangerButtonIconography() {\n return html`\n <cre8-icon width=\"16\" height=\"16\" aria-hidden=\"true\" svg=\"${this.svg}\"></cre8-icon>\n `;\n }\n\n private renderDangerButtonLoading() {\n return html`\n <span class=\"cre8-c-danger-button__icon\" aria-live=\"${this.ariaLive}\" role=\"alert\">\n <span class=\"cre8-u-is-vishidden\">${this.loadingComplete ? 'Loading Complete' : 'Loading'}</span>\n ${!this.loadingComplete\n ? html`\n <cre8-loading-spinner\n class=\"cre8-c-danger-button__loading-icon\"\n inverted size=\"small\"\n aria-hidden=\"true\"\n ></cre8-loading-spinner>`\n : nothing}\n </span>`;\n }\n\n render() {\n const componentClassName = classnames('cre8-c-danger-button', {\n 'cre8-c-danger-button--primary': this.variant === 'primary',\n 'cre8-c-danger-button--secondary': this.variant === 'secondary',\n 'cre8-c-danger-button--tertiary': this.variant === 'tertiary',\n 'cre8-c-danger-button--full-width': this.fullWidth === true,\n 'cre8-c-danger-button--sm': this.size === 'sm',\n 'cre8-c-danger-button--lg': this.size === 'lg',\n 'cre8-c-danger-button--icon-only': this.hideText,\n 'cre8-c-danger-button--loading': this.loading,\n 'cre8-c-danger-button--inverted': this.inverted,\n });\n\n if (this.hideText) {\n this.iconPosition = 'after';\n }\n\n if (this.href) {\n return html`${this.renderDangerButtonLink(componentClassName)}`;\n }\n\n return html`\n <button\n class=\"${componentClassName}\"\n part=\"button\"\n aria-disabled=${ifDefined(this.loading)}\n ?disabled=${this.disabled}\n @click=\"${this._buttonClick}\"\n aria-expanded=${ifDefined(this.buttonAriaExpanded)}\n type=${this.type}\n >\n ${this.iconPosition === 'before' && this.svg\n ? this.renderDangerButtonIconography() : nothing\n}\n <span\n class=\"${this.hideText ? 'cre8-u-is-vishidden cre8-c-danger-button__text' : 'cre8-c-danger-button__text'}\"\n >\n ${this.text}\n </span>\n ${this.iconPosition === 'after' && this.svg\n ? this.renderDangerButtonIconography() : nothing\n}\n ${this.loading || this.loadingComplete\n ? this.renderDangerButtonLoading() : nothing\n}\n </button>`;\n }\n\n public _buttonClick(e: MouseEvent | KeyboardEvent) {\n if (this.loading) {\n e.stopPropagation();\n } else {\n switch (this.type) {\n case 'submit':\n this.formSubmit();\n break;\n case 'reset':\n this.formReset();\n break;\n // no default\n }\n }\n }\n}\n\nif (customElements.get('cre8-danger-button') === undefined) {\n customElements.define('cre8-danger-button', Cre8DangerButton);\n}\n\ndeclare global { interface HTMLElementTagNameMap { 'cre8-danger-button': Cre8DangerButton; } }\n\nexport default Cre8DangerButton;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n@import '../../design-tokens/core/scss/theming/component';\n@import \"design-tokens/core/scss/utilities/visibility\";\n\n:host {\n display: block;\n}\n\n/** \n * Date Field Label \n */\n.cre8-c-date-picker__label {\n @include label-styles;\n}\n\n/** \n * Date Field Body\n * 1) The div that contains the input and icons \n */\n.cre8-c-date-picker__body {\n position: relative;\n display: flex;\n align-items: center;\n}\n\n/** \n * Date Field Default Calendar Icon Button\n * 1) Removes default calendar button and default calendar in Chrome\n */\ninput::-webkit-calendar-picker-indicator {\n display: none;\n}\n\ninput[type=\"date\"]::-webkit-input-placeholder {\n visibility: hidden !important;\n}\n\n.cre8-c-date-picker__calendar-icon-button {\n position: absolute;\n right: size(1);\n background: var(--cre8-color-bg-default);\n border: none;\n border-radius: 0;\n\n --cre8-icon-height: size(3);\n --cre8-icon-width: size(3); \n\n .cre8-c-date-picker--disabled &, .cre8-c-date-picker--read-only & {\n background: var(--cre8-color-bg-disabled);\n }\n}\n\n/** \n * Date Field Input \n * 1) The html5 input element\n */\n.cre8-c-date-picker__input {\n @include input-styles;\n\n /**\n * Readonly input styles\n */\n &:read-only {\n background-color: var(--cre8-color-bg-disabled);\n border-color: var(--cre8-color-border-disabled);\n cursor: default;\n }\n}\n`;\nexport default styles;\n","import { css } from 'lit';\nconst styles = css`\n@import '../../design-tokens/core/scss/theming/component';\n\n:host{\n display: block;\n}\n\n/** \n * Field Label \n */ \n.cre8-c-field__label {\n @include label-styles();\n}\n\n/** \n * Field Body\n * 1) The div that contains the input and icons \n */ \n.cre8-c-field__body {\n position: relative;\n}\n\n/** \n * Field Input \n * 1) The html5 input element\n */ \n.cre8-c-field__input {\n @include input-styles();\n \n /**\n * Readonly input styles\n */\n &:read-only {\n background-color: var(--cre8-color-bg-disabled);\n border-color: var(--cre8-color-border-disabled);\n cursor: default;\n }\n}\n`;\nexport default styles;\n","import { html, nothing, } from 'lit';\nimport { ifDefined } from 'lit-html/directives/if-defined.js';\nimport { property, query } from 'lit/decorators.js';\nimport { nanoid } from 'nanoid';\nimport { Cre8FormElement } from '../cre8-form-element';\nimport '../field-note/field-note';\nimport styles from './field.styles.js';\n\n/**\n * The Field component renders a form group with label, control, help text and validation styling. There are\n * convenience variants of Field to support HTML5 input types and static content.\n */\nexport class Cre8Field extends Cre8FormElement {\n static styles = [styles];\n \n\n /**\n * Autocomplete attribute that allows input to expect certain types of information. Note: autocomplete is supported\n * by most browsers, but the suggested 'completions' are also sourced from those browsers. Values come\n * from past user stored data from past interactions in that browser, such as:\n *\n * 1. From past values entered by the user, but they may also come from pre-configured values. For\n * instance, a browser might let the user save their name, address, phone number, and email addresses for\n * autocomplete purposes.\n *\n * 2. Perhaps the browser offers the ability to save encrypted credit card information, for autocompletion\n * following a an authentication procedure.\n * See: [MDN web docs_](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete)\n *\n * NOTE:: In order to provide autocompletion, user-agents might require input, select, textarea\n * elements to:\n *\n * 1. Have a {{name}} and/or {{id}} attribute\n * 2. Be descendants of a form element\n * 3. The form to have a [submit button](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/submit)\n *\n * @attr {string}\n */\n @property()\n autocomplete?: 'on' | 'off' | 'name' | 'email' | 'username' | 'new-password' | 'current-password' | 'tel' | 'url' | 'address-line1' | 'address-line2' | 'country' | 'postal-code';\n\n /**\n * Pattern attribute defines a regular expression to validate against input\n *\n * @attr {string}\n */\n @property()\n pattern?: string;\n\n /**\n * Type variants\n * - **text** renders a standard text input\n * - **email** renders a text input for an email format\n * - **number** renders an input for number values only\n * - **url** renders an input for urls only\n * - **tel** renders an input for telephone number values only\n *\n * @attr {string}\n */\n @property()\n type: 'text' | 'email' | 'number' | 'url' | 'tel' | 'password' | 'date' = 'text';\n\n /**\n * The placeholder text that appears inside the input\n *\n * @attr {string}\n */\n @property()\n placeholder?: string;\n\n /**\n * The required label that appears above the input\n *\n * @attr {string}\n */\n @property()\n label: string = 'Label';\n\n /**\n * The name property on the input\n *\n * @attr {string}\n */\n @property()\n name?: string;\n\n /**\n * The unique id of the field\n * <br/><br/> _*This property is dynamically set_\n *\n * @attr {string}\n */\n @property()\n fieldId?: string;\n\n /**\n * The text that displays below in text field input\n *\n * @attr {string}\n */\n @property()\n fieldNote?: string;\n\n /**\n * Controls how the voiceover will experience the new information when field note changes,\n * immediately (used for more urgently needed updates) using `assertive` or at the next convenient\n * pause in their navigation using `polite`.\n */\n @property()\n ariaLive: 'polite' | 'assertive' = 'polite';\n\n /**\n * Used to connect the field note in text field to the text menu for accessibility\n *\n * @attr {string}\n */\n @property()\n ariaDescribedBy?: string;\n\n /**\n * The required attribute on the input\n *\n * @attr {boolean}\n */\n @property({ type: Boolean, reflect: true })\n required?: boolean;\n\n /**\n * The disabled attribute on the input\n *\n * @attr {boolean}\n */\n @property({ type: Boolean, reflect: true })\n disabled?: boolean;\n\n /**\n * Changes the component's treatment to represent an error state\n *\n * @attr {boolean}\n */\n @property({ type: Boolean, reflect: true })\n isError?: boolean;\n\n /**\n * Visually hidden text that always signifies that this is an error for screen reader usage\n *\n * @attr {string}\n */\n @property()\n errorText: string = 'Error';\n\n /**\n * The error field note that appears below the default field note\n *\n * @attr {string}\n */\n @property()\n errorNote?: string;\n\n /**\n * The max attribute defines the maximum value that is acceptable and valid for the input containing the attribute.\n * @attr {string | number}\n */\n @property()\n max?: string;\n\n /**\n * The min attribute defines the minimum value that is acceptable and valid for the input containing the attribute.\n * @attr {string | number}\n */\n @property()\n min?: string;\n\n /**\n * The maxlength is an integer above 0 that indicates the maximum allowed characters to be entered. When using the\n * maxlength prop, you must also use the \"required\" prop to provide Constraint Validation on the input field.\n * This allows users to know why the input they attempted didn't render in the input field. see\n * [MDN maxlength](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/maxlength#constraint_validation)\n *\n * @attr {string}\n */\n @property({ type: Number })\n maxlength?: number;\n\n /**\n * Additional aria-describedby connection to id for additional success and error notes to be accessible\n *\n * @attr {string}\n */\n @property()\n validationAriaDescribedBy?: string;\n\n /**\n * Changes the component's treatment to represent a success state\n *\n * @attr {boolean}\n */\n @property({ type: Boolean, reflect: true })\n isSuccess?: boolean;\n\n /**\n * Visually hidden text that always signifies that this is successful for screen reader usage\n *\n * @attr {string}\n */\n @property()\n successText: string = 'Success';\n\n /**\n * Readonly attribute\n *\n * @attr {boolean}\n */\n @property({ type: Boolean, reflect: true })\n readonly?: boolean;\n\n /**\n * The success field note that appears below the default field note\n *\n * @attr {string}\n */\n @property()\n successNote?: string;\n\n @query('input')\n field!: HTMLInputElement;\n\n /**\n * First update lifecycle hook\n * 1) super.firstUpdated also uses the firstUpdated from the Cre8FormElement\n */\n firstUpdated() {\n this.initializeAria();\n return super.firstUpdated();\n }\n\n /**\n * Initialize aria attributes\n */\n initializeAria() {\n this.fieldId = this.fieldId || nanoid();\n if (this.fieldNote || this.slotNotEmpty('fieldNote')) {\n this.ariaDescribedBy = this.ariaDescribedBy || `Field_${nanoid()}`;\n }\n if (this.successNote || this.errorNote) {\n this.validationAriaDescribedBy = this.validationAriaDescribedBy || `Field_validation_${nanoid()}`;\n }\n }\n\n /**\n * Aria describedby string based on field notes and error/success notes\n * 1) If both validationAriaDescribedBy (error/success note) and field note exists,\n * render both in the input's `aria-describedby` attribute\n * 2) Otherwise, if only validationAriaDescribedBy exists, then render only that as\n * the `aria-describedby` attribute (input without field note initially, but then error/success is added).\n * 3) Otherwise, render only the `ariaDescribedBy` property (field note only)\n */\n fieldNoteAria() {\n if (this.validationAriaDescribedBy && this.ariaDescribedBy) {\n return `${this.ariaDescribedBy} ${this.validationAriaDescribedBy}`; /* 1 */\n }\n if (this.validationAriaDescribedBy && !this.ariaDescribedBy) {\n return this.validationAriaDescribedBy; /* 2 */\n }\n return this.ariaDescribedBy; /* 3 */\n }\n\n /**\n * Handle On Input\n * 1) Set the input's value equal to the event.target.value when the input is changed.\n * 2) Set the internal form value of the input to the updated value\n */\n private _handleOnInput(e: Event) {\n /* 1 */\n const inputValue = (e.target as HTMLInputElement).value;\n this.value = inputValue;\n\n /* 2 */\n this.internals.setFormValue(this.value);\n }\n\n /**\n * Render the success or error field notes\n * 1. If there is a successNote, then return the field note with the success message and state.\n * 2. If there is a errorNote, then return the field note with the error message and state.\n */\n renderSuccessErrorFieldNote() {\n if (this.successNote) {\n /* 1 */\n return html` <cre8-field-note\n ?isSuccess=${this.isSuccess}\n class=\"cre8-c-field__field-note-success\"\n id=${this.validationAriaDescribedBy}\n iconName=\"success\"\n >\n ${this.successNote}\n </cre8-field-note>`;\n }\n if (this.errorNote) {\n /* 2 */\n return html` <cre8-field-note\n ?isError=${this.isError}\n class=\"cre8-c-field__field-note-error\"\n id=${this.validationAriaDescribedBy}\n iconName=\"error-alt\"\n >\n ${this.errorNote}\n </cre8-field-note>`;\n }\n return null;\n }\n\n render() {\n const componentClassNames = this.componentClassNames('cre8-c-field', {\n 'cre8-is-error': this.isError,\n 'cre8-is-success': this.isSuccess,\n });\n\n return html`\n <div class=\"${componentClassNames}\">\n <label class=\"cre8-c-field__label\" for=\"${this.fieldId}\">${this.label}</label>\n <div class=\"cre8-c-field__body\">\n <input\n class=\"cre8-c-field__input\"\n autocomplete=${ifDefined(this.autocomplete)}\n type=\"${this.type}\"\n id=\"${this.fieldId}\"\n name=\"${ifDefined(this.name)}\"\n max=${(this.type === 'date') && ifDefined(this.max).toString()}\n min=${(this.type === 'date') && ifDefined(this.max).toString()}\n maxlength=${ifDefined(this.maxlength)}\n ?readonly=${this.readonly}\n ?required=${this.required}\n aria-invalid=${this.isError ? 'true' : 'false'}\n ?disabled=\"${this.disabled}\"\n pattern=${ifDefined(this.pattern)}\n aria-describedby=\"${ifDefined(this.fieldNoteAria())}\"\n placeholder=\"${ifDefined(this.placeholder)}\"\n .value=\"${this.value}\"\n @input=${this._handleOnInput}\n />\n </div>\n ${this.fieldNote || this.slotNotEmpty('fieldNote')\n ? html`<cre8-field-note id=${this.ariaDescribedBy} class=\"cre8-c-field__field-note\"\n ><slot name=\"fieldNote\">${this.fieldNote}</slot></cre8-field-note\n >`\n : nothing}\n ${this.renderSuccessErrorFieldNote()}\n </div>\n `;\n }\n}\n\nif (customElements.get('cre8-field') === undefined) {\n customElements.define('cre8-field', Cre8Field);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-field': Cre8Field;\n }\n}\n\nexport default Cre8Field;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n.cre8-c-calendar {\n min-width: 340px; // this is the width of a calendar with the longest character month (September)\n border: var(--cre8-color-border-strong);\n border-radius: var(--cre8-border-radius-default);\n border-width: var(--cre8-border-width-default);\n border-style: var(--cre8-border-style-default);\n margin-top: size(0.5);\n background-color: var(--cre8-color-bg-default);\n position: absolute;\n}\n\n/* shortcuts */\n.cre8-c-calendar__header-shortcuts {\n display: inline-flex;\n justify-content: center;\n width: 100%;\n padding-top: size(2);\n padding-bottom: size(1);\n\n cre8-button + cre8-button {\n padding-left: size(1);\n }\n\n cre8-button {\n max-height: 32px;\n }\n}\n\ntable {\n width: 100%;\n}\n\n/* table row */\ntr {\n @include cre8-typography-body-default();\n display: grid;\n grid-row-gap: 0.33em;\n grid-template-columns: repeat(7, 1fr);\n list-style: none;\n margin: unset;\n padding: unset;\n position: relative;\n}\n\n/* day wrappers */\ntd {\n align-items: center;\n display: flex;\n height: 48px;\n justify-content: center;\n width: 48px;\n}\n\n/* days */\n.cre8-c-calendar :is(thead, tbody) :is(span, button) {\n @include cre8-typography-body-default();\n align-items: center;\n block-size: 2em;\n border-radius: var(--cre8-border-radius-brand);\n display: flex;\n inline-size: 2em;\n justify-content: center;\n margin-block: var(0, 0 0.33em);\n user-select: none;\n}\n\n/* day buttons */\n.cre8-c-calendar__day-button {\n border: none;\n background: none;\n margin: 0;\n padding: 0;\n\n &:hover,\n &:focus {\n background: var(--cre8-color-bg-default-hover);\n }\n\n &.cre8-c-calendar__different-month {\n color: var(--cre8-color-content-subtle);\n\n &:hover,\n &:focus {\n background: var(--cre8-color-bg-subtle);\n }\n }\n\n &[data-today] {\n color: var(--cre8-color-content-brand);\n border-color: var(--cre8-color-border-brand);\n border-width: var(--cre8-border-width-default);\n border-style: var(--cre8-border-style-default);\n }\n \n &[data-selected] {\n background: var(--cre8-color-bg-brand-strong);\n color: var(--cre8-color-content-knockout);\n \n &:hover,\n &:focus {\n background: var(--cre8-color-bg-brand-strong-hover);\n }\n }\n}\n\n`;\nexport default styles;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n.cre8-c-calendar-month-modal {\n padding: size(1);\n}\n\n/* grid */\nol {\n @include cre8-typography-body-default();\n display: grid;\n grid-row-gap: 0.33em;\n grid-template-columns: repeat(3, 1fr);\n list-style: none;\n margin: unset;\n padding: unset;\n}\n\nli {\n display: inline-flex;\n justify-content: center;\n}\n`;\nexport default styles;\n","/* eslint-disable lit/no-template-arrow */\n/* eslint-disable indent */\n\n/* TODO: remove eslint disable on no-template-arrow */\nimport { TemplateResult, html, } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { Cre8Element } from '../../cre8-element';\nimport styles from './calendar-month-modal.styles.js';\nimport '../../button/button';\nimport '../../icon/icon';\n\nexport class Cre8CalendarMonthModal extends Cre8Element {\n static styles = [styles];\n\n\n @state() monthNames: Array<string>;\n\n @property({ reflect: true, type: Number })\n currentMonth: number;\n\n constructor() {\n super();\n this.monthNames = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n ];\n }\n\n protected firstUpdated(): void {\n this.focusOnCurrentMonth();\n }\n\n private async focusOnCurrentMonth(): Promise<void> {\n await this.updateComplete;\n\n const currentMonthButton = this.shadowRoot?.querySelector<HTMLElement>(\n 'li[data-current-month]'\n ).children[0].shadowRoot?.querySelector<HTMLButtonElement>('button');\n currentMonthButton.focus();\n }\n\n private emitMonth(month: number): void {\n const event = new CustomEvent('changeMonth', {\n detail: {\n month,\n },\n });\n this.dispatchEvent(event);\n }\n\n getMonthListItems(): TemplateResult[] {\n return this.monthNames.map(\n (month, index) => html` <li ?data-current-month=\"${index === this.currentMonth}\" >\n <cre8-button text=\"${month}\" variant=\"tertiary\" size=\"sm\"\n @click=\"${() => this.emitMonth(index)}\"></cre8-button>\n </li>`\n );\n }\n\n render() {\n const componentClassNames = this.componentClassNames('cre8-c-calendar-month-modal', {});\n\n return html` <div class=\"${componentClassNames}\">\n <ol aria-label=\"choose a month\">\n ${this.getMonthListItems()}\n </ol>\n </div> `;\n }\n}\n\nif (customElements.get('cre8-calendar-month-modal') === undefined) {\n customElements.define('cre8-calendar-month-modal', Cre8CalendarMonthModal);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-calendar-month-modal': Cre8CalendarMonthModal;\n }\n}\n\nexport default Cre8CalendarMonthModal;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n.cre8-c-calendar-year-modal {\n display: flex;\n justify-content: space-around;\n align-items: center;\n padding: size(1);\n}\n\n/* grid */\nol {\n @include cre8-typography-body-default();\n display: grid;\n grid-row-gap: 0.33em;\n grid-template-columns: repeat(3, 1fr);\n list-style: none;\n margin: unset;\n padding: unset;\n}\n\nli {\n display: inline-flex;\n justify-content: center;\n}\n\ncre8-button {\n height: fit-content;\n}\n`;\nexport default styles;\n","/* eslint-disable lit/no-template-arrow */\n/* eslint-disable indent */\n\n/* TODO: remove eslint disable on no-template-arrow */\nimport { TemplateResult, html, } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { Cre8Element } from '../../cre8-element';\nimport styles from './calendar-year-modal.styles.js';\nimport '../../button/button';\nimport '../../icon/icon';\n\nexport class Cre8CalendarYearModal extends Cre8Element {\n static styles = [styles];\n\n\n @state() yearNumbers: Array<number>;\n\n @state() _currentYear?: number;\n\n @state() modalAnchorYear?: number;\n\n @property({ reflect: true, type: Number })\n get currentYear() {\n return this._currentYear;\n }\n\n set currentYear(newYear: number) {\n const oldYear = this._currentYear;\n this._currentYear = newYear;\n this.modalAnchorYear = newYear;\n this.requestUpdate('currentDate', oldYear);\n this.createYearArray(this.currentYear);\n }\n\n constructor() {\n super();\n this.yearNumbers = [];\n }\n\n private emitYear(year: number) {\n const event = new CustomEvent('changeYear', {\n detail: {\n year,\n },\n });\n this.dispatchEvent(event);\n }\n\n private createYearArray(anchorYear: number) {\n const gridIndices = Array.from(Array(12).keys());\n /* Leaves current year in the center of the 3x4 grid */\n this.yearNumbers = gridIndices.map((year) => year + (anchorYear - 7));\n }\n\n private getYearListItems(): TemplateResult[] {\n return this.yearNumbers.map(\n ((year) => html` <li\n ?data-current-year=\"${year === this.currentYear}\"\n >\n <cre8-button\n text=\"${year}\"\n variant=\"tertiary\"\n size=\"sm\"\n @click=\"${() => this.emitYear(year)}\"\n ></cre8-button>\n </li>`\n )\n );\n }\n\n protected firstUpdated(): void {\n this.focusOnCurrentYear();\n }\n\n private async focusOnCurrentYear(): Promise<void> {\n await this.updateComplete;\n\n const currentYearButton = this.shadowRoot?.querySelector<HTMLElement>(\n 'li[data-current-year]'\n ).children[0].shadowRoot?.querySelector<HTMLButtonElement>('button');\n currentYearButton.focus();\n }\n\n private previousYearArray(): void {\n this.modalAnchorYear -= 12;\n this.createYearArray(this.modalAnchorYear);\n }\n\n private nextYearArray(): void {\n this.modalAnchorYear += 12;\n this.createYearArray(this.modalAnchorYear);\n }\n\n render() {\n const componentClassNames = this.componentClassNames(\n 'cre8-c-calendar-year-modal',\n {}\n );\n\n return html`\n <div class=\"${componentClassNames}\">\n <cre8-button\n class=\"cre8-c-calendar-year-modal__nav-button\"\n @click=\"${this.previousYearArray}\"\n variant=\"tertiary\"\n text=\"Previous 12 years\"\n ?hideText=${true}\n iconName=\"keyboard-arrow-left\"\n ></cre8-button>\n <ol aria-label=\"choose a year\">\n ${this.getYearListItems()}\n </ol>\n <cre8-button\n class=\"cre8-c-calendar-year-modal__nav-button\"\n @click=\"${this.nextYearArray}\"\n variant=\"tertiary\"\n text=\"Next 12 years\"\n ?hideText=${true}\n iconName=\"keyboard-arrow-right\"\n ></cre8-button>\n </div>\n `;\n }\n}\n\nif (customElements.get('cre8-calendar-year-modal') === undefined) {\n customElements.define('cre8-calendar-year-modal', Cre8CalendarYearModal);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-calendar-year-modal': Cre8CalendarYearModal;\n }\n}\n\nexport default Cre8CalendarYearModal;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n.cre8-c-calendar-navigation {\n align-items: center;\n display: flex;\n height: 60px;\n justify-content: center;\n }\n\n.cre8-c-calendar-navigation__inner-buttons {\n display: flex;\n min-width: 188px;\n justify-content: space-around;\n}`;\nexport default styles;\n","/* eslint-disable lit/no-template-arrow */\n/* TODO: remove eslint disable on no-template-arrow */\nimport { html, } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { Cre8Element } from '../../cre8-element';\nimport styles from './calendar-navigation.styles.js';\nimport '../../button/button';\nimport '../../icon/icon';\n\nexport class Cre8CalendarNavigation extends Cre8Element {\n static styles = [styles];\n\n @property({ type: String, reflect: true })\n monthName: string;\n\n @property({ type: String, reflect: true })\n year: number;\n\n private activateModal(modal: string): void {\n const event = new CustomEvent('activateModal', {\n detail: {\n modal,\n },\n });\n this.dispatchEvent(event);\n }\n\n private changeMonth(addend: number): void {\n const event = new CustomEvent('changeMonth', {\n detail: {\n addend,\n },\n });\n this.dispatchEvent(event);\n }\n\n private changeYear(addend: number): void {\n const event = new CustomEvent('changeYear', {\n detail: {\n addend,\n },\n });\n this.dispatchEvent(event);\n }\n\n render() {\n const componentClassNames = this.componentClassNames(\n 'cre8-c-calendar-navigation',\n {}\n );\n\n return html`\n <div class=\"${componentClassNames}\">\n <cre8-button\n variant=\"tertiary\"\n text=\"Previous year\"\n ?hideText=${true}\n iconName=\"caret-double-left\"\n @click=\"${() => this.changeYear(-1)}\"\n ></cre8-button>\n\n <cre8-button\n variant=\"tertiary\"\n text=\"Previous month\"\n ?hideText=${true}\n iconName=\"keyboard-arrow-left\"\n @click=\"${() => this.changeMonth(-1)}\"\n ></cre8-button>\n\n <div class=\"cre8-c-calendar-navigation__inner-buttons\">\n <cre8-button\n class=\"cre8-c-calendar-navigation__month-modal-button\"\n variant=\"tertiary\"\n text=\"${this.monthName}\"\n aria-label=\"${this.monthName}, month picker modal\"\n size=\"sm\"\n @click=\"${() => this.activateModal('month')}\"\n ></cre8-button>\n\n <cre8-button\n class=\"cre8-c-calendar-navigation__year-modal-button\"\n variant=\"tertiary\"\n text=\"${this.year}\"\n aria-label=\"${this.year}, year picker modal\"\n size=\"sm\"\n @click=\"${() => this.activateModal('year')}\"\n ></cre8-button>\n </div>\n\n <cre8-button\n variant=\"tertiary\"\n text=\"Next month\"\n ?hideText=${true}\n iconName=\"keyboard-arrow-right\"\n @click=\"${() => this.changeMonth(1)}\"\n ></cre8-button>\n\n <cre8-button\n variant=\"tertiary\"\n text=\"Next year\"\n ?hideText=${true}\n iconName=\"caret-double-right\"\n @click=\"${() => this.changeYear(1)}\"\n ></cre8-button>\n </div>\n `;\n }\n}\n\nif (customElements.get('cre8-calendar-navigation') === undefined) {\n customElements.define('cre8-calendar-navigation', Cre8CalendarNavigation);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-calendar-navigation': Cre8CalendarNavigation;\n }\n}\n\nexport default Cre8CalendarNavigation;\n","/* eslint-disable max-statements */\n/* eslint-disable indent */\n/* eslint-disable lit/no-template-arrow */\n\n/* TODO: remove eslint disable on no-template-arrow */\nimport {\n TemplateResult, html, nothing,\n} from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport styles from './calendar.styles.js';\nimport { Cre8Element } from '../../cre8-element';\n\nimport '../../icon/icon';\nimport '../calendar-month-modal/calendar-month-modal';\nimport '../calendar-year-modal/calendar-year-modal';\nimport '../calendar-navigation/calendar-navigation';\nimport '../../button/button';\n\nexport interface DateConfig {\n locale: string;\n today: Date;\n weekInfo: {\n firstDay: number;\n weekend: Array<number>;\n };\n}\n\nexport interface DateFormatOptions {\n weekday: string;\n year: string;\n month: string;\n day: string;\n}\n\nexport enum CalendarModal {\n Month = 'month',\n Year = 'year',\n None = 'none',\n}\n\nexport class Cre8Calendar extends Cre8Element {\n static styles = [styles];\n\n\n /**\n * Query the navigation wrapper\n */\n @query('.cre8-c-calendar__navigation-wrapper')\n _navWrapper: HTMLElement;\n\n @property({ type: Boolean, reflect: true })\n hasShortcuts?: boolean;\n\n @state() _activeModal?: CalendarModal = CalendarModal.None;\n\n @property({ reflect: true, type: String })\n get activeModal() {\n return this._activeModal;\n }\n\n set activeModal(activeModal: CalendarModal) {\n this._activeModal = activeModal;\n }\n\n @state() _fieldDate?: string;\n\n @property({ reflect: true, type: Date })\n get fieldDate() {\n return this._fieldDate;\n }\n\n set fieldDate(newFieldDate: string) {\n const oldDate = this._fieldDate;\n this.requestUpdate('fieldDate', oldDate);\n const isNewDateValid = !!(\n newFieldDate && new Date(`${newFieldDate}T00:00`).getTime()\n );\n this.currentDate = isNewDateValid\n ? new Date(`${newFieldDate}T00:00`)\n : new Date();\n this._fieldDate = isNewDateValid ? newFieldDate : '';\n }\n\n @state() _currentDate?: Date;\n\n @property({ reflect: true, type: Date })\n get currentDate() {\n return this._currentDate;\n }\n\n set currentDate(newDate: Date) {\n const oldDate = this._currentDate;\n this._currentDate = newDate;\n this.requestUpdate('currentDate', oldDate);\n }\n\n @state() locale: string;\n\n @state() weekDays: Array<string>;\n\n @state() dateConfig: DateConfig;\n\n @state() dateFormatOptions: DateFormatOptions;\n\n constructor() {\n super();\n this._handleOnClickOutside = this._handleOnClickOutside.bind(this);\n this.currentDate = (this.fieldDate && new Date(`${this.fieldDate}T00:00`)) ?? new Date();\n\n this.locale = document.documentElement.getAttribute('lang') || 'en-US';\n this.dateConfig = {\n locale: this.locale,\n today: new Date(),\n weekInfo: {\n firstDay: 7,\n weekend: [6, 7],\n },\n };\n this.weekDays = [\n 'Sunday',\n 'Monday',\n 'Tuesday',\n 'Wednesday',\n 'Thursday',\n 'Friday',\n 'Saturday',\n ];\n this.dateFormatOptions = {\n weekday: 'long',\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n };\n }\n\n connectedCallback() {\n super.connectedCallback();\n window.addEventListener('click', this._handleOnClickOutside, false);\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n window.removeEventListener('click', this._handleOnClickOutside, false);\n }\n\n /* Click Event Functions */\n private _handleOnClickOutside(event: MouseEvent) {\n if (!this.shadowRoot?.host) {\n throw Error(\n 'Could not determine navigation context during click handler'\n );\n }\n\n const didClickInside = event.composedPath().includes(this.shadowRoot.host);\n\n if (!didClickInside) {\n const outsideClickEvent = new CustomEvent('outsideClick', {\n detail: {\n composedPath: event.composedPath(),\n },\n });\n this.dispatchEvent(outsideClickEvent);\n }\n }\n\n private emitSelectedDate(date: string) {\n const event = new CustomEvent('dateSelect', {\n detail: {\n date,\n },\n });\n this.currentDate = new Date(`${date}T00:00`);\n this.dispatchEvent(event);\n }\n\n private changeYear(year: number) {\n const oldDate = this.currentDate;\n const newDate = new Date(oldDate.setFullYear(year));\n this.currentDate = newDate;\n this.activeModal = CalendarModal.None;\n }\n\n private changeMonth(month: number) {\n const oldDate = this.currentDate;\n const newDate = new Date(oldDate.setMonth(month));\n this.currentDate = newDate;\n this.activeModal = CalendarModal.None;\n }\n\n private activateModal(modal: CalendarModal): void {\n this.activeModal = modal;\n }\n\n /* Helper/Get Functions */\n static formatMonthOrDayIndex(val: number): string {\n return (val + 1).toString().padStart(2, '0');\n }\n\n static formatDate(val: number): string {\n return val.toString().padStart(2, '0');\n }\n\n private numberOfDaysinMonth(): number {\n return new Date(this.getYear(), this.getMonth() + 1, 0).getDate();\n }\n\n private getMonth(): number {\n return this.currentDate.getMonth();\n }\n\n private getMonthName(): string {\n const monthName = new Intl.DateTimeFormat(this.locale, {\n month: 'long',\n }).format(this.currentDate);\n return monthName;\n }\n\n private getYear(): number {\n return this.currentDate.getFullYear();\n }\n\n static dateToString(date: Date): string {\n return `${date.getFullYear()}-${Cre8Calendar.formatMonthOrDayIndex(\n date.getMonth()\n )}-${Cre8Calendar.formatDate(date.getDate())}`;\n }\n\n private async updateFocusForKeydown(newDate: Date): Promise<void> {\n this.currentDate = newDate;\n await this.updateComplete;\n\n const newFocus = this.shadowRoot?.querySelector<HTMLButtonElement>(\n `button[datetime=\"${Cre8Calendar.dateToString(newDate)}\"]`\n );\n newFocus.setAttribute('tabindex', '0');\n newFocus.focus();\n }\n\n private _handleCalendarKeyDown(e: KeyboardEvent) {\n const oldFocus = this.shadowRoot?.querySelector<HTMLButtonElement>(\n `button[datetime=\"${Cre8Calendar.dateToString(this.currentDate)}\"]`\n );\n if (e.key === 'ArrowUp') {\n const newDate = new Date(\n this.getYear(),\n this.getMonth(),\n this.currentDate.getDate() - 7\n );\n this.updateFocusForKeydown(newDate);\n oldFocus.setAttribute('tabindex', '-1');\n }\n if (e.key === 'ArrowDown') {\n const newDate = new Date(\n this.getYear(),\n this.getMonth(),\n this.currentDate.getDate() + 7\n );\n this.updateFocusForKeydown(newDate);\n oldFocus.setAttribute('tabindex', '-1');\n }\n if (e.key === 'ArrowLeft') {\n const newDate = new Date(\n this.getYear(),\n this.getMonth(),\n this.currentDate.getDate() - 1\n );\n this.updateFocusForKeydown(newDate);\n oldFocus.setAttribute('tabindex', '-1');\n }\n if (e.key === 'ArrowRight') {\n const newDate = new Date(\n this.getYear(),\n this.getMonth(),\n this.currentDate.getDate() + 1\n );\n this.updateFocusForKeydown(newDate);\n oldFocus.setAttribute('tabindex', '-1');\n }\n if (e.key === 'Tab' && !e.shiftKey) {\n const outsideClickEvent = new CustomEvent('outsideClick', {\n detail: {\n composedPath: [],\n },\n });\n // This allows the tab off to happen before the calendar closes\n setTimeout(() => { this.dispatchEvent(outsideClickEvent); }, 20);\n }\n }\n\n private async changeMonthFromNav(month: number): Promise<void> {\n this.changeMonth(month);\n await this.updateComplete;\n\n const nav = this.shadowRoot?.querySelector(\n 'cre8-calendar-navigation'\n );\n const monthPickerButton = nav.shadowRoot?.querySelector(\n '.cre8-c-calendar-navigation__month-modal-button'\n );\n await this.updateComplete;\n\n const button = monthPickerButton.shadowRoot.querySelector<HTMLButtonElement>('button');\n button.focus();\n }\n\n private async changeYearFromNav(year: number) {\n this.changeYear(year);\n await this.updateComplete;\n\n const nav = this.shadowRoot?.querySelector(\n 'cre8-calendar-navigation'\n );\n const yearPickerButton = nav.shadowRoot?.querySelector(\n '.cre8-c-calendar-navigation__year-modal-button'\n );\n await this.updateComplete;\n\n const button = yearPickerButton.shadowRoot.querySelector<HTMLButtonElement>('button');\n button.focus();\n }\n\n /* Template Map Functions */\n private getDaysOfWeekAbbreviations(): TemplateResult[] {\n return this.weekDays.map(\n (day) => html` <td>\n <span aria-label=\"${day}\">${day[0]}</span>\n </td>`\n );\n }\n\n /**\n * Create array of Day Buttons to fill in excess calendar space at the beginning of the month.\n *\n * 1. Map from empty array of length equal to the amount of access calendar \"slots\" in the beginning of the month.\n * (i.e. if the month starts on Wednesday (getDay = 3), there are 3 days prior that week from last month.)\n *\n * 2. Based on the indice of array, get the given day button's date, where the date is\n * the last day of last month minus the max of the array plus the indice plus one -> x = lastday - (max - (i + 1))\n * (Note: (max - (i + 1) equals the keys of the array in reverse order:\n * [max - i + 1] -> [3-1, 3-2, 3-3] -> [2,1,0] for an array of [3])\n * (i.e. if the calendar is starting on Wednesday June 1st, the access days on the calendar will be\n * Sunday May 29th (31 - (2)), Monday May 30th (31 - (1)), Tuesday May 31st (31 - (0)))\n *\n * 3. Build out day button with necessary props\n * */\n private getPreviousMonthDayButtons(): TemplateResult[] {\n /* 1 */\n return [\n ...Array(new Date(this.getYear(), this.getMonth(), 1).getDay()).keys(),\n ].map((i) => {\n const priorMonthArrayLength = new Date(\n this.getYear(),\n this.getMonth(),\n 1\n ).getDay();\n\n const finalDayLastMonth = new Date(this.getYear(), this.getMonth(), 0);\n const numberOfDaysinLastMonth = finalDayLastMonth.getDate();\n\n /* 2 */\n const priorMonthDay = new Date(\n finalDayLastMonth.getFullYear(),\n finalDayLastMonth.getMonth(),\n numberOfDaysinLastMonth - priorMonthArrayLength + (i + 1)\n );\n\n const isToday = this.dateConfig.today.getDate() === priorMonthDay.getDate()\n && this.dateConfig.today.getMonth() === priorMonthDay.getMonth()\n && this.dateConfig.today.getFullYear() === priorMonthDay.getFullYear();\n\n const isSelected = new Date(`${this.fieldDate}T00:00`).getTime()\n === priorMonthDay.getTime();\n\n /* 3 */\n return html` <td>\n <button\n class=\"cre8-c-calendar__day-button cre8-c-calendar__different-month\"\n datetime=\"${Cre8Calendar.dateToString(priorMonthDay)}\"\n ?data-today=\"${isToday}\"\n ?data-selected=\"${isSelected}\"\n tabindex=\"-1\"\n aria-label=\"${new Intl.DateTimeFormat(this.locale, {\n weekday: 'long',\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n }).format(\n new Date(`${Cre8Calendar.dateToString(priorMonthDay)}T00:00`)\n )}\"\n @click=\"${() => this.emitSelectedDate(Cre8Calendar.dateToString(priorMonthDay))}\"\n >\n ${new Intl.NumberFormat(this.locale).format(priorMonthDay.getDate())}\n </button>\n </td>`;\n });\n }\n\n /**\n * Create array of Day Buttons to fill out current month\n *\n * 1. Map from empty array of length equal to the amount days in this month\n *\n * 2. Get the date of the current month based on indice of array (i.e. 0 -> 1st, 1 -> 2nd ...)\n *\n * 3. Build out day button with necessary props\n * */\n private getCurrentMonthDayButtons(): TemplateResult[] {\n /* 1 */\n return [...Array(this.numberOfDaysinMonth()).keys()].map((i) => {\n const dayOfTheMonth = i + 1;\n /* 2 */\n const current = new Date(this.getYear(), this.getMonth(), dayOfTheMonth);\n\n const isToday = this.dateConfig.today.getDate() === dayOfTheMonth\n && this.dateConfig.today.getMonth() === this.getMonth()\n && this.dateConfig.today.getFullYear() === this.getYear();\n\n const isSelected = new Date(`${this.fieldDate}T00:00`).getTime() === current.getTime();\n\n /* 3 */\n return html` <td>\n <button\n class=\"cre8-c-calendar__day-button\"\n datetime=\"${Cre8Calendar.dateToString(current)}\"\n ?data-today=\"${isToday}\"\n ?data-selected=\"${isSelected}\"\n tabindex=\"${dayOfTheMonth === this.currentDate.getDate()\n ? '0'\n : '-1'}\"\n aria-label=\"${new Intl.DateTimeFormat(this.locale, {\n weekday: 'long',\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n }).format(new Date(`${Cre8Calendar.dateToString(current)}T00:00`))}\"\n @click=\"${() => this.emitSelectedDate(Cre8Calendar.dateToString(current))}\"\n >\n ${new Intl.NumberFormat(this.locale).format(i + 1)}\n </button>\n </td>`;\n });\n }\n\n /**\n * Create array of Day Buttons to fill in excess calendar space at the end of the month.\n *\n * 1. Map from empty array of length equal to the amount of access calendar \"slots\" at the end of the month.\n * The array have an amount of slots equal to the number of days in a week minus how many days have already past\n * and since getDay returns the index of the day of the week (Sunday = 0, Monday = 1 ...) our equations is\n * x = 7 - (getDay() + 1)\n * Note: (we need to add 1 because indexing starts at 0)\n * so if the month ends on Monday (getDay() = 1), 5 = 7 - (1 + 1), there are 5 days that week from the new month\n *\n * 2. Get the date from the next month based on indice of array (i.e. 0 -> 1st, 1 -> 2nd ...)\n *\n * 3. Build out day button with necessary props\n * */\n private getNextMonthDayButtons(): TemplateResult[] {\n /* 1 */\n return [\n ...Array(\n 6\n - new Date(\n this.getYear(),\n this.getMonth(),\n this.numberOfDaysinMonth()\n ).getDay()\n ).keys(),\n ].map((i) => {\n const lastDayThisMonth = new Date(\n this.getYear(),\n this.getMonth(),\n this.numberOfDaysinMonth()\n );\n const firstDayNextMonth = new Date(\n lastDayThisMonth.setDate(lastDayThisMonth.getDate() + 1)\n );\n\n /* 2 */\n const nextMonthDay = new Date(\n firstDayNextMonth.getFullYear(),\n firstDayNextMonth.getMonth(),\n i + 1\n );\n\n const isToday = this.dateConfig.today.getDate() === nextMonthDay.getDate()\n && this.dateConfig.today.getMonth() === nextMonthDay.getMonth()\n && this.dateConfig.today.getFullYear() === nextMonthDay.getFullYear();\n\n const isSelected = new Date(`${this.fieldDate}T00:00`).getTime()\n === nextMonthDay.getTime();\n\n /* 3 */\n return html` <td>\n <button\n class=\"cre8-c-calendar__day-button cre8-c-calendar__different-month\"\n datetime=\"${Cre8Calendar.dateToString(nextMonthDay)}\"\n ?data-today=\"${isToday}\"\n ?data-selected=\"${isSelected}\"\n tabindex=\"-1\"\n aria-label=\"${new Intl.DateTimeFormat(this.locale, {\n weekday: 'long',\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n }).format(\n new Date(`${Cre8Calendar.dateToString(nextMonthDay)}T00:00`)\n )}\"\n @click=\"${() => this.emitSelectedDate(Cre8Calendar.dateToString(nextMonthDay))}\"\n >\n ${new Intl.NumberFormat(this.locale).format(nextMonthDay.getDate())}\n </button>\n </td>`;\n });\n }\n\n render() {\n const componentClassNames = this.componentClassNames('cre8-c-calendar', {});\n\n return html` <div class=\"${componentClassNames}\">\n ${this._activeModal === CalendarModal.Month\n ? html`<cre8-calendar-month-modal\n currentMonth=\"${this.getMonth()}\"\n @changeMonth=\"${(e: CustomEvent) => this.changeMonthFromNav(e.detail.month)}\"\n ></cre8-calendar-month-modal>`\n : nothing}\n ${this._activeModal === CalendarModal.Year\n ? html`<cre8-calendar-year-modal\n currentYear=\"${this.getYear()}\"\n @changeYear=\"${(e: CustomEvent) => this.changeYearFromNav(e.detail.year)}\"\n ></cre8-calendar-year-modal>`\n : nothing}\n ${this._activeModal === CalendarModal.None\n ? html` ${this.hasShortcuts\n ? html`<div class=\"cre8-c-calendar__header-shortcuts\">\n <cre8-button\n text=\"Today\"\n variant=\"secondary\"\n size=\"sm\"\n @click=\"${() => this.emitSelectedDate(\n Cre8Calendar.dateToString(this.dateConfig.today)\n )}\"\n ></cre8-button>\n <cre8-button\n text=\"Tomorrow\"\n variant=\"secondary\"\n size=\"sm\"\n @click=\"${() => this.emitSelectedDate(\n Cre8Calendar.dateToString(\n new Date(\n this.dateConfig.today.setDate(\n this.dateConfig.today.getDate() + 1\n )\n )\n )\n )}\"\n ></cre8-button>\n <cre8-button\n text=\"In 2 days\"\n variant=\"secondary\"\n size=\"sm\"\n @click=\"${() => this.emitSelectedDate(\n Cre8Calendar.dateToString(\n new Date(\n this.dateConfig.today.setDate(\n this.dateConfig.today.getDate() + 2\n )\n )\n )\n )}\"\n ></cre8-button>\n </div>`\n : nothing}\n <cre8-calendar-navigation\n monthName=\"${this.getMonthName()}\"\n year=\"${this.getYear()}\"\n @activateModal=\"${(e: CustomEvent) => this.activateModal(e.detail.modal)}\"\n @changeMonth=\"${(e: CustomEvent) => this.changeMonth(this.getMonth() + e.detail.addend)}\"\n @changeYear=\"${(e: CustomEvent) => this.changeYear(this.getYear() + e.detail.addend)}\"\n >\n </cre8-calendar-navigation>\n <table>\n <thead>\n <tr>\n ${this.getDaysOfWeekAbbreviations()}\n </tr>\n </thead>\n <tbody>\n <tr @keydown=${this._handleCalendarKeyDown}>\n ${this.getPreviousMonthDayButtons()}\n ${this.getCurrentMonthDayButtons()}\n ${this.getNextMonthDayButtons()}\n </tr>\n </tbody>\n </table>`\n : nothing}\n </div>`;\n }\n}\n\nif (customElements.get('cre8-calendar') === undefined) {\n customElements.define('cre8-calendar', Cre8Calendar);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-calendar': Cre8Calendar;\n }\n}\n","import { html, nothing } from 'lit';\nimport { ifDefined } from 'lit-html/directives/if-defined.js';\nimport { property, query, state } from 'lit/decorators.js';\nimport styles from './date-picker.styles';\nimport { Cre8Field } from '../field/field';\nimport './calendar/calendar';\n\n/**\n * The Date Picker component renders a form group with label, control, help text and validation styling much\n * like the Field component but exclusively for type=date.\n * Cre8DatePicker inherits the Cre8Field component.\n */\nexport class Cre8DatePicker extends Cre8Field {\n @query('input[type=\"date\"]')\n override field: HTMLInputElement;\n\n /**\n * The type of the form field.\n * For Date Picker, this is always 'date'.\n */\n override type: 'text' | 'email' | 'number' | 'url' | 'tel' | 'password' | 'date' = 'date';\n static override styles = [styles];\n\n @state() showCalendar = false;\n\n /**\n * Quick Shortcuts Variant\n * @attr {boolean}\n *\n */\n @property({ type: Boolean, reflect: true })\n hasShortcuts?: boolean;\n /**\n * Handle Date On Input\n * 1) Set the input's value equal to the event.target.value when the input is changed.\n * 2) Set the internal form value of the input to the updated value\n */\n private handleDateOnInput(e: Event) {\n /* 1 */\n this.value = (e.target as HTMLInputElement).value;\n\n /* 2 */\n this.internals.setFormValue(this.value);\n }\n\n private handleCalendarSelect(e: CustomEvent) {\n this.value = e.detail.date;\n\n this.internals.setFormValue(this.value);\n this.showCalendar = false;\n }\n\n private handleOutsideClick(e: CustomEvent) {\n const calendarIcon = this.renderRoot.querySelector('.cre8-c-date-picker');\n\n if (this.showCalendar && !e.detail.composedPath.includes(calendarIcon)) {\n this.showCalendar = false;\n }\n }\n\n private toggleCalendar() {\n if (!this.disabled && !this.readonly) {\n this.showCalendar = !this.showCalendar;\n }\n }\n\n render() {\n const componentClassNames = this.componentClassNames('cre8-c-date-picker', {\n 'cre8-is-error': this.isError,\n 'cre8-is-success': this.isSuccess,\n 'cre8-c-date-picker--disabled': this.disabled,\n 'cre8-c-date-picker--read-only': this.readonly,\n });\n\n this.type = 'date';\n\n return html`\n <div class=\"${componentClassNames}\">\n <label class=\"cre8-c-date-picker__label\" for=\"${this.fieldId}\"\n >${this.label}</label\n >\n <div class=\"cre8-c-date-picker__body\">\n <input\n class=\"cre8-c-date-picker__input\"\n autocomplete=${ifDefined(this.autocomplete)}\n type=\"${this.type}\"\n id=\"${this.fieldId}\"\n name=\"${ifDefined(this.name)}\"\n max=${ifDefined(this.max)}\n min=${ifDefined(this.min)}\n value=\"${ifDefined(this.value)}\"\n ?readonly=${this.readonly}\n ?required=${this.required}\n ?disabled=\"${this.disabled}\"\n aria-describedby=\"${ifDefined(this.fieldNoteAria())}\"\n placeholder=\"${ifDefined(this.placeholder)}\"\n @input=${this.handleDateOnInput}\n @click=${this.toggleCalendar}\n />\n <cre8-button\n class=\"cre8-c-date-picker__calendar-icon-button\"\n aria-expanded=\"${this.showCalendar}\"\n aria-label=\"Show Calendar\"\n ?disabled=\"${this.disabled || this.readonly}\"\n ?hideText=${true}\n iconName=\"calendar-datepicker\"\n variant=\"tertiary\"\n @click=\"${this.toggleCalendar}\"\n ></cre8-button>\n </div>\n ${this.showCalendar\n ? html`<cre8-calendar\n fieldDate=\"${ifDefined(this.value)}\"\n ?hasShortcuts=${this.hasShortcuts}\n @dateSelect=\"${this.handleCalendarSelect}\"\n @outsideClick=\"${this.handleOutsideClick}\"\n ></cre8-calendar>`\n : nothing}\n ${this.fieldNote || this.slotNotEmpty('fieldNote')\n ? html`<cre8-field-note\n id=${this.ariaDescribedBy}\n class=\"cre8-c-date-picker__field-note\"\n ><slot name=\"fieldNote\">${this.fieldNote}</slot></cre8-field-note\n >`\n : nothing}\n ${this.renderSuccessErrorFieldNote()}\n </div>\n `;\n }\n}\n\nif (customElements.get('cre8-date-picker') === undefined) {\n customElements.define('cre8-date-picker', Cre8DatePicker);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-date-picker': Cre8DatePicker;\n }\n}\n\nexport default Cre8DatePicker;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n// #DIVIDER\n\n:host {\n display: flex;\n}\n\n/**\n * Divider Element\n */\n.cre8-c-divider {\n background-color: var(--cre8-color-border-default);\n margin-top: size(1);\n margin-bottom: size(1);\n}\n\n.cre8-c-divider--horizontal {\n width: 100%;\n height: var(--cre8-border-width-default);\n}\n\n.cre8-c-divider--vertical {\n width: var(--cre8-border-width-default);\n height: 100%;\n margin-top: 0;\n margin-bottom: 0;\n margin-left: size(1);\n margin-right: size(1);\n}\n\n/**\n* Divider colors\n*/\n.cre8-c-divider--brand {\n background-color: var(--cre8-color-border-brand);\n}\n\n.cre8-c-divider--knockout {\n background-color: var(--cre8-color-border-knockout);\n}\n`;\nexport default styles;\n","import { html, } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './divider.styles.js';\n\n/**\n * The divider component is a separator between sections of content or groups of items.\n * It often contains a horizontal or vertical line.\n*/\n\nexport class Cre8Divider extends Cre8Element {\n static styles = [styles];\n\n /**\n * Divider variants\n * - By default, the component renders the horizontal divider\n * - **vertical** renders the vertical divider\n */\n @property()\n variant: 'horizontal' | 'vertical' = 'horizontal';\n\n /**\n * Status (a color variant prop)\n * - By default, the divider has gray color.\n * - **brand**, the divider has blue color.\n * - **knockout**, the divider has white color.\n */\n @property()\n status?: string;\n\n render() {\n const componentClassNames = this.componentClassNames('cre8-c-divider', {\n 'cre8-c-divider--horizontal': this.variant === 'horizontal',\n 'cre8-c-divider--vertical': this.variant === 'vertical',\n 'cre8-c-divider--brand': this.status === 'brand',\n 'cre8-c-divider--knockout': this.status === 'knockout',\n });\n\n return html` <div class=\"${componentClassNames}\"><wbr></div> `;\n }\n}\n\nif (customElements.get('cre8-divider') === undefined) {\n customElements.define('cre8-divider', Cre8Divider);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-divider': Cre8Divider;\n }\n}\n\nexport default Cre8Divider;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n// #DROPDOWN\n\n/**\n * 1) Dropdown\n */\n\n.cre8-c-dropdown-container {\n display: inline-flex;\n position: relative;\n}\n.cre8-c-dropdown {\n border: var(--cre8-border-width-default) var(--cre8-border-style-default) var(--cre8-color-border-strong);\n box-shadow: var(--cre8-shadow-default);\n border-radius: var(--cre8-border-radius-default);\n display: none;\n flex-direction: column;\n left: 0;\n min-width: 100%;\n padding: var(--cre8-spacing-8);\n position: absolute;\n top: 100%;\n white-space: nowrap;\n}\n\n.cre8-c-dropdown--open {\n display: flex;\n}\n\n.cre8-c-dropdown--icon-button {\n color: var(--cre8-color-button-secondary-content);\n margin-top: size(1);\n}\n\n.cre8-c-dropdown--icon-link {\n color: var(--cre8-color-content-link);\n margin-top: size(1);\n}\n\n.cre8-c-dropdown--toggle {\n @include cre8-typography-label-default;\n align-items: center;\n justify-content: space-between;\n display: flex;\n gap: var(--cre8-spacing-8);\n white-space: nowrap;\n}\n\n.cre8-c-dropdown--button {\n background-color: var(--cre8-color-button-secondary-bg);\n border: var(--cre8-border-style-default) var(--cre8-border-width-default) var(--cre8-color-button-secondary-border);\n border-radius: var(--cre8-border-radius-button);\n color: var(--cre8-color-button-secondary-content);\n padding: var(--cre8-spacing-8) var(--cre8-spacing-16);\n}\n\n.cre8-c-dropdown--link {\n color: var(--cre8-color-content-link);\n background-color: var(--cre8-color-bg-transparent);\n text-decoration: underline;\n}\n\n\n.cre8-c-dropdown--close {\n display: none;\n}\n\nul {\n list-style-type: none;\n padding: var(--cre8-spacing-0);\n margin: 0;\n}\n`;\nexport default styles;\n","import { html, nothing, } from 'lit';\nimport { property, query, state } from 'lit/decorators.js';\nimport svgCaretDown from '/Users/tylersmbp/Projects/cre8-web-components/packages/cre8-wc/icons/System/Filled/Caret_Down.svg?raw';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './dropdown.styles.js';\n\n/**\n * The Dropdown menu itself is a container that can host multiple interactive items, commonly formatted as a list\n */\n\nexport class Cre8Dropdown extends Cre8Element {\n static styles = [styles];\n\n @state() open = false;\n\n /**\n * Dropdown header\n */\n @property({ type: String })\n buttonText = '';\n\n /**\n * Enables scrolling once content reached to specified height, the height should mention in px units, ex: 100px\n */\n @property()\n maxHeight?: string;\n\n @query('.cre8-c-dropdown')\n dropdownContent!: HTMLElement;\n\n /**\n * button text represents as a link\n */\n @property()\n dropdownWithLink = false;\n\n constructor() {\n super();\n this._closeDropdown.bind(this);\n }\n\n connectedCallback() {\n super.connectedCallback();\n document.addEventListener('click', this._closeDropdown);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n document.removeEventListener('click', this._closeDropdown);\n }\n\n private _toggleDropdown(e: Event) {\n e.preventDefault();\n e.stopPropagation();\n this.open = !this.open;\n if (this.open) {\n this._updateDropdownPosition();\n }\n }\n\n\n private _updateDropdownPosition() {\n if (this.dropdownContent && this.open) {\n if (this.maxHeight) {\n this.dropdownContent.style.maxHeight = this.maxHeight;\n this.dropdownContent.style.overflowY = 'auto';\n }\n if (this.dropdownWithLink) {\n this.dropdownContent.style.top = '85%';\n }\n }\n }\n\n private _closeDropdown() {\n this.open = false;\n }\n\n render() {\n const componentClassNames = this.componentClassNames('cre8-c-dropdown', {\n 'cre8-c-dropdown--close': !this.open,\n 'cre8-c-dropdown--open': this.open,\n });\n\n return html`\n <div class=\"cre8-c-dropdown-container\">\n ${this.dropdownWithLink\n ? html`<a href=\"#\" aria-haspopup=\"true\" class=\"cre8-c-dropdown--toggle cre8-c-dropdown--link\" aria-expanded=\"${this.open ? 'true' : 'false'}\" @click=\"${this._toggleDropdown}\">${this.buttonText}\n ${this.buttonText\n ? html`<cre8-icon svg='${svgCaretDown}' aria-hidden=\"true\" class=\"cre8-c-dropdown--icon-link\"></cre8-icon>`\n : nothing}\n </a>`\n : html`<button aria-haspopup=\"true\" class=\"cre8-c-dropdown--toggle cre8-c-dropdown--button\" aria-expanded=\"${this.open ? 'true' : 'false'}\" @click=\"${this._toggleDropdown}\">${this.buttonText}\n ${this.buttonText\n ? html`<cre8-icon svg='${svgCaretDown}' aria-hidden=\"true\" class=\"cre8-c-dropdown--icon-button\"></cre8-icon>`\n : nothing}\n </button>`\n}\n <ul role=\"list\" class=\"${componentClassNames}\">\n <slot></slot>\n </ul>\n </div>\n `;\n }\n}\n\nif (customElements.get('cre8-dropdown') === undefined) {\n customElements.define('cre8-dropdown', Cre8Dropdown);\n}\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-dropdown': Cre8Dropdown;\n }\n}\n\nexport default Cre8Dropdown;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n/**\n * 1) Dropdown Item\n */\n\n.cre8-dropdown-item {\n list-style-type: none;\n > {\n button {\n @include cre8-typography-body-default;\n background-color: var(--cre8-color-bg-default);\n border: var(--cre8-border-width-none);\n border-radius: var(--cre8-border-radius-default);\n color: var(--cre8-color-content-default);\n width: 100%;\n cursor: pointer;\n margin: var(--cre8-spacing-0);\n padding: var(--cre8-spacing-8) var(--cre8-spacing-8);\n text-align: left;\n\n &:active,\n &:hover,\n &:focus {\n background-color: var(--cre8-color-bg-brand-hover);\n color: var(--cre8-color-content-default);\n outline: var(--cre8-border-width-none);\n }\n }\n }\n}\n`;\nexport default styles;\n","import { html, } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './dropdown-item.styles.js';\n\n/**\n * The Dropdown item component is designed to be used with Dropdown component, each item represents a\n * selectable option or action within the dropdown menu. It can be configured to trigger actions, navigate\n * to links, initiate commands when clicked.\n */\nexport class Cre8DropdownItem extends Cre8Element {\n static styles = [styles];\n\n @property({ type: String })\n ariaLabel = '';\n\n private _handleClick(e: MouseEvent) {\n this.dispatchEvent(new Event('dropdown-item-selected', e));\n }\n\n render() {\n const componentClassNames = this.componentClassNames('cre8-dropdown-item', {});\n const linkAriaLabel = this.ariaLabel || `Link to ${this.textContent}` || 'Drop down Item';\n return html`<li class=\"${componentClassNames}\" role=\"listitem\">\n <button aria-label=\"${linkAriaLabel}\" @click=${this._handleClick}><slot></slot></button>\n </li>`;\n }\n}\n\nif (customElements.get('cre8-dropdown-item') === undefined) {\n customElements.define('cre8-dropdown-item', Cre8DropdownItem);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-dropdown-item': Cre8DropdownItem;\n }\n}\n\nexport default Cre8DropdownItem;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n// #FEATURE\n\n/**\n * 1) A Feature is a prominent marketing block that contains\n * Side by side information and an image\n */\n.cre8-c-feature {\n display: flex; /* 2 */\n flex-direction: column;\n align-items: stretch;\n color: var(--cre8-feature-text-color, var(--cre8-theme-color-core-text, var(--cre8-color-neutral-black)));\n border-radius: var(--cre8-feature-border-radius, var(--cre8-border-radius-default, 0));\n\n @media all and (min-width:$cre8-breakpoint-md) {\n flex-direction: row;\n }\n}\n\n/**\n * Inverted feature\n */\n.cre8-c-feature--inverted {\n color: var(--cre8-feature-inverted-text-color, var(--cre8-theme-color-inverted, var(--cre8-color-neutral-white)));\n}\n\n/**\n * Feature body\n * 1) Container within feature that usually contains an excerpt of text\n * 2) Take up the remaining space on medr screens\n */\n.cre8-c-feature__body {\n margin-bottom: size(4);\n\n @media all and (min-width:$cre8-breakpoint-md) {\n display: flex;\n flex-direction: column;\n flex: 1;\n padding-right: size(4);\n margin-bottom: 0;\n }\n}\n\n/**\n * Feature media container\n */\n.cre8-c-feature__media {\n width: 100%;\n\n @media all and (min-width:$cre8-breakpoint-md) {\n width: 45%;\n }\n}\n\n/**\n * Feature image\n */\n.cre8-c-feature__image {\n display: block;\n width: 100%;\n}\n`;\nexport default styles;\n","import { html, } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './feature.styles.js';\n\n/**\n * @slot - The component content\n */\nexport class Cre8Feature extends Cre8Element {\n static styles = [styles];\n\n /**\n * Image source\n */\n @property()\n imgSrc?: string;\n\n /**\n * Image alt text\n */\n @property()\n imgAlt?: string;\n\n /**\n * Inverted variant\n * 1) Used for dark backgrounds\n */\n @property({ type: Boolean, reflect: true })\n inverted?: boolean;\n\n render() {\n const componentClassNames = this.componentClassNames('cre8-c-feature', {\n 'cre8-c-feature--inverted': this.inverted === true,\n });\n\n return html`\n <div class=\"${componentClassNames}\" part=\"feature\">\n <div class=\"cre8-c-feature__body\" part=\"body\">\n <slot></slot>\n </div>\n ${this.imgAlt\n ? html`<div class=\"cre8-c-feature__media\">\n <img class=\"cre8-c-feature__image\" src=${this.imgSrc} alt=${this.imgAlt} part=\"image\" />\n </div>`\n : ''}\n </div>\n `;\n }\n}\n\nif (customElements.get('cre8-feature') === undefined) {\n customElements.define('cre8-feature', Cre8Feature);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-feature': Cre8Feature;\n }\n}\n\nexport default Cre8Feature;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n@import '../../design-tokens/layouts/breakpoints.scss';\n\n// #FOOTER\n\n/**\n * 1) Container used to house various Components and content for the global footer\n */\n.cre8-c-footer {\n @include cre8-typography-body-default();\n background: var(--cre8-color-bg-brand-xstrong);\n color: var(--cre8-color-content-knockout);\n padding-top: size(5);\n padding-bottom: size(6);\n\n @media all and (min-width:$cre8-breakpoint-lg) {\n padding-top: size(6.875);\n }\n}\n`;\nexport default styles;\n","import { html, } from 'lit';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './footer.styles.js';\n\n/**\n * @slot - The footer content\n * @slot top - The top content (above the default slot)\n * @slot bottom - The bottom content (below the default slot)\n */\nexport class Cre8Footer extends Cre8Element {\n static styles = [styles];\n\n render() {\n const componentClassName = this.componentClassNames('cre8-c-footer', {});\n\n return html`\n <footer class=\"${componentClassName}\" role=\"contentinfo\">\n ${this.slotNotEmpty('top')\n && html`<div class=\"cre8-c-footer__top\">\n <cre8-layout-container>\n <slot name=\"top\"></slot>\n </cre8-layout-container>\n </div>`}\n <div class=\"cre8-c-footer__middle\">\n <cre8-layout-container>\n <slot></slot>\n </cre8-layout-container>\n </div>\n ${this.slotNotEmpty('bottom')\n && html`<div class=\"cre8-c-footer__bottom\">\n <cre8-layout-container>\n <slot name=\"bottom\"></slot>\n </cre8-layout-container>\n </div>`}\n </footer>\n `;\n }\n}\n\nif (customElements.get('cre8-footer') === undefined) {\n customElements.define('cre8-footer', Cre8Footer);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-footer': Cre8Footer;\n }\n}\n\nexport default Cre8Footer;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n// #GLOBAL NAV\n\n/**\n * Inverted Global nav\n */\n.cre8-c-global-nav--inverted {\n --cre8-global-nav-link-color: var(--cre8-color-content-knockout);\n}\n\n/**\n * Global nav list\n * 1) Stack on small screens within the toggleable menu but place side by side on large screens\n */\n.cre8-c-global-nav__list {\n display: flex;\n margin: 0;\n padding: 0;\n width: 100%;\n list-style: none;\n overflow: auto;\n}\n`;\nexport default styles;\n","import { html, } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './global-nav.styles.js';\n\n/**\n * @slot - The primary navigation items\n */\nexport class Cre8GlobalNav extends Cre8Element {\n static styles = [styles];\n\n /**\n * Inverted variant\n * 1) Used for dark backgrounds\n */\n @property({ type: Boolean, reflect: true })\n inverted?: boolean;\n\n /**\n * Behavior variant\n * <cre8-text-passage size=\"sm\">\n * <ul>\n * <li>**side-by-side** keeps the primary nav item always in a horizontal pattern</li>\n * </ul>\n * </cre8-text-passage>\n */\n @property()\n behavior?: 'side-by-side';\n\n /**\n * aria-label attribute to designate at name for the nav. Can be override by user\n */\n @property()\n navAriaLabel: string = 'global';\n\n render() {\n const componentClassName = this.componentClassNames('cre8-c-global-nav', {\n 'cre8-c-global-nav--side-by-side': this.behavior === 'side-by-side',\n 'cre8-c-global-nav--inverted': this.inverted === true,\n });\n\n return html`\n <nav aria-label=\"${this.navAriaLabel}\" class=\"${componentClassName}\">\n <ul class=\"cre8-c-global-nav__list\">\n <slot></slot>\n </ul>\n </nav>\n `;\n }\n}\n\nif (customElements.get('cre8-global-nav') === undefined) {\n customElements.define('cre8-global-nav', Cre8GlobalNav);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-global-nav': Cre8GlobalNav;\n }\n}\n\nexport default Cre8GlobalNav;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n// #PRIMARY NAV ITEM\n\n/**\n * Actual primary nav list item\n */\n\n/**\n * Content within the primary nav item\n */\n.cre8-c-global-nav__item-content {\n display: flex;\n align-items: baseline;\n}\n\n/**\n * Primary navigation link\n * 1) Used to remove any sort of default button styles when a button tag is rendered\n */\n.cre8-c-global-nav__link {\n @include cre8-typography-body-small;\n display: flex;\n align-items: center;\n appearance: none; /* 1 */\n background: transparent; /* 1 */\n border: none;\n //border: 1px solid var(--cre8-color-header-menu-border-default); /* 1 */\n white-space: nowrap;\n width: 100%;\n margin: 0;\n padding: size(1) size(2);\n color: var(--cre8-global-nav-link-color, var(--cre8-color-content-subtle));\n text-decoration: none;\n transition: all var(--cre8-anim-fade-quick) var(--cre8-anim-ease);\n cursor: pointer;\n\n &:hover,\n &:focus-visible {\n //border-color: var(--cre8-color-header-menu-border-hover);\n background: var(--cre8-color-header-menu-bg-hover);\n color: var(--cre8-color-header-menu-content-hover);\n }\n\n &:active {\n border-color: var(--cre8-color-header-menu-border-pressed);\n background: var(--cre8-color-header-menu-bg-pressed);\n color: var(--cre8-color-header-menu-content-pressed);\n }\n}\n\n/**\n * Icon within primary navigation item\n * 1) TODO: Figure out how to pass down size(1.5) instead of static rem value\n */\ncre8-icon-legacy {\n --cre8-icon-height: #{size(1)}; /* 1 */\n --cre8-icon-width: #{size(1)}; /* 1 */\n margin-left: auto;\n transition: transform var(--cre8-anim-fade-quick) var(--cre8-anim-ease);\n\n /**\n * Icon within active primary nav item\n * 1) Rotate the icon to show that the dropdown is open\n */\n .cre8-c-global-nav__item.cre8-is-active & {\n transform: rotate(-180deg); /* 1 */\n }\n\n @media all and (min-width:$cre8-breakpoint-lg) {\n margin-left: size(1);\n }\n}\n\n.cre8-c-global-nav__item-after {\n --cre8-icon-height: #{size(1.5)};\n --cre8-icon-width: #{size(1.5)};\n margin-left: size(1);\n}\n`;\nexport default styles;\n","import { html, } from 'lit';\nimport { ifDefined } from 'lit-html/directives/if-defined.js';\nimport { property, state } from 'lit/decorators.js';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './global-nav-item.styles.js';\n\n /**\n * @slot - The label for the navigation item\n */\nexport class Cre8GlobalNavItem extends Cre8Element {\n /**\n * Primary nav item text\n */\n @property()\n text = 'Nav item';\n\n /**\n * Primary nav item href\n */\n @property()\n href = '#';\n\n /**\n * Icon name\n */\n @property()\n iconName?: string = 'keyboard-arrow-down';\n\n /**\n * Append to the class name. Used for passing in utility classes\n */\n @property({ type: Boolean, reflect: true })\n megaMenu?: boolean;\n\n /**\n * Append to the class name. Used for passing in utility classes\n */\n @state()\n isActive?: boolean;\n\n static styles = [styles];\n\n /**\n * Initialize functions\n */\n constructor() {\n super();\n this._handleOnClickOutside = this._handleOnClickOutside.bind(this);\n this._clickHandler = this._clickHandler.bind(this);\n }\n\n /**\n * Connected Callback lifecycle\n */\n connectedCallback() {\n super.connectedCallback();\n\n document.addEventListener('mousedown', this._handleOnClickOutside, false);\n }\n\n /**\n * Disconnected callback lifecycle\n * 1) Remove window resize event listener\n */\n disconnectedCallback() {\n document.removeEventListener('mousedown', this._handleOnClickOutside, false);\n super.disconnectedCallback();\n }\n\n /**\n * Handle click outside the component\n * 1) Close the show hide panel on click outside\n * 2) If the nav is already closed then we don't care about outside clicks and we\n * can bail early\n * 3) By the time a user clicks on the page the shadowRoot will almost certainly be\n * defined, but TypeScript isn't that trusting and sees this.shadowRoot as possibly\n * undefined. To work around that we'll check that we have a shadowRoot (and a\n * rendered .host) element here to appease the TypeScript compiler. This should never\n * actually be shown or run for a human end user.\n * 4) Check to see if we clicked inside the active navigation item\n * 5) If the navigation is active and we've clicked outside of the nav then it should\n * be closed.\n */\n private _handleOnClickOutside(event: MouseEvent) {\n /* 2 */\n if (!this.isActive) {\n return;\n }\n\n /* 3 */\n if (!this.shadowRoot?.host) {\n throw Error('Could not determine navigation context during click handler');\n }\n\n /* 4 */\n const didClickInside = event.composedPath().includes(this.shadowRoot.host);\n\n /* 5 */\n if (this.isActive && !didClickInside) {\n this.isActive = false;\n }\n }\n\n /**\n * Toggle active state of primary nav item\n * 1) Remove isActive state from all sibling elements\n * 2) Toggle active state of element selected\n */\n private _clickHandler(e: MouseEvent) {\n e.preventDefault();\n if (this.parentNode) {\n const navItems = this.parentNode.querySelectorAll('cre8-global-nav-item');\n navItems.forEach((element: Cre8GlobalNavItem) => {\n if (element !== this) {\n element.isActive = false; /* 1 */\n }\n });\n }\n this.isActive = !this.isActive; /* 2 */\n }\n\n closePanel() {\n this.isActive = false;\n }\n\n private _handleOnKeyDown(e: KeyboardEvent) {\n if (e.key === 'Escape' && this.isActive === true) {\n this.closePanel();\n const navLink = this.shadowRoot?.querySelector<HTMLButtonElement | HTMLAnchorElement>(\n '.cre8-c-global-nav__link'\n );\n if (navLink) {\n setTimeout(() => {\n navLink.focus();\n }, 1);\n }\n }\n }\n\n render() {\n const componentClassName = this.componentClassNames('cre8-c-global-nav__item', {\n 'cre8-is-active': this.isActive === true,\n 'cre8-c-global-nav__item--megamenu': this.megaMenu === true,\n });\n\n if (this.megaMenu) {\n return html`\n <li class=\"${componentClassName}\" @keydown=${this._handleOnKeyDown}>\n <div class=\"cre8-c-global-nav__item-content\">\n ${this.slotNotEmpty('itemBefore') && html`\n <div class=\"cre8-c-global-nav__item-before\">\n <slot name=\"itemBefore\"></slot>\n </div>`}\n <button\n class=\"cre8-c-global-nav__link\"\n @click=${this._clickHandler}\n aria-expanded=${this.isActive === true}\n >\n ${this.text}\n <cre8-icon-legacy aria-hidden=\"true\" name=\"${ifDefined(this.iconName)}\"></cre8-icon-legacy>\n </button>\n </div>\n </li>\n `;\n }\n return html`\n <li class=\"${componentClassName}\">\n <div class=\"cre8-c-global-nav__item-content\">\n <a class=\"cre8-c-global-nav__link\" href=\"${this.href}\">\n ${this.slotNotEmpty('itemBefore') && html`\n <div class=\"cre8-c-global-nav__item-before\">\n <slot name=\"itemBefore\"></slot>\n </div>`}\n ${this.text}\n ${this.slotNotEmpty('itemAfter') && html`\n <div class=\"cre8-c-global-nav__item-after\">\n <slot name=\"itemAfter\"></slot>\n </div>`}\n </a>\n </div>\n </li>\n `;\n }\n}\n\nif (customElements.get('cre8-global-nav-item') === undefined) {\n customElements.define('cre8-global-nav-item', Cre8GlobalNavItem);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-global-nav-item': Cre8GlobalNavItem;\n }\n}\n\nexport default Cre8GlobalNavItem;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n// #GRID\n\n/**\n * 1) Grid layout for items like cards, etc.\n */\n.cre8-c-grid {\n display: flex;\n flex-direction: column;\n flex-wrap: wrap;\n margin: size(-1.5);\n}\n\n/**\n * Grid with no gap in between items\n */\n.cre8-c-grid--gap-none {\n margin: 0;\n}\n\n/**\n * Small gap grid\n * 1) Spacing between grid items is smaller than default\n */\n.cre8-c-grid--gap-sm {\n margin: size(-0.5);\n}\n\n/**\n * Large gap grid\n * 1) Spacing between grid items is larger than default\n */\n.cre8-c-grid--gap-lg {\n margin: size(-2);\n}\n\n/**\n * Side by Side Grid\n * 1) Grid that stays 2 items per row on all screen sizes\n */\n.cre8-c-grid--side-by-side {\n flex-direction: row;\n}\n\n/**\n * 2up grid\n * 1) Stacked items on small screens to 2 items per row on medium/large screens\n */\n.cre8-c-grid--2up {\n @media all and (min-width:$cre8-breakpoint-md) {\n flex-direction: row;\n }\n\n /**\n * 2up grid that breaks faster\n * 1) Grid that breaks from 1 to 2up at a smaller viewport than the default\n */\n &.cre8-c-grid--break-faster {\n @media all and (min-width:$cre8-breakpoint-sm) {\n flex-direction: row;\n }\n }\n\n /**\n * 2up grid that breaks slower\n * 1) Grid that breaks from 1 to 2up at a larger viewport than the default\n */\n &.cre8-c-grid--break-slower {\n @media all and (min-width:$cre8-breakpoint-md) {\n flex-direction: column;\n }\n @media all and (min-width:$cre8-breakpoint-xxl) {\n flex-direction: row;\n }\n }\n}\n\n/**\n * 3up grid\n * 1) Stacked items on small screens to 3 items per row on medium/large screens\n */\n.cre8-c-grid--3up {\n @media all and (min-width:$cre8-breakpoint-md) {\n flex-direction: row;\n }\n}\n\n/**\n * 1 to 3up grid\n * 1) Stacked items on small screens to 3 items per row on medium/large screens\n */\n.cre8-c-grid--1-3up {\n @media all and (min-width:$cre8-breakpoint-lg) {\n flex-direction: row;\n }\n\n /**\n * 1 to 3 up grid that breaks faster\n * 1) Grid that breaks from 1 to 3up at a smaller viewport than the default\n */\n &.cre8-c-grid--break-faster {\n @media all and (min-width:$cre8-breakpoint-md) {\n flex-direction: row;\n }\n }\n\n /**\n * 1 to 3up grid that breaks slower\n * 1) Grid that breaks from 1 to 3up at a larger viewport than the default\n */\n &.cre8-c-grid--break-slower {\n @media all and (min-width:$cre8-breakpoint-lg) {\n flex-direction: column;\n }\n @media all and (min-width:$cre8-breakpoint-xl) {\n flex-direction: row;\n }\n }\n}\n\n/**\n * 1 to 2 to 4up grid\n * 1) Stacked items on small screens to 2 items per row on medium screens to 4 items per row on large screens\n */\n.cre8-c-grid--1-2-4up {\n @media all and (min-width:$cre8-breakpoint-sm) {\n flex-direction: row;\n }\n}\n\n/**\n * 1 to 4up grid\n * 1) Stacked items on small screens to 4 items per row on medium/large screens\n */\n.cre8-c-grid--1-4up {\n @media all and (min-width:$cre8-breakpoint-md) {\n flex-direction: row;\n }\n}\n\n/**\n * 1 to 2 to 4up grid\n * 1) Stacked items on small screens to 2 items per row on small/medium screens to\n * 3 items per row on medium screens and 4 items per row on large screens\n */\n.cre8-c-grid--4up {\n @media all and (min-width:$cre8-breakpoint-sm) {\n flex-direction: row;\n }\n}\n\n/**\n * Slotted grid item within 4up Grid\n */\n.cre8-c-grid--2-4-6up {\n flex-direction: row;\n}\n\n/**\n * Slotted grid item\n */\n::slotted(cre8-grid-item) {\n display: block;\n padding: size(1.5);\n\n /**\n * Slotted grid item within grid with no gap between items\n */\n .cre8-c-grid--gap-none > & {\n padding: 0;\n }\n\n /**\n * Slotted grid item within grid with small gap between items\n */\n .cre8-c-grid--gap-sm > & {\n padding: size(0.5);\n }\n\n /**\n * Slotted grid item within grid with large gap between items\n */\n .cre8-c-grid--gap-lg > & {\n padding: size(2);\n }\n\n /**\n * Slotted grid item within side by side grid\n * 1) Grid that stays 2 items per row on all screen sizes\n */\n .cre8-c-grid--side-by-side > & {\n width: 50%;\n }\n\n /**\n * Slotted grid item within 2up Grid\n */\n .cre8-c-grid--2up > & {\n @media all and (min-width:$cre8-breakpoint-md) {\n width: 50%;\n }\n }\n\n /**\n * Slotted grid item within 2up break faster (small to large screens) Grid\n */\n .cre8-c-grid--2up.cre8-c-grid--break-faster > & {\n @media all and (min-width:$cre8-breakpoint-sm) {\n width: 50%;\n }\n }\n\n /**\n * Slotted grid item within 2up break slower (small to large screens) Grid\n */\n .cre8-c-grid--2up.cre8-c-grid--break-slower > & {\n @media all and (min-width:$cre8-breakpoint-md) {\n width: 100%;\n }\n @media all and (min-width:$cre8-breakpoint-xxl) {\n width: 50%;\n }\n }\n\n /**\n * Slotted grid item within 3up Grid\n */\n .cre8-c-grid--3up > & {\n @media all and (min-width:$cre8-breakpoint-md) {\n width: 50%;\n }\n\n @media all and (min-width:$cre8-breakpoint-lg) {\n width: 33.3333%;\n }\n }\n\n /**\n * Slotted grid item within 1-3up Grid\n */\n .cre8-c-grid--1-3up > & {\n @media all and (min-width:$cre8-breakpoint-lg) {\n width: 33.3333%;\n }\n }\n\n /**\n * Slotted grid item within 1 to 3up break faster (small to large screens) grid\n */\n .cre8-c-grid--1-3up.cre8-c-grid--break-faster > & {\n @media all and (min-width:$cre8-breakpoint-md) {\n width: 33.33%;\n }\n }\n\n /**\n * Slotted grid item within 2up break slower (small to large screens) Grid\n */\n .cre8-c-grid--1-3up.cre8-c-grid--break-slower > & {\n @media all and (min-width:$cre8-breakpoint-lg) {\n width: 100%;\n }\n @media all and (min-width:$cre8-breakpoint-xl) {\n width: 33.33%;\n }\n }\n\n /**\n * Slotted grid item within 1-2-4up Grid\n */\n .cre8-c-grid--1-2-4up > & {\n @media all and (min-width:$cre8-breakpoint-sm) {\n width: 50%;\n }\n\n @media all and (min-width:$cre8-breakpoint-lg) {\n width: 25%;\n }\n }\n\n /**\n * Slotted grid item within 1-2-4up Grid\n */\n .cre8-c-grid--1-4up > & {\n @media all and (min-width:$cre8-breakpoint-md) {\n width: 25%;\n }\n }\n\n /**\n * Slotted grid item within 4up Grid\n */\n .cre8-c-grid--4up > & {\n @media all and (min-width:$cre8-breakpoint-sm) {\n width: 50%;\n }\n\n @media all and (min-width:$cre8-breakpoint-md) {\n width: 33.3333%;\n }\n\n @media all and (min-width:$cre8-breakpoint-lg) {\n width: 25%;\n }\n }\n\n /**\n * Slotted grid item within 4up Grid\n */\n .cre8-c-grid--2-4-6up > & {\n width: 50%;\n\n @media all and (min-width:$cre8-breakpoint-lg) {\n width: 25%;\n }\n\n @media all and (min-width:$cre8-breakpoint-xl) {\n width: 16.66%;\n }\n }\n}\n`;\nexport default styles;\n","import { html, } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './grid.styles.js';\n\n/**\n * @slot - The grid items\n */\nexport class Cre8Grid extends Cre8Element {\n static styles = [styles];\n\n /**\n * Style variant\n * - **side-by-side** yields a grid whose grid items display side-by-side (2 per row) on all screen sizes\n * - **2up** yields a grid whose grid items are stacked on small screens\n * but display side-by-side when enough screen real estate is available to do so\n * - **3up** yields a grid whose grid items are stacked on small screens,\n * transforms to a 2-across pattern and then transforms again to a 3-across pattern\n * - **1-3up** yields a grid whose grid items are stacked on small screens\n * and transforms to a 3-across pattern on larger screens\n * - **4up** yields a grid whose grid items are stacked on small screens,\n * transforms to a 2-across pattern, transforms again to a 3-across pattern,\n * and ultimately transforms to a 4-across pattern\n * - **1-2-4up** yields a grid whose grid items are stacked on small screens,\n * transforms to a 2-across pattern, and ultimately transforms to a 4-across pattern\n * - **1-4up** yields a grid whose grid items are stacked on small screens,\n * transforms to a 4-across pattern on medium/large screens\n */\n @property()\n variant?: 'side-by-side' | '2up' | '3up' | '1-3up' | '4up' | '1-4up' | '1-2-4up' | '2-4-6up';\n\n /**\n * Style variant\n * - **none** yields a grid whose grid items are spaced without any gutter in between\n * - **sm** yields a grid whose grid items are spaced with a gap smaller than the default\n * - **lg** yields a grid whose grid items are spaced with a gap larger than the default\n */\n @property()\n gap?: 'none' | 'sm' | 'lg';\n\n /**\n * Break variant\n * - **faster** breaks the grid at a smaller width than the default.\n * Example: 2up grid breaks to 2 per row at smaller width than default\n * - **slower** breaks the grid at a larger width than the default.\n * Example: 2up grid breaks to 2 per row at larger width than default\n * - **lg** yields a grid whose grid items are spaced with a gap larger than the default\n */\n @property()\n break?: 'faster' | 'slower';\n\n render() {\n const componentClassName = this.componentClassNames('cre8-c-grid', {\n 'cre8-c-grid--side-by-side': this.variant === 'side-by-side',\n 'cre8-c-grid--2up': this.variant === '2up',\n 'cre8-c-grid--3up': this.variant === '3up',\n 'cre8-c-grid--1-3up': this.variant === '1-3up',\n 'cre8-c-grid--4up': this.variant === '4up',\n 'cre8-c-grid--1-4up': this.variant === '1-4up',\n 'cre8-c-grid--1-2-4up': this.variant === '1-2-4up',\n 'cre8-c-grid--2-4-6up': this.variant === '2-4-6up',\n 'cre8-c-grid--gap-none': this.gap === 'none',\n 'cre8-c-grid--gap-sm': this.gap === 'sm',\n 'cre8-c-grid--gap-lg': this.gap === 'lg',\n 'cre8-c-grid--break-faster': this.break === 'faster',\n 'cre8-c-grid--break-slower': this.break === 'slower',\n });\n\n return html`\n <div class=\"${componentClassName}\">\n <slot></slot>\n </div>\n `;\n }\n}\n\nif (customElements.get('cre8-grid') === undefined) {\n customElements.define('cre8-grid', Cre8Grid);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-grid': Cre8Grid;\n }\n}\n\nexport default Cre8Grid;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n/**\n * 1) Item used for the various items within the grid\n */\n.cre8-c-grid__item {\n height: 100%;\n}\n`;\nexport default styles;\n","import { html, } from 'lit';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './grid-item.styles.js';\n\n/**\n * @slot - The content of the grid item\n */\nexport class Cre8GridItem extends Cre8Element {\n static styles = [styles];\n\n render() {\n const componentClassName = this.componentClassNames('cre8-c-grid__item', {});\n\n return html`\n <div class=\"${componentClassName}\">\n <slot></slot>\n </div>\n `;\n }\n}\n\nif (customElements.get('cre8-grid-item') === undefined) {\n customElements.define('cre8-grid-item', Cre8GridItem);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-grid-item': Cre8GridItem;\n }\n}\n\nexport default Cre8GridItem;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n// #HEADER\n\n/**\n * 1) Global header where the navigation, logo, and other content lives across the entire site\n */\n.cre8-c-header {\n background: var(--cre8-header-background, var(--cre8-color-header-bg-default));\n color: var(--cre8-color-content-default);\n position: relative;\n z-index: 3;\n}\n\n/**\n * Header top section\n * 1) Optional slot used for global navigation usually\n */\n.cre8-c-header__top {\n position: relative;\n top: 0;\n width: 100%;\n z-index: 3;\n background: var(--cre8-header-top-background);\n}\n\n/**\n * Inner container of the header top section\n * 1) Used to cap the width of the content within the header\n */\n.cre8-c-header__top-inner {\n display: flex;\n align-items: center;\n width: 100%;\n overflow: auto;\n}\n\n/**\n * Header middle section\n * 1) Section of the site used for the logo and primary navigation\n */\n.cre8-c-header__middle {\n width: 100%;\n box-shadow: var(--cre8-theme-box-shadow-md);\n border-bottom: var(--cre8-header-middle-border-bottom-color);\n}\n\n/**\n * Inner container of the header middle section\n * 1) Used to cap the width of the content within the header\n */\n.cre8-c-header__middle-inner {\n display: flex;\n align-items: center;\n width: 100%;\n padding-top: size(2);\n padding-bottom: size(2);\n}\n\n.cre8-c-header__bottom {\n background: var(--cre8-header-bottom-background);\n box-shadow: var(--cre8-header-bottom-box-shadow);\n}\n`;\nexport default styles;\n","import { html, } from 'lit';\nimport { state } from 'lit/decorators.js';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './header.styles.js';\n\n/**\n * @slot - The header content\n */\nexport class Cre8Header extends Cre8Element {\n static styles = [styles];\n\n /**\n * Is active state\n * 1) Set to true when small screen menu is open\n */\n @state()\n isActive?: boolean;\n\n render() {\n const componentClassName = this.componentClassNames('cre8-c-header', {\n 'cre8-is-active': this.isActive === true,\n });\n\n return html`\n <header class=\"${componentClassName}\">\n ${this.slotNotEmpty('top')\n && html`<div class=\"cre8-c-header__top\">\n <cre8-layout-container>\n <div class=\"cre8-c-header__top-inner\">\n <slot name=\"top\"></slot>\n </div>\n </cre8-layout-container>\n </div>`}\n <div class=\"cre8-c-header__middle\">\n <cre8-layout-container>\n <div class=\"cre8-c-header__middle-inner\">\n <slot></slot>\n </div>\n </cre8-layout-container>\n </div>\n ${this.slotNotEmpty('bottom')\n && html`<div class=\"cre8-c-header__bottom\">\n <cre8-layout-container>\n <slot name=\"bottom\"></slot>\n </cre8-layout-container>\n </div>`}\n </header>\n `;\n }\n}\n\nif (customElements.get('cre8-header') === undefined) {\n customElements.define('cre8-header', Cre8Header);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-header': Cre8Header;\n }\n}\n\nexport default Cre8Header;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n// #HERO\n\n/**\n * 1) Block with an image and overlay on medium and large screens\n */\n.cre8-c-hero {\n position: relative;\n margin-bottom: size(4);\n\n @media all and (min-width:$cre8-breakpoint-md) {\n height: 40vh;\n }\n}\n\n/**\n * Hero image\n */\n.cre8-c-hero__image {\n width: 100%;\n height: 100%;\n\n @media all and (min-width:$cre8-breakpoint-md) {\n position: absolute;\n top: 0;\n left: 0;\n object-fit: cover;\n }\n}\n\n/**\n * Hero body\n * 1) Content is placed in the bottom left part of the image on medium/large screens by default\n */\n.cre8-c-hero__body {\n display: flex;\n flex-direction: column;\n padding-top: size(2);\n\n @media all and (min-width:$cre8-breakpoint-md) {\n position: absolute;\n align-items: flex-start;\n justify-content: flex-end;\n width: 100%;\n height: 100%;\n padding-top: size(4);\n padding-bottom: size(4);\n }\n\n /**\n * Hero body within align top left variant\n * 1) Place body content in the top left part of the image on medium/large screens\n */\n .cre8-c-hero--top-left & {\n @media all and (min-width:$cre8-breakpoint-md) {\n justify-content: flex-start;\n align-items: flex-start;\n }\n }\n\n /**\n * Hero body within align left variant\n * 1) Place body content along left part of the image and vertically centered on medium/large screens\n */\n .cre8-c-hero--left & {\n @media all and (min-width:$cre8-breakpoint-md) {\n justify-content: center;\n }\n }\n\n /**\n * Hero body within align top center variant\n * 1) Place body content in the top center part of the image on medium/large screens\n */\n .cre8-c-hero--top-center & {\n @media all and (min-width:$cre8-breakpoint-md) {\n justify-content: flex-start;\n align-items: center;\n }\n }\n\n /**\n * Hero body within align center variant\n * 1) Place body content horizontally and vertically centered overlaying the image on medium/large screens\n */\n .cre8-c-hero--center & {\n @media all and (min-width:$cre8-breakpoint-md) {\n justify-content: center;\n align-items: center;\n }\n }\n\n /**\n * Hero body within align bottom center variant\n * 1) Place body content in the bottom center part of the image on medium/large screens\n */\n .cre8-c-hero--bottom-center & {\n @media all and (min-width:$cre8-breakpoint-md) {\n justify-content: flex-end;\n align-items: center;\n }\n }\n .cre8-c-hero--top-right & {\n @media all and (min-width:$cre8-breakpoint-md) {\n justify-content: flex-start;\n align-items: flex-end;\n }\n }\n\n /**\n * Hero body within align right variant\n * 1) Place body content along right part of the image and vertically centered on medium/large screens\n */\n .cre8-c-hero--right & {\n @media all and (min-width:$cre8-breakpoint-md) {\n justify-content: center;\n align-items: flex-end;\n }\n }\n\n /**\n * Hero body within align bottom right variant\n * 1) Place body content in the bottom right part of the image on medium/large screens\n */\n .cre8-c-hero--bottom-right & {\n @media all and (min-width:$cre8-breakpoint-md) {\n justify-content: flex-end;\n align-items: flex-end;\n }\n }\n}\n`;\nexport default styles;\n","import { html, } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './hero.styles.js';\n\n/**\n * @slot - The component content\n */\nexport class Cre8Hero extends Cre8Element {\n static styles = [styles];\n\n /**\n * Image source\n */\n @property()\n imgSrc?: string;\n\n /**\n * Image alt text\n */\n @property()\n imgAlt?: string;\n\n /**\n * Position variant. Bottom left is the default position\n * <cre8-text-passage size=\"sm\">\n * <ul>\n * <li>**top-left** renders content in the top left corner of the image</li>\n * <li>**left** renders content in the left, center part of the image</li>\n * <li>**top-center** renders content in the top, center part of the image</li>\n * <li>**center** renders content center of the image</li>\n * <li>**bottom-center** renders content bottom center of the image</li>\n * <li>**top-right** renders content top-right of the image</li>\n * <li>**right** renders content right of the image</li>\n * <li>**bottom-right** renders content bottom, right part of the image</li>\n * </ul>\n * </cre8-text-passage>\n */\n @property()\n align?: 'top-left' | 'left' | 'top-center' | 'center' | 'bottom-center' | 'top-right' | 'right' | 'bottom-right';\n\n render() {\n const componentClassNames = this.componentClassNames('cre8-c-hero', {\n 'cre8-c-hero--top-left': this.align === 'top-left',\n 'cre8-c-hero--left': this.align === 'left',\n 'cre8-c-hero--top-center': this.align === 'top-center',\n 'cre8-c-hero--center': this.align === 'center',\n 'cre8-c-hero--bottom-center': this.align === 'bottom-center',\n 'cre8-c-hero--top-right': this.align === 'top-right',\n 'cre8-c-hero--right': this.align === 'right',\n 'cre8-c-hero--bottom-right': this.align === 'bottom-right',\n });\n\n return html`\n <div class=\"${componentClassNames}\">\n <cre8-layout-container>\n <img class=\"cre8-c-hero__image\" src=\"${this.imgSrc}\" alt=\"${this.imgAlt}\" />\n <div class=\"cre8-c-hero__body\">\n <slot></slot>\n </div>\n </cre8-layout-container>\n </div>\n `;\n }\n}\n\nif (customElements.get('cre8-hero') === undefined) {\n customElements.define('cre8-hero', Cre8Hero);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-hero': Cre8Hero;\n }\n}\n\nexport default Cre8Hero;\n","export default \"<svg fill=\\\"currentColor\\\" width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M8 0C6.41775 0 4.87103 0.469192 3.55544 1.34824C2.23985 2.22729 1.21447 3.47672 0.608967 4.93853C0.00346628 6.40034 -0.15496 8.00887 0.153721 9.56072C0.462403 11.1126 1.22433 12.538 2.34315 13.6569C3.46197 14.7757 4.88743 15.5376 6.43928 15.8463C7.99113 16.155 9.59966 15.9965 11.0615 15.391C12.5233 14.7855 13.7727 13.7602 14.6518 12.4446C15.5308 11.129 16 9.58225 16 8C15.9978 5.87895 15.1542 3.84542 13.6544 2.34562C12.1546 0.845814 10.121 0.00223986 8 0ZM8 12.9231C7.81743 12.9231 7.63897 12.8689 7.48717 12.7675C7.33537 12.6661 7.21706 12.5219 7.14719 12.3532C7.07732 12.1846 7.05904 11.999 7.09466 11.8199C7.13028 11.6409 7.21819 11.4764 7.34729 11.3473C7.47638 11.2182 7.64086 11.1303 7.81992 11.0947C7.99898 11.059 8.18458 11.0773 8.35325 11.1472C8.52192 11.2171 8.66608 11.3354 8.76751 11.4872C8.86894 11.639 8.92308 11.8174 8.92308 12C8.92308 12.2448 8.82583 12.4796 8.65271 12.6527C8.4796 12.8258 8.24482 12.9231 8 12.9231ZM8.61539 9.17538V9.23077C8.61539 9.39398 8.55055 9.5505 8.43514 9.66591C8.31974 9.78132 8.16321 9.84615 8 9.84615C7.83679 9.84615 7.68027 9.78132 7.56486 9.66591C7.44945 9.5505 7.38462 9.39398 7.38462 9.23077V8.61538C7.38462 8.45217 7.44945 8.29565 7.56486 8.18024C7.68027 8.06483 7.83679 8 8 8C9.01769 8 9.84616 7.30769 9.84616 6.46154C9.84616 5.61538 9.01769 4.92308 8 4.92308C6.98231 4.92308 6.15385 5.61538 6.15385 6.46154V6.76923C6.15385 6.93244 6.08901 7.08896 5.97361 7.20437C5.8582 7.31978 5.70167 7.38461 5.53846 7.38461C5.37525 7.38461 5.21873 7.31978 5.10332 7.20437C4.98791 7.08896 4.92308 6.93244 4.92308 6.76923V6.46154C4.92308 4.93461 6.30308 3.69231 8 3.69231C9.69692 3.69231 11.0769 4.93461 11.0769 6.46154C11.0769 7.79846 10.0185 8.91769 8.61539 9.17538Z\\\"/>\\n</svg>\\n\"","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n:host {\n display: inline-flex;\n}\n:host([fullWidth]) {\n display: flex;\n}\n\n/**\n * Inline alert\n */\n.cre8-c-inline-alert {\n @include cre8-typography-body-default();\n font-weight: normal;\n display: inline-flex;\n align-items: flex-start;\n gap: size(1);\n padding: size(2);\n color: var(--cre8-color-content-default);\n background-color: var(--cre8-color-bg-info);\n border-color: var(--cre8-color-border-info);\n border-width: var(--cre8-border-width-default);\n border-style: var(--cre8-border-style-default);\n border-radius: var(--cre8-border-radius-default);\n}\n\n/**\n * Full-width inline alert\n */\n.cre8-c-inline-alert--full-width {\n width: 100%;\n}\n\n/**\n * Inline alert with error variant\n */\n.cre8-c-inline-alert--error {\n background-color: var(--cre8-color-bg-error);\n border-color: var(--cre8-color-border-error);\n}\n\n/**\n * Inline alert with warning variant\n */\n.cre8-c-inline-alert--warning {\n background-color: var(--cre8-color-bg-warning);\n border-color: var(--cre8-color-border-warning);\n}\n\n/**\n * Inline alert with success variant\n */\n.cre8-c-inline-alert--success {\n background-color: var(--cre8-color-bg-success);\n border-color: var(--cre8-color-border-success);\n}\n\n/**\n * Inline alert with attention variant\n */\n.cre8-c-inline-alert--attention {\n background-color: var(--cre8-color-bg-attention);\n border-color: var(--cre8-color-border-attention);\n}\n\n/**\n * Inline alert with neutral variant\n */\n.cre8-c-inline-alert--neutral {\n background-color: var(--cre8-color-bg-subtle);\n border-color: var(--cre8-color-border-strong);\n}\n\n/**\n * Inline alert with variant - transparent\n */\n.cre8-c-inline-alert--transparent {\n padding: 0;\n border: none;\n background-color: transparent;\n gap: size(1);\n border-radius: none;\n}\n\n/**\n * Inline alert with variant - transparent and error\n */\n.cre8-c-inline-alert--transparent.cre8-c-inline-alert--error {\n color: var(--cre8-color-content-error);\n}\n\n/**\n * Inline alert with variant - transparent and success\n */\n.cre8-c-inline-alert--transparent.cre8-c-inline-alert--success {\n color: var(--cre8-color-content-success);\n}\n\n/**\n * Inline alert icon\n */\n.cre8-c-inline-alert__icon {\n position: relative;\n color: var(--cre8-color-content-info-icon);\n height: size(3);\n width: size(3);\n\n /**\n * Inline alert icon for error variant\n */\n .cre8-c-inline-alert--error & {\n color: var(--cre8-color-content-error-icon);\n }\n\n /**\n * Inline alert icon for warning variant\n */\n .cre8-c-inline-alert--warning & {\n color: var(--cre8-color-content-warning-icon);\n }\n\n /**\n * Inline alert icon for success variant\n */\n .cre8-c-inline-alert--success & {\n color: var(--cre8-color-content-success-icon);\n }\n\n /**\n * Inline alert icon for help variant\n * Inline alert icon for info variant\n */\n .cre8-c-inline-alert--help,\n .cre8-c-inline-alert--info\n & {\n color: var(--cre8-color-content-info-icon);\n }\n\n /**\n * Inline alert icon for attention variant\n */\n .cre8-c-inline-alert--attention & {\n color: var(--cre8-color-content-attention-icon);\n }\n\n /**\n * Inline alert icon for neutral variant\n */\n .cre8-c-inline-alert--neutral & {\n color: var(--cre8-color-content-default);\n }\n\n /**\n * Inline alert icon\n */\n .cre8-c-inline-alert--transparent & {\n top: 0;\n padding: size(0.25);\n }\n}\n`;\nexport default styles;\n","import svgWarningFilled from '/Users/tylersmbp/Projects/cre8-web-components/packages/cre8-wc/icons/System/Filled/Warning.svg?raw';\nimport svgCheckCircle from '/Users/tylersmbp/Projects/cre8-web-components/packages/cre8-wc/icons/System/Filled/Check.svg?raw';\nimport svgInfoFilled from '/Users/tylersmbp/Projects/cre8-web-components/packages/cre8-wc/icons/System/Filled/Info.svg?raw';\nimport svgErrorFilled from '/Users/tylersmbp/Projects/cre8-web-components/packages/cre8-wc/icons/System/Filled/Error.svg?raw';\nimport svgHelpFilled from '/Users/tylersmbp/Projects/cre8-web-components/packages/cre8-wc/icons/System/Filled/Help.svg?raw';\nimport { html, nothing, } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './inline-alert.styles.js';\nimport '../icon/icon';\n\n/**\n * In cases when it is necessary to alert the user but a less strong message that cannot be dismissed is desired,\n * use an in-line contextual alert message as the least \"severe\" message type.\n * These can be displayed anywhere on the page, but should never cover content.\n * Inline alerts do not include a title or close capability and are considered minimally intrusive user messaging.\n *\n * @slot - The component content\n */\nexport class Cre8InlineAlert extends Cre8Element {\n static styles = [styles];\n\n /**\n * DEPRECATED: Icon name used for the icon before to the field note\n * @deprecated\n */\n @property()\n iconName?: string;\n\n /**\n * Full width Inline Alert\n * @attr {boolean}\n */\n @property({ type: Boolean, reflect: true })\n fullWidth?: boolean;\n\n /**\n * Icon title used for the icon alt text\n */\n @property()\n iconTitle?: string;\n\n /**\n * Variant\n * - **subtle** (default) renders an alert message in a padded container with a with a border and background color\n * - **transparent** renders an alert message with no padded container, border, or background color\n */\n @property()\n variant: 'transparent' | 'subtle' = 'subtle';\n\n /**\n * Status\n * - **default** renders an inline alert with the brand colors\n * - **error** renders an inline alert with an error state\n * - **warning** renders an inline alert with a warning state\n * - **success** renders an inline alert with a success state\n * - **attention** renders an inline alert with an attention state\n * - **neutral** renders an inline alert with a nuetral state\n */\n @property({ type: String })\n status?: 'error' | 'warning' | 'success' | 'attention' | 'neutral' | 'help' | 'info' = 'info';\n\n /*\n * Maps modal icons and modal status variants to what the alt text of the related icon should be see:\n *#\n * this provides the recommendated alt text of different statuses\n */\n private mapStatusToIconInlineAlert(status: string) {\n switch (status) {\n case 'error':\n return html`<cre8-icon \n svg='${svgErrorFilled}' \n aria-label=\"${this.iconTitle}\"\n aria-hidden=\"true\"\n class=\"cre8-c-inline-alert__icon\"></cre8-icon>`;\n case 'success':\n return html`<cre8-icon \n svg='${svgCheckCircle}' \n aria-label=\"${this.iconTitle}\"\n aria-hidden=\"true\"\n class=\"cre8-c-inline-alert__icon\"></cre8-icon>`;\n case 'warning':\n return html`<cre8-icon \n svg='${svgWarningFilled}'\n aria-label=\"${this.iconTitle}\"\n aria-hidden=\"true\"\n class=\"cre8-c-inline-alert__icon\"></cre8-icon>`;\n case 'help':\n return html`<cre8-icon \n svg='${svgHelpFilled}'\n aria-label=\"${this.iconTitle}\"\n aria-hidden=\"true\"\n class=\"cre8-c-inline-alert__icon\"></cre8-icon>`;\n case 'info':\n return html`<cre8-icon \n svg='${svgInfoFilled}'\n aria-label=\"${this.iconTitle}\"\n aria-hidden=\"true\"\n class=\"cre8-c-inline-alert__icon\"></cre8-icon>`;\n case 'attention':\n return html`<cre8-icon \n svg='${svgInfoFilled}'\n aria-label=\"${this.iconTitle}\"\n aria-hidden=\"true\"\n class=\"cre8-c-inline-alert__icon\"></cre8-icon>`;\n case 'neutral':\n return html`<cre8-icon \n svg='${svgHelpFilled}'\n aria-label=\"${this.iconTitle}\"\n aria-hidden=\"true\"\n class=\"cre8-c-inline-alert__icon\"></cre8-icon>`;\n default:\n return nothing;\n }\n }\n\n render() {\n const componentClassNames = this.componentClassNames('cre8-c-inline-alert', {\n 'cre8-c-inline-alert--transparent': this.variant === 'transparent',\n 'cre8-c-inline-alert--error': this.status === 'error',\n 'cre8-c-inline-alert--warning': this.status === 'warning',\n 'cre8-c-inline-alert--success': this.status === 'success',\n 'cre8-c-inline-alert--attention': this.status === 'attention',\n 'cre8-c-inline-alert--neutral': this.status === 'neutral',\n 'cre8-c-inline-alert--help': this.status === 'help',\n 'cre8-c-inline-alert--info': this.status === 'info',\n 'cre8-c-inline-alert--full-width': this.fullWidth,\n });\n\n return html`\n <div class=\"${componentClassNames}\">\n ${this.iconName || this.status\n ? html` ${this.mapStatusToIconInlineAlert(this.status)}`\n : ''\n}\n <div class=\"cre8-c-inline-alert__body\">\n <slot></slot>\n </div>\n </div>\n `;\n }\n}\n\nif (customElements.get('cre8-inline-alert') === undefined) {\n customElements.define('cre8-inline-alert', Cre8InlineAlert);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-inline-alert': Cre8InlineAlert;\n }\n}\n\nexport default Cre8InlineAlert;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n// #LAYOUT\n\n/**\n * 1) Layout wrapper that houses layout section Components to create a layouts like\n * sidebar layouts that are 1 row across and not a grid\n */\n.cre8-c-layout {\n display: grid;\n flex: 1;\n gap: size(2);\n grid-template-columns: minmax(0, 1fr);\n\n @media all and (min-width:$cre8-breakpoint-lg) {\n gap: size(4);\n grid-template-columns: minmax(0, 1fr) calc(var(--cre8-sidebar-width, 40%) - (size(1))); /* 2 */\n }\n}\n\n/**\n * Left sidebar layout\n * 1) Layout that is stacked on small screens and turns into a left sidebar with main\n * content to the right\n * 2) The main column stretches the full width minus the sidebar width and gap.\n * The sidebar column has a minimum width value (enough to accommodate navigation\n * and other sidebar content) but stretches to fit the content placed inside it.\n */\n.cre8-c-layout--left-sidebar {\n @media all and (min-width:$cre8-breakpoint-lg) {\n grid-template-columns: calc(var(--cre8-sidebar-width, 40%) - (size(1))) minmax(0, 1fr); /* 2 */\n }\n}\n`;\nexport default styles;\n","import { html, } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './layout.styles.js';\n\n/**\n * @slot - The layout content\n */\nexport class Cre8Layout extends Cre8Element {\n static styles = [styles];\n\n /**\n * Style variants\n * <cre8-text-passage size=\"sm\">\n * <ul>\n * <li>Default is a right sidebar</li>\n * <li>**left-sidebar** formats the first `layout-section` component as a left sidebar</li>\n * </ul>\n * </cre8-text-passage>\n */\n @property()\n variant?: 'left-sidebar';\n\n render() {\n const componentClassName = this.componentClassNames('cre8-c-layout', {\n 'cre8-c-layout--left-sidebar': this.variant === 'left-sidebar',\n });\n\n return html`\n <div class=\"${componentClassName}\">\n <slot></slot>\n </div>\n `;\n }\n}\n\nif (customElements.get('cre8-layout') === undefined) {\n customElements.define('cre8-layout', Cre8Layout);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-layout': Cre8Layout;\n }\n}\n\nexport default Cre8Layout;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n// #LAYOUT CONTAINER\n\n/**\n * Layout Container\n * 1) Caps the width of the content to the maximum width\n * and centers the container\n */\n.cre8-l-layout-container {\n width: 100%;\n max-width: var(--cre8-l-max-width);\n padding-right: size(2);\n padding-left: size(2);\n margin: 0 auto;\n}\n\n.cre8-l-layout-container--full-height {\n display: flex;\n flex-direction: column;\n flex: 1;\n height: 100%;\n}\n`;\nexport default styles;\n","import { html, } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './layout-container.styles.js';\n\n/**\n * @slot - The contents of the layout container\n */\nexport class Cre8LayoutContainer extends Cre8Element {\n static styles = [styles];\n\n /**\n * Full height variant\n * 1) Sets the height to 100%\n */\n @property({ type: Boolean, reflect: true })\n fullHeight?: boolean;\n\n render() {\n const componentClassName = this.componentClassNames('cre8-l-layout-container', {\n 'cre8-l-layout-container--full-height': this.fullHeight === true,\n });\n\n return html`\n <div class=\"${componentClassName}\">\n <slot></slot>\n </div>\n `;\n }\n}\n\nif (customElements.get('cre8-layout-container') === undefined) {\n customElements.define('cre8-layout-container', Cre8LayoutContainer);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-layout-container': Cre8LayoutContainer;\n }\n}\n\nexport default Cre8LayoutContainer;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n/**\n * 1) Section within the layout component for each item\n */\n.cre8-c-layout-section {\n width: 100%;\n height: 100%;\n}\n`;\nexport default styles;\n","import { html, } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './layout-section.styles.js';\n\n/**\n * @slot - The content of the layout section\n */\nexport class Cre8LayoutSection extends Cre8Element {\n static styles = [styles];\n\n /**\n * Behavioral variants\n * - **sticky** allows the layout section to stick to the screen until the\n * section reaches the bottom of the layout or the next layout section.\n */\n @property()\n behavior?: 'sticky';\n\n /**\n * Top style\n * 1) Used to create dynamic sticky containers that can be adjusted based on the content\n */\n @property()\n top?: string = '1rem';\n\n render() {\n const componentClassName = this.componentClassNames('cre8-c-layout-section', {\n 'cre8-c-layout-section--sticky': this.behavior === 'sticky',\n });\n\n return html`\n <div class=\"${componentClassName}\" style=${`top: ${this.top}`}>\n <slot></slot>\n </div>\n `;\n }\n}\n\nif (customElements.get('cre8-layout-section') === undefined) {\n customElements.define('cre8-layout-section', Cre8LayoutSection);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-layout-section': Cre8LayoutSection;\n }\n}\n\nexport default Cre8LayoutSection;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n/**\n * 1) Container used to cap the width of a passage of text to be readable\n */\n.cre8-c-linelength-container {\n max-width: var(--cre8-l-linelength-width);\n}\n`;\nexport default styles;\n","import { html, } from 'lit';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './linelength-container.styles.js';\n\n/**\n * @slot - The component content\n */\nexport class Cre8LinelengthContainer extends Cre8Element {\n static styles = [styles];\n\n render() {\n const componentClassNames = this.componentClassNames('cre8-c-linelength-container', {});\n\n return html`\n <div class=\"${componentClassNames}\">\n <slot></slot>\n </div>\n `;\n }\n}\n\nif (customElements.get('cre8-linelength-container') === undefined) {\n customElements.define('cre8-linelength-container', Cre8LinelengthContainer);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-linelength-container': Cre8LinelengthContainer;\n }\n}\n\nexport default Cre8LinelengthContainer;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n/**\n * A list of hyperlinks\n * 1) Override preset line-height value to condense link text. Note: this should\n * be done sparingly to control wrapping text for specific scenarios\n */\n.cre8-c-link-list {\n @include cre8-typography-body-default;\n display: flex;\n flex-direction: column;\n padding: 0;\n margin-top: size(-2);\n list-style: none;\n\n /**\n * Slotted link list item\n */\n ::slotted(cre8-link-list-item) {\n margin-top: size(2);\n }\n}\n\n/**\n * A secondary link list\n * 1) Uses a more subtle treatment than the default link list\n * 2) TODO: Create a tier 2 token for secondary link colors\n */\n.cre8-c-link-list--secondary {\n --cre8-link-list-item-active-text-color: var(--cre8-color-content-default); /* 2 */\n color: var(--cre8-color-content-subtle);\n}\n\n/**\n * Inverted link list\n * 1) Link list on a dark background\n */\n.cre8-c-link-list--inverted {\n --cre8-link-list-link-color: var(--cre8-color-content-knockout);\n}\n\n/**\n* Display link list\n*/\n.cre8-c-link-list--display {\n color: var(--cre8-color-content-strong);\n}\n\n/**\n * Condensed link list\n * 1) Removes spacing between link list items\n */\n.cre8-c-link-list--condensed {\n margin-top: size(-1.25);\n\n /**\n * Slotted link list item within condensed link list\n */\n ::slotted(cre8-link-list-item) {\n margin-top: size(1.25);\n }\n}\n\n/**\n * Small link list\n */\n.cre8-c-link-list--sm {\n @include cre8-typography-body-small;\n}\n\n/**\n * Horizontal behavior\n * 1) Displays as a horizontal list\n */\n.cre8-c-link-list--horizontal {\n flex-direction: row;\n flex-wrap: wrap;\n margin: size(-1) 0 0 size(-2);\n\n /**\n * Slotted link list item within horizontal link list\n */\n ::slotted(cre8-link-list-item) {\n margin-top: size(1);\n margin-left: size(2);\n }\n}\n\n/**\n * Responsive behavior\n * 1) Displays as a horizontal list on small screens and moves to a vertical\n */\n.cre8-c-link-list--responsive {\n @media all and (max-width:$cre8-breakpoint-md) {\n flex-direction: row;\n flex-wrap: wrap;\n margin: size(-1) 0 0 size(-2);\n\n /**\n * Slotted link list item within responsive link list\n */\n ::slotted(cre8-link-list-item) {\n margin-top: size(1);\n margin-left: size(2);\n }\n }\n}\n`;\nexport default styles;\n","import { html, } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './link-list.styles.js';\n\n/**\n * @slot - The link list items\n */\nexport class Cre8LinkList extends Cre8Element {\n static styles = [styles];\n\n /**\n * Behavioral variant\n * - **responsive** renders a horizontal wrapping link list that converts to a stacked link list on large screens\n * - **horizontal** renders a horizontal wrapping link list on all screens\n */\n @property()\n behavior?: 'responsive' | 'horizontal';\n\n /**\n * Inverted variant\n * 1. Used for dark backgrounds\n */\n @property({ type: Boolean, reflect: true })\n inverted?: boolean;\n\n /**\n * Size variants\n * - **sm** renders a link list with a smaller typography\n */\n @property()\n size?: 'sm';\n\n /**\n * Spacing between link list items\n * - **condensed** renders a link list with a more compact display\n */\n @property()\n spacing?: 'condensed';\n\n /**\n * Style variants\n * - **secondary** renders a link list with a more subtle visual treatment\n * - **display** renders a link list with a display treatment (e.g. article title)\n */\n @property()\n variant?: 'secondary' | 'display';\n\n render() {\n const componentClassName = this.componentClassNames('cre8-c-link-list', {\n 'cre8-c-link-list--secondary': this.variant === 'secondary',\n 'cre8-c-link-list--display': this.variant === 'display',\n 'cre8-c-link-list--inverted': this.inverted === true,\n 'cre8-c-link-list--responsive': this.behavior === 'responsive',\n 'cre8-c-link-list--horizontal': this.behavior === 'horizontal',\n 'cre8-c-link-list--condensed': this.spacing === 'condensed',\n 'cre8-c-link-list--sm': this.size === 'sm',\n });\n\n return html`\n <ul class=\"${componentClassName}\">\n <slot></slot>\n </ul>\n `;\n }\n}\n\nif (customElements.get('cre8-link-list') === undefined) {\n customElements.define('cre8-link-list', Cre8LinkList);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-link-list': Cre8LinkList;\n }\n}\n\nexport default Cre8LinkList;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n/**\n * 1) An individual list item with a link inside\n */\n\n/**\n * Link list link\n * 1) Set to inherit color so that the link list link. Maybe a TODO\n */\n.cre8-c-link-list__item {\n display: flex;\n align-items: center;\n}\n\n/**\n * Link list link\n */\n.cre8-c-link-list__link {\n display: flex;\n align-items: center;\n color: var(--cre8-link-list-link-color, var(--cre8-color-content-link));\n text-decoration: underline;\n\n &:hover,\n &:focus {\n color: var(--cre8-link-list-link-hover-color, var(--cre8-color-content-link-hover));\n text-decoration: none;\n }\n\n /**\n * Link list link within active link list item\n * 1) This custom property cascade is set at the link list level\n * 2) TODO: Discuss how we want to handle bold variants since mixins can't get passed down\n */\n .cre8-c-link-list__item.cre8-is-active & {\n color: var(--cre8-link-list-item-active-text-color);\n font-weight: var(--cre8-font-weight-bold); /* 2 */\n }\n}\n\n/**\n * Link list item after\n * 1) Container to place things like badges after an item\n */\n.cre8-c-link-list__item-before {\n margin-right: size(1);\n}\n\n/**\n * Link list item after\n * 1) Container to place things like badges after an item\n */\n.cre8-c-link-list__item-after {\n margin-left: size(1);\n}\n\n::slotted(cre8-icon-legacy) {\n --cre8-icon-height: #{size(3)};\n --cre8-icon-width: #{size(3)};\n}\n`;\nexport default styles;\n","import { html, } from 'lit';\nimport { ifDefined } from 'lit-html/directives/if-defined.js';\nimport { property } from 'lit/decorators.js';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './link-list-item.styles.js';\n\n/**\n * @slot - The default slot to put badges or other Components\n */\nexport class Cre8LinkListItem extends Cre8Element {\n static styles = [styles];\n\n /**\n * The link text\n */\n @property()\n text?: string;\n\n /**\n * Active link\n */\n @property({ type: Boolean, reflect: true })\n isActive?: boolean;\n\n /**\n * The link URL\n */\n @property()\n href?: string;\n\n render() {\n const componentClassName = this.componentClassNames('cre8-c-link-list__item', {\n 'cre8-is-active': this.isActive === true,\n });\n\n return html`\n <li class=\"${componentClassName}\">\n <a class=\"cre8-c-link-list__link\" href=\"${ifDefined(this.href)}\">\n ${this.slotNotEmpty('itemBefore') && html`\n <div class=\"cre8-c-link-list__item-before\">\n <slot name=\"itemBefore\"></slot>\n </div>`}\n <slot></slot>\n </a>\n ${this.slotNotEmpty('itemAfter') && html`\n <div class=\"cre8-c-link-list__item-after\">\n <slot name=\"itemAfter\"></slot>\n </div>`}\n </li>\n `;\n }\n}\n\nif (customElements.get('cre8-link-list-item') === undefined) {\n customElements.define('cre8-link-list-item', Cre8LinkListItem);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-link-list-item': Cre8LinkListItem;\n }\n}\n\nexport default Cre8LinkListItem;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n// #LIST\n\n/**\n * 1) Generic stacked list that allows for styling of borders in between items\n */\n.cre8-c-list {\n list-style: none;\n padding: 0;\n margin: 0;\n margin-bottom: size(2);\n}\n\n/**\n * Slotted list item compponent\n * TODO: Add tier 2 variable that is used for light borders for cards, table rows, etc.\n */\n::slotted(cre8-list-item) {\n display: block;\n padding-top: size(2);\n padding-bottom: size(2);\n border-bottom: var(--cre8-border-width-default) var(--cre8-border-style-default) var(--cre8-color-border-subtle);\n\n /**\n * List item with bare list\n * 1) Remove the border between items\n */\n .cre8-c-list--bare & {\n border-bottom: 0; /* 1 */\n }\n\n /**\n * List item with condensed list\n * 1) Reduce padding between items compared to the default\n */\n .cre8-c-list--condensed & {\n padding-top: size(1);\n padding-bottom: size(1);\n }\n\n /**\n * List item with padded list\n * 1) Increase padding between items compared to the default\n */\n .cre8-c-list--padded & {\n padding-top: size(4);\n padding-bottom: size(4);\n }\n}\n`;\nexport default styles;\n","import { html, } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './list.styles.js';\n\n/**\n * @slot - The list items\n */\nexport class Cre8List extends Cre8Element {\n static styles = [styles];\n\n /**\n * Style variants\n * <cre8-text-passage size=\"sm\">\n * <ul>\n * <li>**bare** removes any lines from in between list items</li>\n * </ul>\n * </cre8-text-passage>\n */\n @property()\n variant?: 'bare';\n\n /**\n * Spacing variants\n * <cre8-text-passage size=\"sm\">\n * <ul>\n * <li>**padded** applies more padding in between list items compared to the default</li>\n * <li>**condensed** reduces padding in between list items compared to the default</li>\n * </ul>\n * </cre8-text-passage>\n */\n @property()\n spacing?: 'padded' | 'condensed';\n\n render() {\n const componentClassName = this.componentClassNames('cre8-c-list', {\n 'cre8-c-list--bare': this.variant === 'bare',\n 'cre8-c-list--padded': this.spacing === 'padded',\n 'cre8-c-list--condensed': this.spacing === 'condensed',\n });\n\n return html`\n <ul class=\"${componentClassName}\">\n <slot></slot>\n </ul>\n `;\n }\n}\n\nif (customElements.get('cre8-list') === undefined) {\n customElements.define('cre8-list', Cre8List);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-list': Cre8List;\n }\n}\n\nexport default Cre8List;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n/**\n * 1) List item within the list component\n */\n`;\nexport default styles;\n","import { html, } from 'lit';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './list-item.styles.js';\n\n/**\n * @slot - The content of the list item\n */\nexport class Cre8ListItem extends Cre8Element {\n static styles = [styles];\n\n // Set the role before rendering for better accessibility\n // Because we're settting this role, we don't wrap the slot in an <li>\n connectedCallback() {\n this.setAttribute('role', 'listitem');\n super.connectedCallback();\n }\n\n render() {\n const componentClassName = this.componentClassNames('cre8-c-list__item', {});\n\n return html`\n <div class=\"${componentClassName}\">\n <slot></slot>\n </div>\n `;\n }\n}\n\nif (customElements.get('cre8-list-item') === undefined) {\n customElements.define('cre8-list-item', Cre8ListItem);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-list-item': Cre8ListItem;\n }\n}\n\nexport default Cre8ListItem;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n// #LOGO\n\n/**\n * 1) Brand's logo\n */\n.cre8-c-logo {\n display: flex;\n}\n`;\nexport default styles;\n","import { html, } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './logo.styles.js';\n\n/**\n * @slot - The logo element\n */\nexport class Cre8Logo extends Cre8Element {\n static styles = [styles];\n\n /**\n * Logo link\n */\n @property()\n href?: string;\n\n render() {\n const componentClassName = this.componentClassNames('cre8-c-logo', {});\n\n return html`\n <a href=\"${this.href}\" class=\"${componentClassName}\">\n \n </a>\n `;\n }\n}\n\nif (customElements.get('cre8-logo') === undefined) {\n customElements.define('cre8-logo', Cre8Logo);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-logo': Cre8Logo;\n }\n}\n\nexport default Cre8Logo;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n// #MAIN\n\n/**\n * 1) Container for the main content on the page between the header and footer\n * 2) Set to flex: 1 0 auto for a footer that gets pushed all the way to the bottom\n * for pages that don't have a lot of content\n */\n:host {\n display: flex;\n flex-direction: column;\n flex: 1 0 auto; /* 2 */\n}\n\n/**\n * Full height main container\n */\n.cre8-c-main--full-height {\n display: flex;\n flex-direction: column;\n flex: 1;\n height: 100%;\n}\n`;\nexport default styles;\n","import { html, } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './main.styles.js';\n\n/**\n * @slot - The main content\n */\nexport class Cre8Main extends Cre8Element {\n static styles = [styles];\n\n /**\n * Full height variant\n * 1) Sets the height to 100%\n */\n @property({ type: Boolean, reflect: true })\n fullHeight?: boolean;\n\n render() {\n const componentClassName = this.componentClassNames('cre8-c-main', {\n 'cre8-c-main--full-height': this.fullHeight === true,\n });\n\n return html`<main class=${componentClassName}><slot></slot></main>`;\n }\n}\n\nif (customElements.get('cre8-main') === undefined) {\n customElements.define('cre8-main', Cre8Main);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-main': Cre8Main;\n }\n}\n\nexport default Cre8Main;\n","/**\n * Traverses the slots of the open shadowroots and returns all children matching the query.\n * @param {ShadowRoot | HTMLElement} root\n * @param skipNode\n * @param isMatch\n * @param {number} maxDepth\n * @param {number} depth\n * @returns {HTMLElement[]}\n */\nexport function queryShadowRoot(root, skipNode, isMatch, maxDepth = 20, depth = 0) {\n let matches = [];\n // If the depth is above the max depth, abort the searching here.\n if (depth >= maxDepth) {\n return matches;\n }\n // Traverses a slot element\n const traverseSlot = ($slot) => {\n // Only check nodes that are of the type Node.ELEMENT_NODE\n // Read more here https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\n const assignedNodes = $slot.assignedNodes().filter(node => node.nodeType === 1);\n if (assignedNodes.length > 0) {\n return queryShadowRoot(assignedNodes[0].parentElement, skipNode, isMatch, maxDepth, depth + 1);\n }\n return [];\n };\n // Go through each child and continue the traversing if necessary\n // Even though the typing says that children can't be undefined, Edge 15 sometimes gives an undefined value.\n // Therefore we fallback to an empty array if it is undefined.\n const children = Array.from(root.children || []);\n for (const $child of children) {\n // Check if the node and its descendants should be skipped\n if (skipNode($child)) {\n continue;\n }\n // If the child matches we always add it\n if (isMatch($child)) {\n matches.push($child);\n }\n if ($child.shadowRoot != null) {\n matches.push(...queryShadowRoot($child.shadowRoot, skipNode, isMatch, maxDepth, depth + 1));\n }\n else if ($child.tagName === \"SLOT\") {\n matches.push(...traverseSlot($child));\n }\n else {\n matches.push(...queryShadowRoot($child, skipNode, isMatch, maxDepth, depth + 1));\n }\n }\n return matches;\n}\n//# sourceMappingURL=shadow.js.map","/**\n * Returns whether the element is hidden.\n * @param $elem\n */\nexport function isHidden($elem) {\n return $elem.hasAttribute(\"hidden\")\n || ($elem.hasAttribute(\"aria-hidden\") && $elem.getAttribute(\"aria-hidden\") !== \"false\")\n // A quick and dirty way to check whether the element is hidden.\n // For a more fine-grained check we could use \"window.getComputedStyle\" but we don't because of bad performance.\n // If the element has visibility set to \"hidden\" or \"collapse\", display set to \"none\" or opacity set to \"0\" through CSS\n // we won't be able to catch it here. We accept it due to the huge performance benefits.\n || $elem.style.display === `none`\n || $elem.style.opacity === `0`\n || $elem.style.visibility === `hidden`\n || $elem.style.visibility === `collapse`;\n // If offsetParent is null we can assume that the element is hidden\n // https://stackoverflow.com/questions/306305/what-would-make-offsetparent-null\n //|| $elem.offsetParent == null;\n}\n/**\n * Returns whether the element is disabled.\n * @param $elem\n */\nexport function isDisabled($elem) {\n return $elem.hasAttribute(\"disabled\")\n || ($elem.hasAttribute(\"aria-disabled\") && $elem.getAttribute(\"aria-disabled\") !== \"false\");\n}\n/**\n * Determines whether an element is focusable.\n * Read more here: https://stackoverflow.com/questions/1599660/which-html-elements-can-receive-focus/1600194#1600194\n * Or here: https://stackoverflow.com/questions/18261595/how-to-check-if-a-dom-element-is-focusable\n * @param $elem\n */\nexport function isFocusable($elem) {\n // Discard elements that are removed from the tab order.\n if ($elem.getAttribute(\"tabindex\") === \"-1\" || isHidden($elem) || isDisabled($elem)) {\n return false;\n }\n return (\n // At this point we know that the element can have focus (eg. won't be -1) if the tabindex attribute exists\n $elem.hasAttribute(\"tabindex\")\n // Anchor tags or area tags with a href set\n || ($elem instanceof HTMLAnchorElement || $elem instanceof HTMLAreaElement) && $elem.hasAttribute(\"href\")\n // Form elements which are not disabled\n || ($elem instanceof HTMLButtonElement\n || $elem instanceof HTMLInputElement\n || $elem instanceof HTMLTextAreaElement\n || $elem instanceof HTMLSelectElement)\n // IFrames\n || $elem instanceof HTMLIFrameElement);\n}\n//# sourceMappingURL=focusable.js.map","const timeouts = new Map();\n/**\n * Debounces a callback.\n * @param cb\n * @param ms\n * @param id\n */\nexport function debounce(cb, ms, id) {\n // Clear current timeout for id\n const timeout = timeouts.get(id);\n if (timeout != null) {\n window.clearTimeout(timeout);\n }\n // Set new timeout\n timeouts.set(id, window.setTimeout(() => {\n cb();\n timeouts.delete(id);\n }, ms));\n}\n//# sourceMappingURL=debounce.js.map","import { debounce } from \"./debounce\";\nimport { isFocusable, isHidden } from \"./focusable\";\nimport { queryShadowRoot } from \"./shadow\";\n/**\n * Template for the focus trap.\n */\nconst template = document.createElement(\"template\");\ntemplate.innerHTML = `\n\t<div id=\"start\"></div>\n\t<div id=\"backup\"></div>\n\t<slot></slot>\n\t<div id=\"end\"></div>\n`;\n/**\n * Focus trap web component.\n * @customElement focus-trap\n * @slot - Default content.\n */\nexport class FocusTrap extends HTMLElement {\n /**\n * Attaches the shadow root.\n */\n constructor() {\n super();\n // The debounce id is used to distinguish this focus trap from others when debouncing\n this.debounceId = Math.random().toString();\n this._focused = false;\n const shadow = this.attachShadow({ mode: \"open\" });\n shadow.appendChild(template.content.cloneNode(true));\n this.$backup = shadow.querySelector(\"#backup\");\n this.$start = shadow.querySelector(\"#start\");\n this.$end = shadow.querySelector(\"#end\");\n this.focusLastElement = this.focusLastElement.bind(this);\n this.focusFirstElement = this.focusFirstElement.bind(this);\n this.onFocusIn = this.onFocusIn.bind(this);\n this.onFocusOut = this.onFocusOut.bind(this);\n }\n // Whenever one of these attributes changes we need to render the template again.\n static get observedAttributes() {\n return [\n \"inactive\"\n ];\n }\n /**\n * Determines whether the focus trap is active or not.\n * @attr\n */\n get inactive() {\n return this.hasAttribute(\"inactive\");\n }\n set inactive(value) {\n value ? this.setAttribute(\"inactive\", \"\") : this.removeAttribute(\"inactive\");\n }\n /**\n * Returns whether the element currently has focus.\n */\n get focused() {\n return this._focused;\n }\n /**\n * Hooks up the element.\n */\n connectedCallback() {\n this.$start.addEventListener(\"focus\", this.focusLastElement);\n this.$end.addEventListener(\"focus\", this.focusFirstElement);\n // Focus out is called every time the user tabs around inside the element\n this.addEventListener(\"focusin\", this.onFocusIn);\n this.addEventListener(\"focusout\", this.onFocusOut);\n this.render();\n }\n /**\n * Tears down the element.\n */\n disconnectedCallback() {\n this.$start.removeEventListener(\"focus\", this.focusLastElement);\n this.$end.removeEventListener(\"focus\", this.focusFirstElement);\n this.removeEventListener(\"focusin\", this.onFocusIn);\n this.removeEventListener(\"focusout\", this.onFocusOut);\n }\n /**\n * When the attributes changes we need to re-render the template.\n */\n attributeChangedCallback() {\n this.render();\n }\n /**\n * Focuses the first focusable element in the focus trap.\n */\n focusFirstElement() {\n this.trapFocus();\n }\n /**\n * Focuses the last focusable element in the focus trap.\n */\n focusLastElement() {\n this.trapFocus(true);\n }\n /**\n * Returns a list of the focusable children found within the element.\n */\n getFocusableElements() {\n return queryShadowRoot(this, isHidden, isFocusable);\n }\n /**\n * Focuses on either the last or first focusable element.\n * @param {boolean} trapToEnd\n */\n trapFocus(trapToEnd) {\n if (this.inactive)\n return;\n let focusableChildren = this.getFocusableElements();\n if (focusableChildren.length > 0) {\n if (trapToEnd) {\n focusableChildren[focusableChildren.length - 1].focus();\n }\n else {\n focusableChildren[0].focus();\n }\n this.$backup.setAttribute(\"tabindex\", \"-1\");\n }\n else {\n // If there are no focusable children we need to focus on the backup\n // to trap the focus. This is a useful behavior if the focus trap is\n // for example used in a dialog and we don't want the user to tab\n // outside the dialog even though there are no focusable children\n // in the dialog.\n this.$backup.setAttribute(\"tabindex\", \"0\");\n this.$backup.focus();\n }\n }\n /**\n * When the element gains focus this function is called.\n */\n onFocusIn() {\n this.updateFocused(true);\n }\n /**\n * When the element looses its focus this function is called.\n */\n onFocusOut() {\n this.updateFocused(false);\n }\n /**\n * Updates the focused property and updates the view.\n * The update is debounced because the focusin and focusout out\n * might fire multiple times in a row. We only want to render\n * the element once, therefore waiting until the focus is \"stable\".\n * @param value\n */\n updateFocused(value) {\n debounce(() => {\n if (this.focused !== value) {\n this._focused = value;\n this.render();\n }\n }, 0, this.debounceId);\n }\n /**\n * Updates the template.\n */\n render() {\n this.$start.setAttribute(\"tabindex\", !this.focused || this.inactive ? `-1` : `0`);\n this.$end.setAttribute(\"tabindex\", !this.focused || this.inactive ? `-1` : `0`);\n this.focused ? this.setAttribute(\"focused\", \"\") : this.removeAttribute(\"focused\");\n }\n}\nwindow.customElements.define(\"focus-trap\", FocusTrap);\n//# sourceMappingURL=focus-trap.js.map","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n/*------------------------------------*\\\n #MODAL\n\\*------------------------------------*/\n\n:host {\n display: block;\n}\n\n/**\n * 1) Modal Composable Component\n */\n.cre8-c-modal {\n position: fixed;\n height: 100vh;\n width: 100vw;\n top: 0;\n left: 0;\n\n display: none;\n justify-content: center;\n align-items: center;\n background: rgba(0, 0, 0, 0.25);\n\n z-index: 1000;\n}\n\n.cre8-c-modal.cre8-is-active {\n display: flex;\n visibility: visible;\n opacity: 1;\n}\n\n/**\n * Modal Focus Trap for Window (keeps focus in modal until closed)\n */\n.cre8-c-modal__focus-trap {\n display: contents;\n}\n\n/**\n * Modal Window\n */\n.cre8-c-modal__window {\n display: flex;\n flex-direction: column;\n flex-shrink: 0;\n position: fixed;\n background: var(--cre8-color-bg-default);\n width: size(68);\n max-width: 100%;\n border-radius: var(--cre8-border-radius-container);\n overflow: hidden;\n overflow-y: auto;\n\n /**\n * Modal Window for mobile user screen widths\n */\n @media all and (max-width:$cre8-breakpoint-md) {\n position: inherit;\n height: 100%;\n width: 100%;\n }\n\n &:focus-visible {\n @includefocus();\n }\n}\n\n/**\n * Modal Window Header\n */\n.cre8-c-modal__header {\n display: flex;\n padding: size(4) size(6) size(2);\n align-items: center;\n /**\n * Modal Header with Error state\n * 1) Icon fill prop is a custom property of cre8-icon-legacy that apply the color as a fill to the whole icon\n */\n .cre8-c-modal--error & {\n .cre8-modal-icon {\n fill: var(--cre8-color-content-error-icon); /* 1 */\n }\n }\n\n /**\n * Modal Header with Warning state\n * 1) Icon fill prop is a custom property of cre8-icon-legacy that apply the color as a fill to the whole icon\n */\n .cre8-c-modal--warning & {\n .cre8-modal-icon {\n fill: var(--cre8-color-content-warning-icon); /* 1 */\n }\n }\n\n /**\n * Modal Header with Success state\n * 1) Icon fill prop is a custom property of cre8-icon-legacy that apply the color as a fill to the whole icon\n */\n .cre8-c-modal--success & {\n .cre8-modal-icon {\n fill: var(--cre8-color-content-success-icon); /* 1 */\n }\n }\n\n /**\n * Modal Header with Info or Help State\n * 1) Icon fill prop is a custom property of cre8-icon-legacy that apply the color as a fill to the whole icon\n */\n .cre8-c-modal--info &,\n .cre8-c-modal--help & {\n .cre8-modal-icon {\n fill: var(--cre8-color-content-info-icon); /* 1 */\n }\n }\n}\n\n/**\n * Modal Heading\n */\n.cre8-c-modal__header-inner {\n display: flex;\n align-items: center;\n gap: size(2);\n\n cre8-icon {\n .cre8-modal-icon {\n height: size(4);\n width: size(4);\n }\n }\n}\n\n/**\n * Modal Window Body\n */\n.cre8-c-modal__body {\n max-height: 240px; // Prevent modal from getting too big based on content\n overflow: auto; // Force scrolling based on long amounts of content\n padding: 0 size(6);\n\n /**\n * Modal Window Body for mobile user screen widths\n */\n @media all and (max-width:$cre8-breakpoint-md) {\n height: 100%;\n max-height: max-content;\n }\n}\n\n/**\n * Modal Window Footer\n */\n.cre8-c-modal__footer {\n padding: size(3) size(6) calc(100vh - 95dvh); // Ensure footer slot isn't cut off on certain devices\n}\n\n/**\n * Modal Window Close button\n */\n.cre8-c-modal__close-button {\n margin-left: auto;\n}\n`;\nexport default styles;\n","import { PropertyValues, html, } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport svgError from '../../icons/System/Regular/Error.svg?raw';\nimport svgWarningFilled from '../../icons/System/Filled/Warning.svg?raw';\nimport svgCheckCircle from '../../icons/System/Filled/Check.svg?raw';\nimport svgInfoFilled from '../../icons/System/Filled/Info.svg?raw';\nimport svgHelp from '../../icons/System/Regular/Help.svg?raw';\nimport { Cre8Element } from '../cre8-element';\nimport '../icon/icon.js';\nimport '@a11y/focus-trap';\nimport styles from './modal.styles.js';\n\n/**\n * Modal component should be used in all modal situations.\n * It is natuarally composable and can even have a custom header and remove the close button.\n * (note: adding `slot=\"header\"` will insert the given element into the header section of the modal,\n * same for `slot=\"footer\"` and no given slot name will inset it into the body)\n *\n * If it is desired to create a utility modal. Cre8Modal requires a status value (see props table below,\n * and a UtilityModalTitle since all utility modals have a cre8-heading)\n * @slot - The component content\n */\nexport class Cre8Modal extends Cre8Element {\n static styles = [styles];\n\n/**\n * Query the modal window\n */\n@query('.cre8-c-modal__window')\n _modalWindow: HTMLDivElement;\n\n/**\n * Is Active attribute\n */\n@property({ type: Boolean, reflect: true })\n isActive?: boolean;\n\n/**\n * Status Types\n * <cre8-text-passage size=\"sm\">\n * <ul>\n * <li>**default (no value)** renders a default modal</li>\n * <li>**error** renders an error modal</li>\n * <li>**warning** renders a warning modal</li>\n * <li>**success** renders a success modal</li>\n * <li>**info** renders an info modal</li>\n * <li>**help** renders an help modal</li>\n * </ul>\n * </cre8-text-passage>\n */\n@property()\n status?: 'error' | 'warning' | 'success' | 'info' | 'help';\n\n/**\n * Utility Modal Heading (String)\n */\n@property()\n utilityModalTitle: string;\n\n/**\n * Not dismissible modal\n */\n@property({ type: Boolean, reflect: true })\n notDismissible?: boolean;\n\n/**\n * Close Button Text\n */\n@property()\n closeButtonText: string = 'close';\n\n/**\n * Close Button Icon\n */\n@property()\n closeButtonIcon: string = 'close';\n\n/**\n * Modal Aria Label - This is required for accessibility and provides context of the entire modal!\n */\n@property()\n ariaLabel: string;\n\n/**\n * Handle keydown\n * 1) Close the modal when escape is hit when the user is focused within the modal\n */\nhandleKeydown(e: KeyboardEvent) {\n if (e.code === 'Escape' && !this.notDismissible) {\n this.handleCloseModal(); /* 2 */\n }\n}\n\n/**\n * Handle on close\n * 1) On close, set the modal to not active and dispatch event telling the parent the modal was closed.\n */\nhandleCloseModal() {\n this.isActive = false;\n this.dispatch({\n eventName: 'close-modal',\n detailObj: {\n isActive: this.isActive,\n },\n });\n}\n\n/**\n * Handle \"click outside\"\n * 1) onClick of the area around the modal window, close the modal.\n */\n\nhandleOnClickOutside(e: Event) {\n const eventTarget = e.target as HTMLElement;\n if (this.isActive && this._modalWindow && eventTarget.classList.contains('cre8-c-modal') && !this.notDismissible) {\n this.handleCloseModal();\n }\n}\n\n/**\n * Lifecycle method to focus on modal\n * 1) If there is a changed property, and this.isActive === true, then focus on the modal window.\n * 2) Disable the body from scrolling behind while the modal is open.\n */\n\nupdated(changedProperties: PropertyValues<this>) {\n if (this.isActive === true) {\n setTimeout(() => {\n this._modalWindow.focus();\n }, 200);\n } /* 1 */\n\n if (changedProperties.has('isActive')) {\n const body = document.querySelector('body');\n if (this.isActive) {\n body.style.overflow = 'hidden';\n } else {\n body.style.removeProperty('overflow');\n }\n } /* 2 */\n}\n\n/*\n* Maps modal icons and modal status variants to what the alt text of the related icon should be\n* see: (https://digital.#.com/patterns-and-Components/informational-display/alerts-and-notifications#query=alerts)\n* this provides the recommendated alt text of different statuses\n*/\nmapStatusToIconModal = (status: string) => {\n switch (status) {\n case 'error':\n return html`<cre8-icon class=\"cre8-modal-icon\" svg=${svgError} aria-hidden='true'></cre8-icon>`;\n case 'success':\n return html`<cre8-icon class=\"cre8-modal-icon\" svg=${svgCheckCircle} aria-hidden='true'></cre8-icon>`;\n case 'warning':\n return html`<cre8-icon class=\"cre8-modal-icon\" svg=${svgWarningFilled} aria-hidden='true'></cre8-icon>`;\n case 'help':\n return html`<cre8-icon class=\"cre8-modal-icon\" svg=${svgHelp} aria-hidden='true'></cre8-icon>`;\n case 'info':\n return html`<cre8-icon class=\"cre8-modal-icon\" svg=${svgInfoFilled} aria-hidden='true'></cre8-icon>`;\n default:\n return null;\n }\n};\n\n/**\n * Lifecycle method on removal from the DOM\n * Removed body overflow and handle close (isActive set to false)\n */\ndisconnectedCallback() {\n this.isActive = false;\n const body = document.querySelector('body');\n body.style.removeProperty('overflow');\n}\n\nrender() {\n const componentClassNames = this.componentClassNames('cre8-c-modal', {\n 'cre8-is-active': this.isActive,\n 'cre8-c-modal--error': this.status === 'error',\n 'cre8-c-modal--warning': this.status === 'warning',\n 'cre8-c-modal--success': this.status === 'success',\n 'cre8-c-modal--info': this.status === 'info',\n 'cre8-c-modal--help': this.status === 'help',\n });\n\n return html`\n <div class=\"${componentClassNames}\" @click=\"${this.handleOnClickOutside}\" @keydown=${this.handleKeydown}>\n <focus-trap class=\"cre8-c-modal__focus-trap\" ?inactive=${!this.isActive}>\n <div class=\"cre8-c-modal__window\" role=\"dialog\" aria-label=${this.ariaLabel} tabindex=${this.isActive ? 0 : -1}>\n <div class=\"cre8-c-modal__header\">\n ${this.status\n ? html`<div class=\"cre8-c-modal__header-inner\">\n ${this.mapStatusToIconModal(this.status)}\n <cre8-heading type=\"title-large\" ?brandColor=${true}>${this.utilityModalTitle}</cre8-heading>\n </div>`\n : html`<slot name=\"header\"></slot>`}\n ${!this.notDismissible\n ? html`<cre8-button\n class=\"cre8-c-modal__close-button\"\n variant=\"tertiary\"\n text=\"${this.closeButtonText}\"\n ?hideText=${true}\n iconName=${this.closeButtonIcon}\n iconPosition=\"after\"\n ?inverted=${!this.status}\n @click=${this.handleCloseModal}\n ></cre8-button>`\n : ''}\n </div>\n <div class=\"cre8-c-modal__body\">\n <slot></slot>\n </div>\n ${this.slotNotEmpty('footer') && html`<div class=\"cre8-c-modal__footer\"><slot name=\"footer\"></slot></div>`}\n </div>\n </focus-trap>\n </div>\n`;\n}\n}\n\nif (customElements.get('cre8-modal') === undefined) {\n customElements.define('cre8-modal', Cre8Modal);\n}\n\nexport interface CloseModalEvent extends CustomEvent<{isActive: boolean}> {\n type: 'close-modal';\n currentTarget: Cre8Modal;\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-modal': Cre8Modal;\n }\n}\n","export default \"<svg fill=\\\"currentColor\\\" width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M15.7869 4.87827L8.51452 12.1506C8.44698 12.2182 8.36677 12.2719 8.27849 12.3085C8.1902 12.3451 8.09557 12.3639 8 12.3639C7.90443 12.3639 7.8098 12.3451 7.72151 12.3085C7.63323 12.2719 7.55302 12.2182 7.48548 12.1506L0.213121 4.87827C0.0766618 4.74181 0 4.55673 0 4.36375C0 4.17077 0.0766618 3.98569 0.213121 3.84923C0.34958 3.71277 0.534658 3.63611 0.72764 3.63611C0.920622 3.63611 1.1057 3.71277 1.24216 3.84923L8 10.608L14.7578 3.84923C14.8254 3.78166 14.9056 3.72806 14.9939 3.6915C15.0822 3.65493 15.1768 3.63611 15.2724 3.63611C15.3679 3.63611 15.4625 3.65493 15.5508 3.6915C15.6391 3.72806 15.7193 3.78166 15.7869 3.84923C15.8544 3.9168 15.908 3.99701 15.9446 4.08529C15.9812 4.17357 16 4.26819 16 4.36375C16 4.4593 15.9812 4.55392 15.9446 4.6422C15.908 4.73049 15.8544 4.8107 15.7869 4.87827Z\\\"/>\\n</svg>\\n\"","export default \"<svg fill=\\\"currentColor\\\" width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M10.8969 5.97385L8.87 8L10.8969 10.0262C10.9541 10.0833 10.9995 10.1512 11.0304 10.2259C11.0613 10.3006 11.0773 10.3807 11.0773 10.4615C11.0773 10.5424 11.0613 10.6225 11.0304 10.6972C10.9995 10.7719 10.9541 10.8397 10.8969 10.8969C10.8397 10.9541 10.7719 10.9994 10.6972 11.0304C10.6225 11.0613 10.5424 11.0773 10.4615 11.0773C10.3807 11.0773 10.3006 11.0613 10.2259 11.0304C10.1512 10.9994 10.0833 10.9541 10.0262 10.8969L8 8.87L5.97385 10.8969C5.91667 10.9541 5.8488 10.9994 5.77409 11.0304C5.69939 11.0613 5.61932 11.0773 5.53846 11.0773C5.45761 11.0773 5.37754 11.0613 5.30283 11.0304C5.22813 10.9994 5.16025 10.9541 5.10308 10.8969C5.0459 10.8397 5.00055 10.7719 4.96961 10.6972C4.93866 10.6225 4.92274 10.5424 4.92274 10.4615C4.92274 10.3807 4.93866 10.3006 4.96961 10.2259C5.00055 10.1512 5.0459 10.0833 5.10308 10.0262L7.13 8L5.10308 5.97385C4.98761 5.85837 4.92274 5.70176 4.92274 5.53846C4.92274 5.37516 4.98761 5.21855 5.10308 5.10308C5.21855 4.9876 5.37516 4.92273 5.53846 4.92273C5.70176 4.92273 5.85838 4.9876 5.97385 5.10308L8 7.13L10.0262 5.10308C10.0833 5.0459 10.1512 5.00055 10.2259 4.9696C10.3006 4.93866 10.3807 4.92273 10.4615 4.92273C10.5424 4.92273 10.6225 4.93866 10.6972 4.9696C10.7719 5.00055 10.8397 5.0459 10.8969 5.10308C10.9541 5.16025 10.9995 5.22813 11.0304 5.30283C11.0613 5.37753 11.0773 5.4576 11.0773 5.53846C11.0773 5.61932 11.0613 5.69939 11.0304 5.77409C10.9995 5.84879 10.9541 5.91667 10.8969 5.97385ZM16 8C16 9.58225 15.5308 11.129 14.6518 12.4446C13.7727 13.7602 12.5233 14.7855 11.0615 15.391C9.59966 15.9965 7.99113 16.155 6.43928 15.8463C4.88743 15.5376 3.46197 14.7757 2.34315 13.6569C1.22433 12.538 0.462403 11.1126 0.153721 9.56072C-0.15496 8.00887 0.00346628 6.40034 0.608967 4.93853C1.21447 3.47672 2.23985 2.22729 3.55544 1.34824C4.87103 0.469192 6.41775 0 8 0C10.121 0.00223986 12.1546 0.845814 13.6544 2.34562C15.1542 3.84542 15.9978 5.87895 16 8ZM14.7692 8C14.7692 6.66117 14.3722 5.35241 13.6284 4.23922C12.8846 3.12602 11.8274 2.25839 10.5905 1.74605C9.35356 1.2337 7.99249 1.09965 6.67939 1.36084C5.36629 1.62203 4.16013 2.26674 3.21343 3.21343C2.26674 4.16012 1.62203 5.36629 1.36084 6.67939C1.09965 7.99249 1.2337 9.35356 1.74605 10.5905C2.2584 11.8274 3.12603 12.8846 4.23922 13.6284C5.35241 14.3722 6.66117 14.7692 8 14.7692C9.79469 14.7672 11.5153 14.0534 12.7843 12.7843C14.0534 11.5153 14.7672 9.79468 14.7692 8Z\\\"/>\\n</svg>\\n\"","import { css } from 'lit';\nconst styles = css`@import \"../../design-tokens/core/scss/theming/component\";\n\n:host {\n display: block;\n}\n\n.cre8-c-multi-select {\n position: relative;\n}\n\n/**\n * Label\n */\n.cre8-c-multi-select__label {\n @include label-styles;\n}\n\n/**\n * Body\n * 1) The div that contains the input and icons\n */\n.cre8-c-multi-select__body {\n display: flex;\n align-items: center;\n justify-content: space-between;\n position: relative;\n @include input-styles;\n padding: var(--cre8-spacing-8);\n padding-inline-end: size(5.5);\n min-width: 240px;\n cursor: pointer;\n min-height: size(6);\n height: fit-content;\n\n .cre8-is-disabled & {\n box-shadow: none;\n background-color: var(--cre8-color-bg-disabled);\n border-color: var(--cre8-color-border-disabled);\n cursor: not-allowed;\n outline: none;\n\n &:hover,\n &:focus,\n &:active,\n &:focus-visible {\n outline: none;\n background-color: var(--cre8-color-bg-disabled);\n border-color: var(--cre8-color-border-disabled);\n color: var(--cre8-color-content-disabled);\n }\n\n .cre8-c-multi-select__content {\n border-color: var(--cre8-color-border-disabled);\n }\n }\n}\n\n.cre8-c-multi-select__content {\n display: flex;\n min-height: 30px;\n width: 100%;\n border-right: var(--cre8-border-width-default) var(--cre8-border-style-default) var(--cre8-color-border-strong);\n padding-right: size(5.5);\n}\n\n.cre8-c-multi-select__tag-wrapper {\n list-style-type: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-wrap: wrap;\n height: 100%;\n gap: size(0.5);\n}\n\n.cre8-c-multi-select__icons-wrapper {\n display: flex;\n justify-content: end;\n margin-right: -36px;\n margin-left: -48px;\n gap: size(3);\n min-width: 96px;\n\n button {\n background-color: inherit;\n border: none;\n padding: none;\n\n .cre8-is-disabled & {\n cursor: not-allowed;\n }\n }\n}\n\n.cre8-c-multi-select__clear_icon {\n .cre8-c-multi-select--no-clear-icon & {\n display: none;\n }\n}\n\n/**\n * Select Icon\n * 1) The icons within the body container positioned absolutely over the input\n */\ncre8-icon {\n display: flex;\n pointer-events: none;\n color: var(--cre8-color-button-tertiary-content);\n\n .cre8-is-disabled & {\n color: var(--cre8-color-border-disabled);\n }\n}\n\n.cre8-c-multi-select__dropdown {\n background-color: var(--cre8-color-bg-default);\n border: var(--cre8-border-width-default) var(--cre8-border-style-default) var(--cre8-color-border-strong);\n box-shadow: var(--cre8-shadow-default);\n border-radius: var(--cre8-border-radius-default);\n flex-direction: column;\n left: 0;\n min-width: 100%;\n position: absolute;\n top: 100%;\n white-space: nowrap;\n margin-top: var(--cre8-spacing-4);\n margin-left: 0;\n padding: var(--cre8-spacing-8);\n\n ul {\n list-style-type: none;\n padding: 0;\n margin: 0;\n }\n\n li {\n @include cre8-typography-body-default;\n background-color: var(--cre8-color-bg-default);\n border: var(--cre8-border-width-focus) var(--cre8-border-style-default) var(--cre8-color-border-transparent);\n border-radius: var(--cre8-border-radius-default);\n color: var(--cre8-color-content-default);\n width: 100%;\n cursor: pointer;\n margin: var(--cre8-spacing-0);\n padding: var(--cre8-spacing-8) var(--cre8-spacing-8);\n text-align: left;\n\n &:active,\n &:hover,\n &:focus {\n background-color: var(--cre8-color-bg-brand-hover);\n color: var(--cre8-color-content-default);\n outline: var(--cre8-border-width-none);\n border: var(--cre8-border-width-focus) var(--cre8-border-style-default) var(--cre8-color-border-active-outline);\n }\n }\n}\n\n/**\n * Select field notes\n */\n.cre8-c-multi-select__field-note,\n.cre8-c-multi-select__field-note-success,\n.cre8-c-multi-select__field-note-error {\n flex-basis: 100%;\n}`;\nexport default styles;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n/**\n * Remove Tags are buttons with text accompanied by a Close icon.\n */\n.cre8-c-remove-tag {\n @include cre8-typography-label-small;\n display: flex;\n align-items: center;\n align-content: center;\n appearance: none;\n white-space: nowrap;\n padding-left: var(--cre8-spacing-16);\n padding-right: var(--cre8-spacing-16);\n padding-top: var(--cre8-spacing-4);\n padding-bottom: var(--cre8-spacing-4);\n gap: var(--cre8-spacing-8);\n border-width: var(--cre8-border-width-default);\n border-style: var(--cre8-border-style-default);\n cursor: pointer;\n\n &:focus-visible {\n @include focus;\n }\n /**\n * Neutral remove tag\n */\n &.cre8-c-remove-tag--neutral {\n background-color: var(--cre8-color-bg-default);\n color: var(--cre8-color-content-default);\n border-color: var(--cre8-color-border-strong);\n \n &:hover, &:focus {\n background-color: var(--cre8-color-bg-default-hover);\n }\n }\n \n /**\n * Branded remove tag\n */\n &.cre8-c-remove-tag--branded {\n background-color: var(--cre8-color-bg-brand);\n color: var(--cre8-color-content-default);\n border-color: var(--cre8-color-border-transparent);\n \n &:hover, &:focus {\n background-color: var(--cre8-color-bg-brand-hover);\n }\n }\n \n /**\n * Neutral Hybrid remove tag\n */\n &.cre8-c-remove-tag--neutral-hybrid {\n background-color: var(--cre8-color-bg-default);\n color: var(--cre8-color-content-brand);\n border-color: var(--cre8-color-border-strong);\n \n &:hover, &:focus {\n background-color: var(--cre8-color-bg-default-hover);\n }\n }\n\n /**\n * Round remove tag\n */\n &.cre8-c-remove-tag--round {\n border-radius: var(--cre8-border-radius-round);\n }\n \n /**\n * Square remove tag\n */\n &.cre8-c-remove-tag--square {\n border-radius: var(--cre8-border-radius-small);\n }\n\n &:disabled {\n background-color: var(--cre8-color-bg-disabled);\n color: var(--cre8-color-content-disabled);\n border-color: var(--cre8-color-border-disabled);\n cursor: not-allowed;\n\n &:hover, &:focus {\n background-color: var(--cre8-color-bg-disabled);\n }\n }\n}\n\n.cre8-c-remove-tag-item__icon {\n align-items: center;\n width: size(2);\n height: size(2);\n}`;\nexport default styles;\n","import classnames from 'classnames';\nimport { html, } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport svgClose from '/Users/tylersmbp/Projects/cre8-web-components/packages/cre8-wc/icons/System/Regular/Close.svg?raw';\nimport { Cre8Element } from '../cre8-element';\nimport '../icon/icon';\nimport styles from './remove-tag.styles.js';\n\nexport enum Shape {\n Round = 'round',\n Square = 'square',\n}\n\nexport enum Color {\n Neutral = 'neutral',\n Branded = 'branded',\n NeutralHybrid = 'neutral-hybrid',\n}\n\n/**\n * Clicking a Remove Tag causes it to disappear from the page or field (in the case of Multi-Select).\n * These tags always display a \"Close\" icon.\n */\nexport class Cre8RemoveTag extends Cre8Element {\n static styles = [styles];\n\n /**\n * The tag text\n */\n @property({ type: String })\n text?: string;\n\n /**\n * The tag color scheme\n *\n * - **neutral** should be used when doing non-link actions such as filters or multi-select, within forms, etc.\n * - **neutral-hybrid** should be used for when tags are doing an action like a button or a link\n * - **branded** should be used like Neutral, but for marketing / actionable items\n */\n @property({ type: String })\n color: Color.Neutral | Color.Branded | Color.NeutralHybrid = Color.Neutral;\n\n /**\n * The tag shape\n *\n * - **round** will give the tag a rounded border\n * - **square** will give the tag a squared border\n */\n @property({ type: String })\n shape: Shape.Round | Shape.Square = Shape.Round;\n\n /**\n * Disabled state for remove tag\n */\n @property({ type: Boolean })\n disabled?: boolean;\n\n /**\n * Dispatches an event when the tag is clicked\n */\n private _handleRemoveTagClicked() {\n const customEvent = new CustomEvent('removeTagClicked', {\n detail: { message: 'Remove Tag clicked.' },\n bubbles: true,\n composed: true,\n });\n this.dispatchEvent(customEvent);\n }\n\n render() {\n const componentClassName = classnames('cre8-c-remove-tag', {\n 'cre8-c-remove-tag--neutral': this.color === 'neutral',\n 'cre8-c-remove-tag--branded': this.color === 'branded',\n 'cre8-c-remove-tag--neutral-hybrid': this.color === 'neutral-hybrid',\n 'cre8-c-remove-tag--round': this.shape === 'round',\n 'cre8-c-remove-tag--square': this.shape === 'square',\n });\n\n return html` <button\n class=\"${componentClassName}\"\n @click=\"${this._handleRemoveTagClicked}\"\n ?disabled=${this.disabled}\n >\n <span>${this.text}</span>\n <div class=\"cre8-c-remove-tag-item__icon\">\n <cre8-icon\n width=\"16\"\n height=\"16\"\n svg=\"${svgClose}\"\n aria-label=\"remove\"\n ></cre8-icon>\n </div>\n </button>`;\n }\n}\n\nif (customElements.get('cre8-remove-tag') === undefined) {\n customElements.define('cre8-remove-tag', Cre8RemoveTag);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-remove-tag': Cre8RemoveTag;\n }\n}\n\nexport default Cre8RemoveTag;\n","/* eslint-disable import/no-duplicates */\n/* eslint-disable no-duplicate-imports */\n/* eslint-disable lit/no-template-arrow */\n/* eslint-disable indent */\n\nimport { ifDefined } from 'lit-html/directives/if-defined.js';\nimport { html, nothing, } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { nanoid } from 'nanoid';\nimport svgCaretDown from '/Users/tylersmbp/Projects/cre8-web-components/packages/cre8-wc/icons/System/Regular/Caret_Down.svg?raw';\nimport svgClear from '/Users/tylersmbp/Projects/cre8-web-components/packages/cre8-wc/icons/System/Regular/Clear_X.svg?raw';\nimport styles from './multi-select.styles.js';\nimport { Cre8Element } from '../cre8-element';\nimport '../remove-tag/remove-tag';\nimport '../field-note/field-note';\nimport '../button/button';\nimport '../checkbox-field-item/checkbox-field-item';\n// eslint-disable-next-line import/no-named-as-default\nimport Cre8CheckboxFieldItem from '../checkbox-field-item/checkbox-field-item';\n\n/**\n * Multiselect is used when multiple options can be chosen from a static dropdown\n * This component has a list of items in the dropdown that can be added as \"selected tags\"\n * The checkbox will always reflect the selected nature of the item and is not removed\n * from the dropdown when clicked, the tags will be added and removed based on their state.\n *\n * Event `selectedItemsChange` emits whenever a tag is added or remove from the list and the\n * current list after the change is given in the detail.\n */\nexport class Cre8MultiSelect extends Cre8Element {\n static styles = [styles];\n \n\n /**\n * The list of string items the user can choose in the dropdown\n *\n * Note: For passing props containing arrays and complex types, you should pass the props using a\n * period in from of the prop like so: `.items=\"[]\"`\n * (this is only needed for Web Components and not the React version)\n * @attr {string[]}\n */\n @property({ type: Array })\n items: string[] = [];\n\n @state()\n selectedTagItems: string[] = [];\n\n /**\n * The list of string items that are initially in the selected list of tags\n * Note: This list MUST be a subset of the array of items to function.\n * i.e. if items=['cat', 'dog', 'bird'], preselectedItems=['cat'] is valid\n * while preselectedItems=['cat', 'goat'] is not and will break the component.\n *\n * Note: For passing props containing arrays and complex types, you should pass the props using a\n * period in from of the prop like so: `.items=\"[]\"`\n * (this is only needed for Web Components and not the React version)\n * @attr {string[]}\n */\n @property({ type: Array })\n preselectedItems: string[];\n\n @state()\n dropdownOpen: boolean = false;\n\n /**\n * The required label that appears above the multiselect\n * @attr {string}\n */\n @property()\n label: string;\n\n /**\n * The unique id of the select\n * @attr {string}\n */\n\n @property()\n fieldId?: string;\n\n /**\n * Optional field note text can be added to provide additional field guidance.\n * @attr {string}\n */\n @property()\n fieldNote?: string;\n\n /**\n * Used to connect the field note in text field to the text menu for accessibility\n * @attr {string}\n */\n @property()\n ariaDescribedBy?: string;\n\n /**\n * Additional aria-describedby connection to id for additional success and error notes to be accessible\n * @attr {string}\n */\n @property()\n validationAriaDescribedBy?: string;\n\n /**\n * The disabled attribute on the select\n * @attr {boolean}\n */\n @property({ type: Boolean, reflect: true })\n disabled?: boolean;\n\n /**\n * Changes the component's treatment to represent an error state\n * @attr {boolean}\n */\n @property({ type: Boolean, reflect: true })\n isError?: boolean;\n\n /**\n * The error field note that appears below the default field note\n * @attr {string}\n */\n @property()\n errorNote?: string;\n\n /**\n * Changes the component's treatment to represent a success state\n * @attr {boolean}\n */\n @property({ type: Boolean, reflect: true })\n isSuccess?: boolean;\n\n /**\n * The success field note that appears below the default field note\n * @attr {string}\n */\n @property()\n successNote?: string;\n\n /* Life Cycle Methods */\n\n constructor() {\n super();\n this._handleOnClick = this._handleOnClick.bind(this);\n }\n\n firstUpdated() {\n if (this.preselectedItems) this.setPreselectedItemsinDropdown();\n this.selectedTagItems = this.preselectedItems || [];\n this._initializeAria();\n }\n\n connectedCallback() {\n super.connectedCallback();\n window.addEventListener('click', this._handleOnClick, false);\n }\n\n disconnectedCallback(): void {\n super.disconnectedCallback();\n window.removeEventListener('click', this._handleOnClick, false);\n }\n\n /* HTML Content functions */\n\n private _renderDropdownItems() {\n return this.items.map(\n // Note: Keyboard can already navigate to the checkbox\n // eslint-disable-next-line lit-a11y/click-events-have-key-events\n (item, index) => html`<li\n @click=\"${(e: MouseEvent) => this._handleListItemClick(e, index)}\"\n >\n <cre8-checkbox-field-item\n .checked=\"${!!this.selectedTagItems.includes(item)}\"\n label=${item}\n id=${index}\n @input=\"${(e: InputEvent) => this._handleDropdownItemInput(item, e)}\"\n >\n </cre8-checkbox-field-item>\n </li>`\n );\n }\n\n private _renderSelectedTags() {\n if (!this.selectedTagItems.length) {\n return nothing;\n }\n return this.selectedTagItems.map(\n (item) => html`<li>\n <cre8-remove-tag\n text=\"${item}\"\n color=\"neutral\"\n shape=\"square\"\n ?disabled=\"${this.disabled}\"\n @removeTagClicked=\"${() => this._handleRemoveTagClick(item)}\"\n ></cre8-remove-tag>\n </li>`\n );\n }\n\n /* Helper Functions */\n\n private setPreselectedItemsinDropdown() {\n this.preselectedItems.forEach((item) => {\n this.selectedTagItems = this.selectedTagItems.concat(item);\n });\n }\n\n private clearAllTags() {\n if (!this.disabled) {\n if (this.dropdownOpen) {\n this.selectedTagItems.forEach((item) => {\n this.shadowRoot\n ?.querySelector(`cre8-checkbox-field-item[label=\"${item}\"]`)\n .shadowRoot?.querySelector('input')\n .click();\n });\n }\n this.selectedTagItems = [];\n\n this.emitSelectedItems();\n }\n }\n\n private emitSelectedItems(): void {\n const customEvent = new CustomEvent('selectedItemsChange', {\n detail: {\n selectedItems: this.selectedTagItems,\n },\n bubbles: true,\n composed: true,\n });\n this.dispatchEvent(customEvent);\n }\n\n private toggleDropDown(): void {\n this.dropdownOpen = !this.dropdownOpen;\n }\n\n /* Click Event Functions */\n\n private _handleOnClick(event?: MouseEvent) {\n if (!this.shadowRoot?.host) {\n throw Error(\n 'Could not determine navigation context during click handler'\n );\n }\n\n const didClickInside = event.composedPath().includes(this.shadowRoot.host);\n const label = this.renderRoot.querySelector(\n '.cre8-c-multi-select__label'\n );\n const buttonsWrapper = this.renderRoot.querySelector(\n '.cre8-c-multi-select__icons-wrapper'\n );\n const removeTagWrapper = this.shadowRoot?.querySelector(\n '.cre8-c-multi-select__tag-wrapper'\n );\n const dropdownWrapper = this.shadowRoot?.querySelector(\n '.cre8-c-multi-select__dropdown'\n );\n\n if (!didClickInside) {\n this.dropdownOpen = false;\n } else if (\n !event.composedPath().includes(label)\n && !event.composedPath().includes(removeTagWrapper)\n && !event.composedPath().includes(buttonsWrapper)\n && !event.composedPath().includes(dropdownWrapper)\n && !this.disabled\n ) {\n this.toggleDropDown();\n }\n }\n\n private _handleListItemClick(e: MouseEvent, index: number) {\n if (\n e.target\n !== this.shadowRoot?.querySelector(`cre8-checkbox-field-item[id=\"${index}\"]`)\n ) {\n this.shadowRoot\n ?.querySelector(`cre8-checkbox-field-item[id=\"${index}\"]`)\n .shadowRoot?.querySelector('input')\n .click();\n }\n }\n\n private _handleDropdownItemInput(item: string, e: InputEvent) {\n const targetCheckbox = e.target as Cre8CheckboxFieldItem;\n\n if (targetCheckbox.checked) {\n this.selectedTagItems = this.selectedTagItems.concat(item);\n } else {\n this.selectedTagItems = this.selectedTagItems.filter((i) => i !== item);\n }\n\n this.emitSelectedItems();\n }\n\n private async _handleRemoveTagClick(item: string) {\n if (!this.disabled) {\n this.selectedTagItems = this.selectedTagItems.filter((i) => i !== item);\n this.shadowRoot\n ?.querySelector(`cre8-checkbox-field-item[label=\"${item}\"]`)\n .shadowRoot?.querySelector('input')\n .click();\n await this.updateComplete;\n\n this.emitSelectedItems();\n }\n }\n\n private dropdownArrowClick() {\n if (!this.disabled) {\n this.toggleDropDown();\n }\n }\n\n private _handleButtonToListKeydown(e: KeyboardEvent): void {\n if (e.code === 'Escape') {\n e.preventDefault();\n this.toggleDropDown();\n }\n }\n\n\n private _handleListKeydown(e: KeyboardEvent) {\n if (e.code === 'Escape') {\n e.preventDefault();\n this.toggleDropDown();\n }\n }\n\n private _initializeAria() {\n this.fieldId = this.fieldId || nanoid();\n if (this.fieldNote || this.slotNotEmpty('fieldNote')) {\n this.ariaDescribedBy = this.ariaDescribedBy || nanoid();\n }\n if (this.successNote || this.errorNote) {\n this.validationAriaDescribedBy = this.validationAriaDescribedBy || nanoid();\n }\n }\n\n /**\n * Aria describedby string based on field notes and error/success notes\n * 1) If both validationAriaDescribedBy (error/success note) and field note exists,\n * render both in the input's `aria-describedby` attribute\n * 2) Otherwise, if only validationAriaDescribedBy exists, then render only that as\n * the `aria-describedby` attribute (input without field note initially, but then error/success is added).\n * 3) Otherwise, render only the `ariaDescribedBy` property (field note only)\n */\n private _fieldNoteAria() {\n if (this.validationAriaDescribedBy && this.ariaDescribedBy) {\n return `${this.ariaDescribedBy} ${this.validationAriaDescribedBy}`; /* 1 */\n }\n if (this.validationAriaDescribedBy && !this.ariaDescribedBy) {\n return this.validationAriaDescribedBy; /* 2 */\n }\n return this.ariaDescribedBy; /* 3 */\n }\n\n /**\n * Render the success or error field notes\n * 1. If there is a successNote, then return the field note with the success message and state.\n * 2. If there is a errorNote, then return the field note with the error message and state.\n */\n private _renderSuccessErrorFieldNote() {\n if (this.successNote) {\n /* 1 */\n return html` <cre8-field-note\n ?isSuccess=${this.isSuccess}\n id=${this.validationAriaDescribedBy}\n class=\"cre8-c-multi-select__field-note-success\"\n iconName=\"success\"\n >\n ${this.successNote}\n </cre8-field-note>`;\n }\n if (this.errorNote) {\n /* 2 */\n return html` <cre8-field-note\n ?isError=${this.isError}\n id=${this.validationAriaDescribedBy}\n class=\"cre8-c-multi-select__field-note-error\"\n iconName=\"error-alt\"\n >\n ${this.errorNote}\n </cre8-field-note>`;\n }\n return null;\n }\n\n render() {\n const componentClassNames = this.componentClassNames(\n 'cre8-c-multi-select',\n {\n 'cre8-is-error': this.isError,\n 'cre8-is-success': this.isSuccess,\n 'cre8-is-disabled': this.disabled,\n 'cre8-c-multi-select--no-clear-icon': !this.selectedTagItems.length,\n }\n );\n\n return html`\n <div class=\"${componentClassNames}\">\n <label class=\"cre8-c-multi-select__label\" id=\"${this.fieldId}\"\n >${this.label}</label\n >\n <div class=\"cre8-c-multi-select__body\" ?disabled=${this.disabled}>\n <div\n class=\"cre8-c-multi-select__content\"\n aria-describedby=\"${ifDefined(this._fieldNoteAria())}\"\n >\n <ul\n class=\"cre8-c-multi-select__tag-wrapper\"\n aria-label=\"selected items\"\n >\n ${this._renderSelectedTags()}\n </ul>\n </div>\n <div class=\"cre8-c-multi-select__icons-wrapper\">\n <cre8-button\n ?hideText=${true}\n svg=\"${svgClear}\"\n text=\"Clear All\"\n variant=\"tertiary\"\n ?disabled=\"${this.disabled}\"\n class=\"cre8-c-multi-select__clear_icon\"\n @click=\"${this.clearAllTags}\"\n >\n </cre8-button>\n <cre8-button\n ?hideText=${true}\n svg=\"${svgCaretDown}\"\n variant=\"tertiary\"\n ?disabled=\"${this.disabled}\"\n class=\"cre8-c-multi-select__down_icon\"\n @click=\"${this.dropdownArrowClick}\"\n @keydown=\"${this._handleButtonToListKeydown}\"\n text=\"Open Dropdown\"\n aria-expanded=\"${this.dropdownOpen}\"\n aria-labelledby=\"${this.fieldId}\"\n >\n </cre8-button>\n </div>\n </div>\n ${this.dropdownOpen\n ? html`\n <fieldset class=\"cre8-c-multi-select__dropdown\" aria-describedby=\"${this.fieldId}\">\n <ul\n aria-label=\"available items\"\n @keydown=\"${this._handleListKeydown}\"\n >\n ${this._renderDropdownItems()}\n </ul>\n </fieldset>`\n : nothing}\n </div>\n ${this.fieldNote || this.slotNotEmpty('fieldNote')\n ? html`<cre8-field-note\n id=${this.ariaDescribedBy}\n class=\"cre8-c-multi-select__field-note\"\n >\n <slot name=\"fieldNote\">${this.fieldNote}</slot>\n </cre8-field-note>`\n : nothing}\n ${this._renderSuccessErrorFieldNote()}\n `;\n }\n}\n\nif (customElements.get('cre8-multi-select') === undefined) {\n customElements.define('cre8-multi-select', Cre8MultiSelect);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-multi-select': Cre8MultiSelect;\n }\n}\n\nexport default Cre8MultiSelect;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n/**\n * 1) Wrapper around contents that get placed into a toggleable\n * menu on smaller screens (usually primary nav and maybe other contents)\n */\n:host {\n position: absolute;\n left: 0;\n top: 100%;\n width: 100%;\n height: 100vh;\n background: var(--cre8-nav-container-background, var(--cre8-color-header-submenu-bg-default));\n overflow: auto;\n\n @media all and (min-width:$cre8-breakpoint-lg) {\n position: static;\n width: auto;\n height: auto;\n background: none;\n }\n}\n\n/**\n * Actual nav container component\n */\n.cre8-c-nav-container {\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n\n @media all and (min-width:$cre8-breakpoint-lg) {\n flex-direction: row;\n }\n}\n`;\nexport default styles;\n","import { html, } from 'lit';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './nav-container.styles.js';\n\n/**\n * @slot - The navigation container content\n */\nexport class Cre8NavContainer extends Cre8Element {\n static styles = [styles];\n\n render() {\n const componentClassName = this.componentClassNames('cre8-c-nav-container', {});\n\n return html`\n <div class=\"${componentClassName}\">\n <slot></slot>\n </div>\n `;\n }\n}\n\nif (customElements.get('cre8-nav-container') === undefined) {\n customElements.define('cre8-nav-container', Cre8NavContainer);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-nav-container': Cre8NavContainer;\n }\n}\n\nexport default Cre8NavContainer;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n/**\n * 1) Headline of a page with an h1 heading and optional description\n */\n.cre8-c-page-header {\n margin-bottom: size(4);\n}\n\n/**\n * Page header title\n */\n.cre8-c-page-header__title {\n display: inline;\n margin: 0;\n @include cre8-typography-display-default();\n}\n\n/**\n * Page header title after\n * 1) Container placed after page header title if something like a badge needs to be placed there\n */\n.cre8-c-page-header__title-after {\n display: inline-block;\n position: relative;\n bottom: size(1.25);\n margin-left: size(2);\n}\n\n/**\n * Page header description\n */\n.cre8-c-page-header__description {\n @include cre8-typography-body-default;\n}\n`;\nexport default styles;\n","import { html, } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './page-header.styles.js';\n\n/**\n * @slot - The page header content\n */\nexport class Cre8PageHeader extends Cre8Element {\n static styles = [styles];\n\n /**\n * Page header title\n */\n @property({ type: String })\n heading: string = 'Page header title';\n\n render() {\n const componentClassName = this.componentClassNames('cre8-c-page-header', {});\n\n return html`\n <div class=\"${componentClassName}\">\n <h1 class=\"cre8-c-page-header__title\">\n ${this.heading}\n ${this.slotNotEmpty('titCre8ter') && html`\n <div class=\"cre8-c-page-header__title-after\">\n <slot name=\"titCre8ter\"></slot>\n </div>`}\n </h1>\n <div class=\"cre8-c-page-header__description\">\n <slot></slot>\n </div>\n </div>\n `;\n }\n}\n\nif (customElements.get('cre8-page-header') === undefined) {\n customElements.define('cre8-page-header', Cre8PageHeader);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-page-header': Cre8PageHeader;\n }\n}\n\nexport default Cre8PageHeader;\n","export default \"<svg fill=\\\"currentColor\\\" width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M12.1508 14.7578C12.2184 14.8254 12.272 14.9056 12.3085 14.9939C12.3451 15.0822 12.3639 15.1768 12.3639 15.2724C12.3639 15.3679 12.3451 15.4625 12.3085 15.5508C12.272 15.6391 12.2184 15.7193 12.1508 15.7869C12.0832 15.8544 12.003 15.908 11.9147 15.9446C11.8265 15.9812 11.7318 16 11.6363 16C11.5407 16 11.4461 15.9812 11.3578 15.9446C11.2695 15.908 11.1893 15.8544 11.1218 15.7869L3.8494 8.51452C3.78178 8.44698 3.72814 8.36677 3.69154 8.27849C3.65495 8.1902 3.63611 8.09557 3.63611 8C3.63611 7.90443 3.65495 7.8098 3.69154 7.72151C3.72814 7.63323 3.78178 7.55302 3.8494 7.48548L11.1218 0.213121C11.2582 0.0766618 11.4433 -3.80414e-09 11.6363 0C11.8293 3.80414e-09 12.0143 0.0766618 12.1508 0.213121C12.2873 0.34958 12.3639 0.534658 12.3639 0.72764C12.3639 0.920622 12.2873 1.1057 12.1508 1.24216L5.39205 8L12.1508 14.7578Z\\\"/>\\n</svg>\\n\"","export default \"<svg fill=\\\"currentColor\\\" width=\\\"16\\\" height=\\\"16\\\" viewBox=\\\"0 0 16 16\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n<path d=\\\"M15.7869 14.7577C15.8544 14.8253 15.908 14.9055 15.9446 14.9937C15.9812 15.082 16 15.1766 16 15.2722C16 15.3678 15.9812 15.4624 15.9446 15.5507C15.908 15.6389 15.8544 15.7191 15.7869 15.7867C15.7193 15.8543 15.6391 15.9079 15.5508 15.9444C15.4625 15.981 15.3679 15.9998 15.2724 15.9998C15.1768 15.9998 15.0822 15.981 14.9939 15.9444C14.9056 15.9079 14.8254 15.8543 14.7579 15.7867L7.48557 8.51443C7.41795 8.44689 7.36432 8.36669 7.32772 8.2784C7.29112 8.19012 7.27228 8.09549 7.27228 7.99992C7.27228 7.90435 7.29112 7.80972 7.32772 7.72143C7.36432 7.63315 7.41795 7.55294 7.48557 7.4854L14.7579 0.213119C14.8943 0.076661 15.0794 -3.8041e-09 15.2724 0C15.4653 3.8041e-09 15.6504 0.076661 15.7869 0.213119C15.9233 0.349576 16 0.534653 16 0.727633C16 0.920613 15.9233 1.10569 15.7869 1.24215L9.0282 7.99992L15.7869 14.7577ZM1.75592 7.99992L8.5146 1.24215C8.65106 1.10569 8.72772 0.920613 8.72772 0.727633C8.72772 0.534653 8.65106 0.349576 8.5146 0.213119C8.37814 0.076661 8.19306 1.43782e-09 8.00008 0C7.8071 -1.43781e-09 7.62203 0.076661 7.48557 0.213119L0.213286 7.4854C0.145671 7.55294 0.0920317 7.63315 0.0554344 7.72143C0.0188371 7.80972 0 7.90435 0 7.99992C0 8.09549 0.0188371 8.19012 0.0554344 8.2784C0.0920317 8.36669 0.145671 8.44689 0.213286 8.51443L7.48557 15.7867C7.55314 15.8543 7.63335 15.9079 7.72163 15.9444C7.80991 15.981 7.90453 15.9998 8.00008 15.9998C8.09564 15.9998 8.19026 15.981 8.27854 15.9444C8.36682 15.9079 8.44703 15.8543 8.5146 15.7867C8.58217 15.7191 8.63576 15.6389 8.67233 15.5507C8.7089 15.4624 8.72772 15.3678 8.72772 15.2722C8.72772 15.1766 8.7089 15.082 8.67233 14.9937C8.63576 14.9055 8.58217 14.8253 8.5146 14.7577L1.75592 7.99992Z\\\"/>\\n</svg>\\n\"","export const screenSizes: {\n [key: string]: number;\n} = {\n xsm: 375,\n sm: 560,\n md: 768,\n lg: 960,\n xl: 1200,\n xxl: 1600,\n};\n\n\nexport const isMobile = (screen = '768'): boolean => !window.matchMedia(`(min-width: ${screen}px)`).matches;\n","import { css } from 'lit';\nconst styles = css`@import '../../../design-tokens/core/scss/theming/component';\n\n// #PAGE-COUNTER\n:host{\n display: inline-flex;\n}\n\n/**\n * 1)\n */\n .cre8-c-pagination__text{\n @include cre8-typography-label-small();\n padding: size(1);\n }\n`;\nexport default styles;\n","/* eslint-disable import/prefer-default-export */\nimport { html, } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { Cre8Element } from '../../cre8-element';\nimport styles from './page-counter.styles.js';\n\n/**\n * @slot - The component content\n */\nexport class Cre8PageCounter extends Cre8Element {\n static styles = [styles];\n\n @property({ type: Boolean, reflect: true })\n rangeVariant?: boolean;\n\n @property()\n currentPage: number = 1;\n\n @property()\n totalResults: number;\n\n @property()\n pageSize: number;\n\n @property()\n display?: 'compact' | 'icon-only' | 'default' = 'default';\n\n // Properties below are for future 'range' variant for table pagination\n\n // private get _currentResults() {\n // return this.pageSize * (this.currentPage - 1);\n // }\n\n // private get _firstInRange() {\n // return this._currentResults + 1;\n // }\n\n // private get _lastInRange() {\n // const last = this._firstInRange + (this.pageSize - 1);\n // return last > this.totalResults ? this.totalResults : last;\n // }\n\n private get _totalPages(): number {\n return Math.ceil(this.totalResults / this.pageSize);\n }\n\n render() {\n const componentClassNames = this.componentClassNames('cre8-c-page-counter', { });\n\n return html`\n <div class='${componentClassNames}'>\n <span class=\"cre8-c-pagination__text\" aria-live=\"polite\">\n ${!this.display || this.display === 'default'\n ? html`${this.currentPage}`\n : html`${this.currentPage} of ${this._totalPages}`\n}\n </span>\n </div>\n `;\n }\n}\n\nif (customElements.get('cre8-page-counter') === undefined) {\n customElements.define('cre8-page-counter', Cre8PageCounter);\n}\n\ndeclare global { interface HTMLElementTagNameMap { 'cre8-page-counter': Cre8PageCounter; } }\n","import { css } from 'lit';\nconst styles = css`\n@import '../../design-tokens/core/scss/theming/component';\n\n:host {\n display: var(--pagination-display, inline-flex);\n justify-content: var(--pagination-justify-content, center);\n align-items: var(--pagination-align-items, center);\n --cre8-button-width: 2rem;\n --cre8-button-height: 2rem;\n --cre8-button-min-width: 2rem;\n --cre8-button-min-height: 2rem;\n --cre8-button-padding-horizontal-small: 0px;\n --cre8-button-padding-vertical-small: 0px;\n\n }\n\n *, ::slotted(*), *:before, *:after {\n box-sizing: border-box;\n width: auto;\n height: auto;\n display: flex;\n justify-content: center;\n --cre8-button-margin-right: var(--cre8-spacing-2);\n --cre8-button-margin-left: var(--cre8-spacing-2);\n margin-right: var(--cre8-button-margin-right);\n margin-left: var(--cre8-button-margin-left);\n\n align-items: center;\n}\n\n [aria-current='true'], #current{\n --cre8-color-button-tertiary-bg: var( --cre8-color-bg-strong);\n --cre8-color-button-tertiary-content: var(--cre8-color-content-knockout);\n --cre8-color-button-tertiary-border: var(--cre8-color-border-transparent);\n &:hover, &:active{\n border-radius: var(--cre8-border-radius-button);\n --cre8-color-button-tertiary-bg-hover: var(--cre8-color-bg-strong);\n --cre8-color-button-tertiary-content-hover: var(--cre8-color-content-knockout);\n\n &:focus, &:focus-visible, &:focus-within{\n border-radius: var(--cre8-border-radius-button);\n\n --cre8-color-button-tertiary-bg-active: var(--cre8-color-bg-strong);\n --cre8-color-button-tertiary-content-active: var(--cre8-color-content-knockout);\n @includefocus();\n }\n }\n }\n\n.cre8-c-pagination--compact, .cre8-c-pagination--icon-only, .cre8-c-pagination--range {\n --cre8-button-width: 3rem;\n --cre8-button-height: 3rem;\n --cre8-button-min-width: 3rem;\n --cre8-button-min-height: 3rem;\n}\n\n.cre8-c-pagionation__icon {\n fill: var(--cre8-color-button-tertiary-content);\n}\n.cre8-c-pagination__icon:has(cre8-button:disabled){\n color: var(--cre8-color-button-tertiary-content-disabled);\n}\n\n.cre8-c-pagination [aria-disabled=\"true\"]{\n fill: var(--cre8-color-content-default);\n --cre8-color-button-tertiary-content: var(--cre8-color-content-default);\n}\n`;\nexport default styles;\n","/* eslint-disable import/prefer-default-export */\n/* eslint-disable lit/no-template-map */\nimport {\n html, HTMLTemplateResult, nothing,\n} from 'lit';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { property, queryAll, state } from 'lit/decorators.js';\nimport svgCaretLeft from '/Users/tylersmbp/Projects/cre8-web-components/packages/cre8-wc/icons/System/Regular/Caret_Left.svg?raw';\nimport svgFirstPage from '/Users/tylersmbp/Projects/cre8-web-components/packages/cre8-wc/icons/System/Regular/Caret_Double_Left.svg?raw';\nimport svgLastPage from '/Users/tylersmbp/Projects/cre8-web-components/packages/cre8-wc/icons/System/Regular/Caret_Double_Right.svg?raw';\nimport svgCaretRight from '/Users/tylersmbp/Projects/cre8-web-components/packages/cre8-wc/icons/System/Regular/Caret_Right.svg?raw';\nimport { Cre8Element } from '../cre8-element';\nimport {Cre8Button} from '../button/button';\nimport { isMobile, screenSizes } from '../../utilities/is-mobile';\nimport './page-counter/page-counter';\nimport styles from './pagination.styles.js';\n\n/**\n * The Pagination component is used to split up a large amount of results\n * by showing only a certain amount on each page. You can cycle through\n * the pages using Page Numbers, Next and Previous Buttons, or optional\n * First Page and Last Page Buttons. This component is also used by Table\n * to cycle through rows of results. Pagination has 3 display options:\n *\n * **default**: Can contain up to seven Page Numbers (ellipses included)\n * at a time flanked by Next and Previous Buttons. When there are more than\n * seven pages, numbers start getting replaced by ellipses. Use this option\n * when you have a lot of horizontal space in a layout. It should not be used\n * for mobile web layouts since its buttons are smaller than the minimum touch target of 44px.\n * The component has built in responsivity to mobile page size so you dont have tohandle this\n * seperately\n *\n *\n * **compact** : Best used as a summary of where you are among pages or table rows flanked by\n * Previous and Next Buttons. Use this option when you have limited horizontal space but still\n * need to show where users are among results. Great for mobile layouts.\n *\n *\n * **icon-only** : Use this option in very tight spaces when it’s not required to show users\n * where they are among results. Great for mobile layouts.\n *\n *\n * ## HOW TO USE\n *\n * Select an option from the “display” dropdown depending on layout width\n * Select where your current page is from the “Page” dropdown\n * To show less pages when using Full Numbers, use the \"visiblePages” toggles\n * To hide the First Page and Last Page Buttons, turn on the “hideFirstLastButton” toggle\n * To change the states of page numbers or buttons, interact with the buttond to invoke each “State”\n * When using Compact Numbers, you can choose between “compact” and “icon-only” formats\n *\n *\n * ## ACCESSIBILITY NOTE\n *\n * To best orient people using screen readers, push focus to the top of\n * the list of results after any of the pagination buttons have been triggered,\n * **except for the currently selected one**. Focus target could be a visual results heading,\n * or the top heading of the results container of the page selected\n * via a programmatic selector, e.g. < section id=“results” aria-label=\"results-section\" > or\n * < div role= “group” aria-label=“results” >.\n *\n * @dependency cre8-button, cre8-icon, cre8-pagination-counter\n * @csspart icon - distinguishes the page buttons from the icon buttons\n * @cssproperty \"--pagination-display\" - controls the display css property\n * @cssproperty \"--pagination-justify-content\" - controls horizontal alignment of pagination\n * @cssproperty \"--pagination-align-items\" - controls vertical alignment of pagination\n */\n\nexport class Cre8Pagination extends Cre8Element {\n static styles = [styles];\n\n static elementDefinitions = {\n 'cre8-button': Cre8Button,\n };\n\n @state()\n _currentPage: number = 99;\n\n /**\n * Input the total number of elements are returned from consuming app e.g. search results\n * @attr number\n * @required\n */\n @property({ reflect: true, type: Number })\n totalResults!: number;\n\n\n /**\n * how many elements will displayVariant per page, indicated by business to typically be 20\n * @attr number\n */\n @property({ type: Number, reflect: true })\n get pagesize() {\n return this._pageSize;\n }\n\n set pagesize(newSize: number) {\n const oldSize = this._pageSize;\n this._pageSize = newSize;\n this.requestUpdate('pageSize', oldSize);\n }\n\n @state()\n _pageSize = 10;\n\n\n /**\n * Controls how many page buttons are displayVarianted on the page\n * at once, if container size permits. recommended max = 5 pages\n *\n * @attr number\n */\n @property({ reflect: true, type: Number })\n visiblePages?: number = 5;\n\n /**\n * (optional) prop that allows for a compact and icon-only variant both\n * for mobile screen-sizes and for use in certain contexts as guided by design,\n * the component size will show 'default' in the absence of a value on desktop and\n * 'compact' on smaller views.\n *\n * @attr 'compact' | 'icon-only' | 'default'\n * @optional\n */\n @property({ type: String, reflect: true })\n display?: 'compact' | 'icon-only'| 'default';\n\n /**\n *\n *@state watches the width of the window and responds to show the accessibility approved variant.\n */\n @state()\n windowWidth!: number;\n\n @queryAll('cre8-button')\n buttons: typeof Cre8Button[];\n\n /**\n *\n * @optional\n */\n @property({ type: Boolean, reflect: true })\n hideLastAndFirstButtons?: boolean;\n\n @property({ reflect: true, type: Number })\n get currentPage() {\n return this._currentPage;\n }\n\n set currentPage(newPage: number) {\n const oldPage = this._currentPage;\n this._currentPage = newPage;\n this.requestUpdate('currentPage', oldPage);\n }\n\n connectedCallBack() {\n super.connectedCallback();\n }\n\n get maxVisiblePages() {\n const allowedVisiblePages = {\n md: 5,\n };\n\n // lg and up\n\n if (!isMobile(screenSizes.lg.toString())) {\n return this.visiblePages;\n }\n\n if (!isMobile(screenSizes.md.toString())) {\n return Math.min(allowedVisiblePages.md, this.visiblePages);\n }\n return 0;\n }\n\n\n private get totalPages(): number {\n return Math.ceil(this.totalResults / this.pagesize);\n }\n\n private get hasNoPreviousPage() {\n return this._currentPage <= 1;\n }\n\n private get hasNoNextPage() {\n return this._currentPage >= this.totalPages;\n }\n\n private _onHandleResize() {\n this.requestUpdate();\n }\n\n handleResize() {\n this._onHandleResize.bind(this);\n }\n\n // get range of pages to display [3, 4, 5], [2, 3, 4, 5]\n protected get pageRange():number[] {\n const left = Math.floor(this.maxVisiblePages / 2);\n let startPage = this.currentPage - left;\n startPage = Math.min(startPage, this.totalPages - this.maxVisiblePages + 1);\n startPage = Math.max(startPage, 1);\n const endPage = Math.min(startPage + this.maxVisiblePages - 1, this.totalPages);\n return [...Array(this.totalPages)].map((_, index) => index + 1).slice(startPage - 1, endPage);\n }\n\n protected async firstUpdated() {\n await this.updateComplete;\n if (this._pageSize !== this.pagesize) {\n const old = this._pageSize;\n this._pageSize = this.pagesize;\n this.requestUpdate('pageSize', old);\n }\n this.windowWidth = window.innerWidth;\n window.addEventListener('resize', () => {\n if (this.windowWidth !== window.innerWidth) {\n const oldWidth = this.windowWidth;\n this.windowWidth = window.innerWidth;\n this.handleResize();\n this.requestUpdate('isResponsive', oldWidth);\n }\n });\n if (this._currentPage !== this.currentPage) {\n const old = this._currentPage;\n this._currentPage = this.currentPage;\n this.requestUpdate('currentPage', old);\n }\n }\n\n disconnectedCallback() {\n window.removeEventListener('resize', this.handleResize);\n super.disconnectedCallback();\n }\n\n displayTypes(): HTMLTemplateResult {\n return html`<cre8-page-counter\n currentPage=${this.currentPage}\n style=\"display:${this.display === 'compact' ? 'flex' : 'none'};\"\n totalResults=${this.totalResults}\n pageSize=${this._pageSize}\n display=${this.display}>\n </cre8-page-counter>`;\n }\n\n private _handleKeydown = (page: number, _buttonName?: string) => (e: KeyboardEvent) => {\n if (e.code === 'Enter') {\n this._goToPage(page, _buttonName); /* 2 */\n }\n };\n\n private _goToPage = (page: number, _buttonName?: string) => () => {\n const old = this._currentPage;\n let focusButton: Cre8Button;\n this.buttons.forEach((_: typeof Cre8Button) => {\n const b = new Cre8Button();\n if (b.hideText && (b.text === _buttonName)) {\n focusButton = b;\n (focusButton.shadowRoot!.querySelector('.cre8-c-button') as HTMLButtonElement).blur();\n }\n return null;\n });\n this._currentPage = page;\n this.currentPage = this._currentPage;\n this.requestUpdate('currentPage', old);\n this.dispatchEvent(new CustomEvent(\n 'pagination.click',\n { detail: { buttonName: _buttonName ?? this.currentPage.toString(), value: this.currentPage } }\n ));\n };\n\n public goToPage(page: number, buttonName?: string) {\n return this._goToPage(page, buttonName).bind(this);\n }\n\n public handleKeydown(page: number, buttonName?: string) {\n return this._handleKeydown(page, buttonName);\n }\n\n render() {\n const classNames = this.componentClassNames('cre8-c-pagination', {\n 'cre8-c-pagination--compact': this.display !== undefined && this.display === 'compact',\n 'cre8-c-pagination--icon-only': this.display !== undefined && this.display === 'icon-only',\n });\n\n\n return html`<nav\n aria-label=\"pagination\"\n class=${classNames}>\n <slot></slot>\n ${!this.hideLastAndFirstButtons ? html` <cre8-button\n variant=\"tertiary\"\n size=\"sm\"\n text=\"\"\n hideText\n part=\"icon\"\n aria-disabled=\"${ifDefined(this.hasNoPreviousPage)}\"\n ?disabled=${this.hasNoPreviousPage}\n @click=${this.goToPage(1, 'First Page')}\n @keydown=${this.handleKeydown(1, 'First Page')}\n\n >\n <span slot=\"before\">\n <cre8-icon\n className=\"cre8-c-pagination__icon\"\n aria-label=\"First Page\"\n svg=${svgFirstPage}\n size=\"24\">\n </cre8-icon>\n </span>\n </cre8-button>` : nothing}\n <cre8-button\n variant=\"tertiary\"\n size=\"sm\"\n hideText\n text=\"\"\n part=\"icon\"\n aria-disabled=\"${ifDefined(this.hasNoPreviousPage)}\"\n ?disabled=${this.hasNoPreviousPage}\n @click=${this.goToPage(this._currentPage - 1, 'Previous Page')}\n @keydown=${this.handleKeydown(this.currentPage - 1, 'Previous Page')}\n\n >\n <span slot=\"before\">\n <cre8-icon\n className=\"cre8-c-pagination__icon\"\n aria-label=\"Previous Page\"\n slot=\"before\"\n svg=${svgCaretLeft}\n size=\"24\"\n\n >\n </cre8-icon>\n </span>\n </cre8-button>\n\n ${this.displayTypes()}\n ${!this.display || this.display === 'default'\n ? html`${this.pageRange[this.pageRange.length - 1] > 1 && this.pageRange[0] !== 1\n ? html`<cre8-button hideText iconName=\"ellipsis\" variant=\"tertiary\" size=\"sm\" aria-disabled=\"true\" inert></cre8-button>`\n : nothing}\n ${this.pageRange.map((page) => (page === this.currentPage\n ? html`<cre8-button variant=\"tertiary\" tab-index=\"-1\" text=\"${page}\" class=\"icon-only\" size=\"sm\" id=\"current\"></cre8-button>`\n : html`<cre8-button\n variant=\"tertiary\"\n size=\"sm\"\n text=\"${page}\"\n class=\"icon-only\"\n id=\"${page}\"\n @click=${this.goToPage(page, page.toString())}\n @keydown=${this.handleKeydown(page, page.toString())}>\n </cre8-button>`\n ))}\n ${this.pageRange[this.pageRange.length - 1] < this.totalPages\n ? html`<cre8-button\n hideText\n iconName=\"ellipsis\"\n text=\"ellipsis\"\n variant=\"tertiary\"\n size=\"sm\"\n aria-disabled=\"true\"\n inert>\n </cre8-button>`\n : nothing}`\n : nothing}\n <cre8-button\n variant=\"tertiary\"\n size=\"sm\"\n part=\"icon\"\n hideText\n text=\"\"\n aria-disabled=\"${ifDefined(this.hasNoNextPage)}\"\n ?disabled=${this.hasNoNextPage}\n @click=${this.goToPage(this.currentPage + 1, 'Next Page')}\n @keydown=${this.handleKeydown(this.currentPage + 1, 'Next Page')}\n\n >\n <span slot=\"before\">\n <cre8-icon\n aria-label=\"Next Page\"\n className=\"cre8-c-pagination__icon\"\n slot=\"before\" svg=${svgCaretRight}\n size=\"24\">\n </cre8-icon>\n </span>\n </cre8-button>\n\n ${!this.hideLastAndFirstButtons\n ? html` <cre8-button\n variant=\"tertiary\"\n size=\"sm\"\n hideText\n text=\"\"\n part=\"icon\"\n aria-disabled=\"${ifDefined(this.hasNoNextPage)}\"\n ?disabled=${this.hasNoNextPage}\n @click=${this.goToPage(this.totalPages, 'Last Page')}\n @keydown=${this.handleKeydown(this.totalPages, 'Last Page')}\n\n >\n <span slot=\"before\">\n <cre8-icon\n aria-label=\"Last Page\"\n className=\"cre8-c-pagination__icon\"\n slot=\"before\"\n svg=${svgLastPage}\n size=\"24\"\n >\n </cre8-icon>\n </span>\n </cre8-button>`\n : nothing}\n\n </nav>`;\n }\n}\n\nif (customElements.get('cre8-pagination') === undefined) {\n customElements.define('cre8-pagination', Cre8Pagination);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-pagination': Cre8Pagination;\n }\n}\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n/**\n * 1) Progress Meter\n * 2) Progress bar fill color custom property\n */\n\n :host {\n display: block;\n }\n\n.cre8-c-progress-meter__progress {\n --cre8-progress-meter-background: var(--cre8-color-content-brand); /* 2 */\n width: 100%;\n height: var(--cre8-progress-meter-height, size(1));\n background: var(--cre8-color-bg-transparent);\n border-width: var(--cre8-border-width-default);\n border-style: var(--cre8-border-style-default);\n border-color: var(--cre8-color-border-strong);\n border-radius: var(--cre8-border-radius-round);\n\n .cre8-c-progress-meter--knockout & {\n --cre8-progress-meter-background: var(--cre8-color-content-brand-knockout);\n border-color: var(--cre8-color-border-default);\n }\n \n /**\n * Progress bar background styling error\n */\n .cre8-c-progress-meter--error & {\n --cre8-progress-meter-background: var(--cre8-color-bg-error-strong);\n }\n\n /**\n * Progress bar background styling warning\n */\n .cre8-c-progress-meter--warning & {\n --cre8-progress-meter-background: var(--cre8-color-bg-warning-strong);\n }\n\n /**\n * Progress bar background styling success\n */\n .cre8-c-progress-meter--success & {\n --cre8-progress-meter-background: var(--cre8-color-bg-success-strong);\n }\n\n\n /**\n * Progress bar background styling indeterminate\n */\n .cre8-c-progress-meter--indeterminate & {\n --cre8-progress-meter-background: repeating-linear-gradient(\n -45deg,\n #009bdf,\n #009bdf 10px,\n #00628e 10px,\n #00628e 20px\n ); // TODO Possibly tokenize these\n }\n}\n\n/**\n * Progress bar sr-only escriptor\n */\n.cre8-c-progress-meter__sr-only {\n @include visuallyHidden;\n}\n\n\n/**\n * Progress bar background styling\n */\nprogress {\n color: var(--cre8-progress-meter-background);\n appearance: none;\n}\n\n/**\n * Progress bar background styling for Mozilla\n */\nprogress::-moz-progress-bar {\n background: var(--cre8-progress-meter-background);\n border-radius: var(--cre8-border-radius-round);\n}\n\n/**\n * Progress bar background styling for Safari and Chrome\n */\nprogress::-webkit-progress-bar {\n background: var(--cre8-color-bg-subtle);\n border-radius: var(--cre8-border-radius-round);\n}\nprogress::-webkit-progress-value {\n background: var(--cre8-progress-meter-background);\n border-radius: var(--cre8-border-radius-round);\n}\n\n/**\n * Hide Label except for screen readers\n */\n.cre8-c-progress-meter__label {\n @include visuallyHidden;\n}\n`;\nexport default styles;\n","import { html, } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { nanoid } from 'nanoid';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './progress-meter.styles.js';\n\n\nexport enum status {\n 'error', 'warning', 'success', undefined\n }\n\n/**\n * A progress meter provides feedback that the system is working and gives\n * the user an indication of how much time they will wait.\n * This indicator should be used when the system response time is longer and determinable.\n */\nexport class Cre8ProgressMeter extends Cre8Element {\n static styles = [styles];\n\n /**\n * Progress Status\n * - **Default** renders a meter with default status fill\n * - **Error** renders a meter with an error status fill\n * - **Warning** renders a meter with a warning status\n * - **Success** renders a meter with a success status fill\n *\n * @attr {status}\n */\n @property()\n status?: 'error' | 'warning' | 'success';\n\n /*\n * Determines if the progress meter is displayed on a dark background (uses knockout colors for contrast)\n * @attr {boolean}\n */\n @property({ type: Boolean, reflect: true })\n knockout?: boolean;\n\n /*\n * The max number for the progress bar (defaulted to 100 to match percentages)\n * @attr {number}\n */\n @property()\n max: number = 100;\n\n /*\n * The the percentage of the bar that is filled in (defaulted to match percentages)\n * I.E a value of 50 with a 100 max would result in half the meter being filled\n * @attr {number}\n */\n @property()\n value: number;\n\n /**\n * Progress Meter FieldId\n * @attr {string}\n */\n @property()\n fieldId?: string;\n\n /**\n * Progress Meter name\n * @attr {string}\n */\n @property()\n name?: string;\n\n /**\n * Progress Meter label\n * @attr {string}\n */\n @property()\n label: string;\n\n connectedCallback() {\n super.connectedCallback();\n this.fieldId = this.fieldId || nanoid();\n }\n\n render() {\n const componentClassNames = this.componentClassNames('cre8-c-progress-meter', {\n 'cre8-c-progress-meter--error': this.status === 'error',\n 'cre8-c-progress-meter--warning': this.status === 'warning',\n 'cre8-c-progress-meter--success': this.status === 'success',\n 'cre8-c-progress-meter--knockout': this.knockout,\n });\n\n return html`<div class=\"${componentClassNames}\">\n <label class=\"cre8-c-progress-meter__label\" for=\"${this.fieldId}\">${this.label}</label>\n <span class=\"cre8-c-progress-meter__sr-only\">${Math.round((this.value / this.max) * 100)}%</span>\n <progress\n class=\"cre8-c-progress-meter__progress\"\n aria-hidden=\"true\"\n id=${this.fieldId}\n name=${this.name}\n max=\"${this.max}\"\n value=\"${this.value}\"\n >\n ${Math.round((this.value / this.max) * 100)}%\n </progress>\n </div>`;\n }\n}\n\nif (customElements.get('cre8-progress-meter') === undefined) {\n customElements.define('cre8-progress-meter', Cre8ProgressMeter);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-progress-meter': Cre8ProgressMeter;\n }\n}\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n// #PERCENT-BAR\n\n\n/**\n * Percent Bar Controls\n */\n.cre8-c-percent-bar__controls {\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n align-items: center;\n min-height: size(4.5);\n}\n\n.cre8-c-percent-bar__button {\n size: var(--cre8-icon-size-default);\n}\n\n.cre8-c-percent-bar__text-passage {\n color: var(--cre8-color-content-default);\n @include cre8-typography-body-small();\n}\n\n.cre8-c-percent-bar__p {\n width: fit-content;\n}\n`;\nexport default styles;\n","/* eslint-disable indent */\nimport { html, nothing, } from 'lit';\nimport svgCaretUp from '/Users/tylersmbp/Projects/cre8-web-components/packages/cre8-wc/icons/System/Regular/Caret_Up.svg?raw';\nimport { property } from 'lit/decorators.js';\nimport { Cre8Element } from '../cre8-element';\nimport '../button/button';\nimport '../text-passage/text-passage';\nimport '../progress-meter/progress-meter';\nimport styles from './percent-bar.styles.js';\n\n/**\n * The percent bar visually indicates a user's current progress and has a few features: a basic display bar with\n * a percentage, an actionable icon that allows a user to revisit a prior step and an actionable link that\n * allows a user save their progress before exiting.\n */\nexport class Cre8PercentBar extends Cre8Element {\n static styles = [styles];\n\n\n /*\n * The current step the user is on.\n */\n @property()\n value: number;\n\n /*\n * The total number of steps in the multistep process.\n */\n @property()\n max: number;\n\n /*\n * The action-left icon-only tertiary button in the percent bar controls can be disabled.\n */\n @property({ type: Boolean, reflect: true })\n disableActionLeft?: boolean;\n\n private _handleClick(e: MouseEvent) {\n this.dispatchEvent(new Event('leftActionButtonClick', e));\n }\n\n private fractionAsPercent(): number {\n return Math.round((this.value / this.max) * 100);\n }\n\n private isFirstStep(): boolean {\n return this.value > 1;\n }\n\n render() {\n const componentClassNames = this.componentClassNames('cre8-c-percent-bar', {});\n\n return html`\n <div class=\"${componentClassNames}\">\n <div class=\"cre8-c-percent-bar__controls\">\n <div lass=\"cre8-c-percent-bar__left-controls\">\n ${this.isFirstStep()\n ? html` <cre8-button\n ?hideText=${true}\n svg=\"${svgCaretUp}\"\n iconRotateDegree=\"-90\"\n variant=\"tertiary\"\n ?disabled=${this.disableActionLeft}\n @click=\"${this._handleClick}\"\n >\n </cre8-button>`\n : nothing}\n </div>\n <div class=\"cre8-c-percent-bar__right-controls\">\n <cre8-text-passage\n size=\"small\"\n class=\"cre8-c-percent-bar__text-passage\"\n >\n ${this.fractionAsPercent()}%\n </cre8-text-passage>\n </div>\n </div>\n <cre8-progress-meter\n value=\"${this.value}\"\n max=\"${this.max}\"\n ></cre8-progress-meter>\n </div>\n `;\n }\n}\n\nif (customElements.get('cre8-percent-bar') === undefined) {\n customElements.define('cre8-percent-bar', Cre8PercentBar);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-percent-bar': Cre8PercentBar;\n }\n}\n\nexport default Cre8PercentBar;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n/*------------------------------------*\\\n #POPOVER\n\\*------------------------------------*/\n\n:host {\n display: inline-flex;\n}\n\n/** \n * Popover\n * The main container that holds the trigger and panel\n */\n.cre8-c-popover {\n position: relative;\n display: table;\n}\n\n/** \n * Popover panel\n * The container for the popover panel heading, content, and footer\n * 1. Allows the popover to appear over elements, but underneath the global header.\n */\n.cre8-c-popover__panel {\n @include cre8-typography-body-default();\n opacity: 0;\n visibility: hidden;\n position: absolute;\n inset-block-start: calc(100% + #{size(1.5)});\n inset-block-end: auto;\n inset-inline-start: 50%;\n inset-inline-end: auto;\n transform: translateX(var(--rtlTranslateX, -50%));\n display: flex;\n flex-direction: column;\n gap: size(1);\n width: size(32);\n z-index: 400; /* 1 */\n background-color: var(--cre8-color-bg-default);\n border: var(--cre8-border-width-default) var(--cre8-border-style-default) var(--cre8-color-border-strong);\n border-radius: var(--cre8-border-radius-default);\n box-shadow: var(--cre8-shadow-default);\n padding: size(2);\n\n /**\n * Focus state for popover panel\n */\n &:focus-visible {\n @include focus;\n }\n \n /**\n * Default Popover heading \n */\n .cre8-c-popover__heading {\n @include cre8-typography-label-small();\n }\n\n /**\n * Active state for popover panel\n */\n .cre8-is-active:not(.cre8-is-dynamic) &,\n .cre8-is-active.cre8-is-dynamic-active & {\n opacity: 1;\n visibility: visible;\n }\n\n /**\n * Popover panel positioned to the top of the trigger\n */\n .cre8-c-popover--top & {\n inset-block-start: auto;\n inset-block-end: calc(100% + #{size(1.5)});\n inset-inline-start: 50%;\n inset-inline-end: auto;\n transform: translateX(var(--rtlTranslateX, -50%));\n }\n\n /**\n * Popover panel positioned to the left of the trigger\n */\n .cre8-c-popover--left & {\n inset-block-start: 50%;\n inset-block-end: auto;\n inset-inline-start: auto;\n inset-inline-end: calc(100% + #{size(1.5)});\n transform: translateY(-50%);\n }\n\n /**\n * Popover panel positioned to the right of the trigger\n */\n .cre8-c-popover--right & {\n inset-block-start: 50%;\n inset-block-end: auto;\n inset-inline-start: calc(100% + #{size(1.5)});\n inset-inline-end: auto;\n transform: translateY(-50%);\n }\n}\n\n/**\n * Popover panel arrow\n */\n.cre8-c-popover__panel::before {\n content: '';\n display: block;\n width: size(1.5);\n height: size(1.5);\n position: absolute;\n margin: auto;\n background-color: var(--cre8-color-bg-default);\n border-block-start: var(--cre8-border-width-default) var(--cre8-border-style-default) var(--cre8-color-border-strong);\n border-inline-start: var(--cre8-border-width-default) var(--cre8-border-style-default) var(--cre8-color-border-strong);\n inset-block-start: calc((var(--cre8-border-width-default) + #{size(0.75)}) * -1);\n inset-inline-start: 50%;\n transform: translateX(var(--rtlTranslateX, -50%)) rotate(45deg);\n\n /**\n * Moves the popover panel arrow to the top of the panel\n */\n .cre8-c-popover--top & {\n inset-block-start: auto;\n inset-block-end: calc((var(--cre8-border-width-default) + #{size(0.75)}) * -1);\n border-block-start: none;\n border-inline-start: none;\n border-block-end: var(--cre8-border-width-default) var(--cre8-border-style-default) var(--cre8-color-border-strong);\n border-inline-end: var(--cre8-border-width-default) var(--cre8-border-style-default) var(--cre8-color-border-strong);\n }\n\n /**\n * Moves the popover panel arrow to the right side of the panel\n */\n .cre8-c-popover--left & {\n inset-block-start: 50%;\n inset-block-end: auto;\n inset-inline-start: auto;\n inset-inline-end: calc((var(--cre8-border-width-default) + #{size(0.75)}) * -1);\n border-block-start: var(--cre8-border-width-default) var(--cre8-border-style-default) var(--cre8-color-border-strong);\n border-inline-start: none;\n border-block-end: none;\n border-inline-end: var(--cre8-border-width-default) var(--cre8-border-style-default) var(--cre8-color-border-strong);\n transform: translateY(-50%) rotate(var(--rtlRotate45Inverse, 45deg));\n }\n\n /**\n * Moves the popover panel arrow to the left side of the panel\n */\n .cre8-c-popover--right & {\n inset-block-start: 50%;\n inset-block-end: auto;\n inset-inline-start: calc((var(--cre8-border-width-default) + #{size(0.75)}) * -1);\n inset-inline-end: auto;\n border-block-start: none;\n border-inline-start: var(--cre8-border-width-default) var(--cre8-border-style-default) var(--cre8-color-border-strong);\n border-block-end: var(--cre8-border-width-default) var(--cre8-border-style-default) var(--cre8-color-border-strong);\n border-inline-end: none;\n transform: translateY(-50%) rotate(var(--rtlRotate45Inverse, 45deg));\n }\n}\n\n/**\n * Popover footer\n * 1) The footer container in the panel\n */\n.cre8-c-popover__footer {\n display: flex;\n gap: size(2);\n}\n`;\nexport default styles;\n","import { html, nothing, } from 'lit';\nimport { property, query, queryAssignedElements } from 'lit/decorators.js';\nimport { Cre8Element } from '../cre8-element';\nimport '../heading/heading';\nimport styles from './popover.styles.js';\nimport { Cre8Button } from '../button/button';\n\n/**\n * The Popover is for progressive disclosure of relevant content often hidden behind a help or info icon.\n * Its content should be no longer than 3-4 lines in addition to a line of heading text and an optional button.\n * @slot - The component content\n */\n\nexport class Cre8Popover extends Cre8Element {\n static styles = [styles];\n\n /**\n * The heading text that appears at the top of the popover panel. Should only be 2-3 lines max.\n * @attr {string | undefined}\n */\n @property()\n heading?: string;\n\n /**\n * Positions the popover panel absolutely to the trigger\n * - **default** positions the popover panel below the trigger\n * - **top** positions the popover panel below the trigger\n * - **left** positions the popover panel below the trigger\n * - **right** positions the popover panel below the trigger\n * @attr {string | undefined}\n */\n @property()\n position?: 'top' | 'left' | 'right';\n\n /**\n * Set to prevent the popover panel from hiding on scroll\n * @attr {boolean | undefined}\n */\n @property({ type: Boolean, reflect: true })\n isVisibleOnScroll?: boolean;\n\n /**\n * The dynamic state for the popover\n * - If true, the popover panel placement is determined by its position in the viewport\n * - If false, the popover panel placement will be placed according to the position value\n * @attr {boolean | undefined}\n */\n @property({ type: Boolean, reflect: true })\n isDynamic?: boolean;\n\n /**\n * The dynamic active state\n * _This property is dynamically set_\n * @attr {boolean | undefined}\n */\n @property({ type: Boolean, reflect: true })\n isActiveDynamic?: boolean;\n\n /**\n * The active state for the popover\n * - If true, the popover panel is visible\n * - If false, the popover panel is hidden\n *\n * _This property is dynamically set_\n * @attr {boolean | undefined}\n */\n @property({ type: Boolean, reflect: true })\n isActive?: boolean;\n\n\n /**\n * Query the popover panel element\n */\n @query('.cre8-c-popover')\n _Cre8Popover: HTMLElement;\n\n /**\n * Query the popover panel element\n */\n @query('.cre8-c-popover__panel')\n _Cre8PopoverPanel: HTMLElement;\n\n /**\n * Query the assigned elements in the trigger slot\n */\n @queryAssignedElements({ slot: 'trigger' })\n _Cre8PopoverTrigger: Array<HTMLElement>;\n\n /**\n * Query the assigned elements in the footer slot\n */\n @queryAssignedElements({ slot: 'footer' })\n _Cre8PopoverFooter: Array<HTMLElement>;\n\n /**\n * Query the document direction value\n * <br/><br/> _*This property is dynamically set_\n */\n get isRTL() {\n return document.dir === 'rtl';\n }\n\n /**\n * Connected Callback Lifecycle\n * 1. Add window resize event listener\n * 2. Add window scroll event listener\n * 3. Add window orientation change event listener\n * 4. Add mousedown event listener\n */\n connectedCallback() {\n super.connectedCallback();\n globalThis.window.addEventListener('resize', this.removeActive); /* 1 */\n globalThis.window.addEventListener('scroll', this.removeActiveOnScroll); /* 2 */\n globalThis.window.addEventListener('orientationchange', this.removeActive); /* 3 */\n globalThis.document.addEventListener('mousedown', this.handleOnClickOutside, false); /* 4 */\n }\n\n /**\n * Disconnected Callback Lifecycle\n * 1. Remove window resize event listener\n * 2. Remove window scroll event listener\n * 3. Remove window orientation change event listener\n * 4. Remove mousedown event listener\n */\n disconnectedCallback() {\n super.disconnectedCallback();\n globalThis.window.removeEventListener('resize', this.removeActive); /* 1 */\n globalThis.window.removeEventListener('scroll', this.removeActiveOnScroll); /* 2 */\n globalThis.window.removeEventListener('orientationchange', this.removeActive); /* 3 */\n globalThis.document.removeEventListener('mousedown', this.handleOnClickOutside, false); /* 4 */\n }\n\n /**\n * First Updated Lifecycle\n * 1. Set attribute since aria expanded can't be passed down through the slot\n */\n firstUpdated() {\n this.addAria(); /* 1 */\n }\n\n /**\n * Add aria attributes on the trigger button\n * 1. Select the element within the trigger slot\n * 2. Set aria-expanded on the popover trigger to the active state if provided. Otherwise, set to false.\n * 3 Set the type to button.\n */\n addAria() {\n /* 1 */\n let popoverTrigger;\n if (this._Cre8PopoverTrigger[0].tagName === 'cre8-BUTTON') {\n popoverTrigger = this._Cre8PopoverTrigger[0] as Cre8Button;\n popoverTrigger.buttonAriaExpanded = this.isActive ? this.isActive : false;\n } else {\n popoverTrigger = this._Cre8PopoverTrigger[0];\n popoverTrigger.setAttribute('aria-expanded', `${this.isActive ? this.isActive : false}`); /* 2 */\n popoverTrigger.setAttribute('type', 'button'); /* 3 */\n }\n }\n\n /**\n * Handle all dynamic placement\n */\n dynamicPosition() {\n // TODO: Temporarily keep eslint complexity as warning. Update during specific story for this rule.\n /* eslint complexity: [\"warn\", 10] */\n if (this.isDynamic && this._Cre8PopoverPanel) {\n const body = document.querySelector('body').getBoundingClientRect();\n const popoverPanel = this._Cre8PopoverPanel.getBoundingClientRect();\n\n /**\n * If popover panel breaks out the left side of the window, position it to the right\n */\n if (popoverPanel.left < 0) {\n this.position = this.isRTL ? 'left' : 'right';\n }\n\n /**\n * If popover panel breaks out the right side of the window, position it to the left\n */\n if (popoverPanel.right >= body.width) {\n this.position = this.isRTL ? 'right' : 'left';\n }\n\n /**\n * If popover panel breaks out the top side of the window only, position it to the bottom\n */\n if (popoverPanel.top < 0 && popoverPanel.left > 0 && popoverPanel.right < body.width) {\n this.position = null;\n }\n\n /**\n * If popover panel breaks out the bottom side of the window only, position it to the top\n */\n if (\n popoverPanel.bottom >= window.innerHeight\n && popoverPanel.left >= 0\n && popoverPanel.right <= body.width\n ) {\n this.position = 'top';\n }\n }\n }\n\n /**\n * Set Popover Active State\n * 1. Toggle the active state between true and false\n * 2. Set attribute since aria expanded can't be passed down through the slot\n * 3. If the active state is toggled to false, close the panel and return focus to the dropdown trigger.\n * This accounts for both design system buttons and native HTML buttons\n */\n private _toggleActive() {\n this.isActive = !this.isActive; /* 1 */\n this.addAria(); /* 2 */\n\n if (this.isActive) {\n requestAnimationFrame(() => {\n this.dynamicPosition();\n });\n this.dispatchEvent(\n new CustomEvent('open', { detail: { isActive: this.isActive }, bubbles: true, composed: true })\n );\n } else {\n /* 3 */\n this.dispatchEvent(\n new CustomEvent('close', { detail: { isActive: this.isActive }, bubbles: true, composed: true })\n );\n }\n\n /**\n * Toggle the active state for dynamic. This prevents a flash of the popover in the orginal position\n */\n setTimeout(() => {\n if (this.isActive) {\n this.isActiveDynamic = true;\n } else {\n this.isActiveDynamic = false;\n }\n }, 2);\n }\n\n /**\n * Handle Keydown\n * 1. If the panel is open and escape is keyed, close the popover panel and return focus to the trigger button\n * 2. If the panel is opened, tab away closes the popover panel\n * 3. The panel can be opened and closed by Enter or Space keys.\n */\n private _handleKeydown(e: KeyboardEvent) {\n if (e.key === 'Escape' && this.isActive === true) {\n this._toggleActive();\n } else if (e.key === 'Tab') {\n this._handleTabNavigation(e);\n }\n }\n\n private _handleTabNavigation(e: KeyboardEvent) {\n if (this.isActive) {\n this._navigateInsidePopover(e);\n }\n }\n\n private _navigateInsidePopover(e: KeyboardEvent) {\n const focusableElements = this._getFocusableElements();\n if (focusableElements.length === 0) {\n this._closePopoverAndFocusTrigger(e);\n return;\n }\n\n const lastFocusableElement = focusableElements[focusableElements.length - 1] as HTMLElement;\n\n if (document.activeElement === lastFocusableElement) {\n this._closePopoverAndFocusTrigger(e);\n e.preventDefault();\n }\n }\n\n private _getFocusableElements(): HTMLElement[] {\n const panelFocusableElements = Array.from(this._Cre8PopoverFooter);\n return [...panelFocusableElements];\n }\n\n private _closePopoverAndFocusTrigger(e: KeyboardEvent) {\n this._toggleActive();\n e.preventDefault();\n }\n\n /**\n * Handle click outside the component\n * 1. Close the show/hide popover panel on click outside\n * 2. If the popover panel is already closed then we don't care about outside clicks and we can bail early\n * 3. By the time a user clicks on the page the shadowRoot will almost certainly be\n * defined, but TypeScript isn't that trusting and sees this.shadowRoot as possibly\n * undefined. To work around that we'll check that we have a shadowRoot (and a\n * rendered .host) element here to appease the TypeScript compiler. This should never\n * actually be shown or run for a human end user.\n * 4. Check to see if we clicked inside the active panel\n * 5. If the panel is active and we've clicked outside of the panel then it should be closed.\n */\n handleOnClickOutside = (e: MouseEvent) => {\n /* 2 */\n if (!this.isActive) {\n return;\n }\n\n /* 3 */\n if (!this.shadowRoot?.host) {\n throw Error('Could not determine panel context during click handler');\n }\n\n /* 4 */\n const didClickInside = e.composedPath().includes(this.shadowRoot.host);\n\n /* 5 */\n if (!(e.target === document.querySelector('html') && e.clientX >= document.documentElement.offsetWidth)) {\n if (this.isActive && !didClickInside) {\n this._toggleActive();\n }\n }\n };\n\n /**\n * Remove Active State on Scroll\n * 1. If a scroll event is fired and visibileOnScroll is not true, remove the active state\n * 2. If the popover height is less than the window height, then allow the active to remove on scroll\n */\n removeActiveOnScroll = () => {\n /* 1 */\n if (this.isActive && !this.isVisibleOnScroll) {\n /* 2 */\n const popoverPanel = this._Cre8PopoverPanel.getBoundingClientRect();\n const popoverTrigger = this._Cre8Popover;\n const popoverHeight = popoverTrigger.clientHeight + popoverPanel.height + popoverPanel.top;\n\n if (popoverHeight < window.innerHeight) {\n this._toggleActive();\n }\n }\n };\n\n /**\n * Remove Active State\n * 1. If a specific event is fired, remove the active state.\n */\n removeActive = () => {\n if (this.isActive) {\n this._toggleActive();\n }\n };\n\n render() {\n const componentClassNames = this.componentClassNames('cre8-c-popover', {\n 'cre8-c-popover--top': this.position === 'top',\n 'cre8-c-popover--left': this.position === 'left',\n 'cre8-c-popover--right': this.position === 'right',\n 'cre8-is-active': this.isActive,\n 'cre8-is-dynamic': this.isDynamic,\n 'cre8-is-dynamic-active': this.isActiveDynamic,\n });\n\n return html`\n <div class=\"${componentClassNames}\">\n ${this.slotNotEmpty('trigger')\n && html` <slot name=\"trigger\" @keydown=${this._handleKeydown} @click=${this._toggleActive}></slot> `}\n ${this.isActive\n ? html`\n <div tabindex=\"0\" class=\"cre8-c-popover__panel\" @keydown=${this._handleKeydown}>\n ${(this.slotNotEmpty('header') || this.heading)\n && html`\n <div class=\"cre8-c-popover__header\">\n ${this.heading\n ? html`<div class=\"cre8-c-popover__heading\">${this.heading}</div>`\n : html`<slot name=\"header\"></slot>`}\n </div>\n `}\n <slot></slot>\n ${this.slotNotEmpty('footer')\n && html`\n <div class=\"cre8-c-popover__footer\">\n <slot name=\"footer\"></slot>\n </div>\n `}\n </div>\n `\n : nothing}\n </div>\n `;\n }\n}\n\nif (customElements.get('cre8-popover') === undefined) {\n customElements.define('cre8-popover', Cre8Popover);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-popover': Cre8Popover;\n }\n}\n\nexport default Cre8Popover;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n// #PRIMARY NAV\n\n/**\n * Inverted primary nav\n */\n.cre8-c-primary-nav--inverted {\n --cre8-primary-nav-link-color: var(--cre8-color-content-knockout);\n}\n\n/**\n * Primary nav list\n * 1) Stack on small screens within the toggleable menu but place side by side on large screens\n */\n.cre8-c-primary-nav__list {\n display: flex;\n flex-direction: column; /* 1 */\n margin: 0;\n padding: 0;\n list-style: none;\n\n /**\n * Primary nav list within side by side variant\n * 1) Always keep items side by side\n */\n .cre8-c-primary-nav--side-by-side & {\n flex-direction: row; /* 1 */\n }\n\n @media all and (min-width:$cre8-breakpoint-lg) {\n flex-direction: row; /* 1 */\n }\n}\n`;\nexport default styles;\n","import { html, } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './primary-nav.styles.js';\n\n/**\n * @slot - The primary navigation items\n */\nexport class Cre8PrimaryNav extends Cre8Element {\n static styles = [styles];\n\n /**\n * Inverted variant\n * 1) Used for dark backgrounds\n */\n @property({ type: Boolean, reflect: true })\n inverted?: boolean;\n\n /**\n * Behavior variant\n * <cre8-text-passage size=\"sm\">\n * <ul>\n * <li>**side-by-side** keeps the primary nav item always in a horizontal pattern</li>\n * </ul>\n * </cre8-text-passage>\n */\n @property()\n behavior?: 'side-by-side';\n\n /**\n * aria-label attribute to designate at name for the nav. Can be override by user\n */\n @property()\n navAriaLabel: string = 'main';\n\n render() {\n const componentClassNames = this.componentClassNames('cre8-c-primary-nav', {\n 'cre8-c-primary-nav--side-by-side': this.behavior === 'side-by-side',\n 'cre8-c-primary-nav--inverted': this.inverted === true,\n });\n\n return html`\n <nav aria-label=\"${this.navAriaLabel}\" class=\"${componentClassNames}\">\n <ul class=\"cre8-c-primary-nav__list\">\n <slot></slot>\n </ul>\n </nav>\n `;\n }\n}\n\nif (customElements.get('cre8-primary-nav') === undefined) {\n customElements.define('cre8-primary-nav', Cre8PrimaryNav);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-primary-nav': Cre8PrimaryNav;\n }\n}\n\nexport default Cre8PrimaryNav;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n// #PRIMARY NAV ITEM\n\n/**\n * Actual primary nav list item\n */\n.cre8-c-primary-nav__item {\n border-bottom-width: var(--cre8-border-width-default);\n border-bottom-style: var(--cre8-border-style-default);\n border-bottom-color: var(--cre8-color-border-subtle);\n\n @media all and (min-width:$cre8-breakpoint-lg) {\n border-bottom: none;\n }\n}\n\n/**\n * Content within the primary nav item\n */\n.cre8-c-primary-nav__item-content {\n display: flex;\n align-items: baseline;\n}\n\n/**\n * Primary navigation link\n * 1) Used to remove any sort of default button styles when a button tag is rendered\n */\n.cre8-c-primary-nav__link {\n @include cre8-typography-label-default;\n display: flex;\n align-items: center;\n appearance: none; /* 1 */\n background: transparent; /* 1 */\n border: none;\n //border: 1px solid var(--cre8-color-header-menu-border-default); /* 1 */\n white-space: nowrap;\n width: 100%;\n margin: 0;\n padding: size(2) size(4);\n color: var(--cre8-primary-nav-link-color, var(--cre8-color-header-menu-content-default));\n text-decoration: none;\n transition: all var(--cre8-anim-fade-quick) var(--cre8-anim-ease);\n cursor: pointer;\n\n &:hover,\n &:focus-visible {\n //border-color: var(--cre8-color-header-menu-border-hover);\n background: var(--cre8-color-header-menu-bg-hover);\n color: var(--cre8-color-header-menu-content-hover);\n }\n\n &:active {\n border-color: var(--cre8-color-header-menu-border-pressed);\n background: var(--cre8-color-header-menu-bg-pressed);\n color: var(--cre8-color-header-menu-content-pressed);\n }\n\n /**\n * Primary navigation link within active primary nav item\n */\n .cre8-c-primary-nav__item.cre8-is-active & {\n background: var(--cre8-color-bg-brand);\n color: var(--cre8-color-header-menu-content-hover);\n }\n\n /**\n * Medium screen primary navigation\n */\n @media all and (min-width:$cre8-breakpoint-lg) {\n padding: size(2) size(1);\n }\n\n @media all and (min-width:$cre8-breakpoint-lg) {\n padding: size(2);\n border-bottom: none;\n }\n}\n\n/**\n * Icon within primary navigation item\n */\ncre8-icon-legacy {\n --cre8-icon-height: #{size(1.5)}; /* 1 */\n --cre8-icon-width: #{size(1.5)}; /* 1 */\n margin-left: auto;\n transition: transform var(--cre8-anim-fade-quick) var(--cre8-anim-ease);\n\n /**\n * Icon within active primary nav item\n * 1) Rotate the icon to show that the dropdown is open\n */\n .cre8-c-primary-nav__item.cre8-is-active & {\n transform: rotate(-180deg); /* 1 */\n }\n\n @media all and (min-width:$cre8-breakpoint-lg) {\n margin-left: size(1);\n }\n}\n\n/**\n * Primary nav item panel\n * 1) Panel for the dropdown content\n * 1) Hide when not active\n */\n.cre8-c-primary-nav__item-panel {\n //display: none;\n visibility: hidden; /* 1 */\n width: 100%;\n height: 0; /* 1 */\n overflow: hidden; /* 1 */\n background: transparent;\n opacity: 0; /* 1 */\n transition: all 0s var(--cre8-anim-ease);\n z-index: -1;\n\n @media all and (min-width:$cre8-breakpoint-lg) {\n position: absolute;\n top: 100%;\n left: 0;\n height: auto;\n box-shadow: var(--cre8-theme-box-shadow-md);\n }\n\n /**\n * Primary nav item panel within active item\n * 1) Show the primary nav item dropdown\n */\n .cre8-c-primary-nav__item.cre8-is-active & {\n display: block;\n visibility: visible; /* 1 */\n height: auto; /* 1 */\n padding-top: size(4);\n padding-bottom: size(4);\n background: var(--cre8-color-bg-default);\n opacity: 1; /* 1 */\n z-index: 1;\n transition: opacity var(--cre8-anim-fade-quick) var(--cre8-anim-ease);\n }\n}\n\n/**\n* Primary nav item panel inner container\n* 1) Container within primary nav item panel that caps the content width and aligns\n*/\n.cre8-c-primary-nav__item-panel-inner {\n /**\n * Primary nav item inner container within megamenu item\n * 1) Cap the content width and center\n */\n .cre8-c-primary-nav__item--megamenu & {\n max-width: 70rem; /* 1 */\n padding-right: size(4);\n padding-left: size(4);\n margin: 0 auto; /* 1 */\n }\n}\n\n.cre8-c-primary-nav__item-before {\n margin-right: size(1);\n}\n\n.cre8-c-primary-nav__item-after {\n margin-left: size(1);\n}\n`;\nexport default styles;\n","import { html, } from 'lit';\nimport { ifDefined } from 'lit-html/directives/if-defined.js';\nimport { property, state } from 'lit/decorators.js';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './primary-nav-item.styles.js';\n\n /**\n * @slot - The label for the navigation item\n */\nexport class Cre8PrimaryNavItem extends Cre8Element {\n /**\n * Primary nav item text\n */\n @property()\n text = 'Nav item';\n\n /**\n * Primary nav item href\n */\n @property()\n href = '#';\n\n /**\n * Icon name\n */\n @property()\n iconName?: string = 'caret-down';\n\n /**\n * Append to the class name. Used for passing in utility classes\n */\n @property({ type: Boolean, reflect: true })\n megaMenu?: boolean;\n\n /**\n * Append to the class name. Used for passing in utility classes\n */\n @state()\n isActive?: boolean;\n\n static styles = [styles];\n\n /**\n * Initialize functions\n */\n constructor() {\n super();\n this._handleOnClickOutside = this._handleOnClickOutside.bind(this);\n this._clickHandler = this._clickHandler.bind(this);\n }\n\n /**\n * Connected Callback lifecycle\n */\n connectedCallback() {\n this.setAttribute('role', 'listitem');\n super.connectedCallback();\n\n document.addEventListener('mousedown', this._handleOnClickOutside, false);\n }\n\n /**\n * Disconnected callback lifecycle\n * 1) Remove window resize event listener\n */\n disconnectedCallback() {\n document.removeEventListener('mousedown', this._handleOnClickOutside, false);\n super.disconnectedCallback();\n }\n\n /**\n * Handle click outside the component\n * 1) Close the show hide panel on click outside\n * 2) If the nav is already closed then we don't care about outside clicks and we\n * can bail early\n * 3) By the time a user clicks on the page the shadowRoot will almost certainly be\n * defined, but TypeScript isn't that trusting and sees this.shadowRoot as possibly\n * undefined. To work around that we'll check that we have a shadowRoot (and a\n * rendered .host) element here to appease the TypeScript compiler. This should never\n * actually be shown or run for a human end user.\n * 4) Check to see if we clicked inside the active navigation item\n * 5) If the navigation is active and we've clicked outside of the nav then it should\n * be closed.\n */\n private _handleOnClickOutside(event: MouseEvent) {\n /* 2 */\n if (!this.isActive) {\n return;\n }\n\n /* 3 */\n if (!this.shadowRoot?.host) {\n throw Error('Could not determine navigation context during click handler');\n }\n\n /* 4 */\n const didClickInside = event.composedPath().includes(this.shadowRoot.host);\n\n /* 5 */\n if (this.isActive && !didClickInside) {\n this.isActive = false;\n }\n }\n\n /**\n * Toggle active state of primary nav item\n * 1) Remove isActive state from all sibling elements\n * 2) Toggle active state of element selected\n */\n private _clickHandler(e: MouseEvent) {\n e.preventDefault();\n if (this.parentNode) {\n const navItems = this.parentNode.querySelectorAll('cre8-primary-nav-item');\n navItems.forEach((element: Cre8PrimaryNavItem) => {\n if (element !== this) {\n element.isActive = false; /* 1 */\n }\n });\n }\n this.isActive = !this.isActive; /* 2 */\n }\n\n private _closePanel() {\n this.isActive = false;\n }\n\n private _handleOnKeyDown(e: KeyboardEvent) {\n if (e.key === 'Escape' && this.isActive === true) {\n this._closePanel();\n const navLink = this.shadowRoot?.querySelector<HTMLButtonElement | HTMLAnchorElement>(\n '.cre8-c-primary-nav__link'\n );\n if (navLink) {\n setTimeout(() => {\n navLink.focus();\n }, 1);\n }\n }\n }\n\n render() {\n const componentClassName = this.componentClassNames('cre8-c-primary-nav__item', {\n 'cre8-is-active': this.isActive === true,\n 'cre8-c-primary-nav__item--megamenu': this.megaMenu === true,\n });\n\n if (this.megaMenu) {\n return html`\n <div class=\"${componentClassName}\" @keydown=${this._handleOnKeyDown}>\n <div class=\"cre8-c-primary-nav__item-content\">\n <button\n class=\"cre8-c-primary-nav__link\"\n @click=${this._clickHandler}\n aria-expanded=${this.isActive === true}\n >\n ${this.slotNotEmpty('itemBefore') && html`\n <div class=\"cre8-c-primary-nav__item-before\">\n <slot name=\"itemBefore\"></slot>\n </div>\n `}\n ${this.text}\n ${this.slotNotEmpty('itemAfter') && html`\n <div class=\"cre8-c-primary-nav__item-after\">\n <slot name=\"itemAfter\"></slot>\n </div>\n `}\n <cre8-icon-legacy aria-hidden=\"true\" name=\"${ifDefined(this.iconName)}\"></cre8-icon-legacy>\n </button>\n </div>\n <div class=\"cre8-c-primary-nav__item-panel\">\n <div class=\"cre8-c-primary-nav__item-panel-inner\">\n <slot></slot>\n </div>\n </div>\n </div>\n `;\n }\n return html`\n <div class=\"${componentClassName}\">\n <div class=\"cre8-c-primary-nav__item-content\">\n <a class=\"cre8-c-primary-nav__link\" href=\"${this.href}\">\n ${this.slotNotEmpty('itemBefore') && html`\n <div class=\"cre8-c-primary-nav__item-before\">\n <slot name=\"itemBefore\"></slot>\n </div>\n `}\n ${this.text}\n ${this.slotNotEmpty('itemAfter') && html`\n <div class=\"cre8-c-primary-nav__item-after\">\n <slot name=\"itemAfter\"></slot>\n </div>\n `}\n </a>\n </div>\n </div>\n `;\n }\n}\n\nif (customElements.get('cre8-primary-nav-item') === undefined) {\n customElements.define('cre8-primary-nav-item', Cre8PrimaryNavItem);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-primary-nav-item': Cre8PrimaryNavItem;\n }\n}\n\nexport default Cre8PrimaryNavItem;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n/*------------------------------------*\\\n #RADIO-FIELD\n\\*------------------------------------*/\n\n:host {\n display: flex;\n}\n\n/** \n * 1) Fieldset used for radio items\n */\n.cre8-c-radio-field {\n border: none;\n padding: 0;\n margin: 0;\n}\n\n/** \n * Radio field legend\n */\n.cre8-c-radio-field__legend {\n @include cre8-typography-label-small;\n margin-bottom: size(1);\n}\n\n/** \n * Radio field list\n * 1) Remove default margin and padding form radio field list\n */\n.cre8-c-radio-field__list {\n display: flex;\n flex-direction: column;\n margin: 0; /* 1 */\n padding: 0; /* 1 */\n}`;\nexport default styles;\n","import { html, } from 'lit';\nimport { ifDefined } from 'lit-html/directives/if-defined.js';\nimport { property } from 'lit/decorators.js';\nimport { Cre8Element } from '../cre8-element';\nimport '../field-note/field-note';\nimport styles from './radio-field.styles.js';\n\n/**\n * Radio Field is the parent container for `radio-field-item`.\n * It is required to allow for grouping numerous radio fields that need additional context (in the form of `<legend>`).\n * It also provides accessibility roles, aria attributes and field note messaging on the group.\n *\n * See [radio-field-item](?path=/story/cre8-components-radio-field-item--default) for more guidance on its usage.\n *\n * @slot - The component content, which should be a set of `radio-field-item`s\n */\n\nexport class Cre8RadioField extends Cre8Element {\n static styles = [styles];\n\n /**\n * Radio Field Note\n * @attr {string}\n */\n @property()\n fieldNote?: string;\n\n /**\n * Radio container fieldnote aria describe by\n * @attr {string}\n */\n @property()\n ariaDescribedBy?: string;\n\n /**\n * Radio container fieldnote icon name\n * @attr {string}\n */\n @property()\n fieldNoteIconName?: string;\n\n /**\n * Radio container fieldnote knockout\n * @attr {boolean}\n */\n @property({ type: Boolean, reflect: true })\n fieldNoteKnockout?: boolean;\n\n /**\n * Radio container fieldnote isSuccess\n * @attr {boolean}\n */\n @property({ type: Boolean, reflect: true })\n isSuccess?: boolean;\n\n /**\n * Radio container fieldnote isError\n * @attr {boolean}\n */\n @property({ type: Boolean, reflect: true })\n isError?: boolean;\n\n /**\n * Radio field legend label\n */\n @property()\n label?: string;\n\n render() {\n const componentClassNames = this.componentClassNames('cre8-c-radio-field', {});\n\n return html`\n <fieldset class=\"${componentClassNames}\" aria-describedby=\"${ifDefined(this.ariaDescribedBy)}\">\n <legend class=\"cre8-c-radio-field__legend\">${this.label}</legend>\n <div class=\"cre8-c-radio-field__body\">\n <ul class=\"cre8-c-radio-field__list\" role=\"list\">\n <slot></slot>\n </ul>\n </div>\n ${this.fieldNote\n ? html`<cre8-field-note\n ?inverted=${this.fieldNoteKnockout}\n id=${ifDefined(this.ariaDescribedBy)}\n iconName=${ifDefined(this.fieldNoteIconName)}\n ?isSuccess=${this.isSuccess}\n ?isError=${this.isError}\n >\n ${this.fieldNote}\n </cre8-field-note>` : ''}\n </fieldset>\n `;\n }\n}\n\nif (customElements.get('cre8-radio-field') === undefined) {\n customElements.define('cre8-radio-field', Cre8RadioField);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-radio-field': Cre8RadioField;\n }\n}\n\nexport default Cre8RadioField;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component.scss';\n/*------------------------------------*\\\n #RADIO-FIELD-ITEM\n\\*------------------------------------*/\n\n:host {\n display: inline-flex;\n}\n\n/** \n * 1) Form field that is compose of a radio input, label, and optional fieldnote.\n */\n.cre8-c-radio-field-item {\n display: flex;\n position: relative;\n align-items: center;\n margin-bottom: size(1);\n min-height: size(3);\n\n /** \n * 1) Form field that is compose of a radio input, label, and optional fieldnote.\n */\n :host(:last-child) & {\n margin-bottom: 0;\n }\n}\n\n/** \n* Radio field item input \n*/\n.cre8-c-radio-field-item__input {\n opacity: 0;\n cursor: pointer;\n position: absolute;\n top: 0;\n left: 0;\n height: size(3);\n min-width: size(3);\n margin: 0;\n z-index: 1;\n\n .cre8-c-radio-field-item--disabled & {\n cursor: not-allowed;\n }\n}\n\n/** \n* Radio field item custom radio container\n*/\n.cre8-c-radio-field-item__custom-radio {\n display: flex;\n position: absolute;\n top: 0;\n left: 0;\n height: size(3);\n width: size(3);\n cursor: pointer;\n align-items: center;\n justify-content: center;\n border-radius: var(--cre8-border-radius-round);\n border-width: var(--cre8-border-width-default);\n border-style: var(--cre8-border-style-default);\n background-color: var(--cre8-color-bg-default);\n border-color: var(--cre8-color-border-strong);\n\n /** \n * Radio field item custom radio focus visible custom outline\n */\n .cre8-c-radio-field-item__input:focus-visible + & {\n @include focus;\n\n .cre8-c-radio-field-item--error & {\n @include focusError;\n border-color: var(--cre8-color-border-error);\n }\n }\n\n /** \n * Radio field item custom radio within radio field with error\n */\n .cre8-c-radio-field-item--error & {\n border-color: var(--cre8-color-border-error);\n }\n\n /** \n * Radio field item custom radio within radio field disabled\n */\n .cre8-c-radio-field-item--disabled & {\n cursor: not-allowed;\n background-color: var(--cre8-color-bg-disabled);\n border-color: var(--cre8-color-border-disabled);\n }\n}\n\n/** \n * Radio field item inner circle\n */\n.cre8-c-radio-field-item__inner-circle {\n display: none;\n\n cursor: pointer;\n height: size(1.5);\n width: size(1.5);\n background: var(--cre8-color-content-brand);\n border-radius: var(--cre8-border-radius-round);\n\n /** \n * Radio field item inner circle error\n */\n .cre8-c-radio-field-item--error & {\n background: var(--cre8-color-bg-error-strong);\n }\n\n /** \n * Radio field item inner circle disabled\n */\n .cre8-c-radio-field-item--disabled & {\n background: var(--cre8-color-content-disabled);\n }\n\n /** \n * Radio field item inner circle will display if the input is checked\n */\n .cre8-c-radio-field-item__input:checked + .cre8-c-radio-field-item__custom-radio & {\n display: flex;\n }\n}\n\n/** \n * Radio field item input \n */\n.cre8-c-radio-field-item__label {\n margin-left: size(4);\n @include cre8-typography-label-small;\n}\n`;\nexport default styles;\n","import { html, } from 'lit';\nimport { ifDefined } from 'lit-html/directives/if-defined.js';\nimport { property, query } from 'lit/decorators.js';\nimport { nanoid } from 'nanoid';\nimport { Cre8FormElement } from '../cre8-form-element';\nimport '../field-note/field-note';\nimport styles from './radio-field-item.styles.js';\n\n /**\n * A Radio Field Item adds a radio button to a Radio Field. Radio buttons let a user choose only one of several\n * options. Do not use a single radio button, because once selected, it cannot be de-selected. If the user can only\n * choose one, none or many options, use Checkbox instead.\n */\n\nexport class Cre8RadioFieldItem extends Cre8FormElement {\n type = 'radio';\n\n static styles = [styles];\n\n /**\n * Identifies the element that provides a detailed, extended description for the object.\n *\n * @attr{string}\n */\n @property()\n ariaDescribedBy?: string;\n\n /**\n * A Boolean attribute which, if present, sets the radio button as selected.\n *\n * @attr {boolean}\n */\n @property({ type: Boolean, reflect: true })\n checked?: boolean;\n\n /**\n * The Boolean disabled attribute, when present, makes the element not mutable, focusable, or even submitted with\n * the form. The user can neither edit nor focus on the control, nor its form control descendants.\n *\n * @attr {boolean}\n */\n @property({ type: Boolean, reflect: true })\n disabled?: boolean;\n\n /**\n * Get the radio field item input\n */\n @query('input')\n field!: HTMLInputElement;\n\n /**\n * The fieldId attribute is assigned to the HTML input element of the radio button and the for attribute of the\n * corresponding label.\n */\n @property()\n fieldId?: string;\n\n /**\n * A FieldNote can be placed to provide guidance. It's frequently used to in the context of form fields for extra\n * information or validation messages.\n */\n @property()\n fieldNote?: string;\n\n /**\n * Sets the item fieldnote icon.\n *\n * - **check** renders a badge with success state treatment\n * - **error** renders a badge with error state treatment\n */\n @property()\n fieldNoteIconName?: string;\n\n /**\n * Radio item fieldnote knockout\n *\n * @attr {boolean}\n */\n @property({ type: Boolean, reflect: true })\n fieldNoteKnockout?: boolean;\n\n /**\n * Sets the error state of the fieldnote.\n *\n * @attr {boolean}\n */\n @property({ type: Boolean, reflect: true })\n fieldNoteIsError?: boolean;\n\n /**\n * The isError attribute is used to indicate an error state related to the radio button.\n *\n * @attr {boolean}\n */\n @property({ type: Boolean, reflect: true })\n isError?: boolean;\n\n /**\n * The isSuccess attribute is used to indicate a success state related to the radio button.\n *\n * @attr {boolean}\n */\n @property({ type: Boolean, reflect: true })\n isSuccess?: boolean;\n\n /**\n * The label attribute is used to assign a value to the label element corresponding to this radio button.\n */\n @property()\n label?: string;\n\n /**\n * The name attribute is used to assign a value to the name attribute of the input element in the DOM.\n */\n @property()\n name?: string;\n\n /**\n * Required attribute\n *\n * @attr {boolean}\n */\n @property({ type: Boolean, reflect: true })\n required?: boolean;\n\n /**\n * Initial checked for initial checked state\n */\n private initialChecked?: boolean;\n\n /**\n * Connected callback lifecycle\n * 1) Set the initial checked value to the checked property\n * 2) Auto-generate the fieldId if a user doesn't provided so that the form field is accessible\n * 3) If a field note exists, set the aria-describedby attribute to make sure the field note is read out\n */\n connectedCallback() {\n super.connectedCallback();\n this.fieldId = this.fieldId || nanoid(); /* 2 */\n if (this.fieldNote) {\n this.ariaDescribedBy = this.ariaDescribedBy || nanoid(); /* 3 */\n }\n }\n\n /**\n * Reset the radio field\n */\n public resetField() {\n this.internals.setFormValue(null);\n }\n\n /**\n * Reset the radio field items tab indeces\n */\n resetTabIndeces(radioFieldItems: Cre8RadioFieldItem[]) {\n radioFieldItems.forEach((element: HTMLElement) => {\n element.shadowRoot.querySelector('.cre8-c-radio-field-item__input').setAttribute('tabindex', '0');\n });\n }\n\n /**\n * Remove checked\n * 1) Remove checked property from all items and set tabindex to -1\n * 2) Reset the form field to not checked\n */\n removeChecked() {\n if (this.parentNode) {\n /* 1 */\n const radioFieldItems = this.parentNode.querySelectorAll('cre8-radio-field-item');\n radioFieldItems.forEach((element: Cre8RadioFieldItem) => {\n element.checked = false;\n element.shadowRoot.querySelector('.cre8-c-radio-field-item__input').setAttribute('tabindex', '-1');\n element.resetField(); /* 2 */\n });\n }\n }\n\n /**\n * Reset form callback\n * 1) Remove the checked state from all radio elements\n * 2) Set the checked state to the initial checked state\n * 3) Set the radio field input checked attribute to the initial checked state\n */\n formResetCallback(): void {\n this.removeChecked();\n this.checked = this.initialChecked;\n this.field.checked = this.initialChecked;\n }\n\n /**\n * access role when radio-field-item embedded in radio-field\n */\n private _getRole() {\n const radioFieldContainer = this.closest('cre8-radio-field');\n if (radioFieldContainer) {\n return 'listitem';\n }\n return '';\n }\n\n /**\n * Toggle active state of primary nav item\n * 1) Remove isActive state from all sibling elements\n * 2) Toggle active state of element selected\n */\n private _clickHandler() {\n this.removeChecked();\n this.checked = !this.checked; /* 2 */\n const radioInput = this.shadowRoot?.querySelector<HTMLInputElement>('.cre8-c-radio-field-item__input');\n if (radioInput) {\n radioInput.setAttribute('tabindex', '0');\n }\n return this.checked ? this.internals.setFormValue(this.value || 'on') : this.internals.setFormValue(null);\n }\n\n /**\n * Handle sibling element updates during handleKeyDown function\n * 1) Prevent default keyboard functionality to disable scroll with up/down keys\n * 2) Trigger removeChecked\n * 3) Focus sibling shadowRoot element\n * 4) Click sibling shadowRoot element\n * 5) Set sibling element `tabindex` to `0`\n * 6) Set sibling element `checked` value\n */\n private _updateSibling(event: KeyboardEvent, sibling: Element, element: HTMLElement) {\n event.preventDefault();\n this.removeChecked();\n element.focus();\n element.click();\n element.setAttribute('tabindex', '0');\n sibling.setAttribute('checked', '');\n }\n\n /**\n * Handle keydown\n * 1) If left or up arrow key is struck and radio field item exists before current item,\n * remove checked from all items and add it to the next item\n * 2) If right or down arrow key is struck and radio field item exists after current item,\n * remove checked from all items and add checked to the next item. Focus on this item\n * and set tabindex for when focusing out of radio field and back onto checked item.\n * 3) If the element is in focused, then for event emission the current\n * focues element should be clicked to emit event.\n * 4) If the Tab key is pressed, and none of the items are checked\n * then jump away from field set to the next tabbable item\n */\n handleKeyDown(e: KeyboardEvent) {\n if (e.code === 'ArrowLeft' || e.code === 'ArrowUp') {\n /* 1 */\n const previous = this.previousElementSibling;\n const previousElement = previous?.shadowRoot?.querySelector<HTMLInputElement>(\n '.cre8-c-radio-field-item__input:not([disabled])'\n );\n\n if (previousElement) {\n this._updateSibling(e, previous, previousElement);\n }\n } else if (e.code === 'ArrowRight' || e.code === 'ArrowDown') {\n /* 2 */\n const next = this.nextElementSibling;\n const nextElement = next?.shadowRoot?.querySelector<HTMLInputElement>(\n '.cre8-c-radio-field-item__input:not([disabled])'\n );\n if (nextElement) {\n this._updateSibling(e, next, nextElement);\n }\n } else if (e.code === 'Tab' && !this.checked) {\n const radioFieldItems = this.parentNode.querySelectorAll('cre8-radio-field-item');\n radioFieldItems.forEach((element: HTMLElement) => {\n element.shadowRoot.querySelector('.cre8-c-radio-field-item__input').setAttribute('tabindex', '-1');\n });\n\n // After making tabbing away from the feildset,\n // reset the items to be tabbable again so the user can come back to the fieldset\n setTimeout(this.resetTabIndeces, 100, radioFieldItems);\n }\n }\n\n render() {\n const componentClassNames = this.componentClassNames('cre8-c-radio-field-item', {\n 'cre8-c-radio-field-item--error': this.isError,\n 'cre8-c-radio-field-item--success': this.isSuccess,\n 'cre8-c-radio-field-item--disabled': this.disabled,\n });\n\n const isChecked = this.checked === true || this.initialChecked === true;\n\n return html`\n <div role=${ifDefined(this._getRole())} class=\"${componentClassNames}\" @keydown=${this.handleKeyDown}>\n <input\n class=\"cre8-c-radio-field-item__input\"\n type=\"radio\"\n @input=${this._clickHandler}\n id=${this.fieldId}\n aria-describedby=\"${ifDefined(this.ariaDescribedBy)}\"\n required=${ifDefined(this.required)}\n aria-invalid=${this.required ? !!this.isError : ifDefined(this.isError)}\n name=${this.name}\n .value=${this.value}\n disabled=\"${ifDefined(this.disabled)}\"\n .checked=\"${isChecked}\"\n />\n <span class=\"cre8-c-radio-field-item__custom-radio\">\n <div class=\"cre8-c-radio-field-item__inner-circle\"></div>\n </span>\n <label class=\"cre8-c-radio-field-item__label\" for=${this.fieldId}>${this.label}</label>\n </div>\n ${this.fieldNote\n ? html`<cre8-field-note\n ?inverted=${this.fieldNoteKnockout}\n id=${ifDefined(this.ariaDescribedBy)}\n iconName=${ifDefined(this.fieldNoteIconName)}\n ?isSuccess=${this.isSuccess}\n ?isError=${this.isError}\n >\n ${this.fieldNote}\n </cre8-field-note>`\n : ''}\n `;\n }\n}\n\nif (customElements.get('cre8-radio-field-item') === undefined) {\n customElements.define('cre8-radio-field-item', Cre8RadioFieldItem);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-radio-field-item': Cre8RadioFieldItem;\n }\n}\n\nexport default Cre8RadioFieldItem;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n#SECTION\n\n\n/**\n * 1) A major section of a page (<section> tag) with a title and optional description.\n */\n.cre8-c-section {\n margin-bottom: size(4);\n display: block;\n}\n\n/**\n * Section header\n * 1) Contains the section title and possibly a description\n */\n.cre8-c-section-header {\n display: flex;\n justify-content: space-between;\n}\n\n/**\n* Section body\n*/\n.cre8-c-section__body {\n padding-top: size(2);\n @media all and (min-width:$cre8-breakpoint-lg) {\n padding-top: size(4);\n }\n}\n`;\nexport default styles;\n","import { html, } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './section.styles.js';\n/**\n * The section component acts as a block level HTML element that takes a 'headline' property\n * that renders the section's heading which wraps around any HTML template\n * that is found under this heading in the page layout.\n *\n * # How to Use\n * 1. Use the headline attribute to create the section header, or if you need a more custom header\n * there is a slot=\"header\" that you can target for inserting a custom template.\n * 2. For the main body contents, any html template can be placed inside the cre8-section component\n * and will automatically render below the header.\n *\n * Note: for a section with a dark background please control this with the internal Components' inverted attributes.\n *\n *\n * @slot The content of the section should go here.\n * It could be a cre8-text-passage, a cre8-card or any other block level html.\n */\n\nexport class Cre8Section extends Cre8Element {\n static styles = [styles];\n\n /**\n * The Headline will be rendered as the Section Headline with the correct brand styling applied\n */\n\n @property()\n headline?: string;\n\n render() {\n const componentClassName = this.componentClassNames('cre8-c-section', {});\n\n return html`\n <section class=\"${componentClassName}\">\n ${this.headline\n ? html`<header class=\"cre8-c-section__header\">\n <cre8-heading tagVariant=\"h2\">${this.headline}</cre8-heading>\n <slot name=\"header\"></slot>\n </header>`\n : html`<header class=\"cre8-c-section__header\">\n <slot name=\"header\"></slot>\n </header>`}\n <div class=\"cre8-c-section__body\">\n <slot></slot>\n </div>\n </section>\n `;\n }\n}\n\nif (customElements.get('cre8-section') === undefined) {\n customElements.define('cre8-section', Cre8Section);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-section': Cre8Section;\n }\n}\n\nexport default Cre8Section;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n/*------------------------------------*\\\n #SELECT\n\\*------------------------------------*/\n\n:host {\n display: inline-flex;\n flex-wrap: wrap;\n}\n\n/**\n * Select Label\n */\n.cre8-c-select__label {\n @include label-styles;\n}\n\n/**\n * Select Body\n * 1) The div that contains the input and icons\n */\n.cre8-c-select__body {\n position: relative;\n}\n\n/**\n * Select Input\n * 1) The html5 select element\n */\n.cre8-c-select__input {\n @include input-styles;\n padding-inline-end: size(5.5);\n cursor: pointer;\n}\n\n/**\n * Select Icon\n * 1) The icons within the body container positioned absolutely over the input\n */\n.cre8-c-select__icons {\n position: absolute;\n inset-block-start: 50%;\n transform: translateY(-50%);\n inset-inline-end: size(1);\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: size(1);\n pointer-events: none;\n}\n\n/**\n * Select Arrow Icon\n */\n.cre8-c-select__icon-arrow {\n margin-right: size(0.75);\n width: size(1.5);\n height: size(1.5);\n}\n\n/**\n * Select field notes\n */\n.cre8-c-select__field-note,\n.cre8-c-select__field-note-success,\n.cre8-c-select__field-note-error {\n flex-basis: 100%;\n}\n`;\nexport default styles;\n","import svgCaretUp from '/Users/tylersmbp/Projects/cre8-web-components/packages/cre8-wc/icons/System/Regular/Caret_Up.svg?raw';\nimport { html, nothing, } from 'lit';\nimport { ifDefined } from 'lit-html/directives/if-defined.js';\nimport { property, query, queryAll } from 'lit/decorators.js';\nimport { nanoid } from 'nanoid';\nimport { Cre8FormElement } from '../cre8-form-element';\nimport '../field-note/field-note';\nimport styles from './select.styles.js';\n\nexport interface Cre8SelectOption {\n label: string;\n value: number | string;\n}\n\nexport interface Cre8SelectOptionGroup {\n optGroupLabel: string;\n options: Cre8SelectOption[];\n}\n\n/**\n * The Select control is designed and built to be used for selecting between choices in a form.\n * It is not a Dropdown control which is generally used for displaying lists of choices\n * that act as links or actions, like filter options.\n *\n * Consider the use of a Select control carefully.\n * When you have less than 5 options for the user to choose from,\n * Radio or Checkbox inputs may be a better choice to display all of the options at once.\n * Users have to slow down to scan a list with more than 15 options,\n * so using an option group to give the options hierarchy may help users find their choice faster.\n * Alternately, a text input field might be a more appropriate control to use when there are too many options,\n * especially when used with typeahead/auto-complete.\n *\n * ## How to use\n * 1. The collapsed default state always shows a default placeholder value or a selected value.\n * 2. Sort list items in a logical order, such as grouping highly related options together,\n * placing most common options first, using alphabetical or numeric orders or dates in chronological order.\n * 3. A list that includes 6+ items should show a scrollbar.\n * 4. Users should be able to use a keystroke to quickly jump\n * to selecting an option that begins with the entered letter.\n * 5. Utilize appropriate native controls for when a user is on a mobile device rather than our custom Select.\n * 6. Adhere to our common form field conventions and always include a Label,\n * provide short and clear error messages in context, avoid using the Read-only\n * and Disabled states as much as possible, and utilize the info/formatting tip\n * or helpful link rather than placeholder text.\n *\n * @slot fieldNote - Container for optional field note content\n */\n\nexport class Cre8Select extends Cre8FormElement {\n readonly type = 'select';\n\n static styles = [styles];\n\n /**\n * A mix of Cre8SelectOption and Cre8SelectOptionGroup definitions:\n * - Cre8SelectOption\n * - label: option label text - `string`\n * - value: option value - `number | string`\n * - Cre8SelectOptionGroup\n * - optGroupLabel: optgroup label text - `string`\n * - options: Array of multiple Cre8SelectOption items - `Cre8SelectOption[]`\n */\n @property({ type: Array })\n items: Array<Cre8SelectOption|Cre8SelectOptionGroup> = [];\n\n /**\n * The required label that appears above the select\n * @attr {string}\n */\n @property()\n label: string = 'Label';\n\n /**\n * The name property on the select\n * @attr {string}\n */\n @property()\n name?: string;\n\n/**\n* The unique id of the select\n* @attr {string}\n*/\n @property()\n fieldId?: string;\n\n /**\n * Optional field note text can be added to provide additional field guidance.\n * @attr {string}\n */\n @property()\n fieldNote?: string;\n\n /**\n * Used to connect the field note in text field to the text menu for accessibility\n * @attr {string}\n */\n @property()\n ariaDescribedBy?: string;\n\n /**\n * Additional aria-describedby connection to id for additional success and error notes to be accessible\n * @attr {string}\n */\n @property()\n validationAriaDescribedBy?: string;\n\n /**\n * The required attribute on the select\n * @attr {boolean}\n */\n @property({ type: Boolean, reflect: true })\n required?: boolean;\n\n /**\n * The disabled attribute on the select\n * @attr {boolean}\n */\n @property({ type: Boolean, reflect: true })\n disabled?: boolean;\n\n /**\n * Changes the component's treatment to represent an error state\n * @attr {boolean}\n */\n @property({ type: Boolean, reflect: true })\n isError?: boolean;\n\n /**\n * The error field note that appears below the default field note\n * @attr {string}\n */\n @property()\n errorNote?: string;\n\n /**\n * Changes the component's treatment to represent a success state\n * @attr {boolean}\n */\n @property({ type: Boolean, reflect: true })\n isSuccess?: boolean;\n\n /**\n * The success field note that appears below the default field note\n * @attr {string}\n */\n @property()\n successNote?: string;\n\n /**\n * Select input querySelector\n */\n @query('select')\n field!: HTMLSelectElement;\n\n\n /**\n * Get all select option elements\n */\n @queryAll('option')\n private _selectOptions: HTMLOptionElement[];\n\n\n /**\n * Selected item value\n */\n private selectedItem: string;\n\n /**\n * Initialize aria attributes\n */\n private _initializeAria() {\n this.fieldId = this.fieldId || nanoid();\n if (this.fieldNote || this.slotNotEmpty('fieldNote')) {\n this.ariaDescribedBy = this.ariaDescribedBy || nanoid();\n }\n if (this.successNote || this.errorNote) {\n this.validationAriaDescribedBy = this.validationAriaDescribedBy || nanoid();\n }\n }\n\n /**\n * Aria describedby string based on field notes and error/success notes\n * 1) If both validationAriaDescribedBy (error/success note) and field note exists,\n * render both in the input's `aria-describedby` attribute\n * 2) Otherwise, if only validationAriaDescribedBy exists, then render only that as\n * the `aria-describedby` attribute (input without field note initially, but then error/success is added).\n * 3) Otherwise, render only the `ariaDescribedBy` property (field note only)\n */\n private _fieldNoteAria() {\n if (this.validationAriaDescribedBy && this.ariaDescribedBy) {\n return `${this.ariaDescribedBy} ${this.validationAriaDescribedBy}`; /* 1 */\n }\n if (this.validationAriaDescribedBy && (!this.ariaDescribedBy)) {\n return this.validationAriaDescribedBy; /* 2 */\n }\n return this.ariaDescribedBy; /* 3 */\n }\n\n /**\n * First updatedLifecycle\n * 1) Get the option in the items array with selected set to true. Set that as the selected item\n * 2) The default value is set to the `option` with the `selected` if one exists. Otherwise, use the\n * select the first item value like the native select.\n */\n firstUpdated() {\n super.firstUpdated();\n this._selectOptions.forEach((item) => { /* 1 */\n if (item.selected === true) {\n this.selectedItem = item.value; /* 1 */\n }\n });\n this.defaultValue = this.selectedItem ? this.selectedItem : this._selectOptions[0].value; /* 2 */\n this._setFormData();\n this._initializeAria();\n return this.updateField();\n }\n\n /**\n * Set form data\n * 1) Set the element internals to the selected item value if it exists,\n * otherwise the default selected item is the first one\n */\n private _setFormData() {\n if (this.selectedItem) {\n return this.internals.setFormValue(this.selectedItem);\n }\n return this.internals.setFormValue(this.defaultValue.toString());\n }\n\n /**\n * Handle On Change\n * 1. Set the value when the select is changed.\n * 2. Fire the custom event with the current value.\n */\n private _handleOnChange(e: Event) {\n /* 1 */\n const target = e.target as HTMLSelectElement;\n this.value = target.options[target.selectedIndex].value;\n this.internals.setFormValue(this.value);\n\n\n /* 2 */\n const customEvent = new CustomEvent('change', {\n detail: {\n name: this.name,\n value: this.value,\n },\n bubbles: true,\n composed: true,\n });\n this.dispatchEvent(customEvent);\n }\n\n /**\n * Render the select options\n */\n private _renderSelectOptions() {\n return this.items.map((item: Cre8SelectOption|Cre8SelectOptionGroup) => {\n if ('options' in item) {\n const selectedGroup = item.options.map((option: Cre8SelectOption) => html`\n <option value=\"${option.value}\">${option.label}</option>\n `);\n return html`<optgroup label=\"${item.optGroupLabel}\">\n ${selectedGroup}\n </optgroup>`;\n }\n return html`<option value=\"${item.value}\">${item.label}</option>`;\n });\n }\n\n /**\n * Render the success or error field notes\n * 1. If there is a successNote, then return the field note with the success message and state.\n * 2. If there is a errorNote, then return the field note with the error message and state.\n */\n private _renderSuccessErrorFieldNote() {\n if (this.successNote) {\n /* 1 */\n return html`\n <cre8-field-note\n ?isSuccess=${this.isSuccess}\n id=${this.validationAriaDescribedBy}\n class=\"cre8-c-select__field-note-success\"\n iconName=\"success\"\n >\n ${this.successNote}\n </cre8-field-note>`;\n }\n if (this.errorNote) {\n /* 2 */\n return html`\n <cre8-field-note\n ?isError=${this.isError}\n id=${this.validationAriaDescribedBy}\n class=\"cre8-c-select__field-note-error\"\n iconName=\"error-alt\"\n >\n ${this.errorNote}\n </cre8-field-note>`;\n }\n return null;\n }\n\n render() {\n const componentClassNames = this.componentClassNames('cre8-c-select', {\n 'cre8-is-error': this.isError,\n 'cre8-is-success': this.isSuccess,\n });\n\n return html`\n <div class=\"${componentClassNames}\">\n <label class=\"cre8-c-select__label\" for=\"${this.fieldId}\">${this.label}</label>\n <div class=\"cre8-c-select__body\">\n <select\n class=\"cre8-c-select__input\"\n id=${this.fieldId}\n name=${this.name}\n ?required=${this.required}\n ?disabled=${this.disabled}\n aria-describedby=\"${ifDefined(this._fieldNoteAria())}\"\n @change=${this._handleOnChange}\n >\n ${this._renderSelectOptions()}\n </select>\n <div class=\"cre8-c-select__icons\">\n <cre8-icon svg='${svgCaretUp}' rotate=\"180\" class=\"cre8-c-select__icon-arrow\" aria-hidden='true'>\n </div>\n </div>\n </div>\n ${this.fieldNote || this.slotNotEmpty('fieldNote')\n ? html`\n <cre8-field-note\n id=${this.ariaDescribedBy}\n class=\"cre8-c-select__field-note\"\n ><slot name=\"fieldNote\">${this.fieldNote}</slot></cre8-field-note>`\n : nothing}\n ${this._renderSuccessErrorFieldNote()}\n `;\n }\n}\n\nif (customElements.get('cre8-select') === undefined) {\n customElements.define('cre8-select', Cre8Select);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-select': Cre8Select;\n }\n}\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n// #SELECT-TILE\n\n:host {\n display: inline-flex;\n}\n\n.cre8-c-select-tile {\n position: relative;\n overflow: hidden;\n cursor: pointer;\n display: flex;\n flex-direction: column;\n height: 100%;\n width: 100%;\n padding: size(2);\n gap: 1rem;\n border-color: var(--cre8-color-border-default);\n border-width: var(--cre8-border-width-default);\n border-radius: var(--cre8-border-radius-default);\n border-style: solid;\n background: var(--cre8-color-bg-default);\n &:hover,\n &:focus,\n &:focus-visible,\n &:active {\n background: var(--cre8-color-bg-default-hover);\n border-color: var(--cre8-color-border-brand);\n }\n &:focus,\n &:focus-visible {\n @includefocus();\n }\n\n &.cre8-c-select-tile--error {\n border-color: var(--cre8-color-border-error);\n background: var(--cre8-color-bg-error);\n }\n\n &.cre8-c-select-tile--success {\n border-color: var(--cre8-color-border-success);\n background: var(--cre8-color-bg-success);\n }\n\n &.cre8-c-select-tile--disabled {\n border-color: var(--cre8-color-border-disabled);\n background: var(--cre8-color-bg-disabled);\n cursor: not-allowed;\n }\n}\n\ninput:checked + .cre8-c-select-tile {\n border-width: 2px;\n border-color: var(--cre8-color-border-brand);\n}\n\n.cre8-c-select-tile__input {\n display: none;\n}\n\n/**\n * Horizontal select-tile\n * 1) Organized block with flex-direction set to row so that header => footer appears\n * from left to right rather than top to bottom\n */\n .cre8-c-select-tile--horizontal {\n flex-direction: row;\n align-items: center;\n justify-content: center;\n}\n\n@mixin cre8-c-select-tile--vertical-at-bp($breakpoint) {\n @media all and (max-width: $breakpoint) {\n flex-direction: column;\n\n .cre8-c-select-tile__custom-radio {\n position: absolute;\n top: size(1);\n right: size(1);\n }\n }\n}\n\n.cre8-c-select-tile--vertical-at-sm {\n @include cre8-c-select-tile--vertical-at-bp(component.$cre8-breakpoint-sm);\n}\n.cre8-c-select-tile--vertical-at-sm-2 {\n @include cre8-c-select-tile--vertical-at-bp(component.$cre8-breakpoint-sm);\n}\n.cre8-c-select-tile--vertical-at-md {\n @include cre8-c-select-tile--vertical-at-bp(component.$cre8-breakpoint-md);\n}\n.cre8-c-select-tile--vertical-at-lg {\n @include cre8-c-select-tile--vertical-at-bp(component.$cre8-breakpoint-lg);\n}\n.cre8-c-select-tile--vertical-at-xl {\n @include cre8-c-select-tile--vertical-at-bp(component.$cre8-breakpoint-xl);\n}\n.cre8-c-select-tile--vertical-at-xxl {\n @include cre8-c-select-tile--vertical-at-bp(component.$cre8-breakpoint-xxl);\n}\n\n\n/**\n * Bare select-tile\n * 1) Organized block without a border, background, or padding\n */\n.cre8-c-select-tile--bare {\n border: var(--cre8-border-width-none);\n padding: var(--cre8-spacing-0);\n box-shadow: none;\n}\n/**\n * Horizontal-bare select-tile\n * 1) Organized block with flex-direction set to row so that header => footer appears\n * from left to right rather than top to bottom without a border, background, or padding\n */\n.cre8-c-select-tile--horizontal-bare {\n flex-direction: row;\n border: var(--cre8-border-width-none);\n padding: var(--cre8-spacing-0);\n box-shadow: none;\n align-items: center;\n justify-content: center;\n }\n/**\n * Center aligned select-tile\n * 1) Center content and text within the select-tile\n */\n.cre8-c-select-tile--align-center {\n text-align: center; /* 1 */\n align-items: center; /* 1 */\n justify-content: center; /* 1 */\n}\n\n/**\n * Slotted image within a select-tile\n * 1) Make the image full width\n */\n::slotted(img) {\n width: 100%;\n}\n\n/**\n * Select tile header\n * 1) Remove flex so that body always takes up remaining space\n */\n.cre8-c-select-tile__header {\n display: block;\n flex: none; /* 1 */\n}\n\n/**\n * Select Tile body\n * 1) Flex applied to always fill the remaining space of the select-tile\n */\n.cre8-c-select-tile__body {\n display: block;\n flex: 1 1 auto; /* 1 */\n\n /**\n * Select Tile body within bare select-tile\n * 1) Remove padding\n */\n .cre8-c-select-tile--bare & {\n padding: var(--cre8-spacing-0);\n }\n .cre8-c-select-tile--horizontal-bare & {\n padding: var(--cre8-spacing-0);\n }\n\n .cre8-c-select-tile__body_title {\n @include cre8-typography-title-default();\n }\n .cre8-c-select-tile__body_body {\n @include cre8-typography-body-default();\n }\n}\n\n/**\n * Select Tile footer\n * 1) Remove flex so that body always takes up remaining space\n */\n.cre8-c-select-tile__footer {\n display: flex;\n flex: none; /* 1 */\n\n .cre8-c-select-tile--bare & {\n padding: var(--cre8-spacing-0);\n }\n .cre8-c-select-tile--horizontal-bare & {\n padding: var(--cre8-spacing-0);\n }\n}\n\n.cre8-c-select-tile__custom-radio, .cre8-c-select-tile__custom-checkbox {\n\n /**\n * Render the checkmark/radio button on the left instead of the right.\n * Since it is only visual and the \"checked\" state is also set via aria,\n * there are hopefully no a11y issues with using order here.\n */\n &.cre8-c-select-tile__custom-radio-left {\n order: -1;\n }\n\n &.cre8-c-select-tile__custom-radio-none {\n display: none;\n }\n}\n\n@mixin cre8-c-select-radio-top-right($breakpoint: 0) {\n position: absolute;\n top: size(1);\n right: size(1);\n @if $breakpoint != 0 {\n @media all and (min-width: $breakpoint) {\n position: static;\n }\n }\n}\n\n/**\n* Radio field item custom radio container\n*/\n.cre8-c-select-tile__custom-radio {\n display: flex;\n flex: none;\n height: size(3);\n width: size(3);\n cursor: pointer;\n align-items: center;\n justify-content: center;\n border-radius: var(--cre8-border-radius-round);\n border-width: var(--cre8-border-width-default);\n border-style: var(--cre8-border-style-default);\n background-color: var(--cre8-color-bg-default);\n border-color: var(--cre8-color-border-default);\n\n /**\n * Radio field item custom radio focus visible custom outline\n */\n .cre8-c-select-tile__input:focus-visible + & {\n border-color: var(--cre8-color-border-strong);\n @include focus;\n\n .cre8-c-select-tile--error & {\n @include focusError;\n border-color: var(--cre8-color-border-error);\n }\n }\n\n /**\n * Radio field item custom radio within radio field with error\n */\n .cre8-c-select-tile--error & {\n border-color: var(--cre8-color-border-error);\n }\n\n /**\n * Radio field item custom radio within radio field disabled\n */\n .cre8-c-select-tile--disabled & {\n cursor: not-allowed;\n background-color: var(--cre8-color-bg-disabled);\n border-color: var(--cre8-color-border-disabled);\n }\n}\n\n.cre8-c-select-tile__custom-radio-top-right {\n @include technology.cre8-c-select-radio-top-right();\n}\n\n/**\n * Check radio variant\n */\n.cre8-c-select-tile__custom-radio-check {\n .cre8-c-select-tile__icon {\n display: flex;\n }\n}\n\n/**\n * Radio field item inner circle\n */\n.cre8-c-select-tile__inner-circle {\n display: none;\n\n cursor: pointer;\n height: size(1.5);\n width: size(1.5);\n background: var(--cre8-color-content-brand);\n border-radius: var(--cre8-border-radius-round);\n\n /** Check radio variant */\n .cre8-c-select-tile__custom-radio-check & {\n flex: none;\n height: size(3);\n width: size(3);\n align-items: center;\n justify-content: center;\n }\n\n /**\n * Radio field item inner circle error\n */\n .cre8-c-select-tile--error & {\n background: var(--cre8-color-bg-error-strong);\n }\n\n /**\n * Radio field item inner circle disabled\n */\n .cre8-c-select-tile--disabled & {\n background: var(--cre8-color-content-disabled);\n }\n\n /**\n * Radio field item inner circle will display if the input is checked\n */\n input:checked ~ * .cre8-c-select-tile__custom-radio & {\n display: flex;\n }\n}\n\n\n// These styles are for the checkbox version\n\n/**\n * Checkbox field item custom checkbox container\n */\n .cre8-c-select-tile__custom-checkbox {\n display: flex;\n flex: none;\n height: size(3);\n width: size(3);\n cursor: pointer;\n align-items: center;\n justify-content: center;\n border-radius: var(--cre8-border-radius-small);\n border-width: var(--cre8-border-width-default);\n border-style: var(--cre8-border-style-default);\n background-color: var(--cre8-color-bg-default);\n border-color: var(--cre8-color-border-strong);\n\n /**\n * Checkbox field item custom checkbox focus visible custom outline\n */\n .cre8-c-select-tile__input:focus-visible + & {\n @include focus;\n\n .cre8-c-select-tile--error & {\n @include focusError;\n }\n }\n\n /**\n * Checkbox field item custom checkbox within checkbox field with error\n */\n .cre8-c-select-tile--error & {\n background-color: var(--cre8-color-bg-default);\n border-color: var(--cre8-color-border-error);\n }\n\n /**\n * Checkbox field item custom checkbox within checkbox field with disabled\n */\n .cre8-c-select-tile--disabled & {\n cursor: not-allowed;\n background-color: var(--cre8-color-bg-disabled);\n border-color: var(--cre8-color-border-disabled);\n }\n}\n\n/**\n * Checkbox field item custom checkbox when item is checked\n */\ninput:checked ~ * .cre8-c-select-tile__custom-checkbox {\n background-color: var(--cre8-color-bg-brand-strong);\n\n /**\n * Checkbox field item custom checkbox when item is checked with error\n */\n .cre8-c-select-tile--error & {\n background-color: var(--cre8-color-bg-default);\n }\n\n /**\n * Checkbox field item custom checkbox when item is checked with disabled\n */\n .cre8-c-select-tile--disabled & {\n background-color: var(--cre8-color-bg-disabled);\n }\n}\n\n/**\n * Checkbox field item checkmark icon\n */\n.cre8-c-select-tile__icon {\n display: none;\n color: var(--cre8-color-content-knockout);\n\n /**\n * Checkbox field item icon within checkbox field with error\n */\n .cre8-c-select-tile--error & {\n color: var(--cre8-color-content-error);\n }\n\n /**\n * Checkbox field item icon within checkbox field disabled\n */\n .cre8-c-select-tile--disabled & {\n color: var(--cre8-color-content-disabled);\n }\n\n /**\n * Checkbox field item icon will display in the box if the input is checked\n */\n input:checked ~ * .cre8-c-select-tile__custom-checkbox & {\n display: flex;\n }\n}\n`;\nexport default styles;\n","import { ReactiveController } from 'lit';\nimport { Cre8FormElement } from '../cre8-form-element';\nimport { Cre8RadioFieldItem } from '../radio-field-item/radio-field-item';\n\ntype FormElement = Cre8FormElement & { form: HTMLFormElement, name?: string, checked?: boolean };\n\n/**\n * Helper function to wrap indexes around, to help us treat the array as a ring.\n */\nfunction wrapIndex(arr: unknown[], index: number) {\n if (index < 0) {\n return arr.length - 1;\n } if (index >= arr.length) {\n return 0;\n }\n return index;\n}\n\n/**\n * This Controller handles the special radio button logic.\n *\n * - Handle clicks and key presses, which involves\n * - Unchecking other select-tile's when this one is checked, if they are in the same form.\n * - Changing focus between `0` and `-1`, and moving focus correctly on key press\n * - checking/unchecking on spacebar\n *\n * See also https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/radio_role\n * and https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/radiogroup_role\n *\n * Also see https://html.spec.whatwg.org/multipage/custom-elements.html#custom-elements-autonomous-drawbacks\n *\n * This started out as a copy of radio-field-item.ts.\n *\n * Part of the reason I extracted this was to see if I could share this logic with radio-field-item,\n * but that would be separate refactor.\n *\n * It might also be good for the \"checkbox\" mode of select-tile.\n *\n * And it might also just be a cleaner separation of concerns.\n */\nexport class SelectTileRadioController implements ReactiveController {\n private host: FormElement;\n\n constructor(host: FormElement) {\n this.host = host;\n host.addController(this);\n }\n\n hostConnected(): void {\n this.host.internals.role = 'radio';\n // If we don't also do this, we can't use css selectors to find ourselves\n this.host.setAttribute('role', 'radio');\n this.host.setAttribute('tabindex', '0');\n\n this.host.addEventListener('click', this._clickHandler);\n this.host.addEventListener('keydown', this._handleKeyDown);\n }\n\n hostDisconnected(): void {\n this.host.internals.role = undefined;\n this.host.removeAttribute('role');\n this.host.removeAttribute('tabindex');\n\n this.host.removeEventListener('click', this._clickHandler);\n this.host.removeEventListener('keydown', this._handleKeyDown);\n }\n\n hostUpdate(): void {\n // TODO: do stuff if name, checked, etc change.\n }\n\n /**\n * Find all elements that are in the same \"radio button group\", following the HTML 5 spec,\n * except that we're looking at `[role=\"radio\"]` instead of `input[type=\"radio\"]`.\n *\n * - They have the attribute role=\"radio\" set\n * - They have the same form owner, or both have no form owner\n * - They're in the same tree (same document, don't look at shadow dom)\n * - They both have non-empty name attributes, and the names are the same\n *\n */\n findAllElementsInSameRadioButtonGroup({ excludeDisabled }: { excludeDisabled?: boolean} = {}) {\n const name = this.host.name;\n const form = this.host.form;\n if (name && name.length > 0) {\n const document = this.host.ownerDocument;\n const matches = Array.from(\n document.querySelectorAll(`[role=\"radio\"][name=\"${name}\"]`)\n ).filter((element: HTMLElement & { form?: HTMLFormElement}) => element.form === form);\n\n if (excludeDisabled === true) {\n return matches\n .filter((element: HTMLElement & { disabled?: boolean}) => !(\n element.disabled || element.ariaDisabled === 'true'\n ));\n }\n\n return matches;\n }\n return [];\n }\n\n /**\n * Remove checked\n * 1) Reset the form field to not checked\n * 2) Remove checked property from all items and set tabindex to -1\n */\n removeChecked() {\n const radioFieldItems = this.findAllElementsInSameRadioButtonGroup();\n radioFieldItems.forEach((element: Cre8RadioFieldItem) => {\n element.checked = false; /* 1 */\n element.setAttribute('tabindex', '-1'); /* 2 */\n });\n }\n\n /**\n * Handle clicking on the radio button\n * @see _checkAndFocus\n */\n private _clickHandler = (e: MouseEvent | KeyboardEvent) => {\n e.preventDefault();\n this._checkAndFocus(this.host);\n };\n\n /**\n * Set the element to `checked`\n * 1) Remove `checked` and set tabindex to -1 on all elements in our radio group\n * 2) Set us to checked.\n * 3) Set our tabindex to 0\n */\n private _checkAndFocus = (target: HTMLElement & { checked?: boolean }) => {\n const wasChecked = target.checked;\n this.removeChecked(); /* 1 */\n target.focus();\n target.checked = true; /* 2 */\n target.setAttribute('tabindex', '0'); /* 3 */\n if (!wasChecked) {\n target.dispatchEvent(new Event('input', { bubbles: true, composed: true }));\n target.dispatchEvent(new Event('change', { bubbles: true }));\n }\n };\n\n /**\n * Handle keydown\n * 1) If left or up arrow key is struck and radio field item exists before current item,\n * remove checked from all items and add it to the next item\n * 2) If right or down arrow key is struck and radio field item exists after current item,\n * remove checked from all items and add checked to the next item.\n * Focus on this item and set tabindex for when focusing out of radio field and back onto checked item.\n * 3) If the element is in focused, then for event emission the\n * current focues element should be clicked to emit event.\n * 4) If the Enter key is pressed, then check the radio if no other radio items are checked\n */\n private _handleKeyDown = (e: KeyboardEvent) => {\n // The arrow keys\n if (['ArrowLeft', 'ArrowUp', 'ArrowRight', 'ArrowDown'].includes(e.code)) {\n this._handleArrowKeys(e);\n }\n // Enter and Space\n if (['Enter', ' '].includes(e.key)) {\n this._handleEnterSpace(e);\n }\n };\n\n private _handleArrowKeys = (e: KeyboardEvent) => {\n const siblings = this.findAllElementsInSameRadioButtonGroup({ excludeDisabled: true });\n\n // If we're the only radio-like element, nothing to do\n if (siblings.length <= 1) {\n return;\n }\n\n const ourIndex = siblings.findIndex((item) => item === this.host);\n let moveToElement: HTMLElement & { checked?: boolean };\n if (e.code === 'ArrowLeft' || e.code === 'ArrowUp') {\n moveToElement = siblings[wrapIndex(siblings, ourIndex - 1)] as HTMLElement;\n } else if (e.code === 'ArrowRight' || e.code === 'ArrowDown') {\n moveToElement = siblings[wrapIndex(siblings, ourIndex + 1)] as HTMLElement;\n }\n\n this._checkAndFocus(moveToElement);\n\n e.preventDefault();\n };\n\n /**\n * Handle Enter and Space\n * @see _checkAndFocus\n */\n private _handleEnterSpace = (e: KeyboardEvent) => {\n this._checkAndFocus(this.host);\n e.preventDefault();\n };\n}\n\nexport default SelectTileRadioController;\n","import { ReactiveController } from 'lit';\nimport { Cre8FormElement } from '../cre8-form-element';\n\ntype FormElement = Cre8FormElement & { form: HTMLFormElement, name?: string, checked?: boolean };\n\n\n/**\n * This Controller handles the special checkbox logic.\n * This should be a lot simpler than the radio version.\n *\n * See https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/checkbox_role\n */\nexport class SelectTileCheckboxController implements ReactiveController {\n private host: FormElement;\n\n constructor(host: FormElement) {\n this.host = host;\n host.addController(this);\n }\n\n hostConnected(): void {\n this.host.internals.role = 'checkbox';\n this.host.setAttribute('tabindex', '0');\n\n this.host.addEventListener('click', this._clickHandler);\n this.host.addEventListener('keydown', this._handleKeyDown);\n }\n\n hostDisconnected(): void {\n this.host.internals.role = undefined;\n this.host.removeAttribute('tabindex');\n\n this.host.removeEventListener('click', this._clickHandler);\n this.host.removeEventListener('keydown', this._handleKeyDown);\n }\n\n /**\n * Handle clicking on the radio button\n * @see _checkAndFocus\n */\n private _clickHandler = (e: MouseEvent | KeyboardEvent) => {\n this._checkAndFocus();\n e.preventDefault();\n };\n\n /**\n * Set the element to `checked`\n * 2) Set us to checked.\n */\n private _checkAndFocus = () => {\n this.host.checked = !this.host.checked;\n this.host.dispatchEvent(new Event('input', { bubbles: true, composed: true }));\n this.host.dispatchEvent(new Event('change', { bubbles: true }));\n };\n\n /**\n * Handle keydown\n */\n private _handleKeyDown = (e: KeyboardEvent) => {\n // Enter and Space\n if (['Enter', ' '].includes(e.key)) {\n this._handleEnterSpace(e);\n }\n };\n\n /**\n * Handle Enter and Space\n * @see _checkAndFocus\n */\n private _handleEnterSpace = (e: KeyboardEvent) => {\n this._checkAndFocus();\n e.preventDefault();\n };\n}\n\nexport default SelectTileCheckboxController;\n","import svgCheck from '../../icons/System/Regular/Check.svg?raw';\nimport {\n LitElement, PropertyValues, html,\n} from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { ifDefined } from 'lit-html/directives/if-defined.js';\nimport { nanoid } from 'nanoid';\n\nimport { Cre8FormElement } from '../cre8-form-element';\nimport '../icon/icon';\n\nimport styles from './select-tile.styles.js';\nimport { SelectTileRadioController } from './select-tile-radio-controller';\nimport { SelectTileCheckboxController } from './select-tile-checkbox-controller';\n\n /**\n * The Select Tile component is a short block of content inside a visual\n * container that can be used in place of checkboxes, radio buttons, and\n * links. It allows you to add more descriptive and visually appealing\n * content for these actions while letting you compare different choices\n * either side-by-side or on top of each other.\n *\n * Typically you could use the \"header\" slot for an icon, and the \"title\"\n * and \"body\" slots for a content title and body text below it.\n *\n * The css parts are shown here wrapped in ::part() because otherwise Storybook\n * won't render them and the slots if they have the same name.\n * See https://developer.mozilla.org/en-US/docs/Web/CSS/::part\n *\n * @fires change\n * @fires input\n * @slot \"\" - The default slot goes into the center, main part of the Select Tile.\n * Consider using title and body instead.\n * @slot \"header\" - The top or left part of the Select Tile\n * @slot footer - The bottom or right part of the Select Tile\n * @slot title - The title part of the Select Tile, use with body slot and\n * instead of the default slot for appropriate typography.\n * @slot \"body\" - The \"body\" part of the Select Tile, which appears under\n * the title slot and receives apporpriate typography.\n *\n * @csspart ::part(select-tile) - The main wrapping element\n * @csspart ::part(header) - The header element wrapping the left or top element\n * @csspart ::part(footer) - The footer element wrapping the right element\n * @csspart ::part(body) - The main body of the select-tile, wrapper around the default slot\n * @csspart ::part(body-title) - The element that wraps the \"title\" slot\n * @csspart ::part(body-body) - The element that wraps the \"body\" slot\n *\n */\nexport class Cre8SelectTile extends Cre8FormElement {\n static shadowRootOptions = { ...LitElement.shadowRootOptions, delegatesFocus: true };\n\n private _controller: SelectTileRadioController | SelectTileCheckboxController | undefined = undefined;\n\n /**\n * Should this Select Tile behave as a radio button or a checkbox?\n */\n @property({ reflect: true })\n type: 'radio' | 'checkbox' = 'radio';\n\n /**\n * Get the radio field item input\n */\n @query('input')\n field!: HTMLInputElement;\n\n static styles = [styles];\n\n /**\n * Style variants\n * - **bare** renders a select-tile without a border and without padding around the content\n * - **horizontal** renders a select-tile with header, body, footer oriented in a row rather than a column\n * - **horizontal-bare** renders a select-tile with header, body, footer\n * oriented in a row rather than a column without a border and without padding around the content\n */\n @property({ reflect: true })\n variant?: 'bare' | 'horizontal' | 'horizontal-bare';\n\n /**\n * Which breakpoint, if any, to switch to verticial.\n * Only useful for horizontal variants. Defaults to 'sm'.\n */\n @property({ reflect: true })\n variantBreakToVertical: 'sm' | 'sm-2' | 'md' | 'lg' | 'xl' | 'xxl' | 'none' = 'sm';\n\n /**\n * Where does the checkmark or radio button go?\n * It disappears on 'none'. Only top-right is supported for vertical variants.\n */\n @property({ reflect: true })\n checkPosition: 'left' | 'right' | 'top-right' | 'none' = 'right';\n\n /**\n * In radio mode, whether to use the circle with the dot, or the rounded check.\n */\n @property({ reflect: true })\n radioVariant: 'dot' | 'check' = 'dot';\n\n /**\n * Align variants\n * <cre8-text-passage size=\"sm\">\n * <ul>\n * <li>**center** renders a select-tile that has center aligned content/text</li>\n * </ul>\n * </cre8-text-passage>\n */\n @property({ reflect: true })\n align?: 'center';\n\n /**\n * Error State\n */\n @property({ type: Boolean, reflect: true })\n isError?: boolean;\n\n /**\n * Disabled State\n */\n @property({ type: Boolean, reflect: true })\n disabled?: boolean;\n\n /**\n * Required attribute\n */\n @property({ type: Boolean, reflect: true })\n required?: boolean;\n\n /**\n * Checked State.\n * Note: the `checked` attribute sets the `defaultChecked` property, as well\n * as sets the initial value for the `checked` property.\n */\n @property({ type: Boolean, reflect: true })\n checked?: boolean;\n\n /**\n * The default checked state when the element first renders or is reset.\n *\n * Note: the attribute is named `checked` and the property is\n * named `defaultChecked`. This is the same as a regular radio button.\n */\n @property({ attribute: 'checked', type: Boolean, reflect: true })\n defaultChecked: boolean;\n\n /**\n * Select Tile FieldId\n */\n @property()\n fieldId?: string;\n\n /**\n * Name of the form control.\n */\n @property({ reflect: true })\n name?: string;\n\n /**\n * Radio item fieldnote aria describe by\n */\n @property()\n private ariaDescribedBy?: string;\n\n /**\n * Radio item fieldnote isSuccess\n */\n @property({ type: Boolean, reflect: true })\n isSuccess?: boolean;\n\n /**\n * The form associated with this field\n *\n * TOOD: maybe this goes on Cre8FormElement\n */\n get form() {\n return this.internals.form;\n }\n\n /**\n * Connected callback lifecycle\n * 1) Auto-generate the fieldId if a user doesn't provided so that the form field is accessible\n * 2) Initialize the correct controller\n */\n connectedCallback() {\n super.connectedCallback();\n this.fieldId = this.fieldId || nanoid(); /* 1 */\n this._controller = this.type === 'radio'\n ? new SelectTileRadioController(this)\n : new SelectTileCheckboxController(this);\n if (this.disabled) {\n this.internals.ariaDisabled = 'true';\n }\n }\n\n /**\n * Reset form callback\n * 1) Remove the checked state from all radio elements\n * 2) Set the checked state to the initial checked state\n * 3) Set the radio field input checked attribute to the initial checked state\n */\n formResetCallback(): void {\n this.checked = this.defaultChecked;\n this.field.checked = this.defaultChecked;\n }\n\n\n /**\n * Whenever the \"checked\" property changes, update our form value, aria-checked,\n * and the checked property of `this.field`.\n *\n */\n updated(changedProps: PropertyValues) {\n super.updated(changedProps);\n\n if (changedProps.has('checked')) {\n // this.field.checked = this.checked;\n // this.field.checked ? this.internals.setFormValue(this.value || 'on') : this.internals.setFormValue(null);\n this.setAttribute('aria-checked', this.checked ? 'true' : 'false');\n }\n if (changedProps.has('type')) {\n this._controller.hostDisconnected();\n this._controller = this.type === 'radio'\n ? new SelectTileRadioController(this)\n : new SelectTileCheckboxController(this);\n }\n if (changedProps.has('disabled')) {\n if (this.disabled) {\n this.internals.ariaDisabled = 'true';\n } else {\n this.internals.ariaDisabled = 'false';\n }\n }\n }\n\n\n renderInput() {\n return html`\n <input\n class=\"cre8-c-select-tile__input\"\n type=${this.type}\n id=${this.fieldId}\n aria-describedby=\"${ifDefined(this.ariaDescribedBy)}\"\n ?required=${this.required}\n name=${this.name}\n .value=${this.value}\n ?disabled=\"${this.disabled}\"\n .checked=\"${this.checked}\"\n />\n `;\n }\n\n renderCheckboxIcon() {\n if (this.type === 'checkbox') {\n return html`\n <cre8-icon svg=\"${svgCheck}\" class=\"cre8-c-select-tile__icon\" aria-hidden=\"${!this.checked}\"></cre8-icon>\n `;\n }\n return null;\n }\n\n render() {\n const componentClassNames = this.componentClassNames('cre8-c-select-tile', {\n 'cre8-c-select-tile--bare': this.variant === 'bare',\n 'cre8-c-select-tile--horizontal': this.variant === 'horizontal',\n 'cre8-c-select-tile--horizontal-bare': this.variant === 'horizontal-bare',\n 'cre8-c-select-tile--vertical-at-sm': this.variantBreakToVertical === 'sm',\n 'cre8-c-select-tile--vertical-at-sm-2': this.variantBreakToVertical === 'sm-2',\n 'cre8-c-select-tile--vertical-at-md': this.variantBreakToVertical === 'md',\n 'cre8-c-select-tile--vertical-at-lg': this.variantBreakToVertical === 'lg',\n 'cre8-c-select-tile--vertical-at-xl': this.variantBreakToVertical === 'xl',\n 'cre8-c-select-tile--vertical-at-xxl': this.variantBreakToVertical === 'xxl',\n 'cre8-c-select-tile--align-center': this.align === 'center',\n 'cre8-c-select-tile--error': this.isError,\n 'cre8-c-select-tile--success': this.isSuccess,\n 'cre8-c-select-tile--disabled': this.disabled,\n });\n\n const checkboxClassNames = this.componentClassNames(\n this.type === 'radio' ? 'cre8-c-select-tile__custom-radio' : 'cre8-c-select-tile__custom-checkbox',\n {\n 'cre8-c-select-tile__custom-radio-top-right': !this.variant\n || this.variant === 'bare' || this.checkPosition === 'top-right',\n 'cre8-c-select-tile__custom-radio-left': this.checkPosition === 'left',\n 'cre8-c-select-tile__custom-radio-none': this.checkPosition === 'none',\n 'cre8-c-select-tile__custom-radio-check': this.radioVariant === 'check',\n }\n );\n\n const labelTabIndex = this.disabled ? undefined : '0';\n\n return html`\n ${this.renderInput()}\n <label class=\"${componentClassNames}\" part=\"select-tile\" for=${this.fieldId} tabindex=${labelTabIndex}>\n ${this.slotNotEmpty('header') && html`\n <div class=\"cre8-c-select-tile__header\" part=\"header\">\n <slot name=\"header\"></slot>\n </div>\n `}\n <div part=\"body\" class=\"cre8-c-select-tile__body\">\n <slot></slot>\n ${this.slotNotEmpty('title') && html`\n <div part=\"body-title\" class=\"cre8-c-select-tile__body_title\">\n <slot name=\"title\"></slot>\n </div>\n `}\n ${this.slotNotEmpty('body') && html`\n <div part=\"body-body\" class=\"cre8-c-select-tile__body_body\">\n <slot name=\"body\"></slot>\n </div>\n `}\n </div>\n <div part=\"footer\" class=\"cre8-c-select-tile__footer\">\n <slot name=\"footer\"></slot>\n </div>\n <div class=\"${checkboxClassNames}\">\n ${this.renderCheckboxIcon()}\n <div class=\"cre8-c-select-tile__inner-circle\">\n <cre8-icon svg=\"${svgCheck}\" class=\"cre8-c-select-tile__icon\"></cre8-icon>\n </div>\n </div>\n </label>`;\n }\n}\n\nif (customElements.get('cre8-select-tile') === undefined) {\n customElements.define('cre8-select-tile', Cre8SelectTile);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-select-tile': Cre8SelectTile;\n }\n}\n\nexport default Cre8SelectTile;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n/*------------------------------------*\\\n #SELECT-TILE-LIST\n\\*------------------------------------*/\n\n:host {\n display: block;\n}\n\n/** \n * 1) Fieldset used for checkbox items\n */\n.cre8-c-select-tile-list {\n border: var(--cre8-border-width-none);\n padding: var(--cre8-spacing-0);\n margin: var(--cre8-spacing-0);\n}\n\n/** \n * Checkbox field legend\n */\n.cre8-c-select-tile-list__legend {\n @include cre8-typography-label-default;\n margin-bottom: size(1);\n}\n\n.cre8-c-select-tile-list__list {\n gap: size(3);\n display: grid; \n\n grid-template-columns: repeat(auto-fit, var(--cre8-select-tile-list-item-width, size(26)));\n\n .cre8-c-select-tile-list__rows & {\n grid-template-columns: unset;\n }\n}\n\n`;\nexport default styles;\n","import { html, } from 'lit';\nimport { ifDefined } from 'lit-html/directives/if-defined.js';\nimport { property } from 'lit/decorators.js';\nimport { nanoid } from 'nanoid';\nimport { Cre8Element } from '../cre8-element';\nimport '../field-note/field-note';\nimport styles from './select-tile-list.styles.js';\n\n/**\n * Select Tile List is a container design to hold multiple Select Tile Components.\n *\n * @slot \"\" - The default slot norminally contains multiple `<select-tile />` Components.\n * @cssprop \"--cre8-select-tile-list-item-width\" - Width of each child. Not used for horizontal.\n */\nexport class Cre8SelectTileList extends Cre8Element {\n static styles = [styles];\n\n /**\n * Whether to show the tiles side by side (columns) or stacked vertically (rows).\n */\n @property({ reflect: true })\n variant: 'columns' | 'rows' = 'columns';\n\n /**\n * Select Tile container label\n */\n @property({ reflect: true })\n label?: string;\n\n /**\n * Select Tile container fieldnote\n */\n @property({ reflect: true })\n fieldNote?: string;\n\n /**\n * Select Tile container fieldnote aria describe by\n */\n @property()\n ariaDescribedBy?: string;\n\n /**\n * Select Tile container fieldnote icon name\n */\n @property({ reflect: true })\n fieldNoteIconName?: string;\n\n /**\n * Select Tile container fieldnote knockout\n */\n @property({ type: Boolean, reflect: true })\n fieldNoteKnockout?: boolean;\n\n /**\n * Select Tile container fieldnote isSuccess\n */\n @property({ type: Boolean, reflect: true })\n fieldNoteIsSuccess?: boolean;\n\n /**\n * Select Tile container fieldnote isError\n */\n @property({ type: Boolean, reflect: true })\n fieldNoteIsError?: boolean;\n\n connectedCallback() {\n super.connectedCallback();\n if (this.fieldNote) {\n this.ariaDescribedBy = this.ariaDescribedBy || nanoid();\n }\n }\n\n render() {\n const componentClassNames = this.componentClassNames('cre8-c-select-tile-list', {\n 'cre8-c-select-tile-list__rows': this.variant === 'rows',\n });\n\n return html`\n <fieldset class=\"${componentClassNames}\">\n <legend\n class=\"cre8-c-select-tile-list__legend\"\n aria-describedby=\"${ifDefined(this.ariaDescribedBy)}\"\n >\n ${this.label}\n </legend>\n <div class=\"cre8-c-select-tile-list__body\">\n <div class=\"cre8-c-select-tile-list__list\" role=\"list\">\n <slot></slot>\n </div>\n </div>\n ${this.fieldNote\n ? html`<cre8-field-note\n ?inverted=${this.fieldNoteKnockout}\n id=${ifDefined(this.ariaDescribedBy)}\n iconName=${ifDefined(this.fieldNoteIconName)}\n ?isSuccess=${this.fieldNoteIsSuccess}\n ?isError=${this.fieldNoteIsError}\n >\n ${this.fieldNote}\n </cre8-field-note>` : ''}\n </fieldset>\n `;\n }\n}\n\nif (customElements.get('cre8-select-tile-list') === undefined) {\n customElements.define('cre8-select-tile-list', Cre8SelectTileList);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-select-tile-list': Cre8SelectTileList;\n }\n}\n\nexport default Cre8SelectTileList;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n:host {\n display: block;\n}\n\n/**\n * Skeleton Loader\n * The hard coded value for color here is intentional and is uniform across all brands\n */\n.cre8-c-skeleton-loader {\n width: 100%;\n height: auto;\n border-radius: var(--cre8-border-radius-small);\n aspect-ratio: 16 / 3;\n background: linear-gradient(-90deg, #f6f6f6 0%, #ebebeb 50%, #f6f6f6 100%);\n background-size: 400% 400%;\n animation: pulse 1.25s linear infinite; \n}\n\n/**\n * Skeleton Loader - Rectangle\n */\n.cre8-c-skeleton-loader--rectangle {\n aspect-ratio: 16 / 6;\n}\n\n/**\n * Skeleton Loader - Square\n */\n.cre8-c-skeleton-loader--square {\n aspect-ratio: 1 / 1;\n}\n\n/**\n * Skeleton Loader - Circle\n */\n.cre8-c-skeleton-loader--circle {\n aspect-ratio: 1 / 1;\n border-radius: 50%;\n}\n\n/** \n * Pulsing animation for loading look\n */\n@keyframes pulse {\n 0% {\n background-position: 0% 0%;\n }\n\n 100% {\n background-position: -135% 0%;\n }\n}\n`;\nexport default styles;\n","import { html, } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './skeleton-loader.styles.js';\n\n/**\n * Skeleton Loader allows for the ability to create placeholder UI loading states.\n * Developers are encouraged to pass into the Skeleton Loader their own parameters\n * to create simple (or complex) loading screens.\n *\n * ## How to Use\n * Skeleton states are simplified versions of components used on an initial page load\n * to indicate that the information on the page has not fully loaded yet.\n * They only appear for only a few seconds, disappearing once components and content populate the page.\n * These loaders use motion to convey that the page is not stuck and that data is still being loaded.\n * This can help to reduce user uncertainty. Skeleton objects should generally be visualized\n * by simple primitives which mimic the original content in a recognizable way.\n * It is recommended to use a more elaborate form if that is needed to make the component recognizable.\n *\n * Never represent toast notifications, overflow menus, dropdown items, modals, and loaders with skeleton states.\n * Elements inside a modal may have a skeleton state, but the modal itself should not.\n *\n * **IMPORTANT!** This is not a loading element and will provide no value to a screen reader user,\n * this is a decorative element only!\n */\n\nexport class Cre8SkeletonLoader extends Cre8Element {\n static styles = [styles];\n\n/**\n * Style variant\n * - **rectangle** renders a featureless rectangle as a placeholder for loading elements\n * - **square** renders a featureless square as a placeholder for loading elements\n * - **circle** renders a featureless circle as a placeholder for loading elements\n * @type {\"rectangle\" | \"square\" | \"circle\"}\n * @attr {string}\n */\n@property()\n variant?: 'rectangle' | 'square' | 'circle' = 'rectangle';\n\n/**\n * Height inline style\n * 1. Used to set a height on the skeleton if specific size is needed\n * @attr {string}\n */\n@property()\n height?: string;\n\n/**\n * Width inline style\n * 1. Used to set a width on the skeleton if specific size is needed\n * @attr {string}\n */\n@property()\n width?: string;\n\nrender() {\n const componentClassNames = this.componentClassNames('cre8-c-skeleton-loader', {\n 'cre8-c-skeleton-loader--rectangle': this.variant === 'rectangle',\n 'cre8-c-skeleton-loader--square': this.variant === 'square',\n 'cre8-c-skeleton-loader--circle': this.variant === 'circle',\n });\n\n return html`\n <div\n class=\"${componentClassNames}\"\n style=\"height: ${this.height ?? 'auto'}; width: ${this.width ?? 'auto'}\"\n ></div>\n `;\n}\n}\n\nif (customElements.get('cre8-skeleton-loader') === undefined) {\n customElements.define('cre8-skeleton-loader', Cre8SkeletonLoader);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-skeleton-loader': Cre8SkeletonLoader;\n }\n}\n\nexport default Cre8SkeletonLoader;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n// #split-button\n\n/**\n * 1)\n */\n.cre8-c-split-button {\n width: fit-content;\n display: block;\n}\n\n.cre8-c-split-button__button-container {\n display: flex;\n max-width: fit-content;\n}\n`;\nexport default styles;\n","import { html, } from 'lit';\nimport { property, state } from 'lit/decorators.js';\nimport { Cre8Element } from '../cre8-element';\nimport '../button/button';\nimport styles from './split-button.styles.js';\n\n/**\n * @slot - The component content , this will consist of the dropdown when the user clicks the caret\n */\nexport class Cre8SplitButton extends Cre8Element {\n static styles = [styles];\n\n @state()\n dropdownOpen = false;\n\n @property({ type: Boolean, reflect: true })\n disabled?: boolean;\n\n /**\n * Size variant\n * <cre8-text-passage size=\"sm\">\n * <ul>\n * <li>**sm** shrinks the button typography and overall size</li>\n * <li>**lg** increases the button typography size and overall size</li>\n * </ul>\n * </cre8-text-passage>\n */\n @property()\n size?: 'sm' | 'lg';\n\n /**\n * Display text on the button\n */\n @property()\n buttonText: string;\n\n render() {\n const componentClassNames = this.componentClassNames('cre8-c-split-button', {});\n\n return html`\n <div class=\"${componentClassNames}\">\n <div class=\"cre8-c-split-button__button-container\">\n <cre8-button\n class=\"cre8-c-split-button__text-button\"\n variant=\"secondary\"\n splitButtonType=\"text\"\n ?disabled=${this.disabled}\n text=\"${this.buttonText}\"\n size=\"${this.size}\"\n @click=\"${this._textClick}\"\n >\n </cre8-button>\n <cre8-button\n class=\"cre8-c-split-button__arrow-button\"\n variant=\"icon-only secondary\"\n splitButtonType=\"caret\"\n iconName=\"${this.dropdownOpen ? 'delta-down' : 'delta-up'}\"\n ?disabled=${this.disabled}\n hideText=\"true\"\n size=\"${this.size}\"\n @click=\"${this._dropdownClick}\"\n >\n </cre8-button>\n </div>\n ${this.dropdownOpen ? html`<slot></slot>` : ''}\n </div>\n `;\n }\n\n private _textClick(e: MouseEvent) {\n this.dispatchEvent(new Event('text-click', e));\n }\n\n private _dropdownClick(e: MouseEvent) {\n this.dropdownOpen = !this.dropdownOpen;\n this.dispatchEvent(new Event('dropdown-click', e));\n }\n}\n\nif (customElements.get('cre8-split-button') === undefined) {\n customElements.define('cre8-split-button', Cre8SplitButton);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-split-button': Cre8SplitButton;\n }\n}\n\nexport default Cre8SplitButton;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n/**\n * 1) Menu inserted into the dropdown/megamenu of the navigation\n */\n.cre8-c-submenu {\n list-style: none;\n padding: 0;\n margin: 0;\n}\n`;\nexport default styles;\n","import { html, } from 'lit';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './submenu.styles.js';\n\n/**\n * @slot - The component content\n */\n\nexport class Cre8Submenu extends Cre8Element {\n static styles = [styles];\n\n render() {\n const componentClassNames = this.componentClassNames('cre8-c-submenu', {});\n\n return html`\n <ul role=\"list\" class=\"${componentClassNames}\">\n <slot></slot>\n </ul>\n `;\n }\n}\n\nif (customElements.get('cre8-submenu') === undefined) {\n customElements.define('cre8-submenu', Cre8Submenu);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-submenu': Cre8Submenu;\n }\n}\n\nexport default Cre8Submenu;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n/**\n * 1) Individual item with a link/button within submenu\n */\n.cre8-c-submenu-item__link {\n color: var(--cre8-color-header-submenu-content-default);\n background: var(--cre8-color-header-submenu-bg-default);\n text-decoration: none;\n\n &:hover,\n &:focus {\n color: var(--cre8-color-header-submenu-content-hover);\n background: var(--cre8-color-header-submenu-bg-hover);\n }\n\n &:active {\n color: var(--cre8-color-header-submenu-content-pressed);\n background: var(--cre8-color-header-submenu-bg-pressed);\n }\n}\n`;\nexport default styles;\n","import { html, } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './submenu-item.styles.js';\n\n/**\n * @slot - The component content\n */\nexport class Cre8SubmenuItem extends Cre8Element {\n static styles = [styles];\n\n /**\n * The link URL\n */\n @property()\n href?: string;\n\n render() {\n const componentClassNames = this.componentClassNames('cre8-c-submenu-item', {});\n\n if (this.href) {\n return html`\n <li role=\"listitem\" class=\"${componentClassNames}\">\n <a href=${this.href} class=\"cre8-c-submenu-item__link\">\n <slot></slot>\n </a>\n </li>\n `;\n }\n return html`<li role=\"listitem\" class=\"${componentClassNames}\">\n <button class=\"cre8-c-submenu-item__link\">\n <slot></slot>\n </button>\n </li>`;\n }\n}\n\nif (customElements.get('cre8-submenu-item') === undefined) {\n customElements.define('cre8-submenu-item', Cre8SubmenuItem);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-submenu-item': Cre8SubmenuItem;\n }\n}\n\nexport default Cre8SubmenuItem;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n/*------------------------------------*\\\n #TAB\n\\*------------------------------------*/\n\n/**\n * Tab host\n */\n:host {\n display: contents;\n}\n\n/**\n * Tab\n * 1. Make border appear to be inside the tab\n */\n.cre8-c-tab {\n @include cre8-typography-label-default();\n position: relative;\n display: flex;\n margin: 0;\n flex-shrink: 0;\n padding: 0;\n align-items: center;\n justify-content: center;\n gap: size(1);\n color: var(--cre8-color-content-default);\n background-color: transparent;\n border: 0;\n border-block-end: var(--cre8-border-width-tab-selected) var(--cre8-border-style-default) var(--cre8-color-border-default);\n padding-block-start: size(1);\n padding-inline-end: size(3);\n padding-block-end: calc(size(1) - var(--cre8-border-width-tab-selected)); /* 1 */\n padding-inline-start: size(3);\n cursor: pointer;\n overflow: hidden;\n transition: border-color var(--cre8-anim-fade-quick) var(--cre8-anim-ease), background-color var(--cre8-anim-fade-quick) var(--cre8-anim-ease);\n\n /**\n * Tab hover state\n */\n &:hover {\n background-color: var(--cre8-color-bg-brand-hover);\n }\n\n /**\n * Tab focus visible state\n * 1. Make the focus appear inside the tab to prevent the bottom border from showing\n */\n &:focus-visible {\n @include focus;\n outline-offset: calc(#{var(--cre8-border-width-focus)} * -1); /* 1 */\n border-radius: var(--cre8-border-radius-small);\n border-block-end-color: transparent;\n }\n}\n\n/**\n * Tab active state\n */\n.cre8-c-tab.cre8-is-active:not(:focus-visible) {\n color: var(--cre8-color-content-brand-strong);\n background-color: transparent;\n border-block-end: var(--cre8-border-width-tab-selected) var(--cre8-border-style-default) var(--cre8-color-border-brand-strong);\n padding-block-end: calc(size(1) - var(--cre8-border-width-tab-selected)); /* 1 */\n}\n\n/**\n * Tab small\n */\n.cre8-c-tab.cre8-c-tab--small {\n @include cre8-typography-label-small();\n padding-block-start: size(0.5);\n padding-inline-end: size(2);\n padding-block-end: calc(size(0.5) - var(--cre8-border-width-tab-selected)); /* 1 */\n padding-inline-start: size(2);\n\n /**\n * Tab small active state\n */\n &.cre8-is-active:not(:focus-visible) {\n padding-block-end: calc(size(0.5) - var(--cre8-border-width-tab-selected)); /* 1 */\n }\n}`;\nexport default styles;\n","import { html, PropertyValues } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './tab.styles.js';\n\n/**\n * @slot - The component content\n */\n\nexport class Cre8Tab extends Cre8Element {\n static styles = [styles];\n\n /**\n * Tab sizes\n * - **default** displays the tab text with cre8-typography-label-default\n * - **sm** displays the tab text with cre8-typography-label-small and decrease padding\n *\n * _*This property is dynamically set_\n */\n @property()\n size?: 'sm';\n\n /**\n * If is true, tab has active state and cooresponding tab panel is visible.\n *\n * _*This property is dynamically set_\n */\n @property({ type: Boolean, reflect: true })\n isActive?: boolean;\n\n /**\n * Used to align the tab with the tab panel\n *\n * _*This property is dynamically set_\n */\n @property({ type: Number })\n index?: number;\n\n /**\n * Used to connect tab trigger and tab panel for accessibility\n *\n * _*This property is dynamically set_\n */\n @property()\n ariaLabelledBy?: string;\n\n /**\n * Query the tab element\n */\n @query('.cre8-c-tab')\n _Cre8Tab: HTMLButtonElement;\n\n /**\n * Updated\n * 1. Called when the element's DOM has been updated and rendered.\n * 2. If has ariaLabelledBy, then set the tab ID with the value.\n * 3. If the tab is active, set the tabindex to 0 and aria-selected to true.\n */\n override updated(changedProperties: PropertyValues) {\n /* 2 */\n if (changedProperties.has('ariaLabelledBy')) {\n this._Cre8Tab.setAttribute('id', this.ariaLabelledBy);\n }\n /* 3 */\n if (changedProperties.has('isActive')) {\n this._Cre8Tab.setAttribute('tabindex', this.isActive ? '0' : '-1');\n this._Cre8Tab.setAttribute('aria-selected', `${this.isActive}`);\n }\n }\n\n /**\n * Handle Tab Selected\n * 1. Fire the custom event on click of a tab.\n */\n\n private _handleTabSelected() {\n const customEvent = new CustomEvent('tabSelected', {\n detail: {\n index: this.index,\n },\n bubbles: true,\n composed: true,\n });\n this.dispatchEvent(customEvent);\n }\n\n render() {\n const componentClassNames = this.componentClassNames('cre8-c-tab', {\n 'cre8-is-active': this.isActive,\n 'cre8-c-tab--small': this.size === 'sm',\n });\n\n return html`\n <button\n role=\"tab\"\n tabindex=\"-1\"\n aria-selected=\"false\"\n type=\"button\"\n class=\"${componentClassNames}\"\n @click=${this._handleTabSelected}\n >\n <slot></slot>\n </button>\n `;\n }\n}\n\nif (customElements.get('cre8-tab') === undefined) {\n customElements.define('cre8-tab', Cre8Tab);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-tab': Cre8Tab;\n }\n}\n\nexport default Cre8Tab;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n/*------------------------------------*\\\n #TAB-PANEL\n\\*------------------------------------*/\n\n/** \n * Tab panel host\n */\n:host {\n display: contents;\n}\n\n/** \n * Tab panel\n */\n.cre8-c-tab-panel {\n visibility: hidden;\n display: none;\n\n /**\n * Tab panel focus visible state\n */\n &:focus-visible {\n @include focus;\n }\n}\n\n/** \n * Tab panel active\n */\n.cre8-c-tab-panel.cre8-is-active {\n visibility: visible;\n display: block;\n}\n`;\nexport default styles;\n","import { html, } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './tab-panel.styles.js';\n\n/**\n * @slot - The component content\n */\n\nexport class Cre8TabPanel extends Cre8Element {\n static styles = [styles];\n\n /**\n * This will remove focus on panel element\n */\n @property({ type: Boolean, reflect: true })\n skipFocusOnPanel?: boolean;\n\n /**\n * Indicates if the panel is active\n * <br/><br/> _*This property is dynamically set_\n */\n @property({ type: Boolean, reflect: true })\n isActive?: boolean;\n\n /**\n * Used to align the tab panel with the tab\n * <br/><br/> _*This property is dynamically set_\n */\n @property({ type: Number })\n index?: number;\n\n /**\n * Query the tab panel element\n */\n @query('.cre8-c-tab-panel')\n _Cre8TabPanel: HTMLElement;\n\n /**\n * First updated\n * 1. If skipFocusOnPanel is not true, then allow tabbing to the panel.\n */\n firstUpdated() {\n /* 1 */\n if (!this.skipFocusOnPanel) {\n this._Cre8TabPanel.setAttribute('tabindex', '0');\n }\n }\n\n render() {\n const componentClassNames = this.componentClassNames('cre8-c-tab-panel', {\n 'cre8-is-active': this.isActive,\n });\n\n return html`\n <div role=\"tabpanel\" class=\"${componentClassNames}\">\n <slot></slot>\n </div>\n `;\n }\n}\n\nif (customElements.get('cre8-tab-panel') === undefined) {\n customElements.define('cre8-tab-panel', Cre8TabPanel);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-tab-panel': Cre8TabPanel;\n }\n}\n\nexport default Cre8TabPanel;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n/*------------------------------------*\\\n#TABLE\n\\*------------------------------------*/\n\n:host {\n display: block;\n}\n\n/**\n * 1) Data table containing columns and rows\n */\n.cre8-c-table {\n width: 100%;\n border-collapse: collapse;\n border-spacing: 0;\n max-width: 100%;\n background-color: var(--cre8-color-bg-transparent);\n}\n\n/**\n * Custom properties passed to table-row for striped variant\n */\n.cre8-c-table--striped {\n --cre8-table-row-odd-background: var(--cre8-color-bg-subtle);\n --cre8-table-row-odd-hover-background: var(--cre8-color-bg-subtle);\n}\n\n/**\n * Custom properties passed to table-row for isHoverable property\n */\n.cre8-c-table--hoverable {\n --cre8-table-row-hover-background: var(--cre8-color-bg-default-hover);\n --cre8-table-row-odd-hover-background: var(--cre8-color-bg-default-hover);\n}\n\n/**\n * Custom properties passed to child Components for responsive behavior\n */\n.cre8-c-table--responsive {\n --cre8-table-cell-before-content: attr(data-header);\n --cre8-table-header-display: none;\n --cre8-table-row-display: block;\n --cre8-table-cell-display: block;\n --cre8-table-cell-border-bottom-width: 0;\n --cre8-table-row-border-bottom: var(--cre8-border-width-default) var(--cre8-border-style-default) var(--cre8-color-border-default);\n\n @media all and (min-width:$cre8-breakpoint-md) {\n --cre8-table-cell-border-bottom-width: var(--cre8-border-width-default);\n }\n}\n`;\nexport default styles;\n","import { html, } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './table.styles.js';\n\n/**\n * @slot - The component content\n */\n\nexport class Cre8Table extends Cre8Element {\n static styles = [styles];\n\n /**\n * Specifies the caption/title of the table, visible to all users.\n * Increases accessibility of table.\n */\n @property()\n caption?: string;\n\n /**\n * Behavior variants\n * <cre8-text-passage size=\"sm\">\n * <ul>\n * <li>**responsive** stacks column headers with respective table cells on small screens</li>\n * </ul>\n * </cre8-text-passage>\n */\n @property()\n behavior?: 'responsive';\n\n /**\n * Hoverable rows variant\n * 1) Allows the table rows to be styled on hover\n */\n @property({ type: Boolean, reflect: true })\n isHoverable?: boolean;\n\n /**\n * Style variants\n * <cre8-text-passage size=\"sm\">\n * <ul>\n * <li>**striped** add zebra-striping to table rows within the `<tbody>`</li>\n * </ul>\n * </cre8-text-passage>\n */\n @property()\n variant?: 'striped';\n\n render() {\n const componentClassNames = this.componentClassNames('cre8-c-table', {\n 'cre8-c-table--hoverable': this.isHoverable,\n 'cre8-c-table--striped': this.variant === 'striped',\n 'cre8-c-table--responsive': this.behavior === 'responsive',\n });\n\n return html`\n <table role=\"table\" class=\"${componentClassNames}\">\n ${this.caption\n ? html`<caption class=\"cre8-c-table__caption\">\n ${this.caption}\n </caption>`\n : ''}\n ${html`<slot></slot>`}\n </table>\n `;\n }\n}\n\nif (customElements.get('cre8-table') === undefined) {\n customElements.define('cre8-table', Cre8Table);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-table': Cre8Table;\n }\n}\n\nexport default Cre8Table;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n/*------------------------------------*\\\n#TABLE BODY\n\\*------------------------------------*/\n\n/**\n* Set the host to display the contents within the table wrapper\n*/\n:host {\n display: contents;\n}\n`;\nexport default styles;\n","import { html, } from 'lit';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './table-body.styles.js';\n\n/**\n * @slot - The component content\n */\n\nexport class Cre8TableBody extends Cre8Element {\n static styles = [styles];\n\n render() {\n const componentClassNames = this.componentClassNames('cre8-c-table__body', {});\n\n return html`\n <tbody role=\"rowgroup\" class=\"${componentClassNames}\">\n ${html`<slot></slot>`}\n </tbody>\n `;\n }\n}\n\nif (customElements.get('cre8-table-body') === undefined) {\n customElements.define('cre8-table-body', Cre8TableBody);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-table-body': Cre8TableBody;\n }\n}\n\nexport default Cre8TableBody;\n","import { css } from 'lit';\nconst styles = css`\n@import '../../design-tokens/core/scss/theming/component';\n\n/*------------------------------------*\\\n#TABLE CELL\n\\*------------------------------------*/\n\n/**\n* Set the host to display the contents within the table row wrapper\n*/\n:host {\n display: contents;\n}\n\n.cre8-c-table__cell {\n display: var(--cre8-table-row-display, table-cell);\n border-bottom-width: var(--cre8-table-cell-border-bottom-width, var(--cre8-border-width-default));\n border-bottom-style: var(--cre8-border-style-default);\n border-bottom-color: var(--cre8-table-cell-border-bottom-color, var(--cre8-color-border-default));\n padding: var(--cre8-spacing-8);\n text-align: left;\n\n &:before {\n @include cre8-typography-label-default;\n display: block;\n content: var(--cre8-table-cell-before-content, none);\n\n @media all and (min-width:$cre8-breakpoint-md) {\n content: none;\n }\n }\n\n @media all and (min-width:$cre8-breakpoint-md) {\n display: table-cell;\n }\n}\n\n.cre8-c-table__cell--bare {\n border-bottom-color: transparent;\n}\n`;\nexport default styles;\n","import { html, } from 'lit';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { property } from 'lit/decorators.js';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './table-cell.styles.js';\n\n/**\n * @slot - The component content\n */\n\nexport class Cre8TableCell extends Cre8Element {\n static styles = [styles];\n\n /**\n * Colspan attribute on td\n */\n @property({ type: Number })\n colspan?: number;\n\n /**\n * Style variants\n * <cre8-text-passage size=\"sm\">\n * <ul>\n * <li>**bare** renders a table cell without a border</li>\n * </ul>\n * </cre8-text-passage>\n */\n @property()\n variant?: 'bare';\n\n /**\n * Column header text for cell to display when table is using responsive variant\n */\n @property()\n dataHeader?: string;\n\n render() {\n const componentClassNames = this.componentClassNames('cre8-c-table__cell', {\n 'cre8-c-table__cell--bare': this.variant === 'bare',\n });\n\n return html`\n <td\n data-header=\"${this.dataHeader}\"\n role=\"cell\"\n colspan=${ifDefined(this.colspan)}\n class=\"${componentClassNames}\"\n >\n ${html`<slot></slot>`}\n </td>\n `;\n }\n}\n\nif (customElements.get('cre8-table-cell') === undefined) {\n customElements.define('cre8-table-cell', Cre8TableCell);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-table-cell': Cre8TableCell;\n }\n}\n\nexport default Cre8TableCell;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n/*------------------------------------*\\\n#TABLE HEADER\n\\*------------------------------------*/\n\n/**\n* Set the host to display the contents within the table wrapper\n*/\n:host {\n display: contents;\n}\n\n/**\n * Table header stlyes\n * 1) Responsive table header behavior\n * 2) Override row behavior and variants\n */\n.cre8-c-table__header {\n display: var(--cre8-table-header-display, table-header-group); /* 1 */\n text-align: left;\n --cre8-table-row-odd-background: none; /* 2 */\n --cre8-table-row-odd-hover-background: none; /* 2 */\n\n /**\n * Override responsive setting\n */\n @media all and (min-width:$cre8-breakpoint-md) {\n display: table-header-group;\n }\n}\n`;\nexport default styles;\n","import { html, } from 'lit';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './table-header.styles.js';\n\n/**\n * @slot - The component content\n */\n\nexport class Cre8TableHeader extends Cre8Element {\n static styles = [styles];\n\n render() {\n const componentClassNames = this.componentClassNames('cre8-c-table__header', {});\n\n return html`\n <thead role=\"rowgroup\" class=\"${componentClassNames}\">\n ${html`<slot></slot>`}\n </thead>\n `;\n }\n}\n\nif (customElements.get('cre8-table-header') === undefined) {\n customElements.define('cre8-table-header', Cre8TableHeader);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-table-header': Cre8TableHeader;\n }\n}\n\nexport default Cre8TableHeader;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n/*------------------------------------*\\\n#TABLE HEADER CELL\n\\*------------------------------------*/\n\n/**\n* Set the host to display the contents within the table header > table row wrapper\n*/\n:host {\n display: contents;\n}\n\n.cre8-c-table__header-cell {\n @include cre8-typography-label-small;\n\n border-bottom: var(--cre8-border-width-default) var(--cre8-border-style-default) var(--cre8-color-border-strong);\n padding: var(--cre8-spacing-8);\n text-align: left;\n}`;\nexport default styles;\n","import { html, } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './table-header-cell.styles.js';\n\n/**\n * @slot - The component content\n */\n\nexport class Cre8TableHeaderCell extends Cre8Element {\n static styles = [styles];\n\n /**\n * Colspan attribute on th\n */\n @property()\n public colspan?: number;\n\n /**\n * Adds inline width style to th\n * Sets width of entire column\n */\n @property()\n public width?: string;\n\n render() {\n const componentClassNames = this.componentClassNames('cre8-c-table__header-cell', {});\n\n return html`\n <th\n role=\"columnheader\"\n colspan=${ifDefined(this.colspan)}\n class=\"${componentClassNames}\"\n style=\"width: ${ifDefined(this.width)}\"\n >\n ${html`<slot></slot>`}\n </th>\n `;\n }\n}\n\nif (customElements.get('cre8-table-header-cell') === undefined) {\n customElements.define('cre8-table-header-cell', Cre8TableHeaderCell);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-table-header-cell': Cre8TableHeaderCell;\n }\n}\n\nexport default Cre8TableHeaderCell;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n/*------------------------------------*\\\n#TABLE OBJECT\n\\*------------------------------------*/\n\n:host {\n display: block;\n}\n\n.cre8-c-table-object__header {\n padding-top: var(--cre8-spacing-8);\n padding-bottom: var(--cre8-spacing-8);\n}\n\n.cre8-c-table-object__footer {\n padding-top: var(--cre8-spacing-8);\n padding-bottom: var(--cre8-spacing-8);\n}\n`;\nexport default styles;\n","import { html, } from 'lit';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './table-object.styles.js';\n\n/**\n * @slot - The component content\n */\n\nexport class Cre8TableObject extends Cre8Element {\n static styles = [styles];\n\n render() {\n const componentClassNames = this.componentClassNames('cre8-c-table-object', {});\n\n return html`\n <div class=\"${componentClassNames}\">\n ${this.slotNotEmpty('header') && html`\n <div class=\"cre8-c-table-object__header\" part=\"header\">\n <slot name=\"header\"></slot>\n </div>\n `}\n <div class=\"cre8-c-table-object__body\">\n <slot></slot>\n </div>\n ${this.slotNotEmpty('footer') && html`\n <div class=\"cre8-c-table-object__footer\">\n <slot name=\"footer\"></slot>\n </div>\n `}\n </div>\n `;\n }\n}\n\nif (customElements.get('cre8-table-object') === undefined) {\n customElements.define('cre8-table-object', Cre8TableObject);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-table-object': Cre8TableObject;\n }\n}\n\nexport default Cre8TableObject;\n","import { css } from 'lit';\nconst styles = css`\n@import '../../design-tokens/core/scss/theming/component';\n\n/*------------------------------------*\\\n#TABLE ROW\n\\*------------------------------------*/\n\n/**\n* Set the host to display the contents within the table header or table body wrapper\n*/\n:host {\n display: contents;\n}\n\n/**\n* 1) Row of the cre8 table\n*/\n.cre8-c-table__row {\n display: var(--cre8-table-row-display, table-row);\n border-bottom: var(--cre8-table-row-border-bottom);\n\n /**\n * Table row hover state\n * 1) Set the row hover background via custom property to allow\n * the table variant to control the color\n */\n &:hover {\n background: var(--cre8-table-row-hover-background);\n }\n\n /**\n * Table row within odd cre8-table-row wrappers\n * 1) Set the odd row and odd row hover background via\n * custom property to allow the table variant to control the color\n */\n :host(:nth-child(odd)) & {\n background: var(--cre8-table-row-odd-background, none);\n\n &:hover {\n background: var(--cre8-table-row-odd-hover-background, inherit);\n }\n }\n\n @media all and (min-width:$cre8-breakpoint-md) {\n border-bottom: inherit;\n display: table-row;\n }\n}\n\n/**\n * Bare variant to remove border\n */\n.cre8-c-table__row--bare {\n --cre8-table-cell-border-bottom-color: transparent;\n}\n\n/**\n* Slotted table row in expanded content following expandable table row\n* 1) Don't show the collapsed table row by default\n*/\n.cre8-c-table__row--expandable + ::slotted(cre8-table-row) {\n display: none; /* 1 */\n}\n\n.cre8-c-table__row--expandable.cre8-is-expanded {\n --cre8-table-cell-border-bottom-color: transparent;\n}\n\n/**\n* Slotted table row in expanded content following expanded table row class\n* 1) Display contents to get the proper table-row display for the row\n*/\n.cre8-c-table__row--expandable.cre8-is-expanded + ::slotted(cre8-table-row) {\n display: contents; /* 1 */\n}\n\n/**\n* Button that expands the next table row\n*/\n.cre8-c-table__expand-button {\n background-color: var(--cre8-color-bg-transparent);\n border-width: var(--cre8-border-width-none);\n}\n\n/**\n* Text within the button that expands the next table row\n*/\n.cre8-c-table__expand-button-text {\n @include visuallyHidden;\n}\n\n/**\n* Icon within the button that expands the next table row\n*/\n.cre8-c-table__expand-button-icon {\n display: block;\n transition: transform 0.2s ease;\n\n /**\n * Icon within the button that expands the next table row when the table row is expanded\n * 1) Rotate the icon to show that it's open\n */\n .cre8-is-expanded & {\n transform: rotate(90deg); /* 1 */\n }\n}\n`;\nexport default styles;\n","import svgCaretUp from '../../icons/System/Regular/Caret_Up.svg?raw';\nimport { html, } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './table-row.styles.js';\nimport '../button/button';\nimport '../table-cell/table-cell';\n\n/**\n * @slot - The component content\n */\n\nexport class Cre8TableRow extends Cre8Element {\n static styles = [styles];\n\n toggleIsExpanded() {\n this.isExpanded = !this.isExpanded;\n if (this.classList.contains('cre8-is-expanded')) {\n this.classList.remove('cre8-is-expanded');\n } else {\n this.classList.add('cre8-is-expanded');\n }\n }\n\n /**\n * Visually show additional expandable content\n */\n @property({ type: Boolean, reflect: true })\n isExpanded?: boolean;\n\n /**\n * Indicates row has additional visually hidden related content\n */\n @property({ type: Boolean, reflect: true })\n isExpandable?: boolean;\n\n /**\n * Style variants\n * <cre8-text-passage size=\"sm\">\n * <ul>\n * <li>**bare** renders a table row without a border</li>\n * </ul>\n * </cre8-text-passage>\n */\n @property()\n variant?: 'bare';\n\n /**\n * Expanded button text\n */\n @property()\n expandedButtonText: string = 'Collapse Table Row';\n\n /**\n * Expand button text\n */\n @property()\n collapsedButtonText: string = 'Expand Table Row';\n\n render() {\n const componentClassNames = this.componentClassNames('cre8-c-table__row', {\n 'cre8-c-table__row--expandable': this.isExpandable,\n 'cre8-c-table__row--bare': this.variant === 'bare',\n 'cre8-is-expanded': this.isExpanded,\n });\n\n return html`\n <tr role=\"row\" class=\"${componentClassNames}\">\n ${this.isExpandable\n ? html`<cre8-table-cell>\n <button\n class=\"cre8-c-table__expand-button\" \n aria-expanded=${!!this.isExpanded}\n @click=${this.toggleIsExpanded}\n >\n <span class=\"cre8-c-table__expand-button-text\">\n ${this.isExpanded ? this.expandedButtonText : this.collapsedButtonText}\n </span>\n <cre8-icon svg='${svgCaretUp}' rotate=\"90\" class=\"cre8-c-table__expand-button-icon\"></cre8-icon>\n </button>\n </cre8-table-cell>`\n : ''}\n ${html`<slot></slot>`}\n </tr>\n ${this.isExpandable\n ? html` <slot class=\"cre8-c-table__expandable-content\" name=\"expandableContent\"><slot></slot></slot>`\n : ''}\n `;\n }\n}\n\nif (customElements.get('cre8-table-row') === undefined) {\n customElements.define('cre8-table-row', Cre8TableRow);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-table-row': Cre8TableRow;\n }\n}\n\nexport default Cre8TableRow;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n/*------------------------------------*\\\n #TABS\n\\*------------------------------------*/\n\n:host {\n display: block;\n}\n\n/**\n * Tabs header\n */\n.cre8-c-tabs__header {\n position: relative;\n display: flex;\n flex-direction: column;\n align-items: baseline;\n overflow: hidden;\n\n /**\n * Tabs inner where the beginning of the tabs list isn't fully in the viewport\n */\n .cre8-c-tabs:not(.cre8-is-start) & {\n /**\n * Left overflow gradient for the tabs list\n */\n &::before {\n content: '';\n display: block;\n position: absolute;\n pointer-events: none;\n background: linear-gradient(var(--rtlGradientToRight, 90deg), var(--cre8-color-bg-default), rgb(255 255 255 / 0.1%) 30%);\n height: 100%;\n inset-block-start: 0;\n inset-inline-start: 0;\n width: size(6);\n z-index: 1;\n }\n }\n\n /**\n * Tabs inner where the end of the tabs list isn't fully in the viewport\n */\n .cre8-c-tabs:not(.cre8-is-end) & {\n /**\n * Right overflow gradient for the tabs list\n */\n &::after {\n content: '';\n display: block !important;\n position: absolute;\n pointer-events: none;\n background: linear-gradient(var(--rtlGradientToRight, 90deg), rgb(255 255 255 / 0.1%) 30%, var(--cre8-color-bg-default));\n height: 100%;\n inset-block-start: 0;\n inset-inline-end: 0;\n width: size(6);\n z-index: 1;\n }\n }\n}\n\n/**\n * Tabs list\n * 1) The div that contains the cre8-tab's\n */\n.cre8-c-tabs__list {\n display: flex;\n overflow: auto;\n width: 100%;\n margin: 0;\n position: relative;\n padding: var(--cre8-border-width-focus);\n\n /**\n * Visually hides the scrollbar\n */\n scrollbar-width: none;\n -ms-overflow-style: none;\n &::-webkit-scrollbar {\n display: none;\n }\n}\n\n/**\n * Tabs body\n * 1) The div that contains the tab panel content\n */\n.cre8-c-tabs__body {\n padding-block-start: size(2);\n\n /**\n * Full Width Variant - border default bar across tabs\n */\n .cre8-c-tabs--full-width & {\n border-top: var(--cre8-border-width-tab-selected) var(--cre8-border-style-default) var(--cre8-color-border-default);\n // To match the border of the tabs to this full width line\n // Shift border up by the tab bottom border width + Width of the padding on the list of tabs\n margin-top: calc(var(--cre8-border-width-tab-selected) * -2);\n }\n}\n`;\nexport default styles;\n","import { html, } from 'lit';\nimport {\n property, query, queryAssignedElements, state,\n} from 'lit/decorators.js';\nimport { nanoid } from 'nanoid';\nimport { Cre8Element } from '../cre8-element';\nimport { Cre8TabPanel } from '../tab-panel/tab-panel';\nimport { Cre8Tab } from '../tab/tab';\nimport styles from './tabs.styles.js';\n\nlet tabId = 1;\n\n/**\n * Tabs are used to quickly navigate back and forth between views.\n * The Tab design and interaction varies depending on the requirements for your organization and project.\n * Standardizing on the best individual controls will improve usability and reduce development and QA time.\n *\n * Create a standard set of Tab controls:\n * Primary Tabs (for system navigation), Secondary Tabs (for sub navigation within a screen).\n *\n * ## Usability Guidelines\n * - The selected Tab should be visually differentiated from the other Tabs.\n * The deselected Tabs should still look enabled.\n * Dimming the other Tabs decreases the legibility of items that are actually active and clickable.\n * - There must be a minimum of 2 Tabs.\n * - Showing status in a Tab is non-standard (such as 0%, 10%).\n * - Tab labels and content should be parallel, with the exception of a Summary or Overview Tab\n * which can be a rollup of content across other Tabs.\n * - Keep the font size of the Tabs the same.\n * If the Tabs are a fixed width and one of the labels is too long,\n * don't resize the text to fit and consider wrapping text to a second line.\n * - If possible, don't truncate text because it makes it harder to understand what's in the Tab.\n * - Try not to use more than six Tabs to keep the UI uncluttered.\n * - Do not stack Tabs on top of each other, and do not nest Tabs within Tabs.\n * Find alternate ways of navigating page hierarchy.\n *\n * @slot default - Default, unnamed slot container for each `cre8-tab` button\n * @slot panel - Container for each `cre8-tab-panel` content item\n */\n\nexport class Cre8Tabs extends Cre8Element {\n static styles = [styles];\n\n /**\n * Tab sizes\n * - **default** displays the cre8-tab text with cre8-typography-label-default\n * - **sm** displays the cre8-tab text with cre8-typography-label-small\n * @type {\"sm\"}\n * @attr\n */\n @property()\n size?: 'sm';\n\n /**\n * Displays a set of tabs with a spanning the width of the element\n * @attr {boolean}\n */\n @property({ type: Boolean, reflect: true })\n fullWidth?: boolean;\n\n /**\n * Auto Increment id to sync tab and tab panel\n *\n * _*This property is dynamically set_\n */\n tabId: string;\n\n /**\n * Sets the initial active tab (e.g. 0 sets the first tab, 1 sets the second tab, etc.)\n * @attr {number}\n */\n @property({ type: Number })\n activeIndex?: number = 0;\n\n /**\n * The active tab\n *\n * _*This property is dynamically set_\n */\n @state()\n activeTab?: Cre8Tab;\n\n /**\n * If position from left is greater than 0, set isStart to false. Otherwise set isStart to true.\n *\n * _*This property is dynamically set_\n * @attr {boolean}\n */\n @state()\n isStart?: boolean = true;\n\n /**\n * If last child is fully in the viewport, set isEnd to true. Otherwise, set isEnd to false.\n *\n * _*This property is dynamically set_\n * @attr {boolean}\n */\n @state()\n isEnd?: boolean = false;\n\n /**\n * Query all the tab items\n */\n @queryAssignedElements()\n _Cre8TabItems: Array<Cre8Tab>;\n\n /**\n * Query all the tab panels\n */\n @queryAssignedElements({ slot: 'panel' })\n _Cre8TabPanels: Array<Cre8TabPanel>;\n\n /**\n * Query the tabs header element\n */\n @query('.cre8-c-tabs__header')\n _Cre8TabsHeader: HTMLElement;\n\n /**\n * Query the tabs header list element\n */\n @query('.cre8-c-tabs__list')\n _Cre8TabsHeaderList: HTMLElement;\n\n /**\n * Query the document direction value\n *\n * _*This property is dynamically set_\n */\n get isRTL() {\n return document.dir === 'rtl';\n }\n\n /**\n * Initialize Functions\n */\n constructor() {\n super();\n this.handleScroll = this.handleScroll.bind(this);\n this.handleResize = this.handleResize.bind(this);\n this.setIsStart = this.setIsStart.bind(this);\n this.setIsEnd = this.setIsEnd.bind(this);\n this.emitEvent = this.emitEvent.bind(this);\n\n /**\n * Set the tab id.\n */\n this.tabId = `cre8-tabpanel-${tabId}`;\n tabId += 1;\n }\n\n /**\n * Connected Callback Lifecycle\n * 1. Fires each time a custom element is appended into a document-connected element.\n */\n connectedCallback() {\n super.connectedCallback();\n window.addEventListener('resize', this.handleResize);\n }\n\n /**\n * Disconnected Callback Lifecycle\n * 1. Removes the event listeners to ensure that any memory allocated by your component\n * will be cleaned up when your component is destroyed or disconnected from the page.\n */\n disconnectedCallback() {\n super.disconnectedCallback();\n window.removeEventListener('resize', this.handleResize);\n }\n\n /**\n * First Updated Lifecycle Hook\n * 1. Sets the `aria-labelledby` prop for accessible tabs if user doesn't define the `ariaLabelledBy` prop.\n * 2. Sets the active tab if activeIndex is defined. Otherwise, set the first tab as active by default.\n * 3. Initialize isStart and isEnd.\n * 4. Set the varaint on the cre8-tab according to the cre8-tabs variant.\n */\n async firstUpdated() {\n /* 1 */\n this.setTabAttributes();\n await this.updateComplete;\n\n /* 2 */\n this.activeTab = this._Cre8TabItems[this.activeIndex] || this._Cre8TabItems[0];\n this.setActiveTab();\n\n /* 3 */\n this.setIsStart();\n this.setIsEnd();\n\n /* 4 */\n this.setTabVariant();\n }\n\n /**\n * Updated Lifecycle Hook\n * 1. remove selected state from previously selected tab\n * 2. Checks to see if the old `activeIndex` property has been updated.\n * If the new value doesn't equal the old value, activate the proper tab\n */\n async updated(changedProperties: Map<string, unknown>) {\n changedProperties.forEach(async (oldValue, propName) => {\n if (propName === 'activeIndex' && this.activeIndex !== oldValue) {\n await this.updateComplete;\n\n if (this.activeTab) {\n this.removePreviousActiveTab(); /* 1 */\n }\n\n this.activeTab = this._Cre8TabItems[this.activeIndex];\n this.setActiveTab(); /* 2 */\n }\n });\n }\n\n /**\n * Handle Resize\n * 1. On resize, if position from left is greater than 0, set isStart to false. Otherwise set isStart to true.\n * 2. On resize, If last child is fully in the viewport, set isEnd to true. Otherwise, set isEnd to false.\n * @fires resize\n */\n handleResize() {\n this.setIsStart(); /* 1 */\n this.setIsEnd(); /* 2 */\n }\n\n /**\n * Handle Scroll\n * 1. On scroll, if position from left is greater than 0, set isStart to false. Otherwise set isStart to true.\n * 2. On scroll, If last child is fully in the viewport, set isEnd to true. Otherwise, set isEnd to false.\n * @fires scroll\n */\n handleScroll() {\n this.setIsStart(); /* 1 */\n this.setIsEnd(); /* 2 */\n }\n\n /**\n * Set isStart State\n * 1. If position from left is greater than 0, set isStart to false. Otherwise set isStart to true.\n */\n setIsStart() {\n if (this.isRTL) {\n if (this._Cre8TabsHeaderList.scrollLeft > 0) {\n this.isStart = true;\n } else {\n this.isStart = false;\n }\n } else if (this._Cre8TabsHeaderList.scrollLeft > 0) {\n this.isStart = false;\n } else {\n this.isStart = true;\n }\n }\n\n /**\n * Set isEnd State\n * 1. If last child is fully in the viewport, set isEnd to true. Otherwise, set isEnd to false.\n */\n setIsEnd() {\n if (this.isInViewport() === true) {\n this.isEnd = true;\n } else {\n this.isEnd = false;\n }\n }\n\n /**\n * Check if last overflow list item is in the viewport\n * 1. Get children of the overflow list inner container and get bounding client rectangle of last child\n * 2. Return true if the left property is greater than or equal to 0 and if the right property is less\n * than or equal to the window inner width or document client width\n */\n isInViewport() {\n const lastChild = this._Cre8TabItems[this._Cre8TabItems.length - 1];\n const tabElement = lastChild.shadowRoot?.querySelector('.cre8-c-tab');\n if (!tabElement) {\n return false; // Return false if the tab element is not found\n }\n\n const rect = tabElement.getBoundingClientRect(); /* 1 */\n const windowWidth = window.innerWidth || document.documentElement.clientWidth;\n return rect.left >= 0 && rect.right <= windowWidth; /* 2 */\n }\n\n /**\n * Set Tab Variant\n * 1. Loop through all the cre8-tab Components and set the size to 'sm' if the parent has size 'sm'.\n */\n setTabVariant() {\n if (this.size === 'sm') {\n this._Cre8TabItems.forEach((tab: Cre8Tab) => {\n tab.size = 'sm';\n });\n }\n }\n\n /**\n * Set the attributes on tab and tab panel\n * 1. Sets the index value on the tab items.\n * 2. Sets the `aria-labelledby` on the tab items.\n * 3. Set the index and id on the tab-panel to match the tab.\n */\n setTabAttributes() {\n this._Cre8TabItems.forEach((tab, index) => {\n /* 1 */\n tab.index = index;\n\n /* 2 */\n const ariaLabelledBy = tab.ariaLabelledBy;\n const id = ariaLabelledBy || nanoid();\n tab.ariaLabelledBy = id;\n\n\n /* 3 */\n const tabPanel = this._Cre8TabPanels[index];\n tabPanel.index = index;\n });\n }\n\n /**\n * Set Active Tab\n * 1. Sets the active state for the selected tab.\n * 2. Sets the active state for the tab panel with the same index value as the selected tab.\n */\n setActiveTab() {\n /* 1 */\n this.activeTab.isActive = true;\n\n /* 2 */\n const activeTabPanel = this._Cre8TabPanels.find((tabPanel) => tabPanel.index === this.activeTab.index);\n if (activeTabPanel) {\n activeTabPanel.isActive = true;\n }\n }\n\n /**\n * Set Active Tab Focus\n */\n setActiveTabFocus() {\n this.activeTab.shadowRoot?.querySelector<HTMLElement>('.cre8-c-tab').focus();\n }\n\n /**\n * Handle Tab Selected\n * 1. Only continue if event target is a tab\n * 2. If tab is active, make the previous selected tab inactive.\n * 3. Set the clicked tab active.\n * 4. Emit the custom event.\n * @fires tabSelected\n */\n handleTabSelected(event: MouseEvent) {\n const { target } = event;\n\n /* 1 */\n if (this._Cre8TabItems.includes(target as Cre8Tab)) {\n /* 2 */\n if (this.activeTab) {\n this.removePreviousActiveTab();\n }\n\n /* 3 */\n this.activeTab = target as Cre8Tab;\n const activeIndex = this._Cre8TabItems.findIndex((tab) => tab === this.activeTab);\n this.activeIndex = activeIndex;\n this.setActiveTab();\n\n /* 4 */\n this.emitEvent();\n }\n }\n\n /**\n * Handle Keydown\n * 1. If the active tab is not focused then handle the keydown events.\n * 2. On keydown of the right arrow, make the next tab active.\n * 3. On keydown of the left arrow, make the previous tab active.\n * 4. On keydown of the home key, make the first tab active.\n * 5. On keydown of the end key, make the last tab active.\n * 6. On keydown of the escape key, remove the focus.\n * @fires keydown\n */\n handleKeydown(event: KeyboardEvent) {\n /* 1 */\n const { target } = event;\n const focused = document.activeElement as Cre8Tab;\n if (!focused.matches('cre8-tab')) {\n return;\n }\n switch (event.key) {\n /* 2 */\n case 'ArrowRight':\n event.preventDefault();\n this.setSelectedToNextTab(target as Cre8Tab);\n break;\n /* 3 */\n case 'ArrowLeft':\n event.preventDefault();\n this.setSelectedToPreviousTab(target as Cre8Tab);\n break;\n /* 4 */\n case 'Home':\n event.preventDefault();\n this.setSelectedToNextTab(this._Cre8TabItems[this._Cre8TabItems.length - 1]);\n break;\n /* 5 */\n case 'End':\n event.preventDefault();\n this.setSelectedToPreviousTab(this._Cre8TabItems[0]);\n break;\n /* 6 */\n case 'Escape':\n this.activeTab.blur();\n break;\n default:\n // no default\n }\n }\n\n /**\n * Set Selected To Previous Tab\n * 1. Get current selected Tab index then deactivate previously selected tab.\n * 2. If current activeIndex is in first position then move the tab focus to last tab.\n * 3. Set the active tab and focus.\n * 4. Emit custom event.\n * @fires tabChange\n */\n setSelectedToPreviousTab(currentTab: Cre8Tab) {\n /* 1 */\n const activeIndex = currentTab.index;\n this.removePreviousActiveTab();\n\n /* 2 */\n const tabListLength = this._Cre8TabItems.length - 1;\n if (activeIndex === 0) {\n this.activeIndex = tabListLength;\n this.activeTab = this._Cre8TabItems[tabListLength];\n } else {\n const previousIndex = activeIndex - 1;\n this.activeIndex = previousIndex;\n this.activeTab = this._Cre8TabItems[previousIndex];\n }\n\n /* 3 */\n this.setActiveTab();\n this.setActiveTabFocus();\n\n /* 4 */\n this.emitEvent();\n }\n\n /**\n * Set Selected To Next Tab\n * 1. Get current selected Tab index then deactivate previously selected tab.\n * 2. If current activeIndex is in last position then move the tab focus to first tab.\n * 3. Set the active tab and focus.\n * 4. Emit custom event.\n * @fires tabChange\n */\n setSelectedToNextTab(currentTab: Cre8Tab) {\n /* 1 */\n const activeIndex = currentTab.index;\n this.removePreviousActiveTab();\n\n /* 2 */\n const tabListLength = this._Cre8TabItems.length - 1;\n if (activeIndex === tabListLength) {\n this.activeIndex = 0;\n this.activeTab = this._Cre8TabItems[0];\n } else {\n const nextIndex = activeIndex + 1;\n this.activeIndex = nextIndex;\n this.activeTab = this._Cre8TabItems[nextIndex];\n }\n\n /* 3 */\n this.setActiveTab();\n this.setActiveTabFocus();\n\n /* 4 */\n this.emitEvent();\n }\n\n /**\n * Remove Active from Previous Tab\n * 1. Get current selected Tab index then deactivate previously selected tab\n * 2. If current activeIndex is in first position then move the tab focus to last tab\n */\n removePreviousActiveTab() {\n /* 1 */\n this.activeTab.isActive = false;\n\n /* 2 */\n const activeTabPanel = this._Cre8TabPanels.find((tabPanel) => tabPanel.index === this.activeTab.index);\n if (activeTabPanel) {\n activeTabPanel.isActive = false;\n }\n }\n\n /**\n * Emit custom event\n */\n emitEvent() {\n const customEvent = new CustomEvent('tabChange', {\n detail: {\n value: this.activeTab,\n activeTabIndex: this.activeIndex,\n },\n bubbles: true,\n composed: true,\n });\n this.dispatchEvent(customEvent);\n }\n\n render() {\n const componentClassNames = this.componentClassNames('cre8-c-tabs', {\n 'cre8-is-start': this.isStart === true,\n 'cre8-is-end': this.isEnd === true,\n 'cre8-c-tabs--full-width': this.fullWidth,\n });\n\n return html`\n <div class=\"${componentClassNames}\">\n <div class=\"cre8-c-tabs__header\">\n <div\n class=\"cre8-c-tabs__list\"\n role=\"tablist\"\n tabindex=0\n @scroll=${this.handleScroll}\n @keydown=${this.handleKeydown}\n @click=${this.handleTabSelected}\n >\n <slot></slot>\n </div>\n </div>\n <div class=\"cre8-c-tabs__body\">\n <slot name=\"panel\"></slot>\n </div>\n </div>\n `;\n }\n}\n\nif (customElements.get('cre8-tabs') === undefined) {\n customElements.define('cre8-tabs', Cre8Tabs);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-tabs': Cre8Tabs;\n }\n}\n\nexport default Cre8Tabs;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n/* ------------------------------------*\\\n #TAG\n\\*------------------------------------ */\n\n:host {\n display: inline-flex;\n}\n\n.cre8-c-tag {\n @include cre8-typography-label-small;\n display: flex;\n align-items: center;\n background-color: var(--cre8-color-bg-default);\n border: var(--cre8-border-width-default) var(--cre8-border-style-default) var(--cre8-color-border-strong);\n color: var(--cre8-color-content-default);\n cursor: pointer;\n gap: var(--cre8-spacing-8);\n padding: var(--cre8-spacing-4) var(--cre8-spacing-16);\n transition: all var(--cre8-anim-fade-quick) var(--cre8-anim-ease);\n white-space: nowrap;\n}\n\n.cre8-c-tag--square {\n border-radius: var(--cre8-border-radius-small);\n}\n\n.cre8-c-tag--round {\n border-radius: var(--cre8-border-radius-round);\n}\n\n.cre8-c-tag--neutral {\n\n &:hover,\n &:focus {\n background-color: var(--cre8-color-bg-default-hover); \n border: var(--cre8-border-width-default) var(--cre8-border-style-default) var(--cre8-color-border-strong);\n }\n}\n\n.cre8-c-tag--branded {\n background-color: var(--cre8-color-bg-brand);\n border: var(--cre8-border-width-default) var(--cre8-border-style-default) var(--cre8-color-border-transparent);\n\n &:hover,\n &:focus {\n background-color: var(--cre8-color-bg-brand-hover); \n }\n}\n\n.cre8-c-tag--neutral-hybrid {\n color: var(--cre8-color-content-brand);\n\n &:hover,\n &:focus {\n background-color: var(--cre8-color-bg-default-hover); \n }\n}\n\n.cre8-c-tag--neutral-selected,\n.cre8-c-tag--neutral-hybrid-selected {\n background-color: var(--cre8-color-bg-brand-strong);\n border: var(--cre8-border-width-default) var(--cre8-border-style-default) var(--cre8-color-border-transparent);\n color: var(--cre8-color-content-knockout);\n\n &:hover,\n &:focus {\n background-color: var(--cre8-color-bg-brand-strong-hover);\n }\n}\n\n.cre8-c-tag--branded-selected {\n background-color: var(--cre8-color-bg-brand-xstrong);\n border: var(--cre8-border-width-default) var(--cre8-border-style-default) var(--cre8-color-border-transparent);\n color: var(--cre8-color-content-knockout);\n\n &:hover,\n &:focus {\n background-color: var(--cre8-color-bg-brand-xstrong-hover);\n }\n}\n\n.cre8-c-tag:focus {\n outline: var(--cre8-border-width-focus) var(--cre8-border-style-default) var(--cre8-color-border-active-outline);\n outline-offset: var(--cre8-border-width-focus);\n}\n\n.cre8-c-tag.cre8-c-tag--disabled,\n.cre8-c-tag.cre8-c-tag--disabled:hover,\n.cre8-c-tag.cre8-c-tag--disabled:focus {\n background-color: var(--cre8-color-bg-disabled);\n border: var(--cre8-border-width-default) var(--cre8-border-style-default) var(--cre8-color-border-disabled);\n color: var(--cre8-color-content-disabled);\n cursor: not-allowed;\n outline: none;\n}\n\n.cre8-c-tag__input {\n @include cre8-typography-body-small;\n display: none;\n}\n\n.cre8-tag-text{\n cursor: pointer;\n}\n\n.cre8-c-tag--disabled > .cre8-tag-text {\n cursor: not-allowed;\n}\n\ncre8-icon {\n display: flex;\n align-items: center;\n}\n`;\nexport default styles;\n","import svgCheck from '/Users/tylersmbp/Projects/cre8-web-components/packages/cre8-wc/icons/System/Regular/Check.svg?raw';\nimport { html, } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { nanoid } from 'nanoid';\nimport { ifDefined } from 'lit-html/directives/if-defined.js';\nimport { Cre8FormElement } from '../cre8-form-element';\nimport '../icon/icon';\nimport styles from './tag.styles.js';\n\n/**\n * The tag component allows you to make selections, filter content, or trigger actions. While buttons are\n * expected to appear consistently and with familiar calls to actions, tags should appear dynamically\n * as a group of multiple interactions elements. It is a flexible\n * component that comes in the following types:\n * - **radio** Clicking a Radio Button causes it to change color. These tags only allow\n * one option to be chosen and can be used in place of radio button when they need to be listed\n * horizontally\n *\n * - **checkbox** It allows for selecting options, It can be toggled on and off.\n */\n\nexport class Cre8Tag extends Cre8FormElement {\n static styles = [styles];\n\n @property()\n text: string;\n\n /**\n * Type of tag\n * **checkbox** renders a checkbox tag\n ***radio** renders a radio tag\n */\n\n @property()\n type: 'checkbox'| 'radio';\n\n /**\n * Color variant\n * **neutral** renders the default, unselected tag\n * **branded** renders a selected tag\n * **neutral-hybrid** renders a tag when mouse is hovering tag\n */\n\n @property()\n variant: 'neutral' | 'branded' | 'neutral-hybrid' = 'neutral';\n\n /**\n * shape of the tag, supports square and round, and default not mentioned its a square\n */\n @property()\n shape: 'square' | 'round' = 'square';\n\n /*\n * Disabled attribute\n * renders a greyed out tag that the user cannot interact with\n */\n @property({ type: Boolean })\n isDisabled?: boolean;\n\n /*\n * Selected attribute\n * renders a selected tag\n */\n @property({ type: Boolean })\n isSelected?: boolean;\n\n /**\n * Get the radio field item input\n */\n @query('input')\n field!: HTMLInputElement;\n\n /**\n * The fieldId attribute is assigned to the HTML input element of the radio button and the for attribute of the\n * corresponding label.\n */\n @property()\n fieldId?: string;\n\n /**\n * Initial checked for initial checked state\n */\n private initialSelected?: boolean;\n\n connectedCallback() {\n super.connectedCallback();\n this.fieldId = this.fieldId || nanoid();\n window.addEventListener('click', this._clickCheckHandler, false);\n window.addEventListener('click', this._clickRadioHandler, false);\n window.addEventListener('keydown', this._handleCheckKeyDown, false);\n window.addEventListener('keydown', this.handleRadioKeyDown, false);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n window.removeEventListener('click', this._clickCheckHandler, false);\n window.removeEventListener('click', this._clickRadioHandler, false);\n window.removeEventListener('keydown', this._handleCheckKeyDown, false);\n window.removeEventListener('keydown', this.handleRadioKeyDown, false);\n }\n\n renderCheckboxIcon() {\n if (this.type === 'checkbox' && this.isSelected) {\n return html`\n <cre8-icon svg=\"${svgCheck}\" class=\"cre8-tag-icon\" aria-hidden=\"true\"></cre8-icon>\n `;\n }\n return null;\n }\n\n private _clickCheckHandler() {\n if (!this.isDisabled) {\n if (this.type === 'checkbox') {\n this.isSelected = !this.isSelected;\n }\n this.dispatchEvent(new CustomEvent('change', { detail: { isSelected: this.isSelected, type: this.type } }));\n }\n }\n\n private _handleCheckKeyDown(event: KeyboardEvent) {\n if (event.key === ' ' || event.key === 'Enter') {\n event.preventDefault();\n this._clickCheckHandler();\n }\n }\n\n/**\n* Reset the radio tag field\n*/\n public resetField() {\n this.internals.setFormValue(null);\n }\n\n/**\n* Reset the radio field tags tab indeces\n*/\n resetTabIndeces(tags: Cre8Tag[]) {\n tags.forEach((element: HTMLElement) => {\n element.shadowRoot.querySelector('.cre8-c-tag').setAttribute('tabindex', '0');\n });\n }\n\n/**\n* Remove checked\n* 1) Remove checked property from all tags and set tabindex to -1\n* 2) Reset the form field to not checked\n*/\n private _removeChecked() {\n if (this.parentNode) {\n /* 1 */\n const tags = this.parentNode.querySelectorAll('cre8-tag');\n tags.forEach((element: Cre8Tag) => {\n element.isSelected = false;\n element.shadowRoot.querySelector('.cre8-c-tag').setAttribute('tabindex', '-1');\n element.resetField();\n });\n }\n }\n\n/**\n* Reset form callback\n* 1) Remove the checked state from all radio tags\n* 2) Set the checked state to the initial checked state\n* 3) Set the radio field input checked attribute to the initial checked state\n*/\n formResetCallback(): void {\n this._removeChecked();\n this.isSelected = this.initialSelected;\n this.field.checked = this.initialSelected;\n }\n\n private _clickRadioHandler() {\n this._removeChecked();\n this.isSelected = !this.isSelected;\n const tagInput = this.shadowRoot?.querySelector<HTMLInputElement>('.cre8-c-tag');\n if (tagInput) {\n tagInput.setAttribute('tabindex', '0');\n }\n if (this.isSelected) {\n this.internals.setFormValue(this.value || 'on');\n } else {\n this.internals.setFormValue(null);\n }\n }\n\n private _updateSibling(event: KeyboardEvent, sibling: Element, element: HTMLElement) {\n event.preventDefault();\n this._removeChecked();\n element.focus();\n element.setAttribute('tabindex', '0');\n sibling.setAttribute('isSelected', '');\n }\n\n private _checkPreviousTag(event: KeyboardEvent) {\n let previous = this.previousElementSibling;\n while (previous) {\n const previousElement = previous?.shadowRoot?.querySelector<HTMLInputElement>(\n '.cre8-c-tag:not([aria-disabled=\"true\"])'\n );\n\n if (previousElement) {\n this._updateSibling(event, previous, previousElement);\n return;\n }\n\n previous = previous.previousElementSibling;\n }\n }\n\n private _checkNextTag(event: KeyboardEvent) {\n let next = this.nextElementSibling;\n while (next) {\n const nextElement = next?.shadowRoot?.querySelector<HTMLInputElement>(\n '.cre8-c-tag:not([aria-disabled=\"true\"])'\n );\n\n if (nextElement) {\n this._updateSibling(event, next, nextElement);\n return;\n }\n\n next = next.nextElementSibling;\n }\n }\n\n handleRadioKeyDown(event: KeyboardEvent) {\n if (event.code === 'ArrowLeft' || event.code === 'ArrowUp') {\n this._checkPreviousTag(event);\n } else if (event.code === 'ArrowRight' || event.code === 'ArrowDown') {\n this._checkNextTag(event);\n } else if (event.code === 'Tab' && !this.isSelected) {\n const tags = this.parentNode.querySelectorAll('cre8-tag');\n tags.forEach((element: HTMLElement) => {\n element.shadowRoot.querySelector('.cre8-c-tag').setAttribute('tabindex', '-1');\n });\n\n // After making tabbing away from the fieldset,\n // reset the items to be tabbable again so the user can come back to the fieldset\n setTimeout(this.resetTabIndeces, 100, tags);\n }\n }\n\n /**\n * access role when tag embedded in tag-list\n */\n private _getRole(): 'listitem' | undefined {\n const tagContainer = this.closest('cre8-tag-list');\n if (tagContainer) {\n return 'listitem';\n }\n return undefined;\n }\n\n render() {\n const componentClassNames = this.componentClassNames('cre8-c-tag', {\n [`cre8-c-tag--${this.type}`]: true,\n [`cre8-c-tag--${this.shape}`]: true,\n [`cre8-c-tag--${this.variant}`]: true,\n [`cre8-c-tag--${this.variant}-selected`]: this.isSelected,\n 'cre8-c-tag--disabled': this.isDisabled,\n });\n\n const isSelected = this.isSelected === true || this.initialSelected === true;\n\n return html` \n <div role=\"${ifDefined(this._getRole())}\">\n <div role=\"${ifDefined(this.type)}\" aria-checked=\"${isSelected}\" class=\"${componentClassNames}\"\n aria-disabled=\"${ifDefined(this.isDisabled)}\"\n @click=\"${this.type === 'radio' ? this._clickRadioHandler : this._clickCheckHandler}\"\n @keydown=\"${this.type === 'radio' ? this.handleRadioKeyDown : this._handleCheckKeyDown}\"\n tabindex=\"0\"\n >\n ${this.renderCheckboxIcon()}\n <label \n @input=\"${this.type === 'radio' ? this._clickRadioHandler : this._clickCheckHandler}\"\n for=\"${this.fieldId}\" class=\"cre8-tag-text\">${this.text}\n </label>\n </div>\n <input\n class=\"cre8-c-tag__input\" \n type=\"${this.type}\"\n id=\"${this.fieldId}\"\n name=${this.text}\n .value=\"${this.text}\"\n ?disabled=\"${this.isDisabled}\"\n .checked = \"${isSelected}\"\n />\n </div>\n `;\n }\n}\n\nif (customElements.get('cre8-tag') === undefined) {\n customElements.define('cre8-tag', Cre8Tag);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-tag': Cre8Tag;\n }\n}\n\nexport default Cre8Tag;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n/** \n * 1) Fieldset used for tags\n */\n.cre8-c-tag-list {\n border: none;\n padding: 0;\n margin: 0;\n gap: var(--cre8-spacing-16);\n}\n\n.cre8-c-tag-list__legend {\n margin-bottom: var(--cre8-spacing-16);\n}\n\n/**\n * Slotted tag items\n */\n::slotted(cre8-tag) {\n margin-bottom: var(--cre8-spacing-16);\n margin-right: var(--cre8-spacing-8);\n}\n\n.cre8-c-tag-list__list {\n list-style-type: none;\n margin: 0;\n padding: 0;\n display: flex;\n flex-wrap: wrap;\n}\n`;\nexport default styles;\n","import { html, } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { nanoid } from 'nanoid';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './tag-list.styles.js';\n\n/**\n * Tag List must have children which are Tag components that are of type `checkbox` or `radio`.\n * The Tags must use the `neutral` variant and the `round` shape when they are inside a Tag List.\n * Tag List has a label that should be used to describe the purpose of the list.\n */\nexport class Cre8TagList extends Cre8Element {\n static styles = [styles];\n\n /**\n * Tag list legend label\n */\n @property()\n label?: string;\n\n /**\n * The unique id of the select\n * @attr {string}\n */\n @property()\n fieldId?: string;\n\n firstUpdated() {\n this._initializeAria();\n }\n\n private _initializeAria() {\n this.fieldId = this.fieldId || nanoid();\n }\n\n render() {\n const componentClassNames = this.componentClassNames('cre8-c-tag-list', { });\n\n return html`\n <fieldset class=\"${componentClassNames}\">\n <legend class=\"cre8-c-tag-list__legend\">${this.label}</legend>\n <div class=\"cre8-c-tag-list__list\" role=\"list\"> \n <slot></slot>\n </div>\n </fieldset>\n `;\n }\n}\n\nif (customElements.get('cre8-tag-list') === undefined) {\n customElements.define('cre8-tag-list', Cre8TagList);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-tag-list': Cre8TagList;\n }\n}\n\nexport default Cre8TagList;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n/*------------------------------------*\\\n #TERTIARY-NAV\n\\*------------------------------------*/ \n\n:host {\n display: flex;\n}\n\n/**\n * Tertiary nav\n */\n.cre8-c-tertiary-nav {\n width: 100%;\n max-width: size(30);\n}\n\n/**\n * Tertiary nav full width\n */\n.cre8-c-tertiary-nav--full-width {\n max-width: none;\n}\n\n/**\n * Tertiary nav list\n */\n.cre8-c-tertiary-nav__list {\n margin: 0;\n padding: 0;\n list-style: none;\n}\n\n`;\nexport default styles;\n","import { html, } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './tertiary-nav.styles.js';\n\n/**\n * @slot - The component content\n */\nexport class Cre8TertiaryNav extends Cre8Element {\n static styles = [styles];\n\n /**\n * Allows the tertiary nav to take up the full width of it parent container\n */\n @property({ type: Boolean, reflect: true })\n fullWidth?: boolean;\n\n /**\n * aria-label attribute to designate at name for the nav. Can be override by user\n */\n @property()\n navAriaLabel: string = 'tertiary';\n\n render() {\n const componentClassNames = this.componentClassNames('cre8-c-tertiary-nav', {\n 'cre8-c-tertiary-nav--full-width': this.fullWidth,\n });\n\n return html`\n <nav aria-label=\"${this.navAriaLabel}\" role=\"navigation\" class=\"${componentClassNames}\">\n <ul role=\"list\" class=\"cre8-c-tertiary-nav__list\">\n <slot></slot>\n </ul>\n </nav>\n `;\n }\n}\n\nif (customElements.get('cre8-tertiary-nav') === undefined) {\n customElements.define('cre8-tertiary-nav', Cre8TertiaryNav);\n}\n\ndeclare global { interface HTMLElementTagNameMap { 'cre8-tertiary-nav': Cre8TertiaryNav; } }\n\nexport default Cre8TertiaryNav;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n/*------------------------------------*\\\n #TERTIARY-NAV-ITEM\n\\*------------------------------------*/ \n\n:host {\n display: contents;\n}\n\n/**\n * Tertiary nav item link\n */\n.cre8-c-tertiary-nav-item__link {\n @include cre8-typography-body-default();\n display: flex;\n align-items: center;\n gap: size(1); \n padding: size(1) size(1) size(1) size(2);\n color: var(--cre8-color-content-brand-strong);\n background-color: var(--cre8-color-bg-default);\n border-block-end: var(--cre8-border-width-default) var(--cre8-border-style-default) var(--cre8-color-border-default);\n text-decoration: none;\n transition: all var(--cre8-anim-fade-quick) var(--cre8-anim-ease);\n width: 100%;\n\n /**\n * Tertiary nav item link hover & focus state\n */\n &:hover,\n &:focus {\n background-color: var(--cre8-color-bg-subtle);\n }\n\n /**\n * Tertiary nav item link focus visible state\n */\n &:focus-visible {\n @include focus;\n }\n\n /**\n * Tertiary nav item link active/current state\n */\n &:active,\n .cre8-is-current & {\n color: var(--cre8-color-content-default);\n background-color: var(--cre8-color-bg-subtle);\n }\n}\n\n`;\nexport default styles;\n","import { html, } from 'lit';\nimport { ifDefined } from 'lit-html/directives/if-defined.js';\nimport { property } from 'lit/decorators.js';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './tertiary-nav-item.styles.js';\n\n/**\n * @slot - The component content\n */\nexport class Cre8TertiaryNavItem extends Cre8Element {\n static styles = [styles];\n\n /**\n * The href value of the tertiary nav link\n */\n @property()\n href?: string;\n\n /**\n * The current state of the tertiary nav link\n */\n @property({ type: Boolean, reflect: true })\n isCurrent?: boolean;\n\n /**\n * Handle on click\n * 1. On click, remove all isCurrent properties from all tertiary-nav items\n * 2. Add isCurrent to the item clicked\n */\n private _handleOnClick() {\n /* 1 */\n const tertiaryNav = this.closest('cre8-tertiary-nav');\n const allTertiaryNavItems = tertiaryNav.shadowRoot.querySelector('slot')\n .assignedElements({ flatten: false }) as Cre8TertiaryNavItem[];\n allTertiaryNavItems.forEach((item: Cre8TertiaryNavItem) => {\n item.isCurrent = false;\n });\n\n /* 2 */\n this.isCurrent = true;\n }\n\n render() {\n const componentClassNames = this.componentClassNames('cre8-c-tertiary-nav-item', {\n 'cre8-is-current': this.isCurrent,\n });\n\n return html`\n <li role=\"listitem\" class=\"${componentClassNames}\">\n <a\n class=\"cre8-c-tertiary-nav-item__link\"\n aria-current=${ifDefined(this.isCurrent ? 'page' : undefined)}\n @click=${this._handleOnClick}\n href=${ifDefined(this.href)}\n >\n <slot></slot>\n </a>\n </li>\n `;\n }\n}\n\nif (customElements.get('cre8-tertiary-nav-item') === undefined) {\n customElements.define('cre8-tertiary-nav-item', Cre8TertiaryNavItem);\n}\n\ndeclare global { interface HTMLElementTagNameMap { 'cre8-tertiary-nav-item': Cre8TertiaryNavItem; } }\n\nexport default Cre8TertiaryNavItem;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n/**\n * 1) General text link used across the product\n */\n.cre8-c-text-link {\n @include cre8-typography-body-default-link();\n display: inline-flex;\n color: var(--cre8-color-content-link);\n cursor: pointer;\n\n &:hover,\n &:focus {\n text-decoration: underline;\n color: var(--cre8-color-content-link-hover);\n }\n\n &:active {\n color: var(--cre8-color-content-link-active);\n }\n\n &:visited {\n color: var(--cre8-color-content-link-visited);\n }\n}\n\n/**\n* Display text link\n* 1) Used for items like article title links\n*/\n.cre8-c-text-link--display {\n color: var(--cre8-color-content-default);\n}\n\n/**\n * A secondary link list\n * 1) Uses a more subtle treatment than the default link list\n */\n.cre8-c-text-link--secondary {\n color: var(--cre8-color-content-subtle);\n}\n\n/**\n* Inverted text link\n* 1) Used on dark backgrounds\n*/\n.cre8-c-text-link--inverted {\n color: var(--cre8-color-content-knockout);\n}\n\n/**\n* Small text link\n* 1) Shrink the typography size\n*/\n.cre8-c-text-link--sm {\n @include cre8-typography-body-small();\n}\n\n/**\n* Text link after\n* 1) Container used to place items after the text link\n*/\n.cre8-c-text-link__after {\n margin-left: size(1);\n}\n`;\nexport default styles;\n","import { html, } from 'lit';\nimport { ifDefined } from 'lit-html/directives/if-defined.js';\nimport { property } from 'lit/decorators.js';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './text-link.styles.js';\n\n/**\n * @slot - The component content\n */\nexport class Cre8TextLink extends Cre8Element {\n static styles = [styles];\n\n /**\n * The link URL\n */\n @property()\n href?: string;\n\n /**\n * Style variant\n * <cre8-text-passage size=\"sm\">\n * <ul>\n * <li> **display** applies display treatment to the text link (e.g. article title link)</li>\n * <li> **secondary** applies secondary treatment to the text link (e.g. non-prominent links)</li>\n * </ul>\n * </cre8-text-passage>\n */\n @property()\n variant?: 'display' | 'secondary';\n\n /**\n * Size variant\n * <cre8-text-passage size=\"sm\">\n * <ul>\n * <li> **sm** renders a smaller typography preset than the default</li>\n * </ul>\n * </cre8-text-passage>\n */\n @property()\n size?: 'sm';\n\n /**\n * Inverted variant\n * 1) Used for dark backgrounds\n */\n @property({ type: Boolean, reflect: true })\n inverted?: boolean;\n\n render() {\n const componentClassName = this.componentClassNames('cre8-c-text-link', {\n 'cre8-c-text-link--inverted': this.inverted === true,\n 'cre8-c-text-link--display': this.variant === 'display',\n 'cre8-c-text-link--secondary': this.variant === 'secondary',\n 'cre8-c-text-link--sm': this.size === 'sm',\n });\n\n return html`\n <a href=\"${ifDefined(this.href)}\" class=\"${componentClassName}\">\n <slot></slot>\n ${this.slotNotEmpty('linkAfter')\n && html`<div class=\"cre8-c-text-link__after\">\n <slot name=\"linkAfter\"></slot>\n </div>`}\n </a>\n `;\n }\n}\n\nif (customElements.get('cre8-text-link') === undefined) {\n customElements.define('cre8-text-link', Cre8TextLink);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-text-link': Cre8TextLink;\n }\n}\n\nexport default Cre8TextLink;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n/*------------------------------------*\\\n #TOOLTIP\n\\*------------------------------------*/\n\n:host {\n display: inline-flex;\n}\n\n/** \n * Tooltip\n * The main container that holds the trigger and panel\n */\n.cre8-c-tooltip {\n position: relative;\n display: table;\n}\n\n/** \n * Tooltip panel\n * The container for the tooltip panel heading, content, and footer\n */\n.cre8-c-tooltip__panel {\n @include cre8-typography-body-default();\n opacity: 0;\n visibility: hidden;\n position: absolute;\n word-wrap: break-word;\n inset-block-start: calc(100% + #{size(1.5)});\n inset-block-end: auto;\n inset-inline-start: 50%;\n inset-inline-end: auto;\n transform: translateX(var(--rtlTranslateX, -50%));\n display: flex;\n flex-direction: column;\n gap: size(1);\n width: max-content;\n max-width: size(35);\n z-index: 400;\n color: var(--cre8-color-content-knockout);\n background-color: var(--cre8-color-bg-strong);\n border: var(--cre8-border-width-default) var(--cre8-border-style-default) var(--cre8-color-border-strong);\n border-radius: var(--cre8-border-radius-default);\n padding: size(1);\n\n /**\n * Active state for tooltip panel\n */\n .cre8-is-active:not(.cre8-is-dynamic) &,\n .cre8-is-active.cre8-is-dynamic-active & {\n opacity: 1;\n visibility: visible;\n }\n\n /**\n * Tooltip panel positioned to the top of the trigger\n */\n .cre8-c-tooltip--top & {\n inset-block-start: auto;\n inset-block-end: calc(100% + #{size(1.5)});\n inset-inline-start: 50%;\n inset-inline-end: auto;\n transform: translateX(var(--rtlTranslateX, -50%));\n }\n\n /**\n * Tooltip panel positioned to the left of the trigger\n */\n .cre8-c-tooltip--left & {\n inset-block-start: 50%;\n inset-block-end: auto;\n inset-inline-start: auto;\n inset-inline-end: calc(100% + #{size(1.5)});\n transform: translateY(-50%);\n }\n\n /**\n * Tooltip panel positioned to the right of the trigger\n */\n .cre8-c-tooltip--right & {\n inset-block-start: 50%;\n inset-block-end: auto;\n inset-inline-start: calc(100% + #{size(1.5)});\n inset-inline-end: auto;\n transform: translateY(-50%);\n }\n\n /**\n * Tooltip panel knockout\n */\n .cre8-c-tooltip--knockout & {\n background-color: var(--cre8-color-bg-default);\n color: var(--cre8-color-content-default);\n }\n}\n\n/**\n * Tooltip panel arrow\n */\n.cre8-c-tooltip__panel::before {\n content: '';\n display: block;\n width: size(1.5);\n height: size(1.5);\n position: absolute;\n margin: auto;\n background-color: var(--cre8-color-bg-strong);\n border-block-start: var(--cre8-border-width-default) var(--cre8-border-style-default) var(--cre8-color-border-strong);\n border-inline-start: var(--cre8-border-width-default) var(--cre8-border-style-default) var(--cre8-color-border-strong);\n inset-block-start: calc((var(--cre8-border-width-default) + #{size(0.75)}) * -1);\n inset-inline-start: 50%;\n transform: translateX(var(--rtlTranslateX, -50%)) rotate(45deg);\n\n /**\n * Moves the tooltip panel arrow to the top of the panel\n */\n .cre8-c-tooltip--top & {\n inset-block-start: auto;\n inset-block-end: calc((var(--cre8-border-width-default) + #{size(0.75)}) * -1);\n border-block-start: none;\n border-inline-start: none;\n border-block-end: var(--cre8-border-width-default) var(--cre8-border-style-default) var(--cre8-color-border-strong);\n border-inline-end: var(--cre8-border-width-default) var(--cre8-border-style-default) var(--cre8-color-border-strong);\n }\n\n /**\n * Moves the tooltip panel arrow to the right side of the panel\n */\n .cre8-c-tooltip--left & {\n inset-block-start: 50%;\n inset-block-end: auto;\n inset-inline-start: auto;\n inset-inline-end: calc((var(--cre8-border-width-default) + #{size(0.75)}) * -1);\n border-block-start: var(--cre8-border-width-default) var(--cre8-border-style-default) var(--cre8-color-border-strong);\n border-inline-start: none;\n border-block-end: none;\n border-inline-end: var(--cre8-border-width-default) var(--cre8-border-style-default) var(--cre8-color-border-strong);\n transform: translateY(-50%) rotate(var(--rtlRotate45Inverse, 45deg));\n }\n\n /**\n * Moves the tooltip panel arrow to the left side of the panel\n */\n .cre8-c-tooltip--right & {\n inset-block-start: 50%;\n inset-block-end: auto;\n inset-inline-start: calc((var(--cre8-border-width-default) + #{size(0.75)}) * -1);\n inset-inline-end: auto;\n border-block-start: none;\n border-inline-start: var(--cre8-border-width-default) var(--cre8-border-style-default) var(--cre8-color-border-strong);\n border-block-end: var(--cre8-border-width-default) var(--cre8-border-style-default) var(--cre8-color-border-strong);\n border-inline-end: none;\n transform: translateY(-50%) rotate(var(--rtlRotate45Inverse, 45deg));\n }\n\n /**\n * Tooltip arrow knockout\n */\n .cre8-c-tooltip--knockout & {\n background-color: var(--cre8-color-bg-default);\n }\n}\n\n/**\n * Tooltip footer\n * 1) The footer container in the panel\n */\n.cre8-c-tooltip__footer {\n display: flex;\n gap: size(2);\n justify-content: flex-end;\n flex-grow: 1;\n}\n\n/**\n * Tooltip trigger\n * 1) Add global focus state on keyboard focus\n */\n.cre8-c-tooltip__trigger {\n cursor: pointer;\n\n &:focus-visible {\n @include focus;\n }\n}\n\nsvg {\n display: flex;\n height: size(2);\n width: size(2);\n}\n`;\nexport default styles;\n","import { html, } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { nanoid } from 'nanoid';\nimport { ifDefined } from 'lit/directives/if-defined.js';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './tooltip.styles.js';\n\n/**\n * The purpose of tooltips is to provide a tip or hint about what a tool, icon, link, or other interaction does.\n * If you need to present a call to action with perhaps a button for the user to click, then use\n * [Popover](/docs/cre8-components-popover--docs) instead.\n *\n * ##Tooltip Styles\n * There are 4 alignment options for Tooltips: Top, Bottom, Right, and Left. Default placement is Bottom, below the\n * element it is describing. Top or Bottom alignment are the the preferred placement, particularly on screens that\n * have a more narrow viewport. Tooltips utilize Global styles and are not affected by brand themes.\n *\n * **With icon**\n * - **iconRotateDegree** & **iconFlipDirection** props are optional.\n * - They are used to set up the correct dirrection for icons, for example,\n * arrows, caret up or caret down.\n *\n * ##Usability Considerations\n * With the exception of icons - which should always have alt text at a minimum - the UI should never rely on\n * Tooltips for clarity, especially because they are not always discovered by the user. If the user cannot\n * intuitively understand the interface without Tooltips, the interface should be redesigned.\n *\n * ##How to use\n * - Use Tooltips to clarify the UI element the user is interacting with, not to add additional content on the page.\n * Also, do not simply restate content on the page, for example, the title of the field.\n * - Tooltips should be short and to the point. Example: \"Click X to do X\" or \"Icon Description.\" If a succinct\n * description is not possible, the interaction element should be redesigned.\n * - In a mouse-driven UI, Tooltips are triggered on hover (mouseover) and dismissed (disappear)\n * when the user mouses away from the element. In touch UIs, a Tooltip is triggered by tapping\n * and holding an item. The Tooltip is displayed as long as the user continues to hold the element.\n * Tap and hold is a more advanced user behavior, and further reason for not relying on Tooltips.\n * A novice user may never discover tap and hold for Tooltips.\n *\n * @slot default - Default, unnamed slot container for Tooltip text\n * @slot trigger - Named slot container for Tooltip element to trigger showing/hiding the Tooltip text\n */\n\nexport class Cre8Tooltip extends Cre8Element {\n static styles = [styles];\n\n /**\n * Positions the tooltip panel absolutely to the icon. Position overrides `isDynamic`.\n * @type {\"default\"|\"top\"|\"left\"|\"right\"}\n * @attr {string}\n * - **default** positions the tooltip panel below the trigger element\n * - **top** positions the tooltip panel above the trigger element\n * - **left** positions the tooltip panel left of the trigger element\n * - **right** positions the tooltip panel right of the trigger element\n */\n @property()\n position?: 'top' | 'left' | 'right';\n\n /**\n * The knockout variant for the tooltip\n * @attr {boolean}\n * 1. If is true, the tooltip background is white\n * 2. If is false, the tooltip background is gray\n */\n @property({ type: Boolean, reflect: true })\n knockout?: boolean;\n\n /**\n * The dynamic state for the tooltip. Position overrides isDynamic.\n * @attr {boolean}\n * - If true, the tooltip panel placement is determined by its position in the viewport\n * - If false, the tooltip panel placement will be placed according to the position value\n */\n @property({ type: Boolean, reflect: true })\n isDynamic?: boolean;\n\n /**\n * The dynamic active state\n * @attr {boolean}\n * <br/><br/> _*This property is dynamically set_\n */\n @property({ type: Boolean })\n isActiveDynamic?: boolean;\n\n /**\n * The active state for the tooltip\n * @attr {boolean}\n * - If true, the tooltip panel is visible\n * - If false, the tooltip panel is hidden\n * <br/><br/> _*This property is dynamically set_\n */\n @property({ type: Boolean, reflect: true })\n isActive?: boolean;\n\n /**\n * Accepts the ID string of the item the tooltip is referencing\n * @attr {string}\n * Dynmically appends its own ID to the aria-describedby attribute on the referenced element\n */\n @property({ type: String })\n ariaDescribes?: string;\n\n @property({ type: String })\n _uniqueId?: string;\n\n /**\n * svg as a raw string\n * - The icon is defined by this prop.\n * - Pass in a raw svg as a String for using <cre8-icon>\n */\n @property()\n svg?: string;\n\n /**\n * iconRotateDegree is used for <cre8-icon> to set the arrow in the correct direction\n */\n @property({ type: Number })\n iconRotateDegree?: number = 0;\n\n /**\n * iconFlipDirection is used for <cre8-icon> to set the icon in the correct direction\n */\n @property()\n iconFlipDirection?: string;\n\n /**\n * Query the tooltip panel element\n */\n @query('.cre8-c-tooltip')\n _Cre8Tooltip: HTMLElement;\n\n /**\n * Query the tooltip panel element\n */\n @query('.cre8-c-tooltip__panel')\n _Cre8TooltipPanel: HTMLElement;\n\n /**\n * Query the document direction value\n * <br/><br/> _*This property is dynamically set_\n */\n get isRTL() {\n return document.dir === 'rtl';\n }\n\n /**\n * updated Callback Lifecycle\n * 1. Find the second slot\n * 2. Create a string from joining the textContent of the textnodes\n * 3. Set the textContent of the tip generated in the firstUpdated lifecycle callback\n * */\n updated() {\n /* 1 & 2 */\n const tipContent = this.shadowRoot.querySelectorAll('slot')[1]\n .assignedNodes()\n .reduce(\n ((str, item) => `${str}${item.textContent.replace(/\\n/g, '').trim()}`),\n ''\n );\n /* 3 */\n if (document.getElementById(this._uniqueId)) {\n document.getElementById(this._uniqueId).textContent = tipContent;\n }\n }\n\n /**\n * firstUpdated Callback Lifecycle\n * 1. If ariaDescribes is set\n * a. create an ID and assign it to the property _uniqueId\n * b. Generate an empty div, assign it the _uniqueId and the tooltip role\n * 2. Set the aria-describedby on the ariaDescribes target\n */\n firstUpdated() {\n if (this.ariaDescribes) { /* 1 */\n this._uniqueId = this._uniqueId || nanoid(); /* 1.a */\n const idMatcher = new RegExp(`\\\\b${this._uniqueId}\\\\b`); // prevents dupes from reconnects below\n /* 1.b */\n const a11yProxy = document.createElement('div');\n a11yProxy.setAttribute('role', 'tooltip');\n a11yProxy.setAttribute('style', 'position:fixed; left: -1000px; top: -1000px;');\n a11yProxy.id = this._uniqueId;\n const describedEl = document.getElementById(this.ariaDescribes);\n describedEl.parentNode.insertBefore(a11yProxy, describedEl);\n const idList = describedEl?.getAttribute('aria-describedBy');\n /* 2 */\n describedEl?.setAttribute(\n 'aria-describedby',\n `${idList ? `${idList.replace(idMatcher, '')} ` : ''}${this._uniqueId}`.trim()\n );\n }\n }\n\n /**\n * Connected Callback Lifecycle\n * 1. Add window mouseover event listener\n * 2. Add window mouseout event listener\n * 3. Add mousedown event listener\n * 4. Set the id and aria-describedby\n */\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener('mouseover', this.toggleActive); /* 1 */\n this.addEventListener('mouseout', this.removeActive); /* 2 */\n }\n\n /**\n * Disconnected Callback Lifecycle\n * 1. Remove window mouseover event listener\n * 2. Remove window mouseout event listener\n */\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener('mouseover', this.toggleActive); /* 1 */\n this.removeEventListener('mouseout', this.removeActive); /* 2 */\n }\n\n /**\n * Handle all dynamic placement\n */\n dynamicPosition() {\n // TODO: Temporarily keep eslint complexity as warning. Update during specific story for this rule.\n /* eslint complexity: [\"warn\", 10] */\n if (this.isDynamic && this._Cre8TooltipPanel) {\n const body = document.querySelector('body').getBoundingClientRect();\n const tooltipPanel = this._Cre8TooltipPanel.getBoundingClientRect();\n const tooltipHeight = this._Cre8Tooltip.clientHeight + tooltipPanel.height + tooltipPanel.top;\n\n /**\n * If tooltip panel breaks out the left side of the window, position it to the right\n */\n if (tooltipPanel.left < 0) {\n this.position = this.isRTL ? 'left' : 'right';\n }\n\n /**\n * If tooltip panel breaks out the right side of the window, position it to the left\n */\n if (tooltipPanel.right >= body.width) {\n this.position = this.isRTL ? 'right' : 'left';\n }\n\n /**\n * If tooltip panel breaks out the top side of the window only, position it to the bottom center\n */\n if (tooltipPanel.top < 0 && tooltipPanel.left > 0 && tooltipPanel.right < body.width) {\n this.position = null;\n }\n\n /**\n * If tooltip panel breaks out the bottom side of the window only, position it to the top center\n */\n if (\n tooltipHeight >= window.innerHeight\n && tooltipPanel.bottom >= window.innerHeight\n && tooltipPanel.left >= 0\n && tooltipPanel.right <= body.width\n ) {\n this.position = 'top';\n }\n }\n }\n\n /**\n * Handle Keydown\n * 1. If escape or tab key is struck when the tooltip is active, close it\n * 2. If enter or escape is keyed, toggle the tooltip open or close.\n * We need these since the click event is on a div so that accessibility reads this aloud to a user\n */\n private _handleKeydown(e: KeyboardEvent) {\n if (this.isActive) {\n if (e.code === 'Escape' || e.code === 'Tab') {\n this.toggleActive(); /* 1 */\n }\n }\n if (e.code === 'Enter' || e.code === 'Space') {\n this.toggleActive(); /* 2 */\n }\n }\n\n /**\n * Set Tooltip Active State\n * 1. Toggle the active state between true and false\n * 2. If is active, set the dynamic position and custom event.\n * 3. If is not active, remove fire the close custom event.\n * 4. Toggle the active state for dynamic. This prevents a flash of the tooltip in the orginal position.\n */\n toggleActive() {\n this.isActive = !this.isActive; /* 1 */\n\n if (this.isActive) {\n /* 2 */\n setTimeout(() => {\n this.dynamicPosition();\n }, 1);\n this.dispatchEvent(new CustomEvent('open', {\n detail: { isActive: this.isActive }, bubbles: true, composed: true,\n }));\n } else {\n /* 3 */\n this.dispatchEvent(new CustomEvent('close', {\n detail: { isActive: this.isActive }, bubbles: true, composed: true,\n }));\n }\n\n /* 4 */\n setTimeout(() => {\n if (this.isActive && this.isDynamic) {\n this.isActiveDynamic = true;\n } else {\n this.isActiveDynamic = false;\n }\n }, 2);\n }\n\n /**\n * Remove Active State\n * 1. If a specific event is fired, remove the active state.\n */\n removeActive = () => {\n if (this.isActive) {\n this.toggleActive();\n }\n };\n\n render() {\n const componentClassNames = this.componentClassNames('cre8-c-tooltip', {\n 'cre8-c-tooltip--top': this.position === 'top',\n 'cre8-c-tooltip--left': this.position === 'left',\n 'cre8-c-tooltip--right': this.position === 'right',\n 'cre8-c-tooltip--knockout': this.knockout,\n 'cre8-is-active': this.isActive,\n 'cre8-is-dynamic': this.isDynamic,\n 'cre8-is-dynamic-active': this.isActiveDynamic,\n });\n\n return html`\n <div class=\"${componentClassNames}\">\n <div \n class=\"cre8-c-tooltip__trigger\"\n tabindex=\"0\"\n @focus=${this.toggleActive}\n @keydown=${this._handleKeydown}\n >\n ${this.svg\n ? html`\n <slot name=\"trigger\">\n <cre8-icon svg='${this.svg}' rotate=\"${Number(this.iconRotateDegree)}\" \n flip=\"${this.iconFlipDirection}\" aria-hidden=\"true\"></cre8-icon>\n </slot>`\n : html`<slot name=\"trigger\"></slot>`\n}\n </div>\n <dialog\n id=${ifDefined(this._uniqueId)}\n aria-labelledby=${this.ariaDescribes}\n class=\"cre8-c-tooltip__panel\"\n role=\"tooltip\">\n <slot></slot>\n </dialog>\n </div>\n `;\n }\n}\n\nif (customElements.get('cre8-tooltip') === undefined) {\n customElements.define('cre8-tooltip', Cre8Tooltip);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-tooltip': Cre8Tooltip;\n }\n}\n\nexport default Cre8Tooltip;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n/**\n * 1) Navigation in the header for utility items like logging into an account\n */\n:host {\n margin-left: auto;\n}\n\n/**\n * Inverted utility-nav\n */\n.cre8-c-utility-nav--inverted {\n --cre8-utility-nav-link-color: var(--cre8-color-content-knockout);\n}\n\n/**\n* Utility nav list\n*/\n.cre8-c-utility-nav__list {\n display: flex;\n margin: size(-2) 0 0 size(-2);\n padding: 0;\n list-style: none;\n\n /**\n * Slotted utility nav item\n */\n ::slotted(cre8-utility-nav-item) {\n margin-left: size(2);\n margin-top: size(2);\n }\n}\n`;\nexport default styles;\n","import { html, } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './utility-nav.styles.js';\n\n/**\n * @slot - The utility nav items\n */\nexport class Cre8UtilityNav extends Cre8Element {\n static styles = [styles];\n\n /**\n * Inverted variant\n * 1) Used for dark backgrounds\n */\n @property({ type: Boolean, reflect: true })\n inverted?: boolean;\n\n /**\n * aria-label attribute to designate at name for the nav. Can be override by user\n */\n @property()\n navAriaLabel: string = 'utility';\n\n render() {\n const componentClassName = this.componentClassNames('cre8-c-utility-nav', {\n 'cre8-c-utility-nav--inverted': this.inverted === true,\n });\n\n return html`\n <nav aria-label=\"${this.navAriaLabel}\" class=\"${componentClassName}\">\n <ul class=\"cre8-c-utility-nav__list\">\n <slot></slot>\n </ul>\n </nav>\n `;\n }\n}\n\nif (customElements.get('cre8-utility-nav') === undefined) {\n customElements.define('cre8-utility-nav', Cre8UtilityNav);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-utility-nav': Cre8UtilityNav;\n }\n}\n\nexport default Cre8UtilityNav;\n","import { css } from 'lit';\nconst styles = css`@import '../../design-tokens/core/scss/theming/component';\n\n/**\n * 1) List item that contains a link/button within the utility nav\n */\n.cre8-c-utility-nav__item {\n margin: 0;\n padding: 0;\n}\n\n/**\n* Utility nav link\n*/\n.cre8-c-utility-nav__link {\n display: flex;\n @include cre8-typography-label-default;\n border: none;\n background: none;\n appearance: none;\n padding: 0;\n text-align: left;\n color: var(--cre8-utility-nav-link-color, var(--cre8-color-content-brand));\n cursor: pointer;\n transition: color var(--cre8-anim-fade-quick) var(--cre8-anim-ease);\n\n &:hover,\n &:focus {\n color: var(--cre8-color-content-brand-hover);\n }\n}\n\n/**\n* Utility nav icon\n* 1) Pass properties down to icon component\n*/\ncre8-icon-legacy {\n --cre8-icon-height: 1.5rem; /* 1 */\n --cre8-icon-width: 1.5rem; /* 1 */\n}\n\n/**\n* Utility nav icon directly after utility nav text\n* 1) Create space between text and icon\n*/\n.cre8-c-utility-nav__text + cre8-icon-legacy {\n margin-left: size(1); /* 1 */\n}\n\n/**\n* Utility nav text directly after utility nav icon\n* 1) Create space between text and icon\n*/\ncre8-icon-legacy + .cre8-c-utility-nav__text {\n margin-left: size(1); /* 1 */\n}\n`;\nexport default styles;\n","import { html, nothing, } from 'lit';\nimport { ifDefined } from 'lit-html/directives/if-defined.js';\nimport { property } from 'lit/decorators.js';\nimport { Cre8Element } from '../cre8-element';\nimport styles from './utility-nav-item.styles.js';\n\nexport class Cre8UtilityNavItem extends Cre8Element {\n static styles = [styles];\n\n /**\n * Hide text toggle\n * 1) Visually hides the text so screenreaders can still read for accessibility when set to true.\n */\n @property({ type: Boolean, reflect: true })\n hideText?: boolean;\n\n /**\n * URL of the utility nav item\n */\n @property()\n href?: string;\n\n /**\n * Icon name\n */\n @property()\n iconName?: string;\n\n /**\n * Icon position\n * <cre8-text-passage size=\"sm\">\n * <ul>\n * <li>**before** places the icon before the text</li>\n * <li>**after** places the icon after the text</li>\n * </ul>\n * </cre8-text-passage>\n */\n @property()\n iconPosition?: 'before' | 'after' = undefined;\n\n /**\n * Text of the utility nav item\n */\n @property()\n text?: string;\n\n render() {\n const componentClassName = this.componentClassNames('cre8-c-utility-nav__item', {});\n\n if (this.href) {\n return html`\n <li class=\"${componentClassName}\">\n <a href=\"${this.href}\" class=\"cre8-c-utility-nav__link\">\n ${this.iconPosition === 'before'\n ? html`<cre8-icon-legacy aria-hidden=\"true\" name=\"${ifDefined(this.iconName)}\"></cre8-icon-legacy>`\n : nothing}\n <span\n class=\"${this.hideText ? 'cre8-u-is-vishidden cre8-c-utility-nav__text' : 'cre8-c-utility-nav__text'}\"\n >\n ${this.text}\n </span>\n ${this.iconPosition === 'after'\n ? html`<cre8-icon-legacy aria-hidden=\"true\" name=\"${ifDefined(this.iconName)}\"></cre8-icon-legacy>`\n : nothing}\n </a>\n </li>\n `;\n }\n return html`\n <li class=\"${componentClassName}\">\n <button class=\"cre8-c-utility-nav__link\">\n ${this.iconPosition === 'before'\n ? html`<cre8-icon-legacy aria-hidden=\"true\" name=\"${ifDefined(this.iconName)}\"></cre8-icon-legacy>`\n : nothing}\n <span\n class=\"${this.hideText ? 'cre8-u-is-vishidden cre8-c-utility-nav__text' : 'cre8-c-utility-nav__text'}\"\n >\n ${this.text}\n </span>\n ${this.iconPosition === 'after'\n ? html`<cre8-icon-legacy aria-hidden=\"true\" name=\"${ifDefined(this.iconName)}\"></cre8-icon-legacy>`\n : nothing}\n </button>\n </li>\n `;\n }\n}\n\nif (customElements.get('cre8-utility-nav-item') === undefined) {\n customElements.define('cre8-utility-nav-item', Cre8UtilityNavItem);\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'cre8-utility-nav-item': Cre8UtilityNavItem;\n }\n}\n\nexport default Cre8UtilityNavItem;\n","/**\n * CDN Entry Point\n *\n * This file is the entry point for CDN builds. It imports all components\n * (which auto-registers them as custom elements) and re-exports them for\n * programmatic access.\n *\n * Usage via script tag (IIFE):\n * <script src=\"https://cdn.example.com/cre8-wc.min.js\"></script>\n * <cre8-button>Click me</cre8-button>\n * <script>\n * // Components are also available on window.Cre8WC\n * const btn = document.querySelector('cre8-button');\n * </script>\n *\n * Usage via ES module:\n * <script type=\"module\">\n * import { Cre8Button } from 'https://cdn.example.com/cre8-wc.esm.js';\n * </script>\n */\n\n// Import all components (this registers them as custom elements)\nimport { Cre8Accordion } from './components/accordion/accordion';\nimport { Cre8AccordionItem } from './components/accordion-item/accordion-item';\nimport { Cre8Alert } from './components/alert/alert';\nimport { Cre8Badge } from './components/badge/badge';\nimport { Cre8Band } from './components/band/band';\nimport { Cre8Breadcrumbs } from './components/breadcrumbs/breadcrumbs';\nimport { Cre8BreadcrumbsItem } from './components/breadcrumbs-item/breadcrumbs-item';\nimport { Cre8Button } from './components/button/button';\nimport { Cre8ButtonGroup } from './components/button-group/button-group';\nimport { Cre8Card } from './components/card/card';\nimport { Cre8Chart } from './components/chart/chart';\nimport { Cre8CheckboxField } from './components/checkbox-field/checkbox-field';\nimport { Cre8CheckboxFieldItem } from './components/checkbox-field-item/checkbox-field-item';\nimport { Cre8DangerButton } from './components/danger-button/danger-button';\nimport { Cre8DatePicker } from './components/date-picker/date-picker';\nimport { Cre8Divider } from './components/divider/divider';\nimport { Cre8Dropdown } from './components/dropdown/dropdown';\nimport { Cre8DropdownItem } from './components/dropdown-item/dropdown-item';\nimport { Cre8Feature } from './components/feature/feature';\nimport { Cre8Field } from './components/field/field';\nimport { Cre8FieldNote } from './components/field-note/field-note';\nimport { Cre8Footer } from './components/footer/footer';\nimport { Cre8GlobalNav } from './components/global-nav/global-nav';\nimport { Cre8GlobalNavItem } from './components/global-nav-item/global-nav-item';\nimport { Cre8Grid } from './components/grid/grid';\nimport { Cre8GridItem } from './components/grid-item/grid-item';\nimport { Cre8Header } from './components/header/header';\nimport { Cre8Heading } from './components/heading/heading';\nimport { Cre8Hero } from './components/hero/hero';\nimport { Cre8Icon } from './components/icon/icon';\nimport { Cre8InlineAlert } from './components/inline-alert/inline-alert';\nimport { Cre8Layout } from './components/layout/layout';\nimport { Cre8LayoutContainer } from './components/layout-container/layout-container';\nimport { Cre8LayoutSection } from './components/layout-section/layout-section';\nimport { Cre8LinelengthContainer } from './components/linelength-container/linelength-container';\nimport { Cre8Link } from './components/link/link';\nimport { Cre8LinkList } from './components/link-list/link-list';\nimport { Cre8LinkListItem } from './components/link-list-item/link-list-item';\nimport { Cre8List } from './components/list/list';\nimport { Cre8ListItem } from './components/list-item/list-item';\nimport { Cre8LoadingSpinner } from './components/loading-spinner/loading-spinner';\nimport { Cre8Logo } from './components/logo/logo';\nimport { Cre8Main } from './components/main/main';\nimport { Cre8Modal } from './components/modal/modal';\nimport { Cre8MultiSelect } from './components/multi-select/multi-select';\nimport { Cre8NavContainer } from './components/nav-container/nav-container';\nimport { Cre8PageHeader } from './components/page-header/page-header';\nimport { Cre8Pagination } from './components/pagination/pagination';\nimport { Cre8PercentBar } from './components/percent-bar/percent-bar';\nimport { Cre8Popover } from './components/popover/popover';\nimport { Cre8PrimaryNav } from './components/primary-nav/primary-nav';\nimport { Cre8PrimaryNavItem } from './components/primary-nav-item/primary-nav-item';\nimport { Cre8ProgressMeter } from './components/progress-meter/progress-meter';\nimport { Cre8RadioField } from './components/radio-field/radio-field';\nimport { Cre8RadioFieldItem } from './components/radio-field-item/radio-field-item';\nimport { Cre8RemoveTag } from './components/remove-tag/remove-tag';\nimport { Cre8Section } from './components/section/section';\nimport { Cre8Select } from './components/select/select';\nimport { Cre8SelectTile } from './components/select-tile/select-tile';\nimport { Cre8SelectTileList } from './components/select-tile-list/select-tile-list';\nimport { Cre8SkeletonLoader } from './components/skeleton-loader/skeleton-loader';\nimport { Cre8SplitButton } from './components/split-button/split-button';\nimport { Cre8Submenu } from './components/submenu/submenu';\nimport { Cre8SubmenuItem } from './components/submenu-item/submenu-item';\nimport { Cre8Tab } from './components/tab/tab';\nimport { Cre8TabPanel } from './components/tab-panel/tab-panel';\nimport { Cre8Table } from './components/table/table';\nimport { Cre8TableBody } from './components/table-body/table-body';\nimport { Cre8TableCell } from './components/table-cell/table-cell';\nimport { Cre8TableHeader } from './components/table-header/table-header';\nimport { Cre8TableHeaderCell } from './components/table-header-cell/table-header-cell';\nimport { Cre8TableObject } from './components/table-object/table-object';\nimport { Cre8TableRow } from './components/table-row/table-row';\nimport { Cre8Tabs } from './components/tabs/tabs';\nimport { Cre8Tag } from './components/tag/tag';\nimport { Cre8TagList } from './components/tag-list/tag-list';\nimport { Cre8TertiaryNav } from './components/tertiary-nav/tertiary-nav';\nimport { Cre8TertiaryNavItem } from './components/tertiary-nav-item/tertiary-nav-item';\nimport { Cre8TextLink } from './components/text-link/text-link';\nimport { Cre8TextPassage } from './components/text-passage/text-passage';\nimport { Cre8Tooltip } from './components/tooltip/tooltip';\nimport { Cre8UtilityNav } from './components/utility-nav/utility-nav';\nimport { Cre8UtilityNavItem } from './components/utility-nav-item/utility-nav-item';\n\n// Export version info\nexport const version = '1.0.10';\n\n// Re-export all components for programmatic access\nexport {\n Cre8Accordion,\n Cre8AccordionItem,\n Cre8Alert,\n Cre8Badge,\n Cre8Band,\n Cre8Breadcrumbs,\n Cre8BreadcrumbsItem,\n Cre8Button,\n Cre8ButtonGroup,\n Cre8Card,\n Cre8Chart,\n Cre8CheckboxField,\n Cre8CheckboxFieldItem,\n Cre8DangerButton,\n Cre8DatePicker,\n Cre8Divider,\n Cre8Dropdown,\n Cre8DropdownItem,\n Cre8Feature,\n Cre8Field,\n Cre8FieldNote,\n Cre8Footer,\n Cre8GlobalNav,\n Cre8GlobalNavItem,\n Cre8Grid,\n Cre8GridItem,\n Cre8Header,\n Cre8Heading,\n Cre8Hero,\n Cre8Icon,\n Cre8InlineAlert,\n Cre8Layout,\n Cre8LayoutContainer,\n Cre8LayoutSection,\n Cre8LinelengthContainer,\n Cre8Link,\n Cre8LinkList,\n Cre8LinkListItem,\n Cre8List,\n Cre8ListItem,\n Cre8LoadingSpinner,\n Cre8Logo,\n Cre8Main,\n Cre8Modal,\n Cre8MultiSelect,\n Cre8NavContainer,\n Cre8PageHeader,\n Cre8Pagination,\n Cre8PercentBar,\n Cre8Popover,\n Cre8PrimaryNav,\n Cre8PrimaryNavItem,\n Cre8ProgressMeter,\n Cre8RadioField,\n Cre8RadioFieldItem,\n Cre8RemoveTag,\n Cre8Section,\n Cre8Select,\n Cre8SelectTile,\n Cre8SelectTileList,\n Cre8SkeletonLoader,\n Cre8SplitButton,\n Cre8Submenu,\n Cre8SubmenuItem,\n Cre8Tab,\n Cre8TabPanel,\n Cre8Table,\n Cre8TableBody,\n Cre8TableCell,\n Cre8TableHeader,\n Cre8TableHeaderCell,\n Cre8TableObject,\n Cre8TableRow,\n Cre8Tabs,\n Cre8Tag,\n Cre8TagList,\n Cre8TertiaryNav,\n Cre8TertiaryNavItem,\n Cre8TextLink,\n Cre8TextPassage,\n Cre8Tooltip,\n Cre8UtilityNav,\n Cre8UtilityNavItem,\n};\n"],"names":["t","e","s","o","n$3","r","n","i","S","c","h","a","l","p","d","u","f","b","y","v","_","m","g","$","x","T","E","A","C","P","V","N","H","I","L","k","M","R","z","j","B","hasOwn","classNames","classes","arg","appendClass","parseValue","key","value","newClass","module","Cre8Element","LitElement","baseClassName","additionalClassNames","classnames","slotName","eventName","detailObj","optionsObj","options","event","html","styles","css","_Cre8Accordion","componentClassNames","Cre8Accordion","__decorateClass","property","svgCaretUp","svgAdd","svgArrowLeft$1","svgChat","svgCalendar","svgCaretDown$1","svgCheckCircle","svgCheck","svgClose","svgDownload","svgEdit","svgEllipsis","svgMessageFilled","svgMessage","svgError","svgExternal","svgMedication","svgGlobe","svgHandHeart","svgHelp","svgInfoFilled","svgLightbulb","svgLocation","svgMenu","svgMinus","svgAccountFilled","svgNotification","svgRefill","svgAccount","svgPlayFilled","svgPlayCircle","svgSpinner","svgUndo","svgSearch","svgCart","svgRectangle","svgVaccine","svgWarningFilled","svgLastPage","svgErrorAlt","svgEsi","svgInsta","svgLinkedin","svgOpen","svgPause","svgPersonBubble","svgPinterest","svgRss","svgRx","svgSwap","svgThumbsUp","svgTrendFlat","svgTrendUp","svgTwitter","iconSprite","_Cre8Icon","script","componentClassName","svgArrowLeft","svgCaretDown","svgCaretDoubleRight","iconPath","unsafeHTML","Cre8Icon","_Cre8FormElement","newValue","oldValue","Cre8FormElement","_Cre8LoadingSpinner","randomId","progress","dashOffset","nothing","Cre8LoadingSpinner","_Cre8Button","form","ifDefined","Cre8Button","query","_Cre8AccordionItem","buttonClassNames","Cre8AccordionItem","state","svgErrorFilled","svgLightbulbFilled","_Cre8Link","Cre8Link","_Cre8Heading","tagVariantClassNames","Cre8Heading","_Cre8TextPassage","lightDomStyle","lightDomStyles","Cre8TextPassage","_Cre8Alert","status","Cre8Alert","_Cre8Badge","Cre8Badge","_Cre8Band","Cre8Band","_Cre8Breadcrumbs","Cre8Breadcrumbs","svgCaretRight","_Cre8BreadcrumbsItem","Cre8BreadcrumbsItem","_Cre8ButtonGroup","Cre8ButtonGroup","_Cre8Card","Cre8Card","round","lim","p2b","n2b","b2n","n2p","map$1","hex","h1","h2","eq","isShort","hexParse","str","len","ret","alpha","hexString","HUE_RE","hsl2rgbn","hsv2rgbn","hwb2rgbn","w","rgb","hueValue","max","rgb2hsl","min","calln","hsl2rgb","hwb2rgb","hsv2rgb","hue","hueParse","p1","p2","rotate","deg","hslString","map","names$1","unpack","unpacked","keys","tkeys","ok","nk","names","nameParse","RGB_RE","rgbParse","rgbString","to","from","interpolate","rgb1","rgb2","modHSL","ratio","tmp","clone","proto","fromObject","input","functionParse","Color","type","obj","color","weight","c1","c2","w2","w1","val","noop","uid","id","isNullOrUndef","isArray","isObject","isNumberFinite","finiteOrDefault","defaultValue","valueOrDefault","toPercentage","dimension","toDimension","callback","fn","args","thisArg","each","loopable","reverse","_elementsEqual","a0","a1","ilen","v0","v1","source","target","klen","isValidKey","_merger","tval","sval","merge","sources","merger","current","mergeIf","_mergerIf","keyResolvers","_splitKey","parts","part","_getKeyResolver","resolveObjectKey","_capitalize","defined","isFunction","setsEqual","item","_isClickEvent","PI","TAU","PITAU","INFINITY","RAD_PER_DEG","HALF_PI","QUARTER_PI","TWO_THIRDS_PI","log10","sign","almostEquals","epsilon","niceNum","range","roundedRange","niceRange","fraction","_factorize","result","sqrt","isNonPrimitive","isNumber","almostWhole","rounded","_setMinAndMaxByKey","array","toRadians","degrees","toDegrees","radians","_decimalPlaces","getAngleFromPoint","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","angle","distanceBetweenPoints","pt1","pt2","_angleDiff","_normalizeAngle","_angleBetween","start","end","sameAngleIsFullCircle","angleToStart","angleToEnd","startToAngle","endToAngle","_limitValue","_int16Range","_isBetween","_lookup","table","cmp","index","hi","lo","mid","_lookupByKey","last","ti","_rlookupByKey","_filterBetween","values","arrayEvents","listenArrayEvents","listener","method","base","res","object","unlistenArrayEvents","stub","listeners","_arrayUnique","items","set","requestAnimFrame","throttled","argsToUse","ticking","debounce","delay","timeout","_toLeftRightCenter","align","_alignStartEnd","_getStartAndCountOfVisiblePoints","meta","points","animationsDisabled","pointCount","count","iScale","vScale","_parsed","spanGaps","axis","minDefined","maxDefined","distanceToDefinedLo","point","distanceToDefinedHi","_scaleRangesChanged","xScale","yScale","_scaleRanges","newRanges","changed","atEdge","elasticIn","elasticOut","effects","isPatternOrGradient","getHoverColor","numbers","colors","applyAnimationsDefaults","defaults","name","applyLayoutsDefaults","intlCache","getNumberFormat","locale","cacheKey","formatter","formatNumber","num","formatters","tickValue","ticks","notation","delta","maxTick","calculateDelta","logDelta","numDecimal","remain","Ticks","applyScaleDefaults","_ctx","overrides","descriptors","getScope$1","node","root","scope","Defaults","_descriptors","_appliers","context","ctx","targetScope","targetName","scopeObject","targetScopeObject","privateName","local","appliers","apply","toFontString","font","_measureText","data","gc","longest","string","textWidth","_longestText","arrayOfThings","cache","jlen","thing","nestedThing","gcLen","_alignPixel","chart","pixel","width","devicePixelRatio","halfWidth","clearCanvas","canvas","drawPoint","drawPointLegend","xOffset","yOffset","size","cornerRadius","xOffsetW","yOffsetW","style","rotation","radius","rad","_isPointInArea","area","margin","clipArea","unclipArea","_steppedLineTo","previous","flip","mode","midpoint","_bezierCurveTo","setRenderOpts","opts","decorateText","line","metrics","left","right","top","bottom","yDecoration","drawBackdrop","oldColor","renderText","text","lines","stroke","addRoundedRectPath","rect","LINE_HEIGHT","FONT_STYLE","toLineHeight","matches","numberOrZero","_readValueToProps","props","objProps","read","prop","toTRBL","toTRBLCorners","toPadding","toFont","fallback","resolve","inputs","info","_addGrace","minmax","grace","beginAtZero","change","keepZero","add","createContext","parentContext","_createResolver","scopes","prefixes","rootScopes","getTarget","finalRootScopes","_resolve","_cached","_resolveWithPrefixes","getKeysFromAllScopes","storage","_attachContext","proxy","subProxy","descriptorDefaults","receiver","_resolveWithContext","_scriptable","_indexable","_allKeys","readKey","prefix","needsSubResolver","_proxy","_context","_subProxy","_resolveScriptable","_resolveArray","getValue","_stack","createSubResolver","isIndexable","arr","resolver","resolveFallback","getScope","parent","addScopes","parentScopes","parentFallback","allScopes","addScopesFromKey","subGetTarget","resolveKeysFromAllScopes","_parseObjectDataRadialScale","parsed","EPSILON","getPoint","getValueAxis","indexAxis","splineCurve","firstPoint","middlePoint","afterPoint","next","d01","d12","s01","s12","fa","fb","monotoneAdjust","deltaK","mK","pointsLen","alphaK","betaK","tauK","squaredMagnitude","pointCurrent","pointAfter","monotoneCompute","valueAxis","pointBefore","iPixel","vPixel","splineCurveMonotone","slopeDelta","capControlPoint","pt","capBezierPoints","inArea","inAreaPrev","inAreaNext","_updateBezierControlPoints","loop","controlPoints","prev","_isDomSupported","_getParentNode","domNode","parseMaxStyle","styleValue","parentProperty","valueInPixels","getComputedStyle","element","getStyle","el","positions","getPositionedStyle","suffix","pos","useOffsetPos","getCanvasPosition","touches","offsetX","offsetY","box","getRelativePosition","currentDevicePixelRatio","borderBox","paddings","borders","height","getContainerSize","maxWidth","maxHeight","container","containerStyle","containerBorder","containerPadding","round1","getMaximumSize","bbWidth","bbHeight","aspectRatio","margins","containerSize","retinaScale","forceRatio","forceStyle","pixelRatio","deviceHeight","deviceWidth","supportsEventListenerOptions","passiveSupported","readUsedSize","_pointInLine","_steppedInterpolation","_bezierInterpolation","cp1","cp2","getRightToLeftAdapter","rectX","itemWidth","getLeftToRightAdapter","_itemWidth","getRtlAdapter","rtl","overrideTextDirection","direction","original","restoreTextDirection","propertyFn","normalizeSegment","getSegment","segment","bounds","startBound","endBound","between","normalize","_boundSegment","compare","inside","subStart","prevValue","startIsBefore","endIsBefore","shouldStart","shouldStop","_boundSegments","segments","sub","findStartAndEnd","solidSegments","cur","_computeSegments","segmentOptions","splitByStyles","completeLoop","doSplitByStyles","chartContext","baseStyle","readStyle","datasetIndex","prevStyle","addStyle","st","dir","styleChanged","replacer","getSizeForArea","scale","chartArea","field","getDatasetArea","getDatasetClipArea","clip","Animator","anims","date","callbacks","numSteps","remaining","draw","charts","cb","acc","animator","transparent","interpolators","factor","c0","Animation","cfg","currentValue","elapsed","duration","promises","rej","resolved","Animations","config","animationOptions","animatedProps","option","newOptions","resolveTargetOptions","animations","awaitAll","running","animation","properties","anim","scaleClip","allowedOverflow","defaultClip","toClip","getSortedDatasetIndices","filterVisible","metasets","applyStack","stack","dsIndex","singleMode","otherValue","found","convertObjectDataToArray","iAxisKey","vAxisKey","adata","isStacked","stacked","getStackKey","indexScale","valueScale","getUserBounds","getOrCreateStack","stacks","stackKey","indexValue","subStack","getLastIndexInStack","positive","updateStacks","controller","iAxis","vAxis","itemStacks","visualValues","getFirstScaleId","scales","createDatasetContext","createDataContext","clearStacks","isDirectUpdateMode","cloneIfNotShared","cached","shared","createStack","canStack","_DatasetController","dataset","chooseId","xid","yid","rid","iid","vid","scaleID","_data","resetNewElements","stackChanged","oldStacked","scopeKeys","_stacked","sorted","isNotInOrderComparedToPrev","labels","singleScale","xAxisKey","yAxisKey","parsedValue","otherScale","otherMin","otherMax","_skip","elements","active","drawActiveElementsOnTop","elementType","sharing","transition","sharedOptions","firstOpts","previouslySharedOptions","includeOptions","arg1","arg2","numMeta","numData","move","removed","newCount","DatasetController","getAllScaleValues","visibleMetas","computeMinSampleSize","curr","updateMinAndPrev","computeFitCategoryTraits","ruler","stackCount","thickness","computeFlexCategoryTraits","pixels","percent","parseFloatBar","entry","startValue","endValue","barStart","barEnd","parseArrayOrPrimitive","isFloatBar","custom","barSign","actualBase","borderProps","setBorderSkipped","edge","parseEdge","swap","startEnd","orig","v2","setInflateAmount","inflateAmount","_BarController","bars","reset","horizontal","vpixels","ipixels","dataIndex","currentParsed","iScaleValue","skipNull","indexScaleId","firstScaleAxisId","barThickness","baseValue","minBarLength","floating","length","head","startPixel","endPixel","halfGrid","maxBarThickness","center","axisCount","axisID","axisNumber","stackIndex","rects","BarController","_BubbleController","BubbleController","getRatioAndOffset","circumference","cutout","ratioX","ratioY","startAngle","endAngle","startX","startY","endX","endY","calcMax","calcMin","maxX","maxY","minX","minY","_DoughnutController","getter","arcs","spacing","maxSize","chartWeight","maxRadius","outerRadius","innerRadius","radiusLength","animationOpts","centerX","centerY","animateScale","arc","metaData","total","ringWeightOffset","pointStyle","textAlign","useBorderRadius","borderRadius","label","legendItem","legend","DoughnutController","_LineController","_dataset","maxGapLength","directUpdate","pointsCount","prevParsed","nullData","border","lastPoint","LineController","_PolarAreaController","minSize","datasetStartAngle","defaultAngle","PolarAreaController","_PieController","PieController","_RadarController","pointPosition","RadarController","_ScatterController","showLine","ScatterController","abstract","DateAdapterBase","members","adapters","binarySearch","metaset","intersect","_sorted","lookupMethod","evaluateInteractionItems","position","handler","getDistanceMetricForAxis","useX","useY","deltaX","deltaY","getIntersectItems","useFinalPosition","includeInvisible","getNearestRadialItems","evaluationFunc","getNearestCartesianItems","distanceMetric","minDistance","inRange","distance","getNearestItems","getAxisItems","rangeMethod","intersectsItem","Interaction","STATIC_POSITIONS","filterByPosition","filterDynamicPositionByAxis","sortByWeight","wrapBoxes","boxes","layoutBoxes","stackWeight","buildStacks","layouts","wrap","setLayoutDims","params","vBoxMaxWidth","hBoxMaxHeight","layout","fullSize","buildLayoutBoxes","centerHorizontal","centerVertical","getCombinedMax","maxPadding","updateMaxPadding","boxPadding","updateDims","newWidth","newHeight","widthChanged","heightChanged","handleMaxPadding","updatePos","getMargins","marginForPositions","fitBoxes","refitBoxes","refit","same","other","setBoxDims","placeBoxes","userPadding","layoutItem","minPadding","padding","availableWidth","availableHeight","verticalBoxes","horizontalBoxes","visibleVerticalBoxCount","BasePlatform","BasicPlatform","EXPANDO_KEY","EVENT_TYPES","isNullOrEmpty","initCanvas","renderHeight","renderWidth","displayWidth","displayHeight","eventListenerOptions","addListener","removeListener","fromNativeEvent","nodeListContains","nodeList","createAttachObserver","observer","entries","trigger","createDetachObserver","drpListeningCharts","oldDevicePixelRatio","onWindowResize","dpr","resize","listenDevicePixelRatioChanges","unlistenDevicePixelRatioChanges","createResizeObserver","releaseObserver","createProxyAndListen","DomPlatform","initial","proxies","_detectPlatform","_Element","final","Element","autoSkip","tickOpts","determinedMaxTicks","determineMaxTicks","ticksLimit","majorIndices","getMajorIndices","numMajorIndices","first","newTicks","skipMajors","calculateSpacing","avgMajorSpacing","skip","offset","tickLength","maxScale","maxChart","evenMajorSpacing","getEvenSpacing","factors","majorStart","majorEnd","diff","reverseAlign","offsetFromEdge","getTicksLimit","ticksLength","maxTicksLimit","sample","numItems","increment","getPixelForGridLine","offsetGridLines","validIndex","lineValue","garbageCollect","caches","getTickMarkLength","getTitleHeight","createScaleContext","createTickContext","tick","titleAlign","titleArgs","titleX","titleY","positionAxisID","Scale","raw","_userMin","_userMax","_suggestedMin","_suggestedMax","metas","sampleSize","samplingEnabled","reversePixels","numTicks","minRotation","maxRotation","labelRotation","tickWidth","maxLabelDiagonal","labelSizes","maxLabelWidth","maxLabelHeight","titleOpts","gridOpts","display","isHorizontal","titleHeight","widest","highest","tickPadding","angleRadians","cos","sin","labelHeight","labelWidth","isRotated","labelsBelowTicks","offsetLeft","offsetRight","paddingLeft","paddingRight","paddingTop","paddingBottom","widths","heights","widestLabelSize","highestLabelSize","tickFont","fontString","lineHeight","nestedLabel","valueAt","idx","decimal","optionTicks","rot","grid","tl","borderOpts","axisWidth","axisHalfWidth","alignBorderValue","borderValue","alignedLineValue","tx1","ty1","tx2","ty2","x1","y1","x2","y2","limit","step","optsAtIndex","optsAtIndexBorder","lineWidth","lineColor","borderDash","borderDashOffset","tickColor","tickBorderDash","tickBorderDashOffset","crossAlign","mirror","tickAndPadding","hTickAndPadding","lineCount","textOffset","textBaseline","halfCount","strokeColor","strokeWidth","tickTextAlign","backdrop","labelPadding","backgroundColor","drawLine","lastLineWidth","renderTextOptions","title","tz","gz","bz","fontSize","TypedRegistry","override","parentScope","isIChartComponent","registerDefaults","itemDefaults","routeDefaults","routes","propertyParts","sourceName","sourceScope","Registry","typedRegistry","reg","itemReg","registry","component","camelMethod","PluginService","hook","filter","descriptor","plugin","all","plugins","allPlugins","createDescriptors","previousDescriptors","localIds","getOpts","pluginOpts","getIndexAxis","datasetDefaults","getAxisFromDefaultScaleID","getDefaultScaleIDFromAxis","idMatchesAxis","axisFromPosition","determineAxis","scaleOptions","getAxisFromDataset","retrieveAxisFromDatasets","boundDs","mergeScaleConfig","chartDefaults","configScales","chartIndexAxis","scaleConf","defaultId","defaultScaleOptions","defaultID","initOptions","initData","initConfig","keyCache","keysCached","cachedKeys","generate","addIfFound","Config","datasetType","mainScope","resetCache","_scopeCache","keyLists","subPrefixes","getResolver","needContext","subResolver","resolverCache","hasFunction","isScriptable","scriptable","indexable","version","KNOWN_POSITIONS","positionIsHorizontal","compare2Level","l1","l2","onAnimationsComplete","onAnimationProgress","getCanvas","instances","getChart","moveNumericKeys","intKey","determineLastEvent","lastEvent","inChartArea","isClick","_Chart","invalidatePlugins","userConfig","initialCanvas","existingChart","maintainAspectRatio","_aspectRatio","newSize","newRatio","scalesOptions","axisOptions","scaleOpts","updated","isRadial","scaleType","scaleClass","hasUpdated","datasets","newControllers","ControllerClass","datasetElementType","dataElementType","animsDisabled","_active","_lastEvent","existingEvents","newEvents","_hiddenIndices","changes","_dataChanges","datasetCount","makeSet","changeSet","noArea","layers","visible","platform","_add","_remove","detached","attached","enabled","activeElements","lastActive","pluginId","replay","hoverOptions","deactivated","activated","eventFilter","Chart","clipSelf","borderWidth","borderJoinStyle","outerAngleClip","innerAngleClip","clipWidth","clipArc","pixelMargin","angleMargin","toRadiusCorners","parseBorderRadius$1","angleDelta","halfThickness","innerLimit","computeOuterLimit","outerArcLimit","rThetaToXY","theta","pathArc","circular","innerR","spacingOffset","noSpacingInnerRadius","noSpacingOuterRadius","avNogSpacingRadius","adjustedAngle","beta","angleOffset","outerStart","outerEnd","innerStart","innerEnd","outerStartAdjustedRadius","outerEndAdjustedRadius","outerStartAdjustedAngle","outerEndAdjustedAngle","innerStartAdjustedRadius","innerEndAdjustedRadius","innerStartAdjustedAngle","innerEndAdjustedAngle","outerMidAdjustedAngle","pCenter","p4","innerMidAdjustedAngle","p8","outerStartX","outerStartY","outerEndX","outerEndY","drawArc","fullCircles","drawBorder","inner","_ArcElement","chartX","chartY","rAdjust","_circumference","nonZeroBetween","betweenAngles","withinRadius","halfAngle","halfRadius","fix","radiusOffset","ArcElement","setStyle","lineTo","getLineMethod","pathVars","paramsStart","paramsEnd","segmentStart","segmentEnd","outside","pathSegment","lineMethod","fastPathSegment","avgX","countX","prevX","lastY","pointIndex","drawX","truncX","_getSegmentMethod","_getInterpolationMethod","strokePathWithCache","path","strokePathDirect","segmentMethod","usePath2D","_LineElement","_interpolate","interpolated","LineElement","inRange$1","_PointElement","mouseX","mouseY","PointElement","getBarBounds","bar","half","skipOrLimit","parseBorderWidth","maxW","maxH","parseBorderRadius","enableBorderRadius","maxR","enableBorder","boundingRects","skipX","skipY","hasRadius","addNormalRectPath","inflateRect","amount","refRect","_BarElement","borderColor","outer","addRectPath","BarElement","positioners","xSet","eventPosition","nearestElement","tp","pushOrConcat","toPush","splitNewlines","createTooltipItem","getTooltipSize","tooltip","body","footer","boxWidth","boxHeight","bodyFont","titleFont","footerFont","titleLineCount","footerLineCount","bodyLineItemCount","combinedBodyLength","bodyItem","bodyLineHeight","widthPadding","maxLineWidth","determineYAlign","doesNotFitWithAlign","xAlign","caret","determineXAlign","yAlign","chartWidth","determineAlignment","alignX","alignY","paddingAndSize","getBackgroundPoint","alignment","caretSize","caretPadding","topLeft","topRight","bottomLeft","bottomRight","getAlignedX","getBeforeAfterBodyLines","createTooltipContext","tooltipItems","overrideCallbacks","defaultCallbacks","labelCount","tooltipItem","invokeCallbackWithFallback","_Tooltip","beforeTitle","afterTitle","bodyItems","scoped","beforeFooter","afterFooter","labelColors","labelPointStyles","labelTextColors","positionAndSize","backgroundPoint","tooltipPoint","caretPosition","ptX","ptY","x3","y3","titleSpacing","rtlHelper","labelColor","labelPointStyle","colorX","rtlColorX","yOffSet","colorY","drawOptions","outerX","innerX","bodySpacing","bodyAlign","displayColors","xLinePadding","fillLineOfText","bodyAlignForCalculation","textColor","tooltipSize","animX","animY","opacity","hasTooltipContent","positionChanged","caretX","caretY","Tooltip","addIfString","addedLabels","findOrAddLabel","_getLabelForValue","_CategoryScale","added","CategoryScale","generateTicks$1","generationOptions","dataRange","precision","maxTicks","maxDigits","includeBounds","unit","maxSpaces","rmin","rmax","countDefined","minSpacing","niceMin","niceMax","numSpaces","decimalPlaces","relativeLabelSize","LinearScaleBase","setMin","setMax","minSign","maxSign","stepSize","numericGeneratorOptions","_LinearScale","LinearScale","log10Floor","changeExponent","isMajor","tickVal","steps","rangeExp","rangeStep","startExp","generateTicks","minExp","exp","significand","lastTick","_LogarithmicScale","LogarithmicScale","getTickBackdropHeight","measureLabelSize","determineLimits","fitWithPointLabels","limits","valueCount","pointLabelOpts","additionalAngle","plFont","textSize","hLimits","vLimits","updateLimits","buildPointLabelItems","createPointLabelItem","itemOpts","outerDistance","extra","pointLabelPosition","yForAngle","getTextAlignForAngle","leftForTextAlign","isNotOverlapped","centerPointLabels","drawPointLabelBox","backdropColor","backdropLeft","backdropTop","backdropWidth","backdropHeight","drawPointLabels","pointLabels","pathRadiusLine","drawRadiusLine","gridLineOpts","createPointLabelContext","_RadialLinearScale","leftMovement","rightMovement","topMovement","bottomMovement","angleMultiplier","scalingFactor","scaledDistance","pointLabel","distanceFromCenter","angleLines","RadialLinearScale","INTERVALS","UNITS","sorter","parse","adapter","parser","isoWeekday","determineUnitForAutoTicks","minUnit","capacity","interval","determineUnitForFormatting","determineMajorUnit","addTick","time","timestamps","timestamp","setMajorTicks","majorUnit","major","ticksFromTimestamps","_TimeScale","_applyBounds","timeOpts","minor","weekday","hasWeekday","format","formats","fmt","minorFormat","majorFormat","offsets","ticksOpts","tickLabelWidth","cosRotation","sinRotation","tickFontSize","exampleTime","displayFormats","exampleLabel","TimeScale","prevSource","nextSource","prevTarget","nextTarget","span","_TimeSeriesScale","TimeSeriesScale","_Cre8Chart","Cre8Chart","urlAlphabet","nanoid","bytes","scopedUrlAlphabet","_Cre8FieldNote","Cre8FieldNote","_Cre8CheckboxField","Cre8CheckboxField","_Cre8CheckboxFieldItem","customEvent","Cre8CheckboxFieldItem","_Cre8DangerButton","Cre8DangerButton","_Cre8Field","inputValue","Cre8Field","_Cre8CalendarMonthModal","month","Cre8CalendarMonthModal","_Cre8CalendarYearModal","newYear","oldYear","year","anchorYear","gridIndices","Cre8CalendarYearModal","_Cre8CalendarNavigation","modal","addend","Cre8CalendarNavigation","_Cre8Calendar","_a","activeModal","newFieldDate","oldDate","isNewDateValid","newDate","outsideClickEvent","newFocus","oldFocus","monthPickerButton","yearPickerButton","day","priorMonthArrayLength","finalDayLastMonth","numberOfDaysinLastMonth","priorMonthDay","isToday","isSelected","dayOfTheMonth","lastDayThisMonth","firstDayNextMonth","nextMonthDay","Cre8Calendar","_Cre8DatePicker","calendarIcon","Cre8DatePicker","_Cre8Divider","Cre8Divider","_Cre8Dropdown","Cre8Dropdown","_Cre8DropdownItem","linkAriaLabel","Cre8DropdownItem","_Cre8Feature","Cre8Feature","_Cre8Footer","Cre8Footer","_Cre8GlobalNav","Cre8GlobalNav","_Cre8GlobalNavItem","didClickInside","navLink","Cre8GlobalNavItem","_Cre8Grid","Cre8Grid","_Cre8GridItem","Cre8GridItem","_Cre8Header","Cre8Header","_Cre8Hero","Cre8Hero","svgHelpFilled","_Cre8InlineAlert","Cre8InlineAlert","_Cre8Layout","Cre8Layout","_Cre8LayoutContainer","Cre8LayoutContainer","_Cre8LayoutSection","Cre8LayoutSection","_Cre8LinelengthContainer","Cre8LinelengthContainer","_Cre8LinkList","Cre8LinkList","_Cre8LinkListItem","Cre8LinkListItem","_Cre8List","Cre8List","_Cre8ListItem","Cre8ListItem","_Cre8Logo","Cre8Logo","_Cre8Main","Cre8Main","queryShadowRoot","skipNode","isMatch","maxDepth","depth","traverseSlot","$slot","assignedNodes","children","$child","isHidden","$elem","isDisabled","isFocusable","timeouts","ms","template","FocusTrap","shadow","trapToEnd","focusableChildren","_Cre8Modal","eventTarget","changedProperties","Cre8Modal","svgClear","_Cre8RemoveTag","Cre8RemoveTag","_Cre8MultiSelect","buttonsWrapper","removeTagWrapper","dropdownWrapper","Cre8MultiSelect","_Cre8NavContainer","Cre8NavContainer","_Cre8PageHeader","Cre8PageHeader","svgCaretLeft","svgFirstPage","screenSizes","isMobile","screen","_Cre8PageCounter","Cre8PageCounter","_Cre8Pagination","page","_buttonName","old","focusButton","oldSize","newPage","oldPage","allowedVisiblePages","startPage","endPage","oldWidth","buttonName","Cre8Pagination","queryAll","_Cre8ProgressMeter","Cre8ProgressMeter","_Cre8PercentBar","Cre8PercentBar","_Cre8Popover","popoverPanel","popoverTrigger","focusableElements","lastFocusableElement","Cre8Popover","queryAssignedElements","_Cre8PrimaryNav","Cre8PrimaryNav","_Cre8PrimaryNavItem","Cre8PrimaryNavItem","_Cre8RadioField","Cre8RadioField","_Cre8RadioFieldItem","radioFieldItems","radioInput","sibling","previousElement","nextElement","isChecked","Cre8RadioFieldItem","_Cre8Section","Cre8Section","_Cre8Select","selectedGroup","Cre8Select","wrapIndex","SelectTileRadioController","host","wasChecked","siblings","ourIndex","moveToElement","excludeDisabled","document","SelectTileCheckboxController","_Cre8SelectTile","changedProps","checkboxClassNames","labelTabIndex","Cre8SelectTile","_Cre8SelectTileList","Cre8SelectTileList","_Cre8SkeletonLoader","Cre8SkeletonLoader","_Cre8SplitButton","Cre8SplitButton","_Cre8Submenu","Cre8Submenu","_Cre8SubmenuItem","Cre8SubmenuItem","_Cre8Tab","Cre8Tab","_Cre8TabPanel","Cre8TabPanel","_Cre8Table","Cre8Table","_Cre8TableBody","Cre8TableBody","_Cre8TableCell","Cre8TableCell","_Cre8TableHeader","Cre8TableHeader","_Cre8TableHeaderCell","Cre8TableHeaderCell","_Cre8TableObject","Cre8TableObject","_Cre8TableRow","Cre8TableRow","tabId","_Cre8Tabs","propName","tabElement","windowWidth","tab","tabPanel","activeTabPanel","activeIndex","currentTab","tabListLength","previousIndex","nextIndex","Cre8Tabs","_Cre8Tag","tags","tagInput","Cre8Tag","_Cre8TagList","Cre8TagList","_Cre8TertiaryNav","Cre8TertiaryNav","_Cre8TertiaryNavItem","Cre8TertiaryNavItem","_Cre8TextLink","Cre8TextLink","_Cre8Tooltip","tipContent","idMatcher","a11yProxy","describedEl","idList","tooltipPanel","tooltipHeight","Cre8Tooltip","_Cre8UtilityNav","Cre8UtilityNav","_Cre8UtilityNavItem","Cre8UtilityNavItem"],"mappings":"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;AAAA;AAAA,ECAfC,GAAe;AAAA;AAAA;AAAA,ECAfC,GAAe;AAAA;AAAA;AAAA,ECAfC,GAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,ECAfC,GAAe;AAAA;AAAA;AAAA,ECAfC,GAAe;AAAA;AAAA;AAAA;AAAA,ECAfC,GAAe;AAAA;AAAA;AAAA,ECAfC,GAAe;AAAA;AAAA;AAAA,ECAfC,GAAe;AAAA;AAAA;AAAA,ECAfC,GAAe;AAAA;AAAA;AAAA,ECAfC,GAAe;AAAA;AAAA;AAAA,ECAfC,GAAe;AAAA;AAAA;AAAA,ECCT5D,GAASC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,ECDf4D,GAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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C;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAA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A;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAA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jxD,GAASC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AA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AAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;A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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,15,16,17,106,107,108,111,112,178,179,180,181]}