@haiilo/catalyst 0.5.0 → 0.5.4

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 (297) hide show
  1. package/README.md +2 -0
  2. package/package.json +5 -6
  3. package/dist/catalyst/assets/fonts/AzeretMono-Regular.woff2 +0 -0
  4. package/dist/catalyst/assets/fonts/DMSans-Bold.woff2 +0 -0
  5. package/dist/catalyst/assets/fonts/DMSans-BoldItalic.woff2 +0 -0
  6. package/dist/catalyst/assets/fonts/DMSans-Italic.woff2 +0 -0
  7. package/dist/catalyst/assets/fonts/DMSans-Medium.woff2 +0 -0
  8. package/dist/catalyst/assets/fonts/DMSans-MediumItalic.woff2 +0 -0
  9. package/dist/catalyst/assets/fonts/DMSans-Regular.woff2 +0 -0
  10. package/dist/catalyst/assets/fonts/Lato-Black.woff +0 -0
  11. package/dist/catalyst/assets/fonts/Lato-Black.woff2 +0 -0
  12. package/dist/catalyst/assets/fonts/Lato-BlackItalic.woff +0 -0
  13. package/dist/catalyst/assets/fonts/Lato-BlackItalic.woff2 +0 -0
  14. package/dist/catalyst/assets/fonts/Lato-Bold.woff +0 -0
  15. package/dist/catalyst/assets/fonts/Lato-Bold.woff2 +0 -0
  16. package/dist/catalyst/assets/fonts/Lato-BoldItalic.woff +0 -0
  17. package/dist/catalyst/assets/fonts/Lato-BoldItalic.woff2 +0 -0
  18. package/dist/catalyst/assets/fonts/Lato-Hairline.woff +0 -0
  19. package/dist/catalyst/assets/fonts/Lato-Hairline.woff2 +0 -0
  20. package/dist/catalyst/assets/fonts/Lato-HairlineItalic.woff +0 -0
  21. package/dist/catalyst/assets/fonts/Lato-HairlineItalic.woff2 +0 -0
  22. package/dist/catalyst/assets/fonts/Lato-Heavy.woff +0 -0
  23. package/dist/catalyst/assets/fonts/Lato-Heavy.woff2 +0 -0
  24. package/dist/catalyst/assets/fonts/Lato-HeavyItalic.woff +0 -0
  25. package/dist/catalyst/assets/fonts/Lato-HeavyItalic.woff2 +0 -0
  26. package/dist/catalyst/assets/fonts/Lato-Italic.woff +0 -0
  27. package/dist/catalyst/assets/fonts/Lato-Italic.woff2 +0 -0
  28. package/dist/catalyst/assets/fonts/Lato-Light.woff +0 -0
  29. package/dist/catalyst/assets/fonts/Lato-Light.woff2 +0 -0
  30. package/dist/catalyst/assets/fonts/Lato-LightItalic.woff +0 -0
  31. package/dist/catalyst/assets/fonts/Lato-LightItalic.woff2 +0 -0
  32. package/dist/catalyst/assets/fonts/Lato-Medium.woff +0 -0
  33. package/dist/catalyst/assets/fonts/Lato-Medium.woff2 +0 -0
  34. package/dist/catalyst/assets/fonts/Lato-MediumItalic.woff +0 -0
  35. package/dist/catalyst/assets/fonts/Lato-MediumItalic.woff2 +0 -0
  36. package/dist/catalyst/assets/fonts/Lato-Regular.woff +0 -0
  37. package/dist/catalyst/assets/fonts/Lato-Regular.woff2 +0 -0
  38. package/dist/catalyst/assets/fonts/Lato-Semibold.woff +0 -0
  39. package/dist/catalyst/assets/fonts/Lato-Semibold.woff2 +0 -0
  40. package/dist/catalyst/assets/fonts/Lato-SemiboldItalic.woff +0 -0
  41. package/dist/catalyst/assets/fonts/Lato-SemiboldItalic.woff2 +0 -0
  42. package/dist/catalyst/assets/fonts/Lato-Thin.woff +0 -0
  43. package/dist/catalyst/assets/fonts/Lato-Thin.woff2 +0 -0
  44. package/dist/catalyst/assets/fonts/Lato-ThinItalic.woff +0 -0
  45. package/dist/catalyst/assets/fonts/Lato-ThinItalic.woff2 +0 -0
  46. package/dist/catalyst/catalyst.css +0 -1
  47. package/dist/catalyst/catalyst.esm.js +0 -2
  48. package/dist/catalyst/catalyst.esm.js.map +0 -1
  49. package/dist/catalyst/index.cdn.js +0 -21
  50. package/dist/catalyst/index.esm.js +0 -2
  51. package/dist/catalyst/index.esm.js.map +0 -1
  52. package/dist/catalyst/p-23d54bc6.js +0 -2
  53. package/dist/catalyst/p-23d54bc6.js.map +0 -1
  54. package/dist/catalyst/p-84693f87.entry.js +0 -24
  55. package/dist/catalyst/p-84693f87.entry.js.map +0 -1
  56. package/dist/catalyst/p-8f5cfa78.js +0 -2
  57. package/dist/catalyst/p-8f5cfa78.js.map +0 -1
  58. package/dist/catalyst/p-fa7da4c6.js +0 -2
  59. package/dist/catalyst/p-fa7da4c6.js.map +0 -1
  60. package/dist/cjs/app-globals-50e7504d.js +0 -180
  61. package/dist/cjs/app-globals-50e7504d.js.map +0 -1
  62. package/dist/cjs/cat-alert_15.cjs.entry.js +0 -4652
  63. package/dist/cjs/cat-alert_15.cjs.entry.js.map +0 -1
  64. package/dist/cjs/cat-icon-registry-6895750f.js +0 -441
  65. package/dist/cjs/cat-icon-registry-6895750f.js.map +0 -1
  66. package/dist/cjs/catalyst.cjs.js +0 -24
  67. package/dist/cjs/catalyst.cjs.js.map +0 -1
  68. package/dist/cjs/index-2db8e23d.js +0 -1347
  69. package/dist/cjs/index-2db8e23d.js.map +0 -1
  70. package/dist/cjs/index.cjs.js +0 -12
  71. package/dist/cjs/index.cjs.js.map +0 -1
  72. package/dist/cjs/loader.cjs.js +0 -26
  73. package/dist/cjs/loader.cjs.js.map +0 -1
  74. package/dist/collection/assets/fonts/AzeretMono-Regular.woff2 +0 -0
  75. package/dist/collection/assets/fonts/DMSans-Bold.woff2 +0 -0
  76. package/dist/collection/assets/fonts/DMSans-BoldItalic.woff2 +0 -0
  77. package/dist/collection/assets/fonts/DMSans-Italic.woff2 +0 -0
  78. package/dist/collection/assets/fonts/DMSans-Medium.woff2 +0 -0
  79. package/dist/collection/assets/fonts/DMSans-MediumItalic.woff2 +0 -0
  80. package/dist/collection/assets/fonts/DMSans-Regular.woff2 +0 -0
  81. package/dist/collection/assets/fonts/Lato-Black.woff +0 -0
  82. package/dist/collection/assets/fonts/Lato-Black.woff2 +0 -0
  83. package/dist/collection/assets/fonts/Lato-BlackItalic.woff +0 -0
  84. package/dist/collection/assets/fonts/Lato-BlackItalic.woff2 +0 -0
  85. package/dist/collection/assets/fonts/Lato-Bold.woff +0 -0
  86. package/dist/collection/assets/fonts/Lato-Bold.woff2 +0 -0
  87. package/dist/collection/assets/fonts/Lato-BoldItalic.woff +0 -0
  88. package/dist/collection/assets/fonts/Lato-BoldItalic.woff2 +0 -0
  89. package/dist/collection/assets/fonts/Lato-Hairline.woff +0 -0
  90. package/dist/collection/assets/fonts/Lato-Hairline.woff2 +0 -0
  91. package/dist/collection/assets/fonts/Lato-HairlineItalic.woff +0 -0
  92. package/dist/collection/assets/fonts/Lato-HairlineItalic.woff2 +0 -0
  93. package/dist/collection/assets/fonts/Lato-Heavy.woff +0 -0
  94. package/dist/collection/assets/fonts/Lato-Heavy.woff2 +0 -0
  95. package/dist/collection/assets/fonts/Lato-HeavyItalic.woff +0 -0
  96. package/dist/collection/assets/fonts/Lato-HeavyItalic.woff2 +0 -0
  97. package/dist/collection/assets/fonts/Lato-Italic.woff +0 -0
  98. package/dist/collection/assets/fonts/Lato-Italic.woff2 +0 -0
  99. package/dist/collection/assets/fonts/Lato-Light.woff +0 -0
  100. package/dist/collection/assets/fonts/Lato-Light.woff2 +0 -0
  101. package/dist/collection/assets/fonts/Lato-LightItalic.woff +0 -0
  102. package/dist/collection/assets/fonts/Lato-LightItalic.woff2 +0 -0
  103. package/dist/collection/assets/fonts/Lato-Medium.woff +0 -0
  104. package/dist/collection/assets/fonts/Lato-Medium.woff2 +0 -0
  105. package/dist/collection/assets/fonts/Lato-MediumItalic.woff +0 -0
  106. package/dist/collection/assets/fonts/Lato-MediumItalic.woff2 +0 -0
  107. package/dist/collection/assets/fonts/Lato-Regular.woff +0 -0
  108. package/dist/collection/assets/fonts/Lato-Regular.woff2 +0 -0
  109. package/dist/collection/assets/fonts/Lato-Semibold.woff +0 -0
  110. package/dist/collection/assets/fonts/Lato-Semibold.woff2 +0 -0
  111. package/dist/collection/assets/fonts/Lato-SemiboldItalic.woff +0 -0
  112. package/dist/collection/assets/fonts/Lato-SemiboldItalic.woff2 +0 -0
  113. package/dist/collection/assets/fonts/Lato-Thin.woff +0 -0
  114. package/dist/collection/assets/fonts/Lato-Thin.woff2 +0 -0
  115. package/dist/collection/assets/fonts/Lato-ThinItalic.woff +0 -0
  116. package/dist/collection/assets/fonts/Lato-ThinItalic.woff2 +0 -0
  117. package/dist/collection/collection-manifest.json +0 -27
  118. package/dist/collection/components/cat-alert/cat-alert.css +0 -62
  119. package/dist/collection/components/cat-alert/cat-alert.js +0 -61
  120. package/dist/collection/components/cat-alert/cat-alert.js.map +0 -1
  121. package/dist/collection/components/cat-badge/cat-badge.css +0 -154
  122. package/dist/collection/components/cat-badge/cat-badge.js +0 -143
  123. package/dist/collection/components/cat-badge/cat-badge.js.map +0 -1
  124. package/dist/collection/components/cat-button/cat-button.css +0 -333
  125. package/dist/collection/components/cat-button/cat-button.js +0 -615
  126. package/dist/collection/components/cat-button/cat-button.js.map +0 -1
  127. package/dist/collection/components/cat-card/cat-card.css +0 -25
  128. package/dist/collection/components/cat-card/cat-card.js +0 -20
  129. package/dist/collection/components/cat-card/cat-card.js.map +0 -1
  130. package/dist/collection/components/cat-checkbox/cat-checkbox.css +0 -105
  131. package/dist/collection/components/cat-checkbox/cat-checkbox.js +0 -314
  132. package/dist/collection/components/cat-checkbox/cat-checkbox.js.map +0 -1
  133. package/dist/collection/components/cat-i18n/cat-i18n-registry.js +0 -69
  134. package/dist/collection/components/cat-i18n/cat-i18n-registry.js.map +0 -1
  135. package/dist/collection/components/cat-icon/cat-icon-registry.js +0 -55
  136. package/dist/collection/components/cat-icon/cat-icon-registry.js.map +0 -1
  137. package/dist/collection/components/cat-icon/cat-icon.css +0 -50
  138. package/dist/collection/components/cat-icon/cat-icon.js +0 -91
  139. package/dist/collection/components/cat-icon/cat-icon.js.map +0 -1
  140. package/dist/collection/components/cat-input/cat-input.css +0 -131
  141. package/dist/collection/components/cat-input/cat-input.js +0 -606
  142. package/dist/collection/components/cat-input/cat-input.js.map +0 -1
  143. package/dist/collection/components/cat-menu/cat-menu.css +0 -34
  144. package/dist/collection/components/cat-menu/cat-menu.js +0 -184
  145. package/dist/collection/components/cat-menu/cat-menu.js.map +0 -1
  146. package/dist/collection/components/cat-radio/cat-radio.css +0 -84
  147. package/dist/collection/components/cat-radio/cat-radio.js +0 -283
  148. package/dist/collection/components/cat-radio/cat-radio.js.map +0 -1
  149. package/dist/collection/components/cat-scrollable/cat-scrollable.css +0 -69
  150. package/dist/collection/components/cat-scrollable/cat-scrollable.js +0 -311
  151. package/dist/collection/components/cat-scrollable/cat-scrollable.js.map +0 -1
  152. package/dist/collection/components/cat-skeleton/cat-skeleton.css +0 -177
  153. package/dist/collection/components/cat-skeleton/cat-skeleton.js +0 -131
  154. package/dist/collection/components/cat-skeleton/cat-skeleton.js.map +0 -1
  155. package/dist/collection/components/cat-spinner/cat-spinner.css +0 -63
  156. package/dist/collection/components/cat-spinner/cat-spinner.js +0 -65
  157. package/dist/collection/components/cat-spinner/cat-spinner.js.map +0 -1
  158. package/dist/collection/components/cat-textarea/cat-textarea.css +0 -74
  159. package/dist/collection/components/cat-textarea/cat-textarea.js +0 -393
  160. package/dist/collection/components/cat-textarea/cat-textarea.js.map +0 -1
  161. package/dist/collection/components/cat-toggle/cat-toggle.css +0 -93
  162. package/dist/collection/components/cat-toggle/cat-toggle.js +0 -283
  163. package/dist/collection/components/cat-toggle/cat-toggle.js.map +0 -1
  164. package/dist/collection/components/cat-tooltip/cat-tooltip.css +0 -41
  165. package/dist/collection/components/cat-tooltip/cat-tooltip.js +0 -254
  166. package/dist/collection/components/cat-tooltip/cat-tooltip.js.map +0 -1
  167. package/dist/collection/index.cdn.js +0 -21
  168. package/dist/collection/index.js +0 -3
  169. package/dist/collection/index.js.map +0 -1
  170. package/dist/collection/init.js +0 -17
  171. package/dist/collection/init.js.map +0 -1
  172. package/dist/collection/utils/breakpoints.js +0 -12
  173. package/dist/collection/utils/breakpoints.js.map +0 -1
  174. package/dist/collection/utils/first-tabbable.js +0 -6
  175. package/dist/collection/utils/first-tabbable.js.map +0 -1
  176. package/dist/collection/utils/is-touch-screen.js +0 -3
  177. package/dist/collection/utils/is-touch-screen.js.map +0 -1
  178. package/dist/collection/utils/media-matcher.js +0 -55
  179. package/dist/collection/utils/media-matcher.js.map +0 -1
  180. package/dist/collection/utils/platform.js +0 -50
  181. package/dist/collection/utils/platform.js.map +0 -1
  182. package/dist/components/cat-alert.d.ts +0 -11
  183. package/dist/components/cat-alert.js +0 -53
  184. package/dist/components/cat-alert.js.map +0 -1
  185. package/dist/components/cat-badge.d.ts +0 -11
  186. package/dist/components/cat-badge.js +0 -68
  187. package/dist/components/cat-badge.js.map +0 -1
  188. package/dist/components/cat-button.d.ts +0 -11
  189. package/dist/components/cat-button.js +0 -8
  190. package/dist/components/cat-button.js.map +0 -1
  191. package/dist/components/cat-button2.js +0 -346
  192. package/dist/components/cat-button2.js.map +0 -1
  193. package/dist/components/cat-card.d.ts +0 -11
  194. package/dist/components/cat-card.js +0 -35
  195. package/dist/components/cat-card.js.map +0 -1
  196. package/dist/components/cat-checkbox.d.ts +0 -11
  197. package/dist/components/cat-checkbox.js +0 -103
  198. package/dist/components/cat-checkbox.js.map +0 -1
  199. package/dist/components/cat-i18n-registry.js +0 -73
  200. package/dist/components/cat-i18n-registry.js.map +0 -1
  201. package/dist/components/cat-icon-registry.js +0 -59
  202. package/dist/components/cat-icon-registry.js.map +0 -1
  203. package/dist/components/cat-icon.d.ts +0 -11
  204. package/dist/components/cat-icon.js +0 -8
  205. package/dist/components/cat-icon.js.map +0 -1
  206. package/dist/components/cat-icon2.js +0 -49
  207. package/dist/components/cat-icon2.js.map +0 -1
  208. package/dist/components/cat-input.d.ts +0 -11
  209. package/dist/components/cat-input.js +0 -172
  210. package/dist/components/cat-input.js.map +0 -1
  211. package/dist/components/cat-menu.d.ts +0 -11
  212. package/dist/components/cat-menu.js +0 -870
  213. package/dist/components/cat-menu.js.map +0 -1
  214. package/dist/components/cat-radio.d.ts +0 -11
  215. package/dist/components/cat-radio.js +0 -93
  216. package/dist/components/cat-radio.js.map +0 -1
  217. package/dist/components/cat-scrollable.d.ts +0 -11
  218. package/dist/components/cat-scrollable.js +0 -1362
  219. package/dist/components/cat-scrollable.js.map +0 -1
  220. package/dist/components/cat-skeleton.d.ts +0 -11
  221. package/dist/components/cat-skeleton.js +0 -78
  222. package/dist/components/cat-skeleton.js.map +0 -1
  223. package/dist/components/cat-spinner.d.ts +0 -11
  224. package/dist/components/cat-spinner.js +0 -8
  225. package/dist/components/cat-spinner.js.map +0 -1
  226. package/dist/components/cat-spinner2.js +0 -41
  227. package/dist/components/cat-spinner2.js.map +0 -1
  228. package/dist/components/cat-textarea.d.ts +0 -11
  229. package/dist/components/cat-textarea.js +0 -119
  230. package/dist/components/cat-textarea.js.map +0 -1
  231. package/dist/components/cat-toggle.d.ts +0 -11
  232. package/dist/components/cat-toggle.js +0 -93
  233. package/dist/components/cat-toggle.js.map +0 -1
  234. package/dist/components/cat-tooltip.d.ts +0 -11
  235. package/dist/components/cat-tooltip.js +0 -154
  236. package/dist/components/cat-tooltip.js.map +0 -1
  237. package/dist/components/first-tabbable.js +0 -1496
  238. package/dist/components/first-tabbable.js.map +0 -1
  239. package/dist/components/index.d.ts +0 -26
  240. package/dist/components/index.js +0 -182
  241. package/dist/components/index.js.map +0 -1
  242. package/dist/components/loglevel.js +0 -315
  243. package/dist/components/loglevel.js.map +0 -1
  244. package/dist/esm/app-globals-6906ac5c.js +0 -178
  245. package/dist/esm/app-globals-6906ac5c.js.map +0 -1
  246. package/dist/esm/cat-alert_15.entry.js +0 -4634
  247. package/dist/esm/cat-alert_15.entry.js.map +0 -1
  248. package/dist/esm/cat-icon-registry-77963c26.js +0 -437
  249. package/dist/esm/cat-icon-registry-77963c26.js.map +0 -1
  250. package/dist/esm/catalyst.js +0 -22
  251. package/dist/esm/catalyst.js.map +0 -1
  252. package/dist/esm/index-1f3ca03b.js +0 -1320
  253. package/dist/esm/index-1f3ca03b.js.map +0 -1
  254. package/dist/esm/index.js +0 -3
  255. package/dist/esm/index.js.map +0 -1
  256. package/dist/esm/loader.js +0 -22
  257. package/dist/esm/loader.js.map +0 -1
  258. package/dist/esm/polyfills/core-js.js +0 -11
  259. package/dist/esm/polyfills/css-shim.js +0 -1
  260. package/dist/esm/polyfills/dom.js +0 -79
  261. package/dist/esm/polyfills/es5-html-element.js +0 -1
  262. package/dist/esm/polyfills/index.js +0 -34
  263. package/dist/esm/polyfills/system.js +0 -6
  264. package/dist/index.cjs.js +0 -1
  265. package/dist/index.js +0 -1
  266. package/dist/types/components/cat-alert/cat-alert.d.ts +0 -14
  267. package/dist/types/components/cat-badge/cat-badge.d.ts +0 -29
  268. package/dist/types/components/cat-button/cat-button.d.ts +0 -134
  269. package/dist/types/components/cat-card/cat-card.d.ts +0 -7
  270. package/dist/types/components/cat-checkbox/cat-checkbox.d.ts +0 -69
  271. package/dist/types/components/cat-i18n/cat-i18n-registry.d.ts +0 -18
  272. package/dist/types/components/cat-icon/cat-icon-registry.d.ts +0 -15
  273. package/dist/types/components/cat-icon/cat-icon.d.ts +0 -23
  274. package/dist/types/components/cat-input/cat-input.d.ts +0 -130
  275. package/dist/types/components/cat-menu/cat-menu.d.ts +0 -31
  276. package/dist/types/components/cat-radio/cat-radio.d.ts +0 -63
  277. package/dist/types/components/cat-scrollable/cat-scrollable.d.ts +0 -52
  278. package/dist/types/components/cat-skeleton/cat-skeleton.d.ts +0 -28
  279. package/dist/types/components/cat-spinner/cat-spinner.d.ts +0 -15
  280. package/dist/types/components/cat-textarea/cat-textarea.d.ts +0 -85
  281. package/dist/types/components/cat-toggle/cat-toggle.d.ts +0 -64
  282. package/dist/types/components/cat-tooltip/cat-tooltip.d.ts +0 -46
  283. package/dist/types/components.d.ts +0 -1167
  284. package/dist/types/index.d.ts +0 -3
  285. package/dist/types/init.d.ts +0 -1
  286. package/dist/types/stencil-public-runtime.d.ts +0 -1565
  287. package/dist/types/utils/breakpoints.d.ts +0 -7
  288. package/dist/types/utils/first-tabbable.d.ts +0 -4
  289. package/dist/types/utils/is-touch-screen.d.ts +0 -2
  290. package/dist/types/utils/media-matcher.d.ts +0 -13
  291. package/dist/types/utils/platform.d.ts +0 -18
  292. package/loader/cdn.js +0 -3
  293. package/loader/index.cjs.js +0 -3
  294. package/loader/index.d.ts +0 -12
  295. package/loader/index.es2017.js +0 -3
  296. package/loader/index.js +0 -4
  297. package/loader/package.json +0 -10
