@tmorrow/cre8-wc 1.1.2 → 1.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (435) hide show
  1. package/cdn/cre8-wc.esm.js +1 -1
  2. package/cdn/cre8-wc.esm.js.map +1 -1
  3. package/cdn/cre8-wc.min.js +1 -1
  4. package/cdn/cre8-wc.min.js.map +1 -1
  5. package/lib/cdn-entry.js +129 -0
  6. package/lib/cdn-entry.js.map +1 -0
  7. package/lib/components/accordion/accordion.js +58 -40
  8. package/lib/components/accordion/accordion.js.map +1 -0
  9. package/lib/components/accordion/accordion.styles.js +4 -0
  10. package/lib/components/accordion/accordion.styles.js.map +1 -0
  11. package/lib/components/accordion-item/accordion-item.js +187 -98
  12. package/lib/components/accordion-item/accordion-item.js.map +1 -0
  13. package/lib/components/accordion-item/accordion-item.styles.js +4 -0
  14. package/lib/components/accordion-item/accordion-item.styles.js.map +1 -0
  15. package/lib/components/alert/alert.js +146 -107
  16. package/lib/components/alert/alert.js.map +1 -0
  17. package/lib/components/alert/alert.styles.js +4 -0
  18. package/lib/components/alert/alert.styles.js.map +1 -0
  19. package/lib/components/badge/badge.js +73 -50
  20. package/lib/components/badge/badge.js.map +1 -0
  21. package/lib/components/badge/badge.styles.js +4 -0
  22. package/lib/components/badge/badge.styles.js.map +1 -0
  23. package/lib/components/band/band.js +34 -31
  24. package/lib/components/band/band.js.map +1 -0
  25. package/lib/components/band/band.styles.js +4 -0
  26. package/lib/components/band/band.styles.js.map +1 -0
  27. package/lib/components/breadcrumbs/breadcrumbs.js +52 -28
  28. package/lib/components/breadcrumbs/breadcrumbs.js.map +1 -0
  29. package/lib/components/breadcrumbs/breadcrumbs.styles.js +4 -0
  30. package/lib/components/breadcrumbs/breadcrumbs.styles.js.map +1 -0
  31. package/lib/components/breadcrumbs-item/breadcrumbs-item.js +28 -27
  32. package/lib/components/breadcrumbs-item/breadcrumbs-item.js.map +1 -0
  33. package/lib/components/breadcrumbs-item/breadcrumbs-item.styles.js +4 -0
  34. package/lib/components/breadcrumbs-item/breadcrumbs-item.styles.js.map +1 -0
  35. package/lib/components/button/button.js +297 -1040
  36. package/lib/components/button/button.js.map +1 -0
  37. package/lib/components/button/button.styles.js +885 -0
  38. package/lib/components/button/button.styles.js.map +1 -0
  39. package/lib/components/button-group/button-group.js +30 -27
  40. package/lib/components/button-group/button-group.js.map +1 -0
  41. package/lib/components/button-group/button-group.styles.js +4 -0
  42. package/lib/components/button-group/button-group.styles.js.map +1 -0
  43. package/lib/components/card/card.js +57 -35
  44. package/lib/components/card/card.js.map +1 -0
  45. package/lib/components/card/card.styles.js +4 -0
  46. package/lib/components/card/card.styles.js.map +1 -0
  47. package/lib/components/chart/chart.js +528 -354
  48. package/lib/components/chart/chart.js.map +1 -0
  49. package/lib/components/chart/chart.styles.js +4 -0
  50. package/lib/components/chart/chart.styles.js.map +1 -0
  51. package/lib/components/checkbox-field/checkbox-field.js +66 -53
  52. package/lib/components/checkbox-field/checkbox-field.js.map +1 -0
  53. package/lib/components/checkbox-field/checkbox-field.styles.js +4 -0
  54. package/lib/components/checkbox-field/checkbox-field.styles.js.map +1 -0
  55. package/lib/components/checkbox-field-item/checkbox-field-item.js +252 -183
  56. package/lib/components/checkbox-field-item/checkbox-field-item.js.map +1 -0
  57. package/lib/components/checkbox-field-item/checkbox-field-item.styles.js +4 -0
  58. package/lib/components/checkbox-field-item/checkbox-field-item.styles.js.map +1 -0
  59. package/lib/components/contexts/form-internals-context.js +9 -0
  60. package/lib/components/contexts/form-internals-context.js.map +1 -0
  61. package/lib/components/cre8-element.js +57 -56
  62. package/lib/components/cre8-element.js.map +1 -0
  63. package/lib/components/cre8-form-element.js +212 -244
  64. package/lib/components/cre8-form-element.js.map +1 -0
  65. package/lib/components/danger-button/danger-button.js +274 -147
  66. package/lib/components/danger-button/danger-button.js.map +1 -0
  67. package/lib/components/danger-button/danger-button.styles.js +4 -0
  68. package/lib/components/danger-button/danger-button.styles.js.map +1 -0
  69. package/lib/components/date-picker/calendar/calendar.js +465 -0
  70. package/lib/components/date-picker/calendar/calendar.js.map +1 -0
  71. package/lib/components/date-picker/calendar/calendar.styles.js +4 -0
  72. package/lib/components/date-picker/calendar/calendar.styles.js.map +1 -0
  73. package/lib/components/date-picker/calendar-month-modal/calendar-month-modal.js +76 -0
  74. package/lib/components/date-picker/calendar-month-modal/calendar-month-modal.js.map +1 -0
  75. package/lib/components/date-picker/calendar-month-modal/calendar-month-modal.styles.js +4 -0
  76. package/lib/components/date-picker/calendar-month-modal/calendar-month-modal.styles.js.map +1 -0
  77. package/lib/components/date-picker/calendar-navigation/calendar-navigation.js +110 -0
  78. package/lib/components/date-picker/calendar-navigation/calendar-navigation.js.map +1 -0
  79. package/lib/components/date-picker/calendar-navigation/calendar-navigation.styles.js +4 -0
  80. package/lib/components/date-picker/calendar-navigation/calendar-navigation.styles.js.map +1 -0
  81. package/lib/components/date-picker/calendar-year-modal/calendar-year-modal.js +116 -0
  82. package/lib/components/date-picker/calendar-year-modal/calendar-year-modal.js.map +1 -0
  83. package/lib/components/date-picker/calendar-year-modal/calendar-year-modal.styles.js +4 -0
  84. package/lib/components/date-picker/calendar-year-modal/calendar-year-modal.styles.js.map +1 -0
  85. package/lib/components/date-picker/date-picker.js +91 -784
  86. package/lib/components/date-picker/date-picker.js.map +1 -0
  87. package/lib/components/date-picker/date-picker.styles.js +4 -0
  88. package/lib/components/date-picker/date-picker.styles.js.map +1 -0
  89. package/lib/components/divider/divider.js +45 -35
  90. package/lib/components/divider/divider.js.map +1 -0
  91. package/lib/components/divider/divider.styles.js +4 -0
  92. package/lib/components/divider/divider.styles.js.map +1 -0
  93. package/lib/components/dropdown/dropdown.js +97 -63
  94. package/lib/components/dropdown/dropdown.js.map +1 -0
  95. package/lib/components/dropdown/dropdown.styles.js +4 -0
  96. package/lib/components/dropdown/dropdown.styles.js.map +1 -0
  97. package/lib/components/dropdown-item/dropdown-item.js +38 -31
  98. package/lib/components/dropdown-item/dropdown-item.js.map +1 -0
  99. package/lib/components/dropdown-item/dropdown-item.styles.js +4 -0
  100. package/lib/components/dropdown-item/dropdown-item.styles.js.map +1 -0
  101. package/lib/components/feature/feature.js +40 -35
  102. package/lib/components/feature/feature.js.map +1 -0
  103. package/lib/components/feature/feature.styles.js +4 -0
  104. package/lib/components/feature/feature.styles.js.map +1 -0
  105. package/lib/components/field/field.js +218 -153
  106. package/lib/components/field/field.js.map +1 -0
  107. package/lib/components/field/field.styles.js +4 -0
  108. package/lib/components/field/field.styles.js.map +1 -0
  109. package/lib/components/field-note/field-note.js +58 -45
  110. package/lib/components/field-note/field-note.js.map +1 -0
  111. package/lib/components/field-note/field-note.styles.js +4 -0
  112. package/lib/components/field-note/field-note.styles.js.map +1 -0
  113. package/lib/components/footer/footer.js +25 -18
  114. package/lib/components/footer/footer.js.map +1 -0
  115. package/lib/components/footer/footer.styles.js +4 -0
  116. package/lib/components/footer/footer.styles.js.map +1 -0
  117. package/lib/components/global-nav/global-nav.js +44 -37
  118. package/lib/components/global-nav/global-nav.js.map +1 -0
  119. package/lib/components/global-nav/global-nav.styles.js +4 -0
  120. package/lib/components/global-nav/global-nav.styles.js.map +1 -0
  121. package/lib/components/global-nav-item/global-nav-item.js +149 -112
  122. package/lib/components/global-nav-item/global-nav-item.js.map +1 -0
  123. package/lib/components/global-nav-item/global-nav-item.styles.js +4 -0
  124. package/lib/components/global-nav-item/global-nav-item.styles.js.map +1 -0
  125. package/lib/components/grid/grid.js +48 -45
  126. package/lib/components/grid/grid.js.map +1 -0
  127. package/lib/components/grid/grid.styles.js +4 -0
  128. package/lib/components/grid/grid.styles.js.map +1 -0
  129. package/lib/components/grid-item/grid-item.js +19 -16
  130. package/lib/components/grid-item/grid-item.js.map +1 -0
  131. package/lib/components/grid-item/grid-item.styles.js +4 -0
  132. package/lib/components/grid-item/grid-item.styles.js.map +1 -0
  133. package/lib/components/header/header.js +34 -29
  134. package/lib/components/header/header.js.map +1 -0
  135. package/lib/components/header/header.styles.js +4 -0
  136. package/lib/components/header/header.styles.js.map +1 -0
  137. package/lib/components/heading/heading.js +113 -76
  138. package/lib/components/heading/heading.js.map +1 -0
  139. package/lib/components/heading/heading.styles.js +4 -0
  140. package/lib/components/heading/heading.styles.js.map +1 -0
  141. package/lib/components/hero/hero.js +43 -40
  142. package/lib/components/hero/hero.js.map +1 -0
  143. package/lib/components/hero/hero.styles.js +4 -0
  144. package/lib/components/hero/hero.styles.js.map +1 -0
  145. package/lib/components/icon/icon.js +232 -9
  146. package/lib/components/icon/icon.js.map +1 -0
  147. package/lib/components/icon/icon.styles.js +4 -0
  148. package/lib/components/icon/icon.styles.js.map +1 -0
  149. package/lib/components/inline-alert/inline-alert.js +114 -87
  150. package/lib/components/inline-alert/inline-alert.js.map +1 -0
  151. package/lib/components/inline-alert/inline-alert.styles.js +4 -0
  152. package/lib/components/inline-alert/inline-alert.styles.js.map +1 -0
  153. package/lib/components/layout/layout.js +30 -27
  154. package/lib/components/layout/layout.js.map +1 -0
  155. package/lib/components/layout/layout.styles.js +4 -0
  156. package/lib/components/layout/layout.styles.js.map +1 -0
  157. package/lib/components/layout-container/layout-container.js +30 -27
  158. package/lib/components/layout-container/layout-container.js.map +1 -0
  159. package/lib/components/layout-container/layout-container.styles.js +4 -0
  160. package/lib/components/layout-container/layout-container.styles.js.map +1 -0
  161. package/lib/components/layout-section/layout-section.js +41 -33
  162. package/lib/components/layout-section/layout-section.js.map +1 -0
  163. package/lib/components/layout-section/layout-section.styles.js +4 -0
  164. package/lib/components/layout-section/layout-section.styles.js.map +1 -0
  165. package/lib/components/linelength-container/linelength-container.js +19 -16
  166. package/lib/components/linelength-container/linelength-container.js.map +1 -0
  167. package/lib/components/linelength-container/linelength-container.styles.js +4 -0
  168. package/lib/components/linelength-container/linelength-container.styles.js.map +1 -0
  169. package/lib/components/link/link.js +125 -87
  170. package/lib/components/link/link.js.map +1 -0
  171. package/lib/components/link/link.styles.js +4 -0
  172. package/lib/components/link/link.styles.js.map +1 -0
  173. package/lib/components/link-list/link-list.js +48 -45
  174. package/lib/components/link-list/link-list.js.map +1 -0
  175. package/lib/components/link-list/link-list.styles.js +4 -0
  176. package/lib/components/link-list/link-list.styles.js.map +1 -0
  177. package/lib/components/link-list-item/link-list-item.js +40 -37
  178. package/lib/components/link-list-item/link-list-item.js.map +1 -0
  179. package/lib/components/link-list-item/link-list-item.styles.js +4 -0
  180. package/lib/components/link-list-item/link-list-item.styles.js.map +1 -0
  181. package/lib/components/list/list.js +35 -32
  182. package/lib/components/list/list.js.map +1 -0
  183. package/lib/components/list/list.styles.js +4 -0
  184. package/lib/components/list/list.styles.js.map +1 -0
  185. package/lib/components/list-item/list-item.js +25 -21
  186. package/lib/components/list-item/list-item.js.map +1 -0
  187. package/lib/components/list-item/list-item.styles.js +4 -0
  188. package/lib/components/list-item/list-item.styles.js.map +1 -0
  189. package/lib/components/loading-spinner/loading-spinner.js +126 -71
  190. package/lib/components/loading-spinner/loading-spinner.js.map +1 -0
  191. package/lib/components/loading-spinner/loading-spinner.styles.js +4 -0
  192. package/lib/components/loading-spinner/loading-spinner.styles.js.map +1 -0
  193. package/lib/components/logo/logo.js +28 -25
  194. package/lib/components/logo/logo.js.map +1 -0
  195. package/lib/components/logo/logo.styles.js +4 -0
  196. package/lib/components/logo/logo.styles.js.map +1 -0
  197. package/lib/components/main/main.js +29 -26
  198. package/lib/components/main/main.js.map +1 -0
  199. package/lib/components/main/main.styles.js +4 -0
  200. package/lib/components/main/main.styles.js.map +1 -0
  201. package/lib/components/modal/modal.js +174 -125
  202. package/lib/components/modal/modal.js.map +1 -0
  203. package/lib/components/modal/modal.styles.js +4 -0
  204. package/lib/components/modal/modal.styles.js.map +1 -0
  205. package/lib/components/multi-select/multi-select.js +300 -211
  206. package/lib/components/multi-select/multi-select.js.map +1 -0
  207. package/lib/components/multi-select/multi-select.styles.js +4 -0
  208. package/lib/components/multi-select/multi-select.styles.js.map +1 -0
  209. package/lib/components/nav-container/nav-container.js +19 -16
  210. package/lib/components/nav-container/nav-container.js.map +1 -0
  211. package/lib/components/nav-container/nav-container.styles.js +4 -0
  212. package/lib/components/nav-container/nav-container.styles.js.map +1 -0
  213. package/lib/components/page-header/page-header.js +36 -29
  214. package/lib/components/page-header/page-header.js.map +1 -0
  215. package/lib/components/page-header/page-header.styles.js +4 -0
  216. package/lib/components/page-header/page-header.styles.js.map +1 -0
  217. package/lib/components/pagination/page-counter/page-counter.js +67 -0
  218. package/lib/components/pagination/page-counter/page-counter.js.map +1 -0
  219. package/lib/components/pagination/page-counter/page-counter.styles.js +4 -0
  220. package/lib/components/pagination/page-counter/page-counter.styles.js.map +1 -0
  221. package/lib/components/pagination/pagination.js +282 -237
  222. package/lib/components/pagination/pagination.js.map +1 -0
  223. package/lib/components/pagination/pagination.styles.js +4 -0
  224. package/lib/components/pagination/pagination.styles.js.map +1 -0
  225. package/lib/components/percent-bar/percent-bar.js +56 -48
  226. package/lib/components/percent-bar/percent-bar.js.map +1 -0
  227. package/lib/components/percent-bar/percent-bar.styles.js +4 -0
  228. package/lib/components/percent-bar/percent-bar.styles.js.map +1 -0
  229. package/lib/components/popover/popover.js +304 -179
  230. package/lib/components/popover/popover.js.map +1 -0
  231. package/lib/components/popover/popover.styles.js +4 -0
  232. package/lib/components/popover/popover.styles.js.map +1 -0
  233. package/lib/components/primary-nav/primary-nav.js +44 -37
  234. package/lib/components/primary-nav/primary-nav.js.map +1 -0
  235. package/lib/components/primary-nav/primary-nav.styles.js +4 -0
  236. package/lib/components/primary-nav/primary-nav.styles.js.map +1 -0
  237. package/lib/components/primary-nav-item/primary-nav-item.js +151 -113
  238. package/lib/components/primary-nav-item/primary-nav-item.js.map +1 -0
  239. package/lib/components/primary-nav-item/primary-nav-item.styles.js +4 -0
  240. package/lib/components/primary-nav-item/primary-nav-item.styles.js.map +1 -0
  241. package/lib/components/progress-meter/progress-meter.js +74 -57
  242. package/lib/components/progress-meter/progress-meter.js.map +1 -0
  243. package/lib/components/progress-meter/progress-meter.styles.js +4 -0
  244. package/lib/components/progress-meter/progress-meter.styles.js.map +1 -0
  245. package/lib/components/progress-steps/progress-steps.js +19 -0
  246. package/lib/components/progress-steps/progress-steps.js.map +1 -0
  247. package/lib/components/progress-steps/progress-steps.styles.js +4 -0
  248. package/lib/components/progress-steps/progress-steps.styles.js.map +1 -0
  249. package/lib/components/progress-steps-item/progress-steps-item.js +52 -40
  250. package/lib/components/progress-steps-item/progress-steps-item.js.map +1 -0
  251. package/lib/components/progress-steps-item/progress-steps-item.styles.js +4 -0
  252. package/lib/components/progress-steps-item/progress-steps-item.styles.js.map +1 -0
  253. package/lib/components/radio-field/radio-field.js +59 -49
  254. package/lib/components/radio-field/radio-field.js.map +1 -0
  255. package/lib/components/radio-field/radio-field.styles.js +4 -0
  256. package/lib/components/radio-field/radio-field.styles.js.map +1 -0
  257. package/lib/components/radio-field-item/radio-field-item.js +222 -179
  258. package/lib/components/radio-field-item/radio-field-item.js.map +1 -0
  259. package/lib/components/radio-field-item/radio-field-item.styles.js +4 -0
  260. package/lib/components/radio-field-item/radio-field-item.styles.js.map +1 -0
  261. package/lib/components/remove-tag/remove-tag.js +89 -60
  262. package/lib/components/remove-tag/remove-tag.js.map +1 -0
  263. package/lib/components/remove-tag/remove-tag.styles.js +4 -0
  264. package/lib/components/remove-tag/remove-tag.styles.js.map +1 -0
  265. package/lib/components/section/section.js +46 -27
  266. package/lib/components/section/section.js.map +1 -0
  267. package/lib/components/section/section.styles.js +4 -0
  268. package/lib/components/section/section.styles.js.map +1 -0
  269. package/lib/components/select/select.js +243 -158
  270. package/lib/components/select/select.js.map +1 -0
  271. package/lib/components/select/select.styles.js +4 -0
  272. package/lib/components/select/select.styles.js.map +1 -0
  273. package/lib/components/select-tile/select-tile-checkbox-controller.js +60 -0
  274. package/lib/components/select-tile/select-tile-checkbox-controller.js.map +1 -0
  275. package/lib/components/select-tile/select-tile-radio-controller.js +167 -0
  276. package/lib/components/select-tile/select-tile-radio-controller.js.map +1 -0
  277. package/lib/components/select-tile/select-tile.js +228 -223
  278. package/lib/components/select-tile/select-tile.js.map +1 -0
  279. package/lib/components/select-tile/select-tile.styles.js +4 -0
  280. package/lib/components/select-tile/select-tile.styles.js.map +1 -0
  281. package/lib/components/select-tile-list/select-tile-list.js +76 -62
  282. package/lib/components/select-tile-list/select-tile-list.js.map +1 -0
  283. package/lib/components/select-tile-list/select-tile-list.styles.js +4 -0
  284. package/lib/components/select-tile-list/select-tile-list.styles.js.map +1 -0
  285. package/lib/components/skeleton-loader/skeleton-loader.js +68 -39
  286. package/lib/components/skeleton-loader/skeleton-loader.js.map +1 -0
  287. package/lib/components/skeleton-loader/skeleton-loader.styles.js +4 -0
  288. package/lib/components/skeleton-loader/skeleton-loader.styles.js.map +1 -0
  289. package/lib/components/split-button/split-button.js +51 -46
  290. package/lib/components/split-button/split-button.js.map +1 -0
  291. package/lib/components/split-button/split-button.styles.js +4 -0
  292. package/lib/components/split-button/split-button.styles.js.map +1 -0
  293. package/lib/components/submenu/submenu.js +19 -16
  294. package/lib/components/submenu/submenu.js.map +1 -0
  295. package/lib/components/submenu/submenu.styles.js +4 -0
  296. package/lib/components/submenu/submenu.styles.js.map +1 -0
  297. package/lib/components/submenu-item/submenu-item.js +32 -26
  298. package/lib/components/submenu-item/submenu-item.js.map +1 -0
  299. package/lib/components/submenu-item/submenu-item.styles.js +4 -0
  300. package/lib/components/submenu-item/submenu-item.styles.js.map +1 -0
  301. package/lib/components/tab/tab.js +74 -63
  302. package/lib/components/tab/tab.js.map +1 -0
  303. package/lib/components/tab/tab.styles.js +4 -0
  304. package/lib/components/tab/tab.styles.js.map +1 -0
  305. package/lib/components/tab-panel/tab-panel.js +49 -43
  306. package/lib/components/tab-panel/tab-panel.js.map +1 -0
  307. package/lib/components/tab-panel/tab-panel.styles.js +4 -0
  308. package/lib/components/tab-panel/tab-panel.styles.js.map +1 -0
  309. package/lib/components/table/table.js +46 -41
  310. package/lib/components/table/table.js.map +1 -0
  311. package/lib/components/table/table.styles.js +4 -0
  312. package/lib/components/table/table.styles.js.map +1 -0
  313. package/lib/components/table-body/table-body.js +20 -17
  314. package/lib/components/table-body/table-body.js.map +1 -0
  315. package/lib/components/table-body/table-body.styles.js +4 -0
  316. package/lib/components/table-body/table-body.styles.js.map +1 -0
  317. package/lib/components/table-cell/table-cell.js +39 -36
  318. package/lib/components/table-cell/table-cell.js.map +1 -0
  319. package/lib/components/table-cell/table-cell.styles.js +4 -0
  320. package/lib/components/table-cell/table-cell.styles.js.map +1 -0
  321. package/lib/components/table-header/table-header.js +20 -17
  322. package/lib/components/table-header/table-header.js.map +1 -0
  323. package/lib/components/table-header/table-header.styles.js +4 -0
  324. package/lib/components/table-header/table-header.styles.js.map +1 -0
  325. package/lib/components/table-header-cell/table-header-cell.js +35 -32
  326. package/lib/components/table-header-cell/table-header-cell.js.map +1 -0
  327. package/lib/components/table-header-cell/table-header-cell.styles.js +4 -0
  328. package/lib/components/table-header-cell/table-header-cell.styles.js.map +1 -0
  329. package/lib/components/table-object/table-object.js +21 -18
  330. package/lib/components/table-object/table-object.js.map +1 -0
  331. package/lib/components/table-object/table-object.styles.js +4 -0
  332. package/lib/components/table-object/table-object.styles.js.map +1 -0
  333. package/lib/components/table-row/table-row.js +76 -55
  334. package/lib/components/table-row/table-row.js.map +1 -0
  335. package/lib/components/table-row/table-row.styles.js +4 -0
  336. package/lib/components/table-row/table-row.styles.js.map +1 -0
  337. package/lib/components/tabs/tabs.js +452 -303
  338. package/lib/components/tabs/tabs.js.map +1 -0
  339. package/lib/components/tabs/tabs.styles.js +4 -0
  340. package/lib/components/tabs/tabs.styles.js.map +1 -0
  341. package/lib/components/tag/tag.js +236 -167
  342. package/lib/components/tag/tag.js.map +1 -0
  343. package/lib/components/tag/tag.styles.js +4 -0
  344. package/lib/components/tag/tag.styles.js.map +1 -0
  345. package/lib/components/tag-list/tag-list.js +40 -35
  346. package/lib/components/tag-list/tag-list.js.map +1 -0
  347. package/lib/components/tag-list/tag-list.styles.js +4 -0
  348. package/lib/components/tag-list/tag-list.styles.js.map +1 -0
  349. package/lib/components/tertiary-nav/tertiary-nav.js +40 -33
  350. package/lib/components/tertiary-nav/tertiary-nav.js.map +1 -0
  351. package/lib/components/tertiary-nav/tertiary-nav.styles.js +4 -0
  352. package/lib/components/tertiary-nav/tertiary-nav.styles.js.map +1 -0
  353. package/lib/components/tertiary-nav-item/tertiary-nav-item.js +52 -43
  354. package/lib/components/tertiary-nav-item/tertiary-nav-item.js.map +1 -0
  355. package/lib/components/tertiary-nav-item/tertiary-nav-item.styles.js +4 -0
  356. package/lib/components/tertiary-nav-item/tertiary-nav-item.styles.js.map +1 -0
  357. package/lib/components/text-link/text-link.js +45 -41
  358. package/lib/components/text-link/text-link.js.map +1 -0
  359. package/lib/components/text-link/text-link.styles.js +4 -0
  360. package/lib/components/text-link/text-link.styles.js.map +1 -0
  361. package/lib/components/text-passage/text-passage-light-dom.js +145 -0
  362. package/lib/components/text-passage/text-passage-light-dom.js.map +1 -0
  363. package/lib/components/text-passage/text-passage-light-dom.styles.js +4 -0
  364. package/lib/components/text-passage/text-passage-light-dom.styles.js.map +1 -0
  365. package/lib/components/text-passage/text-passage.js +72 -44
  366. package/lib/components/text-passage/text-passage.js.map +1 -0
  367. package/lib/components/text-passage/text-passage.styles.js +4 -0
  368. package/lib/components/text-passage/text-passage.styles.js.map +1 -0
  369. package/lib/components/tooltip/tooltip.js +278 -173
  370. package/lib/components/tooltip/tooltip.js.map +1 -0
  371. package/lib/components/tooltip/tooltip.styles.js +4 -0
  372. package/lib/components/tooltip/tooltip.styles.js.map +1 -0
  373. package/lib/components/utility-nav/utility-nav.js +40 -33
  374. package/lib/components/utility-nav/utility-nav.js.map +1 -0
  375. package/lib/components/utility-nav/utility-nav.styles.js +4 -0
  376. package/lib/components/utility-nav/utility-nav.styles.js.map +1 -0
  377. package/lib/components/utility-nav-item/utility-nav-item.js +70 -49
  378. package/lib/components/utility-nav-item/utility-nav-item.js.map +1 -0
  379. package/lib/components/utility-nav-item/utility-nav-item.styles.js +4 -0
  380. package/lib/components/utility-nav-item/utility-nav-item.styles.js.map +1 -0
  381. package/lib/design-tokens/brands/blue/css/tokens_blue.module.js +737 -0
  382. package/lib/design-tokens/brands/blue/css/tokens_blue.module.js.map +1 -0
  383. package/lib/design-tokens/brands/bolt/tokens_bolt.theme.js +756 -0
  384. package/lib/design-tokens/brands/bolt/tokens_bolt.theme.js.map +1 -0
  385. package/lib/design-tokens/brands/cre8/css/tokens_cre8.module.js +771 -0
  386. package/lib/design-tokens/brands/cre8/css/tokens_cre8.module.js.map +1 -0
  387. package/lib/design-tokens/brands/cre8-a2ui/css/tokens_cre8-a2ui.module.js +772 -0
  388. package/lib/design-tokens/brands/cre8-a2ui/css/tokens_cre8-a2ui.module.js.map +1 -0
  389. package/lib/design-tokens/brands/cre8-legacy/css/tokens_cre8-legacy.module.js +737 -0
  390. package/lib/design-tokens/brands/cre8-legacy/css/tokens_cre8-legacy.module.js.map +1 -0
  391. package/lib/design-tokens/brands/femmecubator/css/tokens_femmecubator2.module.js +983 -0
  392. package/lib/design-tokens/brands/femmecubator/css/tokens_femmecubator2.module.js.map +1 -0
  393. package/lib/design-tokens/brands/legacy/css/tokens_legacy.module.js +737 -0
  394. package/lib/design-tokens/brands/legacy/css/tokens_legacy.module.js.map +1 -0
  395. package/lib/design-tokens/brands/marketing/css/tokens_marketing.module.js +736 -0
  396. package/lib/design-tokens/brands/marketing/css/tokens_marketing.module.js.map +1 -0
  397. package/lib/design-tokens/brands/minimalist/css/tokens_minimalist.module.js +737 -0
  398. package/lib/design-tokens/brands/minimalist/css/tokens_minimalist.module.js.map +1 -0
  399. package/lib/design-tokens/brands/prisma/tokens_prisma.module.js +771 -0
  400. package/lib/design-tokens/brands/prisma/tokens_prisma.module.js.map +1 -0
  401. package/lib/design-tokens/brands/starbucks/tokens.module.js +552 -0
  402. package/lib/design-tokens/brands/starbucks/tokens.module.js.map +1 -0
  403. package/lib/design-tokens/brands/starbucks/tokens_starbucks.module.js +776 -0
  404. package/lib/design-tokens/brands/starbucks/tokens_starbucks.module.js.map +1 -0
  405. package/lib/design-tokens/brands copy/blue/css/tokens_blue.module.js +253 -0
  406. package/lib/design-tokens/brands copy/blue/css/tokens_blue.module.js.map +1 -0
  407. package/lib/design-tokens/core/scss/theming/head.module.js +6 -0
  408. package/lib/design-tokens/core/scss/theming/head.module.js.map +1 -0
  409. package/lib/design-tokens/tokens_netflix.theme.js +806 -0
  410. package/lib/design-tokens/tokens_netflix.theme.js.map +1 -0
  411. package/lib/directives/if-truthy.js +24 -0
  412. package/lib/directives/if-truthy.js.map +1 -0
  413. package/lib/directives/spread.js +29 -0
  414. package/lib/directives/spread.js.map +1 -0
  415. package/lib/index.js +84 -168
  416. package/lib/index.js.map +1 -0
  417. package/lib/scripts/convert-scss-to-ts.js +25 -0
  418. package/lib/scripts/convert-scss-to-ts.js.map +1 -0
  419. package/lib/scripts/extract-tokens.js +120 -0
  420. package/lib/scripts/extract-tokens.js.map +1 -0
  421. package/lib/scripts/generate-react-wrappers.js +229 -0
  422. package/lib/scripts/generate-react-wrappers.js.map +1 -0
  423. package/lib/scripts/generateWesparkleThemes.js +52 -0
  424. package/lib/scripts/generateWesparkleThemes.js.map +1 -0
  425. package/lib/toBeAccessible.js +18 -0
  426. package/lib/toBeAccessible.js.map +1 -0
  427. package/lib/utilities/is-mobile.js +10 -0
  428. package/lib/utilities/is-mobile.js.map +1 -0
  429. package/lib/utilities/story-helpers.js +14 -0
  430. package/lib/utilities/story-helpers.js.map +1 -0
  431. package/lib/vite.config.cdn.js +85 -0
  432. package/lib/vite.config.cdn.js.map +1 -0
  433. package/lib/vite.config.js +156 -0
  434. package/lib/vite.config.js.map +1 -0
  435. package/package.json +8 -9
@@ -1,200 +1,243 @@
1
- import { css as p, html as m } from "lit";
2
- import { ifDefined as a } from "lit-html/directives/if-defined.js";
3
- import { property as d, query as u } from "lit/decorators.js";
4
- import { nanoid as f } from "nanoid";
5
- import { Cre8FormElement as b } from "../cre8-form-element.js";
6
- import "../field-note/field-note.js";
7
- const y = p`*,::slotted(*),*:before,*:after{box-sizing:border-box}:root{--size-base-unit: 0.5rem}[dir=rtl]{--rtlTranslateX: 50%;--rtlGradientToRight: 270deg;--rtlRotate45Inverse: -45deg}:host{--cre8-z-index-1: 1;--cre8-z-index-50: 50;--cre8-z-index-100: 100;--cre8-z-index-200: 200;--cre8-z-index-1030: 1030;--cre8-anim-fade-quick: 0.35s;--cre8-anim-ease: ease}@keyframes fadeIn{100%{opacity:1}}@keyframes slideIn{100%{transform:translateX(0)}}@keyframes slideInFwd{100%{width:272px;height:272px}}@keyframes slideOutRight{100%{width:272px;height:272px}}@keyframes slideUp{100%{transform:translateY(0)}}@media(width >= 481px){@keyframes slideInFwd{100%{width:417px;height:417px}}@keyframes slideOutRight{100%{width:417px;height:417px}}}@media(width >= 48rem){@keyframes slideInFwd{100%{width:330px;height:330px}}@keyframes slideOutRight{100%{width:330px;height:330px;transform:translateX(calc(100vw - 45px))}}}@media(width >= 60rem){@keyframes slideInFwd{100%{width:460px;height:460px}}@keyframes slideOutRight{100%{width:460px;height:460px;transform:translateX(calc(100vw - 45px))}}}@media(width >= 75rem){@keyframes slideInFwd{100%{width:592px;height:591px}}@keyframes slideOutRight{100%{width:592px;height:591px;transform:translateX(calc(100vw - 45px))}}}@media(width >= 87.5rem){@keyframes slideOutRight{100%{width:592px;height:591px;transform:translateX(calc(100vw - 120px))}}}@media(width >= 2200px){@keyframes slideOutRight{100%{width:592px;height:591px;transform:translateX(calc(100vw - 592px))}}}span.ripple{position:absolute;border-radius:50%;transform:scale(0);animation:ripple 600ms linear;background-color:var(--ripple-bg-color)}@keyframes ripple{to{transform:scale(4);opacity:1}}:root{--size-base-unit: 0.5rem}[dir=rtl]{--rtlTranslateX: 50%;--rtlGradientToRight: 270deg;--rtlRotate45Inverse: -45deg}:host{display:inline-flex}.cre8-c-radio-field-item{display:flex;position:relative;align-items:center;margin-bottom:0.5rem;min-height:1.5rem}:host(:last-child) .cre8-c-radio-field-item{margin-bottom:0}.cre8-c-radio-field-item__input{opacity:0;cursor:pointer;position:absolute;top:0;left:0;height:1.5rem;min-width:1.5rem;margin:0;z-index:1}.cre8-c-radio-field-item--disabled .cre8-c-radio-field-item__input{cursor:not-allowed}.cre8-c-radio-field-item__custom-radio{display:flex;position:absolute;top:0;left:0;height:1.5rem;width:1.5rem;cursor:pointer;align-items:center;justify-content:center;border-radius:var(--cre8-border-radius-round);border-width:var(--cre8-border-width-default);border-style:var(--cre8-border-style-default);background-color:var(--cre8-color-bg-default);border-color:var(--cre8-color-border-strong)}.cre8-c-radio-field-item__input:focus-visible+.cre8-c-radio-field-item__custom-radio{outline:var(--cre8-border-width-focus) solid var(--cre8-color-border-active-outline);outline-offset:0.125rem}.cre8-c-radio-field-item--error .cre8-c-radio-field-item__input:focus-visible+.cre8-c-radio-field-item__custom-radio{outline:var(--cre8-border-width-focus) solid var(--cre8-color-border-error);outline-offset:0.125rem;border-color:var(--cre8-color-border-error)}.cre8-c-radio-field-item--error .cre8-c-radio-field-item__custom-radio{border-color:var(--cre8-color-border-error)}.cre8-c-radio-field-item--disabled .cre8-c-radio-field-item__custom-radio{cursor:not-allowed;background-color:var(--cre8-color-bg-disabled);border-color:var(--cre8-color-border-disabled)}.cre8-c-radio-field-item__inner-circle{display:none;cursor:pointer;height:0.75rem;width:0.75rem;background:var(--cre8-color-content-brand);border-radius:var(--cre8-border-radius-round)}.cre8-c-radio-field-item--error .cre8-c-radio-field-item__inner-circle{background:var(--cre8-color-bg-error-strong)}.cre8-c-radio-field-item--disabled .cre8-c-radio-field-item__inner-circle{background:var(--cre8-color-content-disabled)}.cre8-c-radio-field-item__input:checked+.cre8-c-radio-field-item__custom-radio .cre8-c-radio-field-item__inner-circle{display:flex}.cre8-c-radio-field-item__label{margin-left:2rem;font-family:var(--cre8-typography-label-small-font-family);font-size:var(--cre8-typography-label-small-font-size);font-weight:var(--cre8-typography-label-small-font-weight);line-height:var(--cre8-typography-label-small-line-height);text-decoration:var(--cre8-typography-label-small-text-decoration);text-transform:var(--cre8-typography-label-small-text-transform)}`;
8
- var g = Object.defineProperty, t = (n, e, r, o) => {
9
- for (var l = void 0, s = n.length - 1, h; s >= 0; s--)
10
- (h = n[s]) && (l = h(e, r, l) || l);
11
- return l && g(e, r, l), l;
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
12
6
  };