@@ -1,184 +0,0 @@
1
- import { autoUpdate, computePosition, flip, offset } from '@floating-ui/dom';
2
- import { Component, Event, h, Host, Listen, Prop } from '@stencil/core';
3
- import * as focusTrap from 'focus-trap';
4
- import { tabbable } from 'tabbable';
5
- import firstTabbable from '../../utils/first-tabbable';
6
- let nextUniqueId = 0;
7
- export class CatMenu {
8
- constructor() {
9
- this.id = nextUniqueId++;
10
- /**
11
- * The placement of the menu.
12
- */
13
- this.placement = 'bottom-start';
14
- }
15
- clickHandler(event) {
16
- var _a;
17
- // hide menu on button click
18
- if (this.content && event.composedPath().includes(this.content)) {
19
- (_a = this.trap) === null || _a === void 0 ? void 0 : _a.deactivate();
20
- this.hide();
21
- }
22
- }
23
- componentDidLoad() {
24
- var _a, _b, _c, _d, _e;
25
- this.trigger = firstTabbable(this.triggerSlot);
26
- (_a = this.trigger) === null || _a === void 0 ? void 0 : _a.setAttribute('aria-haspopup', 'true');
27
- (_b = this.trigger) === null || _b === void 0 ? void 0 : _b.setAttribute('aria-expanded', 'false');
28
- (_c = this.trigger) === null || _c === void 0 ? void 0 : _c.setAttribute('aria-controls', this.contentId);
29
- (_d = this.content) === null || _d === void 0 ? void 0 : _d.setAttribute('id', this.contentId);
30
- if (this.trigger && this.content) {
31
- (_e = this.trigger) === null || _e === void 0 ? void 0 : _e.addEventListener('click', () => this.show());
32
- autoUpdate(this.trigger, this.content, () => this.update());
33
- }
34
- this.keyListener = event => {
35
- if (this.content && ['ArrowDown', 'ArrowUp'].includes(event.key)) {
36
- const targetElements = tabbable(this.content, { includeContainer: false, getShadowRoot: true });
37
- const activeElement = firstTabbable(document.activeElement);
38
- const activeIdx = activeElement ? targetElements.indexOf(activeElement) : -1;
39
- const activeOff = event.key === 'ArrowDown' ? 1 : -1;
40
- const targetIdx = activeIdx < 0 ? 0 : (activeIdx + activeOff + targetElements.length) % targetElements.length;
41
- targetElements[targetIdx].focus();
42
- event.preventDefault();
43
- }
44
- };
45
- document.addEventListener('keydown', this.keyListener);
46
- }
47
- disconnectedCallback() {
48
- if (this.keyListener) {
49
- document.removeEventListener('keydown', this.keyListener);
50
- }
51
- }
52
- render() {
53
- return (h(Host, null,
54
- h("slot", { name: "trigger", ref: el => (this.triggerSlot = el) }),
55
- h("div", { class: "content", ref: el => (this.content = el) },
56
- h("slot", { name: "content" }))));
57
- }
58
- get contentId() {
59
- return `cat-menu-${this.id}`;
60
- }
61
- show() {
62
- var _a;
63
- if (this.content) {
64
- this.content.style.display = 'block';
65
- (_a = this.trigger) === null || _a === void 0 ? void 0 : _a.setAttribute('aria-expanded', 'true');
66
- this.catOpen.emit();
67
- this.trap = this.trap
68
- ? this.trap.updateContainerElements(this.content)
69
- : focusTrap.createFocusTrap(this.content, {
70
- tabbableOptions: {
71
- getShadowRoot: true
72
- },
73
- allowOutsideClick: true,
74
- clickOutsideDeactivates: event => !this.content || !event.composedPath().includes(this.content),
75
- onPostDeactivate: () => this.hide()
76
- });
77
- this.trap.activate();
78
- }
79
- }
80
- hide() {
81
- var _a;
82
- if (this.content) {
83
- this.content.style.display = '';
84
- (_a = this.trigger) === null || _a === void 0 ? void 0 : _a.setAttribute('aria-expanded', 'false');
85
- this.catClose.emit();
86
- }
87
- }
88
- update() {
89
- if (this.trigger && this.content) {
90
- computePosition(this.trigger, this.content, {
91
- placement: this.placement,
92
- middleware: [offset(CatMenu.OFFSET), flip()]
93
- }).then(({ x, y }) => {
94
- if (this.content) {
95
- Object.assign(this.content.style, {
96
- left: `${x}px`,
97
- top: `${y}px`
98
- });
99
- }
100
- });
101
- }
102
- }
103
- static get is() { return "cat-menu"; }
104
- static get encapsulation() { return "shadow"; }
105
- static get originalStyleUrls() { return {
106
- "$": ["cat-menu.scss"]
107
- }; }
108
- static get styleUrls() { return {
109
- "$": ["cat-menu.css"]
110
- }; }
111
- static get properties() { return {
112
- "placement": {
113
- "type": "string",
114
- "mutable": false,
115
- "complexType": {
116
- "original": "Placement",
117
- "resolved": "\"bottom\" | \"bottom-end\" | \"bottom-start\" | \"left\" | \"left-end\" | \"left-start\" | \"right\" | \"right-end\" | \"right-start\" | \"top\" | \"top-end\" | \"top-start\"",
118
- "references": {
119
- "Placement": {
120
- "location": "import",
121
- "path": "@floating-ui/dom"
122
- }
123
- }
124
- },
125
- "required": false,
126
- "optional": false,
127
- "docs": {
128
- "tags": [],
129
- "text": "The placement of the menu."
130
- },
131
- "attribute": "placement",
132
- "reflect": false,
133
- "defaultValue": "'bottom-start'"
134
- }
135
- }; }
136
- static get events() { return [{
137
- "method": "catOpen",
138
- "name": "catOpen",
139
- "bubbles": true,
140
- "cancelable": true,
141
- "composed": true,
142
- "docs": {
143
- "tags": [],
144
- "text": "Emitted when the menu is opened."
145
- },
146
- "complexType": {
147
- "original": "FocusEvent",
148
- "resolved": "FocusEvent",
149
- "references": {
150
- "FocusEvent": {
151
- "location": "global"
152
- }
153
- }
154
- }
155
- }, {
156
- "method": "catClose",
157
- "name": "catClose",
158
- "bubbles": true,
159
- "cancelable": true,
160
- "composed": true,
161
- "docs": {
162
- "tags": [],
163
- "text": "Emitted when the menu is closed."
164
- },
165
- "complexType": {
166
- "original": "FocusEvent",
167
- "resolved": "FocusEvent",
168
- "references": {
169
- "FocusEvent": {
170
- "location": "global"
171
- }
172
- }
173
- }
174
- }]; }
175
- static get listeners() { return [{
176
- "name": "catClick",
177
- "method": "clickHandler",
178
- "target": undefined,
179
- "capture": false,
180
- "passive": false
181
- }]; }
182
- }
183
- CatMenu.OFFSET = 4;
184
- //# sourceMappingURL=cat-menu.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cat-menu.js","sourceRoot":"","sources":["../../../src/components/cat-menu/cat-menu.tsx"],"names":[],"mappings":"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","sourcesContent":["import { autoUpdate, computePosition, flip, offset, Placement } from '@floating-ui/dom';\nimport { Component, Event, EventEmitter, h, Host, Listen, Prop } from '@stencil/core';\nimport * as focusTrap from 'focus-trap';\nimport { FocusableElement, tabbable } from 'tabbable';\nimport firstTabbable from '../../utils/first-tabbable';\n\nlet nextUniqueId = 0;\n\n@Component({\n tag: 'cat-menu',\n styleUrl: 'cat-menu.scss',\n shadow: true\n})\nexport class CatMenu {\n private static readonly OFFSET = 4;\n private readonly id = nextUniqueId++;\n private triggerSlot?: Element;\n private trigger?: FocusableElement;\n private content?: HTMLElement;\n private trap?: focusTrap.FocusTrap;\n private keyListener?: (event: KeyboardEvent) => void;\n\n /**\n * The placement of the menu.\n */\n @Prop() placement: Placement = 'bottom-start';\n\n /**\n * Emitted when the menu is opened.\n */\n @Event() catOpen!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when the menu is closed.\n */\n @Event() catClose!: EventEmitter<FocusEvent>;\n\n @Listen('catClick')\n clickHandler(event: CustomEvent<MouseEvent>) {\n // hide menu on button click\n if (this.content && event.composedPath().includes(this.content)) {\n this.trap?.deactivate();\n this.hide();\n }\n }\n\n componentDidLoad(): void {\n this.trigger = firstTabbable(this.triggerSlot);\n this.trigger?.setAttribute('aria-haspopup', 'true');\n this.trigger?.setAttribute('aria-expanded', 'false');\n this.trigger?.setAttribute('aria-controls', this.contentId);\n this.content?.setAttribute('id', this.contentId);\n if (this.trigger && this.content) {\n this.trigger?.addEventListener('click', () => this.show());\n autoUpdate(this.trigger, this.content, () => this.update());\n }\n\n this.keyListener = event => {\n if (this.content && ['ArrowDown', 'ArrowUp'].includes(event.key)) {\n const targetElements = tabbable(this.content, { includeContainer: false, getShadowRoot: true });\n const activeElement = firstTabbable(document.activeElement);\n const activeIdx = activeElement ? targetElements.indexOf(activeElement) : -1;\n const activeOff = event.key === 'ArrowDown' ? 1 : -1;\n const targetIdx = activeIdx < 0 ? 0 : (activeIdx + activeOff + targetElements.length) % targetElements.length;\n targetElements[targetIdx].focus();\n event.preventDefault();\n }\n };\n document.addEventListener('keydown', this.keyListener);\n }\n\n disconnectedCallback(): void {\n if (this.keyListener) {\n document.removeEventListener('keydown', this.keyListener);\n }\n }\n\n render() {\n return (\n <Host>\n <slot name=\"trigger\" ref={el => (this.triggerSlot = el)}></slot>\n <div class=\"content\" ref={el => (this.content = el)}>\n <slot name=\"content\"></slot>\n </div>\n </Host>\n );\n }\n\n private get contentId() {\n return `cat-menu-${this.id}`;\n }\n\n private show() {\n if (this.content) {\n this.content.style.display = 'block';\n this.trigger?.setAttribute('aria-expanded', 'true');\n this.catOpen.emit();\n this.trap = this.trap\n ? this.trap.updateContainerElements(this.content)\n : focusTrap.createFocusTrap(this.content, {\n tabbableOptions: {\n getShadowRoot: true\n },\n allowOutsideClick: true,\n clickOutsideDeactivates: event => !this.content || !event.composedPath().includes(this.content),\n onPostDeactivate: () => this.hide()\n });\n this.trap.activate();\n }\n }\n\n private hide() {\n if (this.content) {\n this.content.style.display = '';\n this.trigger?.setAttribute('aria-expanded', 'false');\n this.catClose.emit();\n }\n }\n\n private update() {\n if (this.trigger && this.content) {\n computePosition(this.trigger, this.content, {\n placement: this.placement,\n middleware: [offset(CatMenu.OFFSET), flip()]\n }).then(({ x, y }) => {\n if (this.content) {\n Object.assign(this.content.style, {\n left: `${x}px`,\n top: `${y}px`\n });\n }\n });\n }\n }\n}\n"]}
@@ -1,84 +0,0 @@
1
- /**
2
- * Auto-generated file. Do not edit directly.
3
- */
4
- /* stylelint-disable value-keyword-case */
5
- /* stylelint-enable value-keyword-case */
6
- :host {
7
- display: flex;
8
- margin-bottom: 1rem;
9
- }
10
-
11
- :host([hidden]) {
12
- display: none;
13
- }
14
-
15
- label {
16
- display: flex;
17
- gap: 0.5rem;
18
- font-size: 0.9375rem;
19
- line-height: 1.25rem;
20
- cursor: pointer;
21
- }
22
-
23
- .radio {
24
- display: flex;
25
- position: relative;
26
- }
27
-
28
- .circle {
29
- position: absolute;
30
- width: 0.75rem;
31
- height: 0.75rem;
32
- background-color: rgb(var(--cat-primary-bg, 32, 127, 138));
33
- border-radius: 10rem;
34
- top: calc(50% - 0.375rem);
35
- left: calc(50% - 0.375rem);
36
- visibility: hidden;
37
- }
38
-
39
- input {
40
- margin: 0;
41
- width: 1.25rem;
42
- height: 1.25rem;
43
- appearance: none;
44
- background-color: white;
45
- border: 1px solid #d7dbe0;
46
- border-radius: 10rem;
47
- cursor: inherit;
48
- }
49
- input:checked {
50
- border-color: rgb(var(--cat-primary-bg, 32, 127, 138));
51
- }
52
- input:checked + .circle {
53
- visibility: visible;
54
- }
55
- input:focus-visible {
56
- outline: 2px solid rgb(var(--cat-border-color-focus, 0, 113, 255));
57
- outline-offset: 1px;
58
- }
59
-
60
- .is-hidden .label {
61
- position: absolute !important;
62
- width: 1px !important;
63
- height: 1px !important;
64
- padding: 0 !important;
65
- margin: -1px !important;
66
- overflow: hidden !important;
67
- clip: rect(0, 0, 0, 0) !important;
68
- white-space: nowrap !important;
69
- border: 0 !important;
70
- }
71
-
72
- .is-disabled {
73
- cursor: not-allowed;
74
- color: rgb(var(--cat-font-color-muted, 105, 118, 135));
75
- }
76
- .is-disabled input {
77
- background-color: #f8f8fb;
78
- }
79
- .is-disabled input:checked {
80
- border-color: #d7dbe0;
81
- }
82
- .is-disabled .circle {
83
- background-color: #d7dbe0;
84
- }
@@ -1,283 +0,0 @@
1
- import { Component, Event, h, Prop, Method } from '@stencil/core';
2
- import log from 'loglevel';
3
- let nextUniqueId = 0;
4
- /**
5
- * Radio Buttons are graphical interface elements that allow user to choose
6
- * only one of a predefined set of mutually exclusive options.
7
- *
8
- * @part label - The label content.
9
- */
10
- export class CatRadio {
11
- constructor() {
12
- this.id = `cat-radio-${++nextUniqueId}`;
13
- /**
14
- * Whether this radio is checked.
15
- */
16
- this.checked = false;
17
- /**
18
- * Whether this radio is disabled.
19
- */
20
- this.disabled = false;
21
- /**
22
- * The label of the radio that is visible.
23
- */
24
- this.label = '';
25
- /**
26
- * Visually hide the label, but still show it to assistive technologies like screen readers.
27
- */
28
- this.labelHidden = false;
29
- /**
30
- * Whether the radio is required.
31
- */
32
- this.required = false;
33
- }
34
- componentWillRender() {
35
- if (!this.label) {
36
- log.error('[A11y] Missing ARIA label on radio', this);
37
- }
38
- }
39
- /**
40
- * Sets focus on the radio. Use this method instead of `radio.focus()`.
41
- *
42
- * @param options An optional object providing options to control aspects of
43
- * the focusing process.
44
- */
45
- async setFocus(options) {
46
- this.input.focus(options);
47
- }
48
- render() {
49
- return (h("label", { htmlFor: this.id, class: { 'is-hidden': this.labelHidden, 'is-disabled': this.disabled } },
50
- h("span", { class: "radio" },
51
- h("input", { ref: el => (this.input = el), id: this.id, type: "radio", name: this.name, value: this.value, checked: this.checked, required: this.required, disabled: this.disabled, onInput: this.onChange.bind(this), onFocus: this.onFocus.bind(this), onBlur: this.onBlur.bind(this) }),
52
- h("span", { class: "circle" })),
53
- h("span", { class: "label", part: "label" }, this.label)));
54
- }
55
- onChange(event) {
56
- this.catChange.emit(event);
57
- }
58
- onFocus(event) {
59
- this.catFocus.emit(event);
60
- }
61
- onBlur(event) {
62
- this.catBlur.emit(event);
63
- }
64
- static get is() { return "cat-radio"; }
65
- static get encapsulation() { return "shadow"; }
66
- static get originalStyleUrls() { return {
67
- "$": ["cat-radio.scss"]
68
- }; }
69
- static get styleUrls() { return {
70
- "$": ["cat-radio.css"]
71
- }; }
72
- static get properties() { return {
73
- "checked": {
74
- "type": "boolean",
75
- "mutable": false,
76
- "complexType": {
77
- "original": "boolean",
78
- "resolved": "boolean",
79
- "references": {}
80
- },
81
- "required": false,
82
- "optional": false,
83
- "docs": {
84
- "tags": [],
85
- "text": "Whether this radio is checked."
86
- },
87
- "attribute": "checked",
88
- "reflect": false,
89
- "defaultValue": "false"
90
- },
91
- "disabled": {
92
- "type": "boolean",
93
- "mutable": false,
94
- "complexType": {
95
- "original": "boolean",
96
- "resolved": "boolean",
97
- "references": {}
98
- },
99
- "required": false,
100
- "optional": false,
101
- "docs": {
102
- "tags": [],
103
- "text": "Whether this radio is disabled."
104
- },
105
- "attribute": "disabled",
106
- "reflect": false,
107
- "defaultValue": "false"
108
- },
109
- "label": {
110
- "type": "string",
111
- "mutable": false,
112
- "complexType": {
113
- "original": "string",
114
- "resolved": "string",
115
- "references": {}
116
- },
117
- "required": false,
118
- "optional": false,
119
- "docs": {
120
- "tags": [],
121
- "text": "The label of the radio that is visible."
122
- },
123
- "attribute": "label",
124
- "reflect": false,
125
- "defaultValue": "''"
126
- },
127
- "labelHidden": {
128
- "type": "boolean",
129
- "mutable": false,
130
- "complexType": {
131
- "original": "boolean",
132
- "resolved": "boolean",
133
- "references": {}
134
- },
135
- "required": false,
136
- "optional": false,
137
- "docs": {
138
- "tags": [],
139
- "text": "Visually hide the label, but still show it to assistive technologies like screen readers."
140
- },
141
- "attribute": "label-hidden",
142
- "reflect": false,
143
- "defaultValue": "false"
144
- },
145
- "name": {
146
- "type": "string",
147
- "mutable": false,
148
- "complexType": {
149
- "original": "string",
150
- "resolved": "string | undefined",
151
- "references": {}
152
- },
153
- "required": false,
154
- "optional": true,
155
- "docs": {
156
- "tags": [],
157
- "text": "The name of the radio component."
158
- },
159
- "attribute": "name",
160
- "reflect": false
161
- },
162
- "required": {
163
- "type": "boolean",
164
- "mutable": false,
165
- "complexType": {
166
- "original": "boolean",
167
- "resolved": "boolean",
168
- "references": {}
169
- },
170
- "required": false,
171
- "optional": false,
172
- "docs": {
173
- "tags": [],
174
- "text": "Whether the radio is required."
175
- },
176
- "attribute": "required",
177
- "reflect": false,
178
- "defaultValue": "false"
179
- },
180
- "value": {
181
- "type": "string",
182
- "mutable": false,
183
- "complexType": {
184
- "original": "string",
185
- "resolved": "string | undefined",
186
- "references": {}
187
- },
188
- "required": false,
189
- "optional": true,
190
- "docs": {
191
- "tags": [],
192
- "text": "The value of the radio component."
193
- },
194
- "attribute": "value",
195
- "reflect": false
196
- }
197
- }; }
198
- static get events() { return [{
199
- "method": "catChange",
200
- "name": "catChange",
201
- "bubbles": true,
202
- "cancelable": true,
203
- "composed": true,
204
- "docs": {
205
- "tags": [],
206
- "text": "Emitted when the radio is changed."
207
- },
208
- "complexType": {
209
- "original": "any",
210
- "resolved": "any",
211
- "references": {}
212
- }
213
- }, {
214
- "method": "catFocus",
215
- "name": "catFocus",
216
- "bubbles": true,
217
- "cancelable": true,
218
- "composed": true,
219
- "docs": {
220
- "tags": [],
221
- "text": "Emitted when the radio received focus."
222
- },
223
- "complexType": {
224
- "original": "FocusEvent",
225
- "resolved": "FocusEvent",
226
- "references": {
227
- "FocusEvent": {
228
- "location": "global"
229
- }
230
- }
231
- }
232
- }, {
233
- "method": "catBlur",
234
- "name": "catBlur",
235
- "bubbles": true,
236
- "cancelable": true,
237
- "composed": true,
238
- "docs": {
239
- "tags": [],
240
- "text": "Emitted when the radio loses focus."
241
- },
242
- "complexType": {
243
- "original": "FocusEvent",
244
- "resolved": "FocusEvent",
245
- "references": {
246
- "FocusEvent": {
247
- "location": "global"
248
- }
249
- }
250
- }
251
- }]; }
252
- static get methods() { return {
253
- "setFocus": {
254
- "complexType": {
255
- "signature": "(options?: FocusOptions | undefined) => Promise<void>",
256
- "parameters": [{
257
- "tags": [{
258
- "name": "param",
259
- "text": "options An optional object providing options to control aspects of\nthe focusing process."
260
- }],
261
- "text": "An optional object providing options to control aspects of\nthe focusing process."
262
- }],
263
- "references": {
264
- "Promise": {
265
- "location": "global"
266
- },
267
- "FocusOptions": {
268
- "location": "global"
269
- }
270
- },
271
- "return": "Promise<void>"
272
- },
273
- "docs": {
274
- "text": "Sets focus on the radio. Use this method instead of `radio.focus()`.",
275
- "tags": [{
276
- "name": "param",
277
- "text": "options An optional object providing options to control aspects of\nthe focusing process."
278
- }]
279
- }
280
- }
281
- }; }
282
- }
283
- //# sourceMappingURL=cat-radio.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cat-radio.js","sourceRoot":"","sources":["../../../src/components/cat-radio/cat-radio.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAgB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,GAAG,MAAM,UAAU,CAAC;AAE3B,IAAI,YAAY,GAAG,CAAC,CAAC;AAErB;;;;;GAKG;AAMH,MAAM,OAAO,QAAQ;EALrB;IAMmB,OAAE,GAAG,aAAa,EAAE,YAAY,EAAE,CAAC;IAGpD;;OAEG;IACK,YAAO,GAAG,KAAK,CAAC;IAExB;;OAEG;IACK,aAAQ,GAAG,KAAK,CAAC;IAEzB;;OAEG;IACK,UAAK,GAAG,EAAE,CAAC;IAEnB;;OAEG;IACK,gBAAW,GAAG,KAAK,CAAC;IAO5B;;OAEG;IACK,aAAQ,GAAG,KAAK,CAAC;GA4E1B;EAtDC,mBAAmB;IACjB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;MACf,GAAG,CAAC,KAAK,CAAC,oCAAoC,EAAE,IAAI,CAAC,CAAC;KACvD;EACH,CAAC;EAED;;;;;KAKG;EAEH,KAAK,CAAC,QAAQ,CAAC,OAAsB;IACnC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;EAC5B,CAAC;EAED,MAAM;IACJ,OAAO,CACL,aAAO,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,aAAa,EAAE,IAAI,CAAC,QAAQ,EAAE;MAC7F,YAAM,KAAK,EAAC,OAAO;QACjB,aACE,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,EAAsB,CAAC,EAChD,EAAE,EAAE,IAAI,CAAC,EAAE,EACX,IAAI,EAAC,OAAO,EACZ,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,OAAO,EAAE,IAAI,CAAC,OAAO,EACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EACvB,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EACjC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAChC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAC9B;QACF,YAAM,KAAK,EAAC,QAAQ,GAAQ,CACvB;MACP,YAAM,KAAK,EAAC,OAAO,EAAC,IAAI,EAAC,OAAO,IAC7B,IAAI,CAAC,KAAK,CACN,CACD,CACT,CAAC;EACJ,CAAC;EAEO,QAAQ,CAAC,KAAY;IAC3B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;EAC7B,CAAC;EAEO,OAAO,CAAC,KAAiB;IAC/B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;EAC5B,CAAC;EAEO,MAAM,CAAC,KAAiB;IAC9B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;EAC3B,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CACF","sourcesContent":["import { Component, Event, EventEmitter, h, Prop, Method } from '@stencil/core';\nimport log from 'loglevel';\n\nlet nextUniqueId = 0;\n\n/**\n * Radio Buttons are graphical interface elements that allow user to choose\n * only one of a predefined set of mutually exclusive options.\n *\n * @part label - The label content.\n */\n@Component({\n tag: 'cat-radio',\n styleUrl: 'cat-radio.scss',\n shadow: true\n})\nexport class CatRadio {\n private readonly id = `cat-radio-${++nextUniqueId}`;\n private input!: HTMLInputElement;\n\n /**\n * Whether this radio is checked.\n */\n @Prop() checked = false;\n\n /**\n * Whether this radio is disabled.\n */\n @Prop() disabled = false;\n\n /**\n * The label of the radio that is visible.\n */\n @Prop() label = '';\n\n /**\n * Visually hide the label, but still show it to assistive technologies like screen readers.\n */\n @Prop() labelHidden = false;\n\n /**\n * The name of the radio component.\n */\n @Prop() name?: string;\n\n /**\n * Whether the radio is required.\n */\n @Prop() required = false;\n\n /**\n * The value of the radio component.\n */\n @Prop() value?: string;\n\n /**\n * Emitted when the radio is changed.\n */\n @Event() catChange!: EventEmitter;\n\n /**\n * Emitted when the radio received focus.\n */\n @Event() catFocus!: EventEmitter<FocusEvent>;\n\n /**\n * Emitted when the radio loses focus.\n */\n @Event() catBlur!: EventEmitter<FocusEvent>;\n\n componentWillRender(): void {\n if (!this.label) {\n log.error('[A11y] Missing ARIA label on radio', this);\n }\n }\n\n /**\n * Sets focus on the radio. Use this method instead of `radio.focus()`.\n *\n * @param options An optional object providing options to control aspects of\n * the focusing process.\n */\n @Method()\n async setFocus(options?: FocusOptions): Promise<void> {\n this.input.focus(options);\n }\n\n render() {\n return (\n <label htmlFor={this.id} class={{ 'is-hidden': this.labelHidden, 'is-disabled': this.disabled }}>\n <span class=\"radio\">\n <input\n ref={el => (this.input = el as HTMLInputElement)}\n id={this.id}\n type=\"radio\"\n name={this.name}\n value={this.value}\n checked={this.checked}\n required={this.required}\n disabled={this.disabled}\n onInput={this.onChange.bind(this)}\n onFocus={this.onFocus.bind(this)}\n onBlur={this.onBlur.bind(this)}\n />\n <span class=\"circle\"></span>\n </span>\n <span class=\"label\" part=\"label\">\n {this.label}\n </span>\n </label>\n );\n }\n\n private onChange(event: Event) {\n this.catChange.emit(event);\n }\n\n private onFocus(event: FocusEvent) {\n this.catFocus.emit(event);\n }\n\n private onBlur(event: FocusEvent) {\n this.catBlur.emit(event);\n }\n}\n"]}
@@ -1,69 +0,0 @@
1
- /**
2
- * Auto-generated file. Do not edit directly.
3
- */
4
- /* stylelint-disable value-keyword-case */
5
- /* stylelint-enable value-keyword-case */
6
- :host {
7
- overflow: hidden;
8
- position: relative;
9
- display: flex;
10
- }
11
-
12
- :host([hidden]) {
13
- display: none;
14
- }
15
-
16
- .shadow-bottom, .shadow-right, .shadow-left, .shadow-top {
17
- position: absolute;
18
- transition: box-shadow 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
19
- }
20
-
21
- .shadow-top {
22
- z-index: 2;
23
- width: 100%;
24
- top: 0;
25
- }
26
-
27
- .shadow-left {
28
- z-index: 4;
29
- height: 100%;
30
- left: 0;
31
- }
32
-
33
- .shadow-right {
34
- z-index: 4;
35
- height: 100%;
36
- right: 0;
37
- }
38
-
39
- .shadow-bottom {
40
- z-index: 2;
41
- width: 100%;
42
- bottom: 0;
43
- }
44
-
45
- .scrollable-wrapper {
46
- position: absolute;
47
- top: 0;
48
- left: 0;
49
- right: 0;
50
- bottom: 0;
51
- pointer-events: none;
52
- }
53
- .scrollable-wrapper.cat-scrollable-top .shadow-top, .scrollable-wrapper.cat-scrollable-bottom .shadow-bottom, .scrollable-wrapper.cat-scrollable-left .shadow-left, .scrollable-wrapper.cat-scrollable-right .shadow-right {
54
- box-shadow: 0 0 4px 1px rgba(16, 29, 48, 0.2);
55
- }
56
-
57
- .scrollable-content {
58
- overflow: hidden;
59
- white-space: nowrap;
60
- }
61
- .scrollable-content.scroll-x {
62
- overflow-x: auto;
63
- }
64
- .scrollable-content.scroll-y {
65
- overflow-y: auto;
66
- }
67
- .scrollable-content.no-overscroll {
68
- overscroll-behavior: contain;
69
- }