13
- const c = class c extends b {
14
- constructor() {
15
- super(...arguments), this.type = "radio";
16
- }
17
- /**
18
- * Connected callback lifecycle
19
- * 1) Set the initial checked value to the checked property
20
- * 2) Auto-generate the fieldId if a user doesn't provided so that the form field is accessible
21
- * 3) If a field note exists, set the aria-describedby attribute to make sure the field note is read out
22
- */
23
- connectedCallback() {
24
- super.connectedCallback(), this.fieldId = this.fieldId || f(), this.fieldNote && (this.ariaDescribedBy = this.ariaDescribedBy || f());
25
- }
26
- /**
27
- * Reset the radio field
28
- */
29
- resetField() {
30
- this._internals.setFormValue(null);
31
- }
32
- /**
33
- * Reset the radio field items tab indeces
34
- */
35
- resetTabIndeces(e) {
36
- e.forEach((r) => {
37
- r.shadowRoot.querySelector(".cre8-c-radio-field-item__input").setAttribute("tabindex", "0");
38
- });
39
- }
40
- /**
41
- * Remove checked
42
- * 1) Remove checked property from all items and set tabindex to -1
43
- * 2) Reset the form field to not checked
44
- */
45
- removeChecked() {
46
- this.parentNode && this.parentNode.querySelectorAll("cre8-radio-field-item").forEach((r) => {
47
- r.checked = !1, r.shadowRoot.querySelector(".cre8-c-radio-field-item__input").setAttribute("tabindex", "-1"), r.resetField();
48
- });
49
- }
50
- /**
51
- * Reset form callback
52
- * 1) Remove the checked state from all radio elements
53
- * 2) Set the checked state to the initial checked state
54
- * 3) Set the radio field input checked attribute to the initial checked state
55
- */
56
- formResetCallback() {
57
- this.removeChecked(), this.checked = this.initialChecked, this.field.checked = this.initialChecked;
58
- }
59
- /**
60
- * access role when radio-field-item embedded in radio-field
61
- */
62
- _getRole() {
63
- return this.closest("cre8-radio-field") ? "listitem" : "";
64
- }
65
- /**
66
- * Toggle active state of primary nav item
67
- * 1) Remove isActive state from all sibling elements
68
- * 2) Toggle active state of element selected
69
- */
70
- _clickHandler() {
71
- this.removeChecked(), this.checked = !this.checked;
72
- const e = this.shadowRoot?.querySelector(".cre8-c-radio-field-item__input");
73
- return e && e.setAttribute("tabindex", "0"), this.checked ? this._internals.setFormValue(this.value || "on") : this._internals.setFormValue(null);
74
- }
75
- /**
76
- * Handle sibling element updates during handleKeyDown function
77
- * 1) Prevent default keyboard functionality to disable scroll with up/down keys
78
- * 2) Trigger removeChecked
79
- * 3) Focus sibling shadowRoot element
80
- * 4) Click sibling shadowRoot element
81
- * 5) Set sibling element `tabindex` to `0`
82
- * 6) Set sibling element `checked` value
83
- */
84
- _updateSibling(e, r, o) {
85
- e.preventDefault(), this.removeChecked(), o.focus(), o.click(), o.setAttribute("tabindex", "0"), r.setAttribute("checked", "");
86
- }
87
- /**
88
- * Handle keydown
89
- * 1) If left or up arrow key is struck and radio field item exists before current item,
90
- * remove checked from all items and add it to the next item
91
- * 2) If right or down arrow key is struck and radio field item exists after current item,
92
- * remove checked from all items and add checked to the next item. Focus on this item
93
- * and set tabindex for when focusing out of radio field and back onto checked item.
94
- * 3) If the element is in focused, then for event emission the current
95
- * focues element should be clicked to emit event.
96
- * 4) If the Tab key is pressed, and none of the items are checked
97
- * then jump away from field set to the next tabbable item
98
- */
99
- handleKeyDown(e) {
100
- if (e.code === "ArrowLeft" || e.code === "ArrowUp") {
101
- const r = this.previousElementSibling, o = r?.shadowRoot?.querySelector(
102
- ".cre8-c-radio-field-item__input:not([disabled])"
103
- );
104
- o && this._updateSibling(e, r, o);
105
- } else if (e.code === "ArrowRight" || e.code === "ArrowDown") {
106
- const r = this.nextElementSibling, o = r?.shadowRoot?.querySelector(
107
- ".cre8-c-radio-field-item__input:not([disabled])"
108
- );
109
- o && this._updateSibling(e, r, o);
110
- } else if (e.code === "Tab" && !this.checked) {
111
- const r = this.parentNode.querySelectorAll("cre8-radio-field-item");
112
- r.forEach((o) => {
113
- o.shadowRoot.querySelector(".cre8-c-radio-field-item__input").setAttribute("tabindex", "-1");
114
- }), setTimeout(this.resetTabIndeces, 100, r);
7
+ import { html, } from 'lit';
8
+ import { ifDefined } from 'lit-html/directives/if-defined.js';
9
+ import { property, query } from 'lit/decorators.js';
10
+ import { nanoid } from 'nanoid';
11
+ import { Cre8FormElement } from '../cre8-form-element';
12
+ import '../field-note/field-note';
13
+ import styles from './radio-field-item.styles.js';
14
+ /**
15
+ * A Radio Field Item adds a radio button to a Radio Field. Radio buttons let a user choose only one of several
16
+ * options. Do not use a single radio button, because once selected, it cannot be de-selected. If the user can only
17
+ * choose one, none or many options, use Checkbox instead.
18
+ */
19
+ export class Cre8RadioFieldItem extends Cre8FormElement {
20
+ constructor() {
21
+ super(...arguments);
22
+ this.type = 'radio';
115
23
  }
116
- }
117
- render() {
118
- const e = this.componentClassNames("cre8-c-radio-field-item", {
119
- "cre8-c-radio-field-item--error": this.isError,
120
- "cre8-c-radio-field-item--success": this.isSuccess,
121
- "cre8-c-radio-field-item--disabled": this.disabled
122
- }), r = this.checked === !0 || this.initialChecked === !0;
123
- return m`
124
- <div role=${a(this._getRole())} class="${e}" @keydown=${this.handleKeyDown}>
24
+ /**
25
+ * Connected callback lifecycle
26
+ * 1) Set the initial checked value to the checked property
27
+ * 2) Auto-generate the fieldId if a user doesn't provided so that the form field is accessible
28
+ * 3) If a field note exists, set the aria-describedby attribute to make sure the field note is read out
29
+ */
30
+ connectedCallback() {
31
+ super.connectedCallback();
32
+ this.fieldId = this.fieldId || nanoid(); /* 2 */
33
+ if (this.fieldNote) {
34
+ this.ariaDescribedBy = this.ariaDescribedBy || nanoid(); /* 3 */
35
+ }
36
+ }
37
+ /**
38
+ * Reset the radio field
39
+ */
40
+ resetField() {
41
+ this._internals.setFormValue(null);
42
+ }
43
+ /**
44
+ * Reset the radio field items tab indeces
45
+ */
46
+ resetTabIndeces(radioFieldItems) {
47
+ radioFieldItems.forEach((element) => {
48
+ element.shadowRoot.querySelector('.cre8-c-radio-field-item__input').setAttribute('tabindex', '0');
49
+ });
50
+ }
51
+ /**
52
+ * Remove checked
53
+ * 1) Remove checked property from all items and set tabindex to -1
54
+ * 2) Reset the form field to not checked
55
+ */
56
+ removeChecked() {
57
+ if (this.parentNode) {
58
+ /* 1 */
59
+ const radioFieldItems = this.parentNode.querySelectorAll('cre8-radio-field-item');
60
+ radioFieldItems.forEach((element) => {
61
+ element.checked = false;
62
+ element.shadowRoot.querySelector('.cre8-c-radio-field-item__input').setAttribute('tabindex', '-1');
63
+ element.resetField(); /* 2 */
64
+ });
65
+ }
66
+ }
67
+ /**
68
+ * Reset form callback
69
+ * 1) Remove the checked state from all radio elements
70
+ * 2) Set the checked state to the initial checked state
71
+ * 3) Set the radio field input checked attribute to the initial checked state
72
+ */
73
+ formResetCallback() {
74
+ this.removeChecked();
75
+ this.checked = this.initialChecked;
76
+ this.field.checked = this.initialChecked;
77
+ }
78
+ /**
79
+ * access role when radio-field-item embedded in radio-field
80
+ */
81
+ _getRole() {
82
+ const radioFieldContainer = this.closest('cre8-radio-field');
83
+ if (radioFieldContainer) {
84
+ return 'listitem';
85
+ }
86
+ return '';
87
+ }
88
+ /**
89
+ * Toggle active state of primary nav item
90
+ * 1) Remove isActive state from all sibling elements
91
+ * 2) Toggle active state of element selected
92
+ */
93
+ _clickHandler() {
94
+ this.removeChecked();
95
+ this.checked = !this.checked; /* 2 */
96
+ const radioInput = this.shadowRoot?.querySelector('.cre8-c-radio-field-item__input');
97
+ if (radioInput) {
98
+ radioInput.setAttribute('tabindex', '0');
99
+ }
100
+ return this.checked ? this._internals.setFormValue(this.value || 'on') : this._internals.setFormValue(null);
101
+ }
102
+ /**
103
+ * Handle sibling element updates during handleKeyDown function
104
+ * 1) Prevent default keyboard functionality to disable scroll with up/down keys
105
+ * 2) Trigger removeChecked
106
+ * 3) Focus sibling shadowRoot element
107
+ * 4) Click sibling shadowRoot element
108
+ * 5) Set sibling element `tabindex` to `0`
109
+ * 6) Set sibling element `checked` value
110
+ */
111
+ _updateSibling(event, sibling, element) {
112
+ event.preventDefault();
113
+ this.removeChecked();
114
+ element.focus();
115
+ element.click();
116
+ element.setAttribute('tabindex', '0');
117
+ sibling.setAttribute('checked', '');
118
+ }
119
+ /**
120
+ * Handle keydown
121
+ * 1) If left or up arrow key is struck and radio field item exists before current item,
122
+ * remove checked from all items and add it to the next item
123
+ * 2) If right or down arrow key is struck and radio field item exists after current item,
124
+ * remove checked from all items and add checked to the next item. Focus on this item
125
+ * and set tabindex for when focusing out of radio field and back onto checked item.
126
+ * 3) If the element is in focused, then for event emission the current
127
+ * focues element should be clicked to emit event.
128
+ * 4) If the Tab key is pressed, and none of the items are checked
129
+ * then jump away from field set to the next tabbable item
130
+ */
131
+ handleKeyDown(e) {
132
+ if (e.code === 'ArrowLeft' || e.code === 'ArrowUp') {
133
+ /* 1 */
134
+ const previous = this.previousElementSibling;
135
+ const previousElement = previous?.shadowRoot?.querySelector('.cre8-c-radio-field-item__input:not([disabled])');
136
+ if (previousElement) {
137
+ this._updateSibling(e, previous, previousElement);
138
+ }
139
+ }
140
+ else if (e.code === 'ArrowRight' || e.code === 'ArrowDown') {
141
+ /* 2 */
142
+ const next = this.nextElementSibling;
143
+ const nextElement = next?.shadowRoot?.querySelector('.cre8-c-radio-field-item__input:not([disabled])');
144
+ if (nextElement) {
145
+ this._updateSibling(e, next, nextElement);
146
+ }
147
+ }
148
+ else if (e.code === 'Tab' && !this.checked) {
149
+ const radioFieldItems = this.parentNode.querySelectorAll('cre8-radio-field-item');
150
+ radioFieldItems.forEach((element) => {
151
+ element.shadowRoot.querySelector('.cre8-c-radio-field-item__input').setAttribute('tabindex', '-1');
152
+ });
153
+ // After making tabbing away from the feildset,
154
+ // reset the items to be tabbable again so the user can come back to the fieldset
155
+ setTimeout(this.resetTabIndeces, 100, radioFieldItems);
156
+ }
157
+ }
158
+ render() {
159
+ const componentClassNames = this.componentClassNames('cre8-c-radio-field-item', {
160
+ 'cre8-c-radio-field-item--error': this.isError,
161
+ 'cre8-c-radio-field-item--success': this.isSuccess,
162
+ 'cre8-c-radio-field-item--disabled': this.disabled,
163
+ });
164
+ const isChecked = this.checked === true || this.initialChecked === true;
165
+ return html `
166
+ <div role=${ifDefined(this._getRole())} class="${componentClassNames}" @keydown=${this.handleKeyDown}>
125
167
  <input
126
168
  class="cre8-c-radio-field-item__input"
127
169
  type="radio"
128
170
  @input=${this._clickHandler}
129
171
  id=${this.fieldId}
130
- aria-describedby="${a(this.ariaDescribedBy)}"
131
- required=${a(this.required)}
132
- aria-invalid=${this.required ? !!this.isError : a(this.isError)}
172
+ aria-describedby="${ifDefined(this.ariaDescribedBy)}"
173
+ required=${ifDefined(this.required)}
174
+ aria-invalid=${this.required ? !!this.isError : ifDefined(this.isError)}
133
175
  name=${this.name}
134
176
  .value=${this.value}
135
- disabled="${a(this.disabled)}"
136
- .checked="${r}"
177
+ disabled="${ifDefined(this.disabled)}"
178
+ .checked="${isChecked}"
137
179
  />
138
180
  <span class="cre8-c-radio-field-item__custom-radio">
139
181
  <div class="cre8-c-radio-field-item__inner-circle"></div>
140
182
  </span>
141
183
  <label class="cre8-c-radio-field-item__label" for=${this.fieldId}>${this.label}</label>
142
184
  </div>
143
- ${this.fieldNote ? m`<cre8-field-note
185
+ ${this.fieldNote
186
+ ? html `<cre8-field-note
144
187
  ?inverted=${this.fieldNoteKnockout}
145
- id=${a(this.ariaDescribedBy)}
146
- iconName=${a(this.fieldNoteIconName)}
188
+ id=${ifDefined(this.ariaDescribedBy)}
189
+ iconName=${ifDefined(this.fieldNoteIconName)}
147
190
  ?isSuccess=${this.isSuccess}
148
191
  ?isError=${this.isError}
149
192
  >
150
193
  ${this.fieldNote}
151
- </cre8-field-note>` : ""}
194
+ </cre8-field-note>`
195
+ : ''}
152
196
  `;
153
- }
154
- };
155
- c.styles = [y];
156
- let i = c;
157
- t([
158
- d()
159
- ], i.prototype, "ariaDescribedBy");
160
- t([
161
- d({ type: Boolean, reflect: !0 })
162
- ], i.prototype, "checked");
163
- t([
164
- d({ type: Boolean, reflect: !0 })
165
- ], i.prototype, "disabled");
166
- t([
167
- u("input")
168
- ], i.prototype, "field");
169
- t([
170
- d()
171
- ], i.prototype, "fieldId");
172
- t([
173
- d()
174
- ], i.prototype, "fieldNote");
175
- t([
176
- d()
177
- ], i.prototype, "fieldNoteIconName");
178
- t([
179
- d({ type: Boolean, reflect: !0 })
180
- ], i.prototype, "fieldNoteKnockout");
181
- t([
182
- d({ type: Boolean, reflect: !0 })
183
- ], i.prototype, "fieldNoteIsError");
184
- t([
185
- d({ type: Boolean, reflect: !0 })
186
- ], i.prototype, "isError");
187
- t([
188
- d({ type: Boolean, reflect: !0 })
189
- ], i.prototype, "isSuccess");
190
- t([
191
- d()
192
- ], i.prototype, "label");
193
- t([
194
- d({ type: Boolean, reflect: !0 })
195
- ], i.prototype, "required");
196
- customElements.get("cre8-radio-field-item") === void 0 && customElements.define("cre8-radio-field-item", i);
197
- export {
198
- i as Cre8RadioFieldItem,
199
- i as default
200
- };
197
+ }
198
+ }
199
+ Cre8RadioFieldItem.styles = [styles];
200
+ __decorate([
201
+ property()
202
+ ], Cre8RadioFieldItem.prototype, "ariaDescribedBy", void 0);
203
+ __decorate([
204
+ property({ type: Boolean, reflect: true })
205
+ ], Cre8RadioFieldItem.prototype, "checked", void 0);
206
+ __decorate([
207
+ property({ type: Boolean, reflect: true })
208
+ ], Cre8RadioFieldItem.prototype, "disabled", void 0);
209
+ __decorate([
210
+ query('input')
211
+ ], Cre8RadioFieldItem.prototype, "field", void 0);
212
+ __decorate([
213
+ property()
214
+ ], Cre8RadioFieldItem.prototype, "fieldId", void 0);
215
+ __decorate([
216
+ property()
217
+ ], Cre8RadioFieldItem.prototype, "fieldNote", void 0);
218
+ __decorate([
219
+ property()
220
+ ], Cre8RadioFieldItem.prototype, "fieldNoteIconName", void 0);
221
+ __decorate([
222
+ property({ type: Boolean, reflect: true })
223
+ ], Cre8RadioFieldItem.prototype, "fieldNoteKnockout", void 0);
224
+ __decorate([
225
+ property({ type: Boolean, reflect: true })
226
+ ], Cre8RadioFieldItem.prototype, "fieldNoteIsError", void 0);
227
+ __decorate([
228
+ property({ type: Boolean, reflect: true })
229
+ ], Cre8RadioFieldItem.prototype, "isError", void 0);
230
+ __decorate([
231
+ property({ type: Boolean, reflect: true })
232
+ ], Cre8RadioFieldItem.prototype, "isSuccess", void 0);
233
+ __decorate([
234
+ property()
235
+ ], Cre8RadioFieldItem.prototype, "label", void 0);
236
+ __decorate([
237
+ property({ type: Boolean, reflect: true })
238
+ ], Cre8RadioFieldItem.prototype, "required", void 0);
239
+ if (customElements.get('cre8-radio-field-item') === undefined) {
240
+ customElements.define('cre8-radio-field-item', Cre8RadioFieldItem);
241
+ }
242
+ export default Cre8RadioFieldItem;
243
+ //# sourceMappingURL=radio-field-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radio-field-item.js","sourceRoot":"","sources":["../../../components/radio-field-item/radio-field-item.ts"],"names":[],"mappings":"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","sourcesContent":["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 * 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"]}
@@ -0,0 +1,4 @@
1
+ import { css } from 'lit';
2
+ const styles = css `*,::slotted(*),*:before,*:after{box-sizing:border-box}:root{--size-base-unit: 0.5rem}[dir=rtl]{--rtlTranslateX: 50%;--rtlGradientToRight: 270deg;--rtlRotate45Inverse: -45deg}:host{--cre8-z-index-1: 1;--cre8-z-index-50: 50;--cre8-z-index-100: 100;--cre8-z-index-200: 200;--cre8-z-index-1030: 1030;--cre8-anim-fade-quick: 0.35s;--cre8-anim-ease: ease}@keyframes fadeIn{100%{opacity:1}}@keyframes slideIn{100%{transform:translateX(0)}}@keyframes slideInFwd{100%{width:272px;height:272px}}@keyframes slideOutRight{100%{width:272px;height:272px}}@keyframes slideUp{100%{transform:translateY(0)}}@media(width >= 481px){@keyframes slideInFwd{100%{width:417px;height:417px}}@keyframes slideOutRight{100%{width:417px;height:417px}}}@media(width >= 48rem){@keyframes slideInFwd{100%{width:330px;height:330px}}@keyframes slideOutRight{100%{width:330px;height:330px;transform:translateX(calc(100vw - 45px))}}}@media(width >= 60rem){@keyframes slideInFwd{100%{width:460px;height:460px}}@keyframes slideOutRight{100%{width:460px;height:460px;transform:translateX(calc(100vw - 45px))}}}@media(width >= 75rem){@keyframes slideInFwd{100%{width:592px;height:591px}}@keyframes slideOutRight{100%{width:592px;height:591px;transform:translateX(calc(100vw - 45px))}}}@media(width >= 87.5rem){@keyframes slideOutRight{100%{width:592px;height:591px;transform:translateX(calc(100vw - 120px))}}}@media(width >= 2200px){@keyframes slideOutRight{100%{width:592px;height:591px;transform:translateX(calc(100vw - 592px))}}}span.ripple{position:absolute;border-radius:50%;transform:scale(0);animation:ripple 600ms linear;background-color:var(--ripple-bg-color)}@keyframes ripple{to{transform:scale(4);opacity:1}}:root{--size-base-unit: 0.5rem}[dir=rtl]{--rtlTranslateX: 50%;--rtlGradientToRight: 270deg;--rtlRotate45Inverse: -45deg}:host{display:inline-flex}.cre8-c-radio-field-item{display:flex;position:relative;align-items:center;margin-bottom:0.5rem;min-height:1.5rem}:host(:last-child) .cre8-c-radio-field-item{margin-bottom:0}.cre8-c-radio-field-item__input{opacity:0;cursor:pointer;position:absolute;top:0;left:0;height:1.5rem;min-width:1.5rem;margin:0;z-index:1}.cre8-c-radio-field-item--disabled .cre8-c-radio-field-item__input{cursor:not-allowed}.cre8-c-radio-field-item__custom-radio{display:flex;position:absolute;top:0;left:0;height:1.5rem;width:1.5rem;cursor:pointer;align-items:center;justify-content:center;border-radius:var(--cre8-border-radius-round);border-width:var(--cre8-border-width-default);border-style:var(--cre8-border-style-default);background-color:var(--cre8-color-bg-default);border-color:var(--cre8-color-border-strong)}.cre8-c-radio-field-item__input:focus-visible+.cre8-c-radio-field-item__custom-radio{outline:var(--cre8-border-width-focus) solid var(--cre8-color-border-active-outline);outline-offset:0.125rem}.cre8-c-radio-field-item--error .cre8-c-radio-field-item__input:focus-visible+.cre8-c-radio-field-item__custom-radio{outline:var(--cre8-border-width-focus) solid var(--cre8-color-border-error);outline-offset:0.125rem;border-color:var(--cre8-color-border-error)}.cre8-c-radio-field-item--error .cre8-c-radio-field-item__custom-radio{border-color:var(--cre8-color-border-error)}.cre8-c-radio-field-item--disabled .cre8-c-radio-field-item__custom-radio{cursor:not-allowed;background-color:var(--cre8-color-bg-disabled);border-color:var(--cre8-color-border-disabled)}.cre8-c-radio-field-item__inner-circle{display:none;cursor:pointer;height:0.75rem;width:0.75rem;background:var(--cre8-color-content-brand);border-radius:var(--cre8-border-radius-round)}.cre8-c-radio-field-item--error .cre8-c-radio-field-item__inner-circle{background:var(--cre8-color-bg-error-strong)}.cre8-c-radio-field-item--disabled .cre8-c-radio-field-item__inner-circle{background:var(--cre8-color-content-disabled)}.cre8-c-radio-field-item__input:checked+.cre8-c-radio-field-item__custom-radio .cre8-c-radio-field-item__inner-circle{display:flex}.cre8-c-radio-field-item__label{margin-left:2rem;font-family:var(--cre8-typography-label-small-font-family);font-size:var(--cre8-typography-label-small-font-size);font-weight:var(--cre8-typography-label-small-font-weight);line-height:var(--cre8-typography-label-small-line-height);text-decoration:var(--cre8-typography-label-small-text-decoration);text-transform:var(--cre8-typography-label-small-text-transform)}`;
3
+ export default styles;
4
+ //# sourceMappingURL=radio-field-item.styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radio-field-item.styles.js","sourceRoot":"","sources":["../../../components/radio-field-item/radio-field-item.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,MAAM,GAAG,GAAG,CAAA,wvIAAwvI,CAAC;AAC3wI,eAAe,MAAM,CAAC","sourcesContent":["import { css } from 'lit';\nconst styles = css`*,::slotted(*),*:before,*:after{box-sizing:border-box}:root{--size-base-unit: 0.5rem}[dir=rtl]{--rtlTranslateX: 50%;--rtlGradientToRight: 270deg;--rtlRotate45Inverse: -45deg}:host{--cre8-z-index-1: 1;--cre8-z-index-50: 50;--cre8-z-index-100: 100;--cre8-z-index-200: 200;--cre8-z-index-1030: 1030;--cre8-anim-fade-quick: 0.35s;--cre8-anim-ease: ease}@keyframes fadeIn{100%{opacity:1}}@keyframes slideIn{100%{transform:translateX(0)}}@keyframes slideInFwd{100%{width:272px;height:272px}}@keyframes slideOutRight{100%{width:272px;height:272px}}@keyframes slideUp{100%{transform:translateY(0)}}@media(width >= 481px){@keyframes slideInFwd{100%{width:417px;height:417px}}@keyframes slideOutRight{100%{width:417px;height:417px}}}@media(width >= 48rem){@keyframes slideInFwd{100%{width:330px;height:330px}}@keyframes slideOutRight{100%{width:330px;height:330px;transform:translateX(calc(100vw - 45px))}}}@media(width >= 60rem){@keyframes slideInFwd{100%{width:460px;height:460px}}@keyframes slideOutRight{100%{width:460px;height:460px;transform:translateX(calc(100vw - 45px))}}}@media(width >= 75rem){@keyframes slideInFwd{100%{width:592px;height:591px}}@keyframes slideOutRight{100%{width:592px;height:591px;transform:translateX(calc(100vw - 45px))}}}@media(width >= 87.5rem){@keyframes slideOutRight{100%{width:592px;height:591px;transform:translateX(calc(100vw - 120px))}}}@media(width >= 2200px){@keyframes slideOutRight{100%{width:592px;height:591px;transform:translateX(calc(100vw - 592px))}}}span.ripple{position:absolute;border-radius:50%;transform:scale(0);animation:ripple 600ms linear;background-color:var(--ripple-bg-color)}@keyframes ripple{to{transform:scale(4);opacity:1}}:root{--size-base-unit: 0.5rem}[dir=rtl]{--rtlTranslateX: 50%;--rtlGradientToRight: 270deg;--rtlRotate45Inverse: -45deg}:host{display:inline-flex}.cre8-c-radio-field-item{display:flex;position:relative;align-items:center;margin-bottom:0.5rem;min-height:1.5rem}:host(:last-child) .cre8-c-radio-field-item{margin-bottom:0}.cre8-c-radio-field-item__input{opacity:0;cursor:pointer;position:absolute;top:0;left:0;height:1.5rem;min-width:1.5rem;margin:0;z-index:1}.cre8-c-radio-field-item--disabled .cre8-c-radio-field-item__input{cursor:not-allowed}.cre8-c-radio-field-item__custom-radio{display:flex;position:absolute;top:0;left:0;height:1.5rem;width:1.5rem;cursor:pointer;align-items:center;justify-content:center;border-radius:var(--cre8-border-radius-round);border-width:var(--cre8-border-width-default);border-style:var(--cre8-border-style-default);background-color:var(--cre8-color-bg-default);border-color:var(--cre8-color-border-strong)}.cre8-c-radio-field-item__input:focus-visible+.cre8-c-radio-field-item__custom-radio{outline:var(--cre8-border-width-focus) solid var(--cre8-color-border-active-outline);outline-offset:0.125rem}.cre8-c-radio-field-item--error .cre8-c-radio-field-item__input:focus-visible+.cre8-c-radio-field-item__custom-radio{outline:var(--cre8-border-width-focus) solid var(--cre8-color-border-error);outline-offset:0.125rem;border-color:var(--cre8-color-border-error)}.cre8-c-radio-field-item--error .cre8-c-radio-field-item__custom-radio{border-color:var(--cre8-color-border-error)}.cre8-c-radio-field-item--disabled .cre8-c-radio-field-item__custom-radio{cursor:not-allowed;background-color:var(--cre8-color-bg-disabled);border-color:var(--cre8-color-border-disabled)}.cre8-c-radio-field-item__inner-circle{display:none;cursor:pointer;height:0.75rem;width:0.75rem;background:var(--cre8-color-content-brand);border-radius:var(--cre8-border-radius-round)}.cre8-c-radio-field-item--error .cre8-c-radio-field-item__inner-circle{background:var(--cre8-color-bg-error-strong)}.cre8-c-radio-field-item--disabled .cre8-c-radio-field-item__inner-circle{background:var(--cre8-color-content-disabled)}.cre8-c-radio-field-item__input:checked+.cre8-c-radio-field-item__custom-radio .cre8-c-radio-field-item__inner-circle{display:flex}.cre8-c-radio-field-item__label{margin-left:2rem;font-family:var(--cre8-typography-label-small-font-family);font-size:var(--cre8-typography-label-small-font-size);font-weight:var(--cre8-typography-label-small-font-weight);line-height:var(--cre8-typography-label-small-line-height);text-decoration:var(--cre8-typography-label-small-text-decoration);text-transform:var(--cre8-typography-label-small-text-transform)}`;\nexport default styles;\n"]}